0.75308916497967481579658336280635024974313175073252434081368584464722505560995472894707137820274382545555424676790452531626188170875383949144209370859223885092235792862855694693227765604576381321242280417277552775336740120398144845314769434025619369187163999006972981353989574988839204681693340296442438608520267198208153179880597724213399615486288690784031949217504878257467015881183190989755808912507862410434974157747455122210360592058494325943075886058091604800680215424434366854888786278422498181230517371890219950151636989023682601085713184432648220858936080857308380951388088363418496947325985872035256897618163314073148527512530927126387011832709054540755151014232928029272755174912847011295575495233556029481462971661998136559549442349831233558856180940018505595121718870336160844314356582345697249995401557763452386922653991679025532485932132227974746044910265708411664139471865342504078529961181260936239282360843767166617246397290390766877738621896807201325953882621318119858978285573171074459987949725737580126060531967383453713444613167467685815216650544567711261508644788638369693074738680128727258478533107899768354437575674133115422816838745781027789812846255760555229809408298945709619661239125484643133428209834528067349975596237373959329467145084142094532376646739485970991745847915083900448941669061410759852432035879030648994477259173574047093951050606644818687923348865955193328448363408320381992456356806662715699329014467678523459861701255422992190906199095553481175108074375041444253881150454929986135500612701954747405561883247238934620217917545718479277265495148520812636402045267435007533496314465277267808354304115479744706852932606767966759738065011336051474787150864475725106063533121908515342244417916058008741445696469772628880904628278180882087069334351731807679331524526676470091896228857163874938249122947168764061198365485059811670279413177521747529529039195633099970315103381354557719430380228456368857219597105674991827433835774101283818791930438783055581207616080618592646613334147974867128780250404958845285943318343099417974771004031880899715827461787544609881484420342330234758281939499890451918864333823513037245895985820621423669750205886370844076627530459792201025365533962631917340543078867460955183306816616427275508288038495929997903957098939825254746760106468166624623564780237328597990370194840093976418784909464202698131373923858379694366671191072189103887602538799968089162404201843737881518510946446409985446677023668536063613483853537483827915904711988390296041281138171002144854648232373178733646980104760579747381688547232691948058438769451041030646153872573538381685704808480461745496961337435946832240227482247377692539996783104687136105918056563765748951260951921450879028709583516679565215165199856465995952530616541076777059425565830502353068033342228235180220796652417948023129360950883651570561594049268986618221139713247200513339312011276662270445522791066270592561597954688859915568622917709885268827354438764966776200655073656343763476225080943329493588157955698121137028395691508778328137456389236544801657989045217503757159916407292495094620416837177252049289396844141237171888850090966422936396140732522562702545464681547553109587616975366800069428046266160459225181865299125625194262330613823696869962178942395708327544449903123620113099501641781727395413893065157952871065022594671409171603424411715334428161688718382184036395833933585198697845048089281490700597697820213374438524741095861746802089299297683916455187762079692996408099695682155208556419926807522989064595425823494458431426768042495267157549315014914521907250189654054338061910455056249913733236070226420150131091060459318794800836678950315243827808814589360295211759388344098787572187483659237657375922267166101234657769583558787131736368190115571130015318420516529363713137477175686939087636176920513220534498998414942430340417797093711579899336887149149167260185816680801619083599676406475362083314822265143599727794490308846146966773908850745803110016990436992268583333758977636519230010807302677245039761041674190701315871538880693464454299938866659579628825210543789556784034372399901337274474888227260059791957814698288355687833346129235934511251259242369801712417985771323857773789248383716167729624270641766116617955907780215864311409546193795164065951354070486405188382005730760860847565504826987185294961818628576622332641154457833061983566848748638376726283630509061931437532027481184643005252825338603057246536781472948921063393987293885278880543941764196663838102227893378920726082115183992224050140234257909637759736966141962402041153488134679998372624852054332954865056754922374169486811411709064191056191073765497474218782685289976227831179230417178971097547303214115718488833105794739552699891448108583697820644351633450511143385784630483494581196781103193679705114029180900073738337327069408117971835775718215643914710612153615957943891121435430748112240514240825147160693973479135447050193998400645628622287169351113920796571639655674322172354792212812838165644799658259414634531912869716886492164636641288097341147630602937570207374783870294251748266991471166243926444034260455342992620456885900635688280606449804975510159624052399846659499481811102073955927806828916932529320903901950333988376916846492368821696848605871680584860986268827380240112224909891876774801953189773075529294658104524955558436263211417409719320105990085599445554318490840460386592137864462372273944500994321792325568906970691322245124421300500821318123208087508265036938063801706487471528417230123486748493295783733989395467955253685643034024739426861059276492670245036543379324921879300848349068675574079506113381062775258124917767923555672627894781583748057495677169435377248791384774366103651328751985049873990586053766312326451841538746304150790543622006189507836806248702640629512832228517033563044056945285636453420508261991702657846490226396790325934536891653335686754528360764916967878034622859692786737842714779934373007606747415779784271732202234597147517701011555120917726949440684376496294656206245132200906500061016724944176658369628059385159999814252166095371823928569223316130400979880407034722339833240599032568074487083924272703050426455913970579057803150012947878162815833120150674006169814900170559556718395485260022383510009379977065974437132784551232748079945412321516426211779904186379866470330616175543476679008922041624716596452315920715402531907495957085447798794137025571591614315261270952414348126309950764685747221500763014038390340959729233826480095210752687863966575006577299991713575216890593807955545196079289277146833151063449874007691797212981659088746928677058102660829238831038713620875935667218252282987348478775188540289113001173439449838264377147104651008139312553829196726777170179654872401278599597097162601473058417290830572423940252707198705706766515347941023293003846253159975360480772393041726396301227593524027763599921766433023480096823282578103299301302931695159301501082307295469690185858525011060968895029074496441040344410184419243558958140427294616683016064309322542015746816214631198864507649013454477524493053418738221632985406538725823725229449844328640439735980604285412919714573437356054084351944570913344208178439646489865160973393563874835515681868059825197128565649085905842977219633012631045303811672489346508026886544805777311605546826375978694487632581017178537366200247272754760764844296082497230573658703384895287527504001167868478099339448867589966900243595258176776598953934710611527999894563613916285347891686648807425700969568765825611526567483375986846777757080019282408979988100818151119605226136504427465961184294702419681114550400057389002223644809020091454524205410800416338630210065350851142667770140798430706600938528436121937134917034707548671599790229843534034155265350251215496574442180679309389668413433570622427567403770722352530446478976887223622197711338736792544369403098012131728595009244798384174674425241992135849075166790719018790084739022885380178124586911525597458510083860068479799273352100684039868399898532013291200679610751667692379814567790407089387934386890944926762731692403903447948641835452403087740347530891467684964943378949913461472067889342293157713413635456279627995048518911076716015627202145854901295029046246185528398325329958081622700904646858083532459734172857439261139076525825195571221340037685817054456385502778325729959710987980497114575045308956651956351361239898072551909196117186431594086363787386090040478409525175486308033931988155333788301625226409853335773309843233357682064020343781461018704075043606900957177005647251322661238239558525858686296560537051893961117494287038489468869998442100136974639004321360165949395068982911178912621853125343324349212567689873448378258573775272142505271763192055935455451636047118965045626147567284204762398294269956278423342103109293323778573838472058082333148013626591279901550868022784247541401915401441869388303060346771178294926100971420479100852883931452241684029635087727969499494721102757238768872089524745489182079136455465304241268683681058907520904262070736175575706792091300593755203985648157227974832087894168168533509227334792156524654852270943708867694242471363949077514900524685003108378991391930701383793664676371142445675030581919182711846758142886863406052532421260763910453340482867772946544757502789099468548913685133061089580883677783481124304948911162239283335155445789586348553489641604138279678339925498804227520638867793573200676791103964401855484291522343873533869282118154422523573093381419285460896197747945795348368021358990591592053577677208732004202071157706292774385492912342782967220594311119677120777103047644571680124642306600888423063389426581290145012541509384105558736870515848475568088006706525992845299851825474765266552047444031565591106860851725448169572200524352953833360903750315714401614659596522905433309370293922891730993271252548101406801480173064863469416732680785992349034761946483789843794993703019399839436796939792840909813749522015875234551516098001409087993727804993204784930078591244371681410727464758781462601387770189558448206278747829969916991725467111626347441173057094785500413255845643083552830856794984925108479047520783562374432119270998123054590688363475375650929945585071422984307279740249186864384275473200275601961345820793657924483756714592197138144124647704606471744425653824295070646508689100310960608980977732371211725365985508172349501180768552285500888897125900028107218195180514226727047358723923408617390329787611914045478849491840055135525770222867483128095827786654628440686907974149625129018378384278338623534063931174707653958452222521801651624838533795279465700900994859596080336358332237686613795312617744735729207278410532123643498102375388690861577473264123659597468624822259470890325475057681792828546821828561454122027540431776836136158191981424402619660513984866662482997851464317241711536019092576225537277682903447249629875386859430568470245502776824648215137271286984158018886805073419714161818008590984112759570502913426933135884524880878664657943536340091926527640219001785642322157910709784379518683021831234426369292015428063716965588766869766106900304902008845490880157598833166241850501000734382300875610667382826290635176814031784729248705622439131205548283135005496659172520000533716275667602643288631381591580123555836213793698075234566131683535266160086202308831990923537167093899679854481353635736603517547291306582624940178484256320503043623323972628410373211470515627017362104525776485738625467738726409695367566676431420831182290049720074603734047278500181804973533697692462777930842585068796288546208138115444589871735494499177036170838749887386917056772553689250535294614459596594005902061009254832523072811941820055567426327254949238188509314521638691061060890693597832239775500661887299731148468181631722688044479773407855188737577893374080030000455059141007017392259904726955250729317679035042692431575356868073177980727566912339867719889444116572800049338887915004360275697329685481464917291997020113326454367405041882817543984714376100103405665207365631257202766545625928801272835177373168643334101254155556182332734546785024218276152258614633947877845171550081736932107800928358787299284301676935252546941945694432731927165863731681579120025794393927324361272002216953559142325787765052423940200410008406896931667809513729747961058350427855075809870220743847426505766539809171564230024634391518479166568371525063241061704956443327381926224391575872882272168688164453916089134337253944410130242186995127366841832747047973435767763367638987779172271778910579621910088346950107827759088444991032754353052971375049254397442864614632519053308225172609272684171791714867648348406782393031390549024311489176128968758823279829478229427409275827303611688328549754335603817377986019157895012650129661375382922165818691687793586609181880370506799365787231817763860049048819387769928275513710736042874036474778893428733221654570256411723552147624965842551376726047717229905150845197243672257033450929817914335049869667971208222848851505319125187032458376027187522386162258212746912044938708120793341155551304972725295314239104268828298019994045700932776590221763586539613377002104281678723503503426637853462097856583146679899167740821574273209274592879803728778401772583038000114960879078631192032430372043903353325953911364528169494676787553006935684337744702657043617011147335738412337300474765294328961354239147940450470186909467891877521972603603731210078712154810583192237986597460290475680285255027765543453222987542871550272605118024096800091129132639881161276460759408566944661227685063199154847638026077718256084265152904640233953774993953798597680344253048540449584078732489908327225372058548163409829740247866892909877948724400859615516851186915845360031234634073718353630214293537992097315210286506407314823243352431081846959476104619609033412964260400390304686262414032403266846241266564339804400298689871647787069752218693671173404822349441037071381207990881795590074221963276695946771628452922588197263610931852383353888268758940013085045315074149507145065219625436590502596827101177229821384878917860050060221695298949486963276964274030066045819588186224047449968438278271321869791019419714229245594415766835330973073236506433551463998403835623877766640922316592793484351346282051858964110220324440998933524447225312702287007017622957417092134992962258399231211738235545992139485957573178608804309821947864508976583173081499339999520388605262039596616211117408979642088091448193869968420019118772355661434424131745405011592058547847257724480925719554079611239154780745144741876908023911857721147946079178259214056850281057519095703997465187255140354644438338330885495005328750360953265400997906467440491878625827102764700663752028361374150717391200713665931336327613301624806040169753690151448740131980352624529665704451720195315752469710065219449466674198712365205675729015997920907686097537388710372511328464878968332182881975654440643342267719452934245509669816375350552181133226424466396632737756980055962476066110816472193071957139591633387877911117789465591539906372595437833909855089864148582152331603281590700614024179463432447300058939749411088291095352296108351430669058267674229154923312856225324204197329990741432393961324796344875389645337426196564262047218785822075264801639976293272728032661005783573108127072481561443694029235342102316012263587787456730212260158710810291783280006385104795726969775455021171460294751399472474037940607072691311295135606503960247876896899651755654242078950873477330812992127133894630991439286778926201570716813796359473046027126834921620667426027082084957787294429167075417881959004186102891914885298843284506749594944935902407738532266688970822384288145825805696035722651185890783211413359815847584280127909237917911328070438164392208615124164789061822033893588135156176442342539390133027720339584965366298407950132768857041925903628203354868370525416592179401409143024218808521246657220575153243723041053605683900068716195470077895516312780864618334871934402295937678071412340495140541476814592801191767197472618016537876282524777089728822191247023048395012080995905377631053799803607296956235736393309350881377686561832112348662834411024629085649900322461296069374009163799703386375237900134706016477677226336374422012478973451868499887285611995475865241082551456081685116447105048486855011947405837223882468533308557041473609730115582383213494931509161484562021337805829249816324633375169528195278363017118630903585471827074959346058770021620680221903454256569538455303946905404318069227732555316434571923083891522840862560234856574484532579247111950617040804383253187303112296085144547476116711064278926445640726023002134608450846699631246234379097168287114160933462437265602539743286074765174491814011800643428210605418836823159965385013306452667647065571046061500125153231024213989671264439633409516342649592327953742079528226638721996206514290593680773292888714428268648385305010269219125230861587341144260289979850805650830980074405043966693613202909804139485382190702856189791391881844971023674917078286492310869718718647884187473795513355457293278404127813311886009483805036220838069249698689860248775698596881982427417559366083566674345996363424934976491632670441735636578381467061805733682885529107166950713447783893013775708247751317318083197239912984152316083009807866893024208682503100739717693371890765402916550015590368728205925853831762667139901878392847160972715988494455847825728590483490871720137631721212351163030781234356638869460694002488211961253497337112001648501394772849460565167332275813164076857624728823257757787198852912267653443111983009772459644553721626856406711944828246567481769079339262990361099330810291276059728383016470918348973427823883768344356392926402547232361216361171892242352543799294930414813625242108403735295291905671646002608596177949846797799584605931668052695333644580874254805868819077516543967443875662090168746079288781246603748570885607919159086859519015603266201830419156425827762563241316289537629217468709435984702334727116134126759851680522392277426564814844445526486556407597614602934040617779068779945801092290451258794075083266447704216751315842726789639869842267573292186808092270288162538097242663088975005324055297673948599149543697991548298498488448999426987006526202859464029756808185939589834422598863637678445019992242652402815854247496318211673264975738705476274000331558688464810153765931574058973851908699866387610369319756010106872149830344436724397792533795720286702577179680884875451319151874677989625680161433270561810927695290891515314956754435580077513181143925020452263042758388650624863153360683350810182009406810089704938309924272321903878656242184094645368016921214182359106730726596767801704306870052726085944398838163532797493165862065594770876046936210999159565772706309265905766309087370779627524638369988833731526447583961133306697175518937220440149621073330622889982079755828217953662295707098685210671951281329501400123738027022798554788519624898479519992498986879709160823439575653694534157241464220610141014535222546659941480002039089630238806880442437836928803363033890209079612498388254351908192814047043939432716873052103642078571064645486137095888009603891526813241251982089829277712231750636855098429240651346801602458185091401244674889222983566506485306970858692120158464680086208922138690465301154403952067906685714334617943608157914091353439808456123080394160516129627358082260787169352729265725596461354074694098268699610044504189721369829758778535648785777312791132980705382515763940898817785960697451923169245583119320843519626564269294099569411727794304557812100668321632327478930463871374187621557783468269149918469474659210728966243221938127659575924993465881860858215160007342018732851156039377624176795822009188036188453967049936870297110417072846151225832202132996340835632974375537446319293074320644463097949981353862639643450918096935105412575549765436853586560725545675293484460646560553269738945151449552262163574628240965820155104916013579601620828434095119393817206674066450899473629609133446758456810195432610046699439220255405387299337219628118809211602060807590566667510968335034492692967902750591533977090100513151501187473815083644685929254817533152121732774811852256618304280280088334770910331387244771410147392667461653607095768327467151327356607084318142686094458618348853012565452821529808201352633176943428341618091751081639386635128413945920569745959536815916321088468484864600720050646253597060560819506222871096593168305925995320768643434162635393126198100063817998484293664082587755769130875639619361890521435270364707192827732386592498337519319286084045028350952951626703030082226161535118745141898700297960364628089776111641570337933896279128224446765550524674143909765455713468941109222069924604545437734546262946458344347784913951684714464001052365238688523037634927129390521532322637357618777767156071954728356137178845967052892738018259035248717501047068076679086455649770149185993943914689816746707797332930402512739138780810291763139935071854286159016198238041718169744843240288848592114944784043816222405959709557660941923941205314018243900792044039011124309949562175569227163730124371146361767557674677325530913288097295210773138597677129464834649856913802363202808828872194956607268906596651810391386260804127765047136954658120480344076786988476648231685508097712114585454629669001663148514981363706579430540247461814978104496343081352434451517150464817992943727882889808664691026348668194759716844416143096542450998714043709807262293461316848859943885921311708115584469193223131159208565921216813667999041957534524935587951408177581423934940674116408388652753740638584670495517589244582974298217673593716094217742602014483955479862708588425031280438322980245787421003004163544699160896116731192968546867575165482082364218676643252847038533457938997066966493658503851057543579979103484809329593609788850809623276222480487968100045964159237938037013417089677622282189846457319354750123432141363860449133778377505409624790875630146027609363161978101377575779837154740004031915103530533616929950475051318041881035065299430999564625490032364382075551835151429145250719507427482358718398286628293302585530060383016824277142129319319661106475414438599669128777707470062563571950916515927690355383679010188944317075125244085080121017337265726152477725860196816749120263603154084824945395311401292347168011640607435758457245815001995652581644150033945103854647312076773519630954295093326668928450393083951441705981770004879428148822088021835329346203805070362495524073403352762637919117691340623342626256104711518595422887431562169040078661811349584578725965166110166655245806252182586914795892043546694343772543372560406790320991237196798850661245492614106532931099773687314251754596105831481300717969627565693416645027649462694490844276318830957516952704980520331272485249930590119962968273517652131192509676776652859251987443226561155549354135238434474911657013064349755058867735119587098842509358165301548266498942371703781956058251833345559329025858318532701209284071774128300509617845881377294090643627667381027627829762700107404079568014636462947023920154473024232199055534207829776256991197730283306636254754559251346065749759686125443963287328988096512761154000746308385400601115831873543249559379803177644102155086919430756128058812115984548408960701609197633762836168339132752070425032216663689298480422513645915314605332851633289816744587374873534138191770076607951254421241887659697274409777403889877978679482323708610787929292087537960759118759070197063000524150450850912903720630462429193083515911575199647219937233668013722348851101891986687721795525547639597704342398342163130836770085145685952022237073493381040993452123764595222869600564450880709123036966307621527858180276110098366523883319568334205336457814602616497891298617261092203528180023430722236015969920478411945507783982207153411464898735130545613536586883911783523924898984085608369146261220436839581232167677013292431082320497080041662949833992511176798993314804071009993547252879577614860312890426310746241527695652000932382891221998621517776622801486001995637122541171595602371859271733525544784895566675476474243651261186323391011891563617176449255531519221143588262586025542060784994405782250946600387106444452799043757410585565714711364640536813671359605843146471437928292829905244438635268353861786764281577340661591846639280906739498777104763015492805677217939485715378895986365939014062247945640051273263765938222799604337994998570478058645212331842099765972789261500058978681010293736428384372309222948608176818325058063344224670233011059946500592197849104124902076052309354621447490528461011117500299883032353097656691870993721729402374605364224205090587514460232845156426217094106806166518678144972823023877937841305019257300423134874764901665585697511919726545425141576747437728366872998193064385469852427132181834627562026813174292860022726720591247792312978112877238058561919413466810973230908301999534890184841015377886385210909931136357533115205672688788409208629361952571921456912100986141308773065822089095946096257075607007726942447669781573785184325652948357861520725760765092015278363703887191362233377201066321189190814312091216745610699664823995306705240142492821882743744119311102706507534040357912211747532105484939514835477065226224178657052924142181296506435806088192000363064887036387199141895378544817629251265405315153304602740858562718958776764617537479330489684808505446606867023956539958921695928503579231829127018297723297499632502892441701921747864360468219354122751671688144982278140786853990266172892660013988822506589838053118482966314881057997437917521453455364812219753846297157802797395131484624860694439679777337200433871541795547224997456005875934502925888118535639309433988971116941069084611516957436270660172227422765816334666035063869222767617651761040394214746785892929396236996727111178001217892356804757772491474971713537779457566047205102830023469789041710661404924193138328681541320118306260221920424371753463616823120692302279920217152781990060388436984205286062213178182563050071075485404774726525209017465510091000871412044619831466699720521908530388727755062805215731011268342751930294500836367114767843833020320601742788588878699840861114958310848838463726974488255853136321704745461541733366963605544687163863270494563852470399163015529171365722194179040086972848998297555964439180885983807822388752066650503152354795174238437814088211402756393032868353701310147285180781547595626239440949986479189465073759309548244630735524846581154731243751756615068274709137466027033662039349749137786033734123085293913859425833577025427989666244776716223721849753181204915876618878377518436792800936019648838682042001425895799432522906765784110993318015735542375200362572437370262441655739217868174284517554613649454539940876183378506285971713238786865128127349089876835704514105167049009208833657940811480945333318872079392840743060054459984801963995324295446861909827883026592303841962522549154400963665488695259849843067896946035400493814722175778058311268924732878083198232272508795581181780255643267110610624160805394185754631700654846268511218606598681527055000171510530621301999156734589400026022372467760093935791782724490610314783838271543300529665354319073937622232222021957680187732415410177846486615786089229650407661037050065402920341515254658947681438468360427499777089955787716522624545108663636035370008947329448178067658828498870382519062708602727339597094416359726085928886290863842388164188970454332749214336932561424864785682151151020257502529371328355058689621439848836857203610970959055138702441251275558103551112715165970079468981898492954560101542018167457522624593455484482497202839344152123165361733592816762646775881071251053014062533665520580178407912215426023082996652312401298256676948515242559319489102342486971494584831032222377850873410642266204633139495576794135722925053160750808710526606726249632618855873804673769404428718897958236154883922614738354186992368563937506532822781671303061688211027783536474881596454284020167430344096342227586197407630549550334248047350075173015150836084410983331893720083404339571808704251341364047728046682304306015654697010229810224612812841508727802374384892466864527990308872388935073433916439732106056612673497368617909110835266400252345872724362396760122450749453940248240406908689623938799422465528405635070371047032138955107982998647296159384820847566021718468095813380583830221240856177923442196327932602364986479713710728644051847729197800604732838945587780353263577458252060725709938442634500595303634117325525454402284899304550638139565563337349284288566531955408122889327764139178127518533463702827715550208892281206440295777433548734657461255209418705525923004517338718635695768686358153462370972619358117329478222093419310370707135578033497823681898618207704018832734005757991953557924874518740863992307190451351353399383493562919236991701891986419873514032602744261193564281888016685721301612793725502884444448107650214557046279373606290837963138379648753579882848394866732039702914618666867571168402401400564304524758460063825583742335666660257183378597714037612096113637590943481736549946933543771894101621100523526928273787920776890868586189593534307910789414276668683776623533659610168398349801180452689841598564309198146445293607660422948943652454212390405552677037043555656735721180212683178162967357356783911707408732522308513911156975795846317388554127461191950921236199156276958156925983960762255183760369444782180339176390920119486381027568670302763844038243360406679963822031254733053695201936000797176232868435248261805388725129962440831528458708555915186557291906181698968253500642653179751774263785343600285836010652176969637863746340749839389833435143735377358858038468114497508521483647898039003672809068239132873800448005150649744183290160253088532144474363702306442982447391500109353046077154916581695069847958320584674201326702810435930876678367349193125374570082496150246224631499770752241535788934555912522450911487859606674447111972156444382695371217285835111470632290391484835193391077401527202406763323619131459083381770632172784214173767680430312036595399807790627723047582499992174065062270505045485187638504652351498853829604604694615610846093286219368657867968120250972453982322073499879844009134321772723941448394650802162442905128165947253553421266604429137815385867619320120519693007002133088295986851616673745918771643389091626840322146977589356753589690555100728742450679573300002749904781877713583232257160048275102713115140547125216019068122197281131109910492032222661787972751788120210347409947110097138766667348372878273974657786782393455744746550768705798663861630020343886328001130757978274182526847635085631333839875551343909759914833227012309701832234006732045666518243621938831698309228319828133352411981874832830397961985912743103813876062691155469553376516559332828125721354738792745949732164608569011861218143059966188525879982511264817290709820629754973253445332668673312948837004902099890667305146481518003811295748555899661414754614796609101426811191349484251140836490596153626797526545605835512470236660156548469171369555038985983899196648205557271743313846747371210479698607661950940062311690965468651272155513729411251460504545025322422202128675102728138315987840858253497744921416890678795434894564817265266059358127266108304666887347956917708960182315899039889811981584268445965144370896232888909821975984592498070644800334069189353425187082869728661234636048789146515145406825367074622023914134632559618063401240227395819987929753983183997988604748889854541778106181073385338603060934585680566690349739493013741667506892192194844416969844917530908043272907988559498150011902327270916179144340148244155116937535522803593335284106116101763546186018394880767714783695302848892267399008655866904431102908823335366388903051683220237883130535418021467805647884292190328096498664798967188533116060904501676110910970235980144284229381138384766263819616529688054248933130364213267196768470839828513312628060051045603450180137285143700316645794921711235010405239509205514671623089126249618690370142837478679385829251127512031245026648447762107102682033424246013166755517997692870944726329630867871728581161318650385281836562735773768545741873486987392508100763960043153265130941618931168677107942165962814076918391390662691334338390545345058193394216827289732114962796868255586317944274253010443074419717180260143006489007764484953097879108198335765727748780624633926114831167787913613598895189791747966188073819999928387914972288213935096226146731587222580637636572761953724081183655342956848774155756072938719974538401822600242557166564280871973385981802908559192193224162317268367250191214149273686837825829845715526556810306163216217171321855092797096282428050934298773637622416971160241777742599168710282056594519202131424737335868268437060984256708986603941532746987715393756786568384642490498350775955522510793547187193439436799147493817364453065522467261550565969441642026096426463756917785848661832132200985732942968875240768886227206737408752239966618069070481861739475746046792181273329542312569113117179884310858284819166554982056023002902718902045219111737036993935836113702941804165952299210242302542330678568718273201947015875104369634113057464956728777728680589888843416905853046263980251079691453747471696952062171996608078236355652502972892810825528818943136678095918676135809987956978453488824665887966622638431409712504334927178285013575704445090325681089388355010991993193212189160896665461800524739328491292139178823446221543232194751031780707396815003945606786637646951049927315881696504440646748979975360424704672214558500794454211234211620791131283405260190574767671697049548819068427248650178535919286537297570289687707408846005837448724173237659051331684130139897145005662292112085664368921961918907416716816224889612175050835718074563755218577466081272422573402954632606705071149664022350936971357344428284686796133889679522791061923579603573915233994604812851758065020113408812124750895063635739240820368447270063239962062294473337836175602226953532382436644701425618212932249731439989017066829944732449533674032799342843039184948703798137503329554059886370169864418877696702447234364870543481353681335437239979069029897124727964891662809382895963197162177612055547159403012419647590286785241908216120752726738783781454092326465594321872349615661343259917590712658247736031266223014732750859688786239740499295715862359536532383780634837714060998863500987599553053878880789248916478166395372053423031852263831912243473676701679834784063033212808517788263819724091728210875694576062576885215173963905758455290913340828853543969823552332782641581073188971045564893283173685001500111314586320501413491984742665710647619882684278589831392121031894743429825046595758038220770291518071123458055390700782567940481901204774987852281102625890237443299289639370102639574541097961674043427679121137305577658657386713150565690462519675797018880469179076207621841193128427767394043902386996444944749074998076023083843473514816555550326051217878057135661988186622846149875120492147177594728602466143034807392235003408507760431584719923570395645790397523359975842089048986614875269398889749419914077239439249151954808000462501016307240869641092319717840270937478121472972006502242574343429899122861306699682270430401927169210252742512057745800823566169118338723887069855998866324737525829161465889630394699891530863280918094034742630484236166313678687535330632570983979948793058406845010813721642465187040317009342822125354946701580757823714908186372503157356164353993262828456249463166385933163185306832481469995775389276141324942567979697554373579377621291563067549603515322770253067909837071008325270860962646624156818832401466873137887527989317968126593401611379753214631894330607281128467241004839390074524336834940622737088079328996899434281844766116886077257840077440380976402038246865959448304301819797055649470007430353209572061816566153468801809323228232943975451489271580794420068191038345564527938750755174632611351046622288726723304193893870915522623833402689419414536698956387611536791595433982436011785801071623546064930299964340190262880382058762582101641093906846495569669848404477117065544432410265120460083404011597646207355810151793814143405456867796011202302295066467532971734263649573362897638708812713083899952399604852128455852678143461352800471592593745702210019844433701235048491472327851075559097502354731490518296982301954648911689679814193216533874748285831630135349724658610686952150094681205854410063814706230938807882217753424225001199691040569561162898471282680204782213612139975036147967180959347888548359786284090728907388472299552618714916094848285892196652196404315343305188717393315213797116402441630996101386353545579167503017436242555543023739913820235595168383182131414423760972135104351950495831263776703922820314121246339369220759198427255765450044727909350594827560728494491383874985366800308003920876231354807908583671815509096437703440719463509799069413591844552991483234561990343240041927656098768538793358785019781201546367325401734788262877217153865565928170518779335875403137066108190420775581585445128704175405557086517231866309551973588038184834934194370163421744964237496236212395958206488550878987143495702872689646058653178669822396529757647862249578743078500846284934624531954237800434790201394767558953272664138884634717295337310602635299850228771287430646519144323273267513680734443589333740028307367654403855059438463958903339844933760795685615976387715652114690486631903218601437302769394713305108668403958764764944182524522465422124021401404331233709178305649449565845521273722215048421265822138898837221273608749505166125619930262311249375533632234562918562438888707430287560411221552374509063614481664252151354003984989386820057906058364278151579798094438122447407816454879046341287759676659763506776882276158801607124989239022744351850220261258847026308632303255945997280342005375211291758163879438965185279712916579008182125156741793139310460133029936558819422207500399853805066465930909925374609176680010184107830090155891320075961024225343969622513132987646883740248085296274896594422387350557808337009777029138405528212337773094323493515152438602730690868376713930912310868429563319908014477706121654944577650321964832614157882735968824472569403164533676948191417224738459628229606516495775055152613544309934062045842889653443800020500207597305906753847400515780206890922855048607434897569039586226752092222363764636595994170034978796536912941810671909981984969872064069271891852719234355100361825709005025626600394151726412334294242680549351511810168855592088711449500779742100188967029088083036596848824652176828936700714357523948897517967243995237244353674976535636931345499458596026567971131077109638689248317089402624869087807531651290613160180855369164378093602358445089929575226128591663284470313473396252069183615129231802669485823519076767820051329810260140908558775456163773713987149059396971023368197824975515509416922043816537768641830048762586968494733592438859969799942090080895330368586999496926195461523601323382125508737905438101466191220814089781619558282077612072711786337232401484985776123378595210987523798400673075871615775910569821925071085663692112800654111432007705582510752191064107741958460664471658457672505164568850801269045923356266875107235521658221069135427507135066238796878866586295663374489166316895328632113943163919840152768401484828611917773261822916418195353329114391736731657479535365365387515722425485810924890381242434830493303580703038944825974092455688147289031279051864242764069042361162227532284608264110059862640427308461374150291989610676363170331555852344492594056793519527666511977659510604487211474141486189950620999258914828551269001078045221662647940105211692567723583535035561053119211928496922080970819101482089702506611806974068296231324375479972363966703105900369064181682052502327863983429537623666534262252334533676328577169988571989038385342820788455456053658185633995190583693822834409328720859223988303412043305507366655261415570022064950817495339451638106987772534083706808812082267410103168143537426749212826502459583567316502074581345608504562620292703501670191051101535513613573164043284782792051260588691392852044345166212881954617834923811273634064488042246194073347696147523042165940977712485656094720617766488568075314818840712949124211717527351557781878861840423942111240435340502965453814228631007361658098651031250617411367303927591591192463438330697738227196132835375676660970457437420593867409598145443234488415529956632243772564992700714670178331825329655671686416238093524695768501692019111576168753714679566234500089771274179712393276231871869259753037542625653523475302089342815127888938360947701017893386715535422220271165253120815596241685017643763788114308871607434348492312904658623998802764820698720057005500861628483207010280450336668331349987397673548432231993846716065335100870937992108247329190967906337384360534039763600303766167570289206907880799763057156012830088255697513512781066623652272232270334209779217658444776780083102948351045654863369992789772542155884861262000193027593951524739666940685021032689999202869079798188320312625064652530746873442534868770613780025636281067992554520189513483246189796426919542379654159655783853517203773753682918640285487399302401317742933567636479011012378033818403793685035985665155715706224660693655336801443362287101905378581033014788758713711871531416141979362787388351333793273208365205075921317093655828895941184125813297154042845372698076444490538392285091820503089909340427637140424314905762709904898103571031510952220522938213079551776248885464466813406983924637521980923381767283208000002880347472367554160223923551802940073452152000113446123430039590595542157983039631242618027228010890576214367676701110722718213691994053804292795808972968857566503709422297428886154764286781998437457552231412147640795078452702047159741867294743716151776330484149339408811576928299759522155750533560196443387556553046165897457788134129631087772651861765601830607523084085610829773403611293740565627136653268785162608552993193139206895607658025909776941174717762646616927581914140430367210651342225822649131007114258566387854415342130669789930379914812931327684654248040983818326849792498063098906660998622814337239585613164625826016683337279000836789389099305445041860089582205865175217061169473375390497133454849984623499259262010229872520687684486815620770886651913578943418992571310153541972537544925311519435249247812906388342784188849667730247320590999822008399106562211485930451341002551395670970876802409107489018063263781024512663607034093407965908815472642904475071985351391205289056181905447496371039961378494242772429594907276047958320405908587183459171263236457120300779543514776983252777243978188252084089852515755950959761455854672512134077225223196127505016488061936783425323850011392503155040132302764816431997013998202350641460767238625716859626291487857518393852849046855898201492670578230582123917534943420218095444126425778221182180263704848692247076750507578394131987854803229497279604888167173071930884594608897150301355090743721896739795556661729101090014229067282925180094942480804285285041668207629573416298921489493979693084219226798083545883223226608210208476191776307680802049849247921950235107511446234188495482565260487725220356369318278261391380066212576813352543815618575782636299575676187854598326368914678344159358247321360358113072602543417773440281852184581528689112228382755180388660484755543486968945794934465356744986190495746488419882906817936423576828292037839660940652879461489933578576055174725025438305894540441216591272287767144441329679267405009694489758426048866221954225979710986966236063924250073981031789645479871707290184855643299510172667823831066650920555728226924819601416582266711869096793011021016548510663848370363049808559237775791059377308592865373474218715223147081956665973350248541828122518528753188781279328709077563561011415790039703578688675467679980093130900565117662291888907791442391008181185724384341725367154745203988855906724746730287475254248057052272971913417739862758939895117655365739756758271409321854523704081265838845780583696287974130075392177062454589043143019396961553397642594208670888288049319785220339185962516245487090951080858460714355514458150586046474496841236618255947557068823872804147045426382135386139293151033986036698335653026159717641778838415046105723383859480203380929605175654725731183865515703022165552645417239713936714473769672776984455824415215316740886006008270709523471956764411199722666348909432829580017360593256017435104453875213328817614563016149154252760166417287176765145918728763193259514077452595224884486498671567486813876048871595391164115229454495183747294868749237071948555261565499471462672074848827336022233392532948246773830447720728159369737826631581316651066190126674538431686486209067291014281368166369325660854957265752371444217989677140510983913724876442924833246529436908971879411809910722184205567010977850291379769357739403156701223335008561886384689863912140743075903011617488246942038561200392654516565414048950958458493297493391676424204180645885718344661744506963348296024467600294806744180519158512167965902294794847702000164155065243519736726598985739972710412820201502377659625244840147719502094584297536298968806258280647509411582022619279257584565607193516056305677131506330402664011557614946294051481817288628960734410764476277665734640716825553684758423438074761979630154417215166482224042729921909389814772927180800222050208434931603909058905301566484179066681234629198626919713703686024233141746651668012638386173265971269985215400030980319590763300019552719502524562992174326549192162362815399500874716751311684220168085619781071735001572103477837915652466970371861011672184627262750825079095796143375875838871912488184179920708306327156659148605414629953502541398209481589025011025674644886145683392365202166019054982194311430101286898639288593106918756135057548215033744380974502947333810779504281421018885529916755967744745438696972211131477895581062541684018485533722188761046962543491522573669134831953205934392165660715792229924457008252281326928808308034655954566887733152247350117691002057625328028589077326175699861584481671707772927445881555398322253117822920360546488771928081964490098519414617324365681775931998611507681372742626796859007710662472923902500624851090544102064084004472816573328306296565406610545914923376655159229375438605924747283266589762909670120916344826569416056697827079672273716750201480687251551313988360797120888708082839566518737611487011811814764930807811135515621761398564527836132583680284226553250405261876765343603714717957973724285613226952461034183560511679305878899002730110927171656162397811313975308425129680463271509990732844882336387824248748142099571500341709038056124885507795408341015800887556813908561970417309171740193470934558721410014100593311390115961210083540530469489075507743155814994119978390794916591218641554510600667829853981852215837235875769456917375813510439632691894988822978195083669768674612319222233682561882007327487676783209096995048809613181309887177230115265970924177235601003856209604229120016229291966616166027185707283569933734431718038820023203324717629707384422298072128015050599724149048559621807803046966861348191054471037254187078481533845222318532011052583432424862339589178304203594466301542777681586631402331021049279927825712233708673773455505893484602746192737266701581452546478555249363286052392234959450468294033518084710690483388887742278328182116616017688538469228901694628012846380747168969986082526702915954115296266127691736745721494020124138011081925578114233229848951539509501124162712994588038987287469702803337417166738289581381791544138962451323446149974470116230869041834598020702740645610518623545160431311276687587986313918108398064525996157390098011176902806705629543097205233726395332326987446155498505635623428707625165024421261842440474264970271708446220227618157353568066001642627619978133427799233975491087973824824307566889506782122348771945480746943930495968187419495108498552889593172239430343357682736258846945918321791097742063565888050506984006206266356219334299619213713834745196642864255482190305270699577621459327718445156185964119245951895862929430399673037687691512900582567486480717609949953384605265955187777250295336444385652949229460898182609551924039157257029429359961773578669445412469162367425510642243998882180774749867952505364897637412613957997496083904190340884528966683688338759116498817653759024322844522636515163403373385420696348866997717093758589099860453454907256099436776832150809450972597346106961179356321570355281557383177645601480703218483193625925742865408769949859646008016662384403608920871311326074367507291596302816539817411104794634957298253253387931746250982171012251854464194622630654510990142107864306646602366620108850526742098818442794437226272281382662067569305055876125516353717520071446790990390427636257130275224718170788547289776043198718500066649847396523539807957654805353565598782033431318988269164433405392122958821773722047240569422175484635377664432177436517995458201281166498723690643489323736122103359931321608606900485803330483083531403072804776801782933123149939696452595722341830860367233349510320242675027042206680614297771218019261131694479466457039712132169622274388854321541114140438682948692260198184688308404630217707297584500825863163791605695911405970899515961825863994620000609696016519539709092038102214401355557148224436025382914945092631471669243181043812067968985282141322382604396247478260996618136807479837647012060311283551110725200760998906058812589244121875686669384976565495422967329878363674467655624438518262898611434521155950199684942976945529621115913717410200681694133786468085475414963506974536662677081440473061384809290606446983260090602737437401083441331919018106462427947007386587882754253864683907040188467361809245060625349020386774359226657215607756448225543138911834349616001653452180633829043863546513134556425965063660338761643723259308365458933927981428529207990619579034089086154828878028539432441977188536058214304265477965656296249631363523013803703998670442087267433418284737440791629942937496495862188914338565124975736433545549588295337749610257629277120290891768408292105846488442992640408167687861295282511868653877884538927639848530473980668478076560206465344220797313326669518902339586002047141354129694435186294604557845599840104800174435975151419285590497492383318082609260931349672190992187611299095728254708338819750490155322733790784778342453330710217143441173324586089079657091972395871071134875787524375160188048419519469025511384417846386446573194508131794959559235667150205099282426272424502867945223427128141698498122391712567379823267983419074261213376994217224086303040936426350089500724150868479989609651878376113260002375607405418808206156235435653495761155976339465947372673639884515694052996746098886711310702729262969683306637238310794020962651056940047846191529062059920505838847350989725623575325963988046972313049767403395603240436473425508239401856629057049656993341876937843984024392990820302414230535305348797301892425307244608784994450523337227363629495749988213444686053150377454552192249053428668940209512017287053883047901920222160085267379518896152147688482953513385995689484535795139909466367741912792907471472070333361875245818191769735923159857708723699570802209573240190519992401192590363165858419036401435936592646093960719785615486222844846277056505883968455702405611455232929912833448983140620387629553972167770551310064346997930196340140933280117458353301935661263868780337397113038830498597985627019357368669288697339697257130188026650603265068150778473804523380421263102878075297309777883483769098894150002519216937697115862342731414672104331004345684414483334306359031966167741471204279381902058738044959307739456578223401240973996689600683779647864239517652243126624580787990270769496906870587923485629213524260865085220513249652483724210886098628415347705673101925886281011598356493290060414321676413859209013792462204360966299270783883436961899677479910149398851309032573693919970899233364923777695839260427699279395748179713246928750524831812975053617418878197710342724172327415865020779478267486375526066501055083930138530341890515443259296600929522051889750548483345375394732618339369710452062592845305976479938590463158614870081919048648896377711640625403879809570995534114655043265343752936725765994692332073509375695206027364932379605333636497635730037453870407160943358698716617456211708556598640455443450411077518986732154674877210445641523715562602816008529048417354151708200964563991155577140879547865677055695276560013349569280663441987816920816256289035442889350914353471828241251036832622119099287059451713374973633574234807033981322252861430380439939032572477370612217175279094319190146583086179807006052418865285764624495203358011215475309817845673914494524767924816462485757748217505158817316913004092674399051734511158150039849833870097793219616453537287507788731746285707623970265705946864492928535308310435640868599104873505439859795853892669235004259514030406861394669611244841754902063947930383658144093751125441803327015159531437911956729662637156373044506106244727697213419289297737131075682327758513948491427773415159626135098316336944063537097451982582227343191590704596233099142693454288378054492871599243517902256860919324399153743708715162574462872941015725894891915002871908682230854121784700962145579273532968416767724914761200556355574481095578419077007004911977847976212523524889394494247272745271138078582201551064453638769632829423907084074923269382517280398671904302262920886422012723668713651431555769426435049416716032071772555814441756199161935479636377228604718330513845723329143207711621861238488231498928917174734796550966871528977639941876100283318123022306273738828886836697940298548554735473087125041510874314293646181132229896162749244983941970530092742133264490690585833361124282966025983404839964604868094919628697994285569042328039087613514631979317350640582220996337145359430685540454034393802636739965222258120328120698696611130710440355790230222664644210045043061296759231677538947198036961624202932245666623866731010645676503148737354247638685025147265733603504239409659530769349629281507364712558277938944501286403466741215754791171324757568934432549983846067874153275570794984713077450164001836515345697299019217585448754680053641352400265613545584460771081164910401063372364497745892452422972195076706327244967673353193895010065147647378105993364189102887209511702565834831935575685281797694205786714535537688151523767973206599597833425119531804084431349776908083074272227052367693380539469954834061808527823704048892650496153278593473201444226661265085637088625332957542128698965905931896423564885364216852508222596188950815964007127384677537298727902150062008232042080636985434551323339474666783017357436923469515063556994710139797361139210328031131739948644864591101073765449849125929971377731203552117837982683857565453628016780543950487517268183561624125119970812634852546906679153220153860027316827520963316799545444049570824476858200210933414335079583701143272720200398578059290120114695943756634827880929195802391107849288925359410864408875303771541356925357544699028268246093529614321426745899393897395738778032818421937691829078567018624040115864442925832338587960513820926319538105032834308617328066794452194677442185450112133526957514195773923589692333317934363260974691376245261231134880132151381477441909127361614435723663897593373481004792854817091483371638644369792506093938364191034857671436575337900008709895591961236696879465472032887203637675246902816658865584691018359443868536539129651278761502173221707007282949558637213083923100926460880249636169211264784073557950074068818593859779371359672805107765250928873454913996480703134222911717264129074754257758819953423210611955663870038533144706816236332891800478072513702059332002330318185415446877592410075112497040045300790569720932083845491267221633471035307781506184173946515754935613087799592881050424150777966650610862909272763139270412793717076048899122226306808341632684350225036863672691572390613270545740403340520887827625217695999817659778401071634861806412291439892456297392895412685226982543443294855094648664939903081576216888344354141550661229506241163722097392722196210457546640905567633961399893174386386931441551024012545405444321310693809293419259666595587677213533608928475220596578128074230340545347282156873372802098535160889146036843568051680997932425012662319252388845236364742979698947747900157140128709606402760253460038601728290928246796623153687715159266653690089970869671268904326806855708589391850061641905101451834733805584875773244475301392535891829730285568198051195295627380232349445375366571685465230486334658362844827688718983546638873444864140484687147415318295260533221686650394288195800214194568160531023249283807040423162012417423921556921286018054824492131622301754695062404731163138685768926992083042781725011025666825270792471900474886088531009579674852744804147214920084167778803602554277521025992956436314097919757016525714153040732030514435887691340868188969828080079632914797601240666416001794673299054097019405186337823960587719153853565537358828516716749263200158134131587130336265842028096129611787784401951420332970031301138057729776957538565229239689370150980544210577909131124618245271467868833882824343627242135706574644255204877684149928198318861332002235111526871392434076322015183887156802603095984872773571584067959147073447365826692286492806957951936078094087572801110249253871558056527305514112139510669267928557877371880156579019161791196067774862288208899181434350177254229228112324642408715184449140673094857083034080854290346598647154506226331464170947167587043263475771510201126672939077950896017244979564234821860697233702468663619338500727548552767229500120872004474473413352540893839180811131512733270532822184442947932633548431090476919714686360426920518377265343643427520026977771476840791210670007247298489878980940298597363380976068389035918629524459937509175822512733290845999968271174786010754383648243138386394718899116659403302455053821170314246308680196658095671148665156282235483656760571019176168959086721922603902679614585511125075644418223041531306740138613255577354843804042201096130781255008415813436743121144460583674712434480836688355581291635001629938321282858466421125159854054943659414699120731030028937526369470696629884401294447737607944612304839597901807323755095864788992565283374811702270607831327852618394191799672140331426562052615340864959491908873353263454931411450001816739209784355836599632158243859846498844103092155466211599522335586854784794395110003701610394723851473793748081166196129021811961023445396017787664717114634866006899596645806123944606509358379735131740306327732137238236898638947910104049670468083756537700824372264090090483554855546842994112108856966883057513800649942068717571272433743448073114755117471333803665542030475273654663590316639393172234008642730508103615337693385204650655160996920345712973200710901340899136349671870224483793382975326192860365689306167238082021704050168053123645468990095421358332617439810102151229063285048444702100432262096342856094647532266938160200317822250729096507203577781494702487765994902470547341766616307786191552185828707396490505309920866330900440236349118573097944951731074115034482837504954380779868385443706189468899383887707737483584198133192984824661938940611012681680259398473102289596701047542390746896256803870121914525475536010166831270852964111793978163104642136448194549873475093065193603101054824945025763583734991611007298450391941205210756415540857749259917756709046890321709555104236573202210774566494169952153744510079158726312664616320302301202703901198092817138436997037018248547775664473792867809010192881478542770552525511014152098948462491931801681950724079425257902220129640363070455236852082392664283713083233946446296480523230336618573462462828678794131609664488155187079840429637926230869313960892631189834269830412760415766771464502286875174574170962139300080417933158160064625449526246294893581682194320363228080519357818659448995902804949266416478022522279679873869035340975777919352489427657317886474207341179571633173604464670056302955941260647235286542848731853086427918567393235969630887158456613275640239555006701685718264410748362188713211427222840497228367523524609115036448571466542543363921563175567364228151068882840495350982867139650003761311695540262285514064542272290046195561383730431033758371629046518700082874383172892738091411922914817413096089320712149384150212127794442915883373308773069411084158021666148779846859975605090017207131570008059862050560763271881997140093478943940464683657597942338478176509956195856102722986956568557401903091275536166438512974202353806715908392995551970025200259674743870201636949836752509542315880870760982731012764954270033929772399500339961002389892371038684581001658060557033192015137523724565357033580031359544493528101569374577468083531537277636607821640827698003670720723116723005655410910031021266369375905210009505099818575702751210001226172934121729056783077281519387456210048006492184915607864824741348885763706679806241051575605141625819792542800183178823996498973365690024040325341253654056436617255620449676425404453098955194157563695418064124423626551971077616271287327810785511193231467215171351104966572675164870126796222927283068343746394922713327289433611283113706959558446104484486454671258752506958059145639335956361112979223644708726762126291754365614657891844009408851384750038103107279262768422240302816875115083862031914178918852650059377103142127805286709147460216448638844256056102668212322003214243948566293059602017078308216507574614553401660708635802192208212184391910475085124386442954810554676136523833900769565256559321548814111401171825238234753759440323009357560304683496536412799768228920086892027726487843261189675006360493380505628861011388487361169623577517285818333234227665993919461494968485671154896990809112191630845115716831629100563433376662043626363622555464612959006331530732170993284845688541189035553660789808549042657975795041975775333458333245694185357192068419546616543665364425205769886325530886060684749946024103418785399831605450409136137352434843847734230531350900757668675964400883827571321081170823669598697201029646829729476761951509844404159436548072578822206293004981540932788780104907065836616444619704496239419972870715605683863401070765845703322662890462414170591970649580920115744518257734438385538166635484206713846929458227286047641722639580344754276471651303773318524009805518529061609541198265072215071606510491717331787807923667003675841756922011826816723765518519880710317228431489109799720979666169828959723696605860337316846703049495091871351535027677546350397754624511295269350880896711084142641668148053448634062796237270182098340880149062062458931802755810621265536579404359607372847548475817726170041142076242708704728789254328105146917744212730009091011207576088648320790921595180225901521600919280468199471454628623150591002408088918774117392486681479555920732644336104325996090437608503365614795422340375780870862955445709142303841983684766951396489078808442703231111466049164037833828664737971567095490076894216747460864783597586153500626719104935790268224338653047529602114895250209153199078931401957911057245462666166239594585777978472879823283348759897294283732410645828441945617135226643047298186226691574754816735047634113502476569683126561662666951203708543651974975305845425241932339713360938723701876306000691289245260183776824632426819669082257863233056247133132595623943628890195757979025324452466210043402236224778886349565912602936647142568704132952500574130761877560242650003439812709508548401663250121774166390379432607061311588073786674202650007065670998348682725372929877002077881990222212730099614196205279710657080686835906655183414853233554058029696570056987893771419306621424427259728983942206238470230339282958316909910807116929216024684368559064682555423073214283890126810434792025514279813227286430129231566106988085810590777358364474728112494076984204725608938594571705428182158384830747445432040238306139077438761239107425861316562551426743613914264942207486429372619642223928973480503733919601948271798548897810898412281433429874203188900768533248025702960038672147606746618899034350833155280885923423841843029184865045871695257856699031539163819144822962795763763743259684107329786283685572610964440833782388617673491050679395651584855412243045817362758360017046053550549568431668260614450783507075347428453276915195896720227177196176816295775476437897599650684295356772599553407437045835139929300552385216185237085498000431054782046703007182772186385666852435861732695728738075720645487813174530685003646685463866662989755080353508565867423280318965373029483409627059413535261948390505125742409212221779853127193912876709521269395653916932867399818954320180136179239176029310382595051316576710730996142341469460783738784256291412045479254640902609255582039681503896041129251213004028288621535929200494474417764695717688854916109864182059889770924333068197946651599741167216299294183405387933109334824843321676775604186480995772282700540297405991207565237197343395783968862109493156890428292726085651245585681315539254934888184332553236604259129558828234838962041254619066371291659469094239298248827115099051566665838910282373807647234951343676521651245035647983853815854887113858535752857949393812049263156073801988951573524056535581521871982133760401185184359408413258829020372135478393084494465248139167411436368548347965449513569882832537894266106391118805334111667312729751705073698847041579253323153729805578836560887127849522012990309873024149513767009494322192377673178149199345662543388408050201250724088208050667946095781969183795712934027550203457966947340220371810242136035804919295521799856983963059183221025306854788008528692058932905220911926180062846136963825152207489042359659051115511967682797046742907883887276935136019867087338416091001325084966856389763237211515554896723983621247767125219913875397987096952473765388237827449884564044661256155901529273784479072112789070903931941546958253574772964573154472564854842239149595070497865493158456028461954007483521802641213506259827880093649245188544413580282330226089327005666066821399286787220891832099088093234526312831688368654319124966838988878384456275421651826873375318761893265088259464377138170081150757488834583917883314566450741695798758512043782798211234653518584158172050453485475722431935726584470031372864230613183702732905067943425204405779027200356088808321624635287310054676074943136435852975089297203584920747116308041608251689148508294063771535368060979902139442926580703239148475668348547077405327311100996800185132252114838192234323018624382365187975867534837229453669593496013157257775274699425797225242801346245444584385909769818458974796916054838069858799246266343040215973387791033764294534245131708253974077294318753461124507231199986612853784913271175818674171257791896583607305873047188725735810575240574897350472440219073400864281329101976791816856854746866684729113071024510454839773830704507013759829558946686162606902811819560563317612792647598386401272574092958020067705229364706198802273551932753211975920438338693837914773807420892088186251751516854321275580014713637639877095391043910543300613693621545528331368567285525686382965941038381141574399077840352594114109037808543051185159833206327179474353087845039528282830512609904861341128333504851651870714373396583924795643734956177599813801892938919005895366326168675723538072130882258041271827416016872506472030845344644003339451756036412051004109790365511767387328012162158913052984886672378783893717961050863056187355813932864979916747870081983384733888534052020690071881793046744822658128000806932984671140535527622397798172144574836888248121621384091054242212508916137307166935178518633690034397349791030252119661142026430115344410485498726942158394808861336079132002755238228747891840379502826908201687020429956007977539458910227171202928967267168310706620257824934322880342704736180428528369634920773158885810721087853868132634510049448372141757619442689470922484792180133332176271793674066347460458885333801333598626795748050306524877781517332755300617093840687815117849805153731032804810204324643127739872745842252846650060067584029399131902238735830439474270584900217633986086911021495614316099069372230955477977936840221658945753168338458744656438397594724057218036444573234987127235469420639317862134788315328832125722557925146970170493450947068627670105373268638004783926590400156542238068939253493578639032638362204452789720029388050104815203903185842251277556353380277370293551461855254795025944282242877362495541474748373519491679476364129454737081797926983893005392287418308353632444739760791772892807902751797141754741356560609587178848716433125125821167949611352735389253584404139976750330151820630368049859994223653938505906601144066904460776555804479974108404952522064941317521876247083775518582933706579014897118523248579454271033194934797967393895947077334385527444603858930575396483626080805138569993893793924231073036008419423972112875043583132531578456634777778129802221599342855722432144259543478390615974692777849184982312968901519846512392585649665381425424652673475828684675571744908904523039562010184748177939497355603594945862401319170949223008297574926505286216902997317047410357664024343036447777792103488972024309713341440823928486917313594318448397684899215350739875246530676384023557163831057270715414624719665760970583398141361575786853738566793702767414378465196461274865157514261471295199917106775000537618012683741972139822536312965933121690830580416070210296083180426107486642398788750988107193646714219127731571505528367706732808869749861365922357264826101064653250342943452418552124716607753089036330445631747376992428671144259045309766917734123260820197023216721706012724533314675309576698153480774510326537467835158794380623633297037590088816857349456720218749730163639890357907126708712215865957214903169452216400956640963470608635258403912390558173027560979125538173132193218256058750959756833984870420520779920305013765305081743667678803331663647131508022102613988305353453888875396083875132043915019191190204643524252881963419165552583479723155273495602448799865593951606885407186106010682348674555620028444368520103472129434896464912375510065181204244077926078833163835259507660280575472204152897712291212589242606089726430874612388141236278642720122342061472845790678227811763872372484128576549683103370329945618591122930108129876354321137917276027130580788005220401526336096849724050316318271469651009672727653618363259672890986707138498467282774905872316706205305420856840345976325079230489654221031092050312841047444103796813406263675550535173988528527439582335444127947787924709188298066466448769042588607843883410919115088912383131206303355382952708381007756241505257726554411345957658804172256940213275276238782108689557239011275948088025282674457064055681799801798366071662870954108097503482927767740280894808656090290449608974698657535623399044022379775704674433879088027293113908964811566002217550593267596865201749624375341058135576946976130328835312018827896335221684667658910195669500785645146072199698815885947676542286957222674177271839541801832482757066706422911103760533002390337924893960934875254578242662615081961439576683321452444508771857554196491339478975220849608127409725675305867366163828304342553542666042118578355873135892832627330905238936899412941095103374287916721929175521919417886192506377866735552146756561893530100595940862653206656586555370617665991357704269493248126448299121074165645269372840297977459085180941761959876707171103622517461309686795498525476549161172516099643592143909627630150580310892069546773073352905097666125913457887514640643870227812707399994332344911313610114998187698382910795488854379458711079166479147179037049140149582128783036405915523459693220335067348834833038282595057399004486739415830049476221622357110618823772760728048691824624414755213743166222919780000153027985330836216832665223213029598852933838055847579936776689020414412412314530013756448016086063088804486954480113767303235386751381614508759892970589175770324440860189656604963515574878469130258513605655815563365241823811161702051073168542923829990226858228379953541072146380235552006697083080425964219109842852563731349518977821688378781623271412162757530036595555959838731465379950604242747216822100512630860497842748583726790220284757150692719922898186195473753882270162935069116217889607280973979197469654790433939072711953183279594915201599053995462212318991817236294785412397944645059524627584598945940289783736639477628070474124755993859097254774317038553752687455506045704127352239248268395168398576207819554226232357321902000848516071627699794330719503181304341051461581597110594847988298325063829466409564997978647899802570626053593055825494900145911397063000411138950932444020980013749290605748170905599932985039186523754169038263496169788412344676814075016761357345965166395035214886275367965789901453631643001514783110627197632318074035681506547821377091883473666728810134559090509257652621924957074128530000415607271641395010508137391963385416961293483560945372345305535177459833931627811201487654698129346422716874158899672793099588638050014100726229827937038836529576617752307722410403412804497164874208826880719523758810033255815840167734327886038083823306776996366323862095321131977241170382904054762107403135126059404536557463930273247512428702185266023762764317143684684938905237582583158278996747620742268899017517875113700096815181209743898557640265574223376441697541526664734989390726575435969310802197120638147318670594324489353125974722308489438827341000244647008155959437760679577377702076327705025564605336027212489292720386002822494578740849487085805264029465400373975861701403538813472053166871843732709189858184288220970721140480055069265867209143854502238258521865004619339855678069581356488237122519448412352087186832795541918078519299917705675650984555804621861648142580008877649053107577962223264396421486365648035615862084509360155394364937092387736325154392648735211221117521864561151533027087958117685761473864939009543010891542949041060860716297186272388828123050913323443504056340630529295121154303121531893016958424900915874974438148664663550144215270534699995448440046781479251970077769191168245556138601869130844895375731954987696508505560504421823069057689252223574420463758942749980424750414063284077337145000011096559477494367084118378351822625497941582924029565846884609010103713501625410514157639508262380262735890996534183954399575175625264307370365786771816354367039555711366243674587863304045083053150278928044881483792244570392735234092913638866305180723309118993025245218090586795549984724583623247018961797179993802260016859490264415964854599131495101877949713894647078876142526470766319141024447919335988112598650013809845467065986289901154218318725250701055137086252349520843384184025054580515857207339267378592227795266877900173874747249513539667462555086825448315745597041827497918432087620808875017487160001219745274900189976322032956239477124776696558173637756257558163288886457339831849628158567231599479235769919802771887696080731492210840159040507383309241569452034656018867138336992448253228228437437777376772422920639945700794849685768925587021197731816690911896821578928669246440749190064156396213433043051418640719859864022640902005265917811775867420662711950217038371225091494919315174140976157103586414252817823767555959026728631511278983349658033794983754392071889431979648977856138923060702759742984579674807026009601248456348020229065484546523822784937067995960405755577284407228474220452015558259422560093195643527960294244225000531968475480703228558368499575350783767572089805143395721240107000095785976484050400317155312478467200700249373427874074815817001465024741263050421948575854729197926882691520986247988475330702966770951677291441919860558299496532821349693205667657354826963575309400675406208738336669559755529159746059220238289557802344257399344851095419109766980508429572355040867898156605360573032282158020987195263280237112111125302420450200116877759787410252275383441200595607757909983420853386815305855728984986263829981272007985866969569042901605520466180537671498098573072633978617867061034775617899168861024304869622964647735713673222662514822941340389358477595874409802899005454250016877173140804747362962223184427039078899580997521247549323449216139349267519325786608510670279426865609793304670858978778561807396263857604560191608554579015423622747430374811097889859051325069936480843240743683769312262693786037246122817278902547889755606898433440937322395322157301831427332171909488669376367887120747856048311808174914933429009713543671082897149870372968251846552909833460095706599403419107660591875919804304959484307888028027686801354833342867258310687805598689637027629807377468745214454539969556703637344521314686286168833130714460973381650903433804328924833480025052366102272562165278939482916516899186686130164565983420305446159839849044951245626266071159693880834157777415051998151910712067045030266768197946648587987256029913652630834097830000324411212987503157782224711423670984658407056300194378028246885733226641179809650647687592652336734630841822282821741846213836645329118241803805774619804837153313644683182605961220473646092006096791052287360820754492165168181388788094751500758590431939041033101559998182030100216349697832409345400466281898382961997131137916675529198671431583805526933123867559752684320575583203697367150118901586913330572971522858058048571480108653691743976112581091579440094098486910524693846627883256616663330454808864387274350013944168399267067334110536028726522335438322170100431374797848632825533832933216164821084496175243227454276349919509849037492532174752402550514445527019067664971508236490496694049883708737517343592578788386023386430890775424454440129795580449076684319661310143188322324426620290410115588487788409723814427496985232927038303654321293906108888053691880367923941226565804223999080072328728484287371908500620933987284457950608264265765519983118250556700376052896538124660985407825363188778675804442764988704105423396270315829810279599805706146885960946644009370500313528356571547682349240815321345040282554055781839497123849631238364072118492883553336431230042613225044232160515443280860735991635712263761519641594251564823794223354645939755415396298361785632456072284213715509985351556689535988912939135314172913879082192472481361061186108616563511327268071608383109783462278417388016720611644365339795302337707155245415365357832393257308050684421293308708084546384035562940662758333772197843024750269627707635772384061840297585704473262146857637759187568001489041709565417772455355158329617229354160370829938912603278960798746607815710835948155472052490337662758865857483232278112080790822925941557088593296933476876760941343468555851429253496276286940971033786463113572297014144966976501594029045448892358652059955692712778958980187819347557961256802792357360371161610201566133125153194219056067382772012042617827767740542052035915898643292858502107631411229929692144866339102252593386856880979731186484051976480116323335541411927944961918810155080147489538937988887038705221337882402832900629037614649590684541752310864366328835403179755000984351743331948962402259665786869351832911417217666655276099397298097378924089498253717395130511671006239662941826474817216665774477835126464044883148627598363613440140811732742430935469261333232008832936584171448635850978354427933003273944206625371236775599879024050672712249300547031468473618499301123159379775657257860121741060114628510548737282662097281995469360942140393164216403377885273104826795002285167715755057354449464040472657180223824982197765866152276223795957146304246853306408560933274375501193941422308294262796083655026352349481477330579991529952902740981494833266949461560273421770913083313532066216888829615809679544947741820078139029498665652881701825346818710815344350964423591748088049441454480905334245945026972238168600364204307352538815486671762052904115928792284419288186084808873933902218905349643705415010869920818248159106741109537483485415110968199833954293899604293541364891627882051183481766802170808953160815940474607164304905038031168872296562176703169155981484131100512585433945888601925594419921101681494130599281296182980348810889449861671355779472218469597569415959391054006367983970964849822497194498851322882381262418268077992082372846484665855242056257891761942464218476386304761911744867236058592768484055266744869255177565927249268212012401989990814785454900612666034889755243732636396793280112124539890574126193777661470546789677995308374034576875911410782415328759566761665175506188700638807091941225888398928693934460691334368033136596903486101878633764018730664217892830406403387852881932359607929036254322498991022858963100174173397675681127428868721474195580311144714898324365124287234079673382171236371122629842745664469269344058401865927277864658380948862156619324252107134187263099883752860015337894136729503716363049814880580582078353063123332906529169182484166096528557749356277336830292830926783931325835805296606169188591780878822984305024965351032638378894356848524998041960130345440131588335863131243560699503204703539284598996303053415175734812364570595360986071599204860233742850786935813524634402476049287035921996654135080802918662370835743666710837310693583654048079022485486361964802765927528865085206960713288992445184281344804313514902149559066693950942551113939010954626236681088755649525149988717455340048741123456847954065120684937125930205615327501759451865067399431773133405214193259667207362798887582310936200430662760677439360015551537474373564775458231350767990158426339056817949567383775387812312893781864934534968605232712430402874953903248133751548317303034349215250978854003007200114885957784984360620069227042832152619793686322833537546493583392231380266355240056990724715617350054170538202259779860476429423885741338116771245531929217050517039575986145483392049080583359497349060472875319991893557406194442401564650048017916349291497707238882984835623485648409996945944247623414422300949377919096836954669241774502138099308496657454257681480423431302254603852094560335608608232961375420614713669866343731446994022498655126651603368495459151091806731939027422777307646187441839457463807181616328816917508996120770051583419226518447098753033272123387684500198808031483534583113754217024377501693493716113056602612204648194913815727789819184634878011767425466942076393608929292819200359149767091069643210421401329064385068606202501498136412618765292080283412681098982633715094517765868398162128260230062210291883792072250772801903700644821142979947661711840869859460878356110553318412413826949708116684154593536841959165363729627429946973819605952198372406528432399307489617183224950401163790549018213970643888874058967116866107663938693227417347836528295477730583661413759579992093436343985856054014130886261223292509664907546048809851673751386545736500150538424851361500988176875174931851406836592579431781300272531033092738321103134150372035014634637756043520719055031771718684744299830178722085103941302782083348492508851169373743498229541157633329723381872255820320734284442874445627067757211620818943667383236580501619291909367862914396022614921928637507467437022401002592854641884833924948232449413568249338340409519625175080984999469801543607659794784525744814007108613074101241022781075641564600892061548370476535126928619180616011445818183737259764400761459248616219438689965454599744378354897418597353231117851294209531463166761018624867762535358511577996150901181489549537788325865948966738707157774449168604633237241250994937634639905097247530653388539744541643440253038624127699154613013983142537268683544828934200417401902503134407300505200114353563990903823197451409994252761322681663450895290377970799941047630398996782296790097745085577553182552649141047640957964318008255818178855209913619094649330802267052159041036072774200521734018969696370629928407833658325236172997013568239590873581677408310902565414753528387239186932390828770476834816423849024286179148940517022022777035743011602901476905994878299272795463697665213656168170737235913157559728732313652660145073325014930635099071995062603901824443537987572045751328479038141695311802672827679381299298056663790063396244604295362164019660148605362095391146362987330317394534551577162026695116225938173793427723903720091313938878293173343698369207829272785460856529482303708849102854060914582634722991215586120005055594305593504294425712352347065001973574403963210119693237214537001035305616922513597183815223321726456441604364583578431079718202552727891407370328566971451170665514669659415372449255658624096023875409930446080753994702261191091045875247260377581858324764185255611390812489052726537960751879663702275504217150248231586986047488865559775288362869583959757937625448748007639532137784830740028310883212360934727280083366058870323792194992510655972757845467538718399615802704706176084430611330978895439584972395041636748586427166212794580626281825419640024003895903613494985290201546781351865406742610903819977371019382742913578905327045816981742828481878114038974557634833046227254624225485497475134585023712611443090773603196707158260507320120893588075850217889712698536870430340178433660643370940653157567538411588809542380931950222607751346288896231429474457805268807183414142303468285645244188461155899186287096010467612900158700012687742676635481676532605168423530251097504578487081502452667229462463426604507240520137920180699099354416990908015970649722833154257887620665191910358465735633849831247896203604079242026549349478415743109820528171209891183816325863202434758715181207889934568836440221269178826008170863275531456470153377312946470507216571921415681322720288501419898628847505545713181777022994974073466729310525303755212666383407059371687494116282610984445649898287643289732493384231716343052032336014592877681470572771959983463360944644248491206179174575137077970730039954834809927163543372656127299128097659134726049856147707942599656549152861278147670138136635576442365839913789444152361524061286124993355542802009933042298483780345544100221581210734332375136052585633075283826831593368959024773456046403796298603044112104921670596058513086545139322667163814301714653163344705293268072754444711822231500647014642263001879902783777278445895253891335154659703210575799675371740406838605102652493703818205402866028885010852674584078841348255866641627241158930688518697698998598760039910834693594523038552606256485545715810428813965036105454445690342221324044372603615534093565645724918452162363285024772205223067854207003954090192401070481743292207855970565950144567233021677168663908083619634945177844768671457683810085928907191878040470801077441273066760280109806881268912193449971374893760927467254736933562482168099827728145537439396120637194630199620874833462487998676675119930181455564123592281589105112056126882598799381944276833311481496297677637709640565421872842737018909819248611408485909320944223918106430490419443452008910976090568516357901164284955367065820970831195507993655420425406597595976625732134644484793860624327638907436045014673655748065571488793756218734657893773542100510495638642015766713992512576399138708855170497362697820525385330596427472096174100250079330586200903379635948670676790174814896381816672365304760969032115499417312758721216658806460745997402030252189598335511099350921554720754265868534498702186803718862342111478853678434007446495848282480241211469840001390457152859645871872350249671025651888831694692704337062440774316004164745288329096378158185213972977027210269247963584423787404213803116798172765829766786638370833773245190845081682445205398288757894161828151679030841370320524986965199611820478147932814756199074093470407679196372805109501535708793120168989157079787096364202370067054228759424592020743102623239720826068914958277362126351384852006143656585390455843024204842800322660336847472050227040188509191462903436962395011846221861700749287206580231555872242395024424404837926106685567772735975123495603547912979292348692729959549070984068782571211731447102009277315402624049169502800260492665841052909259576404718452363573562634635804470365691196346385081968774540655612997964919979879980631273431800254598508683575739616753801539937115874279240375349168662796343092352068259507143697292219531614306605612988261853667316219348163952160718798527454277664892637613348751388625973038801422498611336240175912949158440451687989671764622592207792248659520148065783621070395589207255470552903955024746465224235406352178520990627728932813844377743274930638041198505086135921563385552134675766979160711120513662553176933166022946591675930848917487412689161724846933145664961929124591871119165527741904115446362469129728720129081130966957898564678666756885902586537456923259243411794215428908154920457105277454742384582162209810036165113045762211290105049761915213257895580866758690141085417961707999240206166814998692928241373165239561068178729739834754252235979777093075899965722407453570240055348803149646880737507208298654940620025847388202852357755135172241930645277627933103232838575605100419498982649961707720387704922942547679542059800692839025962396274510592879237297393977765764675874869545126305880149832125136398617510723947912109674512857584971512938312363527869102443103319496212183510827595408690648514324220418125470928549376573136563686341295627038598995708110237211322186169692010854024029791308892810909125651556052007164575998626299684224964208104481325075852724233948601836259841089890908269315089607473547763236835119454683129510842199393140454365978965592683989348564959432648580275326488004494638917065028074888290925252561327645256656840468834887706212424158731777506393212117638412883218853793510150239513478462124514072057265405844446955120929542223212892362136832113146788969840256044812700502291228226505405751197861314163931359112787473305073973015450462709919060068336097199937522401265582309768615283324134763815752847347704968455867173989101890248068754111913587947824696962754103584063253648921998284369022993957511493392686724320879794972448211107769697086335204447090473265575784639002327944780211681355587663233065065533644886190460527175981873005850122770979170839330932722595187031278106511167072677661851717264179007424860258970863615245698254280806803004418496749812004807817214440057621553731344829206448155548310547865215435448061633475607622898991169310956054530703136946467569627840084300022405329379350324539053525188880359329242552303187123216674041893687918913472784397258578251710876659876401583772567863815183781467702681970749474327709608590170394263109585655955959999342557146033153453316190018573948341806210623179719821441662989370859479318822443496492778395760623978225326198363941471670905685862141050208351951277281632621838670762239000319672186866762068121724466337437513028607273623129895985464883620558162019538335861358740254311226827367966378928628190027977653953712495164171660258535758011368938220342266908305030571718072706251471977881156308225821476453735806111846482500624804704784653277651025413493314512884887617142709361555076013887476871004812540197156745630682082580995791639205230563777514742616356346039725178581799120182891564036121767851337377040178283403778742883111031632162258223762119946338194951372565795570196450348713744828343936441090928545818048800285807013980154803957478553429779261525840023246466834179238017680854184560242695213721687474409911793085476965229716075636671674323132410115112158115372114980213333096890498862250572004191821839033546202522664326200131436058252469384996115353688456507388670009808371740773768045510787104107228254983737487357376369635094279794238338766823590816471846213302519970027111014742381726290683622294421594132968834444628097593166937836700465249121363077327467663598664261893150970473965634501022903405473951714014993402688949004174494370612557267040572108632681302784489319020810185759255608456008823013651468382791362354784248900919299378856224162370815631865242918467169920848641693851520622972127906561872400282572517300960700917509967736511747014754316006513371371310301405429273743046361551409804501311609925456116270124132323810566487691510643153590605359181692543249559614532711824001005460762278141639666134077781541657976742966392239763221444452476705176387854185854870567981484389763820241277736729139625243854902538866144081032576458019431048939278189740393174719064610253253391557897722549405781283886172660777503376624688758062343119544906390101428157587339734476335267716452737551958283548037505538887698139229125194601156273530064805116373552535927527740066959502161123014699550288542878429450337709576847371610977497327351332329042171505097637051401751817948844610238305860556411884577510111261405383467601655917126228262569145483476513160589750918109998314851322241447458366582520905778002073011046590862407213149096170516640904541895371799980783757626848162817506147553505344634203306600272868534772313020491599448511606007645393600873340403971793448933070480094223832094832391593755023187921773217194445555569009818853575492505960059641286454006340883168939838856917395523287631863824898058235393856775828684656104617266276459564921117527198023702208449033875286942021776525505508335913403980157152001836793931961148595492935456840553495402458077512690105912274384290215161755157342819309995353650998970490155190651041456136626179249742143971058166871386132830714241550668114157442457293245055528789913635056228447897952934442342108056133862207449156632791877810542999895868815337386754898538593259856215892986572753265801633411589838789793760867792267712520532406205864713001058620412078404599986237015373633108451414314455614780761847865833403124531600723884851194287641539427197730670684829094716327233753864435142559751237278817607376501420047809399021952591387947928479893318517933405774146957001581223882606658561790254202610388282330968493395739171075940317095830512308739197882184645205069225233545179539704754848813410370725284131140411995470174578227008595395613149424487507374078420512859844090085176572685936558169970286663856916163496841283804077373032701647863732836386646194115944547673211988750677503224007501821691933431784874247792624723903804728307830847322361842001631641832882881123858932202044933383653847807773143690509168066963248150719155025295278634883207047131037037900408240572289192115727178869727849298116330719715308417189883557312810437985762383907074305805527852915289484873820106985625049830183513255392393581216987341449909207773433803261232500084752791668614366180277630528382116230211208418053909707494454816834324760674076370516630821481117265011223813290578200086487841796599879956470633830100532515936117744278510380779937976705898029162665254640694832624272503799171888952121030213772038971217801870289815136025331147570819322361278199361765164461674779926326599547404377666243499800407310930827388635591027952014850697728019450317323209669980843442813152376010846598663643149392650808541818392362795240852795431286223013761098858543658478118296537074734671061356615873172244067345955541317523384546516718907055405339962218148947029059834953964739291271313707790208414587200593042758246163440893959215039679949477564988609498394837921930787465192701317318018195242782095927854566347270470061395458624773083344393068101250253208903201149558893061206845811203837374887292824491197443667676893939950638699340512132022352469103073754352531197716821665941030560235888885631828129013995829273720419673531148227378379655954509315564729493755181422927676579026344632251474951257258895267202376870381177465402642605502646032041570601018713991169628910414637001468778595666111594802303750470134591043342284569872556300420804532223535134057806483581879138956431673515394030327884453639060038806042759656344199693065184842949856423875800768140984759385482641258717674726051955145782191981713670884705990841761123385148589015438691133640918184493130416299099210271766547104866016227112656012985311950864732923225356103502840667921818904124108858821288005146514428970660844834841098430770436932524861418848008674406207643319707637698322090502695375174366119180757092308007191333069687676119932476451176251196968340425188620465923213580596718351568561581362859610877700951149242566019324155579662042372127962454853759791515793736138537999817553085669923946139924999472372595997528149371928508670946822763220229507351722540630032346306887716189970823236836372079194433357783491818412855618308372285337246701749032134343807324788020043391676121792346126664725121958820149393272012687516974564481601168108390941188453587730645612944525173383663414706126538754077442259896946721918853198864458996901775808291046251129534834246255284421259012626905467708950581899152960557415135084525841757438595088456545763714766122745330134934015883855276202137764141500067348314410130728863559903538553085069948934757662728240585894896034099465312680946393190488855636562679915478877109312304339894438670563656358438213661768118033087776061978386350797704695908415065177851742095770291258086165674966148933630874175467043687184786214341963899618956042775963228283064345481535038738332242106505964899586663670081759383609358262862453766227761047703018546780675632441391190126425788328305532397741656084757165528631094010072334581986391305530035194524782163788005285568887041784248804152484588748726740989490553029395456409211603900294879890705380013165256501598978098866908255134362136016066632738534175716176620343107450045373768821854489017885538979101793197683432230782599274079024223585950030821483611625326861634085182348623692577242690333292424740260646994984435558563591103588985514639292740831383706531769354552142294254082220806762131667399130358498765210663825612061888311507881359013836539846827546899168123915974805822260418878604144742563634754969844233403234339563398113217259082104838426113671566580716879088029182396870862152716771671921509255484776219369238641207836741054373509218699924819755601196830828451409485608871994513205203404467956564304813860122058102847451268641384008168379803680024521358985080612508928982081323539485857347431219077739680252705648416494180254809358631069568303005455453975194495173625962280767650629644774426999261669105523841057856202702384323880706789158075516410726863080335439020941193685193620743326835920452085223404016853295128243601752562066421680050534192783127118569556762488531630995182121043458841870152655061940908855010558387138857639880483266539438738387785545027651468314845064959889853207807938230337487652123330633140063225870159057867669003063919139123894750070335101805027037768089637262554446015438357230704548365431367514274409017802344391429785932980336366610484810671631262121597047025313547459696114050114968127975557003863426642421249760568921828718281257249576326827111226560256380612255654300471722172954058677057179070748765772011374997766997334806606602777955384183354890056435533880228660151272085540597447300270963948426514735090497984617325698628003992910968044097421843380872577608535714235008329620682415705675045218415762378613553412206797680743951997194359704364083437352797216014562660563881076753093596400411007048833977287369351991152201978586317710453255181488324585966328620912167139576231974599522094549978104131604344729196861290738515782443572219663713043709249299145217439883595080894343482749615011346400329593718221663486459972114061914976495783450602143247295981598009598097283879643397510046238107345093674119424002982191897732486568016877701083683860489044582059147596406980225824442768616834331498839428247977494249349471660537282022489138656008968545425566651306523622744615667666910907152022560913965666008375823490476339046254416495230614179933126528969169636155942344328687967891969852070826073426579286378664809632309234190369532104756104403014316051563016164388737897543547551906222698729334179483807435478306680605834181723816786265893089913603692740256114469600377864793842633394438349912062030838430462186369392281072141723412660615671948747445918858463088734121228076350170335471138813224557228652161842666179300422848345218330777538199433569744415638820810520104883522308297742659848777722096060019600874414165984895234715164272905717259569432314175502403823694689692685735659087623333334351335755775984163447593599468266819731177635802865490225062249821367424966829231698992389791912728742476680272480074779844021584218728875181083396503955316973309114501697696944899719302539165385577554447994614596788332092330185729468423194681348569348298182167302673770876921900124743379176506881903775431683873913502167684557218504662322330672650638519230916050088225347685686403056632328355374558121346286216634015241689011157411780761022515914390082368053250891954644836307464732015210420946757896747681459281907771816308340689830146776076136284377915022465598735826676358380973710923970290339983333745001731780082162343283353723412838027920063628080621428669953275651264451365742668880781677632010760963587899727184606570643475198653777131216793417013037646407331039744753618205915333151735684041779531918256342244795385641623233616090396125259592956551605795412883813313002180283602375963775868949383129279925099771812523858851377264436518209227066673525380745309829150641990189385937230168463162986159036483231423490108221695965181784136318820858378034142658577568578364389284544546322567906310632716006241636677501706901628592452518213700150620864814521765550688653102239792491675157268992293338563653541694839595712259062410433518345386473855717391917455674097172220398906175253607666171532803080173993568901040212795124486363171464808444291937287589525104639448883150504876987537275688861446271249174122394897524336857317735870812636017591050399145250206249582870146573124556444810534489839643833521907584278393433482249864736929914306175074319728715643753299607158464186588652994541317598850153659733784204081563786390597841747878597106101513927236228717062767649890796197834729170099332315053331635502163307167469218746418451422863304733399441003704712932718417444484697918194519667815288679172731315422353739566034196731488770585552066520513114051364409120217454017160851705800362110732736629085112089657973641471566112062203174228665271530657854141267588218657241365469729750894490664641847408240650264408076698411911593225046209820106070354245933142875816992774173049900780694542819319253675201109207938383437695523782601038577417839193329704018615063526632729073279349900507259347111249856122638905926521685418817051270507733739869108465879266433582438211354476058858077963551446064647419422142635234448940764586194839708788471558189696671341467661924294455871354868622618731916272460132906926566298137073510639558330469017517153409813834855302189265223249990067548215587887063402724258281423520365865287300500238405568313967261670961662277618816970990688587843685970420134967943964384256878298757163958090864295166613919323661908651568871070380169410292727444217709757019943107679282117101900888959398705253642849452440746261326816327082115325400035007953756987360748992122973028509108295821719664592842499351714356083563828844749876262257157615057647945315693635551193477753035304423775845186586682353242235292103530248199844518160249436379587032749259671050209513327428833058754955524450793287304262271074445899571710533620806576083831529300548563111391332848203738214894206293090805419227916154574376442550630242745644713294646962906644001372976288166282714457568438745481755255045192491453710143074014512508956338607738878596946350382052190745825669750685883208766511695267901994056573217240554284653675097995544339661098497053796361603699810345835401969257597813128590154381141749822531473679034111281719990031483350431467883166642345424145669695413046891858815178815511543375122566438029732875277138419580676681610876614368487294695708625563979664040788285122517893520480947920000127795093903290002082824047454252762333751310504196484368137834649099331551273371233780150580854459923158774209086503830876517240224463907159233464069839196013452609271980241786737941443805858626429289926666380175789060999913137094132972150172330551725176608758511440417064288855380237936311477663661960431058146483606730932216595540288215786640016538703782089345150477236638893808350920988240856663115188664237210385429413950956321148091737477085732508938890684334593398178519877499793209232253867883834113410279570216571835105677446777470177172381932742406116689524419420633235788653363493190442075370918512342836863273047201479792331792312877465087721518509739460597901926931864144172667289309851923489293219940267126834845808586558092082654662779185340472421066171066513892126146488287881029678336725075258049531863527406214212826382799651454641651964370341131735512229333534701588937341172456071157533072440789914807600362914203905692504892971670185406606771356400554756084844000863590411891467053958345897319055983139073164151210547501446930470344741688113121297568914931731685647628907012353883047339620542851199610414654405087598766364402324707617393436663272297020632121099087525069425192661024873050831486799673096870315352221124913287776031270015089972216650391342915499694249790071072065539450066576122139699848720798828311743687380075495184672573863451114558300849485658741897282140695013016506618957985506087431394195671426975070860232507249454920727483457963274907870155806702391968737001319740213131452135576132619870362290746701275693877600694791423122416666596642677936516222735286884981329094085458532199193324869140526864915739759567206256629021772711337920491166491016282013297648948251214566422495745162731686952613501579372497098656098138182779532035444165287926768778111401937093676960386864454164458355803717429987149867404088811932418989326420868707984060537564209916082896511541818591950576418352795882642899224699339018471039887561103176270190807920000363446265643521045396177355456631613702642262159250852808627449969214703953526997827706324991895397561610370976017733695185546094683034532752519401427066991330370065756562331240371598984748692162693381425847485341311340942882740980797911605894573707290182644096236929441954248867948553271046988814195066580678061009623666554596062488813824032635916070936352700860366881805327983646654053981563852685539444622203797689561743646950681649599793834449822137103766151876249185585739701204573410165623844191680731764474837983973683432150341600802204686831878733824928575137925603583118991873588073871482513486478261191319249316665897289662044744651852537026314124135590155382366172108494353272976607536157615652947604519966959794497721029619911281519656214430670545290080124285718611098641432217056033772908012921328692431817063497623932532682623020165315276399217107728599697218050291929095814154970642088954577300626062033230763118650018828184481161428473066013027696527161246780385924318437159419771975658811305782934387619104371552630311308130151974775356313738305692476524858115542559407689394634692534935375371815583007971653129565401357041626937146412012532540848890251662654220087697473258430410970796032309084500956036542633594471146806659088150877049319477785859691476190425629154823937797254186295684409604121003772127316981112240082174555907317145625759249411091845077351430714946010258401047923015949329822117748089841137279636758444267808170900548957656534561701437156858541590285339961204393688217306100736693275199339280649763294637230940557523590214167646676989683653260818730334856514592749526013862797916589126768897667740535811577434413166268209013703553296501316556343697616484348937275039691741284367555005203036080085959105072868704041712002459182190684451752083257200116004939743073299494390283742697229987589016522681254334587630351326171297754550937738261666438004294456820623242489420017894643815690937594292184186467369262023384326443256131467239713895437921403705212597127228478639452022821880796560683372607184858406423576517528307904089030581232568331606954191800808907518603287489147960737226095974336059253575044815898991147642092656120584454739421495173306285970699639108456862290047547803183222857830419684645227379471606107024809600360442321836687516113780362774837399772766422510255269106650815478202092189099765265029681171936803929612006408903657524910825014402017930084585321312599811099326823848912435722235478704178059848753230794992655672158631076629206256008838893353611484484627670951375599875519127162763517069812092951064030329768530172826160949800968525083980325941395732226293784016199588966758200658084782037582683760146893858866987314615398003996653130020848224191915307351080115431597984744544748350932357730082033841344581143582968134254776541887966427702600423584781575824426663182343591882530570856396778076590410868742327731972771213461858165609124256116580063643117402276330205664161233153723162570349579928897436746073579828883007510312716536830176083095448289569926920595284366546412747307442036718901636959531543832355306901810281951148058357553193247278203559342338055564251801667498675728542351033442364765633929456487262610938828943322490027308246074346919144142538218065717444475861924670601713621095297327811425774332024923752436475588291541370082646011876233697562510216166303862264051593761974513483662352824559229822289559899060709863525200902403162710022517658296348435112754571567687432890994763411295105262375549932851293414481447528459232867335561203330363177778280632963462944153419954552079681633263490417750070075387517178564158577724781499587703969213998352915307611370894826842034612170156790642173733785537321571262256967528885212478135238403014489262539670926768434727908720388708652840638971531625860375774177724739625023191957669183747651331797490581559004115536969141316677112714122281602113757457819320887067362852854828905382361043003681998800413191014957653785355652709100256559521700789865035297072802178811175554625901133147893374146960882934022197691200428446750570007300311914656328655759629884065057475223098768361381775665606574885413442195006259081914156950168562941084620984798190313279796670521226082847160981624122349308331914718556612004773038677613232436104368622253742688962848125762645977672350883303158705011734875566075121104232810772519836148625758492185855938013252589281503711335940175750163323934598553039199283799228861394397701474474763857922500381417409539672982474951561224388725974199756201796481325688739364027595632276014389187656552618913787310395199019739749504731289950384109103538243141085186476253153752070110037409255039596395283382684410694241617119926749780606340783122065499546155425307865718059850546522997268857476112499350850127929734295784227964302534465934022390349596729528119161609437795089504488902398919030047731201453370910430305322873470772762358201028770534343597405077848144993172169248143939320059378712066291572234658967447789956482855588435939808139189958851729945633471834722674763163917372323582947874698000055580206675977553400721748644533202601434487734243027411860486825723850266541175961311808053407633736275774069771022644410740068887903600938158485657574690737564734357084071349386445754909656604181739535320578567989693462040499989663132079883977724683950221872030918871834155893479696824658774948376268913432117777076302219329746346550338160474842655702088478117543793148265143844370157354343660987364625495113841050337863743579798310762879819126633359784266205226092463891175274915496037909720363403424060634694858319329738770341946529093282600814291335283240952335937213585519842091365526257094282163714881088674990214884753060036313144732656449011084848745340161326266146865877659722973779020580662772436483462783690134328336147119745348424240135322157898731987355099216053117145401470544862324060354809335159137918353731557427314058578660552171804017933215205566166824592527413728457340648311543735139745773934441606122395527711700996751676458847614459141399801907719903381124935373499284201352320609228196341491656483598611362757158616237624412358912897844228269244554949049900867447602398656067586761493673821413213985213728074612877636502318572647064700197467353319557692742104617061974793552822039489232656338368793583056113434334404422569280730080673195929195133944645704396189124927967037641402942274765724966950915133435849573233010370976133324676786953110944380996533764400964745349382131201778352018747925692535314584721640815189321158190696586735949042950995078862634857261660185698706600985329973821794265594817658448709781667606018186748474966367470074311640289513125941679932106838466245249292516490665363876456802445340467771105943516641331492115332664813439604501246075338260078494225551446688046956419598221488702828057899225061206276812309703510217157307678565841143306874124358564382716673619614332332597635540474741740974174742471991472105014579392258934000454022908191635121933225847186414887684983982831445056662040903484459022826152406197559253839551046635640019154176914431420025356034252459426643805258463098394045692158281189100560451414095518149691790685882063182612424192386155461165413076422894661444943965646853237769201107342161698056741102265600463207374972447888207896461987067813475173244809085370649546879916084760672020698281473167718046435659210916864390203552850476833485483980274941288098494587042985746990193702020935287253819815461739540391386440778607784702967205673215638770678896332585735410328851355583214930077678638916941206010794941142336083511586735634923650842255099430508170906405628395188564021071745536820902144147532361874050507745938118167738221077984491933390157355702038738870411438402182889256404921461473116024366654460144132635576006748120245043581637359741172132462349177371347699550209154653718857499766590400277686621083690996239702971297320154329697435180919777069015345340877213093241062725737587091966817410867610020468386573079295792062980840269168294307383569212593192043333403003821605605178066631874341951431929321084440108135831028449244463879912332810435525885047312549918620894944296128873781592834919980621397972138820191154815137691536492323008094403337219810955460717746491987069542209225223548355144750724785800154264869866478354911017027108066557979273448449889734754106051247698766245462322762485433169273056169398487637972999128444285870237099381257339493796241736748157459829877701651991510316348650382725935339358668261013954226342690212056451453162191601734780517594372863694135900450261169396470559737478471373803797949113680516741967013117163883010732740813435228883114695079693271864745110186538489606334483809328299998039461677162462177034016967973314164304728212026927103113951505412148714457059536048857057066427580601202945066915084108518625822149379896592874551716012332975244867072745547669388646848032611980064432582141240421999492119366744365617820438204442136976331878079795814849033361244951291920783426433454471402367521601103879436539671351744215291683736077317371971431353864923667570576977123969628013676274943592143334892034881491858113961914802197763171612497984553082061078388090661201165748129042647843272325201687888004410671251083733028383394890214493314851509252464480217715401438734632373294829145434482921217135995975314616383026357323877955085245074404179562954818764082746243619142381738558294306638338051636739090637445690481665062230718735295845318496903240510464053182016360933532267283302331793403859954235167482239102552764651682262063541207264206220311903931528822427387987425492926855023586651575081023013946699857127942556912742530783197685412379092373198789665121518912936126280664137116762193836981703887606014597875172371275135889206076990749187740172359656596931745080199866774436630985996220464783253421862280033308801391024536110918728008822524119932910040905557841736415302660175826248279697362318578179772595048225558240662879009951969015490629435787404428942285287155885691679164003747438883147893411393748290301723386532091418065016314593060050195428846535805112308917012143186761153027518234970701182892815933505017438261036512223228027103574955866784784032941745601572996452577388795211327977636263229904933958797094668467789458092691174328250791982061381615148656318194134698467930123386427643724359776740299343656900594849915508467884864061329117940147311578518120381474254692746321812132192575591800158354014283372782572606068282674387016224723061601426557543485332330862279306632781104437485036865090626139931028944751472051635257785246582135811780580308553267118668354872724173833195509156576363293015625843618778725297630815375447976077600537777049549761333718207332449535225242757154795490234776703609055993888053389184213748335282404863743746716962700202735960689582945233796321886636432117904765345583821721689020246348148691887245139453258116273868429031779027487193703136232491335064590981650183898762186476061071317928381675867083415465962267718257915837070080586341055697727827973623588803546550394261430801238052330219644691730400282187584520282324503780709686053203200854064085791373976821514199751582733453507202900867225767082565623601439950111016570083492237267741788604278362277195759679182456632604557507241275605547731689963055914069496110656967712161662990974722091474545108265519954204977244145613149675555497673265926926038784650645932042187496155028262654042472820473808141361505787952162686630423108652411989024980638614498068066531710908515439819436297755509771655702319008538206441970687343252384937695482269612557455075475054317898145376440139990765992441873920974221883596784085291830362196163140766086756332854318952395852761930316304626983345475164752234353703272183607921767621388559321436726771950728126700327770602248212588519915931194430495879320125554526207353088928712327572185358893001667825338693519625044506478535008017113167469059354275342476169849140971983863479322714336283351501825280189391902670368239530148312432345101575891851113369725510398636302535564964584010602523183861279523699105869460619858754140936140305974672152543590441898990081682749870936782589779522320905108644207144936928072580584878115659193067905774133641349379614791354819475823923901569035542413453384921948437831233286952769226729463456579198167410692890933872167574975013446370358993139339047434745122071697650280660274709045847820501196635057903298626359822277359627545027472590429429550805858761233375546134970190414475340665369230724648988017263739878693859747779906350575974818331654409222463882170461591427849485787245817940565409001914159999694058848656485027365567783445882061107150481889498016795206766734619661485880068797631203222093615989113330134603192794556791045912406039727048417918813610715262949057620889400746379657236606721215029471675270166907643426967733425828502160229124604008999528625708128022305552451816319042365843467815554986914318944796473902342563306397314007117670157954636491434757918275908083176420348008983785208773916688369619415559266278214653059582956239721350443386526774419666478419891779234760455243189052252118883697315120580357036405997141799929911104351809970361201665825140394343643021299169952324602262688703065887492042148954367721769247100831099411788326505959990269017904013049725614902073958807468265982775142025880286902899646935711492431497616757755969612153868389818961528423156704133222207068513182960783567524653342868464126617484690915872770415287676211762849769491707097986066924752516584496316849680864665585213613942981600893366465489549421473995822904093415948918018529170307487601314844798282765543219152539052281376430754938155028252693013944398641201650782537997703389466332760941402280162809084073883635172499929062527344239614989457645667785540660780551484249302450340088699454476195181889228065707919420528397866142617256760083549917659455075518208553258311397853794256977502067205295621260369845969807432559589448131558614448766733159354554422870174571852067212149047405104221858335987567243236421357027880734183023962335353430192353902890088531612344664508550473598989717691925996788852290276617670206056363039498782152197134207272780894462739939469878033551081394684020757385171039456269132321947965866786053263307489328148732424060350063421931620824356740836663231098292420432222209101603268011324263473795490230120132652329777306957313214170736395011286662760212193297758737153559774754617896616050095094888371992439215691487662380732299660861309093812746856523799938701016908371523963057749439010076129589627832704624864306568931866216070596414817607215652704834662262236278453659093716991560523253930228647915694650706110450117632701563747915387334341871476046323794892521796249425635329757350247466069217414895273216727305596244614084820308827906180920992272316654526487293594921621136786402578383029815941661365485903350606029675439692018135573748404502896546725568314616693748613350383560869206364124412562729164913438980347241044831840495211123705141773727937101781936949836523030180407997332215192414657267156322976780975148931817700540187945229768497141138503724653332247820558075223530888057101781570752222987932139367152259690948174492730514571800246230458479502376691126682774057681941894328089469215044711521749623994350975222155063560910886874868914871310866780651965766115951720747677097928116355254854878748623752039738235032162647165994973313841115793262789652445700564965736370608853183976069871325447242170532566608635879846409919186416472146927033829851799481261380015254259655967155376248508250199959533435851280035184210546733231577292418614350317838246806119394373954820411695728188725058152173091437216137597771028713555129524846775365270714278639963377805351466883315303721506298835915641205380625260856153856517914052338882458782882570363698046050273226258554105404120339476984616635904498325073424181893164441923844797705735109772269609566265291772255644108943347247431337388018592234450597172698861456671709535176187576336885647708811594631668430063527340342284027475064485299734015993135482397091020782231960111192931230714875441996614646684308863253063088111112776655888800434882386334849842922517728949099664547687422714158428466364682043253553456297570849701431420255730992559509516830364270953544583643909369478312722749307746769794307563375239377720881385011979226347351148950910712759781363435864009037361414908419272758705224564240458127448405775012762604422335663229564321388987125317700099351149192384939926105738889326375079706556204918888407463912559282272552516153603741137365464536873787379777953445963630498906095500234993706655712579912857877902994520813415886460077731431993151605664734977889907042972822979589569307362572857730056390837074435763642222282085480903520998186124629239998021225391807431314359513559767075452879315957728319046446538222295633348592685112990212789544887247110395951126330481592425592094303285799601100496479548251693301196467763707778427636440333157515333251789593368810932048008553481559036021402640871403094307616546891742237107387144229625524373720532092401750906482395943753600696698486287943290593828332801328113739821792118676786004970468423562002267560897266179846720554681997412735065818069048301126589650629883892455835147908870126703651088638534808936267729044383789998911573972551452068672480715520668665633143055155197730471079070696526074171307486706212918050268201171200083745783483140017613968286741918890260532501567585126433722187470417119411913166062491924068155346122977762266641643827820739091386648222742219356356501238562862725717553297900200761009034814052320787947847449334290300396053285392796259152329082579617277542442807227251148108872966647152372485436525776549761395193172749703171304685157513454510025889363401374713305383223259487255257400999024661304685807284468696758267447441252436447994936799485774928311468161526103967558023425398673515407814002128839729782397322115081871709488975807572215885751491793719938228894131455198558745172899596176786533239731654202290931605984441730320583309246082813661509015313373053189617493607098198106457211473619504232220451695551226982063912360337047185639060427821542449792422834756478711920256427596670482713705533799437840875834690140562683476189890448187273629762314130103172933073071929978844494667016168046267426788356192370789350797255581706974417287996611196036304405998060793503978305688918806962966659278866792520225381788199445140541047536201192689123676010533712591824749502033677624869989667720821281785554466053681761534074365784154847549696095216465862100340394499518853324345305765265253132780034513974728002289503862955454018428712149119836456227963171947375505316728554937972422331480443192303506986312499448552645030052195619140164639194937736276507425221156223111552613133568312092047753886083510972049454293381207898981611959842455414667290049138358303259142969025373202207237071358158904866526710375902880639602088394390659597931119144792950164415612607355516130691321531712730256649048979287664872323632403823310126594735634326523092064070721460493869692255012904352441377082484632237282371888604711882056170476745250267662986802399906123904801795687781034164480246586560149929527103476324058928583215503170555126819961982806979522397711332093581158904686168254402203610219861330513538296510753791878542854405064224389426095242453945176652592115085578835984014574406465999855180364896675204935428967143059494359790327618543972382522483664676905582296557860376362396973400226538497912422962222202573957455171588279281916121982692881078400055324636230301491526341219402200542438770715314566935128244302041221481549806799497784830569384986277205420386686856846009319316567766307252877875079221309293986062054096639095715734686521521533504835507375574634284584596733176887910770145340403951500812310196457107840211097860806249045822065586671313502591774163211454230392233499544158622534250845343643395668409785531312535591518635268722639496833848867015457672902160661895381702141743134583011993161615685716014377667357166357866081699656683410241052925094738129770919267253682503572296879555601018626233678369397286531505212508423987453300762112250644142372129184456635540832581106039061190435136677303208426040015362212165251701552364184616503189466814428326847427107511882686679737237590530672472563293143536548498082975522000516893106593548813110156685722816782719017475938945081449503747160071065775932972188080947230204606942869073953907472803775351114310848783647029222500372231733264215048734469039222815279453481456203123296366887605443000136349407881734182720504364566363056428591000950903563571180630197244659982075339233400112933226802808619262388375523109355241629940056323244624159341448693330266006904364907291031699313265919283041268172948842806788449594233113150713900029201851905597711079267928674423856605628230684596377996017809697849159884214373346752728120724068367523800322211101142671168074171116783807170070795045820613692862485996159499888633593357343730252312264185044646355245298132395666527080036193924840338447264506469031068808763905074589620314355452839905138692626639885576005228839995614678477583696743357069273446711153442873980899298841554598145573738791854707947744182805054936255986395354122438254914356495088236400224974055217345450151511900764195494305312362922487869664562806636653160074116767901841774166230098038013959770886121175736410148338469365895261816063897807247804051364548064839926334844222360794908538802123653533831442788587607846259037738331080756175515098555602144121043495093515056487513057019183948820263344832020262438375745487110003704586365132243990619979673402794280132223088678087170391898950306165932859072732924025161201647590585573349558021805448534273970888270400229194296672054055994794157138035686456700474927368864730265097978130940829924458141239681153571751587716452077851962907781582333566010673219645563556998519694509446005628372782996190993726210848647760594793573567782460057030664688065197169939774115603285987274219904689146014581610148756615235069008911081509597067706104941875052698108623229290456911619613530797801534989910611414985334451438706991212275522681655137945134883437822309178100048312386114270197395805140964492627545863222159996691335668113473104898354169605931006312950475996291868998120515452367373629859092438344697129285568923874839881142743895315757624986676808289203631120867853334933373120352977167198796005987989810917370564336739736567654292868756714394144704815092944893500109860758956923945258275150901139799502748936043229299578638750791050398804263884069320399166937874639111097576486513099668046156176480898970158728342249192806737077868807863358743158128321289619795982649941526496157466186694307912121282547575635941102100278355509923883002040015071434777022155929427584052715101044615240672107461196181335191547634037480445372468240175954428596853639919896661621744740434917300021644525662467538302073059006617257851318227118199931135785778682387770443109116365441007630593740663648550450512462462287981629303507921080495356981540506521798615644059607759125102777741748689603439843514250605740645533067444031467493172653043684891378711422396513786997845540969087495338621076357958976313503123153809221420097094628235148941448585538979629942735479405815863637077345346744154022795397007245740571794659505748201252621152433861983745314823449049483163072029629943388226850900339655759127995565444664665488975640502734562985201646812003731497932865003777185191632876408801050046353096713184805252978207206077997284579616398701740808076011406566444094754390827148991183624580018292325295736642736372824367102662201659633677690246782418758360076586815580084663228762461292705279632884679079392304854405630510322064839994962999074282589953697808751174561336187873640206101141901411561156489199017831681509705438916043278939033544561122733963303354387305940560900038205850638113065275775537614031249698192082160813420219723797889626791508819055524584003133717943859787074591034991455802641781773632251713923819534032602610949301412919826153582266467882368570256311054758084152990326443156718524634043900671527582889439140265650540810733634305285052666036296995624662283919814891364834683241786791318232989562476762333039870993721164454036616084248150847990867206992548362661185624930851375126179812119430705304702631774326046839090220874495849661874063053468879037090782127066732563428346288132407721712021424024134722915846752884363705600527896545239324714461633647432161265457193693512349941187695674687949462280629305631431845900748897540779183294238227231461516762016701597097586783460890368331581215830841448605847523801458988731655946350558093754831329050744265603227874083723022049771740158925485244366059017872341542535566389515165087257453034496045292176642864542596260905268478009401385965744666779003441753126164235387539801934409661336624086032109918630801591562512402291210260511107019484919184448205809427737473899121629492279041543909294909496028039959255820430935393575418994620681586293034693117014182930552933307022115433891624825807731207225690572635116834873730477405659298238051235080885917004653368749117209498027974452721739231179922401641668115631599885882636212909015952786021029727459726038785989716564961793803535744718364113592320640331163009917196101255233289538851086360825296074536295006675530638108293286269518852742234318325022929930946161594581558995892226865834651143129698012911171101818991084075675053895873714844720359015859616097822890206917776381375963763422375301994531331370064598504590628334324161922048314858363841034600970218756020008327641887905285278238022702345870485515237439918568867686015077981566958048341320459959905443409347328291078111700032789320325341989042464457970123494873632489394055911223490188903217120236321095519775407994101507723448582574755279046720178550864737924247050369022767899869643363429828901993315015387033925239318753332178799611722969545525354730661329911757570344033678426311923680387396700236304284023733242688381026995860213098526404869426567471169183645980063193743881932425705331434697925231890911656356333944482260001627294879522239049987947854546247773677301332179492681307240979294308194898234408832386893764748703320780020951201028315613044439215121566720279703552870084983175079873345248474711270627873814674285976390431752312156649009116108046625840194801656710798403723358956793607882345183682049882647362723385664639012352934996125054829751764079698192368154555501822937081272941158891979945874574078926039836765396341394420586379302008607599536451754492994150055204027112780210501408635925795443775607252838230228296687939959853258234653501159802883033155999937521105634981983277680484502633475267173275038952329242766188667884626831018763183472628707611859716827696724747475390038971027114813100541147359706222888947150136611573420259004377427810153901238868640085395775944235452144244594993897689858820961183990574532321865432025770945953569099813385880811978430040908229315458054347617439128447481551804135933125510813717672048779397744784006506423467533284330810609696286972689778773749661438296148097234022891630881120428814953154523763824270466980863079566805399400734349827518099997580496846557635181112077697047218817545579701977613248792040705810971970969559525610780873962757464864219204366358473528751720702164324321952447398420692900927080139217295386217887740673589792123227632369598121256888110525584806002159756944122157220234069909755605306322682011635313444340399088737985273766355118525792418930965351432345410202718186131764920285622007350926735848865317647909613082646980138621866339547347551172123886543272102698945159502500561941921791672888108273987240206757099744233267741360119483970335487166326058354709850641607380798746097396901514640219011919789632975784562917823738027375462006355953840758479193035583537226451529873271343087303946103491180921916103428029548547059735219464110061710753737483934561860672865011157149632681022637179723378574961353695799084161217662016220841524290301614803482205060388994049405423502669157222656289322018249210811052288364782148266879213075958860846462933122490299040699950833358707365985905256209865572477274452678579420538280621360191391610614879271101502733507502074209167223676698485707695354337547936409795181231527518538764098411972586450156811228398821943581133362140772038974633255530080203735207672127581190751947148426803422686719238817094782889130700992080740371639216598364859957581805812399213257510960557009491916418305260262747895996974382624194148100225420570002308781122367290271046430782512687336466242572774770653372177189711242185618537976532204248898636207510399520179291986194945337146316466063307415510339777927333070668666569659924940897347669568032649369342522557834089976197365437483656310647825079870162469544938379270596927339426218467006597943777933531921851362130821397457246800174800275897580392560024763856124796177708020785689227521046257654388186235608270642771095997678384181868145712315457095581468367479414397035805234213178166561762620120019502743092147300694316947313760887964710945934615938015416188354071038283484090943628099801872428469707647343652129698858364723054812408997185399958782024739819369213213163503541722827566972940201025340038887801147535909293580477479921615818844911681499573084615991016375690322327184417518195648408012485663779854139105495069994756691040614434358610556443626477291461144392949648859585017974141260150516909385065508817342104438431621311017086675377414780071800388894230223726765105610893830622797797147588717772285856007809515913465886976512359028660888741785918861546292584662871298220863739246308204624767515563984295816831169238278063510292092439809606781920538999752291313295483251751172405929284681703270308849716673829538866291683202189664189745605064646325755550140188866480660341041139559126139022264027646314655208907808747148561460496045047772876283067394240139496405249386075583087123434150850031697254954590965374778738206949939459562073352204362628196178664967598081691129026373856967441070579344861885627697915519733500662313272826983794523840395951328354805759777795266994562259378316549698987820578881051407975712036114157778301745950492881498053444860825507868699087758082654945508296906440986759069275413069417007286892946182209946586259509698541983160296117803601386821834258041161709833219367737894335739959556154928406040389370351331450184641771006681135552337786744329618409579024883978023629737413447363496168862317093141861899097141533700647716512914214469453530735625918553049090944201215245268831680774755029467101462846879335939284649482002470260591802346669823184963636556658079900694046880934417543910878532592241043582123176538610350218869178721675981683333300751083602141988165907345378063444233828769529462935258401395149396762492677450707303205311984530245589597777824125929330670867877527341939155212229855954928939656238427217545001156513047804974088308523264271122155762049154868969092616437233271351195717887345116269064158149334854015561362608997031819173472653436432689663071738947327713354649147371651758296420966347384627435870005582895364262981835039693468909354967407216725699674942984601114689062089181518122280323425610029555652701495425740910403998911375850262405324619328321648240490326130607117110897464581354010136108247815400013394515245541954549798692249681639841573647469767277586148471403801881995134896523898961978893909066986431889577390597677179930461255454183607620151051555730926061015021680179268030534679640872857956781598666775860307783580720652307357546151298513127567669509686360217868201873259866724592579722254711111525721054665421798023600854516244649634966781401141446821232361976554916586806492377691578468503545430531780996747295558633315185284551472237618177503270751797652682605090962569616241796521781274538759418284527553579303291968890199655693347577381018425230830403185808113142486833001798067116269198451760403779999764707594361673314425525134361884685623737185688748821006184484507815105728453166191485095857544822848341938119525298067819026924987930152260490971811263422066863730933142933484648014164861066739911070230559631194316980110718944109044488500398111093586056467267096805766279013017006935804339485180222725273664423685646411567338417516062664391957970858405002146952638816695195224906507367634591091038000318465520393735424153260645228897888974958120116931148077780556319344640799845212536929877551376349567546428048925000895201987587652637921723421221651524267633379176282900324241570571090507356594901630751965094951398577496255032894157929428090828058411239923787013237837944666260711186984103059450463229844452167420222510481590077035996570126229008765600636585781432270290964957459007468673119808524279794841348280585178023690366162739215463976259636929629199080687978094898358247368731075295919169729300086943920903469449650364881870957569731721954683562138912913931970529068648626148232038610169743411210276120675317462712688640417100563387765646289656808072080987339266474106813685904075424910445627677037536208442573096396956690758558354191129183745844160714988645904120909737228251827303786796618238463395194445928499767973341826863348268886440387264135272972374067374738956574668190536757761462582756890275463910147300298194316269658942970472050323745859691844380606577190458114817264003192345268285035944178204512941782089135068329415302375388665990426473962524492773325609611896507816292481220867910104207945709852077711599845066498969915074090212467266336337361878621517045427618043725746942753142959855911150302792651702409255559226974145591944562565951318251435845218493811083341781295424248468147229270440193580662179036857648345593535103684380614569875727745370493076972718202288247019842333725792175284783528108052237396533508358539324489025660853895508149257700227136833515549608320743420932441184302833440241527032624127193779982591914259192455456002996392976231781680793802119936389695411307455489147727665711948454114655617341088281841348240829598180168118665323161261943825171510611834624756271214456131894503423428947288757753811148196186292767320261549264483638754103012258407004282161024765336700816918280766082132712984641270647462964974166364990398838085163360238845876420658164601128871832565565667497158204190469799633477464836842832710121785602219525300613182683665845380508052731385636664078189905809936202347149773790092097490510722975691660064608610144025256464324966173950727295001397775347851977558437256181974109828735430790948375845171854944781942793197125309515226034517976835310092364868965761376449126791007074579417489629825786765149547069019808582370364922487521700663724882286179900199773980911870132006978092311921997464890741525484945282041795486995135397745638289146651661257658305321048949317485247799517318950873813617837601515935911519706432828437852347498564707483200554052847838171092861584116758117006918101944627808518096225948204271266422965742452091366132264598465627524728367648280252272353206747329339527704600824927012857686689153533035499037389041817267876178089312031337067599583206486455398342477301480555573854649382413860189087131900936943823515102659206775690352037096476208920191649090960106929666437655774502028202854017347439162130497487960439794266348345163947862286958997189165449739172723270365312058860000976184617394538903943462008006689518558922986908734922081809337772991640229044021226374086192469383986464880897832633760296378328529100618946865996486204896779853370547091240140993970102639332319248555400200020866275436798504655274540084978432737708801996998161062773382511659964502088899273669866807058048890884071887795745479370128712850661916804488827247979374566666598263284872043447200792265513646855161653367666415672887056369951477178289578279825475592037439645949009165727161822903091736305327242642092739701002682919097142379949258690546216739227091832382084750730207020135902110020915600360688441516050969497689545869601395092246723463862943673422751113062154912827863313652694651395363091852318829194021664791633291949825447541504922484797356279425288764285429187281203743330907481952270847686698095195610476222752043817100575323369328025236064803479676342309541020836744846665441702057938486667233334313839608727289259921088568470983538182711854036721738624541533182803980856735118384558361060124289463063372225805791327158013466550204845188949058698283076498277016673790057673411175252662503315382054731713625323188272953693319896542059903029113902013750595392993630158595407469147821440268869023378078091980011932877707297749633160237202013729710407897702480425512288022589306804785688774720497848996343074102716033504546697508724450644306928733839319203566820250567418740599168754301846251949839807255301193158948301978335353679732446766542037826969112068945972782015035051274277077197877919944287267128777877447066356180969763972604094339333117861629940039994734781893590234898743315010110276159657527877887217932659801478027949534352954127220280918310480877768036335978335280774692886512986790160193837633403624313609986718155145564187135076908361876924778469682728021554669962005254373812510570135233470266888143153765270860667034408810672841180387000291346875695420794548489288834941780874199903730064584510617643575698172814242341865769913219453988608125965216901532288079008870992793874259476200706192613110741612621575582476556043703740233656240374110852827222516252974476821479344584529219356221463098035115953013863133032780776234502428312842342016926887278118540336414650892053375698773768508033548594396155889791726396697300676735306838045984090985504723880426847835430332020319807929519123448319412691852807945544717112917802427304733858994501588113055392262606002596717691361100865347638498508846667155722496128649161958754681283823054522399419622109536285404545332711021038087533031785121943338604425939038334492985788433107304196088391646093840920322993702744990423362257518034815167738785150084179685745042628580907408494694594744192827405423930637357689900493330590958493173092969005659045702499292605493274981360341630846900976992838064108435157553472729908151742195296890756998922386858569324247984750694283833484936866743805121611246826886819990475831268081917726150412526565851111278495367117453031739327959854526634476047787016940277663588443208991645645688984023769892261008034175424853068846207301912141097195212598038923938746048335961515056794825273670355358674413655089551338190878420658436047217747857096004741569177002331323620006904007450793763310015741614730655563068442822074908108885920937144552753678222288678369178310140582684489491337075931533795290695055897622794709323848311692098913881597300400186608344642729018371102623790561945939838649043741819037769226648395173585659715254075898172835364151809819338650323614485986028421993039329604448801416758086499678473962470533337416000396500688961371574112347588594417892267610314226687570147326684207229376755046724517886976521397418414292153247405382349836642056254696356015686544466800405182046675485162631757516581912223504964494824191235513247079432270100450180653892541387774033781599525538804551702588813994095552165041495765289222192999631112113712845071953953573710787241207219557033331235201587964089555484781618164349540259584710398823134102473735323157565556428792946505673623203936931509124120488960353524118257991596835237363940807342454608591611516174705248366987049822604603102454410785973989535226431066211600675681653617765862562047028571534110817529441997827116643629363432914453800358125232108672739344017175785045388865497144657049565635694420840809928267777820572364303581387528119775907044686485856412374580147385504255738508981550878636931139106599391313862443583017575844564863510115253968399677400304316468773318477965745789687971641666523717189701217750967954011800595537438565861919882227109877435800123948612233030302816791190542994355632356798238211645062039707736987369015329156111738195866051307454718131287523336168049802199975017585813963178778395374053125303547124673077372397810381450908177622856280635852357053135169921182711024374357824757275205267418753410218897101977205798851539439753009480227891572399629590101771724502272191659947103248107612491396216894358260162540876446708690039176664155154247022059382537863836663740002815897912006303658482653094126702074089031472719168321124965023514720547435590370095626174479111482065817615810091374154131645306242100487391953470814064647527321418022119043403168293103095136507418996522300869289799339317869808929218310933815413427335768241034876869919352693075080158422985833197238134991229304493150963942846796248878815784923637402910990826135003824818945060716256284329103849991833812619522288067533317986839916445707363990488055996101323930819706953310366476759487991006034275415019218073861974119521122941735183193837228268712180185762405429611635946582624158028549087630089483886427414911424569087337249197993081983255610143106369630847476416661500216205141610273983047604390891723525433849304652491443225456094846278208878630928732848483426473959657642060209768277522159635900083982184577253851049227889881926772507219796336897225230988373472172252584039414490049861823051613838593091217110006227442092313821899602294683457398019234460211554761971969697165858359352383052586068164692714541739889258730995861684272307793071896522300107982694524267273172553617139265974286254849292590539499695011140074596756612030095678247485673018948968563009654010525149172649507654858219512922034583890996966648025618615050079383806283929484722322188026236991400357159219055794912101770858523925221158770402624749236070100267750281108557433514094454959260168351425587833798711601693439794731147478742381233472783816119765934632557377420293745973094690972414541319874180174325138593651394219293259671288165632380854210130353183268779494618643826435840894196750177323455719925282558359191828484125121421420518299801336336740332246104471661375233881723472834685350065844021421765206977837927945428950999391570782720644925584575793782512016253373221193321882921280791875251293777863106226774653624395424961556787606527977919966852173741623766837454581010562897065113251732877810534732359235368235250364613526911250421584742175327363401420812326763899647118259560835911681256735651237592874191882202954811485321576244085731042326073505971185287336777186087796253534370346812853767280083953893358237663748375121385123585429508730571905744444007596145142045090432389151483717648811002810414236871245379797852585200965459734137021401196185083867481195849301117073165834687307731422395718842310702719918091395879342856691258708372870260762068348775190409018434869145858743271136818448913548913199797785535079068234420662776300462481160681697407635028465132630026274053623151393237149514301322974576941009245747251489443878341033419480332192403827096537285577833565635832260846350480119783449785979034539951703491915110985315135261852189284190103078317865026922532014922298234692071278167396510401081707921588424121936705768899079207472624716182157471709544012148782205819887219080185051712549905597460497022958077979772225742783399156157919581615531645291959092415461657396484271335362341119995656187101484826780911800102800313879880036036452295482671476587346449322910436252165627956458709312524305616434485600627680828579404145102003940457494624635954553190488831024083102007833824719131201395984611929049875270236852299664803456364846618445195654813202218733266653381958413091405500233300663194351807521759024713889187287951581013584740924092537584224018075705933093253017577058151387711787067786843279850101828380402960674544201376407216404503459796160185399372812065883297313686941914929022655138243138067307548466791148489170950129607273491025666755539820079006863291095815776819165377537336593115421993088352238322282021452485266682273601879674963408671988721618723931155852037034766222685065424667331174941190305818931036611490762919703491273329112662199989701359491142582069275052742330012485907012793026301122574468831325773251773139746721966330866858627245611518009648241641657496542677435345969483642505139424060470249153468745048757651376962187721427082369915923234345681019442665222720648162799826069761742056549253398002780455871696599512899375032627734242405711358002681025535792873231320257697468121404801216618661956039163005450875533096497510672843954959633718361393409572255179731114717318298945273382117125397492142780980204579535219734993548696378771640462670501047240987491720900287603600277227911561233872634742044077274392449138980893287935267162009233218515422896400728521649470229766572075983854416107843363650063300373032428897581289395495654978682634609570860017889705360270935685708546142057335414625968775698722257000249171037968083165405969451924557493332448055716522106039384195650693555188460721213947640171183264792502102305827147375949347320064319912814366218153510581537046504499868086151973893166920707200482410308140355587994409784913469028385216272583710490373622410193975626262806942868035449089676221507819736318450202375035602823912592309161033928194462173263089483954966191259932573378137923220193319542195323359825493888729420435613982182803861975184332932941996553775806588199553332953033990011186644453800383105192385464982461392401274485194532481283458709475706985114818289348045775340708311417666300941576897049343078504623228189295984363813918202279665160363125927533261924422655195557790661402456906193384077309000917058866401443536606770921671447956426473161871418097606610544222997236514012263264925110805707292349960623225845170685720509654621637497948623699082701043745183379545549710444579449158562913938383448153901989303673156817230754927626011993799962127591020060575141361261643571059756994041122998662036409798866509408844020422993834978005713051244743678422313683118254062544857140679997594147683921203414874487442744040241725543008576894430828991321494775821220728423036118805172963303890955639098420440220549148428832651317538807317448983407757159924997949134570404911128217121939985289549960206871074913967707849416084149591108509321161162142730818388710874835494743195645984847263161360275003333452393291170299243858074383252167016417282075744935032684045269220619818707420147098319408753890602674658294007504369003111826947800626045553979840072556147358280461980229376487752999237932442888221259488375745737477657322642181551120056487883466346771273013447909955671487131293716147645220577250348728027357298656250593529126775981083159535703038759798697260230480665838289225900845287524802225211619730360279004190470160431108347214245163418770841507960838921319660371554171760983944081022101326906498556844411414055695939267988535775213064600492480129459256049271058641334063243801404968704973932740911528061986378904904214789007817498360272600078044479949777145654367764080121362389990030767789467990253969061339766534706149920551141949744749197825382672908043475145054482248653317582094300396095189538101477908224363368977903660214784480274701250525327616651905123635519043896499267331887912235115155006480056093690946003456209823141362352469390483028789219320488198122638615883543733491255860604861137037250514042390334128864002032409038970544088907876311291862183698159718999275205743721907780978351082008472784312021214635692659283096983050481471316726245272970600217213350883034676321164042993522813991204108098582125256676254282758593593427496264702022713309069635259812881105340242645097546877368301849199228948379184129288977165517317430119599088558794932063245268905512465112337219278383731001939263424594471047497421399695183774074367269387772814234752649329759183995473340756381607618256803975369206960186503628902861790606023993749299662085558012786241977429411191345914983975815855552282038194947308597312934157882694289272665566594997201367156715795525199487553621332451556660914007868562708249491301999578515821934811552070123229933885784358275517490301468644628253813992094371982081457351341664228779207062590427652610721598433431688576260382016227872238065662035349274247986914898624742444221470573961440244047897292385088596885830492660937473789495021432249595169701002165077010684935555651542148295353561868765049747441605594717184180833717456216955969389390234977652895754914418461397059128547506029216546575443827012995191101653207851022199834563629948504992448230529452916299210819407913932273871675745538090536572908471820398884357020318532864380932618097587500045090794010127027462827113119246018047226662478243472237190783285562674514678038547099766448437364088851174724686473973479514382093690108992579403326383555833475271872098831583852066068357976355272270555771583825567385583878126339660937379044844395968236054531828285569310925081685007015195155093301575529908944277274515097578688693316349553738099614488861715925194391397502729503857473601108983701750647421802557871266514430619445751204135255241227903835393129496476567760578473683229216554175143694620233221853342796836286920378777706089044154048465848279780097642760616796779167322993443870986866309521373623423257077279565129930426082787322144667325811672165373284285405362389638715986444132539830277153161031188049071396404180258449691011034902503638524360662628434648370320864354192708899131497117113941130709898701090238455727234931676529037756526867449780266854429337041307514169647189053375089836525118819447401847550684863393297519318057248584292354437584668996079231262272388000032949827731897831810645005664955583732087791429553218020002484036439004406839036217842756353560046369996743326510141965669768197757797811694253663435456353104291973350108024175940811931072760514415524237030477400751530281386083018151781274456056841584736577399275577871191209253140826624651277974870921307485041950845624197905738109307623582552762832893994504614853492888046128800232770792779032465963405686722885375085504699532748886014111279659900984319895891513716640085741699718398739218659659740596705461197480279482035392229212521342609600508690067570964796369547315449909120461657878812379051626476955027970380267021315516450659829205517408600930227610250273309005649178308395374699873727429887384558859932600721238818985630820001767440368899113897842571623059151475540735370331396763120349804600226163230823797580369669952772135480199449464433932666854390472050411224364533019106842519624618344949009448927013390143624857140797277881838359015513474474493096967285364344990032683226132923518718089652054716708457074395218186153619404362171791415780548652306442098788093886597631940480583175568495321000392238370080567782536713074292871012426974782695193456972939825530978317786992236849106477861794405211561121720586197555108976241369729543639965659437934708798711269456032677136014844454916068350546687242467064162246331591047347242324464594430083212805208097232554937979287647005479136627326475378258106156185837904363284181993497637128943683902885033317210440538814680079002491203362295775502594243803122730188502888498813441471814384437226930001397323685383257192789041111733610163267755551243591514795147539779130374978531480490142697214069779428619839394258476890086190275835842116860191694152334225169429517074697513613390005507027457516412299204179213388691157207082884918573277840563401567409071503395438019157608199639433802555413759156321673751457622622378963079476296127285695196553015781083056350320984768136276234556547167612075387315592690756103960204037031550159608870987491420727122827664598420788452335558266718458179296153898558519648529622723170423698072602047250267504162586854473733096795352728387730332119726833089390529768151237633489243629531895003282183281441394569775119084824499063193580691734206118200193023699104596965415635880183752512160813433527586120823461664848153331576100436207671998285570185351818970799204204630717407025076391471242238277892910128877334091385788266503183993689068037008954909027231307087087121491738026118212895159182782922925888803821489368773808190669552400360511378825649207979591949509231742977180614673651850898870365380357253462529607535147042672120356887006749715061395348716150502079210963214263099937836570225470466819682243131388044114613776014254235455768926720554606523590611132896761007800366747994608088000719308444056777258494842178176001740921530355593465856024616007100152423795627744958935376437138484195187175037443146065934432827155242722669677384038577297502779648672908483205313184870783669964056721439498742311436343138441643644242997848775669601791872354800599289419361588490876399232469318740238350725252761052906349117833879187134446861700926470611184493673777264454107765155895652658876357478112278750131608026916131645459868358193401374508551929672327048019508179845033227600086002829840775252788863151966181579192718238017762444832556809324872240563586813043407259103478725127173683172847948774665184363316253437036266146320926890161751511348932437209410242896148224089958108663890155581913826513341216075475913662244896214888887257497866396969103811148623458695874907212811993312216291563299352070262984756814735153777213828790307764822407781014575424289628424653490749460611879948291206219674787076879134774352914911925197014302883168741652030090369067391223184844926211892426905502025577454472667087286964985875997511648215414722504480142035636562470494920111962224987400083654182859471385162426460934908108111211555752265124957451750090296457882503494149771162209901663593272379665534391825794640295815442926152008500102273657316681147447591085750998988685325963231225525801339449976352141265330769961075321282160463146665009809791587376916019808803819152190212776351776013559759980371433590001525699750999657974065989204355446142670422713373432007375877073202711397021586296408090080338136969830225582126004216978260120095886148656939909398516487429477625170562517509950645121106912669075746286462910781993720498762826657843762817336855200665006029812572500930848248338164152505750933176633138957453375687771121564086090417844509033376233488534391729666120769823486427485942412757238827831169699045198953536966448155817603365492768865125139399238380432311477193902176212151651069344522612332426151610820234223035484399013895307889563639611995752002723132383383027585835052663049099652721108250855312246911622848467761227782793384054074695458424379498164104843948478655469435646765638853315034348259797652314051866307820660552727712179062090125623819825545409011055050600268718571195557181377012094724632541829352384002020448164010388278366037135427764348959798408953905813872044088534266430878605317510336612750711587355489444067183741700837655504797548832197207592040277906568982583765665266672002062355720869479692577437550561233473854216734710151913340826095365173223995647423321139453373228695089936959243917525141316086300079690453296165972345028360021139128949097081829211270867173525513386952042168828568871078707992187947993348109452359917596599985685083659864538462559715354268705683825663114845409590069334945205082716778348926577291246995721394616595692822997077186194054975865032920878152296969441945930535763903206669686989551377248810635511486038822615052805999222672669372749979258132273703464884323273354414472455596675894911479153560829086604383744571500180447685464228420580612503613864999053642362850720812774148801145482576559750559393133276150075018477843253465601694781915223021636060430255967761476397526057068361567990525591816282131689156141660938201095517497855673463710320830353882518965129637434999562562749715957979655200744659781627290108573011395953785200604590016013360419819362088879695393046277738660436979736414710205288848065865852521054172338243328865493091638645467836773326897879944361898932155574341242599101272812060947589633269418920802342223937726796072423198787089350974310432152287903809415264008357475116407656578834412005783634721255025882944898740204447723551399882854887498635774946360863368347396764289076536553434928696340569913752519798964682529236946295015298647811959137113432604589764931446416536120802393542174577186615539230415584441277627748193436703429499367536682325574385287010061095705413899177453001639957078231121123888849138582307550951059165165532976166858243837856901347493982626979415341443908744231715990997276241494289870983040373679830178304846702500050917162480348441885406677377394222747492842407458102991950742196056157886817140156365706020619904521051340906875482079606267973121998130878534806430826390258312675950508774339783750290687874317314329319610050660569928051719878093418106715342245371908982040938600839225659589222819189117904985290071375222704261635028581394148914422854233735054965663076713455870647170279469359676456605820521718848292846805834228730312552449198308696853605461689457241867399978439617509031634569978397737221604069056016782471971499361191013255760974842764039447368223864657554598166534484254550748205564203019680204264867357171083689346176354203996843713957046501251888541140693088561229372728338792081622283503038550286069182496579827285369397486624090679463419624946000077088622934187781210166038985940343217798149635997338768938321729955798425513171754086412749410344730415850152995492761183875459784741023973459693304578674808558075178794799137596039332577711386407547712805130528046283424395596161167625030864973647497537435910738114264581628431655950923316557218921098074182168320456222889106137780191098848758427250414454101463179334890243493131183154778192222697055872346540855753663876741722308883976712811845481216357961227219106723546427657868789623257135810096943034932590230164892592045228992453706033540637324490029161468427996933116145939221194440767829076754085180880183008042613590107589180210389639801355108173513376179959698238515374822240207882258565935207459256408141714349339982348017796474218769475996420191691708962786132079939617441282570912303863971100457998865497646557459151912801979569063953578745283341040876865401318799107979104891120568267258828933179473798694835269927881303523197585486350268663912853555065688092524001754387565344912541317420555732910401487119547535831007987118207565982514930759060394326370393037002899306446611065899949544192262943404202000960804001396336576452225653188209233529734095606072861065524619659686289808231894095622279585117811858605348919421376877313292758883871479015981761731361441733605222804105087631741826923222264635677148521210319782442002604967000763776651450595092890433141682015111588139675706482782595568630566817600789046052564803487251048906312867442623052855643756485306902409632940560756889255589242907961390208249191442129792092286123847615283592040518113111226053347985050246017285199092514568544153516902758385746758918487514158984645762548683646199802600731873789382361359070828537747447299622718691585672883235897655698626050428769767089926071154273004795156066860048656875865847179572101185288547411468773472880775561468051069559904690292174188071934334847216996162265331617445418739020339564927554663165348599614561070829395519253628187803120211653473181192077584163425651552878077337213352211074960899209439273762157140948987926786988330143809426846792453357733686004890535906385597446607977852016834353040216023176355395715366168101691456438669666056182758332503034055318021835714633791005431460644060299384640523376298771655660798150846146784922415299739713978038531527802851382587687747697514525417868643350917850512756351941844676738793410987146327883899777482509828018792245711254470421294125076833909198592586882899586702644649216248935734129790180019702252859876410541870303119336408242775923932614145537715214794964717695646298543242558596385962417425916107128841443824640159922153132775188932869940391494901842195233252819984606486141821374850561021283861154085127666803772976740279040341900020291374432129746829338062235113552900781718147336217303672956302196649191710009218933907308919892000046587826147616803942962061524985278271020873129518124198234905184386451750872957696878866564318308105112197520186336225304742938539292125534847873840641514755745997153227679222499992790963110505842444389893751382436382536824459685757646624239886344625393495770495666631910746361567340485737311361045497341472753295841591742768822927967973379590524205445452323774868157507931595323850219992258843745299306757943161253341630792949277584674854831639927128684631317799571292648297207944558224709485394487517472099776376372807548791294872707248532813491548240858723006572858483364207705197366901651819399799205947223079632606044928944087873527287308119935201458622483433174831388115332385744234622056173475393518644823317532758117850970355962368216040520078616498532333229354646310233290487520146156936149908436828656689072715797630050524982223767259518313241617503548616554152725301732108303606083816512581451349723847738724084831776430362428161207262453087723970856747439818964507894530802658292883538877655093266998075085560233755081747752339042582705392583648249320450849345600440379000154486047476366269347954599110377217193982067812716564264932155689531244739691178592167844342618478920658514806690812628131531472219232264688352097719232953663977430454366417566992076019162671433830778601960186634351643904842100006614171518657173258603888947971942351585229049243319974966405932266401658621518254440014439241536965564878798066546247292285353408207254440252395817829850806209475328636327056467300689912701969396981412095059218078322019618187776121943364392410452484870102456944175057112770455085773562736363546937267562899639099927877106056253008426067427205889934551195067182951647493953406346794789049800689740868687703434926235774026440674602440839180786576248421533861156709018598388272034337735408056692627329817500088658790761355731644722789526656319096812454481244122596973813776513609247256624617553202017146351183154063153240991239991376614591757217849436606059430584271397405960809301964523179431750790069633426741199142760564002193514555353660998887352337178777969721653963954076099493660752351626921084350700610533902633851970217588895632508849164785569947956972156040976133012130326627695559831401336998287312607260779480573553860074179251492565530740246091871998892867035354102171426357020215951552801795846948555820407769786022438630480541409942052855278245444883504486054577176063825850654063596841512175635550744890091765398080342315096435233781339738998058604877328560938926657508196074314367049058272543838590000920440545590737891736816464528032225597446825891356324483729345481447152344688332675627072785052122604285179862866497230990710651044482301139824897303333006920051436030551219194444335081200990279059600201428318457717010049233447758563468515102147523350589659875299255830757710870491554730456276280074421956049126637842544803844218774372234935593161764232936718848925716982084912790278919747264779130323537131601042018205092096141204018667995363491968021303143561505216064167754447216653122309955542080356073211549526528959482532171820239186715784785688685539448283497167081789718845421950466658909954251181500463354840984965636122787359646463562073148934582946488670535252389704592702601558088183833097901285613278762360719237917291360409417414660603045739637581046723493931558533569790658492440850355694916654709245096314202623083990732102289745302523228939465537345288283834839101015347487048398153404964680953147410724702852167500696065168189527305222206431824796680567791872595427827263318908111750492780831141788114628033266722416571972178723344779906774270596798791317955966788658109337105457798561187397034758548515398032901065453789185024897175692931454975367472406830819304973986846214517540919900570366248821359691268462006159648644823951483710909184032265653560980685665232254697447600839604341384058693843223369226767457720901116135404510681789634961863051834644978982926936021322496274126546934610195393252682861485876706651498488310906178022322434259096657138384295759113076167130557166967070734745688179612170582160091126367875853309365863587773561604500993130460171561466584959495627007921727677144586564175596315067040322822907992741724259055615930047564644795701315710822400284892460808927230528034745917586181764609668575999057854017121229957440185141106108363087732466361950467716115694326629937930642625916081115729504756506833029522108000841248270808362287063270948046553199639294408409979985686368443644814016030622777080535444735029557985751093196143488898170344153394684640815940987289069654754937437278631624223646253100811938051612529259909568145844452681449797667559439813478670914694452240022154418850280498012347148338108924980195439133848717144978727710915120722863627971244850204480140910361550334433211760776455396282197391155749976600845270524236674055551185695489098429270653286122950851994857902593811680150887073050957300972599690106851493644096736811045658338089287809808294407512140224612084804929776306696320563029474286641669331441088291337647278923931845638655926045333996750193468413131400041520212480208694571759866189643326991983533599553566469105977988261575013917063743561405579116222727472956839112119047706034549841104792608836045589510346154058236353013381441057441083656495843418244220991223400462581740585406197420870000291811666945282229631955105533843881749812811140261085915452060644274624925584156298638831156735020202741983069115082088935096560559490835818014720764440651537431401168376683297163415562079981239938569857947270415218593314908065927570931663684157994549023698631674461030153951725256130693678895510849757648862849596866078797916069747103156673042689835713589834517935957335100467470178583607898409229268218133503311228306796221214225728917964305909252860442736001368873657130413643870036406132888198458510651170688688499348007126971304162574986309082553621644766923324777096260757776908676065866540859814061662726899347428936208700613803064358212255062359803858863752716853480554982867517894008667051416081035982672167682636840967992525594367896998651991356049596106051168596032424875720133558649236232597239944979198259415463449278080262015113931258871127710323593125058129997832419937657090810122401218359081639160172278629589736649980960241862379695581157270522450522926252384388797306157393723013510672211083635219869792034796825665895519830790902365667002449708604613762621577629821641755500479586821139146230207960550281374523327957710158452622652974397442439085221619543987474758442724341036111373724864193248774263288840174195610513584324181115361152624655559225297922540465484416177481596266740509069483328064687627556699254053349326959144090698181646138217668891635417200114538107558695708592767802045089012618103956163778203113539087694534946084093374746228481401447530740054371904755608895019501483114278801555443930961194452385680186308026584627497309729649290589606563906834152020811938285039877796046242368849913889010505397231129026454618806467243137067125366283670200805960855464879389710755510915413919955045264586674242420836950265377758024541052320984098903685897975488779966342946659469352469294263163367950673807768950920344826886501069176062472741798309992214359799667854161774537990149051280399972123400798327982981512255125227773913967692589854902452655467251237785966075572093121377275853721814541396669337454227783009024661819690036865470971543708352482139649100301205236613497523104611092194928969907648138896093612588569173738748610454839220187254193158011158857776583259947219220144828525003517922062182467469408261209305450924380955002405209488507218254217865753510608818641232084950444786377586500806897146717739690241645248055027941535687328287443971325953318461509428196285595231629309703978928877696555961759008394550437344747812066354273485536776310417879965288359575409329833616759929758748979767079137903237910484673166269629460040304517366484043154330725247251013689471312992493151452506688613632041325852672308178897598033174101143803950696591207847846264944787859664646955293447141447269327767162111079990354920005210712366967839341480729318131554014580648141956571066431585799882703291907484641096401057516275244844391827261526108929603407377928400987115819661024398648073666415775468314852692988300281540063704145094988870556174843922622979221239478376751670226414167153497827172637966862003957040098393095334622309187098903861766953153817992811297887550009289002534381046529336670826527806699062926832200556701469891295627540263295618883012461750961642133931633591098362144919515212776201156846358828776887965725023922673901073280646154147354680547983811303606387748700532281748998699042471642727456875437833911391595842092102509188397342302661403242948865538428545940507746276230211497063541908652785409322816217298079413596231907725197937318216212941267227292058481666005799486936646844554020573845882205059451902919283238151984914973758866701613046100601574136399893416454149723777537948732129985049381578219298889383085864939712239527771570496941398462598558451917522859145823745506388133257448709660757106324529911501763411945964195500941881200904261151316308088575804973374613419774542425006501155620101135921733866983019284184866146004478898304079226553674886947785419275298012857462431528903211499797314077598107501989831534044974161241749945811544668531460142572745143064571072262402475174377663279334294308228426610370587029411412346657917661631685226356204306488625650262053980073221473533272816659745935542572386075775646318555487024033837522891786528305602486993860361975865118616312611592194254615611440817183252142664320423865082993580612522788126023643306379734798124624278984442425627649538207182408745731473349221862358861821330446473141717474470486411336470020760862375478257836102537461457315232476831444307928928521331852824455111942518630921476783308889967095083313590372088330282965671506298166500662522343780403197775415492407665856854723583576248389922264844602350293393868272018342060988934388844981790405680896227104400143094142900932674812838917164910664709198124219756316017014643854338944418119400321406508570825455625194112467327055631960287328826232681244905692357737623229031286367447281265292159998722529984821254091163725025352586318897415809337000960586904566171085852044306518110435944094344878555255966407246940796778501008228453460081710604669884980023756151800989718091389957593058321797944584875580191363967867149222877345771865154199618598918693423536855037478271838130841595011406213287912874977784382583174155288435288568607139659597420291477910695103363413165164666841937502178016562195922309128834390146565986828647549550863198694126430760789038194828427490377416432193525608292956322396838509132341231450302367028185226895768768097619927338088049731816312645577787023166092717013913496171550053204056955114036321898428933956256836621605967080474343971217599560344722361741065428209044595070804319481254148572180981487212789552618687605541656501474119887931312399115772382443460550216362402329132447946801018214190809875172879175296052609651108412734291111992928770536760020709592249841981858734007158218666014559179367259786673092769915045704462945093639754660066846391860894554359883722210106908065766528993682851368479865815669378013822041364282326683420007457801737998159552839921681341279932687094985571359353369641035513635691925917698822140150668547481981941410599732441224790918910525577996642585254208974884742165145369235609485335309918555318752355085825071728878482560606219533541733139773256247343096092928665214334631650708618109972069933473714696323071857020961572012120587518483978325747325217359810186547835500821730003435867412551270265579174525253614248711746306902684459186923726994716413883074188923227763406804263729136399161777146207667437431581594986404844016020434128130757233067175039754195240321567014826976727893345755965040375926172874217472939589242991755163573057898365325333903856412427468644067341216066502089314173602457417800073496878418340998428586502405774597519795934606567206439183947059059001734299687413341066174567413464921216004769284135173616855189965320186941858155774698044906354683556976195203988338748520958936048473287403470706429949857397508862060733016187127780417470538535360527207149479262731284412161784669085023464661644213065645296704968542454398277609718291194190780770068351950607885071352688617127261820358937458604964086111714038164542038131632901954955004998665092010546190293766601159035035521041242507382823935499215317962126969336531822625292613756250800127429321177128375516501851998395288138828671297681478946109055112278541182142832333454555573610680391654912676335594570593477619882819878375173623228624935213344858260246727244982500746334924637443423546364070001137065383362332750497157124207691070111254739310602557797365892833831907955271872864222701841181810668740214530872585117674505494114705603868080831330595672063558317536641277172218261459526483533964755442802126252833804725826403487844140181325346770065352100603197227711155939901186932107076871270054451000717894678383492959045771424128434147978163711978338231341663493456458942289599134113664164010259107634033190845724802694065569572539443362437350886135083525697727915010894984105317323358849446682453642660945870074673774359429432177620876345985211294263178025330676548727203535116068217664578227438019357950466539218223913750183360782133783021588499532100015755651586090740403970979992735516710044883895833101336393775084222825375630684504258194425383861788609310407727662221223978451488080702424696969956771258147406273695269000772191677127648398178598175416612814841181136027363395088303504170327599592777921641601477431725013086483226166927079205227233182432730491355321545259472007346031295500729861651734311511872304753221417540396009384825121220034551626647957201456948860144650989034098126061741715091405116987207205841948708076565078491030727678522920390537989098857726137650758387131234657913790567235839153912270051089005866465004666249747652941610177710799065118659125684832269770348119354148809007629108688054448233787938764410525804260911468836863010522788313074154275793784643096799125369103519672588100930851094387022344567895629024164619895144626619664225545813444832541184266204001867270641860662127385134026223865729256277047769777217837992968969528841840887009636150802450069537669876594588284044032895671911083553899007887327857409109381248748729083469743566818334369688768884376007007614151532337565238425616646705721921941240504411074768276003687014699907366631397997323165393463856998450370366418983621938716581662314412843627282412798703839614646277879390322574602669705740185190446226484448295577961693360312557241242118413200355488742438944392643067958624801717130021276024553797307870115448402025837459661575924288644708575184794264657714562324086189827701237167548004466184799730214385434809320240619732287991767240517400492242132513235154129725004655288213694826896060459449773558721701717865657199238926714399978878364085724567864739712556455905107420927492716421496915286724525827321764991252570048164942364822035116749425819273584014902602198630448855126700588479655395020766293976331792737319060415500254001092220490693188306694344268757519748286471058508347152054174274387238390177121265395428635737084935598454162642827285601303152740483963001853621335406532991782360689007351653353398566545605009928228572995572196265539468323992345164514828777583943106959862466888244802838168127036731170396639219242464042800201333992589423456209504225199209158140200619793584157538796367985319038032010838232392610297731740737483451135655564983751502558278607172341256228263958148439318457010303280831330347625447719648728610726587923066543709810890285976759212268620597942501948320361045122249774105263590486368296876337696322094118358269898759204974794601524384951619017535338325984947873203992611534094284743495143929859099470310826934011759011240559494167967532666621741617589975677539353708533967277979277204121246783955067668159684320888780236143893719768354055396263969465122393435778047423907516609702912097416989903360281367022648480468718548327657059467867994011712673839682332607628828609682127612978747333987099558829333712292907854466958530680503873855970053013480887725341945580128137515267189918293581728651833165628411471562934004308439602171847512982228137373794287389982433174107069324013402114441411381140655279286002012133785258586778971825284022831358641062998134628725265039159347722683617886851796841000306800998780234817435933945395553247369014959359565163977914257527720790187431081893288551422679916724270795010699197145617598807616164624233273748284616568315486230079628904217590837449418912814371752462721079354557469321665472482250901089730430411312865332756363137311698915006168419798922114000533537231353056509034660788744952836393186287340116991763304475598672216536571222279393939547001119189615711049482630286320573841603061670053643721792827276363223766628055963860243855816511775813430556777774385533990256677650402995377877799159735958247108671901554630278966339617368525607340730032838397477580230329991198835294874550115436626739401641092541165903555169574853115547432066936993324026335128468772069634558976234515676174700432025852134567811830268559698678627475291410869722457911944652034623906758026594730550699464540953536432622391180802219793567241045733765592453031741175837360180664995966748989589447643889028089982702075697128040904830469672550574589184451394837268615719911240380086925627848888958730907942543240738571311583444092226551832521873968745615870861021463542325326082361768848457418785385922299850611112559275879081365578426183791356327658240040860689158848169485097296600449695984142244264715614780628765076956813655616918759641174442200227025166695613448929487806687106133839218950437100911693166377908968134886246452848484141711302898362445231753214815429273590263650522759558747492253598555247443142715840016470829657157807501192213164933120541896324687959475374146448118017523793646543064612032491402546334373332511790245446519814878993848485588951020131206359360477938795107899941533267859212699989721312781866320250691487115937314862467075946674848617690669909935359205699878235418898395233455683135103665581363209479173680454677059772775076288164679766294803533553812323531953080815638062454177250585528570539285890190897482467216002360079101373070594053992369555528306216858024750744821209042820266744702501427708530939647840514289264112427189086127458038980465980673882120193720712549778050406183793728184253108548886716383493804489601584163378231353035296740997990173944988149921615860957967524697535377885985159705226288245353683284054041690819297100272998537711110513563491664754264176862977643122201811887681001360786501514331853959043065536369644735621867296750261432490780462608058160996348979293369983812973545864521507369115889555787339318729727605038100182706640289437694791242176554081815419628662275543070414721411317756692912400668819875258471301125695994802137361791346667564147106004327225041441732839270500208866311576326017388974811356451702038875379394352484691687317484069971525979288833330173939005256447659292914533457644448953741724992674315185509212501524220109704875545401845611737473738024156145368027618021667732751104072655301185842338097848910380837594412602844829128326718852456122261475642545290490245860764132912283128233489727417457883736971164857236960141323354952508902643329976945081050642320673055785900840287951982674152275331808489811875675104704685216340591320989031353035075033525004982625818123609863034622779260615736968662245763073084397702053943823298250863873843935139999608358824267870255161358379349594096775030653735128717780017552448441834053972400432789363616920087195443221571910576804977536187118122915020908637214903148262901518584751649681968001187861999077065704170713283444995947718849124758071009119263512454793564337574206349407778738552795767799760474094520215850873673119298525093221404982086689776527544938438339754878207623771034678911233553158118944768192385869891645204610178461037748116761931906709258960392181589327690502374106953406737674056637775309648289628763038301620924224987577055419868156335339546730053900237036895955138558564762736682216520904496066221974294734978023418295180682677587437200871268132973061789496725144563685552549332385774669915606536389102403096799410526979527341106296860233010668829965669198057022991299836875401717091134294386621971840215656553211767278452890104984275127122612680151334120289733719284719507584946839821140594401216387409951414452924621875532993245040021406494985650606620129393756310453784491459916020760597533278488384671444844354357335611566256509002563252961506941312228257546293785385360957199364275066301560930642328430941852191597867491371396704675477742333232817409679552660095455140394663929527226491227025943740599337718350888541510015652082287148125597852314512332995396861900839493747806986742483416280347366880367511891536435061396511353506182532819381795825472232451180661884718154679433211530387850420896345674929301440446780160853660053217601073343631467159732858661010109075359508896846917966422007816299739072841411344257272924119976976927432960326907014302532039319201296676542337794520462167066674066593325105026277375698274677679861762398966009055325335253039656577341469142096305665504018379728967249122813034704158671720016763946166050098005338431814122658368598488530150012283826588957506910631901884127399821281604737819005737385119567643332416555079513446570523113190766843923170940890144052294408014330638860142348936165849431206487376434640655968501230746712292496952166151990309864391193735980804083228187838762889108180028352876889054786484698759257360752361844791550910954113657033595800842598755779510878067973844171571626435883934561209384981969883262802976730351680491840640841239327302501357101055884409969805214209844215149454435246002058236803129237070497797931135400907398903298152497966095489311227613678804454844110471802022437486367377177040713236646833390522712349160953962605737738156574027885367331313644193750022173448907273390717956680873045973988081562584643160942077436598666846430551942990173346886933832849356655966520766155326555197628671212094537953047622674071432794716270629060438130204184315616960206284439383379603702971352904442943979849597841914266043229043604944138136858942385027738477433858058801206272177867108377077007880755931433090465121317607590638886803997872370717397641327112129874594964916006924765615401163851672057137897322895364112980311449603463524544651337768801474893971700067250953928214370708511867766203589786230888646934755731738129142046342370905814827547559876190135204809215354776134317250078537970066228802958534136976855528879119420805569207029150463956429138797028264811700676566918785209188471818423370582827332381707351184469089125115706292700263248312282699190732404045800219263398368957261666141979426593383220373951070098724928298799151280218910367913066207895802763829734571219014688722560948895432881266977688616481022234092472587968822333477661814886371612492404489796762273783996270423462085207282480567927631900583241394890304360701369553731042327027874988241401516576857057403367355656663763595572379214488914334142456112683302233615003593789121354421892634601941118502790343145814357745108044287373717428541400098514418659374208579190580610649456691180514012110308693497417240468838916731664968924714437898653075416409626710864433650876974172931157051099336297865799823660766682730585271217134065922722449303337825634358168239880421595651232292540057979789331328938932848338459698313336968194084479521368468059774179491342172887253081574993646062051548682835573627360622820775837657409352259442986068243847733026653475937041639617277399917987787687592417518755866861831322796932403876407407180642136920607559872503082275800240936769154369518975254071749771962049182823851598047431231160397312316950954176138342919732989238232412030662652579720975118175441768877648052744656184570885277954894125490596089657335440181914886436032374137651880086942218760742671619004687676095610944050071731185237433876970563682860330118443839309432795985831683577274360840838944973463610769715230807057951049035085871578080787659428420844974941512117936668378019272103835858619409055572603759008751385267651290385330080819079817960548189303290108724954976090619930805102888305348023983496365402863263333707501873163812856728549559923537304831755306745966263305126364325246617757833967243269687220240907520672889246872115314436316592117721814106043284772490631030257993549131122225060861163206054357078543071790338025602665849394943748527241029290301587588324270165928487170502226384737073341857311924411817670110278257978759052289952126154261113663000768283255738908876410530670906531445986515174664988000585420902913799655273784988414713654191600315372962620307295884830765688811541665101763054856307242766190774527314112481188585218327513087521140698568213177244337581410199028338526008195199336459894167708818545810738304221800736142326929373797329092900411369194826200093712629845100363114988056603411990679560177625276585067594711147647243271446271224650567383609323957317846043102689371437632377331861235421535161652984056635458209820157696488450854026497899144391154335859332886569685783576845195839613264068972445992679192965670940406144333896012354617779713160919599325266600167611489580382795350091757720262622185624698590304961565840172007114805562709111912891900406005048708421042650075449481910718089698586985546578150098992278652644045546254758288971691204297137499533588965579365906911858282348132658572919672966881119786188583410724565019812475764375057794071312349180603609539902780752053214804355044533326134978775424804244778625123487214100586239696573169102500773105167580239024954558898386431742057354188796742468686904388295673068045489911015682140326391574153039956839298998941953409222821391922342205470684956095447671667292712091823470336530861261267350359592653484351991753068349544070708004261156988277385609917647991765806666250476267026552630106867950805220570740878548318989536410702836799160309987962042466443102428744806156421209200478155613307186362443426045503967455683988805702091135207157935912352666171913205414679166418570298011594394977191329100526282440499691297007876736510689595065129460681334024099394876348756723191297789452456857835179311786482322678558564998503392807013436479791265499335163718848740874175913678307461234812332341245640232739798111203264496248338998747729909682024788150429268049689446226543758694131233976302264191332796966067822440815714527761472540994555218312003629352560117991556871239274148952403474924853687975549213323307215561699952806763096579039877872834657019429861008422705755451313664644523918892174243347791385597655034125799427519328915115231140596209854771877830201225698424363529232417768438136797561043107720492028861787039975960805262415095187781672614359244612044434993066744400756453483753829145850625706072839312280869220069195974357136308739563852880889454012984189547564445980199144564737360007961403635034680845525494401601909506425211331676706244969456251110008559145154961299962933628751497582744761978736834565501599686911686386295729531665113409755894023739453646769097563243790218987705916059304943515517674189357537123754799731266252116196170887491954695499769306980621652819172975020611973477376134486248674997080091150159025736605871738650048580347539004931412400350542528085242526474136484373464793509098864838208110477187563432773331072731310944304565043600877943941562660443814913042705014354955847078498357428155496544869649091345399265683797265791918628094561025294293869385974243120091643376787702137531064222309129577511588716689700965405249661583214815852159755681597227693156921200091322661253268933967572815189377526368258575662422513984035543991731604945430015623844057883491022581413604230803856678106065900124979177184462597919578511537186507133966334035918640696406475127868326949199485906104207194983239415841819058282025907304930699233888831214589131955490278484087906493934478527203771447544013676515901879427976351895845464430905281131407321977939211837395374790206304290762094458162079051052821555634704385031125536948450205614616021358927179645016479676041566114257349219011498672541599295683766844972019631423370803861765178188591470853478611960338926426950278744734252260634726024844327849593240585257727552706239741927642672657700596958218337082587255783620068719162537637061102353682059078952077753630097808478826430706137662416194317457065806937672898584052544068785622480927711841575216937304780390857156673922580515075102370974579729782408852155667884611489450158538584402235369005276815722379140945219160750604527757259149581338913925181855274254238461111137980866267527160959046401578335882473705232963646762873000313993099385181932745031225801874492753637960042144728557323549691937648763709975049465729969512325606623003294861447630975293411570683695799253299931351587606028406640303196719049722783816926799338911061131485524250234914490406807736471434740607213376162527309963396053431786858028852372464973601718327178697148203889465235685133373169697248285467872167030660851235159036594609449454678743916371787844880843830786525617774388432685943676440720225618665623130699341693042199017414552491714477642032196490492622182098280420271468529126832589424307624749845267985595639181773394572034002516195071610070756278868231486776044886173542520941882606634157779525474591221995292778287925544766155610434894075305417756081702616476811261657209970138045389206342261332126955934888154594897290836978873266638744354170707766680562219480319837489037108878189848888298976628296679420650980616538766978640686173592232947622580474434237819020612707008108854676032027061010636888122525212974512286545201945749978134303311284033572173319496790282550112476477836443229686340152320239121177205698188609377129354370125565199770197745547499501475185256680379727563406659141365434335679516158463524337900655904025185350657517782520037264441954309202724477500986693117904414225555641835256932914627413184365874175934006816355559676399452376826732087582654857480261602422268757737758991327335206795043887083983427205567920914366787862920445015961930376125849265673369276099321513153625540772154888069646290869737709848055876958560392616622687357734197923220341834927794610823489295530936415326872826847507878601314153356458450998229910189334180567737241164829424528088167051248174386189167013284253920519675925751811761250863468657710608530085105864720705026724384685475009706111508567661435803380008661666813762041977946730713175001473051119393427411053436102467980779875072061595165899237001532958260397501872678825061062805311823007267427120332201209948959820297065685422495088041515574548560729125692701077467009393001247982847300241382606874762187304165528736482500912813485207264853446952403319895886004687681534506900146898712924828953752950610473079931438324254139885697894674852243958420562507891948824577325095325472855118017706394539644295940056833898532252623957810838472335962293377352345573693755115401176006868769711535446475073246212901715668051576898547934365822875460704188683329777098044715091805412346655552997550472863326050928651321971345651129026769292662682066355439536576833892412116851110457648471627042872930112932215662647772209047614201952761893152298094837575853995777848463183804967738457587601017946708611186544499744225717439219768594080259927819602670518050336770043841214943650677108057388457602825449299008955905180562664543524470391798325862095842440047399148089122922269430925024357230129191074294635887259503849442507280083075747712142978325773284224015402768700450436046007562158176795880492907369338822914344706983161185410235999549853434020651660400203368244799760599695280727275358084821065131672564838258155082108703722152930623998940151931547134223633661609428539354070420766634859243224781316680548090128401853003024819216608198943679766437108473756629670097516058064700841042142817936978860704429609557818169091219865420601092276812512900090172467011563762994438494537565145854200955274675396337052828873822037639966805997827504759260590696974784652339720635392642525676731903001398350968495121490479956904567810867323301156094624186238953533372259261375873185217455418203321289931796231264106483644839262771939375031613552141772713726266548096624078557355211164726574045833935163954691007227161846415362796985126860753820980182207282291301342567137257704478336761848628890551014665337849894793074706980288226415135216321864962308498851798664685991628470319961919010952892473350859451799360755427995787359797169257458125282468026502677444839452135008467771376119710127557553843234808147465278274255762879523548015448190918020313084552329589730356765469393402538710836115664804783200723235293536961941624274434404998372733783078777954989041795612259510817988031627891982326960204956612081167307664089474127272256050701666304361320860040569347026178748082630229861178108641645961676216762015755296104499421965242351774276801900493330969480588266321733050530645656706654855577998212337781788288419127711480769106459910296732351917705236256165422306864884505009414142924626928296040306451178746136011011520701049576264324004209508822800748478837792303781273468336342613728537849361215379894502931059044638421924888449578892597922120750133974279317388458342289720871394806027111231270790678696845625326083805117629906984775905446842939552397838352143803638019673597716265534809604443557334177215100130766009770331164533631409325916761082478798340018946555275831587992843970530935280522607644416129954876101910028096532732383764646700782483637049552046296775572251221243644042000786789678105410184791346878569059292230289308667503753427697062779813482447368113993619078115377534516505332765144130580213673163012323406065188082840257078098917630373888443405544140654141496179559578357707327082287452217201683975517596359997082120702051310225307767477443622097958712595664077799619512039693733888582700414929221633054118476718027206329839012967007087522452104500781037000282103413709991256065146498468569176798289357312473375606661573252302488336866481807070295003480509852037213321826631281916918551787466225216405246491494119224733205871412592239075750498569019708093065903584867786557610531107989207864375815813371331331668904470077569926643441440460104646332164202812767895715570171319036074111208660833022867033395860327675571626282649644111264912708873437954039128685399626585498834419898021595039554336273131588530019655247589094314877247923547024453365301762971644080698685806636338984472761557830118507566614381564549664038179249732535187265774303657972896161447804952412572287643237433046611345379794780705033279282516151222760368369195767860558512084390327046237514004454810599081575414513585930935222719732104465271687129101279462355647188983986496346415796399827703312849866603243227909496043795264142941524935213538859688190146465149409327619990671323495404228260025417059755356785580926826882047600291763364339003236240966332846790347719627526181253263810797324423031513069731042118425691646258491860786316671848703441081103165163434961372773445226203833924301687324674789580398014728361682293017027688787104732214292067405991690949032991148749243188267308374654237661245621971851413843590000934773407083736198365748681935857205579408249469467297323996984662270276425034906288144193802253080952463670213969833139520272240463058109193971189859497183837131189061814269951736694624021029453635430219573606691446090286169779575415127403429426439010575426476969329339473701666142474308049535589772314926447340738491788278751124884740859571395685998164836818465448185336448245859411852093231330102987829439406725528215753471423306023000964019858173225570094083548839832124752363733093140504864786707987143048297939747266296747822437192236244268708441984062309634068730506283320638333958868135495963087101757922852606872149546440605412425664861200575368848637825462082740304691812682009308514389419267600914350336122759409648734858856697708069307791393465257006475777236969555729502816993075295137134417988275510780485351177113715090252365317871032203500166905034467494317697869964680717599448289715395409648406468578176531707844047721835574483093998820097460974761895636549194770914410677818633145603283692034589675400378621202518764231447715921353965558129088023146698601377101628862264123686653247803084574516344177590875924080985054654591393092431414904449109057208299655815175380889186497059899688802112734979728092393974983031121873184985285408401030355922598136530625638351996495620327744764794811433646542200202225883695002046469750249935200015865541858317151723998135971091966325984341818771130824666165669455971860711096472706086099385238434190634986569477456863018385158032982134046306732288836772899557661126964571023517681086441807487733521366642945406456587621660214029841212168554796636660168449025362023435351536039310577142818780650449594474209349394027187299825409209087136792236230823848982861787229243145803695326856041990569127646542725160522231983264194079128508088468366584000008378731556587588491366079760209999636103220134746557617697611699529093620477573348123138251801730615223336730783967261167993746514241614235078955874238369323259260369794127675203566589398199961758521639085604353216723053643339837009082741454328531951866802495168471736154848042955363311932689988238242433438469641237413784087333059102878514616596140070832851952358964754750570649790190025407843250291727493572943248239973915448054209425292357800513193181736221725213881665557707969884424689259680176266607850230507800726845377999762046735043310979698668361357597145773604341048875549118594846187447008389874411329683281424585329326984147545518511950907664698471398727796124874268395216986741200653160687274952804018694955038513402786426090080301855761456413898056288358385957530348244439569183659547089238293015578301831284619286493990865604087675211257539020032775679141566705171574130611883715154401228897873486201864207480124390289777159967508447709626668115200508890990967589352075970197533293226136948299246798579768002142029954461383107794833412311403266196576725412528849727239418255678583364412218362715392523396128122794872815865595613184108778346135030149182718215255749434727320577158005474158783899037945530790819200588959946921490616099237539776596558209210116281505768952982707764838983078461701985887175124514379966917859900340909268327406423438956664518301689207831756338901375972048844004244102093698747479000191679841192070846412583341814743961667794320562088048325784120050693314532569594630625221348498219332667288199221794258113187822125650871123337061351984804491891805091507770221119290020653590775087732910340819187286700880296241863244449556959358740209262895291094701628017885449045055553017540383250063705537805295308929141683234775730894576869840960219033412379232340846472688690194602120668760748579572888934576463731535007140693211880332080370085829525013892687798919223384038603153863423719644061419031944010031764741581227941172829306545287274689872661229559970309447769884156318585676200159974691949727418538943900114448537762068786115207512731473625965467279843016616311742231067274959599727331044085883426946398151787519058683401738507776171657335522755456393854461095673809016935771226722198926762463700521352480426035271897328082268821711115070465127902994707804174390163246615216132623582567350232108059482762126798724946779484136621325370715716112433636151493699830536561510370269686668923995788259507751900457599937646148704881818581816711389419390521708758625013362003699405512692201445340799162770892435755491071803073269498711900011140378992831618152438204664335299147851768118795497000812239003654319913138676765975220567485702170933795119660396431776824011979458369818985387953378365765637829532052767480123534853262414913088717119587005365175713762616554245959399962475366595907109818862089215929966441818114810662191232909220316178850744921638600036851643584721523675881582371869453978864127632922822641616860670060356548582125361098435697784913970479062838292936887304204221994335094825908478626891965649506707535333061275889756058142819674658531002973394990389817709052266115187856106845987510553334225147220742096372358970856315843894772606677402925458110472123459162864224856416550127929378631037691182740404503392887853096997890358577681823742487581968213711909461386473888378630456622935461825744754801456684383449110456422672265630256078746442561810295913971822383782967480601947511868331217627486457677620067122680669769863386818607964729321140604381760327730447634051869460832171464728689789497561852947319492690364355604438725061603831912864658778935651834602343759125502334167780619006707812148080176956050916861118645897335068721225622833242935374227475497925266466510607723753098748880838909235348000097253132638501170008730546747607241477288915975035689496812316602576545274225732149493315752909065129182673801247081403552356344708294051217226220582855215040513440496999395795833145538309546164320102968131697056409649130842965814430592272384225956111271195133165492492911125970672744930361177537491870633091454618453771768931903642666581733053682324432792551966864871068034329718655944572008911571264974532372251727948586513939147708161338431519205958989023321747283864633476229842364668322424118964918301801647803456669652530803576511041308809382552890991946328880490047549681358574430554563766742918406686340758034312193944204198656948847444000964637236124237697254670357345804477315667189141091925712634532720471635968253480797278529051760716758106757893565927300352778881943853603052703246985672211194113528520359061440908529270730827334611083912244667761243288188793859525333170135028716579705307743744958554119111836872069450336001778572857831068269782290121610349217393428874377370121466815499554886281996261801631173858851588079874882603559509851410234359603210055887844313804154497243380940387294961539895298620027751665709810771112465741813066301080496377663203726110959560376103224920193408751293209896337910981836311967391501978355490854039855065791004615589989419039319567363473419759975958337327648690142090419314685448421527946138132522402969583131212477061203992275934314332903154340272302934526466240136088251982435012978308345408149801409840995550035837682605270110247029576031886078192529171409756005121424152715396848033563540386761903029900883797928572290520597554888488136091682860694540707508028745256894158408731907833146528366947178811319323975455095992512857389664539659742477429522964986785959128196568159922563953827971013427983442860000446195117379379989947946323626134845105883927960688749301396531070609114115396445714514761462946760823671474224111820903105901377198173959482802268338108655853027398558124049658283581569934632814023532673211500938539651610456336038160481070675742284613265519828225710895903658431925899850760503176731925351507055602129005272599109578007012110492913454850524444152369369860429140064992046918513423932846937763140460359179890053161841154587493856843546748886001829477906597509010752730017129590112368681139872762544805944311712761715629693614677290521235986946487107486737173815834435332387259457390399692238144641698747968569558930024014198341622523774127232434740941930874567421969418262562784331661338755787889593647887156679691849093900090650412273571751573294473799717822160585842649845645056413062794379830598369543100884319112903131939641042655457327431218405616308750181647342627917940059046652109906757817027146199004779239527198055994045675579940936431443060889618757019391828567319516253318495060696168498223697157219885269499434057209691303867076496590554477097159631166330602526753246444094500685090867316877745876552703571688723176446575306373334925922843600467546690985510024004872392681957737295928495749132041358294201192210586486311636941253460741307471978715917298998302398902723058695900712196788746294920241031746564995900165506733242596455707804803795130486006849578790410790362497918041710226215778214419358849669043654845835836819281393537576423984623478193173606663846881914806542610464284166837405524515357360847663656611149634751716251428451516710017657406938405549836974723370464724008040614143657762727040943094028881365275708322156085906578635320066408738497429893107154795542271295477545247803228304213821595482426201772567540673838784601957884825878618871770637964679223795178427862505070013720594725010356274452748770189188190198287172154642987021930286854818548165619163699098007849168260724808036863503096432550749143245586529045309911656303019849378254190004767334501029909799797965706036625389941321847651827940910477396943962195558909156639729244246435788566269741173739274336155075482110786930104159195048605105129578944733448334310340722133943130435590080980083574026962531807111684830719973916235296714245088277475848468593452644480299984593785342057460749211764364528224169400273910526773917686096083909519533654143684926615403971093310152297814208592541688784040896715202024513844044902884181325673987583673310615144151900946353331695712387516663108980182650058149114361919351251895578970289864001920287616618327427661357606155274557331410802214811376693515717075422941189885639124286186138556802899952519504643342733254641200205870525794677589364432133810261086099839435914324317632847808666615908822040128775979707748754610922456907494731539739978389517985213266911603785289398959317704209026750929322760595582918774071359268832394746926237134974672218909725028325430171503205182988024089237481392370856345788473242506236637360100702114935030345134515958536039348578796695489545806412044519581566923933209279754831761527076875072503733073602463453108690383830947477235295624301558886823713084280268411433475086949490653651561680359962223340128607807779234409003366486680542372750705294223348844503460476626043534169785348615155625600793951959128078662161861188303122407251356935640572687207147710681655109301758632756935055094810681145312619165149933779832905112664826301532427097491954360613199858688089748215739189621592349547384691335301899399603482642415775756907776053897533511785872423041998306932149980831139351396173442653966069233920467738964455653290908908405532757079823710650127851281852823815554842225650343550748105545043687732082085530802321516949424326557398579986534474567955720676372867331022348164835426330242700375364026056098460644276824669131917984782251736911373143066066075313111638499879904841029841571802328904239044272186304619841060453001173115449954167516499024309836797311618358873950977736466342240724337422081727121238189304689972461527445126479584063275992454047243131648484350880913183267862505683745371675282508659126618172046552890139009122473205974687821968597051825770666385264949300267602269582207645676531586816927651012325402638952681175778578129144822817299947140740186371432061910652023639238344452607332449448149232138656968789616240936464349518808268055409617625817524055457623627060880299462742438708225638212466801980399805703026526285354765890021434250828698202560017421236828450657618907356659180882263585244016978294757794160445078325981417251834048912219407163772322046274314161370774567221248288500111011409409047068396287979036715509726745488532558110166792879687302139038504522575715033354413884542865949051775699408970795382585806801851774103903599043766750861526037339968567619963622355861023637029444170702841333535704359894933837767886519985230425645829778330926887116196102297373103302903380935108964318901471037213984498865832502745422978243939290360186739629224352728672211267013159992586310476516017836384635348454976654977578371398661662135979858058691124955626231449843403405283970312478110894806928285348699839872093489977064776846224440960461694712245320338243587443563161226071532180136930887514850419832805414720986544472239860510511640636141309116775436653287817456140883986633426442207623949029879068023593357903783407759257925105763617292650754847131612123947129541620698103278968469918263873865998290154499729977962750084560096187703443965665694114176373718475235024609337875260184000536305509012727274064761746404586717544174408013398625809603281175376159187471275530116462618143056321531383138087245133648494818399093124001805139054002440906753049161835167553962855846656954022531003198279245945735903618800559862546497934481294912086193397807474297332531889712496153811809357410618170724533746169754317064245532732604647055472134548387901295818240559931464085628709419034522760264382660809868146828098974139299483901896494163695104205923762490737778014829318255970803754696882330306030101022077524406227269370963178392459450366751168921803586917127042687240840233141307661544394334207917328760827247420622991988997862630590968392896614142134654028853726631291595410532066047587891177046999422929836247981176200249826830364486878015558986456222712540976433212824939340346593410544619717250022722062654906411600825051018694380885750198774395287920196358067975621104141721407073850602047003128741350033143916282202292967965538496905692612925803628237037641067287754213439881558478757523227535039744229594871700074511862556686901602061245797513752916313630446578284052725675493122897124607311021929841689328789490284253318644576141335162888521842496443961166760210882302522543763304971222548164907669211484482941760046171146932715477994097134739292497751429980923720930913017320664263694421315576958062406471410093037922479077597792238204977129815584974352428815118838296974759446816304071922734757676956914159205259224998346631068842476169683267560010844475802569025527125983821597733477117842486003320491604820157496945341724359012216591025954882823230529796977704988548093988693370429733138603026196325023715193400229598001461624234518394552961840427190428259674840005371394895338888222099627043381500878047369813809179938885256392783699077181121267322730894602003864549046633464830890632158440679434208270786295966627241612937685681848631304813739722212050540059318871716384937424448332635414867716865435916471471161407986304749675472059752411521333466356374027600192587528191500266703120194846032503796413484730210973715057180401577240992089866594821301387191961976209799920919502156511739088390921734408410959225810317673102828128529942876253688642479815279696937496563199867107970928820377379445919048575527646829690836995225053338637971678842538647824305763675420127498324599797877208875113675446153988067074225072144527313019025822611160982855747745925903152061113775010688437936646792479554186759876016506284029901239545776766506536360397888159485013175472915258893337251576927714459296254951606990408347822339885201651462564505185714799978052793783491504891072272814716632690431377206018531660199893919917384010997401008493985066641787891571099756468224378982455195360621370879873887129926883244409068801813161688601530150108237714256654017437502859341820090995996461292019697594543947581474922283896155310243324146795868130155368158218566568374411401280653810002239982662007954815959010275820330540870378431938536289633334628182843459151757992338237358884457257940533204782810506922229389733181816535642000828267198832342002919353703097443513837845019478767260475872063523269236187744858234252043888248642035183775930619645607095944199455635246992463617403517369689584968978298287628955731334929189970929161996573014411000466116856551971840694548629770712015247597793326822691656308717865631302957332915897998305285743731825438035399169700779521280072269250577659250234119992837183588954856312064863213558271383334316877873881518726034626629377961260077997648334072161204874396609665085650508058056319272351351138246778353532721320378098394869990875699917803561119403461843741234691199508576428999086894077125119866686639267275855521936881119377572983325541345405317330409323642573583340779807077696652401620697993097933707379807810566894617124729209315805773838526346356398100374956544377081891745931133198750078205615706369988399011115075571244950677634546786748569742415164879858692171280764696257278427227068933878499546613890164106932763474920887219993873945393005418786165039830755463454526067773060652172299573177465432983962221150926031747426966593416678023766479253667652588108459934535371660949427596177530733740797577298521800469830955099732487957049671605750547392114842924677965045427618483655846645771326232148702835931451202407562575543454582635031955233021723477521433898876932479957051936466324634057185328398318173414556196989322698797081062656048297753537826339463005562927353920987278513161072409676012624644313818164548676753742707046439927330022788157074358560197576811950758391300871952624169813956492527910713803836746765696637423200405741061189515463362663693272702841350617013051714182309777640913973859874886872189329098311993373409369411560282960965738167679293219218977876964600701720056613332618275951838772376131745155050911941406662499271247713160863758654041535412953673593140388190545333257810342296995135077648034299773915557015279612318227569166803654239113524884298086578352587765335089000697854160916685366939595025706643746223683306736601454070296412376271912790604683837137624455034005420157541926970135345267596246611517896435293136962241356868440854557721880146561102046845583129130933485462117181837550194976016335836319835384620636862036530213035791326197195262296354658668770055796043904434154574935197505204360703164071523899881191597072740941259408964179454594423301341365914421933173273351390514496363524458902357938699681715911792756535130279075780121996184608479856490433757506393200980094337104211616192472137510396682678313250571922928880636401512212242991758770076772056996903443046204040695941865692609034173752632041153838805575858757984183445913622234794082463071282524914792129962403599079357396716730597501356796531724250337200492698571291406497647683469188056127862055336399532356146035408523477145781255809915173365289151410895095155284595261125803739223175571315971090964461953460164789136750111923273065329156911916954553033611998725071582693760830895602377031324478042571823720102582078874608695406614390261807308806873441024251668295134249485210929668709869224643346924055238687695459133804224499139723037633375335978394771426175636920680821571803078376880829728698684333054261053222193652400762906120382326020418535633095783207023526697175825747524891062217071364542863401399365548622741146394536785963161649011352661459112106595068862043352858713069950527666110542113633405679302284723343364781580644098765319690444086360005888595903859087181525929368019754928172935716104941714687218783649631642866204470175662620318710110965652924059790447663512335428210202858530502791986146772756198327058575454265571564416308969051061244978533554323192818542395643712651000224223127865074408025720276826566982863492191868115285130091509317837349882555571875864223514510672636758593158326703010191330868142263400793822062789704428484633081121779085896060268380411994100612768541928773885458444248786146776206500483100096640552892103909460378705488518912277059337311483505219898711808480261064730309409975597154129455014265876748232912759264861401476723265467732560138669310410626976173714309639809889832498091913988557008312997803298607642059775003761437361404674129631162780939882563815725692610041270854810292193206768277875650139064938161978664965874164767072714287969883206772245379933148995404044689395740131324566718044075397546441780365764567462980346814099837934955925173025851708832677115249038094103791541610136319893229222269332619020173080654602222970423822408840957561797163967669702052098086462945479731129897266493935896949548697938362514989702332402615023317459288317584329012036104484148731770907454873929619495523513131363336032288207697153150876871872718140026573833893160724988213823951192702230273285803920844643006755709912983990898905557172327707890964554917372921412959117628966970729437729947669057446054823220348032405889998410709648496559535909194382780896200815856874348705384657220320172393400234389304332527860403355338165670841319219366056477630859270743280470512357468733676299506660151592370014388775479157988350908695263947895286960370422579208225812400242896811462119047147902505728303325029749307094109072251783843440931953221446619690586423760295591338917535765481766235420768295780539557602187156954985858212672317737781260251244668486842881872683813422129931216033587948514750157683403970853072357594983129604763899430827534514915267943354897696719643021246545187761666301808414743811139738063335541016789352456353498794477796373716526353291282998454665182841054881382409930990294772272732918211437545848273206027582702885307696807131871929576790674914672892623824104087516039592938379796729807219466996911998294577809228998402307420659126354693262397243495285302611193186722060220110448713745202643083715757786031226048871583037290127619875867902097203265461878653210303392083463634846918455487087262224324271359164210013093450767801848672103101941258867266112537040183201200157192178158697798022035990919720190881880831128966267727059943880059762018295959033456649435340590815776955703392550138200297149142119743022589874153387923676551843051183909981272525153466088111869090722968229426847783924363629602552063999211507790346368790091161548719678916103190716680213048113320863826462372067961647238694008093478041980655512202505932470727397185987252601970041964919264358677548106028997174397661655317354290524902265451503625644718133195024323394771346860736462805407732181636655757655626438995815227435751563542688659492185592994254373735127302751000318577924471447519994662723690216359171952531572583471461158077255130175844031602084600408114837210619816221954615664067432182538305842696296597548553058263709422575848120714092984531120184952836859277876075151672070186115648896226981066743322768306936522967320447058180281534608322235484489965502630449135683730781123139000167172626187159973439931636418786271392104120297911080747607976132896391488608165588806800786705671190285184424842672819494080070967659961270385561695900491814233989468703846988013412994594190829561607679218237005980709757993946330299259266680976673453870377283792095637306537821154630706584410511365690964055259962226297755202742299222203282531063063521228724742732043924136925370812152835103165028493831413107660738138768156053272660544170041891927265264036002556478512007932058191691916221766419273628295119582243909164138926954691177694236670724370207605619615756410388692855456551868978618144058321139779854488928799383308664267181853610414938409263551357639941862862452150277387864277815725898984580962253461937075715606854278490694216908419884155200631107210695830687192584017828114417258651658554449407574726340097892568826090049526169667245576541213951732102238476973785726860679656087085881454982150234960136123449522382577096502779114303323377738308589812470304440286642715226799284044767020608384024831505616636938193258808414202834549123257036731882920084127223700559464259506419810584065433970624027799796196140131654792430309282421777812817710680300580098999902442703586654087691817159451102971452883467183623228118283061283190855609093221591375563964903849295954247253195555717391532092281071606245833716203542135576668874477245294418035969123052569674637121334998664053747499419483761243304043862021544636918283013187836406223619054095885806374159638651938795545864816143042175424006065156150574398219000741394039876400524174401898064616774383802104323120548753621357020842918241741415913133507602793104603599869717774782161516329758709955973066566180485169128092691353215403957145843410920372494188821038993550458694724893424120664981524803694575634395098649768590268798263434819569897227085797581142523438131519374893049136526317878753106224191823565783022560023130594434958735715458037093989602804667679502340100251553208507237709626308671002349867721921922726880351581322550433165883997548280486887353693754011704031460017588481939547143644596889483448939270934318954060083205251369790503441026501562958648057429630866925508651215408084653691357342774275973631818134040789401143599446504207620467397150463330000682048930287314462669823199629447163617962940831758345617297914102490354903820037045457909917455425808500178016810688956912163928989278508006291890430880232756713495784009448632559306900112298828717508670139642284401198171870072062659576840067653740129180399855339164514626289464106812820701075085260181210730509671983682018266102479469435726814253127523707243587386286836191494742814536718726978319563583239761563179368073940011481305521835938643557473994898649451060447279781259831264022199964998335187186272801491931441813880876946005942599936970326451864860165386806966821717372088719017619630877826267978358423506420807615372490157571896287052924948049900407473751065090438716789958494565602444968011807990024272960825284370668556661341448588088085892689388416293826304045489091935618649042138440745444788686418977176042201745975883991512224284366903805462149297022867583794359979591842984074848132516011533657045577530438390862340283624207903019552015600822018232626559155156976764501224108139033971521986056867705847937548993390672675870377321042008219794698598602001509479127198429859042928741279800028582392791925289159543670225035056394541316094006386378058925409034228568569020075230044416637170176355346986388707747933489206262318638902276474230400412194622432773651756449428719599037397363774253039606320314179637665362895714917914735435855673327077227338493558700201145055118087440652826610517486939948217062363218381818118814244597686812179555800031065303882726266922786440849194748394844660188371248291838376719439085245116978194413376087405849254551059266302167507565019609125223395326396872031540852010955624730450508430872577389350049556731096914551668712010963665556879095269837567909532712754012412514478960698104694566473499755134677707294552115870882882881704822120019494273866333972798437373059752626301179704076614399320999407489087843899762811380608297849250418990131927116999351359851038985027662300104235266905800573973713408873134434073243128106712680728023102114433851196627367707678656973164675146651920835848171667277075459437371834065733712447072630534640700591912276475374976664163900105697118097176093865101610796581242174679753726630003295485050827599262193745899826314129255338544027745229789092883775819855768594760137426140459425813321387737700375872490971224484427950721877829590756499905889881400165333610235334923081605755688586601876088806424311601633873768267466890509893691783342423331560138957940534808231088343232269251070446226030646840218384077551916646188407419777935255243409179652206550276108187061268247896364641903460365120880383616190781237979568325483174104213818516550299738957179890809289774957029043642220180314114719408104811302047637214077455113440793463716831041869758875131561112793728535229813335602556959280650078271045200858153999909564493340667320506935767208638520639639503648074525948376135421266673795525979839848511713700553713353872297602294602494081729054289510874253706853720698752861692145613487895559955988117826600735530957521388002360854815675434539060678681160898602004818276351655233406075454991665471050029237283856513537161525876732604163682153925832604890932110377735436102365770747903876447707857395443024495266599057528263807207976180163814351413050784643803893653360302234672362372080371681576041127482982108996854212852442177124252173390962482986252339173369156655661570792518970570720021657960523554097219095397838154959323269106786837566497601576490841954599529617398467618785876703810113608028082314978936582098889555150665516531462680189022726988426443966353914529814139519067230812351335649860448887483351819304338499526030863215683213732785546576384864927241882260922538840722312601190279013263891331514583098968239827837131610156642623973665662657421102292005341792232921767544416135479280391334877948998830789648402266939556935206188042776247935885750879316991478746751534433195636948935675888695146681873999244896190494389468614598135351189502550555146445776548757125449938973699005919462613694227390299972488571806060633487657627492687009251950759561120420725499654973442313022417986785315811711333774970512479098092518336928728179537101137454173405017820338185155730273133075480360609980202767601644710837502335664394206076017344065231521434653476854550674570072295472159005646805832406732208151473034568154110036731737581245764863073831670300733538089267042560279934531567840518847105406145210699820100597193620819314035751657998792300809819117976654220126954138409740991233727781438931703891165382619767499699592739326488726320475899381346114097800435134143889190007789868644926518309405828557163754959514709613100326278261853732055938256083885188426846505258167623223895747654950291640634102716761628849589249115013273265895809280692469371604138202432697417270267171695539410085128394681532309968526138126093242030264336151679721281430212866634666977986528383627464634205886664406660722209784652767413892490563285610637537253363688379464529480206926916941112586047019703658328693311171808502648095006647774693872515502137007658314393114069254565301586131026891775679822739432710844276821021588615359202241039047851799814065528548521624693262156686177872694890310809857958622249129999447943879570891322914202271833214156215564192908575573763661356324878866630097502189987321148533247988225934927063061355198401728665746493135488974013153723286146769947743884180067651242695907880314166215786606427929323558694274518825964277488386379383102749638294210112507016709871372490425333662425897068875382864763858443058301412165789514121222139038280432062774594854776107390765992709807112191338726215235855497105450110111897222100501500670798918117662678561025434797242941464134874857366057444202288963372692032543257704718177390797080181394297947946402609410249715384040655803844768382905760513975097631942819136478910891862328495805345100638974792126638945736319049978488372304235015776156909520739274780158778680229748592222498893679080974035822060980760370833079562357228732985918408053412111051726474698510529281635166827889160139806279159943523912196164991791734684321541095295900261618649228927175576312092226080172395230169577214882038899242244727631255751097373554214083221651743834891773131401482799293365445574984800365610207186450172819184781251337890937568484465958191860253454944475548928695411624428180769748408203710802838633562837234029886774456289460530282376669645915934878323880063122696585049534777859579917790499563122693469109250618964072212117153641829929911416734303061982178635334346442283771719236390409919083645686391584358805369433062734071740160782578009066259123804900353602082541987189891278686388477676157835218382131031799317396432466330097439557139973981207089433753522264935854532669307440000983766242864759634810262937959278081951106996598272225333550906612894693071306013893186244447632059266727264495651968318339389444825217452927179060907976238905732381731733453765945837067295896930396507322347236409757968660914109712024935870885265900013832282988026379852432979539148258440658886278122084784937328670365923593382783975509841090427537071675570556615740355242579086159460567339497030746630139530600197707294144950436412565505764593038497726639223282719680974007404178212245413797664632099662271828242476375386860521144198814047697598344395141081042118320289398006926520120686903503082216552576144931470926696230440400656496757630499553588291382866578305816714401888441846000767335877972355508310226972135081269522306911633056399192681886910170332635750240510093725136077255326838420706415115350837141280778653880175732299164696771132561133254750300243571453677670636485841688196861667939805518839800070515865931734665215845161063287472923744306373299836796880572295889593591618576867349901832805461721257337384651302258454829995845550286660484940271096616264351169404189538768668365221914131964423253191188681935431859292983361183112617800068851547721804869318626376262341363937933096814972347512799321433706413563695328411459435983649092756660847243475857823749208940795304309045727287068449135732830746767926982122974048071286114935533353686077945619670595930396967655104660998876891404078123174627001482003518144308168065771131302359375124574312011434561061639829878150662869600913799943827905178331512712404039666613752011232981083591119103103310416845409004466972373908259449024398778850708933284272368935574590587920073995341401588711755145500368411641346671489649413331881851784549920435968124191445139186751937676255405832749421998570025073318586263015108158102479153696265007644821317273451577054269287740723520986265029603645002712489175529295826116373394312164999989186517698563373863188048368552681837840150846993296338939582413315404388883767920270982848488232590645532443194944535398918657703144360097476472014053236959760566225937046212687443165015952599544063526185358753682383935000352295353477001147851102122752458989974768301750280608523834021997821339182950348489525792391334010975038531362014005166659344752961979511423103296361572953701863195879362744844492828109474577979095529340549119108931866479647146435623451891036131564655367958319705300330289289860200056633840004387757164189206698651660384359674241521653437638064433245710770066608386135579176912885722074562383142137398167309064128288769875907462562658736837406752294651955838415033530960774614806005135200157100832848212848846457679145980069942338006353831297694337082096807727849800762149326676484802249618208752304632255853566737521591285287401889134143790712017087479080018096138326556351975300067173819322115219476220552487526632794788017858284727731876493295131826093626335138070295869122440806322853950627280498714957606648589822128430334059879668938843756201728958508920083558845809129247781356886768915648147442935610749792943984232268927514415863960695937656411571638028279632894024427489219487568001196980170321792209310359391921178026883106247121251307328132327726713114673928462433575942710871087034987801158788044686838539815433568808586714494173952148861375429412709868082128112209794297044969817670367606164330131025748480730965583165849549415426085459470272496922824724271183564121301820390874426652032527319241306339817842449339399658450733290521020808668650673433080671741947490509649211605929658271513926353508932441765043361984141166891580122747546194948458185299612292561899709321122077723593828442268426688572793544185667428429597724570751368539404827893139111287716658576435132467750113259563018320005501680455167384379862984437629051719454765228152460970009417385938646476125777335165461019534827696004889080446742834434183736455256238251845481594866305562556994777273103664105263592564861953970857764119892139970004479240245488260999680463440146724013757697795744651148254532384199177260444817727518688102815446980645333878887314484128452830206315299400784215796767163421460912921717135248420375453934081597990368713151023816955328216847861688862305823797582164978474127102992064715178924330673736805644333026969228672864641949964111378303959622114896116353588211784333777178024432020597300800029943575353824238133602361403165633877649319736673373659044705660439902235123438187112855387877192932750083648812600752603835807466049727845624563310144981525541054158258902278379681782039091776772966636462242486912279084240374241957984503430368180354992053158889041283563112317406655813824525290904556670230028012825065743006084097887605527155775590007311087769615801255367919372435897124671786435019501574037431862560150461822855476024044082101083908069800274837635038391198282840570662307183616428270579539906026215770079768638259555091003966701558780195562060808788223343990647212585844074568981073525146881163910388149245755514117969631527570623589702642395261982212606676207417297220425468179945527521968291025063032622481463064735168579254921970782714199714538573704344105987417702408054019044189664812901699611109120028193347131906957004940111506796586007006387046719710824972542839584671062358611348100179082759560552283879335625622799458744615385848972577556542287086993015584936281102167487434909480443811693148148401073890854545180001310634667707751265739830307020215953915196611390752012902963000236141698966760167289828428216991758313488147813498509971298151125205919426300111535041916244185546659635057346417587180271177337652610503414810685947398969046861299721109371625706128837849188383490537227036665827512492580980673458861401837695615424168775118250749425732603019889439760304630640467960655734820204510094940207880782430046245190231062805276094496762351038712280431277326563030789516851862443547269590323576043372686687038799617148730961060180347847139241104598982179150705345404016121108659432724600168077687358035653404094058083573449485599691419093817094805382670213889304458425329414681258217266377584209687580252648903900382274516509355003095688216348886865953374285813012823825758212776253658461899615364281418494867891552642366769635577957766688453295175650019804787081690007515279856961500225241130457117999521562886099349333874780409815303880931650665229521422586940656244102003068826009171133027005452903588273701633221748653403886554094961482534983454703407822924577139010763664584125081835867308855682925593623088194852359199316046626103654103599866230681665892151052310687654522877047374406821070296501434310793659408843533105448821544040227587348395260413794808690649213331991679964972850845291908803035395088436144985797378236188634074750274810000385449797160992473911200831625814807398707376371567617095882553372247258531974514464363046708955275840240269404937597698175074005855297173545806027457645412104033126014382770205253297095937128952879282706263343921178643102998455869204235388800398726090617738285239297228493655502506012272394434566519138377568559861475175727639986257088447219308229910813402297899685821701415284757132767958844127341327393161311498329229816050595441088828064960967063301694812806792733850676586915060442428852915867524305234742884657642731556141353796434875833642919070920616358545694937271645680981909786904037229356859896687939942117264002753113144054221429047078072786528129065338382088666139514738777497193657082567215774150152686237651625821365562487819484635980184096324582039687020530241802417576534209356786364606640924895082204981903805892701891487718490251306134699889896606844851454391767829858906120962043715597654451559916036525478023490395918227444092487158092546083689426776185734288894003642470947626821452440015473742414740423034954229673676145203439350406280987263771369128725996658625310480267763375990832290344000455869286868171780488557687421366307176618890006472289723309744425084028256446928994607341857928676436842758029166667102884573352370369855866800175033773156751468578633029392754972691196153384818985947147757837978749766491400257811457467328427079636327991566184975086764441323600515762805354660409055124024182958786876371118648860874297548460477822779586054838489166240919707917778713467958618368371933750850164928061481064380308963988702060695143351436528887170823682995414681510513550102017621181087718129653693868116945436076702392430322600537244047173277952371153171476245988465717143357561241069371326719850817831205526144325539090490875460369001733835285454171135237724041687733920594505255766372398345617372602789898946630461852064999494694122672154752095320365689681221676673530294396398626042757972424747532603096424270403189770059654341267133201186059017975321891197832483334705667506867459309126324018908536335109966220908163579954897016318799572250644310362305311896851078793904708516748464861353723944032987385839754625391394721999701737844453777869818220403135985717178037004672321105471500909126627780693120024809289164104311770636918884342694249050621836703367944041925976491319417927124584152317981898859499064217194987621278907716189242114085301790601171590192801347596771153574518104475588949800521527361704945952620725173028732398462575205879731292325541360221976884867655324126563815904346137164105100193391200136730380382839329923802022777449465394131334702717976948211647603817679681884310441794651650513163461956614068940320226460373410339621967353067006979927778755674739757433574026362776636815560138938955109549725421814972319557101520397776133410147137626886336584336632400101766632603335693239336933058848448074486892011437109970781621142827680101148906202820113256156903713521594098288204827634303721223162023821356110640622835566755545551359100598894327158914939545716092774732212358749830679812235546847283277259775702583401926646091365071454881286932856267528655123509600731251276932938901564373684010196199585741991181464654240456879364297755963845252719563324331116071647405488169505152200251112356896825257481837771426505388794917963323398520417229981584101592797625885658199132963336033947345856663175565368701773117055998168343323256610952536287223615254052836837068281584583207345552623978190737899614634002310858284091223071274553249128237052842803008861648529088504299893634082006869375024716792626198882444124561563430690509460846089779724499898182834187599989075394676689481603112100617586672559387383911937058758930394267891358356082952323454693854141348036295143109531621831344233267640429807877079149421759596191961413807485565009618760871458600134523962146250550514485434427805178387711090911059440422674040970975737471022471510284870094002385722331150372928331162606134767584978161293234590818299679171547998250966840228893072625448348417211016629182812474629754236542367042127350319791248704833541132578970790254591538680915468038139775922604436045221616212223964480184439303070435164182267518513382042229947683220205145489946054691818967181996343464247805657738402431361645193943344110661728573686821327989806007031261910197851147150013999494133316434073698465212187380803463661265539639848819797139231124056253420433393298407076487020452021637980374669941033039356458375805473490726980119414156959902918048053127554219962861387268895990506432851296597883446200659705222517160473360595155746830843018345359452739608626932057668062770131610179546219881796935623618505406816290328220579796525828919919374680445111068408112944665119328322048091551928480312701749875627804522827306213346237196848133000747401092287152920275626245712366795908969930052425249382113634271688817966428613092515955547205326396092022243650235763907871062356523579266931261824500391022245054244961952740003445384034432924235550711609146974586443072003224384379585069820861813111390617232392212627886281016431676242358429862883494471706696195759870705892272753559379585004422700915154199330219125335536602437271101108197700327731065057780456383331538742478656633858882084110568942908251865250938717201900045293787726829140891161843639151702135183846855823492906511611083715744809405416459407197282936252645816889342058993219940670488299746844321967956713450191701820569742194144935163293366950059272412714360120954800900382909655433192538192147516156464037416265256230066310789319243035804204915338604010966126649993700046217297388006136299277348849562988555443803523258448388965824399402211404668185698531938329481662574430703142043750448897907824303668113716813806734739894411623699424780974904559215001232623819505354321903050631327121103532998958265005667748692711777985410033300081843428137973973703948813679257611070970615644066760603587178442385073817224754852322026897241862447980539685439085155314073531238149988774269042961290836266676450095151420831426582563947155602521573397195104045282729135671824734112788598086434539798212212813979259009212688356100371392019815476428327213493352688460409391405843843689869503187393197454204473859746767939453789632974260730402129223389069650880798709075230850371340312708881873386878822557662012377750411176927098451403695919388536852448235976575640229390116243978639177717613958807020873360399638997419182666811381806541301232734283396135705025726583372875893249017699690576687299470127179016173168368665786304711383394472314197563066216387895768399767669704989492171580212723296792422324123065524128433136463401668753298249567858823935326727261503428976594596456366310971736913758389632190248116739033279462086113086238887165001243809615834845190824374667544971564561611866107925221820808160777825880280721176605465150987790412000082505039282372209740306611809938398474782469519044725083290244936728147561169110645441208604878214678849762278971815320828629394530068828454857310423914634499811202806018639741178246253174961878167690767033773541439247179058062160501374883063971143769969096907364998887558488422719790225283189183536427852527469394500458693779754920695089586703509958771986761218265479911085783759277977479430959012215606272745338772503697239337958619377899464729741098533575041857837222906929715661117059727039455083488231478600789432451245925154364407773185805895437354434094177988864797292174138220350467883254470718899391215510379931510494348296493558555541835173392156700264194285775612294366946756259969978314192688269621705828681875294739898503690072793356962453538922742530596077878722536514368467089710966745285995847824260963477593187789562214710902509154345411197845938052367639384545876032895984218022972660900188957924991801054632468662641389978737019462185616787815066427916935122838894726888720222923430783800523511686179395472045260275247697860116193295677887895028944818650893975850061453672386904636118282912495345850492135282335644679973531078215878975293170963634039617123920105770562810228673391780073289637564342343960585559856496164869748238713690249708523895957568397256245517792851259867463855602161357765486063602983306086534056145378787570817009043955496550884283313202273119738977266956380418686374725450728515561437224585641594590540692278090136011738803068128943817648188992991606926648942642862188378307696013856135769859832254726287195889420960156295468779044209476011240724898096150275810195413457741419494499824176941012752679178750973480028353982460718196736941792038517387276356870471311037413027507594751551319002588368062588669320789311641516677008510141262585567148760853019803960824658664320094818583565999492221094913051862638725067080787349888016217194207447287723431067178431524126667165738431206203248935057423587647895808068543413110261453957967514499342456124582910434365318638883513474355276093789595798099222592682774889196688322089701382068848618789764299981616601079281437905708600498499848416806486065255978243111114311158812632744506010813496812689678995162692688230040102135328766661911254160850820418280149616603521600836569149521401404916958435821611232716950890871216720166859330745170441043842510431994573824890752744126666956068568370528573839761908349750312078675561503837903885533840767940141648730182453052280799317334176447149862952049873531761057757195500910428605647234265125700291347103112198535598450431857634171361952610487484122983750144018847976845187328588865430597470714742917105262677446566105415620935830183553172275368686295189903831743602449134223675757482034985508972156029158476822624586713779378271592253983205143996698721901749486675362123759973120399565772922108226745995788181409196318288953119920721893898491442166130745641007834371265635232797384875415532051442417204464319666904694753328020398193377245431150751535194962421798896491288173984123685865807566409126806465272838212060193725957086952368224464043328294869033256233889836045757036402546225943164546296044913397076584778187636578463114116137712399625942687561205370518625032886484249592548666797313644403178599004661155804722454658249522399256015829828251362427629033443248838509700052077761993413881763585706709171441962029214796757520408428660083969949219315778434452580456774518259623623519419409740337564293836677629178323256342395340654473864182865137880028099616357478592422268269945381172905449220444475325146644611577312257265236006521940632886293645938738312057887021600673504250019833686236924529943823982529210792689577143428464667313812323823201683124581833732976690372750014532017552642807833989955051999295211661578935017709335245619043414774438481242111245935801962262315854434952511247305013774975724659946973669772206250571564858243441532891765092835060166676332070048299605099689914034133127277537626600749519071577603049776245605434366418971078174331020580013050639694870296329795757277746501996905019219344869404665670917979510490412516369528027176541440085893717024930842964983921867856121457153729281301466666027695556252874595187678813453765506852647223459515605521472255661257375852948801266776591463005366809163456205349337428181331611917608684705361035903378804504111107254793833949857248220488426205381536125457405817618332857608810254369527549001732932541090384370823109187569314057993049879913665219173549592659531891224594830741379687515995159577489295193606541781595716933702840560563970798646081867178387866208975104410733380036098273325941868067490968353489188075424539381029283474468960961524594756259741166051279191629452984096711999144485431362979928831889573578476248989322077628031387318889825355719661741526216765912957694236342895712681908316668341986857258269733539254626571536372895944069975431464782262207202564915871663909973664344083469706838168105684021538130910052273564468032083896481015536425123076134686376983128690262069358000297016737093290498657523189426149207442970701756649610847662391494538834353286764734967172179754838435222137968437028133719142407034741511622451307891014834576115633748948636381688480266543601684713958026785908835773184315900605140391127690015839578029097734574639792462520516576265673476938872155684154660636706250662334158111905880569273162712343767046292232598797750359751132209191979718391680823745320373343962418491838661663371394977188183299095105217530032184585882807660622486694482227884320964379505963525381686880943282631380586096757804223907122398442187413772155152243527909857257437294017001132244954759427360003641390694745616723890021653100986017402212954587847748014200302228584200572251659062254392740927583946381585615335178407938319190382732937641922004126221527874681289204721979050724976265137507024782376193253649998985185595143732329098731109446859860831860839407722510084934070980660923751238608299172361947033568005379511077155651429454524974452948204024933915037481472404365131739146589816530490340729588238212197633415328970853240892599071569842573500178104063755161574709475714589087053727981039603364599703344764841064337457637512911130377449592408024068720361693859702822122105464118844044179120924281697311358342952402939777837809301865151438434233560114617417215037673729580478124365471095426923604502149676644048376415935457641705864907483272409485197265581161900199600537320720122708652749330380657526872762063894642668813150745451394632199134116554320189261116317920937341050653598744118044884949940152281918367581123155718154742864276741969124128715060765881940424141702872166215918926982166952748019374639490898031062140989199943305966082069679738618059789425217989765194669820142723032067192054597733042019117248762006970155959838917950966066276792688347444470731786769055739102204860570519818813749091216212948224528167250751171281664023815971009863197317366278647467701472816615746507289065775278005743239293847021713458441078647852883812074023718885946758239273351275353672114594188425873984545673316286252864557059441967751990560952767916738552250750084284371169250868585942588993661310281866184544910090323114276112918151371958062570821259502469461694220163734414812210994413960279720668845198250647419203650715990071294031748590162238137478926963568753286518848380391001850196381847251022703236445260053671379188758712732540436434183722596296623049734844402882161024251983703363365391496302289956873485297337393267326411312123275389720469036819920609590835865277585732954623024706961916192546837477600574858425362900344229924975557201275324924909926138473960899533201990022650268647638223862945046907425634787433640668619979223678130196221785894077230964417028001092708981979524947608286676841978894474568092628737379523094741708259128028728182151920656442983476983935427911976272023935199484927661854024458095947976671074833649347771556987267091477938335677908675095429571465882142685541412165569816015687939457087460102694393482406239704096224003795069112449114430163631316898079958001078949768722842481866262315762497435607357703797560597065628294466334801257013257812438060257596704487959025122263301963436513304771807532231289853053103727683081959164320330370251262910354925183307567762620717635872911599141706247185707813250406426054630134283016046321875381034044257002910179418334469267020208396652915432383592006322260258136800627719405082757217030699230079452165212773601528950985149756549854402675204744561165613375886332281734899813828822782023761157844926787164034485064579597889885982051827592574269170006529021600169925178026761857642349593032374817711108576304081740627626266569882859355744500035081552953838740045575823350097339942216214478709890842884413284533796252507764160551229178660431191236784693530884424477700697244735520613179462053184728372001880778058619086249944359427513692914669316077236337266626233318715121221815147009039877887764620152249588967957118254396736373169417297662436439136235771101346039266382979737052840147195864319911645491703300764252416709957199995237610639883838811241083388124119373741069927215095507527951259991233504995623767361658755496526210174699636872084483111167352931510271197545027933191785999461195639032640916800132064201379898711267214190022468471343818454617039958329132264325468553888230584062819497743400196268610933747781619824517497385896127847515481143595494052257312755360074361153472428395912480308583867987851343849397994539563272246976341240273729830242046585467246572567955781243614539468692785674275470230062382519440800648649925354063519912011153487980346144392798768537766664314137621549999213448446439201899277212207865404943718590428461679683796947478789547179666355308498943465864110121344036828134791801807422772733576868776137430112030382726376756850869662020845494100349664441444715870709206258847396300100212834366022279580311286500824048459981092348472681666093775255794618697071851404305678513709785288485234409282497078416365538008612513486802780085122897454891141368196202376108744258461223617347907762353533625990948612460621653755655933367747765607151158740568982528712089749400455036936766166351542008906509197950424693551911055782621980115644298312884267452329494046091309752281683522836009770068677042314063878963614891588335184219339136871789557336536393852684832229071983882020730734057663429846924949499267004334926835217477152375043918185647328780258703750415668066255521812600145823892720030795779067422695366257976574928416029745492913323884093769269291187997215982921920186126508259214283990667371446469141621456976952739581020092849182533689356354302874277681645686362096516522218411064331869186284432567790765532869607243258958374827561619988911852836008145279688389669529750720619570984057385542259966194750160455261371938616727275864363943786448489598580224956147685056327082172325131608991449473359283939599456022070824870475335256273467089241895606447157831350001600955710008834927632313810079140320282338889406763383791909509818341784820203198313262426441302316670402307812442316253012674322358266146984420129860530846679433970505908735896491052543227955814308387897008523161345199707829529955033738622397489131346224761848544384221295739145957049568975788413984388436833932251723248586496753406769327018738262671558735502632321196403694149426002450688212712122800860527716615889529196135238822772463409163907600302999750257415663238276409386885137697896108995844600611195807027757300459135448589799459999466003489651004843091114815616657484626282097563080715480665332749400068811639670847973486943980835421100268831621715762056288674306479484592550854008959073678505014508424180123347393703647771482671438799046976552802198601180587480494315459125052636001753484138342879448660469941788568429960427509380481373448148869155294100189444094247819305669685857433087067909454008378899839174723218862650082697302927830686700372617969606188191887745393792921633870175389363384027811004139417027443598386052946687380722326395302382690107081517387069019969580555572446377867679796281727527210807698139678502332896893221334250656333570172310431164239154844333477855229951855637604562215590196217632083016456901260366094788821658061138956136919071899560291737303093310038668416955730518480275904691492788423421390922032975136602165973697113448050531344974812261347781537799540726935606095094835256147630563489061845515562229116946788957084689291941159445484573228615845879818107102304246902705048265920443838467792838922259352207909490377300256165991007694602175800151084112263371499230683264875178797017820615117689548021246887105638383323435232332874810021691408390005210091927186834265657049783364359924769687586414307081031971645572541113984588926994930302739675744395413159072835583468861571840921864628057887537321844480612177702923176942828526051914524682403591113575108284275496775337544354189427655113081496371659298694566843105022989163241230513965624016529314249708078286344683309989752972460252723369390233366067320818183234177476939228092649315723757267828219741411111818823192642157124106215852763499201533561984708636233374907909698473854556279535539232499809396752308343971431406235830451349199216752652693552846695104781351104147518363006229776685048276256349410073544024242210596090267755268940012549147253019730637326030215500168754011296597273196287141953262585784579331173105457346873375977027014853657787865860556758016993883683629882342964493636249085157858351236164559671441427066794407674334819180354262204925491787217331834410967667697317797245783528727407773830540107000558498753883913529570572395626952512647715816295635839466909591606072375690353160538844453797022392341325313283460995202270925436937273446517258611727667473857043172442234796551182677690529944908223580598947055058290283654271509589678952107340699131592400769261699550236381347152069228322436930791376576629086908464461482342929631016240124331261752406353126091655679555920629349128100747375485067968152656642473449889634306073445243234079128811505658136577291170636639308307622982723394424231309491769658299614206164822786667024641821748060216045359595667056155116483378136939901375259964837487751504433627025547398554279194540819359328968295767054574587082374770552234802084381592255898480620406746493557605340868283767245835518046745246870325401435272124729558710936199267935954873771394131733198483672407254266427522029958415706536700660537438730648358230253091337930512544643475161244318775336214784315722395659172578018385866405369410093903030875208414434375005898836529642069950439428483666234200434947525239170728078067171240353668915689632059976803959904417086236093499685387261087142155394698007487938405410092161095788095031603013873050044359447561237615678706860748004209884251742037574731574639583044788833634600329523332720948580621749585860434775155004090767664340238336693437559227205270177143303812465897639183976532578135231904735253217566994820941488998672062143917822025601155515750767101233303874314809257936613978798245113803510270271716411061767871677970937643935695090422503780143979025830266681729064447092299468537971654272583555035731988751306314907991112319677417947771089635055166280122307643457825291872836821171417714436374566575157486271451747262531248629996115216795409596022065973679764979888395464774739670223256396980620316948823360663716058684279425775436145806223481919128320500021623231139906689209478260807538332562592366549535488266812931257738315020757820564976005294100969918314353094918965947656142887094636884340533091691203106607198281024770914680799773299949329841749372571211707946431257545205582603819191089866154378534664660028235186378307386670732301052961614525497554478207699945715601322191593948396772357461190545019489472537865840221634778776541415553442669519916698465064341106546373216996418794964374324343562637133493134541323236352274520268648673567542143777385506225704767172893373946625138253679160841648859598575781452871962137147807387622239838502356759725636611169046501068546355231194314529332537427401460479676248389073373701246905000870734671971344478389697443171592493573808570505897200341554839152914324409186683925674382534695543170917811259449736697964260586271784093055286736722540117692602158254829702767217877575467009536447640925608726491438042791189364498574955156174607274301917155182874060900751912620787644530045821700971827366205587435067527139302468273204352957923446410859006768961975747622442988900633707291837723516660139703380856201805544278923281700231746793692419657213503892509265884589018609141128255430398768450544748535397812273415759592303357397593166173236306052666591585926724727309565012693909511734152302900591775119784141100792646333371092928212624762308876896722271034754854551851529903880622784286368809257664594353359944337762518921342821455406784855292526084154372334015220271494723407920176939538212973706396943637502738816109653085626973043223194913814042982614733567623150852996388073258252938481787281957150696601157961118367300227276126980784744103704178788827788241300682024544990936398783110723377014996556978333391842252363220952846725325799248949758642649334065899843058202054580364048653495518547090872088426552758676332490358333649798278767792409079083654843656365971589581268340252939955523251066921791633971900798010193755931547964208333547046801192842940805536045073751150583758838041365758865318340618362190751693675870894462424957525536443470347643760626435613217107464671256922014660597411653138382712481757710495871421016916705133161705532956667531036791310775377765847484641916809871807446780654177295432119349161679237658362939358834322083495292684920462743775162609934782039971495758324415945021708989744438140056770175740836673859044174379653951369240134568197868129214353041642600860914553657572215182627681373611917707809568921628371901505294157547066543822939153218837676172146305860601657081805244432134733083738157211228146292810781840222305411444292671826233698652822169147881023208730228523480457986957139398404026821327169580423831141935781763696977790068969283493897421654493341528387331132551329079242993693370607661294598554802741038971098635664041654022613799555951178386070458360244156983927564714107403079851541707835677344723413236259240957378891773787994828861665533868075301364349617539044825529557056522653519589701542849827236899520197890198480938392541722626050885251447319342256105561056232843513203540110066893658767051178067613499367395452904403062944443450986725705211665414259160427172322236428641277878427695150170052110388068045732968742827543243458584150457260185620806190860377435796074368793254041124820752692967522165576688431321624375996399826094853032123728066866443459739914792233051906399979626881348517141811506379719800539268547887032463674102042019532800379189639813704861333091761083979248209227721887639150249420320948830108967048548035742937139551875998328840173872141615858861674166509623067225848165191828543694218023467778962061642403280847106158266834817518285310768831331539830513874464020889417571182588408788973328591004766582281562832163193443791234960867616995500593067217437766701462887297611557960268068710287295746771347049784641026829920960714297837981910039443395615159528682278067338773090258501600887946675578874983545351900805574127430024867422619157232969832204920311530906033533577044178954620497036973032655140007257432683423073118124311935824955903286824936031761151409294655836116093130746769824412560314719896026496349586557855952169532821356296118793271886122859726095002033392824940116336097332030991868287791136469378111854048832641035836966240191245925550895330704420782045933860983626657233395946681539804955833792356544124112520268994153390257794988110931741851243137545470213733623832468558587889595377880835772645097701669731301828158748122768475163791286011655942362106439067381189277733930892358493988606286940018921985885577895071918365206104888071699631122549771111501775587497764904769647081776550970671665171208549694531806450216247789261833426025911262506125849096375365978899319592268624240748315428063355650328936011141058327243439574287025686133458303323928937365218399520537341637835445429263669977321361845136927393432991654334809107381506064761005929075033661879839064812122618643912699337896101777881004719385387971028177402892715451026643427501457205999570160781552727279677698782235203608287667246301512851940678770924872474181351038887837324766810006751928331271036883231067070679416678380551317937931608401637621738581603020232758890415403244504329195621436377527322011324558237123076945746737281718597064235015773905083501405702546304387624473270259547372365350507089864452172941308966141817212835448711403133751260307570808114260179450128367357295005708942941772790298753429732238553871991428172935455396501711416294310086686897931730998732338186241785681759318215456909184057223684169701421444733319334836486693639036115065417082462447347081896753835733367190595249446356236621565625837405650667164295024157244301143708003208414821260187043656159566900349808582152789072166260107219593801162813527069036254549399533845287563100911347498042816391840876160801461651094664723357400023758555437351255601242571279160030326504716517831613164410856374774912246903805123827805678862703398555231264716149399329104311539780717855838826659225600435840696801386284090489344133618320041414763223458605516396404332917305487185020798288492626854045815786683452116017371350190669410425632615800634424202294442175334372206352625335840083843660009448398782411242546112643949231219465821011389601590657530681224397182428193827557186978027181163035216481541802898762403589537645443007384780587123428824191987480870855445065664621369051135824393701836932492133798370488691350009649950963005428466649848689440313075370585594940194644831300890231370672183333405474325683346048997450107675976826499798493639455247566439188160675241420457175235888850374131507587196228636047233173066942256398282272611743046341494395280778602022867854064035381722967786460403206660298058162429210614031724189004382237984222399921822859250974684475452740020139814046972473728253007559662790121478349071566915993060688387789145313388531512102761358522713629799294009153697055398505693818527401438890420750857293723822666911840482025882222016305886291784071774247233931337876793045420767779112082695286216121299224044876638089037948454649948935654422628098980696573098683968924106998783223051625714707660202897909620928958949980935752752686065924246871065985965895367993650418819848229157629061835775127017972731142583981938503584378425336427481451858402665625447321007424096844570006156321883989092573220379086208889220270355301492971159474314499866580375438804668905872516562928465895620250384225440055727776597577122507967690745416365441690891757779839106870476938696524759676797566598808366305136437167739160657365883675721448669367568455819267741596496047898929597153799738595642804304873477562825480358904711969826858864723564616522690264522802323831545576066402906010319882545944149371868320185560042266333724599250503775937683021180832934085782718570845174503290165194459782953101301348323874955825221230265521936111497178283842743898459230215418236369743191636748677785704241112761725475291135145052786255656542441513556058436204551212351754131714164495514594519299135079067823736672610873083054079211527879521263791743508120297353413316248023393217077779446701048729755392369583586640258865863169268208019560415433570841802683295877481471550241515322020940651131013772329110736085936206483341243170425224567382307544147992989065979127924921837336861034895854351052603856243011065476540171118800152249782030481152426412533200924172553662936727416203224491621864623007986584702963262613323195278193030412585565965864878238171376240674106052422684922501459690029657634569636915283792702248803136135905311002610803111348942551815937563223122581044151925693133946517920648384970084415582780801558381027730436205343782148816410617400749237398884221718635560551669220731066794674920565324331361689367802130474430315157306259439913484401160979615308344052306760723260171573153195561234918153052943499378404643957716946893208319920956244889205355415170327828501811031180994496512068387395137683600870507679334954545537702461609228355074619736388390644318809607203798409090929251074921693961912408529714240967169723136412626546418226277783052840384280387067950990669673769354777341989653824382501545320397226639351140623392104141780302287634779582637762851484564951372726584815381141041623424853181545450144735415958544923390419971713424918382034394828950548883602744502794776530544326259674953800286972817136317381213994793173063239460580331228435509129112152578401282975297892215479492567278917230520329653870215857947098465487617557559414958043214023745685937980325549518883592559585434198112719944576044585175836351592179255434959116243866027553021857141414450579576640334320815095308005594654388470960142524357805291189454673058350474997491829422761919415668128330133551694843733910302826738293974214281321462798567368122321373185731629422229907653882054448029804292151144700980541364509815244827945227517696771088024451688879000833634997235217952570434395985918891303097097620275781782589578737949862136196996648598968212687767579417206067008865961864131299961047415173222113567980517488092415700179739998938492249221096051223835327696644824366462524471511642854477740514056945834538686045187749520301929836989135153007754053354374580273986517295377880802375958815967642522283897138348726101168263240494250963004549738489186888032726291370909768473683035588745547926206670882307305047447337868703072147371377559155901181864012089851252047680688969696436739191689325882398179008791849899244174835413778938452962192789117814733484993441504069889562347324786428796503242144883768281452904359136657937489219903124427146656261857042983602206795409155212513360767408354037698509268281270200697058237501475016069251766058427383877717937953341149241810963972272809388138970274538119489550280838588180052405321523547721881479317124604827549788906788588618899710031562568728776192725896084329500518814795614864514103245290922641758385373053003370396696006267796864889177199078089240053666398417367483662974999622368081493210167448652368975949166630785213842182253773181804343011783710349903408405543841806083701212006846005477376811138031611678069094293298242189470098555704180349819982483377788857538488216906982528599310469018823427731943286385123524174171224752045790545417723687947696550802739104052510224487391963170489424400907048081915655567609164556838755395141828815596004815805842632641526381004570012294460570680863944657614824764638902737755579510744799717485779321266008401784019174959343404594940436866786815836025509121111291183281304315062808006255119140826730523495557765413186888314061927159976436974826031552381839857937859081640908355621480224354896296710394511880718227293940839734477359698833148411065386862100908925690396536943669332390678340011397026061174788436966768439382702980275642995975148061353945200077516338190041350494718664768967430571418729704254548659226223826597757863667928729385365082238857499158990198609432230657061257414665842324629258892066815397777141607931405356677826369553999718061492836150261315800530793951025575630458223995407061552698525599309926375528963417419125400094385328247996006660713409564375895094343045428127804884528352465171332041180224537026238648086456170950663073882594732458532548365982855106111114949741861923846255080364586084670515236070253381781502494846323054389561044299410749106693512312840869647222036394349799137104586941898866092220752708193846022620057798161769383197086214522474535823043565420089219421566263843431943017837666566765215553672675447198434040351112889731810247321072539237488264076972156200260730941711704274590789785963741192473256100833292190089043192841247610424990167503933762986361118346811599278265316220644019548825944234060336748360396172443297501164680058397296769994170927452254909387545632917230819842149236922868608489387756990390157924812346920151523773576671327021563740289780587441549185442132776837114324321183016285518677925403590321444787222849436554197316365739897720907293884546188545251328050133203571705708054277596038419020444030068101147115929487885219291558215995549642934274770965741374518974443609507143494761051108234873369555641956011592056656892461306167978495914404029484265598767470184055818120643840130022140474637490689677895391055776372290927489244492051896523495782661949889829225135189956228459269869527431238906340020461434954387522207271643775123606309057639628037122140285369348550341970159156964610197188734145890457705892732806618642492176575892714040753822224969115480247227549986967497119843903354294229283296696029869118792580121531045072504755147596091379946209337965885258859900315086607335751518754759891495437968420255067216211439034286366732061729183560038825451474090847493315316187059148430375966691613526997743253763788341634105658162456120078804904149595176818397562821207211086713928317428792056877545056753416324344966676899470933866738093868484547154158620583069074708860968422741377779046572706104843210877762051206937084405028421381048408928245575439423193503436009714068608901226321467181995216911212118474597721256418761304947365076800904154811129281142030870486917781231790508581863828057847618260498637302708512133550209539857251592228499182274672232471759586013624147557818725442148726557965408436607801287289456609506629875830580089062617114986906652633930774918534530474329442465077289267109593403399282124144630005651955148674345692071917355552806002659760297480031346652003453352955902356491039438843450606376564128616480063577185368048110245318925319150834249870908874379978276733169467132203542171145748874294923549112394181964908139491396420177307532102552574163352422675893402226262049553328725254702974063509947558657420011375141205947397790187969916263965789445414949811036489620687377101572934502226115182008364769049441576611877712598506410720984283328519614049752840632111764822257122563042289829971534488561976919966186757895045658361986210526708848076707488914997958196488316092786100891907689698840136054647688415969441909973446662079837124785273399435302712673197203560591087067405569921447935623119158338934539693547684394504872397527548494226274471481940529465372553162575790360530288845087315948840403056420420847686326555907529264433915647249339483222185658555924016925151836843393551568731347265746362533275485215745882474778939990369680240428596390862211179834919078380058439591731856624877029978002412840743269566272898055624767990116739138839727334133563555921062736610511585893585856722844658991701626489945318277739169729795100631398155988329439746345939789014771985665756351181309259092920601169793680751299410693071125103866988010081871205834787625651004588875431789202335884128757416005382268123555587764588544281665647548436545958245153834190899536168384757271544542228544222188305197315672123196850478444352452828527739593093712806316187061909495502348083534850848223751754337534669851690450458669568850907357115766419999567470236466115456062016296896020454832899259922174578189219904077851507709003452213269184299414757813027678641478717651230183657461530002873332751700416003627149664733434039742706080272116086755510784918738961145028276835105656196781084398180551288790013233419758659223913215480281809169749045010574130006069717546677166299284941507830411506058913679971202684182477353422196808313851483571722450923803219724887207785516542374956622150785169569288656744652221138242416323888259239393276934074967200645451180438060423675628801552257359549438347403052078521615334114595655041822476850778488180204831937830312327493379521356947820284284576020784278298765345775747862232356396129978801865011909427008014653342711387924425626922724341177781856891664866288988108021449991331225136298199817579344956086699452143865892074202170855557987091322748069630375667629691457990397453686208308394637823520847582575101931104882075439052747610912585150431080337248294362062779135264378642635477750451438129141333025618739013232987465239187019658301096922842090886367753059498758697134431242504420634590611904844084861520322517813629728913988771715905337918773383278002816458979211752572424834237945415052698128184507886688033258952332463287782837064499642417764497512851270969834849308829225264693618504177540066879689691748494954292591006584562965081948840582027210984800824869913520228886567973523180716347110387256954453933354587157933065930821267232741301757219787057018263787006986797072383141683099595253252659190048116105266135902890988644485769635473193100707830381732767835315852234248097363837641151076467473529168617364151989549409853155262436110128452777631653688286921507277821161376473057675909932176516724220579987104919908752848436731671340484322444132155596319236579762380475588481490804859564930147458225551301188099078557295031158964599671065829022021993920090130048866139979618842525598914170265021831924245636890958884839534642623110196759265708159680846472314868910331229166419658575558471592232528735123042835756424949951341907345998721544720491853296848955335375475737762156457287702995419559295880763834068159172164858290396523561358494873068934522123614134944835367407681923941111771419251061102448049751389440430774684656399015006693322115088644849390415905265326040643007959508134834130540978846426174856844406893593925238875341578100788312249626625048703514860967267651028856216336077084307297310958076673666579532719444987326786299832384991389197292046855855682442752376027300647931307032222411174764103190359897758807889668606602092678255471443822074008905879759365239177959538298826542300689439929379340343851608339874210859566904078799468512390476594967166559224130936034041938955336936619190092107598920062245385517617021935326703788799430396262737930272335883309006236961839106162300359173410323046590078299165952960560533000925019422422321083201059876040535350015071504263753851157304833410897070643601899615666833314364785469062982509489872875861869777816893729143682673851672880656281272489471539376926171835522882563894143405890333207562079002006490415357801550880627173366848794456260912000365802377458281478365034074127194194181856365787445347638393963348117146376641244398774736964535682493377586434794319356423965194306740755098237381634407334865584846563037422984279352363473647146552752654067365294982191272995376797715289937652522596290031430460569130431794898496551191757326537689879744681806949193221091736405959946770178275414310617150850169778951496974308323322351723163074891223487247699477193037675980941602949680891365489319878652967699389828825050979125880240286041010633337137510089024962242699257147035181762680709077596422496039498219006715162171940208240371565610011298884229164924303628354161405464941093152489766577696217605540719895987712748640724524951446579963675362138290618840885273017015411058756609194908971077832846520009339470615180998657297750870738307632232981027363904741689368258142601103710355932180211707854675697929672096031175041550401064733490146557898869183346551734252681704300212061991743120658379111003263911956641838455810593195479617815885663277909402880957666631080512639251130147116129835260443865451577921162292034493888186622380321945474877213127333222433715950326909324488277178411679151727366795471658234740856649559772631321391937849172893021958238940580181179952254365481852881183363865751877736540189834128750532787879287155025911227330036503051081764194508281180411344653074729830421455753706975005754242223969050218704627345365662414256866291374081491460726560897478077212613330697040402191706245020225282130987488626596147289293046569802004115575327748599659961900515650594513717125151188647014186470518128766937989387152466737604038542302423441610516435408999384180196383726839067891232854822625942905323414850929391273815720409366917136014655035183981373956584566487074229203084231234350982353760336963107973714952743648125215179290982770830384170134803178851549970448567507716904554887595855886750414569112392196181343011547892987840240325652746493241620816793226635056212367627861814895160745129208456971031394619842139347259087698241097143067274265140992572441850638251620890633770314871180932149225882907764541922147135948240247785454246229808549008133326899805978821033084174579842744424193798166422005305903005838587603713439926758299409270564552659912027656949347898618689320201358804394034065744680503691318715799485896741500502783099296356514034130670208217962043167294228142059389689003125233184357403187281400636328870397365497251796490293922747934430953030240500880133180864236594839393120176890973024471902084104788575223386054570756579225351210972812997981738684255904538831119348718376099381657716812700734702252302260835383382955081512728946766436288536840423185417736561193638448927476488602560686073049945051820444742948768905045315573278424985013734204229195214344820499834936986875826988994077767176781068208910653639413866596771635540052240049352338095504616080873066149198323614393530558364348318666057873197599365732250264225585433176984833592250960490382120096405961568322662338607538257851349916200529886022152386846642010746748772651393447460636266550878413727854825352005499962693042396054230384012023903604317805161779742177572803771792503890337900974971938951847551427471089326128192272845079633594853739437073075027620370813990104361328848390013538383386981686358298342522707422799535134753938790547805364075623963999392771406759549978206809950381584555329174187840426419975829075650682766577668970021618581940861674539999551516495160501977211330271345499775156998861375538774570028784077200446089611590793822292848851023898991864267320824044128018313330779435983793898486196126701410367246289156201715893377886990230410252781190765585669782812693057439457495858565897704282481413397877690430746744529293601728122635521196326476190186949962021039353531229063823287343261836461228839766861771631035414212742420767229641981599480644664837594582857325478581149410045867057422942459129118483775957509609105351283347590573551288589926458695210570503641965504013919593312657222819546685191936134642200077475155179634094347273887231835300919412830944973846126849252554937037131695466336879959525756047388329174020558722766645169991359304219836754935208282119052918738771770447276207564884918285211386047688815797877310775872224768519469284270305367431324337808221788506295071634123556269536422368170169459791797874528890006306150946245202346222294308340377442215793372167900052168773036443150717385050267808224733964143002192825898934869626153575298004269416492702970637412433965673170169869196714067424026176481688253671513581923387851516032487309699815905105080448165339925770536149810327560600668143425508011577736777271454752788282319476249666371010267810846089928219907710227486668032211621200553712584440073290380748905395944021839249508178832576423136735673155362599054113454412587344043797668053006582919870587963597917536648881447946455909993838897989199449643718694483484217023997789600950365356406209223245968350772618255067556776555537414922904507216954688648984918290343885363499052540872060818844543632407182501859720088980426294438753602224966745662498175840974794297902814622755645009505954523100529255656063337364815795985497443434613013196351311604715272215365504761138785654861770206517799236093251912528571105326377344757845300215725280316059243327721476493481530721199074479014456768118559299257765141190291216972531673368284941021629690259668623734154969195301203369810701709170973662942112658835643848945507711732987610085723025448909241939433118441663822569198859179511618344353297777790301476534539138161706616536774060178070807323691351328221716504081349355799936501870706578953483389093192682963740126810092932188118653643839754187353044554633140149301372267015570350900173349688304317353964698039627884485269351068160071482291610546523896091476445946911576537348347285003904200885428927022623106478785233093308271360798301574675432915763557278715305843538756168697302879935838147895895203645993121726104565521045495706004678807457013925259525330079460464524285501409704626447769998826306474840739428377386289132708739401373406930491293477589179790031877810368028108064222713964383897397742436726130271591881280241425655000809916208841517326682209776792251728621048862682862170690645722568714793902786399460044526648361299987580497133371914939866106306321893825753543002325517003454423760127704365602538442468033126532680951027516639877970109292257370508670747219175639336926171305034251014750255358188347870879404332770436600585098386477968341152945118221076223838624949176698665973241381128061152241720200706284544386723940862201427034460676299693515031088836069247191575989021195943838455465450006761317406823397599163506124908572660788740909609558956026752512094000042871536850344513759015012100220634259305845324878293465675163563802129262054715608935115841926892412961063943803232774713164364810774288613158156670843192303245972508485132635168237697643170233418277325739874980192176235872858002186300926383059851991886706680190638825819730706292276186334864690318139749941104273644836346964245769956789627826996338194022715124427690881306409095819694367640970923311961724600901643134253315189157939870657483781516969896679265313181410796314621270727232874364700156212804857730212506122145371654475730667483468676465822791995174424297621689537851979260812830578155361238469766525291890894935055059613202158555357732436388457692422635816610318861417408065066745698583569576445722407486185028229468431736141801719908391609994357766317430712922375255935791741761880658765232872354553306190851948797888848944512833937899691073038165792395643036993399915636048244547024829308511657898760220276227754497689519165438513330199985174396558036145283180992947451811110570368704351851479100330253452585580695801890205389234027990172473737479417938886391175615648196102384457890772679851774148206195249242584397925821710244725841354606726432431184898394627777415874672154144282836610572090728190382640099982028020303837781005817858496984892966724920092921311359939168436081327948734263046684133231037235939711755509638286960754886429000905919848767703822261230186792702518122896548283565419873189527346527574103779651882567089821768018502417781819393254676271540167235412611870381934060577164317684216092577768419790635568620318599154500248781747247617231182393118062077246197439507183236242171533943505914119791990555158914404364764170063895534770098221174935843672314895819773552905790223965993829658484472015428483846613781597711318395242448567288289146792410311694800779929625798842240272277676159761164794544947466312597254094221392495089015847096110102239800759296703639144274098069305036412960367309943847992788849550361697726507714181929150558251908644281712878426878337448058475220049125473168853947286483450146365739180664785419035879595874577409530899426135849884853642730299677504194618647632289308787199535543810550379748850174389146839419274544828151516129544716991281157897057307443487830618179907699087846787510886838607509239726184734246167546738658328462290818364007565839038179027683307813418820411386391251872868821044412579562010101224543258701517785840768796339181721909328651889108012368980156595269999803398001482527425362330357639573621163276755126287209503734924195232104780784209161748713269449426113263957991278631460455722319143834985811393450479011948471173496075063560821503820083451605737623914092973373808705932890652850706454141670674264158703437482823354962309918300557878813794079802921365770415807889407317318985123474323981316493811471201174329782763817633718507734764854427474620170003135288300151658390388259792488893539619090942329943383868787891737500280130062016773821958228694495920727098377197399350945714157962876116291600841714870160761224506878862444320414532971738356730711033510796825627676856504573658649443339123478700607230160413006093506310670779013316925235190306898427859500002109148319382954323852060522341322883504041476942851683472856742375201346154187556023015000680054988876354798446183818604710519169270097428423117967969474082111250060622989937642211867170960604494548818187298693726210965775728558129600116846774372788482863228296945305595046054449139176314700066321292317500285138117571514978546490225086137518813998701015149822274594152924833837191949046414876861960204988219470523548770138099917340271820427226457833183979344507407062659613848802816034961146030915629946919030053493592206533114776872586381136459030853169728438723654902951158148029594163963185863727221723931946239724169180351134231997909938748536120488235645202659325807888257763591945984501689811471951755684163662179361062012980094724692401779692792127312534258515779536878753040033962440360472258963764314416161484727174578356884670652107300843895935843119818855569717872529248705257082566379998719381827566941987557255788135463472395163015188892478399213597968737589917599500811216549963136290673044586303525370161934247892210686732257521078690361262774448642954360014798075328124743619984621156073550491034696993892430758458539900077149659680786194157018848322857910135922740349525910019202346019893324082686255661701089559627270304228559983642360545494694498093437614391694851604551970375625748257145213792373994422144367929293715807432038485261078961545414052468873740974828957671820030548970672399993036140448046797176540246241972370692765466308632620240807279614646306889083980899635584785019164582974737888466519327577954239510758267723701882086453419046054613811133652151684468254484122874793399321192187779743212804996211070454445459541978525598535521835330496299019329562730801474230883221793369269268534451146414330698429009886963260010442556323176629508128370475600605001710651432959933628705097757187453329500115182357372139565477851714169780426560967900186434813181798510855936688877374394629797375068967658065881822621950478529857221251336834298573657803066278666373227924144767691986025864743776329985897845278576861138900605688657134059015069427754010390137237960570798424594709338843513807917091999346807437266117553109267626697286795242698232680485059765444042273486846303799223934712657270341518627881091207990337993797234971904637499826969255321624679485644343182474089483965892263563144752290344101222294015611672931723336433621762992436440299259683522908426969233965593634129775104575447575836766186173572502655032317327748379750167382108729072018485544689755918228030831532562437025409899452670893210757726949188067123892891875148423569917259925588764521708788318207789649159536552235505607678575234767738266094046633120552021817502408999674292000182160409346993074604369383567850758302599851466518308299408667058320864882832401764312318386304786425825376346335021467558122649012879862829727986922437584579038618222713386917939703400878032596790786801016314886637970491304029259493353351030647998618616102845572406025451087632752235374873758915458319775652652896524313991947443179471047818165970020727003936851784895866178035944710875952265929362818743973370950500130598739376948081076127195911520855384797816538884898068006286893892302741184005942630563736543799053994204414974103439656345007526173002607076417692615149428698456804283661745319783480101413889663648069801992312097125447520246016179197177185536682443341271991390055124139634394341973257912998312825446740936278885400577104822394775473046216323011094307939554261857000847832817125660220407671007067143249553182537197195808600122866253463421542174327969767578465039174479467949597706571717868926183546029897718188567298690964335669296038614519840445072035810983845195872899559509474279147830776106210624831087336247330055978545685248763255513846053893228535154296349172599674882068328694788566162207415038430245418741444863999901006549014046594984040245240303515311738435048599394549021760046639054709741147443666916287729696811700801975917606817157766051463219027171125397709096903946153315506587154062616753494044989312979958837484156290904409525064295490042245956761641632184558098676261392936726495922390693124899442351044553862801872461789581041348110628574205260340493413472182272725289514128432541640153466932533034723380086838171620240569044549377261537112691293600093508700673213079599255384252465898828668475028656998449316810713411937318999383822946301067109814429118564524077739484821635334501364079562170644745934890154353165013029703004241025280428036282956316951709342884760117683270307240687109962444241522724932826333520006972632890176812577870614198697348342795579274796784964109821162822565708710183000367967115265876704726840515175506894091037762728326031787984993412772054197413144873351308113988037832591859893760116653051151477353708686128990672739173244717730404212403422873091198232427426292667440752605278510861812981175456279174276540169594762224578083350156306375260599192506014281484327248681580350344408129804645826549407719009064783404660692045152070391369221602538217804114046681530390297022454949171504352870421502954932767277006639650863055855166421075648665603763926327246335794875235513770075084167327545944187860299471368178452163231419277723341590350604417333826165112988979956951420469451830858795190126711788799816093711183335061589152138015511193947890680866832100311915783256424781537793197437398345930727521416944283022086860601824890133774092444758192155056426857338099521277747882351010886479140080298528185901076686297061818309942363447856953884999614806239079968397643279805442681092987603147023134198005580688808999065934054855876523555513714161261806099755523539192971940865138764304779773010572105714448573128249561640962424656818264446534814167627952726539865840307620575195813754751035643374169643026242683781071783523537405435224363851094351883637576974616179316307326425316261450093921227899654151799835388433731816033868013006708734009852063960385711002324358593116478900684389227482709267105167331564356236173140835206840220010631689249880651313467720384927053402471822028082753752131894938702921799941855604760701474233291715347920806407039397678500636035016222453248971303051388958593839273517669937579611595103772589843526314048375108391816499440931397744156998608254032591523291432776438921576813513477241864186001036475474456143243401708424058434690412597376909695692538196381225080576433144959784645469467992656714986505042024756611342962053720365011706980946898359965530938616333354771201288162166187153686735919649619828118846133642280951741620431522393677929617191479999820255500787921103007957668986760616189732753975188258056946159941684661291501613632032068843247314662466479115564018220253687913822180109899965130440724314871666794693025332111906304900877381607769967278296760470915215340324689309548019210280454565331794360344011922315268934080939410416111754952365476909089392989873518890194631077372670152772875950935656840521727963646520174292179477475912989677548802338217658785403357127530157807240781465773736717056284321735560355026027140843231636496620242211837673004199034343667681991760837184982983028719485994883682010269766868757308314492971039287473699532264676712265422269528738199859331588471790890818556825456201868126196789468349463399445396913855236862400609330676729266996260383307096838330020564690635986022361115960092267532888966176963148247938459183650950983082567455275322785790273925915434416174656197085236153741465903890381020308889023201114353264995106963741529270495089578405218302731176171247547439489277113312411113661747383542800812014317272071739751050623660330266199562544508921108234695197098921590220134410639011347236783198236757388535773803765572805119026102840556223443656688705116435520502008325198680304955079651706032525527345173767751768599326830193389230328612779898249409795200906934463773693436263540474545761879892208812480996833768224415947680351947544911066642975562910618004989600570322208712314051086289387825425040429432523262261592334008897126710647558412775799177353853276782871240522755978878741469493895861275640474871669505644210469260995540473657047868248954987162458110167401339300167301606682425000362728259511951778787365941075640727572147118744263012544982070198790511902203540878271823770099167494419226058880331865888102607912866122575630917410208038544159646411298804696627781284558564439801856157301305987254308064665559792714930573022331784565711857921931644200395787441263893864134456139517490963087238830623854233001010713240445276174145243849260198189370505844020069640441642805614034475370243735290961092775410918668881792972489423635399457527484859876716989777250107937232391648744393873375699479394357743782347307552824744675347960627205247172344900098695411830903418094428647065268152392773938970085337544249408725606556322680779766521952353054284011674107701037861315012011029140948707088240512764391625525422685666981482015774591836550723789320559215394734019353918985140169855662451880759096154238546974048506702056646165733407287277780798392027670464072744617966197898869723410983418090910311855087362711245139208490926923941203875046729440780052361653330988576920217242397827371630026866736128092992705140556501150940058700977879270466539563969671409178324620243975793725959316375471208128873815011855528488998705653481657263782348123596779901938088535250885019002690720402669957424017664228987800603563348582127086243019762602419115782408116504319852691069458370054681384420712262425622848159386777007625876830854771269478093660361593451261009118439519777970602152836186334076549656848139531022351045311294961593168521470047369193858188338010438983828714596063631835203900884723403407835552384708154601808723896807804167734174786298493986730030075877846835612420750139031781955051468740324879915920607819536876593531764889838027558040144154560627055837239726819120396696894724813467137126460308504972765599331814209482866325904834685877319690765615445009146254494729211751155465656899741353551313399875590540341541691248563702920477718268719114238046370504340237344026244211407062378930571030782021089647212830032499182575530398070082547098161827094359331635374040790912240112607594320898741275961647882683030855336639649408112990016754790493820647916860756972349910892890515583255027906294291150423909513117464415028224834549555397278975512147784704470277352726396276887114055393062923806849067627206352987603812625295724494371759133833198126930392039427188442555617091531996498167148084525588738333801334714442665106423359216613465602784441049362219968699147547890256169997869562653940583712683880631137761789365030758176100486187103350300190364901160223485733835654219320614570382573486914966367236072986297831745559832250271230650840005695457859471815864234571297344542781991396005251848073990036208617396082249361388990918648846021775469626216539643564625967144781858999811972522913487419728455118591121658461070505129046726271521628528573148418749626934453435079276806954257092055725836010923539945799800605115245646155173416495664635019674833635088469948212850618886245450990189070110451182879586423590748596291734696297775584775377822430122329973189627322332175867574512434259834043973210382251174534928304071282570431766345307408064800211395538429980298220737358638114392745138532848193943870427364907247273123667682841670191907617232277596469030316544156323266574003979189604806740764347268660399619239227352235911313365035101509493173057848202159434050802311216190530845530299276668946521070705624904841662644505682141416604549054976064670310393639123725223152740099727535513482483859707787622531184692677332336782412379036450733762136810869072348479527947325512789924957323392757809441552913718363686197187015575425230600444107516311780087491228368756357609552605203680703786062941176164765376233154330103296718731047686328688951905615081612140992247374820413656492541965876141770698410585550511851859480883571885380475829253305180967639948287310158155223153449281514859215206095843051146798945045043494477156845314717496013672093609962648943407551213263930081315419668530206432036538682321392354216053493897700338133238254414664706538937605292557182869479928042106069376834738330609937460900303613619705394195293945796401830391796267096562471059072390082860099502384907540408403102298059365094943739527856841086383661797711562504547206240938644352516881696237420095853122222446475151781339563878066356091431522225127975219167118146735470711799796749445310569213564029296233633915690201791015981401060146257349223152571203791029705006278568646465753817454062284148789132949380198778725481773805362753709063772748283213392576223378527991822030351941350201179991781814568542935004797114666185287465987863963645584428170362772300109671727147800139443529236739830731050480730167800097420792587070816082420844876247706846706730783685080162128112930056647356988129532166922791710504610310370576667008471881398708551671025384528450072437136756629275935224544630211992508202522529888985521663203110602252919912684959891475485131721460444395397459558583628922348333821433451760163691877261298120033586530368757967950887307101579090663969879530012775006613588105229630035881740985077868343987686655811530100625664953954477049041849209052220178573926986310203715547938381861344178550150721877986363551234195712349450986311356468263208040569178565124498059749368098400331036929861821373569760561437781403867903612826079422121277149358224371406964134733356705140701905753316348700093466351769602116869354143328787010371928243691673972596537437976475175225677409680208754323031837697884999863881425507333780562555932751044801273126739840553151113458112811950850625992587027323466059305755768103415651558068601589005994680681954977506604866840770479501983416628235746134579912609532354622326608281580667251315660202930582270136114374164925215324509447056648495752498037034227773828491381595796635773439606574884537561930620557195704683816709380264393455808120306860857293887141389106862069209266373538874598827196810948306389077933699455981345245638919421983215889699574384166489193836976629527512998617000567024311041588935216182841045883180062567786468677584777703438789147714676139893242183923893513873071975707962753524734413734696017903724097185545690174852041222824430218647376303423449269579788073982107264451037032784686601397950894341509274339714957450230006996571578528078267490263161982791257751861213988573320390428026447110871844255523159177635129277891837583271846117049515746788159322333009437254551336966466355742028231949611350913759981621412591099995329217938476511945320721775440078748185602924782913550179876966960350404872869904454596318755640026064739177725360335963861865291758012094169434907566188220603499943774771811970837739282556788120885736060512538733142902600474460056608736048886456389949203064296903920085323733148898009512355408557253381254512178741576198946563339849497209209497783197076569105415361925449790991740945135178452064765334018602517297962052784982767863997029518973748987754572048004207300950364962975335933136358378997648312154095654165489255695717748456925727090060797437915058167972038702893271841631126661829497477902756707292615935042733509868086445773818673103269230953076900078049403525216204993432487933653175295743153421204677117069991977076265613660422609453487572505831868022882220174302161167625120617714831946058390537157014203580390940030401960052867249053495164696969193920429053176682352452482210648321709062458783788144221941523572694690984098024967435981025225049882980636787765166987836121927065075970451314003519591614500369239040675974251808480103238322914326244426871573582369838783315489523907730432662480609598857316230517297927169677686541423057652768670429978300317471603044961498378171793076605514535453799617162474662101972121275293152471301107678775960868876432635025360646793456799127035833909253997314837803232918749974229272728458726779101388031743697936640877363679274587161436345184645712645247094155303015608206381922907678481479920933470932666777085739902346822420485068427135972700765728460383414158888582990867275950738721790994139905728530639058063272839348792980834735257629857406888916212674951463139278330080164102808760950840720787031081070780800405031026904788949464350684582967729017693142935707222705810462938402322097966376545361776403401075714603200943287751623437971049784708953181552286195307682978145551524255118155850795652187149312247757638311948992594035696265910895818507674157324018484536659971018702563541724668208309209248274662007557101033241557854557093830875347960062372031898754613805699266135533146033290676544626330636079398296690161259623588638489077240107708405675596405146239042826845553656940152992839066584618792603531164618581403540493162739166696608570708114999604378973462022637110987724984659548313618576942464331944397931488963408052135657282072004966185664634549502331874569126826832329445687737593823033282162894369346933764781673854460148848671333225887672979378649017687560311912420268901315692016814076175059096289402679014338391064339952036736150385256854842197634388564742514187537693250059039733161428371625532249572229994133255436301537285686899343309769924848767267979151601854464667884679943186189121919257590757366496775260444881418131828670503672182605594459482218646866104114858169216698146991535532951026006579771053878626119528169899738256251984405932192567700790609222992479071687290335150187729245522483502555286962273858740769573973299823733001599467912473269359238761827293562585316002301179945608133327202469701546385191709413636205305097163976665835080966181010201184810104887252877068531813051463680795570607881681616247643559129556941906277467327369019755230460348442758301216399735676072380094442955611959317161447751600303879735229543333206486469999646773954429596961841454283947734220731770326580655460169317970474406318084395362742107663056458395579723030268281185538082565320742215094600454336176428148305103174914338193646796072343655734245879553933394049639466788183204843330005118497925170832769194581234878276956190766044974754404660440292010296751542016897522911211375040919885746139778757487756383748640269812737529577134326712030865700106251056378004316429067685485831376556319067653552343987532481186960686043497606285776249621276721647111795323826226212164090425562745792822228482265655201480012142189497831010693065140291266041551665401756431200663776208708946202850527657551887864986020145605410647044795132703552904628350316366945415451663186655825654768837549310927170496117724288610095902089029401628577889587304844288280328254492866296348720250912732454508091520340331226533338866637303926770578259526900437722270502842377066763395054580711012369689079251293226414438579704339772597779635574441446992707485848336297583057726552429109832193663989180468668973906659341050586852508773515676028024627539607213685762877500349115024728096763284229674598672826877743437518258032946278034704638257931970224066701106751491420213639822468590696774879283980030769764997351235976027080626485211666202060613755145241957334119597850998832213247894392670503646038280869329782069652623001455699310439943517309177529756646008415722107190952113161011793083209626039808628620099317651000373666948585670596227309113363986520118159866399966762037621656123423358707942788858768630941943190915021006189203650482568156752614668345623090034867514566280422923736793489462921521573020606832700793112784283720808214444751953814632857646717263659504165865126473138546538638496673659115887279305285804808782684662306637220509096952192471473520342076320997887782487620236907371870769149214003076964915333280247463938596739217088073528925972474229838322986490604393994955780580198784880941710151654503997424501169995977407601506680958689086779785831467444562077302120841718976086590269780546137646524669852945730512000798891898072484191881869368463597237384645449625303824856407924349663313071121514907430826792946743597598975397090515455609753681812067673210145192063346096613343016614795850667916846207425334860734016960375153009109168354475797864283176268842010354577482377654286668542086026531382883013363190576781933126519831657917683998948957114867756392713085312314494271604455742176997684057109996716415592217527332836110240448602470207388983797893233480713215063263900006761032760865056722475023754834038418212084610248332479528503645532495553544480308704618315371014359890368100117196360715235138789766726205176268646992476936799431775738797842831914004368544018854900427421540269518220444075155980839894878775771328565528596062292117442335834970650773428420508428582152546239740306806646612851811228932582111886466819457027122499695513102575670822347564141643079593879608000020479578881915481164863595072146652829072917680091538243311364701077410237296187144623561174445965256606053354278316193504785668995724973984526186654049615652116316993444081258293735954247078078578206601647385637610376997276780126251092814258141210701231020952755632843046352070753555192210187949644514515005706428824988249089772051421747235133219011479519677505987422351459778847164604315011297662621956824159605708408121065177372358671881720146375817056932676421236929386196753495592580647584297842168550917340101925711384396590288135011648455361922328910106993241034683095042691290465743348308773821152187807488440986579709970220177509496311534623971815954985277739724093537948804671113666865265394200507869032570604588140970871757230699931656849042754464344715066828696726941497288017710996085476011339519108219796178616834650613759000938125504825427170973537971406714968162016344836356725360051850665420538982202479855603422040921498955404396735036437604747706897432675839592135884998746221509996026284767290910924397324208829111211476292613889789261893648165044056569031999709561482470068510535959386475156213022759562680456218602218933610044214502438165450327931243878452648500524626777316500042564092986696205939838363085530853825627152997420907562897845595831128755285369990648180485177939830833884552246459941631486568163079119680275393123570494023461123707654616078575455040444662861299091668288710436790904536527282284479446522630828251357222577540654522612815766921125042106305816847804780249301424326846501613436594794363033875260422258952013967112285266548890962599104461127135270107653984418248404443096887393072324946112898546066473183887809942048546453614323371364435512968452466709230055770419623923116153975187728332834883642789416969660615854883236848197064875453669385233671893082774179467411457921744593317590691292252473083442523361588478716664971408151527688918590817406262751356149663094007651167841369263568559946555721761891650658082163302919757375186177304267328780260630484378473471191885754792542567315350287609957050825575531788983385530387179680905585270045871416959008749589127615485821647796580608265276229698299169830441105115862337265031400643724383156872946027383187261264676990259984357374728689530220579348583626646866502610940143035895853187360535292993436561550111125681751979227494313656838692215750940124772941839343723246948317400997330023383940318275136405348279748926357902429551711785317877849576275379741084193326481281823753485542245074871979759070135212895677473991226048623854450592944324177445312915948858624545509101643695224361127754738579438067088327829967157080223020457835041819372221582133839264789051520871645731181445549589180991520215830398649354249410867810474987848310029206711548309929162838860124457643503652141098023850503386569400481884462191656147371192744801401307624683637370684677672166001018839554150493864313868596828051488493678134909567168419881917151592624786924218010328438766817996159703047432456424109177615435742159660498960923258906150920866080757022622522947424465407980208386107120585491346533843981734374118742189397716678921366511541586807481004060788671002292066493415418755691630087519007973481234331775931414702514287220935387535645332363779236964854033236480129821462180156790476223010134972158264130182012059505827145406277498931570625406619658402724060458977895495075690591776576927714015862716009431092149955952564722039511685399235542046923598657330584337591475681015005243147018860072517989896461242589625895137671589480177553719769902049353271386845001272525931978326329349041183302459439776141763135285951812990737378989140901539073746892496458450771393958917048902192614840053684864682063810437827690813356546512341464618800271588989500216166148808528242083763722235903777654987622153549682294579877132921629308903804600716040798749883044017700620955328689024566832624455570350610815614664382749092652946624388218599177366275103780537128882847698479204603522719941035348050775323167929850631458882048875978834668262161039005969061846372234407028984748297937233086411571314686762070356678744880034107112974020828253111089703741809455503002771336333561177405616701380722572387079130605736247076479573337696533759384308628014239819062953072124542831783790220090973837321462024539394277111183089541611625135336021333867034329598556404771210534129171393384395768484907399712153494063691955934749426180217792492202950478976405313156922678458546848066218331816357579213688952752086606988384194546546619083322325245347419393414725947826441193660642378190465355253564735907841669248991203203419930032403206038146586192612253047298563461618451072480727609791397215958429681909781301216862265051290670502923471522108257329832305840540478736188851737591025317443869209721861514342031171505141160713240606116411553171176830718620238393612062362590404708735009723015653260224688424734845359344502049537569073992242632255977874214768883859226518138538127215222473286293900548305625236005050886323368434489950851076913571263131305795964917565819644394089115036176955425716211554923271099059059843222989765443056193533463283732743008625968185279413449266118158831660525484334677271886873484759496289382317289229793432429130119668648670839781442387174418492524228362113211895920898826172373411854728425301541292353255591626356912913154601469247100282994825681959518597934317467133960709069723719473477649992049541034319782385662950602487217859167415738151131980565986048559657480787800975673809020475720152664453212833416941965334755424067582743249310690153301340607180095015201091253998452021386321946493633508748573707565908997001758117381895511957580112428555915228196250383672233822790153760211906945682152075017526797805036872787085065510136177204984529198508732686089241104355900458950998917720361900752565027321383053953095286127302068274171685275083980409819186054882522565250164268787771006194097434245552698468328480917956125035483243504569390408200665643187024756103020407417640809925664302913393783765773785316970864854521540190011706941323544022131876667261745498082979553169614231139667493391572542241308821479189419566254151101876712080913230950534624046385869463516168499094167873307640226040468954396041511362613132308899150013508753761731557124848366706506929301159054868510127179414375073804778560454906034489851355061201762157139516779298819309978464265476236105026212261641810897881273577242388552690163432201675896726669164968397713284124207471481009685581694700394848792538967819786783595667646113231255686597529716688242360055717950651923956620539021044445084383398235252727030249023733798431841525022003693915793909010283257604923764184282873681939494537480946161341088575710557707862247104116508931517238060512039653871507146034172317391324177404427967991078309502042340761475276749209112239004096448318558407686255301507026022391390301247946455073486725428419727326619064362369202540017523374903472409535016263244033826439679872055553884416752070143648930891315202417839107021614373282622656916309058558844444483694434601556034571470637132045309824030736884343741063529551903262550262343770855516127170510465523765340949748400754734342203967143463742919757737432081994186522540613548337458368364045823498546145988018493102946292098369709523487357824561890624170929024111156019325839149562541682212627961302340996157573385332121964205066683006461039611623303786236466586915656506908552139455261275027298390475964939803929400996415262673487260993493535727673830365512356280502898311700489397222044730496745009468782043697733648692972127844553486083655305047260457330105196793126736695511766617194055545704135035169569142303838681213025296631370268260832094747850299532014555007712971827009495440598126910154088618796676350704740986000915051680453924355864077878932208225405521367565144538812139771554842334627023780801252168247861354553457625507539528493491182642284163566969350729683971243243657203521822075146170048339318333569022274832529896318873879714177170003369809899280999095474289225741221199331925310241130180353289407232316809397266159436333602739340461595602417821146582599341589894645576740243971076750694007403322205366939791753576579833184197027124762116179854858704593121961255525912142987834979871348714631205722040118716183568985471998015065502818306714329274007672207687540045666478892770342808523818731483082387304160463550954712741068489265175962041336678276202935184789773493186019497271191132304994442703465916027875519844310335286001595520757745675174230565275726523246402178697047465537479870469959764290696347206075678339053477237599718043206170821475613541095894267937268016735659861748483498348639439986469042335062783678923193783307453380571828213084218015977142474615423430617318062348656027381413248656020332339260417708757367508274308758143622407251163347505847045773497462284218529458720931723396689543028268621807724505682661649243594493461252082633316329527907822286282684313243781478291265309432610260307690843382172284387068504746105241204257928729868012176755258954408568288311580025919867116453265069259381295850049635910017600398150224642463821615514114851550751692105762607089470714114074083737745878702586411775796803439390393704607611273764347293729590563356824506307342172212823787750041709339165605161266174771245767398142208884938057500358979974102359590158159115475568767417415286349951499353565978644323560350224383653605014287126752664470538352435534424370937086626347357313234152529175039718800387290496802800902175207479681959188502093013592515490400405373923580711143947479512353884199804879763267913303239195366269788519962083602995884981423090978556712115420878369879668669116033896431878090239576475619178207482142438953820828944151683384725223910904675870375070460122747462638886966495180896930320692384385595011728722651112695762584436033222134255468064977330408190245784535754226860290693372381325823538944770724237191367525103058274790812895330053754277693125486656891639651842851414306108754550321200269778674290348099403728814140841915733606389074099105282307138204126019907390777337989347635996339141621721385779488479004421021397549781381346179147210412119948214900248602213374233893531356518241066157720900121603122987159854985486196773398585107960111867180556553286170860960822064337498280992804984637784503366667477371286986149464485708926305240671598966411998547645127528967728516830679187230315119632676859967503660791046301976112182145296474601816490851159326146454792924950668505834595632927851317234996433344896121245873724340120486788018034283077302713188563676629413704576621870999410678418706692994491361660816358597820812030814136420163213622565625614429510807523147479761600262164018614726405969125045502461091182270320164674048830062427824254598763499768405600346377328943522388395311452792797252703706873375733093115182572105471947197946703795329937650310111106762371384144574883988634433233804941727982502707408290123870569538745594702131894141579520586631121640125292150532968749328759685187085054530484159685422472127947943112679464019093660235911128543506886125466930895202044509364624793676954352428924737760121889260878282253454618189373889157149053466964713969431382977638026299413205428197626075396413843541515812325537928579972453477274066743689292602420385031768972903501027449987381042587344636589023625792906437861456628404756864398380986983628904528741419828440305980385758927196308693271437100326528649050679621589307714430307409999564774525978729708414237308874241805973917708797148552637664384100654150138698805552476254907788279270395149163582897410602361486098895673152895972636766863005525582036337419717736560451713092463885576714925207218339452387348836328801011275136816970805998869060613947955147973241780128326246740895386831262556150404514823283384091863004721431767627121911019857563701700465877007679530904875653904523509964439938559936707885069836070000832423202823222952401310881828348552597701004452713430721754289769055005411106969023070301512757382156035740264124362079039850559085080137214623097887635191515481159759489382949053972666514922680512580440462891500720733647749008009432265950905905432957135479112281666719381980498801372306499949471025451032877209161450431969076052181289946290450978397289729446944503818085940139626299591846904276924869246205722955793546135124219545155271031432559565902003257782034259911303256266263234747008073167822977922997527700440404802118140950234064460689632249394116499650226472711655042868562169820575644506817939118418388885267001871144050028872308986153883924482520278918505202801164745343821734852235274820659185116497712732526869444015217793693593502965792291821256783823708846831135773369473543543673370422799544858591784570241009761471571258171482686085459931313708189209082374967009590007114589582494243652060705561086993752203700950920312120417822427881870317160376980004485504128917210791500524420244393019035912002129307267725844243093858809901165323017522256294131061029858137591984075383865871429962619364841271394822777225169150097111545712535174215490115936417212921609668371684412848241497121519348330030988781959888345013096405151006816197083209003794217143445316016455087949481858251450371558425607418911874131858589550014568931576227365778724744285902093150389668433530180780667676899068228175490684582095361474478694963733439376851585754044594439814274513166335886920212600837513423833828029363424318851142332545403639244598403946530311280381808533852122350197952519787377998905796717291679190604468599380136859761564125469658051839914540667656446584400190564035591436632293244134393658183062894393742097711258893546258509155611782155003996419967742874344444475188778160068553215436957565234607472026810619282883795362046952256985370109912654221790895828995314662147575944852060930092670619078592227496837061757661779108808419344247736896067252387204817547556587844085463196622840317711678945324843549837097228276638458806146570312406435463171546837992821112122461907736868682246908578633037359693219694304765262311724593883459163554236872059934783714679478989878061277991731261371371342186948300073796383313434623032824084450084827961807904709733123118278538714411694959844195780544963463770818166224609119818205464754697585505014930937440988248538513499719575763520707597424001277219997443667741395648020398162935146446265568670683622151994088711814463784405155231067472185030079410248001544374504891511166206470029857434350295327667214325599818134625830062448342359435513038264222219081411462606542273678664224965563949274563488951437714383597055409753431097428724490137116011955209821906730660773695998290231365896172294400053669122092020780638779847490563322906502474632208443446026088246206387728299441286241265773761492637814844089358835261010706102776799443328943077792020637691725765978312189921828570765942495303797237046164472683726106629428052131502027947073577652326235448976918838303877234163273091824668205639406106088143792480801924409072460618375793875189717101974778888405232644866242978182618455331746685908993255695718097252093649407683625801252375366385522713450771281114209795776545032961470641860514634419533247598851479703564632512833622575607111818439000166992661716139431148943310928627529818629058904459683991927595477119301281057214081107909964817570952933424473524195567628259794251272143131545845688331351888397855044933760097988888710674365821498771839773115901991390529817122841215187431456400265143732769229222070041971261194590747950172326752474233497787623161405477235424052155572003310436366358253828417087812536052717176469324082553559709070669976026647270065531225213789164051460072470995937962350733415417320236523836082859776823843075221611370900940315765071309186802094567138967122505858133424429282229975030327576174356978861941962652228424044024647619352660523855753255567955709794601906364775844374413877508726584410573259119420152411892435915050699683351672300599518736011813485116488010935370200185865578435734715922402031376169336931905646075890099857159373838921981917685479239027151177895424456815148799163098784340340899377032222231220392753974695044996380011893406881202797916334653559989552719481489507505986423241178687859664949198173949525428970074688829594433185764032786342021364640367277579090351058518651894532385570477730039579462592108888295702435829065684478979730227474101803579865237271820693093141820518545220078200159567039037931989169883360126163585664432856916112115254205560207358460742306735683477003799355968690665341157198429541705102525803338908269284146246214759628545759186268707264663776503321863542008591104818225553866625534074680091016932057755361345747604244532930064785172554052599319042976077911904202047162086019357533554927402929426847089281481221560150149821975655340595326993236633109061270203970912392823893764792483727606588424250747641385351746922313745045928531606827905109311739433559066613060982329191762410161214603059013819554498550673298567008398163739255535957944040574974418707820038231572614950324835887765751708981534022872224982962719786190731613542734350261212243502583076357099045696532961445173428632536333268602843726744001261339258171738003354874779723738954359753759360869806347877832349219364511860970730589758550657114593244552487570088683366788827393605766208297741495557913406396097300763928052081861865833301036117265530078394689037766266683917104846965877171826004805779657920166203404824275320572751156630523144878225912365895457424786071927110070870601157373107003397509313216434091854671956530340183238592447364055005826862264201754010201458465269929315649641345893235614972606280551572990698590191701777365194191029125969875902942827148893436966019586165421192252511416177369893173524929230660174223920022429130273345433776230722611220757557993154131199929341881149766578310288850939900655528181384534565504637202299092845973685258513118307391475460446424565092227078163889310867773424433665623821718040669730135738300047435248449665266688806608062640288600142683102484363439483104520082203871743503396368632717369528266349662315661078076388971992656730906047708049360454366827543719124902918191572635737386795675144462567437706768949762471398313984063047948469034080187933258808748608814896419485514212076196917931295786268067530124504541482662798262480283120371093964993027375347880706477292363593827526590834862085375067527048902341159305679095375980875985047467915864082337231857891698365651264634000501303453305700464659902723093334616786781141368769811048779890616072245792855618015965215622012289620916998849483293474978645256861874627961499345640964062243739839160664789361185779305068357073828598572044570136040330331546745527991022082680701886007107772421680296356533459944749148449253088244427665622353353508683278712073901889468665508964774568667058257813542783781873433416670343197275231000872325507045583175441947988400496758267600498319120682503365342574790750642394746730933054287094091408688422340972626591217232767318513703887158610931463072979810046924489969259628798842399967698264431969957175740433911609941881923170955981634331405852330130484024675101313921673008953028134131457795570439298336427549511432258123351080788624660206087358878125190869355205150774382488979120030472828947826333211508838636934380511656520215975573806731085638837301009640351584389569287565901430630138065322312469968856425844289052636336667658114727100964348859732147503033191673298590525575928145304445458882752485675774588595294581399030318697988939245857884487822226168906254440542024125809680399685905486959107273320457634746654713058868235056344255119321489344313652498736581742671276041540832657450566061897250330653574771157448525037376083027027301656959023821716415522477242585450716769081836340030973619843267792934319109438204502599418663548606498415948995860731696559770418872331618483980572771103696030570980079238492510442889112389676574100561624940958947608286216650670900736709391914767451014723910658827434396315163894854115280767055716961172974186595826913493265115682798223514821473839266154407491879876368741764641931243422562260271967386689583976464170699666424714942993929359695821128689276594130048576293670302427196010710231074442298274406088973353666617817762816269640595230006307380528678993668851315564373626141639838891719755854712740057031411734647570953436735670251309187954365265435125274897218649118531349381059783657697877372668512330250718132666344564089746049096933706295715415708590631277864936327692515970522402483461889677659707185965182672424773473026872696267313438742743891039027998300564975929432510999012423882113233415846772424972147072838029600200494773997525147126258525212813004849371042775816088370006952541895782791628501325665753879052622710231978858946257499165526665073986702077791759750859069292209034861448002001164207036622456490831731532674840205027370862709581260034185721890911069945675968367690225712447999033701830744799542000988858603939235133873635409012947744669589595266253647213572356570759479776722872494178412270731853971557944439567758795167142736460364582721348807547714848811785088517201199528154413717472923912523745007359777356343623760706695799421169417186246901513809914769918705208355994059866193413924433241851735607678282630081078727981554676080321637176859716779561255651397446331524318744364493067439784648714470928339188845974003085324795865985740828642267460462897246214103274392691022323779996898251705294587443895773598543339902548708299214170204390382826402526430394959759967018039942089565454156988882738477276389266745462362783429264655588837743728393765453094994551136648641050126210550483815975106045949455083545717410395820103965405668490084225354788253912056577280540836454737717848989281284692100479074398546957336227603785116229052383545563416803215895372381144067135971608800323132387416922427409443277350201497207981934037739352215268371318024943960984015126175944469521329793990840174989997806547667488953075041416240925977710440987632755707631068471907506580946851351481804100263662565179569804444847376030186947772902624812052684206485886296948024977120893354855840466484621737330647712117857240029905775683682737650268951533417855918171583453859325098673009862424698650902055740638945178154485440225429199631343455140170439252962164312107888834079090218272081327459931920366232814244169753548928514152202914586210524132291423482995078353219746319070066478570574001753597327646523475296056908238033413636478800152143461011862637328033801353443168965368322294892753808452245791563045939278050367278924693036214739993296177394696902652179246070729923194938045064191890850239033391857468026901347944778974127158777948920370681306704724281490644783110396194042226652817006686808845431888335123836906930498773808877396782504848369952074827781479857018122202555120142310170706072544866067873075534125471036614201093517693196329554745398609662987359393079281095788680679700148746338859762603070806940554862700834498833230749600641423309254739698078256064782629670608373292241473497863648000712575825169455118885421617213585554074420536750685497249593080838697828848749310328875582691733340314144481428759377361388227313408610070632908310410124462955174169820853634703895253801438020506297503964722882822732307097035755073312694305829846997845078604488205820967306208943946636625352464940668943120049367856706907700225612071874345036009977231828228371098662175637789990627923067632825412568626387619131196244292820002238515282202139296460768986019111425759300711750173393354383796500775524204508474141121427633766777321454103852583504987123907416332930332374277251399446304616900400063829217301444818525441199057628602283866143431468814766889417319388877967650891307723513127842808449208846343271896339458881599482531585956542716983714398545741841498644046802242449455910493054073396283894854288460561343620972127568822251937067536360040408467494143794000507168752699731998706803775570219869772356389060662403163026077247053033629728309246887551942526057592441183370340955584373198339934976029020686448678586233495965939181149248292647877490497725436779106797015324674574124833660444673769391391629135310862424985659974551938471232645199010751188652350583257618963584743390633862751832279585869570888828621951153203550935126930216210804938411711326099926792086120760968224090339172624113390073177303160580096356984221051885102826033603554310162619267552278919730328627399549557154819806548430677491444907789072844199953211686180586953069239404894106482100017598972540444166271537529845352538048096319162254174189865095579278310379662801792425068502639804001342705902633132442659572036192747367037811898998960053001610226475067315560043253057182601036073415291603701043365156716760164251895064588756036493994651631410148264516301857682023989461297527003622084764238693629261026037182200376765253101895571465137299937933931228320337560527293951669124548538818196582549660342321556789384996032114217284692082846986203887365909141475561773448663977741456528634732381604810286766243808806009699867067212091138051615013203863034468337485399317261948994009612384706248459819086323223553823302302501104943660194012393801113987981432985327800123038768366367652935122806422507293700200105193391554413009530348555033206491523731713450566829143388533646784799892793729096325859331709713638723217846686896949016541305662861041231803921015052450861129046291668959124009532098435751971480386519940191417224823555750395234661794442778439178625410633703481770973023586988585671702746968992820735755699207105842942420707766764915318917634716022562069420779129113519017124007292725878123089961583018787264662441186461318103268683234932870470051859089963710626468718341979476057364443135876152438487476569330589949672077486695296340996155882318766393806534215790566992899574632183397122951609391099015432037740603725821475057102868946859721300927662493511851420234935600742758873503955202130329406022829677241811968041775260847288919430417100343808450966674209063561138692927355906321189740981436648447706834783027738325138207529176849317394027399469008011804767231699687350757635205052104533264714893724775527812839021409637520748674085553956694088832219749959861354240319345961208086810713081334461188939126874588360569311079711476551021590574397591863249216406901175693637409126461816551375140854799334663799467331989434991097092027591361439108183259796008557753328757651163867099453746391428844698459930384383353554924213158979753330956016091291973727975994712115553400376150135815596344592950584742926985109530366845865264024239151077263940427283835946321069612740811659200911993862477509134852251023823606879383537233676378826465698790888165474625213027423588504841258550011917827077266503600988197528945135895624952365682872400196127075541948904081550567017489100742315428372711436951032287421507374046477366603532861817738859416664440093095169072326672965373380721273364331603093860647744055369646436412656846808016977480972376791359432977053841321333155119668209288406906182104377685182450491428396606982630869923549193810389252851378931890201329522983255283191287478472156001572499152468329718767598615037305763398313924475746364366090734710194075262233075015507533743254189655186355043226898408012364420804369347814734902281581672312952967355673151697733590019950628920377612007412299671210347794057417687842307971681397455696840617863599462821874564387165579670436038776184473735927753105917459903282048321656343343187612932798913652521083310834720582750071788515807620203715244185469359362098031500422298123516424714185812342871284706229037798072801552165979589178661849269323938988899753532907589720590533177263820485626536096714400284398306198784914881710154424115892245966182081228189247740255528523249230947574520030657196865713908326824524508208477517153697641028563894199782663566959024985774792314534200029682214689131568356098760757287729295640704476761207475960848344652307035048609047581585439600243376122747053250292431411454955160656341802179442272326970181706263631973377357077753863599588924091573326283165628983103136038419939767660925170048304131551719185139641457376917368752201141868212652316841689799249401659230920574327652990188236756737377151536205224893525187022815989866054605797873879828183830961404306103410799450751346016413257935708684011519675690865337419851929559707387722470003466194066330927546362647738082901273463616293482249953795519105790597560268319000005515690940561324718542885593681319014213014066224524663858901981401483977788212938525319807223586844701596814622457470710570034156763679486741459440978734240985698893573965558361623278979931700745950496036786570985237329972540418638918095513145950074770911360665379925542452599893389272987109973846140948566325364561675940875008237221314071658871267357613214688058858880774438638832068575327533458562864218445197393516826256086314767676317666140456265316946873386423140006168667422840630342233819458975000346548774703841246092700363868735264399508799579483311509670746276362316665414941835739304219174318314754709581600302337605289464000963197878931249756603180059331584837983523853276797501752905886974529064236262707759903808929029562287127861943393773905618286084511117980822860120188125139052631166017540751255723453880837491119732270793845657017646830775488278317814190377698813245940583911684874001842734908084134990879374700063448777902228785101814197888258601540033170845844742031488398704462960774724117254521868740505582495426863670113493039653792060851205013735582045064526101711452366371184891268337526566793939296963936901678413699219046426324857058972630279997242912569493069567089910490816696072663481125746369276854353427689651957940351513619509372347757244133300773571438807237529348827415352615638338881022151635793151315842377560273221822802132725870956192401423830808210209205376538198387084897377477011244840804525608738349609424102124455685253062601512814754866588987651431065041970910093025050244705391527471332609899632206952535709851616595284424182297232778087565394644698088843837218572715957998387327715840210948478421145075905291046227605066414472407630998040934764622685711799539928810465484664378736301340964010950139562441842985107079834948445432279407264240343251456451791340406449809658835480030809011067029702046102530715508894247628586715114962336563060547542315376903471526886147582807389093401150955668860636567048310333970533130860963487630766231902944006372185856349716063981163689598087938543322508917631877304081868119816358111258583156227877213220092207317070585742915878480958592043972187724837228185265272242516517641289404194358827090019563757604308018596501004486824093517857952408994919306144896774890937374826578526098061351081023069960978448607557113798636927563977612762335486690639854256551639693492781062176038720003097842673049671721123048628301954935737133696520154504030097923287213881285012187498238476978483445441315702635744546454846178782443414560957336432449692839059830675155841450165468682468404976112255921354462561961421051283543030597212183185937705075676503415552725193554167497970837169629635680372824504027286279721355141432306016464465465449624334945442289654418096478232817864428415999995327362245300821738863371138403190637272433587909384488827731826688159085471625733238399524119874436520285929370060306401210847506930900763894342569332116181567559372110956320183327535274257579740080363532165165127107832523388742804392348960660031602508437260945862130834831737971260294549688709810031328469998237037907160636556632809881619724674174260638912352016335873889126264867058866468627840779560561064170371622248367206260033593147975313900976897013063653055455174941218257726258027902221658081253402540860265498782137639841853770293643191313088773818311101856866914109688927256003337184699963626744604779158526231973120618225252782762977328042962914264952894845624207623705280316414789631192129167987571892200426532295197422087851994360326176720520118857359453428837959585025812271599440798945665665323095845482017766360580248437039178929802475066002502875020749533806879755692397039874821067546158023055513220575542835924771268306209319863110991315368031227845561721493763029847775170303175453135433452520077132138674554484709165119694603476563151155361049987028553375346671037267463252083710490143949412564820791331346441303603300953613992541031986257790194259211484352682535093599858537655700590120310777058801328605334505185569358912039659953410054739024772485337878292104463256870016697748309238677905582272260116521812134853482973751922389058455930687841347493289719748588079415482994235624330780332590338240589516919359391866644309757216810383820359131223382278460843418355578346832056240840215029683135166629634797828730624124970874559289329777773297530522700431907347069441106202219298780565546695783769575917235567431022408631733182324854639925813810733541641572909971993904292723598064488727119234707314440964906793841574892835311800311026490397252260432012064638173793897276284926775055680886339169571137496298319518187093873452872983505341120994481919573282227763086365980901439760304707042548050621306214578609547743971608636407968696044185913608844340085009444669826897896481868723340758371039132295264993705998541774715873457506202581910528934766977894735080927442247074431392872473814655533716896624023487189292072569494257363889332946052956911997898141981577708583101132704849157181161224009304527200644021590096421802062626442697949741770490346526478901345674451732124531183745886191245370408819469167396370662473114543292158003191965702410769817168780050419774130257132700053024547529762547546863170264828579274515995774353920182203374215023236891777751184658272014240781567232389070878947796958802380182490231853994345554300846975062443245689714017607360139223523581297772751294967671779546869764447539052588469205691305724431248830360586078619597399008699920161599428281563857076663662551277375271890603852630756246975318814332588574155920976649140855472422509223818288292346875413550032626881151143926376162280885723807028939290114378224953686260502989078762912200611655961326552833807514445630959667539836017384173466722069329776193236907362867694592312438353936684985921377290750805642339284409888019549463896680929070397282338047513298484581178064820927147581055800717205675146187821068022477962853419135626798386590603242538830891014099611657057937381135109900121997895395220495298671983348425235273399316443090803347810609919598474639402414293722804533041644409996025919177630095959850050539765778495000933606942298414618104137470152759379432157563698041140618976402194325980576244537874463387179044300204359628269727739183786443800821777530919482014745684113288571276805319943833395648278544636935045001508229495773727083902225028020977212595633419432903917293308311819312669839840631831962193702125606420046182221559247724303954900223444611982323610374684712903226730301543229422733491595019021312710972138213970941012680692415328620995321923058056894269785582186202001990980973419533404347799233328430998654992762533471989660258197741846416268178191585143043279114453768275812840857444373756414827597837859531364257954522423090907990506849670612926877121470320582395467878600334144175266710497430641809502627913567101377338793016402945564522953123336864454162843876877600399349856623191488410474368533380086581802486636095436844476956900178862320937633760229925646744940940763678383900282310559317962135481520766954971560294927814968837825073197920193990119489803225837980363883477004097176717563064476935829803484889710844329092804558493400529137424738995523241656154197941008045409792805838394941549723683672051430913644029344111183623619485610497701839139467271259009130481695902934065311266463234021072515981818448157315440807922723646010186299156511027554164814278245202345870452091683835231785007063260267996888001417599373129541848219451221852562555738521407288266645880863569050896335062775253537438567303482201844611665130470621846580246496226354429060409205236351303901202685338076641340737042091122169634064642488432066750802251703793822001749045917471647724087563275906809207522189302014846251487283374135072890784644791877162665400601780377440544167970983280159491229391621129592176885595005462902193465645244227050110097593787300920160337429702513657820599413782415231046507380123064777896519458698630172606208526239218561369740309757940201468729026488399974944577927683497358854575145033603974177522460094935109882501758700690187601906562175884185633088969005436741613860418146105654336445367490750205495749742298329197796134816680191080992093231499601969286162135942076335836739973617986353710941813638637030815036055535297892448345594379294317746282681521648732358892100512153878235330546461809403685080894823835679148232101121536994593335872848403605867610538824063808911693961600243395912012233722050812862465891408017580727395255681340504658634514870411535331513823235795339190963431979256249112781129946444361550129026405944266373811558301383742825776873067325638486887220231668572342258587507659701704417601664374532874022159220603414963784272977658146304279673250975346618028590632729090930849741339017840989049570362481946406380856835912078048309463977783030653083602120774222274661995074695328780584481790956175154172380677654525954100578897047963180567681721714921448644504004713732719665753712281198539184474759492519663168436553769917936672107084734939041861364882067644078780062994606848286497652731757082317254497285470951844347728845467872193422880878206662903700697506692106947938860321497921466664867868730308946488787984605538956243733329215245462654541712394509682147700496798736274659538899618020563484915180806956197610521258352947178715867808074768962086701706078408306984524984710852858649449405105058910491339989507022338073194844305228098678758359384172375431226423004584018600216440089353422749686943097126364207547638136033142798688825458820385456765327065888146972071422094310714496175822698525786766029012635386424548264911392751408428921158630923889340263109979422464728279650030255599653204307077927781384186445801825550221563310253764956709699214245395448632599461499765330206399193458793464256464404243776963894939371069865572600481005576754872713129132323157231447307092640601194726109977132590005136850074821669207773779912712832509754969237898456501237456867893631135925834017355990031667975118732705268103529853770921168201706079091711760900297251888715595319877747020082129288820574922875179703249318769294875946783540898299229968557484561638400139141914855987153783786944855221739712727808731538436561252401634182015920025740536919426019571197729529534388896898798236634278466601393111673267797944869729609955366477877239856579748738619149379634459984154857560952142574450177465135741716381324619330913796328086041233015171342915339403828067432398546588151467420819505493935617324676299911187599715829136177193737550505951313017724970774417059545708650240945961624290906218104624741742596057113814370175088808484524161807544390345626185738103804188217361739273306019206515397246422024489053809187058470828462398074156646392632433519677212497552398560939453123035104385912565051659218153781713538183287882618029012630656339947500719205022922690793932947892278488574282244236839398987240864392573922265286078921665262631335092688402812124996251444782222203562258480768563945513171346296666145153819418846878671226018094848323847479719379958742297662965005471110127414593207206866750173034958071825952173877227502242227365372383356054695927509035792630721360035700553107748880950994823194331256778408033624068131026023074943955411572790580912495100038752669939135430276069159220986406372818835287485457978648962323865869019732211440495476182373655098834153779623653131262281542596091040495475646282960665672470834619186952505163614429324440304207532985452234698881486217893529333262694912143818882883151210284136935286617618979616404017670192079970180706073669512042243716644420858757624626519846961662158745397750317735535254743510402840322675978681146921130296802162250808218737718494990145101252441689540988237744958633944512497199826817901929002191509898480589237709645558902203615684512458085468353135150533578494195018119366151047274538778691727802827209341461936833299520133012465705360274081533447640931799726874951159073284060124151856148641732847864034216358889605238496111542951872822370171119849890805801163944244097319532437109908256442471801996917114494738494998129803730929457714060621680826062157502246076792609298081794508175886996365762311262807145953487866576440884160160877732310371883460835128130108008160705867089063596884175013282684853472221174753904538522086361208043102576591522857196008437807589692297450212004419825886630804388818085267323044497212086130749954534382788145637931442602841108687058625586403925814490211559961765657125814837111541462389194264382618532324793719503932555761406876423935461743161567547807890296587364259536243726484414536023618498670047992542714871236453612500778584176048276044509808438321505685118700753765035249645988162963169018452694865148030116868865718797516364137228382086543028255773010881417327773477344049844682981658997943100415007974103264618246887599562481490842470580002697321673364005585382818357057172644281350470368598484814480700190693485903944343323739417798711737281817328644406698173774550624071975232066123757399129054735189099710270215010926212403386275274901376614109898508542475014357932157867502095524053908691465102349500124652431190802259607792279881504225277705974725975633040823936276996280927972395647776369927233856856040726753643847977170752277982027326479546613705547849597059934388256002114899262330790391537167937657362790483579237106909773960577286758890467338112746706699902530499400006530384707819378467988631634002256535967092745483039668049136032377847655573860866883423300221473455963931846873381694679365757776031343326314520493729436518677594019687727162756602882100226138507171427121444469647202958721068362506087235496706285611399592683096051913875384754706810127135099523424864986981969549517560249428112480287776698794448294889640182432583480622450682439677835135651133518688321552542248434310112808355079300598414114518476841052698934306239720603843681493278067188001559345034561488007413945990472087737066271145639765021205873324550211452119527617693513979641383358303928926354087118320424228992186104446936723579847952949815833288149282829758530152020979895847589237727545098498753598199522368272142356203318822185895064506001495648536295876692306513575006546867097389119896632539557700951941572035961714370904593495625149112869743076589051723926708858692650944672299716944487949928162221669191326807349543141193731998768664587734935674658136594275908565545008012418289867808792800867094809994927301814305405092092910490793256926404712811965140447449179766623196908201988366219805533163621320378980696591202631193753600425998482568442823526411930835699262468699914216842836018930747879030400908627915714099657973572480262360659798441731042864069650095350438370485731397468108840297530933462117893090020077528852400176432681698218197853939615979762744150225976142611287145035900561323609156913515684235983921629601168738772679129211131009226474717593687694370536370203979372299504942124974881470008947391125367681381379082921147108240332697061730248755460393388967754339061533293623485506532972365398242885734956498278486515503537460923995838747101345148884560475237812147778322898296847675234648437261260452055337256714830069556869646185667843580424978414073093672668387230169721131351230098210467096107830835514274646111583829138156718951286716762565748483959890748919955994878495360010766967316214592292384475252889787909346612929599871368062820448350606249164951102800108351125284229420310393949125096766840065978285745557449588103554986372987110443028394977255245891689573987781031865247217265318370782588959868090235367568132445337155070163133027328284315256289645444880785927535176104335210564652619918150430743240136421772053386067060906779028873351251578616042337321946901148794290573648064447809767490474420590599481806113167793603569332891312495768555311863005509429519682887631253834291330259656242851260876606302841780849529501191173040135367923896499227008649885495864899554400493579693086777027165273590404087023012692632705599891549573449602895314588311950073016368150613756372099537349057627134550108408425651774700216306476494310768423713625275496261128083290189058992814093513585702151312284415388919480171661282313431620593265999015423179058283482843062272974454497157122354105611075345175396503459584954512761025739877398237313998899921568038553966071440394595240946072477521867644163744444910346690005855915668345800252498045263406522287369368157674621381823480709583013024046517550665119379503808727865137629918391025438604301379853585895279167721653428932343619896092175669056095683456227142515392843561167099395207222234620844601361135974022163620113162567814526366756343476709784501597652905606975895462666553122624742715249744285099368757929295881737921024354499679910243242701510280891611478515849374196936974939854704774457263223919903856583850435896611762679414010273193869513185325623276249991732285031758669775667205855604680378040236106976554737125344220600508207829625575609872174533046366053147257120060349211917480957128311253629246470002661218483327278779742103853612598503131817694075380503060692466379808420314470077669011243100021838882513047183284420969977228607680010235475541007139283066974742939011045585106195052049098712805474197781017487803111395851296618499244316234574501869807776895910629781592976010585408064586898825889079829145340698370216701333912804431842043837025960021126213612795619571389217074216219557052022273617783195625958044918827088674015630114149704425222270290296875342313356604905884798774491003725995398916485486082633588237853545089136942705801107265218084941728363508735571663492832499686353585301229456864567711075604813985185888206295256091155748003392822884211685275249623492700167035899423134589758473700432813101191956894663720592289242244611271128854428688271493416236691965392794898379883476252069161035158364387911757458622018872014699179641402340687610405795006645001569825353540794160375334977270187215220724565139817908216873039628838575998642533085697502044707718911454465792634080687272455486104440376913190730214795185847654185383075085397977377890007622381216651506154705640629356858559621340633679248053969062298686498661374047589126841535380041146625941553403091494477357167271482342558422029038782642111203116637139817191093370835281889872017730106097481146867335703128245688263955739599758105724633315201902335739454872830923191078318282015490414402083532318357872089961491947313741518402081639743230611836738603920627907961598597753549851817969413810535777007642268491262108193628746763184848059397522212834722155233339127834872359271132640376789397517725710676728154502713480412506627491367496045872519294966977849692670750320838667223020021472334067057972717557016214494370069727930807890661679405567872924043978695493421125677669098099838144123538116681097460269052687000401982388036894367708856634299864418226352171175043313938464090256872629208629392839947314221265804853688563142901463505110389155103480771639902802944570334036761892574533396576113770313158877263416580179050919045729606844724788127701538241899790068427913566524227454802105945155221366327963646218178494766881645893837141380514090840974302749666506025807506619263924909592216849358219903651910357326150049916702962177833703839658450328361690810892053495211179429749019943564459851607605974613486560165505130193846949463756718060507213000537795793333563356662084313702109670906671655040226733497080208010226187910839680831960004392220669498171296942478430619481340537499488605715914435582536316557064214192814997651136388412152770969206250430138017124557797301546430233544137046215380338025685076629522778875287782714289621556285304076434371485281081227577315429854454641688680007259085836196162383504517008810208774827166602999760908413127472035840725413936540509522799143554077735062278183653221012249235843891223909273554519631177615344153427246088076649332892685946446856733095238335927674244528457256095106113552620413107841703533893716854516705516671671557306143945601690252480517680494859600082529657129663927255645919806789612756967055711116007895305194080682046557512836313973938015697922159223898940212526374507501847560172189017873404227804345634357553177531417974639287854675509717353670313866936796119559680163312149889231847335205530502975102485721788264181751291157333236143667756253658427659314832291042661523113301869837651358965456795392807101435140564207731293666010205676099698742478232900131047400772745979611833922858061622380584154926697712687580335379181190452259829709122208832937748571756559563926104809907272734560779840924027212725741908743747388159311453019805809644541063906891862116029257332167978603975388029304249748976043158658266457376776686896027890706207206662356516768158434006877037223360498807954269461422106749856728422278601611373512159363772691737755514462844089788743820993575704866583731345297906970265258597955684710770895718593906996471452270494517748878120169924144801666059382312281319624113151269335212580078711868894496834024873859054214466338943748203120686339764420502229470455506152569433694932121625623042455637500380140417312060060850869840011701400082073888705125356652558562231614135387364733517436967353652167739124376458269990248994410300663030178843246587577159777744816882299759085344703784940587125758947008201132887161077656818646266645795196137666665550525730212321927133101611060280765505804232437504224416314149773455956624182286603891424394165373174267109312291670613059125656598470701955156516604359684932877274744531720775661644758706292297573844700030482124420541680170735305592975107647043950063681595591483812627703712582569971739031862798891198373883544171164468820474241963923518620999188805718514412483720117698929707551191215324122451362056908777745642403633969478926940451995389246070627898358478647602076760117170933559485916439218181650907968021719360995866332392879017083384935480036826196223292504346229491197781184086677396462327149877862007693487406793047254242367580093438649830644670064308368842999596664783454769574190270961954658105367400456091685367181855667516800058267318331480570391442049790560918885740395811852265219133901789187337470177156532742046090511518767370103914648870978485831348899254642224336067303310272957353378193483044970667953133644134615994719018077662393687943772187333322352873471340362256871483218086502757030745474313764721171755451223796712953304802502812239171526074679998281443871684390011836747152623915562971083266279808372642253976117377998928529161791585286658120193181555812733991483037379467833881099634853367477894668527686077206583868505830210284739253509615970080188765713264159615234363221411260427414730433339446585463995640852988722379657769425718263349472540596815246384461132416439039623874696810416085507710498557170193394342139658123354145257686298548884057374797349055713303096536720826757771773762745194598783960453011598533309401462435692820888992662091941845022198804177350433240556333673175665405546794891341691966430958584927464727010937494202357517005271167291147460598831370073127812824500061835961446066367356585151547474370308152973404391444502759202274762576048833382624941201340933374687983671964260978403157877899648740524400969577480458050709646606635036677941970367393858771275909282785540561858992876655166653000996679447110943548749827031636371146433301118275792280255149275097911133187815563796066916403451473334398762644558721755415529340594328453102749298633684756277971978039227400248367475596877521723946202212963193640892732487864485639196255345566980020722228676404764139350495118328275371983674046465261659530207737006321369095662776920260221855398856466019676882904022081021622108873630540894742812083171387654156355898466513061057520779010669720611530973707636320440595249270956564088088796975205066125087220326148681330291163610196112801450562827304420279705196718223898601804005103285566281053397986898776615957251145390382214658382196735483223182788491138741701282959734549018588574785450581648600723098399561516023087636521966639721064298270539419249461382290045615081543930419727195298716477579864718132239853708592839130358158811782745300107939000868562611250868706077808996077093644496135533026261936084083984118624732014589439453006578868523433330618979684014748463633279263456533720506353022980512114887905372633381495530470324911695972338906850363028761781662731374158581001474190576158470852960292144279534726115920453743605033733309135228660765609908942141503040639010079581701125584514540094933775766655794314624463918389418386266856072668954019692247050056746393475867408676611111819093635141541269109236494723806681740880957120709101392074073806011880868361338008837012444088992630883386110649833545500510015068480465639856237801240031784691001598329495174421801673448710231917026566367029044927155482064293370282878775058690648246727685392710386484219378149689156182803893704002089450316175849843896319483272002722971020315384329803104172595160496823281510126450633101112935983550284899442614982845969645242770883351319410174929850021823749491020718947471381412026616922046796925732977642508250363291308849714493560438749934876428589872639345336594939619266211010383762801521154818190955751995374480539004921114547623436313917416860387532343858948273936824018780989934570744891408053328137099114078518998326866667534288480325876366546259654736755057398863330784683358577151919134143294573957832709543472638183095706755100818085356524215489743761483167942466651219298111202654665485895131841959508687197936584468560993888260930168875730201458679141390265168463028138666124310775793785989893790388435904615717657669706484934101163855640913618958313827520750997919698167833455079875737258312873431201210461059861052864915476462158067486447354327815542523723573625984323694619277534430845898805158560941813926863911685694481484205298708726322042290983042953978129251644228677452863180900057558953346339170596080540081596626884017114880367369084272575430355849299984486763658826930217635866929520921394494012919627161458318717418428936997359688641517768343850297840008001155002781064140279616596440313450506949918744063057325808111146436405527056992356500880265212925707338980922821376441520988142464450692624905404774715635593069554684828012979309623258368267919506657173936435936853272330153963981481249058447105280095988701258689204706341347319289443248823297661427888835106656235356669730429974967647283001102841535962887632352840572897543209709822296295894990610648766919450873977918757262943505555274949558031854919250855827277210155540508303614505860060080309245507465947987989444506906247243225310014183622624745030334562010070730248543083831365469616905982225182905800001162014064361369331525975161663096422012813384097110296621062974084541923185819870606379429330265235989447739872640688779755042344060400633340925384111209885471306093084384984745888205129675376383242656452836014387432372663786008823875562748495391812209281740548781155811433397785825169524070831871328371553056531083176164454635830637366590159807917168830778190145895931798994177952019305612268131209030877932209250934944487925859973570937762820966997813601411088032431986670043214455314153299450031302746492746351241697348965442307667121714000066971161918808072284306283356900363731367236345734564331040208639329587569513389302253114397038675160362058920855801750180318479738406249914687546630221794423047102336200133346110484470592832077084243811655465476708229977240621449210988464391946386325185858947222648439352537692914426061374226119337241535911661059764684734103190808837086218320945803740904521158367372555223633814513744277930818045311744541073863456082099255268370152555388027067357428595270012296643802173507392971450655818562264564042966906874050615622754474247868956528032411543972417989322218414289919019215939250666178903372884169508063860264057062980794960483263044655064308588158545703951633992833273166655456356542528513648921007958936861188556901768243264769846915050263260370915619246356301215751265342024366811663341784650090860083316551077431201152386173120020051522988250908360208668011880319889381828201893612694624478141517387770518206413333468680318629685589348465332553037333150187779704533388350984644849526065390269860017986368629188366445580490291288209723903398994123888114479342650913043941666879159448626672880470581270441953745167914590821669818103614540857113886829519900646203257892633066819671036185103841033526544687840827984865390808332517848860396969529025226978675460691096547344019166010137718536991006807228839716538866227225420072895774805632649217492617866265692812746537698477895427153613406977757848218670890059698190220423084581321106854333136184431119793249744305860382786259329068500514661025780043405380578343410756279553586736806286716051279702705055232345867511425182637102290827268937992211773964461747131181212690011976179730161440402749274743245409765909508279829241474432713595495306399986209812061869586709079940854977651187159710240024270017741382079686475304484750458049525147437358231716566302227248053934073865186222530910920312150385608402948755430564288353182785664449311412565851777800406889668005987786736364479114380077091714825506835463659884211905285110195384746578342319838789057551480505457047534106560575249934011445212805055343144684618338478805113406419886021567562440922030188105888187651743629522394391130505039659988290417379444538834835839034329010729882599102385494980753022559384935911293333719333462543725236895922751750880807858743313257472797289607387061245992116867328373551483877970179058498263140899230733290257580037055262757215597905604333497835427096524727835141512135755510809073408509587775916246752530988951725796264143413633950619350252569168891583573587443306285921508412768278830006662522675125849434054422505277093072393962242451190502374986278342104145741672767241099457852274086713628584561633044849160865562402223202115220243204412054914774189445079216392403165321845916178994483358938608053509685114823051005510233281379300255306899915087123985066024952660030451337411131613198095012777920195412391413364579319328395257552292280895114840260020301089751058621974162166680339723231905660917725876739284224904142294316201090724613563333952883110210408560876178242868675658339016412468300773527574053579974227960040938153215880295088721543954687352322556667599711604667639295797262735918245990508899202066248265634204614186678158624890227266893996301573806938836277812075140592511396570723582082710922120219779575981399453551655018622657653620826222436262612585366600338965480707225045599853176925453476493685244286029609027605171659386353455768260584289731109948729733263293089820996294613396273517209403750544100304293013533360971937151054661765419202013956106200632926867117349918863890540628667958230809508448704844357854667780425811660158174740538971591956156564925768164755436410284400430627678512954994729678325755794726512779896229382424098240628361768442219224434334986769677272342406635080727498996577965580676770637056109201281784428547389326010749774662634603019674525595926057069454594504883010190425419969712350248317432136664523037717437571395401764372214372182609875256991138025138592153905452603358709099355611350345055344234857021444917469205552397440052973556586347029156794298055871114153456165783842125332820611574061625228912011632594609334723345038489415954446271808559227908308591081253145877481217593124931981231646330548410161921209483707255609902066124240381613420696525950371036573739362308183291021149849987712118156206759797706250158314526362770987365295992863328139755777072261171827794199900863147636503576579378039760538282462840646089527534823090877117377088975715157458379789855152055789343688679557820683285578801827919938090208204762322612312288587985620580093437158846417853863537864848763860081415189062773421375033506441618843101084448356473317675087042040302127237322337419452466441377859176708441620037066205894012752461757608114885140639227322088305895362254788831251944506746363686245139644943251096489079826352989196955784611843410218454578853824603282224406679915753927153746186776822673390479750319851467618673126189166644953888839423147376794889526820820126591402907034568033817970753005545388796486745740719093736624003585706666720482777838496847935582962914665086408099395995191189099788635139587943807402242753616648547115042582235631894351216885856699845900725972129059302479472309726657552957467691929509235342040832206133267248667473637359616533577695179762610969749189879502142655036827726721862649418518940248787802991737206424071717886411136975328858001918819855820627922852293079764437550922471735528068317141141721865358510567039778794182446550192697282855279635019493624156482862557502066903802507819382154141259520766623494874618717324810849053770797722704633017553518908974005840871323144752302516332588607110241982026651576992594852509808246705601693372259188065941970622102248911187773899192362912359255885739422204348559480407688968949186880695806338106088717103896423287400336754016131575227278909305885808700145148401830552706092415926382519721462698839647775956743520321312371240756835975197397056214009968769741328749531494116475681671248998541290958098273876890677188269316343776743387475395675800467068733087145083536877568122823894513184053934462200475712629377511277877845679654764747664012278664106085540700195078566884313942416387532692871930828044713683238629235378281790791835310158368400971019415881244084173449197838679789213572595078674616743112946177479414179138797516257257355209403425811880263108016213969043925041273045165823426674509161816984738306670825336391016658917902274178975988671600228502516704270830099442391611649992320680481036597056498774648300932076144578361914411307674538056018347538352370429913148975395646903950374672441972925630064980582669160194194395987671874864645022773952237737021296696969613081782051362268250104280509219205607332903866064900545668329447835435239974549114672991670970416508124468961259656324960827336761304670305850456128024392962970520319884740141412044287379725142201091767017161670252598689174651693860667293122463831212424752956031320492590906305839580167006645461066934850663589298811208888123916098291332714145383428837868079450896051748543519577415919703102678693163958414430625374429726754647501050001830301628138181092975135938565465077696546006457874266702343349757226493748599030027544279902828309755988795420671765088297038227855306590091149011170814932432741341425935347828451966885021927828302078861267397497020365279057929476565073163997028894434871964934918910730843930730888804384908834041903441827660005347134571036601689946740535280373455685728395420817123057610233785772109216667612135754788127225179791977992806581228223440531199761472476348100837641817132928382260132880223637635058779552863303635480454572968105109555576039441123672689839643025292436529335287148078903821914797797121953021961387783750766648675179023052659657166110522135611449034994058981321819615137446682088196553132677618546444854042381746928619573324548340445902530327197687497540883358065490894776392455299330689524600685666575599417716066594522505312387422729622123470717312604389665352636766153008976006563748438154389167088803891164330368182402744493691290752206745425258820066211929763366400483254560233066408924316566636868611405778095412819665104714390391138633682452971626552723537564784034416034194695976627478903798409311015949696604263428021525024711750320015841777746946885529434478218154195997808556221394272266705671619482778414731273786549807445088417000968368863785923527783039987656926574006803771995150696998628549207464320219361176151037430994833420187860444749712272167428805752059730986242479691836488819105744002834112656324060560197205044619441359673719962022892706956616793134398296034315098254275637554115084477118277219009934621675856509850040022787222227309161703307734593136853812535946413661089621161756493874012096524433681844558683476595379255069225245030942116052499553533779300131123987423164461353230204489352469330394768657355464075233320901622918336586022953747983262193767366304166360151049153027504816273656905285509241243542011033393704044875929378470511027517807081334511106310458544654421810690651584118252557760545917961449462187681088329670068659703478604428694188818622306837416504844284279502102452162728946856070229733893032127572279500215961080289586172499503379709156829772075297801380318672750597396817366486107443138410419338436704070610922815571812808732708772511459142849082050376957660416930204726533953974011477052444700577342517827013794687234500362691538187816023714224661280816676306049339523569226526712942330495374192066708926765930258864097650689159019521192140063583732917723932142621802373800034351946323116044471438335828118293626850129503887377179226396390444053291041353715835270817437168841050695231917223952081391960225863404887467202705058472407249970492267887386571028917495103679431557708027967277646337752894054504281130422720464472519037894986301372025120959108572412515463488333186317033387142945300754079514657508726818403663638862505652586745147336787551589519340205347240061638487279947055409442078935462789892592951154901937583714280568779887936273045834845831759721024312196566108659904662923260016485767278849036515715571914491620255897710780244873212196295221638703736840744252117420757710899219174020994055619792490705140150906254392753305929606483660069107273310937260251079762385599412874359269058532576349052606825146759742318252449365804573716010157087235737120245544157331656756626060766062678886746461198816580411316094594885356883429717632342387074447957589879320111115651604300983792986401648836734744268709090475753765568565046519962765446719456399852801776431659747994758991982690065484005832583623573392812288514541206156648723087026693124869864877641219983945809358348407817682321036907085886940605903363178112507844312258860765462372606301109290129417958066988132509846983695726635891235797091651183989120970565769340767409096281988628695337930171077019195916297793472332595326835687169126523306522472479455420717799675713451215246658903486798098280865212360801891328524243394573289404701460154396765060146506560295454424222963303060917853392294715752317248901602107638374153384151995600982047155229916352594074601155956355942052291225270170751782910870437586818593102995091076864663286114963743415301888267688173212961934832160045293944126759032354797227060511323181818235846782213406966566569716684326467766206185408486293338175934652616674937227803885159535430488903318064198501136505121852416271018600483110526291033695849863091104257354011476794908419596245475221649665441708447956652331410748991520709474103499444967012116739254585192775519172017439660068061947317719768735602314674951305924528896153036544497788112128200489257314998833921036149024832263132315946477001710258369534905649300072402156213780201384151774694769206249647418324665529139697738895268195031410726572975679325377386153242234984984046256020265760718434251389238689798716326542169429036289775216441290250013786229932850051223229158471827405600834697759784398281866058527806425275300986387979632411071488697985132069203459529808107346381371178876728000103546081767990937761784081880622161718556207484013324071363310592197974339005344380022893183986197822324516556548366094582289681563120180569627011296127620357691642680589652327279084286017191102266571597458807015819000598075500527608500891496183186590394747207746997048717348432655222648804230786306814039427612105235868557248796175383743617619450046956909895341953506008105735980068166983199285341761850429683452003307630715318451775591486978998973294826466848946550855469032187948442100351125833532583388505202289746548665418673971809890873975615961933305901514376836610767076407170552835913991220806783387531042357111160949585092523130834953351425372276829720006639167535856555379435203104797646471651300549183543245744291022272480881454403969335295487203634956426714214095266463989472356200729274609550896458945041473732979944442803101554384590929475248477336710168714607763400146054269040428938286061058941579718521270922717637516892412551536866728931308681924823860451538256424583295294366432873925506480605021939836466478941850333869611169410609845241983354034958428750146384735543435168233077124713454775350344819626829383057936797583339119277572894384150260503110781241386097782908586974114087033985789314842120315800942872519599013147958442097410062701513824408298235710931566644563356291108009348120421902902735830365385815459963626638395191904367085061538767183455569979652704850763229022948317146292063569375862718246871242268964619886623452413867150759374589572537016985368632440021560301710529168357437640665699994085824150627955128824403115225242214362864123646371799762316619233081541432395151155533291998951834600103254988596400491741990135119239361893862925557705038891096191477604525443121547284386820941954299708999745575710349340327104460453707582113912900952736265379041333619876570675588470391437421342860845729468848065026436922755057016935083451306108935998860411897045649948926064482977537825211021244668786222889326782982327160314266544278382261771415110035613448225168038074065649633620728470986175989055507247839390865570038004462459799787816480460146858037410470064897289198128182981992139963024650179342096244191208545571848807014510638239553473189097888468263729998109118364186406271958587579385248426388848504683962977383322785729178632469564983603057681784907189891577084188990772359640680131312139902885373988885273903306981457421351187177778830915311282553661368799857255134765526195113224890210516597928673821189569605919123307452112941876053983654663219773166929812617538340123086351022881005637737610745679466106448050767118246011571164508506712038569071901379370773677776428220763250271259648336289455170707344832499830989263256361225092503023155367958041029548437511315754062594450883757222700863156154468253444403198127102868056254612169918677685065967955108995831145219471474811515966542296757439526048511667854311941486685084254892570328995842752708303550032728174058350674046733606830144663886138891770863776638116505561271244822746996401682048796494751454416343563886264522956375409479095362257059771295465331351798180486893599031489006184589734774418503591202288973770639885047373129595881525017961107966911424723324403082022207358584061088719392947712969439752750932913049879012637302004398997925242853154326584717715247078610276108715274839925392401713883976936813927094577889636273970547605549485504123812514805757262482354718658566575030782209987080330883224999750883381218058350877005019108988767394575663821915113694276427315532729299085737587348116447731793633499910275226798933210304982395925031662992179587721354654764573687283345116580922198208242631314225308586801595536324997230067691377733272189423751902814773695960629722137625936513003103457624657399268027294133919746892460163231397872628818382736597923196473533322422628977397194170638239072129868285235194659135662128854991167296076586027301093480638208602133389075772924199173492078435993837278872139182438362983785090588800976534509922495084045763918825029926642182835206255817465042662142360608530489568307688541054087651801946443413527529052111565653474427480985758833990716905223331675113559669595540948837564006591311895306980774762191895324640092182437387029190078946842300142021595443330775002625989698881955410911110018053014738253546124924366213654033647344778083580515879520079544201424180996435789424413023052676890645189722870829412822114319014945591690342758278577334136494600849194574453874317104740872335295950907777538415179755558085139822579264622469274383148359919518553877883652046859550826275284398916290349072093579905926265213283321556127289982171772902932996198102092866989787602474691127239677641510235250971444422739575464545724733600557025760734729158959443911707737397352402023440154025085742439186339261360544656526422220651960709437690650062355678222086444722899301005248217912371667785445952422760765721799672384609842065576957348537972954526015667857321030906117174423293417787076731303239609992353106197784348685530480509032653846847602690673377424753106039532142212169104331499303997674719173890590312761119567444911225775678029807423404330213845866869342965194224762838915525551027149889258774640429671965543846707039943172808670173560901583162238189453735507344991403268739261410919328791554261146701908080468170017970602134800397824545024138421256310042733658141609444488082431115891679589983485240751039245162177812609326552101980291239273739966047964086812188019428185078434678991771210587315825385322505041113788110874909992936652012224220730975786111538070099479150756705565185746955647045017767677251346397104088491974033495459777751864832816294199200250741206993039086326272733478760711525994240234101192537892859713195436850909622719326799958726103239598197557777271457547337027529268479734045780535776360067146140088866460126267546631875876330239837082534787638392259208434050741884272410684205415576767858323288971110715255057264575492658424152715165990491406631881931753646381601601091131213931387134275353370408931642722277100875484966057988938126619536308965446752064072243629244774969262554555022137968715130729946242326945547830331736597794151397872473904119680003548732591564151184025942236061994112921207976339000980543609303345409391671486894725715142416531090939643046376302446686014468972046334693727526923359621697417240623881943908026886110329200508999233957430581761629583912961998932107079219055451815103320390936816602186063619082946730629574770209367519650207218572455509717122079138357179722577437313451424940416220628786903493943487681237335822101022097155784486925001621176481634149555916733241324097367114244646525775184095599704176335014262812535921786441635054607120769459599139361518984364787667337793394876050365021194221768345008795349919573173739488460293731365935898486114666039670111877765221292849148880483526941722548875571181741216630365056678435571964922743481355154384170641081630326447769602452540270271124409316216102079548466347751557102633196418597135559236718300610152404688392342232778559421915347804089406411264333751751152309567777834202730899404114915007066406735905930042118840576487978913137976084386798769480798493702606116273552205025080611520729247377310566173159801721656206122066833074377683710283426373399109120139290222265198811601871664251719867238369853635553420477720602160749138599817634127786713261881137227665226588518080579639085316108609849895636260673640085182780224079342635710057323285828552675515181822780802009348577574747729582240808214600436422281706514051873890810233746654986091770965257940877923973740795420038470183849112821296121262398113346315216766800380780417526400792322350500277351504073213798885955715390317146433350324896684315780824381782554511436590307560397599124235011123028981116799086351399230333782777198508877304690721649179740514273061409579026659842996359712166156048451647746252422142753480759348376023988551275594224335286642859179782105324341735814622840326741509015380290967878982691721147994348261403686641927771656813716321797108271557229934705555121485573416093897745120081669957279606453200260620796527587352745654899755910929023419222509081851126303845258609396782511894962572330108893681414706340083994663445477585541297388430006213499603620991850854012549236016159745289658880273189778078533925341074771328300644131892087919502447416987682478993287777027737058676705347989907771333690713992675031002998523577137308413183009229244789058179813959135856225272804009080422337501339191890211262506506514518513607201568712488172461523937887184814449330285120897318990424776026998337040305611190661789720566559484152034127014826904821474963557983556467165141572874270099444876038466402148317438990191352726910601660805960599876899584455942496311068625821818953723953199585795670291143854498686609561413576482403581451319724435630420443388690287456831626857975790930961463343679855557839789764046297807711326233660375347273068236256968913067373235585815900592641586859869866031784749274270487049502568794476906984626364077734956307114156388220111123601642658412515273951692895031366328157607652913789366575067200936175366625632305879294392735629495056119137483101663942515696065493346749261650719834449712669008130037621487452760616851190936098165810505117610478654340866584023485523962552074574084222243562423785886076855523835124397857530280604349859853178350019364871130420368936445757071209059090306291923711019344535460536521643096657054426583906531689726471920522428317639293577316810964537095484044588133412934315843364892449668355901967890937389619680683488019597424005743303709109365759040831100545530476006175110731969651142401954054041815643757254868046901546568811566344426673792127149859859101085546021768195137992478824697114239600614685893868253548572937338838940432484681122891977782960561558102046272696326748280991841513387990503243182337634646598055918424711461982691662345965409051701707315612760026215898686941556560282218418855086525194180486683529570449792302133242939987578228091906371702877289389374080679415879206543997280802522083201722325616630769743379391982873516340738054962965113054485054577185677338704771703898818911922750784047886784867339587601367705112120198983013812933626513068613758948935835666764147122327062191122488434132180774393434458064424868286101793593838017719680248444778551046840023619460215050360156711169302880758755166559522332550264533748572380513248822932886769839979813558426499995113860785472966859730181389007712831747489309669294132741539001416354367602110597048893883777258626561851691146907890538824778825131203312152981549755340167105816226999800772822225851385875714306073353194889310431758937754304529348683206566934225108109087729010709879859809057265075351799483652067191518883897409572280025343521210878637912726807588604664387487306511285820461469721576890963991067700295860659313666895369294603567091127491008595749130001403053280530020524069931386900622387314395811796333036051629269939014788574479465519829164940092305578410107867590600832333288328748150777235335912500728650128102481627034082075706546736401242608346405924752207185243424144897337209146319114723608353982024517552410067980018863040340743038481217651569434779325633665700200156162377140185206881731970624810590194780857071531825529299308113175978860897912278146163290330281073854270360755636942455554308492731100769720676287732036286389954905229829901488565470838261702241349778967741671632035322390113763845489720653627167920899487858593206800866613050790775080726595331426145338990933666411023347990433372546951667226342395599180600135199947787598879511437342994555028141343377582956558971659330982697883128459304171209759634753863697383556081017315617532438178112115960396437334436724756241463168662992575588072962607251019098634485251088025158600275097659967711011224402922642509570836472524721880155614521986299241347572469178000030209500462626399869852116180153798306033850638085039942853725545221847030680756721638199598851989285295264301106549489011552837410605818998239090057542396440407864087172754289971903849337025777656876654421082477814355232488444826184062133538781578242249344238947126632971861880698201966581381194491063270885563493094574773251420913074117210969194437574729940964341017840202478249363145916251414029432604304236463680132646413204936352646258414331653732541936636500115867208721004986159123278841648255286634203401727447857983882918597773993927858025349029718146088003347381150979181526595023316159428032807010359759699023712700805461353569347678503769985994712490023645982225816442019528170811701213914740157471538962864774451573562201164744965961162593055169373649210548113839150251167211609159029935278289953946351922422983059482838082750111397539543303448527632683254916465759114857629997811610097808252903224591025693731099047775506159756653634721206637784763773879732304040223791098206241588109832335105113357978486761357907825921574413395728470040332013477307820922109451375232991227099533919059025785603810931636368986460278456524553378289722294827541951872559766234548964479005779420424102441193052158552433367194213695075342113924043058523035905611525253109934589668601922380131751902928633897044191043293571845522284960068597884587607976348743276546438630637060917299725704287664793991412580558944392011154156791743728404492677723768407021594516233721332246957218695066378999879801125495255257437994596307311556585412678277517765079548542168457861989731017213373918765760157151517801021479806413417570499920767292130854373163942338537612688898581867133648777616869694492369618076254445915631973857921255047780898268922131600983644623995780616299242872653955473557197249397568981926027546599787543362430722556130136452393103113776273198164895741447669809512462212378899127216888804538318373585293025575973626072152682831622833310109158653501958233130656166919765412565782866007055515423876108929196355256545214114821806172934911878642465173537359123252526853044722193057221149393116115100210702942037440901924069845586603945290473274316248571957562730502437408351612615339599498263693411353718337639825267283777975580827258838153080467550427329272631887642543530282457061623292915506605300781054293228912720813975362643360862804440848151831692287226153374805068454428031140753546219894327225735638103226572438265017619979017368611035325002285265012463864218116418162628794609598808477458584528730269366665181163724533149495348427057100765872114215017406277093706742020987888536567911053274318100751988100303373954500619503303930034180426887689186428750657161215287159065842888119005492911587756089264830304842173410513379423250509837299940733788706095128032960558408873025042717314540495733575277448749368265121364950212050061921859928107410681279628404008622963707144340939666601713837326470331329509228759048465770726603046936511656475182399749234788289198885521694439969347886507752679963946141482122142433722232295849232298742793848251693783945365473411540773083196460545656984410003117401184704940152377232188067514811046648718172438765065546347702442878237530042604801581301551942574163764250556883653197121538605522354481334109435478153643074854104682588475893874207325621773217359724005500355359539201018490069010917872657991815334242762293105150436523413996840450824613175232555702029954535025892235315088799606704175845030704954999691583602430504242780348009613704285845441705318466979579386545324807069046874865891634737949363763870557683234061639433569683044433800466165121679624003170984822439423659767907053117145295245499671401445497422129327712725555070282405689343212973770181588380562546972155847699674767100572923092190711515751631345211741417000190801797769803470338969093914501324256152349822870675218901266615424755393501929326459776088401486575258730159624168952048350489843987595934974379047166541937238578365429660908555959933638475372963784229504174795770563011989894577255470255879357325778936804408815940118490629173707944355826329034096830303523851359897240634365411256033297662939535056188154839148194086503629424901234769989161471341360880896471006965500884917751429873115842179657522565501637084557305164306659873141627745833020391864290429484698270678226531322084223023109532057919392015270635579919697369764803769642025974858161868187749523609793825434004676171670644535722482109032333953022307754144651020386017339621568154196189646508332144604300613973397769588410484875913934910919495143100737517905689641123671686462160386398507802287799735187992602852801626987115519924099852019085368224679067390603274759892396689887953834325056656593818091982380521835105792286295929668456211076762440941125027119768737455619795163931350948892752931111354655025682051012791335055660841433959609326784395560114503477175217318447317284387378767692625473327799172395804271746493229254500251752969885316115720349473787780588709935691877561171403273615196441159771484765170732259471584969166601805898220233629215810496677559008928760757413128406454432982151241583811453990262590357349981355291952659726417735917602748610093948373620598990672875221538755802782990396845301763867795039430789346504447145682590758862930836609225166631848953104101065581032207962813754282314176603353945738647426538194197430351220370581209317070380087095305261746348897980321675155644366208833720785008418473216337745710940424766800730217618678706154850349015550898866732445240480585050247228105207151843978395767253558130328978380683909596300633958928898810205522729289528099407441473724038785772236812405412262515967311204309068208628837493224447066877660123571771413380752898318076665855141663240533941971583472829853669379786321849794535018222565093235768801819318486061161541171253822238458063476010668479990683624515163836880909848503602283310798346951610926649667227048002697602767637426049013883401186054065270928843024121218317958090745841514228460931709860389090272259680770160648487225100348447685515220363839470407405472127370494675005074189160619104715349803689764256055452204238669467166105944642765305702831721576587273926113802174215917796144203486609856813424284931582191810670894979993584641787147457057389555521164424248851668098553977345199880552346184865411257542258747153922872677766520985117661346773663892089109102280799985037513828801636918630867128795997201498196859277946893736158665183061827870318959977897154364934606099271412091104277207993994907433538506025129349967906869332137010654091102419373744502251901203006511139931503307181756891421254702253846197609396155364250099611963755269333130923397323664634822213662952961422730932621992631590917203391196973427339714799366806248931093404019432888525828509564937326775500106501448074619815943116326499420036937182018507682722060759016562089136194200508238516890603687748148542703999159310323393889643065881063599615533989616156672417384634291678483163654105805835488640582739655440639540181368697595530282530341700489303418825615012751753727608399325345208962860915857172175272453492915132025989922670969916221813628813968042653682776976536034238402823224354744761233969894232003511916569525483251185124370089609254821509630991477893983119668791201125518382833202080155949894125651925859624667368716789983387831990177914385115351884130201509891697728125955600758428009148413167174036814803431949858587699398851342419893669720179688724301725077537933966094092282743944331289243518346255159068584862844428323393740216991838604147423389444238285190118855150660171120333264809212634865935113667005928134023164512018464143298217135421196930399338355493097140408500971283312748495632386074631504570209097514626051353969798003262484060851755993574595295140622232631536946181833451565521106555978630629669140639603304209200745217984094178009259132053895323262565956045314431419142128068822585311414556851085361486926279228424351156667757389030023966417353102055175488525145026716254583208403453722145206227384449134794339773486575538192399259654883969628104689771301103530998128798239335988117205124018089788058222743614229615074929897717400750156828272388790457938095150208035598028512979907642919050738860495331837925257845801969992908708800427992154498938098035132937535770383711947729924943585241948366855013706795537308853818937330309918867602148830980304170020069726732774078993044526803760786797898909261814396423615395177030765021620207041253856485573261271470764144479272058500072553216668184433349181942489026378060159869705030098705823657553200008166031388067188430498111484143899050153365894302270939266936980848803157740808131057064898046393042292942099033549904699925882551866854090773304362890494755495862208371263564790866437124711992411120096896213010324537251260753932835681612577491542058488334327334047149548396769294033875897312133496957597289055097952191296370599496819490041010200035913072845644543819302121193716111297260359563627388287735084937787352937419328076360837424269417203828693651588071977219359844830922349685691117854058671179501372318100085866887056244007526682406941524163953900811781699062106831448256151291021429550989899082581724881695452883727532717878084582869487662468088827144132978600046508121762946809640578796295268510536944352990831197526296217910100168495704794564962905960719376849513361471470188444324726125260683029358058883981619755394339376828601625992986816757010868289674733308779952611166669891950627112459724994127282278573253630649622920744694840890589764213180657627103406736270387845431268086899932879129339130001735748398219096125530732051895751695416813931834698647953363245332908668895503118959453162370717641601154891469100261618293032840817703957020979337266543557993603195912945533977050600519941601893531914581007029584593293031321285406754907265457111234652310276793214240920393274553305081647661030926480098623202483405860502432721341923531757027285395690631720621833220956770746422821374829865248124188063159049166958132958442364723007911282368950131553795019025014474584253314884806470396353811768007324407221211593155199932334327885414589568540448670670072069507479074286830879338427864825946369173723922670620139289060654602244384664763921517967348215426966301922800042090858106912976577276135199180731833007134144954716469362972214126950534361934958834003297171677584559110674583444881863633861418417929670293590973833050693607278180650403619280530183362726529752726235104291342951560123801192751453194416115049270811675195023655651685911377570151432076134008730960670833712691874755296221710558681216826923417312573996999443904998244431860880752256760149628714915688466104629339276269207172660079073248054513146624881838488434306340408845226045251535702166585188841113620868331660167264556056584920444592512181674392543513026560268255965793525156253118536008000439733930592211448857922667031940348849699696765673045648483525438965031745472176328390120502342736696824047471832023042268291091786713889438818200593587933979653832680819415383686504243740684710924078903301888363998409222324930910698540630620753219622711307772175770156312211361151786476759310636591737864765746672289779995902307868492470718365858343962824659838719765798398550806704667266274761714398778205496855082440171935438205758053012052175819092224412318795529130961704188063682448895144277442988222971337968874156079671149710856386885958194603472265300506862237486048494842183475374254466414866755739885814254796879743373676359151773505823505615462766220226673851172911743122499486803449627652942372181390683741376453263535347414493514858851002669394873854155040020128080608291580514066332279664874069932588886565263146060186710968714643584716939030233089391180385053680458857986070209733280777519168694286081124241291082363820246799224011811909814138509987474055020072551951051546689853889977674596081810410616425933438142826629133775685679054217933432150624101121897031680321020750239186275598129162842872136645319606213506592440871084891860691511459307124951690887419718114694551422585573606586782024603240710568876348289677579075798631849518601446072164995236125571967825552832848108315997179981484245799971767256911363822409775864011093942798512206986864535783500406572087901727133934364488362527835501742664287812314898739018050999570372008510599412802326225971244741845379780757790244156050369564345606886975225747236243775611505796698745139840625189812632699315109878249855611163664475980623252224505075075939666765766878495147546407544386124709971069752623755919787549542724114679299604337114402571854070783330721485820024347719834898263480735705226375660897161550553077805153491131594006141480674124311665308900615667671614081072927011117288900739989849083730715403850242671806509123699090731623568169828209562556472052294268577571341716401158233266127334112892394131721818745578401951808617981813481575219091382541182526391077461489367274611613362726400357020636873260337117954596771503539103555301174640141494535902124116839005316372506951333820494066534947205411369674453653840136149086950730483068520480087318009698575303804247802909063902384151035086606792494605710154044010149389844023650673777172893485368655258714134367596505774864592026026755982725130188496873245654606923363427121980416921266934840133682683606581048201967340076564007902756640794757252486974780082134632427036574516785597137433876662435153907567282195854584398362282610088850455384014016779901473715604286089133510730169722450587444052396447639656716540414415444578863975817403795594419695105129727812408918714750928611840352702571404187377706935805181400201628294932103219425549561431378738498479630764566856772513468788130661500018785456738991474276974719654038191184551478503451148952105011757628505534128794095572852681865771042439668877499916323489694265166635454938575843609296351914525937913385932803288180049933448807017032875385525448752095947538065250493811258307092289294315372761823542134701485652580544713022479422818477077210378237537360431933121831414054050307975590513697625712300783117459628938386105537864910773805902503270283307053864532008685690066014647389762358061091633102957797502027255204900455216829735509867652253277948950219690603103613426317322642755967591650358472001740784081970658026442503559974545534650467196337368118964328366053871690637762932084352463161206780033786582477655355360999474328367167663535931706108646779971889045845094681551974654677207568897334640887965842199244777356823908522221021648346560591055202092860112920871580357457550420571188317653388160572614569030761989058927631517418277066845940442758276208613911907907823026009387364416491562647873656618630075801685082773538904153642271397019469872332081538554004602247652190053988716533697603253090671534810017152459589998328711794700501189826099309105283619468098088148635086214412577130328604397167602372013152153182899573918361372695112206262628295895068409347287515299237948306310119218121099779579730698603005532560679346568080996398137700034296082199961269228262925949386044462275705703831983062171349686807124873172317547166075523389351300533222095263281659619245374172163762356575932065421640992682168653537370601555421943112106649749740503079084701334441795964368387913564899441900567959781419445754882222466255514180340557237659533620974759671457722199905886866865677941303477664169551879607272910716351969677634430980557147600857482281024370968348251778104283380527184040731249435739279365622206261050686393793943782895752877322452996094919865464311863116371466141023934971357684645453814578332428208936764409883282422759832286506680788740344318497818094871066153130244144346508671242628769011932626464157942125831726081662353514586320359801581773009201484274332428952744495900170972396847123712772100245702150934414908586555164937718411252417050020178665349919602431690185862750796071099709887788631931543327731560038367681381693510189029590425916650265185143710016974889608610597938766721854613672661553464568504856350644059008812752960566068452524408412950415368206746720811838979347972410224728815845245722246354964703565538687274403959607834884363871004279044882403968853305060520608016426030609482282452090579262693531392111340537898636225767592291757200524080819812085582924426041517543453726641183709915617553423119479679878091092976256254036250833189003722058558302533027904967970984243377516150682378638682781335166476628799319897561119318260858860310804571790184600996348564610659088813617492598140360917080584386426855725314701542242430124137579140758013087339002718835440971240464612860958968138206817859387110727938486281420530723694382541128561775392373663774420164084845660486212357766054434071226510780453978302847424011174081287648857028476400174103819893131096862994749410824402053458936130781477935695438707554934663427695348064955776678249160625039416725064585233601863755780490568437186896971016557701122626458429276886292772929270772047493530742163494508261967433803655039562525601883374677371513638543630917463715887211968096042986336578476944735561927256149586010591407505376490740019888722161796668347124801626302837645699799974621086475520254657522130054467681285311150454349898542798980449444123220082659793134444844574253629752214595842586350600217293786711691523867998279027713115972888716576335901529301212169246132086369482529196550532083443057424312480842037038316263166578893852147477430711653464941100725673182258342289866147947902840983383924591871923389405816103231999296392533215429523923651835555620547380603389033729856928040023822925768859128428837133548984919908795058187348858861910898388438612510259133027951529592828310371941132531453837477904928389919440109076801542249374660228357051660847824008756119386394565329852288230409950973894664086820930263130148893521788339656565619465747094694457122521707193361999138760305971464405863151959078339930900122825399766930257139532169399236107072040887824903734296964366489133593275103691241685000717227739231392727140293904361709254782447609678863451706246265611218467009700489454177100239474723629517325726627414491548731866758780590119363981822680641127102954723449284374232129156024729286864073865889605502979869416914741057644279409792405223485878628123196644653755349087235580245896436818704671154448757158773047685841638800148631108972060218069232476349569193690201059248690648408704629694605421209103442826120508805477035852607559244270144505283450457303854046332937449732695531694230511048044942798900807811563654992976060917612479394160225320143524044057275419344612673987708248464318590182820518519978353192102031294453347378134417398532516968274167683263966889168963674833533969495543246439659846917058149655688021382972955574003814788261327716524991983795037883101840485735796558380146991665373349217879505829172300788112345248765911128103905219421541618771560200946761237884012210505646190356692686175740191832354639356816548306301660881733423255179473370885391748128242089275237236236492290722841877344900638231358166566614794641594715229372494616521929703268543832923578898008464330722427254035156680477770770765763022350166184436714052974551404159768748753065594590965774322264523431886229589594691029211230750174057891650116719307498190726041095154764102053461065431248289982309798153161128303157685671965976695254078170057683113404600178205458750322004718797564682358673408543529812880485593231215896513856644803693940607818342952917281442131957721503017234503223080948433775727108342105215301484106291161114950952340778353133030451568260107035877451743730417729489544980083033735855348514116282867415263900751072387097282536600217089894050380203318970888056812286991033527753577088790616584833486729901704806831012347933100186313540743900932904537021739154871021983508604403701045146540917105247788594001707274884586588320688518841517610196620568623287349436417666580803321348677675500189218754619015202512727643023011731882297140380167628892127207420366939189573230525944241299537412498854117385355858507726988382546432093545868405261625240524775822986167449736751819229360336462628088107029235261276867843631415143669590157374049818648502925357749688321110215636119679810950185843755716470760840419579275234063730213831477007757117821166842499561095995143236115243868254611631649944684265616945870040091140897196525074924082136296182646246035929478582797302789606359371435563040560011257065590609553995372506029615353885065033690717092295093617613045627421739985494278818399121932923242929147697507284552313423393567377528997720554070974830281564783666481596639412426264607061705088011750015414823360772862771137229584624161249571687989534333136358480865589737583003073225566797540786529608623848834410584968636306335578184702502718777437266773606187780796698346621044363244292769333943979160255551674144364663475093677433426744949484783514689740785165645156318021701975384308081715828302052856148941783426874591353817559003151232336994817343329341678169316681137901795126129008049054906362466675749926986798422028101642574770567703147396489492849880502361582301014104003389369992244271864824963262224630001367840630290065382180844968499940885679552497699082730468849921547971851078586858660800140516285040078102736587896663574495014059215804991056541674675367410284190143421898596347125206020150049508557770024755527124450725380725113714970171836492409648252852876325706604662348621843607558228505641703415034659939776274451749999172341513650121946797594984701523380423662233441212634128527066501548139267449805907832680430813050986827213584188012843153124792425565810038085240565907931448991693408583819689162220199048122163891532805432341068805921129928852064226018370563037995089249419536381718431622848566380608443625955584595725510203798795841836717987351383729639910155841806880505234253119420898305166168595727587642076498134821834728423405498772138634845811026655356511836345945382531258129346266089979372885606807529609457347353597634209518881954871650029591235399946264858013447101401499226172707673884140866971179646484695549303688813574923511910552650973012247202899854325578426296566917024791329691098381955274816829429971335517920153821001864162817863959999669704073647205487587621460717018153808760432829051615030361044068363081313283611838753353896147480350765143537669685925192059507445186378134834382332676148404552275509393541830649792223237200443712349449581833090801521830494215686698271821634545909691810286976726356664863531407322357642199394226604001611420066746772813480302213516463255527275560577372833015447527679477238462025065150430462574652705057841664649855348512486983242685705665252203837282727465240958088631554326374411557593746259079392612581276788295418739231416170617641085985893535117509748262465553304209043437473515365042637650185224013458843150528372375316916418710566551152865308611181105501691416881407057960008080310094610002931232901462691671834793138124511870720185649582449155694918551062644935824474607886639259452278522354902623150919688788722147638449075879492667924379833232461767140335906210611760514290742600227957399473452994898383795704161343601618262619206963098968967420164495774017867005414368765364616737858678635973300583644997140162062021802717521334037428303585932483977588362080887531557317270023349214038317049443040169999056888997516563963009443589051291978298248599826770389314571718109314248295650983078979811564132761569825425048342080520965555504765184028634401088770303869599968621483517367785861830197688756242872144896545747345941239911241039537012278042655653626689908951168758268535365545711380450657730467177440886749915589548331095695274433594785227662993898903134846402825460746127307803378508853469079749398701845697054307452781156180117229616600151669341602901787358511367954486265157226647434963872146604629096810651658328393360883485989143961632716709862146959049893779926941425872778183464020268697634773512546032006475193281381927857765129401354842655370271579874979563357508953010950917369368844079050811753803011278848517504594323260744893037435389221415440592554133969636000237209707576653771362677525463688056695757009806322715429179367078797737252444993699256281514069105415808863280488310826349472622891430082485373955538088320158101417223373300320747662891326689299194856749317112201482253785380767388098159315861078842395167892522195575005336602953815733725883925019815405994644242701744411833794849018797145383028577728244251948300949441065461054252257192442644389528126232717698648103720817107351105799677019694606588690405359512459116535383526865147830168411851310194928525885124196198948934555240308307623291199796258607793299422536317422161689173068085321937798563618142937186366326690128530502715658854042372691379526542907145523259794400943363442790484727478708901179620930855927432829674953870791607082199014056197940661998262073370809374809830650881436479186463845228135980255924891037584290569837299615750015882434777172926069891550344333752989955659719281108934628969304373774071401601510190617323038444476151836373638746686215513486042521874678078009980772544532219003687089293356451650943480846870386921448289547116248702635163916226026971279066683158204193702012799035646485079222763554394851512028564996803445693893261842635969351040723706392355954473222994681111874314797103870622578613352969266857232529774340458581129547843529735639122000304670623862831060830917386845906817975470911496047098475844079559608890339697513489201730854910741943751968614234054137881379318915342140982342137515053408965900016322357800512634497019712205681438090808386621796784307896943640433918534788758179454565996997346804501329904907105864424060734978216867811279838764975218480189667972078981311207377040259122672192277420494393272495006677161985509554595505236875976747038762722960291980934970519937897539998123304583783955169688370331828238577558283203625451169387795601552066976335535066506117669519779595015503242592712096767572810769890365707572068466873735803323602411999150491805966906967038362077483413096110078154997297807356408923177035708265966031205955938179239046687317284225606496341600710644698565778759405472179469286184266990695202677782862715882869119784531859827270160032346300214513732625376940554623260263291558471739460042714965473626374675785148717573758428827658566722012851820121533091442608521752159453835991365485100700947443598729678275100501612411836482159891773989319222457009622709429569253784285429772537104155674061792815151559583650800312972164098813012036398888548363461325954450583152265467314460521771465582381635971250493170521843734083892428297636098190998832301610459170765087268071792702169575910096266630006105422029926446965392589335706550441532300345634990119417856501427518597310619120404511347941116741616628695539537481838609249113856776560348555781792869096253630799426017819888759284827566605162344911434924341872439030961842519737049936406625416588209252310772057337845231106025743992677850096692674069330191964929491821223601192922964082064375775220968069858077663938632287597655048243392167011961647145820274560260313145185515879346589276800165990189470897360652176072790445562317723723411942614322482182683699328220760475121800276838603143052488306838006497418993916881648186718100221546869285367139404615187664292057794797828135581421042643660896914759918705990164147357571283619103705705070344601991151187220551837757420336462278968970930793452838909627951263096580865099714631201295549090334621781370995816529762569517453370673547852239731600866453865808731385033549207501480792568981629596493863818458949906214546919212292686422226563027478652854162973222635290927121699865193458302013968720193923065353881601813423104115152382279966608102786035545737676922569571832308025885184780234687323907469214838339057434831992316127814417733208192669959314320482997646996533983345367917314494764562122744958872411627451983510758653933968047347324189224351957137877929503908791683015701187253578723235451108558748480782784473555243958179222979896494138646238536458275673649512858530313080218738559020468744139934598973528056963072476996714396222065794027418613016173409981890138315525271510055641706158458589939735298100507452915242284723817568071973000211281967577618208437822309755983123961817925110273554729184544179425547902537673578108799242853641066267905872469868245533590350561623316443653276654121374186587671159119001925416436386690982762077655220520502726140971753291975881495981173683643045060435305217563389115193528515959233233773639725929971213430578268798649936904978565417962260951316319572506995775072129085621060352609483660628659583275391095463885216322177057321105035425283268347011721481393708308246777417443794051521061544983891456266226042254707152653004038469338875351569840141924774875235188614974690748380278708525435732708212075573781480399745385545433555605310830015797381818045574173149645607213563335426798796210821970952518626393966138672837020524491975928800153596004732019938657332879426209291267248664502563826102126559221818330067186682284848956475804268191726149341034769424566960656616220892331122669754790270005225015767031766657450268435477688221946708998916933373381365469290104066256988082303577708827645115446281172095861596450504405754798240290571266866088350303550118633367106604853899514953316498735723372947336663001397597699281847055817415453426712630740559518698849798055785275606752719173718613662708005128807673824230509863177544043829273032412064784561425738178990358274195735523525473344449699411957181859892751342875601160188809956831604719286426268167537319952143893378240450133551873810663508640817558816533419922946718895825681275535616565440073346949239126876531145608215077525262164881256593961003892965172295131159610768195907231111049489130296029947349468897979561847831907939919277491522881428253637129476602741867388430052758497340023732197067378339228732337940746654887383283337639449872224010361157340937889726748261552184669362121359758368963216143442995952916338093678348177687336567525646316028426990133807628901840409225999064459023123391941933480647476554911938013817935278031973784523930054987160044259637596895861410675039057076174729736224908447890406904362928322542192672141988078343787738862025906024850825930704380594040892747379809813565073583499820515468229321026553319201203333094966498053375703334549701643582015327440088993727810089521423159888189771825981216987257380361508914505117757569664331671972411761967611530671349567120756932692746790009534147367958727260131367835372875157971711250951769332041865765652371180417245507350546554629457437460833488018713225046264260016489514423918639176599208832891278055697308387548631326103905993263030428212690519073127596452145241356298880955985383998496549755887017028911915413832367009821535851529821099349135211560871548160779726005362303846242478586526525089852559057001447455307110895405823697030628870349141764705289515147930833769301877145455739904959433530919022592574808012127890137931588500302808183711548424604475871113242894131849482689343712066500465252074646666367123872211898344003777739572293415805919403537011552121334311189456784749653467843521357150151381523185481917862788366431645003666262616582198929872367304963557627098916395809606224717575894491081385358597865990718754007462177859092851716570364343335185713868026243660050185136234899368048094283360199260866479169673165491251851219964008724897319930452966531278245291535054206813329537995424783969878968277514874991120038738429389051597180190143635466610994745326868053010013971991761834398067238210331119551672567813100008292679698721404373577750889397886563362631804484363803474957051700299330310510776157038921824915905656606643457040366029778333975153702622334339488159379731724457902207329056592669739632131830928342092084173357398084262692442927351912287668014330829670174361184592055680323253757757163280981747223765950891653914748850461809238682090812018561432333055732740199403033114240586209003616664162121405677919747958712968455941565565890719421634068634913979788887756735712971653656371806736076919645898669111179971345296804543413586345041256603919335012602862910052432984176706044668438043143219025146132812061154902843451519122280248656132694562312945363197414774850714685242593812972392512672971480050490806382853206989392026904366304265669714516756498006498755579409279356358842935132913991603316596959548313752562178120068123720052957773406186094582643192958094255168997218373468142186972273760266350103068327601787494998602062840294784027655668518617424958555618628272670820065659526006260656280519506576076823576183975386844248630473713946885821538721140389062231499499826544831516158378579816750543101618046087797585063750932915597137271579318741324311651041725189941531461970055192443516768259837425925439978396585787996451825192830301944957451938037225288890534132819677636240495694806235455270981440364943336064687605078124199713368810340951152804263976952833661845968260499774915733934070621050281012538249863755276910549555753613444629781432865270558509029241663191895695069462946995475043387332004296784225951117713202506978913503988274698007984030017975998123773783567793120827098041579110029894430497354666340009375995176639979087719739946003487421654355351946811066936440741233538920212867456541548277546321707750631577387219713336500100605278937361666153600718285320205830597736736688938058049993434135153011312674421900124814107684670339773373873667080673984898611497176300610693623853457296093922691542684925538798357077883657893911552292435933420801543872758779793207850736424353842535160807415048182554334754620612800793051874368551266810372308722767913202430509370135440179381707259961863387703426884815870650234269318101397537963882311598280866780926082979913860009552298018608778789764640279870073541912068168013459537074211172064185423706034362800591320589043255505333201829656048031966484236756616424075671359888500656267404636336636415594772989893306156511598575466570599075173007159505872517155282797443407742919587690002910934965377215813526641086747770861823782939053123603892663346683549439554450918163614729803198331560752012434462220884634833791568122505026905764057416347954299204958300144606915626421087456778882632100794397759640718397588814764675861341963833558487222179252416196210757349119584334467013611933417664857425915083367039963950067059144128056647747273189308561416927259939649605803214151112649516019087743671670594596981312737056309432885335229590886283817601656399489637841252111092147902567736552202435807541745849614264832193462559572953060191704463633806295597427238986167442287021247070399879217999601117847896952484266229526388689902383916228535090518308776828193667598515471033681650834879047958263510288974394391533368841287478720163325425126357829699511036397714921913026259913182393120237197515644874106555725967339318931465076456486301290216849668636492031157337222768830933223997502689504874185657363520230433942899551368205190579499866813970832922132672432131692777718900946773275399806711787300714492235305265134705944649817778908566274826080915173575197134145261121733017867874207972596905979603860212590195577000205828623190160489402015678247110618858695250073929115295446692313078441089362806853736600584013339806777080264976830992215983524720802076214594638976511072646783439045285718564780093942080867173808272762132125839644590971395095919846211975170764075457572697622865938557839940917318416981448050278648424047634690268392052873810684836068093214491014354411569780698967769652140955007269027611728850932488184668203625062922105334284065062948243905878583967978978181736228167449676016602481585368082523846548247518110687146855874304932552538320479069761540114098927820728402848789446600295100534937371091351555509854236345667546902377606649145210367724042420055676829441683749284848972118280645467698521373853872746286515365832886673396917803497150487853486458867386638664627653062580300280361182901410910605314071071425347246587778536940977052127815285249867798968553977573177150498859882383278443645377216807657489366147077334008397460622833390903286029165598305477948256575640283315362204553209977007332908826131936368521393259309287220946010279658829753591223805711391574235193543757307965256217362813084506674007739790902669650489456584178363126442087647868522312997726785608846194621531970113466047261381012610911413994713505626693268771615069920788153874461577597624944475968253466634616658958130774804817435086817776820833414430415616439217020090994365761130664843819482643314703563216738140723366321290196162184052296138475581215569528968371587641764153352112957202384142757544231543455606992317293915186090327636946840487781735045585973108033463279578014240191033535981042623705343251196642296122640523611005054289382587722190108970840012740348857229448634651334293787454944721432970798865545229798037066920774619902366059681687109091158017065906962740606629174497496098430562629290218641650286907088799085090452529003998258264259799439456958624372515749419513015879854017481417123057461758670495699073120171002698643858018724994734274131784434004009810703608104594278131124237936140958258968213636783781416482714337520249116157494569284778371117526458328478756857553532033797040305818056028248281675290152470862762976683117852808077434398202496836344652741378605827486234869604702662110406071413748956087301743355929498256106812856025999218097474193159382715788688116682613479171712307372455780841186712604545718255498129380266879641868444287740222614763465198672829702632541770717077076321796425254296231103350942929479999828626463123929417334856151530030783450234319239562488535787956905921272619643885520467101947320764643474523016179126116882189774945752510300870087115374365328653235980449744638735869361211937982040274812814411091842360660018312906903643894217172196586155031491866427665456511996095461363548112793353285983641353379152300944917402841752076905211152023830586928898998578055023991222430700721160128414320462285532174625776985911228322907829475669998759461019899596579686109714161052308605744793392561302069778703417808009362025536690873739889576069580397698411961355543885247820610428065162851581451740316383780929780312422304893773961739921289447460269204138311703499074747070501334012992861920849807314927443501775896018609564022827708871008631691004272171790906458291142669367832814824487377888380664495873747329010149421965147810996165032828098894894440230360187804402406912262233728595820598580434626324803199040624901861841420379352636343801434800185441655970527302886224336710585042735236146301765964807219202255734959572061753965995958456850523690939678056229949346325681414379577269680414120149386915671440310769436101928275243173694695848028155756076097854399303436280392090180112088729197838972674799416936999028158151488707472312688776321996432378108223139775340609586578184418260231805858158547359015399854904539395596758825268775260373082221906461173128975530927804941719530307172657663788015285423812512978081472363242732577929686322857298936969025729484608035875406718310419642753909712904688312311824716891927001191972619909022955299635570031412708540331636769178515296171204639255988052269936384604616666972956439747709902636722465242401614447455842655339161271603163790105822621608319400298194406716305444643755557301101587625360757554487541309171850719666560382808940953455317158071617640162886492802896714270214673516286303013976470093341917393027438265032916022134785778008987047670013733068787030959817791212553327939966290368349897729025431351722747347632586412068036030350115080923467904870297559011733970100936408376315799909494159209103972846845463848420511671146336834445299644035368925515578002016674865337189221260772956789414062606619131332937772335479042665703247265426582758150093756844645309200883084659166567515498586668340111116073987323942927984936163250855472481259457939744968342713208162008794222063932442477135521605733607338888760906410137450946233535416502144202025241881592192129917208728503303465457709805938625441910002852138883470155710024665566418045165100919865686057105285308474318624424724181352081124551105203922572062757935725369338465252829896490590460316113299886555338657327277722168313213116223997942061707175365240144758094294768575454374492961764662711410945755832095181062349093232965776405266422289248949466301520286937122029714648750796002662841488154792764294215476111630864956179001796827325245537384704069043819355188663585061404799414701558064895262951030529092025372612741480048197833521986989882104036912786330401119307100845609819469373026063143011463192290514807095327996413037629223635311650047979827971587160424992288384626484874974326069199204562706798990174914906932942504021439247366835820729372382140526745305858109283282378871876651559374401653224690682832610705603531894369095554485119615822345492403277646901171647737325803860879794278944231899522988247941350627467255841192165300421215900186472776375341943595876076484182465747654798987661139408811344774228483203886159170112974911229021568764813603126992882721271351021472270406908771359635892000720249844252106117990171428744116289605885731776504419457655025046620774511929535092598226959778221513062206636093752028138392717603061186562869374726475797618230021928923451012936181709169437191959758196675683403660134204166702054599542794619830403209814303851481782271421353861926035952928061339067888362575439237548325507401740920412215793930839723522084302242701364896981609227651879681855727016893613229492028679185556199467637333709735627792270148458814616042652873189351542729331559403577938733164967381112897857804024435056852850820270812709051572222895327490575930040593290787972780593531889822933046606142640971992996685687489753911191184081382549130006536438093711622297847756282560270402676844800518693114783467485453400663116415452482996698457291548888511981899904352275719714176239365314990915887425143688164977004490923388739377471796647779090324359584723201648068025166006451794678700834028471219721461091257611191734646097430167932885143349272101751238988780942906081647532875321998798705182272483567090021265451935313446239252619791194108701240423390901790240889453773232292386289411799143466097671213025204016381997645606965922479119919555605145578242031025654085790998584918293715070377624560544558062953483157276695578074539238679257895809971302556520904198465934496837776078570741452673926488504859197056351695840019962635989487426399025266677720012592058041642274515465616529830157943173773613694805623083906688271436404604353291052688566366756899266101572952519852207907703470817312317189037178445959869686083543588154330261443004189620534334498101860916359153243621156581370918705776536970109027718703389849850979257031407839916470047490985064563531414162901166650258789531877250286817467570132119129281441176746164704059458196341416353497129701809533657722045396267658666118236016533883202624698714949007611408216494511184081302497703418015403945155666438185563949638240426320074961341010191087486033880397787090222476907079702246219483296040043914837246337011608258522598709722663866608591594240383302916502086896974329305806745244716127830655019055767189114978717810122871221621679574654886013884929399816708935400576699356554826759159416712082621964915441517352499118838738101913339735487814455399524675441661002576015735473540542564416686383515641685713427153935316589833829909984068899330153442193181156231669221980746987799748210974920869962787546797773495478128876850254545996818040599072782868041381258848182852200097456331924354021797161575798407727677028242079974837444081226641198330822955640209834413902366624042629353275206421832997774447824410994028979076123732773621260685623989569585509471857394528719972781126513510700696672558946725671933569213323889092035211807536689028821574635879548998611823982625070139461755079381721293155844528968662651099783276756532126373354772550992157990648112042110001668899047305658876881957961934716289696473992469850656362523124664538240020323672596583423004628585511100324350249880089218469156594163316174940526076457891723269574263099291566292954880357541923287694176713604455212859618157259229609709697112205109702481888570881977813707129761730749185562569356901197129755920410361147341540873214828428277233864024684189647302817415260033211697628220419754513879588547939520346167858749057835680810060726277156793810700656999946694384959697733390183749714389770084236214805762886858905045191546984263667195161009184403894294931885556784603968539459283712860628057444945370672780974295118294353487754046774575899385469616059715697549270346818752230436873172300799630816393242325894021781909354084875316715916928729970619245600951195595404730036513671177684399893350908625444941586529889056828072942323611181728246614055061383063329616411715418224156390016694177378099933436597865143108076473667318754871013057157285644603907930141579103936936003389627312138995234603057803567583464847665401526700661003578836231449055984577510825052043154890801934807159153638503937101332970101052286590563181932254344417412124377034392623628450896777332669026921923675609244018236333185394187269521986946872929168441687262413663178978250584884093590759290208060614015296756819974097756948600663692124054298789064407117694765649689587918425192119731419693749219770498264619262348874905626915363258461935903144435844626264417306873009972311110384938301410183671678176119999588615824685831873808251587051892736094463813439240024588252731160539657752646973583007649573357580855230918992601651111620257317926491259666810406768468457730674809532070180177684707267832299929890241309673907367567114764073004312488629518202589798302744786034970616681109287921578679797673665446674584337085892393991161287747841517927636893445044565734560018343826155976753896300240466658677105112614979271802192317605180633715159243796115947984204056413712148070340860550649569582450424835751970505855282795774280637574005410204739193828380358449356240401395611780691908265634310374482266570194790340848778813890871129041106235333813914606000181124160394593439059233043631333606912226729055284871923760830640821632386682948143895397006221338343574685400928793098352478303221303332827549697375430693210426107173586687283551239821925507043329293067447492933764412933541215229277916733939466472403039212213759957683685079172982538601871936411682871972507839457948541283671495801649838120605854558726636858519129771632024823616032821414562871037749620585469488509158876837660367380418021298957222398883627142424368712071684370258323884842993277157876146049370157993882586333068293044643356651117244819935855044666660160848049799275860036504048949123976733833581225147140515211087490399462908999253404591768790002799251500482462877356827004659550054160770274082170215565359437412798131046111556287261468001421285885139000696577266796207791684115603463968055499306854026316823808545674387164701814879409970558917902943797294765273592586990174553291720368792133104080178130176957139398962934966085981924540793068524919328505904259250930116928752570441296567714425670010328960653933150039158029159766369287412001254817863308425409014008832866540112071136493810455320503974083493837893462755498219674265626703721359484517636282148994254642247437530995846523495341048650475447524192783749314168803972192790233068187408540660676846584006422099453010444747491389222914329450146170815542801190524459673248233084516194473935186076657724535813810193013470570404482622103738542363139328005510875782941334510773015671827516723278105084877852376539649225308539167997452419976670177917405732901904396540165975322478580887251532926205161749062735024367236416569076283781671091674082522742367315764814115021960520611923954967200736462246894165167389663513656479156688236898888262722535078440133664590550146001513980020867413396116956043757262759194367959497423359827715595059737432557964428244192209286716081756676191376868304452284762163237554018301473003511281237174487580618909224474186755502628318080083391759428762779391502213499951056991364922573081744582788772929698660304960515797386651738231180382810368161633646786128547599010475518534839475171334627458198483643753947287833633523174039231375977257331278545526931757169921349747736268309627697847609826361134946531261262684287723452600077230796434838145949058246115421348020985141712117956700101064702334597412179095843663800858811202717532505896267522026111190929446434016767511816985337280352225741004579246102794488741068178146636718677089775951690321725588953574916544774386002517536291519635876582847036577085282300069636882555546826566941577711677913457091974732392911516303687410656553275996349964942419317953619885286220882872530680213836091162507289523196056236410457073626525442087558975000176652690078044019510291996453208637909700801443988236291906547093679137361652117679990956616367032921171687206142386218538916938332492030476532765288145203652805112969749356239438397592367044661752887618432833596875707288169140655857022989639248244385778846106286480887315379877262209262729410626635727719035806723951751053708091316784648841199715010667918479360898316273850821082816878902403777028089218245435176788950596612812769406891136762964521337558589976140957552012058841463995619473311439415565690614152176860182033132172689036315609300570337148660291827417084128353186136743722920805411540618915216869968057544097831673145747783883775363543315474351882755538941564577270694929555666668768021189076953611738733242903893903364072932452880516783944029679235223118183433885288058608615750507644684539628344579639366316935061055140789116948554536596932776011915856041106122585849911581088421128468725186678300831432291641351890286847485412910339874656728170858495405112957176871457279233231940583716105323831506376920133400123288326887481475585046424298318271871205103772991685397829818859303119512962371559382177646072414537288747848901404394812966517281248890510007723936267865584360496688413366382957591247749427780976125940350222620529721427849030646056808802048525401710033469698973478204104563546611573534744999645210207013315425273666064178898264262150911105104960984999097310674013918911601029655925920027379718888059801631591802262420375869553785298062211965836347475707862174453708096496909850240613139515604497828749940317152888478752565727146017838683699432642308708980799953230252581842699987065181620993073719114762907116816375075147321875722787652208920347302110918309458183199944520322531457117300116023844865515995052930859250476971076730747044432666793593282771691377762963314080934743349959901088615458486379011657965843589803353159122400846932918468772408671510676528480275522068942872446592364933435314499140194819660171168937028272945069370567962377790723701980239439512423737121100305820659091520660575875181208219201192737267178083879861378689341633189100205716347324017037422383114434741488323051100477939269790062004515971208544488816940032535172899597452640162994223359748470971965195231770795594639604599324498508166396990450212219635134269079847073952690140341513543096484653367610118750540111609893643517050602483020659769005618168764288027855609283867375117568497294954639990894454961582040988424361972744779778638528936572642053766747987519749851597571389925021798046565484173407408803413893960479489745352229242242043469262956261475192941208111952040511388569042705136768165811331213914672204057217339611846030567860541968910422266301860616595700284605575634875744747944526134247588665023441175599339263504062043344168360173128127887865330604297930842088617629003317455283262338484400677423309527599443936576028368391265856610656050231957173197069508967141613110716134754360669102726741709546489239408049763819026713272512132075096712097597248159734292832534848062905639994564267361947306735047961292499935590630225845731583452649959554478783096115920653530398843601941922278014555991245002782160850477527322072653930314863791470238875245991270362221613884436317165218978999215224523154335645789363328337305690579916528190303921080477096855630572041862839819621441867408534781070050672971948956265635298913594246623649817621019104401519673392683555420806245157325354565181310387338464776699318231399427375378667395319913592314672466653394509233628499928571551330799830475808324475326822040103232700072185767926969578671855940385482176333227614303350242480582482140925958919207803143170502853528692684711569788600943476375980952932096728436769643318451553598140934360406204148438586513802133089969741518986180918041694087852734296703647523800462445288318851363710970832739630128462204691291165409439108189856282041088040109695382494535757197770535775595029202703801210706287566701566368528914450578588577101265298495299111007258763961233383472839867725650196014939520656318875416178541748404869607431670174308381583217438054548752646223285527888492985304916923645546435295154990622176845068419362659562463105321518476491657881603442962522615634462167774766934888465286111892635605816702192348522302644072002184611985498561006247577095226740766070607013020347766031128195164550815712797635935760741567079656648491066210292889231291649647626454855142328787932822672745027272918394202518000052449428756887557214621722488029416372664292317441785521076109878239550279042140372060396615991797944376380654808642483990524445965994750748309593588419893775778813277301282367149907129829701073253289165213487081956671879734169832159761167532592311145247407305973430380798593348675350685472807130114044765609997369071014266752761391819673688634693083220216621554320536652088734244787343105358991432708897243037495120677742027427175537068559847576814124109759929313002965982999481103945355471564169610644746418470809976652242668444250235038023078752611070331467370258605392391521712159110839792921046610282139080636906635924535132878213553512393921685207808394977323390323520150633941569399402707762313232427271088022417523794965901498565748339011027526421449215171599383983248069002310813365238469523115647159772265886551886398844740253642983516945283897550517146544306515567968371643693067410846932031563024158857303221669269550690588899600826908278324661152711074786509478269478708560747107125975335112686353505437059604631256689558442325961903306341970206924787295408196412353801630122330478413087597882419709560071778914971064867118194800510219409036371458655908968871300414698214927264684517620322971505978114042049919600133534167625477912477910331860397612408359756890663204928990772010860140854708293521360358913418106813434941359882340494339849663177611889545051204553688224689570838209504474072366512509835991084711436697624283578773530447968238471652859014322596832797079740075067399049829875617359408399920648786399604116919459122399876957461200355573648552939680561229652066259178388323358437794771906001522081259523097759634110381315889972137974107725614667911196397903167584958276448214873768033643846307766414902379898158201598544931857214152835998977428253042713752832386602429772481560487429186393718223405460054839318937953869596796021077145301847255094516662158727568210893574725473090312915031098870070274634905806944233915593643627672022771048558085933104415316111278979522362671880932323739108506657098619775410968157529233442956290270747157415777638184417761095836050942324378707557738704098995282772354450084462896904302951430545319122416312601626922455660697249319399339532064725022637036439111337995813988454699387991872314333594992573892884408315236486040372126684633387387934097056853556502309190448852192111569199453853887712837683140051080271155054758263415742396016599830121653430420679535660509257712861654608270824920675848281727653144065980173753213602453332905378078481760908972614198837720015579754088903142588168411516680843538308716643457426474418348908858963390012985175149821278324242920651772741376129416167649754651488286501585252719826031435540876525753479566568992107325965895176290337320406050941884850621469838994492500829205259998673267714859377058693178695716779022914507733654715619327007984683716368811467890043411021386277214648320152676529765475534923446202910892349082856320876523554025814591020477346354489393868904514985548110300860233909718323216059221073647979462614395632093348906950530482445263140859465203834049006317134161325612013319760006561051227605013758682871773698910182833180592278807883573865423734415173957634915554910699505312717596942529302591694185865260393685221071751687143172583316063383956237898623528851779626677454879325594179459917413301929977580032169936453690124914526787289671316568854552411146440729763818742116101503284568336883167946150948915347906749437869967833416913332778007360478975147649687561813826379656746353042918192536527302144277247012315712484380613171908661046178756038129958844603012418679858955441800818592328374159431263830235921625106526839425671247936244529854583023020217383735443020173706877567327939330377690789911925418774654593693219716871211143208920140193358803620938438686141375415573131994914875997303327020685286948516517888865355803461032905902352059216396881510973880672713555685672295022670098687348242237500475016870084129547332055075585041067070884724369215378768462565019995458752995279921544622383281137566375279807991464019023980808584901122856161470856363295334166875317283223969815532299396142105117965585550503515244292178139839105549137864512441461496385711242289692363637469708733297344522342839995382844631062716582298888002548444108457612685905040993099597251188711925556209875670352244729302237785470455903765826445275705892788020015493837375451662065943205562669256043105298607362682135724389362132798260621180728714564499398046619107005399256746714534339815289986126069147741328885825753577083626399220604993277687060915525893973179465517215228028329484410740238646294989917143962633964152856940869119466530075230654186884068055965589930771643451020145770865755666972179491058271966466244178782276003440516411344093880423014004076265947597961510220083782863210701739654115508292487496481426235350643795170431904897480313930230166294835261352347988347588436328338206933469764867350199710526452771061973400280339470056476413309745775728081916049370170580140812379564240611171775950929116919226580203390225246183121948623123513201254485694262511560195950182680928315301743440486932007843115395635723659535601795355338308210511220589221867054127940210468629148533535110090010639966694765724463661240917964033216315763444192425370857335267198284118346091029171430805321331905658825409514929429585585263586092461090808133320321053289579457179898214356400943441956033957937052577202452174811359015763318020223923867004726600332258891871152666498280883677340847389086071910275515159509140023384878401461236353388205179902494258344279787616154823102139325823418621405084571966108734214186569692772470940133011565655969222114890378507426883972805755372504498739854890618495765979180138533532755169102388746159048376235921304514975028763101096258928713618163899423788738445235555148305586623250425204205189073218689106013578912171552656453463553453869477754437567998626922903663123670678449839504345036226352948916630119852443965114506586353475702235069683175879084563334906822472770504500119628017572409126336173793712309182575743975894212905401661453883110201138539997758671701992946133162677524156810225746711510338575353201046635695664641733700636810124380608532230340902357233279531790578664935445984536052882297808202803752664884271503212952049887356304516130060196402631141475739119575623857767398414103532557834384075812762168440197293954259629262636065583293329435960041363766840314284771538615829876088497647952918242051638785330392269906995260056757888349624146212894258764367354564125822417200823267149138797160851340069078561076501079335470082161119493085145137275732946856115013379334504930714723094918065181949479037128482920508877636621769380577842885088429449041901065241226242847390293986508512698703258558917931532052436386111778048755783700299696263250117982637849047613222661916687274983809005884524295850990168056705980862274414420183038157718086483030619719509093590069861613647650542399643870775741022965012100078814126616648978228842415601162260011267659130800974380070277443448563242388781053904399751161864559956067432685393204883156442042855880430220868302028253805646043214080324507755670116487880003069549431128247491931888458220063236154037243615930119865416116680269073849628628682956184138162931968217738206549289370799715704719260268428534584203509744993065946544892707676493294814417233775012367171531532259772165553025770057337845821412751915089248464507935169095062879418478780623618262725191041723874127472525218469378999365252667792550195961968071371720912073397939652280902217102772758795759365958089106840354599885201571228762307379614688595177528173650081227023434601553972751887172221752823063439277751142911776169632032586191813126825794770698357554426181650520865384924121904334417271810517699567003561297051683712166176726580304917351021732762538780924131348970116973542708270331660759179335832148231736765051145194654874949612137571379652121502825351725346027914900011078401790982486498992804416896593751019017322020900687978514278362981958267381835950763628136866057499424001286865347781953268361103298032818668771863806650605357570912597785166768071447881308685980853573544136131923184233478889738648579324298661703737663404162574175056268996492846367989304808629886301865223358387401018709855858075446107796371529464755633596586819289882874931993722118971273846829391116929984224714142138914560927970216371637571344495401551009417231584070246367673603613635434848000952349746282293475688705053287337540816619501956435266255629994362705529560112882181757224238457544774729228167123675251289355681258105937263474699921918590398596632340255675014136814380190515416151105043519503274081569744493813669494824693391628176404662936274482172503727803984844239879392974135043677708890337959462113860425779546486224115144551963826479461330672456648763586490958957918148024683928413455694327291465653647864533816189197541664454268499647824443347509674382475243505044737156715670395750225501097230284591925269571199504931683377736183616330792214654412494888527318293372337666409918573687680348077605163772131276621706475770088806334155240390580379617534469331302173686338938820417302009412980596117138168135647021673077136206691998685283220402133484140797503024375915862858145582485998313931151060217103160508004608174138183224853423296832357684998278970303149739359053205898662224205449870610275325082651377480761177383560925310562230595943032207612981185943369452012622214658648236984371519514562397467315573093857342459078794707931276673640274982640452081103174964397038844774434887387201204909447717614101950372841208134143004167440538744854249172924869636177852522385752419997535623239868278479769561237792144255227655116126750877005652277865556139192262685824357640953257788171444390241684822622127454660107597452451712656037962295729365842817098443742370506109295116019169069863283343764734116008668862506428495255721925522428847981833686971015947173463953424824137780813973519315595500066564827337438114883816817084864932288947354529061044951149819784831541121924150221768699808707560782175363433414778986401279149303907078490231830719476019895209805132085247354847930543581692890550069957147199731941603172951535782915472917608239432563803056666028887545603283640070326946195331898033457531967182016266246824305048660794587031214353726452644078025712228385270936368172853516596698550926183608854235973308993021230710288302162418565868782909170926728010178489936583549207905086422998041595516452763570030914754247479149568925323714358801025498011339769365732472613586713836801164653338478479523693965005164695955334359143417045742260710846913600863390387085133260499509362535327702570603846667605332705224094754069591809998662709352786133393651952840254061999815723738149465142793941650228520305771410499577892581755881818188408304727504746788965454722240657089163993492843721119907772824219065055025775968610686502551444230465346030519989973876098414578290728442964022112611535327741731629174711365503616849412519750479016032015407143588757678284259794108006619396393334213326862070658874501304278381265163715096926342161469880341328670774819177428401166999886554381015701038130931815566254384326446843511767339236894985381215974179673826232883507374796175632356461106743637641388597437869784737163674279207572899138044460284949356282214194972618799708454818391068409505945606026613942639989868081756119818923792746897831430531138491190499814841877843886043520450641283825786219708938215653903170625957929372048909223128395980785130154323574751033825415238133486021544373068455267634941029496119057215036320722882966970804690417558040864802545156043890527579627017033732598853466196312425955764282002400046061740897915733245360681843479316973278897984637090357433031246833168397972891632345139182193293366479888738987121673242547996219031705900100894961514087418395367973970693907980196330648351096291724646222475936434694190696378403265976303987058699958182513815821911696970351247678949568441660940320421498911181678776688418764102075543881920203995372830685536734214130013557627768742848711808018608042669224638612872651089127324157773705787968734382344503465565257434899215946843831454296929315328739981999034991377363563842134529577483565791969805357768595948149815554252770613229235183765578862855464145335700893515949228025883556056193490102562861223930992348361140941435561240205662549285899158257646432179381444209166221845223009604105630713210313245293388071489925915363692671118718531055611145256023930016508366646823689586785105104635401561969669092107928690173623370230616670251376394604624439253626743001252171431433322085711904573179335742963913457827517405373368358008746479448884287239882694069687426068222710296012155421270801340210416847482533231025162748013750902320626049742674315224601048358271754828983265280189116121934335654807008725808687719635556659898327265711063103381351203460059043811095324065351618422067801643283983649918873314118393563658354767632246493213242139445575152439461628872356701882647749182139552040442487651973500276004299159554870601492768790453990053142942943301371736096836912489498480779703816297971063147615939519963603467947759828777960766010441774985518351218045171281163124015764360660823924796491821772283560216999011065000744186112054356844575798098991751722591072398867641053070938840156679921243582066896335205843249522648566220639726866774071187983264084047092365499344710345229658162076868084564969351964272766767086600727309702899871539952698711210289127081765423405783712096501305809078559238325013169075407392527949004734187785676552620412829392911251871279472191681890763267170547060353958743069987885406320871826505719453919359019371562033115193668989987027244863469122287002654097963545644329684922861818403335315478404233484426332842592931761531419385485242999545632824717005235087834445695380847233065823467078200191388373552000379179850376736412305931045115429351387002900131510622187701146304242779021537833172366988749365446325600810437078265390075867997403993567901425682235063606317194187013291771529470729227018714886735058460058888152053750984189067475632923532521163527981540423690807288614374538667590456477263524698145352662840772427620619835733508116118951261730975901768997028098122230496381008579971753652095768407136889407097778132314237623918175684323878289989183700520030834563946398259852824302745867967868365993771690389953299810472790322230056054619196829072068491266487953115061414102712563403913005251522321286150723454670020239029032904880516505644298994384091331900344040473399754737201409457547107401391895577060329555971218257381454114513410620546700938257404020150276756420568075859150104621312004293363235836191931689047587280752070980270499174392446652301516884909095698270801746059107026351996731461450841711557868035388134298987559830121051770872128574850023804931319740126940290497099700409345956338541576201158608481854989402891915069905931241265513628146822514368809821400286984609841778071982885981012225440066726526465925603844218185772745041228051348150292233712039604051631098213986386406355003497199961535698289666885308696251181018596729108530028635159974981087517731275469153826092675518761166655101569081891218469015404445928744324219648402162005932663362687737804545652916816346089168787462646109378659659294396940159373041452302340858220043636859683860502748687392401061094080604709201951609204123307250401559843603888813070292386885796394222442982277347101082895297197263109071810098804350776780395534429508896463088790964765414641190918660675539252079524975497738366089253104054832131093792956647893327125599616862015350264963862080833811691020935523161855658760734036771713881801037079063496625141939813134312500139851775955652969946259610917320687899708462966970833926402895035507234953237515297146189588219578790959025884703479756758051939004858118985720545922029702411668028588577390695400956959749831233405680169758747452515409230611242718580364838760746248954825438470890274192627645165855537276285594832547104683380037546162317985645785350999036358541910574448668046426795466986658918137054421252540669694416396828444339082797903166476471551940447487739602522405189407704868556438589878600162269740792800528431495877839789262195776083348913483372708369533588033924594032305187046435625480838950856880041565638956764663004079242252784403550349580222703144576435965154836186959446798540922507669168725550497264796690227627789882253167896961106404297007652841184418848844836601039830352440615535060136361760114324611290110089501497644370200617625724772452995150269350588724738432211013384589586891939080893307786062602875299533562397245102675694637324348768272781509363853533583991265702287421813148459084258439053674580944016761928993295800234937909826482148373194752405389939603288375624807656192595351898174075697253306052447117986862485429017797330306837422301230323662978364772230731641047283479413187968449831649451541177226102838005877175920354204855095416846136367982403778945863789327239078678092611158691761869650129916313701800458007778960707849666606688620008558744863319520272489561789893735709975930091474503606232677258779042009481621201952392237887029048758581618534872470957875035689108886056020158214253000628047300461418696173818205229519800319042744397989687377497593664432936226145731392330192005001971346042257766281882589942607932966807357659649962241104159942458068364697275794576337687601003290020498557643286089007295543862167975545679203037490949860499432158661130780216220106689426542260927961818906650181019313861635768476208134167418804927254969758951475423320178466088638955064533464143722063830969939296569582145169929741553507296271987213676673670218043328212788205379169159944615866907780465010837909257667730264833362558502162978505822547756138972560223044238009957646560805179508552386325673028671620411142180401981715059918403973689455249683445333072299871501234542875205318023377057567742051498973038410004650791176309425197199913295217633434473282292985027070792901104646346815975086666233095163283462335641081808293247058403957032417690698464280743851840162434557284419736086484139496925531427463094294747450870242979786695387968991478419607938320714830543765093010020168521080519539830206253128416780284982698203714319122413911232729172522025810657107976530228533744898551152101499641161644531633266778174535416119840252058951154267085699447226167564816868839667536383082681263753671031538299103644835513641917594930644654529394084482003706125898396542980476475418910592600067330308288796197278281240429703768175113218921179083932330906889380393515209542557462643124420329316148015997845679960094328285859234816236884139580940762616604086638655978918750617070822191612986000199511921893613547977913006988928668294760910867409613243070583050099796314081056929463669240265448394311228416655695504266760966284714849158643896195879495849837589122534053654033014369716956637928803068650896845853904614013590061798452347400405334905768265054223386577371711064639833359117918259300323701118390915177830003609239776227947559843176969996450613239110736136066933606371431085381258616419900358936334782522635881108362876377897221057731811395714681301949071096456244175189765123811734895448544200256747098054140740821108816342334298534398606434116894291394687340645650913670610062201904626602782772902760541461608723823139569324426020175132857574166069725902828596379159021585149517409719886125468862939719407008383939184765896531656321881374951195044761961466673326676281845731140105066759352849603421805582349040723398243127741050491757207840240279127544849489948803884294928933877260020851238981563258564138265766950627908921986228314943209638917157677986068307951922133588627517771868708312415653965390101201655003215227988970571257805148718572429954749801012801987721288650546328557941340852490945947234970964089082527876133381999260637973077233917646957908509733792813900307581985099948062706274604620019978307449018136674426116555794119521941795388325333176370299531325605955260646213118185913399411475118277756332182497369432303905571683336198958566386978159468843970540748698961349737326496672263630252462755800927791529650098439019590374987455500968302900933778913531242291875629998663334212980670454280762293191073110334830250979093646884498917587140802705504116468689387493544637371242050130352192829700178213865111222103411202385481773238045819772225825119174709047610841139464418766257988125132058555220492806376376800364809183812851041498454080784218659624418385526085082586109783628299675649014853895589977035188259420104594651770663905326437416483781216739500502493556529537561297885345316957669402491811776488622812892383478058658116668790753388533203011901926972227948263953952390343381599704609911778185895481378161554544350721462708347927310794972971451493553176322278298022218383046738789467572617393723722921320921215940955736977816439940077786399715753904078042596272617357861147048328053486127057065005499957000912991816527117921870705209167574192903084701246071665642600975461595387964665314741925707715428745833352230965790395050933406737409429780226507526915154370914264540481574483128368364077121704226251405362831274030746271124410581582514539836419719453717211161242847432983465102535631914092267117012913547226825613880755101481951629209980256350568000159546985749181461754105672270871090432661153559836388803250718997462434179180182120120595939583452419030731076365876832186046362712960409230047165376577713402705162557203094700777648349178253711013192711926160467120909357979628229729392045070054546165920208603437944204738872933765061515961116888592933864181489453341246739264132489437697386597109219284799975866166379289333054775925651251503530327465041207559165321830865239124754609811793363319956657199444659696837099584086696065691724049034145500641126442886275093808283263001520111799986717074482011915953893720847793654927688967671643153658008711941173107409669967110659670490802284539229186084220296298445336305232430999949851944700046144245319143137231834136195264995174081550181707655055352509982762579129551346314132230102566703679833871285914221081963945815759826437943467993515413221218037906839741070205683738014939832375319739925181952483570332476569347374086579222046881260474194641087470923476941673734193843109698112331839275344835780540256130745349059773376537770392541212622299299524559403972327550558986159158127131262029976461526501710602504028543038988411503896929552185687602692244177888077275127265200844223086896702688208288379580663711314631387539157969214263951827293284244030105778961356856138565580644988845360898979352550558412324398873333755517567866776122932157079987979698697421792850295867287552348723309537294319946012026391423558013505400917031762193609167315486514863643315852486165178281389841495438843268084344313389881748218798106138522761962867309472478583947323557450245633560099275840003773492022198290135223218218022640112976762811313469368759565120391197712408157744769883554999396259142888396781999444128006762834492229035647949158598591118897035154728194441589431558905508691723118089823246411874787464489224733208889991525164226343121925244621851549926363380930414119523264858696888794694981701878634613385707412612378359793408888365858704472174256145321690681188044358735762620074156858790905122578024331760952724307919790171669009964184887459656594276474529236964703245985641095622387148724730045826829027998162216879973196805901930278784184150994312952147655518875789453455524886228102097183952449308355995501288099443086795798194021426377413043950863980116078223610231240753858217458745983458566921988775760650970461470902979584306762196259570472084074650126062213731850859234469788793238243488408175860309485280508116217677046454226776614348568871814544476146481802997543901766933871001859602563023466750000141644996633452154562581112628310881090936091305574675099376194358435170252367053624002947309830461631777592115613510671969444903015845787029523662599004366244977590833681669290038810963186539681774563367104446171513043165713479859333099274013782400807572702602694899325275081194503030350869443445504625141842424078279580902910012482470255400819926085649197236011046108939281438960697931357969360841517393835074192914247578312908316218239155508744851883356632155073178338281767296055444270504071026112722825581439166203486715585403971812917909605211444713582005241122825907013920144226917977219078537126744444962482152867800967431438160682396497784550010625137476966457952656354715152652950324849360368500609620339155737623757309007697494687050042606742133935366841450524338032154125261889318226100569193498537243851653777706753662690620605789445809184659009349804853407991043245674313814514456045469306570315348835466396777207757560120383610865038127360643375344990758869133837603859348737934154784530306200851197173124427566628738219729865039654231245665232453099874415611970414110467617345052465600634830055716363461357947842395169694861533892965916422992261357493185201257726837052126536254508620525688903865426418348091061911233465297937730027041548369671199491100891819261606563696826059975787076780244618549629851132794466221278809973347817316203598063416800776211817016217049256343628484120188518670058233879968942478141901014784816064541973595688592017655615416089465312760416317292743643144098602055555270621573156688370304411370933481211133403145908201285852669461527109625781734538401690354913634244917304758284074480972814908714786618277593801485161737738130603590481450608741743741854911283567199125505663878751558464459771177297454417853503727240261736596942379495196237554921248305902235679767741029744140811104432325996034605192511917650571643072809101544298542332211862391915856069303096437971768826150793752748405944087766756634743066898995750551103394737220054150087244920336244356709147377141102216205593944707953380257791251349426007492154137103598137900144019412580803554430159512624978869566726081836549876788533721377714547628346794607522277641683871540409264307342905585986452853922205220331486660918341990667803681748094932948476588032429439001816478620303768204860944999427816215434578121865351296943933627146516440332872358381098922846081554088396263077678643941251114133401035407963042740951418159683632564139544122894392849103129427947589826480619562277839568271613844016977358750716724851144826139374132071860567627244187115770639287910069073660009300018680826314534257595435387486854685495651267075036958510231197809989689734819330944745078660205660126248997367723059402921515728130314320414793414811027498625056865277080053550585508212197218024078715321454683071166293074694177822815971407823939849063650313139362333001812309461492851045169622073824074610642644525829446471372129455114008009738591144881641014877494446089942461629879030371458497799681965178071453377339125410877707724933990872038203777464844917511018526911392456980393175112103579001055648578077609663945324542035629388184288151688579495262341358240251926391268921573639234954852001477339760981182494650590327642025211264995296634913697500243917929929894119252115169715700187740034039758119207008373623442749223728926815137832794246016997063289934842075960046508505235144605501888856049711574634748363971837301195744508952521066890193226878302433784063337570590537151074148402364487559775441852397487523124344164184058852359748356508455880974054518205098792451937933756576998360348930301217196884963225092662763972387985882596108747129972090705709315631343744814230721179432711084450016760696909390830876197469740272019721359818278004474017623604357004091929349802436933585722266979139741896233127437454114724728216635313414646279489235663336175650078730388880955355364762108435564300130864861569527357632347858072752438694127772278267504230479625509624605067859595134606084076666205995375993020127152220232579281537346137458514054849209563568434406051968896609371071728918156089276855526874593619216072303041428787783991889139859778232615461047781846945060707842886458869885186362985105316785896146962264529285864593232544924772239987634496117482553996516400756798341974750512624075525398934805564961409302846933936903462376151882490065098335109558584080064941742126179234110854198945121571496286340882080285989272907852983956509808191151335355639654918739152641375275092144965619864229902031124314583525592370972871211891877173719459208163840109547822085839842374325894802952393025800568342803478997299309746040554667859599668666798192940121055364056208494581408597508451399281824129308260180822971666301734593274230822761026730448355389146334389185599380396361150154913730545473909052273710886563197719285246841660355148103450318929378226816738301245946305382442509224607934833830672031179817437719690076209049554136557188351291172260028285710575150805199591491545149621097587146831851153787243778149549653509186558277154372960501482493601583848034976787306696717541104497147215009195078993667455009238901134738424611306404557118344456622699879120850312460066979727228197213321897792032855926643881854747263275167894429150191785629501355452413672467978817499960525469078629009359972143229539324214085873212822876326426039277281532498025975212874615825066383256869167426752610215592411185326060703764085389408965267647696778160124855382186395158641558701912724227437200451952784610555865747154253547520251734327272690092440000099282539684406144104868167877055592273335712757253926361119022746977958508045188759277798391888089957853750917280333640336441831119502560807572278901355475814738757864819771684650180153787687882954759550415931019075395961966013191658203852672402133382312566133177271993453054926148178456434191072070356981146737232198132582754574831422471487706809978043298385013009360096760263990026879780030062254822482133302968917319188725710746709379381950817184579143307744620050573507840402244111486956384407003825584512168836417361710551565371678279829910968567493918775150695529483680637528810605513318729269334659478675676342183490987569886497982659425519133633857828303477535222742371231343199066136915144215750160601345470844509058181111568746902404158664898671602835007155438668321009322289978447433451881557292412608832450469097604007729998265797138688450901851700851169825749434681157269940805537411686757843168721785528540470498615399924715926046511471275619649058514738186923800837986218345840501847351284533584019957617302871670487995658752124335061661183707676042311960991477457594601798570161999273004362471494941144010228366587236585165270597104925030261084549141187394351246717015476421763771909916893821230364784622032585691126521246029767020288144297164772575514144984348906500093686726277680261036249255189111740211920588594896063203938066235828263779172974065386080444487184400926273777508166390675189447353744151850899918397496857075012974880381759353403883498503743471900093151710662464303316502271360557606057861336895163355988892911541611547413513367579259746151302595515897108061780326167020697030129768235032162055640538587834225019260238864710653327637468014997594339832883967335578064145922614451156459652644538622754157701205528364054640089150158186169721672299361579445486244721048638185274277539168640310574637742121599440860942786144672713053944726206289016039396404222512634156704900880028001619014380376812746360097871351770936030363058951360954404655468708854564962069635369092464166155100027488371217929783742086143559626035842881120943810414868059792672436403780887038923608474843192655370240279146044322057557424074921809108592151138621501395613393449193110911783464530273762531616644877300642683940329986021876519141336285612703955564588149889426521735684395211656108604990873633895569524697326885376506878195693692826027077983824426182205594009920044110489677844434452933324618746115756279625776138998201249956751839205817473780742310888234404566220271968257925395948370768418231532593961343096694686935066259268603659819039110880911049152211117553172993487211282524990387633969353502491540172575513676524995609112212242072860452680012052155197827163057392412033884177886719445630844815448014375834551625255170347563473747816468851551828338450882055151591460712764137905221387358583309800060897824611702374106549226144513253812647620157522582764128884212864790902932744593327733077320431037154547046265850356213611689086075214405070465378955328657333044557258842750697434470525047176940213721241554287282800339519486536094310870833944423207337674789807664885683321818609080326377215506134791912217233365423113239003577478777990029466603997227173593801869765643399044102795223581702049698817072967944365098825850744691515896229095147945742274860237779280237715995006845983897084938113331429164874308382988297182926653993190585058303958835855665644649288553807808163942111839828495785688609701252863482542270310816038820177794882573710739905189598196362410572050036430853183981801175190992078846708248421256626757942028429717197775012600429431341742921490381993217012254485537609713209382936552174397554555073061188616842161238038221927869428875804327567968741683051615180802364094207144304546660252501784839572795866666266817416364237818690024580089086170610092730883729072159509900030565843466132118288360496696945287350572187957095464777980109830998048166539960636957807150421002584742251780912690304373865357675433102415814990347281247068377576460604329179940988719465143917536040365915504438959215241302573059525332271304022150665815741705251968879402851413088390745955488255833311119450895870033472894695369409881407392716397721651723593447506414231999352126419671586462080941390364186041137023514745828862966447238270399768262634168091732692589622747836039874359125846723801890459568542076810061923048418063471641721888816780715740780901594443432013416777955673982757823689009711332841033923480870901257939215036708673588176556231505960511571278741555332892562908381329027321104628129125371604703586830130006228528604016074553491850339408281282743585511652627491549880354283677011196315687159783196040246351608687509511207093749333453998724553431119068939803890099502647889366698618272924849860104132603374381168644249718294158414041336069622253763614829501809080059320382890287190951252478162296870745254979940723216079864320428271387248689658797640123970041969051558922125544370500322007000065228626012064240732647432085071697075820772670476561969713090584588242622304007267125760962899477791846314776936681438734593018956785809140686685020244159467878538764717311756931168635428232223886109086095289333870848379520844349344361272195216323037868538464989191184528336725596457618885589047246238096014384916599106467479001410426740173557674907984443973235805071552932664190796409970123552151377941320455276613614223237545224833791568498292782382703131305315553310206093285955297929003623470522858631993275352003824409401377386687672102987044794445822119505258812913646574944212312818673200170537736527887802134633956078409202491607266219002687251708634603162006949364689698871199317604389155729723997081516281543218603763344094462234586641457815368468597108928078039687987120251088030872724113984312518222569429819149669665093356980419858774952909655767784465208407056896986607187009620860214657478403638174022853643606070593037187220380827942858251378433392617660573291121812608913431533982377415660992245145204985554534806161482310212685414775313065357186031543468653221290148008103260604346726587534273689190557048872751371987256914255864676337818208526098942276307209002806358944788155116779308993197393439870837823587599942906559847128040140932981967111573447709573514654267391384253685019138393343217342198172732797415894901013572888482421250828828633110713211819649941029197568783917488835971577767025951687917955828199373679336393722391194397370182001147701294884077841395259020487403958857712407849918926121987511734452577847944658181765877401146022879787111216397004413574634057784872490196595033801806810436066906328989474541181604182382876572049587179684876429276922781106086460448558917022297884318587228694285272600220370001417987293583041938914907643764027958442277448167592545489970716087220513950015589134801643739209387576583436332295608641401855370532418370071505547590977384590301084791529646460435653513475898646995954959755600476152546823837473088276624002303155499576792836403359394532855807385148197659101855184648380498195232957976245481544813823640182264636142475723390394052247694606754237595667399155475962216702560390742321560163215801297289704365365164464394379118491026918143368874860207704218359144913128663719194598185756833526778642043981618767061552536107327061155719990059525678435910269803281448132701230826161135195660227136069685425600867614703019932728965662942356747779579311659084136047220905004744725777529552898888670422367154938160159304142282054471728184549979049063408166155595198528386478257944116962131747454478998680661505958430279777914055476132144862749120594771303321039027414159324709043950392420454315838649669458229050594106632542729770323627039042583141938978662710374422631208603334283541508176339536690236376363017785763312852178036207708282969278636868611486938185000012442278373053434262194559423501727176585144236619067739344462446973203065441401840738052875491277735160151363170425027634800272266679733368073916526245520805487816103656862285252829091765987856199047948401309267660347899647724201503777391754723009198080278158768901573742544753331090681281124338371095183265190397657378865276210512907257147432495386709754210723398125247222144571828166709136405475707924698598026554908489055400145634563165639678613075049927596658429920927529183108170286795138175957125616270573504949723496646429180228086232364500699580123839262423727149933213308604150724833764301721877352977980790030914104600609096065829137233276285122687804408545033397686581165617688396055130808215105075042162808555897710601036837793093677620791946588072610178551590004297992406184009632675411808804641817020629024235350028327023858554807802395476725195392450135082717610784706516959521418171726418936197563755668890366674883877618175044577185739519683113547223258531075187476735305633574648984958723848557421526592055016102016751529052610472500315191698858597076015182225964723370144632711270889462623997978954085148555405887220873610813684177215280210764219964578433708924929974263275112504517906743439800585786666719568365919753114686138881836713217325037171609964508436000889968318442343433599062636399065977491987081951752050551506012487141305073154538342303076611562752649170482722067512880781560049166327582299212242767297262300413407528692377646718581279338036416585031797076728969514984014175130539068085358753832856791565825671411461596779128875965992276422203778939180535789727662109212160470372425133493278240173720770287726073660011787222241971764768074354452315750056495059885700242171707963233694309751537133145102921976915925651734468344917096461043126787213786479918351187794418201353553550559303922774244022102299949722160801449426554727073685449666573525701995822047121882886736476302339566341275956638833350393438871338076209575198320638188740226252410786729570256323376280075786066973044613040108780867529165261256921894991450330902977455356527992717593979666061622646645058462804747732890249176063348114791146389214243301406558469539218127923958595452997070204262033927141634250104225025137236755990840788850810352356381192987269727179942538174735921474140635729524869368351681327239703935705034537606035244767977395070981692181499700212495813235113164940804731442004245279114213425575492582311662335941721132337091571226967395853491041771493442275948277941471449237972595237221256767548660025857177347679536032981732688404309819941742547228951871525256420500534692261561381066334629133755429249227053788392490911154620042495821935396297041021828046460528202235206751430493995839540076701113062717750312944414106677841446855178514474418227033232432103782741742293630528563081973988473577792027094465547252438854502368614094923213527095634870728644408655268647790306491283438980450834890853791010114654631210964812855824132443154065268439456572740013922291249123436314467188369013619694815560662779869032383333076975235081073648427486148711251550121959196989598601495507134141442018112079979148026198439175598484830461128052054615720369452041236273043443340164077012394056912067870709700690114606510641814412199061494170107384311698972868607662851068759485520549437822220128564504439517337079064118994342653553540371983478003740749388872986347053613947550767468573499521192319231692452685412756610136253195815396714840398087933537723985472592989777517609399530836337172722037512729342934147058673325637807417616724069467721901067964569388016405047299052836071828691072011355562868312223134868495987327491305588898785081262943063579412656409871284048188616985341910280450273364137343393677100071875958007617614061188455670060613302978006677517197888772620378847200300482335403283019768802041105662843651889027715419813868508781947318901841163921638844766791623145319857583665450601335827724874587812431640063916055004239314013451559151135324639790246035074850098793152197287293563026041106492450889669687035137761427721358695304476277382842417607066384738322170383910025848402987969969424129683819049865214993221338379380352388407198842189728996602292679166147589976615449501063784075625368178487057327237338321637842555562416497113769989278994921496218674584864075603552949614068852665039517519039550264301072003450227745608167414416896133053699708361604450674014955309520071038072524553106416424293292647126928089884858941933900648886001926773187641999124765523917906199345928077538378831539868305447293466642810976850289055546573606540071892051185437993995116203107981652043504561107147555000245270359859332188193667432258880685698638019580527123669399376216049200225920958483964568926197573654117195941869066799189721295271330471463141505928146115421049701558305330495155911111582652796137270365984375306760967375508288985514962707130804918822295535602657630620454501194168155077266360108758845212624839668792346531705884884011630604211007119185847576440233088692332247859350805534638551128540781008752332685893515787792557043100314429108357840795832141994938294016864015421738051813765026432936829076106617962951007863576390877810953809456168804791117758704450693645782624621772878319857453692159890545584660005755042488159331240497116142534694033312833688268170322503323606374520866574723139991934349206068228083216377740209794296423430520189208977385011046875673849048933796129296428313469865067790012202003195943937554615897921484837690323589259502803015615384180530747385880536904903187319527008614442335365984859245249598973720185777665639616672863362965464264811816540578356011339027626241910071735231692018018039506026761974461359379268294521492149290202912557385569377182277517891320293218353957147348499870220026161435806473357143447103148109030566430645306130711891641315691697162056534667598156680232016626562500181729021474888809397259068961273966320519728385178091266347484517941994787265472133797376821017864927156816117421638564522073428186634478673418263423648485349332059067875845113082070756385267634748487119241680549401947503243195528790466884970455836008077313973936352030832598509332349949925061789909614005519784129299422557026638411336891727172056239888835426262423905682382752536416160675344034312688933235022241724102608454583477399615522811860625990165354614094378154493536651794623778645626259292431883074132157895836439115896174991741876695415751222386018543415548301289884134452789483029764002342633148836397663679396386414984011406674003165450375652446433872188440304874919338089644870647759573704518964476966570220228367976532634836844365626593411910199265491612802864829919907770302933083486903453225464287400341224626433554908302968564242649464411274265366159066472316110133655658114806505976471993362556991090022444857600670232673433678129312282713350065106346797346893727704848743869138343167694948912415014189072846950120577188679440293428633105032355089231229073802772629867886284773065834400988167227505052471396450694281179180472773545318061519481734516438601517030199416267027233167917048547501957655645335235430519508916617908951817988423792136688814041281702486771617634797493101124668372882373271849716075775749688473479872983962825730335050461672700870437193096017544584090457121116546739912202336412210875815430584076888832038154044998279962152300879518709378419943821514082153209725742167200910583447234733346076509479724863396841457179840219084688546824439076005267415581563792153464573323628512569744182778636302978801296375609844769539330056909543247116912444301556284719274117344150582662198442049768304487651833364673529694809726524543661023410280035515826695852209265050227385644186684178433109908057177335292105593850685885106857662027544527264609074080274051847673613635600452391240331808701851918233502658147598153678834760257668277240493799841407063957180186868499701454160953093595874481486847607945294712578397531036715459739548709518291975037693634996003699656061279720702329795948845995080091789686811165269151288327153459373490578174394705234620523019647512478095774152626503448386579053940652743590540201211031831554656236007903554780737172564613862925953575037578817471655159801081497814047381876703693591599498072536364281666865454126458205545736917668505734904486980606466545112184250238231150908904442290169999256485747712299749187448673390299673399277343447728214722422040727342631831829831451806271412667395932364888039982613192497319309659984341718195449656737594977777307275946229063142855484404955518090460612816105441491399797633175518499918295224131823180991083501025064477984381575933173673169897618748367873025224270186250400470237672442393298081969454654564290614655785762315176810407350397956646696698676670765994662839999558553247041152404282705658463631814077366945107993447833628436687256271111774021638172880463758731848054132808985965527915517458546939111034081762519720020805182853607857055600257882737706378918781054280585061724132600533948272589741966673707784896368529242864328317612417240083964725276378985130711250337250253843119214344873098414189683876988276517181042352952764057053881375283013372109238495810458089629613775139110799503849939516539673281819193975485786428267133891830427317526069099214043346879346581404870912995747748482958817783648240917764155763438986331252376092312561279110847290401271871283101453179015258650054474370272237766124204926610855062100100206128098155578487593642745744798251319103425809958583864829216816939739818811027747766499933287041246170670331165898747912543091168568852111411892437048119987577000449985469785551311154992866752058244833789542741926116600021725070069145800242710388218134499047721417011543477073939308137576999791085917652034648267759843319970501738210855452402907847207086619217015355940373837703668683647847030615276456296378502423000093915108693039244005745889367392467655199504368419987013846122715921461163734109402640982435453584048046164910717544278854476549199909005183788307244939864265610097263180183566906173071832893539010673391132596590342650551335754172852352227147569580013591327478199811365265365419771555496356518830172389906859284683793279170953765163378795869940109593119149554153660089026133208199730901085742391363848214678628259914638128969891936654336801218463740337113403921451440500623804038167980356075730774643188038519020157577485938898114378709739018893370218618875352394741100051435108776805509984956743705444191613515314977526061769221520072051807617604774199151451660175412565955376593093261709750599874533383808936021320760310866083928635822345524771379461694108578246420572382464861597354590543241716519452556514884903002128531933954246376610688639813312645321182894187905029749335464555779293226918044975118041793150751833192124231467045824285431571308697471404505507731467112614553235720177241820076686129704679325588260125481813975242554568096379015369218773623747062735954801410267223708831824396058927258201148414404696241218396357274610305371699019169670453401783745848782924796884156216958968869294799363601171726529243035613475188147167566771395390977810990399509785224844947358916338647853509825960754040567066952071287897779095358171538054397752119823828049684876095719976314314484640228048966950009906838494873785137340040793022872117454658605104490307738459775951807870524721793732743690936285200724016547382787652007834758175881694761274187908652139488537468398288659486746636951874017553927841603256987484440753274310323728842615882353393192106099281569257740019751528110566099904922057077113935201843951874146022668989594090312571604385683960293760031754841715248117907322885737102625112333950034844650038516894833901476861013496542636434519214066727943866354964648695987595970741186176332441959992549426088845350016628963745392552354503323439791650569427871630472439855678888364235659927860363260925942014962311686515737802995176430041464195262765889099183407943147080330867603233288934033972868367391034837696618325630440692152059877599771250475738542559814751964455211844451173160174847639928891962657462318591883782210230036441061037966830850178668299058965181328444564454535298450447305892913427911782243671845967981480043804695094837476296270854622773461205333483859280970510570932883468331155672739827566697129170928113336832686488506543455434067696713309005658969853479835855421624875430554482204174850545847698720295712039821348029942541528450263941233319831437006511393142046322246926004362798545797571451258325742638841249308307267574368943653338385399305063277473879901851383750447156774470553385358667178750510251695079397196428928001216873160424068963755054141164142090948437790421309481969453919765561157070425292732680926494972627826790347030789342268650548024818987996539816778806249627967926267318995441968863999936397420685688699258216190151882596311478766637101907925744357038519206303542680821767895299919102058043536930230968042993323339754715595155196776681648332264211208850568095520003736056900991075804833648051560889466033164814555457570999429125093020274805446129697142985817453936656459702781800401253525627359858167682140997753283785678337911150602105056522517163039026953965482186064984410866519590943027533749752957296768852369841269524616833711798064614318937961879637698056412239669882731791411108467801451615071174277265130245841656734112572245177134729201059701974023707087517443580202318628586274047450267031193003049046423747341126549408946035426860447236941573588095612982996281952069399374093142096824886943698901572931595065433608278135451678990437068524932756795557129354850655854207635115800419153021041929736035889245317586270210125361911612173553178160025502400321884738461323365246535550693061196639654757578101828314797774077651736930630525255625439274329343008276417507867580816914753504479053290164534521658655571381966999146368498030515101552410102750871812942812763532779994327833237482017012786940533880435564916866422829086820206558236574443082105290107398617831891972796545768305024212442416619829862403648370766667197444319722467629478620379069490654599679557898731782969173573802014451941613916282133074254811085639250454286638931618131145005246007857508609435480687515098125262393020623390884482609293099754293993743919637098211105405021247739554651093354565894062533495773367691796155906698976945761187650226263429473908770553347047835172171432719190812820323679238339746214710901620552192027648517646951803450883015919735087424556502684274243621185820826461236698459323200255047151996556185443452126300137295655265396120217789554039774601768684310494508796575514984360602068489866124284133188727099762387641044108638212178545271617656000820527205427536697354335069572417069743413521736378845075796025474449907083322093074775736593731190069273359859580411031285558888247776036757446961260718241103302736620822652645361888563024904011351403712934469462829598068046364935104015499636917355108862983938855977188496397917776743539254717705678105960955712364979988805785201265449766213011821040844563650941688405950516086616269328124407625051841368495550143389643632386761014133634127738011313968357916819492324850964348109572098798470343956591803901245816119074237544406191259271396856104603463191839323788037188487595088282081495390563530407378163140595356134202828161993599795778704244631400568877664804511440309264466671093539022145496803650590012688663394873805293858285738478154855278981802131494731917985877054172297498230902775200172565058187496176139335902753569434830043202838774581783213932709124129530684377563664659274921926699478289654103824624399344067609947532318114766209660749326602379670207378953028329785485663880955378608218565671659548786051957694409953074196854758311028343785230800853975534729178176700683416867573084734421648575247646466052189767700601253400973597126493148754542214120883270244985800764700973603698454870018155254882041306196883632196129214696585358908989396791358142813036348237238399153129189372784054490719739456780119690027899067226905498956305912355917947178441907333335765015018092292102745978467174470518519375241727342528382426872258667107252359982295966008118851983897312166407402930850213092210986052507488517136219420002470379537003748144885606094889343901014641352539723740479201698076362995272034522152120113910975151090857355017567253014053606269305396225946944757842769995047826766640571716479383545786393759700602036090969022786549469646404897584109809281506145135572916076164493711306159098168272813265152604272000055134537600456057442533145335297798843921826031843642863384690061312055831972352754217523794732757680579519012338200477792924821840132200293402014045357958250111031170807432317236921390479998303138954587659466661336702186458047156381557596337055796697901666733215793068754568578900068502665973453774422425980060004296660227722478540591622729737358788651144482725095914525565847061137752452032759662526276318084671596488016571553235517200569210231462646596462669829951786342121801822457679033030588544469164615362692282101194598844719990092953952620205373767407845297968136035296489355770437250899302295603681683376421492782083279488304636381489892361738471543672618677338072807163441385531802252800251851620739505563418184303665615034889697327060256757573930044354174460768325123778031689544826357128108813708405202981424218807404672242857061081740381947612557080897721744112174885478178729465053954249750139577144352011004353735349901712818593526520637209348522524173314367651458639920256768700786577446842964998512134683370141135615497872877117589726759933787648354337883881093714728751900349055561954307034144240733767753834884492304267859659973178615882873621204543534457788136320343942568424001023108750471011652738457314376063811975788944490310355378375704394352691613721330386193287008220221480735156331604164291117335251330225804474191100458690463609194810387774577895945042164062461420919424402146811855020594769335586050520285960178995394343283873830645262027255339778502800750367179209719553279612675032538029412711096996167467673096174190492386358979292101360043139814911561645028887277062857859177862547285599663921203201203500288152418037893379723930895462190400602134944144525532289789100627787679572892227757898499485297217131552366289639048215288417050887394383934822874913965840342533781950397987855973601345369850942602023557546652361335158131490816014428591289005755004268813739235812379252908231994974458898578748445826394468165382305281493244586505818330006906426023610969860794133361495526867021611747466400197749495334737529707881306490519540348865052369521408145742960381015268900695002192194043093000526782841707302536107965815079971664408265494494224456145203724262209057009591621515720248470352381426317907969514379965456528897075017525682189461591852881952190023513932443521241433080492211849411227243631933721291580422062696194726983878846748632401917411767949230093216881536143267616652346735554844172773221623878710795084374674482989787590897675778119737043399435961465274850334675175593123418860584182837120540959148315179906949259883725775470807704020405516901077542504999358948620761405903002459776615404880052023525279657901382997419806330931268519627054315332118537693342866973681034568848585884775592792793260493580519893214169030240397089716348463527166026684140626119632309731684271436321269581796579640733589674736892055973739278062007922801695755306643079484887205087377935482045688193990884466460000604266049325757582732374729232533764636084748421478761882402583309723097018129176336116201568849942788272728465941232204287614849642475389461445161640070727182472642359617884491330704883235190345896956766694376848353358526590572209775249240007429760803944959450957532888084761296115603442232361928252201741957926183386095175398175147540037068723715342727911432637013653725121040438897853648819416556301723278270510627684018350769751791048263934042125117001595735946691733095307381592791256111441289374366492360488939391351474932172803331613465541054070846150797229924923929229835704438576819612194615233396724211989116575184050813656151296727677126457444652127969587300351350741973416063128865831373393111869566341121334469475445319301643142637897109210858418365187623506274299391483741561244728584082523413886711214177439142488261260494648639281498826061558867399274249630774242746582130237365437187797894354941858107774662686575158135986603754353560754281223040461694909456659089100752560103558234046357555058406036428295486990794649301574807533002596339205281722030578224315209172167627831053353385840982295416767978542789392039364595747672585463511151886045575664486052242511317957032415439842298964565395915060643647450752051141405635242228548259225893719010828897171120692582120877557452995026534611022667770262202501443700231264720353574108243320271045867432445174691117455283613764851631215056878616449121325314242080742205703912591278464764266114856032022246169902510011193913652740352958724761126072364054614747260350393340287022125873413871678740895124265260393354854948478381543994629315378203432523634482574589921537706691298801547402398328911358305318803926358474657604308944762433546454544190491539754138649609254320301978986009899281070303764440235340530008431007254265666815197696039092990767571747699380572911615263673666138945809595093181282154847042659314647339236232026801605043628535439103963180684334917589499368859568507324353689805918507462548856403288707006784567775562493257615805124396553538576568599323833037440081049460736486371230350452341342145297682331439923784173889621637187775523282255580003635519108085815738749519252075913867376654319210801056347912516115864504490017633476309101446089480890959407454976133709488986666978739627670206219770970748175987801759012352118576181254567658270529145942032973597300933828639783219226881453735464180473545363658115399971724930187936254465830508051364331927571586872528960776682187181607317184845071175859071081602245045989071736101130651667790949732908645833410296111250020362076496848292391901667117493887102209999020426509408995348715734002442672175215752326989533877874064727713762444122952143818008776874881234462848056220179835079487104562293901585262083933432380530937834577314395337051718904605380120446970736685036240277961716283851210174489134481093191998543978005078876040637616004205249454255079603416506956538531369098257102407299868098225769302839690985162494256379102347848150308044263523325958382269388320363363445143681254513949309027180541108254515804236070142167646983390305069109634322062628365416036379811804525051231571299991489648702131753158498264042057803856692498684545150611537711372189630554124881738657345970764801236663613696868313063143710622501728236838159365929486081526604266943857815558092462944126682361881075474216106069564381418462437040800486448321877923333521432656385771506428063690249483868995140164103543888998996586586297140848917925888566604178429829916912069949472827890992077942750198381820935493782527247336794560512272697918483701076266945587332952240917077066506040798208173638722137979396286781283808873230329325137203873103621117550604086204488952422645543588580781727940994259983609412499763581857573348037968175418000991924187966126655055018595908460097966614552026854065116360800039505916080324951737672904785692759961431987521844651813118401424488012136221063978347260341421252821724434648060481904330885324985069317590422206756658189803481089987298504799466468876329228645578641671410507360310644335650900786157508702954312029766881917932262363670448255983667109492476789121826885497537558134283299237167638152321673012827172953586670106373020113121755515157201262746198187390859353815598513671360825724863742569488034718478070458750202524680835836403951275115587919159428687805976633459682424363461081054552715576860220332868577981907805621896091844770285241587703261197638461670009252731545150503143764046618673727542087802848345006042541742809600129533206673933778040883468936993463773411863689474812512405698944007651383048153542263285822278148632034812699477676244158092409349256408266037231121073674169877762942799963831010174814432940706301072473479583618251068136776648846387779056486790190321035337650137501589156797624047283134482940051463648668282908705038790580994752144258852307149665088728705599296302023293187527610133888704161643691683057263473394732642498819783449732542760092293529520876025432596431988682752748904171721928774620587805578908307807610967737494444733761704212063440508275373995604845182893003653376201192972492479234884318398207807161764054282548855245449011002918059999842682547086112541618883637130742081380113069395968414496214313649113240712753566110235752700291272041691226287015119775488009947731071971160816733623876872274350884086082334468022853656169641544019847500743762480642057523747806857880225380188215213185989314173987827111391862861490590647963354447372576666301318891636993686418039263635127482366346861133895481134531047021192394459499644672470473593780541936913104560308653098286129250339297273989040518731968360349571383079535093648450982038668733487247670208051705774862950291482196109232266841477797148100768067615746690998623483039503168129949913106126218549928182195316787826876508732744913274589129606368325356417783494522689161754353894667670547292240736612384701874040624021063886042678658253521425634277253463163175703861443499235487112618946990730787316043015259650372596242384885931519453468672211199920538473651229254527432302708681271977321007618267916150930324181928061867715738788474116119111128866000875091992652119880173333629220354334373443509415412065725833798741931547242069028762763039525095090940668428783393507251849356667980512640333741108818076255458870498147545270601906017958032568930676523405757298848781742299030074545542700609258612787271157193145856631389289209811547788422661741244592554553254158944693551019940682410629390139948077627616423228841710852317967288263467720864879539526810413550517163462766156088143071889631622597850938694526559414118806821318747185971114716280039208430566031912456037955506874796965851755445105662004173534593020453617200580586409838630423735918392908603792568685194443578344729641388638550177526650982163100830129325449656406243357152985981871464225126547504719451172351608174497510359803924904776741988675210999522231492649241177812695499130072346903234077135010334379152305742103208132779750571299759206475161850377187775541218761137149462566026399057023627259615779454828975874062518837458561045421436268253160271790444349982400779549265987827080765082059575094517050647001921670390669384204789571712140348156614919496764808819037200514242981791316517622092410751691638594197013514590129215316190665317127996345123033503426021818184553243238048673621511099342288491960503713007211470688613225077648913129445186161624518859937336822812274029301704801721251487164946357982205191518507690931299903809624694131814136127696782421335220650597832293601424049479568222705311105782247404213767942068169951278347073521791778673029239556707217337533533173948304238778298751248131795914140194708482836982518260216847863155993603542998273243157149519259309628993803456759674574014302934460689174235732437646090343465489476839013887395862021800052615627360074255545261158196638012689168527175370881612852470750290131642945944950856837335411827110510388142858276363834939242219109586041294509247860428767772533338377596378619826970570741047304044877305127156513349130590151160655678110603173802227640930485125440571866387782534616258989671364315458855282073623609694231034127373749292753342012837346111446170281928134806574280719196586786035432089939493317468790512714999665072801287418321055893880542298950311670759471459223930162105474330920726983905162065195957258503503953301373486168231889175837921342096413511721845278718957772565116509658746217913258753782922079991276688081786181980631052302327753521620494409242551524536190823016443204339221418925818391253699379170622119672390276551298185950121422602031840913998651716051933033521540330113402072053062206336569665667766495306517544584064285863622080610423389336667772383019532668813548945431560957514027414466268446700006615012302356638221762859505600505251767381065452326521944839152771069255108366997680625600896254564037834565994978114435712468379050237087526388434712777742610334842680399975199523757627552077188479449125131528479206840497897071883984776206086114002237434602041384052031155105784006071429106059925118773619502291916060886441690221092908704950699694874640458570050260007636616707497692794207142598740749440073966422325721646085133487567629814101856548600872515606126387168537596506494935049808030335108411718621277215663174454138143338660546935990354782292928677892087923152053273249022371304649071541021439405374509920314247570923432639690496506693817033314265533338672945168989826196470351929932471219975439822037750695295126807172396825308155350803158390832635689596880420886421525925528454879400414064822795296047639597740917597734686985635114323861347207413235504707890636910950233669352002547281184663840077914495040197628649399469234248243141468892916929904628205987484481233711063295669334715788550476340937250767650325871111566979837418132842314199883995156650069145193642570402440527345037127900035418937604314009855238467319547093438840288510640342465185136305710211200772855035645878818628326980765351978450128297138852885468773982076850411014168013607049756256399607050754684941290518614544285161599648751145170562040779232188321056603876783641747591910950812231045708253412540270493029953737841066745218277613166141582689869341366491477094989092440002174058367617520700510479651526842014359905949954713633147189597207167041659065006881885266343642736575456256723014579261397464951401647134263868310677658961330376944813507942419171973939434319038759311820940115867637455239943424012092697337201911906993615124527223591902141073100234310484363841572319176902534722762477331891918881488011811922826926194939872658161216730208911553641374381323866197053407225278286742878405023203882230659788865273175690747183181287709903533126867771353667669215467354363783584205944754797795047695361433364645264906568045781018285700568847151976487837398913910555416321507176206592541089373919783915623448347025469990586777697466316167284655844705325750387367797022032440246499830523597901082282687487355814919112786185736257487388227825623386377255905939464472579250053216948076401734852145526608288173994622090495649195983366390671318387731837516036981656896911804463808901697953911529872086320349709184972894274350966651518158585837667815743411309604867910405966682049245377518043013596859563642142033731779436604243089177820313080949079719139363881486315402112735137815011539969321528969071341174193705787035929188594292510538159621124498175202634923868066450250631178201088623664707321397260377297543421925569050293728560705417107045943619790399671054042606108531981952318872554809629733330424801163438311731653395298123497668758163539505701724790699540285242700394412514203171779236567938907206161174900375342239956900067831662271263552612584680587915381951932143445229710207027422401271683541942325550423115346143841359069767400660872352140636993286243679693410973643029551212907597233309580819581877318810905172736405412073533828628471342661544368942432519535941162436942536492126813953617300175349901380935636414790307634941852458172781161523151515072606082258391209643058312397810599891775633094825835919765460893204005039738364081397705132870733072031872334697961904647114593764196441774099755899929372307527959892530201561619311062071763891922205122199129997225400082281193895959621286867315754001943841649783158097989331066537128653240439514773211112450285368318319398353451118704090625302776514920924609961664430096384591285235128680746964203618656284751812525036610086239556416258734187563410023669573210501240729222618505833493527829228539834848583288126764835514475090152940222749529133419763131956732128075663380917868605426873757980757215586922699294980758696209312974644677550920957057188506150529638822262121504998378761943965845350846751194522421400738421882571740849907998823239211070643839608569974483000127429139240320202145586426409040312515722235671662252885207216997496366254175502142461500215909320753470042943861601887149070547938121112255387243352604573480494015647586871961765423095671497235588951726163735386133775077114354613474332342311208590386875099819868095722355072012177868681346204091031864175456999533569936760313485985007579433479862044476816146113522419715941508688749953538396382991355105007945334898566989979648087709861071096975810086643993844308816453445141994027686201836087831311052306648155605670235499761075874559555438459139519514222775177916859967673650027780119865124753537239700984330336326131721011808439026786238761836579569228988655491011957583198122645660881618552366354120674194598255949370701933300906097577091994453628725563867190397577212215147007550970223318061370866918534789590916403718567214060125765066635501945016451167954413277789963564464229917861135886041768220685133920042219014476756605704953020667528714717304339281581370487769507028277619712323812966265374793665383082454158823987049832700831170631106026680886940671341869391856740460915528991667253329076025144085909989091112040571133135497291768335016243644140083071068156489379533532245373039266754149624008899439389483185608074509379251434601609737304158163855932323670439167590228392369359992513623897326293476109514546082024700140810078700465878865779755219599315220085057566240180664106675203982069245295497563187538774494287683939364648724634517209632692411916829119296293903303932484720755530125169934266869929201886007205562093301422967519522500385782985282343268712281630523165541177517349765411166823093279468570120517281350344535054598548916035361554143640415670034284846021824617494030511311837591133607817141572407181234965170092863984348854524772775477793243152683054905008160452215913712757008110861147522865320636699725934853675113104456530785603440422808420707868238876320800519263831690015633769472159070969692635684885866063965547849037059953498952255121973739408537130169399120628691522061563351311375232003356302685890533495310988586618282342811911571918145059875931574319393024205490554326129720839636322865984424967955486704481560252228452370027000308803729745893233430594441594273424009153687180349579592511886553750132176555980159489141848646780264328348869793381770654012762556471531900470117253680232784630825381642893478112155442969616793868316444225142734904743863833816544039858869885674332218149723990540846272170049012681926466628939558916556426833854515515779459857435886787282590819154126765462068616655601156458350444122138948958126618314631018212279331739323843967917033117659181421903789363480993658445214212729332897964589402227392879537562260137198441694255535187393135642464912598416810070847929750483886207471758474324024553101437783317597828512182060311923441163856044744830454031232234476081145702472923657306914150866468890302729730107907710371235246366772822484161189366106960841790314101623546668819899624035288287516612435339937158269139190629126159453866870709687332453331613673152747458707887352974826432373148208000864990005178769350747367708871303997709813921990866043742870066293844099942949916669673278548678946315211575993645477565067777857036977529499163008122920563858874433974836734074224105519047806547551329295885706146753128001730167168831246038892008143710028614457556620558259010355322155066740619292772502109508936638150964861578345238329341537120473607105358772128662679130732892371901984680022641042426834148172978679056636527002382199897133517512154371995764290656420344572161029505220875141523345807464961323331122183056292963471808237511737586878631716930462899350774464404998256768725157868858306538098496887611805651437370418047885106532529773957238232940748129984135513573215753125774853762180297095999179371142247809039859948894238724041811943196902495115241587345660351464367207456519695678326841740726556838781200797581878872375503349787147731203451219473600937989035080123216638409953430437337006972605790167998610389878413168683907170295436232352746457243801751259211463992274510864989641627327734159312037945971023871337220905585688496924490775531920892764776810888800542547807382333803584798816530547545791372308367603189834722818266931815363863619455177719565985048312410049529250477792231820330268684095640025234651888630265480244513052365766770297521489858051261076262605126548650388064607743941103735236252738312686057106541784398445936818177306981139246567182875304021808162151347927031981948986045168376404979328901506494269593670275171824796872913378808330902871323999996936995025214784236501109571585096472322420728517853836321100021589362580277856224919493001490670658869759875302250859589515896463899108484725710168850848622192855171760932728347826677120967924617176539896873907486956149273830451942345681055055467568914842665208693677670059313142534091268007375841871174745546304963649577752274211859829084079898881382470476746261787504159333204230918252279105295746235485367379658721276578026714027529085739749252114374996027804996809358862451310953212934600515184305318085714998823334114340942380046395690639202817902722784971754978551092759773150719809239850684852998458079890750566321878641083004090637554116902255870857537848044089626913005463633485872963293341201450179023075726744876110210733707954660017104590059699348773060632342602599986256631894271046989879634852496789141974804055101186359334495760176264699969008241602603484032590461973644211108083579092437008661070437298098846312811683863152506955292479829867171647370727897964505673883983164329918444191773428869716069756857641165453305179847435795281866103758593209427338223764898480960161017396670853501379808002778856492387783038504368452600060483748044761866104680247945298060241829710565463065635568883391925397570273295596726871757474782210761755738703318329507046286231629026266569429973800528739260062288463919871525336209730109008028547419659604219791888317032131374233526061651202583474846397752277922642801131299523491493243296171147416838407188576943804864795353251061827956883170601040966346601507726927672288082123985298975812414875757470925288452948020715072274890657059626647228132959824780342996641331544915851933532190271635334472708111646223970871794654494264105514850463369559266081137948742422982170182611825605926286585779992568603331786496481188553037108550215262712467867274075839804704230099045191474442252971683277219754441903063691165556705267499363813221660149077448228457690692710170957165689865775832096346886374174140537450373794975591026009385660694562766244122747630327957541616698544023138422860556493332625186007927275889910633305881933110920309976516000770650370944736823767785442470044423668634659895930941736456392766018115915284224078229938886633856308613984805890310785879182772489476165719895816311955548418726810046000510266455938119974573127420114660109293831759299256565044441309285790856533456530613916018101205974951016382800122174660682185872509195562125979742465224476353101731146791847119900560529136985298904802386594894805514654740799877068969538057068232994506498921155847233268741832083898579673917618645685073615934292601854945396218723737493369158233237591409514963124458181599281264669298351826465971563541736816851915596194464385357670403938146893010972752522064675134279776174751269912509140159006198010895649108698473933476681964671440735452271780250696067361346915336534269735859731626261382248399014133505176402807923421854412197511845669719220943436881425885563615889966286046279262165850843622095416529703666172624441536598145131319991433888819957414476148825673907422829827283010899228102371229036436059780855701895675773082680564034689705889487602166924331535925440562297965493805786484658470624023351926698343814494239527495816972124414399970271632772427404880117928806325721585932884264313076643639721665595554249410934685306697989458140970989778435402359881804044094014146135437376075371926599045859821831969451099606785401771742724936246444241771795343558158389279996564794691392621013520936666884849209688198847001535355414942610650623078717097647340888110565749766176869167108789836127387048734444399958141194333286581578508264052246709460888983687777638096528524712737656745878027265454578877381027219057724679863757659840403821062876440041621397669614460011554989844978061455099173293739594190950469916240742777857834068798474295019215558813203471033476107398086885907294216417371399403877830021171447539840419669642226711584069936381923998685076780770361519878444024618379102443016744989235155163938624266566812602495730265020665780657823715590713912370246335496052874908574622909633052917372088262543829764078379980104813845056311459213107640458070253133841120704736209544774733777543704110682429378896306325988639411794901908789834374239441315813632697452799868877700967547662568750851569652766009136491121274596112498880266560927998763802131693266238256741664624268692588887836764295744800682072462310170324065990434174582568354720156986465028545635030958190727547334414284833602205990248292358639633793451397596367955623771568666708144381327952522594690470311350296322893485008077809180096396888245916922152632144918144733308595794263859986689708642205796713763484685566102369094967665135822906813172580241264556424703575076594543074585136743640583657792149767583800785675479418185261741180449989526278475203943244854011191723093830071667964685419367067087607790778198005355158339473965920651325884918990645980855046593554648936885311206329904280739831179532338073665956915125587511101493239790436258843166147871795610184030268599618884181629981679634922615176194376688861899601975077849732177429794995199316168419443970303678284075685859322663921825516921142580773290772101604758999062809991271109162348550090496922626870401824917055052129988658810998559010863908159560817846432634306125005803893794332961285043448296349134972666968816285280183658891710641136557745227101079776994699653650717630534593423348915953486117536946141428326891356913592877142900431746690377176500299909502259290278821982791109808669177938734379361487322727585688123363106989018406274302969574668520238623312388832507889971110232753322392461932465028770491986020018474414652272302232747931292960675265461506655766511544436140503976485861000618336551004735917524142945734663318588944301080123693319526464217930556045838435708842995622569318487765514648310253118118046988455450065587106326370884290321091197942776893860646533305783736727921241824487069566704540849842845172571482953245893480172673455613344829388348099853623919756596119962504943398809055754377116954438690603597277109650422991303003900272628128681067291974142658899375364321926733600030812165941848916557940064647748208309225899472700180750559565215869049183674492669978204289118907419208944522984621238153096562505317089451561611433916287287164559409677654325439842453146257346671995137996076383848973048755672582499961911306710338037980541178345739627218703654249026983788738212749339313683500368715181809735404681895329543628950146563674749647820669857204287667838312733801324745818349679377882408864764001417530518550119606981258765767348819236891825735736981299202968957900798065562591436713127517170325888093767484817811224041928053443882047222237557081029004296606270627232616524816279544155049299530424266320486975761256746049240599235327878805385320091055634081245414345469764351899616186149689494709474894317750375445290050762860862703056512174986197452093348547933703127759595156502263544096402149060545540978838730866550160126522997089471703393869726154948517171868871691055360900941204201625406605199700142610276137457097553938701536391386625682153418944561862839719135467144766743178022976005827267023965893291840229474997451672422680802396454079441580549690548118175685230438040252435453639762959104684872862816665300997273710885395077963164596928587454688513122767077965291661670090823682958535057026425887120325174800331812689238452457614989399248955161316924918601633673399950792243166596341122575597309367638193531993885335293284431410689555102525675358656988516276522344747269558942044822092741698406982943185937377904982340922277482950225973635416472079571027568378559068761911522974052700497447421849238942301975531431054872647629337764212296544839714644843885683162755056812312781038073034395143529679780340254459909318465629108633081790517913499434015000093851957124450618085554923696856422954766996450883059049505163374102469711242717404433447972051454210378477410429629652639320166467142899630088645415676118240185910908876506294816155088523261010567500719490586187287525306258251310104721829482313985222318372656821233326776367266886493683321495283954987592394142664185540085782673576360453507694952145194073876158776867851932179878321773357657794764029339315794264874146997448513167334686325952917410439121746574120523001192155902270472687433655932184253193855898738832572317036281897373521862041494534498380809299037775294658305130646364472080136082038308173182586276679135643956907687759824119897793929219413618105898419995205900618207807453521545347637105941476233431502711675740620077336860138502530334760994257621906382086996863282464966000741850368063577928357028598384817065461801696375707622477685301778331697763848952431160108041921055392753669537647715684549365735930045027603508273791691042926459877353929805056053082669168486365223826467400153922582215348405719008780510388481454147476529408766731317615406825289882130310553028624349955066209857137899343589731476547593801697374619426115555571302054078750460772552451611277812286547746910607199325883270485566270846652052636183008588545338452557675554736486988698401474613225725319853990828207175616037695560123575743910345206322661444209902434857492360548877474167671741201353946677341765094400320397287144916597327728413620864738692963389958799798999097154875979202224542711703455797348047040592433642067033304052221823867248338207105018138330349574235768736064605914499195111403813169664846681810609533893234533506174950754091193700944003806412006601355600195708202650674268345259238816637686275180473005598750319630276338409026771728235942746818708598341463236308913019163644761194978727990347513868967758036314017474919919632742335582407881799323961873675489549382111113820753344910028961305932354225704194454458994124994364395574973429734516413355583195165719073025827460609918269495437065125088104442350077288597338384330755573686598803182941409415695643613611310747223524873313791346811514116464712810494849174132629168050432729951680781173241310448009292393460221881083128761156733413170563495886996592154948026959462067962132030451235829865401940687125568559514855250912500705980022170672423774859861572607014337397143365506483781748450809676187413685792351463811671174517057904221102123261072484434130968235714172165408987621577320045041687932604884609438977201130345375697184433983786190846247535293700207121065184296638353960910006648029329651707695372204438617234254998859455174282303591661486554356021802685761323502716358784760074795710292195024845837027429746944102272735863988367641099395874189934232970349243833085069502546073201510868711596339962755826854411920152018431815869462158052198928044805271696696667110400093250827414004328017479600877794689598242124081862191865599237909800674165296883503003902274928242014205818662357027008639485498855503502534505488745846350902276016754565448444737419732510422793398204765378961612296761227182634361565336687764015322545782338162072969240255469079462797763955265218186722997166965658234342626972330385192924417735875209132095642551973093028720276654375312502376013733426540164044470478086082752035448867634276510171318050142731262194332038986075387046282704521782662210591578043173707029661909284240780613827186113796088224771968188636158586634513293157273937633842055584170543040613707264142435564352504662740226576426842535367331234767592384331047551917841037868130160516414135213731557032680224134693557876968237381808756153484731540408062772703171784922281136583549816976029908434270422462036122870381270823510574096615379766512945115563899523065290536969102992795096710980638431135501134817316348405048074651386580936442759482377521390283054735938314428383928225470087329814012208601155314289238467080391370477009406780175963567417328586342964276399643370869923146442966891890625331758638112201754145921247645327555520318625224438551187214320451239901636434628799541375844367045024322902931970013380483591666676657912576032188526074221973952120643585856436065962723144950652351304369424267291402033975965329004442785159531413160734495829987220025901279830669217042331744096974426560987333214928366255417924512171904179721798687974938853964813245033314188519732108834738798843945903393445364870589939362680597843490212164571944576184877965752007867011329956089007616676608080276074799433405196666639525055884181608458694528147979375078293089757137849861632603922519856685661016023257619752394073766310227528423314166785348255940885544639705761539068335514353443653455504797747534682039128382359552796653135009636186756943768033945345230606602118281294086553685021324512043761536517793261020773530498010469749382230164565732887173641758268111290185370196673323449431105865264533484914432191752654657599127063889080395138341678138346975783262629128639053805192864679604121935731304067385266594974058288292374759509766234803812046105143283593297837861877680130510935205489504153315397047203834070676668040003746416198481426402630922255376929920715224683916402295137776827606527139255012884614387641820168937791186571988816947346324894807120230111963710549217708324350524243967914417954822563481480950117485027665056503764090294731269965239333769273003032515875764088034226355207537764350733943660480168826250475639094421694272405413519009538724769108712175181852425407070033257865011201535026659729453608458740999898282158356486752086929847085057310075784883537131991979729329942857559233693533048795960970548490863669688682776421225021277701291634076101303443649909766949724162175121045099216730378158465664380494098434196186491549786591586147265223458754817888728055371930010064446833415919537830353940262383030506614798121482717537226398140922699637073516167130070632523365887240265401340228171363797048673488095378970346442886953519087244011921628625657781053614303562109791435568208334214378889417075256213923075853634587376601845554518717946198795349226410945354052810177880003475611380418813703103286143304664056903997005235126468775053969965194662503995271894273205673494758033821094146463514617526140560570798804769709774526620377408617022936486424039487265184177885745708730159895025435575246459942834853151114969134840257246549699556860944993477203037340019352279225859137390551646131166719356206689938447275272606769362611075536925905082027017497128473224958647826662159291982432978693689107221036650149642046546343377281677528213348633220299357963429925980890732548246004405642609326338107017085581896951477190365888794733269964345643344856708851885192095026027695363017925409348212263368629048805556258786924687309752317939114444833418602936232495876175069196786865750189252563057079713386703975043818581498739293537508202747702966749464275687192434285936153894987234016343134039556206531586581738076622860915522569348292826763851936325246923648248467046733508677207233462212304741820838367655661101753497143458710528268434483234978525430736758431279495309815148996954636380489094901289814697434795715353821944383709481089126346055914162868682848752199071786881883231161997794293677895850225053117222926034560173922508436178278496362893232398054274087195207054819712464863048415993603733656246299678686028878645180531686629120984728565096450004284481181602295517535371987210050735504765258906169988786424005174996622526617622654497947793055443940447140233127909435910303210318927979064713330528493557722764474986264921181916964046416169324779498387770971903887267822088535201264036776490287141463426172086770912159937516815932520482933471740632143539941512190986552593374134816717594347149469621333918327620469233525291524428276172027752797266043250305429118977431206945855801592900023491410291993960934536426210184564085235622866669962083893311848425364743352169923986548664289337986321108586891775088008895931614708276111255422370988476027693180887334768405653220568445357501284195423947659521765759767211418345531607332985634557701323474596132004467574566077900751666617252571069351510756612519540116303648143836855704965015027375057558200119647027287998835877752630281475868339566817635406273936624422254092950585284071523562917041153872579784210997671705175209246056368893947245507970462041828739191128926204109857805863172424404124335754340409245538933009301174193317236115783761492857066774544804467075476988930898925791255560258711283044377265750418432683838901180181608456354650731897289828885147089907161954608381600355558139275551050696842635666068723840111704050332866474367420782930720672790162344857134297010992716554277773971859230106434563172779805718536600880892757849888082642742925646668725921932464153528367670070040267741600397090421628793790982477343565692877368373665361911614009280555645093790970513324485290475245632866397478875825622452063456465289949207671119294326837245036597492619811607328930543778622448410100036631679269089291095063380354751543551530972382222044465689418663559355084949364782465293020219046327617352923414287732063360719566525586659082824144040293733895744996868807888177060928641699383298946682021016869705934307440594471758386904254438855856592680825709586241457891547583729252460393262169752585848411252574277481092881532642129133557563507043753613769100179751974262966322778902767480667269137068045964638844775570834847961232647059923837623847890768080100111387984852959609071757475667749922335964212911043266524915469237446424326685643075747349809237614377661979270036890002613774584094697588523490582553542734727601288599350778375437179106230077181968848788007915687157560084380714133648298460674831968157425521542101917820895193063606259559585435310649436815088511826149130978346041341379123051436313760868625549283960384571068598477368072470997730009187763444619882127965472119340382452729400643600818989759321334818320375616934387020769312251636471280228697578874077609247442900296468107089654930454626129852285587136059290286053444972176698112480549005081037678116586649396165245361826640820368935618000463208076443499255026085786870234385140380208851918285064261992653026333775488641718629095328804589549537256082225992413255814114038105874400977703852181176751933026746604114394585776689750440124858805566464322077930623145094371227268235614665825062996381074591653441812431416647492238316794323859947234399815788409391979947180034134642287683088719198639945660970630735931379917660065959939796510352126572097801736194969753880738723510872239263121879188424433756492052461182641117763836369693930031347402195580583527496534947651216719647540320312092921793229506734357753080626829961295412479516599814993509118626175693786600436827450670334391433264618674821673644000616697047197893821716957067169204862849445264523376275024205880153995223308261836956318191917383043068693074547126995086944998045700868373881777176236972581154849814748369069479282642479949793104388766114970819945497614247742605356606320009213786010067977725462873973351743955935283947590503302171940045682249589961527106406136460179936723526569596827680708895746184302153413368781300699956407855473709998576266644694146047011244017617101548920340528224705507572451935012906891613660357995290619686831018601917281825447773118366385803282196236915957998237121136026226674729653277748724872479519065826523584618079352287281440606776799249777890335477820462601209399354067758849845154257990937006610766448265160375232792694031622724521231828004214540460812418729053273324010996443085002274080194555113717467117547349091559153109362443483704779390851526135773851771729396930652183829537145568775037895010289133213510221302503194606342212668498421916913813569056527179731780892671419002876630506113815653345115415526993299058540786510544927195382734296662126242498658798706901479511936334334525621681560639316452381427198628317521014747537365675797145065767279998585497521077930835036518714999636293616939813157321309033078761760129435116688452774887360754572200832214892094295592807871463570069460220284776909051451548030570058582752679109182640418183796229239753838238911132527516924940820784680721544314133684273825852789979078548998064012650932310259840687643033905550536817857097663641569217450464079395305271968477966844106164347790385985950878679217183449702655439816695517035318983180858623272123224931918166953244076797741413638885084600377484490642131836985905973854293457629028076570515775569397438071827836927977575228433924274343189349042349743248863295274389497667596499729142169687598237852459786747982579909749193476589115347476285272940679487294263231393474702190621373875195665201319865581563421487879589348251530190098504104732842027483151509682858664029999469765566653171872368183279668223282566113604153640387944071935787989155829104814266000044319081974627801238340904914240238279579377872853724163416446263109250194208514637745770018600785249014383586533325156808102364318249341309307062672699489812874286613579964618528015400223243239387153846897039193479445645955079574104633196545872194388732926112618261089661833048207788610701141495161648107494649546014200693583925261432284226395711874618805139251124406863995077361498521380779940897806852488772607234766143885941285853632784268403839698497167154028901877092729153535757114210883099092362845404454794146488471470439806066145709755375849133924045979466041338004798904699242291809581130329619093863234020652175634366741717830014163000928732551520745240817055707487367592933281987193181661102450289681787392792598341047549674745778916901599639255657768427709290623869674322993344366337514949207260842683941818610284079202613210515123723662273521478341398940894280768059332700051529970769825158930818442333954098995090679097152119216195688750517931596498112446657141685157397178459789101932786022913267063277522023434555009133043884386187323985772261429658579314472192260935323619130086273986750932879288910275645383462912315618516467976234422002371599640260604930834239404415539196428294651518475113271210903593185464592149484089859727842437370982298566631223697536139777593438911436258828630759395402208518544111298648407600472527099388013842680969047571530127567351146180360910717215069432150514314152318631940851095554827765154147873538233846667925977089639507791904851894411000665942465918466810971737781952114157230059422137913334113117178128617592722131604203047564582453320455578311552228121095532710579661023572065820485895408482197844129339954809293724421831728244195343722869820080816575724313535871138233269161624656879819418375985320668016228377636012513624860898020441512877931535108338271506874666912737165757834926506991220564433191952210691592011897317677301210766189082439620011912122597297165488451599767216938024580965223131194565809989820240882816220508644083417173974413690784397958066674397343518027494989678569210841817572657407130074831496794491716858022606765761142363262195122849706223725964648289676130840885352786736226534382661243905907078098304298417748253463429476967875448787231903588379643675015977672840093667145860774937632563803102337457346235745977656007971558400399714383719532833199033615125264852429234894009133996049188826670563200868928679478215113793243453978369837371369530823328345575610754092425685786051721234188640522323138763410574264620414003968991900907343341467470949515573627748163340618328514921254009791159603262892929876583958425522266105405096967692045716325618447329283513803145039822372863979562063098085742717221653623802725932060760724544219355160003935747057312656007011477639605249242844505226963630341926527872752576222652072661965264087135541839553386146171673676005181859545078040578708567874878952662873485743717543458007398105845786153934444494060855093930590709066739424876480855873696870877687183758724457970332072038788581710757799131940097157362347013034874449864711623929556218775681493156294718698500853202171384211280181267678108168751531275485232739635342027714442574010393244732316939499693149816740399078796148968377770595660135182160195920269966167674041054179736065897361211513738421684397184805839438883156400251405322014128721399705508009349895493560560455595746668761892517587097375376090977470892413103631278236597461763196020218224381803321607171604349772619296245362960071358204647828235403743573509738543999051674082162172078787472956197734059881618030668649579593306873999433937936605739804389835907145131718825338766245083540644972668626127706290604618077981610403839437061881396825461827997950125644419351727070516052139133133362131133992547398145764554551388796916631359743021142553202918381729051597189690919892016671282527466154641080275604813382439976350199163685843903137917296534745431359103421377335458073832391073621841080171745463908880767655236461911382040271884615983754365773634398599572010974990996356516798165508345036762665638008074568641515079320882442185200175113962159504831612453002645450145590913845762131553700822333338683193894691121662265349323638308861662341296191760179268576474896171300810363114221164711678558581352398388006309929537104513628637910252393058750246216032325276228117420322860263003612642630207027239873664969015259753499485099117735912583853041177007391721161854394071484038925770802753373272705160933713731594936681159063783106040439630945317489243975781908274474381657131708791339162077657421049221437319354254205175335883405695844815094384073563607978086656263074678867802861215009303020223554100096730094075052564599706473292643161594099661937233091633931576741691393514087432329077064580110663089673913455119485356066530339183862957068968828881389961850572359745982856034036331984700619153140631833757554212635025898602339319199773135568764703104397985274795313025237598647827250831051558098959758922644073792280582592724178888295905199117811847294058807949954253929970233295599245747220805608966995436720668220500316488349735282159856887302044413342427213915977749767364104031128279636667559383939789684259834614909489626705445332967209802684655130668030579715995030529033639357551279615201127183700202066370580210981649592685938030538968135121879661922291247790420936277968801648642789907289965927239304630803451612754533855916919293037728877233560722685777305563788616941133367017266319606092294544914091858137746938894160547535246465294189098159853989357122347995473247104657877323050546063814239468536130317811515073127719756996910671681469648065357335727345334534792744067336950695766505031950198007541086160050210545359246368813720613563074345657797455239231656353891716935245742911502593100196510420002857275701985589298809466359639706443406348707594917085418015033903050291651089039202455081639600367645227821484883185206502323484065792088879378894333456669762382039883978023210295629113663097571227175850802753614635662752313028963123230781321846853560800611055454434658644293266976742345059912785611172592775373745805439577739197376674095862099729706814236955226694161795892814920937757288614495181438122490298569652413975190701055398126851868651219578045968653061048697654797413487189385582723371731933032113964729595152631652241762052189379567211222642602801532082639010070737159967434742199868997144462294123136264155189063505437347601766812147820654868868184942401042572882860198574832588870481797273738714467079946331018300939810146722920246551213657230041642180561365885380174385087657187089497587065607348114297119198135762919556594486314748960709765623713656976059042606527166428410110938316511956123680502615098568764419748829635527783195616322770682389241919812421794246816166638572023703726666367223250918993667481464427262038616576249186054508003797240553340319252520659445174340515067996314767651306430315969383380895060038930755647277955524303768241075687069614385109212804947591916390012473521190754000531033908972105490042152149921720868864193549964807519395542253851377467398676040189068602150660566075740735215061587958229404392258355307026600473393980058769063510227243497475887851875186148962335785078309197610774812335374363536507290184526291134892944691496215553234583654998241789547959955236804639663459948189867999806396351474256585497863619718521581633372214585643788292126546847863368129337568879304105907893007124052374347463428107811089400546456504950505577209061463437274204488717326581305741649361298450981235804431795352861901608665916619280085816833932900149440897998275407368679017815791447337107163175041903066886731956606177736119602815740725222481743573552009567556272841757527291763179011918930872114968669611714163536787423167831852361291170009125215839379842693516723110453897307856202796014861734336028835586681112343055824001767108979341359709531851636833612994086500048703587815138977808290929069820380761742287524920710625136009928772434371053925706943290172609002908269643019371378855297081572878933016808503737066339783639705090289492798640600570337017420705503576277359104150557269619870570187946944581910080944372731930589178887175963456455478320959431295503876200123341631870812991352292307656467295336177100983931727408351800480700998178803049637854142137311105957720805610496012425264726470733884668348573836523590749500796891250233570847378286003162384615798141391362547624795191648765321750892964949338867659580204534678983028430969755863720045390901513165612572913674974981210511682687651497744179990985742522775679193283964699461496336896667333411653989553783951014218757877843604021412182618107950866514224243570830797911004634467652838592177925983101577782539547086148337123704995364406816254594767720407507694902387494631005061792297507629867643463329370562107740481129731695581578706503273205536105427878036398233388785096086361308061777349616044580785783399372834784627286501447124258492750416187293353305322686835623839231322443206154911688662338764485538422699484463516290261688920589234827006999790038231470928343227996898658557097444296419938963704296980973773660361281272644492168851504651795091836565560475230164899764805411492321383988888242843952657773098620082683923869985308586854808390052920194233689622775676850938172374705485338984075850791355555358839655867997094948408117207965250738768723689589986956029780375400499219502370470734096039326294706915067708073614974976052794278816713664605481603846507412059054065475398612216035544118091220771891659562896197319593355545109771007065517590958971548208377558186809598960385081660572569936335396254856448697217008964581010220574222116412836543394622367043613120377604221339661206107938741407605967479945317592461434896642632588699853483120739109233887018925956365505595245882234499800989406238113843142279800612192374679143849654910722404711277457408263779190150017856363886208074864090701590903066831181132614211529895553325951036904997560391425354123461924963940687866703074477463712811074991523708242426027733284989405003543645301316380219473580194214891354282375728389352129115090757019693840760245248639288409984538768854806946268743507282056431102120534217222683596656020055521207989788700827718665339731521749996354681655105359467011085994828404499910892599487849954879680790111776928386259692452401996207676144070305361630804328029039679397296673424710723615684666008574883326297246459865282058927876143528062286122234419032428160236589871809180927034944362784661717022034656683180580153940899794148537007560532627836080263600488939000534254029763171984857265164175039977219539298841502691413795709118925937179697389651294233931610750231467377294163322441552569782841210933776631798851864587834017850490088767072575984905174713698594347069952677242690055381745238775586097292863077813503341571859470013590068989612275295929846636398191123778079297959527789456513293690489965941243468783113816411846721594042640013693699945419947071055164292026748962025653379074533357128640024358405166775796757715166131319597548364718916325372301467941219207400056115999809412907566304390236797687490263940118295059422320661308679941800485965672703999826641791808797101467771477793454632598198747366329561061709133071306916862036651200402278041787728769713122472436348414970555745024535953260502558230323405663204932217620734610666278317571685078851207404344148904476344664712849371850081672058403969010017556240756376184853220030645797705406804770611531731286327972011817408264187106052814200341911504502997309421989825381096970870468790404096350576694130134991975704842133179068672175088082624142074262289826130585493449886555499897308106336524118839853915345110143631632538718311838479308151690679027827891616996158262442252040308820120849113611339090142155779868461221162104885189970899151118758060542989180610914162238705671597303559609593818294654940944132845903286729692138766295189469838586471330042661095838920132574116391222114554454821305662255859381648316603349216980338553497209653636112516671678175330054845001223109910591412458939507565122808013846732359637809345605886580515114093381561789910485734798022455373320950865250544225006425129696140810381456822466416977560164827453199212196519373888904003449735605112575132730906173592652201292932164608663295722857155402488949922580870365412359759610294775578387325058046557708866905154416748684455133385963363865495800577549458263247635908751596201236720530428907924797847998749840777570372516725601069527484582194347768904260991294133190927676541974379374175740021441477736693088230696679344499230957123354026241248946009073117442416712767519122511657806409900959130030086776707648424147342258797149020438660040317027070558974352343334619623663340163368524256090825677585144669791009596990466317989600359223029666916874398792290957800482964342625650346865592257819674649496422790027455281107832906010017740157722499971171455107058173202999940296456355756784805993710236474670369403445681243830143853841961788451546129649100662668829578244074136448084431582541290396068064212112327046761273214838267720371730108550309302796255670404378899822365083099717833062805719758886536490910152015151931706776662947986242174039027450828699145222987627939904706154461359279008333220959421829996165410719781294584611450721420290686829766629151610858660189468075037892001159280680458616215389931849591214446753440563811797821161478640999359624999792670439327109546406385564083166475633378653280274739767244535578754221273291351189858368911870624559852961109958782584420217680965091566024838897878379744900016741297639444011374279900471347326149309463152300973595296594983013111251345466414431853313473283573011732672255855391966396832439841560768419938249409585827386008737641990100779982446653891996117649324649930107094925889133607005125472100938094338347756304169059658549877900482138796160918560246568643808529297559273139224997954882501822160905442022995489702102882322732430502803525877092118200770151863508938098713980708643962822548661705104241801064519550789084056638853895053263083833996101536640571377981288306545275289042383145037587466052259764757874442470905188611439610939951321497567892635847299108324335235472393788434651551339872620418760360904990749496613906804696838587480615196383110749153136280001354240448147535019492750098627273504064633479610432486026111080818881554736222456628463084004555046355472368703204336561664259453346849044819368718856651195602307067013006926605053424745912583323773785914156967441053006460846456515770947675220811658791610109850145299877716135851046488551202857655778706164392056310098661002494737907836474541269288186866273310764861606785261390335190347597186560726637133592215463446149848946334787224316184670043669727121675313843367081926666153337109925286840559222138966860905937851993296336578569868289600281177324871519493966775590508377695759920551226189474116559469963012303084187590061766865253197603250656291788925917060963970482944549248292094979243116904845488044517015367915165489947027739396925957486470503564800541179253767728040003123443675833587227512745263897514953003520467920456700434144505109721804604739413316094837271318316825714409767641062346538849325716629136450591566369411226909634782772451413206971008150248825140822032420905222645735509807742446231277984394058566303235022177077410378645830224654424521312820804275806193516082954131790849257676010549774239723048595625443132999553478283247353558025207468953573310349086441871752632820714978250903035737046655957587950336533274675617380234141026807868550834762719518499236483549576412093637991692191707313006674625661229041998801921497869458596956724075446430143565949888756831144494948785982644523028529881747310652666313787820992164146917343964619320175413511393639246042489242337863623476427243135730289995070399334182347619354203676192618370642856138341311682448511409207196411818831945189868822140544609671684521632990885162836969075176362011020957824817268907944515972639975430826097307774075699514744040263045420393782271538454137122792741424683461830350727100830755192950905777387223557373595387533104088832812511693675981756447237910967045817419012276783284879495735661114235002413543852855484823655038921173117089760340967450141514225350592315161427275393595654981170790129641755444693054482411369072126637539996887045826963010947880453413032483432763696337769203566681820473277752258867949400040754514765497255636783222993119004922357468927071531515336057430360661571883254751362482817960480834491315095871165019792360333197886063222485332328176992125458439320334457935837817700243919254188546994810791808293008430453326478520574213202126861585645403658669558169129862493859931448436071579895563541027222794131394385018948836435337998162911957192939857703156064767907789129547722317353113309120132377697415180968184901239260457954654279771924025616617679779968417410057212546957644983077569123011416344399708080439480035609216484612820480421340046310624606958211229215876541281531256315768228878523623552346081362200879008506357617305213343653448509800427602467465768317335125233938358031481419680712884679084659862515812278880699975935932321750163233779835955725833078630524745162581706753353373360667893856890793763237669545960665695149326388045485953938345059021189927204891408469713691114244070652027775513372697260548904968022062228986466538687509986612178054075562619080161528946338168532753580085526414745940466533807570477248781906820037598385372859868924525922143483509174764230970188699960006635030375899846540276610334564718896070674126718607655516041434142596411216262854849751979387198482794128329164407621062619295002132818441181611433840920973802269284215970116348990810406466028442540375216514628435270111309717532598416492471772381955997150049981395705519002972497254269176024812608214989488316049751781041710524310219013319003509523283107867299156163230763338810136016736528537361171469646294534036382464494102162344739525307394061636529602661167559185189458320523582908551734762432337527807968993534263632429056514371919574366454976771682488897503563779380479946796344648778166104065564400521269704819167149965268703318743453140537087900998711298370083493621362361592189941598212910271342751988568351530532160841307935000591123332326327449311623115379042082420779572670384217799571237292867797258099861227458060200174980076371412626554872844510869130631019639506770092615538697197258129946872427669413622520873938014893772878855199570437551270713926995789600686253411539669969766352228371502270785700693662744543684761118011224498599916598847732153599535868487537848372477648840707094729333560804584748552191752272461407776634007240321842669227166337090263381726194156496748181100932241952211380203067388559085033725234001731539555377361822359815443655421746146447020997843021606499305196798414818399662989520689713326614575477877125006355868932878139656943646471381616787221882927790876366086269000216563956554367224164733192990763878596612101551373243916875275875310796448384143471355757198596952175042635122099800984697627101307632098440701114815151793778590783001831817403326352889952868670448844152024835864378563591476564918835188067959454518416109448282336801711498516624046296329190679615479271653485431236222330085848102025837194871304233750616210363257536110371303270240463129482244255692169082808272757389138432836754475522273108443084299104360154795216742070091635925781580033232789804091652185086444657380268211124123842464095046058662341306597058687807314619797989303102919713620399231106207773313306228686668387863624312156100007827400110884799812226361141232844245056875390041589203902848964482917778619221635335738749138590573377380931059733141733373226028320900338701678201968379042690293567591166726906159431220118642838808007360601888397631954253145707089804944471629656379823074123387476090713124862774394914679350890922076194802220633451004827298763306790007815905632191012778201313547941787661511110246242635433060386675649799585903818301893653937646314434801705110678170522528377023731264629089326488496931758619839529720784832922263883360299855058948331838679065885433250543901835919123933772048412289590855661397770204277390426570022083830542048327700886240237337665229639969498339388602509735070609124923127192052917400260787599801914103780339515433786919822392354671005281214915087228157436400313966790190148341559738116088792878972321830525632135753416173618286462582245010866851742571304063045478974029277315459312473365957884201126232096601937095461014976068780989841774874498200458417124488090959447134918754533382883780704162470524194027202707130774462186179548409809492683020100827043780904258471967034871742799415256197582453205807692612678034055317575988833733304418455044421442332347259006466231307739094372354576969188958739817146777084237149795072017311640818024686163568484210605386850342326715556815346418337048471156428860752954497199880599745148033881947651417776683466924288706501330015768552163570531286759618466761140215141337700612274091066538933214466287746925043775627855816799061332081624290331067325582757207221311748527877116420104488656698792176533929102110577503920679448380409671128263078437532774625096195111500945114660419099535325822086566543243778926730066202209483087703526707324800578532221047951461561847155194411716054653693859528780890980481881335656386274953868254395711869205066409580234157733392577292890091330146346259165651096314588909232218676110152680892023196108624043885189251316325357996175289179773998770454831596300466554424029440432940032268267145362612281475119672771623378416406045626993448145561579371169966272700579071080046465849064981383128391862788743026537157831256832199151150099399383748434371487449579847052156141180245737645167530693634398505399458836715304878042865110134970934856048477049027773810014314087907545916472636433126312452650617981985463539822121119136384530387585879737687055310837897319835602809678668260852494133475781272308670695627812772389357438795412166840473510761008713747796315208667317884662734106965694812032969528270299992453642434201084299409837884556035973475213800855154138387372716856479428206546723886456830643361859989773262884489884049813148059403397126150996734135481068792837389030140697087181282161769488928812162258009816626187614241762070461163294936273757044974682725669030409433543501987930957230281480876762276448748440821932349139195475326016599364733771472859813475372306750047081218274784145092829240340236028021780909164223940717868187948024271936554522623745723765238481567357802688958015725093277118113459100755161695266033458033271515593643127961403976565499332014285420621358804834693756854371803711556304509532853352386754055962682268050874332218340929332408618895810161287519383650148625132475645549459504617752224085648218389692461539579140808696041582949163503861201359285970889614441677129685183858458235120346531973323184744254115385027739243360512812551433601078926744761469580771012622726864943059456605990876917883703919067222783159092151355655385694157456456513760508591354785965735732148916987758176384936923320354497712273790169461121300710908746926562867424314454838511706381780855162224982688152077091499048857082617872948310983171926048441365747696217367045206491609189367834684512164381006374775851145709577063383020123561279699033031436227039464816036363706543509168992416898712283286177944789605088809331698998749875756891512646689111867052234963323150463139589744491099871375815439028210293363752738814298351368439561118024098159892430786056634081659306687258623656371164668337769843731704207902924069814026908042356562624800497628149171508171161757856205485921904328948217856196612826826099206565607906517356851322454660119605701980682731438908707635259685415370423739222000686271280187947619302369328133407722308629656096532424968594399266670037629703338397036027581718148232649440975649263769617095627210568037945295949704041186365193028429289457273985452433971765451150124915262932233902833832522112583556509032871545897443870884199529053912302272054964587601754035733090857060817813859147654256432074727507777034972823260017954080933009440257730226861168158991158942626118151983035404753385064726631496634267037089218415741386101430239381221423432149500690802983585257520344763240235317517077728966500733270976362189253202121056467412893105490948786440634361484086917788042117139051698691057968391740048915979980262227996612914117499446996661021713423082303367566591505109966799478767334531057508521100825752796146343559795904101231641670409280628759054813874816224890550338376464282650242132500442976159492926904469880510909421861123983579803576770752621920754034639745414629621453388864492661478332130761789187081093741005148938046641972859815791638543404877719772545682033642049362054948736894655684487363400118324780764113533701910081478832856836251067589055888426081565834433596113519725147369913884670494193516713599678060865613558362170023496764957736810579731926817810074484949214194591275675543373003446819936419965061716436881221763488105135751857820581368491330903457035935207448396599803317213377667303927739252673379476096442657863277891493191151636351714828818443614108709455974597965223146722542397838406736696287148512813043387584235518574239373594023831317753865247460382515375761781085273771824487470099597630294089733125429225823514362137411770320417492130579863548038254105961339798278060603048754889216959878181653841862789802053284179627326644385910816844130757834099736964852115190639788904098149831894925796101659250090207591970789322710868597638462644483927482627625559103337927299614235804984786184227263982532657519055942163576719199506618813815439460997637928565155597270533768997778604217586580415643375451760466252099485934099119973904989195385868278078506074476201312525447807881442124853903355904010726601812247396350096627570767115691150821397438072651289958829155862693194438802307894840600866803746935526346859665081693161781242597898736051132376070942868994979918321090922313297203992452012392730058260499637567248793761522787576421097610869468941320649321752510407792882284837389058895822831108097095097242025358716700157326633688558003032197597974806267746598378332051511427122148868845773978995991603435100976308094530555274630737959415794813559047825830651704285337288382867320459185287584561031062865388825055537749257225413106831849204584372935721489504116897053991301786634726334006150069202187892907427454464026779295961131826207059084806361175003901247078039203886737306241292710492413120452923388019245984341838833065038493150635908451533671265796753441979026677961147286050283407349958978413912897846216717685444442886889352671533388171075430495254067160427754742524818478058376588360351145528952861055972311980447241689979670767740782816955514263719943308554192241705152843319090643208766227758864045648871061192635042288894149139667242959230809214278710638818988310807803882670046088796904520810554974373881777881125014044640224047982195106323375501739784813273498748716081308128674499505876723410533660403989775316916043556638752028013444079201188546834784437097994699216288670518000150483864404862283498799844005146683105140025915191505678906141895511486161878535439336319063554316929272254977701672765573496500710441090918957398511239701485958977649498379112157598638596528310580310372692317771781773854050383435586324781610460181210029753198624351347576075552996019938415189882889677199341379706009277847474447196857823955256905405966395906469494593622245439976775314092925285590310331760992690141109509244831392304292619264145300763934863873175066726422273154257113441430820385228376536843139600862224332380332623554345646499247089231555033636114288985211458852617194368085222100673605302477364856034738764496220266988189292698517759236716157956016708170161078591914973867619797223997151214466261405728180592465205973996538528876213399519978557922174036143486770753142878632104415671246147971193901681063125067485600754434672968580854941246930097427295854370404867764799535635432547171047166655830463313179459318715552349456951223867387091949660490704960982837431571979079102224869582087736664292679430968756958906326681539278181685928458165592911119101954078953294420539657397948845839280581662093973194153370321772317467849418985006757197299338509685981413252612318413522526905723741516272857572755250129870284364671911574476154954723598585287055254645692270769023856643049024084141529219463931849716201395162495596838378150077526826962027309465386161508458411254104329045282457340742933236373426071063546558197497234765800189388527798004045751008854055473982718027312815702769403956254525033931985250823176432680913022581304347398847709416080592466325091254948850266047747179182594793476128221460368011580531518914813890550431619818222196249266035821742503937795950609182228561676121873186191964082386353324485649514142516410478105420822216835545537153971197385672424593121662880507420005854417455966689434231863291298361312707741874364387106876167809165124687196675833049736688386904385592678188428363351706653548678683710522098756145662056969897440017438029092678313641340833422130122030188331437320517222704362432831932016089376640393496683948154562790947441536429691651198018982648838209091898823136753180133576056861574919433926434154632038728912936661848695924087845131099252068436975936129470113705269049137422252014380398902152237360352902575219824913546055480936016964465184828114359470821870330296221091394025863456019528668102653486446697504814362169996556781523081783086357369020818876768977950506444281077242919307955349050256138644668920213108894239005292472325410097751161503897105242757952225157720284422981328477018561706236113557936879305273536337182789600622802492959006354681201447961796812271466736582614594325775601258821100672990920490774546362568392461575697922476875631876998391938491009613940804818122945012777748447032809280997324881045762059226498075761278452376414976843234865893902166990040973271844624028828279982883533005910448498599916110527218925874189361395027477351493968445461426273585415517515184350635107834702989251032491309091798508900587540822355873803715079198067050067612394348859572093896246969154773495922757473157711873926703058405049893271289737235477817528675375504290998957130162916668273229958319630860284364218210468244024956037111826409246166394505626940250419627487392654453846955540555950798224145792027207238579883402239128824904979694986492807537723217639392660467495033149254810285645060174521114793721193336472679912339991003662353650179040042062350039364101477740338218634463731829159975900964785478912457766926936654749203553266024017563015767781429183185454164380963114547619245974256241952892654280491917015703129041193318446015079760122433650520091408096625819742207272927027850063016013718174112535312078077438294103522554126208197581690774259242723551586922587844620041667666025983599277491240752671372303069339392868603884226930220321294544064185884138314195797073316352289464426863659199070285270571267675860421919421673500949809659273192872105669236932404459843950055055364719427715948443956377063754553838955709063477667342135718052422698377104876628650264380711031971929691712719196749211339244635682979541455817810646361822187106501128872158987653641016289923243287622083439483592692040818476758827041378674185599398327483418291809858929319973311450272583787702864923937849872717220159751859368484314208082508269683664937802693140194833559362868004719644831565449970878344817363278753525540229064237626093415866287020230022281084693833211540372038925524350772013432266426503962574948984379862381727115040958431600528980475106712574634031976407099556169335270924268168405430790091095066515966816506203156340524119671578341320893831826843863950836663276120824732300768972845552238043876585472016980065639875844916298827883281863606495512330252362845698125142926083290454733047482834738362826083393972092178692389853479496932316700292891516116591704397510228624749963588662621322357290709433632013314002962553379735542547931670993154860532375132377234289749051100357267598577480004673939961088598551384818013186595680074293792635133878001109112805290109839022587951072320268169968931380663479075790821893087342757318466775045985712881310097506189750617531073212920538263344173255379401860811879363055458786862285698692683474345765132597654676197014879465605642843481167051057424585904264249986737621217862261576860378941564181926302650801383452009696163936196390800965553958353739217060339629483860999620560834424928466772477313245610473343235705746746247954358663931275222071398118224903316168152954001198928415510954386903682205802424961971588355632731603367843824530004629833527964103252758361923166983713892886154316456904841271350230954988416114814500227728786675965788206971451852903437462734841325933942462897273667238109406218658153714301918477575778603783904480747520138917061462237467251531707508623245511894390426260429464054055831282417255655065940257752086280926840278784449831267578765229985145055181105938590227760524932564414443031031718667104630890781531994748942886329061813377799506638317878685608464273364321112156257234036297172617773750314959880128101626237786220160772535611154972209316649726839838441848916223235174409770175964639234161349269368994955658504168805946674658409575661472762778918572052617312102084398977601442366827529813086945707009181431648672237017201232827603623371147463712608970323616850556840478977791931757313885834365560163909514075928181949408222006402247553315650642659620861305213754869007477519684529172182613299935396340954350119651872799694214525719292387223143935991363019574875091616844648702225686387727296667483579529981307101028053623480928904759027226294971803588039352991695648065230761804231601210000961224331542043902126252109492277697399413270221156047189834830586103019567788539887596126132694714781663436505722798452666521441983760637225262971072388036086304772040567710915623658760448949025577340206063193328389842535316874099341202018988309815937842050935889340621942054776476828628567519128198051825637417826039732792604121459553541746949463371752563532652167312789305161108274245592401706663393074150823315885545510718066620562246166415655991176218537728176464518562207349077104491147915397144900500918218346320191507124215519904456837214370330524901186451888612951330692595595636057127361088183837061648244237951256486157852078015289363072092744232569195470063953602543940408573033122262647792741024216041560647663517003276764495167907579282327568731446731705338272656658745890108396201685970941245803089539537530066334498208851021008650489781490403590403467920228575852311505373973354563791092783602304514148459339191037385282663972756175469976030403603508291786500036547341103726455459830674338269840161488529594651720650083779008658594442325332740322212178083204839500062327783514566738457589401450960912886621848641925716105434600370208528342411408614158663643642269595445885508276810153857004396852529097723419630222939567853260333220791672867836354413477357143866021256373617358936456197146032951028339393234737766538351371463130120371745016017630136929799457259998059695202037595047233121111034171277709733429705834601713611455260155709261222364383319528062713586006310572828814245398268269118824414227261716774605617601233528887763067705856809503798289793349715412859501596782367512313275326571620418840532747213794368872350712593916068679734923649649187053068194662033407972595193515724485642996683959403308190776291081517971515057440345801937786874718968323111130454044865393002161826886403398490702809696215500889152428871758344262916434138693992424938347376255099908673105189197589733531374212431273140755203601437423589376299576285492610390581260908365567005168080195512288197010260096374753588934031558537808940752402269324181976837308351649694586003923463056363137147049350388826306316815639165654142933500109552490752743889047990065202792865148003850754914069033330461010225174543353419713902227993309070945145629883252334356144242414491659256458497604460515381184616478197188488155928699021239091794200802545673132253413117762027750893824703239790192327850132212731213807890450546327404970385121933965909215911587884569029992115989014506896582394185641280473717215519605989145588886946064771947672984003479419534839633069471019076952510445138774229444502099611882418916186570352713365165100054800788044176995135866861768515582944900808462557750951294683817656949578569751986821152300749996193056662369068081341793837267626709107103215154059940942780466984204682056071011862151360472876879882585581644110139127951737908942463126438085332338431480302978324718589629984737379522287136592355246915960087667025699211570836778277924114030715669669651435636636873652457603694811042250717243597584562725972899628866715942782740325840118419983242292050058882396791357581989395722154766349942778229040270324128495490440400149610320610461797025289620032262422880964507156801569588722584103999279544582911594733569578344003534806695414114780678885090104102902551184725131237554941084094296786630534921680137737252946732700587968783072448582141132087963256970110680468619874562327930910322428014787188917833734087748736966248786971525740498451191443832015574583617311172343249696949013163089257413650885301915167381976562481654498178950272069296963500770304331983444622010819293040263655193793902992922213723792994514868646489657280821271319565675109875935556847007765630172724510436945476865979641413214239823610672228977637866933666330625568748693803570780975478973358779846578109144691351947833560018824784090644881230219369177261370266281469503369344075205439358900159715333579204349218060231171494694459051193604915899166273704988407834283304623127593483314761089537989713986729993084255236517432555075042974457761554830175056475661745308229688261063835233931588620067339853181341608119302344009145850001499186794361017665997426010926774961490045369283232140363433645946918557889467625254874832918074964403117998323900605814624214617855078140231087634011670326503367556030194466105597683734655006008984146547385511274590397344039550111084822818171654868081672672012919373593441697191369338123432782106364637693363242422552993938296947020329548045081884549698260137459010198140244004666118757567514323615522951537882099801442877375533104237598280617159218773894769206085638398135177978234519278394142093282591601489626640719460259991512108976041193679958336017914070751293045298760224049320973149553971879917439676054743384144948359067086446292197125574973805810477440560778829569059305682321808845636800561561007496716939712233263586869104888564921400657422100422338366861331256410093783814883544821401184524062361896181594106587549362127566067564869780688741900039046466263621497371373952494202101049988196944936221774791061828244564076543856812970582343659308105827954072270385329069073948779533615955806194608005602302059308136223468932430200695281723013038554117576227453275300959346835180263515413840376503793259520551731957623079869672885505212324211416188779541370242209171303327346728177522371295987717583105158575636804462455044709629036002047841300954558000772865455728925032731274041331858880465525528799055971792788270753615182763946001565171470452221213136157789496559592798188985456335422760199810547225463880158324807972791183680542391863313624287506165497742640126805783472123366835291175826073514275862089980805442543599171829477092594243558062960016441513391731399265856921945818324471498456454626896317832348731324071586191743030610356523017719266157192342220501863526341966593679529116150679059473152042509252994094686347871233534385636648558926448391347869313743577276110159459506539563311441285464099797773742558352603544764408513140460178997220565369607553344125469645005257721819335571677203968583810185794312246651763988292756290480179499426204112144267436130686497687911418975060249115738988345878325757093762924672972387397060123215528936643588280538964156919877248854695952756649089528662137420444696569017312674784876687976781547058238392524003714639186649077902636062579099485627869486193916781568985230275652182365347182473529771163213894369761166637784617528228360975425997947141972040848134721477630835938041485132658184130948192742643914518843854942352668399095737598743566427247089976260358567630552934531592257425931127760686975412613513402568540067305567605137172282018003151418321411841610588724910716183094308192033926603231234403760054387797577994912670278499548780504176535431046015396624374737725347980539519906539892943047874819705173644162986207105227404690368541871440282781045711526540703386769253655987756850074037336569644215210516654270454548632442670104405900566321127662071986345775193917555804270927610024498262890274284959470139852641604502700035944670729583315529712959886672011432110360518541818930135421102845410425096439229153843667364201816215256576006614256232116299789446903608247383250970521011239965886063624597325680962369221065335718963816225690516361482925209458750002476728023232124845567887086128833637958455832976243627003720046923387355800224632972106342316517571378770224959661100553937480311551545083589096736548236681285730566281297801670291688107015241492118245698163144011828902766060260999577413545444347054811976816502601406572843793854870747392592217544047193860243068684600201568581741570932209958554356768282519049592939106004979475992488339646162856706294760273695699454365641350712777371655441730977465126161062054313006979295052037741814775677151204557203182892610107359880550314755604111917522053740539750520934828465691169430039481596307458888742202770325507339635348288946581715040941118328093205370549560688436847276537253259430902477562126242977032388460668557582457046571351673654871343668869547690289629541933979097869725686201357749021598388195399221513680059581850209367802442184283115838045458384131584354036962136868503741809502170971239208206383503523604569347702781683229005345467963761705672446465397102272551898375465271788034402600377032535243116202901164594218771383340676892583319592742770647119347551906842837453586455209177464387304391946060701409760193388885531060819755734979109064668593244131640372103153740955314161350039766007555262109776427353206801126228788080102676596029487390881861472385665966120371140240856362032436565545814330352600276911700320182304952379053744472086060104163990348636562175533826915251814808740634281828050521370559160193458355139584776353623742493913736254615402314818994702305438391709360704718233925887325974383641715814996644877562361087780345645613326578080496867307773427355202814207091419951574799247807504569427813551669562057405267438547990954770157454231608944657160888386846205925505930851077162580385577411612335269181933318985850333967338884538172623317625141962150307796802390248510480394698249335103938050085182267151315554807230601049375269190504760722985161304187807222985238537776704242406415022179838404738597012336918489524657378875824449713878008018032601008509935369955270635151524982009651817850077069356837900058641553246285042498233074145580142970887659026098345418017575035412308139358640701409376354617307622222935099825875915356006953682641771017679509707107350646826371511506299809658266999884793615393321389146315605000140026678219350449222778080812115756934792674180067015803282069620979323224511788255166659770026914054125804765434360234939651936858607897343068510844355839854522784029855792522685102401626421831674057126541795301110472772287843474786286934392060094265389526610103193878528653610738691876174743876630948143642633647344928737782697240331884995189894965251953315131445213819760853677160130250245950107122612539391279140757878624296035861744107100145792205039799359761727697295314027394183799289296973921465037269186849910585807217707243064724286610837607224351425469702940302846625558717434264808772622556851278866037930300447904401898283153060691424427475318609414072855245789346324384459634685607568188770035851718035620672129827754667567120581276031436183540117169969335587522595624099757230975651357607808413370740537721295038092102670053526645698767176867543573069457890994849120887257928775767134328701108317432068027851058365480271472775894686537980059553924130014509322042324067868809934442015235654727137891359809817709619268706779497503702019859615739073808522301555932546265010992588267734072391051979153928213756409621903364276903450715110370214606370773961664864721971531959169303074965983698003157779257440490124806067071523177909877774281443180519546098508900928823515424851794987502444586697769366896836331002310886056823139140108481340169622500868471051564432755453625609598287747127807552928015502553941842409108333285740555615848038193618675322538755039195165534406286208198084086948735701539042597818781040475395028526970960098051321410219976850083263094177506996552872720132995142817795926240917295649357969475612384139913881047559775619298514226557155928353580582386654099956350654989021827503387154516988618335835119294163291200270609147871700636012821724669357776041395315289341850916460287765695628283818233764425770037905612461022949111272084038383350918031300760161931756341287615210006046334554095855450886980623692713678547717238935865074605882690732271766600868248703735228731927669193881261028310606168782033398426124649442200845811713222939982200617692950779798271832080979720262674852809351853262367911144723182552378374172993151964459156083552353659232157739034476769551894175744348838703083199405760269638540363134129433119450585552465439056184101639630068682473834683025620738955451855670323732873194687032700618852481036753177857356806425443227078731903715108382610505963377751591419157104435338003912167651941764422608527197343725704553520460900454704623881586933135789572112724931239245603682105238024780721600483068761881578608361990994490119248663856488276326071069166794564570925670161509287671754174012971361053341524123115949373252419411781455295684096560483681711646580173847575381503839263740134800709803034467629348702495258872739211289054211700470894372786898046854728954756748338113322886699209942879188743723142064766180472029348184772263641563738061577839990143021696260353642746031143483209344451553323945062122526559483225363390893527521088152380686072238241132555637461123816635774168407900850560511385038643862861826886065616974544243975458414021618605962912148420183256294839123581169934429589723774722207228799726702269365152958416662642808812500001785548224619661524493179649692823863628586743579796649031803398416351373210152898542663900029842389051087640499749914728988893656158756661220238747118052445932300174310110114864964838865028514258874760362102606609422759772218882490669354967907550389567295250236052951791965479078175713393733108890361233345177099862136818476762895820483458002183178659590702639783204321843857377572820504210681642173120021367034138448234169867644808840149108219080301773474099436437510798330589048869444944627683039821618261407832093595413569543556485700682990838249162883223415390835468070615621814950410592920120635931998668485485953165587111454441144201723351434935481892110076748851615323892899426008870756896177007515994574810732950360410938888847493135703653385290136356594724460336349432199882831841958489894348888669325309176266691284534066557706518166055507782824408432936181487258181030593879043957904360089080040989281514364386082387749022233547979663581954313979917519420662343245115941800775542401459523725566652007167593696439047328936456369314203144648878709974867027809277730986964583663508628794159549322850601539916165178302168724154089058643360396356540141011938104474140133284297108802125520340528090329719861701824376187011150481408897834147651818662792927226974411378350154845426177947476839746780719319311767797868280633959542566058884556981035872299557189334518457154563238807546733531264943909622489154967531567757347843819602349059737938800264941725983000831863209044851265337230575077842332653040091407494108832114102284893125590007787126630524755072607372787225280529529951841480128018255363324772559640444857557870300521917084255557051275122961131214632315820800397962461005786086685493552028237612004730519440950181985667586452105736204726124629904787267563291980407103795061808969977947734530023574343800350659652719152482029449282792692488208212158035288765165671033646697660221629160331734584251011733528624472739378871447997445152255449504250072066258958072554790567565406232186865006771751211329095721650930584644991708109099742861258820507680407506695435397127953336770698222975528841965845075811267661245901144966547964433853745688927357114260023610873566661105398198556461715915281311486370829128322509892350111167213480566381241633052827640065873573952158819756794648515743441662980456908201173905592508548199723430602575443052177003758548026771116139427766474523156877895540656420633916795971886462086764952384004492908727759967124306269208244306166479731143636909433838407249407177937075998360618183592475572931428639655584484270127285560487506020455630360371282631745159164975931541776904083562771056163900816124160400792637717096719465983863552264812979653490122913017303769834124189633531859590530074913821490532115025854664946917551578300400453379180686623157011853820719075973456865530602736473346170677112092754842222762499093221824189680449743855060576415944912800741690009323324120224161823753415033732248724673003257166337998174421466051134169932084175381822881739401500217542109453723074969110699354957405923308360375579791628198746952728816118031727038460765192945138518080083327778331985518933618062243857348706744753884018697016089552871555605365327779845207895079208491970103594930873759683391037392426333686760812365328425940704904543573963575802882209867295589256677892519985951497036056369909115083721340938009057412723745719085032708397537998919446945617962426430178720116703119295762923996599414799602041204005107874542011483700987511958447123524693531552542490869735327814501093673154694656992204763404973685330900027262964052225614212202023059006968589108473845254960477501558591667459654191946755847775612260283779334064436290754041668815006417036431845893248412533217623334431194913737595853114263720722186611277637539871838540905193791479804082641062878566458369131941799876914018731281137549958557757652085572986460767188220784323934195391083827815727419987495136902526809448504134580628487239570074409596387382691041538412380824692159419467261713127722234436219709221336402160806759339451164145547741892402703668157772943774441675640448016491916592253224123921131270265640613601871270085903020041271110011280843243528441989103433597668596202035339215548603333164597696691510981985074442339802503124645081496441259966439639516469564180201380297196776515632222516231642383668163286423811847448732008021227883980544077735413723820886177694751749860587970294385787959646663040807992715604823890262318836647889995545963356438463017425332575800560807913173559979716717508032738206223237284972686896882109107669366960784655424387451205656891018028519275735766771092003978596169582182298394227429475876342864684989085798861247200745649666992472263636143483221303530831012482537621410705015033059318245083217675862974892076738723727005293127411593370544441432333734923782613205483366321335622557255142258641016151418524076189513727184236858531635778475879411921327160231455271021429437747060622349324164348483023698274121571289565912692918916615440351436206372786546781216469380897153306159632680763450691285988677839572644219749142969495376758468932509320797665087360564985436634203427624527988856700242984207452627078142147901090746720835640981145402934210205042324436262587253423332042983829395240458543418625887282017340358227656103376328973451959628834579497489954146950135700952575163089048944873171453657075570869782799545694417167759587292247028632877540734469028294420924519640938232003045054573403005587098627517802287883754630213330703913032502965598181453255993957985605171048476343360801583192843209392396819782737530534403079877232420453767925060066569980126190032878773320176827386022826066778659247110017448363561083881567840721455844289497704663987284193581358707488411748465214306857924760366330270340530424110538771390403914049335721746418140235095277370215160077923381169190647208575167741981007147344714890914267209802914789838649194163946193750028476570851803882512439527492044298795296804084172862809716462125670850406092661349202315077185195259151441947802169938668817297495899909463481454761254715846838945810886261810706492664097305966969046040198635864441629627516370208400665927160670913167779671319288312749805152056477049888955209707788990914093930834363913473134991107624266864808676788024684645855998203165614197328764779259533378895335481756030055089660797544838942802954429344631224367662903080676074172129154280070460905709307005896660078024438464545608503489890179129804075123243522919234698991560939421204734152572039455992612975911943179342452907691209016411904379486363571981709630026221630724744522252785546048852037613053676876151701728508009866915189477725107117011929817155766392340028944082262608595807930850314247996953375478321760642611286916899152686298908608691834901340073163406879871591908397452009889154009372525441361363190321882415539663901105535046149845804409593492803433922208765713092759373188691530479362207515028609661932512461930531131850225883652816105081268692331775028054253651612367417862476936892616548528816325945726842793661385103006110745727841120686916877965989452506295491522112696680678288986227929282649145497156762065853957052793021965475989875763088313548449004950041695849049966158766934179954015955147957417635996138122123178668524403044757939682775324075227106023963069128177669948418787968606009574113516569162914630981267018228900407714911109169855177561937302896603627147387394332891644253850172205860306127814050251612059690165233912826353972541148959967536215152671379014270536928353975875508164230299532527856886786499053714640480971430127886403276976156663228619972802379288181953001762314917231133497942876280067109363619174973392749995307559746350763776377454825344679922368922609066022811736918106672970498522129441836243861341325811852650325331547727081836215688179952734323204991586958961891094099937568768753750508571953802099517247396896018178839827914693867308841883575529616789068908314443766749480546212435804728142236232537905775181610084909975006253670103819518124118765405107794092920504334454221140886769976911679530551847932534384189778181593478285433359833547936016041662232145296253116214876208015153442064159340834396071606036518116237671688845367215299180523744853264027165846169807449816787617105898533033642928439104376597068617566099001869016539672620314714821200739590225416237224131813671328465478090854958309753183487996917691719957819798123331534520753216265484794406659537541456453489240128215123610942780593759093074162810445388940668299906362183386223881262528443413326131482643394580927944858992577904376820352046942399952419501962912194292693352406064213080103002308904665232568148845622906625730641419805734392029005585449120655727911504230341152710168030207824065964976068734823357036249088176482959611413570677439336800557495459824810570528425639528143750218715039299015145106678266033924719406646437863216460727804698355983561078824872394751685379910012242066203246715398201461262552867552383173709940314754788305038636781786744571163713323880964340066782410366752032532613982425637683815499040965130361981379920071831477250423510083309343336268911003829172823605933522335535400617974442184837164942753677554561708409153142531023177960123563240223987734902011867626643581242242079445264897830288786601300343893512314107075261493016456136829593788907979955493051882253312494796950582904039785242225044851462680174865328353080385227045840168767948881203820156417780806089927633980756958229783141123711974542578853120746383892519481499776715225867285036615678653130082461867197898262707596236771380546819150077605328799015889180639759813811387615249962664248982932320928297542456322644820491181488393481019220480701852624402336900726595896146257536033399193349310682058334670956337802520314050166091794136959732601614227303175816123844184604911241565245723512447132764542454324988512302067828974368637558046107089260637151842043378808668166972954546060363339981480154637399802165982625552434298045527115109988177581761894188674679069895592816323728411175225295518960355459250364084413556931614836718298355488499821581725933338125362468867186376215846926451305442145574946368596461105399761737011642093176250870670663247340883381647974648877618189723657389575568505078142032502400394908415384685000897868879415838024524086412096847446435302319373313529994039334374938664693320549795511669723030797855809091876751838122520665469166275993758582156155506871011947540102667608950777280508910923835249855054981233444369162912487434396870297780975833241945411116949912529482897577184649476089946965028041070079981221254706605536593602911076253999431772764517285468146484806509256902410433301030507474019933727776525660277348706107757956723381181932781533539687411458909029559094230084050378101025279858916770085124448508096816180823452919397131330972143880372938412434022174556352881620516990601937699721305256706252945466535737805750502335436320001518730438803030861785258952805754524444873744684957221210973423368183023573084190245667505094841981610617565205406988180471972468274522080753262065892015692414765498584544959583033118125474064214080332532304302517398653478621516881821245646326312834217709386903423352741765214483544771644661183583526744753896553352862246365242033021343885289736595223328606498949255733982792510752750892077479146049186485493593669261445189740825510787204002806636609795259299887976054734233970316061276299603405273349785571034542878859160908683580463915739221684882378126036653216534741530375066325422716483914294416791116935230128601405624651211061856871343513993481344786114890620869497682182091622133350921641640709411905420248785127106075212004108852485098259871961168743832930103147556467960662759406918747391564343716031117824349340652035600183238709905905158201494897358491289613379455110144580472289270576716710321167417073362005084132776852950357301453120040160425529903461399077424926149425241404448872569382649042233474167923452888943084482049195898101501202880307990257400005379101451705960941952535744079035812710240299529304011494447369166402764156994760257146514301455849732868255105619902749614149896713724929469423700626801327981756839702342139726781985621218086249653599638853143446229705372422641967899111973410279449132428934651501015785281115142243662948606131177929078967464288795372557953061449306014245575145324468548437247749140340444376436228193053005353888314219034938354175207487553029927992544758610973622620856522240802570452722049045750309129005359456276899752768014318732205222829722388738812398458048447433011424925474498146209060430702145460276584476984011091475595169212003975634082951426090549786929910679978010210856563977654263518097446376001951062380932690790418471940827945971107747514449697632555607239437155375916504375360481081404886350255558982927310575754066219940246414106526126111873033900334348524333806127696289196439447286973316737113294594736392431439234578479773571946711151430851921388687966882674895640948933962111932486270351031734873565591216850957615901979966954038755951373060158960956548847651179745285618247565476237160605761973211080139224852821395736641415057428220464356432730136419261937220170720311340664947710899091308379645908443325106691919697445762270498383908584458158434390818325691098816062821392496276027110915981140667791467545473282393062599813322046588740783203187742094301686703955861726720712001772026224282692430472149371306306098667364835111621350058394809953849135359179668488836924637415834157311769579368662738127320434370520876510296969769316413512841827133698655442468309675462104760151678452111668651968614838937397764556856700511115760156140380482369723480160423251356572614391194889897085216139924710515688995438595203889135868482940469340810761624710180651622466084651276449520288298995336827133800681378958559980559869619239568000210433833601063895188800429761943822664921745384441438064649127192135323638863979802381169629417335139298689008049125457295579664561991020694541369260994190171878853678644381481913898727680267611076674870076935846692057483024899805094017663489718742005243226588367462326051090914443522776580657224599040874942136384990787698617527008482938737774401613798711044037875630896353346439934215664764795090212614592417719332797699512871774184860863674220338276541764645092629025785442256183423338309825829109933531851433309848001451022772235284584101664461339184032162798028516777068274349116025101855171654469443481173281246163461508560769389806872017533587863984676524913816248120016352929217690319261592386341576814039634550893656264919636249550947790704643296498796692270905673307834568302523062132879216328129420457697105648716025580664644569633143954995950381355069739182471419422374716896620172272806114972523605213431852172490399285786050932934173876887440324476202829797376685017609553329468990102323552174078839513848426833811656876278976807034577292941941331074134564178912477041706446914500715894315002406883860387895441609995603839969851332881315365458434389427531322169236613296283377382428346289807746248917888118522047871585347624391138741941569456263456880302794444246304271843414819852843008481651782471077281025751375158293238220521720173126414058000510161540735806231953166478675343377621140536984616403813567642447959462786010358960796294129323115486090332383318957337057242207486866134412044355962503259638917379680937457061722092443371845236457996124266345470577510783587689726952767551945794484357450555595200866310125514956383703689729446870662403622502623581743620328534256442428476974660240206472929150960532585795355065057973881899168451198072017264375486685226159538300059850649288887087358134713041540774172536137165174916103768833987123590596545317928714623290853074628974349757775129861252674147109381350664197891070248485341235837266566048764412583673485740287269875094784964674063175835836339344143133996805685664534709632701971443761980014402920097140227815003188426539787943796444672990083166231445304910252840287022641726548615569787128891048623189366468855465309937340261548732074523262384183720300329976192223522693294393055244399105945676579111408795814129951892612872851758304376592684250034965872204154925450156202055629890470827332501427332303340060949027282798263985774013789881233045408687817071933556903058961888133946546610668432118106819868491748337169451914045847889697782336282182975195761157500772553786265533777930320557014947153091033355901727753209657170479518606361138580143284643205609746491837301924807895545463153409845730004978419483908489131856793221712817286157116854738955844425471880243610321319706671882160479093577664613257396884579985209145810817193529653021515866981721373684468900833295587137114445374232986753768956820446970813996607784639419030895665087608064171944013882716716687858903285678577569827815477053054192633471406229477003080438103551912687656925874477017465606046679271785104935172927349214810996385526305595626239530751821158564777469845531790189277308739134046960510288126004157322960412177033185176563367869053649532893575849283152751477549998850648060573652356400719013519830173656190386052699060480353645902427118934666441152517978698200467814017045489930477072017546276390062092815385855876314490888524003192621624102108672952542549821426627814446610183539013204863362769695861706201809316377331159744197819528685553091269616244270960357057135198696876309937780156117155719521699729276081765191794109595766530177893023790488363683061446900122738435453373926479712796616700739527566893574722319934371582839474958783049069051566982014749487818105194059391686641564014273254971613240930536835909564383969468744827359900807565334679728370913788512679345477987370140502591881869485127512946558323478041569050959212314434490395896363836625379033816730276696372884518885708850787927322169741073103108221778713492381728081372447023575464421619108035406881453894448978115220997265315116394238618170274456188186510045179545228470964099287406311283125493463895856834744220671189647545772778803897572937801621688712048663237236342875015743136331287707406635132175642262858241993967784455691206275756426799091278068983397734070359510849430857409458731643203268819222544456769757897871236715853069570176391983876646101799079292656186501500168947964177419177554379665169547449933994673585615588738092943787620317098203720050305015189522281511066580290677166534805119875181494089090852611099525063887687631001375053050182716237315006967148808344589576045328652902028679927217256014018353336018516644419331385684786005483922889942713399402142260857510697902878648415399083555658757591192915294692213619040444504942395501656626612566882784269282716997457393211595308137606089707754921160548387779503164770629854381230032731431865730678877433479031254152197648124096538980989769720368229607849665722209627316765667872037247365645944780103718987079223964740593366801165809668177509730195434189326488071557589059225703212404140595661079627549950236135044405044582287956251420138896649761687584923391088564162904083388395912033598798782914828167504302040468221280327049738137117032708436333760367301333472656276741891953597764352613433793052617510604121118298831184264135881469052543398429347540728217164780182947624310518930752790174695195703054938508313217745948785485032305336857772440710351876594291141618381663302603664218633723762546743067204057878802102388245723585222486896450773783858771800538383692646150522654371091987959708336276230544529223228489154571718082776811474531914998382531085842159005915228550057159013984123767450436553482694627277490030447661956957428180497848118950320884743595337720728679965273550654478707351200025089470568036608420804415911062743449938554975380959686393480019919188028115599034327712553432088063013560004657185561049236596693981261653552992878955137542073758103548664084755753958878043291375002007740705625728801373885916897416539147883897668916552273816549691196164664402507410561936841837911973932716506738773784170073415522507533965964867818749034149493658891523304696915136087683246157315275177169379399233537082741421768952352952229933998498063468488212384563189162400254802577640448468512431715618505294779424872829259429136967682275636380545903470605701786178474971674486103846271686222532563347863213610534345957030987179181893576148215182448838215850905767734675727125749771387727929963970312558194911791072825737833073158886087276372507408591477757486974740637384031089027316516554661190809725624259921669761727502453312604144476533010597148882236343925904955014412628734211777026023639531036320215279828661916317095255016054054123007818853962512608156977008134117637705865664826389628169130952079465663668866810684293769374644311197574752041521271592957940054462825946401110070138981663482445834939617566015794835210568724031117375478912498419547826765532237978644432519648877115805435714935145535242109606483242756225774913851971659258982322973711422605593147210291425035486392439620544969752246632240225780768525858858749798415252758743558114582972900420115428124249647205799364057347661343060718439055812995632505042493532681925169997854613686727507460916860817284129203868426631352550540366926746183731316613963206432459989875029014617888669009161932187241707786592179578187818960775483021844241320707737888272498714596806825032035854533619236427239920955030143872115608161648241567448504722253574354762805827600156374218060166421451660194465719743499841303076486803621327025996237909040036708523034767767361527885154886070771306810752234300443661387919943497492543460824629220203528259569330117676433291832318126591784033020126890821094507921243414287108158649625171222834231763765325030518933649539200610123365407165566126593521000308609426867918617272979838380582747793485427840794715971543740861157759787498268630790506260366723199561595912224309828401798955490234681052372289666580673973748183539680198836587696843941581514398859435476668559346111262480556137551968649618426800400616012469622290364686055448055606244533930039737668561910448357719272997434583807655558718804917232658572673564896484150491134856097823036378982068227693176631365114832035284905858616484039361214759304784569591192010375924500704734517347717454425564179999454499943773159653263039045895114622199104185770156906241226071289543659619715141214069748566356933078450309013644072226335968221592368569764998803380164922261914186615578414304935382545578311561564259300947068666362820943801681011995555150191004428079492777407486809795720167074491528789773440791976033847640648838468066616164805703048499857359820634667972276333862229564389307118702798813816923630368644403540101732284692768139269319227713760850283017501965434406999927153276609278873439057368372056652268398805539811813328213375851798488916222067726309016672635332057058656318152390380773108078315400794905021529966414878297497033989144932436467179442899692912760357797211791442117989863746435387883725350973538979746899649713899494105993793036960830613475327632941638748126663755344813404453292686868536317273238363297102491377906185397156710895969664646821212515305329315653760782990464085214910870658370223205749974230010720089520942390165219486636479691760973188867217589198038404432912450236249202862612032899330673660250389434493226043609151667208783265991304324786894312420899738330161484729106907124518336917707931372176844787765552498058293362806830691577121941124484896073725458370635632076754102908195690830674769320900621431207642284084730852146812612536463536904507212854313943029798979804599876378573069572268712186794098759001534167997657088306344740595714688599355153773282603720505185245765630337169783293833724399646491348562560142353808650536834964985476689882632415803451320503334846669669916186148570901567554504350201174313589135108640926394681390454630330859583718764125863514028759692279069207197907226673649659879437183417337378426376775183242148610164118490460618179087443878940001330763711012838006958269275108076789098752432655846011476485632542463767821058433130283189525385599491178729385543898152269451924594773853208935208937566572982375723480853662687103045020127279067595040661653646508696887816799260843294759233648127370237591090843535822432884845497941723057714264175017213769105644341274780709274931886980506829387679543250542722515272435691643978208510604635798406452950891119381272902633710280406912038667625979904966140559860161653596630806155803064594091341285809570341569145675068851354771661626908480372866685981367179159939662177884847809869787981820403902969138840111754417204495112002682880008834719428735880435080161479182264838039437097713534684141617529414008236930132858142139535721522271612353401515609945931743486087035765180959944553111170629330905168044242477249480463885052601358567157815145051690641520878257804630194184601793011569055099923544353180077502621597158037376379601517066952290076911644089056357041110221673986628041964659064839379227298008070490317400104207186939403458066760564263098991575233845232785753619302151467480857337846199805184917365848204831974609723919925483618473249342519760419940281497135176807943367577278603107224226372626241526477614227320574210315736438652421100148810552515992886308752372628211047836129611267994644499465049557352924511750919352625901137033327568768425957215287866298934304583599351043392589813303150710693860198476789333150311288687420287165663941032503765008583357705378190050334667365548646044473464376322270302761501119188618064870241706184977981089272149897741904618989980301013922708029971442002377612551279612415663611709456831569767267086749631546908685641740783576990972247160958649377644658607951704690777037322753437758972352593923727343304791755522565262599766310889060135220826432711008600306270597620298536752277255834510238117316921350904997270508584117656839047792830677811822427327169261025094925618687598640403264672182717717980302948767741696385832653199021403075787734606149737661344187097190869088592183659341069995224760530021342203550342824890809246217598360991558373474043308462809871975244428906559270499645306740887484625423103551900609480514698146652233907148022472865474475208239765106639061506107993372208698291444152055511651867939540888227801356253029788037987773926649817536175629474679184054832298428917304032096513350190770117047274227017230783868671471792867493231903299629365013618752884923643721052010696869551326955525988996955167020394197996966251589191932567490197108730078244475076385136355057593286786670898288729452829014313771907603782054823280309950146511417343978334002049462441531742452422648046065406177602106397234724799847740018627728809561547570647224540059047551946076473616058946123416322297592665095625766445050849271071303963092131080723745488887209845375732177341479701861219211552728821843032424848463792695010001933660423154935783934365945094161724698573871217156168480123362524152239390953802681583106377562617832640156487050997331626038118094840822162486599166967775482802636953618132774648178173338238889203566098550004014272732001844816036171883819424951285089019305620868338728590923063406682674607002809872395830928000698539147475053445411226715215108803830937032883818953521172370765330797048366031489570759374793509670575711742859608390157234035252651403215747731127740497058447116549569100881444518242185938634699721306397497838095946255333568437216458658282081546901148411617942506700285642075398930307115608194473421463314940216211080217060179709162934389618997845803350281664895556749499147237913862198883214003936174102508624165664168744909022045410861392961244220865547722325742578800268472800685760622033903854088715557784653361529118192261112893782472978459657819373205790415108261354901289256973225487240558210357055207104792266677123239495179313414615398062877873645316712075045601640343339192269689773780697690995802574594219507554136266653982164640147803694073426640052541847473403526854721687421189213220090778597268808902040329527469379523515125948502361310408396736547737655830287477856186529421374846283508505019341973267737398936362745637030956426969109251719108884955810026055907319024534484114204435974638003149044296261255739893720133674780597623679963243662567995902336074265770352245938890022906056665542420159443695301066291111216935134537284559864413484400968764910899147618829190588381729742031653233873086182516781611509103468816861473371165492129089430063932550116503405481913122591364510140664389389222490237430658940998725770367084965181705244888097385340427713118416010989996802382477786679607360338409160826740420366511851822913964930050302584100235069162776631625566639416657665086956323466478531425309422877450053778233274277831821479339235169316716229390286460751733289858713828014133408609708434083877394026494345942686014256250466925056633395994030285366661876436337961416721314449754256702118507365617428805645902774327375070244021130076166274419271666690044969400912267790086555564769393744317873627258878812051603261060892770693292737735277587105347056064736879767420447869455566262804396200368307051948333401601802050940059773251220397115931805305647643089708756704610791301002611175631468351361391492406568985322952360011072305511273520887962773339087203710646254555130615171204621397106437014701777845407198860083465216359021430173372406663010186735610138174026095038134212441499159152806330519023707369770219863064658542224247639195892180226194513469626252197462128551264476881481285587962389273548075812069614441973589957438356776871035892871388153967356720389364758485368265904185245074666956085792773685109429253465592334201305486771455037427770180244879196382449957991117443784752493328917942820910419406665031253328614768257680926557577163694298975925776646053143564446901704152553680405402902911387747139432945633761941770666226794688804832641741392206075458836350073958861662394223577758563257471560266679945444523798868666192412688848392670851840710992592353562751641992891613595499844127985869108631850309462585967002426605038782863123998412455933327530190140069312034897860857256749513748781121936589274152331318461067355361246289412384244250189873973413427513741248373641298275541161582238256719383870677636706103886203177105731597106493012928369037297551739128082338810437227232689526947611475795519500618550494485689062607625462168125689883742653481325829331072398154071722850565106137730816234878757473397658088309558509690760925796092007445135076876564566936891451193918729270153164929263933226455540054041006836812152445604090063453798138181472757874743356088392186738527100016504029316313554939601349534827420759369121522159226090924609435876512403775970522935179344433708475306855197828900368632153824138907674851311860220636761047300014137158520371808486133831254614278154002677699154844528620293672557315622758359402420811997243116402675743141240459652410324838140519373486194046978063572749996456837300213835186467917746780799232484364599652248532182019040559658506597906264379504896658814812634244119436976971242488499550985473731880131576026956840190287514051594108248237002294423629981733627085672481697208911630467996705404715682551611895446183925396368442011378748132081042090352888220493818181802258349035991021607485728586915605578583355983632552088848361918019588981347368600868487487529050567411503124281966566324963221051869933691616398517934777122504240017350400895012308064643210110643275364721581281123522747955731888807755543140020739051291684839183631236675255414158581310775686974370447459020744370650264152682994304677176970646759338689038621867351300726844271797690742881414152559371833520858704309313714824499404500043648485698188664571730370691108705193635118092993500630015813504569340353333631256736794601402335237417643677152551504473749935847601094508912914997301787869081617011668484770166678940665699962817522213505080410811118969006580028381119877670069464673941405299683872670645080621587377676655278558588809068790164976667298431143815278390931413606982887571223656005582585171860773589465253017651900610632423023180177100210126259688515049015446881601099575885746220141867592934135165766873657922128815750641839703114976440904266698855240460593930649750134196080096680050183668075887015689745831145666145578311414933463217307750771978658603145222645790234451940855030866648029247559190727879814730658891475233511437559021245896798929963303562657411367190535905032584353508483445039045963859516650821061868934510538274569363321103493745448185898482323208871905127422678915925996670311215767171068719923538863071814726816901316914117497918286953433912559334478284234061424775265668794686810960506232808055801186772885995328120427570043310800987903210905140697981629018141456603986634285330485777209139438470674065820491087442100830737867542794408166508773540463264131077176448061284331004354933607099589416018723595902478160469159875250180964083349976759466287174656241308425042763170425581568933835180410580677563546310564567116359638927744398622929806828625657624507666885663041593457647574017302453349278105812452387199004829194936283846591311112144016390736369344186373901541507367979237965691221934739954685465367431608825995941421757914669730744753540209383351073548591954740092935258078007648068616745898857561768853782973114131916744992974755067191201669353869239145650887452577854166861809740301992567778827831967807606465756703320088398337389039444441137445701135528896984542084105649593024233572851454014831744567540930997771096230133205378366508194499721197567710291816035327517504437731623954878839266883102704868886115162067431542952409293826551751366812559826124565539373247869003299140820447805912036028588685283146542697959358317903865060024249528681671408920148010457080765301261931908986983012102684258773101955639950470203860348008933002594709915744538480947513081643866013354648932058263781417673397517764958240707987527802468089606763114313324299244241795301125248903685691985670086491101106741828351412577644761228023505154767674095077404770418803029007243061992493475175652756585680370736250500497378311581299471377461915821133801896250429785529729276904616720643769406557225858911174041293729651165647667466486659941831275509790617910699184693829004984121258330444463423353361376543040675982879447032427896323430939870867848401921707819618629173179081071762525679656997008341207130410195070346777222882441527616955701322121867423293607140440077890626790045871267693617605189942938994200318050246361357485606504541790175573963884903941815780618075367058929366482183941814456249077682442542708170521624738196948059333530940703726632354516378555456505299999968362920053217811310083666106221368245373388411585934189971902938620890718635359517742700877748842841443837262214995527056104885245096854651116304910951198689389814165663189947999779650656886370481053386449297312927968566662139181741448817729927766715348570851012734608981949088114003128626384139192539852467884632643742470262178845773930485016763219934549595858483900589809482117281858070092757142678749338862899974382584763071770066114258479098634380208074616637216587820596313618661974045808939385166626031817827933748161439138650482484367695553448679104315024043250650035184622128975568954029250204979027678703957742963700483554813970589811730152645110580716907337610560629767621161432026340485967490811593154557001670862183501630978252396075743254412563645718267071512379805654121093687558131630913745415509554892779331424076170771355394476814650765548380851705815670615751766161692155875655437501782004290710607140884649364937596841916562599981815054324029587660005040721872805276743743793017791148739107144052043880312603228791467765251327836945721498528218752091012808543398229198269246058027883581887206366644198303155958512525724461506231789928970077965867093987789473690768182281356438354262060239762562502784365531988637910491075080008122156352852316343689484859087811609273441905739565569304271559178687473057210156813761413389152552650420754625471070610975796662500819580031478590524146397907491977372687469777868972927185946836340712897304281098438899820888674298640664736419424575283088697890532879935737682976040926884856002422365864749988428322078850692310901517529612909680253927617029683925068790834984676963147706659697817951878301809918076879980334045105489896430326830546667150945310308735451952043313214501557301330447737859766288747409010739660545741733747042822010895772894943093786101936308958719927075359739274639212436357476423869317317120210488477140506112110006458540234135236947228773462907543722041558776617802053131311201823354507047376090266246953678935634703350718715551944211631989955765737227049579062029355228455904725877809911646799944254369320685740212272688952117319693219590479113541804104434778224090885872184253203284162848216722117005654771424311862510703999820730218521434307030823895867761318078262345162651998226397930068481377251957593388181326102570491281674743067672396889474418619542379264428376980505817167060783342101802126894267178962822008924625246570368090164195137509046102446329615668776208845749429071612311297549191046327113978256383743236492960397004592363301416666280676111175267682723133460008343726567834971386208976469282588968032877122557265010647885407331748979595000415346301785315376229800314403857589901068299748138304912715913185297663127136299024871639668459901127659419688876200899332292206760335178714693393700970661051587007282521442704019159395669573948592377782025223198903830155425461644587896702935452253052532926761894551379431348477687945601556444858477507198626405538366892669309328287870071978828071972634937355330739116955241398941253628342623602339172092518664363079806606033534912783795604345630840996438390871719166514162380746714110141315248320866950551526208812113753506129539492783047665759996268337028395565378648096383473718501943164358993307741414989080314532302499452433063835105411680088123185723772676192819344223293857113084382389477355324418939875596110000108484947834645151209471898087775911222848694778054558587208834007271621999974523113907454557516388910882570504822650679113169495107837689812015419943102326261241608413151716304848583756620960577550069392556811861152084201963403873533011613797228535386758755204586356205718054320152778598805824548157418710464905242299504239134526968392971392252216100022977934373563563058905366978398226926087832911790605828001163465203300041721009051727428029652850662369769364231518133638213053734655429049596227199541496488405166984108963399773173325973500353014092343237856141917105651865898178254371383804915679166772388560593439275799415303725689662138744242594270634657274613185675425167220871289020308942255675369304043498564209994221034429863527799882228759739089002251810789251032289572714745261871226169018252539699660908346477025006123700575712680597620670097374478781042631257093495843353288504134781151832932290127428205316934775949296258773612277708192440709297623924725112290346825835251382340979339214075805042317414438147817386539935341079112204347958212503768494930311552542641752260729897980579565343073455287498490102349795889628394860986107420594995770081660446658730281178134017394107034549832590322384732460096248083597563342558116602700069388936588238730592800137076025050596721357281748100494713822664379086247960293745580209728120587997994585080391596397818465347872074913042177259896001879907531040202277121073591300960744793113244505884584062290130142077063906988678745145478639721490922452940542465848853950611845843129056911812605803536559288593433964715096231662037482791261222767893567507224509495093906255970658955163766444538654125425421403619158411788178590977103466777761333402454425537464366031594872164464990219196913864068925081021673861140168795086051339789847373196197923883728843037013101362345897172590699271861893446300121754403786028439256118437916742544003209309843938807468451878105987774501132693768341559724270397506339690778962129938442917407660504212283163654057878866210353964185086779506858471036693561165754679197971258813428568885384429160809686802974859229047035836364118308745934611452554907730570574857104518843064944702323811332734615928653572386630498189084510690929893445023687113436856898279551668378193531831100389698269734682565992044567510217163917008185947633990717983688798029389219713556029209034738722895676787117138654246346573508159716667539770835803641929738041581597697772646902859845389850964673716424266480379721473585688288313127261738644936843026475274251414560790558050548369925240850849197389020186679855306286291239232365153151765876340479568107635471784262522687344924495277592173689263462290100507295391845033583717761609698855992642990628327791748751890765232507214622113800679897212090774015082879159652395905555548951841553599685408126360465708728160294870074098218823304758297633696311495924142383229206920751495677456511560425099458533516977770938966057114681209305063844309308421921474572914443206591705800750222953632902515732466674268577906097898522079240837057877344965197105162829241705383497304087913004650839717374701232480308156330779718121410174327152416496020454191304457564553650939998065297795641655848788137593968760110843234703992840892355039048962647170130533099112037645748748532143133261379379054752196908380755270671175331455500568372635966784918938820227620260144116712638423683214699654243260709440122638142072609385748587321113805854658191736216818418723704746124153481924665636595422385544667715632516560000519074172284287992467317535108330285707608535485422050156322999945088175570429282676909832699918728889468782187271787880391666977537663549227816582216855783597372524127848030963462033828591998085899383613542557416576912584361377573450876716812873484060434237682232446016986916257626254457487123075190580752046285886870381809162952171687698417139063923118720446383931761334813955804878999725073956069590220214586103896241730321991191448719771687983276382988424237838276325369081913395102391740391879510806848131382549969539468813781608061916262314553577547208972231507602278116288761670879046308368064131084590307208742588883873382799941772792353400134301158473261208114643092771827214070540088523079147909852832133778460812561977866686016458697039121450863871643266621263223576559115540058066142498696296737208274265989126094678475401299013110011812587870004932814272699098102622008951447608184562389127463110327146209057130831257965708240917772278035048731703382884159908921286073018471736423482394087541972487034079665207304860864047091036423110618090856339528238090865931211921163582973949282955666188677160719381689728157972884595273158134372419669767052746902634510922900432461628555275984503928468968725391522161498736258971294655325529944780114135216343824654574508047304987602358795126037133851400689746828841928289191445020549245868283308622451918187589932620358088687672082782973292678696456946712133964671205646632156417793181796601378070845780106093091369273136380466354087533236014072437320584629685989814893568243309537410921773080643244187411424686135730870944488103361101834553977866349876267421589808888386913900913840745118041635035647615502023345436342199258595112477773466310452869192441962685843427034971903778408200599250974629528312282262011704316103122474290642937149064325711625225674101748141946322615431825254405847343998493879457213005975012520775109954880909728084062273620768289284134692375653736644748158876254656294798130660724160485608995411564662883439647976035564593987103346241553762326413518174930948925605156518354293814286602203652342196985051979143275919423398654935082750050267566600020137549600561000596706337956590466611703256088542062010391883542724142299509927413805896925293725887609757267925374849180026024863296680228247665746205331401899293430601323835491501793990248977969074694098729817979421177354797532430442702124779968700834087987509997719123982263356507195855644208078842992748719666622143942672028745926754759582836584612392069706682681509489448781620612716288734507772162808474898921862137241641254048946301952550809002840893555706159950742868587274294615534506153775281981617889080784387029472401586986378192450642490054751320329767498464597280339036251929404637874162717382479926620180199015484195055971846206646168392615348561068891445833476598264137259973824585290306637035430490321551392234660631760544556930223388178324327595927830764835867333880643229379365785090609916302797117552795347637596043942353191413817622466587397141968045621322772775380782946157373140849181954801199153657514351022519128666355165399956833323246617840420081667293438232605061654083903539968230497275994246527315069714787591196146878828651663256239963234709354882835058415989745265181547437024642152326692303739697100559192129571487208177095812057820291136717857636940956235260910808115047251524480064847408530485213950351091181208743059767742189104153520131446307893046002517838283792398276879191031350488331258556658412836825960505333334897265929494373816111005280441875524996793168994218875737713458615907204159615536426096506460777920993191965073937494023235554675827376782497394229707828963730777673367942095340834456258365725536352290004879087020428901197322674957441781777630561909617278623570971378942900372471640388234701248707188147126404000836058813239994054508117738934820568618067009976194496503907183045048992797046527827389192191584866108320062598118409301756584078619246842881288867339583883346182901750120851321831809346919823566007635103901432786837584777219555061122621508745023702152252871200797425617552570484928354139928384048355139908429863631838315447042875677901817281209948229070944095616847023936780759005848466958934624652533688211540642549628481480360050496966412773111581591619470212709394991851577664856690257231499143521894888301900494664287590305737390207469221585201188696945908062378732094740611014409504152827629480170641764078052409822533780046268247259317276249873519580191670678200648360263580645443993438274840326284613073955087797640253409734638580086564186831501734128916094768831392831380933312512794918853391382639283064993112831544012980751008566049844981084914206917433431996270295099600023429242834169421119516792563733842462164610467946419081284601895104735129984634380625232562660635524898143951986089788626010900664630886221196861496250111464273185889354389700147832497614133438142219966464685556675984324493461047445862930350053393096729030575512419519023378935311101669749332650063467516664669934597029043908649721169289687658150032211859983707287265192665280034201865151127685789321036210435424691738988918221559214558083623950317481797840436515557473997336377670283183096425706960611028020634448123117176866788363266216956013244634760643178478851622199959634524564965526961940699046258766216570881604055718376651645976643372145450015635293652776510363437828228557850975794113584501162537227172259753334848802004246361315617264623252010347766199784078919168982383691044233977027429669947379697530982596222299216950313797560556867450832623021509472357476564891736957182341643165567799672948334869957673986519560007221276915529646899874967641077146800396862555224788996291960886297867463402394826406123231662615904862160906074798321660308530129118850686726899640117484455330705402437854271129331771737033573897540465881243528900572043747178568426643673209245727146022229708120809111754618322568603107145093821076139955154744079723078553753564024355932609985961614902482725572831316119234021390932642396902908035682274131670324471152353201967217500954483003522770340752220427121075596087622612530630386928253314996313885710593750079419123723583362848449869993644318588868465031568991968838610887754998640914490191862345949582909397655839488582434041879406851241202544309590206185622122087307858372025519871046550676030009220291993558200204253284254068807355076868164311053774680047247741400813851869234473341540676286885061748194035088376907457473672699794229353059191955085464953270155155315518103982699924819497765286893683425607017120967883696459016808623789414758465159615049677492023727903481889330079535391524162841035884883508642730399667611812746974835937377305270756722163596812248380293463727393794132966674640513408166722454522830046027617108481751809019363260483034812460830750080706384664328824296774477834788367114149254201912219550079335183304366810943780095916434022319389001789422420859358337169387728346772463066893250639779833758489359879871997310842268042845926262441081563109539698155542607265096954052156669939323548324707861334941377759395056115750599997257286999707342701066189619934014965071595412168961463132048897501226223582611524632859282436046764817790895826693625659694315028504217639096947988754325687811659473357245261598747238907842321315732254927794188189804421969866446057504939098898092046776797555258988717989684542892545271303520320273740047888101564179605545532397117221607079715476905887982612485714446816412768537707508574887393361007886935447154701455620486144520380463849180955048163814641453403858816555176902340067715313117620738659995120348293642839187454584891389720288308374357831131493143625990083153162386974778632922677445712165932943750101795020044100484485969032242102888507524433927115185094445145415396532286315746003911464185453709111112411696845248860833412252732572919166006477902883827608057225329757659575637313485844479807049449099950793259356435783976438687232400757590543521431934007692859235516821985133289944852096536965928711425677410038040148041891778116099231521917574026193350231920962225602864408194642323647873315574468392665955994649854433876354743952860773809695164970210201699330444603861860012666809971285425518697039676748884857574605744888440101276182049074404454942909552103700328615044345483818113267533435331090729802817189325297434711785306743210525816694633985806518497152980889031248156508079703040629210383678159192232219209764912781673705727866299253394924205549234677074258012142612863605617345665668175040161068476662683432020690455628524138444683650161972687536572719874659545730013537698032334172233513179158347840242007381722375681188629735451638595416003734983227947723480031461751282244275302526077030137570354238189569666999204026761298347188201082781097645318332448095073559176242538941609592591419326869639823315465257028385008388096221647716892309331332554572927666508081375183647753519923488567282687520412662053554556117752602064823001748973541788056607258738329047626080069479215647285908874289627955957670775027340786487269319026951211858090116669097511992630093968382081097841868581171275064201858153900214964202737374987388326270558249036790156309868920930096891842060763424584250510020003255299922594227344779666921712183641756377463391538417379264904407491042097534657192679397714375174607890740156353192033502454144674875374818084776156184023790197126184158355950213514288313461032905520433213607387981043823896124881126018451686980703198216239430583699323357819648237827892385706978375536399893789422719691343194109108244876564757474741595537581386096489039286634755105176001937518670037117440506007253528702792703475594166165383913563195842311304329383672076841878343384353646072083866533901920372135528393554856819686390481024194739320007878338488377458710949871082339199832133749758677987601389050319987341592020823495665127012950545225801122595594211235237989451337467984174743384378510092479378426182667816451988624434714325549574400443675953748186764758301829701379432528585569694270156293993609186395449544344112536395823565890113767852918322300004944696272537227881210550692742992866730334411246402885848440163453527627829806610028427055643047143421082926300182372739655210043027671071051451076602303246773091563504529156125070184350621088670010049541209772403229171713873929587430650409538939404078951774001178544643839220068892601995249216428098184055318354067491475585015537594969601241498459068976087731786882803161191016783342969358531870413076090019986915827872665013226151983689462083996625903504735835468470357248108900742432934601745648094887079200025921682919143561199278376489209543536067987657696455671293400241638882412837614346182203694273602808170360012886459708139153207744329154838340241519090103706562950477566584390549123705230757348668446731134822746225013623223526373434248124054537478886340441002293306902712506279174581742879730035332336068298566767627439980700573943356866019367645803621161983677232000312939697288019206837149353002730230618347730204972001937763301392180689374316106750408903873632028458228932193957381131266485689078728940231649965686295365519742487582592795019773008110827095184107027826618686297927599006304232366208378968489438186256358312096198908524928016259514096844552744009594311401027964228593684522198338125548631356262743871569394563753886796955965045496552969865159475266960648854733648651820886581782933247356205463273831196824800186633131891660083735522439268326920887055093359879482079593135240600795762258698377789594570838943210738769642013550702231737794371373289449660751640101926105260364270093828689017733104580828617148896205483932038189703579446258454307886504348345151513848423744502154184886805259700282173869202660837546471543453594193760270677542741823388526349254044285749770682293154605459407264959700769766594051863974310294667496484939020504458677578566469851280575267237232108783791278265451468545201887567498848210992541585476866884631743025483148542636086686790031072087847777322784318879035700025684594960773231043635914172197241448090154961483972315819221065391809451162243367890853750917814760484024002570164636381674235314390845752400219183898120742021163245792691498937487138172419343434567167984546938578011074313914970540196090057700643892595640596943293336703470951753667723423435378756202347029735460739138692540959525793736115530466780941779682366055968109683174715266847489656217108543401588465928371712388417202671859737708648401251679484381037416745915758644173886020704268871127991199597370191540143212414930874056084921856814236036740661124102715953911387801317327137862270542513234872624986847118661999514188963670040907385419814968333407470819834466732734561173016422926957994471222159668119841592598573335713855445873738506061339136121049699437968970894064556769533706953034440851451606721251830271389001335901755746342344296013500213102637049403182878238617784731038503661033083199490562713618022746507132187341553673895995223776842458232855330440396129669886981098640876186729137810325259744598088245011836355664709131071101682017647832885141360264592998372208319536422761356007127687313300759165631375799599412161442159738055901391840406229210938938523240356253896394107996314134211956342227414399399368884436510138685282604127549173508387511757039857034430969894264333092813432155483588303749549478107883759498503403190536922843643887727208242582385580272516415559516661133163341856719766437128119937012375901463947930621330763306146713066965201677281850275714921582686805061173765608002471401061719102062664811138834226976402583664020509508450060199699745690480572585052484803241312433713807837158238511098704827125759175091280860204299224153286537451440096802609664743508118108190627789140474213829516676971179036857330376769378250985967056688096884354022220638508684373423517491231892008708491505757309585709278517671982829032098456587717906164513044682392325795093073181196650967232785853192831928847788230884425433773652896420858327446262748689873596211478453833345112593310798875074193965575833189161419081306021927799281075740626365160316434883557290732954460863532848652780677954161237488386306703657732517199064939066222652538652089663325560094987218086297894369293495030278384615954546406960671842883771247285005585227229812741975287546114634993235382004333227442375528127542842039851334086005907866702887831489049975777432583470432521210934700421751657410541655064835552150858756358618670129296687311628276877654342972945181544545531642021236121253693259771919614018807956332959584076526889666437438365088413806415708123565016350719690695475087976456156176848249720410515981313281735973212256706892009849848095577793005267213171852786625053475003951540728495935740362511767645727498986091146261833191128821820451484538623895293408302157193934110754029267824802541390006215059040748538511260228578626180025644800911374075750676588528326072682576298311289029937883033555575687019408567726711211458429433751514806831797606185619118674202978553256245447565509146303041571396382942384161023339762215121162491966152656678696599929286125410163932159167157782915116755023938001617581341871346573815947954791274554205529956606610704246060517126331599809555021757663311922107024372585523680486884748723374314952332386404729084748999532213417573193958753883935827498903898618168333779147566126526754412633960457693958996196525444987798747927459242673476712496789419114332513835519786274343158788701811820282100763584712775122591347686040948001785361868100080459472805798249664337412073580837103881952927321465980755334050251031633353275756315760427040292651536168648413426071464757680571032684717813978132136386417981674019586586981638333562294976366438485435052454289306065532781359696406563960019501251893820092198166195673579408251421363712703883648839785627921924925993337438705779782914563694964733108258383916647002302734752094228098797743211446441013048251980913213172289731509394846147647249196185975907548411885436142218297008438730477586969167914072830865093098777416758774771908991377624992998206209290529863906497052751540141904265420096190960505656466384831831633077557051042501245927484754036777646736786363028961844565110653696134288266539174601456903586345902579103757440309586947387109773874439781065909346413956500709032095223660426213789031071666412226590963643412248152760336253687140066351426420107717862518102813263287553315319397357134556885297979226644219190620447391385179086693137386916696716908632640014156949130884709546071744071302866473079480896080088835605071835449274903845982157946361969472344085834084945329309128082274490609037464896098606147255312953778753415369871355235901714157566200700495373083238950380199247159260371154183251400352270923837040033343134895158432931029138800615728614594855331444760290729309888402517240825882230899117778752485834663941675379407506053942880065790842243676893101228362291558325724863208251303368954018630404779455992343991316245884225035363701265256040919456315942875118973536176355731692645513062253506594232181559891324172097706517282967996498548850913050228039531074832301361906732147937529295148189051888516681303875398452402887484952882591113196844374169583557929663285731392419092972942764252833112224689753907340447168113500223750424635383311832741866255311988349679041665596816503133581876251280199121493532568476836192138360212184791004604542717235279410613199689882235286799957777042230391439904181390706379933203731525816868050399619148273943561986852632974357174758285495519486702327147401848329581875373538134369346223382314253729107599172287805783152972131764823091823309915055630732509457144372331205799969956263548769637776609365381609391746235800596659927883321775413500375257779655963017587327116428347765352431786186922412567854278244458759130282531930076622859638129811149414926973940534094358841358741318950654495874349776656803078999936963206795891715484518083782929112378152226798041827452700442395391893780136137244538834625856985385300054209850978439998410401916919377707277875420243628675590439197140647538628184060261694138492406874898643723748698463522058582820791682223299654512496616645712875783612959370944755069844815880803650942424831880166842502709994042367575374370402235009297529169622764233524889755266514222674919604742326539405346573104879819418174416015486566225594271726746456109665655751252423363778246539396310164307078471816525151422487118854375380781243413476654032828402490189277784413904848667472158216085404590166287096550800066730979351118089374924587469445395336064437825434551004915609608212898140378716568743329142911464033465420063907251847317968053488552659544422397338084965870993747663052204781753183748392309939618111395701395803145706253943088115558064632614849996880482846787868545595859615689107882487318304128159445413642460005772234854574233476184827952947541875915547801593691746619316556937685293260245420822381059077136281721739461814388955869193170680000012947391296419457321281489646301491389072868565814424381873965141438848839716392624812747425705053334158691578451561094809213453821582999983203040558876481510365543084776332594444562530741425290113338629483104275167183658167861843461094918285099472571212293332428798540414579616102593315947639594769904289002330366445060243819019507435209779549690986879446968521028522812836239568198473873793144370834417056672513304230753834909049095108395186684141656370579779280799863578832642826711707830046157135892746305706308914578879270186018608700677005683412529955949383438394179840479339027136654193582426136377408093376577024417599364968419145195866256172585303102757170169214970158242243657234920324304275093377454661316626017666458334357010942787293279674643111414585023642623831553320574871911070626481777682999626011410020662370231500815173922202671247000012625631567288629476334225415851320406875572988188984792953774051756156382791842915272310652175008402131995335269840020686391701270230095731091545030938430085911402707779788922719701775870958330424587888975258593743563549655550928161831409874706782680444068218693061861345260705115925752019831486449401924735335740984348236378689732852438694303639792914155356294055276117532774069393769362362853901854508484577779062601101001042644783301496581428629910773591698106605276940737084379133798573454252352180186263185057245194055836436857031684607862825558614706414648902801377038147342197114972894266905339645925091052209501340739612772796538241956431169306175243805986159722353869871294983811002709732197932347121910659633852572834108197897969197906979595834225788634345963369308075780636539711230067689488931326135654147487286041591989026024233623385316649105319497342034971055397275629871547734395644312202427391739533742092137879610471047876108766499436166081142869900343217466412864780708187296952974433323755145576339474015493936835947861475262805366925105043580570728934951612206353629485886521540002915532152251331185489117480458733704944143464961014683746509605328771347564816823947758144091848436872996892672267542139951517423843985509785731434098086199774489033033891501984071456518919294370858467843842556377327834121248998151475940210218686099575688185499441939287661456298827652677543224429502195338653395645076744821151276677334898470680661110422906641285389074129825814539610585437924569433157201181801813161144018886549611094060155674217057311128316261482111281638377212397614420550228018988747473960227548206416543049237738982299868765235524974156232136089727255038889694518400747818137309085341288680937112049562886413480061445025973028942650556643071664556357640824357987819888065235999455067343193629679618750391329389096670966773485152151995710425649728301550962768135999967869530107733907124019210486691931770015682772145270653712651360322429787003592128997838600275082323222449944077627590866727964595796341951254280844497604763165982828846040032728418707992758166293127073674379955853088180584079587067812810565091961670030605628339174295390025436627787121803090046728867232676928910979307891696019156882344014933034471997422760091103569466727123458961562807816653855148846000027039838060963859828802734245751001664996503678354599682981341586946809574039856570897909764036969215862216988434640781376526610674198418257025931899909207344267096953983542795774005748571543950848971248337808279982411074188586130108489452268166473986806793558128172028964658581953584969668760230688595418287983440559801771444339626449768167810529576211573816478517200176957303195441039208001449396939495334713376639636031449585775843389293918931889860125809351160924161070043882389464663200448633759342715098723203593018648328195906610854133038426846813667034419941715242832125062451831743238219926393122953245071841985167989017687817024519227266088806707618217687044191177446828452469517039958191839130421544697745172888800240046930595387497118415493057139292522533834076412415405138012943168309363120494981085073399803611080348923802305982071681874041446795723363836071648881864403946781533315862935214615093147107496639947748392186612987820747912027898530859306602209978366039770283354866038949187884195819806554536349962628071375495390654846807384773396896574012012628873631642723537278082126675164318924018569956581128761017315519972073384007505185751305322382130354395231648912055256221722905375494347873626971298330545148202062504210418066488138891520730150303696706165886333629192524946500267857260232655435520468907994241557337888918370302517310226093875173399433559206438685070972199047709149621993841060251074375664623527506182265935464556792990892295599807699811785930348279778854559131087081741118258007897097673193199186813702873325198929151517187359156086143343607033274291174928578407660840592870375055654041559200361895091207522601561236783990415461871180739530265233458797591821333872818217421295358667753067935621809734762821492627626640960585768499500084471097320919174149603986517628503326081346702913243591457315847735417819449550547204611090519824105474376479901038240568355975599873338456552713844535912349615034115355632263976390915718309681231580295035357878063831318475138656016611889456902104405804086611662321362521243881587579237073589787803788485891278102058437155496209297361589083524320311100816694095008933119634224916274579623640310583773820192044396189539318281218161028667394766900125197627293211570851984139189752478697947244891611888900363253592315269901734490697205022369675534182671877911619722133744921195345322615522978511838435980246396632987567656025335440025025965468546969603137672285249162954811054271159542410864065405952754742897321218134603340149152190935075743992522182056396244488453367743104396484741635327948823592521930396164285791389538650735317631198406569769146821766915595757258861627068713252034270761262594413212382600943220880286154844206482249940324798024152135313012683611855074719290640825829096421891011079745406528210693984431907391111423602250405168705265823903445749002596228547897531397395249022696181420802170725690616111057425099833759537509338140730172136849661951239245906911318981507722115349647809397675782139233737781411228908930240798656322287026857638798347985960760485737374389523663867928999579463842610878222476391580208641184627478738102837929936852140017209424365723539426189488950104487696954253860256016190146902619780682204742553577885622823849562241376650144912577474338141685035423479790909343663636369241120845795719664539981250919303066552551983130763201062034938559415146379826175507380849907070676596524795663062368996812900233421756304479330000491504701387408365943589800164300180211652099794667778804679207942476108163797541816336977572883774231783522980176058398308727802474714987439228057473742418631692813875172255651572531428564903471779040812148893412606096379707086355820029537954064093102288355098478159392264086965090951560019378375308524827929683180893443373736179744576788812396175771158669733018711391349136968599198677815271873991853619389761556024161398442691936774231494617932314920595251462278426585558557850315369698212605886713934147113236210944706604873584571722877310086606300559626077191512099298970464581200807984137827592380960785073681899206462307984262197155492312286640854282135283834096495034775212528383596095814829425257804505370402003898329957122258710150801201460157610702910902139577908032127194331463547766948606712760006706715562048830877379811233572785664490763586926474103706347324426611289442438677335341397549962394813307337260949050933991125734218098542332948832466329640507716009508982887406688384761104652176868787889719733259130913920614983672448519426924736865529047265968784382530807920282038375081800455201345592179290350396842296954140425468782589901114080959186564711919740860348953256030935543927881869609447412650577409727167266148414240658224859628507606474046038622867376481921910393224108388897496908134152239949157647917405644267547763228214145780053503401158146451222989492382278015983758947544092653733472578431057499759824887265301977673235643565285475138467743454323539089211930589467027767170155793108305041531750141487134931192507643309730828874326350038622860978869015921691912660898488172649870126404953695851503795308416712209407081907399572576698224547401804828932761391535989602874488124568190504233086154298694700851739932681375507064497205587678316540681582271041634267284881621051543289652457488070868454983389538173796861261376606470382771146137865583415515452290220524749448914563651878035631960620636289096546194126618042141361808762460813319787545196503981392283677647902057603967271480412749967067218800214603624206232307893692466900859733356709800870092143290301732517168145851280155871752057350177632306972367312413979922675480425477777964391148055392903806585593323720733083701464260967765690893785888098854495633412397287045091807545450368996922086419064433720808163839793801691323469993493556150523537861320937971014780789939900029094880018250278914831145963903966025238699162904168136234255275070366874542624916181479757236294432203753534925656753446456760370602055585388572021756911039493700626271307385353223478566596976147911909133427130751202182444212816810053078106923644838578808199988979410497934968023662995231390635057631016394516671933641375815662646256925288377133975960300140008541302665717102749360866090726233657746059331787832995023325440598698535604221545817686896988858416318360848246294344118611811498542697942929726334337878256304030831190990892122474759884455296731521155515251042801313900678498809421915321689188855242126511983015936203131430731870965298368829824834373561620908136041039335149758979796917738907996895922816103904460195679703307827062198280271869532179554912582251655441509385344411778114198181271368386582580058367386910637158210143797848415972119881831546630839176105515471714927227579637369100482459441475774863041835603519790564014490998494482467913282206473965294399905039133613437151004802671852546929558816432099755651788107246291754625130611464232208441758044414115410520998186856044796211463865125089878470336653157309871581596692574785591792389417571504445111351807556445956985382751716976342181547298335939970689850144420193505368827170066126612327543337672814416451619396306859823670552564950234311922194587321324208634783998108666086922528285974456419042126148269221230473213843329049856571069681703168721066278795369842889292767990130834596934453927573114145393071416729102308372583380126886397648376112338631565251096354590634380373471494048117098112026649909750092961686871159908020488276170843416688183576504921170811712255818461753530470822355422569020232803659067558779220676955980614992292830693356050231796850890333594903344940097926028966204972542588832784958744612789976357814246649382435790069941423819864490396190012966553494912346404889174879336865114100405822898040453321512211795674674370702292014200231844682224898975033087162155228898148775230068836224902396545425422521226683275526929502550172562512941920935071935451626658682552636639027173358875791849269994838592944157622444511170477924063206538383844551848786211692231928159218202388074559822848499886954556675695113029832602413620247071310355696183034583024476282616272418246557273636631830742868985888683103575119083936645272664562332216021218166721132507318254322200005048904497011508322633446974647390517873179289427870236912017699924950178788359907495636119706275874115311316864266080644203489249016224678406012600246593804793194537321302560375473135538180259166940299998020288713831723079505274371820794738215000784763633753117175681681035144382758877902470773840922070407114898464675776565220438165472119464882255756333105088973024088178763797146163058428702067922241272605613735034994662551981852840156161389114440437992366563717533785796572913682666355342501649777030393378899813025586787777442970293658646008262220802262965493436758168836564958894385902846448277610744450782761246848193354250719169891415449216890716293906707560814808789584431817689266347617996998489934844365738909853917291022533008062992503068243413773319777457040897636905519998114337310545565137081086493079366760133323495952165143490888643432726816362793513223653531169149761962218680946094294192669512685061195210496028801797293093813512518157932362737688018231030488942132431771391158713908158159873585867425061951665700052429994894019488154230658141645423973503157030454785834820611757657491173381570433147779770686469779917137861339387597954136618857071936239234901037255328151793520009346511713759040042682711772211219584895415134904463031698945278425613206161783730674928173269937206218983057955266162246949067681033862339454238750765177314021911527836472923642477067462517823428072277270862802939292119686682721163237587367688201465887364458362439235187943265439295703122131043780071992721381884561620543135819280602640401383232846093034001737175760667150082941817232512803496185609888850369781327129724167403629565291558178496976882979853441271612851584682865726541420484591602292325127240881151252266501098488366584290090769660954469318230622383198222283183138451418927136537364410324473533422472101958084469687539895991713990707065533852539020361090664508178537147075677343869714281638246047961626496920701664740258703457267927744161958892917494477713974713455785971235333828248390259208006952396782991592184592602429685955103651441343999835419620146975980898469730442450627317519543299870311500619871440323660120860353852366629546816900513950860792623295841277982917969198634013950623417433384831519345769771182279800986992636356615529996843575770365788736324100301345413602583805306421718674398635390571712979223996614954956971426251037729954481025020758772186380852070975140842602307582428770207473530139384385753438973415005809801355209317471023871980495041761716986956512711448160589056757900391338876784289197605811612284643326301559034038255940603674303502885869014919532663344892637376068780592300618975795458625968652018107099147016296943632662118997741719658474953765974977282440970153184080439598098687103343005237076039716818631553543659336078554202532727704577853856727967131051789513899215482649218887806290234558803644049320365986662675514985593920360639115495331030582296755393350891335780029252010278063922061642127219995357589247421567124264706904583253760813838573888238872601030743794383624167699674776316078157689614431084533773876571803568982787128377485665614486263416229155233204334076473032358942436882604575045506805619236002771262138022659521983480879056655987733592207721413110097376756742875151772700538087025499842494177677637251787177174433502304160246197306856158232440407422845713976015954326973326155048426547220029449137708651424684724134005176369538323652244005102345521996918308363317276940621684197630813772860510167576344329005112928414803570060348526262553308110416631330003339557108913647084882175412833959505127096963321967116521744279669925979999419884932131629973753264894260354596691919021343075819239928971642946531643244865057131545870442582271919607722103391175467152769800166305056005829336920805214204221339613631590957260962192483277173934360049074138730561373112657876400563911564160499874621685794443737311286372443624288596257648330312726789683828463557915597341567455109172810823228418999420190546680093380971395628799992503641714472466243732378773759379973763698897321275333337629896758904380515002004225370580270747026583468707596624828311178682678392117394017177406445232978014210893579817378764484607821808657405510621518178033843060466695771614181924176251850238147270710360540460044288445297339171599988337187614736143594332713851518193358165764805307636412784700442577139862629997266369136575237434037635100438907174460979003835678583738138872699156649191707360878921095213682624250096411786577349842963635679291512723662418864448599313004306273697585424387275270167599327150730539182608281863700981612336562387265513113925890804801789593388471721719138894142126146558487654682312314266599045686821674300728000657445119798860841502214631190371239839305313148697832778598929936631822384568030671235103057361918922615343031307766755031723482021724661710819369578208551407321581265324928942859941762899519952428617194320329709887184684880527815178579744643374517978948355530142470337280598333947091111233348672453488767762419897165365130904931455567410687512817363339655782484492579414212159480996569448352731568618525865210549939469129124451863590832281051785734541028663986849935036568088170889772722901484821199912784804397223531236203435196183481840201764063036370028595471548607374241865027264035610764711122717696613213903694943621678670793634128359836284442578715336303853832462699531945007486083748660260603691140292259955801788243544964270318807963611808513416122871919258758490257674954137383610082628590198616270540107386203772238834887798774036577659454481068674260166040684281274494393935171026159714942743642921751897978729403216757725141949742030785086351285965820304549530216884440249735212974984950722542979289116373595612272788744320918311030830229489120590856699926117639603389654662455280594653614679086787194211493848053970098025495349991771731041688828781630263292021858904407767324329352561039925154255162868650222794121049082118313647253005096969668388154693044365137888218073988235281151995107726000618839135187818648848456636779184817591960872837754130080708246293096336620355825990385742922596287293314853595682307954258804215138184998803599378869349323401575773425136920839336872055695948348601740391618390410475009742963382144936623557689445618125059183097872473089046638321714177556792502536185790563230318937703359224174731221892130347358960815939345860545549814745246211621493845544873216227130981788315856961116703289031384389593007749806782899303765244639427972087915543701123118252784602410489949002975040688599632162681025974817165404533889168114250175560492803310686580433222720509947148853547283643468026502145538201687005918472991575328734260957652592163317278848706225060947402530962181124171827598638271393932887203769814332473301370708018746493585221469525405168049644689299627522214232255905376060068792473679125740891416512039388193486652559519654544489617424256396894160989961687787930545873593489230394210426650879858315067510021770959397931120746991766902150107832983687757871831762281694549792349138300174302479250645817908814707256477466036739108241969706051800233089534091655287231188220683698059935133705502679439986622569416834652681619946191559467938684316038319351006432981210386168267832598153603509017689143152342701246622095469222420180827127037402047723870040823145745488489013016318857009031877413282408857678472206934173475213793138302503310115956309091252755752743321601587199205789625689282474853990832520072913191847758305591850125936501682223545129497033255797092188708895533085552155166910665079924491767937862624842619479018464631452227990883691799880368034376983834106594676477362243116909578153112066591403604514250550349815104932089300982375619220032267665450940260059168960943149113558226662505794843687349645375371240628900651791078941219079534029232559352160404517505744847451642261339306008220492812903062242216730734310180214552239738946955736066694905434910352750782413958015697987980428113402528896832051037788503448557058864783903366004460619410438628696753135291634932666233597276351053288577473978808816212568537719295316585082140255355335865006128703206820615179892506696356149920691460844314221813051100864283470309969654623344677337299935365094479170677070471228685634527011018151804023070444194560292254463959796863844093654741610171174576738700882708310800939295478247140635872315485888388047449426853644533361370108300837207828140826815794896272221226096529938971719268050497257156787638413757703540309378614600663378199864421507917109631876812122813226853435449951778943715454272764444417926991140916085411557319318653942915147106533999694929989375627216583954970384188167799771631466903075388453614386838525231050164909211434047173637324364005988890173822167978570708639355148915998214876530573438645739097461976124127531657878388958673818520246825101271398834623282773342707638092958438306172235291587079748494074366746296907040694594517275724995327378550508563116737904973785428612912990841416045550258603376389532843899060693709719632726009062380154505071845261977899462791770674988077606376186915375605607776420447745763061725196946722972691228874107413258469686156441254281276889691117791307033937417739169960502154739441917580967271646495915521483774078566332761370892933612057592695381229238645399764169225187477812516313072805485043326209880119230086563766317575255162866031547093770621883611115243368963493502846434577243391837577454450645298119278912174893597481934903926192423055174362406581506743545305387161161122679047322721205923369677685849010929127933845568058202370444589696596684221012042702159249565983695709795642584994598845001295428951430579825247544442981840524090788486857943342689949507725649510416511298603792353681188006666803937892427077134871725840696785177502467039165355830785235751558529270971084430742508984535285308604066543507055413743141902823851245907328654012484525934605379927510906886455349845636222580984268081213287142754309800299619700349736708530599258729399856376279543490542641150494188183503867269767741194490783621719797773865108856543492671238114658371933395171083174477772549843717822101055422146413906287846600849997238265915883998915175275851523513343827928777296881292722083126091590387273542427193461352708271872138455229013626335888549533500626408614735467569108894524790719030819774386863681033652037307130846588602251889983880686893333779954362134824216688755517789554156912257509280228649110824806617505847212527638307430826404029402972932914693422561211152900584501801398432784393477826166250439966804928034273742657805335533114363412556358063436564721342212132770347635954104066486369346957209916832573494936205817352477114813649971296685635552848256305696301572295238063484167182395255506598922141815264115247392704799093937762923217638596970047606118351413181554532732783880598872790598341057571637482317570269044341201279289341350566656652577318209604781204758374862737579518935521817422836978520927270173470467253752548868876861484971497901253680315486695541551321189829968611266049026742902915178349030389131378877812985434267907041766924272413235275218079814333015940021010247501701468636429234156458829889487084914600538539714927149144789005910436907123367750074369037990686391652290255010887851924832905179952669828104837832959830336474891752236842244885081137877581229164913054793774494615044555711195652105889196638856591764791153049644658172057181419656513067261853583366788260628755098280639406001382723242744552123295620230192637516924102068628617511557049179769889095900829774142776986712555514378559195984007645743202159179925938691292299081391446523324389048768934233817008257541176956204946207236093910252102085884568138337309625717593615324132346348286168578290619610119930087303488522427400548238483348161213110986249545428258471115044743660500336065942521707094449379596495508741973805033367915653506905803235096990770214450461166231012886881580262721904480842184933711790972248579488986844501800209605551886477106257318315272454878560360180603105301867737991698217720911258681024512443042290608216317692844869990374329572382246592206947122284772947015001421991055374333146308588407647050192945612498442271419085792332270688231436042889978471598964908689168398107223556541240860979713429128930084416092268739010731489003055960395961390327252443408910454958537782714010487818584539627191021246877206692409881086889499104751813443923167273824662640462651173819620125533176664591956948681626157626788926721733727421224291738211971666244414385632072688001208539020313803434826338131035709288450470666312999346044634704143006406645261028785193745272220316231249678196818088392634216047678172122534225513792641928619902387090850141150450866143116241673858631556876152219358972205573223333437866071387237323782170586074575295710367571842427205889239644483058123104720575704227989148955724419175665147428565171436112205681699051051415472828973709690905152715705157589056465046453765544582132715803146731950634692373237591016034662947117902410398666265295394790835758024598848990400508926283163151162163710302944468013993529943696220307867502235050264254426964993127920674430184817408747032703934997667701529107768195417961956457952520448774136147760914958678167869732880102893562327416259443451425994642349722275575868155231419543334737029254312782508049621692211026910081297570704080748742606927772975391010069574225993269307404090336062413103053904273959013317817126448586027295388305268936125760580622166173036524684358018646471575825996271802945909936695779043540735020398703069321425096943941295700073482066663772285120168022473571268251204922286366810688529962338885671141404774713421782381942458261140155867605564796703874245168442660767118109170799787806078601399159578814435418736385105073534187870700058306862306740086306004287765349310682877651799025563114923344197372238648545366894837257375662083731810720501248949489206106488645211813661880571140004678405533261409459029773186541325043267042158614629861008336626494259831219331602152021520138438008425093668268822430362540634678758141802775780903031735988341341199476468102393369350809805290864165849740665606757911324179859227677496370393209917671414188770827374512571212563476157866438721184234497990995179250049836395935362818405425787224312029818562586327619832232862045567308169722268627349895213626650043894287316976691361096651666755855809591703201589149858636001759599453380782501278882040428934016381377824477365522178932510419292075300626103846212915036179956562648780264528150337057969552730836107771946724169038038030409685001315243134169476047758534179681406422291005580546206144584758651168626624997834514700242678766474051607213237336297608317218312328145231067893732286355522782299712197857019390825603991769353181668267071607218966898140705201144719266405669031497752061391372009706746267159423518473465914340015272364130980942945223697642456607000145626223264575047520985002642499248631667565394046048681996728002252094435999809907167981202620468389946716133566311835009817910624622009491828257430583406982734349303504168614507396558066553823493136968734653969659720447195740941023275098312456188040938036415446436035291444185315003322151444495758290743170498651227094004407780981371351580242423257594681853694648811197321727574377201436729235578278928752906035065810032841035712219015362312272932619815966505225584248937301941086913762300315253209816733035119625199506590775637849422561323724784497727538493209846289806530835132410679016044046221738688173604694848572816390502334239861858308495595709020284243889063847122845836261067764687927550058785961124508287809701530809079277380934392492226145893954763178732009283604939924776915820677499079852278705853938310413506465658789268189376333849216629926111618191099020970943398908799991795707893266133667305792855324127573017911658791628930900053028474142389210565355140386595506232817110285973452406149789655342133887220807770038157199023342937569130833498896371409562233081009534277586884786287035516334742686327391984524236671154156451642508446766435454886959008678231902861244089640123645601629624550634464885707473212399067891061189060549178135950807909138482290703450717077868700235737958512341651675639891691442449562575204997925234761503991015605187059529713423774952131524542865415481114315447238413543676262127199298913550622865553366996946910388874778486583165136848261328647043689371535381143078146477588605155677370610503871413908995282517046691595381866900224203275377867924861485138050827497937829552866503356515653824465225746646640267173468182969438038121204215309376387254277438228849824155314015905965579098196927032272671472724120243732624309844680906627845624611797889523098807162166570973229241750263861834308571159142988987395301910400815925386468701531731796097999432372830658552536440194393687459013559112042569260273038228371496052969839688109353881369220606989930756276443388863322240108587856833306336665868740699600597604043473774511774741296842053255786027746511765768651761989447611565779237019449902677118138323125479450660727785059561614704952913866808027485527495051572030582363857984278444469259562517188675412890179574720880184769973062423294558118090418688044048603097530668836192415734570369496791047039444840902192267762301896018857204455695806921167587799296706406808415727882869617036053087559286637917721745294000571220015915353727383680941527099534903712324513924679126682960994313584747560085804830526077118278275616743274645757836599955400443903069928685018062231374798843269824605499392054223658480924886272232964418630216570546866979005526118361523767650490424021269941237541902858650856572359240917467786962668988477184338439495792118278063170636916260246917537045299213972424257756882368478673033610902963529812243795444033824638611385812035500641762933570113374937464464405961774486932526417794970952952722586465986108939470100709018770020348521128010426031434392828949602445002769952131698783709003369333622078294777110527692447350475652608565591491131878155463190220755333225797247024354890818967364439738073019291619632368829802580098872870416970216982843628489438150078830048246986887232408392891169395103537638965315535696320853426250796415335754291975122523701780668843260887197278398605459069723991843016070386406800509858121683499911294336771585138101114290068406644378173585512857931855147474624621872098907468783268261717946852810551625377076068072565066928822029835100874889119260645079404497367751943135240334670436324978376603315615052509359955256714535812951821432634586103680715933072647630312631634790392555737718733966874492830101744252079763970315403014454521890643619796998827994762628817099543991881255533396560361602632592093292679822201561961869034863626242754186956474244614518192958146875625617154962087572575844914944217685163569416287488118011215396334503571418809019104070557035084360661394406852973231357493584434476917559575024956087916231487796833289602290111897662189138543974163253936166697187950715949648257100731155100927427894825678540499082731690552043485317832225706854687500532417301522921256706644004615633229138854449499597611570479313574896523310932989608791366087793475835494400803964172191626093188173006711233443916874848695245741990206675157108458939486065520279792191083887367892336206502479313725333973873230884996858499979713396716591445140902911559447636628344182634776476631861633542487811939923317668160138440185859808720126845061162598646242642530191617912078429757030738103119764947282022314420122289141144394033240826947278504544228882443836646633494855603821617117143238497512485458269153149052852929295803849450465916381674134751586247504606950204496571193275108313143237665207380278707290753769938482852723440269691407692641024770719117334905752610905074060877063785356045837413345235201293392154204959922820020826964059511782131660672879903705609722323698668350046607533984474491072184054526140048636545181791767518911280215493739766169531767475990292093134139177996845063519962677452885356294318826298989701141010810657037440258169248021401590937559279518887179591222354302699169380826853061562562679513878472549950778755784140734310096378794614008156770626844188788583552265622846667620189634403275101161350552674788118308135166827289854780973943654894317869099986510905897013784885444103801199634513421763076168606430539708226826750826724809606046294676342438976861507085976570564589909253807352679315450814953828616477105575387948231112337323540496124727924903833186123274258962929950510264411241709473526394382181955145111001496023946302705230083628439538195268377848748111854335372429073140817958099748383465732858325902819562627689027778577596351944317889559728689810187658379402840372012746693560776468615479483275488533178022545241464013274255843517794011663116793850844379790017073699597803885342601187784421272432856402499359071706611686132159821322569006137841371036043351279900348786444290964336619239880870751782761876988329966321508426380901812165378164528618882429691562201720927286660772100636392078063557500765191845858804272819979648129226931302818736146754271790470959453854735691142468896476664074414705297195520644709647405973286037694075205994083658898630477644211225952799899913727905510061854692022836915277380742956325134426053735272330178130934605147788511438391172081984553207622825351253141932653288216254275108821470842906471461527267269869655894284364921680077916560425792973033913168866686811464726528824181332756318639294509363875072084672619218003002957543353522985268407958561943980011858462256174347206517985774824647547980869160981244188476690160946770658821786433248108649175713327420907432031851358211136886618609388115344723452091342567512758967772560373359902565298022624142571874104024083417980176071864319501490086681076515547171762925855505929437904857120149603123046677369376909266506092085353932708892457281077017057990746815243585077672258072824974992104014085243106496045153954437520205572421367274556745801176752634389364722064984822860432443691226716255717731818480451685053819944278031223055262703277366222667798618708384516953559803778377344295105009958376146105313516911464599610692158105432366450173300839402558335359545378858438312140030332112787252971530894746827033327012003161799146787380953471974498286621455493848654624857163645059312586103894570513024212512352495723609277045102077301631979079845150774943200332771210496440450851064932974830501003426821458646130501202479621131074197331987872082091018950075584904958285597916313929115057901378453792526451477432484276303565345311978780148286863776358702268240908659681106902811487209659662818605900080758825002666084540963067418440941640312706715303408994576730805452774275371856908376430555061257471074042323718798877395176005131513543391943708660641579545560124748610935852359604994136049200975921046720548687097809620407408339607397994485630676883628852119176467533984029577294799764828042051376780153672105616338801642558547238200029182527811469984308786614718757221000242540273418219821286196292224799882862957626931497615255042872007197897814428122528767684154731346233329040627817826547907742421522575952680061983066637230321761829019916120209749390154650770762708572199645469274948440159792968476928652495892616216293857503426300302445933498770289454957227925337033943760634361249657233940813547531964350723680838880950933538581211818237609742825331687312244197081037499012435498284388788191265459150272733493652764471723347089076960980919801391621783191857785541880205394348958478832144213672958997185556647939989753603815133512255513796561631825743201147079379246546685092534031524372171155861340739733566334614431374677027826235385480243827003659189433051321572414676395647114618361563796788346757245924778660693299500699761061919062786041264577300363485826783664960723008418392605818094825405609108797452375513926725029118086215078092135405154794547114355896166834428314593618312406128810228904281278520829072699105197341273828833287098630460581869695792899526088343203431723285792502778495054757991218760102531069640455668615889783303961501655144277196816934490924828132979059309543043139498650106943806168067676181709876370078895099254031235649636796306203148515514671334058987083796072644222817154021827461157892631054154646812865832167980662097810783592616377178824564685650327159044185334401450482678079356313643874429728853938954653260019416149242084228698976742626549744705326903270985453337548400467097220619729785595511582227170240881365580328830787529355941289568952378152281234528136235507347660201086446613765592442609072437477787641839462624245918658285807271955518543878210686133366682688516218020712314489776807828288733572599976966868301670697669950486822662250216353568523359911620496610967412109274476873302336637390565939000964027891853685808862405655014124086357315345120264885029274834770979547702999992795625791313560118842485546893020393853496949992172174488354135506176472972019635173014644185701826955829633524940217550722579628288481770294405770297272532712836288250736774314857957917093347033438288251408712923705639662241184082060645904881672356248629712004175528132179189865982907758051241488916046631002555442546171479892398407030377843748192412652446250378496226883446915023099552887930337019524176815690784132244243380184682734117390241078877465529806536201566804252792416392233223158313642872400165970350649413289983458079297654030062326039457022588912810513675221590865221056299258579452899395095436584932621936810328615018194279381641721967896093192351578551181336253829149691997367127086603541899431829497013732775130619847206784326763195453647398233895098874337543239227653975574888109981064475106017180351066402421682134127692221513055534809888783820331367784849752531826532265388600352733349065942399183511527488876015654080474413346794643068947303398776401300140270012248771151031652450909986508935906260470597511543141608696912665751174950444214452366849796829306659324372259461118915906696530792650512706853600443898653877686722467991587645937940691987794142088038886716854170174464638079008588234792148169056037730083613864074444097471658740830641651134414944503015919196718974382878040893414291975292258351698285903706662879783855899184626261131933646163475238855853631993575274023287552963069054310343408940701367412800043303804394833903248708445466267957955578813611907087918240957394328217446970488523544913489005012698284788816605168246673303080321032096380155892038950001292784806823990852125667355974326106018998497033466462374967381100240140727718807835396117594541218609024043688457427955894353580848262376825613837139250060699665983452362531920999514892563465940193934716623966824405172997983859168100262968714753901164784042942026554042295885445015765081391352314149048178107351095064992825244698143774345926173408067661414746917113326771986703931696245779820831752049020689214979514839610365958901629616876276674853563746321760590023259131786997934037529634959339218821985442355100757944142705242743274199882963972723041846326233354107245230376219820533458086934459894844361017161325907844415604344548833079391704277055888813778202092725761187163646330897312951289150818693621446627923149686245631936188382895739079721920037585543414429496572882904558249181694010421758675847887184877360026363161750233302252597666545257638946101025263027769364807564528637671511641985531640634163229551776790027658791830457182778354895253203578208218940768868905756001036841904342874944937121311296201938074007253442294313119305068727454027077814892269825101126904923547725373921749126475217816466683045448522355872125846130040003906867542965262808312527994892102839528093961715147620853238364685472030520006857275544624354681186435132657339377651465754267019914692387180538580807589598888353982354480975063177522260135718585996414971598285735509725708731226825612213644396536076334066685555120168713181752068005035986911934892008154264738482247059901568087759903730036640619834799050759579875068632408090427269224897939387276562255533785727287555802070908067540007924544105545836457980297851368452628260580468970844582426996709243885882822785035488157629671825514887245153566579452235070591758012606079788845001537946696830010092828633656332896935468338728459187984296543268941854785967521980266768918535650247053632443727503693243754817858515284408693511399590214135479295037504015874109096255408129482730462376736158801025287695793168302210275301099320339760289569317160256236714013530641302075975492490405221796587656777650108773113591317838846880387715064263812429711865868019387580530726849825252410280309026088894652417251863543114517868356980453012487397831713323559830426601553536215136005503299969263880919790005706272968731263213511480769326491198577624238255445400931212107536135933968934925796661514544268435284789075165762066343186123440515771600840206673790248088556968722805318288581056953872643382125393708985904585394102492876245076204545166758000910232101858677960692703208514989952542349364835440375446167569149582162537899731194269611192684252236940816422225950083811322853270085711118850328374889851827978011663708769112427928826082819157615736273054041675527392722359766793719451675023033518062247867797077378223198079568523204834389568418420398750105804333991232829733914054888329390330735527230678274046324714205620410456531118328329093951371645586596849725426779892078551541752927956629506799231307507974833057817959473128152109947940528249759720353229647138998034363093778487886706608863039531014305243500729212773526251117707343229798290665987221486959648848628688604498171624126172450635931365126219920883390584654520487550772943410717114417412561048350521720206012174636138354209460124336303358634768452455789218142892295267855868106481946688146876651554461755003986311127479633408084329147805533059548394000372890704584047053407018235563525925592880828791178477469963905526459474886059723939907383841958485365999335086673707376129628496379750696684350761308825045663051610588181455417952479310102025622913547915788583963787174100895610402417555840220848333018656959163512333477010836387558740327391685521772088840634766415481927554222563645847809837963357987497787082900983118424754571258260751785413200827775545470375596222785568052488051404253449918903853762536059208381025119982547801494387053229370302609478154612268658685965146678236931821810249266298831811465801997465300087848603348870198407066194775963742153423747859586279938626013705376916471279090871800948556746345276148288277394308338679229886223079370050275424720640097466629384761434723113524470612358627736570806096174304563169645715912843753588610901575378354403437428678057766869378470090115511063388540194006066606887935085731520472484743202591502654387027109768370234388584520944617481546578518732716546654366778859978940969935815201864199537000683115277854077223420279763526016530972454238128061354090560705916038462190427884042047284982307521888519398500848112083193266615352292443138427135180886629403930534244927935791540088743391959061088397303174501374330740381306676329232977643382934240894087283047242525224533397593843777116890777210291312744689842551058433678436645777427084108397193275662954697690376288645308259125471257045227705206847217412712762435394512320684709371792368286053840501652980064543011841478185766178716200708536944805852087415876190488448552638214834027177864531327011983803498120771650009759052426626982800535540541454213594821270699644199473863646782007784550415061298636117172101873238979609086733444643849672815797989156860377593420587875916368808831662470158637379492530102956002892331089444922983777939795955170337347004400485407269857769919737003323759252961380729060334538280206034965492275055103506580918785404108632041071718558006334685880228343949558322479162062165493712278656279117511500593422689953168620583545714422170058943406440895158320801494173816939903491011439792705457005994599912409953074132977745297864165870794626917304295038006041504143948982526759703324362588988846438838835270191499817362664868922042699558165998943026172808742380739475931298599805360989124647094511164252734000083853979484543987616193020118609517957741484880966469213158986130168722706987007855758895425449125688666679223175334923400434917979252643951555671054660433859404929099923138518668262295841362104427819664819020418068797747117254390839634516470234896306215424184404495308641670646055705227800532955438532155014463692884527636044798526176305607858412374802448716830680956716869343042691039162509256950615740462834538052210167209588273186775343289920383071851077444967953775277492669564103067985029702885794890421551087095216453393037763019666032700436496688431255020452783311976950136577045094339266629583544143789078531498438542754524865926076711486300950530350443835382574507795836726471747117435865635516365386166407965725609869705753147776913686387144381073388798063713979259794596957382766424175624362898600364565525019964790115037154503006317402340018893995104837589564466950438502282817247452414276499225941778001159991502588755273321912716750318545690012761944930517291994792787798267093357413904322511672680648467504230502576874696579914163578953524882530518651566854221485255296057370697347133250723348496227959302739272163628415743875411423231276857710988938728228792568452598909089199854690212255137718651164076837443950739882989554214341185417887296181340927681814177073908765875051403917570414241472242633231079570388375803268850835938154330127622509602325558602031173212549328525293731460128188058071239974666520393938417773435415287355471211084811340864722305716038682903421543060841006186190367067083648650434536424528512023565598287524258957400450950521164243868281939850502689963622980348044794730081554204379606865007564028915378279640066120546257658162900838715941569069660480260894985840902930123450964743831999809057803602830079343089157057946057062737635935534478471994927226969564517035792437271932728415874847769226705815816869272697694214267439005359912559075281039160173279163802545498903060671120914685295440970648693703800461613600427792375064119636627062400378668438128856046217399870134744916043272065574761959645841044366982641970247734451864547224133347566395249549013738157512623174012835688835404955899524163885130982276893028352558076701775297023540548047688588180044839622141756945994049866706477275594716376959873712508283724367329753291472928740805143122792524898050543322205407225985486555152011279123924098343057135475333301522165605106517383880511175832616100497881092973274367944984151441822979990688713239417545856080720591466718806092156047671723596685620328474481581124708049008899151970853205279016781916163743480018635377344391878337287622624824215829877598665553283700802691153898080927261853764913798897722909987470927243139666875047369860472992485200984324314217566166307043299700199513879748299174544759940978141280006262127040090477455987874919268912441373429683908649998867154437264254394191384220518746984109152847974524324080759594498464604061460409397547188312870068019748956351271148291329986965255499663884419995995024016595441145808726048107573234065001368881723789738803228779053738027931223071366910742589150834344436060777066887276680073000360075063240838432771308213794030879323786284282277230908053475158481585896275863478063862095782617129801210270553204052164024318942217380054408693992117277903651266831986326590100882886630856763617572351968115238069016598940091710299055800107305146764101929456398479920167217799277969877183664148333367791771375504281112164782845755316953083796994170799231847296335485333211177534265710289831772890854420184401012176248844702244693582169294974103988546529632406972593200808425547778970987450762850372054525937279903625721746989298643006593849928527047984899802880354535125022809373344597360034925228091853354568387258007908115854405375678207113680414635333181559299950632394375766570675933283187308063265697381052429081814501417389806078717324647592367873030690858790134720550892457923014645154476557017713393411569198199181192211704256377414789686824182343373212314368885682947646703754244013135868326725449231664065520064677430500347200896860905478836947095084629222949902046268223637810191921282920180927084746186253521927084578855285162447730055145633501007452292797597839721144047088026050776223642074618713574219039309082161662832084041762175370916633358950163454837861840881695579628996044800465227604686176870128514791118131960909087203817659264193246027545750539082534317056637510390441181266539660717089534772287509530669473561134818973236206581682842110900311822023450447589078819900892702183725918030076600789215342088306433777397948970730717926348331569043661169555680135614106800733482532084167830812305321987310353111979130883911270812053071393005509925164413128061767425112606054239397930686848007357444746601115036695830818502171526158976879894016781363248295200021388343079437400679544992535487833601309011636355313744128474452354397600153981832100029910613475549549826544650767606040293752841870317465446837147238427818652957808171511964964902588414582748668871512118273652703146670637225781296679343284680187727644182866214105751125377985175575422668519511512921281635560568577319766205571323407235296215544555177892697383672576044656063102446122766228305557907231511385073585482880536579383740182870145287121638301286578360539159375671214936627131145335666661944675265502366966890439701713984848142179283641933985515485889710796481670636330414290167916901468226126487971685719152332735805451355826902882858857280881836387571289241182876573996140849770784380588764738647670466720634098359909023197395209778634312693088639825850114138484190587821975755035653421004170810484751130604096187443258433535864406952842387803929399069524137556860679728096045900871418435557646372995044473121907199089292288131316982702315040593944607949755448989368611306283973528933209658723318896042664756214442424734441331767096530609082456418831574530935250725405204153788289553254995846047735322027944733597090555525126194332645867967139500995518638538387744620380476017994131306339393624016344867297168751713661934700289641778405187907099089218882761308110898206548373820901834408563325027205120668717262509820559551334504719272792158173415561382330487088054430109150703832038268745770550596420016150488761011249472226829658997465275892374635087413919102772915247406263770399710040524649878413239828313264487301689757302656276242585597148962686257304671958637453322486307071355170596068763774073900214327698087423597480198822992443180746801367462194529053632798483228711703790369697023792865791091178314790258227621042327951884346769733499019635398903405620478805135260270699051491185076229575511895873697241716825887758104276244005941205770246838139973072075595468879481772548871080078851166725837336986063096581473247938071332863226906616180739918440764639955248702398327459937897188412331906217397894210601044277249298852274506902804297724814837791694193240959115121353090458699940791731846461391603623724789693346589914071863119083123948012783343060811218600618377942861570253915458297897347915060841744587902652617295842750736056420589270740255749681557463830951527705240706018993274860538429630558855342159609942621314888442963212779916583416298893593368976238350975559940242753301904026946505765954455675503924478686934928715740086067960574398114141933125538455392776897815934246341391797672238335544483174453046179877856798958285769966316720545268522539849149595957435999809958303625632733075107593132983109443836293342492027076060452597211258630844079082647347561647244383903954660656461811064961644039338201893636364941633210361634186855032498214063540644405243488772066065083160174535885242053675111658552169525496743521237608494084076631872568294965779264410059468758863233452708448984658126851140400409775377020734703401300255320983782938678199330471557709374918314765285535037444083888978278220075110691828866140455036696428860586572379571525821341069142232972169404673028293312244329096693498554555923934074208823113717671716066447233323174984062716824155529426519140920556148846386793297247153167688560774837995329549020311415600928262641446812769471784055195512484936519575907322027283180814728772040280650791505478694801448921105197483866758462479405408375239459188053005786054437724516427683985200775338143874857554856287281363468569530846137467529579167473862026218629065821058051825585126998247053920624929238431214230861591448820641699230328061427460006424801129508471600612235119667702542007628702066968407428834885712868672716253134417160262112782304340754334502071988591017219601744517156068611919639440087784724784715840824812060226865734838785816335412726812550490393634087202700542473964549950731324191702026289554930727373131146336968959841873511567812856579928726611454387691506552436549922336221604629132097731869892863642835315177212808186776125750510388107797413163416552578129881375941930868149478544571468934680020733803814589284804641491745632689232029129474371256881016391539251920119591715928524209476550677613409195343152100717902426495318285674908440112194660204389788352309676609741169440892624629495993164840773477955909986623170311693320664220212968860228005230871748769020968517939252537965941913036281684042911809206733689653885565307137184061304434457149543478242710798539761523067583029856109890977368687837955032922325840671627329138017193230951414816279415709780133742909705244158183063916341630356444343811920023667271184896041785862382708316489123462979415908099071804654309242155708939808762787238689263663398223957277279822032172122298694125983970353248292654860363224969933459582564794234036264733112098193930985901278437521602222214361481991790256527625407971254559924370161971092730543396264615840854132092969825508123472552542514014969738223802890543843422563682989550546859011266473618996988253653665502306175581877899647858389228313884108509062347417679043608633433673372369493062203917163092541262352849658654667103266126839250190470458432895100241872682013423545742510055316943883130038369540982937703518023676093193662744369339374304599959896638795370271080219201264706217792054199017292797598752075867922530291732494748261357790395513285404609772137163898537063955033254029040256115169988578339266469046540641480656459304854716129861994194019105702662152691184132292770756037978796564726166067975588976955828534268284150152874185879465988515772773970553308165545928756177200635196572768958046804615507945190902840658809549041882333324001844218763390549794463838994640507268167041588171323779589971079264467070433789128926054601063361074795423924161416949345079811792119467812924022190128568754263420049064534317401360386346352223312035813816172625300684006882219503546092202306731619196009204087904363215703322715337385001404738573334527037174243533886074101835162933805026679631369321036139479974943702169890017736202558182556325255706006918842765427958276881083585448630105064227233124046850037911492019082888122652681603767482729389381775907297210684600811567886552421322580572819466292236103905866355813782407163485135123563670385216868576399868016969705515878014083478501153482268982166527426064749969919196045759349586607956499309782999322254452751138715719138386080419593306424796372460330916120959519525546153439841111450363882169857003075223110513123816292039302548816895093381557958512602430486428170778488146770938656323929441725570705182272849055447601273285135728251615430845111786102082776808489397443800070250439039364117233939105416847993069812971203610977359049352252506049483799651213547472771059131166616327483338672013225858052545240763332390470594223559744338431097764580341991551223641775019038986538293937780763674758227946249787903667877298623021209926151083924637719436258933484235325513829467365908708607012745526199521802378207174208489241298294725635912561481148921721496302172735339677743363419715269040670847654816049204199515963773889715276659978746766765693608342334499448772908134422382268946441992211069290160205927056944617709025903369984826740009174251189093394355990471898184815474644440809377209884894180841592186201774420471279615823936938926202792504517214446253424100836654176668683472884480588683877238150178429912150850140911260514701279522678230171734079704830770963057483706790858761330663285727855752750498166296767316582847407521234805168616099824583892344146325081171431573396090359632429846050306380263601421526560840713267083450506056507277209367248739661820186228814715761094319377566131395528073796563232513041309088376155606764368434828830395306625058171015268225758525473592017300127274023894526914047084822318240683477559483648750345137084161696159577704338601564887560253085903339278000329671838980761941819124473533403162178702525013777346348482143947918045354951040419167916320265266849928252664638593983354244814809875611270617070404783651115084777977158948861002460158420369550617704042468695560817626243772596569980182161313152497322513046665446047487334904898676346679723653013529516912742470718225275127808470524089789163935058619006391139875408331856074480318152678449414453627732524938450499635250231254054959070042553589826790694278297639089659667362906558993393361550982777777502801423761059576474920065252009981460538404510308373248513849638547337989530427087230819801587164780264797229472973894565092206254327128164279180556167878354617263944396208623278186989800895393537202705078410560899581580193783664636930865504048945904414059778999416358310731983614123243930873275918267959797379719455117277449208499440188138849382329507275453520751736187957139047736661770731230707476681502319746606059261272193611789824356608901800807909542162541334526065845643888901799892398993659068482135955695628437081293053341990525134121014551229910927535923066155626390105104184461242332346420175728763772039944952142598460664833610612197947183024908387576747265523403665988120258517326026879282992277912868414194126925163013830079660938323427632113827548972045910345349256692335075844324722688296014435123456564358974354754254773328402889184874665249734730621300702288330354650137255295515599956094984159150242188681154232494046011409135498729425569773488310926886816966380501122792095204117302866471439839877681870511077435760343639888044479195651973681778727346422966302024937198496177280466460171163137040385128746893845847958897078801352921778576386549414135881704181990317301924889404600734441488348505520754867142071288489528678026652835382916615585789349546370829890187624825225522583611064327135645409470386364932686590463318329689731221330514602125832370205257256300215671640583168192970116711357757186128474080856844619320605752901578160154845029568772557623464896749949389749343685580882386674331925321965527496231284338420541049017053192174485342121891684873270105733977906825209952288894779748628105220237287778433640045502135557049652913724362784106081790585299991484814116429801922032094401974830033744950580813149841107370391890976038054635795525670348358781328659134365613649659995272978147286112382399050237294403060356991835238200681709387713893363084395935936343837848264182064471980993413275950370301927971408252076244343287146243035598352481991490445234180617026375344878358987723496740341753182643592751616526084414652102829459932582633966815708249639128894505351007752559611875659018010287073222195458865123913914686462408721995859772162171769198150033504027792340347022361973585834250376947624471252797263830434945438496696835501069793303632780164635527773506914414081502309764579635406414612394832147349540773490809187443074213117277937439246760463192964720890241474646890768973480304863208399904057403227454462176749277261323748696308660939752920335535142565038614996224517459806819756336084173237594037590330395312532783937264667299206448082662389539815462054509444321486678275104030829570406704003076441352683891508341366542548967441720007878242330475434841826270272093053473798094345705209599619214806311755860718852796014181254162192119348129843360840688924801459866280658366659649363935251628792381540558938566724511567127003328405117491750684041732310542476994547772468068208209570970840573507568675608633138230448375307867944580884367778614439740772144407451931691291993272436673451907596339537958753991030012471900112034054888812401338425937439557207551397389962336110472403762792125815205757147467339427030897295602533544823471447943894197806511747971660809620125681216507109220855894927653086340865495033739284600966986619130966404201240468102100041914091390282137131659801554183807505156242714626794724169235607898299568454528403103934439617525155611851971571258995559286537368867337798898139048327252942335784482933947251243103074930090922349543554248075041012535016585152210837464505633861461936341614742373713954956954155325643616065510149294830141719287088575486825277059495416874225866275000980809212996439052149944502358003834117620649184124290152200467650669552183785035915356810570481496365647817553591934339347649778332520891074811092547554321593757108028443091038105519700625753227117065680019288804320207440559042236174458162919156395374051537060598968349121451755245382967750176311294014537113741303092716796030610995271573157522496269757778097941943615139524506889038828336865673569181297399503696411773310984887786002227567953420511029265928603738390798526935501796405014029998047696167662328148361587943287598991532747296821133993881257335291487769679275979430526366839960341856996239724874870449722280059229019749566864554017855650258354647729809893952917195123699010399244910204563604667356571377445556381006233530278351257852618767827310177792800469365235189469871772517912243299230022890231590116211435534117444947576328098736865390790499248653054324597001773169045244108522619871173030522354342847870932734328054406284446074284442716208471710991271923310028805743009242791318118191181410709661277352297037426666745722400892059880601758395201172690079151196877697145235188563474841840698014167880074930322668394088586711210429115815868601238835168496973276540641404533180210747722711425773788376748802422802341814774557387648379039438045408252653072307400579443853840383841185768887660206769876504428110909702140404359176149301842816928801199840608080479708787153419602121421381776561320027582263398421132319435621925007312870057166311526451272299128184067060304133301273015326833086620972485195805258157586684563306775427102743345225743699078939965654123316803580786627331586336853752746964085019646134644395370166499770720518294794868622964561774202117007800538565231813148524909148601363207900621154449385730300253856052248425753672784197286902197974540268217715077116391685488298507318926095222409710693060151373041152938707445545843954110464080737760050942623976279294245815557179723972248194349664995312765870067142643721221099183586794870374636296193362125986368431279744849110658351424055293898391694090821247001257124126451005032811071205774723404497020281268063387737402521363449172913978556697111746690960924731120479227516910417455747841823378904556160461221158728114540231533067729314325341154978339119863693342635397986405608775841726211865925708272402087144714226726298558760036763556196686562712016134488210159601930967321814099002264221180828091521075035134565135554516325477988609492177453473318377308564828818751031526469707689927150710012106378290731813806170217430826231000262065320366614938552766462673715117582697620727527295167808817017799476120905340030080476767154599710070239183025554564575320491080976516582446718545969608222826370345953528083716562525191700581288843695402072112257948108347337490595166732371843561883110644172975287146322492427260880069267535318400892478121555774609655337798444702125653889208598859006895120764925351706027394389471888234483570701899051916452048471686971941521347686125871917617693423438986216084879059333145121962824773508964335114570961147119020639580153987475352931625472171496466212720488183418193259087931591484580696023256597487192176543598397157844833262202316244386889615533046109006886154435448038077704461298349454454181155121591777502356162745465842489748510586483695143999151312460637603350035714508892263628235161220071874126793292956338540601826766571622412128250682103487673130222539577273858590590897544827485616295193337205849633032857657734159102545268323351184103142706454561211828837168341021086329477715356753607488248422401608115353927846321404646865073440900738565571454253818246861951658599627530114063526384069507498609340868606036223188435544181860156509962463334770691588694573343534680630762718351346002207251381888648764678915581755504024833554633589231836897700022397867684247968559665650419576384105063672661292363748640570283129200501860065413833276488432151272495785916186494402363041038767757209372099812874850545103699148651752153396362219556715162321887819956709683182258536036573901026606999155256478802846724652289513186596695442891360504467869923321052734183834039935052221523978869291059803730724492614393766053796072568865661110232419890549839516197548245686724340433558154166356632243264278009488039305940741973680044487834911450443070647872235348812611664152497524116385385612696519911266061869750902860721817066959936592053245098495818628375638489651631946359460755953133863183589945143512935978440258868328215363822673423199299657388012544216629841643944641975935602677907468456867677770101031578074089895587413842806016383560325838483067431623113846751107435171738814715126367658423917222804199344702806111314926375219312178249137045550321408096730779331814450241715757181533183953608568873182120370472781278251453219557498508902774544336353215380899416904903327510885383985411241999758708507117155671231233003270742147233626514688536439874869165898287447030473447054324951579135347989510741593876341316601027589292879126689109703178230403153007248061717641302309277102621747049519097219097000655848699010229269481522366402514574600288726029407950127108518418766595369761956481041235975911730703346158443427215421773273033069807949630697424034503668702745227648928443872199717671544257499865386530861976265954706306593610286362766728916584089067525721703423846718966342078135306185772306428509218543999947887795447192158823594818321100949575310517175158926693150954764435196106141792438430449652368426810561170633835366472235624801349828556108611098032541500899684854300165395681784289495525648472263632886618060592721344098909378596815182661156462710274697781211033263806031695000172359524672239810475341568981779905555087595159047500019867415801292790761977335021358050722100707624001319214483942542952127868098097903426948928508204433764458315923828262501165786449764901448228565271216298846960318321968179110985214168746727170041742079287299717181024264487209161980409118838405797760645228247507424040220065304931980218379696405883684178518091203789655363759870106330443674601921001613295749133612545225568706466549548629583228018956016825708497306812597316321233350305430168120662104307478070350807376887282255219070349150770155307567176049228346878298586837105171143036928188184957619901910100295072398797249691934148560666139107814190403804903358436627815538756745872448696066827333861167577852833350019074834985744774118551570615439938163635842934717861761516485242087333153094119915945982814087867044905813253830397422846454781141658389657619367793201375736801714472437091782676713639028358124899782212026975403691123718336293997465608725393635300752252953995352905376585100645225422608560088279477992255699941255382579255728987461134462978467295752016160754292654879439432991256582028974031549624434663714292354020718047388970008667373961838237478866816017136848875997434538743533859096988404491062563140732282364750644826822957614320932258915785998008177400135330789369607282043125674909873386082607768688621037712403597169603740936011565447375983592675054571621265482629716215882962104670523853863901939943510225679922163032744996041984261631996249440278090881604330052758598796924352055203576035851830856176687136498193305023543111217046642275253001424968174915129839729219871014343715197572488593206562785815795002563233149323975883567121290429207623013835299201400964314073284293569169754537305466203771069161484301873737621011429174161612504167173996800262299336143788648987580536664557888233736233397620574116708112743672994996960423834111118130761266880015705658847400635199601277099434446284960071847866044337192971112502442539290437040421389193044263291121569038476970245161329865590830335666645278395157159052923831331814731837335253828334876134707660112629638666476994980961546101915736657106121012040518610695536555870228545576383111215816599591989986056062209318437141910371254894442132362010421295541155151681610549823763924484986224579116696611438365979437980117277060502253787415752151540447057399444640886221729348517272034897692397982251754464240414637031924308025039828570111286623776358774738101557723436578572263536874718524007622388593969885817557544468461420527264304645045467304129734398935011658826378556746479688921514389719900696766102956311756200379896793514221942335282139676620779052482312832907152425240638613008990972215176095295227426269294097965680152850513382197670463308273730875842179745804265902205132197333442784425597786129670308879929942415564665668642394214300859138961041943751419270873160482087715417166525610256787004932431336876066832344232417154556398777037484764815090581829888310114953420082659726701520327272690033811133162101486989401188220644006046790661648141995889710046385549258910261279053442388534209572596237175098698185099847585419847962977481907367710341189381332904409876852038863368003876100886819509689703170352292495091801888308978771472331700370282073759815836885003095849613729656058468006132570327755664911993618085543546706732134967837106758258141913184422591279130319236737626762527436990487246807410809125870419648240477392973249632434012083436518286517522594785949851547449242132968971815242182733010067569164421104476764217499181286534305745188528909872041423089668405914591017401631182679719079473890153428275224291592159754812802499990509099196223140492435144767204754522844335514429326110679179732407027315134368250546143608796064812834168310789039435793200225719889281836152798402541732706856942988243028072003633814762279232173533650993860713493377662138061575554831243289249260917580102668230680975304848042402762736899992403988492779943004498742313338280977352165594683499947764189350590688445539047325096455286517194365001873997332007084453139795607300650598862433193818630699907793159467976710531463113031039939294974562223381114872697018701819270227830558430988756861748030112296280790336237670693819507002177005098739348249650023441806329341144653795565846035296642203341277196642315727081441759581067420473729140417177300720848334753518680282247642293898979098185856799528723654303596049482375638080897885429283113628505335464394606647406815488816557974396673362096272215044168008701591089576449581273396055452555895755349762946360796304735374027563767839851187626043987069089155973887609612025320735104654675306117000860891137709665134138865024376021575410104491571384730335722729749788671023932154208696762042610866236033353895324374741091531537483275843682543309031422683020037824346243715555563014352312204419723309956223321198464764459950844561414692405934046571410019782281352451508480292886545288973166319308997438452560515685899430925846464391103851107169554696710184189036795969410316806181614752467737023058199324688310057787182119539837719808869148917307130219997619412331113778065835956597976704570167026640596005243648011834387187838742314910828146900248277620336401911906002267361094739674120349340636263915138413018933855446398364576615335883493871542439366007993623773486037253644129685947743384964726686997407051878152876161525320976286346182763910554100226036755617862240264614249139691942707583360617714010886567798253002630634259397536731896730824390343149533239478778179621859570444503465884873447859368592006719367605962004978515108683804446170483181374632889240866141391371257070491996907457883973805511545721220445868140307119988991848670054922274162810414988487741149462039971591543430876642540325340213983143092217759128417106238200970923556267292495216204327181204121421044499331300361594578003286813999990781063863231581445684221055058469317347688144783632360475115792652547852534562468916213386600897850772788524252920761021810851073569199109398551460676323186739175852764971717200252544957851866895266059018908928330593106139750625478343668500055879434480023052705254709450106362333826203435890755200024777889045491783751619947278000635781227307230131327340991561381507964658327732128195408045048308378464292199709442155006585697163728538247527036965896299008089764148745893838138556731284465288683903299417534034490283485371435609941649710259364635757227068783643963645786760429755046615057942234705980622175163798323139393059300577266131048349876882901116533300618681453987947055280240834579676573163808325700991216838895692465106022785881646955033766931540453103619840665058474535261580867686444353334015599092529785727068682133024984270941946278434869067797908547211515350669188765925215520404194861568739688780245473249203179772289748496780835277945081689176697005058579974003740936560440613023875466652698176413060110311570989301482062859201622833005415936149012578685230738320013313744164192946611645042034902884494358368243356676494885756688631821893122739792295270064708085128583370731249598379760501512989161348976483437494433435321582824125533532790472519929131364289862708976170930331863654056356857537230161186032652645670505618778908891252242690888584598465444991300356807209416686170832958315830879185444653381588662019234154821526367221628638729256769925469238440109297821563353837235231153663606051383545622242647634991428303564670903174572887660650149746569801839078801014821166427541115432423398543400096301709355206896469776879664812914056068796122457492477642387219628475025143587348892463373860142754483921502181011675262388880527936072228446559516172830093355984340027461029692529880850610541572147170183810473150971889846389587990375771246060948644472420421063368530080071061404590529293421803798134103079833253562149441277367239412322686825989425766152372315147425365605613361334842664360483287160823085837894215177778781733768248349312844130651401235678900812250048070965962501276327438557110931576175533104200383877539122226440971734248296764760671158702362421159213949730794419467984917593109788806299016431736331661966370900914071445278722303020913779917995570458958696740861034109435238461663043127735382899953540605015943330007927838215396805875793967754949486892653022332794188678030354251230365128275959066521763051803502688740017326048428509535891850022165051280272056040955810960651740768842838168418350281899437634654883439659502771179368205180189925788642666345535764916543964670499145553686559962525162961186058148376792233146030116143250907161793101792299522472546831733876568548036064209437110441077376805137968230426058728758144572921447479130301682890709724761276422485531898945236969376608718163744909682575336578167263272704263370993505107050024007137414642304237557280507771155854439011863684505641098771013975771350962530636705661153663120443584402044925634085158434955349523569546804432733771973496291430429202613881791792498899304521457976484285797706219757093719724393590097210670621090230826694238676808315211459519377383306915193910104752767798095714551479686154621525509475849374120120054952234399232207490440756759578179883462990960825395690961235847219271048640119134081595992154619962320224201536838982093687271149967412116379813773668395386607086376006907530246944210025172494585325854108754271687319532392640943798231030865493463289234781582460089014854073669524500371420192071859382648889228344860318817521374735217720855004874808525801534867846581023773756798111488487047878974827392159165852720857729824855136958962099744167349031358035029636743492952418199280106125524441160020591638246809097997118253679226858542170879588116578068028834630432491520137058554539140023562789503082761115195502312762304944616375033102356596223081733096296077394344516048076982479294048673763868021225950775397830325109286195825494965626912223773675261553276439278861784502981151777499560713391907437635026350944754678036956591152989621744292004619470002422193331397970352335945138937559286476509549154563088316296065431749532823781731882907685425197461109211589218517257557987915306279213979454974219524560826733576787422310321179845843573701183802581388061540878634695189267982560686244521780333193980496145661542774827067163532305640529603830386749564349684345838252366783484586401851237144534201274305375942939655647258691238277702924147956219265877943388314554244775328980453782488002489505388551568197731321177346738741109705512680639283152760862587227615056333293314682025382988418505764707705303288983928819556166363382258696814577855336000131299096904494307853840290811960858384768816200024156875897646096711358995900978585375726726578649831683323296616793523016411956113237982071324616018559343703784638318282732012417337801316905476071597160259512846974783473633320929524549381474970278451003935572307910763739399181625865826670814885056653440534334313570399436453693880216342135369394528198535734580260772389123419273521851017627178263161834545198426056664848061780020117067170009373902620364283552095564735976990478682303761754057759800980563323985060327828504837062751362831505630699559288727568687804090455342844146732440808276340297139306805726018123615924170814242583986453330104763636206346411611480160731361416764103096611849708906859759071170519947676659320533175473152395144619065913288964097470886662072712697035309294427355199040390151279296601291592653030443528210497562319549417891761825767892773522459854180030139795792209640104133166246088799833150164535655435697246249487448926382521062331163241626695127599304257500819843580232738915830742119924816497476710548005598782734353704737936099036477080515000797402362925884762145959091195903541249267610596359863015840308751414652213872603366632263369873553752048495876474862144514855525184389536039141799372320988881492158126392524821946055599258192323233364984715618222854395851737295267336752004256802275403183237347940086865875832076347422664842864456176669102915967952967814759746749181182470769735123244755708803469833485007125265033585520517740568276310500295579723227614840461186819050099216675720094505635864661815196392096040658154543094148462716964973211193843850469090342875759426969066810258560320704345852064242070870541036864577593595858335172183865331245404409676878585116077257085781864254701095086224783030400546580428962811516772230520710610692494917196955333427977557274124665614308799120586393413289852407701763836680104602421266917592201927862351953985896257581226573430501564495795962766550653168844908951390859189635938939524796215333815462653208200530426459661857419341095150113782655269175790933478017470108415071701990323401013642461441094330744985046345185654065972074624020002304002728642360214786844794420611364027526981844568422492005071979673087204686181267922906840943668913652883673926473630894488747741397731674889949382441662640502659167740538071685228161209136020159644117473653009029884336835611176863817922662693101536046071327624771267731355386971607234380388674933582178490716616073116339471403146275633274012514891218357327275072829496078722015930507744960794399460012327421264488943207242359801234516651974986495158121835515794371372027124258361327244027722554030504068068214260269794089082936958687026366241587124947109896739901590153286420885060328674191875728458644662895470809326640948889981399746535379870783231385544938228991535841707454406641298584228526517981158743590546400589269988339356374374915007753373992496104197847981425755370698798563122597929242530217533385907612330182327655604352324195052986098211017160090523624569231232916272985469352229743993913102361917403849775701456956689215315983709589314277868704358835069564130421779642376632842820580071590807225733776780125047362675513339490974997922934761816811247144625423068500985065347290893721441647182810965116209189490613881460373522256124719985770097041800198239612236335805021105605760612429102274622336962971753152519536934884585690135777544796070486317083338817957373401345345318864895777385959868817738604123197585781724440201693721540822301366915794914763897225925383427053192203046487453178018327615754457520294711438401322829516966248716658026030987465315495950580620687596629637777597027448265044315506736535518280833601194142837514056336110003364080998988977805307808686417713878567866749195611968392814434624424002241205361983709531066836651816698661033780651507250337698492453611856818295357270894257778925366439812243467864007036653713381370893746698449180790474669136400037840822989945133982897649890048901372748491936613469278532826711937585754138711494367343506014135147291348296058115000756863297975773034951223554809918153997490224987099812104786238630609124856192837428582516751598241213795482970771125065801936085755538057452891488620097528452395781776491941966026670103872422327264530601411265458885950143223286752388987630987282663532997368757131779532770833909114607064160193171158450146820497921127771268733597363291669047853885845236292423643794396977678767329576468477186746856322378501497860552173943563633134469079614486359303767421173955099075196534832702498243789135820561584964718496582987497274207691271948675413394885302436716408397044072516214251204744428022148564735041602044828222225027179846756820402320486610440863787528589064648838165290176816986797685013953946638634841985209035557974246606637043500435242936386363892465591430536524112443780794422990411857041977377671632601322517323292565851987053786140135920016845904567385879993909894959744233911957609433538836317991082777653384836232234575532379834533523809088243853720985521105716920827902916675142238960659525159309102707783320915857144267623738558604860447057548073895258714542730112155427354839899342564050555443551952002125404779778277355413798189947282520134549524834746111554555235584639923412914631056135922151880848343682141441684690262576994276242555909170043030643421087481572994331770685702355091501173685025517244044601475614630710459794896843528987196605507226600733567318749065908249968887941943250696035273780101237912305628412211703086129614957110478282735096880106137495110674471407079685204827395505623651217489524978459206185061823543351016075601334144572453836774089532803987982422200197617676530225440362168935586031509725373132348352817219705005082446631583353137214565118125459147379323242807813377356366738865374868598166765224524428056697091215693041682989622643524790742033816840495947361481643115794277372200128513037297209621849780209003380373094150836955582303414435138810149295494531577174620761890226242091004951337263788060969773275881061755492685369161916656176725740612531882453952674596409514049260002658665602864392985534793972635541331891488843190959540661019596610349272031479024981440478327897536636382561785963542313038433208451844660516773170729860227376134579231409121123508978666626019731102505790075914309086022774629753714031358670079316814447405682923237567963371156230261129551014303244168389823390878051806800013486559009900205130710394063757557564512581368345444648174762122822205246351339138989448718811123390361368064703424791340570624406618127639080716828440068395495674010716032297304150256785421547833198690382902824508546957182305904677474082389966241469795430325579980123981052793387371207179112515190249338481677391457235011678403743265437261035088665984573993651142672318692953245321981371856786176056869976301702653737798197308875875453136141297152781024833781877576810943447549480023036794798261381482910031987452098249027293462933675521265055953733010502907451944538576539132972768123183481505766828972150094952995518327952418570403270366453430211989882755049710326348988528492014513741817038282791886249799120852217911440347683173018425600136069272552965804894566198295502593520086173059892408696848357170183403439581882508437257231981150849658888383227503838541759455630926518995340742034211495251471929683075576768097593472240755341608289158161737799537892813564028223767973636984977709058077155896847867672485655938920140347551748808083553051168577275201621242163453400451090865124779529553049297000729673835082541227457752853931171477124798171368077480751652184951110131201451883092273378636252878715276290202835594254225044561260277193472409280180577890288724248256338733289887021487973234573686692407138339109515910760489751188913024727283343078634467412014220390766301336041990109979976706857405674192563784456882498032452522287888687520863514657445170124782527770137319749405381586227493827444809692121852197274021500501678645936402121430487064134313782198233422372250253082582967535222614130646297253514925639938799824444341642490564543516610922764606483389058922459283592567736789928971030717059821428142203623499757385850273912051942410432488360920316006396577023730578958865964472561210441885146699016755892607908771174244839322980571857547681349063257826969748829673478337110767243494028778920025965878923895170850694562491171981539499448433786660563474784007437110919795312820677739042565439111969880124764233879469668263351379845017986826371323304195551288990442112653536080909917489872382020901548900363494231763866927711190842710590463410043759462442627790082820592003020745303872914866629532867581326741384949861319885281509211640304076965232466309918583543968794053326826031483901846368254135107869596344337726836847376837668981087905852915366959905327071597210018273860557272351145472032228783368275978757493815211536539026122130747471395027007823496412018839588691978896485707751475076441824415970558470154696086498474801578441677639408869509449084765618958600054266731587973341067823755475157682079831195786479841420283915301919461908207623661533186770266542368076734523110138024575250490527036268308596283367638540987042699405623446686467352324522156093768448706723642024402046730488513513416332780427379831219902769909819187263850720470873627119276625379106497471968778309976779354993298346916185036752886072786743323129234188731584019712095440018589307926045826599935843946111974018043950129615388060388005805573803903338394694639304979257815533694783936095893463607178934816410235408682943286482687727057286662987010573687110189892873510025378177557402030822967342127517767478888203144080072471310657054188288946492247221128437141479249921561562357044593453645791449753830833004263919223910102718803048382019385881180090120193185067997407988423583237069864193786939545772918833983129252136219692818336202822375645167591652292317694596589672807581723574582435992756149161869564085390290431410144365599872303287315845219078378864427877127395482721870585403550308889488480232536932382481150257169678727397318984676664166887774328067240740088679972132646905451380096165436952680055763350913745205090991765691538121576100930666127885962868179107070094736415053072429686586849790516413417197896394898949284356236683585631706597511596518138367920085477927522346225241934756273529130002141215939601526977913172964422471152368827710738330390647552402282169455828304952588851429598678153968837008661263057020695365290346963943964483904635212753743165989693301304284417850744157374159217934443128169828024415571324830952067123373474808377590546466128583568205363484018862788681157131862979767510960834858320312434911012467061955045890630203837740654257873707142662275300591719233408400858489388727821000389868441013121845784235302035286247131651714697332152507978999307786442613749653184263176376585600064323332732197597363938043515941067280191947591434835702288239163024388541804676249112440043308117127416098712048621894945440673119967990255452240098916629917252437484284910671813103754433496461333424388056525781843954184732899003051860882237579572380056372854705643812065402654660316655636443485227076280170773259390998201730198179388003662567827764191510938397756097706522001345718446009304428400902662644088771256231255078044124304825648436991001315088336009444732461061082672281614348960886826604780250427139416698663258553511481003996731099180955950773254470959387718750156109297330500649915033295088472152249491297539085982290568862586977446171327354189109189034965012542033801931108302739225602795005569869603535953884058266297910015410400940144801360580690823584641302087040912547498954908756230597932720757568892689104895542876739301046771701176049914090326881576337193050540942894263394454841036401336784163353887669282573680792500972772060516812980229940924669303897152047699884102236061308465004034293895091813669129367948329866223704916212139510782667752803306835786959420088507656468699794737340421817426232828659818115340199044632389874988381021260621767433364624992092139558126974809655351331340720870374147645532875280047968370304110535499478261920758824606092541423039273530251593742315591146012369468743901127592786301351766373627649148951650402042799882802385431880654723997060689569255230710206190067672361361454205640231422207882688407466938550788991625817391807165038866920428632617008533924801353370739270604445396272146399915539286789512555025749725127697954242768102483424478660583836089777072811126315048932282351755547893521484816169101549186158893818841788237305835120327261989075063699959477542745914637207357716785620252679973549430278904906420220011799182186134378211378019829147992403799653400951735490793075083942612804852568245041107377022939507878849853629325634528539856965995884791334786221428333827196275909415849325420697412292732562282205614530895524930579512220157348520258409506017856837144914613849714899111120788651827929192664921874521101098048364529612069087985387960827850363213073200869711453030646287444256550707537539614918264284789671371129830030494558222240355339807697536537641629766217895973792450678127463336882720962670881540118612054173559139014793391704201513905929308619499088540110909751753004419429802242221630181218725200506342940354564613169741468026567021884518580062346771300070209581293674428534256945759505201110384120115734445512292276165574314771921872976642440696624925160407702614944924688899678609875069163819800934879657197422958911430082237181506274104945389803825765044869642822605671692444640378755687654692289911011778733960812055092098422473295438270781560614148289178915478716686432408674166293945092940457086510796172970272343658415096506243824801465838490421690109967004761732690939109461392138216445400133546313633834798986947274214578484992469484921926120689706475682590870087406632422989983924463338809481770276816066658941378626463517225484355187192200092637908003330330845287913690934345927345997147155559048999663556827118606427886260060779421778399137276462461641682153658228829002728802328285580772389076572344972688542104851447685156251526252440343588442819916237552154215844334773109850891353291128762512497681698266160352468986619234012946204005230027606111957017285242256536749762910845846212862618159699168078874552219469552363933922455703378614664601880037462749095956801815702610123696239339065792353424454649053830701814510828801805424733524067071486289604231349606296207943574309838468411859919724254787529542586617790882704761820331255749572101107569052799680474231675577463655351647344997570043901874662659429805749784167211318858722879744054191917762505936292607617963961074078476041982723882626776820807586902951043276559314228856894378557845086651704733557668227673072503381334998578705602680007239727620080850803784802467682297318502398464762852808606979833003767409785189324448339209406908258134862692574242630107646206223302892230180468271774930539940837936183455563371698615920581655647426436079682691977599625669802328704486816837204749964694440762055713861551928817070588628466461812386977030065282730504843257954848105916853039041465489437752660449990925586610565951042472643690124303236006182456355146593835968785440275815594114579419351060719867659388950466808961212536248378316732665221780358456655776065076685871379738293710219881181876643065168226102118574058200404173692034685650410403373754116260349896902334273449139787154947983640703073783129873110089634828910262360947110552066633884824987561330404600797090682534190020182160710087717381103151372833049016874452364775024758215723232109937185500024413822524055523747547813199477945132696902204633866045331780820073041268533699029972189790268754800499790882076191755078222674931046503392475230792443089253809555562142863383619289404962476113205727527571035276370448953125887470166403309860776032774326666460032196531677926059784855052980180217400768641863529371437706220748422088354583546821451354776674274660872334049192887172033111983262681305170680294607746623355782869717726312464601991397064169055960218401792062961514637006621878828553849131035150588092552650528350510219182164973338428904680968662682549301751321131696790454923523728910082485993883814697393056597162326077888983634122795825473635327778228417903385135560100617297213792690112231425750115988752394174436118961489593820959366562626584312061676521662395980846700513695356795829565229901977815749280870027916048855651032597179008268979662673412634723958548642321163490665956954947463387128184136681656093211051134911615935902712917172549805806858856539476233647028363209729186561101589352720616881595900126560690768302365941462361238217714652859305703208585326046592990889230027003205825816509229491932842485987555239140474451777162275684438253097415875046285255197205827266195172253626988804791441943691719194214009723412288612107282649304919297354472631758082204571788764637250743404228577555587456558807453341222209234337976744385724760110309177258277031450456622770044935421916537550370243744914477908924186173638336842221086736646442930481271410537079747909017038809432439662332720554355127364351973931365608554826855292980935356606197835215745926924598696037756972469899857126567572714089273920879594351598582831615067793832698333284019100505778839689645624053614851834786417885340581110019832970372667128140270685047029067369301244593244090620747286655346427291815796881037705692428605746633323109585216002650086703067804690260304049323258766978709203022511701433641439099897132541855281945416368675551692270624028821484803081748366086647307930359267748627126878517841822798098356425982547017102960771455012879999324266142361433667089288181341065536968075976198381242054836269371775336370603563980358511982777355330010560026198133234101920074856328091534156375527930857355252837516022356668888505765209735855994157126060046653965761900421945370556745056491432527452352525825248101584071257939965463749909170511700584318165418889985336993017737308844963050882010299843885002245506598214243092668047631943394059340857468353130344249470290593624489793462781369217782359152462094681867201294181649740010567822809610551448878323909324128493635404698124976800073408287297883665799179611927698604896024843208746329852009667095889890628985256617093245204325234763360982180554999347138356207617983500280293465452195848581065763098267185194881733571081717442738167125014707535731725122602990780929741681231655280765542943624700222101340624587651244683932278858187884641617199681620891248872742605941615185543129323400982566354228417580595669697735795061705616677049416578783527645779587315260882948662177327977973884494339008694013806138119337545333194060453438393694199263061852010419321882938807365659222704472692964107632680485649228037019305697550479564659639079610178756708398519028881888292995996890760356237237294737591374478712303916605973745138367520464117015490933876942420441441489226624273463208179886000899298375018658239510858926173607906230349311475988488843343583877071251717660155708218194244283356879264769108673191196546274424841742906803996995262771091465123370620377626147092533762188103985679231590647267652847071118875724618217121657762433470735956439413503997441338101321559085619314508060466520159814763131434357892079681274839386124470564055343130601068003251904455530292356375951139485071729384712314863691510155183405059357429252692456996428717124169833790633165020443884676923198369778335081523503854909813611633292643317749583407360200650760255666644942469209849829752957612564886455753225260565056416339904301627286397656727936722630902514259885907558186975507983354043994821926657716538999543603229756944112033576608523840383764069900169640706756427564173646327727325624561339741241345370526265072717138568643640749909676942133822968312031320800284492911792716367285729655046728457547972946229980006846248765982455657424039063062971580194339254843389009007536485807162070551098702970012129203701881270704736361475905222013260583018250805820234861334686482592374831020915636362655096405842032501156578437930609833920337940661409918955013046935139062004760536777264606070485035455122448017502975872234641418058904167122815551744658652398331332217149332422250096792056599185478428487567117432216669202529110118702332859158075812673876282770662978722356561299875203552899682932950064247207732595090024783740685701479461890927506955572772431681860759304948591967864815904448119057984882399274328726098987405844376952056194029513392153136346326331818367336362245957576480345371451004449718848649580050792050670631978831203661178286371999517505062525071777323226315174426795518212094925517962420602107070904504995644539761774784230192938224742290139115171756047234758031313111778961324135618725673419939347790445546110186372568350511200901313288466444736711871155569851279574401641927769180674820614133053642388784867328010757759081933476521542060191668655662396344439011538079490552573295497898243704330900491723104110011442526547319025842137492749635292061901108172219861302526817032600122696545247178608649500650012358145902529954849745309121464336241499382763739800749932551588999121350995763253386564929728359840910924988019529202367926819528000103989121525194841445792199553949781362998872207467613671963715823564998276986949128691808474688682304491592306529355317285367546072462344186059464914132518220043413515340385703806506378565875081223060968422543850113859088921726657874769393406840622180347051930275662208046011111372782935420161182878055782267915039572855307214586868431292451879815938305172068282694321740091494230572835556901849886145641327862914192072051004056179678101695020926560438000807877389453512874957069551623090294710412753836828892379826732017957706196206131229993551116609120886725083565350958220118725420057152852644257210458525086323170742940564471229887521848027776989877634498558355725325263052866403623058796179081879797084393157290908570837016090205608478021269477518584346059278264659485276444120690330942356529071791958411925565136846744564808118951297071604666568367942125839995594316343173064278650677470115387775876337048512237977378376441080144888798551385585599120348580953193376767980450854518986483799305467649923517056117933328543102216285942136384157627801550278825862931339689924438651464570147177033721000729417360850184093370839091909932896574158738073867350219046727894683618243246407218257393775740673492263623238703531768881786724145010726086408999682704283399309154623609344305919667124064328951517887118343281195740991720296267011385657342104352209373678679281490267199851854578023654677885449304399014256221022969162032348069026692029985208896891471568497049594804031535587892770022344250941828147481693842173673194052652828585439905853160389883204753429264076139239072243075807677212818862878756258609163957415292635377653326795251474484003222155570820344199554880064972066484228864772898446809083858125865599132136013136811919301224888759206057488567718249169730066355270044681052019404740260779381192494023879287868553990250035782976705956008559203422048296833046111475278894985541672896626083778860962363776948830476766711060227891337114564045443126506049668268018288349147396182569932775186268440292945305337712751628563871453871442646934797193867364665252498652567833854262362817595160890606305456825082134284487202622049859936441149852315103857832875424588041201137324905214429503123254524362660147212192039963974109315687373312051422060986529958739726101637439268401108508065210441221199775946311472662161003258994129761138262715511002504568895261799086833956640008528072811998833106117797657231464397487069488663660102346072983228271151917313492637310276600374999356559383010028396929723625984342862207334738013254817349023361164333019912222083798693736271536653816593726554197181951740152378072069273251169862471876942615875550876988587316970944308443324291870516342665272566395778154536789236781431571391309128727153196869773641054728878388068741474399717539367613820054143259893073061686393461419653153160445829850888431423630723166280893206735172136819821879229527171476600982514202720658129463731418262165566144466350253432828424931539517586467651308492281874473495177546046306793093351008408752426389991195711186650919379002903649610849890403292248382166497912933128209606586699582147234336035392903286876280074293390226695746088478130016824589338345453356406900039495743705180381126060029541817286510741833074316058235745966464858846479115039867159707091341738685768869948844336566388494755660814554437324283012756911142669521519580002028624399087946791633674571983964255951491747877383599985053355438977962627416946237930087342970870091490651128097639635169639929342223113057758283810135330537967455455286347256733086418060884381182785996661119085796201734951003911142639577183759135679498317885727293552588445255913566967120606596932823157698530585211980740960662577580263960768725394464148516029028302342846720713287604884244376960260810502524810100158526267064899178055172296602698336394306021041800624721718678705120186622619595987865352041226300701177375462530154200556422558337440367536278942289334241460477736294009037393640151074440509325957225942150470521419669746007877324098743875880564274994398726929846407328133412116193916627752643522430884355288095717989460747782116929474025192573465611967591607218480606654342248009328884734643844599223112930103221633930020015058468367853457311572328849366644685021010425162343560459076498597390288928881399519415061992809005477851065012558525344301865759945444291249497897547688594262576107389446208883492883747371950218446077042843567430064215013839858669288765143915011152118889472269025495913903466247375847756510574030659256382471000077552021006648310918174560663349958979802784423270377643806086695334402444735777486411767320129317280614888733188134434591359145839204996709412569874871536285060623447144358338604183713607161548038070040757241865771578306314881438945604448881259147791916452910739608116754116117989638490120394899149208994947748979679609139517200663098729622845230019174287435766416777816342946357335954407496135557058972838773070900500732044162600415716659643874393710485970159415335681480934713401824283778920640109203118010303347378776547549160522331782866933898466878316093323083062634992000894482004613879887309313154843944514611246820408862454414745983104765291084986356398520520595342988800041554682140913417744280840530228307109433040899005264563577766423461995579886121275479919597866584139222610180097228409185902524869890886456456526465970984048037072788288723509617617647398694257171718118533509339333620758162079024156891523360271603149335732420281481812766125075110135031331528543422661969660190713336172007885559357390865288486878752688366850867634858061628171478798353814864622222932000158338791311211001639930753593202873629361207542382169387857675233131268303100899407674922794843547655063093424678800192738083669762589850574875830536301881444474211336006318379061786113773441098403871004040932621443339431859686866357511062613172191018595516255817111160559406309224798919321565399265647019624658426583166644266937733984923808480686350142941638351050481608195483553976274446206642762207078767179230364998359000660719773851708714223321511926519817361040724436426661198311052937145407520276464339488504651686216312001167630855565833742643271027098752667250073573104531747217118764161460154053674515384186163580712967012005784525545070298799759912356036591565338960386163722418036321025138832098105285806620019714734318125893461147631868023421581504404608751234328573241986372475880740307961691933042287595859804637547191474628164891157006809372667237528165587036524399471058514217632735470766791049238646871148086091206632828556704686185897795456768847972188395446429902442683095010578369426969785838779168094493828028922902557712231944105261299291868532843625943800288615628463403316666505486907822732060407231609730836637058275543500865803572850358954467574053317937220656902072096205599637215594657386586629208074512578795011390472553609597922680039731982688202746684307903681974347217753332660801487134458137341142117396488376185686346344868891026841349809896555915266309357817665706458370269941373563636129455565252886654503445424166628661396612620114610390986953912391513588173577372566762352108816637426330856752181480088270007258375573231668256885493114948955566185510272191302092611959163587851675325103779212612312345107520271173179842095546636321141320657265853867239318088333582757660804221712228271935788381617921400155399502142571042166325746022575098193762963381042719707431888193570428457846479663660448875470042361344465862017146699952309081745558871338656434913610761736735141327824807157549970176753372607689404219776972001687557841743120412584084845501812257567632506341058564647447752928587233381666177087895708473528844293303933754166502010967088693373236157852437995828743790055670200718687716372850877590919230295228506109890363376483858017779784124097028471144496295401935702083154119641094114288860353296566033394533676988372105233487066529965361944502212944236273233334476971602340657595301891084688753078920244656719096981186943086037201977658728141590528018628464911089570108872825230273672424567133073222861203195363037789363631589906584506032239697575146431727143680937482726705904923453365821938755440085335227232437118570779036759646778535744507171396824281457008762056266685358610338047114351714062578269991278773461769574678467415500967352592452029694050882772846788039864720650741406504871564748177698267408993092014211142248822668390753425204675182052210772029103645548487037480176178563664023497465865596586770618542812523001689670771871497409157693396714280607394899436856454732320026753172611008984465335133920919760530408959272529857641749721796099169641741018518177718111607836767646861433524477238378161685236714723497584965751219547789724316657011720310705461468944650107270574654430237815282484757733630367527511673209982644844439926595273279191124312157133645202291685930462207198218005499471207564628845271056751907105913104609792496896643028815133609376679308444279924959528795951648766261975363190339819098627896666297311217431114973927878223043228790478291139895007466893271785383611696955624648221937965298386307843666930025217193560764803400178205796399008004726544103262137127538708469047996183787662239173814901569951114433456049877910326171032845491681123355622195817461894848777685262400891455046264623299430092844239831793046719799835675439448941410671074770788662668703689542176440611361571634326515008646773889589714998701300809721875719629976556943387392859959296785758722576634014872768750984187197555485979486560708690167470126344777854763032288020509385924818531781322745552724723263701425470341175719337948328647460810120756845734811121732451323416528767568609232629088775382185070648261759211185187268270004042551339335542252365277491918457739462967287120408986070907891481909367980193873166205161436680526074200914106024765302376267934190847226876047498123664337802266823948893183067935425217166505576462350640785288999053285215779222681098797738346278139225644403369350470972309802605033014913156516248615565730497193178275862870494512384925194633955738895575480227057914251481010278848171247897138292294693105104641516050984942871931998383989706830136025085239307025088506214864079413861223856386205779157505076692008719134268407698353536215234163729773579846176572411610950429260265804339498591131583013550915107007454302237643993887579043920256566442728572315208811508840672432592735438548661312181874382575244157562770496743886430852975948303091046312939009045914658974216051393333354383069035560145150505444234161960155349250363527323220019572736887757832428619021812074585025713219556775264050588368832839825071217342399636245233536526939878861953363595165329517726092860455852246162447052050833373249277252465773814077200550539811758263547926681810603671156883675705823222658517044381980614368915964181720897568546895744815908518437784219449453461219209341792096472406454763075138588340774134094716400279391017274852806388238504908684498639327006060950037601194731654331309485387330281332226425177077757445655027100456772211603790987720861441892535495489222194388524501757303743309550678275679077119515704082639647538827501062239886493872278642502758586104305672021121233606995336034263726361781558929650419584646509824204985511453813700378003247888468199453672873040393867027654815832792630869971269076157355483657999748653728867918050771476080320643708951230422049045572113724624164141221667018315324421681364505348815217244460579300945314919356265180853806180516710627269075088510303446344668608220625985161268605916769498571484512891694929666490227900472331848362321427167999643143061831568061904488994572912627109192664040529907606114623611676313308300578243436324840407029832540445338934184548164999189651238878338967964638366702688394159523078992170238676633980306861600548885393817659264979760399904852855336308788844176315511629169643425695985594166151838404334765430857678342370756581904212653794418399029599196056169954187547296076979041642456666785364170642054923008109452007233571867796744934194746647407508937535259136569608124063440346194351558294342090751320287091774551409294474209350936970152690038457194794443639407840298284802681295730271682143592913751224619890932230973787588874779651010317618429485042081399250128463212842297415057991739402901819308674869369536538947021611485410412190331230721681339625912775095697821175936675281619260865260531202092301519176886340682841140321842159434162646727240560277328444605151296657750977594698100048131078143150659441083607926586223726382180238241119587539171605829409963990814338179639376707122713625311456779961908225470003061508929438292265112278419067681788687568175912796013512078318578239161556924716421284597803943046090165604349301064964684879026817499639653035305613618593313268167817016337495643710374756658085327364829632322037303734196518024950329304929747577307664111649536937094189328962864081705765201163960735648515420268972738547255945884745227657018824769076905401905863505508596729024076724623589932707310796419476953295745832919386092846438657515338688081446099761102860907693704443938995980976269956672444555139375167148751340567907751537828700235894642335230071599721470618688359392255555523877815447294870519704528251676112868595133623221762025795488832395888290495446289977366565924804990335209752469752079989659218403691252431011454866257621287003626296284505435423950064461652450872375450290362285448755783844495305002543061482942695680011955410609240742252714808573791610355727536071735725136076645681295926772387913033714179508991053464539556083091686660000590842378952601876021319051916325849108004190368524680843242238212065736091273634483524710934270586011092319910980772341897966200939133302847778568628618954249514301463715210262590883176385349489296667625569135762850644063267191791576053602536465476240996885237300664897873834376209160373518577137802427560705427032908239446650358037429107628054581898854874220716940675427187345305902683722963049343387684650751552917394003394607446092825218979664660897250885906123283356421195804573554121779102001085576846080380371167679084353736054218840381976719453704273422910181293096832665654996141871809840108116575798184834000480676078553089383941716474436999971618753612778777284967300044454913603411722267898987386311861536237485801480478492096328045800338316651130065733469515392276398859232700798542145134093226112147922309402851510721248387847979586226085439257829786323394807024861008974051706848743544901099119223126198727011096200146658845462404575143665124561091812343907395722176552160743506832486308215417492205394929147713329786311752666796909807358245438832507414920006655498190045870688772475549630201899960452405317593637793190851794207759762308702672087231982781949424746776529295539924230628313083972784566532680356165876293663815491349634293690265427506396880293260749920794945713417094493009510591762217659066913361864434831622543693101515797495735508166141842577314822440680184821547256414261129113270864858259520548046012795440206289928331041280165046377892397901165801576314764501477311936521231403762119504392034183105384462874205595183753305246689445000512808721647548311885376503395770369743501950406401435096339584470351224830692040035417793079122690884617709087458905999888543700493653367722464546936707205503333182708820835086968241553143021929889433936386003995034751327702911898198497005659739656959620798578717441827820141954900624153402850138726220984641116603869718132010261063666031457906978355532709832177037809855847835206099534713667212439898329245944250467591087941977467722790796979321245417911276458787697624263943878963519884788720846607983597124006148599289014656087632255866199410916053434403901231194694782921670705649350918068372482138642805653448305934977723279341685458972565532401230890993234652375860851449927996575848378737710353656629432473469426478275897858819424121795231320314189991577390329911017255836505302422501301427694574736312462714974334884103333181503281371832898073857657048838582125963593335891714272268966742716084119293714065980286951682851435652098012320108200213982986222917618057699562981890941555653696722928439988053202555677129485321975171372358064918418670471532355414031410232326882177063826306297040580266971817286808754624803022470001982473883703724960425139750704057719434443909449114183920997526223149646433993290868625774410342947040664964736874511183202536911088595769631298275222135815876006974646835906479405532257384150407077538886770031974838494747051408684584000168858678427562237385461564677276135183211197250666667866073985200643668335337826289986312868112775357203525548856954948884164502130419512297801522708615483695721509778461329261645816636299412698542680616266034132121552459133398484080006048761301483102780078976225694045373327027522713686390902902562892698405258850262654626778449987746088427324057409959021833050663486459819142319737513491116137329446345586904224917180600596362340439484546048865950358592211607533239167830903549879181729604993083472314667950975280078296074319607726570461478023336027416996810081976267554408175516631908480439624142968894628026645602813496598671768068921920418262209429172700966375718422590626798766325049579872669344154197394118100391153730859071308520884646222042140139458028714625115370412673854596561648921283321994905720592396895345183692411053079464695794645404282219304083577455920443590045083674447421580830130750420682306570011184219826484415910086018622880731421186732156041256327897290198438000326885262043411547177982493745714625585450162606037394280485196261120763607688487645053991408928590868115961178435392600567200003223219436081537588610601641522119049366006772422948756858761686709686557204834433706647161208839933222522756636744074584144515331574885997103657647802587718480028292159775521958138595409008780635433601732323590293156293914560293476270174418237847353391231566108195339066399603692613011435274443993174361143311901863126570710290845003680967150847168973062085150573899283105584195645452286526685294171182072159918397017707372075031695790835941074482166759314474946583597147214480339718291056286790224071876457799915473396166100224501913760990185783973885493314131294084543957295180124842879402608807011566186983181862234020215528584707827158244317738571823089507983586178238222327058428834418315792911939349210344082955915154619061595923812387795073052498816918691462591605713793886127995145189952980576571067537247556567152251721351817419476470772874956699943332226830419820031817700363067943958764683431436089086587978437246552370710377541146566228873234807814591175345359313942529216237834569626847948977089681946842021777590924248824567344811325535186046174520149851195561968987324378824944961712464550856296792940144082867559104777559012850983271519257110361298066234310971004606873584887337063991594376851429593760177491634505782787494358201639634055020220677934309800039890765159835528584597066299408840606861444934310411012652231001572485342530467086286595551943962971262262495907178567325436716259664653153343971413474679729845934707925222526979218221866500831604162414065730823411087391199398073505874566367289005618849428743808162201654106383282765039923793321689988015016069559559530914325060470821239110181023908101959171448907283777373766475031136557882960948021293107126053553596819811701919040706036878287629580301191553311683290569222983967456997183862601591006109901600398210441166670665029707563577055729584560448692196772009304292313157098912473344083031148157051151978323724408726600651094812236474324663592109058813724693847733593091066565017763208181557942179275623662150093404261851456860981155366024249246705664423324147088670918722605968505621948984268261132677888697940221252941955393445091288530845369967770290413642896770529672550510153304805010135068926201282649849589471713817602004825947458460582599334502178036875009188194268050658169535707403572515686722809560422497661202196773304289773476840475567017772274009540133409001060334690151093999228453550922148119127073229527243470328711621068731825827932766635092308988160825773051430409429062243734995957795655146848249248887699552225126313529577759140073305426554513295103838798385930042153685838479103335086389389583790591481375703580405273448455669379704770689608414298021341471252673726621045010138384161986487394736354473924885911082739716615560720815633005860865912853871370586146681681588722328603927014839680703904537643050951557123519438902625963496269641551932310593324653917210614223631485578515274161120315621904387095068837746336645043330753126062150797657553384664073234171827106022614062852568635592478460721762843743915478002716282965272252885751501630762265849500347260014867513895206324729763308165240668882880481655372938386405998906474653450035717439504795497519805110214178926901798417042133687024795418133469445525443357993243477947273089169551148397445515011517339616816334617065009270609354673143678284931659958423076122356470646697509162278500288681166605775565896568556471214365596512258589851274953939704542921265397368650233156754360748271012223930597991624639337848376656870692049129025298814670154253567620812984964134695993960486929367012709247288394122337009894778017204498236876683929851843557241780649849361626701238898615928191475783554448491739535988449335770453662263552866385748049812669999839251003875506926418721463822583587645058568522153521743244618870337423898961344747827645393314740642580854895140019301665213276703653703663741469642993363101186706874965732913429688194798770078880582395886113655376650451637259955555715032910478269771325290828248901311610488336554104480081475336033400006302234874443049780726820071572089549470101939427910864273914484484807358826236037674705446923985511263896250150974174946399626261154717275448605962972385701938120011469639958823611096076981990918679314644721205333100142692335027620199149826581750145593707333722844586640762093734281699281673208746823334384080181948060273115481695168600510224610517748529581145844820276119914314018922463626656799531553070278230801472962696869922372649491107648257298286181586962525621317234144636760129039857440388068507929176270135568741473124256044965324255661162321443100579333483624856049850225902632468728720971896767051924848191039642133694106258382990084769647909882719525121465420515715557785169644628447192936161902277204309413523259822539698975535656552646673525518823308463823555727975133737961779025948764885072172142883224316319076246473425413636960873447762149786995833107935302530774938631396149032663000591181377196502419172623971140366941155566471985493799576457223048028262922517156984917911449404553286651323603880049523194922144961079912047618405617657145510942411971316491205303432425638948184513307461595542521250589844888316809031453612875702659489425259080057159378506581780295319003633465034430733777980507955945623478611759743331804806355689438357849381152933879058807429390461753524454158840577819367610092387298134387765526857714089613279363328984161307836738733900480751531824158678328360949576986842923784495501122243378929822758688348596947922413564613963976135621411587813682322753723328328845619659696788598441874953551757811071050309439323581192414687884219405402216592173988295642572935646501805699770436968501587788683863007495312482779746627141515498359245073865261115836086913054237821512838726389908730427101277198443643135817934412436078597276352812121612819814843794775668810117050948835120605606146427916130435655510825225772284829136230681032507125468855270696804665742043046996095124017335446559591416920101040830957657502301727578558448696657919403150368639615338437480366323321425564291698573510132510897491406828265946467023570228341383609923310272629831120336653390246273759807845579865125028920090411909879822491181648379789813836028344368332304979099367174192778452522415375933274332336804485178654962624994602323247919937040298619478874164050018377871282767440986607323147150130226071694855510180279329489454875627122125425420835775697211741805940479446899756572930051684147203571179609921364667221350448533492703397466351580581520592023420761548557989471149146403850970209469887376653923428076697295889047961131821997184331854311347471625395522577552418356261350379136851873620581341860617166600714687181622128794468280417185835229840068514825521724229280627265303143831451552280623758369477653396327862340833484008127446889475977295173053489214469193793576074794845337571171809921026254858215772571364601034669054319284382608357444819904776042130813205868164361491944892803581320811311775638019393621264359790854535586719130932763395249681717139989851401677119804306991335098811567834074044081542396903309543272532226224284554180231998845883326456320080758472482953245788016302342065644748479286647208473285710317002531186112335921638290434822722572016026388836595349624204998596883524042433271379964659196437559014233089028021549493863047358366467150182014674293088373963206692037839586485650057434291382523002806034438435399163463509346863919624777687656844151188850092005485221904471385110094177303486821526970365363326544436105860125452687570014840757445634165422418908129343716273020316807189825793625247001323997113677541642688693332692000732760399135627263878898271584302223858822673434698132758002275994284981563962893200161675470625020319588168230529103298326335679674551299022709200125664680319894786181141554396036055007649845166868731193361419695374390539996228078645080193070233331772820922185169880619149333778697257688627662878972016233799452146617259710634539336577869378877817417546705354236791469823617625252513962268226271045587284386710093871835232156603131237986954815831216264554278393808215487885373213062930547547365947867297140566466638193329273348509611506012671285033442955802384253233769961299962965857005478524029717907462865769799117430650819435455675593769331145517890875879453132055096747287333046301650272224092552863383311658766291980620384661999520948933045316688267612640664088011056840968575471996215772120052272613390333056520200643712989036824166078527443584855540069772261676771557564186920816986200766761048253167361151852823481329182422050200993472161161511726313251978080845998941563748064965404065742483369284023998024642049793089830712474656229800768498262234302533759003187417908120941475713476156162080211081850453994501960695155749350296706758111667485188788078043007336886601976242912260028403610668320330820060542745413913049564980959106070481258168781542257198185410446241988143572270160857749280461811047815296761501341297820400966429882870197183532053062562916533296364853684476829315772383819342804739745762356967660433412301582808780766021474765808506957424969857328984771314151351374993383964647809104053721009237188455080404251042026752327102832800082086278301842852412235273226519772510279857934631905697048817252946184134748409712787360501351117269652915254072696331999691182476144868573778800289237410803671082343994580349725550536984877388280297017794303478560292506793760405969159878010797150686517704596551881611385344465711573432441257106137281534284769670913247943824737827922658949969410439226360141986437520812279575768985740637945706031264260195502453879536515357214718903696634470953078654721955831532340782106005962319376261644876624148553940803035632884709713507477851447419568005313869348637774964722169234157322625243813622915918467582983738939070378362965601475026052529631971465626160123302470803786838000920662240038535506175875724450721498421235458753839729018230481895016724010978046296027223311088639136393616894055974629218092472738484040969054183464202162938635324518661938555478906690675970146924190758244708721475000647159637314572966404182181047143347095846081270613905261074385417344385494420714851982005855505008796175605178766738761691903556946975447379783256589111251683683839933314404498300170526345936321052915992546002087436447375463024099731130993195888103568809701405637649631299203362697436790626401223808954031901229687222552584804548422353159170545540739936610671161356230704055821195287694263292443619173454104379110020123879862724422433850995510083836059430607152127629357881568878416060195953992389174340189888287450708531691734075824227155355952642974845487140010782790034740652218541490372137755941378014415014668171138643836917915570361631209374119155749533160986847542581128976890520974037415380381711046521320679934059904059243106723433260139645228442765894321905659838163875487176413347365173186365211009348070663377434951715619786784475977118077987327425201457344421391831005704302366936501451515702219835078857633213958499046278692026720215984719284394296091664065594687235493785927376633488541501138101183700841638382256576369968876807290906482390610669635073111880719317352432314356173524424584006060322876899216075243407720607936480734297882094656940608214310005334657879093378745735173003469920343904545467202655215585939333485611332562600442089078014256771425890158756947940960301133950560740667657087175987255754116884191667019643678308345218528907689170384770820294950976621580972240224649244335138685692664510982816542094689796997103354097866927944691538416176400504705876145826278678746293160157518797709053478703094928271598949668996111457336992220965781103478954552255779896478526302036565891093272492894211927566826811723525863662384714531951438861655616424796795377557784292457408465408155762755621087213596953713724514410564225650968532600630479275815260051701504120909787241146494309887245738022481023918305425411210975882783557972840595417515303978316985233758465094144723334783443287699507460185129089846216421968716961821546512830911949005086932777181123659090238846535462290894984319028675227651153280336154657434529082001765944224975678923608860908657208060486048221936464524741966264116962564596519284768542124200136137252985371425220535919661028215192760610936056737172650171907447577601598373969605181912160769583989922175138099567358896985923096445340019198111695991330645296924003738214773497223412078070434546482766853945528500742573162632701973051472988176818098044922746317009711322971163908796826858578349313090209234116814372905163862623474389116410513486735519446587428512543470473838934647738995646205123127608445010597527365312670869386746921275607936214776577970309317091918682876971769988935382806382515448683326355555695001382974401714070287644033150650770846633908087374047881924071563409769638292061488873104929923101302450133465173337271537614925292628279963546962400493481431387232538724600211018022494760783586058224383813877578037875671390209204215654287292631754062632077712742035501733077843500172314433695690200633623285992873029305979743690286183987509789038732379739367181659891425693083265444652292372092610003121274647612146005033913988533090774759980511144350405769480265942825061429162523877734999220216636315179570127253510348308576390577404581372399425036035981298158340602604852389965224923445001424952188971836135419029671136029556938233957595300526329572134669072964980846817129512738369030673976628106473946943871601872743999017724483074752456492324011333988716593213028762558932862845663280632824736796697144564555117311807900169918814248590937283051692541770739879935617115070978451486247868710205994536487190219804233136214235142710574014670157550390212148298217201887602167415474012522571564935954937533016048827413445104624486169404095874925092975955818987661110957467131205143700950956848728251937594719028974394902769339111158165943493224216368507129166353206719976502386540680790859746986152748424401240808602067189969341212061823353560082572751655907583386744213970196234570580637186382385157181121430667468075035950450638064788011076421169777181192413512801755440681233634815292884300161370770742364532090032266716198876378143070909382087409041192214480175276120037109349263138344501427940152997735233798447167445865251940397568849127252807024450546549808879941408606547319814427614675165800300490885672824580018261417728878490459631672731422874126159607073841784064704975367697550191769661018262710826824764825238135776430821213997304781473781559429621688765558830011239324721393330576075282922811021571361947900454186984789839842869818011017305859835549969115515783806004639483209965195219741872297306043441293737745990605897612270274016974332258337404326671874611066998002792885396761657018513150888006120543724725774961329223823901722334577177396824119255814735309555879658066215446332775073346907278178654929971191385232174607863807015967818665800618833277482545399013692805871570771130805006443929364397486352233512029854906212202445979155708513377534304224983129365862514134180295668602346381473961695201686149489596717341815601397612489699636879568114005110130155945356771742918964971931225042558990966843509001220717418994564316220727386030183350933158563459423983460878384107739942877904983068386964716725724902726875540456806736365245202074470243941960781250447432901177539230316042027982233715164708327164763462325507924967269173726058891437206610445796091060029558643844709984064512419691784304790697276166522655643421666219265337347919012071652080194255926506088798853361531053163518196777839758675856946571346824927616264363423135849496148306019181029082124877226184134014911362116431198826820227357925144502041335663594173448356902746559588139854926428499486816544031682139804443216350447841994439001996976246594565706350839783400512595151488969664939375502941387198580140838774349885328836221187587284868501058494259607483800542927765041624982890958581312696378694902554685416526631320328623684499338182908218302460870580676561854206207339382616229096571555403734840923304120037254626070169969433557975614291750941610766160449683895474004165950209088535979999168316212648759303806603443779919547917171722768626034521398761025798368603084072548151232775572932356146070584530841573782521231403811814450069422239576124301720225183950067166002544002352363334034574713072684394248312902373578548586666920156621418196505619639557881608219433567644829767695444417808863085979330541017884618822586734866175435714219587936554079225862641245490733065478092715013887551361688367690989973183780895166496136391094535706995612063982282523224510947769273785425733436108991240859896089087388761785853191782909746114234932743396987576096691770574330513764378751502728140385905198758600724264698560148318143559386323688360497048417010795074435265082884576527938396299147111308591878331001391592473464936268221081327211208418670971571818717658743794969781938386093246379790385726625685392323163459811492463297929521981307969218266110702674380546555605103729536870883005942192374702052431475124076007497333413880037694364197973260084437624441644753674825412462583903012070277514710472149962433573552890760092329436073093830514192378507919495785815444082309487605837815981613142793775963054256727057532827513543211289412880027850305683585691499273516997172684570444951863572202652247257814028856029270838741548583229835701493535289385311865630183889703648695570801062219582323546952417206418855798552894833105263310561921071779029412522158832646517836186994823159932336206461441031510731445675882387444455890274327972315174890652121220419391472493870753817126295961117020576333434643224552578803038844426781081766911195325785017686629784452278360249870329761037035239575819358277829599780595179207213992815060947792894526200476870310324677363546339480089518687115757514196671154527535593654100789814462627359134759002222019040238796869574301568681767316384414197145572952858189792147642203086339392847542979102739983537073640470081846728484510258071861404717719520537859562377659835735831540580656908443074929538957738795652299470410943606492240258538899316694770577599530391960427910640454731756679471679948509236185768843109845041068144205693118603458709019784487402044699127861682066992067621008894731186570821208284841092495927085908693498441296105394030323122686046628223910115513159211441128461461597526328981921832622939620334846371576242911180638392359976176079957723412201176855975225611167235690376855742259059877898649681210689026425619811608183693082474228781066085604091721591415706901613291535616795945437181506197464900330577451305857308977532389855352217690203223587430097923079985577451199722555940653206362210840806403242970712718130490251512086981768855869075077904715158399293175211516338175204819049688684586949622419104579160776204799486429880871470081751447076388523543278014901548824008863900046244889741892136384666634539368135056553167785949735598484790894311309093980902528299424213016812698407290319477949778630993650763056003347930420855003373627709394087216692260348096071265542510985507296655000059803131425883919362781475210080869374964795528283798402860114754671155830742503367962721754818175054092718768148158468674089469136477842607133071698528221298987745007063700061656878988785458096770471767976104191562801709595088920039808884163214485455271829261032023837357488769939258956911014909888652529390062555273241386746175547794482750722319613503379412980439005980016360265313549822625506424513419611929873826115134170639347808073011052380008470781989228679264039108272006255692303653643610333816225027289202192764236294940524855005333992367483540771546584687627292425866623692073734422791254043440899014122233182377402962171976020279326201386830153033494582073796309649353655455005945302944702526873683260623187953987187017603864992572449006478356124008384205992394239963895982401531243203477354156198707973378281473799692770885016827289053894141036321624611092827863089710779302009477922899382529527249457523045730210481386798733191488931210387780402862844764330334548689867698971629411070991508336372034263312397486621615075728290472936799023700370626607078522910115464829818287017747151424158589966280841344965822175067392233387036639579457796347456514491954805136536703844926530573207168965977584120092079518076251999997671985482935190603034555974650356945065906468400776477931807779015152576210219818693051168165666961064800031457127270364955189935153213546926974142611582049074893728704030899125007486200082236935406977570870006367855808917910867033005934484585447350360574657555271747764677951133386408462305803841806032008562478015798790586590931557584831764672952052122048559821451140525292994545366111037057755930426310569188382380784582455009983364169917322721600233695770218439127873625807728081818329280758300750606795254572454631288366291049048886855466569706470666116960666972421133269987662211603955521303850917065091104064892790416364288385393878766364471405947097813862715652515795643416612197730223803157057316820703500990670135014330903991028620568775603301482789409721542109044588240000915807873155174779019257860820039218547578264364747857616776565100916733280047035272356000917964222707644411909719348756714180944315237291156804119439115902435052225118429925089318693174652664308832392988111862390490974710127091291401538267502965160086463262910713831522838524807788298861204570152146828942460988554947898736362968356776512094060015515657296527389387106743548194727331854583848321705825242279325311450400609700510569628571077550648556726650454722053813583337351979872577718163349435013980113410356364994825080617180463758173690199776067791327562575365573776687162192280143386239467635101390236863418663115892179923731803894640497708832209942842179332469914087550533783907168624103375822129555359060484455593622649887739921512878587966309575675829361974885471247629574598610588964897913198637096227068051001401105739227266369692586520110723896435769030368301569710497936456269643977736507527144371302873811641532688561942087318253910635537086107063737971924622910194281566359284653563865588739713815837284528504455595081512172708920019492743207301994614099222004406914729037253534818950121006842497862989596088686978408056086048026181675857355945886466716519341220306587318841148515943676519596032157285657842410188323686510992478876077043211429972352126693433557470056295155635833112067974677649355852922748548152578190723951177740714931989450808409921467827337233536202960793393489405791604133886255870580657652648441573357732227423107610501037370938449752947157588081018643256245457834781746937032018021698006907061404182102057199461394549603197690405895774748142735870890091840409990874640760272686605384178658267722472748824004159243439705531142683256854433621359798764667304136934507072957349247870706073626823041487043416900081125130519708807395828749659844009328246083779822254427956422093625021444248464631247860404972446648729694939705348580110241831349570977130342969809793342290560297417954034486104220652760455449660534213227044143058403430146070184589527128494427543615328408654525526967283261738584212731477702300709021752869636482051893217843780315383742672632189839938053622505378570043575052110635296007776834595146547848419271825336204939035328050816413726964507705283227239761115130074538652342886827849469936163873154620262948337258626015664633033331513548219918237394420403326106653915646932297994341541381122588313533677532151293777268129908116610073366658692637898451363349082060976378364506035622789587293297861844365509702005528643090967738523469888434107607209390070846531748127952081128965344671104950411239621647566605085510768784528918222061634029383880061188414040512860620385280010768784973899844387834594021320795497736149792515821295053267382296498586017793669976513568457392879204755999540819275461392588509721720212743641513674804390764037961285805361392479505416238025488802632597194389155405150909099361348427163760292352755070106217933003065516981869780266204653545796429626920374264801244739448430690791265471506356706006791270295285242488110689990975341457929303344884261447165592957093084938684578702909479818947638509550840294385856863689183004701194161940894790571135902231404543265700158868114887090054059932375345509040409744746874934040499120032219715312358990127937916190376378480809618556435301024463862085499138319769403293792928688405405920548301814273057508440661614003884047184829812759076089673542024922825033824330923118849910735908298942392135684067252123906321946690875781467087441511041787830479714853679400343401675723418161873033530808901657127956517476493903928884856667865221487949012542311549784578421195612748986839619395386105613977370483788415940800724327300276809104921218735320505661834358111969948719105671948973705722744638582664606939680098428879331659602049227139488213657965193472343097409535793314674783633539423415544270702422405546072233376765501987254349461683908885868768282755982051703319089567181638442426678409160283334986197498129992098079093004236083199028362004188273552152783160421321966747161154888250777649062623034062618833967378607391135004639818893725405314331126227503003594907189240247979859893483481427305995152860837481014721979584936825310870797560893884144055064804923347499153253961750489024169114068740228057852768514385179660407786706325953235504476346493094475182455188243559531112817849889552771290763742163517163317252025881482662909401134859771209844267970180071530011151333925371746472518235221400040179125655067685792584150407132712281936891824406374222106665688501193421900634725687278250470777844498591818480917534314127311961977818955489170305480203488825315163379385602157421107904556185474721320486555350424415238387659767732119224473459009382435358479549627941132188399378339582829558761010045575275164660077077467695771130894129547343016959186132368527265612181423502697603968743724600747116380794476611489403039304478388148910480549688874932448315418226780573867772402120594060427877069653882837740990861206730618610020465507291348255872963581441550670215586089120984608751931820567530968671001756574988056604890286961071767981168335568400917378920518591298386783334485995193499701563077883145959750345975600622219257799350280892556109110648201789926583932827877033900044712711488196870421142091013019026839086838635108297630271883226420019717279587712512082387774068852403979465530546811400613674775711888143554318982721142287363554651728180307192459228441517939927411996592673965584735564780576956838873091426497413429288998665197016293908453100640384623409514937686541421902740280005763924965106974146279414877236859543049504897074161774383993709689873525937689195533502131073881411101365222098095823158954655764096670819165565056034361645968592895819066483585408886932009521779857183065484706190792118256741573503191298213934263761754991899688748889514721144031426854028026662118931839751899222155304408133734592845576314349701929654742179920805968353189856524879318847293601080683728582222570941063882373844253301022567318042534381531856397040402489760371010723800232280703310534980093140133182926946778279994554319840847972224710005942631013934239643944128976829232670492037050598430328539555356214317863008083534806762580802062315141367066608047376343664853007118892866021205365264456714818969523901543107279146299561061552000302631876414111149912699184287103054271794061743753468287085398550463256408033323987704537494822874428930999937286859880728595880545633368997629602666252857910431939251346710012873128394321891348752245774058694480418678628900338409574009293380060649901922915006537376734794693261244106843119849679420108856252619778989929264626945081763285185424703038431014866553170944604471064508699687293407804933641418549248977578340625807247119408073228833452497723748785946697191644114126392392553981139861074994334380251866406691713956936234047082719689437944809500079794168442213755826765712968777187600235036641030224189284405186135735106757748106570794943279587722409471341541838301551209254930534882600617008597683917885852709906009725247097747065192997653107452685551432349883932304636988618831720777571634734237009813476764806982797754715012323048752269641264697849524909532922795167072876569280399487177666133010988014849260687392812704266279715418038739297699299570476824670432833674974236493726695934541248227691893576044804583666686846182235442706935792002229934625477151591894266942201677006473461683292237566241598739954837063008771952685061598686403627629928446196348653440110830138009786508566805982412892577546875082003542586413503784216309270592191119169945247171387362203746992670441727204390073976305380563225777458369573439209678980122294248296844649213450667466579219395256923701766610989733919478525966221849236482490674859086501635028150205256810181407270488465256128109341884020755088962665580124997010035180724111128127898750729238936335869411961634711356712436608671945496285472204581030465275298261035015390723612285860538686941546944597573514652798266136503930939699184659244535848476491872993269691360315866676237430996532376826054456219371730818762039075792389657535038103852893951243163637187708223118385117941935135466344216312348551256829340978149079501266860799337697537724855770730042162669937942823919963479908189284311840554358282601234226561874921914940642463680207195774475655417792904364222220725202767973503870864576683526280018308368693615727333342721924192449583786527115544524540992250737251182879864034692797294142741232562702546579810221064868841451932690072820360829142453763037029711096530238006901930360675048317761789277586228443565909645394102077793633831147369905520232862148435601426877357899520394685300119368737988873544148786426729256967063971124862919662965788308496311221219160761229749951042089853026170318019632233397165970950067323742768274866291734650436654333086124560737045916380481077804307993331243316409189919410235479471313959250180710302736930702233194311292142024965138380459491991346337521438680396348569988759723967506216689581354704840968131441626958651030757518577909882925748518042773581675023103910135834037121655186387951400493745568980758787396192959045322046420647395208675707882978564145843302787005074658652163840601843464587813320535782205941111688645344964382241268296053329665390733006133421090215739943298756794677933409224284432625044455118314976345209395318405348057192374903098953001982234714153842711840935297641676281039170994313346148184327269065385265895821860981664860143281156427009292218520267549997441218384815509286083938211741929729854413469540068239834614544593374397996534812613606009367695763441030711994169239708311508666480516384008739110126840635662217937577870201815207949383171021928013200115155219855801404439548928223724937951102455966357883100151896533703022435050198110301299992887519359526326957986064935814623779647927559344189896928503625571125241185544897580259884256310815024074137769194009715241659507046037317999132180968649969791892136632341779261184619296193627482234229850026985995031922265379007663970340737711826722473498100707301772841957578640999944050166734477696366461473647209583900399789006748832397508778698782027056115973510336129452105748696648204730176531439123999772360992671029297372066736650101455246987636911740993517617437527517271935824217972360733256999626058307143188015257069738879596223710512680754383301372357028773255838753022729770050228465668519519143354967925354789432515692446751891362900229472519434180125472700101769880325287203843118993895150196206167035902866333100782348822331771153164439929355730710708206929112483845458716026510134406116704211618800596536785483842830842014754634730352986629985671622689764043943120939055975508686411951450875437007607469116784294287649857037788862471035376569834574682184439816988295843996807055439826467632398844459717985850711819344756880490610157880071212250532852036019887140501004984492523747556551426083761452179548606122990006228982032273465637368913097756337040276654912105182116569327326200265931331171218893140361651144018982507988914707017174172332197426112294237618245182048221172248857462393532246485967545610089069097330225576618232037561056361301562882175940957260316471694584516986241234632207386899942808353736211791312264703195617343528729959406396383165976665899485598788035994584420843099279395934115976299261023025411418433026639647998247052273002271339358766314756337051235738130182494661402913420458726318654903605146210958587469424357331582906541998725951678082483276566679203607585415434086928200038988476566016716637203671588766841342128482987507754096710738369544603188285335830252409495971797191277751034947637154788897012268139932849481133538280369653149204624707933249608563676820689815496151473245569707254597798515557155113914008111365992317087801081610931495626210555472302800627635233744563299385630115434166811537646364977343545804027920228044544465849791617990702103129259471420606821856988260860356635501852807986143589543611662640913018087644579238944608426417405179571285239040575045107853445022942254819272554564533118470401454703655902092009116367097032088440561488651650843783004508960034079983543751369096464812102653098482736572616682390193571478414991394644754750017492273496177177320896678925642355704117762568843383553354362110021161493677182917835765640847648487510264232873755744062047643096567207847153234426217419944155887168047587518862247376770560140555735639463830536518905209865615940371106088705658024625177091711425599828773038322894660727978897344712802839322290998243123385750960871748964050093104567719599715779743406967793776564315509348451332929106076418792860884992718491884138022157804207668601557493347628739507539195348325149773760714564349246195048324580754608967314254578864436752283141407278243976632640369744485685635250510909030867617964108792056453174345978988134474867986743040230944894552882154812339528912463924634344907926949979516078541969316908722705638652108036996283411162347030950172521441400811977845844505598696100992626958564571311868008998810200255009480059638052506233875233407381620314628993661523945452593919349872195563550539738149930296295656392958269296952596131139683481590448993150382068479067577492192607468631414092145058332792630936319136629336397220468985898016289446798107606389698589923377238519206344398155413931785033379660725031535730890467184493017155259460679329142758662392467046935295481269514216659881170226441988627038525951057911955850176424430355587509653082702485673413602656758687120203640098994714493408684021202640547217564261748972930841595291260646271737583656346813390015464423090646945065918898922413702039383094766079306078362974384682181543166638670195932131596769928287569161600592645167019604735791475145500671815222964384084232556211009944641701468082358451363931323296522461353127238495666335795135648083641081700865818306023025929387948001665429418254584484372821392385994874479927979493108747170440942157278403941926649938652308250390000147420828656995787813448866510637241518109759925241037865860091710663104030977478630653460927539099665466516276299217682828689889652453077982661705836053506096275836187485017506112863366585707939575108563923774256914449568908283472912697898332805761983166982865319747397334026387849402887410030534061910930331893779092957395810762757069629455338772467542160340348479784793592131000063525010973716912230781277518274031101514995570037957119279588485484968340099188757262454973288422414331970473865597397680283424402016175155398930687914277435634330102324427543494164513047625409556431286241027909488398184069150167234187008095021675662963558387608478276267489511808728121929525357192622820209210072231087919189465107650698414440317585822460671859262764569555572147762254903022034673325976713108405423705642188886204447674751935324901456884467775474553118161012508567727327810841617395032730659882224595018111665372110360343108491988064064479282372442622152507894493481647005972677460063252469407734649063467431826807830089899874026868071332158509479185679102743515503882261591742069109404797227180718166618545045183774238397413195345031474882213058785366926572387526194419641923628562754494767644497845183128794425218262444379952718420053504731484639061704727511938354319992171396291076177744684156405524650310245889157495453769078118420533361217921365917998511932996946539152799712467658915494535665074879381688559172536343017046742342446554319531017883372256573737154515441080007590726023711308217724776771399976900808531452140492922546754231567009019168521139094811306964247383281862107186521907582902646486979280537461886962861573567293818686750734251432558114953636050471937065798581512399111356876550842493055578348171401327116603371253540292198470745685840662111053743974187814908692862920827600586563331364252814482699334649603732845023413149635030697877608026485107090833196162615623877390346157636294581359275748272123949877472757718591811430422005252098857255532143052476597713282439446809001554286982212529035097774705612820159783709078527794204393455248815002490148815183898196160836247963670531105867771172901153682651244975335821452458298344766455668949367266252929385301925482467158130544544754482911458023135175459421746601086040774594695304913015183746637306678500858959646204739438885727082172683427535493802097468689293095863715567315261822767678735291461247450479712087964930054202727742893687749777042564091493084137730968509058685834704270228426883018096109327797272355184894267865570849650637539221948782550381712296930981652808602614680992474680593536656391009048619329388499571354728824852201192982986211774337519077653302946588807369185580062329402588724566304163297162908933114011299982423775055438516630947173195313318623708412561249046160154104011962985370434421547301334766765420968691870481300651411686178919658728025149754124313800435356664175839039571841092389484399293292553061013428440478001510522042352243878548234974335440767183029781241748771342158818237663501210347488569303240235744852519377932974703328035518164295375920298777492793118352886371482259152508780418358746224649371606047362226991792155559054686673270698352475579286648548175046579734695085794882094301289883281260486966879313831172006324811352132447978080236347706702798560412205104700320928925427232309601373645718150620299491164084093707812799878126514991845833180948455065104670890414538987201097713928880408012745645227458597663501879624381729452403198191297715019191075126761027951101617059373895346488509509247134182324500108557191833755201233146002289816805105257093590328556887803090200801926257008246620127630215307705916895309005738792493640900014105661295935382964726722975956646954373294929913671305944691848405265387358051665357653363753348490669312795578612187596076292014077864515957619068547168726416493693651575326444483726135975565214783303274022520047759589364344592223766695413636847846833820484229228251730470559492405249867048516715162864070798984638343673150591934615220792522278102837110796064913261910688541088720486658915218858378165169062250346217689209326108048274061033286833778090744598208814320109675348893653778442968748271537724870885283717977979103556130729464373270791647149597278920237697978865535578995244796968584242970652741733376444186153149726211478224947362374317986897952163474093263433062265307759438321349299881400939095059682986966817544870476103184156759527122431421364091779528210445507749155844624995223003480943079675320481223325635493402060352525672647329956637925914256299180777384289282998076814880189913927312691611009070188855593289256706896053158978923665049090425751278507842317571189466233367514627479626134241946160452015723798272605999257677863667978919466800171205290172864583000244688511228114090536899068561729814956920726013037254949346439849642151240449718710790204456893500570730579141812719408971190111009192027751242634404681485632279069299732881095855342208402125158163140151048556159609020572172920107898295273055064212221522841122406836099604094424234130046593496361107605432644820777921962633488858146818270011555150483918538919084351874975814526082207957826291672402849964888510766981499896473338806436838902900298698784126311126705953799731956284250354105501361017918530905748054038310603193860770072646743583259386576421602187772459345100731999496659606915526161600582724178947859941302056692321625026243938434693939328472906227567961480664389085282309248748278685935176415261590754925219482687355706750239528118635758704246857690022514974769464122317409291285779316264425363697204329212394433646911748825579143433508991345069903470309676987679914453742384317431455616845261576763831925386556043164152925553100378072347678433966599308396707307640394554533306499034403634262996935017332627328199951186243265356253163382092389195330234141715746320180376897766584673317901755859847758335145363959458629171850320884377219334573546575995116308296877510216238683932456249275951860452830427187484644100716409244742671888221806225725529658556515186807436045702829321040364189482133058725189333567342144730808037492675202138524774593689387200780555639344946744593980943227134051661403251279945066477205719526737189025303422556952649876704761858478410522492263179804921725316540752594544856717803600407919531182976664252335240983774535652144531625651791638420247703240486161436610486549377159760091759066630429002569177473101980255591826057282130428664782193668937858453242911871827203599684818313056015609866878209864322601241005602072879064678991934538492318892306224719991151493795750609748003773012767573608804428327601787268531401733171818478039607301078739137992693589768729972909974854219043443541630374146032933949828082219706104965221638846520506876486204520651217622957723366514591206842947838863388675625729690640657084045439701674562822051255916302183045954502027161712925209443805766604964734271764718359163608320591900510433832434248162972781963686323467420142863470258138178156094186565194044126533227259015966502181847242080842108647263535255870887515020025673431611014495088509151387262523627243718281520092291831080208402314927835470883391480676372640737655684318383331650745638834177958461600865781652353579243057726292557980930635513655184619413913014382669483822485788823642913003476481446012665772464604934878450383368522759162190424583362592328660001944434985723184674401337595598825516193834081344407873208366710320816131091135382688332368881945817248057928280470018978675779333930852029297428521485221623774321945885006293300484399232115669047253180603730984082193218377753961758608878665000977403228017820823129337620075948321638549208457045836718229734931919358266649928084632437728332823206540526925149881825289921146740976364137421085338000027005394371172972198298917531087914777295501969728797510822538844565109121339405595481404681748695998505537086512014872825697331923972171840892782870597579088227383754956275700499587352624352046017385348003208652418998173287683288478857493326156370786714218088038153567801283486012259458067902157792089526853063923490236697844157075480540852507683738718112344152904389604052729347776636511020514684958273139509274848571783410313508113273919898853326082624032033690627727267332047782918920875198860570354010653614313194612605440620951938269949116481002631103589740230198144631937173926766311430027032105115157805961114144663243604845003045871087114228897114490048792049367121618733523381927750770891617377912109553120956534586313772999903497523636803569974520978221726580847930084859043774844312625566513979530767754117282943524311165123397190844858275033519236391141876257890046679463857284805862691026163878701547299979344992988499379263543567295731542689558685740963158482827310000594426298766620862108052851665207826573728043095505299269705673594634923036945536062301070150877830768957983785714760355692029729698790308706712355503806164124093022722834139825294295483897016715924340291519075338655039998852024132886868247627290902049839031830989250110704037268049102324748242125723086947712127389856094075025450134204901678102716204291433659164785840796468727736100101283371003502646279021153908901520836026432351572661308399019192975146473485515908650791113267559733648458714235168992423760320066104244316139596889612485967908739744640125053186344917962715082008703244425928660748446711309083918190412369614484487394749436808427457711199478107716241390662529544000950186457502580112867958312803898922463173357489875068194991091496420072161125597480763331912421089563551695613299274114683597471798732583195516644194425644041544130004601213891918025015071582242695320464070467442372384591076342010117912890751944792400721592179257072706482882677410871955570757660187406498890101163641140282474174364476800923651733441473075312717509993868723594329832480230346071583196635034331822509172574354247066619513779883204480139116414096729019310065055651349742904330074971481692973657321189005871310674219821020035037560375418332441452609258021321024084590080705959738318525059521344689858421332286540452646560132911640275419677634202739201175514988047932725082563041039341698321813192212481136653756175292369239813214757165268224713691757985869322163795991196375174504371884181967339911289759391300023553771975235055089244383785017022722666882499820203464948291450145404873967477025785625945095114876112491634561565895581209700249861812966915336735178159793456464308859918890525813887691350031859956692627370500817986033272568940187371158830480535421150522870391149595771908734844757703405248864670716156487260980431673769103061815839319746875179590701719211742286565046690302946366028149994223039841480433134869939012943846586210596572299748436750032473813945152634876020150580749702733027653569395719340340807857504915661448160794493205835757205957218108286459296150062738356984607584317575398169365296035124263790762980953936986023613788910323851083641479008696521528162922373333738684151929812251700699822968969055594128776114394514468736101527609207970560838706522600412627489957670644695359292340919327025387971547136268072214517952463285011279178403403464270622218239860237482348614660551745628691344746417527867679311255319349560683667938209833115625730271030057401952339757299307735918574402815512191811309241940554061049537738837954402769972085709499757237560562053638135636862333405045604600924338261888407812158836960480829990488727764376574827092983848751685766440958167421597897963408136637100673272503775230769878532057897877131749579664455362206561830325672303595786176475809039630522431921252022171436802302974233979243671664252707740159381792831450976290492765179423614582251848053519687878708267725881595830532123363679366049725915689759759220392238171317754083682240220909252389860437726921517537085881286973846824265361126224073121501677184296458549831550356852533145501658051861883661599843585595665949528144351458541856003562531963789759187000910960342491310762523321870912272582595192343364888298075436505314276075359788089720352597682350508514280978814165015073088741582635718008261874791108837353149017755889989115908761722830623166057530237585323378346269517369483793920903644591229905301196343245968970317973818983853135885790873150228631021566538508839874998723847121970786276898235580706946433679088087454055908643985370906727431328479008255376612412683114620293932534896053817073544090674206671494427370206048145085720190915854646036525908169297112327834116753353038705122712700879086385345954391330463727026374547564100593869758477281141814045937512632738770951948241861619218699051691617224365507676685471821500746153834568394650708194920084466684673648532521942515059173186989511069960028207750453285914101081407213021442887592766137628527503286411381055709559713957945202433651586866583987391184074815738421999941982614654839279445425174514726064421553897698271511863961122752949861360576177170555691831296904398452236344013014749411390286117885604429714745472380925280607594700714678138134193847393833917903833249934319467016695371583902857068223856599670930750333063558897997377802816940520095039341776293639716131241469795678597438035041536350276104274016230920079577483407769577606111061365435476498446655277290099956078360957761181948205789557390080446698528994533730850851418169750813331726571966920217446610541560456056076013903774957848280446830878544181567796398471305227376849100155503184997631620925648528345615781894783312343642316777701313818866477471990636466457371314170703328712926428722325110460051723200659822917628739343024701883770266352439858180966206468997920058928771652683660003131191659281456987493647836474413689632616888963671383987220898290801022503215235084190552151015052504137728326381329372188155606287408531831161829552328721530536589094446744110335738060033076046947637857278349086384398320338518909647897389585769448712405597116786353133193793022040894972960667095303753403086734787161641144322280985532315317837740117934215159374993379030866660643507040384565658233998928331086848533167584513120452758000316304092289452684203847300364680325635468546303122461598884585942734659328294873992833142024181524085240761743291767712479214226989742213221211374814453927814149765607998285926859463402689319242974202398812465053886839860020692334959832024274763849746152783586277292090857126644899017045382865707103201526490452402735070663557631778615269740779075805847884773969511491649874735408137419504374938684898910307318779240512031582062905100079235714030870705870646672314963027687324682486833294739637480595658571861085687244598137222499192661704706110500715807756685870524508204532374913039017662323995026005092285904687911833706437168283544872681143023659792194256045427522993610286522625347433188104338895771702303435634131497622720673972230561757306578658767670353008947774165722687732983837867476415054860795591297184572355504721367800849694382547132919749039516168546913381976808164821794684430553737212369808715639122424362595173863187470623778957505530755044443742042553901828483700859780587199572990481866730802295869466206736832734585173565231559599871827887469856866826449044020325963823389968315405708602053481503833217443121102679725619336892104148559369044576652336975081681218512846879619770087342205417180184969804710698569215525902696294164418584667127565290352732761880581029109451436736919704065275916383278673434023266552438387899574343620950761153672106161780436373252758092695184292182096230290109444517712637052044411795302992958114094837193688043610883799458562947418892640450461508850927113784072617379162222480434018493614445140387235755995239014496923488787229935711444785987021385293534764996841927451605676345917848112453035853962892105837494725909269870045770167348772590854390301168074753581600686314368176039402440273297495102683303918287764154010238839644233822254409109694971625780323245670363026489034434188130670789736229013378657381072465147846913175146380655820807289886538139123948514127363222861172807407734751277393991991282202580519224663922230088725015979838812185242083931110632112017047966324940151533581731180581290837608923130958302959179823917156355835753118804103119470485643425139632757900536365651700166849610470443315271949541403851748027734802261868211058166036924334427977752920903783035049662068387214586503512877649570573225500431315101883269373258761836115386820846699689905068435253573208634012733304492226897763337421027165604681429171620218268944122779278653715080955021494183802107191432142913044108707114118776775265389436501811645941034566888547538738007147109028331379160181318441273423093324289238362666802424264752219528350589733736107182874129353657431972234371685308493405010254187090698766801003521859746548197398168195877782761757845841195454951570477817598822830735670743074242192250069230275867102640736506666365957259850043363879297357176363358211799762260279233058014068031936690423107659960099038707110248549037581981369884789542800969298715302859244246497078559235615379125003745524169842580546474823331388992482655770402309967345943149419626302393253762213846057466470082045521018978438431408398949962496857848514154770940996252379176425177605852680218822037583810704002758043836448708002609305954415623430983437783936721039893803684840206523662966592993259141734053658175231704138669312322092361429949265599592401461582864405277075825970302766342033227843168754495617790024072554800378029394655181514538759733006156499467520051565967658990070679029051565731606598814959525166358631203921669042072378743559841882229630786590858166073796549120423459313806226769532400979768669764112284502696410533608083210713930231175379150614104733650740826716997064606459140049535234473443339414953523601160523558670627521678972051121559322672867166503794679842305034263556952256941469228594544165930923819402100252021633329340281967203089028997574468315397467640990763040821643813368402290561687779381579061558077830814100288640042785289230627358063046989811158834632663898282139366855253915978242655030203907502504179285714788037576834830543272497759694879549537110492221084358633614104658214980459761755524029213986901392208544848604182235523779565215584242473559559166142552776938651840886626337784579023314426568187969897220015634632864684527292655526154787040516877954711077478128590744268385584923589305661334534500995045468670302397950455147878701211270287435976475367816285939153289132776889376678438580953454551752684633258686441642936577053399973663924779798949519631258240536732878775312349651841604568545625569902888615697617144994507437637020774352819923945343532320343482438331294448338954427435626081862622619445682477403405402653659581737918440665623760090104772676651391496336473811919146691333133365582866997679885218034470958760860824849831382025986749344615043502763003234447508703440372745915285046303917853990085164441460312923834408548897766446596719877633357466910964282688634148990338987358452030163344404895460087179563557348221225989013357178424813835809858548670505415793168429188594398929790723372170018334567995871249108183052888826137909869445980552102831223033953444400025761914505254894940030828770337508520884829633050535816461299026472030653080931350509692354393140189379685813897963274172529770901469628388749045784030356235315117768176907061032302901694763557136730310045994846634519372314857305780025986136932056445617153779966642902694915913732895232367418378404471132707929766577420691598538044448717245049086321110560966611977882399638640371740683130901365128249714072533272909674839945100455155316575234687746494209218986393355526684169263212460676939232267015575011810376038352361047943676530810297217056310487097150557523779712778508831226434504889698542904285104210490681345996718746219116013882846734395526682058456885002741858497003268489956613953607234508406138154411934609753448201042316962572524466606137089457172233697201997802209602467825145030601724823659851107889281444825699626860230474864888836046174758896697468064989841667099841150601880692308169895813279933126040851757521911711638966530824983625523260819931409166538626001632862183795966095665506179346251156665464117292855082503899119606036301642028944641742260421095789272962579625450994701612978074651437585293338932235369264549619881308574828494582832868756416893794869930227204600082962746015100374654688983335746450241537865912332397908717480096421100125857200932795298821656150049970320909426778366769760907734032451760684127910435361040375429547202030653881908234512306449836605989402677582815111968980456274812453676904012128524672820967861480422225334484856488263536904070975860926927398055968496002801044425286221493341652175559197197261540599189218848466849272093266205623360603864963173808091633351279215615689673625201059933673671526880697269463280501412880747965671427899245318039186412498438322696696305863956691763241059745952665416050789867421568822608827249121817318385252558875742736908386809878042332069631394263128751679616854044540751010770067237461581939075119847128961272370165754375615016129586756705264443590438496835048101986313693079084344775060729452433445637462301977200838810496355690753962889626490633265555407366993768218180039058813249492670930481404993668511453839169131183553878809688376871093167930032608263951350491201853416655477850800787249736151870730506993571623082803734577809139537702454286887305811662933255327166171074962141121047756131435561676382762616465084443774834632728863877846338913065667568275796360641163358739723878854523364099996301009011888880517326462129561689600858779162385391768509190202728887668488848728701022519420763634979281681221122169154454459404936637269997247808559982264620852090078214711547590541764047528255341407632841677734977725751198534448798615434520521372867443056252893278913688477604757082507234371147164377336147633270419069181336053637367794627766696298630579354919591641403267002501194274759342129732844094141095182353292271462124570055691591910037811815007060441897655450115110655980448400815932009742874972712211437900490956297694519947446200957520607819056219130791269866190385028168836759317881493114926858413905731228358966702848233807136183152883710921270951890352243319293198060344771168471178535171350205739980494250280219448871295343168355393252025442592635857438020693391043737558701049187392670548323021881626746240104300466041016356848705963784092666077995933989148916817809814382330655006776130997294026321096229654077073096049083850928521632526413676578703616236456003485153628574038556111459738184170707964019833579341848075229479818569622359183256875389926173704883921055443723440626452099233933287085520294913301584978476244775383842513009846849675116584752822628010307873650101079456672630219698889777425704871140142931920319989909603740197168019964836412269839770072851901035505345416251231680803717681390634625015846589842280037354576703304210202149435343025472376552260332795505907085274771838437699107664555761241913256135632892759150219378290523889009629624818437045995771009549422351749089245363735418810763458164660251400290642798321016869331169673534480581524547556376428332427021357863162026839557001005852950683545702288894109399011492310268003067038536804742635139383682963843501372293731340514050485295508290591750410065726938674040035140459464271970380947709101719496289425435591522103692184593139672682381376133788775526968581797880081206249939705162735518498929280848702874869003712142888096064487218848354157963036109863399699297986763029814967219131636818511245726947285361298183738030649199368636965413908033581950673189076949591454055073661459610321439886451976203512733801353957808903709128433666267305631739970585710901490953524165843281544395137510237059146694024692907693117813494987433692110254493890633008597129205597621639577873123809947990935389637727957126176651983450305714947031860255059550058892260136237336361953621548470497453137879390652987758511908488010515580702223896536187841854567861091116549064604285118677902893565793417401313729600631931432063282816953895143078922347695363149677468842319694361074335709403650149003970410344544715904010428596028039785122295703133944915008190739251882598189497869072000015644850858083747026070039355948287434010284306539411895557808123890587963031969789668641501388762252815041101241221035552506528919545591104508438975980864324324108111496069246125051318311872832095504013112708805777812292560464258239248484692296920752744897904046333512030294614719639542421153262374253346340353869317381686903318978971464796674164417093149698893537570962491521191291390757108259405930314794913283346081120441929352397683195089967846761556862943194730223086390364818798633979357326857023857535825075711429335207635901868802441681676274676345526977622434703829940809530105437191890159129518472720292433657251704161024229072602102760723905588678638900898409282457451254401356361439401784243795375714817596744687561942303119153599780022804572582055779207035368822875725444548643952433343887708330195987662930592253886591332426146044352476420981064357509914030878020700071197158779532489034829328397201142914635959568445679691184424978566333293054902190020494685921295566255515807716742751150408631336746303151049659719034547563919209496750803591528020370196074183225836459309743891563856046166859645315337941776398974341948366181142849543561240979777857442558319577851344613640655032586661628115971316760532904015162330012221773674307005013239798590526042375833261710232702540696066682659675136532543874129335822748217220517554006805431397562591355098406605102001176076459443920312552409943463373214689053510861920319071033278348144089689732007993696933888836991399977277179859087616434510255064134440361019014491593612024230384851035650509385496729178950598216884065675449380298353000328709616573868265895165731599735939337318234616334186915032322756043949823921604783137759379286450886546706937760169653939370094911617954807053351882474713315081680173829373878538795971519309723964979298644492576674061739103066119942808329623166974449290749730208128024615229330696250633347455687754500988117042849722176954569960195138509778937651832925836323837027998316038411080723659329768040687370444065929563899136983342536534736786425547699181491361108758516802163351326723487105407956329752812505101463539427278225530466820940332346372485497017595777940772937972281180303684503213823890094631960246815608260582789481766533681633640310754357086480475458352176548175761709610748408133360172036774124304002337021792156513274117175166584684142248150971096379792727124159660916238052843808280968156386395079210117134272851503181438529217933488864901415491821647210353756721167147858089895614932928069790931505833700748209820830859797516614571863713340055369966694486328383097216678356830156777250066785510949694691308230438207870487863519315873155136467636477814019809663613610402552319403848985670585987863868499942934059289438255228312593176295036550383615351306324831976093554302702425224926565033782504550962857206907105902386037702907253264181310268329414845064141069144417570582920751770051808628369505168228558443225740662962316260151494408274584722898247527407959578163673868393005098567135300382155656291673872152842345176087332591351372170307955462551064917592225188617898144325356276501986289990726153929023564221916311683258137163717874979190814960366388469673880013639642661908231457587552577951089354284022254970253313088808679866539507931581718760546085448270136805313952526987571597294883004323566296555455424948763341214372462605812193991235432705293959226956770854742092386758676861461851620420542162034616647916744373827709542820384571980734687611894143670980811878938406833389514411745590550277100656830402923573130167296703870114499239318438820163925488155460651507308941438044232635226585667667521792668266975695261237010708578762729779521197055423962737685394393322343815579630907914727351548843957672874473783913551525160784415859522739484106804461870892914643798224378993849203939557645555123967874883423497409264141796273343069047443820458897054122854728460965514171720575134490303445594196417759298146102285756902548781994939026555725017372588189637349225953658832355990108242139915851613508612641369873798527555053247026751061737884067301582188139723620227705831805045225114771428968947026466248096302863818331703111488778170058740736135768517718763386346320748941982199940696681665502825537252223014139064063926759190154204616434489440738155066314947141573923654507806990821531949151246694028066486770932794091817521509264361985231482414871246245123986050146915633725470124725455517849986735263243283690442418670193692145059976631701801878011591160881557703274588830919382153555891786881964225978622156935993423994533654570165606444984031202490408643333611706737899272270874817730293044748970940538868831847369175534449462521148964480635875382825646838292803082411050906593270973750146429180587877292197884549812062856721165012461146226132440446236844187355047883462796466628021186356721600690899294093298496224892561053715640527248729028453009453657213564076657283225510291538883746069182823037316259418218178331299352044705831027813384157282892590169396193526817488774727563268385925216099106504488523889317012391510043762976663085875920433949898018689847502017262313587293596259978560133376369952184272980294806315868230269461160027357931621009618380977470929187081250062809917629024046803022712208245318123459878204701746586065173966690216593486183843325114744789252511345528374742353093815296894447942965722530114645509874781376240636552907815707829698811822175725465658090079536010744933012989275105360568898141791974974128050830197553221669908369988703119947531885754954870035670181873664971631643631284586792857791861844460865325649400253668621917236472775334019187808844696744914635278527555348104818269612703766360479841220085410540643938089612735386599734169577410322765953942682038210563572121809575885258845750316215563284655684555621934171016093335755608658026022939555811104979447364449975139701839222979409362080325122725747381242539556287416250883826219175922132558827630394823027274319078248511350308716644361996231102831717737355580034334427737675736475299551336921233555276045940894415820257000412462192630394109262008375256994060647658402809629294145229988164434483075743027312931821978967419437673784006552932240558174670890757042047919823728624850219142641084137315209511156620552629392619910526032235245608055171058495274541220278821956573398948143232119249244293746724689475981961461112079731746430477127145207494039593485223753843717948090348106775564552871646128222543573156105691395227877134742178031813752275556317450044102207023585868170286181483690284701415350327229345567226528059932617527469930370693324785169475260255178980620578324707451111238503315517419232287533068541738570867070550112270765920665070212139374583934580728138666211178790862643053448783593866506158452570079672757374833691713620413159589569636361119452204130725160655643209693507345555774703114971004263332535676271171889552141004533136966771953989314543402256287517724598132760078968948399496947887763881642119328117283296564692992589790691313017365776636450643278723757172455809818275918128408774141284171739920217139667523819631746317810490921174211634063350562047948454421281164010656426658482241682569215155686383807350333740121911405264345434867292480459489628078827336248627254218111835813824248380517913593712864234755813653647497440400825711468914531557807100011366850563124818177305367138548237719985453954266737685781380039528431258747616369078694271212510698599177876033291061229142562959798020258732408312246679244953905831948218458990638182468482841248349782398105999763135011035490279194905975937571254192686927855202117924187337797993007243869270483022051308502848190918581012052056590361750415982324402802337778045535244949044138609824692661122459106416622294655073973423449824134467547498707734025714856993245751571498804560556746529362155282441437982749801416399992853018684861071202098381359657519483984710439596394042927712241137750161533437443182004248662118325700969490389535393062950698761071492343968685504700595009865793450825416593073942842703221574770339506996637508249554220910585296442947150293479187997291245951384910303771171766244121889305960993168125317619551948255524581243940502977998882745249404261164949063256910489469031738262835538874870127884859172152492041119074775927625099213693560359541514182692430409749053967793009362011490178364900119167296420635333284838039286671205740708286372077456286327189608847824756131923249208483951721271951606348975558634607442398571160310260793355202668638053884991923402979113656874656520725358270876342637562282784918428921679972082456072485134524220786384091494017575786071891390481319996379961691309557731652354535288543792941574888220358363695420693451021717426133330939577590245936605880998064023880127499916019917164850714550309816319016626682384407943761647495075421966208736142930500374596809732823577623092757738178830923392911138043074113855383034744988768618317673305049385506857896430796431515351913203492900214217625035649342680453220655763301955890649561416564674432761773437958024616988648402555924354198850367213736855234879504132285847027076112119859536405570162116109097805652832044259573310691997775020332258030313790548563093387844270443515834103822346346723196735058161110182490375946384423151730005377737980080583070081034898714982773213033054244323690877801002935015299759399353691178479850856724527988196414562972543113234002542969283667885788348855771111531036414463365168029009212811086102570141160107053831526286760721203682544216494463012150758299808287969035318723082908471789412062798381111030946897202340846096424902453299214300678253631234169477074497247765913489666506334060962995611971350730384349766437054423876847505596911125959325536513178838248797617222687834769164845637595639384252133887496833896129610126386816821328507559256946465878373050067322915538901230562441303770581157541209635666262114557914255640288158078898402949811024675700639758734301970407046086844199031615215007391586145617720477952422994336594198742344469951807662042405622958764611642490971362119902335300572649220035622041075309718220790025052214822061454220906194251366040484897942877266429913508160494383666512256239962423721533422582381200908218563134204836046169162999030251212789721153268278646423102642506334410360146965862656004562015788970195978457561464869828679782474027180001722571687597514757171270165606939423155286715490127144078381515553369975854106534211881914865715098382821521350482647648652534772475200387346095852752923812804669659217601585966831528980183543889063110767812675056966489436351303863877899058857077160717776015332221810880761694286179065627793847188491675878230597276347896017727759269056125754691787088946412917180380125689374653339081146060828511528265880626343475848921227344871787562958058384236350623044635027143056932162557691363781190117068134629701251853509582599996203531151564175409304160965748291924364868694186739898146243916743567986613017530694318038150324885368110223072575552117752366920301862430183581671757162844390921991476677174844334834521374250664539527376271301511760888120484540486018530311680911952146092558771927885446057220753536686609242766319804500809372346812615346336875758427601718293801214445189909231249984381202817926816178333026362343113126611453098620739888300692152228031969844203034133593456314259853486052205199094167279836721987403669739269306164630275449041422005088687338209349546209489969855142026845186882368830780814637315913312044049189278105922327159750427747027884889895665750926696515998935302635836570170046580680762145810230639401725319017077369246251972450675713742086335728473442944741695853994172722019288910787982425087985933175144608772599502424964199901276005029775729085031562012089140917864315599937979608838193382711747462158957243373783397788012482330165700806502350920967660115888961162553561458595213226585726691085288487592481967244948857420165872317745444649015853390121753076316536272435641717077660374470686556588732400225328392937295578583886394144741796689114765035086780915608199123812655981415707932872069202841889968876665797765815002657848519776366338955209479747311732634222295008574207041857325531127863809989977091058373344017255164295059135368610191899104898905881746725082116946090109647631885627368795928234611140837446859204082877636419354215685597156955737648744105761745561998174797747021563934189264857912046329248149347860716737016656549717108788948576619482201902482879899836672049064052187353360570294248286699083721878222487740988504911582172670632968030064378916140037705210885377140379060355586344095978965361938056843495892498741388851389313729589713596118354645392405874065451122117119213108875439448353242968036970613023278891150397329406452019214628089523685000057407165349496799719166185585542336860091936115464824031615912224034551251563615000938521442990744535869518514816619486617111399071429279607539766109593796074226344885682267695697869928503253821252007025724593886576057206721579869909913700743807802258829138717888199995617732559879932308076957799503304294184882659216403888708039151595510892045312532478834379179578861283153315810717831314797522171397354853143902752321312545780516133461466365904968563459352403428122087063080592557860791097731069293626595927330167623126651930466213202390943278317130242295286367602365728835618867150780251241858841067862810326072957331764804986770865957930426891307336055609244537174553307120316756924625902625974154751489758299395383358413481324484683791599665578418766360945156382473482465046551821500952445474061512934038959246210917208892162565844449878220388477839280550416326852658199739198528140316427033295528477799863906201038442925655511475930395216033993927087215140955797729583315420441779992078490468048550384550790742431197454180196750633537964996313689041132753471781235993242154086973883028700563892864886692692749034255516246012333661371513694359318495939530449725897748380193935156083910370754830098338203901161815610514109570131532032362196169948778119925905034439256781719613342141815026258888575310120657049825790440649871148048762843218569731331930050103191284273760463531313111935977102399413746610094541972883178434496684312015975930624889111097571656774078235053425191739705149986512884619202978297816301671049961166717023810497157047168720301559778593068864813595145157129390151814750734111465789665115007400168028506719647196575733467447037978098256196213174588471543433548198235030917759638498364312945628976366749834767214620907001210131725080153998526937535266016992284572661153113870085405334414733345839404696996003498106732886128034700972831803692565078928108371729212191494888150772937812245724551435516877386306807605831081462412405696282416128344541995721883473434273621467638589442185780479923226513105919413179298084874837605402994575123286100412125660420201995066655447769649868035515592470188348567502121528743500970825821889590949074724424787430107688419370954904604421411371928959912096962861236383485407223891962681872741897774624765199675667697857546962939075428294774407066486825823338985271895847114879709774426553674679321665950924778175236506840863908859226339131213075419338925385747732068006143527585440110308831621541299567609457509061112188496584600762676747312205683650311691008430691462051839539915233526912077988808912444070668417140345109504880603145271706703009521884653660615618243429636270044881612616522233098789056324313499540558619660134917134237827296211434832390983735748376540328722243970274017728633549770680602348876949993316690802737716882770459173435158762618854449333439014454516997972034505685933241332022979215204441566620733031023439396178697968809380607969113641664191126289394436306015007960061686740999477519511102701111893402378872434850402228631160759633143052428671894781849522464897980920308461357953421502925058766628513575444137552415287509421080909762944944690311610798679388518299907543361387425801476860745012149767973794513223167224170336699399560581036551349908802673447651140784787982483771396785977105677510040373962129775273349315295563607659782532192667698057370221948995668664354351968599433795091321423382016947747871655612958433910610626028125009735706272051597717963881519124493630686546484107694859239941224397152200023770488114552323704294684570082509196348006974387717685820761425904862345623219133347203182624501909490148959521894282923997864152140822806189715763182429363268683130377540429654962950638821395587471195017200310498045833094442114802171753031182841728676870789953478748324860035382190524971518525801516851273522056119016238050079309371182687273281003026377613521150549349115095719781013656926089866322996684235319239806528151283692756509960234486215288567978001510276461848131754122304802368837354846593734009113859555232468446907660398368188383306170998461773639103076177406924186149977575813733731017927497920932097756871897048131945986582235788638396683794241302807702123117680766131431963737810482368079710827614215628397165288430897090060759232265272441955822773820136997760793602183971641066070229616583605099572932396476042400391871673269860190794492244753169314764912941127458957114520653689007046736040514015465049428103800364180809234457932533800959665449320099248031841673100826100703013073731291613131839715803722534189905834385280991661790633370089914971441017977010128197887718599820285638489152666084235671862629878568212608636247150804146416201618494525076872074091068629194572292457864620529292003304139636354328831392105623801683047501933909591237158645486021489168560751820482466800745566403321788318596105829179779863228907096529486833177317580310573237942470684009236112214051343162277575683149573036728146160387364181136970422677640214553810395052707531893836939098136628452779453103643390483810949653531638594980060647487529112303985467183206170677185941442356307173092468252854946933457593660470209044925768913877302334717995495935601589892913204860553844455837563801246678579891376859761016424895697982696803109768486224192156036497106209958446830874935800357757783030512731979457987950495389541995231179699444895275418811275475088176673520828574478993851764584897597757992478681962805367951480412623328710955954150455988857578077095498592112075923837787028368292687955388956477815885476776993607466801961795306196601437800536031892136226060396482781414777112323946339321995368340758531767123465269407008834630031324988474732392810844966851956348105728093269920471739316607532324547696369510652998934412326724181962774436432422977400297414837652361195950423124798928276363424532143117780873485306995525264507767549804561284064622299169632595507111837726468192101783832031110384927576620284347979132227295176523825045545799283081724643695235688615982788947561161105850122196493533587049590391938143262914637709222170944467295238517760287591939972971365870381458485109338760008098852802065238762249167143954045983828155774485192471880949877657986925955158261758512691472935948190755625846571460837817052226073527408656701706602535425667146149484427057785941207523411397090976196725298339492231167025599373144539782183389128435819647245420413146794216521887230874738728750401041133938723395410278003842514280299731770773472294931455655362792303313921288764937839590557519910752853396232284270742533959320153603346904088085530750868349477519501292082348846185090234091226483058042628495980850590175695910375602754824576672822240826413396725266953820415163108912272985856386514251094105514009786616692656063067732648038181925988354332424703475859100160803580291466205817944754080425169313351110488355862190979444417868932799732000263889440835159132418320903862125929876558400199102958588145969010556073380004428222686353990952702056141874362639565198727133048843524895693709805290333763786611198464844750446609152218615032242549445110350686426530368516309354155351631097358245245713864311374775116887052665101279164169944817372861405524189792254876823190222188762167404818362959912240240029304480694197190847699029542998092377203098227953403792779150577494026812524323859422828876213571513188445385736958313216920837120623390167801722293135065490915152943140750812202375560981675812603952669800236530235681910844076660069009949849118648629208999413801404515333387288180826911688496070323702190626442549505687995778459069338697882595440506353565040077282026094321715152687882015923140692835203779390385341639058633941429527045207980947936089229340565485742359711843201805626202366741732995447772037430283498104776093488692295306088112561360966553978245986395879846371412322506468077898232401856398930889861909447347010389530557191931609260798709642871714268702554913578032007112383971350886515657066765532905337754756288224875754868824842714834953596015620055928964282271907936538081860969106153213140326097043072722800300881842310569426848792173016436096281904834353680320154939643724005907788088191855006053573862607967971486750071167189765249794111289024553286535248257932428394339449703023266745893836779160872719633012632522714285667357186219390974089757941002741294461302961531134451274824723152899217645853252067898820835506618189252193999211087883879482653748908574190208837586690785338565323089591689027554984300554236546360604079983766383409184502496004081383535172001787617161740298030502284775913792286941852501122789564757994947734017114391768150816631434738050089786096952104007132026554992750510688933902159495267956828502037521036034936075466540286928545686800373383272800908304553138856937454973150252326047259123699315114221388253011045192114070511238497904682925455590124737056434890384635353691676937627957329733060305453763367359933513751599651214832323797849466409053190696562064407544025036000908014900681617054524390338974600598171255238110662079099110519685022667145996784370223163406999458847742083563675661983627676705199235627035427693682412232873607393052187674557824099678735723738931458287971360321783599911961230789334471571681253015043673748362040367538363317248939534508866737699009871275860439346493531847234685257025819826182960087006585513819054634535082412944424621907321535127766948189422237881082456270787091027112356812994969595587230318659297930704919257879536578098121669197520699830804442365854054139721810318426156694243252348869193122027476955072016412116688453855206866813718192499554575049607820387201288305214278670800375731611365724587398213358791593485163534080960736482315131843462866192361849236415607679342462424176166879946052524550814628409204908255705715572313910567276177935863224782986692816398055467218835675481603793865987355749488037730262002776448209331660289706150973084022963965729455363588167866814584914581306655683916298381480430614276356242098429857577323157108809028644804376497030106293340455683414141587907403445607933122851981330667413933532034674104110625568097032892652631124231398512254003146851886304705987131909358641077774545963300642697872651328210023084134434435760731135621005143268314625406891035703485709210260705933596672777662841462094715629896799512459763804379630752463175249042705725402125746449170337017075678651362893760929876375498272566486173120844668905167728185767337636903972160282226457371892158931485202705765487133301673688815450933203615361274257806395696939037132307631961592219344882616211541494543283079036805026672437651806720050959521654314323498604363605897457440485816545172235981645430261437722063801934558709336504630572687340917478359495502690514844693597377177398200361229101115862925447005497603824930305734709686062093923999242698241840351220633352342436536120811537327866102888711170276797623779641546941188137250621405843668962139309655040208232706311293040515982945824618516814737591957766976011924262232102195364345563965357868861126254669491578544771387434563952074930313009284333525060256829977858107043924509874608503628698336195428811777323465970888557330245497123166432564987025203981388766177846918060190351898441266044367586357540011632711499961580177275447253640158518592898746759027055950905844196511510634089924632014433707043936607586624763320236809601439174505694480747727534058389959803720386008873271669768001439685002262226848085704584973685172044577130533119223002706593369166917167414840421879271105540143120157077200518454117790609787798268644462302176210895646325802513085342922944274844909442752762469340029117297601838740351999502109131425717633018431262170137320119577967808417837960290327699304777615948392502079224285687049608695232631209662716276079360380717848484741828754492155624501267463794859161756974596954279285622070780476472795571655445609572703940595682489253124871924474894100873803635270211637818549025272886628528467404038565021827362532503473670446545759132404144077722774393553119425952686428645014334639696154426086648298609177419618829657801316565042784154462038712840516535266242847122438485315040822665173982911330179229060148440444598960442167589747883857378097987079964809891891054942707051775910676567679637164155058924350124778906332686635534924054986236961500280003518851673144914167893802598136562363507084111595227738967677357455873925511108088658290113582947051472544032735275355658801204389504636842847920856954185981737686442971433321377439243282585478164653038365732442002561295911366205803209312970665614674172759812612605561348924772673467875492131056394286950879798337361120925044007804204315014429923835208172881494557059242338033534100526483342759924883965753175019314054298216736696703583587382009179075257701104097773655232761272831242741307255851818436249927204179968570077570008153865366448082746370127032692324837547032927743509147793436663657606307320487335413257551247794492802415688337835215168229652314202133078399686169820976254069168933656360222588428456976713900782310413835582847318529087676284003014847525159523054925979960803514836875384033120765176068143944840978111021442833135890332598649593489730477122808444789991450494639129785742418966118721071760146195681451516431689639221086097269136123905052873826351969672281960194180444267397646798524982039291910861983299031447346717276827415460362170090917672809501343309429210095009023226917841535986107028188614487888250971749998263616829330491234802651514970192920198851643395215897080763371009535346830686765948651240325556920383417764834362371412819582116314660661291983274229150461753939552561866367379524063596992542474920022426159171685773551547919250071125502050467843318791926064307184563810995704639072245398311793074870858939088978647607676103388067862712925564180612248406341962279004980158157169755216303076413840608490140474969583364643374388444663897306162113212411067957250848952439828586418437462261459332080274429291020688684575461022273680666710880311752883775195008673251539539174170788841475029855072944142321324828949906782482274372517293915577936111160935322045494852708959264278736939268073267490807763162389063132341973635231139081728017685350517147491432607139419373132372930289293809838597479233274024033428293836432915015172425274926861865941133914106109747006771796421136081648963500426794864752535842766152016001992870566796416008020125155517549750159335028345478153644479687607002078508587316298128161993653349054971080431251359793794217464852311506205511849932910256966501499463470737179828323278327260021121404265247982945158288166984005213243543998047024259382692768777665644681856911730879681212373332923131117506565479186831906115445031040286918842689524318529644673308049845729201343289208360378874371970889691419827411731906969745037989703409110537040292566576786870869237891883552760129864826683169184441156506575663069058500438264834262215063021398359778267632040762370979185016685435126572470204453988748588190914306960885968899844371428790632198577894331176800520643808265779188372735650738365880157544124215164319037794129704928685187176397539975684738026382957382715908244381850897380899484994712458673973193032635015501448294799224656299344349370759045805541696378273375456922430662325423133140484214556447442240756389208693614539199039748384257735478764403125191389743437421156651214280364667514015533684665141272732012315285480181094064925022987349937438662051601817166740545934787443284796113921627092581015609088427176920955102873044041715123041667766018053086867064812464752288750461325715558458304959934089602054260785087917905806849161289696759789419082409978412763802599393606997585913417570440933609580559179696853054998376302851670544645296416392865709974170513661860985245988315389163440632028250280689430629598951798134651383898270252261037189078062492259182023485561682005359580098945772210638073888797290444881204839533026876484501273227083494014780624654833171354402867484579012471600198985591587758383964969169497617816143580059213535248367703247099715449771677674444227842697770959797757801387757735743097661640159351366621265003170119960952754081361010923719245531839600245872346320716588729651211285557219867148325000302430728500578481071441634290913058587794728734249967861013607229392310203275025721907504083813911141387020137505312818207312535255020846084414902421033654119962130739881243067690038945711211887266454071493145765974040805162087666826186234580167074706782663070918892800842447902816985060839555935710945667885068109079997057022743886512542167742308565855778104820652201280678976508205852503858391696527412899537085448166150144742317739206935895254276484820534404483338355426357884749549415494412782922650680853091897320860562845336890201322891788387792186797471426843407548127446235384562484092106121094295027935359632081982322205430307561209122921380751692804752876696062206066087086873732783110628184800164185329377104843668851489799040739969840574489523800527618616365065974579122647756663367515204907699401015231934926861644480184555189431757432927059036820355491279922989406606483766452756329923331659098431069200044327621050530392120894044060383545537933865663511489370444343100944811824087498413934989280244732135164709500831163852689092453988562562063305935792126274999308687693699868099896626252224669358992013948983568853233757635601742804602318888854192439279022685587767807738245602075199550008502291298107721453843152714722988239397624919337685551678482152070666367582447415236637647201133206552305013494928226269826987763479772869272343791673583950599915610806821206344496301556603674808410280678484373471258983923220934548713929931532434114982121814186016069465262470611643049120107145632484402130725790155786534271618679598977665285641520355198422153525710065069684121304025706774762625797210049586812537224655005959948695307236821390499371517005311690729071255327761824328684120466252288603808711204475104990120971923506898243470923427627512511053583538549476238176809746341841221987692345922184563511427582374792926509888310627539867990878842674126116626664682093032734182087501058164454804405089900797303899568216381055394171190971100202492930680276091113936626334209382457446862599988583149406770082197631385378769798283735521723754415457941857072091523217356856209050162659738991431106508783222777125377928584097662098368308023631203874224655254886473215347906963805730518367108945512711473705992615236285149172686009252946628586768743886721011807059162571943955951855553774024510171786325469121781725312026168229335900154239260716586527532961293747637926849331789712170544851466864881930883026605913341805782130713066251919335721886092705334087120985581472781885368548621686781221755878222671003840703125341228243464723876592996551133188692298320609240313517125316401679447030501532264254004201790578143513158479719944069426464389512339068263789907598827893661148713829969897931247392022651536643405743009459144931332511496943624291846428709868646103791804524666733637910816315409478214697168741764781178677934399604981145024192779406336116745710806417005798996884378435041798602287465768735883168641290030335056181953040147706485904179291561611670016826729467022054759402338062495023172014197630206391593376354684060565649052403208663864718898702696713645228616056743783265975567979650020168632432513561342441528964002238695652728469005982072946350207990552840800840182246473995528778177977862577601090805752166422957829461780687883639824292198822412311329401051726600591189522838009416159468983916528033977989878370328662564048572367972820478602084551850384121946747320184569242336909118154077308644727193553749108785574865358371227951025504838818204851713182289143259281836948741811169243271518111680121671169030282139503576537955755633036610632422659667061568172642764199098156603149696401281984174166882826007547525578400026039446254593974894909763728938150140921582002816869957333365233368233049435090803517587768652010290121266645155055091189263554665328935795876237557930026509036889004093197519164586651838551723461568625347435728788428079352406233321676709189330975515064444264879863500867784849156438277902936826054781200654465402709515649635144218018622177818814962982238305586182050182523581441539357058929380729349459423577595726993603784296803916823501524493994614468637889880749237514715557502176356912135378584009910150634972029613531598747729407903128455706073431334772583394343505386287969030060907495590436971570841548820226075200025513683356373947454202823890372252255966937553105333121174223449474447740327318882309684920540981513252216571009053897640838954722385736396362522969653733725132162540959768652017632348478809168624340180908806241895909680113473520869467484444517082395532857508521647047691005444266103564682160349468493862039307374803964362079980431675038158131179748538606515143399854483456729138060689776760431750134213492501664048282545855605610278452889406286083200088687412370089313442952788109414544649940732361800004372572873885748877666402671203940292227756440582067386497312537273556363856673790768362787328115997011847083452364190036447926043075366191784275126379283082281182639332824373619918959266970341382039447272769931265175562893653208513002476105830071519266878650841923131698566447908792311082771540632988561351463913813857046225338152823918789066113131357597951008558890219473691208542836221282225371669219219151638049054100532672437917182328368811069314650975378450878443456395747132477858907561830324320049512682530147238249543489771723942005811387369426528392788811561582891061157541918655695971254432525050227202465110771215211382294775295713128217965914393855579674421710022205306227199018306273669983082119043122375967659549954913405388026523078745461015897900773858207881612565504616677416353266874044120197771806834579906846142503518598411708564389861032528122134823111419694127856529061301121395304500705656196736853078104395715703172525168117559585758891210816772686866524126886628598659342007618893658266305225857273093938578491850831775539086491573238925074269134718146182189136634114736148056264454080315723511340424449770851962693862747697718745349315733995730716231852324648015529450412403565430129588685292903433208824061375736813736251554824011802246657294434168778905772396424463144867453064865695842597143638434868428945087699003109415473809864897731411134463572025187260216669980578694730148107229095858752326305657111198623067680847559333932431830223671009319397322529685220184700788547243174040165716113832470836710981541655072672000362652891724086599317456877161373923058479718484355010342147484291213684881052688519453510135441727231817969979691026850254744663207291385427532535733196478194811084426449838646489730544075540303143777366049366830681098385016022969540644584201818335023996410388331505571420516133499840913273400927377471881900417541984821525418682320961010995183972188794773659427983278772558219727407927553511486769112073552744380400030601981417403635105014954209663867541381270629712098088428934036898680944521438835251710712412086829013136932355894900638852413989917778894276816896079336579448666859400069958200009357811140855738024218252982099486701721058976090122544438742693694951300921015373927089354349526859568736110273759134524419037293787413315413632638532097898547357126550306329929414743593395041477079647771711551314140340145288475181685348814660209096838080163155253676300810534179412935006795005024986939042036342464453756012456278983307774963888816709002993569760291610665203379652393031779757919398836413582585944809794623888779323339534926384921043356231160107891376830278006580615398457081695165023077889329863856473027705596333075015212279798932625079087870613044468093094632143014507582016443239968339161076355422933473469737514013255594044697883969811655049944882135565944927965507234506309692726855961984453914820869905052511925762318395557984655299041344099203490231904545223734680999668921284658348091832699702725818211824905060480773890958773242302126585358772736775973210595759325264269748299934061263224356006245053115245483268849400104731842758752290592633912387233984971286730673591079361997177782936972998416732834709629842774935598027661674246167443653760902587184970301772581246926344199922090618481703863191560401359959388373014102167242538460929007372051572286334532493073154956960145157817651401117378761119767923549671097044697202943973392442373468019885798004832961298332674071190899883590607754907155092110407743801726684916275338470614228410221257395230318825318098130326712671211950905115729906947498418643031308239883418453943253400894844975926148522312659142836441997123622648554647206123625938528946147757703220947780792614056087625318508209593923059121356047059968578092309249727339676718820444910422667078901296716785702249195218066476231186557860787235462652694484950854010117963143785311756938428401206569608632044714167978462198031984781137777572194788161212468272993743274423535419746115848915724884372815576294533370802375917340846864982993689611135298199134374047379115395663090721404083253682984360452917538454396873875212519717206069917176383778361044893820155194724948455952275095652358624378890204491455645003280704834237294662599493895370372464505115572378252067580973894637809448332048786265414360691845281151885598114441795456178867290094207083942491242130702168002379118450860885538199935932720689991122015554805294549592264696710526579684236347898753183603973024206074742799847235158918084766470725337452621295687341785723135006173742074307942280985308007116926654414015335527165390657562650911348823569135255973742877738243333204214190973898847386707872007170089948279101456469714915210241834132591041995351746221290205493027441742712240401604436010871667716916995403768418870797650318423789905920324941420523683362887906681093212509886672581318393585486457997771243254977332807339311470371900603049881203279124943266633301964122767629679419091871814290998473451478719392810240729494778846866353095842917286684047060914016034902166092749722028315343293775330028381429052116100480317580874638055235985300745662845646384711908490425888312130652332979768222538155281516848079178820657002357380120959439068341500248689729943108256119104011539054658730391610511951534830228569921606955984838677453322821955826883847870811452399874789042419292016866700045517098870481112745414515278879133750304006905053565134479861552193828706291945203741609791049001703037623567855856611478626841311841955413763739115553862959547553097425420558175517580502518934836705335614468882476370524466772795271872441819259574691030006168562509049695293833138479010555183737198934385996075288796327601323572481614517853497863858182038587793569279387928237470819747088134044318324864537357974792982559723587868981389341637483315095607723026768979784063077570162570606838384244346078997202051048815626791236803944596585720071711703396596806948733220605225513955712600275892220759896478501768563699443067059222206822228506685559909084355943584670212241310264512431124128766357131884646503078712111043704282682360621575943109504502085654445250833307130358267543071785655812539203103496808742735911703616214766196990458567324678623925257765620412825166485922293510096130643672201188692513636193345561014675367291367375615475424934203125018061212719936019366129982743375496625449060630956742461416085032310700214582625889941320295783436546297176839903506997284024836336289081622604793666199974381706103243743311318592557535700335531471850209645398476671592418770651669594775012931410744194645567832872106487114322678651524622307458959048618189494379409096823484427661560022092465973485195398405831755468613278138753375902786981784376649317911496757072765756824118432046362560287048901682992963454151542185480151514195532474984367383815753087001094430722091529043310130071335285592103377053415896169555002658702441862598421229553680646462351476983780195111850657360036489932106859311238817500765553465599085023886516209200914771334562316984446573163022383640221746707860255149481793044598936747879975237857782307445101173541188078383331150434847847022996420703682159827665227495382187076751957475452345968096976201183575161125865115231419711768624479525098953301734696047380919187434678075707663618952074885166760534369747235658598138107438711284413619492788206918724883590932931140476307401921802231548385897092133573603459918743718829344572820395956619346753467510662143079109870996757596616309791615461212747825852670747690448217112714102407062995818549360049694589247444390623768771630627247570605426973852674939566740911444038537616619120571829593792632828391203874438430128185049645215818827223703877346453719063017296507484308146799526379314006282075056702191916800731471628732076930694434558803404603314269975127616484172844277452808952567328400059435194058650203366102855413793810242957977395715658700083808377126838929827587717803282878722686559096204494355619477187558762019233045892313085769205234549708923452587652968748811731443396392952567559024858148057556770783573746960794863703927396519195959933216113285760617872143436718804769946519910382716488411459953828934074518737371781916336969941434987825374400820877677834192686602144892969627552686931178920766052113874506208088353939693423856455826931516986495967962540321741556145246353580088759618797947961436549759799440965064094090559788246324285399141297309622966388699026961095142567144188492066381433346901196311023695744964763940192269834287175258122819101333903605712503574873163051178291088891162119667911268503997744700301715476761698036908970676887214403541113542042958362816432890890958174511713520708019771385362628559720875565015873914870261253180273851599954421839358756775799803842046236874896984328014303923899158315996441074313185063593299357250606991626222575099625449492699422062850336006224948454305330330468269760401049889435155993356343647996970187208235754141834491845752395517423526479421939899270500646967401296727422634181501800324451351476158102789925544804383384062047531218252958835633484763243156137444362376399597790030047901609491993108860884713385123169615397502371907908879901478700016861249183201557368239201117891860976826448312044482277837279009942632870937219081860021129636239648022758400591157898034906933148043437756033892979511655002559204054971866419753440089078391212477281069620894718607247589146902988507794581515940561164673533304972797970758233340563231918997710816572339520193384306296757428382097619416036998144713373699913750638415743264200428797779553477657131533946268913745747097120733997436867484391210903638807983929653643755606652596359171475164302026676495805615626502864711140022631877962299549886705137822554588036531674500415340475346589397271452508625890691155295255438786829087562319351152308403678668665014991800690749423944940909778069023873492151354012078734559126550502797025625670503637678781227836586200495134031049177163771056384560446907442575073545674999488685389293884199789256098490900095947001353000040987971242039239535577861034476365148020271975391825779233028427723290825401666507230504579261380075158741647661179794581350106608985060314028592334146954827190839303037222607580657010255206100958996996884986724989195088223639904936791961444807051826234901628747850320802374776630577714760780368362034478965334643702321939485099141997098218460291134930423009990965873961010387214173510898062920389870038366432564672464502586547282210206825055573854656517231601914599801033426075886322239943245632264261217876575979867770007371673181612047061626503481887737184709807069897580307851857781776117200034663882970589447943013339766658691624325763477084279236591205283874247254800638718844406391701009303777256361356563346040309821300751042614540945618347581997985059995724518327057279392108697096732490602459829596288269000953068095922537269751241346304928264878855613347635836724493542259243299532989165471760770824930404877934325728239782250435232612545318842890736077550891268477819184484743981168193187349518579004001737924990185265767349105355909126341670174469363557100321940735476633918015486038805052577994754456480126893575528132254455809402262393406230137086134095785150717650469049310681553421042680379351240088623817651773724380044038099681552543051519009669888294484877825752300142121796437792808165685307514835528894420674233458506944528009293261372066147992072223206652784445085251823278733212306274355073088731525636738082776273067244656296066988991606752683203849886386152579837390152805207436192560193426326838000215715949053745451596384697511638774200881247160041484994470466002376934881769770908281107546609256556326185664619280516652578499719111050506247891547688128462669508646195027471589768713412747277148011229587304775451605271615746766852899722700373345484221077728370203911249517451321545662820642264886225823110345056436557702121994363551779480252950171194445085017019169704874893175430464541667681583869445087405342896657320022155890681950327249623966664181617035456207679494337185532576486748091015205812565402088013917806204089396193034730279952317561904292501198184062239101069800775201994017162926680069250695106708777807611366542460104009713202072488176922788665928915672528772128599471192132776041769822974570701410836124205768527014864584979703873396028491046700279676094535946057165801009983607870199956658661919099906095445176036899535631981228061292846779326036182209304068005916367289016646100732717272602103097282835726574921542990306530238005586360896443615478508438723059692710867435861832892779320277720467428122412617712921300157692172155262067781453491472948712808815456681004240662330119956485880607040808062216104356256191927796178148844343454269995956979148777149308776237387835216745421510543716431617950080303253727534738440886849250946794434576798245429187392335975783497642953596162237775118697568672358900615959808063213856632826743619510100878137242963023030564972445329867899601570262304053888923194368407949065123459658777911109667653247022656960844035251013076182671539547020263261881634843590819773332922992860668292758799909937304654073127134685035296179922202146819212492588482707316998065761666799808827566668717632529461881967304478997087198631403471758677526758517568190851362984495482300801492887453188788032508463945813540733938422226656726010301439090307952381277686531542066441110491101782178656441687983014532603725710962684063251914075458620837917967803269143501992324524468542300957757705939077164806911482646088663387526075212293072553456289267026598563522851714118303183642908576164779995134404047645474005299635926131105497152752408999116515271047739377075599508624838327230836482153900536965417478010416773324556230287125816372373157428001213896597659231894471365235674794213858761470840654603721011624053700165959956113467230215117296148503424798755220348482356435562434106032404225116983554401726347669244092810074070597232103146029646977972476381652264206950160069754119358844420757878730102413072890636881470716630544937119299323583668209943519994191905634021014147384834887964503458385327351298004681595140814390743771298876957473538452416536452944160588505119875278035103009519795184082055586187500753611869892311068596662743661419889864024831973655756434037385893723624559461228606598869034075632027369591004107261386274965351495206697942805313248951234711882840817586526239278878959115632907312934547725930169844536603745367481415297284790933822251703598351901773922578594431599060870550784339790260681080736098250816743838575268012374921656831425107669027384083509054845097820285633899239583807335695533245949570768807538125544524184102535880316552791248339356773264300611690346145923852730954132095293285656784750415054647532113389488899164363677707270589442214408383561374459339420602261299367195756044667752029569778348873844251745053164708937087492132142719364283081258786722670486997189303769941616399465255326522681126309445998527392582572929055266712158215566689258242558427333811632837601296188479102473306260671992417845867956289824363870332482976899146552646861584946473657236563434533250178284548680146288378280839331758739902217118327826287426449983121442774413244137278052501800430209637541515756437012684806440496610970187594555592960921829782335561728734493147335775870370997572563607256687426929092732078755708014246780724095687744424678322625275468595158018396019661911971911440276843137900625923211599843138473946325982415857264795982359911639917653059039870546575844425302875090613918075235260915678978552486204810467882235285316372711896282753666182932190032457853143787086008989119372487452914995128664242828541652722401508112783920766054301795806494583870844403614688834191682831160198058653790900502812212072213930427746449250372521209963780286257024687916091536984785501289309716053821919993985702577909906579987894199300645079634652300537717691157860814637727446908768226541267607010606573949663663617732757125958133680089516825122698069415722141930237530520699557037224628054793552637685384739251347425722452649320426767515858676520515711763270308539282552347601685241761905389828644258124873934705806600466585344247697243629219881661628478658674714323146627066201613952863999526461052835643897836051603725484086349251336410877589224703004901296227289318176917712857394598982875597523160996531528734903802039525777604249124283753849403277332300944006359332193732192422284580915159829049126277674902034801260121520589279851478592981863068391507686683503050869193924558512833408463672254381102452068844474423419934998040842867584202079804834195143743530838165683674775506132668295306562390104637670247668945626009161517609552459319999315424626734446798283450500898683943154877440394959172051145253271074291214823829741105629905432469232762646966647409806191834170675358897748136310981029238862935643374015301715678226483277741738123906490401428938787366410582947859246165384394759251450912084495888493870938793733436910509087190534047275415873466834372676124909604798746199287706538668897586615148296702910012145842190765674328993550638119937122776201965887581841662101705775007575376480848289456080670408863453170170574675550620941110506823117236442116960925917624224436660675512862281414939108627134015263461832401450797403527675543774077067784605909875667997490140851207822826998056624402459442183029169127523584075062331377687225595336219443494141947503169487860995553606531385410530761826901933925658791451336213263804729130622560000477585178236794997801264390025423011034829572526529670818516708306234895726758011974686851809708285696469019619829154135318014728870301659495277746142085662519913788768229269561866370512346866451361575062243730419769291156364745733178468819872786036093158564002054375118859691843560488112181222949195371931831418493099948027415780869767822007991228547407707615439026899726640681415019191609502602728572187470700407644893890120734127968290713814022739767995772009809429957967056740904666119896513820714652303120513855643430590123369879804044915572759544781260128795697192248943724925165047298488954909297060330644350326043198300827132118318964563549457155023938497065627089847297166432413722570371442973566849661487783753349296294849954090527033449694662610138110320044884315259459616313496730510671340118670247184222327406462244097976541932635473837045909004930568981820538029923993470002420734958512717709933421298195728069137448921783552239911943108811276162196278506365727927481371580339731100568834204562114465742491895486663812037016698695556975738952932382454216299716667452146825087303177686425432312589637070655156454181853943869094404373930100234552681394868916964049730331381086054169063764340311281949319452322646938786684308015182594636547699362883894511352871401608302171859074037000235766740392130020336271753209499322415313928371660895786061656711521165368668526652726393357452194859894547954305648428937361168963636976751593816286874005063207013198563537180964896391288190725619259581072147482267930370653354924858826510220223060655525363717718028159985961395306036412897766704838665873486886643623262773339346821898869921035085145117999124554514668798529008534448295390075146359490143032197921041699987532196594059947573684062338895048022827376683355441155603430172629485163513819225101354188534942727118112968880341125382685931526186415720179560876265437851962125054935736292891630923706517238487947860209603745842338128871019113822735763863429104532322467650460194494588375105176073809412270503929463611657889610477228493022818321064941504511110474337416641543799332291319719328550304115754317570788068758627753444901846875092909435520312660101105062933064742247181527027187168040252040170103655439731279313938501919785405111415487346832866351383921765921592194060514426309760815641192300343923759851144678596922040982407463114698978477615822311882606823962632708749043792898256285381102386169197926912844835461184576893440453827358036919212834890248533434469976849895085636646530735015232448130514348326991449510350492551009872895017108452982637453807162313601556301147972176179035026412057871764766860007756303753518765122667576366488836645258592628466603692110980117280076371851634879098285360290901147381314482112647456324522173211213157553749942410183890913342956062546443786182388991223187759562530733003058581325734945891648611694459132709338448640420171878563584510655876444426276323607801935252061251174310361905449645558038126250869488266451619128361418849598177251965487934536867305602565228693311223910511722622749663663199259617389008482910239951577192709359117061593262158352398633791945318484497541049260200912216795895086614163129632328606988311734755139478937904180997056166813900359937351744678538109481430295535301726092374013294189895295927288317344594926533103530518603176282255053749601987350290534215110384643326117017536260895817035996078915504637602310732229513188877000658983522721302885502618208208290219454683245568100105759618402592117172106219888395368794481883421138667378890222157942083468579103682960814362400618836604809935140269591291484352345018571160250380207574540626602731225387801996505221719215458550665835823074765840409670203561108213147346882933919839663295704985091030926048300174844877793795755246753802108958520801211567755863918584862709002281610756973095408802741518771872179786410400250322317987425898243751628986670472612093165181377851576500783326914209140752178730564122935147137322079762519582339602597924759334150058706020722402686462409038835831515951111257685558347632136862391814333809080573110581483800509711305275183725798639653831796149298324745275463180504231095959025562839813321790844783355433063326859313350515355670778410674367456287162463971847843752967704853858744669032279686359837117046608152120083758185277998928844537319556609822810505427405258800985222297973083178982714891674153638595285951762552552843456243022238114759247045611559176489781897217429305324067425310182075914657809556675121164882021775340796499828859846345679188863339725175949992138150689621559719063505760400365222007698304807241985929720396533655963099589163441714597608145856979641468374710667433614005299607985382983473858654434768233571491819275048898286964784277021332467408461919878345379830674968516702201322724743706464304694490316308413321411219474226043280107774540338851816005718821380888063188172219779852091081428182389072351678609832548984757251055789377423458921799457576348471038291599892131570078776728816299210971769025757758765152393578249861720034544015086094584795541784238518595405130273849677985357399665554908923003626950801198611335515048366037593664410567130468348312464501993379066538611982998290086873585289925153638846602638648741039182717702039407494134791877766131411395102356091796487942889357510055635015049655136247281336769832032654987444497748769243971177460378166969001474939558346435756349385092411691842806557852270984167116620092719713371688400658647362286763786650526469082359854952153693262533466946541080544583862652011588852330345613235454076327431475521442802622921909133690630446995367506811559124030687782468630173725925262093725858812686028471273523147555696071672612114704744738344368454557070918432831112992500428027482568226826782227171638258494851775128374148701898665297072141424295308193733462897575792386563008610200238251373689633120413013429446849242234358553291257105652251113273182054249792448156389659028363652569989287650247387653938977216532479235956647461581959335749906296099570608289870128250071696324616562853742750238436604622987840857553657464935621387549157745712299918182398566780500458386595553464907252904576291228996574080923825689750645015128753687066259929180434134993720086673969146710314316114163100953747872397637983275725412663256676691993608192171066051624682886367969511217174180469897692542056970575478424465865958348415919408850616602554379184588789601860920715663680923547077313057264601881931816325909874894688499041490204873630103851719628126042783469556958479195562239953637554315662575085858960291552311853216164885709113805368789410786662853151807227192274068590867188623216384388139359891439827928369118695941376817030691471581674655264460824858189003678918009508820844729920186405752350654639638971568282244575498721507468086917571034173756588851695213447716825511955133713227641702657484030052458538919761766376869024520303608839778226109775628576016758922265540431986902066081194883507812851910235020941994423673768160547608618080068750396570502082813835909194479684453310594553954438438410686314053409348066999046961994170153931178087047317472339532358044209736740607674131176185353838815794007022622561693111262552540144684265209263377291522632201340907812309416827986000300988598396544329406603055892198671471756238222913692923210331510815589213617658586539752348099723171902841417466895913595403371922938304448773553174762456735840435410334287334400132389562305005946370737558564774627125787121544732652581524636803188950593549681827472134700416055017525939579361521922583323803311697107243516102479311394810782925119206451626914023744537834757465527008760916290241058255360104068558320653607504637398628596544585449329478260370280847676700736204320917488806696945084145104012106287552274851949659283635781121935049375806969584532423730152988002415191612788531682783733501170079640923701895892785554984655245123569307347638282965678006865698146744878852597982339409852604251116907505660671086584639301928002031300386829540285584272845962831360735052113955075035997881952273673315240515594203523171671135949686970176627710391352740302837412487113899419779098277983827330563608940312666093878614921159899136220092010799955920717571061265100605831860841824756076448337144390406712339116731824690529572691980912696707390875272968654462482999875001613930523354591245753591370715907993894568600206144472598910041396517657427927923724539589063363170514763556068704344289436208882607107336638933407802257349334739818950618486144733736188742752812908682816282432525672873078740093522490357968144752174135306397096160783232998509974219131640304521599999976927898147871685508592514517382631010970383713992856206243784375523442654032097040831504813924884229820518260759094803027582730204245844874029618794211673356393032810414959263298775078615953810014068757745269470318037596536151997073212538313163596767567647451806390720301010119152583827304917230642614745221793141264605718095432444327150591828892666516935046867176893186478350223344218182337237902884313938985150809989801228656496419492505775460003891554981056124485801238235425130566579474220839967522224229671235539348392993449151779226408074861574222048571667745033482961731872328507488727232212515910065132703433978381257230568039520640512692364016906975464864292848124316881831641379366399118987455659373200947079613172905208771239966008776028869589940695536494730526497153160677670856721426310530501160170081051340541359853907357461947379568095628634151545142911053161650218450859235803052658678727324387967615157472510715985897382948101629589378218230155515248780009174805770839303483677266123818642050218062548282533834088290228870577403676804808877890845852552259637513268407562414724500738633935000487101115615802164656006488222686760168228485885446181453601269268146816422546869723814151228047277208205391611729003495706842062585158216681863569395557039069231536958783761934582872890071269641103363704841895032016562925723001128577790638343880538403408805835915157377633586387198641982497385717145694925860304201249769785863950246161014207687147677410219367744723951742577004630906813098562961296147849656315187158886373685788449069786297344484683138207760534218531870995016173844044373831606583546405807017146184544129447834885240854310464052459467704877668755235033551733744558526884248551087195868362029562071848325897826555607680377799362400012899666942175524560468977199520232691387532418490173151175235417570451374999683132568373495512825725114041761258934888152105976922571434764205012112139311806583737469774586023636098880146604610923886637656477470094818887922613025852953872920277016211521102457865539158707755675554267668922392228610233918778563593243295659652498172243609339311616808705885630714805526638554410914518178522746824865048531219267291936724510157950642020973366985105346182906773733355218619156739005213762130795060415586344993943306970792939637079942430679699803002833937086001290552588412983634178524991922052212603786496313381214449172017673987760946709784489642229204671829838857274528883199675780804261459298291432516290523428279338858271534187014487965159402154972520321196592496816049573129779193113517507425721314749459768998727492531213180866291141683015849389214630357755762321274884853882805671952197516117472925420925162463345437266685092593588671259759591465041400761454455990842406200663879485125761982688785229146884616197820491293096629935651433584560826314777940414347317007423763035824060936622719447586734077712330682585628432579294612283483039498981381410372885552872265387245147212848371513303926479152269484355254598484166671334274651614402974602651863001501647908751414697801588229974026782155037600048759180752781327096359674616072395835156233275887708649768420288300619093432549842666568381093349633623249504592253312142072167809343777959256903027146768815470214146496156645874024910036649125542402927820572766971230818174786226185919143673777110707444387269351860770078858178550763883827534781162255256460469720328338048724154700463539584496005667688090796678141129113755185938306968936846089529824675895921782272856583545113057904087352921417305324845173520060686840813727352753788197773407077743581317212443971779429784167887967606291101452407974182053321936122137222880242574551173062102598220869774573727174971467856145180129699986594707062403310653058917713036379239161987453261441485934423188018765515345518764790549699264203203638611149943392541286403206296753956248937193572122536858466527509706996049448893992935797308520623701971205187613509270156435224627332293648439780304731966907646272642231929194063264680812371729565848324704904797682457911056852073499509229388470734323351287363673891908237667136274802414379428993569477526526275173382982537780054081445645046887656970128246008419460067889974012439181036262987345864453165809951964107816729035524448564727427932820187009121981779070002114686052665789168102159834702707958535611148050139214729818402203311876850032411164708161393211441996146733952432975862610189771411671748244467445517349157809714028792688980046731136002390985721322985471379046351236996443997144399074034462623460408801914414377227302192153259012915414470037403672396531941157000018938025541720821669665106169891675631131245193238617282984307631324105423713978536640476075969591400025385535600603818897063943460307743328523937513934730784608708946548242946691548128317800944269629718472308052614134933201546247765727261064710551955637226988542407233717205272349157393701062722354758350555379473720961977312605847970386829006903032303260810855575165618536131931171002226012388750604593220554098383539575679742555498534507059134046968200605802396782989925059958543791271040194444961772543600330820484576541469410340043334564009699695332885367062600633957596750848890688333581729188886393162058743751458133795955864602191924443869251108067699482842353367041890848666002404623500515182211153855879313293471441021498441558206015335128459416603812723233697662383606569531038404000397764232495688243451677828253744593755029834534722234907454494590389365671851559258091044771148645050369207376451100280382232812806378755666937764189970834379017354966485036732801324359738810623646123443392070451442843032155253602293004067022795530391379066164485464477663648465382132847013393650627023486594287325882090592250922703059896756754183050665254095652230094261587140420963633375224712274468854346057656214406454068450405341352213389862199454219082896392376277393413832872867471716967323069904470783861941802753792237995943346684214082849557116009028393133598515921120737624227733356131340417497131615399385693965154207467832041159193463479195720300912874992367072890192653047007362092359847140745929103672712827391427537184132410089384744278368190393555215689300316247560901827304370272209029149528797601946655408733838018902275683695199701723196366024232865515543994528106552581816618677029727272933128744599646002797148222000549473116840556859991976286222180183275379630554203945724376671105145844914895157853753901479865529603519051422555462046036823348334799882104343875283338763175356527784846526974554551637001249491564830340957024230688153427582599137007784861913850283312407802110570170782945129355479795505344694480016192279656959441514972458458514606228786345450864635659434081743469840982710135452435620503541242290810335532468746008724987599377115362995178906338365067008303037915301310463077144459335075470060547116367636514122555700751889191794232890787106847934531883852320401100646561177859049156012694329126613077546448389841479295933637437488081729085593419232799041587403998250706167877716854026594048319922006754928102398908285975857147755455783905079618238398639608497333520440682377752985043923581422431432537963705093177150100656960666719804828327734873119791384115185674103366383666251870883875915507111502760261034534683710381192999401606389278975291328717211747652395073247816261562305500266217725698320228677600591935768920290443355731273784289211017497524377753797460921924773120856361621317710283340896583352934473223629841652531520830266097502571916384262706708945111407614772796238798886542911312074925303024499824258094856142183887625143764270633008445153862910432608381635956247616117143556013976824089835294904561928706156359742165613579229194352648165953390949906046180178934550012509116125754069721241414985931136125759815970920645872977771075568643800865975049823236466901662539250181647019813640077408741888648297009957137391047828346088396199219561797546077456553036327463994125531626895300725864350546973324160441601765493436401169687852308857741046240593868009100576931457350803390960062264699069027796067656824129080241730410209753794639320616060124138485436335858495252256070162040592782849697913988061437423229239015661060213444754293029901319438444100244960497024758350865655942106154181181299775278247443124886818240562408820681572997410484408639571453794119539701809810438551918739730596339988198732003552714552179362085262872812614320941275445932793274049947160506219288207443158080011081696609961944539453051107244160286185728712199508645566086879683813818634431578451509737889256641700106985983048650337594213525572868099969443529901012340421400958011626625113680717341162037465809831157122498335620683649569263408679260793109711659166903010322787312940910746700820246511196231227761528340471958526403574536615777912368928642887594837806602984796822522948949496107916701175297565440767773596197697848415550126795699893019181679814239475558398625070252693902969120900697565813646126991555615853527551616721031385997999658826793379044653566586320273256189191779764259706450394506031781050037948217874521091044994444519899265653999687918726811194870468147468599844381681145621966181055416555655282942212406799037924142906746070307256651844074040950231515985749477753188127416456731716560186140877678528371399514297593886170341939162304167618632207117206125465110013770255212117504223450484914449567363757253304553035855190883008088094203913736308923671030222308748043590805969300531711090579007248137618261843763901162478017359655813486697762421664933367361194924815084845141548188757862877783095262093675247419978873599201639934172417626346201234982774902917585584165373792979747948754510202867160772600662040472720836306054821396639739305566885635944990969430383992934065778487548692901380538882588874805817279780107006610851809884677492587729745350496887837623310472509990048108018144775314764365825893217594735825796480412862940253719728860421506405166005425546216432815736430809875603903660130974454599039248195703014268508504132508293432479548728762492225925107479165677783707139853396001044783572874185695635101049297045507978920331462032204774166748849330843647698385045067585997241267458207509166302032246678621607427988344918965727130577082597313974515011774884498936508736352712495725860457095636728708740198934559854377161149157848909964099539828246756981958091099487386927171735123521255064486998459800721004285969739288104378756497725834306171811698732123331925671559707935071831768988826737515780576022788374373767394579190615607138747979316639232721413016952989315088011787656295544015907728448810524715070853814780779884764899252496648189500409800980654678645537124677173014072386297294414991620376473422631422461906809917980643186704882166398533469749873467784095689091956791032411687804631320859025919919629836128652591653803428824643812170861916554895682706217982195276726400464812047848027468845718937462531819263270756752751573406624405116005567416880729868526497643737798736554439254677036682841691447561189269132710324944315784614743444304398618305467313609412833972425560827155510881297064306933473785180816111546281022019283186345721317915538799239446551734728844335914805311312658880793177278646940184785655257078639229261612051368647688340678490409266829558543174181676374020277421837865548203297230447193536569037384515914268789942752067705450065767932437961095493964302454111596347454837415564246389671288010489274381586864720048805920969319157252382609576397519375001409959755582920271764846212205681471914424867881178041060513109900888423766581929175986185822285530327958585072532939325601885850596236280321996984072955092250842834966991519252260922359911717718644432726708233556103846674334401762642171998203180998248945062962213523578744068911095635723951981552798535271043923575351743844391096979940747092723849755361507297689239065540011188888431121651134415328380245043285626746693047539190292709551128052882354878885062869423110556233942506218915647723693544555733296855049522526843316993827842759590882519971864011710365644079230347244253068474633991716976328444174526800945741598171840103763884410477712417874948805386292418056866581906462695055369588270814117818566075221456820235047182640187575736799038441909018829439044879234079057912991605722492955218426593457150237487481249049571762587072939545249561209217286401720554673397063130952083257409925068672805308321441811110720994963463225299607985836066029753911589267320926872012394292778983415600705076449333372637344271079274084916382210511841642429452333552667320376331130965143697419227272526747854223120850643749035079213848210121865276692229007659475191872991573102949154763899463516653545303755299449810590646227222482110255076768770667925587709388904762876175852927112456324862706093768459870274781050008883993336153863828336940145885975455377158691670563356380583979534341501395640168135220398197480216896752342936567236860319841892825061341223283030960350001376355817494122423940554650394491709124041820174200697713698276200723161294013768194286990255499681729703184588562104203211606728672176069229248433909385399614984320244615643000620315569623156448010285352549270620198859471288151359019042135648376996284643993871692161691740946348117610033517301545742817114179223727899985813700747140910534518995521727366774829733539928350251714359496958800338991402119655868191129329938338596002868204944385273771320020268229384858190999120399663971469808975472093014469649253744781271561903441497653090772049038180030492483487188010110498396201533582190749724906117916280602284189862834002244903845829075067861320380645355627507675911558849596718516625338631624048379683476598216116806757622971945787899207031868565159387624967413317578536241057605944419352792389583342104807346218862832456398920237142049647924120155231659918372129847636726675165141901942770143795844833460468958543408707861009906760024300850594313406488495158209700885512409908893623476097939911812588086763398493262727487533103213734640682059078557329631138105962868870848359610222458650054013730811364071941131720938677548788675205205769755027326030168898437093370912566031615989008191456952656431544595510912402416624274112829399667529020342399135849682044015627658597708239445853856863488863547908447401247020636626476775997146982441443703992059757023449903630202852555515245328615000236606101703427547140031837744401375174817796716126300772733543339714314203538925280993975564998375229152338319665265151183545047489153231719903580380815846122534504343861715737447088681200642697770424742015991135404829055048205339312559533059143682947486327329318926898327018520796987316703798111647665126387195712233994348882869930720872970923751961236015591127028504971856896145792978909196417032261462357526167975131432888310981682238465082020055685740601993418700906065090521407522647752235347495274645787618819051067738252444588839438162299665147719721248596105498303845128878388395701705783899504537591172718281368002119643739186261508051969423996824925660645561339014236870171609584578541604349213674052531798820182074376577999645846256984010903073472016121643840371523048051359809199754830610696785665763984171873978137438742093460073928895330459435288269718869192742553179200500464858123567240319989551214517875181702125001895603732136629038694111260433546188023669301147062360017299341580926428865824316963563586774747506261636919400715752099160217722187199090877254256381259056090498573664329262641755619524875646904056948846010002434922653672206102189028716638051590270255212666212639577515083727592090997773654709778336450920615965804064921864675039049927471263933174041842423343541837665280397900638069789028170943899766475108030533094834726671550211707847857842780385472241688873780857202346137909970833654130203961887850028605680770052357075892899363714814317140229159682450279907444065550233799242449257163484800977343520952946310690852286802257945305255855466117939544378922589846946941500104779638479892465839449148192447306469434023953818180813169800638753309934135454564227802080875126221360560001144541712094685228762128765175017596785285110444811079762076194705119206351876689549016850511334888203563758177081995830356876947285189778035566180772689550724947657366992014958920385655802871007034991044226230471970587064306631683137766044763032249555347055052570033271685202793414315664009580924573090792950714504626599632028581092220264884594961740342510007406863594104306718987563263519140746374121799936893129767569355137704452745160470336477870319320715533192602823992750314488772608430651841257570345825266661394833574146522966876273844116603596054642220960162035636440906027424191051974519248184187285779357020872938414816661500504373884921256626698966255690695931149924019216695502440657207017889696611181558258071392404660327859623084655741865552883788060167880967222184521610773628815698021627201666638784592245549323689173293747644347170957912026143693331364557560892101884537433917600090320163296931557475355745520165725134010700466227092818122161084113819177838750971274581746704334808752491155924009267099444791074135483781258704171131951485761056778881525317464377241425474321240796514805025522671207570630796198242532920445537287844065372408863492825534974743012870734066157647394444992494151603861472718533251524051229662862322665105709116280369606731349005906241845488282494901829198991749551413677449612859446759119303000359425446777621285672510736142644794937447878636753243087463817142471451357653688387361800353843922513675231983255393287723197955768035379196438497640388955292341948035329747165078122783395557559833516090962185867068529450959120793883965398778488478755289832218037021963312187971324506012150376874192898047498913238643462197012345509102835897244893508864981969088681604408577875578083305034303313834183760826189461971096279811709599451692165012970062439912887351411624685122135550682079556460241164513859154869591036930986462222514815566461085273375974505913792249120154142746211168723718737998563842131485416109673961379944728168770502237631086102843632113713171315164666055879568923719214664397214603726701440879841325117170944188833307739818904989495086316610785327565687350644087779907112336740681410452227975364542066678007630558909934413709443573206426947156022659566701825424022888020239680928645073460913204819971781773686164447429530126790958285292477474441887245374085969276986059287569415196973451440022524550636982885983070273596709316848915668374820717210799995254078149593094294251780139034817171852275739784851294593674895946078801315460283870239858774279640149165746132461364188279241028602483994918645880725820829567943818254287499722800205456213473225219056254966825202743142221779104657233147025798033130410793527865163114825285824386006417387551274023103091319663697080986211161835536622192394543504583270156712845785066809897117719491661615361844633830039733198221580232179617571911650850661466507938246331332718779994165116860678343487173948695608713578561079123030996331572066420497916312178067610412491095471639576589888621210851871915665215070917892374428440292192532547555541043746352315785318017907237136780915191997706509566140056893698473216109797330296234321372317030749687651624467736746385035602503606313114116741097930165240492990843710342854047614039773589738627375196937253865834094639355655334051185977791592112834405289428980901257329597054344110915623292906710179471204088880083000723871537294818987269727245748437457582651023683035632604838639016582589978564343173811803782984941926309877756369724166559160532068553853500602005076903357444815961036090630749299704705331509563496777240611464948474184422227705246236261870523393085609755305936644709219251223296777584401761098886025675134846715321006754005824603739071372088892392724255892261608084821797571105684191106039153936000864009181676217630144306760025148805687186041229685926055548778270330553625880814582107668234371829831135447092895951967082970080766718840722729642128932543745763924793183469861660111930404383800571855525417348285854309313725495354033382831201194149261669655510545774525947445214818805170298694341140861866414295231607854684893340605632498459853513534871029838485245208867118775737256529101977410558265484842789636553753135003005971999701918324448325744699583293279410315576339723841000859240746864853908633955834173674239425666999503606446595899456917087703669498578505728763154374398069030224319493267346915676112367843962913909585190368498980281118978784144403964755024059635399839883443779938405185074789410397797817849797870024320138959556715877797280241848512234796727227183463333246156754370599330897019538438432422955431789883362293704559261004757835694084611241409205497360563224513139892139571701835137853396809538792936134524453045028656737421551805864251009007376385373465434695746218205820728117238403246814717617170981895539509735982980204022014704119133400188750420127384063594805585784881236686129966401373380778965019755286922491815647365890229300243730702983311478572958675346583854865671175577310410273422789911702666866370578024748241750071149029615742142507284887090264460736795197267979806924469247279343404973854566305764772142346604735251368324726017372320495810985358779077546972669432269430099960295866494219399521158099845861356217009683785729259221471167315057693366531057744937690464729109209522645257633002562702784130531527175083593486629154598678944354931614341581226747642666012868749021100583320608555202048638555531900189134629049721462640101701136217000413583600051668216851807069902631209544614001006745713370870332118326450245981112656330794728823537244423714212768080716613854485632270868375146937594902772475010124777186462423356444117928945718986595680134814082469662132791155892393478606125462689769824817177627768743826849249323283152251545301968871308326208679642205047768566496007433440189874274726097513861582935918890718346860146466144110368715184639504669864746103872571253109970934719923201406748700706274325934371899998159711509575210870905693846075938913055841234108983823112626450742719080936709663617000641132077900266631145683852253089448361970570501155939526930878686267595525222638755572181498265247404732997030647113383386197620795145058387119142382842581362560165093794008388356816214531427382901285848790883900448853309517517751692082191493685976679934847413670069932285354367566583514721115725445367327889728374835376935101828747055485823326758793513579117516958369645378157939496758692488488927123509896350442549233463756310197200366453543295307251469007138888352818289386134302890624718792964421488261767185602177204841864795002033698669633258701510339137828444036925732184373350382487340097459902804179201851323548918115166328441141531391908838046201796599459661312033328683643674144759319901608705721510420418049268317165625630789051589771181404416567147712803639773506460375277655385736871224077627531628079725706485844022168263891285863886495693324364948320442590018533724809764575195802029944430476689895145745791179935111255208703947455852642859665652559924379672242269883568953811662580620374530856846340244694780139238338631657122873113759471667792076281621361479134522673225610725702479834137455579802114377963946437360898913891460289408968342214570323587756191823036322216973388929669484119642279902716644850618088974521122347562941990495117092194240849306810606867428672579789711374585989407802409699198077040107495652534821112279427551556572733585222572702735936768620125420840923079803213188500491054443702276308925218067438551265489778082187679692542552052229643787638845660507929517221599786195357964553368607287764979408839741600901399064472539350521512900028969698939630491799038198417291404190886494411696170501477218286497699814540124824561510619905038194567909438779202477462224625297151742592306620630317023420308023169907893897432719073557079836457664193808094185697565563029001916274433002305972901899791710300519542637300547612371346142127313108026826178041079362805577834814938271277031154698025251600832244651034714552392831903390073669801044479167051553408947031190460125067953791160223847478943210058685803342936471645277758321482694862608760409865555260071185240464040743346695810982875541272921026162429190139702249316352311984569104489314380939941720856325756006060093761623255031044801123878055498675482252392030657840412200432866206633083859729563090434172784001058112619094149012421442134101523830639244817462802970058067739083983564998178820929709540837584469818386249598686184352432462438126233133782025464342857435278432774577856085434414908914783053098042602809572435193613724307540492458045064043990870251457069097964289974727538841616509410045401331169117936142427805008020919310430980911777958946987437890275059642331217885231413341132155223607391723532949670526811270571359790343885446877674943368251598041355816073405243465553791362242929299071895666464480017686923515150693374819738159046385453609463783373306254607657311513852468186389408948800402476096608064529662509685551360568144868917779173416743943051838641132850892409470240545197413796594395170650399373005825725666892870170712981347583445209248718228207091107165087978487808855336596406597874118241905009740741257883845447405998668771429184975146503791437256838613100077450336334320949309080549085942833875597914708840350384175732445375768654614661741286624077819760281220728389322644223386863351296825371397252945072363894128140199588397731780248464985276010757559938148129633112727609787116417128781134731433636404016972557864249496452769924858142276097423819993334523129929719130727891822996869362531830558229648480135515415819823084031570910363601197721217813860818974329624667175895355745051735090191570367358315596422792343812801981932200253892350798954455914350978348238610294217060860920708026206774364905512089307174479379568553181504879814614995108105192381884468768527293439630939006516419154739417401756702826035078018572803362962131013991944285570932890887500716969219336367207610658298213140725150451205906109264947474874615297688923193827802403911205415841036666083134432156189660591197934865437398578639521338657298185218569774727716079454532307193089538501580943835478419617556528723523270194755927684599246851201908205809902691462427036905720488888676759254091421314629940330100304751609965633409438167167739904965090488808685465471456939777350435723736560993048281860671636119025021511184091573111180351454638125451291548173326164711882609150352175316763915889388577574879021684046974673991587952885610113715259821606211498605814823849804994591381159078032857257308574180472481777325537249984354799060968426424238091528833961445402348202112937723406662308128833484658900021005977833010608023107116219357999764519602029560920240321070918875199578419744121296442023618964445231830145498994717545001870249860830672314250976872906543794056453870387828521103288094263655613980967090750266266049760439089522555408978070406726793304924941825743717142127394866181083990419121146789135210630938080516123963842779364984551566401710072167223262411071187039456491398807352057473845100896428853606850743516724310973229292926641715996275856773063546428095603592722022967821966674725127683496044445552627464596399011297085099203029344942343188647373879008231118300711190384060420846355910648622895578579018065663463843556927850242077278407542310414414059962579591562920907314013233796304966232288760461482956426992986805623408120865057080294265836718575894234313752521597169991287331900433102130119671457034973286054053724775958699369720352178084565807275958830849236124551113641599516456557315037528298318905054725350677668918919312942017897674813334979097874285166960311912148104303991758732421532506614977564680017379317983946723441999648319098012205604006137803172414229890287988393154590712142495405308243815064465681601187489558800829063786585131651379445568112135858705391357488858189839123159182810080172906106906782225439823043517037483534062239332782683334915220181487691352663180417663761076711331040619653990606554806194764195364793506462761608256673837347052115596550585740654976326839936437701341884655956714924241481093823060610194422327028987528654037738747607630130893088809355515341870345278550446657222592649770871798866636134749281739919921738900485792585005347318865497753929626021907119223574494505630401370338606130715246460071462565401237344311790492741907483074935128546614068766544576129933756878023149070533640657324453635382728315528893252146169961312966745230524523549789555762043844252179070918614817735120779367224925005664577094560430342849566106578716746282048663487645055141433484514286253123826306309714759209296797221784635423717390271434728945566372709911491980991963905458985780396469084938808455438306565591013214152698258587258325900562600490175790990748444369440713583346296151957201285079513129278665614930839439669119347319728376772598793055138913516308422832559419590360461699389061681954752739360813635413893408919971768909801661725061907694655598716877738352229056303885590994349675275267291063413563400276991142267555208689395683136176474295289462715214136782996384543152603525147416936180193891097037579330901105296225775163981110288871568432609968791382178570067063228561554003003498300328171403798572163791254090242678788453015327372816922206059200680220514341703797068310728837707406180734141839329030216705307414505826887627064385178264020266425038294392808210511715710563236534099881108578432788685116663877656805324647818279683590285810191877793818443656070544122437574045229465907966941427983512926759090757304545221507355702926399720962935056800537966756249850210200388997625053652564604433923519858010491820154715896023058756080067657962146649288112937399701463943754947930644724343168816559038816254884094791229874213257653027866150638305013822817531446314877024128026972706300945851517889607488190678655457215097788972023398226669699633164064836417033809048486018533100775467724258097281362838272683279443125278013651299374414438850500134872476499953431419511968394777964089397106925036776526869369404424675575350613357106182748506146697464278758729506680765535439179087103094631726695915635659818130998635380016116558107140637115870514908933941691144342449496643017403872234875378622294352931702144625684009456199576366576716331667405625526225896871250937115294230805036894870470520053202553989779051495829720115559069816767965161207449082399228774158597859621334083971900653487839074484975353938725194628624997562274837112428546110018543786491294512682460969052847789608108380099859225003146222469138908879034994419243384571502582820601945113657721436839905358321304285740024717163799874466348199987708727193177876108925687245672373500271916700622788945251580125781916403862982826117307158480803178145070437555733229639370958366103301328967796878553336852571620506912643062952719939264574150481013443560380920060101342909672596369690668605817860490037772755442919539584329788103346322206460083867114998718658460880902627778386982069546375648083478509142558122485418889631712449402594369337316707172261121393986785011944574528744468347147762279443118593212986565380603867008551266213848530064120049759814448340668598615963237485892831065758912069605428540770870730822282254141259953639455853790632017438915175839773491550689170220290059338467920603875760539781197294607426023089977035178138182247822721643942550354787660253940857295590875674564326046376958394418374997919708059649893655756883745489866848541574500319441774152592111870087075039935672637484701517042474664484453284612739697582623127420049613251939158491506884466295051927006330833971255830936078306459177795990456365849594121222832264062034940733368245863956131156536105347771594615768505116524627631160808838861007992141132714022273821851999550499902294333286271545588304334251468716523064211831066432943044752025965135045551934456571195131458513046731016166373544592337394159185540274885217767849201954360419140497291331251887429523054506214831254058952912825191387133546267042871415478639348789515027903019019335740105409947756749023359034472894421780201300957621706722947853189752252232203441362440631423128116901164071525099386106865395151689195443203590922444928713422732103197851727741613809554201214988102335665130935184948187883948294117175617495638841313682336887282321639856880059551336474441423999215688322398880860832157796919884662716653115166911831852825665892926007630849244568608718544333415470650205098604867629291295979632031457382260426314448984901039932812975737914281950723115376040346874199022356245592621722159913032921339675679264988529399326660959695095573818614436312573852972377058214757566472011391373777523095292149364974506366291363044334991554401472097537091148943795361916606661581630571083798476018970446212527548672280582765732450999083481173241574010395786602776258263845899620907443474780875246223616836883664237194683013288761323371394197732741234845157668392462095782775414124582302129864873301723128714197840479260372646769576203233214016059403702758286325618055733816886286188470857665228312966993578023260227754528627978690806492421022216370641599380164738780669358926084656989344532895358722737682029287586587206786833949129201147274357227427401013630658165464986459687755279614306425471017499154508078401029783849309358708294056431112439444448619892888188855714660433153028360013079397576317089222508930407320193790671546965902468400360197754829803767050884120268494103865729839297524397620261066883057978147067167837029273430540815226243088035881462270512725462688272912647813234101960352799721693722543016347199677443374363123708087115632905360928173140108568944191804726813589859576933130455444882033124212818505977755729651312473879761255692402524134274605337537542550025539808154237033662721740354627274980177385923130354965221974829794425495453135068042570256573091533685283309203572045388760988960600875453936053796068552601337730306877639257592249936428815038752160361587807255990652592037928456472249424189301122167120572476808747455732037519924377919004489267222334004453241594633856907335965177907443915598333234786073610524186253579533327071042163772099919150227622800707169096407205846224996053304432286776598891835928906135649109229742608386326445168161586691892862894843114270621282830195223122033021448793324797819386864881916206917002546821732622376282348527657041467845732227635858227573197261867650019494992981606562729305115808518317982904470128249558322646790810753673109682114072470345023970600628884930529564459619449505211667463855502941147612196941268639673905685864628037359070758682977664883771116207359652585251671090750904521627376519228723405795610812666688510293630683910879284786183208716550175536796334259749380398484983473318894341905932356985595231336314185131593904992097813436018971409998976147772548910016164062689569869763190494417928364043918293075948631501642151465176468885483492834091816290436860427035854131523006757167771127342585255924300595517466923857298935877582524612502847414445141090200390147329602969384550322683806184337147670623448061933233957069319008484110779102806056843567558491137122972619483133941683751520126822309491078966863659878351837279662917605890171894079735138019308661992487343670408003159949842313235152516518305555744976389647439457277026716664271587593328064621480786123371808783650604827266039048975227984646938722895015976552083738107176093967974365887602106918439222169144997034811668226341613329207498799138096548912536638150528463609711394932383702328282635329599380850248385462162419197591550796286482074198528951222833560709522714466369017119472892953663357917857364581963682039867245108635762257646923880517391617057899928121987709678253539675823186975702865943570766053250659195776759851186170875434648572210053261406706806878695278731845120780017670698699689950395347966850884275098642483679313878138314089734706854507551294436199466271317854808170239126879239040610639492492340145548916661026436373379940024569824410895751798052710978777389544759074104260157402932107318956999680527942955464711436620756892798981770074737219177154156612544411662910062916409699794313480722381763076827880448877827441026788925274834310311407693840566641896038882751153814474328308011684515346603938398817076063757444302009267976385081111954445640485910831441745795412833610621118692781592539819048439310031443784712069446934163818079934065715196439749681242147420313022016451619621809215634420543976360125177133059272403434328074114194922611521927640484579954097608125209607519660427051450413626597270176049211863680798404440893898217889195817124852680561010573047344602219712697398545548118537162906299772401192064072546747705415600743342355085071195756378302046285214344652878739241895811240268247732991182775961820967962738509017753788275830681416224981954488229144490038029900874962328996638276509685483539877716792878188154153691636992929643765614396463174446913133261763988209205846639476011647217736513588484279643742595313588503280153670079641419173292766624815802103965533100223220260374503594033288459037534483795120950538955727843491650692107383068473005288539967194411199487737503389969127588134594559659958446975028660888354619960689163514528178406340764305383727356995285340925269224653537738428165209954562124518756940926965117041859502026442502742042499763473648199988618772043490577529035427814515899386867578764604084189919702984754308537806119301157782544051508258708150954497101380290125898107371735866380816308166643620263351706080590453783087732790950893864291863615944132537670791914618061050564730494480783530486890854233222422378849866830524864176272357091226426255173636138950852088641691729049052312360361466301266616458468540537968736602644800589602115713058100541246818470540092405429726758710762728132289436045344574154613511378449690193906007571544597014521543550544135252229137393643467023599893470761263334866139104771534665446312019254989379008986752658553332568982251814395012147315622050597537564857276272657421059489806947041232233033497311266695110661658781760118640020998047823553073540374043324731106431834111913735515256764319782774884793138208373149575965413463543300637669228123018919048828190307106559956365834647664411568283138714352433190897327754713791817280416408734552435661236827128769748984921057517123265944061688122915176747263457527747826281006188533553337441855918881052078153568712669562218026136561730819208720725982344370291641704905067613642602364416192459541758486943079408427504445786388374785926660384569323078417096791351468930968889098391116579910710689606576970039117740058249646625650595185017222534347358217000516548693036489421574307233897779908716181637189709125768341920722040694280826584188245592520938475732330242471685715527678160673174999087115700563142020399432513233720061655015293411647728099607618041714896648147810150771891960952911030096289781293767671596268815964126193317448751748385528983215964142886785104823076663597441471391900540689955199195851012492100581233151512850199984527698220336816780461110622375242269282902608508614275396742259502507945516490824411316584155896655880060628673310623681413985878396575105953405394410261047222715594560254207308543172569626078458618035448773326062940521114208737112116554542261093544300948250530413696194803381222226513260665125677712337086669095792738603202225072747143846519998469667998015608387404733969748638328501713362881923574200756161695560034783330718494767804721664488645525499929132004265853040145641749346697965449277825394384069286105269979495651240021072951313306193520299005547398740084980123524930285368931930900209038658649517457457128091917501377400964224020854363392407738866465643480491435905223057729213017661913083891503193075809495810763393359334859044241155658881844548700293106259337056608404195898506792994677677328930089000983493498057163961244885794890860139004834752498042729150241038182815116594935401809816216250445713513585637768239402066471342829356605427537203151269328601899349874538829328026017568520573337043174759989416773380451709559794855416439540994941361596661989137652510558528043915694006249955364620871739535746371899406844873120231885459030186649870303209291081155444604417727790336374950746439409529701261186607683125464286630154404824963489688264654940502696279716814541816686129245033279010027071405460962309114830991647948627323870066756184093010337991263106718408429839095216233394661211148490912744774167478543741107622976049789485761586434525146517180071686022692153724499163227463997879547168235973472080582321966501939629239518501960942170071994603890755128968183073688149353704909193151822049509812522076436385378443582563413620372274745104165755627793780819408541904623853187866672188284655447376977122992465433533927005934118687421373425185710128917638457645723597666297199116625717603367283320480614135039811833909310879325094191396673479722374413811791296408609177904016179616578855790903176368456066984750747826650660586001121379071883609485418783695644408556681322913425030339758011077771031800076663936597670766711512889316146804790211028789423785752009818054186347457114001724801400664398478097960210516471237411221810638459899303691795439423302217556081954624579124212629915621115879753474184606416302862127420115236243456607524205906273779387789536249641799501428178994646193924275725043897999929718253561661438536039425379620786377794689516985047916953222067646146667500311153328254648671503911430635782009803621198342375848722408759447984710430703612314775321636142958551339394778404503119539178143114850225157678887776521034412805518717220166904740979525507918213472874087047023724468240052779303054515664296814430800485991628758061279291843209869747365304724395798943838937079582870379666281955252636649435165217948118808764529797469875126720230462639117234912113873572502588728055392236925117875626458966774024624339063432182024635894050993535598579552705546013729987054814383380472932960766800037393552690915446197641181344142100171885491667105764327668456885710016401975062131853541651113520547797369948042770444940011560717890509179664119064273650234912742769305055329501595892582800837099076550597621155566728818299450268972780350321211285190873149023217772912023038098150169881654558988585019748561258545763563543339920002866215295899714561878324998858928650966352189896777943156210455036226741951829432556910843140793203307103225034633560546591712864561480153233212927628752644564768487772397947501060456463839732651517820027323658113544226365465801528038368966990382523526180379380699746698974428450954841748330734116659843802340494850253360426302122684940706530484365689867526741422616016236135194259699950922612120937700310603450371716827090565883910452343026528456314923976555790932748307239367844192664941858962604423362163080226360578004072848019473058320582346807630926314620880816920843605538113802954441236069571500934578191225897067034512398980196298044903408463927904495661956308289259057024202953367763797539352743525248765784426112923643600981881817013805772890711902237241289390770443577629922754334982842243469160633816950013431186867946329360427321740342659186294488684780836002212502799455745393801085089290122225267190119938403978626125267874194536718800658154107963138353703051735553221405769807365409897751622462047187688259450452037971301564794645408275508827969884865704097927344359407545883271093979342699871115255021991594080681567849247028107937833863308669533383656599585684252102626684987175462118813710387931374896486426653681295329639328831476613506271384141278780531351290118986990797112458162710375991222542141929032019961301821922416343555594821950865706790953269825170137189082331747950069402137462249876672119048095724601867592522601508241443084012207931525703740651305983011807204131500592717274708816431984202742142528834172768556223888408687650679142327362867237466386299913365258847990926343396786160306357588693938393296277972162800425447167750230180642972683569676361878889736824339163276356581275752842261628014248699922012928699908801405521165384173370358501829697664138561729044485746694031712402246208009044417905407004347655102702554449702084552663112489353758886698149190869506663676721287138147395916087866886225955932741100492731909737086741718119032061804822817427197197979859538977469464380510026538032670913705183695477079117566887973031009215877169110837986271975787226847858457908185203065626265741363146580464636989673819292423776309736218943487573535206843345257142374832095453875344627399161619623858158098082365847781510442955906761832666262906022443955262879782360020132458638999838381072780767853957008951592110181943252282803270281403036683219680776409644698014276948232344007037539684627414883051743054776673976279720322109564838681337503621754829500234788222530845646936079410024423282541452654171394593435258647648595618786553634510427361170557436896159039802637687843536174484906272892782853151902488982220420118074903548060069538599952383736122840442462077217859439955884490510411530062556493502640750562258678217415779301456801195563167978312918225213127973106978190608182897750613875829954273053444926815846843513701226228356170007654981476710560369332801183784331904427230158371626376656763442944186849953887059832218239008844451220477621952186237372190676037512914416584832033607556890014245684709043296943399936406453250085529878152804218367049062808346868822328829026097249811860466167157444570805765473925510332472024422849745765065141591731387447693929596500544646969921486930034815743806549537207775301560406760427489174605941280909188693710574738886897060513704079803163342860877171580855849817434145957489332883278664081415400866714705986790198864073653118919519516055338828242894552668570504708296837804342985754216430893339821359754339417945045696852559610042468510805577924344816840908164689729134553196064374044242533385888989037871167429195188344563905054666250210316106962858893678333735206339002318751312897102637170879156930491186112422680246660056125572142085721255541522123555494424710576875972113519962921495928243808223794016519991030941994595835013724690015483274763796954344450353522571683288879277481071942791327504983174777936042943006757504619329342299478153794499164700303701463302673582499446758342252492433143991797411271789499850647070864126877285279263411719129100150853442178355971865577581347934053741240123416640150260732037735906284061517488553047629944903605415048265611333753021627267657708514745999613341056243827229432657766274863546159963066917751699639999789554216203796893741595942744456719716995822253812615325571826872467018662900431558434520047089057852582058380816477079536144719271787663863768127199970130630526278783103910326682351046852358706718039570794704397667337668879027538577208970051443117679627552001224512550233261488944789260164184694434937880481827826581661493946053138687821731587163788268170523718633512368962680415275831316183288202654208180429491273113797188820736854843582102208601392294927588073856983271135765474537485159159848606164615950377906203795108169015765358182845701644646005474308196689653258887177789867044697121245540797210877046676005099092896695014908136014233279607242571971042119098586860454492368989539967329159872773468182924111903149605460777982572447259351137738353028447480223658528747114066456272287857621803387139467976010086577259096440419531166443701485794427753086973027218494406506536865622096650077585621855860249460387175021228010447984814886688824982187193734138324382725770389198874901776399786453151563183110151523874071374789612762725427238998624502464790912516686271257296518056767707470860139892696560816422698703550430137604165396372581569323782633203155801266664899764529032637403290445608647718199380117222590760168769110919039835334773316888665160131034511889260247505582681717252027362576858931744112810166961584718208217789142219097484042433451660502999108572429853026484548784538404581096861276169466045567908742511054448873602208727584168253186305124858343247401775316226074773800606753741338708477904710864127814159073413893381220474826000524838811978291985839997926790392051946089295963527408635062272115567393977774837356281879196922153812273981548441125383815412586925538726946041538608778836215669676950784497947837180144502645579644952084268426207205863927915202689691242093899507645779470910866463673936923132986665632548723098053085864503050831679371701604353535700030374110976452650378586989032345526726746788586681451196488446650583258583992591978538581803741412975003204870636026091438946081443497744376373897175087417971020232653413920544097220849997578262703469093077589972861475709551553180215829255749335861381430765990766387361002178013722629160266227885905572681716868726635629314344095158384684578629112379307481761526109831765344959508583362954997209139379904540413690253467425322307246210048883861648071811597621714891286086601769822052557218538301542593091512097319613330289351966440718350654262482892948424529469328225428600163267342135817092999797714473856407177591658855160855811321538120978800677256622460440869217371491320821359027040614763405584181380091758813092218901540005846966844339572786396765456181293363426826467856079920955854195071447374442472660394470664541250698382328594595020812132646312293224899984505297797385116629269883590889629302224155364697604401801916480024728657341423100101515024698112817815050269626536304293287083924091303645564336592570290025460291031419057283996982584980918134398430134881733811126969203310479929498454547540895789020662406576773384148541280517628667177904325454619962758819432716050227525953436529568802870082353420325088147108870571084176392594792050299137956557097450071111998650482094422013871874373184334277168834303264143611932751499581253525017397038134118960063206347462149875185791080116450342623489889808744121999750193963722444244083494981327815804001753446130760546831067052626933225806971081294137565379203286324063498305588730214175454784211433918089361338601921289204070847138070027389079366008971972217463386281418277600007794696008197032090362675123221326498058744330475788048923175800203550558667590436795592722024933692220216204096748034128627105639342258381828445454300143997173154520574724146986098127516883191032435665818145173558258678535929002457524712653910023691386164166048786565428585113349030245811055095119388724711316130254675688893991592870767872706791479738968317328973432373916654899558616176178478252893160715345969508771317792433910181049723711722847441857374197996041742388445151828000631365522554253996601252551315969897633345066228523151638743064991965593322243908943113940077531388846470445902158516819918997807509475418142790277557495173637066038776772234786626537741106823143657665196169862357369971247559766568576480485635295837056037151670144463658720969531368364811368120206244146708770629797733134891549441725827332748955834835457617360464869428815366683411111709969410265868973652428015606430646055419965521652240956706029231785656128695307950947925609907101963054376500382923849802721148232126026741436126808456038319735424788854849139044938279452145320346703754243772214440738219562762535749178128355015434732773251401666011020072786246751088142886114946269540953105717942077518729262842280157796595669512664681196229181111929805669163580639065004844912120976082325037964074077575191195595583574916373653542826982546002372024095369101564986481455635975513371101469659327651378463518191807754096533619450853493511168470048256374286950018275829507605945418339284910545643561404067863456983884499920830336709499933183200520642073153104028414075369475083844437775682352074910788136560073764717770595396596175772871889041421614220380855572806407830200814024918148317342139754586429786030398991435280821196625025811435401935051725261861307601500574185322525582718674510493299907326317837699504391354971821717632510785956103191229988170664505226931073232909561502367685143647395445229340044670781351013285111511571455383960502784278941603835126659017198528917400796279045852449590419515065788319156402330894625304684701636645505502665564862507603176436639945252126939502589503067968009731253418848365836392229785763764802970234207682574482724985928927506831115180738264398553423321081776248656341222502581885079812378198884419381088029227876207615028375332377070780951601727169750168242837591619092372160305793290528951900768722756911694068692097331030788288219095076545152714363923296460933062718802031693915536008622857324355226596713573261679631417522160433685622620440204489078839097092032534271284270202667999119170438420848332732863874360044915701108016770442564556465012269125973678977024465249739689443620683918490792944122413637440926124408739531517667354231197281032291719886308964960181742829032585445106618037054753047617791901530582568306556020288645429038918482037662042238493424802529035369060260517037794205750843298673869287167075893266508071817928763472609897784371963409629097224673371637201067500831690302608222333957722935195201074114524684476811783545334541939207971723073446341097485674912500497824040807847177705857708733451905910194366545495549347521894204894849578791955632422592964841227170344106863482198348494416566699217138124032855575607504481853362177174222939744251556464599811560977655548997496880368717601323574318583524564319782323609183186404972169250327254058478099244273614563730999500233354404636066883648872786969314111414042950336896499823139368957607288908153353912383180337415458055850202530293163724013745434249287402402080348719198447222475939801523006835356977216743133104226922513931033898271863442141013824577049045239645559482652299152634702625705278452106881367178105498489998648436970177116521787613750197277864936030117258993171042613149527911503341185203760501591002502145629628849555834470359878421563536533372595985337821348541860354791922748919580774923402822577281889111021393045410950352146909796343765134631351962279195366392461685702943830645900096883584745793241677308085349583761003685995916683783643267073181556449043737543748689782409295773534827833647951207046328047720125932485326332817023801551598869546681747643433840550730550948908353351748939294104938594758887146387931397181925831916914084638384449956878958666985191418857259091621478156743473776133458499359535058560301716144957578547706468429741761435187513623839863390302061590659637729378973956768814564279286645616283621523160040546201311596773156703763270189958108838122325733057394541624980718485531168646440096319902094498042838441658732505617427739433697374961151322488408614813345774728148648080196693717206710110337267199319042411777049510228583350636836990342907922059174063276877913616084991238029098788830126769171746341715815900106369286003190294284579347504080476546025072426751769410073543763016193366736516162359372249823874567664457646786836314381603724677043168041915350677834535246376880361062816988883790584927324137725275042602583027570213329771769091937881529055760136370081862268381626443369874176036499658193599338615764048094756704847539674209283188562289667870260514445501335106829676165954899733655439734631857571282084983283999863345371540252316365005437640677129795145891252728445917252766640262334402875187083493863617105883125676870792679392629888581719980396281161009945918789882626374522053304589869563629362198208276475730244078705357483648306817953609026978469026878400258781258190487096213094107675558307166389082552655793444666496406148098236471046854422326531631408243049328784468525555710020751786637408179716198195022698021117356358928259750207153052627980322093183994437573558643968990621075327461985806187829857021120436267059971455136620579917086039650695220707862114891877678507116602883643517001663062895018535688197159814871679420034541565424284733654682314315946047363477177561807075327670400796880537017862333725743345398914840161502209346179987254514833767998306260020423567318884642611761494186981615395323211176684579081547729353554477462677060036594867668324599986021617142865357472121840491930607817621507214130227049653382897122162814152224750897793627515496822324677808319238304533350530022102511256549463591539108844953074328635862774125542478054470618365992362011545445694709390294128647606091099194898039583299667354748013742579902312380403938605723135618870270830883786211056710211580299844175950217387453382174310771891826081416268584230850840889103358054189377019272862721466113997930990553796376790788672276052838312545257418100014188916477337946022729885537056973361405595254614971555288962027549815548663864199434849153678557506701117308050409446270097991881298047849495089454929801885644925807912503804901670869516415014416276880234682213203062710898977011055800313211724081362985874075346358504715645913789330466191474911895252987524774030151843928427046884254352231368097624008394517342432935491921321976031418858457014407162099803973798805202062718409392249918739871152582007346586747454535646744121351959717444796200173020098585214942749252747295035996246300980049546850836356118064319782102852887486594037317612207052267495564784086058525243711309570336084957346777625880701313932104554832636693383041329570650661496094503729437919366296673175569972576466625506782870260078176179170974011918913932782217039428520407628538032578407337072080764168490914103436941808421157931170484337300019172465002662374305195557496175805268052489304420699391524450362684921538894353238797577457652992510232617962941702151603752310808870210979853084441830614743926533918681434213515688738919053109202158378055449763615775140586591157318347818718149700992713428707235028647665149276709694906934941749255340691771078699531540893355731125942625651181931051505861293146997016114092689248222748168549711141586496331827768928504643627035682208879392562444341558991530189539499494240658060718981824088050635043494167642283754282575757478550538799530391421431258920167453925825808497781214710537586352482746863087638118112106495144708065593026217560896890796082698572331317957910181913402232483274106184809690237942167611874409204479712150929255523057283928194658747930599205407471012274711255451869292961778821258005613257439827135610534583562538300937238240992666449780645794328262787445368566504684720084116177488458286808911612809735965606411677307815529519189968576187299927377124623100402128549420052718039424892465809904347338414273892499629433899924409649389753908553421087322624371038560905589734360159659048883366046104679532927199735771235858738557318179841741726064384925333713413027986438088476162660906495660559701469458985459313010306942206473401559236299862338575625610824618595533014308875833203527171845217707421576162122019852415795179780053046200343630384374200827505771267604458698515795602830622268989502320683531908893765544100276412070078927962661313481881993842378570359717942210201517673446414765115377343549149699738914204360368559758576624503071560750427109706903730486949713991109812001386110894740210076656824212607812142093407021786499769440847487016405860922937257341628505595853959198378948808945564060280750197231365371709092370147389484256343264197548013903412352143605494532470381095144051716149516735163306157303195936930609806954930860511197411987479116822200649388837404965939907853271355341165055409034705797499577874014054390789071839531415837575741187917594547189382394643263106846804281954090494935457558809682890710959378193024331354903730616596624799325110337282749868135775202428359114894070042986490182251671673574534221365091898915951681709602890244596062052822259450985162894735176165372926163362579993175965290670230989028127353523234653925966205426549871439327599311068106552689497091618023893035220136021371344239127942008841087740718902886455208799323370340757026219210803222869448998557095928996722367737024726764095611674417427842593491304353326330265962561300825909705597099684716529804463460879185721309659566840944921074558625344832038761985977538725670170781213356275531167806882924011034638385444526324438340725648333367980543658372475647659253488148658916626925186957179676813235087719644623769936102066057774664935506364719825434423842884732797488151028777945904001451742517007638802545346767952364309026944382229674808232494404543450961836148640714520463702704124933414201290931420289285407935835641432319880913134786500557186455056073732171600291655545048910689024628839414805013383653261839853770503778134087868668012715179833160840976759007825178370584437781272482434844164197787456648130134119505539346571640276437947994140375825209616373772531120810854292569602118113749752533078740191696559873985475419369703048078628583974208897576754076540790836371259581664111761523924107441912479991398554559636210478552164338579305519589708313656510384460624239279001406342768678823681429081565805758881251714932686203154363895329921513852021499077862337358536703004886862778511824624248796561749335471127411469877780404722026614333095376719700179981363116081556446865792813464079041953845204159516562016847612030013315048930050910553064388410280858737711190442645544554449018221441539448734674612445590931752507546382981738043408858575875164648147433160393120160098202898564922757892333840441670343869983625478342960276492625008893428333250874625733901164344325007291490116804588286341489363107383125067791868958616919180782577253318952614500129588861087206944689264658521879816444216441532314545640154190606826421525854519771172101072063445964290054027288489505074525676485357529424545246690249771204588216908655014130171594162540526412258345751014391496372572393381801354155724685441463930975103529935676441351275673551722611963950312498220617966463343496772147322955650901168719675988450259169544801451034095284464555788699166885847943349139955391554162793789461485264652470233964069495906128448468666707267245103248817847226549970921209994587170759429730420517741116265430635812466320764356244998026196382644021126593172812410822411440095885148064276775499383952606953045732377269761896031235301230220093521876895443808616474936426228042457842812147191138209520338813848447799980600464957298433725712002050685204332990455187342345538059282838589692016735486574883424615846065360229745998296147755197408457231337716003108134962013822281106916074655667558046410864822143184076726248225484158524807017221089844427232061921810475619417003863806627341517006554897580885582715371580728680439142228343749774724829162577166587618030461017735713598492425859340083954703898718017276017857922004558782729296886988012261513702642706520653098906359418063940370495481355469433863654797380238092973626073305745313920445588016769601834206519236013334575337438392341833975304506393636270362435693862681169865145662074640115596193532656197811755267168463313757163702856010746269730615204112837331028434993077437915229938391823483572580632334912018342196610716039110071406936858089962706713734354181372593355407737855652659764976216325818533053263229663241649389999481023785492185689049759706563581632811016288825936767983704715494449087356938677450793509041686056465590163211564586175140681661393593677721994144553029240246691922953601550002348601159280751512668468384240706262741449393329959201751158846210338076679378109416392025772848951384246372151518423102649187098628803691234812397975269592440278659222217927312728533353846912909617397838807121699965811342993177068843846209449666555880635153752454097717371329338854175174946932003380599601082238345289560462071879157784564899335305817867955036596097902218338269507846986073588270556569378235849706557401517691229758790107967513105283579098549751404075338357800558524554697810468254100450386089098813197271626057651262643444866181056234642638305652367085463788296130822430420580598922265723397496599514670549901189046067616471537453961013906432165623913994365764398679417634273977867480101499072927054997015313694266659954839338462186826717236623201240364165527096817053035245948339067574602940007491864975382028566015161135693181945079247582528189074602426548222896362165457965886578178259919574833869582395870482639822565022469775490001730205611006258039969497941497710645341431138062843360378516009129519749725111062723009183835517772234109013000160056775019136107204740158105950590039770157564405818571660456621901794670284334295901801492932229361145072024891475169640069719076282244960426821061840689510229452988631405297066078692530683230600080368290325968762643046557864020898126333252435143742093321313224065677687121043852317274931794246907633807531309671660448054216427093620110591165069926552427836012728344023045995291838427493939306776109036944076472663061134236021150651234257037246332246904800402047530416247190218452827802927163495133757909305120898625257915814605879305076994646284303188945733955883102306188953802336559839355707096817015437331571123231938578451285307621963901110227029608171162443236715641696047385407486462479636970560800748243165142180658551407338589035010060774048470964055880598188303830287377507088698580987266877336766241605149596718250043079394952932354145719155011378212200527605194639473676809401678118415692775622901011392159251387729913890796484563107920387516241822271572920436505147420165770700989828956854873281136567577674484336067472783378319386619801390958976749824759812986208385062126517353140850972437441072956318385544990405014296679638970213986278616135846389748734032067015474463996357240121851261784275404915782433994934174417541484198224385116015480302504627184874556163462778960874605139983588007374814087162238621206811052569800916515485902338387662729342892420603634375110456468414188299364164540193776005931579255582393137820802638756544760781252821209098131025094399886213060587211127693402629264875751449764032951041381921642408714216984649719659379344161257094895906960205765398854445063571409239375302479638525554962598345909554659537973948646775982564421849565746959959693479297219962885343293098105829175938665984330450738464891131153015040792065074672738561839281915290006654830457594276067730275451695060603155293969003462090788529568784806496176872723172065424503796466655426906516857329386876659474325063315357925310842151263406814149354372367045052484838393687724999950607467869658624781653097902690487773483774707676387845611463875420088467699399886296657427003011714688966937911989858091070625393316390911677225266152491556211974975582315777666284018992930793177441256845443614157552083187111837876730204812949058816275595661984019042021211397581909251384441784780476442405749207687362291274543559899483108635933681260659375147474945110757092230119999512304094786405776723284456661937176986237127435625557799079260208021507205446896964854392707173971098029398013613432436500040669631386063734744601550883455078532214029487863724971811625039074422288709584669022283999354716277231425016870820502243272671445247233756589528379075337668563836902415720023676241097095048806794432984214235905305324643603248136738767428165537435165926698001143612209132574596793066381289887208855990100818038015041219468386810592702390051139542197598958800940436391869045615791035457705266223398188128169900607299075373634272110326389544984714614836485266935360753580006725231130883035077731130807247012224930071021071697535900020405974383411921266502062084987596051101022047780093077648828916508883399083260498840362336522821203045473085681032876218114713370528551870297834838787195063445410618856887992971143153575990626027625676030793097309750787165377965091346086006452631755763590180393871553542287598666148413429886581125228007032266434471826641688115823431415367062778162540967691956521664222313671967727025782112117172298743768054168779952153000984039259773804018859319763653166353573462867022290699473245445038627602834541460178769855927470143410659502679999948778326834833408634587185758116532853574932130900540013532844731912854031099772986380503763180507377970333946285041008246298223113693907636965819472954641312314463408685224090993515751555678651508322723499449491111942071977189490235048381048569481751566541449932448528285267079852731570452941688956570185736715401662389273497170163710255490513621466452221262241408039466536311060718323730430762816417371577078633953763061571825233120855970503149944763231715488626287700496853603004971718440351635206349331506891960894852406592451298830964840490910647329259108997163241127016284448549708711056151370238002688917934129274412645766856213982452653085570538117139194098103807227206717846054822808686448014946070209143366763637344680852934065230572287084342079925142199622449540539663952518864349451755923594583771266776881437113494138576237578716790801181576981834134815099593185806322928902107724344675481981023235005978958671210454700660920668119890316820035231206427206357845701492361205379354926895649367332870889379610492968454304863160930449624990634578061702199648882487237442524470140430550694498886236542807880095142335457003749429228757416046020560599630133666659765343601630848570172285243499375579044570194782487197537244678604888700153328088841635747447981628411082431929389952827317023456468912875221901085398230313417517506813573410730564765997719890203759261444632937182104838597102489334765214105083692299717466093658376096549439274918901751247295700111464751969085259297619148638980017249416540969888361524494682462362753709145113177805016618876045189591335067541212090350630017789032910092476572114026796504190029057877531444292781760368152578827342656680662422461582365934391654678011950269377632661030017967701626287727271334160731504717319593981074664897894131729347968707762943473937950910490647912827744588365214044322843971245291051036626846676919174035011443680395884209539898143672989151634630172155354443579928327099510445939345422917209763795539912508686829575930186438615608205893478173146211995849386030185092082843804377780942063742749167045263857150773119163923029970494830082235485554688915653591942629505460233368884110933207248700613514645352956406373617783848297654827047252309334000466017379154724848264965682967921321263861476566076933892483222051449788697862605281732843139291988344059560829082323848040794449498717146287373366632462211918085480685468103688946489357093248304110306552569644121012237162164734853913918607023568691684306088369188307560201733841034764401465125903250255995320110698833241823331778009075753693393651073555744792859948719061582609055100689914668322471093817255183993040160952443072803198926597865950489823355028843689140004945155532200375874984275244472677682618189681598258926349944112846122377776843827216907677439239321565211271395678674621821895278028279801160059173580587247824133629301841074055233565846365930201197698003612022672134774450716985614276390156970581082431351008489944801367398588362055937311332437953361393268909625112720377992158222366773350931020051864293343026768716205503549958149016693346737063788404662149534651547921236452859561101407334562820752836402769183111862326602304689112277477581860067962416355219292918852212629289626180157696428421362046896739895144517079407613298931036242586915279060581292275037418347821024311764145393633123588655361763815497431503172406918096207892552884313854703745995863429067062451201912033371019877045210920149238692884007509445446921299119231650544277060782909362009141496920792739732369847908466591836053660950138885022802358291346329259184734522131527130753855562045818253064070983532507202951895955997597258328734898272318670726239295076884066680851562700331069867558139523264348468729176676185075369730718743167627079763231002068268244197522645919691583032226719821928876608488103895346404385872158866502652677151475778329660240424721626681267675861083650322299018333661394998926668168221912800100935392763865172848004067610623935481482451805853698587492012523175228336981733497356876233448372797568348039646832045605996693492093830713252376781671351996404105747602125041336956713026267373560557696170242712134347223991344495047611296875197810716746157293628697568912013549037990770721574301879566807495656899969405407742432758623233242018450885762784259623853613129582212572698787878490976567782443162267840630180075059839731608986052623819084794303607156626680903528068798777260044448111032930761895406806584436751440084868299953801244528709331728823402316314653607696906687971526590986614462570754863633105280758310901996407664586973079459076791658708846683870952807014151034414581398190962873280352674175001637204203014377853402739520073620522410556445325693251158527533977096320394447080864308599115341965579398300500686757778937353302272787842523315779405441507240735521746674584654977889862744807454395157220023467176405735162872155869308475967469351131394890308854647827328506730620005066368483771687557728085009052065273650279758088531684278150934733853545462099318872404300941701211820901323304145615150997283136545246791793170760893204918222853943121739565654411464840567572355426523863261152789565239062315000570161217921552589290219994429999540619889306748982697344724940933233099193095827786616778667848100984726251661682345547549646366479850508975535188739096261898203136985159616096532660455757631125457502938317693200235364731212200794981590110746840808956157953473713129052144516966265840971506750540699591243205459576000602861953265284745386239877272964264955933021669050215836458134446910159761572460135503284002663002957638332135486040242375655459815998037459137064663062546936094840606670364581253096773203389846800302472781566958694392035163143476948473573276434576423489904775161117564697909281735730087221216247298447612492264969495551786335755094690638999857047559665312008972363901519316915343190261929635367498688219214423362406060267979692010589845819589649668986927789112620532353226753528412423095051173365315031076136835081230841719015410263696182257184081470895627522550467099302123061306739812315973009966382415143983242705425088979503105477525331714135274185657270870924342467973437390480118291143563657653302259104665497334644777764479212017732663676059216380329178963067892841133190903581478357296704052251653362152692693001329991663160995480925465474951035362768009195988216843748397139059979742041197546313512763415635719476746223822903367474554229675418783130704485714518386552121862263560603874255999639522921909003374413181504511612759360367659619532456997553975537766528554025803225058128505311950288190204379655228044243296933997640305249081353142849895299875912043201953413956576686517745705499533073379540789697936257441702478731079029336555422798303092069060733173775222458039869172099898692005937905224318804304040278456661386089966983772397243168658247475765636190808241029514258026418459349079553220067177203693034895784744897999198701581688910348069251168367285849086169758662736452288313949536804722223705238752672745851643531077345458331010437368926361254488522110738699305178620390375252839270153940289413291149860368457689738252807689508517271736619566070816276107099272283549454032063603039825153354565629715103062993303255711879531780995138844183646462428544727699732520683835705418125585150725581490849332246158957085632693934441131529639963084787743324318485920226297720475300971249529870135231851368098156988535970276006121092705395590571274125560686987682118911746409794825322994947723616869298830399609171366961079427778530353552097436722602640985725392552202711154624337231181951928830747291855278955747442601317532739013335189151715856692389616253185766020735387552450094678754289846983010799046303655228826356012063614611881918788870739701851669661595359713335896789316738173410592303918904917655041494898918935407982350105188096676394999281967869254183394794009200368904257101244344733022463369907828906224586903678696509877940792268005702722432364272952573046069749629942759872055441093567985253900628494087405403742828118319264702241622120320387184020250895408731661011583300203413836886978373303364874273813936520413136521493464052766066942839623291533228126945027135773904921857243247572431145223234291360312454738637206330723680783799802742908357329457861975147782090603131227288461855630631790866895971405378639868913502982658419055658645686343867798998466467473047073084271724599339413015407410492924599343116601368626778941493189600502229375090784247336001463404599622657010891641493026758636496812323739921591287483598968408032758282765914629531332388314568619876691420797915207302315511297832292627084421295823366964043313209002140409457974661147569271676098776411677397560356099748971078377883380252795906747271140556366952928671708508656905602898857810787793770171022787690934979658756654862165317475636719506543471921628034925060466183465079110977740833058742177325641735296366782141270674199391116623493426603782894878709458251753299567524758139774875333058539044091870218327143844200446149435450475162940453296912630995169656202751926093570745188896477434733946602287196216148438588287396508570209422503297716307062738633990997529958595773182954538347877591368575374660592638838921703651633701395581586618987926507858966208176134377505360262370247748566937599597276555635883122368230764957749365480181989735050874951401303809978436829849469769123207955096901202090542972539197822481174030666987142675921234708305053219294458258876672103458318610836237733468259284899504363099040575178087333829460300876925633518816503750406013202924316454160189191268370642957056576355398395111816005307983599046868385747578346857521760614781428786071793555877128195024826761650200728051330491406486810644047188754797031905776865315355320883283938830262356436987419040229452630700413438454796414440062537717146508004755484273221137284900681180047132901789339450404782080405428986823800725599003695741273876866791802685084443586775288443398251287433552297639935007695395842811666823510127213027341250482126016688951430110691794984283118584838809275426448189535308677262457713002446426782886791225755230585720637887495976156256996230075236692022700517819786207679364160772332041761475956538964988007623979410153497518475967660850863275552933671232829274334453097705445709122390372800621616416500855918145344835971945725867119657900724618070995081887191163836186416959067000232464393549049509546509710560170052015797501436264633124878812831873650440656263343298507756093053485852625460884414378088422806999096538943001623676374022033139775259915932350037870417113720985615491824475938051205051395188312992500328206541347149736037918206308839471464836240633189240370624358031983957371108286639205221315919581034502854550914923769211359732033110882990196563327422741731715212266039220448938380621323819433152100201333639741133256627064624040677704193728024910465694358196492950582107264077092132333400898709154363579852725324509031955669555629260129893048931869663139539953308666212060022800543699900685839987383791445446207584422509525828041781525672812129988118607005988936262508667105550076720210935429644429697551331266304111547811142394918958099950568657800607924181394731427973967523025838961248313763276329324829509139302461166994416377842407453606296102886925821480600653001082454946693434096278057813856102661530945268013575622375294976827371621012227325239218675144757091763558461536189064253620219084812702522614598173477860859736222575636133144074544117269570248859939188551785638724982066946045174615353693771816183683399215455911078521100649753001495883039227594361122489829591479566692742730304584719693112865899177015117208559818997550852279062038082581944437554235805210246942533655675074873983134098426070729723772822524376094983127705142831342017536156087570010563069438960468693592333133722718467582938764676062221258654695509681531009970106755617410725248828316507444897267780744407651218040541012930011181482874122771611730174109707903597123407284741303844985362084470446436823049547225950922129309063717784186849998365104391558823030886696789915352548741333339761663551721988475629995502797398663410364636527001417128810690343473371742330168920287462220130568874110527310798649710462954218005217414667415950550171345226809605801146808630324465867450038188571375766435315801478552342395669722880711165771335520506012551796495356020734378662639786721263416204869471405674522489515557146688411418825679595863395961289748441361259367249149395323025143247694427959869929436864230590421345509160388351231875020418914941777148157501351440569305705375044624274554752028977688680158401345608753575521275083134244336979543222248522715897274745314480393971750258353456163109737266558673373128742991767106499876078129578479408675521235827117778040717787504289782769661726422763398395111597613853032438503152660605436024738060540016195379909569903046003523209462641511182020528126396317780215002089672268734686946378654905799893956132700946099617446479726845045908366058829941529324254551313710943450080689446277500478369665716206703267605146732134102025786614468880525692065992456765964379965197567141869701262433328269555907069407989909021835487968781846214869015945574671770657337347720309331231341788994105461494011750671586873529837075938397526187381766064212749341398714280577918111571385668470740213561201792405644486300611808191538367585574068761999461133275467791264892391659262534573551580579893622309162431594855921194766220818874154418906608046981914714559533504507770336683674300308761348696521410615014760041963630913064320797669203780337858327844628327213906829466640205925028832846186379030978723569593528896216973555917393649764479158330745504629946080682781656061468122370778392432397523322902797232042949251186941251718962795862101567347261013295929298019635302257302192354594639814521678112509067128620935905364411087012861391286063158981540118040977678346798554047267044221059175062891485364471394216055008684860860040812664494629278112848313066979844758220261556207597246967013666710429297975628429021278611715479196263288770201400550316148218576777325634727282803319682057101882518973882047565331849492327248322151539008273850959018939410623856447393870995064211473577316150337386877179680254380764861383568939937209899341546274955972881423841498930626159950887252792623312599291524073910741692892873042507389848962513859702653035428603105103657250397106724895664257236458252728507774644054847450658937667534453513160962881264138737864530924276736036432562034425915530449866081498070254133266134328711817668184687821288059907073762207547156311513274621952579608216274895747844842535138592104110071213653476574237702975128699240712880608722274745009208134364500669247810562264256426892465070267392970785169030533274078475953406938181075666686615537425142993250417680010020441841250941831301113982756574289202885502668711679261140944156378929948482839609460927398250793065729317033445034625175041371245292814922093831209749400744151282895587073552520785071356043737937896399117994360848593401539163735103378664984630795814557231237116279460062150694096620642380275316456260933735448539826917533831548381983930137304291278559262356639098891851694180866116496185706305486343684674652020614367667818160910155274514874286596999515666031776227837563381822666776822526377275581751620525701202266646248311983430118680346781550158342365892673062738890092342695970214041332344992228051415201935452380732363293671322930860182439075588497619683242275214161532077774856500341521055338809474181951027356878258385933641580373421239179155006483947144334260017728565036432446648778580702083523941726001169909425558033601841779295615887430708273302963925379967221235354533246548753681514721103428851936120214425372264893136004457867059368180368758300307659399225300228456617372696388850762901264626762671479113432601785097930756016197775739734675079644907316876900947916154976530408175198256092652729096583229844970079350760945281247186718530535465361504579274429467397948540690461011168173482652635601547079648432249688716782792391760458524686758212220623174805300046547135280529256992282367681762990949664628326422686891455109677718779093843940620638282855638144367062903467871661219452523091695234886335159055096337234863214725525084607018569066361020294573099709223784952009943420625750418976814685144888762669777141647722620157284468727737320126355122624649784067399543875699762146395231575389342099374245690629199650603820927198896921427980289996826666846998553231840296563626000507464210460024691984629805521537407276839899585584160106166010656466762121905138262277752930823460245016447497575432562131192993739324942527088079565310432662294548817886520610632829123507313100348211740067954460265002003578785855231272500989976656102793186092026821802734304779283459543224064947662994552937294817437499563798318796044708140701084957583460527294267147396932025218824115562249761526437027079870598326207981509673101406479727375082710881998285065133329406723543916198470585036439042760763028893233674228571706308038367691238030181476761382199864467864966373408062797149401427348367604647147617219442542616492680667419059407658656059767991739967672498467373788619497632826642387443225058909800653971187624529292953865909245128696013658562960731615988818684747621497711348136032206073405872741614262327088994054214368729024040091982866341565642766917288999970159595545327113277824427759536619088621485618706293199363964585111878891284601866492676815459711120443258776324117610839865963055316761176996365997500046680425600520925305034560446841992105315122478435247673265370026775671267270603306304131283785486772282303219274022782734440312361871069419760762245257980679321515149175847665643548276776097744370901690574212509905213172556261159826118089582801381249379912966730158362595733150180820324188465719205371507116520057552861474830350994981489529401636638129259016658790606146390023474177723748412861436408008699201244661500218840790190642761403247396053967380448082203885771473850904042700436764774699466152888928536816693403043007725178156384267675459112624332296598940407941864627481815431393723590938295728444465987229090224318528549832732519786514947697516138129947295334179509263495349582741225233983480105875036819767429167374961993621293763061556660689574809299662899108837766702508063641240993201913023424887824855828535781376171852639231561750033433507161319565152046566821112526997659766665109514363129616270332629828922318082687778688553075256127979709885072952844544539788077096424242726239061103434979509276432816736866530556011618538939527151214798728236520387717819194994273265453260388688219749298121277788146303888744236266952880389176657215910417120993641656605166208416584568883547908410217253425163144037149435291969096169866615749445441874106111010084818895266355264838452601690289070460939964798150605624567532930573928734668323049429216911243662526438261664361111897459268458214344836234499273544810198034158668410968566965579972476824313122932404863746420837254497403160184233248766994477064720790630173088388193862275117700171529936341894393206581286791655572022674275099129977875709729484727852031974002184749215313515138953869028859544797435972980449858743695909214636335482495376370579540071202104803469437267988261755956637651815890379935923257639318752419957378219561778445676252602707328994147674215836036436215795383449361822323996930104532623487650882433434077043658187195341340613136671523738815346339227101986700362629816288861596696685124928389849353839083367801712028035970128761395032965207448340935710901482033761499356933413668324562267346065992355098729055276767342535892494683310876185177048944840750149802475053067223185213221450789719845710441397915339659488166923087419394304755306407316269238619430676533985918963213211155134338232587472623308669195385928968810221252806714022743973687799046929165257633472703761824267607892535746676647652259071581013725294774878611076835559066830685435763943564919780005896153828021064773293243872550086905536575171389972424781330245972740433437995800442149271723337035688250715860453744871836236103743841143070900921124105415344815386069896484836104918543029840101999000084072647852727674618538961850264551587139832902982363218058321844023453864122375552784741512513187329538666540205791351030286999638422739274800923025973252686611139910818727101426167923140185491481347624993401680417248351610379716387874163736437632921213034338493830593467419834465283838046528303934993805705784935027237842456089827545300644166918735525061937907975471344676308524355828959621918226049056932701063746470471317797335344122499692960665735086240444770289564088097681377648575649905534370673769328362827552235634915162559738170470742192508908891692693598356183939727145535269856666198266990143603932767602713666643348922182941948475673074914852024178679466653185289513866508937525862784679337271359595571848713400034745323653186416322849097226543688994148486057572660467316920300525372851928231478581902816906958140985647696655487900797880028528564195347749169986829004932899359871536310278942706361740383276575949100885647619448510116437524720824071735045067447867352647358821091265092389124920445024799454944283647660283693331428745625860736386577873323607736447090648864732550792569709084404874218587564015770030519074591756272994036331088884354163990700971207963337692091617475918310513648200570530915654228790176596404715273207683155836955928017735044637909680813197906763320375164130186382211346282149118030355045638037485003704099727091694971981109245386370796934036423570167647343947217399180948302120366307872583027368949768373106693980294753738134166562057985791383068436581553524557366781821327217513114127815422722873502627541621268558643111229166205510733317753539785061993938339949141974378086034513887018513413181802319107554912525491097723111962805265695436093846958240974069320528493562803884992274514516820390671609960181488087140170616909997114915921907326346321319217037771370409639182335400279902084052155014233120249861047429765423435048913005091938527100707197171328832675697392142112907330055480563009022715866278802310898245295770615326216493355052001777245086376207341099432311078500147724860635794468166918175965857848223231679137962938360150814154074647915466909503924624788049159050303653432593746661562639654182569585228240421384523038645713290499254319252072027540903999831237642750090364371299320000674206959090793405861246333387512753680090743393986342345128267997536468876139648578790931302475435430608499796846382753059848494177114612189046476366173061096874342886633721678871910476418590926929786896497085450603517033955441553099837425455661758441625555875057565520837845328767255396739939522403271386238790680597924162118413912030453313681613416824965065873143607930250034623398890062047059549511637314327483827526047025658157426254029867298353588896541282669896210928380081217090466753007426809142741405451660520331818915075730010602837487581049947311243995020718247716102443560018385781771010489298244588000861939052109417076909516282928835347450177833553163644122600301006926437132165257354357302015353258199923588486085804426296298547568534822604222496435990664541005869001065720707986442741933691486796694286555347410598626067007968464175094536836065681729275595673433127542358361993788308771707061488283481998551670555220080765918332645934724839081697992429958555773528388276950382411394682641614923704976019656400552002554348110534413812074254394980983365417087580570493180027654783548290856044949747241474802483317865717320137378735432332435279848386403718238931375848264120913049600221191415602401059806993861129358761167137726274295611242411186494867337939989966438713884117779255112368041188988392984464011959206617281215517501328317270082122012699227873889060160853020444234871843251586866957169244143316117069774610900623676340574201895491938880151560233525418477993488557577717027167869180419602697214570007919016444175044131443361085646291893866468748950811990827133699337228738079441446649601898079736325258953886130495592434817626159082887839517026848047217112002564211313164840971302337626670174017630622407295350799291982567175358628955339335969343928934405556346516599977152007590906015556960716554040256514839416194916661412690594203501276939323412213808667297918453397536720476269188442353376876448728884359833388314254012886487051796842594112146733541919334269080975334351154725612142115416474761722572775206133240935125177648027720725609393446807121894043705440515261508715369423624574961963904921926836584193380305234662022340378404621207334427652913153860686638955692120020558040739536408897238623164798871344211636985127731625217050020283333714868905449848207787552856235209467834016619963043795697770847128745031352422561347731677293676823030650179093799221768803466330729099223811272166000206265253239122188268455306016310642062769344098615443418929614861226373933052090191904445265541540228763973882523524116747378106918423469981429274780761931160055850941761175587562492769706348891376556694441562074912267500129855274613145612194283053679472732452857030145163049768470456396229984759091284305018337514052940591931493930394954610068654855218660875092210822444196360819644413429648631002696267840694212816500937054657915893541347073175871243092472695281919788053220160630665971914670161193065186728617732517174770023399368326118415942537190470649432841378991623306549516702062644815008521228227798584035654048577511338048378056570115535444736718501144940031743851591037937871041355511896178013918588429487530468208857149490204745163212872578714456853112125344381833826818334513369800940672486003120381952376871333486354708567029697588268493836388731527165529525690176474779775634924726766799164636467706350256265723722733195883421008960265086456764755713998445520317114475168272115388712454222520354969822865928748972188988084811388043017501153892803108952130918896743147533199190440326532956586085761305047422770442094013070748915893985280268536217678399608697471178051823930164380936120573424421587663568004561828487011444236641348258559564586604969942489510869023629550235007872081104952874314751115195462442435662362179295357703536182200153343237286916852394039070183221828360580297718316146762339278295284027666784235304845974104190252374946995075265951524195114016789744976197814470026506827439929455210090454202898239887233081281774915844265309755268149018498964495400500978188816886790629360677783426817833105267228072287675339780487965310679909497061634655857721092411162967886146152281247028814493392679290985610086968867788925923973630087057523191725821290718993376523679573584587617118830052886431944516041780960316856112543546421325024881649584969164637269534179790047240360392148632460993806132084640554288490277095524458926695164899556024887836002945853131713390298999206967130267900767289477139238941901367690942766018613562740311623392653972572253701621334056184138013384580000465453827115422053553072531663434761642290646341114156352748618406692996119433205377543637945411680945644359343430852351925558785338242780734944031193923847769620295355350875638139469887921153246734582270109828663409346202090142009924801118818122647413622166177088297626587795358693924096734793859813118726311544535345769838050594292610505538047327250500459630719302049938335069552278174071915740236707168312007851038483222549230536396046195599132720691538861583636208940964093829083374719685821756099825828941203201813110566477269515405133550513552008448665907593653765565469645264254012681998935710924101009114684358108709323275851206620428167493582859339861593174632411157040998043712721965540953933020834997583267146459750967872959807721481631810367356922059920679126052182496209186923145661399831377061784418565777507135505597327684740960869217545920949962597350211370295324601044416202868820514393458186479094492103233141082760067500424102944349326770497818405251485627233337663365462836575418832458017021373051700539843826939856184765787821353710053704977253242959361936035017399836615909660099488107808799226680708864164271638985628869386660362282568263935577467124421697627055136359882739767416751905178317267536689988518703679861389643506270953982386369473357569149600188457754852057314580101353230300291944845347495585093225242329613522842601432047166921235158724495953743869385843831160072841937825113644916000488666493899206046468989131757562033133931746988116341609179775171660755253223205129303105912040947847279249899705085028578369018031059574955765856120949877112792009297633728451907847362907317781864530697711892768772185509549506622664825236824825299098460678943317910100335650440600728039588782426119280510351806892109596067099817079088695157777896784401714786073828818016104106221789937926680617755948781400904128849997419065900686815260572988946017827910847680062006721114484308756946010983578430584982821343165096627971248214537488039833241984383698501651996299836861055100498893581874388881997464023504714291236797695805789403054309972957873614953877007753701020966431081568678068866529152461646860824244215936086496566451757362433940491725676278187097325135450794850799811743600900273626892737539135624200033244624028142021255562331434848386776824557494550510892288880369800957017303768337192951684935211152229774845916962692029279620876125511978405660761375113879315514582189159703138131445905495499954081197923740254552444453815817787677683930986267992935288245913788846331302030747520160660873306483492300762598621586119900754050915583188900434567038424332750653636755132805951978277987408042107948400614914421055631298227988296550013515641710572745717751501035239501797358691545880594791179307721926480788034525053299983826871858187413967615352713209471875496154991472111508393686699716799272422052557687284564619176863438885797490685804109842065356733096343024997484192655232328657129972496026988691760616856727437929268617997635043289332790564636332901140200316939524514240699548333203773087689352385103200638252776393428558552421358949015618822645639413300699552868940303908483207331006119085331884401882767848370866152693215997644310864675168774346545220561990555819800918953908474280377083093025200306443407032883307363749803265363399082940869597250946091825590350942935278778681117768533132384677387219327562403585923500630866270901514305152600669148202111104921661726446471499824374416388757906677225810898205392649367097009257465454695562440389242846529551483564711449914495110459735209496885468146162767355279551677182617263991031063633880572384896042650356660241877309904962971677236436561932384994790024708339336401752386977568394111585115338850489750396496257473537269280405186598495912649672700928467159872184945646963804708293534642933167258566649960228311371257868025120476583630703719267935424368995110691321731504601371532231040788736238527007844739920659677763880195552681252598218669453002066591124398517048214907286085159054759546344799406303590382358656223271413739505667046091052764850650933108552009923321418332768373965586153110756201428418340421310706926941534240505537950397760799930456540414405937281896236765031866663451339007035521922062749193714927295315258036344120862995482474803975722026149779454229294233614675974602466335840709558020635492353950461997430691495083811229759176357342047513012180593141645363303628699299740307728515095073647843733418910597766285964427711813063685671941992564331710279906170945791481469318073963643355178934956300826662145756518221994455897443003327929266164675692329703175438069519379912702909819403129000307030649534346840802557082697904129716349442627999884231960977160685598656398912942231438858902430913089394186680494831987285802904428281631377541850727478851894828772399017229181495174750618795138622945420230955840761624542401830094280433516317928438530623713853325675384252023085700699444029919648705744976774826159339258771395098616979402435949260424229433002051920807808737349580441277554237815137627616370829163847154890428368312898575919514777481109402227090902343819482045745143352829281435561119270726489409794196271968224589628377311142504481688082953610657828667812865840335363529433872089074604243309219356509420996187070193538732454850525797953923188906894247497702124808339603314575128015867549218654383814240506995881497913201757721433832443662006361134681492085851971166736951808153191411261758004378887956595575884206458464051764899194996802743615664347492197010649463661492423677700863221107877990281410634621455970665963518709777305339066037976714968394445613219555490612875277294140611773095868485889463147553325252973035308987276526871659461171447906599103182368926267292770038933782608569676393221990000681287212682433591735981625131254549816250412916392982803463120964338843319093787375078871557083067502106341423880596249280790332998640248719767377836244713473238093430925095376831702493765990839187500472118171217343712188019203031473774775212150356414498839659308056491545689996417768946804172757451181808401081634661131349039388177183465387379952490041181565176169065325275513618764793924246337791937837884350895475067864814896110657883670018786434173369020257293171302282948768996524210575331316870222978223528171672917936507790943994297440868436183568432973546684475142451420450582432824192687417784919688626376814046409118582124763654408561705363563369162266661980039290779276208625287565098541847924691802903614625235568056294336048077585069225185552755939546674182988653135448554104023815571385728434912183922984521436664406253187413821924841834370919900535465348437434197391152025815468902041165622145440658759609837369908962550116595609521087557819422667033853479598979571334780750818072205004094610952771920288791145365107387198318096196135719847234856936242723301269692797173860711826995801824080918745201733136350148617630134484202982677579758163809370123587713183118462699801972506063254899861026519217175009014856186922026034720606643185324331072769623419817716691816517067440048508788516325930300401598150225940093834340713873688715915550811406581292680637043715354107991559696083559142876491107767141324601570849704634524676079599553956806513172831879266341495646723231087506031354381260460312728193619289193651158167823502597681784378972124960649169268022232317472526446530350199744121072836510751868494843239887926777793190882088566596254915863954467605659273880910763728883417375558042819247347810014975845397698335508889667113729574575883138266829883471105199338384608862710632833607610498072824912412968100891535394818612458152185573987914908806954680233389399320267710701982204054176873338177716005340232814585208379634753113144967883809629798092552703197123598084910658889510705781727597539410432615204935476411292975331944394215717326451000321838623001437589491317586096145516995891075100982226259646254688134558275012533067223873365945576734310868589324711756284680523868716855669325616212367173002672573567604648791021785500319452894234474975833476589277163007543853229833018871867767938595678477721358468957215518609362529253081381881540882722321863027539622289751965371150260881683150174679338651283697736917949995723060834409323618233632381813387873294245271902599992305295916624727993189507682444930914637602585253698034106878417630500876072021974633756520823200002697147736949594290595180424666535864005561568190207893248133934508287846893480044758012902836872548703944318216036482710042790749839173177325079737889832349014062953837425769874044431280134593100370465495787042632772684662672429567575866145006461348894518072585059990920433652920659830018077531258041584909246639548503607253289587911560264948574298612502921089326693182852494004249136886210349647494703203459198890695739318819024483156131091083928270000358956783945287920505571460525910034734000148362103016402817537031894612288117468532241868699259257471321907219059282877873271634962334870010904617413429894712573302658368853973277666030966338754651645565306077102622129143445513183207655751947404508305055366679633588622533140961804099151165572636341750096275771701761799970273847232187685702913824692874707221364925652214877272484847211057221863938809891330279509959011048867286935377018909325758188702556578587033189934113124537990119463289152040170715496049318416463325631796246015520908751393558301522804687241865169702532787306299114151589061566228761118415364121023679847742835073127980236511414084849689966397065791960793568995791663332824670292740275935513898878957392704066699093131220637584602442592000867537213028087775941955941425251571919363845575810203979333864392029335571626761516028549624552012136010615891278390869346119418008385704706666588146751406103096247893713172717685509178992901077134456934256428198891913117183720084391733188245408295117024993646380927064783554459932588115610952437636609602464877245852488868830055170897518347218605636785851634251064705207430573769163716777364528781167446721304385792752037988862892945852994336618296947830738373142315085110028731572102034421179155797488198134657377199940878015084673826631123037834174951196077227721251551448884808047936664426234874832905889277033871567175086048187512585049231251857983832181638985968150677347065692045597319773391902026582519384464645125218386719013449740180323909068795130747963888853562535632652176319585558454002518187961935269481439522888646197297647306601615839115519608147682942350120506052430903424005271762501681992568033879090978383027664481655019490501574538427330596623526657197980615616814044438452896590136479334545180354502145501516199030286056275533778355435289008718018607941175411627231916549057710569726393351322910343194654582447801342281784485523744594945668593192356039871170478009736492406087414250653694756088512410740966352386342966267361257141996198292176238383613497419467922705897799408448100393191073104987695862548068932492487367429392418566995950138651534098987437996251765623081033142335902609030852038226446101579368251326419832597362484201613952656169768006665711255970267794564345182524881493902921598163506105566058373612029019281923428330913936212159608999993056824045594841906402280087715837017560326707471405078976597412763206759883600986712146677534866202315058815214425421356537078797473816090819364317841599722392229614425409137922508762839353935030451010801852440272176516500129753634694030461781862967317353119779711364301483383373557618999244037929476914947260510289834852268810410745572443835220510001132651419758711298451990920110841287181031625090385800047652969038062512823129752280103720695877077284343774782828902339455755984053437390286503668010331957563037405312191598944935328034300577885260874445038413190049278711054839029509815477640577413595959801698790339874453155685392783313314507089557936249887020747737467460319867313342324259210907048971973232715341652608080696565085686536526749307519139877965148552355399490519305897952138661156037857870863390035546183282328342942763191003497073701623150888128066651139744653850047139036972385468749299067030684297530630716921734641173885251893829614239284131315861283824969981663058700263942457443561090749680362799568123615762233676495246325818360505940274877534696065884747280732890931214552340107271068973418639719561810625030373610941247523423755607534192084250117247352601622384050527434626882057636507913079150409520165688494940459043708327265032129862184098744925200655216063086108652654137495781819343383674019815789417248506428551039376894673218892043033052375475480510884523407212242044189998037985465279192286545613173214196766645342182517346995394616527846385528058369806491310496602447522371413194415199376950272974538118577225910196737432356382997413515623912706638326428637638781503355146231754384745095750833498721675064212398955572913491136223092995862532346394041869117861027284448224665897572213717474976326935589821655727566766204915073761070224836576822830750158456434019088947816117895825528269472382144229984604443675764183125515495396214764324728367018538493952563489312974330073206912268695971398047881042825693817969777845461753276920860227870615780323570960186859369646868724161649576641335728048892877363567463415257810011061166633404285049275182431792194994518691288785906985150934709266539937391064020787653203857858612773121402837378703540450307260190813547300789469828854643342599047843141984549730167505772831997980202598558950167997182257408211712510477427081569384285688636426937626156096338460844477419496178753172731500387927675872178202642210388652746512291826803187519766542278876761730706177273646312432806307957003484448364270961282309477153896248283385006837855995218804933808251099222122567703719259870159145076088240128689009629202172398400996132151292622064677758231233286810414443828479298600013237355858921879874939744146429184720288985504662083599969533554073291951192888982062467157917851394907962809945791217451506239766536994883250566618654810757938887318739301893192103710742124637116541511135112619011241010706459745365241383386188026167337774406114598979394276941937440059241949512591321852186884686744906152728839806598575544117682342186088717938165259057398972575667915654998180389892268079172850304720753716385302815171316156147520458903503297175453119305912962803954792653245616587357064661471286484910979650036870321563980701988015634293536687111824666183317209489767587123787030868678122557060251871413096177470740104975964001168256686565794588994545744651803045837319422840734545454608900865871652523310434293351251561272839014008044706670176956906711331502248606458097034359865523732610751376679824743563286197808152623926857595736511449033899131361434812159940632544985631771599271291550450014256213597326480621572354757449893860639718720410318293273903123182390235686956425860372561224336733089115200931317309659971568637367157683697424672248888229679212423548140471167444809445745904770723397921411251353557120435455064522397383117490085276854121831797492770872959263614343051316603043960388955674900379188894864892941131362578467724860455401535719055195861282576861102731870860624300685686855886116078222807557115134504447911722201896916304511340454349207569678886762116032007741200405635586778994941228470649914059868087870399364567194774816265987594339954347014250286106146334416718055014587828995232850975682091224443672593974393519265219375517131682829372690520094822832485648408835954915953657228572898421840960450501025119048816608512977673700108155155980531307275232366852751461181510599054565235461053649695598942348175927439478065958205325837386615999692137023662958343518455559389086437515528804358895701740928560079054863284297026288975595834287486388083648498043220975077547662186113546097387022064191051286230401458382926777701492763447339318379202423730383370867653612522838485467188915477856030956973536879519510345176997855817173121397410145399874869354569142718995188415841011335596589208898646521938940858373271477675858039606110351703226153171174014136633439111760326623397447856078232439114872611444791150682235662006516070412184309365723955204501731326987723410137754490242308053869462954780549756816891398815393876256299273723816005612989103239732832921108740998858559675250571789029178543009897658020135063554046142549534082181564923124713118998175950369392417649990153018661109048305363591489749590981229802530120699720491330095248232231411817662045027701019614466574498069071832667086803231172271759717399432137687046059858299551319773910623389285223006961482429092064093051907328784240749163188862728929916966870915383346012912965610431708683503303509257458969768771758035150085851811620250486941460918100005853406336904646337781078589455923659560379139694108452632703217532031507444888431281014788197986518245331032402603828418008483058204292638210443821488871781561344461087313811582962553903781942543394671508855036418850296924081833545138530614208424987487554758998085719869398716061903740026692782470752103766538157085523972910870424320553491379094141634081662677067826523761966498587924110185921096521091120318778363292379164618564512106328562110908234325648877897337260791301678869988769514583941673394301768468863877667442009336345848049654452093327457994941218810797528782959001775225130332382113513511264522116558593469776173215174087244032248628123686921092026446742294723862277959023294076388713720978925000119998680181663522142794896433772577049737159913080637220360946182484309861878941839534916276442304484596074393716081720586750600333971983288350454961274898949031608302318613411129091179129522670734618525946061537740737659085479145541168555643013883917814713961510540075498550044640396441610893493470720085551715269156610950306565001005170506175737354417998454900316718057939101007673273024532681196518115023170938662723347435092397906203118419213477561731186316905487443726351678877390514831194517269886414488020535433639171426518687679042845476416785567073331469771161382272644638305202793575883697978658554277944983906588733312841764650254971973714798502215744109227567396288204846301125057984012697732495227768833374786930141528721407984989008399261605211901047587036509570128736383050880376977653325444128999779977675409748469075419377360991678480742975988678460525468284188090127768699544518801343118099842269553444700575630731668104009639720508689451777834245833421415179228055845080685816370186293330844756658890400755284661055682223971294680245491293115558653624111518602570077981567379951924540592796649465390729401401016886528877996719361572870354580854049714332785609633600402996325430531070768647737213876346517595832498794313458524373550466930044259715285465138021772631201202011102752076874383518335915092016543500565571844374346400618393506112915046846970084095860835445039422891180715940585634722816085807903680003726061138187469779289005007609588913939488175272752678350046107964975755345531342485707469591874144365020450793452188730578527759523788612918928402812167922821404826974839293638633008994575553409379783962140333558994240308128520144021138468448958504204987392487307509975976819800985884539607251751552145355713636177714445515695722736940174461354841680387313822099276007712712285011632509739974604723611408668594216149697571500054096348363014342595465064326240344637007754074499116602834851959405320406075923821918317294929081214038554199258474427167352327912273010387203011519716177030262259555899051699437841795760596018697030578713970618072884979707231174420776044591856015050194905665392587128390907159161663866017062449149822480962127506172827662765719162269535242056840758049088443101747375907474497437339785898242619343119984201756254981414613639210858583980545208087677557849504266185884749462049043239663692524308965330960549910389877850902613396294737926443143216223677833643546840421336930149106029036435476625084901932551346399253369388832097263599305743126437497402317923215334636784949467590916005964274311207467109207012971761649815024611040132154453542205550448804185698072652900417025342163077780260597785987848380775370717187866610096153561924822859632256060741682578653897520981208318782839526912524765051734755938843599276752521429860988785775884040722752473925947163631736343629632123055733357240741634569285309625779802837178336859987068325293510246339205112101269056372668014411082340132699204709070613307089769232413677450786408634428196272053884301760390347496775094857051038793934004330776128613267060907067484743215411968204898803267830044934123217867973540479904000857068194001537394922957169266272860246953850650299311833076359708013293845107012630191561381024916606103321459901445549779731223748693812112410770204652602471811276119417380199044639353849034582015100217570952723862615266034376911403128596571304363240840115152732367918907189120297318700225737012733116463294717802613119018483038294619549050168332148340045704738654487384642283185348599681130715819992003646814912519901006288232941879441352328915320544844971356792682956295927640526274508223707894336600709712373978870523080004102893922529323144177652183066815881184932946040283394379649251218134472895406151519957201392050685133668865526774498462270319509827606016456275710308512878038783922421144058941530362841530573198732916278334167976909528672448105394620945709079669744240416074609325647746999738382150537529770040295919054355068732183653597832867335657633079183732508787050023431197758408669236097219375058674091431729538341886592438089684421066652098957946782238677344361180711542943498198788303186483966719347008511052274326417019849980809995998254288460827578047672562312366833113490512732146435224815110556477005183138917948869001207001248546155190480987754813695906334751950994327734403728737882120101877432524936046287972765968600439804360243620384114742966658880676843443450657031847024988866136553513762680100444557771896943944718876704182472027153882244413690301310198804891534998627568691495549587213592403747663530368777540315595326632642459248463476442929257078774622267482676985432678565993369485094846224725238142521899763038593151567183726337106369840864757779899344621464523212915237397752451928343692264193520670843142433561090723265339872220259963123743554504701047028971703547767119760799283789547145553297685583645983024239411614690715760573062847160211454765664444974555826161245382592514903160545139957113722245269736756179396307778479352212094067172997489965181175873877243556961955829964627222589128629476134198363069051781214092258042308416317863016542932872136702211920814960073768181066344572515184653968663236335206752275142662892117371986357818553099751788091207936078588431268738809056709133652802462036977460453742351587610789071293700112642638386380240217681230544729534783636826542687452165409709413185830363654987138692965011570482330038125321883387858679246562066647120151307203202076259541343145998812549805453843787411067356457936237038028528777544027294152193290926624068583355353217237758447203451431945099597362330141386047709661065767015731662430642568081531112378352306193604204304768434053269294092162456848811017835908612714590583785217532412321819494649738089600427249963663013903459809352714705672380858622105011215214927263485935404480306756330794259628623502486941130136762225077729650928653266389855326873028011228675083531626459179561497707329665988728846347055016389804883251431394178169639878970784559542041613146628831957664184627867627456304172883153167091049454948404160033813366766102636739397706021913168856581563897798072815669214202426979379845648442275285424891321576661374328077544441138928117151231321051658454211491284290591786594881304719506314559021685575958143708550536191812641841498980709505996260454057008073184090885919529128840663679082619801865135701503154009619206223327333989255409088406691784698769617482601994564502759598182051087590225653958907974057962407507402385801462273547588340015168495887103357405797753665951804550425146545706809566039896648637585914174037435807782262592956687706735745635114098250867983599242451414780823053537619269146543533124310339297171497496085285261953806011352614638062484220487326288074232046567880091078270530874248870216469807357853160970531389896111653340157151461934843485541652983519067111838676981612036887599122225044236662530551092440525881153882676241092793072324619912780219550818883915261891019016977596729353749596723112524657873480650020874599081987325862876111300925299487897332714387613990366425974484665589996695694728695915290423613511621790207118858476449750135849182778123702294453128213523746805292268074053302040293738427952597041816130034417186518795890831781866024737018793882810235903464517618665327284240612120286582778561943395233986674272742082218579442305120500382591930290614446712429411194240463783199669256367442144369403560257868426719131609483957460610028333671172287198416699896791046809723158263982978226558205036260918152473768113438218053274062062211332334589776789811767169452735114456445507414833014631900885457101068053948242969462818299159227047196660007275866304944708712114126208449355296783194195047955495144659031333331144094945648761235592221408492643213667635412401728738844534092971787646738455633776603889620705760484556514618663363303149429067311566679120658044152514738489936163423124909567907889889288133250769954937574184192146961954148592988182696381444229391509434642424811345128441931944948639300873424394306086549687082581417659568277854104752971148498772506689020041070532014572052837520681913732794065016803959316619441863234956391963296965557651922013543036557370290978068365995605907673999269779695359665993469140864243914765643086259704494684800615012750774506245885871520504411597217818341937070337447026314629525655569698757671511691244454941331329593280100548439833039868701215080030454974851846386753286863667432436234611667143620860388697710535490821231186369085490658689812536137731082832973199612486752547194334458352227351491010798482844102919838995146872327109282577513250731211333049134446891483772824535282245240938732259359307451320204227245830078549637585104815144716803949827639505689245828113014820829135870536297909420878204338870929160358189608948033002179075336597817109910113209793327359761270755756951167804546924394480223823820989064042906558821174954434965111935421350823886550886517288664273732793568662521567583910405961462244243161054181657473964774752266987457997765402811756815381299004859710796732538188274847574077315225668955238195971326646101479506439377996293734479331799800612332578468612540778800226303278801254660114327860396703734633461034957541659446497279660865359848765618188857800957102750580175893820891297857093209852413612055799582911139192955191904458589623238427290091397021737592821477274744962840523437668732354477381420461202173639016429489713508011779615690493189586432980919524116322740972745675170983552641800896712286402098664441772295890759517093509618648839596311546305030396212254980119967021725318410918113954200355576671745447548256093982198198393216957832518433194278948830146645214719469602970275683364118260970395904106867347698341749261270913896893903802482587645466246664447693094697157098580766725065209508380606599140179664132170969712413729103373706860052365555494279145608142239176153486920592075386074694421393308651001125429683608033101696164110010040864899477252493771012333114554095873732619169173025023813199756077412423300053743481000807272225387143315850413352612746146398946663994165170912040056359243880280974980148407877736036026733545143710949064945755174489654152116943118448602228520008949229256031847273616797320360155747899992505705286890696784297337433176925727176857796621959999643399827827082037704621030433060676282720103314099480420591229993528156339731048845954399368328180731364147261446614990538450699473173194275784240479092542562710413180343913865162910832515702491404572488348202662811920559242853720751651816780888093208237638310840524106534373728322908208692764286134422371165057527428375152597728639996659415628631901732967200199074208525968102907726084212236829461428907469226051444217696824411910392209326060812155560293545617416545113294513951905866177297796547614234438466617968055982281540225566668234210392099806700354396967933358216340410597265586714065141118676969721156470521147032689686493126181832926400090977509008106305758692598092865888751209543765695976166660649450657015185988336278451029355894282299472713448181338794291730282713087205168877477109597141297767345434181769503284061170039880402725359186026624055187027989247401526484795306828507661883955659655428297581568502360494814118727814566780837200081880309342748529859201531472998634637204916483429386198395700417317080214346646279746071192482434927787807642971180533853536578267323145890712546757228336527017418188677913414202839666384545557314772582708887383273120157449893202977785583637635919282790205793031117405263620356333259777491724188573460597088944097989682677240394237086406462498593172902121812206407766547458299867935334652723053290483663760493056510567711361804000018328318037731797420861715017453441168310030517412760110840878967316721498939665636325895652889582820072224820483786078530446257359330978248409155631425646489897917408470398063761406472197543004871298330422185644564455100428016687057966478109737462551772758526033013260808674191542700945667668892985264116166926813232155319476214246582232070003920805110515306304382867790306937246446437378687229113632138384601433140068028094915394712227930097367376087871911563441200453559341157800008938752117307309780418220397501678493440010444811501358889282647219824347627264483926229967418704133992595625153074560468242507184435210771783976492997626833655594650609456748500960486227392415682983814841009791726004554628392149534765465594286135127621187593955831921637653567431857247638440410931124203217020451161962908609467764720792883563000002366867497380804559892279272401175050207139705742156138002923383602861851364267067313641386409408554435691834558385313237680815657436007903225550045484769746623486180465141851377541645825461595675153303463502830174870349196669742402218727238669668564073392208760740813470345431195840942588545468982966124569832144790269330606965061585234543750824427848164303365144253654411258602379170891970164832244128730114272083825656312632025895390083204151232841363483663712175113955519749793056220155364539774838333814935605918350793826171441310613382100484187951216520845023972141273800754091511260729481015715933388907433045375941862354903098835292285467846002824931739970229286787883232120671101914065636231313310944820187336236738518309404532293179908955876020143756694740367283746187874876107215360891231283361302199313463028559973067345823253942998593511531347826476130633578060046823330224774541620529343781373946265179094299477475145327114646669201808062376559480425740197363289152870610709952538830810495914636365871443640696237776536794455719336559610576568505974128724643319517502467502501146475694851438219384337705191931323878841000031041222154025069529551075188486050361133013541571529628754209110441062477909566885055687892916515863676521429210749756197562769059427645969709941861340419328788455864506325974848840172246778140594623528830800945657979716574441042997205971005553066410231360324676709020796477166676669546644870381661182102527139412641095964752603932086044588199453004905855355835388748658340048678351217397464863862224746242142019249771778740961764925410093507899785195944647527001407721989065958222081280884939969779135177839189619189575150237244903940637370041000783863072662784582539925718512937781128494250380500688228169135920587508581001124650853530986734808964427885834815025497990428881382304551171736398110992979942785895942075585435515903393691843592588708989593274615193664668205458330722950447886539814947921931057439149679371203988029854974439492821494860725659654253132374231328200721682718553474185589590780084701350151925169904507182361644354501894884314493719019202275199693383225171086755067378046189351268344909494507680239126479500521886626556319838119215317643878036859917990049248963527172377423063367141956828212982253389181153327972987537217860480898902204308570147896293198479425568069969234910523645192000725232684252043289428456685040939386232705127614657486628338074097440354412845909756431132295573930655410495293609970784450228132135369009874365214288158247889842721688025063170034268973890842654554384378241154432213896734041305231413537764169045198872772108527866094411044305483320789097116930389712263023303116567602947340446668335053874748208428514941722836150426138369973715699176274079092508858262005947963481877031802558930748804153674904189670925483239718831120175626338655416613614621978041271138424741848856892454085851402426686654926292051113880237754890782722818857086920531340513808189883879835268929217825441818679069222330840437831468694718675281198955556455020713172282478202439550172408853448107704005584438447084951901873962339364539634711279528747078166253721081733598890209366390431822988364614512991192773566143666651933434626893815966936315959702135537599151222498425716955146388999257137476178232576175211328807546111896589932516556219947285679761156231299911958967361026417150138236110028781724384744438906591822714361948376098854530280011953250674663118352122689750803176036701107780706468641337956744036067880567153026684158858977471510758103723291912736149894227773366667235001634393133048994588828517256534639419529482731774252373024690175540021200141833451133170306225654354676417678144552737438435671029487825106321607626279882682787579023415576261712578392743887321547539651563327927565268424596923592398164941716336983409950989800230461897264631828214238231345807162327335093179842385063338158129981239745717760090766474244942169560746175369123283544495809504927028012515899214407084229363817890967408675687701594179696276151874586212901936927117570405991209331353593370793062969410462275976415455137791828063892684384371749315173944382498378280324015470741081717348544021935382539460610440920528493226369936453719148742004822645841562879518723112232423634682001242703217832131811474585621150638373706076475695300969710470756895899085134390077768400005728492483648586939073270943007564819938003376434596901403002220568935148194261098885250680155500754790575683117572149189258124226759532477123266870720830687449309635021721308155177363578314706354206739173202253578579130900997345372311189251041234743180301818914256275776344609962196634801380765694958776175746436752329650718270757786720939821754925035985851165309195919643503039707114552329644854214026587909849666933706214837722033269273408250217444647403400274025882785221613177571148482551330948625550223072286389415448094456466830111843564908657892251891993845334999382795592530162246792328086662371725398934423799494041324445351181749061316141623729148185134935476341817290967762031723582550287617549884070924533036155304820380491621952775805842281364407577599618939096040588116757198349630790963557819947944850155578712370784700167579701329710628564107542288811157394702666123957404172064544536096243122312932952111047169355405501079664163033889619568558967724427121370630498629752311385765927171059306613938742251814789493364195664905177283045768669309796607899430376976914562127384747360994834024174245919133333022809254114577160580855478296597678447940080289512318718672431153577025656344367487722186677338980801195552430511381846075957417564866636343075443053624200461058789026886385103711254189358848716850006700347944526794359969424738364892553583307385779527406680125765716896532027167904211637626263737584455092664271934902971583703621691032809724744621974615054637378509045416350761487809939878968414881438367521451928619188939757143612766241986683889014544509945333429294399884814314682578331884189076394452809250793500244652988193727044756286704066600059166078178294840602443169103118244542720635689932870073167373139144011668024901780774806928493678502846641581214416570615361293457710312490620834056956124651033692760301129769088700712969528672154557991444526374703115359398038764761252653585378136651475174530938992399259557572610667726535525889326688651042822640399159916628518040801702482895952523292804537855834188619729677622641496467936420164265813739098011494736193127741177680099681063052090278025858210709087907529906209371564437077497058582831314714031339472259819068570396107674136870215147909433159928168885676653686697686064851777728005015913311580997378863911307646865935709841635217928195967825309680126421816885871661877355146401258879800448712956474617837766381138882423389339058147869222716661134207406295955498233164194154550398830067002130811077405471990499727586735258697087431663481764012117448883697698558337349603838929612725545114816972645051302927502889486376805628651750498997383617808360868042398613732448342394254495123428122790903135327187299292032106118819118272309424097044238155297361364331641756676170616853933902254354234288482626925292833431499358547558925731172065486552890522060155242896556642548397958199005547622731143745526239332512945188939120806540992420367440747933820703231463736709263604469122297831757052428662783272466796373534899652683085411517725431730413493908033212819770412722971139938911663873901242310548655491397357313229162183964599632340429636756955428650877634271582884317728515743806107427380904525580399170950242147520281211681825025621639725673387134783591147328366208995722838896766559379149818826997269514913753282194690838370665829328085650356745121931804160337896111118174319532156584218243945247007136236882400535934883993469140758133577269068809813301157521292203140131977911605948337418896594126125122959688923365451897110744622463016919865086270738081996667419776194670124652370440209259199606395405701098304038197932188523507664846066944341468737980666350566059386249506707526944135243303881835515759957096606531255017034505561889912776260589707729132662417875203232266194048239878320843296957454097879483051440583664495518661604138375071692236249464628679152235905297886294696267853922519886436085171489873324122721373229372098018216464841104215204560322648537475576870422453255006480089716303636165285822536163849862666612225296701969791236560425216557352097852723809830472414093511541809334789840650034546316570661449896718449945357061007822627660821191342004901386213089794260950584333966935104743665229396800977533817607124905852633010595366389132223579135869076376001213500164223678184284351253658374648036070905828982378477663246450075505898273180110427126235479283000249527102765232604519297047348082012848032182086476379352363595624840793694500159726229145114135332577400733629007157315319317089842076010061032710530744019555251318200433227083995244911570489291999995144280779776416797988949620104849055098739271606615409737877354067259284735004311817520711901823996074049876933337822482476956368560471595294515787092104218379612052697718282741846823487902767901920624376763585252503629056285872934243781265315466021740698187082083638259200650409192503498144111789405009382878088144478410885517908530436849770162167939891692794100489654996051763654318430361166135611058487409388704052760971782120460871831994743165909904117732851979240985763000025090997895057420550468501095500392586913184351798959028515660655279357184046858311323176143618495198860511151438609668942762676188968836704744259503686806635002140417637875851346918751662828981443193907764866711973351236493125772531698559817955251101356202644097824374279386364736517744452058721034923485259734516558892040461944098931777143976091346999417798266103933034104376277190911973491054401283163923636317998288124010344977070872851182517246064780707275930230171723159165245644250811825577540354984271149082316392720068270773208393764782604728336497782893737040866627637389296072431042099439645637421577381046455469189370212912407681027974336247820857030928357025194714089336969521660364829809486663239314761603241125535305010991059995628359468684184790996193090980012444671454183277407203384535510708389604695075820727324976747184589012212047086251695957234303606526631746387574038539912474608148810953344513325972340258469324850179885492007916847551969147036937485801393422469917289985251717656530001500840990139919945353597708710739519702337678621345354659083998006546281540988381736278708970292122785892832712031428006084279558048997076449808972421626046089659452824251923181693694348092651087648750034441801201537461701000343644225491373528804700144202631085201773267054305923171423374367731214090407213299183839080458001925035380908323374760460235227654533480328635954719064890034480569291981369608568080374541416601147454131978278644470055594777321251110822795306815902939006801999069689753900697232071063615211846192321912380288823912885812850574632964626475391983543887614985289973587991440663105113728643482717629484065979269817966336407273105596555257144286297188653328692393304700090371270142773063920417371910240642375107336199954185234204896012822581131273450502382959044845581668675291336714639563355079331974623296072979611554179152654805339713398728752438955124373103512462372391577663606136954053466008871712020468233385875158639644618849412207051011851894510787326861674615077618965008775647703634221926080184956753683290194057841255171295306220754763699243667650569600103135029141936405768390282485840215129223522509522726589438035844725241765078023534816120204382676883991857419999782884703945421487984051129718600098767131961314322684508205176706173919552284526642064002302754517454660749256396612071770547066353254513318323090221927606018941399327277066572604268824979316511850190359463362143026484303492962946059085650299041190461030435990890939342811389380845931991248157032166149902080436361416199609203891930680964041597066969075903548792898597024925221394701587980590986084146034768441102711437035853960389998674513880503460854227762582914759291355149116831002430993748123967837028247184920426598661901514317397856628945378324176988285845866376017387284611605361538019931503733451037198599419587573176854082744566186458957137069283212324420760115174238932294701566583123329426436211093584552859310253241231158895250837842248190933192539534251795825455051738251528723178725160890794558718901268027982663716806779063492834610881318931565493711207316665501722330321236922506762007103245056914192458555266204690245498580019425940995217284367768482949577248063894834874611842930474470161920981266409391751094667176798444285257829099844762163954127333204698566215572187135605900399498524556750570771355630062293796923996938096734973716335310529058699805982949904638563729532320244443396175190493563608849907576673206630735505814729311510729789575338493135041628733700215196242046218311451370152946290733714848351233781355271959693696786099268519399144987860694492758094352049308074645543922136614375211087934396414062850022278245961335728169710444801027620141905728109845674934019388075682377432493467660116600470371746831508432970180659553373757295038443928532208984381016921039927318646734684723436791008824278065466953336523569379297348655806136805868829179998354799455416554013019894316659119494769189693504056931813999920207889923588967211386756966599937159135616855421808517448203103362011886372935185970878307654829381301724571375786220505212464275835184235833575967477080587508624010962828292575765131808382756430318267033263662834286349076246021792130351430230552824261266825649309635053733257338428556620240756003184297328684484498499745461833342869339085017156219483992467237289611351589866963516269126002482085608493804673343218698404110819031605181527282247063883774850511269768741403925933655886565467261511049059208355102916267565269240343319702509679336987868850382989243943449330672545815900084591889870861357894616190904226672082645482031774712875834255413467414785148483428015257759306592558309545455596577301737598947948246193940620690593104461137771836209802095107073736143949207119692576445618958694875845121420729063152765161930324256726211146347750341138430458927289763127397077437805569085098159252429118466833390085639567299019519773937989619653314112671131691363945570847092780878309842547772650086262079822868060588363045403669454510993982486365938505147836546923814477807290679457507894728343857402408831500340331615915594505107657653238588415291934447850569188458265837871272429007633410261761388087312102317668646353288785539029017302559262436603716589905695167637738565049716381881220553988917443601202953385894208514338889244960241455944765650492136096847229975313013973742304295951865762018355300145885240816274261146927940546019059170732341656202760951347258029569729949276898365518261671750733921446781474232995923211852973634262214513715642217895326094533679674966250889310119083149373978688852515637304306017422821251307913607392415280970097537873535569821431059301958862268519195976901374149576785972838608734072140681600368900420293690096209241851890043438630558884404837298229502244380953042181426281160083607792646431160266486696070448851371935460203209209254640071809384043233027389520269241989391719310842417983349697530520332355538828048127259758358695413990054770838554862806792468198728783759762154970744873120126069376463934199425930243799514894674893230087555888314429198073727218908338166353043467799293172793187997862827268917530147112624811126010465819209194933969610809639576722477442496236419054089284469480421716977615571241124619649983244680374821324403887288158989534854812594643886739460420232950539358941931346416387039367989048300980003114219140561384562754540195859532054101804661168779661595815392498527219681396790385411459328268034841992249391417612073080350546493544381185836283671855418986541747845041997368395571283958490341273702042098855591445364117776840569075180676415668645986434490625965728088494539058948888905441510358243557687756418633178785878813604467604711864401099716768739428033236057089988956139971843150636989242170109777954037542972352065668789300096309642087495078499063302610810871976040672043429889955184569103081286958628861544154523018697778961276441670541380295030021666156887390826901397004435085325738343742754157206858736685322551017262258533325556631731023533861972647382011819961976024223831282946919073280301576841102260585250243307652027285797701070709614027851212259496557068556172685481964069545796660789345967300727175963234553657838563761147371609990485905177397871541277134708224712744926346951298071079731290766184308165018979364018055581055076164946189248297709588707452155853460483022942038559149663484774207385888728945101694905960263433869599688593865845148769822857757623137346921297142037424822448116270992547812163670841048600634394122899984022287148905829310257397759507796593664348345483854688023106420153729190444355970968605063050644794744386164607328910743803775702873348861565518789255137076298973424256689423624505538463540333040885389684418233596889061792330180370523194159950846908197138515389493203416184317444271816442721944007253530162350643200949337820330285023737923851828095889083645998731841354686443972332922575840213292823962558469814861711386341004810881397021502683595916775469777267581417174924407761877697382732067038711831138550252657066864013572873887691919023407335711689388894630819171889209604820249727535011906602415628575978832418308913668910017473521644523675422447528034991159260974475309018548736245840085711689779998810969630237203742424628908162811380196204241896403173550297170830172481936881535195902468462994773160638937304124447954737165967016504583012157129846456251012477826330046861491355828482998243976940183588038596585900514720460736999598666445635964703062974474815200389341670782903890606009194064038925844086878612372610793320384983167677017376472186131178418153327759008124633828031971848793576082536208454233161423405537735887781444066150308308188269304362938172684183534850252537138284670110927101708173507151061187548312753677702373971356217438827303514841560489765034104181859854432744291519150692257132491934278896637083533061838548990687825623704687813956801300039217087481607260699408788172234594742931336511736441714963144582043731947300749166548530093174309798091528129300187716538673420871730772052185441269428676350912615680197834975466011828884701724280189356540669136560717228811169571674795752997867523642455096132242206513039993031005729905800497172389978621350558741199325049985519054062303605963006830535453921920785987129646208051141673183428716720067302266700336894858202123501117794130811791051124013159379736407126491146145210990603764499688349033498372783872458393870817288600797655097907197900160516695809287754957488918506896368448124084787918204599314110937404476138057788585155200342369071122629372883678590593869485356653265312699688404202984397846897456002502371001815049883077335554110751630960541188302157226483078082540723990112423645350991824339709343516372325666173527604992238007872937260592215088461794355006009099685411440385265116374918620357183650054256091759359916623627979058227843815438872181356624743878300163394450123817114110608343569514321162928156915152217654566964956632137684389638546803962923540410233568280950889138513727147260591354156523565228137577109153410143796863593413091040458632300558137039266691264396652818877080493102305696116797995864494251503502426383594956997259916011939359225807489523992819411530718528587340544676129839877808001975620136312534107366602942302964869432519576915811974835082185360078429843953628854062060999780950313893714928141193290109616078555405517304415169250355324122388797860868475551369353416114926455708672680069008227020593363123258766343137411824163716068923073864000919967295261717534573493028217953635608945561436096291703139691125684185012635315470931466477868981868369043279501356756087948182241174733671513693871882829033960175458122965028308117716608644476838125616454351065193132551552056676437185603153556538834594789968193205637613526202087808482168421512642074467873345351763723978423817137860533865854508535786044978470134586167334791915838898609131848757485376335248882187535131434438343852907117019798797989268135798908585901695383927030532645383604888518411270382738099017145031151894987797971980320168452825387031693057796343188800974848109384428715951610162833597442362623630988307258148721859462546732985273768603799364679705112848054508938277258101805440848276108732513088310477280377739582611366532131661386054907046604017849702397040854187475840724761164178986843996535117359211344216650764536766955436587131167151953427167628990393390835288520368066387693102946033960355732568419636998055844863932636608924056336547172055165011132538831078032676378411391426681985756853692865014923575230093011788041790682217608906087703033434123071106467714982840199040855573124147364206885187970086526398370004795459050665403102571015086209630808501317342075016180897002615916833614679835051143206323068529644782271864333590329211569683477850811046746474590675920495710506569831207437355701828602434576612336891302406667006729384595080476368192886001635438293444142985150616729763725606903687003970214645663406935641778741972023878105812697368928628609230858698903981376878085024784451665362018737116400454464739706972197914667769966213855536125796193334899769620216199495366111456530640895519548059079327682054597003976163284997955697208884213954011673498394401662125180551499723319593431738100022663658431949361088326395417187311057732198477360138247016279955891755268627822353922128109176931672779055050734023289925913836105961292359698189300409404953533725262619949743484187444960433255006564202897980714505831444532739934680143311554311448668594913171552416714544590080328615592748776687448601155355553604096955330861831566978540481072102735659164096096227322987737065578619373185342959342357531660403211657082774858050175798492155553563868697888918677306071445420334377055666760294743872022650974396511911704851316631790940398163726712814533962525522306600672135408786118696577666642012367905218735714997163861409868494430573812085145283387525523039810333186532203002596203499702300895228881707329185822027511908534913316992041016307673447555784320519331384253937258657685604068923704331991065534904092849239692361607690976396506491304440013637933349589800790242738947998819686346665503674802571290413753787173981661104451313223610535175512281238455804738549495871277198176458344645371563254735447341144900589725257189565409525150174765637647490482884919389422721855085953511794611494937027303662602267930324805415517033638393971484966963805123116971931732976929498969967809247893925567524630797346157897647895216726255323214648240529657997961063893706232161411664626779780005758592096547179541640016815660915180379261703114680257811821686588304744274859224935765080902322896459252171083160317379152712039993717277133034237490424838848928198371541242544673832942258134094518800360443867597944706481228274763697044739419334650804142884042954610041215313918853728633041163845138237446381619891167976581310626478341252703365931424929497392720536521218759938851878402098999400590325374366553005740901842391917911661261681523875881617203680771435096206806891320565925605683374231498791361591952162204630973317841131910471293198449257865223081854360196500361601622777278704935059082893808016491430160750924839471369606955002170938903657158462295328413241409815942955121526115238115277941278494652667328561039387074586056357773936114460371779577955734053382872011950131281840055797454496983508785022251618322459371010720983433609236229937973154732533581573872799846792181877627809354479070272708926589151120394956764571636321338379772073490622198026898176775767592878693883371274028563454271804118340373778841416408720789877301348066593505175070576946617541106538007593060715066847147930201181788784760030346204129944343944447698689525673301081594104444175888102720734125679740756763921827976741446397373679622493030280668602913809762374338940773227953941010412475146282196678785180718808962388338312960811930099206899595030909683618782149331186077218462582084541053984692121191438257979345495566916896854676049624552321645582213540271575531936775493541889513441868714802365533231358812502510823391280340989553984244193567776284851919977983927316839577489480521297431228654925418628889728823994049703942604102659071604962250481265261614954736947372865017576117289939763640460797870239511822563391987326711911772460900165351227571001022633776828390784345307886317663909132487949811476253192483437999616641978942883817219622054879253374330519461387441417656614957856363580578921090950795420482748176616995182065042462591911519194929007382088546786705921779424479344612175095474719833628355356297922042865620430036794424262180056132841409338678343010762249980304802570711905975065029953934705083614545851380112837358443141766451474069869460657936407234798758460838678035049012403588530402081445700820806011537323522958161604938188893012843388500307925482362753243995043423975832940048192917007200244155640713271652393953955501896142833387961686972113000278700408706806999932213528516060482292789727122486391694123191575622176848107310984381373714117841855832320450114235917717571274204461355247140729019754917503581717149841421949682467576603329192840188258765297739915116309640226413622916969132935153507974895669242914701623945324119325468127681394383015173597630892934152030848314226627029666503460106469114282987050371724568727871838506228256920379430691501407978823097938773356028035571236647974945320631486894187593575503322960944048683889646179588128479442822985367252732046463063193134180800153731358925232740851397349606238422808309964552140280670816042676017076143892564594869198170094650087035003947506520363450969002117306232263447697391957742216741951878228391556348503726104023093867094085436526905075633817204237182466570857384831237535944052826340828482538061226030572775099997861882928447645804764875479059243958126378832916065081855261751864507038672502958515986716387388991280889589573196543485117300902855687631860059337294753671229510150901523592491419936977444341634416372004329377293675398874890071719647893939418122509234945285914469584442161713859473418340128256544621632229415088130878952641863732534450246099420263111492617502803798290001405914730204225274503313133101930772131600936467041688983701808238709065163975394018771167520816343819470261941254973048587794396119137651356094202500201590569900223469461713827512963735056258560774912596929747579923653651879672059144675963250013769631097172480012444407007521850882545014253463600280773518536966419256620429932836550915436186761071938779960067052702114757730097234368540002184543335466764858272836871686898513615721856054440967968802180148772984632785666519129679124787874369387914982830241909958852293914859611561810273187025641932834138167943701517194458296685694450333314149277753791829276645500426208492522988638219912518593264318111360782653903245969549162367991177872262426576224935229979086500010271458041952799321586810292449108674978572443871180356452471332353244504108702018182116646377871759362132608466752619517494226854819292346393341495612887050996534803061077895212908490290476547952076094829914809330304555901335245853572855072444521607621470079170985743772639902596140027211085781705072702779684230633558594451800348720451283561997855696260038707764012110937659371109294378159186848177279445690331306185240554013802587607500799833328539011450955178010968671391917237633546745770730142804012652596803898800955656718017120776626376507783964500495045342707314853075222651568353149746954883508575198236418859569665478989518381561101586419324463741256147907249473296307405802781242984216638801455448811385248940558842348635912726657568643535180243774412591415334935934038100582661756008489895789143062031345705055993528080207617637780824441266358391354377700178281843457849015790758491825139557017175655204601253058216052005285487851594906997077425992915058856597050853757391112392632059090495479428077409557818958541912481488666616873333240782867097374749899583029727783697991266852472524506183564853636888890403038704151956113411461402627380769764190545651537273236855920669570878145824963243360111742532982161234016407965782465749686085725086978584512457454246718387123071340947881854784665076007838366156659516135461778989882119900260895754387479638062277684718618662329692489949692645518193635929477305543523815421295627565967439982785052228333960743408619708229962243562472834434328312411918934925369513713615684184814864241690343196409329841814000299773845159632442628356711949028805596074183172415475209954524647185286097962933986775394568452946782845121443416670359523550725157276154082841924091852103101984139257023640575774719620262053661687535836558944147364927040830851649954609435602255334688636650890341766473760543196851182391715050386849362886302534692038452978991520992372709380399200344238472400404381604697021267707439351890290130148955326586245892985271770243474841866454533225580075825920728932437245405802241860466405011132639430742110221203374911853926434841021042240370018142504148153241313370782910046202765761187693693107755925648793915937507783332468571176183317556135901612871122716828118079154587686840246087393712824564699209222816496760980867490447261046077942302189951487018574048231274721289190436152136957504263239803407018726552778180080419542016846691013557001996831590616891239195489957201177555608126542204456267079358994244454249894301419899090725422802135917966462724615762865119537590118476038899967904523996859370248923585025339336336797918793127029419790327019565734157390384763771613090191401101842765629103019104192994748216221065838876917872690667249785557047528346826552257274704696475641648059488457852045921447872708108638890370754512998026582067285142919833128528151564145631418986082616321206694755667366599568591431853217708545436606436265786116927715283848044413142358612449298726323264174865989629736174275284208119100797868419233898846347320901252123270415434352134713369340011604681079940382220298443186716423543981360281189958355425408401467622077389892404600564727304294867642680849702690665556275745351236668087621857845119328765260721256090622200324473343854330867775702775654783034258160758693301125913531405653809960014232380101018083953111095445958019924862901254243431153110058111057052446614993456389725594849308839376306512594324797926035597793381106507043119540459784328371306917558070414884550498385701412418750653477468293144545225098008785327722084858589321719919076288941717515762817481507301179864106537965925468829587217628150889285036566734475365279374702956246288554869756669794305672256882988789189899538764977357496173375752023164212373066651177217046613316459415748318527365354180033902285752884228659955338762941440539774332871507320451269455604315555576102511223631087626205047090326297052539542831232581442098251086671999342874135159056153031398722277638215324357929803868017683156435291505880061998298973600013934292788018975100858094074183506306338038581461156058442271043601187444369950488017714674497330427018235376949750978676041478565458926460475071206773007556575365212834398848665006349710056870038197219307764357831046265729181921378789553669987434966995569725431210328683808570884285327558627803828502876083237673007740542336200989986104328022929000547313133302943652028651123814611487744226639851724135720114772019159451993774981551528977631245382187625554503088477372162898712309971013792070438880272831416933762142945874976390616488778943082458925919066238758378585486563836770179705934432540356256239002507863385916606652728405226358046721674274885978323735848136824484142180724205110842311164296925929434035547082258177656867420140315689571024531231245531755926824691578568223152511357676985836019605032425174228197446666138163218387940341625014271055172158405628829575949508887237527286188188222402997797086930465910105461002108026978860705109565917055736270918640494713802698653075342529905863911233823064151305725925230391246017005458967951011032176806462582715677055049217142003112935877636013556467095107008904222481890538917765088760888406881176253103532885265283450145292530213531390480137452476128591923826426739221346505296570333380984763704238505751563042865573147193613074034729108258364465025394612096564657370551931333412672828961568080708768550700955302801947482478031138126580965116608984030274910094281573452163595386513876901515451832652590326773128369615813990717483156819038088340648287055779839141599491414613762253071228937966647366781498035344742908401158316605881596107107536973391788380649311410472088843152726954829227409191818548865847449026787591890350364199924656575439948315423022591404606868003318262917751995012979241053519998635254885907225920231991333239388496722465704979171765106227656695156311451855434876956509834986208208647521535803698554505929821031528370632250319266448704662850719545876008940239803192537139451049093868428104935164917197896337679990481221634862546648985350995713740179585255612703864997886501841581674157667163829353938365918768461572573124648265235758109083318909836791626499973614303525983365202859685602994819628730073565093751361028471668103634663023785588873208598452988094880579997086793734914717364348227064921987340226273591872395582599987061206722873045243742777426589867587580655481821651476261981507354323118815961071455621409725150771791659358909211306806022129519812812539978074149818494811399440122977793560887885520882752995869485649203988175730850483229326928776247050610295330267630107143135574938073560794100106312257394338021479694649968067857023011956732973810223428808923604805371292371241923423022827780720984528129461412266442859624495177424409896055983928135454098494945119303960206020470310729161727726217933674375937224710661933444883513121962930548962709374097860665888928721332768908509366696755004488790064755551561166217186343648168944594719305307751428262993117678098504874536449025789490791996521698213342616498583921714866458950954434015093174669013409873112357426552141348885919107552000330907480663147773480221467240032565560129961872937472933854905622153813114943787953952784886891423813415957029900425189933440444460110660414569616377326137408100429188808150103587752852927526673257700195018503196732495853773297269624996904862077526515833948322041630963117846426689835173178795539952660863140891961066007598892688485233560826887923497916021929732740862873909000149151192401445900656162717143015148659024724348332204101262529082647131623614904094977760331815816389628853644977228418506189045455472087891062098039726164946186704698797910208171268850352166682387072027483107351467628065023462875503270687609648611549086277891720129510790387884661613018679600312760415072753753835594957332619291710195928620758328109093501294703375508974154951538512335688989394908322188194968162628060585567714852197799228581029465884920699277419086793743574457511118449941724947180379092200933531374602420169578837694217747126150563541527634335321397268006870853827202479061847527830053282001651969756238499379828818434560696352499769035346932231388081715186517594804246733810498099181431073515431686065114364368664382598962378363268170239901832816238896761161578557885581523193481656454075659663151955143228409061695280725721899577025865877337275291704968447619572609510036915425841899142143681549854503481460542110849078014214388564784942058095074394948547857885304650679596536908326775584810320543826948053445892900146932790660950422935786610900424419741800337843801021177457059300069922766702622591038048916547160950766658245344983483164337135640111893547480843792807538037204153336121802224780701340437269735500521133258235317633764675452062658841660854226755767397533594120140530916781076118908390363006024765554615303927782986323050101487976747825493488518506057191843578895341018220543201312409924168856734916110111789657591267665932909585686759261664709552965776906235639714588323978517592758184697208699400460008882158681421582559407588236275835261166598013884538203779221009198391336093994032392193262977029161982601357278165698766797333045190279696508107272546585478799494125991888925823607125338988379629675065329379533803562285249380143546527737155440869873468918378492575585379090689646547093259392017518664644323824306394370141807046964205314037365452702819186841285131346768026756221888111793103118001072089940678758162591456604229699664754286714531738372014030952083678669231730863817727230530719399556996174543713962453689092389257141008600293385429578577330794633124336617178928807922808781950737067136500713309933390360791062496866599975561178467511443720137525404082681144846971644980239202108226696418121539312732155447102051786176401606176488176182540802355549507149663189413633549813660807977757555941205746552897324474489876138160384484386126760376541609012603956688530238903637940831141911520948551683575106491032040897653395582386335585423394132772487232650977800258410595294852893494896480488838822670752146703777499070411351333653543064563927517723650762343686299518760822420786055840759783936528847747260807592459204915176319605207523544902619245734814312606548216621513373230638048293125235493150280577802415831571131142448556165892054170767620729411558451300754919218996747717083275953418455986381727434800520196086581861363332173782888487512950731679687212899862680268122906029735399915037558433993273173691511705804239968330030649971262055851185463769028799756335536606907090461080362825966763755277526653857948005024811618794802766980561669400306464397736597895223205898092204992209571171665762256846213503993483827311870320374620263591917876470477091034184197968383952081702257840257796556087919751512516177123363226445736594807716592577454668956710932083109865056256794505727416127993100330494270972723248828134559691159388401888322696045859548075768350798090806227666330756319225350706267549788127838959062575079434268279540693167017622974934347584012092646850731749135329579906798455900856830300218374135992967910006828093589954104184915972926470509664455034615041491855972638682408322609161710734392393320024318611487313655201874746436481345165711280901216781860439196285082597564335656071739562681637067170431601570655992786883602608943482255005660375565961199241159767851179991455857654629709630672456315280818006506690203092796932826590078851652594960357604975010334255798776249247039595595146631128308520246710324368734034679917447485152998260907228272476122522657567085782704095443705379172366912861546741239419821705046910583851008399935344174666057694189865837062321844920093481331683551679488022828585105909127919798829341087355532785079206907031670444724325675625810841189319207882409681376519918051685658497841917224181146866071951429809561255759429898121980904881581291997149559094195034338966098933264890080854679465268457377365936926174401608911677290013814442800850869223322400679131706200537464114469863822048580029739484139751091503763485964258891463823425896721805425783298232453040465268056806462678469673453423430305654221967538513806116878330855967349498163346186772512910323169113694220181828169232013142452101896312690085246395451088303615588269771285989335619453245086500469314083368225060922321945086840432465467096956974152173400152779439431534099546687693579051444645443019588860437238073056573212112774879162733496417502048402412917975834651022017276471330194688176116941095088597811971942452358937962765822247683956895770420887377889336599723280914858252392066062007432301482247859646650888222966069997820138431668635981057831814680895119755457350854317971735036197137846706710107492441655915469036523935971940954774232910432919687646794041429875996670953173184701105689119514667144776045542738655871091873367898580941910967602910564671713074629019852425924571790870761605064079758687812129519559954208324739100634629881352188698098894068680229516225059250542644185823514725349901931055627372582318988038451844283120891430600067727914914416983581247535765638345060901794195735689659068066581596973466050739548226932957453890105416657323790201040882999157702867402966704356558437630616344777630773517933836252549620827334644330351686929532381801574902213994530890480517887784657635862366396253114469007656810839842733150942549339201931580570464891593040938948028417920119407720005985716823307515975576415445347564223464273934072269314887857890108558540937493479069183580965465047706286351197024800731705676403610495521942303816383956200587177738013592034393054174854672316784811709800480161811170841134140680223286686917412406775145461016723804716317716507268521928700621992228952356076888448444533616779360604349865799902301405350017564370312975098940710508658878693453556872319924386572671268389624789822135221942011872423797162329675322905240048553634563197166924198528616134595213419564999481801012122968070006515377784590884149949722516400918711187239918731253720918849741769422374308405304806589657846142831723447087866872133796909511978553507395761717361637998979601877224767990607622819748772711894294571305078584028456984830122829980868114306809635701946257334294045846826977798917207747758417071475836210131791386728000360802154721157093815888511136416062911213108722552273232047284651787093498324512643474796142205242672396025132446918824994924312874988359188552886887253623714128313946897469764546645714618404695879886826251916341909259108725743172722870851123096570865736863439290539042566134645148430830692827554147240671171452279545240090641096366097761148725768548378047001925792188957671619117839910241948299115798003935848156009440447370231095499779680613714567728144502567305513623307920179411584899270350529250498545014977395661766256149644435534539316173032314742076928372286221270735908441286956900072291027538324511544166940796157052402234553358474844776039777263636888876769646746800810889710658807334475534037158218831320905311994746281138428559653550563246477653245222681178778799283811563942708364928638142160878015022948186327361116641438925071430249934606528957859364699718809893570185249554195601159434698981447245782096380581496445291207141669980445071848724590234173280032830856640033871704359248034046469236885018256557677066264043617374650189793323415399926430765685716505172876692312622429467514119442322132579675004722172164136824661172410453423544524516197981249621855596915908163849275121471349186378250352772376457837889818946971249370310432427611701468312570385389818559108570090644517958073717573881870490957177119825176582561635124725584735990878149500687721499664483430837054555001258248126041436066093420857636529844315500443674139550128139549165241538459125705662669909112357056100591603318828687474522438742588113478601263536111563430396356354048041985040719466999199762273475664926423738813263668727433552087786319882540787100706384925128265797674533109643279922948971925338578283373517523472547587703242390388544663860544265916544173309394764353544816955013685273438407272529115121154532024275071079022597514765067691374266183357919646402905540747197217073024936951225112758109870819862919804471553348554421884690723867709846646074735400586323736541502131019692032536966924692717088508472832720246155200472832004860968340001958905517663559566521283478582825399368908308420146658479042332272195344282016785616573282023131137309012513128258629349495492153654028533926424288465772898617183254633917231795805005957733620871456317427629526982963638372585336641685768347114801693452260139785667701748435863889848332291324247833543018143022407506872701451269403918170163041247710772212068193528472718763603040803959742382532382417223175045109963017664278370283882712504397604510228279000111135365259178687894932566111158639783578729518198705935412564437707420153799085971425241204996402999366479536076648332181062044184353723929990668433163671987524738453591954750942379227866418955964671222833686585422401759672309347330718316413258275440276118230700718997206500292847817077292667823930457857148992650573615445657598811295684247608580475758157853961302733298277624732195550680466142283202923469758768501793706378207469710215214680415422999493140743795847755387524937738081319746419366582186721177824643664354310175388965260057899976947573214758445923527610816169083887551933027672937092662018708373753938067957316150708208755870324038132854689852236851304315769172403917572965821164900932251353025641637833790267485994478293965582636670531013571191553848073064846393532780162892113265922804482355259729722728327567894098829905808700203513955767522604408703028870325216362880051231157421989931285356936487097028754770536601576213913645659994693431771055736969415208486409066584798087113266786694339872685022253151908158618767761332122041887907303214938035116824558338872459394098561389126519836853245048077020084979817518331809907543599480883888077439749046401250178231742134078907806826500605773459511326929563207965699367934271176513767146944788316228400021299925974154059154945705214497534456151704380451879596410032032254529296706135369435575079767796914903226394242186012961321996631839835069788328449295689020154402503957192916782889640045799881068155302514150778333801259798026512617991725763657722028333682367684712981050829075793838708992469386587469931441785423651812931717340463144865379609746258471999606030654992417165122433753740881948349849527397920574218122304797439503940359669342947172477186906360458833703627612789893631365876540023441199037220522134889530128465922262125064979508938641579699359411870827188114994355132911321216606563422912657742626340996893954187616747231452419481225289125285526479774720312846502531689484193173644610005876499714625920569499429956442877026091924786676194049048353824716107408832139173554205932486870846994202156024275091864355647005225017516583113399439434104059400131893161660586258481294766195009636362503568203073410811429371563447544661618651884455377874884374671515671257386830813941432885143677514484824704892851848819490013386169184517099056874784905000477989990731658049080236667582924637229914075846968395768662510179409492005958632239709671625255666170005589255195311878153739395205797233169805160620133024885518211676384641409392811362264339169026780379344693125215786092837192198466237887179123680889213170236836149259029058151401918418653995319427474834358614802855494976438512773356857739492306512194906214578961614221159492049552581080972708244077345772842111754957543412032655385105021043627422138724210202094594411491390897264216323349294929403966950926513526032337193567247652530350343415436052396813474192965437582939664084784866178792219057900537452936651877755631384039586808276006070386333860039416581502678369057249540570413251297929903254059243083468693754725962878405256664104030651797049297761785989490413688899939881793900752022905381739979538980515014653112447508069723581372202864772235369071708764442343170253880882709813513271735575798713308145742896108897918556118669601201759916364885055145793139885846848900781433437114514304371332532587382593981070266543683152841840204509401707250653756927984726013116103690421769622682583400837356816300977716410065824542999887303239640312687181770008934325886672929756531127448192288593188014438641227577397682603288211566275779717965179436685583407373608446872709594425090273296293827393629550104401342957640856106955665432663834508896973841926660295637186475323064476336253579259612911142801985648060781418035583905334126867228838162236954926698523264543784717356567106805020515688439226551836290829653044354475671780485961552604071235047848585658287417730742873150950537254470025438432028658846569187820228774925154839592310854479818707195196142790220542192087100075421418570808768732640251805871026164648890927935114423998484274198778745508717997032915870079435081427089338314991215780834979514386994321488720268456313446035104405238444088969596020861045491180502395716272571399428380131679343704700858647580394706614100202369400659208049209719621889886814231329536884382002223880101938598739508349561864205292406836054134082060023697324775764028584568345439514024447502319411028817758857149495774757503546999188622623608233800336383812073361897051892346381877540089481743620340121616587587376983647071476807809977898773688584575071397898514137041247288341311098626328038889105951418823126151613161842305504052982950691353016987704630341744608747644086739969338612906938604394283912581564199435220452419015471236688770963945803913954643297294373767414522580273449898226717136251203449851224078232532001840502839497479528548599085668745742448025501590786655780704291685006165842763701749087540744449947003672338776495157192649880118185373622906195655539098070196083514938793987265883198811750442618447527557914969890672074698363583890763419348073171273036042048543726565180333082875328352570576510248262766968675057718552667330095097329723392627683020867383109943877325673531844041370392722938215656106952287172351936998875910240755772501198267924482423056846712605843531796340193105609125659342528959157217854757131667249288098688183513527473756024203376517954781091838164752835568838230087886203958592227733273989841101618255953898074404705495534925455552567325979456025490201915601025793199791632129123350062947669444438163493987430957695714609629389855730177830950477066775710363612015007668438860881554450695477511703041626790604095066919072005923175300058161645743580551503970027277718100178073711442129655539136460313825149509969141463835454484267374905541983592808312408771588611214292545850730445505664164302348319809536944170231822447474609575359388247343512054513263383189815263475478261060032310113736629898745919841646715888886166406496968969672620547208125076688813036348293208747656553330010170825216122387094073622033670806732207569460349614076604836281927441858505238185546482270473436777578120233841940069015859958237289532314539438172595310883159222011069216606153385658239988556492710995353151529000766051124044391797965239384934030425894921300123043939079594716861862004703540409268637721869522951344548103006788501813099429066538177600726606617530684062378875545151040623785473244712305722661758972739288101732381425913127172738672734780512399334627894036207208646750971011101357084976574632864645715992996285878312540413826921009024836339047079661456685121117587195879986671465209176836298539589863757337743562835543019318319292088085007688312384767288541649315199745708089377669612011357519490978042797804576106242663249986774875627349315149901581118100226553792579204718624007119666371510499148557229678693257732951818388753596179917951182414621667922877938560858418472883764576667124405364157125570933416613562670799650227799872775435049589033078801345773803534466983785225173512717674385587433609973190463224629501904366554705620169666319761367444638210706948037447797461518078483762683914013214277014982866928281947292184199499049826429548697036136949483119479153034605790985027949540285634068774409450498273632547554903448005361210851494877712186739778946489791005513179404023179918561513757671627910478115493746951000297493592038744059845279196073177385161238300654098773655721732154271268786641645460819959214657123160696468702485358614684950123350746378827776922645117949323124690379855836826578950792788324125694604825504317423947618128520576893088960489236761086707716458185346819540540331902946070126915653998862659128638321533065822002141490043964441375468641938444475018162105825819907904764983999595491872020967574479244945161370154971699546450858675089560432504186077972177063639431189603585510631313418644161186559522233403208767059190080418677029125629913735285866839806454499668223722006284294900690083713421121568772356131729523769353488179249322682276442869251109248847487121136729898757713016437153795920480765427166992994914852188821260589265657862882076300623920276708728891473277993024458476051810718655662333531088583168044829957987558919823072650950234693065362842161931894676657011854841713568812931077533104961722554816822744508783986906445898111758944928694962676698795232537318389619013824137758661109922956915209992516296087469035843208050985095282570634945184784336017947393768042995660391723308436086776348435745757369874182686491074105964025452944842360881985783713128263790868335684274623926427828837385716884723346421736734958452839581945669418390367451899437954868052012200249408252525680294691030774754984517802590054190107783210551046967403909392267392083719717016639191107312722200010095938205896762087512746849972246237793069081439488128279815715028897483388234482026615819797562245081073965118276204137652830146297804426837619156131244704497921445983166553629005950865850714235480149743153449564425911231870809603641707501568567235623119547444996435150299169518531910904510955654253998123149704984494783102798402675455636513260855238107912740156932213669154855267955882393665258146871354493973150485208228120098991872217124529816217077577394958938353011151879074572497219651958950549173965160632159354367754614995654981638072095166964037274244441414655478798282877217821705986388196808171428765424372653808408848312394754769180630247191547045901994875680204410532287723674044338476165597931753923113440882132221755015214099189314087677745129734647049122364685467144057136068756349827067902577097399493097219853026348327699264406719613306538198230297632636218809622517332449462004749703683160158585619473608744326243647341309084948868739416632759694239907699283158475425922103133598360523652929251145413643543402595352416362081246001335045483059415921358406291256205700630171119383305790122145265286459915149962679180525445693069123668056659818148176027231865777794593646105364912399758616098612683516877386907613641063225920878705123310853955994079433672786105782700638323680156411318667476094340097636809909309279121645408721589157896304712349052951254478286233931953468456189526089513911597548852545211138414390471438753135827755498531901978106538485426896759586003834111387895666201994225248362043466711143870412554581215866715052422579214223032117163359274799818328980734509025154741931158017985783902228901993965695085634818830326459119506353198267457979172386976657769229170318705266975077690919199830787619431048728301248727859640498147854728522384174484549360367000527076869831028785758323617358805840423461277645040141265351613036171401039250038292149755713276192394730036922335721227569639152439473509229497464440329166808197273008916686363200636022683699626564641945822433795596136338645510796519337189282009050372154670803031174514671892988188015084268505704372172376309066733317979083486592998612892141106022574299272333960892209698830166353567556757092105932300364628066371163777524412827850534327986019829650896871088923468940951157897377420979163413321458493640878427659438272788223170141365527178183655330376406371337548171876449014870995170244766363359430536673799251524835744091821810092602004102115043626857516731750805625139159542708236541682630975123633718443665603832764780541526398412192777191941208568718545987614153636115042383100678644003178903061901657086138635234077899975186283449948018915329280264654063648772130022287585611784862602384507690233058460032512712480838989935198864994634920898111170603373648708292558397761652275956404126324549559224907970994504517410606967805466846659906097270231180161285478791291314467009416333452060058534142223077471599820898369471671856166223042119415289347756224218142603704585078998820171765066721300145971626612792517485874323328374858140197612752646049105117366818379265650211071137819305458676472280355510730357193151163569438180288713207892594359224666573656220882460010252882878125175752364828157914029457631587254657698894600853583490469122558204335326603674556732652438635504365905626356290701012256299545096018704563197103939598798492568113488011032469434723120994639180547020915920721155955257273192423442290875530840371310651224199022677092134095619314545298890704948863715498787114281422935322888355592789373156379212601102242225408155961699603344447411912044198709693882220247670052297850070271014386481561646625085962716299553609702190104592773745245352918095837291671667200779028210061860321063214967778450481293693872374163998837653225761247097048889729134914543869009690065544964656290165456025679971276096283475916244262711205373491638007060191127903264429150934553850664812871485524045835857074894117566743077008664878253694849717089683763719591358972093556378042900296216008189630968266313864056876956348105958608578048213359421595923170977694559649037572445185575083318821618694164223899486895569431031897496757830300205155736938334626287845035518143511513893456709495211590202678514665200257242522284019604096623446835000816880385587923655939424367868389586493001878195395775042771808455468198286970971194813465160470511141207678461483522439817010774554106990413569566677930828092145135354477055166088192691082450653856739319370418615286501781447248030410858095739089105678926081861607099028716687586008434785562961404932241615289656296599530659921917777065802149860158451097366632985978549439733613685271544094935711368287146031536073031927661159017464221030182775683633037165137232462255637290765897579019301057223738457946273117798733949363050605628903776352970754491538156068714568247877493827704257769813937693543090936889478257482001783491216477563603561299093275569926642925552725724289537336442484797946622487688200129637689998478357737354755648254252459364296854506587554883313165631822892697297295206419226567479794219999226367038820686412444534161735389798927952688696944947160668678537058219165220239201101407693754134683789061727716201131951866198642478472843980477269947580227138599455077577097729387024719192549816962653064230475948534029238219093686024025237844816967879893213094571172387822536699561795083655172726635240492925442018312966864486218237997792543453084885384182315490649365184861344724908481263646311070845233983045830473639134004704996396232516783506889646573609009993331006724433444057402301430281311805434068594453040708085181591063151298953492696703515974214730696411562508777009110494988442619104154404932550981524982922382162549643419921817041718345142548592592666295189464178191348870147843826826932978493607249773777436856318177011419427142678781172244646744677303060367676399206933420244116324475305734991294053640975254996091982522550367174547306274711217036574752590972833348190643420415132788391228945778521902980839377903703917619050770635089143578608675741787904560889154106421968513493298740596562258992953762659920553031073564590421406947543155228330903293200442967536408567501793926658294218349950951711131020420878134137119538629790653931762275181597211738349909698904488844672988204668588976594980201584830854626799854435833181483304268519880457376202514167541452196209039975040757319184224689664978170031113817050704158253630715130830543008710367523045440440440802037710512692183534323047455047967842910591424623006957381595970713152163661487583450976789794875761798898705254324706019432064194029029170007116653494007932151177509570195467200351584248588486308817970844660126673065871710659197948508867441030098086020762522117164176392288848228576118847243560307599474918338436693395496114024388482340983828384881988572827228158534439686103588853709526373266043816314119638344930368467798059998227695643746664622882002541121843476769058286012551212804507913623100767124914881363940217936065840216989862175652304575922300391866238132181579434071611535074935878577482735112393348809303414548350691349095461434207204089739700108483364884180099265263684098181331258629656617033998604440620744315647184924633825495088052503126395111403014237158988122241404607136735550337157810810559223772836894544785311869633548288696907412300753567444691795290736421476682445281026075669172184421110700811651886494894029353704488952724307900675048237990839968112681817873589335352883563341473119517489757105788373647394999500608099063432851231549783853575290576088256781886050090055555352915549147763109783098874806176108559973262504950119861807852234095328407706404368031139619805902687069129194834871389874478282777426505631998889152125172419577028954858793209428472753975929644524829701249908614891898413039520901000104654602526472984786032588960030693339932455071068086975381260656960320998497703748447241266142439552119300378560858240268288577461654732121563057834445362763497526669912375759949144535603931864024953304661889598123814054397202835902896947549564769665286317246633368322305246478708613523594852939469531693118743827797080403000697257483132264394751264385081995470273982265434283391284357618486845519718418416891332780216683357354611350200867692278473732852668749202544452894111693873138503524910331762134589121677736445996343735305253376631984102606193137677636287861771175741855299402820090757624763713115456768634308337820441984789669210117537931383854870248038301712166962358831866302695609155281233560460173558023545648984958585637602976702687200416896302530938962120466337261164497466033275972507456487754105562838687277057174967159323768587835210957450735178069446301563171933880838246245304787743796215944007205379503368653993311760683498937793331200287800135645864058933399607683096703172298952848592578707043257142934106441348258908052056280058316755147959133704261876509809018661851538225454069193210539455950685893282827118981926436249282261073788069144468566755675861015363927002745651649443647508795390604576742764323613600842256019789354228065405549995469568130351597929206728221545923480859436992325755290749136201856611799772632342640008240252761028994222903607068156134486313646490032057459617127636832166186024972292052072720842123665865388799704467044439065794459866207375866760844766333424568234673278557899485766846344467502746642861454146048114498030520823102750033204106884037615711614919861915675555572395639784874479186013299481819200065774987580847183558779206178578609238071025010138781886687354033493663434204881755014234649842069171616514199007606760873871406825182787627261416409442531141976256949331785640304450267017166918188827746181515295443791466261781515631759896784653725232591386585347291267782165689411322488731949852433899091582452276479433314029839091873678045268955882707788652258765861923226580036375481568362905811944386342014280835557816941557805878438630264380562012631216298150450212074574418845469927666774851995094843676383197439468703596677736963505159714897955750280568273841549519479942718930275268679592828634594398224748440575867704727696888434883480925335298600411312740245223023285448643977634145290484721366176608734742196799077706479453296457193141795408574273652775764439654908547179555820612597372076881280766122695786086167953301275474634569513036204703583531033944098658332328848817886118753071489188874141087506756210316072861673826295447812321792109308040049800599780771710790798879086053915722914519800568243777691310210249235085670326475213855364728619416096594793377976345333944585580721784566460325031257730267795108574923080785968286432721550110742789090292261425498989824861275336155863586430618868930353896429260203127229657169833723452670718222219537890054760452808856292852954070278708368040744328245737983101610801513524738366638547312731666738618725199894910511369275948817800503369745478500435268465209084633201602292739858658675466704783812668751482574320440702629331036912503096918257100079738910296466608705909921710091698487670882685152605486825187015463627009601909693482536610320493468039379525353724437072041443150027540321813814106365383066712359362902078904093390079311300795695101257443980088719795443072537602496004497238434186653991888933387623361781779298924517190620636893429867484023847028717164629391840990705037815955365011971072846395101197024039191513290388411428708908327839886682341220240377189462422045260244119551125660550638933001295990759598128505548612618021793208755982535106164331180140773192354666148540043215273169052162438790522654067634532116143921854909562352108015702836442143179792570545713225765550754203035160982952082129674734735357505935476190069031669986992122653489228045788607008002403071812864215061425272695943677346792876750186160109858863470943632355144592020458377791231444990121057657222804254739848675930719628857119068080751314365141809819335660176701490223889819270684215453656456813481928435781104115821926116049589279915823241299027546812533191369798572780103923219395862183053233929847754371101707699032645688241635768631243123371633307547392044326592391492620142967114204596118935779395027954030152916648535653517779244106071626053856610813049876974423534865494926339532230519081711102145584956755062911552828960055436945747497062596526386626959907938569781852304990236153625871925401955261411411407182300356752193425737547900484033398523053408111601201412303888304630351838872277810896143440976647722292863955721538476740380435902026334867057890029433330858747354644250230225481829414876137085776062962479605649426675656863412696449094433722598182586320250261100206925450879194437461912629984631260142568500575850401298136894449890970803839748145197030238049743854810325459222025547390772600990714691568631477305075653514397498944273166314849891882734587094552765563274634207863366434330577421861696000916171125807958153430256945762566188842759955544341603130459159268271272345361963089492651667835248164507794512548388409193597832636165720021504448954627350174924608082261540601449485392244329988374428809520461219954306315345716514458691667920568864025715687977262775892668607242847991752403573705647628115584255944070576925931838270620508391398037457853060183682330559763004510839867511750351741910236578268126718158455535368424378498276220614307997470499059988362364311033755900044251388147919319733934020901401243655721813514115676398184857096790941774063473044926988042803681525663456360871096243905935431693950780806950950315813108976791616693274323550104457733489143944649119131781304511508475379477079445253559252961644400877167291721469351367681935464574929860279245183796301646438412644743248791374026521680886843271392230778667177645464966134133780474015174304707787220848253039740205623029780899809729354776693624200136825511771938809584681998060563191445831149109797502753257200638173931301424112092607214040859328892815612947209365754042967898121090804619770095561185548528724445311657768209013624006712984435986257315318493858127162743837274445119198803009199393183767690248124393325718506924685401536360660385745028599737783050176139956212951877419939082607321208390871456798985742761418487801668919968310214021870025859825589251218221704775716376771016881806447908109824848575027591876864975667150898466516837765126715225436666676805656917307591407514304524747055860589957223889374488332148599708198272251316870391066881266420974148864197668107553127300167615422869286188745583987617815477277446828969318441902953667591911819097194798408968096500211670630181347568376417791263889135438188939197040177444099153019623735820019798375356250518843337115505494071996180892425525677875520747073180511442410842209670961565505425576972507267830743646496259055491380131067561581336698625523204745595636412398225818137929310817297869447182879218034411688902853460437671594326522057983358409423017417790362416002051785396006545734340663949950263385905237730640096637972873205974888966192057539868422153595691793477363747787396876601759268054052398555303876212532235299592429049967822295212085311423863272673394976525266410793992468929875619315972279995822333506226246978393646483144156515032415913791644985704593947350392782623311048954639359629743471406704786195686773185024062860392854627839222651227510688955392692375793892895466049172426383679057410182716289548443702010860104618506515952991322010325644536223290950652632848778161238345389498844633138771419917255558400513793389201002838783176304513982883569021408111105070671640257359618310690918938457046741023746348796824125383099148889877967308388621103951239180938820541282642968312750843843064793124503321922489487460672415804435901761545453880016396205676748824201716296698835532366734231578535574847105116208097133391867913770016826816886018360180701496921008316417612611431002055616615272320149625548308555109330509422213813489054192921855922234899784834799876980998556011821750815005801844168589219601655085859127458823444063937356217316336324095668907829340731955936253949516213632008501179898377289975424272530804525349161046560776445924529806528242952628573193723466892345973907400378231530133243301432573489097031532038497644605613429686339818818993500951863246232393731817489169227746435371365139634246548031387178210511847212134784816363813461632692930320556671453713182786776763177136309311809587076708162117951590054303140713755804148465474646386698303388695326768445139449553209011060058097769078723302687196522126144607358831035577120825947887149985206346405206650783319182573435102318572717979729528339441116966657333723269021378426193003575726749357174888993547626466956373262275015558856897984614492795919100456648611751722260626275082255373642469670025689775642281922949369345649169823628970678859577719609756186846472345900542882902158707100394331203501756251016585935621623332304800620913551054896062658156432383820002116783058709140100522982662554046511824651855181940782015324511370905030800411264640905937404865067379437186141945408592474209674326363599621137133467331319919303353564600379837218929245295443714042075916593025845996027476683295828371047134803818796033123476656723274846731547112619332955986867716622191268764520012889454957944006341783148944607863177203028984979096093173965886311271069682275609590857862120408429100180260306452614200721284720176609220411487418819889381347343588222622603714602791204825316126176451539901540843833990079585031081947891406068934017876926209472653273535748070860862619607068159679810396873331104215445238518024360425692781340156015164197230670134146199273232474978694707656433301566977712492200425948653681128983876232849169263310386289609538992846192726746345986396728209254757112415974441006767396131258940231858913107312874435743626830428399623475206562774684743356029553482310701136189951350226680087203023828045879575671800762054670104665123296567952506227261311316364906756152116562626262521021682423897887450570820371364031099912597755181991388863874690341985318872946230073578490243742308142243164454281276984503448767742313581576656656571194355878407711269375428592985668860378995119716529924093006320141109338540824715989662600443378139815573565425154335644573457838632379603494941644995263565236112134610208075058196142510628527983418409677130522562018350086355225980860005483624990248485507782264235055519849502523615002037529449006262440628568206996489531726505102447677333605530211850468765948142695923595717835991270009487857988731753854104774528088693665403900502998261973124698785799245838574160586301551027773752524230546151762120381592946974095080861860556986306867136432703008885342796163945975480970236244853317555937437494971430654827996404894030703063287754086861968248097176663997853801560145421414856862481711890531334578981653414301757990892459839131602846349477121394010737172010521935425635114084354766622476191767955542669319109619666436999687615596144068455991669456002157639128641802365790305532750349723517253883380598813176211474190203442321273212347578959135336928954135572751030818355933710806918012068264854773995434092774991917223470097406702374157106795217618267413062007785009712067072925775448732156083058116235355840179814001426226251093242890874885498736073803783836858299581019325662550740546671109186393613217262449930263555212672329339822179768528058779168044010686556921314790084975634471706496846328447410588590001862232643131744600643250293202996877672009426053635440207777863949536074902023196498510052617920189258335983157001309831051178074148583012832520145610733540643330454092793000828124588028759144357978494920649630372577903353789295599101768590315214770729390431904187790739536343060947707790891812716596719149939283823558493896741762307879401469862511277483961130348237385588399614461175801082652685474028561430318143376726134628160633869366385840844340273451141638067400700645089175220380703249037962388416403197570822337865188637320330721797415150898706860588303457705282676921832366702328794976946153829939325861393097562129074332225829551861578417749244390005180439476348293358847470630417935904277283898822385961321120186413551343054074178746751014211339635037158373017583441864805373360256473010661112359315949788401247095225816085029561130054952793701060474022490009949156104722169735656275942804336050112372299450992056831034126087202548412425230519529038469916009972334214155331639407723133227809292439373491087365125805632028438630823335550935725676339872779451243922110960484804300672389763785756602348501907427350525398839698973099385916188462392713571228871303980824406996234967778116678102033747848070809913994989003547278261581847270440264535250785722959538684413613182539521517210037187578611729176507910909712662651275637860920830812606571511173230139629254578121387267677496379176166515349765757948359850414325730239537590141698161569194234094822970605665354707929419703955571576307127369984179211775578615365632175992746118147599156814355539515503776763778319046248428332744323331027306138908122009321142095799583929061231892207557969184168661819590603855332651081196621872870686855659531005995904573007141814208501960330706432085058204262983443278376504569713166814285075912521904110588361223008815727989718563855802947136534769495041358974889196951294789253098271795387510980298129077587221097060335197625377817434657510973021947285736584627189895493912185381504699439259389505758486480234538032291315125805706912780045334795528642559633627632231265215431973958314610634843345693630396717323090930512582802001394817929880565836966836270249838138967196998239745582267630646457185505989345868061877054688206122475848253187675802028557216769932988887817242000817574301146039780211871180713276369962353836807621661543530088939811832698462651996354486977780431391233220533301388597664468384111428715618766114125737382684701742751183381495464306589548543859813784577630327015407187495277258752723618045927423808649164034575119144439153638796007056529578745047472723003781326176651328131585720144197943324680431761697011792423521283620037885849517778928439155604633117026652308809339521710027637604516609721095175124454249528395354091379131883003436981777626832729042838631159981771837098203942093307091211662146451858999660648006006533416056140196023248691821942177022051850189965871989225497513589588910589256225207221017474136651515500357831234864310725380682651108945004744796414287791081689317484426050548809687272579183736145566403334636316395878239720999764310888879568572415434580502605965086171046056695879487923712010338226733583326385942079356744180653098743124454318190669953196640808985291694967573387222046566683055360757441693771489698395547714124031757120542593805893590203709681516217586367381047171625704926840498111178729072395589945871606294125226609845061216637616645870244300520885340616128052747251162312459940398667496857077286784966421582234342555703190350466394937437670632814466886552919152209026160088516684876490649357521393754027161362598562960061488018288121652982639545172147777653650222415914222299209926325542101290286325473727999921037005022895472215647494826574056271147698622740699737452323178079803558001814593012975265802725896830747173933563204071251005115518367566143095110667684931867349106166655628999871595873427808245783117654961947717854001412451099800195803952155223074904469557133721505743734908767844145259324274801102596097392292445737056362739682524154568376019153685784631391120218996068439235076097066679666032509879667085413906803610156528846620618839838135655271067928119110679650767697325296153842102867914686747594941017825419827555159393308999955989538073121245375205313567451748669671659608412062186065086798314739728347949445732578276770388038503811878297323382832666111082030056089466631680338011521685832838962137601157155103158231562996825189049204589582719220419916328310611435353565037159148990843327334022949929924558130441190929997909896119033178443364678106120993833681396099770161033924045988826091218753349075355672419669152610614234811382573780351583773119992505072486195969045740567064818115962239868071427615833342937046233187685584897506382395279575219768748549638852443140734706282911073325436861727057267962329460508657361687123137579454266627227714725674298629712361107138332245639065872284631185981795483992921021680562190218036057236728512352675029107953590525458518076157653164099707342269505987638472960793407405099842624681823406595278609918393176546448368409432250987942831564199855642376391619861532223540715375051284710307056957584055266263282270043154705096538131893430505544515995876519210910876212247909512693113427738101410173134682551398450551059226527293828407571433234126828086969448615664305866597945960137028412305211558611177331113719357285290326174466808807331910242513654575653193043979320911899304702240055082686063022188179225532499926800728286191549232125218244078426287494467969775058227273721883330763008632107500397284119034421238712432861164364737473076047091677114465662552862788942739217248430597457769088103717193495546063484249555993102682559305290209443511975478112122197192471253538232721122568135493614026853507409434814832358075077001650703663805767567122962091671397844046628128348373427122102030626117788505059060366481912782527745646698813769780938992840680945469271068407135015206417585813963368434218249264719784467458603581069705153922085099007276268684703700958204894212889824276168278505157757012510430522465302396121488805804301804920895501145678279980886625604175598026783516266394585107831994919216157021634764098955666155116432048033927742637858038892269702188287708135348760925217480920790288814952426201160059256118931143171363443816186865896858745920948436259833341470403479791436033013140120259679987093696281289611495180276319663795636262037560046338272599036913406845317158599332917087579585981091435199484674615300436408777960036749189864992543060885949260833660669014114822208964509482245204707942511813138915652071442863353379293529971807669737050001497439656583801251236966483351764374365535726001587806691572773649458936166478013851447416205591238384852279190792956838127684160190508699067984178015186232225871714881102909493128936889161766614505600813174214234072441675540373626902411504186823721848458975415369388704014166704048801035816828831439378611343374112756901388505869828980604494747762704347189671511951655583337301301354227336594278426548474400220398184885233829986271777514560240627713640039994823901619891322764306326095741968213830720243205660170244558605740147211244740453126927284079562822666642131034241720988928290382180940510663771082586054081714624548860078754257880980979464192917651232239116416548516371831294466068193446989197044322990824223801170128502551531212896301377305244406978957427893740004981614380301987307220397815663843021221406104667517695532616834677709079931426752494385279899297384054061288322086194334736970832843394979353160243502388628657457519984396924114342437174822622183688498968155005657854268730927040253374467529070989291778803767810117687553107527393758461926669512339582141803881513816511287691013944239268821559003768261774342150952685897253383828534163181142278656902864683919607027444615725246795876809874785132117717517439941800420842731200757798014378542894770314476358128163939073695016209075263564819193302679030211246590508324508669317423838931855796567833519714044627817875794682966103034717025911989097259900769125794086773600080239322956146908075615032030589129266253685959795148748643788001170027696274923612880604949167138394531025252970240748504594186561448551424021019264609844302347000829121620208833893353829276859460737567019628839917455145028104422694502721279210322264919310573776406736267581681043558297877666485736599476139527666489288931489396147429984167413369113502475920637365393148548327804962102697526845904534121398266978227603900832414739234024207908369445170143866047758067805055167273759131970095751997834124706686257371103567109941607305985179691891821750243329338885978059603313833042464463177859335866187187107943112799372289510661414116830467577163010114090676040367661992902659702296801032252623080598661596803446911402418753562381533307273406625572113351264854453350426230632585675945424281778975353588420619587386191586845616735766967474744330134993948535873503394383631253415519295240004387769186120577878324933202820733365489686693634989127639283802812567947051256062687398420521843279783121475612225729514653788608989492904104769144493727412366159950602416237630835884833147646244375009058154906435707582337224229979488578668957605721639471368305252689487937875744589965026686971086704677929323618759352138451115695446763333671684990053606639990042753344816030986458283354756411575307087887980529910706293775914454180752593670533203548183009443087462511638944827369713432637253615184492326831131029796816670123531262512434195744447830215808297784888652777727326234094296063241629615174102576208479210743531462337332793670106852696775206283349122514198643948843062378965495507423237689838086376608383445156742939219696211293817613593497447726775953474015705955694720741871769067692172458110129498092381490092914390748201429345018859063508929285637943795252191803643097275694248014486822751292384872723290560664356956977057649940306670584036041405905210890390680645506659716162875470036197295871251749134053129277907077821201340349599834853869798471297193562891073397733238596993819110351771325045931370745240974674275265147809216977823485518260702263139247538793474691401708051759896834809521546207423946897974962901395839397817403431268868556358396319913857892866291695618026009400818110114294262859316981512111870466794154263326386462809865807397970846388139937298399594929897070036346863355460993087353072181895314169748192322087948992701235868006881376871808614615983349951471379523189942482858383453690732723586866433175477747767590204565634161350123130458674088826002448612418079232194051486273348721703830547401625280385977077714841607568208241019319016498408544760627236521003614469718279986641940456104390286431147983876739792576961844199376779795609176731052774064038280859609994476623554703835476051131618072228682441123074541914518402996935998109117962304510628153180510499888122248100928938285523610508912229764565176352037692060932515982411280194022830156967876196213311538174544121765554900500516860984965707725156864979531031992644151849495968868578839226340640408723505173740146441274684498934502306935507950483735644862410691346168600575299353090287446910454429546283510191316265711121233954439337907378654812659779853519693628144872947877621392936885627708832556353491494679764741475945425267391766959199449469473077656259253193445529304751167956115270256902847990002190918338396572160492076169881697601733885543608334540796385393787751246954360436345588877254997872524666134395542566938759577793775673317795260781297665251511816800782024841794042932909750025412656209502251234972670853223546823716522910580323902947989305324737284074933487924122967903363518620524079451712195695677868994951292546096398083114191722169332513720851274409151293322934349370847349901604156206744880157762711583777795409728318205356664991448817991401955441431631477748699168413267605579828057496249693113663021397856069691493358667688064987377175380172275329395992871618343511083850066885428584611031232115694784215422067622773474063460267225147617695725752067398633801701031197081041108704385751015765669450030201754711449307570839161676033198600137846880387611454689787411783013418486219585602000410928701729786917508134954838920631304211570554018820773450530298139126454359608979813032938730743314994718775437520250555400216711680067338749492256491950285549552548025601201754516365578604210143896393726003084322495888716184728995702345330087254899164501743047945171287666072043101625743914245889636307593886690378922654815920551424409738018993392826083764827990639634636798099413437663956106608034750827750666224215819341045572002315224875017456182240195369137137183909489128417057099404462910468276945608584775023214877521462849706522864103885245079713263821504030740382497843575598799462125892930586405865400551604879186695873811723863165184461479644476755704584386341503941731706873301576024034854783154112298708695586430428411950103164257559993064822736437288872792927810428366279868696011627549757925847531250377427527547138987766965021890532564070639372861104080008539496537895267908860834680547989696011762762379197820299207662292950367377605087932721478563264635870091248443722159847766712239739679746351683967975610970046377017010524783548460977303034659378380127981977151999162096439765596929804010671609978271492522349297454702248464322749359028572601640799907010260411663062559892817213582428075302930134901090970576844127113282638692558965631489078459629728713142807874264605503471298287424880285512471801108567295829272868882666797702384735487534179910065884976702527688024494235095087394355211915446950213554840376960231979251699580727157388091584168106978878984950067693527992823735074713168815970466911354491513490670175239699873472784721255753678225131927603184651650976377627642155198519255511628385070885686023027471989668971209626447009296615538057148591538128997294353501697690067873637937574091076220132076444164768121511378664412274952139911065884577468804058702839373940066091220079449424253285440867508067665869820473825385701942448271841370787966877172958133694176912868455256484499526975377394018582560294558851192660807656886937218153357195787977089757018432240465303818096442501765562353527886698234544433976499706728627085618418791982560421762901661837248069463137185859266131319693838807570769632859026748024291226814895511799521719116254998965799311871545899501316795464703299415573323057195247737084671004207858249573414467883491514646422613024056544232695640181665442825038561596036685512658606998862030465459356785605590844502269563395366958711810486240354797921093884803127284541982976257466085146532277662107913381325528420331041385552971160435044078174836254477501471192338696455733982145805821566616178516688241821547911687296890031635212813828003043693446622184741836341374288534341406711426121968106294370021924876528284265930283706157873171663962051759850321682280505266642138519849622448752537648128697328711176519247921773211707865380448048007851621670859174677813712043001485589667637308044735869526980482557402104926135048398676850593696845735159475950120731384851656363195914548612598487673957431925846921093718346135326800280694126053801957059891281978557994216989511689281203381820630710371224062892223560408410955357461897745874977682634204206003451532505685055002775091901580792059537222087225858142163212912193813901107760046784180422227404159908997750389537443836088121682621554669137232655597082761973114869874283622470387951833999224676635250966443618862903696535142537777456689220434005482829444031569599574915735646724647870266082156186506957183797382734768113153676796545855735677884425489790863494517735705383586463002295391327991054562178810958444623074936649003332226279798782618203443738000889434841865752704090509186724254456517794995453718986463709526056948938110007970190130936882522668349511654090031834841857087684662342166087122006140259275984507859594715817304502751190261175460902420780265617657655490659929266135868313230002722161367067570529486903600009775638509951822005740380114221454673092163463743056668353555372112796969126832007174985882933626122903667485934417418714582061656576435908488639358510130105316113363050436829747672105738496892608635884428689352505355026555374705196131375777822909072538766530643091256659327651730570636443182259491124807025577727038668793501933031980719419536943395358846113684726203103316814858951588912360701118254755244352757600207926995196583465140566896745737931129536039323315963710584361481409708323099354695648190266072378783802172770021334473083910833973156734694009848830077040871252936535383423764412862549125580550254933758525636296132027205871351691617696390970099928910068241460649938543014581954925310059907212007304426796324442582118592996717767226766364890019389813588408747373414446682051574879147041627371287152381722190820050138226361604127514033844861951615055144064781403704405356072367032254979798344469701085584900179140432965398388983798708664935749202482978682963676663776654154051515829640896863829404442119566776052879935523001292009008202821293132079072666707422405171371868775372332003542811850884760302306587176833437628645106630932486890733789066823297666767749148056757968305765282403875278292278572603036586604209023367576858147496671931213192692015488984034761121080565664672228403327041310846343769486102779987406203353755854007081498115409157940620931869870797385811319875032780291554375904775217123745476224657803037238366624477667492949066331587009643721488238709155755369191283466539217128354178296717391877077962413088278483313358430067240225839829965147311669093175797375831197782675085689406883474282344945500356775422276133419271757999959560271205537023459457639930391731134436530054262791707675830106787175686568545832925649033016653198750395548023640527593778620098088082696135476697223069842958751488463780397990000521856059256992640900997443712775955817373095463643622882436821237738880014688365905710651281633359776859852170426562961531391369558245258853907093545396130911386468793076694149617391699244667028126331297066706402668350199960003989555335702522866288363798463497431603530368839151820653679664023504710624979637608521571015247020662153766853216978996028252908188508916843445391145862697677917757917149713451836265376941733466838710155177895830370930221782472350524720319356178182752031586752309033788632458509186775353898672004385006871182927089128668718817454906784612772798314895361305677761594771341672229456742276808586106611589749548831647167738178819169724695776547146872398674646617328696909185835772849000598377599420519463669840076863096735975258181025878080427667264948974622580784684686206327245360599466800556015429529469671143447687254012497823806205584014577329873835943810997943714931901640881714475118983043851928374736396148544002816247784502116964595024303904935188917834086087158789782994789597068308701370661338377864452409723361722179764589513287303764133484449638175694102643138709800799171564930916586845621147737935741995404881293590600652832374981642046073536595686332473703866080722151095334808077457773375763350742033792218158262592699249862984758739409468400443928525068813742629005397300287528650815945617515082235241577476158767505623586401070711880053099931201511983966673900490524401630699791641998377783525479801903155869831647639574561745892758967341722165402608743204823115836848878103245162813621554092155911522204177000381200421800387874892516762756320965734591153978414882092700486753652621922196858315421893575353102468918590905561804966539618960055393992693157638857602430927084257005082521913943320848172122670741281296610042522692985759779362533941608676869183537730746818255302373975301735162854591261766358556231240506209947569634976434891083605962215133612222490525554241086298209328014828756934370045271803435411152479634735305697151074062572839553778756324870987745187511304779377813918525180091630315262359488614522284831308905773436794692217355407758862636731599533327636742692606220357045042110206689278472554299090012435788716221234226516164801033819650429611964891557465163481718117942572717160295771385595877461182581107171092040708649203402090297922357971104432103906619803038951982803309183248159522240845885996807780822576631823933746445448600761263203480769046851874243948595322957337176117243850302119390365180755400248405959344337864513651065342795083013412170361122953442316650818520644855100570057460296274060539672410201367003608204089837036852152805733040280201388902902410746049467091549923661687218580288987613823954419821149462290607749752374380290001433858823824679577245240559268087385342391557330605571604535321810243473728324784187211290587120373209663071192532292309340796092414771652473547184421319748782293480671942205517589495753561582301728893740548599523039626762842400243863532663906209601073701184750443719900059154390394298623409507022429440095383141658702055435627334925266414092563133368309206505995570666394722937935891778239921349261692809560223557242496857279358153922001601671510115317468996953442137136284895995421082942649500382735218610535322582112625563486304438944402433263368294725804661080654683076816363449956972571678616390241809512494037909785035196641272214629770128010387477260059975468259634442814958680366722125181448233645818198529555700729111535069931530919314842226567554852634879787853962592196713774581986518149316480828973530534022799922909244561619656011962795315774896008443007032209701391348503366941528417871840473524599724626276699350858277285575302607109507891624882362419695447304264146181332360993554597091201648269439195576632039707723784058954935378490100350623263612177389793924993188319318867686268774770549453443355370412195589807960880251497607337387970096885410140964085304638080678794279275672914957869174458589179926378537129743929572060202217627543687122745124117875027539518980658068121057658503654579139470742212103365181990058885139971641003039551732279596492217191474376104789984758004733813306114499471814327755986277586174872573622983518258324516247912853115584008556753692822932912027800542965905334292995293554483319884886710757440804977850311192091792076664974887821876856378901917644223276925766988880512336863491506863405781965589727608687526929037266475888209016358799123970570270978997702104232555174021689972180072086870702931825726892803571756150230967815982903352880866827013091431808041695773019419132632151193034187478413643869493403148916705230921496504100136206976035634803411090306118378844719291227954890568492458598898170545590274095838248266719096379948172179706112890825366046850311099624147878336438270196695485268478111387362304071460743511914541478929754197394089680423502745102366666027011767226208862540866460060528528886913208758818666794806292535178000381502633089120421011029981329882964784232395931584025284039627546048693616103192097158896311184277042349125649819348194298572187663560150279896087595583610833273695303405959581786511454716111185159284140227113405073234175480541544249440066077487367770681926406016496705831306995006072516270731523329925555343442561281893077490384163669098644725086882332031317781845705420768535957867146923790050841846861261020021844953094688821858398229737622304542157190672262750343555018364048915599171495169590720959046807514527868115269791922388650098980906303562934361918515090846592973330762148333027862144559294619278873397270692739829449591139199848214478117590859099469132797900788335858621861458050318944798007667545585765591106543860036954667447335408708163680313550607901557451179081626822240604872398306110220293913979523120878379419323860400894483020008385535672492778926872962985494178277535082469447393354161971461965749242712446111409185097816402763542774155049408419839960185037124445189792822649481481495338196876324197305384917493776579615091064368649360659292868928002081353731241424888138005664718182289608752066066879511795030192967711890302179687691219340589936161247592870678004261795298728313191902602518109450996231628065062780067490571771180113892789564639368655180265436553251163253081441618015801953356403318117069083779640439712047648324694501804617041186134218170586110541565290462567529432240505209088389757907608195011471279072612210767952728663797850719233468476162235474766725367497356776580075780014236167489632398754202196902431656837944976301175019872935438868219823746503042016066144754107938718067604770239854193697392831720748822982247418714516332906360387007680885900398910879054553395363579860542181960189841118166412833712600432961269409037179722839372785658539282072454636087614465666284861912278455809552919879034630094235447454756827437864835626910120971703055227296300813614176528670032613313763523618666127198797842676422167548043569481205219213245997837209224330538297298253364419322328269354214256410168611061462943817601627744168849055318781919582071442468541822622287647151448760129346445749030023745628788583840231950924431981451692456012800366067621245726595966837681236819616979690323879003762046021176580693216852956923298833525068624546946963206536336622697581024103933223989781223723713188898689531678131080356599641518545069505200191319587272538297351702556579643910032695198084360232897717262421057031029437494022871748504274757115342128183662703002245520807540755851924092978190183176392101847554877421337492162221113994918592648384324135476049194211547811992778731194247140463698068316645085426869276003721448235169896422420424689091808407533840936353929916214006170952930386306109448263922508103419260322619083552565473218975883397040390930777447868925269855311013987913490738026594398655962611304041508982174110302496769690758886714949219162927521232988519580196961752139347006364568909388021413864699030761413491997265505936375928739526405810118839102014843982546247751476903017894880948475520492565934169876951050429709955701622342268547599511549931506726701390921742779624835589905529491098890836073268944994236851883096320428095630188461812401674842667063147746187854713164649727191022778875826831573959287933862765023992645931689939680639200451912154446438051248554818050592984279557967015653388752433222856377163860214796838940043242412658292486645685844838571401991669821949366202302703534464353565531469740151407874806448905700779188536396911940203914153877956093369460868157991831181372372552039209467267938610658057513925721392503672898881451513357798721292435839704194814677101272760742435500506450676537480139056061445568020486890946519422038870236111917868959087055256179356768033168115672572102076426402431703417501905962318190463505580065741765602202495041619075676934230105802904503857193000058546888877617035020440369347086151764654102070795881585092667306686875085749459951320492996099798840971798305225920019252886078527478643262613770738061209988196226894059827564216120495423879520577226026044264158560767262357761366896775855574873705592891353373312632788519984386064192259838270854328024594461984739557526426123644232014928441046995382428753878068992291910223178539760927780727922266031466451860126320719108482644383886655528573735642691961160377407321834286618410684988746031545857031550195449401931336065685255388317669348592438356238818769163159471218913954525924682619633123798886693319673190441142256492133339269582425583368004040829332549656258800757375714404316930443951055977776619192129571707305394400138438420688425428427531311263528521563482772702562278903299969015225438035260324657778100972941016562487298721593852225240657693738199993954433270730837031446089055232055323660404338053054855733017061365283086693380088806592769182743528511559111774318796663210009073004510629646556316153551144713298871019418173021442863045467894687699608535512994074404280871446204573936793944482894112081450483375222804375413311367728872841090799664505984929136446970331001783985165688200787741428291897601012199058503169783435481102358037430828293440884293513386018531074839600344690179521435554671482095682615194279299494266050665430573837440275300411425433496245200803107190379465308630127639135071962540631447799603467290114376347640704950265947875758583233748510736230403891038643506411052281536279596594703285938626191996654192026957632232718486980212070609054990223459566315107460796828282397625770030359098945976897360786522388154682022468504298149243290105683887524568656351700189772277933569739409926159092218179501847408669284769862448559502570356641861546582447581188721802271949824396404061293839640010955480794196382588096859819325697914762861979130820841886033005058742402983808177437667436848500313554652509758308386777397343482912825362581400754131746450049956999775051085003084965157511171135716806164119153059234335246273227230448557252727755682856130558056103278577766406366947731088506842213355107519156384405421907342441533032619874587309362191669322716520717447922432397143890937479693560911034170759561913330590817131209268320265539068785019852399150649284860142569715058939323246085193253339332083894100865118543592047295604955532762015918928098315446832412618159156561310180083430670218649017919473714680329154385509069773195991740703581370611950643569709928707778765813967843957763385093357146435668528796609297449976260038123057963117371182853834846742738023236762587972968791863773976862590017257912709314993511300151988856578481602626116421516775386410761733224588842487921615233286772215226210076024678008203731544474054056761785841670520790373762489597952198181269336082351246447965518840125056098075095961921930265867056490861398735443319102774431359695060951017768099252772360355564502145817511710840095576146164517715357818359555326585204334685465619546863536339328239972256013040258400935754934722883075391550794768103052688986484238897347007947758065410487431022250691858769577983402922629199043549534009215608715543413572153099270368097887833240917865004863380318305884667886274004246832963992495706300219443902109859120491338267931806219506263554029238236893743388230089825693335836520182679403428376287448174241059170706296234690921646415846052436498151775553660182766128789268872994980012025551703739086438788260789656986184866108548476957635722316802359254574350235754477277722233513526327247581426436930344183658829773133470284882533592502618143242282076192467954599966970766773739545188517812247408471153993058090951805396359920608911896915476805409872516106458700605004719825582512013749014333196771788704526700909294878374780780099557369433557292553895954843682428053807265768425964713814819512831920829099001948748246866886475321502727865773315120304798696948662812802035475617843895279213648233625052064944295463361686217453789622751161772363166772497110846835048699440637391056047944113003504396138275854484145727118051628897854466606898893989345941283055256402614836978496296436243230710128720339993673051680911583031918221655239022403925534354672296685225379450142237560164069621626179512011027924598193023636817935492470341980895975271139101874774492871361790891391403192400135488460207708290652427911509168547578529806694805052586094503391679249446145657919836178085575968259079161891128872972963471727819018436337579959101943788578865545721023325835352461923617897736747912858193035796848965084291768748400211210786581765765839127193258835654065156797240954269753270476299499034352750531402922907263206125983657833480736093093961110675939624883802924299330366153576564424906312276593545540218320409041305934169027603061435571500092522100478911173863430175140907373525161340220133665737505752972066359038855051287234319510413601308199396184423014536144960152366285998517073835321706157236945825117351143796162425230066360935772260414724424391317160805768946726179755336898296913507307393003178624618752629283512842878511541162215282982442998426638835066461180756157224788159602077250613107494165853949622450239640949220285366563147142782991842410992183404710036158432527693689229238480333649502823077154281795888900255575079571125884631595574270761471527939342476602820639614000362382768639834512434743981224989464094807026378724258747496949367850447710098788286886172852861899103367953780689046594110597824876602003300282399601334531217490883331916681169961682634693311120737874948843744780953776617903231636940738375721100639700795289605229816577258548322309771389240726005436331297619631674154932724614432596936719640314111946105235907160717299168708366810637912421567906141374535198869883997617065734967615579359540238298733228935891974128079542066407732349857587919656735813872759219308418977052512352001747351643754900180079608221951116176219468955519358537649190773748844462214976788527800379676055175087608226228455862637713730875498532647403202379285305341220506813292555068589852356321108175303228912465908506592235911541245162208359140522032844447237578040527151801203489913044864329011044178501900309169059007505142323911202307001038681888838821726665713340373338839744361404520214871407982367591310241177092591648765684273619549536950095137437237880389611727925035021706085013633854761986419524155239413557981243187228082680997576449542505550510335306882161324609986792790827902071045383669814403313261388690707479839860170265546556039231933244810968576765630420123104621175834751572025095109276380722757972435186834121908711826249155443476001227880585160105414818919233643217774959308862669983711807231024107365923949703942192499740368701682712803161004747250212508381869543320086816035591420747328096086606313062664960385173700727712141801646190371924815089190866423587087935910279138383835185278308293644300513480090552507673880062269143670172917805814880925327619049535736869536770657566075253958493439381539245593735665765772283087020865962696298766227298629827843269779088134424270761865952978913868030432295435174428523651704548199675158249857037887299714059828976528812114044028129074987400662841060967180479792476141575242349516041199106008068295778821895231610984884090892103557562289523053862653404818827590968851230748583992649120074864345058166117176845064095466245883611718034250084715286187472750041385745971788234675182643602920843064679725246884079879801927618764559711707532734207695485436976792506436999575783151947930235354645597560625370962145529376687848084599504511506528959310273744434848083248192831686336020302455145530022940845042540076357930293937571562927362071883714519876186917006491831755960164088165528835744808488549749011183202038775009603477452684886835887980238582331327417925002644092837141914033553038116698314379226994772757246314078219559497298518821480127287623123753645230181272236667043791043996017237807912781265455395116606450598642814365681113308357471072315296738834215543731597909774424579980310817370788345800135491186722244544107255025432080421627955042139626629750245664824044313631587904349743507196716884588849361222263354795301086161544042403370303158302758265443152165977876166930991845238281061591724013316252192826431877025368712901627265494985128873054030882900913572715685201982038835493826444615618384905910525763692160560266674687473306320578856555158688300410073708379897836686574700849817695492579660244604643777653239810880775185015817077506200003977699675149373750915666549598239317451157845364093793556201770692251828216360803115768415077527009781784546969346798182905705465893751952695579410754334186729354183504702883179339647763956607239440058979576680159235289132651465154255865820616306945392193633567800899533784935703781109416389941333798440221625205752504042520651318845725960232600382656756843067306228051798175381068257686195120408255706822626083303175376889820916521021273689907035554670796110790704598193197453382176029258872768847187051731554659933298803856110990889487601342882875633082078124528466370383662578762277228102663251736147736795232253558790133004292105090341643167793204182783505304246483866655272231890802515670102257507646702563466604479831221395455654827220720627162069956969299953799266599718319784785256999515655356795095481916489228563499651241852331377657664705440749013651225717872884124876179086035136284367846367158408497126221532766395506002264134772796545692724163634616608385842126473677329510369007035696203930981133908416644150270436582339153279265724296745785152135636945206699371780840007093103090545214659066099810253380594513582550572805023351873148451674974447678673586568963914478569548365151402755314296586292913016622559779488608285102975365711515826170086060080290297318753378268883340492578882176183113068448487537239995796963540512289201811897845498529409562576499661050008675983052174257521032492155884232403328090747313564078287776195378819254967642267373106539069294551177663135995244822047316648864671627792698836987726157542542967201814115579083874182718202530088191545485264160125901782658792659490133078479664082061356239539022364568127965559446196737996929851252122379689331991432681191431543654457167699267409703519276927754966068077552019759297772858806234048334390688620321686543493345411175690580501954401598357183209946400638779141192325576056477684380327747008767621266777353598280180522782874742127043795569805235724361764091075196854683998946664288139762552376651814042471834455060996364497841366713312566404440170608807418924396264574829309879516713354356647494390698024779470598206665148731090834316763382851550591339357765717674564763386714379079049056096006625157554201601993673349348187691241715366097160916978983965731985685649112047361211253350620074579084083430037567569214018243741684097887128548689687903252666342151229818089562490871022872053965935014549224173537006654314385926518940896960116350555946658602783720044883717809256268744016191029159629051527034285223690100307562516876271071140230799925850867828812109311387940479106285685520220179756513037883504773120396462841523794735745485904885078679758533686100307771173065371322024877239981817410142088285862670987607408685315005177662125442767631399515804620581121206781791247939640611468482257730609868630462655926878637557192011068717142011365730678462585177380077821297822026475264083247042574967031380413560645732017890339724781351270769671511351516034412699959991692430333357907250193160863817088210878526374213893836309748434144131824931338062137232422004490069145292502293959226601935139545417838044985259066052796597947100699128520280290825141894807282516656072746194726813691318412557966547948501290418652901390749478426099553101005872022155712542535030984082283546022911768314320083686312339516129266293282740068420474338627960728627581389235358067864468383580217146721021041615552467229513694455784016669526880302833604787495468789795496859422367358060183668636023628288418973511863458969018815554143311209063611349369523048133265165132294663035965097254120513606451890835294995463383117250416018935267823638146288704137972021450464159896689259714859120006485842527624832953144190756328041716270363144913792507322199618073656245914937613488935812507907661716028532694743361190785905478633075039848629894291435728942717085480427732630522556161417609006036028432459568992128770488670086095261370322716738582413769488540534780121890057453698336641728099651314568181995607379705444776659479440053131815714738320385095954782648587456083724198041281169898878842872023616786006360720895644831653346720132629130392433877505333495534800842970179216322485897794432718669172080856257268531550077756564590758877130772462533138774346551424197073260145494034945256533828603606054326281547469628268111418462198348113555157209485802936836537064705747061130312630909116697283017828033597200820784999822095985169649298333477383170326472869760727794602202506759808755962326327218710930642831603801842685369771899029218295999502049939565084349524480779228523632923769485831368236500872801689651784305031302216490556630888437204183185363131368237803172649851003685125940677182530663388950147080751136242670728241744029059088022469551841992262527172828984196843332171080820069429410008389427724928161481109200082395040021231499777369150254074967161768684812157639714992848196389611369866987898258778547949958634435192314359274722432893352423290147301820224577827199906527495155568480058191820430513182663173529102578573725258940583660341437265624803054730896322139161701017001659969462000098985752735343451088095822014056750128518596000528468201069188842878622520531872211716496288561818136353677290723949093576271915918311414946935134879544922299448262336865495425710941719769302012883753962685672910543938953754474365013528484628137682066638987241473473755256570130724257506000700880077784786546375119262415091378923072789283044861020061781344202658514469810530220902750886688975607369035573650595371777514062929715608920262403730699909986251667474325766264001436826489653543046475674641682015776558691951587759201634728796379365648883301978597759431395572899661123818234853956482112411082303978226010918050063059249448997534296438949820438965416414856333756717732136550608590266486496546706401034801097920923596164577920215068893093439018002753747330058474265041893602416911497548037520170226814087373751754319736719293426578777064747675551196354331180562522197045025461357112793785386881824173020552762676439572356085525193160178884630742835157730964450538893768402994132008143880649134933601320364738113289337713108680917242526105839681714918008802113651553437714488283197695956365835664518107441041149946315569754040722310971980122396332782918474396003530719594644876868339210598866654677956772108991455290847401208444826565782155174647147745428990115583318952484413200416886027516079560529464092831040951237195704198949389627347400190532278961233617103981971670059410617104556158943947216187688192603169096839439675878775606974347911712254349043571158039713008949107565057865599705377768925687429398813049510518241021975502086471940437467984594644658406223379506118985234003058627435473758812874571588500620246697281621655412684093923305332141617858244481182879526825332724157899205123007323552966820408984585434593685320970600279541174466445598197999074627787740053024451937089876118874953785464277490558651828135533228231481174332231204861354619428752168520081347913704224013792201458227723778782299121615361814092984224572851050794714743776912150863766254702541040936801019444618077569412103985023451061753602709482370505817997487858793469317317034488549972650111315540347276716419131354476572723037440595771185188292772851531707496990485591571707925719914424624492723395205042979877578108196266222119955185987623555246611693000701624171779151929587485721334391027188762814794861169093742226878011146730782660548435276435429796667988299718509225582564702538900853162042866816184441530855398490859144425314495260626993569393527338390621932092389925068477537910860121918592807588739254251375798298703497188743107902989792140515230681622059426831824792790911922069615923608740954873727628348370301809212693922631184810576697185282666745466357730375336566020423169574680537622515240126804362099367380904532067550935919337449153822069687442748675119897559338713013515170688778987246184272772571711083718635040054682221702183702032427544603657351335223004070153981291741854120814717497623013790596897979902237775732321581119388118061637870569014544217842631168660110967303618342293984613386853507909943243252792306332689067320028878028630598469578946782275386891396260549836451933302032865755243005265540795113588564629076462554900710223265991667158199406287048771912637532161099983203301601691243998307628818246304813824642910571040293774507984351517125045997263207732225718988555248328901569528060147399808883640206691102498829368784226476721037450382836649647722797880499257351441539846778704044073526044934560652396086165615665607710877331797780774023946829740845628167411823239892303811682052818282927377980099474294883789585986827028151816751896660862842232333742012125223438733443566464515689566091519870725969524498332680869095230737570360940526370872436143980995703605996796130766722494795625836994755333705735260514263134926779133769960686257293790601406206725236917200322046620083095185564827777758389363151730240567352918551840587012106860397798844232001214092200250773146450449416113095381266785999357048427489841199330068301828561571317299511483557153717961891440491169527029371071073196007723810444354498995900358702876764917770479056616289161685146720000456126737969746244833386660255688466989206995777766726464646854753443504123069393361756153204343367994943868956537175538139663495823166568148698924741029455455111620632816727299953313672197318650222965754910148147991580686936610807022345135557264311253232310459731688961354272806154642851222416207318954470981943010005084503601939751279096595140033431643888960486897842634849671866134453215800804618153763935490726527520743258087993284152662954906294901444464768367799622331357753486420140177803488701420076440335370619866214548108317659158390878886745474403160470074816528846592082154829125687376176696142637089049202175032127454404077053915616082020220758129968023788902665964299262811267277833492445856521254512391388626801902146955345346479104097082492662061948393887454955063407857725621201666680107427842640047723490231016874001091513368167746478768327165647544221107168747220702532974527532109555510730056189262550894314708042214323821337981079574343254264491609596701609776846852518741985338100595728122213022914794185159861774078115651621014274910838924244589760570242511311075341171413589395696105312713096607458840979830987420391324635050855632923010167084220959176366582414774932528273197091653364384265930836179104628451322001772226643553039147273559925437384020601848190212537431551693091652391022926903991632126304226703623966500976966330990192955647454092571078229312062694650250571107585593449793022762890395570699253711004237777576269109378859119565777399157482065301703503921402112941465859896472555904993497356015567727848733495968693433493148912178834773680819092258296611989771985061819355567954195579008797523356993639409485798062825628014995117872811925529481243355127068001024200406647978655377528959488780485274320726001186408432504240712232268927491392032041794960617749194621509958550850993017503769249163414786541389231583282364302811148480467743539104856378445422549421813349688029873721754529563201073881045158157563994593021914474727203165417787845806110396202455638335521444498804042488029519087823667618466575453084933251368753592287615534121513188117831235245895194681693026977135404964888191130734067306186261188602750273296481867348174053659657488197990250486963106983558048479481683173127988879722461198672169543891186593607589633162649176874163813397953346284922631461765496680994112468353597105087704584882110194161486741295789690248354391339813478308695802976165157175531879677750062438604474284921475160415275802543346352784431966171660403894833283767661674167761519938370472280229072395823517442250752031801538964855711915313374168056337103856731331370892816326600104001192731180381662678224708848623151436361916802744858852953908107327190443531368376068815108958130357839229645133362063563182526457576373820358550938469774574369751078399361050940938311034220510892123698754424086111230004893069002850264136312657033209626360269781780759133359001331721366218131243183764347618178020158841591211753161834580988823281064405774341836212619361624328255776615498705006575142717684807557117686385611625292415393956685237492666214963052013106116396351067007128510430773342551775065417460605230071307322259950721855078906764865013613192049382841377909178214295785386100847852617763817783353663262571425356278062221617749190096624865401650402621184608966817621126407103369820335734872020491847357949325567925389245204396915747801751543762608408698758152267372901024931405529472136810925510784768645714977079055837703882343058469383562807374038140797690834813103037646085695530648774958391059102905515651971361756151920916508154242741251332948149671465617671157804512084389009970439256060187352434397247273460480839240569081129048289688149382031320293052586871973111719937704231116967155481881168614352227484511587124640805630115001814169779967309203500641485751446259064765827358892025432143257878924574199536683900259847972191882177128721889806058881941047589390723254394800768832962421404407291311422906506827549829071533100975240403909153060767415050992158439264658381026349597578606432393837250432934102917878828336623216524242701823921094096158069180647742677321554190658001034003819275029382413401931881803369153379234200761458635608907880274019289012673737271352974609566664798228786894367732903520315889592869190190930939422543222893079417134844867966407225417062318570535888229258150796898499439376007016712974425458134166068728458432460333413664471895798257206225271615189153512852197344864642583139480300071956170194390374343565673116086645056504845452703425998313080765377364233400907861975176176472730488911319720161114189626059367233979271899428294097777413202481968310947938062617017673911198273175177350163339768076262260556576339538731646112094585201037856410057153750311409245083060054203783125436072561595405475533772883086803713736596682893598597393717296992551047635335348492674966881426278097973055687389305757481839058163539466534549245010784808355143751845128989020427698912338507354543646663197533386893598762530142537510952129753651072862197820553369031990098159198656274000302912967502535896297941683131837673153254649477029999452280012886374500687113991988018449254981176562924298610648554589814828120716982376589432278306389011137421820361852534102072837579093237029791171655534646486711406481039617726024401546065952188984849018583530278956513165199049848903411126127841589508876369952288069033124648721593519232862196460288727437897906245393263569548378337041521811416976981380917609628429833577945929839066589145706170670975141383400965005970629603942564991056190108343348005842729873176350878772053075908834703093344959843380086614606306221632981914251554457808369867035250010690735819319995473251805594127565601880626902214706571359582372545240964389393862223563971658106032243946629186901750226143259861522228781837346660121577543069363432805375008700334417650570572269261077945190820157411013549592238533364484634943404595006479051197431259916616423463301934504752845552636126732004517420172673289569823947427508374793882374492828807120480386146371334961961746997008728404985323080020365917002317703212043708145602046553576169633630016909267768450991068291771966018588984017960724466180726425719294203592910971764967063573161860358323874101184597385132860409372184488716419789440777130345846337806048623899139055887348379155131771501478864611054052338553795245887472587136332835565734214421775136853678948263470098258397122595189966347229615881262223210985431489981845678557285107701069281244230107229013673319986423750097876324446812781497226937875809120671555198966531495268531952328327629219747788025487333512601910000110166025316303177826601525608029565924589953144382107717864910834420242321411211056681450678784594969834497684529811686379588813867816985540478701220167520476267735699326025616630890393285033667650445485617681586621813564252432648194348486584730799626005945013727816683825776994038482994777407682047485895069342200777857218521778194579977068792065661755007321750139097579068190911351153335625938627228264239270732508264592670421812264278459885873953434495982599382102806075644175823649763013892106393297245863471387357338700381770537881428052834164650517550083876840520670420933896133388776736267245684839550584296056105635341442030602991626150127752793815244909660634564940254910308477570318916756301959846573211046384863662311273654778198272483368832620035469491169141842521882762094308668887008859915020347648548945219367780065869325796775770623338871975285241289416283125404212608851041137094635697474774888924187320915558311704883764875479299257181916900758047404772002225874883618362557207829777656355118983126446999979383782440004925189408835058581742846563474200384051395992563670745465312300883428903125450374336773291602401486650466885296104862345242891316394633934046903448859496274536238918708325761028267499323104128230471282101846368319941241328795805467074523366914956851481663013107012052970392806596424249259968212833830922342299530251337391081777254987310817134654384091869684743093052273092761956667297556689223377302129734121217024432137746343136316897543434228372050063216214871711850067187840958439684552196712149601997886858432748911903356248034689881334661250672897958122769757173493634863308506816127061316670756840060440634021605849343829918880317824071516691076769816563174098134494925404037872473630311985095450583335133756733398559742346375673212301785934146578344614971030137274184755664327717638506224618982699402249763855768464571709288885039484023260870155662497763325405924788943757934642627911564604256274055907834069749074316590088042856671016686204778231740969417069270630739538396919462753524563420432586538774784683278771298716973777750538168873207592238788717425392958072094132254588160197747943740397730119352049039799886292754703102119939335052246601594254100637888166854520733915120239410343614120033920058383348933344160384171778574272683536386941931458453715703709688182553203667174016701072901529841055911733317047539025850648983649054258966411482921170312484244074848728532552139888110222383493325795716510433055648021367692023710216921497072273265853577557033335659017536815539104762302396356741779269942995426210166377277450759758752858089481892108624570152317859749081365335062045242056512076453099827438487033369602539632672089669578243098210480588885170922443554226386210717157977867527315371969177095914993032580611995990795723737255110882645009271528395644756214212942885330181928678976633301921225439264299006148715599010129338572283946357587191401999723019211132651067392906309986314507310552688007352166395674004761076437049746379535894491549996949464997774864750863867949657667980411750124120655847083404310093273180810524457124028136233415437329590624489167403717265113745362684172181692192361117563446848762562201442831701952632906571165455720251544976543056027297795903119148811463638717923845997001123817417325695046056630003713033442366321154708117493226387562867750200568348008240681343242448205870785490057499558804878880690437912073471046541589229059212870578924220784808378648179282325785196545026446848541506117910136025933760519441729741956076647463995847643241227143838911662648955351695807302648197830392031515515504450747174385965114681183579651788971566592542269809944346088236996403476099963500356308365661100849445645718793637566564210922878537097503482765537111272314303948241673612814884032164611261173044147733774248403183637422836221827329027032395660112342172168535002514249716714496352397505845474320974664869510509887416100388918258120125379462856664534682571845698582703532466728194213810728805521245729038462125646783682411465455170842795570610801467801531925228995513582247913723176305800996159546125721068779676739723465903288480545061514168324996152409527317846891684591187622873396771454469794631929678648794556499958663287281513584668263393263709483579224886186194337054748036025912192847946811679243858221503962338094997561025048273594853886308753573189330165064623081327494346668249257996173390816601760835463605551446236909295921271064536372925543236036568699916562215578104839924750004788155654884791548510469128513514256733793151284724872921670282303064753249328599261414249379003370244383429347987728415211265889986477281669754249248154569421837099952824232405055461943733551058389521098395211439923103345226267693160741966183816972485703416739459932250052574328653661262793447051277472697443543881051911070341403390676457541552038378436429662057556345969356743798549338459658526253479379387954643269846075356323934948652686686010374083682149474425736375386492377752365533560780010418771179719534915387730752519783525740132335914379210386795630240260690997219437500811334011312352365324170819690568066144733900029682387900877468841092323216746932989744608526417635558773669684846183555932238069365125194338934142377403558065451654656168366996928625179254397116866647381297343361244656013518242029619125210973682828373941047345124107937865689062993375470753373352350679543502308987155555342187974020615719343348753478875348688877300660146946603477608278193491865316712753521750848751564089683262495175413474190848794773770296395766841589926438987624926084756735131032718231170708198674828358407797223250161807365280985088441502448496644024359094733393984191531990589899408344062817432474118087989398723070579491468202949300413039074984272436442543094581830861485231776146048592965628623482215929779536030473579919520699960209581623266039960577553361898002196971201309602952533909748296522688166002860756109484941676852566861560833812458040595516089743719547738946654592182987461946566494277071666538213247840161131498372664628301420805248108216087488363506834067566088012638191710668057022588148209280274360339272536772909632489634094905374886383530667936151086865911261588340665066163776179502693345411644067836827157417405891391658758282647639093139434365195685492258351800604633873621815416526485905329250320024551463538584443637158250457723829907428572448524391055934075109161759423788672333355188091618341356830350116268886892132498377797011745666037096173038381325068264629224274922580830655798177197259705626360161414127927459214478564967204248088647860245233372506007434435249975073829382473625813106569256663469577801936278143950720583958668539921660202694062723842215015196425319152090709705092067736228831046683607334457509433321492145707430738230569665178532828477207465904994297120038753782668267757720547315005800417711684230275716835358120477239900893871568869240801778178011525941309079078739913233017707773107893867313516767162565273641734599910701305211035831389532491389267018912312507474540370092809459031340483580945882587412763363157934443348609745630169287758996885072071346461541162797144072370787393885779021572693519925317948996897150350214385133760742807325616844357481278718478872758460405707595076197753386239457292152689510060457846993330822238760930628832365997751122859411588308546300636254067072509408649000820940297340659800468489443593076168962578336555487315824918802637050866696352643893488492628980772524084442276830937325088969591710933419857187056040874414228273589652449497701245837785632249855347338267462582846615535689213576423067098622461343887420671885666314772996409947261441897021795565648826376408400252996580696883985130690302825954375910073087891151025901489020356105639744962535578885733952081234454776363541733218381931433572110595490453006112599914695894129033655496305310064078125415260415972498964100149892674555709326813993775949232165343921045942879119150436821240121802144347593502442817124403598003931000371173962793445495810026278514675373491855148310331233578089822975010849986416671294743128588184882309534618834241822922691612385211799374081624938905123869757234748826780378083064992357776215310651039048364728938075737479040943236794015945424403983846589522942084355639008523877532319109581894056142568324072637230649355958417898179451232848910853639453357728501178694221152016798978600172245216624059088582101275123764255549671323335606498768829929811613761124115044277308974477621339912169799851108662484221678819123148253502706634097554498068314458325023638302818928266752361061884094471900326977360408140273074506085408092692025636136878214808708645794732223267092284578138158345832658714174788138754105136388082870860353754101332182694886967523082620850106755715527739923433463919631989832297307758526118224851547685703486867950612247126221312147130066082060099348118717017517148323279930569838013999226808650111416630244061042813734613251804665878693473367777843627313836094183388445735827370377308645857666153392802986820120598907718497374039282113948191959957021705418600724589080997223717463925567148854103326737357013947452932059459903831938572847125544748565295107290611296083123509637941328723541548783795668622694745909042566010758910088810675952286227065552433322141701157923747574613606847305818605276067472607397534136427802998239022380137694210056220794162661441481974984283697113574187773610652098041728438126122772151520475980015367799860395925893036236611369895777707213889759918747795861807532957593638455857302820310774217720864249104630941710407736871893698328248062844461205346426616339837173586666759823554324156705829937140761505197566138622273503901003844560566679769320764292704880224950573688289966965847919443809848334020938094632985731337143621489568104737495622229725414034457881259364147356886727121086354503205909437791102214490037814276763341374144724973187509640647558248986115875351027277124174206573186222766624585433278708607192977932057940578354911435871448324529043097218024383979959593465577834042016408394667857612951724848768644816238768225981920769112628319365586325039419486499171796896363879414965024178065574949090443078425703765015584655222444466508142386791853650682825796577617564573498613440461408639801391085432400645194884199646926187917641196974985134177412791328497627767571910538012290226536018714866639618200667233349610912325301358146176441726930828535147265155464367784184822444852291866187195291865753728806828275002767491324511069340339999928447943372129111529704188775158782634285128989536695603026418815113049513979265349554765755787905997193767653833143195069890363048442978594665520737197390578312532499842184790901152766232350072362451787091552590644269954854914760876401792192483427076525454078631681553792028548003496241242403803614635198709497903379046535532704363388920807522712141189055569922573497044378323549151279338273421288115699508892073699000721974549373355720761832554699755936251148630627000080436141944340846603550541958359537773076278515900961855923557555633546653216801989128274512031526384067237551956975864685567135086580033977548202574022717802795670968952933947196133734572581348267678516498829035304687269570130426974296375281052546682046383958615716197767509300821419758573088493924944552163882500190347517838826062103263984711332239470740213351399601323879149011550530866885657256449648074337435809796102653451018109471171710534597530856530828944828039803289430835994130512636803295402042050101507797451458220435987802692184491612858770476454887477899184467475622557395651144112602909997974381079518331503600144879487271368208310096698132035427261593490401266331649838707008597192425771215956528668987898465008528669931766770049388888057987186360485046463028755020720428482201493707584371974281129866401014114441309286153410780597572437657487949369850618273886109015185429195943261996740234287966046882005375940908361294166707104937010854635976288727901411251371902088896101294235018788796369722843147359092934986749486513156180307917568249104458667820727687217413943124131376432768006529893933718881773828659868160992818018363842995907216025312749596461051284746803111043243778546102927119825282124032135781850601650149623821696142650382656063744347771103018787332528312733955601043415741442366996519776932700062999595731029729900973761760917319843835524685918740914358294413995082135817633793705120231750348301844959822724893739857232252179964480840009699851221529358971641281545630460490684285786975494767422617796097787901869831105398731400696851926485756229962756437614689787338541113886638851229748268135641748357430875779767207555956765652020433936101332441771367680738647344687395799221173436396882520078170524616311324933966680949159169737470048271753536237789955800676576418704112919890745207847920764399295012761058016157241520822288327345620364390710934830191869573561607676675894178738871597502543668296877280162037623906899287942513069582357715336625386375027872291937863183410791113668340859282694047501239861047037435239834016462166529771204850199350996554006223164809256523255265733962440873919094921557205240913917929607450373855898419990144234976355313247427312222102723897955812613156708767828388088285650143641488512695343010118240798036910446254295981826951601072550171162105790353114212572398540647803661466454379896313978577377935821133499732421810065850851162611105502778926006575960205447198549455949119235017917504271384628240458666301596015288555251483900950459484271171438959488517507791354044073319251497362977919147363463106591706200277769552194761288675276978868980280823286601588329092537052056159481203851277773304665998070573895856734207618885913185807519252359809492467538558412732816014532185325527393959290334209690641260523759308304602698954324876356059645577856126119675037800451675484350997988199710986833576467076468264361723774773191183700174511311231031600477666490229117924254576010643290131992776552392587910432369395883416733865146364247575877510858260976214820719334697737297532234586823990400615495409123968447304371627622069361454820649198028714706447624164583465235452755338670752109588818954713250661686011091138175018664159972855800152867232356619682029329957739464486914291107560347140698682048757084179405836230675177858511028162612671278647326583725780307233688101144049737080225142777466057418185669461823939616685784889704612384391455049303437327916290233279088818863061244168715398768174601139905143600555959225751363043995878902224264327172285491572515880662742013477723287459340822385844573000578349472585372079076305039937652433333169234597386841970449686753039946183473607687762465307624147673696705621087381340985826568790259406324028791725349139823173206804676361753476542122100208242962442799676654444540726564906757919715393037547188114965866959884798033908098250455614585151959644677787921019643785879042826883135808546479091574997658913748525070744692284621567299308702439689397253762963182549578401050883497892463222679273863612448102522938716757014103906169250833275999859480312979110619838431432462539601791082217442638482527534432571406049490348424389612606031087258706197050465853943980108490510704550456631379827053967302217442646374032817434553338066105976146122149087792864120008603421898720236989431381661188555284551356740492060390208926471955839943211531131057101026069003063753942775156285516456248256337226977047139940933043052473615037832304652677991178411004844581755262179075827681191348164837264721903971670237492678523886708764867654960472129170338781454327918661608442609188740223899237804540027026804263260933906031916383240677972827170359895164969136022463970961802225499240115739645590432317174247181181691550534308798744042042099179865679405157432872641781144955763529760940767869055720143529110537116716525535433113305716125289559551174490952409912784548207208096582638221829185348270128308485686704614058373524479664850758973174457828837411084473110394466697000859122332461075778365663037262852585421225401661672000498860570350382048220052331663317506946098316190920292479581514672834104654342251841857304585344650442592413823246641206310522232333257137149785596005152044000233226878990152686737224212058774787036576640084552463816132336859950234500652226794678126635184619006001338642351471981535303276826815552299021914694501699864798374522935909138237645766367633696729262384047459751861076739191803871339530434138907268950222240950096306251678778178914081789258788599930743876979632264682385493658574346178275548648542147156397990586955892506596582718072183619475898010598661345311839361822382756967311319164404670684690577628300535632992586471879372904703909438621309862437304168329263797088013253036927819231653762553486245125736150754891424892656509360043186331452068102190412808032987311376102819723495841129566206087162239442040970743671025323417713332383596828992212259154339395568053940707811626367717175104224940609483047366036789557143826192272541695211000164724093655991668741919464510000353312623650855737840662467814515394540422060104024881603825773113584484424443270485190305478967801920492926115541696380748614145988070154255503811277742343418999397147755886061858862820631798211221999467686410078331954976654064308386355309781113236405413916535234369760131680149354774386729859216387874493653766975832575172595206619871804182008524797201143897325769096171329524131722335557548668410029231348051777074912224293753906852920199946873488325380421591150005315923301976390964301938056639015708178472915258756750231812404797171946462028845455956858878060102300190466016860790307854576693991899986200086297828934443617465811340087322775187035367087471025684249646235287361902237510981337977795076926626568677907309065587548649309055012892799417212341233886208401356076544152686178621108092878807029125396746816665446752194892631837516212183421356723513318350297858556921974165021670075768047124419663589187333730014654390093853630422330214608263282192376616552557591870764576887592681740177656093436468331430280397635423835252247991319621834741058614802929489716580779284993355289593470164982500449873993672263506597150922627367344741778995804337468363900449392732415246743476767641633603792835717538322102383473659327407014414795397438954912960614029735667865101390296357832033501107247932037735715943394808974852484271159435472726370865266671351435204565314027973625959821997588157511815870232177338765194243168102699736100446157397447645032508849592912147422040099227691760967581780349428262998842403321823705007502063404580203278811105156459194131632620318311750529140401872299307365840829464035589913775882470398939891311140096654059988677996773342920287210428915511827720404816096901093965418865802604014543017149281213418772221191325569264039385410605430285932431400138259323114212337157213845325277076245891674453948589592657314671974004357519138138672546376465531826867404514591798242488547184286465974863922468946133077753983285817364422558525868825794457501078026020815551046560693379902412143818989398094186564049300405712201966911172660225142420315980234248175761648929800164412749950322619487511438647205726500158033724738096609939679435018056361793608713394936372360190705735598068723837123820330732474513335250353309207638830110560916542211151255649607402933068320862264335915389972073515131502773074377542483553517484569336130263123161549604447249869167771135212220566682409994642469767439374647542557800301018899176325555269039768113501291883987616704238392268484170358093222887884099285541550164509138568074144757962837807961815471598668452590358369411589741276307981606018941463512116405884719625508445778271527150037481482660823897439158556531769006103868944729754296135861744466629441642502377978446419827095198199909753084178410041470415139821582496126051370637293830200358161639802447982839891191145064630637187891417440810264929988982222530280723114170573704102358881781459807520850968080837640139657087797504351724741801189115523341883023998177351052177915771705078754115403381613929383637364752502716251331727466468759063563706160359731368123473951108627718593309612202038052836141772836692964044026135284806454840414229448524867853555708905959497167898373494017560055527733883610544456076982642225337650000992308198863607229084529993085220651158836989271749329773804261101985281139884735319330218286889885896353240479032679046131213659640971167553919514194170760404394237307381630842261762672703031799905302117734818890201380581419028423569650944770630672416354688051166039046902661876074720941144133413253486388564475188936191607634830295134452601250354217612602296942066291891706336687045786058492607866732128979782994143594917591300131404923257744340958837963438637910815747980480370697941134737718140581330289339360827360786349472776645578248035729036968863566915683604627212554744311996327240296965036552796482428216262371507658536064607742218252596713859032569162781707977442987584718586231452411480829041281263113838832694905965822894483224599446851642343568258370142625678562806721323629785677573546456559451596679331388834020415182893826979377587122944503723716139149458402170404283172918231847416062253275722634397781363738752221868380435702826517561665756036276864562112749654254414871636530595979073046551933969911052144152823283015720956212501932261197093113654243672465683615305360956329538758557535810109842445069773217299568269846327752816156866919112512289822087394702999871016194025956613937504881235488436480698218213541300588682662765238162512443420383559601895560283749068507832711912617082050311007697661229508111797157604823869433056681842618807539907398417809380395434100758349576388260553614701302484459163156737604293814120350841105301123020476783195835173537100165176209946403048799001119427910635987961040405958711762246333179028194231329948734290755436364700719674609807205398962298636293833796989489433088876559022914253355109375744785168664672284661244537281026091543100425974454542382008350664882166354234351802331800936662228986464151076174649487711468225654391304701656041650327354182275699333927830877396472707348314851093242481176262210850543495086368731044704771002445188194473028896073490414058187304735195878928735079328888540965370823593987441212532485375938339831916847730758889590491964988290861918608894643871201575215743649124483319890376753776448093127951842000038553531745331867504355813044577321685515212588402599211419016481486723350983361973400039887480911802786642218767626144235894242225182846576277524709298495373344410781386463096384642458244937033063629438998962969139583459563083617219053191285483911219871940984028231004961490571255052735454376576536097455045374607378188419573189102383877233357515600432167999345367514503532924203470453109951229338557593035129233715929744431827188247958382160096380274343075925561852095331242088573069028629638783175729404813512546068696573079597594036627858969467942382795108503588997502983586220386132617202236659165878455325744336041780343512350608598670429421309733452737349779706256977464297811286560128428692442843414445936761751480250958039602703344843145443384589147349905610339130205851677642589731636450134344973191071069308950766771781821227358192643701953053881166869572601617465255644671182381432983095169025569060276879894413214487112068816485610237797228390951210848245539698530736873978429001259138952594624409232295306019388579016004374680649043564506359885865066654920023493082346055467407619435370559229870410220545943625952547339898946845468215394296114325103622825506975500309360064639229965116979701635832957857018189640567594918850872199669358966361715531996653087760765016475114931034270881558420706786560329517244538837144905128851793652635399796673350178885969796947560799114449055388248695684032875307273027066962174880074677684187141769440877342199613674670993739960911355170588078581041702234667522382635292551942188484987545649568649700436683568560523371322427863991711926719175879096618473629541927397630945832795954095761871637966832793866056246804914326574218795631492444422224252739585323375220282175187720847484956477722308187621006790828924302181827682884085395839207175509239397197866873429504342515298932677104011418674349459105095870962418535408964935493272078350492712471108769061559816810578144316977551728450983901074189568183672682655312687691188828773978127621979228142640411825918674332601015716763543025258528765742263152514552648466911965231622726978876967660930688178701712979797741162716063993672870500944773214876321432491395973659383996959872240403490510046862735456889887181940854679509663225205408087945521795139776758415579223077736559416153351633992301825116256643558385191210163175355110726665197669595370139610222900184181558206225925280987221385237820826528065349880265024827299676078041177797990158980366809210979160785334862483513995256224629931473000967475026088227885458322046306515987937287649497674571107466330066535193783069162167355777598318339190459413223360982495575275029327509302867075693135788549130341162647297890841466880701181439954444298145600812450397815643273001083523428083135387252949611446027468098329928901163034255196604947078582482483800976975410419469104528850207131018182787466443777096517033869627645599550090108692899500426378454895021962134029013963985974390897756937827607616606241967370392449636033071578357915275823889088843024641957295012124503032804203044774949454247524199597633957395856125267014698081454732648740094116871272232296367286677488513293999989871523142248290580403210230584139664373743606430207321570535824764308358323073222984973711132649483156425670228281787273240634262261731333723234601692691006005087157554948875667054734109598130388497422745194311671206194931067521064392882917404093968268202922909163369793515129802295541123312545993876149938208101503475682744244610130999930266608340702451243189361062801068097006933576905745319802236784058557831608548372002231896434058569667054378158660069968794397055372287843410097507739389379301740094573587130714017648745126041528671917227493819869921504153319800129834933015644500770509797618248976951213424372353564131544072742714842866168420667581302871261364717669534605458235753291408307100347639676465056924164671049019190311342543064574128729661343571104931182511093884710408414016578643699328283659002369676575361865346230616732394309475656422524850512765817437260318213397449009606302558553295699539643518940168411158746381028905700426289074587362815268754172538100185087850071716903919722254953380760656497589409810929474284858189871303108467348020190978753771711064763103715422090682393346474229416531613653364513599834659323104642516938881203453088301042281602123278106454951022134381595140785320301145580463195301498560730322447281751147742810082684726225544197498762535743641199317381609629616610197604125332063576874341107912449245947069268978847881469885271530457642977489683093209507841213747818573261120496944490257336498279188271630411242461028230833459245505013271220084590105295896220113381503154564445952403944333336798089022553808870027178120691935961815411745050357530917195829244818867564763946024341201432729761242057257269654007450255046075949423991296902434340630473074150364871752900850040801089197759900050499773507556401269920844031120158907940571032611116400892977848847430206177970165697506391946929977472387784578513749827896321322306352605089847202474975862145364057702404311769435820083251733626532700517300458935469635867715952144427732621160990488206574660560107998084099121833353070092649939026822249655733449288896370807921479592857824047555246164901118333917205479418517843458808859487415864178369628481298155519720927504411965696911812170151874012409115706116062821597352651354920579312041102624255346579808348131127868902399783734301956624497043398370961171290195316437623318015118598858188853146031127083889575776429695333157323511571978660516493670358895186019051466657815987191751592108433196231702754608399083837439357260673380742249943616794785828988631419977471086810399757838497283132998959712916582784949166650294532940392749051978609757230802922485872540612064580801967771621130671344323343031740543272209836804144832698455228187283357020770880561250546372690749159629786215915263960373027285886922354136100992607300551234845590980408633805570807658275140075219792777339164772769333018176186741055458039920189925384800290471280615677319688981185355594431471890288835038731686380897203275216063712976562065195329018359037867789356886598124033874788542507424317105352582382826651581322468632306565388714947527969578439248027503335954946007089102851558637309858512523899586039361340047195738039121247093896291627736961961943101347878482813391239229427257132852058708871933891861210196090370229447551192853678209206843879506862720462168841882972805416014150325382177437686887127204768445744109051765271656053799282981546436116918562554568849171920458965971241847028015483528367786960581026966547328160471429153224104200161946535089682985659979106860204838821569843643739418027788295364893677951069837345106535749984497901796952562471978976121357546384620405323441105922018223357506872425892217360333005738496297765515184860892022426369846110080614052223214529506035815206766831288910630042076130903913518287498918660500378384570113982258179921393146498591741491964994051876886672111314425103054870065515473974912073657701169522002047147308755085106302520806230228465251321974814136809365368346426581203302661135012991081896600682626679350867936495205066677710390085107986002616346567516978303957593092167837002619131788491132165096154946203605378643104618098435291078708160169031802619542985064473605797078435196530336827357713046567965270536641297995783389606993939165910729554523214880686977176118165221404418204181250946837609867022431671927019420093061706561544831122131504923774335816632689127025925971266219290390919496115988558948591256419116064395701391161270373088770777587386871352137597784503606335462119899930338721080624848848368518248957699303933897216867959366068563821034024918319048134418111513600840303870468746411582851089350661641792141168400038086151472493807220187368409788688603974302940921057141795447018485457143171804869986702892996159413092815540927050229108437881694621831619658568455857082363022734509880568213321641627448507997101235723805139017729921667217410459067587372445780826561041916986738312088609552813445956352836440444904892160774999225474635333736304955058722997611484849046772672665074984794711117505228237501344128652041899941560387634658651031856937380963463712092694985628668898900145728763828000868759747343691681324212261012474676235536673437267187350340184779209602562880004934036748754218813633924122347400079756113828418331362392311357139957900175033435134519164989999081433451334421424164497724578306690844469523847868150112325932523792249890993885159570173833054824141291677278846328756913126889194789930528366593175751631355954630349071846022138158056942320206238794333821897242519684853338402877773258904420741653983732644374232194628722817987884487108913579339172244282622808385211427646595689088687922199419081644103196226887767858356322808481680928871784967163513588113715071505339451802974495189487116327721068158389411781850061896179591206088310272831798944930742812770803171829474457130525028090169655560672977260773677963298715062720355486594656256284315437709765157236519574168166798194838999078459243534223726702487641930429483575652549399469941925330301141827669486819135058262774669468694650806093167156210313525746638905870010856497683856219864923875259237343070681206406401995009567442397675946486099446038639154942947446984790920108770276227005044739283641293946521611087701403453300491738830390938122036324353037180919130448204951506187576123943013162707869215121068656321396858337068254246904406278612647615005492947516010830881836480268452128641612921460951448192263106764031261877502824545394878332863261133036284922308550769874853323512764476271421332842233994216036067598047333344766387420431182212462879209338170196549854593605100351661923137173337906272786186945740293682022602847534471772785476552308330339661352609383777962435112293830949768502950640623451567989371365811367534073799328572398344836988917034455146698313726964423496854007633099015714166988896298035730538470738688461651962215582089373374261550224678683538273283504778745939889801389117424101489472583482902890005090566428796402428068867486801359677902661124727067316627506670834763594028358792149547190316752108166805087861244900684879932348296661181570984339863039692574339573195480988444379083744763833369416920817988457331882371090315693346343926655568568646314432977834125401021038305888957106773268662634921704480174835927949898351932178849708530401966619878623166115292404877683729366579960607204043472444416005190562112283920952711108138761217807884698230688347752477842879385373487785211068580944102305074969564445907515520096072184478637509813147547684690307539294820821602714806300240237186186287241122955878734334635117894355545998316099788746649751665698457311916286132218232586093258769706280036426957218335659144333159377160739775335310545253895778441854482591559056817124063700337567949200073042778831679459883334853963823242151196786458115819145572585025998764200272161034467407282743614344017874353797658296960639534489519933476449335608095472183267267528156093548095521732077565296043898748306036803531969767163769276239620134336242582329458177771338830897901697388070639535252598194167100750559023157093173418229337147725206989448759055664193922204990115476628501474608193828875253385339310993203395024245953075844426487261033327280911906587766850945099797900434086296620225969751913462413613041376727091479135885128748431791118685186828056960527327295630762852686727515576931492289127629468783700541570691125474338214762983384381683464918661260562774398927317688127646385181342576575524198125734143325782203199139555987341061371914298271961531615958273293272239109707805995048528773602142018519010045072680017272138854356557620663430421504404112725351026541061648287327677119154256037307252538376427944447053898209330037304700753105606998249021135404788346417591122035216395138223073520263134664670282183258466707144697223406519872849424877795798215113750140382548373641600032879498541421287540600574372222283803500885507221339369196028227231371618783848054594647926659498554453031066822987592385268352030901929223891694993580089012971252178098581473052609027787958972524992644817446648566191978865859312204687101000619609115482088936203954263583665180422550088675531178181575308529644955261587023840033259956510710818792756790246626211389415337209364138228090212420318493760395578917966040831529649113557326579659616449886993726310014794594558417324263701152653758303310152275534248919053035302118667839654862586243092295859504807901471221981891390399443492484905312279144582497998257841497078766793277943323016699431163150885372757426844448669759597565943542548014450750098910926523684037250066024936176227486994902913836365114709860424606710444058047144225370112049537549396484688517934925102924670715260081932705944236063618226615304145383157679892464646952051261133762326485842643661468422585428802841287920475700538545514281915378603880582679466061081390787204158396180729965246067465348303382848144338121034649360744267503143390983560949577031631474793679682505957337268754652210991182903200024739130178560728311632060778675995065709936037615217629723047886678756966516871870193682302983302667400020819301744360943784092224964250588070657262563496180035725659126683222482252806439895270095682327529004363414166284674575369821853076886899285562525183047589730503945625552647303429451338468102476287831688908289345713949639602567351867319977826950643827316232753140603507805034612089177151843236414627320599252280251356950380265539257209103732451276410700458397501476592954392066943142504429087990110385032350613126184524638399267908095477237234627341159106532063988957445023825919503031211106583891035724096682354892538291700387185117894249644038263967110076931669619625697823368250659510540945468985842838248624318471227878877891151774354105652509742136935283304639271185991369595634588113379309053650559109040951738398355835734257537621711197991857914313343712725449538558150547200572373783413602429238966738177658045694355637749305188301178269521898783267648319743410112756616231820755030035839146921938887963594976715890603184968429552706689674118439336791354795024318509586546714929633100375653336217165988429328749865965832724083240205225577603247095698103998286811259055764573915203750224936834382784162040574560713387942610826969569400612578822142231492621368360738382751353743049853713240815511188053828972525828550301560294864901927999929773281757094809503953146952936486908471342884972350720833483083140033583959288680808531166581038326655996888498762454772208901544577158419651962346407746602480047982911797471537040247132975306566645993448416801891788637896554952168288950731230370826695509633658248123685465632177551457625902631030559009033166595111532320385089343525601012419178775669312962881893823216390425647685724703215642847769084946491498849926776618410618364938746530793114269275459954733088073077156128028727450806062733275934781958533527155348755269425520528197713420089398767344067114510532950952903088599931715500832410127433177521699478237863278693246621297634584984107699753444706495836849355790348663773498917042026890667336875766105558939716390969000472307259190485131463431548561023665193498102310519948452562307572086946911107164968654177189519118473871326560206421176531886238368013878529932899967218570608260703736421442851388428266434072553924426136766276265681599572247634803546700035993541758079284481548407987959417587127647711284552589490767997875349845626713573652440102505939579269623694573654748891090435950705224481950983377430795466781935223352993896399960643738629105351525292145353181409276609448659873609650571277621161547089650121569553327120941382167911869217476518400402481820513786221890417964485826400846716294320240471738357341389326395857175191145822861477277630046315135014427761413455386722618570001338467906004084209650996770751521841698051703027794315567348348686370054961230041815425540966673250288275971204286049386649993386079346187764584836657359216282738614426562312923065110072267325528573108834275434427998484184372027215925112209539847434721472923972440497135917969314051788588734072607244251157804209821016418806377335064894662964427348859733416298705367401595766178256464900345907121231917315128697181948404406882848188766881066125114234095101571811159043292192231197395203018184591248812605683395634868046426134011057884747672870679720917569069207068803553231347865273381170153230526237268623010866885947858070612076606751189482075858866566203698886167294177923697529558388293475025385906945805376110181334684270294156128462416851604477232170652035020135705214748803961933682671862122571249106577535913161203678288098234087409304830314768311318722743664691609334104294374756527668476320435595915712387122858554542486873837460167188350871583551326125654783063285086971658727484010018228808518542856877530381059355599313232668687675397519384548396862334055768844008621353752026261387594484489866967385898375462542534410312231103362333792573308309334847051277714487852208612745937020627996621249363108140287119871021578703645931608043868455908919034323364230762641387280789832518330999973313303979366024989367380728480202414189066625903678187134759013138512300337032555803366981594089494003249859155180946075107207395383488166640242613842009230444161331040182460817580537259352537127231406896003864940858216526463772889438102100783601574160003547968697066009728382146331754234211102001693636600089707390788025138344165645274305278083606513069123105682783060745689122200790157636630900339919992675024639558618340553692001835632404805926032264851505014329256885748283132610817615812622816497226582546282029629329449521577614904351368116333540468750628739561511814902968367127969390618773528932684747252372397922501425421630368462803610098892662863455975883027130759401330333863149838522643389715250545592008835052059084763382610900898967897516809789683370945731976844273521452626201384325044873904133148512707200091849906190701981842521149619596376918571797955501918576473917973932697238744077637003501015785029735908753890264565101608348889622954038552785431321227271614675094634352472949288264910726842384329329386078539973866500095954973325609183899360994383415554368428889960971444355098084928983834902698698975384108295321919851215719525570626726926884415284518504234619150990279443326129987673577947061500824864440806198331966458692866450021061576269116424278577547482463515587752683958942577967644820333946975091008507413990630679299089976713042304730063645964320720139052873525833288345724738877930602108838546297444296397207240205521429631271682074452832091328569229496998256623206569610859104707843038665123180662660390793773324479846831586039510957986919055478892723712501058364256159370036000383486599634102006501643293705456141554649062296277698391091624746356298438282076131789560149454801099920095851702393906959510071066306890100839609024496506765500166707403169105723277395468067194267523038407022185783344502445112068972409990811952410754701578281827081103533224852878928233432206834156268451348526009084267050859017608256643819782377017851639869600433821200409894331052639875812699214024847281317735104415115499782602137507707060156566585660110659308608548889327496482672434207340596523327612721304769975863515210544081491260848605307104674597766565616752902492038746192957090743520785263772882602767224150157797161517244793367616397595285029445721434762788346795248261064936639654861517389704025052279051495282422703373396855542877918163719549426128135064293417761086736660033645055786167118552785394564667683056197411317799677891864408195130812597542224707543470749287857427734012709464210726949139296483271165452693285987133435341500199694541347938436161466020414951607510587574459229897848098273396287762945093676278026414640575791485839572871098666427521939093710907872104372439763311081591819043896813929711579828899055412340132772217581885491969817392915832788388330789493607930073178873871151053679208286718124582430619237358286757102901877429392661232246852156461116942017439323725469149988258307598415625480454116741245793736677455476869234893592675097257880103478802959297628108811614119766460609785233308756274487762402161347425757449404131067428123944429023234768353701077702762768840977748255344850707498243734495725996972765376530775189335838695409263982725934861947442186477307013757048333567106198805659735609703766585389436641747511370840981599771477816583378966813851459981323461407664703552392043269701590507744567222896739498717381074618544779973400256623201280314351858089168000263146593378390216183749422492808279671273127543493331005308671107786909092264949098531779967760847716304563668856911338391373776484238676427331627378083921695816471210235290374023748547506180066773163779866128164907715214467206184898428487025191451723705812742705829350610491464457619504906953274019398010143596030476241470873388680588564155704743101087584188142305591687999074203728686157668939096530146251425735013796786147985378944955558167273506269666609665776038268335616856119705298102759301622092642478637943943084611787748373362811938215471532929305156162323813873706556877609380284720035439898927981716371019670787806641347849399161403259570517075609950159162066275810839428865037392001880433443504871073341384943593326052929463002401095919619140360233661042125334732450577788329466153119848541831422236843206039852531837547650243371673880458973705705386288223759733891858744016014742776126865427826570900608948378787967823740389501880992094650828337401243395695092828993343995277632845743988959519679235862755704661647355150551577370636871565757204796331131526043134672958795104616332041814055250479489557569545579026861000613475707128176659080311199959664652666569618881246994545833423715043227993272578200275164483184513288123094740559544566980320388408779806533646112499299264213418914030979696311644838516960809439520629850382547915556783530689103935220410668165078119422672249904195295486447659532747914480488294895640154818109556657392111053610605655989957307810989632966011243600355645020540360861869709961933558471241106247958356511677018582440346221454040425217511696685061047333595408188032640660547432796718039070484032948391124578623183683241887227730668072980300271614369011327911761572194544952645785485871635755303246538686882945490501737543293531070170828563202779395294387000733231614665012733353416908572421478200870212646156324118600442866163957235228934767578287762897160712124855074535576283678306504958137564410192939892364253413193924403383710669571964550980806939226399435954842183904126303490800235908892675008922930887380496318155762502754095075140207609585643786489342529272489610342097393927982044729040660817396334548238545659162762244432372848514663874293528164015239135377228692873330853313702061841426384660174291740756170968050406989633962961562057066064852343801406222472142231063863147199746349933215715348491649870700948069132571270064333383949944711136874630593186713051570248602309968998718173302096004856462794300542107223622039077625660583093661232526296252658368825291381024140675719292900609467694831150179624242847894380077068018147752733668602441610089016460068406946104180765711075487974284753265821153763587584261993678462937859109115108872411990529186541124771425297031361548967025713536998629943724378412344650834985447562390435170152419770413683540849630708476751691991328031745098059940629200622086629930642777874593253995870717342312387701402948864445968025856868177262079385819906927002092038789620800525065227707360779377354111449604621388308024577982647718757156358183333371407831982953298722570779038228751882944916636673474402956033882776944408341502938485920033702793016142138065595875816197483348159491046653947758772653899128147085120519453671886436934962678002330698626578780647911883975336898634065915134728153297560981987487703431994207577396799999717065927120550849769459834588824585111572629889989316931158441335125116667534870554931152274016409453782127687669430483575737733416128779739489315999395148424413956524861264714079853273297945250348951245279045277154050685491119207241025648315181647409253735648493176780086674931322155785076618526121577336442178048904656739206231478515229293141266481538487432311258649530403419896439576935441394195630350644383701993314097284922702787703750985520865337584676267443105501104660988689762278179103283386937059120650555814901930322783921933510912129499665367952187517570621387179773847798500665462721713379572443350359894846494607396935453008609518634321843005475242032293577608565614351855244593728778653652049502825313529643675923977268515697211226242991129937424986443645359469673509074077629251386352042231613161626394461556355978399985864593128527888766898597730732100796642753213570070954283914034668831100721057869874056762758913019222499318981444602928661248088911861879123001492502000131006569180967781931757348361239980574621024853562840970742528703616712087148100496530052441110403183895632975266508187774644550795006130534428460221179684968618412167669415255033310130493043569713706706961418549306754687032750027851911736131126440597989328599145653295241875233110911999020604838135933693349335060689005990036476115209873157118555264272592221419366254626596921303191519139053433769537731186410174861292354692381950905113072001106626953960995429621782426676102264723933288397580778740915830404370607844008451967840118898089789029520717754563535742823863555262323058938509194419205237936245557596585196912392353489634289614410567011728015409106780054482844684285187129190184433173146645083467112392744361557790261875702812880738925328098145268482053446161847929752064793160783028446226875372752359898171928594420580757953064612477737644717484182696550497278163320492861886882709636637327060434226268659567269226371033846938521652776393077726276303814594673723137467836178725615949747935449326903435254085541414677962341989183339969991264496393642770351142092835483818324259607915019599850904295052954549175534769298765228683111743884531153692662562611372278401116823204700738188885506951227916224383404455730782020551409060924486184809492584026789425559048202656199782045680790128631712470195381131227283953690753634586641359514238937855588596833937368321015231990562328037600598408285918281109736753189706697568039946535280262355227580838448224301814835877375698789707817907446670105455237459238101441928082085928353809368399742908587419947261638582175592508324094894215852949660345445469455574516705423452789643347113251268532446266573056713386439765727660622260719392878455117657996292513027747476511818120145795444605187226470582460472388431609975058385474150705755414833631724772161301105665201978369664236407974267055641636450650259317090765467733640242240738263650274654480692610597040591827843086824753557287121943138562626717923106902776328868497020931537777193768348159342394881771517066649668122626146183189679665754737171411328325898741877102243019826904662369495760122405024638450252261953919166290295544232107307850459589724041173324000841374429121469521136601386579935797059750126431305806990884330135582356722110574501640882612931707194090435654883051382625089702279738477387635484401710392385324063086177159847563203687402935736963816754099775882686531002980536522891600186932085932236666573823118619495336612466609576738248637352322287076201630124919404086731636597373709532346737902645443342527560342000464610887449639396473254908782776767240894723016831563796707498820827320463203639510581407418024196343563973576371419754281368987277318974601980388561100256488047848550360723272976302632606302771567651501716870224094228913698781332139641790650767353213455519915315477396532677268273645782909245389620227017471738188003639750527166401077483194026280430883250522427521863653930923496849362025911180973817770372257204289784767318640672573915658270800846885403930630620832317715362712943931967561414551795243215208258111678345219219445251697950620773696951033874578899069777310374112224049775371703841895847022772284654433762230089738937560467073454509343373166757590231052290284942760039625699697873692383866385082204874840958478698768290272271338571500483583317637543270951673074689579961172882585905949543642717949375362347448125769065410531054259747428863433186883609848813489448622191171023632482069369463598849572108973977663772949631758789092862705815561783204475358504256647378432771730781957075686925621425289803902583821355574939513446125729603217343807131439181398959478565118273402209798253178552659521629255416696471084241052611760788182475128150120307863874543451346736943376053599257226870331836196192120739944094978016700771439447806064688139742845298069247147493014246691125540974952390637166899988543595626084801187684621432524111292123310689080667566283584427732897254013477800884717394771064162628957002167662325114304122293255951914024095954606322310995550239814088119326165631616896784582572930164457101472303679736828356796185649407223659336160766361812557254822888140585371021073750935299563621517582870688184208788883083514388076255431529375725630656988519520047529291824831058262268856782630753956938382993307588587785732971305687296294809907783723060825374706029769951402552549844509525395872692613835235764023976454511679037611619429577929683106672386754414377468851268461052294834494147069675186794913715338854828122046065771468696000468902845626018159495689474486804434912761561454696599494817118792420399908242360414062100123268584770434088106491346314261931302511227430732841645332197684591824164866213158746483447098040394813744961173154567389473769147852222419208956932829404304478829863160535770941292792411769715345554786955792813685878818311215774966019039283397597464567048238948453316249107202091277836483918099914674709414845763370107938064505026302821212545764339665444207664667471689419907674573378973620190916973092144335722052955877753737856876960549160307187820648210114300584592068613128320724442610124793670524102250875226495294451700520872320080287626755621282640920270357645046382815318296851323666625175001938013318291636303383981403176229771733930360164885318702854276223235388745347723286189469300322463435568126352680134501519853897222622724495542341530905350815685309328643986073050671601402144852178685398618520408063032405014610512240785634524963256935987279724305783794017950357146485497653631744298644577925495039725351782398086048780329862418924789425099824811175043436880611078734143572051821253689274014804424354498443198831764695543417313069250515247247765732840426155030826163237021328051906088419897488607864831971936162691565160402780812609733335202580435803351241532094225707368482602288091286779839545327459785732521095482691630673272434952606875304964866111913662417343948694433250421528574887098788156578245847725240579481406709653481220481717110533207323737240051110464129910086752549108070771364310901794907607536799655440361148263184884648257960308128952663408768433244382416868852812508378450901600566695479548918673400634187264924985400874887174379575351955980276452434314781782334013215426763104307859897910511062572804739981907137577110002938465367844929184329172202512556548549276302901862089532507442876211326539550671878033424812621292794829918166928323312633013017879752877361641583136364383020321154868288532601925846223186264761931626401648421905480589190436768761525447789476368832503599538566638079894512707007189905458241962662550018880389838555260799164522117726768981500754551423225383009574871844700785775683436682513806224031514451585021876819741712024252077387463860464054575415737382145491267563122426610090057281995852934699781356893721854289666046727404440561705433250530879209871749410990906772185727922523785447279677664980772789635369026171882409580117048437030747269529598244833752248254358358578086371704670561607791528589575843877926036565357658010056949338219529016758925806353570297350295998339384847282682325620800055717655105600236835462465097061330724496834693017893211987848248309862567679930908839344292956574030862625977546057367549657561863671207628051455028956717015726113871537440102684242170526252829376583431300463810991812776621494152879644791377545264202252680840303372120920456617703063392652228204515663720267838118951323238831066860766647424895363544002909754130437847560665102393502749040909724716562712034655491179824297460707873557893927418240035489444267797694564694288975592781028096371850364268201354972086587689792435562962365733736397454828233808967178706656425068027038999069572550945209386035666399448693684461127669476029507286386571679355590399851074022674859965979941584948515241893485353373009451409354820507765587058205576184173873629252878443209879672731555178869253078493624723912180465833836682185980458748146378117893717269124795208722439443190725236622751386991247374450513924538026283837166867363519109901009980003392659323532388493792243913574415343891036884014025769085233185218454290717137242876583184447585944941829947774286427665420286911756715238062134504684026042537657144387593514548918158514869406445202795492790390275277585673010954074424313454664405947944685361749224833571835651289842084535298000630440643499810912573120260671752858932873058579302739328561999810508554980212579115230189261212826177209594215419272642403220478442407333986734124956911710746488388340931417688561621662321142078135246053666928657358581141033040555919894642528330755422968334129562789757427567070490595040068026247749718238975457606975059663654815655663230672614907834111290927850818761022917533222691806215811324849334720887027079433730365854826265755838481307209652766485332296433874027967711546042698413231766667025317032051833601792206412618661302314284287420553837180280628132382919723271564008668020852480958597426163756974858466173824927046124898661708339127157609893336023713995647001849546850745780828730147916853588637572365504086305382405611736020564587932532932449327293523770759016945671715682925379698826647101489094046330492270973123615366678892928591435836548799330026318674857451675123232316150168761003585548645371057717933604794719489837109868234932082680168655248484969690597453838594975813838452579258185836719688941965576118456254666876486517618529077619387931097295558059046758447734370288356912199349628275297202776369658953626047572262081817235215328705453607383093155925019836511442928900912829015758990978507074702465149083495607700536799471058830035193617589934296233256352237261863186086972846353881344032483324645252704801032071264988079352481094818143187420007682246541259592141701471850880754580713710342841297226478805229531174970319942759383995612120905241000895833110238909845663963026086105976521403998451255797961821155267476896902718258558046166866098773001581309721506306531857914021339152965063559509483254228041104470616028210272182240879249756977377767585854172652375201304886234727795590208475230916303144392910049603254060044893260890394599492857715502453136903829132704235948433410504482994853679512035175701840694805387322675883815082687580318192000630165833871648541682129006438877165934032095940491680965910077855344204474613368795278500711075998700689954027686244452779165035894765879863138153323629504873285374534417777107664932026209509526867437242539087461362809399427170771689770263790640492575677729099941008686780307360902495199800434498435007597380138862316026374874811325992611510972473242206131465023797966451151097645263646704283668873502947561407923656943786135396724748310611696609887962369078339505780655459828748902010083380875395983850994627364444084251171548701559602228502068735646994730127979701364737643864954650991123426710049902812115055479147684229649369197907693335579761988605991489139282156718701419309422667073226059760129533664659150929256409568142215798101800326169954392755341514933343111326006319534345750498821503202102019559228607570570494264753503332511128765772826917138285038305014939385681014367443325769735085329077401397021897277624305842627425181622761834069690787786101853889502653935645046777513103036514705048524764920360804397306443655311972807926177240023458120318715413360289417283361117919860146129202175847429520984947156811646044640683400994125173998731324666336051629745437090030504496340990081411364220976000452642239501986996943340448720478590523051724586491502180666625316107116498559930835702534531285203625117217045755700224381317039696950499857905569832364726102070870240983157746882733083605985793870137137890252947488679689292273191997833438312658281948694357350555612634351171297689915332082888597664627594003470945738316051713809090818389771323057156795916144260154264215776727333132081308229725507070306243490917942389084016885383024411573301359883357488549815448276221291803853594981994021519020585543450517928785202548420860500935699501400369079480907834040908042551466141394775387871072076394506756592211001100963136215845961090211106309934617473830349710287227524706499636351042750800169180825882530724958184551479065541266983305892858475176811327506614621615501400879043175453470060792570858305109130145291615239179479526558187737011634807657678862679467334772798401693577629728824915762633093440346749500894460138570760485599402298762958638526989122732462734541164409211529766548785011652243488351519512524100444567089816050030348833287040164941089046117328163218892774017782180615854412878292563030258939437027257817456322173019997243965100446517942159562498456755217494431597857691018922611027171771114469490969805372720842490695525850100539396032603223235219011396908475476169081900037090698885096499463546348327569850177193891965903903321195180341917810990042846382975279528971101409623414987841591020196312250695658498243263957414328666206037556608507683155150257108561308484765969650192418113815655469727273027474280032751393319847122118271149460290574977339365148992186182116995818137701766746362052889928858663713779478187629307393650970482842677385472687490281024631785112208069303703802954009109031548396951434138945444596593803358724994020668865035413351603192355268260474654904810490924399671618200311392242814825639710872543407374648291675549582540400237507825388225472918188679035886229236506901839103740835013291087219527749839765612338695972539078958591633374856822966781038861691854715307000132947185668363376850711737795633516055100978675294189962875168780045516164455064733782905221480551886152320396366737466933976178453737563993563891414758282577917830280195394579959896647267341623572429626473166388971552432317396253895009408431640748800294458435057885840492176271733686064649477529462677127844797388309347895817898964141532354877606746748745200720338452514213269233292763372854562894604462050215742684401913096173585549756583953061532947164617095718992378327017551060552536080814813459118229097072045734191949868822214665663102622645745755901343800678385056680041566132808608215084102084389688748586152399383344793394347789880973235255196697455822888152683769504366465875704981056537665745273674438824191945223630115983127475833965616990973797228476635085824545786697401000667720746030579855467971810711969488343029075461169525011359609053748051730666588742516744287812210039205423837474003526179440238466263183804171507875366887124621629870533906895846035361196388858670330104539419151013259441159440652674134885632075723647996100189329134690892602285962648161169410220742037784343273199373138324993545434653937305181379708569630195014782789221623842773857591194538710368150737434488254527532992866623340015140270178638024210749056986445502432868432531501250937184893511767156248179384625848730393292424700648758764398641740713720934259677361183776660987655464890001960489269196067906966172732399497678941704219439574328039264952129777464087793299651342973300666936132611884639804097572477432819824444827832475026503717463132828287942311469730382457392682522227835752656428180631091283873534041602755600648130120424588224611862113818688215227640038923691220547532937940178669291606106421843349437644868750850070785510485820392108175725863038203104544542135136958849761310176480135066820544617969002156316807902496863773575264077483903949940749902710495819546935606726492241751730574771073390654639594709042165443775065814334688084382048197629169094350419323870740707282532497131230840091828896458758238746855390458116705170121403561478274768222803791284879561863533312122888826562791127365585610867464652589092459358235312492263977139303653609855895677370131675075550967973315403255704969504221427688145014934423250247391288190996937818049101545499880716641536855212896561565780045103011565153192780108342185479084620278876417842787911499717591994232362243807824588798669061096325487066014328724056845640687764346385695463878348854732812620047760493284310272350206022460921791850447491129404392888980349925364825805458682389481624908277586931836932263432644393233924272121236653820476602625590189608311686329013889709095243617997251247438333707270108344002288783001819620055796352997048447543740504128399146825934473111437395730664682586856219603058264833256961571696952289232458520151497987096981153034130032778308728486487242793517067057720540108712452214010944724176484081286555979190236330786922343515902814861116219207030962127774444008613224517519903738452253693264120659716312927834006786346599488996603694272796989037722258654658215569149638827692499548854495409726271977677008991098119284959831087766198761407987438987588638797788658579461194107084691686345975845829240276746684983652481232195194915429993666877374288569324751733521277037811249607962038897528223984145710560454966203924230235001604603481722322748661501463527884185850843215381478488641932963755727382984178312094026875821531841389694519024623006232449071985691369969713788787507422558118152849008709901872342123573630049676086813728044892474662177147495866388166110187541633090793991707198910692766959930100609844183653057486463520016727885357163435719365116142585702581204606067749469147675232539987602146027288857140332274244951654549052047841777924788799162443444417938183633766930626356695452091366225162044942054444440624601918921658987545709683168991664246258815814498065074434981312132592219770346692519674153066405993507097744161945907335865873865937849082097249692527971062824968563311259421508166082261889101545985563748749908642606133843186682685426019392844274145902166669189714403090479350792366043520071512154540863868644140766072081845690299326063447317661830989789193882914150950881801300935932764497012312753195488772969991984891849344063414430897714360881001470908328241171292467384968243374315579928613991868978114150955878835475486123589133169934210263624231026916732072498211259497734284754117630950358245017576218531692310966256577130320768242800690279073838526904682961582898003303394649803661078384540175259735233213546581704991142925952148244427460150531298834517472693405736931676303540034866170929699146673948497921666937251207705671597765607049917742850007115036763033465297840656877935865908835376345344117688852422118338050045119239484828999480120755228094014820728377706420129534804327689892514798170079477449665237608869605015639090953784670732379060474040546487285838148269845858679056607722660742805205019864821519009681977651700401633711291566605858961840756330461946798458924003092510883056816034260025651927567908482186070783544484237636574721914932012016817929975361851199576722447435620022061498123282978049875330573622365900205505016132120030557036046609522099033641287285299213314425308428276135203199884496864531298422267409105086946291661640837836453230130390363762571435639773665524526642751152025582696055635460673888349216852329530184503645267144004277979137276516955320416088712092234850448208362114858113258176373783596443520505301573233489109231789648828999392355327369289594414210571813780721541604366835694984994968342693308047285704576657775948150637231325179937426563882089518325192194413062529610453651378534115628009559236175531986320694822416870276814113339248677824958095959523121341703117549534891277895454393004137364437820897073794126615800824241228252073382768022549902049048437239689117349860379221757379274203998830361123190280489612054331741373494806880631499853957454060184727676747325150407579418112841788123552166059685870858934539534395100366700072809468352361129657489704690624600477574040703936193147460591671896050471440949592020760262892099288479446541827974360685116750187254139726743633195973918602701674134362728344009162421545413831088670014488407648600753482834000925900174167719395032322434937036587071314677804926089801065870951428404732776834726918670212392881444640071892150991941215749093371424780073956480468498828306488806821677115253531042405840699019941942024921336758926765454447093716111493438220004858531617369392898684464407052659408359273542250150735014059824175252710489319925103040991214089819261417333431738354628006993088295104073130662103249155076381225219046935378796540581683350118236629717290708800441790955352384198223514931814043748188736997005471743856156281544445355951111036107323094475344097955835358962290971083264596147630917780615596221166761763788822984642103110396188165915801834395762707757338135403681338805831058599767815586466537917842111191313443437462748919830742147442072276355438830585738358882447992243737186153179414004623496296108836416778542804226049051382459229706894272335526686829655830619749887267493052968359915239111315691379189578825243132847037065840421931871549631343595785592513037906704199582851607099786708703398780616014094472888741086454451753225080967491419323312197423282951504413800494871161816657736793803614126367620956251737631010547761059193574279009127391098915563522425534725534041061399167801810254329511766373131809483375293814931587611861049976742054068823229146823392852582357487764641393653278090478543987827094253095646437590386778020918887516507767120624802380412600863567813754553104512706350744159773789414599478300945910191693038843365377383509861088376034747012367530898382613154515837767682888855482674621187996559302218041169858894945230900631552322526618836250881455518656847642670058013486662931238465142994783680054458358574250137411891777830561797176182541700916407794866453341606317410291794805743621020494155850811846338775609684275101257827446739413233518744183630184843377712620518148325895223764880824159191041003970088158504262624044982556184546634083830042596203748186284807631040034017154236770039072718913491144651947126400290936853939705998472965089164809516105832398446646527750090894619477239475300253183190424531280498881419917563109975664998995096877082744819422777070489641632645716142948926759028629430199084888110042746755145390994923736740232530284465541998139344569691241118894668770391599533867596625938846296427363291678680610659959719626926132584754190884494194084322209839518585660229159747032884142472883296410866968754200598256332569715504211921574606515557345255198144738928219860367212207962477428031611375535291296840735433483743638184084805276680545453996850432820101783546897334820393155273121015461398541601242262828383300714230858838214334727183292097477940750860179356457373697878733206013269271519674669681925470021092662214958352248980928266583405344540850114541767244265805961165241752985872524768686063020636109437439372375870939796772391417224290709233371317855972685706257235748133335674712267782165463789033819743332915905899807885142888421876684466265462440683880580720924090474307723820303758118290472430291201576766496237092208946291690269661619720397690720202801965008710503935447152381739330491310005527152052249901210036228434239785541995930652761249519680064206121239137098821779633852643298485104367772701908193013123901863496332599017386002389353831039263990808314914264204531663194191524593630485990873646236522601045038775212603352066096204594195296053092176738382044566508994629762915586552895712674125053183867389130735600002249176165112910778963856079147836253145277432677320624000293376362790192229024551685081053354772831702485053499495427085799405832406157051700311103996191845540382745684257120191128924353516701300089338086082232830737908163129083519249704104258276132379476701779989482616422073814781288819715221713937743110385144579533485422245479652603472507463163139431632339988293064255875410649282231874307310532091087332549701949701600917260538649972259216508172123943921492413955228270932876490050877393060975468710379612297034996505231098310743876126559064301095306504448692230435525595900629627905740184759535584329876216752026543071442162956723693205232384888410042791565757306651733712570330998837228415775339422383189329520840709662774988481997406846758418599059241648343851445113170312890714906503769641789461969367277148364220856902610932751313192254690750137559415039522832011481621155811575083684935500669677848789823291660901656245067165901149770795563933832034576489988475415957020489705490962622230528296529622454729122207422670848442941429433618816408045381402149540699690262429783095671663844984451366279753633994484411100186744337461839036695995399312493777003250457211762184554372490536407768649737302000992897369511669026428631372072523251795031431812324912805050323189890917323120031730447849754073406546360912303671385543327685946798562175298569427165266527927640937374941151666476926278831547223504976299065953690467070937287381163616606872767372269024125709377603226014616906366701668248665602534889682080582505803089482193016701630093372059811551996039137628861577011101966347341029099343593181340717174397329426173067678090779872064906992252048961332972588830145493707621166592813559536876713988094894671037913543731663375068631057523331885806982949620739022779396634970389049033380660509434047372424967813864676539447744791552756248368274319169295558350270241849199347792655302820907840640986004541195194527096015131066209102616756212241204060043412808189028971530585047917065530353703296172845804848154218291091772001171984819617181882218656797637235174824812112906145631719070823795917366627191010061750406517179060198723025968065081928147247254188838460157134750498150452325739235757865270590390062103810263819458662538562554098258209263217924785201616997539065750632795110364912889693362414611320027243534731972800526902824733448551788499811997945665233923717668593309685585249952421866729211258088835502672401246481378947742535836173945298062535214506956855318129000090487788212901598153442713021823911883493627421969965786929616344003399597440362781355566317157682572184158721918819274876439950417976025057969279933263950300912241568290599128546252411081156286945756802871191405503955568419902880934664456987353456104701883934415585907519916683471476292648942432546456385478538446146945087662495909913648739009653359787311525967835269025088424898139791498693237929514943434319895217170964307690413349744424236166119247657708432484976231557744411465355505103305573036047174160808868565720971593415205530132211125672354245511871273178263355614929480920552206261183512954448414671537571399135335949997124049500425655923456861022499511010315578309704573748817111557405857768121449307064069889371330221067679701667420159692430122716362514168936924740277608413494343161196190923383875301500445212063134713415970363284306588106283513450998259325185458399838974414373765726498809469537041548174831109921738562526477274748741966179530523734702907026315276038126818112454399549257841837893134495561442945965232306788144491721998734351496244620745136074611873002292404894628815559481000502528019125211909576023239190493754163514529041910104350077792627359262322362876188701473907706770729405697638207447927916448838000505633888139595345332271523449023894902501519506068765234538119204587791092602235272716225540677455868061807383553472779904593157465243661116102779792693098602546320480165310092984254170935910953007200715303063506818867051535648400715854793724442466987911590987581735273981032443920833253984289458387717551950902196948727472475857053358603232085053667796729800440521971241974735502602400335008689465866632182097747481724662469380288051212534380766566084881610331672579018334454430816585714639998581721335505462939446201504549190676735769292236788278587206106046952272854491726189224837816706052423289973903127254043010828815612518608932576037016445321894777490060612714911091571433917628913847354865784542330377546469142852824292551291289492530711123349829459863315279906022253919546266869248710023148832323822178408309728118085051172896546867822880238528333328319191860201498858607229706393231604331606746388217699814544994472549170248221814698148474974099647804570321091229156216045484746399600041161189630971159521080255682629228971756715839793075897355754775644380600679613790939239493423512769110213407222438456026595764354716936274376471547350091062831134226199549470074900934151940459475164103751630510098513881082940534608963353401650039173268618083052188871724202208079685741146997582113042138601295225488017179427270247276383104290801466841062504810932111040886451935425531572844491600883846188173111583209308727918168253063263351038393420419846895042470224920570911659535193723289144859257920381125302730384749021782486670586706098310676911701337843914143213515406307070548003521516336959870069041035971475371512254699510565518633389433111476609865580763989316028873108506259338813699772276825478295259579218456016340897776019519377798037190165134942282359685232091014196069321254288808702815703997665877740726297871738828352253994200012847220910927950309911666065029218345830331339240346951187547262161442368545862358354285066389850357014351164802785207705980560725902379431652871340323363555478235949741207370406873602119555295748525661945745003760227823633534557762464085843843262625486029868691789416186277264802012132004798317305798590634092388057344693088866459515375926547845766150385670876631743376133550269359249603961850790123466583261069032558590119463518304914564844871476263440458088857817732664453274760435765359548705679813842398507125296946660258439156589135356529754218751848076669960234869513179481352196929962434152074323063844492586680234397278569225948116810063808671711288745857560384578481747973486589349495757165087564671407871076579148081583393154921272153529549345335490030454042430502840821617524253595008012184684248368316316525778988528110266096997492430847452987502392868392085764970574767471220925881983231030824036997914855825578933679479260676684147652457808669778486211397821666178652523948155182804686313840468880798422530341415735038000482933279765776321386852283281297841519295389024387259531018860407715959020627388130354597470659695959253136338336339867257249479141448562440325061984568495500451178095351770770569206841035570877818426744804044454308156479374869080747652447516922147773537572734820608996197569494351479329209651005821604407271952310938523288218217585744909172966328088785963145057423870752617106990659392096667904730007463917907426658216803962395578126355532834162569914766648557931219005481955009643627657021640949973074357640314761884721826448159002300040992641699616163691111948803350085533551896464304358689633111629576938164539015124687532587167988530367492402072884333354559529416033317470380459789391683609423814358717565705471386871255493632262734582723308457345042714210633387158428754882216070292471002110687017466712188541803458440425673438701534665170647245170880256348030654358478830743297204437569513877444314771183614107648753979886488557358138070565143437367995597428169249130403620983664570461336101228273406559941448430867279686563972917607387393274673689413660773918347988851385065635118441473233253805527617787764522495186174051304394267356647819779831324816482316432768114474453375482977334749788427760675587550044239390149526423501536361005257241745226139906736018183954298763012934270210910482699343240901704993579313507070055960557773794119223026164027411541604452270556078012734014967321939212792530789799223922676365842898677687611050411543162747534485514746413920322755756340280683348137924906062582275148444408904380395952963500515490416002790607935874807134054767458239220323927884093489352964938147924614830676339561680243009534334242636942970828093877989802868096138026506859759025496795930518116660428856437476165227715422366583413221307937682136071453232308358678193600279210698959957823200261690680189600352004821080230751431206226279203778996064100047938458786606777830892764383535812938090044481950953753400583013228307776148758122670869679054961261337026514161346263918713674504097911468583329387254971907715928725267600081242735142165706094913770459291029544914613696834819305428793101928332779715720486526230127499192334046940165876172318790725363678322549165866077570778773943816048541521960873184322038448127573094157705635716180230302357950090053199163106787676155813883884535237722402707154002919227298777606671940458287460154662201004811724720545694497797047413609229608524060827406366528490018732937870782671570968312359295792074054956005063309328803963320378907324670541798622202868190841170271835537045604939650048047385098146382320867727884216806611032166569835830807877644654686253319123671933073540453110313765355554126171570906191230852931931017104159799465762703568157897251173828789860272634873126611068517982498519135812281234952457908436742423937487699604972344655981447476061287344676666829326045417020601767462067313071919797228817135971642280241449746021336857770815452673036831538023649370188302638808589861182067243224336259708736411869080233206422066262662532989498174811838755493967897307704476523949471146094787791548673251297905621476588840978497398686520368233894286295651268471820332656646938730796724205056775892233095781782312689146804912161222857617618775309599111822435559703698124573492682946951365261550659406456986419252301699756350753473500024304022972770811669762043490764391652360178154438139735829131293657490017010037041809395368743106863739146219915274745479785860547600749915904414087520206199738296148681206173239839028639543134379778128618197810231555372634188403973715265318464003701878923738697939347498564316122374366983692352003757140720170593600006181565850716326546767804402384391928077859701240256498269424766413671263543188495138918140863103860149889483390538312113470465491170286367726274773515082918567349503349028084162930332846535482129450244490964132883494907533472500726609085887137419746668096226191468606790103213654275079303585273087334149822751334516536238050394300518999132549009718160754696043637912459288099636569496310545369958329952847404577341355314171612510530811028465716204556351837490421252601445996023157422047577413792866403530251795397851847001224117941749147537553512946593979623957806990677852404989382267345526975442120807782248648379107582205926930066410998103016184490717686423019673541594396448425210028255826494488938595054106333789537323962212457727141575160665312004173103749893377508744414315588180279572359002043806662207594748228978915383919488180908134956133291067566602939545111803109631500068201779240497909193524400859560965871383788840637610432072044373029664495138237692272122905036208468117513877706381888633627662317259803522104227074228513440965901750232738319556940198078723487453491380194580191041167495435389154407692152630053883412040146529614425883977257612331946166884689918553337986382604944068686932600727079543735200159829060563499572019626031691701153731369598662821962939553451819744862108176090548666621132631021327896276904983868011060198577928015320344117358338449482055846124604885563671397665759258825212199598580585190116851817724353438191339320812429824663851098178248573553370356498274705024914423965122243249164641274056292467960686965268049624598032597716406254051471320175949488206319347994871014561911259720311409435744501478287951780254976942196356699045818290177319653853325469836590767837107165443152993591707814938914208713038962953087930229461829749179550905788396564927941277531227409186680073044984257640137700257515580981560233292195664324429976828985872452159072921675115478404490496166703854007998638524661692924900632516282352970615122579877965768464428971220434497342046506239833522441865093162392904473482163199452398702936173354206412428644225390632951890466670004877438871021408660733684313089567357343864937816018700898935829504318919610336808717223805699428790338978109297640286032562707039531167779812995623987278949429283943246849795254770658831718836429081051118875121164826931838984365043122928078037580777382690365354624374071547317928674860961699745172452076794193245562450383533733412094091537500641951141053833282797937861938033634362911026442666204420420314049233916246579650164346841750608469450587654578190155604195364407613821810980308050554720764550980593152797748549055884256531545825513167474752729542104563603682905935785338873648580607514919865025122655641650553197330315781386772497328458339549225409673193407848260223813671189123232403375285993987511866695507126040363282064285370630870180928978333770682583859359539683234956761321241918220398381654899059687879436843122061020709273246304247280273841839391931378335884914401526202750083591356089199587705588530576451131890262804240069788747475697013826562774573102600062584856708636037345255034511254757845517167507041539317803698125412121495751814549577767602933767917230098998919329764466032642458380370937913130292322529532458081248655357862212642133534231046098463213342479840445145507596091001321879894868303253558900355887737659506734180470593501204574436657341662669555966376141562715070387538547689234136080006544261580282098005475665583660274199687563680985568090120967819713336509393644325845644194519461785510449967161937373682972380231047769757359784746242598086506277853266210961838322801840307402111655263672588038899055583276202726542633003855401679872705099526457682234416135541209474243278380731505068951749901474674283189318722668706651306595422596891200096381033664052957990467181937210194078231955592548000213966783635955538115896652428569759826948929959370994683911514089436422162889292278039717025149625511806322707043440597391760531462542292372935402496806760328384035278519155804092127406834831276286768228130522182592072949111711426459392213556532764801784064701439722845694587818530950176683855700827619176413062903786965012049224728763638043942436554148031114586501794326917941718866783375512771834356053188559848185238870902831201596071679271111007197874927431095374755082510886752360842925411574556176219241260576246426931077371576857447967893963251601933959718925168353987438325523942606243500394967295639015423171438466582626391090673628074801613773738422710669324441098354245618662267949405984251950136741920647147029397275689254721574388594344138808995415550934195794400697183478965182922349904310982503942478309590701399264954593649369346582967158391317549857106462531835223620649516689727430299080254404525563468911204213284331179814440397658422578087052678969345677361427696047891237454127211338192854542208203222998579424135343811779675644677873183840723189853747444031078548928087515862405950190434334080130664017481134609252069679529105252455371845624776691486447856009426774771756607488082753503012099347887955192885378996830044163774631283676041417095417049391874179450066568726232780256738895919009568768348788268623321481644384108783531087120701639936634301294852935549421273056485827810210026246934407740571155990599291647774903936338018863072585844614248086148342977123075975409042056675447526410949417425217407820291337757026724779235929328359772327893912293869244852242636982921414751012591223853941978472184011777688299060119147005211149832062748134625526943237579012583364349988019869147316222100479858077572729326785682190024579578124992843745045581045534566783535809717430309790490366790960679607079477705233548881234661540200910467486952865576688964650620299620855043958521963142892094867256585064746734684646029377039259025562333855800530974527077254509983688960128925556429758121563605299547964356094430978300590166911494622516622402529863225018751096728010092615392041840157675548364718195577406168774211540610831419857111592189041451133063970867585063307259413850890192299680187881220442543381476366860346251915484760574651681454030553391225002775420746275081522499316153343339578219765541299400085054721119254631691143450211966665153325280461285204558142448952870805959930393781625416562509678048715019123260854026659197589663922362096933383289487644612161400735969804556937362723230495863775233110117612913380315017246780619586488643267082001381323470811150701920206860791412769150230174139727885540340974947595694188282067502749686435432398766196964780578276821886924841846116835675752145947189042502355464541112451955247109892363805924256620499715021282615762624032655745693028725612414861024011561706995378479803926414304926251697397370554852633619488372371366698510439218867098733577684140497294241534675858389867864495183103444161257486549135747687741781214951045241626444476484568819371790798171310072528386961536783777625117988804819811395652934586233429041448472891546915557034036073191891587081843242103632652026525137896416809101201399645430816664303436985610152826447039825319132436808831495489377015830280623302620481049233782971036650930461850837840738011848954906995171953038769909507939326089609464447034454737221881060808925273580100202780880065765932111766640320939406529740526305328384170938834350593013937184523537470228834969387859446560552797712892647202374875110728095137353037564041769968869897145050452429773989874334703264789551487241762969493228515880240228764064763295152664774164739662825179681071225832700007366166515000834884794626032317667139617407642610488727447347719601995539937078270960167069702955918677023540149081742464951731240991175241909293599611574182959292425535716320454451540171662383828865675775692719380872205683361002824656132902264011247976157175533412449328346343114711147954247310299318964868725675152197675545953939648203521631918334534195526958510521453226576322968925709497964731181924143453180050161109972157910226750238880705173165987748281014004113627300483395168729870764129655667994714935255835962367843469313702603109998103794672196678863813626058876717953275493738694118418075382634654915570227796398098534769843863563577942798272468704588541397686414613139971689875432404911132418625007706473644090778240475111908755186616057501984185281542461353706213220809782692133494668837665563626804552158133580286381692928875844234721580559425839938131231911801815193787583069995209601835349600850732832302692275691106930970155655682524483323169382453880921046267940277603615517190577907876523105969230411114116595390700944151831276588469016806937242283195051603867453299848491308223114457690562056790514231243016741148596319266678683202135043487232336643351491154214703280834713446565914630703556937812241233599432896556621256306737009058668767451422996084121656548219918263434167946052461634751472583240468780350373737150183192476958806085882840818719453077835467123717491520192558044849163534717919806441592892569665495725246432091517124521637071905833535822387205132558002725462455129276928898542885428536787486266198385081410931459225725111922743967293632833053576588004900837171277653457187664638765279052684520411313067346414152138867979049984409287543262955299463352445846760017923022674553381149059343448451440871244505061282206918793417350030098201991928938600898873609507534158956172435914795456809478041236460905973865543579929851906501926139983264145925654625062990406575097514314885482134407699221717854949579520437500943824833265854480037839180040547432130344411568453927103445478302375874936579676552904181244111617940640575314685423916955544085838867387565849089046171160446310710345072639475458510827527097243735297281570787491221459578417788880098974129386237293074865542387824004782171170442700160648112797810817004683175270876965404742834882857673163423036802224559191905971500877315267290736256398511101468824840601826251529480390136778328565404416710715116326428060700658190855089568480314280158012643064771322444831199510847782734315825324167495102394188113453728812062438635107272468715771086435666428891204702265915018448170917664389629761806517943234765880514485237081407365209506528285889236300869828539661697500243224851386947686873532865033948665985234363453716063273139891590743899031202697713826955082542274550055978041205385639647264259624566907293523590756602200556922871490073677489540035967069216277464346081412627231771575623520670392858856606803217942896679972247033878343207618676620673400013546907462069239868359631967745111558040306472697475293946562198524933381414985812809655102651573223876897940056517876244132755224072095713133999971380754644752024057183690319065788400008373655827914260474605614322521042944127115974082452411724557763812583628185281949697429305441079351752017358155768074312454650735046102566533821039098224597225650702776310344977786766102957236106360343010837727865407963980306852655395428154637045221263578853336004088704577813670181419524041834821299406379984229722151683668654790401235849121280637193434782182052369210997787609686901230914194818203057565441544739562261570934246186512163812041541359046202528085144235980061572036014709486579313548366193356986550631446703817033811260924455379599379557221311367807186446048445252204144638631269387382427091802451786173407394656942824196331055141316325341799688300818467204995896373135632883884226857005189178924907090827053184010422296054014493726410041637746368804162755569196567188442491171606057883609586283205224357160140703699617953282271871735362539199913021073468554759448434078570896221032222310588784170184543848515221469449068254204270663107255592981578760025232894387313282714434959257416082640731429798639999448132444370518344640925663706746287417776830538614634336232523983070693422772093779263777966665914241929651106557175100187188008032100334764676419311531209307455092460040210042729993035905817429080573614139213440429677815720898697534585661986719915851636891723677159704865834313689908931758819251754955102487847041735761954039888906144909755643312535029809137661502612118293680288988499115084271373381987806831744085699588266962351217902607078516892526957823492939591413810183446748116397672130034554736043170493593295135397107602912263161240271408491283216764569832051664329374316276817774380198724643063763561763100540531571547771286048973581197295569176709689869031271601859559690166012675136192587674296288520752786945912537570157656106713218943053935987627059910513434711910938733933577767108988207104608906059148015586604242473698626491757728926049211001709050049669914842649053192657585463268861556535899437933678081186970029439923227489139656393667654516404625983464506777319491980823714772745286546517485186896275765769764527892581348621876569556972321323308480779311851309272898943549029651521697031117457752965467303718994068969645028788718998482490992465149590808815662956049326829711271135795896259966139806331001070341593927839920085538222583118795605191574106841842916961000933112860095396123312799426513450930122255584968776073120057476002849499837448307541349900201229181885962920809930955877613359809035804144524487904786996546474105543612988091213549967267222948406539087657353505416764762159342868954720816864886954094595089139707152278930973294599529212125137238193283635717998714436548799611058095977700066749984552785575465934394192881230724575813950786202238422931289660423771027656648147026173593688432581469248030459192841106369462175893078167890699550058985553491554869101207490139928803245657865661890268692890097531266195727645945075986625351616695860967724502998091808477146460664674546215495410601194750577554957887639240472808832180252308953733129049290154998151301226947419599043201553579769729218588270443229179129853559829775482450862571415715560256502619361976773155618990255529302764389390515949255057877236376319465491234729577558796478481371717496511343304353443333382585999068761894138650996115541454367995427110950393918981746094743190680064886999383915413893460522371665216191338253274593480305128054442220599144346903932338968416062833737079144104899942385415595042383747707731351324219716596380043973210280119405407349909963123496456533509452003415749345175499873381317369717910427950580522697000462005727193856700931619484086831312435019318964920632033706056481608957198088812231366516471178152532444557614124409860831734114887968121054997075750298406502487299042612734817217308164566128167983036416752280207672350083518988402853624938027231223254045932355786291759438886506214668000568879873116297005458471829853397717098100129424550473761318032602528658392807105695649050143507324188512712314887201099411680663313607587286106036777562648090019139953897049496537992153801246282033178323347767831458458323905477310544884481042805746727376255388534435769554249988512497435160400479155752969464064718324056199038463344468357886344580110968537672477384932501548288608999314001773980527704970474998254254947963318560729116780863582942358505036294358109733110421946797074348690862003148969275170955331979239273235095233210180963440331078466521777693280288172018092998857744458953108760831952743917245403636122712642497835177111837802284940082797668240127581251062606823953549890019632597323015876797572773150350534364469268753950372818954091503541803822754220659031837187508557853931400669232508514539889595820345791818118573966232031439202791171699225227396361305126331515397115281081501365704737510569142284003936052668596661655240132152667545018864323192137522109447855283668789178944980989206585314985812296483485268038119521374724834581559697919856947606536197431370261965746243539647537615442390184316788717003255931095909226594109742598351189006909828149543476109943773638614937727540438661069715540375334606186973690051421651509278758321921617430272837823809430904524486281409865380125097319555217224646135928573164780155038140284171515705814399202016552206893142207991707634944528819045870352275832777515087101132947901349076277765138584381119324586987055884622304942359145421186343236909989246244356713415197551980118327193617956352951833011950364425623177185622585639843905983418354676321197958213203942245711891809752147470324882427950133993462201544162984839117068161675421459209803384476646365217008215427779363927782874445852025924143478884468761705572239283236137411453443200132138013275922819059177516123206634841985692780963715876461823126333460149947187215862443732412761063819755668921238978638462408906544012978126898120164165552099301279968363319158395070284589887510504510858420159248851544545856110089259195304068911803670624730465321888461933092189264282597074528680106322260034323604853413286429909202380206863939020117463279777527524390288467290269703625458477746388665573671163495562073469638738748691051834169071840603585237508094153861242143845372990999901935311816259645330881952296031883490995247345522432408450037247309900890033971009667073975312421758380130839722868915469692252685709308700613059591046958985841127372878049199712675453253936791081401241529691833395710506556682507363585193462949768224309053099874353899375032399742351767144331595899241866036364109105259568268021187506122550532112299195763742429925539203841336415609039373807432415601469816163990406088557932891162006443256514047186967398780001700092987175970156782655817090173958030552250231998315273386627817880709178079793718030667663263935177094970573032534944533040151825329915776128634072421492004507552885167722757157857399291578977245910154478398482136220270713976550450383682933833747852849319752677437946283232924240402668769767632608504866431835483774861912224127385117341193234733205501872412405622067431169698948249730995731419150331351705059832147130811406920008381327509800606856092292877556488209375932933244931008518025516854660639664935708098304281055379391744385215343958579284776573467295854882383244542509182753344068625787810316782129388622887444492521463077192937198592988630242206440989912496663050607585329103702283434698316393316653484601052965369898460556616457320004079444847999693506809939186989875753386321078644153184041375171673827337768897514267415011957935982024557648312656290938979683851768189348799929858790530739649332490385191231529398555686788329677483556111999166046978083717706104642348903280381268248258470567340567468579222899987870165820466902286410167275895483003942825436700520217326843423710004885041239837894786813310915784882159787663101774040171008982887457161980853088293274405574137588768378239662488402484119985791811298633236953459531681940834836135234661847351383821923333687331624669472663696251454248430691623798943575570555588220296480093418353442329968975306125445362178958273803514722045475921039518738995800795883677677176978659442571884060838846759488721655339688315810603674063375192844635517681576442545225526220374260138952816603395653063202171791733302467448064921603166210188664214229712623449131346337100947465102003726695095281444529846838352627135096977290972384448781347686154178412917708043593823442750054539013229999868849605759421674503232503726209592912513146103331515336595356933804852053554556966987061394259655984134107768146582364640531528553359495219882089174539468064324752044922372025998726598198834125924560925064781323711688859274218538625050829953065247155110880544875997742372534267857472387358680843553082244761082097511326934063221692231596282788497313954967240772018590420921910344157319666214681937691401225390274372671734026627952784577727833493422640889177099395652655168222318828548542284246857881561850891394194481343896608692571921730923105620068667058867611882407927645801359615708043486560333329063995049704962564413224598060127671414815877331656731346477591558093568964148039820089362429438392959289864735444585914107758554550100966758967083461559937238242544687146294354980273759979350479298583257108213776192637230127381987466535622410916766929658082706795195704446754229876414854347680763848204512135845927291824988702474886485046429080616517000587756627363591968877413853607094031425941827778803181545458117802106314309925908066154064095039454741361648809413330716581655726975988376857999516685155101537226528644614006985378755317534398679764247498089424110491903082236897125780410664404900495616668970752429910382683758090123293163180447573081981968828107719256282926766990094188970665500843773404111515617083415126429212353950707917350685380258918029567354540557689232429245141275355185027106935091091395946035982986998939136328307925558754262883198718445387158203847456425720497892031891474414521026889166701758598654383693051020642949732639757267676641257709047474883691641843587203621750417144597289845980796944996534899025143066993660531018634565816084064380153954131618476345726395530129104537500846794299268253213012406089311941285422136260416229354514595389092801478602886400295134587835092509668562420106830671107528942984723900290578573828459763471387475955907387592510041651416209807032983352968800816224933093244862277543110018182575683247586628340361019208841805117310937090180892632143369655913405613847457009880403210671414480113992452971583236853269185533638084851791949737180954275857761884829066656861926998614860313010568043769546582439934502838692968476454187016930415637451515089664984394269976572337956527723129114008153119950477569920321811514965864169105229893579789543210103540442749426048390366518147956534810936783036736518308420998310477833939569450186484168771143158757554629614972437146287932486885715552851924333241657636818294710110119302881335576988384971927300679648770984226967586685540581992719304935839456101516688091509680857174125614688090079265813177656570705895886346820405227452377705534374294565884498964766783702579775039845388374212687156455753943343692768539496917008771481201251024471311785409253403352656278447311638521197298441788330535274177711930150195996081839819307929655209759743235808986808793008936827023113352222954822897391145250150651682297157626769438644007449544308164120678344914645477651790594853374413545859373332445896404545751226283391411890714634878685538512392231796280557528039901723968608811998987351674300196117318767488658778607926061840661216857824895588346239900632829944044113701992698041215772496766118905448618870066035850872458379737804235858840152243655546594962996155402521538158193348907998725472137116015060891596268295272628257857959542197139689797251320324214083100197730914831919653818263876202791376396309004632541594625073403794804552703521735839488718329198080855076090371324637116206572409411034454671573727900460475647120266318404687815495858796438253065530261686163848592454806063042348841307389879806366411201463967452277179627002577623790364174889181205757174293069172814634943535747566676689348916325266339009535821084453497929408864569522982857143143419828920354166604038464741004841144078820314352316443723979358326922283681944525492654334365931487600516643753575352924687893471866242890758348327165098774983322605008916765349157387439895695936931660028554870902238964734604252646929860781984891560227443206025150532232352940004873149852609231781512414539359647522403521104021308127506291454373309874504663928543037152721004718530955750100354068731823164751225538982264903859155313691255105609665556691229678281930246114760365764302435052732287003007954458747115399568724011112426082747578440208968698404558035871646992296415543416555286903694244597393058528105429416379458363218257308151819765155307671455459483779568441389885430396632870125000167160683887044147044875017690711012992287555582174085264086196473750224627598381781874082830266211075836766010581666424939100652118631416605569767478220163848447946585257365619374651304759281359310423288541152599316949847601542962484713108560339422300586712012241027381951435885188588045081194639670298627679426876424301867325162195741251390535117853632144483350237688232167817562682765278723871755005318389187294575092909977852586363647449553970593099704117469253853751234885861904101720347941693499877753406696056502015597397922686512312206965434209101037970571000753768639579390400432706436458337616165319855732827633588582382884032800069073148927251249843984306572996521382281133440956190323055617248147569400495082722564706496344210763762571557463138549274473195502441619222036096866391835460659240712983023351266843910625670627440491089740909217164150587324249174605114120031584669120479783489128562886134833519859879294540984350871832699426251028733132663690109136370216924084022733203685413757296651210484106563569101585176313896911848439394759843509681087450050435429411184327659514561533706127046810640793195226353114435400581149278699407714445111790231245917550693520879080683863324141204220471137613687980983449682608209768055307131679372888154253694114652529441700288772374463556662729624341852812381734357250826559817404421405181475070538319904189952850670470453233783741781949499200582770772054187288718250138143107627575126554093763646257664922324309680549107389074322830419454532415862991368944143322667009984918367412354337923535623813378851757070691687070078434352873350161560230098918947926201274199523602429619231561019245141923498706354052666235505790619886044895051310620356954320842374862063608041603439456747017315118290695509841563187274673505884795793201635173999887812468601917704868671126393191720623540250135268662358519924762080442245090151334346155251301944961499222169064022127274943667337701813416579693951610433154250667888508709502375589508331453388060485616122479470201139798175442207173702135299758523605637140505786511281043159141138800294831658032167936554160692137513671995229147325652846525727354612444199757278946443828922287973458118573179522515702371442952973911213866615863490220494558490584237998222424737803679277658550043594819799449086010945233636306898293602177617381317011291372087824744588469162259746749734885188557374557167129028627395651397776716371484531436199270569863199379759111233640280154238671731801744581855252083349839760619498130023296051747178956346934198450865007939777098682077110200796980899893510893671020301764092842914342679666391127648268026431586020665070177524231151353217185389786735698488627882494002904054278658751387867055832515304515535486197982641754734229105456145633800192115869103267212782224537187623803778274796074986737230195732732837184289958973297917886393050568716528536709152856487021704923073170791208427255667479118635345572580659845501487468042082641668713530929491180238450573670547640261026718696465628297744259245543590914508018573727824949041136620220797367567412789664039659225963322030874345484590538191647979527189918515797853518376626671969858304726251531866628112337575138298034742628753792659183243494672544281977223517536369474968787540152376679472290733305553122762724481714261938737291557670498860446633790923968352096005758131176283686744944391068367381913205792816486660868579422408943219788863680367602370654346596262280526184428369037054097232396100578426698455373515980004643499842778058194577465684366276037336443715005947300137186853356383022191947265697762389271876111446598366060130904388745615016001254334541418978368123983584230903334202989290235601306369149562139464389068113081039218051223397419499076947281332225041519140090671220647207921446028002762125334045655043084088376595118979985160375587752403565353288703871724971614913061157012548007495629999121386567085406979656183788504617355117486759886457066908407753294315768817334340144291755989154619554630650725551393044965183859461923996680272325705885676328606667131238664441544341496126426960194739958338943040714526144574034633823322480415663092013553253590049042959414596657146416575260417187705788021892839214499689789207837517797190341275659805901912845349470200157147927467874554781093000393152444778572024722706900735219328642821642660630664570537962079253850011245271129397266029305362327313671022297142896065136065452858662688991191548783042777625399057091532111048823611202049887642117587274070869894739140770773925708108599249227556560429261037895698565489467260866244632469786343249869002856976992877993625422843663290783252355868536197219750739770397468015561167374021284386722351335420575976967441517037997484346172953907154024131982303727596841343794575568509132338296627041345994425538551541822126743346351732837205896503876054771615552416452957834968532002236535660938130169373812638482390399191388852727401426347239388819113136533853409751765170266837810686596477734325027227519305280713932918738619860638570285184261972736945724582530181883601838352889706774697583168038505892191366010261694416927781215024634724118155767710991417377703346469801822385969005457266434348051831892068704484344742580325381809955522599273970298942847043042556095288175392550716075279453063847704589986073759595351494805644043063229614574468007619192079601608999894907079228944587353216448585433802473319305218198779092266067377194987486810791504488041185368532724852747026310951774763171449100749027156729696955748303247328713822177208085105938748012658952986871389816291363829834643895088540887062191257881138443478769913990725971208424234691481039907601679564873739384097497650576084531126281730950372409960340185198312664305179635081274192638127240502998155872072492802224961799615386707614125671190915042694049898471825359488153482160298625539634695423618979350898831025559651219803868170731732472989579047013623503399292935673812975596696068693614648377270223531166901996514980129178179152455056441194408613102593531854105831800545965527322540566910617229857278924901453490868199303649673495753810601345832203903511509897133252979067801448959325967077840325289349475151859311188189577262702896874762251059757392645965316691857529689328782760539389312243541439079852262892846541702341173457457806186541705219806830632618766119948767121041883922541150455499577617980736264043667593373948361777878982400409137709940793386329806479862905399209734004679286468771640357985615019906220200040670087316886218451105984055988918705951375367618927131034767515686764688896442511344771182928149720405916238524511442634030378931350375418584906428819198880090006404366035299415409658948721300332014254230906800905063878874489229271445320431922980272386453104096384639055337409695666518065774687170065943825289031369825186048532673648680591996149851799634102843835703786317437414577642000655450761108340914972974634785099767194817419875267653398848333025081715493123452403187476722382392455060572237436078702219344502506039347902553826719093503620024115934024410831916694178651362927407602457122736390823540258663609087874669432440784426687302841982023826182741776844959783421778104936195176151817238349265820273002717429766363629713179224376942693743326707138980862086381718583053177048053131655680574100769372480587163698198315551820828521284161718230684647257323761724436111872961617280758933827264420470510805222366315460906517754095401231296789289856764687428072673011310929992283426141242790643617461316903427089307119894090570017839398854649452967926400614168862802992701386370174320354872977129597897682652185032723875228000051596194016228532917413424470959273784116132710544796245509831355493924720398579961354224726920851547563589815068953944266994833716294638703262504967032586173246985391797154435334495013086692134384960355426473516206619137627328815994464841238368625547793059283679734804196831159364534315873825973087197288832009170093992085021794280878012567876847669487005253838164067011859552272472460667309376478861187913402078402492945384438023078765852667303493622019161666476679824588334058075738876879023412052255334097265399462480311777908408452460868812812461288595878061616798038610561089074849836725792249574358328942793061190680753249464199145488571843363819696726307695741595769884323821074712397674073985375368581110678674852015544892416546511762505517117315731393991942096172638921990195230048155909971059937854809548921358052856585174575791190737423551179618677040089501735460762779384155106042157868536240109804668938871695499309083465856710124267014149128333237963589253623056192563676661892931026569214006528299670160784473973043115454162237673731292788563702144737740226313772762022378267487336537499339985167145387022960683967675198286794130918557953503175028871201069666135446787570300556771640502875071124350428124485712683713101712499666959312649748833656234866849284775407182031087799318953978907504292407426164837774630713134342475601667176511375062337093482491009692631533163274991863861835862625750788281186350210091131985983021499454682746252189107851422627566530085196043131885843925322613671902785992791133987818337462663588716833669142385309092707135997549801503706283431050420835559894540064925457631179370523590966102630686184644202617920366609146404051870395463011259205254788416088224280197607145930753988229649213416584892984961620704706083374535849750548058147761252224907180460112899298950633598842721525008162552391115978172891396202857728915960289985293732725789452875092079906968959048241664856510390253271247062859772873601548425601638391788095952731709568102382688187457512368509077585600412518436222790057356054475528625291908953853161596894849806359224854170428991564933622410576947805349769583078172241648840067904855855945541599767588132858972152662134714016279248278478083013086478294339169839653012373911219713743552532850470476734459424325062326658572629143361409526425914841289963712795832873398090099906670471037406729324545893911622042599742177717790959028283700404685849415541058786842101896039496907174411333013629359122620407427302422009340024986914541636707059670626082597662737183808711537610981785316421529454676005243093722123389430239602754396846931070250614971872544182571390057764725980170090032532223344281468396396277080880674542333206371966591603754416632298024612931948048341620034252176768335500020500484466025592706816722656097473590253359705559034296720518551534385392250463374874584540158740920935785753778167723586804924998844109214226142206532756285803309405920357117526415141789002229327370952899786432428961328453717696087818038099172242974190652105956565379039306664903241594859834517247744913947749383508858721151793003515102908402249544669179117705476542441411822330304258005156762511042945921344387296319110218894208105765991333989640362750881684421115204084477015653641894753335745459832219407589782549015495840255320233609644777521940626705815174619205168636281619769805460867560270425967848148765741891858477866385829548411623825362321827312833730608758068589125751147152476947865336993245404571162796487939059491420429761349372391922185872865594141305690472478568470483748063481941075769202096597405038943865902635552866412391294011088851188274779881170922510563282632831593992422817529502532518275281263933404093931502951443133426157270033400499523129549156952594873393356525873959181756965523725178612158982000709711247931739750718385366711974385765986552284588817779428453461278552159953298175474199379389886063012183739912947126572743369465742128869872656910759138239655528933425726179116625723424444131180160426030206243118312199651800487928646518253581545858160282148149504007071375711557359811793696641502871430586663185474813442698985583183841922882580354330962996606302922396697981399004058041348125375740688380362133732052608679070740631611644603771367383659013367784586777041201878267279380204061038742960636500942954307200536736203789749037695000464372902667650419148115240704024619124856747768607832129211719440815088626398073912110861862653633072448567633308433840530828221888193194543216986205417033721835074286121899408815798639460846802424459138245297407362602311019018990071878341753602746754112130509986414638367962692434307639836062400944326956898035862199536221769208768448058131898932301521950543566666979656710173988725179697453587883700964918108963326306971598126621274513202219057304717973116076428302707148845475899305737669411921752765650660760519746614272605097952479204054808242207675304449858454797090292705092065998305098653801747359894790688934722879125232592884731100138031804525227010321045065618156866833087805771539040369255864919117487109909797141539400020765707474400998859120789800903927398299445444184375643587386377389426704615664374286920683207608534480535181230577548157482297476087221985741495502142738217219623633324370396735197899904932433330236149485658418872528736334141900569322527486534348362960048433835036627152946236550403533939787842798168348133385213017034562370462981485725523148996678563874000937825853860657347436308839982979500420283025471988874363698150546342669276134441811683966873204412610827833231770320510852429143396986703066448998648233689273517237465863199908442648635306050666690915690982607210553026242455477263053081990809936153363949813495315234165261173934180756453829960329697409198314252707707242897805135427916990680086726809304839701351511621764364753076924005416744807612139260627910994206270361442307324612618533741541087626184400858480306004250118514835000346289084612350792335160581128912042203075609908205701839100079981930922576738375218330772247765552590726204831598310604479382025915434582007690360049514644774632462539995804657263628072983561996137702312646241404484513390198747974518416758732211634632738901819886133987348294059040401834278701987470137202737221953072022394483837501893507761969484332308154148780053948280795938666244917911607055889254504489803404022733368290215810670965711875360661584501064255051803381496175852754978596857933281960606764867451218107262689621144281556414554076341415928282123478068120908132144398625662448479564972435206921933287134524330906109684812339493731375523962885218125064909648046665609688550148639492233354723718953442297795786223386874804958992637409026547853559743683884868182112930776853491036532489471071795610175698521102243774307335259814687150560119000331281740511531913259588652702500853043297121301097715223874430037992765216238340673426079467571688794843324243706071626745136854582454189317942646527033057115245012838485791193865897808886129845425504863031332891358523365796735927704483428801276537526097648363555665581165187306954687593799551850074625333635418314456213258275985565217584580228575368186813165380200721565321991104551804708859036048720154903466132370034176061981214347247676064863575038190331466824724866857758579009883828007487509934681095949506680206910313783131212181756895849762897005560409565517950388072232501000909200126175785055932728018676545685395148338219179827849415831239223734019121580078626430325052102400748401682635068442985354611125928061777874243745354558569037400716800936637110782779355349398886437845899613703594205967594178533940843617212803559816136918856755814863678624999958596804726576283350154555550935777537378099886814861964030827316143838768963754617682958286818530730937784878496405011188126382856743829487281039151251979840124363594609107855406449379529799522621085184086346564557404922293798222787209360439030646643812535497606678606341003594906868595503693229764233358320901979798271033531812681180716743637184621563650420528671520153083566746828914292288721295705306081869218884947296875382261521295592216631386256920135325573003978917347316444275563025674589225387080104501823418431171800901538900030051423514804150528149260032419244617895543256591130886576261536213329607266584352960884531240892339862103843280833756152637034891790519415210391183132592523725719287114018836851680213672458200146465557310457868111266967054206808036586175230287461265586094665366838193398676891912117567911452629031655468843854001538217090201246512700055894057479886066716526332384150391560017433204951622414836907158346066092212586845955650825225155276805284487001729841383117745341547220383449833181398463748566659599770508193005245425120586596591767939340459740853059388776474565562470264275316503391657127723978741439055861010849299672407655786797393562374445574254969483078585429416516741697165799009829081343585594560912346442180049207675547703248880567392371371122934390189860243952407923664000077056209683880288652861163475950900922170270902383832719810097451176703223863258320416988281008578051848357773120878587008632966503242728548601439825869774077925196866007782928107261809735232837400043124872872054569894473050801437792370521009656262355479143860621315966189585460249913853433116851200491161896365650208505627345862745683014703056423823960526502857464156205830833827699681281152109154793737949982411912979149017634333358621354310543316535544126872423189881388258186591306302861012138119646165217473381027527025295372369232882173307494234574631781759727896968234170323676347654804249486105648860445150641521421982378072276789299449753972925807233502059288935589972850147681901636731343054862494451932801120966328703048098197543543041726448711473096508118502111034667919045223326415784772382446914429262038824446881751291909468078011304428114231635586670332209782482819858750984924564722205276900962885747457978674676914133413995320792090944983400886087018080948342557944377677264388125414120590021783426923012313096745800231803245573601559370261666000118192854099861200075198962730563549378633097500863170397032209124793538761907037607771674848663008607543578525441740493844245348545631277632936628751221529653149241741314066005641935567709190474147668394900023970885104738514338906083108765531512393650302629940153527732213618854404253339675558400663815024447260754886993570207803448420559608354321218689634355036268707851490433346792953049960055476669026847298375224612472159457904023424368005178792800347404001538460516871379824958381752504372704963062804102597444609893465376344301959791997895919685815187560654457835469588133286700905044414896397721389696216950001397315086344064789163862655581034262335219902445599124893640877849397407923459034099511976296450293502446382253819192458594181784138173720410664061688631758657844652628375299516781232581508334233414666860120630242871523691093124658982414656642587481183437203079439998934405288630379113045215648411781997588491226289426734356296663058056623941690602439586057602833777954909856490769567829543885137877552908856799734089617589596534109505691867973834114605939078369753353041192831179033441265559370600914854733534678008879449681872817864904001488121227660261553278226213610149089422010622963299595425738029688659633087159384638287014883442679641508520840596654423644030145801025751268138395570158450170194035620646018681817465894932269475165683843026083662153171723536652020045353384328604332860816846251544032610987201494669674841330944964930692771848756654343091856467100891748116915623201312587831853913352736756755043887027832749150867286944733051023232044464377730943276082981327308776858880373217068141111533538151456037864221664394605701367766998635495129824764077019790448762953992053036984060556542210318778275375824112149101628882849445119326719345789759927937786286631441758002949556858678548869213499361829016458186536809570936048315866065259955513426419192304897031016197087521558991944379286382540449473369361827379693053244474912421506179347751893399356471541651496727288126524197656379597588483716984957180719507965896974301169513798173736386113683960212225472426077819088839100320029486090240318114288943295683593793718004728272058757964336771165901619779462578512092795930855884748309865204011620758269847477406421945580144018995988357394795178439827312883930133618837216090382161309800831249295590838544052340200457336773936329418643479282260671324065183641978145732083552317598007064561176365739340178694064916557086482771085567141639340983505810510468205402416758972825086076137021837938239406546422648169089321453127244273136123575436347339329541137058663045361068347845149720663937112582823797873939320460623796341829282899887689800590431159345463721809328280458984860541669030107747945484329285558591596593895194776147509676229935606099818082993487325373299672851825177596058035185433372415555591634056408505167169915260449250002046105337707411988483175055815899989879776141648035689487590851379039997234423562028387341243216927433864061082981274213347076275302149684703362333423846181613358257360968259564363630344078784887673875411314581305680927273046912071173243528519996978372321199627159070905580915951723440283409712513665531337536263608881046417085977925259650711513781494661946969656172268242216748766870180944347444831946500805011791373114855782572516986007205659757440407445470780880801514699715731448652812787513364915501483697780548564897079065347409755133580764913366964891534839394300139762616356673158554321848210562854916416261286761721900916745728577715269376404624383648911312650686648374374595830532968653348770636321580024282558044611533657797675618229089745486832918181937156435609133848936700772448317401302567412604174794879027031448144254371113111309518858378927213996201416184160460347497498292374444741826765989805984673310422375268581967237731994174109154767875372160714130339290424716551652863389483896144585169386919209742122493138512567681683951842528812576917691827277656567361476602855880056974535661189748009516638608303262800777115307543867959587671309283415347877490820902977549554165327920456723580902443627261903528078995930295195432973780192539680691366070518854861946378008581744832120812059734267855832044608900681916003853974618736960947985362771346489563201344072827356402288458001019186295509372972713412382661092853549951856656797807977151496290648961247269939466067847731931483076225631147874477954584922342702472851282111836803062346745382574312533787338068367095484751187035041383764075141017863756145255202852319641358357964018097232159441002990835806387163951146685883548538318752245264010797250644479789389131615387711243409106324102776646256732609722693687347932376880667501522142753255789211123867711731120668534420684860480209000162332479884643884312740575724559397449231621633795504201262354950802182948809283112318423599044089231933112208034455689077743664357931894293750280273356254573355907019510879568962456688196719079966607167985202997322355213854896370665239700266296073185430731479530372940649397051748284912706174412581778686382442772389371690218331103911395485087368643457983695219093695644744793030822307920373290660083812438359345220287890284837032709216725998562594579461618200390714064418959180298446148127052256462622137227207938055681346697280652683713977354054408917632201141528232951389899277560049092284376993998387234465030481258965800562342047622626539153899426649051818293755612848504266165283275536286271879089886171103751527669350727662023910557726666691605706561805988063674754820236069660829354290415397078787571968522390756804558099912653339704889985171648177242089326577576423587834554674809341724248890191903529967745368441883149543678254614257208610359594110089393900601895214341415863159701811274068170559319370727122659908223161566192105593214798424231434068890278098336744392144194292566593107098854467050276473901167564442188233914138342278158220486254788771199866570565466095109790289804940583201258609057608112285026184208919852535003009846850665767768827760575964718049804613728257184737396982861537667419951346230464521033946540155005993910300890773762469716130335389358594569317117876432967471232265317202689989929454208588994432039620158807359015370880823098988759952880082228407599523986198878048039631059809516419388521411190980001890401108873576851365092187766611510674713871624672088448101799043770568436776354696399646994731728036894811390633987628095411873113623977174064360262033008940967029921846990270059220466580877113539991555195525209722163636170355295598374785375508759021701695372876528254347277050622617535182163657796237505514977117596612969027250116881290069158528981751374142158163787644312167127506158091800500777795188859097970344782248644188765499782988119624073475067248124403672289191371583762899936616690715029805894319658769162207826889309038336948128087008738435094059732309949157336698481754985358426396233507295931679210755750025545581752637113494970666334748311812572284684575841353907813850592105544991776455792608191435496462122846782575657535796863806194542836620085265457819803124451029762716195528488692042622896003555049785566057395688299592018827701576990291358236083677214566749477950962587925343156846843822031008050710501272500798783581533632163398146948698523131372195702090110458924514719560262725852338110457798905239179904511553018886400844828588980439720300702695799244645939301104631218346048129056360681117155349601989255418227208041107976625763600981565095523766831930511782329508898744118755737957135995196720797794237224728259023104480089394846843597497817483404501322413984062110250377579094675986968218430890192895599939331347601268532484706084992875821526886331736230624140615774517751462050056633095012012867237276889117436380021107980544684397508143974172612716444414258093919666028941103071699444971758911351342309116385169580028535328582576093331904154004211330059297482061437680289284291555363736837052288070931300452454734263924421951577482371882862592053820213705420359070333898886328250610688130888859636753435622937568995758986749862467335260095176167604972452222199745351550315296911183076127703151859845333885429513921133805015975356447470790022228595657458748617366197957710421384168631324162236310049257697622688133532407071902363711967709298287251516824189125390324596947599490929255868878803133039552953876437936377162399604484319278890871102567577192165563437716881911056405919581476042947005312871130316268603932448037518957013569638742707342395090901394740974606772019151592256444525053036069557024386690367349370199448205757646838384259457225862861920062870647653639531776809112033056801337396541956065534708996987947492432970790380788443371538579402024706888553179885188702752085739200891381923530471660261629356971934487326900475165884273312857317206484701508339385307582138843815525419925508211890972546263256311107809812216050803133390712793244287695730533490409035066938855321620237140649409215010778866615273480361981208633727600986594287865084837181862711873097891107829727457510619730073300608354476986782608325154526291984309198908378117960125680742089762124319468720596368525107412805242678537895151591423976689303326482055530913903574152813803314527994182750986641520547108265869848237193223255549721536173603709603880407799515185101619274521364508591650376760238874046134059821155421007543608967987775980532877503878894608889152178025267744022580235824843862694618447493338600113723179451885370908282849523780035072062731599666567595174426607118707898531505110250683698689840089917388048654360298059137959654422215637965753964543646890812527070435707519821773224467982512494767945341451513722996616091269217730397346623859821955293672856430110297810585938763423739040326105918763506409046260580565280732087712314633583792354425343552315413946944524256203154330425804064647762018141474286401980248638377880782260865001829524246626896429478519364643302910461995082067034872873678407032775950190751733968304285368437003184608875496385181758466813399065076162821363235032826283568749307531680265823275610278126245216223735952718433964130135447551905910412003497056402186609146738091589590105795882086221635513387567278946816153403682760719675793126458647113761144303430529420224618771291985642343441683816529236050625775335520271983522249168092165435694250766485339312532384288434032990859992429190304447164798220166211529321969735974063864563371165175520964352320356593391231485931612778239247965173320900523697218766348849559581096408236413200757185479930148162394538635764377200072398659362014192425807329022579684984673621175909395897494719303407514721325187253344151817433420440989626930706036641676012909992725178293718340748668609140762908534392468994776921806196174170121658178483876382009867344931004561675949552533844121952305177897402867749253700946235192337404933486693475809927360759292057314296884118990805972743781816438859280669497736714412742814497681172433687419943725637870728728425877577766006954885150337450661055448324272580918713042523171316048551987586635123052776913390998451422078529163408509966603383157918670384640297330596667826231814718870348006513801197095203592514690325070304404431183791207369675248254748393578684909981068859656416089222759976682684160176327225105928367122914423330978594846563153987642185997925138889656041435428572334143410603348078516324089203226228205009548554197985818721223329636723637113440626827723777571243807275455521524640569969637854918910770957790429209532881880156572460100241022945877371316922737212531710719238371439661209597902977846630410761429164797988781070842969780747528788366153102999058464694015353747086433131399680524047945846548718916735670949869327296391148995188806227390081438214156034223333615139030862018010704845072378786722864552615771828696515691490722418333827654724048373011400948475384912285391573616799607908192223512630711867324190812585936475496659316177552769687495185437026804934766611541616560856428731794738254077797881836688572446501839564552610667173674980300585515346152485607654094931313774376167381675309638013345177419434755578826863472604657649377051249865817809400751307641830462141496337165973155824380428384608836530505383038281821019938706557341456786902546545694802844650907334142182596515515630048378207794078485961418644221907766557877151050872623667722561056790924733996133026650342945940443429202785798375060976382016600026742087321461788885513273794725532785550403131761087896807482475818162300532313201450730539454493604159794872920227310452492103556915683919709497813621015016199921524608381320808083581091258491991300975532759763716374537230024532650357353633649879841576854911789384726624495746158864270265190307151105050711395662168899790113165137232909309296021621190546479578513596362835759182499998540923476788634839069150415913653964420171433343918905872183987498990881559424696227524873651639858961583936799563224392943681655607652305276099845960673561454384887583201480098272876935387452093808019142681055246686023436920664876161408252638668165026353876569105736436822107291761761707088475231528505194854220761403343908032479709611316586002334411807448309756465520098103235278839219678858035172143123572943054291234407655450564872473844824379714622052476932623794989862246371923219824174237556959916463460832452724645651673941367919840272515301056109740565155314788411114075740636649492482124903753254877408079002035288441368654187894047525277447378745155213818115294141146378668916469101682872837071598378930510306130436803293192807376000115229110889982710231674534598475772407065823449154987051021480819444530956195040186120619277853147754250740326072849866667356876638819306109897154670975738061744866958479915516404060202298110420957649324026391807902958359490569282116385773876550913559221205479458506182535294412462752605943171296483161320423389761463231803119739261609448793528861809938243632634074746769193279348241503599747855015908612032024489006576113075074093487679415893655982340278973745529855327415860002873857013994647934768518068681310427017131881442412820492510204773726918655126485285889720909809141597970103003977138223320462848155168331899519050261906100964218334913807725003271335453920197794688130715836800682709062809404385117153992898045490583288919037659748687507698685211698803944151553699356933594598325654368276567674585068924409593814628020146216675218750236728840287052682193881918872935948141351874012232816410159244201928170963652903062826539325253819996566292037743526633421636373136371608265042410729006282759282977594254059159883839219005868450228416717440170881191131876565216218131581201420600446838545409188674446968144685213155822293627069741850945947119418486304511206738048803603867292627736454032940008041232912514997711334211459714501120072428386285945258829823278736179502255182109024476394356407747001439232356394431783266514651546988032243688619964708780087533946469605408799640896188712042703542706896882629014702259280955409975399713579309135420294939247529684217411570656230139930042595017736603981589897333626375191388967087020530920916788779438714611612100142238661804354610920673141968648009575052905296852393744940823609074320190147994544137907596644544066503276047307771789526900816453369445353634098119044920542141990744116132606783786774492651799698324262119870861446484478347287335743053676594983695409948116448820259758498862978657118039962991578302140715475681568580456350749966994928713514653545849304592273490229950641244665181064987981859576190905156893682962127025223708545839764535729630955687898316527983645121566245169748710604109180898927787679698196764261598581466457375234992996172341557738981257302302316897240823293774175863283981767069388122142845330794534780380060679501337099334015596590575860042144407275601660088273210228959131506214064215658031913250949537343168427791613402473363884441321530134259179413065254487889727833220743821798843845586118688886935659036948060360877842074040902728785002420584152756522376220993488719512835760775448620467617329939361169290705546179701807064872111733099020370519797264767678749724821706225694583886697047757320563368993057294645921728654059004172546946166442084447223103549320607166939496004492379294172958662633592449030371652648166378603665204155372733488380351711024301310682346864806834512051730673123293981936852341329579188251064123039867803351939704923947418906881919346550673486368416632324872851975589438006062895645779033012715033428750492240586821039650392345868625649448803059977642185169255976664630925609163671032310693972338825982230116492292884346268086694033600342391297024217706510580462281768736748454015526597147462166493139030912627004943312085016533101970350462577969291940407994251500967405826715165887448550843033396101084008878968300519045639230128602203236061649423664539649300376542477844169983999832053165681855791291058351743889087382409288928138213198534177743149723285018688420015399909203250527636367451704120432839683421135315473276828359495841938649964539383000046712480304418029955793291435489493691905138196655899700426625708690637098499611641933936948745125281602357487516472042753357804743338200451630598053668104376238137896544169785487763166242502160837359674924100796364991935178906098258635461473711479770026875369373806436762061840858253687092919747920187597126643708308259837333638048507915592763310195222836876829597075240430515285301706861981929024815035204129497087954075726804572886097156298713794804143261710321788587833043620213475971118315595560094979295615587048988517819426084491614317262211253107774462545765442631953905940464788319249232886363439218603132602274194394441885085738273191147490745987481811248878914181913538737956822535282794021049417362582931425457885850124459898131632878710584820920907585463187008824364786194216844530940752334346880838376716206341407739162997839030101105166717744262563828752493019303705449033071539631572021184724805895830313048682345431972146177359207804408505649369118561510418980954156805973856819649094183675017574135995741815380541607758854012524823858841186523331015370945760022835572444344704048819554024779571890742450357623347155860295914785228936852441242002541692926282810004638654176335886334148708363948260695316884499406106463534161365719619931372667494300838608535843088278710219205126167381996049832588760467651208302975960748144250338019199662165657055960889344025225499155196803451650294746357431581243856255578628664251357676856699097862771739780122673041558815377352775669815025210786854322154882404858899894136865156446195970052688262473040330120491251681712534104344423545337482900604752501609438632527291198862798913738420415306169167687856386546218234621794968622673829348805385927617357151755914812328392883602901274666323616039059268910593881368355804606895534730975474638980671636534534953186180657304980809379013937955833434341522405720147262337282491207355160828543205210460514728346117314611658943699558706173708915142420464965005245743611954907005965120512211978836083307161937340154088206374360314400774225551593278422824485749666588476687306329393434403024856796466492239891816084428848077456092078799360129043706302783928645734076789205498383889574065118682468737811002830899606999259767254727483747752792066045104694791355546867470453468307227705392072830582019135774651421370373737849369840240933635213288933107832012715693666182634784635670880851600636609442818046275989741934551014803208757120876192110458601900695636525925443386561525462071564094533078527904614009524291436445541611014071567962390920912818358826081391801693085506265891086705257645718758163765163342861533147388070357271267754795588211713572557996339632194135893836054559135903072100979399004036086824487926419047379993843358507641940860249679258225695481209253303740431635523645496406941896514553337070341221271129086023375204459918684569720853298321246667098519445789629778053638591571441362787008050545055178381647032527652034269471430229466492862117441723003835437212111254110077660870768870663860491361609728495401712620169558884690709769535785311528298339791435235059278275458845250661630141999225888975289435681589232210856173995810662302571365264625035342524886350083122849646550089850185144776160532981445166620545076576660463231219080356651346057094374002898686481772459754892075316615304433255999274813621843079001710196585730726073049879849875968681162710059276586299718353687632925870569098718493492895534293373164809397815085834210004231519774692217795374645328200755241989787593036892578652971766120137615168331343994429934480517044891689290773918416956471688584636666696623676209337127108213844818397965747406463758608203329062041087050943651965825008059516169828846024846424317638621168512801788659371023811661397643652541518367161637887054167554645445793184899289686622713825826739845028321918375710086919405549939394806574060401004059372148257962508919061654447927338847195512497649079111163291069049627890845995270197291499562018861091454059660927633529507571200161251204045791069624435426006268841523344692793556841302159592428877338542862145418787481888422373895664850953484585538267159913071379534083506783495165812630459706833452863693256064033533352911336557696021812518483654651847571389012883339810268339257856437522665592336688553325610936196605469732561990881039132009241589868925847717579152284348511583067496935084810838511468879126099694786666829915436937308346367885863902393503588711843242356726026006305284639640481307778567971643200618075101662308470697354399152706061860164033538367712387554545783469308150461706504224664968955053987418141468539778569142524383890352278327716166278761101979118335192700156200865426106643445898172300533439114563179760465671535866330401471715459951631815453438488244680499587057201135453678306449398964966697393996930730772606245125746489988999209372024626889830503537671697690181114987417486492683133917227133022949638956199174284753667048634846581524410765450158704844582853706096866148736695028318820681228707186028140651707456140624335171414196456881420197230515634578874937849793677179246414922955839895387607104632158426204867037146596693245173873515884538996953069032720468176020830497374445838741134120992208142839333997527868566258800040093889839009918844548837607340959097802838103433546413403001131180740957731750756384796442905850642093746944848142414909841688497098275669341147131467979162037991182965769972928979281487252253818844557253055654699105899173704029190108978427754642469773316326896651755405687553299543870655189910417746194983057485516689666147258367486871637427013970134204761071498267238892650787092717250845287864776747966939440141447241359432431326021859118119668637449503374566384839763814033570123842216791614173285739274190462180604748917158565168587148886695810403652381738869183261660678642320091829752714640115924437313381480452962392163262365992087118941357024138936433469526358386520181285387963787033949694385403774947470096173156965831041083345759416968969423922332517043499598741313022236868744479241283036331079760779060770125029894549042183340715587804090521219555587357296816334374370994947656620497144542287774085966568687098789204256513910853446421299181023977063171711659424230188005046815771940056018119825769994587957329930262362869287622593878938189208022023487521952673277320591219590329041339403081623147753595266861447222410116389196365156179912522350598786906882249044699955044851221526047233746980847167846735273677159898005061181546750151858704874512517325829412154533555158634506039618192372799276980198925444574216082127310220179974370889883162509031675458030664680332255459282324373341896435365186630599176762717261085618572123621273321805244497659299018060955563670027045836766990145927133773262122383240638097480804653457977398727865637411454870994091724024648090612649288298903650424496252495445556798735965621508794221498501296083071007211120245243798103768000431058394553144674090186709844970964578763188920378750655588815940454335945695957356996181566708536624606889356541099560182552301924402197816096441881438670362304923776095448462179183897868932534223500220203345962177344609997081878901716149931973448746572950183756851705759934280664227122931447947729387010945008269571464714652887725244073944055548640331106281270578901346532898873349661500315118701778040553486273426096072134085566901057339401275909794611314990576691768460268547106862433433195630045071186531078170828026355855985053035634088690233705166863827587516613519597000941870377921752637060365893986171558856767334054956208272968064396261687646678955429909112761277553464405989122162541622979475555711271527325927351953239954105310064201293914230952090280492701207220332497759913149821507068132810638991590143903107188716465422882191009332961115523991998621812176732735801282370364894935123802724403399574884532219237650934160472632597953451309299932073529333840514231898682636189809558233204001707138526449828401924065175639709655532457768803508788282229186213520550698100012643713684198396096305859629259473855095045461255395291693191103063727304397282031388490777474605615708037013510838625910933469345186296650309447820054534742942537301645258993431878675666525128523833357131951690298009944752847193382100165507632850414652592674206416340517759388995413114350440291535361748088527666853149441534831718274226729617366686608226171880871941668043744330099798544935357653704732460229159625308679051755213439982236086859678291172439762662043945707160423677558716190238410742937617884014356381566047535295589336107289300416901486041403857067640065339856721684950115936798332129968495886423955869113708889359227176650002122806554014708144810828722538792427852117015025819180949866751534470813646319390848499145821863963104983852370003339424641586899498149946031344834982222012864184865784611568575563752686445128165387025651644319707778841501685335252426744675975869948074916978695006846661935477637208706667429389304258713317529975850347483414465566664879069080419494592443636296828849239630200488533410902406845324305929896502281756998841868872679842051630077869454412382910992925671773197019409907634138137822929972948898437984660833926113239577201359499391374989207384234726506200771585221546430667688700846948119748489676327135829773881647264359323459354575901939387279945869122057709468044048003731032998772224153598741651791711697813125856727264741135871003436333100196520532566823252275912733953274806789421721734986383022153882675385801125992831292733999506130341123468423851221016685671201100866965188936594253189280305068167657148674555936501119658436563991126870158700191897658677701457369917042285044641422139140218509585440522364207766749984166721865845931138036242548466795618742884148971995426346575743456118469418227460244056626536858377082590634734001364072161846385121515306851679848673727187203389654839640754146225569380540864637229548985209566906528227276600921757679085633664183686301346640442884091810809356120885040906257847061751532031417934310797577954286521504323310741749887806437172525341972525742251790869034950668189935711819307356479045024337272960368235034994874616248912480901534794605283342010919904221685297693799871740527574501317438227243114536739270136140311317507489060268344579032763572590741972524828136390624104996304992961784940252917669495786731650904406440057864860036771774766026993070262174798367612348078493097358933800472736483025557532728589059713919635418370093439009865778162841017128646182746911055990313128180482949589139247539638380284585986862109709724556655651874412895897312240292347701782650857850006792967696640638625379051663368031361188881027063981096140791094969384311406495907260749236914690955771286568895080871501342248611931885572764663343631581792651019296942004218647035088747825080334809487285013254437233693854994118228490935571930704906479949864681654652376900840773340081470417174890501404326528527195546563896191975371490712574055791181137812415331574346987550141635199131254462724041733381259315211977381811766055118246844004057221844833955180932475813208835168151735419616625934171505348074196954085226998449532345745868308536531443756077626869766556828757954156332337727899727873033714414500462936536240489865509645512045501596415409285078063284401718130493289692158854451802977667363014366317043651811122237277417187310215054095693044620540075514954072498873556148785879110385264014901005580646633835602440203931198095273983516326582109038047435440516279131239577390552375341778916540812029139624746147725982343820962362066345501017485444513606452432467851063241658071363620766676315496126589056848001104117267991419619338751925555704328876161494909950051220355357376510862546493876653688146815541008187863782391709382495405191763993607281621908153914246062283418188693496364548245262174265911359763253269101101536066931903471007431439837268797873832305167646313988510587494246492423910903116379927824302953588699504238984110661471019771394405919428483463415981541940701317057605444525012985761886970282663052450468368712103817403475604175562066070349552170120671818274765167217319364463515557511105947633881695512523218574688568734823080610726963145450763458621837649233771664116979585366285011587123316983474423387421896805333398080558708341891583511401741783078196904706732416491942386911536611471608800553410186814235089302131070564753578763742107153489171286165191770385899394224441269971233147062375686685970356541730393755288737044018735791860407499756032824420346278129146481569214483791833456878271981450550301217421601669423178058467863540969984100135538965601615015592730597048731934393767734851802802580002201568361736163720782929638825324413471528565261851452923839551110974960092043244477915820827240863688564338685307329624812271292257525935987833619442521764762739124240002368183937873163204743941831383065391927628643468267435207092581699152115642791393799970409847884815691825869094101659707850728440641222482859849202410384033344408827217193423418602371160997869705382464561260494244981813990698809382411071443863353209668393647969627514856743297256617911846274393835509761761986991505463247755315684710022841321473755151280631606626539314541295383170083833690650936260103782847015511516009008852618207114155547747915166432893551833730805722274017405680684556331443158081146580053489890404914583246356198217371293424327082142341238934671840248893398364600237546793536967817912043899643727194154339373248616785436871660492629141796045288127209396888163445691029879306287888248275289887290656282721939377469925192940431423702234731355543647386158454252351703259407396471672547411820333004569683413137279470716423161014633929431957984085572281879177439126655752330855205434683013933141990562034845461760963458128721161308128436530478926298166934872599079563046192894808185405684142378121439368130269840587149885164719891463637445946484472597297161671563397142232483540272160971318242787438903226874458128819526519411626334831967676022452237809975956066382710374046957050478520322114932699796625312202470745702631041925080753789605916043733162475016821002444001534539670283579572766389236700413057280380880127462671396212577232011128826784032948400786410246408830270996279100204861943538620981106899830562310522921336550549774781786424268361942950795936459616198017819092855101206620806398238602204968436609964343163827051633060669618299783359108094852410335212401587129501668368356752029089009603027938768494120746654720413332367835298563302067621472218447509388604647421301536477591670846087558395804992218040657249679183504979379405715494647974197448658784955822551332307647217438397698968574776114935447902127798903574285342732514711959771960757744001039317163673820654307528501695560617289083244539142296070691492157050303342837933838573819227071877979305363632288738741428619239932337662560429953144424752312200061609950429687194564521359576678608543830823830476252561758609913091877918939338336866532556724475869859835624267705710767285946556255847232328196560752427916008403533404073566326243830195703691987761472187003485892013092113602397172216713921536009659251528077453871908002179194309783928978888989117715878580667725164866081080666292536171538631502021281791501409918482986097876074814486116764511248661457691462733508611648867969314230585340337599399896403805319120440190328827711012704621880194196661665264357807492421212000733777254487107377532849844288524173324304354187764744525762680183049171371658554275480863888627005624702753471156036060123810270083647627747758320394459950445823501822567364771891065249025167412855228740802070050674430456490671684528158341460872752447638562120323789039496219411729601440845672982527269175185333605135683326349193639378822812912653103011828481245064884060124108998736513626767057928611707591890067394161064665984185509624218759427217884702470804886279033971981047087360842546830491448840321399627312754840707592750604619901851366717533095892440979816520290888280432885101841798526962099314889442514190799079867248977784345478326510099630850558912880522637553166457594433215614767836612096450113589939175844938251422970331733767471046616452584173744785668118337114259322889289004147341162367332201931115641233592999293409990705710991591914212851502701212639197477500246370151544487840377110047468778632915089414418557602975974338661732928184492390595354961252835178668196884436699924792784560232901019869910808016397747299590924137898597640026691554679277885045466981456256890326449061290369932816067436990478235707527481099803196798946799657643855512870487349613262496998214207386753394681396165124403235050464509657684965098668391390545838871133713056062153205598201208110512769405090473469057056586523348243273107210778125373086330773908977430712424132219929055415003527313771691833107664427160650269754161147021195358891369731352041186577938396927998011252726658149706141872610017776531869886318787886944566323240490301853353560378626365686372036000597830630164265810005202647895973866046344668235283505381361904790711974069921902956368314016385930224674649082325480348406745949177288669387030652010788040557070079664873320377635304226551557029276125677165513549365816006823896616486801528513180816740894723107123586700327315476544686074496706662442247383482491830012671216928482617262892742262414694537416319505413174853972467488983443089826286054374244982666921182598396530757352058114255769056499507932194849827947345080620292631819145606696884488533788055423424952147274078931934425394190229830634836517548689724473144697773118103362633023836591089510803144523140289553159263908727293988389602784519324437856525409922550339173985921222320277655621303312203656382540233955121861433711274937324102848190378035705620237592142459567842187837271918706954566893542481435327831804215464462413546928103714020095794733088627884597708803899950255251459361350812729755403811498741172350910388693020940481552259844814654708053664936036495868685221882197929132801371426971322821215598072847534185561176858435884871535533249254209269662122396398249613994140753160873378129212385917250370814626864559628703973515697262829381739300458407160067028880032369239666411447399996183589398557168145650790349624802877176010373740604094882175215563079830477192711742135878734471140457654793883075760837962995363603444502664903843496319115201305320254653869290674370871007141242040227817246255388039023333443834324334177435661032667971288646583845648723889261761778880207913592461138790663875245804887177441602114213158061998507142327923938617036201085401848327408475914273669136801104891120937800909214907527025008405281498272346176255846356112435018998272161443721835723323870763914209493842102516313387979320152556634686439902905869647661476773170195933004814085139704626145298879001476757066480078562473745075923501489830629957708087969022020025230008057391803017391334500509451279562138709273063324813715142660521376237191838392124327893838070675719791034556313966490719245389220151308731919178023052411926352034571348806983718506677683307983378060349223132820779471070314444193858605942634061789228138188068385616365837076428689936958604359909835554077208946076329612107342640727408338695411733877754545476354825354512252830222739118386450192032371303713481357000398063688174515105204846077318964883037253860498844386019561052109877349739217249199590283104899010366712009765836064609825455755194626367538733038360412592705010294465556702651196911584504993778146410511697898738371205817941061477175616332335787570999296430303910902156458938903063546822607411484125791071689540158930762213923679428825595287304887771661570050782155562705999241784165592177774963555540802772444808857856980395579814134478288872903228865034179167677383369013849040397135252045278051553194713452870881551931179643119970007205604026240170358974754903196227334960323982465427246123605081070181529994140413636951603256335547562785994924459381948373202396625041484280433486315283935403461734166220075044728931137771963966668100567693617841179317967577972379033107895017682403129818179338772130000059099421059165871983895082865594141234118765154525355509458815503901264709508193173907805833043102281820612552582416134893467549331622443552902551201681572337658629197287710815999296333394121783329433560140659112739577540286041500700602384367631539811336440605316798859728228834286570697583882182110594902758351015022508958911051325103718118015994903019871189453879720710958870567964477538365147386816242753170864646921914291590034214767643338958888140345694580874618461516361561540426375053270870666741527633118065067586133795276618385567496406801676425114925468501402910100364365458666408115620220188310767576458744991794892972174953500571513066596435564213015526510634190917539840460456253850520817134906519001726974745967928467126439560254908160424726675167762885553567489233286679862667212812971361862107145815190265539254965277725732536012707518643013079841502866808287070161958956153923900505240556665894861313603514614551164107083917193399732446090289629670592051188249462784338525501636516924857872917989637479736088054404878829175567880329725116604695057919355209137147514844252545840178049437610196516338087832978571825642268704857842664445841989502065243483475758638878898455310276836630074719780165342602087935920641739707512770412587516196588738872191184518637109324036383542190393704782405165018558835358667226576185693635049303744019877100200139850875120102245155690375150824388974875342048699527486174847353333131326117603167029029568948378013401453698749188783732579626689682788358357020515322809510400763119467902724526354480668544682480346970171509861310800699711167556023694167412109786615231800185731407468972572530625424882696353431426843028450033964140269464380305949437762925136968027750992965085966451259119869103795878042171308824573558494630067912571923086151328040670825021109050446490904740210664585262807942213870462341858572049944016875778201755453865204588965782669523080642308823574670208623187166014138241584813307014825970913266101733292140988136276175732889575958656976393717115715386696539762741628474238952316420641751138191103909678946843142324189664031279341769919817270016904860474985005963961108313058228339640461587583154574284943518676291281502018881610386651454471917915372154080270115871546318881192057801068379139163567838912278191536981121494608364429360892423264545731172456722415678956661002088748019604400575994431938707339885777046533142936280450725065081363688329241732937443484669669703770376288229297199475623029584198031879178506992167866518826243527330638536751855269233236245361159231449432914482485434507934323230938247590797866004138308721937589090238839811842113764788808868518245194559335111706527284060321483464236305774530738579092334167324052283090540393109643152056339452252567371408458686631710395838796821503366763705189445677360105574466249270676458178822241814355707246296900828442210042040028243491006891974792825863813086560664118609113454729263783558554505094600279773034168665716606793704344752431057774832341719964554108688621530861176318808138414889367955573242545938138731443828935474625231014938316950301412901063666528331830488556092699017100497490147896831811797347042793561128516214233452575994845148941596829285684471551021456351231738925356132821095116087617723365174857696394165721240317064298327006989182611710060757149584325679524353780926980774923268899444966489916462245536264721945742375868453664251034363617184733693915828023141448682418495443484336883699446557410061844791828968091939079126491378025128029089955483687576142248180375480186510813565802285388731158936059095649638057831478679474911854323877823079664530965650429067408567819332930399018118283405687844437375832180902303061845874639385134297084261957331346796412123281420563562303583771300309446370059798567551188041088678148468295927541107646269355350370892158880174658898196031394546096224225063407081192098235840842254891636112801643686981543421974224725981828033514352812759397751273194859800880485554898067078403642208903086494299096784258123204369947898454285854538278436283764795366695858122743881453400787762555384362790485900483571410416009544977678684881107463304749524611986798758340198797987771472718144721373614220196213345738095093440207284500070969836708132615595634666208879407057878228411500838464979240711749993803241913273880936683556152175592103614982318049183852441098666079531484516452190947806595148758461586699185931874742382115922176689393598602902653975834251969230965668717485414558354705073639505576152632773848372373462018507487819914024301186522339717863165086117192464057593430600520778931855973557042031028007108272806857202314654979719139956195441069329689277458592826341139524207188111420968345038181078261529224423707193496865707020403919788941545718460376249231360620812407196914974513340911521822019600306677589866402281181691117384213434056995575646162821432114768123136828395896490501144508292809783842380294388031531572516429740737552840369171309883486564988888296814472547362963217377113628361991824863604106471753624750118505186334811233655122010770351882330610979708746959860090791155279477054256685626277784864917743105767546884654294567328503065662018922510267580216018708210184355258284609224063845652933634855481848015885668828171293154524144717037497810028221778881576947752126739899877794984488822883857774744964992287119598035871818275058074052995568488787745685666975008161591371325144422966285517977507001776036245891963363135142915295088296511416163619372881310590585006653129923526855507595752741336942115283037843293085503705801522800732719199072451903025988054047614839276748132509177337853888273461096098641668555009326355544098972178376565944640272159302650942127683322134632055035614133773691357880344887879815563473315236132309000465361869936193777274445100227945507271892106695102590011356665427551956543079472726198399050095100244423040045670666508174102495796508164980720875412548343568843115346016292611301392448094766214294981244403711169502647645029099580500702903608138409700051914665888901799604600192829411010896986407610630470218397004499510209953417901650405840042685027412818836778816891443985838246928004353244758505534212550085187515312943829328914967084092173479052245586942704012228349576413755406702937166182611927042977118798915885389979543972132572012981837478136321540378507065194339352966577280171511644133995093854964730689312494012003385008897397973487440972377416444826073892305692084335898705256452981321999642082319930467915041923771639703081625966033904947084594211029007240101729569644400368089354305950097221573655776879943653296423118559717036136334925467489795196899104960747254704609901724817330701475022579737051053354261044103316102019253349253134845397090458434787640245353199576341002604070068325658748879217708183054170726237141175557286196897908536457475987423447366327942834960259736065968307731787303440602672393486182100325334811929471151845615460294559290526122439865857838692071403805220698943766246411389107567135049860062732670489675543857530626072688613557449738270703951511053149407181701093522045503109867332300411150439280197831927989309544396614888760642475715624138738913140364741655139748367187470021247824391679508907290012102722734234004650539496956065719382976803129173377195428501244491473998633944445363971953679653814641104193934368192168610517177917480906396702407784786595919088934382951179888884953980775462055217855802931520480557551789994156554547859637741823722645403857190831771107246932492558283748251633238741157528861950419028268685261466781195962990688963309012157044334216304695145446439880199882388302558141285632334400837526913998890876047562944039986413719261356595343757807331524327451496686690068121899130345781673333599015561140012836107335946224123619304880463839318367587176504777262027063908584609844110491765377372561475984724474227494592176761234881381334163671057374773449829572222978870720793410218594749666507181861622598570345910054552638618095509524089388427455329558001932506857666222880115600131211737837351206431905475870163875268388443006901837521891595914035948571645772797032059706107500431588240613542780618623670313637847319119596304418697060230425868120896121969804187946893593762570117905934955343789160144144320492269173432528008284267208769815782403229076994441089463857256191862593513375180924977864599552293074421208193454354942226429106018987280876882222537029341072371284274753391772058000956962562157082246134435770859510506619046351723480098627489456689280675864379632594456648415210045859685591337922125751073458425161475259730550751367247710976353448724740055832421800289416886838415056406432131830207237115073913307966258742530074295178985143067651974941785341737968769367421011661278524945721779267989815138369856863034292788242177651795351549565482971328226640134459804810210708596751068723103681727353904087448627813830392173932161113586021557473318065241231402839651789352494246428819958576042825056918800408261932798936680135678015685993694493316414811259072426555636687539935030804788790005905105727995742655505967186747419159581258513611215209724547995293930119590480050750777075338824218012501490591534636013969569024728041493572132451137279835661087030187257067239583504793072109480068757254258090207477199233063446073825042582816889191741713871936264209297972751374781825260337310810133337941946940957267637514295637316684628589655469515427982593914376605228879964697019677662859579068931307414730780161456338463303489002653635838574647330347048055947976006192767191766328050504999763150923460386989824136734459631027014925163572568388436680290893682291255220299981634311113704025159216861715088036895402554365075407370456082136596750467472952880640448635585072755844411229384828226954614585620931887107700590210009291777555906860597701907959614650902501837276557337256200762250196834021339449388361709293422221798451349472027062247325592812690118548298379636081943250912828687145591248795935932220333600475694462380024437349117315950185558687295096851985319485012466519768323520615352178607193857262528598484546305852342125307078953983060707694867904922528198514072713076956811545049431043801852385156421321486403780826666993777125745902037907807554523820229167191892006166932693599828022757333766101432767409551494897363626387048376497425937081417972599971784926988969409605321799730372049161218723627364664736558449566902056386310161608211657254590259933613103224073656480954582395544628606845575088384004829744414717649191685518373505091498894040672857247047410153264578525205341354446507808120264199456592860962547407865469869342253259374548362165729245691165726388586470650190956176125924745941096431592720420418209012245455368422689482939197665700688660810624323878681355307194421711586916495567471670216331251909838005017548660324667362407231559210485232903431770516472667116275503670380960836300150397570255995055349999405711956826087339192797181233484548257430109203718122715011282682100940146153043019210135699609318133999763141905547485065310519996571148684076268481110340997499040541238621525366699171022856195673830440563702155654243792056498315385817031386013802831853161431106105829069610817135398136239189422494227523905861902209132931275949856867943553445890524555228145271704000752336474071867594604593242627917285805631010085293905329230022524135749043362915643441691422602843407532387528698681675970536311070370409235781108935792066221445951356591173746829222750922903870675218591790465050377020155856699026014328365891120486417178829365927288251767887003730478982400605364426512041131292521595448789120123306683630636204988519011732846101126120104390718704709186020116331889423127524002796962959486809900788169216411715180638642747578373168261875504112997006123810903959283525245234995997795605951864758091280319906023264801989015867178491420327464975970287832475902806330576694918128016185847794976494025992097045974817315798808841590674327356655331092715457127632028338820035576945412633999860584066489247709497874149841363289628228570318946823281047203582375385198736191633997448396506875534256627877869460731999919847146761565546957668081660532761078307115670528518890571336026425804146995275226368415983731893244006769106841394706790105229866385042348406058597673866581290741323604036173794754861359088680657903508928788985867894709844129514498061155779807310769244401552686925337366825388920945838037801930794408214080492658676482945179450403469749619969711869839579275250906483642645501609669965421790840640143552106584406221006505561849048159721176419623158890982198397835691621802858882878965368817040642365801906173148154716662490552347046541256794954267316147035295331047552934475480060495585493008247053395977295343824607361112430254656128755475518802822267466794256887142022987548572766991424761689868236035730686855475079012355076853214541711140943449406253632766373653625826477296679893802298515715558222971851941342407212460088456548162552814901255557735552582148603544504101939827990006656043156512223984890869388755068668711482480289146701003323524707398916586269625405145365235536634811455550986367395696377915288360558896699337288911691010715266089343991914157290955671210772990304387444547038692381345531602841369261970918430801247947875704165202203220045884479758514899525389698603100513322941070182329991126229339494647414778907046873716338793943512827472309162576609658581788782286918668594955036586815975458404040378962826831093681686875925844523860625392140574548718768589575476883388830861777520642739529408634979926721009125223901071400475988889690307439065064790952613467454421474290361946522266939457559491290771698858387205788565067751191103699377051587386628715853381378476045009092130225610769136109925824009199196810272732347690152661998670950959981660116257195286479750786427162578266965531799388615998172666489607638074647704382331913633422454708739679247521227023252330849992602178107012487523809287412651159888702777965042009731381142021669892912400452865034774527116269025384799581675644715600752844555239812402727966040768712877425139777555167744947375074153057410250480822822675542244706675748977470958530248013176113927962156092867318171291822975143000489532096123011685464493496270221310965843778169386744436946604590615746980433313294044919664637019003354227801574789486030141802244561753590620929532140667609721108140977684805244739514846306981478563838857739261379301530988107871475058594740385473155542818852220987782722860638723920763872622154848298420545229817696636840264905674425160615295294599096067106023148388755170253187653005241403682371080993289733736696554802892117839885784281592510974536821144233836248606215229756328628388268597340287971924543807267783239323368673982044358121975648025761952305386394879285113385075274050695455655227272449197138924780829025416883951817978060522320447431934972507271601113975933851570985475515515722512867209466073188092865886723350655473257959764302454700756343197822398176348722981810037074807338059141464352604767705869982851856766073780837829326385611364310813238496199038772412981948332312233463503233317941861163516117277735520839997025056643007299863796383378542341834125470682504172284337333963349859764692130021954851318465468250188977816257502644416886801740315467924912392844380732347180582131198988262129406878814872205928123228089407281688629232330982308970590571060886360023041585248566373821409672505694561254877806375399873970123935820671710444977909361523797355009546677766015009901673139201338428192633160749221477217184452423414556652460161863517788676142946852725979687559410669163900022420122721864358201764922540340919521243139234289878747714282872212560849449812347388054191496626509944469457259355162139284835085577836517487291220005776469395305175111034381933486773576736002955241206835001872593938227733576554796806781693346426535657241495014440080655709666760768262816838669943789884730827125151368261856253800003609502016434001199556085523900497442514824264151175648987838684933756201080339921041900796862108727685577114235269916139996105649475177065102639307919111674047748878938872778633604340989459372311907028563995138677007101854972498572139947894077521595221346750085967625797662854532720795090508445793763895609123280221016653235235816572471401710287870309895762614822144332328000517338437959129540449747513230291332307043098761545795456720603519838261840445280334062042176022998972414983017321073330055117734874768906409857597605105486919662790601823999792464826020456626656260735205195213340969750620613100922570047865009390522383999608514790690282896526141451569355446813148760453025549483152033674635795426870818938480533630741950608222361018617269981582682304257604482661773273498262150310763175009602033631980198877548288895841387546569390428477334629578756910254672154411435438874645611060344079180973450305396669359786869837241580272831439754134994705158294658631984903035034277315928918760568467323625472169657141101951519863995857819019094357843651709798081086274333629738861680070086042498171968015849665930897253369224387631152011669017283898327179895771341933393500749223317677354659735724437957011945332649367858072422360883926187583983545847665869798505603693387674514734933377625337699892196629654154933274349739894614134461792891036777939818293934192372331390047635011663410094583880995704888223751177775184026037260848494690475245809496465556374674881583135595456309960497534329945381345668877736851442357828792056312133499845512568291512007006538296223544802628486985436379498280873630351428053413843381129597955146255419300602200615082789964760069549654148892627918276590607869914501277327039436108393465027641585093755829000580929499762206783111191662041478994804544152426389059697802706995257256923608797407979846846780946627041874745187216695458689721518892706856782284910754038080822486589150379131717759231509335815662803077742054086899583649906652951972456806262001612339461932291234887885463313743838446197065005881490226810209948201408903359927054043184516886027580293507851987338223824064585223525308764195608719893286327786374260928368085460263313525927685286541111398320681116911104977538277998871221098736806748421201666550996182825045199519830858645798409127139376374116637994515887805625013649943309459184826338600362865710145957068042034486025897311325862541341701744635442566112018442615563022310802625929708413453089981052250469314877977350695030330204214744356715330427795412735327477284248079136058561487959053618368313908377684506298261122486999705502078088541277935785958574831477232674219197049383025982085468906768892679138716526070211654843257913601231699090268477635905463505780706808280988304570308408928502457906553050446088588317223396699206109555903401203390449173259588872460490219937392942680759291978002801045212001253733118404446546438937185331849023260693594894531696529940088821751073827308517469959535935294858980298935446420270321460705368632720934041234437816054874928237779140917149907160021951922619447141469230001927985144885542309591655071345919336267681855777235501760771540003684092534687342818214889220716875457803498173485958220514093226673050817751056560098959668868302648365283436734081275485199476719973762465346973413866174702787779210846378359632067201104758353105691844000435200979479848471877289431433431421613501873001793873295447650171424730824771142613247506841655243985690895545454548120127665967513903546389638312932675872788240968250700344213246207566189203082328162682537411432344866359257947330505388622617871237596992356048549237704008102506497847959267354606717720492655603067601315974496055845567928760227527830663497456937553098178606971703201378650347903476862270371074010943409362658109890033361438990633436240470992864551042964282405892323221836757672071831065345686585606915470392519056433338935095220357239411819130762229775912023967027175848890440888803769027067119894478469517500180893027585625910755803108279473577456955110246619033414435887466932238410720233494583285058255094399991551152781397201944351204511255284492625303961207536198149307007425789175110451599494186418407862789948086952331252611093233223860032571205832585343175097231826026757285577784533984174064136300113743829490645367229831157722772657583132761788504051962187269140935965837119872166472477526109094774460546730804630995562084778576844646692120967708956542557601552357360659609778717806064012775244056656781993727517606758512509879268904466946815338894241993569840434574522213905634417148926274935861260679637199044445048830778188012437488251615599435400345745487567206472472043851995389282119737093554318985898943218652805669510879152985621264560705329399553468115799413774373319269661881904850771699132184514205357006838775026352683367987347665065080024284193700993385734876948544094048910693553950837342943418232698085994481036999729938820474364622695764771423641536648741009393433014386703012675008207872954105896755246865792795031113564157586520280897976745234280830414628073567955482509490617280218315300264819951133490955098305481244451194417643612802167768383783717372244642997883283822536294967398437363795521036817790296736611566271793091991435540189260452803101405206057289747251433913404955329203012329362111667852248452895375984411299077954484696654446986236810442032602508283744296220544990109969523488957310512333050822473088707021972081161862676158027830258914397283568172382620350032307889312379559785413325574490514612959144531570344681464041929127240050881784768419689349209437361409267899685052478857185610670530671369601160722856278424843284301490001483793198872142599442329779112318793254373119142154938202639181791730919988140267738328134135382976133727020661832601770792569367231720251160357512203280156500609729834043321216332195649591259665437698290347223373608676052872002403103888946445228084051413753165615688257852422152896559188005595036617184406243319507120159537145098802085115518888492966912323482095186117544131283809065904757000527794029715528674753403310994961036656837330343777410598839782169571639614512032835664449845866816234925748920598891304529516529770959671709863016897995472529681746103191916135622744953029379707392157039502170501732025610353733855189931714681189771108423510069621158563666990856570365709506947147713866030552004674044810804068677180320386187918621157898776198768922540911758664745696453528224766270351381010146625416810983102944808606553456640834696332850262786271676339837759320525597630991596517827947181183116182151204498769970537093092528406458872147144370327790172445623052629853553506428252108486994430341879023374568916186671866858140858321919375015093424146262190264931592253985027424317788506757906992082500806888991781163489993299925036782695652265191030589087221012063060560103095164352344796499625589900133597319245938953953396684790908585074828889272198250201532587583929411966265699096955919996823641028365604846422583480220966879167803206203959840610308404433890774772856889504413915915903436513457623619842996020132945125928633293918934583733956266627510369683175177279412677579078939922792739115185017405066766653519673532332640516995492993083778160846532109267067798417040107017035138498279617512569096615330488738888128886120637671383023261215837670367482538969776014816633358271787013267590686726352526485929135414491664561246101476993385301175915719565340615460310996279116438988895347895075145385647934148725585083638640429245499739391703491760283600518008637946468586895183163555562502997623181217537055071431800771237461556715135478175197728911008860119400601747205255230150530651845077422379353377786195542059768650920541054636832887162843171802111094247274084890459361861934150178488169876227241577020451685597846150153781056778411344579846826949208603505010804093754251788174438562027689836056068146643392417417593506229189316949817179172364910190214377885688862430506417641867563021321119459535324182954405846115667826311546545402420640565418776297971021867459310917392761747902487550457147272661415393130422982774692043208810300780185620881138552190709649264229421081481119743174953843471964588364167329579493817114622926274917622222594699613057567654780716926976039641140232578025925561722608862705899382054830575551477704531480520655863708613229846597060748898886583622918871191567186952734924920353181441693165718882113252698628267892888858110514662071057345724140838935283694103510723261854563673665293204623001992246550112798245044498252199891791391490640698281695101691782501388662575527847491431682824769813956245937782547576762449551980163284015328893337661046885904968270048179869472992901589066843133003371955305742353355077323969173747499155724590322027471470347023168488938058646676375085345061716161402551901425876816860598751499033212045785136416490854740287696394475613623185012016493829192972829454563937384200604661285638573565950406938750482715209818322018658225421174592556023633916981093065390377466910580677885398450833955884876190765019735533243855505543622367960477010278909617316338741718626049196440666616521858610579852891742338241796428232448446532739166518035899171025046754777729167802252711329390218808961357118469259258971863643276574834371722615139215927492521435457063735804313902924314698245435191074300415688263238348032214527955784065905585958675406894644614245597557598404155936880652903519803933805976494541108142620783186688511805895971135244795828935687742201331279476251799897405053933499379296830373079740134902322335930933662719563992630129162925843604405561714692290145451742070793726085699841038987314100112925111484442362927435121008206502657789389106215923519860544858143922103247072830188787189951093467662808657152539393898356992884034939137197421150914080767032563933499120852723333594345830262920435799714173996411100589912752716495493608256600378809294468740182279491089105306975338290537466352979572382166319628399934847706251127403696151160798092478718435664765081398406441692673034675267447768004991877128203392623194030837374426155490405319668947888110128834202298841726787728846918219938799131893534906529168079922313186172214137292364005709667279871063937803845802405522968123744719947457189278645001589405071062729690927563177934179820314370955765472303660151374363333124744724841170558646707137913985100888297046293466587662800530071746455712796924207085784912753630327910782472673741429013305401637296297298995868891486112731268158702825751481091525845009476124931465616252720998440782460119647231862675893393856616437872704120694400299100798185571762906211022436262264235497256886448911756597049123797779666532502132845079781126027863872126031517657486638797714700663651230344525254453843550715964542529482986176854933030639449893131978098458449035333981952427205172797143526475076503866817684898430315190174382287507593338650877059128007419507134005244585941653564181875905576709548245373707415798552272604463039340247759071702660497436780076419139120795909407774964164248542340797133285564607350363902111827694379896800669038281552028256737217997308989364639756023131032994265715397160950874605908783520208781682560238811682739355901176265908645234970922279487176715207324805432820334908588205092278440725251437035069001449819394637014575123644306932225115657255799838870824123957501468796614044231960543889777599279798012139002793476095434048474788339995577018611228710695316413216167716344755152105219150433683239503035049439418166688569495760277002842064313383805015824126528506956067267475254046626833215819664624552840621037607280124469214513761781371932541042360941070788936852001336803549984462874996651152739651052755446492825113676657170523346531083229932461787202193638140355283635673006958232151635200180278034790861941628252678618712643466228109847741776131490607326938924166206689416476009812805062881068600616848733772879041709217320157317101650093818127242092526576116437201090098811074760726021184677075675888849074065512107408590264684613752755315164578815754668228374610392784846910769963910318058884518641233204458140459937973435349453533340607666794125165826687358224150978628282526358821088823327167210344291382832956779324853771419606701075959384108294630200029162549414459932504608720491400556657342052440529275557670943462491696036612225374791172448690585844019633052194361414898199198756502286671583453964320060742147350907517794639900359260230043319419546761872201218507629446507700978331332789037916160378495902539789543068966093193720901419161865761754560680802260676647238612624312546381079505940812617924355504713946938108934251753253413866837357771667652413977827842096516688089980384432545629335461265119484764216118763699086694181665370440076700670677375593779001709890283565562258285521499038321504348115620869731633311579847154335547014809877815204569600783925687540314276832563547497315759590169885162884395218015477110711091657642169130263384337049819417980695902873471535694602301881085321285982099211177912783727187737218609537197242227442841189373809185790792176134263999537592561900248411305451538304956904514206647161100229086438250915937285888128136672736715427702830865039338855253193558132634373813304730025299255914524197550262308936371440403882745496067669154721355587495441756546384637555359954719499968542442373308385849313095274681732917336298026288208620109555685914046058449277743167526703852481157651631645601359072134861540250246539757948498111019605986613242305829542094334168072173458580034085009420967753331045233451248024190000305967736045797994463033877031424863943574993105475101279144908243236719249741034119587392838114330646004830364420953017044721989250872775712903029898811800793446047696254625831341218677212186796030356396832852855638724846881194518264841532626245612001147704343463102071611729016242016246574313090430670370101940682315800184651008524136108972844423549969817566563738225434082759292403925714842670756404594747363953291164978638296542362924401556413303490882187478611388735371249288167957185981389152502178597190528278010844151477375841230663519107046034607661074582667124971240175413941644300653871866464655505775334238668825579787725493796040854257531150152484484421450116340960293882256984028819486236061285115953452508617028443783704245515044836584771172765488598561034643454807853189122528409414699381128471962289670582398179073734766509803512050269340470008571795096657062846227234541762772780695289418430960503462557274613999979186182613497541928340588185564402249090999665473390468829731740388591751526452965270035111137303280872685864730388037866867228990626887559868282771494784382985018613762269173263722452064125947336783101438810329473951490908423862722261006197073012868364621741593068191672927023126202904012726925471174393435458108428669960940049154728765743202879360776557583518837719088963148135579935308517906213683372149060146341668808508468154858432185984865105360433171578432698289641985166965320650444294093417565349471592220547342987613745900672754948816463750383345553356546178134260915652036263117821111324752640828083202725888848293321971963701986528133171707277100661132838208794965088862876208061611266816555606904605959519475733555246791933265803010141388976034406071804400537288118764853961810293303292219265731494375379351055695452300015583258108222150566821645049578161341104652983965058765853902332351306124728803007003379147929075450380463302073830274089166837582400133403144423041599285052535170288354569525269634421558520487346224849213722371736866849060461261279045371302952759633284459909193027829588484699936365391825161982591155671151759799660256859674796476013088594202633624613977940249721853176967271557875765155669996163504006668018689427038255925120405086676730686528054852652604852444785432573811538525773851079950087555232113304793874775829914907521515003031538130772527797648164790870235911761102298433023795754587534275123537249998910140599432771546032391476209443007294448483937206104557864140133735286918745008760734727302148666804245327602454647108799180523087812195435439903700174557020542244598908688882642196174300779838919311972142925223805531660024630044741853618756049087919119661057173540990942666977464732439082818898063895767341508210462812978676399504605790927714575993036743961574502946389888178598500240052049120506093683727831934146193397746058281505688296979778254845435760485171533158905449545295312318868308246834901853397298991242964187992080576478793003874771151037229966022919360689399158078367407701754480175557322026577899527973669303437835992473492310450801036648131430452087563498414303172968286503972541844136614454787467542577026767811676711139646332112781371315494174754091058369536558929778097397658372494468607651943228003459799757191075425848705511436035060420023116045914415550612649359620235646421550055494384372787268789162093500863048377372624546230987610603533660921632283038851317291913744852374236442635126026848764995001203373899667181429093695243626971123961663271242735108474304990482802746457020807894286660549441360747698582170962155618496946064145653640503445668686115749647197624159047839897365277048343020121996275832991528227434759802499080609847236787304820859366638409598389246486784797262077476631091590775134067455441916533960375691892920861680153865502051095376307510545761604821235364472920281155022126077376899339574906080558195098259974682064485362445201104444707801729190333109200550838294175895364935164361960537974117579752142673036024500082757863682415600332609988703659478047025223988768011809245688514144348171426575454546173231831970896219405814085008915703301552745535362354268817517506760489243071718322963377705392591651216528474952753107661299867869679006846261256979335188734059665077667863566426634350670613737686147243864316145614998567038303914720788037173834508374412447469263990155912538916125914888416024903030697597644955731998307684325211591636984796158068982820301263447732548327637384879616946433781121338172247550521427901271197507305658929215785850357951955506338922826593821737660880103282299302572403898608784454471582559655566498398714901191972852657354581434309184218543175814964289494674368716900029473054291935614043296818749478505604006373517902492290228678515196016186572268087142971428466404225147813535205891768904895903028483479809757691062005185866106831735990590263040329315201055263248835719603840761045198598886589988990947719199424623662415160973005162869571379817418653466169031006637894834681616223000448099962063910497473081354155944032562669070175644440046083235073426355837376086438768724763044708353297752074247452988377650487313282359966970606675488021317548691436428806167708252290995806187333548758717132779528811637146042036287993510105915072407357119292768841778964694158215358443286832300126689516350769049131896880568827087558213474566103024799053112083879165812304831755878852695273363392000665425338275249678613730067344313500994557219071253544997327281768621698987286910140219418049378573244439560948370657416601633193558503214760602944385247414879733604141168485179476646127290029093098380605610417452886238893914200076094450535516859818653878122988620848265489080593114543357613135557069914520674077975317118094795276585099760568757563261588609521561239196307698873383925541520893686464071733972393803673949978807329262574388188155031457636716729220007881091526753685380368083692431749421245112639598845678918467067016115292071516729255464746362922628727102763990495091377075272214570443379535784325866422062635379164176257183815856239420781273001169797392148481775664954087496229378693994775233591738133726569259477940293090929779835180714064247707430891671740304207303853622226541676106438162503604867202130785233479349880041719406652555009423564598239126438426184794102943227483798524793671286853467154239193697367490883975710969339662576505138227078234674851314600776443056108075252634732440183334840455032553073471044689918085853363978330835101604641543444293176857659146739871724714231575349087598589565637330156906914221420459379629437011306896335297161330660549848132961452191160010032074556029694611084549987633265272166690296688068928975929910024712803870350832408017641154748054512864101156176536066761363307987617237986710060310147186033122199743581145613385714919075881725699264449563878628065644694651303309303014431406194539266319767432499636102158404378747982456807768368954988601659591302103906582993269532356649088623552299048042585967713677063030803919997374451123003757305708899187659082859069556442887085586692259521414009446163619323170228052737266299191728325728240719700111909188601313639580790613993888573562463649139945944798304524261444006240535480506155645014115805964198199290725038434408869265968959951477928051514012613951358491101025338259573014292104644054667248307396804645544511500323820952420117847903210946369639852225285587920715756730467658509081881009906719759749429607560563200743747198333776465832645477282398113107370938504046222127716726460187750016692996801988574761126269227849674894632527859287581743168495827340209878766896105150242256558207503138239438777179683490980683064098790072868862663588984547106828802731295598954435943307515108180227734858812557044662155906023514713383238817061739684832675996912103212551007160400273067168696573955472739493158802926625449477114999461746996996014423012530335097367557304219296665355654763585604545597254044185410208301790176311513908629189881294610814355911707614180164937170045405789077134470806757909339063627745398618481573306200736993580327748931954207713395363231891030652555724199657517887981262972687518930107144152524148033169622233079296596546669044719819967036770059514732966407870009044649313737690122651956190112231438674753503634309930309672103980240618789028456503411071991878573898606701895937564302613284687475416914075707450296240530525716405018517044839171684166110704540047043136727699279267043407850339574790760098622822403527802782944615293492882566598885564865696261054990948907122164041702715491233985763777168821102139995051824686366532471693722878994003257661762727090325922834037056436885202253146253820998060592511665527067825815769510031025202658125930668935368317133100560242744515046582368629956979971288645559084011086302187088186255259984331457489426497738737602040591893520323547788053789495965432882683234565809388984656386209280696534981713124983614881124469983641828682904026947447533747796853471627926446727798820570004536962250737812434454902340527438949491852368173695761795624885241778815624255998455781123874497597005443667648790423513500547138409320581420035364087867526645617532432181971370641982318064823176733524807152114232143402183505200969870318111551397741541655530081895398233405661549662956404926542725702629967425425026423311517079301466356176496052764840727885535201763006328955344605580558208605018361892866674312209315234685877862320001652867109951233840728791572487832686366073575085986546963604634787845796306285378075272230374297081378272233006607141882667835438158224216061106653436555404699841661647473747349454110587081969211525160388604507322492848342608212364352501279755477828970073548249178574554792800969429082936008752564731211936943583850306347114661845034308394887877105117921269388000790371248579717087078473106126126963483824096749986937990608460053228054869150179649136426436956491844988415733644663450643827237122677086392951715526481004267712556522836704530418575333929673748086442209340694583215160804938363123167033335428779425241651760631571351678948587428204844057802821109134371898210321623793560900829252192958917068154398831125552156656334176042271421596608324464988129500287841664630686399646764280852299800204778996467795812237283754946401824436081096685504487499292255785211978774127802422579686446211418468465179601493187472864099838282889056322896233781353089108765798465168048708665914313066884393896963128067112303797338259588843982138762074462533752824472682089661506245734255857517250982535460987707781057322937037424695587084883598815404215350469926230616566643059322387459531761552771895502710620979992158054928316336782614079696396517182832390976794151492178032302669331532347346048596252559507386696695520706017719676282392598353947336491562118594275434475072734318805659366404641096874690489734686321294119212521771791733627802468134841049045511696604434729822686053424729248691028500076404520633349385424492027235518579202538409373092873192634575795962326274538764853393775581286834430893010090493192409645924618167418573734225894760370203320838367483501526636493865205007693001423666427270849777548760115652280573443435536639094859256197911340503794197918510449622023311194309890191813900201064963530676880279222220440754212661025463858575221177865399946755241174516059416392318922406927166941266635573739317179373052833387527870005060291470161634418685750351867655713045138709308457544233163869297794367237138912218559595957007581913685981743395813114061690507427294788454458041514926189499598341522987275753784912538693737674162330774575704542032532522503024845515356374407341821906122809124051972422063713160573953723769941326132488454964448599019712931212205608759004673904078002242315068302804984607190966153807161768137425337050147412341891021523459481298132073871074640034760472344947620307530416898465123479203337793830471961314168214582350009464555608908752368599379408889983005156825145405656220375326758809773040933675431383115094648095707203717564436282487326874441016454814670037856725902685279555298884707003482090148942699646739945929333882702353976589193641093116746851120449437058130998970710078653492181451913482346368110330217623998170348770626303515755803834572520658277751790326582305594960919641024715491447365196574550197412702209471586119481433967321098743299955664746986273972255945945262315348761956888251236220404131182027757497881072188310047236621707361803281676789866536039929103828290606423529688526968532012714229797383517668724202102959356383533431452075216924592815326427475276164975108544957928902961330342386216527393415778591969203815557258923852524752539794112938318460648125632123921255274286573117121992897243457980977572174094352252345348134121201477171859170776365813027975287204361116712813331984323589613757117968488350171480258585380360447001694070580851471261606717624578453401954976649147306375630770952238453754729702069809116674121143427687795908400155901427510842659441186849803290441873880427229390537997100124712723059988373817202249575105458551571580832878690756588162385026056530713290652021167953729778256512670643104509705692261415626289794701971971014773503330039119542942469072413716133514028879839352129345665960867190945554339842336108563247863990642328672373533714261068957212760317028363657190440381914284421721277690415452249724716111931763674672598208669712379156854895567674798609807490651654781913404523875995247650295484256345908225893012296748971520508030132347344603813816114068215347641271135675835643145785846797900504960476805273746809637376133914588841076033174759045340229710890797900718044921140832594479740197978786036339906588991333253166683001781779309247670113280131873743385773211145683265375347978661278395468380785768112700184087381493205377037227127101023628372016672675520687984378303760726391348786139717616350141839763620380943644298989002008846829913062974625806837249684615097962953993622583234658883906520987342860737276436887978321257557384675045502558221102164785131204425934963259620367862625266484066736179868894536797040860401019374661466631025834480119253962246098891652895217660326184083084011165402245527977279963162934116652069435617210720751964719992273986189829491680521573290759886789529545918241818608248044704056888278593279521511665986235032649278821631349372012489255823861327202378011897428384619224501601305279015865614138465742777682493275445192746190630452542972611811428287531941025412839482903576677045661828504118386714046278862207423448059328892529013528652310300886815158076718453882104401752945021170630998736940317730210286747741068517622600655199573704713089685101241101254041076461363264058732613755896017999156522389414127125822718808142509201262410315046128762298484460976533992696338344435406729683021603683723076009227090158683384321776294705422367380983036896504868095733811401035774858280411578423665770293213510624872481208437888643061135196282820767366721541134047681454412344980599551962490761227539291565985881028116748783471866497258410540225702168963452124725316149195998877000446000044843112485634955237723325678452796580666542263752003504837394573253055358442613221118415719626158369660475538929414019361343660243860033624822183355224031696402504517334235555593824927078219321325266036610556736188602515198120985538603372347642366278452922280225698656929849871178349917873733118259018562928876785605200343360461510793009286959993979682152412979278815321559429372511111360678971826312974474453683530718170808899863198701935498520647198195920891798426828574349988104782329383632133061846459786555309775834648090666752581284006637074428953626194940752649631477894043742859439275668531649963250429404717007502645391777222066752983376927481902872922335351950403276033549679009749658125053808639604655450188492622997144404725009137332596408949530305639466095245340637172234361564316596080003579642094189679062806161519968781834220538614696306964049172286573158784051078354631766571890818208817256307273138036632353169946444419404763379944821121135725684946680952412074094042856416944555523374619870759279647897095423058098694302888911503220726184344827292396451663959590113486566786347241740986652939787866491849046607414978113899968338566316155172741080568315878966995252809559499102665518207308425210484551410460430727478366426844367240375988158119351321879851431366632077927737041002203206970367150181034320057999934551953419184326334996311073470733199151515795199279459465768404681364459178177214361062016763562599327839239947505042854224887103803181569827317811248339362406764616284894061599835814900406985555978680309520399668961107878797055708179087506633431894239746743704037103364092145459650896477961913374911731725227428270282510897178109767977718836686391345074598475443423028664066716724058496246295786493306133696008845196134691388320943317623261395017134229487621644891729051371870338047272505412701940753789813697258178104222133732999609780672910184616974015221211263522115033843959457415219818300539847041650440766664435470019985645915876416575022510708377600770846995090186851717393410729971550381397568404581973879913485283995661010416920608349387277962844439106741413771019260334795548568184704686386515404620099900945659715049081936351898955506273410779948788212666863256061069602020281959492355828908297239676156134072504264051782031778614160631514137559928798704865602751452252551035274554100381510430450579866965105213082166061302538046953879345678938588027960913819111453585575036336377055532433307290683028517053179085639601991198723596306282546567990103972026685256469845533682266504571586656905325011444081806603729716454376150446995190504062761446837556491759115647521102958471894497984956957798736812923722275160710626985838885538951405939401466345323797415630318304561981351960283650495900067044474599669071767295701565407647396297159707898797663597973419284603533612234682326250155550356546694848120770791262966555684963623478229043490266588300969861526264174486741951083139520695404769722874687691031950163751275803839118890547094395780749842117544190208951421193271859483390364837155250688860632050887274735190215987070441930094795405525359162043021754042311926758255745828098115957404983340362842330912661939598758451696557780659114764640103971414014288248148235752712969577532519911200512915105866189904506436856153764695285323415730358405584454145086746608627648730907810107415677902556718836134173676786146104332837287107004429311645125858379605032338196708802693005668970398381591066576028950190484391361664596900969296780129668904902138745303938830304115490171357765915754689024586611482179939638112394711514418637144376127586660496624184302883340918359233240251030742780279001243839134357386948069797758931953249714988108531818995053831959143210735951340186068346507698279174024017011188895083236404491273522708381361387225106994587415737144338705317922229886182461632224687728587133374785560016213153740193278606192613205898055031360948799015326526329334035975338653874325796246039792698605228777696226876399627611785957496235003251027970342083859456421690925613627899798125872053511891240809901162545719141897283624135084958402848156363230650153384262675823862748766543542155571051957319986853410391646565799144244652802142900176524138784965206166798278099352481620310382686809275555721803402912872841351903690688030140616099875524113560594678344134520514021716738747728886854590215998981808187982832887027468955534181149778193072329054326891606542273510238812740402306439244055144063992870327924658416068416492222609686752329705492643700115851016667411892356823262344662641874141140110963613526212703280239595247107735328659391190447818361448542444277994916796289028960292122676671923116576297738758877600947605281720271819326034334087443222931278499425068112762940455119577548787466418148880273409799386047994756526914547081200578209218240568769495491186012713310673432400951302009586935205963625123220419168510014243759040566273420526359793941917840663593286448067443251491700725438504386935473109610025346061618362361323818905229359561472262202161341987971331792632479026328283376826353073509321106324030604098048231134569921594487313508202977183078065095126800640063787782356491674928678334605748257457122560364987936251181789206741443688293107814809501351772625049213438130135999815667326315823131866662098792424896946701862067419943983596679800146786155623271740695224761758593514092521364088655746227332837993227443457255803324228382612495347327140896711105912095589351478124820827211055182759188820904243680399513743163508801776040988298726708657068198666086723667959776695161841577306828231744637880128594404280003807499214072307106026038728210252981567990342486588959708645156274168713497652535768288984083706221869729958654004750059809322810871833491667102793798148010212714669804020910828650382772335059206424297377175583646565101012267014259553567134341764153175433096298852069837764439450036547569269230825786101439870154494276229018210663215267525319099795574605743390034362092688107777280170022935686646815885811750259905105701574495999680038084263639824180148583355901484362151873290035551612833565009396501230161095923895451692649008536087495873404975906464939528769623174986639041459634860579415383913278780720015106607001577970763349045827512588599090152337657438998750481856336430127405276660271374023639461811879216402352593466117015604646452136047282220225307911089589542193491994289889179941018314243727856719082250534651074405903344516652391196128891528903500206017482570512646567165255085116910947915682553972799204469433301059231124005741917785953305070653687574197643872946190136089600329537229599984268560740312981938288796160119661597756550657675509731754200503550303171796535569090782957041816044050746123917915212370552867173348098049032748009444008061449101625691328861609593963359284030408041938541102606011467636984127675267144572231130469463674875492241444852089733231758698371578633803877546211112795402022864766170519224751576099203731948904838199028023983325704982177607670316735110649802572495197730304504076317725981633982209208864182273193232961710594140279663201686532742066118486482674000713211475447528638647827149640657328469155902124842814742154035193875210639121698426307911143276343321833264181203830636784342732549629305380856039622161736061751450285247967055255535405607643589815528105101220483669321028335260715413868937286131199862489260998786144194429876796745382381231200674889747318959008463120154525268483025804700186756337136757845917413444598099550214271547365121452877242524309868677396132175590275947806426815007142330467429814528021036585144113138841519842703393894225680469205309676769215678859268843643457061278452675726616654129433835451561315915456703707040953790238881650511588031374360949632113667738211166956270487962949183352600618676580517548154808553127092102188754443795954725315580121557560364926793549042033337291434431096764946365444094713475303105548502459444626689124574279692326810685771516784139445462996522734651148087200111799273863402336073398679760930654575369637876686439228183484737089661809843269305588850861637263515220324790124981124129622966386280489531325912412489665198230003692299019821826466136355706654320863132629122896330427061364500890497064372185882248653054482490161842124321300085744914928815327019158188176744418205888012881802777168613329435874130708773251371204220938682575447019311344480787360971124962618131884771752751281679399239571397170377222476746961510819663217057469517574307238082962090652675214112607516829965299305703343347542362236364051917677955563682117681194587499733089125165147910904477478778300831112191119687747375610741911934794542164062665258378693917032570478959862431922729882948633182074688766910527061282632243954745315695171638299132536962361707848984341211702692427784340166987947711291530903377496328661193385971485697530534602105746827254693578059978532002202182200386630909576953207595443581592682046931794291362250220385319047453820887049342205050248774825693511536381988006661230158027153477813251106236303985421225849013633248521670793458306714084348022566795881689798375240929587843812504132977773320289148431883837360769032110999921610421674409664214601233261458577701886134302589003289443591731747417992730532179156550150040804848482111711697800966405366315097446595549582631843806790462333061214496429537032399458605489147582502181644840866025908238671119021872887262050552107124549637045540984473541024339557520348619558369971635117549093442018765158737645562196703452743165746341212084160794892606859666779581401742201063956958186981506360500432049774330805878408031439027261859077271726411141734956413690062069941296310520919627920279130258546340351599558025662226503762152995305452225302310571095129456690412453627398606257114608103543995546557541858147599263504898867269217198584033815496312038446079816349987116593500440688456521233549748029311575795697361231213757413416718902977458640385287638796608706790785763235657195735157106771220380655883850136234900540276649707564759200656011185145808183785989831548616453746298262692128910611657782815775129485763231711341726741704930312727801842911822722174339734042404781408732427037561888718781172936787861326546776040671150373276254421733808297882446190077131229957387176788724899551414964730763668364385611616281617635542483693469502824990680062379895978475342212456888208439874479246155576435686491958369152783550470943275991574589490960680015661468415310762578378039278689262335047746906138448634241358585622105902383223716654827682497534540632873266432624834178721651564302180953984017557358461364621209852729105711151500923559953899655050521534088015052043557562274506447743970176983131650753996496354772130737994095113822529817226116424285010978507620630583295117903690557384558697205387601816786263132052966080162048786089018855036435486428331134544142721662662874328324117497355094857893011174752444580112087421391526120761694494564084403601159468731277366107158581228333255270760505905941432672028395074417610087377949742758959404229977077492062772128233809277271268397903273457422043643129602195594083246289906069278029137957987353707840967325600262462475344383504232449205926754682959891500677130474361079623577017902449119150365341011900806530418226368275138172607052183433031366219087304166196860068896297011113745159250413884991996512311041590814823607120210943108624333812589663223058042557544690676098701277729750113148698836781100758293151596856550148491927815285238570196492271496880295925436075745069168957583917359760008917668800923086693706354161073428508379416714763818530305669341640075899677008442528450542102115921281453906830446987333695068484398183665052266497485580420766906270213489582872313803477896383750885898379641586983007585438010336661596888541712772504263406666927690301605555336608211122616418510470301859827896899054090049714213651790281323603763556171158469681988081781403958748513745720044437140509992492588621396900376854869274508969814940114683194243864947194523095822449145774506171761510638346259382742343298638416647713938344714436148628413167820812687851830301120164589322170645373945423230990809496838216948395710028156773450901404486309436258186273985639324069257064424867412202135953589628381038026037245630404822148272088789668995585120542086163557442151845211872339657058892941434342210774718526904162291867396269109364440942311585330472856901936112170430964847546733574457704081726672678782669886559773406318108775392704682950277620383223317059087606606199191002180127541275227325159881480798162671546026538612974592879458595456161172137418913450919969312480529358000098816495262125626597104284870757893263113683700151477319558028469690209949398731294384105995135450812027324002899181845353844549617353098428137991637975772040847400109102947883411694568202873146491495467051304473677462471340856932290758737351231986657348084566351164303289131191676567552581224586008977180867461237079306301429332542344101477717427840921745614623213409117642099647969867690726014592369006857946827937748162759534085175627237921729050478253971826218540568825975449602678089805080663912045949140040795930120363167610603387630383329531353773673557900902866552031483651333825817840792709973527854521281720552618943740190244260629189310573177185571850374289272775716827801757963775932336862583814737081860996665605068590666981993392295655006167601501955338829838693554313253964657018474927085428064203186845242421282472538950348254851261378841905893355355274278555229837717738349025725082523207537789040385829209807167949206936680606924579458130597627409946696683791356671113128421139352812463450799509286200273435371273532650862301605014608349109006770108234473940619743023424449730436006616730654445497341623064796940572228673919019984083280821597833847396561312174405337265085491154427630216850759544415314536918586653843112817973139239799219056491709418262563323153358944747794125140275050446689662039490230503051334238633663350488071691653759366383879868488987464822335298806573307328132520211095460571671070996454684030137299645212021334829395676153665878872725665837437675085051058340915816874790767444346899741026747895306395584621749023004845470705210430452676484599355884789450717050912212268934446959208717898228076583285465930438471583952745299418948114539505796639097412776525310969773406790927065259298890838257102405234774292606259413188355538611756270414321725767989090942195217944336797112094274310126698606454496367915070271021611797552243016921898966399217678427662862427146706265038337754574946992314866833482026499729241399843718200948118141633999224943992009207255653745659975299551086082543036615640066012048371284412770701678173385007179050786473792934190275994805112209493571305396132087689939093387889435815901381814892394032109339805294767168991935486904727956288193701798152075457025146120874716255593362930752102568749971140352606223323163456551532006705380644957616919349531085848757085192729192923439982223313292688465321492806107809744793202499634140405241128150656077588832394846603569304007548224263253813235891988788373575220980668960441460984539862052605211839505424648638391277525787626752823872820823494876129756430235296002217522681305781679351191643683267328520940149343669141105423756631444798296107582455477398048821108142134977274824480306927036494912431034745416271477214021231093890713380992558069762201331023726081952489390556192162270724239808143504944259420687094529444790919588824333355837609766194872076324873090076972175653680605282198440730399629482670350933571716977141265136532909416721452572925156088708219421502165322217515015378295016458337991402095269016007921529205596920229106433815166517396440688490914053510366061968207275032176230570905044988675757338997687851173348167217207802291243653873416862634664435496530856096188197791631659828749046077387270051302924816808811711729943463065477382051371415474348497496194018102648433839747087809834284646419714532531470260274984789096192736769458998727327729024848754513235201151688770122704222665388502613532516530696012841001805931723743744508819655851252662308823788858214608261262974088568066707985288240984060791631177434424641573538624643769731227952852531961539479286779773930567671615655264547816107535061420113305700911466523837037204157678092929535326994532274854901308915638428014454343298311286199515833602042524921649761854864983055664331530982082898268284137413089420741922813791691968013077466880474419575946637504963931114721732003831567028560740781252089431621351740063242457416513637606199882082489722510277236545596198154494277569468803312147574114297367616624987932709474924348448984381398073973383670491216545033638800911910100350150304318505795463785821879226439738701274770238171269898106209946384319712946570435576017027889644445484068557072539213029335642227995331027581992915212430925901501894958204381466913081114153177653344634334584798968685877717971596901957519304112266373917295927935191547353329647885765424202754541080850769159620306087000293563434005878233874794056234779517256403399076819957459851696321447674155173148955227505390550948906150505731196733493468918024462495357847595542580781455332738505719035736458801369404901404971723308144083781425472410585780497059599764130668936785246517717014128897951142151494697086132429946664898982079844761925356367586183884035556216142209462961557660964567527692323983777360927040541385488545546081526911044603889695830144793019134460526006146292058085570430483764226509348445798085392282580023719122299004580000304434983616265238972241771692865052516837806407408492664253830810754624925954830256896815465037703458340078219528510210966402858378961261789312178341866984300444492452126411559102770681267167845181346959892325880085518103045777932397524603937786782357205463516807470507541451881045186439933344715250408520077627502859449460069847125515115908521168255609061772834415581087566034116035623191765744344178202460556972043632683343861483943669399422028054678807720480102006536240568186414235885542577699356595037994971711617951400936216980732165604780507309199673354947671178283647633666278123797493797705284734139153286283419340660196775087816952208965308434337107357138201319544142678892678006011883811762363556910023591593135376438754213324165791579972851862479199799169329103160013480136111735246758963938925223531195637420469527523610178534151514757095292508838960653546817863311579266120388929758642945723392211561173448799088884793737940411090533796866677833499269556454445130411828201564607969462538923047529610295075144170928463475116665948385150467089642695011554191061538658429935102876629003750002839214526134985569125084696836843857155392801943802716090404624276853860378598748605061919003026813361512845075037924875449035638118830591190436143611384373687647471616230486321290288462070658353340975812704336482194147878239281423002887589959361827319194786988047796991569571134160655637182672636639098926115788028822528307044935241371352894058935613691708216614636208534517070503883523269782135427418773184900926505802565576967973462404349283036242928617396580783956609396726762425828265644275598039481052009782174415258974181364509552261368743199692701600264092130740463590106163321082984016250970307156046326338577166192266488648068001754205635027597575340420938987472430056465966925061236306346056901393827409670985724401915363601618668749103171331735656975010910695957374821007957783840302615601583819255477753183231335873311300713159005954409605217542342081956846587347366079475060897758179117727042432771797909310212387192197852324322189410262298323098543238576753298740669731661753339000205990253608222126535343989833942633657451688220001155167974812635860868102586425728858560889301270295018917793977355443210967035412212012956889574552265632444535971022677344573394340528081825425202782022780221606638923625825275154929449307193936832372399547458040483186454983551196304195627434773889317474036395454717546694609755904932616625369270727007959487903578617514342969706772261410896670221670584398385157757913671433512965348619347636148726499324704274708992099423452735634677085080918881529987454529348361892774040072467627650549333569524475998236967759122142386913932131674303227748728619477449096468413363875068029140066022713562966328990100836773324206631383343627757371694259341136805411544739941246842044623036813968104276052913754827174075861741659810369523122143211825311108667022965016804103552517388396423889330730882197385832635697182769203287320258499954151139697554052705209775915880277618611679114010129882945995082330075283042659795289292997651708563476103936641072219907241717607849532443027223327659368444442786179796362282677111782700385163442934039988950189708273356229079479844659762609751376895344062831724628092305948959252293446729689864318324471348857924018581375911105562770776008755057015392805101253537356064663789583849261960403591485867041142944281421179844962738108863995193523221374940728092925004774951198943930015806636962099438630963544320651086062304813938870224204374870499957262718400892982282532027608914130286328031994597173626244964152515155396610881467539201082786191794730022437287768739005959790584060018290223476773746749139499690846424197062781687597428920193605265265259346957799255469612228778267629544349539378041177877345184894366318198252311293908464356335850217484686984729697946291265147935251413721735706548152392554268673003935131752015450653274682192575405355071937097216686662855485542420683708457681703634436259467409974862326032683477436215851931264554069970137110111472861309325935543193872365668722890854683082669529383751540815070468338346457917985839991657237500040406364351079112368667968968098084371653491740456982126743731784061148693681099892711953392311022829992228445203584453615045543706553176935704709594134354326904637860923889563276617030942117667905906536533033708146354042841498169403747481618782031211893547378646227339658478496747920628868408940297583430581945447959982888692455564085579709243896198887672463162593322742502288018703612692852092370559059053379146930369820897031274066728061375897401484935834825297143513055757485058383069978031627665333926272893955187847312962425216394214860567370347703380378665571711609492672427760001441532474544730581559378401530358702208567796198244324364428802984997196674396939777928548740549042697072787359941743934748067066293765345680240476932729230566443363894496257539268493154113111816336667594641331854987220176814295912063985302854996867988824836395689764406451079172230588628759492565940041994065095262153340900035656770389811323465159115412301104765820128081863953026281693564918880396596287838617243619190142875058152847308296009332618883142749240884090053706933222801563956977528366397225386904919496582996217648680989375481083465692561370543177336877075873575801040694309663196877990174318756667887243234625515321683496624777709082855757111022908392096580425556026889268016155838753401402970848845990844801992837485465741198301848335780435929762458536195293994290084182916855361009188528031461921335846985190692803811995693839137174503837362352793357213338991029909228656651154784643159291142666190574157444217914432770350788089118880380309122835479101057301035708985097451806106128497972410941316889262636931734986889827784728334512005798828704158697705363153529735519606867236437435838323367683623257298684856701094647708016910766399217881328536805811847769403981755500108367812606280702788301844948197957213408132981356674994700444270158435882947088727199179941089809568413078363471264247884356275474277594408183975751673253409148852417497315886529128325570461747487964974427168458546245552056119860943983544242497986828171959873836645793145006297962395968244497252550047353573848308922419810913841345916446006350437938339843786340031377419173355514785338469263147953513240825242904264108847767048472872114070818458397132068261077855946716095500079294678250026437499043025138742760916182590335945195981857018677765310941019474588552180193864749675807831565936621283443216454024800588820595103667566595435048758173042575575105266950789270389034422871180222952092831487071052431724895841521547289471013365849296964309372178261792973978263947653972593665902363481298802652132569007960236921569494103775579900820945929558292189928316925267229058529466825077740963866004196328004050292859188523163747123606870116611494532713205328200130556885479920396555567526956207148097160656331657679860727785645500306448085970512875357457297238762572976545753742443316597090077399695455954763166999630513584494582221864903395830356854208898595270425752481678172780125848672271967485122147450622503057090084028909159067658114174235814396557274039280538020914146341638124375443360865618320657112350661888192752202837565399706215108880789826517434949697145291006083705759054821167587031444312901665372251658733237117970100717583324693178061802042036375339026921653830082414156345872404688624509204112103687629310245369786890532525060969706746242707577661506430398029561316181928849945974322211259808455776239017446626724283973483657584749915516296087719631791103423003427492014105508578113690272103478051565553763813956197239682073141999583985615902377246922638142920555255902641446921344144419451420948111064853100354523969510068828226712259383017024575203968330462424421279814182738628867437991262576000581729673228552970288135211600219835190996463065127232810515962689523370298396237820105244290839585568639479438842271031290543351282787996928666115002176682166124625573282498879241408071274864205846101733874562768403578344549506417332062069716483532893254876120350502353296463377576810644862080596575763374479258829191605898216349250340773280075835856555498501456689583800990244076273428435812537598192506793673696016378643157889097183366935646971443848143423910526599067276086163774818648368250490093815082260862284503456108774864047860360176393510476700100953367920467450586969218675562299398436453256227770630375459527639322946247720245317143750597236045446984245412446024777071996150682969113065871843029010745150317775544336704318283868802929056032240045070181694638041121117420381152031666245996741752318964424968112874552870089468454880860942084032870718532235735674199465007931801517544941875096795044796721135281542392299182047888227907940574429596428136516775988573037076187446383004898439604029216785036418391041356012432910746005019795394098926809665857595294735785314780451574741220170003713700515178597321222827660887313744196129260880820211911639747070560478070179971628015809219377033825985110446915800621413662028900316378309291644090206840182385725291784612592099432833906757966139123890088409623290921610501347937786253850764191971090567221062732924219028599455547877070205310638735084049670058536683565336762556754599487770696174136556297677455973701472110708492308555819516167198128762112157298274388107694423108110605701545331744794166701617139545652392808305819600029580054507665938690764977985777055801647382459311565540214935504033732294001164960444959305633294079089256706520356770705987715574503078512910950369254156999248440413124690260656879861494860540487783828196703724563585591646015897841947003092586766750515591316536804657021927887495553854781056890091079069354299125433845761497412607131891576375742851960970408564233822415830175745208653072801832231035188031166961586855240571206456444552181188764003578254053907097111902800015224916460687264102250172029561332535064193637514475514425744997009382889205912097107385675587114831268642337671602742270973898081746265567380063960641581971306859623751319084311086217188299589533941931209373989171524756834243500003943710856381709340949818333993216072459916735275226984259679113456374770976821852941773207025389013244319959724203523023491532687473742291476336223085390257606650913146379340885472114632883227608412845966797731219744799020391602059189604668872058375584875233352316724010881647190299354296953425020384176281565847548708720400679839401167480369439625615648170224034860639359528593118254930506459812461800461539941167066963476762228869130699564654195154443993476763639291018546869844856486043199280169122318086875884619011653355759133705276459583525003907364535650405543607725718476250210988358432341710078575697839580748158602756887940597245135143137597985846485039623765474458422083130631743677253284048724700345458970087410651122069171484519172286680041460388235518134678736509735813905207276292048391863516450695810069850769591093251576792270575416570927326790907096330639205516521519703225215336634719906803608406545998901180024170105130936884229419578692464210480009805233759915925308594341176345468286720703900371557490998330867857915772232460995796595887988949744255097388299950809333728117112241966937786724396681520921958901646289250329855147558176003710384301996570200877185900069228076809582596819257981565037070555068376949911049922015063811563162155716781619381724204107247150212394545927171208663431342622228754203497394143348677260907553669358470937952299246166577442878423422081165203581585632999891147311132252333849779148521560113707231701904235368181914398944695853989359240590622369849737869719081345116966928070105022619309522351631049898391525111916796892010317018058907910276152597576995464395851892753214716645440216024776750824502718818180327474482072387377960334029965819122092022820346635774455332485538745006712228093361129146126670579130032143611799560284676398984980277555633705908770143656595724983243197430422627066299280188212984728094009912093220948914352813220259982081589713259116881483763979428436564769380749226440731234103340400829025514426300849188745540562544743476269215143377657459346679714280179396278858099983482968903097527564778160773026186251748184748218274363449927405203813358046987318190759143197877528210891009256298544219069938778551504155906694242279045558582032439202862992601609851012325628481413157849428963361834258839390686494149369722983568199537998763878035984170508758717144834890798688567166008548941666150392653008237105805864520360724076602647642013887978436938807353431114256836120138832854724408709301025372473407867564896539243669176189179713674947307690683944469968738758720487258738518623623190921706100971017579631821343367675341770695594938285373888224053293352199508383812903832973542715085607820510664197003926918069263945349263556833518917158416427607715325769600272067814511808001697145910791209607131218049770315359651197545380913765438205289589442091686469238403362289874688399066615106693376776341053814357228178328367767761754255963629173633342883775781035951248735519550652961466808612666130671959037810392023211750257166179334086550819518644807617287890685086711785511344842464957945513475900224778481190464645550628373444891049792126518692305426747560433234814049116505883974848802510619295907123093760239009395010637342037320439325998129476007078420361402254229162117868888669700633291640339213605081256206460511720668878349468895880273687573591611638928314557134992438173483761312009211392594672038856469235513621158826813941719520798711705225499796983441441886625169383777589122536889803185141999998577874807606637603411155100987415271568621785343503596346440237487713045361619188194603012857584202268903834496974577311506066620509819914387603667781132994731787317371326223040927431125819982524073171980857328200691827438491859752001858242342990067754008345855374556992126714428644068460502228169243864007531936685660709124878601056148349962676851782689870054246786871252109742776697531183366305968996062747454648114385361920372248639361343139274323007297271658060803367209703351160794731927405821472140330649424190024469092057163701936396404674608639700919058332819509597658879863297387461553449735773088697014479249657346058819031890229479427321217272523132816944700799007417549314378571254127433719693495848784783814296612617872043177312547968561090726664774316462646057309773994052601390075936577022118093839772223663250424751052687817338942916499374023036799250678638528090379869315147815525280863702462018090400634448057283982382860638581774480256307187213739010897673605392777015750019382726087763518437811148644558497141684586978007570412306138635104925641459130437006939252008566045085796238679804422381947878344867129014112629423198456762499915438342415653940967862393243314289964449081163188443770768657375426066550241606816262228158717910768346050839136767398798543742370781285876155166861202439331020891034466560991594325294243303485169548100341399139477237350871404091910304050890063709099305498428483956522928745685964186063018974618848517281467833071797641214083291141301006239637272443216133008370144785108447020611210929527743948468841393146806886235381818037450624894318151835361092383461226494078581577707590109616570959008805590219723299862754508594524394181009126918793539117458148639808368081457773735857732542768863766759193194714437205910121307293620029713090454267233705360359705919586317208980953066423030417244224562654851303775979150690624572658074779359392231651858751122774377730229329044228288839476360744562527146274894712138829598917796922729822626229480251986735568563217838084430892012062847862641780981674148413109302136107896088467572202734351145639191829794172138563266184994595279844481089347189111865621645884917451021922503787681343728540992499177100205473478366907854343724400788082592703356513302859645660675175636768106233728124278227455889048542420954893259415979032305543115958490423108588401228061631137809932334784117797087071396536297034924534732778845703370770125298611098548614244241984570850742990963913832016998792345460296655451045442932862864348397118372470794821997467220074691497894430690955225515574368285865121471632033935261183847119791130764814168222836370914809755317746947165018634264457455827598178789153541899415770892324059604360818440350725286570919791970174703245294997368378651860979768197542475616884124656166747579437040187781758795769709629551064419926798602013990632660796801437295484446034517676872263392032706404588722665772880144223148175292839602836433047940830051825756554417466004438730527385534400395405921228427841399610365661904001096805517517495754829494941982042381439845581693188706510287327649426810459452751911460971512052435043222586754253068182232350853490908879989148147656884669279533615755700766221596639808060068466267400374479251065012385850283148110252169004123027785649620374962353635501991563530522182971611948157066400569299087709157899703442900528638350236813720365555207134957657204084255252577072388827886128524075959641638093443491866647634197242026057087016409264703780791585858020720636565983236229000281089986081362742277604244699433950441336343498624404321132776439132072702051141548848712546893337523887926318145196149450062835821099262847668610519342637245110947768726351483472529979880913789697909321018216567969766375059107664513358111194985090688263654706509818866825876542569542061430795239214423990287748521171937142948299924610403770143783918353829659858862752108060646273111735316402024678714608628471671319644616368031062994756862715325879075656511030873694343600904395154977286506169628264830716176758318441606571597847809662967048639869754804674353395268692558991331374794626840624221239197967591113328232585608636332745179245196003201060655221794655935293197283717556734178393368839708478740151382814054524385638629685102301882335673088393969743093009139872132718487429618949586553938848773605502548781594070990460560005638254226995012587329678633224853963621459565708504295690434816368144820144216861839145967554454144813519204396912520016966357046706101530445282477967095153938094000506480066887647234783759485953890772958045934527647275643410922370850941047627900750988132098019157500408295163691720892335392954368927040199386858443078968403381172880372439177605062500523524464556772730523659409759092614691331175489565110155448929321931916093563364053757084996798881961205658212429217139616709097636176869106763196828501263361046258876736933729512069427230850841737839846195214194828020361439812231949529308703328244707549898907858799494666909404932473838985025157865438859926174873736762741290654474630366956374215133093073694311419519220347488319203508614321940770786139172362685669001647894816123692089180909910575802285489114949354080405922194704111223771193885030721720784913574943605095587288550368750438780179247644816733221100758428180386171934712318075898766888748279874610868775926934144119031319474833721309715638382355633719958367046404906695356154385521262271195360321195497041082202372564917223465067105612110675025014926763359642202967859288779423656494120784454616989337134916331757622003821830783544852327369598202629394799309187199184800186345050350700555255163532576948769858017233338433570958332113555398922688447335712031790818024797469439487846668803781709871731938228469460765168412887750751800596159522164834286950889660793133038149194304163205852587422793546649708573938400063083486651925016316018354542914005209123147962219034454041863132531535732676177433970423329806777152105348139303103074656496662144449389087023135318550687686024035333204839231247466296167368795635401966542061429845259959138193935799106061951323181497661391141917337946331887859960176127653290786713869661243695009056310443351245146354470252258598659554643565372038750003233788534354016380476645371216875006342369441911996756311159914487051679729571896601258840384092660300223945103646108016870088530456838866806826242239870846747000015584660796085273691438871595783085528061829622004684971543669018097035515047052575166207685768016518986702048129361996732496438892908146478733977989402219624055281840376507482290485497285133429336917750067537132090168309934686513017218627576562707099362288251836395052330758883083956429640694943883505260103302602566666564087470615963322297989525444763312356197891338324660824417902680821648082962160865527405020569067315048953727589761742803719005065842786928009108740283337356888172622723081602768827195872523656563559699578604046999963017684704199150862692558984385760069291365611113843299291844948980412713077728511333625643519236867241180831356829175326277047089881678633992957517156021955660567098100154039501586990829373011496986886067501715280929074175100871209325378654372799056061016750294237033300233443869979182414168984270516637545753650143456216185457456506653176438635181748749722969361051666455380798029558117094913801006922847871429110520710057213352266592017774753191331888066883067852474841598678045839543161238663815075308002119006765757257527012278020503669104705885858054869203950749883207644451794941173276764215292326954288821380464825448454936428791018804758422988881612134868194439775590778370802088613201776994412380910714741550776892362480868945898591982877432479597129732926453110983423114192825576707550525588437436366919495389028406931052975272300583418613201399153415772189552564715202175818746344566381360586604495702272368273273707837604966843833946521923020909064631347716890803554649802332348248760147157035478847839411148313339313380686408092645488585266034035944443075273352573851109856912007146071447756995962167714102955924354417024582354500938285333979638653377830306285238742703790750865653961187453636775995671498372225501137346265284345073676637090148765144838764007639305821141228649137982417102097901499940940850371121882682213253110718872289762460773658998217537296362025333728515064219619354495391586179054679519894429928869848847118110536098970081662091882265004969640216252145544988549663806637707844165665800585500002358964578729668632842103355199510183440167174421903870055593845251877355101024835251940625256128563617333170343583999497742455224859527812975538889216934801984787389382386219171635600057075942098524592979535115476568899971664778784095715806028599293053481038378095998342846186240217386659583950515933043481223931688446453297797795728011567720600442037715291567202522559889270562173328493863265199893977201158940010581709882768697993529535234910465478227887323014945731453812409230311741420431779746236455529823666594587860274930430986659218525696653404898245255509303552744891383212307654731288539878643187830882546042822907193159325177726475911983272833081221105419760357897100913255127849369689830586836948006448446506897359940451606124569648817200172340804308087043482349557805102089590494324489563710707583367192031890329838191378386239228242646810709679041638167746541194251043512087990131168427000278374198401298666794560356165841668107115483297763422072558719031726525991798437228180455339737256645545242089445550290825066618732922407169074309128627106682624477056697696555577419526497872807943325042372249800376972329040486330136542399550784385673546073612968030842429323429117707168252882634055264425960563546693420473062612908094174398574522478905032005312116454755815638739392091327835120509765912186136779256922716719558938326611748807080537259031949736305448723901126374656846612528011592834821751312383336906197144432636824748922037149082475532461701158079888520563339868879209563418565934513463441562540809054309476705009394829782615345529749875167495654845522280324023101181840968657394536612119857757041665480430664911176707004508077995100952330380406615907630093974633041600421436786184940752167294560524617183659689412792420768860196936405257458421363947865962194174886818797828740182152778277496177512019038144841709034008270418726956915520980486738429392665661696463144875113801212377454533966581496485824803625375430066137736392066198633812583629820548079732561834956333579534396384148467307355858721551601268928435579568536239847342662562217181885948133502550288964934899990802085650488142123046717971631877658936876060900133821390428158204508481260736986963068321597233356811996269020099939033201081670271068428873084863594069523681733178159275034091461060731049960482709961012290732327084549995021884385683772084409158469426374931457596076119206728960174833391056313539326587810315605653017440480090172244257849201626209779351693376030708971621913879482360519113107885794416039995044352592092476395456161501616802576223799299318095380645046072547613299879810157911223105136061000085507871509554254205737293895432498180495619730058589769008627735154651807105986182607319021905826559026808210309277972205351194912437949414826952993359970294885645583302677606765844435879101687264868780148055489032901599274147301228276250007296302606683929247126972080830304275537126103885271969398763536790857032820240010246923603833580030786745394335545541576600890230600907483146049510326965642891060491527817920773321330114154897077282480262215800262854689916331335203756631744124139266174587009871194761086102634055630816947852412285205074478411697612031264822608393346514249822076699605969950667977936010661331025562979323475284436383845786541090118684246918923402945452754135396592294261274111474558512152107481423763916095356026744624539878661180786588568022456697054716425003144903722787042531569482338440485017278559317595286345467791517004477081560913062915722828346888844999269614384453126775325650988814093151887945027836279388021140709343967222250236949705204278470769924398475775655921276655607169251311639442079422181809903624230368906838403022914495282190697486564479403293028413236084108303364849729620799499495159107726708607723512322360943975733041005980132210808275142116010920176003345931514627503648845756759682018528625801029506533525147876342974202554376976529360617305702163147902744593154660764930008291555756338168048457553696271080767887351073799795654938681003017134437364105464158102562452635785614694845904026887141834712427672223422207147855230268421573627408867538565193002534316231936093818269865100968516487152452163365894602659545138780929073889639723549940130518590727093237154947041654266034378310968176586022402147682898281326925165076711307165427999320289199519132366132252358889210105684508326110463643648630014972491548703598852171949336750285291302250236968216601139153692484908184017412555374033465208368050413991921103408657013180103622530441679463594632090753962498403255254528979801146682482101677874731577797570235285768986925494240541283245119468760007911089704355171340064839579318362771521019112276561496166195575640282838384490382042048338367084998551927822997673281799643516208753333682696299344669601474901404472064462667684941988195205669694092826352824746641428031848075871903078986996066511892048116021073624569681099522376330912937349765248607544493317717355591803063141627094906108951615334877853264915482791588822980726970898041080030896742109449119392464002371835206235715983160147712605530742248116811491682297161356310961875862831615941085701464029641768726717213565308676915167973485323896251830533086555926883315591051190732673212293863375141518162661040274753965281568628420401071824412765103098127667592307925961838512629079744229786476743646708842323072335022633430002876968975553544667739881193811342245039386465192029571692142067458147210410536474764168466414798502237585554102876474196098793737907357521786066376102791720509665134993186429637468159022920833524248237650677265999936862968004357083175032706231889590037365482826465484666259410298144541208485208706503268398605039260646299876921737903362706403134906084411182034294511844048652102987015425250362506571566487552298989432724547459336603891278755093463134509705160960021093466853171884139105913895884532363869492725936883573993843711989244369997492259876518744199471340553264264457377057012066560447780449720251051054198542937311660734839617057995788368648327750720869280760529159298710883844904971321492626279935983969260766023306315555617638575114057589809018003023829084348493972229082374727255372991867656412171187350589402239783777551520714614853624909922783232047766471719504639465018291627252793606161479108344509898698838518063269798096860677872734050499401603398165223966555717606728476996893892325747641341901284980955360550143598793331203275457110096173692387697155762018467188096625103217266874742039084059695718489872168571607904106126387500879606968519450390034726735461150681410700815395374187876601368245415840415785110653393381054304461295799474088767860260352686930269358156724145963701069298419692631283853839125836065929143773051200216896789411235505636528381364346964570295088206511218811224627722665427870976947744024540754362125039849641665511381767509890706786119271237653769636814130058792572310897164882921787065802292451714661060878476460433338544906502528618069783092403430717782802146018748936071853093748175436856127307584682874722711719726528839334308957413379982381985015909181498254437458928031551126876328062819295481541309043621622354608156843846244398889790534722292262129636288640945923845531019379030067024596979229092115388871607096071277917933817957958539788443198564431020220466322879419391759112889375879651577575595152272779895006277389778084802986418070232664739009558044391808735068010659868857397430313561310824238883356474778613662550509793550220720623738389616819107280032234986449998189462976776830669477056390455225882812632033883773208189416091518356758644898763516091547729468762671195670493098327227559811917729451352881161017816444363372467490985759157926696692361211759562173543904737314212002660977442950605139507611461952316832977935973664110427179025296406133380554396322066984403984318668697989766051525208966076183777921491439944958059421496083154833498936987469687533265369626677502700424064533157480790010134176939976353136990995834432475860909461704872448753671378758824911082592413053144077246541412162621712443737721859624245516087898031036931523009852367621114565191964358392986111117022815083348654774746175709396075077757326549433334110525206018960472261749888853044307138753338239619889519684427547282890175578145860045784395214883857064348102188103116417303472728655519253973420756784016220109252392109824552292907632032319437633848381457371180618703931312788727326883121094086390760516103272499332965347115309264981243728640846160807287710044361815108804879756429932592528409834295239212969445610240241679825444427583646342053629881911091189557252105378633894182893026118522390604061739128789756816570598867441522222355086677635505649282408027514788448993260651417022210419310115930149359451826380059247172614187507318827022868634362420737610713365642068051210854523692508598197493344671656159841782917067402077515872017253876562535781874120084223750862842087009897546018408070463851011222332046792107157807075844216879001286358124629358302235755588270257779602425804914363914891890818460062656849101423692997823859367318707295373869113316220631191242586989118974871618350581238570310463010883912126498057676685676051327945961926095891061360629517594581522068925942518852872063930308451777417401583537219451524129303726920210072165233844922712543970957907753178194863799708152361205310594337638483151664922812934295470092197382555271172385726944164127638642444535412792551219822396901869380846255481566618111205035419858837364421146210933973659842740944866817578850190655034513223495538231850468989800820031825070680910072261898413719393575986957657439871355058854665129437956207532522778323343204853619674647654286949019462425750442211557632599083879926931418887402070986739877959892305258143209995882617105921383536248220913716413166054362250530099016282485807526522120616222654523224503183173550644369061782292775628220618190113824223215552011142041463661465694180850985515350071518903545877543253759175527437617367250647803221923906539447841595083121610294252494005937187809232930311725621726630416377445783702721945728149887286235421604163805132830499096326658138720563141455614171690391406358408862263282202410382303738052151574728100086437897940951413644260148831313041254688933015497591842378177141963933126020268346058564862145419265982671116350672611064702289855125009344359824251335278384479521797513050127361036961732495547647913742733104128588234220136895888741985818913812447498565885116176440993313785219340944063558519861619462404788734692813846295403877445224139592505257575574330914413853791881248793268091449096689525081669214204809787702121269669031424364244339665327329382791230996630958829639441396994185547190845438492787031837542635067819448177141175794714589837357695654658168243788776501011991410094739047608009924706783214807589195943277434789405211139123024754723439589870928918994465461145662051242591957992268939340021207724754269455238012361305807180774598637895141161036868548335534105907928844099657236133028926573368038918014948086518799394731159795326974292861777333870650533385976589712120552759781832242408691261751906670349988074337100468884829024517298550081827151812734976601686243076405185341474059193068555317762265477813581444381668112045732070078235753781409169873394464349869443447016700467573755022826550949298007475327807983868860852867329399239545617136351500433553568347709707084943084369182730424025055715471063082200399468086880567177456546355036816732689188980333288674077169290288239972569783723567302462866684468591851127382323928858033916581083339785650356639474954645518691819185141217243084258996259512428087420783671354953508764061277274052606222218475854981755298634947458127866038980644268425043943648656823244174647160921653317735347199869393255706174491936918073599343219422374269111425656193809289363146149697271781326893620160751545174039147936311861248132229188421197436850993129437143406337392634235519157865472543222925730745190325335892104833586873569438180084262308396663676986575641267036343580176556020575334430031736887416023036202737662179426196733822691371894147498630561210125451620797387611065681546712313796990916963453098523127924985695700093293086681024037937143286940339077110336457675362733963364706986723148364456515954061823344265750347313444445501223146556487539470774974367635468893847778672760777107582288949022331964783734058732248561282842955468338402249655124750006207582413983371379438716110262327837308445730967047204140281272880532583890861679405443950242691809103801173337891642852144824911969713797051917546274682045670077850537441237215378220324882569454468647729507067440662620762089210321472468719386362634322949396041585962983121197925517410507132319372675310882354843441629112721812558892921153552297015573246342192122250153658988362176790218069323098873301501829978355899982916649466220262884679430597167550899351786240635113467045992838668062533280098113145286410816851068318889331484932909215766119558801246556807242156708813673027905141296859339180995090651347766863982853892128282642529559746661960886645097299858143439741654785226769254253945388678473891133835651001105717200185164617288481192794731197278190193010475284840306569101316555904098534473729968356851191590508106487571578499923237798922816428028243010443539105621368488127774233808491405267616934037982716000274537783002216550102427666123764728237325708359495043357199525702663757669827008626834699014682755123528367139794319709657764932740934933309213844921846426735655707307969241890252402993191339018798443520406367505147133900705595758351233175346383787153417136443663541505026400055860645352443346474309239897498781929869336259595808914949869272263505275080291277654674965727590994986409142223484537533264283619094779706225592789128719106265338790819098680705818525984934963828241921594558522672215451590583584936660217761954814897062647242994810876673369245770517727865291227131075885154559932857230181145357374171198153061526948491825693724120023428656593820366261192811807235058286009550418660698663946923617355924413854108374475669890770610196026058636219945952553969674643575005831068810099255766545575747264015975484054492567456109861121236546745838476015870948517438137432025737626470201699705592251322663576796233230528906524851356000185297524006900251502267505177754817956603862779098453490131756188035056118181769959555848326062518469210572747889639074503026865638310456901220552386005688534308349444489052427562252140924564175342871780313576445745830392117098215876664258538371418170137781611351935331861671528213912503040726894166971422210551140141516856298971026412977267650833794418365549763609464578816711105922901813109662000177655547698474456435515365385500046148983953363131521544958223493650869626755010957716176638039244186174737079577706858338357310411105903882721000767648982572230428692601116190763029032507235874347709081998821954221835005819922873659689238821342119678428565919893944530366752364266163397399935197096686270924738352456427191273427622624361760382137372953787268924347651546940937665056541635984257466662710499343576084150493307415425108089446474023047501557513536079837420150263324709359019204208491362766470676246137419108256557659440827281439997163466281275722643429755448723010224951157122156470091103504042139423967281767542823776263384829180260846956499242886364259682547688661078369782274648914144195104688198949149132007112913388047194178662794010275912628251404686587285171391042089579406268867537161656106467704516368571615736700502102861353688113877584729863752374875140063889809161532547669262818638957974442030710731414175404135682516553306798274663803255757940687297896423805842018948334402605786043708655048978066960594783829419134147759722538822055991746015068585965630748559505076139948980252494326917037435765193674945903002488293456751389128354305232594642771558572351673843836396096388488517869772647819837559971577878900729079910175018319926504199871261704616534544620664615610177604929159324538297158781002465659248011084062275373558843823333863855961854363374193732153160467361734179206198465391844466884385488820073549213590808055487026630003980847652052288859349552730605467899112849754618227261311979513164262121884028823125322821672605227102999974802973191221703284583504627241298577243523555289248335287151495829283634565164927596753763709851559741619737532534631134347643988962541019400206872023394753615206096589292529750880168370648563376870752503755884167047999234612401630951215529592284220380469764074804217783381375750884850876492582659281282052251630345803386598374100746013656003642885246896897346530030820005397941086249563647148310485078874298083017437071250859221826852692522654842027678077391603846772678855765403712075317098118910692784833246249341838611080719890542072315211062156484431998625485264163696605130581683941314313864410334185656423460746854625690359770259134120781870546819214652281970595543486304535909066998677868325011771381331598925133587609943986770672141076236539097174636008482524900316296780941731933421668068787967565122340491917765390986975552597729368028588281043039527695617926830173164219476352634711375512890180057281872525944041878449280745847455105835457503598722665035160463433328707097550566376727938821328121686773529308310302033902843612224594255390248634267834893766981956909730093644984613078958332152227972881867894728335299660284649698572813158499555024348067038193507453782341384491415984260929668949959159806032722311951602897666153712832125455881631668557240329013391527732475604357222201567114791917474693814547019895487445860564328532288252176195613176914830173611746086712636821581928023615732845479335184493191556756076364412889979691898469334634829256710626291856704404908675139417622088162765686476230661532434290162710855628110070416518360376056606220826945537784427749999663589866450651835429102149693674682214447305834451986731077466991388770623092562421629745769233209713098343972921304615856833251462871241284903487574298431100846715251735424003031729894311704627375744522530550216532258326610836750468890779981804844044194089304615589901124552619645588420988858557044676343488625259582113278657405018329975125868265039013775649750396616213752774618800626908938934509348943910971638496806381839108376015627861177596708081024154941099263956311773710805332204952994036316796990909706372230905898614355140845729615280732658365281430262699030729760313849834007879650512274579164001280605531556527450990388563023618152156581062350581710717700122915840847857455462083348737794552500650501129727528504819308928656098983684947648979845369388186342831863413084527058501732463820136740760197773661724170588979511982443704751677672437288928731641798667088355310972270823827186137405965038745372398466240422287255831756617116212782029231987848718087789241778771610405627106831630003942956317700627646421870821982646292079350248905519899546274977576773799217400370895474449280462323303102388990982707239002841507079715271492809314893209332772020928129460522436424423290531418265120987179993382494968508998078700836232245440620752395504476186897242333437861551966409446659840674776904409283085234768143448192640589322374350139710465171093492978146457423235849776816406749721097049351931564142067508669617920759096252537560647191535648213572282300652540286057742562813708644510738781195888217565394429080003422585179955905654680090625223728979078610486346516126467234642205111536077125433859660247614809903642525253693329751766940153499718482179252961834164649456023119128419705563592228807937787454989820075222594709521894550567680500018121049998260401517859899505376386011534793434242701753994215253460685315379730203780527003306877725158848082140252294615480231875282332250298000479493542515008557470971153950426273633324293703853145856484888599806846660041914535565310246645920793032728752853551173421317319861576825861287330077329778232656306256659550119285020804362695385266970109104022536959046573792497451771985160432811263436225941241975018339699471598104884494191965566816034673088174020726333100280731608861660307091293174782196975627892460583935009484775833876582300613482830002152684672549862352498514510569621807407044345086884191460661252175540721113269192331986527935279495911848274648232586112130094392760040886649675970507474455801678579959012350583325503536476775926207397681414515248252266144479639162304640456209468481901393227687138170358194690411107102253840114596355039298220933454160796549719254113847218766496048280731572855175146927206105389819337325009370937347787354670393351525682514854098038469200659294919117779395496830000549817652729618116715551445015487125484576293678618896843481240687950169575174104732183772262197074437832260679975895743659183868132707654870758553538765092121281341219638437183246448814916162723371011953622704117538183423062595119024601193768390770609309540355913045108293342900654844508047705526825560601378151351324780076890105349851032072026059567311163637645423914574432704606670698557004135005029479210980150850454687433403308290409324318047409025876373455842680404436238305890256111431154591823033453629802211191992185346178495093895504188160143991117728268932414495410247658684070097230650583403596640766391372913662299130394017445035366455675181816908559106668552375643585401523684190570993819735046927473810900921936564070328982986136336683410651975288762709594808596655455617332214447636357190759443467027443495000422262769226014024162118156040513108962056574411314830182525838544680170851562057085558725816309052225165206201011259772129477580296612877749661193193517318738862179173008258000235617221839794738285351914271277626368869746229047943554414683625387800834008634817313034105748908136136170978536691143106692024640371789387365654312494415797878194812522152908927747190167301231131197495094356614234243188455475293769531430779153674587511057253504174148258265497872518827131104628577592488680827546659509058298775448090054327216873118623540414793858839577503473499384869223996907105012419005122748541286737405978644312306336043811539322283539261006441876275175095871038731278591590402247802358373917707542155614896669520634309156598997203502196858868567216162963546306067318892769948832853255357206407106712646993668174366549265756782826148492022180884553906556490638177811151831052320671901223130148046842585889976521206210992727565502921033365657134993816799659067403358337326503727320274327204001005613019109009131609826559365173763481720177052177456160210875257392508856007311649352826344060642696399502186833561215040873840221173876828652849576148555384016807764941356522611764228628400068754233204357657472754637830009711611680886222556935259670271641107571464784118337199989301484530841307537701913705375427387194307753491330966050803208894324043064434312988534837659835669655542455429894331582973873230492869338876237715169172235425013988623595559863258814855257226752415926593523065949033859838079001707453147097452260974082035839742123126165120520420197633257516988285087794825044649163833409544432684322458956210623502129365639980775632825077760848616526328925825695174053660741182572409429948023610619468641421955023879193706320685163905472728334897926370403071150364476105451273394335087555377016487869323843301844917070126877840449431264680626647851310373239747924021694211929329954242825029706769732689549233829658257183415733323577024587377957177758384244653481067226119461596003377350707441637112714189258539800801059127604808490768419991800502453617110929080840768084134023205504577025364724697386805238087469012467560476083586982082820980916057707306296010317517089496756572747509743047228470554950120977280662572126181804677798963675734523734573099285414970511705027271419529657574882904084474179942728258506857360537810087887260535851490657981663628687292204887683851001430953457796920947299759907617938648773374179437198134434731164528593119936619904897768858538812680692418656245120916436681193610567939038109375541196837899160100287256145234413993468860026915127665986466057658287897207243373253349773817544947450321929633829170631306314223887764237154201923469629737609179702264090677766228260757643152456953312060325456748606496805046112891502330523146562871122394384417568840993403703870461224571421683928678730188421477401655602846318865036746996781474167804676932796744218778736336209874555007758292220500984281057730190262778297830910213983891428493167692819869434075460978110672764687555577446622434058940102590330052658734245448668387800396983028885363333679650786750953365324589009962500356237712787202353998548902224289918223577648422664805844630217275985932138413656329147344883242660833447887019414511695894708278131145721271970592639519566587878248711801597798198004344397517815057350596564237886045642081704755767370938814239214055018888940663397703910248201324473113395869332057015987195157947136386052718757535539226239906972016314971406778169374529824656012391830860684100279282163141174953497083457915431676210450173857637127599145510301635454235742977868596471343623353625371561260080828410594778181824621365291958462321504139987213885608093872496096605168956206996320577501715031254448866033169634759598663905315303055659975181948780201979969972501433631511403128715807585646009004331009178682111526464855965275933456986283887479403308014656462782409429906289656807482578535075697616200111341207299051483018838501292590406807465680765345920843325199142702008758463987279596370164931524694798133282110902608132630600505214786713855538222894281428175953124523869485797751861822014103150091386654092192232240438642278839773672807017703696371478682479149185606608101649166021082860026968320548447850506354589818382813216034611710903576834247210877562514631607566523964526647935106719665613539179854763978482260240551447802913761454183033622698812881888117854201414930001109900425486620223756485811567684828735866740434949906882301332120396391328418300873843320847734501182644463518883457076219533779198552905199381143614128115247419101083241831735266611442661492299821140083643594431990732397166545874564789479974047385439106235808900032876056628752143652147687267926771878100189483344129527328901465048184677201764240731992448715999092899553707827153272269716761450947371769925898102639822128413905755377815223997277803909006706576164424311710515115700011107743808988187908865096807074682339463248349261374964944653918122078853273366971563877242531337766873450282851781290107873032691271964505351959856683567499295478788695491198775319691370226062712123003313952606344715209945498257223600525042020854859126107290963524806474223111707901564275839631969890988366721782150819139856300777366237195373527760077324600975174858514705392773078402532616697188614857260127375251991931127039845313800297574734911895569620607526113813012620686958969942250963215410263671462196536474940599106007142066463244696327756914122480522510845827447534070555868660210426126839491384553705726828802093936672739232459507314864987687762302557978995265780273890562622840349089965622825023029716622184148038392190059643022063592070403201539446107323092029777123614209918726428298627437507859956633985772163128090712512448044517964964253038404661643785337952834022078985689086021920111021179766942748043579696354309745944096546860950934775837972859777568337156050681025423838492967147611384689385184147005467592019554894329911623620845273174596789313990917411900773144300656899736813380573846014563905981151112442616089958125666854227774869955677543578646083826758798957686088858976109505971530443367450863733783852220768518132686811453209906523794444128818966440685653619924973827527815953370152266500819861542483818561420304471673098084213642564499012376437134390818753589262187259626206025916831331782224250037744219948242889535889772614934029064177139920974376405083474705253448938077226861244978219330055151952910876937928398339819968963117729002586078703810271705230344076447341387604577312347907311483513849261560581618579199805886822848149249188112778209287327773471984728252427723410780551840208333062736719433952844595102647350880289290211686994825685372802311895447642916238414175903529571214464139761999958615170722554258614294382752489409212739285348573486266725247102995146359968958406385893544190719055761591256144133065066390543005174649094638978512327280748898446590036668053339648413527551408810492819367418100217926155731941993273143100011661515036674946626618989947444680370582363309472383151732199107493760301222084216888100788413949573490560016150102715749770855858096943805132987141282888902289713083999830986637148787416755156481967496740886332571516871695540274684865442729541694969862524632585475511450239547709947140524213562855521158659489708031699672540102330681728593201593990399420654506475146238171649154562798409831477197653014039348547107869789396026300062740246529158805111314120224521684926762438252568930272667596941382380596231347038742978171787404151229280760511482478812538725439181147830288318866164527220334090736023313784325790101615204160653656487999693822612978327112358545662077608354173702630896074244789504351357075990169841582672420459755377778267589597942135385058631437409304344171971355684762634585275767345545266282765350957203614095389360860182125856014372108611053993695628816351109054240776516022672566057002425505958399264467247561812737449501631659561974507572963615021487184542753175071432828662522812962639677607286178480617634346181531440241120429785963304890234133628461098485807094271116814618952700117649129434187882712382829640448332434916316677151424446657534162737009440508809971818390150631035976516716679891002303673178201211722166288190919630791627454728794408144272418336969955829869405023165850546192105389434171721623880960784762737017340525273780288651612056787835246673086464555369985831942437927543498240770435824346880763198395683620265895616882927735657754913538295111085169164136824148341490563942520973950888575938046575550763770012621220595830378781191752855984799180702015670265259848489491512530394568115423028212750429032032991288959915833998411080977286263916814153816694006341992558116309447507660632036108511193110255816541173712732512254879448043443282633317586888646663021657678958555947853459702231125439928972348397598644385672979674243707218224493415835198048903204767080115107210688911205928817478038687651792053502221342140741580889332573638043782846269397766895951502526782421166009557400260171740338865654689381405689225254990837000777212456924506888023670631367630692112384849923726781031037208344559705008389093603799340274969281705788008188666190614647714998988333462588543740827565659392793977510548816998283902425215821670930936823238313834758285689018584284590711966449810762009010581043881602612475903122613740449287345851809519773931977557808306951621296730157016907941576985360537836799695540754183578127056165228737770829467567819044318074660701147670117947536886325553206543847181909285567884201928014439050786047955960320429357305377325916457464208297552296463905672730284881435412993315027877796028173091748259673895081642771911212474919451057893876705690742720757405357126027842601892885237516504381745667761676731333305055259787348680873410001558833280297968800377196549959542500482761905957797308316253908330565586493184806082854329311727777481510210833275735263126233619976066972677329351065529426880155854526569995322709948503390275889159618908183303909589410656863125895101820472888942909983438552124935986734714124917657573033136376480164912979160992148823963877870500392549176811295615058442344669588974642386812608792240796549157857902119758674048024988998749816884530779986644523578159645608616921581858521251803702559590943841448604980784562431124807886255679772716843547284761646042330248364489324335927652250395511506894966156720009683739880252871731536795818626273349493723957033839240719883641942450539115892783604923482882480950773206676906891711396936515743406554318763089540392157854926810436739761125091573016996126633818701796292501085743826850870798195568381484918244625530314127972666071623917885769837056007276246445964941358866469512379805315713436596217775818223757160374263264317787632918070539639419505065210776350516695611654956436361679922541889055988248877475811833350695326102639106613734431856925221887504458129764003109226521748210293393533715462719469697317165630809833944261360116131793025502903358430238958284161332820087470942239003709497344939628054094065899889375779571096704160395159431263608007552099564763598818470067707833695044290308771508922530175007273991548083605479627556800467347363917413539923452809294150138301425809708932636589126494794300017618329532507928767278233026971818296418117550530886384345802922880252899183577218676263236346541482921941107098781774318794697541936933473964983177482312245107402221666996746245262693334149161868893884479011292047392406258844801865844222331286609924651982738115615243593354516486956108698429713973179278077262314850231222821374963391985407051144235899607609462098150755156964481792655840013554240412354934895277356059270796973203068734931478662016316733549177640491798634971264911713256066206935168893767744117530264819598952844598231902605402147342756993994163054160037824908370609922550417110360014587235137796954038344301046276637821423541721033887306458335614145931981730012897296569663012713035408591188455885519163552815149778182418170696999175336374559977850786657443850602036545483400947541455876306865960396758970289663538316639631360729392297618712342114832699845985349698775135062899173947075976470334826440428690706795836207479918352664740672786588613303493497902800540713489473397680651684975571236386949704652667169838476021873980924249017532366789528806600226100383447146311698837796008474508257814306506369999667270989503463686650741793742540018293534007040813644866101562795100917023157889941095267415388919270974669688712133067695261907438947166407840780105476925728918539630726350040941881423416843555823347371285097167398813098005372739994166507535052893208885616193232594859868863797100977671428842456882335720618581046789798293552121969298848722709679504784458057477510905793384828616810190291760502284928228692005217871208367511705435259103322181523258154855035740266633213315272200890339691288539053807915658214463563990466974151158836705152964853453290340047798360515990406621895092398584721917267861964585402225052883922209942299729676826618376598296120653236444073158551140722959964440408625885034874717119974950913618962212619003261318110528903713813875460134167652938546705556958630636478529201336378863985661879716379044292489584734169491523886178930877364982899486271529302066987925621206868595510168496954097723214782676194178497808118917298896450091091149367203226539337424687045657309863777039202313708188602738428391072889036429549014251392217135632486758777019010680788190940926257130904224370466203578141816668988368890254218735228582173421037615066650525165568793815667633427883918495844394908449182129566797136150369624698716134575502220475906170652285887509174174382474358906276798736556324911696086137460908802091542842961442773293395517878254402049587877335475875572639366608992681455913553075289471480917134989046261997528879429224173088330233870390137757018528908330445361291772276754635334886315774330465389763442411135282540564209129404174916041160585492688617472267383747411244099294256720759911845445751665627955046247743664516718550806587987108852046825134245495116921587199945641130241330448986371453714735719970433423417352947811894294812597217897522390232956380672873739478994314390933043413019608006999469645298193945584499132900308813955576702436063202548987649076352180856592224738240943756372550949618685175842209580654241698534491139181460136747034315573558129419718386010082745906180409455709498954863107921237373239836178921432614689683314573341244520633092132416745936186506586681754952726429974400951217377456585866481541695497478233325027787511720209824198240119409071712815238726834408783827286691209717413431398482437683725260061465642417954335925057291835286841453823748486042283655307904068709525931575128884354510480252419418271434995366647572017026618441670327324617418979598073597683307831396413884253675658043960603599482010131058942933311067406397916908584705275720904295299795917657284100287930950523424210243363499236853266980824524333453658008596603558085526824749098156418159798666292943870937946035015527449371761306651035332820415271645847441704342940545117482101908367425038021301294834359685451108469619578334726563140925328619911632227209725972662176317722042465398318566484272598065703802987593035812786868948101651807150870880540511612705113939391572231379657380079722067524304316339942430220567706881870782422391915872159996773752238877919902737104551794190486000589996511741640490281737093530165217304395564005003950463365725098169654087279343027112995048938700438442540836626725669583818194483918672061386014176261921367038704922936744585534992684899734494834844829572832620542937601149260217936536639222152864668592092419125013381205611777593223509797249291685954517995277420736324558574336731536065014018850584175719223705452173482140417670811481850422591243737680703683798472853768668890467219534986938418936470253924608975305678971113715760285572784434244626033388124402076722497834587767732499438981886587321797482869454024339358529994256714073124857293879617712352749895737196124648637030893413297867763905289754433705282468859892646877939063292440961218348933402726169546407884969514956215343845332424163900454128649005183412796618610415541447100032234046007201836561259863473310651411558760642117780830457985445597700567920879680280999536581133412548698294803219885402192917562711863213813411528093249406970221276704612061028244018742013691986848412502328994791748771410558721019660196275553901986756603069351255578812674862942148184949289392684892717329675756856032302886747565677755264913111498494022222783320783977689633927051921160171647574358823221567532572226098358655686411820883454232635327445780365987263608596411122326347420488230849758494077139723239778134249328105638232382351153522964067427017356432058405343888315135357820423869226651598594413845192537705888494195841465120711731135367253815372565734117324051587021991786357281225846189213143567426474324604205311657450062663574651751016035370419762009089349763146900945703097403243626690334291770763479255546462468073782669581902591450545306764359651210014773954773408742061162540573856088807533041137786995005684179899060970776829844449488693675763477753097720085116230614309452855991997701164270351199950509694558640413161277046283876676447326957952488947242357878551929242084334970329709208132612315838261011343771006693683322119151296729304681621999371842311196482320793123941548490024566518241500254469115062943292772936092719714066667134199471800003888628456111664954376490155971350834318232535374609504362011437451685500938593730383412204551190336717615738108723684768618887545502655108643948497518487952314785627561518766029757062802932072152670389712951323606471993050599665902710618599779857161981228009411256559238918929021990570654265409573353297580698817772520383575608433643773414831367841911491761939929712497962242708303810122611557503535750802793551240054703523403980905956051937163841397549111183597278063877592333313513317333675074284652286582817999886869477433918742456262040881700025419769299025823380427359781607928825382847646844211096273592992333243437034595665473092133321181046629424319390395135958963081356696980004684598357446745426304900530106893291870231863315719703685492990188749013697409060081379174359007846808705896972998732632071710947110758498964249155040803528888048153256030826985662120339528386297259570562730057968544062452134211336186613714002521843120248688402948734365610905304790452687543873916374435430184913130094537955557398809628624267549939178548472104619733379212104027022342938123378074019641417637276595258693528524280421077939253109524943021111352378794591172949115447062762478533310873635305260005838184413860219687042307364612364227297993329897132637364414218586747545009565736679416683740823350059008258680530555054927003240126015839897572290210394478371784395193168593045054628297185394694311776102426883158274722346018639128339688671108146588057047144161231096899352150685609400706599836839520406336409616044220200138326382238605844699933262964245116161399337304016461825716238078041384553862332210923528046595958528245603892259617791008896193938521035790698558352535123506438178700979413809381053358375236978123801300068624458399003754060568363716786848310243240044910726637274278580102884501521411705850401229988995941685845784324041283823725535959973968079034980294886480642578662559799456194035246692475199293645947798060960169037982765658596387025978557789962253352338192981813686379047737727610666849793207044942317391761848237614142475747040826829016336375546743378177071819886996293734729757800903780868049404138524192978293166754525938660652171164955936032293220538335138351694124554482533742752586009763661292315653621988789338768666924664837529711221699505714247878118566170382473982198954893852215305600561541473987787927299493781131259073338043923688309340179497092618556593412972006517777271699310768408619405874520747755474684185851441594822564312273036188128166948837543339319535432960932757202539681282131388229053185287670419935423552480843464955981508003215298568025524133936272375057745831147173793489889196163280175251931721101588738858479964652772117555506595310885582441800872497683916531738510531360070331316292894890052815701300882975967156117334698420417880638740024178380092712328067297140006162730746687208348408115047320709868624445547437351850463874145220399381712976796921017669666407476461930210053866902070446499465739791639626481858085160557059982319139186635090276207650373837821780407082690581260947797659518754682755847045357459319789951974512850032617474063441228510631498579507269504564640455707762240576863221450177726682557075152787387329705868260002070554142700643780836155579080911015525764629861569656973334785319069300527458203870947720561549121660944559061759445321721218748075948046773925781807188434311830967995705719586446508929962636823412710531359902525638032203809132456037967158573470582834996758897821268234227839693475680299363643718268080562798595234393757756973037802441044670418829522713177644786229021122146225952553321155148580094641435476329912967668669935294443126413971669307148472646679556623909610928031305704665868713773347604471511725721845792355747297203417745075454537903813095459538774737965549512855657662506877859955972143915485512471564650218873785433253902784591437354653556824952638893866391852550730140184455039617479009480102768584270925266708080375216489227730718303359788365614120315339445857062626195251378256056425664373065506061850656283055244691781980355229255534394785930060160057689175593218204116713668206318799232838189837423491237677628875289990302325183905929772249942143389827106689464951398410858625194267495643478675297233700080408993237912347525490827401186225535878977585219081835877226795854021004076308640604436628051936756368212204132647941267576576971350674673252652467480407299389437924840993924405755651328991163583864528429227194334343059810926059606458139831617806475362943572387563193853992735677902812386350529768585888760031590801555606718946111660519538237313415769988590449327268333710536716676961382471090257048853452062955135781211564903697295159272169678849044877813809947934307952709534884185594354348199076278234431758448086021862151400236641200992779173998973471230359249613977439806832686402495788468986625614156254846371477715833122199967033039991708960938157251415773515963850462465606437192483603639600210520186433302840118931986228087296045210200516861412611566285027411806268208682299468379911992816359418216572797646240631281539205618104489350089930929518041551448215992721230937230835634055361516754221665255103072137296537728992533734161493278221214666915993440692786859634434025477201465766935448891165580004986233697171059412795422386568571164341292280151628574191096806031433696200949350194593331759098518741288754108592374602688804802968665553608912218178069447997744034468578905818659292271535837897780296758963199718285794306629669800424115062052624729547424754252759826577001340580093441264432024362893075097381308987294650136170337242751199966490573251678534738287278477961551846131068884945236594670993978489505046454665349703369933948361969434682226239418455243337396474600713460813437193329393813736072765304885820221975832015421638541359241267677378659604728977350633625392975397555043824498165290973015554598717135433295187601113530691846160329674105786115913235761773065067744162753626209870202048876054504926009077377345394386470531852537298532173183051199930950458340077230657433097689278937110520333171480534996301144265839115976418796140834743282368702141613268307799528820314494803557791732371707662523709126632562966110252284281689495384241432752796778897194115672452230551026906253375707993085374858855816182277869699094460192374420551008671985262448338196442402866199674824646451758999632949054790359592083901724341529466963480124637113913147262720390468974326954289658492480573058360450755257513487228277976142136061210951433296495572726582044952472419003973597560021132870468192866938828888523595228792566709591865435682261258068481844534447708248517489531312212928289624885165930656817005155129982109049512813636128514923008253980213818484175418312895034337763558977012715441149904842171740137530132627674378901837592293223812306855577189504570498122971861140158344794582710936878931090951896268914543306619422542599512019990222074876609109554045935781733325254491122720823963185997471106685374053078943513825908412854076096649051312094679006186088773915552264946751598440521063810700457821491260614755284512456147143251749165794052388073215043346552819440537790277736880954475572551651990321287050444746930679675754438369309352469234538617593508960811408446245131682002318676240152443197058625926894380277295050761980014717239758604288998723810397675592989044715359735453054232200502582831482913631314263553897038342124831950165675324215836864673270295929476367314240720140028574300397577870003550645740031908371422502506270713957627948669800488942078967248494541065911783098184709134611967759532782857162926617415403537731293941131640079524024421384615966036529328529658750248657321240300797311269480941490773306107018077677392909999912695242700569954525579133859699278744925078261477335717104914792540027054691910411694489990955991018845635699095977986234138913467867148704647689073004320798820675310872239073971009566949843818847646548718017079530760512103462136663125426401647073068035219116378143241174098318512731958654317979921940696666385808000969719036917774121846313944914003404916733630265473466313986556335897639632565019307020696134809194892021580112725082124161947669402615023496264227175311553396476458427164843248149807927389977792261872774484687660269612060345569993400117343462081499405179209159106091398315241983239523247662025160104665240511406638188458933326080657765014810413393602053684543859204789625360999141849690805007366498180563534658341663651409208408952350851685954208833685764976156075431163170553769623777504844260388459219018469495934570401576796563468893152280017027898504859528406298925909386475769869328882355355592775603083657320666859950916498830753502084441196855191444310739573276798294376231725907068410800242247904163602599897517809781882672333048261651594164390213541223948387970876638357498318146468608281703577563706145870343514222882253506637509335115033624240116967072737775039769640298613512394053821837691827849730074977894648344301719949121647332314545835390569141996443956082967862790681805425980191369232978598041246919075030443831071131606994106812608997315497667401307478286396140691965789077441652878657063035481785636219197776371279150696176297126434529359735128512775857969410286203872334620436276085297142877770495818946887115269295705815133517048144243310770159753989970675747083030374148444038818179019705513401932776999338407890711972756807574970754761111383002438804371465854923343557977173536337970506385363869977149902367539248131630475710592556727315268833296675727647781650340805531777485413489197783790490108302987385609474977892511908142249774995434236581653019263676240514967289988122075164958616620154606925774485296789250104113164102564042679455687636268297231738249640964866847239535532173231795803850818859650158351126523065699774405117410688131820167171116975589100336853306266383879893780456954059613685493473006014909745709695333939814609721875711381798061580419452289356242226737183328461173720871929963631677136825924804723493555599892853237179872846418961057824835156910037709719934112376419636277282063871668477833257166192227074537376359496138531887656944487263986109816513362105636918322563464972848750030068518393204902785387967795625423425111330573637125902178333427427997009187874821737032897757889645016360194717592895110658684421314886157047709765612741582966902140075394233603586912700578902088290935480862552748695357044531745355742577208466962435891846834278043018932518696180400606222556386171520970881404451444725396068405288380089472033075627908405812909727672768844437957753592872270419369657328828273795215829677506313372832355652380626909194194975496341022296009229078729152861134467266061584489586284919365444979206732421063861075537921634169619649827343521686332597054325254241094049899116824069006509225224928170197167650616567695594579998951927697877105736118115797040311295358317512410361498545301104936986573889144587694222769248145744577709609338341071370774208506250950267709600344127533472671900538878151651695282199042860261493869375735361134831079069805888688997905940763894371636649100552028233940994146845544459912731399304701456299244888285363047040460018856824024512846955841816451634495368333497985965342685444543164098730663585532371401987445604093750480978743413525702420622158906914037172709841328797278485314709156523099368176845247551194077191619738721302926908199802476679774997792875896066461903942196059549321625943603755403888505518453461042264842259428859826303065798565818456405683956682032914587483865869462529640264176742371613520178791966764523775410419151452062375135940759544990245271644680248104307220033625617003428412397017026307967524088121512266508503091656267012618843882962975780001248055513808264646661035518445440450012368828165572465580785351190624623647767818885690369322557576526912348270630038835011706219554847300942873284147935754593046091447300777080967035934524563425439644201517825602006596811486975537178304407492617429082357238537015185312131947877318141152681317341635690046771000631747214637612246937305336940387654046772030984129017867352294309851911294287393027771530416549682300569589507653582806317436860259362829946331959534312763791680661726638240245346731773757467929690753918532666997640739616201366871385815673930874489249846632028668321692485264782804403425090363993387638204476417417259205640266148938015860452358386837917522076117654392589545547592854465516140249977204932837391337605583276748907905246819264784851678109030426300824272596309444873739013941845660252107620204001948373591988214503275023055924704882500855407828224017217217523815067237811851537148372346281384895022329146571821837245180181733574562644833552729526165142647464976113563732798518436635066462513580308643309182399555786399372482406539021662152244989867500473084351432303442741295807871088239768444155698762121482529804903159367177926523178825708331891230861384501252783128341333252682487996011578888822439371552701227697168432279919773452175934960827657984535394560719889130605593217544115777195471710120089099846613816596526681294208090613215840783038971175713463219377192846456170221401154681186535504131396382597588329729377463409635983273582541204100511452456061612069442375260719171932913712952131771671411271093398887470606456581496040695843761881418761717521678411620316907565444676390497623151671707507878118684838486904954221925497086048481610071770231187582421888958715379585938763832106032449763989271528711914577598323053766152993361421807518149120001584723958295452154311003364115564137350666424698351902472985098870426727092214665195281372389201516196357550376306775659772691164764076922179237342941696866917390215993660779229082541650752756557341019506921668554942023037121275263549257245475773336623084670726442756489305529636697303033100312742403123730711221421729554633178403933964804278713650162925579267502267953613927875302077964846657787833196986497936055934019739764700697072322908860605580550910029520356129638028101153221556094073690232671873186729533989183781496000332858568422436668166615582721973629278204092289956272494585316583574758518523022816047614462023544684997183585789544328364663642073982484828746365364762780578787975305201021569412260497650288135185740365499708876680070262255646508160347095535569295079398370814091555784422541455338284045826967411583997026845596901165484859246826407966906589279290255243548301459944562387086093839038735190046097071637214473842049781087021569927722794985281723122458095918033889886803288166316839300682785223638772956023987001437091564205452430405824747088432822852084079027616276291847066424928383435541250643265458383093784666855068098088626113096520251223869181229569907046044070191537313981634622116616468497978998190223815345346319528862572161753918723650512143870147140901003601679991130234572415732637218103515080281132022944081017205772052721750988638015778187945968512152854487476390666361900756905728266193354173901509728144766351989284030118347423303880001544220797794093533562972207144816958610743588115235517351520127300570324722192327650530402475701817927673326167491291985980975919743309182416645125460047936611170573397822625513216311498219779611204994162141729584066335901848393816487741198428951164586309024445029652207880579277832605517117980491234529625020333693556099836471406141843512961961859048465649169251006243889847272431023589503844027350773956249361997008585556445027975112088065666610895558520521673084471857262386575540709712509202937489105504807146846339504655081561198734038208913002916674213484933131902318589205876147757188466810911634255389379832267785606036972048489418284294122802632199807078188842257922438474725895858891818542855544899289329457782005247111980981791277828480843849584029872727186140741942031881413961397780526466968802909840275604314179997274702563466536427392390006951570350018554829771333127769859329345705480362538686923445406648422759493004668077663201954441853632771536378733453831502602889008438614021336726963058087748411291563676878769498433545201207498465986700891825682804674219329199964563195756375203222725593232894393272232333940500684666438737391079280172273949917864002658344955567972209686260926981027775207991248058362255409348715146320456278199315666207391953237275247166754230420135043191171261295552618604971505921447513522283891211686161085001557362091214948131265287260658920143877827126318090649356155170277264635246083015641216707762837546000263846144417552177754791279735673422670984526647570832561625891959863615088513495330587167697536131783811620651639013104174970371701824017229366060475230478264042756927289377326378869441067427137671260993525424385808822415349195446688150138111811436461721953341241325275973574015855917738229740900659977583359119627441558676732459069514641939331044060701541319852066302767514984910201409920689660118904687754538292492543761581917553970228823716494468345618895771913254708570474394975786008718328154553849870228440419348718718668673742736270801799064614159756627032653971744454763506479075868574981111781852048042039028710809927551676181168188848519829059819945081724259536867872109377105193723739436132344031261238488444156669622113346796331784658876553912289627339789614373002181466726210157283246547168491853386963805742133931913260860779384727954194349798886887646626417247659235883226974757840357087535650494482126396319853083843688365268069309852752412446913101395400612553038555809198057136915490019499092467701125221990412135284993433310322716342959358443645791189778089504162304708717479585154182815193703585636719627119355983955665921826400249042037369601822291568070716997627593622427491116040462481815188634019089613459474521984871865413400120231960542963388082642137415275049636769614244339621405393393241379043350422761595106621413412121174152377285079699053209294043838645053987640659679551680914717384996811814383810745870011231031713738826613159168183516550231257906591977341742352963773691230689780453202406583067795868512945655472166639595579230251644728043893694790554025058353264799899316349718912524937836602403736999711542852927564011425352621737718111701904191938464155903703118471713575842159037529157227463147852193998286411663089520957088390063518979093550654950255557992355426947291608359508602580280288172932434266526775031219387876599594250054369360441182343505923444187636686657802609876155953534854218908003585316024346343145528920410102926841647632678191479736186698155162488711703410929007300683889768057403409024886517712283542895657486031227712237487911322864554838234039431939963323672915019285204587235448323539759455674553768322919294415045966114896478163291170150302748081165489341055648265671267223306959503652881523013923290954634456797990460918696951167383407692394783594759739492197933380764533736617853626714948030811040396869919215101920665383338872260408538881841193132235244359819158131373804466951255983052844845381310772747423562228575668739221964683873265585311174727419922095377919792122630512028362873785605366731115385704596957386746853575103546988593724651221598148508584787504411760352276378121593315520652231750531546231727050649419473991067111401018297252590938876668955760945086255576164163414173309769121688001548929725375094940841142813078171304159227694439397964155732620049637900786119497297682819653051694161396419239226696490757142890148530605528899886958969770387672938282140406093479564294001192764001060736920949696104159640409989145042894881666592687142679843171115029263876574680747782533256268849404876937049599564112683713109035231805672717107681751325235832219035022475027480874220063801545650800587070684005452996422227790331254525061076727278209031439162934101685827705063118010575058301948168277799465734287637561504308733510480396115813383971701722099949887146263573757830880825893888858801808008761384174906850490700542628876164909850383439560853156172896955356070461484372969820141136053937666526025336555111824872831850239115485143720576289590991129138367188637990854482040772451852497606934316647340164543993955646348423209984010860624554700306296460544596559963252113998997683231271828400158185661435537730814777250891214926539760661252032051765681295057780922544158212718467065673113000719429521775029672122287364209129322332462196894502818645998996574797435884314967771044148656417576758486744299214775079429038948399082498573949434483909300692846193376179265988905536267787819144244806657868701773767968364784356385614460976176602563388102647566633043123009729479254749848858718697752452629002815449190959781031952833751098350625464955585884723100574250501125386721071374953594218348460179157670150712397793477301245648525205622864358751370007115785866054100491695489966761048682767472579381491842834267304049655992269413596731369805365027816992893836601061636508106874182174570054192672896727242130051650755904518850674815822506876407019626363476973814456737067573743028243926980380395845551304209661718072345215793113605381185232990309131182758961918519272295320081710602166919785578516077629282152515631617518546702954787177671118324448390995026498770411974804145551609433543239680569187780547542127488839776496247747132525364766534494098090410759692583880067539301359595461829615346769684615040853138361343777382665876195710237920227105490139354054751506285828836771306017747506454585761185410234383682857937091499472296019728712879769554194067051288765687581021806157884692890113883736417440695192724657969683015119245721842307275569547989011550284230347509418412283264260331455833644707071491180404745681389270021218490217684052321786160368555389952090266020472118758308628745318973935396593042374818043260578380964491567232090684593558579569414762025219410572078923406030812384825785382962823326068050933157163227687513360381157921268049302956020297347979589953710906432282588900111691760115771846910751885996299142386463494951747668173222553435814485997085907164938261005531470686970422401392672088604656665061448361138146932963122301870507921999911329986211516136035275063904281988206683271795481650537427582547818374013795116277265484135237178945180970135962139644261538138927172550122880233342099751815146598427963912816854168673156567875973911245793187168350813827905605410972376727650930876544140716521547652774962093775899660681907211330116531319076733078396058482455173133627063399203984498800263800979396497539367407260604750009711450190975425885926313861505747125810599701247093495860914716404968763395590423546897045427883545199459466109772765183851898640556846533912811815963860426821390013392865334708921941846457204230194758238958972793748219742684235961713536872519256612774901105551600254568657591829397689208043573308703812606731746092787471440890092410931115953907965835061873795584950108748794368955253465216241900735112214930607116136292959005903445418339708451396837327637649436025630880762000166342080588327415031402490831136699610064262421460677545838896259707321030656898086289902838011379857774646693545493916401552781650822627425312063433253642840531405303261444095338002854755504626841209799543092122433692428331559032846810320996608800635573371579375486525840223015933227894910688937578242849140920487858286838101691583099223034062666006616772671439789967679033152858315968576748120425268258962247582881107340526327506636586709890347228092102282051242800067969339857851161671515809969334504926336896649987608205259311804662779674682976454971383001946614093750186425175264745652181627883989151933538185019182938144389874494763567009588672210307807855028857783290406534794623097645534080019580679985038765162497076836041241867587366756799913304020576066345170287285411136699120145625310508683906411438222829476160226163224094857331452703169130794960775681689231193686835295383232538245523710093657738476928215860357866649027164830366194175942693889374409427457367187969326758220228226069966504246630230049527754068685286257663041555691893021221851309663166881369795819243956932506216148803604820004356038833425692667075218179774723011838864025641525533443105942581802923163166549085683940819604907022255600872553237665689438416890394409347619428476007290063203106872532498805330466235652674918895940247668005329509151494452871899019701484009085886615520789771855770144097539209650589879466544947576947318057965894986682222193535475670854859786346718802627722894383677773408288787191080280233378687069749228193445835058694069309859715088482558529935068068242091266537608492278330657389201197863770169984256881406055269598954663912067063757984720517967393681998732571680971869328202504003770188479229150583462508221916657587628693373912516824759661315822064548962668307317128015180829984346822213207934230409804488511544942533905596620905802295273407784026344562204184483093950889255738450349235625425653195743644516287875478223698887774916458121175336889176952696470153907440789240616810921433713655756020540674956793136594380797824200653263092871646879035244149862907392067508596423371801704050590705671023593755692182040375963845254133199893696117976430130194395125703624199498045760997000868083839266450603253613200389440563691559461870158214731756735308786103856827823939935954856467890097641912009125675410445610840240534503530743414732878409276671555709112860868598111579551164544935657073745928334871248194104048673081196162929124645936409928477193027990146842992184037304071996257915912898715367112851287244108749968270665068494869176371365685338962721148108870135843250735047382710094746803503162208917955763649654139442635013725884338805829366821794690948811433316376630990765963009611937678301593824118569660595386311675433800050353678535487615795492338419443598706038551191481699438163920201986846752260020163452952262375084302645792617432545135712958708834485120253479033943390341863071470227609143690923177745648899687847953975085020320492511294273066205694736821762516344436944104960676988851864850773304459574387385853325117926093846499340603750709939813042571825678537826755189744346788936085467273780383028632628713454579869361743192361182730781719189824263863647274325460204199566298854511174826993649441283537661335497330474472654327798460680525405069886300055889371865921851529374935402115330988569127496998582575014923103394315182677329956964106093035488365374714592187125679939922623877777090013975369569867067981910229859787641186247084429982641953005711645674777682452086476271527906723535574875175948058825922787751875091833053127562555600499274558359431318688882708230334893229087665604876941104393897200744213563654869091237558609875885381093013323579116045012614620816229061974073439622332430977896807174600074581156385027646901163665503599799364513883329117232927073649351555535794959944138671608708796929419138156620970046000545546123248043622374457413602607718191724986706230897229234912414530096550358093723141953100224649598443894563710963413666527618330529135199337750035067014309532850139392294474897177188664745685121031429512516350409468034092169952545893084195777114481933440760945415668919423818477136219106652023924885091654753296410462468286658241265898875503811995881647289038766062780022226028524531949710438941597343256198522744986253972295452867941629438557481397219112836639710951716616861864464542644329893539755084709140638689166877581631977816856185601827180209575662760045030608344132469747494625736338479945262186649269728920986277255329105352058698953914966708278678376497530774188226279495433871230864413022076842875654737971998087174421927888174952268561036285384771378924111271591783066863187332587535928663346818582958537936227543016071654770440973526976915588697296888548030288104604706791337975618212223256880752334534865845834534327083116680780857224242793021355898147816586754430604861294567943162450941495306143947243132833753299472685978579055838178454409058504827239528838155548573806412255249534714170377678222671389330773620998332312463572756545448844953663295231464981890253080008115677546203996963799658079514329722853802934488657292200537174567249350283069862230275658420285387644379242345220273221870923581872022533230822520388095601102695369699729385012949876275715407943794507748856434260619520293332207356108634891806135451513044632761385332594915729392565335480910562687315136264966353162707011589862715364622384208507074155448497383998888219395160236329519633445864221043196197339563417457186951205427628019513962143835762446143982004437922307658002583738646121958727316527210395648902682095049728020581299135089440188748163423253203726286423174905207338175198616358658648744716335098405350925723148331860708315220563128862191418726667540007106697012691086849238312024759375049210381527745114652884223252067398717598901415470096444392052065235392023829111450255510332148659244579119529378593450062293095201120787863369482090731735655734610306931893881460762772991952945480145917713779254150627725987125489482681056046451336119869806760665208195288957655909645016443377301774966788238500116354010911898916285586641395479843205479159804427170261318983226759583204743442829801567323858628149921066391291597499588537346077838559750051759171864866147428887111696736190424777849516536649696173155957926950048565547237634866944036654162433889818941014917526144638199720654779230353834528481007888373921253584178276121821774348096196332615288005085004467102169747813043119433060885991723939093600635079365080395192219682645791666672849364884648229830542185217120903306823229165165741154530407461644570869790402071706088967607256785926837809852601316607770269142513906408197707408105376815296135170385473235627690683747726021744655881978062825424763543034699254538462626244953798135752706371795534272990964810391045998922846833428611105206170333389497757201303815645143248546229951797094052397102484082706067412740105014519423597711129133186992741858351064316553587477866276295411844724733834894463897597816264772639881541198778981445061818240389371081068170309165145524625551137488260707528560960298253879387691675717075384784157436365144428951066547604103106622661470095056857787686547698274757749050882585595852416608444261232891866266002529081867733822452417811798730139958914225523361383202675078653122716197425944470464647235882827349538820406085212145850659376021858123145667162532348005931476925880458238839597286458593270754226439762501439911800364179516598851132402380121858285652007092164425707102904251535403442784851795624669789114631143475156382394486916471766860920911496979982619653304915929238706211352999659469178123766048969470187918688008583141821395731445350325882432901174503129908722416884231080053759240063020125022634779409049693229546019530786729572596704976873017046417166011016179455438017758517174709328478437490489936990508274987470217285439036312752168066964451388722721722932809448947300155777350926687863017877500926496667567939029988820145736937386715333298486875365741769796012133075208316976444913311555328279526124038265458511433260068883218591410304949984360178218734857109332835148226288761918769709718022129277542373629432963227818201664219275662078230960623738041922185639761266440142438549473004412914861783885925935197801647997992623084740540297688748673498039775006994827885210314835967776180876219269174570980923622289256735820913813934583338943699599349065977671132634830440287341548757368566166214827186146098192600146077962339059920154134320934847933159625709203944433474098510547773758831654143287359226601176468775788819696051008883459597501537003967001783453233614910958285740018926767436979112760938706877584023457010261665675338033092604734254037966508501789927092847571774390241029311891937077101089963210127392355494344970591191008050644419728412465401166963313094042030163297476922280485256028095513731349039335893932535794120646227469294025699937628078155608191794314419965489584288332253887481055709222574216784984810983568281737547277808006385020388137474740106134862218830904592969377753318384244116392005268211972703674961356192448986374180161567553371340862445462892603738013005669444318163062548899535829653599598966174805238343312651463453971402290623425352210540226329860962802753821157587543720684672591245378573641164954920295000014779442508171032836701672889296302354987714613680394305954261768582847384474978605893139383131217667000496522842537887011724919466204000088405762712039574085668183270505019608024373384619481256049602866204889855529860393153709006962404370369157261286145736375475406628585065565182436865423631388731288122546624198123799173844192098659871927968904302530341974189283839153470147083672920514654146989945776723635035549495052356070482771245673698936236639446102988673131752628705959733404784128364867553262714110605348851124501601010500929301499203120662311391729622687106032102376743479829962615532746966796458294168314453142627954890720642491233291536131677693305730003141064031928491765381993725268917038817872093404868672307439784522170108430373948605394865960923720664532776129659394566818515353111835224409664226395526591298730179494945147362841025803247269497717049647671821515815988941677685945747273676559181433033890108488802812357368221640445275004743611719560068907559489965715866179116875197986559858852358854388440114455544301978026794155181139966536214496708257089966383566538429615195082070319102636306558592496422321433728715362935090113192556788231924513078198738486827568297214221856151630428992801229207909626853939643530913934255349878430490821097531828568940300562546600267998842998031048122944958428192714584149610056275109717754975952165264753764708163768044326607995303595909966909322811034450556255806491998221137249871495633266705658689593349225502567030616006399873034010001824610804738182249325472424116744301729478825840082020444711753693215256726598347691997991509226442909974228078546831858611001557443243446445800296311105575462330481374083829441920047719272558033193497279588827693924514251501312316733892741313635478093708429670840981229618192352372770145998278869559111029995641415027827184483694874873121955399373375974880492964256249994111570345275563023891205047151946365798263043032294281131099194721822395421373650680399424056529163688774490663815747224090303914736926759335317893878458766879399661120204097218184970537491439238490773297054681261818416129898207864883586542605110492900597364580676995275106701780035567505367524093322236622655733700215844497929423195199275678056482451631281749872514827566156312700378911116561172099189305623706712372560626998379957322607033162444924945170741674935952805758747620042084451962599019477750300559662355915095599752006835348968516207808516721846864539034951914323573738294736753568256511464041491043770885695100982550274941283586912010671696823345947243304088864059595936978123380210484249312634134998118659681373767900930230300739034288785513321924321485783932674943518056181059955131995700279889900363934381899005364227241603758230583866716968434791058528422246431472376248021398515083386130777505732709529176416876300720467910105816311185093894270877049130046658182232291999869441013692313293272762094118333916575484980306018865401771058484435090073268584563177998169976805580111336297631500698489389583633847638069551840588672745534695567760993527506341394500792866440259532686995051098316484220546270030106049223681793030631958495160186116637645286647106727139738987340190281884065824419289010719627050802707153329562800280769896098525244837273358757627271594171757493017027033280917734945187091302209587711542242233986783963477440794298684157558733808150393109249018297372918724292738102424790374457923506417935182297571239387792617853808616932023378447487226690354581902250364608933655369452504282969340392876016029352088551315721286201246922650397251275286683941273678442716968280597314226765315218072251444075064002243069717612754705997300565715660726157313245927692977986184100808993201779679607899610258802406216133766639353554663951850158806178767122001141273899157196148865321486321233244600576396105172608987016211595457872902395081695488138679897225086402696671678343962274041316531867794832583992877827698407623563880945514657228477284963263062407466108862938671824685413317815020718238530536978505263419215181111664780154330180413306482186104892957387380161320567506486560317153201390999872172884312110380998699056904425802927081485432351201276068244508210770163534820894339012074299163221141404155142289644336082763159980258635140365375619195692115302555822778636800265727262380662220610854213953420215736588926827274081469374653422958574177520859484840868831936225028881805080984008584253113569056475223523093381009404581937434249867133984128555066104674727731784372197535131523684043128328048981060022734301024405933552435673573703159331307248023241666564193820729759316655000106785799237568151380739146686734162218476080579926330990723378745710347366229178612632617443068233976274862917629939684991395277576970163884552059695452213821483466529073278022624433650514632873456108435776210402616857564312525748586232128730586443228804386679161178816823257877362000036731098310517720376877244395097116845207748613559024218635548046032567845438152307304428793281652433739422720464893893922902415645290353872479084083599819025026627885218461504213563056375355337279510621698155752652461821959516855473447904511515966446105316287471166756518746146583020501047626439492346838448712515646611518591623216987096416832774547292242628433057250188964787587973210386519315012324450316085990388137039948683912418167022411707728010646424400293883277853862242193981561135140627974932417741496784290553425916467417360268690972901322487313735309035461761406283344390023946126375150796412286215794981512113684642178428564974326326933422756178039749225556890774003454782719828770148151785750759124088636234013576867507813013477467432773706499656735243638407960087046135545034679959329658263526648711889802916330324121090337408333123723854271742676268213657615240698032928119853614879391097033527558894670076901351143468442722456286918418668443451178253286036217149560882504731800260375230144897090824539491002891794033841121623217279854110192312153036346389997799047491240200068858765962373823485908912706461184057375784624934801723553770413873998888886458869988587758136936062146348510472244196396146962469621135035204968013928747194317514906851290783346777284615129351085804502497502298255333438631388188214619798069900484018931368053980235788563521272551717208342811541597274516315472184858759229910941797403982537736330673142829986616267617697758610659852922281538690600711410614181058246260955410842775866985888853091652047821266449585416866799751445043724472048032597401976007768409462269846421467254168174246549507345744110418771689907083644448987486253256112720088981916452522563008112347333077550684404641862106427702033477602373721945060982330593758389302260975710149499562905850381513772217598624185643857105649550215388098852953368710169640573502460036061588787723760441345682517002907306870758954330240205244207422208734570934287274821149082650212696738002554402322456342637254971855078208657117757931699087615907200519114798402055987501348825333714230743391047992856339565351541642825710952283672978040199198538312317874575427395979175388020321690633318049462400992289890209806344634522698422688030817948265138784686639772052282960043073604555295224126240413296513009839562782406999502461972040373693051121293594395739537749918429700396953995179022588053441533916979210978361214105947677168583081245624435409077996008519437528151844113588344519535241647649046436941897137750602023514192235511509815576405316621465293567471152589140384509938964326917126286939947344543632268886871306013423872631350389594501420787370412964811312738387603906455777489534076498048946771939678805096497620265524680348535313076232497664832219495096128511629443711554808689900886477220533938092757650410415898045570484239371263405379864711478417118108816596416689598178844074510970689974294463912707720378307532257168341317276418319386399874622844739602206773546275809201274262891429958691104626039547080137085819859851708693113711090229508343538713942697595447526767121439180075525064789557349293502728933236136749654735568677601923544832946648281326147570534701217037075712900925528354535854361617394901006514090405340609440719256377110956801537554325933089094795815877832028086959174257832379169293942248232625770673856755195477056674112407444669431005404078197153143536224138124185834508875616802546891478220491343035339198857561671450384436317762831079605080571138729654585909417171413763767261272310659053801447291071643572788551573028980563745535497820847353881621267279570551370797794992667911012744177790465211336257854304300253911235962875805324028727626348144660574876778456012454725542757600693805581797539902472568807185433490810433855663643028209090229591643171152237054329247158524657158514369110824430129545873260310502483629167894597137773459103308741173124294356924686709527231098715393244168493262362070555992108183447307231451291423546580677412063030241569865307803348110340345429502553084094536043992932188078822300450311765016107775856740597819468386241030872406092172016601050725329491554061201135226226352615721867572105702102574254002367516459211050684633704861399064199930756675060137243699294412780330099687724047254277626026714302029748397684329082395347787508909103974450600004179320018192322846454191474872537483182474375616901286527539595307881544414881670134400674495840575195766400231073014394954541280798709054157070427676739580531571466348699751147039561535379727564397525579491562250509942848945264115940539537744505074564796305959882585615803978916469795042881215691027020152705868679944008016014639155964127623185194995813479174616523361462958723283736319945563392954174673051955957972720553087036658602175989691876813649444599378903206470940648945956998546004150326162132589060532152844597689938142292386906346618747003465571698196441793138817922358870521880223057146073371854571732833631098711577193975647414294053655484722547038679220678941631034414432739345054340258586985221383645584823825204947496160503363345824749638372419792441835829822899007429646377645499445819404348159223776607159449035996980324430839201431311009917385490680404417934543133947133206992738050758035197707388379697711972821374370568859636181727258055114424833538278650375381308739138403040537277088499690496053967580730337119476987180383133931687322014626257027693138668127348171968107997198195727436099762999590443027046683871632220688906822805120047794583214442164697841286475868586509709650878376862524648023555653699030082569539071560754660905152747300957585394882346560979447186676734590776474494467235369065049689053721442070294580246126146434035570622537990080650366310076924301379607161649350918331612081614038910008843186092025596842198296403877583241884107381292955884479101410555686596541381303284002590506380408637228915472549057319335080226069429380421833323492407022110071215078676490676984553550747949764804068706116225367127549920949931214885017928164188086738516513284751901440676885941837374270950886825625084339489749292393994610930556884030315897567076738304841737133729496783505251487353931729360273272933117897023079758499613907495009943211544439546346211206441812383615848535178800604655395228062673501490702571057416635851625266033441299036310197815071252797721815400242021627975853777502586655245347165936327529121908824490467108810623763668496104685085175550186473491695470548518162400232259651254170860094061895680790055311199111905291162306500023844987238827713689955764298850778025555871910794761378196220300719669572419217484519187750025329218889279915435166669133111107382851153067501681557517388618097063498299892740268489378152268066980809798083720933610206773631706969563138507453647616170756433030063834894508185543451436469638400654293350285719192647959201908715079526758607954640548077042782280657966447539393893914667504916124038326762521066477692922227897777767190544639766249484735075165789427391346240182620865712772453397741050820791579181932845108252623235131566271992749727093994835524329121167757861403648728773073361062282632251313653279484299858367695611251357559935040122922749486303108888752712906869675581147189017934256460051976147374146429941402664679816934218212818293784175806730251662558380049861031538503584538064930144335246592029158882794550165635590787467421681191280237041626185963255768972871846256869427132142735292931196398649768043691877668933933861616179682179387046892381218424167506015344504486861405143706300776398653822309522025220460910316514415796101742823222096022137327906451407882643481663287426140328807466199118150580830737614812514564481378774752979327427162601258790658465609312042242114327577360079917505503030368592695827720555239367032609163453606185855718255885139970434897313666605887305355153783013364416956060160122640487646976690264131272750171862526306756137277696665022378561359681580096327866745423571055723991477068690197709373881743333466479239960817686239106172689824292899543483161701404651079486516003049964430971166031785630980876611859587994584042294132037024123798698114751131228639788062285861701647858568575923083113998093700959630901492093534889289967767310226024772862221344258071045155835774766780655439503126739527418236169275372436331089899336782332504694499146826762865778261106494547159304973828847929390232060767475308548949636572531527804758881221430435522656782342009119546084544140079463944088364794202321001851948819149673094089756317396161987730293731015194106541675531784410665700649930877796763813568189029780241415649319131005294788342964876331633983316748291884725835116924480274929393718249141359613859523526319962422793806035957334834691624678769161471690063562486792397632861128124999017111576388187277215722315601645863162691779479262471212441834360665182355361677282325968798665905754115258119127930611159317705664539761633519809346411028072254435753181586000434618069929675284382955826186455745304230050650026475138146872311062006559338839421082500705720853110019245479748422919356982087260637619288110484097824891462054282069851848911151818093971292786192185048662699935159885292686918683476543874677913697553110137733347833013408965837674675500385073642135955692634809744521016209400918954777734442132454816668099226599816803112772561162658347891871426924765709550428796182261419004335996770879171828683795096084022099637439016246579081670708756985540316401517130484026576800441750460384399766078236591740246536229989976005098700651759483366720291827846671495503441355004090773367522983376960542993300772518942181377825477330403606021340547640903209321241845127011705830996115892113776886392947579671491756351683153147228376609881872416008218844168722978734528504938344365627350235822254053741140015646194726149796865975483477595243344894845621403390416259709265364047068313791151544445059117928330117502043584991071765716592868221284352061910103176248551931861305525803381780775358973027519883420348172894681379999260075872094150032683149146003477472760168866836469142746944551603203567032452365327806886277556474552481880423539208369042246202674200744057516898473755502621386277792433277853771145318645802931928286770159233091123239172368883686301179031418493767988998022103140529229412884051319861690158333548079648645430546649869938675677943955550113195637536127114882152269305802252836318383865109892404828429693263421533995296415761909036685593150906060197684469752422621927786570253666814147606873977491986606904553715062217285049318094772473683861774272453854049623264298675932925252087870051157916662960955935950837313255661455340207046659745913210414262026995824441996986282326205421766589729111329731028937373131696837965518110640283918642085085216865972140467587610667734581541068397932549296655091707994389035777525228433238960394323173218340820646518727620745480860601875277468458413178476625877968710693465820527290978848753108857899301685753695790343165623652422469862486529848519323814287461780962091978746218063558229921303376153201839100905821304549776641497719288907219298498996851779193567884216699882446280854840983406619380223524742610968489369559396339590394671175798644697744667013826806592014420451678688049517766258144853197453336842944700637804818463605630532892285657215365091558604737765940499313596978258098468754461123810779996974145811670654283829159538236098262687988657439063946638413726963972196437959999512566204062809862302422099061909396764849219517894133391302271883267346269447312161350318134950098952953368154303550930122792614717947941974770413711169744909148545163224450459575051056970626059547941001914597027038936329805696634689420164336024473436699603480235138236211911534236987364867258590421305066515193696773420922521430299707378077811174033196304351939618558845902008143382177635961282664803297601835189031966513467859605154168759252916238906374445184222141571447878968876599694976789336575791860367365891126742756524858749759919134255701765438323552060738132497327788569417199923608195538636581213446552846274850103212806022065940567041784963874297337154604918092006113539175638128846366139754555155307520554006659780276903421761837417035545222116516881970177272975731414747586188653299411712550129685814982066339213310134208900024804515660448359560506146445836491517238777806103231809008722380547704358018861929277750222634389825596446835775658106362213511031791972512558876489413356642998887631805463324852792990180870507370592263152322133414465207267689248951969762897231617396473377055358944796516303983192067867725923724090053331385718445859220981784022957098499601540300969622166047200676553872125954815887583274566753966443659572428496966993511422267323017847921214318611209029859714758699617653624140190692231304593686973320297761314136040328519098310319606026251323030549766728920577795830505531643924825507574053634965428336878739630330496838766227931183550549148849501506658605360177922235912425883679439323752528059779765266023330603772828190423903988125990698466046647762225585130442946832312800809474388855986432809680579241567941996794005639486395262321438887327761612753592818377144649265208477865688097391873577127179515144143645729873991254695347152779440843433154379564640105987229786113868599359798037291109099551768512832292651955629133886324165552826971384467153030140272675444682235632477114316456189948386341385546402309366674733457241848286289150262348595922619194841712919113662365939929031257951842144286092542245593671830192422597045457798800922177561333624684923241509238440306082036209569100031871550968985740657636263561236091828387254424602552254314334616462269784337324937854068344065533505152424126459511096749646275741200880254027717066084130406083876358357229633847531220691699936121233849876846421195966656497366577263794507322417271517210882518808924061382189267868677103782745872462605602742672812150739160602654907614668374173117606843957895169382399587322428855160903492940094616121049223856655346146161645867418940309322189048334364826158640623847254608576033305043868388966977614588690188729373010101445928681759784382092963755299677460954031349209332517876762299559897225142451528572330923760316894090312940007885074592635731806657340576869853149697277281744698164041024801560093400720469667386877301033093811561000197642546014928400860489122596994019350653985036062324628835225105040291398820868896360271908455459951458223720167785496095492930644253258704420168341927774183868349491348215826595645628078209606751857179425786765143564630268571670897200883598768805022272730126217359266289612419983933875498588440848199814461726320953552815445224151945129908213046957236873156755306408416410784151215330264530077827612824822837040889398786523769273513223125507231081220009025652478809602970485507151243552203767297980007981914182347089759714718254295368466798026055832468490894858123278567834487979344585453918762822547292458494285468985286411464414420195563914780801149127322983891394167170589430584141868912783905987671115159031630233559391399775942989960812123714767991199288046581826813463795753557178497824697033327971518159019170002558425422363439298313262598310501305008270804174442838473345809814331613289580578050071206771887754099266300538491189004659637987839308309205050348257904142351097927170708412615349680296650943594043926015018083631463948952690087416424507379751656531514105927932168913617991588675788656544455375418947457418831700080618049944492668572135499292949928836786308355994934320747695792128693872347833706123773229479728346867047525860813377267127548050081537216473044531846571506083306536521157037957974742641720392837527363064272386673434748586498730219842954758630317525714135590052303728578647872355878471256953452406835098308263275984586221121269718458210395997102905601996565041247278172818658248106651915317704225046905352593261910027530099687972581064098319563556017823182518626588973696365796363971748687267404345292818929399717362581907558505494179512691185404793709124922299982286535859476338333902337441884199903767330635864899090111719703091935658090043799107746310948386381470811054506137202167890497263582227410150507292164194660286560420181607809220395535813094426081696843774465257669588704763373326780114297179458481218712300133107760976333002752551955875303150104017674402278145486704706238606487604857556527197688112188094316778116168095787416356722348913709353620402219305125444233500208369253292621799092432319755887060864653143834905666343021291377544429982373096963013050772455005372835890227652329513158532356493750035101593286181085616028450591145602709681993875046730228820054972923388812445865334376535914083223286406622099247743752443153186142302964910978824228799749648133333701286986064151063706217860866770254810871338066268299363094834271689223920266154847031053696204855954823726592695384784297265171986544603835344751060564780549129190487525316491560952383539279963781845877636436532165129843400749816777330748042314937671487604189147499530726360493155076430440013346583961707939454654195867358820825944272501155762340349753772883023312470160502221684106995559017075108301960978340872728539844539644877458280253493432964240954762210931478721896649262793243233266836322981802282032445463870303158795189586683148304232503738338076970107178676619786505308193018864299936017155132425135341845932277349090604891228306179538221788151927351854609732271863934219843953447019320928715472231434405622002653428836232426269071314248390406355245497496616495929306407849276183554179275892784428098480305551778810566309505896048775412410735671393864832433119018845329011020230405699549027758315042533073241351530221923815767954702780330885109069389928946897726665653456249028974966899202677270921357316936068970035418508721030913581838189884852882972376374086355651536646155992192121864103484317641403890349335770562137560617498904710682200005580949765958585585554706580486782129593262462123046091722546375793712379969405969634852811525066055134386393770736907082249753887293200372959905269254696350261679593318648915998916913736009846603535249338783414414449311288237573831291156627030781368190422373191031102573257981269585993440514696968775286221815222396693198169396677726700327074114393237309121645747455707233815556601986093619055260877016334188251539098809830624200307294922374564096998710247026737255703085969674792911407461129845316833149015090231230090986020472015416673799132132482030319723464896610300012145064531089162632760559075783892805406507181609811247005564165670774831024498734484512258749822238480445565121368352299933104953279595903210407242856845460717421548988190319163817865327419624669108708739677089655144331824135989219038527965231194064857820630070523802807361462237722234580914395921521930599346369981585288798957076875353598526216233366574558948896437080917168824136444159379572002581364704628056211901976294196842957226169832810308183226176677746645713476365305419477395785185038304774897934892025760594873780667049075473499977320087188049047133902514520960959388701403721541736064469003882768957222868806987528005579374693999422273125895965162869822647242415877444851951713176451944042284435645719517287654153302355116140476381674911017984446277823573207639972278957304561842178456654666393790413985987085783910068502133164796266666419341447876582691442439439440896090391940253644072172983016257507354034950149816876649887067337277593804077393121780243746962669645676614249627204387582376563271392588163149882108786758783443364458179656674927205601270451325888478504510881567190218857139907825927665876840230838118967559334201020593700244391498866437874395164739718924958997225841974374166722719486481416208071430353844928413224046945219079129725756532313057182483518224413426637358743630682670138893117242059722089126304685450988797032987894485585524189730807012397091612512088673727745420957571906851087952519745395895803812430307660751977171551515624104049597289003818798090611470133350197570832977316819782857002012653754379058106656873396023812288628513828419762625332116963267525258160362176481464094052791762411609053796632039740313821436351370588631374671081114492529486157325284598488390489030075629894558392681499937856963197698106640101519974332690300566740538088716053925034199493295382627025118366159761433113786527384413466569546587998041767484744025353285481170370159468650094290016846788260778489688095284715846104230536752299869298447414368282779336017518032972262939004259653132478716131278829103341788283166663201844881327568415607756463977903975443082206463067412272672110418477354372673146394133792758196757366748103651778443631451647788537086646825859704774595395967062486137515161714920783984638303239356970203200679121524910164923964154727557857263068949295124745305884975879371437323755176637596526832403106802185181910782003899220360851743197735830183100846152325849316123197056246550637014535892865752480429447266336675216038306694504008793741587633927183521285843653073848072178169478887543027788141225798004371186217188179003165129678987619209934505628167037370335206885631475387332684667822953992335864065537221257286739593549811585021668066479572557607218740723730262560321635194720883405566703682258225327748452953326232381727271782475315950750677450222237510912460233234267932042164719094787683814700208370330261031277679243869722419829599715762102751611721801702889609263121080581922976134022195435193740724803822334084259736928373013679713458716909216837735545398860470680192051594118867432736663286110657752068682521774348485146689098745040836216575129403507712322725236326426626837544429122254464241121320089885258367847973766217340040097870786090456715174907352740427000679711415377815300423927705607997362719290198480229768301280807613150466348959899805687025776490307173174496197679358730611904098899186910050831851436789837463075160478085578514584792061054223205743879650314155138553708764189858957478742234163074362521895869221682070633282569326383184083206003562824895055561388888232783200501216027174423624579978079371388411999840384646881170442210136367338542672366995613268762688603642028577784418224495895514468451413974337339515498686747026427041778731756551562463563192685799002653578210511924167903505357286789866163298724711059592771257720326550096799451014212596356025948325328727548334708561941378640260083269214661034839759942374944209331419184002879281367004115793240675637810257516650224607127005246913733704108463370859331978423323561165784462708977337918398470655925262997931630569219132553552096143695938580875276029765852666598747688480281251738004850341910525856645154691916137791601868675130981851499461479003611635995582991336222247984370513056200023414444455117735584762720477640200226311723606291275375074801135874870540954990265656199353783979722208793876980593503307927672467562597209785326837765741984747327886453230033661090950603571650914303935977049229940866144654479508143521218686538233134686312556052390818870488271413223194596382577038763093302613521555414742651032518249825421752108422156643622017828757707487599958543440671604981951839561650680988895652025259271657447916469892109828410782524794536574575668758929362430912551639331163065739834083284908709377767728891119664388270290051639528198495574437677833556733150405905597400373959483153353853874535177088016573850346546692764053567980884603312081040859145798205514329358762705308774520455956630995666427385686104378988941330847087988166864787608652108089162811560209061316590776064717638450463408817217978112000633511497585099326379427462547033899412604358460074437999949597582743463094829004441607829547918317377134593858068325654592857726511021968061289120580834583848301155598186689731944899972188595871470487244094671059235764752107197006802477177336086571441434021940269222741081662582369179415258552325771312514395614500091501944370163485564712800426635851137259839496873359392028111764703279719164927802870542270019260981244436115819313621707318803116039680173004175402169292859339004346980716629826680783020049281575541272179952395673127055495629056524024396889501298464802562671900042623317707459758939245045752831158708364629904625820194232751440409251132414303586954385641120653529321863962978571674405577689603975948986653506549219073821768442399361398474466048639410472472651736267923450094015986446754609910710865551101284949538770854925146544747683674993427821887040395240483837146208759099469945376670937924446416067849038454813253881531022949281356458822052705013338558457761041391258865778636705680343398171735472732288078668793082615838597607748076842653148699414605176489302176486175568346331421255903719753536444591075005718482775367858944544416786765308766124238862906560266818981936108340675858038725259707722735497043539511762968731852400180333236047942392220159773098665581957938775599048462948747482200034253402537914060146926458130643933213528668389326304795210573490669229148640933110657003461964045767853127433105413980200083861168327915664359770351960090612478019027316018799278378959046990324370152177869352683423438511707828960770680644915464809982874152042316189332341383066567924617032847917567186084324154439086584399951927807189535794670206490721616902458838256629733625136139633882813751039992574418607937270754275322829462796457074728226429844690381270411799930750987903507832355534195044661360985010170122540146195858869391489499939466781491347701601242938254917435761021244729231755625137535396298999537641687933599962122195436090037209643944490779324007020172615111120616971595190342499641680144282276073317746185375214499162679506221781852251349968126074085919861552265883539270645307348258806260056040975140793037748276301237171311143325723113071962726530700039607347141713655144337091764245449083063761598997378487655721796770406216013028181153600535963311463806571325463066972713451327652376981445283290674017397986032054244192418424686185717808374885813992612144568640810403015396411788760898761302562741155429256552493571047710044998924973249786815506823307215147864577935361807317292392793740419079881231228984711718561258917063202998531789865750239031277803447723787748682817891041416807675994973536241537098024340168501834345435956997970336924172535346765598864643007612345833641556491902617263932732037919953053618169737967102415018413327111794912417964206868748849470985320724926085703308979618855890777301155671024581911467002928277829407048436578677080887222928001720325645401043893393124483933548201713911881391437775013380085554798495595687259541977519083605060666310180297988931984288422573089470508871444406677309154559786554728139093534405628976790643940955041222175584302798429156374318793900179142452903257344056442016235493015051133960143634817489928936403128484876398161688237144428877077087952293539226942963309787045663184748194653769437259813651495487885113048723299689531910963960992787216546269460556977018414859985568850183135527962919326284413083785884996728815351746307649959505066040822654854026094049310724916493720766400352345636516903110429264344315878135659593304079332966092877924956596754966571055862968424086086125694831535351345371071726467097422947338774710729562582277838126080731035308372169269048133892648662589175058611824987382896284796177657849024580496132812849923041784830657846072874600475069130152289992923273664362916554460228676187461548862116986652931519021795644379737585985268134964386977472195297380642475289337328773077074224820878259294744281438473716262500567231261644223566533447245483658117141485949599088795686485983564343366001997541966198934694930193822326890625930037745766860820062758554550195616280738308466594932881119091024462719135086923271838640845244004838163623334955187517273825944536628730742183119304641398381977466002920298815472020709328906140395127665776156143436790260540616280345353977782403331413221069026550117524730434829645596146202679795583067915283332906136658430444209502530647968167998130542973006463160297963926764699321523903174441712672130039029145260392031089223763376054954889132609407748191684378650036351773120951111818842746412560151902685527242292501926114799880222997993519235333494762805665286929283661205512220109513709228368661144865080493290500174958438670433266509879978977149860145414578679780799732029178269203925319806899143476389935819213143192257068040984577674350999812705781850552011318082994618332748770164089706373373321643358475799633559481875430045501623465539106449675693705099530559154994341808335291764887579372568107477367491783647058963631985022945831283161585062163808172393184586632057761264564029255504962515802630253241166803056913305247657635030825777976745144131645279793533262025971415001356730520244693227026322202680599309956886860427883923715464441185838468632517300529077540196598447435635645385382560529918895265029014195088502711860593539482543912030558121009515482594385791109133870388071229584972800344004599731729999479031422927818468341399463884149777422988652662470090361327146576773608379664032204598729410264146923666696597890289799254349999361732918026342605450352527371848766539670918384084629274831235827174228724167791273316807679400234587323666700469186289427077828219408034411559206763890525362326079384612051185078091777077759669533179318580662018897284045539058029444263137932042938929910815600711932685957289242358800143350505758957026477989868707220080273959682477740736594907900490397533614643786582902769658336417040491799400939951556177939159734871053595842596914856682495253648330508344297689960731022412829799529967485631992455835997433410947842338862639422445936594069773632039083981293963321369311879239582322294196449945639421664125531015558354773904732238305434161886530736181147740819467624111077965953606223776606629227326985844895886901076977580567917443945781162441113083832348224161646840147730754626674835210217110768563279740706936879319278359568815123812649541411115392073001211020963632793392595760892741711799471654407222727452490934425142523807277973008754875507841875632489435740986061389751544499025856162995577257984562166834163814502169075913949583149027964421140607281827627773606013869183244744805037596686552372967609480584235015151185000645379131647226531334393109690706251985333527519936977381010221738114964492238085286738304026279061085933021141634058946585929943585104394146164248057980689256061206555418960634635005324195425109039095211831963959633997037166552503728233508798678125046216244049700674597534144140839072430439845792803659540362749420400360214128395643842299895100912112373912175285809820488468172834418626010949647416988586693414899810962957268937501491761539412648593627106336750997334123518860971437998851078936448824321712543166462858242870005242270989557638704355795665471715197401604793759726322642332843056860980444220345110114519509849923663053097220379107862226703690592183286347715544107794279183003563496100481435908011947504969460555932861249525679476418129816858888854378824442598210830415724905957292988329742932916551123614363234794412472544620233923965971652536733563500723841443710569215431787194702899498248363771469453217988649512000531443081261724981430194641115379598863099767255589509961561062427906256093613082896169911853777220265685089890207837900719440377682509087575381434204085161136040531303923928324529391384815345955380452407322274339343847178116973865467465141387871544796787734419965643278527693995297961447121798837819252990306163464523000990747200763274752346190288352731820925083313310675497893229204428757890758074180447844020080019472683266882387523617735930604230170032822351899140005746559610289317158580737512745567591361080361267670549965693193083443641616139274763935448460666174135134387880721589056177633765689730042837891812855110750140027968312568817448804361235932482617007604190607973861906301429781762897216851647028275210107710984130434187414187458854828546221568500339874193244460633186126519647030721321432683290264925796471487323319756975039814836772584725414423353443478679026406815116048935301496349126082682173957812229467374996135716974966770825365742185909704243970461199469510698267740057726775239438387765437174024348918750787036167132918489345061410941420709867868988665218644113766133721923419856377439185621705985229061815464514155374438763842094858496235233449347316452012050504953719991787689856382198528688785902771894548386236261915330111977724582173705666012502920986490818482597409766438701507767071132083679542309250526329455687805891384140842614133102920597682554850019914080389506432145080550813560433964227481916250952735692327988112837395309306052558710026074033580204990538195494639716299924529846613268084812828585491226652979588534698822575845627347456230227182871028980551676424634790796816690488474574402998175917537740556449781434845599013880373752042479572477811183834954004584454339789112572741262388182208328044047568896243446508220582593241041840995911705337895898864025339796424382553148855350440412368145789276413919428195077102679919243336662570012226919633724520154080064882810715663275058182322521647947874225348348694400353485343860617193574133025953799057365878730659803847311202695728213927789532973446009903390714157012187818582062216835699295696481435002517992173959821973165746827804434412054952352674204036556132464327313409686931663476816457263779547974011223806231570669337365256163664209696563233755468157812102678869279973696412699007025101025864189346077148308624532679785474713889459865191875285985395094032595514013290411652735503505936833527688128052891468675297228084168197715989863986948911584757558179165075408994690216568765260426564207487153167532612663912866357759561057852817366286818308267714802624844146081184990459125182733377302016827960197929147685358438317965435886187548351908155770027436930279205593115204249841477475926048346046892965590711040263745833081401810666937456587098239433704564216479632152835709425080461990008473052318158489242266540420091216566849395582186499418147017222262045793400378274755881464915627336878800362401003132563299838386637432030100662397682304656082927170036995609918630688282113170225392293281736748071955855377192474923680711398626526482156173335554938694865215607626392048395724750061376417147872200598179457027622785084557729721954720740282225690974090005220479880064725608384589552151249978290995691625207314043909750481980593477080621648479597434066081315409878066028850363540292831656526086435596863534879259450011423265532402694689723315723901801334416705839592237492623370800665454124689300178852695137974877671828073406780650002927594644271890879799705263920235097146803399641564804773740560783510616470903050059575418154918784558623531863907409588298270293274062953633651979383308176600335000974624524489691584996548475886726520186597644455419253438604456841550106491187745961281271126609457889783050906112125947664738839310260317311178912166907697261440345272509844778886267174509481800107343293351105409584002069748693644494168463546818234931239181975688115715459450159373314425985714159388505676106551973895495499654636794801239474859888430343081661472175657311002273767879560295922968583889028036157371791793701081525535275338446577647893399696453646900454903948544384337198917907224784850077411570327811487472537428611610886001444753933301625941913522605764891714072715361316208510215462337108765475441418515515274372369812229041767607057915441710970858723311993096259182657944472344273718756878470314193571663613691939310478860687190686458786042861743800956724518396685706889550364667529963987037333592005098207122217763950976415903575677613842148346354762451860548099986590369269772893410767921826223042833471471898173011913084241042212838226783279523882566190637000731739470076802263630977010263896885563037892041344613329685868998445598616756518968010688519779878922823390671837249359624377426748564182604941565238434042286919675374058972560316715435237390661084344341632631144975471734338948414735560919135924506826284408825285745416832503648702523206684947517006596687703700202420624165127048480758720172143827962099812055635814370870427196841742432581207272399399855495726288035353289190054305497699157675734308113749905792461755890738241402976310143032660743944750497415418086796114535514864750790127088393559018988172268640436402824833950862637085448663764937973839085069617803166150153679812288048612776057951013151826451818038581264718795564921233478823104608084745909186777322415352523024754538541572387935393618610752826248423042217636937683323316539517301146566574441484915074613579808635659980907014983897559828379374202650192920471287017481789143790146417110982677413931966780774731973148822524935759105681276299543840435590860969122400642870348820797793085150309068909844383789136339669471029728595531006267342534323620134874719533636126459166306387064605816937415354598349710636332350974731219752356497783141543841993714108026292791568949137288527094265917702456321434918005714962698773041608135061929915831581734075064763195992389600113607689614561104573461987139085292022982889898846205579082566494395067250590248734768017637407210398069755067258715877076391806669965345911120838477850326913014472977045909106252001356392626188292483371044883153367746714396775329449907634640743420584595112342949964453877618195848576359413426359118602181915855063381989649712729087402077455008996222386779222208399468846674335748717680057367490914226573476840959235481942338347584252580269017709203455701696402845325247174777882061087466476931025193370879858898931157394097678852237301159518465759139743630418247382802568208353441293997178094922520779082136873731399131884197060772690779361937034322977419957009856296242369035219792189731279216698911341091563263962331772754457563304383013383281252171098828423278312253170470335060068736074936724152353836916994115053215731055960935631445572155935780250101116243185882569509991509670338361059624190974947886253571475332614882098849854772630455241717360490858650371616748415761180469080926048434428392749440237925659862339148521152398439578717420699425201116991732941196235969151528344024274783706911945192072435419358642236547771448740641765567241865308391611552653764314213972810785678107229145478143781179055327447372902359890660822015820672174158074923613189685533428991165594808388191242151184205276134386544156894064153927944209960599841573952994164429601246847424626838996085598630109098042491653679931111886195401181050183101384887318744630374998396951857259918506950024705825434658605299166741764870909818406223715179363913443730821973540352782091287403656476871721803016462512814663667260120306720893993105791113641344913148197659070433837707556073051241429453155681743386153142128019179535849370728250461461934330092552356866084948227069531021629138940038553391246516398910981040373679802061701194819846081245677132857284795857332381559431317857194243938136255210343136954911104113189697699077468642609992790374592012813417367059579390969435119106894499089846748205031266405900336352208414525044898324638429809204314119295375705011975924504477313068101685438047166408830100123247088708195261714090165075989376160945999305768073430140843944129119918976825054293110543402878784317228899265220901335287557870462554757906246922059638131709135613456287617172892710783041927869132350056773072699990515440573313402096082753040021432193329469423417188829860935176765315063997035235964500802240099389342063992631325628543029911834738567368128719065610437512270607173902164850535858292196830218115322035843287802017300284978405892296200650680464932132013928849243725817714679835384098391861287852053212035572334120345326711482160883754167771025765352606052574194131813447458221279755782701035427876198758107758503248051170776496551274167905850815718824775543734495352304946489749862630271671286957697734042039149539676895826625006690796758772141714638302279254332070738220948824160870570567850394181920066172365415362216093897027973832463810253208025681837900728479756633227108546478580264244947348472479561749367859907111526939394356580895470268058442660092824749315535181746849403968964945632615548320862985511377769520128615199582836560804458900030573441026688839797747274326937063458833649693552557924405491429568052745862532742853875103828498706706256671289580339265378333464724793962312042247317999821915639620893400312618969223898927377633352558057628552947469393477938053622846106372182376872623987343597296172607880918101757056597865696731003190610150195749150215720255302022297207315661585055322492212383436956627691528672294547426312354869398038859513401882720726170795932577228317503612225404949715382810920925167730116610919871873375102543414560208798706920404283493690168235722362906726067964501845126359002896048975012218614935280428983369327505561449246093023260182436829639713762606169513351329306058247744846487982535048738519001660907588881427147503687184360757997263298148911605420832076482550372060880426935285952506897236935712664087056911162663355598195193022450550939119249830121140407850663778798399432263187737704534708701232199279269661439976149783828515013121055964252461019489951434358552688030285904077640997527471581203790929960110369632768140413859876500965110548099719134524712109327517026164653766258336078172351886536147229186131054485736121365579671324101206026221719892725425844405317680629677347458890405851419871044877912541599182944503009307386516206711705529097921926174721571301398749554677228943069727993794487587395253947716978104893372391066832389411587044674615756699352196962577674007778752480409322682378623294620744918202925114660024257622356761091276756450302382173062177683458856093846644383186740077522611740768839464046022452308080624330700023413126483605097134130577577083488347777628483384800108642606595919435090937323762938384065780141211254099420878174947148457988919204496119623559205701526249707327768756312642082023688341329838516341093728857558747178807406178209778890330900291215188693666790630295103154780728267092962645878767423597940868851452363696752705311883504969189963118861841061622432350242982283651929655920033623422846212142834440157839920894342418001731552055582148434225153353012003205304243042949944620882319165058888118681730073680596610629316799415205420067956100068297273098143704050345378669432001996266119996618015703664861942599921826448383281140583821457997450347071668395470939744081016951259013797624972003310460503854795154322140338489966747301798275232173566413850679992109854574880746375250920959086499815772528686152993989353625610091800453566038008991168642473206022673185389147125335146162725949105527416596567344470784488034395138458008935817308189739611216187477735988135549945069349317329236057500566725820594569842606571497288944439295677728889569512095998933215736751400366700457350549732505871429604400948728885084357385256779422798389259591788022145718692206306823811402114450095766244280421477120246475620601840534579128217614525994188907811887270239442765022284176502619459194843696696644370195288013177262353630816512238081602580038409446821062467982650444776189900813803748245473849702035255850032017981455460423517346341984438721419728739462078710151044535156329135832470897202605826875230280529585231348908730053627733838746413829477961195742423137962049766785650586744051922073911293879730272426415727828633857382142354567171749949039814497625846351013769613820321667692983140808659777836781821483782767345911639070260154845145042187059243291957559085162675970430409078688630162299912008847550894218744493800663175163531867984782371705167559903674335852432400418545729294359522387632494105215001193592997662907498130929874619494160475341152020893355105753942799800526540953228885881201014259735615385129232038272447347869283368234233936450611368951375504965646818082780226560744262875307360935779099754022996938916421009981684691262685035207526994896697729074389368843439200461505962508122377318136128974938836914042308749195249638319046133797640520044074919583649448163222150086416447701407007302205519097098695248500211355268541404610771113565433679766811754447294517595281847612264363739091179091327138493789685843140977293068189448096902224884793110826975775276590258273868472972807061270727671474045865960828717546566442226164217145761532380230104124970125722515229267640694276447757835350896816157983556439653766248273046592714217636265916523123092616768034523978836041885107035162825053549792823916202976611936266936983014990040039205814652874241456826193618938196641627535792556838415442271619252747708294133987550086978090787591756267960419950616415480366512124776757159338901583403544028428138199685972053213902955658951287347883624203222667173223190166117955551020795482877776286081406918095038069419710994523940344134319801793766389213117662399353609864386242409105760316241780064822836931699459621069912474659987047585548769955680432387036008121701825102280897381806135492590664999430190257226685345776300684329117057310350008236791602571726384443383408847368176107934138409249347016421302882812329699930457330926240853674722436362991325742170891285886106902292832009217138671048505092379948922869937711803950181680175346422880375392143865992094203778861785673941604771101582742064077405607954011516521802989838077744247264535449517723462684687269875314322746911799664512591083721761563046666467141942299094875725595866013466174284636012312088138864527895507379148673017428890634471307415846650945053604184111923195491061384710315445587925427325773447074583797969597973821351023366022175931293229465298335772302599108688546112621138720283892165064347594672964218023724661976834990625500002619201414290089518238184585353715918577276525830107316195518588517052970024166575394086545023493499288316628095393640729789427439934197534468272542675190211662136880707988260242528244007209963187989814853145520620200931118753546947109005611944056280396950255003939212902128151085388999304761365872611399126984025927620311570892986013602828715299119624388223723594469266797840740844110993929727854907577883091224266298282193394738989175681115616198947853054933498614952065903730031092760199098054442481297621426189178682049120594195999271874957537754622640125488243950248141677996717578873987734032148818304008684171317208120578055868337681141353433455378024457615559489827778859554270017202657158543841859138448973077542988813179747326223166167561242805764011821105419795663796322503816541936765600550366374040674045736872429396390048554049899872560292526455387736360043542402661597662434671811068617934933254164692254797597935319744984140981392122114807000411969501867167889058590628914805181829984204323027003319693364353377422920773180484595171575132948735096460436666173693701182836330023190552849613427135396003682406327555922812509863504353056188825403617663347145151424915034925363388563481922706315935861736199541865058927233566093521682630612991043044988567979864462594401004728848706948682746230170589071435493411767388038773180854243999640154506081977893826103582575098712666086552252298700567203616759849843079892193131566884851010966145690451327267524620619309884310226805840684588737846011391611010774863597380781373050499805482597279092445067814427471363091919366975085197489738524348908339548930865561062429643283224409760869133908376129160561268592665421885935828167546959763533662975400122788455256684228674215321542213329646070275975751237899363244943472204704314279812864288693418916282285946219315399265645273639691574253565573776834847396626610168070730086115171382657772494759201338156542093738552637010353391373821741539953934594817539762918842129350724913329174949261608668429150508697671487606122734873053323018242162916853254623073490049564029240502739764939321927710627008198095027909083724095424824939957542061106853136598526930220188791549688322884235504028902571813899463632281208492993709419027755435011665138859936823397496208765980099188124305006415010470324654622968403392107579919608388511249694347523918468202350010717076179337447424520133488891423878754885376604145816704149834960198563274250331734559094221813615788846771238402101284982755072141333796383842946167844123011572818963173563763645745785205396913926405345823604268548263195458222641093552170691472728769259577996923585793212551864187721292524438087523166703519723216060815104657226030591804786792354874764639355150789980516650045281339992079806256333148210249735380794729328557853345993284499258513151922792328707855418132306553662129780874403590739548944561778981830574771421845940399548264274798606884757445210621430376036119688560163857678258905830448455549052831942877062832694423168899372652412733061468931224675191950815829832502961141161220346198330968120470533259710592602660598073179027927026251788480952807835580644752669100130061980788342602635139428316145743462128170200819635638517535427095907245735574104172825356039563689234731487639088750713953207695582038992001448765374610233115930384504965284538208959277664607094516153015629165160388470248811089781897232193113846084149891302935879750489210644058776154276063132605440393729002943862151498548009102988080839883335165996226230321003063041215920686184612897496602916310753463062994930265704633835650381760566351818333365540836168347854375690543948522913192123908740065651234394796994726779844075291719819314617539554685769788932959071894725739810574265135941858919354184251966673872990619939415051757328086105594456032711131314999642066239157361444816439910519644009628796265206229281640338800949639710690530162417098337549169404899309010355492061144744975695217401160844554960723090165053100616210739595313693891974115100863560900166435211638683282870877750344736238324756552105483822548832444169318163374999049954347201421005442303443893105799629885346333075563880614495444795083051831128321472041259510616260779485432027780624525044995676850132431378669315938109562399432714283672967521388053508901999462538919812665011806173045975774449974980026531156661704057681950624835253835180098383163780020222989251889884338230277424968133236078983485070057835852461869022435419214698353592845235790220459713233414308251659565126827358415904747147805170691636542083025777562023291095431678220641661002615309444071276305209779487180279147011621584210009954836068034540904887191143387288754233378773459485480523040446249761737895925611349614351760197956477981825199939112664326413427357496387619526462021891138322173974213796570673133141568967577913605384636456311702127140772285910417895731390011670156033943924576496448174814852623043275003631319712430775955393323218205137467890603164019166360255018685843906993448470170501806057363386980126324972477589912819218212733090285983038886592812967969674554016326201352683924126952331976157545208986307796695010867480606966908886003619870822649043576816022513072153111465770912524418705531420519226558828345959577180673223007821346541576045160240608301440210179447353676771812771618139380548462590588785162676212789683855871793608763128978351626682576595864560970567200132062618523636367514107439740767394141779004659713921717783193034835206443866250205237185054213022133886831100711761378395723157096035893536548924686587924778745982500157849838032123936366823168429898572121150971041457859678289218428645723963128540574799775793218846801553405190647334161101606424818707248072960745756899167758594291950508133404295745809828780247250040825589596740780611169747461130968297333359126703328540988395429660255923439730486784121092332004427565947392197170824225741855074870007188627614285004207465554562404773843281241996161200355209257736342068791110140803140448858740472378736395345405810041080109203868306096325098647830885856202070994862545973101007381494103482796693175189634353766968487231600116817021598361221536144519111686724588623002078972971541962069044538308130313377918257754598393828789959721791512379326703266000501623443753541408899230988921216289611552429325602251966151026701479537368347401970265650847552441784997175683767421716688619443796675687001808203132349955651032164042965947907625383864022947291628936602057956795982462906691299224065534728499198299928519054713250720001404554174196673878992938870452626267977097755957064544652078649339417760327298743899353496458030714241895728789735619007775234350222981873418957006060835261650791430054266244345392058621334414459238900088363342338658791903814304700636008797306864696890293298650727217220288391805016148419387509895514303789601147228008589315583003022456303552294924757876017704664468927374483732246351697757405974855277261203149722099980516753186940610866160449024232756332248863454605904397054268630154195401588439599560917234844763994803456007756160480242310826775213484275939485706089877809357541523576049294059134874137170124155477907354606344025760837063327605758960113316489738398650569969070212955592428053675935265206685011090445890550955287925517749597474821185109901666412714610518503460811550821379897296107414129586907673297962413978702289059507605315011690050288378437583233224377497960104045824865948896458081596755138819988540329781180507999531998690330145183222224466510876026829819202065339698069414332444540205218375622817242309493851093095592899108089188187147742813173367426154696737776941247436405301818557796592953731620276698805593860705987545211919579613669510922560932995770493247407740159801940123209798421166205164932126963849708268860466677816276348013589890601584070111708242352920976268112488532459309625137407059528315035797243154168081516026592779041390216167660183967603112010574230362001536408943521271755659647704095977294747317682308006239708031728393859997391074102722881406411879320636276747769903636379413057699262628474074945030589406346300530470255487610951063123713420468684048419085704365974711670309483122230750034702356239939876979413328427024708563780344563859113901892712695029560534425593054267464884700068171846768013684196978730671209319207470781479879772437929118620202659041387795312317521634378593414081406781296671022287936252811872192468466538820125257848413720962168221668362636806021540003654213398619512150930303362433033322065874459067419654624121734594694142457983395798961145837525372367204321465358040875326016660307234238220338413333705987912639228906968708678145389496104788195348885790508867953636757977365307152095438127406507953616434142662417669888832716622992265292993990372942787945911020456722558048872448010553115599795602893660471076138491597299616013466336780698597930879280571066869156904763863433780378819003638524860402051941679151153794644160891546071393001943780560822428670573159397444014265364370602317752907950557932190953738489562762656545394643144139558795379834456116073002263422406504130112882582756617685291357781805815869427664674061442688561976740853842765236556646112060355713729066006572224564886550238062114459914764826887091366072623925412087560204566279523288856197864445316720427387151630592900380223974458045614843572642937911561707097093665732839121662909090338881043946244490236086860140538481724051792601450232943728141653561082361516152633310115264221730428156013012910754934296359060601197670280060860555127864722770869626294031712044010950712688602599277552776649826822038892037650449567790859799708083766204969547733983835999637757531618204631076940540081597829833669311881820117648081408982965267096736863618239248281115516522057391473504019487419068350866710678805479202399143176556892340274840027709382047826142009013723401517888988519812400943320695026206293868111913649410345363717708314575660579925396902364997579701153565284984051090717140173568826266825683190562500342976960457471366749015795689171227031474934494178359246025664747910828906895813532771010011611793642483796102339975346679602335751173947903776581075649574231183811212815096500469064826568001039447786517862558192568610989503719001622034568731933193965899022105490820166510590451147775125567799441239248585172857388932121192125932182452342553405123689046151525010257643158628852422038323700966609693850009896439414937636956396220891657509251413322340091030688169174743081549204423663614450477762334326126660720443602053979880115954613265713975330684581704924150609719680079631096486157607322015598334592204087382021123836486543607406846925347177732075795311434815794711650642924732155643246373300580696108473060538618888044568395302241469398722877589487734794877543204548025763900741059662561718670708768319895529334518006375434972538406247498301905246929909150414940246601165205516103113661079066046820428562885695811930799924908008569054416549957536587811521387247260847396901999276180149589604327994835162201341846478148430841032231744168146564162929699479681802469996574076786591557350310064176120961653363037531455489147453915481247071759186635579626468957747674234969386042685437010872698730451788196232113631467437725621296740097969283423474507159595671088490998673549488206658594447966925022136297977847127082625089829026989480183602357546418311592537323422226343370254283130182968901701163080177465519091368022256647789363490581123394197821642388291753113745772255873979651915589397901987802077163293980134211355813872116222793705429969340887744727683369395770881005824423563717490899979168416651853669125822212453140305707075270902159922136221926028706777195935866769035508206874317232375542644337635990338294792810134319116623235971916956170776580711141095032059131470471570015162381446018417691472164473713430654643797133908385278498686644666098619788706376684825562502973498432348477504303544787075145818922012819001964554512802796899726047475736567110862226391987781857149948401318741959092837053480667190146801542586184574147122724981108941282242780928797460311679763704641925425316916025210567131333581396306965978473937254058343089340744890083537595847662129313291374037225179410695136714101272651752647364773873080356214357995682748490572966555166627725511181084602481045141279600016900112174522617017443119386023615586281721317223125980724855628010664278985228756596375764324406608298314076424023033753147039252716599518486875384018929135960194273904487947257548114872911231149412844757401720363968290713752843528188660622533196336694356817892805157940976687493968415212030961505864933958377698759497572300955007762147480876324690274437296667207938244971026712787418992400381163168838091806112791424644248101922690887216725373186713013529810094548608263656966055020481325207011132518769056668841204163369665701274649907520099116835777512725254187492576721910789133579568332787616745819579664404526269872625802212818022694886535188104552430694850352681067751323191006194970690342411737362220521253194205438820914373167203640260317056948982140855242650522783435216023885342542377448719955551814172722218442526063021283114779071374584508192738204680590718589821647014201044198715395204651969123714824053566654021139667776823940745841900578133190100698331142760799209481186553439003122079295975248949946520412836151844424554883478815173004990287394165751000308556715183942943604212880149355200681933555335956509939600356336580255811413496033475734464467447928527776589433166257330390818528437895965598464504684287738350448186827976992091049581962268850091580366693961295911694103731136147383780125062333554408395925460157126413032024447537728485788165167056789296508487693834955747404561242994569439824939684661370895530941227671837357035901741861302099522818718780242507085679483340922792515640290846583485909935469600313761103388402592206559981187370451395237440116034354146097138479454468863404920028273570571411739027766762588079076339030299244793313964538390186262474760065186473377403774715708168325317037281199529591025764012424320852974868620189742636720729548961970754509890479790349947042708842622501023043022125118149467524115682300593239170747404545826224039048035176014012407251069826265526960210439285659201707291499635997360138952595209413758864703737010954949477578989638118831695148833326928575934109372498248838905666532462653705301022434001563142919662673213836309406477754470992459497311298789297868262147055096961277655701243221218081425605140710562671927513453642607490488780196610763254650988383848005471579809994175732060808145027691837864794084456267178667417145941618094395682732277651357876406029708724831146415695319897321109924259220477792584319422885169114890839067820803831271449248796973771447596359050620245917611249899609110288357474324411142922433196882467202347035526188373093285886443223109337630615600366506412968918570398394659696775413104760891972666858842039923961474539857985449314262170145460967714815990277631274790752738543995037423862748418505651309176064280258294764088803506021148900606797156707161779861482426525621027642002586008362327240601240721194797285457706112444269716523963817088169200493920544297015616193646901558140302528758778134630769679412069376239821996581532014462308823321555512708251391868249353268626053517929092251245209214190006480986757689620990977479608754612763895102796308987034166511182416478298701826005085051992819360596764790700968733364208987155982993551848584968230242698269724780892331363778329983875362217647258604180889620439745442742306471629991099600362820343124161342114482976019202916548344783329908358397937733982292511625410940905071300521370234402596899754946469004729991896981045988770584228954279868603707279130286018683444935656486563287629833633748807179424826676307817743387276222860603039722542576752639888485570639412953292799681218213062080816188097694466179893752610775385591765187549633918093948796822590213258067521928445259254863082192823161777398954912751153921542570084641338933313505823593992173488183494556274322869777570182706172394542278247309351952396255206283802348910114369639921366337293131119142567701961403328114381915022770926685132047510331205461987348566776211646429393395566633453338106448938217493028208348279267347192790417821487381471223399391371429441411327211023329197429296749000495841031831994784126924323330664131233880492884346405305204658328238988841760893609506718616239974988020936258921389583730936775865588378364693730789833753930979637750284339045875623003198666982735489999827549822709859769094788907501428091789159280016175363041015397179595928707120476304061163774153344136482421471211254667875902433524892424321529420410006797083398793500953715579921614490230082972890249017115505989108169965054227361710311452412764980906043740570702613022098711418936604325028109089131694907030932546778327659961251437176806778849711274845414619168597906373465796868166107833211990482530090855009736495271673710132117389501913728677304619309088558365554879173372754965770156263220202728052726742217246209863209553617024159392917363125208216062087099158287774330703402060188481729334442652665585202897704272091439539516639117929309134732769614452798795395691566967931710206423253561816638842590686019648536945808047705406657171112243883346743740550284944047942067111097341220046422582158460628373877203508405416842178489405681743817160144371968461032075196981051374801323913265804079584590568837767401398612726499145666674254721339097655114463856108091373741385703289629033246532439005543998621490701026332212176418491745827322160913841029021999103977084927959127804388238529728601634101290412269935796273552262309530540291963824157566113394195389576304144188336095144597332565306813521019506169349552798461644720478520446695850713616570921843548239519219200021527236671496178316766812962845064417711748155535322218227863609852305662818834731002811933753470465327246531938012297375651224911716357083647723948611344456446422848357467623913547990189956933803648570340775978885878100091667163429726540469085323760672512897061661961266162715285065684043311403852576921197365046427359781515597802638342140824378705346995195969997664024994876933322574530259203110193292177597194079264523261231449781299733687405033432086974610820471033979304081337590659791119831488443683368290247445213351389499112569007634230195323949911748555850231993873581256589858694975112834583581251369171800595956154109654358794064825706317355929656418764378688027599539474073465688900851731258963814010378998002853760291173250279795487255308518952851038744129026034095848640001999101779070912237051364703846490831297685929151571774062094384746519279472813881381667478115235619048451929411953689277104628504797367678531036622470792480537625077395987592345747925584356789376163173657838607078050140420908881633362415784200748610473479224465139047751049944737199460209248778805752728679859430260242292573423306590598331892336557378822569770526973018275616471461672727868848250021680044459953014671715615859512518006609327634410836828502827078391516951414819061528787996560616231160586618282681670350453461885659121634748730129543799924201410903706480492531693289410723788155943004849605808271344482827997183737383460564931852401543608551843947960241811728105726529196466863413189745115414280667720600912695321545931593447323473003178215130737932639340603808576455951707097692726828560427695774450016024832263310787777273573603332298056230488278065741228843207389191915985427952814369369078645982724816625684554031122919638204914600152604881396377901034771607800274135102402829330821471996265771809362374310244613154357990174563438774817878390468518660268698724389493777227953403114083397238405967367752369818319095890777833145365863880768225623689475520261525091138184322901083184864771405499062895539513025299880836422041004013782106805928244739622169576266070399481028514931189311010131876776613584652433389290626505681687905366162649042821645515216148834554735644707887177604227313365309633366449847157242954409924553192708219691362183675220517194098364025917000556165456546724091592992233046404168688984344399272465197599099334047377552359249453468048794860361368194238912727081772059963855359113141841806576267034605744174329062263890280969069327147365055137107544418518815387502123057301616242344667842169880822392402599136914487503035454937455675257279944207069982795482668997609596288223998418233061242398092244453544011385980818226743229036856831395603220447012777339338872881430977668853017580308902906308032635129058813978755451000944018266459164233303922310591857043717606862032847409071814054894850445899570559175912161052367823228064885070261460449843824010956561406900937344191387348827677559165853109859156949192009703840705996093197052126707456124230863253434598976171683082064866287868363144663143661411570014318957646663597960657296937857319207412891348694875691161174420511656686994951484485546594751997588400451075169715773790889065593474431783045973976140230473871152768563214298263775687621260550921503588547953866270662881336195868480625429746526882662965570556652778629228051550447369880685307627577118417274173697081723823041707224665023528238252460457649752111538566687762380571937780070096141033685769701551866150966209515195837174360600338715785969902732530138037724069085717406917237292235368155451460988179577047037036690237684943251194692511455484643901019776411136624940865651785935284746556573859610377377267487381137804028030547066149238283168510511346438244609063291869074183221657805035996467359448545815940453743358773926235141246470549510282210218637894120394596115356361858050512394359641101794254951767083234204567442417071805562842396971507180246114110361057878699682630248623113626010688360420390345648557429707500321720143328663261438298710473966554025698662516396800978369775837672222674894870223537607261105124974429270209230052383470894271435786273520086901956072570510567042946100866862564778238368781268767902948476989342725894135382099744270188218832924343973656717027511201879677675634091356682478327350434366960258506007783263606462715511266841553222209147092085552576698462263088907876314580531957632459427035100930631046691219528610399655244432966378718401968281386928584272897966090375880843851055678719825793588893702208772857031799489071797203878332039570165559871013594082328394878418484308416990194096712292077509895578000497639656594613469838439694448944807508240794580026000845386985300632596297236917869912437637308334094867315114102224394219928619173936016604895384851335205932057831527628867579788667440240959645623100998679466176891142718017008827473601610117564713594564347398129574038051726156296190941067375395576737901186659183288531546197820801180366106361239112288021487901872018327214305102432177415835841720567584404602806183343804670308956868664805041425830775029061542675561398413456911004169557730484248195196370775695615522347466005343624863086185680828649335328902523776627194920816367215131895826568890483656661847497873939579556325487594316784643214178428008832694182875228494789822451481033649580589076012789593684769043109998857942130299652690205723182214337020744524607454367617364858339676767685248085976139517879016102850149722039876151648794316781789297361072584516714167760871394494376535116379111200149825212364921538369357107423568331911227895834542663824504597523192537594073047937724174572727897671497973065421644951804674099557130620369083203554248272981418911251300190516922446925545549536084703981928516103719093913108375671442136118069190184521451111969030003960291128145774080192647020223150126672804361274984169131517216727426528206745683912236886657458059665418275387690082917951152819039400572028010561312989236526973040538533571845596593948581655208940464856747367578637282718434441369421973902580614897813526510925479119709969502219030243778186428804229981986734927917240575151524114053130289830314558477936190011523600025717305803286653000525475268718033029793884176696822429321306632333395954543749143363422665580885241828846433766346149672217508898648989434127573238488301767500678770061567732105301803733524488973915840333613875844536706386084749327320521162532517128564551776187733371805949751534169628184222484731808674474983552128764686488797463316371483528882385093545159059873430166422414667452627140307063458598823268007136810793688227296253700850341035144240735380458519675794160695449156561432805785423842948293526821431986149932423118777917464058443847840870164314806489716385030800523993464860609423498514335995681845291648711111645263601599984776663765327837077827200794335016292391449478186715046147931108349509448955788377233496189462448878598611253935739552872805384982446864368442356505433332062334502859463967266777981861858022104747641347254096614811125377984451579831334343722062934189855579200691832756783372055366394269598272304084117365924687232197365661378706594637796515040572912660995753678326847112307101078099335863637421850433649425121995965840729568653424380233484504371542671037467336291022548346890002039041470556040026044273009808460791760550238849426071446699910404784591142290358877955316419195546498761363580609830335374712467833599008763890218532535947304377752295123801863731845730655284592630864367908611838469645991751470329058425554197974659348471479104124497502869132995714811051220142419981168385590079100879750393810909972389643703715903254695568669575456042993454857598864015640462202962299603770231192049067977501487570173398161808626211949642838828702152263848659610700815951665973561864107734925697214674557257869756307123891988947930424773374061762468563281606215630719934885794697814354495340641509719325735405122781409632613610922621778244026924296835418149838257685028539134859220168644328101774814618738144751963081096854909743738786169429950819845758642640908528407389522884694433162762194871953207288391717924691371628986242887850469483403370868011167923935733219546713257229455733088561075981551329725717576297626884888109359093648606446081681564298487854067737520794953274688907389623429858449441665818393226663227522251575339531759647453281515743893590882014062508222701471713359081801477025792310530678395391539877532163297591897461952450686912862240742422192198304504081675065927336268581078341858722818115878163006828410105229606289602037002376589332370464683670638541127355326289542653794324489008014131052764373521885317558863676478347901830606253709667199193804172120220989449597857767671354940893951214993192946757997482584678108472799337668290462029845861632104076500386663699884929681125357898027362682789494238364797075424921567241209504877022545534375445072193112158942502456888499646400266104774806462566617829063359874023841322877283532221380423915795794980532125574447201419413213591844518615628101651725559718823587457407920343507669638384300936566972402026198171536653301989889774244405637964622101832707755860071714329074345859193207989963576335366846199618094815819158548510848922986881246600731319896262155600866061543298346449062424549828195471727690203489149138361206177349710169250056892621810311328412545636516787961609948549076483487715388824317870703687300056548081022005811530702379304828897516807033561376968767704265443844329707182832943415898588927773142137322165212442246285354337795856258408189344070849791679688412022733184931401596712123046842766967258044745013504758517014688448163149982340924262859934590151396271586894467993999105537952064475388716485052151566372560925723228292998301044255848688365480956470620147916111883708979419686142510406006743992477479903073012515673864482885288431676281396313196150564980615878228361016245410947155504770881104754791000785956952171269582072169015306612751835409565970562663487546763964227468726753508385742413702832007805014884364000181000452931323481766538319617274260120713043600601143815190710160084991793036757760971900570445295655688437622863419980673954660853238355632107968692897538852808869312083451879819649074354405027496295052792510684452153718736349693356238196702442888493408259364280438119551045465104328090982451910064151975796582904122049001456185103133754150528179369453917355349458638218948733172155212405541268929665063977814957738119039246714584508148324095385893089738644760424148758341018625649915173383222991249813568445124620217865042350532461476839370156235955003886598946083873416548765714423931492554368787210212553230945313284425979629894731651907984788552461358790203111150103715501275745721769197957331059281134886952653637437079028412633517360587316077742046603278918946781619260935475907088527257081547190350002325034689574191358691481884288157852401391095735560552261354236692356562341251751706481734532136744679876707675969018610140664687071845055500545706548132948258168906908889774436994211403171098066638114932447166717946247948508584064882320091609634980567857418373299440661543241686337310326688082228219681242709084955175392453001014652821047645084723531153643712668979652244778454441978527417522051155177491618392027467964371862250333407106797587894142615823343699950989850716254862996439692863873677813198401705276025846757161456890463842195526735189003433211505370460491435553236838747225571642916569802957473797549193426179450720186187873388508134666167522871732726918485760970764598863330421698387593304761053263693891000885186748646825270371604605710362654912855142912378483550779606464629954393400520292709373698823885726680363958167343918331401023530503387847389826454756556145585485841333048261836983608878494006334134156984515756935430748802342608608329756331714671852195870125401287776288114034033449060368328367589921428652859991809729682888179848940975902457224223689907826490072483068648862685343977627340374484306288307192668339591532857878879520858228780725109716895945946842073905128951666954415799938330152173131460807543356765894559850345510455005785517583868292149013452839818761943258687316419209815767735742281772496126348753562018562512475532712417898096727615852380563757852740625942374772231296203891169103808991622823249357894022239840546810644838890841581264507135022412711186344549922353978848587370809712446842766803766329626533574733921963447043403285043576677261421039132785889037901913451613125556269015632531474924891412966068111148840965676691550000311998279288079750466875773857398990813048957945759304889795899911064515678459719788321104798281468108401728646902307145490897401362563851698556062568538096933370282457208381474584913428151777900336823882511201132642529611333487713452857152237040656686083915559360003262887064723538328720472971910475835633076242165437295418359357878735659112842025852954649462850245988551255665343657760404692757028631878745641425393107664553035152930108896890715071729289577170805610666932023379980105736269167476675210487660471236996047287826230284118205080872377807669781560306606824912450977959569664542576093168037478554032765978464018826263701551606486544571820449113555801252951756870413165357583958128021218356740135739374606893318869588512608602527450845396690499830438977050401482414500769022917654090505745985239157694644078504915211159627546937386232603848957994267243648595919479297289923737171031788556478514614438256883272455744387199625659243589862932323725582505491463050783749846314799094487472600516603926403302213860541808471956876721994024511635340827010904335046402414357445583834017588563643635404154286627634041745118789941214674700959857931759200015727772422840508532536361403666395450915832028611622231106930368355671024490193670509254254882710382749129021694585047314783334843506510182534913439872289520347973384354154630501437011611225543969346683676677212882044687208683976236530433190070458125242326395011027208406421586817493566429174471358130469894507410238384636512476913303062752162471382406065424852713542064724019945458491153961027698072601561763272982195642424170890889948582058312188066616603570732952415281471877686899914574052307604521434175095340563530673966281271201299623460988433255427972717830667383522334774042839462145852055048516581883874487486441567994436306230906429763845476878365695359437347750137704413050878909708805237890658497838661579792871878836030260917411750488129601015080122558353242397848273754164646494359888732144540891313721391683468257771319875915822874923688679652001339604395401696155671878556924632500466287787048170489969292899953237416148050637076120799835059312849681940605057819066003196976281167854572461064624010581379727602880430072989838388032238917768827387360358525676335071879423462521707912221765633775500387057215837155730513500656504137043395767900185579894288151352710993802864348324651631461160952489283167966144243643672795539286971275197904445495223119887423582430390853332791864723152673911713430501164419626078391446426011818749172966104634122959821890622755682183254910761278319307684141296077980818912662405251729572868876711806851867965464507197784507116270348602659656066528794733199029585581112446133054818201887736647500346757105831892412428663698252701439618537477452355620851469023969719386309101140746253837787318880105016934346434165773290164990062483328444755555837643920186368825604347136976650270118161238734153787790360680720237453773632697935591377968762915088873016979605309310985649637985466572144781004822339561776025559814532726135144073445925616183090114086180981227159160843487097439672191405439626519775498074611945126299538187626945140193109628053988748398966843850437592007947750186932773823417561734692056116626039969302467755526468011117734057875868209779859893118192521893398433702246456344003510519011530550025313962306781825014922927166677252877324555101663106236125741140264299920701769234351260320118149526553604008113486446765256391915945825066571222129330744248157906224213908408881135562993309243780027271268640033453886832504634116259747720160407024831230938559495087655158718494994271711011527443943732227560726848667363365499181144686393264942670180694285493345183058513625361530021263555636020594451970000572530054102396243910011931527228036888220295241863712495369870135484443415842395105394880057105496603840160254331100376631222773994994302757482124406524433301109063071270306438260621992869146129181493844195041195128712616665600638787067235774278033389385340424720060253100774397488261048342429262935217630648322845164906645970202371428820043521814597228330104352229449234178811568666302936943867693481053260579533359115765665959967487919535544177516549708855715418266691488827174933084348058410809545793803879921961862698775026279255389826461496062736090965893411547223712729320535031618486900274028036999234566423161225153302340536176071326470634394562895277354217964084670986507166207418882944979079650202988934230822509467335471798120588720988865358125600974500031283955969450395661542832714179556882919724104335351448720074056118027739723547929873630998564855769017359095504608011853747698262436341225147366753641297283549232445455085624044694037749894565969022968137487277682350399369504020031866989722132715000779039771117206312707113749966353780666360782786580994567579311424756252607349413512442315183777137548418714748565686361212451243122421293134050898913268213998765027581602963985773302475424247553182066970283285965817832641505788732055234488092848677294740621391706615021254580071508253848632921884849120765411158186907172065378509599485867061734915016262811964636206453977379255709124139695870627128873888507664414738240690122856674685862898665061854576283392766946211790059734339257746483549915972231270983545711375965329858685611501680036314881815144215160309984747446154721425160583024769995008964760485327280603712420128345861267239687135184081186996664801848907130351171612388768061201445808752977850724313555394513386544396794982294682887565082823929442734640062576408910342120545409775121390730899806373846833624673697282617492324823168278673994766189623281824984923410088216971144438278949537938851815129843836809365803307898722373658379386655986596058602708856078696725403166009751416558283049492027343222128391634155432958742228395726642781265686606030244616636777371632767923045501496156144745620443862851574986008015032123578485983579440419145240348763137232768488455780315608306792511284144456701942963039329461732029134385531763108866575547459653023038051412222571812937524365079726563159316276059447142409847134152382065409041869764058065488650286230664039512334332483735485133612188409222927201343786139548956510023526343201098821421340009830000788325242645786948535919164848868460802673660249575297606562746423863014290762904016840178640501536867546767728230551330626458873631278657639389058766107811196180383534011754732043082841135276952356256888221410383487187872318472477794632913635170532933094261423383482400534636962268006359894718181596233488698620728273407340065489653221174943078910347039269674623110407365749878335135865013460146320885861435912427190103165960086085262836894570116940752395830599150696651191675312142850003650652185375897939576867441597798977209566230193181854945526150482021686871269228281030654533854865505104083234952273407179934377288100549364981139006246612772056608772470349416222078520859892461225533309512796321623618273137894645589485380600685931817962094190162092164011366870657761766256032930878634780863016611212907042131452180118286170380893927825949203836100875631767300977424791157182212035707551553649617112418776683537885483737465264857638959642056769930852932697422844592467736388998797222844547203300639689247326899740512980057888954826713414845494776078198176173032170563034666110197282789165019618655472322301667879798174080200269873000470123302864093192323374698546299718776829840777379035322403551202660939342870230310364404597651200947375361755352291705953204489556883574147883888468827048947490072144012266923286982922322824823428122837720751972878011653480549021625815512081409251629281583506576226340785274958428001089028021381045986270047904826537649841840843665274374087895684905319303407025016024801432858274369378747525824733675840961755597114939865955810637776551507390607036264130647205713172696251332693287904054268209089199985305594905923094843582479128915269989734496993914892797184310863588742333293535464317910262591506193325299462251054477781026819262277584183516691931639441880787112121254307127563842705101038626506246385898889268728086114832365206196119086585712895786216212459755206728380753466062136630889908181330763457531549508600450969700800397218699589276068288141358210181166828526662407857160931914134729412410808418946162573832569353903176310362128483067837202451793423131785296617010734723760912456798937258584500035995374621517843836080211397050117594187248726078511978464732878993708247158686396860737839687099362939048880972434226033204761443227447265720759761320094337715126646874796632615678504170134328920008672224387799417004146575640516744427876216577122048079066908048634337751482106370296027238402557339488305219487166865292977739328714557151436594765656543214881425616674785269094410919366026133862683589406939628169699263569069907974128965131785471222678688178803324539644305227736580452458338997417503577274672315403851815194089526317945942954357559375302275752274325629081325171418389744810926691983205989273288898445090957658983235051291731032440891464019609329929901246326992722961091592235093176714550578127927628932839090335135026270162105487344778437376090144575083178464925543473477115817641239777439888597856801461701475447548095824390988407318691093174381815032986402469650393109652310193660297397952224528742039657897785447921641333153259872748806856642361086013847920836063985137861018635249748073864962763701762764109027374499904412942237635523887147029645151708018300922498734197691845915711420482241192914115861659294442112531199913770066663316426246618792841946691670458083602444597086207386839320724029355373673088489815607054485893719492884416793493936777273885171489325668379514761667736563075921992833207105943625763212401032997179575520539724101455776620229215647243781079985154442380779780315555868039562972834010934660829060892693715280803280267845992196145324469578731717728851043115202983387485676840629626587141977673060425105326282907069094417132577059027883712732823331628657273892933344872851845524443741625828555424935736041686079005913749174494578440538673871033926011486159259637287441494098478297257213421221006799442247976797291580996702403165682716972426895281456139816232745282082434808171273861668493850671697688052545825259351077145861161201908171491086414226654100492823746177540782305319532644426236104303917718894970930168980752054435295824577904210773528344874813765289506740481845610189176889900770812138540657912987171891399055099388145815953541399836703282212234079368077424892987392044320117393469247576095921033815105745676746165895753765836942715069883770175824542003591668535014742895895183572435625889591672599921334798667620276700547964544884233950949192536220085878738347542477059114519787520113294802843755739122121284557457920780515467908948349941724978458902748593999506149469860122421578529558201781516091597065814110005758453796773635965506774271489974142036834649258555701798972685000630509261126523454570888889251990606517512830991481392485156672274045950654753781398407613079110945339318912368816595444279672805856623455682141567384727456616947839420208093307717800977210268791749249598201642891451195215806061186510987311299473889304421448232441172685922639983479525417821436843701940703455691313889655900532751202358685743557445523175773023583865410930338441123921266815272662591814689899449966681103024156747280814407321996791491728912554042206721714280869212110537229058351127069058595341021398556421711951512381440789487157228556321908487775721904552995328392014258201433348273447523162283116435650816973488756807020992224710455243729914334205085406360838984781564705706442975824462979057377254934765891259876905229993202958216547994181971653734466343283381157947864821743473929468345423955546062448658042450593452128083245462365619001193637839694685970411086585410012874318508606512012267973457843173445631292493031338944683690281171274125555953965418606816697692495319122500187923880931667199303307183811197731138875786660585373398147278077045838343314818360649632751573688387936283364410049139412499630463066337049205923785680453337341538121160942710109160556927655046574842382637578631120302885525082741951283551412813375229329680707088488535571129008257363472070677857336214578735293082229278524666268024785124599863210858343429451383979175136081061044354512124377214102353814608187493739153841775686725751293366745636394255001856705022005927494111455765348485001744170430564921732666708216023275904503308043798606050256312900481807260624284641305116346046659412483328364572619577219397571317561832500417566966669423412771520462234097411814066470638710293801099719490032664829266010540454957644311701922390521719339056345533751035738968824995233394142279018663738094104667496147173363950905798706872608577915410361475875209601000841212494157101840574479017180396942112914189717629769123340975852051316914463746497691857016131016422528549668150350831509970619203401458659237668013395922084274766074451971254702040784370408803786910075332166934738181870673623283099465091011358258144876313928563428675100032040248820586228012395432179111346779346049292641457688366662145403681396261890957915190097518675527684836365553036731510686074971162253558802458033685130294439319563957681874464985927474773825212736922401594800574281931549936291963704656903228820692325307727523826740304929940272067018708384315650680398330858079263249004658237404657154206732549108396959552322274844212121701924577800413336545430601678379227692892811040027233903899558477175311411595251571121829235363254019689559611624077906602173324871257248241327293429383715026513064324541669461343576324041038872456621727091844783765657882789572649419881632174182440712704895819520905831089992062588800611156467556324252164855088568951745100504742989748985239335067965155543494871227067834508532974563014558211163120070652487243755080997586161638715351571948620511385624159550761669701482904095250698261897317833990583523326257599436775094491651231215299045844119203531468375798876148629603824082184454595981415451051384395481058109187954327395995374893562509722697847104338124728247564206923023877807762084740783022392448197432166321288858756639556165453476459981081295034174328002148684554357144151316584410457713487013363932287199792302452563082459932487195556008513415598229837335781331180425682626762962355501487527466734600531988399580189241766480113042610837759528365757048033374109446627453880550724465782235474616441067217752021895264875546166423401048457243338433805379346050446005065418936151994869936243403110264263128866885371617301017949063625001309915741556796736145408139611763862441392203263475764060064068976211311443317797287929187502542513860796666601915250179351140709728433581232274263179230947350895964389941077942606465513024856087366872297686548799728398239002370944857011618764838535226362713786264005720244591181901807008811138357679309005244512456534179250017227210205673679362362789957331823208610012089924184605762880082869073809288538660608963382405966262505123980942130458559588502565639483105224270402946740916031628638701633294376940498430415476341519205574907201042506170689098485317512269495983802294807933758483267535949814311694584865235236565966631579032530234364789184942176257086761938575745733989696406795179304220825149947104167559653628293698879855163482857606826666929486177142447755148160729424660403138988368652858583766153117460922809008624180355073445786948517197693846688620642235169556165371081346000176786678059981088948521306698577059899875377812902424808223462647785972817615123982754508413974490035128719063479135705391443706649874355088224893475770885034361248678649571012316665285811076532871813761761647429814043427876146937137862363316618520526769290489922262769290939279058858208385633292305562520495188573814763779748165945296852294240235424447380665967096726826328441374726175292740720073177388623080304520547369501811021506859624112797077653158379892399688650195544439688905379312796394206809408092952519370530440846496855446471469424964015011117552951547693875190114094271123469725889378476479320942492163333577553053911437068455974562320154829482162028224895427365881293604565812015914232622096297159702679323501296291954238509872788899038622838896091421645395350761904474535763486990070660024409550529415925744927833983709447781825854415379607983681649521312791708877968785489944562401533652220936789663634447113638977639850834707347720087133388519358053941505033918223190543832379753484147135957232426296063456032297479400109391417679526716082467259456645903309495339054225823432833901463981239014328138215580076184460929609256488424868347764031775390938676836290167753335588928914137776117749094848641427217975223388208522925126543270329969963372791576054771491719182597495212151185943966051645029447331782639161878548077912788843019918603651954446541294948287902117928746072421585558658589036539784692849467874895342639186460647029988505295882753100819712319697296409111208487231959521650417723427443398808436958273666977007592447042564416335446710005498795829869375293579491259858715179092288110161404898464076418818096652370330865534513994467219210555314585225544551640517537977493839732516317834848074664452794784823741848015079184326079414727506722293871937909747408926353042118622902065411786440077730500041701402992749777406818228150155282475475291624223057862400005157113113921868734240471702738690626090030062963781293187105885014803097994341129534986366206230400309813977124936729327450313600646671549311519101161528231685281933602039814119591851434695730613613486908695329141306344871410480961389412392836272701149349071112413754248176670291054226766629222255978680272612091793689312823373655378912779788592686752446304783190517396901094528311712088955703676491375774497897257320438518053456624581362634182525747589893757114173615638276266845732746337428104057166824141170346854499807367254925752012388600672379168047400836042828388492071568078364646523486933244412793001639637978653382828564692782870858698083456599834949292185658083185985586397369758837189174514879668775748175288996805498914196108602012269108503363552762282844962600611230911490309411138702556546754328713256796887161389667593721464038147570706302650872806122884128463159736289425922202162373228656321531313159710586976205675090493700388382641485159797608915611142661055396812612175529894281725092950665347950384056740219136979012080783819629143356333615790696217268483035412981173941930873250321269664121692217988543284840785461156213682869581375197753451060452329705083947929074414505129505269983806113768659998621647177925192294209917479168326566481856053755063379815933164778867575943691607596480464066291172802603397800864713577432002559266002307314465088229677949577049763619839344245067084535502375570114716510929220629930129449540233091340159747645057392463302156750647418289880914724879235682715360823225207649010412747296923225981762803525070979511975517662769671115239102043800755636132479582760797005047362322240884540246731995623880142832690899736942728740968791032584681111786265181481313289395736855878731034575475135686703063949694051629635217757612695830490990431640756744961880672630523150446123493766837504934611718501394179346537995283441767947491322800023194390944182486049924986322986079965893575323140458794065876888879670920502838823751267342071729337378803310393217170198461647440994067772516724465847590954718980737236078181762899409480826933947370050438960722774640721650931601004926486129604290371771067333537480142324690069520490562624482463749569121134464980728407874428836270866398483461857689527454668219927488230400341890760138859755757799888111372765178798890722478354984756295279357178644433818181097777349865364448002764701823598076894339563217280934372853963727136555167205491913904854391583373815493884778367860757503876274439198563335860793701463996652756138124869834320840274798682687996641454496237395514812174550239413807485927364147173144882662796988658007261272959616801744851109038010930346512941881425871960218866198605343309246492063702350823174096323648329500858541078073716977846970004278315139179662436164224511424516286880773426935060046312013436948292440556973350138484933534195856917048397250431779681881009065819251051117496880863262090686202977739226701505410727294477439771231407453513887229900064247862132350137345468973043672154283997700689148583671699922363910152827977696970639605849866622529862815871715609121068814523108417107234431376560835831699398083995672963661410766440940309882045912759095225294186800118765669518517554081191970422094103448814384909024471538105825715910528693445983947626997234106668191445814873047056905604722940893823934288597552073003368455350985337368320610479523242566005593885372337348713987621712543630499519527551936042687056374452828896304875046854771258205609941237231227377336026553175537891341430572556866006158525641873775615045700287995685500706907412339734404957378584288864327825890279509954985909490213284553050097241957268079140308044756304594931793687347721423626733564518190694827867282074106597843388863950493089233235047461400894417705185798995493602841574953560771789233758665595442812856144090161447180946959831386682392068816611738949792828900119712254677548995149780180320083558375429037764926141359663544326544094381552647585502945721069763153915273551808919925311154524511277128829651842757802643256091340192806850967755048931898361384625556623672227502424877142618059781623123179381295061487814583690660611830494121979952916631287961239521360059933528547595718223982670847003610991634832649383936966869997361757772392516508723593133599822423534407131654521954213058763281693809721495245996893707593312712322145303364979784851002806563191020174434982023227590044282328047598071678408235231420566388266062942819064197939215149314547916326218312730656047309366827753930913508433007811907095638167316268516886335486992567365926617645729422719273152732457549299834907160019544716107674731737317054254370716861134813746995276208016594956208158518046544465223537627342370977622825812972548034128151140351522359116139921811471615036029098016661831086838634075856034803202215161759192292849133355518536278100302412192044441854786185573753555937221843398526982228935239907153376333634511115981098278178021133507266157632501331162464856454228494219687721281870955982626058452897508954025310493610017523112204334160505077339675801108326132910061303206551378676486408559369661095666296479015594321237132189348516446670166008188707012547245888518384487698567098311436410259610735646203737693253270046000947508156078204305276376229297296984553550355790731449489956631300649853421496658331104655077123452570121628920632267291233751611189892663243745675092999213148422668364387091334218285497445275363682003136473794139005954640387165396286978670036548156394520706331687139644350569580987572347886874904436656730875986305602402947596590639415188374327071223457828412146655922410880300500780634703559250096640719966059492798672187612902497103713051731872211167128987062487306045822557976885595781607421890219101147575252249662505298973653845574705907670200374559117267709747616967732632456530582760819033317298915718522344032350980803451442157899965368896632542848165172417230635207549688636095465317463172135770962966717964878346693853146576453189476018671649956690776564552618428498331809322913242236047234323762815066942469185663385530898014129078506064384838450060675421625316556828904693466824549732779232865327170578070717127834360409952141156361164548506727040531616499805186080345787664654722853605472913869506147507890891803636537176291528508657365615552518121417177740404199078338416862351420496613416032604279158324562661056515252584325944521234539525560569618430263368478640555662553064035552942632821994203487419412081100331665087873637336311387415465535937729441379888606041322557473010660478997835442665096682196494900498656951613912572310590951579815555220019688644540915368250345019840372017872931596485453066816224414946303448057620692793472002467621072174310221562137024077316975784628822136091107402257119721960083307321990754733299145508553749247643774468061214049861844577110263226594655634370593137349303033800445894875181078260409759874730026505669852033146051751398414720708152963501496077381582327932195095854999054329135955007646304632966196399401337013598470041721539543766559718132122309155915146579905336466728149942733703342878822565208076288925075141395719958623824133718870696777889477386551138621967582515142815412839245084749769079324270732350976057545953826442441326352321395505029286287181704524644531188647921315568568179832733125950735055346130527839695254478142371568184669653927986235618704794336752663128346933282639079495955332387846521746362585687509372644061083956902953409966016754152693453048262244919997553107491315536168513066312270778561117405643510561309688363785336635414905331859371440981835282266751164116195006252926857283613646694315088919663220842855078442418508839891279629580241463591400465382494791311048155061806626847422589706423550649075553776079785979036075387643472916311805427864078131061042810521735217422753878019631565202845288776373768341168159765235206337747233014250324883263761892027859640536087368613782144255297507180170262719750346002812340170201579883167788414612585188061679304650573209536218468148617601858619026528542721464159154848441748731471787377202647954882192508547441606060671866551634118073839617484294821862045678598446799411734943685973202630335748955943991455408001095885983632092717103274245477356534335579591638081012190473480268254158277145442896756124095801189998603979071381359864501461514570255042513802996665737062746420280567705222675605367121210002120541749502225526655798538759005157477787318274737802261272940595044519818876047817978192634234743184907745587718082327746557061743598579227559290430031128351778686579593953518779053154633615224325295101920243624965266615452935711540947998387225763931678936789867223655462735291090577592085708748995032484453107946112273378746061820063296655377265032807431021311129554052901352811828805580907251090574261430189277155078657721820004376210792902469483340973181200922766664397938907897808405315397722355699757214425006905914729594999254617281260545046705983319349017621562428369927319920807615829674090446440331893913747729870263211284444452755884518128999192215657591060162452797066911338383182608924726122839024525869490205065449113340189776878583075245391929971622920985355286393046981208787307290094897698787888705214562960971655134779716747877941295042774659239459226971044555063028250096202982223028298196356334782920927755456188954080102545959206874624206384247821871312542638933884576276872184809487622812790089793701592546259141681204164990969484345474855765857959742072829383505569500115284248699644901467228046239766535713591964242375763964509924493457629274093503650909515022739429730140719352867613731155307188782781260831132352756463176428608582033232031466990639274178263470134524790831719417934604760749989804992740515504680553412468664377274490621594852134998098076898173957763677288654067506137421293319364299948812195295590016512123813982043158542770557398591169852369783054214889538589441569830159366966427866024789937136936972437658937540190308831500006282393867009661657186432239457261268922885934866409638093075773749125800534978221837004394918007944398221971091055840514609313195698553501645277410714489449438983095241540621550609174348696750190197372787955873159389916365211674046657423558755629275703528950383309972900757785431944463952380814398234679730110431387096022223199226084504192227153460755569544237669719832177940197494878546344276414048690075982273584523177304634485987085491295567794322201386687186986708811678127902942498390955456860634779445463502444869168421557345010046673600554051039707576818152849769538522582061994426756593725298797959800534165166452095650366824983736676064011111626065439050126412376991635512442737376145992387890792738902580804243975927163419093653666303837495891581671466558961104179699654687957075539373866339823719745339626439239292289855910245330692399923247176850911491215187660739527268534706641937233513441064524391395116093283489634041493688871305758672374245522419983941847771826177770875389269644878466514213381253128958512958536814469224901169676869320735639770868937062282847101022009087272556437884569983143776326141286334783290435540986773941817332738079026887761619431370507055264720672530150712267947900915272746682717456364923750123791348444990354567718513091947219127634052965163372008018344645562965714261959165727503293968691411185574120529263660153703001828299738403353391815402088430281949444741909439693972931648611342580690941862387988954546192078862468852544408458109625636820339915513287229747620198038940943355520552570891397750805589069148936555921505445238571496148689495987910788285464459113907656944038059546026698114133023807786931373156189806002791338701049031602514861047235720606699318868948019336180684482704943851732707150238691987030412517878483287872533724193415330402873053668122372039465266168934093097606367233122400909743726603319917139275475888409469767202101225697844427325681360705559286171154346187900145924633078902587681732610164192700844773853619716547350228804283253401446239753426594419540287455343583409896787184788551653175577746515473887137157506840517274548826029493044791069069678185046844132900463714698704444137476384693527734748086932448809117763015371894824852496482731790243799274411271411004443805266786968217133311703936221583357863271477034949334938483896387336989396383204599303910269901497033211861652215714357645102752913020069826409853372568829747614607304106740755537275065782931868786932799933796881097937301165149094505886302623915536872746287398666026694943834786369275555799576919305895114568654613914903410115249751965139771875943533124545830334487265856106583323914126582268272980651660439826795055224176183801539115381078473128281183224004618439278132030729052429433757860951362933503317083601612331452250117872856507703352265305998216141840069777591403856410345867928355883808671806187712028228115469445447886086459950558069238540725854210407144782039882224983468056049865278151486987763150893149003719425740539116906095757306861085792657681474330297162470268675408863067585483207834553477516662854711621705515328393899991480894726553019840783142734444511576569547810737729618801906035335750475326924604343801534243042678015885671178405363532996607368084067623184277991934444397273206292259533748179900195397454690186142800062398685756424568123191168486604298783355621802081229737664727405616397753395971294223374211678764921331813131345526425546818248100061670860899467988127335598326498185029273081779492178308421000730544025038858911529994401545864121518206632871330263873315233959447083429553906296182920453631948275988195436010636525492834681848258821828178487942721396549694088499027000880131784457908457779207299202826818084744465154892499011918986628760579911707318748021478293246686140721337299727993984578482834456742468436750480279224477046692900252935108586035407558780653086369596291586720211266759094077655276156738727704440993131145371831655569710508717565027699193629484127737869620181582804411516193394981032186275601046611093593539989599572035076620429572799373511988686605264770486527673632212039502808952523669001521262184334858200126108323659422110481912799740647166448342524595708034730306478110142991800890799037263899348149993796289164427099821020827544551737494331141223448329100325819837074885039940631672929811031755641162651182337075602549925598038647057088089435223326732568698941358626900838978308538380953537213772235231862896983690062618773248335973611471895053562240734676313156280682151928786279214438346240558248402979429706260235455537816610251184520616694640909600138690433317543855772573912379041168742268797955296413052739985637547649693418945404207326699836511326086821921908924643445401193466038028050931923798165971425129499808019651882250276475280034260362540238733463130663925024404222458569311256097958680350224128513733018585940431520551781245875297753143232187252222876619049469464391481329984699305627130720509814140543181831101954935711125044861455918516385320338362059031265372245133000278371880077802118900536832743501103276839051841002611760788643808856042977884670927691932064177622434532178224214377469604019238367926420609900099586417953350135857774020622742686564862690911060202455249488077363775044775783427251313240264963145340649793187667618203173213040012965657015502820919913853743497746778397247618799840847995818243593463915128945487158986172502796955854375563751497936690770611836787990638994014815547276634193395982797399424430789194070902490760743971228232603601699218318500917786748079936265213605567243847570927959906882741900609121120091671843334840255085185987211556362405233284286226008271757458764951601742828410692155372938700393465697153905342053095523461660392255177253684915715944749472844607220564123532922383253332817747980386977182887503154731344583982116261685730391378166354130900781819710005504787320268908806805297624884720995501829332372222582301529743346918023572470134973800514391797989297429916902512685444224428800115458924360178850645142326107622599819003128976082860553963746215659746220920492338715302844375570523447661450085880939474916176904660967390853595192264915612016983148297732716839622113546582356809602611821335630151235136478039530853900774591934736018490430156165352719674822641185611431064981323734201260987021664882828323618902309476080184540217611312201856261514315320400146006105892003137097832274473692476615709014660884341636213646482671860138902674263367621310611362306248995427270295193715634190531793041316679344690446122295915200140560284932756448899403368780986030228246797168045287682451492665691412173868783887094690912998803094017808288977163293365546639575279532674639817546931464390879863850736872535750013043899129569623581286703480364265063132520985262700186759218593167706024690567545368673651499880755185530462770447520572921971118463164529456671367799614648530952796999850386404970803035788035155766967129441343148868917093571151187714621012404990470053530241053975921362144834740480072111169396948090419181925578857439526605803956847882201904587705618668063029234346991390258825282966206697997410484338734191369469566487207197132593693979510583383273439841064424321556388807666998252937128242915965790424758240557883807452685289856275405994928592332923560161117815247519564982881023940720520094454818649734200246990868933115017179543621557419486634799829500251435767335717301172002729274363344279264462627631360421588801231176935071863491122229207223235996398094652203831210516824250950187470237589724174338687069855046502526521121040327184932765225384692553438951828411120825600556308620683872933845671094359166826782479037326468455677959308679076132489845328480686845682905026892002809975538175844246687860128473977519011964796708427353147960226309292065626211262785811503418341127809591134110613690623510828882848525763083978767541156759943498388234123852833915314925318959588939613207400184039482325703944184812431026587445602442282605788561477131120815723547690605078448154357814412438666356415672660676768277739152212148367976416372815736314134091042791245198900620078231165782771960622059403673992163205001379004781422469419248159862662085213806499775658669446907561451571831563937239317664493571555879706757345450251073977972202198126276552812736162650466824055425776453464959794258137671612666685177161637947459802575225580717891525844901287290934310147381742508099138507664338443460469351359440916884979913075172266036638159699041869569336141161444191309241899203596187512837529500490409804280243764211072861683376178791450568568522993558231763948645754641942081323830007334071320151307626340190727881729069892130750611971405243084236023062113939228127755995243604815789457467098986874900266585730076344340146444410584051691581562020268248959417926911812532060754505998605168208467511201184186456987280338022976466948469390286357757320824003384799051109555080697699438118677252154960046913981220121898264679177801561131198402401491607942956556069464616222953430458989129846391290235850502281595936808871204542775750266323334115101819152288912461942536522111040219641524005069637047503419851877052263650382309336163665524196871165972574283848374341344703281113191776309247175144544106338499599721127332586706332419666797332344823199034678789990585188651740373981016941522295282096100848370459925532509863777978419618296351593175392159405629237291850460033445431527798692664217236023103428741645586325926780976383277905239910971622570872292936993126871057131089911818429362200635313431232443461050964045093689209664815108671720079034054236625000230593501897040744249603623683077090417805619692820043866964952251042729907891405512505403341034861511433527538131142284964192403727909846150656199191431383803436365401807965732716269107791936950363608513808758678557272568215483127192096638590426249024304007437147904806356989127689661450870116520158349274607166694340476626513990287668423338831494942650057966662079856237006609836984114543813442314208695290248484814183920712806571831346371713039064373986199349772825108497487905938873378072739503032055751504843872216027779363182896637329508649375707151368795712304757587811014555265719231706707424248512178202259083182988950972370002614478031272997477318670767218873320108343517960698052181191488839431804780439375627096704678296941489491577230301772713727047481163211703767139397342034948826186556751338217778928028678426395062882456717016002697356956928369187613882779094513149187797481960397915400714130539074080862570805553479649120087122282532033437004734382977772938731596940981325358930697273567690721304582394603772838757271213182058015991295864744773390818741807650929391468327322202777345008141602070524756830914032463093655736413456360812466617401644079224875864938611203819195171578419343623994345800031726860718441798718276894977909359485098378500428620830255369659677348068210778781705839151619225287632689567816205005960309615084635871322279349620329297663455545696779208552904426591317100239432406443263684232388829286146533364438776505059447941011403728204743499031964910544347863318686424479993522734256066105448362283741882894284912606730850918046808369396946464231514882185177786466994035921829770249016972087247194807072186382271036990054119062316340966245897848351184765551860757183800458878146605944967620753490592450792563707312347649466773128001450150267817310098984636350873889337542531007645572451148127551723196693693016393129521225010033279236892091550957187713584371207473782765764144704363977529743909565193121604836235801442614475010340639171628402459077633222768094359313337684604138213357339492179120679965427699591690186422167502230033158742113150346405038599731976726991134625781236201404271391041039391220784640510660485973288973299831900588929275892216350435992466998390823109069817385838224715865770756388033418832746819163739170084500016868881765639950123895613329667845831298304336473619869157307795003877305721274693641756349135609836645985184033177776881381983377044878342038866624490058848379190738588863844313449246609391441185775312474721565737167176923073192147181507847213795863698319680876573150621389835928140933165442770332228976900588479951144387738059108713518630866819595531075873703120315749003808637048708872075939357676600640479760256927935429972069668384648387227454229864153679102924228213495080677908793569150675303432001166495131994579637140312336100075095549207901797784328416821186645065736148863888462315357757767143658143047997976391887771480832121770535693745298489012764202521866760277767798440137298379530266879216992396430132410744595493045456937143118090068038546130513413906049540187431542064294673446223154733677137345476177825497202622359668011533611258261723357305871409214363309012676719208633167362874466527935513273360809135114271286213886441467523400941170568922523861913909004482479433129192259065244120555919650451597552735408767501060083100523313795364626392018415537421270592130755463821738909297519921103709656091613626703051989519008163278049917703284690252827564419680971909922180149721495031143846812145026446270045709159089848480403795018050731626912749683020971397711782014588071788227634265673724885297133433443806306788258002468582763768279943010554146667027730647157348210251135381176895473145102755832657288318794152935241031452567058913842600492421282850882323197940965918468240273974496501494374149941543551404766186110544100053778094841142333704642130694334468944503900283988862186073507341309792582030326784813725180488284528073361241466212865245699263656368071503720522430028138866661916603757443560452745016914585298307468076478593463791844640697608822333616162611191457566495987679837789556728892428657436500927889932685062724195549606169732390850618221702869796797635240343463591551731831222538685035721338791416539445199268418178998249830314209955273904191485459265910386745992595383468050180868253544509707384893451763147542541706136160926332379521828261391362731224738599248849200111102596857658812877328521505705462911246878364703977962073080642833499773922760411167866808609879349208109705489609220845044817046951931943089018375962467088247560576906895761796777053215844098084157678474622483332612087595605194758093680898263708589183947976515168733047154464673496776620296416825897134526318874662252729619010102439662825540225712722951947875910798655082525045075147602550392982098825633219788191468099919245461454356015492819442807570536681711433514952743219339310568936220274855293517869440668559940378240006381596612704303992200458552467317995809038530229339687632854628090508763520272790064629895470250647762735851080650875505316970405590369534068993579599563405286358779024787500593433958257896065986886307176453701198238897059818704003265013350239906783009518967502390485622079653817575812520228282048138074628079784249328541811429998590322993128379457983380014026752691704565249099284607465351908831881690722352332872100229535834148823069465705724125138179371934537064348474798107381420088109033426916932792361773549966052398218253275133401245277738627686524905312701363671259602386503728992076213219148287253542779294877174147853383787115452189747133666164590568584364861694427984598111429422057825168227469707628639432333980939049874105938720175125916859698016946254190495809225637304021628330516608789922890960955191976033869529789744310560039046304654797417405722763426611970221279326805939117766951967302430987872060768566487268619354048980484386520387511258946758040917544831602152890768843952957983922313510501852946235149842702943806773019829121768455541458256447210454454201035288098386654258222586540021811929745771582936187005933045252221980148820688109661419745825770530262703934864978938992787553631113002810742844265318861757776564495711168867930563241593252437501527709319416491236319970552613499812607291665565923714326956049958901423733082111916670114032164811297563572819930718393261238611505417441770394161641021856103085238625484977856692213889418697756330880130584492477754502111312490067034717741444276015029167077727423893455740709357380236369616965397933091941729167347169546837983508495769608698304308336885147852953278035867656835247688318842834642808817088555228350074748840042618474878169868749300045996878653793815218886503570455774283406465236469328342820639397682537887900738408372867549532050437877330793254310260512280552918025110687687752779371345977385035328571910585974600896855653551221517750132604170058207090356758104595566764338081205941792538344781458536228191714566404904167135196953827901042905833608053278375375786973297872704289903915829505494349334699795712216132323424685430572462984003192658481116109941634448568060343370722981787916760942389778437664141566930879320403527933380190104302233568854606062730193463645717748702508873021045425356880614870575970316128771694683834962085554274318629043678650971032460982077488190781425016905847075670261334284267578684356283533544239117039901657785434360351017085326179261611932618306732050931124635284146639479066854981584869412707296405007837922080898693321308792215892958742414858338269048780451724385170146453250742747897484381435312781889861127864612951907010188414373099292172638313491940397081917801486166835068372651178481409653047137880560359205119338346766589109669761661234413036229828662582816287858914698976408398627227369183223637570244762859869335317339521271542340079760520160948848747810974189448764213422973196824464299323469178625860561504867601346872050260362736518427630584058927259160017373315999897721779864248270688231858527767066459968023567842702353132982121878715392989072744838791423277578308233492945703438845120696122904318385154735980087999034157822650183857137280408430533130826345783135087378889080190277322982215825120753280666372995977237272843139117094749939023986596085324047574682332754247001273542027605207597190458055118460821419887945675792235072093536730111688332214180885609452474019288529750973575249816882812938358953529029500632159299714579859929892489242548305414793658225755772352174858981517614923283052494399643123597785424341218968816265976431411914653487241994676286494928155641123407187739355943975246589213784768003319717348775778733039129962669987457111779311471100309559533581219339093002767760158583471958350257759800427680320090674698960266949763387446900710806034789479534413836946082928379603078827975781661102385628320905990672789053123103281275690721195774170789280178156741673372328964929280668717801471694456713410728502642553040617479371105130839457575113046217705201170079870524209128137686743526798538057155985093772674007092361347010321963669571055045008100703493853532345862649362677550118709268124042540820867425961649196841117331918104206510731636574304937583873515246534127526456362429716497105904406121913131809173202051641719699152790416009543777548225038005019556917456594811982633563870916528117697413312416999360675610388695402675233510856320457242576955900562869207698583123789076567266977074580090044702140670144770346871946856622961402031128250782179668025067181311870217962142880451493104777221695737819127006275647970383488363510236931927680058349831809531580269366068427126795977898624391218733307997544540663635500845553459749740272653655860397221793690847953002219317684495517310754009400722191156672715075403625860554821349496069663972283428153617823972882436390164400708110030026694169163536577691702368524674971035344685896420286835228225029131167395067491991355432406733636257199266645886233466590371689483286296126847022060145483612228637532531956353155894629074546387973844156437302830453043610518202428024990820558264752840800895866005086180399060706245455523182023262917381211370828608993845901955456496879077327894109562886911057287719560689092628992445863126616286593617743572565634063609596681907324140019694841093188690872733091520972525367311792123117196558146989474297398698870159533623196517373381347441708479860996304852728162499386038509982850868935205382344451593804501698548514421459371167281416951549785195187818962203595148774484389458162496592958176695288373814090914553819832901763246938756208621852586937925972390790862561212430852935723487934706712776769277856188029813499340298609787610220861144012166140474817479109640545336050330175273905471905580190791691224127996588272616297136345911849238412132234347238939270035613455481151184366049703438497747605154289765689315503528012013603038691957765872516620074220611344327143275464476476909543470530136463092547310182722287823795551517717832374595018537615277278465278733856492153162063622475836875359090123009485673746278574110377800786762036013308381441242570228228045636079517269717345833828608484211392223344146560773129153960517092035687647495197626683413684048480483911677392426147391443787165797323415041969539265556542358837715715746169069993821628773131884923341685929986549435015693001716534416477214857112794398289028749197698874224155048973614961014772116659618649250210516108748263983402622737527077381479698612105968174942873159319148028868369496570966156769239610328049800379471262731717234303267576762235366951778325135124548108633781357172679812389376049528688246790070105783176805343389599225674424701185233201706495223373030849937200177587293141078668315968232177988793324988889400950174988295660194667582500921495001479094226521403859893572405178941840664684154744462375032171271031854993129996614563153158704227996773190495119336674836138346676120010352944110494492831291629190194764610219607473529548891908246173965832242955790191062378892162379980488589548863931938502986612717454904029492347006453561519379740703595146536464271419211730598741382788723356889183053004845491304317560074256337755799396774302968322878154797583875316597751107177250085760841784977606972035496189439208002613950183059198463508695927333979835958367300836662123683407861349576608477639380984207802320388811166953637704466075093945645029544904768442801953823083186031042847158179396134917422200168013452725367419635986470600717893897767812547715998264252605340869398753013916237211055170806427266586914763658924529873611532643419895624445814933006698797372583596927031591844592122000920786973751537123199999111393826931480869038996882084909162877842989722744572774517807139642208123206530711253712521980919504707606888755255606221938165254940289244160446132495945607531434152874244706357961701592775117844373407075308724913590234458762459064582387239300397781440501380012633307199440063911474825580597788458636203376816101317561342924084268404237184110897621170596678712665858647373264258494977639882444172015512167713546112347607078412300406548449202175830423770053154415460865799038794387998671781213243259560818367097600044476357313760763080943704531925647144794865092006892500381211141664951072943029331383256831516523482891138185677475250500340682981296066444612765037429006197608636224898326783379521974350164557573665863424937789594144593258414692262306688881220848751052085735191661464068973601288205329887523651099875997424394617242051113114305993868254702659080199538655006328974611846564409909714440309469785061574984175709853294514413125673527218424770667606560037604875406550827102917242364640610611166573948086213587451180812369190689247857705387806736091732387772325428218101957410821826679499357797829190400440977121301319375583028924227722722963114118785783747373722599695750157460105503891457819345188912445403713586339391420069916630874392037726216366491638439355385620700613690466568264315059347269844024571048565665694611039211409686029199537103983294831969449470966523508592481274001337535107450021350451269881489239312728079197605417949243629416198108897426580482886387498636340340206242786438632976428272072751169729346184816128211627425608821384014085466664544962670067814141219664829676386919928070845865644509614567086385128665653131328537783806401962895445961302380982015496464870442955537898189359911780660407334528993768594480744269647995128788850333711387434262748409252667171861806500050148239240863154328528555672120350474634681491546217559737567213340645995771198135590334876391602195894467394251881791512537842045135287885155058833412882956557762937380203321423718743617969861709911903192871258631789017998114818373172923409577249549360142938205836416962218097877084493591031459363371218485671947388827070082457003717184316201225742044093821613270329776554218842106791726364710252847943742029842712454654178815428752371884549170472530957452098764425645585167118130159000131459821225373780967555297163568876549230558454375690930104928979664802838159683759621187919662193024389301010784061218902723304866526104375851696412696176689605838251278035417368488068199097701012467663501717229902622996366901259982064422971866676333435247073407626337707422206520036082554880483535477672973050037462875363304031450113070476175130653594533390646838253969784903330964970906525755457322280325698999228044351489029957478869051621012946675351952655117131170101140114489915009110440818232415743217947352457377081492863685739920369469650360445473236233303465525293561969860536634990926887943120566451732635123336596097090040775117086247540732144774008142019184714209980015048591106543291747905270138497445198405173667856842820579419278848659388627691394610414183016275696574412152171154812411463338232928028624810986267559532243320614786885488599647260305473198607184969670952600384123513928629721811598655927010474045625291183829284337598184079170327731045091179740737739555799194397426365734422229487436850786474034842742073468323463615169283736137065054720483172219842230712006404981095115451337989961726065623884208093520697998299467575389877582297707237258025020334024535857593722540885211939832165754831052810394342615876896404196227841988847003053135884014916054035668350436334950998884579137765692645932068113539058079875638416674528483914927136094676165147096497642723324380466047076979044463944229928772882721149533057593383635781873299600383870844156845481599851741961750305758703047402467576640141203245720885609596444823401935139299605127766240625745024889580075253428561868374954266111819656212407881980979017299076499264879441599728634067197244980894759707717867060987295016034908360840114502041092932421782297154269200804731310839217728629116974258679721616957798044013862007269178503302035984968764537490562405590745304266071184897757271209029183864379794804414935170650943063366363506710618914740498696856251645257837976876188949308216637878762581095487162622099764354553194570684656270449330880946976347448303057537481437376451781480154074744038353846279531921418589117005745230179389504787482962156554014799936573307225684012835961462578925738673218282631830253882863028031732116595044056449765634196214833382432175109488797614917041078459988365992010775988998753337624752346448356350891333470074023107454998349996657894269711145875724777304503558657603116324525168126148991992706076093792384522325536026339166326642559903050495868519700004195086614502579331252524135935965276767216187028820537951829066291440628838479933962660427825407978877751433703849497288977619688617033290618024034428821997178443563455136977200793811549887169000723004612589147602124125855109291999297187664515895915598650628426217813584927822079438318862541065671204100157975752322275923266505055531295639148162669244578715556676067680728185751562001853645910209729401358074207787966790076307289303894509637046026015922524249554340883405851074974334308303513555420082178419845981159201623595169214181306752336215576850014203541430066597883266021369443009561074431961709052332985255869597461493654059059872318527729536699009532165845797282643082843186836488011464962840824958718699310992631466798205993827259188622432885387472564423724540884448122990872268992924561913609153591379952585995400465339162529145448360554104801292022168478214535243042745566406636586777381753225876618061812633783676345501117496835965130151503017020405989465926240558856752252621266359097084350792769424639985305263779754911089870919304204659056988449279222824603576854795757768057193673900234140116351076643164456046259460699130896531269861777755452174581337851163393343953086129213375383496541454772925376431098562872150948105733520156956615178918665506508197192222880036809242835803279575379016284126507274799165863986659423448416346140380515070776125454468842577615568363162713151448307252212387119051362618811396568424814605886903011454606847443444829999841955526390213852442364781338407629684137168448676070980106733145829266694386320260995952737439987715922484588608906537606280911774017089246630662889990719416964141632852766255678095848715375832561913299062411159260285087145210541210520231820631957643397799974961626798890377549416233921727957422568764693532984238755110949302237173323149108456246829842903671844004937342875291359981133797983315955459084847484926709156981852438124242033097166771281851784990566795645315876490507693990217878601891168832658120792650278746125379748047095569372055943219955052248311835353794652602167177393467616269525111626631997106406764871471458066803067038912575506908884452922244179847069074542075307151883666643314031452473914563708538863971662655985320250771142547792454025267640046989150063098924248545877526153394129079370956838745022803886939754486044683775320362652082010857376668557256596880450216640081348931854258931473950113080398801347504546613685630787596294975020924797378959076884914500503161991738870854819195739360073997462480910382818280639173866423634464559785772416193544238830623882589017257703198613422095783360200147666307841219335035981503002541487129668517586373069203031988301457005733298861136015743192399962608303518598941407459245988969478137821365564698917657211074174523266809469806657381992932387285951633784621004994067462073550801839063118069888942476622193134450865907635479646443445850907622104716678468845782862313136137860505597404602587477441483928159252752300073595858473415922470949328352822808519486244532139722898806105987103942165096275817428164070075612680920936801394491478379220630300504101203148953519165895966463194860835229029346022826200287102773448437470955979190315193863550825161771145805751855152623669491898588786052179758732155327050826116495904517690764690867863765738281515497975853979356757240056079115743219216373770562318638358915783471178355128643562321908764438080435358910472339332743616316436117702648448335977811240464075978505636256188077970518549535844610539323211955382061013396086851284539167384459914456105867995023711028819858757530529004315439059513941307875418487756773196899748660257570457195192514530073913312160090670187074547163984241214625426772754310487794129611436753403947419493218240730845161505856066818595919103295063622413331603358331048891971095838577672218987398897199395777998222058566689879335396642600857011570776476835454893756231593189418910987167268464931075905563722291883121685820677101478422457201090238459883006341865853071053009751275381256380377380767407003364222987635786593794971881191650323540088570057449565502235985027385075994009619475948491778946830381244144566882724091128217762812220450395230212957781896312420619193759126622537773673617856068108693224171421818457411824716148768979956153028760849231529672459686801985988625469069965820997867820035701146719811762204375359985462112932446853589236255747124198540982079307177284774928193840950621962534150237545389875315426075204891590471167842624597706230996518962547280078799159538367956562259059036960010689419297919714430252144956813605193631579019316641499238963186928870040951435722558267608598496949683867553593315609968328418611425272617172635507649901835512195054998123366169472019192650448848886539595146051066993818519895176926321213121508284263291997772603585876421207158203925572151285263914505324272424578315526529754088720953010426123094707926340492151746076737764650491067809681405517795622949126071868839471691155576270920275247695209362023699419653424059351452001224982448559910468833323640494876627957615081197097730119711486255939446839543950813439382755652971705322958386812049065710176872265803585988474191390661824270757628829217148421143187008243503983227643705061602677719239621690374170290961411972047931116619487240537270153402039112996340818720963238115479497099237659928714666971487191801704310920825527481574938789391100440518034915197052425726955282509416459770459324181379344824954877545342983735824077820321605190578276963994841763810265980271238110213189976080739069504816624451032963306101016007359706917248090331260856272541130592817255117538308554384166012367427566565944595986067099568040765624480540755071399792218313069598313084093253530424801629459467806523596317159929054229637733522760299694899186670190326901385354663430405847652928321982083562154787273637743819754105807856479136805910231589034637405257426846130587897532248837040686470313052738101854397285056382849641527799402698849387378999851693660481123980533189104033459013547964337383198717862005097517068892141056580530917596291229841564046901803685558323024921618919435354094328377828722554650552005479196131187234858965403626943341922036871211215611446104663860236436740039566630237655518508353778656486852246172333921997626047159202742336664517178107376790550466147073234034709287819137637920275369433024477103736263157781611944146835213345982717589686948380565007062253055256513588262780770088453068780254304858599562573529850412084528937370914556365071205914827021125767569064212176093587555569571161850799619318736734652128138554658338601388974128130661700490548670599568484028446853713490418184218477390644256521714955297795527074893466696667103939086364439187207353938464513242428699371318581428845172432029770063089838701799094460345616218445308933496426383365615580032457915294750514668121178544490972739116472870677079323328120071658681080852565778964368536452035426435007270666498633024811893710775945993140890000256326662982080875016114837789410546584334831991617200374802862196059457979597132169074809654960806791859251629112921819068841103677826191461288593348435710640602775498764356094446877549381745002971950299620630475596183263675742122301688166761388593807590815395746776693188906045596270739515344742785911881966588818497176666699967338724825066543859187445382978446274114031428387295656650705391587719647692455811731576719734089946761124464994340896108451258400437565909466739702407893569501217351658043656592440667815823232273189455531704518219027547063046319986899186192744670948724815735613096158756477802980344579181045767522353878110564850087302498355236039866230144159867187730584954944575409267471131755270266254900666662308691151733303620574331144001810638943958929516012863929986667637192925514428288857315717687866936656261193628156002432391144282944243225106151989542295974641133859954009244628391323300909642769935196805470683781834168115543548878622964454227836689881343220300297672026849383057367143344286879150279740505235747817277671123690370250110971162518981886573941023333011690808874367237986463046857536252892095522797006974991910139149734182324431434476822377434543257455807224129532521904900932220336012441970105952044015105401434805617250539301875951625481037811359641651268390306045676436367277474457626142227718476507489179006885495745582018118858664603166018159559903416806442244051225768279013100313449877374901264813990496063929676501231876462098703332371242497449168090472064473703196953841446199178993597745868291158112580891304671320704187180660924098700814622548902358411320525792580322335199266714298898156758932162545546074464444066576927326196785382874566085103416077650686614858210933911294255393259113983443351592099467536389803154638213669896613154419069153178977635253397998145233264165411684318476250532858264950315740565689670781804680974950757481588017597534379162474533919727707489447556174061722036880809783563949135280885702166935197163674028253530066644695919312399892934346994239085812555921264620013202994312865766347520378902980401136769933945213718408142239614146558931547374477806332010785588171746292146242688405296590164077754146136725343312345687235875383530635554101890236528047782565046680267525332539884612125612577789360038242601818988311944413951885431329604453956941103472618695971796089980690907690344791297550384206238763348824593934623164799839844774328003073938289351987720251183604470151904923863013827681781785367596518873211774224311868498187755697697167813248422898063109880830022323029837520465586853638574379745841248425511643163238246997014132719075902347696052472548823418546760410187106464874502469407904720305936064447330243395875916106961712318213935179209907003397790406967350294702103524810430632237911817293492944547755660701207025729641605461223022773847546368365408664834710172925092057792417820812944765917851371333950452345818974968881087746691885515196545151551141313210964355900122300105830029560181698960183137058271682840386679833513762936470795269951720897698926211351096445614596189607048391414790348619604378752396731267970433284478931104566055578353981405727681516270229576872431383987564457586740863605090789802896421435110602628115609431012406852887243697738231003098313647624667260716118386786211934388165819802870985051672315264326487961049910206214385276118767485573987397033405703229203585490424453306184388227494921957564451305048740263124255558698877274966518316229709594732641939262221612397145183362075589143719759503867784696123052412881400656634248526686812536633147850208091109394285721112151570097204188270355526340679227119191445720569609007107982710800071102039148406940587947107452691280045606060062414632559188714639953490652087776159374129147436366115858646426114152392038862591732605434941016666660951580038272897271123403596044196118902522304742852386511580260325179297862620547512133480697153342524431833676994858630198113162830364600792883068781052827004938410618274847264365325327224165360483644513779397346083807240732482169384747995656378389905392666167503398352392379741440103068324684909178935601617129531217239194758102771645754779041009001649139634218239688940174686130447483362844044493155992948116194066375911111635824845503837474594461072451038099905115702826533938350773318125899093356194128704828323457324730251420066972748823947894834278391182051812851785398053998280937868869386893765053321429661915695863966092788858028214580293491223399543726966632355508435284131779756006967244305952828252204429024474293898756670829551161103637758533707879601470621092508849222825873843775343643149347788552988268717437181025673119812998931159778854208281487441054516279986862292257703685678020537388248737143205543569835667697342607834778469341236238293906209089498957152394643578435231119429607379363943849540264203192230439412096959543320836458657976106405126490097200333891921363109312179804211192596012090959318666939450753123048216081061916824914673543421685139082506296855785133519216720082014041835159567984761503266257465489790462774393629098197249726036569408376149864801402939650649326069993816206635844375118112855703656666959934227090560682935509137866936001495755381031805711429785757728931544911948324699010687077998392707496857697367979671322868880590511947515844108146521284191442630162947080617669575975389357284497766655157685604291045248515899827803184753071753069716916114919749219595682971661719735996044310192379971328841328219015975540719333099520033247881811502457406646368989091004844326230985802558803407294760415835301171184715973367287048720963128380212697234338595811873310233246386760377200918493642966750351631192122864578228324278497766689128153501033731200589286635699827441601912064919152151016662647258197231743396905383237995440408539002861743090785742339210595479489772894577448314261427230313094680546075067005908152719378494854217303863365325769018186356585110888767186232322368878879071955797118451437956737492632590666881989645402248524028773408826614805762579597102736530266557829378032710136123029872738139245234871899011266111108933769050212829197174405851476737650189751552272875741825168771608824685284263991883438475182830190197391302862466939683757335642009815551448448770285620400959647109977780465997825335510423854886696798115177400031829625380866555630470407745924417265875781872206199140436255532665319548140817139998945894767459807402848059556525801081060453025048547512592719094236157160934765235992658560616102950507723655936020788456350764080028608280647223743092339234629403591706970232475679768983322141197512816446210084345195568442677969813023270806334663174468563065612133852883036468277655899498358911812412505536705979512345681994886437882717153071305077897167707661737095944632378097474808379544483885425589067196539273424703458532172626476569657998125139356699504403450941427060635508991817178879686646072129086947982956326499153190542561191910289295564230113316916750806776174052462778515799056165345634807387594277847996151883497965413370238186069369610480704859983726765153975464283164139105224296100583451116706623903268294798751369217919156980348918699534160381051329355179951222155451640170167085398361897853523910027110171238014925417902803765595499884410872658923409788053877614956250348911150698456703958471726912789737973338037961590201535873151950397532142132886460083861662199473175505558541031646018688623452612267933414286875345969720436296543774291077488927921908421839837928115523590327735750800775907435779725182407221895430623913268572249723078423767494127229631700677208100216139153507523240842500116117921942518575568066483966516879136166332991543512463634317540651290557443874413330002912916124818105165990197359632377942425082327284309644064278493188571582093971708411857855495292689267578129037499076543456569420122110768658315788729762364036544881048830179812120148604473768605868181526913044471891066101685215191690845081415979162180915865444270941800931981520881288166268589524748112813633816315254742707671347659071499524666033949206326611696706112163814196095663522548030439881955385475475211394927081115238031344924848572181730144894735899609509020594782318115934928556837799349181631665622787994017013109408182468567545005701781053663976131011253402365002526323940907576622775276724560933124481871532006791085553296776133631252029166209352507528211162999519065934993487314676699628666194227107918044397111217276252949313808522394265010760716327462545745803332374217396989657803345877617456344957820916106176632440194220538601244335564197783036024679399833600346164863350189428087966112551348954263539294598594718196603384528555024773641295415437517296448736611959530298483435627481822707299345013438438577461979671892615007504557738796983037931503330838819548153744650003152915425133357991963026365936434816081079505506762382466413849386319413329275259096805639872864871380176913878677652439497038995490908931139372176616716394895164425099856631280418672043968949458216105918005644061771903602416637325913502750652666387723435767267110486829907785109358832733773330508573911057336028074065114904932361522918311390000200774028129749830211512085587373076165353551612557575758641902980453242812029256422190109002601794110431115504719201668097100041862959876338171915102171171144785416965637603443378154051153019253261522030666035116860421802375218114206922490145591236610332261611381851091811811637682233251809766626551717304257960492996558830415273016085308531361239590438712403267465089817096827171443135695322876381128064630640726984754236882460161005875382862448573277991318504612295125159035155367570111330464560595094333933470985132451430475857357422616961906371732716038587212781788660156206282028905157901078793939871382516823591237416975302585359187781502853433604559445804664500158683343460850251941885529569303646976391665410541404484834781618614127792010173633497092758472417129088529250442831659162752723517984515435012293790077602644673666180639057391441862704009316086682184137952228252992097723773193695210934488692186086784505310725861606545867474824904171463102426226963070155657926310523850999505652039088223615492226905118178964163237366653504437984371176659020837543548305802713853161382485429819333352463100075590313966506002009212815610451383681223703790815565171138175248593830804269193170935793487005022731047782777334241723673504547902835437155152519244963644059556041916901921255513315035490027490101018121989161984028785048008688390689474092909485206685685950682368580311205896995377955939666554728985341385562374146198566256700109551336642290640449679106384823749717998042109453525720473297478865825517852004765958390394311500429107785289631570190549718367402703227206339174605061808987662155883228605869572345405403571786948041074831436959620107665055803378482189697588925381563506585411032644714419996368574860789338660105743978384922758601317647497670325799045266545856573483615535038234335078602484885429600414923281600175734949216979058910119248116009995251739889168319763075550115454783372709438849253769520267895165425813208442254137286369031654156570727190058282212065827918754670268986440980755333138540949679530243709019574303542126485377077614682451120684259164708832798151058618019843528980367246660864379896802969310314654032093320056432536049329031678145797358803592845457954051299563161959540465596285064341188825163917698213864109796590332025383324634896653369237065226086225067348439602447757058448354082892583968029278069195821165318519162209563356353064648717359995124758873800715680296930207595680905234863009456715442974558797009588628318830135542710210043852402100069685701840427407888491421275284284388748316776616227961044692002010789810655452584161520307990604413166011124883414961317340202358162252513559251590902644914832160835726867713902858749193709549607895768901629096081087157387634268509070470508850181521277166608441657833225636756965358589168527839022714444303906497331642156768194682984275716325876784083727253577855988161972799487699088007165236863524872847185738854434819624468653097623442656669409054840174228649831870805423752630758545721574883935533595643249272050123183770060501315628679297318081223468572575930061769677011817798565620286321428784736470570702522960950939921244101967154530724766806974313621546483477505345939129877257361131288792771436588268087665595747563750980221943657750256713785325678007898378502837763788026318572885275828246879960205842809281758286633364759552423956094114490635997745764010997895778107960742858616495670596559794996294433958249447382830571555846993020740692667762414056971369445393382796361672867097971331455840738552708634066069163391613928441396410460482863526179136300829603772615257502092759024298727858823099567462588335013942132190334921022871344736872128572097742529136406735080261436168735920154795079879116149852970642629863872776370550266078216384911029902320283034788513053050366089199834044742494183214027056257805445037778908592599237715481601105796570440723430300185673350612635239149155697976119356858783801884060029328189557840152292140995683692783231664252162086033096948245009758959155015489882059387278274955557688062018565759338496987085802572500794339916788897741632432421031905231708078417364823553607796988169113850389752965267087964564097360335028765755446754935216184541145794605856005441636691745118504250982170911029353957514024370523724703785091860391667860963037769703404118713612957109234741418337497539933521911923500879137784209618403816932671358859670864335345248544740686612294914026813386540275448885718495349310414417646615986741766357879800766037235645053450719257831762503413938449401684325382074118679907515654022096276635205845340920132229558533813174405631064492758124395587607401036579143780484461964783016901005145023231619582526469366105578684591978779603635179979410606385596401089075404003982261927500193119992369635411993749015832283287449564712511893256781738091433908163919272072354704353693472842600610585674268469871573427096918112052500778126465767654177920155818743489243122196160559133428361124839946342005176025012985811380552901628612494981305338089136718569402067529051411190439213708942976042243954208657994090476344497341353004359853274100712846740121724707499542746298869708285993718386950074033084215264797722949485506636911158482335354162295847435841915827327061438583494436898595275624075340609298816197101459798133216384153671054249031051295421113170577231960218403737921927114320796455865625351691766696001301476574973039802918832255320441417091406381749617823959085906724764361658504827530931040264396995047054676096626492654712522615976000985814503808837222788231099519143208702587180596380799364684726040951094563534380270063668819291995759328108061417938537138903731944907769296414346661625312130384507872367644045779660090211644679260845357948177508318191736572115302740453935509451158056678989597035668508781022410370382197295175270564706444864387325179278856613522926697464158856130843007303811119010887191685771853998556194607751798514111960331831607809427182855794078855704877014527456410076825175656418232414520109780221550531207980796688807903943543092733977633068337453802677329883232111285934840865874788394684260383021998062309448668078524158822450187680226574653515116311512963125882879170930328623312671033795990729753957705124968262573184240863780776401138920847436298842809736563952203025446211197690852224532400683354609350615305541177075751647801702910606949039060337038502563321117677443303308758283138350456220393736289591657005995150646002440382914611231546877761707081433946769941394464876650014701000416767190115997193458540439456175913159622989753139884905625744098171283411228183534887894590190042950130570595764128485171099581874507549706199706211578514327228502783801838004298429274106684609296560250971803632506338710409326738294076616041625650457878583002597576598302853440295146609728383771976802361717061468289250845117746236889654557485127685036662039408229348664897466002343360139472433088678749979612825122587363674502610034816145322441819823857379995905875759331483494287879852866773928709312643308568247562860234641654126010428951982101152026388248407453609710189282837092230548354019828727819966089352306797032467175806069128344618496505801005941798701131715764500835620657370177883412683239022200688252280135788106014074926984247914285724593420380748254847571845629966280456845457701520826179028307065856773468335163959146023424283493935625757342613018680355865263309858215614243452912242317280165534583770928194614724813543150580175346559665806460362153311763527846320649818525447051580343573814671269392733914645981440291728431404503500067012019673841157075961373689705644906875811444390687645939878569348172590256370391070127644436630991779430519451002780341796587085814579643081293188476052333477842915122539105013071767072303400182078337373706181586195759246297521243120073381671628690651278391537119979443700162611972881900154739990643668732750429634088187626638353535405200942597129149051715530350068040079412841973781357080225920485015960528836500312102237805096223192856690539368676328676834505305660795315925728974085520427439795208076654496270817456642345627612842955850910707659360230684812453445957228886106805179539196296692490126474822764072095821764467662556012912077524811380671312415245675201003406652286385557282525529604346121617280177741493216644077317946144762544101534036298163505539944693074076206034589447205712504228664466395351800495752603800237207976439962671810340354781354526709720205872618336232130591368718952414333762244096767941928419496531225471425327879581405358224259682098565862412079571751516323055731692250591294545438126172881953853762960279882224194604254339660620638814515884922564787125820762888973385142246351836834012293404318102822425103324216770503187161793002557883137468376306060860809579175710683156892990429012311449845595488844727125953129016948342632628835524449332703022661234296871091026082168114461006471681018197243321441389654001228582813003307888684311756259704484686330200988959392502965449040226784038885770646071416726853815815156502138749348932105738350167281089278298833264650921546411090990441478158642488762664138720230365259794320108958896051946533484843863904747065601817936379120607244407646339349082876408405055249451465319024906566583990135044038592532856020344723045668802974747514565073578515413734147156924904261435448186797182872480299044401161932088132161040767542764639764590878087038460194378102958194879778812084941173995423068487869701912150024329845346530839165145123808771494002465165196927075063553700834010047617569368177568574774676772407022925297234771645321367942746565813161245705871601905365789894969095516240275786040839453669917909089454841103279533950137960581482049611706311134168821813761495501307961858027789208132894596494960794385942239762246283381852370184258196017870967180985490180204366759425624396753753201256008211007129917823514053117819653753672695918747985973692794179752837473621261959324727616043942188462149309387317060524832228717475913964492334193817165310628222465711347476053305507229664089486836140129710777406341084550951577498789427330055886290243613629848388877034431760446477473122409802214250170273149385711719402396331723931282366865877408558189460411490354594436946433074052701104148293838568004636002115411529482371489114537524605784267951465868374490161305318742086734745640740511633496758631171960830131831561264326103237680469483348282014473222754585084192450423099157261493018079783359151051030258213050856156508907360418699865082458273068634724380447141445798906928967752525695434879683368069894605964730445319302281351305394369275166549347065721241460027004541119295554348045334648106703798787446502363742114333825580629837632794123999756901806065457148217605748876355180646653345099463180797000080682738449332975875023232580228104270969187199396451546806797842016056833950477305134377331684999949558382228502787574962606689606346245347144944228424007495098683399064252795118164107378783120788643246836591620547647904192762245215637936540680541449385510601055050246175578711099300203708734418647793273883904764083367944161555713988847131162521017341422402117531781732094564931040909982064841964100187772070212108290233945997288729229609737489194114284648375902520141041013951002307206839661358541594508251847942854732803077954810984010210969669662347834410060888121139292276975309991972947744287370712473107884576024821411405445965979876343715025804182068821995907906318841184759098394750848489830192604563424022664782693207814431521717075160297557217113927431159744753292045344926886667466467779852569655008435369821275041135900088524063948878461089487399110328940377772412333599594582826906450275785818549579247245843825313248590139532707640355011313078758088836886624965374312803790809061826187225594211815816620146119133136529087873704418310515820664604051478625359069179945751037800496136514576643519557387592902983891633979542789731470366172116550238960095225384168850345028828990703743547399464672484506059622027859588615951634683446999608484123943769356480294918677670460740222333547255273113059855429268523241727884352475680045466667706138387312434832458465176788577430912706458405320484686297597473040371646424155678590305918449899717701098360368699045054445871714584446766831893320665736841648879283166565265899575741550195669610062056448553106238543214758022182243595462088413388510999135820145541255493164161401776729649485574781956019952036760206839236779061966836178368910424932553622869667822629514972036838109306231238747342955349544728301899573008531596343779859220665930715478458040185760398791691708467204394544424333429615251919916597244486721555054154808674437940105078541811171451075703933669620715595225069703085657686454843324649996095763091737075151222244653089875137652194574967367234865184765379192735277669957514581465427824237746850449764526739041687879514441725221526185908058707603943101776959449891763327190781625206270211384857446522643622654668887854980778699413462029456867019282458813004104604386873188136876780044807489821356269204293677526655126346675596375359985726715087926747550666069883940125152458838042131093076817407437378256931163028808263551487951889699436822766664919170312360492678002101392139303655589992310792503217713433128492681529529129288449003540915013125702607620006105276929786932476840320191737138965465363570199522100846582451613803878770851501199656623705758644203730618514751946903635957764197648081568706749456482798459308455860008693156497708287190237894513438452418180318393290273041994154274654392686778941197820213844405187864358803802925663384436366381025303131245831919495477723005980278579107714821405873187037522142021536659483488552768377342282238905122428982707637510041250833894170431460877937949978180318288149588301464185990804317661171035796732584479610055622320402768138645889141133265677392625680686186112005160894197304414479831568551771286376044365096157802262010744103265600322024335788676393834324320715629745960822884143121936586281497439336538575089110085224164722154184165047937477353640967459979883644001966555460386186787758855828806482507214308558003746884391073117600889188524619682467203069365014939102720182748936623836802972009795038154066564709050962423253190228930367289306553750087415482741262746822688734499240879848256642617917121013669030733788567450596858291482450814076433089487390788501113259584936194405046886708892077020687185058513151243208876099130715949291350644556603455373797716344528192212063627900400306491652224224054820871321707027517729760198260916694190454716172794018491169939605297625487355118859373752158477047646751266781333639201157270039974381444501536745301865917626939696263510133213992791007854707189702529067480210550867251089982321939481235313984708954732469815807180235788516732933252766913721942674585953564858539871599248892979308601097312003602061559257403677568068075305907803920962758757645614761107455541606441014144457987140326388600452751660635898384866222087164718579718331708484446919826137004975847119207520922425198705417472050753417911118553203374971181029701343000730417336714791710856961081935429768271497601246788308609450056241388137128635309231310900384543225656924538048560701504857230231464788020564548479867253400444988175679954500598994980255422041966194714065457609736004749460657338989660105999337188583109219754350745597827662574612531445414012667522387023898839898062042037365460855975416458025280030767034764327580848434549202175732186285744846843291041340221832325860712651990815441414474545183321523620603610146046126928066850897403365155579168399453509016487504196860524449042717172775436849689535716712002476931942618991304845756104614914024034171553020278489573004963890472612433604079747578805906281471812707052694609159224552652264861569320078917816756650030653820071190223179683213049550001091078614859483470221456069254982502598474929494909726545471122820899283409615639936648289523266991489673200432042448158221638325286792700231244286417237325624050108922244445315084173217018584541059449918279688845830417462983259421805213841446622757630839367577968405563124962879208629108743374105116463088091607671544897280579279652050888061790889897669405577847653102286256906699744098108013549546463646978119620707703816188528135929994707267949719268086888652531396331296985804166383335034836805778381791069286309609466183969682506601298597882410724516521430438358281767197480516327297130691407112305580150060166575771665786444859321225645419816484700156703649527227805686561107454811224757512419423677595744679791821578684776827214391099259441262548660421569587594624928011837161777193322332747553926446883250786839545188818489576943788392093818967242957616074362848961541802453553053722592344547061504726875286312126544208673623461265992820379816759835495130733594056200904635173040142018057131327296301639227654208266952506154881284784593237675054330964774377224553520849946629177192637299520087756836256803816103894777279665124327681361002154357099644886005480360869185245156193809363487802839825898629459964720823168903212159241299918325488589648652535994022641201349723398550001559161671307730002440640480055203402674217701267034657105107138711784347988847534723019209804252090525039801451890752677658915402724291673104430143957933571571579576704757455391016131898036777258834809231391866925420787825951405569187920687528962143456011308227571442894227609352993534854397377001254513615386654237431509349913711210865752377800292064108180866059133329865170923926225930901150865104872271228649113943124246681479039707358415409312184205859101677808446316450639423635387798308651104163603146565220751434610426623324318453450504719992634607412487976977848969013234871694432952220381400266954340109680709699679111116719776127500828842416698923134741145797123515766458749950827325675121531905520217016492831161983617147995447041273648446685650957944280694609355091770376874478902598620207265479630251241414727708536926662299407831394835529266511882995474830296876628677671075652532385426306556052739922276344823359258418157701007411517578189399909773455276933472704797780506411759127175856148468173366652074524433463063634937012833237051427100676827438359444955091136274217256575251555291697089529863515250715376858671121505964822148175031960200061302265991159817473753754976894280524093654048866900475038586893049631552457511346201330254592025003366140343354889323473175647347749460165883023338451188253768134961011839136795564438274082026902617481021369017808648758894539127586781339101391859229594018766096758738381448134857838094505977472637493933720217130751380873378425055878937854139607999377464496676553812964452013529686567267330930687033366488700497727904145862126096943657980529212026175730961950405233105687147726747060504937785062310442903278052530564979292322675255171728325000352488393470313282508651200966969220263923684645692524666103285387576862743953026276021650882129875043137391703105562669038289259721339674486105367591986170141280531181712609142936618690887566506132158880959265912838238302102597243128174543815770999033191980605012170771409907576908903955212096977020237367036277422677607841673463621924143146162938231528042471812723293354994905566703619605006102167193231135333761658756767998031495837329724821595628311207823086947500470225698812719107323938893719542084217584396582377136931978413101693034602019593660403991852659098986876379522947865995682922662434037297210814832651445871469884077773070185330474923015128000917899623751411621012606249893364603700446197402117387415455110212346768808304163713635307899045703909095037837137803474830771717437907502334363010242337566195519551777666834479158633963618453572772083728481583267578823325243338165285053550205525785671470618708778092653267940801415762854627666567194018942913661926926089984532968567679521796230432036285678372121323195428067153721464838186378057419049081159030897597826593828546557990159037594733377056914626291936075605210186278717429891857478468282922581884287940541808782608417975378238593921391858477125949198414236591115257331308987057357446049680123056559414513749652394256192039194718195122878471010797711379613478675019820712271430116017689515680130370851906985892835569952361622580859391197949813351352885498543067518436854703100677557369916783780920830270972461925263841119553090541139211103379993347414229402365717697686830775653924533911883153177222873856467319330462644458027772015125481873667739589184641225529828881631364103351236033843138313955133424361044475305155166454379125041348036077319871722188147678102786991747614670701922811115178031506927604243783235815785803755538035601055469276771477654329731714451618288276461036359379027963310303044857039545263820582700517990040992446171664570965175809239681531346671402256770601983900176210140875328327564103661328280911192713457821810716509281955553004256073871393302107437944136748262293349089923236789661451879881946097766370187043781670100814752214870234409371816626955962796879774434901548281231222732622118046089409588731522046432173957638014359164693517983893844712828950862244791347241037382769179059805509382880823481801596778748579832822925176484884465419261960136706256243921322642285406848099112085143027577944122357718468305431438085185440802849535650923512035270180558357117336337024941715150379417607823766013493667040921424891186415734780337697848821706499162376847861517927850800167843773865459724950000349763078217850978057987818829996041815241699218037950161322965262672675114192021052102848686237068034308211508243191822715813214084702656910478163198702556400279300080087128924626250030888154409108318028022800323531075433766110898862085768272466110636932128644610729212122810547606884038666473562923342471563486227590992546655853959384597204482996604848962831620929555777995919923974299355937585488905124293465406153770533795696274678261776116271360965181648639016437133747104631059678910307790364765677881367924221377133331081033243100615437525693135937402978317884483964512395417566904928493520858122317149943988622795649699986087827989777847136684138925885890323593146048568535653220865285339207912375715552987275281379159994132937801299749069336874523252578391657237100353650411499875350909686007993834063948213077925546316780159123607486391367569964495041980390237663159401987339996646917267387348265225929631876966181186222389691698017836205054272354810528585215634256038788621569892040699529555350150105561781674697055427850323568945778193685322006921759609928468977810227546081843205338086687078837954051623292322305281515355004894067624906592489417024365713605945769502904669990031454703174708477238013948948408669721844240919792569463020405546774740171975857677564862661122222454998236698452134413041826008580576689054439522615160773418176995953653970469937396087159038445706861246759155627016958032906839081441692823405500853477806456343654996758960435418569331736872882386610008511881850700188953225531457084074132485585554509565851616946383017374146412759179496215418073605298034892166232092103602937753888410748005905642806615606630518542395379765405254113086971501006465616905484890774171592307334876630605429267723378034663884294601333380548088910652362002812519769314690433471175148640033868962766818568019992155985871386953092658735904998285173042652129722965048049944899244924376527697162832212723318406589462328676648889608341605805226997750397965563132996349956592388829519113851547622587539655220826200632961500457934635975514059308439108711722403088258722151627757015430862940810785205567571191528757589404745243250269940399018125325302197484419141891667512120072707781952156931746347053352901263108704298773738804996006419169721972676009007828368436273344805599156909517339968085825385297518158228332073947745163991511858887792375861817621276028731282679840229500710668453196157542928098098455939846824735140600665785598849388950480604681999688559043092757197205694906438081921058783774635247295189607501065585649403446319858800904862697543305366132535538040620280057047101703337807204136790734858060664302101574887709967182446444717600524141277422412497639458619074175505405275462803711783168007609874373676573790944884964999237740793146227818875248845600955070006649053194276853361219029797883935503182269878737650269685522138086384588029057893604502772236653387890402610648158485269845597921243199264084632700772588839869612664367404521713145443195882842062344716286416587561421788333626619528598937864518009428169675243498054777461146038418279356944631484600669208641173028695282680419120869850866591598451221695793485248466616741282945328448981204213847989226320692619939090035938021923103861217805413189515557904387682737163429177033127723093123651713849703540187884190248447583247584278125234057727126258102106747215015995294088062770216827536727794866240952804637099594509968488257018841598650729569470081125014440181774295474731378786007615339517557083828716528616644599394995759050481460984705323776685757463268497171291001479954442688137005923522035683950957672506403529175857791121692247917440726933818283806983147010824464474807484281064760522873791572199874331737615990036355659295095062394646150755002728937443333746381431059882843870960278200037203730246841722460801583681398517744239282838310543773334527839121546774019626419292074185327286029702793681861263895196751107426945652066982396559285662939855592757787971403734798685242806002439921909612101869712535125937539935790592027416943529453833671959479006642525677774704918169507922730429077294167129396254851562961995620729816265635060291220347264128232880814597462690872498502008731608034053355143500931453423962906614056616100035180249285257358773010087738894351762333760610796000957056930660782756804416192797433499779511375747998424752409812592199084672640052120784650763140169806925307621733493248795340602379199544250401872388229637098988790208899832577429084990869695121340779093213505864414304294195209467872565058114572632427266933838595972129917901186016845117836253073566957922138540848603757199283424285475500598665905174751814082036328407964300613804504621189953344327544062222756709141437271813877492822851645852195893746199353711661090237750983864057869686939674965010983064957319412652828449800704649077000432671864258315333679617654885310772421483083886177357320653263783666956058587023601089949904434364456485035702496010698667494500942513218237484265005524582910425570899847365773648212044817043583427105440465445637295206615808415392309761526227916922863083480017486679508784594039276625790006271037455601585033723867789287365799887492477434122078116978704408415137957401011607325367841772013152814706458951231507027231180279048508814119633075523811119873827749132878469873277824125535139807916056732904875822552648946480263451233954090743782907870007224841681577946448417178922662382343873336794354519684810180554458305710870337080630965789634033547708313538619890310590891784251975976086152330782453319868904535421040294758418371343572357556706394191132815257350051182805309023369881562146583690511604965583187763581763235037742587026372177333542113847244212639580744831075909808976002794108999669301559510149207730026528954174396739299863327628580432922658030816229856791436603860753427891510635427618748554191145194943547942621391710945355541554630866641889260341510955946055638933625925150850848009724516085193112265539709125558107754272265246241988263735957303745393168172238939205938453546815576025319136351280037393887048527802345632351868064776461031857855385434117015181388712285201481759027775684394845766901461252903530837803265062677072738938559980861594197596611812688679956989911349044545160051147285210846196440002351053966376083519057536731724193800429063449655071160566366598023101494567830109730426852754986857372160645809136333833932124382291373857037700900325828880925732742058938977336684128506389961349905316811947959124918512640888235349571667499223457174131560654796237838103423898969055953329723547629143386920473533893200740304267389162055944580119730617481286078192907116488291235531382275767012185460941824491314275384357503821058453359887829095298978369766488494776360681132692044663884637345739706748991415398555442782396657426719605460255926708475840151636274647938652392692369680354963323554778677892793128401210233083137218172381746784938652080437125988168265620634259117050763814398386708676078200912622148643355426130516261892826415498305019633237415223699083600832577627832791015623217733154835446931790255954996950980290598024499072087565466861192773255592059979457782404665629416714184195431644363806706896988110425180057950701684786929517500418746630735528104538144341741241830152969918738235729640618456672342124950082459142042312742705271094893803989832883909320588483684557681099548354059217084605219217742064363649974357670327402186756667209366167287041919135257877718331121907055337753563561183367782951844546923969771300710842453756619011487668461451618549912498670822801439868004127856900786420402837573999586997896963123139587398726057778318843875555714453722871628868936347000148880412865222098287024426955785192426034007030276801346268376527373210415653961863263603445989636168426769994914469084632865169383020766530923494478100266781167519049927675897938363230300094862583726245286741433876329983251908417193240414264487228514170766154518733182405152068876253290417369844700371429075886730837584916201376101680202910170290945645873650425479673185497328997449624676423524132533511632882707439583146757641802156362634251655869908955822846085304766974515155519633643930816977199300312436216732806306760485304703868031211935673148624862342896296481403370028647868641495642082413421408750395508542489994537914816088136670387445572903593739950034755697896223307401587153191046805922120258693180506375853678113783311474065689740102239488231507777602261973031146152726427165971457318803486979006140488296568051145159268261536790814963808296612394478918425903697631618282817878372168887779072984626331640447467377177598857916006967887504566575662838079874899745289236640735054699333751864045165840600960465183120405204408270097323664986054227212805320112822180506540782823054306230173423220499511403461341817758911423344566815729622635164207699859151814484461532230636436878562395326403392540068523486984341142426376407520317965212338921065161712040698138034315386977202889419283105921041661088950719614649679250396947112521469126930916017017145578918735692102790637987673942767562980186765763624641878519966391544659896581044593070001367012420600901966247361953992144691086944020976666732571648397450612792112604081868855819127206737019091516000924664420185407000687780795212050625617530157141142988197221958002296907765363007823774154280153982809539359291813391732270333170572035759788126273601634092166616701320988248446597792028138072072134842368395098973313170146434529111456133664442303231479416321773572935913663586397373748962348142871040711427399496736375920228732527320680354008090770311473825682807939298126364095607928800613921410397328231321889336384611437000126429276658911192289871170681086565379982010344979464834546606777502051044346243337772584406528891890310060903038534785541013698041763702496507439839498948857851801431855270724487483538014788789499175549190371929898446127040652777226086806936535516950996019585006147586908596282996454605489579593890816864304372228935234956977978050153488724005242454135113861203274082870015281643649481846242826882568474146868896667732571317831863872643231759702837950406121646030992593659108712774813019686196432031397630286539219834669065446981457053885062914831911759905844610277530665314317004418403674503951551738000042427669821039868759175042216734026671823972053734321972397338858185147849468669204288831303241809456445982615935557000332509394652719109649622352695778013544099459470002854598463223293066780435336098224850788354180402410939931784714289259653727877260651040876221200610389064514891520547023801800834842233940654572345849440918164843966380846908274577356857205203688144558683834348378914582758931519814813089363691659295008319201388902958772875515896271174045069083168867746061943320498178800464435093355271282377779109449006548786292969058345046189535042710094309986918864606171355320947877455368606990371152150842259646914375987416250322174486025092940247039548287311936434122768923841123275935676075740160623257858335374342401217395685391383220158101968969111652569253022412791236147588070157999928397758143876206493284444076760553163880468897000824470853594035283710981361624786389393634686462019460845061223926548442474338435148995107617951972843169139788226411970902278153136899414309713066190307567596264169721244089936637648270040366583968450280063758054307308518397278031041390145117630696433706146699715713639139698015583607348704411931141215680818821874204003872585081661249943706443637028196146283645879684663153689771081299399849513086913642453049543339625978721404280595934540603648132362295298147762768977313275188249189269347145184312417400066154495414542184563148800753752846214351863286849184524915696195348026907336016919446055417271313899587313851267423267214109770745080544514277903543982695165784524115281416612770950524417074202171289483615982911056606245570996773991753853776563365571236465658017893688598572478526159634620504391553562906399569098545615238115455628437381695552432929328436204010461415188363510149530977558780897620257919062654803100560115403721679465878705696752509269829349857588956763030746802155809330373876035260865046651424121366845343274109018956920374458117459443816421873706281456291338516884073679370594673578483211268739030435791124854221168431802047607020446669425515783192690808927609665542448050507557045053040481768298605024346927313356735194453536168528840191297608181648400420789380463077749229760487307086994087261380041321350946230808001967624164728333073907547549680998156798242709449804937084535474462747903712796823169808911069761982256965648943290394982538193764682635561679516732537003894310023427859600768057625444332107754495621320976590324318259949869080227319654043995085557688581059844909348811144450117629076907313982696995845210757562198109028685366933967217733894522607178658794295503520281470839839854916582786809305765444032600465681058022557896956332544013887150863127437940046161617793813737276086580877106006677375422422614008337029357210682599155975374334408552667255541205333959049719828206890272914405001379833265866209905778191916274947199001071465067769742755262956577677665294947973849569893143993484948568561072470368248856844522167127154198978318266797047581352531321167210102236782560095632218494934470538221573823992655560183140999448503201787925672795942159643577375757430288993580552190855949231397209552506375432869781209888403605487758411466668698054735750658395258383740533576753276786791784126191952132333889564853943902199880705914716002998027141398154499855609799363597962431611654193909941990427273072710711678980089043719932958657886658397044521085655145013960622913883512128580372247110394741752897087050605427648005635819993680120285344126447155568778998398737171793430392665494348194203211892843275437476437541036399416603711227485627514709598300327858492395704463454375896839736559396725793551758104405885147869699332119481932219059150871433930767565242397632524981027400998249467049607310602811140773781468102204560914076700719159381075380714192432746023140287571095254443847622213542110353524863408200970347028652945830834166956559468326888195873636605925979259112010122416017597567348877329107202344049351030494763013355784407124155586573031377272225684884935260358382364088769427015647640654871420811333402426330014632903209313673778160177920978913783361579903202742767572500985566319525303253218580856723548943698292490691166566928932398733636541218829998984555022942810179374246639540031058636743562151306971860656872552453498243080536042535351164363308382444364932190360151892650555820624428798290791590821484141524253408979682500781853814663034169001687534711939531349017501755378281778057986103994711079713692260427925499259146200083121412961497432503773443010336339114912779025163132531987914426166337434475443150186609013402270351944704377936927759059169085799027046170967223780663355792653001937569079781236089974635331407534393132073135565595328302085287144168206530250595136200329912941600270652929760033058639655338485217398016723803882692841229384592028459068319887201407095781946881831346099229490271055187904418727139456162735447945850347308034856595073081481836446799673475598054723851526552696087186267745813815484693932538804675962407715151102799094231972796246021865616538474923154094200797617192815641055477207031875312182397325217927287989512543511671604716483084576566881280366361903580203982881617049332383529989045567612595688646657350377149164251787692277924450735812870905013023735756427016462321262698219533165985913938961916269015857111952957673855769585720465596973514892554526626967977634208289265092918612233500532676827972521119728789060176913108045318925866139503924805333927993206543619634180836536050643147576297111136227668330262099616193491033892512584142416666042846177401257548446682914413278772797634082931094995934281275299626027516119931059884911053044765865418420112382495382639115651085699079923482409458088640468832071933045709498143332165543476970729225823159659099869171940078535300867213982711439162308909260924949670806585246173224121669888059422307334641379872861399945717992378147790970063428944477349633574343736647130330430988109667928474965483024647192662612350598342613190480110011468013470367169223166247282071982140240298682427937291580523001031413951303274528526864450204533510998280804184961988167610561268175260388045613406144321841385545816606668246649608863235503528290508867904069836505889345166977739190668373233974181432226723152446241488000653962349647858250901294851213521116570085441377224628810128074612343318803607224747280523802611119433856910983313317230280920751672803762182820752862775389506330061410798463771108662759000037815947384126038846212432791746324502556201538513891196614059527870820187715398955441803017165297912071746475962589739871377064692593408894179569393557599536633908198048528175549119452296423304026811392304303263173185702538032270399459176611203296521870205751842746949258628177250073343197240099092073391109111091506985911148302298105671909508622576717273322827842971869349233923937324175525599076480215074658569159090711410754060114373355232879946839691502888526207066629254863601281583976721004293484102790652445329654953217671286093868424399179951386986938575174634186339949479793814351992839091459321321574290131715495627495057437607467940295226270019765089068097021216483637995817136938086861730278357010022638287333500411374218695123627383433226708411832597932592370309356168536454375296585097927201336268816204763728848170936952496937725453612882077848911143607828362392926749957914681419447686836627297601658725091175017280378576131785827201298982758427304802717282856348586742026297020245025970102795348298155829460444256643814026148326979215915745415843663091378838015415581789650799895411186028036408659545887707854027732720849448160726802947728085097617861896994194134584589952003499341086976562052657270018569536430344714699697174188989568934754523416480858209990524635021599187012252561778439883550105917037047633051592957168836871232460071490238243894895875437619090953981264537529372010008656383366623286227525367963849620381731888470874866179469707920693902099760953308406226892466895505219782394809874509930090496832437326006041208789670384846839639340070701109328149845879477257379609613215938060904265865581406097072934022042772194521422651887184804040437633531259096154741371389986625208665553220309951016575800448366078354121388072025613832231479258209509344374094706334278935224824031607922243645661131502908406793336459736905692594663524555083699308718900789930082161477500011824193505784586296147706847239229886938689329829663045169080728650318386777017956757558578830700510487263039939683247281568200518800453038761668640989954011946451842481068385496294788289675615412266891714646008207061520001384388851604519331650719935854077482234755293617687851977137882470125867182529249367133889072473841957182238077465779963370709257862742008030684439410919431537731313674333230646589738957140213422323155239552035844283580699002333091965459394862801253731582876017419146333110785137286959083311433851056950514901934700421224930353412868098337049951109807110400294279629997610698005575147609507135423804804420103597979111850949107543918770280682012263573595747674210985577410298828674265270615993273196893136641149196041219546603920695690665887208958779254213866519716403909883426344484194792493456746980996250788091764120526578442459462546789021758252389973254355682997838401888862317439514411190491052544959207562589452557460702008153807852099261096210675413290677104299181105486720304686218181206268378953935275422431999735728176224451102396165632442675407519859804720567370640857872074000107560695773449696733062087825435862169063057390244770912424814753197396401000545073497543147584445116842740907449730057764244828966756336790567575129929828935953304918433754395499946646912824650846030770022803712612546193278203702400313252085795561572882739773595555078506935478416571425327516553946543539929681260668186949354520752400927872829196935689960690359344315328396190545714583425358784623340588572591854274020233025525991423075273259254040891496856113742684150649207798674973901011683457441406143492961350266616149347234348285499446341442717328263876089303621031508018458848890433662959974901171608162411947600961011812677503163803381174820892084902983465329186409819170427051277378173255345564866527926757858104911911858588760181306439590941168325910662337081139192294184165657640830191834819960467674457140203723671940503157464483556490710137303282956289392048796900763642217142750787688019023838703202726298298248515171164758473817207486174341461405319405180121688888346073252526893824631437851636253196294284465835391722885139182364211680535589737966792931265020569815095875102747152482438110840094339570098195253023957092220342136386153187534742080760094716214527359969831805353281940978233640319781156389789064704846916404703668216540295016162844940988895740063046341663949805399443507260103035560835504615518938814534103518581148429665654121036828531873279917626757202450723836071967445695142112849804911221845618127176943125627483875450910622946831232364016114425317852445965187499933258491426809240857427125942230523525850861066777367672912498627096014831345125961416569205817278843543435219899233980954352181031931600366296126373675074754857901114732228251773265898037786437688171948599848730609420459070808308386056824476744464237213136382837966115006836952979020793866942562156010439939310803358972012625820519926796472625760022405295054262137161689283575526697950310724776727678006005905179555512733547368773034744205759702327171777588586102284678160503506454624428890444264519219234689124424471780809335929639182181014215571277246596886029044111576204243974475836796193083366560193501283000811854560666701705588647319225002078516498674414247547066736544287095657591981496660132482739580585875517939637186735750891438813254543596747414295642892049991090234027870356911838959578937010978088876857737098224690943015342689308451827205172189909265802247485710758816641292293270145238674847667779354457078700901130041766153729477550434083477357854589802877439141067110120845588084419269571134808487230386159339043786326946985435000937000351305086594702029947362269800966304018713210291787800967316823776672952662798230725970554019597741054185926806088499988266778397150601216305506922290731390616100893729680598675153184429318410120099114258795511960388543565217173435097706927379905877486648358094594695479249420319937940926243489393393531583902393600790145927722988911192613205486511360302617552243690325519847846526955702257504255932995094020023594607164548195996361198549442934152490981121045670379890599479271408739331995015186664891419466835340038408451706924536342522081872068992332635251148261573017966532885312172666201123514204681905466554303557104760556658279058938660496448057082800680553735022083087593157473680169915295716642498753933013014429232843124450095291536153162330344973904035755100283971496982730872764098746281137564311550286189554921036741203940699635359188629415746412699700839693991788835697801201219229489815576045272713008103575228980218533254124034860659180778446711227167271887566794251147786849951177836170094718355175762191095543188798209643948398844755891410168840509636026867060353667480554025279677971467567710574067403533202961820932123113538931551205866245519760545389648243911045040667829008365334947486661160721951907725552162365401633414506752153848902875437347976727849675203757638036532207086177960463040833739166535416321812673725379644690071496033712222253263073198838929616007940954031053831861926988242449703655900289506064871678929697719411588073225604752621730546327272396082567531909783752952927269447190831673299603374707224107702371978186039805119209407285793556043942562368570493751819634210650679536939539445661150294702148984565893901347458018953514839861156569595679053892904226315927833234785044574304360294193781686787589220966404317871343404334149299760771109621806710184590589384453907423903355830772032335117331527551702737726330163443618362342576602685530225782640711077982344338729575359422432808899818623144637466711023290610126772769879307167127379881745476388553924612308769941784217729914400444967734141329498376740290441993897659499818054785443666821627278425301031632150421411773513507441885853902904364997081589590932060523039391654613280542899508962531550254686811778183656847440476856158058415680807230443881211674387254287978394703826277813360830556489730591955589877311385704902316604987204100617536867926812187486997105888412641951214141738956973741390928471080113192398976414086871614047548019448923185212323009306962047046852200623981723389442718318373911109040706788787720046138437675702088422618514009230027177484722780126189490944793681632166315110760053759012491494554583378993414663863516106203177778087383321088192485272725185312475021399868620215479914623831400121396659373702339136080735451984091735703693686877999346406001117228257754333722598851323929584494728932522929395424574824991140435815321362689554411252568630173822684951551808579398268159548983712570670545617287387334994328855780066954297504737142306155612104914075727433016961432942673008292683671441226984816334675554581656389125211205099054821666555707759929405981181424263656295428154374448907532259121775827809100960154021177118207470404163462918771035470079563462362201791605807855108222178716943125475955458525930071265212260075712710931574208906931296470804036057326728073853943442914759303922433704264778676158700746185144342561904499784030106436791666217767688461243445052223094644102597313784382214451350943458357909324939551270085345548907593573574966921352606159338931848648427569182807422847534534038944168343782498625119021805277770564630903671986056065484592499516259746038035779223088669044136604664727070133939063969762724754313675500577069134356978835078120756104812748463538093259510838123939175448354620717282129175246472851081307983895589103385909397892191418451483039654515790823158098700641254725457799425791704492270087954482355378186458875472910945319890058833687682856392875987985473155347497717453434013563016645870279627415379891190233146483249150636163306368983038688988943338948853771134411599508180685854277342291702264125694721669254236253697469275659536402265854772088820664691829893603209104485087669840199385958359842370430226913078626528525472628253017724544207457815883090099376980538990742594071787313935941520917445814361832532418684678307927037208674667887375228231794508653612888183815484547710864178067699436002301683284825358763516136793546849163558942493670841903445599154844989313000616331520173130538150947454223155660929044629537122995867974675421348259340622063844441903496976392069333871056835081532181122276428169483204196285227706811238989778968930707420938511866073439281128493810782865455979750307487671474424832661635687666528638128277289967542992616086263487076793385460741503926436349244708657280072275383619993373305431288538912778874729467628499042149391850709020759112353895933341919769674231195694905059860820853303263600966043842913395336962941818271315185349673463321742208486653601877664334639701501722604688645812192237531605517511475966456080840667383188374336677158543710473811792319377113425675439639675900655597480468901377651066256602423492412628164754173776647051967241550581626135094904134468837051712781998367736338816109292735707987801861506805029256762202161482208369484392088037677530979431938809563538764661192435523831400566115013761399011681769956963800250758899175756759184722674133450366070634110496710712300750665487406092850969476433835890550601264913888844462700074453001466220037916575790520686815521896497309426723551625622226829489420202750818205119706993803968121825291429039540299620075376874122101936958588607711385243963681914540934511326274572837722285925182578589569899549462376955675546521469590242956144248098314014487821548076730349369855893942376151245858194999464489601866287696485802137123337067458305890345962251495951093417240659201220912898665055758450289035357575882223966684490461529770042481838165193391366070240990314721170333546729273760777139183295750838608784285552983110953708799061052070753833316383591314993233618417553576038462785490573337662809144441605515471161893689349373861782711248566448056604834772004334846886505636854349435990598463364586858865218880997244933208448228241391616467935972214661843648031995583644337751457976129926398509332610038251767271982119705705502861306805081665706437409171891220286103865083011785370089063584993640380412577120048648621023425461107698449372542259287902556514198206502329292741718764393435856813392225460839103820338067583560152232807206403044485203402389496108000278445028586414351897091249446106521951969469624178083149119140598718221078876418444797837714681234983385255690094069074848365157114756547682381148739888667417351361359197642082211908547287285668204452391668433864439133197579831260928985151128533515374952573295709798468001422829291489115579819520181144717932935902035335257063510091991691396715677080771968486415439777347594159655768746920715818573628917809650420569099474914819100426300996959701187090755491421555269665765061064877916388867787126054135024494337271899235757481513429241714353926225149001863352851139369020214072860528642845248932445137904351998117403460403420764017731078707020626353205054945664076402739327575249719868518437998883176939640251010330752159867588906645950401508737889515022176551250475285402002482761560440472270094928912156230673886453884639196271668146919859261906886437413350753640820361659608713075695259230594846057660072458362945668786177377669930669724582965188916834142784293581120260399433021211968068020379130721360686199580111650943626078725745941654053719389120478494293126948872602408705316924060137870984452617735283215115806272592595429547728915356755879061024742075226916268505068536315604160462087018362588885242880989606334033134539371039815829748658960650304853457189961297872391748407350829143245393214493407466262830803658539677048758135231318905834835199299116446803234059999131808660772191851621956066234440372944977091422461791787721202863846474753944030344647469107019852535141548654389401688003741128190491286272329815847923217649213626277993192492871401000176928106002500429626438578568463058604351573204804772356535937821251429045203092528595021797470711440530704418998081377436162536322353544909395787998871319483164415554323847545491129384948241421542820655193221260010700300062275068270591149906722803973131897366313566287340577613143692283577355430802795834147146076844840995584770090644564546940771745957075012831413852756565304408089893584788705930465669034072874420510066065691886462055682142988797490924299320423762755890403175362075319164380569880018158181844517462052820363781736891286185147032789352875816161416002423385610849474330085411012251587340068136600514531224755953185989949006355680120135186750300901829281596856731594259144717517361820222545828117006074193120235043864516968009302922572390911921458743789397737650670321413039253691471166322261636110755633429916948413289138716265650697078579532187568637856652087332938786518161474394515495700228827043248600034978082387567409587657096224541288756258589038633528455407377340011329425158178103358041622851437746320238647677481112875541368725941114921540348033412894440719746030469266484802416030786830454906036360284214349777633028767139331184200424854441143712186208329798193474504847690470365834940173211629782338495281178595367934686665053307852911715212880920736333261752437613824340799884342257990273658079702752899573861858884933975935602453163390890983306437662103627631195369592925631830813729259974662023340765957699362066380113431656713014949615594702237226874355515293241360069239658286319429008011488995851105320148320852842971540737898802033369986223185903081462079786103847280080659671054421844304638909910061870834975797725542933816686594867818945813673557964580978190699933001021374569007368602091608946032844607511291858175182643375801500981103280095660878585509027276547630641769019074486206266740644284168550657105008567564856908455122753200989158643022543269431691789636008511595504955968909790740179994599616349181457344800334960919080000174586918355567614203585928975093337759388144336991570098324395476715149913092673443909532803790817127704808664874149022760690830360788438889761258384520908086735076982504549439638596991986414851172430433905949771553065711970966963520374935392141769257892040190647850226494830486054857536078154511403266568200169565061893401591937696043816621948565696733655999911898707191208026295223091332354029206555014139923465392767644016978608954648808657555046823765749329604285216824476116762576802745494786773857815039874522046878406685770379382757804088426444672489414922088588128005293599638445139641567974055727419102407782168969021005757601824131895280980508975509110504254564639918180099322083041868970485249802954711418927665850436336062311669865440269714034971842437673665149280998659309356989536924219981426125496952159672083485262273441437344740157934403827266892220328417699827441284286613799677858711377418959030786756460986098459808072384692085515243141591488209490849634822371428775810276459403129540913011085634071264276657018367128068219418720691159754702697016417514101514307720687990164577077611295101245274451087643461026945727360722577593614887590172829132300622570811241750764315940172677092634680695243230396776676218187388381152233134479978294112229142957637037041406685606429326838128848716435597770814315962491322947602881969457005655137297263776216438117769832187256853783314519796368325371809954677104938436182467347406432557210558540495052405850590625227649142508791854873922815615857072632809128622244641334169091844053535872111361472902573953628055749743934659473979034502663428043516728702351025474532006194552695755489628215643254066602603875427052473835755773382991048087344876703962198075261991170061424922124335045767272093816563477842821173308144903470821597075368845441847513913268359620848669401448598533358041461404410097386569463507332798949988471266343928812383270374887596421885163773574654011690192732019797982607397536252875720272071454506685584304277994831214796190725807713965770137321201579832295849530162345440363989183056551255874074922056554804504278752295718323205746200070319027310106795062527266740448497495450556368671257675481138672647704588358713956699609768448269299965805195886843693369739507146879033532210761069030320658191030208646906918640210888203906599561330309375801242935367184352570432512751204903048228284203070728296255231539564419896685936324416228098569616150724073431721868074828363804750501608688049529931977087640158158443180672041802667981707956909739495929203408886584868250240337616021922774661039540927104878800116689679621453710989844701204173554854324362618104231437931840266573257695989695531872971660551501313453536478512080627163064836947131393627793492526056042152455466542432081139427522129100954144237228800614747907061457362443339139920212563625566764256619428563067511113490205551947920840935110965340558801361614403716321209802883478358289021677469384163989101457906728831633793994329702473837020311711131847111625621386864174045173914063783079764980732986094330744576859958583482924038316025704706972014847288884322278770762332216547979489708061774144791862554423389338858295310861079996028019601244941402148694373694578929823660915458103552755104840089625291455310661157303339946055976966723548872345374150189395220069267910385302601635845183546524880082329564166560880208063159971669083315130230137779817577529806627530450106167875351211596807822064137503100331430271303721393852536568028457139732002772751323798097906209376479531484661323463974042902878398762412666309246270608508477730710835921521412666600878860734654222940257707229289910237669691016795281121130715550903158826046187575624384100870569201731473137784443051480035064766234206763715737436870922395795708202287023741345805784364157507468094116949482178218617317911584791765141220421197525822575964011923782125065633637629490878354391174234784741349330000237135146842790737789114046635377422798065294388272047385426400308579410275624942188661901862286266656586630301770181628336734631324248400597801608210239800648258181280754246288997605928967814249045208348389669748559023242930447547993229007762972740134726204260911884217548771003597014732831561634208760155692817739815033065936220779246989758188242349296984535408006799783827342038952335836020025850285519426608575158038817545873101967853280655806079556452804430305626632386120041848790639717110174804181338258801056102271178338787656126463484627611805389302612920698839225502323704556137337144457072815969050912025878643121344832212549995749619610529197107252303209086845803523586644033864602761995166525461192709285028441551526270614334552532397051962329617150694228659532571424389210204320938203027021622648107227027722350498517633155406595526655151988238587402273665909738078102656915453561243609293873703271312781905120794373038567803114243690473069786526335490202727306966587316887321907302574897222114064451172879329109957746198166878098558572043445303985580508081605964862328154831135499247993924825064044035860666117814667784769295615312451781100009458617976257562178955599824337961438732483878976331362845779238313678596323837625538147649662233171760605317354166829583061431761550194050326013764715404419473765621699628027349702788825413289420989283659942654732300014776618360113608734691877878576439703545855813412346905661323063393935365143610663728190235926227031856043044044003405679927247759311718102725934754628232092631747973827392653490382129643061727431338843088636308847365963538167251861606665259296337338477997674459616482613833246608259538002183802056717097024610033000728319787121967090511973891773492890295247700442546233288571004290348200967274756145603358844042378507450894247879577761185713316649171885512500888588797272271872004892310214448928192345758254731700232095487183876820068162576097796231413276583477453091673153376258267969521889819775060919688485285513955038908199140517519223578824698317268397219954001617953003684244164437796602289973992567070956880408170551631419627027588197459135471428811269362501538394490405901625262669344307167028683789024439944882168281277438792136288411185508579918813720282737496112332095791545353714432001644909086605143972737292187445433078456486010721942601799325037538314880766117672743981800333964229696663698623789665232842605837615091505808693024418337823648833178569103951875036234618745928715110953598648304254847249340682155755274137252480618457356876083427325671088703152856831754743917952614984258471680624342491807632105822719063890385840633304404151815146780675117844481409219698290107758737922989370085092295668930779476540579661306286162642348448957893116106240072335741219599707460906039771760805801725089270014991869772077909090788700349952349997100955951187559221256702747457090197117027174862201046886355683413853486320210197662836427257255427916419026912874923787525264936766891700546784474447571728531276300633331153394126081555422970803675886015673872203130710062948734381503490694272760884293820542127939036992709246732290011003203439112904375529831669519770310881098936365353829864350317984305426175556265571712737462312403584194123404837178952911712956880965674792533223305749192217168741934723395587898145047081058961316145874107014480217191950530827063947797505532240636455858914930114933183429475625451828743102010189180836853269357011641256134397521664551100444380916484828782944309157319731246703308333204252005004231133730581192463302738527798513369866055817847011598040748598926997293349424347308944825464866177161981499236193666638885240905982024655923102518200131562245604702204772469148126135005288799117296939910345467230120563725550188304446210652855849060048536830829346551542961691672221515831259629623517713896811054840556955946187074964879676999127440917265657499113078936506707293718202053724234906501436887361809543305205025745531718439962656790684515795953350695730160934421148928701228149945483754155348751001119295929861346497117249555781996369561450072154837301607959805821616074006559531997852673815915833093841629199250048413442045803021957790905812623254720076777351263799694659599376986791209211546491916708706065427999554367793137571299859321123971438820732271445287839176541195252466466333046280552248971519265430032975444952769390811313488054552648921167895853025925946020242907258244257455260265852721325732414698780495405363978814751527543685074065640207911219511239999096690999521925788694330310067498487088565242807314935629050744768458594656823919184608328758767149142815013660344704678104901087375468963569157073976079789438409520920234242293738500680480633774919971909908733358244535403736828642244155729771600946088808169001116279705168315188764541793288797552090922111492235835646216758654504843757115728133365414842563509974496605507142832089730733440603536137960380747829316014319313553443909888446607319241116727486840937501748881702448087587790304588480732315944626758686992034281346907019860355486818505574243131595554026318063237265516177637147749493838456745114301440947957671179086501633535112108202009489511955106462868773229215345702815178928657079717197298524286222159810932252901448605124107609018393433608940625588315913036476745934445507369596420015283130686710324578891801673296955939885791648552763066980309081485190115200317933342860239471427625905286256542626987880931564034589016864189262743766118641275464404138629714171088103170397576313120930251227336226028063601215950052658823253107532866099353520580365551382938738764476090343106289800620324851944463209569112560416732750797445617723623275720355222275277865649917912181129163715291559251377399073927203581741884412409431055892814944575291506055313542282650230919149026933286611535016268697977698732663987952518033241046566310995801618501136806713670449870859604124437747456541340431151443214985595613810487108402547514325949712834949469258816454352197159878393183485315001755082791956845947674294596144172878496384051969439759418988111291381050835590621662159330637169084329503897919521559895002750359316088543310044441604768151589966746174621290966565010528990660832592394403162683430363029238597355162279001180323064467661532940444663520740987640103991897700455412125739162652172170221696421571686624642531363590758112234350098419138700572616181153731760999653107349138326366229646917754967030312814761300709234129224104718499121256319579377070700424213623681793858581099864281114549540880458540206544800999897139142326294693887878496294576516043720231402714421284926520242600900631780567660448446959964686926095682965365387046062282053304081824379650153784016800655413653340528910826566007567063005824194970153855124994502659740839184310229466520529568519437808598294319083789809373657264203873029166894411420459445775233856659818729391566469328267880846466783949612952547712856024104445841134505588005678224358575792463686426572788396267993313010742991388418365541971706334625719381678894699787437150612717962781715748845320333734678351017547133485644029183632355599039004845222633368100948521385084392084594857901043979169272832819848997603529502260558217600739699607865512025755116500665721613122186406774541380019004999723901772965124236312009083216570997866395917995461577647866717340705878076500903366503024766692161416808696006649454240450773729419873300668076008397078455912720295050800549763655984855775025970864665023834958129301556684468067821712759788119753112651891407084675022778169928965645006991373796523521654808040951160771468203906607239757779202491503887881640118249875523394603175020642636676358578584572490342987874971247494542276259172836441690063163998068215299337756427538906032383528691398825885111845747690518457011744977919153829002802960054705648976812072508077447198512177322480642063274617092400180831764238435731695996850510013087333795293987561041592939400878660621667924939442091256689364876049829347086683929031864646188898334804126823147624475085658620899001318792839831799164674165146525278954421715799480098412064806199656757095700023025247550717188135736190263694234651539879874104140660961026188189659084752828499104089595200850897269611250573156319425651892315901740973220105722525160307570186082735525201044573647653430090556605446566226674893258280925851045270902157953132270189425437200073837837527620357584224152332679352676463934177903310665390315666756497511955713976665616889946837777077906742393629730847753860407222231129982393755442057260122803620530933970471185239371708307719084138139490100065120477551404027340639000373238032363906417853111628888939233386911595588429370707116801214066662218330894498926583290036420263968855793127498121382687672000159747808919718956668266931195470955832439479114389519419305407262705249813391708347159002844015531684180876201439515400871294576887264750130896353365117957188084666620200959431957884587597346152695980116805154434958164231968923045454285797973210787895888217619923920624862549272443846237030956319640383850634728152408095649827148428327246373634898191653567135505286124290498251137853080791244352034063142598768229026822042075007479279410728542036153296322788754884959396014112534240674026804251105256858214081416631810532583280218455785494346484825851005118059755953091179201226504127119342357804004782605485662524494296440286663530631552714612147923931487753285504406395681760617892537835115039924034389774005170057713954160806967881926301868207763819162427050140014543717827273974293514711109400894467776246198982687956481095425720075382508514136695895453801555390473972851225040355500880470107223848335771668343825597194881355593290936333640411027973698308669828799379784455806576716600796934708108865241466316528849271904123619007419227452656150288201176040532571326997270204983638295641088260296385974601376128140124422553163350685822642617716897007191167878274970206333724320901226658331787057882880026499329773904039614224920759108372088675200657360221986037057404007866689984657499909474176684178437961233704482724118682859918989155441536025754794967118644676380623599173909638081813689695202026982861806268144755073543561402978364298795001964430700861559767391251993920617711098976776883626462420471346883270827239517126047563150048102397749715444211272681426205710018582836995932880321782232620324591325580237201817699240370079261678025655435194736168052355401021535690248192026898874634344224604811318674048516772121617524420422696654540352262126787701156962079905965238935382407867719629000526874841392354416881302930683208771880972349764739983192647499891433195689587013005387906068115091690795112008034016549096135959938601479164988114640254289244742867151087010867612330436054107490342499803752454023538086616179058862638040308340845824371991331849634978750387451941997492155992387520942525447710067302498346188624632109640672799204207139547561706231291202719007005276007456707968250658062637817775162061113201491956820886099286695178756988753127414715227188747326218997137583451052462208030635668847132358316133042318296651768129738350168926334891412184426356416459163394288940544936043085674404324930888073362637964729841743618020935897311469387521980604571664171247505056661838861467445266149829585088533641636698970425180329204483011822853867492106739133651166905789071644949821434857150978471271061607734060847077254345805297785063028263246682787317279394382579387113409407254230235799676434072957505414826719727552564466362286750826008755143360101459369305757393145206509328794692955791565921327220893977549282748199685497612661332956961049612507359632631332925241288528874846626676021177235615540870246528122889484864222641010262392192020311956800187096525722776453250432034055012087479527651972114362034728802553424452527169155210202917144895788852180232187638642808237114908606081107193494223496938509028947011711418462443167491967632723340819730901618955996067580186234648771289481177211415475745659106255615941977466197253859978639181548433327744116802083503866062797891980256684710546628426737377632201003750449397998632059379140512621077179141272735025532636919193819685297760883988847477250963691917787902681148087122073303863388835080385514002417583495880503062352740226321257613969554368476914841861602257707920393370652173557286441089404102445729308857992707003752720476983456659436200908214628885790197800990737469854770284692345598201434989809875535528039648394339244116864176248051942191983814330227791931936597625576195751962601486921967667330487534289537804958482933174422879632626882489142013439946470417948925131883754613604470904965103786891497714928933668127211067540408649939712952419467279594117355541538242614188682232200101392428634640831883051165323022596742348672479572029729236362679293970644897321167811311924035665807083951993240873784824441675598926578764748704502895906561038574417170699975336006615574493919991020099227119301418008096983479649287532688426066476374691323474919401450254360679218888324071438019769607500884283714807731772880258286487384468239077874718106754805702048915835049043329452201813530556233014483727753980721639566322860038033466414763890796403652776432469228863907228355104859062322979373137082022104358129336629770172605190768446047400021813387048920959573817557200070986293933922234590270463789749105146424906544340204806469410417902848960068081702286556507349657181726135788629827013410825481584322245161530110935204372066423973058240787159894651925557920008693602598893217440134497534012410972046247708717819417604421583568894117337293222378530117084687317620536176915149318114918941121682073706853735808182957384441026377603671353669970705055888926566637357425634403946546394971159648516031957334607549972108179112015964986556755869469378218038977001728712565465484989288509623667252038504484637426489061655723223898926463324672779721537202522174006958191798390587152998488657229541867683700148612781701574968473956792370945611191122216096986509404462723686245279535391052401429403960197556438248146574340607197090066445567890925960214392557130112614599606857591831447517814856870344981355035006397434521967091274640960655043869744916167852320562380477633209785870654334735172349367463970779060820264023786517388931868826465354185500504204008324079426229266982216033655619644862302560301661809514595156308549558563909925374449273391802736228817569810461584216111080073826777791673926919676161084441221976436731971360737624982822863877881548929897874078243162985175402273361199931329036628010146126425330620495191627358465303442697912021044415100951997447566867169911324422006367367486012540966758228694098797413227516637135400363853361248598898617135357631034981432469628898411372858491314988675501734954062136528865434603840167902080933275733165970409002406861873841086651376968835322651788471745125668923688772012806267855400861922344695634733439212190188578036344359963052714655191544409896872049483193767295870348402828007863708411396408277202609067150397115739414640546988017865878886783301855940507841129153381287853450530576787548538832964130407283530263185199972277217913522361813326662494512937971491611880626783554199521291830186597670298097368764728495263946701653512549265808292739052893779060798573718239135475384389151828561923303638186425272527139043787438005843947851405686820878588404041508099779216587867441402950440283144093547923946376358087909316082125984633835281078922925456563161562003511261118051827990191725146683079087364991218604287235544954005820873649938652651728088555816660568751380180559340020320691202450964258713778088067274912931507129058241258563864186555065376671749929891640232434681226583631221791198235473842084471142442152814668975411177861423929867376696934665580458795174260212488204717182134434825512413900794517847691912223561805375968484634304620101443168051437565201029184395734843689722006884393542861616458359534486470128720273135014453686821879313397094256238636709842169438854626872581920681296607325405586339724248739678290314220396506952033058629233670250925984638288844433063362344362109283235648931610568879692242443368668135665024780091467793213714200346663146881611320457644377900110114134458215563538679651655748351031373263444640719736998561744327264409889434821714436620042796300737042918370094888309364416357865833821781152310272741542881737492373919395050447119319154808556803629130782082460952126816544090885802846548806675308724415774083392579141470321864492459515543083464682560510723206029691197474257658552017748115013936666143111961832697410777666127925100884650198570156349323220210510534064730723379711279294801196750598748478363615984840700564578014645103666928393671849601579205682381237857200033907461136622922387151685560432672206862798634483014191729158224415571512573363039892096976565088491047098708387072725508668174488714760394198020497947318227923773562333155451859857284640447062342784522316698521064466316652188772960872853162395341052413168888501159466648828887045665770409513288552891197397887887311235833121501069607438455163710439402403210819817779733060645246919131594425998411513293110516970016288144820357303474785121662279060432344461291417171637391944362085885867792750802633997666827481435961263495640694832449215059492656548168978388701899950692981033343610280574400883306887450777746884667828860614147384272335016080557033233213966918755857312135063636557439762817774684954807799628142832159364983093790899884376400342335534871917354121264796162712155662047276058248900547780290906277431573193376423929206350638351713080421051590002308095148353573577368521686504906105835351851358479187976612060099647881508580172234784241993854093216388095727163244546397076662549948724371263473531583115770206369652155088544384468623689713224542061345903796051908140230266363893980492632118850679372677726493261395108654183132240069330636049767504782722014164144011352463756679369800805190536061739571751350852159874804709366131102592599227642636315629560211548509347857340584217820956344751774671996867442101027436326985839965658991949836803978755648697581195893712328280613152957886605764329295857844391758788239305057197409760571724835933031763453392652931323501036516679588298661172871510952844627797312462228156560306845437220991131866528430865620848988022658259033676029479400564049687078442319377205799687169468164219219132097335007954999366197358628044811085838017303296927180372963944092147068339441025945914381838102924074610087784697491821261740871802610328020796628499379135153289282489356502846034971578019135317537125453211969160034635256034551661483930915610772115917201529803161609177193891216362787931515454463392904746932268039451316736344214308213577987058432563445402292783139477706469422858473720656921035012021709579356933106431713055394072890316160670797023355337047976359581442584152456458001106099085935149458591811096468940926541315954536067384469369968512412417757637792387290211519388095799446366038180090384600181081526079285961283131697283541894545559644378554840429220753234223362986079223283917207718168926310125827654971480613228127665033656220245338564267144217434046959357447559024307464636854330393399995386972731460690050546020677095047681630604575305966911820778661503384351609294556378691804643190814840474928143557044777650247736664327108518893844999471876711254284356718454411920811088036355275023937901679311978684859531051213608738417408399007068610129270686491108115564377158508893244008804407560482008000257098761102551025811880511296283426817857361035392735200217035009144727277515185334005945656953639646713294565794474175780336532035417962679825066328552897598370605215291924146036750050435431189902669317312879392148905845773588295287555863034030748632012932745324038968494896276498342229249842747030702792513242959900619670655877714174417498667821644438936867365397568477653671764865564428266372902169996896842593703260146970575029991712573182385846180609428693939343365136543401064544216822854727471428658011887287475885410892360606584658502787104297861406098931782632013691981746490094842770263882945550365629831111586772320787237350878412538304179094972468186811079125298642753272118538802108415686678449853159042032034945745355024399343451339853737769261924174235108351658452929136504005373099168926793513161855161732812490411998606001134715088212690657209431896946280960490584085436088123914486048006278686401044632842848654761170576451387473915066150282666605921358098590380409364464282246491905544602240859784722002951055578794123542796712425848503394623564761461096120747932084176614988667917923540796524525458914701731973599793626763394156513810177256731028750048632392211249154312961130534850028382765645613578823846081678014764771043610369604359482035683770531650323788530733498278220003274890143596306692124824190242936696288309064237456531956070546432970482599582270918310134277609839548880135254695938263084555088252783413663009242364757750788131020952743566257766603343049284417276951067915761198189230660663544663763478916953215906823912785435285023606466230479021951492439373967466111743100556906738842974392230906458623753177752087483129377821255110385809003491387657853346632983626446164037275769634967448911099103396997854254958177817989064169329117067619152136486876190066798714677248646002198447815756610658375117836682816711913591782956579805017689995477696946932245804494568860745991084000435327209381798164999937684905530130457707693260157195216958390287871166659841763289504363074875196002398333030147183600018285011302764770328260734377963935246667480578942376239364328447551552707102655949938520783208669858910421356298339622933401137299108395262807433141830005525077074110152318474147453579354593227281440273488015131843115629290819192322467949817637894018991574319478767381527902381965032775803808463326015514546951671304340772420599547613695621867124989776288131659661854300921562076346704582828510942427018480150123738982729792446683722325616487396493228236014462444312352886472741414705619333044368065940875432016901016319554090506836755147111480767613656198126110001697151651042020703597732493274239119177715645822102930842680873055145673881957548164731108126438877887267588298367181500221004560298517132391923962772779902289613373309044509115594683428697186682484640134487021087982938775437956186855093821162106050873167885267987304955380197861263207120860248922704118206731671726765853006037123209092897130712177188427199594862195251990788448051786860505129954820562331410010891625477519485214892688390762690437087941446115768820632453755520856907553513720042959952200796905149224218209025209826871763568544245768971602479108635879083599145764918085213749538364255592176763555769951828892001709536391035072410818663597930282875276659529560658550138498956531273715913635466054835444590587680795174947014331654656286764761909113531338880368124796120187027356217392044065093420440456994509786422313708972642133334215983152428648573040118470752267889039110538425762854564566659459390479117245154336802610990507308378034876971583004032280431694955912582329751699810446477185092373944911931409603106180808585963325092775643655856871139421204279154422187070002788839736712536759810023579769711047864093387408030561935492730968987067139072637619635221197087111905463324520633845870760299170015462936428373556189688737129982354671952637059796284828624105319446298808166934070188456422059012926583786821502625055852662680889754060858792884241829914361250242044595465802877599780881592360938348515839145134473424170497780184379342141398941205976607621703622038480355479811136484243870146512478788079976964929889458840480015604455933546079358533742665692165305608712897967364146991351336429688480112354120415709367092841157004686524871899666787303078297568747303612284680324737320135408000023229561166800569948774797324632251390591814846859950340415904994100250546105732983216499199380355858634987616522304219257918276248881501607115325067662250091086858705024074621641817444674039903729631735349676845592131539763434527329803775269093867014444531432757213133146894215654610753784463867989431869310123300393704919920074337417135710775417348360636214508405398636867609381255875018949857245290779279151434560199868526948951335202721292211923910908561763182254361991948296804319823185233541187709287541128706202975161570559661455802804518690452750344031623911251838099854045460547893930159587669639949076503385961759830469614957969208458342509605050047794977519765228881940946239166965042327522976456251760048428549391528166359107302264869239796768421824987263787102804716463295267871004336481917311145950748472534882768823882335690650888172377971156996031029621978902036987530868666261392079288908337437745956094476163077400425472656918584904304962083653443621289431111000019136955353055096547010321302658201980361333858901008178253229258281724223169362534597668034131035901906691033795909851887346604564059177632554907562633140505636398705884221343477492967541871526818373730199073548183461387840040615983381770790243919700261321891293232131706574037844118569168437391560438983104206974116204190457225257217771188081744944039370963591991304551898194129998027726043432073118470598886538089133220489141546168367990727954889153868652707616519830819166154643984054533685100583226674925516123977383780896017694402479149286708535687784464999823239837579775097181908163373593920002088844554359727317351955314663886052226596019741544804712029747693031334184946968481165495308356304711618405975257227848697996952027974403802948504955934033331539324762889509124197120633643513318395128607241085820802038309172749112467372832637182673107256760842029978526955674222264938084652844093325499665928062782937844797083492679823128968184397771330668838986130323383748755923458068892511093071615387548523814154245347335888378928199866346235997552422246405059490058995685877989024551855181999613593287631086780431900738233155421005286452433045245613402765275210198743543669847239168458661085718731590925347061573011302628033785501422576372450955419194608395014577177859866659348087012675672784906336383569941831834369672425914477139548877817715757271006305885772135477814832521907921986635919546332391947149399738904637091734089412685338369039540549975535139483201780732799164489085531989496577975841203467235629626453898585376270958925152219678713826345414241355237534733328397415572516281527055689188081791467636586309226636712680267498192947297084020519043829485108961582889188747235379012155227245140052135786204571245833011892599726280365291365394503551187207983852619561900249996741471966485106870735641395317601060429634979871087672826620896764229132644834675796241097724646962928084894178330859437249110627449542792978998623106278660151843177978560222205998501622354815398698594920498282225428198903616632571863270049378952996037912687998347493608028882011972088450388604214295815669725232804680691632933025357633627147466787834347271955191332552305878818211516330505667016731235576359037220471586497376809826300564005458679983725296102586022217395758550583150244403527638947443201255711207902751841993479903474693936904022839527505413418080574218696631653746595784486163347375123029813480162796167280024135510878226779038515537273543250297632085522356890556761060812383333364451645483700843127829236477704283209588607039750845077190811112940146983966639243213707420247312446901031814562903889360545904364295781694664115634332026152275679781961095613557440935060058913280692020961366530486975389956762880640556059490226213862115538498048630984952648963857833326098104358055665181629699361087161723593677213928217316725141506659949042489331833137795516954432795060331207689416138321769781569248257013477577003208521635024335268203258608909335575643536957029008974010933243571251104544248205112269753253740518872104712812734865159524584963695606264822931272293005105686810450476562962378288940426024549813199674420225933186668525691058994272438063096015563618217932063884560640065625921170119158474252106709834305831481351066289351528161952314978287693992095539898703069178076126425181569175154486931095807625085405046633902137410280656053772023221109317280326085977769979498067675033262218302896240769505676181381064550789585686842010424015175004016375313810094424971452785513206806507422112296560265847907138884808203950053473074179585404151614650575083726152610148426224960851691951617848629725913143273362403773766580211100190073836030431383697637110691225185042867014641862754338337865698862562518562143280922282024480571469359915597476016983551485398697787328955222452334461299599028366148677908076038798029360986327710025813562963753806792576182384997547787291063509869123524378684625596507296595752298315578085797380915963692434969335915849011570622002713414630467410622807601644765026408102874839982070172901965007696254938787412737114910864896913395663504161143806174012832278377068546895038045203995196773468060670347215211840488031633355919161066570230798681299789670292974404488343209703145651096854137573675562224032065184627256177143273918306667974419586043416318129570853608380253909080512917722249165883234684016058601969939430421505114180516392898195650248339194526249419095353449605891660133899606936457227007523565692246037961841606499926117600657497762798083807490125428875776243488470967852311171035164824828383768828063883305572779573077427894796468722262917252500418648982464505564089029374064206121516162238236842091367711482503994230663844658207135942662008675830687964277487744932152220272668359715181672968688113032910686688167349369664343418661861115223172335220681467513774420705427735991294170847340566780636383409865534215922248470673147606722544835584005052317254380989374613289329808923133898585707375375422958248781096217029519036630513815945132966766924558325569707462000661246117623647047637839132639633319983362737095342001605874740236625284670735711488948671311598703185978700213465747269363219172520584719530744058722714405630443957672955815786680056827443392935657159848698168948399668545147852761506491937043738940957603717141898560957658736367290795786532847050148681370385530456365725457082902811322375102079199370116031243614229079478297325382021602881965754021580225410109281672913316856139255331310396723855241527069340235916653666925064498501092694034973503284212985972810647628013927967487654345966366804335903870939629352108902928575418885289332159635569868325938081288451090182395587909982799946740604414013802196536126650264409772612480237527319097938574035757454113972556891882213031741008419366144137837646597127573055945844143675445849210102536247966379900806159990587231874410126449207850706101745707426228814515202782037328495856922738439249364626489683662910087586057407353214059733282266841446017016721644246027881653543766959620980986699998111957137018718548587607327783406117984279498901431278630217252547494388207151948949657634172586771605984953448713650672913003937353006700457622598420975004962264181244828921140995995728527229816408756087549072231071111972363269140195820859562686899826436856503713874585567087342196708135381455487379758748344591472110883234402181156710926711435259413027260496728942264042607284273201183923644586895813492264738748031696708741304721700468906531750586525681530345020339384205945288451694597205028262126557052403229528011274058892636293258462587185402640763925014565101325419614848557052444957758177137529292693850538856009172347216506197392398756603366178888869527055573663851971826362456250550466914722506346165341080768100006162854076026785059894763728175888008453684556625437140854552713343970079704038093578556530808684326765827929784909084907073853364212636737016083837460340293643141836909208335562634326208887308158783390134924750727425101046248644158530599998364770587538167052225855137993729372915384627532311626146739001970907711403991356840497410836278306908558697475083998677108510011045442255764765753804290360331643622111528658792664227615400965496793056865933300210418277983825188146917746689654195813985316815457946574845906542896305272134220469494461839370273484323288722290544446122990969649940516307880335815714945491407158715695105011939566490805467573890398603142648129766218103051209875014370108770949022168370372795271932709653072521213501201741023633740549188290392867933973202262602103723221955403296608212704335528226607628637907488905707208137543180535906309595986293221461094022112130484479197278502839238606824325628334926767318305049464276827876509767241162577253968148727966717123271004384136181095226820311852690893513555178003660882913039992947480385914682447285196520792340997963108976226761807187195156574617011460634193920196644175124756288437890863687635247744763088868369028301351150591105926097723064632245631986238006260902185513388818475529301990872676466214249005173463489541435145156403988303007504830846079754227700748904707442237772537311572966482550718858070382891519857091296170123726601079103398105219663553068095307528162009956725960068351803590713097288775431626288112983042504887298282165802801942786787779461464914977838113233542426462275671609595052256401687892381338788472415971078782779442579071273025291995049445128940603681167871753636541483961975466490287010665788256087482326130939745507662858639426355718568179701233982142687543680685412895455610019330201394651772644422912026348774395461769165798520160228608412979638814377500060214115600867576316020468061669919289392811778278229740210555909168786117208127082920798774743963662167783519912179710392386245620244248965352346846141981812151623100318362757494487158289290563643233176133968144686323781233186893996690432735628778927238509430320712596183167055437046036386437994371519228200215621826412232783180156839605950553367725688847901972568331434929049744704837630283241913306620535405666596213058492914683333640193408006621631662929087189245808631023125715736647037476603211826053244231598999015538478779616272589430346212284141346457597690150636927113788556360146484476212812324075407032322914716855597293535186708846356705437357053560833837023338398057474128159656672460569609552192962535340813755686433707985431296555849735256142685408102669666134488970573832589807471297226255605008935512095339970001962674402923943323511540083985949375812908743739293488880663070916920909138803747298089078341345820918946230373438481133544974198497143991487553166313587636063322518513619467987168159820267158416674392242503754389146036784922439653132313904117936695413057928947495772258119622439232508407515489133033179922810077747061710262240014357752591680232270611072974588302604833964287036332720316367580569376314861895663978593422589721328872876508205129940057319673326209471014263771112425224545377643026952135194877698185636208905163827302585151277998385458786179083287091831495246534341807778198213870291559723509457258926287940105537539438634126733849183095263555293026386700325470872418929819708758464347683273202261869251686587644101723953076972648695232787865548506381511994899054832682610452041322605121055337273818863850581359285034000519772580655078239196783836488981997535952757180347931277021599619429287031280376276269705756161967344916175875830140562112456035055740083009794055757028841511472907118351035119784004248503982061943952662536438959876096600938130994211448066950042076929304394628361901254276146878496589344346044051368633922823584506670400461232788397834498429237308272078475077191068214482876745544173837461858782508197772444430880947061020473918723958185921928239400102961728214276239114903385287630304687519200461569340485309758977179190074474839800497965558751673282542326236253596554750628986550157962280669019648321788515025837826757535485814628506335344625620818746940987134528441863129392541894442263013246766711788719342910090492566821793351316001105859165009960308750949275561483527136017125066970634989584068958123432927178894071107397671960733811252417964117039413489659882673972933670395911049268008117382629552312811125522935651714211696756897984154371966359077303464846360523282716802997187596522686329334697155998219680992496259754376561978073323628792619848289616543106485180883676426397517710886463625424417967351131235474569905696552251351042998284537502674807341550726584705006420798291118811330661569097216009043586451846018204755379680479934318003345438861960231468951735146803517349046829790798382306519753685684561519686482170800239207501930829421779546593567089209754609632180881381344748408633415692225611256127501859207813177728598625399031404691845720108450871549369857445239474838351878513286198850924657281245922426028980641680675365959394214843279320937283431718734205092448675639082552458088498323244786148026847549868689095678728073153826975744594954383799706659465645292803206045302788924140424735709108412730534076508884955269984055551320189027874777506752291179264695498878521671920427807428604570007485756243133401415615858690040090291186288730431641594720501303871150179214234063602252365430486572054543666838192815974588903431434237020581870364270937444038113201361923383017449265678648893870581352494648147277061013836768406426909996920708342604748494602896423956050213522652868856215740630894651511316717722612925140697901203095632262099900807133873483757423784619503490755323319639787462987374640655623587353008947090833648921602824216315848261770715720588212978372546423636322276934916617924551930358121715976550350999180834914546310582518546502316098505496834800824457413648069771897604941646805806945789671838564964230215834716686767511231977524879893554625791365767131803830193162996044142762840573559555470442926830503663447863714082437396088046158397651779163316605346154786343480945220714723258555103794556485016039907954303799451126193744832444518341784011486703355507417072186613955176895811175458385799906090576894608270743566155589584447233995970077016156368658173334484258953093482532028611668459768110295019197723300833953736776092252921735213334442019455326941533562317677682243760279894871176479921373017888357771205615055795733717370003851697363358855689023234112034528866823575254190050174946555285856096302996246233631603741962993036941093127139582556889712340255439373028488352052097594476264134553689223981064610931219748467921131145098509897961381478386817908851040990249384677156386129032125995344721633645984548601482291777205723275889953631640633216947659112896260849992494036860556336194600261282944057647609156118796596799418692171007523618097196978358308822735291066336143085979317677902915530740377513784791747995484329606302276302334056044106287408407807380402010716237277930102012725123505458121693585986312944747592584144705398391603222672805962191755779733761027129883282639261451906390830028553634176555024551332956907340431056453019711451549640745882991084008678671657333633722172958380520719035593831873831834778916006062859439150739757359809260510228490529802125589036800793081163980635266254333488408248144523441767765880222386015626988899945362207314921477519392482247296636311458223213661829701760743343742789343618909085621984367113479195920949122559105021260843369283897927368572462142142883214885934962725500759941256565206097044067099647117827141633459736633603055058587181184083717358003180835327796870220372441431783567118679663241584703648289181757601417642400351747519222614902106878440249438001876466771926656445884786867948623831479187206794985987030248569804341820793614353377988867045799014204047477086016061917955821657297936450905256139849369184270745087194413709663997193299908954728178762011189700568355325136524123309490575283042894206855977940168862137771483564040533139114224320101830214906656038635089782044771645135884835675942227500916074003647182094659384733659695691667723482496454883209276614238700562425966517519948736128919700382004938086842682071940499219687284467481004493820757166061984474173060682024459704916764137127036518576944734759149674096538658298429733836096741310419820806532258481433823967219863667162626207157491286629080933357876106679098634587461624449376356712873780650124779385990874495762431165218252780343820936825247225545684013135624979970974767675156939954428050056605649516078448467818036771469736820557286803676909272719429332961641265658839812896847649457004162117576625492742299892747372897112272012389930312558123397358648580357218750915307779621794211302648076181442652807889629701934709268176868963591547275832809758113225304236058423952788902688602139335907205513732284041223162015620516196840380688663955269089332641488512859144589134456129256374210260030187409969066278533630093100808744694204503066678077295695481225564846978504350317602680246792182834250091578524385916236013948254346573622480747995409317334357327553578702476439409639432162401365386319555439686004740268693674098031922654727733426675678221391104104014042647139875626123954804513354342436803779536352595131706280644565693056073437533704217572319154615139385456742748770384945491948947189697600614417151246134960234913003584747616695288746462328414847518781150558772914196963847426145730170921986395807590735504941589170930655653219359039073355532947245686307542220989447943537759159753166805897187309090991661224882962937575899672146372171038251127099664125359216557608352423641987807124565011975524914260383837641847824095966285551760665763342259637058674105578802876239461878187198510642989729702091812076578710827758566801437281405250981175758549882598919204949111781211260090462621385900908461883308125018486463998340200324544447614153010975952361508004418109174902737543789040890767756194758344738468363763364836069551678461140182424344725429884454920957702472431372392903228203722779389529242406636619079923871159828762828726280076896701412379985307330764785069400547650417567640193194726940096550945174108250801028040576751132142732413252136313193613611955130377583920007499046832202033094881984093192200324353951918189392393646502002313203764599500120628328119330806731188346884659018705193374333311308849419152094701205028259827286295939233480282175465217478225789812108498533327133568893979682982555777465293384852228252916258186422902948270006443353866809102754343559498031694804534312151534444059303412736566869494182177094776890992875280621418798697265546311099644068199835465497380223689349739232818936622812922822815034659844493574612141621299552461515218954114970280935193596576418879847213234242632224219433710608160883187943644088613017247587411454412773539016629861745627633358485333551855612115870001879527110688041899742398710343083666946122395010894979259042412294257106445502793229970385230220273962869523670287449390901480829440463167654683996303517508572820666971279501808919992550491228330003102247591241961002977789401889593628990314996376633358577935157820952993970760563732150020064345140119758532535190562535810832797057331742400781073808996135206839351867473168061433320753629386010515010940274644462214877197374228575586410680643706931210111790548078800706622095490448377317923212995077610321344234981010143696252248680466128155804002488712011204083509463527454146211081356811193327465053494283652755975758657213462957947324664720208389758457841507570394339412131554572759212431939662776354492532152576704095044736640396235091786727059310462511754060360444926464959561231799023517541905756985626199814424915480947608828866121766588543941710244326599814851785465367472212148107752376091971493894765800180164272757926619088481746502168775745261172897034012690112711306601010965472290871412478461821412056503807033224930892666006169338674830866727269265346499103639479603467236104893780505489942616720697258340293490835819975145599709122355334820100972810532965123701650225383590527724608589971228885196823015738101747519972668907002075001321570837983006085761221730988032573254511135870508621208050804401495460405802138824405235699805722226377161216499776325438365407297739495957502338287320455500558784794894287667260079067125118666496755529576340758236774564486453986792941778708033750333985825928476792399295268196768178879869688133739978434079329757019800012259056813491181721866211285975763724784930680697803895821096879011468180984644196300773108132480668432701331378990655990488479666692662375673286533399590622177756955083079148648683518969628815009974665961356336168583152306220985844242031867615221738251723860779275894317253900362120449037138880319227330277936723521762008503322817288455261015964478831705112931321774638851434409624396507164863835804091299988930202085847523702518297871585883503664267424959462584341668212516468337823492934087839159466074518949289941843817033359121996249914816228158637759574368223541202046749921754588555752359411149715155359764736019925506400006570651270462415751818501103006469935242006077988212793420705335563613720593248053042354937526377732192256712195360763493447744753022022735714358993167248697598458120596668529019593126712231122568711882309063211995390337760413364096974938412973065542828095861000426579321839409951642860269662195768003479213815399108457384264505223066472520692517120539362938646418455307531930600570640599380172882608681659625899415726455224149585050923621128380970201285355006085208000077230275267758997404241287971965194819136217337998917195393569380896170557981031681693986313352039379223011399550437398739937759905625404369027861067189901157666284657722334371439983053726021011378496616855846200612075018914537270429783226579661572351828271251716337263033087454810996177806226036860475707301090402259004289898941773299810515692780578891084480699079978125696432687326202751523038869135464930083851629172843000494690160979811540137200607733787595971829842619564406188446465590220747185520171362920929815550432272026103211066038730736738114592766385709481942061944598030589860110112895961645684022363745420061383257662407316264305862042239026518910181922499926203779128295443791926744089906545281104573391496275828358324850843942332589593251567482179509676279728186440598575015797172729347586001713067371520579924187424518653401734854638199555368437132071712481830975654873089243812992870700543707683269765120603106681284751115241189387812962748719696464100676737965752572937707489434054038538427182299545921107638661344597837817162081783226705495587453682606985118762643365389446249948695588966508745259063022662410303681232950647797963958188801453992009137447522645921706246820742191107286841732716958016962471087257754652734073321588433028419152279130051644754958503855515303332671816515871554721976577706987397244182878781870599978309547325572073570225100449636549105687063551949027106934344758587907494886763443167497951368287470944930743519941245221626993974440281503217468028844585568100773142491024643534056269745697823933628002631744396246655234821096606452953036598346659577075566629219059881618078169575458961475861354427848658316607827075964749270912804097685881437004282703429011457999498551160984502615176205043228641078179642700473151934509162248056740055513022012741152227643635045064622513732070243700868031058019991172893218789062418411760995868903431132924743052686304489100490319906340724864567304039738383863626208998851209107543536781035755895091454988048316837270523597568141699703624647242579739100723648223629288555427166963447385811624126892619544568156864756253340088634612125389162864947328195259873730882472144941685425483031281112946800107364497658128902450073245070844495777846409125903122125828483184850149400132307445674176946320254538211914152120534625641042019979599375034433237917241138812594711420629693857999879197644392228927200431994998362905552572872368034925648264725567804274594729140881038247200623037155213791353132083427945999316216024367142345134451032837259300383880498456423719049493628749963088798007085996800332126843351508598476409384685549866498132466159906026795369553731192360379646260239102346827887541959139246821696188434473391924208079467706189030302768629365800364563804372782909379555829606882733487495201520267922512265160558559289860088942125904526760558272608282405462172533955077030688856941088555906991417577065376505529085266297570610574373674755243785846928277909634166167641938695890699413664749509439273635119718257735359373286693681829031067285311665993239841609162581727300936518983063058906297462535801708736879729840657447060381328651132452820395769066991329438421765765478474758857368071604628560056649142227707523165399039449229146812818999495653350993507651669236744486851872308531830719112753946419257824728970277077620879039543088752721201270974339053258280088880818306044540842399357803441023799924791767700804277218712250925301877113616572585589976456040397788096754217698071487020440622321235318474471913435371162121965949530997154843574897933831984043029651273330257902497201647190936968855668507601814216614223117548265821718463808180788645489019146798316968067688651184283051963573038429604921346808029993349188823247047802527807734462395441377698673377159409852576162827338514021459129124305314987044183111905854839864665126172063733063462778580584009620873647999470193631238246183529816300335698637352868212662099276813444161714876071441520958039668558745155156515349349415733350051724588780549539708103022121318960770008819995770647484624933632289573496116021431345085366575094609260760532202499914867151895131436654387214847958676459467534058218721794682059445061161093441046445231689610234907717195373412902966966704574741957098732849687997071276093933833635615609952873399694386031864702138528999823245354912220496268098193860922980646474491907558372039548186533711570706057861701341300604970375262000161209201584499609861941327235735571767574466089075276051463896000476514732601632262291301947297563711422518362047012690764857797537175399517104554957114287774624396143029068169885471737647671535298004350539379252313936602392674458441383925632874821690510265292415930372914588340427756178827768056595608490563345363897556971030405818802355023282569815885736542781552264261865821031894263210582077504383833965170142275420911112388185091594611768589885294061223806488802590511337124292432772897044899768446613993851950930219600975655353517160495579842518507548735506918064680715492849072368268440812328141331919254658443044658477147915293901607810498970010731454209214467067922899874146380210628694366853886850342105664184790714120399363934239229724919673716610007197076098271199113450285927745830265955731427573797986024019478881185609770336009577647643162412404816990015324357958118941481864620355617144155541999549462433673297541779131984259099051215818467196996210141369044638212134866823313859921248477599700202234091735112331206392032837832758881573283543245811245430971583318305541691699774176806611700899982334892768503247888048307557102447391420841909118882155345592938688327011398199575512984189117784584921504749532901786136503393146490933177190883943522201151628476708172754659134638365227655739315604172997331186581558147883036984555176541087017349809300990087166109365841964356050740876919982084062034189472544488811363665053943950215121412170036484255850498952844584772052724112950723449872679948431870141050176588954170288591660940874018544936151805475658172225766030564718731689970909963750042841620469349067327246320970411433429754936023180779175115799250763992561431641656865987778884842128597997535880234741456026514600657111712256072781927345716570648478219658082615364619361437285561746541279432564265735635580655473741107682086807062007709244490410183973491460330229534292142791635302617110068252966583342079210811695467535218581994552006758243400207716433936936779083521595810615791820150520019616804451150367833358307524235403346620223352304110744128129639710097909913542466260315992464462661396709872975773405750745046810204161036138161156107491989112900322284132541788927661261959426615963798619694408575083489686245138598911958220929577039604885109627556467652569134257889376610820855605648738794102656989843560742416445476604899640598395055553510055114158981816151119310776185478641361524949450358394818576531920801424336815620608076612200168478822197021498550723394080287193807003413113747501143941654941428068301844988844916620748510666475050772593961879941402485939472508541899187469514802244458426607841572043239162580307587304251504248023452709038840725266996842999005333904908197083391336548817051157679945593959941271489282100922457391092619811570217403184085668029660177787014990727091579261118832634638017572791856842201418936746827439911115226526114545586985483340072999300564245812330764780756835219856893482908318391703467389175014801309575425133492843645540968972325641385356507062942063654866155782052789368391987070518276539628846369983624078018570281416945619193851563096878118447946220433771759932271274573839907614355929009185338278198550920263911145577701218377239340234722279114022673275570768943852554598886086755599478139819335400407588887436528263167313576790749847608361957445926875112619587986468740394213006486727941281879368545804116975464597141792764034350490094520318799336809660249152813424993739631815867928850276163565604231282615040873646396484279796399764836913195434438289753105855143896329882962473502116516217616094348092858774861666812721411287143488816003211101080481071940383800382879994176621056274494697566558158577743441021105826849190661174727370524156383916744612146899504698296413100016397413033076460261487130670539811039753583173473499655021641303368524591013127990154071857199599863737275093797901535257560159369978481659061354061419728941387828073620474583907199522364412128950455018052734925523009380800725669184593515326501313729877840064479480029114143391935228833806903298224802938984710120414224696951938598011283899388422356752151192853218950951119310637060064244423659550380255776079724488743647062476549241567176755126449468424558652751290252253915050595504390781207445313540885540088220575956279850237544743514181597767658457066699993522698713395426681715884273713887611252606508205376763351377120451351047841033087047093108614730121495799001819566633417568202820883530576063539546861302919780196376493834893734257269892603268457202896469082367778301037977931551456538478591348969009724911640289500865325425937856854346219199228475805085749452661071715347060680304785475871408955263160051933953626037165743286251972530320473639850069518492826855979540745370658127232942502196782317143064865680758460145186950045388835878907764720216110942215246594837935979079614862636207990436291161302042837332557514835536324779857314890773317031904627513378348759058839308557240926684634358358611795266732204447356958666615373280046875889992317981670467971510864043258053099107577377824510492187194386499909926519556068328961929575711366131146078442221148133153519966545773514089865181900808120701951446070356570021708647307016337877392701303429818306883315646278209343823183233126747073548818423339257908075219284940963960204602340164663354812484885236613007473407758347959942128390462437386982186141596492821047595793382613336848295848530614255224948571440705822869674836056561026279931301446592805044445677583800242871354767421166714365387999796847209572285174912664572753225987547062356513848315875567159393097068980474988827229331931168558741812160087867481083127062642560180272578696042596215712623853837853933400842240082131870187573413296291506920464061020655782326065812790182809066719258943073080423679061145058970225124666718556805827464099453931883163074154206398574700335873019320309699024382952565568311292314556774875382103715477704397862826572574846242485714531836815159782111803840758330733281056208811515839495931668968429931336444254711107083576927969171552755000440333964879410405335319235684531828092849971335186054629730158708786450847969574880252433143591221886198725400443464129505048856299356007160019578021200960905284847032849961343053523338569310726069475195655195145125849874196669850616013339968272321564778402184968596936137058220536584766254277720636084629690321569193309595921749070332038379502834012304175293170819396706223370183350746118070065969352361370311906033949823530736010640907149161280720575198113512427732462737145188685679335034619437083436215833247928912192101174253632845156642241578707177015854202455938971690625474234281814953350980243298558357804473369728888216396753177803174335564491191688647176689191804386889986533063257654746994561658267946012869647047304342502425476705125652351969613807463525686280551532755398408607940937163434451771016215670458114909278178852746642396830932118934225102898357947074441932020939366201983721799597543658831460577343950497933969968539247475099450068139607650318486499190220488778646295510627977268580478688742635512259793689816413009219821393856825007830567361418222077302253718555625364151491699087449798502686604541136427798393310608427634627355639478033990098995650373496858268857229499897747152966702570171614084004068439334881183786646041553103961997297378570646600860263432873391815246872983291182552812162004301378656369593584285201551412655134473668895605639502087629871339641604449636137882929922360724940216818570714422163088356256959664544258285837422523233792961049048495844452300169840665151515020945713792598223966972212676710082837691850420781117196372777154205799395404713234979485223838612972183184641807760939141762696593151484573774467035156479863638239468290704626460623218909284429496706508067788021296669826353574752914269956107657190547938209557321365110898894776068906081332887303184338702928187869618783334138669771967465119595830001067537008111472927817841048480021662484952014254896819265453206821401654785426964211815140586290062169013012256819856103223969814721827633547854492578599216949700884779261906076181418133557475772242121119120851066901651436557723105341698719763754094157479147790560068311837580057767484025109606528383690280876709426462782266868206284105966631528302547312730341447468684699891510640673577626107393374497555826287735142381211963179626720037825312836254974687340966222558926174139519009221307944628875521985417424598569373810993934371616286586644312806345586284733194135648509794457265227381077245692557179995788213892903099412963963526579623459836860287128906834876124886924525706212316529155786308011223186939923657787879052174733814493763300313422315423609259313968577054402410352952786134903566813508428771912138587897412706381022312779664985636256624918823786001990908337553989323720703657709858829577618203539635755517445314825165260307061204448797017525008302870415338114088921107659853326080995863134823585457090952183014302988568675373555319979538717221073577086430051918306592609906380757874855534897092303741001261336170841693025881838531912245916029808499814750387446426502758533032938100878576070453567035268231569701575939204124891966915504289600528016970578704768517700854319410098055568695282474262409942415934694525810228102477142629613904257394669822159207649514939500010451187651258147591622331187548532840518635803328077285583870282968832365143486406601135943913166561690973042800355353851867401111907293098371170624871248759779348444670847666290756485241186911192060873817217820020334303923882493202412513977209404938389063394977471885246261316734009825647658258177500948562586210725142686846756567488729429109316715525873796859407312540897734511416619379032505737926615706233850348060791084711768732382389690377292058891515100373537698644172141586090916343467695213456464710873042207853708362846348982891941118949705455400061455837123115704066442586927255218642910085878477590963826029443599856775445169086606038846938685038448247265219047637039227667995716402070704348006242100326802853572585751657864184728879755593049328164688824377046802348239013344539654796759541606447441754436022366459634490312776587180306861798077587768693972613381229900879472597086213386876314212787702358898499095781181681342039085687778219204144883652952589115839387332153706307689650038162931604941374899140542438635774565230765799707229595224851119102977697739734169434902222858046814622525780422544620733201197285125271080609215281159147174956749181607339452966131643448433102380435271407835986300400278461043652966439789304687915457134225560995470896521022618628466807488104712451140496791576884947422469085567349287257476815906707246687101868429903967589138427664671301704799458342553381785911789578274311047850990496783244931199985337180588034875268995493026774131732669998575434408791642731489057692032189789463317504301998187286795119149517400621094550300519270457174356423199564839648013288527577117412124428628884066448144224839283683164769040349905330904539524404625071293409818670625703406818613478607729262382582547175101941637220534372399808963112977448746106488731989157416791770649470526374748183783767381511407328669946307860460349491937555389584137577877623163759457154473342262808947497606489804779508391459024798985831745929561368677068257048563045860282953291030880211314653413246034016400856475428682895086708636930118022427125415693396028358404487800535992322582387761737243967241406328808686882545781683476918831092335218881402426935758434590286543143161428369036465327564761130598445877253057386007842618542675811083051586274677186812628645808682437871209975894969685284211579570892833091224807334798868770056335834907889137394577374743386995329344782419856818978557642230034528708748435664169824192077859013804277034265879398092915327744660888062788668775175502373444669854264655160710099046627169326428167496756774208742997845292554132541884008771037061034116063486503806444518361031949452587619781746024465744475283039434822541929247304932160542422272885474607892089754415150073795129105017318138543633938529062633970936512621723155079907139071308603572103578151043707678237369559870538215602215277943581610169324289500502772608326956903283986483963610922374871454932368482285035061080075350323258155899979922782849834029072848515361088754782021797038574841155769311006632566618452280824331864592131868417972187889801283332480337161718678066787116483192389728024577513899010919205003952506763222008567806130687856326761588027324305373034006481525030960930088494566283201370155633371219360202899660559997696102862403955415544725961696470344477452997827830962022473625561760690119708693505620477375806617522487915670460667645768505807797441382936745564023063282096264800879024336161082778033079193515481650852554306957269886534970111392552192922553996589485475304294757840872488664502461523621108692754401386015250824471504093470678395790751798415090238084931768772609402678849363013139301672591432107807575642441105240377544575872529438786621159457591239101013857056862647979326569884623128097684742043325907080347707792833215853676292489890184329758723173105476009819103680341124027328299597287562829195627927231153211056789018772077385158474807991443235190744444092855444682844497910156612910856102948867938610837949483431424926024982604960887276264998132067323095528151016965586227223028314634825271942825451203328190774759435934736857244755718996693876126803369437526843012180752891807659911204316930309323735953524939674258956721907067110439808396693906377223514403170792607412479072560924584820083744017939450915460119926158871797537714436556606915119406691123281909833749241908797902001137078976302073626302076763629588095697722426438837671663692181270858053790108651509067710328145789692371919322251582597597339588869643228531526017890733552823002786710841594669004862084311855686631761762570501941773649798087006346266905892292686705574664913609209758220148277812487181959922329586963600348539727553671295441955007496317152191049423146783311736507302365805249697712348600657003767230458163624028694846184144401948886249017286510369757128116086896973536402914322413011936571718312590866411768741108984515060989420138510376108362748704896302604858420234489119271569469535415078535219772771541327764936295098574527889260483969111976982542809172353373407491313267068092494245212355852465881533974513980784455994526887455457390519321870470047965136057022174431348449737651591654765710436053272422518875560121607369603737141683394801737746311754102554919985374797120284436604146250061946582812432047850692560343565149810718525714613140387426075171953329657670263597145631211159043551208765499615651604106433521685590145914360269299533010178166424045581964203606849935747732195755763517772059248443832459727536157232483963676477205948622092515728235946173051199045507853413923884728910512252986652688168011047886586812821495943172715705115112122302006910848141016581530879712394915018518613424293103447507945031115098200004925108846696714009254024745604725452502070698912938839878802730588427053989694865546027579820993188875953275905578119276846615068070956616195693681723058833131178386788779762398183585433736122248727522007222388547440736636624421690484193044467590284627961841918887197584123003586887085005064940787339078378061199569322932904422027913713976707069767093401202910889524564402026219999172000697012473829771606831261582380551782513979012567599398642295943583984884362705495909225031023112306093351073397630107703471893258594080040853276991055071019377575820041742410579896167749229385155098168286166994848156371111435341737860421959702306525054531778030523290837590057036481378800562070932800680023990304399959453485540831320879611098846259726444540122376588171759589351442768142486029999267998313168141500784988740334265095689510408901147040003169068875069480689683182977936271589817363235552520912639150809123348845215942726541308319544276166795613955488878007157149061914769098980888247140846067550720353102073621784732763698755669730809744893828436025367696609941061843215046275960246098830242651499530073951488524600159880932439664823522549406975379344551644518749946256792392406012779232962394298184753291256187269427865445734775019612080267769065974338364286032113981548528818982169338144729603733005308838983259954698786592125830663399337586939802762005140882181290671380661381780859397527494532416894767089696042912089931365322714254113280722978495355752734674431403043994407045528426874098693123230676838143194567253280426777423447465931204696838605809592138206101177916101707019421072541556125705602812372912750140273863393400486593602897377615873730862322391113899142569743539107209656804830423499638493052383856107283003005848895713786874362168588163246895419467598279534156891324628290430169867706688979953664706827706868155532909006780123851621086042228119287765641306283305405731910906399027026862682312004236780966857291254474263627998423771357216943612569772186318663535931095396139251915165618073007009794474606158126753147137486045649150932434808796465695522002978622930282744465107095778376138542166341110129136773657226365372904502651645721954959139092108549198212018950238006201773331829441466009662744620996986622600517285226884776310073536553715994221847374839046400763955062895287958604813885746927172501433268433748634616108990548072001121986293832374263348347054350546307986163385541847689489769640096752197693889747736679296016535532812722591544586667857757315481030431216713792557454557608854679391289579050009730775360985509544435595746679381081080000679350607458576744258779991786854358886263065328377455282374135205222048052318475126896406440929953235751629416136471942792853161196211669086150147915645026266705462646538655062659131014110674260919227399439987680128395109035164301380706238247253281727740545438177376347550814609159250859308532315523765189111990718475377359065014232012598074218705712761486050148214406733442027847129755136577106676053270318180206352984710234333239055925296992068876930463175730265907540993015160132895144897388157910400186475198642948755069232727960803147629819891607821483338252789591421444049842516012486475180751720619305071621503195800697376776185540003962919259868212954264288267135693932347571159589874731417853288835629984030298880019157689457132908988141822309654740370419261916962632762599538481254417602425961678023875751649901822196591880384465902749447356705000345180302497957129342980115339092520612146910116103539687107042608602607660287286535801983101313375796092025309322174644758632097059807344912926213818044503116902822396872948676070770652455645660814607720773422911576184033990715567648173307124858567386647610991158354062012202925156488515566256645224723248801903210915519240259882412863434601252624044069843779096859846420213863100198347952005263567063752079709490206641128260570270318419728368678612455175053332562425318085606924779111423960463152940442867662876646128699226655058924636648607982464265706458161795437840754254206137712677102293621994147807274444886642225791214418869626824049534974032878517767132069481994814141087040463132492568020070182200697594716586343364695088507640575279048515400099152777722994075106649422005505029178128428667469300085636856524326504082384490509823658674778869310180762575883576238981083603000565957514907020196115826336710704972499233320031164249868539550852360890104365979001963030771080420253503832155833825787100956694454820157566452004927061708374683562955884117560733147031617497633726563387523889409734188437777915692004260070328542032972861484864039309477604656605195319716179718558606879109554853245149892522975270081119905817921875511238939029837291918762677332863654698924469423489109380243155463430306049301153464826220152124844344585155766757745274061950987571358939942859652252034843841400323752402566826383646038366373389126630432210428842943997908923647862661476122356157185341041474785029522548205440876528349810339039936735325204482211339934903161942604620671071713703280220860528627353989259060862731058302476126006906220212889685134564920606437093773769099289066496152510159072587755809805860015644087376289388265184182847604003960167668683509763966784894403479869690547353913324764925087495588813048108360131082133345783134680253948891225224186386229177594599640403656377889400096165219900750907234568516676859422695252020396191419474795449552593254637861941720075683057197494875183627125029923097579779749101713220348683444647080998295685745849513912722970881619272386199676345463335215034010743984059029507508953781807273236359236134737812100867763510481430614933598750403001113067850086290815970169948246445239273834248639832015311041295871978887571437573149618785105509512558402991831293484867572409378435661110135007940051906936070094347282717783686637593487932196866857894396142439970724410374151150019426935814859898910981206202601230631998295225525280460392097152885061843709399060780229331111305647170054460985546500373781093059922179163332742141283101850100894283171924832917424899706864192948150969109686573109115337985186791037933205206594532718247376265714959820011382884684152288517324793362850863214066340790739226382955464494547077126885208487616185800761081319944950455175809823495353557658757039713492302059417805956074727743447859935366705769372412480524484449130109205118601812361221243348833044403707234644409110177418643888041748309586563251006804630095541816074378241896739638626620806592368347410122682507194471041293104536342912226557602976322667143693978281323875538253657369639768101647489398098485612042887701554878401819431789445044448007018813406233962352241100152341131971661350201742042743368228362623183990929435945777218370501122397085970782984007819173671714727497639316297630143931708001712240335778786731917922852116864105406929098518880413723576787101287394890279737982048985756193446608475250260199237699511941432079505932533425375663675188922368435934405089331196126853883518377252565924874079791293746698141695794144086728539216903192563062603633761609849876031640755301791533935704154777910336109993973622102600407097102382112352348699352900762683392606470139056468324675305033543390934267889011812265462672297008846836151399463559777276376980636121098041998460013488543903910434173702479235494996616377460981079435264662281613300644616822290954306462445478800193212929588180390825097209701051166731154032027179582685984437630505995969231139603767975072311663172055865505895415520120504421821120906673138921155735768910096681680366196056446972520914885965902888343497658596358535060835445788926318008783695226416707730351278683008705990940732185553735035981584017682738625398342249017296069946011544837930355987697186309965398329858689367253662755915269555009972956170748009746238996507439174034266943030855021701772813505798056552130345470903718045582980373083862620599068873045401621269119924158658616650483550094168534861981481148551840097012326988839105058034987295782296069187299149928118224966023028680005897632321430138290906935820261184960926351711607578901349301388683324108553071891599095730203457654738094722773881478484460805045605528870028765252419577574322075109501080444051174105144274278677939906475738383746168375085469947605064411937834922067231275737067630559636273469603177188004866212088595248527383197036169351297806284487153489755389387589136594738344706297403430588235181396911527755616477478896757623324262744122177293234634847788322186961049168548709984919929405026682236528191588557950469708452003754142679249951438574069989188156355178606325728484203985470365311476176248764790063161979269461574872105002234890748847988384086050914446459826456299716781908146548526009674441826939127806220222580307923651367699655981687212682362312563497459621867500608579451097001649077850284124377629870428108098957272178560507403829488218517277724038851796168185213543560590010048063629275074631685400088733643624023072777945250382222690237064913781941528031348697718002533076660712354533045826330299818756103255771197195419477808732084035706146678104703665447462364032151442169977634323671989096623098928873533059592272144741674308245734226426754268860417703052621688722851778031454109086482155068653297008080554903533885063042480279240596047031331029813312819433982997202744648788724724878734614991772153555199465217867023356414365038869019254736757465848764858427293940074403939630424974958030529222402440845392873429547694161962557272431847868554660708903456745332936754781485189133137982504647132074299243691642221258914920705929235433430747673559791405428806438775673700644670438527883869100077528395044271058372951782546804843790703387367684000864778862971068003651615240192720850401982557775868381308960177845061489956295486258074127678425774648221332149276305722150286906076215778368547241591876168577569425012520917466271922294123237442335823106543277137883393816553096590953002344405906821829539916827258724088714282475759113875580729125974179420140369078057467814121359595594671509397192352375531339687641647979408099042233694858934571274244174019260149075624443401216432097937289203045615869672977432034353370843261437161880516188081414103853966780300820853005784327977432454918828410915440127094903491739547916216979390246129268667460006651508909006584068216406579581515417975712499181902371505081634056567944455161801681575111540598665676966786313716884558643535918121089361192535815031448033751221661902749814844295718292951772276709234811655151398816727396335531864900903647415479991435384895265177338148405366270427703159637799933824527696736946824556612149656689418623308230322300563920113847182021594512538531236879316496614350375646885180041803210392289068446904119550357858590130069064420045585775729752226372674919742456424734390404537916247365225104483544366265765082421531038614394968930933832217621682330014222669467445781801870537382212094196126646665686703499990756607991038960958642450605366422197067260593847026165537655553525255849815904034651054312248661588767657543448197634719422556926583884981787039564964255766797242456271798396235698171159353805672692237013386107115754483937038246975558261942931017527746507235657336885724939706335373654443094240624638620204116387453556930097783607383781076966853736204760791744479338373791952356603478018531324739764503067863079468612468078657370507937468544069408970548940763811514749176183797061751382595461502791362836250048693126929170147149135585249221897560601405860722849168898995311072130639693779281329307236348417564643072519458813414439375887414929369574089926847915640216774588962036682551959202010583885857190175453894630734928718924148057185539329273000008233525120019520321854063940392828432435075235608536347027607581509548779778855138066637003629581408894228325774462292484343793123742312230381635297688310680186150425152573949544912609945962276731631771585789110775213839365781342703598289805777416566511706420225296237861880064878572164261633454473896017413544663426303901507786682689192071127496699370804055211187853631637423838951566409884168313176329792943394045113752398577389807615684149249076041989788187239979966506300980937319251773789328340519459236922160673615383849668018860213629806484727114201920451834717626136424051630861660732851370439703900992447381024791425423933026577095109746281116884134604434048221129830354539126205210067775214940933599391629714596758923326736696682980702461225671607429710848400666222368276276001379191350739312772793485056105575713710509548216516820337933754661566564435605323333687923517911879108813165627632129491377660481702986000574352923684118392970026590928461825502636433953994903669017852947876055769264346142135017946445424164091932188402902083777729766455380970807977410880614021723230319981127890134076214678141975569581208270809493068711020439444763702643344318659478592455985548549229562787765969633897298767032771320810317587670952281542162257718881859797471458545858105749350045882106851771210255593834818563859861649607826250587218976285022887814801051263164377672670745980898619753946868604125905193104765035172069389498598879323498105053263228397141929480287760142673506532145915572104302375893341967342624331405381138630146525707723459354219379901288815826131189461214568754743522225032393289573656915341933760989800592565939340384895764413745306378061440132398032959255850204297102542787953254642305599647748892012656498921133550706073097090975495463319203330808404220391371544419546688568283161200008532937431077360535259288085941001027136542713586445207977919808118061727160667926420992778395904942453414233017995082103688320837790228424763952827700809770383550677538146464328239349067583080657048982993637031935451652991397678857119030865001782872405757553924245152338358059127300011277880551484348239247066377955705321975108711309529287790053367704144484658148229367656124707636290173956849693952282945207551193623682130385513580833725138136175697858785544729218782656232903389331204876007250981344079158580668963136786762200394237050332502726439075840544928316803378738759951347475671704313343958037409620342851909981665997458357721481766525937899416104110259635441340083055623402185115602384281611233964329841137351755719004119913395607207107956694794004552894534418631310255943405854860865815686025074918531091007237418942747099251579183424778800394420714172830621629532600666717111219613796419347452358260886908496127976611367905142031538433378253876327315518935892096116110120700164670058126932691346560652790249961121869558388262294727581630986262052512453999633382339655340859328319786561973504153311521942063262467686187094416844710944687162776585657704741664998847481730668539663470687655785495702860552349092268229206636073629180229197095779323479357288538212085195950103181524555783100651514237399315360868248908940797883595191344902209756564118899441741665272868761976052438835471396048037902882689884112700996468594869769233487594605713136632645512356141774830424452067458379924172114493281253128233173347633612455234471341689885504287322595926647736397070882462217054723217915103310214502773104798760176744011281008247337712651208364683579137220045580613356776592452702009319953638683624506796382857678130902326318289298654890236689558205010694008973758730773857172421592974634425418027086247346233730007884481554844919565928629967424247406499681481340238748660087063405251823223559848007610811923166174749273714398780413240918759055797913242241163069384348783594211814292454458753280651158713077449968911349022835637068979462403465430717874502292410127538754478704410662830672831829564666458565028782660890322423487569183912510680012865672635664921665759732370972929657379072239451228281744627978127440642556304410751083551287426344744730490356264955106896609484187772712917461753947128932996445430440221650838392447790614668039454605426998533096711351580225847988761019897851931356129297798716609072542191995969548040558437209748137504373263153490183346684576636299892548311992275109580547982940413054107252014466375451361526088718928525891984540112814594364402442473676465500399742212678522839742146568841565237136301881348619946973328838968354434860347298422460087894921900031709529749097263654408361703126719542058669247048831708387500971719844140604777017115557600199346510541588690383269039432679324844755515108131330184221525197507772476426137983515339109461111786707101426796195493163978712126669060490746322561209173658594357167763177648266794729536141209672324136583101848719287661742709531875408657608121190825799386506967938920702278992380917689679903479510360465006087781630207312505208484204115623201764961043845693130947745607233502398042850996888662266353966221289725312121307466729305552664869309249614639463925346126302432570875832230150832578561950058319507321156465579705111281783746211124473913428796110616561052459465035553808517584398533664520769588070749353145124850304304928506296975727827963873753476538455768386153892287671651736769351700523669965670808624568777153655157198444360471634922362390770024920322959524480137216727502295718781306463842575909861461088232266569652156219560530357453120109520610924230799250615865970818312162727989805591433198175566347381019533270406051268828119384812772951261495147190261802808839800371629177085035856190981766153797723840490857611831104987296218280816744197079223543388636800516263324172067262915859903103623641571165050353078058015546440316724487168324608919409115078860515527024335520211818581784599551377659377718653946111546379450850717944956139237894385541990519227402097859103905905054335945806969252653489290116615528364315261727635085047140455498665586083545830212623356917235948956656549111503990424646924980789365482772803825001609371542812481071729797196008997726657446483586656499606656634564769895961705492939189487807758298830427112820449971282556523776143795553587563754246097904006661624783869839044511942966315040326169790742165016577239174956185527448796548730450817623075317819853288645540499465304369897330351948367522455031317352573942185022379189078410431482317114818148012084428009032066232034317552833074499406223433566257873842081711578333796603778293653455015268133546774296436539933148606823243923945431353219549103581547713070216484651921635462603929771877228522185449021043853317839519932302261975883932147099161723128221158955112784257440707197382419909464936477600348029566872906600202215673701583121398168258622915838847842450176440495485112877604692984515607267717670459111031926103946328844680602308752563970127500493979931691274328899125028776528152464053994408257527765958937558294559862864313220854623655226936523102594047866475260850809323787719336899982930368238577173702734446654705632944715206912926973177679754996065276868747016181309442775180642520948235062339227714193767424270876988385652863364355246331151107912882594862884192680929160685819461308593125902249768761276530873979731744443774864568726643975425073503878672112263038143501547950014316832745047993776575049961196574628883413855787424156316986372039015255746033485229414977565136306011376028219187004460216247668075134828875380872826553942016857941392769894925951799010314545977907535973179440164036145799752872044985962712005093378914852041998969839297396503869855946142748626636575321225650035545180384026093617426199594504902588205008642188425494242532056945022691346121770880637621433223153305410768515304162615185957601748219468468005191088652582622861706820050603073402398815205726751653839321268508301937377021120904053070629611450505917864486349173366881126492806820493412653267229023979955843476922227041816592262954195762379697837257304707481821190280713397498084371420060151530725892677096950389870989871085502278109758255085546431836088823482565380716352707570872619253681913973339126782784542773383266631068965023364582741665223665263809820008608318247675218734527341072417484022818137286101613138001260891578174111302914493602329908564476680110223196323836338211895519221175614004016988076875113874602194748943404045767979746542846156397853779109897806995817105646105506508434421598775257236990658606785061163845475697024036054679369327897945228397748396045011884434836683440724551794820603529187942267341205999357763989376642195854428437363596972562094462895458392621648908508974806192065096934885429004678946134237421755595384168625614747298574863053406697724909192982613951456908239370102835971235210928620335639813603200800547198394255661545784600174995944300015449568823286014949679683891804716431032732719749377893614320316649223722105683263836218565862190144783894736397075644049689423662958643344356205047421457705450215657684482190207955907868278051995519911078455756208512170407445749754613723671743852035824884325183640805091544576242409043252066662694239551160619874766782209121749843058254738632559423402425349588754054769586431516362058931351158501638148291573898391249600110351346075627632322498485699323954658727751009343231673417620361786819321227886157483133584934246382153530965442895960324258596100286463408209375535373305169369457975565694429488493053307030395611340521623113818312580219731533890172268728922895461058211863369734145992211775883764437616028984837843843970950093958391476636868742650969136851098352035629970258370822796844949170729546203798983082994199446760021205534043015585088603391089061315196614366829260205226064109210360692497192399872082286343169841417277210725430458582463387214330224297287712351599273482848249766519193306606855114876176363551267302428919809478188181895959580721481298181963698264044308594385567834513282450354818437259458689386846723186878925739234842615988375609938712094450360806463357309868755589387403059970113330189861107425630315779379755718237419755399546399979365997383950379627218225848613610063632799046387688059933423700428682501025643923259523056115047618016324609395445549129716180299464332064195780036440316691941508095419812215683354344097652974729390300722294509388186466322593834738061094872483932062889398356224251925475711870237833259023054424004899304142742676086820722211890403309907354933879397860894972196495597651440357985457627891017448253165075670895111803878608288175714200534715129460487743698388056540169665362538998146405703828043900371544503433032814288695466056389086326653654383342168585632452208491126362879866941558713217349677650398454827055377176780548045332539340054383208220519230221695708002096595047582454394056942601073063243818173203468855941162576360506796405209351466163359523650370792560431401341027835381220289059681999330902963704506110235501433362578663275263035380710914949860943000081179384457195094972787384627559589004093740235696182810746548152016541939928948720755425551857968530031426526231409720505353619133321574284620441682589955440969181379094999068751081868786173648288288293061098286694635342809819430644517369310431627247174795131375580977919247096747711112797433666096227734740965306743157593638842955400396693691899614015535576439119196543584533312017555730461998553400230625597787474751812072527425224062434240674650278502341625738601863819288873509263968567078002289844912337012388343067479049384831334880066190168914697015682852387561602309265210529731601111153169674201654915012425756025753614760700040488700411656962410654678168738150010797483274410821707402806495833894111435670409292248590640734895127577963475925496245608987195988492676066910683591764472170761546014041934990067950810391814830335976885850324179386729100618694388833939266061098609721950288138926695864488486813433801393030932124641024137910218984952453047061986454712083210312905813674402149262687914106399451481458948859073057965438872105110790265423358145046335614530948901352357669982934072882210322542406704713298980826415768994067028391275174395886488815723762846892856648403751216948721977875324740618056546492275184809817221600175631630874457780394899200939068168938898669836181735644611996475175250561075339607370617430836631573033979277969103476000208937036134098252806989272714743620391487345562158615722762976618976982613631050446943871389520517032624608001644646222290409094720744357021738926018365901823236418265658840803092717929436865819438400242883104572411218681408058364877346580085555393917262960102822305290827819806987792503720834257680654774532958606071342318454949273558251658910124474567670407784886725571963830549424147767039162954721286852235599249858498018364363451165258267283431238064252280563369893446858413888654625713748969547164153051242103981200471502810518610338409047460408983330878080194017428454411315856619531364628110409176020456986229959689818415042642437501233284356626083712157127571242089201005085178800197509564757460197819920818256772898711157715788026631512065201885186453186718530667314819451879292901945024836717364724421686619040056020280690874023022148897511816966865165734332972525174702936087427647282253178361428785836463146286052373313649209000646328958065143387751193744380057446909150057099150503738164380021398038407148447078597455801826986086347338467354768199945074108286520698718982531279301525241965963992686798382740626673659450645468853762396803249019514459686543683548817880830481095887484056778278637225909947657949401457719840027744848952835747602880731604314808903933938887184001513504057446674719719190995758100013249579381030588705696520696663376958068230589344852877490590730497769786520549189111416477724184156709875775158380657513567582075484361683052416891859261444252701481743407504084218595203576006565808873196603302286977106977476983513700458748532246136414895715824720498256170219690648381881224087139230540734166168273342822473135602337884115957935823502308859402373764628120257058045318117317539055784071340173237970208940992116060309562304887466899812849887453343957199278216799996241559485946942976689803033363820120116619854143065669307821245729365647812296442714820544638113030978406473932636135699410235853251927698276903823880766236159857424469347662062280056734856189348125078718499917179247231578454409921223673074608980554090510126568959149365077861848947652104097904195959793335407345375706839041142999833215264237558431932899038253617092841918216657200473331502387569043151650911358507246390534250621467318703026855891776543954590474060839630851532032147280455045204946347798025531378975288390938767990362273687244221938975783402186113910041485018309018783603652629923183509459170218935886576756736451097508037092134887723735066220450343375523478851047539194173451137244976520844779037921951250756204666970592145059134002455035799674898519838874116895476254691565166440797504080006625588461129807792947821390612215177389891737299722068543507474670128169245360735925117615971771955071309255394122805243801593155744689800805699263745509768783836402987828240125451547779934099171236751764770807028296172856195241234254729005840622213681278949896246543135281945241731384607525030295996039154934680232703437791676402177289445005180563184551970692784535326948386523714626142064351992112803635420636468878410585477934682479813025979000476145983972326059640689099977405264738177821593655908448875503458137354387529639452524010284237430094783532494820563342878144476261091119627638716859896918481292437041059095478888622563710351918381918829530143558115179507006083740270688159931755035083475212303901432904206730030203667508045957711525898324566418462875350845552719413251544412072015427352535623098306173592683257223014428527935422694623579933931908261990427079874890486458499946979324507428799622161027847627136418820730444592806337010729825519796830057303366620156113222111674437612882332635998635226944033611309783169440728900144073013660699011400478879143762555770850403012187518383394884156983698271436544051944658845026256030194262589341236208477132402666988468083520794458154524559598337966357368113739365853874226869570191169744920045987999846781311318342328927163967708769108860920431160731728796833499825583932589825032644110009363759164197759597389516288301040471652106606546585135151060067178141393160839454113676590381016300078125250944937229385082018644551625140601879129363772111723951263157113646639762584352815214958204574100947276506477973242960041056108288578073229987372284493614072327158550150939709912124713818787403063343147681905419585422317931137619009504876072478403943714375928502068814335320197138945122324821788276380170437154746799145123732898839724258149645682143897507345425257758872325762214675816605554961014897903577770522433743742353710351101534070984809290984970780518598851374064574031643131706539905713563499346491678077990941304846636722951555792323896013184128465068738489599497555738560461691209359683715282949007318393729389939475372776636222574525627123940592995936517494669592194065549191279490791638954206955039863702303869761814499820791288700710094054019023050826941330038899630049735946715764192243714323739947857849669957125783279800422993992471308954640101636100008121655909339941792116918186558936411285956651853819697865820922067490064103953392883387256637018482332817678258075146104869570254157407329526556974990483856753903961461207525216203252504732880727220134945033511173968252275160912113920455804540576335658350628948425945509648172941731921844638466970852030719141221096718026405146631087429193689632550101769542315960185260369515037565975362473425862719457575665614128554815213736737644167606274741546135375178044825366462679943138705871990642994290172714347833941427496608356071273199280579671096115779203549779878515809854904773052344686771583592817622206406038454247619453387427121333167343899854362709027680175252771599524283311380353914208465677394527845355796272795576852275920030116710305209898486819517324324139096646024650635613165441331672717710990203915520104961704680089247445020908325777649213356037288872464775796349728851932027926620676857323673891987372071517977675958719702041488484999830095906741651323445158213664793298997607713114281125972641393946459915934127969049663913601766857428078616335710183145631441925507179374052141563870281760819824754175774506590788962454990614527904040449872086784417505599762160105055161817508737714641421090145475889537267380326811294248255962626400235475077446476850902151046816606996435721429461389276313056091593827546660225017462749662473015867362537303455163524766743221669599438102505014579647854084661250032269373495998892262472570905584969781769469367080940737051477293889290244975819456866629120173534135223521421117344064035566132578217644798535347788325967603253277835267020768744768006542568845690026869472669146829767692507658313479949991554329805503029995520224510506228452579628303449979364438879783175980202598905630962921308348279145376376636361360361455133035362907413291825400600438984675914811028228848260633152848353671793379565496850439810014100326053365247341321367594263910724315970271584998479390929944180212058917439998138897745504369164796539336260018375904111380085160252450792072466059864357065863748861144592184310983646947171068675339930304264481268275819243184846454714749263703867675265027759204367514426104402458484643436242935828429265306601828827645735081689425905195493118146239680900472030417063824876751480002041531489350163001368606592737420670031350355331920513727329375686352003061106789371615795758885838706693414531830175857604906509489943339389741030981024471482536499951307439533011422272486279290750346915275498546856894221783048797518023685684945976957729665905589717692388938502117126025455188615616428859179948943703262103732932376251076447460880751551585613212891290636063275004402929889064075155009701124738665395268014048588531275280503403832741772083161150437081348291877883107191672104065640219713423175104714549152593281352269226027862889511644878275802058500700198035575602566546850171984710855381681678652446956320013862561598075517617806204364321340717373374848039612234952896861159882419306092488788926085762627195505702421533103380196159178557173046707199763091377378213453154760445241976126967016570793803234091415992377001052552768298593691907481405708087328637913615947572308825239721498994876060845269709317857165372995264735914893383926703875530188340431176024066479870462741489207693378967840876194011763116999237192733285021692628008276716075294183985407052020406294134818588787542255705340101899054133934483495158955752066504329993429987652902461307320246578368518785224258261497658595474378397987269882502279752160937028655454301263708225219381077957831787803665088866754463697028092679503942989271778880116934507470433956704672455341871166469206764459997562212368936626240694593025046915216450992371437140023864544870482037784446671687772380909809486234248951962524432642832335348211840820755219196159309362239367502850257038243267759094547845117521044148322205323015937282283009814270716052845927240924925905138071954910208374838309222541109735918698432870584674309017607992206686001962451231174169447332171616695604155226210682318557790357059521943043937940458239922220021459224520213037472983370336303708205865606422973125458086404501392788395634976781630932758264489161856039922306254074524511312400120616318197593113440139800567509950301271481263325457282018013847029692288339501452681937273713903130745641520443420409517317863969093898008346699846268941052279150176137146414205607505247872919614092156806944693708851796913401734712304742525482405882942288185899120651459476116641144084849071295720075134162097291816033545458323974445329957727487380783580775767043643690012598560317727061741567080446596461915983825699742120270998340889370000776431363869022140707206514313113441150746061885728472119032057428464019619037784077970561180994535030545217748737823115477518906906033911228403026498077144757896738243392767068303312433915572641727640715511179704333914288695421227682070602776136110437191211820954621242251238685143614426574667301836497635774998861214794359893743019547267968814300525433946667796769578698226486268962529834835261503985726927578769589727256730799664236972029812834538829166444975244579256779769618089923864566253435659677861446488173220208677944990147614789534951310886335794868900041598950607648538260594799572121231414411936216265598543242470424468826942187308822620992710066739904569761422374444697648306829200028390167503257055433587274263844804168377847422914550597085151938032686043459505985097340779053746216580376238985725861903247559785341104427747895799235947711311083590356554313385924445738967656990114614746285176983274485258230478874207950660250494404489176518303289843141592031372325270814513989202266602137897303639424957108619503834149420383962711294119446509561389555823382171696153133957653534063719606173657656217810171457454894853031813595910521676810481097079810887284381340427063350183989867899957559038934286826686528468563883258254938372040767269381002703662467544500366307669334424344810976915540511525695563233422760492470241786103476565362753738142897336180082007259701455212689914345044119240641389765871269133487819228463207949650764075975462854846058182332184326789946820750706930201231299633662673049551343026707009672194719375301682277125704115359782762769178926714025176453752018702963867408894550992227059143482086519050053863161262338035413168036111709797816610986252770341556216845945604356125940121221878977246097298926761206723019711708039174756285903893768336331245584912928742404050550730185039183246308867228671636672405912275190763355465030363187641768594955487944751194485178887300636096214306285218074385356195804190323023996530535405936780738642323572801779169722574925928009913829409361521214308553421257738401659598239962171362368551272208774343429243237478185477214090674801140840652640648860532670434004229017892441156019628809257878728828274561021908616516086429853555696528179199815481058781628178830389376088907915366735286798568409857920432949469302163979399123407731199778335903623572012956553463694279931247746899496907064819123438445222480972064067229571387470736023677640214214032410663454471891423476602459809352353753739979816102987909040774202418287384059050623976808249370641193145961892954546571488020760514745946585794292652808166091631108817228123225792748259743760336656264371228634519388561789227673422081040824406232454975411696145933146723810361638818609156385732043374063856696430918168151947472155792714886431144743346925637087152581917767108205222968534269572575116724011934787073724491674010502313481994824995497076173470284678388915393174101625714565235376431636598862476541969179593678069267021381969836757482919211477433890887921649305203416878047379928957191328811605105285339841277138532825182367933187367333631057658683234232996050292086986985270476877529953022845979374781950136941760470496017393320451393238874989268631750362357275722347661280015278987157277648606948248207598778035077608493851967353893916882989444852677315962674322469181742159049741373862247747899158585069831668735621483915107536001364810783452040693396708071555234927908042337227165100561173954999425835698561476879567732915048948328127677412394890091253976112166552226992127944816652989739127070456809157909579149314828834092442688791451742466227752484543382111359409080730046811342347030696470115715571989541013720697479484749946928931046328016450805891100081407040370414331637584654782789223439685208689594692549483030960132928792705098161846593370274121535744351760297044030932424770744038003720515365355526643898884043188149913779966080280123007007701368745153527458765766853529007281681087291638597929746552938893350133341142827761837478896690080116184462953391465383071409395156468511770271664552206679557390717975985104937812647460061538804610794642581294653063990684756823425250181683773232446330079059026053596765147124377886242996637259196597596357656179089304889404341341088273937373903961903611906059179308383656951102205053842201525587262261427417397454461362540654454556583813759637562097392813390343592215447136512059897689576381977947625965111230771175234632407014873523582430875881805179757714701302759193928789634121346462942797687063508675808608304279843781385088288865983796773092386800015243064481049428072613579376159856907339100356529181107332119453101156803422164533026660966592837757833288755447984947059832957521376770802254364504216474424622634698125380973842304937588192769069373599869767583629437315437020668458194365426246750129477040714815464027415975257403516113606744667284460533225761806508276778536608941092895992641437431377262330217068966171494947436503833677902924097020796089252319912948535385273751515148590611949708341842104483674214158298224661290259653355884418883051628923003020189885080778501727545012657955508781681023522757326624707909639238702261950007885620054516112813223201882747525133154953897770015676524726529328514728425911336993234256408256742107471386805277983861164511435658272590108491240689191456536552759826641477922699373167644576536342425911207128524814976399941400411349955653965316754950058478210015820524457207365662384252773798754749699554255959172551775135908591889057457334786019579769818926081137511440849698366083240949670332818000158762033204357021148911331474117532687659066960671282734601528626827633612121119619912444197465681662162703140970661602964413227266531111482993222864310236033969729627996053378899166023540971739958232014619166380104865474217176948287712136794365078066441108638836273395773722541626737267919324818635558742770043147698248547808510329563981309704965310215902093443680597853821933966799663553381373588600899168691106679909067884248165593741576882112506966852524972533694576963696775352047406442361949903063588993541469333145628273177030245868871632059651123370227255332122723440250858190277836785513882738617076951756399250931440293303573730400781968066569540929548086768351727467812863924344636641687389757941728050389880702432130149393208446445536958065441731631259512853585596403905576039030778873128743444520861918087527404480912762548614707997720681938641612812782417117656074051555813848014296196537203606587981778183376548669780791874476752619045021510164315625757079837729435781484920303043188534430958708362467603955098855287433884521284211126548716906572572789055536339778902072590110656310000761593833622778389857550542854948979213015717964053919179269878802334848524361003729844908466530578668637747892275429436988868994375452598655419540668581773224085626188715378647092051800406287910903789895367990071163204100036349164948096150810211455989679489656602236256924805582366567187598737540526869019692975415787748046396699919023869971605875140724755941569822260157138153817155407492525331276852427887012700081180149655081087673074656129917623246335801576961740076681282225947721447455516875279521047047209553129458778344665480020333263591146092029490952488052089023203231686632413549820542386549483552600115153246831159028812441031789694617607514488163529961155735229616095534210936471972519242228330456924079123782831370552279577331848518411431120625681265007463609250846503808631456793243143171881305436766518626383450451128650261462202539972330713491436209707462599504374687793185185556023763573771604685108936783264272496838277841455204171963338269431205240480542499192254146013916918633243232859308498057812404650155897242745733614140743545306751547115412377394742276579216475505413669670153216228311989916200482647036176348857959497546710755879034193856172429208604658670909162560385974822257983830675237990280716450323114075609260809391711976281805921169114207262258491337106811586306341010092327644968756480400309948943382245066557483484256638750560570408190662629389823623740955016769089022950413238342630494657095787480195052333677479942721028500086095962127280883228890580212357333457935904178003483802876263819035894710257891825064126862549397822474099563783170817912710293170688815472307753329785558379283256994259855785743407156426276827854058173346305597229515795673780298111385061494736044856688086891731399268385985874130638360450088824523780952478525474603222246279622417070713778262223470073695522232312955140788544888828515413555770654635722817976108306301780062589072119565454689606549746485166604800358084963433481692176917433017826368758122289990193060892842272924297327550151904933540423680119138770705435534837067574164454690145684119807655345946968010098645362907050345170282108120771203572626941260344287477159278651019185275646797270914350360941090091057570187462628633399903812090860644708954044280109809673444271596548951560810699148382691408632847742024255934707729093038837056898095433136510085109884984131489104472117936449508077478632788068019462923041509364674299829870565260034336339464056369573437417596726154745314412131485292485788278831078167939114160959528528871211898161394793794289488276022395671908709727077866600436464409985120468623785520036754104696843444328915499419966945076330242233613207941144244900296762073737042149758872393110911312223628394634102001804749010175878720222921621795726628760096398929172935227087692803718343788922244489443622616320000660387551405499820688986622009753329394324459727499607904087446450878749087598921293096799756941482654199177572154087658171143643672879158822001105249158566790360944156118614705956123515290665545429741572118306220644787216104994404286186134260616974229584274305204859277487077202415824335747490638223088150257734872522384048400639125060037218095964113284056673248141947639588855005876255890004944465385250970202551992199987431986440799177391714572991440113591060314502825538297206610079137044631314150024656757464207391621318222423697053467320560184374990651839705443405441648062550146735510338431178671243482098400459964807477939947020715439888211370346623081500944796670246142964520148292197281666441349815504489825611675876263629356948172174474924973946267921951742478722817669270651719155620771861868459924124921737384577026256924165677669376302870986889211984052144131340637081259935889051437882115693992405970008743514812200677292166516954566898005673134765851133654962235895538216449619668220793123112802127865693804997780336763618484288237018097221922914432157238737824586955790431443041233335399898801587686308418429536354330682830469361934334460449009881510531944180648427366138473305035097433436954248285682775678008111786193468380189710541563577840614402662644516600898051653365336062857519870737590900270895112003435138511056812527479392228165545616326282589647698902780514603943788775405171952835980106489889556984739341340669512189467218976227271377961345989830116313829341001622726442563343514296116001977847809034139971661353625804114420323086256728011004811661662177144695552836155749986073901354894126070762021279882029599529267486863447699672526834748966418251209698306294969239282893378091934095549995628281652709514913878443834114901192374378404778747783141378352081250749453736321963731323319207375185522683761156730171783326732216969902392622860270657973142717417173768732819380275338681997175212583714461117578553899893144584446361859868640860259522690195942037013077953844469338922647185454258688366596879008368081632342292752849971504534466792309201821799096643744684618504943431044174302699160668602465328811771853559911390841196891964346637664537054352678013600933643538614004835995736329034897798599343004916279004550692581453648161460842982837920897778146024355957351316257826622729921698792961879491867264694002597704050654314347144525906243142121970056899466342397733456120647560636258460273370168094310609739858525191202332345179028927145400608384857468566096156171000152504718393944471787116631702009526733012486758285438906519880340523825631141712521325525486282974292510249652448366962228484371318303492900528976444842401108071533078365494308165727867615246968374913404029801423827982105311710310342574470230489506655476331763606820248703828667836854939483466079580959998068537707695232636511433147904425651670454406661587248294221913931612766275880464833677286350349347643301135066362457989653910116638770724918988201316469526662061489411668259258516948695720567679361617019839518269864527445990523355837107777863203997733167929381405918692849289211309658001984794610620168531580661840368304974790918855399701791147037964446875647744712255252925444948092739969129069083948279445358246204943258176332555752503129372625614329568328064872389583505906999551687997011970856346878324730333419675239485438560443582214308736863351186080580085205801839816639278276155688028846739513000713689993114277511890314432294989815768697780197062597790806783245245202061494705648695518848433345096643933542775536307575393307240932764453012276881175117771347305337216353147159488162059147303357072855373489397040517183136383559492527704237339850635462946539824156607016651277501803195553950261356086969798368182867032486480181873500992900490553992201743086796237562704197813869067108897331619064994871894179673711999444519913284040177909265620502616015585448252262110512244257502028420280778064349390247473971545551582560911880270018449881886476341345753379764813161963941112566854116472110650596392745305363228231541655098667602489362972049079781857951567544616859021850500436698285227505714376281252386893596540890628879171781629959093290520787888603303120110445621983644781512050563204109914738916398483947420680639933541701531030181363071374083671549790657025438650703984718206068596497041550977291509420662749673222689588973776819497056922979673232521899341284819878704665301786707527742050700503513693553567482597618429607493747411472835012180858836870169702601086695183791823519820077424474175724461027888277527408006755139098127801949671269294269343039251159563552941044171234482275183998247009087385597193788090505394337024502166132823491364121707393115902391212833322492712400790907958496249666386756625957257961104064284112152562004484135588909441668572526847103807319515066395379388416145350870432583237332645828869986300233309066678375424873329087415221606182167925574787506046169350623636864311828046587057896011258874851820702329424769367720852749493382058162261536362628707658463107107022651204782881700294355302468647247811301003407649293433634670437116981409240990469747896732184366323017935936102736550747679047264937012166807538349965625714312278887538694335801736234567765031529573158075083448296369598009761103178343964387155934923792389866907743831852473062163998255084596803070278414321573423702635927242263108880719364782630877912506612012040588983334150436880255985758707336842912268309909538545453419141899505764054629275930185838239690864822600304299214639048556878550787524544924884860921811665620759230957707964196939226827448062996173868218147686355054402794407229481994726037696301484541208192703847656183642819936318238826279394255658961351192436821528350061728763615122648671321338866637365522598230354429402386200741792946458139096813619644616883284843865560758291695172212575007369303619833044833498575419644929988285631542368005270994805905711612351503171536244667380972406862063294464387393059209992795904734151329057102570011486857612185226184046810330711511006650007930405890119846815448964648260004110359815856897580216218042592583116928465855118780979577357068940711093812684989847913016323353286357216105018656656043252240513659115885962710858808812596366504711945615135961986971999150013756784569233857289879805567412392019099038142785202251296986785556972396042328604696202187542893670016403450123660742327413527479765654397496703681541637983531030979939776431340404165533153672072124950795297730734868784076719362661679473814639586807816113693206796243168833064860758830939913151442452091392257717059790747490731938495258901314035794309743779207815506863930371202788463531397665101005410504011792000191558877066215885096781924353170171002761608715299205044988191468871764113950374893765637716655799793300830661609819285479279720558727072287727024054377871722604141505902317680966024053031388034875433415155694577467964780449774235862400706399675344503116449456471672314174468464160512818158551150515098071918025470806891259729609657780719660401328401545939032850209331283927280459348962718766342830702592452231792479217271615274714527055498846677771516741105920347433026626082916633416192362141054259482458821935439325901546134472473240609995073973633687931559325166262714706192220305862987928465625134900545625985125842072514088436958254114229355460980052077266277520889257432343470602498748804032047503262967799807749122161143293342407354747293608369319415031810404745072539857484886620637340727188189603684076325611957924514379756752037755674570755592591837778758494929518557975506950409233694454547639900701800201131703828387267894569192262526572543760412381638277344586744528211069501066350844772733494982354702837814657103768530754150638526446842075545561111338887179953961749967669135952427412518866132928580806439542836507763939028440837908952040573223997977650075294548533021550121918698019477275138867030931508860330382940947670036152143696979245013772457958674169067868074322817504854025277353109749465281173079786738563729644945170362523149018856455587102679966330412835585324522829394379485083354736743531307343728433738077937282804557438600698980615368159156438496231932705298460636116982225450886442995211512098523885175382724074566058671435589022547375269461416035548320068145560034995599028788337871957924839423557544273264037260928106423360433563850062818547151366169507428108500490466584527559115255038118104650719978863264151684889253159515096442423912983637536878928641858982587872790860074911982923768839917281211391206083884085832457541810977617323099135954777186562695129672383959834487799586263534552312126530239318799713985933205290233850413564778487168670334709233935813931601885620058482047637791606027558726012071027256927587128961068619488937318978664571068700587967203286696202875439030745012291918931345387232267837514540647289831311557210650606141062594697982468543678804033152689896584229787334885663634189322316550764056069253231185726850190979631096299941073725859750290256382802674343082168184768842212129384383213911710367563198599499934229129419991919234978815407669281986719624299806463813012974412058660545004930863954626903835377816875056570958535814192723390451789027767738631424462274474838162334413744088063969568454086363182359888248518772902086421159615004743094516247270034606131829144246795530623372461878760415446359749136449150207135744515744622508200010671212255159951773873663221234140476570866979919817632523210120212595223911954715874812260596670965341923900310938086937078745326332084437584089933255904381088501277761434755407809394393733779639600698962390796642524606378242591806164784577890898368064790216071406271813352005549470039461162760152278276179998971703954096870650225978216698702947870752197796749519567771479156150115477008954792716158266890984396776744127735579165629235238874382887848109273974234591690155007876209659001051836608462887562167834696839873397212220114474269553378789067864094356156587042236889456997733248064133945895504524535296682082683631437111289641833730976192722666618833789924896054400017469933699188776078511178182636887400299665253699132409107065589227038674673732595578438357892166052903744475378141821736169461967589733732496999188848333506235934480216642388639582275745159683868536979814874669155936373980826913881241052993677578284991830338662632479262561544747978130176560182953678181854093988430983912079377836912345956403448048591632819277848358634780835854905016339293049653222376293885762139106124964444584953101629565202907334435938957967045162994927068242068650158428714728797618643380681435723178683775194628264621034790623877065035367937523696893212208700033137374754291174687766523363878667750198462292400887907506366020779463273864554576584503303082289056153295070664843621095088872121227750402691745188584937733005469763784645646684883854298982245085377276870117277219127670176323853597463339085562969785290935135736562924736579099346815772125285454827527082308651671167261715965705169846886830140555779194534121422504477625603889455171886858365895809669218761908732593955177349862451530615537436687494033087972016499616546201498150649517428255944115551876354567319113823870415164667540655261018951665722166063403432674757826448195739894526854949763515790326073415537077631633157943807487029751748215721006188175658259221727323451256365325674306707755751288717507471672762251987110930946706326978553343947207268458932699353787913414820146556667351875854712124697616430539553944412218445346581609472155698922332304089004750019180980021307802118227966568461491186181276102832163175185317570440777425518082151271187844217983972735185707356980690468193346999609722024761723751509848174241575987885891679147767643273329095043445226644081771749468040828458233570426791630711425574770984405721010028561448759757779466419656595767523027196701035429760235637731971946374094709005159786227130022379307508445075720788421285784292090197298239172855915012092576546858088859753701251340310227040173899975520295450806528163602036154215857890655188142191705494268245509267212619973232390462812246000272854420683206478355240746613683413984582324417191337121385844849319856042947461200417117026177167564713708914477067844071445674584096244515596911713329791366523289866112918378672236363368858803595107177640099736188114829884725468718223534653743016614645743159692021439632677854139880442613007170418466241938798993778422440542480367387191581536043018068133575493639159068462168444742448559039858953420003827122755192531114371888267220392724796661704601449552231007189232693784975478050843197428851199418786258077304607645139902762079999157446112617078424145415706356433071231740440044151926834907321969320690355273481095653689386313801319664255061244773468062467895902287678490705669418790760773303918705175916272072874075701380054819975522005666592721377866955882020383318103689964680464670935947274756983629752195399827446626587512705075388014249154574376509136679781425074777904236953490206834728996628476836042927086560523158044357326653266298308328679377766777680887828739064307115006263015378614058399453144339407324568610751270978014949815315646662529029404814123519821827574086695880730661509653762489038326965111469909205526141841599413500535514859789039871575039413469241765954432237467353663545562118925435745238963064951590434297059801088803715673497599394785342852139515853714049804570727709654590431636507873573969092220467696291058173682983868383336284814106805752824515238672508475509009497536686920309676092805676078510214379179273071984101669148012810436866082610338385561137370492977425667131953747252518017865498096096301154985092804173440580770607795277524478216732008234391803468708784839608457300997162677925938181414262816252852790954171994770998371127518476961832870735211029477838604960744759003278048111854290493804514175465030088362360180874807087735096603464646128636459360131583312119316508082235470449089724943591443678253248137456471212636970551236623777842726425170959755966345592609023732132700335788147858466197888729626078645461159503403658431371725832277828212644779530115459341234742732431643307797802914112052797277226339285925988036144695818204322476785530335113757880693865509973992279787158660372843576245585867906125633526866210483285619146254877893760027244763371065426925591671821303296333016353655127750953471652223118149579443949750469746295142888179387236621077695884285752448502418131999499978947194505103628909448273222911962795199805608762233713156282494234196179791352971034049443769947629778681703457300311301679940307631200848513036020227408607710771532721621081854239362619247179787009876745034060489221535358441099539426152892572304805921939267120644155040381092303117703013607583033661460191721218489591455037790581833692812634626218271187313181367021928688895549089128982908038638416562891459830630486198303045215275995247716735617883951665858175571059160429420220864820240707624785787742386849360238482568668412453509956817618070734057338660968088596688140386967778094488149359495629783097213765423971391099426500077664120696044146686153105490186109350836351041368463833657771609087833858626279762057480246220268290994400458239058810113195095350334346686065303543749053222772518067371735175026926371191727863833567073002477832773557744893529817472720346905402772596673478136959242705052374923246735637268360132721150497899980259716950951088840392297689786972950079103750251003747234328370508895926486034347422763943279625312033929081026060349492797996346146416234435717881920782218884313916960020970647230451417263441509635280877904540433175390757064265664639648804827129967645989518323103298930584365099596508847305175738191202724930378287547175304221118835864296308219779959613610066604898976068440348330921840834106946788124198122389997331954943773066650971769626519803953781392632174177798367954470498768076745988118906878934326557605770257083602077196762689024636904069902625256434681123538246581803805490613356243433048620251881232746801979583770816507406927011329823980954039130396678339415427409385667612125869168398693270984747538385586065725979855698539234904853673322602719073822891913792134611212686184628773653522877113032039589645332874139937636898519715417897113559372137606197961649400726672193927951971808479623012460933157795269131464132994420138551189001938594332577717270232964329969988271745971783413617109719537629611301126005020598702998425346702529338209405390166958170152223865392965649250740012283651461462256962715923117687080401023880673368198350226167325803732240922476370619716927512349055229189916816556791422095667671934757681040818685305389140991318160392056571295653520287917009527311346465738600898941993052829770961142336564361075286030707365108921687167134438261216711127461642141350879731683943346400012887484154657154719926584546130132348194113332562270998466922026331175505679809284731202519747964158238951741102786910938747852154875734968787297980050870573696012030336099163371943983193640507367027683225156579207943998435944279101923642607624758042939948182540062140814981314773006600670939295629282151477815958990316451661916468935408137565781471078697110031960910482773573118827237164258587716971754915772446344965850336376689290608207935284567433964721093009469410498696949443764031537878766079965834669416791068278281903598853283890394312494063999840685274079512992347533382318265678869138109692687460721641742264062254665901088788790538244872863812211313362921681274327302413479352466192725977312422261851084661443694046443772861224446259401406747914383426889327828449629552633865269082735810161231534817042650043650986945868615554439226473475254975645866405748220224302329018530392655241982656574226181397853288164263287893631723670393256178352867495819280147936770938602223634733310348509617570351632722726210588884692694548513530897347333310722785489745282399645820584496784677497103954435849160899337523073151640300699998975220120403127822541324589721149091669268020241035803436809402867299300631727867239459885645406975894956862331002783538414736864770901271040983310913097584654104489651536733033866519222428956381881978515276774295031293188928110301204036415994775890756599047865115138451152070976622209221756276183722715169740665656435993559199735238477573254559709123232065079249538704023336941970216821013012192796937631861506440744429838506810831317477221625572674078817076216506231730899618289146139834389178732869868775106786457067121422965527198144093765924443554969674562235630291152165111246185772233920261901772769056729094654073017834157016921140353276544732941578929861515592966103606398216232610384186329094696478980325835109158970484580266261254071184972927615557296947866415465580842221742761577691314220653762665805088036825223037976301628644713935309048750336527407936047214712465232053686592190799409924233106458965346610534147916130878470971280985238888820122352436951494860455799619408175538705771111447586402422981899304344301843705673086184744074895055071534261263772297841166868900194569818082598133579240668042489284083322808379777613619962193352364352126091524615122172078059758503570691000225815179262634471271814580869505228403702077638512781717122785237861166196801656093529546192969172924539425540116798575296825576618398068560670889213275856050079504354656081782390716514002233177627828510298018371751014976198996986365268955052704545297371597732252437955049891864180633048557266063295979960809385408495109752859775687685373318369402879464641368690121257525355417484769068027150919690742586094030905222789662275707339188026341066029899555431260628425290725768815069065507846260943825833658659412973675101073970524203603014533346122969407725454014141843709054214252062582875240318497496302617540878075526120205079916676582913907095597730276475075767131469562593336136154862557088520286793420864383231040065758650244984234628082813218912463288902676811484345054739878271477671004177734967035940355310082451619625827138117814766152038595820787778643447185825487015121047061650946127160392796093197311697127199028286476753457214874200752772155718950104549654507330372989554037009794381465881416223456219683432465826973691469814556759020024428314001128163465119381459808722732617572413507608562839784705432152556731530118677967970628648266034624744615544965540881331470832529809548359018735292565542928835953290618046091135244605398588146753274242361826863031854032067547558220642343651598285509625233347988527503862947024872519963930605154552116694616433349501293242025038426419993627925953864051423594786970827928448875713302625096792825274267352904970986596501836592803755032250312566013524673679133747308472505685826987744505546538033327955788504181695609857326181251716695961900474318249196349211417132547114539140803758216449057257448867381834652411009172453733276635112335144772929244693658449484308273183008635906093862920552827051607708956292606342696300120110361401195411135177553879507323998976699756412581016081186981583086761935353169652869412826569196388482550820925166128383989968010923360993835215101676426267179979631889611370994410985331136746180981082025421045784975671745291773049334663331415118848922227688624707534799991293367274737916910758094115868804553980947359264671908221766093462485881992303762377996032275478242170007099610138729541530029548278241327469927873845911061445583419113629655017920001534415990240473465977332692351634685468623855391987295113469488127613471660210715817773086426277659489925217622656211781436511373209302182079702170905856667710379833550695579413058632860651918735317231406555402415637505549045977651566519169134915182178593394015362214690580971169798848448773270187068853156166537414804581713505432444346094358352241645995327478096723113191277862537840778422043095050433592124736736111234397644444045078386013894422182682839170232564399803566753373935914720039936793259572075656253046586716969806094555694757436346947711847305725238159411851591744897101825177298752674043026649699232638320478384223623521255730496235501544050488923065173178026925811493942126538108614851145319933042035248010151990126809278374189996539304524950140245633394740913681475056082507762716388434944269800245825227209551383148488757816837078800958587845885243329816150961104318384082938122011937965244127474101332212550863391927852811680390198825647281548186709155444371265114956216850431508766398254852762347126380275253781117874720392817578328543272229204135655993974720860932889541877496116826789164433243752803340845855704187574227654533279750153894746419198786895560864924020678097170746769407877026880249121060192149713743224119104436526282061409050669374225247340548809306686971098835258299673925606055760268124863518378018705204774697824416999756834658481486435713883925899303451529883096875319070099345632813370444620564062198001141849541060761258364850882080600604111855579205497059905487837245056808847192364512408948143784986049725591070489301614135038982321689693958669932524596805228940576291690135982535158941194546416835746512169784077768290380845066029677056128666501064243605007368384124159081247773312703357306325118426329033186441572410675151731785084038178088973600515275822504579444004253496768309585979133660361150215946390319442450926171031015524023092055296279258614177270994272472388707143656015836113932922196042807163325023848632910120045664704675262317072993208455435254337255183229709318598529533537161180511745731267542582715733465617673803581357640818214183271701251957354428655931007211209075392170784460633679067016091167028750009161348503684661703725750826167669008756209628050376920716424838876332256382669404255761943074708615399738853806274522939824329374534887809718711565385866861816288638091188164847880411862142164132526690273448510345587651726787133121181174687305526703219140150392185302023456196579619268185899430544380499374518975913878638314078653402051756020504396052215058821083892567978522557690313231623725871036798755974439210485018618602419754059318174899995309361991748371119612790063025806408706189100079864053443106415558219215511830321505991366558018540534547896396157943383102994413354081677996652705825172271750456509342786061737335993923989965823279976947744581296129263536096388441260564842347695961228817528745670868660498183396759016631900054723125481228255422604192470710050345521858954025933212935489706460724500039518250970837915001755638017685314013602375852769825177753244714712273782387293796748227742695834760075737301322474814912306029513940429740868521575081480920129025401914359972710357067819438004171161085811966530555473657104432061210665345171401408390241809246136931179378306941120247251048067289240898632591706030241079819731111500397530614108385677093786100502605191581897401769783773853176812563255083167819003942337027181474513941445895157242320560706045802842400629022867033798943689252012536747421642287287701458420888406644400034319351085689643242581343544627967647989244243754149338050959551159373490175455679056995749079773678800026025569831182405850565956013145373907080059788629175503394586783804250959214669209335855533355844220909218002203273991405967756753328293623326216788461086844066050621326064840947154608787841234277934656011005837572635236619865926421706025726853877146435714817667873984563635897602021836432881936664750914917824171282799977915087008064270237906513846635470266411370744499454462993565772044592107360031547622764149393505077117806957753450678479545234123788905554910371201829419240532866598905755824183804466435553093093479712134473476582153905879852949553406500976967727971133532926328428259616302369404026321829947143747460610837859373886988263536201542981735337704258507949505786256565892985226652677246129478739039379948875098081447399308760999506248063523850309352777655711054657323368243681473599605211641432649739923098859731164042945448516800403702502952821054802736960375950884973300461168197222116078899902112369427763465269040288420538559417324601613241571072795191062793962460088967099525093031215812453847558493768333120171421428032907191784938230338445435622919172398874381127056263615018084552224661245448063209017274492744768093279150333610599425229113979099873567930872685340808365844303140955352063902324495326093969307493896082582349277271763727367596229807187758199474447328535300458206159735755227306649174656455939371080529218367972481314511445052661914921296805302697836781218039045929355584333089344222289447074758238345358222125815460018474924487993556486890501584642206823774698647794974037391836171658097720931386341881065204193329113436464605196131557379312401142135982511474976825431386596785849522954593211823166861048998123818767967574854695220507310795207209401662787466050019740557915228697924743704489674314577951032809224499869669174134235939211059225307324563965104692088186244956330702469773781887193117067573125509894522099510756854353985364889724913989997492526794754636588805709584054095140101712603147368120980466441034784012753950644695113732768060360009729788758695696536143644526905168335410351620942686248991057708523745434063260837134016121354660610402480199627067434524540979272010809817853098808422653218425632251199167478566686155628143518666842264692175230282172212897955835346311585303768337928440355086837965241584462087680085741738611226906519545452637288619689421988050585522987162816239789262119160841764603802866691256716978938735211356011965958439205819397905031727561297168678594121277645027901237230569070520157266941182550101849189413714593813847160489699628847974131265575832820403277617882348321824957999682037756271489441987214576438608685437289925300490148065941623545413579294750989670857468877765431254029647424009084262476034150972093562464509198652243289485572710479505376265026264652166803791165548788088032978360418179150745235187066407999951074249764177691266462879987652455458254246019424007790416495850343285733643374407001555551694912584704371728553922220289279930928133326422052204278014905130158321601940334417893323825444656157470857330925252003015714309049986711682870159383492581006871606368843237945848584318904446693930323800065783697615837605889831587646431707134157241482732810453687200126721809932253450902248213899159572934932902143855060247365824705567683158506175732297873806351754303051412208999227569399109391851396134591109304667716940855039336541132182257707252494055125402080756722186312411240776790483229379349575963897812384797460301304858593094207434674295619121391507533077781905056315530476305051741327087705908676673710059536411203380641740203042483791695700640383548461314235098328219269375070346169843771228165691097504018485556714930955220013060350092344316210018251666606943564731543994526365010362880682136628568441523765932223693684866947959235325071425229926769092264242176381992855453095554168300551008920350605970835354218487161293524590107430176645618513666668596806590148797150214537486823027556402580408362336580560189410029579998450732627548270689045674925081066989999275122115692437987052427808094135442094579003670097813537755516705491067893940742586130856677239491464671054500544683029728400620503347346892582439107630022777160630924443197007149556497959768286882652737789287845965261848305829929907394651005905540836362066706338399869949093817224259075165211942044725664823937515217919947176548060378515533544990413041141072725957421583987804692238184233031015062554529692418643568912117326080629688228615483207820932677424400383904100848069723988308103333827437850182939034327764326933283993580853449315381845026134912562290265688847757460709192543352585096849347824506146338716454993332065809810167106294301022886002455135648250476647309863778488510774566068967073581056099882478637112183021838637000478626300353916966502672084553410328449112810153708744157321103536007446307761773372888081880370271906860941447737292035032536425745310782100704214719470357222636747936274017415141407808582050170426403718609438804887655107726524734841138496817015873527656728579622450781467119358879160615275836870435373872558519048808627112060588268190083176870477707402866583561039008297881766167763589372275309555998447339845837260504281027143877524165991053914132319423116891543282931898040477366959529125672698392482135973857052675457261701477914120612734073223164734081198097070672643287848812744072225073469217678230679191896922226573967168096614045300337327960949826482812643887372990004187583631509667860723783424088651259809157958540400360328387632934989001328721802765657994249185640665923383795487760367690850660254342301570619090666202636335672820923934989805789581937054413541106083131637548583481779960103291284625306764812383516691047775363988301844939731052295288325825741282084019849994238030718398559714949492171853524752043508191958351122587214604569570742021938401979114846420114251743159690819894204993189970448608511277333303106204074886152689795254319464544921789934248102880498381949447271699213673783584950717407112384682197520467634673024725008299668223365729917113251669804527120028008709260722180167936315553392053264906068400637138474707362995093550620855867800372221423419815414740053155250248449497651462094960157980852602150912491884398430742001717624298832440410160540223546695672412382876078941870644846059042801942214354433940591182530736569327299585236274811110482020407777778110085555466240608474964406783270557181270817024372974768659247057990440082867163717937073689106213136236382678320330115273099470411871022155629468751455330326332602648807365688385877445378085715489833861236056900855863598727332027220566899864169266108100125510710352212935967964576582426658352386748257657293546286393607172696030886480161553484521161749551218959522478453773853977124011774625314044512231502081263073982757058477933279168315191783961017729515955048807124255004403565581264306183439593189485176776550042131245265591836289578662374763776430458971585583157576015042297406120251970236598527407522095812461956882011636380182788938539767501032041999297918381822631004493435976378776768573049959176003189297160324995138834435159182301747305899258669331216309857162077406334531183085860702867337563988090135409596040945900671580748923304812601066891982655153439526163359084367773959146803085164276519189086812445714843242770364414459789240718472317314543903591096761627421452274464723059026580713446313400823723315792675145858370108041694542276504599311781207693915369161286669654476010873328168591388941574523348828940302485683618842293773730806754341228251648783476975372788301194385393594240139683068844102321521906960009218021611283426646827308747769877018147580027889253564059384691239724752478157686258577366673660491658461996886229200880430770693423896042163350182631401852581657649452073375591216162692510519269862860789314574092056388334549881188492464780873298582475463596138635413941843141604349348354268531175028737764555702998148982264582855277436280851120353629295863464094288040656598026848580149164056761765024196413751606336542769269170421759960777694595832275768969036691296230683848296109521106716971232274446881683428201425735665687146469792264463795856712076730908817353220545922207408061226853072669665647406861837106548932870883663805652247297445397715945061492931036114610071611457513725085235017557843619614720211767808856391344338350611036644572109319301606320316026873881612761958245922778106184682601797488701372579581914030147703111007872538062826101829214914766344294497663459594861726384728185413597201999922620025331293089858743600647411611301407833012418977628703697598973046746430678731427081468525015141016741477577971896467557739602872469754886884193478794745515437182728292972626498281494813405500964501977539208956421869207572012002846153869568860519301645579344374373714057309589647656662885722007794646008055888358271029442830600393871890940559280460383085165172806555827870105021903040434414878220299228905285059479127873297103806446048953176542055387833428825073671823434952759065034593798907966067576968843728122855035026007868354364177160151258596106787599880450728932340199026996987459452403367015125284045346455873796489695489788657064772817209820266742067257664808543770185645543950407856553407022119791821383701184431933027451339396295998650695462276378981378627358843200670218178144117460813381353367459871913558348632369839105556490141827207857590036888464976597528829257182916205159999096732030948937048251277512807695998821570368671537813109155863173364609351961275256923027989754662473346051411574669152530917831198055682388198424648664610756115933973478171475577648852499408285811699319126712865021486470654385998623698845840824742409186832397480245120650709883472857652955212306289051198179246977665457007201074650879575327649228337681186041102871131125797753955634979051239598674607883885651669614248036444808065124684504223411102911875317691418800556385809555842998338009721201055296416979571640775998390535314554272821882630416472507267020327344312375518841833713407135608748816329519938255292611155313044666453329842839890507185126400614006644559741414018664787490322865713771742338413737660388592188884492475857144764830064477177243124003017818037750779500570394438169012721564792416913937379786635179558493922955099820279981327361801181148313903126848654161358165554086205390447092496240646746134716813945268814848574045592397800201782180908968925906660390031369748657699660176398002494532793334056169534977955824359814370551405391904779063306609758020259623512724213243191360074484896306655597648478372404569784452141203276412476079345989427652312351226113361609578082940092428993059594972426633746029534910413912247124821994426064487172896426754781775165285847234545301580044828418144048197328293640666312077944058124996196953791650530126034038932773200222093459556085922369126650150998608851044600266552575655751243089388116418549513668068864599742274900255439749189656954739658399827147035410228608684479082199089018572933176142536913959969692013383229662215663449326060697299817617191467399391097772821904782769446913866508531656643464623704454559557667810390120375503628569036816083010173243025611032017437897237852505967471465701165708993582112244081165284301355048540517079297919998244180414314186130858855046599245239768669572711113655343744731337706667257711551585140366636238411764000714015926631719972970908603154433688301590834065850677139624483711970931723591014070080395369643168264683936041759301760057760742802461655741319894900776405662512870702462301169943177437948591218314734250057135006064063803080723605223987573320286014923483211817702200506519284237526584676565720051557736593472722015894741488812578102731813399169236511004960074867457548116723081386078442884484512603958821585607163204872054707697728578190715712569536000644150797801283597059677476283635863686449936176376519648117074991360785286904773348228285464583523603656353254543765465688953884536313726481365285509514383812380398659290523291014422659759740349627337121436851475776565888950793123927178543967607871074954049278834711988730234441207131403249708625407551723834806492022356613720008273638330772181142784167428652071914147611311139704000889565867089023369938748802567638983717439124755544301145740631380925537698857487521118772754081100016902157196424242715252078276512928710673067854250684094525263687253758277985009929958665423252936591084345435854688795473288232207087065203404215476175847743898404970278109974756458088982707346308600387469459237865532187612497120202753351982986269978835204769403549492164514372995989044058807407156806217249471486741293383952023822432455992581703098660696169723912090758003828821988860371160980664047629588298944514381302016019036008662798873717403763358793136960901015969889979721760947396501231020545121977329937740881520562034630110727967247307206153824234562308233597400590597969333000409426943295979181002079798770820045656856846560827088114683858099794559085016576038037791849574875611614589460742904535172200889843026857254654038052254648660458655782977026131939600777055521690408586998441271749840857619989698028096970063094602178032619534916296204137168530923473193987183646491500045057341262587104791073034567713603921786052115433194357078161502645723443856220944717446235206640851780008333483785792394858521853675148274239252476479138308146518915697042050850041009478025994620423405542966975045751600721131114151871737534378780622064271483396536709120504292711933510328783555060308705410295274024188252603831312841875552957122340970604011036764062706851920067114983235431432518600212191209984664062098231060961617263926523025720349060141573208153278073636153170468332170084534786481447902091324332197325224658201059937059001475198104421215814074554618726775570413921258170437415881938984628872166252508848722169207543211999139732365700905026649417999837862796638423270917203452777709153263456755702851695307113481378904064226008860442354071494184052923273798518777197253706762884406982688500465060264324525191449693687438675942446583094333944055694781182587141512115727709599993319415755896587999359696693695554311674422649899465152514861058297562830663394359069265145038391029906363042904862731003120911139007784156260848561089369062778373451350949432064163623018562525167329972861469392039654237613092081309892878461834990919508631979735441026892790678067668483139803917378398515167235363671715838342264912420218457826647278893988322726530352948768457658083810847662857684292050499314125747490613352340462388006135447598491652170154623164491626037693236231600148251520547954671475040460300513261215060329426299466101760665763933929950531586293784869717262439927625150498718652353216936877155530257448083062483419433492435831802335574414935642154757802141219642608098386064662136693033092061621893423972911352780369215533991589944546694388601509727642415958500830145768684943810173882328519788381870292133427499202379688699981205903693223408846627874512072776386913934434884495722312454715990063256199156228630197949505263627450523650918932136325972882784168503322575138557107627388204957279699419944247313739353524067533540370677628183532516144223601538771677085671113036955997746347972202036611734815346543738409588996114145973796922636640638181688736869744625379027846816329735168512830381668816024543696423244500725233248998516862683227869148147457634933304967217459618004619757974910319773611327408333231720385111763887081803779416846038932768203212256734492747334270799858775177266117040986353615103455061709594239226606923249740901247151810394553270349931187174844013207890705693438278859609556222593355302641507082739108497465052779484562679730791536604024305417413801780640573303534821961670902140527875249729824499580942456247768108457927994781233347860782159347406997086458838438692925154785282353988538111321774346271437859380657603930889901214030482882380588366896641915197720346415364242608334664101276741464986883534169048882532076459510842731238623108089647473452298277779502571403564002377522954050173808059814074378633201480038887901018592109565070467554978209717389845119444806387117212125436995730184958899445455433025128499205751511824951369021687068808082976931525040238896992304467359393579483708651638476787369235370139929917464517598215938079706792481257436632529343595612583197193506514134767149991870961987326802361009446378404707521290529134540645993644660838467685113894064789787266871354418592639169153167615448282187963067136989667765496904748638813568279728626124871007322610052185685082726725408233410769462319209611134002206987893643635530375616393833662391329142541981891582571489238833267943635136673845855593452440808862412311884021718187949620037375337422542224876922455517488049945937517733532141552268084194190793472573699202607627114106374855190930016934685035349544286471702278399558975433067274587410563850551575031664688746002030537740564817571524621897179003369586895197991637774777913617228438168145695380674495213189187369138561574767937347010939920505441093093263881230345381791201927760356313299740277262061723394219712225661290726149524721479313724172315458510995142727939881552648207263952751158946526419862853128792007383180566073664507468557834704779732006780798180090729039116140686167138793036048643976810899464623123036110759042453921537444379834561386446882523300719450088827592692940618981895541141935922475082708913178857889342929024044815368728868904225808239410780736648564554794077232779685571677407729104611972230345291146142084384008094301192137583465763485078424623372194561273389300909376653942768112243247447435577596819509727050188059389259206171907045717987561363108551308719637870161852209046804134468585593814235182576755556906612293572447482238622291987613296480308516986114683391955463345080228607088924766152473041440485649795447918965605264702138552476986229796276935672446787265790777404385954460529269655077002261059653669336502880487718677907023644264156973867431070345336500011001255322709462903914446004308247265774314001673870884107453885222828313492543530529015797486291580632290146021797480345161854789430382557823781893616118211837334850803699173233661074657360941138189793747250868334229250562085565373226598240587782888095695370167810366519970159786503092107443511913769749195188592813774118128066964721995027728841120849265413789302509892081008279971454281478896114655413021439177188486584423299971381299242189797629114989130879071125315275904128294008664485225508198461042025006093214851336752542328245990501576925177599167560484554037252273213921840827600586269978930425434219339786737074961452290301351399861775501285989965938624743748140677236547451888603637530884235067770187384008040157759433693271407786570256129827776227685250308086401513383960410478455792560032732543098624399507629237728521053181080980560989828493569148129439177847286902884844783938849474214862816148938855193303575805691899077118953481158834893219645472279496091021116767853201201014456840598794016334976847366324759427842725224696955803068684894126631602305915753174404348189282277122487474592676317336205481017874046491748549427128568830535468825118728604490037625118782601860802413174546959818950420110848357198699516358432377276650778538123905144777403587774223545579114459844143831695243981322868717280768233073702088211467505545657514332539457937711695052530217886388630787986353527392909088024271982218793210644204933216017713040656808303468037241392268286030812082232095616658920965507397812187822824492431840463801212050180399259859389802752205876425223186513154034854307521928896960033782204578877887668138078433012456787645606150815042559649819474009887495173682639818363512374697568263037086628616782682845512593214245470527324682301803843085696837176813294725487056255555416524052147654639838908648075764534403137113225730310417707426051808580333989214291031592152772307177596618680492050750198219544926100103196585552748771318475848935046398311493693292539860524828188922290448098020939775475520202867548708792395546011222379050842895692559303715904247905171106647710427037073134359995784648868361303944884724396216347318153690763607410819963569820217179124034474700295621425849331622503185108308945214653378971106161843133505620785160811591121748069562506626638621365053934847164403150484030838848872735062704082056228305214662877218651044374122971180213340842794182182231534003528803072256244409733066580775604170246926473097274051662355278440045696541591355358423163728783357121139693016041536232383985218372477822201989814784476772639905839282816452062927743984332138267913765347462657005069220412277558105872741204531970345574067337860427479229255964755050380820100469758250934164622796735443214050763628642873309681978640443969189651573964004041534199455496942660420423630177117515363837570826346646433375326090954083008290134810183361807608469609439123763991382029284264325787656828073262397491608879958610130513552600859408617139483186388114237224524730981502221093934515058122925271152015350721288679243593528586734158094360839615467638657257058123824324001795250897637010431788150916545605473489748329194911855024483148139806248627002124071229574956946403915763978062357103356369064552254389449200371655026019667870044297708658779249882136331908144475446436032925067907988920658405526456761395090526520831811619341068312206808230791532299026015443856270383814417840728958845300364656804579721159936061843043247368638306867160351764230777296173334544576068514059267417108524290240075630019053969259418856138624249878653736772269159392086899751225863925834045476520459196838827963647646803715008685804007948971911453609098141961927892136736998972299424603865835134940101824193641944718816791422820421089238648102984098653884390037468153524503550390457518933368012528627743679894453922555908928218026508776705934246010103889819081232936609966177810992280021035034376694982552951335691063592438267903796329164580279088051470665218068700113523679073409767908675299334040972885590710543721070977831366540698909466327213159726229513868217674255444508112005282224783695510969289639161085483412519202395097030564404151612359813342170208092687899334194962453105747366566626327903301172419781034259477676753334058376791573640402159166618821756747973670027843236104883111383544673787235450566176201999453869539792998218064109107602215431886151071142822433894239718575602344156950333902092760792723741517342272990172269744501438526687771362615799781982019640804640539424618164313661845321505068432624858517414271918369128329761498211635545719203184116654194042446943597673695435609526443461990350968463050893458299285635369833949104726245340449581067002004319247850222722744478505467789790792858296069782355005487228762359923605711005096151247718204235287156277619961922176749469056519203030832569655084411930998420053307150354774185335978563092749658713168754053828528274532692019257333332472252764739821655212562065458378908627498637092146945005563335505777313029525681480121779802860855218447625270187030725407345363363730277888817421349437734717136012474568762049160188833716613017829382320128943700647992247284834809221313862345502092091941679889650117894132409017211256786482650683367239211918539902282722404188805710599656350667179575297595938185191171505187227930117801025783392712303713011914123125070144664252413292531500807718842422029971520243309893602923652774063787059228048964539158215059097230685591167342915472576815257544570120195684981436869578438237162883602650974416692966927984693303010587378547205729990693922020437285739805001463891374614816348566181172780933360927627412294097426121274808268949697985136579755193845470196087128763918611397614053339497498546858928730073699702775739665131469047158703702240693195589070923300594222904460148147684267016745845222567160041373969405676105853680152472971020914901928492308677419738164223478726615553066856659578207268925174495045456700958975749968990190994299173203185627141538011456685057486821042120301683018861329186405449521204193647354514938673559018649101699741469294177098960812802046271467059221013194612729505356170126839077073549597892891791473307526452652979737704014878555479366892407274725248315422630230036025030997911995369717366854431775830013451103972935809375028957341557240040139752803921867774504968953909889810567221466163024606741418678870266662172149864307816974608002658852816548610661863060022641760386307538470371407992783190640523391221980393616176308905590631433696288947603393254290309641941948782624964477188685266259983522352852091990280015550698929181539500276768024690577055739235261458856758620557997925378001899293415687482755474002960728698980317341545156519231249828504212934131957288120342134778812921336399118458264063587984011848819174660721102507858226786701088203918123679836492959899195071301715159477982462357696572015377253312771971996416539640130129778596924933558586653067293985729463766551527954648578766492426792601293979260260465699880327414048210986442625322377186692984558236501400233585041507951778539250209189171767845233032626590224011976210575301667120876640115827327673503326615413139233414520653413758515297575272875996531522272444504586825746962678264759419032251607693137350473573920852163081272763658600201942431793609406016576101595046383614976423659141523148873146128252052880394050524932251511170276170734444767748671641225578489323671851230093151688356262994555869607055001113260826169760423355789137959802476431138568935095631046509884589292151615188612523531459052690991793259093998714939362697365423537287329920176209273098783893206109824488706102149654480960403799989319635899227567607078590578173360735981166791207966458058706038997859204792190779305659373233711620020193279277693204509795668956176655333408570833834199547966179380194633187266605909314985193457852149465124563703872595664164968128227778990689298254164812324120534926779332942232877872688506063459902216938309441836039019609529625214704602241598710718327885569950088932144652457498257255749489820067634853603264666893836107297631850293827559018500847746992649046575573904593524795191275321346558753377592001723646074397584860308352251787326859252676070205053082610256042822255360227667129071392801511013096134091165346855968386195319315011946653092457610898216996095616397343467200334192908909195174847271980599424068839124913492083296590561517300599623829424383441503652442570727912252865798923330314197805218893605993138913363752742190449059721191030291154925260510719678304233511562157769345334904628032591125776867506521480822257950181915664415951728285879917629427582423296523460977278204032312064014356976215882070839688817879756736938642861027704451682632652850245750617200184563230397632829023788979127898946079658149038327907296008413151480052591830982430631859645182874370236386452961653187229652446480247397130895057351272107568685447436637358809399669189299466347582153825773073244133291698745525806292618076294553781233300937296618048120739448505275266656414726887125590487237419660604613732831710205716119477359010962577121814975690669775926064115280810390365075750124306136695059179703293447966173812221779420393926740801308420848399078750310126960310429438237084648482140426751996615677350960612044339062369089411257929195345401312530209629173099854340484018218241901424134020225178778042586137631294324715212492939323601812422974086822616189275363789774854946258975408782775195931616718690323719022173103352918232999937249809111677130809513493112628628276745033583646738540849621690216812843380969532512962123586244056366074249151828581656708597613195129949814550928796407243423411074981926586153038053024560577087920964328632360504150874200358792742418936949690901935266693554883610066511879739283470990503556887311112853308804030079173706365284219143593998294782794800144485816746349327486885619939835366717384357715001192714033718870440194281238198430653645156388397806294456540953536139731859055009049395402214285498315470264044291764992249502818244477078260176552897881924598263768447809491279926736712138745868716401743579885533987158906724587846436172202682955077875314261433411234320837601229278390323741835803169142033203863886978389652787022153180769575687534297052413889526128451243354189947179278037890064946411409456007256645144320706365865774555815415128979562486924936615143147579489776823053452736999112962567617265364270811638138149560831450879171495382666915890172619656375040222659826940614092049887608780693466791580311805429974264001492738378812720586464628417850504355520653211055183134888738913977070042747853306104323677758677998768941970250879536863663047850670291274436876388965366892704046744411602578910088402066468440063771001663363534746175817231015994740683086235249539686796904796072701445357152877709620680011977407470671532742227326976876260867317742144967969032704468441797333569994517868779221587383806631136050390889396388057805353461924604178521386443083025206396009554138724306028855865652946224221532488439115177551013367984262892943623366280519786540499792874747782590034899222589932836022631749676960418741230882897301407780107500865775554899193090132780688661404913959541172155652312047124734136952777258259392860161618440110970175003046888270844200828166654570657599340367057696430877956901224182229670251395756010032582319682752745574364061611751415349237134242029191084037761839487237749876249958692162096482842162298166896843509780245264650896016336074967461526712477545470076535728459194799365250341097331145678651458166566402355272389196611321516321093358343101352019814742032261215601490390566393056556890496410393232114186708577520703973548025900176745425733446650798084781909578571034219657992641285019321993187106294635151619370298133365148666936125948329043928722918784447697573761260819820466203913678457335732790289735119730604210905041971909365764309477072648271010247062688334805795103788347714009675655533834795468581873328615357131298192701694458985232185098908800841242003632294798147268942767537525015600229371626811112722534529836110341615942701867469704128840723414913490687222685609476446113352498056976677019421638774656902079311622442635990775135868586288375158650224860923433774650274638241757183374995469926130437884977428253157023766956325275256212362869983751779653386945565373127090401873679007945619388085144523961043193843313203052784615598570297444252134411556547055610576431642760207887894106758695692182521871108246320792680311399878606717597231064912654988280016286079777810196303426773327251453468419969866817320265665369724811056450326683581185915288370990876370444368397731733623123284881882147870307469871531849046503781596010660944693522533766546530994927074624220658993685226992752467578689235055567384380912719665169351290316240217754755424012122964349499159826764708393642372335636388348389098945860816100398420421741115033526439157715864573155962651802027286728008633358818181951300405502718793971840208865439328898574215652255474564701189461741069661123199667494425562091641058072106696811669555055057817284645491963935196454204700126362368297516296275403546197504904005587246092862321926329878350750747587912627681508501374430357735036080156610778753228017304323172940770602189645368761307782965217410840678905553177721200991300263284412800824925967915737138539636273233535487134822655315091504564929997114248141826890088330136628739046103156363016442069635927569827394846930097228534820108776615639846921602897264978502858216070058278269333795292607190643169054672743054742995967955504819756011429496027506351184027741263002482045629498475115423927910534860353054691948179401125204651661723188830103866603409677897631967039181074535454724781173385606779876797670853435607627128713162203827493915636195802454785185721518172250258625131727325940522481681210406424546869106992076087439787466166117767810790531330511620100947275227279022494744291440112645659253095620671708321926113063582287591490955464869108624955671803418319264879137980437754546662777460476736642280728180076428412350648532286387555159163487954736258295778032019482742494235388003499180396639964999259021990599617849245914610121092020607258321284778677171774483756197718185219800127260027566024208919762547086323179723762134939239653557177954178831213647516972963749746099049090732244804517586457185844720471936632148484111112256356167290672637063412698290346273379959285064724708782221892504884186227078461127833570925660979081830546523111479403159594550472554825360404649607362799596760389728783967947940374358682676003844829728924256361460308872363589452206048201559586807825462985926817918793043713170737942776101559614757462288897341037489257971410479174682946197618372456078127748973546384627049117992975385912018256898512893878124616316266971810657498552158195841962081241963420869466128477112356160342826175052038508607134424213710589114232325390190580206014993789958419221666507418381989596516261199074403894023848466365775478349782131091416752986801690660807490014325825851668934557950820033973421256720621985048731068280363093069167330603433834344335706004414964714842444667409688830363828469426319288003026391447593200495219084785107248266323042292220303826034403915812698417029649125145907010004819969446980858455604460470520237109891951709300768894499260298084259200239888773909970695450661624454136815036587907463277952092567211141624893760714330858914340916776729512316789613948719804441204406835033210158365406175795618983851171233867917556628632824758232283427698628866102585959826807401400033614249936068011607874787013677915828919747130497524290418907891079147586359619480744799126507706319245002566876634289301964818253470418979069743422643924804319802186878287258862748214164187884995173258969071398190244395534154796590795736310479552717040315872302246496993446119691061300754496111298083683164388862267276177041337251656522736191720747882184313568561113291506060284163555287818325420015034278793754174905588850693275864054957162104351327567331243684567197238337628770654351360825930311249713029337694249468263070847237267341816797853407222160557013737925095505152876012162510839821170197094725820832712609348227813280173337823751384399416187244853681441255444824748622314237418882285515429224448082114882958695430836822944755195867457579802312898750332525161736008278698774224461642759023259761658023124923490393478270059982667819389039113019770897878008327511171002528411412725218708503234244343483445901903132079688879737891903575412725777139876073270170233140471064981125307359247383328685987110524271351300454897192920305779710213981180520396145862296611018628108582249318760298146915257242447693019009210461615796750173607230647358340270101627257371652053616909756379373769002502562340122256063853259655282870335818999882875131297548748061958388281261988306817349585745640031990487196463785232633639877691576210027005521821259766847345288165555917087564632310114620244264721931198934163625294811080449768634302560888777501338694422556149700651996481317560838765240672625006138238328700013646168259697611133752412000013273987337191133824876812412960205700118539072098840386856902564915864045621204836873214702865237961746690902163227676299309872203082487032718260411181896855708631847077889063693424924272962303986627208887492246340039968068137938693445184945807384090020541487255763707419875439520380199120165000411448268873718851693081303838325988437158315567107134516086943102704153336474312395876822995459007261010179096788781155610882309955821243424223890302519880297063669729672138056061702166572247477421060680499338716104039293315356091939613518341631835199197632649712205122003092322598843582440897008885997183352615104706287665677374895339008406179958093634798751478519526233641021347350689606834503274618640099318061610117695670234766890815804288169357107029226331244947626147180149147207819114948862928266498021120128754766291347542713097075293419369017079202894039007931250563027333054231521961282304200142246260660868265188415356892301846995389155603433563750055006294227826664216522860456259421645493722157776552883614381582042586265374827144143523231299504712888125421617251297428706981119214005580201454338499998466152125344419009381200481810969939779068152869436637594966822410878830622487381504251545752151533049152508008933440283756417806940548075668831656656678433265461584064118300070990369750565100744943081742574523522150429228342334082711483090974897854290586214926245072191708559303082864400584031417996606207306500957494458937534332149155045941095180530032695082796252961538414995303103831974995657121916130266311986352273976384258363965194349261835996172077255695802416556904294695698922263938895635459354425790586615342469982236168905142580626712024089184805526881373844845640775733249039051135324126592098044819693050226456020993816828181051520745568585180095673164144948682618002987742485879336430858555807155076441908990220353959741905365764492710762769604679259502087483541074270787787890918167851537783869981527001998546575325999008629004963630610978789350063698541014936786530665378702532008499999630432177014034559956413498039361320141452838331996583918169374288284833545567681467305082034646352111808308185012231719520586172253921922487886651127558226960879822689074961070302654052171260549575357680027459406050070510662586715956557175344562914643720152826944508106007627604168941749988745453241649627208088258269172150687784934697504053085275933081209852342709003393755613940564247601327298173355906092157204201696170436787602819757326657357486245717946205352534651086514602963613589464207056571682764383630374044997672453245063730016733196803239696716993420510240692590704461819532230442588612830414078107662514304471094851657450663597369853753293152196501386067498809734510104594916378955398457350670992176417693408724174339701900856058388108510634484389731893162279184756245858097477027894478414791598042584657679103194596841012295579845401399638623597787790394401146564345908453689282489434437822546892117461090439733732242626373258645046200262041594479935042388607219767104038333926399074528779425098587375010410420382787798833170291130370818574839540489021296542575624821658100480687636327479164046569700237836879994489699506756171774105500387619857871181245796310590915369463627716563514609509634912989135642119998825247528376197431424052039227326914479733160313345384444591169507479005886284705675003957479193568993118329855911611164383190058174554770684801811948697507400956881513008932216809289744599331922096477327515732913309400887758457867375969480100860868972622123068666723161061306833034862778802480948202037724231496316444584108744185005737876107677757018521648694707156051641148181857334268434410257479849781254116883745140753497619013455789481466340668520301708996545735699446279388119830203929545035662382556799492328194131401047672605728354054633945384388517821696495419865963540040852452524229172785115766218260882216501196846418322734973012981899138215871590500291206113546230850278401331935500169535205614491112559172081840452654372372751328773601646993076309127347093235381740840458662130313432955284409930919826548268449375574322524148983658304614409841591921797751296692417541648736553522619680970982374635992292775134893148609567825388561934812254106798460473731895531582907555054631309174169370984451464189014005023553053899068047779809185742985115953742040317748861099158497053962520903648590678945175484843940490788561216074679230855001087853397482656197908888419634774367745050309056207343479737450091466206286914315646437283410840317627122876110894033387734675013508828810879546517973559492886886569683322859489764256969816877572327478856846424383391988225795258445356711909124987064341675964029346185016316210476484368340231667308903021374064742815375174886400779800721322962222737457711294447104578974275430500089282864802289230711152936852418080806734933192770533964414945783134046621904114451307680636670654256005631206620809294829596892205460057605810615462133885446030597538165834305462931906824586257335081688172068880977092332578081878767643495432206366629252513639788885009122592725130827626481877110224488591780902525526959898266543494766135125353635145695960554435598762685571852324183078510420501334520876609770201321248676216613921030818568173325919790661056707884545500283269652926827075480637945475509410915953821918646034071671147727691425257526037192943340017977160278821736757848022123542940560524834699820247666403970873429303398883030683407686051381188088433403089667882847936771723217434639915141013522284939890929779852083326956464545564604419368341951288137627101465434837666883660980546921061831222705597453289040456785592115891811191265212138602755635938593530306700234073306752391354190364231986015267267091106813067042429495289788743698369814277061648463442682609363445949790536205573311702771580812218176443668925549281818389119806215392687033562037847270800059844010601302799830960694638169713301778591492988714677541248275175530138436410122557356211106514792444783535436982958985958147621870914305723124202747730475675409207891400267525506469165388168987995847530984830610520944160599466746084214943381194042811864923027136469000625721120617324123054556530836768242942902686458916807390251150944819636300667837507702425348084175281355874349218803849773332200148174594205018099273722128898085799745168974986480346683451441428599696334877163752633601877262623001622287642067843581535417487839031192853476728295257849671382066719819322293281510420702143926307794954425123740838487661889772425547853491634891059463903754818001487227973732878581517603190630700932454792401985390420689370802626203144361659343475606084049733467163314797063611495284071370507818044322846582837458096658246374939401818872906183925406278338031349796130408471221082896702771614225163379432616971788759467774175903091156116031098723152629093285893102618392707261490620069832167266532209220963647279381677057373375523011063383456833557456345245186261200683065332071165255521232161164525271604384651239795515536096869345560471700136525985628360432202233166361911138477089472085494568270924257371651133581932653745232318388541301431582761596515032026622385082128290860638951099338903332679708562061104086780143249008224787109781348786226569643767466386173144264563222044896432617628497831894149311728904180855963060877367830715030358797987025445103400602380513544615101947539908253165213873577743753596065599473063925398598955150278695910192580797249349556915845476419833500140474412063897081070670031701429785607988177944878855078140110902556518617021421517755506842751955321595553809393685385226159509669344227151997891042463504416582420555051886792414792260357804844402245004193541056910532245583652867027510883466630842731791151265588960024603702710623774049326275858542143941226653559650011917255415397521545316643240813621291903538534739169954857336337176158152969864213722879376780819414976769430882449523554180818192786385032350956555498398579076637536246087413069970923315432898750182126253714511700606580021925760928840811209066065810363489483904627783116467133713594322642548822449261865552422427068711831287226146808710355932336711121652675359696317366125377992524862538899567350770904856684436632770236497066728644517550243416677885447587193387498570801653800514563317513493260691929898523099730665015176073472502204028538312280948549795856815104129375521250877276673962818416643063888974348935903418243599207725817274571487908494889655591401982646377441986860898691633163839477169793812152162945406985321417177719122096169174746260168521091033249369110724547486307843796468756020037773028191189923519944301869816041885628721853539497258239601767580590518386993357594216720782651231754343256128793955694979660077397897532060001634346618508338425315891870773825445261956872204560887447528184139518227561602389934521325692893558647046720255527782551823868419432224669952742317916669896096770624642333541999195380045613219609198037196950065147604342638696783388601255856136062162443804907147529040568743097177985057088870936777330023530393874640507706011335224746307119226147828065694745342520104703851076154529003149627258258957698898089764144042288068495944360897379775201544001358189909965479739236285070976029779511504564758240859570566918247619976611496550717876010501598984873633962620862247304836832976218567180453013620846624698491709345537308244932356196615471472991981616383505926502094477864955187142485492351622610010063941183576513078006150103457811882943591854266755839261190460844280519112694435705155266351475764974371483424007295547613115003896837326672097427943032607496637422163800961078426636485409618825937408272527172938664882644006130575242775556889248858048116982402917193493545337407060076729155852206327241231171807389719771183578768051326578471794449570584987371823299523183395550249805046128019743231363919830225019439940231687091938282786832896904417972317994499626389329707910836775673328630931605683435854047108211355172230320907077558936146139707514460562812368575603721032321841486899538832849435218267538525559920175992420676336914239164685105368560605122039698145463840560555302627006075611547788122622642475429440181278403067180867613005192905052988279682325818298039879541828607275557232737444266233646569300581930819336237036940267309400153836371136082984711483733456427514617764577424583322630543071874023924732427965624329419032524949589804715951799304438553797703251079158982908044300941708309797953285677825821571662146074086061534364073956144088697094095799654033745154645340875858288161010217190993187220685079043686638277627603703148145435845572768619481849545026200716695840306773109939161943611622376032796105847793977569332640894255789462998725818588020034576137589421449535844736063172946562792820404985434639541798072702377288659339722966057458726514299121187101924460526593616518296586622369901253561272229422556907628603143496154456048696057877300827501210557542774798245422022502204068848475690777093510923199570931395385100863902941504111159137153678619005263681245966080736334750466856498232387635119305463122853188410290963090567197521082053960368122004565565860265227656388006922470740335252709992931038216027078040204268145972380654899650005672396281736348927965132014473249716748527377377567754559373190218021912114140651537892934455535334450692953851867865924514233941829268141120810385023583302151604107190950218592791246150170551382540788580488818340938566200790566380829115121948206572115713669435887217389430473845139968319544218325713536509483378022441388399712128676700262299875003246534976644510826805537639289836438037390097674877195315305612018690366379509870920684397700878178856457085308850222119141679671736180573607140047426370283733695816751592570957021488049646011601795831615111512957627101323125843582666045010305335114555920672361119825993785075098885161707035499940335938103192138045069695007342643861110839275735160930299354287323072651056827373765237353171959159604043605808359546408690633583079754587310724988808783324668661813146235928690761659276503667817879201696249387633434353859940363328362306263431694564798713279094614743815611602825779221645133103941784713786117010816036237067401524155071927759530817535608181345802364267407748371401277821646743296346222155276361846036996721694693076629807564715863789923386291123955348458463428299567245082366471384198366316587363069250819027816817175007574109280617630262313774346204489400008976022685110938315824371180657104847221223923896398105294852506063631611447017525482227299091697042137031590597134213730526932878295748257241958149999910368421400650025500788838590080269675375876997576335225917606272441737131841765427571806150098461513891556978879068736928823211993399351193692684863688611799336831678034634558918948902466819769300109623913196522746583709760938852196609480992581943018356203691140057191715768642018823133573477620493161048602486562494995280418418836679515555344142321248045281781824522520576329760273762489206126316786297979640020948523310865294817610378698876053278958680485379471086444255467142145538894135599413408224935814712497236441662523624256408103507316057482090504535561002954461774449101309098035684661467244691055350077518512513211117502925354532660886041041876128718888780884703962512552742468591323311815957179694916642279463761174049483491940279894855866160377261735109610175972188288618987417320036081427886327787476124914925852298408663490138496490024241317609569350654707771762216385804433767399262108046636700840391321885153427498584985003574695893357816132952275445387438369765476668224104416407548165836514613632766339772508677354248389420193733034191032008596018949534509513116783845138825633712293031278304801919993861128581571541161256431121509622548433729654985821833727178664061371864211187066016731810544926978526772339879074259605023598879530704435117429676036228910771318448434043699790964191301041952059188056222767294845113115844513098309992662500310669352929742722979676507961147693489608678337349364457729025554065937973548433043674432464964910853454709103519204656064005111547265038646620166803932842285028612031776660934961635708996394716063423367829618268378488300283234643230186335906744134985987082269572062324078865455503179930160995661190313669484964590172217559036821870042602294556383067502920406913331010216331233723371620292787666612774735074054055929379996705806039444102392517129275456869767345659983074769360360892090290724829339992415782527309299392179280110830965570630764012975331572670902018010921097277662917440139072667313847778761105068885944882464121583965983049230045075567378586377572563750275760861022971684849460125426683770003018809198157503323993239695120697818567439802652265004381646848369518778894634036583215996910817535273669579608208808837469395116852345401220066447591799598695063371557420689186292369552041339941160017960330355037636981683662502814492202695007892428990068313692536155992406619387797129725908217952069494109102773452307064090984542194838455630864391463018518399929097748877720442943266736922821527394590713428604348803000012040552869109239782734329321282621423847843345927682768601090747598668655230796301346308845215089136297772719460623156480236602833942515780901983917931587901555830321096810579043603614453433765945187129551578043547645538076270466616985845444164523829120604598968837688707959885692009977666064460811342580745984592543990750973954640744135824779920979783586908577480094028199232599270815185301615343214028907418460374476633348781094602899608708594242962943750420297408855456183431787281852995179300464761080954968199957743163703828805465997763972079020697270904645671269748830747169324636859868557684499950276867234403995710557694264368249720215190791887556447563513911465433788704150220012896127040300328372861863207377963392253737891381320700306131439786272878781772681664141489115279500222503504395279677432849274676846356366158689508433424168597542938330343271020723326486675900601239131606893638582544658105616577661004848991638296138877343165265423524226385487796001135201693763833363590873938433724053662200848582717408141036844465937899439946895426552690497478293715860547319326862959070192221888625295436598884309365395916512778733366237559735131586701109964524332741031677664200101834002786087550463846458539101190612898582445558899308876263409220839792885379401056971502881586918932768909542853488045171689317116124235286627582096588547490048132581576034554485886395599102042248325042090280520980174360224113035150648181486226106080563049597223416415440827232596580206757115530267625141676473213615459118586674797602587723960245877049016608408367876359947060694079537437400560815688746468310765867441812277173276150035563816914531836952139298714491389859901829814288084381095170530928984253004047327751832435649750978139152005053196950215532655325702192079177520299023122110680951632316698479511915736858014880215442132005436072410423540870857760323557071441459948806391254949207786981164540247942273608699082367899001755254742734968223102012623125052999568073588842116657991758426965059423842034408559881536581986900747059040741309838504934972486104571349326206948550119136406636330640280853211319373058170120883732169290839782397640309535635949822476554124663374220932367618726500223536679877218205660177942405939299166383443451165084799327869388898697061023439661207485833281062898569221884583031830483704209213947240277900904313106986195175127953921918222960020337565653244923397870174044016752080993480772174876704703494678113581918720542257229187039763792430370880865748062854388936424850477764852589351885472907891745673124837447572290010076464137724725571254544744843137756801113473227329900675793961984760104465365169462643654509063659075723468098897913696279045809054394845595156991932113695359083636230186285269480282454973775577452363264112621922287789264785977557406426843712938113418441740087218671022466427401221533971268481556871805032470031592198272008671581398336260744175421862654756239856383342821176662614479986110619908505440276846351794019107214368535097746986531206501170998508079554060186939128782163137718765267390102471558906506632846414130263964753149442349733765697457647361142803059330797169799892269553129627434087212235777373666333557134402961910588283930166621626319379515258922455113715221627342457205730441956212882729551736239775691387316392475955403691164449267351701665942732811529168666455538461881352609693592607669397611300843353141210789041803096876491137375989477795372803126184157651951996720272480987928895798651565502972839001551413154395286985777971366695476690224490432085990838446536145073896644373246466405373676849928636950948950531687714451464182661343505831258559264678435463723554984001708628553298008667711768617330366006188666053950468569036511834825148199786841276487631478591414281791555606849868516851814312298501363484566679425699163488281552333980444127640253248645446292882806682733600745176449969486205145033471422357310365608529282879554884136453907313510963884607470219671472563484037298609969748151141692768230647184453664171165046282260789533491337029498663821428058080958489220198361411414702923347738721706032311657963112333360217419854747004087690291990325336517122951561006295917689438847788980905969729703331380171317150352151849319377616976006852505763375250381882378603885687766564176571651250748276869948452493369724082142133925264863620474342103036066446450712902099229624923874801774156808825546595184992221126113048676082438758880458193543820348478314826615676942862231100643689611901634230185294499516557130344361086394243402539169535748983055368438499995264684924371641895367181427809658476887599776447869010604734840750763531750698170784281719203428342070116823472781813471500231674247771106316917021898944824769185067177266146108086690449072000183971818850579463506425673413522983566878261868059580115004676094872051936767184234446251501549110965491059579351652517137744181199261440608995682212346005771879343925343222515616468224067721079500349937350484242585677984736090735005606635997052813186404361157167714996409873589348640945449812897759051894862877982273264144604014993017560315748767055124068827815221880093812590919392300697145541223367825283993348169937581978959368553086855437975497547980135994826992290121870679417901002365557108612598725579551171050598511332402975273364567489897059986200333547994913146867435385495062793189028793470499072271358362347823008732249341819168632462496082565516207878169034443648858812105934646466870077456006376351856823063838438127077896024502887906741150757010943171462217402117504172044715811106617720359853213669990600067501489600924057182277843378237752770507216509664187934489216051341896510252817809035174899136081641646173207723198574821032140800702159270711598064437893227194236403203211386064736532206378773843199191993434477082500791662054865776726896869988785574353938782191799082577710405770311826221205167228693265676332093955658095915516027956877348401786868510179270351763534046188271755087667369978714735410892767205063241725663516170920252162696276235574247257302793064955421093756288122355292640211389934547610404365419518859443477435230915109021456748691980413411241938612677775018060763584706047001457465569264094883156597165801640882135997080258852059836606520303823492248459570151101298019893532003421761705906296952571891260363216239180758048006387161374410878406182270704233041275494675470470282057316258989885597101319705687727852205420364914378178950664485421712684503008527622443304443959274492418174816447594876016617809000294546591897675541335411341933170517211430543266751813593281901264775108186614514715732265833511830559328217936752404404045438791401304542955571352975815481298133956171081784901770451622649041422474441654253292169690184173960153811467734661812083883243482839086090725010406792162800815530082863658096028257351825377527512386479706780299183725566742298770166100888253790730311824691913186993635337827375569797720582526737860655215875236995991658631406380953968019599681620687198083405596133342055284097556140691061821925514725216765629610410235333569525675625343868080590071460710659432025594802960201454068812825465400111886459368154467315021548341213462836914296376196756383218887061607521056798021933560186715273503908332393974847297018889429734600296233299598890624809917274191590558642924580968328090855836509736715382945085456539478060741070444021696017948378456075151153103866909748448576595624320407850464592309335155900803901990155267020751767665950354618003652139976254769321220339069074215782558410623450208817159230038264664338637378152586484147053948459248374933486124033764157330927253192258074640979942523001971385165897964793181496573140776426615821735731038047713797608158586086188304880320948912608291916462884110892360345688236370484437132555006458139877786132170201267397568324257439512784434138933464967077974882535981100365871307321163834783737941118384776494830062430031260040570040421460862285808407797051914342753557860656619880478257534741197360475892914658128163131715156108981816893620360116855991920117182000994355334251368138382403575003878792422023855405383107784813368442161109807762615713819241020966645655782019629076077091985396681714089578423690137102257204819506160245997650332379085820923168545208674821762801950089064643673523704463424282086504017519637006645968364750012139571883223330785232950244515390887820613580111634056874406918565298236585168014909631466078300957709069143018690400854459246024885333813750738188435264420033313542645388320810101957851000722095117660089603593644085073355559530842042541684995380617102950781117887373787204519932936504474688089956762890874349746602240397350737524776804864689196548359407939454269943820172219569846479802863372700664094726740080065284891175795255209737580534401152481033964848642022016578079674256100152344626661255108877041777228407605908863221854356993166622965829642606889395710995912451073513177212077236320941185979746923927572333048891399158661808748276818442659585195999968656136975561463205561718859855723776778428153151629475367995612938656978514675229744968586332238184250237468063857519256378938714159022783329647279168152902774202176920943119050342529287642757321382220692091261229248229121026885362426717265267561110969687928428735681305342486877931919435966018178308058530439306490270359201252653468225700845382840544917391654797534919869436124497343748000593828098134937628358838499352907326712511232382383966012640371032568718087453180439835375505866031337268310672524942300683984188747996075528174700401817200718674850953721763266592119989609092062616022689544312732629325641879563438397897408937501850551913231910813741674945453285134659298833321581450366317914397417601958131393126651654007758156500489090022460806796964010772186433167353839968691880018759532472839246545480967045254436982770022367893310455918770758064843604792218027240277984825189687416506360837110255202791937638739739573210100221683332317636607571195023807576280678631961731611193819994532499079591121010304463631179803970022192065456833189410674888322496152486034170567990387222817044769931817996394866103642387823719943080724928900279141540523793929504346100010769284705135597415191867575943571055316901697433582099431700108587933963693108518575315042392977233175217620468333884559761751662209179763302910015911334542111644775320643845895658196119029857916454454049029038696961463100612394490005434180203729562120119540796159538926118067892165468294009019570308589968381045628872641176259381659174311466102122872768746921110463820999255602080499156781606456622693877978294728413280942580446520273319027376379444212502233384012409079277394610188698805212263203284112114831674746478894049313971975565606632201335084021879988879103078307399364754169886246161642514661819501135481216456842048327845055696094004706631467941707977983442297153887580784651283286611826965356355744900294332220166724618821033833809220422392917552298371191531459718219925945332590652302750701162027521701564275867067840136385640685806989533887351181360619424486057211647877779915337634745800409335163772203613517622772596007316036437082178277322334326392897678900288201709253020972235464689809450936524766309265726212264238747225536848596682981524264629086190900821297847785679126783816434071277391441554348792133573217921566845037868936072231058408440985151551645387155085295350972910292944030667341747371035840054837161774686741218838208754255790007746957636543566853373117045325727178640307871649058337260723118674651653389907436661487328241020430165623139434124485084528634950080944952927972309367480836567561209896930792595128293948105592290735146757374402804665411622970094445136033325985873668409658937326158621708168196418079330161129767903238416963777045368877128038267797836998361694430998619969052867521457850215736942238210565224181110473726496657720631138247482337858549345635843155883591450020461493241189537015526320798342771129851488240984920933711745920538766212421878161305786814645456185911671579807947903524986408548674051815886282129549826233511531310357818472804802452221229741810771012837901387278113660201861900453336867035507622073047161026328010691988904607745463084046229544996231766996307230349120440224242985540378346269825917573180736700012351861980578004823738560257388659599297021103733658827126255497199983181434250439792178106857697970750093672516468153061551874052958506433242695825999475875190581849638728615062837733677948986151801304930109533479371967819356611328871666536857572527983040973333324515971739003332291799137665440348499807283770157548768504196166760074968811687200708860914128275919805966210490792763709888294518958672289008444923963953936216783045002312708026983445849062338521102484153310645877842057627526487228997465763081624520680773296151635313068462883080750907187734675317797783216837276073581952019384312802906626428424984433261234693664112494739898528657479213497434640965536627832600015679245182892999236644094862296938031300334054450927594125009656029253143120966978679050054907772654432972397524561541348006141019034031839543546452831635073349106574154765346714593556950703197372611452118409231696145226865181990349562023590194662031835382504598232234740252732114040827621403948158952668053392597814820067327485757412264089412694520450318445865829842464906776985701686389495952907847223060335315415526024852017647926407857305290638147483900711168959526905235000394351668184475768892246021108923442374221356696782562304324316348443670661162795348352868391341949228495509617913310927745492213310306435144530103074084149800813507276843720319436076073577607855166442057296893906335051851345269244490987852269446604231566312210136050623463288743679602959204916841747531422148006929577295760303721203992043199021686084493967053828568685449876050280506566726944865806948971841962433588734015468470896686332489927957490963527038211782143149041841906989330117374582163072315783162861130702585525029144701394822407433092400408227831398662722095043954576380425298455875142796565911036694325131850126838913040903999026730168889702546589746329310919257638224264946419966545381479791281921378061293895599915024670727295286008990667456740917232931144766591047939927341900825342410447732546378042005330360108712954210488138554470574274771616832204997660749297107478519963639117367758958606025914002025549825309950169653207786013583844163613945962540278817188673309969324985741984519746322241460639477925259355904119704162258520555254666058519734007257372228586679842640234065778034697035476866195947640516966437486024527684080997768009128769392484501636276410484217255958854938573958932828850412473920954718222775345480711498828146051569806067435934791318408291491882739559689182914582082000675880090942591706930239506986112661712403677570239516146154948579858544881385352279547421587717794981779031545477429983619746777819359329378111857044405335634346486972918111329080976352243659266256771383977230839961096895790725707962901027931629733609600293892201836669531432542574933608949871320359297522044194811931410768520375550539370544706217512953697509641767142433737682344697468933691795599523560044041698734117284289850659802561822077592551597066078037894237295578100502440747876491772289322415400925221028905808553955937465200017428067081903364589191529040775903534361663580623048262008350532578185580478234518840346188936071327895764483290082559021143554757751036100368551463882563254402780526121267408504588380806537441138947757528206731633282859897656132790308323597490400564339684850523849073553302269725253486419353089428953453516587296618626621687735675120139668791663559242971472695805099768647291673282767657233230634822315592491706546520840399877308558038634419569324750677048853136495346215692544512102634515450655113608068059972429424308249220115060113075537160632945534460102717186989477242873869874742889377852986389384903853006529369438611888747268363941328690709507850988637074351854241548659424468673581013080974999438453140339232089994281698751512954216907815940109369188910545557814461457561802779031337840084284803447538209347611473584414401853997202105228703986929877860264516064262205088720370587978435957454825448798015845170068602279171188305207633854866924026340926357553294419127409762759582175856934291338743271053025784602364177828719754880406952288621534822015089482522789275914887582068159021781969988165732447277421322338992211596004685039136105512222196426582557602801235627448441462539473836834651222096935525569958374133634593778024424068515125641146533335347049203916966878774632959516445046530622071978747390599668806683653270646292599719271574442360602777032761825354804041910403185573271320622962765746387121664125889501193697968021639142016446029324648083325010734114582192599459338761663679329323092838813352291689705260733094559875559554540342768406641590448776033940404806787453066016490428389826099565972028512820961040890003596693016656806641805739554896508787974949701655454598465752437160288537578642718217529575728024898337033423608852139714865541962844545103897273238098497273797586708410894778249512358086650866752373680885693098060941851898531309841871695434100234744789140294898487645389238523889799405418482817324927546943256212389592957981813537940163579156260482060517125771559694691623427331783142002102460692831740441394324123609537756211771389421660271733536082582109505523762452830570519042557056228965961436762658935430993089298561363934411511183438852283767995477645621877652168621751748982424239586080174374723360118682014923774398891393253818561360434161968647940207459476519521600240105033400944048176872526861330796369345443933594467986013790798098323232079373993094162821024538508298617406991293186954856213346940120825199174432812670417280136155478590464835609839891399595958832535590906410398762243659914620553936916009406927320852198572971138694860867854351851013789169465982080788116067385166578068750782219991138230177790136340224986556586097387558845281100095091613813213110748226095934308800601388940175133429998148312049428853764521751878717199719593726180621801923271126128820051463770720412103272170983997332902489437647401789996017612637395435319573488256083634540133073174348938790123333638018696828313116992632156581082413480296162639158726031266837025271170945256194076736991209210845760844976961322427617317287551000412780846927626808266441644001475104149499400477503012566666025424521605417912840693485502807464806008653641575555870965983518889992591913339911116770833384292305439438971197779506304592432146983218892478802314009373634943366395629744064296462046152426229278466644787943333722468730817434632228778161404586301555600829064238728509443541234699676584675347078393953223757683592036079894805034492293863633297307510922072455528214370369686181267126221510938560879173664322515524726972654716324218561312613321560829582700897178407474359927667524560024350090692228071100304126295041193067825230968217979611869656819933936459622366723261365560808355275864311092093990630538940270667865246582812769390262784386284213705265550078002087223053240254970706818914010098133648930033021548853896052074709983124067274583139879041282161750373924533473935659318996671914371380316546881488154047167746905756580629337040118819967098590442493632176387352994453720009538515530827075436547466432613326569778436399066828934155386934198362832684419029682415804666441214676252532502350212846673907144263357009193961204149326897083360495079124782552617219582121303386332784592743278182152112238065800783007236939982737497423506135653319229883094685423833768108703096311705161783024390073058072738099124529375972976637389489334104587714930417845189526672087954827792733938690556377863600344453711254699417517413943897910477646584457929148089554360212078657167854041212152715592449893601580151924364828463949758195093897560940252165144507447279462688984385251503912461369935981826817315037075685456737834575366083339970788019464675574690625053661744116658331635805331844526357018667390623023193204199096772813069239965120711120556116378695046998390683612594399867432650461844516753134732919766677737068551507562884035936919146096250015598978321395072769795103962907155962505725487222432710696098252298729748144815585979861626498114097148915308804710712613972361401294420616009145125096943841612852589148277808508417954601535063706353892002492458180897111719132715456702111997183658099204047183111677712923408025857688028422642395508347929137084907626930268214207801446298755905017520498761413890024970017683937334254803637540053770358114151786348087940411490920787073450394836057753025998216039523283520494721425191888435864436371364843499561903619680100101590272796287638743520187879297991893399440487775966859396142105769344372772647589076590484370486293075224259478650640935129394144741234608167020196626219164489646504360534722915351386798055811330719955320980212119887451506691641041148727495217736868247417020566064530760143665757223297296645075505279530157163963588107524555937039675076183341176988352164554575122352623633827815656727072810414163811608118003525012013818649547353085737224498324509706066522378163754603239408895949855055170187351440558771079020972840807616631876410443321680849035569036843939209202710682260189406387673687368311443931257890733341024144506986017660238020227180548500986633273429650093133686828810840378504581247731119982146101396364316408105167152317513883779180727919581689946265944386073151526340499581763854162192333217692169572388006025501952798115332099604721680744098827308798499673731641708991316189344724825485439402648613810996732256242247132805312550677595692498505627930010333177691601259746443368434015198596787794002951060440072919538639852496002015805509983803132009057046447246093210324021357207263189995650149075493538357821889965133050227153236283382267200978498267778870434765973053289744029517128992032640786551495559909874051882218466839393132740512765458824448218559420180323099251666845113291942347388246102724060633674433773906889132968853439030280748830155481109902893894997911479404313940230386434039963174339786360863165873455269791145620990534576817305680133995181028698630520683102000542618410076559747675685138287173819802717081766622137790622372125465141972819616151117245652657616911595827059250474015667356952367181511028480655300612425160023998817819975256042240890218789957774725832426847746539811937190912330438973417642699884456371740204774208710759429309572526848114693124896762218192155846089973535146401358019349344930772613214580583568468839994958221742673734009747466979125752135633891057020803747222775677917410611724100973543182406968996302150290079386130614235157747093512654485230741166861327171132671193325863601535016271028537520494297611321924966494570525909849868840332054480437085872067854217022510095519774078912997680990319640011597045049699127013265250108149118043017965048649146162640257161908695506860962926154017095639921988241615903642405458723153310947053973363970125146378064973915081482365811023622946292911945484334151329757970152515261948743162517900703241050568723590305029498719499540692318425294656868141277683572035105881907742835101377508030631138785920208249901119833735320629416545560329020829185260556223590935952172233059424259696996874174640986376481761836187259595039211261221969763392479264449512759215460536641574294764770712600388923122698243516295953244706138109613605453136943046441502984108876921445077234959511029338673559450378088511515893584872814329729736879942615884789401492235545320591866305991333161928459371443178603072316372100299391136174215856444970759259378151420110294524815889206527262578667699213219795111353448654277177853300385012238959204862569172905923276576541252744456892687901912939483639760028093638632183097682540164854105774984803504915881092162627377679181869358358720669144845899366543392801073770111628126825085784557143031498626393915175989238281920872995478654001895211026932047131524359033778673405035343643577312028401239883605107419516017621178603517990283699776949389686749006986211010281497682143057548736041516428041990720798838042702455928044727332235191705837656457258459118537066992903762878010567150720179055005022943682462818150540517621107367966834089354288344275848688892005842156490305776632795416362448442558208493165891874984210154597966205237142184349525195048345186142896829297928605669893051717361245948992752520901553789387142558603593986976608847492837409132637962455886817087857015330742185374268681692838520853577659558488948152486090674269526713058118099816521329296748594391746423518021345936882945541480905711449670651724180952505973731016629915970608299182217781728853755878949816463414892643251083806303033428858646494292651351981179348004199535762653134173602731197231431015174591778295581529896383046986978908971658339992115144813596766105549878309836332098414419673556072590582836216546490424072803951381046562283626123110197269608544603692728375855494832183011097103304772168218500739933387136420217420104487722015102933024379907063804142111737554093018956887924745419158519573828259765000418881943375458482531532818167749237517093049427232625079898760237723952520699887297498264240576047037562377889391600635857686683968378631770233865268832439458140343151987554142865456474750206338304564587885020841754696828876095357100956019400957249559801769606901082514703750337501340848635160518821562213486679505082569518797482097773771100391226106424389709183482791038709573298922235043634445321460032359243001444658478010990767647562071196745146421856852022857810238397917164586111952214650104520131304670045741803238440600433492210453796509347127820455090719500344055102052082631818466074256666452927190574321987709616784834480267845613672657881866295572255908444981874182591106689394687216001100944801906657745740706684060597259500138653944210192939206743304575802502562215091026142285946475995650738169830554835772467505345326147433724379770579698575982119430306021621275523576875530516868988593616456105712135353412603586873023560417160670966206280210291267389557638534169332612261377639435944003916251611040689917746754440775889310370639693429145696123085778846979501062485114073427955031885765467515688841739295772265614806308542177047874464896870612092180043741667117820037411851661904535958999639167853944701437751716616219022513451540087124042878877706519809417116006919272017536813681730613496277966095855435151329684804349230935942558555187398060885871454275532674425598964913939300389302386482599118592765918188670200593676824827097076203518456471480884467711848115521753564562416956789938211517609698663957944555463646176985342893326629965044661920957883942457160220969306560732695824812702250677067760291133032377805213038535479255147489803312689468529613980472721692513987454672680820376289362453056536371560102105390568302433793275236049608103982128480995262531695089878772531493556298545103719170482712929693509455819452566095548545211783227054047507504428233184402446149730172832934405416714749115143041675373012708970927960461017314720700667300657474608932857103017324813028978206327552856650151043474505320819700003316278229943998127892937205229270728557617224099264886674702547571216073626797380907994707456382276162889016556238428825850520494823215618771954339681458322377914203092544703456337892086320076468889623509457891858265655847124813489871016042167726673918916336117982768348686945583656113649103342667822085776235655710440224975097546999560898965844675552909100564125443554798081260382539366369772079333636520841083639035653839292922146636166479561054152505529256319475095035085911662798445362369703345247505125516143452221042208408762684105095434362722577285702729380722198162178674229803131365394639688582160834151199580700469542466709768811835795092575242290832901420191927081205036532887441654638187435508895607503151618441069687928123045504031284746327484907250836969705202566933493502150167147992447012881514814590065750097165773921913232290701143048008046451136389355990565325640329461142798759053948990408442467948141093279177573201912616003952889874865580548532611581030218251489736410713841923617231047923472658266802054684353923681578041773314095467167584201226607941023423077395085727837128759566019003100709291365550473911698229745730666683723828856958175422621037344061175023323059106994487805323955058443278585189493122649185098812315700772845103626612260261052545633268941242742433653014313124575578726632799669129173781494718596488894580995139636095992985971986007466424026216658136900986264404517685776488417956795658708352081974915041431054756333556859863939147625944136524651561496220334668776858310464015324268084823898868855837799605745852391879528176894804322187493211508003529357640712788500081422120237861449601199226410956883418786144161247659317056501093851711966902113106983537380961639617668709953087673627872147520708436353038763340521622638430804202284555105302769127891908429933785855288480634746750868550234300504467957727906173083982395867002073054194921481040945683232017506768008945157187698855241566647803205477451264376374221311666999035155315061943926699455317917367098271224607326286549094257270287274571877967887850471548890536016110446432557887827820744458140079252057314318582542254247291767815416186705356557553749153398106586210888767087110841555988748985318379748748542381070165628414616333852696062487122600488127998566806951820277811583581348113098914910744748650173364889121315169108066915506711345015326818310515754681510515691968310688136050648936628365644693380496934835161566843542154573312406546774223091918384160164525815899808485556529834482515162267488055156813506358349548473016075134529965883343443664957382673441856953975854931667917688637143499479044490245086267416340163841537065137558375327910777622747997729736218363061943358189429588463418589214405399816788545017869429670086715893546848400739068684052398632295566267943050569115735099071577704603014774909988223732473433315545097211639438316087643120403858379396490069451506207143995130573591262433079979119313486330722339110782781325761482469498899853602080986195211788036376482468846963521706978690827445708501395973519068346109192315873450900735087325339915058195348341667912048389300842101766659134184215432163952118940952690649376879266254709017177931727231746102945689358422881716894361000759346197141709464281066795170198767971095080186158721353502153353041644042954084066161816693152492412546594649529441073437423085512131731110075537133047906647912664427434959200624875944071925962694355549202179271486767514176652787375746010232210834836446381963029389084106459123565040364396051969181139609241228024948901381303610206695833079720273039788990553755122337518318665354456310130045329820666781227454697409474549539189933713692030843733443820081111911367805958052717011392925704229871798971230365741358550385819827775844309439189701106137574512879385635347004933824067720539112681683979407248647788970495555280013019714680982261275348992266608182579742055773818187570942055719370829275484708351413895744283807122822242146414578363489908612263524812592550813537879166991394198818497460598884080108328575931500983021305673626034727405402494761705946499785807916386907333613824830740672908702195247601701100871174304262721607004312246093581716210801196079120391644802107663401073032057189648539252532485394552105197563639313044652825791267026832673443667890193267912374619263536432463715738993563679796550747005921048043450921063164131870346929346860919633792106418412173137979388082917648279981327621199970938625852529642321296272721801795147804382927551898068157152939498378989001375660034265328871315376513855717552145980398703711506111475166759292862864238761927382804649615680970219531541387074135567520981792833515286705023473569282102791440414643169389714145151238033712320181057778882205817953217298819169250826396639574717125398719902052239116722600150210469768429965398302509314500300584248428635716782463859828683887352638388040114145342408353851100088402453463853937380212765348525849107334172249909877793843161055164144069711995804827563438508346674935073920079623123265128151859899293445332626977632350870530658119212706176797350841513990285331664266675769815413343061327351578410614021582133432590504043298405743831826443709604648951127746268436760767055238147841105254324217582733006499429775747399635970826103983899670723232838811703704832307340403957651305072774669302092711493894589456406007517456498008435399921013267516171395388626391028450200002360684975427911956619821967175420599584137090126160281173460130302979307346839351555470282272475580057707802746876420853702171822312691216588989497899296594085444924152223035495214053561001583784588167498641502119707939502948864172078152050187848319298770315807409265291711336700837622312095246834133619587334818322330770702217552223978421172365272960262471122749229976238586571518230511182016842566351370551681560319585381375986311771761093620939071694910157362323552727614428749704743932823165036385093607946490249650381677662379004129700364234126698126781930265683182050580311304351331940043672091637344364156217430369086132374769585938730039119318234067029018004491325650825046672812900447421861415629326059095306795146137173789663452480056247595727425013394462827901589693626303041102158388024332919629292054542046703513367594275558405476018947508360180337260300887232580321051800899058307674308704172394550933980372359003930391771658139125354670697972416146991226685779604814415049571043405504350809976922639342863095869991368218129767342347774620883637475725899943237330743649909276532551457783839262642801955841759448505569971965139513180091205551034755518266623470120370224541767425411431309642314702082650708059334759936781501708789766891198338940785619536980675172498745229628901075605861755374978152601152685376094760621203479182039861837862897233643797434164293863094668237735837456968783922115881222370408075379568531181057398340901699917035135930513608729753375117320109486417073273034579189857276747969259002860996362500970462648054446492746682214447550170192573590505285593369647334625453196919363442813183545601997708844509685490909460066065725671752569110863127978848377785492799418021543905409694392240580213020852399769299555347716359532759399537151239784477231172284132654721213963221730251725326273733608171023207116128711297083387887564831245520833163361694390746399781273413109207840937176851359200741720074460363081127922179582235016500718407914043264943312759410231214096965192254350729868662294972612603570297747347657562228599212219252258139905654652546766170128711488786858083050073265748829279155004148627170168903958630841188661149333471886641575553208325764370120120143847082191026115828123498150711592457711025634125171050677240389603868528074757445935035246406152457766397139470600187214096878982440113200465576378415942600235214084682993791197451244323124867949278387252031614197262549394638028660469246336745728891101097800376620262088540212267144807614957672427583123876196796940912734578290271439500191556828248116262911340918421927240221565697328881988131765139973081915005910055225266459267156737983601367687105832482412845107753078790551177112412521008410449062377604974855040303803189078802969000163835177460414105521533570232791411645030873089184897597845576435167004039290483699299935665502179811886320058911521497261232935468522789269960091824608904731248800953951968538566434585917649713119250528586074543336634764286966470363179306081908616283438771748205693791086558333155351432175410086239440127470523955337329844248404714516531091824882870560848235687870700088789810129606335922047902031611910445380969181409556311615660820239535174783881151862084908301631941590521622854655157555412123960326784824378060528800892370115305374208290859308955206670795430762104714092327759194492123761608259356318011172846922834059482864452832528969936104285235378077746934730024575115017596274773364457270543395950258760709497029562354271048029815841940675222530414448933827287122681586334222086523463316375789083656623899537664297667550898715670298905206893135015720548392267204749780013292314483222823463699740855770186005627160831376302218312690877563562772045888257813462989942996080620774750265843891656875851435235181822252659705671956859561266876744685852960590356621782741186051675160637794083031912769148200341075020256138129494906522805370550414531913786846494199960086201860776887333707510162112908418588649778656499510834613514442282554367500694531693548550144198935838007605899877010682514728654813540060980050562483442533487796590050263070706316577374407979570927289501361160717522503791612762753852576865818349186298999812107280652402029557296664610052887693002442561980957774611733898290687471441853488155017100190179440764909825632453645110183720646374221428671303870857328837956772510097115155514205358203744966757321240799412591477786717553403960278304524685796971383217736654272194544279371438278926720292407543076357376846862612792401387129138555580477919133089373497938721420953892315836971880612679470420719239258357944600613779866688943428758974106905817476130234880967762257056148207149885270823225756787455442075101002126182641748632249842188786246931757646268216914523210259821165479152686326707063729762541093369349732114243241811222515573511193998572478203515529711502564503986091691101605051635901536188517546724090301386737154459190053554608389416068737401603264094430129654042555016765550569785909177083109313590079707170765061825078433019480644889427555567509620920927263969771775788081009732407576622324465593157479271335469416176760755075087100743559400558029872598921179339388650788892763847036610076642296929922263024343020235116384128930431408945711299762008806821594742375822943135846054712510704537620976075648506866427546518603050350844652145251234030024871403936921586820071350352384096972494958314508159130441357806182078903622461514318114152872642188599636866352879139080526129986025412698797703648091248273167736107509089859527538601280085898627714594491259851843271357182338326447014900277603898447545893555420929407747411604680943411670129119729810154122116525632476892593504584362797465064277045583606946857828231054009728325259286273590661599456599391534300138982196237571602073967087478109452871949577647746412480943949425663268514674956884672197360421168178970689307584030597213361017036826500730460054087893090560076678769368278597098509749385501357288495516703302967323701929943443579554883748233993176564783368290638757310286966901034018458268702138171417412736524191711291918540377176806064013627304114481493334514004070216684583153740979542232627063981867552012593409680237334853805958369361973803089124197806862920302583462079893027526785315029105938909873772477212321802913576823587722636878158245771726499735781298740177644025231286158611866849528183274988434767099485713256062439523873152413321962196207690175530267293459157347853400980887724167764801046235808096348625011267066887991872566500258111617664431614757475637067107306628432950614516696971929067124650952403664715441881752612159751924471104908458098286209704404732776717688288130306940831531741579822821383569472554275452493674956158482741147720280413315604273583398341154376105791371131365007073334348647612803769316639774409534190973241190475825909112999946502806335882005440552327764268732936626658245926570863514192360573111307411507784509972094225405962603827499598775103786031740032674378431582761225773780258039577355488787058757823827539258375540418759392938777815000596304821185801541467190536366676612736575279906569381141858292506501061366409493428062569986793086088697186708130059093217080889710321323561878880222992896738019432736807981793839108517855008189236811759301778642763335549393366071141141936428486806169456748146196859777212208071926091313540223904791189835572765559016460643270328215383283121516755040361293622414129526137815730766385057858953117709543355865577244262869300579704793396254131671456485069294342570558292677026661917340044564593185286613407098542375423132348475688466679757678540702531612422886129287610654361223326702255169143642886228723664042364672722162833724424687807575633361773996503585254769722569272503653107104848664375431067334931368878870840449392457541839822074751425221083258240884801838311892137488574406145932539131035296990679051273046383527711743183746374925416992628797193898046681781465249468479859507679929000435800399153834256668956515391241434109361745734634586169656782141888110817935657347253466944985193689366333729976388610537691889131859405776914351562155643054518410607432738053033243374245887104507500293604468572837251944821947515795296065559552659993618758450144817399593557743023123177896838498951006118180245444944642825330659838909175391586618397834835425870774656117276089203732654021338998705614521846490220928171282213131511085267832406593750422410321752957830295994595076414114127326891822960305471048030358149331966627175722562216651518867716058714168448991168482241988923772410312956505590548781182451026161767292176745680184270017958776663795774099610946717141314342166884273694268246268738026922385227708018415842370140822531763051678612798339388868132966887672819702394558651354648132978425133106666430943474965574019901472737392920176373762514994938002221121394839758374174690345550633966359541519731596700804101938328643840178790428944254215365355347468838716112096778515492281963653808374475200937604354692744487025810736286899074767768454190486254218856007495227275908553099090636546926900225048832499269662067928850748223653125162579789252787243892196955854953082919814688659206877262795236273645688063298032580405959541140321484742089215403964752407178732509408430717086750810662229122094933663780019709027735816146794459092713748888589625797792186584514201747737428140265653246424142246635480779967891170427476920230899981317137374099152081642995052554265530946964856003811426518593225336074922430814114269231543688913877821803459589334177099317425985856426017420416261134085361582705234143376280985294686014413126628804680110076915278090383825034418926235620095133343363842718819768778529584171635022328677054967603465975675948631880318842564123792928971968314771746089777017533459044329831023127405394359480571589900474461680189521178818326887871797750991783231646049289929375515823290173340141094177878462752216461951208685661667474991146884443223891027152500200798345744226401397131322606438958873300729824632546834340141054826609789018461256050818583149093585712601603228551960213800485274314823295571287744383856645770396276220140124222148428668894909665698257429353847908361031003490384515758607276439046831568863584293337588749870733824720864295287760069879449902160453514066687357316400663603213329065704241719965190405597056184836530454981791180865717213163285944300061580440702563590086671333761699939103812362919449546531249524673113865977892942493588285790512740698314659934214167052612019677864893725355605753659628071994740836726405297652397209704983279404991230356879306210596732284917207264311941006874185911829998076968776544655634350368318374593949350322606277100899569543094068665446863502824149864853787007629529510544874410227862100231287298596830193253020840546692447288003788231565332024329328872750180987788915266552327761655182466506583902363076473279210291594987697803409082919266199195246688560811814743485723061412904132780205545421558750295612083990285851576466575554787462699172096752580967050853057392181366196067276518807818558839145006877981075871466205897127780962777391346200813611785288547834016949558041320841409034172555644773606060337586589645968392398010254578849361469299999527470018357948471489571952871779289902307576666230497341933593171098734319732696743628840832365404229384587533078093390758076726831029582160733064764494789342802021796306461814701401259789407821134600544941773064793514920847224982768031737237578709584783645124684663170250350916013216680238515453665570963728609541151868605437151228283177003719361363384291361714873616101244819859664494908548766161656283424548325247406255779413124548478595296489083704947403743197976065756337294337860347820930964820946222161424144426797808267573382071983725791547333153036012148101173266260010712199183215709374592533073772667223462581109522151260844844596346499697515930364134659605379742317606213993065948408375269598927860035489662486718174752724481881905402708233280553701502320505561978985344145218628915725797089773305397364535893574555334977956919203693493658752401429870799672195035628349416696626145213830508365062892337706180346893038744855072039534228748336852382608403768178915406588803351120060906088410358219419303609061031679486347275778815769671932562130230271108117192476946809806754308557168909204560639280580857966525015131345077513105308604945822993877944637981248207431947277659259052982799478404891440549999832628351044987047654812665684387149640650300031338447976925760193651416573778195288108231082778151952723178990791405481196665106560943619072193155594301795602850976912720360296756743622518282820489034665105288359276347878229503641548511437216281996781736046279978643285079974478136534686746253383699086486953452197951605727043276938597038817058718642496718590845466252505944643958029537696436724841538090911653862229127854253910142938182952147452207775930326875697897421681689432527439084952123642588565974446233394562085970405691960748690325416419934783423434577824620744045282018466519545355220343115172767442216115008288440627614935974865781194152813558034210703923444470232898342380899449516099731186467440497221414080576561234171086997155687176740073939856977544061511983270745446145478752833590351444535344865478889870170305904753606969040163804715576635892340675738875519279358158968308239356670230290755935859858911007262510978046587928299143138923213630616188258708546404932780845686363659895179749267333121551923233601909754837437028442479051671816926588848572435907569860106303140514550103201080721212844426724786157049679909979230356303854179241016621971367091466314882945369883769121997640385732228755295648500910238149884365172234599838507590653594479694286367721422373309212368791219462433306078465997516692329418786752446613551902250412098306765086748001005405275937486349259813069599680575755425575755401513928441028678532333214481701659380832494354821229401880612910939511297569375793003468610709232496753402722791112702431245492612123548485484753598825805643790727855379043013674841617996579246018072865445383058170269484185415201009950925068171350456900199195990534862282378026656136314199331573246927836168880336567823187363379449171096978361300156773734040307677075973370357987682582099128036114665965254208651888902491557157500576818018336751890942638662882123635592239911158325677416472828787284783661553180169261300671661428487534844131557529147813402079868303840642487981851007021910132547233144982993428642144097703556116839844037507846654270515476029623311569822499022020857270754583992285295728210438882292220543062667392633730501956251623390037688751090999777587907034119451185031992604504668616554160830190296135248465499603196867542694730048365968939563543692006519435099381598119253974496617898612443921601520802168295010733538985239038472867043790228895784831812521184470321259711598562476689279541969508142010046033931355001426761054669808604916492937445588456860564277368999831996513515150885037619384225306098039160401479681492134972055910068072538131746432633749501933871786025197925290169336328529294834557475275477598481894928449499854012333313852284693991412799209532969904544020911424562696451588851729147351981263806556601474344763549509447423654124310201258182121888038632639857178317935241610977207672260296956665466536748861795321615280127710694564529069817995529308468613941075093346573688521540923805817129145664093955817006437000850261045477698849730167175124779162816210500513219407240316267683055630896183856924741638669247890326954757147737762129707351088886064181998266097274793780545262955935776375003045636924700305969669854127378561894435214021540956539042886907400776636626279423514352219906389072170175496042971582606305556062994584189768100069126652809176071394954590631694933962483283821635435868886397537592688298598936331485708078970237128170780416756351391168890059483666408812426629018914498395176824941735178378434055725689731840416257915424021758536575574285221609807119956097954895201550610587144587252881041153698765337795646519491333859324246052430238240598203665715291312519327931158609787749430279459507758194157892908072425663540296584086931957537028438163922094464592554335743110399907176286281843882071189749871679755211258897761135039300690804350055542523151193561909945133979472348806303788814594154688138375572401753904122856892400810479811767595469788523881024687885536647756703863527823068607114612447776596603709360499629676696252112210338162497253671792489952058041956394047578288618169879508879155974955110814427571050334778048724165374187227531041767715266746993446702374868253048826565968076577838161143124077052297424325452137459231664979485056570738291008067603396162810090154554458332310950864464939694476194745552924507131988571512784321517973225271060268199849560987801077210462016344515583273887511078556682650324321418456623668836744257930326738440774852142631385592296456404416455405196314420227087617895469831054434639964294568292229907560344941433850438037609839185427545454694382104937990580582027593861263016486765028890267322436508861409895236914427399238274845075286160970022550206257076557221832500119453391871130564756870915773036612347205806603796985424405691808072250952971858421498573336123236633975306894417248172232308671004389260179973896079581419079028378558292431754700493251847947249143724535714628685469414119642313951661164202077861738453164105496676190832147330745285693281085363152793185690028147795699388995167784641911242376896480349273551255985157405570006869886040023998127438411189142461638848456709003884419031894123012741726537166932829937029005341409706775864999956212509979324818516694025364759753473443481083882959856943171687581450869285077597444937929445923362790554631780788845646723664959255592436484350126925702136423628534149102444728238304656658744913197082954112142213628234062349080244751112332263654645473585634070716406849404781212705690062146029894709880179236255473523841856393762336283935934197966671790722248870327544393972735665984585346216679417759158593364686486914636555317922768785684190678650264214815542266314669143733065650357926769254457381380964017275747470781426563929384480298700245496884957421910766925279121091958462909991003650797599641509414183486832209497789785704475714885655388261141195524730046932887030347887210302674333112341153132016464184726530647887627558623713727287316728303134982809905806685278509449675703861658499046715331135554970425871404161894532816614470470271948151736577300986904834416569519489773252799904939203277924520063074438454495833759817954516364323730760186710790688898370960114422040805382520233731023475525867141201046856374414449122384321139624973741247736618391892268867549218561565552504500816046956923423512002660969653473989243962451854911263852251863542938315038822357379589503949131756729968228345704907842691094495298111122462881664159346376102249360825142030059035807755364409276655989379174388113830325705786127727597194220821077441173484997678669808359304903627641631780838998386073681265697509504760426495202738712744349665156346538200726423673689677164696549888844768777850667704534794864740514507554284266241075643504945351258110748029978955378306037035844781861702372541048829822948341589419319090110295817277119800963765017208544221971627993616866960137431427411916784368935398194641204609875291225020409042835328996920268172938682563439810229623729678110542712395219363875898507586992003562724749645941722976603883075241935004529839267484746064918770198548091871878558585985597475883074712813577355172400519396587289236207771029493160447832680314565140231188386322035740232489181705942558958755657026315936211184520874653286485256948250899738609153404828824970805738638686415323175740126301565742082739413073996456633988210554563234979138899023799336746625306474109757607025218712030689755148454019618164763246509657334297680316067772087316332359547342268839075483142392125228308038410157770911103388730457260842884223822472929869686367702118179539023482505661176196520154359606595187730123077477675719229730539797567020059004213959821448617755806080524682421019461201542118365148960190898982932940777893600913363162969035597509629535326378796145523456388126019998370683546601357601720572617104134221488726462773747520244322430852307769309464198195923764521292365667767895977652150593671097716434959791259980476625120925944585072820093578195743007193279471671466145066258761019365583389447340854555805028461318375116122701307390782516296167101980324055073770516356728803959808969946663553512982005494878786112601732413220584695252346275222080268011133711707000212759777745923286538570926411958741527514208381815242361770030366522320662792626936612838341051632252054825162923288302614411513141532422126448804165351198402547222443172482575163449433352218148076318239849980870197475170828048434676130175898248735830557368563750468855538253211545329170398378622932560393153173322873868106307669678487492573377860697514322781013198496038607912905158879161091714875831940592162647743261231141425273884030451714102506364405854730505494283093054905649403502935010908805560801412313429042992490428729567119504834407692376489993771857935615719958504032419100561453306856640106754671327439091915397139664200979094813571727231606642009814926222914247570811879114045224638602844536070544569329828742909927792226407646122311250427401248534811673859351673929753262857730519946734796669941948653729227122380777672091722280893396716082698749442600105568359052621338267709381981945227074473471203884651474786962693843609653748874127617532324621641082808700374561884824206193470836436679156794632097491540498376407811362640711750754040535967557315453663345456739341062386555987517845349642774653297841986745469197557100599999304357057166273022585634792489387820140317767616699543774977959781107615641221701533505299270418645924729988389444522364758067075920531537534518941010913711074414751448303188178982598424640617049832626544898436141255377043933840494191861423347601855889351236414558028481664284414253868526866759651594870808566986013597085079539874396201751260735384826938520382429758551253335445087488251199035735161569219225660100620128379941363660196602942672424148782318979959710329570216901741496353075884325695019852253274122266482094618721100229938708105818087220760373343194519557925044093731043291608807248302552421771199234496142353618661212132420737931059773286783439562861207810823454475535703571887450458706997327674720267605028005118563236874333806346129548233616093030244147984597834988559800648515169231007774997105268996378270018637202258025422721666718323660475025407244934736498764271291774978116513663643660206605243388760273560000416899492027401019317818908652209046546216746408760762983509651642369691801999696401024062949497654359129591598735537941431420866653141046896726242370389986468247982655200680150307193068010749919838006831568588771733039695399697006709735722301840315121843934908305350543633877336320050233685476459393852221945522087517027707245855601742221561984279291343841699666245079834733976244718432686387702097286161793782072194341430338879747751766755294095885497582455958545910071181506492659128737563538618829113443251403925835748440945350856921593753385695593723769819986595191848325425371621756718953377462323830378670736815974364967036011398583891563545836777462988719615605157829783431835588942144795529705453608975371233047600044058836697798836019319599364754365502650773923359352569895804825795780263388457984651294677656560239852375183222451603002601100935976327189029478725242896988217231637654236656216294343626867719156690260852369160877452250455301557698292574472348427675250051788221362877778793448679286787160376287469770912421488974978528960030447631821441319781332820454665695686629419132312648171187630504496901226965422008923699333215475711144231374192821922385805330585738184179762822159540231571927768733872396517329807691056901284188504478193543271035939456068812120805269388397404128594572341576792637975281758774563021669987877147394571426772063843990583707126870681574534264382331950069251890330044043603060985609444996159113411226151765312572045360455756905993631035130923150205910948183527682083029399584527809857216643437117338826025256565685711763714492324539286936677896209241299445576283874358855947558006899173696329765147020926729372420281684282572502970884054397393993196876559661336603924248079228920683224830466686573856891819540140847683502025205928584121920363448947050864481234660218217024532044558368338258138683552408475491132199203459292815864311467266257784200533658045073630247525617556603932137307886300546825267850621765803320591665959030553958369499045542602452916403019798216738647639838294755706841653884931106266542443297770117938213353431916133196345071292440440476204157585663313090147289404573013053478633386346537811413271805093542270441245084182849592171976149356894324346467889710533295906598438812317169966682369086209800490263176321919724510475267896301487612536300672842839660233127591802152279977766146969923015883567082274311727679158143779264408616851533805126380000219331302028163892322778239516701393224858723960859681720099098659366656713153973638195630173370115403480063035661893689867077558212142038376656198827887640550800281117900809500279738161872055120576852792602874236527195300327676133684363011342952403326212500425238248724501651629025609289324160858363730382758723571960295375998986786273035263844406524100363897963652522521977536709102868687202569459466782127407234716626621113128448839123359076321211201104962677804960126864694798997736918116426711401423981542520321947581296485193313864338665297878389350094347066762560965370190701370363845819586282364004003705541360000485313274420298926800947742681845249772519830807184247271735541931055778607624050552412143746109162134519422417310050488651694316157729448954992152204221208230239600164761871663975404786503976382086348074828941007958656039142436838280193992234036682015010591338897649003651426111746550793285467860515185916047144978819093828642801884612791295040959201374155236446665208972938676536338358002602411022518956431718601742584559623521966608307153064994360363315059704654578175700510376568257152450202619207152744471269708634210323412960172164981011011385744570255559375865479937616010780694259148903449552814194145515525700646503999595702060977361988053903873787059441303271853381590115940684676403471132286180581041991019483707991704713153224862036918367745963635628838785976142341475331067047398123425324169924828953968877513215675789354535086573918002849355483718982701971375177754138807523210809836775582405836981610733171110010540980604047116942077807997195500851200328794582287554531031559108869244035147627676057921070187419134629723462803219045293081768637802856749997145279652001129086355251306618940801925916445138477563542710788849939208590003364720353443311475882546056033672173268974319766223335668270271461252913704224940109981834145187941781290110254534499748433757275359164851563851833021584546061915174466985791120516186730528675092668427636666291147136171333899124400970320901565816410072451390923022360145426331786566916795608406337245242676753654875825834004982271709620522999932962590340650240221732012032671496767594076435644772419895423872212514050823381289649184881864419663631577487451538431295187743209474490323256948077232721127047196187468131717002630278617204188999398823853557002717482739505380350616473263635586809552115043942835612165747770908063865251280557529257188248615771707479537914840042539738784865979907585459871271920307053165847874919991085071122652363953500858032421020481313387939318233329153087328908622811577668217477814435436662321799135530074756659688187289153687639986885175644622356016780563954444320100584839773885401361869060387038371809495997066229503257696434487964872693211170992834747066287227080136050986529507957223477846680028771753321349744980031363818592759063515556683398844069928808037689537551811317951749546306416228434996754975365606295268640012388237837739663247557911909355057319158294015549294409394721519449571753457121090093602549949426431300431595842254055351935669636662313888924616498154981264088167028844815436697194427839441489690466554431771316032734840482017218336521664986864693593637420762925500892882182365916452561855657732775658412440757874792247463257874825756654148741489918159890113719691901854797266499165395227814586402167861908265886286071779672481297557441781121241920408158846621108688371120996559449630847288160204367003186181804942818308378655519600782548084793292624609694384134299152923288299372213331545558409161101648615456893474739653572624950838507453478606145965078945388510797377609579690909069017950294660083488490053380031898835158067816989299168157731229514905488727431499904128126649738588418251939436787656418223691829653029612817199077249143098548008963428228868051180058854721001418249001282023794019939925653617510654790881423754215569612152061483657636107595458609842423594439575629224082096705197937386982134783010658330069040478413409061547387186341379765489071119458258637998908536329577567912736377059573583398374382940430103445605836896226291038960925790316116719351806660385830430222142363409073261712759522004260633648033004410512554560646881966403446931695449789206915608336947883678245990962020171171043102967242112529096591389817978699798817782088623360925444734827726839613494459271957918972341648323248216782917774568750048783246425267960252206405406727413849650747961381055516526448785678183799788942108262033985665199723190032050905385969191443311716655785045895045613042867192986362699218399576869118481903630604128633600210634893132668703996690047352661233039764423927868005571644311028949226839044699022708804299703383395556578475120030272296421943510456566236023571613324940622941741324865374883598955581621671293301547231790155461221943354913871065057958577450779725729134035033155154967584264391366269950708995187660440901335107510407154688697543790052118211129462185741112234640676971331435831489780794198157226642056319587156468528767701639590792932976167341990568517824990462295719356228070369770013384900283217927621160808719901247618249802693496466505770312218807653774304519853051593565689887104814517910420834680679367675668115151615659539636669786582504617941063157075428344917845179899627107592446434835437123063191100513436684568667533556510950463815093187557734112283286104437731481122057077744842855266817053638030278273702251122475466188457442372016102286889573246180063028077216428689890118720246084162284498876629209821711057582245168192182317993283370226058997306512129593734717547350990948875133982368777656053279423554891320905983454789884826510848958267253829276693440865987718907900650595377905846764117306738567732405837032452786025751799161431262181727118961293158579533131651534543738699756512341110857083691122837910053797251932806922684953370452910768629897401243028369976236682419763240240923728295394778835845137928650895369748136788960190395227319976962310067999472354243194862522198138374449902513068132116882796006131518229391071775018992055964122492880112041777032129424069681234104726834411906907817265873410506764960295582761260127452569188672129706783186810645921710097122158997184903952148530682840255909284957956167392012431265557224082084936269115798090190105201937932235162677506478459539364275379048491174728262826008709383336260182733841862475692612892476413933242675285139765711361234397729547499927839436894706908990965911677088187226584368944093985701781941545654126784706647735741425473624391297325746108919520859073959216239174154163409153440946422315283120677827593309103800101392862142967192758608706468987784120597966264567469454191021089822416336802754125337640211846833428850533088618256711079021160329863737744269428880258667186075278801136864248998810848906462388947106779476282917616822033874694583439607124015517244323878020126779831423325008803358359506011578229336159411522497117546398011368880427485237845198304511694732440921576448965386341533185876164552824688799824921927407311530912049551208230611368581042559093817746280982137764042991224128031225956259228668873232939885595355075334226615629677316343559999670976540704216787747989908536925746599752541769634030490813292153405830114986102328686431660029323207171355876130827364540873453526123049148785498502515775686502331522339966170128037208772281818378053872751591260397226457661184323046340819342376810535514747722087557936496118322666236534796638435980800972884424643366998260580983921158711327937020829477200351565514913326288418693778247483390175216789554471915176163652086701840666828702310270643862567053646974676378119240402547011821211981210715655073510202238539976526826741038727461079665684983816199785513943565287564109553339592320031781106665964958863141134057003447096339719969804730632790988025531118871118441205682699325408216575319583369418418001644789231197762419335977129715223486679795143018845613104583433244484018224214529900746194140232378020759264715042646771554294558944125261048811564543946221079733645466633962163726070943720659214128864165444688961213974599460015001651638105534066142872251042765915446596462782099226239081824341364898402057619713011524131608270358264667022398589272810579100857259001445355137897908848238913533837342261128719989458512738441740099141241660234531397966398201109129802789420265274015186740857541554346063356730475826181081107279966778441819422406415185880180370579851841846578980668763120934887527740593595800688007758694207400150795833311744036242393788736253404840500830631259666989499517724962526289509192894634250531301767852785964524537815868802620106953451883926539866357322928963864335174165706445704263872964987112344457569260658550756922973648455184940108248142945771416665448872623906480998855600268867744983037392947113767694011305969311875058369977165130370813221063949553441779441651771540958450335911663610884999671546815543634378247880175789445731687874085109690827497535331655634345642276245366448267471156147639471006376732284963717194144491280926878209481249532556016417568605391916398831026450320569621644020160903633233870810345009000695087319974879668195446361015033356667442285990093105026391457390312244500356439888984823197520115484850579015322982475319568825117948014154608136823252463123113572336629670516724548255289799847624774754154326069492880011525522986355475925467906365537181735788522526315304806296897363522150508762268690317002106128322905442795931669116078207311995990269260281444228036870922554322196986378745813633455649420456881147715996029842617215216509996257960382845301376003488848337424926126402664549980417627146900435661684476616982318923291340241213529106811080761923179906815235064798532866224949161040390728059874805937409266137386499592615663625242442654772652505628480195196556982069660501376806991143270820843134434383806815609080180572520080283006104573710176153783640199188601697075485922229717840476992513467127335508433390861964250118154805371211950032298241292106299794802271811173087266831218025863445827521001532151528779392900977549633853826498513927615777364181832117489326970950151354785201569390840715499578191500831904263117357619329221643456428794613331909986056099941427947370522934771886655526264061337225467784080698366835992712025193468589414913495912112593801721780483271231239135453154600901943348977646344181377231767268739748014032442653237726302140475297963916485142175810681686658151498383806008280485063268014337326661457549697858841422806724281796046261353780177404002318954115334766870132749767173260216731361735004042857776660230355170350050927031350623499490771860469198323944244582825097966733536531074917913254463527831039830214935638016565607345273492524546940315715566855753368891307085837112078622237787157153139241571142521134776572424145108935764471194297990472640907240334117144275928510028129139135000301042683307760620271470129289571216650789072948456099839515167811896898059335558800222323800450408100177146727415244426678854099220601574797916224941451249709832146113134447202719143838933778656313032823952717626459392391656886495732219232456868397979568393485097845553481305812476111777208331925811342664458318448606464315409140848415330568501504582048077767441721009994131755253873804370442304857400252903708057850947681330100176899770481619150519535763632534349561949325584202779709348320433243937589922272815423303823992787611398190017988957712259609421835930030118412237378642826351188554008312941631019879479489370849331519997033225063108057625391495590303595497654810433700068767071492649477252595825730577338237966548491914649819594878736457603896653141941543124181999265538272313549974143811352926876361227963325886930293570104707590907057466361845290967141785608993664794208161449918316753238704561360940731235419162024416980668475757853348147760935876203698241221924604590622396957403895587004452662433856158355478458927699481598691657434207701417899641780854940883191008115597596052108887975242126773202537807578897185469928261773585724970976904182430681855138162859705685515479439772344852341940418060756848475673768200407636659359990533150498928078446934898406067793009914255200072109015295594104031115168080201552800598573657566905790198314673646454368088142738630199728477277304771622335930065312575910017694898762976451057348851448720769474595063451997290746996284096000529361665552038185723034523902050003636516492920057472338262200596424261092758970976041013017180051413113401792712281813215307499943206348270668019204817930679786525445795124147610750791124127721821636588350871623666102604607695877682674300910476937748584299091258848428524016707558500984586045380563310054913851109922813385824761991405236016471861795772656789203404754432005552933746656836932931321152719938242372185335415023233822950604041800922310205719840881803725988349725060537781863897506370523193624647368448697186815872553004117628043565559896965711892008104380014152634739457144283036183522694971413311932128752604153576416330732561214673554005945329903710399579368269156457759004021356868227698749994410023742453453712530428836874569877360302663468825213653037322684261022858200509619291228558286153583277249577838559055035575643169704451618432942032365128161487986662822190349252705987988006460369951415010730118113788398443569197729517875824280930455975470143190442553142914344932810902433107136111144650989447704013265212734231624143489335509667795446515414723762120990894884458797479758334456756792259041624215137125442992985034317264844129276912127724337466114993236252295989554536063700505097743791176698507875440462945681673602582907513425670081597209949827804093067589195092890420353885470232040516956684637001556079206492619161882164778455209054066109993016375830859567924776654526231909016228933777417065090799179823683986459650159234538889554422242946330103532199108947678687719914573165132073153900449573356343748939855320798552317682557603946962905968464758159455654093831102605577218546400660463430743023838526392064141188512154912786632381572994416694553686139208200211406120256566075285153542249359747495192339855942986937649601169065113168043630159581439369671448381016854713553970765815322556904024371022219245276176378524130976909522771663601443557641235835086437950872776728939414644263422899719089624396201614173419370205391700936957106101257640228276490935789439880427367659019761545580484349393059277238457857438861978790982575920001076918923367151988198389164183554491889262710435103901861867735977197645512142509419780546084513442751699350155373420549063750450130409385058253665337589361848443221542744374913198925768244268935515951991686235539284361727512413109725189684858723129916692514701756623090238089498329357965744606909488621246278213980134858614216161754026172582061457988956402765399012443161794325775946982050172165622356866683292225185360798208794539856840747319338420264630882263617578214220130980950785904292665336068976141010938741556261056265293341806083684611352107846364036697730965003242701163469938986771094416903899066431564693299822025586850341823315562956057571781532221279888307614553241663928333532337712050174777461108783891920547782035778958142958146478747610670948515703727794499796137823511327383728004363076335079487502488157585851118746109410999701275399134529040523477270450124152846471360870046130687424248686545647488864258722932205515815080339631217512636029023573585786735179279030377503746688263768116819180565593732104819947215122613687446597427194237617676099013453717461912095101549183428073063348595225389845948892979261556067852490294547801119125338741044552420762006208701491835913457133260519035238131201672586738509590712010918075201335731656114669490967715330572453926658583247894976093526543292591186167332413152421999659199302396105991337682602876651266091015026393305363755516609354387074208364472138442911459112770837780374713086054042010356462621077499195638957507407208403342324155053021483617366221158401934082508781826817536533550639620694953228904227745294757686526812163469682812621454708463353994147544146345325805478781137699688681077875385381294276261340718581745689028027516257651819462471413976824025096440272489705922913408410920053503978545557881082483216871832019508747803440097439303278075696419611974338738123606650616300600602741997816047320378012827487183346373381435510773984926524434089436774490983573522142175658119763672326439837664692464520555063049987348256649088510024205068862317963291710951203729302258766186958499738550636218535905412712686727420525305789793928977680036097309523973108897267162912650800994020055950975239401696789723024467254433370270402999668885052809685238130401009963530452003037173541721170676702650901288644789816140699609107574484238748460195017237203140799460156798236329037618415570837112693561380168527245908193097888593080898781693776745811116403467404257506376928630051358615328689581682691191611677097591916489388252746403930518109918967543854004804363321240768942576039805672711758933492343833411125964713247126742857849532432893443407129305838347081924632028120052962135920345044004097380045062341458625527311993819063940342457506580251732416784268712471030892747574520650235712473143665869099789531767129007667479873467860402555464469468087688028443594231883590516589596904572452196760494322726523184785396709201596641531049509656986772464166378205443082854789904350145782518435899445717721053381810160357900405398902045292971620292650099340200300365776464022528475122883643038546117187465433051891146690246783263520529062833339442375169191990068803241951864060031172738762743860945516842986099032977240573751467343261579642911922690759088398952454306537688794528952046704217165664973823934096834161361537403571089949132468948340128594731591923922604676710685970797389920533453063985016082091938949184659384450017196045094964222222284453983888053356143359399983093616016813130574306213003647557841943114743018071613383215226084972987690808932670750244300449179968139095988133739478280936325310361005471883478013954926696400050510493855269401301922683964718820926554292650225690446810588665853944079353641402519153842416726939257393869198812796237133217998012203663823092991127574951049834598755551753064437456208000460586893245880005322785634480383429554364805458102052577654656130980923411577574261541962627659814855043914127427704504582807428196405776242877978776527567686244067447826480475578695603801762635356826081268698906630427629060036745081733928122774900543260497676801128206745378780555776009920292311400578428051498769061876662905375577622147636491063305226658608191672991428297019553510761059457385823864378559826598772808030546216960450309093776210136140512416659947105771764363662690803740258268149556091561485531377989012721195220819824608438005770906353617952534645945269101158009148901120177346417116557191601601672651555009885092103594283263136436642761431235335502582797842784022203609729765711968723547594978699468068349614986245127361219401153197297134867579094554079136133812801225376166329161797236059651980092687862930437445901641369505138377250851409284607606465740731948434175736043256323796575936142979539953424578451103273128358227446896754006457396706673691387146816303996719946641991895268259173180648750414452325317122483241215028930759312403701864254105025293813775995054262590209697625214474010255789798833806959646447591704709860975319670317793022469704550950010734506779640176375922750631603931062108016049096004946587181294010830484673102785281911837064603339098793114935395863755967097959289835894817031203613889341895769425893205717953364004826522427478677733465004243387318646879329562621261523267203755513624426573107538944638430532317512093644760872541695518081161502117572864151478550412064366515326806745147259051052445180808452338391641395575745085377026890884680117641565544459415089136054973261381825222659535742555788420892637766833176236990599438543630723969239585539439253531805017574213731236335565695516902108105577331363896670810038058933224934852216333732605013196719332645890114167446413335924338420475657634156601318398931016164653052069934673648323151498142198316406735322159201514712317562019015034532540301895056421237083030914702062806189708815604309381375198234316236028643695461069746452934086470269921085913009298686049042491279936039622031280698819060971804331284795096962173675396671876773686989514050341541124354955263661088810202762336905821727611648819082046045157026981209309742385156983314682790430222169028163097353119399888379067576917306959809836132153763918957920693678589997214158410841571210963899024590981746123960336284983962599453117003263198585573403415330807936906260995025686986021056081091969531154866883613165546266357549776010868511026799733439568454167955298845461310672532186027592761974057669351913560782306816766388013020512620570728198932772086516146662879043195963674558539099104666610168770488338962038499271361251982248486723529886537956074668906517578470732294781114773514038272455548988246415107088472218929168593949975684690711956773367871298768722416433822206514300478101665145727782395993939124636144564163881892807576860544131677353293465494728321474779726459313101591297393264174750218939915913911756799522574975168547166875141187824599823108520635628826220238628675010620705380289816037771946867698755884730122374618989364949575987716103286086857804689698786895726912572861583298415274536837472463190204722834524740640311489158163842494944671944014321808317547998146021764854126534566692464110993800439528735466526505692491296627836601487804948910667480090622946266465853969374529789897387298393613986690973641547137932202253943649038282765413401084558490810009676595619232158943522866234933789784329172497155925028512927988721532386162826750099322390278583934619612815186772470325850582596944304237257673872858037491586587375377037323623206012594685549432413248023257439393755549946919926786413048380626021027687070460625050276714149197363687448461541363870611004140749068156829022871901654028486603749187633555367485545565847506796493580026462237628390046237463859227012188607679436266908608987879493443154254265583965351118363898765838621567548925418479755436860204055162452634974447925391970183341324189820156370313751705554866426709825145082434457454948861499026742474557463317831341033111643628663741573562458255225799953887388931170649821354540575939048325739436964728027103439917891680298167533150488248833564264470513758154357657881513900503898517666453022600478410492205701615050584383609415617788411253862486986015510793584621832773236005043050143693823957513038021672822362894358738424957950231213488515874821537826671415261876112149782261400204275235183449980862227191468080223615684238219000700992519208929887585289970584394076830303174732913493843875539970294189104427151733724884964024113946254346283794188989966875734034042047673530818209366730868516160754533692854390671648732427314119711113315276808376643492874047502086797717925852684682449069487827413557718298910587350503951408300000971758734278187589524109801482436264859971372180624957350111541512316065293267769763912401781650742838491222652123468203134631658090647712861750613445572648574508055675521654894022946785630194627189869963168237116728932459356514667136095845020661208366393063270199315794826493452611014390699994017044747357985400210636415500392515604763524375803849938449461616838966441556890371945110245451490695823021159743229318391416252847649837502773036378536603305012824675306961946676996114003026889019687301587422651776999162756219722149853878300686686336025844271560021760710504722340812766358154823720165986603736636303523707343720157115632348673066009158607811718760660880070716461125935574629362346842681213278914742597989035198951140540075941635982675137189781601353342361168124086117555525135947243964597616182834934750802317939840119589845632281834975212703177255766314237413245104520429926239908512946452181296607525932124511885891190247992047360047677845626417631737772569191139488880590898187526323045023931441470205551772581299670560990023683143526155841691736154871951836148761317112830315101433120441215770409985505370005906410058499840967922821852379773281864634306196563222143239832604670986061485900323857289701998072001977520843454565370059029176355764116418549808868230772121215872268286183700484935844670724537067642859062070168533437502195855959495042966737744817145955393187687884361099313981881063368655127568660181321190832268034106610445789922795881769725454048389624676269315577192382520977125885270902579169642085857182265230650695199181061144366249938100830818477519422826897514664192476625704744607611621709766464818732289212412252499874247299950254710847059604106986427027328498031766694115247894866794611060032619644178197037930461690621192677289667775767001760832495854312965930110394473769752376539334449407580446913408502101788820757744621943664488100596668503107209780979306968013969909046082617227428834701042993964915696875579458988800379658738383740032642799823530678341751818301606083081271958485923349084852850477145294615402713935267377123912869043401861327593459486298428762163943560517412505149023315750082958254851030262937737306669281213173594429432613646960720184660392011759263692604866715482905077622234589189396014711054415457773619522327988099365597206735025167991364197942811594431959180825206822214751115389825108065918751250665704290472621108371672102426192575698719425648930513606462065775373354391562931359514603006052031055085619979566550818671681490470501856874995385932292479033995406243963475932011271657701905580708906427671292354677079976984622045898485279572394391948148112260562824519656706675001519041226009398138759988341453300964531169207147512644569708570971283001674012194034572633238264543286375239590166719359154694265714194108455587698695867048321020097619476192996845604098509844031270671068397476605096390641879590585268866792182784424206749563586951267183041718616169943780811789963277182781948637533514715270645025958576584376480031179931203742537912594915064564243393186053660502418431799740867687844674939455014391322587668044155301046801890995655484055543332418450323064156788149419537053124796455621540351813213753962062982013627884274718718119113257498507141576032900413556285695787133050079354812018118916270690773806881753057918006140126303367247079207171822280037940998408333423064219150713925470073550357293918341028856113800786769099556463933152983855566202176467844837059579271465521871799067232424898699064113356043795835853809009294746625007151847355197458781224895019791988451522197093305403001529663267394840717699920865507113053701262419439830449449904894418297436680455225432524785939318622115920563186716030932157360863458466657188518574282759923754562798971684863184858469636979130668765400868740115438949849139488637785896054908721896027347738081231924354584570072656411356832054471291699985240407152165460573701552531160068870096513159723068370540576602908135495140214029205550964155552776951997379808718615776083004920650604699877068452479568466888277772895162498966933882798905818161608772021387825763400525272666660209551319574571332392285683831256115045560579352605463780809875518098875898857944726653614123023787869481217080060925675385729058691624259916533010956780741652327118788301556745802914263422353980836155493318599557816609425852139775032405358980024881526181397608731672655208494343979043927730853892540765023267507058242812039837697605408213796971136909056446302022672896824135342631824488293729558856400490828826763221027001704294898434640069066970151020410781068440280738617559729990809848241877310304811291217590669486156636124171855270821994682928814531949960667290948534945942638532162361695944478793115348871080599745382500121838430795097540995606192701946314376231607128841377402332832691765922745958129480448966554106210559469568142437476377493802644373792302553548433453537305876875220128711578201077451634967853720027732570000127897803304799124655434673602352457239752735272003511792864040404766347913790889648886593552014437609396045798101144920169452125766089792772961513225226343694139559640107741358778872401676177933437271827688262738320482674112635559631508680838867529294064713706077625576938170827861421206586997626868821754296208544846644035877444018286775066616732542091361284044357193882704617934370838501756601549801067416790681488305637554346986494578299679441748129669222446167984954342407853933085460372950394691932644004098237677719004242338949301902230616842588245268372723097626860226659060474865093555017616931339872261341788211477816992822653945912870236079773412998963645434313820884818778459069962576636348454889288141914228526868640258401934092598653799895001291726486313413607048517779278550223370100298893027598423669258465181000831968716747687429115659377522612196110719598918781250699950240920033552611537999174762012171457933766383595262077663909673167259786747614706680377150843145554841022741069580640377625597119417956369494354234275678948209450663878230916300993534314655450460850779251076624106506325669756089050338347770305654076375290010950070668935741302089754162264844620161072349335562315016406808495713328723491699673194512160401687257727359438924389303571258311171836187719387806039206019561995517668952947108349596485171412767878427149815230086660247073164778755450568224879725231272101034680244107871497203376458775746304401963050625595067110055325706978436606935300903119708299671414502373079071980282577752412741516267597512755525297733717415323591547772530380551146959757950255857596974278889519062274510846182862095097529518189316293811101808887067003307213030860846671301841499154277726046918670205876133102610201022167609082741920314895017795738881106717909798644496166189075408596484085806492078609800263383456789298583533287861510474097327609680465080512827638691636683947414050835158508838332784200876647923604081906350419569852270971709714443599521304768156675167593588182182785854411660405219556587629861955066913303161463420598309026149067124604214126716324352721738099218085630962347293220395819167082776844620616379191487439758278498552618474752249843148564419335870567492117932550456905325320031429684902701808991504794466202109457881708591702203057921350897827243409314327003329118299472657853532440242377622136602169560122714192238346260563157483397334574410662210014381048553397388145728597901496115248685944890325216435394086655376404450494406895906809272594407073310029344341599641549350313418104210190847215394587111738139795027733690216691160064835952746775727000281109528744017089728291894621655310238394736601096499552044177295025911679345181793491286921408337993065871462685239568405476903129619453064924295712364885866573390828327311757256576685226546249600550140359912117591662527810256946742274805292805344279878396476594904245816371511079500413714405476972622730521442266128551036890760384457740763072957537733327514992470016058135363386166129931924198718905475882971233497724586457059088220906878555448563273574595167862597082871345215324743536413159011154709364778478790826842303394538367429451997709746969078933882775797564825728029939739332748733649067560367138807684237427300760238843415622839769857721246457123206694432530345820603843069621587534554121842909285594916476727739092963274881784813768268788499391873953086166979098258916655555975546289808220480456569907218886815739993732943930803637329137239540601937721031904281094666224380160053480640551355395176886628038615829204119435193501413110975253586797017839495314127081085919608675202822981692262617835893780777933154179175005598063850302480360240531611789319096883105790062281713582994542014107569150312381736303342070276983039824631520559084655754368573273730309671203237517884376291595452290736404452764116430476208747681304706534473372468125479260068964998085564973548413425910244356418090598471564690623850778484763264478431085394746048253877523766043088753268228391491648462885299229755665174302173588883667408504187928174956907668230547906993985737857261150234847762898071393032720325188508091559656904784191348048058114722076854818218998229211099262867781594647623435779119943145190905534328487491776062404896898521052842739726448901344287903855818957950626888593377176289315295248044791829595294101652221980198220929492625804396421959596156115181227798209894625203991901774343308836196871909170833157665401753908975926657828269053613934655317460444573721634628755030624766701126584914837402318180580900759390874940892003165472399726203547869719793913455187129406487732707806295903273360766405610606938041015750313041811249764775597532317452788512064718009207286236663553527595809638116472833574310561501864560811478759148078388962763086897266181371342905055882658322822096348906596136157467151330601677401314738308943125181717954113641162016387498215520649546408858695408511651988521503577292586402697806312166563318890954744618978361150341327407606949092688766626005220523605689732243028816437480979632893114058142320234592066926907481678443892805389001100154146815809147726741506009937791921910942902166690361933211804609202518397850292338126102567834422522706701190259608612682374539331363381734956700001092133444648437891403948346626290147618307043148103382169602240504009784908333350134683597306302977916219269026011621206660112460589257648475393424146992865170612086347191257533916998026355863917528145114914464123049192319408931137453314420376466878052815139418767727250081802551975053534014275698678213825729880744711518682218263780298556220423787463751121565687310905225642244442698945912984349572642597623750457234196516674303010382411243944371665245602563811588622605782748989929105197116690045969796430782722922473625739678426724197958192896239905282610055696101797517075570019739717583735895138381476483069032644446569592309248085010437530922158855437695534138537909797069390899824604159038891917279486705977203055849573078315684687535602870923353908448716815167289072085985135118160934611736424263907836590884338046482379295737284688231795739589648434105562199761839831876035951362985704548824528371996881636027423001057082546848935221414843623962370946747786978798065812689191535627494599613141838763984922404513837608536553455832714345126344879766166248831123386613584775428505668332329499151227673170695292430002264256180216986138382681383149441043577994003032597034256422763796424973500685179592462346194253413340972504384508453031174646913279589774996553357182882963301839066819508663083512242964451308394570013322981126470003065026477647059767097537553343473099899160641537723166042521965543082959753013329966572430839351297972944679505586013035422055576266816313063384401644934171354328798286295648081189860975286504892181455186069760451475587195520732049013125449502553855751508603411715898883704113197570416492686805175015038315143329528329955341500790376069184051149266267158737358528779227133373296370838915285977084679850148237094081772460075791276646962379234547871416430185622502862442503930012889839320687556383617917774596534356039454069776808302733298760605828944559661391453485540975460049915527339314651237678900442129502178143477998908873265686481067852640059891881030033799133254251256410065974741408735447356959723885804427543031582878559785189546749611347098664761939719302494924385145625184777658706583136109834035269256115047608577964066386823191862738164100499874723968541892402718398303760446035689853872633380246681860209794417175206862959354354235281223416086530701877710215588688890156267590943639775865493903567153843423565044548033672644310423519005105409099771403213571469836323232255475766858303200889276442251230811303252261770582154314338770634535089642971770084234457518288107524825543440349070955960341140277993932875255484185002226571599304620133218468531286199545009732664351511951116889078322536506571361792506884893561802348102258772281154745305815267688205180533914915271003798251136312318351280412798282237240451855568494540154257438490719075598239699359238494016853024605656112069188326979815889020334530481375705956276899183474079320386388356543727325193523834539331354099140181737843127465960568580287991040620443223317528511984451925672348209818621124177016697082715011049401277411857475441235774731644107280882125948170616004773354125515838452604136514446698930164506534057519982724991455643505568620224529669555303758011041136704546106533082397505531911082821132575624897745788293191878509106868385129430904868771791439194136858510705477124609247170745011611577347825713235804411584666317127251073756683039698792972487030948033332253873258671089655703262545517277216268830951614403249601780528351318976280135849488732033327702943476674265261744656414172540420520102877627967257168418677554243760166185434173247065331528560860460070652471690646040759754751572999879324314145847249636381842329185259023977991963143141664105891194663950370535105219960795333612555191557921854425329797667401178169026395115822038021835198524989065932875834411072566163551370597243112300206909629822354238005455023205397987442329093874954109200084872096755872756307765382836589042126243873980716901269035320492227059514716869348888039281366471063513147109252428549714512410330134801757916595204520527545908498628823611063011174836995164254381644741627348342421701714615780151523105124931937681564271526815080879718897735066218432169902975974068289071868829604318143234201097628058874206683573808248625432429737045812900650167600977012176694002860096685146523859362635241188018914639027626809312642197525961564848284541475881366338246191686646340261435199502068982600167757525530008046168035281782649034724261547873495463376704971127532186928900614926543478033154876052659441538179631840029930206883832027457189272979134200609176144294620439336346433429180463733490995613346189083388243769524428872691895336245857057579982970364870705059343272393726573378406596293327026352397639953896925753850261165855402020164406277781936827871787398729086434252753533650244774022480216914158953674620811893965794123925191461893589681296113278857570380299101531899006461345782495067517650368995359994669066705842584325985536007052023625084028417493082145349946829115533148462584786013056822785150147408582082000218613454021022341578712911639542421354184906904428492210206080513894850355179960437395414247938164092413951823810147419363721338901683067023487274208482897347686923703304832932760784607278467197008151777741463242161569960742850422026005859376037569621567977178415948468876660721523382773685478080102920917250403136178370682102547580248385708824033962178444898565793557055120997313309342195179176815072452927768596321746100155751356746886088094011278846148846484925434552860055057161354990145143009415767276807825302230258192204564684558945780335610812491543368131965339924705425219819265446143209295382171457191935873253579667929432508462124123602872153538311764702441598896729378066118526608178319104247991805041611847630852309866407508573765059172524499852856336076568688736106168205057148034854610757092557256247225466296785841190693640802019713130616333590662398505359898664331952066279497894466353654771840241266885632499848246394808407293534457178458031996235192827359214382242484601202060110185928442626366607439587051165547485335360920930621922851623047344367632769831616399615540061552043444003106223991404288681345804331095961029986504336999126987981934333748972415766438230769394196896656448888217180360079029053448892248825632522117721605371770557164915910848632011794209507460163736280379156524200512011506350648163293373154955453371282705656847315568459343402870716460972940718166538431033768676043949683706283465826158557561860913465139164986691364351802596281657518497610096700681388694533981492943135089528014063889256386237665602469078968847242479114715151817389621606223887861945320455827093377271830442373271776822328138837646334080949180090788332634883239221646017584082647751670687286416355470404481744020251088005155217311459936139445537671382303024188494282156362351684746854036279072808496282416576662583933619874931490654180103564095843958586262739761524368783952746337305681138233360905640829885533075481866156646748989677765987103769178980930411832731453117541309280218045391718254941321384892588854129415351688518356819945869083991641929146281498175596300940009971905829991673366711238854556683165305606977567461848699068535053361219550399649960368978809806775473700103408167129986854182074071771961338722847946825582642306965004903029787964307457423171948273279343139784227271307351609123910337476909691061049291331405107448896755345929012546355010771960652637528482849268726028079639658286898575551068916834584326061545291712013606405992685662077396068708142908853221945099943081998303768443195606190856497682658080136919422556379803639739512923074132674268240140921661363206301865379424023875458729374415184123705318312816298132340893001364929820667452271309439868944514286215060285799062218583268217727994552248318182714642279898662648419046923774752053725344456935230024064206301582057345513496527063385415850066854056312750928838670176189102744816695654638114121162364449772644697846877303846373803646234847882940950035495652379138138742154651045804435345558357695860206945233749858090338843535952549160213564343713850573758172622127891723917560287660154544845606912601472656068681817671629730855540942298243741232340400964976162496807426541828916064462163067980319283979703811505554041430102720461184631322515302255040621863676606604761571053895832234263914851880123074445833105976336964814023394330928712865953956148281082676022839543536905842463775718381578630608492995407233570346989510517949279282491430771427955503574281239213200202580604445587155050316987881993774714363809822260930962899030372762281603495156312617531556528789546716340291736536586491403106686978130084573528092842559768714469956209426261508182699324529061989436922804154252724437145725808694321423264768510058511130132501611549031913070954566996172254852089674579076932728753671924332663836382659968623172614947546943394759052007433136502951460744768241084565656705874243137233997191485121894175225077220550142639553484120548428636234907738167655035993891001396544068806414135011567980376693184830058712631999413824341516874500448149893965117618683255191770514420445012016275495119457990527266492358465447934319778395962060251725433274251804085422353510067851728150479458712958199590608568796524981552357150835476246525129201079908893828208972240258156758298003079578465580243595920550904963779405311369232949289081874076340812225410529711665920337032150227069688082415465239439883927022900639507166851126859744604237465780226036961692108072004475313343844702072545279150306793927471387190039555333893954544057501069661030466046873486037776369560454653993756692203194710785781841039590780936440223742207099709464239292218365863942060595718208836847616462103296385044587778126309118935572180590445163333939061720719513693154109436237708768983723263274418370349255868335777044772398441249669707294103812471541264740301789493943427181807083812670968686962093858190927517330310033754769439346468421012708169242659080776440115349089982177026402300152447730834160313805482262826493955029166389362261998658624581363886178633519120195178699132949859494358785225046232124751196404634762379970244712990784476914791973422801269694193817003283165909146496168263000181573308978226511019512784611218616822349624868794087825400237489852488583400390789055618513003918703739562308459868391366702703705207413553824257924779835582793032546136272307484656251400344097966393656437611222013626337548747345417840583684532061623986793006301731595641535000726607051763965302992403843610920158476603501460541266292990817971833300565920832192788892292394684497692455157338308537414284660394751539302707051698600890609555102519578684108366477153528111473196540210381447706453429009071237629825262292012624611562101950011371857564838710841690756684694126852056117446994962635065579508144096535731525165697415603802236522857408565265678852828541773560885181811885465074258352209996094862879958155917354820012234545130386925902457261391992405213953822924274087910560675169051393269603994837815564865465680784065511222719185637332185373970504913751851443574811449891189735584062557473389021429419850559479739046275375274184116330100943305209100909845399932164081834936379457043928594626172279014745740806280578097080144196823831383047092584140954872451950814444159623172286335716162069291838121386592456768612962587658769573407835280714606145189857932019719383282984769205567437573372637962880093355474724755962033536520957058542522155731424683882196795434000576955689807726391615119986356942525908693330849572413887261147435092413432379984747312686975900393653859506688178264597778236575248960729526050683599206819538812113304857828936602682426504931081794179668343359713159618215265959876492897603163127933134491981398952309995801221686373309429749253547374189580107065124732206352687645514073087412050877349660250963711636929761796375056332557764211816054352915486783889303513669215686268204881224685676281976007880257792766494735479039272066489969665261694321998824149996091853326583534098786414924275618563772041507093554945093152902322399491515541450702533291951585015399999399458813752335205736925896768199410803546878882126887476527756861528787212005952954012149529528003803018117469036810978215086884116792074784618107768106150604176722203819642621333319924999852248677145457184745112671633660230805813944687450837477741606838079984095828126441569055252737028552575331860903180899812908386998133898855016704290743236535146526301546193942994912647340558093726552020212668190357765850826312073368228111824343615105308820599988434937177975013118407111700110112143307837083226082315952442470490078803800658717047777197087303777701641523314172448136638964543041736866488334570558507163275601784346577500674813020304881558819123705738166408356736592088331900735710302702962021087662089751886247393513012505352761959411084737203857815950102295638462280151527287466978723807780810871139965560119956426481662160052090890584707496577424520565248194892110202824064822943866865448142074067939020433474223211296703762975991027100926159718430441521405493028537311937495473867304762546616207213603143135576049370814285878226070577795680997246668231301295181961697252390346393981863125963172762929775724775368234503471681482278596846997067863543828483806798228965974073800719306645331558694375246760911912889317233645244030580528831432858831757295144717272041247462566242579243790860593773358132985369683952739572014464207946978885193084660495199474453638787370044000537528233431462151992997998804911263416079941172448503528189562380472349320487455004451852892915763766610149062845262809531203512052368314354967134748379918050262173797454931129564941385346112328511679103581091278341297900005652957784000490068799906779798692091377229765981455627111389887457448218081301093667297348930863952022641753832489635389017575521881443507259497771259414542511144947554513653380755419891886640451675550438948159546613587224886765044859360746857536627894897326266287388797131022016853804789275205995425906338972407282265596383758631296320936935539035973437152712745525231965029669993221162646359226757809210073469568917289305072448247703223223856981357490972100536467018480339053408605846478411883092094123977716044636229081713364639180146000202175615645096405657747653166190792937730048842449982483704905316828928814306689743357664168288378559942474944702382949402318225060208614779936077236542526916653925470945912322768882270337295121342070799448597545573975347204864310501494119966438253766052007953330710773143073329519602837022246395108676336217286375694988112125135115193974550951037303702084597379916157019870240739322129470016023149218759977600740282630948551942443067025768817698902477935279040255236244157076267998503707094040107040451338276978024938049015887254333247218230297756038082837240014852378683953035063023254423837373789753292510715108616267033312245706792562901915107175125463619170299100672808790115596471976391947269875886304338667798670057705653346243327173823751857621361952518484075006769311071866521470589349710734920517897625682690327122195206580359302501839322436560489693363224416762635981456848120409508507245360075079048423993746189528984841113688103417778102691024093363095522543990573850945908407421644532147112967975343839614559164069118460383099236272553748029392342593727927233338504529512841450097948858033048657479888580629996561817748365406829805185310267283852718867786665818412714712575432504418765845348756291773952119085624954501922397791956582338583335762140453225489526580033778726557639999184072056813406403612561027508937232104394549381041223726088686735075016186599252587833998916259696733168428915749602633134537123120077498055547760238363645227825345634217845575578343944329665309025384582653952871036000539711990207195150362826566086438412003519888421950921091032608680788008051077295672223423673264972740559192118704610300955797765051951595493492900690901390645479076228243188704542026079774611545750957702355014462992521045011869874400115737319596694075430630254089579277626602628268730223645502367431876099338668261047164901906978094083386401274928842492049397163594078868669318426569658736077280423898215856269568801999978488446919460606800562587772273148039370863943433918921729174872420661023005399378954685478811903060956197957458078248364384876143595157829600674943298225044046532712007016747415333711566235457894010629300269162669351782683331499347076783064158284518722311629439720489346074245880913451836099927572332390697940683859272697742247118097016920433641026092072292259600683357555798081895933162967744834284703163047003098387717437403885621109218448273037820530547505188208879512426530158573673195768574333487430602381902788288048194562126996140738330462964367847134884795597543565504017411116268278738116250178411927973249160375046437844308929370035824703830061198009952495002223629020714751386601173119063178423854083003973091012986671611914006339718488087802670049219459902473605148593939404249931804222750503875790594712452465750788815811027439740347507168266024075743167907977001296766764680511750907002144003093994201378466770861047627748580919021894285684100300485029579508079504513360517512996021648515566798257954262977782998497224891427049854049069282570904535518270330656232858057356679177481268779148189908300509990788412361041098340029072134159425379717123868987260059042668710113846092853682671477656111176546785571943104058523434003414229102133458255906924961938523710312953759400555270038338039270209016658759293759133093535480985248168285798298039687097892010973554445047463729539463702541815928723484438831746817544714670869042536769183724460523281204291324429436657770154095158055509854234285903863918466125745377393871598957814704036512130980167978181875897430390711820057247999503155389274763798668647188219744807042780581042178620212418747923707420489923499448916120993348236335556703272658352718617185082553216852211937360896612738853060288326567684344557100536026603725095278749181434961045995661964558021073613861511111952928674001911882636328902696199152611152683811109894981112472641888858032144977257557080253110903941910738749164366721476779633977890850228092397739939674673758409899949370214997413629603226449459096465711521814788187762744868125882324478652210762092088373161792120139257769733123267017859741393430258769705798993131770676785231257177716188575465232969052603359222929028791522548345455114110008277554475317821159445230099604758551441013598974422585361569843464507680222421399370146607022585588791268444820865267986897198346405809105790748123422311779798790897243101198746111624509623029022774258043125512197246591272758162762194069886142101334263663127842167045032380730314466548265996075483701074664587411371514473446429064532344661987503495309885720778291581573784819644985648826315667871473594838563920266569607993403182983405535632109382248036952723367865465860090759676095048888970466521395273583127022042924660253192909005044300188568962551224732850152322586689676478567346810289332357350916151202101901814094349175982108983620021418234852255348547075970877231278472045975187353214059510775140721798254967123937304815522796914232302799310347260247083436078820822207916753819374719976748007449497630913199351262623690552259295989130971379489288150078710413150577357736050530466586048591021624874891067583765571440827270223390150721209149171695611048887456523930115674444943500416946655270954346101083103028727289305538754416289613838880588370885034240336541546258463165307029744727658321520318202965731936885281759399260777232266080874357973883380203288022532638395076494660371687552234089735284649946570186537575598890327899989312909732138385371837824550340247488347115216223515707407116250204458912990006991312249970968570092053614422725619485403622693405119093471165240201070717204835143695678526074232907776997437908787123435874145409226351334828996321592092522734895990124838807276511433438842661319836606481211370862795059872429696790894071288162622672232961422397296791173902244009106044085241919327822222073968504191367313502131640253745207407919557184912814846774587683696687340255763117689308230044771389781922080106222646955448463514337852761651504503344577474370912279367101592458674682248627819749849086811754867361529825988965639885378429491125845384361040114686022845230247745793446043018139686481144504705596717841623866089036224442325840331507868165304054916266466267923621812117705187107508880944739366824854897320550360808878985365430564293534205396081009435144460284248017947937845107413145171609994273309345833325634317034683765973704237923057521101962562444746103648497148012005561938982496990077696478966594288821166255335409591644658105573910547405594502429674341010213094514024122461564186092226700749176445086804600420766351008643186554353930662156331270926350901059239867441454198583914865505413357219117514429731042138064661852127166159546762529725066915413988510892828803475755206573257574081705550457720799425050737050858008898947909812736973509558460247872872114345336613367983676873363954364787160095065166918081039376587631726315489018002894031903555580468979305437623918495555164732083876613562425401756443871423867045593420654710045556587896245314878206339071645372063139586556941048664796680241234946122537865425486726994881028464901914016220908881939403844305803272511703952291153328414098269330672554694434539708242213266272241587370209626872919160922798356007879902423120692735836556653000894103701273133622513180149256468852701238670518576646724550089225693314276024987377468371272531473409327967358281679553486674537991990207135874205024822077016174416766023515953570829781104421055938080235334701009628320918123342785300728747346676147951812934996949337526706074767769935814239254997123587796532061551921038454477334970694375622493590440309513844708169969468948151759482473963222509209512596952657152379033741438430379062105999780048802697493169725500548882676773322142093618460658561563389647544891138589576575199793163113271007629353449360170090265480765129895808368682289248266527232779597199236067402674735570972216193006594331761286237112773510439631343307222099788009703662841613985241216630826578286898396133627783613382131503282087386494743591542144041136136010473719295681210733399213766652057627471491549271865010857876212698989646560463982999218586114680053389117900124212667551987872282671767910112712396140894771715009607962513919722856805055916887244801273719710879097232197388953765149826605608494081100657877392313037468485977872258571118340144993237457616218280071481583592184385399131913416299374735638154644323088755290445206423420334600885181170725499558225333539791260268156927205940647254813249799560175306606230221337519103669002854287382667781700260584427551856412959961716090417128761058943237007113317105936998220005872572245023534334552114537225979729846702431025304747310217914424090563152375474084326095780615736913328270658505713987725077052079490090382250205980039996524841494010485765436284770367217114586578605067532431675221237474475623075425108527738034289142256548348583067773393723508819269439186255414504722871497904455998776838878398078462561231880466304084393430358713647893831357014259493931409772097882542162119412023633476374117987507243522494753797951919366718427320189679969185453349827499190395857835549238840109549491504907255747320575797669658408353300124057491648956188760735153699247343968588185588851950494834729899280291660597007242184185429168311536346269134647457902203575851810829253334672339152260944695024156777435136615012500525780433462504379530675672613970825780926435166240324163882659465345153607287970525629338626191179517653788621330053956268759686639646425318609955728599361919053797831536463166917479621686185174404273908157956655517914803368674944089739242222369221144961600471496585562466337183728364353871846037585295765173334156536403597166655140414316267435284487560998540541223753945140798910066686926930876191133877099153336495538695894788816517910599808274897361295388286281487635895197562298803333922034535371978420722273616563385108843351942446856956123646950229184486334408957865345244910934842568313951007598203319735855461566086337482541420315339954789168180867541888297543366514716781633332777293755953005651859751804116539604098177391531918506989786005697880952954356242108829432145571069538708377118962865769005011122952474371070317874978890108599781976875027198741333924660023145519423888871166522928438525995824667083157417624484880818749733354924131012895336626432901188842428501081429933690405774261906215856975391585276261399008243693198152734753316633503749284362024172363385317941662751325428326552068804316126844742063243435458409138957617045456255053297644575451119347135615837230406674508973899322416476488669726113669273509188962063942456214896380951691378274263244759916878995240987528706249726699929880247346224384393315337061864563232187259994411589252729740743896716570184574459733255130306916995797973098151034971009071494455615800395919604131156503101410024076599909942933142804621890955802963861264740209990463086797750730400538353675759471423998756669696441509654009961879944365329328585249197855918122660319090607559610074148152250501008549816870339915741327391499127215477735196593302620777075701950304523452130007222552653395413828111706709204650785429556028369454910354954945827693345703354153616906000912274801903739489673810068568281286081486091579061076450510650339546323001943697063556311925397604657623739067102789088518986487182558558214320457397076771491621821372436915824120002623943697084482221366993190354720492112010250501483297527842949338411860768100358214155024074948838862854146964022331390383886392855426281376794745828358884455799617445840288860099121004144590367211404147021598310573993836524717974981324973854730381394678703460160194077525027486270207838689843631534515670335814334909532753584126716548478389834692654764785431829448744404564831233080915068961829399074934063018672306600186777821068854345086820972639599730480485876140882558924058663417017133909838502438537633629550233446453836545300475266588414492087932916393206351547666571902822483749889867502084455146847268793140617078231039280710335541385583444069125311282752014400991815248396035590271857595344706062066170264065996331978816133565355997566277193554086674204188564558838815416156396373036371886639452724951871745145276758215831158785630565529273254076079250367960484116441219329354336634191038116318649800368641085938396365768203882345653411586400385743218291933104678881842455037650294161988425327148534671000149678291238994393174108607548369758861170417533788121523942495484975376881029801965355032666667797171083951057582325959268413889845854300476616712958173859784744431277198387388961069470794401837462738519117294145572885591190805059428495406917788563124648550157586389361665552650149813539136160417284359508597256919868144046057944832735967879417469272032973297972551131782323190862950147227932639890112516905214555215343779802005004786634499052590703242228373299960916709251290011664297478130534532472027823777242668051765475870139561404742560296801140468757734751485807884908244989101207006265683743230830163575792387268696977739436777633459173670691134197611061706253535748925827786677182246599097006700407025591166229592674903880898197434752426859153912074507077601940727379216923898283432509252580757338684849806553393408778445044590994545514200823289173192266701721599783080874558128978283136308236445305391890635529184426807598233373053906643019501943011550560776240388242120928658363860123672758087100780776027769264395708799617012830747262868694904610727440564738695931114500655248639247086445170778996221916961494813490438019451237911125471925117271299586273183727583028588637336966370790999930238518246786983594056225096732381505015359605506690723455374897906239421794359625139257907720257124306653225808158475616439185332820535337208392780588453895068226261795319534292416574032226006944896249931297611407367368612284433186794819833202374797462501345692496838445567137858915575222659618818406963675571257018465497996096496557251844185189787428794667587116025709101364525653335104369348152998203724385269814426655406904841726211696238168576013319255346049463458114622568218589137705685017794175889596232371882795243030233218447194351556725204159863422865592964744341062597768321858505213129237333593000922104986569348856295878862106174073540868636413406869534075646730486667783993260041828651132056791639247710778338032581110466879385464166477337542465399182285826619360119368676714266538645028422344556652584242273032769182896815129766137699349891768301946257934665568333218629641607867089334451262516570778420567444980847735644474832904618717154423990980858805192912657659743979373505244059265631672770931829890097209150985858850154430591361968802407761509116924241501206282069727737303334433752753116649332219614830370945022249866317601171093498511952420491498532283442310068860263618087612009076585588435553019204414626430137884696045940869392227645811258679880869926486469532756312516182545025004030199601368093786373770043208434193139185838181092454759655798203285783493317386564751869049460608930056273232422683291985318023570112148754420442458704267251530515524972420883396722631094307773680764934207031345463935584543728793650571900290103843059982218435177674733462557394951542817467323040108916085542820799815860998027754405725863593130541472678568695682958334096648913842510804182886890008609479840511533577644791776205154359971128258209084217376130943041366486300244767368783217300543068386680017330932348819520061951332330913286866599724308883312448504395509101731051205165932197846959771332772541219510561226856277999956032474744430953537163638343213182698227427707953036811668229456482237609439017110263264255084765641275595547295149295054324043391651332924986964465073870592928753541790376567306119047184222371195613896501393113035347895300653872395414636668049717002824177154610161181439695514751513919037709844472100367949219948558778325478902972408277713700063806693116250992452061597429699238631985048066215792579347503487217198345270472428803436181804121617399734121071388612717033301126756873879274422392124746154967430576278733588409552983098801796161892314843230514030947213729905708956570647649864940256406688344689525439527825616625699667231780745830849552002391823369577439499665455452660719018140351812066517947242019530925346215543698244205002443946489495991046562668635868256348991270511488054985020468748081662440599655366641642401259025936515891691479087550798116867858242285784067671622019871836502127977919311629906289125629547457694489064881541757071970249049977990356481010172133081481695134005766385401308176089804318713186862840777545872973190007898297257494817097651649488749317533874522926528706661695919488652564507059220036571992021196060004801006060982050899790150919390884174684364904862918362452333617701085867017117160243486255550283850607506286049298425985700450884556536679338562482955097168194392960035197105095201047628939827527893329905989955732361559027939882835313421568216716502464374273079936493503406706706109464913219801548456843493597545072035323122027342974564292363985988237865606573681605140472247569427372283296287608078131421762702514019062333251313571461714074557217604892161348042134759793916125007629295316648944113921471417418283202350643786776146236007452633002011839297455184779332971501522010386798630302242090202740509266078900641417852878049300688979845192453488777078204584429708017833544075159912785176403993453258065398087214375246091224487515964127779912033654854990485565441717785527175153374003806859833691742742863785513634641639591580909848524256368177030884361138208046473860195164658199995804707878678719389974746547968291622238750651747110620820692184871146431136921060645459945826791167543052808189474260910058983956253807473987017420326181494498698682756260789569712928417801716313880797736253570505019594786134966830122913869368875860995659659705189916610584644055994948469546755003071045623294373480848468194207111173450935572537379303907159907283755890194931766868597151404810070250160595237926617325408001146175444814258561831313335420174598612946178131497782233835022619557019563959380958940336608104272836968774826227438347358373936671520358947781974483218764867595859785086334402614513979122117158634317146843045931039954103385496865700230077401371220106751019844518753342914821344966709282113242984584001675828893846284974169901435583476527866484587782815185253559553954224232766069202101710642211500079646790835947754447369318840553762107991725371791143348502169164322142987233207817780810460330036306477860860819290944080216163199807516981979540070263365757464116499610479228926343205665570087330800676635327033412366208913319112450363935191667603913600003543959341626534297389554671483123664203629832265201240465170050312428462553824113104689905940159001465384717337803496209381887265558159965132229105478790128399910645480671567001936285657158933762303040209513762066069342774437662784170890013997488299363299720004642244935459452208116031725433361991975373672146769522425451467390211318849635446586566043979520891039282585425553151636525483140631041141692767775254879958862152281865031280962782230505742645242022984378733801359303266872025845937566933747385548405134126309624567119131562453354628265171240913082603296067072615097178394403820016721693301399000607815493950497565955567676854488003892900263184793308273443148714034677402396770152309152162730513115836484783351783683514110686151144976918749220209058151961048754555784398313100334814699670306401215062188121446291151509674758671471769873098216449055941889262182877659836900496702152274570307004837423950683366576309874497620530657932718815188288240014007411134271557213723951022247754320149691673145103676089502997500723606748599172628473262373475781791986744042789278561705125749899530536800332367038133550514433692902739823737721765456646194201768151530761580054366119871177091298322026971616927890192224130530635998381879226742546875825130473947387166132146728534988611263396689768076275555508900760557870478213330833902023865475719073889062970677203850414046290450215301917790383017518747497980531183697459634679136509346096971662762962215165192454425424220742298281319999914373638933127713405171372630608314744427772087783092806169152548618000703344609618314249369198673867701699499123566262382225829482345653844851589313793516182777457835578568232520364159730201821609181451371205731076416476059910026258722078743323132744703094178721339881018374886102832015023036459855851096485036578952805215304499455209830075330545400125732764242684309115356285982335352461160937325755120491151338734992505015230060170083530106052275954974010610879337175751785809846401102282067098854674450375922217252058022850727994734667877781168171671120477898150333979599531216291298003578145034298319314509393710610333679106476228621350688829031670025157130033999668866544047915623529021076980790105612597261198517305532390060771888190490968264549745970595075300112387908761840115552055640582143378325178403417661073821686633258126599869837199323800942386918040005951315460362811705773073928950828986476256617196039452188732236775007079387896350025782948707129641282016074749247219719675220142716563943529139184046712445268334520677199490594466110894620734561292547993928578979911510076924596535056325898033932548336125206584036708444923002376176561813126777100868859079541540029267812915986684191824070239909983376719323729573437280886783509916763947754806836234909413762817452254581319672815486664214123759733047764998894976381153569632019338189872144063777205781238876774024718968433435170028878239077892370931365646136991091747901444451373098083774255680104299530903797566793757365834637346211268895937528859795732129155711148362156011808315790072033172596946428337705553082012158120685643804967637431052989064608545945498078880045037888287034300123584166518639204654525560862819208478909090500810612344160359456643828363129844241286886226880024169542368854182757523556238498470767992821101727042739724531378055183555287675912417280973390525223910865580196441923105390678671373458007445974318922093326185595336700866181976358888267269840448550301776254260855869640219781863153251364816451794399462620116464870460304951650841083890384247503008329847174855894511631528277896190986972605387564345297836019484974972181150487103087651520530907145925646977841885109315136557461715691142745891064370433561634727915424780448481812222283699328636429889288948759993744361476224767791323481907584891311526547695614427012159615410640753830330333807277581932230179637937633499914126083738248262388775285426839085165192077980248886579864970430917870178841645798722820221038133075552767523371194430951976202028855754123351389908865394939386400333467286526966673393658523392004237184710807165613092619320420992755266092168688338135907731863238258223296382648091806756519891499195275087500391039892772696985276739908192425419455939761535257938081826425459710376157571669689014506200846831196616575448569435418398804762737571058595917675557407117602791717895622821581076732201278611340800486584657139051956275419771653659014698837952239282824427297401948883603251071414834440397322378711919595414436598032439494028249529412059795123065915309655341568222641984363576594765660513624514076455230210226564835277063172097364175080332655125066311540220641950841385182803120056059016888664089837603519789099019875897624963169817564616395349989796205067018053133802232831522301960952029307507635285795330910329613368929972986095101444374429843276194771092798859217417008657431897910170877204702190252105673965701380633844175447532774472947451777159842804279449591565177377981649270004293740734713372653491769389125121541837119353202222119732010467031645371449838508449356667103547313827740169493961306989105964221024106079494352744463303239027724356353819376550684695235104047813936613368083900015202790931810490772582923646161997586720975866935801497541422043488195288693339539851971106896374894491209706477609995919908683187457971675260427798872081546828574951088692953190096458119482494362106716231182339309562732277131167363548373979565323967442252765802085245274435229224178421509561965786759872730056639151592849722193939836866086369822397079280916376156231075933019789005429214598949729501368576128974714558232665145349090937314705133531856810910446241495285233685590775764110931536613736008380702232615769678532356238294250255273169181356621863805145406963742143825666501882430599000350134494116360862282052068092459728654210670201989723561849740181601410395936123430669202802605252641731948681914831482423661659718122760984664181316926871117742396311423409085081576837760667921115489064595071657518554912879329072061510287637757889565919615419035309587683264436563332634633771347911082923181043666246552498549044706510583000850880120865519981846640841232948149407974724851919992167219736408849795770696870168714251420383007491429453816128125529706794503682782648749372678633051008570727003246178984759032292946095049879994555174391028072410735830293331320866915634047212101071202684436335846663030341956699211384312090615696716852693417377746219477293950449089708387840421220781690825642500004881401612546973804066726530060323639125710754999511712924982295959514039020079940811244355638488529124163206600403061024537974361468298458316837838618370487623173010219973736049197283319771933171544616293254858703198137625857428041369238998801879051390482489622720141676212143003365053043145414498733823644704607132210729067294309290395915677629120212421136341665990950999261593115142161046856677346172179039082332200623780629938068070337671765246408397838368801049124217584534028330750531457589937837636471979755277696579768547364357041836278609882491657270439460039212626406729380007137789096448425007766461405827276290933377338046863857261731682057609845985625679822734309034656605195456629682971173685639507856652795968182035595317150456966989332587815457506807778815403283943076860744740299067149073520269524023226410942126048781232613178005776744893670742569461967135858547632982930840769597154001620660496439093367104513851698993950155866506148999118464918946487151887858076862451806114686664963809689926850393530900822157565445674582981641665807874082259422219996156019492061077646424228591812336016243831577236239661497908543675184887523573942578209531416958332047995075732060178620537941858515187367248208734782185424050854043898222115890640992008494475193434538702487867711968240554055501226528472392021396713021303758417236371585825504646887154914689454206048369051688758454361838465238318952130516427741504036016491375318503654859773054335737893719803642956946961936657511748960831741382289998913120311218382150591509198283035460379212283590334998848174304660066145596099354066990557705650570044411874682130903310229465577388994910312451029655669012638862651705824129304479052335903624551272741348825437023799791809489487475773490655907690444768705492564539541552862598749807253021354772185012737865114614157148750878717845807797412503074097324441112001879966020073923669900752254877964279314089094871838885528569029583323646953342986869174572018524770326450088319556665135471164737759196080241700652178597496516313719559171662187683611071224428552093454008739673190710120403981097364548786599386116158348751638519170278355263413318406959225521155072857182311358870649836546211980779818352445944997719056446826452383089351994064250797009020319042477937283166749170367382568719548787627077026631649238581145003045496753978867552912050554412588382120980870607602540621270116936476159821057248081536184391336738017784359357991000533946282025774648263725338719464847879880055044252565940958910588062967946574976884600637014307843705202591763038270615374686972615333088423915270655144095665344476080398141555827366603950002170509550674094452749590230241406836859945895208699348626928794474028301650787097598678096959576879963361418130311694426216222682166345984105143445868363979796036036963356602106155608273605601179790233057531800396103749323207180915780526577744890847351129494144507368145730351379276666746767370951322945343113505399642019202211673261924583774319805018298662309936622784126658573581952329564902003549626621929518118240004194968579035969199666860125779680058861798921868749394145185695212286119110581292567234704096475162970193427849682824318179362164687724821422958613320907667447799176236202289644523736010305030948917385150607684559853546055331638189843708386416331264150269079609134635493729622909537024301287921606680366051905677634595217704651677201877942249937382695382689572596215340797495517782336212339853794431318885482642118927432858934898490240060580737056685911063535686137674530554888127787302130775916704999470307927878808738436766960837049366656000856720122090742912911786240657376826183502421317191468059578171547727809000263621548249081096834871914297146215623419184819351711091965112102482619015569132723103447464660278583237775447101546859492483277238502370197860334840171848133027623371048834108720813406575614115419916197156561476595337456124758563896908297389855365584436289458025945824931364203060520973568181341960955261981925935310518643760614961361403326820853409974965892228704604383548872128208669434720540786850872196627595177125025684671812383893222845598721658834277108476127947522219220564886248978890467447155233645178979159154714939173331380297207999912173465590875718103229167559387783939891412431542922205305181562063320771734839534463724264578351601567771732587813563446949073765154296495872929954214490663279107596097198294840137717481052434567666085788060277136496294336144714553658553254543603489246409339585208793556701231118266170485527256135735159274927231210845001591214633477690071277132729457984641670070159813415824161062965227546958341406377346206972083796797997501993419972970512527175182720045231508292121019644567285169260813882343233712556505922777124977823888362953953827177493911019220888191118737011586765866040774826227454496887752081720772693500130025982786816827048713537997528178595431706289491425754660153678464697739023049604913826464892867002331349078987410919640716592583611677045660262050918643867903134040787626379887896944283635989829660623555596348158691295691976156111293281934570207605581172399104998354826812449932841245375303766188800262680859554831570478941954091043462075462481352446620207231918092580841471252036890095550639444072529492392519640372983010715390154327074485682287028453924031498514453066146211947176170105203624162031589912810852016432333095970426885116600832185521087879000124926388232942333293950820560418747635903320113813966225554993485749013181163901633944248717868192901948160602768494282478919479974284013396501937882630411167987606886900677540235467939717276913418409054810119968150547098791750946661637965507892164322826381692195633933202656437656702531523850151951920889905212193613976150324530414360976390564976221054677618548119180022238564280708751073743702883378388553098416828246535998338235717249075191559697382084886565686799029675967340734142726040146364801002106208090559749081640871318758351675898468405248972201688673566680877409731424857199064270569920365312611820941569965511308020278776964356782646747605889762476979847392063280670893018449322500482554265425214885194220552187162163252147167547575197067703830170395961404467911764194276372673817477920919938540302999202253467173926877784130007886310087830432873360072075106483358787256631633341776411704546052402280344376558703566477929404588624536495622536038807416411179468655672611361148842825191389130962739324783920120546377273386268472612014667827604821869654988697525557292643267129492620959210133736597407975002916582115656397953617963169103573195531374297825760784894405590670399419192910800328528353779109092795870842709173378234912788525544461256615483797242781022591797119018415811043361204755711970225234799823350330621828796375680600878306269052481682913892643875377215061059308017376220238536319822008351103967598545396508667579572481046307265994915829658316703888230285013610211829855285927036032431686135531287911335142325570482077092747312374847345244363974671160665868980603845986136907932586452598906185904025321615058637629198804693873684762391814720355039924575329814558785476181266328031155350270852579993171487527593105767920192998493123027201568004871995889777371663208108670696393118985390846710193609962180882237540745201088301000597695494601428678653679003302248696792176911492514028997012668355098126210513860898093114281543082776032170102821329845661018301962611189057587019996494487964185576049068621313850218626768008518268365077586791987256269009367268696888174848376443816688149859136020720942209806557663200898103950517941146496389987173158997892117419583770006304039683735650893535971540003402956276680928115640498235845488085254424672603285252124846690120967458378641943940850333119579048651428185840857049247600024647121297780586524160661894026738813955395503206488484784930327037882078112701807453622234797368247769839873377177495988429518814583993908979932073053692808047567865347976563689841927696333034397496441015647963031455703485665417027891237753088048894408138176741794619755478923962568616349412416609405780217234920319308068413572494389010864615247871943591935314433058369375012552776203309824861995976127311474314364247051764832025490611968429103411016502072762087644250574778621023318689214831687722188334816248063922287543527198604846964809011084918701487981698730677016904160178070080582304484092878353645496921297875609768567219702256276606225258099072754606929782144018650395512087947202004579501635204029728457270354451297345946085611757602615649240693179721476711204591070141517308263408934326933204808084845702875253700761038944123874511085376759104108189321828868705292366576848989716967906157838295996586884197240919666440200538894826313819235488830829975975217769539232672697944904239654229470349385639125543202838251683785918269888305561021878833995118554447378237484020119191250442683849579658779161043449624550804330794502570007100574019417995307489416883051392459952837169474274160824695522018705258574915169596972728223179227405562933332234709494774726358429951764423971395202347611919475961869056748094091083945985870428175569890924433472886480479526483008762303238923809184877943385960853071299603478251665690162420302784756381965966244325593381962179281392199953115169115888197183474215812249872083424135596251010729338285254653891979156732327363286298969298658436350211173120895786001876849879828357235098925426396757145883887037638964907130630473680717842869538752758136203406528713435012512417112062180051319400679413083134452410672524086035761888685213421663989100036022108804072065312277076794827502021313202298326082117334123031815157193053840090816190288077968158279837402824277848929945001094498444141423039455551628998363683378338376692465449198579479746703246399791129054037744119711534629273485105023412901961088889372174418870612832703015239068146145396621722272344286764289253662684533138772798409197773092854458807490821963534656592171095162950303054512248640163151047706118740674426404977092433715094803462452439264040627754586758358998824531526713647883930747759533124807269401089171607463535891424872754377976139261484769163857612353376330707126847580877665205796484794009926605745365021270051688147897901947242837678980615219332923035089561715915071690815729300805811241768744624888805623121468411987584589165706194084500602050558874022378571659702897611625914471896303711610136715748629631846339015024629396344936578740105067183639278163777371215853828775723443195147125940321008028989295404277366921601271965254501936030332835452067094439019448256827441134441851220861740574750691950370389337066464771320103719966058461785102264236282793877684931286684870368783452557002116497253782246946887955207443017210913396148620527405668168655695769336400628669215398341526102577226504839961219336412467430392834938818888815592367706620907278158882745401637527397228849390998883248490018255619299419340430082085314500132728719076253905014951031844189804432253545714210532537365221438823433937444622565231798794884915661155018451318403946753999122891454431974633613279628758088825134172098443814729461112299393218717135226515459415315694802777881890807987652044562622072327765479398371956953839888083719319057285255084249559703525077196875655133924339531651431550600156425568049902039787078924258489596444479296353332626794496146397207338086679586122393645581538226119967432566008210778434051733320744694472948737093456829552244794446651471509426481496817049434753684513636785445293344033644469440732474715216557512369213553968575631902403720464185165742844428911722014767147316164101645985778768137431847874566022317470242981799465305587656670952133931965389121876900784565418802913459094700228694494552432235682686999859941475453978837937017953971127176677578780633157461262673762209723711724707025883157441973110566822887629714271556291853979104737885869312540620507230497765039569697208698039733611101687029752472873907612161928864693559432121640426634702794085926701107943489160651225643772434158916693104357487356322111170145503564129341701614246706040547691784785246641542716300865478777316017780923155123046110030333391722838643089176959077207941018861934775996000338370652659300025804748298235060116532413964700523385402664812497619982521116856931227506953297786467412973575163679055209999839936995247974993450695010000080928829478805062816004452001419666049694586032202099072655895477301417807845378240954576689186500483737588984686203010384158387170335718321895265247474916421181014704342660346980783282489058240663734586032770603290534085105513619155998483742763220238432085736226341269921648046071292984023017055658931754269777295065214173794626136378731222315431125983022703482289310345039615871149282958767530310423743825323803898550983059116166712239484624429481505899542273003246093708380895064015309087613178481156433372034276361998446905322364993941151176923215918450099557519390684817425401515817373855560058175767741198126843361774306067429081341354462743036374849718412916565374935293530327477929797075907056329176119577558403573878206023764829070682974989973967547694085646520376599429013704962957979458717815288668788477266935054760711120780243713724871631219886498666033890714325574134496466625662433281261967283740961415042896373340364344585678733548718558069993471641408155385692079794308067548299339363885872709226676244136055047540062744601788272713919656200850686079332566489267215433028677316950071715626891726940382494135560810388153572224665203527846738023262057954476636019844966976827522434927495230843675725325094114551079650955768909012158175706167637936957665569330083197034180402741876193681038012474981972846361650964934988637735741731620238683719227024069440477874653108503424729531749372517526868806768542360794794809278638634730114889386582315573711620148805936045049029327881239779255977374065344041278171446375223655149182999671077316397834827392813222058334380706358894759490598038421456490854247031771977297810858863049199256887743061262087218491201615772149676891941925970487851776123869722210805319882718503677451711059103465297200223240001433641792454107216804688878804596644927627016097725630629128519915348137005623889429954211346222885511938299712134921320852368172597162227285170374214054051785280732289391135868641331962325320193752331830039875780285683130410865666578022130532288303019166568231827859065933294092016276309194204362051602912446647427445696901860351635981898511222185980268012028551623254056074099073102525667268390290565130993889554412808507408084996051685389713352718329668960301448297620848454178986041372387567009295383375737373810516456067433391781126515924963862886902882289638855838928101202787882673501755456283990132022235856743876690261265651876092518132489349124628139159941785320205038199261399063232048530062559036382826328095283738867195014743816283976545714519060390514423497910406893054730009392691145481455206282252508320553661126619909978189863155684025581453894843871233502221408700579865447479964628033996693564623479789771006224298914371839532766471585938331560715442933128330479066039329914493796394439894203483337519257432448999932367331489916086714504270847883625375266294849950077197882094867120311756586086838003543471771969514396630715131229312778471482115756748432113129242911188683024126822029305468591628543250600118498773878187681049300701595585447976524760594328171243244559630738022389015074548304569548427274016911677763503488993296992599329719787726662724105681576229125326435981153953536380778229937989868861242674195309963109223226812328365534318209857853835181808570847632476362022896953875787544675019036640076385323264848139801759991671941729508637179875561570458589671585845844307761845265029016085840876042264927785963372573749428541384073814224612026315709505600583545880627838708228600339022848333121605624660950763383291092842007389977677401987290165006119119632921002575799268208755848841259194465624295309240746985674140963756539484549135248330659181212981335461618908719901267734117355142393433041609765574112950461945402288553048055411683632824857351364819173677886801892659623071899239859384509498008774198564094767148078586963096002882224439329339696921736620975224548373052218950827956435275765509616061566764831353693597340660515006774154542339708717796172522472514510347613051067911328575953605106444788156846656491407812332702072436625870654855755624813610546152998877170132062769771510166268218360911963746404013699896595244794618653863675777546913124080190460390234402301614524883792530460518521369805760729892331421822015715652792413629909166681950537604758109911856705493151681791545382636874940866858939627991372999798902340808083574399117962132984144174044743827759711335640372355405311769721518292175735583496529274369414490219511750211036371188951157186741327839741394379178728119686089803862542968313407322929566403922571790670214427953656486091090326700340409852595537125462541083515809677837098446042472696596651763061163967512933331526958931629104037338197461283664502237923802575658842231791683190188084542159908981374363509263108277330161625696474432689117906889085167117415586507763081302412979673147308952791262035844597923588917015665375764673239671696772715629974025019487760390182615643003531718632445215207914999671146816542535930222631001205695431516950571381983571638087422811955287461963311563755191991693122219508050005940702827221005616332249635898106649670156533112511391864152030416069676255283385007579452017375996532796689375356003047769954666706151707856347178196070686338408511372214096393059952430956261135627893304936397154393392665161975075258776673209983961619108095732613974621030235671092279518681256698435114729253623072153251873851027548921520797985212890036026349102387835974693286646882267818957909537627019078805461730334733095248000339162710043726178779224760099580924720991644775561732344840962478615904876430254928839750143523552353299541855451321360750290629487579662634529200547356009750944441003079623301786794898025156403445691229705884302305589543575242725079995637090848333036377488892848394808298572831280861496124073787431448717265314864701742034382572344741715259652864468706872481839491920749382113631886488361498130047779104044546356404994777988752213701872452716179135367496085897707458299466303949483458406812246683786320264626655372990689901435251658571629248147487720992461354524549456646084030983266813113433615764730434635622523951794700793777637144023089082092895139343060585484004537811157383831362334360984858196349690120534375019194350831109056048110556594287478264985359639747928966884412775875792497472199953690651934580790577844331691896299374235963888740618230636056635588701103948452119221768552728011666133492151635008419913416028487023247594618196057381915808073576415201364882766571577034525140405089386435282373350766176995783969727911100774693178256601213328825003227506575118784749149027245468870583075281702193328603236931135592247287967155093425868097054620287644068699343682989887044814349939812509442608582324291800094730651325873225081475630417270140098672581039291300395210170795771798019423609301352826321056804572377517869466816455508441320724006530344339214905191456515617475367501567225416520048052037154303796034531661278997602309996641545588791203547275333685388167183798605548936005769788740015500280873121192389597863685366466319405738714184708780334739277781459406448309985662628306238557926382864973901393975856550114947883774186481520437031697957387013614866493771356624023296654782687774879075765940849688102150324268117252637599060771657672949518916228421954726805936695860998870325745309163174436695978472680408790413716997262384937807146725506982485801512046361040429138790017181294240815527153756380339392219290070961670418699974135631537601887207748013137554480998625399791803629360055735871485463666031855425379373451555910736830228425922683485644993795093358907273976742101622680460003190394214543166580919217805957750789394667312304965430585132646392479703692973670130123143560497711264277550153409289537150499632016366833566924156961321993688575526805505946616361712335035561568115974024856282184496870003269981970242170175714985883705284882396394472775108334147851748277103064982246571744473658617030203860356773703632241720029017373083766758376107229009062165541951041777606909895241719899390401331665923709580216318811510984490332927430449816793815560529229741341152305082694420480697749604927808400590608041413700117864845379236967169484560097168399770302504933150657626864186375039629696066384281258012114642625274629217787162838502216218520896557716625330214245211680783577468227481101062968081611186274664193622378767244871650861447965437821108724809461824618509199290454457191521573547195212243274221983349089163184645717448769171017857879112052849205615666942062251946319033727952682182192807432223861617520020617740725527352286846574506335034662192070261916579152667505842096304379612845184877302377263489926456285497386748512412150627522160461001493199149922553713312738826072930116863340650190434752495139333694183347026488751910009364476869825020983158659847926725969970314743264919302395707834846915008611806795437797670109527208836137822943230256826567818585336198475977388933672636132705569952587677944920621904515752765857604363805858699637036489216014461468682893766841528196694041843734777699310234160465659518498085237059971818243109055597113641260405974644474376322617408380898712106210793574646060321179271214835965085131033149349273167627996838397466651002118263544651577085983044719002487796164860801157655666320049205300584131389204488844121711859406163552482750569106673039656953749149884613364466074206243701989980408965783138647961100762515897211614177279935707662733064728741377897009934549401092351187169677797824537867402022460917704583047557510328478237254527799795466371006453457898031890394510840465976505378895272690563298146411550747548328420235924156456155405752567442134127643876292026797545353348876575022775716180800137757701065648419144500276502328540752184433919681633100280819595574265849160793938982640966093239582421146580955437761750295549691990901025153811307130580580641224817430800861144330909408281908615539605395948338557407471796573150790703848586544907401088382224425579439941272952905017072193483538030020487741805393650608935524472038962098879788446934879121889322582243044840840509473253468945174595629076641547499035906962463612148218058781459496058571602592470820837140981717435825985212185140727547068834732985491640217401069964303989994695396399880700411613993273941792961885459290837030443076756315535388865807101300764147283554977631498491848283680717066311377905933705788085348025097651953447383941963260909901547855578865237327393200784274737025336232282799236895815723913824126215942439904714256976001875194939498084661530143693634036645777163738714128628210259094677333042189107340394810093676816135082274814714068755350871249634772625154150427019740236716608830741714990011581786563595183445942336077974142411490941993407479949844913022225998747001551410226442709905143336002159038737471044864778650693747625075187478464371453499591889312721246008526357960848797546552763021112642595346853775593122861938298534256063779325363856584135599952789870362844393724581009175058178056636763372894435300792239811279140415824090040317343447494681771876339005456186251080722628254222316683879747657374369837672657336406846432008399988282654946365310234379787695231463632435097824617611832248365112336281518759624908668804253336816743393516687913636601802328496292840513267586877473294034312471913024100121004027449157146946299268043347478474453390182817442845923681358250446348791995818308537164017347853155928387853259434435864975218945884339348556490203946713342495819011475984134305531603307270290049061906634350428877281153325920525425534462251932921688903021496502497113049265429525467238948166021600557574312864399779343880400574500251038871901382330017575196997190727929424160879151715047505091715895281153400530669657208338083997408083434742498596384354252938010717838221977254661117205187676659818813867840857338707967306065093400601107375829125688683785698891199746004939101197253637618348347749964867312354504249413376639530877674056313601602826650319826942543364458341989354189624119436304035373354126423315639386065341815131616628075290262085842015320651958064822455387236580923681159803208516025173535307075198953104147908387606848027607887374385577544043433010984335802361246696367475979557478508968059175819912850729540946337764207420304728212871501737414097212826808044555759752823175566395362427172343394034954534005830208843198179764851739222550671038538424003411228321644456521648433140852863781609862361451513246187546231248143730662750595002781892172075115940544902886501590550224058271576784727954779519436004578852409822510382728630918034447756041135504027516726214078903175313741731547813460130497256201028340296375434168315287045542494959271804280352904262565831054627935886779787279797152701561025692528679124571225005095757902056433449847318087620693894400661093515407396141080069766151454096867475085798693953722426559434121900118001794344573135969783664643414960867456818198505694787706621053833581299004508050612808849373262854999143830708678143200118358188422622118839132599123021440049963433912827137938554935138267836257740961834872882430576184150733184482492145003030669582571096799900630956743634920653094457294758187387316613794113256286003430731943671690300415123076376430130422990769582044696300306523295584675903377250488554730405737870261575950875410367445795478064535901466257418040642066521968067567236438479061675642833576842765815839447167950117306784951523745537638667516916026349505206080606238387144088294098795654874216840058240407699690992681496951596163010697817426857164035479405038349879420670025978715986086015541746931335085369497753316717071696214947571416651078081062938935388776676317408713723591645636037137946557396956288253517832067139853403087328785438710168346487226517038323645788925843362675760469914263535412675207617151220476721049168481778210883749869401258077875175197151831809346784641534554290853220419769582587329034999972251112581801234767225074306420371656059003448665929021449532078305930698890693558826567279737185952775131643680408269152127884877125540405734229872797252806262937126720722524331964780518732367713971289300432976624863480624485594345553614454905336459967183958304231069107988280680723258042007211152770634271355388060975523516998720528896355606192265023887284884084202888841631995641731721760174378298953547150406215227718629919983731479852909441589320846545855633826716554664001129691877494277827925881928684621473692304686093929943981849888659620021768695908213040781646889854052704924928566039992864522777406322380162279892944708529326980311190970075775398628265284403189684950707107339583062235956535036372609943518255037428683829534239929247620181073808144255148926730641670105443090910118027983278988303994716770603551602528598266659499018649119299795609647814191023717995920973940777188428495316527593311848093461309171155105114380505070152557608225253633552641142673061463425816296064882863157358287523263980906047707938143396347231905732786252282533304438738231953011914398305996959195791616077278459441582730779742337109799681668486746461629476331295563665810629548167639214931141666250834476895153005661309047942872453317177262155399404041130492004288969394593268202962113885975907537819215103208752674160187922012713744379230358396619953017020592492419473554794820241662114500046619025829764097110373960761228479123945813986476891078158025843999198353524711290936185243055779628233655143992699040990311945817336036493569909542692839983949105398261338375248569152246300339479558347615148634594811898134900525537497124324228146806819771165612362040685861243999127773268881981778266402452522766451275003465900684020489147645170171698064843845424312520842552898672854943527256865792423855129984236522920232836901775569417562477343139148903696832140272003138064942140995930767234105003453746382869702141657383826257425591394918587914621257439494663301286416653740540396129567754022036497164858619022150746996830761614802266369564190536753523249463745976245321694578595025972585146162865363384132369727293490850807735543130648963663100298253940450633201792461663768718650572867884541128875278043531604282694489043621752988566321160835198760849464461030638104762790981234929017175121652028710808827914990243376095082494768253558326193703415247842800795678725510850014091119464385649978023337290307626604307079100813890863035604932701660600790230953785369125129407999210125183813498886339557810456828395583283440404335752913777222448006123627786472577593121232225538514003043069469031373172242405972004717555947844177802395864709222295239169755582165761879921731578838535179337751255121129975191187761965879185116175500909759241206907837230309501005435258890054311453550912745433540516991928557235131874572631371211765930577192535418874536450288046794644223430141849505919438454377444859121939890378010973232045544280360489827792807463050139796918059995595344008935302490276626268584581396810286861607270868173550798172302741469537686302408916541130071029903583737143263190836658845175468216047775789972847031861357925459292861809999974331606921812077903018904610924898585268637867934132590731287530450619555544188576169060233241180497690041875040975597052779364233572424876570432069102686388554794814529839989989968345165972507571255163899710907662816542930171802300590192445200103761221546226702112467214786899742741038328348047127821609132876933985173389609328410272966474785050036433238555976979985654767321651751235796929721866283459593762175811729509198720302740322831806817937341614633664370346830075815901525604579983547542913539119586587991801734870528061726071597099576258906137319185719726685690014967148835461626088579165772986007551347631934753251608407161528794529890078997758515214964773174881268961524436291921669812401916962121599400412880631504972169248140249134595290652600258023731056735923306250427729344645874615318375549015080787695420164214057308812963894003938995213946260282934457661207782626213888314222663444134082524503430231457494750663485627665814869938776860635190288787726890257309694471796732288677587653721728094635318277524389979716115467776660913798132325116915477973980751444713289660274410231548420318667798828490207200746183343453347307171407316979947170088416189422315347627954711169640453693464600409397439571109286970582684621134176294273083199728326899587599343079020190126355561005040393824580707365832757256241118316077925453383946135814593298730458608409935802974716774010190944875671671921326286573903200312406271955975668715198774215844424578880998133091418064268316047346760244499654953896632536803517442784745946865191296718500031017084929443282209078725450882843473090931832693989197110734702193094463794597032821151738957972238161235763135286564261326136286868585284115652537373034517649446568141477836338924540776829321811608773727836255796093515816589639409848705185894481025342198863436837697295578232771170483449505194524107246032539035326321450133084711763453210499913073940725109166724439332453044899331542348225341255689822620573336035687117237518761594854198552879837923179858548288464734806134242637279365104510212480467166465342810093785713783383059527017537790116414307624767584467959660652036023884474802940174805201279235665317821145790856255636890074551123287951466431540753774437534243307661938879710187290388797678529810805307306406425862610202478669950048959714047837888598298824893233069929716746836858550001754666248062949849434262886880202002576580032251743104847134950999896518599552701044170908938145563791225279755294763830349436139271470655912806818257135442061456758903905018424894486500540862730936643225752382936790513211007152952482299978586768858852199569899412541290336146144532248949933507433821379094971770314839314829724385715473161336485657316607422796636780842407225139377013670147237310787098260776448552860303927443771543102682009833778067210654176113162544531808360000772661664651924573781460727225672404852966138890482218017168629061264166139972703750438139262468433640114715194762449676132342465918929973283551256309401120086614206807177982368959031156698049196421095836468488471958594320389061011157546668509385936565940097378917379077156875137603806730887435543562095349087223351305251608734000475352850812271846536318898675725960079731592725219885626039410785826214609350445665935151029306213118183621227731779783769374730420352816959374604446075469880905987818695853812736957864037892995610804231422729423811366217160868712840143676011203365328490569858999518144576717688079158245647106216509254783708141549361376153514106086356232211354862353331833622955867263554278548917406011566000524753835603462165884173446273545650031680352155049070591757309459133032969727527520596648220476735722210467217959347510586871476430125317022120101966664280276716841824160970819401243779676527750212486563661647515108275159891966153178204382211658950779632989204825916551621216578075060326288316976134750042307550563520252536609049723374157784252941545922798933066004275844122595433695995687372617993659022781445414085735478903541526436665471547783761369144916539732933744576630361686967249677163263256621458561355755222766517303884425703346975518933108950914910371370708487403100180340801400990485793840433609571222534646213381970025997607279878484802122267842527157373563203345119133951709554455901747679682644295644415784285640897286578145953689552343419486333236345188981724319845640926190417178819504244036145586871610434211972464044607850021969595841559347375936652912173691145472030911234709942339314706955192874163465521988621390762532432897032287519727289305684823813704361048116739140432917577162140890757384759101088327067593105900900141008196666676030824703933782544476960393515802531797880267181540457729493647706522086476828265857606556500142678643944400977714737079252968375572638422597125532197334448894216241603087648230299302754731240074440953110895614320805596995220603707434441657147429451094332980480415690606188253698085348553976427478340494313335606654161168786800102412686920130076867724611318111985632945526769994854599997794718335728582364732421194478028322388464388744798172551015207277660366309451508196876157371982599074140595831993081925932222654884807795986862161329363764937033354294462695575232612834150266030582594410806861402468954157782453715169096525869799571426143914012725322675768702654355469247544710779687867176545718140457096836090117005907143349524097535731154348936358157185949793775097172531677937979996886194951590391266641094966793287410556835460027253858253352723216969621564293100578413296908598156575302561538329105859332893419179144374866981863737574961082414095947597764654252723966577897965594553441216637813146561833173123327710318508118206856349534195566332291265293657992257056907518999370788336405068394810481292130440636214757981954879513425225008695128249561880571443676668182675223814774297806942543147218872089973669230436600619994321268148531562842662923989254380315516832887433850325854742916474086383890988853103111510623475279607195343689749975367159433714080339996758217440396801490752739079326021986280507940274213019583578916951662970839183347643161708528205589400075497579590831803643979449316087585331047272048492978306264324071432102649697805293138386529694771829051772139010118713698946781198165819035271247570178520426054653436692418311084821239323609613015388057353166131857513890220058883011109363829771316917044123796478523437718861439784965442580600622132807050065705162612405320750012807438841973419859795374116637314881033910947172414155167098559651284407170185328761528024477862328911652207609945245588591371854549984359407239363698797867151927810949785078095977782968092705408843799570534671575132659988022518037254844890242774849750989898543309017094665888565763742590070147869570558272461486433598559702619328945527332966157351614439207075862007314756216811457419336274189984711749660192426988242364405281402815474633837592371534728606261119319034923192693171661653690475257609164470893489438633708864262939742905415429390812351088507371289632294259809254385438806635271227398443462414236292576988245498771520080251463402578647824419415155992321879707858257091522131684361817424571672345963402920719914370215536750638807465363575227240564989159515473958346871157372632529505963619559844059635926543278065349527027333394318056642356752164785725665347049474836724466911483367867642033947087974571965834593073894900402111948237309458702047373806739252929567771772182154412234096782129358846251672072961888056404429649001075732404485596140739688241865460001328755587758478658367928306797075023271027216050374243057635448757452078496068735940076350927945643713397926856037549737338260373953248438178974484052083791058280652944241024297858506583888801729746870947141261599561176218175400878916891853803947170258990541258311061360084078667807835296625452434821607415868869882852802424529041228501375241751235346970727388057431783710251962742252397884408594944508437109424642280312207542215367950571938969117978557662447055614344207912201233250384410469674330504422354781624025457008011166198340372408015112828971028268880377224512049036226821851028013963644254538728480326646558201660437194984936281081745937484517580939838801906454037730807593176704961985928879757284560415074573410632762471094029497251627321432141349397386912346295835456443727007261641115573091187178362705661001695158551487878781943189619566361079962521525195219100096830653987525340890903561201367972433043558110864316230791916345775725995967730548428759137365038887610226719567247820274741217998853137303537308150747509360809931576512964641301881881089170181223011053516205840998337410696090507714163710361621286276011001967218253461393160430155925594558083101768723888426512578747849379731791185763098208844597018161446606018469742598967601627150120193786780983793044576346046563128698867700153312443121669350453647904503215155274003308973173040283974023550104202556125745841868462218383882716005295787682269810080030281045821755068717630757885979641372359601977774225446426159531572131898098422452618453590323058148304021454832655920919029588689077118782430381836196810976690065995840958263877849855366878370792274327957445063570045735695829299505715900065197321872274738594405195569461918846203228568474460788106505535589618899706524005221144442971882364443949398592861432874131964752505567921768482789558944502887770249441822550208078928777573748903935124819900079489284692610163611717877209465043489467426843615264292993664362752161924360961927294044432265187239380230471264174294097502384799289378430332197350242309419995233011387280638834353013638973175620943418636254700878006019366524798778718925955403723677917860786566937323658756450707560453257214330915053470018012680158804319633234466502992026478240977603174481875935270864735688376714982140562570284121080423064019858848330722259900307906162242004732953686980195907363574493224598450199013738248153935099841219052833688135104960745953370131366855479843516801969557991453580750527058313717483329841818906154458699228975817407054280827112255458977093931576428478016931622976302011369974310734357168836292353330818094451326904074138533372079831662845350095970482135128568060520483241240309117911940066741938820254298213764208135133999330697833490950263959205565614365618231020110005566190814388568419503319701511291183312238861226094811728817235142134280794777123798835428728950041607987481423719685693551806047370961243293806992788139788065330993709822589072106802502044955013576622432673849706448404627313601089003074353395822012627413794299747930832577859870122197540287947219017425657776029453343047610223767012156118961925003913790028316165616904946044196865729184515394065568019768002554090333807989200920042852917461451489746512708424141050302381732663283396041962628267152805844653391382125709587840254388592778313054092376779541745913004014769085855047276132177952326990561084206759815422042038005121368207564688625205409224478741979230525083052585791020606051418131854630055787907086844122368259053627242673432174492007758119570457949771229852040144376631747031270173621804034951656483790859482475200661207946998650922748029179280459087915614432606293369926994091857573995778540014148544900349776269378276578283516164591893701397607477391298142852124039631607206056966952271160741617161285012701901851872004423253067666548296897576928701938270154452437181736187510640496507408470162874264776879088370226974389496612430569023292758232239495085973207931056367807791813272712890645489705662457724054818949926715336982636281404728207524748505789223752061052737254141737000617638357872293992659797825009072093669775625035401974343470759018400064174775846283566672443042673216421333009476362633398225409669537951344926512746506819073979896357408705520686525038686908060602846984378290586591107549211385690686362225783076656216222240892855657604583483199847236589379785816427681068970372642187982959928050508932215955357298482878101373855637585389099226409703461605504127086863893426871033148139273455524246284481026895234740566554554496372237634805229766148387345331960569332060281069442198956015108759797118109050055747305332504642095190430680027480140529929673006952315550276566349072226722586158730000412377523627465456660952289011554835006684129459038529749674394607642786479074863655404724611101171946809436713601293318576981775086965470119743459469654319491827510266466950065616889053997515949828654812549966386600763331666064274234620917480480515564596330631043334454525339264543033364836608043406166609220866191156909905628559616567288907570716103424982988751037197927679261331029341591759908632187032682195913012521763436347808995031829404054091721677331546618598133660003954990534705210110181532746325594207059499423390616861847975239599251918785923572419471956512350764852867730109939926286190918959491636332581752502523352738703146763672859841185636649376101166318056727023338014325154523316844508154883175398591723301300177404274765887569164188981166766034758885632994523381788346616147232085245485323603016271729690153639860386973944922290012117171821424097533769649799136842468609779603147751676850738818238243075494656645128838667737909187616172774035565330195505368606140990719069357180185044395291378033253649935776978763569848223628140576481594364785581399488736863774365642619388978341718477943422964246947100339224000269736288360433691969386965059866729510547438005271611264701628796700290327201570164942323948935192062129691025098255805170394094848542677199369434945061964108920206035057096977161075370828287876382653413167037146618524928307452331111441224800446223104052129416950692949061165482195727052706498464626361822439603324234245320155487921539553446076377641768348913038536552753810183033658559453779497271424347767146136840364239612549869075648369231966682439547370014177264219681575823983428999570491500771361185459995371333974729097601509021093494947753589728474362220895265363435206739451577137193671517570473253483727886817378763606510760808371779531321847864147662815473186359629816205567251601597105217039919738825477028843410538751135827629690386530617314117205294328949464584046822113355641480750375147770001984066598384616921387091835437238412171917849023597905895644658106502868510057163894721836780386881189849490991058758455722044649492750718383273975315628294140934022436750333966244568755739527495140150133886923801013783593330667706070330763294447363818894312444908491435518419501601506163427062719018053157582841796012843921900277185799527915391228827785320340518005797500575649826187523986318354222410791093084059807598375712715508849039838052065520850061599298465410957035608904782948128048416498494953857411158460899042547713900781593945616507119005722105873621783098205369322754312504770353570231322267725629024379046694087389683530467238055105868220303760146827904349218155080611873842090685208408975792220737155470665735577639083298116343130799818173657106317444288388243525461666560228994784282007043592596156849851260364942577634207395776585067305512209745717595157172635945333847556917066161225087828815217756282628368929526400775251358700945160368454178604041677902579242418654093416450310270682613432575005433513210869248379170063089434879466116245483734041354989867973479403179550296431332656474848303661382762313194135757124293853381420524408735898391061917530409815667548917317450459340076959085568802057423130869123800845248274686046501266763048640592919780962699111467322020713604059434188056586003031220129176672825248810130726593719162772477362306447255664056620234548483570240646806826461217429639060491601277019746576087611478151662770981899908312003399030427462083759426049505938818314948085110955362176014830762777962134801768275657393226826137527260134597448260218972464365038917497123084673710441022538906421756247585663635647332034534299008955340482023486088440914374553147862832977184324993720548504633780851120691696501409192632417188862574622622833905929063888625913644430022059952730821273362530126214638342828028711990025429436079146266753224499460390123430880084578909032116290323122798181174652899759274685108673032195784046114006809519532095362704545734397370205954098708133595641592253934999920951869114261041376957491674375310231263477939567174282554410989390473523985392458013007529521319770597204195897186725059152063998445876645045662083749759112670384458058746722484098093062322954360208451664306999341039704533729056678412349795865944419351175826760574868555886905561893910285073877700647995045207221162358233085412511509745177183275352358404444409424480071442906603724229977570864529699791426140918642863391602788184119062087153493110384266382108140293563123997156664414377910017730349552471393796611377976153148227453717838189229786472908725411002505824379256406937141081051423261522893252307070105412655439636354130275867682970324509460684590409940533376948640331782774033828544236367395721049405796348738987871951414444010800807139349102820709069136179591975256428375928421342446121664621371455366550939592273813822172655167136834817951643865852732030951431090947602706570846263932861557780191176646077237838114417103261642985488666872920721838042395949037243999017304953567614898020560746342710062873230643080746072161366040515337815362339573583998005744762890621610907922031370926075069234234676330926213148437726762242660183056148004732580523153866742512781994362088872022500658849141210746755290671910691227260122805858476168158728744053255482319446252476408978724517727501878395339999427527182851056125642944663422044374587112135439351319312819788100131704410244563270754783003166752031896539394920223390960115993593631205025849202847139648874111358848443393343382129959014084450581860468172638701741634807557953830145365123599478063814662817649295141493620818205754670261068627941555040169741937244351601546348296965565826304723986921581153484132086069069041686885423070098657144034709561751857185410329518822919292145695343119630697726902920396471028413083735751935421303459869640445073948040242717859806376302842067550103801441266034005034693599152756349158297836355284249573891392682977425845646423316385622943177118449540548855925857067348695122188948680864880565426333066671119065534385563262635772166930150104380361271635215383184641397758394456056106918894563181081379984016228198479942745651664736116692121776447737158155469684133591795277627243945436146270104317991525126372779390578709472063740623727326802666986509883009031582587840759561458667216988854477482762010636822785350657514755658981628768198619303452548363296004762636612482978234799163167598732713817207968212435396466737660396207804984959920576283518438366417050877146971262247654086637281572084940676523383240536353887240198073346623939997995106769017019970912574281924226600282140684160451772149873733853799982870977229674785426747182480969649518211280916520805775130505247333197788878549812041350065320552094377235236095557239790004357398098294866930844504071776430066849664057689060040482331283932569474301300886847509208392479303217691072428229306244016012175060548593766264673380003295058782613361558331329913890324779285892828488702496535579275245957983090380018325678341929138629986425254927175116533791160376704429413181882344293263771507235377271581125441224325892586651524013961559546885201147581852671585797467728488740812256913695404817410026219587416614677687036230472225683314024376908091436259820350527646320118017292833576255660284864159931149043323456192038486695116801082273329780990429784578221820155319857755837662125353705420076217946810936510567510645306788405783291105375287685231786755849168371270037777429742755450451144629754516941015449942396704769885296705239588314234395191993480421723745482760462072142557898330804644943295434109454416440795112160832992119411428634120960563548321139565463465097607855855931570746354125062345740338021667040327810249198139476734032482463449391854741593563159166212846654962237308351862650988721367826191431355029387619365221293848805626147650266204104193519243406505732034179550705874639112431622642385390979094539609691431357197347626923182082968914681877353855899211876017976034525491601313315037990959460757985813918576568816638476544290688450206054997887715615741509512825532523171017932135302520255409244968688914774733340603540724339221540494471342933022718756178871017538038861707882407557138279166953906344162713421377121999720145631288646424690581185958107949055854728309527787799452218714938337123776960749599581565903061811041804895485883653871980660759230528264998109891186677255624543065877781615773945255816137370369515714980801548053791843300378949585008980401308931186697427949857054862953726771600934291793189188195660513553825044006908957482134692108339921526987525772342564509481883489360478273924851028976880443567417887859743115970256629507139932291031916997901126318398733220746509949155135932563958343011336689898362445442863813827378755397264834664816662673339055295107463090585227088618511006461531594690642888719270980926696360831732924926904141664484087745750393983851469631073633584612484549711356850897343532769563422062414750980587283650658694707993983928981130911725888438346862567959284631087459924773594208350119989550990524707306316268091280352290641242901167873804473535560594787215567902181995444070369151352942846484199958547873318103928614209514108227049343357920378976406634926351368246165537194839969756897777177113532498540404901107942856726812397420728597287034885436712334754478305180136204183792124166699472562860063797690082276544389035764774263819340786803739975108947793938704613254151500745159472163591005327491389823042244174389309669347231723482856013224690305584741446039089045822921156924215288055028224317528172244223328785168760649751567898640389070305130566484673941725366185154557962970926363989874816100408190446681717993663828062534375853301643882749136330615909696939834327125168636618241024083016079398111596303562034349075863990780983096035753232764741885494085758087226908177785474991360665026642289667315077925522193620012041808800049342435324506292102834050675242139048299416333010432301115531011541325073469231280834873939457054182417160418439763969461894507702629351485525067404423517974900366686693997257660013547774098000064971815735344474973484326053490890689940369370614008240868746207917828898802358591361834197067718758698928344406396700194017841628933463294695608381932606602805955774317031452284038320528495159565006438114711193193334596634324423703857053443374839245254128759218150293217574687598543927042903329619075110399296659610276545585330440634589818200959244617129746064272364382710482622178389012314563674042376812487304964951963631298241807321213767969207013172764419475029461211181712775408940267196875854846294911546754766428558473995957373906612000441464462763683646014190898473039726646040708715372379362995087310098678985522388748952811323749245568534377271810430915938214595592026370145734586138912367001192334417239813548797371177214947192336398523253731809524079542785054879300844114491474838077887950539470355762796840556696994996983180141205403002898028619989065738418815954657322305607840600781108630510161969099965354873287645579488997922077684268944303302975752594753874808921985887863806208285989973978609218226954321154110912684527749814637274362278280143085229500658336345093144170486540095847702095678334575672768418189743676179293033596404926290747397449340138301946967543528502632926127530936913290359060900680250073571953479006718154601068394834531164178207749928286661772950144331815308751454561991647835956061673610980461549529238390501642775705762790740677029218962933756327545972811543122737821153797909256892418185881402454802950339896724475337665237017810670041000403210302689442177411253747252873464855318256286292519631111650609800091217393672220620681863145726964315697563806724968882537533818913921690054986989458974689337575431303411780494662881487958551567657738245847729746566032377683833092492719645835637667449717496600942826066875254016286761175024678693037736842768519889688776791133898144354895687165268046311691672761300849207466221690995327144068648832530011302634252337753823291448650551245311267770239620363432563355113670685849678359365975804459968971714856602573087543014819895092040643408104561863242483095214294378871351985989112689720002650407464720751595770187353184637825043031496897012378084688037643855684063211666397168688332902549381111734834494699934063196344863659365835265193680614550060233037512703603146031772507718805412976482439098336985253698680297821747616860576895117399098012002462953321316168682772020500398160346561568845608424921398109654492310759554210213480177219467096934924990322751008862896357780817818780005196101910466400486363384255120964877440691403503340731690134549893035157451276528186681413704610381742165071954692175424769841918187155425494130255524014433973634185811572186574701490334837079218009078384580614857169010919528975422745259096809767320198780958737209700814204712686352227410084743352343561710547288652492197782863430194674227075493270928699656108448011090206390569316237234414391723363548390234288263863366942547613349427436392213271182144189343759797819655027400992423461901355611144511221004762251890501892423536354552760614400286090310738919526065531875546265701559234102244558843867503380346787579980768571668871754524512426157356209435705970796064350275140599748977130653991470790122040897988899653924131309753083339050033848409606613109265742731561040741750957290652773313234583254466524278862488258979827613692143485310020549330140938809317986216495128395449088300167714183330262670741017908604590956435564299194497779356450935027238284543659852696966391075565769289685160131939668322884624941710840638396292965281958842451223280053918584610792995364983709304501533941536083430041144300364193482293663967216007085947694071318605416519297966739267601484465535291334955159359645461511976192197228781879043274300131870629923931456666691108547367462631745756264133711073878638260230100585728139660941210405854233591865130977451557848251692598870395919158437295213943076607569261345478139660680392503462081332680345601150663185413852905937663084189376114958176954640456617031736987181509008639375929911350734023609326287158296025242309943278789028027903179961543806905016990395867461864569700755040941474194385087778785228389046142805542323392122527657250333789170686344174076383790745226759818046692149526880220523893016302402111893640388954797061865035604037603583075050996090660083487429380441964212174513039038733395404916675385397808963004177381211199480007741161050637890501823712484559115577093852603695573192011569355834318648307743128563675523893889021849206122216658628140129571355354483171964330406203678082023343977483617124293198831327922477342894615476938758996618378903736543019674976757410056245312068580668694826862753283609876612221023496770590425775270720608312153473334808358562164485726438395590310339854471641761939197279550561504229057163870200771245214830495988446808129081874105837006672468938812642304752119897348924564508780846965186380220615957542322539262952421806905223284977353200496906204153033458172339781451981906473148827232972699775028421418712007081174924698593127248116646497875405604693477990664521655848609521920373781949502905983760559424008254781631758054405822965094306123881489356733741315232599635152650604751198844432191211374633662037679941945831817638116898553049929642753175588062027246483601789833723698327702542668590968012612586652800319398309216564758516404021798435003390512409307670740120565905069790176726531602811981621555547065914825161962129648198791722145080446141679455287185613371574666861709290984873563932690568690019483587229177152787584923018660487567870075388471705266116012715399330977965108161810382982867526796621309239622208297879612900655342206515975130441391992059801711707095494865753953477738839975522891946240196776758983971164768857105633049143833832829479610624359583264791929824391054026947762911396749759716351070188234677782093501739250192310556451677875822685829249199726464200208509636364417599654283328213928589999589691802070393622342209762193658733392403892786179401616636087302395586083006118439946128290373626185820604682401316669691110178377075368006620829856196363851753722729349505542411226664963889436738020563980682506697093769163328506960419200384684388824594843794419133803526051377963438524492452021867241518854320147351268787868413836831208671984010718269704869156059679101372280277281720308552304566013228603097402243257901287389776819260495227902242361598753835620898454023414435673408813017557179142082805155415547485405203269265106060485391330311209348659519433445054450201329408729748199840920956825676041027539025419570525750660977489344875182694450936092244768457623984657845004496760524113696719462560630159182429118313712728496791377366368107237217527077661294900955722357108076895579706933063981664124590248804261691878771450549961429129841043860891674212842316455472316043961786242300723941316871796009976622992537028017189049634581236916603161850796105541960486946850452302087057135402153345767712456329302785116061226549794971988043385363951337599834412866557567745812586118481714582821233978472842853557425609451398262668692981121095028066200307744848324859716441174127394169465944883121977820720771734759984784452683064128362207160010312850240909895586848518616292548151688669999352943719921942837645395817159699533075342922035282017837180012147445317119225082934176356608727825119194512710299041980672260025182576260649678072020275789389087156818220134401745845347453803944934779132564434996306671376708405339449851574211937447531485926836203650404017249825449709842822326743773747087475289132934822965357071584486224660633617712995846954679538329352433375252136893384829258616324754517652875728629862470484247083202930847179365877138956392608734807859869537824262923236632308972223108381954591916066630679049119543374523301284209047954701952171955364674514775039241475014929296434846758653224421640207693463999687212462813236661894163607594810079619145700588222682441431806628521523819358377369797034355659194533237931954397807953738515642393870329779391730031265953039157257496784730782294632256458644797134443306555477233630911298238431958454390456414753271670073911838316214035635518580364716328476287560499453727724464757968443281998636909916312491983815354563763670454194443855923127084070998652407012773507304024252671794780688867730710631780059047426271327685849411106950651230002153414715065300476283765089547939323466854094323155490646506265123903497367650885156408458668868927139933644553974352922861331859845302647358463269696045822190305250570677592564798911278240792317310326944588414995358679717871658023289339414042801270866826475288926440570681944873949718514668262331406423490118247661064596158591223789058455235892790374601817131765008176287907951298713094904141742173116580049977238132507944601745542999131505640631038531238723459802860746323418169845139133197515106817024080779213390673867562940615700802575569778882411059526041269558243882817684699573279291766660656760992363413543018748156395549133141971150992907748898905321165384327681514039252325699245812958970899101010250868375432116165172251078583476516775497353085213879244089432830741270886629468465021976462695202110427459578851180522876278075231298169220611487344836533538503760836673841404284281528771264908357747575516903857100678330989685995400741808772357800261161139831482214625081034360189616585340572586173122476932918322279743841990598565091677919491472331314963932322030436980891506233453391591666712148735839254308349560340350145447197236953858062113082483860148153999754553284607767664601536880579094333389662761363373716299208102094531995201537846379846812342632794352775838464518249116839132936583585913489576064883857431071594274055522189380419905304102933712909438571920551995533711672616894134132650083338648896098682914613553369565287313528145527343165250671763709794555940624780104455912028082420232142552361565078571710815477000163608479430067681398046015525008841696169474402450125553178697007890767753294711437651723508882578171579749534470875592226654530468631332535105746662448556045286624685334240647578395595033920553523848292195605126326061443649459021528695257795899026522317025975024391612021611368683763620487976769807404612942382014907428219778922202964787076143272770214702478096610518918652177663040920569353999664425681216293199635811908290317667214426542459484145786970772152311086825457498701716073438351576943139730650152686721725315739003651092660949155059154930141126738509039884675762968525662689618941488752853577181589097758318737245440346434724101520527183269410282637632459417231194900021665840977348636083043157691656801335945835321477762348255138424700892036295024407009854609790344200474257000693364711129467947102547521180408131353463000339769394086094019064430549420746483869231522234547335199628354150119650493930061869651852827133901375703571228171434322251513836783725423260609716119662678971259721922169801318691594201902946560358608261768875776695321382289908055039165978993415950854342567347468894568326423741282345126936450138598383738184194786272512182848221804333135983559852155158060250348789087858440684268875967060731171145003646718874906506062443672967070993826095421971556810883114665201095640616457301313488625015132631648686334392326978613826461133694421371419020642422345014799858083291701879968620635132691758689574054639939306605148677617236778898090763917547307557062453942678794237715920005192432764025808410131209473735756028348403402870569104883484064524127800987992809704422173335960291003247408238469434008263126635935251174309379479171033996977831114512610398321977839406699972750322611655008954014635755358525351940611940238870499272756984460798124654856746446055969871814396854287678995393203783642834183386737162842345204748508590574744333064944249364783400421162607666115980044144946912472639780891835546214634399673270431973369506898661487801509931533321215979587696133146622699292531260968484379981254647663293735672041498496696514863496974252934421138206445294981309731419945337699302342758803554301533298729410006245774259986367524521267447732979981701838396690923582357119784025204668193835830422511117924003355474005048441191691004211183686178820963629485239732157830488708479828322026441144484706161352108662057384637258260384910201986628875536000505699811133978037968815705628712923979643442041885462607969183601166420479676881707353485366275908690399523521456377526775118792260059972034887543320767624348022467370197254616705734585525000372166300993482249471107366736447363188472948762074133982862762828867059799506134772955563055989806055358213286566025192816915834167845757664544209783805037870175754264987432629003021298094980368540038822513597334125615946021175365436182302089868001101813558477135278468571869472791765589846986222502752150129211548560526579863506623862500700516804263635906884068515952029711494057082200528817925046529020340011038498070074914893220967470764792241749595694254375273698909963005118563613861238775967725198592215663835507863464128340839667894141894940289833842747088403296537603801949314007655309298161336663119220160539691405685105625269837827553079827389586994211125685553460610192445849284826701993929080219971237501228567463653807656323173858537209106039631940688172963792432921323276599544628074760960907817241740774625213787436535211826431444720912096197558412128390846117637576108700266544840526682522543994456876900775971350188233212827364660341508605665550604064469825476302405544878834220620099780786528843675311868266424064270129663713448137405396362505827180529731033504758929211922321494171487806258593223766555921892093946707616155359983045110177560054273077614528507914801976827619163893827888626969328260550691078275702994284594934549969258869637019074535936920179988717850957012285434697249746728313815259584238241317239606527642171552326012826059055608952087910142445357480910370958548485789389243186836294956409315144773306423470381360300366905950139642255388146277621149048506403298692190984014242463475594376522821523578643284658103326223632669989119389534479333529361942970305982921599210021417917306234413998164495875320427114798080576055666232896913694671788422450148587056243287620344842711606325777872550907621570825560682312004637369956991051945488976670535182786166378548931286486007658787214979565902583089180085357161904596647352391522176508940230033356576157214464847362812224847549706635069441628023425519934319991076818702237466401574335934191562995626390804191561431964396235860479489571805689481518240434399692152552701043608869503172353855351571330810604633536532983570723794695611657644050253198379797874887867513407353945349333848795184864335171806232764783075080173399941720538403085611549953914138514800175031827259713713930488522703781352187919358393200588027821469594959706438736447721225694797142147307369306177762474886784247776475790133698380839169782292949633240868303908603066238548775604947395664952366455835249592553773495313330055922115404098080931800819131462281814182768368046044711214099450007203115028588996705201600805088782104004243397517798759980095740920241045591525186695396135980786439241883178200757819528746115856612819502210275594400080797849473555406344634953192654253251693115689113263249757834986278838724468274499028502247102166352469286143256572135385704662149941764289463569923119207074521257836874967433396378233841533696283924386353573954147056374263095981069769597266649722208876445175104975271407484244894812323390256072659423782321068944779534639536755363119992409279255475596033549351900800354320540557965362810475368804515962737674804078543385583752245423992549169756351678052730695789362711621163338955211609903937478748570928031194710409037957812167528561947161441061364645476521213948404484646924569512941978059103015683562198852816761669957934770683145242851923466962046869393063546035284387163545452249484984986492373869144120900343698325977860299031764062827026755376350806764613827858595020251942227277912700761831254593033115006440362342249769864254942895519673609865461526383236711546689490543677663593461401066238100337337753023937051310936258786311694319624161623566984085205602574279604176881039815688473388964186504729084882249895177212550905288415893047604035673741687441182087872262147737003691274087979648073448795144416700675435389231318455504275639087514715285014430743008637196237669635642920010434034078632286568678519208705223962080429984827764634669820495412269686687917521506792606465113478029735407618337280779523366488281853021838476297676991241304154911198846246539528597708694554582401462847884653205336175105423617579259003327617740824054269768914619234986460153752812049011541494981805677034158709010137253139866031763718038765953052012820396176961771699032576864364511181830537737496476329735812998245330914078643043070951893650872266973472158948805637916925228745499895834779614152951041152892026248145236834200469526412534645909357531305653045463277953486818905690689208492923342186595142049106802404965471588768543981817204195682524500196159337778529104615886201473367690810633003115676807939038099020555485903628858873698145187239143819677899082855113088045453772283360534038228143614599022727896042509644791364071653178370271230952938599857850717237332911432063015066296238455770532723356619588039699027918716638993076197238828254977001967640619314922675023344841421474057740884811504551889504697770850665990815280663566293914452654847940655727701614327738974202271993295071594813845802320688441650383303184465863749521353149695472267842425518683346227365837563740576134066724659996306686924196572804577806459071956894876877841759352895574054360446880992191325198717274541763290445705072845086080538700067205946025200099669616363905449723128625818718608544925913297500206659863441703553221211814300964174766544950283537280003950985979916539454445524901232715005913330529012150659016979401412494466521626204958738336278559625010319704281374985943570454189982153743495686046525956023597006529003620109930009615487530359730470815434051478018021342509692856578507975915038397795029416196298842318892888049467602291706044833529864803766903342406366983943079846487169372048353493174310763088341121500783809505943599928460823868528773200492959896656600308874836232991931970976717640468687744349716867529134190289810624880702816133070843508234943396428801717686510084429331824811641658713278470433539571791054891121989830784948766316047854604656162245348108259247173436016387612226556532663021928661480828207637579840992198375814183546342246386839692563575988171193753433825291963915573060803712107141389381044189163677158512853023104784180908448617484088262031614029599836508573202617035297146980311517380959439329173430351767259478560996895573305530757901810646923535758712658744054062824640518639064361650856496804022537289792720920890427105501890355469150450417590044337331884794810855650042912517635071802857589592007136803064287425568940831519422790074140901361938749611047082089614788414552586020389061079262157685399877056904884219716050849312270505520841441856750568879619514616855763757575939956946338739526458880925834478459980203356420919591751297963471300647099098019196668764326527121206830944633309490188790585008754834871122495501903398244061284308239831147510391529770357742816284375937400434131149698672834209858600490662707167397863971603116437759449910875229120656615954594411293358024396692770406393960013106876634328025318820887482370494036402272003846982015988362483416273105829277240909398538154428329365037660848511610902638301564565663805548042495470251254623262203594215638237172276988324877635781122207947758789600309192588665084431169299467093463320607734371338598466266497316658736074254448907653104584735463401471105693221043716931581609714349583784009080612147315597268651800624810053720990456417029217214679022972465578764209376003759455172105955747303528041933517252724086039415004114156395336280918092342243304691998269588422778796771951250578194456169949098110185131804996262830556190765148945426898877232298453917020848846644962516797270250808800403814580092305559923646148588670184497984369592019717836259406734937891896228180359446932256967882139695126664342817274681276762545838029243669088344212912025999094338018228936139768704194135277595513131237621097088242000958216479537324973961712125638928796890557742596737051558515156026888046727561533116867222957818839523091061366310654771266241977335008552526609198828428098840052958686508364200348289163097322969867630933685710251609955604708720586201448918881382356766509620565539842154568779643758445535860875410040582046844949144612916341578769324375738580180471922458471553683332239492085383712687660479091028335734963257643677597787471002547531021024553814687750318919852304170212253548021514252220069703171845747892292079399017296013691169989537802755284548979853281658213912486728625800377318653807967211681688569012297874023650338432323135681283264641316338583519817388082295796546540250007789278479955355974376603082684591818469875917310984862906057966549886466349593850692375672995190976117967555507134678441640688383205193445292513386595091849081614341610773220220090554566642444513003085612748599932988810108261257970877674555565645487358654214842405421098493383511587912760246200636415266252344402357429909011016439552460635897341009000217979243776740244210479500469308272138218262900791192625167735645289036305538841608343463548833189726450452279013424085145615914642805379051201187792762350966375715806193900459604228177319179567061545197079894121292617879947878816475271218295459728972955655414760323128731095793697209372890313541767597008264758654370849427989409146739097579587870785879119420484029144134164992958940772180324029162323353374874081427427358940707731825243284751774570276880368828523967993348937738027259392178923289182613048920121686765972362503976804537798492983828628725441542575911380096560781090857131039437428761890980443128644366727008800585829151758675063175340754255879795698311516349463973828334981775532554763121602702889129485869879881276695930314111918842980194561049980938040468184696225121920886347302714360140297959907491195397090936464366859723926381950836141508762410681764389391547546451697018491261145814463483487527803196629036975344919800392084110445877653566278945174012330115178000851737885029780560370699746973570237615213032047630091244606542392225201884899251836514404572243164113033979030116989876941389735698003938277608917526607719079419017081074186873778143888491491470193655263064809601314466468288910310016888103505103242716218691834748651594257848278706007884602920027618384044459400693984796944698724495296622226653532470929548724851488112483452093996067631392457149651655330498800946078106917587903369696546179211381597419500540412449091528359870590395734246870617351875761701984527017906464774653336793042116127815342913628806993331827347403381760616027604336643617218011407700826920130073254785797495436530826597744048654037403666812751072756623970269571105399295015975347364124036628733389896805647717463552521109743352705670299043582171484128388926528405581335949408668156522597692860957462526883430797020572694784217471099983722702723018654508785131318766547689816007042755852231007358653303838188377053633311711092180984596988590801486777823652509535209328383094519352241584392037108539964883847927878902111848291481162331789199538180688268742720193116215582884395369902501797572202562639242954618376646440440144961402191110801162209757840251226827617887634926882964401172903717257156401772275170736642797841634656788843572739050543995670967660344051117094626395513625193613541295071382346073116263063471283448848875956343421234814719041268737143710556490942158284797645619805475813951936308355128094277963269014100800662566750923262408054555455572690209193766457044771964469693317763308008943202286310172822117658036837641774887011227283940696495361982488927301916025775687514173953791952307441657376090260105179930901369606506289449395338585973099939289097998366149501140903374704731235629637336784076598835682779802412616519713607097474418399558203794470476037046128795152235277228997465964021473281648591912111856789096955551820720971541888396655144209985712485472324974736487444913411199907298603548362889561568633352711315452327980316772696922372698453380080340469368855931905959685193549293163866946221775511851210691823816335487439131766638376785693933861557018139244941004864741344316949039975860009666001873869874664101933383331532710209928610638559319543988921215877981669410368053541608247436259044315027685339199472600122057487534421544771789474221533261503839366537575759773474952172626308855092749285386718066791840027883501503198346736052939367573490926219508341819204744458424754269795512558259100272996145463524626383863737819726272197040084866052759188208726982224214470303841439808594376672965254719190536285203500114438341126848022832803294347583748736200841877033860467520960635992523663937406963449750363260579610477017022256208696411898550182925663709877826762024683090321196979465487608474246560092981261492257025531258700114883813200326153887859533624975086339038285124997345632256505723689323515807526281796675347044255049011969095861201468277060803704738662191679030507196040458524493190303836690230508822677034833486777830223862070892477903290127936055692446246845983431652280840134328819012698892812519443992817953930352747670567929993897305764896311384039562587355947186110598135981467389048723451692309389014351108749643386343834987362547055442356458588627025915222297467366962525312344794531949542059998911232634713790996680845521550155703465357221581170519668146681782835073842978348984492810525819623655315320380292063721385827844318542943606427324755266278661512323058598932856940871614247406279145945040826567327774953777856976884181041003663192061187205733610718151660224126778532062510764831189718404681340385381335598326875285480082183528463659118314594284751105058659694979186151883853116547148064857155299488025832770387840928762341810959145480404860579793305656854979174338339549030553495116117260346730332150067783607798892824842677978795170631908376831994291485610968959874188002606367579636140085307348044128211769348261952686105350924119594175899139582413067370595133274678340889154998905466913908622410633844237656514137466928266979791150556308755796525183322013689953712789561648496821128197097400290423856343181407794640398824213648670893939145053537500332655089080337728813087337381311959802876705435626346001619768244483324411909028019971195965636873223501184187007200429683063978220552497558780761211165499375970071474877529227428663005045752158549095872405184861959914960064807836762228348214613088162776273232731963174992737328760500779179678600400470097783378180354822638844780099180481872261099456709927448352255271337294326819198249085622138979250471075552453483902504976020879407015563590425785565195653986932893658024926844567623344313624784894270173664029096646002920052834629238417524593497473037331156828650118060873578384164386178272078094598457053138528085362192173345221492710886631394870865756351394834121117092372705453456304422135394504765110221371249776533290124466506225055603001528639267525248420866018917051829825425954728041602759913312382404313969341379471781575942617942748326300805530486954448521871800147602526448037031144898995917243814326978360931327499644215089493774020934434878812317331175955779386379092742223078565322853582716743663731043745437096513737215508203847566298920016408736971112575071785887115055225956691722253439712926919746237450049113158199011904866331898084445968321404076649352120895385404504125509365969193356234798508086052900899604076587107327995537791179557648462078059895643497191237470662806370955707930158248875544586295061717082839280946340238066706642517558360455198444262657710533984519469920736056913874776482969380105754446532091723396995644065809626548511549823368049568793051517706646286431459373443943185548471325307518092078026355575855304141351406429560214525501543903382286525795613656214916081562980228383153742593456205272847514495988669029684546467933217918525623258888381379336680593984753637891860067435133798183044429098921384017900220472049816933711501874043892077812210826935231561824429156554625124989835857872718337529577662440227006523997398227178089333859138214573918987238889783093060309225169150674380812540182932911026814809533282258252907023782756737553281787901130896772478602027749089462360605643588855571883928045261788944056020223832546955868171636616006105776863830004803030867538240981878194005810433192965854629101218355453050115675499672388861599275294373417186130154778528825081222534247356465501432170618058272426815787395532290038641734740315752914870358487578216637032211992651009027617661118437123471414789672032958247691181711943771319895838283277985145654168533554002340142710423940893045685062247390680594171234034294381814057526065210275674202224730594206146406547782627804979868523093423466453000673172028109768874926694856096925058317366999617186208451351901226113810001138473421515403150621357129545051135497698507300591819593884765786054890493662953277842807873243136593765810995246822850403324181493688083904671900649245591726346197608170886661465623445901309856310628346908536697169496458070606901042480678281451909959181119197847310409837098575878298245582354479955846344603272275483963939951796239357309313577150572842921231586813824144261161688021018858680904267782885605983512296988214071684626290184965900469774515453889526711995577590961078393540018679818561487251455887831510120123891057619846743430994873670173336392323164054399782410929542918242286442825465039486370356663173180004867150950250167667872480462743991098465208312227311925976426561151299932981995579826323352533709774767643892792478607820282163002393801236707399290201938267409460042647748828826924610884654114544500280375038459002922403302660844287849324527971361416994374222556409035244269879674400878418770733965389311833257973917823179623732461074302066473261335412236857749922076037431937971920024591626043972563531310527270553667343250016412385442457038246820149091671144520779382551764396915399080917921256129249586286839492256321685514664772979759694980072107186962467884060528485265832273604903566736228611727648153973347095886827301644038258359319784336737670937687569626448621353569667383405945770580007175573705801009045846682195491558665944366751501393485574080485547941617474126658566438301617087506131446524609224133656430766383868731592457028671418460352139388318889150289307521125019204336744770377800150747110054320547214018283949518203194308749308372432952345616479490661968490907818497375626762864713792229151435271583279571943089406212903566050405987262567421201854703055685310655045006911161383202819334865698485771885075980110227161511450450048646150928446734508207239683972702662337185010972079256200234803607901508329711526572778607665474330389245087718189989696228907725257151663491896726957202310844702903850963761134132923072350125643188709608064774847555500051510334901797505553700394789881413433922372602850246245123820000299542113368960167400698528348412137811286515646581867808308904966447089386267416432083198633754653743598061233086319842909838820233447360568193283078361060633464014888458264776844056006232276438578933939400139755259411919553293045303616065011726430495318694100020702990551937197775407385469660912952368031425546179011584499229168354805839948204365153216937475017369010642309938628273737590663707311019557173388098707768408582281642782944749304973009417193256139977850609876531090382856438042436152122027802029566598126729139240932255595089742695252887861954559651933505923456332594227950860691005985903361599852176177059226974710662920736464992763457851019848692971215298556123390971166763029394208499743862788009131526620162831428310205935839622412007615616454308630032724461916985381459778616316607691331275563338872075034267472208177352608354696977979630286319301336023339522039747493717076499628897838239582326617550420020770997487114122835250252037533600932739457889199772079787164068498119577186398786071248723526248725910413341552153090525158910284699154713825103456274901702026251087785017360648008246844565686676240216380126698218453131386101916355980616875008853036214713795322844485811588966085721636779629305819696080215818473989335155557795144574605595400049218324513155960648744516846645945918735906096827074371374341041240080020100627227099873088228304125960132911211917865204515352560861795453809660902666166066250335078795298491962188724540379108591997152780267925037738355693032560885028062962974054648077443236917368231282805006078580091909737163615971226231559989018502640172792451950265916010746251353231206784849796513200434888658191609221363906429143846462509831979778910214418493614184052876640643829563685210553067380160269765054825605445005826335407509420915290276565940822446022942601263716449173844314402177084773533711858867597168306388290620514314260539791031061841728746818953401373016140693484728104399991970000443397105464388512589752789008547432830707176570100612689999874304912436798131030100924342319018136954510848001518599887179721222088434259305209884603040006088202296060606818440732850837347658843378532314351331073256768471722224480990562465441530229205554536253078788243609085260476200959231176192575059022888435288531755373260256485218722433678830320557720066909006657196496182921829126937916202129803191617078654510051351723782000979300640020946701298335925990427101793432909498999264877366867213751559669284966825352999136560367369843766151784888464897781058385719046608639686410166993426632529701568144079748405800723967259244312125485715654900679785701803490683190918422844308357656931915038284511934493201795528389449660965272660297134174763326527386227366185749694360588872839479494689251157133522576709146557071604864469863591152572453584583038681822073544834127785003476236375125506973581866108892154396596512239732146277244253250568836823110555383049228927318235855368968081825124503035052532818448332914044860409527888830863046334876146270900562765807056994417515133768989108092543424994425451695886444937521699136675490320519749538482538486283033292493997697654465137955854869254596622653483916246089264906383254762203496251424204692193918980833843564369004446373001699281661505849692282958670800048956331844055728325732614284075613552836446316626187186263939701069021815799434087236551907173309593604578522011369215778238755068668513696172465776684994704789936704189554622462503387154522190076656077206612687140206242873661899293850001479438127970172169994260593705911349674671693308827862699937571916626734678801773161600000283823546432440891015431237737585417490060331217067012370768534429569869596144523765629201246779730057171039216884825648971371123882358093060074601333805008677333825888466418219996547010770467648720838037872047547084333409538531597778720370445856129011532860213168069584330891976623241897540783840775843641848211664250311143190412397896351579183523380667034365306153821147379551646061692070777278019017659648514586777792989275053772523679102222248689165082972953843060152284688596600002100037293212317579115372548973907624657567068033453090043806819494676048858884415664298501337232027679316452283218330680658757704114972967420919312439103164202891564010494399379907474079401206884034380369602152169315083648459027856707629356762891356915044519262540183795864418999412205728556480730907287000626423613316998344502290700438972086176329800978754432548458262610025467172237602836845887508195367890457581629676687601393604991212022820150194989927846673515770990184401187004844710118639439795220660871374355191509891271269415138494308024885124654580942105162866300537859098359802182695974498017067321561287602322835096753475523067645588981389271233899337723330833714769306122654180304020447993875573195844659046205426599413416650892612048135744700256935341047653141696154794001517879966249113306905083690643951379055406256296145058557490718829189832866101051351340059003839050385576825735750794004362425096696175439737328745780038290060989360072787795355298298992841061746837319680319296237018133549289331592981503753629528475538995848699693359590795757457514277585085659786494837097355332523089261641467466313627808456257607778368983946460410526015913295633591767647660284768529109715658362405109287407694098013095302845275237696236577753290678850249816873538265696195506290916947450249177374870631462093589811678138608891625028777355139167300526164418147394635368450016959304887806136147704961916575462022668180976514820079989080004123091732489928168881436323341567579227437424278002249141382470518813038766472340562324028034929446674665660121259606332166543804002193362851446972656325207895934219020653170837103884431769590813133509550266807499669377601179534391313444961927193251311772098879456251263114768456366571229326603985517169941801088227518337836759909353296183855499700038861097944370556978850608089622671318291686895040565575758474123043659804178152388596092194022760511288031830005445221136463812267082472090357130827758143992670443281959318298280671350835507621873357747595344509622025818799743075774288769058124261225291627658998314183497358065807348705651830913832818098049251529857729709162926362049131287439133914414744701689025418802690961870153245275834274539416471250200424913924370446819938561201120275264695181385757777463947223447683002628092997312978270749132930357979264597128269959897392953661564073711399763845411535159424395983077598570863050601250293652846329185287186396761834463041346114122659500935876465326828929573033392071486469921587523189507630488014446076180631093345954242434550462124527942996333406640680438638803838540687805123790969624920189216665955435692845272232008415775985213354573387147254454591033064309042743336796850186218750070332608231959163904469230008485543009264635825120810103594439556350727100755553469090125780051500008832260997862038719049349583646725203855777384027321382630066332152188915559568834843905148306715179176856791116331379473039389054407431506970654086009732247110848116184494153491830335344736768405681677046031422921635315934393195612425745716743341472230729767247316660495089628307214113010434861040788278538903460335085980464292966048281913070115273651864547751578353347776014004489373043762087522494861867856310436793663198065410204061491494741206472845655430751318528043971640513653774853024503056187813208506469266548069846424317887218179677594361793669475888890148211830803050896079617764870630437618773339951193310774510935262493559645748485848369369355961283015746164053348098387871680054044942918403795418366215415724817795198557390205596183406710959951049594929941220610997425472891799309086198630039913307243289802285122930468807313259382050401620859938643900425680897838741361998309721086154212124353597855133309171524989017851632423997618041447911747655726361658954306546763093972334682306078212670161113696609471117612138517546007944056462068459069257549919169518515071872384882442331303395884328108030836225176794442555314949780650771790017891012616415869656913935119861718069042303110258781564107989551572935354352423096945164882126580163639014712069774528303213111732366864526431778653364884606429938612037708222594284012391994309464495200514032658142230058467542636212531328382238716379615376393077036931289975403166291263837249301489338097998087916039251930692138278006572026929961028686684477616444995653047526348793205769932722993741690781508077622355926333754871059171778160977655468371124754366503174450739410385763359281073826287418750770569229279351137509472667815037084698774741524866652399815420103472088156215773205123021033504832664085557732697617074892880156263996659749820387818187370978782323580119441661260405815963769082785785840293617767418211260167924370635778165523332672601596568822371188022801964959976812386385402662630312852648024755234670595624406459402743281998598250680024043203543816371560745339894539690670283913740422473303669715376270925196475957808544043769504691613907093652148051234242180554462790282402046844956002443569380957443818124240264782434580755706526945833319327120199982430884361540195543857596559549607188733724027675701753073107012754174708870837959214252974959972522035572876315842416729581481444757565658508886383320861929943556823433280954237997992282148823980241206769984764398058419794442341443372580674239416484558364715899827012710527389848197916006820014455310275515433993493166657597006317901278817719069300540836182598274468311765525663747919490234719535124788382007168665863832449984373342082055770102811348270902730674280122489267873782640868834475695015034698942157929531242697965452830178124733784952869807447042877885714249308743053858995543101972178154083049878730636657840017298837440844834741353534051840876126405508986572539766577907841310523041385794828951150682306292894081336336642730847690879630480536369290003102047402243061217324148829796932196917416590041534139204154607830715739904474799809676848753111707373975485252816756681066443430886791342572132871413936948112255993715283750699295325934119825617635888327929989140210022208604454762984204325993473487018882693221681140382716999200460465802716235577527794642068480194679576919398753311984015985943171479272764713593161813370119113814093229698588395603040026805380362635430301405220282636763094044702078663900666119204291167607044514850260501232432134055129075126015918722262690612814624675243692192679997705948567908247808599756882347378695910033498756733904933925446520691844941167419557253786228558589155339904680991530557002651995234761698513890409013096335586352383385694627444789545113071692135547846358071211065316000745952454596985031866454044562939924108769726790471860155563796219915010006077967143477349912543936191372299815729668070065363647605005222034557035429802230316674477425825936681106479527784132090757018341829865286867332853393857535207355395143379720448196204213286936788835533628198962104050809485972826587570515020598874453366846754478373086590763893229427056406159786535412407201768994065801137680590537183678679222530065614424534440096061257736850644656392453232829867974716067968012593958372843077980308550273063492538573281259983617853859801089301923306068116413644151473522016849541065690260302415019153900329017547018322842855466301016495597032625862484690785110525769897322746408512624741936177308500639612239982407879555856226914991141565064524174491408193029246543545871823596432310756914868526875311510537539227524853494115997754136752730963002106185224443659269102065206810253752485611660315980686946967583325222372332239173411123712412673531282531953592760656815227951624572711718097586292877053848704712733958520925347815879533418276419139429060514585320607538276267081800209757946227887891751560896517976490644718532502267296021592355124730491335205358239943636628533281300819746535178764793367687817527030455805289368838595017705418609794667381622733345494491490344782807443632043235136087037934660761199138499211857373687629039931561220617530582794917857312806299180623861572957572592399680275465111609675329277798354118897310108292019379703356359270526530602811239885506148900934542861867866584594104565505476776698235726429579191413746587182218711243207416149533794427286898398121129827763153791946784857350716588003025838974745793415029720625163373394102504814592868720019540356215177680166263960645617777324077321694479888216564021099589725391005538034706538103212114235571211097997924082120744879398845279835320559638783481794788707261306655201669700602619228923482502267263899026167783706248652273308647773138584314430860781537024945690315152999723774671538881800944676092658140872742306869140343277085569640059623901776347359049352264094571887737577545940886616083437715496918540643780267546081140002472767436779014314598372924716367672323257029118739969602632087678718326588414507110501971142035357793691210102741012982536290063763269171524828786150738923435013764858794721523338916833850250215290024669877281034984089033941098742079928961525810172312711372839433763855333163201046504768677868693306141113815398834766945626274232271342109583887464614025042455503860935047649399192700852940484759785771725574344528305136987201079303430858152056348697136307442485041611672795258989000620403099150234635917887345116953693818776549998871690589317662667088282780736477414786791819466236679667605588367462607799506499466316626227935382721498372851107615260679137215017231676857995319203341552665259057487584450269519432987455609273602573992525404570293460711702244058383017768428467683604652715765667720792743603222521660578209340696511369161779402017403230013653267656965722360272520719845213236825965988084901760977161573513181074107295023616007733997979223095397166045081736125669917138593666686614593520496457659333722646926566566751488990807583825372477073473433082565583864160736500591305721447988292121503670727865750448271116396754469528596250265233868925880220773109663887918052963848114423410212561884014945329623947166406764794953336703328136064509843775924213968548427078000377552019086536702654022646597351823599520957393230176544088001517101605719043969464508146820240856905277767936683955810915560569244859732777819363747182842805716652660804390926728041879652998441739982040251632246081278562058352076007261865201605621513885107534694621461704559941390384389033123092420689046609577648448007005301880060321873653559731711753716730440832173963809546587943870149819704614811017443935608679925921023059195637728533417138299333568111787476836236382267161865841709279418455776521258466167446617920710149123342935409832775793619135209050226213097040050692411553955875712669976350234978498363510063642996774516497427590426674933962551366858731044663837781291271560445759765902415609956930810372151783807865909398879864120592899106995629438412293563284575042850662858444486896492686532206121882076698482766446154687934108625842225098080435019749685210528494830190043741472725784741298550953405813131169602661320794402790346968837012892068925616900671613549435294908367400905511954162373286485441647290381915443635083656048261736742051049082232732846814048283819318509285375581035085128951714744399319941067412067958986588019850863253509854312111321721810959876230663564396268643951546153359603030586868133131781068836258262351097318648922897303219798007424362700255308234645580175130944312301163806063153927562390280603489103217577339645948334171253360046954994872467758184738927894879199960208035945293632162252550822672313598389332346913555260974691245708669244510430296005220848849853449243619508415666394218019152008483020122104367494269419052018395035400068561716226185921184007777225617777881117572562488280135622433226366467840868005232744147506985933354083397333329538287918956164692543573542896820339886361286254757942217507929420921926616134626205049009943139904928796150262224206395132799628967119089242517686367948303105047743210109271370985042525134394157850869241186158019544989078605198253613795420356196902540986142745842927573207158687699612039197932106081195475972687898714589168148519959669247993248839801483790878234041265635880215376871115748832459573006602818590830043302999939470271562938831096457183357675783126072260358512079341951723252292444146836008513706705207872508071305068020241672729078306771102640326665585782904603696266211836045582365762964961312400428477619773561711632958486119818946975416516353573953189879246734564450063531526645654291973352394990792277359443929591599812355270612895359275308526176153025617963508279719092568922652370486653133179037985097748846257577598513374658886898243666997368608140730041356473529252485253811129873835722702909666266832075308891231757313043317473848984905686864533272629329869658666222611903883580652855122093292282148573472780841360237924172323102583061686303313187444171291759097009495997195955664872841782710012062315588722862634659655630646603964731646051333851321637422741296071375575825925751879704076217512124074747171972598352332863867839513524513624608303041987654236734379214388413960388842085672997879312059478332168821427354763701958093316358011183823205130911234162051095988842254725649317207854125779512804956197950417540169206382407927458853297914666299742050376456276666051773864050099405883639219064642510276297730355437799180799878869186046637265585798242825338545358714017969547783954343982750759270455665231259914460537456260566071273852888179005541540805586067363798070968159133738259974487739271647167447281846555485747786263425510055734097784934974179271194315370158361166415306137103193814142764823313575865670151557549732287046626157904606581093648880728537918666640988434102003502260024893610500986201852744166709559370271564722775079957089418813728829945577586982653560992728113962100166282350267992475491158637100705646688374410272128902712810926931149171129077357197301577282810071512512803438225460006880248069936739562764618793008022027472750729096707229704857470203398238246135560164660595104478230113612038331155694687970786283605362489530433109366969557487808811184438292152100167391190368137185704520853605538782575579475804761049637787575341538150697105152435245180221169446918051590764627709350228284973592329481085730026386482073328379474800851383266254080051515597819472545054908092786898195844899864157924099290726632526341399002688775343399469410562044176731444779102992246637539586275922943814107862869346932638922786402261809809769209249048941281230983445099106911761121877764710460731157456228606561984521370956599574245431470531598295519367754811594654817532629373235190639753789244830612893128862673728130048322404870778070833648652683518553557935696175920496727183680011430724801916575263454004129103231428598711579446124171774161120164490865288463609433284084418502926172836082516922720551256300596382520687871974763352245412915660975292700382484648682154324940061479453594738050164910483873548952280234566027467454812514522859220320741610730752733884895119106978435988810574283059962528205972602008837966567652375580537436347096834586319748051303564925303223466505042204438631680998864627497504183588159248119224296209527689337429335027303599163960012586220741809190036081778749849579790467982430913228490684015870616867998280292769684359454193816156691540443012586185992200579570618954600417087397301137758305114969560819311179374508649377533985745357180539601414202995364548293256746106338772139763095729525962332664148771082944274767761400413431425597294403313986647606763243821718320465249740942903116914693412594126016431884023343780294391445782747420539596537800528532008080646407017839666580540999933038295394776760660836427439373239702474689562273016031217411849413206967480931083318141804824673845146696304204933113887470613651742401813949282034734666468827824832439112708287796762853316413898747527745422297966797216950560433523629988871881330442414914846273135062876021144309965362983076004260503614839934186549221350259167437648364944351473679685443272718352390043323675604468735526272455300022905144816967131966990709064573467821445325366085941732042887747476304994008696592749819860202691604251782377448750403847119832679310555852055746442225887197741147379800849512463441189492095712211387603068867633719947845984797305043405954971915598272234389914693904879552941763618714450902664611205821084677732261053743191752660280262671193887803470121083498703521864578964075741702829368400827091160474453894779960935972656683721130715308638115428793717947554096513864383600014858558739738507801729663572167519666999823951780779765356925346867926300349803879840800200612441767543039184583614792518857149730860387287867173728593054304960944455112467928966105073729076065717290597341307943599900516568339580006836915693590935524191778449321738177846290101566747285958975959294597069828898329397638479497776406184119193183725555784082296765051840632941974211652688354012148842749787518468370109653843213364160455355395471432504306837320658863620241915666469570581055106703450250416073161233641319163340726356976666997881032214834661435009881196951038355996339110559809107175510748036109756954101719398634725963319366295362577012440924045341987961079932417741896297886420727833765343020089061283158904825790966505777411693657220532189032399190585960707453627119885637579154011385678677743433407423754878760540399300219354805719084705102255734578207528973175192981329326855462406406495427456639954660806763826829460483350580824517532354745385939607625593787495036457478618794252483191342650577066461479830003660317595155110705806651976472329406163116341407978498886662276765034152092139120226798611262804320375171636453239112049111139554197878444498026633777741322187693687663208853122589327682162356504840357540197602729803768485804517395800397769733347201759674191858036953833503627063390611154585532065301030026489307339475846959267964440571995843325854822175293218468486167098087003620735931234153861151508684752481075883680384824558051550249708127444677139180915399674074461508847598685223341473919743598931731888360588956075652843864492315654682696225128666187039479760855348071567992218932718585402448306709174962018630536284964097657446190547643512677947840171624283469627706891770117583037361274547123582022921149037053719300798155825416157443618413974840760277056125769160439959576553352858630118714759820341071263161652794584745739108656492497555517262194523835884642497841280908393803654059407022523648478567617007567309443602817948870808516971177378152522572366657213786237306688243509605399455332454047464122913638137212594842183224957183786654666361964567746287792804717441046086234474519157722475724289484360117965844251973201105056929391445867519285417800645197752021016170340862989764556583607591324636792431592905453412492014531763318325336265465043658725504686208773081057784936139366512722308447378060023220414023560828222528174935089243447768146947124230952353240072182127079872195493273120987059853618361376543602009837341985690370863803085992315936779613856250781222591739225828007033183072216079432415225334142431327010113974256159955481422450002257170571175619698476132755553956687897892224477194166033075667414150703908447262293979131759059086772450853309522998262870969920375276399574025535031876530458565701748635681897560837118340507096054466329315827521771441640938955021066918311792019945269840678987712396067158060968141834662956591755096370747851619621940350300526340242320648707806693534716464422067380946246479983371742443458490384498979000952814418997515839596605040950200040201310311792439086734351726528626800879097563057967727302045257056524284691779487173887633070763249183966884770031708975294961394346639747932703722615434719526192989798034304848691373591989395180952811712009896220691484683913201173996294845878503310570516784649441846454663033228734686135559259958909067515694005119997909702853008407068879804998270041820210138205758174194451757230617632218025249658073115170860591979885215508939116873179535719745314516049100831078001447255379016091631391211905281424710826800858299624607752446404794061323295448981175926710524400838604142464465679401389932317009873098256466158119658579659533121339518562395543335261201916170267704676596271463233959819080737876147807715736462232843223565893395660269197405828309821027986457578055345987928164366111974738886197751278363919777804859602209966387339358345307665350654797704479758778878483370958100469545142731022762968086631583872856829368656665832304757945295168628391581639840055833759232504112930943591446630308042821395384684937037243603367319696739816864554005729633634179534087144115539733233613993724132827514532649079157354408546766253742414646324649441239895976821027638218820349680350566666040161764039274406136464656277560054513575269352014086062327931045316982752184890831596600375759188783561786140510163560310564350329328992867443146783426521317203594769602444726300184976251021353131501198076411512430216926386831584582440819554070723545119646640218970562194286373985277031501660605013332295207431816000449642704583272089913726353935037847175720562707320391511730786443912739436762572955895204703057885174759422035944242120242052256993853810349870743670521280110132833879476155432052326496386536908492781929353147455406559736670189922797356879055724429902214752003565819678144067298091959945822950680621831906421222877051307302951166091551180456176356413874514061224978656962973600651080912273516998472358385965487106172297417393118241953897179799081627507994763598489995427865692919573349069889007172083974256837090032474399286110840750290242519308590405096257718895375914210234128654432591247101991186778905496773743932573528659900436809166188194627159629093275494561279741258060520151209755976924955882972274406238555096828859626877524568951444526497999681738950971642127442670639964757594306213526394542341562548117693956668242458572254292801895189982601308185547005641710273342695613294568501213244583967566773200763679565469912162755794876286367349454341656345438944369835001638481048887227867604676810055013889477201679639155492136913404482735235733523980588654656206757516965749826200924633833391425613409913493029471905233980198450449519924881403432292664120484610054329033259317690108452105207300353406498236082399341499814592155598215715846372115263224128633751093496580374807526916077683423931867524937131222968732444883813649256529621881438653184404767493759542426497882752602276713135361618970025676372668738639129011002260601339615355999274966141202173152687177282461925517466546141383197252324920355097726152168481466377226295637532367253016633150307027553970765361902034447782903736527486453966339158174487757998180487433991054099427388625014145573312302969006737203998010234875701970801453713475648747904696274507086333110233345427746078884757729909511591601599662651434686780518773251050510620048323571570467116114841667590703710912759495983546734275023459626164668295639590049077922077075650952279573863473519054994559384583639364356766465799396011696621580680223459647499157531143286145802869977600687244822775869649357661231947381776428316624933531456482413390193566255273440982546761434616817148820196703750133863889099268034593419654523056739228686235801958130443348451794952009309127204991774772797537569246212904588557417578174915569640845331981232720236057635146241126367986842768536213475767188318714086503025491514832239046201866592982394310456958079508880604079634254616006071106659945656972420210348080503029218343583444893980878561193745340134149046556196631206925962151596526939924585072906780617472482087005173743051629291349072836138723411122782027438598558017622380032132154139449176657396691366825347280336521022839108008289359889885563572113731910350830458076845507443954927522567966805856449123439561234328161431549133324128202485594114207924776268057750056036906795315753774148012960258802851328086622967645074602064115353594731007470553523830834922861384141044335797456989257019496779611269704856587719576632284252965529775157582432722644227321543082235402798755619357979304761525904576254780057225591444921660970299978437188134527374901271965294657065375254713304061788145124310679276964625725566660962594922420515851177817926445807748433623479936732970037865801038285654910591309292813364823085696866250955194887110755683650164748929333509197136657394543276203276772258315537606427580195640562547826629564961878973346214135221554763014317595411300301899617939169531054124821383999406578932366224451808757262590847899092152406721855395627207967937101071165963519138048359155801799705603444720143325033689299856459329836810549864997691878716181078425804799149579046123746666291411509294430828324206846575582332524446087163974496029679666950704777505478588289413509896962909242240995124540135339943189225178665466449211322691421936768656983734312402275721027349964752049124735369166699526934886587095022925510914915565141720761129954025460569084672577987218528247024735308221944238769273920343405300775508697389780068557502239803953340743936153364711373991225056107174430287169096042347771109050516464385840489723371347004759093803353136352079738461396987878083176077546041874711153729679970530695744081875433733381020069084963557730394021388149981283528623009537284764212569800649072823531537226178306819809294901601342967391208125499733671766017377102025284434520203862394607553869408784042009866562445491946476665308819654570798571345236365138380548203879971391913559185048984693653295049145684711973399380553295843726852937716469660978440057551436162761750970810975754190910760720270078298693408739277977960325877374153515436883400498019275165916253383040483091809592682935873917817743913170274652464652762846285674995191435091844262561033490679289674322051058840538867994125137202074863433095037170937340176179533056639086464731447296840795112546854381374870436632327599815779387557490110150768373887382530080112975376580829813993986584704027372967676133382979639645127914199130469055840194863150801146634957432670199120517120977678720797936669734992287149751738471718058972051571156994818253701288644366328411376212208147466216525879476907300987168660858281458662442682951363208609915901294531587734516010218338984525856713937418942156858206695304847826256984514658246268626434672799547123437561667094314187987394809180499868144402344183494108726320322301803802790557270531280464267686692056163037728393643487653888382389841733377001780952291349045013569341174327362285839815247838022231938554753973268794979174391970464330133065735660825361217970477836260928706113823914990684319451461094888563108141006176594234861374903551248235270986919436553132286118904088494979649669942426112492560790753570035892465502795313995737274928433535951625271856774808238973242277666727763482568251618810176465062075103115926769924371958286605462444415880964943390971588162593408834317490913168134192894497598989255371097312737972514540026667059931440453790105026934909476838854809740383290045654116889502845290452823512610794611735426288437545774470496496670687296175773222958596121900215566765996920190384438521513243660872650453091596975727420949345664309539860558758134999935232117035618902555830972473959868205170100287891030916583896609605944368010190931244210194897069549111007139502132275332399666668181973744982533501322506048237945759912371832793767772730529732921127989742983715884002812182631123123641835162106302027868145904226790340690580064261870653554420628976990368285091007864076870513557672051313097917710260629516266395729734955462189579435978785122567085379011503259134349726094919219768004954624467321957819880546467140098532022276528924116479166184335702418186066453223379173593311442027253101011567281153283613686676674477211466825659395314167761328174594998009722926527353292699251812539374172719685254244601263380181453392006249960100343397749347848179136650689790157138876494013035949356188454739599904285670281133042255813101034473015995838444150695387960687785477788034866707371420276225212185183836081924664437808014056952646287039456782104597098445327735938217765654157060476741843438347578105580447359585996403706228038755572568198624175399624472749306739378321500620723390688509880714373594920481597850315915545881922372671840886381600567825029822736537208502036447072553396591544357392490358481069419593433779656612819905910718270482180009748243845661019311577128242409301688295124579906855557180543708187399979842741037679532992427159589274564300123780662937419309350920440902890111913626962148293706812124143728999596006151833803013622236619909604466935264268548204290401965694491157116209990422695108345840877165340948207158523100667285427193013009257895766043951108734820778442237661770665794409982424271266697576460232628797562900391242714761922873405647805707667691105916327119016323905148872269894832463225232608768076435074308882809890526048572487984918195012983271646271699511345618382436006172606613175022119861405498823939333613676064211832650534745873215719930838538089876192050107436866286821437814110379002857162096352372767713852851670220774145514262239255721105056465406192251420114510621532969019700129287765682019701241083341220464922617074795808081931531776236467656942983047994096141827808576588155769402713298601097568413669896508527380899932165014175434343523794575364614351113054470200913885477453283955080189725265331118620111679960753873998219699101646525902008904765121268526931027180295564102612635036364033581163967494357635133194525007076316990836230685299585050208068703208869666296543441768932390261972612048291222639156646600533305831069038095440768303318303398583189824755697052313566909967610553782922302362506672807882535015529773149547612520601864276959790751168414504828710186185818025841710584231349628604610374521354546981816249482020376940757363141789291497816738353727522644572716497617958279468806187482029951109479723193804042501558597395859847559038017118822350526709784698284296863315528130923137039832339666580623731400703964232962010104170855117678400162252343487516681495715253590439934986134636156267188665913585868689195041783859423330189715218130606917098026831886059671678252606383231859990877904659731488226129124836114056885841561797242230591863827103162141923119531267457335558291387250273866509248438234031059712781794278266257517326978117435584892217215564243371752219295348575734236528609145855600140466605044780676531021740879485899020987186868547428137135731778425420349118727220244327531999636784121741849767749103408183900060515600176804287596131650617371159084450739436567644311440082631568413836416930514745198808199973685338525263531824808362614442767295244574111254022800929192028703936723805245853529136985380794406233051173782375505262638438456922741334705440320366004364351244834624695199499877433748345678817427869985304711931001772473306611230679650588127153206495856893175223420085699013345982079599529255215203966689106505812758843645018893557575012468727574156607158211214140755769205913840869341105209103286696673301186788415518034450058680034219028064264961981768579283865603897424129775026758384431726490785560954282009001693064450250732184630029508725817073293643422342156553560254224405880734624390055384133974383488424282869017819994932595308957937195203108055778174889205037594374295401559347151505844947924312470631085935971019341987369619952387317997243502162016137379858901188558135705525441212919996053835809355418442546941321779964768900052817665074831079476891966397100089018304109741914357750058916581861994281738274134849442071424812780562503757381062477906928990615408202176196250509142750888024477394044918805691554621264662720734567477942367157617425929113751683127287425625079883975012728058563028422175047966957633180859814235859008568516032854377889780912726477058152712414819382673091205699926646656103357019282850372814776558858383562030190263699341621830561905837101161532421457603240881706383708766544197031209069693029136645843532941704592997903439955226751565375792372661259252273686442290957265373490249827471714557670921119304003358745616182616549142036860835041853420801526328133058575683934457918279638355420915183177760301915945773805642914355329417952760395739039584164800189349430215942686369562322602023751722140148626368477629871520557563808679552253971734265109378979336746803670834618589290425392419034129103754522112898037980080481765213631807984182865269302129083819915541945039614804191237740256267132713948390219190348016135765608682049749382494709232953451229872316283962934754579927047809936484051951300825473931969419356866449026792753250182376567710740790780288473968895152806148806423024824212593511004738187585568248185670109472651165396648334750736524081962930323613514090434679045134050771646706803357175404051626327292413195253155160691211821810937103030388184368749747421669986081983293384090599962034432149994333228928431128003395373357669992905053518812977065576332573643177149827137232455799006142699203488653323794003764853526424218061850059344943563320178032808298361418665627849793990380079414077645265203481523705010677158660013182390965744794402306041734515265550012702238299006985058510153860808002292541641539666056530377338824912162277345913293443472015975991222226528841740486323341698053459663276457023245126605879948526652786386499223448139524330001011154671986584826133233883691673984220659877997999229470277071920363810452865439754531992882866703987165470900583576229847381842693436217740163621868503296979186870912779832825358102918991763643275689785800428120450747769275906811180205963567120511698492153597726192868926629787603014939744754485074108128497421452627719876656099431172231879840595526382962378282292855660223252972437370315593452723347728215000672532995327741000453889618548869195495922537002108359557535541760532358122348959500191394595007142738050174769360608871492751733049142672519296318899780016765156706975517755942995023128931488395597084250780781995592227955176199581231394564950288141391305406015548746297715628930573206673994384894509824074132833501455814785936395140522541636613916098440705682285918133042404903010161900816211440705673437513796567395264153724386135961766507376262981699110898447360495177694735749174381825019744949064179373551397823075778829450487448150646476470473477628882904605297476591764195273519590787987209757693561811151728842538632988273208905695451263072364007230437460416631388358159989116271699069854810141791668857170457740516009584923162693126754531510227343059601703513872329851189297074253474711853854200457398885904439058482949245041615598418032969331592108486746988443743391026389838207254574874451888289379472031294411782851950350680665379432312375326443917642032839536614194807558456623962335168340823675230664197013485193610592202232706866292216137574106318333015387845614081698544623384880173813746360877212637104660536265793982439532160224904203049554025164116377204461815919556366525129652762753779347660872147615740698241864031403695836159424710754877807077899257144420918400371676500777169082480057591555606097957841519185940010990052912339597679168831479503423681134131752868348646488388171518267317259552208694776842739232855794298858193238076582413004548052454345361158339993079129672561831055337860492651597403876379616056493670758832943306115388446360166468509685453595548896426454009137332870125319201367874404451926248707326648810337012040496246788058410202052546639930321196902347336328599131797864802278453191868904640852803135779161903994985070403192915724809439522982720763801095645408638252798974218092464498696731494377536385506401151515138184127399400181268741221808326939444602519894095228159135840137222871194640548027277628703457689974211393672661122027144249102645448844682518034505000026774546946743462434717758746778814419321049734598412772749822021829676665099430838627572739705533940888215330879507912164346712062953332860899480292250817778797993035652792624960622139216674234847822778209229992391387618627360400940156309155339539779521598054955562053598484630593815001573123394629940095957507566299330745767233301821449131406120552936489085933631607268184825156532012846881303738121959914992935331708256721094947236517602541294661661163158221669433265623288120308476204322541283637490004506244222223717007470498014148727839054005254032840589163819897361154040358236082485963590497074635885751289347483129689419537662586168234924879485188402710475412644819165703127195649918406550024151308658694365499226420516177276416273302583830797636200781114961104823219355674132020664519190758851675246600878404499589829136695435044939117354865650323753002374553008443741442276292459519476043286257375336150461830903865055348204130361192616818743610953109136871565554248782613206014222206857840654875908978809451576612802012721043659154557317695625984047226098778738881709600829524558490595281728374936793719692139045870116671522093658164708800695690731186869387488542001533886751925831757074826756371315247717629785324037432740959297410827213905972333460767085469628975665989011780105193457319588225201086739040657519540989291139317828324170678977464104273142746212358097482055338655925724443777292401002149130594127442280239172575745193239341756015654545114764025574910214593792465975845036590862033228300411540789327037838316603539422207366708425196188513643547070506294008404838952047670263702287515148900225169618939199306758458121108797293192367736484079604444171797036426868650277550743997220707703113420152512835637749509796351931188711385114331005207955451906987881649323557642167312557464321448185408310337852794742945987099614217948002640445473160624019573177981838453616812946123081462973230307488934012612379606398580591594504328336634211481829807699046019434865499670970321743742576611677802815868117858322474885436900597648445114810630351133824001035768757564899044462668884126938541642809698066640546338982487787989439332897771212817927458685351891936205079938938550055042806342750315129194732580936412092581583443557316176877484744851199892836421686344852551874511616874278665810109434454191669351616575678324158017911876934061090724527650177421500983012011684476583076669446769438634077602264807101975905030385787163139273287375189207490310307655798473815545565437924865858465730037156592601254657195190664684157625483497090933989728614291475273899538179045491829393518881983832750161780097688942779812418114295429958380641712999982843173356950334101429036864654782282183820296936271292255596767608551653216288095820105190949198824614504428126549980630309486425419156862963758543864485045563601456717388984139208299767798632006434348783607690264905417281068964028310279211116725734238424916381201246707014640400005538569305012772361889797203334449919094585969060475261382324755329794810429886746876756994811802082427722464460819050503785677396932661307514874626403187598287135997886519878711941339830815128895215742223564724744340336200771526717581090615030346473984273631961471913684108880486383571009953425620900093995715868215376228820935388125350530107784091732244816786262331208782378892628932597805546801398575783128398689239682355264820883398010910340590845183729125020621186293520506573387933417760565446072681991669878769513686311102921268799423098773059609230336768585959637313073149721073272393862742308732670733058460740324932573988976140031398923670802581405657339064354038168590532922216163669161341226635580639417332053079911241201965637518531723601492101778001430010777593701849958122949832819630965474519062461633726942630629040751978420103615354974513099582686158214734771012216959399632091739184192277134247052584354559830612738520376143711174172082610138181660646233680971719460965548872275385814086808317592696967683736547130187871124462564112741698942910790759771873621751584021137048321806652570841736243426939787712688992404262402801092450000085476247216615458492180703708881261556703990333819690100922316837611761817398289022578049232358315494820616101652690638080128250529047680348238868780958898697711044831706445838600247268167989925436574434402363108747549897095248614776336772553283589373500240525044695982111454678682911098854675842638151187622687951526213873827756210348330088862466491601910232612607498259358690490257013934959610305378735630475351200961969050938021152834759158292934710801417392167511803932096600866229538690417869570776602913329978876193964602531520458768602522687319491533926837015649602213367737839439717489702116799952898288285482969852508773901573151289805494130007973508803617898749148107157910252845354902211524904864502099114053432077633107624626839705820359538871829906505441342316583795984998774615795947657007112310133843326071162828952445729698365974625160080046795919542121592629590687055165746787299356235773043118157876000339933884662847011004785449944281797966468440759536042909284072193452707792438847782911442086598642095816584520957056671203397353839961003594779448121378916589209259830578041263423217366329709707929283658511542899242834750690914960047226023239591640857228599771635666341186842021276123138256423249030198421601092122020423011739937101805047478415631314741572451581158936277931770189026923353803896514494943093466120348690394739027887699452442309720784105965851961396456653736611961273661292797458255624694612744608615179002826414692542094340427466712803961168142801285036990563612038491807502680739636413681143846665191306995663367794968751795427090921793102311480745042476972755475354954241052733877377722814824666896496589245335815871777167079994204333639547577502111439963359814805264743096590460363361108594259775841908390824700788826422395245905984991761088276299192325314100777860471059992590229986326924635479693981145159712741380603906865957617436282211283459759230252904828652927319818825699160723706282856830712273003524099989070824202044108625982634859089671858445605261410772537928336732184834805279544087594953861924844072706153172291292538653490625125762340076486072764431925375848545378657647244933732644045988444222988753209748266519924336218133053741668244250552640362687780665321676397695918904142140610437375482060796168662643720468854751617598466326995818997716687649093866029856639784760524003338175163016013584478615547153158898675957627913435917305857445571113604177843094925893221966395572429954633436629553620431808945996944206898897375527562819659333489130059766514289386982696322349114285101873850755338512566288038847854249720552630004586567446318423599904515481470623667974758993610287112669363457254609529433371449390559731908150773229887149323111309620668400021050874834327417793819141870901705654650362142933553396850034618970548708477440655973170729628653192634144209309217581302800909668954178223382250959335039038941288435140770061116200079838540611229004417610444727819190801576669238522760505859450067904842495826780274372676878195802725758365170114435224503501538038287893659292575264207343976266433508275215764109082338090741586042023597361869436342312060948984086810735924412999257147771264979013689720202068127780102614053918133488048657463911429834575514350307657848983161518772745438641796528921201782458014867533177096401838144296320470175071201248765366117684174825511071975526052635902127591061553842643899877351001391618603544032672602926477870277918275871341196872036985367632392757597078172805706240268314563092912721348324916174521737040917612828960079260806644527922944644595665092822633782636858583052376746868358974917779123876051009763911834459380541559322584375610850286070741450604599538994703442033450277504561262132772931720528612188204216419819756652854645045663477244477955302937999217397869072933576996941141940230256101620450330659881410379312604623051117048733068141041621165385005390651967712070993090600653159136349560166994356162981525603183018082312167125961108298118286612907116898783574661661187076534692956337278855548595140534445183174433120573873295261595512744395675210148266351134005229843297721723727716140135626749654807331638780646554692993188007016342420006609002540600430638025950140681844065217222178849650573511542056065428851987285257703276389095812323585646256778566082845438237799935582377406772720338891737798603474352863519293289626602521662425560459939550562767811659031794428261890298751249625396665563402607772290354076066766543624564802221592332540922782271938196023463521587709569260721575819546175725796441958723841550451418771637089789640174898631560737308821446531235238255938990687997277450263487042009500414631621511718451807336866338307571646270047814468673982829478327175657989078595091225906324886346623057892678382987900829204472729935347074704952945251369186736660738826502563995308830564777528975919470841158215596030493311230541373544896817099980284975872790950388920442330126809386636644102481204334074838679949025817395593232796437606059201712011769997300581404295541125410565433415563651029635049954716900922366088239704053618379207713680273492195577512410405298075881786142168141387509691858534018355080612717611269955035066659756760732625838171895171276320567876697426674122091221696250142779492437073038321799747485341287760108536512214811614318412595249781435106932659625684527388555424159447837899493627672894862766515437773576345111555337415572789434743155948989237890279112031751762913232863111850863937907213910453794973250225126049073907149889331194399263156320770091853432181058562155957162487661083613122915939510555529054746830836353566999135282354330014269419034243050505439494596105674746131555253507035234822819973999423094244848708499581527848952498253337010749273750387107319772483055793635737305112515979856832201265657994075085873258177251684478404296427643661291619640002953265195852687901298089159737674851642420790350120823908125127780297606753500849376326499444553034129346768131983497678267093814836590715751381333357436857541005413742077498796233902933539639111140966845834660984236226354705194898653909654855815137265676388969538777080819430360382129478940424539269711310564279360666429102040075319827486552624153599125127390892859700512809168846529194131727332529856551031839076103942934761469149718466972456812785692577230103658336738957438591439790468327088062797837888451727500642821529211470811771905028104656852547520862933544131829725523873083341757169548157695864221795526563142577673775385945347643334655851646241659075345693973755081530793169837788347943713984906810973933432857002296465878329373336848752553648436235062921896051578424565650643047227574907072370347443369976862717641428720630820183693465923408923470210633407186589747844110040449950324177051021899287427037008482586558544023126414939502388055179089991575181630682742984250263766536404257535070347257298098074288223181651441003291611083958441876184418677913920648397003349473595367324977144434363980859514043828684280007709677673038230745033836760875173470278101726132869636093489537141354290785037798737607923906018969392417045774682236643442312275191200756673307398851713173307556231055569107382695081943421410184970598053155315474458871900364813318783242746119703583462844755942152373649599219611828815574240216789526335464223916937997323613559628982299558123869121439454947893356046391811493815388682249157378030490521718641204870750626757089087491464828477010572155191738779928885125434244589385449801015421285397104155481958506924387512284224060740875690874730014006643944641296964701881949441179069138484833957044703081075599405332902903882178952895654943931491487082904645333015190724149022822504601928136806797142169300329959629614491582216048136264745780642859938556898552248656664442238665405910580446421031905988366454608645217027224381004794716466028330785889023574825959499328931099132614859117590931113377575252117103056235127270208413077311173228354217984531238415675689167065099236990951302443438206178727121323919955159786041971756372682973445597160143526467990654649928269407055042214549329791728174523957054353337714414829089089014034738875232839021829660368722180634256511127488914238989442465263660646311751656057662579367293505638768896716970229785604473782420171287167592899495913641961942812323253789488465567263131708730143388583837104210374573897861841655346072108040726068707016549929115013521325002390664859259414700792907168865969499713985042843146030941106947400929243533050055158590581113122566311095097214810923248349715952996372079441376766018378245611622926087472279524873385436717602948630895807101395467700359070957265824145638738125803059141886874296693111990764801615497745397765142253929466365350547373323327511834169671078334429115544394831876437622663987039038131349064038248601383506511176110087862558270297482390597349732242370444268269594490286118801318845339454972886233849337086364022464967166641018919458833776269928444762945868012266033631087584026378292803580580514963680925363650592368449183786701263813934549187302517758655457287689909220092608990311328158429366462126241726376212622504370294957660499187939278846977210452540748619932675297300421475917376307037339849788147646077742493618986679240576080935728100302560044286549567009641783380696365927885811823375629250107768780543468598538889465658142678614548382549987684607859232142943118943423402262345627328061419063544852833006633406614331850259200570282001884223984266166224597155778340885086367576337212651781688339734506459002151154892013442816518649090874651071418842497294954181241108491395364886389796558066061576430017325802767658407602810496858939821582645999533477277781453323470096205069687605262959100225961892827641915026101138526565993991573344856603848756922992967307883194472833261051675614073318637175586299427624886316491828222391532750602833379967551029990534015594937376204790492584292170976358389210202187744767988346962905487454504664343133556441410018314301398744850966495989005497856687082263479263475020128668505534858310580341347050477431939993441866262227715404371595081605239220921738510094575500265852765529822495915073238155911813161908550419693522441271971449298673898467957601792699411361238510292071055215445555974024893631315250751558793228772175946402670919473547931166637024596754029492283986701406518544540975229096206620070867559211157364246605851102538078890333631768668601536378719078904086363428784326184393463440057579946842848226395648753127844312949046161799832052952127785542447622611411714842798842096111723912565558558090815680212626221122914376466901551499064466637195201094110095528145811880838430474932328849744850186808922822469386518918051020042418376405382453702686402950285678510670934060294924197721100592336241348844184115046318475275820392825454615918178039742153301314673355734399628916310151532191141867122235106842911323760957458973806585144401666566622568074731759387171090007004226639263199594039110956824273759274841563908627375724759993603990343167317048531364312293700061405627269595307201061904152190168329781953939713494565656715813352934830617010288307659146107311656826864676494029634451071894577533446219542634546943974843990381712123097948120554254814485269985513867092407904070638970759835186198230682917346637761885451847545938489873154465897877244690834211330963718724659909360383028602855945301851498460693869223281711946965556673331282797694008470541601377098884465220608906973065194405101957472923232629141135214009285974267123847740462843570355253270354344918333439175178939631540873425833887213260562696504555813350100996496887722122938652599175465288546464848897807767753836461709190313108321144951693469740263505903696088885257555204886006982214132573363464425329622082806691748840360747481819953999180976198084053558303500768146184551581269221734371661131497200132151059718034089358471000627956249031973799945983757588983368206386742055779734643852758545483927782495350697985809148663178987294925825293136609995183737447747492055990607644927376671950534652474685033322522299576611960982579422354326905882387946812465330346346668399156197744204896490994794846884695227020266851370547314615444368689013496676119673577763542178310696698122264014312660359359986879752537311181805989550285306321932953365951560867813331865158486193978006191907882449682352682829404240647767526246591795851571806113656179987272304919021707957417862416131255903887782136725652161497922826511083167911148261848865541535305627793494408555711313819486566365269089943392654793864310937949245154433634246020237384904757179247718843272647636794697753725471927907849210755441021954347262138377014353322584066703853549965219899796115412680775910772230535078218385667237147431973958651327600280505500837363369442552461468041414036417944209541156760052716023620280789610116472437784275888852925884560496539747967322112379787677956779567973781872122274091116785451442258867589964769956819533600660099644636828505419660908507669654869198568928762429335862151138729665805339447534167322724568861597425871637839789980067118926695554733204362529165600606657998126380167313091454266477710887792502748116894238683900822790100350886733101808951305584920319583248333008685649245538996090973129141784305957358480032765686852453639819888926281292525039005700027488086856636418377456879852711474096674501592154834473689670885926827028964585241936062133239096294230524896753749832235122788208785260217538801756009217364942886265306460386478630740245050234686611435519592597332716353654608739406372636245130542955277180241499434580532619329336750634972105272141923930140018338947458386723019935061568538359566241003861371006910663992537022850432609508708620127753601212065161019283237161688630093652093799873815975534754576576778302558482276818226728586186509705905855801885240676699356624085166057985596384217536841760788873701799361532349284446217036965571533983859598304431862613862502372741977948008623922097792317375799930530486859453583988393502451947317800500249290897481721324581287398984755630615602807909855539752688224996388372405605542923795743656541793730203970268051153875323048355928828290949108186492647517623400213920747496535265718213743034531642284472270166927415829050621068580901695812549955137265114766742510781802084191520850140874961994451987640354898662786971276275008704187606632692705939802083287853827141137767845561710186869675431935077806177875517092550616683525700652845774102119787292409534369309523138367452673968916430595072884516728790542235794095288048109328636477174765965242400028106077959802944701768459216066676612090852420860406032879726643821621730536589991438927063409741495802450296758814143107985333911323660189054535953002516673776227172144238695990466141139956883456736991152924723995463274647388233089868758299645290482748100161918326945530102784475767247363814376955253117184324946763243761434863071481110465894610187495502638540073655916815645898941872760384577547278638215541524242110854135078087359014221263435524109814448159877853776378211635290619376445812520025391787057755124549750993503146407835269032091624184922559998878392647120844321644226860409021370289076435115721201604806352192695789053678855682340311798977440971564918645758720367281102164302298802891243833042582069991926679515013286811553768189535880807505936466183094426759364255593966484712208906686232360882631743667938308948244041131014926822376548780547719419366985809446467482791622824647059246942215498834226906156052093394509265578355025709897627166762908256172340079566783739248598680895505365970484303237137368301042194625411713932447615490569965679421100323586958914113452341207815383151123664067380493882561341750830057350495074040872656739911388100136718679059349552210092484506797276111215682991267535525756197445874358457520306604411140986482365218894353805243256181440989225387915224540900901076506073316576918310054711318838343596489745864832664711685184198600464656301732008133436859022766075098214865453398544598347557208127704113887774185571199764637847374340260772173965276031901014611142368490723436747978072517725708538023962312309862799403755450361841241839539731587099506589284567548212952850265617892286046519524070446196394762233038771776503630488944244666794718535202450270513433199605193431428867582548197068539495478403464220983919812757882166788005865615799837846366022562899967251575449966632973654477778557487502830518629505485963019298397577529909169788226327393691060941564255644096224394358409512829279606943723352271951811336149603070800168769627534476465357436820166322717928049441387241657086180126165491462030034750378002259150346558226475011510752612594573663510731315791536298889264577341917761636519910470968625811445601588836824599756858864749338512683857091790242980475404217555434736065730178074904463275502865976389933697476097957855095871882993846129747988116602497839475485994152630039891828678406011090565666771189652527276491426656907537031228918871904306347598909951926811761004156078931724273360871436862635070563408355529358418600108348163518525057060584442833610027822881570248644581324023989236518459714547259253783918125239813419502555515506411674434162628142120655448063061779920798600290758856977292899081339344572045594258247991411076793026166019782499958637437811929789109720203397947071487781568196349562744247615528733439156445422216901882803914331783766222634299454158478949804793370316606925026575598443310043259765293987129707998560667969861096109282012124665329513489690449926914874356765078348141304450565309932913360528021542744765712040044691053438879965426937080439345930200509437378946093155298043935888935949751427112253157852392983309505590859131163757158936785949854412953770700478423541254925089458306649728850720760623817452981899063108716846956590153271695073273343206115035184457460751617382732140108844527752731936987828172493540541619776578896082647879541928590673113983116608740534341149125112845491395180111936730073581965319732570789170507918763792804810403138770112823234280632224674851909724874946895293786757766820892972075827418995413368684874798161919521991940629846299239053203231216416612070500316282311970991971697109129157437891394002193242257251027749100393516231189157188985479013341899744511806525046247294374423613823337693152451816832330217914385858943229461128355497486802587137162892924299029665022581647874689448878863252966659341051890853889986062803860554211173735859251296025792516520984543518719334414055315018246388635680960560510101914315998545103850985349589725838216174145775673561405771086664821317198998765320763070408259179208193581558657612616961318672457594964393484177962036434581235671014793800890017534501375549839803760601757929278274730520002511982229442166457193132523564935164431707043056974794857579476384635035666546702665354404601843144313623839694501905177336964762137985627520345955800078659404742478168779144858378334733261976995133383744591794486502335110615766240015254097414222882018897419784682184933181151467555617280066297258935098740628027882064486349268426347402780590734874147418909214839080992238538864946624331614592952125295496932357990114021245094333920081631197611843186688747417064108946041071587958330140706485168840428818199594695770926723011484505380292087600338673403039724616110332239892988276340061249955184970840802836871018003583444515864689053772346986648958932306486406194740241339448317842481258066861506330587575011358130019970935365436993828109145928606066179873012625312140995235751630482795713494502871064132649936762074853035792404590811282622980197678809698362975951840512479240107183002084527205699804584085801526215702432041615243861519438878053387809191986935148707039341314344511413576038460664403064110663913583957567922665099074153587301720651154232402518569076827964609941013371484180870757422433905439555276651031720285481214030853172209496585160480376693502937410602005098288481124768363307144318396090813151890426096332315607751700997454207223631787868753433409938758405603610475654416641487210718386933818014428783195774470235048715378457283171318245610709691293108136076516288229188331618455653574577817627297648179410598761035200997242199509125813688474205301131184843919150118841834418790189758727479534222750330588150957414637453852670740877921590116224505207612602211410134455924219479561837471279150579517614833639959235709433545583557418563536973717317930147186544508453245988106950777164669884018801148101276982481827474073641656699282601585727226614490122689150000116636503552331571255054577914635368605908650156578633439287595344028044068539504620981201225597943132079187628858691057869023328070791779194456469208563784724714085958396482758165280685872397838610391503328963808895788090931562313111545149499529170641537098204677299180607597254757564115109117015762938147403609654759840290731444908899569873810041604549584958728647751625970303857334946180111638006659493740866935501525254960082531173804095768560430501520912580222401432404560984981096098573677589259638445011722872470402813736800192766742412042092724933196628883729006099470550383896571318541300918215043915040500209089122868288404375833137883877948332573152007106688754477582053714886398428538297621937222657772964426102809760755010131000791044223510104457167848499616813934959696625731971494903794714023990724638780648417683613354611905799468251752868209415301986168642102662095491095289790580729065248360613763834817251292903238043585692801931633773824611259257135439404299999622822392226652261281810792478130222912387244965021820991523638801084354003233501947977111978736713036986178000307512481646362534557049778859746773747071241429535257211121187463740780059804880625393647750239489490919735225484351587659195170324688264218752083825795717316166657747385026772891086915414377664831438089105775180444834306734508332375955961550603201207661092811461736395691567504432493769945700096572271280801189719570196161317947975072619626770173830861992822759996741740122406669011257047123156016480253932820911035342476398782854509749107921180195428133668191191685048362681404538654508311086022721737726689295327453845658845923266395631294214342793365244698027592139607315280053700624266626388318122206353480945191086195394343984776145202459913327243681930950657938350782551397682164658317232834533146156094223505827146505877292160010026816160096066284654918709000862168574854796394841351599937328474527955910266752950870846875295340615276503505102978733782505610116085648989093829177414731750829874116894027852469321066854680551334156097351012473110741408190136351682683881767792267105905504652968471612250952422120537074917023380690198498005768629080702628093427067576399197302588520719136943088931835766019753616707458359457122229911231998525365335935042528419356085025131909239066037546437324211316550253374251977343981404827613730507350856442767458480325128506971037829635776353319294124905206469415097413772876142180894507777645077595939002389160228869931105710178593831281466060424618087862270957177688862536171733385661788777326657118724873477715386860073526618338812926210190335091821510678490835562733214682116526559894074920604687283249213469091411039606872123180114700225181240023688006918103874754333361891551897227591130559089659305663234298842560900009626560266831545021329432249389849799236919611451288194681472851511482818589602731790553520367218969061842220042420798991945484801666560601722670481466715736459474129575380306848553308425368743228818344154629752376460416731065228535367316939673687563851679284807463357182004613328425142745296126585108614510260077203796269081100037808592725147624668655319384974934303073637917142487512503150090401452404570634388676942354624488471340518282613129733835414962607495609284919303937329871003525069424680019551778019112930788186443775346752560883483734280512188489820584054062047627050781154927899519466065569365144187586183315537896994624991331149607308351707751684337169683134470956704663880788837434308021142289332664158230071468649012140634357622798754590795468930831658508006678903529027256045305844510006706466495184608186065015159311164917830018909834462964186677532612729506520220822273819356360045494166792147205157217555299860060220954947610152765372828502021714962689554193295141901386212190355025020688206291129140621393383889467553442261409119395174652209925064561905925265961231509566311331500970387382418113188965981896783343037795112482517356224335504195343439694761113838708058507851196214711512423472794354474927082566209152498634239929037613619126040696723804138810526315454620202371135163284631212818221472492890704279379073059449874350055087940428187210852431711907485831146153144245206744670595120465864677064784589902569503190051502622657469544909975929959331648124849428659503304297988810927728830186436762779760051415421817097477313744746160739963695047357090858558870017779244144464313028464424016839292113513537534222660752213127797435308677375353408033210473189243509152607349648485730123309903527229281017416553632097056686436148492814062903682736923312074484655963638535192939320143345914170168387032164467772424948440841797693561301939357352184177634290955860475989082141569379891965766836134189556844127368202446052935423383999108796287408428010415127210504002056041931727054925665832136675614149804286914092633618309739109579806967599406259125119833392175862939099394320033769338912280725998089811235986850966054937353668495240709742578457007321396897013450815155496926621681526835883473091912681986170018854833465823285054377152713444961367011306903683288843657043613380219956978646563626960420661140968827671312540684834298434809546559006683565402941134129203724232069560189011535194041637752162004814764533456515472516590941955072689052959269390039156957764625523235876049720884745923635537874312459680908281292221174846951632942182478836707168994150328934383494137422375893368905800263439313042204848937703732088840459738594148896524683993584133273021614229400973915754654874468210310784859328204172195043221510315269469677323815731514246431742300391269910120641934398141786916893827499618381067874482425019241941788266776458893332169693562763206458749758068621613622869352038324868967198544963014765967207488885309061063441340317959260860349104972573422644409705278429315389934726251532514269914848850847979903874445843183415487337109269947997024464763261937195552878600254707074941226723693821131185273700455304923321581353600628796049472203142440037141566150268566002853240571326900041937317361124982391197433430387748484051266478288349846814553100639403212431995608333689342696821015089508715489016765320558694970515836207469445709400120651969428689816718575309334417186345440848255516337180937173926386853469563523872210228794571983011048488030633494605349896737235403340912150502599849415648889179156747910223028305811173418348379107532286747945973328582239917694361029384947864727791921020327278168797120758972752672888785836119217033977187382441464440663565682020267994570614761917475345001793741780344892415519440301915645855300154347638142159761669040482241083626354980922692649491854704177690178146880646247977200367675923177463590468269285710034954844911952606154004922592157765216238232116118151987427783590462655950144391509779873231013332328364322107184814841068719735216977804511621720605281938446164976076959242849549940884829819666014354749999501872403392785780356377089731420651482038490891868552838270172982720329511646801856622518416012146957825708594836608997620672795799445866384656502507741008704761689248733496203403320932617235342689345982652467550803877622580739634029052061287396169605779577983080926293964197141282381288778589492397729603133213600278947763845714523036035195150554928187971077549642287388199339090490787348282987282460031990252720110923152236339699603532125438029305262702224474578718758254824883272675830296409659458183809765484355005778583145828517881791927643250944598757354490610623351085167598185906762500553640308964119511178288963808433223350154138395090857070780030319362001771471098340061370816423552793379714914930770727298158329001122512823814415777586627725147927392651918105635435292201942317858899428182099015009703829786391413914219846126033371203594599823142270205955245606977313741633974577923686361771403679309465852954960203202365553493033453259808652860010259313825307122860126936562845674103746660121180838051449976439844553454342513963976338090358493746752952123960373527449802736559848976974705570743514451161904006948769607235266635822900651676273898527057847535578817305920534075106296421247166120839319404259563186429348279359685043925192179348009183303517260059901703320499853282137752445438294774529626732453808794264120015895416316857196362911075061981336186375400716601687866450074659580329311939917604606567483604937593953732081133934285303836984338452766175616018637030535408993342541707320268253828369967657514263016946241561115562321200084306953876554858282291550069408556226994683390721502092050830556997666193087749055869744544622375427202209970533712075257182371039901664017222809000924504778784167021297471177130481142320279739575670664743256751316257351475137069203107474351945360113152632544807952196382756833094752193325779990459781993182262945535327761082179443701136366149620345545957810520004050391848925549416977395644517201758001525650368603370068569718516659608816669386887112140521326646666513261580843836508053565649256558064247762954487069138029486718516857699103024128535357447067769489094155246577659713617805628710129005124687688878897549985782905853978215038082264928141336303976076043441351842389446874985605269387893072405263473579662263202612532626503418777919429633002636232393889757440259415569465600873350315624989155573546378749534484703259333769392647508490937770638494560721795142544267738117164904029785120992111308546609777316801426918019749253968017176642619582564742835475038906548636421457059099123201610120652938336856549964743496197256279874167560539195832998129619261068448582584987681062842876978434254675923912645807129454974316274931366824917594864674566754061899048285298703131460790994195424404654427331216942058597226553941625697503595171384937067305887916478925535948018370825648987270351859418635495147797676447664073315345580738189282038112921925694229835265483475775042369502666935215806341365565202427296970360813223103164976252546868842124640283428883374213732766624245720949479909183151000519805220356953189853696065437191083098752565976026574352208503806035835983986496309113590614984930529999085548389476839678461798068527373445815461354106155952847374376966007471817357334120856079309044611338565014546224543365411282941381845911966742767912293158900181578655080381176968352829048776294315431295823708343338038106912862366967046839718781444671235392696445702049365535708443823649266841697157146192582144979432285456431764169191002795015617588950876572707861662902847478396655723329506379302202761903320847570643705984840179268358137460207671080016033739556457221657775773948963352927787981911141729451846422723219422413513761618780856683616374339556977339678188293044990346731831639631205163888625972708855494676722766999155849868710212119270017488552752139809438428761080102699024091532460718605387989942951336373664944311145388080647359845190731330932729145758155137286571490984487507630286354263669511747149228213689965013290101537126924667859389567925511504856058430388661399534600209329316879951131552570543069460059245725219247950689453726685829057316598634695919415617678760178887819226859476096564387463878000476538359382194054983839923007668809220457498014683994858186082041865847926228803617706386349607413185681264662444879661458105030772393361153144957542018240673466998618925769011043338266778315014922148319961230506301197612755078802902057997379131610325736419309637456678792261900860310820532494754191354253829064768374318134959008334223206306454859616773734164074966469115498639170059240840140313660953458349360671988122479175947002788148085348992158609924941810477800261423224543131419029300309440561420306936436745054205196389120726600863132538207971292479967080992779219389481683021119777571599019334183951661755390858855143558520631683440176508392339382873855276995822592274399933980597432568828172238877492060003643420068067843273877337726430707737098771465487285501311345847958848540953757223175871095462165671608090246331197510237133366730948576583668349176018527648809271172689729044581224339549271920592060310818979729104361966344303516130689672336230236313953517062435794103150915229123539053497165803626567619390338645177436970847743486575105634245862099593915327311039605943186372595316018967518931837020415888412200494414578027267669572261824674632078729756599591997061956036228226984150444568863798430654436677780265155050144668448443073075534438068386077735348784976518357700014490325733004302052945372518201716950561896787922714231741545146806134633889682121854379993558450393784635962467083671647107738913542152185418883861566950828975329715726552671104759569065896410202684163171344539852210959882512231077209909870561680257297375512922056485098857989413150701841132481632048913744537805495335700890008455608834183004693129344282833089506795611808927411073713482270168836127706288759092916870353899404768434769974257398035332091933227783991567912691984873024624420414848178335493809594699002650810160464227498882910623866147948330220283968846497214872266458461607885009011972768822277733336645078945879966683186080796655367246878264435205657411662748167370120626889752768340867153222518128027080752496065726622461012961735584560960143048749755025906003440550913831671862335911107941573539518802008207599584928211587109173511662476557812261421445650034412163060492068917007872529293282869647009529621852908569834970421484893543091494649026661381074729785818308099023814633351486772627939704021145073186961972163252368846597614837599878479945929605533471966676212202074978000386589370774633494962511807728155631032528404497822876468553484940075278268746195019766241391411255179937793291909376834381481945939839830016575182676860584678325381906530261305631948545879933806782607484617833509863559773687365774099484659936751164515702020801538850209269402854436987730565546192709037368404292870301485758686904884017867367143208771043722898785361189839983215578616932579561901763929945618037490527103351447448256724670739501648071684148211984425563490121169965791363675604882198036053946083948886100672762875776591971402010926823085317516872379216121823565697146673895970507191734141090183044386338884237288292166165792112483268153326792569251585207915536839625320363390103504107681631873504579149203419361434907584686352227070075842584935188048177066635732700494529301093687647285093915764057923976248297431091036284580552248425259478343572321618883098622879874137151365520429343634327530811936468574717598297025842531349827056482033184347886166415119067799502519468459002710420379414591435924837145978245091558320926008803322851285221052230249265767715952267421359437558395531721384320747618712783605417486696071488383771866920113832506895632937010706584651786347200272129818729675878337383994098230141953025632386920900967666034941790002550538069309352830864354590056930564661887454133914688196033244255589530718312766711523828016151998827869979662804748610426451748138565534248422665330258576655607227430652502728420153777900839470667810812389932331445644197489108789227412396327911357978790218969465267149365753454635575044328021737745684877407401354185954520291605754082806825752562393911065648030805993243296892481752293996748213258434961470750463534754447946762424646391777835015412691600983358492893625287324554863236109001067470891839653333756869844877056214935435645323818429772934917767325808304539691925675405835873395161711406745584880583476056455541467641841099542923386444964290579351260447080987365151213778043394203368820766073541321196142280336958221366692105047050398233728712038135238342656857042333459694733325919003410539851708787609430530650382228736709950695501262672862681581516370423663271466453936146200140541526314687118576282115500792796754123685948677757997587709402974754332613851017365953497515462182402911925078201064294900425512151857269226087610131438080453669925204098194749481069904219851062996428818152239180908738757749509493439314039870305831201024292382163189948712817966048597701997173706546064596132898940693056011311752222424303883716136322170845226874735111367960140155303487792264212909976516173976941888989868858731233915156122002289318087959939970970853593513526030346873380413708851814987612210421829827825769307660051987045214583368475154196572546510304249259865290361109589121559791325056922541410142147405586582289250764728472746420714661790472418084469670243306975998323647722438437814826394235774071029427155641076069512735650925483181162455741441327913259638787508487941114398544568569337626411757332594467834069639085088903459546274285121490028623035860535124097917359040646861363780603553562255286944403497423087290997040528847174468223610357721872256493215323509870246402570536876455470913837645333618674115980523210559247558164795226779296681005088788537999195531309519671242588530883326149488335422592154857869568940669810573820725663124740726623307844924919346247388380027673670381300970552974405870372759416112480859035920279546940352429297132211436300413154803858193473063311451511403873791833746914200461497380400051214686240732883966578586668300004358472169989532935327130716311348776699798196965688172166675886572742402970815611349722270715397921643956301888612157678938520200615530804953475573022328040625363485911173253668479472270212652768531346223403086717762560504605643146114191280392212499772847872777780553974437843152801018774249580149845196806752412911097064259400626012673423942882495830105181307828273168564501398709945698597483952150993212626712439453749048781110286927423478595520438336961878910892353354739180935461040196049305853085432808602473739858965714719252597577209622847300459467822595929154848735879649211248443487686020180700437876583212984425730367890220552236403269192466822814001853359241105156362998058546553515405475240348847719636452348687107932772912064528116566303662243321501785168902654746229902239039080115323218994430863820559910686930413226867913446389007520097768658294893948605963882743885973576211623230804807238872148087080910611422050569098370313751245227475998188441917129746963891593064693674643440468272671444444912371801369845185690892580258315799259409421244857163476945352389338578086282954726400508576325816820052914328906879772861044242136598692464290807641196618990844746618415542352493290265748060933631003605059832452277841464349791355224158371950973295132467357343460928123226504322310491350833748718685368293163851710209539445235211388109021426510846385723223046472074657258151980610799608451453306580364791234811083751292799391233235717444703751951650259812146160061295572779872580716590106025159549881130298012146040694301392237255541799183671886745463234454241349643306487977371864953217548673299503161575341941655369982439907278449117557268469564250606893713380321359350925182028809597735350333213244945053139044217747604928374669932959729517655305283717762504397655228779291596799985907727774837277997736969791983720381211579488356604342872935021548832054636751667972432947399244732241833643891627099746553559295979258439670439584792731681322232902209686339594867556716520075331444797381489862429217159696478941885458518275712785598238322030451224008185007654741128344444400378810136098271166304163393839487699205415023500508438202931494166664936294447668122342228344213149064763784752879455373445151730865808311997380592982082948219208032147208779563825730345895858042665601073851346585033630261171287433464374330663411425311588839856671997399528654116241300901961269584415398154774384840321106921401060702216847550747589626269300061712334126452145515807688858555614957798151983384597568424077243399866873973369460518235951862990703838859640448219174929192988319385576774690675951907705642640506457324572101651200707117273441394566733228435224312498368999149989725686214251073891184309288147527068517726511268868897980025292777309874540510567081355390288055003185959240747376164263467657433434177962124485615384050008030023323264117703486826595266758057744795201521984171593631465688221523984779218530610961541042080194083823761433104864976657527842203889009038861618748747909869297139684746076428249080068092894093862950905936188578055743227586132880518428845881314932384964466354313581057542362162625237981884884847400001773083080097519422446871038462099799525113811329156725821556270525340479864760782058625524249164856472577128056597869143734490813409505887878770009868493142846363380149958040577687859447965294337983875311251423027166771488281815006591550868505360254650901179154127896742615583511165982023970670601325760853898711464755123585039656503726873759369020739719365195549825983287131996915849304607670215097471755396067845043682715615316110907952443418189075909176181685049698026645328918968002206391883866232244016745022846350153474885903328121850073093603516013205042855469573435914378225907400531480615613630262524921111226482840100249070037846590690874701660643595054532404782862562669726218665552429231241015531755531065041692806969959722878296183174187991997362091484289591937279015257105825772822200047443543064265946589754149952587933192353366973287481996229136189003304516461957361499755259931510417257689626730544786309727815733752239335862298012063144783819962933853477155831093766215476290596442788013334030676976432419435846400862703765587556223427636632683594374160615168827984389599431458027016464975871592894995502335328967643248639571620918948918746428234957017169276345000322544059016822541202643825092959982892287845125058818073671265057472637313729532247392451238166565242922241231957133156779157551422037686545739336699428348476557026157032733977829194986793075015364901071524870418126933827983538081906209388596054251889985245298163157128675968872279047077118509282967495773988613299668401415340809546356350648489602302376903035562981834786721405857319295793564095569538697853862257568753299037276903918710981803178441770243614581828069556722975588428564971684837772515914028109810724744836508750427746421147531290328021616708279314405864593950693778288831151819583293990762268082041798076675366170555933229992260996234206001429829939829778654786553847838773790031478171063010479817785166555289269792566527779818763613705037914481402860749613633528685764360648367059153787634470527791362533706143885316059100587599869665563586517972119396200428827132859401822616853944876203736385899881748825526497066830127690216857706435291956056409453945397979927753426815559920363605441627804356151518511490803663815404821522122125106320626487392658485812443546401975411250979758540686603593132691121206826208876228376800509933530901067185925639345299922964385473568648835397172937129894244917711554941936785819974296565909082435418428386703284930862124686681208273644734047536516121241454648472627963254592855335686749821597457865098915806339660961786885749820591583262691043117360311279775715500218670183240979054653485117361924917611056336005003677891595010962584729748160551472910067787481382399353417199488598696114795782466423903783385227583909582000128238492016648083644703521617732391781177404852542768464470899643210659258350877768376981307778230828028066489478131892083360030456795693713609253082178472562095020223372016680416246138488722424794115906213107190245747356219795824781484738116489586363694120726316340784386231527717176251234061813379122168102824185858288061902203836203900530490233227901317865975826159478459714393445847491930425421468582261399113719900406626251861198599884952712858472139914244467858731756412901436651535729983272639275589855324628242089023080481683369217880283424357234696942121346475172471549299379959694027561045586587600290514360817116836098051520263573613172009433585515079371850183872230537583139382211074825689158660633853207135365017234743949906500762567373396994403497624434422042740352410521839543948138932879187572771208778278072837805415734200856064716041010210636821350604128987761717944139455762800468020122050794159786975434498405462550698642969771032129830998295709978615787726374303260525829153662142906819491160858492945619756613840228489535544487035325160999227443878424226413919902807129291291355807631616051031309722729090761719480355196656596986983271934844418548200022694490036092454356441168261158200495332422704538728924768095009026057286771854513613385191712496399259106001132685587191018035857497592590121385238321810721550067002636178933870001956254515747378227051202386470463560422819464235737338210742422991954329814409073055111774171178482064656747727574158501675090020540357796580011018865909061022565971023151620797260946870891484537933950564066074801383775043855146949287390178864836010097272422235265600312477796486275879691147863273340429235234528566738330072466293297578228069212523205146590926123092942776372342479467086980019815600254907405020166983123380313926929984633382051866918937937231433791663606344093683463218826198057094323041330813148700339056092580348116840541758873647495206212216932127408286902131407222261375167942714795080426011911773202136070446405877877357892613775506336026908907177206678503916273927534504123282723990670675076987719789178735996541678590621171652275172759300408706408527894750974182331269928305372649843706478550647663216216881405731175396365035797316630495516797210024039655964225879436016628300228452272481868250699492956963611665350603183064889261902102627806328370875343139581144243936408963958298363411499497424353774253475097200985099151164835403373663821802266466983406782264545151604190781154001935075598163903954584351619297404112076758450638956615996232920315543114924424622505902739423458176252569293116379569251535385293636634810427099154665841622979215080414072221101279015857311463380917622053427179634936956362029701795832731391034455953992269011357761754256532829712018033223523356181094813535885140225643655899317587639586999847769537228546835541154712422608994124022373607418301352270548305593435835890122556990372086361817071004325081368929673454705803372237682352037066154671526124593772618165261354181991652964123920004324777755694637155798312607106286431226331494603973966005352160638510288578095184296851550864397849801214723664269119351135855296983894320228120634513907695813232312164602123021319139001101902747348707071948590592346796223252061501250897904332762895517280184281389753611243295427314824869030034443925383003416212835710459819220125425426697077807504777929964916663831895184664837197767984718940159180633226899618149324147070042169688431398160440141454347452322985904746043592322507414935854132446822111545151804083258769385861204556556411821996625112172893707853254032741790358241866448100014903031676420754382694509470872019235844130879589627170689818396121964530562334895273364123232676095367320593355668490313629878512906335847348027992345978099596271820525052019151593474105817805988141019609481784919767276618384139313601645089150578341253797911560892429016364055895777819236057124924781676937939355306070773683159603737743974106754536459984588073614021313284400247788001748569217005578023479370507741838640081434194279431860925904818133935628356346342874853885585931477781580991421087664369580593978600526665565732573828744453806998347213810771462433732585944169193260068234343721605193132790869290107714873140236237842049317268996484355429519094876105275261094973013498555448512517742393965146319417145801232033427033418398861372352861161015794727650991009105332021595549376918449531506062944601030585636375839887740851684140389685691432914796683402580161326205144935007800576882284872834051841025016919766717452483680552892128455174950552433457205105769047441727567838390430427144207969498727276433678741843192970538863945139878532927005838264285342918576311849602544068332635923983954487309462161032135005087357651184752358703140358107871141770277212573437040442890075900422542366241222580751876627451004749027403362304635173184702471086712375553621140345609689225769085848463509604306317043606153768150907354884476494178126717018184378243575827422836722541212285720650421011841477393012142146783715380186453249155787111392425535725405250104946110804970018750935033143384539593186165911139968795251353956802265403309380440705563673672048356843465967119727059701819260817743521220704191485772954077380304883040444617586177527183722402594468660253400966047718074725737632328159114764755219856195745100961876134081594826261432107638345895913676531061105135081122484821271651915811041928836246093517317861888580990096635446736872513268268475655634607365120517525352128373058173384622775961383673937790661335066970146063198721126727425586638735439612427883447469445575224924377131686127606978656073240622652501301096715199371155568272003145684265074374134853980170179213802947308779218697628933909066748238481475507339998140213733523492500433841569582317698268331292195691369397420618849852562398769777712677066411007380008682118560307728662606722300083837247978870435598080368039614052424939975016313322391729677932360190269053046519712365692671694855623430349683791816186881656058958391011827712049588401326854285011787219425281463467337115554240883363952136062709274248225387544400545689704135602473742429531423150735630648437958310927030441428060542269432450863677144673521482843892776104048250869109849894323661361724091900289799835491355060141691861790173772307901500109213747194528717213603640090785539214188038530687159332991736118316573134768461305964923329251458198717583575529043379806188470094989348567792813850866179843870054193971347929156292864184501781496939077635301153018578386053882487466787195454240369406541662602309437322304857995397101104583488155889599430912326162424570488915978104706823379572471013910621427442403630248696332268710219654102684779377466626906036001928914655779284654716647121875426449543000094253847048601848947781505257411930574982849096709926515706928004979793366388349931598627888635663090995524841574865289023435079212335017937301368480696759011958816995732362815294443957531236082795326203770227246425020912611753363671792510334754307050400556489198956566115551059551817673898259889457553607440188849731821976627119604918644514026385701600647112241481544565736459809329149065068003138776971756352002036118779545718024455430153150211713574617623324842949520093631711799229643107704827051489464468528895762688181392204227117529318890276817638368832930991067732969624349522020965470939187777039042968770003836699907658394689905611521267033321632380592121052844380087254068202656239028787001147935304372065463705530526573379409381791712414783845071824873855421716310304174840261495935620817230416497111165137026973428930250521312205837640904151902455337551436929219610700119465091578883807367289873408846960508587479473469545328119970204562968499790086624347483155067274472028029831715898473153689322110391116087779961407026691532786399399575274387877694520836276091468847311949532186063328606075632282224624848699958692249491897052733164627521010859376981406068002803402536742379923150026228675073606182495995849904909182702540079270452316635864771096366962229588339009012252866647900103406334441765078483960725291008150577373868349871289610748629787541703045727646044866413920194057135285608289105799176197874395786297409164251926521074854700242002791962792628985387786401838604622548086203181674779766234755508412750875588597395872942391953899071074498462304773819024483356775594854774853898263176643452573772202777810365726355679392601786196845848284918363669826416018355886453285953236437498375924542986838736560432896632271954953544342126816737680759496826088271606748044635632212639384298120119829873464921648063562046621108762873131063013029937173985505579274371503582058199805462710345390435878051330520555023914405751935014537385895652705606388356138166062844677583651669947693228884880503138134146889179690641067762972342359371456329568706577253740777839956161328488489677219772868744828661880758821314550158353490419367736619239234645204862448450842658537228357280541256561142068952468354578828769186244053926580705456016240011034696051432708071732032546805999102863413385639924183770727990862476289885002333419522200473983891107258233908916023154143402983912824091806577708763248934718466724197721174457908042563450943432971156402228215390073718318230145341855046266191538155532288128292319425830219238694980421686635166832618161690281539149901015292963646044126056736768089159192778693726559683835333055176231072747038494519599663675583027510565754973856732464422119432687628147946651743747329612902719100391509054338628733896176318443314476120960180381812177672386743217691471481377506838685680646265109187817097443337262420764684610594388780941913879894336020264306959147920541603222302912247913965206317764903810561096244611610392153699092420997674791380362131631861722492735931035395249153967366723042926814614143657505501494566496779291238279109319786498522463084685721747373331930904105970419943198864096953331834978380042987215921793486643449725026258753774622142381757913656766365773221643390955524647966043057177377273659512753788510442225361885653409322023962064045768232039869843838014117396644099378967870048141255847373979051763436269729554576394836270388600583711651912241558393049460198443459856462051544733691772114240151463495067748301256428413113554675540665583085685252698938453135980227508994485381237478272719049072036398499144593635740916045531538541744845412525784149603483436513470054933670778988298183600795678605551381558136285939208712820015257102109932275407934462749126232567726951131180229637311422439155213348350186897249261672934882047557017653604674348849502926744090797262749289932997027727709362315127465492352566324286077688288470200233784393724415773677827500754061317862921117897307517127437789996996633194507590278514651277674076892271189271808017617054728722765875228110812198979172239834723520735889572549646983977747389112286910510087875059206116482538017916566055548292784919334518925231881048440413438651306637575478336254972487656765890201151581687533050004078016352437085680441340897463276287406685713030163341751900852634275912502293831822920751218478742885083720187862407178455725829228065613482712430975241830374012256125518283488943192866771118417760563234197202428843264206874673183095987084565681271871144243291350218524882604486556856916903772088686987537044165729746342585095874766734216453190085694530915716475762960987022474421951828852878169073459808248386599330917270968768776393351424452225112335845465173113321325048610942479374113056614023095140329075055176680619272036808737822526470741742485812874419523191489132894590046677267768909492104367248086422719326465828322596192544355028242230614691763921684241499055733109959320568619431139360575763582900343424517165005019778909454054199439334775733481932620615496390562522127948192967807460426556137502632666331609301526658131251079100815323495286243503705018050852188878848683151193361035249365004233090314644230559052831920529150095196602242100107124471227858775152100162569133557339896530542684494053295407388794671151605029460159030112036128751571449247873524888355252043580512200225592589446025094090889398632068410931688618583409728813785446994864450968655984565670192660438253778190778741755095548006835583818420955367504912010542071070914037950424067056544167861284854378093822162428472133783626281019963297931557290599613166322455937332699495141553008100619912480015796625256795266009999860966830632599235213638442662601024353220010717995467629271235053828792523087504325243720399615327313185935814303195921635895823000785158846416759923828769710822114237677344436678380076003556247852405793663515937705160422966516774275808784161925624586092065865006359770550401512300935879955116987501519348280441728959458782408732155093902541639597554410821864684035749336036132021513779641939907308851223744931258345437054240866305469245455333418725566234085536282728801970033396543084811246429699628832295186051776054646861580533353811368371385422818245486518030446329133400863209961908251551257433002472049952035289964315262899933621708684724660057077245413439124844249960925529647120204674783061814131435238872533505797318443633500805668837076109743459979368439926059318513518295475760189009896064853464144662024514613344024250042913186094852251812960250277969421974896551390764166386577028984110885884993265968248759159333737364350649211567225098577622331586015120310067310957779175399197561193007951344014698353896370790920655030328423629994760919673045518026499530670712181368759774528606078307825567147474685929918764951725885004057884347972075277440156856422803715719621567507466662757573574117090722132023292750033173202661971680621782458647810728523129282998186085253443542541933535318331792826288966156449661368591270251740571538734558394717829307351360016109523796257836125836750908235910507901632155345795971733603601346873062208441670864481383346667481604742189160619745321904600431118945983692582584035911511266825143273863799343254008194575253475954310234154280740862288326928869344423000566077031440004087932875586802330257100387035729499191611998907210089874926356523754507735983581439880889637895243394842680804958765062652743286019316110287860368397877986928255683903067270833310662776959755405337049232211752123629851686289780511808194102548620891354732138773636108732342698279621277138188372253156171278035988308138579687967047501638527372970273106044754169463747886161701457387986708862549413336701791126739235353436610293227557873065950467047957205790840571844730368828323055119901471503515925605209171124328416221944093898266079032407531593485134990627649913282225983939651961532348848749228786909854922676844222402757697813160978484606292243403082028245432024772075148664184555768563057040287595155657503246610998105718483607246257869679439428409016392537518103764390575401479939991278528714819250582024850306293615490672817570637729726901455819486088223798844028067774077788811089048872224520874458378399011319179573707563534042483232362945309530200529188377142633417600938631590800052659279660449827614746129689648869194624267210899615288227223098509818575736216075196863185174615360853346293616849636231648281447445134180704078789614529943138571962700672224599270143095651182852643423736206144601868728612357446030957853131753012113071263024314130946197551143298641614966594818614625604046617552097693168282946221710139800899242078171807883602520779311265175150274548525476385705400879880448313244266213363222702568337264491444396359882220063053444963502606454810139132570529498015457147652129083629451904246538475818574971301568468717582588892439964178708724154665679075480994408575725494054851926398138872127141681865131109138294428300504485107797228903366488382883732233722262306190473482782494228241203096360617723028353635332363272423929787258208719145452462966931461469445562807693376174689691601212480396547311490251872224029741209596537713080572371582947059591463472725014586945168410106017135768774540593568474496700155990898721067289559502101744085928604514185021234985433584259135570300964406073729913059717178843833648678783935730221355431002718412146897730934016004861391034972250885403474702234679320808559874254659159271925361295518999235805120710566580723052111137279019480740922272879178356095430336184464158959580429591258831339634906840479492841591137641960246448563799501082982618677189316291033052824014854606136267843606545994421342985531906445245417394944166103957544797894245582648791038216390610440281246456827423245711435690881857790295165571079567081001872546733407216915100246818756110519678973388222586578563024738620640450772413724391234121331747701134961765425455611068628373187268028705240058306901760062483284012914223081974837378548480708597156475987683203700764350334590944663911890229506129180179479244146896324763682573830968397382316153866800673708659918300564309345688817714622244953459145753474663963560329582053838851515400217054610043319021212581997446041858491837374478382863432249060966470311703625482100915142363523338001508969027491964047535180514463378945569832886095444684178140994630040870472679908328794989629264523730725203475761999395139538797077260759513565495642606264165969657731363899554613745550926492105291565063156442791142637632082297204360420501596794065308469123594370638797976048064063775132952187208276716738848219169298500173413929742141337193692576620529501720618900310209085178075960045486430408139638450234031134230921852496300334333176119287648428758108225081876294789348012134287689409331422280994973418960148386111816041309891949351314982873895721407241469116885966163293123248110997883711631446805389590698967287584009831112131511480547984346798217138982855177161106983529374725323557642297157181265122178016103391635905571006384278999077232109368785920660782956064533400637400372165799706602373319941829536376168818694921582750953899559636065904439107703403113665754801133383568004397002482293383645849854789724655845028507271646017294567845567347429001295254397999449517277435782065159551819981614981707822498379043212699604231310869216122844995674179921817395292172890054952180301606129568551551764258667349350265139530074740081462270050453252954942962016284815186314270731544870238494340010790014126089095021143988041479200113426536143964526433042879276386115143457862379089289841738682258476083249305905804407383255233176802073172157848037549518220347003046236646733861476054626193374976542656467196323962032789947076676804230941291041803097715600861431782112738610062666796962425724830571490290773975609740119478888992130270299087437191252796928577096103669932717335578842730144226042895398173812895833999940814204816647648415396397564795699540043127595117784702432003479682362828494850271077976331786035263336154772528833951939321171318127008897245959338284542088229980032830336926735491492134750689985485086621127092178106073827094924417042634307206857981609570272641923911583595726184297230741319566674532393378544306151685758742352618391282376319150393446078071603618814797478642459126041230143210337975424814197164751854368447365308640307383759104305319420003092409598056081156544104896596615517189913320774899164288312146965003332954764337232997807627544073084106638690717956860706948508327807115724706385188226605455175777983218531640616596070483442020905664744568889049556591467719486185543842166904804169840610888097860734604325177191821565102416842058574383290819423888959476212175093267454937309786481913921532352284620047247786029142069443519337713653429283753418323854524874580017022981446585914960569415459538873729573677911782127837172713782288065293297930610751056868959606626756093337217777815794604270496035227245656941037678317502588441120757091844234674432889812399230151266959583048347847463294103556309983475308428803645678024743175473267660850107192490277891507518581544057597816917494260676273328805115942546267515156514457463986425071409016148203624424276512841295970773126204254253432034488610069983092937622571424590110567908191074825552246449758139358130356495477854097540328483771127291516630663937850638454107631281347831885579877472554420587132013406304140729116729688274086233306797692235099064058110934119487842899112540639328679654696840442643526739305812337862865206505100659015932448684540506836622065553608775388787021253181342496933641072719442217373271351676600044502012370338981223661433065684671025903228608935360490634854527928107985978534594862640195030270498303234581529847796710898287519947871685310636019949413212021222458759395775497327688258086804702739229107216914381386395622773972482069876452327766102015587798323780645842922747678843796268869156817740223628857641507170051190030169318125941950874690239650268607732554891984535223452624157286454812802862295321250793745994924164951413197551502912855579097849335257257879431327888709605236036709567497866164498079391804509323463247625158103432389928173654884818699905104940927005334977052704225664008275480395958840691430177062622571210766435822977690114842789379839491088240564933838589831219586807402921869959511892612456355159476243093154022406825067907239699153329330597246372307064894029853631460383754647820845368991936904553743188376642058063217232459175267298304213903127465313307165967868165976076627865703803168685299495269136092757001702499374328491707265694711669348984266402270019636723866572079553584208376241419160295613671762121087080292305225454721351676299177885591561888853294148376940496704072327517164341776225974352725280621777045271398123472567538030421276932435315835873191929759457605195323657506596653052323589661154105481485815708542545445724991379273978757317056953287685355890641816984674803584227417179105600201048076994696160876911925153677687699880062613102820250705316310607457466870724453068307490599982211359253532859791238659817553410834786611761238039296701678537989661250095299738473283688027637519494153087860526094808390561309045276044748690667692778974919257499974980687474741091756564966077744810978541145606800545830900989194491106820944065719665910033866370937849990340620054944201394936934691095887659170383643610008885667998502897927372014239884581568454488642071532507344673911226260191203255685865023913125442946476191941215689532655756196031414815047158874278419036623425063442288116939304044476128487709993598898756337495893058043842887124527131646054702152950496659317277493067966052959086296021242277115719489146338759521536276929132399388732682706919725833362946971095478801494135953621939486811994754896568091246990069260894849266802096350765468471267010888864617410415188911974919631980229926571842637662671458463935357692650016596172819735955634965562252012754942884751771815738819417360723361457437383575019558343996665728514298315137774157257795708714596688753485726670705603040990079972878996941996418873388776725516727980464829717415213713943116287393014441536708951808138979365452184835433586188146329808343268985778894738740504611107866402532289500151483363398990570545816836682637994952303820268019828325282279281891950457646811115062373206900929001108617940879478314164778970016003424484087038107546081672733124894168413879743186851309427152930086514607619983796772704040858284048590381720174700335879984538957061151599215628881211452704453165523593726387915889221079972053496212594049909023603331727700011741975450769783928384159180137817819282655565671632047671945911969863448669393790815908544526476143601888973803510170113927130654009212978233101043440482059681258532508346136828368447498021507779770305858010150280687705279422225367362134141531762985647664222632394173262233399020928843807583255846666164084410699267383229605552898439622698913558882198447764186483487032389523642041960238822589148725394538809298667105781384299953681020305878128313227040802817519402985672477691942593152726279690995465898676154130232081870557440834648300569225586503079686980323689914799177571029628162651083005698818977212773507862689088488309212835631849183891001575708430252029566068901805337369466262493706610387866538600667217037440216332368731893276218446424909924957111425249660425369692785560733077356212442480966583844972230398431580972080079217432205238071243260579109281181327689711760018741586603125180994355796292504709119191252351812518505193570079185652511411050603029041427176030783341149045160329502464279586647997400143591679247706510674129852363249870544507967555883366314363859250916717176800668913071026970356947669378579155438547122852694602573069132186939063005540001799170649841561692244002063369491359414423056646380283837306675222479208238787159183402489638362374024946447621083106214067138178579961805769436515362884409104670183415342980891470931255015607985842761335909080752377355719137433416639527938993244793904257589255522685574678913408089290377389752401593674530429992187650153791729843394285545549501001337328400462667017329839875346899066645402504124969653820546495571676729027768601340785389198445719792213809038268177736846346262210846691035260879191889591384774157474643210465476428308211697075296584975025805187731414701250441102321674338220662696244680573714113599058489563808208632080284469018785263498073327363433246968175738587346582038218844400873947256287121144610455086183470053138430017097275839144396929341331064707497429215493098181546333991821456813106110190700828988889402520195602454685795205369832253309834641687498841572349120855376152793620726650792955784668436955442938591837637447585663863532434536068080469670531732906064609101529555754361563607923182389503982706280121105375245304456663973462492120393377940289141998480212745123243948707427121127421547590340306010364504579637533930749072210788200923668232837515725058306685020775869122749526098562342784884611528904395607179932252550608525118402709792761592518801009805949886652910832666828388072380093433670486559102296640946217990031858011974602228961792910995926625619661299828907608647811408349868931016080138611062502159547631856695049940982942328673964529266535325147586861819766703874152221916358414565101156799840095716524728932482351332361836145445863975406327782454283506781287994863016493046662525635803258212948452320550510316939103853077329639217521313063732831470814024216853931753556600766865907883471891997602542595397748600852119294327062191317419017934056613147110252181630277589007151319915335933297275726690907482042882757559241708840306127033669182816444910731406106445235616919533925904328294830287172862768520829542730713811033496298853577812729174571927149551296970370342727432792702366277419288306971399826474301475266062866618468582947669145746893217405604479122126115784043935460840283172376518201564535232809587812050695400577095194986785767319463974141524519952923420427930006371739324487376715588161356720610093653479733047356643575695147293846477636317175800444937831485758184471519908725033257039211914447542521517767606223152763707947781371441173388247290250420938175104799526224038439101655928864423503088451915768034783761380610879478884926682722565497459515537261631188250571315127673487496691431000170421746661806979079521843121641827083411097889813621319422568488153904731973487285699643828645031743626326625318365346453105332163227974327997485865166998761892122370155534899655759819881364319669111396138132632674043236352886583252656571284953967601555483586105207765019073586617373853815309037180349808623987787592039469053335843373061206401822665290089639171167739422747458836599797384112702783310253494729058563719646303511898414626196570345559188692987388990245816945415628691434402124352003515732211722135635654632685429942259748347618456254255545169340793039452487005033301222209849947744343825671571479623324684657608282421061970037769007763245860704360344714454949653050315873229878499615185901053136141011696307079127222671301814905863966173940824264834988922224719000894428056466521821160353246902835409576899789285716658293984768754706598394280239394616229839567253195560085688795371249527566425404350545275207181654155593932155405481991409565534811296331186332976138638753970168911095896246543382950179586627953048133539026759115708664477058596522709743703033584583800973648677609501983877292129002785321678602812090591931062127072776464897591194775395532873601471116002679983216224632393942069350542063598535610235247737424012741835324303518632903889263723936841913402534217564251150279857465791279897243227458503297269171607701984651259553331543915633069011225370920267089753297743394583308241362608195147122889431268774857305311140387581334874861464694432235358294642536464279465322879067657899442232917201561133423964344812595475182678192839265427190727239416832705007917652109930227856943539129049015387097151744864124739075520954683316428910058029528775777355763063819488416818408960064178442300915135543451278432104022520274550078840389371692353258968494264711981043895995313754544993391813995588519340382264529023656058292385979076947698120835339805449410379934462779316886258656672725272348672090225906461964348341046511345343238045639365569480858239230191919576291365986501875515934767073924723006722599988251530413875784242038633598011693250931956756934940191297167483142126568198937795520434986505961972893734781341295357270375472416438628460274299463770641166073062327131617916119555944451782566033571519794377984415196895795681426108788817035667485264232464653079814498508460653719919622959043316376113169895974795344335686038176022757994953422418319739997860723150911395541981094401605286705160969847392805533878784318350798572197090686216766152477897775417707114784739010667870611642398783163395656499219334263942741087188296149836931602810005497354673747768285583403211109902189948053110359432891682555771574533812073181804260779222807855798361806023801404695856119645293022204993648422839094373858694145913655062938099611277870995465084465684873480568455920925196186151563256265399041563790182409741372164645535994849976333973848599430263362673397405401786489988367246414735202514266519295217229755928219383249319136009153561509041339385961341819939405304594677817370233917650330766409916644245151950698368910195236494265669319820734059845800003485269699677854158575089344839931938217387844627267660420305397795915242413624592121539852251867809358937234433961079819646367125350734988613929145707676088243521567506793510684306125215896407334671077522305677110494222420732467121187439508729354148272256676599802242787800221314562036647958378407226292108474231708719047305589724126132569094295828377017641889458559284423492209670793067692714330305542861202157277898940140988597979433253851023557555907223834758609815477941196692973149582767077467778248422295880735906457309124796420416222601005247097339736470500919594024053083601150697620261984057170370684331603587512020161551576065741531503172337463858152828048683729223700149799918817420874813139408127054171475368089116223090573748746905628282424799198347217237619577355584755881600882149009144621833889643420284677910055472491693413612748517550386629805520225429454069182667629420288795385009304426896455337290549082906224790775633882673502145712478503064749077463468503441961992981079751913992694366686836246722896439657357843740960328498181616886854288806107179463027396884916443470094687931268902080299873077092216545253474110946863008599562625439847500343271710520346740333437042133926890770423629246430942186746914567797523728118488312517536195968591619378825959243452557781912320782278829097501366344084735817691265453872017886704132183712321359325658356451498388852012694641465386972040820331262447545327380424065859802053704205074262195960965939230102848779438493869201382873963418518109809518992391486545668747764952317890690337156674876270820066084916184407200435637527584496126732794010448953607471521153953175753552783573265665199369264810500944341657339392672416267442270089248156366733967310667501270459848955511836538039600210091239279475563202273497678569327353114726280065575239790027688706110808365181062809774367391371407756566739046473894037741258264240483895949100288685565748567900886656353333927994752255766607202448338726251194791490712847087711102813508220528172452935329209692171708370608909560556334432016980266517176856405362067200267648766007640153029789026946348599022088328551636341433066136327791897309922197397743355341865421003140948227892107021762016564532953261418711742293642716007978826210299549146477165749533891511916726576911041681225273095238700791422325179174508433791218610292019130369218099622766124930840463404686799778063641100126736564392201672450358083934990540712936538807187922910209459327816771761907509304680617240216673697839511952893712494495001857565423452621467038141265685336169578154036156534318343616628438335328961913584306030185907910937361201876802857039853370292118813245068039177690968530329346554395543889925301846686693393595903696510337515438328413705336138603275090747997376682476972447360903257153086578061905071311005716760926420731448288712501750522584764116110298365699069553273167687254924496108256432307436372561721116166700592223548149958981235494270127078872841574109147508072680529596895964394459489980426484910757082714024722734263279042133023543696205863892874502416014121282421385291198602416279619449278967992214692747031464426878485940262164614845159747629241740131520441867118889671109806288828247395112030502940131673027958940117878171587339937778858214254948939236795810140940583172054492367992218805441039310015806777471499642678542898048680701772482209754690138400614023657562419801530574504024526718677557231120173788360424921638601474158903453316334155612379517324457253024822638540197421619644481589895094659809693101217325251623058118827130113758710457922557624061450302670361040798527190829930839504183123570072578707703096603912976805686265734852290361294554267930621999943086226919066221758147891535678568528505571166376192535021115456616650458061391049473466943853026251671705425103418096054685895387935996437603173813300627156499159599270904558835933868748929600660859851015924769456284330490807994763849268176343566856188501652970789834699836805578441262245187771197882022427980389729088504699270538398674239405860960862743868093252751115403381573687416352591760122921637768998932809363628282096316689792230539578557236804089294789826018963917255550205263574209740357313344690988757496672454676096845331234467309995497934984590217733765614902930846870474704582579562898897685827316180149349539255421834353479340196257936804332793381168437098071453149606219064375007734242576551974256669178013502402698343891001540451712550841934509469723040522541964601468995049160393061191173214269722130004360085302626419184896924484645204043200786033993802497481717509842132813188997924641348321415433623357084647206334073997580655152194574904074844131092111635098510162671366779210963126906139780018595926542331075777285536630803623077898897585989533830191739312934459515068111811883248787445618443273858298288411868841441647396264822989992520153785808459327115479248100918046165323505183007588546069755069909949869600828040438971277726470863577512240146094841327012296423627967850400498991985319156943941986069258777695653571051545458546375930622276997609337173817881112929126412991442571283961393509152759965685706358826744202960587802837604762300234991876328759329673918085970846888418407094870721837743745701443473296689630777861780530699880251945617325629809078886667456475198043445280945327166943339258630352259422730729372602885973623708308650592440073116321997319303505507874553623287527215594402628992000068599123009701334543086459690967932485748984383949610115829728393640109200642424492383142581251423004231587180528509466330585640193643601258899446313526533890210829144741143757390748681763819393571788574470324689298243975072946927996502325768951805390570930681803083907046876523925792099781080679048799206706325843869695894222753377950867719874366320096708283878732514910858313332030438373325123557968574097783381833042233566591204150824115763677674940227006304374348829120143962770371175257215063827188196576802890635275292898679492283840659088309447635796203927915014878408603974696912131371775261135959931282673815063363634720485659872225431211628410301175088376595067643267342052373464380947233199929777185455537518465907100194841844888088081277458091753952395504124804330567224566281709034348785483874082945032673880497350273999526443437367707417038359894632866991498650182310186401136325905675131458995811472666622549084508950686146294313965260733344413478226863663503692573027215431827066090883116279978639298086748139879355068403460661009188361311216936999397809230985024674679775928244398978295092139074503912696799442773768666745685228345826009424146804112804507588111843700263459310109586697429568636356381942355539005372815608750730073787310796845110155960479104448218704363895353819061116321363023016503453322523440373654192528884578610029314007728719642461429832662005100916362635208070689985666857062807245423792601634038152585001290627561331309445830697544945177137025163796031368367467509752605621624750903670120794000572873693462739931549758919999688056398315810207682135061972564196793343541922361646802692833418655722610029483344154904270017214212967612785949227814143607615508694757817418101524756404171346818756613113776296278645121836621997378490703244618226678751087025614346114441536003159813414932016461829258126128727941686655972550142694954957694076246411951728541904173289913479316880694344231579182031764274856025006094769680905453823692791780434001189349522262189849233633686114000105228498155644450318548513314676965128246979452296214317628615917154662626108380772878324084206166405561371308714303566759947774665379682643594168032160149287372604774178533520955078619500142331602805301067988061236023563734445900177828551826701501162379877403693657035473331526593117855060212465616045053093289079548300621882202185486114493751742475210095377087652015876841288880701734423306576224970845463411490327443204486085604828135042900223859051554324640061639154838217268794889600712059461192617308670463899243382217530570018299069460058788972084908928931823160901255174360759034573513794745496561396161152994504462304583017859770088857051308686113117664971690607205487365992484061397259914962447287178531882499801938645518239086749079551126031312831853046756413366601572146657140809551796169217222213788635087105954102188568139500616489220662203332153275819091658129777385607575100401824504179472140237428715251139630962471278405519443785817341736699965894140479825065110916218734605547750620209903105168062332468917951076543325381456056964518803119040662300451285591390532698509760498608038242198673634427139340813401298987059377190654941132527133415490231164375586975526278916237438934601018121268637785693915222142597018741119281894698275819588421414590621113501714589019575520468766452038049811026672348306455350548652249324446317812829404267226055218097879181660050582617938523959737008841652876749444440014059613713094994562776687258513623030540973820492457388067563662525774463455831818368422429449654612693410158378804058025851363514613755818598869126903346466895866135036431555755343465135828158755999193859258280224406653135930974276738379877511019835395176512476011075022685022647557017453798675465413753056553495224340492560725190363682491881667982178881892021162437243926162593618871752518248201864341347780440821500846251546863125427674455182807109867462733093819804447223735567809312621337134089701419087782585570902875143557959101266195937738909735949619158418183060233938475540450415757895452383685769224293067377645544282223410508708129454873856837742286305361968555768136202360372225520154780950643597415037598638206657088726433496819547421949897178726242721409716950506112102619128718877198081281775031098885694531397316350189625008073939741769045769508882346037245626391663036211289766893100989173206859068127592724847542887238602464760826807610503281236600124136685961261307485487834121872256258253288386806900365957504986359775308988374150189019221461914267133777406069604439174673229170038803867516508591938753538920525219255144877169527359792464820010476891419326475094374896654396451327758157329889510755560511135944866845175930235169929253192676850833699636392715083854192265237836989630389653767668287539427060089452922578137969012022982149452248091429209956457522038524355645717251049032038665213673932979580987291808218867096815945943399541411028561271182339568642433625384725210567505946470644305544807052546740895850515870271703177170812398051289106826951997616380407984765244079827075071519976523103602606393174867674768116855718465608840183985818357238480827721660830975622635002195974198623181167555154983844361315846280835453061728913382658772778800732829497137283716567738856507946134587266674120292977156539555754922390385145067929798065104756403103901293249451895009785178323724294303799146373405922898851341560173725251490970695369272411233348796300458604477945460244102761796552435301126668264624954500705556423518087097943325910979811637190008232414032198635360362877920797492274573762704211064124090946121567741985415097185808729389471932584056415981304693677149528032534535746489612777556494225481960574613516659675736513465504711319198751678360187552777993187567122007022909117577654050785791754343922120354458855213485727106576406077010344171822536182610805268865382478830906098598662254133215721432738641355218105033719933268849169044516151859998357332720908821470831297659052235178637273774605934007163776447011671266568863543243894595328919854601396699769089317571139739966406095611314386016668351042231513229279314451550390586094028758413732021695295279837270335842836083797250571146008974180213236926825373641849536626785966318316645715209273460219203911125712632765823485208901495457422499682004675342083369818458132529414544233343079716202570931832202452360076580108423973775329790274982517889780900853246936146844237177014739485300517893822258350384272879448580951929205158387707827745426108171462775759024550511351542403391942178589109243874576119280902196226077862161598346564437569869985782431679306342013671148100553965027380374475428665779276580244255521341989567453657949431940868985634663209876816615852985202747444196177611602218355903061107631940013975529829047147482132738986538447071222823767488581570349350282439105321508565619858678204758723671758881998515894399934623601866046484936878203192548082121081072932172596697838612387924453495700194535964881418893831218870733467905793514463649661084806951743685320138942216266584272226286068981689613993857124500857267310143644543171428801793276161606424188637891584352402641272001136305083795638024853261337735585174011904129443455097660690313466072970142696768003256048519629572362177441447031067211500114257139552470154824415624046716572349426646683966190412987358614775194280006645440269826676165161398076640544872472075236893023038666237354948534030528003597218829640771813420501204632495983880091802997760093430520271767630278291148394028946015483945124845382218794247204851258445262401006227597643689317335036439506364514556569164896613527193550422938513804955479177808053292959398153872292046913971010688893453782812139982260573546024986013140411262977038365999709619633710856979504236076833545507740238551706974129572165658968994134874047690860970167311022780756513383970485265461113915823204438578362540492917138726659836069497731539331536355652996999798378365091478277608242901469499126203217288221848718219833656699293787547312870062597122143860517566596210335954073800713354333762179080333442085464830210403275589271936440505478605860266556331534983948510000895582115297930449634160087689836278072124628660132879743300500292791638474183829287785450939964430155753420946703290120448676990484669561914442906797913102284702939276982602852473903336427483893301986508676481757735377743466222176644425505365528364495264112342468888392382513733854069483033542449316100230762656466776913107211278167511920870373083361694278133870498715670574859757359452594710896809960393873656552661970051570723150211080590728273760665547918650060632361681806294630354050670124984031398851303603806660473126356784026359106698891899262071830748893454863011946712451394797673459492029847945685863968750659689007153964272233214401800547087880650115828787267976770613371521281183409394688975269017115145967234286866940918943866052705593244512231573188220437672513744283461924325157934968806218912033679065494842223124365895992170122898765132071550425329145273579207034987479260343817605348313786149580783491871490337581299496057659071756728388623472503745097580293322274913189202189984571553491215667428320825636134449714649465972035146716046273468321318609436777846703636472256577049940242435264716172180511187602287529009507109922402216695638952151416688144178365819883970467277297267103037530102943736936827495191092925304998550091716395036710633816496935166163934983550589666091154615275308425165322659447287208960580854559119219958027636817761650596612212661083466674360202343627792098636526657142412852196543269183778311547243675773894231507821398372010695131580588634817953815828565267446446500644001997457742380801998873445896710703913637414013954710629617364916205925140251150591743269568118236263673409415488350855194798415210248756606319589003352648351571613111743632399929588649061082245438310552597039755040111742485014610822686400572670701686535844741646145587053705895181764575281197706109429283600354744174891105464791815568612907402180576004190329302443603800558880815507985809374342559136630966491860740269253325815325493782245267019747906362747271749896828102817589140587164206407691039741304375934035778436154844215774119332451930565204341833230976295943731466485474358298566097161529345501858734957770522888919611816542550327378772545499126433179957766692832304222797943042769866705317111765330229822644049076379968232608168096868628204053800010544200156849335135324556420067700205835381899533760023792858450679004452847868606282524178398741211014678902030422597926349597949636959607534171569182678649624224448707216173453011143045937280198052923710408277149617711134849118118438156675764654426130899229294994295083838833807169422541794423896099677085163633032240555659104941860347057607886703925681873212904804835220938776053226535640905747580507919672835013964583145825655792855823325323645713684501800103349408380618733553300910631981153688805245400818032902002096975307542786397845269936803308161636228834720441269386100381231570716622097813744964902294048341862135996104957427391657400229772168055262430412074389862029035360047277860319468781145570894428170709197629039069931592063290719086840181896027843969454893009566623235101875440406493782214602008839128003686757790157482173530660758053700958767236697541383215413606254281578210210729529392761705049881563277260984261301269375243126789970155786625579639154148478478149216326207518913276088906716499775814893896983629235909338857874620603598987690970595956536058607119478403217885128839537551617591599414498676098886766972341770217205943952954600192678606181905559080957637635341093352782610553376086477945159561596599653269435103523742001847901193141539951923372433150546332960678241895752220678021121767000844588825010347585836257714324617639490852107901825582182896876388076746592319824601975221117491719769734823901501108457122528527019377572553062868288776740403432377203571309306023360968600666474392385135586058759183199934014864533347896138086961861438462318071784206262792180054949577756421244039610005352963810338646469668012441971127896859148541581965504612595929326189248927334341048356796456367154589688279818051158711178340515402794182970646978523092935347716273069390330217801578738845283366166166929803787302086738710556521853675793902626714168528664798992357606631043646010775284978779498963955005263963067771819752556665929432863713658445557499703171480204664191866822549221295521457657326028949110873536305172370179464520938381929748019258991202634123140387214938480828974970970453269989058598694208017042925637832305516133506205696821395037593129824056498981961107214476535414961120632784167387142268423412937702199429594619875936136911047154520315156440319718090933002015854151174846049240359416995933879214972337160976781483433920734439581890627702194622723029339539926887091719243651583625034843173609885497560857358887966590275515971055118123096333580813119228803874454405900595115618662558744267153821121080064602327095612860858610623081238641830179833656358388451118401309904867233405846086620070779814637914895516015310532505551990229188993554640243806546069318916853370294682763745536301727580268556675994011080491134312370995226130248712417248895254276630560661160583204614467653122477771057638248024859818486574414921388011945037447577014088041307200341240808838455471615232316312089137157038805667026614164077457113416517470606620739885790753930582732078430512370809270676908895857447035865924174521207285392814563986350328969836185307047177068546505836241510167072709072882102285131321500018082000862371894222075986685474477079263810742948293457125212137790988947504790580609838613526363473001133128608849616246827630852042853360538651749263817637250553403754938542768546585393302376834748756051078718921211204218979078089061221991297730230682240063619937067377988534640296116561245499411640245352240478892629319149512695136786794025422659803880296284316310903001579048535799832709621505473190412791638411498740449119353915050568838463563343607700399927926742513352550391857957340544543809794452480899795252189026170564827642144428623190241936158369238596926874867216895870157725542765915107664291221986565568817903917811700497001813566110080768713054878107448392297852281305861203662430450008372096645699778701929681982674713475111433455730350952733056064677012220782294930869819682750171507166642291831265911575441245583235812217036130755632527520317733411737516250659994000346042886368739508269233148124672903683527590906404164982968182058419572429217904166636966625511687745779609150431043008895078749569944315340189183045807659152235203481552414487115440949492353843803570022367375978189608899493773422373683233815598693004853843267607758345465545333462486055094193391721059690855710946911840576356743365535444405808672993518517710201428060618740586507210218443703896710481334550541583686148175108022636658995074828528149736684876700965396159376390702189872392504914122995800779619239149990267001656918585843978842013341129527977042767443333153955743840593202161652773890972546530639938571623113975341225313444019908573155142400773201238439178943380496365283738464578523932803314280662204076595967697407039288843750043554807326544870611213927312799460329153915351008986771917481508084916412822539746429230532582301036010707990535415703128153286033161740589237792231782714405237141128391117106615287656100647928361905264561283715215232998597594048305954897305648687679349167721487932268755625957143021462355413117053188575738481905432822843253012542410796958143726950587387147519288329420401913746048626620016729017862953034819270482872571547387482341469552120414900963195972905237427712294611879331977112823853132605416473268806092396833248709867611753820333398136362254194852115672197141328251467023182889308862328461925998386113021042419167342775223988999546139480616399923247482889196201724169605930732859844687070269949692675508383864517433089419910878526859378839916592031710202783874071361428904822475576958204979970219859163485841595892737132859600058482913362300027928136602843644128944312518430177699062282785168522141336990643895015472727077441924931672896700719806627575903262839221675231676052981864633512128468812919424466655917142803083587264058833030848863447532789103555103771962072028530507633694982181753588832650521686712630213264064219156043262755198677476143622327530922625081233479163880070789770616548047619557341926246089183223702467806107737819997301255925564648302504009889870059469978632700300909453810935959203719304173351162571784459576629112455853890691307063541381272053780667658325580942818592343086403470497873207382302263041402026434608463189762875883669126363503788332911285987594588458952211900177101239621140118543899926982681888783554376096307213991210936724932469243948297250946927633506919672984953181887472232385712834639513195898563380506201387502572861837026755378971524487443409867937202651471669215888613608520425616429155110289960093941541553082208512534533148060846905347161270995948153141049906096366129296138873891252249469898768054866782797884511481751307288629316343681294048812164912462935059287877511742590786677611936807662472042260523468168533068981350258512218640174749473913871739150782488120854384277220974604824037325449168514937121874892642336193560983611824919348310977361450356780589322015656926458587225298760922753195891851023803747363924979051836690800986082105694932733375038491690294269674352240421962397571928828667811017115644309265924441523756791585172475270117791555552236950776516213827439137175555971919840625818771647521188959578399771181564216711868266828332883614315546688009141380391149524474876755873158092134044081639125401561610828646800712882210270890461339783978383012155290227900115715058442916862272399777678297564015675648147256909698422877340159372188737603505781776193629870877286634227819681878338290083943299987939791429661322060025260645786560972591945700443866786207361086118765426552464935415996895751735814990480531233421982868622617819141231903439507416331912698776343258145748457301859017450700454360195416112204855562618298646611408619605826502406545406262375822716662967243508475481105458421483579252728984966778496962073567748768543664863789885721374996479716976655212568139810721714094871216258833724385324991342587335764162435561752826569460631767493364866603126714733619113212926293238778128405517592819525922965849281987672223061498627559287419426611685788946815326095298309478315400461814720296868708863167022121598159510339407687693651651944181327968948731665530800815927660639888231898662191557322222193412530586998531505609018014515050244010316317510830914078421461126163323283876115171558701000811466017986777341376539214564159474058511179131650840333535665484308807089993742532938199573888614930657758028161408295329015955396851498767771821254267654018677551637750602170984539927174686464085473106965198843261474437782188998527478038814569933342937801939978057804249345344253899260635283303069429144473209614512348217130245843977081686188836732782888304309859454747749136964510257587816600322889862705192371976371477336319943162559144982784323071476074562992263955491675475012646013040270156437047991157984303163608872750105156697798228691085146075939566362681626585061509759405171410703163660104413019494208651058764222210689828553652078448998557672358445710313240664125017739578224206715146412109649628642669683094096857920642594431128327749231373297089519917759536456746110069688994652522184446416510309982752384260765130401726256277947360042834879287017368758398596923017188981353020718581942233527000604106277505166104826161936664104505221880276563476761320520424867141546482626895410431965275402474404862062084762971411814804518838756608359560572348360617312493787226273817507615902204136916807474199853049212884940639817606728598960069504062692343815298890632344420847486274392580644946433634537396565887324266423037287884016255877537655499655907020229035732236949686594733805068955873002658014034543302977340024110671440282902267487078389634974466275578990126925055839252414300918744637856941132935285781922844164296797177505860480519029171805028771510871123395789918012635763475854701697826414643057473248606471261890437503398716704702364412448791177832075086191798319735693301793890704877166862799572134757971385411316725643017974184955308529310223436820496678136787488121803989777304786507596416817312863498155091652417325935835259612279388212272914125948262888802107572096353462008070531240964700545202743999525791970933038214371645867126299082200820977851554100772917130807254356640554866657546492856673634596151709635144180135252489806208924406710508882630754432218168078935498738445022351492188496298174857237106225990289482992481440828934656330393273320820203733756472089847234270550781775701748817565320884162691584120711422705278493844722839248148827270055011512344730154895688149269628621953644390441635506455194560658984636271720549551729732440289065988040096081208164165087618907746381524890007046776768012976672498374768157329093523695767677415831738732057031289971618724377253628878226203623620126121491207355978996930952375316932141225085921185970901557463716987375607298079815188366343249525091670676584234427329811803026398062578155021918629361633978338149373038537422328105207594134732030409537730300533159127423100831039479135612217830540532098251227556991074788192381190352816722030423594033046407904283987136178091587893361606215204019974853884458372434240309412443921000506521536341540675127004854605641042602197042413115535612281980109209876146117568539354165445186451071856237230254463043761175632583315107989298620482806177606923043661132248283791974938428328984771764450855714238531003498678470746523430371590974992837142850073777219678708881098692750078480978660336314852440634117208018031567220262087978505101469781211841399879774379109107170821877744183506063330419472543420655516308017532346228518078321228023547060048266270723399453350626269915874586969032513411627777633069383541047729226462047033045373940584716345595950359785008650246017498052874597549108841009472162699786663265069009632631159690812677132790117210337984802770392788712501061187621801155037019544568144998595921471513189966583137966891001151117711628818188836940692560532766277554408843648964212633246395553726123685515172149398272564472305418085383378637829549948165367791803123308684311111506866907490612473873988808780382162749060837813743082551863528078079142676032196641726349621576723595075223896194304579762700788058270331391200601357401122307137715681302532068940586615109988436655614524201974416184237960393131802420251377329215350755525614027212135652214066571998849173515608987843029593282137602173961978944213665262689212298068983879426645593175458280072119779456843532091260608545891447649397106097484136775624337220815230511733496270171126387785212457106450439165472820867064443303610573780839331540672652616134460523327522301299210976124153447193043192657900895547035405319563310954732104598942476683362845735751385206269580708719887298254268627787837295811493624932177545294363204663162711379180945839908462291539862561441322990458364800762981321093184674743507105852896933733598622599946636477613876300924449488268242075618808745925768910947502102801603366812571747623371193924290814880246379427534342730704273069165446596464251082589823753288356065238556594505402491437335156532208929756987796235539368336376518664051919708815085243632961770785814600238946740297378079298980870011846312464205626933335339129881606338004930183684300856357189593635380735200645220167446052407516462806394826055580034777878696430807315140357378159458734666631808025412623491759695153759073359432431844472362472245560023008851000324463776526713225969328751208784565909231165216419396576487102598989797498444000944177081677328313814162287462159017978233155485322400366474064963015183567589329016187394411777014789246836413722127717857229633066216651366473789470094934481291242553148028811005292030126452153314361930745180582507250406714740413356989074206214858175332452499828557619420591248142251352339388518041811287118922907322826469489642798343837064841623857351953983541757975833176368242164985154704353178103867752607362491400112333258742897280271260199629485398627605100074122165566035949450781727458626238071110031719423584440537066217451595061500313821176941326526528099380756987480094891580520699046956566834947306119419336040833703434159876103018487236806471696596352122106584347208509360168806254894769600338534671490900537120752696706591673370462118822187063196534431606210676175119518083529851940492675748962746899709567831019573386290941844778146313914932991733448186563661509679807450264036893520866137537997877803116782256145878268099921219364349979684770119009166973755121135723901658989132063060723717592678903108540175405574518264032186755125104986452946667996476011999674762966887563642883437476027642629499558039280298930291963544582963337276371852274853528997830551658519607471282175024542214748723330620955761694977354043646984633285201253472289263315709066788145689273081664221410639503375769061827857364688499736983974146039449758306370412898812877438981685575192950963534800273834132177600421028270461065282661901456657947314566319559972479889826653063753565186460589241365112031238281119078518807583992601039665076395352793934718483582052611589796831621262934430654817243990577242050513847537888525154855113476163473578314114498232823746109271685348054827030465747037472349358189253744248771707798364536168939464583348690120903428627532512004413817810824680951233602381406563403502199695119811109849642468520117911021694687176270473329668087547971427777519312982900807301679991697445906765724410601637276113002827786199077669560039978198165667111613362992311980592230404268652263582154416858824680288578693755633190415381675876783328121421774941728622883276383629088112243027593724280102904150631461603364889846799605131017999837876098804999601506727973855113227093842916299168532241905365022760145286522700003130085434010448795202919407267283344115311123551583349274590191043304209855181755201110958992955250654521251062968387313825257795971027825509110838552331583249762742550463287649028036691055381074674080023153842090995291146268362001408751235483720464857122093493856899340785035927555905636862841442853675486317305274458509304815234893576655505425355211964658186605369238535935164077311084084044211578914260849971153692470314832797373486578368273296640523116810464521284260119644843607409333673888216473789037797691588844142143141444960969184274441027039591743914315156700869766596139146319139216524396689213028014360328796095828400296568833236080817148802128148891784677851724084032720599223074131571691648361659803179244508486436836345641487066873288615375810677052810779338917663412991630724139970183986628443181734710764644678655005669295360921718727220411856161278303394447257049833330233302325843170613301736504090086389064205639054276930551138403996668880989756599324976469676778315915271703016933170014173220832523517938237330741387924881808990974045847613359211480494868198055520118115943055834405770934807663525353138756738539249423636937837612672221697045899060839045793749402468300476198208445963941164572174732987424575176630745087550762294009124592944206768944236054124691394761943223220260113578721770943731567601372693641758114186291779231397226543187881731558865800981473125914147075960953318177192468583671817771987916924498494644217057661740817453437296136972186373914345995127922092888091375091015838889248598141933651305528816702966570676698286882767566363726068896348368116277465787241281852232220739247884519341989423213205732076665476378171519095477990883383675618388336792152997129875804403894621884194607424106368026255471489281980961170950522798180111070163619580653630873061431357240737544423381702346173427348465425610757937376209938834792540413036228522930518323505886002544005044537063375766038580978737548837535010193729157638310952677397981358124429366117396554907699655053156698748466500928567332859779882872727263203018895864991977089857111509920244508375648407596222347865817070615727272269372444657472008168687012414730907861992795300813329793977008201623106697435368667043170810239805636542033366066017177139255507115811151706121264352265844945168797075418683376281118269172553958610418057558202877607570191119662128564365281806409109581563174317607733553053189757548993442621032062235198744291975715891978686138819551550778235146213247738746055544389047708394628421362293322773955039991151640711772900200981451505935130757307023462718627141588901256143208863919868319233696600377786762082395961747386233826630730473110716615352865174982348715355881828775215017956393219982090123881569911044365665119017225637836218738641594979421523182194715514106496504593690288803409940258129129827185348424385910103517527521235712029377177702175146679058492033864104426070362976305503852967341850611968530912958249376955866381712865411299156011434659263320300417450340500549546546647622988670915412152029934760682107929873710768694860381659428219523678957489687225213717312045298026799200882901111904422975993368024914169966956607654799950670589134852612128667191561782222762652902959999977500160458846739781809861302613514413825676257392902149086614376851964943578131590691150341451697158157037168513521881521447434636762385495415025078833814444803900644042402161351229840277629995608750422844143191093918032868294648842102624793367912164961265595658486041129661888150142881941379130154992367881977064798242637581506132188671780859359475608043164991854737196034447551451147122739142743017025666154319920561210981966045954182750860371266955651409993896124980618818881404490314248108780143250185091452228898930150330713607300013595743765448012262066159097445918613541196018454573572560293187811148933741809581916679872123394741639543533895053685846626206239346265849797657694239091001501106723331430549092786381762961239285119903845954621185643735434631621740349101129687421700177689285520783610180532493868272307536302603029706808275090794077582872855806474109492103571819295240091894615546428624483134661265946934021557119331728724272604541253080070461687816010839615894762849330059740985472753210454504729517737135426225729479169067881605286886600612169185905833955107933244594361351344938040550081931017778955881305356166922673732620585878724126720825739685329920531014144742147635078169455676515505802947525207450127481230748145234438191829428115017927037605752387556290607294192451499822378517819522030829260811680670964900517876739158191855189792342017072036029323829009886140699605649869433327910636987074689244815754041523255241429471978318260139267625267851759464785799906588374495922202753875342151261569780924862519679964933223930087812050212209558721649306373299680006714926633074600481317908948368029137660853623277775960274848640088597383685828938902707322017246161141925006590412265765229593881991249787941785832347532614071818582332268953792709192384296602667312114805533755913259406910313276473888480178783183105894875881394798822077463075545628840022078910609009602990919033472031170737893662867920012229790962270104723683458587170830726741722485184292605502185706874136530455150841522915795716934403110286414695413559618189892162102342813812141401068706075300427251664164603651880709885299496512782766991110593363771638807245412423808944199524270597280321832125155334879230136159110433464230096358492911358010701372162648105945154927423624615367192351632506545100904589051470320998112988226660045447099096132692569557591724827909982595923276473799344899685888339970032742531787559004653576438582004468368935022969108044961600179973644369539317076872487836566817407467371585069440123471346680072601553797316968206445628637409780155403697623382685173649349044108232961592137668750870327168141187204068384848796673590426630395939219455774504562625866874616920321945690498884196460507369671749836610922653649690567433509538320748122629536532400995912288190242312293282444441243404390668153185269674904344782064967636603589066750736738830158412550967472474237332773444274249889304966616790211163268086829840843533684818525816846418036086589867995306400157385627710739322358810707823573197204861917734033370605620861626955993752821974163604178173360347919604869796725746872967069443535599008748751174009980283084076944152837383195663004519103545309719470310237016077514709693074600054777396001323344002478062750485391142839264687136976760838943181084954235648027544870022234745511903749165035734396319884525505310746918976272331909081069079708631483071029741093109071402425030889508436050882623894195278297775436845651757838919394776888646712233477711268728596494440753904491246921349327556648682816479124118331810454846552872775002611900849155126450909515449091687805573854881967431213419873832218772539292092997099448011923462135829164367788424622586029972997212851766816266939412030783354850503509175271194087845572662704308302331254581086433807333535329587379053231923395952791659504807285349824474078922912334872974706537980029859830977702976482304017797456426390841915512548513799280982212108386771838503243692974425877141859451046667280943070140277088338464814623550206519849586400416249560432671844164739575440679411050993705990465767860941950061541014979918113952777584190361369178103232488674371975815575444898477922562740160684581659579597108273857999957816827526874169601616947118593047329223461649153534815308207587916534889109131206009739153397746541238145701834104587256716959931334106485158921057256915300608302226589129380353666428133158537431817412054624589113314866706873972347460973072767386397475972218673237381543492456632881959836745343476136654282607897316079867820289134802490282121032275589226463970340086318587903860437084040151829504552193634860083867897154052947480139071270899987393140222656124235241411940700714858354393938178915847403129751530243222140349008459705269864289897488892863193207506286199271288164718262899203099337559217110189928661964935598461589421436644471346892452108819776787702277735424937539313767429210648274083260835970647863767185645673908777475095746256007728329430427097633046135889512155294114712183355324289718230416566162069297265881799354747225720446963757147560782492670092922538122665259063561201671278002036354513457607740574092433956987433487261370605018903193919862957748697118389488865967022062503431553847351547112057868539302842290829144657236315909760428847792260067459964066523695293602046151803401962417802741710051594571873965289025022662859827042271050332661724031724692123387509298592972388609426343253771134539810346572932582773178113699291073415397866038082697788058062277836594165752967858068765107183461574583258773262057306862957753752088826981073559698409030636874681757198248776363083657879931597559967111904891042945439577411602083279622305676499332705218461841884104754394181086117098368268675955423850596501646997713863382211382298423247902305930208169244967736827311158682142734610546373486382563315208699725925646307115364862910817430968756259212525834777786941193771817979475088132541021069769918506898571896869546911640502051698762578780072782512528248266059056457223779740120045422524210675953134594655786872694009816342569764324459185615847126765611751420890410161571264976374086676202494306061370719048272982351055621507456718533036599964940552253263927846547919849754088645498063648996910591881847444369633789021731363736159923639648012155609594214442504408619181022981673156885675959236438979269819484744831660957240353197156111625740867002408015665495638492170686766797827445405329310748837529136693046123954665161574358038942587226882277684176570177657062554229530526346920337373934538629823981732765513412650367397010444500942249084428552552659664043892090188484124997254941307637373755013829185073311692520740651244819245342902311806416621031981588383832432092265148524017276907042683065459367395939341676888144625305155820815962125807230989884437653253497746321328873520940500334941031274611541133935762179377993775717681429908678000490814826729469534032487937252486385989805618661238443552300484057847124810240955773325155328223037523326801857250878123048950611215808217229277400060528623287138679393934255679558765892864782624575392784609713547505237120344670109214449836982398998611428807858991417631210945570467865208344443299208659189118888269293863477486245994296370554785190970322609780923317405027417550109578453700116377996517368181165734100593899648244991071711803870107366726996129543529442982269568234588122401351671460035071058495837315657866406244313053871743861887452980408367556347993523631756416110919974383029874663583398804957629730851264026876419154206816654154388009264676949591415215726002954905765139946634309479130337474435380932492506939879262037212298212982472491088623067047180598527934831314917064839623662586322802776517069123719999906884707023048029389712857403141850655847771664479401261606597408378100734321359628984524919039061390978671458937696063929480648635891019174408311673174696071979167601594767183863871729738258840280668866991883721343922100698097615543675772030109879767864371942131084793282009755917235809016986418687134110576850868215565840500493136697365134255953880631662005504476640383644791515454833978826874284602232706536580531586624651078579644509775818531113687865199526501452239617658927992809466199381964389084402166326041321715681252127120546687790913457020702342749260138561567373202767259362906579590847934845222374075172371809401384595199711059523609653712953934596726367064940278633093263070729207894257983712525448669151691918488349031378783388275781616344392094468313817792675435097034193786121893898918113710280945850266796552651733726119959716964246462577017420434610805438293336286898853116904593199851148521772236355819253330182280988964029880082075438773810232058060714149584778395858009737276149782461377164575534493794708654315534966649050955823982230487760381123190955877784283199660728399570709069856464203726555159690365873088826366905464975030395861710435525852195308008767692876165867446810462052869728338620230652432729599137913497863553824560023887866331818524776750983718019747191574881098891739667567887034721749187877247383045725433862190371792647452026315179583966349822769415480649843491908968150768143456498034525365636243784764286330804430853036871647766463073272990132420383008559363066024774695477434012043974197990797849558338842619390744913056301509861452125834399200842488979551449458895640998604412959213865312106907913145432992285888182405899701005019669661977823732791928107623708374079746192031892258910182280155984677963787725123994353932861507483107276861509131261329863639513955066659968492836122291127568728921558802325799554367799790602615841459926015059965170202935744570593561717537136004702726634469047340918244595376772946588444771208541681013079745870239332326723504735700217928597700538497839241428778684712311350818107497521409314115508791991107692385114487765098212462910745669647184691363203686366097580356674398314364267202343118067423179270348101133143547613342014076387512755299721510640327338224885806262757305083371761655150288399620484013667881311140449404572870240777097805158550737115634066285246489631091461224358767024820492019395663304693709845781408064276333184215175093189140449929642635623236990489516613644039570995545621374102530857572514143147739374358445996289383531811687587625229678116066493259576978641420836341886992197375494668362611765121868356756202649158406799716833729360477041526432413061825745423284489762475459611657049362006361934991405146860553845503028704359160590964946462667409157420528842045538153066618956417368398846886416604080834183328402887241515548812754913216815857502027313269787555277377942437287250472737229611319306701467276706395535125780155543331973010254652543976544357268318340608126657404730201142287785939363019847743204516418015534491579030186450590267346983995833798340243406544330529813895673235956467708838875249071960028361316911190953753029101257216195161350954136899079934186263989367112541992020818819825223649209259047477561521999999267052284820186825051731979796284737363913350851200887193338484277919437485985656473708674397247790030935703841943744799435935927357332298303676292763198209480145377080803600207583566151114300550074669014521712572053118620384605364411437957187995763785794640871797259781317338242592854323049544720091360046198306376832791256311140252681848560159004553523264326260623215695765332862573294700753325777554135921758596324607080521185284433324301629204663589922872983423200311229807824854530326218971891605983619388419366528833699854038090454731760398228520093798398767885929828472017535489287768185729840489786584582617233635988679363420171673437046902699366868829687421476514915310104128351730062465931212628667183322597545260371655053836113983099269980369966346874587241055522111176868585293225563515502731962710932691773571072002710697682220706797913101572969828725361966335536128508580078914903171169215597057894011796282835113083705184071892518018019266363315323843021426816903048893035566682207118498767393117215239885586590211125208832172128254636809343925936672906668691426318625487342916458924298548656547558092842345580968330909793709302255279139885488810273306490799299590037117840711023746023224399716616197274617915988392996900757661509332663312246719580173012815780769452427205465247712614845157492733489042594303173127370795981483122226163986840037446855030218733105421589727973929423496466028251917085713410208323398540380397047091766609483238426164158237227718816441187288780337202836297263820048698722032735795148201644631153789669661883225105267202344707935074063374487032783124327277348270474331776201055086987647088550980049543076651024856809383618208168669551412913244415439352356735488385901164962183687303132712533827522005504067791439840529794456627433828106978855495471698546537974550083871016414521585722354223496976941808604255348912866132050304367869468911817872126411805087304525742266257023374259922273257866677704426895330481243617660529484499594146974910985079870207485199811303850489083331940916650550784438116201811042474157545238281443645211485278018526186191741412347066042832535564463220613914525993940260841865415452375993590658065051430359351385696496963476006785387982426954169710671471699404661950966472024123291985183834565784799325595845526438788212158521366716827517130997965329854271520741910139488474695901048583294817256179068700984142698612754848783094597540910404554152761426016352253197738350699991831846136460159699634207269117709045554013721331073600189901725254307340749816999893633052360556476245777204657280406750795449795469546623833190699479987615754694741670135687320778732868328355051545774304815116593085174354756819625138874628305982626074465563676512849081436898852708978554191040074259776024696608071214667814653875373283968915720043802561240912155074374196534953193316283950608565548185333623278979609658950160726784256478923448674381291660189570762507983456326188565952032062014493527504805588791763117641280460933176057115681052479090387030853900433973087765572520805320979759899919720682755786277685428297013779699673053986165913434292885521693302366763947583233710144885487124634525513260605768019761430051819754541451993131224480685831777832085889070261440382057771335382092873082520150212225382956562885012664363097895651179126006237323777188040022003636673087843590574955801733911932149143335636206936940517236507175335627100828536309400593199891562740695301098306375175759505435223024835331608236013118278742115011523571606245113195848675118377015990027258001446698105133579897276980291058182986787209386938626752197551176275603055082519169143049953569800494750799628060245262205242302587662328505433760356066547856143541561639373294677113114606067258675468292344741599151819735008460504541913656200408706281353806832546126484041228381243739655435360619145356501801196155404136597571320603232952525812764384659050406778694011286985391184376124142088248606939936868132071716804872981416855328564993711796816186250615389492045305831382523154630544838300477216105345789113812671457762495581186133205123077797597277930079621711685878860320821675864700027500458476119040301157673033834338593246777821545752214515278700740423604986309435224228643945682361807315998535248106713228312445454069144982664024899344201305769811444401582944973018987654769570190607350800302537185598699164449573005275961591204424938917554524168566848905453809800467319120124126698522987913246202793575841064791423066285943902962581979560660562181112577805501209960468580172854845129449063084653492603673802990880703825047398110379530746122486666573138120646503515715506112192516962054191983701365682432632707608412794741969297532214257696935234430629929672466350946481093376905371362382382938416478181801551667474476520481426536669463756580102228824932988863774070089469425577950220994241453552899487184352993415964513078761162891704204446855645667763509781760023068744938356267209269173700396640304064503111717144772251443183643104875841103695360035504104573450730449188951152848001135414299776868335240771747952349002988892664879706658901476641169553134979141833934068822437264228506993407133276345971849383028440154531108721545875220361781042728834868275569994324361463383281201395359007724579075383884727407818755214233071610176039688307223016498711017711934660600518900575566320871986118906842788284027665760586535061145714703970998173444652316966300605103617181360606660387777746383620720259739251596230248674904666072398734518136917232593974346569865528025860948429575994227354053968060717581087933209184603585217159618813299491298642601225785683539601397159348721617622843966908034003246000024840083480381345095470708511607177188863023123426145251322491618312474815574705994075566861799786633767905578687209203762355258262847848204021574693866462807569874866447147512752862060395795849213200527127467360842336517385821977824659394345715805697276277140608927620936982344193146622546371292515636684080213788055684282918583300104954954381892599169127410009262109513073779939453290766956148581644466720997536178342628280496854759704337703269966993189884992097479890358352861382138749405228851634882775125685091866315848412348165302022439794012583885111149966782822418051282105548126797311071854073860513604798063702471324634977483847502842628443720791842761926151387114199816447175391754310394192552070055034573936054323860271893880667986850146232576232932264286034687713365624447284045703585896561974113732434209007244831909807908060624301779134446542093224347476494888508499246854242284646705614767235026508705546010423428965284423480009968455987266191575461873727931394889208025446455346517232172010531987871637028372463727540990789404287422576663387939438088469871958090385869942190601201428102346047252313637841387331779454413651586253400707509578599181842268604942068027208187035870171405943073992265902152488705486451775449468418920040281876221611584855040796714764543776636092255224927415067110852103291667949343132200647213182763136871902871033081610530572572156992112464500065788543051241440617245421682146191100980187314227330113798435377400901383201186464474547853320883323749038737022483005828877760011357448474533926550144195624434064713092469719898120342683617429210317337525169145403039608430056531972182144548478442860367950272191706455849495609125625556968675837220270016260326803138148456762914452031296310490040519240626599283049596955603831638541002018791878549357174220648866535420155092180640763906064493124795494924970399635210199641572619922627935041970070882302242264359016870754631469568081409386535020625747072191091640528764457311036410268929792442155461859758133376463453006821979818321567814765839883573696813796703647847256219279750797269957013708085659690867532390874539910957781797849001126406515943497657790458711394951748207956464641710589097869572414550896084113320573482043865482053815185897738093355328822268977727637138761949555041870097927790974957651346361349739550544682866123738949137926094962726568854265986950634657089799414856898304885491692792993509595600827513392940202359706660771447286869499221388011456426808842188193119669900032414426187452407251188123914995514950754744911957005167698696481697239929001922221856041700504603343076934967463774113388581736923544462621643298768192154333146458796517141229544328544034107442479366578111712684548900651881624839671684408087544113727395574587658751070722149853352122130672789238956017954480640801700997541223371329331223155796235507956117614113059721151244808680052305687454812477108706318521719756400799660153162817842262265296729360653680935350600871096653791467076345604671048452193515147843170611591280302200925584257795833010611719543066083891276261569255046236678250476245725611182901316688439733738592473714022472363254667874459585787061295641554645975749549686151269835368908708083258895699427392836447976594727636405212122284712176408963387521117717502477167051085394652210532369762485090686317740118963038667323758489335791649847139408646047745418316962639609681349832184468133861864172630164382199466969587481081181762756069893412514163010685445947852635645163494414823890937477256108358085772954047335897789326798294233844174183933214419750135965297530289004395923209048828404591934953024887443653204582235726710975675476289430920706086259886117997303031904656675206244684354029327331226360811409833384461365661765282696891880213740521112066667999968814079280577407273000974038669458810380411409942084023827298035597544784400291667011301197463265095226651432782931546415185407514648254855509596387075548455412497396391319187336126343737456412331020140472141036214409679216369037961452453580465176577365868658483785409777142911394766284166409136029049551034369165538198601138653249516139498224582074788864852299518178934010953432471827263977763166012882710129511043954210779198217190145634772619670355607601022571765632620673044110073866222379421434298321625582541147272909735786087582819924531518416890361266510036857379855770567190639170539597681630862375135366248129790054017331775981156485654952240138693642829935298029752685920556919720937035966824543764971056049577387277653070208468313009955977730781213264651979693803237033746095244091972617552051811802576583751386275656156837286174011389698416160592349932753414304949832074316582649142329321986317178203946999840356420931196474741766677650025139470644703242352871497352275153340027934356438978180670430277569300620281996444393969801409548381340141347881851760326435976808634533759967203559977790139182041540457082011344262470663753633014329877916259274905820979055698827996023686388609654025698176401733161073244653695427445822803127430254963768676586856922213968290050585657473802593634270485896452052553959888162154698971214520723509027837842720766917289527040016280911697131385903933741214904682006720976726943066680323320908862414416188268002892779344814832240039283356018571108742313543566770578330541599001425386740671797354697590742785393280841268444015705028040426252785055881547793434845715082278048254051198387151850552625526303591923636260872820841898931913316612417314993097906828848499330736604295323344141579209254043519594972666962142326215543200992999308919176209006714545412609235735746112293614032784580621228486233153213167662735920188737415116076843229816367061211807066786097457224075940582131561602290163494061945423591845918781019031189301353491746144969948495486540726550929952113747196989912457844544360263179597629302958796054978866990362341857030773491535073750676484980450758133260421070404534006180851949413046149044943159677159342923261006784998500746726015710600111116941127719488278009666935686636452691375293070013428792935634538846125005415826431456483893036196699160213404672041224391759579823155198079615148138258609224354813169961016655449611805976575934580945799424562349793089204072605727618535532709207226225179321195256030465488280951519218388061391195000978948657894234258483794561722669621539764841582623743128017240212425569438493153279866157047538736724523012009333312973827214183607616423019585238159894783759940335958740884782684182043861905047441530954433401954908333723395052075064763244559733535119374476815527604035993895524195227688652974665626062212041727985503204562780003388543091394000484602895186856856917642165563606505410963608509468435578664378833411115701058093901621649767475610219104239481326960468241239032551499460973502155309264026116394252291345801385849430086196501687781718179051533061831058076044844568395391040831609513294236822520232612000468185152392633769944104598413085249400725016997450396334808169764885416086579719916918104063083288206530233875991736186101141681562927385214728849181124354311991545450523630288410107008615293970284777066880729564586557427723794599464062733216602857620964912616385361665986255516326690523841937177333314175432477203696084233247267435338379508080234890497371046737757591078535167366798569600710464883150960883774206549314005764720120873401795639543647958485735912787920990912391190746014491509503223461148874372678193841434104321058504727863086070425710106815144095654127542184980836311720214621031785593612031390910476289180087617129378018477663325331634939970056768898304070609055978272890977468538132704640008203535791899636126308708336861132412910575953947038662814583932947996522518126213764710188399224882807433170960588596413249253135177703821311453246209554070819819764378048306364827043277185781577125259969664956202170459443116992620782209276766481206436097464796921570321178797254706622849120654024465806735664419394535786680335891417540470473627741691667243284585332614643039959680978472566288310972906252236941307566947088203771751890386169027087513331963814529196543095228254495685698100372528830387158894695947509934378537943729885743292886765229352168939256782267917538075002875529857344614086112819703330821002237689688302064042022363264632917934481393076132116151471621840484849035080294264928480838484504046647705543135302665678934529304535624046228349270249300242905849609555184473129139445388982579429247592422588472197636561621610408390632264074145284712162036887144733329351899893123544409226563844402648804188563910549164338168941780127474611787394647720285152224439890278256607427579836024605386099150189374731476563865136118387816758681964888731141921832975852742964482016202994716582603301605922359173699314304683098384094455784607905424772551991474024727792992545100836782753809834377140294532391864218926749252287626526046172638052107164675892697109240958245486601080676568068889416538252481147082623733624985576726611750670607677832234070389572176450280583822177364706550306706319327804815466732029535005651152775081353457473067713687782874634106875203502203074129915828711079192093716113365567435563006949875472028476678103224347474329965123613068374794929157485069355871594903088565454558477848992935225343840393094456380639636130899703081970102173952403561217240205479963959276583783233442898204331013530151422159917413445765387422642304247185174580387950890592776347001949011766415948238553689635371247397020170958138325289095023495008516230978528918222148247865686570538266600949568233835300149090880350012119061962250576531988928935801118772425091792176180117830707835323354604544059238120860033788280480167478887565545563550963872123217793166004414863919481439127759415356654784026881844259557249775898203594370127576757384175754025462084709169192541885577672915211615117463794326899271457711402900375332306841983755394440043034839591981552294880890781906510977748972861753676241418741968884209805599455836978682346117653292975711672835882332222423203517990343549366255716869862457025146160869995878690234076704515909964158675157437489897151350659765925515517206550063396613935183284909682686099215542473557587716736119182418800630050966393933054565515020393126697003615552684444091705045156456713654521697419828377197145624830458576507700631624268723720233945467965730130600939038900348173224223413932488703593488048636402925548084087504049930529784428700834216862012461642810813545611418553230573567096036721202794690031215767921623964185400806360975088202223311962176476818955351329825790138721646762629999621542032238923973653031287306785475745593363013425020571850558232394502116714589176941558621132703410977908101505581882039832824670633684276134520912066436993973665004752559998248096290705654973818465572356296278827062263170565979081508979541493868419961135180521246610406977008777465750195739307650222252331510567144648416485652072557124887219142779723316051841132950450776059788826395431049157903664118452178418256785149744005415983155278042430154497123124700431217980925953146660787171216261525181104173671363537611001286905286813340447146685981467892188342952996162524618783036718842463305615012119679381055137557851321210291701938436750479049004822972055138634146338815056015819400337450640533631571487751435912697285369301417365304741057108188998816541653837087312605019597896881228775670696537672619632773728257327436777373190508814959359681254295286401079448471498859490608523508382528350943572824757733822663552631218174615810983872061962710082583199361152685725588686755866127967950123816589154623061572773555888754232016402352363527096977469303817516495735240318245303200004116539045276829068144090218770483123135454743563546624786189511585668403828595661219282367055173767533447845113846616365327357939609695578218440297707918935310803857931613609970189977854951673821605238056984467755985936791765020316297980863619380872400511917966273831231268320267201548527825457028184269593142282421546017400187948817962329521767381136779108869291071276118910135098337925410147351604974566779333908916807071658068666111289532047628263707830326281429062562129005180956427615788229821253942242385046574914659453705633382709221947673255123701465008527447453711067782587186810540071325545010127546471709728592184650459782373911201248607362659128320716885480863570250662030208515931824488423334574775344443927559594882683205034519571878933514459794125472085837164599786289660298652940505662122488743548744099965531374156576951340982231156864539722795131654164250590975443936259896161641428615701582969823645353922213823371284717825049924336910230690984558870743555697767580650456651899564639131535888931674012375746190739705944874099213516799394854929081594631005026433002805896292394552427721056451643923555624874122707085951846746860166311554667889996328814701640778213383174841674628100589686794312131678369802781648623099241949453092449004752020346119854687851022134907715012044681444723090059087080609977922339015350028933848466854546855959365715495744095628036919799841890254198913652068888172599088415099089074637307538098061865185658080756770468984357153977665682214231271809287207211245692908198321748285810016208251391269890541745439265333746504095544755983196834820048722735410415238009673791179377664704074495477860482980587066296304219210426432234828580997942482674059281424265521692646344268985449614234974590514811743305212587885247464904943903325278181117276868110971146061108886733537129491900294266139872547673589645527595964236315021376954541106971489237675285077708335386012529415453566009245862513292123189804208965193056921786939150904696399218068132433549054443001335290074766894479556286534931862865793818690969154920334124425659106490509723140076197836100349247671868458843296138643516022978944726860677923354236270080694325365056702419474321145251438323340147263677912986279480190090256993575891602951381886011294273957611580023572566518921427080323867916267914234281081894109363232352313553492767883025700990605626704783943139394803214596288765304493008972634630064365605248811598336806684502131047252784967406566076113072283918736560396576243407234973192227204052240358222687283420481146355979892063851205867467842692751382912638626833644917443146806222608143855005251893982896434345793343621438332011537811773182698584483890648330486518325676058159308801233501861672802183871901390549800713286659751804639641822388117747898054758627545682781120262782426545044775620011947070193165891570764453555492501313979393414906031415639526250582067731815862469402328411557205513398081588340239248335244157102825152541071187742790721166051515541950936974818978940737090473259387118744137515809651424497789722108995110568331260676453610591232643365015066259232611769452563956808046247488673457965413765360192530672890441486342349670910153849455334206482695073056386334260519913322083249483823419889847253530298188455021171289053590365063609211640752382249251100132427219700482574824859064813487037528866909839651154205192742590585329233362436744546591491515722354060456739916865314432145358937710633187833185472961106312591489444371207358754206845196469271543147695971866371862390526093315169249070332186252927662272587949881042507411785938717215090355976379265246886326628469202732782427768427199087079117188042317258762212451215177584612120928884777863030834636885898473630288979718831667664179603246593538716843356084468755619435303356218042777799131217507804968701257213338067782848547528921540620226485673629587777772814828299679696223263697636901433204320610916348652528637651458887740905199621845013317680375916765114464933676427789027536314415126105016217457670216338947635288619232292589421631018573409432046970969919895183877842125318765966148485595445376823851665814996518080096734717737032844787665299647145265637534803511032276699956780725635823561986009067373004889550650432767909967500367008219595887435972229416393675398350648415476522469445334495022905917489779647137374316893389156837214896952755825338378958971808382526398353513089095519397315479891686240135789335001744281479920846231728054697842197125847921839068415851057853092971195097446939553021073391289008839756640373240230969724668283936011680276329586118900986182151589386142840086649704238769539987484901073550801962342839061750769753142080938602840282368244615908154216683667515629120718422516109000291468431325478237404100714820835522188488805962999801721332307449398263548424417352954177531538524477923126972421106038178185913192855982337236766189530589372160706600017635083078249743476087366761791032145290710288958559819946171399394426266502617200223557785761376012648101830357477103507587721899680254359867759360627547772023741483809233246243915162809415827387467801004980872399480759786499762329190775193274960620815199500760594345276804082932695075968975290417088031932013203463939082012370501582639938748806228468765438386450024981088302025748876502594608130363485833590750810811398132085727078884202491558159347676164006119042561760986323336645189275178702699109989014825904584870158218893948140845049832628530785200733610360695448436791613040372681897639146314457764896052070931659917239395754011672048824039326276919888717504972882394952342304795570405598639580685205643664017526930755737963327160809561030556630178679122878275705122211967385590865095008878992223372799832773849604036176433077938430430757767678640212922552663881597565397829571481052875827398954141606339734815370241763932713385183194598233722031655111457305793174519279827151883898332500975583455386889988907241568180752146779670945034019300354768592755582315462481712388027219968720156557297084213768942847940409482197147939069551882614105786607683021272254522921594607510528510597022651245827399982166762697235146798885624683324471436029987472655864792637672209591131757261339447389021163147417358236722531602726105859156316101792812474931279384112046566385803921501329662312769372993596536532704010425201599077519802958737595529197763578681087632425727393583489675354740903885581675924419101571712546610076709122615332833728118616436055890807709547959272990174360412878301440781325225492344742012066915850073280117435705223570836331684888661690809621243484762886543932292238286799017513601405273335300074181363306561931595088251606871985414779798180149713303883322216298674339606757317897810049752908484638711709901013831353007165040189241178154402004213617195039355103397632701111876876702568649737264797248421152135167483117848076927860187920695762243091869124041772398327691447231886849977133805819210001978650719630732173296925445277722153114464285177737362152592441601814404266088380785144903998152891375759714684372360639025019368081743974969618591067900318012358838034282841337918438416415885824079775084765938711060422407107173069977449399304655100869754480004960029022484484255396700930558839501415992038641693298638908358779468681330062982643371049159223970996422681534996853297794240876210413000920035110679563673426977357276958067767204926547015647315449220282502683821207753185965065715605531726897794761515517665900211715357838173723607591424306099316968179646111993060489187700651992867555170885833284474862509998148843914058661029200841894413065415898267337900664849320199980897415174686424399488353443227997867568732397069679926712071737212070071967422023129166060603670848146680303161964465772925644317987229679168880494875536477258515117298922752638951616073996006193546623456557747383009749649345020963797505317616651449185095910021966095178062484241089209518602201555028095290298894153164460378459447883375250163969110416001487620943854438526601958816937644372591911814942436650501092523509037458384329344912936734506240120211324965708751103866124858496891406733261551092541937060295825484514225307826158217210865910553659229780832559838408533712430958196027949661187986443139903999990928884112327501075503598396972058014609084919900663326285213885938632132431015008479042383685994689764862070738363370409020314211368855854160540104237471324972050968547601455233970621765682699382862817115891465353351504211617739476688618943457764441576025996778554407130568738635212162863649009345417797111223100718535062031646972936782880927254526222948250865798201362416371496267383518086526040096398721545861864218969771342634094586205766664075522834846567576402428301018919907606979102568695736590698272422118575830917883134930305969589980560891072755481415114789725742450394491945392980903282442638883947608157335867448710898918895668614342720513350325125490586094707095137407302413521501237761836544401842427087022569655417667121476826200174389579504651082708537114249948776267802233155194824728881521627578814376302084653893827113267907162817764164140535795892933210449858324676140848875233716865324707978210165238474868399208547998440211612423162219477870963599078407319097858339880998919837485441316597737203533504846862799938716617758160392620862844644123315200222547672164871587486543183841044979503783328837470437328319271567902064079661183471575052269193307879979036051585392870089385851665704257134420643884219510088230478083363531741254608033624963100782155709743852881450531939724539993243594140189270944442682064546959749750677104474954356354460981093797033576106287870362379717674958670026538710041929457981168471138745735975759673916557496945588667217773651891322551024539828428739854617489661537046194093887369099629918596895465114729077437714019310942806410856514675925201064945049572829209399756242743844832684500052275474039324237520508106623472901649657921136409463670192852096173519346262529235709461207684741628137167465222111502522792214536564835614025272897081097664382376127878775092096733367065221617222875300140821217840562368677525242385347003123731248393792483600228686168037918283483909576049988492949062362178002783089935834606144626517242778831843312159382776386030439641643221090277814516818832702291930740624032063533644943749011693525845479573596809046360289814859661619035335137233130687578518514039659401599867862037514085958572825573716025361751814574374115702077361551516781250199130512572774107742135704662175300883047601543326567240036977856586343426916819817196599458685364417937662051648835517136712782071786458862417085918754867835589431745628146215520774712706754857686107384038085734751638954837512667346717793033512761005183009844285924094164798948159906985683686687085285415098194937073382376130236941049333910421780583719699676994593731010731149083031038957649198720474276654220353313447790900412360843943481401927313017380243278707107324955996903795624695579990934426754052160779073234919770372138821272295758881964335424314500835335609443334701370262865869756606094222438604256055468027038813334801867420466136812673703550391562810097711568042165797600315980417853535510427050662958788465974079839221581151862251514765740697187826147160063093363629469567912038662989897675758234798979054815137971663465001006772354963198601494901698527345229099783513231619821839226681483861472937718473830299290017163709341106962053520336563096339988972223950773646151432893538067812232581446818177137457091075318393896864720850090218708060095210261548766140335509627145285647485427817734625052818475863898911814772053731799721580281818840404590197085161952860682437113206866152792366500870699098811398511402903145227385261046614494131207793981462389275014398003093977454042451435872055924499154222344332878048910737335691817498999007266360209859152790756760611670487872162790794972197173811868755840145742629513412606522676291382764169040087691937330181818834425379008147103859347129531336681162141748295569364583816259464679325285672731308002588965552790060847877782964545225794074508385575550903987905928256988176362967631553717563288630748048938748611727667359648782389640042562825847552395561821264861421222147682786903880059466698009902586183059730484488675804210814876780644144849337659005658190636510906875918718418425568413204126060186678467578841643697972758394522913422766798217758854478598242148305502852569679755639713406472664126721558678586420116166142442119664351512603133394310461761753132419121433093680949191471693620921411830508644711490410116733009178145243834286320611806979808265800072596284092732867715789008606159893046560910015803488068630548682659118511140339540475677545233419775364006582792776942666478330846444232100772017503231781035486844988474484672112427950206566548072116743722431915962174160240236712691726032299848455210650765869285423091840867727000270444654089945308749567279450660045042953089749779638127826522442368258908615958154070105292168211792087595396942488973542892257361287506391934007919945611050348916190556621472138144191586899446786099948808250767954629633729532198379248077323934241910596481792564643659433574478103896299922438455221970353277338984104061842834781164337190011125910758401292660934735384668545566048213403308587333183039941187204263884045756596704859371316892048618769829489163791383765448324271774789138414063933658932577461876311538207496374793797706028014538663320262709871638657597575162122759691069614961329842611544830831953293663570090944309673471505246496301331330343355031473280041263734010148846116752196075534962376239541264264873900509149439169432416229063847936289537695858678876883661277655114608954924023306307409519820585123485217827282453632938917672563189863923802590695529886243207109649193687737779773071434000185727925800380485568134733375538538486200162161124454611675784019798072203756976143841183487057214466769791543672042499501989699709918861156785076244501415239039377835908210898433635168589240177510754750625090852333921272141845347336802794231235727461483284087585463327810414588330831447596436984426537068889900619456298767667932375389540068359737493650422634841940252206985726107763626946119652069935692209608175651555444319411982203321424764219450123581607476087376616671926117837339635332767472697971280629944374775939003136803089862865871305009073369760219943307957865088070858959548640334933053533006207066295993368059900659652177512620667714910470046216545738827251433507696912993252213703778866217397664799419371908131908101483609456123535448652024916370578209718991236188324980387795537617882768352355269221585700800562045407900696028648363804636824729486019974177259459809103053292215902233892955393639952074191175330602053311275341304934740631272915715584752438601218510917707359401164031868233784240121742931164359899437203710267520408166698279862459356913071013920699353322221633398961103054222606776011272116484047346365330738191410777090765037054890803063862316504367223029637183702006018180249487915040962598491096935497768623411542443062684291465463702401421936117835596785698086333154372722410505083766106487750923009221942682778315901919436831429519384316953522710657285601580429755388964561996977449893195429393057434385408564148334604659057703082170399204368469482932541164470975314215739754366975225864986869279448743852357992170861170776752016961745254034830899714109728803688813581468772218198496286297930549044365272262239030613806806212072269758461579798383682503692843129638720029478784183237032858720815963136868128515640778219790773742569426966788079846435627857633057999885615414957838735477530741350816373696389400407054747242498897734812493389326768880687319973335844331775253381477972081535600053931092246531556090226563965339518983916907528908845169941183811588840945298422998488389543336546598907213959132637776243219121092482306865826822016484145074679247286891710076085148306000139099297451790239695175131283762000118532227033561532231146605745532309778428376073053798872010325248318218883175511006604576983051283235070004168329609456942700030535956832413268363568263300712309020624150765400847475541101848435429340486921952988192858597868490978761458064732539512667514061023184211702655776621538803975087954915622690133741266183054964667859910078263989440957599387394569171318253471762271399720459406032057642169750970615528977749575586166900612632711551698530926653573237431231790533320417044609554093831035130479963143662331397909010180134537359021388655126776855347901451147548648608623087076216556447960679062648924824016487900756736819105746205110368232991869769998065188917398203907949253573366429428736659067764500969330595203758521801235755788799593781196146142452279318294502829470834753802367751523201718078586749805598376435836560164380315204167642434234305449133524585205053033637682578133758780194726338598607759614833177750844114354230040448169068178420373738616731924827700868891567194794182771828516825048228777657131379264233618083171229690847032526758502717916520907412525568010969685606746178057191593332191800328085824325363743876505245091752007599417891820096537931855653464642646827158614857144036359055252309705568791930685693186135900546102095171014671973506395692652655923936519311704579514494430831897031669287878866981463485316577447531937156968040312706646470518798681163746808697637224662798439771608520344624335905489318688758779925122441701428080889655418321670052096063142399191289943721743252932569219990767573226859579197786269185184377609136832511364247093393764288652680025136797958413073635921565755822232864230388791971776429584535483695121918378640199989199781166931415459967859984080840548696536534051431128665930928191251283761106042408736697827665239047974320462236616413265783355671532994307701037068811564822589358803858945254733108063965154423350367384233213747645012772657598740753102285763961263146991216829677978256982787297692695592438470766252116145441130953888868913380034782505786406256576714730619323391423262009469924213207316009422969260120304756051890464738931498344194634638106544376728966917701395963007674751710534565393015806057398044087763421156917563213443937074600825652724324100509513077114279782418239987614218619444482611104684052522063339217368861472224246486794405860719722591617821062781821570703847699506699222545057973909779605148953270433213291682190735708642716788492329620039055311534934038438002040299434699894200711166012994157627303817406265193420959419417103428582789612966574336856165461326857602714720966909213097988808733069931396023061612758128267283445756803887706469652401403254653479186425314977668949715967936123671216384646982073980997810007967516409752752348390574788646808771765418469001567352133982905643543891976394129978770759036464653063972115087305591524237943152730098484899517682797502247381752763911876097439809397399209828429020835155563786346699175757607521989306266457564405288407136628229094595135017362950880326001873426696953119072603230593497850006449383285998974262232793247831680869943792170771688580647493821840050315305815362216482082210484233077391256905580860421320789554716747049994860245321496616122122627899159233374593009348286725440336978905095798615493926600465333682928934124111197210193129462318405331691834862941443617983046930115530360176424393098243642746560243438162568483861912931724651147500317646816867144913904097079906174705415971926593577484546152721379742177382064407097853547313830004120985323600895731042829091936328778929862174351174019987866197407421819930017945327651300804370992346824279484748225349650952698019443401859095645246103585393371768120641928654154887982384195653568313100384686402501652102075648579300456117709134774355966647387510826811712970677612756617416856292459991707256623492131944054058143186774206491621048248401514806254151981665927363464890727595795250407554419134197509707781158690319490190047761800066720030183662658227176216338699679367889490439419911984502603264568086747901683890580619533804930287881698603349105839373205861536550622137477909244364728658844906604446869493362868017110226127118326200898059857263230927655391047018773477277203358949158839722089467000645616043647981678719348699641775008098595997305890636038711872326824401928040363996362154672872366926631174283461701225025566906650449992799322848473177644147367745904347008312116720090335868225641219598407562641333594171633565805591956943317819582410957471428836424342256279108848487806541549135942189508593028618542230452307226983475760194909615843773890132991628144810017711169757102249347466859285843949089842055952209441883598014967604815623200013922139105389614691945563295938751841786618997373909711959686053371075125000370905219186249428313508084285662471738951784980282921196398781029556696724580180230372546872083377444689847837580422784714100146604486230000694158277809907512841356172096477982460799146150800922951551921818466724345626591224446904355331977963137440226841992080665458271051254231226078768481414096409141348867297905854471495887522063273628465290376978363826997138293739737659954287223020874088278143226222026481513427467224429056525111153009421457620462942576936597487032230480503087356061526183076553901678607993304818568943838973365093808173101684294486871433123194351725293895868126192458663214016275917188805372237868225314488991209282814106465147894590989047220231514467976367177491852648456801223914206194286171568030099930163295423836686624174987502807167105944108919057314493749741241040494982923425884846184004520308746080071394808436182594924987915107894654948633692313537239599161793537225127821755983588799040990844542483082925883585393090172123033948033078607907959023774551082243271646725230471589027834553302577834098964376399613022702461475623465483553971694588436217239679620337632896262730237371865762515225460308157377981548785600661962643942245688471004434065636473676004204391032192906390466387328253626384212182367589560970921693000441433835328305462917022528157482538098693506090855725310267881189622575671744277617702830503270999441677382514996712734694499551351184231488748962429684780129350489210914711235153320587068416282631133404348676550699143358003656848381778082052327096754594070514731080907727057562735922877952175288212229319535410635743255143510772667269208671611759018255643052185804466409632259232879828593442719137167239162161089717567449559882062681224205752114367575379956608906980377741831246481463778473471592660596268495507974785713950039119217599508045715760107785893487243604993835248289494145088225927189194792700276830608728481184544362786480354127496625131500164888256958602033522333153710573801191612775616199482196407779634936801863745836533817942223547819586786220203764993850768765928255990707239694071931436341577761240218162258470227164680777436952994737873781628053847403791938844500635737007185166768433511558845884006538115005750727950481484376432764507022285861293851040695390914197359631592480805560197251466204452273128234042485049658647297395878849295501166803553636997773918450744036105940807561110150306994787986746202362398362608036760799419180560964807455775962798723879644250299653626961380007258746314506726633635768646244485408811539716666602381118899866096705989901942613425312361007636785964138948870538589517821731295562841312076207291851148839517451394331180186220063075028579908532728009151302659581260494212151500114719449119447426803223642742751531040948211428828940635470861629113297425176588618151804419482691618147255229325348019400110512085636455108843350894800737369224877702501076428673528736404856030108062119510578698541221454997056855014920115533399710005427967019849532161314731107248079577509779771370701413059533463250403946070110613628487780219324870060138734233576043012868490651138358292407503777693610166959151593462725006608018793297703177275266900861690173452183665636926933645506862207465317218541717702013213633095794404653061502033653016417931209070711279820603790983973767111745395178200785359818971123384633339069268022078324028534692601310935703143241192494702119739332430700925622962014314606241223306555119439685222471809165844970955629826050750555970417845254329927211081998333579993732050641849850230799934733403000496746030742867272062781567779477588191608378586745321179455676963267623406252685766038632989096739090132255687559049109265139499248563326752499213673710922701844127814510297012677537221727516684342201992443890730609419487927293803902672914769584578679784247616706136109363168487743830474484051408263183590490718406880268975208427089174138926406619419837576817493494930080443522295134030648928319781919797080115029028187946837593660825043004490042772392500820194290407965212702937637399489175129711671846805702090437065175007276844658477828526170323211758224372584970908962747531523360065293034698235792235146981357475614006317604146167004834553041883896896498056585753218746931293973197492779965766901815181659671154230902406756311243693043054255063151236800682303995530615977483359753855281920945156679904622704180597726967026464085177895914223495888895364165555117120416727915936810598461263050407733424488649310384116152667754179991400266829162820704286906335929448564571736818068131516938454947071163958547831016812305892700983357082658109571835513048248099974096655547955916470011538061555861380224272381748125065274986520389498485830106197752671017639748475747200775886893987943564404548961536627331182172790980748066192945432894973300912348376264317838427309759977351924124628571865994562723898426572642077293666084814003229176396603641321452852977724393123999379341834277750992956022811897094563768337625497402412069640441828836696321706753645889067698472902767650925378226564221346734842109728952044920349559636538845487282572480050698434840731872413228700142344813901498958972766420198735502406155414176314101484422405729975256453048878851497906251010186100176084782641424447102746235740592447317773781111313907156924471660442432066879032641835263917669613342403088484045197887790810439772564702959584504670648276755441594279088867229023664424593110772567711140297257950085957721031772773452224695121543867713052188256467687057819411000083675030101574477110923894223110134082002380227174879921468338588179130717410262608291334132767751744246891296621986846740257350593180820108483843165783924487057127817067802678273180400941145408354904765446316659241266864689530026788064714974912333351188683489735009155864975901409767225520017995652879606351174594924778550644057613395562041430280459681381342347200946391535550167919663407497005929786702714501924493036385336301594612074189387058006473907486113005853354420821735497671208863992868625053651019981095560209170841396805817058251676224493748903166831916387467541598496362344689186752030832103907557549833503413113015380659179694130527541144894986475031939175698148291499913049645262950052128709937499905327148771817946132414036899481660722793456292425876663940866456069050822451486280344142913315299261970647996358046726042418744355970451100406974374007808106748060055578671381368195437521113847665618889695051055796653574754394256793323683167162629103065149200822738543346272541644526731628214153878277123466325314308013602165872988625602715699853807777791896005019256933507484011151616149137625491332693441450353326418070273665665355465294480360522290877180497764306610247101923590897195784865454322946766278987960787402540034224930340872978243259302851327307972211754633813519731836222996591345892608570526701387241637424785115189383955359837730194843849545363146268793519581507577256792923151063874967066350411388366288869911644859684714776568681324209964373131315106519570826105164276355830853551742064957979270158555394338306469755033253325913692776493515813691171782699017365024639724750459132621167749081484073525428457865122948207283722399440131500036647462289733860984052281622212269647896430665112171459718842154026884449800987554493644701989568538245659015512287995489101899305417082574542514878885961052138586261811326144862346105595233205070762555404766834926581566736933806401465915168730358914569644529713975593252161326945151844688655692442949758759538443727571376653548794658822490209180818242384301641823729226874145473520833267536804243449659725553715612226352677439342193171229265323669919730403226050943208894933414753361852561220484198117408121493805255000460079416183797195855784853233508226973113446040077370688454247276927474524584153153757401954140718806708742035411246372523137963077417148131910365139817788422298931306581513135663499106304510524887675481967206422665115393788746479796116896047335643667586726489002355438146100070751837071578706009602065420564042995329017583083405407486876440280278963082683213103607202703585533103210469063683592957486187553492593323926672670074640641832049557803700084736763298708561934263347564613796108794799352483001746823364833906228383751034454558620455691899356416677737104564342844309138030483805715596045079551392371076580095665579523368705664843943779115485351015888458944363856049017754652441240998445361194478340960786679363297685540063058891526382983329905988604817733862398044196808079866838566456739839235834973857125721104893626601620346467094998897442163446906592901286616303407175895318765517606512177444696374703555730899698360261475653253754542117127280251613703014823266657420298024507524204177118949856312800579166050163944581080878751577081501200229631656867585371292314761905233015470543372442799125962613832568496725831792872580153204638349039435895443147035661737217824136282352329087553695762380766445235593006798513139217065113608997788647162469897172516820779949519740449255557353797917521905923528724508059363355932722448374402568091556256386038564907861048004205444096980965051513162341226146933885113287574743712163890921503871729756801589297252508883434457185008260169790436769898857737393733124658125441107675336021181336566310499664583203719593279111025012166787816404504200942559490931278611061726332166351867707586711185501907313009117170715853180631412747527567478017953257665381579457935647748876160771658465769331369277586685791999958051395520536444685413873963643863231206075626737410297284283056704842179831756618513321384966973588121447146991587205672993057326584479790610639985377187362756657067544994561959753879464700888316563013330052385688746456300590318950726719799391823819846555966126543517305529219878243150327030911407365969806668986999122593844842899637355034204487275032846149293796110187773309451867139972123668772953354149559534441436040710971144890925298549205823263714624008509926965024345416838488962327012961275540091274173873342225332167100233530978087058128596322984759250263330084754179656518869867190038726362097008963611469786944319680647064820336190111616337846338067269866264178088311309450255191173902380776292125843677585349188310518930176473088610656265440333449455645930478049434083471378463568122602493686883107864562703458876345129866877582962646773782789186233827990328822047457693920096845452224222132276955459636016143019428496622374338638694316660494994007913433871648091125043826667291026380056278084436084741244717092714329175170830037597085842088862252905627195351789930704364209100642967774609435677043794908724006373706849405197892528634601025106540932717506542624852929279101096149391417128573739836641777082323449676481839160033856227373015042421147624950022515163805395727434401130391382954828745824726058387810890958401229033650508457842384137902863318112035432559919224025332674617606113871463586089877590110749163148267439494252725429593838504778175626333251197819532574758334615335477708144619300201922713456583094917518541005486094568831600535009172489607233627121044695656581557481198954740757644492230625730410593041372775708499635639793780423656425947309603462912906642625980301789037217494328704304266131096542586715008624886165214375740550459426676069084612479499532668290776124003200613798923210980770240009557422293699197168454479250693263254615273727612332741878988511120994396062063057767290530999096811090056483944069715178749557245895603243876744336287990650719129791039910697731544724701787322934324579635513435902152839346201414003145805980185847335467325551788674370291634629519144738031792608036827860684365793638100750487021644639843196184415429770015054034572571255183733580650641307977818115235312522910859022891625312966484896238656021506725955078217705402340679981178397122740288695180836380160115402479239318188271824933321743012974421836631254704610324742859230725319352265298465492589106387271185602208302581084780485100715286072545573448808779358476351226047836685591827613864668913410043933248747127036880703083876182801831837967481000502867895702412728035582535095755259645394406687981276214741950170082212327218570364206552385892000988959298617972621210233799079689136594637591751345029795458559187027914128537452137038492211003833152716572363300102933035433508984471297115734272744269589825447230914573618271763532189887842150492978920747196212317664024809026255978777321948329948657428927602361504897966428521248025573836910826712416535067293918758190327311503602380426638807202325930932546098335942842982842334338424271951299788067421015417972797193802499532593897622861425872576448091793750674892851275313400101402999173486901351187870605730512824777876105410560797726314691320822097551777157161708882372225651426901016976254415467580406768231689610886672427489598520662435851607567792661718041962403625527478649688000649057665101342987847288255780385126292863046571220816042225573339268285090296996961531395879160419466070877087056697118984248737159213587314926515222434156033410663433825048317823904485251824075536483542288296493337968784395125120385339197096338635286626201960270418956643108313289901491808584784580553645959623347103185937485764953965448574717017093727387159399732940397740996948723513302547016972280290216683392547265046961987598556981043222591111270943973263510078900174306558815797595541036778909001197560749027468863837043084671762440268303356342930708213881594574855815422204793102866130724815728362704070964057207895985749704459385548496908626513290734601291911389841417783436536047122056027309319695595213930967034123720114622297802955468311832171273135792351218346078968003248154773921121969705925414688655461850085689005446193591668574656856044544736926493374902382502808040730702751150099136019743337254878902111448620137957838324798771389061263906828345414557397487892612656870790507214403179298877188635296997353963005537710733783438359362371145342585700706685210790710697976600745265519966882809888079443871750709681023783161870628692714543444132647297004725903158695066538546167185302468970261647109616219626180976081683899189107794567172234433307988897978536868569218824249338845337686733868215255276381193164551423377528261001968033022244930614389026366378145459693607370728014121146471259571357506460262862223976448002711916699346782062224026603623844367780881327468120533653826384958805246162621371595693082512132136576015590157751842785215670633478311823784803764630634268931901997789936249579142225606043670961544589596745438374289935534541395624470554143205042473368250783741794761191009663126015449182046874924735113426220206590339088579818762514108735892917638538778497417012635438171818781688733113495043750475192498349665319038034846890266450067082984001506283138902963397882886924764213994885227881554151728240863320494070721851330992946671496712951707132785426816239206602482627311302877207845443069514762752362353167205674124793803960181125078907677788635618666848489330233861558074416118198448396743101620858910328323173735437629321036778288828592783978553539949301035419111554227872650725915496256264365837626423712003566775723701892619569289191828500939880730732869921677682090025321956555324105975527312644864878909906464545052896100645757337594426193165601816521762987964095683280373406376896468232121239920421481546837556425346535606037273240722955078693817052638408637889186996453912315029429249186031693682909572340761464719317619175177206761364434528521065299112241695109320368875513104138073827586103231845368805531385975491937316877083354850700327077003957513908638484237918011614618227616686195556615690513198129545219893413797331442177158163962978989879479045163765498009204602824348038318579295600253048203880799056821683567736426207293747035875801396717448479442566497436619638905627643468331416735374807827661129827775662136643293348445015833559878211618954537037493309537197066168671638336099859770687817092771284171926738014209428646537224475910231223804444124355238498725360767761993223208985901827699867740854227331956842557840312372321903339805176245532225848845615894109361010139571069510425932201656885953022719865818650712985289988525495391923950116434340191921270380632236546744193648747887288144222281745597430793267635122541121666641177269212750853526627373535196401989534492066565730609882955504972700174179561607969528410867093143087709785607038473596283242762206899203508409079469741368508481554641206020816086446408489928865811821530534058393122185010543417307837382133379561087673688897948598729104058810430514468430127372980645254863148386146184095505105174996562214023622828266561389230855362207265742325301370659212842949426487493249903257110275578570468399310058765428021288329001315784768131239875737360147501060001463022362866215480935407666435137713004256959263198112987633354767073676875262370105123482611800256779155491215425452515932406026907657912900453330510764545699931821419222613219313271947949378718495910874559031527785289614831945427895419351292388037185127367804002634100187079651766065555275356635561828680928941705513144323387155666074588581739188175484101943975857052066888773577096527166245404464062268037487967642798619675100388592199356184839773703121714639731736572980043672793602618623622270799929718452262264988582136151677863600315855223561738103472365680800574217636405682070316596555574035958908289818802373202504622467954555142235899969351553869574241693785342243517866248502797501378072957441282081825448560617223211204910237922245062871894930252748033939094603030245258215379714549935220197654695392919859818491074869348136900276741994660793760383185059100684802703637469420464476126080251273445306600306579619355422653830216119395203236335787032763107090744844681045784537985342243571188098251216042409936451729880144353101641696291315295478574372027568119330006268536191405760452853450403628534875334158071035571917378215464874339209794804387759668600517432926563054838612750281253668029120851252721895432270869724088737841705460545887824090692537019769374094496506502173200551296686177098971834831035980467343145185892182018617570011867446703178428351149439106928102011579630234407924840481470347449807859504850993868804598733348650433800555821750698428551982017285642035416868674638479869460825671486121110743304441629689990781188899183811822385226182503629655356510564176894657847854496343975554179623727679218438071373657954995147196165758217036150442260229114689236458558634954705763895056920107869069114769489947100367967178776751801360362836665423804609382226472443970707038999346220060800915474975356586679174533358072043896988843198649473393290628771732802574132250561036551075618063356426974855671113965318100353500668655361748794681612233057027594687474292883015362852081212518751069842348596770932778555665372447627403893813925961912696526480375142636218901652930072958499483344428860854694747580051729476918776168897489384433760972373030231357845537368861739288433475640856157413349327040144522221599273069479916521187460477743167362028648648590820197447538855158595926204031725415683520296810853318413489209452903601538870719474136081605686964155457140822927923281680689981077912463244117990005580776487517641350131599038801657730512463206238062897763280315719646615303643241190550692679603955223033759005879504231343440218007239115098963312177102849033619419131812402409123908222597127367110450066055971854951192048666387809013861653917208278719690722287391254461914345814478271211923360135067134908825164067669295043770242117850382919999832033571165596797314189035504816614186771166063203477920832338478972716110922373052626604034451327781599165439896041628664481051691845188083506102816046331836867196818097913112537426370386200462945376274806514207914662014735130217709429934659707299595719565740571973664346383769784888617638623333375897667071689937468656624420054490421994120137294804691160062544804131066722741552613667222005399046195421350444384163079805228659024976664735399455769048095611402897916909261902309826092261995327718510931503458577168155276776841258660520986220853230869230615893009693361947088992226225297574371906788265867939766488549012758649889844294663190348729769696546704190508286726414908563137643513028076677552361682736736041335991921661319709820815200553030413430266129232942574773539121507595369178225136413546563395141941843753528663620645706537320184018373025297741973254603615071158565931808623173417235481891046652551798518414002211398267966846271990413519369426516055866058266284685660552523155661972314377717402959215087969872849799479893631931709209768829010687986863544608479450434589365599609814172290894615809257639376579791340560040868999096074060137613815633443242048919405615890491330968698950771043804940672221869856461825057432131210699874632001037991676498082397464558533283618419889132385934382269618184484556791066441589074974663733123470975010721659721113669227135216593812041396163003835865347985550145937700195331573604707918403612402249453949717881231357016146974420370666172509169170302636954231581247215196530803474642931344204933697750353635926384073043205438437227084138125427124082792364726675833136912507931268862626568564792778316030073892525097122337542590381688202938830515039965583926126675819039922425799715524957049840178078893970359662192668973358185187177072573278426452540656652646921639596183607635366047278280652955716761731091736713078233076213812650152382614909476016674425312432062788080795827557942599740613576359119454968984308806231549849174973344870726775485955485795146523416394716102617431102004865460425846542242686934741830374052492969434419156951821326462779207850081047884010811052038067229932590860533353189051380536900179354785406205911639529070263578239587026487481983798176951652634867185557654179861429876046263843857796964124641222179390376896081344073663148638656982259098615901700136213582951931787939882493330441915948332561180545772110067501130953491510589613973834020999224255718206614235888931110808200045526401691579350597854269324901040338072316955013789362370902782837032602206082743594435769443221244375776992909260356641794193279247678377957975684781730675915813898891156042049799654699637274717665086593935377795566112513941329830638934456684963524526787676094317079241435199700633059116429528895979850925733877254050178729264795114767651166828523227067694972759651091223991825258302537670889335382626488097286087446820164884923496200398032613467513162143655949615598999998194007570180567418327378554403662503643503814095269422789343727019045643286221819255207199879375425918473520438073183739910601423894784247298583696805375788773923509386584826562477330371074025769348638965225962917586741417539323305178578794562232771339157165025283687438299682570679933408377265662749458060115072280658070979061225651397948662631343892171207290899541406029407891773121142246731025007628435592404837001647985777509074625099022855979859688250482576371911153172443857454745302275244837917779561499429686532995605674044947312416200234578643627945807994644205492660318107116054235233900393079283145963806775203481596385759323590515641680222053155839025146997545083453940306453917798490212212107052525347289668121880002281500282424040903174356924868132245378850452088890336665081231778138288310835811985132511561840169128725307710181475728021163589122829294736635674429528510656789419717290563366291185580144123078271477609229765565287900549722938861755613838706299673095238848909159929074776601734542350575612023429899364435685186092002819291143488687310033109447858939729003134221474095151352940386483767515149283159425143031527438418392299541264468794286751883827396176254058443542866776516650254264498546201164177035695908464307272663114078810051573910555125325224894832322075023793859019570398430707638974097913563794813623249428876348895070163223155364434584964536292457725823563353588059781707493594803957872547394671186940028359645863065238067111911115847135964156947012444193586720954872633853012691551625663826216450403865833024772960620175296149592146797587232051207630860254232596103780492038803386579033991151159770625260100135693520547169399460527378487352465686121013398591667432809091730176531959836045831145223312084222457768495356928628041547195715980008553210864614592022957155009808231252167160721779253213979307991671744986435367684061070454579147832448178544973439601082173569166892499825408796872055746903701008901430625097094803879508507303881494091105427295288142528824594322390489842599791621775122836110955324211892301252362918237410266737228496127095651914744673362120911717574857367885443161662851292503560778653828713700250832323560600289969200740976981715120551848462245575472494956826940329254059860867001430059317076235059671493276894235021227957840418292389610896805622840377078530001323939575700739220738276870485934955512849592055068483558022254120847185235113276806861948628367222520031297200524792685225518330034075313774427428175552211168770784121405331098838511381508844162949462492282573284580159280087569934248696463473210178119789945298687355079246002533639523941722786109404557308490809072598587567531142994424744939787122791799105523785099142544165895534348526515042026357811780274181981308978852495937358739655852063482957287081352774738396995568796321965331938152282958038637876129867319793097433053648920680191436756640934265168234761768307958665866688934452552529548636523145426247014222892412771297917566955072079662632489473660075485941702998501018094045271882125846551353817124318336973317821521230411447641246491854153901466652129504795958462491703166667526881180488331603276270065157371842635084881623677444902067261910044816435504061679097821276098600973007734365792042337631968534796832330990156824718422154490804141075843985994068497747887670120031103319297012907127099472619626828411977175993597868267566983564647354427915820274657573374253711823074992234229127732743634104296316312587649794874908715822778824673952029029273503924087164600724485686658415044531176913548148019479899366705143148194508242562106121366098211982131825424749708883052242686605262960658506781792522243372358836156919073114299320779161582570973223446719672684628304618897477277083649099028206106646223845470214416306383273000149393479143603002326352909668019048589334755456201963006451601095666084504174775186016106616374482490856062883705516246985925772883057337472905508945337564152260794841121884019888409487072437463256097614411535155512888956353296750977874426055670410271088628169879751142280042926837320286045210835841154906728572513822553613464746214117493305400145861640273271249971718031426108963692294176058387107268559627291903258597932363505350544673564795829076418505254224257216352862699959185734330105776825853985045873888425155748864193554380610841591191549161548251819315668990788828525438926947810489660263036944693682126342439692858881544416198583946283758849336381704351573172693968475475580310123838620635584661753661284609735486600975555774736930662866356160086438919605618832358039636555057832795837787109763712347420083234812290479544823229836775435772150665609565233960487144434055738769095214278306062387034933772192237703895566478659102760439929856396737181507653035942124487096822676185553430825951607912989526589250261275730566040094120105291667490694838276609880922398480267789562724948446978554690436392004115930028910497009082215991611667280772997349864947989187977929180266558814936219294940087251068922979432568210559657763365825975438596625255795858417283052521412905429238538411867141991153795614659129878644454491791630186791598623838885453712587919512493219988727597400274794064446276514092034652311355638021270739952796467731016219291632973584532969132467706530953870858219221934818821682929348373903290605112416884454006363277571066269856606698032995393519352502518806055713136984991611955423424540777213729540223043278090791722581091664515965603506931729806583971802572511285197051589947878336975883431538520806575294095701639192763789885434613847210140668031583365562697438557264920693306910672178427325519952391052687177865114506166709758350172479820903358801491494356025356416421772546100160720553253825774988064439277202228943351324206222851911170832817649967982295805660609150232472099234488919372951246057985606184996202054407388799365846416434143519602342863044385853318048547806031159411567102734233890858273601829866220200190443897755614073697125378837639800317393604312356615409318353390127562366970814838275701118172974928557658227361503693433984694411875222169211686396711265795492122409762042584373958403131253160404312569356248317421826447285001289102761555501658552114632337833375276441973336944773083167424247450336333899770089054868729803091353426175443239349287313049009256482284777480049444382041716020424878579826839489901661311389326932445428315796712032588870964268356760996138507062443050649094581614254294978141064969270484766151246376404013317990370012747014720964038992410205740167993381483393746314175687364174133343534977834297107252039220946630140048323506406187148375733749811945741422936144053360750429033270421910570407647825724725415058654773335672660959263880835679020107184076759284438539294727264118841339716131700008546655235051132594315232109421492050516650259583599744249615022232124768247577191909918106601521781494073497291276557880380325482274606185640330461454439108911129587062610422262893768416149110030147440025675686393115586019353287795542476775790640768223674159147204972346774329534942871783858366885767582671398920754001242749113381697746855087534774097268622299296815207306375627608088100066767189355156108389432630857898027274314110348654047607269326471243785052982967677404178866367670345429915008390416861785478528596632064159973212546268386250678376869591098074517283846916294074348303346765950679566364943295061551499497814767374021112309632635152747434068850450794591711753677944987058983518289884548397606197716388634661005472264654456140963657240262942630329964597571796168810225010785543233506263093398377180035126912546701647715454223334732139564488710087089232518139088562464447048257268866867066363638370421365602970438810112087572669825228818304077642337750909269957467843157528512685587288408013855138182228549701374322648764901500830209221144370983450933982719494039072729755505897495384464750012707215526511697615299575241331812375754675637366449345522667799205395263554601337796269893322761255744676709962133497142699699818581892859329270915096754345890372515961481001602984124738193008370342078730560188228830107528788681534455662134850989539811669648790494347121273660111767553553291373943004747651077520768855420263415436995061818728793199422614134786742173241734390651661221061143195437683551124298830677846200737335073076255069651216993783699958916946839765052113958171726991131834878830248320262135447521651549121439210600203300116013929928389536402708029060726351716897321509143681365776701956705338151923723715674136551892256692733941164217948516410080138085580918033292898177967702669973753601558216853585636368190625368984731208027991073238883388330988300399526433076636777664250233952845900548427542109341196901218283807493821186874089050190244362908815625267325493810711072519861198675352462311938584559680867952043377349869800657472283271307876388378732141096292580764294090576728088677740092409462227444484353906201346175771783270840703648497277482272454103326877497736592289687846104954773500237105531883008374361673371540139009363043478140302799301172634784967469502292982112151377585057079396470604838197921174462837814527858600026920616705126872097995973487411298574285255470207901535018407212339858920583793153294929161588774224204069861189091816247295471686686581188209510202858498135306461353455003502283118590736424543008376386763699776322095284407963519415709120739224071183344730182173154129426937883554279763586805231230819217874274261603403647773387434853779886531058899604449334011130303769103205414822469761972537426813848814881535074379673662544775380396671703191526395339639927939236684033274698616676349248556947245144702369737075463367055762295183308812824477958545542300353458428351786900109190494477276511386464470915222386103544892415520412982660957228076946884263675781711136932198008047746534810680695296858913025024729859241629564487358786571978559796607995888582163493041818503081062917504122711270344135857211534154302267789653673170999154198467403513373731749857416632641815046910555348330902021470122801562339372018971418521074682667817530709538105680346955883615074895377729604712853533797261529334189320303330428066177292949425430208474743164993087957204267213495209253131276467065132078723397889243581998926193493573500919802358481194449709461112375987000068344784086095327665103193682693596397507646855960594173571795045781342681034684790547077507557818216214087666310733350675573102714280373776869174828575790678478259657576912725175487157444236351798411413611455409198334582878247573419769372767143314649965373739896774716009195382802968868651592636509502662170313366051211780782069290324943348278324564565619107452871315904207169506241932950146605326516231464598120677311513747749386779527091281739421273980682236986088998258151356854691843620852980046359295697117205038125944548052399630951688150873708110623789181230852155267831887203204722578645624132846924495416973075478192916246196670599269758922177334941261203106823693668184495235860919732456422755820941302937737350407738816568787809222099933633083344243218128616606761168914498102286422772867492905455739635621306280560879453239480409510201643753154497671520468521810508614326819612887135946704965561117854332350242115104935622894298983135602907507105337581076909782850858310866253033719552807676208285502317605329480799796609424551847321328938217838313698109322744266193751210923305823360185654094559353507029373944547256987148218058511719647585021365812052951919004192561314679696275608470424922934969203589362639064660058612472618730047682727927129202352600538758795713409965076843633679967619138933891322339919580460558016090054436617308783780817405913581001117443867937849058686465185447113949157223756464705139100380329051977254844591450405035129251356795842143495465634175696899975831269414669093767720438410661075473115529686284108865189070568068127076117361840304220832443644326705814671649206570772862824983720301229927605469254664587552320760095257479731468809714180758340071081896164739751469842414129223067557160966377656153708117271379262158062647458389872460971223812925837037334857655874284930308183493184004237429552470589741605856801554921613277757882572137055130897972182302830065734516012497276616504584889522868437464007455518033347911833054205986827891285183153856196560622199426657619638367493679564966366819465218602608487408981935369737430155685151723934637416334470284259644301630588889452756452460747355917192923907095828934210222121070676428335139920166438984353757780445788122616215107318952626792337140162725880735587010415796666274527915593174795584867276187534307430700705224240015482402374032704138855061090238586974262403919248207050990917668602943625607337345617760421462661194000860017127143067872671159461233423969185204858016557609740611734626597664295223348583548179630511610920059314329300692214897395817774502947396051533093584356278873582768482541310889566667355150913161293287189535449668333790615069907323897603773098403132177923170566386784165560121335617217222155791137555017542734443614993702031605987381002990081629530578155474196968104371678674679983184397947024734850858750374094332238490109942201063313882142872380574276257219635065705727003468970754645262235227048563310169850146869420113677140751945323375630450927792362765819296572359542236834359896991445985719042177755753643869061315706334980616255455972352967921737489310047663104586932168177838456263557035283969933079008030836027544853431500786946381258381985167332108422152459933629255322807236090713211486376800767737372939177608648218871710962441818553246119921259517707440196078905503880081900202578543770250276725536974160256229244952302274523029371494270246015574022451446853627343489000097098736545940685633887429760671998485546880580729525285249012383152063825882472312354518015386849791096759257159319895667326250288145879653493023688534856141745028718990180867505718909064735893437664911580531420807157261779220813182431751781918321505519971994928898033453915696752712271750511142566939924119527173799613850085412954331883091899901318631071631413009504301201034070800502432491328001809783876610573486956950397789778426960226788300118134979215707146676756835850374739648882233822992502585021365022688528827857667776499765531132318504661018509084478664883745535755846695226125508868086393698786167915927461388461698074837324165241975801910502075604048572029276361620453524030798831010569771054981839936838648256465262105965391592552006018313864512447346746140987333186385204340731521482211180653410085851477628899617633459778926035472999119454720672090138311772184713936656346657099547448645559344802344732272254976135743876510109718348426221700258968806272984989646727989667438851256201700552716936700390832098194607323678029687892840274775511957401646032116363035700913981507929009272810147366314480393467449734418639516083997558157337392872080295180337474591352847403165195904298403569806211502068462885519326246558310749729306480826757704163401562345162822914454187303459397921576385531712304860121181311411899665721681026461472082433994565606814455470495872007211311025529613199125031863650343644296285552044386614848117086915383813554841244347509685802934573496690613516773297175915022342374764168553927929313076575254485301861829787929148387028714337853111212246836507098108223527565264690165499667265966701251807322864238404320185396945825265347422868772572883447999076665056752244547802010682161003497349789304110119930822474465801263300763726398183940653023649924201028702469327156740197352081845217721681710615669343570686368342001220315870061085751969345492802998086692539868689366407736845137422386205594666991313020780133875211279110007753023897565671235607871086222585990545239396189227044818050602493117154224625250313690435557080868173197076185427903895663742016131493865938590815520400483383846817564928300891427566241583477946700237236258369187855927853374809473359050775592780002609845427469728467725659388866107571866835943075756263588221115567988286386867218907861101764211718798614774662225994638568210410536097257802835128419814635325762813641238812291728566732663513615319671115243453935387333209889511352135120017496095891889194803080880307928646809170624518427892486993796583587487182655363363262265844852367712196818632137116741776778948058062817682697046210085975751214912207546103283306961216705318114404915279877192202539742302528889033907556131668309561897913357269112472482127889132071642380593124683803840367098167282045446613357731583604626526828240327241671417702412287018566018914193290471702945544312494069186110600247163005818358803368268180317997142916352880183260572844627626828039480186148457922715559621268296074246836003186955188563938956407055819995540816165606525639045922230741788365970641603635400752310704401323437518562674674350954893613649343953839518485819346910724091933131819883297022461617777220144960001738519806290691803043903967261592472801621805546494719946247502470873202972372913611094329756552148357966939180347272797863469681220069578795308808878419418222235641540802177990750321157697326647421904967307247527988842028003136196865284141074297856437789545880360585697712496156645805142433356332666142722636939544616888659854747602522442660237522608952092383798017702666194013254975652450391611449194827344620171452349562181498296449858759001536629272797184455832070460876072257350690041898752765892280087275649216016638042664142025317981120003481666702980259245396650233883966321863077853358414606658821044849927002528386470635860597487514198226022649115385375694049053700214262600497232439087127929790844183256280156458435647085221784362853327635710134727662824582122643599818443575144150313109753174810273672958723789525118506638103176326989249882660850531155344763220036410597839680399737033560428439957240722422465948652267254556615086101239138626624768075650927014667171149033925357612779707126674421534120746006191773786492808359218549969536380466407536139423353211095105346125801045753041637778642858103434670954479329298685871651828528367907233378622364335940605784387028169748286011223237026503565870854907068013715553872918886608012963498411073393381405774570113891099329716093394486811940154170815538926493646686751048672670868774592839311316111284199332619714753327626951485534895604155345802755522053999617376484245609993493145344632942466682079677492938067469973401280416238979542426000409067593925984538825476855365739062378842367138078326064733550411897405513959793104805523714179630313734272606931157640988123123976167833360518142991300167058508417474551395018117026346220230980675860426274939968650344475872302220205221081059055175263367597551841921663711077085177600117223295388959267350845668101056671459334991856650465304793800467595836087941823428868254835029308977639152982611346507521274947120035038405375196362000686190038025641648680347694251459398879148143163111554865954625507609568131091997460783314006385785290078377509670653227540358969026158551794185882815908839858274062575682641323120318869608120591594058849846408052304070724734730045978623742410504076290605766446701705478616039126367061238217982041767371916389904888889278627603383002259667549234729745844927016029343177637838376395247122006462902732177752721148242113048901267556166514929353515056925155026400585298894763416206183663517396586212606410421935625049243032497945289796864701069350085450951940162607450907925054258757150593379069972575454987546078781690437533306233510002750003372487475981368342677553865896663043933787640544992368733357731509828323183459908815000759779228095310361157112169798786449449604946296040743616564846867122278367565807838878548993545905799376198434446191401996332406979775393655905703344629403624007978836657250137364855626460659981650322818409571822412727168372702883759941121171585250738493880676380092731602720589341121270320123777101629008370751662916209203742179078133539701968537676920367730277821202097437411103982286125291375368337099951350996576203130687945847228223729957413744576672050483231951838523885526864515688453711110288331923150009005594249549432031564138103512802869278320022201847448157071505073893184040840678192807327527105108171567549918231413155638990178832199110939222218217340794633310851782980399065795367404088067752883947116784323999196731658125815279758305719122235254765132103238618971997999586469670332335690756353351684208978526312804572488591850799160719788251069571772035588105475692825762698536904024034613200901964587353143147299030665274020766869181845085277957186298207767963990616304818150808194286685397787454562861763863970741350097871393699106683457235638456735039229675594725219846615682750865275570194804012097617698608752110978096654557240153804791560664716191903529029092351805933219984001614965072485836481781907508127900456493107222757883064219984966987458156588108160310611143281816472839571352106005730254618399504077388222128688218985186185528526207014954749979110275519780729511549897066962376479603523122012732268028431716591969571142964801995934481957172940938518121287201206256685073298266734097490459105350027206339645278087921138976360342020112389077716398713936363414124195096274103078670478262908825775900954994179786125001134979350318734704715109931149071356937102391065043714360003346471005154330000657416267878065496563271969879644543586777683569021764763431989720775443248669312153555022028682574293905707503208676074276135153956334773933293926925120017420048271482091813822364155254533063828326755317678826779193739557744888744871689086530943622610593862368971449856780452637341275089323605964484354692297198007757358055798031585711938849612353920177457670177319464716711506421522483426602167767760749867460135384850840673732870112006390247537805246433752705027295020251337525184588442337291668928800076888325034424617518243350411897159824113004739791483376994452676325171884953402860798912034511784665060081544981071910631533179816863405439308334906860189000265550138172636428483954139298932631489556079610324439242909125347503937900658376268027105710978572594937777287701118452986531472643662052588527197996060698047364483991316749379844767455278188088714393853161147754032152570422042174624286566725658710287161727500603799701491798540678442326168483183159315648430305445159295263704210815705181065759964051547952023971502951116603911582084229266743873286717815352979554842535467963025433622977161848189056922161906904310422867781903859463316536093243895472828387923655336241548862454896387722047692664351595693791295363414024297996641227232490795403103063117475908304633359933222619441295393130973840094056637568866590887336348572817341508331757768479887562537635101091019381110324847181749121314222607099989186209136726075730766252202651347918086353308057490892761335224003083260787290958428081199727015971364472781561932660168261896165938611360190293251873341438866759426954906132684880792025714842435527344165904233817467078989734048755506936880534886800827973610606885496326513974288036488917953727861196826337115675427921209616434276573323556532100956092629636948941420883029691314425238405245063837038221235472260902110315653099443259296333042551687071748664948268205774646779379639462035950809617956556242868387624036304239291145327321751509507348270566967543866356743532427063444186159530412818091609188947241937200216003779262658293374101907810216267219848346949660197341533906101811009775376721574346468615761614667817345677216043542075612738590109201294495801547155392381319069590725797116820310517731996570939898201979885474479470431911248068450053072344206359401748558092256899570762868410234795024375358453546318150851152500458275224104347352231040958046445372163473687719437715802375935400441286036469693875364535180679599362960667001232128345838023572090630897432476868422158928563434862171287504393000697777557962869545719568056527986867669976441868109838217647102503898202783498830483775666566440414811981006496481640183779222110060276611133783746083444813075981759247428630493354740455160266269608902060074159761627214849614112812198419260763148858058850108410688139745263650537086013916720654295432393181657162033315353219156614491309398724682603886358906956101595338421821792298052846524767366672880341748650351121872998549937982134731088474917860303307538498082236203125346511930853775939585150290814876522924943396826044623047208593144792623342761468169193280677839216427435998141290147200152562593316946264875986483552880013224853649256165159437887974035162094015717092497027898712169037476509057195549498945860002036782624174594453489073105375162934889281936105754353417746762437453328175319881773483362750323027638994288391040098396125326581166605612056295335979873181226116308651480430772187540472097291752332879282191084624389884635531242004100462665723529431347834507704005615838845528416950151728219238911867460700754508962199764269478842216926261562571065724932853326702424260576835495987117122095982481505895297497281740976967098769547114781707625006962802764912601477142579086930848061741550520883823197929543971184943719251256763961986998098694459415607185554279131795757770030740638736438896768906215969781714537286108525408187185303836499615434526057618201165692160984386172957110060282922104607509412494215739729104233281134103188062229265553399817877279656503633180794381526785784985709842153424828988932801646114738926951894688725151748632005093189439555369892266297579598729020013434188862923206751530506664972078924006645964366298383496664405090658181442468001522719471357755733551866236672280202267504081044384799915927558566320469178702099143555083352750057684152251952514053964211380927058046181442232425309341937514725531767213924262085761149688932236860196889278184671339972044411070562136384141246704046660443582026148181394594747688939448748320065706754507951354004197414693481260197527521216099581392385228674949064712978556418927340265323972392534952636595735067708388461262282050194070441105024486772603837715232586525068769531447940173299874418505906747870596480355880285535921779806500335424146434016680897048445657500173197429182694311377334200573706988176337879656174657493207737343414392911797991152049391406487441902968436150408579806003523448099398333279688668773852902193373981841486601437005417163721471309075357758395754673030434940605187071332616699986963847378848522594181739965793028619558157646797039864236336320153418944040515326327100399888811724383423909436168236835375017937587283363175878433751369161694893099203414467097115125076297506323086845620375342813603170594587916260952104062678315831340555250608411631178073566508479770946781120763816391143606652891954750890102198950799570002401621793260403566365001852558667455470808034097727513531474057935607442884851307976602851183895503002162316768493635671846430968818066586893927041722574744844204026759116490622762823332399970978132901899477879408633597139552168768402135741525266042270943060936196445692215504477223549985802085091466591388333093726863974032404842403719168337542669854234212323671539072791175182669764714958685659794459006836862178457879237723260658389284114001989222475039625223183504656283878883017283619910821872831602709518357261171762524572723342557206303608925644288129894273835050086854609717746976661103866727563049979157270327764871113462227219110916458133050975927658513895986562505791841488163830587153296470908461932178219370827886533349368354290598656658468597191798670301610716063220832072718820884539515601497716863594502981604788233768383023467937047244507405948165925805035882097833359866505101049654694444016085994798894394111095063652465415196778849995036064312782173108521098781493605171507255335245236507403494622980535491859901919079543916375716284185231293565086014497362473096179330395053078321401943001325900917603473819080544765555435942343595162865247586544243732614921742408011800401952646399340387390554973672502764876118455784823018549489626768405938270476376050368513281382353132758566507698103965270714276525478290650739326154813016030542135301179030186567846758263762798931636595295169858302230089481589576832157394349450554151873321134153684369526088698556036278001774692472848982206001922416071427839196927049603438806640566776237214820956082700461238783099560989401637092060186305452724475563605816405305713040782295154059429590476961335126987131198759389228985360703698588517559837629553255398826541628597087306632448884854840396581439809082929223634570027696682501450816526574890335175307945225681181847674603960660130352049216933931847774217748556434875718891262618048078293387749579221991622575373885628675502319463895633472431703902646499486081995697820734624422738471282201682167932203142595800924455195552244364019472937552059410562353206326169276039371005723541646746710957537153255589210843678833505575240927375292262591327341276364844447972031921467525080068356511147807189506999852609283704239620314851230271705585366299794783327998821186229320554656151814309322883029790149532299806857950331181812557572078866362159720315399152342806398391115696996630377271399875884164834465024624267851735503626856824084779183862759812725796008320397984612104209518949998316024720907921610789640358064815459947362859502916266964763545011492562576828887957478418108886836243747688790344246088134948164280870925345763355753471035693381980804118632176067443792063355190540567088865154605148172212859452974195553966660660333413846065591522661824332490682460838196259346823305857589302132447842422139948557349202591604612068974335108309928388263455618225211365861299820485166251210824901370586724728547186470845719668331823598965623714378488143676583201142724000498898364800566889917501674290211716966047779426654303650829225370998307474902033097068366172509587327796165420548806201898184457710291699434407668717269680682092144881029440816534387117221098262245332158154722122579185050910300798676790090917582421726768649322878843662495473619749215949376845590728890506786908741075099558074176540806216961560573441157554429305577578144343627597053583969664667785602518493615937193608533271298379918703999891748736888288195322421846095538684526858305800351991964102522272263004438108113398858044122768288820956236164282307859038881102489138732498856864766692655714019681168215139319857161348114218127091816746735322021942275016819882933706733644721195067706316191510948844480787604504598196233229236535232442710974090740866135408282171538491443885201645929876151626776418253782668905181539051873582105008429791423314624249071695724349287806123560850547577147961570904898273127230921515738589387551831028883611812189021738116092496893372169454010757375080282864416256075094747548485600288591081409596896598934946041869608662496657291291210425197992256850077212832882497224760941811586741989715525765033148789855784905183797986098321759083636519416958614711183215937507845565056376873662339469850605771002030427692587886591387367025993646892471132684870188638590969589695157264484473964755719639668091448440125765980801606440581249445072963137068285896930613194791675250082024385110888692354203472785223726364024916541064423982402795389848355602282521866033589310421358448233983428661868743898280817404364184192539107245932951800282235851417750886543913887888935090089030792388102733870073248631350416756415761584077978239178545900537439444239578988013477631201283533226685978564816981486942337658315617962611400248134624672719931258324205701172283879203080772644494194631792224216783847686878119714825532059149932946983882781803780367804184520625107737901828428691750822752981146475240222643040040563572279825613179790691363980405910130634167875803018381739211776952086380366723580811405081149152872348675077925680716189432432332506373854568810836036491530594649012624338186719619356301704542484781016661248015095329264165615661707286287180418118446377337260373594211702095719287713126862263909234979242029466260716959015871461695349842256726903230652954452952865874338051089818603570454755409165828496341889378211183006416280981939736014320046775891305167124569397699363297762590494947156023984431682102501400319766581450610539615284811036034484600553469938582437896150435503098429800258951246422473943752015854236924958850089678164169114040344179064200151515672063474120043240404992862206091956978407559622438966945587513705545152293376404551929118704832898738808794339601670977729762575356533397896135144227020275312090865639151277463274752176953905526874889984127053304909692667898324770069700038577786616259601287506638282114406833119938105703543340393085827850164829885143569722747538857763917852102915695250806441266568133648317258672382780635806607065612776321093469398587419600306531055935287644152623371475834861151354603380206392301673954692052023470051109178910885310308947533245240009036561824383821160305259376160185188812316621870589058478510498826589981225018340573549285577990277165215095448925245474541560604486514168404329059014514109218338028328091548165067330712912476066089539567521813250264881092168741057222977136463590051060493106120126230372403285485376520799493600131055926762750950529561223916549639293149138004353919261906226767354653706578490474725134282710253572077791174999845009750953438916673769128404540640311226244891029317416178235149836226108558660463835221692654809364487910199827453644601671263900329841584300905804395766764872523717604011986546507694481517157045890291376485687278481488968722990695728362611108902224669442952266131309389837880541073538969836467037871467607105165305074841053090593365825140709265894461579026906229563656030044283522633659937852618401629669728885296293003600900614503000241813693992868809530189325990888105134011521871528958843075818546912704769763820240177445133617147372350813631019450426009253201902838130224335075186504858187070147973790041522269331884830055020319800392688041316468075823424215363417050527543944483686301278595157700520759546941068145956319540951310286249038570119087079190859884604489815269497216576625888440300475562882052735885259023453838098893927893447642533558597600445148736995306770637403586951717390805221849090266348105885123334544126576491972808330958847964308172840230317216493304210682459506153769770889243801901951555630316944692583352422782828130980849006786052006045823663095192815860178673954912729422348882847281724508567603066712226200764762216221167461079133517267785974289029192993900976689982964765367120238343876321423417857892359691080893853272687711586622159541122775987312387204049428157769869266254146665344610336571126204132936202632771749201017662809425444996551444422322495366020495612004823819068807161634144631810623138803388075579817454485008658134744745148725841677251693508280409115374897360812467374494081999625135172944458149601236833963599497546723091313157294892492900769971708291269669023475071770736655767310803335036136589594691022185163669889524568486893300499168466734967691444451490978743917883130454810099926684541430217784076754663277359680979924114683811881088245398825409714065042168072103028862657100222317206764282575355452065014656909280865553154102838072715989263995686661444320557416398992255013092428729347166896181541363404853684368680501296421589183050498221220147709598946347281229050508839847340978931063853485681575183895040234965409497767594444157202213844986927935705937404801512991533902993412926466533517311986151169009908695300991072773794537037397445127253734721082620683273491970699878642898164796629334526426866711726295031408161128408964856883093714465189546027286361761214418306643830573550825086602510304702167569307664852242983684574084833488017483601053198496917490633306911947270818141167266080024602019606062972864506302898168269087298351227480242008508064092177803184635397239653559904410598571474191310551973078075505711621532807143835655833697807777938073052382408153644534162229153796624790847038759129194895080014092991741907212309701618021452747183137002210863938530330150179897452668500676368893953588306941394482858570187711831036026504349339324666223968150592079738716819073428691556856327744025781028196384189677880413665507007267426758197514369997462294692842547834350868502732585195310164540864352899824204137040216378891675287124161612950075968041710038945559816932459650710155570028007610562913711051812862775995291041052956249433648762129880799439479506251907762877244713433921393259803450751655611506808334466567920637222770572545553695750889481310614848389046082117292337456230973697117586022994850993293569325340368519473087544536399394121242016968796868977046598188878461863585984347336766236692007460956574927484944746612634115494045119142618616551888061918529085320932654127570272290362713404805204865410207312696488705164471920653133309683459206351994069052722769383320749477925934001808431868561931386581627134065870589622518282671116679885495998650467349286680565958120009593195822696906842624570254278910739936521074341965937337259512568276969587926982303048306283393634788832021331495696296046304589017141903088210084082484562826410577555700616819048304604525407789660607988174592451940227709856054334083931890557997214283238757113192219651587236422847514808746505971873717335047404679272990837015114710425200823835531506149868569376986557465854551400325287204015487531410596873325243746539816937943388686634684270991052512000511032072868150681995491471072624562868264612433602495781741137678040145151156808255583923134757190460614381065226678882275235107322971588673338956985808183434335421272871345525210339711890508618440462553847792181512139240959615282628076074082735016554391448914865658780218914445557241278071128011065277938504853285962073893540790416731665441352793640376406875394663850930715815549046292216398912092599377208922292209127854540580150088361154559760025258371614959650947005893940260789410116223752949287031052306112703710873433966027776980965434540036787342973777782377568431866939166735739421639579998817757680026926198712910737435514829164660720703203753282826570316585688965487167708575534034380883527385069409338366199639622574903844769171957755339121312608584646388958609569073732846376517273771339278003355271422930803165506784308267804064300168119851505650153211181656869542785498231506485811197721955224009273609183879233048229199564974724136682759610991756444719339425886991726312158392704229810352760259113311064256617669150770032587993079898565089578679883710240142192497210514810185808423656860819606927876526779832480964401811511475367706330206272519581814927706737266581059286883473731635919142901980227747997662534784261834743434357620900565539426391932177466905823096442034387190686430676378580527915801340737655597046523957677748533067394856462999592478732027431137460787028589828176468419089242367774344256930495474869484761458633032689824588454407689915082867819423572975575143549388225900508840819764565680904368831014267294303312679936120087439910937947455048385430218026117648094241480605508939109523813549823299709286798486548006774584375347393300612018996504489395504024771682806769360217374719403522109204340852902790004731976355771124146958007934933493590112598281547655995457285013597055706139253872485469361671826365409668534973064299103473573500837017024147436317752533347466017885670414482387786109159344474953225876884110819540650432281755676415212841882783264027855977056956112940842591838219406452533770911075107789849634366519666303740982632065890385814796977108507589047317956307987677906701984804007492432477623572752542433832927790785240508440734194643241130778752769267482777441638056798427997417237047010887433781882536960453805759213546806856570549496838276111235244516638080548787918587027558562441315352655417403376026646710647882787489540193464277933915409251099048435511902223579074099237976106216931314487100439212300030009050854422505340999980628981003324705106409310580662998682175628564798609109259387356807731825586983044946078134661723865685628978099054441313084048226831391173251219417258063908768699353005466041227742052422587144488478261094607375885853273930149897460658637122537597903108843186242970839399645186080596408649493889035569641084826221389416848166028172092688234477292799705320163979148099642572126487598832700939382364231119598439284192931700416143155308839220872760722039389522213009133050186126080749248632239318169895707031716846602391178203075174063649116291967637650369518795597212167470516913030794023904828186144089101576022248660578723579794127769372678659517950077063198011177101291960010512179285226937154842737557063175208271864916615498107019650170617844258476156252647152178983543176730073940369941516112996331762081865228031074660262453863215569439504308362046365929853800667134042243460262161471395715154562538373977910048183287060455950030315723030275689867811906830849276306695114467889266110807947880616910698299444495328876977828844866139465252626321100866159469397220711978534557037298526224312873331353804884335376557174106987571566717726784684256553211938281148492967111246411456031262406376929990858725785205709516829894558165956481778351338395663834345084029162742523103764771941228768033162898177001068363749317277466913740280665948683986814562682928365499784772783148034351228011739122865834898482830501555451975599266066007129077786438575319178482874984211890244209519212582080402160348864155798741711005456810843619290261640456287703813630233835387633659144706364059852482782742729251982649987594911078903974815868734576305777576213559643465231260446438784859897835370030068259732012776449826574686591916522459797880636025945211141139489422419852486899246490090363549158149054292561814972405313920606757162753708887442853485537597409571068007002132223246503285863132764280371041095596101053509612115991987215546291997994093555924397663982659307417595438584857651024840436411307983244100874701347135157283188536867026951057186417167952155409154970126477830525924826076234447026069971182546239710411790440246374654268554712696905270100853112860714846643659584227814714242891645986214029157049948079102593505812287013509464227801967954393204025255563628169998959842767983477382684242185607922102556030844693755580938252146439726267540560665703098073346608761502625503795920663113999840604779614781766236157598046736610056500432982037256283477912901756277312599622667475594380594965122909595705923481795237750959084835798739989475123751069691427438389102389878011749900005161145418089338264841457234849188395747032778975684269572794450911538143367947412305447339507504808715471306452075164745305680705415649339123773957554887667147871998479847303116737447208645277427177820493029331496335583481846332889925994962084446670180763667639093976040833493584040014194192974605075471367378529630887757403909346993756382764537370173526265482084855198597276833929832187051170858099472919464900671313925467650907094432593809847140822395088204885229514629029205824896170452048515769716396960360773902590753154545686210654299499544505597415923884109521253811812525413535988192203033618700782997611322910369316043597168685696187350165829527464173496726452913845628526271859363828087030002657649769754399208781184069212034229279860685320913112602779566252657593255017493469276597588469680696391326102929308663930416989924447094966725221855962417359004903291465498372645023653601616718430102157362874876999206899655469717163448624092602007633792472177538704950673013723162920629562634781081733370079556961973702770627527847366980715033464992512389290609203445653182154041935688838880052809117975655141124085347554627685143875312944274690730831498778024545850567314530663671711002500918894763972606673631246275251593627881368687518028884523581320733519949985183325834601215977698820011533740609990368230229056008699182645683709675615037065156757977003541913204394982826920186686107633956777550210923320171346841481548383270795460551946736741987875321924556069768214699353769867057527051933621293027262371817218570384986821394152827341421829696085731895693281092076979883828045840874543318343302516836108666431959410788934517397303492661443453868589513573621644630409871498158746744022500200650368651158170773812433419772768272542826161303550182157401748959193832657674498739982533085328906256605962126558914316044665505201955495411187670672827822221074586142886413592991801492359243961296610388013962041484815383618098558823833849561676352262645828296922552606728586356580631298901643123889732392368983233988808800985260042249860918371342833393211476252461448435559744347033280757438636693917958986948713688072383752999574576828531028579380230605475236868215095584076286456024850765302422102602693287293157988365586671564313808945959490098676806614807957562309512057157880202770649235091152576309201507365323088534121080760109143040284646573076940430307971931655189676677502819171846798582460382478490699752674393705349391846028599050194219171965887993495050041232347168332685635695711682142756568795988442707806508654827600868652964121423484127641877288584368158292011181064786020566905717472495035539975557309809588246858072950901096513061115278973907414461158214834407928849306494018584006973919546113420349463007257039164615239614449352380470001394427082443716953129484156127054092637349536216354637410328138165048156671199138055269885363725040799109046637014883682635730347071919035731299240874411603104678430769469267594138789215189898473743194741567338472806900568837400041676820389953526461951828975080921144742279552957054399883865252593279597061550848059294764108224942621730317505346029737136287212570797108110401235330145455303081550017248157462537968229362590413750166470816344187382197211678363223756232296468365465389880668825818712663954208251848213823619793383414944953319804818671427550831458049858136021886640352823670259349992675729380104189438380080269637331162352815804938830733090637667529610660974322562678803515249790614873186049235948497899581691209011992493601477265776496237269038025167668146561062461637217733495594385247663854472362141962122206977539050680204754654821531886479382329440807796397167643316927881054185488639024896582078895148005951612954364143025304966723876854928664474763128281901551068482940604436077299764668542508451837438360005855685891534975841484932864010976222713266542159658741579880033974460330303297803620227745492681471428779341919290423587680990935892221508159808897565963923502000298360547988702438946950876602620000387368036735887547731424242799237126336120545850625409370486114486526872506309728193074449681499791004860055872667152896727394680900931529605636206986406980900062743959496045353646569406868172337707118440698120240552991226110764772175706571261897420714142180350529492907633302438552910420087625691073793719316148121752566614370761092116401073929950459978950380492225397739536970492897085738394912357545748156159464597786695146167775292198214355708841048391747541194319862324951987197768326534330266511926217144458375813697719481281417190756698532505734550893175359009323050412161402658846311136697994357104443762505405467266384122440615557256351383885696331911972221659779919654859822668426805839875904718586723140554419301567857459583386610375350803513977696748603865296333372628744486826441096814115424402725222381492792268117530011480096042171990502491913043843247787314778876448625322002839315333292557760605932323330643390818823428886456575143968383036095715472316510540494469132214667862166054531902431374182219876046471748914774175567153729926109725513128284756819834751335947443115999755839747869706928690469978323547142093646614830218249127658100599567560287514850662277261772037545937402755905751740364847444251349304321428405087111950610751929889837867274120229706795017081631869689167930170095535082533931319046913276876726120571461870758490455743772828235809974821215746732128907365375269334645284734273080736584098542455100653738864263574118975914615376249591573048258293965262140879368343829093365337407802348792814178324112663185646607107091044686331329228461115592829014022718872297775937614166034265800114478702711335661256063394401150315229283114910335191954335760228360325032540940028649682459234666809687724144582163007753903220280411877806413181176418984401036819990866574025260174590588600827246291078472391408171068794402724762949092280208415157024571407956109092149298132857482471588695255578351759694176530058992588147686747584435507199505839097549560887916601221424693612221602584693884120759146506179419396903318375211125675809161601257243186154778064329409001839392391951986505502158246610194001205625376995377407435416163529641507997774225036623931277059148653391452300053593945728158746654401165717782230282338315516643044254524242383694520249149338491060276502153029839548963871333473324679320140778552281601032124106297727360671867740093827787450848835402985689022240469791952709758511683346942371206820728382178906876471546197104420213259607376657825177615545132393556126242732589632820607766959951960601673534812042583475517205940855809250948568008961933931256926126922646597992579838996365928759897289913299797736979746257386534220629431057708461291000701670302393366788530677197548281973302945245554181680032913367611127677076284366402747742303769735091448477590256579117889800640035744434153101768495392551278991178658963696413032422321148022869889255899128934305480116917325710680277598985691986509211297565578794799146225302520495454361946012957681625255532297666904981835191332808114101741068039977666537973006052867034110186518689598987103920456962054326754799193555206811050104076957614310960544840015620476946993254213562299971515979693040428487861663029251134370652547349556485782338883822212265823613273971639655330062685413714744386474536362022654311051433543142479593834550835002884874347959104802175183558542394912385674889481089565763301427386447738327244663292523966216118345022868821016270139425037281971106506421226045401165651702929064679714535351745781343217120172016683305746237707660291164766323933427656786901026791786579487886659308766802797783341428165053935155184526120886459946130369007739453213205529364639323125859679403481223367812987365400191866078497957939442491026260845178963652216518378271972235864845725569670882160443866084461898580898589599379986258507711028007681057578735160913940548532937602659163168019604663793441026770773751245745020330838130509376414507190953801281134130278521224061241249984765589941914707217231923426830603925722209875962650978156117766594797849757584829321223987777938027390516635180552660734788797509401626667049288611390286949518076415989376416020561590658534050694356902461349673486138588524392423562227390496932220335241567303118702809508022601172019101736441625260533097025719295512614040046914116520389399365508549884475343107902652942543179131404402352836509869063676403078047923483147726572451620542773146405600732766989776043759318700040442894301825906734449725050180393169327507882350262149338732253526675938048043530067617887023656396470845767299581876136442644205385484465341658814781907732081092537756175766912769344924309675710795642010436392405830648201828584588197244621373855760971344119132189168009736881504256698247467369983757239594014627106591040238492697283574462059411813897898853715510154555745175073559257657992567512750175887768376483000601222266772282757686573142563655169894091617824007078831462376760723736662329643039264281739248277507288891285878889653503574853688332923514105645570542714602847595106918343211414645757718545736984758763990875745328032301926531210512790890622395168450468616773046824613678339443203174139904067688242969098525284183248908626820197571405243605576373060456537492687515911993305826948748638304318379010531891249259042625647852487806637166943542895623898591708297403807964917812299373597348203447780838715511365150239020932684220510077385360723534709490959559173221267511218007003888798670919056717396799604679546471294186747379942531448795119002441517666525946175418756890002051407488793156933128981010074499230088748394521471957277010700681267030975625720270556428654519971974885916003237394774655923138679335468563127678547383377646958807705218387126037901141072110339838994189648301666182125897195079418413200758882003082881790743258080071904391896783912471525507112918065133257356456687716155239726676776991054475848318610086023225451086443789034276997173588685713447082029780131975694443842720002548642182561465010915009247807281088932462377305689929639303503980940747707358334980583211895735713668693772269972313066492772048704598192133409317176592115048184326731609435241491997219249309037577516039530102819414877181288603686414290758576715085635580539737917156821874697029546386045514852148071591448145867831754981659550019133163966190284140521517509106153684155507753460417880221214030434772919690996136147354398153506515580048000091982576550074069964058584520840566794284909634471065039370957878266952777832351652052860442274606484708767139648425740237532239230626546195002420565874754602138190016276550769886550498909523780714071807123315548305280016108829866150557462777615794803836435816684948626670115049626912938470002709570422940344581066173314355968526535204873903110245138554940277462914842987602400864279301578734862847290115378681081988106850087138510650874737894943815026662674772895312823296693867220290362111312003943697671961837670791035040622299568793553145008108248948722708120057286214261227831317475063852968295334078037073939035037024162897906166304975895979265945840466090759841779091561730259166128238493823211056957055348522419794619794221926324845923298601749101315168969760420031130898551742651632849675993011047884514618220189937607412609725811231617792646477583383573272501879563270602800846200371333271203568564935656491074970624368667023736301594756876505316291030514210636713409816725418055913401011462990255849222212756364439525478868325742046180545842806211717843290494003847308017086061059143525680198544150470533277057084358592733851897757258432564729069739271668288723111504266868097704667034846253780366096579109420304161487186059761656849216164613497761685495387080258447058732514419512649354329833368432185226456806550828664971240423705056384475241133741060072784541018632855705797578251490407074754786606578502433982307281954505408002772809017433126403074559024835069653783833553774586146936119899711319709909060305277901712013113641620363834814307377856179733149923300917900857106768391599519082399484585013581239967016935919219062925207836723086228378561568215145873158808945944626032126570911443864805482303401158184560199199883668586519758638500898227379515656849580601883455366953644944048434627705466415195707165557637469025310191925096012496234861942349420941952521464140565848521702360056938236963106774643803212428808655600809953880310778005891353969116219879018902084848665283560309074096154771984427417031722207685920689155133792474716563020664838954099284527940038424504938654390093821536648481552820962344956081744095929215049243006438157852074148791716282498715577002423094215412584730658596953428430820010359569971213556215587173671577268293072030308302643651812247910710906167897292508800566913341627148790748685868446433588558035751780545638576685874969961034612636264881182940869099463641519363365710270461698950033582257152950819976718491914529340491679421975026205798212436268824445504273721104495753790890402336936770384820087992014638190801046722152476027071718502808481338269641281072979650624257148467884571781846101110969607461536472410708975833285808937413699974120748924968257148819031401646563736839769329549267450525542950040037308152772843136193636294336644841954047807991220884664741847905445431800901131097545131342055279977689902526311766022221622119325064449790942078480878497111990879818195703464810505604602854003673778073037392063230784952439264114503938997858945616571888218905764154976023731393350455413795246499915356212524637318993776412753095901912992855468248193402971367117899786710731233072115658860904743143433412678427526797071034845867480904634647869970584508045305898132515123940831793204685596221762237830606757350973805091678491944649657085130013417361438134448911616213469532333065587976905747803199359005291403415541426809997357426859008136278845599713447956687348283297821818913829981594491590760895470259615015667960066258209356278178334069178167301392277263484513074292166303869994410827808987425698571936002989414813340292352012115234365797097279323882430659949217547224277544490870486049012307745331270189675515449366306553264099233456532686772640328365328258324915344565414669820596827158800443990693526090653035039324785114813206457260712292646870122984364372708652584809896500404255706315824065756425601023358101280100099181201781518654725838165747535531949653869593251647255339448407383321321620487412162321707650969165152843225704058042464680396451695105566878363364659882555825455842887206282464429402247679237549465276887354055549566585617456289960003310172534871194193820916731810534999733400955390655703995809793915831886685989008095114725059708937177331090103626985979777731040070418403906417238465701979988122719386849455186112326365637667280711885898179753783721001298198148778970733053661527348135319345995678935198366746441551916131027647383274167141165276240904891942211776873573582590274554790339756472795264644233028141201322775119265152448922223354518555215122872991654726070021799662213192001566193077819108076898799635149880229834091100165339558933756382735011565212175771925915786445839959974335115903541484209459142646038678221362425180707974168784121039552810184830692219404724659919199218088233545797840609467227121540421034650261735459614497721049555220482944919967313230374948610345746707779151463918074408376461218098839672403624791640441967674309898809228486365034584438889497910211240225485708654992256296130510828460542418823933355537924408207418618809993125041823499316694988613304664104642884956662040064431237523773672451771498221212023283848617277039825778929291886117177532740048702762824152301435676773841227705416113215136515492127775381214791843607869569566031781713428675924866676319307468204389029873649635961799700473106663971107442386552260244364006121430546945357520349789879741865483424007795447932187491750924304209623994847688048727282791223289254490813342346146657868063128011805710289413154742119285916033888609612137136138879762210084051438819206158651705649452698855320568139020395473682773988129642610784247444359386792017425876359512481416807723514885684947334770291164242183999514690164674465098649036019223172959239279069739448892037758994430369868265044292482118256002277783529335525654160345273971570376571553938337943558982165036159511064812218293559877912516605747182651379546033082104380610045954571307781865543709062463387754650436409367864443661267741677899744731734911832653023145846831766604372324798788532210627882419208858256060569353567186046933153200490737102140389844962027997388733352444735375593813460144825899190443793885335855918468475085702147289464753792204216482523150118391795055947524727351439222017470086358891768593631841583037761435806033113413322090196428322971879386892271453680101986554360134024829990364868224286656395950364156571229589391179804241946145184403503591325705188198337953499586760816721791499652406853863048798333220432672050541806801802787553713117075542206865868127055835394551904961269745296812785861971735722547011352366752386519076532223268210292008764646751572736715600298027355679808437980180230519150883667962109769439557830563696926423157012072389871962328264689246945355432032783652080143605246333093612247638257753952797949559496041020830366194843967635648834718383295357578899204727567363583842041915881425420004434806859853487822726265721468094545904504190003455357683440458669995166380353803437527473672119312581726504356901691191471482852013815413828598026491723348472542123341226343220908735187114540948565802802733002452327679674691222010823175100142996575823053729691907066738125127501840112878484397209880429880964415843067691452871025640009295060298398172658596243688881636844912829408526422894158958966039971283426899242657788836900947490418594493291425303699034786556832914097691904676090678122517911372949533736731350639610063691978133089213541872555574579880703672520981816760076918658459453962850329732266710533600232162203068975484186935639327157570191493091856162532520785671488836962344351624152797688240498451335598680530972692879680298775632028423447147636909397979853197728286825832900736109409676788579127470888970077956859477996002514815981742132782708019336728384037613432120775440810663289082750137026424577966684255284394846242237934153509914303939008799936694112377266650479644963849143681150274485187088631464467142102668114759236543194703556396444331189793967899527958770119924400553564180811841212408507499827783405977294407155380736271858316355450051616162217936183752113577173203616774588797371650692484325625980052574490191242730981969087680515847314395724331645328216291911925626960303833042720565341659071694300330082304954071869698726870012747443595062999653233395038597439878892683197418625957671020134634397132447478285141485904960723079891820221307899008212899557934935547362668292815726879785154350748354358788908589601237265291660208753661569229881640702794406252366879596194588828814266949669267767540808281781116127005505759660698173666872754304230344391265770637092711001198705924003834938386819823388864064295470538069285146826030321006199112756256261496127075912944157434557105876491762484115615416760747528636230840575008689003382180264792877509967924301241710999441055513770157693074024056580580520074465498995069268098695114093996905113344501828164333021280362181476184135458747501644326961550420385934432475787475409396823707675577652884060584276146405883625020080008169008747531935490315924930460789374399563467875827581347341149255872083902819772390930914990189934151893972546778946196589367060448464831432226691121927076678103601306051369541374971699602304682640939457159251717120054351391391112887959649426487868970700085231866492792674175184254884988444989144712223898888560892040197959662859282031056084128590866404750308015612244951242609542320784660791112544775804296902406654332886008496566413974616184351069909630107318354679983597123491536778369570819306849730639722207623343417102865190979826180741171783026656638325696586878798520626722110861605821913215004631765934003824070208984542304717156671222186418242680793855306856648805845870306313748520894248127285191658665414834059180700040661729586638786142054222684214007396422945533395017731585231423377712467365069506048230730150416320408430180778047355691881669378159605684742877477344314303945843938163814603319293079457205265530488239237325203276846675835705956286279717327642825728271748037508962021943603396708954742690234075336987720614934514629866528326067446581295165676566428112353634576513917632674068060999220566802930424398644793053716289385141476477127566734693247198495321123261905507393327007012634049247571123092008080499372612109614667445619106656044605731616874210723305769657314490064659673396469602187268219192887669850070050163678069542370966563544505484739560270463287136366610562067959964726200004240972677709256155579998225836518263278780717642214381227805044652695678837656756063590593660902643489314178297023731179782725156273239606880075808390705627930292288645721630527796036136699953592390919288882657469384923225784901011498395489597975853151722280550407619142126597938856453498710579084788013461442678596188990402133646591767995545140061477382183474230962033837000556662150106309062155370472906612477032669411762574590720788697474951769789195650410369748127003354812191581174465446422129951707365643961343295681153464741190592017075020910166100022932071854448291979866477289018796869013632500522077349668829233288581303287718730503919871869205706903006177570088252745035536774846038503255758423793815728963675263714342090112784573212717779685075692718221703264005541837973164075093592274967599086863611629920433520710203390663529033268051103441621937303859917088843124084008876848549128864507913921413747696798097448226315803216658757357547614150247433519523301642719421301014672795044848548892781546295230838986479497294538086691555046434587900014769685668781011931775559061004680795555317014889727335759184496136248002036473892420348927645570537129357699273468011970615633984885443675260905219149002662647800992817220742832382053550195102674276235819249715748326095898669268155031190609692749691821762555462175496829913728388885334584809915764516431706743094752600569374822469672446262702688658356087761332196374929285575526518732336107983221197325199925444032856012160304638443089938755778911247457195598461007187618738817184335034425034145480423489730476222682321388907380801781385889779305680177838815603904440275879447284196626406872398387878546705974432870862634653406629542860512501318301729547830214118849629430035251470276367884629074401683135389825359332470204237307818243760609901688236432618166804745461416520835897702961906371385210259252345077053082298321257725415228348171804266989475979474478892168933855863273961093560003007442123199753224460278886203865544542400376099901210479491240691051059229319254270420290154816144039971754989405009006426027045911060974661735194146932526680268624798734863019506965294835211510033717354269873368979324331663396792931713689646856405551287381853286010140856106297961589663395540947020396312232265262944083393596162635391738432197930269565083002688793213880647300700309192110785121515588695177442796992772612243754264586070810142976570129974636132584407648718766067598235609943686008411886122648006200658497345376593254744935423723016719146858559276154874230487676362613315143608669077003269304128087027804704141777195300678578749136245798052682333494200326814642850502179579457681835188458454855063132685088083272658980071076556072431432001697633659270388447744196327710620792975426775777593435506787638876015643307261754531274315480882026676309065086260084064272067111440808900130195615775514290321715711463454416225646803458453315797167505715009883742392560534120443538658070196264839435365304408511079523406346515166852188713863620341418822090569720813835649243270205230761156423781857753325953195050548680676427572839232001228479168275980005969706252620344139276898807456513181688137406852424912315476859502346578209245913016931429570618282876933750867095602259429646014715191585743543768941042456992426255797934594106703315458234665128166010372499983515177484307658405755477392951201771010776825245887134751500565826911242573114246465948923869105829193114056352243962209870544288762665850980305796371642478513832328481599714803527517788686739737809293163738906737049302009790920135125778750163833676636861087192474859176138110051593678714202368186196153722715412750136992957182606324001943963511819154971665626766674459328102724990316911452805557244566602831145024173412712446782587290621839259470895485355119280100554899985249899148429121792740102384855365843677506780962781291286858806242815922450251272684711304866772503867513102732986419855847113480681321578566771874146598126279708095576391324071075099172632157051047531258280781392666656341890332710420058110222335925198417386915905842464390392752737867492464560900231499114736498034941601900884319851245967225454283409381562935091142134481484888394561745918668045032622478017892929684575963959813997703426066270090802096956234915036382777611897917264055960315126528742319628575291267427698362568977058418152140299020320970857989909748536965790541106861089661992685868898476612784665794288716593946727997923742287573142738948795964292432340790147849030459850945323693202736858256318316841578536553444316370409979126132148943355322846017399472600896675280769087999111289651726366215802158975374066017149804555790507544541731539235987826365100418071118921657189162698049432974544581649996314483371555952868975667784447326240224382456486541454627139720170325322901030969078473378823456733520364528292564105970437568265907552059807934485945830759667786128189584527445830798137152784727150523559348657173119741299485307133003476379072556542711272460448120015559573146532053200518277133464136026737621957209888944631069030918663725586352175934532787821464800495686670593267619029751574194810063402845417529294818022681837990910736868147764936432149568574225880453227799384611179033186799735711055892782802479235603264738248457813975566059366397439604550714744021756914501133519722149459660281442222246745758284806969865455372087585000232991308560855117986985067137386929452131369745770137097788515593450789538485383527269751240415930026823493152748737116244838054881626563681188060935222321715406611710354609551608626947937455866225528076232069157612904173133937039414498747030960715431960923123032948292435090929576530424173324935545565927766265107332159531543734965487086840766814223237886526614247196975710259881080120773527273452219208196957205587764272392651881192767251635662003452878574526714949732107595072213439958254709628817952986418372522004080367019400401165465983690009815234834221952088631879094575920259779359172935858259440089754093777109698478790756224153290138950165558248456147272429985921627617893292866637009940383546260265875572031291587430893348115919662996528776981104295246764327890308713498209759273578549702029671405284038021832915195562588917941524397468196524202231558882040076523587329785032608766909770970171534428220232027228608879871264543307657273182589821666716771017284034301493199144816968426799045485724487335159173837826784565217215678256203782731323535690282819435544015599100803759190984650079323724245088157017011417186816314944344929875247372525837462572763559163584941092662824401297759039602008078504751177524524646079683754506052814352082023421986807825965194226170974006584075284990353475488156458559784547458742624616072084160771712649459475317511816116976928977242397676465815518316559545005880045055685941444150791807109655183664778407849065597974029696838413529972005326601779551492023709920432351557824166586923801925686377989744844449537135565075392669707797439664056447605064224378817247492313671847042458993083768334851460352756857336827491542871996478186583848738803198599559220571301600637513942382871037935057601226763395952796302342248689667265161324940699152461227843646104521377451191389536600791913933098703125245169225497366206222249528024809252090726788819224793754867971102058503865067972531288901756731999965733927958194566867340071396935173713991374178737938174483421595689074609141258795299495526862224917331418995162846469763730722704782646151694626811802421192881220731525157456707536394453763758909357299787396309534432877550000121121982587783338527712933134287077531709327793287437330445354451613252894952191642641116174381481321800679014297926018366258773152412609435739876756079866129742513180991985155930494340877770247344584373890652357241894703517150251832079389212237322359729228639806095832124226548679268094920883286578295444557781283163869005083946645737903191373613790028432620648211566219759077235452522740439464136829724576884843322530667208817968281677968353778332837227586539074373643204075612461878633591928618840396185170713468148654630620422580483383846147592120613489600570515272953602668901323822835412420178692822356611664953786920488772321649342116999540812128025711043826519430100494091210410293088146346266514300107647938463547461471087075451511844779785599455360791116976198214155348485583038477853888830754756629771545740152507149371610772646966371382416940092309303714859929324127326682750446584258728385889177371927599032138901677857483273427231469870538409907366700608225942192886162467369871030739176588947201566008140476504566798020573780049664182859829146173325795363896911204196239373025467968902461228551535016726183973389510931005552654353568161829594253338867649804377133113070719473972284599567917670942515980021888230734485425639967411525878495337538222514522965595245814738243289642047735096446406636117852080703024449427134935675165094839666772245632750269405635717848540632116981147500606811913457331313628340676662236119901905411946805407470268867921210094539947849904662619740883434798360174791107378537722776332894203562162578392019148998770781992816101748706070195226211771442728156396962373800565705121494586604967687669424653074205310204127564222714674885254844823087236269781107159658650767125931903085611442400048399412539893962631588324499794229778154281957140700423738942561527153259052874486317881851842714651733076554123792906953808067300006489494282290739987783775416015044229115890830475999014240240428208156069880606460585019392576197165189205325610651323328115510629663568083007645003471694847807213164122081819569453882892121149808022774671014548538798674826504397284114287975435316280105241749553862493452852638975372590958583164445503049073751957531466411138246669774158343483856281821861719481626674381520933859054341816384266214452842304194407312703170835773694569852380034597055061020769133094923787574395956310276967262637722875384861435644889807254001300048942467987834115434064487449445105215196512328093892507826259658866086169761264071960346725273817405330561218782783465323948958594564632880561061659182637761243769701776163757330902298934669334843684046860432999477260024860655059022157995954959840762035426270501994084897401125077164863827710361402595721643809451791987111534125657131141312976341835044186471044383876234197771480300310709139346178118655794156906119251078158958583941374557321309215492718355849158400816485595312597394610019022224879019018920170847310842665648736449807131392820531421673973702892037523914349720433953739374814375956412208925026995525425861851454846981007547658881899764264749878467190157856520750764022908262288736286849057046167449291880565074879334846591260836306006164628916881046547421756943492384943995850772255707378145297057889252097465574504317911238668402535261158300705498570400607645980547372038807753403988379316380851743473200709337081521983700572115011179016849416111313102951192414332528168766377533011001617000484645756665757991492281758201697274044118730264428904464718387815793319411522517565230926990661542007250348421621062237406364458143895995258215414838450794356870606034315109672070918118941920437941208900620259970892247011774629194504072617351318536594900997971769087322549859130046129685938325105713372737924412679978117816044410781553201782326346874431633469480701643868866176299174786130427515954895463333010303327240182820902505372839821444396170199955770700431523814907451399266232178993167121483308053130488669673729537653352112581852522363462376500801316081172052472010430361590900540359737158681733525605499128532593643351826853738391064065307859046291607025131724391082018003532674985016351456493143882571910108756470322440608030461376853232644021149009638359433080505026482621657714344263370435934382798199665390893898168272556352401224423411876781129575481140074081967806916511389588719080966989954259247547249388399731553682493774966645149693486899834952012415069025455711114228536842598388364751878684286216887639596351963662776054032817782179641069452145118897852994937154023777556166746431661373949391772676364780563369751731934993654139736644699070765389753362090770100229113041168172490141757372172901646550272076836321580595755777402933116029836864135570522976889006213006429247934675338122074909133039575370534276537776104647840288994385656090472101838340346161265507363548838444439308545502472073251207162486336415628757753176044586375778165668386182787092638485131967447243118613006588268113479690057183312868585170035988190162224441238860677525025732008408645342879574551033556988661146385821191324287611787670513695434210676846901920191757961214966217882304578309174282455600121626309270592189057035737207672858215461929344746116849621584231974095565612558659615741832931281309510563630657631271105219716026546471606079379845375461557274545558371948252945628760106071149623743142211217471421368421631626573060509295143604669695041952334086374429316957219986768147069130888392522536806733763863332866390266466194053210428955444524704450251849291511478728169422919442583725420852598760615384582478212599296530615754072334562296895909366536589061584092337470425846269034272719335039540118281289967190257832247105403124799924036266782948764875069731818862405341575981052816630036913155572250100862877303558635229067177851565233219550617805601724511564409737496996517682400571058416218821666837343812294668914620680854727398002520916700334654348484430431785143004078360058499855356141589620082494625967591514925377194376635182792318592235145478838444029623706968211713889585745798239365624244642221587910360828018176630363128410199123051732001053636813304615500080651369164437981684309527473090086837005589015387255140848552084624479328438312931764730501516453408243668422652987263420175789835280672019628202878654853599514437026117762018748610376300111340450440562014694685775965123206530249638208712516325860143532090788123775411486318879514336744771679043147102787633773740020551291099390675161543036509800836071480648034922442711640099670415711697880276729523642922184742996485280896645571320980887952001154269821195032505968593574116327971904095667130006932045745116267958019564712830700465105033701973685220092418387575660734418846169789762470296011502737658386743162451539274034052935915932397284014252786422318823636604641551651263484060312255862567865034410468310755682813614144986461520810574703662179163827111037492759371183257458352043800243488688855367610799199463216735910416572540672771647961005323858719333897244028497399919040451689251313372758221236671866868334505562546284310808660486057154975823979383881402053713134399980381525703935566051090426726948726480824043893164231269369910900152601862343930372404285649163330270511983814270910750827064160770064578984020069025132603447872347600449099975784946180092349243341620573372143718260224218672816910569224584625281710692574118169190317990550112550472176626901322380072901276404135335204130253795340820460943324669559177652428059317031834255217518568830835654459335415969339495503142427585096423886388480538282914550662175296745010005607162475201717034487845077863376386311682231665605080400945171388960461837732996353640562260455761364112574150354509656870035261108963490915227156154033689745816415798059703688603434413939673498837994283342837758171880929377112692398915213713083767345934770962820815132959456049479481104695141783829621414077791242466681080231639923360226345948029396679590749295682886777256954684898803124932935017616620546204395210903874866695282317749480226496807624115509517718539441960451636173718797708326767037315954849594147327915587174466893054199544688300013446949990912338092570560456203378985425913676431549217635304299634623518909077391737551916175163572777542037066495815118745065537343633953516069656332036165261479321312846869824718126886334093696546548529188361446254410425974566671796122594844152547410312842075173781182518413241824074808857528650914708166576917718858929306096553692842013423955258325439294178132006050021282834661907782863037332667825278330233655044553975945266883290335505927015923326333724071212988928688162594084951546376420718571995809940962654284043113400462862515438760103645107936531696764295208932296964662538190593583591050915496484570433871409347598468626009485322984632114037863035608030909829751515967764543530068101539105655610964242367264317158591498913643257000140333681152188149675525574754343949088210347586635037790116646881398763313311491269425475555547108196269357958333085351856840337790343293655751512518097081834269016431565369897540366034182235397297740813666914652467518665445881801899424620348982407888475438497335196015500869525289490348717599406279705635140470351089724746372838462072526052277547006473667000038806270843088175754210252154568155253754254038161314629524434555191683767870517182976306210260081644379359716825769621818701585722447566329139032820921857410927571664387067995787573100946066637798915438520661228246651073246312372454135447289605839480225255566008370283609342409509622471083888425792947415493299795647732203369893983312514403926180518781411478113985118174809571573211277104543418083022019052887350188542355840449420328432401415710785442159783331147773764735463450617708313200255758556398471648590862186261406976683265204304751133576223645638107413874644902417543743500881337175126004798410341781243208530491242914802445368272323709595581411606455529058143881180855908122816528780060527349623417805518110590344097816482894065603714274742205345639068463207295597954901382301532967434066728172395744539165532249298440737245560959310926501714529313220849082837046278593662715683881280092746522507590374706598197615229892341424051313964792967214581742305721343858579678720789006464405423030219321132755167882155208913232779995429511772269018096150223147700435208751478416543559545021207562057758092619461665261366045531818207302862217790761592117975744181908389115958777627737077736954002114488863266458534255445402288337893210133525557239321573814860662924436173877664382981750683370897440227236103647497231047148972606409592290242090177279303698570238900046545110853002204627198743883996913149940875190059346502364103166033238261892764391532220061332970958554001347191373810691716473165045130410406744629216915429807759069881072423430314524185296675503165203333815529229545575838962431665312231390469740319230391125240256344413469676249568067563341473441240841671849924661162913326949237400403296158085310541380534417189387155084544894272277266549458081371235364307496405276691029210495917847255987070101961592809311517563663041841134022764383962429694452231083266238186832341407429504100841310484307985070687219247176835671217800215146100848416933390098334370002405840822678736928986381953330962213590748268462438454880285396654095606352514346567415978054578747090562085905312990773468117912941437239546856839022155496205978634447110902411910222388601392043700700008868861039457374740172587775956245264853743729355265967144265678609929530050603272636059528304472034500440114607391889076901083694870932675245669761068573020954257435527030156230200526232292642176553190899943436466980687002244659804316753598297066566474635544273094763802151863497389528641520346166059268534246452072336783491481989357122501106531329262451074073923062768211612473680301434653161209658371612558815043111381943119457783941321960896760392994741473567152690105740080431118102009501416105651149680100072956274459138357723917558697523008039114937508027490549931064366829880971738089034879058450999578227716493497296293398799254197241510637397030705501083217999924130275520378457530292987686655070696606909200615109684354844932790258686942958176632768203146482510016844489959606758342000067622237116390867064367607624443174098822875768347214300357554771369244175247687537791702481729068459636162741260491768880056352944084877982769848368370832239579264348902207064350199156304483653093590042254878768035299376097367846114158293635885850798118328765424013557620296055802020376384231723241915932389916844141427770539405404829827154097039516112019234957781000972846818728237440393031355554906178543380747914175385168193782342343234668859042490901440112109149429631276411068732929697966090858800302094005812105508204775861483743431515716798814143318964584233311185242473061349998558676588104883335588040459608339407644954682169117335481836782495445094629946177383083172805538052894303519246391216827713155516625518367979644739083382393974835656835834297140657345446022777885321890058255017750431524437493437220274133243190023259778560405787241255385771763854778805644812182984537188608510607404097126408687981354238767276276283634542113406675975558022486078502601975078478850708805940850868586363155983056304835088650917983001528862121736516085959565381945085995641831848285458498069629134973086706669559029076541428502755480657221719481207637979933575893785908184119282529988928041082300593594008745191669333256399946189993486894223085723994556423704980571059673323423663919731827325712795553726768462512184969748383003212726863453277106751951048848115975895171806797543001639450149757602132805011341199949756233052412022230956027185184345672693936027537975369717726672519840319258893770262652495990780850188750748825891118492939188414948341465372840117416991508587533265326026888580494656313936652443774929436896838954699753239860056172845979936051324416942919638009976007071241662500087775788510498530066100882560786242805162917864513934821218404949227885421268647841985154086767839989604377560218751404325111435342521113112716921935291523736062377813598537034824009139580774756610413626552036250672291888632802799123911488074766827160971130230627889269331061690635458629097585560669425611485841911303544669872269816371526808246084578809957327424188204274306476274844833959655707482801814708623416534218126556393433671242189456266368746203139746177209965745108151670477262436353180097617127005190615206890575292847989957778931066470482261378978736698137017063384264976235994310999581226419017239462114175906682700666577655926609144011830789158864965604756176611068667693893574116757705329015432723481901057531698386128341117337561096975427914901399235002608493805931369637585051224294842318158029075913086529727178778993351616868045761262556705763101148886856089093330748255975523461207732149751211024661171392617557298639149324731269948256922495614831792621963412013376334327329410999924967715745495417499968171242545485450102383525622095747199895777545021507848537901892039146013051824118905738296865167798075997897815903310511334440006034388462219881773815023136164552021273888118378104852154892396536758300906299548726169783591650542473822533927447083895115188062320341879793008281953665482281930611437954652610318736559653132769131260068335172469467994877128381712454280253372398441458476699116364590345454206140067920806665246540936331172261537332251412318179604488501038009936420700799636926603049770190678188533948772742867846749478753239320431071062285050829019945042134817245052981242492154391533618752841812560292061064002709602936821272980755649711552951871203515356892257282481524706339897590944336619913269266520558917899810631554439011733286280232546339541612304628165891332993855615028599534052117388240063309315299240262439009516527569380856558810400194139240771475770529999002353405037160433487105331462023341965872068877489738889847203309168622891400123385166348688598036981370201879467455575159402936574164546579457115238435997249909743081606004351811415318016726468974519633266780686338349750430567608457897412705141973525928102972783001979192281915750525513827869477420422476547983448609381272549373548537069613701914120005312096297465553429299297554349069607038947617948656825477921844182889182200039600519021275127112028694638112520730136516748422181468818933995103545978066194684010654049555361035745530661776313510800219068965827187713491088872313699859357879843902739257714355950323428176043280784563917733265071050899909352308717552539269297331265961876525920298344726761805799224534186420254848795324653952885987387282615205246430115600076547568411306595603059177537667587743897155010335761313107100209818200008478980828943900448441760299658443355959683928738073711308947661800743922022517582828756407111269121877239960555280425108290071909462883102019638534126299054044541193862718340228877039201082362531011022569457623008353007481565354253794717973148520795900755563958035703292145859077698125666749231872918332931418890606528377959892102469572249337099821730339916447604994637934205910383461470442602376615914670916705402220043849845753838403626734009773047533345335974889969369064801314055790999003228068322126141642251460704372995591392417849030395642244031126669516523054198945536827656483312200946741168340032377655714143142978503798701762173854282876350164639759235553770962880474663903743375336944457575768877201891811238374785251554799346333592305512297103352998383871986700676250789953647575369404830321418030275485434373313046993921588314789954837809372566409366278231788524234156849435948949144893116682366183028044495282569419468470697813812005753417801103630659744616796670655188663203625511473877551377656503145364715377157905105429496108213051884481025548950729086470499816305314275766603201066995374536649624435512539754162022613956323375904354196819719370412507942459144273077195241646471515241316374893729885047314820925109311426785123429577628079967056575793155236408697008561904391596185966954524042004592967949982023327630270295216023370363212890020867420490061218207976967926254673393695562368481638119126256589731096378636530853717384585336962546123100499091154242956786350719237877531963193081374531727769273169562517915990833554333414845267621557324159461849585490630178919975295906711345680638876847098349872329208809935601347193109293389053672671679344775999230611967904623962668733120184214944109580597702221296096087107652173386301558589944309060055843345774599772869864543327682493854326641992884035771581460775685161109870395823767667110036254501594447201561797338798723652078257796581427481328778988493318682705338617177385129966623513978414881185424033905935820797512339253001501656219451283399496406127988741052259742628128129496459924103213336203597047095975060651003572566281528416579454356218865840485995071254438670303233054424377655348488871185650530975032317220064584234437684860747150972388496649606529478917128740256993545141345672718594802233363867598682508334576647273206351386079144548243126725198347369791725925322546003579916115373321032478853143142773110336636313357416504644338293518905131650923340346516770894678507494269618709873004696115298774967673941401001545060522297339547010105708044412616611435743696625547524202345112861540325521979088146720630376978432718590175516052722204527470767710562596556550680281263284182658823422085599081787963656602561129922449084574202753240741107655531814886919438011762558789081787806863079094212591624831105286433513857161688664037815972800805382498859511168220438883193874776395495630261981595795822056338141877171286944439755390663163688136663175635478340112362584280748218811615292556854217181196325061171586772780294316527371251187909484898868166664945987357090978393102362975617929464268563906866457699576363422584884932325286689256679702478857835704868061519573511139603367205676193560860760924958823855422149913166971767557112067868671552365673296793919815205186221143454011445552915304588343962224489915376461688887904634486527110126618522290104948146923118614102708771442242929366735412220874389920139449661066693612639037982855617082157572362648054266816375779856442875075231811647250830235311816495369070931909636703961848213218249294307011725333766399158920570865725853354927280904080951938535644440019427759768609015280845362322849455353695224715602009571139430240937474843902948415932368822018714110408910829868789051174725820755282102165193518402787140283733130919257976774371598516852199169113273402511442149605227028489695380167902840160909016877878604291020357719973789860081059470676135214309249303564764576265287426358612313641850689303438645506218677713322470803151674009225720384841679900529236859430227213234896375895663864180606257340772819746153699602041365096301489103666387012415728461355314392107642893019259695301033078728860700226547694506698084432899164651653321508843160375298214788421830550817381221489905769823960205700558606113981217500380163896583101889723015835267954675460690439532537021512906830819321341113941261765985624887282777015220430334478594163505546176515651479747619711201628460375381848111652647241909199167002063017080094915207030317394831559102090102255242932138467141284535022336974440606579150698772942287574986289845270913001655322094898087792540945837143468885237664640103056781148909455188421198501903957219969675396108291801369630383534877962777223087187003356876576478798597186788522186959728359360893133787869500832985975090248743906528341884141427131297088417413473787708329226655767560650540826564825551516757625710389731912079930123557446234790696159569413109301242450102236581444307442185636469210210636843395384067440907000639011966619184223421658812477378151878733233542258592041768437602386927638617334523600703216013188156468378811930710641607078882361610919215526273960808972545054506866788817293954890306820515767789413066496681801338694197975332234064010810502250462259312314705635620021936118641491081713132588754180483764143909911928875525655261335060323320140239401044034547549074123841450403824960895774011321390730704315591168210015780631618375540787040060920120186994227845489280481474607185005761662760997965173784906001106820809969734082276086542146255700453128771397074473622470236400604924340090539521853983579407618126184630272172821492144465593642654999896788537541204933875208995958381191529655789655052404553466971417080050663150309003769994801302133644341766738880455548996242598205292894625401959878648797380163974355435075744914163809021138793625755023682888691603719100971681511934799453194502764626799249743494884102265240969111028398790329172564473509351545847304016353917135929847519718571711875285034571566165924601586371655942677968738742350528475600249216837029636519090311825890719129511494362009997365317771877511218468477021122578106337388534269911784006393373269294554209881573469853164509760790735548839444525144286592183154306288347286211121679325189808726173399001174703703232050586183038235373291506670218201867799429100328723186833389232602681340579210901017609242971038411821249029836347356614050262078147480500005191062404842028494213282628011291855080976951664523029421866110326411795415137953284268093127211585744331669997905421473855479830443331529411951192105720632645762572432935744358703636252491193785643923278183686781617000705314781622830267053602069577858321732880287139819295860226774169998875358489783935898677700694760482635470977497100590589038369380455811089092259243173303878013406487247758256412441790220096619474411228625566006148941805578921293594323276872184210111168068434110942655788479194485868048722665529218196460711773133609390354002736108145037029607316718358824859017769865681906946936763695076087305412990193732908672695721188334778738428039161816368904260645757347834295238659219367947048389375076057935771873080250797070744916177485821375372369013544732842510617214565155556279707212481688396629038934051854028143567965630310272888446795634590218363529265101269314961350829303709795084425837968378607962286912823898161254688971660547243528014186672508036162345865829598620276065093425653858330238428263732805957696096927075842619915509015284480422569701336921391796567319721796717710517796434584228171998983921825506869461734933872873798437790563062301588370739196414116134088874734634397662236546395017550185617688017297820563043397999160848683069251554326204746496271197528732359751889429440094449410535902759182423842165239426022333337544380565456544054109295977316977135006635313798698461674023264734007899472392243574182888532775378423614175345232112248919521367156761590056299428846887774559547822202049521469781609598457000963844591460176258444982863954527554575449033705532648437098518550464207582004377466711581993958480399297363101312785806691840569410638975195372865775084824403402325080948094736432434421463895965602702818108322213751420648948553853822005067720044925760188754752880863036426692136407845931394441351862828741021642331597917135695571845372678882265116000961367202767355824265115664987369999784722696397382497876051836634895026040862678517683835208141713305489015169533611434321293736446223383544816525926472324284279389205110816504476849745152749607203719023966469302901413470647496830676780032833166053068194749496237784457795465393656174894448711101871937588221098315224619364587113695140557414874902004709567849692614727068661807980420779733282022577812579320073792733570234843656683180625976605675172978226886356033778263657791792136876100208592027106208910605295277445651435172948234530006625002914074601018708600639818056123038939044500972395694979616814186518712535319986646429170285917542696902142529284593373061746063274075979386105033448414544449987120486741570165028365050702640116960067820489516582486006081339473136193265667903729119828264878254270428706906144442047788574454041362925334033057005633872107627115022345052901646205814530360598228772374191302933125181136406915643453207313416950359034716121529039845616522695359669328263646223766828902138931497055621778339492950204476447714879684446683346336110080119763961006683809848679218554675877237579282343862452381441955733888519052196544637176418125872940766351948143992601868736380116802545147474974239882704552914853398415758277935870045666139327641720953441570149178438776743796644559389452173665163987266847265375917778798047994459903563018503981012115670270093485692908469699068754237158813126818517977173359299307526511237528211527324899476983568322357678374643625267832966191867045207483823789506933855602743260211712957106284536887573891039499424317841108180202546499511414464918640537756538613447619644740564671718074401380740705350267809120168461037814972394665247764168320476136024224496795809564070316888684492858081803810393452559503172574740363313661497904830955468890261075003521482123578173230254668294125477519501189167588944340195108269154945889943112567997715079765556775728119461044081071595854813150298782412121099607281806066173941602875907680378840414815395395700217671811764315576613635526581551397073476908802940944192023924337769579245073412293385733966335627414062930068482198209414486167757620073872798601712088843207428556300238242144601024962689088493472888497781624209517293566630138923530790325537045876412450990776887423717356077194904958952621489271413190700169549454200380657240884999484474257803728833153846549278399800572887596588314232397763735022691614007446450201271122749983348892808840184214881894964369735473804720532460346437706685497483250509743292702894324442184595602775771272291831470884680774502337491048460520924037745177046815070779551314132542498451711112284332964312538307817647194746736639421050503776672454302915213941213429077621360749460864731083130947845350245588548275756466834269351936370970514315917181370052842336092590837037816980204141778584022819573606080427446732884491065184424090641700448245604533849844011184718263159282696422648369549417600838696828650416739647576741944771291947993819468379399018833190333306003559602120270033241568196364431942531529729261513854266392265745495796284863477436674478393001780332034641857672623302845464914002884003315103669402403765388551587672725890870103225467151551872370655468193221965057164565289641132723305029982027462106388350921855551495933479198462406708373348211854885709518944596213692966336868935772875164044987290058109480752838607116791993079445939260584804983164442944248451939628804550032032219404817988481800998710392101016079328201480492501812931464682157188748566168138205081070500357869307370890245135496493866260242752329364051323218928373073380665660055740455685860431909222769853589705885056649430025343152209416830561563810901431300654538945720129452783924099576371160898384722997257642608732251622006932145043191815310140011263441222714971859459731179958802896358690207636797313981295751744733811592834535622154230049284348730638116664763716782155178111625375902673775425328552291937676996882752742513484482813113258079359680728482930355996762053037980309853104233189755674600694714345241854153647645449615270807263980327402921666038319518654445577664568703973027020488283999434225574983276730095250026686293513935808136174162360315235919750060262829775047523681301961713306698943085105950901844798999290308658023701467824813787683703171737010284555011930067801674027061896745099852100204346862417327255655490024554842965918966397047296136546898508373941951421407784538146584925494416095845790178572323429316834306957669553082913299190915282498895113564802247974051031763808600989732892235129274292438603561555524312358551266972041760391680683577762174094845928108553549814379202627799454512596628973623318048244241827345513459496098964617758222926611148198920852124881526832607377327090665222099977551161608231954888273766719509190522123583283449214128058018989933683336095380208623313952681259782184006118940105345256453027590656744234912828389334927502681832118694536920494880055285305811058178708723681161464344767468869202401695705834269093859529260322421869666205104512065662436981612432864490503591550227422422138620898802245132298497648382951735693302880585411250790987476619160207563484490665133339910477247535982752967532310870826088042106145723683687282884605479895127084993706743232620715866178451192076947023980374629480185786727306842053605461665242096061404260183353025845380628269273341797420735605057800962067853592998334748645527863875971988561115401641204557304572577919575683944530682691781745672955044843710737913525439397296840652278180017143207548241837221314806666014236345431350292558171587702970864176695680542062446250947673335652777834497201139242607816250344613681136529501937715388174658081486076069613199333172679273410624955962028150667814902959723194038555401465292528805650714278947583959542922272777682952330004851922810769782295157662296174241439047630246930107218528208357827815590228400418476272264922864103048475754594521564857019001146913753624034908506987876961282996062853602951678694186414245906994814398294965564562009597289432742530102950948759140156689578664830060845960942281299830024491226437409393721452570696306843786107951806624612415905233622004804035578529334936958444680100490475162739739494273120977903456703894393348576109675342148005257093395830249240001635218003505153993427097691141917159057534769879534538515692755998763268015510986804698892531995538279664409736043072728758305216472381267696117274495341420762879299659492129625355966331950869348162577242565694355052515162826158765006543868025331057887175206285749255123903087587826567690634959596580527730972595811123129528251033879776580000261023956723415814190539637283496301403642982101001789750604308602285066127124106628720076239153028549654274996961448876260113662502576811694443486845534360198471712593767442459564471995498331756457009537760707790971529419167968720665698188914476235212804744830540666293609502708757562447722202377899123949799880153221167357528747863529088999703681583562571011286182127612272590059340950881538189095175739260468124513823121618696005092295375573608572791886472128336477919188518830297615566800202092892772147694525410019911237459151515730747428223460122607121525561395346934337118595735100163311823683978372900919991640709651352524781107755961451684328225691149540420389505826748721763505042314028015273120596232693060391721844137827887961839272642639498552255598847180846272875795568947391186911253145727868154564984726604463027930825271705801113913590455363327378433232415817823880891545495142001808643198737934002406142365917516772810712059549841233358369596283407589950634619961627349324992572940629791646986924104709219494333942148819058394866039559654628697072658540109220922442941265360736660990167252866974838864378775320693184945206104516755656399312329835795532813502096737411975487412026801638336609983906688937308727601663965510939406600236618604146771156514237921075173800230321359929375222107919233579581585330937636419948345273024681792238768892357889651773497527997500675137587025433425791430737793814576631478906261326338187003477104137322166696389014140752142894936853729674582241190679370239635524029772666460257427121411426426771574666466393229352331027468788432100725401798438517318700698935450328602937419027413523640988111524515779128659053941351047273956624356596237675703992741662718353428622468205448696488543738442939732783666588488894884797417664279510375555690240897262798548260437444481641550017729044699462520204054605290128785672848611635322812706578599893687542002564189948084250358828083765178716931989877328927453931215176306594354570511221715828882431504272294351352498179828384652070981009744906552618322425628645253217400359218663001611395772091625320008841313343331511508086436306314439809058724034652549816592917023529565452155088781264776023282176594096656047822303024431765077501561125352349714554692129267558866719859273483693380434790331927762484608495376645901829882822985535911697311126287597700164484286605101337288421620153225717488276383663368259331655220382159817624837168429759725076550394292201453310250982334508046018117142883398481145288513366757257639209756400084670767146674693341960152671973282190546070755270057923356930317667720064345373914192860190395616408737429258034291581629783755808369329197091103197401379167697932690522955857422869698195713838237965161686023703627852526436360500690766403287589437540236070179058844283194318016657113057717974734775547480341284003907651847591813724116308835555193634036805843624491147271836167147517218151414338748778527772297154052073655502708150651166456854190056562871573938199599865370440623574827807350036078412336001927684724056797833076196682643005268795733630901832814624712753698682508979095679481868908487079922875187264017030623242770186501891443196643341808164469556739654797860374407753691316530171010482566703012898483382044134174442797014164983724957414690249612778901935071427886876429140328672242626050954851023142846747519768650164577313222963366574356208019848255723849139220174770178758342264254810082612918975159393469914664765703910354576056463253254167989805084790544124898735308133311038840936601715675610490486854578613511607055435269670654931771502117245152247013003396692362035649599393909717405889098370711844020550212396029828986310294138603581415240123054233731921812136935519632848959570616099467846898170139873087700643871596196921801922537588676715739611382589779072932722853276011631081860311314231312403034182546064201038462804663889550590226193759516325832522744882215803139436472158342430282153658207921895750691311248426830337004880702966816026317468931085929148380090062635769938360657652924085881885690182573961245878364982986550744606968000508849907195705990303390565037040238111471240808437632991166908151307766546898736416519797264899801029446670962179114397981390736572631601229973211733982535514119694943326383126082242347268821359786041518426754613786280998466347266289748138241060127231019842741955494107678365611908666643432591517984399536960580401618034990316398051831350175390637076904945692106236710250567101231374462436384241124996902169656969794831400114975764180304284454306435081676532360736203201382951646040505180981557398191938235909059982230692962661872527658362417589041299296070990154580221269795884362045282430865159460955807401476594166581112588946842682615732105904070786325379601502057876985348877691321802150538924637199264661943667987295320534739078151341354656390955877704407954444556998724143001534467253760984284826397266730465051586699817391255220477892791972364269035681823566711468054067695746546196514550545000703947119043727681867352241539594159480448785987142900415904789055063824210505191017794327152341344357448244809565367360978559022732986028008004070641865063047598583076708230721454314976448434329413611617612562745689200364547072960290137432093923362186715487298230268133442268847112918003554441122077283381325931853025089270442216871268007989903227224024247127357431972441538742789656763801473843084745087808909057369931210969085214017739667579835238939215914792079129492681977725429070194261222758527779055691586786409533486072029717523784789408724405038361933731960730554553182905088895717631891612362081694099458158855187600011580912920226673118680652570972243897923300810918223011319055380174050137449740844303877379737223348833208564973791259625767249522488259953997196742557363977854359201006490483785188920357577158302762759885954823858021362851787480270227212527047050301163359465465485172693151484148237075121489299265757133487587734507697003861858472523339607054488545081213520604132999756939435441940781981382498424392671259220772582473690087900172347812567783265750033541544251791253450477116554551293069371439964866313067385788130207987401656593599561848667276172699459400959335621977599715371646049847179336617520210160984071396720732396778560331025614701255127920921743948319406935323948823098253275761484606155826627312513628091312193522534745911022007053566541191576732558934736049425302089105811772038902863255706264735474551494668018916342954190229630669472758383955983517357059680340636221638659093372149965770794291424911258282057557211249750105358118577110611489359654081663426112272821895851891498727233240936175035564975973649598387954558217403101138435487743436667027167452831996429321373434745481767290832052816199108262684911145061571343436729664769485241708687306505615431547556470516771743521021248312817179684545504078280890957333335146725679208532986542304548366131964058758331373371177322032700402802785153459606806491098418322839896237455649857345111570428273804856689084108357397854948522065913731682000213016402355829155507828305783560034713983972033714753455787564994046591295435208150650905751215212647642097634641118687047392889303841378019918762675236974542229139056062207227974937136269768489507919646088802944754437269394640921620221597526967453006922130572721648766374859066418196242248915947627072665025553874606684765549310226987922249684370971033921081230003207359936114491580171279936380536168136328105625982040593266248001116793469881226379273442286013865904840956753447636325802181825549503226217010402449990108226552704933155029190634252997387671528682334645765735963391929801943034501847507216248010830418991513496534629217583167924843229633578792119080163920420602883402538511867019370154967040541945667258245540091092421178152057406474696648031317727151074150492924413581148972686807181925052327110919870826285064696217287045046647464035698756913039594174274678261295350144610252467474391602766831751456153412052607970514844207662735029737533870416208911964123447220552291538001624730423936661923893298648879320722161944700175191370706100069144778812207835127085002563825304090048128238043499630749761951261571571721737923136296050486523250099298756057394761933642483185351563562877810153715838853484729385914333212230901517258703867995001268453138497615983422532056566109638987899033298542124494816065975180374182771481061668843439327003393781428744945301527775820368427733590886312304435507519190137146203056883254796999173724852503229291983064144213174944201179746810727304956373635230384560152209900123536658711731723599920951131881690888429859826113632978124556320814329554574740823141225577293755897691658937020693542032400812852762448372727847209861009152380854395434404943015915633582464693087657887591594641778242112412704780244886925536826735762149400412980224180976226712552377995304009286576749028599319673539787833699314925335490121007604982711025469689233098974756617505000013271650120866131958875115416614835277732199238631717403719886228594200632890454058495461488584776816690330078849280159405880272951230823419562471159189113780179902353150385394525175140494885306161716728260467121087395626812184392789094611549673784598375737461396150165685845181235518383570140578417963802038548770028124300865776870568189395331706632664905550570913424946258582817795137409687526894384714889901448351224187176664928865352267558750200991520213296146495200606462517205683022190941426427912215934732481056825020899700159401979317424501052975185865473079972753812661254099425455923539277734349688314068067838588585552272833171508326847496781680188688705910727344782239760054766373686614839662477678722152741796713212417195047862188144797673183806828290692470262677500551738228417122471812153735959625699739171441383730624235187847525198917551070114350668880599190752792580968308511179783791249456312486265139160103014886069329432780890310021287424346661825104196484557003136483555940333008539128699597313439714536957399858959070153503366201083552114225978840209096702223060276203745257481791917653108814380090431040379229135700242121959038542891583649798915239576452789965664770771651327292067331668686141457622640742605532720043768688106112867342674238548177978618163769066870154735894217939813794348678668955372528279567027990744264991195990646522108227492314395915480591919709635286071159395641833780339816274955378840046634063799723062608053904065123314845139341154433496755117553397881073325634164899141836093412796106472175183627266571892938369548704049991656954616839456036393060298484363061159659138085530988612500247766443173816320276864345526329500524201860341841131541533286174972248043452867868791945275381128251827862172919833385986004941282559751590960064833196353767325878600079264401423374215782904987876863913851321973351785468583951456602383023385794376569295813630460059535479241985302617570025854444234429837225377815341411472363955209644408994790849008765910206603150045315982349084373763863050034915866841690726257322027765144002151473261408037547740115428011146410967516238339255025270240399575349032765037400233004840576028128953596085735416121535966327498711206173356729973226045499707572759456099947602617647446836322553862764127488892730191817540388763193112373270957724394441232785216587865740775908003871363067367137408751781296501815060037363056357934996515048458392874638209602336971041590648952462640192111626767647683575993525436557782475386778216318804093211355069636230063059583101150767129047046510270713040152818490952014770996087806244299663112003849216879142366518830178903842574208501897121744283579981139816848790175759350358766450187706244406037651592813676193128968123487651242665901259219752577342953825840715803874154999040658168784592357024984452188018637757589602181247493594665650871652882824466525660250921773162265710427093434358340531492232958992739338134781304909260312139928711562932284966893967182981929367423203278646892627742944793963107393615682825031593761871222348297015910078681684463157205097690560256885954838225541550426684396292639404346289787061269974000344669935122660482192670375739738544658351616160681619666046262140855094672145558641989580594106331367454161263165372898188516358203789794499583163842279208958539607349644457068226452987816540668374763840713582894363594756408091828295184709709725491883972618695364688170436402271790760608647702708728648908522137470593772944342655589203512276765417551377255491298361307134597126767707172373384872497873466035486502230696665418125283486424784932789272313171840571979808257240997530518063942744551450527125847434247277972167801970105523200305356177169469324028169556716803583559352400193423351382020151125178843336439761786986994364102237671480115340597555946097148628253587393505701071998594733308997415040916229608189289500555021368727118958281321716026874242943689049633715521502257971705869020093759401477376996619920007598629564708382091769081925486745183007738612579948574612403709790055564829529714069225137790801097417464097092207076655201174644811652934125197414833139010544656599853986492305903119611013759006864174548206298742004906855147844907797967547997469096651687249662208475702114860962634887892297302568593560301066680280909958503857604925628481313674308714959929178904569354535133786652287495080748910524490020349411243777139410957688040300430307699824443302435749288604635423836155719182315264447676853786991518599425842303831341687703209141419424866412424260009343498260237977736185787775179081816917202703106251383386035103551053822560261751338786647268747953528418814186902513198850474925773823498374131320597390982015259543237452755217483937905254105154179281547366557285476538035586164748517789762458746429957653218757021411324227361702243601797525371715225312708357108484651536232698604456370630003562744488630020243821534445584888727747221558666120775643277413467529926192980902660508714835794626396718139048568544783287969013074066821431842605856828196254006791034975695583307498636472263015306170888395619486996273653415457823800378135999710355473449295134621743168453436272381670323977833278507510082249691153552181907088525040025230887507263434356277925535544086725042532867985496282622765076619160968708626446017938545516551324166360813717971161097530449833956267937868115613144867583466069170275107108980254687859196442406851399704835447305210388773406794757429051329706515261072736470913424236633449302319041567716045967026067996706848976970874783414404474221908915299331500987046277051875514250855835711037412001696530537017518932809113421052085497066486108311502521509194004072118927870381586951349891683180563553692909411514422639217601394483383345185186785008053073831455863883932963669441321378037320432256657910517506905552593651149064556131377915308498796806500881658998081553641306788754906716802026710590889620153782657591806973915708162374420124152031571551767944139955173063211761890710606636203592417513978159472934417970982127799159847602275149298897151496018802887367132055055488815676959708312857259222949623034033071098248415524433339259194369520637070802852089542329257463319108002130615544132414582040571330108849255688626133982534196315939638260513434666961103588509907349235212484327917000475556752574735736389745839866765344191452062899903272805258217861015385293897650486811352788237163250615381056430791733699235150665462655114107749957700574930779639924247839996375843640721220804716535559267160431000406052550292352400627578838863604042811140586368403386729587348775748731767905677645227461927972725814902360523082879898065093026768030871329666702081094864205496151562059632442173419771634144140848546180473701260403637639868832880606547153559682367058475093709604178666336313672379784077690423065415806142040265718380190312253901393578655620535622384831385832566548435391723895904178625486071652673494028530493411793965790901445727803814733337481742816160882253934375573051320433708642495085140579640849024012322736610374869731330111051599644773483995413512955450724884372675486412425529569237341256592986775241137664484775330412319690634853854540212869865132687844757491949555952014081580623912294846157027237908356083841762494404281443123201165502846266915549472259429534291746864430538796854050359937224655880318714474162465247356165098059393305557017560528819500899405895492270114384923756796015983070475550000200845267619745035154058704961199676286582867712265952987232101954013518723476255053219649851700107264589126616458238521311563808795299770380908203745632195902262863485554343316949240131386309627532903459753814010525718734419693345773436617183227090161482282083276830519914411085518860949790378108289641772995921433455620780892675872086413044704875968683572564581009415317843885778417283844890323364876731245921474320513365275601566949706488796037780317552488925438073448706101072884769608539302300735255827557750310444612293902891371960264997398211253274168010157773882604145798700287028292903096939249234796290679438428428572466327679858252692516546350278006911332279699814919840974456021565433631915328423983793630613332344904535594245558342109059264856944427531200064623751035429773447658944047147705271557464347139892826744123841528387933689774666361167229834796235244373550207494544349869408442786594948480006221868679878287900456521156471977840038825761480078742862885526978511010372765378298606521033374996475332471529057915062961278687050418505103214221255369925779374853371633903566535386899298340838870060677407075065423136302290852260772866138305053171438305119062058401525047870434670554112401129244443560487856623738892802279289557178939171980405603114808314621654348603164580919680997347800965171597602264416677273320403851378225585094242421057092727177754638673247354532087755326646114326447384112951112894683664496223590664145909948850499682409448007473824822387172208015336813891234363236588493680779595001196036285402784600635152084853082074470083822561000807930562395235118214914904579951099496407346387931458475583981800611781165881839184390643924579542349049238833890007666590685537824431692631615109374273717687516264361760220568699769215247964474464581858260266560634725282257527645778040309839039276996767392867203917761575054807779774175651400190261661939419047058960656429538941302978986602842462270878830937306379161147619093463298867187039927684617462094341227980582676595236123151786430889838768996080426948314753457373472321561662155729612953810421501408556781290320951673882384264939542904704496053685925791630470716798822231954848699385752257251686053328083906293545880379508718632589508225723773805324914881657097024043679919867228776335996631134787294420758511012789601766658053719193657097102372876423903104958280200109731739131604911902290331535783690177618754024966789739343707052824992193704194820695221136629447386087998849928657443202619670457404043747756483607623460836304139879363992272073051342584808885173652988330453964711278509553123250040609745454727065341781580182647076304046653741088217040191896221008157625456751033244120087780442137687651017948885834453583069048188056485634597086222845209147529909649528067123302180428264059561126774722436595775145531261460509426089128517822541100934164292194233931923518168018502083724697078453363038079816309563495673316636149382520165755048324957829031911375770638741331753826047260849093163699784793349450604217643482474358541420177806240999035415458516222083612627057035991049314438066077477490343067843964802788022476605303121789429333006311151249536673059134472035225134793893501835699090019411206933262069396131737182573986749159671515352379585863508221638873561376826549613135492995815537762009466900367953394606226562175004835904191104930463782377258597556779641069220102387537623118631001758978812445485441893976109717390065787130631641695355713782529804469798302224067435221364123961832140639299510177526465993993912898401512590011787860801234230125837926810378842257518561602722407448430945336323206823567503773600682960632076694360117479916614085772054479531289995044562998887556835661909809414213952581196922944147057073059946026230205821372002296164131767515157966561006245744208805067028845784310733594949396047922035058500860138337197869573568929358318864366756012471995042540721589105292936160307425730688135812649746154414224578501995928764360244471181825504897956879509227328142003673719996484645472687529754963059019995367780086577833706217118178396308934441145955902808102863192875914399000128021195265531349926021951047115304129229196397234147629264379167464489216643198562831147189838848805993428137377097176695433789959695769167038195068825780679218559536801194325941659819493889529173617336249516573254854416898400824644147854060624669860572192019281139385240937144628924369619061836654687352798864957987659840140441192185331142921334439590261574491410904829583990727463280469441783108855463481498991936158097567680551376521878985285468619358885621384275340451207026701960463818433368384579140050316516820482383192399255345649804255933490441991377051850241953875066646646854192547039518829172117010473050515861628357000630876801886388202151721265291085104403631436287088448596358107830952360529354057732074223192606043547078877024559121040446272290832155510608754163365379073164835353126577064575887395502938394793204171419089319986717695478941151700198683658590117847750908877517159195791290369527320070386592300639658662489404133113963646607975151957677927263878469208836386327837282730289591935567585474785372486022510163708596348338876938444501097757629081394809303583686462091668381869528499683833852706466792285427603107820685873667366140360015914299334648122072694831846142464756867075258797794708871752733637145212768801415798309174695190846504620111772331971876019859108016262317239168826177833685700192247269258634310634914168336873721032357906604868361308626015709657343505766548049154574009341875579987620876337572420561094412478359165958736032807485777464651754089139496718641699187868697554873562207468051333176936099525343718592220146197702981997196234614336176902725794034623724941588982538149972836718576222557489803730860262463505348518202142810783002230725864614652990739788374109773394449244786076664987232292312370501145368500018279609908154711503311995308423168598468513491522805146564128423408757684199116455903333129570167359516427436340053637757891780116797228281020843729660477907579899097249960636851774136899630453796261387180277577454752799549165774337922379570495702186326021556026664792580137126078862963310144447615078351939988251633553223859702963587830184406535812541347531211693128587853193488016998746465151897491566232179951790767368465799922094294445486637461027140755246729371127016632421183694138321231866400872419853111595805067459494091233404765072840384131421928253645964164926870123574359920992886222607726867019135198773408678061993241104767632868702577104216697447453902084251282332039541357562195307569282787725089814801556892525255509760031400406960167974928894077180385550019408781956652563123532360167148178436866264146394095195660698938230440311708047876888072601564810834933982607025193404589169283391355516172901965936816675503248515626457562656527578705280159705382038957985455779563359767620921932604498750649020548481007736140775971561626635580421298682654538870574205231435261872032947784192750764166413391682900406546614177504311647467560063308695637225272651187623643044678249334574659654073599406986929541849152965264812374296653824697551083840601334440567991710541198471457271911141036529973141386100668630737300474774506367264087482856244136090334791375045685480031718713006481450454802618636193561332526887307274468342837558051863284691591679543904086574591621009018431365481436464316036037379756535282172269490361288610039689580841056747246475905988609955577799700528318606587581521275338839467503300329138453751510392596364408823389773934420606772733796661755386184803646687580338928519513657249820440792395169225095085347915484601467432199533880632854005868790865839266366807861926799433415880383085936346944770500138800766124359361950899548819335841239646539210432428696563241636815530849682635427123784255212901942070937824183544969779304670238054693498628555095377642585209569921822677115346003949729302568807491954746710225618313667298626067746776088740287778974222532533779474431229248793684997921567538297318342302736796261621775922690091739578843681102163054941602784496728503521733525872526352196689413810904626581836694216381971814335821391833268717932080143353318471372231202937016256334556975429306671270094055552372489934709879465134476314619440844197733971871964076469479585290547019854399896166224691071766336593815559010564955867821067366563930150251594206271896467371508863060925950132170104771349470730023256156457254866784423913339322709239404999346804424305852516825113784190728309566568849201301767359472989657241419770550874513649280517222759655181822934938355196416951653392793685339762772590971825566790608665757973537921846687287251509084955527116896877530607081444828453359625524772416807481874943111193173347972536792491133784561560627270736004024866568595464272067104595360453344767706318499288291360879777688141590939691192095935089255551939635770728882127940500442869359935985853534725375118131035741562782781921655736713115050352453438789354368928455742391722557223967770822431419408161980333552121764411485237655681565853573912679788144948050373727989115800625576317287819416489424860522478632810317248538120901148044054197842563826355040244340414894609918404756223001573971245087216131435885848083026168459174381821876720903539778896387837319357857400393485648202994360415283087657644905660281705794125606414471492115716397317267075273393565111517802006528071358216577342395872073891089449180272920106774147371247844968077676430585696283872451356956122039036685983736399325525662532270881404656423507227426538284228242118569193774045790288401369103541055039339986277662884115087834947748591759766769014283472207356754541673391874317375784688800647281875856701273605495919177736936195332461372083831940081583247127964950350355798465587989475834572609182444342811469832201591990254938156053743919612609124534459798736714307626299919083288130306991719310976754163620696519305442437961245041225742764863612122699546349277782304273044039239483283824493599002867763515373857002902266782282169298531666495376063633069984754693653412911092961316841997956816812068850446017526227405438352313771445640008409715917023412753387233882176766596801873051349048403981540542792494817186752641687029637023807233429896356019521310837537518778629176585678242167390729102946471778712844682845590487756566390976967630253271659377885623345518353173828445071579037123360871831571626131090331047945680146560258809610361658755076622340504295604084981233012672949098191988285707498934914886733181439929605813487170082616022100522111207078881407237516363953390053361974001731079542547837550113620310844492347828011824504134369467470938117425659217738755531545850308645792456615490676790371327324385356878662344873549768047382573014816007426144680538354912179101467174991543264481168948355911036578396962437092540059625778934869016450411867129660123829410722445572011685473495277263610277762826301724404017166730786757532742380550790798571778149273566752173900715434613250415963322890119789199852962959502345958321526991333734215927001420963802140735276850201454564286998281664194383017981915113674169858616104070523140028037473888191615447971203634812221864904465260860708485559114260931550089636985782940841102635963099922004367258271963824077412861693464170700903677995402895726806585698395237265289809091695783077435192164518708987552820898138115918082691043051069135967452719944784689513487052433537445961226049312094944360181714994622664257300682343995189732371295233571536354576766814792082367052392013892025619321574248911098873309583456128709449886149350712758155865576351027073260201665903443464457166937771321759197211794532202743159006597003758577444081633878127642218828562490712621944776517991151350984376353927339958950532111276399004049863146677908671950316874012628117794910657503676435647339435671624610663394365934810302324206469667133747827213326226237575939925148301063458343795071093291018551170455119886223643000431379389547403230002671591876015728991470330730183248038763321603099380335512278435690851349474853825595892958839098845920558515729872385434014903648005783802156947364433829909623413337601544277109519941324635033554472400394465422881611075533644754523145931435180690250064553132300481697238169248466740420962383254843759307409600353988932642546102528914091385427280969022315097464878922455136847479733431347078112167508861356116015183189541032314357682085531433397972778699595600200145979315952129747239405486257272234362908132252869602555814938412762322791113863351388860625544745305525534140942360051757253070301818198640435399976796583428593318124496496502586334004647271026660076338645837724263715783044164770479798083939304707538386472976379531134578121893629030964571062201973879317499288313582790134942067844386529409438469579717301196522816845518174657512841675923861974730531719687331102393170304047084907205293684960972855301386975106277485547991030736389730027215986570670411289541209152646943539203043953903312025578808658307333130259995370473277385183931052889931044852825060817776245021155909042469522061279940287928897571002117758883412530329129951294256648080151854628304122310670360928189831999244015719299170491176762532523298079561582766303565198300140077105297990160538738968360335194153345261470810555735806583341985337609381933924216826017261129618811241793503036227638210929510922236581025109733977412677283258907305693273892238477088650691092899530729502412468781030364951201588041943040824097306257122461485741864247411314187703866927550618566159967144932222076101841477743042412819499817871972579694429338594710040377954246907617004303131479253763467408913237065969299913875913977230015591209960425063948145693750719825005074925521952488717904764425685979989838895908754649940826528197530690252598114820980694305096095893476348203464064331030687222425304506061891361754192920961391920817904271637837470566464174500536523804582357480119812501863948973878744957623933604024923812074654749664407955827615861524375063100785022825307235935279540769004309281997827446513820798155326219615419798719494844361931740326332082296353872427760118929483161384169279689157686170018720999520505113298049929609340895272939768526046313483871446621671909052462075016827677739232382299445737817755152814294616051976353459772599839614839187569343106047650858519954525093470246830359400806307205967385068857207070455404028185507435057331708967171974489706382513119616808227912182025900707290122134686430535932129900834192858677324968002157494307775116407989056488665719664485874166319439866273420618091101795153177084089641265844603475303490932052162116212898728973266992487362846432333090145803696456570868266591459235424520483145052896720046998353374230287416026966938968289903278394543191361926239767295842266797497564418400189650973356217617975508332497428918564343677798585725866042425673037641799212888685623869317911404976714949845822259894099404440930987458155619002674044350309568890739392107827683006792452345302427034839408478267343331328074261331079512417661530261178646448263034617074058497280412762956656331629945719396720690877270237954426015963619126351995639250261684630401447233721507918172147238549585336014834568483139724328695785076443322518210556343978283798662615460822037941400123226933748562570152195841940670923313793776947515786987717245446775296549446629032432017564373837224198735563815609279506525632446056229881670293577809513149847727271462578704047963998911315796833532837905514154218437979256723547310122491235506713049699400780314994928504300244884948267191681901167646202259412525508355578636733307386947302214955955239002228293321179665534766608499770996141606787629827669259815913719492259884879596472630352293231398768776676669792015496112661618936162997658486226461297524411611532661628072997116808919078910709165710473592357919676503841939409878998524587508634708062255965200578593125594808959286198993901392306404177842354827723626840445284146932478248849701850064890848216754102479753345182163558548957579333228433722977137357253179934368863932500275917075442547069277339194939315638036373455290838980710513409276681754917191609918150829478858538902703782291175850052423000576150855558216918075270033150039271230777664580052437791400683421502257487005403879923795058987750935625583443826577487008145665644126860575564928331850631801219162006493051974691667698906292981809721697290461816559333934303688256267853206461818599571893229869578190398289343813222493352278460025312123543771988465984522218654048758770185807504477857518169173773511752584284603395653884674217090316815820440009424560456034818175157698598576154974086295763906271965903168919947535515843907495557816794190030952600184808570216804782790337416731344759957036873243583585338513746348533101748620251954953607199802782275398781430848611771717270024268981097848629189823688111936294051040385709104521946564085249573365236978718163663373055080592414524139960641856059179823799918910887564356703361931521352146769761664316614843077529203777156252410339334682884289439280255110244013835687719827675489814547455501111307351580592929552153567099426122526423663235418993746142434985971972681919377975759970454643854951617321698657107498793975743074014742386775612208538386031008899661440970257795185039548741113499948574353553392404668213444955111830093099762128162418435751242867191135684105150191407144685499274618460020972271335052238900485639746213985189831200225384497425604345903686879766999933219517848749170489214174265136128570511927969400997629293958262510745933199173317018188031620550940264767608259028944166929293751172644035569785253974227959028367940815852843973317742753691960620276339775626757470288686432912090886219875577200356351174743115840941069347237133887336846884247211264717794947195961990139620593625061374946973327742774113408822663849341254311512496408623257639266255848387587790956872936099268706537707166787434171539937521419541244579038459786683077064366470791268125414147459875510886466505980202050871294577839038556085605998094833406014518902396275598604554843714545268501763293917997103288323841670880356197115241656899839717578191894627822387269387301061073175290689689025347231166426357370596516456003398554224670592260592790903494472105926940404014049374350065653260978642257422848883479257514448515542784360097207529400576772564842184166256778533329631679064895853000837873551865368795637223968579203515935532268982369627422349263686972126784467779655783387581184038250044067929638055727409089975281387176076810137524631207367892218572908227472836656434033944968487869085951230378775875144189731394955634884596716010891010428731046323631857604976341185734759811930853150612865662223328852124311002718345668875707486633577248970792221608032940118836619591202180990719933543988547120200743362789180437386647872397479323645169060068783062038432923636702291488111795378426803075856845551028605226172823393296073728209283602876015988389286599246494356373582570816282265016093000719380018594571275618833117389784462683755215219471284738206749916308846448015871720566718680178844282863877834861532738148763503170148521304619669802051319380368490080258302286544209027456291222720087542017831565784358482030838531415954298593598887538415901492921266574160218214560424200639745381969404055005187564106673493595279499487211103909127797759329753411961401369228013794946718736242705221947228766351337469884515966790035037576667180871246332021613739791288971034646387370501880901321615188110727600276962745469002600931172124167271828886812479892818594164062595842049138672662023547963929959395572454952831678543209693855732936361918857625274666142891870021478060171266014704372893836852135705346261723359034146498252440196568074421579019816701297142840886392993000780477362074708314577279615039294915546735943747984320784052166554902878787808232359214609429806875175465384763346166319804193541965840747917800837624209405336378166608905977371747847954806075840055488409656698819753485234466188633621702141607682130769353617486171882559120372266974226897520377162013198083225081040969034511627446893206166252886308537252487470421015310729432460293005984427046870986742619129860576146011435280929978459715384222119349682260887611198518541945836717086383491992915766316508160559539677001143815562007012677860460960926628228110275331648434054805037839453408003587075805480308896508839727696121898376389188307071246646711712810447546203601329571295888218373097083909962127308848832534676240710331879396940127770074755408686553663013989732997411447135774859323476071378325629270884937598817291389301219730001104676902366854137485327122907233559215427526031514794093577902606767199387059873418212048901809770219928566003804759079066225090363103862602590767996466682157464018667067605279133484892818758998492870354765323654471672558207279409701164300444805609986437314447028631170145734228008665966685284604883987985151651393078054779658490801029278021294439272113021295541118049267337228928634406393305993167189682485460646475497873817464569655502560829386009765300584736783436710775678515344670051461964374571666315108424352641341134596903373206492637835785964037632414594435087132820978310703742503214170738412933027414344182853027020603631012311717844262363480080640289167083738877991018006691951588024111700984568056102925314163463929003161662042717450484768288988323586537562694312158345307178270238816292876188543307488556622437815048079484098402883428222888372100663477617589238243430465917792780190607732939295878769406271946802882317121455142519860779948118851289526111936647856450302148392714566789466413483056212232541950259295715324467524166600263099303926699545147800396868668310699356305219690710573188540629689672445814221106897504036572389716288645224478170323498063219635404229363403474773778800584739624539893439599188723559595351453885938087258149496671384050743777151247624865992956696508913383499488431840968868229696575434590775378797146018688629036970970367967075025451961181869778468472208898800081390166899928418793384850534700486709857957400779606390556375073602550028066230064171640418292928128982267344275990301145686356503447248110782338142891395811916478738025388205075465464610034879150223492825530346132295375974051298615206703547860771722094809758059016098977673791666309664413497504346586496057044937082904619769191939958715563142228414537225218131420840013757967736094617840826676088428147341210666730254979328592127567578512603322844711930638419234810610455369996527814164225317458071160293856877012367185748751714496928366363963602225133115792057129928326478739129085353570164597326146881013275231417848043618791970026570780442524117552700339274049783220697981215383389433790500761901576215376881227522963699521566643919413664152566640398615823973770455328400041185868462942198592529669473073863066340804034876678760584043949066693238879611347751867377804222519502194238430627573338118960028947408545255311151975112828990993867782109054287917996059547828224161991278089721668639115338211609370574239292413763684153501780754714065595397434687830144207330451422134622174206825086694904832065655466069700902620589318325856993760172643809451597656688758931493453071440735589857196453373187364358963361707756580962967884369724886605464006016766688750159226698368410267234934519271006409621305643823612895597231460033289176407194150316600774888391569283022738901654696803676716802679157228333385760628144866691267000148473382602792681914423989755734086597202388017199951808891522685629428182515125697928851284322957789596052718357838641074561357120501356594543969803380265366997909483915598793017765188468262858155452729957042872330278810459124019401233730028463535735733986305342923943790789360759740262963418112501584619121106476771308756963488367101773142897133900074871390598490966540170382697937670244232482305045324771208719943994286346947455786278931691078047033655029702095716239653496881707672453056789803645656583767194712775482208073709376783452063197244921923205412181688728228651914121740991356102837759497947475327983270923771098876690869688525731978496039604269056869623789023680225985631869332829148169845105753210761821022832912016305865431084137577593403235423286986783210544308716678728755423516199063687035845926415144414327005216673374626045982054105075801609775762858798224267780889290763667465617740725958364177991709640443272692244650551529655834404911647429117581790137125951559689685909886325279864242224118111416016277640501570299957388254696707955887498886500906054960676573266752486792554635336965309382288657351164148584528173373753711983203454727412220069949984473950557628422019579391738878429791090255998633154324628681388590045964844433188161047248559103692268174217119955940149988411691278240888269012422326235234118574786618244878684518662390098853894264969954166240543317030824984170039308135550060406367930807881000612443994384399167376926207249971214150246670174465711373381673507081522841703881069951478874133210254106825868296603337529252645665100514965931148123251920648666632122159614076755779271175627251279534775193328417604376876766099621634433130697431948528032033946848483451623578679752267268255891211802473177087962059364624992441608611020699916614604400214148402671825778256157935639471442972286368988056063439687149769565955401567180563561924770682987884208535967881925191033561158655230749284958230380615664709125587288350150991184969893642003828742714967811962986372284201763862120511119597433315365824967241423607929095656611372387538648698894514253624021795715037184687829712337981057293309532738590731330179175751602425494055339157843293281813835254037518464480556635371970428734234135662447376108820058523469257346954465065763707593574227575182668320213884177987601520414669095200513193945143051076824543326405493276194159621223608568349894024886147468815613234795746236307490065946059869922778215408750500535033391480409528444448572085108733740770721273032391242102591900175441995632319578804531710942522409137225459083684777156255953461804794527073470555192195498062734545773343046450310101565917706551305034161973201754198771626480656155269909829575622767241874439811277217132057724938091556871499267744464586356193475111388746503729766763118132193906478642468850779347228782681436464212897655254730345149366476206550876757555923606497148659022622961005931562136104113887115878616385717474331942578857487839065759734332209722640781776008751627114467643715950941582463510788431446508191352784230034249241913912875400676946938199466543545865006268909851466270625339682008161917111121471855209028650932693482938537270154539164372406583652674904714965424090775600220433290456088471763381618316568337327380030976448212894213017755605253248053046516590365312755508446001476739172065391411993495957784409016563879145850506497243210308805193804669098782900294013636714416367067230674404939062195334240888245657533274756450656073801954183890987038690847412415374395832326479412675307168606127759663576827578298417781746401739047924704900713016783914438358906014160487199941299012091100514100171176361339704457973480017848909194847520128735226596340279963018900613199688268303750978081666623030388346691418580279313222689202457367825769854774253382737243437776664709588307161129541707674583836000600530430251078119527440710817740806177068952693126038360984439264109359915095993884203793552478008880246713614092580057943968473410597537479593555195418225540466138687717668849435726785427448643414150222728530450763600335035448692065674163544632662917074517470782388314382880146757779498396554865326899244811669648798665926366773501615281691005063147524904311515572214739923241000663292415580240584723545674385983422163318016177986616928898953701956191648109323162303258897517032521266092345278989789670397819241203711474093986604661180444501634180663459028153713459406636425870934530026365373296290445945187359556319330508069283738018621496848074971390312525236406303459328085796343874245569417580359652644249785355670797226381959662483134355731062409686782671595512056853780085459562142812076584159948333567601607559803790454511527329750494854317712268107182786201452018187613262022516448887234747882613181655571869305574982241098423592646018795664175174313608500540297620307999823170378380048926059297608765241938802044423693766649282307386142989828299183367088531697639660252678796219092365980962142046050799438200876385155503566479871196701668743750197131194464326498589441123886625389089929876978345177896642224983741446080883984679371254987039179784271506908534070616914169608468581068088856396045086428015431605599998415171098183326141170752143332002272477909926127278982480940304674909568195021236899466141810615351383730911571043549972839883985839456540331781681957158828961509871706989602875832158935685150766920593120769788733954830927600432316643208379232104001271740301250636416765171649580210279382334956873622229715904624917829024826482690335207151833215395998633004253112836915602821643146674909833524517232924090107026458840235964449199434061983908355513595220114702550052286669308982011911061825569667053789956316883418085731411950142860181966377758345965541556971938593957525053315387972500682657009898968799158189426633123678875539143135942283295966979828753429133101696388192790547411193668973251183599284633263419983222520442243537126091249587412414476452336332397789759274356283807517347165940052162626213885887977873890902792046834492742094629134496929054524250904835582315242479564358096621502026407770131510510957627344678131509435780384252328812235430425879524269389077844401752527108735696722542915688618445459716986322392316393117682582799798263679766226913860950368965589581207483190293316723439426477279661168262414849659416447798549297831991606499796536932031283825040186125459095611254251219746292471878763777285263460757219153863571009340926585646468242917886160503571175630730120811475888565464141148155239236066352593683916868122787831801946502023039407043110768449454747279481494553185111371122202398815361072243135393181899167904933127652798720563506490239166300539097782383009151338643256671052456526503510181980567553217628878213537422035087271100438507758364885378617713072205981509137579482664284537603312987229236502224883965218217312492347195626974292424115315414920814442714065106628945077891791543825098307671257781744472247998054646497395502247378767144815177075295889578686268711600141168532041136388842859137384317183253107839002299893115010380460776852744671594649414461980935551689634874905403699709258782436602854810925408470205289006625936380459630515355866558392011019672294962428565562305264202741162542904991981574190092954925204285842026944555745367517668393400668602878475681717383415659127756917590130110091170568159206507003395190460248396992926575405169338486671971647609987117948123372040099647999647582452653169312940909102564561906214975891386085918633766396680969556675706914565450019052807229765823224095309574308609983338694520954702666803619242453204372524830463836896082531990631856203468169099966422191867127730924299099303586732244850122892690809214740194786998587304507598960441682564189253281653111080780222255608739780569053058483909975872939003623075251884326935334511536621874379146994116846758385748668731505855763610800489148476725435070025756607212808057821625965574480383970159713116187304016423222564981230832999127099372415661313206433283109305663545847315393371475977450576746219697242387492274981105222566831275694156444748441721636466605627901686147234977103730247401480219317320110778788182462936783981707657208384034046473392026672262090831675281593183924876244123522984099607711296299756286623373798619810389690096429900847078465337665047284110323370671315213531673553591905378130711544807400501072610311121497465344054277366844661058068146013866795077557391931065701696469776238480673122417914137736004425579829570911738401322907639255027367541759647536853452968716916294114039719839856770607270881843089866512240736301681492517772983145783956902128752455079770758942019069873063938923916025217772082598925934295254106662693056922026626962099862407039498337726354050225728961312099626139596084029537503822231657525559697149088079980067948269995873384391485028429001221492792118532897502627191465429363172042636871121845880804649668302251066688551400367762673546559322510925711828019740866027315339267581284860699281383224942685277681883710524958350562188356833849056466839811681802998970072985775171661717572169845231154666630097952379918702056737257805836032146627326471069167560676312829833806219331822238015857760164328768847540561977774575840728944322344642822503953319996949341566641972566158188891468508461529503667685278097673575409953609789388122837596190717023871416404680170802529429672765215210642446133329773238210546509168349082371953132166423324065144846084839513882051794006189686457589047128290511395241674428510588173875100541380154386255450749957054720661918062684428587968396839949137507648321309987217927439280074220332234299766630767649800611445668607401243548352732056958831140876397866535676473294157175298371485649484685635760809182533205107805824900236355443790885870759383228743376577398744884410715391717579172014566467929760988399554436467863090227082810044475596001374652982083030777754255563185114730894591981418279369896504805583375826706829149838898517101747265796418877101591286243559817723613477040273404763469390995634513472576045077274713193409643555512868324558055850538158628757064693759314264779341945311060372849424324470031661170419096750586695102612905216085554353078969484649857110842496943951448383103151379297791367854091236143688191329432196077740836096786452185142479878929374145882557048660708183604044848968611262373015712058313794823622401883262441840818387486407565790652108418299526949391014619044055008737900194295733038095049311045263721655988707091306186543158883782004924868553756159849083172010351845962885314701236371293203864874646311520918442977858850282286609500768054216068194506467022126486214784650340350250038505672485424828724126332273408378817333600804475582584771991320063957616553800716971009804749396467764970094350197024370743621778692407252759233677015895828923858028052219081486427816192252536738269716152739964415721427735040883934457651561408931760575159369789806828397144521078580824867054220132649215286669894177503204358044450002657396598349295598790124132015781081844742710426683621935463185859652338204959315287674208673981214945545366075655981684357129574302418696453877501370137081230905940585546299191555155700279714742068772782647245704178616018980120796064880986443365473117914598980963217596351525942102720300861622604153370421785484472933513186666339561271210542951388970528658987808763126387765321664590216958532546874822832892825445902399888805255213794088606188669368741406016307990833632476057512690231727022972916911244947382006828701495800112535398969677879375783019840243147740475356898114284183561386532930995575590314763428778979118301960503341328599916710618008489052223807342602953852927289697131799192746525225122775242699851169691030216180157552239994460751996021154113459629536756088017879146662239799753089234040791449516097097567685581747333776163877993670765005956633484789982097275602858453945348603429461778214978763818358630350638229341622893343432021711961654430894255935191927869409936430114211880927922289291335974459006008122931872918394020174741038017540103272630632832393000169880570842997396495393200001814440760786338205149783026530164987849997033433208408808885908159901029420267136185581481066729530108177918851331884512585694482876833061261503334505850037670356635712661686315566590597324482609317790938667777182966796615954425871543797417317629300482129045212217029004052344479772827691175402428602926032976808959309752967169887958930430257755741773743761252999997839655600677427255997247409376882623963770822713912637705537323578472871252527967043865606564095661494042296427034106256199802735781774933689318666729957502681638814873503265109162518281092969900084259117820453069193769057843554984573678272794786848331432590125466155093090681708055736625468870321104656482585389456754983523173026407823294218470523102005263337296795620324603292998768724943780964250354331443719721225065520616109131136976180982759628218012068589561703669727790499697923537907143936967220876449034410770544479717226839876870639738286834674007440282545854535255194077999625907365939916073565977025774788410643996909974594976162315562510297529610487085108442082391400490252582068529403113840156742133291230097704808008259401920012316368315617626619980584389936045309655882909422299054356892326524720298615814898294201823005866150483046243069855816959921465046866667669960496118677287033321484035578458844946745786915694574150632148792318599759797925951994238074643243171407006076640302013807310316760424493116152510609125351709097344949906238621640558022814635955608798167680655216599035856872214948213212814936365042120500082490283403101993930196699372382588639906952392711361923174337469939199174810251267331346198203073254733628657393987717167583919409192572623407504907034859359706892204312021710490775046336763894319539684921138113290181055867130341726731231951650007186690238634553360796666825652151545098049935233534290750206316242550512398641858681301408254546870204623808007567895721911132296010540379751867097931721693902493534806124903607669150621619916226758228555077856100099341753699911667588434154299368280846359828106066533048187188769774817064577961327335674319488225771395667153038070767000824263224583085521675265262624606306636822617065218041811742656133045162043961342541902380050115659852094326686091035935279048635690175432820400657833686523822144848400675559728802570644248118437953837093138756002996354785319859155571624010791608152717879396052474769175220304473844025401233347416677144803709981120158692347006527640425474164511682446980964234510019877876598222903033725476800153063988381090748066752089728019680611220591320243057881113338808552707077631357335750387492146412325892783213189307871633213164685453300831530066150284858802546807890449351913584221324667511496914662972604298342651898094189529614178187413799763714459282063692033779965181137950672231389769172970767363928036840992188759520024578226501725845987546636714485238339664843385375406346223321608129880766805346988444629625688157454629097496197816789671408728794466563009004912609445882276048052555744672111512208616005034430679011261732312350499083587234803064527767234082231989900072665598856873685830221544650470037609463845672000119166340014633481442606384031673666258274511517237412410158344574526467001279831915324351900509127640189289722556195801164314501040115442500648588196588118293308554343148797858130257919542023266501248074977903050249879985799456435189310785935821816917286686950049979114080108298236868941625716775061770639146607627788259438288835956388105637647746498692261423376824497679014592317584878953805201574886399504707926538087062770079257826666878376827827980201108325638816302039345192468050510068743165605394450204110551180783882005595628589582872422473087477381271852312077510768981945605413411495016183304672890397225211670412959669251076398492780226738958423379204182635212113385523471343451188605262000973466205251291166098147915606957424812336238302250957017525557235566491978382644671808940944584672712429497387577217217660546000062314867308057325139626792121939743118933264120627533326923689681936729419589473154038387919995058596559332115175214834089572948191653284169715149266045154755113555840939396936311749680853293255419113878545751329742693623322913590660824445632870829315052202967282703765846129065748218075593742408987437112587154439688492228567414111515104342964539956411780899234282607574612935518686322889818435149105117744424148039170933098422201013072459555441403875286906262777446602064716435917284403288367446147354666044300127828583654832341197958283451164279352214838396557381315632075043510745046214724478430184560643476209226166109264379593626404941082061069939182382896810243606278111131475861204985822335670880619390255998575533746723767877859970983501937255823627676427295638765885855671234199172088571747367088719955025064638246313500353126246829743597264345994425130999537709579618606149456979335694128940198715168947372582023286956581107385460399339346894021556637721203401773648758246068887199283324082809542971025576161038971045328137294993237386254719087075303042827414597287373906258192055622389812188125201677643431960474408391243592759310928450760236229309611439092649254555342952991555290990371042450861533143057162229561467192942745326859160015348424487481710735100885998415871292186644751880518107400265118472141441758832875195638744605064067087385265197308604182897083603106553258287370650426204152888380467855116231035781601418799842989074169112295326413650208722174130390287491850257212276359688360950847922337802797294382496214330699649485174802976847555137868324605736989051039921671944447954826022492306388615562862063341257462943689739002394901359815747809275182753151060468503904486869468305077990399003300532213246676514284642549123762542534578237431138151071532018699070582888909811800319182090573786469880300867229372573054598262266991166513550252524461327770237404602187616253616717263422397759732263935781992245967893941170626853863653852949826366189941324749762833735166805060419073841796557297206072649522756198701053039875461669039653014626461264926751681292395899597161852115443909303265446305573346359696157917336005800947886400096426469998235563033819221724714050437944230460753056091855007597938020345579170107969090555302015499808509739508891483428194505156653122147132754575514968438541818487392246065110487476234202636130182966650327489381312548893395242321726544841728676213708115434602899317068495715092214474461591480520329964051279231414791028932548890287765942246653284952146606657809441652201508698865543538447191055584443222131222186849161527925984572015537223088092510231645066770731690105469337217592316117775305283909286117929605353299342238931725422856152717082750808602110332307198921585859096758761331569970524062743316582318170383235732402676671044361330473364151415107869846293925792343880372479152962327885859832517583855279154446190249119112473697516023429838554633345298508910765381158030157929847251036003378349332105571702847990479993322699017973692386995400409051060502594476729908370107632580314064796283261980080030568911380027848021500439026315022834806281835166624564950457928944120817890924186469569806619734571874800962367189026461334972496495902144081051253858799830218675280799774208648496005005490865694131062676316061184055981210367161620607358479463276902669522729238343256695346523930434295727246789235308343808972318761203236615921612344841226270857003120717174339157177183630085931445240441144578193217612732949247521835481956487572175863744061569314944437422496844162908155239425854259291751816626839449203934261568300124738792194691770770441490938657508716031575080983631151749659020866051653094227893786995320975871856536914063399496385843132927844110222668484139495324761615292778626860726274731108542861104900922188043575363175212922550154700666775010750083724562401511164675381381021965142440229694112873870342234955004178004098353608510244102797432377749236026001853824211305613692558822544785631820212337280662694003728248515989687328981495871551614442054992120242824353703508971085331794565720599611311960907586268247825178956998436718152472786600480396579744910263510901093572216011554218610867066058802837120447574375944118839698330346925173651164956361319895622685150113629619412718204842678290602916732942647254288251366466026222526555464143206988176888661157750173026553771768072134132791303074998484677003379330044152806987198784329338440879382439079647148505769292024404084346431130955851643054362137276979945790641994995326631387987401456237316079928435647206275547896029340717390928098336873379039165066540390808969491485148782032894772669701923132811583043859928593383363268383616634252263423870516755258530848292613786717310980037804488312544313229607164943075591834305142623880749196791866759507483271193706069325847389149862791943421448092232371825059777834670268092355778483500966616313922834605955001998698420586223833492427875532666884049713536305810957423314491923787974549701493824485714684967188028184587069275483553987738627870965575384754472005011910866896288245289417514175456426877916871550778000503396394957874524981571986623941408569624375503661692795586197266070269827733808682373630589420615757694814772210591744244051793942803356571353295566819523952624179254739255370312456065339866312462921277788419247031917219362408470366397857976802527349112093410485310524636978638178819246108023674975342022891537861839462247493331930031224333031599146835609351670978386788151787102219219485914495767835061965301181942161083064733317821988025688827491328502299647023452063285075266794996849415488895925986244550670737451518211040443565674304514198259147248133412356729447123323970300757820074088581032135204552429825320057028791863230928999477594477950008216135802148769352045685417547853987318837584508449364481793533166369278131932246861047743495691505185510713920046624601202569029409483971825603716376573494877345299023098161480450886907100373491793957497725247953577543623583396956730453616981147186076431613676171708561763191208524446182148976449270814295816853467694331684908615062815408664719023982971748194860867948066808968277364169691090930759901369125914087703800608452483828269733362720763904800851827455766677406345473883501639148396627593085611879032983601281987439645507972253886411569420433066535870284294787598482808953846782034150695123135133369707606467798954123880863877837769075702140938083015918309099157570428220935289275398160530383677666198819157919890689672111158509252773429437760647956330862847411617171389430005283645808210101201505028629904353489567426929642744980524750114069015960103784492953324376321712139238259919152774901550731875212620040234255228496141016889313839678283342769417599780178309512641402309196621309951607394658934823077160193534650406605128443028626271056733397326244886976917292785424797023528213593694949626313967698673650096396558969177062200965701686338105780525210247231022781604505032505102099927363980618783451396779983452903716630230514850474632177503444188081814032189353472547390379273695784510481238926400007354453617812339957051734801659165645019367979996365002438279995954134004130008929395320565389104182362155597012961013078110708817725228266564851338732847898425692349024297766471704796222850608718911129613859992671943964209370937342414537506082902784639821426297071151242027942342391798596819359996078923100537440858783371499734359597788762889277213913099145674173980468726977083376964576252139423291949886994709626009805807654182513183163638710820881136455866579548729229561395608278496985814959099632881154096028359291651031597111262191492258668723374582614686362117820417356827665740989917586645109863593018953312776681972373530770899430857418096627718775337270443619755046387959109325876441822241104320613112162199434913609347572253266668144893039937273340665055342007141025147499876952678438145442924511355477788162599216416109858090087819893804825059793061965253789617267528775029369729846441619559262547702789507511706456677742673894566127517565729139808804899929639758693779224736222740493764821435241346960885298316534965846746448955380096477829118510777826501114328189934667891686649148506107178134313036507917006829978112663570527401846226248343466414066027863038710226114972105466376027656169123481125306994208350657328700350267226613207761107341324418828640094483002609925556769107813517806733723986905593837704728888925550801949885046052059689484250438960805413908450570317236810482299147451072868577151710146696562107538876912990679900789285776629407484292859648110634764287832128784778666611041362153648550841806560142588575003417651376846807967896310583931448850552067916260026084005221967586200070442935505035781496389094817961615986291915840463268156713382763992443889208251145849312017131086729979675055142216071312657143814146372127434274768472971563571933187531883101401241166833274823136399327740237739900789982750114452709385923178906259385540163089202400025286256391579499110880740061169532489093236806889262777149719115698126911144556672568020494335245583222896163299609206686114597479396603907764355701638664180703992084308469806281374304227973264545309901932553766582540918322224457800601843642907598473681340586985118756790137497898140539660309530403025078569723042514773057782412668346151727608642307039437113679885278462777649804306500876819365096298935681292430987597838890065549187435455879451205762837740914700594854723807872831944416601215712827935388980232802767547212300972455578561912804375417641127801374594866982986325144354856100480828876486598139379728384850845531753753817823974877325853229512441365303453097428944379130227334831234727782238336201401992067064910061861420243619176326706229103400552977742435411420190707540801341341797399910563852520743209110905451848976815746448242749797520054613906182215357526757365956002753245355922607362383074887552237711902662342555037323664916667102762840767015650101434284555384561252355895019611084747176340713077943162929395772629478958423764521291633061588753612611309985758946089618569259566807842848578486559962121756071896397529937994745027424431825195498418867973427820296767036570749734431825475278648820542178597260515858920094596104098898516346775108710248049261545493225866681443281957626297277686082251263938789647456534339197129912889830942870392008688595707294612462234920373673679316106794909093534723049329857735716882391500815883508012990343373670396216090032085357999457709967448943874754073972491685425611766257169950760289674510729132574678211779898706781864071349666697418387935559762056424778197315541850913306249575113830297143206490807510337548438299327318581760305650146280099557227703732036536701850210301135812138372624755711022037374265280890848110439249113991771499568087112135089564282729930813894784839803810330534888601656923787844616138434524361487747348604210525539882500755354353966994065133987676003724486552259526211529060150354656757554277424971257336120932248579472747008125243436437300805952652091763934171302503474676405968732564938636790668507069662733272345512894037296315557635093746741419986039083333208912746328592468877657864329158734350115224333160793905930935279454599612622945983138081025020170237810355558798264864334123330774308886250144844411487994992766821529683858005158552423770551846805014886583480485063892330177739027535335589630345312468977141297882256703561051480923003821533642549589544832127939007734298417563608572905053482078718362318528656950056770487370562782772654488836264254056307477855620087493810490925516399710358089829154580795470560293551498148903273794368138707746342306273420725103853152701368143469824735215687403308365327600897315560414849624725046193463398695194461646739884955181631129917184986215437985042547080741098665005154488902526950068762131651274020111399633680684382343203425458390050515280192412035241055974257500795060330699231717597201453257864743415934081182251642641919670335864799930983916142809259669967689164687163957472260912735020652359052680884450138181113668780041894938771751078374062127415489290501186913382887292168618153600632113938111727199244704805216112631506194721622964274034852417402611209298809577876532225405271208441386569063563400394842372479580871531662967680033754337545760956894571407614608118390049546430360659839802156156346557948162456032241759361803094719496768817723241136773998238536897112377943941772068043807788063683935653381123769175993808420264372117164621165737639002921795816276029172248247449671786552028096637464300872123491011353090253192058333584176624453576293139403801757952867328968707295576957562424316195915337769736535900837457018181734509668255060110232492953918396809778148855701845615839874824675442955973717035787051962060069348970366075811964615904295737506966883382240209422169223061540769051137965342636607348713692603220725754220728431316205837052466703097248152937453551211236067854429118286100607961508615686177673157872146261727047803998710245744951103611064361003793156347464837527107550987857016909717233975154576430883757211476972470131583529733345535591172866329868728217283332957211410921943681882621886549367101701639483078762099671567935471070025972470955283420342429623765661079662285927394630883067511637966052981657233133501039619543365195099008204052398837182836615368458714702291271897296144818819567480931482783043763463382832279176954390139620267019919864489660197018694606576630835064392311918540768258419281298586933006149392712935558827638828002129815203160971654503137199380766216855928938531946723152086035027836191488829584508481632703144918023747492812481116630619091446725252903495929078686599120878083260730469800118665750264217449927576458277589782730247970611764694159853939180776668429162381224714987688289714666787207454218710082919333207978060485638342612013247236236741857931030771460189375283664280757898244411369513357790574762201345109466268538871677291859531838291233514304110450757247470519102143003050476045520496309753541629559910435020537938694813274385119311918523659700100831178946081592152401091795074382875153848594909357226760647196664622764623747760752884065648095491047686588040488278737737827060021660131793942259214214795101158217432474837166025344026048977000308982634324634819285018424332039763420975842655174780457801612141604090334319739034367761949212670555075426416122817831146686315667932215330855138605355951944503804408083469000058577171271495393013752025719126774704738524154997615932786749843230251670547241241567913609359723150952718834205538369863399845907761674987501584347286899820404533426228939662451682734813559288877906172792032296845216137612467019900532836530642942784039278339329720830683538606485219387932813891866556457495355633870755512644999083117302030442884226258760049802190035037749387144585673638375000523495654971328273743345913872133004037606907717263512004755551440945032189004823674843515021324472361407185796876879093170882973398630654450064956960903876099195479985631811897844857097975001509501747113836555936913986225461167923724989993731814539298779630637427083028634279970293071354784523636767956798705947618644042070042633622887732025037027891813002066314197125953047765437945105691367914313693596070952900847380405394756946073998586032804827355380451384290261517664194785051382701068997448328304868477589861922866804714523228721837330871206257983666641546510005732884051404932465102280186625866974948016489635485012095488340070252542560750172783514971609599574500539935456353370493196207797833429997247867252300055169800867031714295024031168249522757918911161562780988496994928819420412702992541901809860179232970286736787901042437314341119072981553615597933048968913851600643128514075713209722707561240927647243111340220572702066067889312342351338709843230419507105669054172007740232245723848260310030632529935244315318982951399437548448330804357313395723514436575478505787699152804273518079260059631089414951968690954444425874607316240072288275412999379677284666614307086569311354763796272411129666505999809562183719916621535423585294177689801963783576074609302662257267743661490212723815973465678080349560387198393611302089682393930931050753264096492627357360788240870889655446960500602566988873316581584085484978945426473887390901807502628514541810243954206170026427983856390125953023640558278687730238036357146795137370437092435204618126466391559284186011954763030277648305157394670937039150999140286067741763970123222935220730700073663028953893718250358456233683499559618009168352684269888584380670574082737913242642275421246703628205110801854514506240264072747956155310575971120080764315740918012709926772339779050774865602863637326672122441791052911198079283410867693459195859473665388757508919903618493981719525115972822020750099786500378800322569506592693798484240286959472923912991712232929718560087607494841076211984922070050551650311945402995770736358109190657709459254192843328187404022813180329639430000044388413799943808005121734372877460502818053623212074795340344518841644595038105366805442529225267154545007555161785704740386368519407828492531107377739366831824048765521735751406726217430506265507725977795955919395267665815084509973261177090074054006874035351921141953982476401410593099810797762253794647545435883586017211684480493778902848092243404775735863539622662791971919741358423018619027554861093452290434192281369241235237403221011729312376935584235831790684642259450617686050793014401184097361076994442098958967117028416486308864576788633694207898353187303717123953560868422404166935932291079252629068073079222774024925679096182602099547833410545607706319103763701962837387099962817123424863810817146296581401496116676408885694403571614572357094491686122966350617536310371441684034424771514105908936875673881151880207638074088112423433920941606436101752053846407076116369761333449951466604582752793188831556545333710492166527903455523662026106626321808980681779748003446095637586393594349893903602924753445055165457957155135865923408983755652213991849987934844365039796307715194376364206794248933182053316141154067182724337810845880388709465105143070675150279059095897023474523588855512942457157466658256921748491354438810549488447462947098103697099369318569780794652127530253702717312055197449951008393143002123506131232361689311878085068477889170730065400798506534592283782964971733451610961430923699689865436757562909917686095094198977834890765688874328306936521608310108872135786878998236046180612293263226235397429529753573076829902524312304527325159531545508329020887138356353080770772112949857550023380604473715284203487935449799511246114412821469521211355909490695310121098302489839054244292798129862410766436437712500769020695265668172795009344599724663388628006692151561408624673967363036680298734768459184017902076166391632005960377434603352430945267218583993158842497511021047777404616363919096565231831572140348891361101876930080385366424259939918772833931870854574978393797325587257336740473061545753232952141451062689794885183532027078884683703294470816393351717459475763245284848784473826815281132323451260280940247006766537918937592204594755481594757126831880611364785130044434705178310517913191820981009344219171865449643452652260502001227712938609900982671897762067377895662750166248154455310812046937142266446369817541450524361664796301232380023790904872792279151349069426116950284633013581219249372852029594537475435926481867959381204614857443206509272706550736899816889319971904994117913550788588365711792494352680086939569370726256416549071394412735877111752348255501165359886723440483452542489185645889727329635427145790267528037345712366338842911893136671750837617795157571225328838876740657497991975314417775221143377246367507437143229605456518963241135847060107699515812176419524734233490252918977750630162046829386931069849582318262558688317410063412482830014238187616814332407741435474480745772064545027983188200115774199366588273002698481531761186391020737340383598022331381000534807927368284341955840936493854954364420860696865379454812838912655805964737878007901194913133073008702628725925862238144488222136301290886283217556743325673517883520824608759565930249988155030395405930103907686255275549188983130176639574955750575722348651815387216113335192359052210292588226198187405262224570082414125721129289044001776991139851127809793335485652116878916299737661993993627617045696254693366407832569548361978599078822146322772604608644116425117967675795020905708886714878848429609644614124818538662149093446143038997434195242458766520589798192363203188345250692848686299271176891073486015166346916257630027698495465586196876119644132369778422258910707883523682367732942495198183851604756676724419949974080803483287623673411719672589702174543539371308404239953899338246194704012625666949348001330285899178199419562510686201597358619973810976046201923472130187125118694428990117527852106007004691496878492539428773061498992492870917480058963878105737060476278785027189762328599463122201602347418859882829013450173562276014196735747432397131647388624892027217178722511087532445465741074562986140811653384533969435572434112386880760221894245958229228881442300796451544875648594684769308291985932102984653807564476233853634370313205310909016659468483757706585167695569772600108197241005025946537828644563013795947943738435058049880406034205828878657804509277957929913980907604441069224375660645508390296768488855488261181403542587984696956567138163578723649906102739436177394819072943136666854820725798245857590059176030428007843326413873720131187066964902001423128964194901896551529244676586808107252312604766560549573467882306542543298073541159488775621856999044740672632982128361823054533005219032174132891333281612752314267726707418598387086875551603310398911644615040978248780049683139953319161559268301840128598844648215313759482050586864996723741737834437051453794413249969725785414173196328500505705050979369278477202032615003544791216454954995998672396286327732505294488245144100983086400405320495735486084476623980662461475277328851586895976743265164274735489718688075823054020822819468618012706349542687203860465179213149951624655615361697500065321327445847174365886664737307961904881411809014473738026344897564329798460088653900727992026538791313293792187057438668607852230355466827435343169397524442435552633102437375461791968233572225398500471373019309001880439911887708986774465339000855760852902720927231395194967476567300066558996062131278319480123832298354549577182203598401815611658649578115289383240142525696699841320928882063175584414327157682970164193294669449823317336184770382504127646985149094128288007540379034104826366137487431525310897714671973731723404329056357612804873583700458512881913654729803732228162056586581898747777933868361664541434991498384966607236675557143267452932914005572721494956098836019999535700359056111423705020888746988822998450654390372286009102560792555408268819790469449134875529130300004460523109638492324319569995977348625740977598660301868462797547231026163787816445281037044636719412431296379385971338683565609705275676090078883251517231814730718412803315539920596891482454098641691060790411610151423238406396292649154320332930070712889831491530492043182332744787664005532630823095352129563877951314423411708811754199867087467711707051244615534523773952334119883672778431017713016327102607294389545158602182276979760674750036958254552264130448210295028334194281941750660198962279488710410009636152396305067620291306738231714886733801986584030854009870126227077371892370577342483738179802263801533365574964297915851587844882728379042528277875728914507575243731375673296959981946812073498607868763183924451479399771440732563524128062658055668534041270183434025830206803113782602690995521275740059842091530939548201151528950260530074320213806778408437290704247446245666116410338248072471203618365511128691014420646486874905242267047251036457625322102511981746993539026407403733587151376881872364803071454571626738994461327827496680570508256581418868487438928009014678426261268293096661207646502154485024144284180801452774429034420160700540857339078685518189197628711800289635821140437031421357423423807726123588881468176071215637690931898658015930587752486212440774008370840579667999564840568826225481967024310406552914167343304411129782067789527585152345779751321629803156036153984291035139558295861645319485130626375488072198293729548002680538490651135791968876539038503548304151370711709061544126462589780364017621708385362630415784425989388999965913270637495270981598796506474397244162477864655050332636331585476296031149196375401944457765861611166999703035095588826423843276065605350254997196505657625395706116448290948640054560156360252671971607219975890152122134114244762760953025316340221052256227341699748706675851567178246228270649453726400526802063598836332788530743550597433724352101045808417966825503053355085336014731116145815108909391272939579032596991805876806180596642805698379437853753288651189868667156646550322081061508141795941737227091621556020260013712411107039629860885070702435988394106432299193521486503799731869909671811594069526120917565391772144659983527075485168500878843808295997961365070228705521084437401066472803087806911020034269390803596814016105619405144205430411108048849789229959350668083629972971904085753015605056661922970800599853290102202189054444726893765977796758783686678396093690052190549014558869023588363619043197866633474183798594453222374144361851976890708086333169466855200718848576286213529054943445460448986347820982588841385699846711411862081114951130835912040562540240248171718531073057211154923072430444306433805078462895826383342444924369708070718731129747465281736378380962186259002806561757363702563153623730066948102309360867624049032191417337340617530363491490990792515687719137346326036200009324821521853760754305273284377294453197271875655027607185451221371269267326399613795173587294792449392596314754178160676711834894887768016356118954491635201003569232871520419793330959937319498908238924291530815245754681880833045782533851364718171187790802410714824101921308923919635429382883713100419441662053693835964922472012177295364495561885613552110098022320585546355556221276551474274772069467920546505603101729479647540755239509465534600845361483718487856185462984828242495128000303682777638753554859395890066643149161187407084824040327757970468983462934718937092660540726683684558362107628612183691911245445696200962907604695352233727374703292245395966477904864107867256130849672722746161281940238389574762936765294829029651141440627970343329812932961872216055040230945144245833883990780650506534138479709208882863632367781558374981394504087282485940217147149478636793150066527336410769830737824638357922481432628197012485535925917642285014936214346015179303357294784576518726243145371196862308044654584899027808891634489172215218790990015514190897769841639546689434031363878409630271837156153318735428340265171768339314785081192869760473757250771470489272951340412005796752320914830488140017188642839269901740626580505865108063462275725376469324673197280931391794727138642677333883713408251690253975209761873713921937797091424242378025589287960039874979644403887049277261949810001351423687575162035149274338486867084759200288825868068846271655121636097364589799152977331486207976396227381478359079955894661206216140435853874247242250007744882501298949105248548373473493393256859885239276155649302575537019136521179974253365741745009299133785109731562036296027228055834053327563775425993396420265260303885613388830900359004279770333320188055074978415981819089501711599524398122682183948499086442552818715202412522262877872361508029487868315489642789822407638985670636875523615513830010049446040802232260637870352745587654500194226279882039246289366830719970299228765624091297949770201544453147682255419340872348478554649549191159672065124717906478829446656011379995858104296351170649156570720707218050077241131311725289195264944523927678839349748629861247548128091199303440614050492172218622864078287712283697859838229181876951743232032101253856458555817747395177329826639000588732249708990153266912993512125140986996644238133033584906296578042596167208545671786395601585498295558549374233076612110007730495541974761517756615744438094464841281361912714497739373047058525467697996275737062240270603147324982229703365936008715674355855606313469605376759907783191565978396687288976969167865467532370626905308793555376975980485585815965150885963772254231820103389319712300552422157609787762666524029811262960470606155989476412509888699204104103514704031254509748757737214698160615001737033463868260998015252593928966189672131590222814919129419851119913912683635692048128536783767466506807311478446250216362921363904977867532645890769558712145246887827108346137503103258083774338145071212382195854764977676254925524629151893516788196796940602122890434428841603647685339986974912779999845190795425811315287420901802450108248971159485463182586502561269654629147471243030849561362925058766804963844463650492876180975082143253332416022412862958827403493768570222364370183521221846345097429915648149077963394241274826674460315292795942944335327306409237280181830024513095063316735538925858733071830078100406905513708712495960066790422289350766814645033478060176519062244019577447938465123440240578741762621544211827345351693375736181846582830728794979506816702231029776196890739157405238850692871417825489477437630001357217746325076103819723532562241908910287504374218308006536481006087976743153359218383493025795287317283087514399408100388404286826300883758205862935628274276240060736660910413316226539462272799294094671427354036148172609608367758637989562079598262263836421725362038811271600391317174388370559986617462228695910723986527402599414850181179863266304063443058851743397134534672101383980037254401636655368961578066518076853877711956059218207239112295946527801044477437042013313722127504624930859933279366250318768318611226165702833370450444510547289385024985554375432514181836410972331824077445007655458499566954830214884172186168526895098674333653541852312066243799867659511628696779348887514289263525683654352434161670649077846478091645405430605892069284914323694517498439336029405596602939688004863358124377274020364431377386423730382598454040125147792759227801951707952740314661063014597960943222286711639151242357093588624321959128917860164040940246706277274881202159666787411982003112059748872048719291287044650482787986353340024542496583590787802976182791508165688043504556478384002480395341758062297412574951687891968338225481283347133589922982279665186966265488939269997761836771754743768429941837952848092833056981814396202579877330087684911742032174159224415879895336194575433252216573061048799096725582531829659574111007421361326856544457996319823223073641301107800066661337218217584100038538121078087284605356286870119452015374792171628310375048415977932046273205854525864770621564144679726102512233851744419457209970972946520897890523581686740998426611300056760606710922507614096080246491406500950644170259510407058029092425527179635599364910168708044079204707349165699635225048754643999411896424493790708032203428065903586010716314027992317461024264543213810016964535950193308684798670410625429975744297856623753652621013585860769597160073070487830572519222319783949395716715658612802410168064765092929186529229648253171231250617112005849985822391651990438339012828563114597499462054039357351316729136130183812589477933569217398675671095846842268813691141509070537295718589701729387002739794805224723001653569180299709455617963274741729416596313144263187081270507932122043481716981818433809952519326283745018652521203298953740108832977663417620981298354910422803806053680719312866058740371716278152205316478238758225128828039196065724807497563988161209601037444719881690831555083434665246947769049131603482207118903055312544177783781522320830788172678399889929350001049502269635614771193331305676400076782896058050367863801175636786935333038577118089012558891137434909990854430515725008663314240386858140933384306200038657736050533881832200183421818522165102001111874745296166346935613771250990677970620913617126041262076861826916608791381314566200608475772034048413570647868521695808186242663880488149922812532749737638244699776981689329468096979772907991925267248694435767596903396400762448396496225652569599039069535331863650856296030094626624339034387553325462662312692108909802086524860376770178001033577952639729727660029177057887404229481738889377057600663987742385437420585526917585904903490772236870552483086471321187643248909771215508083410246070836480455159883193948309459037202556359899158725884135695767908912800233537150118649722370320176503456281086413336410291238847316340050706855797701241771145949565197011082575800078491962492279235661036998897942621943725738505050288132631484439728104800817809983251204577093968471455061822680690712184649672154670546110418418708455620414893464583121785820544755784177519036679510882186874759842704512096188897632526491908398132822264468951240340786359671070716421590133403753232850564680917248321662775856093887573558688583675462656007690814582226341176194854029419122913040234339853772025238282166110657031563204257345958085517786500086544017927616201451573559284411612624531283471096348472392942208956863814078438539194091955678552527087753760741474587895215556504204315968063820039047766615983077492615597106327361406910736575309500010081326999964949054183515519535534100311397007602296817585448286233205257910100338092068518837823268966303422229054780000314983020208186479646439532799010084207675446337597804983879683839819560792281923941832900790268566020637950314581545348953873449037291393597602741182073390699966277024113575737751917542043159945976857697725815662366669715915475512861279922468436522974960810042603196598648348821616251500977355341025570765654396718621887322198037549932291944021070444082802797915146928213822677634808645972904012489477519836379639708801883373587912490611260636870971779746559589024690883776041519302244420151388903626911163812622689627633728947285496578494177161937398096861087560473145470367488081981941092218245852533731289984676701715433112150034435585210739865857094919680294711158466538260749934262029411061283302237578943431067114573070529661266986454036737382897766627332944263961770863065415653369314539347486439008826819224508013564822146770493613974398206975805729537872242354996712166162155154504459153338274175402691584899440194276721085509450101358531360451266407346350595542444271519641509240167874833633213274218144661638611923606293652086894904433931675974540317000390604039688007530135882527163162221066549479335333666067927499671488357392989373330088980798624243986347682079996785263100775237219725986825170738769578695948680091441024342978869831898454912253826439822527565405895419148833405517562540006405292877670875904285466498761669248556274146228190281543903657761835018212208107139050405631140762857363651696391619870761675300602388262426154847454140654757904777197345916663278952248170372216982007209674484397151257449403009840087144465330082270761518902179228062397062663347646459728905754577951591055288345232386727497605487565891120427443097231670920449832029649017949972898929554052052506097242663178795739597738380648336302197100366014902117571281257460452952414196515508872691879991425919047743782625640001198238757114248950619324864120007246377976617366329878707163643012001205512163305556929402396307125125638104107504539254860036253081876099028772459047657014181602048681585334611461401943678968224804859305450800766912531757651326817355025271509910265822927233015216658513953906095516028079761323290692191924643638577354010563876608373987459536353491564246324533593234527541171238019929494407156960528174949758027111702412304988653198144329560955837013539619450860754652129505753132464765270757329675282701453370182367794885386797286602101316977147938306037832437393745085588169643205881304519801791900931051772557091925178487158308297312430144081446934553968483201600826988355047980601947608695162879643399331050726989767865972834600667816406322751702339726147442641347695909191357844994354539990724946245831078453764519181187885672988244277745590991487687015964568255659864570997061859830917705763479768221396766070544306713372548881492431475025082831566608238961593673465389977081925182564818417386777708289911487004595621645690374114790669322382641551165302005362422073092874058441501913782494552784439154395009249439995862319918152511203417495833592563154642782834551716962933665536583164459797072503814956866251045532203602884161751121632593796560605403960233217434112307299872665436666673017133936651201163173816450838672860074110009384596963125356845372871473351384129843422042716759201027324148191133869156990406775631992600558881147378744909798422230967866188871138691323494210941063890691371339287220286046438708889747433916514471603089119262877482257893646959592333455526923926735789725138410038597493984960233008827608365507281469091870538898105072964692849479467454723594520591975141256507988975527021809404545543925173055615755921823190757175226179681221783840200593203347994672796101070574387087690051026767947620833693585519546369925016365804652713737277158054783621961113079387218280547769055014588185361642466275611364981066448742871278609709256340368239918913933200154671480395307270597331659858202471610909049855042124289919514189582327082341533049340654287477624032312462295485481130678760705730368684092932545502430362460819775508010504749929464535951949229457757792683063403328017301038399853763902686424999426680623143808303593785198364198818939314909567205103964713324691002037484469821261433095771081386143402995042499907047159467187302352613403297340071618268772018298935627367862389990335517507187962310389821265910532543439119338685708572208582732665059756965052000269619299719246685816518096893774970640460351756681648552272191619738803358041783575201273183982204906416327597526480301570252076628345468714202666587813229325983662467221981828937735368807460052768954882100897354995773411512691994834018810268415399350916762179998578134806745301761515638928557764329742495049131496502610434801358458876467947902870027770737729487243760346414467774673394027386766450325301010454100174343818077272048585264834059306816710402522920823646417693835665523935273100079984891258242027618335475447201502651943981924939103334724385762082638620627400091249338404391631287633997417789443337945196822972248062185496422769175669160127136484122532169792108386159290106946282751395802745698715577962245499159861204329868999405782533665688465992920696323848887690077275481886064973536336915052903921284278554792625499315012755379099442415490751443659018058870383334915574106591633835235592791034229113015756606058708433927819371531185612772570725716105014991868985073470374530379809905780758981208731898031565971760362340836741533046568305794555116161798309333304674054251632562380777306397558151858578975538251528292546233106539533195212443721223329212793645209949907797951293177063006307349111270707519299061941736875092811692969731886884146523735155422436632308677281273517943286018956655763370329435644888531844158176662394089694897963085477979878944739011199699954734782980536999064979304682989942164214925965865339233945115795234322864454086239957897097303162883788998352619016140746500305732465072330436863997360452955865518842076920653702804754935047864814188419589483113093197709412277779569005860421507398064464239778256344572961133124639736694146862817133524391520271831776798283840428870205022032015756912165191243444812527112465135011164331076931537945560515386274162809566912406717890583129036658089214794211922105149863909472699076440440381013719554357588532375482125466899511656635190574496125256441088572443336665562720920094558298655516019115488827254947277059201654307834051020575114724930279146881055183733004298783815146251481494584722015451612132512011403579123152520573185317571678819640201202737851150360267402320092933283677263419539586105293948245611066839771852767690723783633077362547104179022093182424707370223133845980097129979219428892341758468187061976150133006949472272773052178026238408566992447173404914197340454427263419531691049599535348177370303054645865674451055560035154876341362115923473176035359999951435411078401192891452563467307929944481376571819438943374324305616883248902152767504824148281485651964918875735561450614302474775332019371157527473927929178239005718258167711001276946911885060173825567370775085063170117113844631532632783938634486038886802098123054862049665852952505845845745045409927410664164418540462674823881859881899826947169366807571498571205447724836021547587185671151859394281813773995244423439511068854851434490867030934306567563332538065134877418563263413828647407879394408893078550000272691678898210774649276308674121320953991087557127966339189043351081595282015731957592953237302335580459339016238457360405912222828159221748562864354084417626237546598640731449491639718465103002674376304680274402438619914281325104319507508177610892316544845535057720689438547586603097958910517583403325403940250775351826861277133350547020933296578842862674251023657558481639025786505273684634121078838250714758092423305352136647215425874852986398077233775571632214683386326096554282104299957665601536067414932432409224426007664479749411418283495091324148653451782137204656070781032686956053293901923099319235255092016815451432220765940857432016155779970231194727917322774778883793620501131569680931685280537587917068502223746910966851362660980623410460620682048077580650998588112083959343599269776749480422625957688203822459158286490012510098148967392575420722695490300179131026876694278361323566119573023646011871061022704981669195411915398400798596567916957133167317911717678090063108471602070450431430704592790807423305289470784720288877827717840656132281561394575013947382549792578123760672190094552547102717935355908338898361316786259844777472731292000725862038705350825268221990426532694784229848126144966114965792902494220420760423032382897008633587538629994378034753519494722235736821620248063665315693986165250679877458081224742396380663116504521018310790367969797702719024822740765614106519582204032561558157543590856235746006013407028747706899489400901793425779102066556687844931018551820053784587685814648600434725445486902073303904407845157948837938103901346795353508483332658510390421963448561489254883662621402641195317729727714782942580695141311175418887054011260528488966509878712227518759411534300066515784961487224088424273809096055916344945768564372710126104063709634079717275046225466484337641121165836157580545078368544241729013769280245941226714733575363716934945457828857498244085844052100284996834998988525172644722583016244065606069046076429912459142964652378033382975571782773031541415309030878298476183781197130472159647648649315506554855498236352813654307595383949133893981447677989312686586658615509364270975123972957609382246174947138890915788092751319911588489665473156193126119339466299356183380545947297678861883072540203787359926465087079594112689158607616034076687531545649545920689900689832528962402345326237946614208456330968984564276358367702946713984871711296783637257658646262543552355005320006420293022409178395296816422261729018624376558999834723753661694963568304806645584742326779908897929855004091163402769839341391327410026390917467063316688416422143155893888091901424215676739739836246520869454363250884521243687303054906300842930479258290733900340068685312367620849657164243725642768895405566254823177051468439159185381256707638117861725968501276253108511871927557682035485074405279600023663621938013435377026506492865951286953860201152468736544620769869027458908586252075671273224357275002994568436384234562449796683369884026970366510100270707176720713160965622604142544908915519529536172545814660245756462619185124960263067473781058593254278352382163009834518375007019000801834257018965185874197084544557188362887284725763516953339492307761289495426466196397996312176944116229877011884634505762589290142945966581443588569111976154090571862825344693443664089071198615736059879729254521504297323581045888387428036438626589041876377404645003009434203447783380216590068091728538292037514222306235323543347466433427574567461619241024605788185290564259853876757964581640736035242955534791884804393194325821105421415185032681401666611593564412167939726158193835320471399821505450489833047606247864842888669444176915286142686968353648340443293869356372066166617608086511542214212271220730120607310849713841137573743297589158135037924374010022193372065655962028415264105444630138818325411404376867456010208752097942452360456737966935395869419772392567920669884990210238687799886706905529794810322186137277781068342389217660081265868047068013286871448929107872678979061742764753279735348976752798432747666299873439529300780610873812989806881879099472385807054395339055890134676500429812647545877725542616788267307563763006429756686361984160936786692722131160084378357899118657838881653005290904975487094920183355395768584511669335627378370316312889474591137784759999052093569188014295070014180772256547077275924874510000545614999251594470583452571591801991634545002730559538287530889588345699609397324088411924505914281288327238836652966484743973594542001574525386569179604497413947975399723105651152157873026353759227972713619347818300201909990894453700573824525700969907295086405074084287960808325116723504704815452001535388968963202038380357220779722188063508867222899780693783972286031243847549082796264690222650764139294123759403629669284861611488625416497292334663854131797067265558603500970401951202214943369745427808059213012857301238816292140040877496442499704857920065346823273014248759553787698651136718228319251040634458067317643288378344098555606699585113552064829564091581725534407577548678446125004406805024204104303058223411415408570547230619696071371426126246776529917759385357103479149497084292212857268781501820395981087688782307837753582643082532757976960626617794094354321251351709211909601420180938790049318010084149924497929998777397708031600250809870925830401295801318950911961260165027775768139244478993220344618330948497869630993273619758397343805938357114306567557347180090981850021296436149610853557299791078830443340329121888226813300223046895818687888889305841533638289660881020576561408396794038109971206297835182603490673262866087646226936155873092350900834857540132705299653780124587909641226765051955239424812412208422073143958427975318426286941350441683183430202293604586224271933140363953380791935265504705013898412382620504410127886656510505751247447280692675236840544099973750599539937687559888737644204303049153594347207370090133245725012961533844724244749584960001616534755451513762524667706641886480974216628896912546272378019449138387534927091774530573915570675382005812122846189450060230034849487180952682047171936517228109213290565870150379801615995048742561494563904524774490572083467708091977746204354089816786048343438286200860191520720597403918468381156135497271381287542212429995451782764831395029180696169437449144815358154346564978234668374831065246550930228015401525440209629939709107313234300277189062738135885696818898040070431433137129739309385351115381992876613141742137437741863139140383855283300538197135362170103469853375197001732125034441672222432012681331210278674313922046819701060679676470766678585758872229750881147014726348358577163083104952698993483410701162816059129868048859475014323209478213384077767628570093890649345157190206760854538702606635774515319292770000248604125297841539810368067016519716748330851082406953059503455389653167579032928672339842646692596035579179296959712776295277719374970962870023062796774097215078458355685139673377925997202909140761816439291766085806144452785184026007959144685570841307132153213268203534925552602650769814203331111234136285348683578778107942765717740578238075037779002169357239528001777306314638848633297503455942209177299937670665979722995660952971813796742651914247911963179899863285684267435390014216082507775496562324702465598195202543136163008309953574525188293493090530906861159589722628424905945496388533412176409816962672899382965277243482817921498612898573035089279159846031308100400270570276499289226112339107443811896731893758205772742190396240724966248634401661763681133255092327801219385575184035888591018205129432017847291368970078389460563852796591421536379747047891642579002406260386490666578987301115122643700194307128346036058625194342110601427810226181770124704301486201334623175558846729989271793210167702417721762100153276269451032263646512362000321297461376537238547913296996076735786464057364520550025872279243588403946063273196701584589617173369302405732147767995346120075148735228663560959814804491174842780405975320463715543480494740504988689466011528421369120065370910840624822384215148413839674983593454041253445300836776401646573841079186374183990423208414270853973290691469619514930139848072943702570992068783159020302178719161980894952340920652546571496816437814772493316448929224923556536953266353923156549075526649952153474828249739799166758538512125457883920939855317303437613130156966366368926751078722279493289036964403725411024466390428851956713708815845274910962441125972378292228856637863568781985606527043367281210627237974075964385801253387083691588875899416288511492991948887096779610216996639249279449179394530499589712307954466764899377788750876089811460910646317519819405247075489650057269980663265727731171208005114384366522160386922656545745374269928639575071521242124347540840003896143103267134550667672826683931186279066778801624162929636046974878101561755414731548510066271749015657092104306784634475713382728259523731626394035869252370481842521394667979925622289480593354508172841783996352294242279972115156516165148870350288505047270808618486436232916373386517899689489635285383559197194483011336759681290309146933890015881752769770797820506154720533219520049333329949913432534022749557190937934619100415879213240288591226611159039573151460823882888913840584351590253172513194214251868328935582565438633342322955865669947815240241720478677128279464514921864029877955367306730967410339862534183271359294756317893734121787181669915323063950622571123311516472314371768864732993088574211587489047225800482111759115440730652348030282682461434122295200145897347088600258428629867951307900385649651754585493618053036805602126476234703240351925601143340238356229002218759523648848362814947605586995698774825126157339198458493623460313194099523692654189310717282754036389872360428934877656942738534788277843972327214034472749318190457624999130536430593903474578916251293847502383169082188842147940514624606617867170625538499007010205322342594097247294041101204872936715170198018425879070511840161689027539462577534261652448739955857533210100032484773084686945911049665605636137549221397750122373469608269261752750371881946295688356176153512782073136445117247941678683916135222401019203506093103112152847207865329277411989994881026667942733978664832256188047680761242868998458419296261605768154054957159487988837256970190791056211416624373338886540694044013537317782033906776850816260937624849037270785458306900644854041317496346975226049759631628942974721323954531965694020846829132546599310203855922274686465952883636239199651296153816917592634786064213104649178428095644848805243003175760384553612874863704111620663093063380001239803624781194178334998758587908503440566284397261637564992390255448159251915432538595568224870017149369322094630157794500625036359211298536813667406072702215690886851441634971614152891008972816372875827508534853016361406119296191588225562538907636686987095307472286805652563192358594002992513952510540711484986465825238533670687437462394046662254875887340387574318804793259389029658904933821291755827661189560408086895364339646713351813236530290325617873788152577765430908720524655326571593722488391603653850181189148939029045710382845556268061839876715489773767866288113258096685365539823360323201207796596442969663937917089329754987032454987749700045658757357647388732668823228703013716749709087164406265800416841956777075561943826007177818890614846551952462913008359642408379831314443303014393808318178655726488251411402561306741633644040916297967038616469244342092408173416006812824459478647366044186900980198366091670468044802055224227059240814866978118711469792973904258004427862981444471736576619115577570652917904941709540448214465447632377574805158602103679821349908544470101185327368641847720358544127779641229998909534055232051312185188893014016725032751421717963318959659338036314169586988354923671178869280840705788974462809041608669824044664317738262117491829346263891597571415809872141846177005944146987830112039866696167291979215264107474184537413999274736397378473807919071478278578776363210843880835688807940388420057731521969312858702228543236799430941117679404683340792024371611998602387153751566952295196216408547681741955429964913549028464178009279740953317970325881042913594513600261419664629327190959479952991487349784203903611287610321882988056771950796691148300749497789672789261926190950631945079044357282904837092308500996837952226957307467711297968377611386037503291445442428254155623333428251968995806255919178724768711098941273008033244143181983611953161200847810473606714288226870433191850038503047142810017923021753193309852194839683150243570571218888437334240561817857423578911883967363834778443823332265587045824552669080722989842107609796983805013603228435658914205800276290598711159863823163456204844334320083716725912880804393309177960161628288394544650606813018142590928342289086693662396224672424544736730893268440664155151719115630673786734248425038647832877281060404191735240718444536770029577390516511150304280425443184304173338129759350833549143511681482385056332510537180887966206630996586990460016787758649732873348971498878759970679011160574203757414097068029434601323587573403280183571673599845150812867841316639981209157780180300319228476925151944001865515773058890725910640805262486235920114805772992026620290078196762677527287661056535804964858437311660909370528099786238308643662864224519105177223571659852642427123423289450646878051121281116687423816227401890056534053042038622809855657144742931877642433635396457307362471954977181511939214110397718116307247272638882369966841097446886885855350807507756665008853722226386308517137357315624372522789435454784329426447343909267288424603349474105185644149364925224162420219844326322952850857874686421103854535536410509864487563085417215888448620366674179900893512785670208165763981236397746057160395879441016801556951817917768502398962588212653298607378002420262624622028660724669143494056669177293968570589250601813184569795557299117232714285222953422229221368439297093942786780627765820124032115473862118152476731580997626747460419222998505606743502067260099813683088051752556304660762489793828082912101961416964543099974242453494575596620377840259112577134580115315501819293630993069059292727810762184348853366782765847819408840513435099204968952011538619646705040615182425010889035558973838499323214980497369009546379235931458211895396960557304693886568853271632211609028248997420977833044669730872655325146499873617827337819013747016456263597932975786371598349217218896743439307033742260133298147767547104850104973302759089674915737551370771531676969933596795884913829404211190998814655752994189881772779728467314808022004768558934788849428921625727576097597511657185149322576050113089065449157355395652542135418996228729914038541701063383815688535659037830695754046374441807837136878489965600529685588266491161345242606523920454910149086782536254358714306368209621285127524631478274505231409390821850595487705376481711242958538600654259965889253625867937356300567655336151358443709303079834276613248514245759725836787232179366367018938308912876250781436165053531920123243633346531471963114617657494253691629297983569154052013783848389972534602297313147088324282419386231259356342286741530783089345852459234712690072925293827961627482432900097973694684524292603722226796425174956375332150369099130475791986521501727625017405581540286169958373083571115582195474856921618641227696467537990152343477751509074535929930464199009038955519435066910122251176462877489525195109356290155359995884200777401385061302803445260394793599806284721625246307395745271208365208809284016258013318256583494880526118646888390951389501730958661287911206596232873584084865692078147299228302101449898785345359699336924639035839402586330335777679242292126063318533848696730605948320711684744188540464202333105463652632507487451807834844864703344947377534700273367988949257343844326237812596545044702296418286483161060355730723020867058531989811281171143642327101282849146548638389762600974130292055916580786220101233083851291711495560165768114317378114090299027222645643233899311461147764037595566909280678403099078119436911285994510907277184669100306345767992441196430313647010381230769178516091618222593074015471452653161020077328770883758647416041955003680249872121059622406759398161057016927190657937105746146372101538049909941286875469011252243273892448749428679479910284139904735061657923256851294514349214429725010814525732032726681084956633339841128901082753710928565731199376833279897850783842146531504907398285741985325589755633396126199039274397656245681200748114233855320115858144790428459116242043878906578453371889552289502943203356044443777503171417431436245290118213965658133307773586306805017706423229938637208359087368057289261934095962352014700598827077038493375545576679754590406404994481014896326915803785259239504349442231335902952175232323834885617068426622968926976592328910531005595002577433146228043550103646169126260723153151136204848321709394384146985703957265855906773454436785665430459561704465102407448647891817554114386932024350222814438300643068114855845222655185829591962363250089748196914633107347712783686300868561271212505247315433416736949173958391809764191627087587893420665682029593570467950989522691578525562903069666024685601886190773989796247220490892705376974033810340322900448814240823613839386437111684085939256663203866771587039672204424157621216193204507348884914108229028465275815214975021528412607368531038055417696542034523263345828890522934965456060991112086687572156905597327824273512299406197229578470994180974856716910903737377301408477477355595824292386206633038140989458157148257238428056077609783108865868479145106682751291968570902379251716750276494692084936375568972483828801355253016186015305615717899900193140900714796540558249260437597174361708212368424429475568573953351431808516619353480144122105484822421310088381274530130883596183834876176049113846618176563126632792991582922173676392969033544572683516399339513938972166717491066948442237296677817189147525215404147443385410377241456104458549110589035379355928936155008443036980957897554684392290428856293417366299826039850599663202892384155256459033904659390263182057276674090540994012317462950693361113499278747208297712626423133285911920770093623577088177564366873134520294474615997144578711965269906421905170000208914116241291163407783423910232578634467624004038566926938321077926441217614176603728434438293000000136916407987644016174196526192366594011856769435888397835946038911093787443251911259021346855488341520311087795124304508431353432298364169470015841289362260858319764854426652995870053067203055158382515316804391467809005320101067638853227092071308665748822257824658208650585986485031006247374195613300031644912314733949088874660894856732716451855091339045218285334359882576925965566146598259645387914381169552580389966949086818727041417179137300412162078152393173147281167981361167243043818046539408843857258191704639639286927204901866451669224310909079412412942662594956714508319738647431853210111563276338733768632965041386982662441929807971050029068997099716578476600801695361925784737837449644115054434631480245159960029765544410536625044748075032713708515397111183282210915096270738580807502907831191246004103653354755660869580619814708845628247045781890712527386336417684438751324975796316817062490693366977383390147850096893379733691858179211603166383724075144173626185119348158717084615290750118485518972837760178754006513856682920783351396292286311495675323134367283302006183030882672814167871929987320422181777219880551830399061998475242718508958424679161429034058775748757412909760103357406286145381780404342121135687103509631396820751925363484117991091924653550160849168673414497364046437428099980556287794013152015853816206140894296161007896588161111770753922682906753661668608952425168656171176718253683606155649562606737909104166175146523782568804862410879480538472276427327989099087045328040130471387626923143671392951556094721414669644362505072523329791823212863138419044388865240242484653524378725614960353450607620198126870189476756113728554988786284249846676775122696953920285203308753054722783092245716777363064778297164191437557881962720833706366620648311543105151616022063820917406733210465739329071700768439143977634197425091852973937889793082261046470060740624297783777718839257549818474797551529649573958802691493836123338470900754114750547919560158041651238642207165063768691708761109682291140799070493730024294671356682182114629239368216088214784159293894063298851312000603010578422578373643316855887351556688141653003882366344388068730363534631266173391820664325683454477134262910124729392763126873077846510339211346139946899547189841041473014837092381276535323628394816123535569986094379282421547625557140212611835253301123402791191884315349045329345169153828591727588936523335267259295762222286945539899793523202180974324538933977615152006998422530659589823628116364559001544977236983716047622251170610787930622504696935713518238183528991735402897719186140349597762969302658780831038928437763625290314690345525299367768653648993248819181051134600298650290291450537994427598210729688728848756002357253603017641774953744805937884268912342885396296784524090747723092608494055307943874254953107231691018404227457263941063835051226701691010355152248403182362338818196238613757973006958201467559897315232948819858163551419960278371883004334692227916943281912235305036622463314982311102674260798332037429279493916688869061467930540642404391365679244269258122399333748296708118918338977745184273487703515968266291382901901334136948597911975908531196481565424954231014842331098654878134027104881841552970657756905115895014310074397411953879268687137527029424073841783399237310963986787414109390707078358781120056486601273815085390691797803714707103261081135303274089848993898390140482944610464281715219287050140900713206311538668240213920666472317198940967711601336727461446804741436712091608547783073409119973634387996913766028688248839894217902763702868984412111140128347104807152863046730947451469934892780313694527995422934457474734163199528308175608850275127889984002216179136746343821140389900939062621095697706334139077425177069699682363724991509186639874422243543794115069188254521104304247630713680449451799779009140307522517077782676432486632500388738434574203292259444510999819071054463371423821759051881575227722078431676716679876074746640238412839724220955616427546042821030895216215382138116860421813520168048087020500549299755744011274476274916857533843902404550540518493513544663166238719771345725643585985736276459514767687413100950871423698224787338174106626607124217135924735854065275639428525736749747371507246017254407080954911630538742746862574631616128096039392625475109017928885055597625445249298951390332245562661249531523071130748100601834257523038123046234870219652969961392763762662429957884629042379595008918245199159395670770516250184188716151276844476908179894129864088596713166821770624272720475286826410950690072930370703292780398880681420170610350292802387255574958489119344598830671822526158094693860723157728842679961624309610777427238242746340807383745485086772712085783961913271376834926790352630386674170020688879680792581610773728638376951311797142871161965707964799206356786935312950066544412676723986755216326895754398524918741523806543308929893937340321939932667010905160545183294208964844818150463191164835496045896075211316819260186994150369462342976964844251647712885264142949569606978071847980313926917240485119960771656880838317980227075735419572979873713106859789039019219557658464420122474481536922515835874407287754451744889083602676387638404124492468876243660038058666154236825045309861392280327472831698457364658096267490823645712640297122719917644146964285324673560222429996631183733582402631876666189780695447345665007203896016206057593053387197466824512723834884214668218921723916308650291204200999691114221098261819396253331893652468481768012533414312525052642323620796873197700498160431901284923631736714341919744734803180096037892086782891912879989302420494143236821174867086197238019413544470285942532704154351912098555432002208376559026327445830830629032573621134325679625417174773969854122557089935856093436326008753418140882050563858893822369996139738320752233990500033949305486160958527934294295557527754328936753649997074638913687079927618261060665870029392222175650552099667260837712473291500775756924135845756652322562227024480334245166882481432119727162878417222041704679196354896033692034777108845699879518513219777578853673245050066899996040729867233456320261507672528083298604392581821774527851849902069096713783727886909799022802715243459351341749169555194796255221889201356898166467574770439644619817835530979432931727807347650083096210735962954759340749053281315439098376936547590731796388152358082718362912518895215530957517754915459400239025150160952014793648961483162243885376878098743295706568237038946279936644957557382375477581681618674508745920712768032501508755847774195503841410887730499168726557708699223326669957471377774109746090681583466937012356356817044929806123685892795748202248747351144127177452217476689039416367397438255196455081708215881365780750668140243817341272243492916520677061991500462415717016452142307685491848693512253523034318892346632309342342949661981327354772504323128505777808382993146739298111727199736186697735794821959978682627380345492355490663879649553607323316010067112765804657810603494244656415551236293811297029553390592904225858273940983929490576441377923967815120845647648834958176203347832659658666468591706713297185593471641026471224200116623542131997715688515585707170755110316481181888660875524378634518104848771220401343735824421984299737179446633936296407904213369214443986608930861754312238442884568112046968520958289431384676120076872322938781796098178404313056974658987123417265284959980351963539379687263722026208953652897237928799887311966396113161076608484415348206862131195276729057192469838569196371954905902010721626449904728437469319101929123815445493666155551734001843274714362614593328388242688564473245310329708429957933420193775583371061638306401350661260451012251550525560367836515100259172517379788634806448697604189533450570857448266052079535432301646605848674465650056504934889399724055947558767778583255224788659514202819785203034789423932125136631945616820978206856944345204005569592499267789119330365618151163516561365508704078585085028522016117318323873121222960800243561735465474839228385940939944676378515813575448589271385331133655746249501339618788154914456585318449534212825014899812151322098239345659971124928081735610625611408307212041240779372404421019001504730219567348731925526218688654085626277484419783161259658605138329015839135007739132480085621421064962935699913608403970876658353400181988362330650705234147997127319929191085525424839509010110019643363283730362187383944483809226401476033205655276122317639865136102204117907088607726723200881356526344528111594927735901373464751930692533908065244550858740671517348788721702447032192593662638313305144927835111274170308845017364832577642968705297408016553520096542667084202227427484375488266846487714641126839614501322097255459105774955035612095724581180118364705137345877659691184612818390378495650023959821250341048200572687491867844447923527683703948163488050550916514176757422337899516972724503632564720543658571280550132067391539973762260821214989717948628339484870660795151067569956339887562055602850111230676025929080410000616904139666232690056731421679647782023973486228468763624117091315959802033669249262445006332357626515089207203476328593909265472787221449012861994817509402467543883794738632099336908817141138303364443688031049686270734991445257443923523500779114016003400888589504945025876300134396929994397771008056036300319672695618587371002738228506575160353884896842756566998125366312170506496987629305286498910346833581933656281678569682528393621806699631382889462450800396962839945252485924926523177296877653602951469287845228243543972971065908161458421664395900986040899394021432116206283531790208565670078950486095405122628832329925739614207436981945198435933366675677862874219194455954425853257772702755912833045272353643402742581084492396651912692525133506246663019288429612459186981681740975703898468730107381361786919492719888363947412420999810308199753694645579483940105302243857529359723533376802296348497216951151200098192394354272696084896642102881412924385024249276522430795592627608468622719983920984876318271639678335611465049389165418502600491600133287352772085581590208688981749311778879391315360449516270211935009591547388765113571189139338631856755249588189929775125178997713239785128178269513306772847997799910770234504487544285378486958019031471508446810325125278894794026598882857374001316673034599949279731419842935911152903074639154101588937349098043327230119696366082299726518769947079048176358816843875461616039112405488899353755172805776267047264984514259986691960703965564280399590715128293053652404964054484926969534103395646193927782810174749017340830830795316124687506459948860366272858919134706041260311725758367050442451348009992333406131054358647346328384973793418446158587796286013256551151755253280016116143069448679779206483900280365006876910444253233241678853198345740640392508251511498725172753631605488096686910761108138989867540986890196272038097555953136180630456314278194175102281733315917791663542745944231288475273686824029177300704025744179273330870647232687829163857665337507571268420670580509160594539108124237195288500004177876159921227063668742195049674032728076685886591503224013498476251698628603138864148101549975572859075806880579352834493725870688640351118284303693521775719546946257682899922127045656794433552643158895295259369183241427868392782289017254999046943178201223564697600558719574542850459262236261933768718231512954848868940987276648005757790290646766514073556663935377535889699290183083483176991895588708984344295908348528951010147573860291753456707561428245345126929471632419455434329855118704220317682235772103394421660955997108436692742495381557015935173288836210776413705258524956118512963984069810494159960030774168158846595336957423527054045955515830716941703879077517331672290567215129609806129012231476673629740734750369462717820209664931783119475948853784211165851386373100277771103325708177727785944689019592237851719679343350635258774697597662738622661948192495031705338220031948690777159036527106963682299458560804423522372233215389101960169153493321512251654448975635536741784864478738276449230022011183645424654150953166328339322302203987721125665319093470883481433221469076444044346011035686825887741162240450790871272734326116661387358748472783837087778867357031335033151014000339641241762905877344493798476024667725850430717331927039094337953260556154704522575359525721552963532604043404646844911360365048466988576824466071919682933619770128903870485083806924552211734739563035243398323164431496690487752644972707532368167956551462550129044485172876445680277314535704539510198136786132274379464569637464644029756510295922031296951733938983859202404952560683188045563123759725781267148735394293818248812274020328318579003972651025122921597380118424187699601929386380368797072059362912653966622425676056180151170165047472213659312265850781972061777640482906859666289782363789994483884227547025668026406554575631904785994734812012362121883243289702818588888345986884431882178490424122085803743826854304829540898436647071247131672536045705036879077203553993378850834789565797779211653366028194644997729140629255479864563738913349537524283764048185926051676495704254451940838731907353876742933296494678563768166585689243017978359811578179651417415680751093390731879159587861823039352633254498677049873282129756063304938349350509436047465294625754554427597460863675506396555053443867990884787187779055819096967097892062872471651270350409024745872092794966219044518850570153650717324270155759781469640195408517005407673994835054527591397703454724186192847492605877171269677312084403079896012017940123622573727275147643343018552644580087684194538989636492087137266239556566882142983910254395951129772762579629056774607895131436230828624929766447372196347307469539505199799323246363773403272270783234030604705752377784013512671830919923333784682136319220242478593695346247593522390657634426426762018082754355204021087469634513032231360502915098333209941025750498165024032616425383806876639810890021333787881649620894402049498731918924866529486015131738224209052885703220023635994001777212141237221283900314700767481701664164916846078248303384139058516976512714341962262182510678508977906045683589694430247935419499514421351973561728707832748831779564047379490069536160985331797409031242986233874052689617009962302588586568961072593179737833808688820833896311060406613803374626851277581270875162851383733493964007812388370974339799723154702649162643638086544854294859948468446629074832100427350820298149003474363510282792533056366034402435443943688192624954860814100491500342676686424065952317386093015547685674697118701467810446435722101510207701532393104319397073343148105801020466927808573071160741549113641023009551999444067622654501439336341991315218904837636633509449617152802166428492525115762703677871918797387054954548618765035813305184404560968987021974560703188962519378028379340754344056639520618141848945370268499015103188301018501930630107797793857234448581108572983541152627264453725497337951961784060712452056702373935774330036340358024878802119841182671192471311480462781989781726367507018409677215290580219283256062693599990020270490542623493703295976221613928037163199825825770385497483072217664292776028384247049201356293576644215782867261057642610620024786028315188168334090701164598048760373243341152868471935668002664313479545019424705768780120699103404279626058364293645225930737371220399943360186325988230485820286902770819549837761474817876750085816141938080159539059387438904452562406278572468802856162801695810542764848697493140070010213873932751015969607321766214477299063490402329382589215661380904138038723319413591774097625992163562602145622006052450170666267542298426399760109715629360589606445732801816585970101263536691004547416546894966166167583356986508475638604008558933495982546175601644562068596487308346305485832091053477276893486256409920008532400496482415864905506503392059145091302701289804246260311273476040763984483610205805618274253937012977951111305658483755984101107710361139150546260186177938791678889765947255167481451917404576269982788679405845819974981962483893127775063237423028383247997720702509228133445904172485070838172582035162383102218305539220672762821336971596473628251134107212291699519073487527345351874239393533958198463733247733026737065092867641471967130177140575877286547254702674649354748694508798416701245404362006812428402373596013553465220774271603441552430855845300232683588136535205929624917908084201470661854290494828013005932173321117342892285537243049763058132895191725118452053734786891692862408780168875918537523699924752012937144099580951393979208027005243196278811028837451135402207324709069395638775967284599435542994758432118554774611932727321382599985126148827337422530427203782257719626818538592025979554078207149856850653652356853418509694621920977448228830066514329682871666843227237605588312207807810682923136672985302349550765660615003940425774920319901336051248107533615011061308408325473991198848249889825452852211423054851725980541088622560731793932712720362063823800802577833801535835675652602545225865280449794819730968845361299969834805854980745151300444771375865050526488259620036871718297781909405439287525552612503291150322530589873063817994802498213882662025743391509184298220997320923349902948952893465947036560048006014328213592000746354644693438128158449557783601371259141129969585638677527578617015315782670028816065032949990207476380219142503734119402250958133287580674231631772726125996677188301974843434170328727707076369580329313747382871180815950678170782543656658306893741712385923603671253657646245594138349564349261584075123055214173455269678326765833643949797298851501650117325744810256368717954942339111689124168384495496274621918994894538832358425532389444729729236202659890157305659626011264348243158218837569566159924802013277375003599651396160619840214561273155410483571642377905297202326575964115921173347226298628069416563455454639585349354727680085843983258271534048139492702081183739168236584236756437140203616399286787386437159200472405480935434193348242684067518650485542951229630952732238016250169258195387109323339607243319947170536920976569593574287014435606087089806259454491741791296119596141558101748033814139844962711172079017330750175189759560503428101383362851025129470000855571287314525180092670118892184267994958449517457508029909781708610908842799989595781991273942573038633138303735353940506094482721357187225461996424701638504867550839884049788909852987589990933659717345528107937758523135527591048150638235915498055754690941612663371823112066627777459327587092156704139951810072520905226819548751363203510232827527394469326386382676476609202218701039934015199729721540521311909258089813969144306840413597533984806831268905505767874028724124069969582425171379681497810784157133995964872953706778065120530373912092290080595637193101046636895628939073954953386608143211683605425643667220511681417954845456299959146701833985266318396172999509781052411205868001761804530920668368502845155881145319986447628482703180472191880074507184352581674283533593498684494902012986352563956910283950173077294631060189086023288339537880497704423367139485791007545664450142883501045994843246270895772217796203571649207441991006706798597928274506579941435157916794504788659702664248583840905877487209304640625784186360138298142533186371800676913505331272662793058639856176820195861677871790709684873953059811399033831440270809140572965959426737793423087441206856035951036125947168985836915315811916801865887637184349715570706091924503135328205958257165687077772254873195704142247246672760739305398684474288431509479352306495171488470387698762743918601749017993096161347198037113371327984337640550109422631423263169028213006896297353246739199713601002797340428489490434631134817291919391365876005299665957778018114988299730117443840600072195823925089580457644864151319452040567419045460372472737674264282749128959921310703403299326908694843800343429268282749241869362020327825490505557197063781330761047140341340222695502824294163093617099829454710485509885214889274791111239362223414367503388189332258925450300970250069020325058636562562732335107804013673596917725911620189441979987223334991452490251718796523521797281309864459544254341157079217694255136337801771342412622168894297862526234716505899841584213205624499713935383007420321067262965020281753788164589682710871358608451058289517922690177605739101341692243623463896435952105318277851699807266769685272446286680094132131868634786253496817943370535429544587194027943234315203403872028477429082505686076296944215084919097435260657293387181143903042883552067555086595775226894697026205380065085384282448214249508987385609113691007760807473016735852408297538530075808584923481577400067760745502060202943660762875460530800472581320413238578446022137024412905278680301840798501324998088756831593705649856524796058207611632691000092447119111137145475677733635006658664430003020076337848687864693574417588529129957149931398029637295977999858765216437147758634382453490019301161460809229795956686038977919718653314715826353620169732881622598247769316092388342805751547816522990836208296536625973062033184671697280392967028856388306013904208249023365559837358938593912430382233226990884760048124256483861776548690664631066754325303156146686033355739703848407834467644111565155994048072778599956591651078985969290320869808114780263977541278296775816403302737439960681611373573127742201680568157711102242355829190350314908422253066345239431424142632524465767040207599776076240337360550266837986790368165757105109632580161953798984227511544207021859937971923757338386043677309585465585106234517526839293525363184208927729838603849798936884009647878702553121648528744804825908336324731213300853469339307768443629641178734956385943445337238162318011822182737113747455913434077020046153306218893705060874728663864453676087291124470972859875855161069041521014995295185368549817629096407690795807970922983853218642126091759204847548193466974780040235272436663892549647148141412161063513462868994019315489008791721780942613607913291348690921969310723325863815224064228333345660446589657211641311591667687168994017356392922979616205530835763690832306547293623260055734928501110450849430907401893250080344511724394674630877568167871275988889157520187011599891968449939460217744091203492693338740523625243996634827342028945041027014417756754042568574161400774659670482772518410404423814682938191559720512059219396541979592543020618677980294876337244262852208331033054998346750040948340404951237549452750332692991871081115314481143255269114311248715553372665674961344777580326768518805931038390480625485180481554385390013008177566967236743955877490228782666605374928298949621859027674756103571073703207958273803444692222545467482517759408021918804494862669443657129868703973540566659643939416360474469622436297122062796562589430337623711091181572188737939024976688255809328594209198680055673827269730055521187458959132907565394126069887002614237828229207556857776580442639253785786207728061865417160481547960939648413295038030198804930111216814274523195238331395892010249529809783507451429265080867568858035236606942445730179893963956007947349777334444272474455934020082978541001367323925367319632614210961800172608748934536220533584773933278511030491344846977085600726572137662389648245900747054820401800105647791066940951841052841790356360180815234591456542907964009730962206048335554286366667740691793523100301434870233020903455957648853351691659533053690354173911836821133246386197770511169969682837383325256054010000308878496605932606757593961894719200230665572507821002196190652154067814579760768315531371590615743327655727917203713010335692269168545970126419405521345778423693663109197307577920046495835281130514378249587050353409846578808426303115811986070365482917800146417748760962549370668703584309537805030148580166059867668508027013194348423802989099082453251172140068660149325276042125273971265564968797395146092649539829823184187517161933674574619247542285549736045032875760912739618404551171147365265761338874686804131825880792260410921551512203044425422181880481098322557793293144700109745414348259514872142591487004153067909679353730808225680447269492219900461814252230330754060720744379412112243923457247125412929966944613188269366515555238156205025106274656004182012752335799744774569620855589437123618976878089153053704978015846930638767330277737407942856765963986989051947178099195958874374197162474071261106350259446277495243854214472465256470819642418207808525561375819168448892393304201028024959858792093981111159408472339721720863657274231474150047788493713437826496599698934903784653707558696688756020338625908274238271887065466460511298077100377280953066899668137766983770307644548449697168588999583518775567096755830301614053934550971349919965724709199326946083218519603314368105394327758976260737446213798027636668758134496286045494048453519937931336451782924937649963542493963109659763873696200890482611723154142279691322208637807631972956473003161061854646525891408853825745595951202971312766218571450413468513579114676646523341945599861219544471890936782816171187792354907412719851437881646375608199170922954780664321543851853681076197989121336713900949629679644300875937112218830641439930141514820060937435242991552715289689794410020345938600144539922596383819183767831284112798671981718414835394724384968800047895976608382195080743312664557167564292132789950108825779530322716623220892691214588725584933797451070766622041045242296255066034686783631579248180400446438757907851173711279633329066246700126538790771191156399978898623502134749323271306278776359943434081579139950594752648824966384162010928075375775977848401498319702718153546461841593127679845996117980690559362739221103655954310707201454357959207873402679490848073444455239593862026263693033373910163643040242694533751660839304897963627490504045620839610553640287601632837624917483732829281574855680793917314235741649779915878879157639407116947511192838068374861969999977383113654290831046474977176216621094125101750929513715693870633230657597119924313520167763152707888399397142757191151143911240611576138635548047167242907763530707799467734226280407518282568083563766808776692222185083838915174504703427429018815489913661206148789247730310685323420137267872097156096234702468234883826513283797025135554048792966850724669539543016783071162733338488347531455091718410683816451112339437565482505031271791949623130343666140248320846042697852673034201953864897198673604806769154395555037469272088427037386982675873611915747993672152096744950081996458125038043177910224375250497233290295893521061906317793923798632638852787665394445839049999201093394663911446265726514856122072706716678142466534547859966272921978322435417612743101705135551298164163480714511416773055278353913476297370647802219732297987447575912776352257879028465995347478080002169925636253454975847163683343302530096154771375821294019616589999551590440985201459854095112512627726661783460923536936347017281002559816835077619234282957266087565689037437531775948571503197233158932006249369727906223817101217811921820915847934864306050230924475311589099058100898500052747387962766448392641623576228707480199283061295137428191343280626659998844525988837411696062054932927472180608122449159524007979034355130146202883367735129009472238095701439906180054688745690051964652273577884580744746639897184404563650744043196315333520748186552726334073554304854246024713626029817786608444648003358010465891667670752699836592693788525319644976887022006540643316003620380417481757031410632814613238633449671334156772433190914843408298325206760785784215995735300540386362679102141305318397719082608177081966603613592359260881448704561216068130287312397292862308115413718097584167246767926453315068432228474036576189264427398045596766319647554318356874888448033974295932518275294158172685508445763302770785821951892894537037270749779752028988003977484601979716087615054158172450562352640604600891783897096587165167761692259778576760609937345450389260071301873141800559580573861946476103963023305636363458148943506992513521473542368985866129114806281030903943809859210472688654011805622313230713883187875035516992987523208413720029373481012102201937206836303291699858754954313435436731782300922586859209566789587841295412551022348540417325556189925167061190947864614928300853170876602128985453545527836079652816477092261256370376191184959733771505213309839237288627245858355418934781826447145550337085926703116006368626390270982657272875564779743531582112402939357980045792543473093657254677872203298290075723816600874953320565238957010126008351172125771872073971017213460493063763620702948857305861451031322102713537796107549145097648694551260532941771583225050768350829469394976721111776273563319188553525155746077223158247111537504195941496004099481483343123288911949217425881126786435466815532415786663888812986125293296987359730651820227739980517724528354245863608877319457934212208174477970086492727110826118390053743729015836466651453713405062423140993434914767468001856067199449417516027331185571195267123231525191414183773791441854917392454979248137149133428336825956759146518146928758017030284268929529555429057040764994073468387679219113795770791840514759132196101484724916423343528938820368472419439730375023049774489048070594103570196883251803419326572271364316747306469701554342230753680861530888283083477244954062741932922917083341467229897732653316082647433483432725693692759449124427904065949030711573892903084869013020358268281189330489185970527029264372651281238232749649759577720766639939141790884650838765241113755546534876804506792993332652397662048675849114961209289266423385438162168110452264948395180074123924834984408638319628576225300287712285788904492927359381367580399773066800863315801066686304843635709251070242789408977570436231986107167291113431712441318945563636670167982590660459449350571356637021657350205408647340154489977794510069758406086581774440598720835835709319850107517245762192012760580239080907626438151097681187785759846697133177443157983076366464576423496958201440830290033959536187567896574525733303666964893014262605960913396218940002205023515569802537254671987590992874871053807158292605610952248849513524113736555619083584308103266450635051175502707512232295613595692858336083527317387604156575474033746052345619491639396316558427953518000356703898095689015483918783514819454650431187955680573042021999857042528402303811867523019136597982693555919634176734134676969764736570602686379403185815045224903026454464568094443466426605142135918988505225780640838542132934651228051856154634913582536060353623453718039184454356536532491074576978212233721465575991396567481191262248096655496854996058064702106797082094195615324839817973757938601077473608259135433555968408846476841035137061197829142033106857767140977972571723347387803115305900080201261701206704061818741612407346703471332422380639682487266741372463590715007833778637479655600390265674557368999069560733269381369634892302913779118826940535779942329903551364047704223816515425032315943616628535193512332288170998600780357237429811879019727182099496770351894096248436220446830281578037373587720175444207455462925807379663418704189496865497403381616334215436965109451156108822023727036074530045800023368230175924234861453567486759956407645358806979922710482773011618033722900573020766962632516584056306912052097506163057895263186370435542779771390439941714854535189676862754320234053279562834973076454023305081080538050517828440599353617475096011531642373103801479230631735759670988766254261700770911613023117411528807007503917056707141487354618675639449005734279807086853403886838810030389592306297548588812382320030840595631481856474819610354149895100297896947966281470897593848662608388097323907734784289529316300158686838613337659590419612844160213434315962460823166368505569465814373021561175606710857067819566507903124852148461343451184266896507741452707743417493181401998750208475796986120456423594349768291351846425827179362555988572371559595789040600974837740128603838821216702339712983026264145114351903789114177268057521451997531622875005217602553029110027897774940755533124179829960671795569991378773527232001508557807730514375886226798945224575611884734763755516902354785827093612888953874704933017899175205212264563387764519556991892256139153577188079311114796197975658591311320969550566772666619565544957802492575995630397420528083931836194110326915178097902491904007301978637751714406694186534141674157529821524691205247264741911705736594190731542499328871502715782379617008652765166893486429159826794342814391905802993189367528404618755154839308370794388243827222770333057368040443972336607044447485151421224214006770338374198835090349812379262043356141600927109010840345090645658378978522781125607675377746207936663773893606384366900520939347473644888515592992189261502561147526329466602466762176388105722956928430595097786015995294255892230811673872392535748062904460017066042000775865842811772694029112293343440120748629958606818956142387188655610856027291513178320307525402796728714685933265920348595895740107237723813077182270900442278059465105659906591492059508793979166692559233036591944177991445616238951469762952062461612927083680836902018428675500604787057606348203414007171106136460143262594159712277720685317541248149650124541864349771310230310711907702508336712681557492585039892487989078600899934859998121703253368561859856680957904801681538186386136349218355704555648657394918425504950743235863792596646322698493704194347556012801949310532011113700352706097718012648336160762721510498588522566698664103386181693670336552145460784094894836474291808021940081584512728662608511725537774615437633720252251960533801014575350119243701532119338933038869647022669261980629983453213192481859113551888845270907020968104515044868014738638163741247154431764024068838538189173761016897319347225959433283834797728436337781267362911512713113377279640806287353655416848747339333933098139260696656035477235737985623115948169783257953482696650539425529861068451093890253636387003662004042903396966888104042239870920342534524991056788628085610925520577448689692982621235841873874085866640422821264929712902751002780380211998177606757612000696499313036273443619999373128385554357033522246596511212537282042831116019853400337917827445903133106007915716482261612925050286345757407939260499321359997557620196515136827737936157250422758124325186224839157697101848030101983725659086061982884980744052891782155676210530751789732136292559173453060175283227881415781065475629485330695773532168651174222608750163683710568537297957092794211533721168805460571686925098317521956264606517885047856998088420037249587907782320038316183518449252544005322234312308096686428766511697701725211394157815040050654209815458547442007576042305247859102985537170119052676661080215516339376479571682902041224361027030843196377756834033890343012771972334726229440786610423588736754455271326566199537616750921363160907333425239863453021726278457291058676232078373301550266964440452944280191510203422205392825900096551008695906693650867783722472388024843920508778535409976944797894441180463090077151582698308095550699727342793179467091826810287256742598582470349929806455636833872195673590344623001729208479087329895424236781799761940491337840475669453677975502951152831029448035410674837470224323351442549570642509499408379213901695900266473350683875995483777789711949832697594333195349554949970297307515695793021050067970303729725396028621442656623479799994216669963484225364168154334339777358807114293209869574245257020397493426874853438707822410481541796441428550529588433154683641991168591285751080551780226634644753438841400335523808459307410868848450863252906016645993624602175114228559529944312391891893293147247581374161813190686469412318761822852477284503705990563649932944916886881226833478030257459807455331201396595645287613669857349114486364717636226029150280109951487864609407879454423516831720531457168224079624289476390633720909708714517188610408964596488902238795914058693569157300218442121738891200763058361108781250586062155743856780248694030078938227951250401404912762309469957647880322044761592408839098214259082864153042561991678531498202244903433700967839908562348864699842234740272966384188520350825414490691522311630350748626541850124652722770593312489850152388595648580065562170033973602372120593507216891316403768417666379300510886243825772259132136322247595319970687808537068389303861293496445471396870219463875197140377906461988172544130118853213640856376324701722505619844066628287761803321724931202222863330687900647349882868594674776881604312634784366849458609836996541075136835751678037840951631552451681154055636741862201936003623702481614363131746683964878139133183538357077894638129483477037650584079328314087928272612896338793020962335555557973474659252590670541111241542625157367763032254937982015642626770313744530019070243367217678515157222875736667665080730661898073344117954940669030446105835173923621752609644795384938323333125578255188460608014499727443363752734296490510805892328825877011121057051233572503616608991559123764856059003393868639072477627909946522659298187857005024281196387377777599783107510379221047328027308185609498651223657287888908877143469846976585804922157628541795689016547396937569523657847823967656784920145239344206069774381076619605821007843909168871134420414379981166688750725812079056494543340704512534948083758324962307445637416677640507955322451950784784178297961296953816612953530728355271210971056039678509862887420303936549587984206068751064975400917703258956957314878640984898149655985672015617253317561524437838921604529618491739728537397950754013502577709570657421428798772352106425833133731092565210961558715945465258467084709859091521483612736589644185480487343305312573550487222776439096330268834480490047049739943427917316608918803299778758819862970675076548814159178816410529319494602780604159994378153237791030263734789748812198958962058216354269290744991734978172097030483354804424241431991173510690417115782651527025435223164705841538448560936174882521137240176927444753014817924441300886688870525244168037416530416420521191501538607114334602202300146977263100419579056397646268531240005721746867835914505881539253781936484557443409887363459349710503652575944149275161604797326477467450016782461402623079224766405567889783884917212135274379011796953542505054207407714057372264988235879302178099622664103790701863063356836157840113572909397184113724419358783111239021513991523971447056268477599502129673766737105921207968202134713305904843549486785285577582311161476182972439556746441129532257934243935006773150993903907636319053090343774090296352416493149999787790247349435055096560351601448304156708135401158677523109129419864995384906291232219515733496249000374614713255286183560246861497538771353836699792152541026395555220695808642455675588253630306348159505397306926442306223680618690840795351457552270134355625946783834584126679563336283119782716912348175914336013416110150646072074074892170762433779521115787661488759568962763827358075578462446281948180290087292998694072084354086916222931884307408875457179723790678611343078748118764802473153205450002842380722676604750712790307897576954537120909943679415257651729687551630457394331501038936231895425498564737204790789924433038169524454931040519241288720393835006746708245269848163254408096589314234838262621869368023851815765935536900922454200010328440654511960039297359929531475820699322620238296598923985721064217713127217883821955671973102266281378808669745727566813709860429506113754439776477680153804321401107719471403763319271933926231875794122488290705125852813512794003704578646445904981356946988251781944645451597242287025439548866531020828989855001369308320415667805842647991430803329135114807277353173990188110948180216588692054983666923127615077305143666624956100125462678656311711465441933622942242464994430281940370168177885775806567056288484831977882001148642960745300467721654842330331503719403028481659024241010455270342607072705234531600948268264266471263074131450359945173958686208373130155871459800597574558149251541045186957397715430972064424075443931122327355978799404848483841914884836293168196655909425899588102504034843660368124411224446780603486768109110943982985018114496228686033522784193017919099546373784748745502860600088292760485553812431177840242131627974695553591838664883185489449550978820961984186905804450871302738313995727424015809674959949823093234533829438448664344315070388589338948717929237825983427432370992564367340808713510252535648091667787043217783292673716209610927091127240417626651032794082218783159844496051005637915252658509177664632561577486954389026158630779701334541699376179572022372426834700276801962905712461587893489772487546214498803950021570668837479788816448125327742429855179554129578708458999149129460501860968807062847163246360981611700302369157930186369000071507417618925444113554054338402556027513869103662917148633326445290478993239550367939297985100073185225297629101508914182945434851508900576893276411701814320771501664723571968856806320948194558649109530368510737301600636556143584109532419845988684584927329527222800252307213899877273126942336345207340743620935758961236418915555283644531061843308836528969146440211370695327632649327634653670144537475956285161705693169497257691561741873827711836623306047709813166078180166462957251783167896941675866332738731199122113258984771482075087168316983629604857647218393928753416860297036919312238507176520723663670406437567395929633176335440821349914413026607607828235877482127426540601468725986666978706626706736971947799917296911841556650351057984424019027432190682359979015594944963205758389725557039688828955504841615348829838564007361139670996843983330546702862766680765562976503183580320269924320372501426976069734320052368283199073056248144348863194934810692389139746931920053561308770784054533371015685300507268646018411152731525861131167242765439593626802875044584213436908901157844210785711596956534549517960043222073748644512022602671974608333736536904471490187074574387545103050205079093365226681377215317821450357200249970403626089216611477654666158281426640202650967464750750211933015584184496008162287275454947273256221352796679119870406258239787073737341397165488134249264547166213450983461640924584258322852125251704231197834929437711925451907175511278511339498991742649376561986224919315656712194428707945572979903110514879124595645779001748798765184486961461920083798164206847805526906226133012421597942817378020936359947778472176183425677315037911662421600264469821995237406015725316670186410670092154602481977112040258776207288632072805044927734624128528248342992823617180651094347115892975014977057579624827673310423260492998943597123447568236653462218440972478118116470336940843898562199286537465158305525470513685315346363601906684781591149530285955784311757748449349551703936880931426178438741290435309509221013684169260461441593739273355349511238614369446658325974991152150788809343374090505317643065435616968417399523863528948408515847291453940452160910481388000184558031967760236829561370007914868577984192111739655261423681167363681305442174911125072734932525496082987667765106753511433186572988169123530121525395783932064267425127339019834894142946999999348064427078930855468860835193207940547335465780130071546829250131558976364376245509538200179765681478660853868463179922909389477347060409209077410693390700764731099108212433211516798487943192562575745408929170037228256199791419988527645396475805367504798765994351475372598423303928569981182097515175939334025866375867848834224512443966652221935818156761772524231642893528036645866907167263810861567607594316539130995278551649334489114323452013961892993555560771256638464316752859453558739357586381793512185157180699543500581697212412482839482086461399323145010126021081691553940790674388496683315070845586435404291172347929558052929545656750301581747696588145986676981533627543528437589100586748816561613454399616368321455441297886214380222351927616045000953239097843378737554337602466548488371747858914922717826668737356724437282923023547545426632908878598442264762511297037381126136266357695077402466836307269263006439870526650378076109085107716033141822108829638987774537206400622808335291950980299116812102523751957854545427381624916450482847656966470589241885995263872590687657344601772329396436228561897944758444936174201280786755318474353975172970063297550124032163083603694816474110788839892678937481402100338888718932973549833998176687789135982407773171913739272213483155830412045002441370936162715173947308835609440867182792037135779026137432752283377037963545530565648978141811285008085140576949404533715562310625629146993181012092481066965360903534017368727112437668088429710412565764364072649110575607995429969376459736575395967207231964797868957400414483992337203244336697481559014927535465962980105266462115936422905559923425878477864563680673800646943244335093508542230905562310176245464354086576501939439687263135491558257147607237801491090064575685326661123256145946267674120790417441317304226120581016704695898173901176791837958340607629756309277124485808351461813722842828179137162357916607355441929414810826490403321801301520314793907691730147204018963854677701739011242233692680379939332504617987066057273079732342925183572665441136405434968430909785111111300469369322234203396407414598504337077351084398907716625359064742215576845957500306866852555571986930095384260688920799374019635579423869200243390858100338983641726784598495242731406639182517923749307526293085811949854550212400028707978827860344059897083542462050063816634486363820362119289549245170211437539851772574939512471863272594447279204119010913178053395159231583391016057876420905411980741064265519410322279220546408364507872214672819061402174374283180798658514399523329838960300721152156834429882586626011118825621973119432571729858212453537634690516515506842187318935069864424351831504384337903786101709773066161417405420378135566085276631561706952398497001351819284226282535552468872313876426326446774816017580337040458667424315866310601386688221193699934814989923675345082837535277587857691371472492208679937106565728437539494347902412504868527765230861643326119167201139612366103659278714601630270987407344091486993115108956272040877681259733928715451150468018387855920323057159034956299726318269399479910137308116423560315271307856322261839569018904134258484692198330703501371951505487761882912623048461177380622840878399468603253990022909955181234934876062938246933574842365865627979584544544751336361012492185377767835147714501080129179325534498664354297558535832135639683780728619357070820862499319921814793181427224508773729594654951521650018075965602246417789878388900915173155973890503738740535274027061186942124683892968096344559809185117602684524460487595889090513760837505450216361203634730469098170630032243016805051261734384849730244674722821829435025394022104436354640154204579913489131451447493306756176995705496298125372000303455484245541142346336061164084140740279054623162012861091315973010983768448037142069643663359321881789671089579589932934718791734757384654014979169083720333502499269098359774247950756402353127608550981438839850217940386655868544142945545847354658890454926099026657277633981015210712571356417828502025212748244103325821784952876786671548504891673556272282370779110372895890755074000907304388629996581310639701858437420136054428311012166847810007965503749286391110900680747533272882743951758246666056915570174702644192949895153706971650945544757929117969500769540263774083898989174419764839525192247266251734095445916414832974684828406657913545919288685667148368570487695528373656841862953124299648502548172769854862337404105070326887343270997905333116956572274214903785436969841608515605198964410221290515653911210121987263198114285211430825605510558276759555745076835477195824671832578663480675559875298649442348271014775699261357468468835757737227276391904301156407687945490963614084120146370055353724052435483880128510207983236175606234543846215825117476092502958599031750974889259547217347137189266560591967593635078071702059298165377789452477634258611034850386420780327963401320809486430969586246378281195164619182665830277711326772295724475947800095623383147511954928076920155136881564820388226905676248209982358703424968954437855664806966179130812521614487257273090108754520363989099453309953942280075899482180905753586373526847833485270227044087386883832572615573604312880132726627467288580719472931098502121967760108037073179679102450804873250926141074402002544458134064752350245068724236492807313314952191882605722088634021712515433488826526386238667323545670372523189447093906405665172818967351533264229531872513554410958498558492816704631072496262009330235695106288970980848730903361978962443121974576436384321677984728069873423645626726614666109410040673237665764327890010912547080850650022825464521029732608333248345811634420827780933218363893116630473299938421002955665830302862692406156009529618595062865790376762831809057443036510309688022599470223746380226930864182969232727140215241694792527310791152616149683945410863355008600479138305550359447111511073206843648582410106965607355255142101129876427206144915125589666998310568332360274351081780993586748907479374342332051303376619194407049628993632563530032911670054731631397843448482616053162193635068406753661565159000340475366907981059423568329639980737852423087706092845005021193474700344804286748192567890028203218263013842591660173448802451048167267097819798946368926432642567942263561084496448529551981980360454394310691777458594058690177442431376617543181458724410247658754714147826116640285759257822737112022963235362013747073402530079391636771627154647524502486640535084018942502527739122343715478015783265574432924363858114820162902251149584914469455081135013538966161901671243033402079051700473672183478759432177980447256666385361464082308499745038699210281564783644008394968306326692008767975140337394119150113819261539509523293430222015405324197455027168947400441849644702365699798076828386732590246042345905285909611797033961474346905681983360757597270514065385416393293566599496106175418060783540417312580955730862343870748079356419940082660624110697758675538410916421937397178799072639210802582778947050215704420192907271368117879518261122399211290968460556049972663342567570218927705027094553016920619154961801592820027984041127089462289466855517744008117725340936349430257183832395837397374901890092601810733880864116287440663414130764355830929785222778215793073742668855909763765744705675449730569108255708805190311845426409841679146616998683514666197365034848646551663222324823769339349691759356443524560684860067973264504197666075548363976723555518472631378857804303311584916393265523951303589128584965572457025994762213137878353009254747935925289391570631476727575702877164913153429407847722986645917510524766605441827119726972850026267486129693378025581897479651904465786883142773426613762327772350452847134929773047515266912277273316333025175468446524899034260233890071756995598765491937339966677491701675321470549652242840370081765494558067297941290490180993356028150607175733229387968823832756221649769770285923654827001585146842222946144784458408779271339779962364016788276495397333789929099325884494189457423617795872649382878560441838104169128610584821864573811037447615082454954360581496810029661135215310451398387756731536560456799284969747259407428143507119444313495478621132896145846467097958889022335483445916568268420846826955425011044327876008991600916351699913566080847984189558993996411133517584668569873150647327618938858152856293361145337192691276014451578275868240870289541160365714062886372608373276094840065077159603560911704174423793787476793569912056876460172542951191483948912399784541309928310366640589751750853966876492227347417233295005238890828594919341494251217847864655536949325326789224035892959046806917438356589646072027369723502787221336159237123350036683630603128222097049640037529861543156064940039453430443588379750158152867124755705971355308924953259689246830556062538126560088846008403627913731767991567273378195245260930695310041648196790820956021976374645149252156550234989477312073859749926376496370609453630695659013411548736271364665070490577815379404083474165759994944440309150541753041642728035310810965152091862792373439425781209598629897456290827827516580737671419035121421463233523319057682114385521971920375075710509461701465415292656148045495045024002515645193015477559759717889271581221781944196285671388785036400683710113380773087279816533205966953064920091775746494421210621730155797123912927267798199869106667590772964223536541554850011417551761625358490062338785825034917023978100321550366913702026873807851675875604454901661925887959655484646033277229608928277842580778972052806895299701377554053723280230657525290246941777590633753800696446013837455016154466079864811383578370261586449849152800864283305501891331861596633457437965397427591951977234802169956111084501842775037453580950783459728514186674391268249618616145660233810613901920375679092589891258905331497005868159523522054182512818493180797773841748809125154209359005546903658132282551778018586162388098954371580347780653866584966898504900660950447168842593304061285964627031923895614921925373624207665300471234158918420104472994720550093837538445240750582122748074941806799138242395862427134778080891119048283868123379559741380727496448783305560084259173820240052220025033243773114825616058239747194179649284277648329651756575650847550152324804894421856239938735904293590210096846255284813884135702174025797881105903866812216813708840389662672312143184583296029147969214283860982190665975495970744718979741775682747013351174985028668665859094427662007442596166790540253998520472146528199281413176024744349819095736553093856327593410643912362911919276648748361117393608931113373209400776033715433722515335360365153971567818209037951064568668518886224408288885395348380429157714042986396202795410621687515850970758060358531555720712853863240894106004640720649240653259201224450086712543784929789753747801885621312912445032671990146552036579752269118450525413779117307165137563382382368099310376814276528484601112533028801087784056451824475490478624314711172544862411425749542715934238142191128199079310152259504964371492038246845787686674560093833045950639385531382357611550332187936807358590245525780927533037585163526904898458184729791893774095204346325117089213128676060884847181164593765422614108695427525221400215410901031030756601347534479647240526920629973308258825934487286864113696342367224966951263567940488448960401237801260274877550366547614071196135349769787593445496197090661337979463143784208713326965949466372287247422596274664027483684154512460038532329143404831400548566583162126519228156289194620864709605481151183064602800231437938381991739782100615726949610169712580404420685161018136736709742877082893823153553198883206412267437841998699508031125110794961998809361102475572453373040350931254765360174922377683759359155643385754548338545675614596002812849218408070462815899919445511207731249246780668658550939037661243499185125913372215076597089545431585446714467746554942079555881596384520903167516181785735154131126239767935732174278367539462842031806890602437241708817143914096997231424009079669156033660576516828606278046274916904894601158559175490192129368650700387557162243053105150488255237994282988290816892755999745424266446626889244062144086144344537154855984093010616363479990854650855373532013763469397815576642388974104263126253278731015267100499533418001247390219972048915661340239739832053274559877132183626708673414479095836910944031211355001022941854889636046229550527607275924396531630086570525329585840010914532401578839382486090473053587678124463886685088896549494054920684282245622819966983234294250221170024730273943946408043310690600195758140424400362291151038464240275532825734377849405876185225089267129189582323867331498547374069127842712660283573815928187489712007568670171045897398315268585587414681950573066988953927343949660317577863064506166547046927869011428516105928981925812350213570629741713285262535314641511221622733626941719552861732387204246366688631040625614008568468747494063201105825682353493713225033613635187733981104154744786696778809312480725227019950025125658847419203685138636504529801248483883715019792436355754838369621923564906013042838600267427722536689925084173177823365667302758834028135810514953099619537818417711778615965626340274523329614629497840249058213764600508668315992844904614554821224695919023363570035622116663782505737525407883593052771478969741507663344095072430506799776664762098647440602940883722527355953820566463008562458199973006737659376240186152592817000846349368593322870097950257463513456852787621939067065152071325803002143948281999968978204919809792289264701968652324221548525044268505826003579705943081448678730874078286180745068181921093993236853537195057776648106247076630787394498878165213068117438948051989658302922864181248646308732348469896247181090645600597816600871168978475869425700769527366500910185410378234219888812086136567513896414356324849017876445264175467551297478818552021815885532414825716887610382845867595858585654174679984312855997758528153409644874957576568940825609040520139840581164996754834177175238679179881130179197886569765491272086639033419584796028021040497656830359653946840179841635240383594529887345995787256435385552872322151722664198932467723973046834870523381449336914608437982706097295844637515286483257986512757711797168970723377126909322940327289926116699281835678002808355969155090898611272736245744560077419505995149566839996823167929821281955754967985616159700630691416150412896414288734090965915266407994556309193838629375138493935642655122635132252393511613072408481667218262688147458816560206380085000144033622243698901166131233958394398262195604146730264794537416979981563802346394470778142539864257225782062017603478460712205383828326979890860696929703233504749753498221978712398551844107424737839111351873775447154279761451704025312322769362580539672456213433871031474258390368805601916692287885711169357180159277397923585633565022499536950118819102076075058213314253663905731200872335009634283151187100783700161945891314647350845939354942907344547586220156091478425853719822006028050781846461798175771714009141726852770298473354419147347015505051231637397560357705551397712350439886896124586551801320708850596566845143249730158050054293123263627574229947890614897900278941475147444490974916332954452646189364404918493517176706972138818561061900130647764355632602800773271485567475307926555424295769808638810550763306833800846188097949347376543070630869128285425413634472277539404159538489444748662376938959148377528564905607040920515554979427606438445964588219805559887717345750740913239979023920722226231273035519150532865715882011114253392414149147689829085998444651432301823113026919942806681839777064814502752863598578372674908584579911031575313222225818343107313093136534826703213748604002634660476670075169502227222901144964733718362134670295252139979502890786224558291440600292951325880338270569926259408792508532504449277169955528989211421687895825953093243051036934205616311416561171131388302047604878247564654981093493395026773646660493924057768485075141117619270057263550945508397760944303717871408602582105578303266701710655207889404072072882417243389801106716669232716923092671049581944953199417674845858955151053371781674163663111243680529600204585630014747174490928389801683109508365970400129693909353144441933819543739984163427726084563000907207914437441693160276659669668665717845394461756962598574562509966403723941917309829021307213394807325842217566936041790802267248796094108874217491596197667163885673845190742339638958484863332792586016899903058698279715844375452847562810504151197662558623995833329660323428939699025302631629071884435216771686065426123255593604826173202885764337946561411482052961243921797830083203203974523958555115054676763308219943494086270688107282365596126785195079913695386949387310817688799256963873542783732190526047042412308255195955177979927174398292488696923873360818593229897909347604387433205491082588600056756427597233505346105626165936599845086721803205208241676226551353851326007095190144248323442598059173015627494423931407553976720342589156619533325213428108239522120189819144481741023696986404361618155555977152142386393285103794809044082181202049666933250516394535060046958501464491182971107272089388949014957180051802275678148503826647806052901905508976444288083030834511826100160452771984631796199734081076183047444177605398386921859662803285603831495927969554784522344299722388444704112695821192589101875417688400265620454614591319647359659408566299413620077163595703474813860079178489804557401400574143683272842883698297258480941885882768675119101658928362201346753947948594214071917771947504895050038428703438005782336093349321523555415596045462576564774060707529958489597374146131752355246885043094045117650285476183462464653241798302787555431313116389890189629097499949646006585734004131649320476408506472279342257863268441655524544001051333531096415081072715175636137965229964709972006841188471216524128790200724281542635556761020836916488441611959678601916447074393558914448949522592186422844966135967689852884802579115824064956517311590035852171166016341927967224682047521799316215149003255504832076423043260229965636992702227330182456886933634947281531085003910972052599134599680951523745588914312153913887051732052259814064624722775319546317426989731458148637496101387062612923013030472400131271285919449427400474837651191224771464689939867208530082057502217721870230358471860878308385448205162112049209787590012552489089266771914768295978847953569752984404115611515778764394428260606803320718479820374958221102007615248076566855111486755030729142041542088526488457047621378448183968268370605071565122873405276294403755308382914515654382807639712586941881187816671454908309884105558754190738891463579507584262027853801544810926072435418956143221958843404541402155141397155646164581577475643734853135745098134840046886934299156266481104713569311481974918580016963345793145402079544239806421886943911576485736309367511350857867365802335006687106069629941458064845951411424094769077989048322237593688864158023113195039689712418893194412883168186798968228788039178171989577422486042624353683058593741262597160951559254141650679283876293331994654484909701456626938968286452738869240201449005832240617655324385040138622593790179067631028760502266243139935912802580594863353599945126359065003907684370166694184875829024691663659078151156626633220881650221869966178488113902876766358642462137678439749434305902610259461933233568167039479088632311444486769545228511704631081566506248268243924843511643475279000162797286001924669565012172172956691043593074344843403225125902725043125163110510100829498731913290391853320502267630303522246055620138193662616636882359889904068936440931866209497231206937069405200173719006798746177325969360746882570152616197424601105474359900810072026233263763365162975343771226283587030328993281330076882398831093010601874575909477969539242869120180539150265330676389392893179607034378430510453602434340395734743712161900055631109688885983146114875049847636174057041757955445628429905176870411074328625400313298096785279656389856061154834710781041636972331808690573922959613440148480601403067393250252194826468358260904619057065260016413683849430139830269243395791582720200408650095127673104818421403550291668631512553813147858618339557301689417381893708864486152800704033777934286870381798053258938549253271524097449251847651972893496682566987025092082111787307714430590899072126775754628424810717753762697736177213178285354170273149280417051346200702155505187831401927154398045862579348171965467400613713047956776314397015110267120855870137955621313568884982922220137543541553850267843716235753704547853638843624612165093152904354612145342835043858847243188872486352680365369477652838374991157091509515038947614671412685969066592568608931765245898885719430220881301853527420424817997036152772381205438522385778778667167332224181473735489954599470915139804476078281540353363449507859442688448470646823020963509818764305850625561904617441090554831896267469256828117677997013209408188331133067477107700466577587249227063409002433880683000126857896698176971240379184333383052773405499246976109058419541740663279553422389913211207976032649497346582527742811721105132925695989247684195531598387921943878951865884736639221248583803362187491576996597785104290647630019780088031394701894599013842575983707838269354731119190096574186194715785307251209545280413826043881142456019554821817801208740185203008371689072733317902495772388622400578172006750179158506828981163540952685404358394462057528808608821002819855733480420255226899772532274920110578744525378624294359370153674072473927434984025301832503956968136404473873726337061894239950641886173577820153205457904823392434883931183590338872679911891012802735433082043930748367766358495959635531123873509783070097074525540163371092843232638472916895155800003632748699735906229579417665840976636723763868729600625817698776540327584168234849410222789702598084070740465891170347528811507577236239068761365513138484665886460726778931781661853005496480173630909998979451981627654508167488018369570214930441656211471217353206943038401907685308766102199314396506422336586651969722385802887065869430715719633775621494847064045703411406628059163967185104600468084691251499147970115965673341538551206424660335628304383923187920022746186508444621196628814049701922194575783586310666651857247188467284105560286723641259956807113748830745391272442215861612546611202695680369984445958185158664912053937858150102565071296151097376523532756869794947252584315998100370552469431984960997487370547687132696901324348270960140747685066214460821391795311075395837416676352185820632121312443040583517740670514235674411420846785759451566312724078068611180089359126399341218199167089641732012274563788365912278055282353303152496456288513675124577828811939192271159935938376102181556534131889500277801539295077328916406138422231680914672283629263816062306455031078909017864512008801177916950503002848962461419669465562123924152711058960174955154426504197065177508064849073335092558296826201105227706510510734853250177852938710391178369644545964004722835773348688547745039929963722450919022579501077675820383703050973525932953358077276553036921081941596493691181861136146459110845904165129217992619450038409052578585983968122832504287669049279734737611549786625313590901068870324697226633508192430985047698802479671285790458765166127138134171943183220222419056368149179298092113613115883462545271190031009971480901443188144501281615669954580086625246872173730768185197451185106146042771440737347110990801008998425219969909462450357666014721393107309639563116522813066266212078953364990448520306249338601635187090838461492679055734409061709845686455320041567640944863443848288102955638798961275037901125562274255920991973019168626059936380532745910631294690157189161156381202729545508147016167983966327509304154071266574833061884917827388126855952241038763911984399663373331525299573352808669982335757189832486394191411870305391271449667100569154087344742222944687980203107373765172187521581595964274749227322075932492972967703084081803437396794783093106250680585546400974520470534543107096086975295646458944356068002947935589151876457539700392021534099584772209154079497376995204270524183872881282675661577806271208725528104749604184400305169230980743450155183800396944640965926070290951086918032111761838657675012631162539536377661363488841548416643404349082501193315277560185299507128799026183542859982483430032689997188619443473125010740435948663642188397754627204893015998358700441703915645613887220800629862508827038691587843342727204172779024248031954423277671092920490774379762010057775437042701826666991581969081625938225622613823746947576498155601857406859645444593468205123447398613835586840020784837346275240208890985324317872409534354472446111311594340766687635876064300992213436722580726550695597009289732099864366606179168464409974541701256182352867264688113953035031059006990498552280275089374344846500833884868977456213455359415536968365364605816228054146498565034253467074326268162367703532737952247968265515317652124323400904507699229047727927357664928573854222301246690862662060555225673341231224744934052656075540246550904022859630033097266069965510338587634294191552688633914149933433722953515177135599389602599278000744083879329380690902034914296695960787866462992428070391090518703733214005676458130953423108693976295194976420382230313367264836101926600953249595549108777166945923482177306408268290200898545694288450214117291341690766739122067509927406364929748763479596408870618182807386035053548485107822578768910413466181719012589591743528845491030888945731789520118325748538566521572048098638322061235073202551380692552168020767068621944971937103023597872804292568436308340227206490599565612167590969723924808419402935118654558643170515525602987424445328570713574730125469204158257185611029431029164846264652264982559364872253939941863360524845911238905930564547361044759977597635661425126428751934475777938828714985976895108937217174815322056400691365792115303787941424312627066506143165493232462234352632138026078377163118269402298555237720416087881733179704786323285597398321426046980843610349859683783633529341112147269091744897280365466469160825893647948587635949821807161903866305978215260253242666406552956254893521686060197117543462362093935942688334299205119232546890475430024407219966226586166008166311007545047913954504606847501051762106041023140696524961129282383504585949428139334758371218687562788132964412350452900773562096803128161254076912363890183198158903434860361438003663135383703688001226515306956053682677581988381469112472298002145698961483689107379506263410756245803116670079998794010578643510199538868856119863103120887942105063855327861643840671596277659195976244820231026429148740749265837094436470588559578082623787126625467810224984744922005814777668884784354600890269180409539163815508497690272973739368240951656307056995045957389066685855998342496452509068437479305511524656995589201484406212523400573476167662995082055934985478512516023390217067808022330053265591815040625066065184868296473913625569785170340573419601860722277447781665396915761821575424466798944021660515587778368963739533443266830817585087358775140824198282960261294226893319708589841198881203295476927629582889692702278673269188279099190293457359070402664696082822007252050776529731601836163318119169641847650666727401356390463242159513125212854615896931124432797570293799078082629960691614855298166116158759633861128818873436989595711104524062044426559688316114969440458336591566312093101681402150688501238081191848933535081214294797374346334395474234192665289785039452879049498461666432385328503943067792656648543330451096807258533276569648527991016993452388147864039447915450046057480509353331331138541374267215121209726188919122003657263700894780797847787219723610013203284606934786437508868295170442083955085418287556814906941467697446463098925828002959996868641112995161263011157874805444210556859822062840413273499867503642812818590964793531081763299989914681102388797603414167342800528739817307012476733920972887536825250486645544405097817677014794095925492607466304304036179706279893868811546212928905351796973114646721270775262791589228838419897429745928830487463599189330124039665407765647889548478569200635416565777207078518130437502523150668013674837655693084399884053296849235443700822589298997290307171550966014588218598891122784585379696029071340954097094900564234546717913849200237723453176494723883303132075758037998276167658262235982385691770426785803862059007078209710460457494655937824880748208374761880636794867769739459704290164839186201370453718391825284735371114074944309318380773743173981040608674615261382164437073488584323264497655573175625156281674002507923890037889806488159137927666367924883767239412322867791341285283053548301249446113067647353363747990529148367748320340879978730372939161758149944569221294363028212252784853748962178291596840703656907080675354398823275406245930968391640469490801048127227318529567052925336728846882012823723986983950909899080215640504970881695496345777048895307825957907108589881928325636553480794909692451434612413621026228536279351464534884870490009817334670593570641508558214184348457546980963785686277686188808692631859985885647239745490551644831566153458234849662805131595876949340314340163963155734709461930019735087905790736555295465536419076337427865215058658898955267845620359266232508572841814723067670914100443229391930948699081275398959212749967420484678534132093770617502095385538448917119660376235170524508378593541540219050631494148198522061174095326030279339154774356054302201260920573678523253181607134310590248681817210910889611223741026934978224485006926125018601789450099762998677259505062169126146315777951762903765795938435866948820948677145790954970327446980306694507152890057267859135242727138018901301690133687470522143369930188018877273133291468237503829542182584311808851945980203339117200603700052612739970866141165394014284849374768089805754422467105759195656475136262175279024412790411991428800721705934499229639326003241899502706631075666992016129886579831513598731176189399857691297655611424995431736949064973492718921185344109889921326422513213567586818951774830980292358333833981637979234203651068687982545687366373398136031563137839557569291961053310534763667258816014217595034172064499692058603717861263200895552741697171223319022385285531810559346681031170519366093447122348546974190335892523157439581845380482308007157284026675017069363100527002094122916605869803538258683246062278824572505694460968737879443804896125235468921916364794409194394440410401927804882485387702267490459235023391394542816259963906019539640224920129522482069730466895142368294281475775646767196760728862215667625711977703226535682112643184863234101290880583503353787435169766365692870886566810565707285735814275758807620281447571552062237114305164949544009115961770805531703492799094970351091498343202143115872410989038399220840193508190229913079813879282011698222477807648243447370835047814179495638048899243814508676693175531271693410367688193489838206010028485927966980741552866725162358272502229069770590930819741500289832171067074346245109500221553911457713081160980079653740789919596126648890148418003343489065750554079613588329539413088786188821165502406089766749202032995637291999362278696826758575972435804311239678264260856462915738998587715833868923494178669723862019069016952181272954316609072061891480497095162332156707317202494559875095615671532993069208525487569165107048348666639765981088507614846922334156623670147271869347581419216181981037576003699597586549607254123841615950726505729844605166663525788901874534171722516039109291606374104091603353895305150568420591092120084645520726584420057766053462257033820536509338795723710749560969772218663909416203807773669946260127694599582204524790620127114347621641832796425109666528944531550663783679378153320061621754521129493124307413600505335488522362471552070483856103106831442841970632716594642365183512005734381221475929073178728343433055344674017830760815447190908094514071908611278862703967114613100859689734972647001121221153692017025810440104198745709740862269869824211661791217080509451803101128405947847082749849477664988778996005348049881414331875203227564634518286739663936162301399236834305716809951666834039129638931319245699520875282336244290112541627757276912417189341655062143472464508956973833921869941909152825707137954150833408512190276766404497874753029828022439324993439059562369377411183796818900169919601227447189685047196761437250232382321676553992095948626515418460663027109801329909007184784535162791570141544764882961079995265705387287656379979643272896258644741940799947303007131559393680332415950076592676824570387432237541488939895534195742162685595474967778742242318764760310673747250852217742335749399807200789864568695205540612903449830053415202930794748640172506436624483957341989822865957863645468817515267120822458151808670145063875476808073469989556330307328258492024594070002105349760878343558426016419454247478808178984837482545984235384148249892639282196461291823872462945687890785899262254772163462624016751546332004334145626159308877072307687258316838791092261957804746159089794880114303648746011494191614207592258714289934893093000960804911963933814449329807298230766531863171985029672355862066225033506949448126617374107735993497796986191793554095712506160145256077740639670085019861294209489708907864016680914566239534586957908706052980121540069500486010945610657486431062931561577452236342205338493423296195657985443181792914049984020853483359955215248629495982712061905196396497578900377136915533148759430963887831105011296775924136173055648008502815835752471685945480667634851847913436458475288107497829377966281560889609348420103676553478745005692618825846529531768093869708441574237765591417300525695518140113988715263638983725731573991388204275813415788996094016988527698586293215254491858624449275051539068314392896434268618906295964437603071241263881018192172226254574901630185786769198847521944239995563052800316142499285607528043161075678709580880632802293338258361247763007240598116072358687228288172460112118110493442852889368403800127066963825572967835542739538567407081688933222867488880674701312831266030084453278308356617612712512625289111097110864672020713721144086242893593717249712313144907622625010830854986185644092919692533175715391682038059726075410615030175307838344825812456501287440573245311271255900746635731875993556380154603892897202584018681133581194333286083632444494062686005325803093639269766716733441858068835044806775421076160345262278554405069404339573936155631339231954765004441465682436330570212094429239425074155171396992482954388246061107529623454648536481431414242805546351672406426981608486884455335707168098581423942964314424643723270739068313217276796850059007769622006453555606971406674663745992133529939563574146092964303520816197641199097868744229110062362146248280078485292145739720560142919776619857618316449836204237749851802700339180144392685031717979857285361754450400378432492104764988958500139902179620441562988021879775625352738017264343268963703459247150987117358345207181411622702492271753483923702687877776059423864434427599187466893741352844712130506207586803001449643868207264868297314068294819465096117182507584615792242718150155102699289829008126304798221242930829682674835588993759860991949893794555812487187490542276331795599890136952145317031317956125274272093820273083139909291433010181849377627595612106544138486974493187782276632438684140287055411593433829331111609925788001091752520439668627218749338114187917686694323531643413783998057020744896270463022961324436126265161510466084937815393395751150106678352062721065874014088760647542428518934559416181963517450850251682678184835894449042802325381010287548090190481739752452820403060034476857165403940815516876423374748325939318095925827769848429441861935084991717199003818098941845285349911643186845843742331225040849681961548595044544000893922511068743431315026627199574255705645177916958314433210109168080702811727504533156178652191134193331966048400914502252553810599044478306717121522735927306178619392158000508435018412766192618144185673814458006740256027343712783579392709338699950907935910158384579724806351849098265591734675084448599098298229958774003744705701692803671026959070954875162434425730121503820777463971952860658571906770373859550273343231364338029152991658630475745760238640081822658199527512732234382242453868625138940862294846552462155856401250032957319157694156522880521749276320250572926838499634422028730563987163522680160621787945699274218990449818389957686838686416244450551967754625715587324702575437131185739447115295089171631393054675797156105766279708180317184871033250376512916553113657708203303998603776022575139828250043291493839950147993810831210997499136657568790000036399965449369887891781641791839291103331730290354866616666180171305480325826889628742935323727468751355424361888216546543327754732482928031745444610831563801009198744624608045418207681491113123886865491877512513531572949851539923578279810087388870806021133652615462123754684293331730657284281832214751616856495746559576512871766769516617549791011134868557949876016726325476831177576367265620148843118787266896694930023876541981538237154181487800601897968977671955932063730075667323144737286152557364795323721445243428666410769166652551764765238778527298468350760536093331807797459942214769149754515057247561870384790242749449957529321790125613405966214876361186955056579243135150260562277160847282432064980031708226747612607289520488601801562841462926009868926051209158238220323515046745970062994101912348061724089099411752322697417438498332212197050682756295172542785412841857598329746537372847795460506695955538573940587707733739271182141287625787852493815391102352723104826205876186625512882461317201790087736329203491566125571745412775251733361011689004326466296207764041451599097143170549332125724999313754631775889166163002483730703394429336302412365409635954379743968313467725244191994143081216831326415247547086577284801454275616600924558702485230356783094361683555217028728092654975088552611708203402392926353392898187843497993649899736732568058311682827794574012032679136733436576394281773697673851557763824924017495697488662450893369175684867790902629833473134770317772441570641748256303320389944445303547013563044721527897206844610277930019481019267585610002869166889517214337124393219328187424982120604595659107889976153087120841493247158277425664694414179958085095702742581416366026330731068386293618011347470532529726062378155214467464180905454192602948698443645058059627918202307368201835969587122609367502231477644184892376410642041525832858290204427800131235014143065435566541051092615567288678136738698324183789301600605583394787577846961038611433079275379211918885145684401182591198082710213332390818633475516308293999648216301945266030738131093806026699350804832875576226856008282809270199361021826711530061104370795622695845167005095917672246809656639860559796442842031507289332916377989136228623366921404700523357632556277934317190486006628582642198785194411878161663576588376892316003083455616794320558743498850819568458594858827629804568902034461075218508625625073335369240419895132573567447461550550153680011587150071343654934943433188629541733778914047304715638292929087988644696790053615281238637328676827529094595064984553786447156152198575693107671509962449462232151316586255218350425611307911881616833480388702021894555527365746448280241055816252997575110995937225800462858151406133303409537120896470508178991523073627413306955248454562342010525585293617699577815192332876856571406513019504973373364356221223653881138527049117362320969538937677802486626227491976105762446853086245754034245806997407094668795678623350930098567252329662299833616567543369055206786300076738420398262284613108675779944504113163894766616351684109557749382344258948033132623040599475114295896915354002698286284493947383319786551416390797139566618420547814174945226619684463169943597927126372685661110484804282519404611970524579911779216725779268376746713732387648816175318704880024828565103199176068683568960913162057574978642502399749711623957148559920918276880359150516467418473997968351564019447101343044927678554898585404109202808180814258751136224603392025779716157608858354851245802697400813424522271232705979338877684236390485677967217933041403253989486970346946869232758927247989561957287205226439551176384126165611280228754348244269440388911188397034384199860040997575682844038109538545564781487337420851244971772945770890112066803697540852548526159092447696980005095619447903484842545668518178247663189578912905528030484601363191737893084618277515398399029023859658883591106311217138544819315842923311973019260144940251325806434237057050015007917145459449154085232449286394714633447203586155137027879752267563306623996402930299027665498288009750742137133543617025874370408756267859143773366047700474156199965767079832182963325411345323588321546413529692738998916613059678396037334545427231312405925341619639639803596029522673152896050875907687732584165921204133025950081107908217781825141878944215897104803007049290414090994020521750398460334787339611626303946800860624956704992178020327337382905353366962542024216479250903038236305798725409052784790831410592463695702907042850105386740660249446034195592623417393281610568207906019009435940480640522358316210076792311333794553650641519686314526061499400931673242845470837192443306650926244134509400949843375206561525464353572763169687987065649875272942367722839972052418918419678378815376632086974819001186676667859751765635226201901315637342331126603511868494662448656400031614572123720299283480905599503618498926701203277073327444959114044048922017327219183011175414697154047801305573020050895256758574970411665945521868990605220611851964562999912289035206391876207853281473652936549559064711931597855738313140604822233111314188144774993795930157640737192581461192860158951110893000440728176312310300610314805637067348746745029251301182698471529895842005459414595810007943272943239373627355822649410953847540853937455828326571277889795974419882217005394260914473140018618293704905987221521596596361320464062489376575692568069737094610054025579030671310521540575020672085861233020099232910431566681384611899002839131524223649278833499655916727166392914978205538219827227074554064375708643964169288891435959341636194746430195322149317842806747935011176302282091910392921408484399350722274003015414397138328001593026284498987491266041139841895241394303144001339265378955792372977907454201435255289637514916377930046739406922704477190522616363644546933525370875959397665380079432418443708173891378307855032708140383501064958453712878180472239424599239303786570650408082160624344235819374970039204252289473667827696523992373026145890465036826090083467727018432558978380104933385433499193549041829332605707087503870963305014760331280697026617353313105330634416938204423555375033079557092040820624723938184645080609295980863199463562767396807953047785344195203899825815678817158105541980582818200613246806466617272639019392420588115574276557894736267982742284200596636239604874044049041786529666042312236306534840998699758523991338797763664493081091559599097811719464287075185987287173271817238660760658488167904884987453312106132931729835257616193776266259664742524668198667347395583085262600605369841705167318417647730923085479694172116712613657319166115405702634286957295008371532273061408850777234775283862341000369471308609885179110235321919976928085443653622522545710147990291127106321052504357215032120423993040658963204410821101868903084446494917562008145721899734388115443276907039455460340660603974364320322801315313875780537286938992336173893794859665648620033107165389195878317624818304373914632953944092852621880971512589287898774039935281112859518960602698029888196346683358717987288275729890761004724933422505091601923315730961241244873979515619657561012183554529529600092082055623720392084071818002346219781076117694755721670811613926274662540358004642412309392407920420425130534521228268544849543262101311969968238584669132159877329175056598546875785498597291785506065308466333510791390882253985145327787555304989938223487519651115629487370394420712143295450758962868889806598614258035894990854233742430971268872176970904790301596491513365625339436931154245462228065391863901991190530285343803404716985269052622078615548217745454284374265817370820154796643467289136930098151888787604173041537643855395221327027770361285518374684257963516009141458476744379271059417629300161697869586181910393702743823039180311774368547407764272504609023648876088206101987640530977464100737114228849925755522424905775839491337786227588146408167463345017256886102143949177427840960899791846330413828209804906905512673635131263834699124860965219485526178063808629483335998222395152652641165406219270183987611495881500256893787088177637042840550284548004376288233649712828331859304352703103623894058613977691510249608338494449253932463675283731881306856089570301435264145051158679570315812785590590297615296033425975209976346631905453087483554120009156196878126359568651027640407402763314536935890443899555144872287032987297585231857892110950484826784601474681455497013097580007498030883205251460672353483194099554416852073998758655769170310323739471702091964942581829729895817332392415979232184518749931857158517212335676411697516717339641461051989255558490796242957244572282880409600114288579933344997827555910450726110539139483898746206779074693912329317966229570276691698485129867798192930298906572099904614647239437083118725342125734679531531034945776904923732276184431274534139400664296946223993402783845882537521290347725024927052936364789629153678487455205130859320662393222576726576419216488067390520603899184266686704305454519529741799052151689833743640774266203172286420756636057058226129521270805542877092352466275740000351818568088750994313562880517424978461064363986974782149109903852392033512321716408041633270796796474086414754905374607659821493197950311871583756841318809954012996088324402543402573487486700481604649556774923069778235028970568161148340874224085645737786115434418958070276985395025234778100220650469246526934734572479936776765749188336562993075182809753454725050804997330583898341077541787070394121300236949473893721734475496992431080210695609734762473254183829665566174134773491411981225844554734070026518783029325104105931761931438705332645529187386713831078273257721112820389255094171068356887493059564720528508877574485899687021842974551042496509587973974538229614865279258408256706514694632424412280740774656059093174947344638321286072018514146199589345751081476919169703251109865594922245507020262265748266754863035289190472679978773262870478259257450339377526877867135016963880578923465849984247763140356104483252570774581362032634354178029780677299289428239201323160390001188374465490772760768739789291169746832611317428606724893010275124654084227350861735486697247742275934413643553792796995559717062126766272111435944803971853115356166380956148442691000634813617275269544947113667733114715587178805290553896583973386571574273153260459140721878217571401498659532320870767225914340455849090728121927852594823698918507072964831315714411691292834970499517236533411142571390652295026054686246714235924920841771075319544237277906473453632926437337374008927297001055827136842795420951904310367210575800501475142512254273560588686874219800396742475228656104026986316791195663619303553556873474205417969746731011191458657310965732197642400736221989772757748866634544241628382731267437329573636761338898919613541287695349736198820393098777493104839974938063221085108719935333342776218024558596551448426410895987145981840927966041297283857989425045535935189393035878990031448982103190986386501901003902437978789806868853725568759620948982000485148268387031109121671646348719752559004016333820834561528753712624417816993340434919003752651215930127018458706463927448700391216120665325081756100252661763676883550885887013268428269809624298294396254471120201715567220359528504573340288877824563324948280902461158328905932117154368654048968746045407051325343523810028621422587839536150528138086300899476998143988503330528084761050757152324120567668100004609808292285051522028895663877342227010686618145115047088097250879037897629070497665091211058871939673969594083277069057733603785293133945466697181209540159126383609742176138046494028106869509649348859810838031244816188809041148203071937257534619026888296503563303084593787471440629859830915474851934893771841068154717288256402784109815191849008162026015486943226101512443573560148485406964833772574433030730458878353948291132012225163207333523347693667213567991407407682545050788583386365547080428815859595559368813702718022723596038106152742917575789812866769071289156615973237895955625692427124289207789337089548641535421649626093477317793939808862902633699391085978974114107542611554430852757062726720194640021741325192868640542644321552264103703274247084592575638046989956503503421061237679075139267436139967359925487011778071144306677739710910183622797944448044252818258328357348114735438561075254500804535906740928107661915721010406660940689510625183302944745392008098771841445846534742325303880043329214216119252844933486897428960215267818591984743099517926523286379367442377720107239453480082746879502013937373567316991972902179280400850478700201057398839634009703628912013032906526238554543937903756031058297900216535079611691300244189172211323842590073745894340682421892582992338562308574480511897622931426212328361474137516658543799346979593385791382547150506764922330035038753167555627626505693986053031280112570857536360449899455891128888947304179749481691317926459815486673017034612901603173738564414987944624976185615214969344839281864799199427079958382329056123681988454909683171531990523034795170740174823595138357587892183174377949747842014356211153216762324311277168942219566743491610840873568872839664535122570703333591533864659534824120799047425838942245935452126380861663828182479795694971580607604451788573547816605265647393876268426453299552258906410167011609787835663828449558350175602403231616332386891363635329554078009837684742688186655602371069112814041922886537016374938240227620954637493789212439985730799099968293594399269899791404310242908815941143424520863459388160350938014500703081627952136905992284240490010898558369550429868523120495784576616005727656818292569123318100388635263783523842769106427256378989233788068933191949105278236207664865340766291035459702609880682264417921094536787162599986041359520055067522534488481754242755865535320376881174201621452231506188986556880134875586197272082687662460691142536654710876232042382593757246035978669664521824048201260641540185695901491541779767553911595537255593737114244594659174953179597337656349288714710261615323630280273979838068284913427531417118850679498305684411998098268585438526354194256523479405578488397289461329656560415177353288657213656335878203579696783612875499318846806388960721332088928927059711364388604970918103880541386165425158374074849062567762769556129894068337283027475222304565622246978928493562610350786351646859783267340518630628902264717296157129767445675498701825409721174807232934799671954093633681691976237983238597629416418848654796574413198410488157622044140452807209085326854311754251740488285774940357636717746430331557918162587227137727510908062061637527812408810100605261631867592220025984703264022820892636259560655287620094141388873138686875974307328992004003230262788631169820474556511228114409156944798695809700034320412716050210795403939790569357427443522618170081213789717493697013243171965268716937950562914093691668277547091177436821092940424597897949747047439262897737489143346814989341794800162708591065628700393384766649213850664350638728382242499632886943272355201460172837960012705559258561103151354803991201124897519191810506532951830787120744179167603605667332171406263781580956783633291967020599724701217420482670459858056717834386032104453407682054417610766583409578335250047696147899374657815365777089276805125762103160295694976653884083464028758903901457127175380718530723082580274656630696430904793008352634523199131578073991714951391458482851860458169034758055193956292022474763841425363554012637986159951153083462254342903868513897279896583595136284825417700347999343966037445010349887682489756443871807286407391233128117965165925190543295683036266468745937663415433286867801529077041156269363715810370832703553007630799932426149496026236313569051872800514723299720559252051394462709776882169547181356962099788942998120615842798542340352335202727074325673788157185534064684376663360439578321065075119802390031968942994318567191685727538586624767765426436955347818814244567720925851028833081484344624955445071025775261417439369665925560076782683066316175516089780613548645433003645769526082833849017715751682634503147094630828616810695788232963156643917474173982811779490445381650423816248115557571362542822974369699493253082202294118757775263645789595313142206501343069532810156879311539238025424763309285367450915111734571914732542204618271233832353290063183769150314609464940855664895778747139957017198884453994208784542754240206398202605958547045233574104805610436716117692051772755829499348583617671910265897083695674000195897725419358057291281862350869611243131925231740084291432134671974773390734952015784312398118912475525814146771682451883593684073760250991056652630490692428422579056157247101773052400846728722303428934667475377047867649763985981028736167759670947179461917801778879008001630072772844324283783085097900029420593592716522210657747806344515256887980988002620872310553468795294856419743232464088278337685196170878559085323104430546429762773659339441501458906174160772240121151059795288955659026482015158521282898410251715786469088839403272870159438044473028729682147416558779609399130089032492386748779564323551746389874684622921769252574140491464536494755291462400369673858575240744800054529474547895410545649696779851268807641866467280500187466322135594718861059759588940614302528343116579396312566954460957332857833036736333617462084123511766585758619509762945442824501035038743256850626152624963955554216144731476949214916111191582180980109235065917823562171779391589346641307115993499556022234537012394712134543452427082661575781517758179321229877666126865155226684806190065648795783280289306347812127954756426033609917519837205867406992157162320884513197403304975759967916959537098031087485042792648751593046109202440234610739639099103708017193699952343025766947407419322246019484140832154856647012756394428552381809200564499610481429002444167377710856671044034314950637918451001405973915319957011351805705636763294719544558496864394322394079810611087540102964998158900378285017856840913671015650918072703643563554493221482778021351902527147294709556986922039597721992842748889608947002689612433018758551188473669478886873678783071765095593243243052862944776760358457823841221640596593182145835983538653528642535982782197402374177242882038933882852240131188776264024442501319308213973569805712387894332125138841731736814045708189918732159707184864425166806346591203284019779776583373404497747921432219751449057643667906813139266037157802927498880128909988694167427361078758131687419440713218458194982316832142222822458954353847979020444577348915525582397276444664467232831010115910058813356086238628587355556063950512630698009705243567757956215128710873421937561129063022959069743710040903281839100845673511024252272069550883998906109035569419409539809614892618742976499675240265810652456914119197531149789790776504386143076808095003565847987321878678800814340867093785678550824618940165254163427939815992523638589624489144574999478607843784962616715352093970771806616136116233623966427283107533091601387683265178283750499488729069852143674367357142202065643757178972573875650493905061905987801393093730400722424798659987641740719214135904424285501774901881444674661062340298788753383631233140406833316220956764410132689860126249635580724303533946812503132927574603344792562383503693969956410490140923224389184771278651998826994357368505262852050599496675288481198028569312962741608380515731155000740038090299907703968116723420945215673537893177046664980277109980445275447717860565802123344593486037615377482846983430315534494805083180304780302797102403635995214669606762020981451932185418141836500676142487462117869814240639565841923640738736651568483028544249190599668285355625306928670813540571253332021375736746613263442166922582100922326867671293905689227688042210783301515063750014698679734449405266947000304821073434595851485563905498399571189831831097450150435482961064475587590661864335280142223212534510205406502631286375602443110982587541662786838305836734452437774068404130904317899962100321844832346429851086782638289844207462621259712400039105576119996024826203110485756080125229913145033409917995557134363997967374098727347815489641132471427408569468216823411376319438229808416896492338179776207677905394108675743488201640703170698841691969351128176787133658741397460587474471100124837117001576484429437604275395779417135152535373523176274958098048835757700662226733591999130976010159566586804609751675647385524921081007037297785836993964642124944157707557922211024366162519694322120010434333060244327765099796884055727927173796016055857376984222201696589124779097752701769355201635844023932011132885847450264877531044595435291378486397740203737295795445872616300940899749254621658607992246070088952020111180887871467758953794604444777166494247932599374256352288517949353318477777871811520542798905807064224144127998577538361407040170660608281648604626646440997119168820398352263717743043596045273051199413964505133382564688557315202736165268544246078566028041950249833664537764173670514179616315327891414528990333892243152366096844776770522778729294983884731561146336412120633189463980446766721642783330920799729583832989402050065471200733365364519274549587572431944147104448665043587303295370360720568587155318299642943931743402582541526755278837487844933827734020246948441471981109319160836996123221211666621558189827525229644370750664697244062020054517180163644882286024145233368897632399491205275871640095451567843169362988901393292421850511039126774323362991010075975952597521335449802670367697822785916587603910378122216574124860536980465974698092297556678414375359041171562465027145442297939490963502570227520419304624338297685495226516282400095217016757896534451814345012710231363320741462586105333740587814893245631415586809035187957307432689656150732910547567796849543221199849620640452468138645241017001574459433869696885515304534327866903514128844438265331282586782968090498432192195256470223753420761507082412945741543430665129352598173653205539865047889640643658255402841154355585267059345512484726891910082471750445312608412439159178647397700137738015316829253133222144884488763501156690758644825937541230132912146853613754426443092468596939803960361720286342551846364825165253561939448635228699350474460069528878671018878112435399782675442661663159877092914540992816595995412838978837027006582303307127830232228685031780544188302192295533443145326915125193157447815338686463052228596705368851530247163261783170992483689207196371362236410207342848189720839861785101358803797993226538142281983310373037796045429597250515526318834379440279045897365864329718641998409250132159078958864810359685481269933498991847546158940791422846979579345100846292508187689522381777642476050906457429398707579670247993903484687784091172768204716111652245963391469794553493541611870785414546271751360551495976605471892322445645104977180754895074225001056037918554508234085788850804440020279160748597537054179203082340082432529464367505470560868469530140055574151855012085537090258550563961833062311341906001647109225546932099430958190113015343824247735549669953250205030873761606410514769674429374174536904796714651006636056842509716210442685413367020770440475736203935363732486282817743868669538978190297866057949768299914542516469987370543960137625226141464842083268761616381878283583040271778842864998579571935329178844408862349204900344215715095022097330872224753694105789119905694874116222633263880468184515039203598017964160152193806818584201871869641750421714488290255158417973569573992995395321106292871602302843808774900785529389676240120166517970423928655779477737472592709414756521843293820849729941473606648890007274956936119517493581735285745072685689419801114545482042691681132132197541231878978897863789349954647160219346269930570999387955691351491284863712988339342625637193948575398326585251838913447023210901774833184400367388197324322506283051650348445889784256983161452160999448787905295979945684782386935945674296764623474715431228168213237630623247589549341602558040528056151446884690178425651658709664800356801502737938422004351675784805337522168674098925471865916367007760619736477857440257131616638784106752551410428523116032797461553148685354481988868340250109909779425370436364266725570064479588435961312793420579092920995610799614098292749922915056816929575350212196982352475640631736700844768322934771005455784045459919007955136531182579744971824332916485578239135020009731870697701953058166459441130452911062983787354449485331138463554512169519155457200429534561509256935314518209378901828756706561366004100790783460888824903690778926334337384379108032538293161476494895439001340716584868077634126654466772521323208703743821409757582738075881297824773316053506807104469341146851041033398829299626384920689058083422171041050794139269694296620823816022519751613415166914926098471378428121020293463699781536230818718218131784021847094859886081698130797947325292255100547176518182100148312851867324357802832930826305442392368535433504218187553493410369887119233320111010270260244090970956082293018880992075006206931108058841075224128065990386250009352078931879429052859846919801052477406325717937789778743011880603524356103242520993238713540143149869107050154058485212018105381637565645341623999226328922349322442944878715450473089731883718676953714315160020654575928881244557107047833400323498910981179869733727388135840457216572907303719485706763730508041858290064503778084829375379804503025429916066237564567808123409961492054569455170037688576943085969739001869076894196860705672700633801461001519370985347675759299358662262845108887897926507664014856034793737189138258101040571302014658163286900572351420454759115334637899025114011807098370675700211955986733332309461023782035914057658372601288396168894691508450754707491413252444177298982338305534978601469941054779955472448050846234404856987977525984761778590301803030744761692571856480654112883094391461739247794032996402322566583525258273668389333016607382117158666360161779600919203888279674814148481328672562799368050101924072579558543445861650363168144663234989330351016628704393013410737992084697005524575381294734939039157750962795112563178172045259960888316750506961720550568078966813055496504875166290325731381844035112802325140658354809017769803500605873987418358219965687270537906104363920225390301652290318931005807029262045450220082012229886378767283012566332528119629391292204471777809190210573338922544132373599818495152328524417333254688238538723916286261940919224370367232807880714809180529513438821803894514974536700790461019665876346361658600721648710492459009105640534570349568797927962203640501771450946213896966281584266944843220391213784340211941662540464805324919276286798513936444853433387797419100341277679901497069149433076732205335983802516003717354264004399618979010241429418781842705497905434766320430517868991385838864225510193882194033834911580953276338337518985172856926794191700018326765817353149270232319573856868223420437471185755263252551281769338562259347088846052642410833127050935312339594913029608146060026641791335795885242629368114629140127578922192672319736617057755869326132793061073990958989075717378737053501922998313404050470227866799391757660602897490833834056956634943542596014828042414069508499831489145706662916390847605448961801818368755833408290290419908921527912558794028483252566070252298209527408843738585559841150774355045198745606074235939377877245124602462607415379606116600349145126550752675601863811665152485961457521875474277593410443340908872380276792838521447395072993057806991901167422693985070785926991193377562283623636218780951524914544313047150399063033834377333723434584874420414302316072265765406157493222343060903958848766242407834471704009409826882831496927661007959420572893661961820938610583190154195714423434563198415734342223904605281276749344284562424404180945629184342166553545748457257124317260327478158988954063719195400698538446870134492634098859540346391313271000857882546806665007808308783050540137936420782460105155147617629781711472858685491239391691217501423533071625264921963013876407737710360842850014081035304118689323700546457457239207022775217555066366641228229082735296367615145150111761682366247100716678301470518856504476535242341098975667712709693180309395317388197879855836923726946944715993827345929125683963342516478703949568682164339996943100802439984475830017370047250813898779286386453193546332090108407272848036502454666061940390798263421618119327393089867607191148544756147264571783058564863590015271341165787244778753464161172103088530854128700861872337205276392942949393233283020194722012099569358801648810163723348571805243665614754208057617671758130353909325456993544762360793764545265103403968989426790056901223235923204038278069879067360269153641329637753380905384311916410744869891834669077249598264111548309385539081104929139803940799470877564123815056730971959897947303899570077758392717314112178364805997816773151344455142905089207698279495995412903452468641416427319929904239464910044066654595547174488408909934768929986279263004534628141798124925700475109331270403749950499699920598664543430077843120490674633286141541127644820246199364942410469342216883667642610165361824801277724456318016023988908918273153047467295423703887266578709871614041449885723507702306633247258337255812708604010390964473829246647082592868072876206247945191020466393645223079118666108632676309060241137188853874048561804215943377213493586627178998860302951821267279015440891086288965525704001671121602850612701703927172382406487361227246146077583304691905266309945243242089987543020700105934906690870448427467016855496190792167410995594822890043963083278957109749100834714536918595593338742286586936693216130572939293177999535333694209726874178262090033593457284143675666473057032189208501852706639321201028947079170660279791816405481586709493413015702386553877413518142500398080704507946022446860368096442143762464870904217220186304103624505581264122993946131825337541280697546654303355069772580405566138444113820531906260030852657894383795962475133699676212940643931817777364350086664897456685853602770467821053503689534735579397725076336637724598725203906836117787631706662741050680511628099762800218374315469199578928498783027042377821019456154039770566261289558275964901458327414897840447308646923233985949905757367088632557722566396966005744719956111096657026131748873132672918694704014925374668656098017673032283901929507425941841513474749039888396568735655265469799027110225712522629040152588038728314663597148943724874611964454135410746862984601033489070122321276278199017503671931591484285891694383310291387290365602153927436721604633174522887932753151814930545540997002407486334995322815832029239130384293966248332580685003769795467823374092497066349801876368874563906473675418327503197229568060081106142940920716316180232886062733940349932338951494604612867707877659514724692642166442322799559837894179225023033581985656463228948051270475056981333056748796531178680024236598452602905786497090485049625250220099263759328475592811648188606533083419038622195103370603274269621688977253713108470704683862832987435052710908344461395612521028433554726505274583844830443082159440748501148671995966060400690955842664707921485499971737259729761279199079220843373896152139359575119114144932470103796627393314585603104683794387781578875684750699063590413977778254589417609405296978390150861897951602537941692905889920972917019967430964070764977130353378677396825593354771370938596408312172679706944169880649702894193197254815858533510604294842638419014557751816877321467875415087389344000318520625412451629476960749598064006953040097159746691624124999277816505771468027801244226913334885462261915219058609299266137092821493601744575060494558889981239264221846057765564378006047314166722757466181149575405135400356282465273541809253688103251595950833311639528588987881836515981754265207693703742133095142973011687844736172526988145172057323290205975140647394950522864721556524591676772324234950045790995387376794840125274748227106860847687807392147957849601099362348634939959564439919901442943447756556026109717060978780316559676148597389562210794047287473921310419931646351844818551848141262825569656753010594547646457126735965788306351988964046412948427394801031120698345999463625719689424541437593860891794842870175058554906567788718481737928329555892292537941722804414649314502850549262087583747407727132726536514435466127167353553386122205337260139131737234333022161037257263868264404902908217599062287699566961018694831647449103244324912940897469054418511519580304968672865248557159706754500944933823071852188419976468983308685497117082875494078842522610138688607046878544263729882928616422504492023038039542928052102372175872702923282126693864255131619183447121361822250746274025971960822456090075119715373076525222593736778728101617853414407756361574378787423954563566797567345126911633973014737606213454157141209508905346698100008985975931528776248350994085562684623254016118217922385608311944731541287364511149957221756938117119538175245628662581370423538559094220162759378981337514348505606425848569095399971628336659447739486977252764342891106640833482376291384863734380909162996285510322773314296429064146250328785278596393942414192619228103518856799272119084701605940978134914663087038594544221391498181808928341206132157942957226500430320490710052677790175905235075916290825502497662452998783478326489034060627065654733676593923975473619838708323166470571200093488044193033139168326081686003183077307851071362120698817729124790785780572359640629281461011333892590393124891918623699490982812057476848667016202631524514165828582008178378649211303843079756139641046689111339460371545380846852888919188706834960910599540400878767581784067357515829981610891467444547193259839992254836414890270680504822944448724898570559294486498815473204199902212583016188117123075792479544155864694402751640932283029920888243274266653714341642073279002897823673000232156242909454818304792994175506997990624219414764873778756325106436035321878021511120660064937101284235391656265325911365808873950734407356261112966643481696978327134405077669048956952919364151014188638510694654743233918042679531787042959260363747253203182972603001779842442241303808260773652122506542096444521409906634306354971971936177660412656751683585427032433501399745634408385324450410245598068364642822743556563308943546901688859138768418656264921586469546775485700615243961492731804233679211231579392536058406511354383473348112429133458705403000081024650594765289124182853456833826776614603195377161063221837142152995005081649649584508715167442516861799482390961002159526028416385685946103964659233225060042290339712933777943542450763562697302275188567888616178296241116769314097838303560526673546160901559619176678067303676885705169153360443011631158804620676820999607239085034015301228132643470870184749928419645149294845876198099391427801386156539954451584633052679160986040199715504271731688558281652819970525064818725003284239144479126702897684248086765329558547614087343424145798043933510059154788662227006173700765546973572072772820940047726320077542490517504472523426806463104388729948757841096186413406978258159953526343597063342079018738101755488761235103665712989912487770128626296464810955701636899534152082857548666032050779284006458403817843350855182404670024337802349700252242191287169314503189907353582422233570181438950072542779274596106389425873950686433184122498796288330398449759936536859432773955610929133103212390713936096076257077283276218053391437302001589882832391481382799834940339220867541354753552065345182077452733023650088857599790159322392977057529541539515109900754891441719844627992272437726222324954063108471939756068329480806886429463589876890020754380140653462168132848309308654062567364223652295378229920665171766683662174711665894403799928838837394712590463950666317652850140159446489173974087305642219662789776742147101677906590083164121153356515210512704220618951764617295059391676672493845382495035216723183805508086155562094804408977545660434890159309579331502529098751520615837537217360511302538945673731828276155237895721777828062329824913751710532605505864597096610198182461874004278272489257466356041314011361010694642144727176214209380181261273772441332160706667116293721703641072841079452293019702916431087962540919244866023034738450586419185687279581356653593564102356744688912507154776257822034984459891052839925855807480794672625210145228321267119897916566357486252455475610559288529866225062921733027186801807924580350607103324619750973659936538382475267666504476089428459367844991507003574370867709524529611629196065654085242883237025723710212424002004446932650540770375694337522013020306298947399310861503179707402155382570105889654083232695356987359355808968964690249857268882339409747589983289910223750716734647273921256119974533455075672689655575125031486760926159040003920779887773397622405928786684680807192281549021893307645440639025021697077491583255546690524272015265557938620978734833248565156603968478257194611681619972482822405629109395533522015025327907743136985780307599751637100461521877540733788836915594310980754906675837252482247091568827526333481383633781487889920838207957216950862340438643066327342777187149809106221576380150727688283360815226032796927732521480386806790958464508644529855246420847299421954591848480584421787607707553954961304015488934626579033454190426784736527613652598303969317425944473531350063624635548022745493068847895025772062143769299272194381309918496896401542987236037928648372617099801464194738254264689327696668257502694382547556022960057229074662337058466336572177464453926639289157180242716217828622777204720734580899288175336014977910215603902382145934438822777713807378876239159716035395222165204162617156420347916928483946805620512457896339958518356343747193318228196501813655081838495928361706710908088768536592512079516622558852832418920157783381640443737280567894474364186852752299250975135242811264145765088157718410722521944596961802843034067186905603651440427564801398855349374480012950917059304193066685448882302235350027400848872548241728546128632005651208877022051045577093905141261274740833134442013436626763516943403879494914972561054877124386010091977985648798135091537061313292832080197053153421798690245000050173295798423874797083011595622959406702371415804373117165664362740979240345007719425767535005732767557088275276888634128046461412599271753508494418907444447129466173502719742666241269826519876658748564332203554267202404273581642666823517747850467268848651455454492060720976786870705568392682193842267428411330167255546521019862118042267477718196226517030471184094416966944591153109537115770834583775323739297377567789839677379971497060933345211872160273106025695447433065459175466062390273149245199484287346634186196057693687590519786663049710971614364343347052941773883326434371063267678911888149046287023574569927854162988369594031987588317176107292796114733398717882060769345289653177969409453356105991878565882266923915039400998205181417874465324715472031771138517872069168091359413718924209316012960566423742585092244511416488766073085123960160541394962778142349647222317014689398088556014475302092205550890350116549805727037821404827030605072472684889513107067500655964596934091606783418850305291764585028653149742621418034236971695978460866944122078833898175816168004865281422463397678132190164877797388390039262545662593786202948423514155587619619875451260291347487676541332245029224381923824989022993546557242790901988958896146632436478695129825423533260564206973854124668036217592027127635430204249735909787205393671344867655742962942793997503676165952382175654907403676768380531488400995536289172438942246223819601238057440445315959325206562842337128336472900906802647756771473743888786825276101866652191214894660965775241496542237098773327630098833525630030579923701093085622720333991074273452029816962031168481525173162022625534458571061285948224937681141643727909055827923581848008986518132431762232149045650195542459143012096378119443389288813502109476822575257850479335352917946460924173693539781137895327252295201433224796852689982621704549718701622339959895321288945117903053975140174577006319755563340742860551425182119427344766380228083584755362070875002884931741349418735124411157859671722491271320147802524614307865105241133313161626778293749863130020205009202453406014047991184068730017929296470774420128282904846580639531903297734732609492667769928820234887187236029236814437819082453151011235173191136560379640374827052673299923909885040837913010448592512231088290707034142805064808279339782275786156200574469208337680485387118894359174248436423350019452347400114268954923324138676369774734143352953224468098404234033433278578855905641469290232629823757667735177399114259697953396377017647754940563543869005371506252403411394979736473589570773080027685066298106235779407697844809252250209754712876131868583935369306982563107265012945866653734582484098629462303311716264975885441779752149681259511369928868710660620366124316599415906556042713221220740003775096674955939864773905017546962718110675286826209487618831574488488955606571013898223670301897977128916052436610245808990354741365598432011765838747546188610362994658740896705993678443832088573398721327317100890781287084051206699506543383567644386015765148246266304684353895125992259345944076903680034776437095539331879745918849144798137546838184877650893692165642655220122027778650373874655000463588212923417246920879467969759584101104273223900749145030182304097781154971871795164623185249873807563755766990884906419067118896332977798062230106865705820898792731265292979441063734408053331268228119988944739605600758024584793168090674467518219713365501968728451471541729612929781937409248755828140039788842824884692099266392940677604119666934134220003022995702292119933079134872261293772766897909769737634241828454762111704684196658469084955675673867463575241066195764731412023510395677164133926499424817499482201530631489247218645691747460605275296762977632512442895802426532083878484807817122894958755386805077190173819969760064500255568367142239987011977865902444570351451295433191744517759946354942174495099007903170975681305407233413104175979301337265174680667480911572995214046672676309527364780138882198426250359918785384638238894988955001088247956538219930124363634228670899078307459372827121713679161123662736093606942069178768477741226621195883857506050608990459570197508939159078885779721347781882523695561611760646245103483409290298448220686548863417225061826435303822290247910419554658479508519881459176960235573380037859666108633519544367813854660360879956770944344713481991417303125010084025290698759023685765524398797168949925129813269766465947853892443551841846026241296418003878456488341880850647493594898714587056446803180048768078869669032041239698491320221611391207659986388151996896826422573949458344560731925194640217908234106547681005517796840161025784132234760542272576997902517889972085930705807644530491673957485123590752898713311668935277707297182122163563048874571804406077798926036446027028260681547360953408252591684615376561864777059422043362883132507738674604102205199725999652722852051020016813383943942275893316903986608804794978088654793095619811599520381483447678609297765256916720715123865901192585963934673007720060722986250611387039957501787485463883917975861416524392737488740087946675885074036004618280161327451158688956899894758702215498756803326551921143405973390896225153696432581104682891880830417239456499699021686913873225209905958512803956217903430271457134721882430058241426369549344654779568160217874547984853837950203146285893520549656654799624191454602734840050946463356583131621490982498967315334877763217980619953708110061174197234759777086828570733387445892421662123989147407764868971794168509308323177048187449787230848277290732473095819822769311735601094917225166206155579050206409866056566642830701300926132295293779129268354257108838731839202082515844582021185265641730269870262000046445320178287678943278328610698499264924295041785289868430430125826535332694762413193258481598591694708652243850602915595460614977668377113277399386740030552485023322290099647403147435659800010055548918946956992242074449585315898271219008046063118716030878143186394149949023330945138876332696663314409963909176972720866286408604300694032368290624968539187745228295971353043731284806983450676327665025797093444943393079723306024164966713472767965724493766490632449547125393149496950191124998682217003300998606719611940406827927347282697500803856853867184774935687737376713141684837347793671025781799377153398414034490765964199007458750059795493920910125234726206138219662652497765160304744558244588529149327196925927368783239068842542161398531515968547250250696098665689710649793881964501341490955585122359004273237660358529141878031887111113412358739553198454346933048315466621302192463063721195871269015982973451476066633152636178919965181688477897835591547482749782548013766010854535262799192953528302560875221133980576665659257579112983211142189563183876958183465279436708257693581485970495926418400701967989859563193918642924521382482940337118349001248409970194791158791765008439020968856448947931622150614999080394854068918337126678127834692651967516785881066596694115822458209979468979645193170488860625202363189114689746216139149262195662710307510622479976719635448600050581272945103737533529604458567015356445271370323253006593503916389662041129025138077009867143445121410576536527042174788771088804741052034561908412039892452269433346962987951523160514317466215240265149958862841985533587731763505553986594717383331488095919970426740258001414178510121359038490566367887608565179343771970979988835600859169580885168810401011426975207666766415810570784576940297754269656842742091999828711991621782285053161194973027728108446672167845517945511733581811006174786669724579361035970127682576871399346235268134314292100771556601264893861029094577283466677255395792477951829019982974013195833659433437622256669244624254874493095416545733462244347511593337309862953876631202123880753232390011823949204916769220183278147675534319029639187869288188644023617174577543486868696007220168889834125986226891525600243419633142661595598735941884343328552645160231999476611089064656387358117075182710326722447729113201369821252842981846897270562794229901402019173063352635062595837134729166512441157159871058253179698838444665142922232957124739836006614939841666669495654368063785489354303133906531042669197817589570098416452503295096226776225754229824734894503429219041566928601880230183510364366517498361004204354657750707614040251701308187642978830893500318009604610922737833008576809880084683919020816217679185424438557568215656176869033938164630088099242770479672001360443907460341703072247589302652453891955172851017922094662974116463844235526659464074516563678192020919782226187521356368850420706748587119798808040439981427466104326507630512308949935917404706436393883216777422183630752944151836485653825897893205423553522486528184063537157240266211633494160122412140757142921317583900223135007885533987555772414265082760519157149466425476250526892763779781694958361616573155601650837602512986965061548463926849275482274825709545380544180409846718519772760064790076938038435484487044903656002534926727798949403059678831858988374492618841012885094250354010627591331972902587703841274909400266798881837827618333489806118957398477614199116858227684759538336492839221416018776554987003771606436514517934696511149859474737843852569161912480512991600274928558300746915874645192676792006246643122371511825593745479874234668876755635469834296085726932277547104098253834083135405461841871226527027894642740990772109584003173696861712093474792523128867608103881897769266115864956260590766875537544661798897332135826867475355526706379977837490809041957139846066465047197323441724622202149233257928560656809002885882149246806111917683296871566368855663643164460761824239353547232804677599354638313025573247898931044829168215611083453345996817346382753091598660418449150376615056537469288764886796377030820198427154574945528050617325777890918197796393181085265843655923721752616049606723826944804100997416358568602731590384353694701595558122609734310622278787022317278810782753467941383107807791095921163127992865620230746934570740545233787249062352078934506201357366576426750870858329529874449761887852620960300866469763542798224246367769332963961348476950299048672648271862232588499438645511623980846891760669810213071395278804293566471105969541474617874536271978297991897925992223373206198856214405403413204608320604116425412157238644896570242257344876335962367986092502486957782408287482870981242939809218577373252685164167079823627168005529390215780598625016851539865277338657801794955448289233652198247556851364346884059015055828788288018794974480154803530271067354097931168279119613554089028781057814012084248720794260609298339193501513470129064986837984469655541835852302833917886960981115485573137570480777993616223952914401599026221722836981201739488563376436416154066835727090099896401020302221791147614468556848855133670005302816815204434546050748882013726856851823664058269808948444656800153525348394557909184989090541732702463073551830368542332681427399798514644223252999399220599310826013128361882956516951805010184791067789597164752182199934899001077376240785170874309183085173757803360335969995843810319843522184435898270737939772032048808414061667194684218277513667940964537523495832201422990090587952146349705278113002376398351693614895269998615032026929054528273125603690736450928040337467152505963353974904416539802493612104733356344212264688116259090894117163664275525506443148132723272034740493621149383409405151445831168127167824658150386450473337521216699919363951663867429121301341636301011387337296170564402691851406612671756263259411659891268463953920441834451448918122913325965782447307082308775179721487181387556156136994444932502442681475002978711690876317992364730138736693528454469373534038832911393656430338939560183962838620811450567148093109166242899982307872592784404407099037574379059878299502346539867004639537376493071775424820600970268174741822501904361311799467661889775222045169334602817238605843736735895256564704623137856103214051398480788462497819463403275498657248100291586608163859751623964576484115191606165822073621135841692586662156764525294431592479761315767833544518083050148250547628894071527983826711919340922177337969319340162837209415992531955784762143968487561018670413669782160190893412981198002787612701211147972316087302391969969317685499530577390115945435811680304661583971911184253640855605384290281781040336782557244827463639116363402420789315919280136749919126189666656133318950351600003465546610509549938300908751511690067300624168358453547814699031652836311186330123610144837365198801989669368638812468506676507189879844366674234839077943006345934557164497184340060541383018859454096977189900499669099819578428030516733817296232860768147813431510552396729172498747456080042432951982206136858610239512039311848500857535175640030370187135285865994091582108138969873423937946827735101179367974108358134277440118283936980562369013918154328081381074418691411213487676877136463836050569091957101636888293877341748136366205128927020621377249114773589995786007078056523704378847289916811952155047506874901977229870520457140323788203998085159387027541745515572463256432774374034307276921083372321930658176641062146396151211089628144023424461370149789639498197230465986002293491831395980951484923053639595270780770482567593115907348595890334904043337974692464190559075756026292798690493197735210683189771019939498846139366436349843929118763580934468585747505037788753467933934530405470929710353034921870553890712680938864559980321406121837671747062995375816500496761237817708630339706082760475230958586110769936338359138971366712611248227379980603633786531015867912644252354239221701454594006096595616722176790099088713965509194732664381900226498801604558376004761918204968549418971350808531843502599000434017942484490047489050312896101364956373548935063292302330179872783762288271981868027203325185189746906891426406899916310243747466164422413842926156521840645596402934535763261540197664892373206819364933306954049930618542790719983939003292556767719340990153318722709677987818399797381860996733581220402893259153811959116575739311229803102205848844531910398643590623625352746588897007669945311206026496375493626412656387612335661746180384721545754894005808105744944612408159052090728404218563495404680303693099085107079377991813949520497706652987649293666623988308396562147000648859191944847448591745980965282525880236438928196700290845715708255454653966432389123489618655190027516806933997177824328718843518906990544951447928577115160324470705734269863917247096662965058172741693957181007994762182353181275974206879042371350005800480243017839383351438197185561012404327421717166739560769427252357532039559196296574027319177429904603952142108848313117873918003291464936271144747582035975880854878582097800322792606533231811170794514285073388930783559010683793374011815241500696951769558392713686698582136045225442236889333955485377925141799751056215993880273475518723494954503326482788277312449125424223573507049875423189714338871766120491733335957674557057692806154194639536525416692991102974129816441879843855844994506661098333065858680298699052661120013951324958812186497722455602726509466680472783619861374849212258896192738742625729332774532298434621061823977851597543224487129153274278524715127685478567040161625433228638362599522553305468639430451544594444633827148035444113619245527342250682579558777694455910753967367048498649263503817969730709411099773676422940018993139382734931869322868959157328103630072480903993750045577177625567958364835004572906123908940760922241234262940923521607414923244723155761006984942402026867909509320439158752164406773518456457781638644411703102440977353685948589403321625913202434792196643837324515624330056998153772899419345328842432818129222007601176479893249385233882943653921906733541719523684682670396926795245001509620277726451744461504066093964109373476199216690492607640461189090129683468456857266638006571616354188138579456644015992890405639697648081807761449076615705707639064466600188609175145633309044189844158743838472245831543776357595946617097577727679483548998994318453773600294634666104149885949950537326414543975885781895599727248333350602470438409515237544752037563985412421255139384070782786184259571097230450679972783163721005353133627791043105173899233595626445851531374353715114284210100578483901824472403413892634675491125167408234130813675056805853824744417035958371490243208447416430574933387303719496519405737450344325595433085903057103427684836791963390982260047501286274703717507904213514773633831892912726878202252988857031068630562649510302828294108769527829191035649086831994744574765205977667544171010310862846579916944711310300977727944738514286449338692600554458813797929346361918212781831770377816781769084902833616765475046305797722528856248998603362384506659647251594577656326433488918221626816503796015638828991381513893376464973278667108612676827526393151372002227007419878218519529004746483762345748222140860185408351497859492504917246540855156914159663443268154079249892842035573369341282927571480336845636783459983835102324121183837500180608025787003168522280475522407342350583950431044946290627396253848975603880542548238882466486955997320362798597930744969057851061469652487584367727914883946746388512909256217464262368500003411288383485357029827803441799502011408682873038673808470330467000793610002877392957115738784655362563715834929918910476404249218491679749308400554172424151205691582217715787537565772721067649917016397561085624683867105276039706079773466115124239095913865481478581953599821263452806476582802738891574721182847182012522916363523877186241301411398906262497305775325074869341574849729156372030055864580980545896282670076956543789023059110707887148705943505545996178415267767108974534774128049357824375346607392699156462111167907546242582664073189969422674055863480423671560513934370693076906231977261017094223999143537697963060522323145449424145197066865948443662234023272709073079437953479181240832696323903961101479261858207262657329100426588949951004781112747776387571374664277233444157864691152580468623774045303095250303066679987851339368869466667053319319807606103484738330506743910206328352413337574908910850158439883512021273801184979650849942211678115744335177352572766729369695409601594317599228279127264767282890735540507213910487017214574178825657992541243943229747825509070640498488995624813050977371490732947013799144852508798860023158054474953026402514459113432921560275033384307839782613444396740049073420628107945104659827708331803013908493397039790393439437029222496375145113645706501951295142814181540743527592785868098672153717599784762417043218151574619779553162207270091036345295461013509467430514707502590040482090049180889569092775277698221251687279872418417053770894628356107590401038315955646238059277535861804995231578604325127461661886649293981332032417325074077806556698670580824355036070755789912754505395395438461181219216297553899292864575870850568144770461177479578521392138668680284302290742320359193976085999025435466508119581690819952449455620292270039942392858333497295756821206064900216636335639188312447717987510632348178174953077483764303287601461935490600919726857094178786573170369958681672415233332256556935883876083217590405751041071677060533783295836722153195723791672719325655336460268358825841080106478275088662963840311637454497285843998543847209292586936540663777866483208074512427274402347549120288434000589361660133775125056587948050372671845997834286360422113361543827230927895482158177179023709983791098414656157408550576036530756416162276290679752167628924376883512702867764370139481465163037489574456523259162410815913862122493655228848075794127676099494867094543707566665922576487370013544021988328334927560301981572892345947302063425483859346482181690669655112196907372312576676009996090396915732731824443679574240465849908559549432588160549275402795154493556124026866847227546501430306383066601437234692187051989104025616084064006995808471207500360146420244204826658468133688900224769501235062008281935731405765389448229729265719148046611644968087166478717955376161788289066196241731412321904675334076663396789593522773863744798242666087076658787955785322990986279583179291195702862724463916667913169437119912726684490262516699823072716473296063233126908436532689383095952143702501636872296624226830571955639443279199637157479230568981112718492947006144759943855830088166713938673081228067763158647168736419355777660684461499462830352789934792193055939125809349629787895592750829769361925572587367638702869305790663161821691024405408279016207299184560585965626046489835166546873389565653345006203975574549227190400098047524701283298957750504106627018085077836656941346227383310078954271595461130301308698470563891794328001040989679692417982561945964827022099834401565503999937809322720299713067846575742169624349015583887336320832741774532503065609471910275566015807132984175314664668132406412752542541697742114233357957802480915290539278038827478308666302952011828695656920467348934368537017841094341556479577398340391847065214219404379815611816818086061587677833073107114165977582886966199140612058553671328613601302683852773389027845271527675966133433912026376475117538663745116095003747533126476400207197040839957965851636285012674810044325435197158121176833640238493996856851646026751404120910618549743716414980931262100890135432530711811105545217074613880390171003387552512317613649387585864919947975828012464464883832933162210066926775866939786703726476676166996250213057429229766759472036734774838799205710594946817426850485464506124785616586940213793196187010855536197932156682829377085357681518047429049753218755490606143953714777777429493569881997572360139938744173681275090204945255547160827802011539628599948980183322257313805598858354366941319254181203989162791023164500581846561793963435529319565990263423656945908248586682819449404694548193285628785817916095613316288672181349241617507921299428498184242012045737395248280982619880398312980489623549321017593589136841468783150627885462727979083666561695240742492575678660446132280137744611877756782417974574701160068421774880357815427668615782330305105376703938282695208522672251202924034665510423163224262641457802479002379794542145559646749595030097722644554633665125486146130910002127095408907355491192989514433706929557129213506678497990676637308930367000331066001915072804301553815440160890779947692819223029960026488800226938740063230373265964740710441062223163011519079362154246221843412797868300504565167342631567681376962649856983057396366410540920244278254054397835854004154047128201832208924249532015427290424356989193381693817054986872626477508990388189262351599031109318351009319622995082160375797703774407351621837309104451119229497568971634476908944751056474333823503817616046996786112182824608080599792667378761168970618260854110080374745533236223648521605201474717807620243328255041387274339361452929926959157523624659424439713279476294480247363336242174830072404335006647269348337753875379960411715069049315753142119348201882939753806188245389121642128732189656979029346396555828089477933316551243314586684595815430238977484704333709500591563454741707579016008393314028026575802715185107615252023310399989582536281863590689210736430540863988889804561447476108513695680398547460958762862454883416677012685087801502395641107054132203687561724886187787816981426332402953583529864696085991747260341997025912313029535984442332331965071914084935859394071607765589112293721914448233159187431377702711089839898703709092760159028039035023545774111416789055156363891392748557493489345893546774331246026058069833246466977872313359726398077706472706161814368805833435457625295785749958108054050865593154726942369578436732978408123717960128569569015395837655780829808478992026237436968394770217608497046329198953308634585421817086135892292644575850956906250675832637365472069273734596975972910626099570129898095878692485349030789334457793056648365174379089145671552289644843834257262641085055102391154102541894936943276141028216409616254261906481790812718395567992497459161079181325763286652053008789333420127902922382719117567720491357587064076956851932950801748208696080960960511339145545513648373046241030546512614674013315144871174646171573503399960622495366868822092007766909145154042647781428807852631619816654554004927368547517053999698343779483486563250217674528035943590096802165032020503995519599985519916128829187261010078910965614037938862913947196841968716672389403464271969557413989501343623542696649511825454412590374019939481837684074267105819574358237525952540870337580865795057460876351845323018155225651548201528634221153025985804348497005281047309156107427217300275537614389306273776047384521881949628519066878463021222680014355694851686393986004644911450391622952087770651929691601319134951354696050227650730315455379862427489422218120461415444712640449978150526242850639450113551076020827771282584810676214504340310154040448609805727885748013682708167182999123108943651634109501701929029545746039826483921134301211346123405213045929292341633624898175065214484754531960997435570571297038822562606366270493964003503287496257169794923409716432415971149996138786664846278875484222363610679317745777678233129706797155367987261106954905711098104987628663262944198380242432293984508150599757640270960225235541660849074103467434189304708383659498270217059840434341901250814648813318732109622429812712605593643414609175716733046270395066898961481478329999231226798821173906409475290956921555285857568614278956844781916515023032852544943335583380617407196784452559600688649538821580229001798346641997199382272957838344093853422055127730262666286154408702255982290028099482111960508732144174991629089976445297667308899212268851171042706350401100396587025646782584222935296889128229038486074390484196441877471430015454935844307665216565292353209236697256005844678406080530944842710464502228044505024163597308677384035423123500248309440109149135167967553076623975973135676188742154330893752600361276656164209961563988009181335327525921945071956098573656703800748116541903562130799873533225367289549871772445055930583540431980923031176152643977256829180414603232185768396641923655649352363180642283544490111083984810451337794048362775572983538940646153769801583145844781050888852910965734615131342973515252339201549909245114609971213807561162826402296009816782111378361022057013338571096274241508462791480708794493976758475560668612880913922823986345931010404711453802021404896994139851282483779642381071833763116714744881519536175337408003501500907386662020660110768321311697972249161728523053594835490475651755229087224517213263902728190174261928854777513472184573094728551944188128311454488823967419332841591665037241912430832991389540862063352974676478020399608586412486595293984018044056199778499026539413032674378421589382604889736540214576866839082425449302681511555904481059376121258195560343840168751741676056451336270147638713309011667040643110969601444908796835888120889020705651009510736443441823085116530083721281020037595696377739509289899442180167395155224930569381568276066555608801240207337192978661104182359419563527641330307593002459168426741791741653481612534425111322436446709004530918991467964772140972004570294997368131774945625379780923329647185835542300611740747208473183818875648948799837705811369228504431782320971699021628713288354264935220425124712929768748978452618883367617259710556783543515688920291642350026279615558464434413138609713340128733027996121746996557538754019334621353677926820764875078744580740234918824544134173160622731280349842470391142289906879620560377537058283609713029657833517500514215780789400719853687202187052245616181133164890553922477573460153587368688250312772821044328503256821375019701633395913613988308993103514454956114288585716087682354233392745502217095193793887789473150523390940616143586924932331766234013365189150196386987609222956506406784205429896191781072523152775839328780223957506574814050430983670235464419022154555374743070082491265128842638916543747099617810622934556637441213908826126186699234871753300571901650227999647707119041413400490508344502472810290693033255059932752657022212665874775445794398127422862961147087036720189233500461405821038620225100410260905680705553517868482450529034612052593335355859156385089310139035556058165264878399318649542658274688005925026854768261162985805097291766195276497944208152637475731027576414486844466531241189453019668606410672312344680173195557565141475485390024602488230608955153571334922712774943432105241788067791641866240373507171699725868349171464528782131740746792196806306561441696220030655337012135707790375305695177184800254803947749380342669785785149878035672553442575969946909596565461589775445332921758422275271525182974790287429400260715492482682016978217607239460576456441297651689662916226351495962966860664457528555219069515413181538811112737127045312364470796954502008261247988457043544477045184403334273347326062154415233821286392429554160180438259021142921089580563938607422817675670423870065043766610818137507231233275939718978526038571566659885640133784636015945795085433701690613063662958839891953189603889428994026055410735408204021056684552175511861352123530458692800340583893337736803247554659272420620160806700170136070444859792860082945616666944637904770355412823984607969787449869890685257100274734941074989142996802882122082527047459218129144308625843596982795974398018316101319422266426382405826836303078087811771231211365073499674577938205225444719649832099496936358916371383780785683985959795434028638926451113774770990391000894479626404979925115930462303389509535815019972426922652989539741195618102036018606478535415255067124329276019315377487786927110970320487465873689264213081236676085807874602871185858157431993252058950836836545273310512126949116476780756612163244424193417945379536768709143175190015729133226704706438261632766183565378797072905328620238604732651604034732554973167984296191728849733722666259266733388400485033231089251941153473954338546215647675302720396232109573747488197442183097210855556740498848205444910720563104601169626405393175337503825612237481517853954442073326717628745787954844429717222624787506086809047945099464693965483847193548550613308886635448097692940218206556214931748822750598364687539393699729338796449942672743340123207775597365113485432601879393418557219563687820861357831785048493290695226523489961583084131540348706664446457218500423934747063865623445096988573403765038405130391191632148836879858872101728448394190167857630293996540167736042882079245428723828642078392345982384614777658197586681774403738828624421054719540454875314802422486755183551213018123944429883503910692054314020366964854158698052797182327612906827736169657881151759055119186682439239262976978160610729632649435759366414357388957184195385940703188454682028572925493723256825413527449828570207320477063325616029345895171734007786532007174252073019768848058583722719603517405128506132376866505208034605633829388013003730522546329532051514074027430893951725867411358288131571515613798814612038679538497004344346073508307135282980646760176901269683486550579397640041677617385731468698532854793847920189367486894041835707896706921351359173995395438620774746174185312205764794741870316606015820032288548462690169721137247415503591278294891807600662754955708475129365134942431478018729216638692786881824295012394317467507386010278449719909076441289785136764220301599213972615789913380951275271414546051452840791778142781436339547709291287249242978112263576485130812226887127098521079433218710898056280783450683825151633067162395554085662308138659313837390392588711825194578667800179707702437675116550970638315175391338975105417634298243478888240214698512787261596625728394946206208236680262192414994035207577085893509427247658761986622320190909127061310290439319185170078143985071317387414263296574825615145791281798976299934375759480335119682366906289505898990495951112983906086613943898504658158865310030644155884756136927076201425475419533836918994083761864058870333171190025285102292887546547840253277549973444859653023688464131171888905798448423383671398438196458769293446407969989392363655067852755894469938842316865541712299849485083659537523824176935689856609320619667154992945209561653508412083735890916013804623604215783197004601661824948287231967566171123682598195705488354561285792973989417232504404295638009404498558503013735732975867964851109246432104549757022611612199386825409545911518164928988879501681013462378470561200402124684964702397270577850362925541897940628710430425926316127818432026589993284742673635147343876158649305717589747988602345314212506986889054451457999515641410711657974607380011972158454394383903545426778050250157670670959261925747233276612358706019006088233110721423996071610509027071267993622957672445312720909906298092708748025170001383591626955880313271991324880907548110989557360371987363642172545584724518200773557751822540123474039925756167961973198814306715150932726616432586746865355027622306987763301477578916516763569190358897216374458857494754585558667256368762236640711775186072498431866024430332612316646351098411765430647712704831269294704359425301296125798232956427261324183493135748154585920974409226649923657894123376352661584720572770597481846553007478046692947507330262904475333956573970452167590272048332053913708055484222904031278347967319917069209211423890524442695061985003681599963301608620676356560594383885714216920400692189658696750809933544523629075332952656964017686134544648686470134018435497980788036055546063528119397169827709864684348522032704597930343782830740856759676668157795356406389737195025327054042710576939273940016529548703187395355238047514316502116717133980937861652875141769732350490059663203460405398030950303073237907005314722926232571120775496443064653002296918749321370562825880122190896303544565990390675246946915221937301935847910289882120831062428587445675032493346956449509329620645359995877252449966176477109618387348687739745495388088847629345754167348695815800429920626994471242175648145759738884648541643282584958424897508027404910150428983476671633008077713948750738711814969887094765398191287559535975751597339873577846993517161314231193327416393532329856949851391777104216418829469023795286460392866004723605526019865972380119687848743558141513445639714398037730950309634127249167351636427932093809937652491180047660019113547387597616623052149218278639146135241530512312722134135117613574761218300719924122185059523248334792334645174495623087470673671275892754381354844883849235721443375437447979697025484222891729219252203275004668390962279374951272381719231412963242818752533281648256865675568876569071967539311213935325780991019429372561051421028115680366482845423630469983418416647351893929119686021908144399583090905829882057502437890406126053470994659935396274279868832930941221844026698706652677308104290115185660254021072820018662579226174867551207576641426539706266103243902899270175541678041220628248637291787216335500445945521890435457252603971923983236969969855989888647644665144580230749048087980242539865453200325511292702295641892127516469492187690693687114275354091867950864469205978611045560129036832571327375741341805355243456288019293979386425981383496994664212135219383112479129459074041241197979104626045919762460971022841612086060789163286784621187095150544012667709025074946077349187378902144275771713818384555614080834754802420680976561021047036582501575351207245592797135127504397067941784375139918447658784428950093451479995415680750355024326418861294501494826084802041319786695155490378399739782202391991942887016327449714381158205948940288195136905346554128055735284261272453180092486541509502136376217806856247302034650601054337993902802254813981468808456409127728555275356555390984511134705095391459342969699877293087916704248635941226485486786697067840825238854636825013404963422826160726737593219871179195915215296745542392086695801512678442695555675035899234097954382128689921888638994985963185159401118649640814897846298820955234156476091415173911251038629594196330848120647051251402924365187358815399403532451336492523119697582352678432970307021104656701524970022279303817957529370183997165116761797880910767509100233530473674558539935115839781246675165545762569897397576711820134100325692109986009687035174631413133063563196975732707111204816841806911803740698016827428650498224647887737993345002578245171389221960621006465474263283983014583037921956271995136061374682737509096037349310601049988225057274629536459070708442078600318820789482732818955493786241502923767900758533068767763052806667882424870993277662471886374817350008301057728720200835916802970833323835479128063737259753853806889883564604280259520299418490274325038331557940226189613446280352196268502988657138730684971817568161206056394518834493019783413817730137599982999896938941626510235957920855378567965538450527273370086429002178675594780578360096761322769653203731231184343537263870212718111167379533945610758881169578280232510059608921149299329739002623394724781738990543133197994728509018510167205644208392883362082226712170844145683730900295230029885058628664885731900728073588223577539811401989189983847200396969635634827440791871200642173991890382097124650351760427773166340030115620846185141424221989172945885894596841817524170111533896537856699721093114288142659415067091096371696422930604188529556136570239687309631449468891542629470163910287873067135034476671018107715588594569732810358005417594196720966177553221635771890785717831251228639335664108294572651063531352265521291427093068831220202226043917855671501046017710445369777365194274646712153787209798836628965761496952696040488133952326646842473453554469217619943731112085548250827996909078680932389468544695348112126414519298639882068066298745761362572774756535983576713349882103716279694646649536366766872938332091092366738954392848266374883537683222149079890027194706334530280359700983611942747306177868116774205062918117229204414850004282880151735815899163097219768171916292838155239707486647577786787495162953504032868868996913406451665266164933228985904928546277294239999816209282384690400755071314475885563016403810810611685732161653988246853836443988952181733217658114354736274311046860290047116914413165249020269378244936349962927809966112988949955571285441472168748911967287949370216915174829290692284363135681126720893560162692266363772885030827839539450116295437168015211365979721444015671018647259477458849270987335347989476283108437079657652464784943445197456771840039192640842427301274441599043212529415695037900459052588466635316321820673723687930914612816790007625851087886643646752405801667863388134709459508340019584587920627565243665992537661288716531093141563762544316005418237939707427760551706845520821528972106785951789532416216541246123852826898389168886193145831742670415522075273707672891771379433386530057944931786474090178882379675935568179897531072439244369825695840972666783809109997135710428831009830912289155797794298659657638637114878889992349038800296469250666107850005866510009413114927854100718510090491951630166289554055676294773899813041141581720640730400619666993944152727824207798731018743783762768387399548030765013843383303599814881686582264372062052628254078817303639040037258487982410901571153641382051785243786960393166235828510630814832169355440454029348153260290504352352036131475154695682099939773724088828999618361499023870394317217580814453566558411199822616341766350332344795342681701442600401058753712756193737143040507968323952090183005405386721288082904900366634502072248326635799087778813317170673266972967915032438050918361427571024868732413695104557585965273627792054375645421791124008584356131239428496201674708412750035732205010071317303835614628197118209879075499833435776750840677422481630993242883323103738547589731786864540674840282765147556153655979265623233833235852511660644458883024654381529788241325262687631059026084704139826589980210228090746633061434291682762217593873043639219951891052206113735105361154466223759479669917926215022227140653484252830685820607235715847717783220456316539478793006424713410750239489112102116428122696408005290532184078546008327339045971073350739400203524673878091162172912887273890190864998921929808807314671027179793609984763586712301037746293604884084721892794325821082107214402065391522150309247256425668931439884301551363416184398973030240211163700598160708664673455029292537345642778209143049888512500206665931253751343268999502534134667181390216549466200016135866685609851839840204937291940767402476525357231707068232664080889365050850256397270601583775381454156631500954193363866808494025382513265687400022210617871041663766671836558820098776784949322068794686195112906529196608351190978505101853958735634200086414513293561986048637988360159232035854641437042525698455678672252255710114316270047525110549915618266539174235343619122550989018436961382018904553138594400729663899674810763686770996223585254957889007558261023791459056020900496204341631980630958951777957915618357882021224444166529628746840104602106009510727055060189449298757924251763600462956890204991422361546442025135478008612946343554286650800930083400311131975560051499340295990534723095669227989460611626997380041387627833824119459152263748385378137942749289428126416064617234188519876910206554535325561493328895480751526623964200529947242861164013392268652061833140177028563057003891010426434408326173302707735119351801352056017003308069643022409019638840125325280357463887751302284743467944575518262705168172616071246579977036874469822578620705067782511239042912883884208312987983401039161428242017202183944926575530731463844875102614528618678674327916886834060345346560581278628046475908605836296560898714131060968138788092906345050484542524275626990500154815719372534120293170824850300536968215910904644811823572918034006751290004067536231083062947958663444614433744264966864365998667743367125050338643646772024353323613739727929448430706970981806463443745168225948956246779098571627956704134620037390092954668362043563960289848372467207352895655805891938439889971097879416707301984279189416729699739899055533951355953688222435348617549174150286209207503321930945935138637929923578010235216275862710429671382426948674511877284658499840105139536327449575822074731239796830576694856949992322958471539736956631933989493323005158293029644008922237163197807797323466367191988186936928787330251184394092357391279766308351224677544148912773385322082735746373048087795440224265479444955481956850379922243464061520558876164593831344937339866742336998666640130055589602780791671687639077543232494015720778516466337715000078932168586401694147563855340078409707003393877959189025824757444212233377712404817137126920001868641230239257463528022686511895307507403850347947932054039143947810109985590067608478510040307542360278795060384918682208184013942746845274040763663294570588244518912687300615632967161204679593614110608166976457015602679263781943654427786468054204145778683966002673414073129668674532607358780842986646183417250746950878405333990514665083907648981018455656635725138154574061190743044067422281299628479627487989278016455257968462607425448406251777254792741861033331756149080502297103958213636157419609639551747785159780333470439972971057614730250778965702921575015920559553795493426408967414894135734054388101028677237263534641864852867944400108302374710620749825507748453538885291897698715993579561611750144243265772706867958990860511332200600105986218024704966302432331087060929499192322513839064606174367577598977496755761203290963154020121451025676789499949817464835081861826399540348731032491499374818897520876135156722452945511837378659241624041932167474882506831341634583747356868901512225842225144400391135217628549572374621093466568467521248168331349364852371887395026256314619675649363546967240177634145743454277834044850037651955049375185402636985231767855198400257608862500413634803204229114579645704851499441068069882507147036147797271501116215430193104019174020659818074406509253825894319030518228409781464872027631254527034615740720127421136907265609377961528766916517962525353152479968865103896441673073326430460134995256468213636653860522155863629698437731584510234594448115549862016978834799047818139368367928744369083129683412032411234089182141858348282933552274359143843299059241463090619370656903307063330622164654508855662821388581176947692271066029247741902789116891402339208972771423732046632487739087896664966100211934136045876707610515512688654687212709937747298781362143398121271422359020542633446307209762795036122655612796636859968415428709445796215327056201692961345365408722546243147191609059128482166413386288810601666079498211472407520022243844466167705733696214528777827505046086640790600103157396516098256615437354367311317167854383799000576143483843806577265322287214001796644189715496426355251183399550456520273054209776988237317618120434358508978369896059026354629259292879897407780893154505551053615584621564056159797759668783824761448046874480184284828981672308679204825515098114146367149431281262283711570658323635732171007074718671092213624812211652118746135913712119971317424490768462039616945329995724779587932495306381289894840640898568133966693341242536835378210929335335841837274872291490667561875608363569033058079256364765503600349568817300689807450227636789009176617437550042335782365383843573345646527877887243845046050967328797565324365774458795968434009030058359706191007837413660474940717278673056091964038049318225900781918308599584407496622945779628547893968801009426353394933738251326779172502501584412505630807989901830666473460489278777826056608054765363921435942761285564508633475082147456937602767562098988009181505153138898434514548752151150254536088696175806995721165344879872238567998657286229017704124250962613552350875201333801640020257245520692704546793314584871494492764466867981810852047010035579714170379983966876214721431992018858402696202650139317258404647677107736430240135342408547557360356597517573620107130934787727175831760688061303263458368050712262410356978878874100012685291938638502045277433779568931556969867546370901950364333157993387783791736963989170376688139986179658096886598997284748809961217856992664828728889608661759891027989945887485454325995627894701820492331116463857609717735791776775754854958885222376214859991810449717391355150397435082573226518613943535543523083353183957303588575511899089822775756932887831581664340490567149513365415824365298302031839218388074445169478331252551761226553516548349546501024090122730625937779297053746024497829346961592018377507406850975208889661793452240266592904898545470792586113025384472320137550157029663207990237278538193219684448038865540068142188190597852101344589262289652504751004142428001136351671259269036577997845064657203421989007774672888472744486480863796832503101000236615977629676195432537939328477348789304845597756727324700166028891378747361359629544413748788892007232366958446632116628799160711000664153778947035881464896747489962452863932427709926854290403343647061556080286229420413730986208556244499962472111900681116639307218478122252047428290645650849929917794487500687954323822501472530678024000799516334535132062896006719206086047214341585940157759627510385225396515211650250593161938928059751771766751306073158717222988229821332319683484637669058284630414991135657726503583567671022609649900419812353673859052654290775163467152560264122029674245109296819192989375328502868267488057682297156169079950162935304545500010479010891968890637666399837619201665173162735042421314754507089514808873549198560982427013714207097621497433686679608815906009898463677961555037485701968532786985394253633402317808667725828047427016181557570669991261246849972812834799955263914726655885940522808877693253551670948754325803837863117271671616913859168354370826625033854334171777454230696147281200623185491933296526460126128272346458293433230193475846021768488049734532802857751104131405409866180356024460799556408836465964560753540847803527462556355789643555185503314938699793063395196226371431920548068307966435764894643823313960517670392292196717667369036167648908555161763207532394808684168351415630821952382232089715175860161058710750510375217924389694032959303280054488126353749368152412770455831589841014341011360916632604756029290879119772241653209494883338653045190649975871458124052715993615889073806895676134874112656067698150008776894799141242767885015744262587958077196723009524460111841640337817251843497716449254200070118873986271018269655143312009774879782496539603697401122134479319202123369180274712399993587475291125481343584925339800558881511293507994371994795166585046453852254330739040974817896291714038081663613385017856755548585277754765073607794329023434594399642314132282483374858532417588746608070135920118579166734397498690457752251942124656037107957941441041828805322364956431022994173408231961821998501846536274815822624103855096065349478261769413581051817982986209175249994918245409886275371738540482744725279008662991272191256793200446159163457341548276413523836724143413899176731352086930710797352762681652149188301830314678743452270893967866538204544838161328298002834533244060687858597624857060181022893611697096607026828994609671557204067987973928987696066979366001585490401449842658235915878023901612113242790708524696634244781292129490461555164230461576505865807110295270000215413972648091826124068515049212863491255352659539278598471582840078431987825340905473112342327744851852045233690657440294666861432246097741442182219804587906725125396559018375228932268152339607917667726247222731108171349431164047962671956126309860941500759836511655623762625015693650429867792078610794331893405842252203279051579634373790007165357679639276549196031636620886937605997676979860860480965153487149198234112537323747968205160364162418561600032469100368223743613631520168096456002729564811470564371367683399382655882768565335400902075117716170789974362514579332739484698955056611801585761815837839144837668761096458128463426628828685873261144183800797157424247487900834615378926023186233369638212396989035353959340192240294522120321112891840774242305362552227674607427476800275816178376198412778751958149460987026426877193312099042984151858046280846879406517794839773110997397286646320277480826447861071329531754769470400624308061691939766349812093547174935315035277897905287665677462087768509732064434907023410866293898460795786368121939658931301308447724880991757847669917697943819121944799753281947019161121548817624779136125951288587413993396726374611750578693802277110480774063456029470480870598477218260222332949507535008801630696381810269210927267404517707562293848657446993936140926282002406615400820750093739345759241959707908022822183253160475437507660891330040717224343242103599315463645284816031565801168405864829880753102612514724054045298370593644098475645391461682152489533115338770466143324745907330658327272931568302069938830941689750997351094838344336188968715970127480810767267129925411952956707079606276310290856620581908433745170947739438095836599306796386768631326469725198207425664734007806907392046874089709445027504335122364617120437547873691027651164493037606593697427536420810773115343359172354526877181695339543486038704111124015554639315467384422967818889344822924223130345692642525021570811956316351554285503555786539311656253776672227095165979286079655366820261088233257464944342993280491333770308303250158640788740659521945753896415143562706007814137118644043871473660772323972504526370933330113724732836568409853091155056581692964107545751288330641945544583621514336757113294795300148418883137064921543041430854595057961171969105393132376947933107657343916119023076001574178912819116394128325235511850015717265500179152969141518282940010263359859055171522379359218584663018272490327213241608986885207386870115793763755473098632679351717250254802007546660906563900593773415117717108728880796737744918059109707490462453592193622960922264475836285834263047652261189097284038166172823052583260371018040265060092569512396327063519841622082017288513381196514452449634668269564123735377641645748979101664935327038358832600747562232142245469407257089496057523244751923539951614872658458141812556374139928257907247291712100962477419053288302953779173788492700891167536486544101854936222640654053389103615608827114073885131205254650862598985745850485791494699997927074200410672887429539010853216910590063152442670422096549363968618409024008845464478665857755146694038271000896783272493362244517340986911235648555756803273305839170651363131785478601320297459570758649476007236544772483756923626987753732994529121231452222044965323866056658799634450013691950557900449554366797384149080046535516117707780495438470298038751416675986499918419086279882347199165423638164427043223897613615549271183034305415406752500856171174420832055980205731158612425497592381311574867471967044195141401339690889644531801669525592639274865708367001068293583651744714284643763097995721299266720722326517529767223759812145419814253584400640796419422067027703510646061681587397991040005691992467426730577348638367308830101545098813638257223582589186697348738937896887898239411420767338401575925048330276018638358600504598509846650211312605693662118694845129235361422912716949331493374311765629100018745460990909634481911922395961594890790436190676541954364833821786528086254611816765650871865860884587564230464343379713001028832648088287972083256053277266002959421386395448754839657467774933842210091377905726421174008922694415584905796490853846899294092694204438756857794412687353719972958560969636955451790663428366378735882563824379250252776057060250530620621948093456807577273723363655393760787689803177797635936287375238609402828301866154290611159952110433852208077823673002442238723417747668159985887314739369829995036209733510458816246510992774080316338606925149208905313331915561010247020321687749575727320579171170853174987491201698710584533380908791096784686876775637695355541370040352826362297372865106333569579325407705713943764364160518601060857044442257790403245410709870192813680263309529014975422020352255455716339182205961980009528554103764804905399691542702975639754972833599354864439466775481767540706391935361154642135067685430640029491533130147733263009224682329524525425789787091569165937572504339621918053552139950315755729874295571281062485516888422333869207278408815157040927379284927561829058924032053480865611027730988558008602122340459016750018158589537015184899935261469453534599236960354876817727521916782177358713909908427753966835294343349894915454523195908952631824740160627384280357003867704142572839336851653740364293265818989335445185288282340766872129787284194150893006634532237941023024375161488577073136210367612234647573444981195005343189379020837351314692457318767198913628682169645637635728791091463531658456023393667991508209658738579236688033449332479335196534719193816592284664347493200947927810671538860921938532740018007419149536286457568400868547908010089396198225567981887608811968371645337489743720762312187314846556615823954954064635235993503193192705197893763790900516969919075493567722907452400465432423479746303202403248218412008850283295606163363377969473923802123156174147462202024358319628627217759876973216403147219674312777416955704683729770915034007168135134704217595373136195956872212608920862078494362661665658128351992622293077871722713688483920117533089300045014551062119053346197352637723186353755895820864154247605734812581103363782015853722827853638755439876402946809351411660516615056632811319598675399692043042901373422395277230323061142300304083974511170084919976536560253005107103465620374671107106133517352060028442783211452943342362477693449070441270350395270287886511813244113648634345779347283303295999907473766302269776407341137583479126577666015105270850820069965979465982701265299687651741693590008154804652191454509744261101377845952695734946819436763928515313155838959603861323735921401646335996657801494705871812928222423563946526984916787205795526788059907345543559731312329481354756555978516596807652931500289979243670639687855272745285233296564575058003080102616505077369504973067957389016739655311792080605888554131353819596747121267030160312314646206043815431131738757533815400627979725498638786114087692694767523464212153240539932386835458259025187531320919572443371107513098105746999889079422552622765465530279345416046910417607976423437476616205212244215187302423082234369506034673790136863115461360833601987241025153264426228072054596342727601502402199425299531518478909016905289737919912643333500023321122472984606621126988530404097950101872133215833513096929518423647454179099704612831161404727059974252726731051149928562954914682352490059020663641826921921467324481195769718105678616296739510446179518799016831089279088728581142171991719936570247480385787437648973507513961588847220273827331221909476098430301042121078595111623001195586245275806296680496141813898672991338929414687772376049330007082168214278751943079213101663776493599189365484748994059145841377369309872082602347200236276726702049577180178707958596971608450185652127960161023027888395672548466255895847047905645517000193064051222552241426990653387753180944729294699776386202740827479534844310732790454709575560813892900284949492058008538195208785056759223517610763761532110181652998798981665182467875655502771917148599375484876539428044798196604196178775608108848714994519344030895571844978547594876607603661875821155800038568236551906566737391667603905022539982671974122434279122038781013926156128982781171204790843089725040749354061294374822991564472856010718443110106973038800878187592772958149805472105487707861886980537341947716840522817276673665080211997661190372170614518677400210887650651419752347331492197994304099504410366460003359903990436709104220838523829555962366480417929446722830205521586253719802612668027441759294263882974571142135201217301398356799543616362199363379076850372977753148670262726434634071393911540090970869616060937062457539206990580699431593490139897595290607088571712410375489972467005607342002076784561183014167328147405493735249542197644908062205044944171880293371891326660719464457956471921153010601624756915023186758705826147991912303728552828628598064939275126332595365852940266688638824018643910751978096695080643124591896458286687294792337255043804797663047629873482046442368323279127773441659809785264332359180716873200689878132118033598107174337433252693612256475689886122925643644359404454603423821160327223547090997470100190886320952471399008335430792040571146436987081622835646815949570243162318320902732877311612803975555962747392977913361268500486154880295900695623905201615385122008048259280854565961104773568599518432636445481603022189243290993546649718599570832899207758781824966004828844253717476016144108782216618450541196925723233405110536779726871783123943119328133224003657648935810422795863836808884328057990956078063149871928814104851084316590344894887771682105033708721688960678539892745841618783081891926441417271946130532222455849664346237167440110475712996666444731199400760297265653606954104820283089499483555389814900500974339196123042390970196152345273645958413806640181546157489368984924187945950791873071639259615699533533176549699267140902946056176985440351788051838255968897694892620277261175560431746143104371571743719270138177903750424637680805570552276294342907722613015535761343336960857359918673868460370802751454327700985674119757363325071352010474276938791641773185964076199007851897880140567336404599491006210707354491835774878396443102968103211929421101004330966274141516784602624043203438275393292468353513193546687262786923885965532020785021469456113546194469614290095252599417484518932861124380357678706584872706927911539934229717296097486993013529388156085685295361312229878246250774191653315539957645198793493499029598520726811032318008614336427993724724953615095372368568457648132463713570019825117488826038600709067964486483160523809597255882326710315133226316552932711132223574060410965832460012991871411472457738864811147549290489883049171382566614101138753748910450154871267906149506541829345843510194594003329311743716602286442289593637975947603454909733036218757120757988134813408965484918879700449577605331583787066978358070748339085714448285877077174776938647288126779739160238291764135550344819417882036255140089415358837717287258017583888314314090417547208739086591659567631252653383755914615708892049298554425983176146393378299549176736943465991849528440603360514888326382472174689063586445542365875010058090904452510442772844568254676643884068843812391177313242266507438767126089460947166479365806585657282123800810771945962639071756149747730057038014337861041860086728154914460234019016364671671408164205039740847450938548752032819994842710453513857230186419224674037353039364529720998749062918903180996846653028034896170237192055282739193442468272521784546349586711643996842809768875432955855369456934463707217098307059923353247094018763658872611226719131689831796057765704714547254210340708386296737186103683690381110026186546360583141584733752837743120206807610540531408640871608453853168542182504697939694326849849477229163804807410231781896273551031645926204356971544784602442961909560775554382179436696201313032908746979552334385344560304588933732584280499542212474770790495124213765973238492505091959037602906128547509959613395172387400369212430008281985672291041156048745531706902428066554433988038545384154345365744310318826292302185736265730905936045424874199196654255748042469382964802100036991639394788197777895251867428348531445667399569699384110705224721062097041204600137691687319858031789504546783793115252439411012804966738150550428618491570412843728461696381678958719124890484691181357950273155131828691630154101604641449556025856688053201138254713073227705395001416884255534194408493192939537331165936333297837107000599553110119012373738852251555540369380877231645748541565348737744582956379640673027892554638534737557411468479873826142598630199052756583799704657207200969509346792316816239113825739178041663558156622611324050755900860692446053565718020315072401688689127815587365860343533565491758717824644953465187573462445577097966401081207568993186104271448174225685697714267822815023051945359044203508989553090764912861671903109569287016879818459004326096082386531071943581704078499971788658737904656764179092626048265600289636850636140756658075372399246846618424766947682468465114906340644976962061418012509289602874564463343197571664160941715853696567028291533438493808234238135738474257903216428216284771365497474119574318468934135157541511123062204789474877756624840004441706521924319810395012652075236801944039017795906391761016130788576071246824550607461272191913982266896630679599329719111441360553391853193146292939053046639672819102239197673770360796676959658102996098016774275030360880739112434383804519926842963995393562749014133795261127663888352172158593135954180735979170803873367091054869186776655427283969166210313248887480385013590160138584832979251258824368221533156987725974619982074902290055559553601077181342568021960487818233961880010725469616429536179708396106772873398176700830092063941178893270622511945785260340211705277531717563604911837561159843047491579599045632051232178338585721149300364049307761981286650462336518920752055392556341549259082097474090330951191010562981144750520986485755846639491296916410103636899474104401717254320784845234138531203206752439916720307753056272115718379562278697004055526121989289005265725728487435362317538714504004381933501670747775463796273901883370090720433990092283870573048952993480958741440930113551579098777765325858096093334845781048022301915374013281911741770416594816845408485554262076336794195987006921656503220290793582774611042996619309892677879034194971407529767333930775709284287437185103757131862610449655531120274993649598835770926830304847363150326837950582594408752137886184982427786557245543155278020146803202943269550073268452911724613864783963924262708233168406602756961055389219371087625263729547039175183302745892334086122449198224218670307784930168950258320633831857923304188050857602154118039590837901112417459358148710226131567745591115996153099532312367853453165431612387864368834600292591116616399716718137263142646950971605519919646953995339140527760918726014339038997956210201050420618832291326688876927727522569889939152069044618447245097897028337157492522726872319032823406849448564974080766533318137589679746026791378453361166520389175935432207311834191712969008275861036399454927872499027639916065508068547918638679404769132526574455307700526277770220669086204049540136419798513603453063181211953879060283739059246764419623734463928992509394223843448600680326148704248158332980946252605525650911650578280090968905319246171553408510369821638522206080079286315346435851774767850561374763430690183864542807492703505676750593200548324276628281404872390923052803988628740539461139664069192409980609521721922200378834366517029921438665221394582609224264528526519735677558069212459192195705531139035961757662604387309016543345414594338124719940308046165106891734600338769164943608081375978157456684573110386569522929528216534429410772168178585609765564555602233163850296081006532422342856443275714419626625329789548005067864311259854905586570814396612316665533942193062008460875742440300183859742205196339982310008519754831684779732111889527197706300152649146941424324443669136437728647220501069499590885763105015221803709019811335809398203929356151378612870424839204268117432158159290028138532960942173674955126911501211635327735054232425798290247487082745508412765631579527866819069132434014488600767557092749264183767164093081732827395712335609582952122121865251888950184507905328090041773286759424741852214091640960543734764671525349283547580561056531545479670709785813566215980734551981154924480047560337318038351928149884404750744579955462487575451922137771417308567317878889990573916377549713113007600809913264553655239823898242570234875902183793655667676465661037869016008499182172096108362501911674718225977381259329465420817683034066001992149681964496245311301069498706630897828821483597834236357771525700248566087602274339986403623579526983655300721161746917638704188366584466702413622069460666113541731975283222200503312960585132642932466962031864961318953375082978042303866305352558268032885812704892257603445836607352321983543716461712446548126605104392238413360195967979900606581219584353518168061494697364329663506687630869165939127348275907468625871648620413059224638978019796055863659936515204611638982563834805509137099865554302506578285099371228596355639062385935373323611907728711409630298343495235344189176098970148937194022917040694401961812638640067528749368306782107904114730236369514508838569395418281007671130976989613133441476451701123927457587135694940906502656920450563256157012415371655533350084634669440344573392438048090100861471436705736899582966940163646234931741740177691948484500271721111670930512982595223108165904855988462514224185319906719425634317197809287286128179757046830517018599237037456248120582282808125988062425200959009674960756258410108291596630958338980971626089392864202951411198436182338564030279187089703377156341868047048364594785114961220008215056629286339503529645665236449711091819952417342141708838821150886745562852346542477755373058022889304290440513019121545275374377086367849968041471033400311652215805255742515362179339749199330842328512742808717581391411392227387724873431395532701558024251099962709381703410566763644424926671447230589037954452661037347940937090536602281549101336134925546431922727729382235542530918005092913453518993807484366631360252451995436162653469696995332403648428884342288619954730892997024475629960772535885595125734171970443619299109294427540990753406080446297062912948187078721547240088633374474778479483949899128692839453867778153952443817166644613370857474371107691683883350296297977520785473757399317458898327022284075553909705475563369909950114785411931502236966055510328977118464508237436236879859303702040521002812925004416901919926731638503388527185512878260833804046820263502289312916710580870867409313712739235414149113035272567480203393762981404247119557999885941685232786718524262046297569688334657003035275458589718533415699354807679821517527164116894192811859477184459656150878459937979144000654024306325837012416969351814530226539781426126994607128248527768730495714186652043066944831102103263256413483089494698792833060866927364220921043815494731577249218804220466677607596496049592499169829430551317992531208916189285993220519378743923095029420973507803427997679320184641383604423119171917717726972527789873947307858660902180167001662058282456050174686850617093241384308838423674118304090648146276761109654533514315425735494904229244877384511243051526971307567666683429621723747987366463778193309635156007697159149628812710140038036458068739258389462390952925115241644823373342559335725513797219670268150549195130830378189985321909836655692856206612152374354646169539221235973979997041578294948840165902225105190107670633375836984983066281537393220255956140601210604858763014396910548702020670013447315652623393739443579640858038217558556555948691058434061340848636368181269274296070103328226842963317355613509176054335485020480160002596451403149157062930373972897253014705090504561925953759799684299216259908358918860845372497918028024532095386862977569244059019475420552971549243935448006996524386966354364156586958062363533286610736704679401912280121820612716440166947603339639397059037069911530962853400580824525685938568130549778787784388909570973632673343872060679751381295972436805591099481135579302286270242264517520207777054417568607088909790564302403761815191509543405042235223298997849544498020239455281446462818578610363992400887138700291718616929629477465925867804241722649608271299272805719828947549657248496101318131180195262296647904823183156393660124652034057412524719246095356203673492251284635731512952823898714320643138546966826508157290490955778873991557912923661632147850658712300921594246228780589583696863517523969616769219421901514264763056886850310744538054835204000882090511975411216598546795453949748568186313912657750720691234240657413814652045758269599008651174727321553930936238973715479843376164259265745685476416137055636096655902380168481512249231367343665329080839559302241094012802549090179406550608947912698266278960483363566585682572265034743442680228092640132390227216835842037305446618594010264502277472160068700200782102873445310693771422495115570512426715814281443480361316516052038224369780465409485975891414131487530718178800988322236692168185088499446321635798061027707399075716073579315596851819131188183606441839122443006012609225917558507312848401571452633789121594884411163135035040292642033781502340012967254313930592356917834351185902918873568897301128565850738970266508915293797299486077130905561668599809756620338429777181047398806529435639626006130417821791196995033514535802385386165968742299680378943250747614529440058803139665091487372262178845265014999835947469654093111741759805426361809008775684342535662295240737413150572627770193784829954901668969225861026102007069827238892280743925033221813767989725025245935950666158364754292618658956151846333964870513094048253133229236577692148462949684578956340041594951067642828224710235477961645685732248141539431580842354232338402003254724187468219545818664389772431932696393295815363862371545246022879094625372403659840016696672812965423317128731798880563433911826351147446308460582971649853455739975550937568241494785882978106190694103341770699332509297300712940146641870880752984461299471904999424484038898733575566504558672289700424790844239980862828698817371677094406700570246210671489714701581336536275233737638109766663107764929048410528570548209726022328363835812511363789928767823457246796038802987293443281547466212118523667829499084656694903288803503028662713999390183927229004442408128022666213840514817367131203673427148890586790579975497744017248113050555259107328766692826113902885245087811310304839989307969781549422562532398065432645719380944233568186303421087723348509738864730669595954144494638080409650548828172996765852523138698318241704352399185946892368464767995571421464424774920247395039505204742564152480683716682186495505395606884485498871928377068969696924461790286781455726615685189873981805465205528089842985197765758744388573730021401691498678796195035138433940760336682326840868975914041985460986565684264180202292435423566227336667821072963477187616664150405642703842949700443447022220454912929365734491979696961273754447237398592892837321266258391823581633106333326281398832206607575359181970556014832397039207965134563230236032834138767050436662681682121692124700870652463339930158347262498018309652676454220240673621291789121486671130718244345552813429477156529841236307543859702165472029265652975348744560740039785831034587160350360445800055267857552507248958782501615140608561775795907472677374399435922705288403364085858757609492889218423702586800339249583893293154324072116172137729480705900207530011883322904525093273180981008582633295756563323205144851441188638362421385915375164199685075155513142433889210393295244990895680394910211906768508903031802791252102045917773845997298335536246099591092076844284102342780697949407383412810597365151199696646053378210333527658529937130086079519844141219600251085053486313193574919877435704809965771764646333506089840655200253966053291423405386228141098219627491911160414934407465831108087563957982382207125564397071080918961139598570863807482463361303766004965038121173830173338800942917272656137219451758270019464867052363407119447760788606917190138303541609579947174029565267023467568097830104922391128044040201137678102744782420491245157741567647670914788360254711291680730709256903520445360903911371287198720487958562820853536994051552230912210112689449521464452626714213743616720296364136854760893958483191031935136810847834795901970739339343114275972165623003814362492036727769740820237680813126491676541662066788554708475520333108473798699350872178084149445207693485473040324561810722817566296283716804930929440182797601973536969643880572476421924589595243003696721445097799870411893962207258109615102364687991370603234303618176810665949123123675773179239715799536798215621417057333135240860427307376580049281760662264030122752322765339624195208788039767177971774402123717159541512980300225798089170230033506943226582828076055344496941194534313529000556419031602009080149160897356871674179567967846920931089582431990471350881073306992399324211927277780070218372804203444762976126203291254492236594431955322527808761253438387646329500192375726956857022671264614113135413508289039976180072350198472394870397962518239147010736421699742516088152104404389193610785753771342732545384777997591880981113074306637335748789710049759936690662921660414430561305556628393578401892579445145150411006994638778107785276361894062122661170229321572904070561861196286292892433386837599250664916307382214486072243346215288880451458745902319367836092280237767147417968268733093433519586980188701894283349983586436721790348257230185885712406839893413212121314526469837314985232690009557248290207821290837696161355059915703716938029599491609114581921144114314921302154163077297859572275586076664815215565579864015115678553078157975206763995347180243334682387617865018675364176997127343136834790796698525590494931363871097411943876816501822033540592339079629489532776807731787972103534083490440128088661582089183185174116519435001051521206923729220570132832483559341214080108682788487771487670291221116558960414531497691438189475500564844801420618552268596969894089399935180568828885660071967626039743327618916820833868861605305561940242512487489421675749816601388522375275186399217798785410600438476221148968082028236863981372702601679820348809102082953595765174440038880339362834824494189692442400546201992872435977451411526117639261885770374174588710651069606659109882518108429320452442001545936541351308049197303584139634483907383310428448757837939589738918957823407280649842306626265269921309971070014742342697493335312875284348812396391867060211623285208706750258410563259173526673467853195467296643299599525250142448853411656057121151405718459519818778943385367112712148029868361685836214499459710193302785844774683780633845019061179964863514237881931308257009441693665078780250356645034099826192907260700588590521764572333092847520224168185429968591002131721364814031991625626854058739904682588397210402747955122908161525910696182496944671791435326447820605945515109920632849592865325094725494808197468988305322367582984039940978817283229170509614662525440818313328733315464964368128606373157788428343837130745963326425933063980359165324265669064301110695069987102859925716527786809460704789731958485720563038220943755433116869531376469388042667253219223338111917187456372959151259019803821080919681837768275955657066065580360626857980424446996075618018814988449106990066593988716861369417259490050266674805407723879103350615455526228764888693808907489575246075645202544881287471424342538686665081122117770913893895455743794848542525428951730866134286532505981829144804847943966283787598272991868557092873575978205682332478802480491531802000398518168888916790828187830667075631539861991073875417918790341537619647866070614792423065064714866786044803527616840710544551182770212406241208720809725972974331204098458360199334409391666647392193676790776129705948226499271686758097245955029146263883865631949448332930454051903058224724953053082973989767557622342444205068683586142085704535072283833117697243416789689694851127846180024473868374463673802861005413640330387892393627249275686591097681864237653595267256032727682652408372026432814724029677495369286398308554868552079774918561669659310062378698396288148892064219371663745388913405285733141184869725150174912018068421244903140825417442112583755842614320456798882531488607301851222060059274409405901264252549846308709128556872199426950689479945165540114474081546616835592493481607991886743912346518775353835383262492745679374637087706134335729620686937783507839939766921779880277257981219087579526764454667864275552673578083442924096738647322582745387486325503217167082816114676415144634029873929551276438813920637771917907805028043437723461318626764128903926357074988138328272200082241308045460493258601188033637193983308589266504749754953016047392496828656469597872306210675550004554422210029329613843607213774975360162475695223346121808643949231726637031516088675554866507700538187783910381788140670475172958894308731333715560892765468067319431517332181525253049941179864449194536225958012467852258620477210525311880127666038416651178500891963634842718909721429859084076244431332816979433832017403621660630390771261038205853112920834474061513271450471696470585234017791740624484604561614564424115283380483919344901692812572139207599088549589621220526363014349976984226349778068277679534353549167346006528623926513615983504895694427439454572028567697234234412681208906828177928022715297544354722625680396287075222245313620965275923135691792220265112082165828213941217617430421332159904391241282700703471044867831976540082194455620059857273439332563260433893839659771405096694268205150914355074788839126197585239450958398543793894439478853382344251407250928190562124213814734374469603212142058744216820945709268414377175496258256333571141894982739889466375720173873735812729925884412915148338974706738239126826273163030040007556955922945799830771276234593852465658358524387382608681497232638752645997435602125120137928227012561872230353016255894984126903986990898397698791265916499021158395315870835253769786238353687579078773652835797918033581414419799203816614136990524479865909980587229987962046912064190736260470228890175398381720846968971072974940793241580402584210233435025806892809473658044457675647459907650861137357522200217412184813634165909156576960610557411649218846736841947157417654445274334613217456290755528850811679784734537403111060070458343756082076342318621688607527650852803805993509685963772825500948742372145862187019504807299417899346865449327608980635588096317918503994586725696440800937659977742803766115238500032982597109642522026329380270804571051487861797943243431049888893003373267997477653744349429933585491110902024026535107122562576341995580978232231493778527210610066040704838618572503663543456145960412412284343188456262800821939785741418420182843792668631449296117292536204648609980283099738410586327707761971090411718326488650033287282206427152685812427769995234311892310717956670190204226966846963543571229506152115143144000347145171586984461802595117174840143748942785902463965546266814554762929526168248631681947659216833512743140031205263293066103428456938520302667719389746783695765298078742411903721628704368396724089459019652486949127853512332952266644192953984136766563468835219680099350153863690730557839464683649778501524961914955753371092396714752543129427889767827202257340084207011252442034235516370442074363230671071218370055628474517242606438249320648314022571470653521023625835520413832048187647859832540445243304373105335011165332337130046417020956272232735035913905080501236756494634641222363670481977717677263938004864896207929512361029312262615107159827430086727774170197439885902618629921175151241092442435451014230838889855452455827133930529338558126138543486667397415330720864749550508592906430422987124994168549830744398619920225120943291712589342611589743542523092687897653902077141892617042813619069496898485303631255192175623644857573663032255046122460384119190475745445784008209999414139159132743929409858927395018777968027202156438868521445513851514222065241907979961728587723705650616042667731740804441256177549625274789753440799893745380819694519914891796977547207854264576312429057836838357752531667461962524170572162625291933872372052719218674502270587246705571868356077024670373337016776093682564060540310312115615277481685527029632674864628305150737905577477013166114666533778613864272826957881888806539087941335080475163293290833396901875055898125606383903510604462362476087521927289658160923336225291642259743988063695193974907164698010333713791005775383162576192287590552892083029227332121477760456129394160570110504254535846772757516369030442800543061833416703537011919491699879515163489806013026530150837947554630929829706890087956586281684161561137198385379909391702813617842689023509706509112774911695820999003782052599749247450724855253862075202794891716165997433525048103322527675428103563913496214302313965269492009931059607908525324156560284963373646021657080235948944861497083538560134507440805934038652308254692308068646995893753808904473146030012427061532076527912588928677547179382321229071279304360370786129081434676030649186800434931365620782321072726672099086542479554203034588761024163243372839260084162588729599984397695772226052873603834655837680607951869692893368907766772699167898840650057617943886112748903334389769992623686283385129481372760947184353553393900491351332019830922711154130874524239939191946992624972780403441770982758615657749244794193142205873908644249169378183808810016346690497576636481298584800425069931549961318409389783331536362795855564718749063817583543549735530526080788502560061927392327345348545588646387576305710403217027666178078014498512472136140780797691451320186793853969575216492365447317943891226070973968028345010517373984809870406479244628252825613707798009928541956259646139312750848579126238491051988860493250991832571451095176803512777610360924163882157782485719052421140554130576299986501310841531912603086587511111804263290883376440527002007682647657043526048465828329176919494726272211631377039737877288730453114411533295293248998853841526004797013999223437482304986814575812698699678054862066875886149041834447077004190309332207138908384968564400089284556524960003214213666133290020218894384093168837882576514444505972822718015849654306699494491118349945919839389741052664122382946687922286679322502491155890084563730503645824068950302349426299674327184452886243492122890666659672501474990792315132591456509959425139707365803286457818565718329738699179573528796186888158687753107396748658281704580137056348058558957839448805312813643428004170702539501551166139915845435814030883470277661290863973437064558106922102989636688857348110154047045766152905334102498176547563147306946421384341619166458642465424117208245426337804249175284865085405694334140735940253061522721488749160326101728161112913840548126305110919940844020642538726143050668840980679208660611099913427810489505573050449768592345610814595750016790562200227696464371507879622867468535785970506759957447886674267984686779850202613297955119539227138630084108211960458764262543556460355204238144393637380117901230912924416727805815647035432738926986643547774976633214966541107698923211280976186969486610965606337139820239957231743691792227073111855261261160188748434717848819037883873086177043774898734167123181549046525131834276282809343364015913370351419356802756185454043978898797338350135026792321387894515930556000884765562853111579754405599758077636059910858081516219251337923086459712379148291523439422836921696040309683333263606651720242995180597385385789379484317542785521526487583518404227213964423271903002825857418707205559480543110126961914000625374856000598858399598449261119154614592425329894843801054131876032327321706188045519662024264529187724109573415825777635088463496831022778560154466233202847159022231722698044339461661145414136376251967930001957237609627301855910294833751812474368443729208350516809167529740666541194662968060414576438136500004700933536955638080672228928295475132484366798500611707898882636953995656492306817267097800572888588491447535795927534906604514627289927880509612522155529173866792851479863612704812485195810682589910952461230677671209182429601705835847687107668788607224714327506605519042130914882054257803396804189155725905702177588456458366672746939785123002810239321046880230894809335120936060575383807237491024702730983279560098523238128038856637244183429518222133546129720168252366090437484038392812419199087802001040468978906603435423809305505187958653901540296198638631345898547198383603789536344232668313821094049107012873510158717490451951613472104647946793410998428118516981891563051991737342431450720739701727482349530313653048156587308167355706797364681201815955514842461146585811481400881627603582811986988632221052138041929249052301906631304957697030440922594693494859269629267312029562679808626284400198054675944919912905916512427091209031508498719592337548541411412481865718831624472127648856721000195036389960535952127157851086380651565962663148487205248944362665411095770691784010911602383623492275747828502231853800828104500122068169534118717043173232272534623265056914921179121044832039183721004943809337259526529682090948486347140890654926942290896022181459910825227623113763810986721180511470909730125984966966708381666458855829591293334678337691146848198377832885152557537370317484556057067962058016491317546176527238334266331461909951626750050020590875211009885242006891381771237985779412558314163522664893779180784803688237468597225424557399710032042275493496126801032754828152724765756920596881841994336127352039594593912332856138451918099659183874699967176906959416473012563816084888057532570989154614976868894989074922824958599933260180977601067272482915793483957601694229931691468696457659398898328190822001035673830917203436132115662636215349047616224684019384632813600840962594054439865809030026260625287889282814850146313455974023387348126251521669158535411837088929991338815935649603216066701894564616951339226909649380573922031627765237241195798339444708483806863214867714429680955412066714913761508232168975179422980387947623325428973753125024353054875035831803881418133338263652511542782778394936217259156793144999873975970918419212218724186937616765988081144433210147666854957474149701785631534006151906602359341601319865722069074024310164176558391861685994323317659212140389479127289824842609988131001334243866969674400466627725805832899518564861543646800557230438381402422163384028066676371332809416358685166783989964960606345291623138910660893220975151048198758442607241635447426791834204772173167657735983951162564754118794171199104659666645243239412873209303695711601991841617938700693778883198437190939385542829955945809603643156917687575908608616796600212113679423704994380031726710087517503662570914388374297141205792708309852364549376539858525275581995389806630209880648657673904462443496743006617566792164985040930687179043732838948109619956311399353495174390518611307643414052294220703287087577897731068138708017657320565248069906287339135793378008220702167641587661374892928735333959511250735853736791337032136608140477794500679066772327773191504425185480317530196490935653183658950568179558540653490555944160017748533574405555890651097868674170626365864826050846820819069227840973595771267447873675570185440586934511294529525078456587187092772540260444475652172428085065404376515935542359095616386366185146941907615129571614750840067494521405111072964977910459955624590513801789457622136276180157993477232815873361584977238451845191066302939760688430807821603474993848917913129669091277954209507694800570433012804622657578420308487889405775214359144135143166732293472190325939952485104414708838726559588167477639983902380374022523521773662455938625622937739985514384665137751595292483392668519709150331336773749234214465509026879651663897371814792943589739445257760320453437384198355036892919217594040710649752224393300950157266449560397411638454051699002603619637846960945627854404242427206029129000536747473390748647432828241387739440457600634160782359455814877091659570810205117331676151118968064016102130539951462983605196207450751414485076984186088234585349184511708687079491411385366540068042120844316407637546097242858059391231656576928526343018418034220209226855702438608895125016804564076983666533246558200681380017881950850109463834975743620334609202917575294013764218464820207054406228443395347507793722025105519072502475237422934386762507732499559772110536102298787515092599672952204312461280202594356601099349841142384718039467883173102397051252815693618025774147409055426793634566361356917469551616856745707563458486479185192711197764780863353183382305939202570759925399266556786065932444798300846673796091851821998094367669344229158405425504656092136110112831896085379604334769945812841628702415109063022008113859020365479761127511668493974273473690290231502785930415857120777670682114095813396667610428862052275860233907186691709376335155503050557831347892153065086689501833330463052045239174522677561880362563396549734745748644376118140157570013648079268891311801452603127843077291604194482505265290283360814543977349605534992899440830371332115707744659258455243672233648496273270508099771103773362974089524150448095457250147705278676571216682883651771581841265606796763936662079294957145745431684925089434511804552682307122640205840917648528409290711946630822633601872888201982200389381130594289821088065099497557153895687513095326226154001785924891727372313314047660668758881569362543494216767457901353453465574448611273853431666610188408299320918872667369677766595863062286923647251766771742753438001255896205381783847957002466314208084752327114141310379954657267363470444041583975488353553766857391811913033850575693253977147825230829891994719331926808955645496180535931684328037174689296298092807644599930392675770735402731069160431776106889024189098712150225889485050066350616768533885974204659311153519294295195852247557539199352624256733261747724949115461280660112820587858558148190836359429400773550561825989570397003511230534112076425622191385183977841238151617885524703589349276871954982773477815124357586863327590613396135744360166324645522678208986173886421330491975656832495562485796494648222107606582792450934510914216565057173930104507410669746234626412852081516101997904361659781909782734173236929957692136645469192332282346911491474107264204408628841349487738916248003997578727646426099599925038126834241059937261227000512138660740423287509280776311791661528892442508884949048846919440361655366852886668017385691320124451605033875883397877068959636342789499319955727080270411558435255398470482512462203830373838576700856708602957450606351956268526449589318008544075811362204500573069304182373787000553621870394015361458999756106061717874859688329534264496819700121279827871704954152378163410004137944868844305060566085919255712981597470884194856884330968156127034234768826022706208555516781638459790369328515607041622383333573694129311733796976232319561690298438630734396119210109568293111853510372693300753942849605733834671296118280455079433816195927127850123829260758709614197751422746400377477065592461527512685791923300724676210072171407306465056675604968524106223843291219868064705798035689396467947225339212931098734748386630567986217535839252732056251829632606360762121843007522347014513823066005217190941649541531236889918608575463262505871885577060240901198041542105985945902380962187304536062103582508339097952662412314680129205824777920525255518055973882906315337028757114342537105416266405700159641189426233573523109566726698946501748523078777642491446889648503405851761976834714275957724467562289714693397232539627462030177697759328394905206915899648413073093776820280436070705447952364551177209615156113394710448909637771730570544922015547865042382940673448463647126862016030326712998969470771808464955369636186591126037294522593673834995417079816785341737578087461628347157459011349354178977775985182705794956393378689202258716930449712715950232990601329871523050411455058250467034857518734758135892624285732992758496351064448405485732574260786539735036268033571848431766911158894800018054140042984666987277550857032296286767828356629788066114035752535498274643881267315013772809304312059463552719976276563433498420927288370890103213775318844806224570116175570056364720234924553174689016629221200238983168837450483851774940852819065730400847006926760458301664023640810436899212413064229851363230815987184251886992716011220803570264550091702525025177667793722003689504105387651548978314079572906603347064203781329861233251948104593384936649085570772431628906506860785716081413624520738212870385297486734438844236553448567792707154801573005014155093836970009228946798841941804604998176467661749366868642316471560937459207648592958729605167373948089046576679884961482726733551911288323335440074150160852299422974178249992627653456760282411128334114646130776142780587472318636488549220686223409772489502978210878210719551569813743805317934757866041790432506038704726364203165118422809987993561096452388806998013634928358364607388992199648279755501927016266744177872761504888919980123543921701026138113868259156698110244295341712889749264988832557561288165819156047302409676801400025748205952066165377425734817950013400633263618264938152690126627167571691794804207268294953652479778322835352843300637516970823324261981358704552432759507111348848120595723794418402898136254599240016034245754571485337908868302670604243778188688292146456080731767785039692623433836275701522038544785523838375534193218894143897406999399978189515250412754153181797155380039507310945958653407540637104235208311721363537472158984617040405935780398015652024876764292804657245536516183716346418257049999033354322824106293206810963701851062336076415038691413176451435084270527646616531309929377178769917978182492106082837320127192814968512873779151664501474244260053969772705840193805779462122466846000415660624360808874795125562445069049568574059025650022540776779369620800113910472619719017257064221350502293981233835088125669050776024781274542740032310085055866099053727295040016770644978275282459154811183013943383153575677757122190496294276767586400111449700571813790349668115746565380397489259676165736800734800888231044940432290836894150040748735556365147004518082988695662784310197329574011206628475436013003592681066891385751551128940051508740201538168147531669772703932301524686181771768682607966938134771616253878108055143437406174913936407150711791982257897859853664753357879382418716277544642792913820756375779947509227616945423330484915974532487772974107178629574462268195435777005733093189823797123237546627735658801408926205623080546301009554529185677928397785225191025544178957294213091284492497557161170744848020370042723096318280404710014204075839584938633181433212698011836637686481614527385259628233030196960152731332302270036854765798576503771977622600852365600853804228677464225839663336296316924008843625823047516340001028027604417862419730794452149430102236843899955226451276504905562810224852959937297883977126681796181086787090439359877497324246801718718366219843830598984012390921153559939336889936862953213153227584000897804318097177996619150767206043311056913009778692199493274887466002224418365943102229145828615943730341633249758750240127635781493548426063742474209239220342772868549006360819018917331017061421066604589178650303347890683130696243295952886400293772341141722042795184394726660768339589033937223885646040805934717362605085460943589960228960794895864197250900062636142186951644536516410000568785618400184207765845365728642669377264739418695950041045459103984799242107876470047450842317893035819092935437474316786297987459702944667780549396175974890750523667980334416788540286248512259178131094991312177820990020985651317402302259185890023774506947422543831332048423944061108284492456224615163877180765104679987670925513174836731648684122833159099016214282506447731660503715566019340845056510596473216115712888502340642248289065949241245222718154101267749756805986140394569577971958521344384249368284824620988761586966512756656428190662081616424854981297313438700218378875939509105644753371319613128645524823167410195327865633088878501559078796785128410350447262313075361645597521090595584261170183305384198999285946552239116701595132512627051281692460414577175890127633644874965786533039544438030278771395732856519889083525352097527295314779758494881439601305995077350365071639614983153280005568327274629245798576278066730655674770296374898298801920612891980552485676240277806218204495084073172553080091066900507547883945261146819544102927283034791796815317443314745597662798931152379821872264450520874583901287196493241809016186788265697115859958994342359818459057949364849344399274219473389268020660648963289356186875902159668902843144396322038225577143097383778197108348635009635611798075775259916696251658576281624356217445084075413333233093135617187595387745550793755393741289318711137596658441163941054436608353434551487010612817997673276158324156484774051722767194587848285146216690079837196958257265977026658997672716330431038161005615910080794021797086397393325696781681750898725972275042338054141463096474705902115532777784858967515566695256630897333582549241589914470422321529242429595087716662353290651370244864782963788745716978690566579130144572122687163553489135294306534772255817742098582069833058014996989771243837623383793165591697740745718890057341314564649669893277351486079863791248356398431527853031150744690311794221841914419791955217983107232831363703774361500918561640044902378789980300520044061733484216434205378128714268348926326342251880913113337705490061678333843409746824079035373612866888022680487912223819419950191132691887739582645481527438567398036989920349702008509317757185080012179904697873563777772618821511177397881305896255048831886569390653561822227319892443370053058531926626409126424657120923608283063482498400091827104036128760083532940467648932133547163674261041964556049983027683231584459891543857363951278600360769467749126643354357207912608426093304807802397017903916755591256550531719305989787284977641235303815700573537200674514831011177890986808534970859464211284175262032426898564976763177779871427053411770265599321947865832257858872242152954244264998066127271993623685788661679686658117093719645799154373703535114150585254420063469872206115217164231672827051620187831140789546917037219185418923286890444024817604712348176425015583173782241715998455022931877906633247353563484119249256452894193877032375844926835629036074194684701748477222873765714381258939273310265021057067096103191240086906142495648880332957214076138505541171240960646175939962893618033987366758295047296598756219305932690922822137418339494051152940155795459399159286781120712510736695066285920856508169662471491420891021389306681488932345190115154029882162988474583091811117297344426149351384928842276716883056573797095972336541961855411982389608054762814795814769214557767444190124794407403809306878377619295280649608783373840470854316322530346514351067170606011458135183631694757140974803728161241958260134317104723940009773041840120960614118079780403708861810479234231875680231695468581069705016914619832692952831988753021586720136370264208483345618118130234973212033010893683373803162794554055305346516170646940288912586766509147571400232479522312998615192418122897224524382202073847161669224694019184768883681937658697945582446258504648279816697307613057038281332817114912221315812327391404839510255049719223762768761576210596948922068429543240885162075738696624659245954966447932654361138100309621885928596751196327247364233358995838323759389150304196615719638938231732452631787042166365076235221729101941992007978320730390296433451908906161557325576006405489377237730357762679242575059771533425133551357001984436736008222953524036251408325632537643784770138971602848542392983682081087591932123342258872339320510471568124016155353036381146555653524284770970271262297487925286121513992410870166505107027161026449806662759634655671083537261044122432290890516911403277768784823110395996780267241567289300307462312943571965220724112106786020244473883173335715307947571175728213870248915690672446939740135230314201812836172710505951480212513900434764666437803309915813719523973957766887761346986488366286524418799411631670530874391036860811527986997957954510467095622465028575221718965267312233253695163792205571446778330545300066948664476990016712838048406618383580772944141432663712545774814733602474469467657127540352499545679082561427415077192783965999134366604079693745749616023037177842480446418425952984530815032968191124546678056001024221668662776141393898651036670627298147747559038665608213401471473280354614561237645232249439255134448699344963779099157561967617859878916068557750754777475271469603832715601220907590683522758283800698546485706464731884753787029376471740391779952086019727198403074625870390466912103679718844297754578068206317759993180580752064090356940701425484504363679919386187927468398118872282206316067846326048185367772721232510058545106329644000184188413208942540166126793497132128643102593419519699366406589883954036045344399922070155780292619483818711501234397828423464852261075944321729253337125677030051078364716739100267754080338340830022216903605518744399743834275055336979283110799688551614972612097610847521566775420329081880277331177880378777007203830333437999454182150434765812864026799341475588678736288421668257147092380848872425135938895886361645375598676785888351481577427986513231730838428441569915361097664980188286154772713282653056545954092164020299344212897864364391100453788869089172720443006189090420895360341909377732086257594309564140287006819875995059237922345789659496935148727653210963047920859011670169601453674067973243459036250540153428705408288607658921179300430375060019513498318593745737881081312073142115616388841367031721005876599722142993856338620501482763285143438641765945925612223702952227097786329413606226859018441823779272080817943682054829327835362631877428055663470356369344254057735178596195666658635943095242641977738959445599865441346932362080814786854933079105471344611100441539053593632896559685827244499674200303019412500295280476309500907368833692403540617189071174851899262596790587270019546709641954537092417732421511008605413276847872540818863816527818570078474888309329395566219053891098429495191619789844251487742990388836541742759776080054267763691297864560814867911230949644663035153862926574797941368551330360660831831874938920956487508544923491102365647640260785588788402423092469095853347971661414552639610874626416826104826845324381331057726864215761346023522556182687494654825823250280160819412687243440026196461746957198954965063182594667740971014361452293295275976054478932039381720879738268293272293892095251673578381746172478160506304459238335644328327644807581634814804091429803533521261361988801294489390886472537976855654174206161111190122651646329530514965672029698464185415854023303855648588834735150167190496060797486837394646406709422705203579888803671295757632923754693685573911059794746342094729406108680235866826978325032310204697209870864858081994297037370714281921441666516611105862841160863242579363105059771716585221365404117901913044392321636795024768995208806498232018558549093297446057662174456142482183217085012519722337330522822751576636430808888401869973545593233597448490371307882936559874992618205609452403588673799059668144842014395162849667250203245707082408037512904326450644496122176011650612307969156262526843512355426403403011246204842787798983137114938256517884480475363496941965149275980676075947156239447214121712113501919701054282650642364240055840078980437610899870166680470127265175643899443989078856348206589141062950488754691023469857276042993432634885204974183630873597482090531749054248434266674993462240031968357246673759074147020985374382415547610549877205095458370212095233850934483807526477481298642041654041370032082176223712419539924222742734798064848537434213021095078871251685942352051495956053552461504564799254818563714074629358393738086145048970414851881908900745660693840293053956597062602622681992511361679944185316657193426670144987898067715739912520874635253345179801097300695160327571414356089429618695562282308140652570751408626496517377079572234829297183825299899343402589979306277017788881201015860201567248202279528576623938930888115963240994478595503547211941563929462569238719074472591935010373249490714247923144968577917462196213910419458887380402948911587099249405338769559385109013536385856909762462966638390543657000352034476213961823278309826950534553161504463475065727549104663374907509340922377467161234078718326906424121764848549223673577072910480508924226582403682711012221033216086066305614909843665488235343890831647346102162013227880125437713129509393797822845198747797177563880733856477327153514134373745826916795551222007438157575013023665428453995855030671767880132623997787230135945364086952807165210063063665685981974342094639501101152480224495894216774024758074772041598643299221416630185593734547204538188339922102063673651172479561732119999598950415811429881076872204270282735212949508810775039378921771634322931222277255096080913036497915488463143723349391290133195636983837863982511331818138099133311346201648616926227765350775398011753604585295902836111340343208675230844856889493015696944986347673956816318893539252999024481570620908245384436905237394744397867876770505832713353465075709060190254952241044379616285840324802862806093897929217077827033480972879861803383788096826896946151553541163643031205666905141500011733136434140122330880278374178008454941346234449715898041317644587987132880218253858434015772658608817800570726608854565757903226723595558136816994741564471794387046898790610791945263439245424429947635128778942668501921889352834312184438161652501073318192790729640530610556659589100963764272685073348020245152869092025662361190489699614331493728468292900754679467095600249614484332142587694989138396384282482254073335958724612641775374528465624904864010581651088881928713608330759475217123466129431501196884123565184511132701048605308682588760820101258470752188751895260258415673219094190993102867149807080378266359836691049852568336996246538618410531408989786322848284969928213292504260526866857931606275074170449548924096550990740222343684580849136666123123650433728841705203638250993615493897215525985816938432531274973277733365860897458686032169880106501195018575637986345450080561382547581137635440426206604518439613375632027590910124530771294095484239737998538577269447940365567760892481138321334581473163806185137798628525587583069133448059810205416816094409206858870165402590363892094119276053242364414711364313347224181414077260543248048962328747813732177565927029850232790647296682549775477425012592188352336724856564668297064656233978752543491729412534507690410662367318101082634813021171449996675020783649168172628644588830449419693523601493596325631495562542592545512002315722157914067579935802991319713096733329495979122929313579545838313387601879747520655952678689660632135206508762261055655166720943507976561598795214335197167008654887968795625742570324272053759278414829832049594054016171281982066593469728641895764811122459624028526725279012276686235714767769393546847042884366915081516846301689289702220623216291517807626574966994164308770955902006529646128728655917322642939077986241682610782869549494061402029324062241391496666734772018511108157130010955744153174212591931311925687435381676931940056317399078201100763916326716259513779468498563752257684661887679799782747916967629959504185467259257365005033070400183928365237900935931651891149877797527573601517973195299806852097757047156132289140518730568249278105930027170687928514488233397224014488734949235153745994319391329172635822249298438528223436504374305959553632041670808904437386839152704374220619851339491012326137325330309617592398590985692572654733689623354411640742699865251190322119012706168846584432706997787791604464801973507851314298876319887228105450532836941781506403182448188602288581262024086627103081008718113016826130988660561776534561284830943640268176755320734002451292462385208639555920118858952087608964562224019274862796894297862855141729051840328457635569960001807919051138096056014941167220310857437668973273913608139352863609563288687499835595756341044218964854905697427119379491440474837658731646827046257216717956803677591292882922744303723920700351896391768135200485653056613779881759495917252576705740882199398418999011645456629087040826223525971951587193833516615882685190790522885219416488933462594230951184865743442130715067460481943996856016001811501712474628654181225233938923755449618315432276937106010788547587553212939467854602780761140624817263975296993872529764023841137458485008272317249714526152359580060768346053686967105348300027392038994101367309288365745058962701757530178198769104313462721487210405861206354515965862069696390525625631821115872525180844591187973764448690536486765917009247175542184190945667989447961420318572612807122282823307892958209667321492861807580561282016090910888579801708433393530644122178901805389312321216025792104045552886542211217265877539530197490529042070117030680857740232984802692889862922611525625544692684933699290262239139499939185283197728635428019635442311017071866793344706778432263667483105534192723928378086073626789434943896690709045917516256047922753708892795988351604961904877390541077126745653989429466672533084138721972395257834839335240275352400133452570771348285005179932936934349189630665447565198693381061139953415319069039278253776297781019971970415652170479496633450115839818322159120929021566911161221567077722737551102232259936135466420007050460230468201650399683355412544520965651750650914189677171474957640788692157953986963549766752435637049287592557293348039880758437034003925276681617127373092298576219003683548572671296625708097200200203816630356224589357359185136422151124558185083505677910371114224970444190577077098762612904601308690631166715095547920686223012733039875949371555687291789308581228287001559540995827957301302056833243330327475924418603722232870666244203755967416056498014774937594631731070568087460240378278002059682600515267726214326271982465769292771313503510309374121495600488065451319202244183118815291305237172227982541370565162812342133150360830102232443299009919911405874967225558134870817308409331553366860238930762214437817639285093559585399695632662992871871599769291797565529548602486825852105639557520138892507017652257512182745883022571763549770773954982155525610986729171967999472689203494306933135260471597746409355260745925756511419652117071893756395486285922571691257007250598528170240535908354663781015951417094371154561859434028032602960863416343329302921726211682154467840019727402225432107666993661628474479333517343829837027870165971526445773793835257973248885345091031639110622335215312708073576688269631170185229901457239617371745222739095931274215531252665614918508056138224828586678270021906752562806118122214383978767792383267484884880377478784638219178349779118743966109072169612195510178687869886922249841588374310066335348358971575984856109929622379016474773602767646903737520695303879848199781806209464784440332975569666415196631235514529150785590760209577544013526333917109892436380485400700441624638114191849300029613968815681222319244097378390967885055298473158688619464670755297681584365015664793335871345747482799457641107739619043823057936238037578851613141444594630557840152105508483070875562918265521578120100753096948099736279809708324559483258423529174071898498534484798046170745882598568447424556377735705225910238831884232915001081690016029345431312620134589435499958035603105500116881307675999600660056494291657472428805906400789558128195783082399448868291783169927236666745351335442157580922098688870941777969329678990203927154724776948738456373311532122703782861971168841053579808030939008903598127085754607334493041587884101423580882030526309645524160955786026713791809536364812159139372225133408930750229995325250058561004786914272960501682607828487262227632599567689998468250940012036333111762038504784961703686502042808132915500102799858354726582479158287702896104508242279919938393240493168362150121245285467397365372513547743304437953768165831198253535054998170860915230339986943129213521981312744291328397144340999486854259300349111881892477315211280779907733868933804138481790973058454402581475544465163522677571115585181061513660951627918332227148752779744299905473180540132795680382562287557920163872742350909115811931917282262243609146119834633610381510982769967705673937507999064012280799159569051847428566116505635312489777188545691753423785471219815416833613266997043057770119187487516992796738592069427658901429891962558010258541445801913381310903982713263457122126186710534610831491974364890170124714522106103610287592500265263813097954289703388322959944088302492940618976228421462374797192354560809332753036327402409053751801234002824562906564295090439959763035026592025993216625102076373959126649686936176045261392702733218394141420617472915206981776598499678762982828116943329454921596523151787360276069636259124158389201456916177161174649539047384021296747723097882477004510682997774939434976005132394488584917852583317151362512153738914201102311729244967655210242518785077063452521517030108899279370059105621432122878950727283144753556154419444201321982483138678006458750366724831203194581754854032099399602429354666816009346769963249499145263391220332379483822540378039608130123518403362418325035654577143745139704579654377748608463469615129610227081463109228380881575288159337632627104998065175717038013214530032600275478796651584111093456768505538868641579811368209547165742309696008852746990832157221958409829277847534217733731141480990119249076278979060723192069033997044780467742051979591720951118860690429037652183303595570381054905022346106014786044165988304397511199827726643536001510725482315085006777372664269434556402249880597691475523619904596069764506132653843121263557835931634255820182364224147662791748591261851167769274278862849754141971884291489806832190581342461296677616925231926870345670564484988664527400525010464228374392851938312458863806903713408782357514605365934721639733837414977414757678150060609653054287082069736968472711371895120587990056377122747448387158786020857721485242400067006708990226236895148347486187979463521238251161110396734034674662296679578925852683427727709205142974256481304705523942054715460352799368359987962779791950603159004373885721161475353075330613166139386398297617948995256996334212168559999230978097264275354379530712454149061830036445874984895903154032920010366956067051209603843238732185228247930136943300374747763470361221116478194506094769746237836306268708350330137293725501206413578931176533096346995031974959365218911024377130451185816255901941526681544026516444025592774658060495394164500267426442189482895306594626236478223036258825240688471439909607352988132791224309216524090843093450614053040924048378698703106429700193703713024869919631847162552403812167419537043031938196579123627709720523707636186829528651030436461263829206548669620758666486268657716631769250325481585463439252671179607854615684436095979977733113153248945661715238257599679744491148186257630665953249578230858208572853272548320630918653045333545620459969038475129810657737864302593788884046211224470140007230872542355051692111849827864751358469749462276778696150973784503763017346503509576018929756860632474242433933994849413630478041899703935867311676793337155161989682742098547753557265108465940444477391647229266319791727545539234885695032188268362635372478305619442245576954008124146407004996687150852619077387811417741767456902838265382518666658710541453504158803230519783287783817147371766184692907010795046669043675473128507278912958580323952491230543304911043985663045385680662140671292507187699437670641344483709389724440139711127764269688860885452887177022430402660250640362905004285796015442941299537925155061442392087771255816588728784477577239815645041848831310538715723411389855323785666777017629098111839242158597556895278566565320986441476124913438489957327612072766406709014473106220299354858116341235981730342172785053355572504203331148245654969375307023460058326323768920311036228845662281719827001471919125219649034317289360258565416457142953806343490530925608702657562203999829180886548377589914411253548297012488980669500472685247006381662534076654724892005535270901783363236062611909856981162266995959740363447646517614518201442731270666772325382520921382441018866030780104262729134004155489540421478001740256619210330918923371740968232695891493348253579628948917603386228382434734609886011273077325829888366076921461110607461986793355268834597457041082739274912409515796507878361415655853412855515513809018324257974766190575696433646387933225896887974899554593351726731234137653748542314410141629321480378142750188556554053308075732326807999743504588251282459429089736878405500336181478196480461256560543857172302651308724324982827097545074315579460705495572019742355034723172775565848125139566008990356173259176234760307760202910871351277746481951055799580246975850509852113909561160817357919334116019572908092153663143867746955947686038958052137523551582397358766604505377345045764210298070234492730178663490255907043581885202608405423265320217093392361169371643196273189189360950158847700723179540790541910450001802756199878967117520918298534858618926705316959623985986295598206493652162729510448236982106396262762039217973358992031511056138027331740667896426632999662102941228031449750563622612857489800687931938728541905254945195531583414737933185254349997009316585532322268211806798916292995351456888102549223826314542794335158724018780831871780485560976570336574066978090143293281084798947205426026400870053537621883031385651930781745466590237086555334637167400976059610324824044916993830274014592897417309682344346488917196916891189462618573089137397010315946456666672067854819431913575253895424781952868242742566685920007888548517230950102063148050692250565679167480659002697832622553056260260289729539918258278946717963559456474298815344490607698098994950147786784856449173377255357828762988144932027800070614769796726388529794203114894394524779464299511442003083548743479623037990787687000648133142059073085190891228013357685502580776865793048800576771823501635765071254297978411699510854787002324200091241322363503363571887885110454395794402308780335868388618019622048587555122012898022876008711935287136727577131643873537175522455966546770269949383804352633657586084173465803026451774046266883826839934529248576610302609748501391854747990265107401609652616942334096839331656030508680936507585527792519380487332647115160539541808917270276646604368013087706651002250532257365469208594057135780775613630919653522083081413903495071180749684617758324460946184002188314444481954834792058045227067831602187653518444009680001577574626684746770234605922265331825841002607740764104999296523295779655702117334729691382195678236635684487835186909309663544499549834143845240329759962395032374901566165060957466088151270365303546255453929574332539808383878851373324242610312855983539903417945799431624308449202344024450664572318551222579820827188583150421825525823099019879222075834902943927863723369576003275384927438456405757322607123236340182749288939982591884777548905095958475217489722431796056801114191156126563190513772969538031438104735151836810054953153511603270833387446889903582306640699350221730500344560610303489258613321679031196370462068500245114882602926815597954657772447184023004779526279856913288394383954338631514409498204642503368911872558384388653711536285884110609613641986773788456764337848896327038662519252955374833894241181095278159062762071864622977252460033983632091365959440782676528668128902422998875205789651743019639493138051199438073196978655708912538115299910753340138457088855978431452404934187547514409934161044075513524359789456164736708210075018374767393824505223328216436239724388516599500827399905383074587977021007968041026630613873966442400904365954428413702797435060752180686080870805312955996260497067437559014152396910290551093342211173070542451545999927247434500292400319201163959119725638441953315513550988077287534177474423177625517790081206517820060321308204833284200577996301384561789184895572863472772232175917730960818444707588955136196262952323500146441228369705332659715401887164522535770879837520963137608220070730827947640853940631317182886719435330979782599382360115145252515832773726088930929386363528642098492835041729253746822341725987999831828686752679511966910586587078997895070413272794425982429366571072799196129581281723296050817739978320378240550021445764528637724385281660638145512895240173421143155825554710850046923112792007518313822080169896088070813631907061797264888641095513904860874539950012526219806634358289334251620130579666073390083591674555610561887455782880413765381624351876398447792840708330023252262321792084585414962321478111035313693985016898100065399640716722456336654413952151917180352489320905911906187504253493500908762368407144982435735810948499337637842809520252650919900517640748903065821081726282117062578625659216326790957815035830902724287689182442124695173027033887810806412702966834013314685050292262185725556659485237583465287051142055621523243443370935367327422381252681685182893971796499168490389873132804788750613447393732059866536489002673169379726866977206365684551329584466005160851467488050346469988853275016316249309916139469375346756135037931459561243232836498010906621732446277348090069178394629666456934330457920493458853439170893714009080835011108186401170076147431085983219531728829485146821515117154061060365918873692294886967142055753885207179085104574692824468866076959273400300359835893695681712482053315679099809057709560485693715437023005247782881391619369747601002063612452343283952266533629544238823720472747903263157846166496719333583535427885907288092979956750502542772925867034618609254169469520675370956292853203228578862778223039421735901217725659952968207395230353512159006765100294713907511253477323113063829023922424350177999562169268682937724569053215890115782027170883179722429042757135193708280090913161100865896174089911632707419087466530694304144885416334796117576066150620311190480843108438410477941908818819229411100621593126715030690217560929255712371365764693507557459896227146713122326353768383832089142870028584482761713946480421501553580881718088070737961018695110557980420194015122536662073890940972859070496241534471077377413750705165319544395541524283333133167185617963132935267696304907485881405560035345587943092786056936017876839816349542466905000482910296156582086426082589424829224360112024408335395772460301301089128290853544872422477972504836358440695789315028137172167815387676004085674869752201089659441713436760707315055310729652041045235561561259156998225474263849952393153708342963062880766120340401689481580268547887336072827964505593548292797757632750933092524750137873186629483051059395375075001842465395146327776258140270393290794821753960588487123132076889196911375735465095601004343971405245389900597971005300784553469962929614543363737829819857112983811632273344784160414948129894844702317984953828638324188801385659595814063055611321766749848691809637836319439533512255780985643656121778290713862743413660077959803060156107297667197017046498877484530936182600560699973639944135745898101059219979649227255815593053338940970968106569731405086885826664366154578708271296773057696271966218086905305721092436561698494364474905568634619417096882276508666995413239023398955984075719467660867193728280686121795186805281293319791614031201688688749246897146188793228772040024693753037696500193891920928265106676429050902377665069909244025417509793708275072352940943668469342676048120324070994253054096918866487279316421967731998933796422086500703435861339103124225997920705489660505183944417477947889964509206345581333586189335378230439788277932120285615691374367016199691371488918050821931673600360607978698144381696413504104096136231948514794722591457202792386677061874309240538570246267362414577878867662692746330386385107801057783010128315749822690852735163720732621016009682708973869272410964039789271459616402809726793574610981623749464089465168040867768453781486636704180852140979748243943568944440165296753023163648857649439554236040649398944280137429765439127957124552791664681154009288799207990138844088860117127786475114016122502046695380812080292002286606951020596097506916999193925551790804901875113220670021816686310404248590210491937071988419324854274247963413903707391057788873472672171960990026753108252679981886682465645611760817341513050740919870422971642202901872666291664050448358493127042459711849393511089309365159673199005515875646276752680364773562914825798669064870560936054673699892668656991648026175415163621960099729545915373097180095898445574919169681309402427874086711113100994274945885722993255773018437321313408680462494824103272132312167865484272167354357627384382319788901794431647246885601107411276173305633005877557123644684187144561952224067642171400637849307651518426300878643632249438640471665102733547999931415372298067383390383331204648785483357393673859155939949319762232736664646336598930452665576724397625266629567606972650900409844237662174178554844932932526416529188496403468699006238803818860521609884704269801924324594921885986574356296876022606116632401671082029341139625955356604490406803510595451610243452162879317627583706987293716527402729692121035189002805464571201276893596768729327611771894611065748396059491600780227647369113034542047106884132213977660707525330692791895037621822926699764447914412535075414421111268573259890642119855353849237080994630358670878558069982437854016639761932789892711645152889369715348060408200793925233942103736072035202422840383478089986893138422171299043359265277503755395401962568693761106931873603442768901736175283177785489770895985676221091904260715621506741708603284597281530557839438630006886601506480467934006395075785815338539158401976335287344603933555856792616431730190515668887328074926429173655086197102772090923597183259789700198731107866332460469440403291951997177986704054869261635306253129759589439789107742032711530701107965596805126610559338780099755206922157192937659748563735055749757631911738730647262327657826581522606519143608540431488865022216850359173449159127056494000477492777352532231849706179487256786765429836762831322329974749316407710557864080461515924740006996106845472891037142587263077190394354195688230330407377221970662882342801254886795500076169313966901964318740361593314067993491928577932510919126125595070065775314999822304153102790613612076858097482634478683170012411116436346236162783606907908276903379846445061316475439044852635865212518894789659711204290834924418865533616743243111819537368784177641958034479567821283711446144910739038598385235726934764133046215404058636668356765586822950471004207348579249208698661989258519471011311140652938379718742561465284844104108099911774210572349729064620801316481821807666432334446833898300959377229438501189027455816184846349783988628698745735279976697420453457812623950719524610584170665659360341976499457584297165817677061815179815409105244217061485015360486160403882833692209252050055204925472135984913592187041062473247352784871105820190166581103226921131865120105749943999550935290517169670991918199366837541759912893754329080299063221934586002622202117726763279157862289642863675666104949277198024886604106955612031010083966545497046569840479643563953014191012448451570776103448027551543187325340573787896497586813998234188674684692929685960487134896153498841989977699880639748772703328562076951577697719115340600671311239927682607745009937564135562225615239362531173940070133393109159734285746447552378998675820581901473535807747689438252853191674213160854859761369889697599210979531401743045226203052159178505191188598644055995352434911793679328311948179934024126611915185543392452787233527790463864817452464096686121794855016661024819436381787922489129010083810028535391436986700437729292842252510022089417583534890329673870219433369995365149870921872706626053930214155348843633948178015224699127659160953965200195059088927778350330746701285305531289178013490509046239818339399427877802545323085910203858839662665036740855071336337821829896799285295268594476498325416531206223575960185240501023924172530697240416821332316560022841313813018343900861632332476956566573192856070990544536005351885985406249159327098866542377847321776203481175476662336576224435361500474527921598629150706985473548482378603223878872752911858240914010404623381549235296294324060477040881082661613071574539497633976186902999073959042993310058769524024634065789248773859148256283779254318243910565190730021286815915187200296271595929157016267799213519385439176894052013208565288626983592527528301148128743025752920421930591802150356964164177115277376830184596405363927856727575383677608156673368315486766334463494606167995652781997628092841685970891052552683071784440233492932480657894429658792518095851974840517989988113071403105220420003396236713511927493511778204296732632420599521550877578062553419768761825224484812175711044592857055027693186904904638688295080257700567258503565873812524405594599446576712962076982535263221315661336563162407856399734179614204389751431907537538102597140458088819795214008738172304867683783700056744866962666411240063258980781018549366936525951680590923896377988682126774229506582649068853136674649171287274503288283800321828570228988279082819168373347027580888895757652306006570198930442038115824999047621562434795478912359838817396155758877960986353063759318422595497061938076893979725479153336740838881083567824848279950385645061875473748014538083919264094023518344904960037751189376906774858646773074228970326695227641977429671833466825889049933093684458034865743959925831998452231014790583515858505216136150891094053895732674621138350961213176348378013900448968494319456344012469090465385748290548712777157833225319835512606440903323586109449394461536444048382122489063572005965377022980733424547034988750404002399845434634497587728620363472704231240026555966582055365546585262278322667307785270444841828030848104217778913121483791537120794261515843485508938089090432393680056541834388552690532340281846709458557551598848123131448869323814222985425985215084428674968003020730568948828162612113974674891141105810252360591076207039395647648080401013093507700182238589120353723662710028924164396570391291633357235026413493069493815221671912156525598287020762848417097777832309304762543453045070047589302910935940837989956798960989867011458396030211171782969208502092467991075270733254614680060046102081893201230882273359660447506737700269953653553978067608901281079880371663486709452024427542827383212073295474246225752053519561524453032651193605224406755126724030699472963143770037815154724521289875151148786428635780215597315969417584996926408305552711605670185449303974605237286149897125924054298673782780814213122062712357447500122738999790958460019880974718510156865450717804425733997521794117620294323943740871754126296504612707043352559531020051286881580799752424656114129142284314380861254963704685322028831750685978927995056417231349054178317023393862588595183467872719267791914736693634153344030642172770991137467909250940644695462507775439171737344476768973796718244660622521146812861828491335862368830922499819546155948418156572431366930545408217073618403924709323451567628230549202573344137803543930093290295118135730315765643772923071747726181931249241488549270024898927283831811249614967400626663728078137061561725349574110899461660320979391418592079772101907256543368918149356826062584123172463758537818790044591289978350023621812750087380589933449090990514784247535899544271251059025295635387514222050156593889695266549507757903398346641490141651155339735131571042457087200674342342504688894294272327007941216250854455604628628509675222293585849821423217970813454765469325756872702473304962637478083349161305586886737879911494388640679406507302694273792280056833879918967293935900853397000181936473234851654732871355033652265698386627061554334670193034331254529317994748181230152529793755246016508886240837195743157286864335178718121342028100884698080901319844630151255997240894504028359397162106140379167000357939989617288257571088163199769196814154238016318857441084512258685279063321292117351847189022188699322109614563640660974992568533183026386703938934359180516893002212164249593662942571610792531096060543729688056377818680351969859630870875805109134519334106945562689828995157336110754618427051025095162400579974617917016624422264904713417999640871391891062291214886389930261484997529415215164889913073558946354097828377793662419256440168953344144596642093800574077132629407070539818262240084633376412907902963310506025139721399458062166099567999927818520715239655970445836217330421795550913751072902489543032867399542942607331822611010769066979230481272050580265973982056195620141429321238220716349539202330255863298884066605560931764465792671012416302915707240967182150277605488012158769618409583222219710170002846606091972421958352088080268582369747096406317112343438826004519667211222655893124447057502247461242005750060490926151613459444096318775167456791169975275741165564582950021097001830992548573240247917308004091066587245103530025629677778042819746441404325356160556596464889047197421489129819059346871164977475856678548433973386838405964612462838669873126111379600376054440180912207861412090707537111207658478486085406609472000910347587023844952076646520058902154308554610270119636608762670838814194114894109719554838473465153942046569215845768837886296898418544518030679416220867497041938129542624983797881777237808218364297229288925635318267061009175931431843580629779961160166175316771782179338711750618773688628034062943462004559438352143737791567540571251287095810716022761244577449618661828080871161629257734234123229748947587905034999894455309906073760949750724203787575906735540076872765815792402039846374029814245350656277937481977378470567663882192079598111974127715400650792822748847024676598850805527336718373177067140381481748768161813089851925126146751786858965848326260006685241137939151795031866766629504398181566338290614289308676805881358351458382635194404831202346978881951894281933898282827291955781987041448937715661162465511121884278081592718485136555364836103119366083994075570556145847033081791531630142950032401171423840084729138746465729905571471901907813912545379186830839394774184187696419921237977501595082381670237838170013313617516571509433555419150195036387808011825405850080933341053729924966321251351226827748934148877687082986217389617556792433946548193871497820675235371001801429077421608510370070084079764621315411593972582100348193564365450927177483489013154080419461927432527153488474368121697623515317032849641931706436234686385424444689418081260482324600498244841548042976492040398284373966157599994430096631904497066992077169240076831976514129627506264443534769143533653729646127850068336842757858556233279706413609679929018030513723596574377326531628878389729381366499558193001047555036275983293966745753638266819262754709252456386270990646156630023408033527451046866124313299431665722457832406473643840348436900989065875082414611705067436702653657047265693833181987408101287931319105203489569444278996119719709913273868388262514176017155873753983363714248570304885573954067503961919956852640877604956009969133620427174259286680426185683612010743883737115868489078682033078542148184112967690895135444495397860604906818796065832176086948318249949437153075191935782504030315511621587007125226992005541380779370031064545606133231053556964719729264832074960046514197093511469242911192349723486438679248908723217303504430443040215311917192996560615545974203033168911522898428011297061413984778033117870808857941158947410187653755118171751553413000711630344787719629032430689388627501621669352542531245516936704137739105185266526859031763197387020986369363673231350695411552999982483149488497590330700324907385540832644209896404751334027856228122716223888660903734322780785229682880814871603681296566691169319591782085572695827340435689150669635591034850813239130177815002674627600757327454879332151682706884383006402669676978269858437369194263505842397691051438244922516153171466875612164479960920823971416219919077775750098273214902157643387746940270496890458907641177745232370213237106829914851486393118413251915098434510266726064801253211698134682128382522129252889270596407108850568921796312560373030704929343223775065646689067767566447663992915515324536284000481612305742227267362715850891332375467012251708760022017467605232209874706494318414555820362605429536817861447255340437653165729512324866329100284438489211143071446344356734097148454916478352769925476053666164063480204481423952228015880633158276146481885352755775358398534080322723565785801054907910088697504179596346695219330626423391927434760637755521148436793526321196241363565434603407336580411749638547606560218333665603057235317829210212824544208488462535956962975437478750905837020029620726095027171747554237774749875666644310908541038469363040573172786433313354132048304814928288853563122836837753514737629493856573798735867803449059133239738107546316662755536417785040751029301272710259745943570597245711236438341947776782094251791252233376689041068950150453483204700383231631661087211783205084725075860134670023166615142068596158557734598227382060988264747206676876972438102736072402646217877415954704644245003291803665734397382494577699524597771473834530007033864970913240536404186727429396430901068739037955334813578720300803604716363238729920205509284153798871332791975768242592625016502684559853145317070733275260813839654654391324056492727960369783641241341180393839529790025917771171740433867483919430135623554792532128598928847994283695941482685057844201430011899921442188758584321299589125309620543200310776574711622662020923896526990056081023180621772321866893640450947160580885837414078627800881621062014572780311451554817502369441532813438267250912836136126732724900421274095776225720335550833204281143582720841549409959177247126800749111839923762609051189495794309248700726556114643284603737069976454789399765189797241795828075262904652700408783112292131949446215328983773205094158207841470958203261606163317862830853104435194235042242260321100836463807846462224932089206179332511080473245548888026550372334033510123735284572769584013711728445899414061355798933044867459717522505248709693992626184899250595317076871397253385180527124388451245793549803523565053398081822915206151370862331168877777102167916700467343406610495460178670819640611425059604457994031331157602225743011976829981782059243570603221141919078653096820261315779882468207694797596553493582288197894191499548686334384835026256043046293302553055943114799562784762980802644698556006430506624760704266557579512805076555566081001887793094136388887571940135964178993007036183183766058407619645221901747561467975650956784142737913211191875841082406499400900203946524872028621554245975686246699343944112734464288246347074049825672186805096975419920315875200511366525867409890240262060068396713996930799086900174965099805577330246006573380466040676912363800691590099603158316560008006586004857196270192801363324199316518507533601677846200413547564205899235171186793677570834850209682174359749513749015435741973474673490256690602814018584079961249056486272028622424085288573745107456942075626061002037360430104908876190954564561689860458734035702780934225014179951441683039629521080417560270379381865469816863300938174820377555737938047385496004726083742269832576590267268441805812864152303067438877561439856778860462842313733987112594585439406923550925938128224962239644685778853794047163503299851066047606656298446902798579126064700741272297685206756703888257169225710645555783145660218017437599208721942930017034141460340135269723648442526536385710018946640060084821825822805290819475341671401720586236894843490001900103808073731688359975101741397527490512967493868298094853002910566258892258721173112021884136176065427078879393538252707862034207397562702573287435817325872745964866337356154984033117022258549901489961969232212049523265950471732380972733770319824470999818890218133057489649978617400740445192074827427657025184243652438066480538085027544394574600636469456133340724504761504771816384933940949348687201262038196763051632476297342042284869607019876354368495790007483979294275037158657009553631712129152988297302517271807826673711035284776141527827535830028008754764748388690006054477571352464762526711322750810055608992545984913141267312916851116657321146830549866850755240664847085538959127087247723402169382132440004384176036005827044055566001115797077932733493268166373132029343746070035747416771527100641598640705980180607980031107361006874889375058429939316802731783073741513552057040169474252613998350233889420867547962560035768726554735388636301663155779514758977871360397436819902048158512453255763691923021294774139513595699305923949521951679477883154128047967966166872288923565889836549437927155350380630973560922672005407185900919234657587728579659505316679635437182528875548966452693829045923305236339665770467925580771042191210186117869473893603119469530396919051834842978971498238216230304998453740961048009955718174972842363270789258112558304538794964992509223185932863006620720910822288125291762718370983601871616975343579686455556569920176594991712191719166375416077729114911018809136917196121444290625403822629699195016567891736406748376278229625973940328770299301549558508914835736440266610974892261496731553473332256208625429868191764727534102445780867224670377448519000611322732817908623942096831049208119812026622600438172011500375624911665200038029475675841830072086715703800335585591053676931921345149176000951326719010360796029435623802456001412433555336046013633233293684220203936147906979235527918562490219530231665106017131006336030882538313342047431178971528134545051559039908962212432130273804614741158101775992070383066759243771297075508807945734803575525249843247033143623522725399953758399834334998774253397371080121226203418924550791107475206243643093468974968481439808807760955608150485451293389290468385443611753467193647095197097914263931649018726700801030020807259871450592752284834120145476482701673613570115546933562807884969347690680152966155000500517170467795021837595289548537840437950298584917150867423249814351934327841102501246039411271694100173661537914197914893924497242964049611184037221028570119856905665101506682859322809216928558731337201295287912444323009829596212905447561860505160204708963815525890969720991119852023547104188675681942008372247505337503436529577162456565099548441867439343718772702021125775784476954010875396458646768457366561742743662454096577582810912276866028678879679975774869678469091724619556196610929424854969428987251854048635744296601358200887990574753084723762426709439232854324757797633944131727604695083886393773781464878685251688499802684248472082200145023854261895693498704658273135024587971756974604462420004255710296549222928180691291483527822067589458106453204795715482448414024784592272243356830085415119119284442254815589715003533263823577070066433457396364699037625259684400306124782794951031550955864670925523335102346356714705993711803533700200560157989254423789924054534466451806740728305728345993796061470070321934759861324103572645084784931605861107472075065400507529661065529193483246871928593432670205714241420739600119061562207436806026909223455369390539216746220104670828191636245811791427364737556484709146270609053219067674955371119520445263886991290166838049861512812701830688972570555424740129808413111307540973918933965405116475657410519970904025593509379870430702047404832419262872246349989091952441520941714491754579691593901029317194693872778270499134043493724791776189512949296086555127061236800468538265399245779119773870125042040970584043797619516073696669726932500876795549731089612637432615701673380640548623949890606198064407628371744232141894809692386731473690921234265818723024743640206925609387782710568146378952003178058621487756039051943294493777873720131377156418444773508282790246787794505978004660563972218070364225395700527493719759851709900190277387849807012624869363605397552766323077009422466959653091227928405671471055418814639871506427625458679525992532274954483531224078344623166102629009001327494239944214592016145334551457542977307242936738277690446070944593052809888471893045769651148869088850317539950549492114052044359454688491643267236580838174800817802286508195065478504196316480516736672870363247591572491819932718338938544170705775700005548866717274797448065357412543024735088676586357714448482512904745571151444088344845168189424221057462780772958961328906259114052799359020858855000993675824083794665757065345996769992789513514460368157244514264758388213531671542717019782261807144535437031449668640037978831741164823383960145312840920576671100198427459160008227212354435708399256958638753919510089758416987702529641933109082711917272937928565963283900783066206343824409725384969696763276572624577821539986990259466010530162732237587971559832160285300975302181191789367626662897452820196034049100015630306983271689910443832006372119398665933682701346949711029756442642173614675090621061882372678571414475589455970894107701553618064854416142659318156862179073616572366587215970363516599157087144956731269583166757214924119948920371414184091667051764250961880147545532376324062327396303819712148352014133625971862288984589823235291983983986301772170639712302324088985166124593971295328968899314206863184109925016705005042220798168815550165735997192732545729721631238609504454824726954235284808814194547134902807742695098158575351531138719987913971064411566437777815414032615154133156315018738420178362372547187236361813047170445710082005230311811388180174612786663714638338250922918149356055410094191704612312944048906370374028740025544308801841363191570658218967400654845209582666684735531394552578005804421754260051223886280415856626968384896278417872573888530569833195052548888094629812125829785438519021242386302349159317162122709312681150331845779613686686100305930794182515645611624902845675043089376779511636078521991168906427135388547201292736872937201819058778253463576429021043692154474831304785423742360069546836759742582126968683747440740254348849805118677868233109056329968715568486838500669479387711995241992538085390233773037539291513932939454645202376684284756432885265430219107919787135126012701415814386130091123206330160828993720424491488813061329575172200262187329488305102956185776048137969492965953528772271372169229025475379667759522502316620688260815095622441208488517075369021748403135391482502127479407626275168782235710542411322558766446263739349296381337640030956023971987638159615223667218351768321418416292337417118103031770247434700551082812775951165853685365798112719641977681896757007095624173953388444572293280484122362028561943302278063047233879086639225246396627383307833731262947603500727594380206624623102802369457734111323232682540151454180312318226602405404393827246615537900970407193465959056773853061465995647509558444262073439256056349205876943971803708840148805086475026228474004139123577330739893664348222812490952843150085415963755253489234603416501052855809443292009700586841160411517051747317176558697304132617356589750553857688523610770898471081452891234614559614724780620305589274075513801737251308899249689133844744067415794193111065048958314204132622085487834574707631258267261721782592410481662151316448608844500606335322340215349222267646375090400545245644274674746069178094536760355978568262065372184602548728455724265872112943612559427431621667511852959366929092280854553587498626105950007937934521572201383396271265787000960569875610412620107048261774229613849171568691952439300010210564632577357593886673082062658541766242485598478456622561377274544649917416357084195928309769159450940452934044200231783704988335819422710530925330803994907395171821491963580701749539023890632356954384644527260887023198627764144308443783866092448885152319995470159952923645112835203690275271378473460198752833422076782330917581216228492423610430673277048541340714558278908457421200660340296382961799402725459485469007955611007254492723127562379938662958013805212408079359942722398583183574105784722727400255110535687863927404122078644585292405030234917501343847653859683021364520716689703177538269719235809716561416491594309088710813163756794573132097908316636208687603197908274543222514258404062839426792079128824846563469148368899615505173514853060334776779518145820488676192613592378145282222312767533705450698922287888098194276487205568155757530847578270326719140038548768904496678211305812204626670165587610829308226372014761076382888334112144358060762477174597382487873776121462065246020405295610411758189106714683278990340309004316516502423493632983499796172882253672660749374681956365435286152663646490528786300147167625741070050429401760464293349533124433558099203808283567357447245836091090244602167563204694896278350158722377545622044013605651501150727240662900377551937266944632049268459650353697087450859470210833183503572637105157147915425935056596932136851570467239532517322521243525715356905162111122344372851609163365778524966727013095856682173283541438967826533183506542340303770296620555588380974116879764806654600568556175318173409839736775654724869393282292493494617681488491991980092668046023275231941823533815519422053754199518444758049555430834988269503698931318953138969069323907666214546618906426188293076559023457649384109985778849755739603127293183508404986165542682131595860432146953666857112764885722222425029197108845523250506075337539115339369515240067758058754362903407559081678437040852083079052860342605089153486258314706256839836005127351802296574724569197463282672582377788151758198901691628173608805277515358920543087839336383973786199590191469158854981585418819463635741046564579504512222337769383026927656541057690607046827687574041636480749670090671068319904294900455405555709032973467091764832065429724596760151002538773126836221447487820914074187400235072321272237433647720755562115463545500724154285957460282130449079617770507080092530542008802915757510808895737898380901492358140793112587869739763805603258318915002975588677789799871578153492136469957010249679100236318776942292163740493223980094083407882751313621718152220066802598523333576925583585006401596562186814637511399567513706869850481347007251877121848091514924414968070723517945879615165108727318082193793169814891505077002499196198719091621509715238455374952977590456797739282105979142815090707480629248909603378092010573207321860408671684446918429802745086471072379387049687532919741206545796194833731113980289887853010582194771498298634196445308185878019201930665143960453018055343926328380442974307987178277228505661437698353105546311871687526499758809721679713835446533824565518480028408486857092160974470660766459513531211297328460969304494134792303429424120006517021502073677186078156868921460129938722862404927006870885766910173380462314844263084863472192671201653684881569408307793127062375373361601071113013820820769824469968464571708576111765974048865277988960829127310581566618197181020889312269964324682847365719921909706253491804538799448831967843748647965130168907717899457046235657745339602303447406727875138832944085641487316948723983928445881271330702752548402646852168334636144131687417608802938076567715381019184582573143520936313410295040733053231080306731047955725240276132931870244823081777561784396108137956569584631357528122743891297699942803306828769661285202724011310657988019230849692000225753676436984413846365848279735913347269095621638735266956269085256282290864467180983159328582937944912147489565629501592707507775136785929088935256221075012305841946031805565836130051496913725738572243464449859039449769865591108617199868494121358995005718657860512794091059978045307823215358164459103959292567590226026550318490679588095172119376701586345096221102381079841608229073334404398808038491583070364975712200833778012452945476350538515105442024250695556272947399053284109503090479953701168765844547217267928249798343294545196222259544306147132455788855653356569745631936309945913447836492944738283244258347148819431746026383095636896739051526008502809944096975223647843897050297134561432930815096745619699300699230613270807939409851600999392245870512610314481166956699121541118576646799312971906646326155386638139473352009606675337645230615164918154152639217037305105932069299028323834294765083400610386098518211483377012749026710356041522505970780955489468909234912055698312983998459913786852592566540531269438699329239750911541505335446292191220130317986866373957933164340997907825446262041223669729774213830068266629273992904145051446455916886431750896333472822180752181249344162377588852908243590530648931255267001686269107158810207954809516170627732815584358894555057557495222563611216138215653805042573903134359112296200024036847327004842344196253396497189013948724936446685015379248956965134905617861621629122973051456004995488752178402085547277565442387577639127500541872331920451753802524338284741350790041693272744015760975179809679626383778023713896669473607965573422666306928417495477925928283905434029788396106666872295887923702084665127079023803881266363135960114176274361090514026913867444402102984614678437957194693901504423141251486963689079624706409466427973750256639915569553274507667209438804102307099986419095714854558800666953955411810388424392964801002652738037713483939987441145123692861859197581861488671886740114841956858537264094692759931757094997253809962546546004041934580430334758005374227525352041009684464172343260734043963352362156978687658148036273820423007310207310945359005426358726651083564310466276785189579317218095508581331471915372682843343987609422948001947641732583825935056827502961801954544016577367477209869144270470008062853553009032865004053702302802087671360370129698691330692996225641875979277868098479139449538676890993435099624612514348075833337675580143607384489170605293406818619611676471280404541520061688165147682840477048864062600671847000042217446230018936698086662547967205789539688503584684049642095447136154083017801509133345588208633781441808868938837140440938370565432305444400152904504988093184991883049671130745297463274076542050947186496625841891233235386755605213773452671728921940285604539126232857159260761438952096374091711967286769710892458991320291904526256975322561832813679136601779092822747543674177277441972455011460870864930281711510541785124376534853393060912158767553117729763191827500726960714760825122124968611299473017338306070573717390844395919178185134489489049926975354755816584836955481941007363736982789437235584736014606355057486711808438609158243722142670045624173987079895750100798371219349536075693749531081682925123137744943765150448246511200553730768625828427131639477920188037641220078452127080985918363102640816822806712916140746743998030151269055709927098296826775234802013419975281067313725527425600041723235322270010886155892480180170139845296284697543428421596615390508617855010688060903071427624448327260923210279478102944056408321330036748857962963538399425150661628090816382300013150493689958706788484554429429145838246958955151067248138352083970097361638151234605079469052510894286762247961472864661209608288426713756423761255308621845761994232216800222179031678949387355890046745417553712365717132145819319021160759328431326734961170512872384418941407642570974244808141619020132930671880338248154781757792780602728122579599949675413610158268672049272806976307691247535080710361430971332759888795335997251684487201118359895912584805806486581698593018830175381210247344364413117592650197386688112314664049072906857623615047952932814203590372467996877971779746901577953531701435312518679934161092497563548477717376094731983171278739958423163255495891249330419912148129041148323474597235265789187368231686698596577797898501641647738565666707758542402949352673333025409807881526833231759873428599954881955288134850680492583107062763912745356143015105255012650747445642616097762098167477024418876175069747987360775546953789621804515913499349229098764349069432300164087186355599886246428664597749236965127230834823187102726734492314178855766726720368312240597076084722259887834917066631638823535613437325386878904591551657882353990443954960283195855939187112127024122190919322335855586679747328053907600638651716555885015945092632535613440595997431058053827991048448000838503382488168738844227398848874114357720122210980042253196570341851968000640100040809409740781870780898559096096821852022681272301963293627290506270055582898806580306557465010849605676366084900771455771950953814452017827773221291971990703596149079896340409855322976412864360585518396569225996240884271310470734321626635660784786687004381354898325089221126090513364544146944127140705636729295548389646712132070888208835298174697151636706017446492189552154172753546044124840616215024686873844717236437269516614283205161842041271476778482958661273359856037230586933301868603232013471320901792204215206042838312193004192311062092438080783383767825663282900318788927521619115462168052177664455484206692557608650638439188180117424922470798851628168290029575889655079415511009500502116444731760881513943471907336381595267583836872223526163589170034176522789335598257805899599911601113885361770273399499701942686350907898430102051427461006518534389966600073583118091016159900298980267250990248915150079274936196203589970991608923939634391968424688723361608576403151332181182427500899380667272358765011194708473308538260430407260930153416009701250882735126738645718748010870524337345240139682859786518330715258641796092224767245313349541444683711638903687601928358435589901791633895124331067195154850487574343717945731129315101408521228279914813068627843254488802896284807896003738272395136847791609628657014335819129847766963533187251552040004032418354138847130042928211844620305073917755854574286297227362717497522042382230877727722259208100271341043253163954232381070462528139162630781517690723117293616293127265549806754990578291314452178946928048196208263031758804734255567313131316298366637072848957277135678553611925179067590517967422625364397747010804918830611843924839921547621092179490855747293195592709156167484921708120709389958640064132305806777804614674504635340018900779882635939098768322879910332494659703664992387717675720639542623445447842591852463115405896421650355988487584002814130020962019578293847148796725049535526928479703730634731982573426927978572528480009481006180836568725071210301038905035389775934083906107971615722496880719430844797691308614997365966425967209838030382071918103499118396511886652650511376214400768791352320551688563043060375686852796559898873173322995736732265828314617189935865475437894243888164920358796674850862286384610253499408283346161801430770980626446619678850887569263438351706265221567894277745228577668085992392723793945931112266251465689404493788604184251542090747432589205962525799374249365523566960280920767204914941184051188233152738570310899733879734776651909865243248142612631584150692734749237746171219268837627836021747276147199953068487583830337160702326071212994201242042112581073820080249332461234827432655994352567958613701473640620498970627115143902067519792520614595296830985870911723559545982609293114033359965968096128739583664188427443405653709509876515703806270038120353685928314915334720399946147952342464752249687626060669435742539844556939064784164121891426692101238122229670655540493996663775443908946403979387311321202274579231504435718598698533451526488518832354256322579173827032109335027889800359517320523907008611189509497825672500801364685975629530034332107157852394085261303151069074313786247845035111961771536533657453674838834031065609563915999803740121793226385574899352674427288097069390810765260812184150112251562135833594190762887980342540719630866396930587490140430594066695455318104227519420719485407163519748622171059037692788072511288615838403095282987138521273305012014584596476941504479834936943819270951071347955349441825669719827760089814635140330726642715050254930055969460005469090851624952856661176422076240020591134772978041939139952007312692682230892807522965740313212203138039045648276018477679669227347984176948453943650404089879832854487336373102235352485258506697660615352395437689270741534272979676758227540032157368438106066012957763291102755110759762370907134228083890524150667939159536973870621527535612757491495643333166839711559050986157066128750994495576137670200686327341186949956726829422609314797318041110211330034897210392080692236074507735272750621096427119912127067664376494356638194578908352481749292019094387348321564437501820959279459336579222569031635003297769739673330217852380560464127230471114565348711689800566677232083032548723717822587775738554488742963559750863307173709453215779607619311799030938211468997752873314155363058251401407566992922545187654583159714959604495991030730927499458577042015368952515650967015544051740927254448399453086330752210725476497315671666731652406145040789443743482775698268039880575319267577867393371589484068759607067747825146448169179695017802905248738097628476021140051445793936011949567298794595946614489580460494644054431684857077210619298694263294107903372255849046673213226088451843758658991657058595368525187897265405682556467698038340461415737931316201369396543369251407678187747337324377704170436778555228651652769946573926845131055367517231348127548241657205615508832621015474656217301505926204214657727692325829633988150150832296722961729297135577915609156279352820360110564033005092810929039087749093796796653845310941734628013903717252482072589126724135019374005670404374936591877597401950096983485592929326965062929775700202629775837236670115065902076367438556307877979016973578759889456047460305780259762365735829385539112922989361593929877424432206036282861963850090662032169267660526713201886022885781560462521670753513667371798304584345609327063457964742236070134985521398816700744836132409299545275946995081838990156848721088412939737553389154338212807886970077939186614466522193710849899613199430789228136101483512102386257191639773934588864963672465152104390122067165013787241554803337617826978364852682205216237234427650323778048592614078538787929580623989678152751549893175067415439046710244364909393487981382077953223160753484306612615490393946298396322126529253593200779123490661053530904530085273086149147222053259533601361437054362268740771122399598994613242575412595276106023679898211671728488949696988243134214911806020026648266989168484706770280813115153912417272455721433404859666424481938514098568859540078056137616146323202255265722138772747763465644530703152413262153523152727025764695912951213943835233721886270232489363413860471844427567994231374995423655378443289200545761477922307400733768796767211612450077704491707856177805146592373217799668112690116853727797099000653412508371811921304743680685141129549672399977153510370917822455439777151257246941875558829058541882812372634128826936844259535445877417822936134661331650143216322009669669398055434820155662836862475438850586804289380941475228976106647745666299707622414622935282553316320527030028017643927456789591290879189721744887427017858944152954309605420149766666194326508814082348424361103522619402721716794965960421247189947415259567173523281520832893681297626338631793352833547686976397221138182738053045417477812353965124675494278483966101529354742755177774257609446729403081365365207913094569811192825898862669165979944129341891438624241017018880018352349119762209616907318152540163535098075581801813979249444515671050227643732352940742348924634461346804388965344768291956190835289259820395954999452088976397163703186414055374504383165154484168169993609193208919869822482786720728468256527533828213517313831604150549750623829098990298642075608735407866557428565241897766631344241791086565616106428774144517015373657304944526732114640454841318314541218654692381154733103308036894564979786361351563681809686740657171568881783359822177029972008607217778003077426454280680557532880664865861415583832419098614756014217076056543665430697434653156038213545970082346295120858700979208674996038815186510024418223679498945884912590560227987491984319662940640151622241708532081445105519116477768781014379743518443340589836603178024563795573240981733638794122400691170335980523645511838899360187697387927925706078425469341562457185038944010663181136649460241508520284272214492967592683947485983666056539163539981951106965389704173167251535172113455073910171172590159342080645320592649879324963337589622174594643982628634130499610146719586464587054633453968313825850872304412437605958515829472982549602716550816979082049851833685234808765817892325967289630464921031031494937387414179913356400254924284121311006046409468457153629084559597003385684098910241158679993371047929690289075792610929388290842305594841165563525552486754052620922080667309940470953251800823450602068150068830567906471665853309137461357485708702443724717927301848443784453123398535049232955143642403118886255413950410737020068458345914548423639118563384028192713592588375178873178650064300739781928166879859896468865422736201301494665954902609335377832064395602148510691204240553604570044777597628049178982593803870310048249474109198738504968155131768091045400346344721423278957731531279214187431778862899223975361535618706240493563938195038818276102144778867374365493435287020550656130744156149057161720736085628903379069675585584287687091433070210597211952934818593734667431698311921726897370516316728524885849334918387181521989284286002892479823986692193130155886419463199400884201146663126576731210677358924195962623050260917381668394432285568312993387643162016466003968773693799550322127614216531032008209587707536385816548193360963918616555754033834795118371013512116382609378847020565187974681067767813133583094052935135765440332899463379518547390701953854378566563902744569894753397946641433373445361438863958215995825940687295481214890147395455642905161929258979579670389223730322121668053781758309985559223554734110168146417731462166870621339176738321389672624921443652185792906552662359863465176839506031785548336778679001281024954340189793153470742298240933564097000443233581125845683193353501239174615374614726974417856917229538514107058424195075701856174875671150192142960731135590560842755686972714135743660802308637774723226415928054494678157241145459099559441093043466147531168995724118112020446582585624706831173245576695131447943036797298831105816134103121144282207948302081660483309208258313332830547987203948845968134705685597860236628941182057439751159685424822860073933237377932081900977232640914592502673221730368172274070222248139673432006699824957952351514845171925838544795831893224793837479232919192265555099135410460651145135421743108203057428036104374546837946941926950758251428323990044695381812802557784455176806737481353333929557238364941559754759949047604506543592282248417172450038580776071012191317495613250678315771266211622431376003728745454724392938300094909808603383570141511470849360505101378013839917564655370157399195905854609912577266441581327482056563351231237784776074532542539463270601151108485970177782380995475431560899446804246735749168687023257198480030956896210306412699365747174206734626210718861927979094244683523922445602717152812518024717940571204214721081144747004835151586922900970872928049791609068596416050238196326003304971350152657604555186386613318626605402766985595288235766269761140221149802915547041248644921690262491917548888947462825543288904368680668912167836120979641772321644159330279618104869584458563795626291104079185363863685311136575776440883820694570084389385631900238499082287873874169472168043746216491472681962199306000265892702124339603926597189242675525657886409817046889094511509547886796982783053091175066658991995185711683129506244344522720839273074785534020984976177705301320937665610594195182698333276018866497714009550862494585016374913635404137869126750390314881129183336465873241576070882142582405364409184353419551170662645815002386957087894094974839658292863155291457930596868032050683730018216150005868238158673533765737923912536339025599018170165219598469960388229459545127151578817432523861824862112719741707841149277686431261566017767674131311057765547919443082865489110411655859235950321858062376058703387397413850812922600920063969251607423748338467640539643528050451787685304176065016201478317082261454136042556246496675509821967026978850994306359411581351841292870110726804216126341325944911576242506020335619890174888134632063577643552673075352683619383267674028485203589781856936300044538721449966080566086992785033322927119656294603470740358236965126065774007711331195828214908839678384927966734894531873810396222628294126777641300215971647160178077526325539581181723990716168665699541614369346847612520515529971274242004581022507984872587759782653982929840412655301521643384419780266391524002686663997379872842094620410003489037138689857202426750794465221578455585043195844668322678204719647248717793210760433346273874709368868523386012553464253118158574570618072835497419461331797929260370348707583060569817018825096736277475495250719356886676831962746717325049463858886079807924981053966285046532421471440373036476670753858025976434447839555955753281694408298837211753697712472127150444954559903612384023853817413705216363501229039186845940923260552203616337070695745018041377441716161012456774080318523207698660300745602514598887017851951814562582742838824673895896778532773767428035827885812227493606725055215773402251398718625226181147097827241988858275685156998732288886673419234332763956010700019426847525011061294765513087477341425527736673033287598061882873054632330830423168476265999174743406531557010555392509679890989224000767185878195486808837007113368764905631173941558908543857421968293561705248731774052353838162663191331736887533634203863300277793880868630307029704240647519287260320739770783729893869688905493681128332957107426129684751876611683574041022740299206651883835361039962474543046227202705022153199056492371548044064264256468832955122604847838169415783337804146685065533150216738309065867012653081541001385530773282568677969583951919941025950571196975440031158102980814723244235345029211921576963230701619840919317341980225955997585913453476099099969211060212740616151213504054021941602869467947378712871030306370478615381829822572859252145547719201634506891901674429473308495039034856348773165352128007791444171826705968578666618455600609522757815282934355718560936580186082894279213814797091248997619020380374546354073961324574100614910943820732700611899385586027950361770801546866619184349691595758487763903895168732513973934972060940549293979124627005822969638204573827934889432634717263545712911741215530744218715600485612415794251284103856628542139112053915441215486400833009233374615195672938988794250337995234921625357827677598949249142272569295826104844095864615444174178828843289035048404438675615438298271836879071242925876489393105621602353956558281887184414228994160893548982146333471432315210289047503951899654225478431172549122573641947232156626843724186801928481000111174987235840706408634301884245832373211695879662979514830626080394611566414767535242426950654633835636985619585808593886622849108632494568324753304581845884875822154583181186746895636982464130036620011794606753341285355682762928164942533376734500418695215637312744421457999858518110529208364351011556786063283936646350857249400735390635727586266315871123876448032883901556768985237039460013983652968995257948213418289946410497258889728044725950877407754267756459843032430764803408546734786070499022619031587563859276838164728783996585474789668493244336091449904132698140058397742390639970665488453721972944732243827452276665705219166155152122859515385021133044943817508900724760433781711114773354782437340641821754797729920437160003147082409367984507350791412608287415584718156093251744806664107240142477267740927128398402599675044780386132015517376500351426489205249065712823587753471775609486543931746638568529879660962655953547909103277777689331550613930710740436440332233076511566047856458942007996828068238012729025743669504544041659543862074050193965223690873966849459813426555290523267098511528550846894511905568744727190019060635902519583774520548026418794912620170773859377878519412054040462527771886116326035383281579963578452302992500053594408086266377391856562858096830347264002050444218212086372571865537413918605082311009757389144704422208930448501159418432835262620870170471048816984548311566438769489151372336096251048737321766380798467186274867460575894116657318215595115257805410585311970836592872853975082136002609346085689709278222646529834832556124400429648409678103716571857303915012623404012782835627533901790205360785158057805604406384719536893854020030504508234724806463572917362208150937984562955145394258991522926875913299885255141969884121053050730535928759293763071527464178855443527817498376221288156360675142097341316999965195570487407977521498115219721390487769614963821016988738382242507948486170028952997793728873895194610548989130309273253786499689117777405323732401133807388439272435157621759505089658140632927022571786027109449370263710318071328604514860712039236502048969819282557821089213210234312813217676903465023855087099569091924229642672287433161754599349329111181891988509155587558409433098983458796010121674876985615807969295069679601390284886108283263671682210054110239502151677002806156637698243296534910199712003300618240947976302530032217606508677005377332153165346025248840415789214416090494578260452709378874699141213970373201154561529665598232021525498483515669602046921874575709862457273328557528134161118034654819186266378030651665579959649665528068689411532486998702061528456937206611356337815014256021315038015935309723962982567939895340085104248973992551436747900862309970293791966068015291565333541368263758424529683492071101607955468711597660606566487237773011033638807157788607504854750313222619451122609101579115462014669517666286128163318896696643056988063312724696453150662636661166931339657088924872371335037716259818800134279932250508686058492667620220148517029022913013141521719895615003686059866621655358790742001129320703155978747655146999764226884263532447904177595449461467034220361515924032598854680021946662207242283471546206756013300314080756867207748469285309712253209147316299043047405102695085924633397813534439637917581983990643053718540226405929207305164450311176193922455829236217068666316021955716202737390435287240073314378863389864294657250216335062684154695861771550306060565274269392147696136243673577705745709478591959897505076725346215517773269846650193654154701050817682549152599308866170939602774780551966571393000191814466762277946340201438359617364378238499583604401297937643110825197623940182785691523511659478946815667187472302810479064497920767543982991813576709951980311413484278619949508293793009010887771735694834811694989517919865538840000242433082860130259636321230562786515507483934245505308996940917646926746785523605919341776294171244444270880226137464846354103675831216092304924630559030420170678513421560144814513589539904107375697631905584463737323310650068180617329703229985765413331635631284740316016030827820036935280007187683087054496278255045360767834002584940094436813320983961104947186780051383962495296891247167490531248530388414077214353681295709508717437643503960394840212801279342363140962253540516753595798703613471785193048553116395175586092897282885203963056908571224668586443536857965414637372103967731721191071873459484559834903992184126666834174330861551463968769095686237676449343378486626329118120039546043608616090373907964885637422768682531090550242913880767585575644925024860745161390696094326381666505499841306297028724634885481878639361022915503615112751593527234729215393647380244186203664942106211303908820167554006753192577148210513431597898109157064679780758111179726093044616957013809319352765030283728587283848021562178244157313754544514361059596767712417688899978768603761557178802165190969070152278083397429133063048444560321666511150822523080981847288090075373894293944337500610435398592332548022021257089240219264970056559208210344300825255553957962719110953086527436434657604309532975639738054265101679397525776001755674890006502058714475824511327602390487798899185370473103037831109657996912237344707979236357167819873834845122742771431160643490335900426162560271388875036251735943981528781659838964121891636818605871909736711858648747842512840872999362473797313925253729786580683383870750291488930931869965262908807860085316792370898036889771008939617746554314976958129639521722776399606145803987182315475382874307118931342545474962533424919405029302389306758045623026662787401512274397082603793647412672059461813939514139707468429871516500575526798871085329782442178990185167605903022574418315136111495302535564868953940378648624987137642879212811470611680897511686446398124891966510333041225229240946468364335426498716948698228625231649815068133192772450447583275458179928144654463502932163413253562034384587934888908872852170400442152323811672250913396188527376225796534388513548219370364850489921223079710091964602305780737142329351841284598552984484952416403308385088529097847085296912904270449476261108819371614350094476574805837366995182090254893798755233478210993862794882005535582845218595391450571118490848519754282570064083031966918102455031060083212699829247026478831756455132052495926188197132812003076748328849346272148021783600008818279666530909792588158043402349964254386502877973656078598075862546323020097869790334663587895059160168605942955786825461408976876334665631169183768073578961203281400218710786062178804267179978342984590102348066223500950393042827692051961833095664888411612079646165713792742635893427497557833832791094753162095660903399223120075609805203395801559468958453627472819235029526260530181185688822055776612753686380098450020029683803763330492581563665732156893485182386645596629830174775699084232172739340295796296801432818853763698449210242928374000536337360217996655478713070831299520814069295929490640978192172627556187268405935753409675637964692545848669760064585042733147737738199314166918468111351995100452752595781872564626463705590438155199508583603984231494241672162810027833707080722301785508901830335182673096270243071530112235708676690226452238306846606314032992821738815797052162876190766952462460999998679565573897944025724465253174896744332949174569878805121387794543612652064879102127152061378120427454764725686894585758252873465860957826411787214848602402177612723846168860190700162572633842630896807626459529155198454053184257856726526002054411039207250005048873767516531987540147889688218866963221507707836131669921070124292948307672065292751337987862096363762473421536690210065880894344706531442193442223547722235648386784121749638715999138007234689011689909923176238084500674815539386225578650745783023393020126210182717968536513794575410074266853087680165372599294318440758801538564655870006818000545510687033894703913430278631753598446225597247888561870722549643931127542295506223159030716514280669358779363274319234973051366505320212104078899086329078283650398501330814618333522254148495244748392565429026717474707489342583407952587020949147229337921100857908951318245339140748236461910750707356004544693342930696384742334764966647007644356600922953261960090809695130507215033915463146457466709760779248608543240236333648811428982725750085740699059181201471412745226198270333918610886938804001117245246297800453512745268123366683875625605621695206233485289194059670784357443248994887042260151245797000177727721346056040624457810031865169063569916624461570169078736958284355407737982570818003245003561717155939445797905485679439372580888553870462599383260859331846547681964990245718043280995235375055487395502787705152721237249418936642459155185164825112926929944652800271116032001562296608472004450732859688582707218026990892167307463600584991550974252254582736979637925700751577859608174195439841270331330692640816316412321071099039247140777220679307681280262252674158246876232660374634853169699428715641085075176143886444943990152338744835759379868863923852169537445214561040226029287057100465017044249156954662436300770853740280401782363579145504050091387912858801335646060629083659652564316795791868381593076496142559204367533878563644655253200482325448279024161652583756462744915791010966002761178296527838710717442692320540195440575875933988192224206394154341327551917153493076003772640596473138413482687725656316881164166858323935197101030414370630232602057330284628709543533153368120111314071988363715118122354389088827030623644693713488766082881442191795912384482854844677816226580159226947150410966626519407095384039322882070390250194542340134700873253293181007511092489117740158337506511491968945781750462382557820550938674301303893694919836945698951997182198303581084240156194339643122353633148722188011562656726436075273602208280261226268188110186014494011517512522845618738473205835481254871648764862275329806087451143845401880193844178974901194929264129138746837641604999671194136014433125957364239789116353144803065647126182194715426832077085683966582712599536161669073684358825638111542342075242461866287577652183131657857699588082675079876077325459359080497940762278085892885824510733766726419498591001175624109263744453507561117857293341765816159219922610100992299747791050415600432982256326919093865350577112105282456796940090857662816328145045801335305609327387013852338193104416450007127256311133455515612702685329084484823834281052566867617175015642776840865805550191612847505604390261620964703606723223525021288851933209178391573896575523380617137630995881400494620066066184343035291180162706098911899933506424121877847235268557134217880665235503789240211287515348961852369691721960724094698126691015018622501915260408365682899776177091305016631848949890132762868015319649975144560426263633470655671935578305284046769745333896356114784092989938312922354537511622801734534951135904126112114726145224377730831891799154846132926840465674498765369140135678298821927895817003688128361365782056022802736842696630887949938491534070850598568723245853752852748353654222452364567500353248815538249351907100970411166206493175431881726558663803910437653431324843112455622938110120839561348042544506510328769153240240795133674656249308656912365713102142700486089927101019407560961345535787807944276603336211188592135730818029762960883051331431312946891642713517517242959783845645794385238849525571709009223604907053517016737592160155215632133884167495767498949082726323311907607148783434329949014302725440159214695074512848352132371770445402792906972818265089138129888750348079889582609160353361809100882882124082243319551299678680212174245073147241008189747512707211096732315924969902760354045990923563931900969983481646557027326708202411347957036869343626403782557669105495898615954252460331976317117057375639773065690439638810059209049955137999487095629565306123121052774794814472265089285036800042558734030483210276514786642097237122403151443665021060056615527936922145853348176541692411123910891748509686320489565280926205390442400802816495960691494863689476515415301345978026994169525744148221529508370699975057800828815200543247036879493262722598704340170524892091645792411647080149552918719564463770780343857107025034373216859736363622958513145149244375688391186301779174962988495233350957189155835457584783304264232714002637216897541222121360859514111204805146538422681428036933822139023015634887367351321969356597474885114849170571971840466443633229716163780093299069566248705654311192224327201986211567260262654325907436317246145598967733855177673780200983153922466485097056077242060470083316462349542035494639699274336490522276778021675133682846245201090348568498315763153712841317797839213055687180050513410216596928132558205115755541300588971906978261811718366397014579799557837629941468485710995980408130752265224064916381238418151293260226263650556285018085776314603941973740122325944240896986695052789039702661304973596381447573960775814010707016689570670662624472785974194936847002266499650091303326361838396352138158308335508007822962097451822517480065100922156079977995115168831726254138185563216858486394563448498412697633015970768625397457868953829033869399603262413668023723110725138336395400166200587182206755438875009410436009615993454859297836828088600214588229836582720813333840160100572067604395195092487338838439489127548166054635017897058941636207653850015476914630189947021313959413324776114806426735358231674061088664324934698149919856440865103426515699169052929371930100238082838730404897091102608480919351879071042901868646930281836198628092026734468351774398502095961637742482051661273184470643853509578990410032794064359199279879944720864454707665447354443327836280657187329512097233258012383215997147012697112900827245545928047707075903294748332423720040831843785203031707709052570670694466780782512182653599820250463941164037351558782703397857972960996963396562348827244811646836568808292020264232737171515843391119051840023633606088805020122668612841818476443324783066743354916880474974509188314901387824302845828895496247059851065168627757892497929004147868445176633789765362541364539010268595812123545597946707413237710673478207240637132035991494636788902196183457833338877998521809331116450447962288563203553306391974384910586242454065884698882617798314103173412996307918024873664288444567007282582547258410144623753722342227091686590713724768472897519720960524837153179650272853126604898119745510106083272772804141289295742573332368631040415329933648946175568931805113747926409430824738315664291843924488533400154734129213776961569056858386891586097285076240384229004790942106107829247825608343500085685632152988239112957006314507623168974430599812291557694208120188598102777554531543385901356797680446178142792022017840454218726389267560201220047158295909140280058822044148363814574333802567992565546156324381760652352659343879606957482997301308096562980691130676166501648656763794650189479336535061204263286945132836611178348258988681540616529617911700569406266212456622849178412703264464563218354938979084659795398970863737168696504975588928894703851851696940333877977858434523613033701731206059130298501597860460969187555029135416779937658030429868066326266133012557335970228905969292650540723203979335305119074047904800796912709438778956677575222291464121361622072694647367805885323056639930595104459748439860860956448016479977334856519257958130098105131032376885538794675515508510894873742485653797086292227405227769943582113326695570844621699788059083028278873935988370919688543261907464036162510946103083962902364523450650364398420501352810046360910432266292128586044925981539393576646539954946553292108886993774163004813136864319731270733942036919812367097145227296713165666141590858831739338112313853826086050870715964963851762311083630236594448163922660316359082279602643141670799967737226996198408684543549449904663058391856024633964396340450242497071653901915230124236830267098559659241624870184263783855032973026880706127333427960785910397655404736307838506433575498265149975623418442535838531280297379414697059728781880741624866458426899095944609436439674199682638147649973577513457051566758623579833345839925835961175466379645753694720138158753696851129613045692262502215276961769043957977763870265382718498826599892770112260868735627370505754576113781407953916641166722086850017442516330422722716705321971499824283386464813725933492193646879939925680136844224698194025491110102408975166336957706641219353071473651116601451193170537755338305009946493874585422019451784622908529256117472390930702369005836950335619894651050397008209750678999670807504681910348376615136678363220464685766771440386466991609453745307709724169333978109181480767246062940370135939865547010514341974048578793035101339782387855723454953915173692428100279450512951198749215022728176260131026358931764961431253993497354994022589778292471432464133621425286300846671394662994738597152564136147546019347350891511429702384268628642886586466349115430205380036447909756006089378175319131199280252477648984587174046657846378771982991896526574508134706147569091053218646149112942644842531585207588188539434330820487536106485576762173880476756131444883337084517422407965416050857840781527240540113603234483772782498417057714626435544182060047380362052243976039300292943182736571326537232982660368756515775066700009803617995762760209264421381136858548751329997989906970718053957268466778257158644378168180782782264116140042712818988605070390126297910762701598090055011907224481160283661026123785925851531255431024549313880098978880161268034959215495205337114267517240523438940922712599586165806206474859809775505110311472862506033025595196022712491954160714826393599703056134238717449167852352098470810591663960900987579285563316079751631264437776926770071475910106131916056338187543663883242969198263626422770035066260465211894987325027120287043149105005273949265837979420086663066743144231680372367525736148312451782080889936129469933589713651677533548633277433669370002430692170361676565816399141564639314763334196417076145418482266789965816431275488512021849633446184507155649532126000426892755038784519500088183500726742582896184863135272353973838766501241665378909355488784560859265665403177744632538165474820286787523048839264954225798702352147272693890581715761341680305110922022305030827815984207832074129835432117732554659389183695351578610553384985804529344447371110228637571867830753438867818290745444515445919329800285537175333930284973827084191039027175459665489826015489398906247005161253975306944672969800635565417858551942913904331019004182895510561644176875703756549167514013466283081471643973662574429526670976499472154484286201731728535813486234721889680291197541118908866115122625360602916321715238634300442395655315070284945718302115938707086808677567424735772672797111440660471099389644951645028355996829887363696812696414346853432487525406844778877195810223763325277588053331242925065260393228973749831683565196711139409777563924806316302907348115310311952973481315157294238641954298823032150377923978014028474690677659097344452730284137044469772656012261353810242402220044560207654001912307008138809411251007777369324120475094856748150531012642270722827444946744573905144929677619151314457697938108963575642660808579375704282094395233799407630447293978144276152176431905783181717024753496138493071933281279052215040923840008763183427813343449039336434032750865999816898251621939665986077785246432782854220728087389931957437601158467252561153204856453562977370032832493448764184463489340180785268291093987736259231764274058713908620060163141468386048906592529649574771079545163201711301750117200908297235325441762991102627900776263722532949694764948238464755163094770553160486060919293012844061359732152384020258241621008565178957749477640827079977247980270359619540622586514085374378446931235454949059926722901453201776546663488431047643069276406950799888003741078921231069331726128002152654756921798648394478044389835989591406138790762052741832361353228483729479228518652677636347098339408670840572769802692776822664675180957834835596207179925952172964758866415574091174378623107446605321664228780047786561026552920717712424855078900754122570158414696782477979029728778050260029528113936228130500148940333475620350264292844857524293535001661261618962397447859952224572152149347276796635006156702526544697680873502734181269537243506841178407154992875810878971554567814623631558450075843081673687226818574530365408421976017638852744051116181322978775925267352013581538007788149417129318275577044251133903964814561262195572509997127983490594189871540389574379255245526638598300497249735124491062109416763395924813266868019273288631820528753310945426688377887206491778679209894075352255142039636871607090805630273234665000830785887002516570136549899354925174623244776862858158472877602690507980563422402177288233708156133045252019778299745180904497977709542782111692120248937349328304952706959507417403490047092954262646745653747031660585571676214017123768238549059746587321291316400152910860547105851661506949117681920184514821288019924560105073134632022900239525485235004262005570887678605547658552660766940855639512320414418643783671497092796520032649424335376658834885344884589326023902771229748102888538148077937558686369272971175875885234335083251432613644770088453413147348239807301285784220368401716401138909319169322071985842032246267545778400626940802451897541258275593218384507906191851059167577951311864271620591425435780392369022304662939740225855487302465362133990927176921051708040008252885919671958936061832302382113487517475341112509773367641214124528783741263847959250943622807574914265722859229622685993500180563863842598220416637596651670837657045308750999008150436597511281047844482831529083124772295221889961226044207369326268212619277358368861729638621569755769394136708771281178569116912464359674920967692918088197247505231575657945214272253705676139917149867546238915154761626373976088669910513586847189831098723832538099132238239240137311626381598352630862832645591584828581877528041425983175946415843403517978278878955553560423972920630822649065300953747599236036322925379607212056672084512611528929595414323191120393202328931199943184442453266735195155951513217581833863261838686614685488578804330274427159445177716515376501171085134005586779158947866641295800218431599109986114422599979648071783647458324179127253936308531615134449232593073834465360393879734189172501620244030653224486805889102765776413252490110518874967181775568673669591736056789840067543076890544637506481397518281252625317654241488164451705467124244106098914823764939904666420079735837237534708608303139748547795083579934618031213501709933942758747494116065117642378338408363406240412735507054851890392201452394435162916159794449372848722120625010694501482664186624310730179700545571824786402742740388572252162676599552461563048518445891446175068167439819039474434323767690395764846576854069932444289259662221847228709869433056617974879731236940358301793758588953497620249275990699086314963367502619437283021805654086781072166106140033279032221709321618732517160391286114105830816342815904865537909613017265482023524189405289475922361844715710812679214205481986965370257872873902029727660315726351044508607373465088419477016296591055328563837595255803996340050975748510837452911989576938822335862207411319866045149512380095163454424482980381576367323824272775448259784031893911998339394241167729563736320746649884023346411460729459138169463049700039934464578874235861289403668065864875016128304403791963684438138594598009057323590205540477051840786197498324752419634376373762903628144491511726930481301958580716351408321196769334114443927431630270877598392796334279428208502498744866542294165999011617260070746214036755647625056692909206532052769029591201948588873037762322149113075303527394188398641233131826614150272605475620876133190757255587874058750209978609856719601053864039706053611356794102837521037037749242113920625418238464791337183085658098191107922146539170045143762001858763485414384339394650567777937972462838732157258281248145338352715068047737519867858523096517633898197154640363614958706651316761055032935601037120970900943774103244291350236344790458219117565303165388621268349331421758762739927108617107662975843150945391016468894390529675374893504127660233923548432917212451273753299120996670837280524689923402005770754014726742010684941621649462915509894246540850518644614131135170179069585525728175615950332175433542810510623863745203064600007417496968404500317949791037157543430952438645021735526022526321929166048810791889727386447145847758436847457095365662289592058023147529708336378138452600940401994523196854433076905783340685321770037704823970458499345473456045476759081998314245175390705763508246882085129231521821398769558728946874076078400123982748418743047017927069524784068141529320687011487333754493141058713250953192855512341667519297755677768543155390294126433167417931627202719253731187276100682948206016311256965450258837075018324026026545331917555876193787590999349098057158290318522736440787910323414310358026525760004254225426595036030939729297630636597449578892677366527901545683971996604532022300059576219326686591523619995464072098414642869784748064899257128838391619271961826919484174264667393261961128259869649713272339751946393464143839460385963154955125518085670632902381250735770720846950201838376891203451961385192179582738146812790521399881994298099463489212801675359747686947749425903776305328549616694869704293611744985869371669412619250045743676898377231328152057103079833545801330134475981694846211393271381730921865454321370041353784227457146043752295551946564029587381989418444834788071911748073165688535815699102585893404880403677887609853932141499407641503667968461737488877289963836942565188434550301712423458595557262650481622771565684500876250578145156948301433687328860982579394925920990931132848640702272843084184373609037579714171145694482112518929663314851315993286564277185528911980074787959379731961671215960127974587015226894469780675113911862258835542472434459837267970308113362644954151892707817689144693450480848883785578421456523548017480847037248250441468879062151057540377677457074316777738512547492921737608087977006297335333083289528205723346683325994449790651959429031441144883559312864133120786424730551559442864404737114647156657180777998410870167849308912640536521499668240790901914464381047781745493156482667318437021006840799100330616108787793528993185514379030550510241364152352321136670810724039176400882103730499168342817884822527130720736230511273608897479552693267857825828938587674089476029942343328360303220714051614155011877543425690822972188320070108719959359788760673791037834341763559206423878079073708253186341139481833575831533861340975465195128134907048646113218542976932415814753899464524155892447339874051764354195594178702666594778344398382187777927847865204702716012766507432642118613760617473069144691631591479516660155611694140661653087108768114537828391172315963627700727786081539473280857175446306584363991010805451482740979189884009940930136594098668888910513714902684055685140803425209255383598797660909520205961832880474018845608497180532377157348798799086727863875609670596547461539014603503245963553935368727147539432523713655606853105858200982844209295899761355536947752675140385392193690820405914521068310491175053205630882930023635490699987239481616872318936277965741557187414162987182735304665852266451378372470826107784089601749322871718621219383743401521516141184829761494630142877868910605962697727417944537201527688509285152947359499476370465609696716002946483468127868484168656670049295476079629925774810381494899236878844405566930317538148415554703006962247422974733052816652052735569416142844050448984377436749828317268720446687846311636758748274779110772033349457477066090332241116484264026007752558328486611792952739854695916604452789961217760217086077106545228302947025383659914412334449696982042662463232174429321358642034502653612237635539299113765703983074226012620557201060330280888669678813729736663788321158622272758883107292905855002430773324422145567516274883306349359930526181725880366654263489573752105391160194102269240233621942388147446077797410184408099139774566552440328376160200598716175826115408057858005790542253270287078487947602033690765275882833055424180028202148244918035119281354994048153457989232523075110588204784606751994850846215414818894163617658325108309813141876652311207610981743194084670057633051573309592068797281700426513260215820874095489168569111070310110651026201256664195380353202666564451433582787414276166756347578540983686643722968022388701985084224138747222083204640133811278141532937153539968674927112758504066787657922830946739578637732636546389403545658459477523825094504518282603025613064708374382090713088536927819266239836307862309198623332329079457037134695711725733956168729206764299605464998320297698612092645550492080227524194916785074610184201162382045261869740040079603823973661049527587065531341619489824786602931622613170628278966259448319103535804663565940048902149102413250062169874260937632329344251392131971725765241588593083873034143435548796904240386456862714265972017514169985063411165415535152459726704702421347017723121502482031622257779978201590890712065495003207417930215213190309586585322949930782916958620761082183667781153769577746927690975576057272439344850639008667459712096183017061047037625966820671609164291082772120757673130895745817301284671772978810742675130211747124208492796115410719226561013501665880509485539657791318541652262571343064334396966386228980655253544022475126796178923653645155641350706229992160529133014779374786018895336402126335751400841305221847518591432574184590862974287295766367451721646914065997330705295450885167881031412184229695746647908404307076916686129683894772601023659355936730571884034113606642010458950980921215012428413177500743905816096344097040864442973552935060347139243939229346445756916908686115267886533859911301442700261288889814981500133391913859535761661436423445171544160572919357175280062626247978121977510799228524941169196738376846896786230039983607079552682740053413652384709700392481479046645762225900196837430310143679160432508989393491208034363295304767977962374804299167476693829159280698224560457913513406899036898449385088396040561023986804933291178035890441556002678284241550976151048799666472996602173262348675366178807715285570032902378928512340198627565963925582329486511607606304487575226097402143636605718798439584182666028128560950035847363853392357176684894167045586706212482335371666026499691361827533255080166322375663160490189318485408332407153111405657347327391209136968843585083384769394750758950905083086443029672993954918427883229207707152789141427384519273249897818356452861005454149947552151071303359645573087876638181023525952299915333669513077686679888169870724033860044807177707763768140484772850778306208923852460286112106273166627415382062662413707470435105330826834304641808461743190293969744187011383772489848441205734840918717776460804208484002558009011848428130170432510394819040530082683075801107387511365457362731214330297737855274758122432902997720664554505469757603580967106121528689258784869830347060752988658293006418678942719949365423272142909707122639154820395653180080645883998538236431976897230097645886752722541145628608378793525936516607733102010855236686631788263336592204988058769946686054158885402997997401030875467485971746593764265758992731484511555636607492982031663175104744800308737892607826073022537002799247636467994370218012029573906110628881067790358580453243183407457286944425907973938022103025433000874499686241633891266261964063848979488786006091871925058051116195355947073290986697040239385138212918452179275579732347707427265374442720676650015446462669499760063455186610623389216333424598961668327272058537358186846602673224792542699988999459218890561257290348986331520013301317126962963356195743151380101097665313743323741933621663913019040776553292625063376355666063860943872795169112035796162926264374779052606878301279551371949079805488721910682536847127791644902600978661598836919421619165125323512780167579454245867105343734445356294916008465161102111477799108295825734928837064695871643580702516919935342580347052996947579785844534643371491421140324142029892164844290496699596993152784721774213448449588761778202641689013236501782081199383482123019369063176432543702291179692408800660933195218461861825200817522565993495049659236424986899699189215634181453879791989281665131348776911074073198523290552860261000452347668503678072462436189603466908154289194544019830057260756183612269760721504695586343102844485367285160580468116208759097690397853031306320005126683452289365508133027969502698992383849002892814556177078452641767612167650395140259425464259154996424517774827480113625592802338748793558662116638606572500055229253122885493548465574722375724939430131725773596971156021156511106962093421795345874897627243437038409105098650903241386429533139762967000201494362355729980375110893772811244273574377032935141207843416288039689968268887366028264593444904359589877621928188964953944997403469188358699959985780356419321574768612568141298857184037411002370535059609557190841078788620505953938772770199170075359321163793167109770053558787551080973829820487894791952465345283103271547375922881542417513367016500231364115717523055570840792692943098806737390998065174542559189278585110095773623862117832548419663577286895902662732563710806582102676852182872378274761406418813701855308774642178925680109780295730876387395554281156235804890878904393999557650800162220987194082630841124685767523855477546753506005170969030416025273472603291497913390619371195570618461480054644514348865548942786056297041831476092822128299817889857177682073668039117903118530825005838244610170996234051269278807560886872648501337008307700209659757212593981987244506021568524452344194601975181780019739454125928114142021436275295669700454794041181317871804197292738949502407789687930697768740833595946797088437984917648795398168735549657704068599708425658457916981014610333955475967228322613536799857966493287087956913527942941448991997790348519578263654895095965078845426296874817766121723433726018228609830726002420630383337809525671139696572810262217749032912379148772154211402013967095314164210817566274345261823567212238414146266694413136283641799736957502553143121625083382041873327751402530895344682341205121628833352826535687860880356554584119908902119340714063909299461738105958410112890978998223470872887363358094285992274644708133864524160627369976551424541438132395081081256001035244406796178409643799266520496633627454176694880617389020431970273958038822784832100708828170460385049269925679119570468632039364316488649738420348540419123364962823732424447385580015257180424194615584747669675944451254251613943739554529576492754138284337259155305936852342043391263483951580911306816758245590745221088580399464327442171346670530950379207639921505933984434582915714786951990820340275895286372444053277421656982007287721529146639342629835948258378002543344606996316801940394411004211459434144095252499220145311919156562747055302380951712177382105898143670568417104743701452734450070628107526711232594075832015991207588313900994608036354207635264616319831302829085511514783533769186190304964758947607509358950590393587761992411614605084574770402223474316930854790374613037804253900262717605096371068399819904698927107588293570455677989349755359619107169887593864833187423552980239626888484003864043617952784844485484379835192537374043228674528595287529781481424809144108668030259378651467225977846973020819397705869688023779998652248034871070615647043830882472242853824236796584637370489503277882421431798607969856712947062226815332203668065555642055124429934090718113273228617564903356952223904577568238832384200645774793148193930143526116223981635694871100828484512393470189846387504474323673612739372280045613998255229715720137369140496366420135137560389407017063878720086317437686345191893413199533178022756559594866950697154961076181544223050352397545622175362377191108507518574812597155416796079150436986473623353101468529551228651550412737680933077496047642089731858218557951065016861161340817020974862125314052850779782335185136538303077217093606783568468619707570816197046050260981173530311691824198303190887126020818686739178181488831102977739023922099526638429748886186338171705165740189522667513486760488131537371820574624042058929446749592413317605794918781850810355515301020775253771055688202355926007238898921782539029032729838990865364158483902019591344921360376782988748257484250552473855696310282920233776781824480312373656580816430313832079278777109846201440216309775724021649705887295336612040474214881181598554164391670045271596756131388172540797747002242028099996258649238728577513882356650840037204763682896155079087477541337312315848930263028638551564901097332080143968250274716731258476181473148987000895902103516303587226728121524144127956222655188996754465822907117773443841356456849237025586340006639901447891931389775690110658846040803288842288184978422678952994520005905270889711589671458271194267867494506830934174842416919643748361694396946197955958388849097829475051950026668509667296199147998983907646872329781490356252422721573778033893095266531920662247395959579503488469154160489523475574771670897465358978916058264945627445415133211019583544309899500877945049510351261579243150474939921577843242376157259004102959792978397739763275237147674837442802024883533559896916854984018572808560984932664255611123377581408241267532826492910425463464741548844432027749790410585195805034522809235701614137155557272857000299321241130413571502255242803851477961481702546988272086914921217956049694560250379608051413584381710729264991913415720462715345472538898163830013161475428311975990767980547770842287265970323698633557428389333905228644927477408552436418264861206782777722182504462303906481472560885456590670524051052832658592342136862085725060230870913100034141367620559766463315892705080322477335232873605544658291904522470961497387201464550214592432245803337002474748337305747221738372759813409533271128426107052312602550690310838747903820278886939677975890739908752430984569892232669934619158488335639160665353644205292793246318506710422314498067424625365191644339091570428350810272153018724471788791514912410487480097201984417418497304734506115910334974871802654796779542482518350762773637171786959216568498227732502129029276958538085674964060988630196997563969718005920958554241141510606724469757279819344961159558548242517306006948911787685080434941265092581827555724038662854143332550404213546227367892793735727744300679839679396108790455169240558720713611898662380378062532880912772411343865416769745933975679974447220790488273788641517098881210292913286552780206892846532590791051084798367238529338445720336531349045302972203322217534065682082168781075262901348138108365422077122564039161308902759760217708798931916819910774977136198918060985324702256846408658235508567969654009358520332926971260919596719324344914674070712015134109756026548282902001127809940721914042791915959451402230893629525388720963781252471021303692950167805258677835927629416610012193768313343997919623217169061695493155353205261759286292744526007519116174336169639735379374091933344413392528140136516125692356135551559871331789680554525086957327815476910224199120272402956700090040804236574769679882196462741597501422454551916306477898454114844297819773972067335570529133006196098104614329029142614630293697218644271527102913965056743344652247467554483136814302665793183726107998744006709912024040087005561938547095680760024909315413624148442579017183941504725904093895927938547255679566816515838774207332919865953204826098927375334843833748106107318193278758325605761821494901605551660817394943500821761050775338530122806821329813594485780653044881510531598657668586417285536198937253056028961189850853721846670322989255129917141711258657251962848409842553748085900854808636797353320826609147223605410760985319443993642239260412875738155159488904123191780144255812810079145790893373275957525107701868275584178935489215899733492792217864265240277651439638055865439571935262149469000915363703188326256298319014813380568474353020572445914346902187232428226969034765649947629442779754076167320312084166561519420384662011918324024691460110251455800959250314325683896150633070873562418764957912686237314681484790427648548249363408149286761309621603268717838030018641514666309964719792317819992947828136380128062869890978991794935368000202671778899418277793750759659203049809188644603798767913101518381597553640084251758523604990559683161597969196136907773688300800468881597661301389212253113902506210073910689833386538850472529154497617038412742641552914375406787065468796221309629267291319518980638210259645112769761072364238173518829519755524238889723898599961054240010896995754728201038834082193031039870226119074122997727115241212818335789762312458128234228516057878866011238853464122471570924149827730812834054524281776526910203160432443909350222685159826349484732048164527650294886533190366068757388685694767870155672463688492471211555524101527770666839819027677367452322389522560060971004144225354394031337483512235457483641595920932089302566142762739051639685432255418678792648184724005197051762815692692091161764106093531925432433839476379589493417718665992169331761975727089831964460746735499388846980759973914501238276553620467130056026178520511732396139483474219992839391429697440865065346328953092961123595363126385441105554051817882691050442052631302268086394674698969014569623376421748444364789262955319488624135521095049667718355724500118221997193042520647007593282666366832650641375881994388457668099157501320760505883317753580172940039500933176744350990232146179737873029316662581586786035068499639695792562982236380129548095780771354598186869408028366220220282803660504752203750406047285264746465311273438509115696381311300616373663234458900562748259099242255082626356968992674882477129226406606217523137239252526591534533405322223554883298370678506201633714393236172486992012356696610536422823386293694326311127932163176525357168213353303831285727359884218098951188313688702539332361479774005188535800887916306830758088342509499172082620994149605955715984367695561012791941693625549044241198899355913695626285136601292086855874700820245066626655621741081854400247593258800484868578415781240158185963247906478522701984732653240344994032263407904203822833962201249887170928176663774892463373234803776091209783345532394317543001896075852735757404182485971827205982234120195908849668469608152433447050658489962345764213864127073023879625707406275874854035992376503707466018046378020095904957432578274951520028851913636733733975419057080828467701573711535409162647887498302632806075223521391450530389240225781944927778425184170656860622606690520921419322903922439833454368839830515838275768659335831646080089541327196076848176740292990981366397259837677316165351768296124972666492292519145424827198156683379586227393838674052854535455378794001568225931738798928072284403909026726017569701089556741886907004235862507378523249203033192796210077356416632204045197232373447143656985919086325802441762254120329555909080472424632519466229018489022551445265234395986805875041852980538566817400839284927914490605779849671615358833311270220798328107071545303176248149972295257025605712838965635006748623569044237062607454715836456110877429228756154086290310259641198311195271583842129268801187387921726212826337799911531449260029920947309739246664308378519964977673650662861837678364426068591663233415162610854189167129434862251054297549243744694409253637785322766905412897227212255475289679585002441567872947780295426770176611441514277115090854921433846490260632951960218169456982720115513356605743030171988386308588144232250892155115930397864878397047154950688580150915340751661185943739156999416352861027378176168929956506490152359992432762304535074070489412005207856492466983326629932520556009697472957150011991188744099115963196228752117503852433753239670502432594099591215239175775968453931657959689350171971586106385842458096430746367420596550256339020345178068626165081968617633696493787128974499961131480575306362492803845978456823186325687983784125346681841522887402725734905185543952037683099316489650913257916990567613124431785726105487715930785927149642214801349588837177882999832033472726076530862948703740038006702605288663799774110605361521694572194990323731945515579342478384729907926766720005104738489462342163473096826890725757727785216868320299372633695397370575243206958708867874594834700383608879683013258232497545148886392016479439013074204369373284168634271369223941341263641961425557057900898718805706588303571028332049851511123612227198844266616487086030266398528180405084150713614994790264362985638520663035247851662702261310668654816121725495238704536617645775531452936743473174327562288170883562523386419012008736105816843024051408248733758514595539392918055493031805025990821088725447090480866766434303388305439723777052660700941741241885089048052580562717831284801918001532378458973256186084154643577636443881157733341926015818910851861171636441618483092190752166814044928094147890166156008418030137619598747810417450920196215520793877780883422003710441060210752273762918712938900841166815841771926501238852830752413457879643178751729397617997524564179455383600925105380508722709330195833668599905303839294000541163396324040547991292445414641627167359885852275767197418592757459619304245481960307468746868819663295145446995281523888830439050158982126320396087258562133573003793992609502541036363670828804707432388528089960863712652270921937334470202744441190354145519603124839205094303316688708859400409777438555434248475198051765274165724700588919749140750428597119803661549462769001402868470077997937995773385412128163046363285146766930260998621719259672683460797197958092657101558410201517435124109014209443419779199438814386468952825464113936177577704661986841850222160882576883973583584470535287923637939567738115462504453820951359689250492823752759640310448071061558363002589712865663637911258182675581805577016055932239472576198570694993804255282027311115522579423050368770896232280113278262923376247164580969298872650476600553423977462324903007231603819760883659251647023019180291773360713676955215059137826995686134445853225829416160328864223056854714894436329149355466206643513619949898397974199164195879400222773279597466124584094041804082064937864705262382676491861392958362110729064232414851837237410945572987590749588573627765890389311222406719529185055879452689056520356583100829462134572374846521539758829258140023788594040276383695407056063714102183384571291928275266173715926419903414190013903443563064768598416926476035393031196105811704569509050273574015486221789089724227043503162675337046337991929177857369806721459473831370377069903060809502477421327660133923782550905612895248197985378159693877267841214456662533647781008166860682236465315516773624617614360323898161452281026288292600517606388930450863789617755237224324509209508493447944077955055064762864136059874247511146857790575884892539426498017540353392740632900634217355338736987952676370658732096606698733400719040883325224191128861034008410084575811930878541425690040723387351387806410597302590525730091548743195183887186535061170930516342425644865393688433397046398515050399683378178360880429656628696342426322035979626673634098610562981138509936984880929733917420932933866757532498572861999813661188852075450611825496346056472475711749316559992380107789578039000957643779638441931780580593160063653268601392897520223070490380354655776512373326201033426937365618455385301801104528778760592446676325639794795330277029628062239203686704466289154035610659149755703138583841303709108759107538952393451980131534239748978766521669390661110669699367010332579265836273447708320177582719559914628358596090203537583189260118994752037037616096714975981569708837948576488659779963477806283185782188751258437233242569887572575461863597537100248275675287358356029710946326342669843727574485107469590286236919559525463039078283585138883774523530085536257342959158224939026320103580097667316205730525551391212175674470952361053439296090083952022164785781891352561903283932923104013513065039741587695142403439231443328158607742257091075895953277673546299412898757048188254074224108496445169053064723720735755420820436329526970246295090028022317772414382861983750299031953364110237407300883457409618749142518664103650468092343368585499171557781661897720091412723292119926661127834375659485912218224756849626583611421814930923247402801457421584156621724963501240586880075170201851725951083983257775513434156869093540154573793312147023591227154458642065746137792749743892637738457778886878347612159374778277579806305324783115716031805466185059822590325661899320972477301346522673725522939539950632908424856276471997523092077340978542861927662459509666776382910649441563019491546576064447375745079659084687806869227091848005484510056134129807936080707810149128514915470257167449505549815083038180021932730351433906287547932732615971391446403320464002418957793241057991092376163499982220411081495244426750514902201847571481942083284447147469115680108642284743042541676980886706914424747108161722856437522989012553319752855780074395260999133711523432211291239914110478000283854907686255607631386896796564714104331662693510102235747837886993258970573141818435847192213835687903837685161599661352052284132168865209087073973383159876273071341805749428963810371184812566757244764309101062683017071468131436405523790491156727741355830015944283644831619659843509562542776825058449353432572334354307393894794756141820393093101303369047200329694272092805158227867409707277943238275389482858801081189151667582214854879633056420864206622988829583543835935986034876234017859647213055157827511185745049894480813771619667038913988839900861013472502346046877106096340141924157319868147159189168064138907341148595013056166501739790147850214698659239733783242313414433740473796164432437544421041776010399848022496574689097395898635042818747875227756140137260857400619161006482790171871011482424034385539122760013787472767780179086367242818424714485655017299823045154589620071550251132156476646079395765653020584852755658218292502082595310273205714509434017754584533091258052617858581646064209312194096508028183531320503316473679472803530496411182810488551320736448993969177414241361905122171777733441761833551049965438987841944986757936416646740741936693843236906757663156345840862636976496078179878621701978221905224184420866841808782560566344412520355844173862211871562965540208423709181345718903474567261767017604737563658283348605532875315354176223472251621045295689566248567030821556731161400857071943761467109882564109973866335065915176848736604186526009333138026088096974262554317522045808373159736779801969465619577129673800560137704077321991212128140322270709519569559247113072814910006280551396575776003915543407772781574368956925745975628160183384942611185498228354407675576681366951805246210321454717200718561043941456007473716051639139885534713539817879331119315599526796985336455467591884540205227105453222359752979284787095423740427006047964026929346606566893961516377985380046872855783382515747719869774272277748417772334514029118330958767981851839498371283669277379741149926277547335640231805096179452573076673763847693599817921710424510023633130487350986833862714331137478757029117657551621187385337408387304419948020433425858374841757178523545107787363052321729401135199650057631899108774866574609882783806486686301032667580582090941635967522630458847227826978379489958338509457593323617497964086308846121552472805842887686202681687480524668869118958242498792274242749912871207100115992782223436481403943489919731400783402483239407180643968513529653154606759422630366945290793215526019341516668896835133388495882980770199823612617249663479194754614004244939541573562178998253365868151841144199271723230838219298225854277369104159162553398723775449570697264920129311895126607776403472270475759462561972669517492731467944051522115553753848719741844441911506537946513034714381357995591980779372622666650835328244756718527570155288787869735630887632881771767255708578995254007622844020020529496763258549535945555580405996720797316074467276152449561853848209072961595275067136730942990099198802516144625079572097819603840971802983959549515658234890132014030588851167283620109365895383960251003883556131327383978578162442540420733365864328166137738260538503151789958251599165398538805396257487750133265846277239689989120569805337020055981048181585221039569456911762257727934493518720436565942703086633881643796995678025348276613235225476993428498530114096391524089222756881440648728573938800129194675747862005073559095535272278678814560663824128859372560460610932989056758901432103952346565707273221285095216040954483900300417932767657618444734622883893986650504175979558461821181454061633643914879944758530638313466916168308972581881716018313015653642930135545355209596484539746783298370503332520988434554036853769875434034348326216669212959649613305836412186731426980623784016570571792192467140071253084046034780280089470680585520104403596157370392785820211212971084960987966954346881587685390524639011974924702173897294133374740089963079736220139023123227551637015285755955688562313806651510514234918958097387389055626638715123990959149644722296586252457201062893887497272092593927079808756817257323003361151826204010820018401907771834427488865810961187833049200994762933573510538393788613167202079203610468285783786612111128637469934214658551835090825422320240936214797701379306628089061967083824599785361537764655630098812685853839340695463480230871691907603313875519150710966699605076046733673902171341605226618132585221227876539034076320668721106984464032806079806791511392104060835023527916245896472111430563837722568271139243373193516342227768725451433820981318241126912665537741796338117933198799611920311949192029262361145828615225428426882126295693551553011374013284024147867575749672867774185012585966706595135042974516508057227567210613242719732448284457176482482969094116731518198536335958301815390431319292705066422276499892463513011115866399408442379850699486534317548368348582831535781377431660890317044581222748967696477087657975956870509027951511625247551348504144281782775953683485797734911841854045411482504102841689436388545583644207548901930914199040653595936874354025026768633794933064323611561033833671676584186678633556164748834430086383524538308496778071450255845317734405901486802605039358117221557712310959030236701449078677807387634873855294998676622094175385911542213568691830004976481120798452039139516343718986010716550829134246507930867549225452932459330334036964165104999193095434619259359023789524081579990167805652981435721163632479876437150744659492103056758504940533479722424083320898620833453566083669731800223065076976864593817833442029893548805793542967941214912166638006134153300062606338326815668864899567333361659974663526099766551177298233284465679527083330328116579117465828014860633051543793229297824548947841151014438136289631616155029831440914411798917419630079537110444551176055615785372474191958795059685605645463410923514159092853256744970161288463531929784557192369350969246154693111074420389687596908461737311305805637448624118297533325159698114800421624730898066013662258087957020968757993751060544304671360667767273325246700397099408532437272363582325068470245343864096162789463642588008002704728258386955526516616748169399139121364408964653517492809463264372656306539567808561158450780886732405638807405117210686642890335916212118870477504328303258243087646101080304873101910691007858894916430461411933743086281214034088697295482838636983766859101948985123282915832727194879148663983509090827756404016181389611162585308560110228343041649527492492270844181348335147542273450847785640562077974383912379661306642649261041400545165814326468388397069007261586698831782186339280790992032331860286855107619248050855293245639972040149353038101217738017759821210717220880935261210142307614598840628250968750158055242594161129619700165066492408094855271694860035538677834171134174917444204763405327195899385901917341309593292864847879673071135056993206888639239828576524415596602403820053159698545862121476088221233831786383695007243071320924915237307632435340251834715725123171434044482481246038099994702578598829519354947226722189108393815630822989536547826329333772347103326989241227804859943057077278320794917561086055194549605410535307096051933933670293791119314307233667363006704144844929926456188802989636847138604831501964183052818149774908769334412916536980273278150810211833327579847206654636395039121448488648070473520497612040267282546204455299630227846743153837855338765132008004474623007733556975783350883920218568888683610413970233367791357295966354234484722382596907625552986823144469484428892802819602187933037471721670434903010723697988987818807317938632725626548875117061853481228595778020896334023566628612415244261136051331775365045125714673664306248732030109581620756147413293870695340522344024250513038268430847671262257202389919801442679386079787295496331676206254384730781632966839926858869014040146725641833128942206318310877519026813324565940660248261284900977479889116085241581468300332999337317222843530903876908408428482426598030006979045206129332919987141189742481909925631663417967869882938075399135537575306569844670249493960174106894665631164691859769398033660513124984802484730762105148949644430737967275353454061555564506907753129457878669844749698041639761519257237434998482406811714046581880862270500020587785940737209253227350737772283694471418378991817004522760980330703924126358036391124616037567612411409795125922942532198616976613320748105619016291259536031034761404473589688111458708402182949183057415491779883709487715694229502451789100697353822220224273114586049735264212181130430319568114487262331455217271754709785360922332553479034551554674129694155725876198799248968185073168175082629169119746033932188142678866128994288010730573844851757916108926072655336709038243044717854559865346997262523758711066474192913794475560791926153801315297846954233910740706434326238451004647244090682979385925191361602791253690783953171817128694720734967692518395168331944389927786357022058194159923543415899341689544180818337362261144883769176066142248976405411049484084815805509115830839114209071755956992986414961983142114672618980376310101958893206623948287561877712494207856663899306422190002485389351766406690804342642354421168842434383052703915520897897164746548601468432928302167162686101350618245542104134740892118387207106091613347991386051909067007811625600836836019835427179647657680195120698070033286125118885742625566679694327010517148708246707135789825678083809674187999075392243627037202782322756620268530752225349517732616609840609979237985313748609281285205420554538534256601961784546640312794826902414442231398719081980183216007078854086028836324127266661640651538479762289543813922963882304230205971798285509509338316874669879233834289318452425853387388134928310319397125978860891817290159402078589460820403554154162182548782845909506294356704012635509055315808510711408074737011142651143673792479640830180772674450625108289918963743258828988457961600364524301551727325279554059047547898044083544389055087122657024581132901004817177905007639371817072669910669205151930536816287873919658900059500945228662981559267017794710553826654929409250514585655043458547549068473459841731605568299525152122877515756366880393819969288721388797575028002792599149883594259843241010224344456718378229536134957161665262675914213626009589293643453030319003213567905820035973936331974865676065196717872314659342802261391583292295977714680950747131681916420952659071051670203264783723914397163422452184238224794380782340727145699081266097904787916404177512331297429934139480176760881720523284309528035069332499834551085715215100737987311343552940740802017124228918270280767032962168803936148246380453307828181937039879981948890462982206925382070314038793636732270036351396713281600326965937832570078350199009066109132984109128651360846834076240191588797373015175612781975294699832302588859011553714367264967233880312896953158661755598188195768203263402703006208021483639826724518125961738789130600261686576464020595726388333478295383809287489390466716743906133717496998933181621890383081542518224898308080094623458885477300901842856273508330145023214789712282102275743090724501857516507406438627301997997012850495437777317457348980839846922489619131402744620723827238577652248537148360752908263658791732654306333094238271316598079541972402723776606760459251173003069094229629802358867437489084963803384486142135522603548728431156411358719602886603992940639252881529284355560346638605684911538173374452809432427658443438824554750527940793981900400456223321246295345551744127061463600849268205542166423408197829084200311903970893513099710199026944645406963226204186239488053268471686043526157557626985822790708271249903293857543173192872128734676062412580943671319939494224104859224379412042435322798693792408522556295570577805056889805540081248644797833556544081553165574339146419615501285466686015976317765671083185452029935862668246332327115890936831697411128295390818331997779147268892371754669228696205599707889934210081163511898630566661637487036718515246654364991394765563237092484941289969032684843191131600809661295335018081029283971362313019960789400708151436971095233051223671054185756042948691939670675082583615267655648518647646700265878264082943918768191538569664528017409424664132257329534871687457700682144749002466422086096654389480141755473768933629016210599177886589389973822657833275958417685418712446378171114850805685059834286105511494257545730880496498448621750650865180011451532441266521249021459242219665429183494382120033142101165138507181587567496289713223042206708371473340096737555264543016856974939478009020229572971420097094274398788423627944082729147917677856133666726992090206085464103783956776659272113073578560772658656388366228369614852536148518204111946481360047012070468747706027068145238453206290503200578424772282969501377704283169178591229346371730856530243902207349004497509801398815079709948980753396296099354555850739826784604263173172041954646846864845279388521015616213940728633895624265649358592693984547096696102047748117633585628058682345965058518879297443859344327429781713619166192871873525567112236596715651697231305508729734453945045438042186263123207683379944277311986081084141636803935213499571768275615508799952802401183633185781987866946165400200335441802732774981283834705109429452186248099426707949840033794966050939613712223191185332444370880066676909576395357011719019594348949233862311898271678050084302097457391430593896297993649015241819742298577012853977624538422147814869811998740058937199633732264383143250096420791479417241793859320819988555086395926442348256084479149468082128439452914543849281441951351948664400951113363247810495821979618509265225315535371908291107950721597176334599763727634131539656316967080575476706645934481032588076923540609037064532652346952588307558024623274126650880296849497025253486196790006844108284989153264359976390508215577174321254649605435528821632179845539686044217959119418472945576832362564264592827085319414834631372507250296346679651071637280538045017723548619641756615808312897189282961906902711600413087991856862479706108138254609185066829529846993054946111076995502976108455899025479539704111545539913998279607383099966882458004739199506418900713999279820651033503005819006881721354217034453935055941117013001207477371251494409230726051036591076077035130446759550583168321462184164162611407660783329595143609674027508519461780704343682660983986994863250796037693093948377365671041695174277568636066713829473676887280454129002285439998921573197847805388092847379945789850370331940002917700679799356467837286596909037445666295143620733063006163258379447049053642460548260625502876049178631963591459111508180907024582170420940716434391455625833144911598623801294950252905796865348258975549711176773170054557188963224350926738114793143030809614064518229383300891800563894625435968290808764529895775282978941982243000690916566857333602874114532771605718824276454487836896209578965007469539423648228579367123119603510539712519957743286331832751944527134864447260074137054749494348630085538830307729459972024858499113951073130738163379592082550730596270799856289129403435313519782302672953786831413860816601005279300524793484115621506347278817250045356299922321566329059762041214655457747677096970109894896166715557857040411649332717646436259295418608473940588654056617011260307628334047076568485061981388017269018450300005559768572431704826040770941396584206896502272923651531435794894153563724791966933577076308728975139042367004964749523288670451488319075714142828937656843406065918307511723187228522754726450033478662837429446322262996072793588186087125704924861188214434176096984179529514639556966038182666527073808047293205506471740839305328667098380866313408104834685997669050040242722345285556088149718421014760992550501068375983309024370827235649322912103503144864405529058014225820719700707243632834979392956985491595188965405457920511896660489673445077211990670586498641949833514481933593059586414668240170486247717868106961799370951962904137287267446337859220823259025714922849057126916376397023420462384817978001898163963283172970015228071658318260702055352775715425793408155558017527077523782532545326701486226208531500361879431215601659469947589108013434935778944671714983708236676025920209852868519089843776237032112870457061033210483704244830527249049140634087728466477194111100571885759774459575653795065469148840728479084003441747357750899404043487755827286145274019207750459227877198832548937123664426821160621844259040730471577973508999034452622767950293176583612695727093746389567842388620463840435814740050996204559762179073586738911217340851064990694172617049529330312495978455765270669990131065984800643111703416737799898640937591946754291263773814831364528776916322689291687111594822922446265151604618134390617484961847138873573164711680184825935419727683939412758593372630957697981491521169127762839125006232253687710109972550147667069457219106620649397470606161401917757983116676604480046632284420146765234691648530521723886894328025142687824531707432706437598942994848639730247012022830852762793611568207378197780480856536442956188660199133961988719142108651394247680450389081840855368148913930533878922234456682340895505504645335615859287438716362825797696150919773818408512953789185713607933950928320178865305639424989403282553993375165733900708621050409183819551374055031559828005537362442943116957934913533456268076303352834132111145464739878775614643362412764726122266637865306454982977030226245910045439075084940742720893398648425960547394188203514093235283420106434818423926958193310408564339308734505717230733441072881460683574751605907877095792512924336407911286060876200186754113066053483590333634961782235571414348770412408373388882269207520835095819303622378378903498014745208843162708190878659516332848287379192333382096590168350004327760655156874389963794472363778698062030265825704511327289715388408579639347906006603967902014946645349193732579633314090970244478835780784923336786516329729142023387322090390327985168550707948402219261373431487002710534326826596395913024398638398787823497061409676789050993458384640179529160611194590514603668355133797945436100682170256944208396010777916344883901108524923568626535421615113228028449654575940495623938270303776698177905664262639313237597712047391621677916693797293977417419692804815336552777401237824115225191488562707808156070051254756576445172387902306217713258737178808604463285925137356602620685005257477653826265354548795411638920622099600618265412120223937328374452779709205445016536095296969573645955143804068621538831502659672194396706737487777974225053225476357502282688824069529496045709501573062865094182767152446504013525610670148825128331825512475354182449024768635096411485497530073482663048933442811066145679173223801853525686847589571990060002753067694612432555505518723273259321874666074997033943706204182449175267146475832371241176598640292686792018700773371858033922539760909112086222225710932914397557974409407708309877953208827437947899679685951811652149891317999330519379260650588872247116520874475081351231415335176892037318046895269744909087441554067444489494901668168073576009031999961264029070463303560913102775613583206303681931703392239947091363360067206162278429266579405698461921111460083712353183573465765920814616251989499754305219530877814055866355113174337775023186440979888713616155658924226542473592081123588852422235052175110147048723943146948770877259295055630032432152805686398267359658828646353432410172840667855501303230250282018037479329010359847488462625816466522349414767958381273105169395468542850320037071876506244678192413260882912187590715027151387145157993433033506169712850067072494971940514312130459413944784514430373729737142679250536887029456502158894944210263410793441051188955358230176427962128382614026149984677971224500365974334416422124933478599176555352969735886728229293449272602143555707716980616878243150249811543841026518251885530679579980262373297588924543501332526861253498623398549878052689407555788036830866686519530442998156473024461312497808529132753510693674734796439768837006581673209275329146899380518481900312918143387426180476491678407015421818327792332835357859669341027955330745793118918560138995989247046896006640424384136521159945313391636397203528274317557228173150909853366785524954745015392856586778336562382407870353356093204010037273802019316739991110349689330257784986238220250662297183336899021005547866183979104819976866911112993099738864024978603899071249194314357599601472797904952767771391353377548974821401053314187256973745846184528187707188232599786239220415557594166232833254012658804546688128409540791196560209658978350513558726083616994738633393302241076292026195556137928935027238043962907141045907572754637228604285116088382162900644307001816693272915503143823285352838925523993716045775610714471175452953887511476413007192119570896516946346485243308147353875714854199924996695833767717140389944712271363659010960167552007152000981829993848305853883401035257487154388887292238647877388354661739539973268779566011472074544835520906178274495931841812651511411990408463272795391788837987154409381469841688134708713500860292268933421972197995170546407004958777087269629542335515698628436029381543342792126419208130123337652716959703889784690686730537885651991921288095288417294142099870395853477033783127386508093983150955215914737996844765682573252388241235293047502395744092485119831957438949865027890914040459745059821828544711221526842349516561503356220222071318370023418785529380374813636768133280937009020009243795647969523217800658221853121313890236366885710713393830922559420088877756995556679477461195764901056296966076891796610589484292444007724283504497550182923850864286316740898077204508744092245876901025814230630993883622796348717091881976835758593962095339524527872288956013118006564598513882654946766222828496981762004146766416143434394182620618489820474634701876551460189143193658681287252922546371609571656057324072130924752831456412563419564007674916104328684565887187189527038754605683008347039585822256557754364689881466704427795452944185336390506303724003562922242545644355274144945950314976086315284973069757655132991290983381358814561864339965902462745090043201358256812601430003473483951951111199469064502578423119771781816115390355604756940884661156411880341754732957718144308921423859655884546799145127938666367445100111764186353471438224462523510245836247627153385721230505229697880311121140849896772404591100270178700070154152350990262689574619917660395551208922909673613218413796288110677015020102510097748827024840333640063792077282747977139964654523933482838090989070046222065933834232551617695890256157615643409953729567219583545791916615174423406061149150626442809387723978589097351610952533452641007775030358545471613663852039442860906853310582832316013684395056800040502471479113183867361163493171455688815741381665830173600520141334692757218444465187690254741176112406180374984353474604941057643732987188548451076405711014740171208115171619832438740356803251757227930037718151177704395181074630843681800771428769665336785142217614816421673759165456418414010188937938678914961139089986435174986501504776818516125649575157873485005300931671095796184020388209251236286942230919498396808407889783869325549456109670598657847625719928522597684407076572734571907759525613722607270252815687386125892144254798977327432941099103112627245904390480795648428145776682590746860617497881803563080151650479694780953137349333712693779178111644861653854217992900581717287188061068761914959236806378982635355018051122054582939393656668680402711973967228737557170011484995382283439654499385823091253327375557278747055015183069164162092202188441482862398150722649611595624825398879555897456751635910342009214304110144689338643225802535461781087762042921441931666253237150355973988744946255685427761519985322525301250754751876908901942137088466966569146046032537138993353617258610421705848208537141960236017479854227714474579922825533900382413307616579605570169515707618625513473211348650623647870872958851462237224592408218854969405675071116816097775459086169904196598164867964860044985458002236249505389627668838148854645240307965270935877018952174732063977581659192721281844735960847925182799473728213561905442367272593680423327184124750351526616099322746965683465665107162791208863667130707370529968098589571830868483219382689068142194304239742624937351756469428581282129141528093343112387923483242044265168112437018938555530359571166886739085170363169535688011956010936835932802435599855242995433415848362963608897700621194562677524773261243513800175337314804606814314467921279569391281411912057706064575846475378800309007466664143038679307725213683265195285917635922133282101007501566723959375062057232666161133911684009754234290967661976013237202397817179022724390802751750011547691009327781895678356576747588275390223208579592808223538599153071579486567457717987499157139703217806415428666112874059231751182608116377933630472349016263581353696936298526939095536131856860685438325828779717945631866959422595038295868525570722281841497334603686964244109899491684636752187904312645654498147670431132816561278883171695338641573583174277642882034019228813515956052447681395110158697990936127695751995168826692633486980684348832969841149884725092772499455062518938364570547141289294352526585432927651677784030191459668949725451566977707110378790597411726473722239021604888999135916521339010189432207259117308756788636564938289445324334602571990179601447868254340939666284898276509915964617083891192293028319573768077657545354816772825725762332946164942899860740643303743586589643125125991096200529834343251479418075231973770492017532873206066419765182281067767307172540510495323758280018553370682762326286738759749028967955599616732420394598447667076508872000592478047906256368887942823453937757865580732014118096848185740896449644233397791796197157143552980225670694821499039100368187126970552820035630501103069671727895218460895061222212767877642478891540113506509017716565492382354147388791920503961075603249287334759049356834493386388333116402263910807878240967713525374139252152961817606614144384493792119443373352753062164210451082560310096280643189358848031943716539945250871073815025561139534786425793908395583084138808093046140320138798349280198736573428278528312271605565365870040221676754189191397322078260103198062722530777185670474384958564185079367795762925864267911159216040954571923424196748556507204142006618545153252211866292933574250893365375212651634356965241353406113386767999201265775889059883617377022224771921975339394936889134068978208438250392500710189551275811508797854626877267649578473527366056345314038901327279424611972870154915654845979928971190883100155701514911749563882292343648478637326331695649187507065787240921936550544258766170659010612763909753343322458284600462268475173617590732993503225401749520204149015566384383049273944841582205875772615921202724278951586925308689646983980423254885304774005637287607648846721364023328002802109537101961817232588043443803800957414325440519718737236228495335050953477108939458096867246546950494752562445003238959359169519623525955317943889702282669767337095403268380427732126967042796976679745776226228313680860850870998379714425646182584398846584237459837878275020826780770026080024529012657512570920281499901065211583395654343602455623124562241330723648450931476094523355402283418929464516156149452005907535370569788593730093224153241745808975564872683748091425927551711259568562477437496553218147979425532269642295117200223117327350820527771442561956537368993259907687770401701768539535971322150961239942414371134278269914836406153717988223982930419145444685042797655794001666682633338873489811369683405564342811058162761407666823797447636715384936633830954504625366576702879724263684285592016406612794363265669997670183769957532456504128123268269053321549219015393363476863652793779211994908997321035715167322266861900421867334593415288078166374396039283989224237300690689488797651316398662405644480819547249595601422950601228976295323188783544789809173413380258523302405232128317192166744658418961085958235172604121634354731150415261172672287056664482718340864335605151765317295022553725348280858383069815111587671934504154088554843191405054631072447272167704768943874708702879909958104806988547303650292084222597600067582163818325714095111990712117557275828992915222121175684467051141720814297880093208690472262612181735936971191819920325056144446622598943639267854716489878424198531788825788908188487485401067403218574295409283478866861710168982432015988669481370184130786716466887048437472396865281329168765703851014091222151571926481582718673438204459069277651543665207478747367920453192418442967498679773230973043870216304767778379307055355173701448655071850164535912601284506026463436904293845439018940602226770939028405607177617202150479295709202980401021299752881512149267128419859828487737470692833400436167823779172079594388864624196600805918197053210044119811905076625625171653773818381932736932462023025809372994475477349824953342861110716289336092118740018990555232041385568021833180407512750422190877757794274971611828071349601284412368789436442194894743306669431133679305507281464447134959603755937199101840005826804217561885602461705735300155992910536898132096497275393557625104776142077372723919080772154588097686766357542526366895156061049142644000452709570253912762343346138905892037376902438057597591103286554351028148745847737132283863486849982053792080480797500756218616578557364088628647578608124462263564560286234136650935881769939276665223044722326444579683725860208140992199199607019469885067081260831165289542140694336702969752704101853886598950207706014521880552369574984897755048519274182067737074292553771726546040782686438150725002147612752111881536523390061683341659141354888635146575463452943810160351108625729520151198345265705489910542069744006560405813618752463368748764117486499638535868378552547242503275548436077303624639279917816800949525324187777669480028240950709746672702415967888568717405687914083864772454530658769079064762033510702504027182233357243151709987713220294053770599370956848000614899110420522204364919675934334181115713566381908432600497246150357360328729983772503334929897853041257086059857770222231235425495473147376361967422054721607608027694005817624971637087575116680414155846662585579002321682496325681735099199895054448611875469998367534442646056034642552611639219579415779989951932856726633622646062333903731127775426925359214129189925733453623798159649813159814956704383804630358812520233126812069021176072910165001700290079063014204112682910333154136072465505971679765442437888227445957612438589187006399558399467560083840618293424870005160770446882375752215100769152034738355124544882643979160109732561885730585439920618020348930779483381541824155461502757037876458011385679532288265745136577050761603282839992458907566565184066226707510927865284586139054930666704946408730061971601068279842969128217922162442471812761079748641322290678035221620710580095806521311886446702156502652798870107691880500970060749356269927088222896933536666330651401999740539410601409023960620983851768182310363716472718403831154303126514038707010141520354028864573347735970427541282799677483305012445668218397245560861904671342204307471805760292898004096475758791981815970435755557820620442563872923102568909130481098541316125095436660497638090564772346303120983220246947582104027161966489028946310254346884940553629853902197967102426609477707008965662972053914127425075748243306197665062615497306272578293723733168511424374065354704383209443332344954742561167269537269635437274420768433957908957364491750791878018009391548267486201480471810491904880128973715995862838925588669627868202284160930171646835738831568044427602657299241865109848133338170984774711690636882308780028414974701349698677277111891116745629657155848903584145278284678999019679376110225429450534976025655604504038408119092580321278475216327314550171205608172499771360247732093696987652362220145960755503280793397489753740366720572042651017901806215329659342958556870688411522363935100650058268022252566451847652631513488785316127477889773162949344679584843111620108215410239281074529385763104330347958054582104930122803206200542382727306810885348752985727509251790228728130975253399242580223050018790150143098526256067894892322986275715789619571096625103344547642019239079644057540710828116923057705408517322038520396286073230266695605631632662337474487149583862199424695358647950522121215556013444166731630968637161390693468234747492512069988887709802966008584916518491045910035771482762010692988916664039971315541022610067885986426513236864094979440215293367622984371779558903538506858341920031366634409761918471388376992843732075645907482747599472696063491082188334346743901042240875324106867010818455583781431106910970379098988876936276069233852910809530961036167505521578210985275079828375833836520241179847882536727393674338346110015164282039408344665790512657354599757828536389056898543252585225260892519823062295356421183445224196793983358137415765340045660484184630566428682993753421952327479112964064918729254052772358009825877242783535448170418315698935514625637905274126696001226403613983635342872736249844224695532660284066746294099054149651380654134715402976746237750251719318193852088596931854911043382823057898286556560823467075542845348199195032859302749899884063842471877656379719932741795835439086344039077931632844517738631177975178685533869970905991543442301791953310953114540032104476826628938207066135019502328671593884360460389590736838467672264374680155084489910055202542070451861390718078716098162590262844744477096444364711360539195038752728060612078452044368788377455499130780965038870372331453530469481155577286616703641984930001580288394564374133809949849102022354069741991716686003587236308295352725142185119830366298946547656795375995028102060922565093951475668333968170633381029387206413968035626584423597795175122318842556981726707917540017663411199441348404271879913636691484550970495595111747474702473275401257167960071389889324426521092778434308090969327311915315567285005901397511018110833257856712654187194352558116753172289987789397331020332524197118301169921416510630980209835678729638996549150324152897103783564637514818634274139936326487000901860191209000605991453821962795754738441212104035022197441045590439496083861587627476950680586001447986451442283774939152572276851164239697885453288341676866692225822204105485704580384912911567508858434613535616165675294493814013397482742144244259332142185579100256805794563567286967380404215649640768052640419916411903586114323783465001509250545098141352767533628801203603464917011319525654937320982127775928397144701497789263831613667590571008756035336375048221315241292767550288616874365746869127492848016623052276591324868397704004745740677027853594396750839858509661083100337087648962465471075221081644041529713904010450726759140811990308884278878120069245551327928608206033545038901769720167799488993979515692932389229661849072835046211407373940063883237736739875342214512990777026628565604941760484051948738555826254465045398989321808552846125207580610285168719555421641302475202651613864834802162322541554865179064106839738214243598930214590587482468401140393502699173217070477329568290629534419966694282627575018426495668714687672408860206925040254430740587138139685071168330415937491915090091094896543835709748049141908960036687287282024912020851942350136940672260898450588315938490067594999277851534843750920444173329354198012996539418760741147756090895137921061741867700499223504067353352214612479937751285359507767579739972382905416349643406139212564280297279473025509213934692863403790786848230099437460064401595708756923970891816913174822496513870055995639339937830537531204008957781661442490275484527551488119986156267553414453941306015005327646478873434562095530748111079193489772323876562242235757196595533233726139820590567175054534557313987939972735068701694138337971635552454241062365083414094545554734404123253604357214430193076208375030351319865285786432801373328189702431727892037755154012921278555678034863997790800863913893944025107319004768268170789428822364494075317096598954235445374619729142866116258780735887565712323790921548400683587591489301563805149994748865403630347115022794148745077428989035163909083636175640201050855100219974523402020976524733305324493560408467213496128467959772201534625276136982569651853951366363847860772447784686563306387986519840782190080889477507107801629872608286242699845368344284320840143935425543072120592008011149374907892123096716626712713521060597286341819431322085017719189241784887489739985856700518563542187774152818624564636661443977315133711437268856799335566781480049822931949298282215823241336942559472022313464418750719745620526844908507509704964746351072814052518811095885266429583412753740059296449768283842951418611841830423417341534371033961481748687081906895709322169423012787397818292576402963097398746397419778523114545313736197709096990446843284039873625013537172989219817878071500355010462263433216489540905891596964168953965316379273685561698492572627715930894049826561344436595320051287240907606529328432220012544166728492523001478285177786444832236099399820720947185302523215692601798749453295070917733673610667877773855648012018932880233387186797697784192883614594180981663786640859165698267906633242379390754585439267385595155820454233325792193505425173023330768667842570155885678542506613184127652165416815193718466732244613638623204885930935231084750875366621135347903059628732544210310068005919710485070559803591581678351416692418240909564223026702312787886491934147498358853843990029127560750896597796572414122380336247626300181696918040310046662341235240768280117415934731955411663389310408683825290932503235609990622142101494123293817334155275675327839979831426423281220709390617372171038356720982751639416382757270733701419272026890513083810620671093935407379834844529036396359934284379336142839511004029675591545491705117172839645015761525645659123330317706324866193742790457200185120858547648047351650176875906225468626724468812471209156965990912486003349956145445518662824816863503817990659780064760135744517386245391030147578061795810208535135354631705868285912907133524962397481415466611031715222636314350701819418837125757612575923835462547907016399779034945662591531704170603850544970856294661657321202985648372888964534503875899930321562067715947587694822008067920596789594724369794928385306756011529114277269910368763141800538488902405012796857161266596200553755426843624363863206398729364586535101365644167816222411206192015651245899582064388514290337103857880539905837813266758264979654331071421646441251687286136663438513047022140221617109116766081097336674136933354276494853427578459294984298399552195389645613670213307020983210839223885572404471299499096120267033440706783618221516115712150685631727249233600980912289586449735862794206083646044553993373190507282814225845914064335437334485887772436739208514576926580767844030647773054726261806213854226698069712321730453021283954320026531146445164372639613795165733940943750408430458600168988966169612697199575068381507709681443619154950019676067259147852546487934146367006118057872934973699135077879821920621539524247034046728959758888797318821699503403399003106926123190678079647617806948040901594321129896059390166621957958082148344229094115983758237117798823389065133078796666431541824515646153419146276563757363805469476793782129657176644770809707935971917053355272836056444308253395147938647082533886536299306170211941415229628964178451904197883042119603437564260962295787652659804937360190177313148578673612395461146378539874535078875654297737738209971466191910413922566230090090923096652406839311243227933055054459057891937817656934380758889060685880538205569503528130304394120779741325333768269038152697387338071902322729148754412499007370278329101485511012370326921728997099602408656253042891406540027236044984410358558840150993315800646957345346595183254109390519636690488901196960025665985709548563198178494468772449400089552942321195608176177065903558094405993724159968806014245375858104408643013297767871162251896815224718875759691132986688955516019989451467975450171514925354663120558350754629119209458188869726525164439951529031100043474167994623962596361176190350765407732536201577132070013038719455171041226061351823247955348837808372490359542206849666075721658801080385501653507939720793109892619112599010142494867790414024564492307345338230979850905293838536618305837745025526093083043244349805488902551940979323714106944453277153735101465515231982101357785385887389269822305525349954130475456042769695994139090727321752707172102757137810584241132155210481146786599626358625744878376069031776693966768906948456858233891308419084181262165455139460193432763106076181399719925921706490468942249026270047110613346682247695916047446233725091551916440088047198427174585396323514062754169647211280944223831377819899936020323873335248721600878604037915630941255454850877707361223755665926204195293691872540424828513788767407518934040697684027639919014237651243033966923262423611075976513057020852892248612519637470735267085602503137454943631187729695772817922142613951707782526557450591709130597677118388720154362858580013358600524558552041507031964807565447083592439250092351330617322897233004861558896572242100570785727521118946983840138768599808171026887499310946860487395372275108781684768446710670711464565911493713180857913659705627973178387092976531395459306111962088842552080041867013703470213216167307117816219712853873181670206443622909894972218209216419906513221160696833961105861432511506515021429697246512398192309873162165749299451361209961474980675387257240968625870528048356281261432231618353491236803817668427564994788533108475073508410431977550617258918682684775889423263892599169298906558355371050771584192965074318971496698988479112131705030898846288855133314668134438103878359546301559084412842297262577172171618452470129316056921252729241838945434272360917537318284598490663790953391784476624393819687594251263524544152389384339745775453574461362691037943899742081443292948395030934086175667266109970424190227854339802201842066279930813592202950138351938555555433063158825809940235061609200116360248635607563870142037214584031599449589787095839590881189461165267627479950703392475584096890182956150732272635344042836438012803339686615230493330197249745918899826026094978221092594294928069373393605293488240238221935505858752166807203401828992075593605153694934972586592547095784324473086939592001728514633037569366437638493248656262571407166946695395447221105910747551743387669972155890191089520051886440873390855101491038499981643098495442181740388193957172227422346053560176770017329231254628008264764301794722821957225684766043320418433930453022395389613129066285756109352799993047648374970347170503482596955745068372460303705002331691444707911154966715682186090568217084229560056448713304889401494166945817935624651635126760808585736125157353163105721581203927107765156041903748859173366538396420807795725397165118169732080297698754408622850960264376910557294716003532327179172931400014920566147870216794611191085495567446388788011441187102774312555909698429816303238011208068084129869112555962551924516164416964038563482402320675996030679361041792934058035076004240931805111811065212833238469017361031227952704160647007257502370982818423411262169685119188222239932680300678739524136996268934989282635794171580276238053771115707240193253368255017073407199766534087852970781553675231232884423135438947233203208669596778912722854783165556367154107366273039375023966279629381594190984729485916432242808035444427654471317693173766438209543270081686007712106981921860208505090322566959151451230032682986782714167022644117832345557733864103025774637551450393423498532024143347219980716278202167837891988717254332865611585293966037737183467892816713590756181956943009876971649078045615708060131548749985180232842295744540399782219022109525343950911381481428417034274179364408262697079044019474083705684620610244894130299829500420003456272481410559566873386324999150886743926149179006946722704992342146539475666788509957914382778977462167287314280839665810020121175766366956397165259151480187961529428114449417865185944777849214614260983343478447280900401998382085812054509815744391018832036863301907801014409604466971360263408357708013857644824034941398311346252145936842864104609376969378106723749120992890333561458526689691273258799388926477890641548731833253494159547587825259401635109684249997082433631924201333376028658574826178383676554048333824403028712501562293405589940454313985415008514039795355352149403279529800615641636819526751782546782974347480312827700634205035037531968831327679728793303042317864912606439001186192455941061604501353183852276678205695315953999922648969102884109008337536299224614281870384750531290849911333676248009234953590544255339107628044061974500483611921507864911763122808434027546042436271796998132154896807018691358624727236113766650297699267616993573218895199588393649498957968648939664249531621906694651005317976969982686327026614926528627117829423093828785147699729101665702865409922090288065283697475553987134642011725716006179874957110083484673218423594059037775371317068774119250207731147027857316838559058988002316330287774948689388842752906237013835449186918034439784973976207859435600435489809437824556145152358813420709100799786396776603866524061662637251482641008837988764731118075213213641495338390701293081393526127122192879996305613392130271954739761954264928308551215295042367880289909688736948430343657724249264147184157560152962121433025792077796012598288182366881302549386729449579401836227232462263727237008198591394248149039500554241347597630830526851462837820707755025943943037013898387665662848417118965893751150478115316844626473458683641974697466893433022965782102289088022235493281909131882198049266154138684334483615634158665165257993158658396234988450226698314728957658280076421178685173477921860983016180986905709158579229463265906500879311343590616753616668277080002718150831790756123473043488071939369057690324030251724463400201427717216288578015411128860087212218513024143373674032139834897264673437927158232985152588971243654774722961188180923840403148677640099418032783395123117710547310350239280697168211809230438322808510755540887022404301413494223195662235387722940664081954298486996032203667152271708567879804186243132959867260255971006631562210732516803942436270558827428694024241349469411567588245277526315662997518970750712448127209347727244535746289935830851732540841230015053075178227851881115280490728683840846433231280807606131195909363386865453234880457772971302237818749655409012615523096306811840315268075104283820851912623985710613652536976308285603664155294898967200266776464293599601848969917431657013424135359099029891577533709808878629234625142942414947423703296854423681975317472027653900640748279768079572496408751157634311097193469446695728697710652948828135177611259541146613922376927580353446442073625597139303307193796012658325202621905247160145720650664531560752668006807019381508477282101363106771289407385371326761111754314215279470117686488986634784630689489191692681438461732253612953851517725346829422814075639602216278242443537915206266701847924922405303169094343696643121501645941789067995927237449004399006702993191948525853409830376679094150623846762596046504607715569374263659800132315214160315426196372680644459776050924473566551282037936076415980512417174314201311398433230721684158283295039205280764976064833022925240742927746672182514919967559397314744574855471345881168349498009239951628731615580183897284423753833894179672586860878613247040205791009358587664886431826682394002036743010023706163851322133464544449366956632178107774768250378219031800408603119063460715436828203384487256320034505651057896243330351605708776000485108368982173579056816105280741938335006371385411088152013804703019814755693744378441280286727973373843996684242524375570620721347688733324200258228418581519946736876524387231557122114600042587664337320233463154090221485403880317620546179637335313432539477852268784888655221215879532299408359454510986270225118371615007296443773774026495419844080040074737060937020381970374004543460487963765038026208913731167489375645680762330925043457998064117995816782750781155809498722048466352684974510603539682710611490978178292376743078706123336580440354485236509794330561816071432757276043524349193785273685927326701491900096079311619628716975194187600335409569270275352699182068734198344477017662069410817936957331328856297763812201710701127151590760983639425913723164514331198586062479076455258499679291258359411862878060937221879664987953700469238534346843608066050092961948590600806508786273782877900949126559117158084048449439568641635450783370854327648800509650456058739984201805814930582193804958182951315828315776134468875035519836406309184437630770630589262137163422993920922040347987750632227243604120567632478281442326399306231797066048209918395472410142152388641889922063485699952490559566813391778818665036714747576888324691449963572617113183516747571967971772490574274880539277713884015631925164641496587940712430642113274137508367426041421922504389607959288591954233203630040963815320448806698361667028510065337863568483111761603619513105130756072556623017798059300619453165366211945012240488311431725418536281969641959377863155418964933607090124144034840053210381111336576782532597539519793661444092401562758239582631331617627308446426180649624563015637063728729764276623762295858676534499749053304017927502805498774739471635890595361463783977084195132489096911925553251195330311173692308813478717304486380066306063318050683155312054159808913260694753179808553961313320532791401885076426106910791966183121400541343670364985217094119247876703023850549218724539287574175189569861433725441411070689046460604200789081061315619063309992702684959338938161055032728317159480931592777486505469636443621283583536067871672127208532851564246455033004464881517293315146401332681183004812995119372055008795515501540167326803441320658148796217668935743905130426644456407590206997446084153931331523481479522017946764882577588413918699477388555319602204609213882864036570143644858386435496972635693224908364019499280827580492199183287693141866118625484451140910572836245322974591275370085665714379455020434670117350514669551535493458717014652465679512004684716730398894034482175071137760023051500713241729118279223772223960051157868700007703736137597577462515547329497334911726377802606115912545501142645852936036190962779505362204939999189924108765780345042937074036005615760317267328424723192523862435790587859921820464780276151431115983563497236825098328790305957981926358813014130851221726265932045915235291728971905254167981997978780823145785702372023188059769349785338257521240721872009453815713131023137808397388314128262969270249331376386199235906802387276741274173534455683030309765367957775155509921908982093685623722850494337621710517098129556714152201047938834919749316867322465369463811829534752281335215773731679073044390374872041848888125961354268087551595194970103275882867533182890629812079961302590794084169699401208414687201127260977551333489824154412315047694079613859616200216405933676434255235372168758365176218637444434361575944526561723239817508711201495373120286097190560279514902803391011908841912274923008744453385628970143041783085027180249038228472086119038143821981413964107770669552804558999243539478889512103894871875023631777478718709267491334282082051013618872836812946271881140718546186139425293941170077922561452200318778717685062057988677853536725265864021047951996753975134282187993105756530965574718264835540859374916783863695974301807757327972351990637487806932652552485409605279976030137232371384809409452975114164991223041139605556177259877517431225826166633662745270446788577666481394583211476314529809596594697893575835493681154924622060062443227690122613728544635969198749943741546980861381812404572767831583896375413378071993599317403671201554965890899030159732383940838890424113193659453772385663217722146192218192513469238739965195566202860148058944825229075259654869986938757812151262629013035413527457477045219269933438851515104905951835109211706897219825224754809780087784154799706108885862711692943000951576175919644206491170890027087813384805897344381574781832334962721248858322051305178275632899045329164976194301041687303340789105444017542252865547298491946997138353813523288282002239865769482812910781277480639715896711210348095688045274359795950967204001713625984758247877732866217299672078266559258136219537818786872366958580626883428067550410941548010029330175085421303538626601263322905387634907636538788112699240995322610844689010516639837976906427748020654773222264496153141499395910533762074219166249574245760226776149988471331781000684394513158175545487079421626536514666864098449597037729858399278668889024444195955143214651930859118558379103876609328227792596359842054071465139126919715849455127593508459032093112821434786648070412504295625835747235502186072283357903678574492566902164568322717211866482175525530538824941614666011951542794233665773445864128981972065444533370290586724499138577184181726412366118894983801464105435206741427920821760519481782957780719678111964698259741104738824587214846289368381451138119856495894597478885546909756357925291572661685752484109402245824207677903776552970200801978409213572168646455905633981715925725168300866192945562359893162532717905785448611735969345163543777541396566677589670785868688181219772807972442717662775264701111558959616201171770610064297280052473726693480111256764722130296395484781426938712179829261543994766078377899599160140664413938911038245238123402397453297280074937529678074844915625415655088781773317107228769976877537284389778082271821199836753814158535091090758786832090942429388473539035931377030986684631352678658591569577457219617862845310442051467350760053780735531336245272514061144179601971266344016919459763734843388105479568814625662313423299958463191746492044495429530676580749901293512019720372776684648209896132784248743309416821264501153632213636804965366103875352705966565194082158672509737346440876225499969972139450040159866349759871336876736934126668799242780573672987638420763336488725389199465287089128211972123633048910497890439051283197096755056998160097172165778639994378056259109507500364081911796111612394449521656412145029136180852554802172090383816718443222721125873376613071800425500621292093419991613011657714880331587439361653941292470417913178469761976299918659514156801351781844266443718388640301932002192590359919061087625770962981358407973029229712310268779079127361278210645368047638947591105404776581966099630235788414484215921965244351888687366418406735078652506503330264620449616417594489742399084462967576361706976372328656061282319649439277939891425063356382748667904121813985226009792775609576305817891132865938082326832137486890716162498519958927766556666457374309145293307351653959181644069153720791181003587444729074800740666526579758461013268240010295623675833692489645271061053047985627608147124777922386617974859188371266834422487418905298026169716280089936685710427567218354109642877371506668413935522208993336338946436084788636193158462314110558338279515401745272143493609935730433225620722027270814868486313031316795433741593387149000486796624739336222213370766048453726858610742964369288634065797046734768959001991614127901871586637167826467527677265568942953783175669781949316528576784206668079122966807620256359085122609886518896111910417125013313279051977343867214106623135821272673620523193416763405626911435640304232160744680197338686302901734988231281537622995027301187066932754886857493000759414243713099680334734652932943619081179693031238314012135174214852997186108504661434340716773137591530627645300029103211551121080872941276060407842401641505445727078772052727348116042143982367654659343896582576251432996517662463794409766264954256828675782401349379083044106817697010095087090648372395672352238734814759673291925675939430264948490898487572838043996410538666053174761286342116540298807192438831856050993536626783164350695996601485930396138422015577251092454118426936678766352554691224468164738688627142127303014891447409832814570626735100095831084386573393208305228002810879081512319574413237196082955047283509585728095067837839970344159029263760365424429189580320588811013849088249083710522052115904389883158353110444007054540901352542281342849958144110244747096127958488051936213984243638535434664965909078255517921254467837450271982441173972686607780735561673305678681503682894601582998192479315908049991001830158516257822932466802690707751654732044213315898733058033523842137163409799444303388754543560580240455221293820842680979005648094637353748790226983078395561890676547528023412615984031903294923256782410273896294117483788988396376138171847378714282979597452927570760841724637174457724917897890235262112201344940386008858656703292876311270630718859952164569146111377483580259101747162894785234381501960984622164077768607280063486650539654801481119647245223809305614862245369444574711096175521656868388784515080940284399577445139168254043101187830706919068159775719985057445625908943356221831563171962639777066600220496563515307581371022658665174726678298113107462290228114554061086155828626132556645055330987333186516768042827597332737909645293319323631144595094751159144562005922803853265824751010721210022976165281025885502924539870461560520561582149389504245546560869249860562153646252478540340344214802504296885267344838514634234716032404944191411066873043660219278168497215143272019063922139437978305038728583580963649963333535693374130965469911208176327738602138110027254168326526029427987896907052704679531833415570835366222295460107661022694289042815670920532450158077800259344402621704190841895221272878749296723620067708792962544575127449480351278137682104033769929675180026205902865323504660709270337996359009699302503950699258289953572837492060266989294356064067245630856937915528732653142306556789678142871111699669003480635952601534583475430092261231133044396779626129329639545637663829727883429823056973746800426574332925446492075065124109463016925148892157916419310946342881796667997444277892736200629299281229147401071971723092286983203247801862808246132785095697212427126906741123687074475268799872865553285750618688847698741512643604936390977085236098640658120357051586286882746654968167316178275036014812774534271338891525640823990366592821426136599961489414021035872831737999443303456854158861540793869535336597835009484828009641640390647388643812045159398571782360686677369538961461307609789253134196740861851188325539825028515232610615865007900758768698524110686464499958527029053619101418240531552593326636931245567016488611253694897986150887277543224123192383487789662042846986370305543794404564490026586279578210320417180143488988244387034072300288654907467064268297351764325598314789931050865890345649238879761348943381337650905332835544706079468642688753523959466873628332526653535371461065735793261133780542174225543410554823800568283977995794667670602721442200589172488754731814742108759813321913705249082538328111694923047295132491826578181416567797645795687222613319136750648683912856028203592726762531371736188339896694088190168277172336320009544425394032870419107911256746196268804756076016431597204564690137728097144717808966952917208609369612493892622532306919564948181173222528498635486421202140099429269371573799141330161212969796560193044531837874289523045777086418202454967924794891197818518074645376367913211000875982519207361727267771522959602143587566912602365923918226574207639339062567923074314483543768290227837979413181750588053570327786104157214111166334831702400478682942855122182936237543019668449314313212330989365437830600405414645980952612343728655471759788011362649510058349033054073412574179338292786222712437190577550383561549341009671092658110115430143696966759751527623194585448045838236928851318876852694376233095049631219712059542495433560753365761340976581892561918640249767180283887684200820551883796729310938935099565046288737019826232663542318813102605408460653824057383408500736583641365255624381346818866027825664078846402846964921206308791119504322851453814370598916587391388698747241181590021166020549819678348769677451445598607820480036273632699373797356356968849389123358748190462010704280711373285337267832002862479404719021573295447958798766472384914667446261530403695976610893789077387841993198778806565137460586177314304553289140904290302124257327534621685508457173642259935168322166788683549196922475861987837521972679778287639784559601821307269126008346441323555539723101151887304266811434717742162787455071971106573564654155678461796747602582493734195549138098619870094208254402040788259119265215071800254633828423677813629213998325027509664386775618169183363607897103308169026849517187684376040744262084670966632444296488016862386119658252305763413392572462682356921195067930269833948375333575230516956589336532128240442032709410815431364945500832504415380199209918277212982064900001583880603409224113385597842733870691915566699439684155199330089545297537898418520762718908520531664752819420309160813186741272900169352185332815201770681719818753655458646045838088157894688771806609701833305434372779923891451770258481403469017613141336023763623274081462321859374960458334359673385060946882855211801225730049496447303481581748178758822737741559298121132913403989398741663708195290816776763907874705844441404294134694757573032943451231552491121592133188101306865145560423645888366492462793329791111392088066330180930165807420716278432100259426450381259713355886518438563653073967088863045213952679846982712507968392815006553584931680339974537069689333955553245664281407573196930525989898834289246511136930394221786985072209373067531495494047550434417194043568238031483483665407120000363478068906900862045168238910910741876057838442237792433382761441318192299890191037772140506269550088444510306511276520809777455956713381832651194544499110890286598053374951090959160772254413042112871821097004197485079376381063104099583832765877788950473663817864407919644734958906490411456678229897735446303843229893762793183497336196594469620177867188239443602532651401750838646661327483936713496613026818282559777143245744738995835464106932049590412374414907794371712730740911973300573105223729640358556509252841395713315374452502404112575378427086644249226615197803510705800620325550360791381784929449124199884933834739585675015083313277319370973263098570301552347984601466331579250536534787685308003489399389632931222975237766623237793224199251748328467972294002679816042855900508856130881838476723070516470984306181119670436876905032625084373339366593054523610378534796694548416175570967739495692643264294780423523788299439273085760891987478089031480643084260574975068489683050425384469980457547244657749830968488858032004018670692334101909888000565185695565994990618963847596256884559282434136593252154253783945296952006687454414244887550378166294631053171588059663870684221155092199319814694240221042025537580884208715396821744089758284316206082439962679415959638362905671925801682228430310525140601918459374096915386934134012280384990603901131077157937822705619329368561645435794064057920019602180653797027231350122775485395754753772263663701377495200567684459446666407339770663832521274337990585331410018840887648802423202404864159920368282743100070639199548200298121378697295776044907821765977691629242136176794197754077348910436336272331307601734356719606160889586723689921629950279685029646107751928572513579792863274541337887686051488415954093102409012385081861705718283373990864446630585589238291956980527485268965309309596202016643440649142173560142563864055449680246184415365025042051215503896123635930049210409195580998117554611179909083135511550419852722756998731101404880119033707809227297527827312458644239485663380040745109366700781015713965038053167166489109842680782130333346266572524241231208102222714523131558737070141060167710746189439737688115218497872159908054544728974245443097088919917138949707740317388836897858594170373760892801228412153217678552800622255770242423764351643381231962787808259682089311782223022323324151042460289904461173231344419697167477240720588644534152373111216479534723216951376777007614632927032501898396651108651820386203969088585369855337893173084673644759642268052597284014033104157405637845626707607762681047774983924524513695730134770699956756421860018262859215062494835452956813094200543444274445651097113499889092181892208519737496414267515927719242275228663701800937462096452350443569551756284308975452375545350647514250244361638737627347177947739941805386176584322760304650857593023990861531883318491738761949459793740389402213927735485231697804035261794869512587468352537931825054331228661279263227871072332190135624049341094374891524332410856743262062880549411261241936178251607273576755823743109120390269731626759680212406833111739658662495857224326306188453729491339875796406921561403766328903093018396375205279513394664834516453367207683056458801917167617058052014337704407891045532798457556544631264107160851683010363410726892320222455834313378065545139167492371573639740804616578068306461893461643126318008134467448221178197664687607922728596182931772130420091477505880913201950402593761002186293320201695997226770009103527664866740204683347047739161188639836571339422871397289287681674592902753936501229177011363243790147831053222707831101358029579198892072591496567102024971632917949524114840145817896326180052640520531331644581518222935764422434794249829404242355949809926004512239616279715530043933536679424309775160387657101264790305391901057399037245967454161924117359851650673393820041220500394417164500193067953174036135490513073715961239178841450930080480106314989534421342852029060516599800238853114214775302032957182407803788005383504852575489673601637266983614808107194455751999809461622389482092456091248503176530688728307692081943880787404149695114498823684446280727521720210417457875148287257995971698254698229295247890273879342468996174381216533888075215189129172697265682873257656666895227638804088241314399212939549656837831916648614034279377797494777343579743639152411642910132411359492818462381691190595871533234530861296551183455361518404331684695596197982171382309274166253734736762304518338930824118070813229383284289647894864731158866158369166327543137795289149658546038125747301561829441091840121800401238834206855411947794009186856364241213240587386449533970239708880224549200138621515344892191791968087195119769637617094577014782981457002435286111690540728418211035935035100435479536282265573667076194425294662423660175356269112407699738985610530650098959505266984806062797281827365588436795276838980166278436400379536380813024574016059638625510638961774520495826119610158842426824917244756002348285980153577373420575334043251319723121274726599384146737393813351330079724613737018600792085179902961719636421381651780989430625090968401967114088416194746233221595354277456907983025373621237291939849426377627847501017408501066648829491734737634094981374294585191626357435034321457932956875478966265348582467168976277140796652039661045562071336202263831768485704721028447340512422765479932659358898786231145865777286644821514606362607530042437843777491532149202051579945740240609829816740827940953471002881552286182619768606480424070873320146965506695882274948851763951699450096550913964794638533060288389769632831682215737855073291772061962803632695411114710274194627707365180700635742461401717997959188727055605316989494299929191341134176264863084956392769241194257490075404366324267556612115187958938506084617829786313398583186124938993054338097834517747557992457791506862623978917428002900078081944190625959254945525695078989824446482447364738886979804644615064187483904882132868363877077838594295945435469006905589579947578592256870391707967791075281849486917671014045285559996571777585179008289235786771458853561604297699176122822603079346542475243880554924986031336206810782137251321911102836728588586571400869256214268068217187342674640198320961167661015574528821347501738111874787587023465331486292783720982749415279721251575316090073348732389542287405474316385077020150956519953437236240768020409354374531873275783683192443353296298382411427159827910648704249615960593570678775715264768793470749753863555386058893948542017826619710604257845813009056074935783484671310923477279239623229650815972314279426102393767202199466759209807379827583442851030952035100217669147642611688628296961493454653310484881906725879858042674596561836156049827569903220330532993863347809784079845451110727455839521093458150956497859244361382653101488595785724579103710008907823636711457601423344000301209791690624641832054040350840928878145364947937083360608827098681766759908856842014026325243647968143673504086678451717098291271328470535930720053148408990769463957536900360392685802931375774104233548919906177760952222335259692060385693279032427587342785689785857789437041625241192948151678719685830263777035912527307439928902542569329905542428245537957950462536068195881402029912694340319754572749639040268467183317577517484768014887666455251596997872022169758384525409195566112665548148070310714860093210802763606274327129616281100529250303098010789902822201752317990517498132676187351370279533386607744053853910584738650831566820898206054402931717652388232422921508281159050882797288680222405776898369120916584952526474522553298791424895530755673479162823990166780024263527051922753752432204841596960062270672321870905582778783809887457739968313813379429819932294376088815217868111663152554542654425025522617720958596935357303660533016943974425159973255231956416596951700871802384117852307165956602311829268796996689824713492386272663336648844721990769605038757523852134183010781535590935918070928224242775696859357193033591055327587020952172315270596382829351695895187263660942696459299356451297528535544423625798295474623794940415084260438483947478420311112444368701515839837370820743054950397265905158448108338311611661035875730825971579970056967097090367306680422209706619831118469727120086009404086214320912086496789435229852441745301589328419076439564825035505730924009157804519163331751668349508596757770211028526236220669310726981152965775413430204876357422860818666451902820014299826737361854774676035438932185037897402060890101816823702670677598908425765939287565630993830266951337600440212017061808226140669781146600908017958678440389149257031523518079104400551498296078664384163120421300589836847260734896660398989749820023433010204366106841156207445344873746077587353635748994567867787476044195474243791663609524244137054534093128921749271567007693853526311583211265301375275743295517841770690910029384742159178841589048758564007584109056757827649915912937353627273002881988965858593745305217258335423742560457100895870545946190065707086143396256540065085559663352339768534463811896275142228229894348441157759505341359864367999319555879210278510695434839316411319274716265384283693590676831642878379541118985715496151201293093115781609537140047062717382903983051149536308378385740363710731480428500858210065339225315614241255047016057805656043556308777948489001797793862681972167201107122851524137687221809111960709340825907938437392279899716080207009439019749134297307891523799667480608000936446222821302403378991927735305824448729619610763150144670647474800011677687868469773081268275616618493466206486338776666139203670522805134683599229988958065221074792706610974334362728622008112762961131685864524948550750921253233490338353052522672748453988374903731943271210530463045803021386799875323335857319246799948385806543899442652357489701083222699434059275174493918894815346486391703152698921930872689459392879120974018660494892404096535939031591736988628421795416816310734569361941698392311208733321042193766475790265876877183078439503125815611022618304188030522650639394912257292109872864696051503288235706029251212960695182407098931166836577896362384061907276947370509163921627121316802537999050914212427306929886266485548070167406384961657903612283656719389875683045766371697884708373618146184748219290563059874106937822846790162501956461353635303368372243293210178982414356068649289085058193905123950444124177253685070127006057219798033169174028118919951999073433537294053983637565128639812580083356686467924375282200097835589462021976804820372412568316691470484003236991103293468223545967399130824367607757251843776161805748615307973467492186330621338107648012972305698795816016464235246027926309602609904664696338563365352434190123160768452545127890654120998181686421568153355715171970461687460873932514241668159311654824111090386982123495492362493924684129236534177235897573449112184316555257103953225819042106504017737164794361324159916506966420431345919140815184631371690751120709931460135979496914242995583960332190023973255646795976730744774429988049501174798657997187080858350896654873687852564742310911272780443569808553551146007400168737389610193130402926131773566646964005234080280659551193239536013728758875012231243021476747089286462338769287985389561092128285573182415617991734123961658575110516216374390198757647337643459206147308400044414572741876527252003653559505799532167086075056864067793212368873323775855042201548286668480753743869992270321050254826589553668556237022852117601249609376051435527996111428094667455116725731402237510417303512155080580630503982381073074642828819851882423229913583574200841944986853919774202639751850991120840343112231286631217444305016596520653917955207098363206134548369579558709518825239009868886417930709554331053852908168407159787934304533410456459459900105377229439614742066253348577141062141865543133940889311006094689020838729929341665199730199938945699673033378297248926905353329359930347877704263724488914894557414150279656780747205165491576430433157421144031140037704282047681775560406642238785082827281178485158992778507836467690103966807045703324065510500080989396904041843472511976499276109990940691264886608822038965182560735783336689661018268186734258526949125776412771827973012492585107913093899605887613276478532699313560510621066323281031757053015716940471465472630537059966563546659251932479504755604038874004454299991671794030520792894270461318729886470724958125158278554432941799889959717327478981577603468853787567853483930469223001346832361885003691526936634028116650362729706099691627529895879014759527923564640834739325613371400291049296694103854783990894767952921642665684167469750100847331896762985341246828344033901891713745541956196780655146047073804373529907205290430838232152165152723471280095281320161902089614048687410069050473268093734319025627082287790139098920084377750765831246325977242046500962575858969376876530650735429038478065642310187091325214044158738451224278882706065016083349903777037819192389134210648508603982130085892490958152597331062095550484577775349509119617742663770200069899574406107312668636658247777619650934027530518945169585197008153446597738907577377681886254033941847301576784385147573714469950397866157967607532138680886433607915351522886951444642741993908317239018655938797893989821667560632487879275758549542896862777212714456237626040562418136619782984598862232210132057545396661409107055661481494025807432086576815753280085002819814857524029263525266996012798178771955049736392726177485111226913971763085850282097186005454677607457881839460739669570014431943580983954642789680563415685041935333782634668135197927168932498881008551585160028538526120198993554164941442991062279570232438943630054579065729764644891540316901794222111760676656106831578860449129685250429778032346452466388293331054603390211014010017954347092256242945495619277555945658561149592760393204615786610275658303753094775690808531874118240353381874558376648818638948082379107842197310049990451542948752177367835368054204136309539635087363924225744481926941394547399342994197225372986809609169656377746450591399478220429161521464353593278019416782072545233173695516512115188132916232274909941676443361345533811787754597234037708615413269357812343404204937341765966775988809579663980662081178803008660605726889126016300264416085112135351897454869069374428999641142935142016022665042159308035899660013717872561214234610296182492496143868912382564811639224096447698309676571063122764458410432612626139411680281051172813798642532149316230090690180960722036635341567289525607166997518734688429238605881162932138580346677343450110689501060860693625995363868002775927392705697560473704702847534976177052111926571021402407387503703426674439108847945460587633423182284731355456584118434601625666621343054825373290895049851885469053826270149656655752696523745948199225053701608848065299999438596863105125883091588976220409386045907484023165786182350530219833889425232901818811581712095608108564457036045736322834809739519167372941015048191533183090683947349530504014561786207672907844860618885348829610934501383271070717762832537895612027733715188664542227862215094231721556958017070728115403508037438079354260119342682637507900547367286477155808624723503412699157009240968423897682499075768597272498379904979131947268321948780770657775034445515542053796745350138850092475699945004321077591606634007580379350640064480770849684445196670661858233626690023892840174460862349645854079955027872418813472406418830555319483103394273104733963067024513366018598558542066857926213259911894524159357625210875203274783412097656237260514875292862663663469071615966227550568943522763843453858814713131205718689012373757845915031485556279497743489328460815050191929485995848994405558958418443816775623326705113143933730234870901653497059932362448014054006382817151198967920074862632834953907922819068576062849117802344443353321561625011936388328545040817225013781963070821139772363074618359470037334854511317861132193615049873048471810633249088944505333030896676029004388242435970039006585817268996197805400779166223147558061279005056706390316698186847749098429744400651964202163712896226158749152184297954889572532972945567795375007330213993344670369196751745312945258343817415186668746954423838563507425620419580121809775891568606782970297235191520056286562590066810543432426753572093862508158655430093128067307732092710046423609857159183805468138530534259447047012143716878674418711975438889251364334185048906691734412403474743502024497535427261434521348055754401901391835441903918911212405832424413542847101103421872291980624513049257693528815815166243115393598240346681485250342258605392607281998294324368212168503176485722840451519891384273278941881019058100720512716925684447369680578752767911379906381823865951640484802764343803310177824893330005849531872337724261085547127349208364549866206891801924118424498362737041257190594185859612529036331340914324343822957041953089062871016130888796258748193364331883372895867772018399830690489918453158895172424119810490502803965286973846721803112005057125744197719939177586384183467960897041474097194444389686577751344202116137983107141095414091479962225551286810495463273756346170206803434043638910449270599851552783455832774209178578624035840033005153013876351999222154888917565926281149334450638414082234779922330407252157794537841039897053424257099164559051850841845419941233784544580181290148251303345286695475540633163945949580762953571250046386344805762218849839127779067248414466274150144247996105947402602392583020042826269376913309699474433963442741150649850264960262694690649045435914413812704356718946569954033090415278763567042045231665535324770566516341481083952396730259202288384553323064437273470122018630261626242952800693552989190555402881294427457342135894159106884099906792941509021645258738658963357412538704382625654327801187109701196278220317968331129071506436415998804664643073551874914070666931517585489421863673371157586187794273217595596264964897593564656607473202852103658371896130847752617976394347619727049083918980844200353576545693920978963999949677784293809748319742940320786365419490664641293793887026485828760970118832937103720097029471799653292262908365537483346598479508976693587236961914869006742858459260553006529174688208614295295323996938454288455218439208842220031244295591129051847355814173710232784450057562121194939335399281830491896609804410818237484910167317072585181767749002203752498686582667792427115540270341293749276449072878502984967387647334892698176824022666534358608326193590609110291308611736419353977696024772784016739863625119208258252910133180025223919429912959777978572329358832315097784078582357977223578065728497092440477456381339995738620652107646933584635733875555664438981372846356654550941383486979948239987465824648220691481878784595236489718753156232821395467318304703427306484253691346481033312876884420005796201080615793523331205409986418163131254881275874018322414646295976212262189340677269309886626877189756543455634964825236218448397556323257070168696290587593675407238449780272465821536176813782762032325037250517099393030460797510371061782635620981558953406690365654719035403101285935134912945730249860765816670050928940367559765593443706343468509149086849867140899548231525549506104048912326940366144332758214760082742811618812850991756596177473180928822369389283578626809524145910487603983166557688477485833865467388771956621669006573146584691061624878292526556536487625911396612510881919867659868645423684023023471508549481560256855590655975527204197322924088540340679482710110023113426205459146202316974695027679125546061082061042625687367126902575944121481462249509292639647090553595153342703403299434792784128292683097027814408710843767451799148003009823335880153640014717323688390731801660745005349987510158788581264259712356951223358429914355373239937417138062495167094169069296673438240818090727356372081038548221920263419901598939562507687160757196618549190217341022294217523016787069182430392014339018538194996196236670996380118353182679927008523518072827990041645331398334174663885180905413789347688779058227157845478665564436615977104668168156292792028297675391887768518252391640864340449857721075529540184929970063372575018181374414362122936999555547162261357367606993109271465460030963003923611063213662145566096848926421653487353173222445774432598456683660955618189801994349711670259701659974054565795341355274952537009586824978548008069055768681081615291614007449623510700277225417417712776520360318408597080476251985395632032030822301109414763520453215173346394741255523520142294467934385116630741304956514979649407478199758120418480828613061405472651937667884195531663078928126385005656695648601168950249040190752727087211192626704369040271449247762185649388413837627878463862859020516120154181234147687556570250446993648601679412450610441544494095235196461420483288628760111903691030303389485485468542321459974344606336165019770475080452957422228865349336670551247967028238387317759585099302632142819278040193446282350225860498019847234867678968102792550546400785986556545875296066293926363249821669804352523003757768074889749199404519725325181885943955062088325480914110423935827814810028466094332601662623253577061886951438935603584174132932466879890121151392121561267960710554528641563276567068087657821121242332748100485089389884520898757536876180074290309120248274149026743719594099663214970795827019071051825971374564834628446733064633976616431451527535293875945721835892820139413524494426515343884396754825006747014377664103960532870454597900340241333477556627136580195927498513932038587629624622287979303073736774198909248636867791304464858553718962842623276927108022084632734773222454868687676338429954104634258397008689260781150869262964072208737135237742841104489973287810819817921143102785703166064096963959892609470317850246834372594854192792026786462305087795012379820939382915543966136327383315104025359947987121871296465242270777379454673529705637385327473267126655855439018631400661136036973763741671920992389566243444823687168815360143682807532644784456058508172339351623501788052497214404376610720935871232209936009875868860338445081189734480546405728968980287407969544869143402634117335986022004612683567923961921736235752534511955623557479391090709501524478901392916729925356460570016319466534065080285032948758840907119409105494824043909899073357476657777955881051895318096548480948418648811236905534558736799434565736031066271346535161961090434583627444851497993021167815619523555159484349453331738912357362802173595434638574218942447197834945368383563181622908377588957493719233476126388987040580076952486392313265730683489115286585039719682941221275902712162070745646842174384922131644002344644899636117183410353942408681373517939576483922023394203044714335769507546107549465568645908838463384440131562479628354566067079163865464383762144632367170796610442166803772795484350994766164014691943916051329498210814790231251489198108471225111777734889091075509218966362296572523304202348423358285486122469931991276404400059267279574941843721343654390402401495986628413890354381430879907589442730698169953661169405898488699835673144368844991806069705790994399182221190729043153481713073629621235212408629890912397269277462328975405170358534390271180625230228887039496981594063515451979650729272478976274852761440897833183354100574237725754847230252753071722565969961767395581583654569778257228326099857959536774497043508077804924299889936339702927236225949179533867416301142081592547038669117205894145922783882882993907353749513329499195153616626050043719295246248422021159178773173423947838235368683799680989304719461139702177064900787486508642802153110480694460496565081741279287060332688475845699920122816277258355961246699843799057128332695660458970279820007793385806501982196175595683317878683403228200171736648492765075952725026347491136743789166517025887774890915360327456798505582654830350871950879010094557948373973133619727690847852815909112894167609578974524230532450367252244547945544592216182441044449765898114306735594579670699562634713707372494060190075436542558693847755084899405286935115436422158861802795304167840068235770346878425989529520667647338017243742178385965163332100646812663426285319956379081192558094375063069562463956516670956202154868559856854070673150387201595399426651218641224733456310196348222216062969154267519402139066960347038302498940473815127557672125128427330299079112458253008055378303018573874172100472534587271542255805952722561449303516678025821902019829661501728968400366326757423914911320698574491596209979082631153042343882852728491749853285709549647926088877672279293105661755134252873389375933357039330308715890298960218527408225575653364277153550798451483185480457321164623181303109774047519598596807530787269993676812478390260445322547294946204271580963587639991582887872756330790756343524657754813020382157416065447454571993174090367240224233861734224797941612599422954035349700137534410461621873636322573913102753140340851015157065814807095803722537096997317768132851280353374505943486465563138456829609767507815810515860879131898879008165712977028368450507949280724643802104367854185335002440164802361477758568250552805541954738491270860121873180898183567227935665282195509561034332548912881130080017964985470384881916321816944698759494334172271115192698207155919384247126088036096071812809016779950075036307338888843971327723573269623561280834513902485366089971241073895647572346842161982603805370534094428306587530974782534123586306506599129798195730856897867883341550957038093746270330681613030923426703797019326157797812280238939086911481286208401094766900121344483288111938226903877353018916650850868406700180185495135859668282862554460635370993109676416779326716711195117243663261840617688571501955943077926919776958360914915817961938010026878053113246435458400318933580099955101806991627463633827170924739467816404754244463844473790528085445116685695141937609079726979826996113933168834421717993154540312352837750286110755296951141353328808933370302916500472229795329472289765705636910949225706116885416390339100276568395694483792202355092298154415524950392550958253309023867496995624475588773326861147005002114403460126486137623614507381855715834198963755750926133542039584456098123399155705023309354472962209747068960643082661053439473219954279768780185104088817225883605173368872011298605362868722197762791319801990226923491470428663527079404947788422264628263218083426418962648259219652346481519089152301713451937759863141557375545953347283030632755736006527375260728365646951218744231504133844390939018536167754367324478802385682567622642283684409890765995520897801789358183785745051619671745457329372101682299912321091332548035365577516221358240518274949454960103030400414815597567048155902173954806189107304219985279490215695851109923611607779092848517728296913666717394887779752438336570120306765452891772907887444849330038974568354180016311345031284870463947316279802415021447221796825333071811087832643544139372652507475350864647968282338132334151792886858273855026415378164849376339427478899211650330547758747249280289670678271653058600031724642513240295086981813167731956841554986867166970005457176426782768833888815364111293226085256603449038673339045183998235471182496415496509958709656275277913572778360352193058930495581745795174192843534010225420307572526128061190361869801635035561894354761579751303028916969621357686818640630368919088454258714006323725788400672347250946102643458488118077356360746168035022930143365924245102630479813413931849494902276202932997261885514212861660605144926946497962592796070145976222204873916166011375127646765893195598467358261815617554667388319511108341979686875383035887742068820211297005813684364440712925895951251606599044472117953472342208099305153325498682583965503027407766596129171261708667112356858416518271063002219628627927077759253443706019471500407620421033419878316130458487943025325210384476831620897338949854793644685667327427060120381163641944685118923296072508453658389332648494221591142040930246901340740897124927336016554471121481501228752288321618760870015343780507226493530042575093028480946692227648470250881885314723967157298891358950582546964328465602539747623539703861248944195999722553881687292714364583342948749072610753857813577344881928783620879232438903916304790868237247423893350704801468913417852399523676613719446693204633209972360911274927506545368155630062538202982221618139154118758325076440229534063511553822408674555185311124380416948714389732674679101334003828659090782478834019746314467369222948687780923525329124921672853788152219006596376472193027265955949179824847672583521866493217090272415640335471016056387635037010054681863615415302248000434338884982484356254277050872340521730825280966040673011451670382295848049400014310767793536770359520850152571410524266484469357616998671157184109581565523387302109926207339527610741324090028572005938962991722894507563292994565866409304695729531642914035057847119163479656594376546371346113010857172455580703586350646450243192789879677149807365088853512192782277961510707417901914547842092929611767022826024409644662765704241332152244998828949336944555720434076002223861711915814133703790820215887058969843978753361071965159356529937128902228425952771890932722311567128646953054506695465029972777520585661129907630985713136569099593277556881485696404555733160455779111001947646941466794059077868125551615694695975558975930647389583280192726390117942197253956798457363535927225840668059087772297570182176395883609289203162279661348735688122069812129154563709621539697977318683126587480102302438353848011352434025611432778685276859818467726312296989363137558614657383727717944168106522125683920785572018152738084160851190967206731163107630619202053166883786798133669592250288023474661049635152184432914462178847087085348601272369742015659486385132218253103832467791072079812910615887486386864079351640132181596568437591500598924306418709144739068005935594274097715924805695384148130380984984324830949210044792583211893285505788883329919583354208944834637561391797173989035145806558102975192533420630656227087192779817697058275664870606041210429577130874959989414268191692537518550669982803563464526121482217848442726013846143251993913461460070423444517748402166232128459798490457031108169838677524261321673933805151795536498962322158756791421091150254831909085058196496891862650030383599065173431142918084311713661475110673232995218341386768350245345260611208926603641746390984071448648098198336649619048349468804558440522917104656016708566891571101364497531195390529317610549902384412732821701053487109549409662367464374610874378864094633257898551357668413847773883460387892281021125646686022416955010916359809056491596402096997301694600293571453280773162537870791761772962974353126907578723542177246055685354111544093030319552698802702111453647617261537371834395708053640757536674041952889563450043958132197747382749695511628382596336209326476344280336147597647677293614075356828448482324883452471004870660671168025562375512347044076408567768057668538692123786537979480408564417185791737542374692830596499968567388648536341568379185442464751651473641614121856407095771259798129934825205559328051285359365623401807090412687259687203799394483127028982159901963402486212517027664836978661716093697308655920348068885643024203855966329152869763151061496461516440249845141040271396111362209077178084804522338141243215691254807626897922733424198570606246875326353932844668981850968598785612187681070113278985737381696824394196684691420131711961459922970950343304647282545147688255325700683095445328066814834367309161134873115336708516881760368224660908822149862629110460571470449927897114022604686411768408636424439963929719672112083371154069073193050100358071509146713116120600181274488427385476727316954644980771404083222406747945397179917393534217139872553553570364918749182318262727014779401977338107735810092284248355975018881326488294630670067526988574287945805875334432143682951288189803390949448202076612923600549214442789708410571657396932113678992928620164565750680001779254140095853470975255836015816380020289253831643236422899029449337725683606605208522120445182279629495349829158972853020917860068325894793024683510642827237129991686406025103678255270423454420885506728335900800250438583218327121458593127042170127595749818525141980608437253523661928239743314200239108226458604268092369814639648892891377161872100493923943138986303394111841478905539651356460399186548140493294797220257990551202262087126870046105274202306154347217285880361371485450956428000463739676762341755854732383489198731121831571048374656713059871281890488094521286386745143115476994492765881971354189766745820073210695794048042537666506460311059948737832994155927327117985339243172154358190640803199094280279811364100484993119726291657771352521868950067252467016469532763483010930824959669236397433843328395437432892194542632471421813644399923407752178187248436794160324912771574825256043168454676405267491033800849162405039720463254446617535407016390368818363062416211055534931203751138539380984151058805058431047188677599614202445520902850590214454068882357505705477405879786861695311975526882990125356418322749242853201302002329356313772222529735152022888946736286928946016971177415530064879882854697203546831345319136409075671291901394335019238446891518889638270046404376961932006516911046435119996016156440431529882862799783939851401596501651900482482273199291645217475123810965848416900856095500716808765283315465606852187329383185753731162503834347069911266652727115192192602505544979249661671540933822737561649686969400701773223318856559012144842236102173809029280517331766473874893058423090934435228089515592000124653607668852673110657187680780148442020762960835736364339726478334420983846542767388445651979209540343140689965536781074381845184810731266607127058962710803322362182276870490987459795252337185664559783525280368467457224213077760637550483359103181994770948475206745611550390911800356765965248871444845517549366623780369907689269996876176789249648689600328767111266920480165188803021804571436807626854393628509852619241458339969198280372180777324314618998198314232753476294505860580903137238854407179613668550270620710226878798307744989819311069804915197205466176024551679256026348753004805038792017112428045517991244055427505941946546576954708877955512472679432681165571182320984812135906513968004156950340698381340490372774636130386992366015933329275110220669738922579243274317359546533866396992072949715382506401385398212056519085822121481181040618271204169807271391140848157222587697014488205463572675736420127264580971202913787250673393447504960588872851986876429855895712466228065150982225086534081782919881259479296160237815958927386207423438311508132370599363964429941855246505786169638927697165991400078683833791240279206837831767972585821017909778251380517366953865140653906185481707519240938469429397318677969615614895020595016072601511596250972663855423693345592333798156858221961221382268168323976321674942905954624407189108361153798220585053694465807828884258563949787848451606442474942673049734417632078387185973719831521954119614391082894911760742195624714081359951194481526377046424847633949252505671962592103146735656887436641273313835344347803215510602056395529219281934687455438929837538500712884448404434770487488675362457471433309736389619655814439171257793389901680650650725119840562479174155928068191783002961900688236262906996110695446485369145203980184430555859460377092260131748318322130982018443333487918373453516356997672275635494693304817072290044302575317745860709905821768353321407328227205818954690806783216001914114160994366728178964144898975026068966692386050914780358037482900856140613936185528909680061708807852739473641353059734925766775249700467542989678590949847067187251219165508346026539630566740645822894237438227494401570458062754403203948056474800301803399734693073104295477639569064700133492234776185635202981910186471205550330903091271499177695074428828558190260040193679427505042821623508993956510764810558571399512799638087574187813457657683938847833112136041676682163642202486727308989444519710599889015913711807614883382062398350307695734401967997809130495512884827085844885479738852169868433438598793484939586910699703673847734506651019541062375943378611423213285594130232805028186541545413948794162375501273326968346052906761604075805185939083791803378640434472251116323695428399587772767806755655301173096071508450673981365719385647331760834209756193524564340288437819623942558911080702925178234801512944713580652356309202247280515372748709258071940783183342721249120214207974922835104975587418260470162804559886980260490321493145637263290060405726426353467175261672512492418681829088433678551928342723680945942093498386398425505549123746130534505434027744251995106295848890564880470614501099587157522651619886216538526821349125815670722712489405233741909217271490121138820031147409119594876902669625055366411040294726509119978720840366503572177665676607248709733416281608103532743734901033540339542393877319207195511496702981678165808575554268658041086824013630604581025203048235405564681697284913406834929228737898040546337192168038974677735038455236271425164270797147554385291475719815241364190961129053403876603823338027696653362739098350219902944802890194756350762333762604964528250497757843089251911246464983915173011925206866052249106067547175157718722207237337407319024547961175059134473524127691258913458464614186140028784786665383101652279528889281146468343118981433218524195383779275852340311246913691951726988271702509499598797730720603795283627941795659444161548563174551955326876675569078770431666361582489963252069126282916889218546955867147452791639254293740028706450591573875274748753685717496004555761598134258994002647699397054840370181168475191005955918710903768643627152458596219209838972830283404753694471762715372749693433337945414690158215904726753535529434097620524814351832733818062136892334840396395422651296070633820706955737821636580645043475554327216191276791172240619358449713203152413487202252264424163335325468932875854424089998246539566695940765209848701429509445350701175280397979073318129891580874686157311944011267076279643031665571842505025104754549389789096391214029390913848726449601944213199521632552194951147945241964579054689432747158479214485472007269313802311487032458018078632991208205748953461542135381841082971966877687321729257313862750480310501030054689955296803550200348360264345427836612892041516119531143205071132179853436180998259465431955789056557771564806260973016596679211695840846223112240957503004035047499568257547601475224272706640452952959565920042201873125594147729855209966844511217078019901437285433355197949496250873398945839989620578372862217080096493927682372255313355353387408053844651642646826697555018334168409763955843849233264365536333271726793533337543633578964626808530728874714016173753780363800996438132565531543262720759023343642134777492499439284313412984442928709151778491932764091737595715818335578401332703448096317878101434394479308717396072843581786633816543339497812169125300899397253628022390383246661399922707733924052586975335881994947566618946982701789062788333477673205108798162597225286535789253624763057650101957337721975454023827216568737417449356774897392000011986462850495243120108852827933246061241491331977971570798758336159055582665137589682208235352588401653939798364435213829053130005070863918579352232977799086815528022016331122756406003175881317315141924281601204763940291882420801313420333072709354637111193854728243717147030794330052020293836642509033837367447080667940877608653251730916845373171137235791264707771629591168906823369292205467929071506261849506548507598463705016386839435441673598944516094456678504915097952462492673017973309913889622612840761092534626257405150048212027555284901053477747384548978436939632658102383587187341862377116592200083963807382967889184832513059538296570322495322004209840473796024017479520756835582027956965329954225140670189348409262071566559288090220678279368358332788896940483991642789437690444846862714751876175877162372851130667710757709757613275490173703805221918875227856712379650784328095600188035131159732498697658702795732806926237923758478184584732594154074295527172308759852674458881677086545600024598877345133376880123381083476317110797497470344335868089764758556608162118356150685437230527624602220866566754567737996663321730086666838629195487364019143130898079150070811258990735587734806586319199530157467617717693997917209482257024558784707173073967273484884518455419110903213246427080627589144576575540946901303961789270706249350074273307590469326283634808724666990292063363326942189576825453807808425981878338279248012786162349042161873600504220641637759279632711632397692649886866968908822570236786657297687110404970375837858370105231711704723644565555627147211977242725235536783819558769895477260284300031786544651484861773288629564187828000167883656799851433673642077598312190350978112319524129000807822654202506704726099487126312828701034373668879214087574734871561372705217290816317328468877935517873872108074284271494624707091551878005887054936440250480428018822618584414550480069942274532283560291193614332150157377191393281167377601879217716117063107286712259247906241810465468817542306869575628787938875051541010709464119144013472954155854306422094461807248469825695063694989175209990117217286439362472849399177305324873128947685431074931098889261808185248835498587202571287936757295993411259554167810363563934862170096168728194678718449673569561023387898963429282136302700446774567863330095450434783794145299136556457548219651561741819135934630626664804023792849089994561712884587088765631207753425071258087853280211454944942685372085917382565878270190265339296201183424933169096532629920067146772832014594816067327417233083659784243636633670436745771241420066839206676599271305831862400893519467307285987238284044233280569091708505236600863849751504422634173361352543493496066156561087146060247527262882288371369296491603213049182636960395396912032996755910019382390158357229832624590589722396483332758465423294546701480171432083890270999122214851211681240768560491770785651484703170542443579048679397178355762172312652236591523112990144638327038274905655490533604717293815747679644184636227187677222497711161688732730714872777231199296490609901990750802730215547013374290313514873779464376859969604355006650441400429532486686689503065777520405127484650583575402787349807045756105336875241851888786983321835541210599599731239612167825453464890689378825134356694538452793410472396919975791336696942924976233183486113385803832873480424371641629364593148745016597392786941516920983104234415610918772464427040540314100106557792703614339113769286849091827786127211494522110731013697125880883890495486788433538974643660330827330387673168714763761157613565570276448845908537774009728223266964523632829886859937939346897181691222702653810000706465192235741743825416118673917710202048257876640531963221072465220923387116314229132997792397696307457144399645472247881365111903468780612500611306457889664413966349543533438117605394479113631405786858963395475002042295942209880579031952715114356592895086100626308234198632448973865699779177759719110161992080837273427813662544545573466302737237116904580990610825687433711403290569756247948872133093268746275871929995660239992165178556129989153303613051256051497506665236745668846195920351972806089264600015598599205563820874746921322704822650385530820901979382249514318700661093310088270024386759125220244843782286320116159390846206219076030519016768025489986831493699355767180253635189895826957023576906675869997045553663162638774082293966233314796267439771042006594365643248411291874177130481145988129954599250734551841599165072149944081638889831464895780954062814734327028040016073377083753534931375929004126476449115933881276693723487764199163951790172012710783450142344924541928738853025990146497150753293776123644369510486121941851503977284011764447942012709124537578152925486643273588898371920096759726434558440147127497933604589054043101796706439172512347169390081300859656043891115165885966885625163766790133960387783630522274059344935616890157230184897159571473882018141158428390238105182189037929646468866121252309278397736489091016549155049837645798446859470910065284632942769570002936609671464728080296161048857234174572568712454468405434690758929780232427038688955716305570181592461503262320782132093226950849661909470294053930515217067067244205368900801372404857386568463047255620758917138977977352573093640271008455744353651131189277958055596168462888538825938588752563545117676917226603438146046288055010853696826612929927966587956470148929366584725107097694045405947177925422948104608647814425129256372606661138135084414253926975152249927402703817989760151079689193693389858026202415836711513979154914356249997466132716375229593475473873378971347604062078498317571263636276084344088737189354304041116195799699479443440006329900462802987078491176091446565003865191533346353847981112043420462180576813241358906037522083570332663317011176568839526604733569608412699469474119222644943477051571137104414853648385015774650045886055042660756786383562217795881674576721434168468599466565384210624238364081816384076052931707440926289702948404637454801074912325133230868116153472475425870375973452301532678412684778766321636142988181751351470533101577753474522386976125727756075672965728892467132522482228816032090833997748728223355321163785603362324081439150689146145043479918750401559882744541758146633877506846084447581762275565638099583004916967650130799472728461517599081629142579454074751419762091757807192809419206345676224948432704243611300960795388590394596182738165440279684185747604143558663431017902907883818551097033829083199615791466099704697174063693464855677829369744071325262851417369294429861630655268644773501444521870379563221792090785567417084719874328979362755130422153469159808227946048083887899318015707495918988932606196494609087086876456170582520558057345618226556680176746489167784479986856268947182831911935589904110884233778299098474873507537784735252342592428586775818037785756632044186202477638517064162564375065569328372496618305369907742237209863763452811051434206478527983828280610730996466266750808588144131074952091749788242713717937730249079098562125756838736577596787148267797368336413535859985481929652785394392111898691704204764183279766146359875354040332689104191640077457094924671094732976442438010681706006603013013670690177845385539099321126793147256311018430318775004876347589872785065443398430248655411603480411374907490104187023756968336215342377104600076426429342282973628933841848307073189305389917027791392839115428503770981756033691925567422369983357762245845874499549825189103839849715280828644232356631267672519841691588527472915083583635788833360222196215548584345120807471309051924551897276872173141671175740825117669674694639227557443329144243223373296834242728343603022171467214517453980047671251328821029583989825468553566605309917931263413526065117091536236935765275678030830970050501919466779578946258944179448705753693651089253570655710835908678869806556666488724856050451469951740356628597635142555653472095642442761608270865878734830830637724263688160921242584875132414924663062524279796341790511936054603397952429984324212347632040783710064285945483633338075027359607705672015022272948748075766395474940096938862982664500015139609912788210291997391508520041207565260763271144381646846563243948221515033124195843167327054674323629551863495495269183180148025666931520709874979674476304388232092159701944022852024983636609331777365174405856165898507827993771762241757079496601124264709147590653830522079198755382647413681922703535381779837966603399650726760565148406857533003401053578925069212388875264800015968895018447635695803503504189103524634735237626635176275872990922754369474254073885017847381893404084955111447047062945661858892437514038031370800489896426837708602092685779583391734094511743028786685485301482870919409993788052198626696646945860825947394078630530811100651626603553502316272216550809557593494698716503312628101915921026146176685513373068268612447395762733953422066832311397403478479235030174635117087062820393755462186093057549849830204522035544074273038496391105202312662150337163729648311347944074672761248735256593569094260812761452207034452418730672528979794016184087764917193469151923219168078786183364450113756387005011783038291341583705937677823900504875700784189736940708404469642022680853881770196735881226938373854004796739568459775485827892071759485942056077826549670136723054305952575743324193925474085127766884836008162859393677912154681006700110637462299052163692775677517880855541607412552912099066912311667083496207018030278999861903989458417523698639492536084275763394238199216529039475414533455999867061278523699424931612857586727365020726831334992431753975442354321355523036994187998419290130921240542760263931675697045733932097205744723834384063968748753299851549151495832394320236822498280139274589218494706629797764334739691347867538183159361645158450172952223640154241972946285195985785928224034834859692259735313088674404812944914886055629354254565868618658239091403462690939815110545631927796506107081192127983359034306646892964990704494732426135274308219504643217291817133507446204037675457035707185074051351559218356807787155041695961546917220888189592944307387829269153637431740966359242573133089025343638605682254682004232066387171252816595914388907652897860551630772278479920831026012195384463815320120842497719979618191693525759019061523763443761703266026022862443191061921569269733286676937503191848518246443830552972180640391491308294089146316557046375890883926045887828074132199566038142875134933070299760954898429955969725342364996096821233722428273291683873967567594029835734006892996179932725100892910128032101405703270968577862555165932546382922496182203470819402087571583876439150672828464730377137976416717790700996663584814964770441700412596509862988782613627500707229330711676962460217410924545903254364216577683160873442187101010680151564630550652966153789347017925448011214632984943848685810834944752038117464794187364304452156319738951087421302424261046010955394851993644107144942245260327898947346953025291070520700688645702586426605722813006445041666716153369733112421104868446952809581048552988562743298005028140347115384386148483277262437660854881971731990636940723495149011883639136852421297035097535587166307145420789125711406724659323862845700676806193826039202299203922406005377265850501970011053890794576280559758524945899064469174669145923004854598133743112498754671074512163772025011387574088558976533855919946066284860834821241548364528440136063507997131896010412150523353526397659538669600174900258309889840366947029101173872571525797301777856905723778368369614876589922929799869497559818139230254626744689675458202470931658446397844017373573850169604341324820803130974569005595718760940438800846294005406993804793064982430188984541484586093675701316084066813652280968985659277542203789713252405637457737639279871066326478971828723146985468353497245087541230530583427545193092604307742413285200900407693745413286243041573101761037959675988210425065978309905935501594034844085265159571144839399077902374142190614125707174636343693641715672747374137440438385431727015092732120791266755967878500920092326880120730313036830981097705230689748743843289178659022888855510970636954337805189935212433663095333349283590208821093453086083317369162868362802271435506894385579564007981214081912773748733378717892463838604814252602329864241931649995791355252245877940075588337588504304554556644121084024665566185455591964271501624572569417319619095762669878257113286248589193924225033915485567842342978242720666026627764832315251319895046649680775521153556227361957077524444636140021067067189212558608074138805233828521285929607685714055667723094835650689975419100499500801383234904305942333680415353659798252599635613951553441658223338081892251314298599427552667152472114000725653944306342596300824386051206876944087866987487049482725684258636247591595709398989464726112651921480479364830726348103043816037965152637201711058185277026853729468268199551366570263196566586037361263415015638747920849996260467082384026003897228332330362002643116473261607670390699173473610261319049130427081243268977047078682987690545984165818552869750828782120081825296556233800251655248858750334381611609096132187170440069826731200198016404501403015244702824263373686419105046097898216216082774652104363861221594615035009253567693957511608391892839555752578659032842917045561765287131062224253364500082247767246037870085954579561281476430720582760744050616440252093527913928265390575902816994610154192288567475797088761238015143084520556512419616518611949492774433636194148387653081776182743491018325944430228147935955453901084262024431253577872589580538968102214328050856369504072579677864214940691658840886023727490774360084649761201874519784395446084708748315705343819196243031357898496733799133467058502240914009512526884027797466270955946303007535142307628223394592411145076389220548015331602536883260679738387126835811509431799944867618218964744395543828998266173394603669630762914083878400833192247930891794130925937503876124206958057251926376219058631979996683173488283087964730956254927542585267202808108797649436298133836911465430593656045663572047693674161993770318568208575148788002236485216530684266294667604763645608450008803305946769062236802716550763182220579721633485199303333010855839740463730448339667703922196876080722919710913778024309772144479213484176428550070826632213775303871272162874386277138827556438560380571900315789556808432412902667505971658785471865845707187082006060969524737225865895692892192798699353851947900273661522502055173719386595566328939777140093791811403166982881746452276428079978534613660014321754979151149875878026308350012308847303474423222152979869700218413177471551482274173980939607460848570497575321294690197584784040182335674682762514377603472938038474717576768345969419763716646090332320156351189916368469013406350172611195927575793313371902822739777743991407791410489257570666439664193880921995339462234242118580899807268482144823205350336122244817789279167479211062652265262644242312417226214515126071426185576139585656269023299875671047012256828767081355461583216873551397531958203935287447584008860675487320153242761677954295840780190589082634077972790127520726383028483124714989098620391251246212382154764948411398062371190551324284742972401333157900123036176783858709393415913937697892496553103944675233565711427209552282178586174909307233450701920586332310187430569099146557403475411227213910066073403765523519427993734007266295049161886405986317871517226770443659501509543725663531184034220438655304091668971236291674934125147232380335421691648741985465767759858167735191193494529798289315263685244262675285096251341332965542392029731186827273281660364465925366787227749946364791879719993285292953890205646770182441225806776242988931428725288394591974608925576356852413057608402553255298614188556439548565667647049327405480774034453554866685135705842327746013831039014518800393221804142941071354430331686893615225524937214039326273270211305035791069148863300541198525948099638635984481396894478077216806130677102098432663678191394930733144618337527288192105411561203078915596927960133376660240043768096544492818135665513652851156557780726364620197651887414556110385494974899951445468003986598648822821403611858988557159157985323406210670673366642283546972468787126001289660885967482266455407380219176602470059374442707687841804798396553541846890870089427746723807448623619286681987332861530631391306930256507971329238607416311276143485926793440348803963057069922221836676301065376880319063340555747633031476719521961341520144312426980254212700278209809955477648091844691329057232157629237536946041933383719232144521854680514774274662531576033434725013398621123343766743455224278125727677652898499357149829017347849149930390808498668597742225122447280572251382215427471747071094414800340116797365396479921913775667689515361093474290143271954184912545304980751324988342482491219460098626570405935165701409061959137750108733717734457391760168718891005070980557840792865911218997786779731619738181443373022818638015482116390303704914361742747605099108887492701846620157994249786023082386033796875329216271778682973679636914974737393124203883698909703108852385351142100744837144227520369021017452264327525158105494018052916495516523120249170961766027269527077044020074204783814834802896365898352259342969197243278314547950191676406420109882525957283834229690339954280686355598367461487120021913298175545376797055725986709897503778990158554230397917815611696880148760655458751733634304162318465389467449454669170881977403152499298177381986885468815927302690502796111354763473340642172541704802578291227230624076518433526239274892524454826700808772779976633248267065104362970117338173782014920018787729858208735368791454508619987182878410859573627666539928839652406805247492209533173178642211822249499211083358347382494187066248115299998223735731539032563131150237905000763569248181893554058238143668170243467139522329160604060033368097098581710017722885629844053233703654828541922309539510310367550298076160611787146326023217501693206653525248748625127153979239893538546748629710024400827607114358024013812204892830650095014570666742742351980540881478797955768352963885710189257256401301592211596575433506150372092423377799692405623111749340946014862103737783967112921819103700748543961968828034419841940142454375811116660128617142375646696671605963782525886377578742318097264598812223793367041489495962920340461652101923975790447012057623561921006903286247524995712461559186531675668965068464424400254625949270836635621717215852488418473204532832401081112590128003921264937799285758540223766960214452284666588318098893723491783650374634892960761724685901453842022061822456690783970807742455904575048223572842778493066262145559878725195090438538087677560068111932121308953488292897713323608171499573505058738691469841219072232220808864715793429765834396805212596830293619683912289646516839803555724117474072794999570354058691052246744620458816406996907490664394390445817459062680521148179227252729007631595597347971756930435032013541038293509224995397519048772193397338558243549871324624746810188736048097178667969376766837916930927607054278599163537282869615365806716805590349943196178038720419772431004148057671137113692988238447495358224996136867466165139360646421678767458317237674629792774549346628767327308882852893464912767411184760319910958256172779146519251911256055895297722494175485847442764916311281691444729668757274946543140339009747982004710312620179312111823462228540305125149945950979261059549876917082971692116862751620674628547965839306318776407595558832560333451927574704957737385280195489958865913176045117371468957642211786498956915756730946694835557309692827623653265271971887576459073283533460753431018802901517659561338304018565542634883401922457456678684230239458432750739802161542407891919429737711679705578328121261296205245295922828502125205979861606961334164099211151507335501484126016469698546765232506715136534179506741895667967474944646323380001366400555613846104702412932607274255583010527822243772149799383707613012975444468847868836365135804141735621404093133664773573419617827348509465768147432603443577717900483279986340743159012224141982999211099783907605422068417461714633289439200522986173014400361553544511113975487655904830874180729303203228121011758027744370324808611478027131716388430659893963564896252891768420839815891363009825053668054499737552460306121570419613833948714662604760065196923197887786440094933718302449684510799434166549314557139006323779049379278884781420237873792237433081415640503637208225842974782036896464604061970086959349360501101509680087120877276014451303673788670386040070123887560460638636644449989828999518712564725472956876870297710612216232192013300381727960798537803621747442196475604872896922648793407248134044719301805031980203729332568661765793411063097829937533924294461859145832888848030900875971850281269414645466178002490984389030058816303532316403100401410164054267333791174639033645666694397976798661693361650028889316013680162886986541903803559278749652770890088788946174138216218965973648293354516383337370604421185511001148651736730632143473035362348233300850345658384100533756667586051453259803194354521869965607653718955516141958474953441948359932734898864451602353502073308708730641518894568427583655581280669672348038354322432220122295691191368421388780460237372378799869680682196964682680389330504658332844548283616764795267596221715817019166938070260059160170736745840994957714741793272252139930537830845399665002079843928257229440429110251426661210997945846492306629054580452994712425716672444292950439962547850723712403735267750755329097239369311247258893025354421016494773975375573773547914695600136447848640184219356852421847265694036771866177759717636470828726164953487306500866937243477168343103002973173803332483701813345226028507993219127387704027570748629675347981642687822237698544532536243118501002894397546631904049809095961702004995055594394022385302527274267197416649866366851203071924525992126161818531259574550301366358044814405598404339800748168698765889915272699730764126703710212491356956722361889068049416769581802059526050419961407574848902685060207058199020764960342999953975457750690788905450122871557602314199559850387624972396331866695362543373516586554108883996688336156929339295278984481915879448193971281050202390223284874235209176154402584597215368422833213932404633948260457744575227350249516988521552806076234804813500109862091608244284754521533234381854590986612280704037210431044310849438355204930369803212942009761011312007669215667934924911402670363921866936787809414635215379950840277565854627843820971477973273040671034682442863117286967456560669431818070127462205420291855803253174022692167531037321106869520289720050241480008199643717583599781171653445858460253135074417537603329080821693181369657051602663493495590998716498469771939784798172106389575372641924339858447300774033497565956436575562473501592449377371161058252756279983075530073806348471631642506912003276492736574460318729944273417305956203550146778747108532319567465720186592908410233447999849081228763780017730748471132795424885746626835905803908235674733032877284700714689829457303447432661923900314683096401171540569347746828590376654223036651938468593677028153405725944939177389881914559519349019316822232140484156327641636304561406967996009923473443238231399461940309544386819983364465097518841028791402715975754534279233890796141714464359010122661815528056363328433173826342494821751225907667664114146693255370155954278953284979873378156376744481291004009846611103887233878332477419934564094011973051464336086037554297065863538789304724283018521575247629207114751161097932131770779119247750929990471336156718228989696567328359915875568388674742977689968776049672651521726036918471867091007800967480523332467962561728297605815569675007925613721677909149159923168927568096766903497305159040556655143384154249703652263745132074189685655757109582731423692968566331542433121958448255033678917538087778465653706649526472702914093677029230649924431484932423301282872424977417209946805985412172807967480276389560481916423905516987072181390572919726524945979160535133473872618617741989253173928929889757254349201923356883649025155562785832048058428722677911755546294611828980464900945435264356721346988942500907154037324282051760507199220732398607071758132694644068918770537275714177403015228142798615710886514910757540442023464756411816355793342932766586790515812508725700044844914174747545592177203406944509769521771552060029305765611393348448233777614618229234454241834182578456428118587474269011717412673847743237648018481287488588494710912321382300358664324098743322604177546276576935875346913044306172614762047704131162599615020452100330800193569506991543147815024571279789052393977970818958848827764361123387331425289035639739155551822113161854881654343344128643014547419323229875867362362256540927052373060074840777336920924407979665658415621594692582432477826533785632533658929529241718304736366658306469502208796474190641410653925786084348474234596577966724887184981370932870960419349114572588970666195526784505285665227565303878727810080811065957902879740391449635889994299320035211247009083281038522868923178095275032558107361751355375152341142942483546424871787674561755020194007304404929793438643958876924924968866086892734732558839984100036180048526928383468051887434574891419156582669635815239278113670206298712851056454858639876204705755520897223787153183001023861512664231893114076266157458171134519158710169316560734276802877724963917188850211501825208717004725025184695077609332511443161517928289534052526357778647880142466314977657752998796314259486654520290527467599409422289127260199057631758204060867859895575128360967192717735937847061447677276552003628912707036174806802066190668660673301644706468878749146740468073798027567680727110455878839474207421153287694030909009021841836791413241550411570389519897334582553979719008820059212172129776236313962856568381022201908610075715370207494491888240247017633031845458857114461454749493266687981540626815085764978137811706387161696131754494987003267626167966183303566105633378679634565979222666048528449978990889856669768179344031269295430771367674469005273333499482174507715488285622983005945857340061670321248469482384120517771951215389217722542184543989887258696244196596906043273234893337157994958563426481422933675489684598177667992715183694726356190563670465634508351952959257865234863273042506956268941909028398160452682289153779765478947394332594349607615073248794132390807259615217648124131320487492470033721821587403308293590933561612404262542429254903641866185777409743238337665388064577237282277950999221612807778287912262692696232965973915992024978400134871295049253060839765723182348575619967718535218393844023817135611745405706023778570493599164404282166340106776942942983730661213347853223674720036480940030594848900137688364623633143980004712406279104226119410455708801667307054734782384603726699726618482545716701414409286540668367621855985092118442243788849193754499124890280898794373851036477515196173462524969490103450199011095939264375630445899192202725782175861346457851573791607682417517334586143560462648065910374990700838179351456306790578377411411071521105096434726356186585617923222875461724565223995827420471477841628127183766945763402155862199344405677055038014760578213454898234732361155243908022736283725793099603849022223636417191685428795407627319453301936895396598708835671313895645344739555786886019267026526682080429141693838122028684972640496861133494053345723048210481915924146351748372045257406542431141980097452423245592178214452634592634793378129870669448556318505631854145819955894642008331587229466514573730744673601479577878489770680526505680509834127180283196271113070245880774608653311318076995812534623195842953570236119169677976444937327124020894253148989194424254385565961970049093678066650602401460459059967102464019626886245227427058079695223777998941539609817328355789801125679463749657150884863047554692287389134628460312580105059231292303596411263372360337980292592156361021011964461687273405469608267261423196287701749886201058901452716270263330659815011936556670436568709553737423733152405406088036178408190625401828364760318933101460271446956911637191968178096603232846668303163293322419501040392751570720097436396411344791580802442122404116817737819767047510926647936913807365168627601204711904110912027932225826851371781024930717705905923402553230652648751535592324959720716512402087806999053593587071832363711225074575208104376068071552000307347373757357032468805052364960921244785777264127902670719609126152958391942708138225159362441138925218558651815966889522934144788541864497764673856917758485590806746809579873272330154673679981680225654869523049896510905629908171174281825622292389772025187583153475750809822154058967541698549746962089780025412607395177419831462876485816637370081923254184283675088618113037031647943821064829956101255186109749646512561391412308093766863141966291924438114265566051357751145494287484770229761861847984154945567355574269878423984522430147171808709826123817927752077326129437512853584200606098798781232119590946792577737332510724209437263171446782749018333040208709534626716591408732737130768820071230104631209091534479431140501156275553001245925778399968753319519663638120528462193601060323684004025196466184868552736680714133598783822755181973317162761795880544591315054781782342027729890519753106943219444636663388679744816269862593611992747081060019339939739542281088077426752419024797210298574918894047639098858051066475505870177836776570608880540023755231397960392236914439992336422140468444531179621331248604499735383288203846438520105814592518801644555540507755481379561128904365594337797106354174649184017343503169245627500170730958761798317115660179129026304017014470763934797870560686045748639201846232210831547936068468579035974310063246936609390798077192858280144278444902845027734262587719015583940049237336216574323480378051029362838275853852971222140103825606890135007029860354621099952760168152730089116473090890358954902689146886096399016206936248802760756881145298210176554330852205793323067826410154100439883143636076350205990053596587013928152544315667624445068689543898440861419265393612488749920625855564488634345605404965175696120296691069796710677158844019714099998108639851027083040489622173346262728413827998607754693441789546871863540445376319007022101629698664878155002073167341668288970835145663852032131579072569252851387726801435445820228693344655358507359057999981545182224088610675877655128114980512855245742211966625135312472320319244838386430515627870548206717171326035942612976913026768860848513009463181860264397744415220133742840077306138444701901100853497743682613442854885540893802015511153686617532835262219983510665826368136014114008364080855369794706135902045184323009361496815032558838521382190258371433386453188414551745046198478401788514314563262828243594874434021368855383596313613139025915851219593898858808819556335996187919548287141872742369162061799285171765608986483756703054737688182903392452045757927253641700124001913853495302448457290862334977335033088916746329173285685708621221632313930693428625783587300479283436210056493480093362761158147480198464764430402968722919196648258192570618172455583866872633108966356816399391402261224267443345781298375144469590659937373123457678348490389352570029394435454073218697104721514835836829178927164360294943853229072414497511205082506898037526109579146933390944169993870487325471802580145638698037211812142110776234802674030233122767514985153612772457040346543131039852358834139080720557078663748706682673003417728469539389064563419405069299146540528991168955153106490349648679887635277348624324873912428899809073373803277551919886912357973983649908590921244647107374878446548344604283285102542821232429786300204915254739131578508539705216466669198281640322242181010934209942964487129914992699940074804566495429422960098173816842710001694390108029553527054406694214098106568330500936381120710316594617946593036051693178357916962685534152001867553022306748095248346287427012313477528491713820031150301685011649100390983333693901121283462300116370677353618512341035085589541485662846242941528138210598551830880508485736749134168394813771059345835441426115692406853964339237757873724112200072012044875957895554410835229382567652079584271007815215505215573000372118002332238885088871302558888507162538699244796415876163218626100854488070752468038278335228131559086370698264771631166462084118284700297357535403888795728887985792624036254539745644182123009634102108801838312426966617166066481318119820012639488758528865593829419613887198192612896127062325868021226673477331499004158004152143330947129076387523418108770807894537429499582830371404326673764194392806864008976949759892761029452121780269471157244355708422313944263731272120270662525613540730274199609653985193081857470570079016026594013667459733458432912551935991179622516803853397479353330257626723553953157005864059972328494127012843261384807491283275496970378515034515211156190278878985622620544518478455106702865329573768082343260138188225638108186133720484010182934292312673884495416621676842574490732912483898604715860367378662998896254241490096904935744240362326965461624688624984071064622814465017557902194098185041288236662568210984214186444927970537603219888263799320867415844482077490876398033810759561865194181265134309973845055600053108656575122092154182200246011073685939962793647984032280403261470566259846473290492667413538446595393221527427408012513220000691167085638944165616704214946188950625816947277370360010930561901776224526888478967094378210999070529139340929266589971564515381469283955182747884644475643618160004758743637281126538661846667420341049350696786495003943210688070934001712517239093333385805820133100462746219450070600375151977728213747979168347276991770249559620652810132481289115489892771086366942708225896536651997531794705622084424232166636725588748550385801358707774986765340237314206645474087671579356657668957938944060054626641701440120321963967780977503575760288730435036608320543822561234137058741281399951689662575861777078467865083210253048225328956890973956311834570262902536360796098547715995677184090633910864829546944490273651194937437364609626184802316230362632074460911991543984251500275040500481007471722512004870558524731155494979435892986898353783578632628901510976865907169152765962356086477800316803770281186747610047358797820965794018176247573162884008838080890877783770203961312535141876323043210499016172542635022663820038840366468181759520536517650041375889862398908304113985666933226567025508081388114502656244131866376776221163989728440082746925395433510561807581947008596486244440624487587737288979682564849715054838812161666595969268497902924279385175599893458808602829099772326320886432558619806309716717409497956486234193960535784896102358736167950934956968188781464055887554696327187982487166922205609171748118012350052702756856327367232761459086976397422475884818679453190966304933346923245518294723022583098190283518663739029920057169346770455130697424805570454876790858323825827571932514527858561027352671401076196462064018425982507400818083717661049249086298141342982675564960108133221741764782196530288355330647277512790305959358243470082510184409084173571456269139147914144797939554874466650540281232561585897774265253108239442165276084191881771521352593166795180240119119983924509533376459901136118839765897822871954369313285292674703661401952905667467902971217360734298553839529574162902395244627589808202197325384967823045858453847211894288337671883500452543375916068945913371135122728118947143569367299490176922949345151557174397954675585201434784662665075835186660965395797614458877830149628181068346207061826183336487740772794264945704298008135658416008075170523106023524191830098340598021418283151278441497669367741925609782326675408251151998530244938583476273048084317230220772048180746007035078888133336631977159653232667106910026389543809073259289911412457904114323099981526823822675826065118407660560151545432523393416179598963154046986587150888542310123573642307766046458131583053844841884415608124460435731824946109320710107355989430126924041904586542588364042459813256810394750857128448469860980284353499949302727448550177433809370406903879214393264352514859206955007787024232267062191501741547105735608731159099949781956509448353687721004872736540181845062813306930292051430160556801044095772810871928241470275363201479439422711775248320554141283929273184011354866024964333758413015996837599952735859336599438162077762427827346919488159797781305339508601193708656679936649610949683716563178171296542982051424926972439361099463133782921655049957611789926861417962140403023266009554717543316022626664436950044685727281430557143593990159632029340155414434266780383421200299667397717447337065099857322595040814812276510527222983747292212495552355530844546849221698173044266238341383363785935008748441247527432792801972791345428261857627574586406394946638208503780643283877074306629688010327191039293059541219402616679874883059415508298717870600305231287701743624111099419542339104760276141754203192781454731406879842318859076744664331523766109223716602014779233255655979450548617853817247355209952238927358668140236090014374406778442965679242277709256624988164198967836687019879256599077823568260856070252416294656262367198189274959925113134795892052814854184068386254456928691579281823572841244459842986533336996217201356767314421555085098576646597280516004480802657661244170967807968836278190947340724736744784937137327794850729102765442924073038440710860511850552180075424966699973506977878910424021105822829401236342525370801658732587656271649616378735436451714870592735334990344589297385077456395701721934181104385800310004032004276969475346321353266360891469534748339327549457449509426438534740004346655765836215172504922331365408363565142187684920545606932436223556538326605582784364214732941400370562273600786121590580371930964824797727871467666463416691139724639081303323703974446059630919242001142253500465626134912858707882174520626533715586957804436188265996198420567064764706612760946367423825915487317018421305297320438734524863484826652543476188489833021983805799897484952486443142947242115848898932061188665489265054771623327389665585496977165074799455610444036206279821834446882440649424614067573809697579899319390602281631912754590883268378530372010674797737584072525280738229149102087013363348781700589282949958645830612059878606404410533063759796790356708951229006108332200141043012740977657438726163192247863318315270568104940731306973183948108226932563398753776747850471061945073658895425161511610080550321819926343371765008794632677628680626297344536886308437245165022758142459435130293807771166671515925675074139478811928727056194645035183205732094618711220283237056522665158245680066404224555687346367616542094952242257714144649449653549379375486742346381874778930703097279946670102158042417082909728485083477577492763502682800526613436129437144654946650159587232173868773202884245540144455451623577973960608404628898268024392037610680321345759562887621550963951903869466386086230418208939610174793952770444579054520678604787066904427501415725293555411734703851445836038471862626178015133516048179663680359592840810625846518804812078078086153915397676091273027902577126282200321525311422747305890450027833976534231275443983013785209499938426234408448243607360865312116877988003416075927295527111416597068965596323806140950310389087703188391059941816379564515950548460994695937532585774057958806834439660872350245667151474190247754563469094622349033678723352580364545031742840591020689595259309948008070136428327852322319929906141976669389895588834532976253553432562100222154036383761944456630785527038568708120776123762127913329491940913294038052264234220686072980949936067337731279928068099660429588242954250853103592870106617964927286177708947723339588557027622452804212900354345412890109297558845478193053353620802000536261689168545972121848988885036184309948157994249288224797219755872707933760684132622225276332310139714756329487957993153276268956487306469480590872548047250153855650079584144247462663328831139088237300068941426690233599789528653412730477350243260277617020483547350680318131612379090822528104871594852340958645186581828260303151979051014207113171766236993216800964747251712444224028742575052991052776468011108262113510366146592956525001137202199740011843679876786287443314654698503763236752075085470178682103456891761786443633089430214502820368365407410584798857541270188224763393450793873571268005378934871557216492299919722920293824043170696611372174535200164109282126376177458474692884897302012524873325957858804025966215184480363217889856830282477940066466018837500392315414290102402490184056008416031968017847737649622184931754946467711460918594300504024928335404290944533379845595352890808564527133949358856074736216870591852838108314635693746482339650889072632357540397457560808865363185210658748682642464663378011727456828554560852568529661766869532667794070766720772559676715050348209111387791065404483816071254582301149224150893393688456165432228879271116336744903730439208425850082574284223116332929195453548961079747693408930069993890949225491273432195821834666007635097150318262959138258280573376777501622563280282592772705588561886164479376097830921904843269896617982248818639759235719976639747227837226852958665187822840067210974904497892431432076128394371164974212256056165693879442320186720722742058474027020791994837217567938445200832118292148965801033509912490349431430369715354272127354797733436188230194856915025572542335991347427234731321195725510689368160948856831237334375454113309924810595595312618197281920973413475244132751446833346647347959570480410962057941950815429062830478869136856359174670650049846521378203280385568858958849699784506533523792188263894351719922725547619340055719925758467951586772387619742021808813699206784627150481254745354592493316082055697950745935037028442150001198462453376416718952395029176742032719099296215860735655023911683638012940045174177349921905387726658674062489047865496515872219962782108846394777360922370396853609004787309478979634725437650926629014058413217423908431784868232079101870359634283377597472828527526558757014019888625759244469196985626262684362599376735658207546569977266222940273024443858014284783444841481749210014161286863072446208085856121325833062979846609992902961093111375855513471840029077218216795914696538572816285709368204798031509593772340131663181008425317298447447624436759491111960796865797973187913900842628562566015247909387341640939086587164974862677182035234938439260401440088758818082349483284377379340846425211695790987045009348565500602877321273236610264928693207167310088675999037186362015428258345996172283994616018055235936919008999023133150296436273599764103541395173246486205863024463744472699543124963095141342106870993483145020618194640600325950118870200639636906910919486526536621616910407179388439535465585243531092088574975522527105238153371654809614666942653428917178039847759207874042266817805935573090622427714507627261141441935376804350585643328267762797528177376967819796154767758946067958081705501870736561545116939734450296968628992410004789040067040079044300840640584616382068641699812771809374783285676185998730840778437084777894773555908731611473043693871528865207121932322038063939865321963057998615674454380947881434270673213146493171993099626491178557318258511097773815188007056286734169233720164737761916532287026356881301032909992937029400317914575703996160205583637261211696714172323507705647439641966195263419809014105060233799772128873527415149888757809497346359666548218725094559560888336544333575718472438335734340378224349243881605454448825902275008216794216906049988352893331357492094063365839417871738617088311139084537838965946701462990627358666989027069483575076670937156555539389964580919302296424648689830882668086353046233862983003800474794991961970673024154935678899522815890841665341690368290429715871490915554374628397025449809837590223000352376576008906194296420579567545195411957716356757406469852323300530752575610009397721422725317182095926577574920605934706271426494924772471962674463448099283936186438864108039230213533934700483615967775422646189136624250976658755111824289046676172593943247874046162276723834708881547091872135090772621700588911866405632596974637135203375502597953805116215154477896410522675182377186644250302600854348496077178575694037947922563627524006574958996200081616039180074253860819815711231190254432886266850695024490131527238790247632380586103403008521342446813189149142275128841305561433139733467878259478685244266249680615938373082095826882078030628940561887876606406393556720663589015945128401314055283206189716536005701158581126577789068239171191515845909568176774085233908542806313720994510836130247593093304546294545191424752984797833064729585785475188043063510371287313467032895085903190151111537008345173728301982981441800499082408361023597994793215685018209442583884379998133219611501216840704341289069880320429657550521255310060853114072031969074553929745732852007963157789352610711473321220254758328288375088233214632448850269774240163612500471605628902372423235306666448895762395148713773621110568105826410473575748109189021671457234779764658749866835374808839546470524033386288203783371604534219692650945285973574605964131728289621563189684790110431438343389413349596736399432378043539586298514739764051901984909841990194600125651687773221013153650917642561437344042871177070660064291367472563825565204079641443100255453028388748578024768665562415417380854393193685208976277867720920289971317385897729482511970291102589945721161091321370585072148964235363373759753244719978329228427622159532652618555941281609992826667055937657162671923828381425192969563303181886967997346578763509512424987261303772114418260754678113983030738642312482158407847403999133459376631895593207014314457660599062260643163415278542177671529750286661298108390357491447444069150136977591855220247819955670922195194552364876611782382027726102715354728749478831488819460056368581611910563038069416018972667841271191395010846632964705197593636110265865925844164039580829749063577659539405996680821796575583111343479271969030378661538421282156579058976301455759952104523613381304023111192744050436497398682542130605828770333778626087511123097751672914761965300346616285555764446972645223141285260458826430206203484464014208053215805067952413623101595839289381205735479913706463537834901591305249872529823663187633804989226391934620863023405692624034493103664244015043726627694285686035996565855182287531859751284769235270313081650129127595662133759472562431271345849239229475627703558811640371998930193692152109438262030823573130776892320044514391671510494952805694005239793558425996613039491775180304383987380957324275436222647220316770872351833451425095744660091357875391917934564969446571107484093614739575116595879891559028343143712446749562614383938943106484602191958365267975336576326498616877880998601506341158836846806176821469639676139177352183797964963409609328431065898097231151187560794938309852725872265232830788688161294823431471933024838083833322095945036671580146579545682177724075212378673478814719255978246673325339314408236609574642999103747873299022228277207749946876448122235709346730043399374127949093775607058459773262797876542761938743537588022393434475436818057389522453923685643712677339593503361586730104313633964517273685545647534158655204321054418804663512297011454430520008502532554391885316452318840996864608147491982271203117605088040168572867243247980441240555509756415105879366889545940194829668666686904901104532041188696378791409953989602295508829530779975003566356614399950174036707031262175444875848561433508540042204115695283597654877065586440331108756891768363499601499233629410827798521465066002220936833458349834254230887716448280749260797352510290268748846170020524714940775710045570135021568284959805262720055825413629315168009978068996100649596230672106788625730455152727531026114262383777568498872145956200254406784881928294138427683572241252523381089791984002397418386525360061945952404757831719691567260820770155121548026669540057751777413653277216370386745363952674619587741268309875722707249795051730594952943891437271987099181797549441807566335825675681091228977461823837507196106542435741367079528827343160070356376726248065151566257156108839060526360634575656150307713865007713399024362370511925526761840139534578080880013346350571092171447095083109677494725692211289080479396884094696107356703499167246699528669158109002882822985268933364837752766992531081377316954620483674789906601959682335149113612556394132755620879476837127364620934553240110695889992919749250861974349071522434621810490474099267011080720958738521236440822357641990415424354517470546445321896979258043029236281185696665763084893328304926684739740675811163005811044226237829918657813781936821901989789464279718755312038346363486892909100464468772929089593608891587783602766085147041407654551037820813870041233566817301567858495546418877972673015018279182197544696040793861478260909442234216163458863810240919719380614898487291962785032285451679966155293926656442129009364062421025207007054168948871050228064265928460357334294588545998493237997968927299903561035238120431485923009223401801552399410784714960810512172948822974307440222328408571373058941533674315813397660997878045776098269082531560930190740475902290319554535713583493708799381330121038976929010226539679214033819618360759487826746734414467587926951704173293798731992824203743505269734806671783035369683993262780813777153230393462965929843197782678787461393066563056984464212417723000429805549880544229720437720273627956954025132643672496696746719257919321122538672422488649428893200888405059920583199357957273315228983095235738411396916624114724004466742273824116092702481332872141330981839355765618322388565750675133077673013111974066359515050470257377862500366151093198738642050020650825928792969079659972380663410009461084431431555080220011344969371745717018588503813500998372293731320231492821744622263450287046680898741819364629968197592568084004524661715087572475679774034049474717570712341508671828002177128795314184379347712889698014975794476458916708751642025847880350742610541807606218522152092978657859795545538311718021370093494325709953398002555990856128321145981859139915642678941384657156935378552032880793355475466883280903349185310222358532451056582788465495226037833441887892919135094132329260247110587410763906287261147043828927455440394473688721052134895422299761473073199779318065094688805773537352630658589367006416214938738276204906902320824675626766596861172850784298509881330760406521825733618113626276425183453612238874591021754179855440008015621613801961860361399224935427496918662201480299233212241839865831454613431438918072142482854619907789738584722886560371335088783361663827395043581912170967111332412431435502518394855146444737216755030205451888646415691679436119569627185809016966158511868704379661394097927652067703205745881308017413665802416470434080040255634433441862886848063850534701859810908907293583020401003884643335591217105221500476628267206778614140122444595295690628615694528918563826203878788848241387158193422315329236944227086345805995151041501607316082893105061899449750500058790752760645304773254763784477715009336404667904904274932652225041039721861986484246802498803763512345689080687277300381160808356627097147675944979494695331383404237407712759385776353775080485261484077150023203018934403543263076069213519240368612738966959629154135079256716302445579442583114170202706178256822711157375526561438169312408548008575449781546974934345960723327791271180291812596145360611000998348416179383090523922622761019749487395059546171308980470277026658383951136833762918066943917144895114880262632073313548247616228750187164565262457944672815278980750764454755611200551830000823161765214066564650514679300627246924572763730747863826573664796822739626924933371170332619487011039669161410584283806058304233466364264550361234230681853282969589365601984074436087118540647669396213802745368043822003584879443040991066833738757513171799527592604265231351723429098807065406673896972699455105444266588844653613383799706456948090266612724799019500839074125420609386916958615482928795272555033425173533910417438905551859390073348069318698306942553270166311150274748464115585380615398720219591783303249567141685921128204701593928080090556373263168273051515638488172235166294180595284792053129076622371555810669348499714775437749637390887040460045173547593903938829880989544081401471164752330762696851041842661604954652395197544261360306641489588404698345179299435039331640741056730860561626510170431456725774950770575565277879494103525441044040915354392719414969374711781282336428441639315790715277417461718786580089782932354020743523427769541273981174072235705659082606340205962044677224906761117491388373367867095676942485234424640367702159421031693475706942935049093138402589629096232515883510961662428975707173014114809747553618593242199483165816862931876965543162413587043289979476039713459853647854986926132405880295581255787229291867559533234694261577676927828054536841800948290394742848058795898162544485044804451211202561918389091224026288807085849073758557392944027859678702466683639642518991737887557074038792797211566920326152633111198797056612466048351171217374500117386466903513655684361362895921661181058335952424410441456658811759135885149163975714972574201648823522172630157711028682970457622662842835519071047652161261511116711120500208705371648141743859219837654423132486085811498058732925230446261587332017193536102651321069007622815013631228145521416126888560864637630023300739284333872141351602846883618325775956775175023073274182331722549712564375516108126360766112014064642737463587805231229461164181162750651154739525136254587072508966254790221982355920327091811827874935928608518849802344399964382849119493140551291169600578940458333701351399462468035084177628424209929078742530609232248719206801116762861785881847203929229056601571552733904040247171398122790607012676183928648192295779328721667822303922010684334240279668513058268206751823690575825266422589641757274845916962473981291823320331987727513542847354745304722701762211590475898109064149397632597277313297052833555497010006932935497241001625872998943529477954215151527454123670699793375208179641370893460977629957198254449369434071893603101914601825554092838485984907528985506148808466684544452609687212265611950319090047160805292671061810865344478638425488377558891554476873158439172328556822796303045931187206532511461098721361889251035123014572826215824567642981955743646362190020769548640505170513076804054410552669007499596644430913842989238010361717430984053020626815015895190737863446885600863791547947676244200771116778627017488261978316020136354454813337622982812417687933526426613325672896380271166543666711830261773731253416780621354561402593235875626611690255088625476662036198466800323299901687194901357347319362333815178083132402509865843664395362177947484905874751378823142552772021535682804981635954204814970482912653113218052183306442805529813292128847094922489416169853118721109667294434331829350944561893894108772407615348103515600549516408264777943210673605425049254679164434404908239384752099712724116924635255857562175798751347386035153283643890783554526113063247881139227791866958763850776644805829366621838513856447745504848711770370730259091355886054199297932139082575928243895766173853852920832825912580978535664726481046399500454383943002229994453372797819777418561563768701074300355782504389116901227225061383463773737745591231500116248266264606573366114198160881039588567053904462491723376251765434339050073632835030197619517237695740779563544655326487115894121247069366791026352061499769267950713377619259517661700361012049959767968571029517617369002780822535892740560771313447377623971475376540901159139115338714105028982952050527726545358848099947980698119357808827540942339342054472886233366253584532881034391323279567096979883707932740937623555788510610327162197718399098571884573734480842158168808268974100629602718175596311279731350720137777900029399716650979550996571380748490803352712506869061207495699983332509437994565316791489381944818364327326387801433140882385784250670259824247341504208618084122301072428762152765733492632884800385625330061194024065188528542346159051647514369865811045090942610584889862041080848067290029162792987746017095705719211603317067159589490352477950019707439592945190232269150652514516486362667662461315599663551072170898804965781401541269797043581288517228675445487789989471241434532132805077009815027967015484086708323597998286843218112191665778943381581818078039556145887236240483781217520106082946062635623622040224141455232900971731056498683579108013964482115690062420502903976182587897109535407630049554549980241500368156086300103462489651601412286159682111279097620683401155521380298604071062000789967531188548590661736111095708456627654077428002930039397297626669146144272907578607090249265716452633769353805809046487813142732736518046556861743003530578330649280379400866544976644663347575435171864186646343878113113763318252380997197773792848089665915880571248037314102682394877116016930605792461335839031084599205402998124182416329519125743216773296485911834016171128537593117856742764999476178023542470510945693919208074495238906081644410439459095584819946343296096857798909687454345968849124022650786634823157674992419874395352278995937194014007693402890814259215491005637161349872094042549715211749844055036016652779804981853530653863683303813088291041645653686790941091414901823776101857996470086412148145273751720841743861338723094986358061453706102257103665010820323168289576905796099244929979422409428125648345853054722163260200209201720266375739100199598844558060693593089237886879235772567977526835913486737688805601210022330491394409456970292724492263462861052424858333226702607454885726444570608186960453372393423079356022212711860650957157032370440605237454890054476915737065621045635740382163173771795448186287697226579479974158125280621154884057322912952766885271822510116783764675580777535382579607053672941696110395780153212397927009429006189195191037281328566441291377995993132815278989214243304367544153233275390270427675071499400724606262484130543970701772145759615523147146927213924948421078075846840548553891356835347199032208502810749022091428207223943470897312471561722263357720678387618545479667845864175591844414688577678221972234405868162375121662134231720363203710315171109140909048211870096060097814430277433900047469171321817197463067676307308349834329867710494505571710098425422006736285588984568543221935347538811434299390576325921882146816124440185501305534167196971824915986636548985366446052873369235702471444866026185780539248813307717700797657118091463848869262373239087993699668817106468977711508790292594521475422619200413806192281491084159848246733881254067931817621834101002467580535353518028032544124354232386456255663792038558433628308634483171106933215020191642860793435433520806025456813005603184688489736304670872053786526942625022243810240671186088221966339923773710137287977977933420623933501510623497846641520672898580803881358760273777478646042295009382090661020994948732446077099748942062196169056726030483059386868306663651307658767371597925008487609556344130800183613309153157756830221942561224332551006685224296999499671843059788923872498475590288125244287895799147512638903216076270038263418073896120320630297705146677259300621965248455873830171072201416529208823792586367760272200997221079701028858259952287042504595320855207556614484706115774126640510575916946425734168651730828321328402152944613574380671194316831548080095260902736435818092589525683856049063058326495555651200865519179824672738127944303391960935442189969796890476446280278505544175024080067511463899888035103679916225723795911635943482382484792042053368168360271847841661591130995182544385488201448975977681678332671106430089836983944427055916244318139902937248421250554418368574797350793421707716579298320298893900199318944720880347097457398614802343314598256175161299036373163459817750135384992092573351576480442287951352184899579967609014891296201708888005244546515950563803767209631901090812916057153388416044021724211462814346135854705044378708198568651023595646921952837080773987797651792728691731649643333069246210597119528510211589172376663986992293318797747015912454513172965770176704088979811409874829450862596281884501355037904810304834057639592394449715425561371877184232134132825943930260766671105693554957163328493341985494226876607719154624929536067074965569955538397123619608328369833876380575412933263169523310171956835217569758821093912795792982305859386981614472572036427546844792801653123850467837776878014159526548862802909761930388441033494799555778700407553796747378827679130152232717177018856033086258973257588561315724744336285516009255186823638801239908727477510239933461212225785870900725302134468774853637458791285943020236362774058048095832634255331704574830842370723336803679092616778390986284332168210366132169055318014405763137654553855825757457247976007202116883607892533453396090314458769780161931225916647876222501528573285689217840108910958872880793712742528584832955157646911478413534179163330854334131170184414087270974895529848975137881872735164885529551444839897911020768406471238345967368175509885987852026237271355986974539467769955207441724423198100179845935966757804590868245841296676910531502273115451688396821418461354501898963078654137144053979976234154070725281749901922276279967188043508499803024623097939442024788517604198219829161361504024944161022252928825566516283259706968237414490199300164520909299456558186474449201189709605368514950516169432316021665181244869970428166966402184855302593488267406638734926123376381556977855053545021041031115464850254308782931282515577843015294448851093664406650899033956369644325373597842510109515766512367383525882261542752970847289022776945858272795311331730380432732696536059436012363908592871809843949490718728172099758359468471105701265625451825046108598692005671102697791057399290893942211734207215177973810219340199722001407675514957819486712348018116557423586158722098332445119586761163573574979773393160892689208784853573555643565626777452460086905126092658159586632044930995918782667598714861013644931755199036002832034391271674244363123841408820147816037143070294597654066269395026925778238955394430749078510097148071200203570607759107814772662756060984945936948355249232838257844665578616260069842185409915098501704224193055020133411220369974016119992226515834498377482494860931731211205853235662152367523506946945821094094184205089678039046403534248331798638108887405073553806511755202008385286318300043711632437844348801586566889177481500066624477907409162279839702508054125772900978400847851029386470393898847361254321366713336346088363633578482013097418789872867305515493031799846685443693057656413819630347370840450404072240673320660086696219678370453165919136764123210749647995307533590718232257902978633826447624921580087694330542323679927095148015904368634141235161392391194342846947083616412284125626989999830189508988399459237885423917526631959487407496386372863376240879638991672611102962742612712764703532172189034972995887268014475103437390449408916141034672061510072734431894994372785691611390978554219636889574340612989300044571098052513681856062304174349741703214158251958329832942968788993223916057799257741530576970306500482793459336610305923127925790920379830121658236697825557919874337603573272701101143917985640210153540689995298629843564318434954303946115916099071492362098240519554742241356855633495754759302023553046401492680249102330405542905640734079079381095919835608813316203485875973956742807855197858214920111263279662142113708963276660083179650414843195385248483252217864410523923719053619225360015249418769022601632866197152717980253791479774884469493031387665220895752872260520590978826514696036188502985887725632975292312833041585594699456925910921676999166738384166435372169428804825403558179216575446402344075904137721012532294615810047254356690641923342867391333509830554138480752428142441831078508747204836928650123671927847900587871089470042250391678033128987828179820105217479727434576697251017387379331773508847083138767638781413768490593627909345492356146879524732338308809163983716077415780685992556051648558506533658668809982895341023562297487061996821767653356339566836261582266694740541992701158383417752065633857772166040632699994262223246148378530130842946591027529867119101778873610562301690172678132773350575520347244008082788449049559424677107159505465694839850153444136740120381168884727194739954781351781440878363459400901079859849596983173206293958889440052602425804121803778289085320840244131873506061473236118462210781132369188454880842845846980420812282802285220632823181070800784360533613720451068205300826204249140673303335330823719548053712748458497150760290278587821312546367575868151367554939671499360073320583651076112562716982097903350402451769891761216984436841991302142492047840615988642516941103178903703899183971775319311458404343887299543268887198100138507605057593112945252348168161131242050225528376956378402847524863772099553938204582321722993695641149342293379563983048177492306552381379478377714783556775753102414194905933451986833097338685384923113145950514928546069733706294315384852293076596337969847870359580932118686889514780942249767829095937216166182801410385015046336530954574434315661017579571963431024273100558302397866276197954797510179143501429147451219247736646256895108685894672518333584739558990375024079702719052446424138935001284201631719808322562741858172170414989881109145591074487659080406047741821040361591137260357180393142160135758836527136245225904888737333880682991310750280683628168894746014317146203112337891669653580091919687215297409489296282975693351941090865649892766575260132940279220729118091472587422828092611027040484979667650183704718549424008436044494549386483530156991835686788336078366934537630397248367571932026046084130814322016929086797680702536688987143671635099506946475039929228639975791905479269868925857511365725737690209058874662695896444017799734623540364679981487855602815697803700656818489361775777179360511160238646370684623063039912377948119162680182770492862928462198871577705834283134955492773002450917590240845924241113637669682516681257120825985177837080097790189533365487916605413083568706369244078205078425219229652843000392535650984582055009691203972352999930925888066412440203054341395590309195029970815566044947705395207003197570980466486980617006328455442299733984259768473666624119554731039244316282946317099378531505264625328541710724436840790249062270417376197290894688483940986099194760216591870893304395948201217321988025341996053788799735667528213979879289604468579777230566996305547598222560896047793783507513471601189422426481954082656957918502874453033592519355349830174787178213449821783830483580800451929482087100579420545075360850655603086373689067422477462068767099597775885099583931899622101859057792903633669252720949966065618347964299677130540574905519656257262771888213388151271995088444253989992862694894027737543823738519742716228268903316753942606779556981539365685652978739635311025182796692841539275947112485121202167253215576900623969721006200481355314887734691146119974724119417852061790831669370286923723823457675728332009678932065733921282375213743270166351333342834854257334704934148957916207484508350179325550931767154943991601006537794735130852865967934934498277313193068549366714731372960665164633532866646179277349567893681227105326682577905683018106773231000239839263601248202411912564124600316379390851969327203669811863700520602766191023496490854975132263389155098363252861372651988080807318917855249162177539956219485387761281611375784203535168879486920081204683384078478977914267477427378582535741337604086437740853691110492436001691525026668248680443002461061570958516191084587035631838227149713463150974607030124578615067458466349382093216015600053024647207742759889821449300308317689298109361954553113028867825057081235729796192188968692490519749208681284104930012593859193122807748492618539357347102446653076103826473723300656250867483069566047803775376579493812068177321928275078155752884910848362128001909335284188322826968654583323930558629182814968857790817215098515489663471316215153130574414144693589526329973710478779283935788179124554413807010430854651499911145689087449773774003724779350660521336370778556178732002030818647563279872681742064267482589523394746670193938855378658098068423343887478149248502462180943356238984867908872774213609313934696837536455835844797485325247252817770858064932558512389777246309735064163847740893603526617235305440584450896749326515621074797036639606087211825601178395575004190659284773534589626947226775693011094344437532779250888705645831648097335323696247959484220189922275718831756202852519149014013095864442768776795280771702601835781458483027142097893823676070616967073091750218283660011642064863364691697250469805228529868465775327807013412635484522728010989986460564256888728033038549216411701309858612805952503975529886148357591491459910953552073340141391170251754131389827562771896359288177491636504268471890606716741923593759092766407990367353829393987733959257255569154167485140869137131123295823187996430653254795147447926269411202517014557594592523280881368714900218140506168527750521037805157981546301826002588566700853130913438968326842072410477073658001493150207367039756499841432115355592017288469955591416469054255003985781798941828541334963565317288118797222305580942801680100625233793601950074377408271880866623510945109249185633422081841380631153751942920206142483088768377668854850926969737260291343797891497122907935290650302155924383638770382045461828865161561231247013837405563761888336242168842400574699859866098617870136172092527689322863623920923073329907394081402054103956249764166656841565077357883121744528802726594502830390756693731275973409046620520316215377645492773013740347672609684814578606860216368184082666818289731381134399796852422163013351757518411446830847897433408624176791145266587824691325803035399211316419256266224158649513245071230472656058676264396173896039631816624073963429060463165054045426460773188568637309872318043710146500969669981990362381954482900462561329439268889895496752965057326918656019033666707632786411765716472271760718879494644766078936996004182141420742187926207988151541324002351353708965362337509378450752371335003370234246038453082502787331487698315169454432676527820026666585504690778778774433777961981383917352079512984001641018681777085911886081165726955676333786533627403377829901187021809881340827384039290569715869013861245607150683340082991855066714508422191704558653854871808264097419468535695550951553913711028882968100680754903215778574159985620127113473965660826646890335412047387716179502019880955521122187762649881933700507344935589773432176216005392054016376272497222308024049324180744092964476623276433119132921208126695021014878289627169321649344315588943729219002112467557295575581486989578872346595035716856578453506881074073681555980754410341134352607162384786347441184168152206481024370632979911488533205374662089525761322436423497732454433624804310535321850516081865502383003966577151063804823582347005987572193242770760893222956477991054877054531875496300205690114740325664003753949724886992586082023371801420090105686124197160984095832004298823000080377279064480893706279553608752552403577720854441653972176152585918652661562045271520038767965576987653372057471700916237836360838345437128906588614720373430141895076659779053917437338023016148544763665933796951320954363336813828651356858193498226955333600956214055046721475333147301268841890769750619153323081167909057592842114517803905711998240810593105657704728094728485667149264837177562540745450231529880039982571851034942277395682725345051173075949047412919041755010661176869628735955357192557995701358654152211880491640535919070234239309386590651792716307510325779093007229892008265385969260656401693990238426537844051940677338039354829224756758025806255005354992229085425314567577011911892154617340563584951559540752891362259562071688043610256735143471467577810141302038389816298889916424746026292240007994212193120754720136708269428455612259980268242249775354079918967820097196449917461123824531780912925261538216755160062322606503621416942940570645015180167604688359084735375447263794528101941257943535216301064723422949102219245727491854803513089531652765598224649368557503232347624903580913800494632464506212359699281331909656681761822142645232280605149403705559174779477961161262648210151488630036760388019164992295414516268900941258230615268268694382544928938585661848690211013073457095198275631085255300662102933867952014476842357491845744841536924309042734341741698138751305031710995546490677287818033771453535683726794949113076357108626890046246158498609656755673120590606516965739012508705088969736591970093385597217395100814444656163743192069078185764996143490990583526935968889108452494951499738334947425993580988962667221163285466243602802058642682568979967649353026596186309111881035638800296893080067130492560487408250934789974812622373178079364528934738209381713222269082894377956105128664372769334441694371801873915917915431919014697106749915416520912975608432070541674599812601167577177786704648884753810458466118584593359888145742789268934846166423415065009251784897998968208401075714310076273252514585323641701316723839118291947406458710444123510542156005282612231851181510910753585328102040835930911360816715840932114193732964386982945909142698914344120237791284188759130275273938136638053149711590570321995220055305902876622497308181078696959628192088644070981346200785837909186136730300100323568707862787268422258060014894470452321329209434544898108412875539930399505887658430524250507142771582849991133327696558693474576421268029562080344042667730599711422538088017196553668248502178057424895088427923469421917144403081657201298128420277160050326234737177268407574884153681535892575734475650384920730773054681826443482207097962778524883770611682563637650252619662138147412673024698296489691031426402082384310336483832309214899985410316695509049632217208419509136338422477492830300313494788564212102937446185709710495226278453988781912048901895735772338361886615957105576450880555705958200573866271098333015858834060473290009047841964907548631302733263591187456245142305734150017206169281409847537988506068216615726106381315179749526344320600630468587972522440113550407407854413876794936652345817112408242112222382121675770474916665320869786486263037570980177874419904774190022351782897507386954109711714583935254109160088521417801217902681554754920437710913773595104585315836513305574998950210892027440102346101981081070205661569192981321376489248439220968811225642886777020160776742896233946969232704903376387651823890555696435691705712638730425711545892293297336092341913438911958864481323587200099109616287712383394932355166380380723094350655328878106994921489105107995919493058705450641798976173117446343495309238739863880812312392431758855188085263596350534165291541802764263017422336674799832451137899145390536326715558102577848906529737579317924222814064426188820023328665345384932140008145048518955372033266237812675076661001477985290404881495231861443069532668546467188557967024823369734121792212347079943674299303556672871174135007172895429113578883640380731448363174448043341085417148285936588288207897088612451194314310918282504786142307007445912301386931996337644400668713443302755445475107503046726257265011187006719944126231276397405406336776346928241687230096459259622083825123772882131223330392282808290955624306486777125003591359345623920196025505189834030814922606530689916137644600761056328794683059050769154278520037163447435048195180321717374943706169114679086799872756094029947630677750367215372481783091037079756970928944832179376021845415225451799879601426347000305654083978603046981568816712981657256374297846243630089015017103563742290767610809489316747346226217915969889079333127619446370640593847549018750515477644618574994094782018561097663803383232349690396649867873707159914135053794690957211216057840879148261506508170399965735672142400149799465690682420254115814939866227432593145742350068376047647184493031865260170870002591375835094537681922065070972301615739973570023930916594485056197409529679649874619207545728207629163234067402246405793876303519250709116329932523080835759885642011427891092001171387138738116450400604488578284522423286317721595330377811507511544254305609069543350514110206463893713442686874097539278099031654639737210199592341116672943148295945195739958933003925046879004021022241392068109819530926040017701221080676514958504045181874579940627025055216139625097230357306132753129963415797161621731749139878508942560088224482457431910024122856287776060296155130451720202249127463912584365189513544173860234595813709999700581842722882803483944528082584189143988383711564833171203151594314124369165191329017167398174495518297546605035287088552748953726369543838511348953421976302145690991618724131858792739960181815712082515666990177497382726627153870588084115750879226876175721419529599645634045019108711301049698678210227858826836891799028184368383692722836026339893918551966365631718187780776017713656443214351605057752043833816723929577327722446509213057173684805539146388218264470089829419071360331152615563705729370206872910675892770833839825184082317710522957571008013095592774704590103566910158985291805183862198996842288417749312284504648510324630933317342745505745783508484384236691537759023482424537611681220788745082987059666357944129598291355777500383922663903132972326183393028475085616571008395262085333366961191240189142135702263651505534775051864682004394914077529998354478954279733265032379690715138965373010607962515044297658073513627576801891847041772456406808669656923299874502354289845608889942164385958499709886429071410286350944018879714096834167444023077946099814941465417199627692965099278727017614453963148273734671176825411870722502236179247177892434465346331213301506457937135285672697488225673501232101763757773015238302028878755809960891898621085705127282973419518383392606216705331483327832014589766197245759231699888983358887168950454817558759981910478458767301516695835646290398099383733684031738090189956605869352394051792970292058805066732627108393460644870326015221870947255837474210794428196796790103334671320702397086556351757551845636426060757646417017493842172003373455219394172265018352335671721816779784613168227465443152254889919903526904371071600025991335032119240247382804821617680310560228919060408128019611761895810227496689100152465319141210223011927762892121382659687045325725711923235752337715693344683851990171548540903480889858955196083262476132818177767489702568261419823079120909932297387383255002525009412525417192760503030434215531357674571605297468724568492542957766344888319620715564756912924558754906611192186574778365894246103097037235703326153483202421596604303614073902416533485872411199335859312017267688614441599649439122766554694666154832968946228932941739780341952005808903330597882659683689196572253951428489253246694898216385393405874378766171294497995932766074674109249775950675149914761283884457141593258128666633907590518961911364505447815025918695966332613786883015671756665711540617687431952952282462345947281275456554066180582166235222607546718540866422995746128201088270002747570102519509666449840537063087673264899121254968625167492488833888599380167033509157948842104002271120693507235499565960197713890882288878654944811049212545603038540047199473891114768277838136984883769848711655967786910775172389079458657141092395244249109868957033259855345290170199517090036617993073757690694479379880273304436920378609835979146331553336254881638248374538503211350798213619899306429614102996540456324413606327929005834642551222801756776585126997462458462143690291331189194204883075937579051485064032192959528507573312535367625186325116995687586647209022005136767451291970161988351634432367349512607683778141242783118750860685321393249050031830490221289957238185849228838162708333707551021250095937649959140523644320926080417493029781554685855129334400004960734405069852963216081003149550418920721778022470883701208920463298566644792486305760150166968881648861153125324770153448702528200025219938681972446153634588946059018390284531362330318539101041490753343143598163346036848829296019127566818271946915460717719896305180153487675019218505215439833392052583233765812967714218943443870714198810250512815020377188740426361052076639284000515289633570051673926636007005680186344389113727274009562658815488601172931415560337519369625510182133152338373762735799506626186493912010251408657595278686004133843470646258896233179692508645624168904041337332207000807134189520264373393711868403061112704686826313914289298053549982179486138898992819069149687116662964273321533487684818211270754220787561392663175212219349428245706004370465999824838092099241701833019543266870258120785324221904297212533261340649392455461170032758951364728717251225695903801375151234470006403490766560785286000345679652310546060921403154484765281576010599127715666268239958396442466108561295841923774837240367838120681046465957593688618388715791654184938195138762338189782454298335026933031783360107173740991936922585760224920561418727077904640020164878467197917648573092844134720607246400537302495277495010922293619597369540486155803985964453021467832848502261514750996529922143596678585428004117342351730161896821030557570053359938530053760123023657181053590401956249896635911571623119005152201480111967464406930397012609275330342412542005791800012888426693086843314094274446622008268740372184234814155272827183015020959621901799401545492688407387425310934003057865812002083960868516269750858028906604360068711737156219462193283489396172016834778499601509265162819988973690231716993755694041342374533209739438838940552212913616113412040659137219488933404758669924814884965177339058718466825157344695026188811001689042879686509924688489481554691246595031227649050384203472660432567434701143064650661851894468534745394616812828984269077047710844389786547004106351616994837932764838467851701250644665848512838539008582933301219139050933789280273221711010452693977930667163515473793355869651256171998043111230819174750606997338947820985845664983132546639278372181844495906957454077850228752866333916516012872894050395451915639447156878515816435678759894560445863187581462226177236733667114762166602574337615651698876273521332807243201845812397659347286457450191752176567914330890453845629176645796154771311308639076004054940769870283515827079657010193451748818638563102409354465605986609060552687122907102588861944491541423533024860911904097739469773698818337604080155965919072519400476467508828269938517972063447892331271138870620622285252129817418689928440754372272253678106175115305075586447206542440140748645667714631576496483055601004978695701102627845026782278126569270381033591896324918880294603900989513695628215260042565799499557802540091560989515414620931865911980638812561561412539680945924657784327897419170282042944433780321368630775519117505756179877015526538596281473808158020801215557618305957300232714103886612390191609921488365800087317561909924134203275253062933265934585908490965118504199137895071320498811171243899333304773155275908378786466233152100794233633425888605803674238635355551113294412193126738795547128120115156952103293871311592662147348791071820325897857716511605042154087618017917033273377630484869901214346465974053119467826748897536649914461774920821521770119843352771147418988819158898664420810806927568245531841641577962473034341772749358223688860260833273175627859413003711674896264134894126877836691928488210832019011828082002533721435945817951563444484703946898550399284224702746471048983728535738245177293328902933627925172463496734497093090906026832620977449623663381385752995563732689866668681699517886454059041763490110393948554256509614676499686416926707459796937643544803196301875335871315781185928551530422207874682871060875910523119882768651287936994210181346536613834730401246253365655426028869849658969508899565776332849483006043352655708614544685078259368563161816302240416890480583009964448003205657787775246677782198401875479680031151987352335974186663800679211132477017721953436675004341251114524652169612552983535198208136899347647305580079294771623265295878052882980011116296443884395735641743484181247512535186160556335585883696027148066024071375747185393197903551713767609736838881760145708130604527577736832822783737067504591234240978382300962715594076218153584620111536694238133374411862451753746377878205020761581794890705505415457089044646878898880350591223655969951802811384255851799881883997016294978531949451099384739857093897790162660479358834484890690448136410992266090214448154310429797396593536394011102978785111432573987350862564943045443318956871533182917622370512025756655821572125807965279629239692399319817537291681400814144575542150280126703862510174712362207289270675674078476071910981165647030525893886497781347761297056051520621258395417279451259891337935716699771869300560258409835178682811479930737172648858528329649767281005587163675012864847873485551047868375966526877120773666692540415411865082366115069979407820500865999318518004517563560785063915882898170778335360034872784922369258862077628202936630952772045099587662312637327561504584392442000620271462727475200391883586660450411611730925718858540672073579470064419092810997405580346645428803588823880582105667605323973971333591405967922801374272621666423297456186258070134391429764467549224665663364352152880110726372700134384754962847098696065206092383412902075958665955262426156325808085126666575333875979077442576882532280831317763974582674305650127246404965267739558230288270820153442670156735983972612228861158974519982181245660516204294438184438480952659479759991267053064833546567156596631097159164594481406483393020113445021622712280401282340459585771082025550336445746779848673608075566400596402323547031369920639542095436280160864800598585498216390451407139612959055568948343512344984374841675285151893301209418559090183104349720133728933966913459327699696271068963729239735409250553060788950040347213268273280678615186789487697544036306659556656074645314778290668785230121951289582870125648373553722824131271498021772918065544809682974915233324128799111343926855879594458041520276487199082377844782349467247774007609129725229894753807625672737470381480968971251341202386243775606198070933487698718690279352581280539104837164735057902864360818984361910230975673098244220631746659423053969997098205400865830598271771850749548189338661217705646591009659566464497604244481290732138421766150034740349720547443745440891518268779366976765007656057533565425796539751836028760399412025551990144899068253698581809842480731050556522637435650652884761869283531951715875708683689894929260288683018020741693466871947159151892089837442738205908538970751328159962952115379883399439392649009651717472004486070732981228013329926995397430649492546276453948600627238676520528668993911315974217716103909640415496673807241315491443938839261065877949574080180367549696044753939890671184498383007274437349513322120098437418244339936354534807926758783145308076433304777777896033179182610387885294406849010707331763051399663337056077541480977867215609969783031859426329024266545978492235510604533895255212113746295021735031700517102430100622240789660410086091150801017592823617688779250845242949128536802471370357435262051743047678611099944644371530924699497940079231867472016704603442659567808663272181821540519668351396356743008536448053332290299992218501243754972447212909147112401428109399786607822423925811460673326649864493323151181599239621879262975567855280525583680663561914720097737036701943723239745794482548736734964429514026318907057993071840409290011793839558001265388057911916038151632054058179650709961808653981491028649490618543465018239931030554043430349612767333826818739357980100134046286267358789971443094890537709956687613118876883485020520136999070291681993999706708719522584294342045823727951379740918704256931880001117440235726838838729786136852329204233762182253575795596696680734672217362660461251582821214296822345581199657168301203961226870644139809324579505407456937740071927443108456294791604477744877080288003185550308838148013165386126559757712907077325865332755106931046040214429850267941560594820260436965669761972781962626986503338818942868904165810402785044979971819454279643788552262878724938683315473073242596299944073135175910509014699687776390683518800090307949701262945677482997455400327238120905723368874395798268542736133966121696982291749482744331965995962370236973635511612048861350925223118244093529036021152256728464196559984466423436134767287668608819629128813088826842005196469337267400164649364980485203319099631330254105537329240756333975971289467801876911019120383087821389203427516809564227525517588942835419225912858868536126532671418870435988275179528878334496204519243636286121866963571069634813880289391187632829201459817570215479498711122235690960516239908306000770089193837814076775640316828761005288176200311954403476609656931372008431714249004465509812270213788474175546870346030426095175952914789764939915348486117586789818784151421001092954654762969887120238097140746562290445702546354343835071298006325499559312402061864791621039782460242181934884350828439473375368855397552124956003972933805189876832097948456054404365004141821667291761845359508151378545195702531658545933082996115571575914663460929463095720915610312329520280023750217688358443641172918853642934268185341723065928609875072047553405714025881353026605831204776779917973143537548058343424498967286031368132128687200760308142868148110396463211922185741292614162190389326985711407286232306360209240868309543606052369854404358004252153867562586348488288668949541388565431255492500290470089760214284132076553277014308338345296617592669709708580557766371736467568824055662786195781311726761257836114417687460873253444050128061204395164519663318297611494506506101706132606653907709339898320955451211877970678181453917871686273529753623710024582271752842038460117795196460603474244793710577993191287192621696243557362141012338650719493039929391383391675636512671920235009489975099284446292520827908011745130052758065769774061605513916841546929684710756983770581629692025397418420949741056530376035866443707679688369607725704549542363010205311376659931256957688947724300767737435768731684799195943529159080276167877402800343567840926938361902402985891336736647950418926204495991129764099889530752262465023693696970275814812964436929131962251209098193346856800469781210628507220164517909959110716821344922345233803765790627318842385144378935081731553999752570160373696167254223677175053807315005323976078891185775689132497869776498711563508888982754774769549075098898445306191705848289670190956752014929240971163497646678488604775417199262500282199427572917459149109382873008444744029010919666467825848653632214141085560932350831162240390678501268140028284119726702449542605333501444338400864090544125102495174439019366952538497015056675110840285871828604868346625499898712927700775427967073781279727870102277617623046873722511036551309953232830464285651263851683146916636403108192237270500174652054696319657139960450797467625202238295441096957027294133449269837284858185308931385936959304175068502467788814538810522173099214410792178764099975996193144838445741906596135121431810134572817798268246552991947669047502441633144706133029217765843964551891604484871926941487133902256123082806278525644566049798414513332608584003610172336445127008812070431732336317312652931173320504338300837702005737859173665694159587680106318832149577894180617681391692274156731117577501137902530075961815905903214808038104299425204709478018334948350734277977140031809713256266447455430154117991393971011123066139864314953286215557551751160018173413521707258380043849967860497486407658958564688528386863615229499087430977049830358649893870988657146447170024462777701733586059101944931071029847587725023386526735116021726987587766714975877506546083358288222961995800717976849193527660014037324013238530892177459320942183815843896877648428725668441087137742236956808976752795710340353311403876821728970099762347783762016458476485132550969201359813696924964202600164467482949594898027327895931539156601367812227292720775901966202560015844381759355585407503706134010459833394701812672608839408026168875057293625953778046660383970593086681175987512294624073402922567090231502716777121336181165620605417100806314298751385520767195175942114172936499305735701922614016985189995293695524993189281357006144117975188812079036042239805553959365493808154171129344437098540987807927327185362848291612026964868548131096686400430844600043369939760642438820509919238372073487794889253401802286943846944379003716413986833016668178441654234771910090335838575507995543413761032096723805496692314524733123467510937371051814255750408808483756589969474281502510768851152893099654454029453584303401839663555458277150332809711626093722239727118901956684712529521853126330821209302415580954823546334846492722706391809287196076287311898672687870271027822321127487203056993091746710593866773075639647883611048093232209014040846478580314805651958282603462759679748323538869193615504486606724562864044474641052678096952263646367599519322460134123144392321961378234841221434500232056632678235917020432618956970352818717470791169369699566270410654823109233456692087621333363408353092082529654060444679260712913659597335266566522334628430531506588675783220317278383072641657138653617843128984160059752560367112495254658629914374740295596420897416255478440878082191118063594514416998345914933799621612903234642528610412690971514660739279848263833739480942562492038626292702471404466125682942247592319789663290414714347002699825151184405775370399534027193436895337357865590060809582712440626153925273990437018127308826702809258240251089418545346316832908937320154722356386283777816722318830524606334538517785000910740000157754001567268623838776998654743040768551530681321060004626253320885252801740468282869119550411628519400057046532541042961491647964261731154450203439358666617034569687107832716007516915040260298199736665491372340066674709015133227701595012283503651548014638689099026374081961519797226496963088503908510640192484432819596357098116014333528523498123302420158062094078818815423518639998057597176598281883396299086731135171381027909782318151933918647028769772697722251499810117546506486255055571444677701378420522686423986242147006110780963169149658835199569741686016437325554762022293388221415244603776648344801783011983620802602451136506862022503326974658556848902412887422965909180693954767029604465453557413650103548453811092781742720309998558621838319249552596244299996357135089912353897864904275421016596359809405137413670996650272425867288065426570832466688901166772591508164535576263274195591109107633814252513950655059971383452341297853732814328834367871070796018853503041675845006138408491657414571805761649510965464967113723423273563032128548850182401615030485045973732966311894479975043792569865745315886639787919482634422907374758746969947728910120961679856927454206132376630761751903583553036129451705553693550048017397040652425597067860665884549678458578371687341003211300951731201232552168520755450600337947209189422122918039259027839450321675936196320239373535071194138073531159509464159771742228902429710000492895121015296169827737999554510071835549937077151048790449378049654465949485769894364749946712421482464300233265161286726417507827622684017127531585478679193308296378591138605988972647113687864427435985621502901878485633493626058623196905871580511591111989601815809842608790684913932543526645707197496332304041638166644013414739109138027391233251987491537085055457138296047626198386490265644545571663119862549277729319388134983337389616747403809466869958559526860373217324994508047134798760918156413105124174388923700250966604225345750904874213660283559847100665290571440717958021392001096990636199265234975514116008803029831764603156179612998979828888187329137501437008860297916381904993091298320798917019543364124637899558657612223775884723389759424150452957613072951604152447318906566712183559624582811935588826045637375876433116109663098577135099947515219016158570800737512017773865365111209670701986216974348791084730536491962374594243640477061919681467023158889669325305395365002221290901264220650183645183592604957748168529243573715755639040234276332962355734146991622036448427500087413973075888241954122290711330553295711563397874617457319535810571917234320205159878058034978393170738501368019515754236810362189288334274598943352059508199174495569273811942782123089414823156103017722373920901521634466998181479932031057090082795989649564759429019447492135436450260428269751107324388591247692890381158828303437329804625291420840966196154334828806967173021095089163584176070436205461944156506299808810516493856203391582449223339239066470611071270255256690633094961392241897681558898197198470584410194890983684858242019491899783427712133033571592568445417016026367358610924210207456822836846526236699228002689504161834314968530991063868707449299935875949295161146289391145551694430304566351417882836501028607196060412411671395770716860996229149456314833310970959254539136324878447238334097361800178751576154935803054455409333342486566946085083364018581341138140028903786125824258586109262864821381117746420692368450102700461622872745120126117275693330379743333025951662220132874398874953385594561531128593045889370259656619883102743767898962327560866908099353261821618618360483832371913833788281289844724616513405244806200762087318346156614426172376909587258917458575824311896167714211534419066638511707619219326950024852195356723392815387232286105567800002041178200218579672401959531746309874508726064874894528450735902597103341602930602592302709358008665072777290357588988586646457322492762009319734064120418228782931349166112798321439300180468939856390414371814600224156298733939892296596535977057575317725439408908030406699446712573871420129333895329067020802715507381991073788951522037668654733890692075207931792132540323909999702370880086203699060567303017033569293637996038633023063891025997501978362235392839635232907620872298847015979472907904774316050039125992374045035273437665184565208609806529239343819977223319526486792550390460068697059411433947356841757983877005437818145360708248381899742024569531232663554360305039196384626044073494499091348743988259833126141960354072383940587459527167602986130146861383233353114847660455379298227286280556484138293931717119613929110707435770450590928753433666524362007756176422594505293314108952619680206400769288755378283906814876637280569282509492723411590745068529248306376424746444113812543801146348616899968027650575737525302615475160097912359384404320434427858942214100406498804940762035419584311167032178755053267351206648422891895031168958587635326313695996087152625157007099289217321115732724280780396195286275384996812201958243593745417717241766130774130175940459301404165482060420901023549244079429472604751985414645631337339686362803437480993928460984602658833973290703030202697734984864366952155091504898968740127843299569212465308745780493128426098886597823330970307427648735525879426784440218146839062156844101042889863341833108920312886055441158732045671793190329043987883443211020658089763022050529711283635148778751159365594069992425127546915738851625364372388639985205548489050044645185853361082390539708579319472574858908113563726020981372837657671291089234743843248681241432927870918875744774208833385567329010769690457253935706464049615384747646644351111765028234149949361234650194104826066056042365081565952096487662568217627498830564582750659360536300826662214670845306671136245291411029494265860956853304146345191964765485776937876876922899437953564906814359386434589848232832421417551303180000690929388836000743875144264359107107955178133739960592500780637921678719161289563470998058889359093051073306430614201149009315497736504511203645003390704557899292778216661008232551355956225294436062759164968793625033365802751038682698406582455232962543419927178386795680914722927633911709664259893835564598862354579625189144186863196216267401278149075090539232051785670142279058205034835802041477800247651297099464703346003119762753973673599536797449408122986076627746315202030326962829492844600013218781286904093788901895674953831515546754604096260308069744305311581372944456268003591135643374889475584100118231712104309989917203619179721430692038184543168084425816582007445667038868137611204063314324890911291839908306956480154299060751169619745825618766619932794961779130004827411452218678330867237712458864748917802717757449942486781261884260346265569981302058612021520077314030556396839715029703151402626401238156473490422593026789635256308298854065785886509964375411800721182358171329410620085233838659121923066028959986627622790858987939960120057947820529559804212331838629085643476480404168701820741341270799351937213725333904255353995928510401308748253178164216783506490069735310778118817582500357425744980615034788562428048154668378151954363163159583806817098794250454895147782213591341919689033644526999682790826032588518670936610718789814217908025383017440070392909969213844115537031059947750796869590997313220129847113869805351799134678104196117541514180474203796026581067411157585998105347172541243608335153525022078987198147581086384723089828467036112673275516384361109800426836072408816100080868096604912898558964481050296399718983541532919553378812749926962080427434580535220429183779912580056277770857636832848497649571177518508780318788864667562027490794719877250166766367417831229342106961101852594618758393504978454463942052224816612683506907831732160216045970726095276689436208122665753683437540282896161247352067114574882788840191603335928434219074458835591985855852270186252646207323014959995847398026689608166358603495470550743979849416437866696833594288522006964202109939711949810502151578340775706799114876012703543223436630359049226029105525309548802732256341786403668394393370172925053901497142546472225785200360640643074992310614101063518180942773259918836375888983580576806970828888330556772421134566464278346448352113069503351814074137119152975054670506292920731311776486363401870924609588236299480606927715367133719927377630597065196171744539246814108924498579899252751936236090157755229442738370223551843077162664435251302519714881321269659380563687710606279660117649166774667256420761198255772689110565757120506532283816112431366656934340171395996704031982648608180860939373485808327644095147066790159098335757780435082549701427873064825837929485610275792464615113498269075386233727047796470184173667744056471783192005781296276493386208471912822546335358738744256607310304197771013287122967929184839731731683353991618453141119975245759565016697036385122974847277493197403794206815139221487343987673362599317566680017423295551928498363705804723087872660803505006244591821972959254928739924917732323332210794040528433523544964845876212228939411975370253681137139483774954390726585024404576513449850396877777161106353493761004812789905369131278059605406849285288816292346428228756294823201792672111196066351811871789984075327109439785590586567704176367120926556241261959831714170213054563254079157162273912628890389229733641993467589256458895816954820197278747905402743750749223426099072302650707373383018851351263258135401681396205433514110440275674891724551322005841754181393944293586298162859233043213359451867151150227652182466694105980852201621738021673407958210621880928050298781559485703770762952452185903922174471103281526596496583555387637896928393586822626367198821813654054782088974831557514200283541847729516885080745960758581191004585549959788181618222140546994778284308354092370747568506629874787986371917513006664801383475835540048981733929738035385024499763515412308537643762692848814817027190375362450247404184317629653131370358864405113455631425563902546718065883663209459311298691781563624690422795424108955570230687856874509156789760029493367535457609514090083102404792149569821977278540193132085678408480585703004405012914428463600486325690025601781101059608176913528857003414913211577716007425992247225283227007734929927093013726281149572604577959181760792926345946738778694959305924041487484656138072941384137140425206040539990200306272165426937062409689605326798000708371996553465447478617433572021096881090275857061655269793290040554022224350100434079450670165464264244320987445395742058936936205219053535657492798138524646815715826632655840772054863477490780477315675483865524086546817137979791905095253687358215370836892238770607238691618658724351001155442353252688016063764487685339705602836276833728932787714990720741752344688062022585437937107927442205268296252562461609796934193155264379763493859129182621072001530091901056865274960914960354886108998976043083451128832593021619865864268481264284437468242870695698493912460925548197170893962206114551391643402206105066022349316023073454230878577064510254198542471350676880165717903064633064462016188016844382923181997321301673405446665950224751014299379233887535150142363835182541887877325062627573736250094524485351154391073061304913222947251970014276357135250700745772024723245868994375944673377416773886815776823763997990538337876778273010192530143455994465034008030733494647391066986061417648068247852287585622821880823765598844999595427863515241085595998771676103422653023682145658554532588880143329574674753705790828994315494381188337056602923567599979706136195268834652103302499822569192715562526474069484584900201534140940662467225211627140711380785115311139851289445143361297898093998676656477874886349852258261853249395917298390650268675659396101072917411499052294711979425601817581288571854572839806196701938871269180474622690217784633226010190821792058235548339123553765192753498878742332410814131621099429108651582208088695883575402186595130027212644092263940306183998993218167814583287268881794794227969924805251098438841231888125277290273751477147338868133649368249640011442514352670317265508326966564331929140413461909726899697043880071829722984805770283741723527216095258209770897046474877445979234684027750816338583448086277021739576167934558842950418342758188010122339160595649735393363298017633718160679886053050949955697915789600259529944469487192873011397351818833774010701472761789620320496255864629891419461787052857730806148319204668343959274463045622975147781583006079487066490746582552150723861177375815975303854611298493571313307893622436944397524692320497450330262301711247274267460158161542053523524571480498254548912364078345189863922787638607035847017952063067797800284309936925995807939579329859151716792757684567770300672069583746664015584492845358322868244376253300068354518642342876868933965815661763160851692289020219290069194411254429470143529574981570626518627174299177126667864826010035604965284749021928327938362247257985682633644850394446249628058456566364857597477219586354839552101138458419187326554245324908594621673077770207021358231476859071022141762622533420606007388616731603168299339323229478375722162578649316926704428862708009385298921814456347104746932710169098356844134883486832403918168980122893287265630673417123641932661156773281157852184176865692005164005248163243582573329952158417663968197067251881745574809819075788192672582901022568856933991855445295213295065580555451627509970459653837316286430762798174046197279829275935397904945074240449621075957019266566155456861769126756051538735552824818473534896310654021365793343557879227793613821256576984897820679291191156308176298073128879526804541797966012357405697356908662392525932273452682872796591347006810837457780437392230594755243271111416973670892333769695619220806635606924103874570416678316813187604009301632421715131831973385609738128512205894730942186934787199083055908027074173418764265103058687725159699735392293815464086862165754354748377196441120271375771779729850305394336856162752899396493255780947842886387196020720478914083971056260386205414881136426489035479966255683154308364400072596595292066843306323091851187594686918505996976265983260143540246697631450722413339512037572983190702082033621990656535735146540905103698152777615328804626504983198813048789891615535137885507066253123200591269386303995899422373341556028438662015049293780962793464335245409496089842527510908855857785502434746392460304675744500702954291253805995103622197149040251411355183426036240702596744011202195081501101100505851768037703441338950390464379195941507442004550593696470360988971537290829558207748565031490884024233662972669080726842270840218577201891330901545459263475174468323010942689772505039294240994335745095498929758181615944275644334560547945828553999376606785570049401485238385464306670817213189229546242719082014911492582638333718670923786841275060557890452774096544351265858609032865262045997577457842015177717652317375145173136712864933563443019729369065129226953490570558093698982572294981311133305293592597390377074517553378441364717443761592796671354547948924641160524046674409067927910333374111621632051596239904469134450748368675596470684861342710347343954919357708077972528224520584498539890921720639051300192474709134031315322356216654127390429564537102544869713306223562603387364910075916319744737497043940945205432690173622748659902526487898176057690588121730981571642293844883511071541566766390815791623538704858823826377207048859432904720493053642938525330935684221298453130359986332183192098694014194410673585020929932322588524030303332220259134819268003186408801539692157739550022596448612114605380795109959421390986336216501094224899673314455600400012483779164160665985623512739319948875484619348957721274412570126167616056866635093550381556947191188227512126671733564353893787223858039526309944380983429462088660261435786506663844828857884540494061892896466957946384309566116346981115947860942243595897924236499066089804666422056848823671605140685728060793826257502717860141514431517580538129405842380675922716044266284700135298388665036714353960578972707803085800520984646127438256403297891450892478880198365384937301963398584100044904511351533629201368199186885440338508114538510215650711027994958062167546562680294128807328466785162245091721095234785664168414514038598377930839732855360475120404637708170990121072998957089588450968865023911747866777096772070583228843198173538276004865695910855409329007056671637523210445668851936230420017439901886363035366299916945490914522943813111266003405833593521694998696481267448667645864334262346087436945168833334370692958430312584445115617164286156457977070299604062386040168583648016775493210980904075955130472488489031916781556753092824276710076968900433974681080348451742420459179118347820811509866581711834724346218504539690573781158962516864497822374568955412539179140652316619258344035440006902923782024442947354429822722683581876888777248706294060522273809611243533279222476598659451416138391209239836632940471142091446181400161535007435891174776621496972538732037131014536117924497251489341858178967400411299565374539505552303812985855319976660601226223592117355200236057529344228489190725858630866294280911614106968533046338287839904417842030092540781948894098732862799524297536374117168398170509110197359923739577769641818810155923776996182325706524801133059657651398477105969774291077004723707913555587154037403526956251216565105345798339106694218775673817366143575442306629427595410053740354905885593036720477700006918260326618204290054137986310411755257981079473458986324866616238487501231214062297357960547949543434700848719513861469147642597520757442989654593498237683039514117610055013956202590659675002095514604193272439285444706288646722770209660756253128836859008181819197234064979687838562996036055054213506483456652002424444037760828039989547743357718658832734524965033787609572335942285637225607564529469943013362714799356967696442512906240529405465650175062838925549588717889625516017303021525662662067694315108649813996893698653080695384306103455949105736122447025285051096886525967913551836202287246687587813425384365728638248065073684377542727967943989559259090678639462958573630172656770723889041847307984035236255492506216742277663412778945245405898222213306525956424716122825444647616468597895264961807753413194790742648593712943925270161427568758267249715148585677456966875355675833430019102428829577643320767001414797581532531121225988401366782071942707366112113657637370754065952473843103283305477839393742669369303194631903369447333657305893670666409205412883061239780222828180051332230987845995668612703272563357988496287160070482466806453880002314654196635885700325692295664665419169446188901580631079984683243905731037276373882413508921987497402952262910336826798091011168366246158388564387868546934622906587276024540039974344541533150329885676879595966078835059200816627951056503768438104483311969836542606266012273097862023753811351666548794036024308373776841449677245943754080737619411497723995296272540628158342458705657094549921684019986584068991545916951237878945170835778234028190406908951777295233881049835266778748025860239373579418800776995621228640568159445087790985066629157589548647982577221803542458915194406538157804996141156139205832113226386382484421105808420498698511649077953040455276376821130199384320134630682962393754451577606658798461078938279908246221885458115443621740753901346729812745487003555165972146816404629705081997761023371577132787417340295569059878085793699575219114009675634727434240054277007103295240584667311676774227683787770000282005046291352279398163205084747614730623502022005860494080581929605267801165625824842509866123518255103832811381583271308737139904467758350828538597486703955002961738929655186693623237429185520165063398838812623079232076186173998833775167240980833738918332369706794198017087946190950414672931953490075731137198747557916431546180086798806346247804208267650246849884941008315410165173410098138105052834541225781074512234178013330025911237866334950566168318736723641174618770987636639812345136794852651542731762549116372224590851164888797332376653024556713068294330309368328550016789423227735337118437590088884306617551560933637342616603079768259575227988116456952754400590436368049208512321528539385507187767234757426809167102218009653729290244584932729692578935194828277772950768190318882785253899093835402283557432571874066642794847028716875915727839744880423661028886788347487494508623305767880208690257360945752782666920633053108741991982242277747214271462089695645483049859070597307793610395983215121101985501515466991630379670278513182345040687272098613805596716102038929527245177678947053210412111816140884130648462389346777546027420089661442733916483765283469205626186777607942284927302523389604804238455952504919053535396072117363122483064136679336848410034080841432975481093588177247761553263829639539057851730219596555023684966168161824571241723489099085050800847281943252525216269567164797830831454573020919714274171743292004579063376087583889798043004086864951102689396209623809402792039738340096433884164843716938734456733271238609977132967508741448397457837589989788993449600394959989289470656196894097390082115547064976050359301644163848048863514514376590627387567160624677360665726935445182319214176422621294408839343167478744633084297455498165307603103561875930011374155482431013001858832688120560382236905573170592354742723498180925165870090446939151935700633727086832039774246576073319884629518472715909882134079310017639427394774040337256147403681109707292146173987742666810649242295154927491079260794007764155244571994491814711028890017615172684658106367951119467213917644473034898334578229856828721126260020501105044631792020053164062494868850338386443472896443205415549375771004057909006486972748721189025913676742737824706582433859220971647487641584715750837556614528139719588078304052547656611260314780849314326675707655116765051485559898533103767706766431839715975007087951009801320571884541596751344624463084188257458992118704860356070905528891539046427902878885315207334138126496715926741191742771853823274924108649910315290528119810462061174807630743881660144352079527333942794212591424127394696678408797969330907713247938633202149698133296009126128391340803097681323700379407327768408102156223170587669306173609306007330186142230512318784792768510452179274523174786311458490755264695903390768440945071516312445356496002609978158207331010740609866760138661016763524530232490336044456404913383342759525653269348934424813375719327318805527841646510098186495213030830711998959396052699300806364495402676620344846299442830539916586965144629348179345618087896944850025507139381163893938382255679415851292754870666841392425253125209919075339559295045315420899719758233765834530923662493862925440410931318009682845026482115750000223415910142871596181006463976337262479173438667166160169692951218687237535474004811611473418695169270464639528978344795471638048828325756472989689912384255827675365390819129992940680365419588445885304989212290638609836150856838611157320569858902469777414930578448190412671724344303544616404343698948427865841542307688255578555186091749397673651562915757121614158643313511888381098378858026919789971160102814919641093303415885868561454553783077883524335079666794520424118598503173895094231039424973558448071098005856053102757506110732511681237374647712178944264540517559621347234099510178442392065681926685357580634337401995679326604400976292684027241191896334943590132478829641240760516446038623621272237316813582398339790971303872901218041065103768705119519688529060521746777424183167866679343873470713263479487246808027621371216499676931461354731345960727327960782707437175505475275902810052603334129751065089148243818025995998415567413586580733293242346002450610239259449237755083740021747312166102300803127716533153469250195357149647868138214714959063624026899594969402607813716078319323617145123677773483676801901742962711913644381961134219906396596081751970641088803877388118841653241479256896329977585986379632879710318920479703429286531806806129891698641100235875935133946553475262619768798281137401940366385328825313314311862365058092250258904831136633470627184707065646882934044211067420598358777709429667262221622121903064637879160461748801103446825419584339960425099602719212513656658805491720355081355094863082671087125444385381514059239798705702792294380983040524288209731480783534174497869534237286553853444590463630687263845629877065940783868887826505211443896202834741698303727045656170740142956132114921482466028611542771308357432357909486302241421547707093044801794440100215854759332450368466606233896650174240279755649898495250724229873372964133626315566450912603320945857500597956385629926860866967266173472589449460546040068239304556094256650027595999007671816284802101798465093971325002616611120541820943776136093689234943046067626246434147413186798517412558584439260005051611505156974428400110998818381597166906687848013434122374290994403450476786073075083150586882559910782161701794506734434170232091639724763222621232022127411028498028619778412145120372417893973322649572881735680778055745223032477432702942615150491158798344297428308147888718263607168105374123613408382805141608512897907518668672533698226797910946599872503657241646469598386461414829825514105961356391934070277357952713279268905567565558906692823180119586206506111383068159890243977491780931128601425366368948226245539751089487256355521504027998777917469503645218849531696760066054027555866444752167138680381878165464921433744871269791346340929149994314690773470871226705625130294966654505786010812710119381204758180682605966226709429539041143383135710170908076494459679300674856951106303659534841352304504814973167933029061361902725108723307704440271677020288880947289588945649102392934194987084942440432685305150543887267709169589539729431604864890677112855480402680390886355437201296684033191659767449109643348367317053651501622410379395045703504576322904926921964733100230448046705737902861769543881306590361683539661265337643690180723770143464021373491038339399191145279387208621255884921235784406508898387579228745423924117126238985805499152649821208766422552501550533418575748927263648172174494747335208225648424114151486903219647964038469435568113813834305425509214931326192679507555090754279239838191736707387466997298451559118758526103303492103050419800425980914715394661873876877590891653083869307790767804546562025594641373563117922462501612596991210266577199532994456283744637350979747327255953362526599686945000505382142314938094874316103107212120328056326034025894262194884550442142576875720008946621347183519794168935458756306693539697348440914530932637321032733233174740840413221008484838964688167469496397472847037155539664319137636207625969862420512712448132408274467232804747384666473352251229854230481451426921679309160513995037757251997945735369692190427452010785201338966724929320895967935182763440951260871751091426003167685759740581594654066474184668685238054005058434098220472173235622753980970958011876546506680960950187528175238240571589686625492096439323422941191025162869162059258134057657360341801851070624169570708412783960619555910121369490638663427516968784133331539560293312359662415760950126277221057437727018051631324400536932741372604720144880304113875723456167038962223243534604547225810146113071916765123229263154623842170077056021470227161840471814503738183758918176067920088946389183588687570627160151111231160032394571916980090306922362590507377898392784792903186917150027169736863614843874115510686716750941490459287796570290767241453160474488358356275909166980778054714699141799525634139968063730533800700758103848773515223758088693352561797479517441282045148311583379038780696161301045752164708687997843803874252398366119187706187657884857582936980024010807858567231851307871616257070607789729110619046791877002103936637284748633150481364445031777468595168480630299708106531297753583634723992765579456064520728123195581653917919330139426714171567280579405786029988792105649732765216833669061573737986079726814458239486078061441921584535088671387129517386317976221216166280099432283114925086069123772589646311605708896602204213255420087660433528848369066649264495529084135436079722199866996785621102694909909015244447001429781396702173182308277902645670301178125549792241966713247452163266101289110572857789478080406676938595762402787743780642342005437844387537016904771620736912272112933455770665890629497951071122597600572062915571527958728664168326177692713452707881691923891684096559961719847063260238492743375485421030058175205602448872947502613294716075289061274542626759310016848257190849610093638297320864974266965913649975569217118497305549017954948560274332027495490584009448549507037736462429066430416579405527164082257834818074308294299031188343005651524107767864506431971146122274308347114189044698363349772111987726832228436112001329402550917909806706863306998990654215346984944275411624740531802184251298859179165195726923905215461128223484923475683484516838213781556773900762865506829766032771856485481350984023988051158148382364305534950977285716655582551129894863569849458540059567497409219150449201044723375961731911592563066387331348442988328259528776493303851359799811783590867556940760722664336946766427300410699948676634680044854125182794933443836130521381699269612678358317028571824650299557714158831474858612186102444311895760496768693030434890511873234249815465325232032282270153795294414103165270434983819943797528078835551775005563102845072615094329607582940511952254629681799528404750295899631154840083795798015607840835786189575564952202407352160965339024131859844503380107160869931836899444566290561758895253477889587463568936738944698323836446725137175511824113317139409169111253353021502370034175826363518384026273388094821932703114997434091445669597405929798967508686257203431884012855856180067629512722791501245084940992972383521701976935144312271731431047121843195497243011272107487444716615398651452600162256741186952508269735910379258450861049623148335507962494229445945111405427112234290298103871960722103520198299786020817447274483449887896111072067520345315395145736791196827069443329722229377330191083117149177179152019035683388740533074684885735411651034729961964344731105501335640660799401738657286069366883623981289287010151114195928266692405604479080033817965183390484244526320907733014279329608453408745083878374762787324007946852353685447245837809082671743832520494197847422407270506487560098209653386807117206406539330420903358923507050838857113419380054960386800387996379508034156209904019579813984533531799606931637537169827142713768627901099949105796939942180040346697024763113464650089417404076897321230024479941711970806426828494889734237563875333414155840334419690114464423495739667696879879676797827014175803259593377674399815544702517458289437790271460416408985975620185275483028375542073067478576606663674934211681090831031643515781564888562409594506455684282127009438839741911109646681603600475654374004741362987262882929734104517574389741740854999415195056708115234029359202199683731054468405926266273706794712355071795722147258470140776434645514718349725152344393366681880715653338335060637370696420429101580002168983659861483309136248556055275025402965098675402132187832850412299052522438958336219779919230655582876138545418497292857652860332483196891040763695165493066730154732919551811668104399531388744569757036973135446471143343338571466544092618866516756967571455959078697723250673201783961766470403060981756146296751453385254304836937194969542873559834105009612381722382873757367143453515977050657732967664021574607407857676721397229453830771596171114826752114406215304926773019551088848496425307857383080465729592873349526725832936809691501664090591909813237213182047615420354122981722189810014307490081033874156033645127054380172676831308819314541426843030064873050685442206611991411573428186558624911676917191664259177268717081498655725081715494014602339183382696248337215848077982225235832393246733005810667256071687481478167627925836483736486657360498807647665896839785164552615035323716039688033564884812124054328833368602388432729285390945390421241547760825678287560093996722357357684917026978740330479891708903808707889950032777384685146931275131717106094060994987337093282093758534252923256673569950280250369277553079764503199860819892768772080328426389056265829250890570668258652338457831169458789861209078570974604310336068711284012266737582989086201628271104317575307880245491245187314674239859488864219892490428135631597711999177286314654636904753986569796966305932735864625387939114205201613205670516255422871351256446720955527494717131683793704918414374846745904266891188500701453664085921279728147974725504678205593120451076746547808440995046791200545395424745836366624708027659465245346008662408636082493495640413546777050992947730501044920612194653661951812590446039763926094780758609093095452628547114478446752918718553253312133247277890763128754024836024551366811009019107835940884426710715815984430870612374371067011180734379478118628366735191326217737585630393616002339696068528254578637064206708350328238051865794176865676012257441077626561863983838113466206610518258415494095523548100672064551662937464627787049645847062530748811152441807606891967948415483181449814267467592624187968403664641349896415948960907934927361074927738181835379265178725678011627833304008202675925245148006941088110506207361146468260418580022991234110884111374696521335006565870005165195537799895337611585136993733221878679240271222132496635939908731093663670140247651543552049341837470391416940081788417674511871082806763444275890923241080099511028141584302631758800398977581665293518812547936103298041299013806652666380061568129618525487875792506495000327485892868264925962043427176814949485817194979045388803638871699124099459484016134434591927428329827336391094458203730468619525848270522924157738046146224336536970223201643500399649909467902697542365881206843175229531879156824411433832942528122057105156170301788462197910749338237111823329198913540061174793175270855487383714849695326313228708728095465352894349633112632061944857227662995263597218640461830720301900738335475219258586461603681233501594582318084295214888995064333041918252753154430167817119424351243688355206091851971724782064910781224752568949552824853654366751622765112311443680997490253589134134342736663371055233770319779925717105948203698390680024212703362702613755913010357178621795932737381869433765298587369353236236197804354253677452202955002176224233192455900558833534991306286146602548960630277346426725609276962788316997329269537049685807680011548047823919076929203715637424931338341959141746398299720428865365639160505131602653772512979386542146705288401433646748844142537707882399845954109645129102978541036039026786538517686233376747982153700095360285452161398862352898501820795257626078204603049539745995728498048837633913684023375802700508151142431259675898502134071411382318619584896451680041081619749211414457873522006271410979964324754339327145725795389506568100006088433052837273274200918359601117252569752604973248605968177044760171554971997292607693445781720382574966624747437723586703410491206607386750514095870402642630455171382823206293621721550197173662668754727528324152040326116765628835253293622490123839358515261937446466759192937212841709494441048100141797213476644737341602284918894297609954769874631084103709572775413205688932134175405795704281524520661738562053300690740610907617015321187557051011489385287392303962696713959231019936533827214691190173286982348068121838857539733965970024252133187055731855718760482299474562893441989598883511783128155857648133466675438945707291379556747615621821713616810167669373551508683373054047948738274253622518976273030320626176842507208185168901599100291120340222661946914315019244970275172306519526830443080397264895322650584345569607659505354118624262596509714622951297459923414373766709618146799452227726135838681279022093694501030594513444444699214920004876479917597443286462482127603201263964134414431487793684288546304882605035591186955821318183901678071877863377147750545898703983680312920184193061485027449972776293974058286796541036120894977404007631435005512169691109850268555412953888831855363000780066652972552581819867741485221649613399791729330975591199314111339182291312536243946812672052941057895242545617691729611789924795680666687056265020220088481556025400650376244872085757287212118802374153918516553213856543903601316957779028703213567246115117409013802400493751271117875215377996074934098953976231985507194468669606560876590552907025922307109299040474522425467914702821915220866377555627470073300254715931913992149166544691019762548268088012782647369430749853871981419061156901613579024890540635363437583147750932868012220209892354399888258911503434026506493276706372447884401176143536088709438736933969435644302079442736635903108586368048457746976974254606143763303732517860646851289975531842924176453430384358241686178437196346081355726656678924971562736676828296760239243305914371988700921981930762586279202523925869176942825339378630279238887333165486501355225783633811043127997296851336228568140125372880944172283759516871254415452770727240424296341226485737351562313783056594107621914172516430367446696749753184216452551407660384840940529832616040644688460078741694388470205134706260165326957845574258298292169385410147245601694726526438109349206001334211244951293852684354949595450318198705679102185145621033834945813973909939980824862823120193028182994538305568569941417111980688035522270009047308166031943823535407259905360664416226137399103794622079293211839618683834098455932357794048349284947692045127705391919618154352794867136668686087643995552418770098541533879382423520617660644573266139888391033391978643754800422283517648640780968825585232487372514941085110130712294458158518042270630481014042416634909513319517920572280826454062948209850776814009404814094728408202293212352993755714773398910354293543224253943119531838389991476434507032347442152297629278696373105244371758071904048531827184229728031141848079192078053320152001223062916385621104170371263637780566899494955632954047627878522164795048561469025159058640050874621303959608690290204515125683664187516805563789916275635205700564300215318723319436966241900192578432105229650154429081490947405227626105659604907254194822143704840607457051828009384340824039157504923231512852076374109412041992056315606236405889072584442026569770631450807171167445404561856301502835928236367925504066332014890508856835232345648122813474665842162688099311062921472262898534938703646653594405163427283262541092520584052921705818851252393767562473665312038999702138494377676162436705526463894175455664086437102262787621137315518640914715307965207544440662887054675405205161946833550558915486182896284423787967131358958120069654476001665178058122209791651099760533984135632103980924738535375413649141522812467958523352315298654020423409055800907485408346562834797709543520797314785146824525159881981530207222548158892148089949726254639949187515842153242172287885464586879116943874665820322017499486545262245606505746928806519814113529864042725930740622933058728942666630546076527752900258168148560513043783765978227358790888214215585558843236541862046346689305671899906024045896953813756177408892538390580491045848515857189043686577039003400999245849774875225100375980343607859051240149512254435759409146631595871781991581451301503484983523081396790706182012734124941200594143808840097396131154378597209703005855640721192543475502201660095022919497922035568364860608469946188396088873801814077235605624296513764172351062936934369155962477465735899955794235698377180019332514818678846381228806824485032811827512151861880261012822730382423136013323039714459224803032677674355366293926030033418578519408841639391965184604180623526017764098968485122388115299978350590943375941670338762369180399755118721637459217089981874755613297826020775500659194289900939942324974088479078962456870382715953309316445890484365038809176262860206234187821138007355053272326428793368946236777340940847625653538643226695917024014409840918307485870954231645896472095123322776168023834568041152719733848121516282789212091949288642536365350188332814311907132231053429823663831240680973235651620098269921413195310211553267662050926799119790885097940550546246451254043710956421734523329522170502343666239811448180584325865843369823797970547821793864394920247891350967537571403082612346357404120704994204052024391482233847146721550162696528396499154361649634631127287062145527779463179166170696761528286123722505209402868415318345770712543433567772860685146366792331869495656862638745912447115418693254689487889621671771435883331395092979548584546416992133503446196195920614060331071287043954234936210165231229109102595120754342822773987963783406551567454515819926448621109198625439148104301788941669556729470309608980532211037173826694426567989969455127210441625736811319434362043731021433126237177180261908623034424380859238316189792312021491291692223208989699274133261926297022141847849470176192173206125166123969256009321115551373962155012188182943117904774067823265326908883941774744075257437393252652840072054643677531354772442252628667016770252410535775362448866770240188061412496636158901949458402941963452052435460065263881559570330131525042650038279432713474265894429779679387651319048767402096077721092558236764001989009472000907360902656585971779853824780187892507882713228802251616121086053895394862793329289304709132243558036091651487922375771174864142992355934244522119765361155349019174704392649576408956070142075711037117097713757719416434931926599116263560678545317181767777760977629050170989513305672921281613494029422152678862017524171685626393931122234274754095552977241860120667991861027155725210257241271827872428457742271784818157284750326670897364379493507053407805494472039861094584380742736923196285605095085264095171374970642938024012369991111546117013301873596454544676128518208199669964105812715707596532638806519905704294530947259008809087452903645641731267127371587372821444735679213791651624298114619913582453853912431981787284654611947005769016021248764764860053245382733408257568201720257611170471521361093023109552779075403832491549756846703738212011570277704347094965880280569140948234217008792500081161721083737859667123693586035743523602185572339054317051077342758838492361173448867351792078701505486935763034950860194935511825837325175433531328754176350154765606390244151601499324861125689519715497345785771112125905835389073856025538392236939051951683963599646334254734560367312391103167290623626319432448690904179611192151914382011068414637441199107176167109271435021133355037598184614551070341205774282162973100073083103082187314038549150201578526288517537795144787366711348272477207343727760584389686042108955345008414012734461208257220391682759999398029452312925847489455966950362680770259453735607940848071220160166462555805414368877008332237241094141813528557431998036864636399386672202933098310036591129432377842139884657553797638834933516120640857140094372933926062066861392160357105130051605905908472460410411745963733157681890859921321067864177233615596454570792700873961619373845738791833269254506157171680350555959186173087757325542614306466146228972371642671193824232776390190884644226165558724984178692390060839712919953036112742196856752099659613394298658685010710026520229864926889814312218291787903797180543798738193804415308123540501698130198215396109714042750732629916733882379224606743263416506989845997493690483811547333866822790569953759957758592727735079400846428667577503801306042519177118980416117118361869087644534856275243971782074844453805354582595499864748072445973960211768129473340597361595623239245270944357592326570217112774200396150153796060964278769014810400134719633352075436453973778763183053412940166438903174284956187106246019291278483870027883405952918204055054352384494094357112005740267471368958028440357559889064792084960324961168543915554365238879509010129304133336268257925829612779621651449835131780037459970790640760476355420642753097511615619818946856718070074931970076414840226412041495000302593906010381391344844995957428698190666993138653254569077202438305004358414221090652546209570923834858081769865448888618429664117580298159104157911117947110124338945337503402636823048743463590172388716252153189377512751403733150902061583905200550719776405264766171924256234836990856540952311257906997839592099762568919097591692783846805210073295426022289995468753824902959351829627801035730621953629291853283212234708075184298749646881752677115819716824081076525760343846257726873518105096316943145120850999328704190827025085579319021460622912961211397914317788019201032347645536800282094901534461557235436621817238121676017848275702609131402590619348989112282378931828422707051131775105850128286813861747641209067309178901234355544745897981660930699783615118047500706067171751792033019151601276505093954200019605673474244688992124155052204090877024226726261672248150516521307152525457513601354915286874235742186236770555051375012286540822548723876924768767649636666209681350371701833564544647508505464034842660631364391359947473833597731212515251862760452684829735400199698539521201986306664576080939259744167466846146536104095766042416458313928467457411515671436540425966156774491254867324122041837468319049861824715809667134193908898913375690767364788749689303664359479793183491386254053619021635146755342496629236816695641981605848641915960814932355716618050979926677433164631980462638342826691447443906924887895428379846548372049909655996964514773305751586510551357617144967943358301317644479918589234665465301041507536044745700358333438684283282202405832653355375081984963283051619565974426103398115377752368512406622488689671525993978935474867401893816260632582676880276006088735273539681052379181333737943276886629100157902734834507040190667878688324482545040436352807611995019336895487798866296760227117259795934508749440299405650944113854124179178015164448964848666994968989088937132094149098050608288468500500671537612068133536977684090648843126037876985579902455735529938318486446897876254947339420593293343557203401603600923895882894272129178331679221156279997318765701370140525670609169990590277972788913329293761350830658358283748005391317539835504478369518883467494103338964987159279842218623594281940768957357255858397704282334675418044317953163976506000370915927400178260942926484200594852080747154856339605412535588253830084211601167163840256287147573720235822145153926409834230720942193537735962946255883198127459005558913141794359263314040883179802482179855793005314116509091153692978529480226378780475651101618757778800442977746951165714999556957149312486132143423774664511694222555074548289644163186250879630623290251915375909219543289837808883390658403970299859492101472180534371328405437169025040758107935211957548467579890812567116799000699798202716954677218964560647149015325015098428004306095075354459918085298679078614579860569625311301797757750680291861378782355142506164419687801648551197086985168444993447740189801812472361769439075179709754763197710249554454923905381973506134981153227286108243100837123023280272525454964994392713216570202244563170807078244020708181603009903845196712698037472757973825656588655465311879480791121165398436050934585791520302267338102711450051222463079877491597766371920149413307591064309782004710569294216462131432068190492736573262170792193397930006614359759543758136090837978228069520421506962879894245292709275513143299726792602079074314303081012144027955481491550734726469914216433853426841351310693866106458971110619025817783618102150500947648830520662451118501424458233087557106115429728249661472089176784747609376833220814217622019496997019842573020724085234438218520782078546063758012433045741751773309374513516064238748303992586693258667209170564559572039357696955923339447819042962046872739310867187280196856413351761793265199589613176913940850273830706538043516791960839038566021854882382659427133860512067169547361268959346913853685004931707628157635879967591723692624776669282197727277811997758694097548838910187636494506551854975001560024621185901433840347351319530375062073256924454616745291473788773123419969032410670025065859648232904571186642778969398078331118019430116761623243753036571892320030793000106203970090698658196329096724034301393232870850781032399799183074058929296269959830130401050973842145350126976387551628220052808318624765468668925815889381346469190633966993723012301998951394236422204860349738551832328473417506358150271787862244279362359802837998199320406253889013459428278535253622997230538679266123821916526500106948589112377981927123815703215964637326394779287390710058732719419612156727126628622978732225051240339233918892355594523328978187326134994677904198606395254458030104861399345502524504793780311202753694309764833178066512036595979738829371106098202283672637664422543547295541890395501448724621711209498352392053936194475150463851089909580838174776388700875815863052812398166757217764928512279327016258958967873904242303821100511140468317382831759164735968614084030125093972561876623186557239790815761170599057069298452167906804379250072262910824944316673059679357429051918302518725179078177689533979917327885157393876693714378979807333858489841850420061090371880286369554816871659994718763786557687998576043356613700913349007914572018235092166906104937660275651660060311410355712723957522295928417526610521774270234986861709895218921779403467295216923180137914183544185045864507871935940994747026161725603469791314784416217100367823472388355735204714448406027428611997700546297348610719182407203676780702153757262390447080306933499643382084093832767718259951044876756809507665098574473245371520378968212130403037869750823020849743067949539277299650958649512522405382201773935045143208678107706504232351386875404192843054853801938353852401093591514988150946166019107067561617026594057965597232062541131412393183292617495478292462020530075498381229498520155408786929843388890829471220304667297576214576125748297844472430216256165642196246600090503370996574828607627395094500455620753932926010814191513387227035525432533758857965077842792370270420207878390902744174678749725367857904072916175129183598549634911115606521668462092451112873394599243478877292209274621512972387192200093784258884144171328039462875474677622372758364274026249664815182045622252265799464000318780704095380342741416109269217712820591537321439857333668014473881555878462874867222774718052242091101519587996235287995275433137253782769192094402358801711924916552539899980364830772069465261765249261271944465381170075445411606285458223277949762897885592057276067221183703784371230032983034092498700285491255367673413109049510496700937038665883112861531997172204072659389398053623785666671200490326138328575055541781740874576103332215169734269561076613296562625683358854652478664067734919655881192251560752189844756685201080452577204114118897903119244818930603050540092264025461668332911885372214890583071566290895914410883072538639701820328023572985936278667498369999245630141362910569184882449440593511204187970461984374789354687979272514299469436441591369080655756505750178149586072501866118319462938991840538944969903356646922761454557461791083919972206485745513302859341750960740773552689242591651064250050894192630755648062721628305165891672627050332345054910210605339481954616640088903966146205192366401506753553231321164005044153776516008167797065422955884912066013391763031232733464328807208526923427198206403561599779893046392828148977861273722537112592143209916271048854753398697201410997687486778416193019296554548037997570827162621152744813015929623697247490035042322337917907913173731224007416931142233114013936063368691328729529320253846782200061515264133339319453298235334270942820505649758496626574839137264213916596363365415127072372761604940162377522286555096282600921487828548632402139629588129920312234748538423084064359443439459806265024084264604924094338530790195416451346534753384980087843588301613607888709800353581869528829782531750190218155052738187272595563188447636828745908485961733481249726748984222739679640887526190879702267940968374699667192846646529172841032610235448644517399005420561828657161338309479501397079802476733013205632421829817873650328309922118890943220829593541435851939051296804998803158319411977374949941602723175192307412835101621733458866587560873388293139888290115829220907747982133985314012291345424808223010078904541560097523221235362846006841118520019526440084302801855076623618677874696843846286555972091379697779497229858765334948920606594163775803091663732427378255904509128750566312325134263731624634479030463415689073168282736439989743211111293360018811907132588101331991921146715566014333658161345131985083844120414597012270443172608553847341186236487425637788189605087871968950104763308414558197533060218758308596409717926086422162808044129509729626460641117606938675790588653545465386246840972331425346333221502074368090768687493981255469367131922485610108542907918137265823238162251530800580386894857703794075407927849202412538071525606252430743391472192714613786980912875246303448593307324964458853493054816134909746871804917947118618427076083219599695667905430068107143388451146547283908397849727978690206301419878002243806925410275181045893964523971001501996244153823544445796334851658739004692044387808960008726627764298845298765092372803418043131081265684789419265951243130672698041752258743043558881973737272910647066960723622827951565396391641011508952396988114340792426778548462733997517120565236073619418983248508797077240257713175118970013812310976400120382990238350054829933285137325211921949362356009394844796206421344779864174753156665336633165413593412514082485557162814865058172158810218462331003447342126374482608352511642138916609693567938676930859016867531486833384070953951458086318490274835851414700929475232266222264084194258254576644208034643802465442243603880822844304909081603596331148802817064735719492396689079559589454892832153521566093394637234030614582406567243672092473220488373175782098737486534028014016884105655427081467164692773012138523397557628547888404691454980245294765133993155887238400561072708420912468610812654547691424187242109791516156555797967112269673402475239526334738151749514277198310575302656289686155812847148885957785671129034427463527449230340312854713190192138699613042873269503089443617937743841569580842777501862753646283959354956192222178729011568029070553909522660449770199219226891826260361677694068171066734451932871485864787510363560445492742183492515022254676850562255641274913718420802858416223740416071491896967662012505982405673221192677959320552194491176396246971604529531854354318169423409923741107938317313576486973166307604057200764906535471048175562312327770123875349417112347421916252173197642608467036581551956496176469432588129969650788752526035241666886653623507154646738240887437542102867151095903283436540903788636938041175657030360004952189545802605638851144343331437002645807738315103215142856532647047796608839774785816329480862318892455028965059359693867141750619146708918770198745384635266989222208866055819679749043280937793780170221913215867457546198491497121598815123184848462919887967458188733342268126961711587462238541226949679455338332922451369341657035067911433308482449005691193982949361889576118113530232319654908900244403600815172208173580579449969707574148847072633789347942623349691387061758415653754386367618226379572486693958401883806863586524238119844759137462839257400353346644966403613060772106219252589106681797501347925802251498093293932869664074107331312664525649936567852106650358136816188209469496675175035378922286283680905038173597437751063103778226100473855843375933708190547474106120594293340704974616896411750712568325828864890243769543234486557309641297900240528318767298691777905271442563519772511206407591888720198797992316724835737537331858234452447540838082134244075566617915223547242779667797070173141205792332652030747429797057137157598724812972347872428103281198194002833586855582213292584639778742249036338315063593471467438976548800650375857842749785181812694876125737574824859790267416886431446554394729898768393806782322778757056928090995062508728152618870928984150675380919420311192012525584125098275361039791653003461079750010841744314430792819450384719002281286690079993358910562571803700044396475326243435723284525289025717114741991228884294137315593811837877616927878004361308522944041062009167575861585566129862629753473966630563274691605982270434790018862466436100985416185159948557530248509649842841121292716207239937503902144489860543775449721926625911778741275208750376823427229757797954513301344081790786148455730443269874401828724264315011889798870403278458726820191018524802923770594065477286255660728884130642493391234070581408207051083472328360936869116303940752402074762192714759847437190844806928394173929683888811869057203100910948374962959101531176194709241168741142529602701105341863603388652740186292206271099004686425202423450514932300464572921009232565622248250036321354176411889092414846642240927536794599229851445701652340234018650014680417379571533037578265291996505950349300630038893686970410783607290246499751767480639926708583493301937304359742722514285317565578655987454484509564861321292955284947544682099962215861900793047147121826201220068092552992345388323859746129899226516528562133299392543261637225093891694784038736677297141185281277856566326467012294999662321631336671958941298109612376863093360595242750253907550206793005981142556477158855052943201578329404030215456238459264768883644865578521105714777395199285214400164322326459099650920278535872067369930800261966679664054805393951814030093057857224266068510350210005554766511747057654114161930157902953457853259948426054053430579495144996516275464111700597604935438103019592172080881254546463472576222166302658178918704867829577214708786079380990281459347307030616033199182450226452722997200042117107356436337595851482848698206209364922726595131844709545065040091078121724855847431903408710743268719583941910218795691550128204816481784796153428443897223198526969858232369582100084046890102481159781720856828899016675130587237676918346982196977423582329126530059422542846237479083510295993563154640718398564261911591013215327022572485996531871740685997203858140280536019792117665308299720099307350583266301194888065813064386177979605122314648620201326851947720017336403155038862429728875871012751653934532187985942982514133309096217641241606851503941126574027197987160814747268548740728396502551817386598706316694738262375358390770837292432499638586064068578300677040227993898155951004478940664585249183248363778232272390696545397828570489373215671979389571960644145152650058537464741651705376613578962605596631136864270409445687520603797767052744425103640285042702207727474150522765906048783174448944981560741939964287302158825228315421688018887163082091348880018770463041400771411492662178931135835971708061748322820545641103536633962722243568487403266853058662384745943431111700370122344157323644320919425843823876786505229140466122585961834216580079003287012387947650419338456202166814795265908576530461890777394429577876636063592088309485950458081529505316608379344877536856818880596866817817834737272847124583406218008773649044318731070969436684573258613395814062746872921237656646441867784117031276227456156379878897200422914376379172082425601328572550200403041450149930023298878822830392590703956410693835168729330944165721481188142082491205127221703706167710814613354719590435123968779968538453357253833105521564557795747878613655694758111403612478725606034063242282185559723589506313510434555466074931302882288711518096328891993550128437343985943014415056435379423223728832405330948383637012440641376109422022830645237339032561245201856196567001669775028402449010570834369034209086805195586654769787581469482160621219732214231131078431611991056224412041223602261916839005313976570518469514249199150494205337254568444209049685358703246705585508075120295147174144482168629957118319638035623366849482519674040832531133682752060402999476711463548113589688683398693601950356589735451921727034122943387652896527858577395405041034189773478535777716431306723276927730079220856665081798211827444623126648548311776714645112036224723058283064405633792804215426999775586045793571735392065989985996734872116774108837530443577124455865083320692261028746043659295686601606761197378880066846247568795853449801796040933403712512907634265627837973702378217796696544340724810450679444704174092114702614978190722065311693470087189768165465650794843753633635983952694827080365122245416439475445766604726984379474068050181598337397954704317590169089271308942408891168885408127736073349989384952284044029230372616037888420927767834070927932181312715260594079514452736670551104785512689029686077189399632338209707627097466464714495549425494239827884467143523041371963566261825146368754757725120756388603709936094506837034277078091464104831771266186733780799606103893371036763457226917313159176178580182636382255072954241354904693566210731892849237314052344550632561985120655548367953138045319934127101604339026960134637329742716747075908472552579079250237854554342721033868485637440776204416956884220897801703617219272259315144969465901772533621935572094359823124575893898532715406153419032717311814110314313918168368047983599833561588045625534931882721896662211893969330740869047907176655393921342082756256006623937379141762453401224767658053326380715807446118223581147116234100588784491451149079277363193398236190153806967285367377401964765965853286296184294237849179168974926986702107391507234400265325989762487901465479454450125877666816286695185901288088703015378601895580408264450797735162168847309007601257513713336840506936725338582711018886917846253580869685318471072041775349486565633026981621032447945070163453517686273822378915675657273549101426763961160634306395153956550881803449303993820127521558076199341621210851643172846199352491621479239985043419072404222117973835740428693104250631172901842324144928257960055370611509630181571368387294912870955205285364629056041652451220159685312508634184790992482399091177988310904916698116419256630495410989082467333444609878234334334277049863328157877905321254858200030109289564271006786113894050954108595568547931625642895127329106256411688708322085978526417990942060301462088070900004202834594446858510377881764443495499277715928002926889807415169403169451799878033201627422570247145355607352096258063201130091743604614227480803022416490465646797486087290622479118770967288230794305918774528865473884621642040508611550032298109453475365361572328773312145339561662300708693706195269784986689831238817558330749110648967884393827500598844530567515980134044408931623254047626044570840402584486820898216617896853259208169613316839736152550387232040782517291782990495973318857945720163277149895612779252751493706455667231873656558808786610074453784543916399031432873898871330439582786363818604123341447212080258632266974104844645784027177242025458301593754315905191618655431653957639301195893235172966943284725776099105816705685738562204865242684535727384289243877079983177574542678151338591750695939977793027984900883720843889989468841462037790796705929896627648974693414970209794603549575686819998623520023205338391606284757473791234645647437696340153444340921936417100554905472778778319673368134639980925364090765496186026543041668695939387095674803163620001351953532172270729122114640653287669080471520747695671504633368766679378121025378672899321350469204746559244880352865961285823114051760907133848148344270153587911923184271826342559600931375700793540577797243290760451580625769248980106855854507479393595195010563884300367755468118829935525131837709062393296739415239899284451866806084624765210530229045846781157652613549901101717187943012514058206570532649583657905917960252856930966804322682812010013222589380457595925869920960466686269408953336222087770545506722017431580182812848314226084943277387150563409878861255973005609229682635372515877676934979893090313616414098840011635285121482471224413834887532548269940012996562369463958787543778728527143001554704278973607401186633756954137726790164191763089880213685904617043949251633498600462810866394947790490468187649612800486752421194145942487333866250785728268046548796801709661473569858708556313182810714838052529692459081339399217200564726491477934568567082374736193409894143678251867128560803338036267809909738994710109231874651295883092491129429343884977870889290088664088668746956047237925249711392303200314416763839836231743505152771229040384589359104442986491291555768105753867898678608015168685648631664747887489609995738092336157261464532949218048753538284018265112048168455083331710693602963379455960028340569989428700157908127138497174767553022855084323890081572095897840767498309536962556264864853120356226240171320755327290888058813247954451517345275764515701458243122237985382751302815039517557646084428798626125367266358540883585551075142651940005600285474538174613320825243450508153052328613720401405641524097942468067855780177724005706470552638952526360138367062643663627361341552642147185147342844676897595990640363623899918732522672544002085532136394245341385079540824990785943712909952558363478003563010000397215687737385106620929926924190372733120228897124762468339933384472148382676623155175169247678633716268888801588897038941774383959085147780517501487172069552570415804832397062767720905869648226472771620634780274296061152612208894677734469130438053059591134054425324677869343447375088377713623954347088273977729405819594893762085711583404126977259250640329009089363970832219689817577633845098703665115512129635591909811831779551143730070721710011228688905184837162621111478253734436477217741741788113484764504928103576341496356863347003600457922015429623898504670638738147063988609368756772824200062237881993479396431900193870433931777664316960681549378362888408873573360716160179019696327235289172155827682110722562978977381107220257285055194286107474109774527314171750055003664800008493710393038025299967845457497318591893669715454700974548459528745579309005188743290289824211935860401796451258397005762042891741984741987868291900813750796121558659263176463704430233352311602582387240722287067341390448498013556125439140602368721967799296864255452306952517263009009059039868977529419159458750728157159297841125891531506583688375008884921935374250673904785717947292065021107732420897176590329257200125657435546259330289664660442814584379003956736339444011470135484359731824998017437143802316550780416890632434734470851710540376379689794067108465881135445452949779534694883955500662057319325773057779476658622336981817279740090781450698161752105925955483526498187609957624638273517738201307034846386868317904297291813017832879855618353678438170395110238740722005387050732869024762711532524368346726869662918056216729564254564902385318762022981334791639382463227941119873843018472922931546122858571321260367740765536064157236776670266373987462158629473942033332340600286928424034306959429008683108437487434535603325159625914918420796575630490205837640244795781940798105843536026413954574516829652109560453879746438946572309917005964168712232622006537500385652581323155759284797692244339439870699225142949266503200455678516180046839401524800640604464700380381498352630758640538439862583034320845581785193449898805605022421236583862559231217866666870623528639132098513317224343989998677191975078256529342669961496806405429983793275116947247295355149136484002637001649477266430695141295886616627129328884037470492376384397406664553693579683874594036936091640936857051444047581916548084754158555832760593108304675149650326021650006056123945521393612961408428813460538027548897258545086415897568944518911382476250238213616767415323614052715326104440682664415013412715220464802576004329018829114853443648920545403128375760064531084201834632525674084506573479874413806336288134464078398891173395240280512193032752856977731657817851342545293388993443737108678031538657547629858002557140703674060038335601363430716707418189384190595724461707986874249745313866376811465007558753324623971414144518090153977592989958590576107515122879997019808638195472182920713858285846834245434856086509982313016805830043314160729276875175100668972085137021520840579007535018799057477176089251533739072049539528034159348806328957046279472851342721654923659907225418035204467350340272952422327270351643878166847707048803590537411963168019425275905370176418554439985345275303944584200465723405658742151067280042018406584580996232833320158612255047562017427337537766150054284965322573684054278879838153821848125238934911093987486676633413954698911307029927371464194601501767377482465863630214932553910657848299715568955137812790298570399549660989099979575909257312993501219156089795300196388006069289375868716758199603196493171443913879839392923005138130352267215381587303378866804468730887832392713840173816646858785675551163001257303726020722903910331409926551920497338321943456092443257429465719514530018112995700657511536774439072548706740014522377583893095991134103165609179157449724585061353610438430522060097753101535089166526067832853012884747759875154370427332401399855172119519004652606961862957453438189867824604586712391079479905984446050187331398118597001376213941673140998334993188222085868094090115381098212251899675380627523867147992908833494423531751378743616210350497246086253689891486622784150175980941981233137425585807718607028528049340303190286555674465040126306420737354220748753168287428591137801719817673211676893363187731326928039555027167286037655810302209834215759235731141268387845420720735340255475260286616185886467725105117495413817030368717129196327456353682946346768487742552543940807968350760445160864488035200237465049399851388772477607081923011132605346899259377198739099211828395160918161069249776895326527023249953768670615923014381317948908662582674321885552451908196075828209294440527566397637248177726549313863051976065696744224103159399692153948276359855400881864472746257650581246469180363990077872764305580277448643041581660680114041132365864102110868716132836137305183410474867110533603117322328767800784018860552533038353831049142734750445661039566189009934955293792875293412224039145454427297042535106317231371536892943265954689056416723183595113817456003764475757882165466057505567994754528705254499952495136113240843595672611490476025843171590019505477818402008365009488379767374327576838571883125238692699075176340774669857298484714317881858001174868751493608221503472101535651680811560084871317209106997879318505172862369467155948462103632149382330829404762060159945309034194818321739312576117491018960868552559687324730720933468465454591563569720948426633748710863045297603559747326567367133673112257607619524770483914601222379484074501180072627046254851666445079872378480070928699692476623017003450003393600655686068247061659251357287855098614700028843735570893349273927050392606596453183320644555062996200138411629302647512482546374731522431461540494732492202499765734045420693371653999632531491328018318866759180648023597751162311720862622678460669207843906691067071728737661293431937523615973060461403956115651354012600649715834899574820708735091912190921195262016773232991978525855618360913275920764410290580045770157916719438485907227721971770567988246464048428681285878717777676605243218298563204164445770913420628877039706650923993289311315092806988475447182331814674510781790955048679816732108945675478269319504712457450762170633509327250918930822141796898046673409883903865699242153422826234223187951715351855495574633388227588352452152540520259186995983773604043074538839759730027883732371244482536996945602702798272672571161600572909609680216353970217412197863033904223196750270887982869081961745879459760221047338794655996165938599609246807381303840275543733004261736643642057529610372064224100081596820803302771263528156087862769921059084658109267181434690506504369264152313646629662332636268338184260545170187142471932132913437393889443444510748342248302653274618928593090745162141197298758898941757043395927092399676647454654730360642381785974705118474283323417986244879985347358538920618303356571346983227510993440108941866876605765214338116429232865905311726470892179347622140916653331547318693134259502016898084655910157456624503061163343162411235866065939586441000146221094113982186001972200637343869569061358887764637564091883371289416330362672514474719794745080259598890556341925936829481162029068945272117360426619464409380970419277293612346001810699179044328668532468709685465212409576466332199026322642666539175220475351001875089144257629282213017738477036815281327890370985303599476876162178953927282482581531785508362312889521663931925978770805374949319610292294460613740025605366836436403793820152411757595491611137029452189991355425172718936182782372905238947779518561844140655713562142543726149168792323920812407916667429288124444844633020041853433403012842583824850056944555669712880993292004364712854724322839593335986975305608321869149720810778875426304126803710269969015675703255615596667652412987321359604608719686337598254371848068147759455247904354047862688494571105825422716025467470389452549507286096269522140557152182335550897374430387775797615540128499693993699045615098142368044609612086569118061939760359842284162184237495149756308239090845915940404836458310417410223570453556422388971042204539101505972536654040869372890947665981942400783608813598314153810040715322449636289528047458844055782227779863415488194320297148389588677206632834978341876121022751820180443978081267243809241477096272197409095500359882919684449129310543862044824597749535831619958744139521985485954460691652142043852501600763590822054156096793661870173722671789742726601165911077538190688285063456678435945385787657200609663604139359136763118587251052629826680218888568980156923896450274204860611333518441088344972663871688162559922706105766970140668804385915625613922004151579675315267629143924755262570705937465891173494555795910525663335279103668353913587914489924527790308538373628116074822695103709450391224526743237442270098455435358453112431447927405175199115308179698345366304898231350764351874552277622843455398395056778943806095390658696392450964628172200874232047098446986914801140916467800555539481382257469889551973620229963185634684615046368459060684903293637195921549651265473138920847495440518457244555112793796683209342863811370023766152654500748057568695745060797042965475065970411582755210180661406854112877757121086860826637440430473859884180932781044481565664580608856107008092565861950824723078944892130658241892564652999423609405161354605818110815508319211203331042763342898420238130133912110792134773466233247072898280969930852010160863465743989409007713473077176658773468763635598020525707217087389107316056339368930543161948600959720908956244181897194466895239488615418321898541831771644492289986923796045306982028017785959633140744684816325773974589400887576791444809866616242896359365563870584057569775883750808108351558970159082432761731093943521552344404834868400280674702920815093050886308122133247786626886024541291017019147588897264186506242745798207950046245826191683485822637625839983324369300834307916709940640936573796300111695584333764434072834641036414751820137649089874080897130146271216046814198171942003737910028869557929209902922716027261601303771888086952614865057954331814623118838075690312247466702375357549823471745102046649378988739026218317074469059236257746990623144773955964404216143068117271084582246774648701664105673445691118847008194289989611857020081039503349651277278158768271339465353713832803376309615981989373999621634864560076351176889779592144027333826314471073704771545286516095003684596502843684903092410801132441690139595296002554650071427527234568634121093814522568564345390292657202857875685851341311021319547854601297084167011820234543206309552298939377747962912195380853647608723981006354751326408298656586295074066173927866352538881505962023217249657188135068925595526963239686277024720046800006393804366622248150898212355721127643067621589366781108485500391514002057762542072336153991502425890045875047822029447833831906880030858663670687973641125467617651792083583815693287370242064347713974698698869332685170052979482858708382507187587208783604852408925161782504191198431553823638804956086624627415744323287978214197060648546461404049599270912031619087164358403642965468694909818443770515932901649542082724953618303120432037745677019253209206315778403216006944272125619130826129835555456308973268385558448655062565248294934133387920765686130635439055307480344562474396708347649114797287975192640328917981005280196413303525988406085500942298992623555637885745082513074513233114162788583030726065809746080030239521505303968510374989340407936740603972076825599179494594655070137474234190605296953576115182590993774004621716427327299087915514657682778573807301186620601562350298400652388455150859709343452784610220301199739624258108111903421137023514498315471280063232768070378839723701887411473945232484495732211152844839485805111322069043200601086702752922341000749519202019014722441339559904501485441964639395134468152039027305701494106105958297419794955022209000906725360916910164860016543463318347899785725033007499822597537882364029952716353058255956576729803671244014672785759147138890744077202479362783658640973980970263986829683800114799793040938780928376705168078940527641812213785311619196543652221084179207673173378073441424956006166532188487047588043202748249848946546851413303969618906645812235674114899167622631403319378749845718861067150552747660174413176391270871658354444189418991921385627051551937704409471994284830689410823752965929944131836695893766238067386333624210499320291480352669823283467426398432448900687656275709370089963110863794519385105843345897697177317255144446369062333481627722842090529220890680557905392117266873116713725631151872750914196329260293031914944180604837460134023129941340755660800406838052940923371794763227821159686440998113457938354118903229267663157306500171653371596713687993652967861729384589340822080172867989611173743580554048636242669326637263679780135003903676948699862749761092419598023107159682332870369373389481405029521134225641636054017853153968011886732109051073946328404458803884615519475232506423880663591702572439093006668525180849571582211953985725177226037986601095501940620758564290440303595130140947876845698820150945727427307688160234724933688275027248558612828144649939159305588748741086339062338340058423504997164466063572921905340499706824325723828111967684821776102890273075489435791800031221097245773552415448929330740267210652259944549284532696640071728741849000431656775539909611057362101096635903510281278373723527522677010293006427227432183850170663411202314626387913528210453666893607948063797790035751734062584694392339814159822769808093395527650566160125431130375611248515805211972756835252478317956492834610649656863201438184948331683747017683681374478426387287926674635658453868781495585631750236276301846597733103056163250063544269555001601006118628969381715427811198498681842991193198812720958304146783515516473201838738864692598172450528021825834049589180576322734537678411274765961614787128695144710005603312412851797337221396122548897687904730048919209286540943979219699203540658822601702101454927217540271988895453071925921184873859531902546702840914270744933108475850661661390423302171785987578099680425749747922588164513639136375074222534008806118701869653923421412090915027551326470734438987114333098479453858742258333723881918776454933689678137084057500865479144586815047146543552256820652201666146253907899840868150497862548645747225595616600125424545505737679218035996084682505577613834915206093425441611173660456528201393981095704775995063842579590913163220454657587857737034262159783598948125828387890902125669806451612532188051654041848422796934141823916098305991046191598469272623264212692412217366391408088437745457289768034383175387986981864979568260039103422851756371949842931807246864769268912494845403915154028380467787574712908705791944887553920733936558668102759359791529782797502546641224106545971955918168090587365160486088509002478386111442348078084432628137543450720803160739346647833726773764717429696304072785699130978081826719601828730472436526370283758346624185894350127954200711660722422714636094497979220436880412660550741249290107287162594674166199106779012282727206135452130915844542658137219367630937921704399371477913054681608220511645375947045139106075980549157861841783982200968655383281461902220614191354707301339886854212343378452121747332432625668219048299697729740180031901636602301856545236337114841165578150755121153870975119437616660065084925566771985117062344340320630405330124381494318060541165751219698365993319400168407321942099655074012695950243412596314624178030256998339999577067039678373499653382422159938290403408580128374205293538787579398324558929239261366552672382979691433133854587048162977909620484621145706951589045583607253927829711952316892677110010803734731333461723554487054254541342492253768514408281873661337784795768786842473940942713815612751336803905412764803608602374710504749759800893218907278287562476889016609554575015758141446179367878185719342275545643492485269823645147173779416132215684428464975549901253860651927080232945641231934607064645486200601133366602898509814002217744914590424689243477237264876659907847770934402980783063877132450619473916795293507960176719725025656257469069592108193543005299201183557179340705212607397665316675968340811182693581791373233194409581042742010892604363890819770952688219838633028446557420013224409321634822538095226930221249744657807389156090877968981059955296903934932298732010795201874797750357489695939293204526102720587266741330369735303536554246433674819314706027526078238422020063104085896848246503919483798247731576907114278007022085824061617186840496334285662316618662779867477588196378767030604926723524477850243230827576312557412039757705754892967237232232217367442356994572805461480534813290675495783452594771725642236692677892938463301247916646530017983772748055355904884468794319492403726276292718298298148841617403370806364259015006286340704085506475122660729330088836198345656442184080664392562379787425936018947493265843048857944066945735273973647381926890282434061623106225507678416547942520693488657499571659421870058292679049921320404827782940762129259495636256392226967794082605304157521069942985838145670064200089703115540644344669799610736545812566652220851811868432320465337146871594799632275264338229721974997533049869110639943727631776700117000332353016615876035175629451577973940945571893407119164355104667118723696170720551440684378171764756787527377819604687668442288256438964880499070834699638912330124956525447604721864600324074125067324405022278959909129469448464845592675856502522631413901505212524314596787566610811084001572384171724451472981183619665689096957019209142578819023939127688446941399394837747909011135688642616810818385696725568757744729131325350919751334152333478955264017645741421006315188892644679342815855386353245786598486067524038045682771685257969081208808867122925285069023225072019857864245220981166459480902476084005219733395496905219902980076064078776937158727447064647881109841133762390983539293790300057183725782313774876730392966455305492732196292273495555102517574448766128143097934192895590293229710173105966150271448293240364775411423089335572654399560589700709082886773917913318290050901176532538296209033451321941452405592412346556643838243789887122490643825177570641579433710243932245294180928181317661579692539878120829864095602757403279895233355114398436025054339051675344112527018777570042244205152987886500864464950500760113182738500423871085370192649139655623136441703302465069183270285829198211400282522212064695579823466033152584435691002719776447240275163352389675673417757890138741075492258195242167177719872749459120414727867086407579123406896434075456864705423177921056392467861255318423498625285605319647856576608566637757786508588179927474411711500292529079534756972491342539666386396575653413878984253185219287205471371972525595442633255313812982361341423993409317431414735550985432077125856882439562321993109690497448300899032614705662038717856043018098096417125239589566229744796881228707630830466043358398817161930534402660755270282111726823973627925156451043555321785274930571707863531841777682916776827493651182175506840793809288018263972001791203673510807409963441926252069143846878381300199349310840605289293804899720963764481487688702405222462064952884129078282468284716484661566659314107322985995203012711940607179507870835730434875515177163396130468210991013843644681308704417372115767376125647630435128809222752321197452105505506162892209217786132235789041843764809781881307108978871810115384485964058994287405767831880245348386671806757261037068580860824054533489575692931839357754043618145457650370571408078340301305711216325989812947657637897680675843980933607067819654649129225169028001484624572761633159656177491365148553243176433261123596766224464694581763124937787341027302992398020473577563775690017399282582964918569266932170036374344436200849478873029674910456407793116803191028832866817885417359313949617879018941735661163932037956763209863751278115336637733418337416454600336904790067676952186860804090551522641903025347366911757040561436652965329214483641217228496436285448985959684884363451797570703252958517519999475067141753278958946348325634984010159422498341733685575472320658136031974002945032456678871240436791470358180387438641925037471928339026658159575736261132506530863218402731939421237156158160650595074414116305949378096908998843089803187211677502461621778577760700319392492506866268665381077391133596722372385259409510828488192896404765508193572563615165067399315691642249879613951699500399686694831841751558918107189703940625822286088844862474740932250127735178980397997148794267588813576509457872414746671433351760701946740512013497467436244239095656536157876486153810297024159789642295330695839543612805397208150444061949531783645212539640005064252327694123890215442799583328698200304581429084133611599170628602475637458116474194612707804009992177890456907383949804711303849241140751010689054415509231017142523866243756413135954571307930363822721536812734925598264426895335849950049605921333384238879761875569021769807845239233453786853619748495918757778758185925634435735536136780468433090231829510976772736654958674808614458062838658874398154177996865499175516096125096162886161325116517153780208031369937815405824912956653125546448544052230567815891177861706601771608680520604332546008890863481629189641487589283479595053232295503276174398878650959579629881356770632431018042628290478441864258317237090904455367457035271857143369985949470493661660496959028134814923524015144601261182009221989370148308703443596153110355402435988972277645288525816552760593614534800675515811018253479619033561426245105615300718707803097843071984798346225203256726592216785236043404122479671973375450877552764518734747956044653608120370683440369944851310838746708557323767922602057759908619231729546740200479726239077810435375776831168415493679636161867915591539859946725939107216695592730235325382253881920307358398821510151016928215736031878631318513717154132780508620880048458071734189355551558762975257403412931617969814938626745834703624026371616622896008496271104717594033871603926344768250277500185455239968940449272741991354182538029885574438349260660160153946158671637858028731805320070657835580264460430448713866253192662613342634762313189661234407074397881208037087569221356089102660094194980607927476416552974110786940938620016685336200307972436127989403501642883486591882154348402261471187546418942824444363044861022236433846904724516410858080477929441090014946555265757569317815925677929420712980933583323090122658347858090519351142877171968210551507484530188671007161960312710285064982484788089586986584933083780127633845093928497407090910030447820025377080143949765438462363584342968407014465328124648863123905294441213697596637110526580476084639086338988292594579027826806972024915764328044014176629358606904551672645297452997480391590039691410643476637441446216553474009788698512593217078461955961556288380190760294585863267323525623981300715283890698578459065785249777675453815339806053906630915148382039152013077342737357900370017213256469369589707136422504259335022866411423299960737518789484609287263766611610949885749646366477119220693010182380831847586999569942296488326117026359815388439870870736335019131176212901711822472575631184128816333038899179400235402073419089979831212819082117219858453363748853920419983778694011635542172014839368459873883899698552700371982653755354973551541011825816412738594368682475255947637996907713595204786643714331370238743679905799303307538113365796736525510972913043227355625581062547156356153816265687007469289556818492565421520841298056771916662599336715838877981116745159637386748678499804840007349519283460816749762791815046551269964197113827503606888334012782263859550986989183444036793307529711800114951223127071409011415446897377159792127466695894990974937638300609312438733905292773496533030240694494241855385900263010244108768744991870644824214337353171703518664042198525353218271493410943816344824973465430060328761072547064539971276226754343507019445382830507082102211197364433636599470982723519249971276512170071922071312655813943270849614365472045988069263757163290578411476087868094697931487503080223347796057075594432762588026433593911644855445903336526283011085569314448403998457374480357054889296913256150702977920200560871734819071686623321213231891008502908586407884225687606640417669829794320396903613854220399254432584417768720412839281283983471851142329859840426106512458286312409091916511905122412523864689026976836264806308463653266319840580483577296018076478090801871736355447484377591267473464789883612489477813765421108104479841034733246851147755914636422272479080682694486806403391102855329663546446705458036346711175615360478255511949349284725271338300996682969267579077983049442456335580029125147989957105357479769519869056185805225505057576728030671866730234052386934222631222052559922391263508690760185462329206868127675190653171352550364165550302506559103727144072139695246895488954201456008095213535344775873979939557281213347551885478778458254152439189925106149814559798986456205757294208454668723477151026993191346426061837223869429652035687170458381666927957131151128129686095955156903560466993406769890837800395497067506428628444337907937552009084091620552590906916136066113320150746251078826228672366334802548814549588544526153564515540037308835666164641790373632639490550577500803156175316788239864797025920813788123714553236280112117052360567764553775969562671798496871275699111132318991297657202680362276764545287629896413818743125816731529119171238646290660140521963059655738024148337908784455029972477707084132196316517940577295108719456385749147470746526436294380012338424396976636263908886539494089184791812440627836710792225963866935876985298213484769483822100268272534337263882384875562588261630595945807694033795797703225956213653019153196701668319479956827685531460388560113617474587066660852524729037231135680025927632910457817996606622274096162214736679059321520888623740860880170993623211466094856918406780849439090905851585177837847593362210966243904975915972976610182088109355499488775862778689011426300856539344287254998778938027092414578645235464671799225610260250969316245855051495702098868187873928510029173365337351052788821598865878469654940477105275705014585508770004784170651119476563082515260361926638978178878837232072722019709638140020421709961394758202110906304000737067280637774349019193126475959044354760165165175220948947869749129967756068260644693344095136618166655552607761788867549802437230561465615195517113184934107043945518940558775131999227851486778237768952431493966110701799054877189743065365388440513516020013643682123801166436777920912277484071867653136672148784828484654558679836654099244417389883898167039993222125780991514664125202177618736856411753581690260449744303828065225380213191906456229860396292133186621647692024260681352761869918097556833326496788662681315156646878468359060255375906957597602349698631034923647151722877638153495117954367167844632447905733817805116032188373312720513129215685297457178636830593277916830423121153378776077704207022830977066004664682462480091385939356264044479387788160081129769559958277200614109087525448104525205702513433536296077333929417893291437461843181292549000082429331444326675348645460275278596546500289154180805675222651397506348281873241532106645188822796884592785410251664419798065003872691006668725213409546344304080248651821229377328036998952948900988195766783068140525029572862321242605422461956230974837566874950275872396338864665373971538240156693497954126445555185602697876705276971328561247215600524410491273871253401526369935166432782196372113523659717111011453178880412740722427691551136837057952565348381056703608781772527564922371629939558059461740172809935280903894492531658528593382975919267567763300761134540650839379287215629533213306880896557362610900375249977900139783461802061606002880327135789836370217069018413612891309491574316432401232999187569869304786379656655055720423180470009848908765366114256431176666099449622058281391047268796923431553020632276520609747362516969445021911712082947030597463779732665053919500895229872271871736849109319343939966080886274934619671036310165641740651286741817265248588276078347437998171070185083331991867589321775762846161520197283385641985071150888733083179206989753109327396059963759477592178363654016703260321457579365752304665692721060651248147674041050213298735812978032336280696821479904697007204263905082842172300795212633463229613745503406896180460097969162430486928515645797753290260659088828981759948728515785019999723136056370522397543807108423550825928699307275811116126014800508499729784886376214776036589417172676340784125109838847991737920035246179946452626438266020637534849579528167665351948355246043348073506507235386568072821736590425366104302770134443305214607961280621145834291512404841828161514743834933170178184910247100064824250648536968428381307468103605712596254322190843328927006021500965187472816769839549228028482955672709907700863327002300164958395853183771830629485918691554995421632957215608177173923169770294744202002170478250851186265646790342436161325145721908890652345551886606591094485930368775639063459331333414131360495260275181330852422676297098672723310192777026361660410285164174186142680255638225424724721188391787810175109649480202460910830441628887058116601265446042559862835629187621842836197510099838007305667422197441357087481682274534359139801284176982967180123657052544603064137269055296248273578123200129289993745497285210877299986305600133900221269834077056314146920089742964102328748600391406366340642262987157623118707527845986367824329046609909221368172773262071902368889547622949856137689176999697845178235830668779331637912761862983652016627259197345809967815043455188196425298721400349305183271057876253923514292463428211217214081885935256660925338757455221399205397055677949547454617668983269808121751698751400083816683595994245368775146478943485928512322143398256317678723805669642276019844967954105963266805156737329477822691422833580616582025074679401262343160587958402464605374962043688457129508898146329395566556153637285617686218075551059579362859408346852052836504105862521670160914091077900303322962770692771843806230319129572438471539103909234843579738199910309396784639198757086645268341939290499790823970730926834051779364430299702538973848580468034804096480028287034876818995978540669955599715629949045320563264195423974394547250029364344091034347495608987508202989815650379491537445576168046979496350979178228088377260130570496024854852717947775649722036771649106885982601598484405588116282385093452626759714123781249094172471331706975923462253041193763217379233449022534462703881300829546338526713732209355064144281408794465577018320621018569755125844649644546134650921349039620172027354296172766257382982165859996513843991986390909031534311991108371351123280641259557957633057558089159266792469248358095722514180137470741693431132760028414127229454788840228012772683497686474383103162143609379653379634084182836074276993612961130216944936666897853706370301722344072072194576140674358679607340446090875837900458851583481680983485623374038689072828986226038063553351579058441008698208878234347340252519322843528189508202818189889975986536843072926759226499874415771744911993521688801198807516364799135658276264369268509430656283796449331671896760814452057867301845211424472807714928946703622006561547322910262969143164924763227247243802514896273761688466634921353531248032494890049274795573001980119560631874344279223155871076660220970646335597873243196122011484582950111549948307346398076028102890238578899019732296735683531356297290948925293692096987341602659909835959679762867962643884585050402707528955066400492387596042120717556208799988591852643704013878371514177146292398190950455298405937089587937435131205288246855044626215846503869187144571973949951181733131387393695860552904548380945037035251172624294671947916030146516615963132265257237198967469693549955245758361676983349194497708290840076517075021270683841782412964640927175384680565836120337917363966246153765681282485837103306446929406014629830332975239745256556136856122523020068294779901592127970293579604925903960628642405311341934210058428093925152861073423927080472911351144692407930530098450593182789965447337812366616986045914915028441294287971565878512284956020463606940754276736254843114244025904804652289712464581635981576107923092519356890379926106757419745260879632716224599071025105937175757084109276061121892468722366368807520952053403579649087143718171610198989837071754781646015923803278437770704776797496396380259572125865792279908053149101982724291224463503246666745176754238469320166243780411055516411415008304583604991215931055462543298231911543773365561300897538984326803180992826682958327812150671902516771654870921082965460149110127212263438305054600666313357672166111588407782846840207175315119856784817982098286008640136798172660775444558719702367532018591262965323495503154735108653388351123240239819109210210066713851138808169906491928375349143067075937142138741718404658587434493508672535421124296465423067053212173274723403324105035499361144803089548651318111664511900069363799530291919840189138147811042765943869811874782332365649254309196837752834189772188458595939392112703247220490260011143347943015372608409246648811149035161296949801868250889875858681250699956457823596379005184989991124182307466121265184081117077307799004978147012081307235894759743125347355441833694463890356973538550525562483988917718620957707376149540759219695483802360546099913725764394027983777490095012174883522194687158472881998256345301956124786145219692725703606040181336567717733030610762248532216668842450015992082438228413300519797753998419453512669020050030820949483629192532800418859289212280591044260271539147685276786318950449049241944964533517327435350510262706978658300900447127731368302771853626194435722867023842101904551968005351353137576394741843672073969492239653317046970194843890851564301031489960927552603423602868807212076086069254785010053065719956050602990025783190073164960932174760136613927922707591711875953960702563985276191703139151452954218114132512357792928217314821418954011001961039863170609706309326434499524619588935745951440470127213940837771572151152279325601819190880096620027908826535898154225981931124493887972073649011242429806989809425282918249841651882655446186313104807374430728080776696035044040519855534943279629940866898880194923249857956337645055570588468749975358081572799759930038111003253646146049674621147786669691170958369158283222973651802343028297848538423264031145374826760964325091845998368911884578435188368678274371516637761507235899812483850138743049934530322470138868792521378331098155851891795073096784204639979712808268399285422129996949870327135778556416523095029023996188843653637910163429632525396799817219354468627574457053382096937008816495187545062865000888860594336127905279087273972637360764786301043511879159254140546817385022169615066171003778898147818519339637809875297197961723187889059783628636886450878199851643478418848622114972305199167277149833786015241936220074643764332512580863671154388375354718368597807288481151933034144287751536208941204587487158185514426650023194908967295712279287140730354342937305993576354454724664684564863920549259992590521244285511275754560220680489820030232005867814947945753105007626000766022263730651405989332340258071553963761635309465411788885261416846384949623293568211415289176306452306605226492114206102669770929766249434600709278266018377718580805175312595267388549146170924940058619227185164463029311849146233328616753839513125180292277342762255229820867572467347830684600753643127475447408757848484912441969770217574003693371802063353696523033168107304809255917310798084568665909214283783282434893967783282125796119194388571811758769817379085326779816168465640836334663946848974051756203111016777777527604063761294515211687555406980559813830562452792177782665437775859509512062461674024913069165569495199442923549330893052168194785405801968535417331641969947635258848695841297564621795164001554343406645458585329007921079847547977558652634863783073489536860636549718789965628277674891000557675975169585736116885438757330425572031054376686542020913974157041561774387454027225387174690623646204741509716983857543664012698537046209242990900641243259923082869875940321354444708846591965909540174967078157153300120387140833888160539607931838598795736969298594109091241360734794392236385270463238131410141239358481389121140053226433601075209137110945667572680493262530159371522985377741265118741801679253188089706106513747054078053069557924950589140900974629193779099578713761662846357088172967489661800811703841258727179330729944911741002764893607149250188836583999266765596652166616935772485358993400404285977209727671808171608811938586879006042881377244472256903402641523214683923045971669263588681976107826126786664879471414886214275422072784712494571179751635156266910073630110556349411645238676021621041873958038649886869247732949506186563009962325462611303793067757941724185882156353092884544544863351274984593835753041960017296168478578435365765467856505249062028834049993047858937451065628468025782662974500847316473432540691150518243391771827060302542494961511244125115782258762567876804200422872047127178078693414568899839843358495212820869243134129998220220063611120568212141595127353072260685294054478972406895135562808088013892438951309728343817534425695585691229817372229821093463308923363912639849778968198551436348085269660506141167384473544073999471123464086497869151616921017856712147050866043435563951835698943275501678344681095722673017035912569047997315976895604248583810892833273852356894393633564317529081348401688368163411167001733794012712854759876370052232955109639532594293692959595600204098409004847898132948768806365554020842427017941948914745793089032327629927594240238419376030300682199201954972691045962979846728261751597318951801486448136217500719945109280156799381433164565837509055259095561223544966959239682157369039893294033687530883593588537542436687714693517617414359747579337598605134460768214097155153201941177006007030666559553416319597974214572039488271706763139931409803155172047164336233285427576156937835089231072704150232377313102991252231139661576336741229109718822887747260054479877276982946628788945122202143546110136480498035821436434560639087139855361132880818001244424434678906504845577248904581015559972896404584209556393220156310513346219520258430479425197895017852275043366325818237757046253486308967285033728100752092711991978240240156826802754201713248145069544170776278216646765253732422008181949363458076385328216218194517680697322142326812318862564387614689140703708665200255924852537804579161767012015318762925004883437140774459891170695348688813571325259958582692752886364420772467388326991740570384769658209545392430812515001751621322206643502319518180864167803471435686533992715982210953511349899534584137401623960249026550358020270061774256283936874765296072665573067547918350398129627048564293748856779885519869289039307078451817323665736401911517895292051361898211740172316577473138012228234272099459685440844886587025767202934379452161546318740840768474304474480648726372147884824456270278152698370565634762691352881852602921277382266451339518878583844479712391271695405403606079081138721458527041777465826567974059651351405893400556562552647302989235530183902322435242095877915666573251552943650395742902397070376263613986001305625077725971678109244150627318172066780324313585618977775337399702997078075503241353560917175139595908278401454650320733373447246694861368240239382011717577501556660236048680857871380649811019122217579950866846971528044226666168105211443435064576566835447704592795265295373559901530743102574418495535865623586763585583148494665970854307436654115677767608000025527677988930275887037807682153692725842945301396103209569506018054708185158349000073349416133004038241619828601608845404075584572165752861282641532437267366065191826652345405154478155225473912717637731866960569601974840109215709579048314817748677189752696325614985964354390751073516113454851713983440678450194202341210689137850521019474190588588533060593114730321162010245019891203566178672702758670960658251522815946161790380142228853365531687823769773958853549433570836328998971142629469404322007244831478577076259312688379817809654116597982238396146661988336481230669345640126026937190239614235425679106196489394185386111098648044567570001890892687878056341598511543970501331075865244502920728310974898332309030906857401434194869955937201430418901145223441702109024933961510315697719737214577450095338165150123144814329711819696538095271972104629602251790529628693515479657229266660441640366352703921858880176415236296031717933667403090079222621529719669016244526123887798845942319011156460835161341412952324382699681738590129343050295685655620848718143686868436903236474193538637848406116639259096368942802963094234932132829465205950241550576637846375542267045232025679959475248437071335545568045928419703603505320853077303662172432720334556616215045247814540509080872056911283939793640817030940436912605738023231926372301334079103429443584564555812678595322113193867832493240427853869421136075274963955442083634160882272666196343628910680793156687120804236301145973433048836153391100404989265519515970085480291795774721190405957696361792820221374936195809820113911760903398485252617276303858395799727645650079289906805244165851489225147685391362340779809429016864923149307350935560913894784587160313724922668527350049730358618923177504683329950192434853219761354670903803973826802038586672031019806291526939062158317077890338040206866574325403224695610316676594306110182533805831036071263984694497166389641509971037677308706773474374191403264942224832291051546482317501497409450416027333468513900227716979129879755023578745341461779609522483253306790578146525542520090018270325692629840475219535489483047292240311390211921436231137857548885802590113638501579439960618117416874388140112208624052147550059671205718146081281883098356488536614835737101839047325608056587484222153094082752213190129274709639491688393219661930146032503947758100275540670447170906740130942429855599272532915681242490079983078026926935475041422376325747381367717703439462508479279804942449719430237211670785618763796250993115286584945236402847315108231025484137646481113580701173481642838185278706712869982198265360961098401463436139329366506021207102285507744612719867761054204340244838603082470477356047147959320581984889507027660680311803747166993019868722329758153923136672726825294055935026029522223364258734989267402582410794920484517943768853573672233158850457129488980526230047006819149904219995949870091519177398314351720337279918824863087925760982006940080930356638154317734689265345380045415661105100392178845346504840285385381864749478028777216243209630282874945537134243315416047516181146239644038438483354215331030849990575559710732100107116710208249774841558848864701358521369017155104085236469603354007800950744968096829225768288437188359633641630479450911090898663923516300669920989897417221789011658369491321871013610430303235689416542593963064360741667688893361571277157987865225410150178021298457789876126522820330130391945438259834644378038279082236525375043928587164888655310501021805091203244413468958489879845897638733457976540676634006119471273824787935107022684841158189359834819518134799720179714593411440923191365252275409021813030676194445670164364616344007816848604461697226526236644890950232248886274125926349267629500618558730807849643067930079075009202346870347365729016540595638385744470846986248039207153036961304775457625035789433938573829268181719768415350761758735955938465462353449459233684938451803267168641553028930208663083489668743890349310937360738261867323487322658443188344770279872004958630300914292108962382096584668678155935507153558600610882343669079405072404023401958634806243031290248626373016581110525162313149396488585569183624357068996690627018495475680663532243685510592254099388890052850624124772013268484570331342776182349356293132058600114670142955774800187852363635584132893911506162515787414079963322656359882766210614935075637874576362409340768344260352871793081931783207525147815794015185098578786006908187124876915569943331825206086062606601585707325148837282897657615742405428841180712669284435659159043740415702374526242124930439217494015028745271342567891491640359519778373141279379893879025524622432950969964484632091405295381158461242699735653407074455967893203193109926926894128625745210270887105404521433851314490268003368404318834522841805351662997947014729345608326866181503797310695332469857369217102348258073302041288427180898288766970493012631953017271891931069147190063484673003650911075467873190818494065827032475910495065814365535171638229663648926505808708294368887982835858615916356660851707220457974505299671628586383249585834519073854258084607862889021938247903415296053217245164982492480656590930646308521477119871532584593429702601604463656719382244088767205307472967998870515263477626729657019802195776545491375370916304151045372822770223886971814641098420556822482744147585969136295234722843888983156551768641935043406226417607295438903434006009928232109265726110532367272822659140465897979179254341214223940770916512357141778215572078527718492960608928075035592346305167991827446299440493299139704032021678446152161031567592291043323208744358373739886098868258760648659041450289866745628454221062053606335358612702800458888499902076287879404482239408547308728527111255251184540949914279627568285049820965535483648767176524644192358217847294775135933506833202073630034413210983348915636892267599159137263149470748320122673386401735101549588411614495402717619487404436953329621888827598742857899932166864469194379832857771440467898424880069403098478301195256094607780008541307263218097537652716939383428652581064300063256337870774861726091613929669312365609039890230502224907995196655680506319648828282476657810074397309701397970018388060908360032218399552208515951185728274524529465301232464809860593207780944754220709500522452691800230293945958503876007769400895702937379301951747406179675533615468693787084831410755773240398841804455424421708462904987195484336302461167005896762217239621417699828044389453444767092813014260332720705514590633412689839661360550536137214900357547375183981470370394027435895259774987419988337157041315287158921134474487463233481042270679605344185365423385828378089553147934829476230787499786473453540906766395975263952612001160614543810987616371469458931462842059797061665831953370386741907854936022965020633592106376072820040724582304301545523910874632880480929642434507554482112547632186726585008642216610186027021331958930120218371024249697705570025592483758495841100504838185516173714439884526712509670471041518271382726123165816820399257183641491143333191040727583593056018866155311339542806389788198552439942335227970217602589932810081943565905365732923475101061314382623563061782855217551511358165398784812472733772014555291782981895133310338193353836214444673156811737079826234801981008223137308709599943006780187841690801430936109092114271466672729948657476177981864533521897780126974761830108080331008481200772101395813023850739218543569218798573742243984131725027246680054274456488810356050685931050526296678342876254093336770658612317619207835108793256642146704936201657132806425705392097918211378860717071097215493853855002598925895745874234757772742331435153722956914218033513016363587574310728648195601354333162907098815050941380798291888764157370333906035825264360694170042833220892521291085843136987785831232895357526881604374111398881857408664925072513625330485430177550301989995940388716407468239037174509779465924032937133379580490005947116589040150676513777901944757869226998672207222529077196035438238087008366096898472211814042037007457357668619200605955378960289128938238205525024093505565679375734490447659685761489366790660710537140497632362191856436358859048955987982530171603205750192350461984708555906756841955051288744212053820697678867179371990089745057317472913497668588784341895927748486960327800285255220451466946283144271034925164726044790266004896678712165672255740847058108234705055630235498486749955620684078616217650215496093632878079605055701072891770574960457109449110312639315089745078112434463864308581476740948646077903709523881351396745736393331782201860457083229378738871169133751687156142558454670314046748750762374983107344077141287621527980642614572931873101739323346669834909377342601547122522267012058942669069694705533018499738019383699265926415388569276716014667897174758235646597850091856794473771942745201596245963528563488189143782981883162598472545440442324132496307022704120717178705855118076521569317851273297639391341947296486875342658354649802529850705813923162038297839221519436586090123659742222455242551009284283570224773177760912575512834138974745780299702723232288091968619266647474461266990877880015874243402847959654776464683377197922885848442209492376119636409386794740212970108911863380038546301050858337015379718324674252529543171166511035750470073960251553086156553464619305659561221654620213114092541723002369288173317723508953445751925540161882620498408664954351128503906451562595900639049885211469615051033816326654520566175977776942459325945709203023825401005297299967568509423604452229350080671623620002912577779377744488832088868411859062169483955200640454643235703635010813802520545728429985080779045080875824686063916378681665410195659528704951385232228950626664406199181257480816474870357658114224718355217416441978968860504510486181910520575692601108695224589875711111644849762856218392573419402296183052638189802524073275058928873794248846061659967865304810782150377982511853191114870401699688939100445463515844045834699108947293622906819392275436195108451692382330388133406540260349682003309388889626713904449922653601644871937991570134375023688044879464044430352147307683179124433947029367998382855036524689580739954978476109568482654633178641961160727182983193851768363213513911842950010436174322672958376202543995656877132571519640292285747827019390804643491037933267101203994275382401361713362717945716416623535631803780313606322494522509616325105353768130546734552433211648496508666549275817836420781071338795917912621861664244124374073121120318917522504563330343787935918653432110233820862113324688108413997250832816041045461865756571355611770082295009959958950546450302655717942282838998368986257389536808923700171363326781096815444886165009645244636669692828547770242676639784865530369954577266003872227309688427008073895549479418739043511291352664426537946688189328836037298004248172435649805494501223414879304958824649642463776516153767672922942593126016977539775550004123912561741730121017885843928989197171887144660976433710611068745680057526502063173370512714072401053925949068000258851805504892344596954548148088747372386052351882859259374872689871302151891053902889046889764521013391171699230131118749747912227162016477798394502378389103539271435446104584426826079213243786880430400862776405789780464593210593452577552168825500755846868239545212244949040090588217241343016853173908471307608730596274233082814595667322406729187336086471272846946071976853701805917442456580440000925176378283063155491871838012928018102692416306750091158923017274628020613354091399184659866236780985280177574508339750960112235502911204781212232623281017538996109732763253831165421467527615978809980867424498807360889566408750154768862203505330740862036254400921788746620282309095162764859554373387140766844711437728990337526655909017844455658870742218787542714190831358588523087494392456888934938011302417418218938197670616798001168731603047552140738366561724421890185821999720122422053148414532884637774479398320524237288732097753592663051032630347511820771435131373565477947938594365185560270058749260526536913886654216031945923629384720883520922292680060085724470099310228529325113841653309698951928776867025806525703822650408001128039428081873591039224169452250647800015239705201486608245324560621959675509841561415929431610159957672195859897130561767678720160911505050673967170023528403999082833170092921497673703086811680554045454136414168199393113690509728419650376996548103477611697559457674120262915274802645890782635968347796591138620193226938580974409201778901662031191532170425405277254934065045403727077683316774683674876673119374144243588361156411272032983055824951379610316944501775733638128188261025716342505347668807509287803825771657801830695539716822029929591872430565826054102358437145612834234856128616010456377131413007586647212521986176526475224432087934852343910589881282859689183435535699899098303327456971345978580100054364014691674858420155721405706815957086350202986089365319733402187923407389626868021940292924485231555591738317365531866471742289697235197037962650134607352655217137541127738141663884386791968488244303385868866700154878017346330315853270717316122277717876109316689650087943056314102257170525331829569751505766046502356046959419350468761580568874122213539859595725869953007239211193544121318980414267043361255788909627274339182324021248893258280375710240839427142896471862504483966749743932953608926974351046868003753535072283388001727468356596517280157624868955451736993488543225322325325082297555230020676969732155236715198781867625210066839723669873338307357579966038014284495047108050140170992158204493287196852213641757641434407026164504772391219330837744542406058866168360404690555522183263050207376613238723254972344658573549207060071110561658322394890311099505109103648777737247420740515184637580440335873762137464808031149745342309255327868723830237648146551282358604303931476947505792475785874541545637325337123033903191697594955150658441217751273907880069105238310007182812247055278404470909645402605640037783022888822890872491788309393928808273189739086350570172195004485808708996287994378693683398652559184972190072719244515966309925638658630867079855371706541682313488949024292796027471488795084422240289919198475963769156888996327151409344355183338973985793129306985794892842589274583056087065655457809968980048455940797473171390190967119233109605378123753712483810077324664908197088339889132439627537065455283815402554863245845044305982248870420946930362612994003221208334459398959985098017323209922916604228517245138673127057356608709678178405674317704084614072775688335949636553571199606903721911269189782384661903188793570327933574957196848996217924745070061066733440819221463139691988917473840571332670376811855538214598518676945022898902359481234712283285699733298024659014159097375958425948273566514737965012324463385504637971896382906683819357906883970877269644543820250197538067044019244277328224951846006902134363979563271394179744303486234809384413175975606587262323156800800498220712977793794558426985453240623459231036291381957368927147113071309561618178715225997314525537062190090451881856297870293782148182636004602419195713989061180825678252784488128637517955748031360605018996773473117045162450182807513038057341401058487732129527448006929870163914494952747397404304072983134942368790163366967507505800585575312126254484187972630754565991430534892279201794939278120720804973198787951223440216439451505778384883999831635721534997776936031287226015898537340456917262346430214582302672575748878839910462596690864343421197870952151175649649445183441372474475770292344300465623727586382511019830192852004796298773945247246142568767880766660473773010921433371569762418766297781758707754071785963132437517691788977465522735992033128109195721063554416557238635799440095931886174870873520551873269686243421902651436536177190756833690009947854411998569739420108776598300180881241611870708005284150313636834422629051262281536422003831856091132985347321989515023919365740890781434320053334208063947406461057239951654569519684021495888228333923621997667974972864658040132248800482687771603841424393210238677739453725640299412160288065185845061908669169485253347167108632081398866619794079103093833635390099885013093866045793630665909967099290447839514704944960831159637061155097012444489708473548398133462058295940488285973574923864474047778240178463182485051413735442807934018154039934189122142264088394095473383951823582911701590090833367777427575120075993697736621562003209378062624781620795843318832673435651995698173981721041358973380968418396832799689463645166946399953865785418656651134493922578218996338939659154591112834453292397547728052812506067326004680194228784132338472176810871933713305089113295376696021080845655989464629897233866960772657043250293342522330530822472347227259452699633138268577589639219929034807213702014201439501794552755386396360860536131242393814454502008939615727194628882079105678815170089515147048354823893387692393967999933197126010397418133281243821996323582659946687164456503116004939182887946479826702928794041701832513482390148921949385709468199434018294213198304736114614372149224561275444153000331456869049165101516157076016985206346820028825870408214733172174087839042829834902246340378224962041602536388445807417206562302275420787240093158305368252413850610251729040153763120070932294596304241579673874476505118211163692914107188312040749525575102573654753089926634013904347974796466434439301678218330750430727610550877871085556634282815996597137143474375540119783243247754842560927962802682945106893721746993176294299448338408293508546377845393113615377456765968390035048527950550574507266903130297615713824967205022877085429408245463156853054100861193971151099190928774198421414807316816628739573494554841364500611424461982289523453282621645782551185003419979640300896180522593544459857351291128451288082636699345762611205766659541456838478313830631385497190499930147921947822840719084842866975652665727536825883294639029249972212208003139823687976731818271644802237937494747234481518637904393245771219347680562876988057993279500226533949504838949555910345378565383927675849726689052739540240462868715620150175006919952475227361892517511704011185372486287303643828613594498942954646387646045877620162875514001277143535596926875359462724331323766365348316420081532124436215554734999955348574515708931311435291675577283961019884878440181897640642036043771991280514051559101588795649400241512843485232699835022331767653305586899372456172912632724311244770765789846937140579063826478232719196718173085813723897280972296797528469945408139337805944122535555895915104560705073289806484124354427720179189952601565299117961513774352581683703557730999742043465165425823403335073301904439134827899131801380280000980962412328651474425897445043947182847239549792152926477738302993137836668500073734063375430276803059286179480789344353130523184680593949365928628915212253012254975720766275354274694410435554021263509795401173952698265190937929401012717540577455602392185666810420746063009695590103896030062139778791387493313672765422410098823721313967339867044386406635440629349911023114803693894797670775694051655415651464997502405863024709283843678953404994572121961005724675324484257332195182332191346442425721233707122510215523913695476854634282987387109525438850884586671688426053923068096473535986214020319316837930874279441778117978273432005516095381910040007698153110917877837432256268871295918054851544136563085963795814249935333393634340641912758702876114179476281906291553232159004849837573063665008396165738490166932593486959605044216964890659408578152468414907426422026632222922424296876795520413491197667029629296032054060110450379015602152524833806502715596495308167277887975549467019128584098136309630128370108516510071052378393015889596441811207175909079065148170138513783393088073175997558283738664840229640739390709406167215994885871545291972925725974849515157101891630885885566490430694739685561952012386405065380481779401603479837877749306537125099174302385382448865113367926148007318699527665425144488378372607092418043487138301379935951194264839005827047072995665435492587346011780899418780990581696172128685296748373607649247776677899772875743084687668402873132544868605284120362101909578316344181899085982549483698003211361489927867698345257059456802572629854770177857919823519301086254653938688647774295156530507453535203221489729416023795603740177331892425875340806189362763209414140625617168763941505454819413129027365488832482219729974137894773739350871768014797170169101761514939670629950349315323584847459119063867971425431043711105820819002676295563250305700478763716103312844781286279304886711255460104903334171009036376274533703901321838591687551508631129382552776106690935321688149427393990820331877530310071260475643782830069679670922322009114120167858926612918826213949734009430196751339713040473164352465982286920279000996432426322029958985735962497834210646815710237083259874023197214460933397670967319972413071987991668528623029008943317875668519337508028503103753533291464502175552482107576635468636734413415514931125060819487631464683240149981257262898838834972327186914236435788806681443888204018673739146289577413460635597148713744939864409959149986400285004585270980780452686932865954454518638371912405149087262962416980284827072916185729999987357776427856253965995964782600315031955679503630793587126838783071818373590073994345191178852805526591201003594518566195874315987199092765561998516009931539961874464302800975257851509224277699560357389411766389531018497228839175799230704482611055604108068668793827315158646762156574798759244106010762725828008465359543282050047481943045389389841063341651024569229122705922998256611901363145459457241617579197102415433587362403525085657393170515598967969931488084693623886501900288295789723399018286457528542119963542737744644917886880658878965167145512480396394569388620822530997759430857862401630233642670325645078182993713150452895208594316472165604278928275375841406576235155457837933640752491424402231505505271413876398003595602171490289722333182707872957694024046921457190991894125854000964456145569403651292306940676207263028319125180880138350066201796839684931726793834593633760720826190399802944836559510383434546767836276450749805137752153570040397560107710510977495288098920469262702234633559169445437793339931600370164134606358579084208142676176691051987794400216543574956074907147000049234896176129490881138200342712087976602181442695866076908927781643744567158233484051498903709609141071196288571060646828412706338433339625244077000447491553222874927076716803475349014794118290803256831275319144643247348359368481307531868420902718785480349395846086451465382861204207128077551235575207660070905156152189464202316451193045494034732307303807759833132379380535378389549502017613137066137299985449855109093661817971815402001493666209144361597547878816940523718742736008954490308883082026725727878116659325098306318469364410742667873068066655388763807610903573352540383551404205962360692415411929524305839606499688167920426169336248393717110279014168942867323386875159332446623399746797239766623781520346829797378230853725992291260898953437982011501264832661008748485695501736672716549272241072327353498389872525481728722901001445771099575378347738245105919384974028217265005454618656222351065789363057774294247012443535730672782840192553222740895282219598260994663923235756821988389806561017155024913105248621384958318117397039054957262849834604444063812828826562133674985160081011003167797981094738804265436092576412216861321595704420989308262266948203538661683214511908792719705213196823243677764056274072478009706198327372569738290055049334435650292501519714217973942613668087777586066994294927485928319205665708442587482587684126557625082091999335507964287304515586581625853196068070725765710439097856791944991324035668486064137413723488118486855478857582335733042310103997567593194298435742224911718641972643406917794676684934135021349547678755076993705542111663004218741260640588754019781904153080862660240684979188126948840551558153079720326191229083748587782151677986388939726436713639829496183017045963109057344481123310055064278394026661864288515707727208200891712564409326351459827345408482699455833915178026464324161700573818798264087394574207238965600300207356849560393955399787415924993726960268748964791988753187065826519338944567039165601847952395200543661488860783992023231816662713397943926948831899218817182842027491415575566883671704658401223069496155878614817359094376689936566840954733601864479642772639363107250718242570337880355939491991045505477012974117858841429209686327982872599777320005391483748707968594450371325838002752961251550597842582329145699431803326409595232612346387538666220637015533792572227265222894261659712943044215156544920495347008042985926331068216583927784336635426608932844892388724714079416503515793933592246908064535068146822733483057426540697142319852655013368479423709390016141822782594606950450218082302443198482808117488406738955544524920049682290539689758927416738098162894935923346520093417168136045299075196581473366335346964119612704488595198656692375227113049088223605011054445749188787987442620615693076306830925359399338161384984657626670653063559787138515252826212503431359853543725917065914147259687448075244833578114671805426740821605388933329383642133914534445883619789246911866452851695311108619274263265353309471880005963717707921091192828929545540532024943471167068692302440059813844622216592238559875631310347750143623731907293076087798505662575205635837288872774115371891811787313670488307832312157811206452708827457233165617499263196816813507650421973840074799494721616003503827531639814275452372189785913492003711400796443288918494186747506695678278296246891282289215725476275000458866993217233914483762045444314410228031331265586499202849739594756123064173468690983470441112646040395054880226516480378455845566677163930374316105478101600583318203634394751180393559799050517494296918353410540345243332397891732571045904641947604327944410350518946169079137473787980580230225764560060595682152288332053671357978161059952451142263138996773157924711803706152187138672246613445563718977574911612394533052037992579474801194655675219800619364423952273202936748132648794597184253911078841669134404551728901132054496551532197615833948224418112931400220861389420435912747766879045267338122786556541806951692458927394975656409471611020919256162471682946347322325849869191783745641338953284132402956556137967791529181997898579282367547265666305021560846563399174158114986278268939091944039937336303741944948290737209275600969720345029671782890531151142244668459811280858815975335847714850461998324011978157432453484705538226905633573638921445821702744532647934578480139380899816344582156846665898201136634051493525306748229054643901448259671904363464824621488108183902288863107298990890439869778063540728787960614130360348862667626329796061308840158014073094666019659901564729222437402913241047031953518045202021391706928982581238407399508430064340113878622131913416354279303668445661392649317865323753712500318822219709673808625961129421298100379724302250322501234263273140937335226242954200285657391970817964271639567613517890680678996692825579975095142738750409676469855503392817102362712246925805403726668887815977310422161422774062938514666314097845895180512893327744828729313077538355538922805676256297794618182750616826835893629460214085030149548751516194122872754918724478467846231234095308804595501628495114039654469690885787950546700160135762129674675740793783244202619518512455610846135530106342953590311902889389402019047251354433623077998430426679660296713966327098379194829305897408614993787019890666768342238706796326131642837259293427876409421832316192739456257488612062441597013801745646391235566067959133453314001263450696579065571245888068152966026405154362075937206878293809189459918559887368558073193840532162223588990615698160639381966330466319105866431535667266064364429447937091482335805951730398343611551134823322777216373783407037702330556857538697132217513105843274735451561213463569923321308962607141541182401132314506086108224611608194134955402566120560215735495670715229993261094345514257416736722820925484477294781438812175230782255821698953242039341087682412459588845498220257637100017421848738480723376900096181071807848001554465055770303339172623653931567213344120039569619855177622043939240282028099914149354491103318563415162553882904967572076163305367903456678886580616129847936621485086690518004847649111561292510028701897584700109491591840002317896118388732583067600787586273111299627295757001160813403950663192809302320401053593196252238797123937488240804806521916978978416404094109514720517557943282287863446522214839864095996419110320472020008590835430230218318490977833838909104331736747205875095963095791634673609264521723830143658509202887782555777292777816030847114112140087693699071899517796311299678472042990296211553285959041345444293263962084219903440998337034033828665894037619066236499698251378120111858089048212631093883750213680230962327152988549711707739970728965780638093802699258164008106744992618649374696610374713394970100301783313271649925477044159382156713822285284907154629341916006862335155554573018091838818326824276978192013012732375771184601235943379241895591041256660443852084868019305336946548180307129908374280580504469635353105689076533750146973997868130179513737101651111950550352231868590177481305700565695910388266494804572478765466824138063271833826834213357279729353465841065147330503180868127499793834742068956439985592793759149561050384861815987734204565267857532428245542518265073852394167730256980909681751450400204139966175604261454051510935140863912090749652222768384275339028721761555330622393691747457460053873340150299455652484078776798601256225444055911521370980280565891980576037966981264436195755741170434991173316052960117830760872100554822170561952285723414538083326729046254112900315288974557237138736465244660796760733462994088783507509805291251975070461570899937287990857062487227534235116274450749790147707908720391165024490996911467139284605723603240912418731887902291744393471590261613073421121869721942685175169345546394980417604990802403257469212726521053979285851817185057295380368781434866973313290709232786791889183681983703774518856201954935282400206813782289933714314444197464030151725446748119847116444059767453253376666779391387246898509467827568096409401833973600220084418152345845580544285844706300088766877701956470378721190329927243623337414842249629198495624571527814454476495222084398902020548039136596499410015281917495343047726271591228153526438295524175726285186072116958182647215399043272985276998019756730711361866605140503498892866111613072659996405192535654624861567300155956927680115680752781974755057176107522618129898145998467418005610214467361135082119649928006945350973365491081528510568288535004211094119146602696184503115388054521365955511802240891278059902511874574693557774007297051146032735836837388571299888142140450350726797981254374679063710181654592656762289344491806988670538808207240171227316805198631553696253769867675496867972846633544738461403554780310277631729559334378466090528717146011861587826308090514167570205224417629727819781342035059888004955334826903842785482621778136453172412588409329932260920537428461714955033159732358080794890403786190767397165113077911873092068584206960158864190325662710758810804150379051619998870805948551951361653933937739454922236630436663598100612031743822626594048922358121718537009660224278527077968654422657245705471861400271934011095907700333620179114294154575075583050356083158870929409214276459596066627276958655371161952789468461127660636994793766806104957748736534971078881095035167297507045783769778994913087557921940568455176207235304892676951062518084777753384592572935276802136832045106717746667685353182325606889458572924330185719788344735338705543718664393598538130667927973059594078095592157541634251970297616323741268758550694444793361943325756146698951621397990858488465831843471067690388961609217768026007227146068495268503683619334164960197130153139068454937098770835984957070708074223116981179602317920809624664026276720972209417258347732359893181777735438764357516825472329149373560169778630318734587391329521598272165655228926321906077624572582969689247374584841946922820032582643668899097556651716690918335548464200595667609726225049055652711511622151105562774496003311177179014527168401065517633284696786770685320802896429514327247720815529591923603279268050796822161225223201786631477248294886485872588757757271101081492735968259192685844436022880743345491968747188607029110225095880981817230796483528506747424317422689537219939532829004952312548432400901853784924845602513630005326448933565992888613929672684692922696984378092279308978068173440109693498587445582915112558727012695200885132654642463427815257969124066803950600272792938723836313751556489459540447587773301978292592868446338635421264798797849269510840085512853197404043077809959014407541741469341363444587858652222388548170389759457246512639131423246790343888410864573936618038140750354925078396166032303155701162441802105241619107699051327870301710336840278331254984051092727552355776816887684021264891120947835013059187222026197788412685113068604329728328233448120054929982744595431952824258742968552486653555881908976541052158197753435878675355210826914378240655839590426300081758071583268848024694243093412378942753279430365781272153978536662422567411226635192018597446961707576151733937515680866291764140311336054970504170225171043382864562663813056381451044785634152763195663751625895020259297357423604514685540931148217555333791750059972453488328986714981082219123381508533100618135785782611151582339361974579182298142776906350498093765526516232694464373947491496428347424134401864140554011277025003301207922944194844166944534565842068915597807090999166911635698101903525170536210683147590920342429981964172119398046829658599110174569686656832696162259715930189691700696226138741031967726489384060372088772330764899365988287036859402908812599100876623756536301819216577783875823368100944529014408932573319803983188829934636582804552596558854500215490489614016925405645534719964839023235595952112572559946592360897900942708343804165369645129031486566424383185472804273940902719585572883637618675100913571415023685675768010555455924758638959069252200602552737503513027851871909346356947895250187050075493594789578180583990568773997214490471259877040543626165714645525380534133068680278192135877243942223989160353054526403239433481153900518553164597339472101374064893955184615525481729669569495495704125506440830663010109354401177345779570885595404432847502849265216000050125829492802440979939401317817169178952910127015459762325321426774666921776111201490849793707678079044579301034077671474321754582597454240859254489345412156111795471060202581303450443173813151785788533862666752731397617121380862700554055126961106644649898347983112060399974660221707080227905763471526488256688623435506488404942842231800339182635305810942821709293757067915733016037613714539403014075845612497340176522192310233881579296108210686475701140379755512747445436264334967636004419044451268907923529280878681460176140134843545133959539963438054238300036938860537581690030958603320158340568325677087184795766573352985536424509784329476499103513712185004654639432654545897131289030831753119613224805371455297919030363214448045383548012939278412235225356368900640748283064373535448967881704272219326167208761232894541452998392951404602717748188224270758254810518122699210035225025994458775146175687343120759187295043325939251364071862117099611870956908633290149756351951135646637470191478660177396705830497259836472617916325092904349423577304221086706142223831030753895379437739734737819307902640452992680855469584737493127691115809223811367927162487880272046303770976203239793248639027384781451143850297527537970194438630019754454702563657324568567733066196802352319838145212133543253689272175163548234877922768456513793668403549245791902004232708562662111027009938517532609789791217547966323911810315618753368866531444205337764726621048415263623879010345141197359764768955393919317604201939065843353722969001936207501721112441046528176605958037796568004415141498072262257384522313131913804422342899080079442004615474366110617289462305570025184704643807414783826256561397908288592564127769567872711248256946043230148679757656833132150069051414819706034314978714550964300270821584759716943429032908645332670637014686243643997774641065522059485129543676956474028795642957122035007181897991675631710254134255470246379898766643187124359419420822187928153710115989725630373784451009443835498448193340042376219459278147092164949767367260703592545837847803480331669138678118870599264272643170443691225688219928994138468278979532633745144781905948180466439834494128958127383552052810961681370061624942074968364146030638565012296448430732450036344984936471772721312063754025152645979664635913026246692160117921468096011433272153502272312918479055006776210932711551616800023580673301732616548213416403498413463108757358474319337377866285721461087521474142181041949037508098295336997665797992608338112019443543129372847113533408812319166414382214648587491960807495832645197431268618795619525621192806818261800707020487252710131208196238232692045884411924460784967264350225759865682783433441432005346700155978430517538793012285252388660880511175761339007867640317645457766994989927983874741272160199865805239977933321500404754550280673158135662861783175194955212241058012667777028911008294959960044813954515734305674849262906583469591850274343990923831733344624035218307989810047470366494741290768598251302574211348752914688637393015886577269786751862327140636020897792574889316774741525426917168625572092981709527800109955316708799213106565971469270097826883258849823050568128087391120070245936526558550695383589154228450967853592373590791135681654546321258195995426831850577813857485463396480489978701506239446238833632191285331715312345280926533173387067967285298360765072721647984339095303552658960218289239984557199147574108294346266225838777585378331554750669637124051375931802386806764234686253101234742543844382646597293928023008134408077487918199393894069768490316440092110511157286551111341371062095178578378121737819112009342124221464539199786200468384887809979179463568751117635291510100077663850703384481842263551062718332228939801743409857319556579280578090351373569469426527499934532586079204727830696010570930836412971611325898369598062020440768972409119766242133925390037907237120129694717498622778622451167386928188762741392780129587975079035824935829691141467648059473122536054751911363334035715414675059723895984485562579704951630259592920810620622594245966679494753931868399358887581310814598242661569123639354670995636839476607331081412559098084043001103562087815855883930419252024510184534028363447747145026955913454795491717421806356723451926845284914257031899708200869172727589404573932243690578049125226280625255654641241522501821027451302170050409111176752336461088001941372646706434327598638831497814902249397841490644791723197665956294149128376593506914844864206210053097785894123578778501943948381566085258788194274253389176342424989265746744159042136523089756248298185065837690014054628497317711309921632158022703177166533991720432270796295940439843806468539598577846999974674228359622445652578082480060330036569443135634525277556947571008601254692882903878342966265128778164329255085264665511286243477152909469332770328702866970519330933087129384797730935551089736056078228319157338890747181282959860570434469696414531346214496445687426470712591687684423193895152984487041173579333396738507791834806065004827862418092222914474737386467395979117891472073124489225799670719674901261254089816749003746477213144971496784960812479266244096409183283922566809948337820066034509196140945552450099144609682614886029553931200531337339730421558837054827535808348538832794657108117457274239726001090181953686676653335305601244211317187320353548849177108051773273801254966718782268548071984985524433905459027245257840160617938037296963151174253807449151142607314068378185235701291122165415136470866524080587036744615840071303760099485650174358038505780144571204296076124345746248700270484905935556520599118135420408296016710862427047726613381939373137105182992348706598870622921668519006315224445781552394902954943329833722007599426060590933225293757987268999249066265247634331347160710364270623344813735423818591421120540234019063871496083263853145656969069507734455221485601811876381716736107743435873004272546671012078399230650902150168193434701937076134024416818267186050235091784882261376910509895730933793117067671037439754501822420809268295823166342001554080069382059116821483683384047539997193613732178117729053465446471793880106954963668327034085708251999210809764169389349619783769807268489027407785175693859082690764289615417598929418419786531896801497252711939589259694809928125708064547446016480661615459582054707095423013609943914905556360686524527517098196548413920838405613929584427149977316432629672645779556920109326456111849936086467453315608288591172158254833924324179134766516513185023493296684938969556986770556908946229598939436238992173200232487229543125874368612003685510354344010154792668464514887361910650430814449336769708877187278267187220382834400194336156710899552947024711111615838157926561282527705781871522838931778584956814519233619704973456103047723023932903099576225462487007761931868829357294027464953312307937006791243555822640501154733049015473152622101882173774146304331167953187980761082676439009397676596843399600354715427068385097751846868716845258107266318381557883667671578785094318594285416003373282851290962943979580052069098911805538944907456043353182642804925426916508795771232739180516989812991876672141494242285265070343571503424199466134606445282151174043128380890996121116117587005044222009044854158680273094482557788033222992180287823444444659113817765630062499123099857363901658634551382789753161698495221697179179850338410585147987866750783551392367075102115169658770352801214848032316264494074176516617846883522478735390988562578121875191664803803652044735386987849409339031072268976345412217301044942859439607873112377353530997690951483855961257186175291332018033497557745016405705321802807269795554741224751952214901088585827680319685932581046508658458912380483046224150991991669513610809087611182455610682954774649123745170453883496389679440701490536375472633157235575914966790390572663919448548357388952941305271415262750917459565884222318588035280363266891762817658947466083030489292108175679070346712808002610055047570505058337539440150739714189451838909891842695196917750889615924105668225145666484953873398590620098147931664651495301410711466954240013732827394902354437200149756324358533880484672203237300353416864250553506121309712162895795473656747899894245024907189844587424871737923164998356707906982013084290060760171110709512515989016833413671985523986413240383731209234913501006181590250962732718357026879858627009009918502355832004652018356135693521720428228013657452045890331624040462987910220371175218815497057434240643416899225475062202899339177899359247267939771769538820137023248463320889128725369802693678886909962275340563306140357345969512222741844907155924442756472328795365029423832504045215727337477880692220573726834291716185673683378987947553117911080142545141789387235478845274603335414544804278305702387520738120339273072327890431500998205690139723029581050816804036275424432246092076028144464845088707548454730212103911153223985037287563275005977619047446780681802930800847617186666463835761462722033342906761581743540029168363798090182502700190449067722491480472400848311670650427422558820676432900151073749378441624199652635373252164821183811746537804579601178367825273785133200600411486239391557525995605783784898253052460873605893404060538923435185869916264967564436809892213534571452853318157642730445461041605347800608443939838339761733567296618299249247319341473715181054911622558954630930601806889698281862400597604990666587454416839021528943396622919826361381703359630306876037132972170929249577653965106320949119994539823173629283269479688341311252153426046912954262385689340443841507126174806368467765238105398066922735119729275242591142577089594724528002543921174495970708220496849018772214338836059498397485950752269592459335763803907936451795663942289629295779028459779465862853306547392785613358194905034630019848612900073581647073280550948056575926187709936496468836695462270961000304267190385818022785299631958317256559527032976486964665690212895094186130363425140151846065925453192414761970137243644610713338978761605941740259755014348508276005405818026075600324644773646447952022727467729966551559577265027480659762259561853791531499898236465550537590315203997333084457821557467006428996001005908374085884006764310624580767189988168802355257452927302041853205331026014445526833289908789534111065930877139175635461062467354868242606565459665554424528499263417891437224196668202560733136043821438775123389487015152296439313612912343210180905875366845504999677832931562367773751498488821343375300992046900324353387875617394672640132980624241825414585169638770643523684475680440270250565128922685871844609588624518467979687347029490873423690441877456441391481062403567546604151337883465012522966601111278869944580396403059342173638108004418332785403994189301473316636936102202095431472817135708568909976300345876361678109701051952927960245740152854365750300872225027257483474328272683017379149420893964549164454538012001494733213972166743631256388606097693115375611828614928982919913838589738637189294508396695561973074421321836484455369144283024826304778789758026145812306256738169618399334381155712796825010968370466193157397289725346761807531866930847296050172189968092696599767767741902475328857153765913610702318010317738970540913300860959805990179768531306536117208959587096792801290431279814135628606356796198201063944949805671786140204970469927081089321275270735819815067190650713077383597639551355668589736083772148143909774317295650013040378991011732411213857590444740071897217809123002902146780353753826916616092146353818752802046877329022973583076494536462799964697331275630869467525502679169131076813731998271356982790466932940999863273337815695937280804374068157870446427405031914708884834204480368756803301573575249104737144428780924676653857099967559317050080098434371571652403136014887658274675305596038321472774282575238897802420058801427138591792081422587341725308072012390032153954287188335798654825323126689379956757757528618734203750848209957684621921830162812819433102467912389904700542065038608900090993105869808955376044565939532231322953513631314813630169403763722981497460602918833994398772414482988713881324340265014958182068412273048415502913170101303548780554411397206864306071701452408577861578509804762697230368205982349543618366095774092586536066726285976756314897742454046043449920764212924621163537004902999552614790027498810465565458937295210693681786008941571852285740182615738168169968412023443189705745543070767008877997544081161036894227316841750355191575265977959906133609118413382723933085069017657360859257503171740308612369884882783505315462293038532936002144586476363824737737691845398181780782029429903885317668868910195490927121828983562428617120664872026945689474924416299254651354831410646603640298130296179527020760008210646335834202273590364518993441805149582748661308399019991584690911889484099704844320155515964395070445497443342198847720565945767714917740421026709292243139133503413350726322471035774102593315875068515722410457974394928508314054989707795414635760222557290946654336935057364550343547503092468655348722017262236703154711447126237503205045932601937136979849708757803123670357780733647992408494451601176192055654497995086531777366704358043661796236975010459240386416183030006861972058361615468199765027424412961666073170836174392565526162070083893232799422480880580548744708281603802075469222859960016249008217528200864256273114266122936778913006314929635688914082053741145716436040207857042813301543628616088407109600717700507728089726587233355263017501266342692781266053957614326418735331563477308225683256602821457741555093997118334458597190739943615805397740074534520083108796456029218838280504257513466829169882781581669788882311047182117655918923947497987181479041345757358859893080279933865425703665127505316322749465513199122495787480924017964497197367095457890615527905138436188800495535070003349923365647554340904157275830894093816395607029778053834131329014312963302670909051730868955963357839328493855386480644995347918079238304757907638253254376975678563961914158064393256386081972010451208180618925733649718800827555176397064003220983030853345001305670300821870359947328565312045674918946613535332800979037122811035722613405469500545742364888488447973719185890686799316477969696095112193801312004443432574262535155550374963686551901651499183588413658022200646134527673189999134198887565777644321728766021743254738319103092068468329183148059465752473702175755506318447153401826178697431876029445982014044648047477615961493607577286241956100398963081479261223636285192452541705772361591502230966507253844313623283551088073347988052914805562704380984028420002649460305006240072818333160508402537399404145837020209465966954791868536015956560649593762420001476026065209327869358164292570552529143336759108654997368432640723658732132848139413948004935782771044066813076628802335476499405142009191174655608622662707113283270627197090048906060291357109091657592299860611988677788742817025889784929726235602435249155801226975842511204142094591644730283163027354100000177547096249179473767252626778016880140293996962034500029639521722401431397753011401629332287829358785195843089945065029321179731810139257051985883567728156354779197104021573522114572757281991067340043092144595349085189686711392000479064915672715795738064668212092216354507769286551418732197967386216279064396181712552989463940106104350100474765806205186798592357222079925697055244389037912156848923014537966657960081507856764243413427555630326033296346691470606455019911186300853922943172105818747195848282269421810987506006846267888825376707332511503230279669125962481026452370064427426039095357756836911435603277577902698855229381860105384144324325526160677569540791659196974292807374190630273641110538686421951281113201763152628094081584847857223886494996977732531186721045299502537587802866520934895860028510782250179157252127359350783224405080816396744423123623392827059693748908418042975625521818056816664827314342331951939614069242234406223927130522954505964883721913044607998848890282774744642269036690702322452718531089923034685049137714261231589533695656424231481388018389999034062178795681373912468383076442966178113027343962401021075473754790784207367139490844232215166136518099798695377249195941637017544849299979114431458781406285922433213574929461498138695048748732631878387211225251860865538114487594553939484949240742828030248342543521973642224408580254439634305482195468423242007566932142274168636973220617214849517729783995270139855110104011810997128339757636607787229478054860916493179606994912573670433548773338494408255243131208184187766366391310399707228893248662142074024833208916022389784924031007669406846844412839374572424857567393803875597309218549513780977936460186238820749331850662659248606853396252350164618862177809688875416693059215339779421326705896047620293404564237857380255684757502796441456631601226196360776198537948542419345292272725847516772156906015028290958854599068238966507370427450255891015228580640248511138689315373649082326463017988095346769477430292406448183227086224927606948287038778084649290659322397689488087827272849763060734685657097902287356607296649589926436660739931704394312258162214845436201404090531266666543585539724513557982715066483845081095403330822158332903715860996555592689621057066520785685777850174909491904436428405303584049434808231767536868041051515142660116592297003005035972387062085148771298300413920940177137041472673860150196153801086907356814903292192857778739937761054267548640458261337674312018483344591866179787550682410041016650203426765676474079572700701109146696842737366708543486661419288114864115245380733880818367747684575490736140562269207173573515215757534067099749498180028014166264620819074326528483030427556866666624652252382613334200947172575534651151358015139986201366865878366417368370440458658504718031995266255202527004396326803144424517303028105245161566634764411024784467443508139731165646467259789980172712140510639998481298071254263028967677356191498706419190882008193220310531709481853967306276466762532997546189681600823980331947603152388107074658422736582227238249321353581351467662585299503828440983379997405612720989763363440783623744047795529624429980794822875888171019606449195088256913737386902094663411492740246679338335098918433983856345084204517993170195429951957833117012935433197343976041463799889751854510617454333015302415634751838288564511194995672499397171054867657503840761012302340159769146370020269685668846987602206742809434651705641413181685749755564602729731799004971081237381047022866840554947378922292804497578327974978712219597271554081185818852800830212203335039946471844170998121298625658942690108593472949907254750927723847025530473503305990469158776672361633114965454952642649531369168237779624577138821485644990363523334072329081228969291016253557161343668782112143081982078817722568613438464780368332842144686779535483251359079479066973501807398735422057234325542603888206279126973091573765006396568599794984290063654935298920421230214256292243154596269764553053758648293522769037157752503516673967941431968273181799668142574237952919552683241918056634526573924076840025758905279356198682511494040258155115116490864322062831910118923863054986451178742112158422048040737843126762918769865297779324089659000005138268584775647521220325393479346440790462214334640428728695527220051313798203059290499675663164223956475808366343683174432551920112334948638583712150789436773604213956845337701724377607418180662024146229341725743604316403928020062216738834059683448729288872910810439102191465778056598227177063441513647103248913523411873738638447341149688279611397772373066529821586620276546899094169709161792518412698880958476488427889476606363211141448580179395601973514605689417789248912584814022419351024863938530631665165972505422682200147522969395330278309965367896760675170978767175147266251574781692027717697932155031770089440504988551327464575585379616894025943107302676662483000391215250047386524762717446052499526493543431339291169951558295625393878195627999636665859152934847172793284704223012591083769816150951716126373884857588404471592679219170140103529472958350691119517774631173439244888811349681512185276017166420866374363229843428320747724911694143551810613012497882871381552914811899670769665843569552404843185629496838183962189342054726174168922777524334046854064041748359801525967094754382230660845821460292228171613894928955961944462205110548733410043611810870756535852005972977534763521410320348391437286483045865103687434995098459755725980007379511071432007105325076248281917457429841499445250509926905891931749623661006045370374156673107093282671461169046872164442760789732991880667185297412387647438298730678098690784631227450970016920763176318975319663608217801414707981596502057171601362785822368205857838575067022905248182394997157433218944305016632587048855003916791779604057456855759159756354026530680258408553862638032546286820707561403209984590770110414915959942297421148561522884750803836186953813578675451071729986892847306346692790891639553089911282478047930696784507843939110627682350497667571665387655367882255046029180608504064471755622534401341543405727482885849291971121586570211793410356574476422925346662083031192971029669863849904033227143531483479974350150824716817528776381740052654660143862321856573745191607191490708348894114298643767167269418173948280925811043823114782612519582316190717808456161089555815418155988754049466273507826734180038531451628170130489157054611475585680735794905445780201357209851897874909244409287251523314236142013953346229757412224652851374751164526922743328654716025536812985451995077893942179060258601023517152323685688137717249107819806596024059799548059315993274307460261381605607244820916430884690747083858896759016349930425938436744500140581259903020850971875168924885577256562740702450350047996043365286005296915724920588639990147089577028782265099277706833517413051623683662633954814814958643596647343361886737720712122294089770468228998926693380614963010307871501313369413953227420135171672555687128473306601177327418375293758751886526744042487085979496698889190140344606565806305204122702104204943795005237150108148790213682225633287571718768379020263641255696827207720068033994065606579403442642371489459142429240120400480873191204513787452864571967460865839685387567871527205644461612341031907804170340702370581473049182513280754829462612263790039524068522685462694269667054456626488363652362604912456368309999273694311525230811299576270705932841585947967641555534153737881603740002358702515219532335676040969362740425563786502817613244558800270056245567138260273383078080293849569929269678001514333146107674029137283425267120950646618105348135396532467433919284151607477965928978482475460518786098342635931370963927841998991185325180670768170481628835384219712932525394946026846380138123799780433348675123651980689580251960198572486485090643468887336654557604601591636683400428957852191712955123724243692511231600461380874930115752266821234666535594484564397711493378809701132168827429558230442947042970245547731342977559684095143038897974231531682990458217841981338338718765135165298844120787978684026472241809203825706738650530567416322059845775221932376085650476090491012351688961874409075325706408102639110079526785504338037940167664023443515129668168421113919598897146362693337095545497641391246417236599695244421129479999135431762616296875365363018196761101042883334924454099051333157765427019961038843184346670335225473431396409583347399388654552731179219705110966567936676356063276384366804174737931278077459039378318810309467541133455789278739268464416688541104490942881537798969559176272967919056466100847918005981086837099494235085556621182377887642682655095515820270824706770727260669461545594106489925147650720798655552241177462818551911061860563878032831933911009894589187836338850360800483308707223208333770030512670767585310260819386484634375063246674680748591736653777533333369245872923738643859470018543244510851101366780214250523140659202643133467061324550180108132035297395675041156811529291896818503380131174552110123977307310121022833164781206912594010429009832812295830896075780596404506811142302143792510122076836607751171337895172722645217876591510638315483808871628596127968855507057445557330567160052021300323960152701850457942611031005758341164790764277024506467877135930057884401114114951299191810903709192046880006518849369036058240362687466165438898229845415430805159166206723976668203831732395114048075485773151252215866236330650817137149182559597183411315019712578671337050088544645675114256652724275403590364507060352958366575550935678228481763813926751063847971140761896171959544512423414612227713698127704954922639354630034992256608378868785030195486145072189254934344154353027997635742294945497482242884616694219477122231429967155821518834010057992635379244086764056637073708279432377276606361101863580622901654159044538991723400347737433508474146302921609641033340129259264722311993377462969260282095209829077729752079169122376019613874231317725580275295442065770619082065896414693267329408319736179374715453967395312780851135440152979751453512363064694189524734728612435975828797520444453280439230427574128439036642198079882625360968116305138604019386660401227281351406632231090383660397545539714626668796158235640139360351448471220761855615810791151631182130257756597797418008515780054924724881398528258069073314006589231036905713902784225167875843927966135990725164234695655099326475545356869694173040589167012848324566761555789710384212787223323139395845264360597860018697953709232759410057859677546379363274788403267676767238875984364103906161092206100554601878151051722537913509190336251999814112665811722915357375820099386698375053616632542267197590334074220179902215088757364112930604832582583440680524052563568098088921283506039613911505111184727288874923336791403824871494770911598480218819051977433771951084859714284923175294653504602775952567716075648635538498681001893295075007861287014833453838883713718380853834724379339850148063745180440267189796922959501290436860216995855273727579685076239257540117966875382241750534401589103320696469854151418542429704805406682588284437402064095389456425220044012050530603271868776232141235374196999940035149192191606642176548118817524790475525403935536065520300484356641653556996608349840764732201938090099979664949317910804687872694921459420844232318235304105228385171210293473337574655937952633826444089097255244950109223008914846103463015054462604798091333015247230319203838829516920122698131313932863511158611374935431733277601818359045348992448768095821944250412891409726959516227606494428560523755364028825872939365150251269853995253935255329186385246485130040808612105783477433271380374752783877648624513353506449090892551931116888593313164507052120216424077598295292831926887404895383988878494107144690051638911468722385342429357073140224814000533132394737073833456221047101608999326722484977930393495992885139682959785021569013215242084628193985587163592668573135124761265129696091194692153442406172360811875922053085402262214855070287684279040552519460892963800152674842398192653192518892462733375053288330647154790772302697470259103241678147755015526290772029181959983979544609732121843845714382451767929046220230139741824011401509082387248492291068962233521665930936496925014112396054205701435426093936735992521109964218409418980134673312534371948524635287286221386122313532442328890604142889286725603733335228144315328291443837433836460440375978571051882403680239771576454895708573836520000939282197636313688506693806664671547351718588441714293347622235877600553321194861498787551629086348695896255418849450220816393137821654555802545932930041832036804607738008583387525852601937976043444318614986865683812959728795278260940728279284725912240189926339161043708614159484383355737250327877941202334816015909911027047651832512049146612609957349711458509187257505616184981688446899664892695693701977268938206423301929937481818687197058561504005969141462638076136507805483930315316671925044940283806406213927807402585206847988860739257984007994758224759001274684647125147271358184481041245243360810167382694816864529322741237537704212025611380819144055163685488824885619335772854128037836249802586874892202072759957688338590566617476065309787921048451237222904384284747407009830300162574133111001379258647802263714622299201258041038232042285184540700566810394823713091251659168691297758286675442896876338409193765793000472558417216881786098942683176892332509451403497729466331452366150842427408648458646527414771785356484994239976409167728639785011337147267054066170844305221653687192809655572505681545003382620563621575613570543591737001070544153147076947384547653557681905972971131164042578727913304774285477548688021833556761282818817174105457872858857901824809943024059044804555481013285796353260642865547612005820226311798648876723148545289324975720230795574500401989774692918517712042784227415527028778221711992353213831161317219275901817208930935116743806465801143056589421747168275049900064084097266525689399565845845042557721729544572378227659342402214834060006530145881872427506278813456617372489037007076156180957698460198901012282060605356920374601096284371495553325527402176905394219181917340870099773929890862733435098386865439125454965735637622919333918703614100806191067222060530151713783612589239219832067506137859485087402123697635580303679615254910756197751918137590326995760799498227868109850171359097892253141399563801881777423518811970382283702806102146721196550162277970525971995198536253339591493963907361968777350356280677159443549387176809365163442347094744616625956363596178856638756913087672710476677045084454908612364448076929446703503566378486755678357164953209761162944160778095640142315681586102971809606855112882528399436850352419897999288686067652315895065258275946944570558517408663026190135006388996732656735471441831379105567478399239382821784529781685541485656148676649774972599986029787824411813879847347154175211424329547413534277923090089510341397580126288675143998122222493459107861855685212485086003792273521495117060943829884254145049905915481418469808082424347414269674986158938383803167153385500799700140885951387896550996955727958859203651699121655283056208703278318284695394149675721826452142784617208997382584157178483835919904230445651888680681158717742595811201842827377085611029446976450994563917813904509536125677221159044173527487351196271610568651315819618930921481973452840046191816424919150919214910349699933827915612967325202219889376321801958826854814546104965177996232235476208087541757412006643786641390437711073591577896143196981450213165126076738948246260603335731763220944143983159121098798795658296883966686257334711257795412026871803542848252175691216190275550299644771191705535240233458182258596946145728539122057130032122926234205323949819273279723246876842080726144187522216065945149341640265356224041350389016970742309021083562125626594583401290664911776172228024483052926880906849214194222908642289364619082494803325908055172285067348106061927555419653426728891771424266252796649669666450438842727958170387217632704456733176293859325467820530864400553155819621721187300109679182881577762115061133094227557024002042774891275233798126944141084099443930570398859993833669222296811762219187784817835095062759512762109933671990201512646111165757381135140655129011112770755707672572358334168919295745873221878768190542905820258960447493874796637363085780098720663900719171028308022240527781055019110547881328607995044390011261225493001871141655351805918453601416482528446619896848991259016672613526637836898975256435335877323231703761122918692180929522759276113216820663323994797158776796101964593384381200510341560606626863333651086514292518726003791483850368705730208553466361257376519242934182333811629728297683308477375266800826557667199828158130382226512333001552852068194232035899583146530887056187898061033703378365163904837059776910012049572526176826722185098744179227645528124778063469062767025872761581601772698193073414957415247165759639431948189372148699950792636790829017969860163878244558371452762460749302957191432262526817557110347995067680241469361186761267936063586023372259720403650877954994311066192708186812814471097730089642249521064162428236149903104084694245820889287027538483223302864368077581717094867370597834363862479435477523835660387474722130012701460816872093311950417472076908016600642232512773944486321764965431744141296633932496856064171827135102424435024453583196069081651305541663200831202897963364470275910494475441760317974363211201115120284473068960402923059241971295429278395841010675207914504386922273219305835624746007736069932916679507774014408558021832247408453516149668218028383461704664862951852018809959473100920129858730028056901136038251779304885583731068926129346160447253524542573397702811820336193880102732989022842500832962473353874147416007665653296197860867612567026390738937748333495805175648238614676612108965801573293977569945215859888847874245913385348450636066253274790449533116545823596040099004436205341907127335072958864943292816728689918222105124022773234335647573647092611285547534065927225877488964626387569400333585824732803655570032686049119229796157607388268134889471346920501188182999345215800310797336971708276546249969282703800039727263696981959578873482859110477072621192397077118512435141699728623328527379688260062946278652117764566536754905155398927160017089892311990442252274939483107255196607133209999305881944369944037805577961847960183628385848870287993501494184788724956345321130624232860526072757057877072180987562485157602719371801227908143228228802942672066001709260122042675533215863247636867495012612947062514071660529003656729247943305276816447456073666349803720453652104436445703905207279084641351462457163844515091396245547465587112795052597669654593821216157866934017407745027851348009560915078852996620321670480842590821562053212114100078242717399650675234366774679156492082543642879185591637655298168051423245811438337006110945877157673190120606317869523114788931624740289175807158713142357472598377216806540487851633384089024179390049100360342529206460354397949998322097531703552399070135338080925075379906854453314818784946715854069381186708275799641288258788201073508225561429575493429792199015985430221368295913322965029678124395262469765820281019847462632760703418345494483872281841906952897417761103257112091963315198000344140094591383296289289636587169184995527963536849925916791842924804057233230555343317320100567879967470609067012502628222608762880426375645195190327513056342812335791814728833647038176404801114663614681601707154062752644779698503197897750102143218684988054861761215382840884981916893637016562258246466703081245692788581608497594071835684879196585169031230521505442941750648620221043801668974683325030052860201932338185951309618913227345713150217488678881571587696361392135537771091895610429449725436006771779610971396408051723978826048362645969319748392072320999519146250670422933463879009982333467094127131019887940906768588967448497103958864515133035860122740836206198634110651667600963060279217535951566736845937522119233627960714105718676453146604793013692154375222774582942545527241963289325331946932262469992838957287021672272786166630249779051736131675047074192588637877536075270966481560928599678286788201243155717083436115033028617055826827773265348251035667074648255186041088619254437727361312634038069922476840347801357127390839828594525324579402083119188123916460466110620787449814263334405532737104564218979546971279452582651267587083324533995286537699213249074942341626196055600089165086584508240756501359016709418191994022280875509684639397919139386812669423860223564599046459565331709323114589727578862271629981713051185475674973824005854049878765097304502504530031662115683985588105744149581183226774657085688109181640444135122666000353987822734061024189352517268884640434476236712111098389307553441932024447387495728988534945477689544455122728081035877728487488305820983355995341629079343596402709132441866770509109333259883368572231952200730022845836331709804668434873057276945080864149275341598430528476591173385580097228844514250759913852261875066417379183347430421115218504761698482310057824877735771434747741134423001927521092568683508297951249155379570073288714659288720260050137888600213834284273634215335067861800819259571359797629371260987794331367366849844373463330420882172467828971842628671820938964882517262327400500467223432769729042938939258589646388857185639454869165566408670484946857374331492390301797610057877831955641754387719868118415998025072272602233567670167331030835103728262807831398856949585499994155229519004394916760720946913338160559733439033206353478512428690018156151719743845683133762872638522173740283851447542158930608938671577207563948397729865214076283857680135845791826523693210761420682152879250742543810458664304640133780309156111732973988019222301208163347623624352545184270651567062618703340656908058825172792858539515875611185250892832677540258211674452725627994285906457061528396567224578863762152691458412228788524828635197714557071613435363030274953951617176753695382441080715726051608091605138787739119516796652646001296519576323590490471782714448126926057597870063170573267686530094786219482068838747138662373716285784089555173585660683091607708772166524119574994589031370444236888868208299815153163940825324158647977485113388925675622910262284742657256289385875432579301864380169425093724887652774010924957399372751816769865496253775425563144679127867280602281812981324582511947211747991635588285803340029363107324850212554019449398675085801330676664369194778436910854904161329106092233811497084238458726615487596353504511588500522049750235497705119488908226571892438039665640883641820566626203904915203326426770530506286350556063348568412702464454589756051240224108402811656588598517245033738714037661413169851250311911206546894845972567867984929216359521284207732790751601752497756198299725695015035337188128733194914553909181322904943651687247702287900085513956734608745207866084218423679909864760367312903190445004245238065243595809252424655339072419091024232580761636094498206227746342469137307250346113706735509678077343858393083880477050512507875855316977047030944922208718563876295564800717205582897578124979210079552728209873947049015144639718566492283092501579470621890611497502279654330778368024496900998934661833847440826536003163755540423285221408426750183889531463138003244892488115153938874638989781971804904527376365867065711737308568602450704421481639051887912801443255878281595316993029313813025587807964141354304864682342628043973751982950477281698202802937696282267471946272305701060830870801975573202272352311132575159155118587037798164633774432732134825360204594965878817126571913205781297073868845681323345382193072779641663246950934060444686085203370205760805618231492873687516107194744656902568599153620720375227855609535705142697476381220708059138204032161718860167668116925199578372199877732039528553695313230425599502439320638370773504784085511947844995543008282274660492070994181269404586246611964748450561386684050957302458849189031113984725520579651961472255929395104045604984035552371441708132267393456339054464993052403184429714743585147163039913782642433584752828312524183369328092756460453557724777893200500617203370615075618453727310633953419897170272083378078879822760470026977066356871476979980999202794435870395080210474431956912612366379780212887067498623810355615222739660379506337334981446308400380646600799409833643187104052013366024556343761401569006895318090370824982929769753129211655995187620372398525902569186802023927230913910941714204983082569464894614190912816727237053531770278258789903934440633349707937318475645626586228770515934706304265389996597060453410570469500019576720656377468549294587260146054428326469168695770957121777739789502393291780057556045732965168203256314756722934474967855254885200468759681274263801516367198671356062268837784863951215494180575013948168386186710445141295623105606571705085060592173631953149941867060294475762778822194480896276518517447437141644497075800816456676296858795361247654664075750491501556569354478635155286124591065170420934709582211910996372447543668488717698248682692534791089489446806310624839314059909812773744134048417138355191441300562964348839359561282647903522711360548817848848716725704408170099018806797640059392056356618798055260760403978014808975823175485083037061758226482171161105334379264115447137942288884542822680005474921533463215800906374136780613958483633993571561151458068050687224380774551567363838391460956490433223435327363313067612673659726254222547095058197602196243576953112263030569813589074241772789803471110669373851321231482693261261466994751803520255480235318151555846988391726423091189238847013767413861137020820600527920233967488063330304185126768881454307681083376723505040361156175586361311104482761250373446431495796232617181713940734174266650566627802622597159065975630055157412418438412493326204783413188876363598074016561601910148432494135750993864736796111828434481893732122693154537149598136961628076079149832853272091256631730728668294886002456614434195436776339165011566848577069225680810375094488126956808511797454054250959160820312416175307470702040037935760965799279934521980180503834376122371351772304407077643389477571230286192117639038182878778262163256757406808735333326346721553575384849718731573733350967850270061861540984590649274390317771250581667682350598438194751242274086049723196652824121525721076219410731524015070144186754026016133154446799204294263343108591105213177956149849510495557143361826871069646961940236451053717168855348099481282026207035490093243649435698796522034618139167028669493587830073235529439505930067885485063900944275768908473306086178404476732776044127820141584158839583213504077252739457213478660928925026589755748275959231181877660630260294060760427561196975710613098617756509634706423563454503837474212469830463486489443248527114496954017251387408575835922976742117585384144886023210664397837537795179682494309355529906111604292961398936830158161908325503781716674045470813636872298697371955448104310647801965292570122020661961238311861084570233436042248769517743836433454820477911294429978706671372911400681966058437980180327100031570533518535615607290752258341923087387124169863179302719823299811995022272805583479732903706244307605518558708536338429333536453252040553953517218862909500724199283581879036343089253599772607141315139644603064218052286689775458239868513817780288571854117919583481126177659280285813216361439636899025974541447362668592674215060702007597938751961480058247154129973493860385764771700353072121362283069505995406119414247185557860164518757325152757204646520507425324477880742258824736814760302113422160261879140902307639857969469893692770791922674055894892601395446511391888697630091700326430160004061586830532099874302287953984913436871099509491163492833274243123558278844697593309822432649476488472903736504145846018839577331852294730286321544916726192497994855472339610612331232247851353273170329204328687748322761209153404308089252633414959085882688466462937578666334237295791822235165190667779755413617241630197195583406310971942978677819046618255251500582273555427791614871967385826873768126660576204343294147241372389447252369414123628147070801512678555453583668720331306058009830553399568792918816206532624752988751275220395732597220787533431759871010656689982100508310917597130230356562425111613822043070947024046787294196928923316793801551716138600376036012130054890692509512830016941566977377229811416234211440494279783905177187842422968984571556258218984384502340219474146830557795861800083098054748462244308284840635970772810717569325102337575756297566706436232135746865413844766122516592348715156437311436176182830518326931391757898183848946113129465078315986173997717400896498465332578761320639247410024204473781466146701090858232528184655839889361909359641966840988581855572949227887995146324112554520828224560032347962420083119401496793152780094925154851873269584485181362285348515749081819588881618939962231511864112877218315661510802697753067949816588788086569313650934815014442318535599123409465352209190722900717978794352464945896508702351882032902031577982607607571094641553655089049762678559942405582375519236723497265037923469604181115684614426435927964239808580818665336711624788640823100912260155416441697213354740166393964271870509458461763479414968945949195772135224814783498967543307567086257407957788542226744207356706968218725712468007699921303532582648970767354948388412525503297274664407308734822398180524167314095313043739091685655520734871702831753103414649843240849240579666184936722918991056290651286311659614478525633985414464939001636660443458545535174055032789148991558259611633362346824765216252082524898070612493980353269067974154601861204776806738646238093346897973335470562680042402428499927245170189719413030559094790163883439363027945130770835665727457459774825765427272255653668168894740169722915631106171519451781114837514502204427154085363367118651517958718901616269836155849994201606956453068092077223218461272269647033377264767860299505162875631009187183529267378817273297985808026650395230730374643969312431995857225103477835677929520625236221005944211509259096065013936709834453252150854428221016107452658953571893559682049618473766277956512105480747237042349791984570750293671452419141715663195287877771489413961494428022011992866470474987388026611324424927086637448513389911093156910248739536416562073705901666710669298424909784195773620774569946352503657758064932658249013661474301265663682536152282890153004588304224154766980318023093495866054246408686929249428323381150707866069554626596873737111398321345265109118833820750286156696927206961277661117466508022323721513256774606928489121540053034255469262548059738491593885792258884819983625138639808835167735790141125268922501978403194336416895880284390920332747536241382692728877127997617302566664859438375893603408608094604828121944842074224394352050095875298495116811715586102113778408204484231826377474240920410652323444808785481930875093895771062064211524727475536078642739924412949865375769093483735146403978201336198419028879622648405852528948157166479563535661903020290362124289588892890560813046167286638581236698483460377494401875212573162695366650199994848007932544446336744044699597409130676092308830983647059979435195284991897656046163656716288226713588557443123195115692764080854570601436717635534054728373912579203122736415988804501089954898602582319183613298341296981988094907317365844020293103649565931364085585428356150654388893326011689364261145502646317233057462221981097327450945221666223227831459585906688006339396708011794751795428627938980556061114265551600678452839176225538503183497010970911978405357314617634723475373131331824351395493548954171866828482633672897307942296402387437800396794880044364474512172231160169543130604105032655842722154573662997917908684507201110500774140983410853251133944278037592983150101642261118602658977278492013413355900686670952998113391509686858413902609334982097680994495121289878414005916999943841517551853192538550594903195154192245372799161544122977486929931758118331486515839557147370298786317930780954033187813465715300446367182702883135018502738386440323722146323127239999964765577143975763578482865074290015286809660330057028985473383250191122450949297064358158743772740031434037948549529349388773627572872169641468360690419305643413219278816402024068199625817137329271436934017847162780818882939165225899918381824912077246186686075609516570596343798300002560886088481446123333115744825711966118194277984659944262667934849884848981777903266610640854070512463326570131497573276495770015812076068071926822787046153200969194656457845469881688972943379777500048730942269460760775231517862817229353524094031952209263605656028845617698325817950044609275290381153762755980658553883413767924697613988313646311971048358511365264333278889042390735731025938007282887014032205987178377612242222243057077068522688707502036205423059747050612814048257463485038575374952876727016083667455148097202961016941027934751965125378607733795311067208052825025608715403651895057162876219326592718711577806269208980298462984601186513953808452910366301751051541168901746266197820792039518772747862729631943802467370225926948868568319016895452415866834813554380769279242351945288145476659500289685279029749722697730775212566705038861489354746564056123587383873811352509175620744575718580138933942129051076683353128757576856023285688772286423204886532946475087962075176101954314670410069364196442174729761165631295744934096961513387370039504126823738220620712090706490083637437109213484167847456587056549239599265865359281638721556164040333011788020808972359691156476958357311001664251324450716001974094008347953310522031249194421708360138570817841095376946446195300941490823685469574914648701502624268734575481704614999104327201967908449344748705975332570135810658302508465302971763223172957627283123312928380528559255756699007069906352194863464072854732891912556548814856994615337458887310345769645428861889596070366810063255957283388977555341638598926165585960517960772429323898889305567910984413169656945012269281336600809795732271233629942047880940748101735599775789805721864157267452820634251982090863658976356595937160022913888378619204582117500272736023648353516984913057339929031639183908140644552847802526497599599098318573678653982444022856680436684315746124522554197356432335044759972262500643806674711683420189951706694446114461019865351503519941291491263220107150067347370781898599054575144741055184978342428209251827627638875156216388080924871883599851761978489347542565835926270317132182774460517661678390455549167953023584220150152813379461852092431072393931028658960697600628354686796247945551654847889926738133823632819359582030881021840160697612588263844008302668548424728251877178433011418305487782684561161200107397760262819533642123712315295319929762109628069703938093403550091006714665752992476454729517600581092994036830912657488383222687418198862262266284801445993819835894174149022663176276375265108889655625276366953499103853846556165098278653468197446812083190266647022914263726145810914979237372704938301294942344273823290711728004905879849653568731668704980422459616997637555171420701577878540889112513378162193153683879113950265927224619922075620133621155494676825172431125657044419288194590797566940362555268641025741485802983499682804184832595992014010714714830349723098293161373074527813107712157328321946070882956457532589646786882041180387215449810546934501506090261338050898152685847469886709873663102058721060509385044118649528556289394080289543433604298235319267162725721204309156636142257057839264346911743752114526476977913042412506025522293022205390343219528212261101856812996291472342272297298742055643582945264683205271198117045831230337169409281649016606557707849418823569923564300278314418689592390905911227268636745533675647670982281456169975521045818134657547720865707581721913863767367738148262968468381708729114960066371744282699261063452920770789770161053690724858219608171796483154659213800892434078784916456170354913332456578190666574794458203827311489775198007727468925443971340318759061519349464079444256741293266124051961767229366682132380504240661473277365953931212755318118428078012839891503875453255232726743662640538729692329484297000098831564934014104153161238606596770642737576231419093674001802920933677459650835816410389288910625433569103737179463230959692144897806540205411948990802433736968521659581561090715830102808280995065877643470160345838616509911310540684082484126903021488526273300344259670205846751048534609292263362505947196962241174583580733854858730378118931760770120433499635361071119224258064671504423642337350660591506082323784835485264607765435033038712235409858866915201589275077045951165162054911947861272360555606321061795792164043255819817252106006476215942789477950582566963851139340312108899362693379819048534599959519784173347839579827181188869492922551185257365388428134173787273630095749644600565904582631150348013160712683349601635870904571600020568579126088511472706898711274169603479744101748933558024621403356055123717127407998930189285376111633111788058826760614348020620177725054606285571361851530553505504090075407066472635796754933934790156095608561684599794103711346373262265053224329439142069162780868155334800089759605182752593710508131134780461249757074012557879499828694062918778646018650998715344003704202063940947913679725623231841368149084008779836114245288679797547032059950945646528867754935476046819212549067681002881553687972002616153058267077399940627622819352601264255900660391266656219788470750578957967386309935522939874457602148391611810047743557642562014912394646459252766080404642094397614033530965764119449739724471267027753289482344667846564387186165451208846244343659849542146928331613654543074736141020412435392739109995477516628461230833657771585636016442467961813587811324054015678952895980177262095007363201337779332386305772984655080291740163330675675490149632095627549716297297620636924116236971562446904905110516213806657864135206286672742062641847201707088704693682115979797265167075604843299295005525862647106790702458925917449162071256316327557425297425643596429452199240119335791291583914841143708394602381685460176960129072348420274006965453533522251827618297838012925167568769893555445956025857948098922016173321671231416219347970678989106694391469376517162542401802177780742393776581395264118370361528141466309981989333678389245982341611806130498162562514112119099162625353709702718865210991922536174405860653980260759613223288222312112612168984056289472471628783485853389358479618095900886959233924664321775819772461578093548217866407193596230792565216505757552308733007134433563168467704561508184637994975914499681965018347293335678040656196885243762521082048568500259643765919276334635909970525568588602597068876097781701189196884268876253700258772497827198806377532238095618102756926829218256222720325518990832556696083900126770344959757682044348127406810898021475492907435382107726586352671163411546993483320340231555063381486896264330890290650817967813406428531013278334015122189638253990389021620421696033707007236684873758960904025927576717298653039050492111452741316471469956286993752069883072262519334674538496899612003459102212485742072003357059902278292281725554643202411193569993898697984989910762160810767348185655593904779709112294921082737709662326441196664014567726928769656512422306536120962083657244976506261852777876893586402426392608662259599708775946054537911782688198567301558678408579243429130347856934352009447705425389096847253427792637441953983776299976436213107792326321585165741394636159790989726908868525771781909089418581303912865009506257782570458104217842150337110450484663660635992670338117960164380561965947567380071107584116665293160075497117732738916428513493620582949732678622663910534818225862500157379204618270696113698747289778363459612755064420216979752792990676400129597568274291285349954436072743321279923313406429085046388872585019633167214648424990638036573545601193176896774723868042690286188416173677574187358984530212279335998307161648441720055600092916354484719982416033909847129857034613184326521515207728475900118681898660915697195401875801210973353986521205927621146963512521493885008798723966718578782811205815696711938808351433550359461504641799120473376233100309506061024508934440620321083609110090787163596383566124764431138792450934314534673049552738172930489956240254234195142994338866700407661082286410978323240671630642891672088224192476850777074847727557808502957037478579665474788817649855164261148123925919138442353495210922886858000539432704493630799399585681080745497081508251273713406680540503333535896182986805974035165080931777954688911610779656419611156690290588220742579649876351786052534743892465832761520350742104872750073253720257555608095798499908708618484323313306313459707573619765811473230263865352822741895120684176529822247941312103250440080062715829429480833871888820288665118063872201275404897861013248572165977413520334800699502798822624961865436671200290321112945558923433327569033475585268581422402464939517153753040531614800028767431524834981292128543567087774897395291833110758768647681830126807759624685115186012796235785636738945481646434531040654501423081142660731455726267884079023788703594632804476651653823926421457764199295656572380135492399862454014479318244620051892696033191041925494497240875340036484518992688178767251588091007059363587915464836963489588748029342562017572402361638508703746482123682579510704091242186637412512745498776605567689813454426475106848060001633727621796613594455937393045868552266311286134575764738634393366667458895954800207386294081559310852343345698049374376766466635051565650541258259236583316911731254692973273508991632062572156808013864746801616569115396455895984343986974230132250518822843316758011659912922583943720808849071344888125305416073973107911772368419168932103385655904215847987551398059422116123710606260778151577654968840390384330606968666817293947267508260755608848463351036639552495638227285256291199259692046149483075595348156928399663147725228463939672776359212428313789718840043051249616753530650000677551032309480444586308349987673274218795853345644663148087396041903109849971517423016859605204459108463726372919372044645103618304587087514839874736237891320666414785842779469446709430759016732451903992966661469320358882509050798858709462729338893991419095271239410479450161227556809643882827198642535286585236359548510057056018407950801090960858111422158586834642218211542408713085141877394015671407110167839638951311394501850499151114344710696221606808286496905950493519378823226138511737274168930334003511866609681530587106961417394464094034119101230245109563762442406277098596613535658631059690265667510724587325665344974642058330963909898324632885171778472690236026723233168823197883472019098177730395590984023570091824674290776717650149410104963702514762420391420646565970658576892332303345709573471332031861301065010290958055633047130244383520714345134670753197295653424809594896423609159040326784691144321470958421192790615812383272181493616752761599539223739871510870201219856204241986714280591993649793948504755968828365130222974751504330057674950685164396242039366873107175941219611548393901447240169647709766367311267635900177246788363992836233415731593177441502759449621752413383446085160564698215932494665944379473614885234862873428116062020406483443009696130951140975770661914056603831809527025741463608711511315381350849131133641448730781052817648079336320037662713307124632170777032935114781618907351854841241329085367734616510364411291371774029721716974381368796335223957867167643839948009618815901586636547494319267855369086661986318409972848671508477062917917958741938174604092430594309537757538339869530547553974353028348981336041578226149594010814999391242440656499769092340496496481465490321320878822339613194247092917719866448227547068393899168654279293040000103084373371685936366223897576062368551979753114279808441271877042747177514901007338247351130034929235102211323703957692519616534594573246655996273829953585703555904137734639999115320309419071951441393006105974769305261622072491467875574598980161363305937099777832719198661299328880439131913468537709281732727035198892617057976050096114736010046551268751132439646072445832919233204943610262536008088399785851851178924313635955504701782451235596635240416323010266946743817234839779822469751148350874926942211479156736363760556547792079228697355353559707497037783280577290377762512578456875332196664918261910952943122121154294766410622675930294048011065687349569413394983513410869775477474135846919140702110558505280914652542752128110860303928313941244678194830180733239438281807445437812034965891678250347601020505533846617797115621056105335866407340765536142739960450354396462053908675389266189300136183329086825680545221781088843424479444340419705222222541664437161145872247499358641740794848463841535141194877911668192170205017540512766298867998728391938908168744672547727719870314401484914952495196467978176221659560114450090582901415275280352991312319949280073891763166790615778939560404141659010998416940336843066892698545944665993977914774887679671417293029933658262132616083207856662816959650898097544894736319737028570197472170502698874006987698405691703764060060802505449163015845757017161536631036554737699784559465679892541004935575898610678712622222376869710519485905860932954110994577631548770600716325372015009946542092706989011791950328281502409481783281176810470723016896840998160561135019124973002131234714406505814157963868719601134816201984764855836629699591831999460995352226689994152744885802862105359170698089025921900369136635490253789386628365932917741738810099254228609350217157801334304129565814059675515814713000072407952708733662179531192785941891697590824534994607016758105533310002196629430639071579214529605767527329995240291176025557137848954370204574331033068123109528573304416846366691684278188764558706756321613588821130574629784954614116326481253490213903491460129853425745049349400522935303938556550483597740031377678170729278133351607213200396416769102865954420597100839401335930716186971965129098129934010366518391329759468942492013724482735772255439386804707409357747159581975002146579182506050385755644699163636700860709446235333212231771209646694409882541280007821305266550347426282111716196080630182267116795331329634774766800046389250922253872138481347756203947651837852192668113827462975640701838758351927424751296384948697509076631571995790060261977825896743379903934121769522950076608979010113666629042277706254301177495412839394912148149588865162282946464903120868156308474925425347634971546324453391378162095704894316189921871875291744713074789567269277060514046784128273961712429977095709996288893169650865959428867152372600839104656865294473891690398527605183824898576817205040196095448453580922209579151985000496411672186843346514630670456021967586273563101957301920924474925384770693474204360460459071562887736732441896967632541600312606285656512999945658303115393412017342893437101915660775642705496579544839217778458345076374086223173879508606335544193543941603047644106443113120372122774268894649203415472459510857358200145570014268797652591593751841495425174530164423188999861850994236147169262411491030086812274465585082470817085969833703734038619499161622282457214283139865044786231475333001702263532364054418468008427844083974964452450294354671614514346978009804315134147713701802644118084530091259379357567683405131839800740230492430754877274636063475865891321479086558850921231234759647415485258966144416287434162662627139476607923895419189007022592933787477564754091964379443065718162096709435321901237720100787404737096423796113782379814374323349995688252891071587038152877644661503641838171660671156206777691817938215785557531489652868680871738873995014312876219691741043670413841028221371400928746772208237260421291766659401471595506205121180730515665534907499283924240768324642744188400633478373219569217444257372515910146861833484601355544512959201567200199005738643403057154520555288545571938623258644507402491915073919228166434466228668282418208263642766315510663725331678545102354173926285947817397934782959856160344482882750392299612714349841638017655329738424241477066859996604909212263623515065311157544245563880194833565091766467290711968519640103219541979252332288284145762329076778788525302205171606123194230845188825969770359696242697930602987978726392543343422710348193902004480392722714335893494560319952556670167828232495394051890567766406898629044445513664279340993937111486790734286312586372069986509345753566845747486146404940976406128017494153448918366954248091260188444518065467523282409417927164554677250535671454375304389088165510894433842807928707930580781179670281901844234174456935105603141357403593160904997703852393869828447857165455070507717286444324319068941814969580921729676049521526759030526044235135909821883387898349135272531689207819465492137723461148849784620977040147994016514649189631108382858003322797975991592072385511027543560272454005898655845384795139657238704207581462862984738946590987189021542058475639345428059234396905912486762653386622813811212495094200150937248783682033389865237995165115033715538503658567497405758429654148847425523658874312825035250987690554430100692952191136806309301880704901280254408065951431698144805201234622082028532997643124939535949609577639320117686956419874602898935426821166469953777590218858837943419056660212952614403223564819317242411919449275025452726658094613389937836483372941616212341195784102892935503465835146992395366303102688508561756474096986065177044364085613197016692913457831118059442101024267597745816970783795833736022224183776559860307273901051820624221358257116713907719559074562698562208104421065844275232447891020113313666557036453010037261109024663604836123357602577067649354843225154191422844438644817234671118706847885266112714149252420845364992078925479760988491718289341578199953130961808769529383684932322320199359140009673430489013488350355043924130141752437379662951868156678632793121539169586794436482867024534932235941101120064218527715566040391547073125378033766607229114780133164525202318633603815138080532827515979430333279441356278511303978293809554032299894232311769958643478219164891112179419091441265019505379777378376133633155601815664864159689958924996738840582409874525627973813439315681806922887311657107081911384376077082394277592529652160389583215678862280941071867539339227205822954729522940227219669022737652754024182243702577356680044923526003364135296235566184342200366708143465348216049966365606662865816174729460715956362902534832111569796456464061326506620953263340922326112201575499622800149925125932350188355747709525906927927434942360245545847768580512814937220774312433614561367218014898686159660562435661507390862894100672777910620502196254747421809098918829022847478690241409443707353931976852851314957258074095375682661887254486617821618504816018807250954840799021721599492807528529725917191952081383815549115775796929930745245751658053915012461344253672519909742811133042384320053880916848948872872192187176588109184126863905057100830508448005654038986339420911072832174942313344229474824549829919746457108755534712338754568635996085815064981955675445512049673433238022869213256621457279289834237023204276134943592889726920025550960169879541503745728818714891358939136097222423247210323050788900195516685692998304036392880477833238381407663554725716679446028875320155232666281853293611217219175108311291604112866522557071394411416508998439814240440736675826943816498043617851886016275052078495311269630199875325986261027874931570551349188546153904272677767057977372952454606045377835540237355148753293034324137551756399711890499406912167717085702984947140226343836425432760357566810900857382117821615396855701100243285582131429383668832940782562068679157470111705085239076931651139851136507738477017508168226591669491538881949790684821836417821764242727335291651039933749770143025068118759297276233414533490018774750790202650332276775250895416163765723860021749552208570780862167725114441534132649622506949748834359448054360494258976412091263554562570502943839728870339215828013517012244154906539228466788985243874447729841978066799180211690797973139943879023620404392494740053059436237089505855315839184302132593242538176891334374566208049882030337710543887762717944934505438403533011878165526406070309349579107670044523827997139065299178499889657435430138139713022953390511868525552957939723736457062203652739679909245567201828606607630472255820012499056097239120010252335010733195383699384656514680870753423620331596141877869884855523023591944755111650196522768106870279040420350066294264602675316948030604954592553172390893224613631546490239537404062048810645853657640338647302433226480308761716246352536066881349354184283527784137698767891860234892689203946889484790102588656693303647374219961876810029073873512761472941400647247011185486080202761619554566314319163799654501953157230955896670367244034107216527853803095097120937371871423012273789826550399164674864493100175087772273658836406014952861586400405510942041701958936834661052138465513216072051622904344113186001736501982453072755661327415906513095538620414337489565408658740361077035468152650610337177287580206107574650806960762299377277194126155874093820713685195976641138082884353693072856606763926114172342665205840662943679177882379618772425721590216349946974867353924753722021688388996350617243932490627997926841141744103369306978086066443172824827538642857880305008537111573635065716277977111016884806832446612155148648572775592032097656325101091137937638694988963139366272616480035447026426724993968620145299942402857644858760030266973738199824593740774693274298308883464724499990911654990145946419774230152351612393515070409334633236120018996986816053663504518265547721159083601777071573097254315379706825514402268586970750155532643620796481584351177588906695977739066483749093793550941535235818497545111082295471431089743466722804792767757642446029528017420433020076676481890041861016543341459161162151846992049698744359226415791011488389882982618108156069729017001385840749154335365599277451658371474212814525830476290845587927248442629573819118127059834147946323141251587464843823390387997467639661370604593051834343762182264913376930944651847569294777321701918290852343027126480563612525750533705624937959756420398571924820778310881214470510796671273856728575036977706399937846603612708583318332976202952593488980077848610535893880687837407470225974436820284228978406787818384964382148259948161503634615952036509560878925750641646030320806610893449841802605165428257353216782535643299898983944701836101570390901106385342512920283916885619984466534768740104172712638932065013997422143390982970973330650890403856527144605855009850164714595471332751690394390096275483746901471718088519104141598841796741674038063586577938166351146404834086374363045037828721210277297969044816151141757856079069458413191412877464144122732399757441552370722168241981814471735733594739126327589480626951765505457080291654838501589623712032677842375609628390236326153872868091897303953876819324620715998870019650708005054794101939332448737899463341613364636564860741773535805128045010014804680742510883681932791433325107643613496400070650776507147744745450232128264355090891432054311437361642583020918351735719815911881642848277282536865997331952736796596620243785614062776798790267874760603993618141887530763971213714618927496823737074541774235996082299672469433214612696145553870419743306943152899407039150076435524226574268498841081259991166771057180145306412459430498930151396476901181163201378103949230143795636024013862208926380577748932347015861668851359733661528594730258473998472488521302270399289845605668666067291774968406998669450151931726128673758157052956084736459646456439027640382362688195216674739673042832676453959704655414431768907360751830624851425769194728210961374307391670534029315535517281472320673160277373196393599510288298264112037145957743129695355417664072807212022586558179811773566008218559736979963021979398197515755323727899192196641804106992971237904666121592484481732524788488674563079217914661790639199624033444871322393812592118231885993675427027243654661715289218309399220469154043275689134706428596722773728015852818885721479538719008154024178775729853832446610570691424235369852671867519013494697355458533599382825132712602886297999276938106593962741600925109805774707096498613344320764478181812114499457604499366752454476487910981164462938980582437130493037505206377415177744038131970816644442704097810248756813643881169547931232934916396645059396097112959040788565312822054483782237564213305057212226060868250565655303970482720196082790285700400719172933707053997472656601995252704661583554314888777057500759072827529216293365272518161788623842983993800449329924235647510096189037925747442002404159105247557013066182844722854877312412610543645116055416827916118630848588961923941530178750539422234792546116069885913333923335058980714646002764958615120464166565002391216923546144697278510818281878869871921823224683410442771269073030257434833682853278806338673804525002478882343900039383718400259082713930261198295604745100187781980717915070218247970239124630890389683936983426090473565197428315801499995743853728334016920482477233502475419871777366017966836746618691298298850092294049122337777661521956170507154254034147643357959641722204351884991411740794798087423491036476554083141509683760974025949347353717981833494915291957044434372105184731596359351992281115468678549770866203416005522758200811490197859537349699404179906898622500258688311276064205429211864745003848998111593340437847720065690475165786377814241660565626740102213910936718836140330740920348394419596369569240210852000870402828444348696693442170097937597184294336102668566069443796919804646026610899307220987744565781649646167558593314895219167049552922801934262446602183351738004903508748651965083142289796393446066829237001871419202987080276871043043896827155998406146098728400783826368895765437472937294996126863271563391343186316648714564167313140616460835551529674193036962203337630690496752528624456075888393811719338423062580445931958935617047938404148027464868125224563235972318257234746236510229490668735533196391969703599938105522333958385841289018395904259317104127716896312849152925485849633501024377053500668583364472379558477041847800238561714022556050353340330772559214739540333359694356424458600176200946089330777557250010142616793482008580218886973653483255771940116062432701068261567776720698435570880330177619943615894763530176847638240277508233831209607352416614772439546933752486657560581972817927960886479355559420127263868133760383118867604535156654154669540797830141787473945749477133848083875599073299123884781807161404660323650843128133816860263113098591031394889426204206796373645942609219729613139087783827687331856298372404611499379657496523327824695649027330379871886637102330828548809126304352247354850701371682499731770032279638999394343455300508084386181706152116797234574624985728095798685008725478802425733312399108189489457540646044229591189601661331936653032063955398206459552320671572718901697011802721897157564524662148324602691397480616751668756175427490670415103315963584483235738072627652056294704092446945375460316546188273950493003293413239867991661324096993259805265319185623213213015203656467243035983488508279234394151924484232770031902413837831202338094166852026091740468524940117282518629283661906889449192680455403722700757538104598529302409172751330137894837496764739418785076267143664150470511293502839404013716479405075978584279070637385359743969029075844015305305077149788887693772738907041096967847810804437448085387455794973007803013614633213563544813692739581916208285932823672835263650323434037848613560601514055213240325661688595892934991095031921294117218627369456282955702556464656964487363769401649711410314319574262633687229657441437704630991247355555322413734811220261686632015516723008572433165800501376349937303107544076285536419247605421261329991864771451907161406552668215859236723955265621438253839633597997618893441075185914925940788237370119723858895318165594797139763646114687906297635626256586341559278410132434714914975457451861357986345448819230172038758041292288837975719161789832416359703921384840700453758841628303513219039822464582684000412899645327199158407649940235239329960773955984958901183237883827186255612438164508799568914607464850091868905787110091402644080515780573853862759694223855175032250562209116999940320617836038336632490884560059727856201788992558869243606820482598409474085700414668954609367084849202200234888521725691654895517589175926894543318046810825462394101724108376346759589806420530463952593547650809403542111544592092551059268808540397931409448897090027091818267262261887346377252556930060589355988554862917190451556623344987699309987215063002710505794890606746228636658561814767346090933624990843709903605579758184029402816859212782787330116886651725904426623788879167200180056422391218223007029230214017215923555352907800331827176873950727465315059603362178533561197055172298870210095051465001627192449072128241966062862857874059885639473099422775482464984727710452125521097726404451594478086202038873941458776786903452890800679328299575046627914290404846620160685401041118774859207098318899626956998360291262407932832244320947267257788920265154410819165862841016409260976116102435322244840538153967126494260062066223786076605876745594284205628939035298803611956449397140825482049897293237501437474363012817542414154911090616495989912783732984182702508897825978357404865014470131848198007432772446814363122432663120220101932398240876263976627007859567942101153156803634733592983807946846625887679737308598713501884027893916634619686773139014442897023026701842007576236661364064810354152398596070674962467059597111161030489021134055586491798837404866758093496784438018637597710253505034993297883850838425078699755841820208510820004167504011919729077545225758460136670678608543628717108194542140004234457041864914250713242360502946098725748202076632758563020525298125959061880647695114523712217981671597044178269183477191903546049855104083207085402192633293812998376526174642151360175112719462437286665046143810147429454349493732975243939251404693662172674205130045560003733325714902992419118912123561061660264593151848692083977152751115646425819474790530892280188591950901087952889503440507644244631626571927593893980957491224390830147115689716221459208903840801585088707656114029602322498904032663550026517566835471142824378391600518007008981264419509566180874733831842626208956810424654070348543902621229045736387504448480913714003991242196539112227832074854135702818568238457383871211385722770027513720790097287463629837481308301277777442556877868234459983761022360785741670708490926211284451053504342421050667147131792418225146142822625074085147522564128046020107260541864802849314178543275784110937574530603053923082199512349419844853927108097810474375668140753192794760955384465740633501354752705036167732482317987159560782837716096975083875502115950049659324786009747493360186175982792813129143542548148153451599729074067996034234937507026366748233411269249871394337575241828512953091316359756463370488727207625544979513652734910767764863454564842913794126467930300489950990968583594623474797442284810254520762650932124174319417968650297038170164298811081837617264912426429425524214099028439573620078972836831751469555427895689243682686046084069404173698556853362202990304066750370713964729279696509414319051724898377187390982948537523817757633276980010801822143210315019994970010277764203875948792243829606480271687155527133588705412213640297494340175894899398086964726171033428536450340063980457019562409495469884197304541235196901190809440654546251188017145516145585637344951412240792810653810310097971942017208025697862677379966206465992819181416215215485082415236615134594579055447805587833082781399840520775146015645577322147113034438074054855767726265767858881411123510693108202074370334564071889641705212388602512590660618994706541553826604607144247374813485144253816055442799758896824253494279446817190520926253125525002927300485377224903435490132074518707240377121057755940485735298076222566294545623502832127699362403448014423550243613760294422750253688940743980651317294307897677700792345593455229280115566477952863819957173698886331642712928056705785590814951354843273603896003610844397395985580475369888450889182425377733738027231895338597567542356628300737956073118569755197014771409937187253473382802918445786321652993826464620445261630400567283915434608024620851276861715305359734050728548198413934916851808462019240847969113301270907878641666419888671276631031380906287981770899060955876818359115987895567758807293008138516983959180810658850255781842574748258245882893640310899732506591695839353048258580587717445803728020714288690460056519610597200032352677578974238401966985462125997464754227094256286445001100233562128833728691169496491758418700159259414173114871998072690338936957553985631477084244847988556970547208511323825559091074184021014197872260853387052004206742356261475822007370613319887667456389758296707555898820527976731314018511696910564571755465972636929946377490810569982263601609296067249133502490574483763244845115572387028163253014411793689373227754739437380686612921795386709656493869584468522351683832208722226353312358821999172539878241315501774429139457805386931502829167534682116957153289241893863698934000570025480129371365940340684512676697269021565548932445325645301840385809639127371478241482188885374418670800846898919461551222591094139317013805936185723226504596602248481490605804320115752062385166570959577561613571616582058808505473888222596500217480703712498657635880689638260335509623058527826747044402410740512549103017006681394294107524793280342995103889193119343785504992193786109239169725399988243771733690145200386448589068294705389052210785902107746720694312193729067939930904276075441518650799830817393382484423971035672165695778037741021442946142564689687280702526033190760903120478866328531344354578388529163060364149733252475135861256281201939539431300463264124686500236369267781463893570849027988192406206157840692156339453804782647065936249162674014682500797015894389822051745984269503605428082860157430218791409512786546588094514731525291419065792450346152758213948305962027610174506525035455764481111387746872224717179100681257900011545647037194309614035294729059010665046391256912954797047701886853743739227144400318475825655848583088804660385419023451315798148886253223580166779319492014584969854977125537108367262310401432101175377199719389793802983999856564723643640999806465030609717662701581057424053188532583629316185943417073976081774308644553023886330682804559847653863926320700845715667489228663944056158285975844061159499159144404854195681052045428446049426365291339357385068419719131026437263517371588977747322162944889648774433063972552110996980206253279296369564833355814179789537813212379160858337363361514792831993135155349674964014581751502249725172725364066073735218722670528544180188616248983424330824491197783760177174607047972553499544275898141281958540193835079967299828351789135750486448430790584894670321446580155759509054723080872351926674097580251409162952101069816640277694323111917239039291302563799846980513810202290141389501981491743325794850607333586449188256394468255592623257962063217432910069171647532458691931420095328189604836070864793965919654641375605396470246278703783671966663565210696708294704716826373645320250414643950987033289889966312073454969777462259249936877461356333728710591878360496670642951310570281901620691460023474628993025656781265140923615544759453891790151280340718726879531809573292360357161594662098170361333725769478977546258467125533552306356901138267363023335417902839561269907417564112450213986929848802849705479315557348568849147132759585998903803639253360338612783825854232141519236985451683975634109174234133938228057589473587676763567091995705548206101378955494885679884973167625799783893453476767147367876078489705092171794242870002423794761344899192735372953899912855691271916918349372543908069656845625957813467649594677999705151456551663724619206087129024234851788618585076719156562414682327373763190521876690731685984469481822247018556749079995652944397961705545059322585576624183062934457799868966799721379616417532342362027921804046144794632167275242820874102788778463732719094159341774535378400118921903084795251199351704971060083706299349555436104041827421594918787062337211320348115591938848254770692523617340566178686886177407483333650062883218070715926037244005123392810324723759775104017477982534197684737714743809286241712877509480867811818809073712447251799059546558220737900343190336335916332386634911010200739333636160615684397511337565367022345745518809912932495868029717449695046787427058171152049878312548939941873989842471546935846042984269198081733586704050194885769509338145569807696722083618256929241945848185652950331938856197399970821692357094370518539596074389657136069411528742599525291362342661488143542362730480151602345077516964892354764271335868026263270603614161854806103482914555502408686870922404313778066789781345762668304409450807414138238608798392472728375271910652431151567957209134032634029805499069707347844207822064238282827882669737712891437920710547982380438187665306798683379279007187461516689228568252502762955460317519601266788364224688321305883215261245397060606495821578930989247702582515666608147922604289119637057774357628323320396830951852601331498710375437100870853193108928524920598450016520426653085917499323124973983955051778023756863996652093690044633383056065674808169591401688869242895468421813258860216074945623618790344032486126740816421136033528945674087869016298577583676419451849888986418604081058028178036874130887421713476735477899188200165393034838261159091131716944942472699770738909911487218159943929267539474823481483881734742879801313356816387638045913093808953528882782930086406732668030935467258765661835356706917449588405532992398189033457725559079501388019815538415545007686535113005154132274315005043114230544043394244679983222697836929733962358124309042480730666528699193080320025912078816833583517717603193411805031927216615259642386456402118876241777842608389609705802049998103131235202521839857889384606121347528935652179636289411201138585397540492961410894891246488806590237965276564322794489306654849164309517888449457847134430371772094585379843099509160211619596211228276273181818845541591232119055593596925107244034122889679660498007640309110133262567476522555633619320786041371980438648124820540920212737271314188500910516047724780453708919921252325608994988997198486180831624582119202620637619084396560557256189428184216918573854948227810025422345199225169188406664826249997382044976061430582981791209210548637920367364522020364326819439749620560133371939643443953329926592815065253310795124352438994722945070534743954534035647329959481239807645222707210289204923463472615241727261518841193726176415647135315681100372853614439551254918440183712542671775497143594450409960739033377982715153427275361600507099864460030123908920179637181877930456821440414298004566639565927586655786259046062573738455189257589968350704313369663245931892956332274063490369921363837324024255805390288305916232585319876267588700400818998496940081145728810747291934603938030024620687783741279846576386405875302702869898833036473802487198474485147184142257204584243603077972602475379282223618677850279181023614146147457315864510851392118782900142698838698754874088037135784512430731568584030115197295301194181732770190386947535656508825001016714868572845509454792610018355197895297596280108496253875315011696042743255762792132007587452669678111732337883555731723658572233345377431896887816216376875059978566334203125367287043991418556907847039340514030582892308574523554169364681835652098268709731127299753998301537012801647755033230392602060238266785443881962695869776210297518653515999954598927811770424469561742130539910206172472844098704688735723195953382934508545744530522719062699294406813050009988090564745216948458635211265112942181598608395235200945093294338871951101499711909146918331784265292470997367000117978607664216780375879534395233626931966391132169334616542892655797717402281056113609994117298588522960131253202531342226160864635467490666103549127958191172831787671144119058327779919979409750239757211162688231436298903266243694298031683981329367075716787039875669166014323277290008316855202075352437015969975328072802096992579838170693316475875725961776060490653782895662919254020418865417270137836695129672662642362566324622256354010282504391901297704792370200745626165970186355353491990191509477933063431631776487958159263817149367717458646859536753249157032128324888546298339268061036116210746514935383347660730583915045997343591447563774707910504213063863993845425564894728121156910429126681747214489904054251903112320738406360162638079059570196390047994952656731463682064142332824847836766217143853477278281178164650519494419762833663609957619247115592868458324122254395002625918414264834610478575537627314745709432690824560978777756975951368854147838299382305057942745745677551580773096036358021034900899462012254720431694341503035323394260572953088073714451984588267472373847157166909985085267236951846309496907387669245066536484737159281550803569436963592028872373895224011354328401282576634251141081972494010194076135233647094671172250756912854792495571004360038928050444911747230036619106703010983802893753545707037977962655263099084587365532115988846032677924996022308611385582505798642937371882420302669519124580641295553541863569083430639333936098928610149428909880008796649156536216747559765849537386476945889049023212098327498750905327803177062950556154466531727719083450239074526270772350545871678249783450479335421646614730471928811466474709949848826779697830714965740590403672630098794461594243737419776378991152078561957056964320043448857512606033390371512693287442548149683481652358520994720373045370902123122134944889834729417412613685566328156876232652696007117765997842274275985393604800741425994370902291810862995425413182966447350957667391693655210027857493951685374565025282732500922442429497592242631644770230924066843537789977475740860027771927454020215400562626676064490683935734431504250084500902550483671457813946811935243056565759806875308908949526704049831411759475573239836581357455424769460171071731727064434232885220628837873212604065569635246036190845675529198600240435204174548765291277737703661993830639314048940572121254428612365387764420553374867020907914540515221661307869552697517933626024322103115987790658155186431819079771082764390565936285350868366299640061231879629331943999986621375147191565482775298195344420216760826687807042727295235990939645685992338990278254588924936684057526214922711303951589078992867776966838874196188319484634430201332537594269094199830810558686837939994363325268745168345541454350605544392950943930811677182202825931976391161139166003023402575811910270676345403625664413724417917146317972338034876115850348644065640323275406787230559066239374961161450440363952603611333982880769044679070635173545725116179595458983679240304311023019759175499356085786956589933565010289172167975332665619698619590118626734651484539649635645655175937067542120327974569488046675486169372944275643213998153520646079080321345976917528370515048550813875722033240670530569232328885871107765037036888333185030928188330413357812665877626047140029553145975290834027866449581849936500225051092437037648571356966048607496116824196580060570867872536622022109659804308575125985337931909380152593803718495890995950708000041171873303851406229301142987329894895511276222059470856139809438773630021564162130971523384237428688674276518006036547373490746044055726609193998461947929094644693794193495913353129639993218369705213462119547022842275958099384121454715675473504790902532241054333925990563488059398932151767205106245307465428997020348878848942759541918921801432583888081512514557256391231212018739253160156016156702893965248320360338372348813319201297365560447866262983090734881612042183017518931367808524968854362150297634536383601671015837533885277791527486638613838778493515211776365160800958342946522294978306760615617273498431748424570056543603584918894572583490940226837948227142949028752839361766861178474964944842213605966352729716585007624534616358743692058077039782595122077686154651498958288651226509729582902863620039329841577634192665934276200311907463000438262435546399761376333457257047088951916330024916811677655193784189489384806397143722892809110471469657268643091972936609721912488218805741616004452777947421540377497520452579171352228345840851366820793648779681689675483639740388889262390368246364720475561244606149975374141578820361591526783976771692272414857333570126596284831937062970819831646817435202490792197192597668012453591594578683913746782292062656022602738108938492075916496044408922944057085026789420171607283603094653381127514899472144700687098602617341974697747080609783214118910986892703432487343944278854478876082333152906121568444617089648650204363415622507454735654640621676489390580695258540340775355840085622003818088894776064441824564348052045150701695726640607056672160809098211723288299011324792345527371771882429855195180868381128720108932423685916066071499110592585403787081006538131869772080598071242875592904394256947314397100448681741348160582101522741263579946241817483450287466371497494340401933837202936908198214988858475373058408939526001300266389646047955105941347118171274109589478224968698685330771914223307921076497617667893523725681738706333124622956247255202899065590648426821300263856360437767393010680153602671866137897655165759318655035930851189832746358351990117287241897288280102883739421271240273241760991685746620555571587443391974660057078024757572784484291473277069325101015049824614857817718698828027356603839310544543664272536345657735182627805296985248366972871151534874063847231719687007540174425982326485947957469129775378515666246280469465621427161512243714729455790247274296231689698608349144258554326011996696034589863244672045801735857759529321668960435867271846462320447960757661908293909093502038610804250841811154918570723283567159470550837673097287822120035597598835207260076435838171035513596698372565253595648055097852015955668457892318439041597690800147547472187159405675532869110001488345426166128962771154860933096355249108263586654843073224912581760259403792162397546859812113855970000212077164898838321146709786223038592374599443245292244257739060272576672882805163367874818464874757649123346479968757697450620401981058050266767175230927877647155323113171386107141912755644126037169759739144366752835134595760998268185990672908522311265603146678320063925985226686996674907255231536217716370025039237215557047403878415853618917373496293930528931358485653513647163746071033047821150822870528079343999839731042304878933552835230805221796123667423984531845761768851149890280147625000485318278378368744700871686610477342516099043016850042998700966520748944240933846234544865120635979487486034834874905007760423815980282217817916340811401792806173351175994363633367761294929220476283425399662190995059118038462800138896874641586116716615501656194406629900627570751566512355005154560138936691530872732200017432003722799088089686733466132763415628874709689948480927406238464376732485912211766847067341158316092924655228390790036192655086833363300099122920027525782089499094761868986943768116415334714429162204314470973622089627774143669134039484932440861512406527327361406585133607933849017989646529572617037074553143754860213791492384296876317949188413923328615540555592614982310124531790553438259295041546285584028216584602520249847706864790468577924551421407326676416366444634117110812536571611809175423292142849545811001478153495913006674212367377331731152609158346170689703962348706369596094088785774286722560282081787019558198255324800074061693423016547190261247531273044493349210091081708019617550403412156780389667081339318910261815330037884974133783901014322299007814994580980856715506144431994454259186207481145488841166465696411405769568789540815790533936577616391178445102378011807444883844169769564049546056633894887665647007186727560029563845060176327325552054506037359848475761073818277106605364196823298680591254417933312769178382038587551513110228361033931303851173097053360900413918842746589855514671977404103550747490939917515509429579548891589437914261107057837887291131377007390643065110966020655901141762326889845310366318507053435020100241897015305091488212065063856751857973260246719977762869628359126307107211838628913428649267005580711977034469809141213358910728750083482074883269105042373740580196993124011932356030337706621887017630247143749326381461763503119504875270876212619603951930653913430703635499075648285999532148069419447273848101462274724504690249877179336643487169094665871677887901825590097773071452300716456918521661731405033966179559372582921834152435129779579311841006094471796000715652436980421792669863105698882449909412657768262016575135519272813044120002804299490374573332114376460921395524709180336119310800109171231343823233928536913339704042720965286378870286741299417016881016350889917556199804726820019487129982920861956342057715933470025773768534435609608159749120013075355197317894531032492224289383332159178491950534897357794762605354743051489558384488238364347775518029830814377931843743841844977049524277668317735858369884079456753341229940216155825391140645671763599513617508582370517525325064766021031760631618063214215044149091662771343338719214140348310438666254399763495189719581758095463446859141077396000634077215966229889173865187246997649110657421170504742608938227064533122999903123657550117044994506826011295063671679867591859897987764552924935746573374304356985422789394905328601111521862890183844268104708143361478232060724811209990259982773221235740459961877786689380572986303210553497005876169074346464488065857342843099059185566975770164582164813907520128202486160067757474131326401480854499018529447212889656689156266801270554957259678442755625497448750517612582036791944301975527288941355236945358781560255316083349940794021836321295153121723545843975359605069755844677812993923109188840478273832138748108853884181343446827961462629598957223002344988145259181366907084560290867389862931330996539588226378195174883852683885295379410109919937824769786366662095080953862113514826736453117598211942813006839698878085472766739052678210173344787083217635510794600233087033090411817126089996820980761313153914432634405680101253643609949851370870823145877642367129419142638518518498944109476658741274001594656329009433425192948405474097439040695985469504910700282460119195137396086481807083088904270350856465608756530056261823863251344844742373648677546458388828511628626764097313862106287622611405712395569167239870720789034722675630619943231168302098542845629253278051890351989376550863204041171886642501573176436533045532373677233258885253194738323024242690286290059826607035136522252052365890405056266045476849222623940087001570154285292686095538993720867201860826403181843665605929696860915198335491652666427968976330806615492399443564051590180074698499560505053979045177046426823733998289529461598855990650705234011133697530699383593370788374448459688698623475194206557532443616996577495213300845788224992520351252066967357285395684132266069510279136585712896195961935884422580634344504637712913412231220187053382442307993016386058787958536779676471198292158443768001472397520490991823456708365573762369745633084912923955436283943692877991778051050199616470492635451640625984319489784494725374725922783860147286676651834051161604961673153753729320145164263551214664828182436265554041611171610976003949858358776917702491753556564940256501085908685320879943525467284416278064908981760458531988285845609875210904109079105845814684223145121461470640975192684213313273848723730492456436425265506490758534205658180747224312325071576905579196000256579919366688590459808597069737019974193137851950332218038776970640266101443393514591364123384886198174844571755798846830556164331112420252788183328051681880573213194649962988065494448166100787646369517584734262382810237329152436052477731461218728949461319226103036007554425930329143312351442495343057210348951065133692537056609738680459222318875792284412474392357433663960096494637104320448550525269914461424969593053856945363681835007674013570236324984340784538557152877978507936408284063094662640964887569087512060187701782581865838686678732753010437171960850115001813313346340309635875952613849132328326444882044524618837365585490979116937169130314006609397993958109580192253427936018801153604316106178152224068497962610975224652530820122547656379207700788728311791899296142970967439288532699186476065145925204870994384775810312071479870486329464014167453829878437284004465202659737421132865872790730966209580720194072513320890587417936124524853451217958133076528572631138042984982197769340957821576638441058430977761657177269233539656409179116224982459940163458526367775933076602730593466481802837322396287963633191380374727070869842805614081852253680765766152182879464397013290253759803423913991039348670827837650096369579068875496938305013280796670619673915479009673285395009313910369102090444721741999971341183644521694562345731278823924997716757938262732292566884164331161310022429814723860081249191440080549318066821622143242901249059203919954241459074050646873498690887569642063200052080286746749426506429291106472677856734768887270624773213018174202509650980507596325576499431950957581228445001469170395075311307960049934788897529775811725512827921546445074816107970862400329492478246556994043929324672436973752757310571909746714489282898206284483620428187528312115679868112216718359371430313209493349033108184090448885529849190471537992023790340849956603422760375693377955757552436186599023676040961528522582388712230255052239019621642830977387093977887527832915877954600179723200545404223239305684680870449823085232481391921687255197515692814675422685119311706304296164756523279738660086912172552728567252021965725640128420032200146267311738839110462179058460442104926093308798224383141723269667022497761362376560678111068311300044278629312025610215502178555063054862427913324857681288992384074737317167353160867071767159593149415507932013610073135159987694680419003143871382845763721256056280629954560630582903329642404691457400153160054813809220682045059186834717938881526004849356269701968421869611135287275787650953981483575230119914456682574483790889506216726813982067515919783031881861843777061755471273769481509365294388689999510883886678952457608344360130498931107753461662377696844669776579294310661296454259904549429336629058580134800504801760776923681665983396397338949821185575232226015315348720212192394561402846754835687603925764894569650348858315525251807391112557749559341903656615561132990784844379232352500025190714404925683966100663649854973551591209789756773704824722998175614038750779557095341804837400842353422918473487836530859468161145950865666774438952742217902929970786823425427341150169185538191989086715030845060820949913507418591478749758807000453617405936736831210010354644817185377868693934192536602283375552316932789572868081290755034789152269513840813337478138933361984564985670870794182801885245669726565485278896430476436016490156878010115579815243796740294622607238244267171341364172293905232635175617917980632369043722331799256053304907440317518860888246524474056539866572297796374473326161774765342889368891715967333203111427438769539665904075382417649907232386362063365096603510192131420078490075702820047051296838636382712921108007182185352597762858333182704358734758188190740150336972218834931080320539184694111037835346361418806834033108742672748070200373405817573768135773375477732362767647713110540436221447296124301773387503129995586652066514697326852501138943776372512487271375537656968564823474838778134668712930855477871868882638605638762170445361767447438339801854978660669988044374618384465101170215814948611985133833522196256596821683071423201520917556510097499851457785980568736360886076798744850912546827038061846022335134660558841284542688938795443346316983713288290522235165348736189157688074518020795448092517440248078937640464589668171615670230834724428325680415325997332261529975998845759638440886289974728489645090921656681838979398647149931094312209638965680847543471294018249880057331883839681116494348610663456771793864004592186464361166033240176285368957405055504222608130656436697194150208397381027321424975994740310276058150711634260538847168606835207474862275613097489253887042549886231276829597331387591910123362367202125533785106042544986953492520684710416088806996412087456380562260657125238078853817502307319603360772438332928796696922592216947535982029037266415415250240469412970048897392029176037497439150868032732991189667204010358011808286406672816682122327411248669815778816819754227827466000731713481108023638044424262728911386145445953567523502621620035782915417077465484718023132652872090175470688503669690606496963361072569138631654783349618831301061701207773045164405553065480079485272301537600811316716304336093326253585013060947336076438310579808604977499387835497921197658416323060356084357124843447366128441340547493529815229330546834566905606570730828711324171938280514554729157147843227608992493022549562486863685783678213507134845278238243061822512422881465082499302086334413946026777604800049080218040154249612594245501898857512021616603121369190139283270253501118633490240800559968359683640945692614812742346265002229659381052169980099515376190551685796715452529754099556389109979982170349953725082292325751023266442411648704736205994101615075435736429204767586971430027335688317939821154457303889330223895618735082063245309279727402176921532771651941153599044392136494253503098015632595060440191783221360934572700889317734875040683436414586060143408827119992409402034985268495603210822153079366060935153650392041720553591990929726018430612866997800062894439405629963898146967054566308653038533023206965895987435053036632171475867034851204665556641059938155571802009485135770268352818309715990349471802712923044036787179208013055409408163082597533891877612187082299829931200456419801695908672472927101429845809922778578490238868344206088022706524207810399206728854161392737743480786484713054718349856406877491606979835676919313831006012693918094386169842978242545671096173488014437103304383769181209796410019429841791967655510953198911942849974470658495416648782023000704279201846150451886051029289475208173528096273545476941939628189641139747920169516047155983430885793404276845991030174430658695229561374251161152664132960514352829738546785493362494339493483930958716905946092066665506941185570407448703593445448380859134103925970594870221938263913465091854744803851728537825307335942462186782962583401858858719618426278667347889608831860309486976779365741890943265670403944898895253329278078094667180999709030369701042832245392221091576289131588547300181593123755943862229579807267468608769722325545959629610332808207056734469544714023470658370251161061260989266338121840747638514688304115355527564703131412922396694954419059757885558041959466097590394765407629340640581979184949054729987995068000783791979282773624022767404068228484832389939664118099425115871119977073693781013670114322584327276848731561834204588645874462165651072937334109715503062285940192274312008966698485696957922288388354113764681385109106450899232126278681194893289965693790300690267984680008958569995267224622834741009401453021066557494528739520484205830882984537359091415562015771120363765286321553064034390569468089291920228466144436929495570193183058517028034721189222579907513550759155440508137045526126235292593538202502908331776426518087289131586926749114751429324321560225637147401462361073747370475845551430204325301496516064726642816696481280734374485052470111010502829201707525337178587565239429838539507753310219492617325560955081986385024379899025539444553474792931411656876418950085107577913285295626000433033278253293250796820917475629985470141131194635101151487427368882098073162954353496481613090323670998443656395214146333043977721683807426023610349583089488662716249116893514592914107692029268558772452905686692902350715775679648148179066763408746205983230614096404176129751346802683357011698738262365533972288901087796030444122021207953046805133832973337926149756706896485346083665546647608527947141013716917537506715841725721839183882384018003397055858989719761037532475068391324887449170003818846983153475827322599928997367626909337256007450170774523369324283114635381150023515460813182359827470632251383205874231327996922564765808100441959996070385869382023762220757312670109763527264532026792788147071578871166319761697551294959162369319442453300469894283537260552241071986179830760368877407022527119631902041399511213426008405692249161413595753277188528609868909401320260996151808991747251728327433083961446323170807655951311491847282706569874273303176019579778226202263629926013336706989499248924410927927620985065180034818754285345082480231071990072387565334114491440873002968587913028627517587995999864989038437096121126212590042883655942245011401493811849308337180705503112531287290408227281230732921754447638080859346144321166418905424752237334913984304718784245771062252393512559726823974831182544346832423373974012222306805794060499709860237422163798374268359610619904820118895842376658770160051307955894338997174572756666232006865451478391162292174302042662495043592388145199488230910162525094017113934281676691632502720296665557862207483444040658742370400618110764612595854704789348938123526016528482925125747243112749166095109727524212273482548223055455606653132112964100178680331928643785942460435145251103904720914293301942006923557601262444367194848033475004796022293199619949939883241408544399525332355955981783864739126556687296400815739353135279029726293925449648118256497733459822505703098956253458980796069470297196230281140986342742759259021753536794837717607315401369680398100043629232653662542804229297424538981477699923964432976538711401039333109092872500765740630278471965528484758363009196954960741514178255407591709048330692354900587934583985675680947381018902740435110231372664454122840281810815413933273688708993796829702685045844524496852954816589712048361816193362234869236434575162628568541336778728837751011860629858375672997685371404257802448060546812001382416860879824443978275257942565103803398848777467607100115944543881821614206685904229771361092069249153641640375019237612717573067790708047666768872774961313444613674811970422842792981192912402223436744245152818854635340839638746515831405426884745054642588396992292887644617186505396500834184554299054424656445872594952478385228311454658708243620782865759235806061724902352713840063188037443549681780558254495080686366208019140524118920367288246844899162381364853461209482136256986820972687312917547181927768471257168689441633621864386846141678597952520672807553060589046394614407611286091360645922023171361532032609800114558121924366388625521323808350762080793515949150233526076409079976591537611396426364168112106080055257289510917068362611667678775230428387384599281817883424581029822750405213540038413119598390505184604236978980555762477764441572347688024345649466757402813482083692240409818837866003350626946328934372573458168268071499106561555282769630488543415057955605628282560345629661305502517140185308086033545701753257868366790469699555350554501836950650092795393505485026443142025823463660494130575357415770560797163536791118366115804752202053107740883345609293534929116160221140267144270940338910898624962235853355060457029060471392207983927011096405331583259597652371699188531790622752825018250431953814494450537781292770032976534295734857334700573088787795581562940537375846838255913417640954260258950060000669229010122673446115261099059614508940654663515504772865099710767432646130769973916729872154026663277190602077025813903390639966284979996689988846810450242064852602784571616272281619461183416058053113157097982907106829838172786019710519210404184526369450454259346386211373122409277134214350862587395374996334720381496488179997652040711513288303544884123019000020241949032636077548557653038342929558712736082596583208683676546028087133205975871669411435522576227550122665687708361419166121828859433173451046726323496876706101643327023271254954420614180471916948482543397259708577829096246250985328927457214087929477697976109754878774907808166982174400094516481537300373074375595341622851371739356532634657733217230663576343845882084592640790768883142964364276844839418684544851141766287929217600440758179112260863085654777842448285847029748633950551663576796288785354876431886343085488873898584034158131742526796581235498808251627411299340524312027857432880346999146181580086288448693892536374692559887836787112855210688757655298245461639501509449158752467592192382255580134609058973515671551715945683310249408977449476948490949080809471080919795306167328330298771763822969459450494046381289233255589761954032801412979211324327147056292886401433076646066224874184368607968965798275889624184707370707894490493860011379542518183512041250808489727044375868517800152750858273025350598085183172097246608469300089382063648979130008828375943165515215781627513187092149126263813412135760348344307457362571271496126483329655681224646359260366316544532600101035299678767731389952622647137222104491366183915988149584479898897377163200904413507152905989762370619427831246158439200272704308108079549646862782922417143650323525570352910221723921841838813072702021002242777760370852782256912414728176037094056390393849586914137270711674338147036343888731745258821272606837006008647992355913320545908555496335004282313537696921169207756389256512077420872580325817713649480707299682700368139473330790063115142724420026864842696282566071305206228293773430971412475031649770861270831522300740240728171437272121142679318669822598257534395157141813624255664093912975192728830995203846849333139626604383946819977819298770452156661602474240867320032374436121453831440031965640243981512153639472529454317614371634344690199178210721527221213360676644047695716247225917871565234035082774693013675746456163972831807699836600911702187622463682639751505844341630531030112531912400484119365603723216534750818828971412339296025095316172769442186093522621108626858877837170143821082626354753115758313082478388810920206355593657200641141902313272636087345726543789369281886832832367296957415869512622452250472299872192819152276586345671118184890308096815732435016181228129976753559978816105581504534396578453456067431908802419372208210479392439053984167170430196710669338971188449203821369174104208739657070714560477200086699153414466450514951953793638812635551253440234292589773033891845772306846112796707249636955813844928121442803516108112510656956471538763199276808126164634324313876780463948930071585804064839947190716455794229759194629116103746194449308088727150417229437337161841246515158907262812810902472719252932025211432860695164492293962071852113790987026222575371968435448083528197777945571543679730127810819643138973523682991830821672007534152285574210430948610133989214754058415648852955457054671477457046083585054499390000620750669281307236895068383364048748523810676358692728326750912714865664957140954854176029495349797765570362584805134141480402092434316794781494656086896787719844213000210969288083059899819389648934645767302545054692792586088042871482495397867243262978636543655220026248376024514062971165998461331258454445450929373846531037118895627666179141209849967369686207106683656691674047812045360276760792009392213072202798483008811957011741212968116430870742861234160193009255129143683415354810851844248809228294652900276400042713905252253323793592497644266737833369494931920170495469820327166869089484046632552262382839464978262383211527571646081300385567935872400143500873354106963823491297368055496574975432706267019926950064631932944043686122382049844339644164073882631020821386776930416709541691792448703893412499935656361558513750963919910769070153640153058255334758289867586410109722397899046131758343040761511026546430365966342711760906138598097643073344292780565545156692428470263202171021386760804838462864911970738120559945800779618168197127651700675844339112867146667165705234264368926586281275617653123169810171753487380484087590396789190894549380809621565910000319380688188686470229669138910532513481181346967149921795987037431707061274138643150288323500975854109702743268262634046792307553476591485050000620810278182331679013264255917997651925697964167300970916269165827803214619654855478759675372928410231051466121366970919502126863650320773142092248269340644644234180995250936131518116799937382691432205492675710159386877520644846201779607996878932803853127342774204010517267531278165372157929440310676993116149901502372164156666813477210431212300489304137707255538827108674905869141452278993253109748042002754209213840189980145249420428604521866153460057898130240737434547054224553498827304733798688956616508600371914824039211659295560942330532887493315812637740439491073325715974083380944839780238587674712982851658971237848507167247845428397174743771212720858682946460005333246871289102958371921627014009423781339515337280208887215983373228543066955873692860163887475894621005240464623086279806513727426440106256877419103631631531365422004086255144344857575824380879008906316744643052100476783684167613460328547361738617938212132567959099032908921216271105734922542356239408791177273959595735839116171724661639372759203322221430618737918696368149971928728797665797953959818719770550096700712468343138273369901056304817867492135402984995466950273246239793939897507012205144721587328796839387684174117223532958565323818047654345878304622034791515325181364616189273060504282819252968859062199205562727266424058566476395036572454276273315151493689831539580870101943791968275994018434832721470926445178131076124622729780252105614326476363179900079642731577658925116424914405247853681020539551188505777883797548318765286478257997733136045287331929686846919485521764715584139138801332015481980748652214315170536410456738474025952543071673737669312494187720193042585009183370435137843085654484249162767704259345769947570179528135041277361181251594552850380552902215511513646137623791318318442228488003847797823341160654033175737588548213168617073604685176729730254432467785098558347140091176165831472510369316862847581825377160353710331060220544651783935397664862364250442133813001775980159109612994476521091702775529624034153485095839599309895707074650535482326377643883108099467747910219159616086841206189918764584459506694791301743739062468928975854213069249316150962563810433889020815685392989882759043578360135090559115876048929708847085433075747659330778253310364807343237496991577797758830154702250461911959345112053402064150308955278748130841751671247980096374826952684535183517968034042220993647404697686492610673494059256876678559233590064755456036576460995789973463060947674444421373883229119874477092288633692078186897301419446095776692280211072437022859076039733308655272944827675030416139781400327735187373883311049818524051503436276375825561157495051603575691847609272845931750917624776577144970330213907447117095560469179402099994931087489315972848266550818399844795284682656341150755069747916446827770655050894980642068984692578625777313756742096873706735068525111293708218178752797313555256832828153971315441185494515276685755420259589305031483226656450403109986547625414006859159475588609971942998225495387692776189781832181352271579320276206395170280264893916625570180232408402604057730801388221629649915353891427249817967682723517566580792158958618971729471319980340504345418035871375381536622893958548839727864325355475143319295406614215119287378011050801770924565562102580618128505025240697375126911535033308466046857256835277160726115439147733612681680159048831172513286931219475592232500304963656717342626099186507150289649456053175749109585284665801526783786220077472144760166892087770932760119271116371668423606863193764811484293454961485142822583229531226723018283242596360288286201507875247615259126547769933586380271698587128809566419609821025902474364028910823365510982117511044825993383037454369910513590517371771536843045321109254662550534883112668140449281881295404786939238446378701921112105290535074489725197707704439888785312156923284148365169037442504736101357260166615280292993303246506056477498962646235818374625410766146810128343046581195728440037804765313744848333746244729672342786618515871574300802942717381760344647360423086897330575185254501695240546153443202140864660183711420303918497395849547901618542028406258615124800345217285566066875997183796336081012856243314115013566342414744008468161238260791528211574189761760541050924951618127428224446836373195190467159196212600620088292722339955968667711106920627208092713749147282044758595329841186691945610721110776451161003458517323649750783414570990347742414339244854941683839029979092017748276040315832323323174245095389220438350826447832309675503700905251727486047040332573628501013968433804801875028362842569784109732873745407112836090277752094275705379625831409595614188575810340252517335317210238430071242217323456062760818876901758425853381992545076660052094219397687932076591107355757195639353122879374424372057883029122595481816229075189442154188472811398892920328029223384313214174650014560853233363445071342788072554143869195553076076592405024838238858085475055684584392203306606962031052969345562224207364000993824552828979055921579722922345423150373243720139807555704565391867873790037953373207359598924933985142286087988798427342332275530169867350241462633027358530529642434254252514167748537227908463772472350389262305981716721467255375748534461856075957016701380500849889079466608319666464134024861130623178382196739512263926411636677545456967169821516370445809159664640191143449457873370220668032913663563467887372451250335405838038560590464208372236770355961915821790815401709842608473280379328832909188657158005889516885638668922451480309210503604899791829438599473090829018277082720357439575361924303086638366006369740404277151434927256817370076539338360502447838217686938844713085340463866643940279924714745058559004173917982170810064764755117272433357699757234324777982189016665421519960675060403954089500532807545505555044466154454624773956188307475075670245568109075476145054923692490126589650054920539933881131381583851505258610794513966318314208405436035681941656887517317247043897648974810863699275042786016362035647133293068643685776047507165586932723549293368344077686457695476948903364176949038712729394144499045404750671674250921430075718377887767175547241553226412480444185758084377736973340318209376594958552086792180027604161430779099205819237035215324709189325709636459428264584214464406521441688684141050318429930382096236373968672225187326624991969590796094886701652262402545339160992406391917908315220095962883292963908924302730624527939531548222473682144892945450872426197928050320457679045061006960398919079491540472603135766624425592597988107106669823382647588390810270315904164485480103207753120393834160274542585564480162919960976879823035975804436285104087969560913206005476283260091611514077917907832816523706171185088840463220268044490882653580031377809173588794814429767855393037800644537714564575735721926222659309791257695934407351015452543006270812097203553796337631478732451519162165988277167717320048851593613628679607773381483207720448440143970982068990094494955196021154180223796369824889387062440584804503876046307201881739054259098416761161952021563508543667785007316588892621151983372354481826601109101898905221509641106727672367367884367127932854725824132101412156188387262810463812299076492977384765418311802137296508903035025167326481851581934045814930658000577917155424933955696647932862036893687718996814781688121735070505466303367360778728082293149679755630413196855321433506969549149585716568760848587107450703194405923210147312756904293683147659652349689828374750934413850055166304279093322824212859239479529426737623601084994309404271187250591844257997756596751882202953186034531400730223052305764244978560127445280367351752852808103839865906778783345965000191548033922821154418821176298581032197002396518594713374093949268656270603702021066409497605617396847604514299875968877506350270221016207222355029632799161039204111318088811821304747430010100544116267548601184307066223364910395785849548278439288551805381863481381422024761656554759506543060621321171254978846815673768098120260480913258746100760352220400247435269807285084824176495651588475878897591295879181038110076615826254775697459985576148405545830267677762133736946126747706575514979881929907827544113889241381608872298671463674732192297894228464806726974748082605167970335283347289687160110295736702796366368442331557135454336610506986784691074706099952614024034011018506528770897223504805114811427026923249008865086210382290566235147950332102888473992277696988350089847688303516684002605345149430353133906659882452732279866652045452669357622940666938956555131001375068414191039608258704396845807587081784845744728092866287318863386061651225695388530070006608142139232536447589069787129328437943969274592184689136347951660413183385505131274545506624398606781375658765528279090874207085541412274269809926145830993792517641812697817835599793313329490591370761838857038215113649224822314578723706654010022007772872458852060079027660313162427752639006407461450222783357068174121908512206658621994394877721023715358741234900421358045982692017276357723393667792746365784282851331139813487117873220806238348812179500492554799511725747539303653639473894150116528436076967140110488382305831695560291989860828619330728315508764205757654562341804474188774143432851492559245705160790594492482088157446062222755814889909622540139696822813651451942730787013665054994376524928932632534041168815485777651808336361416186108088901452242793142159923173537083195147343324196228364392566294524251130034377153040375673080608477974729092996840338583396159262938261089520638005202073280648372628256506294232150399256818026848901863323431114914891529626633501602252117716202512294063942925843300428505695250999439329084017915035059669113666545226131191724694934670470881667099978512135262731197270737346655340613159871834908830276186841863966298277097738027765256995444042763841417601197487919481823699406099549468737260358826259301669978003935986300337073731124716929763455788372868963030378935547200042781043086073987262104111352766010236474875431622014883422224214048214025572142645617289872614197397453459549311987909670158166386789523396162587303078423782665686261412621361276958563156727692255509251515304820507352739653380830127289064518632404081293310932159635622639665452362748989345037170373265370790660615017761851566972424441435099234215555744895185035825774305787509339671501505596231303483222480298394228225645530584163971183562478578783407501853401783173583505268574542219903032609322656651506103439003417838981354726560430299689776987133320770221781740105536769155480373470906477032935245194403592178882284352072399242835617713264146154694780530906020309844318741160604834888649648790157244586997366792522093424617355996045529167355688888260845181357257802660247229575342152823119039341193814306226139851548855002023620500560631349414658033013004901816296717464831292603164926484729912045138637421228297122331963300611230535082115973680879420702649563243515131172994020165373208068446357989875466313977036301604560062445696049310552650192553381835087667686653387294556412584352907702909952191872397503701504852614590779324468711367902536249831045673043222063740912947082632347052829129404110513523554125932272199402082048212325706445424858341675635682340152869154186448349411064620149393162383944245136255074592911748079183799843528317696917344773037626981071197746050553309414404275912276999347601156289336904492669035397098697199376203857166540098766267921308157936465011475869949988676353371114627926404963194623163732433439242668434264949491742167415715381973328575670990165379174066424740049220785951487350952980288891430302011680784751707868556305402756350130640318121688319862092775783819647939730518087308396792844568067652948548300580219652436526044892021097523207332831083312299499957199401726869076449833679898693199268336719279595759750607137077753262634920428301809795182775685972947121239103021208648018088788284428089325290977336014499795331565497077174451875748846557546916909489021122060791888306515003519439013145181115821048003864891599081996435347095626157819475032305936591414214659379784942729624424386059688091062811221456516536703019527117151490271249269731651882825645138892838238705270349256430516001056570372294224851611307778405746454614830486471653073621432794539128980378995738765008107640434528830778512366829882265906473238936743889401903295511240990066555053703616220113218013191396599338592120725291781208952876695149202890481091918626208392815779108050787181209232998718498383716580235832784762478606724167740816116991683458496534467570385046522333822057707735877176359550834171022025367312535483820223884778490751869506407012127009374402386120588957472512950151088367277941847417005472431021143845334759531006800638433591123786467225870094683516769886936189045960557986782832105964104415863466525098722371807243498520743090665341745015338986079512549674075737058351709096989501280982651294244977446584939375934477281487019923090447981796296664101795652567884978545516873462035792536978766218960523032332259557900317839816057130256256691874352514665290777031925902102830347786753068659182187092377298050967974791837132022560934369893969915571698466394736266764667437940177002370817541646853055845824639036945972787771818842613988970560948763585304782369858272457846693033788349747197096697950767263683214847533766457553641750538843574748421723703741715263157817144160404770079131440570627667768254484846992914849530100533814915355292031974345666819672243087684637633938263108997530841468588105494894027728733055405677425555439994964870479745119413600361214424956695060029343594375307305970543047194979303560741261678770850006932398136806824303423851032178539397215127399730531876737852363613726624849052217261629535436611442609977602644929915924115449318129103667891749860521411416944844574382602288533178538836213748618720632112313867896681003417445809002569088441305281983954469594358262712880969772099782721713880832476619762475606596857285270906475387354649509861045930152755485495767041442934566987920098743225032111478471030305009609007667321390589842461612654032580700958876128168838570337312110161667957348928759728293846427747220423845641012831497597955473383877590488950740172381455746011248267793012524528830569137266432788854285406700630468941746319542609483485564718981584275936332173283056541090949556713205557721158737246721422246051110028558466971794351937413088862491624037413697575608412399318312446326339522678593188675484366862468636285979355347702078601894472844319013640148015991725160417736845513062547764372790332145868930753595772899800341937330345380365501773291030617135454303404850880742823383309696364693064889861515689656070588743039992136444208442164685306121756553526340983799874752687302027434490340912611139413549686003611467833152646468232700349677570374628203529250366600061780684653443626533084504611143751231260104445067182447040758316285060937109874156773132775393948963971983296927486562650064306126506840905022682713997964790519267454710274678442560070625524282315314877032525570612671907962184926200377444538139720275201417394210675962026389461458806045704000480834447683547305451993480239228591404122721127373026447153786473795998165245054255496274624054374873357528964595853114177512685545529002225711036820919820923176091492950065961614296637741370557868269163393644700555521406416378857499622291810295094009061770778595242803892019465899171005170455924779048598577851685681360556632026504539462128967545345674592928188017060944615656634017886836305912379253315627316419933197776842365077788610320821909627244906164467488785302803364834993393086489223010168104538152188139051493992266929317756651656387130586000566837548118049551593975304848489019588393024395914026324463718134679805141808869098159864338819932850934692448043248170724193609359024710435259479900916297397867931018657427565871495200099172105148927268489816390553337356266936704812428991605756032382445484863175958810017164161716085940652344688204595563717358452218990172429715144382127502899720923333424848546082010306293512233388291422595336781205015607368312121563175335604032841217183556154211966799439003383818293998407191490635675499270852813524407515965073513788853747651878279684030756013909878365913117280628298047501495055649708389952329586764435903305855156481396444448114372672276536141233503748001404377204170592008813129918626424051391360251610373431695333257832884814308494086075966626364055950207693339725465438548336019815803970468509711138817445505395340576769640681779199514591299052806595277509088676640516679704261213591430942376246000646658363112761861763358521441089176595322781967694665377548799160698308499990659374902695573004909974815362062537150962721743126815407634607236004930985835618474887505174183473914824239868529042935514797395275961507277738274123533605203749081268052507527659632505631760322538114896025996748999975416995909780553819668324467578404391278117678716471002127646320748705242587996130996964364820995404241601973854996994033785277742554640239591114984004834377899243769820726082995402694039064514248199855065027795834924250794894626220502049334673927973476611856843109770986415779919665627161819319805878092384439719205467736980860351108624665063931948311366946793702243806573124746206278945041532187729777860301084795179232717621393579725274211830116911669706329114098926637765635616613223544156976098178708352684215816380925645736962113440015452623152105981816087722310520376026182502882794665402705067437520004086223330062049636967596718488015979909759876710272318179864322904630072462411186951173250447673641476889798927105259662713333029042400560991849428503068605493161276379049440104451299004206272574653819275585119549480515579352529328877234331226532390378219297109870251609958310805326948343831679648889219429789769834072645315132041628139327675867165856239056670528493788615208909253638379821839508179585105211027752862690626183325398950787290585546146504315837286464116559310408018147341357502154529794219764435505423328983006921622676977266946241807651518378591433252752679323754803901627061770566391280889667624071349856782385350177449428363715412257584661796135011122334141926603679681273858775357747377733908976072327755327153018724761246961711595019244669518144031289000646981183007953982758154300978082585803767625274229058022289775583302431471781352523558234733743795033385067259327734569351152001505928604742252284096379029787825068042327070938690494073330516675175913329093733978377168383404556230982195448116002254742818254334333877305465126028315478108034704358871563616574963301907769073628014648445914661391884824543324164560465440981340115178996454280099721653174565926257479078454760362559250224930178105926291111075305669987612009618007578288253159826597325468610193050544215330802272952467930970196419677204521521991923630198983257619641427548729964774837389424495030345483670850511273611513610711286422080087585927336364878809856809652262320039431099068444036936591591666383121595426028638350363215623320076491384031772232325294537844284661604606080830412706189005367482845073933826169516543882773613952481777783875527233662074037424192739579417739032595653001843438328841816571081466236022962669238560626130736075512808047446334016007957314985115716537974444749793786737946824069209352993062877604396154420723544713682074689797951404886739898031836905132417479845298279168756826301083223139986780523239653982250220287776715319852845297076393419587378399861771174829678652166777839844769720613134855762333500799411057120861172791542457714318892261846424590400869295417644607892211872898523870049752517028617627128059503713618793091476122075016957910884017417435560693647779762902532795186432507477984880965711544272657980176683017581345912600065981796561287647619086135468047314988110719390674291692362690579652602874780698982174859232371940386472127362689813475141678949067343078917741575932188445120576187389130627120973925193289814288371734806090589801959922024468894420004563427184164205463992352781698807651014186664282580374027705676640337608559511496512917808217134044319455509985236408567671091768775856152443950299135741531346613777927837459355452335247340627497016988574126725894237405006327203083393500631531348208491493091533837963633670873604903170306796955966256864810402673160699581044968046887524498133681048804160361941338455459661329128411213520820833719267537577177163004063850600570046824373065293653335184235865273286796695593070873287577193162917562926341465372699797733311854677978190069274835333489436404102846044442008526123054274831575719555005514445971008262447630395745606677123601066775520303347519022885804440330945546195641289363065346941489522077871388076658906939250988718855309620887855059376136234620977121987007430085224073216429306561425693216845370236989069312027768618114939180598358639495874898215886328180535399180730238859128069774393117592345651685991308996992624106211187214599768953130360778649651528039318229652411144832645402010275357618794760625844990164614800438116070780712752103513942556033040175132380478321232078653669867006715761955310800856622591019120662039856436559911063680250899307332487217557009753480199586412874807378007740015546565463207499465244809533514873856235265132468923241307757247651605557476095477741468362299711917782943719579311536852849422045736159338484754005067165386820806796973032861352576838623745644825820581104673030498885198778091213096098506874613451053095911853462629869065606782102684269725441106498007882048264421547704832043252039609318932559717488412163012168772272669244980926996277230565063853832844928115903947926987715539216982105941861352340785674670992256582144600016246505422717699770731672514569829431588480616252863461231293070704201653418304931621033085718000474923328528381766201546102373449968694175715241866381278954767148946740519213704359500728421793911628563083749814467585256868930538730431588352487277768233889822232280361025140441053032181329478861035905326419929296744477317113683968701882260370248667111393275171587236517523517512971026088801193715599162198255039821122872039040513062079459883010019155299958042821502960674491748753631495115206206780870530797995553953116514330447091210834830221772555639505454009597491739994072381893378563170872978634538827247998421755804316199046655815189290810444962612323358255114679882517135394760362360611662687418292532659564744898715415278224102338458156170309926782125325298779547121895394929866688308955758690519514580344139646101535186462959571167411087239635824912182953256509366742512226172097910689134598516942910129275694617601340419199871000977342448938719662039843601129698418221517924918672459702341514105552131474439408168360997218205297640906859335852578878786103678302886018864086109086862910749030849742472081190192889806174653897230509884526127819619134435962265030436189626037370544924649383037151212295963315472705917854861823107418578748637942383929410335347864058216823271279302791785881255323172022375563202516606906417289435174293251606862049909512249464260069822404350884473110084429312354823479338255665457492973359688127828973131363092394598479943897696116891694944241511924993939824051457746455814720825189295837240381259507589802683806762203545043714092700546970924618422323107902875958777270259893012316883807075714390064633141764467236673267658763970674998276235932398167673216818338516087209368187171393847757950437847503262650589533119490949318356508498982155470566060318082006870037829149735218582387443329057330005949793079595698447441451642444770683897943653263843983043936268303124922339104705554677277264471756920892317467006755508107345702873712353996152528559157897621095665349309151363102503694760278534048785344336986654973126293864147914692209235646332342407382868642393546186468393497252931585897770961547382619043767338982695944545865875760227873769671571193388877008593944413498726210324362697439096652086937524202977953435494729345728491182190688260380314856520112210373317920231215249104361684553186736319898830638600326407127525897250587992161881635217853650077161312663529397634946572170503443177860248690479152291884524582408080668657090831853986715540735116855488536762791937321110395992772978248503180726074913385639042456724237249577704499614343261364795992730884712571480708846205215473794692018746036190281288835859396114900684793811682614298869183245884300668699634597507490931837907479685383607972344134191105946889667778715031549160134657359788138838428187125906889431054199831543964834336857416008511851339789887995912187187107250368935530052790050275618680061249161339204267064026384665782365314007978002781919793242183375468300821906730534743165456994751100053667917230055450005026739247846231475343265276881980061580229892169074525891015110555435244810167702752413336619153610281090089677366136137364894075455040089444965372458436755421021342272458631301605446086665128282923564303869084829443225024842796029748798383392437625409478052409688116953795621005885023018184476415323841217445347856298078232869456355581869910763664509152065469313152499133416063323541091679878983558550739707921417829508450962601546889140742572224977035202664719613566660929855964517927512466755018907832826624671181456595126925475792894344689531029576781875979357937909702279790322481512081104994830620419439692916517029366157957039061013474316335930004443357207932738941772093487599957651964625661923306853499592227131269630744748986863510345109416708822672926267133435904593036500941915138834462931686375807191538438638136668772232934478290870907245205044884992081272959365430734686107806147954941942269196187032207945054322385351872089932019478777980478956837508721890209417806369721621318040986533963330398609352524336769692108915037445109628025946119407284640600664411697265025285767849362468879637876473499854856121685167303943853480984544522553369144921416100487861748598452227966997070238663260474071636296141000168574686763387082557317132908679460631870420108750154038635054189124186247710147260626918365651814598497176989876832785370609441758654297222653896514190885394884191310549619052546553212129806154918795414575050426832670557472441204893350888336174482142659161435366361494939747911042642181280621308735586509787026909344810415799736280422620741551851505730530092776061393280793714310474671229028786748964312227299926301092903020203162999833797861886253901187760910018400623871031513417855136946905022974881320446272398912661014123213548076974158266393448243606965781322546010020665288167106307299615217746442967084575240571202433348644363710468277364502753549174796578525101012698276157619097858926527143821121423295120812092382797511352834279441204091501059552639203866145720102967933008197660606773562272735511562758110766462024133574910382592005763534058555664633751001686875233546759975330006084964025547392011664109386723485672847255434124423468723832808062362214046824980544576592480822592370837797783412224345378049606712550015012820452299207394254230969862768162625009855180778607832522720869648901879916284352115953935179322677224696429222227260706459648878145563763292070950406025774591511165625566778329320460355618214817600378097141707414993597734853428798537651601254962175886964754910725782988101527789586576981924516254562756485776819544448929482546317658234360663240006992159488840602480178835444000623766626378294539645290514926600432679146588625440059236022985848979688564991093999034565967647181644775763193711154553363147924174908034810975466408972459622452283195181219239257748817295668202379417233430361902264952172851681694070907392008303232083233414601340397246573289082994267986984403892052224082865940277385380812499331084960786615183541951314253545233392862769569309286068930439851826799207262312854429648207508413630161797102672825867715573491158252873927944352144217984377727968240683810662438371442357900381376524710847361419620582488289642156575943566525054170183995222692959523369074519980580061591535443977275962702757328987946668963499500030259822628164230472930007939404756602131437296626628500361210773213405094276204565816977954729876960669046405112446748364148955558606755329237332328618300838601814008911145136277129404437381470988129271925380466040631143120843815530497568238687035769990918532647750819196712544068312003490804292430437731598650028362814178598084656112006877552702186485884690109990191200855024756451965289741181066479422940771189987242062549149983671941633839715923629330654258269778761251457017839462393286610495490723972396275313463200721573583548037281061355268849235353948032258550324396919006106672335602828624043555633846532705241852413083935578136672082128636524597180528340970018192715413453441259677129715179366918419791277402153563689045182300490872260996200181555024112091582844414791895706719420519199291166088508031840675677384971639899543784377726860414965622148823577869395898551557948378717549359211137540813334603884456386129001741607529619336621835623932909048059770010469915421247123785986676041944026706153429546287970171690825929157401987078618906613015328595208273007620259794724731430682062278209100466508478494617985791358986442589107281436026956585963147604827967716114970658683665012446754319873801719998023904304923972306407120771649826084766453592569622652112697633602265337819331010426182825741894963401613821810397165603132700267020305065685489541070714813405693204553541200866691835722833909911151217989033639546381141599536415833526925887267520912066374484420674058831752268807218947985367610750778114294757845571109389354428967016653537743301792604948092735204373339520579488558282565258164801019502704430078116834331005839580692788059443105656654435257355528645067838466845314031094609398634633400810161775059473926478157920287648179149438169383171286534025514694045214707759322642639805516608059783642605761255641210859408942986911873450923826972133493484972047403572583033897467466057025005909203487339159768277248036917154686448120206797879770785590674621843932970617411815180409590855808206944012149871267233926316661643949892704519721660270432068164028685487785610670950457242047145952293181039340740886233369270709295440822029679691282024950442329967622660222508404628501457121952298191525884669730802204710478863769182249509469301577497314886958934046769067048624421547818146408048068247769912865818247235852862427379332586467992344197478741000191706231373696506883195063138899794962510017329360018631281388284197932527000380638243736143554101177198676671234402722899348967902771752535748993036274876827697851397775631483766518488494783621763372138716778731172425546759386394556896314600441975360303179027839551525986359100990802947538155616454345763198045070717195685431422770935845748443251660938739954966297267607115734301240183602981314681069943744129955582611800441348000705810632308295028602546246692912010562357195388221675748601510950150304448057100556282194127555465971119693499804474216346291102331082507138893851882411079838408080610274115622181503662742997632998264299653519734189155779267287418542677166809874465695447510886290764959612252553450522586197072784817283149915779112621458684708289239150345633679169592715670585670658703685795996380926770510853462995316469600996376821285989373180050679238357303646645820891051522755470098448971910450584139509536903234158267848137096386606576132507766666357238965287844077231145683201470768854302272843131892338277284382776730025176853767018884243678504049043169141999414349514978266427354147590994825036916650455980000411047413378151436926539900282958124608944154805917077614056430862989700733153817141924586336503019487865524033526325477496176444152391310657631708517107235797779710200408203088946832016504590415226811249360417424431640806611228300832787647315547465446158651748740426548099832035763467325325804975053153169094426345592097899717378942614437338407794040329896537133936226308032267096699635407920465338832069893054392664376844256653704795793021152667016569328273071015274643229485824734930456156208594836818888060528417312734338084794320333296177580625760462828482488423357703412287214233472080614199558901897558155355434188687740242548078213845403782687763506945528043405404162089877627567069175069309795304698468559861709194919627745938302435138495876143822720994952781031651554699258061705187277259017081626025709145445430547440359828043287856781046752433508424075062976471945432743346319956314046911911027953608985518012552393218950040168620125762166405804051721993745646138123125540580079974164611682215655672955459776768954998202052483710230986155444247938074509760762621297004625147666265770765020319580422558536062565768507044511951442491916175182374435586097240437080819204442516370255217887930266080024784141418537016257883100353372420854128133450033122266018019710412847324133127205771295016331637143429367357226399902685507917546483567295196495406408868323494634009614493844426300118675217198922070909352902964974773820582944326453752654952959280795538833929665309400662313160686129106018247234072202181015431043739404434853628102201195260371619870972232374230168095953478843192689766331636955357145525976716378053416642584209297577046247022341361106909764860298527198909222237512867755747861507725157634687911977337018875880386912102181373577446479593883135394992545930135856310588005715506835869940886998192102045281109845338220156604369296456179847371699082744425088667807415165611261799024120656957885102499187068299725395245816137135540292642154962198263036476355260943172466949341396911289300554136762932356083110869274932572493056987333565323284259120674693834994936284236045154036251642524428643807764773091402347077340478579372698822251807796843317147036733315099190091248948450822006102593814642868601856301657996426618648522807318257292360108830673146419179743425182894786407454847085361056506505869869690470568172456048531323306075857745228391060806774340949337512968260236775529642521733619056873520103750403281113063478151365724522972090172500394624807980311657961565896435762419602877406484232101933208565119439121586799507718768619039283124724517375129114986588676263966437996915527436079792857108853659965913972715746627166939728476491615523421095069385386766487855715113303149106133177837307979605651553948888439325845383882133568871854199870935377281381641406201385379664842167224503183320258650428565055003124969814668714329337186707355524295951534513226191430071553525305973068947782722570869693882925618284621431716531648677521835011320060622436857710332313317464676699265809882664203990411891803051934090137750521499499907289798595155192023146497178364234815433448029182308536995999167601798064729242099296038074976244579310253512642524777175888918097988230971489131776306077786226679747696527423296658482709847614343922492543287819242783297511120785095750645156117298699814419482207437839864454884063502232366872985586018493141103339632985465475163612011617281228431463050196626036297178663451477479912514766244404530547812314239932164044818045156334416356168573521198604971714642452840089984060995082153583369189503633124537941822137220486621468156161105108139846581057307417425007438226983812206740532164631329087433170409434548382495977553406678153943026706364472350802743224239287616247977867172101659425014033143354806512088011584123501341586514707647507745750810500458460624791988982601737145566022738788103056365364874288242423732804701602301064993087344818752152262265414424442136015815998869963175505331179381658578458685861262583010321423254044059256878830853955175639456610085223713525811126093409977198381523551750534509756751575900953953153395262069878148007154054785921146953527053473133298666902905454300739562226089840771272688831428488255659697489739430597432751367537978131577541341125179561157247171021481352147500964275067471458584013713856166796113866713427251506141710113040104314872105678773904939640926942684314287210987050308231172762936057259496664556482899905489667537278567614837065471464212250810231845223330651945875553799200229812845471937076576748143848231193070010855707349594989270198164366320819562427070164266657713872989923841067323069934983156376533894474165885274364308043382000424878617791346229299092890439055259940722380846440852752242469251067662650078676273586214496943100585597664127756394834904778720938612176481224654510951105607566715113644009711778572290413702575281355378183591091327715716348014639775013599234048563602632120426034359675003084054872998175859825419019273324286876965970675597987806406570084544890935344258724551816436074090159853971226168460995988490652555450545978031931714946767219107703393984861806726689077705629342938641008508579658276518585231834538829044462040861356365359353566906064788769881817374842186863873127445136630125118941065742525249503177253104322286625007843313360835472701164544064184101750380324609088657405990271017083242660396590659259434221176195867605841118861346746055052811097037648951338906910974723854793099466596029195550538845231269823348310185500696166343344403694939031399141647462412668633586110309642502188549201714437280287504239298332422022655392548101857246668946420358196541789330667442037811276931021926907402726879972576504632857816880817270039880051849985243343582884609130640663167788964048538964794027856605482252097411568807619154815202867062410183393985997740773364924005788964978762894562968606947015660952772704760834856765609600642685279800066335368310526172901074302714910218154495931227594179821183992000505871319915428035920875470741810275651031749852280961808258031707897924816148710445862384876433908993583578340361331947438432884284825560201067274431112493836991204320871286143681257125946548222686991718991277635916335431367826052763870860676664011605134826728136757062694896189633858998217235255812173212882911607621944248982296489709718197646234565256759847370881771581871840651330400397689011027298760094124527457782844157920263973217327663468199480156723707209790298597336484984792322394154017470434999089207064460972735312358505466039273876532008397701753954696598842653534347631982478785880680833656663416410852842271732224340313867510410492139454538456174819502893890114759215960910639457920794469824047145539911824213734655613288912437797663372846760821502139971254634020202999272500549870586133160733447354124062691292258954639248948019122622280321818359097268844951728404415934991921444842143569322780234395695402544074026071080841798341876585756975490664589487617854309156188959128396715435211903908571912926469114920690286172997070411323290818707188547952058988326961844821792880640877289262675650361453597128336997472165756606450954730397008989000997372227803544010031520988256385123753475073394749098900721316635376404154660410883437267370843774083504153018078587882864211873018439703113588445085091750025722272018676363890164216798118901338354710642464101308883206550525603931498765573091937966751632260776777599893331452398893600768349144373784989041931113680243231938272216259803274177591751670095752116705620221432854702795112585258480564952197266022448966139542684292947357188119965737682744326322036973842679486388395239379603252796009689545896726502299954502220702628375310029237765150076253070795097325370185389915738639005016097388449247817926739543072952364340086279644205967301849615527309158043564077360129546483062425099919261009628791569597052190191162826518982765735169117566185948942547849144081931646535746046901895688743908441802821621335148218407341565785973539751595771223615789166396325662558496219102966638017989331483405050324132046251811106495830837269038875929057532652317072542067562884681894303447630145016729679057553225851475700637407369678212564772828631740176952553013858923473228358436888184396096266667632510091169859813450460036229204094024835277216597226676029164834703466881602659533855368264077976151823221987719846399336799667441636720524096760611770005314340466792638212705364953220889517491575936873364340051313287014195381684101437288773668425483739792348479151471677570712080581889610033457014125574818498121393231882816134642998708737903969271736888823446258100501941884525803039051126176009931862352640349051595280417411557665859008112893791728968661638114560629725939774005491295277842315285830125789072081550879057499436518392131460507090074127905820778150307983147109626178247628454383520095076986709505562523431670809841333195963734598380002847219041792622051164903487822864734134863792763986985037030858003935225356312083197487328786463188792172491630913282474218456963626703488173404568839928379281718459918471691784976801957002214452117186284898806012362062246182135722701213108192469714301361541449768306472046529579414350635590782728312574445293214762862153392526863252554758065847462844104681253197655164209723966600366265749163253860081108815130889901201676888313944681645153708224622912209532422798408488895154427672200018625935577631799820858662599771225574914039562142093956893452837867930115057897750904769557132090636842907424169599800266246442572240351370966034312459643658297175201148084017255951189728953317227417609608152168728561824059377323033711144361050131910904732777595918692124770538670673595655539312670216359825954000738966507998738764783381078701076150117894772287159859536899973268008736454765225316120374122760747072687741995747651134993073833437801575528744063742028837925614678356536092610846885717320654626935726879360011617756619448807199139836033520055434116018666934611500956053508868212457964930940732121430256575003061298268552316509699725862535903176217452531937337200292570302571707455015630291733327692727470697124658071638342750890351992473548622084031907331008659757795824059932032983108570000323477718011591346100583091398849537130831382087416987480497820620383006808627833738674605454446517051639115193925696311547432514957930814551295541306091941986510717273799749763162361664562980174094881667644560119082931445673634573236202566197235735241167229455917177928658638631842993866352989864712323862979993493676760715126521770177406802949172036214904457165760461804967031192427988931403050084235925588246857166223927251214506575855631602443538914010988110673126781075092086709615776932835566811431501630607271175225509975823421502417305800318310139869182797768678144146390520135105052699922419317561718543874486784603364650324273111791732312312161580121124443250183076864260527123071951975508760926451043512589950436893697253814891863581309429860770623523429414864918589146384625249935860083000891240381152068051271099757225828969835938928100673331550184461171102732938718602413180069298645002166836397950738096881494079257963863703001903364522376680066277337091018975051466295471777516148909745519803359402685132416777616419713454765752573998627121339314832596823728085665067280438731835263955458173054371737188885289396486692474523346166726085997386001261935196619545760680895920928587271380507320453095754698231932271403573935809364740856287047389240223217960913977877523283124101050822713380852252714093637415731584627158250697277896558552071084516854957497400962017349518793021680344741972815246368648162662265812793239332811155258449074263292069426189025739868771500218226118867113513639385961783369850925597986186525190639541482250846514001926441028958013465719563952511970642012216466236876468995292589197030565817120084748273321387415571842987012347417214002267209619154847244493913926737687368413027390709057427696365597633815724887596792567756374722677568946674863796808539222517729110016997329372299321047530522380064872170824488181983478469507190895085556084130427000040692342140465536912016797688064462216329617047885009746393495793979066291585989899235876214050786111478407294292682664395115613296524712699750701543562235785714442645268650377542545515256402792674860137630610677052136066127619372306064915508864732126223574483050117746414945000506621112759967747783370349368435688344395933283009535607959109573802702757214564375876817783375377676363657225590020942637445839456849524123221281192118469455508448134018272618163468058086397743101939169405540198658832709323786354395872452046069026089398790170834004137372749839165260092294959534267316238049989667560172162885623300341970567460490978406479689472234838229031083898203948288191865563909775792524006420163459628504439207248709219325012336230975283126827537616663650407467987892045523714934374829653876396879905795219458406648330235340696913438627107367798000457365383211825124492961472115095145628153310862206616895460803538861574731253197988638139953160983984490883871248374937218472335925321704736099472706112624152775286245360926634638230902594976520563561945243572919236742518841310148239853908736181747960219866056769038415472309506876273956034694524123126620707311040050510551316203222078681827912639055299184217261203418326470854090506715336713923089198263918512214540094714853554065483289812587147082460224136702099544199740198154147757524757744089069823483127121490728231246596442461148071074673980958769767442492205335190405199653451747693917895777083570691951281625040517199230359234421587494360610561052009477096568159973438247259442869422886464828394880680371850772554869642221130066009224067264627007839510580981780946870958382656711400717509252815099809386305870916895922956570407032531702062034583661801863074958183102807027041384873591055196930432545009595099957807686284851154688206955061335084207618864153910062004244487981839625011493053438543790269407094071957699027473425261567248301985764588357584940914245143934746037449678850297812906766403368676088292005287760893238661184441428246120297852347269006033992674722122006992164358186686592189201766286994039290851149887074187420062713949559072391946352847379587114478596008331282207942101384285618227108845625600990494994103253929338991780604838045757253920669361553779689590748063499150468452669496875726876460925996149713426691895314537412922101600221934180144784141282730480938710158288260998109764951756362430184490094612170133975277824199766158959937179474437404798571012880166138781310559903155877585681914977976338128260421006516778685045542374982847200363522063229076203658609461721349522627955711907768721143028885174386560383902411301428358128133946146190232030460713889607673499748193250760918950241337045599038395548956964094780241045367786809703120343456143449823661537908057686837506350454850246665852092162979341296334032260414809581959145703324640452465429040037982402321673456807725640290177778525231502015816108451486980379687926548037318019390778757687523762260091924916512682475846022472324258224796446338601903847579550499564974331647797639741634297558119628472352276465300581932381163685875111094615072099187336083882775929983646389551208249497962392723025044386701975789116805589585548489218882202723776663199183522966917859643397146815336616282463805456916088668583363454250157611160511281854347310947838204262099810205890599686800509278995195948404350060164952901369369173545043180032128869075489034566558152777269983828315195688128616484033657346162923255155814678880017039064623364990648627273582043941613767445920749744375745987762794716399172185973234512109977015852807389940442648971890007379742859998961488542145839314713851196258811725679639810106113164007400860036362540470396846508273253332094557160719541337805629690510866946358496251146891995156514993934635742045166962652219936691894990490341153678275586976383983047357673686587540117334690754504352427432061832848793213310981755423156670582886160817764483042957531761426424490403664988842651914176361947652748664820476293638628232386883089282123699710982065888324093662061174811520951287959060282600218501026523687657858487849254261264584708375680011848350842060261370989121007957585721764897453086367631694549760340185874139446802359162325707037283804868200292517665364171716917011293129128052646654009185039588839873812832809486419470967513005871822474339250162030466623714726175013239922278146913261713498875611964648290930004296489686183475188798321249397364987713226073216613611046927757384124130279995985991209822401690885784055786006589260056892057194714861322560812918688337981141444592474417697263927350634348984547259834201310727530756174675468662576413803342245946898162400577782395138184314046388106468698496101796074601983839661650967987814937512138934114573965988708120289229314047804659063427992108685885615533760443394581619689111380257163497363764991856310965243559153952330513167470673570025007383458075391950622151387140004337147275612146881156530066306597569014106761350693732344039451645420380434289575213451838377120819072905606180669998881358698568566229777222259600069064839779592488683112624154982512649533058042277711944831273922961330199198924555134272471455000110421958576234642879160892404147968127104208660835713069401250312559620408423474099622117129938401392748253193051082149749315090291678061049425983219148999192951390391260251092510782720615411922213102904167842765007922017462531525811623627470539238283555936910223692168719169955354623880055887197974457206286838990934470063983034938632007758444755332828551560769753838204711646472141147004207187988428412328473182053904147942424367357789441346217282228571412863499404035495360731656211734180118481456189431682640520131744997868459326617641352891617897427583543231542341516538734335640303465472315961528956197246857298549572332016148017867830035342928245262594090917506916807932237935808130728865674629138188301017983434864517173029827469796689051135221022818453278060227300137089494789663906546122990484678229212939783441515396032005371224733179571300897928950567295117699856662995904830168954797703363836881852639676818534500842724004490200564425432765263519192604920729860210732217264889678649279835179573244708608993599968028123616391647618204989113173125606086798452215016073420985268933784664070172991296158641461958371292253833199941554872389224058943445429155855107038513007079348786108778059567725497869787413375385414144532197804972502425999794526257825965542500506695689235921070618404913014058240500812176640868279112543889342858313494851930420702532255189597933563461150882094000472019075700087826938343568938687665393937263198063991372901961172436393876401602954974676379134722381413542706043495381764156881986887062824818624608463838434616991391028657079756694969778996648073678165900590589547566715793218273315619207757545354276093134957861059018875866098545307315109636337386226344582061909923462943174705574962523252909431042784892001034576903948495486517551268296242063896804550743345540544499567189483946413211468855605495643537022461360097456017613258424296029072519643488734449401990730455270814880516415486973962149515805838257022523687706724179983199024463595132574600839220592077847919875754831960354080369636329459132584838471695986251323489231787464225429732131892580698841531652404872996854387105689422821011525333043023905970352037061880439190864226353258677709488200348761449868182782013293948216050851304124071712953851776138273073930659061851367144617097128653477493596966907757040652287517182359127826585624040578681236059662369647152576160590487346676084135026993627447078561782445822679478843431521093082899846701208517660772119313698513392364441253762235937385072456996444635623170192178526636965456626130032924365434451589003684826033963197372012993594317358288594877751417905012465230075058757426781412859574313376876514538192922899234756280482442752188137407718149399630315868501532674615495352991284845801835976662616286009621512240866180010926031751529633421840463815782078286335302937695405760523081558754189289698084462918676348958650020374395949698941979442656104010464396049529960424118215200864350926298314305478694393678376868318688763673646417607004182859040940087286663462899164083242704265217517433608112608536346193326104771424609569618101701614636318411862907082332159476029570699361600189276175423056882757182432720749329704186274761783604768497148077528342025669055407050257866635554716238963616370024903769809244750485562762010085717530927744000160718199870771374361155343428054543860686999735993029722193223385410006568653393837086585874937533086186559610021831467142313073097504721549649750838090285912192832009097357869645505721746681608252836856968366958742753804785236767281053515452295614337763528975588069229784340202813546602345078481191610956801624571043668459573854256176823514622647775912281772813695468033453831039340064426223960153714122985703394218527372193732648289709650040729346819950683428220410177967646209982245639239973214485268032880590505933897899010478806719252571785256065357988563184953070530354064771172502549991791873016977304479948184022760539453004019882490093710196381174940889517692674493281356226114529492524958558997908770053650397723166860982873863549141461558512174867711738339270905200017020210693201262639549885640549593857703877790477895424418225379172317630964736488870949901108374201420377768749709270214210273679568603221288768427230721904140748154224091671034255584459564753447435558559394345028398006564397641559131521461363971136984413514500854546482441261080535883056088395954907816761545736533333146081020783209236060589928115705778252070075960092412453106879514075238528467918795930468524877628691893592733342225141231190723575636909357011000552839517190383360583734582653636343161666688686494382140651567754416601531034613390189582840337595067412312925135662712831563840444364217870942313954818481722977275225910256311854911043482846711247283582378976499215301414870696863002592545572510717233478086891819622629158726315585401174175282199368506882379389023986200779831913901056793643274069010350404278339606808828168947402095790647080302600700234714587137370655581545357315972854387483782626483543074434421003593088750590438720136560669542343080483044386960432935534092516923601022508571769262372041796314728285384263323853768042879799694359890133503112007882831131116450198118875232845851650490641947813868593284229191775309891510894918533926149482835560215988997494758046617212584243734417954234073541982547667505025931806926598245939685178224784850253140130097910231303193406922047130976459389756444910506536528941755652210356200332692878816327523092800090247476004177089939238206788067864174246660510238228114747249195784757186649049192427751886370821095082683040033722367222468892246612879443277743910735492227608608485756916477558610280480058249559491013211121333011301515321853161420267963214771568075551599642392875628807299864876343337616539808858099503795645426979008562002100826223733837792219579808657230171315827667305246005594426511015832508668626765330903728089341626972161260870765229196842000334293769776270312530496753446800964056846844765039715821609999614182072537134294943356588329730307844156279192830525694038922709373110451243042629975070256514907409806049791238715244996067577901889878087153831966740577855811335849137361082645443249347760903321245367274513743425220948527873568368068935858337469971402603557061419555357301721549908445222994756906642108326501200686345530232888150652700638329455597714149031463686941008158494061499726271080945226766186363511345219460042986564677640910953337848778559122216932544015477702140768746241843297903930560557819988208037364498562862068506150860985444320795294290493821199020377247071513979301542967174273249973696087338149233531796165092670177133099977711501328261099530962233347449216346095461626227634174657536510838668530258263746832471111731935938660959922841235171012325598730774156110692830258142179101535336607518437403460264221430010108260770049876163961573844444291164519907153661310096091463032238833889678548344618446773026032434970259338159591680626266080148084077963331999416035777115174769352508698373555347149113647392601292380702564976960514141131059870461729443953843724695000277146404874328278719728642381284493319492910530063488259050439849475895566574547227677429792104599163980299498125602258572120915906392250717772149829130916122420223396994362835699051012377367246686771892126729829611470692896542815541751111532657824352933104770084893711345099992750823872737233903729108867688108430217627536149894520880250622245000378646372240069610438964431272366398417623934837714968992063306892133705485196023525632821986814289798550574570745321525437878774796168671240604665598338220676459019528858651540003982522827895736568910911962037441741565862475775027844097836759665110021574742676443149897196051114979289550307931937727187475370052321460304348292193338064925344065522941469455400715802876289681159622540301162084959217215638595976133051975059339154925649282297868918843653169389486904958381546567357237805501486255186146292617507495798272437224023807360014012767633324357978465752768875137067585539978052396368309896632323677294296920676371769774280313856011913760514717855656775043114033771028187236519582811298627817980180586971302500254796296820503289817414834081947453666926816146890853395880964435309681678866671493985410291511622823037872420657743071422836634122676813388433640352822560843521967691902676069672006558132359060698846298064979362811339268217798955987375911231725684089201559085091499254607010172029334711128298395984018981800400857161439235963915689629420239622311055859785251115622482620671660078484425141646286170216675471853766777448628571604976513272804351665672517452467580344039733453979726739477659438265623420359087253725371411518314322890552710389769773464109492421648460069463905226499252887532510825586154695990051314390264906797790278083941584543158293870367901827621855313299017630554173543543402848858064714000329606184341701148986925377781663227508633642320922656132951121053143299740604093048967835325796015699977134654448964198572135019461660482216406136451986308885830389312013449816959890664055533524458890657197541991280496360801025384199221654799141807846238375110912397319336838066920229950223139445044132522352574515655225461806484173599412191832716820129402724131538740141737594027577574805392155178825926370112288816495511474699063439028062532808204409702734281740267075361156624424130025597502871186503692441737969680731814740495760348247599316524762690111659159290823301777051136878515234637409531256287056437004274223218474937540925141067776396332586972122074412957452988669409624927634067046935357638524199923008706894441989149758918101487170139034983415370539180266302603672250644854387771139513804877853936927339399404545090748048984643587905803333692431142567610233155469982811235230549340909067906003723622003238811814431602404207898573746525780423999985106348109062775181262010539195630231710212944776007292922794680188977982869401297483878797827674268203513956320135599635783156852916507910801288065314475369814444838641390112725172202022015539918302017263618022192057175088748252950847310820914225118010152064639197131523682697253995544266113131484248731340505111041001354880944793050296239022913416055189669316933054723083724126144604951288954205808071073075037495704884803172482226588290260076785722144744731526965193879825567608437408879430362352686170608855205877495446276085171282645659188278456024692405835766697212634593215514430679109881871647579412394113624532663264971396898222732449825175269038728153125302733582637328250083244228175188707602515803835482826323192025344741921972622573814432427964800571231388804736300958438507940085295035423374930359671665368891503060725024825381037924555917853759651540163748035233124226782069882764583302912937770886534540557777108384332901041335555457094610757075821422546134139076369942335742532489607447156904987473118570269927349876686972701259455326691908787539661390372508239225106702508827586504620575199198519745670783362999449467053592118771682351692283763203090599632249594884542206762755750011767495885931621778547742894530139378655579530073359682149913211646501971817451562242006241783946928362651246021719803686893021193541454032957386410307925586843821335675068947692876275383506607974557821501832943419025072053457061324310094658335885608666889688605886678208410748177041033424247686635355907793522792052408108172026973096174892172548339706384142119486484759737544345463732395723468964628000256045136261692547676024274972916621195550791256261995244131272674161301638666411729989301230161569555207440245609709807353318298738321699578993851368412663075262980808858336206674218179811803301520630571611877680824547631088520966120687578168973171741207641475149616518649228404532644044211545100988358105480579744074378929061963673603680371959603022847385864580452297262568143857848181045423811945348797817017270003039821173611169684526199728810590979359846567564123842174705272791479148382449647108781976705795992496035436670953482812729427182081635365400069045016719687316356709186995474632607645287076227342043433934083203216631409086786667118649662327467667283587661566006358610313837725047549302111430851170942922496634834548882274350090399674533643183584507221381746123269608838074553231616904362542530241752663276349484040588427558914372591126890196971652154493115261510412656841977930037417960390592761970369566834668558044490124329881199121663977319917956850093826233494439686969182056600494992671303752910064299888207653597859536112028866642098503941084554517826200230998931146319265122952278021989433144646277441362033075514775641417298133879036998132586412170856547960721274426155014417811803707719162160182714592087716204315570239140959409649764033216259407959343704366508706724794619034497028027461921039604797261747996650640075790434807013252942021623666363144441902553638913187973837180479307426262307047767568073143794314741469026901485799384648420201980931093185538785438328748324983229600859228005174561503096722770319959315376014770950343638278277619455239856092899792832950396460906178085823421574824105710410866064073635343932719565059315960529078352790781562532981728693044273706675752500407885141726491561390407938427621677645140447897267093514026251005748257960151225938311772813771630243577070187892186975245734963191512865790430643380235834101502580388127574702434642252201060313160697677206608698445281987691543924749517326342658449951040329647771690882283179680088467967094181627557262565803101110882135424319943506332990611286318754815199689589705585653432474542281962911162381288009543199901499238891554226291590304884000274071393310562378771790018951233823903931818625364942941985807062715828332691334917338876920914723266003881457276167919846273648485216588591109875832023008668715784758334022068055132203023817452849938328961939130534571761711273865526944331798043266232991074868248728566509271250469638888130893509291435203250376427032452184898441968523535870811204918343341997094720051813341068020252545814052717100446914583059097165945567764340387328335065576403587180639440529943708840287357175196556582461521172778293339863247632686834918280304630783487092776867402625019446570963841339064884747940196269488111340086585313560837447093851473532093296583165541782413707127429850227391393261237835391888161037852954323871855740450476969394508255115979258396038445133733276616146275992937786128821407075721410488024818792441525845939566219502132614831372650963657725360737099251321666214742495210475137186316832235644970993448803363363024561542218336722314458666163883147943981729086276686786134017817420619456626840832035955862533223087326703940378735678827528748782669894008300010428935092006332083018004309603360331889370020909114397407769949603986730670030257397093314443612215932935382486588395329088316938053659640718096272472822789287159917264756646244898882451905880639774840808577668551601564972190326762003188205459276222531756454901036932729517066161199971981091216365396402699290841917165170147880399116266340421268072601806718257715852139439292335618789625443986320446098534328463450476922725084573238103726037495138821296454342874004290929807687277159573355946553883562545326979305236143061180466361093320669284170805196740276055381293505318141870138226553102939555786352907112350951660635921988215447742280662882928195831649433491536051979270271179946836433974795433025968365783556631999799104926129788694155569415518697791348138580214692458200573146596482948212224042431730396670335202232051077167671706689966453124446550039750497451602747026016757026615131559779236175158713209557875393063182238421909653060343261627854899568211254838647391724326109708338557967854813652023915524764975263785839496920763710019043777489606387811257036793305928693226412432366039781086181720381643942182634847333156754934204653413503136625061975899631374260499148984640514558415441587116060582329594842903474808007568347400021917047102647863750634461862550455065789303511109277464791806311113795205129336456985464206040481578543676593382037859362341381123301267458496995453121033544684391031039908488005268671326736118028614677388876682155869763504227967968719889542539813196450363377456923951198620141405476587048035074925247488609413533044482748073841762645000876488687602409320842545187797053691518837449991474407992080773466845563922504143644715826090438498096944088220265051063913120746734714709680809632817970171788121320375261771308187289793081909345757492949374416546264054492370906325009543568210940112288452782748334147441290706011562660163443615863904756702088760688528872782150120735264219036540378513613954178874549548183668222486723344027757159844977898413145783704398500907082954512876556810598723019877391266279213533039878578068989214123282927816586482170430388963930429933398868573033489321287215283970607318691880453236421874615175594330051633244128614161184457294176110571004824886106998572441884319156003290367003496794722026265542093674419479187543620551094302397918386123990002471042305876650903699440174777695346694210603003895302676684851020949139163752278213838441276839166596092557467901946623582401106012744860725691902383448344557168963847591918753033465993734204775748012190719200876480828142805417472171720328159491093567188285740457332791262735969986474123959543660507706592433778859880062502437592703061863064187763752779166335381740644206050808702488089099509761976452960236910389779942516546739451044586407817831622220373910596983416989137079729445221505862750987155437681408482685322357356451613534890684982141153253399942296019826487532901565960334257306209962782775328839350824131754799171988571214610726186885613077278854555847413639070646987481158244998075594200376462117035165268880208866153817244837517655392152454428529876398979541968606701157436153444141578747999680643184219184608340203655580806665817078522820638761202480108652973910442233044568644799292701262451799818865637810354443671063442145357232874436071438332931163815039398836418780816294986885558328568543193256362862546524321584896438668422478019078781227377756731913195615000910637030834916062690518089363014609871769868048922178724518802953674301004864007916331074469318668837389352609482605223917843386073076728775582206574293159946843225322285296872217787266809317385112633222264600273213291118269997838366364951653866256259830318404420824138097181810443892847775120732765205886669856340386671220523462638107192306438178465054228874246654806517850040490670581947786375858496948418552901336533991224733826257815504749614044991102752100443045212637369937139355483630519076852414967802983533684360587971605960722615607512106344704211270483108083927512434335623580439399423645065548014706610535743492985458570046273138284647658555985085735750922058518598684960110063885756184497197410001458718733333987147161860035973419769227999812607088469860492803768997596354668903496451125546982985459956409693258329087340766348367616511413160988457445601274374779540461753558290419700071369215280367391489330207782142215879980316704645673844445701914098131291240851879812552195183596815355014684506537314654741159950678656356954839442804346845800714074791576647271643337141220332510190083829685937071284976195033443188878058203039768750393481286294088284415306110281544356666145456397174465458790870600657359263966996474425972330775135390431635725479759103570894630382918455729550065982186629836461182258050486354172830353636670848541187057885772710662111757755833172611937780465001738910915551186355957967270802081835720815047657457547267605120006366115367250412798498531722298616399618455048700164369644653437235598842289796299256773790837883280645328567880002766830950031572828464148262263264786207029724027443008248306004546554613837130408717032257183096103452869506894312258497763109068758954920406537448290537564936500124020637538160552224921400437593049605521031292349868823968376073369503235012124686821164037050891928016036455309308724594519225840080529835970986204000311809592452646025690595754132727277997393237936248834270614567461326052942637978529093986318644470497767698014685513229565149062806825400163377444740250149852701991785741666105556229630908597758557814628912659661667361698036394953680635564555269634480766351009908514173459030755422709819050000931776649277405783501710002636536903503543279009503631074881313751099831554218586371180862244314671440836696098513511650788969009577993167340156518479682559820792322211423454903093321238556142755436465574242077166823752359143582989867981411367400258815318828337277929141016736668434540193975948643835051411511422890804306915828526295217293416656400551236146564482254646319175555816535548069468751679700674961809117050158571766964767361852609484946221286839685506970703425975283693284437856395234442739380188231582692241460604150601857522634800136747822164904622744582884257570698075108938131063137016843621865627600569688130783764737093660631402632297124498094969389071130716870523369643757127497319926864584044152361214546065284409766795310779620925466242456553105559414652784563084997408522175126950158439685562106776180248578972550107730525394781069357451597928363280895497611984963644341763344256087680354098455521645016973416572782455808254518353832091724065410577044311531611341048615692174455823978485612728053264797778408485691523536474807145270137353291338220869931320441028494662682347971137225579705725844141964723440041503052339614559438257204665154034359393790199238738501499377095382843400918954312772014492798884713693524975223516893645383203835748917032874253622456382503284048715014544105802266009359926198688624777060489907126333478040454396869194155739838139518551829077225463303455205003936086580542231854681919557821570521528415285880889886359969081874631996361834378805673244006170033815038644847453360457076958770659243269030912191891717236576469674044610892365529442899894694184154208321025026802760100983790998946493281466145082298402971254521945014863417752395502136945043685998371010482485816187646627839044460495629398918380650917805102114435233375943400783798374207253041108439464854709423922660992405351144482325717960291286652166409831165651679054152688542765956275045316022122228528407697872700452644436253050752489180931385730982176460105427126148948424916649177287407628867626524653668840082365921753757450291366467182711358676549573808932172079578700068507179759847858658087793879084314429601845091712358584965895882734091265706317265173725089476522697492695704749473188987734262073209394715018718211398145333259840315438603704206614998176839100597681393630525158425940087808039186954356822058428374381429277217951375598970065311280074933716454033037770949940262380423090633924794618138060699777314813516992941338683293406807355764282515921780193287619581667100924716169984828243581283955547385639730206018267101493157673085813427708778914037877534577581805374155743700640428067221498728327813326687695866627605883954200577358199522950543825755106623128349632843315500757844400577595325662427678604801688375501828341120272898312815891799700016622648083885071765844238968814794809079377332073671241254876882623741930158085512544506015907559088301476476931096803327590020769205406204002948877050463666507994812938775947049110038494762838302973034882562912108932460805509806601151709001792756314716849183761444551300011488326579577670637268843712909629414808898338168398640636119264657844337187026269313691598389508666263639944908767649944090495058546661491741052855714835724651355136057779704720167693295080326079175601964644064376229640033906779822610855133457980450473867129628533686136643323515568793817641715749976849754436857378818500441183218576785228051726790529597586573324201134124881526093648703430187327430311013479509834276602930730212420631514336144299293790713073164873316647351890371928712510717960204953939017475966515713417705051461405039084334961455880745631776167596940490101786864585527645034371341345009015270737022377771890518570089986531625654181198304486015185478640750118920116333950576436384344412147388519327294849696268130020419976580098840718965176121968002025901389529980108589394174056175254201457285700364545177365420289390922955070329892601335486368139307053987943182107888230945256466541927700534996066361935914545219058447206138041160309793764898100654816088898461250263340063729484765973241002798347006656209123161082277263717929583575940462816889348866468390377676640942976658149669333663725271376907193557365699856536536428199744704595992499183308404355389917548725259610435258654378619536443059165167937506501067282282031764307635946000492959177745073097745927329110181377929136169754726414107081986767554072238147398848015915127253599871518512891088037264883009320336538337447111688277377435295382760529845469854658226501120656566557862619539867036242203755429625398036759764820177708013386169750748208974516811579273481012521707663079009941211363394124807844362649716932506120201365127051268535678943344095708414748841171983568273407948112286437573128380632379604009406327806421613564519642221761275461798412597237284287397637659542478239688422228042046389718515079041133545957621942665869215353057592436406846191318944528152855781349056322038651003181695954337401828448452951392461014240411427486420297078381745751488212815242218888525450609597237612531269535538892581114600613953178250757121858064806306414715926495931008579960805490941767101521023820023808471827875959910019551774899070924936061648575572527289909493567884044456658852531196534249630841833588773071449487420804724901300714788931566308843496100773661488656066837330022418599482285863912691301518762042813056171357035141903912987280073842120771492899206463450322418451482294543826082092419793636808680849651108732630320550887848772337818614110646509005270678356820301791811710305454943263365354297642596831246023380311988322026799174448604525983418809362099128781824406958852943400749291859469809109391694026153364270925777963037874265557744066938365908217502159548983123720789951569391820744437536637288581500437472009612011117683261410702634485746606977414096400476168191000485978078287670766039900072357907066309705712166259428838670033503434491608702733490068005649770427023657580809290353832923908629114026830131024958601517305065337201977331439032731373580776365518135321999783372085429797530714504875854751310955920914442189589274702855082424550263328957620013537875540508739490100720431878356461206446213504001871552823031697017742771415855772696054936056031572673742999697909167325703618424138600326302803054787719656314362593668712109300190499950027307315342459578490184564752641210886948212736726592712401687935079397318768411960243603031734725746002532705733288488241779086522955185568749787385503644972150856824852480013518197968953572174114613116660068201919596996554345809881369063268133514353434753742232870068615180705670929725377030637859634071125804641979395979874373080109500324634334625113693906431379143809146750758280718104926685343031487001037320964009877069643465689584616407779368540685010987155725249315387903786678696488481109602167079055887041653997941087558839735280221387825574408604018153581175198793570518662520750886570149538233731009418416615325874928636929118460002847470676916103491599883331133859277756016111088669101423798341633129934356069232981017930139228425128625222331750810090722933178709141348185930528144816549479611656171749365819508011603689477771412327481208254578676895489945905498900357173853839765846526283391989861131520634413676950744435775158359437223807192176783567498196443669344721451156023695173983386444899702409019688698453640529883535760856631673438564268262749876757856577786827323937292046002168703110232867013249222591715676597159591757430941324429269909412910649957200815292119156859828837150078054022790881038067465942238859648667392017133604645616767017476083513887359999507061461726053294323514968527252420179850956031237991381461116363691592447770675133487218992715506390042843318389266775172079719033065085000949107087971895351485708688546004687139381292025394860735255670012087461519432263737527898261809190532430306391871275375037227427305782108478947083414905923950136884446514452423932675454586027188335689973591693781416495140839419800205014953241037379575395018418671477064542519358977713695010077161863221386868770460706321095239454281362914366011853707711784869243146964627629733995621863528043427005408329963385050853955019179915495415541330424280559229292053110666119076398234140505417670559665417673833684885678496699948641271484007584184953130386150757390740296523867712163713263576145694520116132447735869145855033185264881134455623048368675497651840316120445831868237832214909987826927252664367329829841231394974170989120496665494819920530087717157688117924429467200796536406883416110103836875425141803724321171521745272370205361359264909659681943290004220282254556078488567485129468923906350569420653063884405589924780940140000600274753634390934055884387313676002546657918580539295934415366401201428061050166624502513306836117370525578707016543020057008209560211639330391882503104068985721760468950180973102604167494521355691601345505458690729070409226410413323161426491353073854140503932420002358966159530614772588396327090140168620652058272984211726464535663643291403127144424194649522151697356418617718013589251518779907823316420734810238772065271050280813753072213128477488592879602441611682609597706740972162992828025185634880437666680533934030161726379122078527574165002027799087999072478691064366592046641107161590241032271147603629969913629377090704389131202758019269685970375553648176465023651021616143418392448103296061434608969221049352049142248039563668119803329575179407753828198671959519366431118303896495652820322405907663470589946258364783951380214533559220897308589816863038809525299132022302570015899842000349515393175821595262652010989677686974491884585968717825760521360347050944066139285574284240524303658579667656005207059952454740348182470426561156882497340046757044961931009337644899100646733731383508954154309731268703067741847431146869831745318848083157431169558106909761742220475076396622411007439472068124583238091701607683164548826145569255631047113907757622743564372082537645449048805066859827193647032944872399054042250201378622440604256152191880903958813915586858482705573852923731569338464217627442724221452837816823550610287667082254930379973113169508555584734164104368857351218699571077932579458022505818655925237486084729917453908513681171321054251370182564254796901952614800005277105532294164810075900032035997347245162872524606264604878929338220494378980241191872133894063074888191285599742282934712569122190685916841591927446592275422894410761111855111913042099797489010531773979295726818850481465653286737364282413154003418782975689372915487915105901766567727464251261165629723210386949878880247385763742521329157917458855317037741636036691428480580300345069248796071892151848798173330456500012066642476269959626832013475529664969993469874906498378881881860206775670062407672406302686550806651461603122303406003262403107104196724433285577819189323056232467647675716100734097743673388177481978229026635926400218068643080011466701056631285137051871682794005331679294459631662465173870566160295100757021796456020566768674715517377551461500231923958338252891606303428731511077974814469706912674537211813139515807759954500389195953318930924823417680967189523818850562008618184143009514081788333045058596550377076815935672775782411662841539152123538208252166749478470019836123448815017066886190482427243571890752785924200287310567166640246298541957467024653343851415459439664349481858335419468776919982758437031680046339396083268056115934463066268436165591466054732037134053617725658367193041493382688596269317966006703532671080015474550457078439658374387744422005454109070919761248438311416228513650756196665738458350156735475261193358351549031093324701072074928301721863913995256774764096203677983220409380677658252616423271814005148570420992684746085729887012871591923385750448447803885643792911036519234101050687224173213252002773472341879517293481809665674855772555586135192897893685479801079132046723240615826076661201766714668984689806422424242896190338605372770881902385042646735263775397210757585300528267472545992554901526331431823631072932813171624268071313799771310570083766032839204025699891002352951183735973190214084974778383713286687550686764633948951279645357588634203752055980344689423288275773286339624051358545755122705988102455236209569405959879805756826433245596445668092756975444323167657046148815857147362436462908992559541369214934528370498867181673136104653567640565731543462290989369224096310035503763954953808564906814825829500002812344876266185631651837560916246678336636797053711872446572355526237531376493833799396974679965148998012317813819447705499575162730986679244319972525162866918853844109022031746609774803749995292079757307562477897490455302305023528898062101012401679981507016728733727126289569424677324290500574516779593849285799457742427320209716385369637561477802874414209372020193845477775902212471454984873625129746364011848134653125700372825363669984019478189080929472351798701266833699695622193303164067640820580829760420435896902583450197622869513992657900933113473391581380512003704792935310725613984200684268767424388237815216460417497776789850299867087773144075256186895002433718713786971156467753858181576708892497056659102459920698626497819185559340618197109083133936002107244700131415272179848915421693480592101004338935518203449663636007257205420013954810815854301248153231789964727515587959782068710883535629927991645551151875162352747087436738730295834942227121809037987979133234005760777703537977167884182057551513711857853012622577004207233771411684112228473879017995229209980263702390394280462993244065933218162707208776528648774562037058927110214703335287458887712263559364193932772758915454593483482181142111247664100556200445704572868500142564511578353864525177875191097189511817339137349297925270402188525789903890628832612052179609691700146193898197465049421150262169806487287680350884109173701223190012481842581245175140132892479466856202779095558863690605103027677289415846320709767217927404800638328570022755036992199287537785279771389736694769908007885027463883252520364326486519247992293011698625632977088425997633229907550462754430932496585836416207862259333395831705139943885029825178965020792824878483434901318076852750953280247003175603889928512473085991373627166232314592052532414616332472232606475028068496807312408452584266758031216082799680250200678806463882777592783167490940445111580936036738696465681133953739503922898072344731727343548999598159683262853961890299579609725175553183103369068558703300099552595296692959374712659410954640615898097922853244152333535493904915536733975104473289021406400570029992533025348130318267040604083721814058139709544911557487413754798994049009855295606344308749769099376115019605853811485318398886150229169480515761169122283943563560993800859659110299980345554527049255549510462725618360960704912094449945865282472532587884634612909486352122353994983118427269819461259941730139193222188122351992611227489349835146561418310162170015411519045038945793626475890238928172396172463615003075865904933196646422588035833604449367330402475909814751304184614111671420551785954787625990458495149542871706835110513371087986204758869101243431205606706662894780744519469626339306685387281695490110131115427773410725130537956206116964014482231830091987649755781106991740667736678490180123766021607408627435929886960927206326208849732315651969652995304723806853504021504652872524056889463381270798093287770645536242798681873099123980717547589927887999180869832516706642843161385591560355205568941324891747121770929610988936781924865216629349497781664780869607246447409448636275201969216105457272322092945803112690170739473281715424798313831898330135294199880257754979741892220353882069926829906412656212283869021545060997653064188812236513268254767988400719068907421045861284692703678231082927748485755338339790841857310738390926460784542946391839940265440370850756060000733289546246159836642634867044418417467979579275420216013643202988611901443895745918219565337977148054414240780997524719723606897370490177329961935795687572125379997976395342294677590813794007697232508281387401326934681348890553421286315498108568285374465306118942661191514160427212138099669971891007686692920547166376424731091549442583813078692351663985347961397682886894359378406033828179943981387143615618484474837120717747609563470931346942852527366460841043505935342995577346769829728954333851163267015482174182665366712910980032243134856888779049201910376013620801324204764602127111683412572176045591285575644227462813096069610379941139413529612634142645057729812877324924540141267492754586716133567485989448789106126731017906974357059609783132615195703197250275464833120637374385838790821139381705368866080331050746352231144334325843188927107812231840238951311333514175926834821947283415900913769033566460718810744984626216619933098732063020026677354429659595120694102658487259667108961884751899338929927625639345649503087396157430600072755943413729691487470339382348204482430543489225491495403614870016364106513687095911140194018186329122923786838980940539608285989953934578975156185925792052391825828439951652850084613737083803404216428828863665984754189806850213578320183401795691986116461542919247943640689468235365952833618038585766520561121084296155871428372650065753577626880212579114582968197952598448761020622863145152201211963808173439416584656046361263256051781422721850358642600800734100926853595250084802985227343695053820533674231448209274526414501841177736089598429407655517563863000907773117212190607710354828127824388060610426989221596815001494168899685565656563513387119677028256745798246597648282671654057248049691703322584359795743821191453599964845628395000686327525102916915406887057746713020002155167754220279973119193801613537722008211880480737076408987331957547691618882744136007319987544299827855809605266089015837161286524413301992963703858193526859505327700697591592254025251254340008654240295302423766204059041327410936910548585442901597086308221849413481526462817860793108508303904333749351464676974422213704567678549754936837933095854929788769886671153855073953543298216817781159573979459685909319516783653619882122657306810389889305274685998955468657210899144145455337549917251246030609763351511208595289677077898971892117985588665161376747915000972322737284384732303582774715978259476400375906969935506188281819954481451473735183961336643607283799273355569509949510107845664736439633846041697352599309276655388145593945608965346680143672181277795262089307650616092399314246809353978701495822497613401429365795854768895176780962466046361261175786312805990864377872990738371969528576217059478306667642851808994890521744118616299471299331970396435487561413111337556791885124192902379537534263753299938936028037300128063504972779653999366734606702861294941676632082033595990203433086914751286690689870013070792583206749642708165062053989325987380988494827180711232600372322433907440066082749210277870598705668616137565899750563418056290658197629428680551396440381648870192936711341427328799652756301473141096079862335225524973592146865349744256454369233452362663547725136716040088966921566861304308271697285308151403948802246711265836888888353802086788377088195885823540917457701686584739364055379028493643919520099814566017519503086527460014890696335976493508665176133032576499273629356052863877976571726641355137516972269850983356812855830936270328961020870609163448066786411840292757160758302852674595083722680193486307164192016534089939645415736846710163624476710889594720831444766335243517106679595782073902044886631229037619373304284014784940939534347653203763320705900136320804051782112984301053217873473139268921329027944415013029115827163706225710525235882754384195894313433490466600715855854765481993369226590395047063500527494586220126319126598093251702927449650143084634222511774350784150755643811683427775871028136612639742833020221412334777919407225877817368349219347156450615498888910582849694557556723386257108497196040194085405670248231913852576383113440877601610987873829677441023487105400829396094398846833332386428855280334364659721119959573303064253154524536215559391632770556667021092390717411885098653111162152829133309379087264509857241723809433207940488577842753209046487752901742540650998009969135341095376421104601492411590314411835907222467624438318733439666022780419399285452974869763996619106704790846145869454695914529068731016453463576929051389880577898368558103264253103137833703963557267877787347140857533662717589352145013857040981144664763059777172670313639906103561754213610482680909013989082588176657881734924920158898922996496636494874210111367063023963786316552164974432207303754702332724762331911679273945752171222773219720697834964813795911210359058436575199289079262238102411335986465084099503571409432780821225091260393192694013252544697129350430671916745419444065650068461430257280867220105060382028595872632073635878906819367725666413947363720857801285262705688959139404720509725016138287760677714598925845305651776821523254277933957101040526308040294080361523056441905355298680114760233100992556239616306407028086968501876219230175665578308889573502115454568792718350618985296573869611684783649181096677993252406466058741402256745875655218093251946717833767736601019790899326911749946733509203944867307549358230389603221744628200251587439682905387498174500071906600509827771194357781561483856394016003086510575792081974241348713992516004527440087695206804109087692850049609064930810560901992839818512273258208650510593876827659959876489633200515327802765973500351217730715912897595685493365499376710448166124586674581105993674303280430562084820459195378588099203833709510467477105842364389761488448344586453785254984592853915976192738643809006147342118896910891457425226235513131414704319284295489209522032201307857679923683576779859756444613807953028327371358758856493862036783342520030533102874833932091207743891440129734799486538721381029346639780662898037814903604046701655379573393804197574667720715128437396241642504861549085991763790623775395699835467528751343463967006266465272674901665129644238826402317393644865603347802036415153950235071521255596035391469456810408676393502545099262764653365364374907315968311563883002543239547580741117030056524520063976886383932566294302972453803395876463812933241510810244156658151340045106465116850660632033281755625985415964515756068307430984151606170614067364853010573577976892079185160481792880352499043708848152722182136404016637746620044063868435175725522658038411959612594315482660857288389392573650989638853153426860133082401033264184796963907449194181957758694594045843055209041912010571600559882566167439351452626309049757872569928891032418025383324813371992640248144849465843663984459013818613455603818487632648272790825834981133836726945710431451415212951329256769027411466410131369086368962545601818129124033288126577998846381830888322829216934984351605242848434544663097568803462729174901004957068944037732763908993605180752905011728993396717190716055198881907199662135281157505304608680603542327832801732403590837935244555109076632171135853050666735419073935672429449484739774845039966675132223298196270253985411330520897440703945577545963500172356320621468319724165338310249994450520823872609038319208378973188090132067517003262391719770641414953398601617622143958209798790414304114946726680113540189208043610173011877590086332077530328284084836549886312197796764428456406496289820290242817090862009672608849589655638125556304595556263565198906246108976180039993262321663540063511159992506255483434475033872218521426391311596838072600093148721435837789049572931203905391302775490357867220473045538865187701914583684200380049781378824122782450830450883053947796717109428381483221829582422006715709819724550683525684446640387866221828591711079357988921463081491277061090707376225468106383692978703494880743064705224520364545737012714914657413017337006106243398079817169763612954379775757009165212422281707905377063287863485644964339642967051671482068636134235380958179852636787277851030888093775412469649554895908633913764718760883527356222851490976438689896066401867288488413699796187204490786196431747084542766962926536194919729968182336301075793430478297966533444951771406719566689670914621598792308513948930797919966037974680768159615144367600597887567241440444155286888159842637996081515972052732637948821630198668833596346985197419102364345176263849072909654511073041197134300481038052130938767028192733780980480556821254230182880620274280468296504306058910124791499267219444122112897688743756375473059006881101411068343632647814380509967156767000458161069803052585590872454875334332501300576130403023221684538024674983372963765737901079655850114037920721391923139614932434126005560048606147881975040922271541035420223756000036583212422660245648031676855323677123417495316751234996329372141080117616506634888485265790430743588378833319948496235859217918216578198651413088633202482299734980256536315242086484317063300496681652279635732114678239684528114502080434870682265783469426245254428101295072090451860922608139880254275965430967409962266682769588983960280848524298767172710832173103746204462426618170082770647595530125890291322621056100869863795649870474854553622155375610971478599708156621477551650931403857215956450905089189826749381059314735980622649442230858514119791523616896262643114909313424321340191053247084181126299787543285366913593387231007657115644252303417518916602610313286937411624507240092531386192078916223548260753362948157399727354428519900864073390946885201693008132306071933980848564166768651378868747832787471715966865332113674432419734642181146897586845452413726949035253195952565107706083981134385647639417677708618798581756020355636287952034724656377705227388768768120414571768731549703599657733708942077597002075869889042650034574843635362962693221316146873295569414805833025254482849999012858615507866233171683345760058091353005857923104206931792478039228438242469027041388156269662783590623813906724971969685906369448307897094273969048897472507230884432059984062631483088751630278086319264496931755219323544075259994080902617715072374585468722373032889703274630642426342400933757937917018012362370388218451332094427397883408907242353051050830880630354173645319835850634686191288297538619166669992734587072673171062755400115797907140258104297406503144455002442416125121750400285748666115738864526338274237355584601263995683563398502610468778608661053818821803884656406918500403715892809913533588571835456500972743990122654985344130865432546728640171028675507965308993229636360187305736871668127076485034538022802129331808560687327996859332154323881971977150947884359133497564326792948685051990811905976084444209087773531994224082000691815179098181364096576658083376575210885974996467512465405862638868174003803710445065418326561167018633473486359965596074160038819256475690805346091050899470742180069027296711601432437551385224052433921136851978115981014721437203585434038290748893199128425568538436156934594764590512182959849621146086491592055941133826933639447638617698262111736206494825098810657591560768198063760099923603720927824793985537888258163573111595456992404207737772955986623722386002832391424364626599219676751040118571884843363045910696571444896265235296037226476845058238330951807264218484186963613803293446913219547041234417631676497237557429621114750324498957021843565793354266573519245850673742840801421796822260693801605431084201652637586932062981109756002921817819727159904237001825393014135649925157611643916266696387429574731666674135072308187762206592844316372611802046434832425776411962204187111875337376953361221854351819823912825322743602421782089152683193882094535415727418120287006391851753284044927966642459749063646151983923052035824153009355013001509529641365085021362180068095421307108580190662397391544248238307967063709141371609427239094510038873464296596069135709375524375231121343031380978377793678857696350435939177040188670826899409482607842816494640271049186279745892508940275779568480440674914374568371668235181610821563449394006955254754819315053788454279242193685641410910835178730176531437622533413749638396586121459730628588013132445981333890894842431582289061618172127102707717491604560637106758941057768793051880831286531860517441743023662523029367990446552498483900539976115329191531093145386745538151942078275176174198317220063395505413888008888048656883312715887337308179812750128425839789481014581249220775122557147313612850931802072306377362874309132953881832099182284783032144174834015575672963017753704514458956144847985041890007562092941779992410610459547947078314506910044173764059721046733172727655595671269599764039794208286790510387481847812898472617950739841373650362491363386973543312521054338999557345487118482751764652222533362023802202631979735792204943943920191544045486269866612898576901535098551445921323040771845909342496422697663814329525911905198152264978572593963795118154894735348935337873920671244809397193696464209136211903295958635151707857369687964584594572558698285409326292704297561513835362820518516379549799706787940901501181463749283505060749387517070098262004610800987581136938154789055606810811334133270534172710753130798147711858831994313030211637269065566265646280479298171549232019211917458958160055326233366946522889931071234864485999540885635826391158883250240979001000124323916866806093698006256839036007864074709787245154037676369885472774363311936669913713208062705395642578568697990133722765566158095910502538547878001049932223612020132846343245652379849832174356517923994010262594602762925517359764761208480405494916575719151471958003427836500064083011478828149649729481311593194998379892800232666345655274258116059966520903083355266546704980691067154301256627179362858534905204665389280652990444846733084845723782141587965307767729914397355132686283038899073202102933316819947505857165625385263074781421040304972974706649966368394933825477372701911257818177282019057874298706871297286265002099841355799967188581367721870828418378026135370009557556248979945120216380243374793009712471241452248318682461019209800480550674227888563477931441636230514873907059211296350574910138687310804311347389336708923239347559519688224927926240170784477644273087160314216895934921045459614796809720306863745999954341968857753781688361083420361101378622042461596718828974620675591501127439257081422697131879183840091095408504653076993876519822291418906669746103178609342652861430752681472620089832142368265553805721549090628745493319014422719921992868639069342131343347659117668938041853352927630053107378552484728203096935287353695210038410996873612931491836724622567892392755101639474848841782903199015247628673611661944360585402676433276822363723402080678429392886529059233062664844631725678186811999483479730179821593345048682047340482855780875378526798100635985417850833826275007350263849201616804401504831701263198108987268469374342351491979122676379040052096687582495057784127728546680897843167346237248950222319189230539775954353753380442435721453749201689426298008259703541368783358629716953609696193046094708349882885498918624524632972595589568239638709533150874051742337400224801609902152579810563679465572874514868351630568182906377429065293905888552920982011093999257709027214120593941561966758276146235331631667071332411337282849470280302262865916675103558002547596779141602265482674572109191987693064834597050947631245411262926534446619857698673650198435501781214304102741840630097187619463941653887432506849929536711996476616402972472431399678403216089334768204496770412041394902795629518797130277987504677900949789412131072681319951210213200110445843411498710985844690941767625627128390173322185644394952961073624398258365793378011091730881853216059552825216793504192905305720482913347345243410592340488443364264198710473179733411342008852643141059575543967871013303117128715260256193116997588986232215047739877880040670344790247966737014379196361019001035127611788564601011119055081510875836699391909717227951601016879762653307371509632859387787368779401445690059370398146953646897830854556407113324668784828047575245878868823314904519490394481243851783451106887204426683714177913626253733143945757643492255625182305630631171861982543216844191971880909227870665607336540570846364250936460104509143949574378556603060811319819043079721037430042155394198485404999265874902264679012565259221387007135237622078107220569638924149900745508696091207958236190718442038808069388509594286517295831468722009148986728845811600842139039563788757067770990713506002509293691677698073486321293403245863369191161008003920585776086519009519393070924978777157476703109085866875209856357707088917306351701335720807814395307480881111231186084899599721557359289586277350996364194472984176506658721929797393293648904396019686835584004193662706599091416660913669432438357368799080649442794153616907902402919526463008626593508153316364443385021436826013141338428418031483012068356633454357884316946981964348298816400434108631343079991191406423007929220744617785706522707655690352520582124017274141829098780284721282625272612243929606177021793113032350084408322315290545549336345202084534011334387547782350791060015872487108487284875571083458183153071099653641681617017338395320765229818984627478931791807685662483474984361441984680462734337589869613974948033923098499944108330384322070891831040815932373352357605294215359603814598607428825295717717458015179874654001938066286340741106770466055698465229013513823182436531668166639164446870758189192389390043709060772834454190597935687567764785022085564761911643136370099746533119629792879497154063264857331657190709329102513169620490797137726895170795610169509074553829288265328422994036463172546289696076778276792264587101216578443551644381397627384552158540142706892145697745641000016411699481305899800112960594140482046833037810029979117132893091096797169931110051314734489553359585236404460278538923029467072700037756085274792399828590273563082830825720040649335383402317147745613801886581178995514413809567424372555415393143048872277205448307271390206084977572375141724903362741762723513356130022056570768332311817074214418586743877521418282122317531610985071368438401111117268482249354704816682368624666837081294834804525368581755756639608285599741557241432698134268558115683350195784280432906012467283683398284939499282977717542176911170689795550920483665217360697925760283081700190605651914598141317214387807181243785735704786730991009450097410025485223095991690183206543648474116391657194741147294750846822626466607365659016021900460534636076529198085799510017800789646779147846886113663359554970893456370074389400053642599911460490551572119095410605918290697832334756021293088785844502814974424415702922764831218525567507643941059633260041971400223916462425328689859406779331431054648690351826697968096059723953347220752255325072063606804333545398339560318925053766357774206722680643984415297208391290661785286916852291055151503428593253277485233952343148633459998615188928196380025448635881026911720260575657383254137409271868968591234017083252950903681902259400574820218801502823860746245802751210152285300728253352835028431881614291556431337014096590209938845597065042368378805395133210949503993508732919067360466862731506125291443408646315667390910726187266135571500756589735402120049286225956732201070922696469937089006084679703859102932409114451527109690293258214224630039049570202130946343744042089838540959837386602752786891927170206360920115649681015004896848728076457023851916057905036126040261324764529005722858086865064039007375702579224628331443851679356907448144250744815182874509783541475970266876445614726505474621281466253901581832788106170604927285679860393400542751402995752129474035550138480434692739507278196277345362403094929354607273795320568711123338528526829841690527121257401506253476774377119230535980401821495113552236611924468156688683442306615333465414969602644943288143424821686263844003581386053231013370134293078176480413514077247773261632833569329306595444297354536034756377147439352996855225099724838123142291959308009155706294133347437677640940326588613109464028585801689381855586825301889338920173790120631117167438747324925108458623305709976274510782996577015815581927238582735043237857224972004281999248867187432985803131548973157491385725073179733978855682711157081993826082563044174232286930811690150375787997402684319703850790920881796720912299376175796695691039004930734872308935369965789200445231818713740193046310334698991021901782467208940743585497350213393578822377056641410940599658976074837472442646581807316639740567986738072372467372130129200600750044014046197464372881929979246543591604819594000104292657915500152067724089093080370901749704884053246083844709278392599772538534654330214235443173420345194368671172782269445474817583240617754501705941308203950987018834530500334620532939164076538274235069428747473583089125902700260266936902810277739491327535179408846697406540536487529482451889675639792311263869823659167619738515303741369894461479975981141276092102285593094369509302155823835222592947646900276688432877275522845004381463478738379654839067167661970093283524955622257721765095224994299887073093737684834865668496481377389748539290266317606125857703823702284513585999554381796174161633726024979921238517082169150420103772177715695401120546701081543095807193502303600986007952935564707680292054158829969878614249773686901068773625735842989381099668309126858790300185160441038231718557660660975280396377622263028920887191186674216765008530787534243614670894611066963499208991126712490144094681562763660651701077181283535302738152981896874280455973645192941519906654325076551750133319068867821293715909127605521837695127411443984297902852470043204150330532315019862104317897672957950433727366818613145352863784497389189078831424569909017711618723215210094494594995021490438904367270723319899157235524398350099767749915731632305660538663427744770784914017860723528369826994668741972886122910010464754419899479662340488214750639512618632686119382764504278410064294545670703530740096494786851891845147833213884502579811210809057817429757640257281670582684623449954316353312558741736578610217330563894463220357286326798710585481916171328625827073977603143437989050345470306208877894742091355288171560207950160884319042779182431955729865764920062814759115649191143235159578699884066243944847447254594098794244170153688402454569868783975920528547220260974442762355209899715539157880242452667381412307760418186873387173560834909883746723521983215747868648851389160077621111274292451116364284678341665548404714058144228190078851449300092901854277079390212298026963002647435384768755208666811258836602562418827205899656065971757522261432616752071781488531623299271943751144486286018608136818866637340443205245431470423432822336509852602973960420171785646475533414484112331216320893205060502491493987116051934556734718643167875052773218469825698177474049657152853267958204986240277838473384035807843813040439694869059400074682485822612726815646224484832453447959362259032160238479750803505039997949115096452955946998802003345777649453970312308857130215762777523544225936798334766786622529374188035204260161966219398752113840935564627686124105669454704968636030622937573755358264892882247852398977299432579088730851867331568737450725741367348157034788192605250581639825856068571498647295593511135930164036938522124343274994403693531696509140256045991725243621096865702717339415937557658296500765584308686109957071928854940764113997533544641128957096439975364724495883894151982979225194846227073263968102942529302451956427388205108971994103091027289932325986145673537765046677887335418362195600580350407805169916452704307411202937307861536216271688100971201297295153804862111202068014484220818420472396472594536167285671098266083426177360326995906697898324635886321934073507527093668163733239546568443083363051915967938847549734190012398860248775589805689567391545616402444648840496396915573255369823864068103545878058272324371351481180428439347174670568070026415532627289960810435568591333684053735150774165074588518988874149503937774774562997127939302324735838183498044952141488664816769268323832399810013932439884497541855350494450351024555800138458747024232786178225242666514498881059262845874302812143081044144376120133230105318524303252702116322223915224004347638325505602171346128747058783978034460793285635981961800876283499446123191262681754383682724977546694778924903863522526586337001724252565319713886685064039026370134054360619211179972049270687545699226723991131850419674631889809934093842917595959625501933912825304677698259630968071583677053729765640627390779025501183045555551353721418639095421702620342028000233444065884854162767888260064581892731396727761569669021033306344675092670792687727820658250504493819322001663728795918771694540346268272254344261346566553354883394668703824781365408284749642565154594053667951098326558703296354564917106062045857541066445885802574672043153116790931999125345110720833055515257628340334100376230729166702288592938648313870207433625867886384779010632162291543217843086462909107627838484000347411374625984288417209980933681075053645357431059161429760951461154952077812495214241330499005585304226497096919436670710896793601660649614814246136921155484714296324365044850800785995692819081776418030357086959971221408854522134089089355510092857602708768271629300020359975521451846283524657288706609473924353299344407512506459398252059593197533859671360407544272856844732997697321735902406994906790135740501779454237704705630194893119757250305731166058262573327468429096030722452575049537182926411546104040238114274184986781551540825095330143317883141428046013611032325861029272962828936604549601905792565292715685943063829053873400461150819271896811948666507871953811817320827264755076210231735048047880616117007083753884362981239322865652647125024135749978408370549949625463151207456075536741674719335457439632968898514037426129513556151456756392400544253215600909850563339083712348369812610429862320939977967398571143035268444175598558205321540059010846435026776260507718042967325081787065669615929078375168832745719971203423119864425770930957936305283297573037407757576890045048600194029359088543154905954237052163801227826406643808695171181524047453306560281131660953137836036439942404497506661836890246912896312441098853519636784671268545300030643825659144875678701971524396172286965796159639063843363823289231850648101874806540053958063086962849483766782235712196019639060933840783363076266583801167750985629236098251593414252393089180881989933829755315300926373854210938814110112619179601185255459269706569057274910018454190339812558497415201420070286652537326456490335014279240020766253138450698332465865276164796196759615457347368979256043559515625447666748938778514940911421090491414297045376929781822739936500959382696142706717405783881364390800992509767836742251108127727954665850379508722565191187360478795233585407139695723182496342599760531997434830121103541204122970363322800713345968204470132419073500936246682105482953821651688434791117141494428692617500741107287747366920019299001291137617091917232038094329054084160016962993930358271748018629781274540823769260702357683994548114727287311426267466896954770486757832101930634521691303284167339045120884294880632252658912300146218143202374388013159913788773700365297865698636637455122146186800474875029816158813494356311568296018611058672615589483547074984012974102261134900815516101751436691917299747606890097350789181853757522920374273638973752066895804759889694777437865252171177207675606500229048493621504206879815622079804774121797082757568607496823634176408447340034238273933439121295258877819216935639754495741260951765186969724922463700594501178599338290966470259752404310985519711205104277946540016538486340809016373350340933568970840354924742710845173379620465446842014631824125719862369363459360952162092214051272995725854403552460499436866935115321569265156099521478032900699958865830919743895513922955771922032702328397481170444213851536167115547365345981759650891153495484805811034945827641463125768182795674223351029825698530654014623073433474145486057226056842833680907276625441744814068328770664397581974335927426910897541717873338338266884762861963331975345437129746512123348586817322258111910105369331240131352828869666280690178946396950838957467307700234736070924148644639936608008499407850607565010988311525495797041425422202491239736775416751114807144752364958506930581986233901074231508196818824008997099552348448270866459695890177379002840013838101887057353202996708172843481757176614034145238159173079891680823978138816690942791941306804868465502685385713021741432189512644739464471869324651077606932578174165213581228459987641737226899275921730660904742440182640161669013129216739376706268631346086017970321829496359832640386274569338238669498637806572440369699920198177139901480079683310683686628165921544023408921940275514239724407307075047282344448699730604996815238670487593778299476706801536638863473005011878118033804949165783003796249724471230217069466371941822699000353905346157338642919199066395332833922491169792891760840774625573206918301897060378724977648960370368999199555651324560723249561918522270206824572194165182370234882446502392742047517644840517385540027506843865727196646904287138960178896349625425861190832110878353796401307003918193939983681107119726576555644323479079478922890117755220041019541431055839089206044053946191129767933924235177177339262558155635735529155341625391143356059126426032758675577737979183428428896999632074397407143301794487597712579416464400728037021876668695182003645584841553510925316924697887575477688927279345748538256887866185664492267154375584909214503710407474666187889145177302892093723747376787044722829292261251951050058174567747703390067899074873493582831224960601648542643099390948078362583330332481579573633633568098393177798944914412986649290630033062296368790607608127171745398217863243510432171882054581986478117138716558011717043455837264206604142917887368244611403908656478198227298595315013428724307903449208792721811241756194539333062912565543010888353441895449535345829814296480856566534449232879874455446387510940218726552458795201849665250332625664087120171478572402143800343791044469948591437140956626977631364413854635672951144794272196669460858248432160933425876085616601647873486635469685088425816242894069646572665844694602360060307654289527959260205413657879659215159556134391621190735896629228184547416394788935015340616026801750927813893553040298017920411824773434495827821886279126614313634511848596681603130691972043987967000315375913159493804655727216368839158674172508961774753038608282816952467249407826020286101675949772656552954457913235335363628835394074458176301995087308551004771208234668895542989059711607333075521007484839374959844399658788757260881147993507770196731870910330258382708273220441942357023138113098162398392109327234769443515435731703286808891403732150595949904619682606687369608487652594980549503383873391651411861220713178361740285884177648880736500154354313049721452823521348668760764613342465031674571187501851697230573586079666966078684638211481374068351206695771491452154482908770545578829501442638235274180505270594693453785985672572672218636957120836381798209434511767058814571752788523254590293416667096445943306439857637178032325282858238410449182298217238302573137463336446134957504654214256961132444169561475224352847773490274539254866163599405330222788781618283929251160967905323166957508257504314642897224729028907789685133379122954132195501722436770008850915078122737136621813621424377779275974174611197440948277070563815164664287738595933094644360252455637645715923239117523876707800235135915945779969262734676361900437746698540779282487466538444591054173959413042446406772457904847908567842317466495498483521341013499721951433329099132921411517216763825025510970887155839776705065939312628092114881172026585359443924444585241851625981227350293219597810788139868847294703847088784361390365983008233583373386287014571957709437946596436622441526334079476434019547359371675300618837114246693548191640296963771043568011915441194367192896138350812456994687319376952471887945408425885680839672628531134290019353326002138934199984896177306070909522398479548267818015366481280803909448945306669509894350892013488509319553749386777918222244861808239165589446368659390295301421245324263591798126815658845504624174174740927331800350218251719185689539822760298390350465277072746755361389705285738795926508407775737339809376614066958887897289283362483992834545101505151480751294025121155992741887688885251130235131190239896800512555580726596237745861006191222766760861347550840844462158830291550455376684698750256417618298337065647413275178010580210975674984058455471357249743912580859157623784414743025625191120913298114651924748548928181988846938979342114827233688692863467630246471908452041257201256709573826268097226798256576765188776519981486946214515612752415325028269771922929060712273808160208230893418241240592735097426808600021664355561726090351284527677784239319908912863194574927561020431615068949913636138184989241729946451240582089125003430809728923566299493184859780193663259893406936978237726010465542070075952378981360097732938702135343406873672165719806294268906983965428735759768950851239289538148478412879742966166267582187884359601833973250255193611557194203535264392138681183505343185471842536680851941845947013613616803647921964300963055644531597212482845140847563104176126582204590228691412547085832362689534824724834184068930462613739188862999025392606114218422483560653928925616444900521435393269056640748819670689847754605386070000817851078732713582562343489346848121997022372466221942239609059121623782230815544579754095504207325464290117986683910798984017257765311253957774419916552861133315864608492930370936314477241057527474326086861337975026257161711925480715260510906667441706702117260096289396997902176954504857142206590214898043278677218616616748043799699134977200543966874705151964191846486524755581958637436565652215856659889552496789056746526776061930042364989797359744599626291515087910640075073236042394064235101507110828576384713713935619360724681903173994327406737109062444781489990476104933949503035075406049040058921525305811392339071149448227175738143163942484971594150199871248022432778321932134634489629009950406853570595412537230303458154410867431034023059451540218723823548575145268989091043074105228517686037198100607143641575781790592835526990192232765966783959847447276540887766068684189182090565676167516592482949787653753922168443756549746892515538549644354009432759186347527357757676426826426631401518092723820507199328472770640219382192116285632107164181690805019092979317893963383497531692468490686882303927862626460057988684742141475936831857846995794116188863824568496460989385572339314020223880735972118169490620317559631413376719039817670913030779654460672814373402116890877022616204352342683938050444913065228028796971725282174905239656902439436194450201794852683914496673797417533753194343718841661105207409364229894918156766830695337370397759337877703585831223061795449518812870618444841611400272426024257676043439372503288691998677913376627210775548344108199611341837833019491385320398416542371304785101902248304242384867187790840693111041434385843152836086928789197574658175843172771970354770265160593002682468666874482639474422128376524049716787935130447318522003251619634259787290981744680852030693965487704815656593803914652913929777404885185619411353252991539380460370623739929577244828166780786710219516262509564210809074167962866613488194131304261478887211101992267387142347821670291231976217532643182991647266723303903799951874265142467660807848258256398472487473245780093284931930850932395002467712029030595933069052208917738443374137589625975230597454844726636921579675717066524608383978194499164684456003640381645180722140560240286610261157458079675178571956556431781603363185306938982703899311360997409454494909015160156893144578659997912037008477889228553359729568297219179108085453555043428988212445079659544107056536738255193795598642148613116442142901114688676986325867150046304375643977031347979734649703931116643332649589354348244465107849164685311111495689602304188836102196227594688260446217978661206225685573677137483821537826821004879070680725588250091480405163429192204925578240503456351786423206553614087288178893713515306574282961829071770898957830411075050695061721447109398943760377720985801308287246938592556048268181792209855707033765403575818342495580238582911179258479575140979640328714270444970430094003599690057153832480739668290952038799817553394565393042044115733826792778512151915494253667264171443370037200078421351650156071978973256525951206269765683486498432839563954004592839357948929006020003416768982054212288099379385380792686919072367637031124944222808990704075386876410958074171501637858722955081237718628712519342212885160394886365049481939594863170374092577958296231482820777852523655556593490445943724182540967227980845881136950550218325443641740225973994677753677188011014366231922405885922335910825229646350602535977956579093003042843929203437872774021030003748398992559889152292706898545218879029287780569037748122763981724554159331859866639858279773094407037587994620905356629268939600892672834712777117005000264847686591747155972637788440465531546333572438243686140477618706670567082073521315215317319372536081442375862740950220638574079341240273793286314867152237677418931905852882707258350603163994913711763232340569944699964189550444247943938898398555183450640734434924800821425453531163371513956140035368239927132470661187780907363712748329549808977946277011747099610059807672039082755324481003620059204387672594340933809971562722338298539294093164876585485922825253888958870012707987153661050363447548100008580168872445946825800705704242694100161531827282966929201977487621298755802871064130012128449544099829619517261182765302443311469179288048266653225190894606719358357594167407644457352721875044139497565702864054194800532038712658662307704873775873331885561901443738059832211310609845129746374686078683700578472295971490247724828684821838476359788267771284074448509945985111706120872212948594945974919789191437634920470489332429687154769451819767220691178487402025360268706469149632298939076603787060295077598846099501637470615121318790627634875654491536601483656031334972747029626866093955519783301421523145803485259801223649524390245950087325094133583874015776970833467490003472963221330532909700786991473785796536302687954995299264966470493503642846727440057196536974478022721072352565346460490820796038451288750188993852650772497255838414042649751099251831065607101568230437119647066110763335373521879588980877567392351762291810749594615380918626901362642471845019899780458051767435451230603997395057658152404335746396664919253686845037552002315498748155575726786683025231732267492097274614831538563539605217551927827086428741165610954760932715546314252933039401205967931104913426297314435516435977183936853446698326945411555626034876074333013255009553166383727946994848813810354246281910630404873937744732222495068100614705000068771661588171362821979533916173607265435481112893962329254698260360339071994812948494999072787517749514831049590803404855521822766334878802177856390679196018180866103272833827565996785197832535749974521436187923924736060097212819657365689381466766407256684181833884728252911516895675633091214919513540979544173100169783056236601749310844886257113864290370776455475546358821297289108567660398065490046023228651899845506933372634926599163955144143094830944581863025286518573165643405212504711573947276743262357388367663745913352084848045821021437257879331784867315236128219694009941647585095172609475088526518137201059000297819652703503045479572698806705295288786741713414598189329840327730692939190708424360323306670112220088570558460314290572686942200011481972850720219136425250793353749665736385309553232426734627035909377420203756319961514402555758913579909763644055407460786688332201351028338317998019974031360289986389557295644567205095328950187473944877422236618837937039416857986999890134463669981807456297935500512940111383624158283675229592792627124203701456874226336205272546909886421975698369676374156552079759779845853193036373492504918483101197359387607840254005201722483851280077001150003113969222991084026893715631858090385371832431541275885236711095601372145936988723600509266274731815439743374397406645156857311419516496835457507712917037631003428371968424551746743199277138138920617951863195068266375922531948855785288117364632021554238260894764572051003203974443149254725865991629354042984355827902345054486680464813795196752909352914712853161109597834952730305874862062371805043392068649910879635579475797074052751744281541323595069707875628350105448879295834506278254269210148450963758439248157870561563523972308257006424369862545668650307863949971425765652440986359070591944405121304412654605075828731386997097191644405221744428662235018626167966710062987223216885564679870724539749000288473375040234498229096030596539556025589806509660146178695853863767720755413796462127812697197474195167054170173891588323703836384287888672574779271705100369576221768302649156292218372049579505401086552011603502575602645790418682181741676444644198268291841736715216544450494369845812603259809071451897508819921254734119366973877551154559114272992651707990235243032328561972350320981207970448320611642448153368721072116733687204993749558286267655775619318403112889484967475237576981853367528762272233834919104805669547002478356716449400486755381774898743012568161748465693544907129034288131941845238111306549939593251553663147646215589093945267585435736650590137741740927331678644516526438437743333417687360470303053747601051191749097086586772145191996563039830960773970655734040959129306665219366906741829729068542075982833753213399925787276151374414842309411182699765488598191623272009061527927363059188110772085884180855848116811744140225186806457582330667864808107244549293574990632209924758297701785054248278235222041635958629143436188788293623047412094875956086422279352531077448970353071428263805252789504432202615094228040028837379389221041697828073116097417558601896535150756158345174231222762607456248201775573109745429879411724961500548095995641278491233701020462240478092187183566860091294114506782577434744784363539719445903963487191219966570404552819796964865306468389351250423046274614195790397738479682624153476926083347543934615264549749144334046634626127942333099206266385813818846675600268624224688874987044690136332449978375128996030239198956080490637690393183449337919208842256607433432904328373220611807573030903858729650030850083569864738218709679653271458969304924041873639524172517721973242076737882385463958175085478313837599826356933971406938501920240038776259971900724094999142858272922860683194281918043299738607748537400682868497716843768299437771960873386603123294997722611163829040995308432875781574686698929723890352180947030293233310114281295812394151875714189195615824857918783049192627544806892188465999040794676015421023970813732946868640090898796463273256069134511982341681275381685595164540827068311678926438136424201669405669636806005251375033552775276988051113337228414375142167002806215106272233861335622530925758023931029791757989057386575225587406959594216008253716326269951006029335809114618213289331002999877496480939617917079764370672825979817336064668395546700705561160603233465520846373431720674035502904208631516939875435562217327441364271052897822043040093404926151064711958193627292205143795048704807555539660965484704325383283253934950817271062525409420157467962920964030883578288768367123678340167865939478116946334433624126954511514435258199403286960518397766696776261696993782701612453405265783084829017606854058865419025460618579591931723738890170260360339718159568389910837692703830781191140648165227791496043541707742263816343104220868553478390051022640810080459074875727621541002615917634813515467385671708134555600542631875487178852452225146637348822619914356222580504667201988435951451106016168742347006179240261461691338789490398564542101483173914647044620879230423714310603063414884916042640476179995651331977329155995068978938881935733566779856829399245829492752005986152682497640721933627732262657342358294444239796428235884584432184010646392074137099347743029946444435267381746380165981091393162861596605957436645988943714447444531974644731732270541696985909189035796225261632469694073836322299953288165541651820494565465685344026348717484986640446263879651337989154517822446243492974789168970154139376642959082024567669803126965652332838402868961858346037885521629763562531021919072465550363538424370035165175533829583597503041317740310643363841179157914983735383215441755014949602849141317470762623224222557850388077108958312840708262511750211331582848180485424054391218432740531621969633005379367869274203877685401736587589794773493084801204419000436768852679140570846102607269294503434416207868036721718603394070654883035066949103080744161457437881628800319155914729669209158279150145873454212566192959547629318785993457842568771985355374158471920268145023999814799148532363712946862924788883265959071282832288430060931431214327653731970231244306387404582862121455393623235856368716672494691402047478103873194191240725493030016335241577588054694413894442953326032750206852924779292070155269676132653570743582237974428631354709505945322385512092796762188302844775961159646249908881199000701570514071767100244708732336721534605835459565195773680731041211983505600667773645706009639412761021919411699758794735250002475074232660979672943263303168062192678195320603446435563475264569143953374002832623073346100697132679119458214903027471195321036221794090220412501895776744389651309700487198746148398745909045389570597387959450790567422751002019556264571721722795011716410643818094879591094492026009194836816930684481538634749988789097709422675081149185100220466459759836420758041144488271267038576192083301836792604255269396432132323819507058117092292639599718096598030494419113067343229721558252924145220855977399058832206506658135923232645588968199922682603154303714939109889962909279782282978520711904467428551837850125062359989985944096008258297844754896779751949868871691433146057124728999837841559272650732765461608032345888305106610334325323135067892715074891685394429398290957172455356285653807303017785481974390106503333876809142274822207616170138512416110230414109595411466232495499654673149358935832093047543443502336402854592413565892016210825851285936039682179781184160031899003148818850710913788735001291959245936741339288027521104767314841539136828233175657254824975008614043000929711438157279563776631435748572980935466485567966452930129607377246535653570089166160767071706231297573825489276759087806884691138678181965356180025591974909268476267405318672942136921530891987126677636686300386397590507121776360250908291302122293088481287726005191081127513590993047867297414942048402572591185419010348118247700903437180906949078546934428000405255082799067836518214405934573940443858989974385512037322201910064358555926565605960558359638694901159508841309476752837358277539131251909688988141893060882429396109270947461026461832196930623354796035281260745830945151139596052970269527532813570403020918313039633460783092339045347312689957349029598260733641126824730316708773777820361043729605208651892637326282176171604248920138136809739832968135227524541900938552561002099329181265791291284744803098288816766184838288463471163783958400339181010185022278015952429137761443937517654920656658762360496812378597334453033217129658185443722393849891520581751974612649635432665896847044557008790232806351368541941340364682189107636490290414977860007332798931940619216017140145290337864592174900836425485535204855780192214755587289155155262078702939720251061039913960110154910074234100411726807653132801515636223100848185977036988309305073836516340887586935048242056101636807141472224797049045707161096451933601039033408081374535410652143759289572904564341576805066386774968604979248947113915376774328967132147899959486047612399529466153424728514216126079315591007640877995430094348614031299223464336663575089645978006813158967202925707645072863020884116027349735817086238428867048012878470013247393480688203020431914238609721938558967557274797427555428528671019003627108449723917967663782390188370891001800551949882691939317334511790528890339723011944169494987753364831413819790537998346135731414678807340151026247914794332218207878986114021242310622943913735110280252790393565810130078561579524877472728071131459117391894828444526115047954321627028732775207227961496373398578256952490909749376903769144092798290068611809197802636840359879023052142537413652171395489485140163575359686844207911020776022438182158425479442228304734993672568782746195728526563367401934080698530096039632099115606996450434009157492486797174609038690552839722288062386482933475152659269218635638649205556534730026580513496541600473873161128705539953143640698269133013306780952363414990718718504921542614464246589324565906278377997943072973086934279735588892960101595133634480288327696637962651779687767938393936140971041133576723039344830789986347766760800453083686946761488057174456707715019851382251885586685894725860108753013485692335278253603885394540766650596514799340192356504342174934811521999692020075749833994208887122698356812002670772291375409505625079645898135556170850196199795352734510083372922929505620816370214940579805000432798831721832329418659792287393581510242124985595500844240985365833825724914892203021512696799839877036075089538964848011595552093638145346567340245286820139107192247129239998585189785071011718984036032412425680278012100047213040283061640139984520400079272793071927566270721284950462080714291592710163776865592046700679025251756820851998745590412099797769105652393496319393570149739573319847447885728503436467544409244681997364062165564260412704271505648077028611100752424658568177440364807064817805580084658288268396145320033120835547077970340297705407012819152978693073645266820677644473751916476918695376596644293359855351433215664466899387526388122076647153191583973932858613389581823529566583286228100265147995866739064735086918742950192462971530619385277644565986606033487105191829467285282971189744218007590192705105341123585144006593581334227070486387970490573724690148561427467807863866352960925151930532864814102160885123971451480107279137701195554894298590527772016097962649579219396243013483884843613224525328800624983514235927752003835459057554601320236994436688616626296577652877205982569186875037101147075352587148499814625204773690584486694062405300043182908745139695294805148045527805391121256201460880456712003997451504366067514500877323902794584631826868938279529413349866399419206380582739963067060496353313017821196950491584204533482758152501387437094787444618593609198470144821352561453890692809447761877852806453622442259908105782227538559837200044107707369366511279176583424131948822552698312958085651956829348577207274826851024070478339321369751672480257843514232082049298806608644263322313071238426543662949619561303668911357532909273041147554885055968978240334482196961710729792665054509133339305654490960096190218535892748657133137372381613090914169382711805480118615701073757953134123095751478676241786740997626956526573626296186520955973271024070209866066838288738856974791679778715362965314189759540249657149784289463512132167860594928627570933569225184497475778373950189465978594422938520982329048314489802679553692738844063187482676275465855798080052249121090534198881350293446479324023605726185670929072433256961144964388008110136564693898445459499458849491119255325626586636937761376924949540041210664154266761249424744726282868579809273983301469559309480939204807496680337019823091963869385937827778743367988411380657424191614036280712283415837719428040443969459575435043120243575605393197322610742966590065115365519354146793041519875662514188700620759261298651685573618610942258769551171664614689974907651455168640078025714772548973583701629150508374371565925310416757381486138314819349826953003613797025383833635095443318112318835376326488243500543898877565721870702473119989172145500776772593278674102552010682494943194253656954485937725853232222551136938488232684807095578990896696960812515762409201493397321692635103031501791950102205208866603926031159037183805860612346983501328747500005276216700088768591573161051657670489847592778384031075567957121055760526566934018534655678333420430666625125391675565497641211039071508548427603835254312557294937410591144387188497279128897977928645460386122230513433143519433462242112130560406634948384561585112614612447744465320870874918519439408614558358909686782693616645532887799805956113462541411046402021246398917432746147032933025806981839623430472460713743256836238467875364179900536754145160554330620552829371812138037974973568180319093750745675077384203552231873998042459923882537951708404208679976356608865758931014051885622043299975970880942548848420783024326602310573362885881621532948291815372027727610352831270957483740796496235778086216168670346040164685016710000876967160780987882262377031338312546308189670123129904157800902073659032626071473541930843704952836621078817845420944511325982723721875940405694900221861515624121691108260898976831461241784302250370753617014776509997307072767350599200225821718674453058946781389885963420708101381119780273488804973652467037158048905884465885239242566247439319309580300817868502364528312921433760694209987475833064596189219529774808685359305261142112151157475971900121986192218533769855626062206475596175656909106030029294164127329670948987720271512241562690915846492129157764072495037862530610923505434733001186776128774983210138689502093107179608199014035408118410867858162159548935384497153561297052205714624427510309775591344478640928008814349154988232545399816362185424710167756305460221825193954767900713495082770654721761464010660724359492577021779330000194509518116326575805222204973865438851869652073312213383542445615580681867979705530448348005552598128919947471596681354711536359891086660914243909542365922607968648248836788025334599230171955788084287612806085754294764053712251960914560691594579465777870239811507504707144408357502659506683343697935455426260960086316331623827391185759476507265580314859528269276074658492619459530459449491357504660980754061599822010516704399058739485515541551534553710220739896854079287841579550242785375061972335907425728353941328144371208590608971709634772877656561563882921023697969006822532916754739027738819823548399690338482732600688398533263932925409404428747832165735201133492322993871646913201130371077588226699273495149813300220880016052516986042618813239549150209585276840896432136918995269915094170842488737839848157558630816242592016731936802710920465205466054452227931063828225728263338439887650183154210098052059450591352087895481655547096315055956311116777078288611897179624942198053792771448945206945582794505204576872919859883464818158030522934763260098548038272426251630357011544830487003289724600789581813487287799697147626780271905613109758859764920985908297480949405193071959349988895278864206496412525292073481468640931128334058027222947427847203309193900931464502064124274590878663714420252957155834713530224782968548814241848354338644482254959913543337908567025830318936035388463420519581730960186130758996833830907828334942206497657935707546216870976758209552510146880103489215272579995876471920894515512999906906264667224997378702550707821383037238524003021285316109302986457243048795060903135914914577835452246437116231510355840953475186021197016262265091903019688699514273892638969904375647052220309469352270575658712248717355467005654303612558579324468992433637551742464646431791657383387182542122929740344998390397346705609760916142854525662139583197676123871383828409766819349186445893442812566499679271463500892211629057515710973867979952593402616324256723732722101532793175089830770301257882276087931558438480636204675469418539006198847892632789030625295128939519972107468844163742721468910171516321532037609128357003810779023513442033114864207012249608989305952797362214149655839240568375716694033836448654077925793628546622698535281268927059675220008142084009886902408567725152189264377929581643114871606864028325653571583147418753598752867399999071486168206071796250202133443980521763285302144564632597812074126809552157131496231465660459354287751182964790882404825377021742755255038086525384330029779843211283279188148552606293092936601818618261341650222546485151645029180384031230046520955714082499649806503787883732395687585608109016318627274908955050058846196329619218663147137492305713867821832154235259858680775446653982051921093801091082139455418773307083148011739651741515047110644637047436683110513103769482796998264640935553077832713988815096320477776517743303440601351775699180473589356228927409764971595699152782837629060911540308060132757592112371738389688813624328860872544882970043443888214862564478847740120943452933064471280911169391203182423183413394785641653358028562096970019211867725042629710370555427781150855726032474023860909648152002597745261532622744503572866098181643312806937094251626078152147932387616786271405436976954092834137487766355824175535188851404181029455203162197794212606090704993474234128224692649276989553428630812587733966291122850709414863460749701186524987842472683723172470105374611517078963216533113201072059917102646248365614894851285965844904853525885198388791940098540101212434736216964218245473767764023039418050019420153327522713250329582620489474842217523798589511820244171118351059426952052921991313260357760635473146466172399009964413519368480030145733932386927870586979932746792692319364477226439260049463085328587875468940301961232995325480384107431550149959594561244176234993956150004532564861735721049401984997498769469414580638240128368869447578294237681958908114240474327249869450814331603965727214257487137395593059207186284359924977658020825698443665879839188957197799713323427033735783179239563886288622127101995604525853667235902355992137259839016950480336531152560671958916222695440728422689432892594624035303997755728357516049531834404518920367249614738432568102251143508161638196025731513387267185875220128769323169909295260848625590194554166657235152051807623486044506474319417310789375470238057241231637037551547571949412327983358654366369477077236845898593260992063129220387538991048000920912180675270077293815568155178899408638440353579041208141945995712385442453396604514823492338026732137059450961433898473007663392231661049499100890102742114261826422717244951800488186099553957223771144035884128393010111755025963223570322815464573349653553631892726476760110735126927400739056056894358429404306376950498658801459954824279519165323941042616650201730593002163906941281059598616050147047247721718027327273008598451234616653968978738028467201220714845832122306169331543404765735266234691043808295042955878163554192238166435510512055594996124310871474311073595191216849844901893357398308806861348061141439375352097516910682550347635156365073218996572694536519412307419018598892809829493247301923908546834202752378291145881324155226622716810111214427922062752518116146484869441990650071690194449504906890507088985093863173451407028975842988535572892307638404858113435507693051529314140181849331043816148447299146343859033021001049978663237831476774979347356991112811536423151479717550417819585807627903558583634945817691131610073900639240312996996146377177445770888912781558989929897392105153422129334722130344661305569468109748644752737524395178771562266329460055439050583461017039998102028265039166144811773019483762448017091151083579480209709934581016737081724996165577278035264073413795606657533851628749161563716954753363783583005490729437905858852243771387476288342257764132716581071794630697283295344058311664257521891726841313568387155762387951783496735083591670521200631253152508503050035747904850412755240390588940355038900694487971320785849818833049423900572697872457393200120581352903795460345883787250361969223297750941365629675611497047487069883212065950996127501422224291119952999861255139161139256177205161011356347823576605265798354252230826000689374816767644546696967406429928054905516081845405715911617133793554989073660467169204809510059088228990001771332609688221927505980909471110558225507937535348056306002305899893262023775802555723499449906494554362809332012614890547848661329544246257923641746825164852116637585467347474511410943583514002269303931847038025292839339935085893390763828280831107189655757199317822749339742708432894735187467907570201002165263383283897739169575358831665354609694791487565921064152791294372533604746230651535034978234473239965841117222746040191178945165330648538984250249671806106729941774512789245150024050271766066648828910762163828864676347169694291894999995607324075954261200747368265201861769209755577609589777138886925999128112778703824602553866073635771273515107467002884282704101955058800394238837215691413005024040009912036600188972869962061950358992109388310411982579366149167606843067844594719509622568174907326339941627520689847057300746816366275749946747348574383309292006836378290591235279524368905971745947765041648367064184735181593410530699939902471793422103555673279446083894894978226130367692716241771730603305443427608408525313857545920873886532849337847186705078379329066392460811129703466006566811739028348150298478509971817618717327699243999997844651546544697012578141050867703784056306441397216225855456538722297303539096769974910280162028403323385599293952561563029529946373249346765149159867579218262041675202576498408365696845668562983829978744531480119222754516292130502347286717484029382440348694520190199366909565716056922123356634027140179084774005545163719499930013516125844248989519948142714721654125460030359926378783369542595090195324899024715268932391746158694452049436848017227734545401126178299200211534778960924317360952614157749093946885279298237764484095576730971916015190354318694859677646106540838119622699487426209939521604983961959072744541295164420583610822984055299579271759914639941650750879128445003538091594483900397571776899717460543084972438364069519540670589663256716551922366281631338049772891599123121398250895405909247154589862855876342397304665421719373524951160241818185583767884430136091176798987039294640281304710911683235872174094178832362287109781431594139888199525842450282050255357204239024044178676030811734353225973349856994043558691994013374766616787681985998279339911962776921043862926649911114014209388497644027797981691414547062493364349327461191622669044062202442882653045789409349529941977343773642754728664968279640249701607646050680738998206001438423490700317970595648871807442791313477037935188284830467870649537093653395209840998728696714359450740972479829765816468471028313542123133110380029371612603694506505022524635048582270870821339820220320452354175307878115597781017783579667498554262149906591933400199704938805902126181645046043362516651859256132004163878459826553885437753030873398458542491417773561623220429968514500106048710908065039909299929034484597467221002121272624778762136358622449751095820281165077498649775284893615831002286802054498173361532479652571995330968957655922083330736090981182626544932180471007296164222634354324864087121726313461821810002574983218569066384725646347886193147970830324358537884960734926825367275736768059988113858135032914935301958298683279983909156384604683098380200073885107042233015165317867895904246860068902336932398115207044059938128297168653340040692926979432793658737801657215744899752951227899750917519314058748703374443484685520427481940788938970300461265737057268206356778686462134523491137679627982726335439384195969056500030691484294300942769001985462047018093489369942127504709260658834375254846381437269792917051833744082575947003438435543904469173352952544257275834600195105439371366575706080842473661064322320014516116766198999392248022001944978165731400233829083031187786668744008592550717895173558800641589501526097369237728152544334328738306540130868266420502116494538336167123739138679080407345937947143429084842319691041981417778825850063886098644911704480615841047649963599107855861757790633150236790402033635633263928330480392792621657637668484599827558146139097416613837151476202971350994707967454862515271212283049600136589417506907921867443635134084734360639516199316567497623581000927306923750949813695941061751374982225020869449477218918955829225671515116948122766975904041635057931767367964291053498646948445083639213654682818742540577270755624080024082496273351096486881540107298958008881228744191912187991496777128888800766750286564644836182793269007477757242600414045144973297341377516324438763155349186799315076927474457231130302454152235910261842000308916731418710901057400647510231295237123023964043516567893529700484876093904664639687530527492326254514725665403299614743233367256165535277286492186878480192627235902473609775112808070837271072164656782898174938742342263988110347747909610847378687221180693506626069462855303176338203059106980999267706430169727808669564781555310656845909502587465713227640036689159998921526431022394376982413624133695906798732933133239032982650765058620335464262017229856855578500476718383814273649951635395037731379953517841891283700932348952311275593317983621800397400184175387329344995033368446714956817670764817575861681201986155783569107476488200183854785625894690194900256470365397194780920684957459231154075334929087262208734310354573176939140719567277286523279267826572141887317441423483801258605529711154767562970620742337511920645665882843615462167156457408650588782405967787149934163708187283416373204340897761406647705748082845605890247098168364021324944981088813860484893698382626606160685896260885725051620729699509490921502864883319967556317678308698890262773001307678403414001502223571195595870526076368036652078313532257980929334048993428179637295143569736740103630901935183551228441881511474105423381640382910176258564069118945287659164292751096060443723196602816836077210682246686201874741033135033449219186325736711168419022774920953337055953282534336283692326750215478961684332842949032399051336128298422304529286618379813228546183858338737123913498616105023767928117036483207146417424893665791493548574703476160502648748747436712736175905792014376143963866557167253936823472726814589355311329449513065350179364997471484401342773086114988753753839991823878638534003333806210003548855162295098456518364086185569014737792207823990264147407658342161381597982623945499245682599073358579624083448507755479277137680849822459649691516055400683190952103232111641457462916563834005862615111686799630981140411060093073989572027992578516530688049574984242713786347041340278226379306344549847591049233122388636093786213814408110333069772627511132004640381072091898589710021072569655907305960441223543888680548098642587570692189537756643077842858236915131045254916989677123541326987382212163706562731242939485954225076253603779815600540140994181617767311324182890017653977301093719441853299919518974564324019978632218090453325688524288878284721049078213980386694870678617205785715543447575591647749364649893928332590228028878479056751397391580039425692999997530610739235007645537040817170463978826220250115342411619653099274903769448018264138516478986544790843727643374348906705421482507189699385216508373562851562238624190650982192204275661526478805744503594758709949433649375929791984410298992012163547677124316635566954444805530583780532672151398424631877961028360590656492348750616683690280245409461285029579639353283304724984323518715848642451218889360737911039038394685431271351189027769656844841627480907509705203492672210882086595520642680259676785261537759002896736920832392704059722870894774100895050310698537984321220868040895288636292940905718619727418372762539780748250338554155722449240257043228807414674410864320397452280322063595742871626292506146816682559685591160365227079120041134700233181657454562082230784449332344066541880766358315207210195472429232361932535223781223769562703195571546119541086391768562858061430388010338758014062328636530068393606644055529930256274087342540986833873090425313770805116462150886868200698414253948181931573754800392057086766573063107956444018765215183123481644194558547389029812610690543714124408073775356766142456709180609309651455889777136950312341165457539514804475454280221049614220653493765975668930289585591284095638426190097485488035100407845266903329102398735820641452040754846965712174638942406681755117320703022145682043463209841891164927383923880562801233652216879396923552545316294261324510768557597593589140420848172108862759595536544814844760462297710799269452527668002952884089491022828257033350083033466003121032936023606688072755369174349794776048387084118040317494822638702133698950185047619243733095881942994169124197392692895818274322954462154163784390048727280854451682809022794529586772225156352158559168242882831256474130083531482028689703674503016850485160938713966037027813282830142258238237484181037958230105570676636271740938633351825515623272444432948730325278414583601633568503682534014730485711611361833684694921980162030256441734971936366259573916060022979701852696733139298351451041574221452816003195665408345537463516314367895095446275487888650176866579153755605806132307774421916524134634573466820414364848999082441942282173364916327191702593820958723679050038345918467566032921133853366125109110781603865975236750548995238080641389054421872109984576580758514039154291014136219995525692724259541830389340017707986617787091214375980802226357106529755232045232684754771596037716266546695913115824321164248055618859738671953898337529949151717428481332699752948385957110559036580483914861090670788826849990121981097013932074121360057438790600110694637537505264968670140119354642524843051274480891155607953077311979172379945823598027988068524420143580647130417651328810527242064568352650644989279773911915711074691256237409080026189704912936589295522618740713798245534636144982463544631270198799974104508554685108356034109978835303098734627504256699497420053100973750722054392236243617371438951856561278778104245238188786924139479534195264447836468984438089562117490893235061153986592653709877949519928539667844526253025797794381752938669654048162997040401267726148722602671130947182737780030596847726062932261695663411126749517756842419158189350647868134730792580414043791530468487742817213305138755633247293163283518325385762477202734160292537739608565943575114854981946577771198595158362583519490922483871497501047155609422275565094272317748471786327487935806634603618065362723928518220249734503726948841168237449581695964800110013802905336399672799880512314030924688968093587261766957629759441811645003789140627749629197316517129789975032466390762739423016675247452813538522273236177053055358238677001275746799700264993146605641078824701855761262031601514252722970552871168116083140854481719534058427896001519956432014373475647902041330942363834220921494945264576422149794789623719116117359829827788265570051130061248338627167962139624095703419609443594682625649152638406058380814588023573305396328399051766997735345578147960737487415573043552694072480158005062055679981623221107897299897231578951867073134324406647959151500114832419346941197288681381121650792675313304818289864020849754992022763167186669460703094896597809373256094849151470089823288222316206397777434901641163168593043928318493044718298688834470494754604635173744502965924838743472567755928122407428965186073071892850713207269942687983935241515523179824467989019868210845977645732313018655527131862140761900150015842408828543163293603874636278363240047247745367536320661271239374200565012607425951014602338621659096107487783215618743742323197144273070820997681486214783936257358679181756954500744164719305297839807799565604208748906750150342979913225766753719928667660666596414767077739767260612048028591136457628336533142038802913402349104258707310414061664661888923417801788408193354385153258107315137793138501610519282017236283269887352402304157998228228446427339124904573845431709447810375470815518196966693950698348843099921248193982536588337993324646650769518456090330080411070782434773425335416144553025108351361377867037835675831624940493487780121694244164960089552782636081280530556715935869255420996680535289856329003888629279086645862250817958543302969906496492704490764550374556609339526648848536399555310468898468927761412059170623433503361026452203455379558480509432463414953854294642485763006779331952276654606454775686340193774099181563363046958698559473354455475927666713000455315318363956961573882295635945935727764891628881954569544639868826455597077854631021013262133887740862584017138048757502966450224588466305911006426988497727445741185002773651464030344057054697593039654524733139679156011205369516452139824917042374630531223896368822682962417033440878042459766919008868284519132407236347997135825394834072376958098974301815036411381127332539312908789122537020124577138003517327393403742591278174633935665677015623341261252276219724253099850172098257711298042610433401432002965632490398676584398152039850618049679020964164631668021556109709582509407356796140072474979599576587357486330496448546815861299736255565665395722713009942086366539431190876252803486204381358343066757870707798556980848643712628040868010133576231188416041727835813514116366041037157603624630170487908995662660177203853538667108207455731141333109778686694459555253456003653352641011505215865440427519783959400341904443628145908010434742830392763310751165963357123221789354932172553386613566323278951446374333622457205845514826956231889282015404678439735322134907256591482618239101798114004985530773497504691878338401967775486133361911069148241301367545366509394914696782987709450599579800107480628430027077917285489485343117756313730120939781898034844699931750326322824379230140337100890343386194497266932728838181087535339125406905669712369582346756676087053097072938425997229694522449409269071729763334191098993413451039500105082458751504063697337254770007703560957787281465021596452407094660500887797917129783936052213179244213396608602168733645990088032027328608246347579152474646540691030123345533863208597230093845012050896510624964052865828861329174779692915776407934909878106959830826295664517915846004076445442951462989295647212868770905531494823857501520933374347822183684400653445481961168317207192426359192817489640933087331847862708178515320272804718113079662202477167212497702877237426538122063779243496165100848290922818829958503286188592354560597834500712247282777650548439136207178153994411604327718052974148083744001087666613703612332294627590397377912897539657960122812251124050619156963837323083361506920206736420866934400049421642531560134481491916541981495732394142314021760170845582692497214327803642895521431215983110439987930032631703069986643555225261326653534892534564545109759660952568514491418575165670851290074553385281271879818172120284874876401455349616895789540975964052824825963927284795099919065174399607819986866118458052689467225348143817111692564424294626956249050676624825130120112285693410216982087014307263528305398567798538968403744601353843807244416561326591157647636833403561603835231486271474453768787171660484932900923045343441210810376809011173926578436458080534306430345020589179625397891977052651309210647230062661287238892304306843570740607102401607168999768727060455073083188798267152229457211048895636767539237912666387383785128356086795887224112216676351130514896169173568509481776637319844411077424366620523912650113042399532390322930958849141446156079636708469124351979020525324730077624107196227189730381172371271048179125204715929969590435106406404769181357217522368339963183445875064972518424982837681257636559470517297834163769504237161050339657805972184593462424474605837460557063747630093102342519415261444515877742423556768656902886411210211484653888814975244536344472836232915673931528877028688027353222068927710377001284620004534351911035915099344209405633739567316025758790329520723688672304967185790013942318269894487040420854336070592961744991809464103940664636834806164978980735420267077526307652314039669875960355847518201207873516276701532063077674493305065349753221856148507320077863013563393236533046223962148139158027718701027095621507540345793537183517304918809375644287987203936619431162930171815987651278490494944809968913507362797673019678851220411095916767263377835455503407568305360318088367072272157146843033378356582363449201415998676161759336911452293313151983816939755237245991472811932258889637429372532557096370655145723280208987876261360086154551314611267642876589238698134055306597269865675073779809349443311409512167361507456816930086998578329218386135593031520574178552348118885712280772456347948731051350835523945211509512603259395807578778233021188341666543611199186358505416039958749494920459010045444204432052988997443479279382968532771220348584261253306530663194481517272231456542748532675927835630532759450352602058859733237189781053938694080009367110837275409969940017579012092506825621419108172059710293037817805992966115322873583081340550172541697707665583318240207250645922750006643851472010721533125032239736508737784486596477375398258686565770473890202841149630761334346825724773610024407045940532671991058650868725711779636330016382143898767534363190462943104906968441550377212359551141938619858451402656860061578480098669050728323561535204204618431164062739033023903845634741117000253211336811314552676016553312206735400742314327249451194105064688388959491718663782833857584785965696314751750179541877747205232779729205522169994404551092612890686561666930720362397348091814038279884042668255098269858631731162416114965499307494297420691587894085700599541609820078095496090289578691603215445285218419500531431786897242609683528759035556004997145149009929907038513094446682163198990254411949544570336193250431102354758288844174071120074663227695081945083701158081935866438951779383497689955516243495094909907731150535740432102276023503210406122991039362172887366081169320249138623047400839316945134150740646003136502927785976429492568169785661307268991214478203912425850980778396091418700256212339083881147028739654924850123423404644306398854551578974302981346531084607269809151037721636866611845273690854135586668789035976809027807653494671196729261518972860591731872197866989192075465716872107099747192575344802409774149687095966988245745598995530835583425320912459980936110072050728208867006146892376323955716067736811866568683276024902368307059716867106311479509811431923359641990892476086863000974744049971024943216575446959963937317356982278014409323583144444844619959056240750636122775626183654747270083789360796808689321934727963341777877101971038370106190327345847972515609319301928381416291259130248322656297021805081743904779158364041060354244834100037582121239112742724870909061771934428530271133494269935170720796640553493848823640857596959917690386918561773990899611890977823731540650946255355078427177836470337937255647593868383023405305668462634551699321494145903733140144672922444489836821939611166789839816270152480451386745976428332491379809436530648427990336561883556982577882028766566227746602720493689832259158566392290966441636617459973789205171466682086386618797980780180638772431447738752308684044119414991478341369681963605003788609918312723162753039474860328814846769923612261468761205041659757494512699187210738639168215798415865699379795897931716640302529902417589935642419121604033720870031705254826240739662927644165969509052910725682767401349357340512305427079636611474223138183795432152755662810272338098470950896602883290116544418988861694317752560403706008811567941398081057032265797515538367198856283968930954842142120126359981968900834580198541634692063964581832182565754519028222822758874720729214734864718240125226253028083211014685122452194895941236797955318712577473126832897129617568340928159284258976707335585160364174774338697053659410294258397512758847371662538312826685798962790999172333239271667338907872834851031742211034607610176231663728301319919513857592398082220841579027196776475849982891652980987513671781074010470952362197377246210193340713095759239724783100485779428020908115107016950140263532202484165013917661484937811669390718339892827341273326430557305109911275444912409848523315190521752149336761145448246237776268424115636724478311041380913709535390045952148386232388016404584344954720531086401841934216556899507735942706919264052116438861420871617834756349446265959096688394160580270067303026303926609559633867821408404682997458887679897700938440956353286428163296943613553572820914955660471184554197794072107209329614711592445442958869777981200793371761988987549047354325392686678019019959935937921647995251749794964894200726242799510424244434167479279789871818323167852394723852633492826767676669013079497408581897027870085161751581717226660302313847147559641813143848924736488264350470009158787720262664720848912000570065898731671804409555031932431133442655031703266791184706396313394550443344278036717607231778982971061675883420540613409622461127379032468562500635557300642486348539423938081298962212035275851210646957351795943628408127594831905829619354444930475521174103873880814325800311568268761917003906031709400055620027068107773806186078732498837097500024801850593077157555210762683846548216788209515104959613720089881134071695866068982095776409109254567289348966559718916126740306981922374381311558570758330959580973139967860229001700524426760491430125653074234390825059574277836687278775537963786838833238309887038076982980388040365525863407015806763253367287040194998621417355089097586395776048916167606258496074900492912219830001109358946133329876669898160334563119007784384219890598916462198949901055732392194313118184917505666575515246405247904862237342105051542489864263822228053945375199113519541452462127139258842708347556171389189950330771985745700860141444313957541026813802461423243778593473334546911505649398653065873864921868684768244197401304807764167324880440536158405014581367199935812591090962892351687254137328858326208330507512853775869339748396656235435145767913613140862345849813763918330254794979964152656916416669190506865851994138845790429343062722941474831818589173504219736805957204199760644119384907749118439687442957743307571571807971915677057498400034005055456007969737588118238919513906572047094207449828371027144611464826358662185701882276505125845905982148645378723511397190438467701613701753702595812220427402927439832955891975319516663455355326678983354511619077297702638470837332433893470641544312741202204762640507601713076742719941210986900946927877062843617380730623124502457016586734953902475581671427894346332739731471336565308472574265027732001745605625315720170844966350153895958781039203775133835629361519211378735476326772156332144713798545599286754214358677185583175343234775196748295990701329962169097360563083390354551433654831869726086283180979039988772825192562204234228131540057383159965641028876369368233622845511402341443466114471883781605082267205316442628581105461356649830163542870238447428402907918866056214365124829163119836778334868861596870096596822688843263514983217241495998627207668133293549507015035739234597479305528592480703902401519433467281577979134417944837545511412177238827456708765469519198256664791538540684657917241010618956438923099628018347378521941401129497508464395206582761480278101581072989509374814832079614745209550851728096465908692367535148038028918256420905200224904060870641295706465336492265410600951931351840720286279012982519994102533138260426200491858881733128250846724727848854742561784529644055743104079701587009370456771121283954091182819984036920425709912186417018904505405738654603584689319884806254999964796794883210738558286025138723002619390137386796144945903644792565384578601312527199939362467990151897409423181724276976690949010753294942165012525149538993637979858692192123209594914627298660465210351752337720632767097666136908336409001511470328557024187477789726991974295002402148242580417028983384017928647903326474243322621441380319255782265463144673069132540081520692814862196076269063016591720009343305255157865589880633960905016255011672927498877478410594007327287811600786189052627721058715182976710804882364442407354051070292801011775141121793687176917338667799816570828882667049977962331857225512817751724943676963484435285991848056343485417069878010905326306409372526975100731250444851346446125732542450663995637512571585198999286709261132530545272487400570361754103379879036913138891217553873913342073338299158214800780284182583637795641087394436528634886780797742711054305207905678831674294219980136957341526634119447402273735335334065278935292518013722676615426496588563323265880523167054615543375796197262720141222997623605379005106524204829261880978387173686772443723034787009573905079318422720334728910261888516697511273777052301148110637725348283354414202987858071763223845346827786236603857641992802777479328102756953692183743252148474361107292563354761373208601882607422761692401881854934655879065303302553136565533598365524832250436530702655144616474460557369984805639485369002419570696261313939883741538063464246511867839403405368263061433334899139773992355413506095497479707055315630528203320452858457693504741511976352087218338173242930151018969663182013690909280392681029076791971871482644944582427969526452041602566628250849047009353754436019362636544683266224563071499749952733589155659625018112870012991379676461248129082535825551039188720982459335733363600123855533784675808578144986766271871183834493020735698783795973723493395399567912040075732182001456533486132585520061340438511435532533465627942614163734813506856784661189443377181142343368674247786959650896639496799070760056205970758167812959498198697668330507600437399324564496039339509267791433756685889731508902798909018869048228317267670755793369780756093569773733161164393607822135266834826062053321839197732110322029751903091873691019903802833638403723918451821509268996193059130326615137754610884170845767813866220545108907174977656680815561789151969586306471435174990088371724981751398361086625307122719922030060545470010426932136302300703749545943915663821817195604634610887487059157507658239658800632117176278209263249010833274008909526481101062632422229580473150501358438875995103885409373931605636232966197924365712751516518116741906988300336671956953875161314899529022364343124248713044393454166058557955254809538824647959295621861732798643372323944133629691546799015807279361815928876362783503516430510991998312524076426194276587698567971467312830297845427906505542814382675097717274448934170282027077929701487380615043747521900604193049471518404670956242320606193669565951804567804766912258469738721203666395283523293229840796648047343546200883882840558590808299804603679622548869880905051813450360045530921964220576400922933056128224403638120644439311249674141400533686345481202044591742968938995537974439887798366514895645483615041457670139374715667079451547814492995269009671125159484421984942956298696817092216712411436295372942687976284977961486500719898078133262910845100802540786516576020031097265708272931644650627498512796297131637147601610043275042367110489282660708952402047753551675409051654338595086885581999274078089858801872556442650040900638842696403029953243132548299037158365215577756223284394399544644688461095734274657409227403331692082108924629489436152289785796647281758437181028411692575049777473662699792073552176872460644421558552653481708319539307972997019752215310763996208446139255152866559380003196934875430735690493948681577061140528222355716857632147671802202212291090335345844003834368100570476701182932351972757748837995522718947065183686112945079768115555086402483181013149817974055530086186072406512574523522925747223020229999684677442556914822310825910573889616250910713059042742797449715135772712573200511877855306295253245569431418204441257094612231116101872484985642467902016708136822165670431243409683138759865664252787392008127288371581426693100576361102629952707108314476116802024476203582702970112884538710249495963344573131245808041233387713251831012809301079872494203194373106134160244596374953979710397971449867502398528772364488421702020617942334579758185208201213545024640933577066002217767372374101802923712518848103657868857749888521355951389778441462156637733732934617405357865601164706206660439284551415766108683801109049673379215175530541329011612694015026428184280945512005372561491545422446608032872812311725846681217590425630924935051665178216535575528038521230574491145673330773560644315417015881001290282245871929720673462020880142463906665364735988309425944125198393971438213820126444604507225049213443496740998815302341684234404066766270740386769105080017143498388581370237114102661430827756554533154300596685410076470115534570899487088463591053712193392153371452338277948174484568112882221128264470642988235505090548684801422240509098059715019879286939795434470919501818180714299128244839966694523114733922538428886242019662818345059849393535239943198240266094054019842549384811736644042221353011110517879031605885721486736570419394594487668172062948753478235343979386864044071202469129959678709713479596281644715884646666599866170575818546289345397250249933135227034743437044318672304910768919581258629371603885472027346943966460978584499632602049503677710505089141281098146636081901561643915131423035754606439120180356804729055364045165078738968591177559404992646858761446368627139590574752526354067207256179284917052623667565258965829593316790639225812865920841289225271092816506941268856896496372947948566787824456717990836913708875533383821352400971756323127589605891658612850921187405452601017523914413610219331083908442957914380440048650306464431654796441350128233030917982649707973544751862113425733307970487872486723359042096764624111562569400425616903887852084457853410809144444204173689128234298157416494161525067035677196340701679883875501605816013277392863671202994307513831092317634077523387916166001222581030585563048859336372955219359152782295046405293638192346893344297447063361648799487078902733600797766139143575615322203046008143589365330871992529436942946917812673027272702947571115853973097387475325204377935061914011578301528825926526036989466172382645387760404368566229926459535414887425624213233729195649911093580950018759065972448140957691446396969703414929220486267772475821193622857788009909196519804021385062963191497707440063640868632799583732991938507777034257088130893183124420730349577019909666575656336531110784275481064403402242965789826752004610467777347706893011736435638915335196100225604166242462914635629179007410235067874013461660337208651304893679845437793944132922179616577590620835712656167479093048498444847985862175341043653947407259318215161414190831894898393149858964052538806158934216450762444831824317824043223026315414750751055329296597109914555894700620531332932116021245447807059158036143413442441112570246577304633996114072215166382374526617572850402145900598059291479570725577576346634396195004050944694694882210334400686692028637251377290127166928774966786977570563256661736881071711028340113425252510709880406546460417523878869518886414902762679491233867547524418104673623137552002276325869056298785282073369756143032973455529629847109198704524728820702519271703658178554549013187227655728979499353106372936629264722353168035028583471984820010123843470557592706609101288446307924012153904819911215901654338674656077056950511506229684765882082041080339448075525446458823765773531613524363394239891949126769727786372500913863505911610181690763670223706351611244950397265024130185155232191982013499881456336617396728211887350965709874992697734454438617510761386563717945070977291485112256875960141536694963708349937134308670166547590797944163399602615816053097129818499980792413570879743735989367761873086522996400253604754521117725288599856647028792047873140493100229635413147718584898877150268511125616873757372620226203256077350452393985592457470029753292630902589248359775570434739990751710452449673821326731489255710892854159790908782883963984574941834454499075791944521263316777320401659874494281750629010383715611361947966986617410867045776890315780098119133055066684585891347557131278200304058504999763087832555777278502894500026393357836687289547284190930878236643516977604030796355638987605893062974317236782170544357526016651686869531788133845586927854010391743422176621648770069907636601771187424818948921428208122307676367978709654167770901832695072922190203792094947625998314288956543593676179593458217779594702355385645487847676895236000839939140227285130558998117353413825329132952655498673646839859146347556199083174670426157624891121825892447851556011642571400845677416256399531153966170120383804157428958267220316518931946020974122451710785292376769311854871118420515393006520333412068077350678797129631663816862137478273260738373523806239747390964817442172175070367523635783383513190567084378316153864988531722855147742966731174314705499831424950704797237475478137059462104251740314462594381095803927335997018231081295462296362108623455878486848851803414051389611331340930517315290864549786544777133917908872006995716885868314772281086634998535957362129426643954032191285370569118419328217604999546476045336760823728396114929886385844030206796711592931116533922089589922167437750459688190722757606685157138225398646569409447384878746118612104931668817158209000473992609622956761300949664436836797744700373571765209526569890501953444163681313078855427828735139248624322243765179514055139254725815528882204739687721799698054484589207715108924686832309534489816903163170833920416497045114183270019909484881799636827036120461051080166196973170036003612327619446950394614434815330239648467325677328223839577964193004352390906387956255262836143936391477413960368680964336257302423203309150185935742422817251937514222433622678306962658760198671098420558843096271995648953907751692519569365170414737309251400225534706170314300959926936476164453439009510230160939214282415768825787797292828553333260477321071666822554363760554592411354267995917783350679174337056960004698825774622016967081079403120908279873858435683506858664823002937590563441963069918595036741366061992765882455244375429106253908836115832912675195990174958485304645768377926720736783969774752228353311854157945711050296588891542554534953025793690432484911777799532184791764730339059423103616620077081682480516254247322632019170006153599547957493044468354520933244636282402823325267302472955226289713056725056849208914824815772966860399171665462329669049842230290057696589244551021075896660726811189865717391984781542110924487869095587904792311125310371038633327737600329464914496525928330581159507598017945936117797921747834594190943191323046142284595834033334028552624481923138973950043494331993985817451621133129059495173584707706166985588418199666354912314601084123795010702322532152196140700728473235549085806938426306995692330145141373435213002925796850700663256572586962013553096662040011130602116130237666401896500007738840872539893551978308113485063837465620619042346627988282339565697662020544835942588914490007844443289346565999002233427826067802637302933530217282264750799256403788089672621599352587618624213133454295374520465331430507401411009608072072244011530706279966949639296585437200012105851391281540979479099941529900313372721975050782482747996353701293064685444239787001300129981802931774315995131932478719758304302483697467872105287617521916061446195109199297404600725401347018708549004230216125383436252217819803872315187376929283839980208762574476047689045659961336311444215893754230678811239446441989831389989016325298582863240127065148266382720865982390715173144289358385018768480404462459768253136487030112562843288484221572302520317515140433959120782234862123036228902504871471671180198329962890444700419782278327342632690472928043365240169562871712055054829682783093022122186660068845617748419865681727808314621316785898353066295110021781754732808780218387978970893360930095479711836308857301993602176904714057678539724455494378205144914502879203507043217195361233868089835584469679510159158588861448415238034875027309500501215709725867611000120586165639137690389052140527743580627171451900200281329875804947993214577392827838194387789066337241896602536471884770656167204658821864094660028405340988691021927214359304791285912799927454965215900577435621396557264752763464450786325939000703407846974607168875307695482736533880211692565321479232324807137630051327516784674889716612698918707140184447869362642105008633308355163928346080306466836382768511173108922737191697297875955909304477694405383138336348350647804946726134238564007496912150667963906688757691261916331059058664544672110949996071563881111084861243701006621524499449838661663279344981842271546986142246912584598601411466155050595577501312942516485527864740789647989767189463584634184682489144000194435550174672389961428381507546012496677219595562070522741190905013048059917866555269355088475999698562427090292800773704047864697601975162455852687503259078967007662793054908157506725014710429453221601496717846866622739783705167754998721667691323861606302093302935356851724673135490338601940853885167789703768601954384829742160908686991355201597294792207985186126716344339540850301096706504259083472368058151431392205394411758582302639023589141310677541906045779304963621461548259589904626603820610017157509814214446589611727446366424897658254241968512959292673884547889976915136593646513822971413775168583929341186223407539805760346237074420756837786482827492329177805651530744464035844158545219300685500739422076952269413510398075652566248144317617260815337696685042091796859510843504347508743580769477985097388544495383364401400630639719813596047628200609642123709531717821084296448151790553284319037223022636392808014265696043920214721840270697154826667171259526136939449512900400270336187706521958197469856165476148996768607295297962490400484063617228427002873091205100464839050070102745173025095148148311910993979503259754555371186188893346448922919193194768634117483472654235944821094689611467780649638882357157063581623548282918223206594075590825241301044061411713750686585493339822301699476269419185704050223820379578220246893726805901566996059998373844827226527074311986021336100017799012429969058080790196526095951110676283865084114838352480307862608816348792403012534660614357459808167064486273083891894106997472627433482272479921988232181378126434282215584477495829923130614661411220184689048383608783051248225376689955419585930079610258615038305169068043009881420364516770215625013792549539068268685061122368840410328262465615651920064842643702144871252770571908604050697035672038409211760688699913811733841936031598996852619196717605095325029547813216349760362640452372174624012017492671413294242501999274668010399491007744532053883395953338599189682949388414060302583761229433059112922436131306128804417852705418148789593062284997199605890623265521470009986704828349040719149382949863054316798843978111393981942004807815467300941492798159343054793491623748995872665990415270982392235452363490391550231900303056199727826716162885489936314142049551834921556790779703317551164910304423828881648235886576557900105258787657354940240208318664646900089611040107441591855501027755598722885648165727642119767967814083448913060710256639717729809492418875497531949926994987404989209865342193632809250698912874395691998436933583258926490499311787897378535650731560247877664523065671279051745576846891147433407235370521688713644868246162484923190948660406788892505026682001134372795210374639684563282907564813552770536835170699430037182767052465027334516106981539081227447347478435058637215022976792554241566439611577373352575260819725614454854755476204554240269750111740537230697673829063723336005984835496128934625431097882855500075226350706560632987942235305682938880531026680197237133046322432598217550334861170555052707080287532726415231500951690213398421696564819077466330384178398042039990484157714267166634383557426186489694255549443325454891189687514058521256400139918200783083998656708165105363777548111567417780132263872370849517598626212155840768345665234155951677305701401400140264633059314969790480541956414431548858762554880121131116227542439221975849615552585419635054462532818820302122762404249339039060237441236297682143965445142413187009076909252530159579394051880036863863250546361692129098694223014571249855169872764381880179468000505298493397458650257086322401419334003420246551617567686921159307411804467617625441658520375746577414617175207612016066135095881031509303787113572590528256164803624716329668456994293825209122367879583927876574542824509738609730976676886039143948405042075762440787216840167964585272549902807182926153512925967947902405409518178107416190573268160747358571867537437209751434497283983506521684462530210092561566580230224320163623055601800274961887493891539369231227778024788935590700801549336756519058247715896885392059964969958168682263528900357225961655691216138009525054619909418862104681299236635774212897260123882113378364286832902578481348576741433644335361253968238172149656324945975806068176716108547598446241875062224792965562280461052958095247007695883405753159223769174968426930613500964318972135617543916122032385854180885717071334904019699716823952932723134280110693492824455458602357436895735803378482135537589938654822248747281941584393683483244082978654154057461409380734131414536921455952449539513671368603190537642416964790380829313745370524658554292566375630139747162315091009148758966332286351104611838953896133157897947165229102179133364298046146011350413745043157739861786862968157636825667095000354758246359006415425587776565887919936558775848430301949660006921706252007513556980147497772067106578687106674145712833092321517094198761222685489659734083624540875147132640913758190100950577022875255016807282529570158438693332882241979460132964826629745010578253965668906537350246942695438137482514398349499294953516899819742225471420862564457635376522601478226360670667599108870996262023031951914168125969468012137357358060273592484183299781293812096074028235813319484994624806604682485773116701484624001495153880409705640766690566376090858212626213276489826957517585446364151327113027300403028522070197444229755709090019461822434771653479092454323359889746097253727400616869468187141759700681147739336948456476928211607713795987476949580079769713573983474655722062937146485605460183046276876109845852630184796726798009284274338919913018779245236502415576778126914106647983421189015121269922997783759173627640803470515420765284307764748422879478121576677689564778702319294840241504506458322986665715201526996213301673377004492254980494540527387256225057283145397714096255477589967414913761270571611171109362063896173860008787103908043733107026945537184388534657175482074259518141871903362235439436408064195790120204183065781487068096979754910652850298416441080150091937172248426062462032286889806680707812918572149516382047276405059530229350256412100859681311120500189539056881682669974563812080560557364521311046932614174123059842130181040274613422833345484134027924171845754044881256130284483792123971888726949306092277596701183935533320099058850003084617956941153946494556515180099574391634317800202963220201956798451822837018362179220329199113976445024949037574794999576218487457491712444174168751147858260071017844237578675122692486003572823024597973989642028796145118627119119189359396565043917366706925611170605327344000053754398142223666296789576588231593819450509311318053132892127079719004606217842018510691317400925934632519652980885103192617434831702717375360584970141941416763731391021615569549109584572956618225602946982240100963675072960964348249442901914793805059809043014356996336431648420755833246883733630228341818160154975299238155510850068214501766564756600791360011630317836062569668070057816106896384534471474486266990108925938384569526307032551333477728132184113694537009395971523333368327877535967586295491847354215605175663584043446656016379649276868574802986371245793609710514005016288716234186553244428820410188689719917199493984720539963986621717359778226591776378223525510335300144242393983332437644000316746196608809448812677034888728555671862319658553371655037617028950222353661740112589985819846663698879011151373585766131156438500630675316534167422353670165998467764341345270903269786456811627275904958346835114956706362532111189433218793344388088179998480648050750743111949647147394125892733825256111364639488171275483758734528740263979202681724580094036282338100022502280348207296431642638933898158081374031013006843460094650326316317849740799625994288023353966706460771308497303407894575501710689079826495953453391905585471064489224064736581230383670464126844448668591046635658539376616619468083708021555760805553335903528111668134412507417164205884469839308017221587471051906673652353388692994703996848644709174572690916675008382864927074815641585495739999805174822129612006907370902900147649479034952679570125389313484534476047621578341400470671537509038718297312486447953254968412090113055257310421294191558382624335163008821046514608775332315031202263593999663607076839753406480914503113473862787933131244737352259943855591604277700387182636391498715461769285690486371535416957828305514701257173932481346592385008026883344690494170341830840343332445090292657201980372349492468100472605916762180978939585201228384575862666239295124685020009912823241025739375501120738972047524266750364422619882163032025719606509510483257229817874254116004330809196666579752916658070363422416802069239841074982345484600353618068236954635997744326499704626174478010861599123507582240720794704742643583800210219750842490400172437841567396992689751232356061464670708176072689373743233763839866143507087598718355882727323116161738960758447207447636719056693553552465419404239888796514823124482558648140556068169020350202415639632134601976012294952575416204960128296793878014911258117980819081383562911052884663759262533085859812550082120300857740837756446527548703351353081381848795814160376593996618275954336377494663409735528827988004554731855108503801748765986435473416447441541340806149802019880026414130954910611815499608935738637245050180993571105933721576517412342404459878763920324057867365500224833933432040605887708106000834810730934576212494605897095375186515838004947032754634045404102340231098653082501714815214328729247622077386193310991341515859429409878716366045954552923391690767245271202769774747008527171603392023983763342698898081338385870841126302001994575292735142940116389187657190046186257938273914617282634160554803328827419588028700105150081878670760674170547426872825159528200151903387926810441081296952881539642187740018391390876471240081038882122056393310883332255837517836065890643487048313767957361339055946513264002659609117745169029192881386708759837207364822709980754610703495315451541470254003671618128978117499962349334396301383901860690757989095027999586005473073135310358714560746845196915066860830759477700684539146945212750071939011564812610167948672786366805669143590142688707483810130478287255230319038346155649367204302162313530919462821954179653908399005235761409708945269607271475706722588604229358499603249288874865825163684970902805666198041644584418631883395800663353129237671853571018095144774346300146019682866841624355601592764345211718848959901640261783528134438265845702243480189995001782448919290707873035371505124166251315293863247408814372714730123576178302266381338881399509437666710310337953997039185828291370043453533754306619203263947446151045055021866313699557701593597234084477585605514531792329185253726068764958403184836914619598619714175985240719272246844712382745409457243592609200614207255971367183735477528297913408080504247730322571101612555336324784270586173167091935023040904366342194611271688307831349154205563196280611484613367491431220193757446797743719389075032282213170830329678442310829968585530641236058519556548979352204275417121389152131779961641256609733912697183928922174228019643119516890863705967252127673837377192150339816931914460825088753218515706274382591101932716073786862162025066126771461656596995521939529281209969352539315044280070422359931279522616240465656410197574123337430409048557776753708708667369831454756866420813954168672252141208132966376280148145673248238310345035454240804899848834253613635499015282153665716549053848707718958195201393467660109985316047522483747727344856770329995327412168232794786881414830995822610199648088622107906176958681426775051569270469304467717264818150435328300352098368102327077831523198054201432723234400576554406507309991610896393139115192396424522056794177518685427423298942080335158450245896508200454733479870914755231987292379692138246069794594965705107613415532058278971066641278192128024654562851564012895127283971496874476746006866910299242186627094743267742642568300697414602070867492810175003756831100547364839479260564698984926481142808745438065577768507032294874321158896990510190989212841331397413003457761898909584597988116727611804061037469639508037904539448356247335285272739281631728859863397859527177107048606720071546755774248122344156129712103923927756188694720748333922659165646200190251153360568884446926301083689270420540366761116885248974886430985188304436822952284968800218461415126973940861637576846419479130109032628469562724979866416500347935926509567492106000011255571252175570548215344787840688534156510453116817166089598080575104953310022508142170004346220994926315859121016287132536616588004626866355408974940560088031929714841492573681251207055479879717865981786406588242426878483118663186608924319400493963557964428888889089476087790060604629063786463301912358239632076833205346623262675010648080482533665042578196147824655131000858663408937865697354799661431065629391172963081229388205615357389568555406217279991113712643021318521285863012402553461665619382659565605321544616450848981802547387858412360995957853845405465702570915954001186434126598192263094036127730823004299417811157586224516424447129912771878173217926150679777023080188826979804809937809844037498052515263605242905251492444181046211808624893925487608881853545643878467674461030274279891922793033827942774807049964162581548095028647580943605158156140323519607660447891445173899531824895156019374400362827611884828855004020689151496449700600454552897796901234546227764826605977238909516580447502766641852111197578657207276939396110222055453794608783963984081188404689464933242856645142885623591402959952250700405808880296599344149464373533323811691122323003848518329320578136040397460426590134756710241242739778410624652924048660551832076192752472822931941209259474784801877386594627839737781874846151210155223963575003794664483006008752653798434554443136588952939056869234504692009938670758442651305261921286179333127988955998552187913153202996565282046125118716731777852842300106331612179562058898754918566542127404805687810438738087403988954131061276500554577391233251035925916458575603191767039519242098425236400030833099047252062109442780332939680530478403157827179692038781398627895983475675205828664840526467882291995289340572140197386033405151904065216327151017988945266300279940389995200138662857782635271850246365468760639541393260642481793592696278244753148494341188414021182401945686195607050507205717127326661702148400267442831785198115044293627012032917395107430067693116967488303554087523139240004045634471685149567780394311033949342683196131633922066086068483658027857086453796237232815485877790263830616265488880470196610956045877396562461857780648126811356434401107234715590276005483078406868088151789251864602185466377524805125266272307865397939797020869019217453417026377595071334255289478687295617080964146140526618406628220708602403706197166483459829885421014506584622625544678724844660000195364236243629620048526367794719060341493382249631977285411571354499229234587577821898498490048203387488831882233534795132409095271598375403813171337949661316461390990254837503235835561875698072723176098808329104988506128441046367362883080557966231034081075211367303833731874758777383478509783237137057336125235256374516431234189578141071481515522242238662174345115652852475202042607533200207505696296481457358331629461923086217468806781179829141898242198084071091029087268327681539631556922106976815928968600971328240778155859614849879293110981839710932099677751840222257629524713246399503677337713717710611956647075388214595505457329632301513932405312635947470763246788636120783541038467810186948019648780917319597705551730650042851204213791378554270177069776547395048633630253724345473170559490004492059279763668228524753406110744457633222615455479431151178987260665373620128058891082638991813092627946945258259954399762286559389470172560399563867889608269969675192029037518481053091360208504933357588502976396523578606232610531716953946214039739011328484471297562328501405631356212009759895214925171521655953613414946646836022675236066906950837451601227574726389944043863406668033371422290775173733293958715478382075674601012533357718429818751691984797802722516567725266511821140266303727400621136810030100468138555325440316704816904157323700701195076787881832859912674148959465232252802551281079157840592075703585487718401349929163070661803793551358601801398599484204522854070744681001116989685245414232689031906167117730652262277938419282511901031145415034772550099873824863727714050138245518875852236187367018886838586649052862965448416902846923762536996709354368868125162380654783383692427811545363993333186086455254600030120856004516044554827478685646859673555580554311482893105378145728585373098267239308472574782498638900845917349560914200866931528527104569143771517520862951143711291105067893951672746392988642955876398285433586399321487962291005968984871948559188873040486860091844383118971450138770771350276113892436642666074070418607944158284741335336945107758788509008215510951345243378812125777324978808551746139354506978291320533836606956979468339922903490170774153294998298168826074748268332766963364693967230708662914505760574195401847480074043066918108543206127065093001676927978799020728964220468050148512944238413596681741375434654773419551277655677102653894355871438433594060478217114660628251836294317901883503107443892912209510696651148071906767329229748309054662519820229283021569619944696238691398673680624726116950584283782336338761068667964471166279753713295715844513348987307955860586676403077165429283251919742631379172836785468617066888246958587638846444855609305770797562367164593138481992847872430496021407198546248059957727827214146261025439190292014478684209773466020946846967003761053301318970936554930210689565075913626646711845569228022160520143415865836689284924924252068812548988357580744615973958198717875056619459170610373648766159310961041174336469857444585043743696600042946581296948715976831248809679314573531667865867642511957509671576213858540736567624537435140503724130858962922244170087033433722708957686405360452408418827159820801955943253704539553324486955239541779779891927738977860076941022930398627364080275375521879703322690349272377726899577075372082301302971609932681875633039593164710270694858684742881763523197212120044742483400623407556247611736392680909374063461328762840782320483157090079873052808155997032167267595827327274992215640317618805176914487268716142692736926048743353095682993341513060153863178438874220784383862258058679870983228066866485932411609025825230236442333373514474733234787635290975798560072658079570921416516359001309406080263303967169943756250546308359239655671291667166022930855312299071253557147227746127337066007763641986024034265309083659021581738449200080195761253136207913951255585428246646488560353022047134475694800637500383273403499012229787717947526543013104947574433737115028876654990388913621804056759183340169525981173486377916848057596512046589039929583761269918036183065963032702083285628074940148944293086714320794012295290297004571676839833974035079028745283158507453813391233821131214367139598855994308769276976517312854881782140625375719699542398723809301482525842016971017446793447463030997029046266169783541338805760849585540776355614054500516118903943711882802062577881110566784526252253596941167398021120204256170606137979471103849739179263434599953861589580091098255049568867201777773257905312508699641885532617001410348044527060303978848622595159147942232295988172060447391854104072397911115955370060425059172039892785252674598285191809662324219105499351418127794255802558878033478145890494312819901319957201024572489524957805317324313269858238521559367762038634527156002449098121224447440941932294900663810571904539719169042999216507954377614977984668548973518092942896689034597126927223536517408788821835189397713609413882397399854092993391758595399308639192878690064190913806832171117230637797627419764410522678263279151444226008606922980110707761257619243937544802698642582812564125635644533462366269231900281209975710841091332270127959135721891559168323929217093234404768606817797875501103339248607689874602821505050585792247305486438273692436547594636190142618381362949366680161071739165674424686396095637978630603239466810604283743593293012243983596391532608811921038818529181303523105110097482541844428512709464917255777168914064765637314289348259223449522957030530064892811919547469455953001194652971356248319690364348134483006733378782754800861124093201391334347920456197905138277539426277781298570286115953176155321627299173461382075047638351956282949414633851224858840388490510193243960665156866430747595556308678166800606285394543882278671702058136513803169582017784518692544117896123271333518517587963373377944428162865407292845970284270995877408941035244361046039605704567087048018279043170747060572245329916540531474203105210199530199938826838396227670186090416243902496684456288537216612830263114930712426996852706797151546436116052634363350961173734145359626166285980673923664511118275974172947888582635191802869604909217037453067105866848746337901137485396236533852292487176979338574571893655712437835455629061291413309586581881660601494591059995324590965071888552249487313161571512391044922985244852628856857298054509030737206791649228905985382740552028256979889461913916843376726509785348047660056063826604462627241055673768053440078744090026739360314774997687981154910734998979361657844038797594085945230237494094657926076700175629447084849901692818795676722285110260448778449261443766784952622015866054747173544220956980215151018843796321974170877131650708567311169447595131952629501906246474837880893237660837947464366202020949708628304407028720967637966933065353801979917582750003818456233335494411331166389648706686015951507803406176001246500445936220637419415464310028250112667288688154708931810247775580666094295280994837427602833818329987677289700241353982258436628801413609383615635405450997435189360870878983690979788557828101748540298998514835992768193886728337152769467793014963721381727879314213455526628995737970223957143908350423696278987099585576070859070985695281089515464114052831627223254528059039430017735103004443158106826290428732312012681855576199749866304861661829639922052281392961069572306365496890450318110447436666443506764788190524054317722667234464313424991814695711012814435326688281845310258663593537084510712349566189272408254143532429253519266561174175560006044340940469500252944913432197083425698995660112163606511637133273883820399065595358192219346834683353815565915985977711020412073840083795093446402435326565515112714110626409116282609989068225636244580486781017716003584392272469833390735560939031903513571901271035481075949406405567130306758494819240511119221137789473833106771568329176210955012570421948396929184079180341964146110747658434581667171163321881985768083452006457145150047187947725480761081898104299440555415656352849011404593016135025315803591523491138453446982341705985038086791085533605949378155143422422414762270585291054833715621069977054310756978423472766817251236587070088050256194744527083400678513010016112960481584351064014312686401076911707262021234889522587537823735574549869238656291436845434573332906334622590911770989688950475975873221900818785755137453498691385737542036859860510284437975368833548402267104068041021925621043536960195072241325928605165692667489993771652041988368435524607076695428736020299401752108655930245587096562234947931542921915128179345275894654229311908422854319610640757068263794837021595884297063452838500476233661905155089293404583659706702435028400513169337687593266534772440742112523564721458613042751326952558239085377008198734929481793771593583864912539396902402763163704546990763351127961337280463905286236689780981251572817406891645856822985587410750208386388448893860985420189199271523721614754804623108195446089445853143908911460677836666726600399444415708757110419557051941379112743794983609921919842140044612249356151208923434057404477911660995128108690009845431338661635885541277300472874495839541613653040928930096564794537892554467671076763587477610563855904003316967623767243458789012097408751797037285622031579959837237491832088348914923864007457000534488557938446514982890764979603322240824415144480080198137896536647289062717156327824787862070466912029069943368326693748738694353309947308956883357402388050737854427692879924510486558630793540696583410266463743564311773847341549770611457402049711858606704190222241127979760404129720071239966247717483390366500482678512813607919301909852430120672576497620422179270034057960727794065444652289079440577188368420617319197914439953695201358442162589691066377195374681282093337192557827973553170868965589680892272904594632858146606396490135671452242708672841716573314696087326768138224400020558319195846849161720989681665482148635801289837538140209476350841756859109181896196775516724699489199589719883132621729757481257021198117068338422312464820919765735316737920781037949009719641980958277426679962274224176100957755618867917171763441363916536061671725053192609359891067682301264754480192913059275652052407175247892567257798813686319893358010162936725525170519489510515378451364312524881970548356889338820641934726993478941672135382182291170294386613098017062840995137297404210682353225331613349559590728882755512877755725088348283256628552809570965567528301719268899250006930262816238129081762562611122342150172252952542300195588552390264578496688418174979057165688012953018808332247226975546372023099765567224275419591590884336616803752756970189781233529024318733973057235079202376787328289043908241529115051066686215915764263583216148655345038789335879570950830411187748399837955728026131723893828800390783497997908733380609441841235173121093119438142041950051283257951627006176183525370825745114233659344622544061839036432345902548922537127280876110941157144202098645930548547656304938129377712294875549384340994563811294846397130259843132294606071570617107690087925725919298100583406838413907592484922746780086607690169597457272676461754590060665276881537134041104205982288514457139852498613756844460707472711738106232465430097436038133371048372832388628927967295618824958233536510774033869252565950016578535971770156007623251741154742972705091000015083112368469120932863285086812415511542784231994915264809312945584710345517601241785826350149464679689561629144490687908380208440652002390436021293581655194997178613480294985965903788745574316772942306214785607209120317979519246045285334646133025347283148440290022993707413310686314607902366000067002868335481370902270942797643958693637090702257660173002581891525448442703895810290078904004580502847264279532827842296417134252672382172653984749516330045221520885024385401033200872269412920015889088465165647497488074813431256872498584131525412823326984633906641887228670015545365899230228620319896545281399802695364767659097913461361292729923523642972238089452849618046612504305571083833202095544327078441961265696953908974640015952094074292617567899131604070689714162940595520741592031551841256578008547605575123658961821515801733693633548100695360310214953207006962077763081991541953835571180671998703206940837164704739999901143357407064675213494309853691728169741622929991707493295752546025972273457016196458360998724089661877805948164617803073984874918437952470765477060102535693859392332972749140665361231018865184817734254356490562211167514692865516328183904570381898371088706229608273699201380705014577344883500324855286580062695532403133561922436245036593598846365962939301646713692675179454196850102896799343478679936928106638448789547266951926701143705371357733251421907731268911848754357371289714428702671925937553721460172108045785167687937897594368286644451729805918525364625087676855270913758612561278981979179420039090328712993292944256533021502234571641890924004407945523718242202208704469771107179340961220869012896385478332319100067542462703744928499332883694302609369779155516402948506863704633457555484651077665650885299727389918568212652536571965997142832573036439774261730449930895152227353999273872062831780207123374263375124276367772319615048350024993487640850001029476050407016521261545560240538767672810552498759848694454971225661090558130136908891078191467493165458194386770892411009132314579772863554517001903587607965850747785412413785734025831486159930106482915210202299427272608452838743708016602032415340461185407307865988583141813866409573440564270653428330553838492057768634255647913253341787766260525510062500886050409042326801168046216662045364227161747481915985850578947146960848496775632275992211245780553997743735108731494131354108220192131857636598842972731345111407470991129266389340456579742664389715593807207694234958654833287803341922138162033522090390049249452202160314959855548091081090774104130448285292548709765066982843718250235478452787691204818700754394699455891061927648056141933268886387437281097851512693161567198952967508295321859238749100863039457975389670235584683025293767420431091386450021773367148036108090316636446600812149256853417746906592249640699683042751494619656396475180530625659268353176018255593637041150253869781676764267656128118891656392886245778946805731197651141658105392932014888314122749893172701461173165205476271717529862615203771380511756914365705581325563216100677676492393458432774233602830714263051488914246308443971070930421378372989108961090664737535887373761245143062822276866132338133613281535488394982451700396076661437269530499885804874434196501112188582448758157063632651496100842533321896227469578152660539851290183362587604019873912240081493213463290322940789677443976337688999162470099831455100841020117287490017645805412019538933339411550459170947116949762917398778535087182899601175404919357316417895845272659489555996707546884329907649745257215157299338352836267880997079673428686198749014032070477559931764118885652943553939905032063803595381496583427355847169199318736932021413510534129290723105211981929192752325578607230264821844002592530783607035426764370412843309306814116167720454182231839736598209046253141039901648860106764475509689476403774362414120174659887991154559185329024456750104245024014355060811294179725869386478687504433435058215226726915223430445851607473850420417607047711332779148093217223512421658641394510957913500765263077015795729547354989220957990692627656035409405526887514205538172624104215707455058164364592611941583720457646273975684249403166912769737416721535392919877437493514334887680085544134919510219935112892403667471423817196839629471624787470320356861498382206263980240824933562625215001358402010879654433940309058811193497470359955625531357700421397233981492542269318955564031119987932226384853610542319767214276304534163240953238113161429800345913353203533693328708529343784288371709016472046576580311655950161495572753955276544183269105410979104970044655495898436676863812437127217670789585806971885181680686079660418676102192373530957064752643079194756323393747205077042557613571787131178622718463044514744993101783402187387596641756687195638685792209116725191553247840251089186496208569627144260335453893484022916199891362006774273588100007900287685326197679102737961323883856184389986441781431310848997623486590411429705391908133934191173338517698544536390315287000565304933401336920159805673744807427788241208920197367846968743591193673643295811497164999504267671724537520902082193357572538060418742530115683287866708751723159369106863978969835857887529347652386697186054445833887886784493428429063130211019495454059342693088722775220014639626998455484252914261128432144179447672728324708391391518559833532741680769077518017469341478025727683911577546330055062335557934504600510614825082645387326958310455330303954892475862445820456263581317464089285183742442652546140151458094115401501778053562342570958539727419325809601782689788453094864693977337670593337751553094074667826813230724807585648723287754517360689545222492634924528099837174595212625629173367715778904602580941726351810153812372377476134055247429233199682176526700904160855015055739686042831583001828107339495807593242621398799041860821079893718984096815560458969768209940061396944012472990691464165127745411235512944846372681652945222930280576482629165432004162081738452462699767058847040865921988699183046089358393082321945543321541579657919944271320393661571476723045924219062487936184394183720848500564823141700861765676973648300039451218762976459279005482721169685734420562857534004368589158979070288089466882347553234328820130651283865710664759071819283246904734114312072802456626946576701991319978656494207570964484151163480235377408800292244444592928359019577038685822872722723122524596681124019379420940456196706824098140675249630075115211343368136309323634049594180305300701184525066897377908737309384582805902213869684763016459436497611076043160857081488663603073028902977214712036393154834727271602138157890111947861833951231672759140873046515480819409774328641138459420195281103237213388121075180430712000273609282238511877133567874452788123285673916311670673096637808870533787869307199563277675530708023408149425521180776221435615266672378184655128746355992274201614082967841481486017924289406865024552364686219270603211166392199092574110051834201611499259722905471965367807278213855181165396888336515741501697403904155550577740852542777867140283736800131422717311570849353419659084180333855004091204937205795772566318857583284772057554403979728644411210000312198589730329812455907533458672245911672283938643808500995301162357948426268025488545201018089435070554801979665686032507167427427888912942057395533593095918933437558145776586346249348643618237103910703210285266047137284704048873163255536300667849512094160743368117722967233246039994682145100920031540207268904125656267208595457898397224654666037058251798269803172557447768553255885947206340663959569973860038473001281355150856117682646779161808431230650576273034533454002144601409649855028463366200837156103373520801047878604417548118777111478300226846318579714506296689655633000505239920598901876182856083090344241600856026651465043051413460078489314820745042212016979572262828031337752545239366579471404358797956604016222198238912358329710954960234359022375940367121480459573673078662633408485877635860523807013809082383824354076630719674032321652557013728662121924445785544238336932876638130064817240563645931599224458630310878448475661576005862341233674874730989524067790843270678387705499789733791725892032945140381669635042777085385784304327025660204664457547695314135001557475294268226518279102137806040757260563680817841335739705031741836406789863636456610709452074908549510923086973992867768614205610439582182199415176110744010276356540604391987938887070875281608176206366959478936525805596563267280527787543590087368612481280045882095030643679844296185093837074798475346185573674299894445104533137370918880318738894748431166466880792404172072440833118691229409701585247884966704266950785417487356796725191974468325090346783784565469799605068925840710371808445914676739059303910629913185170411088064047151194533484119367731327698325223840584604065026178430525972181318760936947331659982691051585247054345985766972753760084774904097607261111411367742843115650675653559595241994202051536157203453650058436819510427634557137998326976470927519926023369309095816416559464257642424974269960311081404344874808255444645889870364910231475928685748663262661553147658263093395854007040807962972584985156643147380208228852547922677768520353280340802868514412312752317166809463874784010880262065441365027839163341830107906887573798226666176034933616793892688300610651315953106803563035738960650131263108860212239770273175559256221348753512884107503054667036827893578258131689305285029833863300390486715451176477590477134461338145782197079244865340475810201499182237502732805708544605268193190880211588395346875049932268338626761669103315158698297109594661957691058836909308525894767732238340532168087588097471771800875685161130403777455541597398089226800448018544027683265998120003004171643248349022942799398457799155548410802477576407684006343583991533582964333623772096906119713148245632299700136921621855963097088937254648984246869928284464177220341863473186460417308554869833400861917584812783790939551567390900528242570649992514052464531643175402268368189138911404915115962588382951440137585177352362626441896558600601361481182428081703646714172401633455979644761296199105624573889652193234701588847708128978175039362341861290940073889005609060174348205357338170747359173709565539542719317890267165596408014968399185578946928238471074591014815676821844418661144730745613976306519255124153159470516517953335351982167054041666498073206350333154384321271180144814224370526947459354214854353962959965379996325099778637523054866930709716781741259636736345236664970712346889360838903003795822307359776539524365503137960631472687573964787303497529743430844421637348504188622902307032796862858027594073071522836590754341651868209917874924617774498228321662376204019185015287578198810256235288563148368385073153966018779051482995673114274065984321348338709041338337374951039581467665176147345227440687712268362135781081676827043215050659896338800925903171884374609686957445879542046027311988727616129516809633948264687012502434117851627519497580904316253269981245532739140186168976262243032644898007563506849694444046341024345856345769281226309462573320380083367416529793194754311953291555390502976026642233916448029264362176065240987871270423986452853071933815595198054059494490117287330144447147391675236170808638020827291362988868387087212650898333991548934108797462733117627943726953116420123481806748096020660412262748526466515052820756213451588067859801673146533038071503630082196428792725282066898693300081868154137557760831390049808471936691138885568182635805249089807504776998097706052534610554930581205683588395692025470462883265380386631113708208729295418603394485855602676079402585102933558313121942263550445581350293667402216879454086910368275266734805706873393166631925340922451968157312618976329587926898763829695621421618480495919680840141245887843696392583027709848925450867898818048951868094279591665710534443477315626978404603357885790294566936615250686138904605598353169818235169361921839416123816266465066469256823728275977785312593219997578263101507322479196233979198272585252350944070816737439843119303785975561799190262262571091038772013831554482375259803572417418822278887926331235407898807683130805105991672328894077968635093357761249580621564534965498303315028694401996364199840408468832859866838832718084040746624735815367385708468840372306170263329174974502458011668348913739297181179471068646712579825204563304255149704270130630759771980580014320889333453986015465303778796308073758083627565104484539343173542829521163221691259460333948296474257368609973600512314703410099103451886146347912491652158635250612027246632561942599739456453398317507764523273643820462243904867407039033258679155003223195971393230472378277847562481055843885981629890339127399638766420035908036175261528580372428113195412617944345554403082913694325370314100652774027912823683682949958987632278236725342587824879332066670880180589566129505527914037513077040283685267811897952491024991820576513082499294971408548642458734878156870022733319504307197636875876309440124048018397052594039280684979814441552623900228991459076286296136539022005484184483984295110264013087653190191829030957013582705997530859173858065481744745639811751773445955301367887996546796670110848058373767774396332991354602366235314442134677421229609017900822309935851198215143871702972782761812436981261410297558956360862474868861760513743170308313810079180601433155873789033430268300052329735642726467338266986640762318977930087345685696638794355347169489324680844110271152071159635217591718949866411550354908763752526403724737915308333136728906876150016816643272609971025761620271083107930120270013671070568485908574059954684371745551386558609799484537455482804453614908272431187801240667455757289938592368196337278432632272456541556850560414732786960967721375337214561967163854521299066875179865827821959345019453067198967439299682172349737617124629578442619354699630110913737723453292076547747366315402368753152303472889066046332732398425516090865019778756975714652585418577850743235766537860061711206007454350592363958700237294108398495281780991797617063375703113869362660376275900035602374021106603232162632932208949425075295509015408524620377586514803806513814508551606593704580258411267099275325942126336667285410621188368896609938398929520792410990274877842818925711181628098540793794718455232099189091009225954911838645398701651241704525057679930286273476690423288080747525768770473209449985004799869485520909863087391957401948408438974942795131593349353160681867565923326933915145684132524643985403644664465095285715513005090952039530181695663328803957147102139832633377991225206101614124481019322496791240525765281474678077186208662750091373914995080187463221385336997585893577853010633887416042041948603454865875144038913927658083007345680450834194136548345324215617351530065087443877310578552172953296838903437916909314894122082054844046146015054616687370718573736937605424032340188821910057507817047131926582993136450255755490528168933943337930608774620947806757059734267088787934359598952628072010876138290853195535818403529291716880927011259574242099157419611952916551971074067977520310173495181004497711573277965907776147743136259669721270817645200251337442715504874235153103617905442590657036789196840557113930709136031386688402415094729861229700115773320741321208855862310107601718665128860529246601876039905025613733253913170005347721124113143059889644871265250763631513691644999741824348500889627164948958081315103695495852531988269781515756901248303367334266576079675704566221054591451658680377416971761656388271284349275285076673639570462459029047484416501430639196961299515307047621540591730200028626300269441067149008362024188109050914091622310236447984666297305085487408777487822307420904364692561307099698751484211635279061143615708611131640798150961745599899570938837616038155577061570918819246471316747659999975255874368335320047594005162965549708591358299332229181081085263255669605081029072650632951222497834571317591971447422776444665615027648677103308338422171463440163936237091970261943224696596853863213740383119313075593441079590476378936007933465616777438691791445655322073064115827785437338663753551761736420380514701092025340678629593502239336119424143806904335188053620157855485663688928835923053204028679236098484550579531696748252373255469115233678545173490718573211242131922494661433519449701558017589696194931682249594852093734168141041250328012111892430014954044272321465155386268051687405943164375402306676238344879735396648547003214281594661310493608676399867943917615311789960671744595859570453283786422089636750847303581281346761009369201219994384467758408175187685339996757556601965193382712458829896156535339679937339859385954062732317201218134443082451931811405127862914376570441017519956947976306864763113583982382530558745931492052340622441124852515839575247208506587731167695316514886805137707155351545919646291045143082473598823422806542229364642002156210619890913925802997566622687625810423008089764230376812164623336461353264755754715066641896667867744983455516017667797279913584744208819845629241894397654515969636437267557071995780465616034527721831301994555168644333170514484021641162380991248314647662975787610055396940999698285795551329645215193361260844400209913440932990329972980035204932115152331624263302219179943358310128590933404863714964913922585883736364098221606553602884657895775438014717816334000559694234269031480856433263416443476485526612414683534113752729267671410857166548315360688217746658987235929028751770286329539692744022426530990695154743276720049528909267080358671619443089167641677944049673149547258583952742862422832294418585909561521450085912289530612238616445406138996418659259915923568715630364920156731637823418490858196347034009160614714110122258855660537682859551384707774450883467266622850004080213363593534926785389495996910385778389391782283192906167501746756174671213322646600175501622994444315891228642538798683647755610492804951046749351253624606628901647332822236688005195354927742622100886886675833694798586995713979460763270512252008098122897614992635726459559745501241634481505801454647980427559678138285689610252864146606447058253989223083741444922161085813424849610957392640079466136579495343471154645765028417830841342613779485974340146128716375710902645125258687214597443155105443890578850498280121993942125977025548586269890503559005082827469973135088286714958304736214164060913462580904941187590261241574712103973787067561381913406667969415058627944748433836609070285151918074532381486507801995002657361987771459751103847934837035263070813142812031555049874253291815270373305620343576386251982967639537900130966383665853858615283788534782074665694796329819567231630481462704377498693099888946042746513163261329616436452770516425453497922494173993426773765739728280964473745381008578762657759153850339670470684208075214800625979245318869104615122906575969129759815668641005863450166647025565198510120328645550637943626155174933988220947343382166408423164916766201823040995849433814217374237480860617861014737494155587242562233542262382311759731880262146562730473895652713498365611326030174566407556719857845868100231449357186179257775706148532834634109941574185953855181425975986538460814147769124125471087375807343654535272484373526167099101862038263286713746093479383188049922061173973030967808445061448685951331276195935325645007249343366189363674288389539936410242312756641319852870692283149683593626368382118570922401839363124605124168263415080410858220299758337926730957111403151955770451967525012270946281715555463511933746257190823606299168402753376260018075707043071582909287481239012504687761677227280233569193927131300291606873339881638479814061414775648654852119503386888023074514140270720386680535918522340347993618019044961034096607510309026608633917804242811133248243482120541403348028805690184384781212565808490860721070940929234555719147888143496366029359332857635446844416603677632110544620434508100165548883003230268011648191147017071870240375504398725278199800796880158493124503540874286105227622930583628876162484273422099600136227119402341035685434438138012139699226543556869942760058485768928714489872140714123283302556860766881750709168733413309097146453414286130763457343884148700085944889385714610506443968665703916279140926181646756452866405304611597007372515642439223962319300801942430784622668483629003235085738182787916174184270594554056418179890975374263238501389104006730049817923719004131934473911104633838202034952343239455935360213416270760134021382954675843890448910350937536280464270647204425398997635129428930916631073330448987884706312206440630706832019509532217779563185206351551911665755951968536524731543998011395566169775644389620917850801416469197035076041395956512035775345407609140963415977017363187767942101558820338574647598673610567428524076088451045086291501455272748670895446321237205861843268011566182679746258611451595372338253730990183428997174366558732200055144208525846295530087972052992880756536084782858215304024481930921716807833245924676940443870961428620870579549339106186857942125693321815771120034393790668440781277754963176370565274068096729082443492388882249485114984621763176940006980235693693275865803823108700612000289861399336390166219347538699262099372828335992591253803384231418642761071679714086254537035706882624205032428550151229075023890313725004386874517836640416776261595526992712772820727465411828860929739704182178775307973483342269084507033494791009544926516299389881706255642190754490069170362413938718871581246929667067196622786002857630822180583906845741710751209237666741972624423571276689694411487487086888701526637291161671457321249293561587358330305968752141057412646733746482885593937658280210559740689839134303662639411490152894370715005462140929134182788020389719119093198056511412831339427191311120109591614450328258227154628076664804578329055545614212784433420405641019759593809682295597113669228330946034400383506437789134792293934309258243009084233222309301304143938993123972551912778185833707643008144574517291788962604567026100560015329288567666899797090115234695439830857936435762443476341805553845260813916586387346899141729286768312200236670150902827833113683020419411358005058526802990723467146854899303367151776631741100787405115089695036160804643275651450354160223877104484990229146513087076181353618984579527074964518962518672596947217652544651073908441032282909074735426278131638668124665152785461327336057094114249352194121444758420146018971510373473931834327649254161398491901027966214661558321530793919685050417328818350906538106929739659343610738556125069645530938214548993177094058301884290656628000588112395011129296757609849574174391630975977204604920063506978970040220446402849570041639591831394379537496892971246439837984053677094273723193293989286664067556845763946101388600925998392115844844073884880396604221825099521934385958219552387152149739562337821123238764998762647923860788139553619889674896060414926954864500119176256869112336908618987604564448526190888187367985737171863149665299087624776182766555409918440803542671733929223756862452886340730993667698242731540105968372784907375213502547904993290494539210266823347053617525871586749127808466874124594843827882554831771619690169372478207068222899181731360225100807854808613247114126799013046247024519460856597382434851257694856398883991002687285165148689298751734376601296804215893125896792817011239082489580048332362207294423039702076571627356426584120832439431772038065055557351640076045136604891000399022349493533593566483219910407734773421418651784083297528683566626204143843250737891080972861095773081110189862993445705558213185399547434091833336236099685265014456193972466489816115146112686023571996540874833254989801413141704071130563957079256814080614410321266712673321701535382499131163442683555369229910921892996614267823074768331053062917871314299291041645773834192991921544769375946798225881276918413557302197836287769251692109652938293640764082191287960417296808038960670047817032668716154281255894585987724847603522923723891071386490493052228197132950536955615332646216561663691552106554887715447551237632264118233900298486649123479328522268731413224916865298560134754381617627499824476024030427610647707474911923842816747661743738368259819486064679982027433043019859782127794567284141820238327479050083363122347211979364113402468173073315008107934401391031492095235996617341945904948561876961030472051228898943984315052500832306243617308779797843665487544183937524914685969177686986986539491961944916803670001056775726507529001230721227392064034784902728331731792239131569340352188336355277464545148870561441817556801166148531065843824434063177474430150535246056808443393940928415246327435951638794732887480325835064082253267365854247632491529793865046033704480365080858311516480639234872621324481510010283257010307488485894801127682533205012956795178465042134898756467338316469899785650694986725935849312365874864090896954616382336391937757693571699821975567924248265379668594604636846292044553580281319246578561122570631558681458102653019696997057839746017097615598440581476120240904954868691823753815170958724217749880679703898761205586701094516285370475325391959958436893512769984841751956117784414423108329276877812548465232996879028069832116019851302676390159429683311924514516077850684323332659166542987539424852541419207984123795287100332726684980316218495923135485933397267946435424182352624809594757831603798010364572284079618006102539197641289871342819410023687192335875041766954556979161460142197947948599387531601872840867513683662279058869385126412633646277165780650895554490443823760515035119014787693765857940838278175152814582448790204550785508961093161306175440198566318253802430482203472794435094493135737715986748207830318588051260020869527728861455410705663046089849207032475338412112012394958143441796864846566515153246410508491078063766739400706509519088265363489062275257259669889149551951156974619560081399897819648231031278509855619359589875791808840651783627515780745735232964581059313395338265156794997675480246539134341888481961984349439118508568943019535438164079530146353658384655959786011162071352050747880530510853164264642972325144014344161332645935039367542188967587180205145806429329234933108409632195924650143586898113815572153053840323394322267491702967598550642720948985289916637582524795359816256268261561490844378831664575448812923087995908724091830348056642406475381558037221291171549399696271176197253859722406989559735419018802422261436693417898814328779696911132642795846312987386572324143373592376122918506251101779992819067130934701286406604234396046089015558249651568871793173523445310528660075394522702006375974463322546205656775050526160962330436987945900269054822901199577942494334787609981821020456912526277799272148985435293213716684509196408503119927641630615762703583737186221060871732479139263708788601019328885442594753110444334224705746990844522520077400656681646582394939676556361481228625928271727951588814210607405227475136886126065056261915031053549529664660825008702550098498068217832999083570903824778082036941171184780524989392494573295066324445044886017003024219179246892563913633981365315389694304351016951545328247918583041685560945762646800448103604037502241674000160126544134739229602210018317052122829529744066118831979858229586237978201345788733650008053876287832234321610070431925923118700276741328972355356023137768004948655928675978926733458784101988775324995853205275798552763575395504397082020020601360101141212986985512294552932860114844509802254493518064625152917582272522922718272246122921392440575340998042861686933048476040869856775421981545071839798387073666439260329605520892668302103718874540358375693298108147892063221094380501377387748459396876862872793319918717083095191685539294447145364810965943099355571367687887005352007204825184178279157632682866914427846222044826484113019107289117328126748780374608466483653513234655688250940313017853056938053168388371806430697064957203914913813635581482062265788862806494453999677304819296411913957432170283168518416051375680984877507235940552647672292736116156737375557182319054095627764780528353606935069828760233673994564869438474746493450639699507269720959081005382146225287892164883054602503428130392519222022275483788003179201369045744089176289241959698652035869004074392945317284853170426052312736028373266826440724180330156293701422506274092969925841274213688897181273142282879965684722760410926723756872559985856733286709319750921279481534522334056757689010664477604964954646452468035411992251356071687982259205084703140323014085842262964746046571465007961568734739920836304261880046683109232683423829811059839716264206330228896635048402154769117562906620452717770187779571707344827205247845547073071246092864849575855085339381485100961104969382246866204447056493775868813636812081457256248622388137378131959652518130445514305881508429794898024581017897158939666397046949854446498734814861264158147664637448365690042978611798978765100946981519822128341939607356497318969289296792579608577802362368612923104363784710846772344110334844254971576614830904184715972597642513580521169519619956252442150232059110111226234137962920102750217273848342599743736811496273742567326556743517282797958036237393637313345234709483243532534042423091416310856528865554936856416759590630853663569888455858043005911973278054331140962191861415689643244811972207605656120879974413430038757431808349026477444946675816979334512525411270723574245041478192606687209843868673601185852836873010529395493769433873152603626234109022349039683657140446197388673259903062127209370052253382765105432987443302174702169170201434443572912820008698285767573045355838511071845301145865954350821944689672047484687145955817092863474925624473464638300040710124854842156849488396924987942238173442862127668772924248903487640640153869456279318186474403823391783873895668835350215262921732676069161726388433811945629845616346227767293202611965370967280612275077668933660056135372838730695570109522417650521604084362005700132944770010923995538581934744299525757969936999400332211954609255379570152193221611165006055252333078127779177058968797055748114673372196366767227918535917931802631903883266270897219394669097007029407002982114566536245431065830353536035089405978398024861302932753036916897621747640700475054902164320072134790600479467132844454890227738794115929132729937053924555692620267998068190433523182667434342365376227462897507186837185950958705402408595422333656384225043817855619487885186094353995851662748036818704104981680341034637811438370879199946394283632660351862478070649845237609383057643091917117654006515228527938773273019333501425944588855135090865257270630615163831600313359489464152303690658833836577762228210429624582910972868964742288559621836226587892079463647399308007088538370305971186614855630644775432578479981578909388583887806828805201340010701383939411557903965770083791348667667161607267433975794434701677772240984756376493595699612076625284434844476955025929473374181729789896505005640750011011978164225849445275119063118393201718065603586595996548586732603104888114006087316064079904518432845743177879799607010676391921208060963495527432670825326180962137093490624414833098907627200739069743641358831369291449207197916486815165034941520427596192334219090685299086021308830318397074655937209536587426433989097907785492529116788622310649083478501620936040707761201823133949237120514002795925270637084922588257156527138622894344848024454908629620411242986829598696802143294695637878651415742959337936267422140086687253617987668990162700863629378337205746594793199585552828845488842685637361565908572598740029738527506554268866376738824472717680912129818053163376305683672684073822923678594416216371909524596776743923483736938927408346589169400488429211281898217944695145159944201860992410525655394598933758980878198506816915169200568058888573874524426354556709277881928507705190933753572102994202115705111030787267128390834802475134507241348875993728798754167849764982513935090673377724030418898940749767667672882431669091747812518679707929561971557565197265141523277555759436558954894467957699255605346235936882677776146313758924701666960374082162399839357633601854508669862204964004582611221240681209177983570494856301754781717035112720504418162078280984512760451033957580150154356575186794413280145506651963950346353203851368425597472154478781061135470838907945195150823203564876347885659638701692217800198884955736500479920606058519339043206438064382250628994182700995329478192939601776725432915043218902289333398625869113493243098855856250461072499330947637006090068769615386493545046809378063291699672644267748587687505895360315377548550099992762949639210546418983885308048356919901221039735341578476654533235372248041633575611874286950062321956438328575153767957464219829737463573005249734173061166214689542736272645922359385261808968188084477223017397108179578861145999817257727828772909445421559838510182878393943019745419961227372186425953817815645466544070520544614892465294695183705272873072886331238513122385222821239232373167103873773652521323724797884008415556995562503476970933160729700622947740387839160623435572931888481348195827897494992698384721215135503232416814157490891875334909217454437024220871742556827594735731942327167364181427171040776585250398742673614300265817382126851377454762610431820656897385104285738200594036671021989227041225438324807292020612302962637683137832757103294831422174676733341931235860819589027965437281120351260712265753663094151731365588330296866678281838774201568643538748771831342254355300251154916092095589764081521642689554054954828782327944294385019358130190538946141577931551864938432326883183816294855953144436377993930065270550250234676658685826695266316751535769125030389042328186149693113847507466568284859040937150463193476876059304723243768900524344685744469681686941116263867955954601855661646761530430019337955637132351391319948131365878715305765361756522440602739442501832530843641168980275484214951671308165190517868799976499543487897900455235546767493639125902976372531790102554272812499821823175932664486334184844236418406304785179356224698503303647872064118831692415009486155574139795668259719985276794411163079792691340499615119393230423873833986437742596025340317347064110589817882673859443655462104732676191076577068476414273556946964021404341881421904959620032390018305888778462234662115002037310961943034645839471995718991568569899730584857072527115077135271043530535334343293538886934697060873827946524467095742171903815927470049625479242983591393049418455843552765982902926090459357429703804582571419676946882826929042079250980796438177455636923814231817507302908739774590987693019152957498744760311697596180536850626028758231785170888945971620442868338781497296930124803989052063107003094766020654029012532365642453713045268885617697496573939019730502372976562301915443424365424276334403558065117959759579467849126019700628300625266977217383667327775532602299379002799723440411053901126585034801117387569477526477090471498611948575379466281807253332506258304256248979958404248071729466867972544502279843639911402867291733775729990211450844258424475599416737042712498579708435992487715857630091216579219870600905451780932043235803082971633519129433466464402797340419125934388615344254988858714923834250188224066046750736006594601426091689418274720290301920390945573732746275634505859381713409168829069786867355969734934744523491981818434140588228382822007090997507590073991571532651065600609844765471005207734572727220761745605505106123585645245200537742592720851241863166558070386832517513258836663286564972983990885945459988146242717152484499747155136352006183228379022917988792536001345170999775334303038499863449149799846792683834284093080425951244155921773934762378232189018225062329426335477068392149143364205217923645709104152797243323488255966488056033899747064632568652876694834408643015259017401546868776563731672833115870319759254135267056012064625733032835884329732380437863698116540247375890986430344598911613832309250219466310411641931704446182339600978246925505785509841166442823575772353438744253271470055194734309152072295274047380142856410406156185320261383521996930759774148799776538707360389770938909919056146497041918616326730737627429633052255400262747919410521453718983948861165739779868247891521264270395684353425087863480927817690439744141912113403151520111081928098993776397161118324350980136463697682923696324794199172094816605941600892279709002436801240529270382397714893080824981223237103731488586322121151979841549611374154366414048051024689505626781625156946774691101469312041301517336886101817264447283578434565024414339797288713584579196722772768277746396843226574024244223406254067716372211641618822096275286209106724535182143953948665191979326205025064037858668500771780117182480432199700150228341780522809572208150885117929510454180292117391615153975960298402153991456565473898664372103304237220152152178410598554909776499712180090781043933958975222332147653671142469927079986947303597476763485177610160089859479678111913134178589236431232417910874188424186756953829375496146509719926235412996170065352663975789783866888314955663853439371553079679026819772629548490542461125001346105173288901935334143352832308165360415536034348165876807434651022695509538081767061098810459084637908222323548441657616733213782722660049990042589612631936464037621443419462461307119524755380673218802252776744770786358899647110462247293450722437108644135402298724606205812741675097923973565265682684355796004301041586389654918203985604278630954458652920828409185385433699922203295261998729676451393593026442852877473033128534428895320948008870374464379723421164620479528448576098765547492161694051407341868415718439448074833616547214623488046528491209131779008138901438589524834331019190764141387170854953867740983034804250785863208972610898925680666128392901200319947896213109363338323744862799389073308212702565574327050352894371982326372431629742857892448880244110599169689202463186275385463196760869166414686537418760465816818554070503134714371059777528490804047283510059596366217297414090367001194862431725824652756404934913732022721003913537721058594013639452755609459283930227654534299092924469990988120873765120297849095305446835218459037646815232392188618015232379727937992610953989272495148610628410209618422067221820337844077316943009508951425704854207444799308986768370200196274257335105540791177344037015397013464246025792633690948178797353260683965237813756223089595709570947411417575972139165968029840196729445241247036069249940836285486205896938058275660810932347987284054696674728721323510133232573568847930553498080623198482139470283375601423803234147786765123297469199659132495941693732457089827529936442793251422690369603976599099666252867735828264506668322880590483644505626704664852867831288195208227013311890472958204643880547865884022547461603889291148358911138940039558525077811612870750836804389692129340660174470664672327637980778834045528633034786691701790196047839368611554506982962673802518733485184926125196064488407536371510999466028777747451919325325507891599217729029681690311388351681201419748812887905570042023731757796640004677121436755028905298940996394870053436927201540057055479322995870673656720264627441269144294373471682087082703337856104489599894980932268402631702314937898205738123202533919968551153345726886420850095469232605331574389314202614710968397346662946858469798130165585667728972296256244648454623040884498456042523887357009563422673749823283904966050996044980388868342294294932129962198291928416032740072932993305313252971809834643762419611116299834256795260123940560436425817502977195633318713238465665734522739237637637834231572732593002056600488889924496432025310104781674611988377314276725104293817712975965612725697732909006371298993857566592002742908767998371330221801979427214956117563161846638785246073933628689762516344685442967897792068321102444209635163122162837868433249621661679835907578840807761411184590967177843643631532818985249822925200161057793947609458701711642533517872122005805787029975877444149867178713599460640645122890668033253573571154608766376842959208599641940006481405790416835697252868485904586610322588363811571055797783806470875777165714157849174356915196334516489059529735966562670274680252004216344946409043496107218247401102818275671118285109632008168726697015818685292295709550084034280001272739228760562532845766622487913688830867862266598173447104389389871745575450895626946393075281634643932031569465468144636577531907241520506661480563258631001773505054613586723921021744402790703189608089394540852278325787250669181949911492895619665413147881452370336590154763884706956220052174006913100171977469560106750669964863067350431488348890244880023081122134432787808546742603463847582887226003001501880758717421782722331957247782507306210124209725130597813010957230166035367028459481260822354083022970336225502905739786023427776380675025266046947449099748252125476000029288662575357633591070073904556197876810925913644649333817742236682848457749484101810995223203047982720091952776118419834896903672453444369900067561653220855808986081402156556231497785868654083183900427389436305554756292859264416874285201950022389713677532867968062745291986339615973629737189008007758719573471429042853660574388180388790077707557380035622284400985842792805073571796991007392666622395494814027489669977161598057001129322814405771143429420573947594052387270045420678307522239422946685605759560254278359699140929629112512161037597540262960868946092756120124880841955061679134258268669190360700495777792955581983476139623044891023509564179423038884710471465712893745821643180262966923882309464897488367675513269039731496350959020318889582874180939221988457756722702663567530119781849038109031304656659960341891265382593678856144079125576554525612646710596032702493323493476677672729661030081540738015606393652876274844462592338896520374048341042709091738893650316223522197271241921103965379845203970864770160534875178421837161160325330315174251068729191893613048681400923744417999012011166211450354475675600626550574506971452057366060366029318813714379967969187385538073647987399091942397359852037568457243327943039899045347714123623409521688261381921639598958853324735442685601563980300546251384257700377466246012315407440209165293880068030315724996575525311526876981627512657469143305101755752672746692559354656137630616418613006331234935675440972175675186866564841855287930953007358644480390202755632608528814327629926481989398169337664574386649740274643074527614168365231373600817113327771067977553199102170954183975786042778704643410267271020377481262043897703121544762214980670174716119008486869399689046917702221376390154024986632460919322685353423157771849016819982429181063558084127182991514571722463701855222005712355539671059971944305156941654500612624983210895266725869560967453172549300143704063010021929802492325184587986499967769797383852695020452038315794252364583478996156526577072485060557977025996908831355025651120871544193284675779213230243517776674155927602504305914364342407781211593990598637704566103573479673621805476332938065855153123212707317077181050722648960244390252984635216202717319407400803829847076678835350085919261785024192971085708166454245684613635750184183504687940263617465902636110474759981488709185176311320931870306768897913717063361452052263173852660290965953203140144528960792582821287806174332059247337680369259267622377250527707872757628454107391969992650202982872574500807640584968376417706747797348077900736171320382977194466054126000605012708907312673495490459734233241398801299725154445065211648221340103175425880089624988880308158608940904858554358190922682338970375544320305500963787661215332731403166724465659574146700262035887947047393141328237364313225366076313070699588062424292723921052812024092782473822761965009509719235406665511771413400694109801555388664108375790656162744124732245414669526074385759975568466876956406352214658672613011110346006237891770242471070109527938933787426431784365957757407086769274090095013263331572409070703649869300492168361990932049371553828981854528243563660177047239286717240950989133748745582041323580003866094398619410637640665410545227794738973666815617712519371402857042233861088688306308359275902634850077262909966782812453924997467960824294565897062069357775068104724580248703621788963484323887287418978287198546702784126779911720628758102576574924086230249201593789692148646420583112887131041693660366487469271309688424533818950538972561134753141874436353110046349408519740358330151887884615128954657735951606700104422164739630097203143542546480196337584696115245348261431446481743663662192781311905025835427702714578283851869213824422673082455044268497218434123879629582766624742802372057206705602011210630457013132622806744819786809862300926359974886433187121096917798551897274602368498345898480502602436499756033284926536088277996100726807509795994704269668824853083750029410744585771831769215414070011264701866811440453989176205664959897372872092847368398292672812535170069117336865926477894183294856955479849636878050164854537765221328992129681380092351055781811232696075570788950087005247291729950234075648349333829535820469635098276448842917383387464849076914232438117324262078726584389491949846397733448528517642529558262991939604834041571761214175145416163297161843882900046171462357982093653956409766942993885922886462233685550752744412958629009729559801194084738148391094818714040490844365698692925479346699813954585875478938300227889524152707289191591901690689636246241612186116600630112356592198962591089225169649756071387738027275979643255532808934081980824992293036505024584697146351313009936954014503396813461049778376858894816557576739679717560126838018664460679541119410091051610418143187398100320425013042344068744649862128217787119611430180365226907763063364581158612649946187511129931504593588044459661633625453050526065011512139452987920926603261026532418883651655881258917889626301559922646549484553803317028550028761011057533282591622140797346913383307668178406185649374251581208196201132859728909978168685235684021238334058631474210120656485206855382897725471227457340333948224301165345433367352913646891504916226623419127066664482486187962690794700215420653039000815496579600110750968209495921313298240110631344477269693310257266764408512297839832972036052481932946096981536613970019516889353493462995087182754391561513537284526211095888455601398953016201140527237877407714504094233935693398353283236214633764263451059565379714469249576767732081888266165747858298817030313209273075371867720039871744232837396944026826091427390247937936706373477834951280204756426612004792418656782308305750419253472458439143215361242324268372208918413476968869348848138505558327353442312676302723443935866274258822156207723691471890444628025209858799207433265670066648882666563386266933955504150276495853893524383917135501780610906278449662362401372767442899728900868285554466061221785689923359828249578279769064164384941863775491480112580605355404750821558207284788751886591306694255341498395263759659274797955871508044859763953906013065466198029864057145388831342176104993566843457004571546487433013261234791031225316557937168481212538532772939818242261707299060431876048213906406600591731222100896704361847322356433266427960599621959444536224450945731084776376814189631109110208045621628781234516989567171164042734986396495717051067227149886757737457836232689864624828726630148383518216115527414751449308601653255158559116535616141026172835675770189052675305387315381362228159737597244712860299615813964971578946275193244516067089658518680932596194111314072095112324088782629293613109876957539396340393110066588225331194673532072244595156370301477448099844954342579389519051492093930657862934343908131867638489289920962792708566695818344017158108032081579299792274460914384125644992101589099004750119093752429416234685005449814992350768053715881902591449916458007180523250664088221721577575285647321304499531514436910856087413766067503881837484052839721160281954178756155713004259016899472733278892810720887000020331311205432178077211364502530434807064577253003767279295106065208736599701404070498044957927786154328306995332678056119600594424471659218207080016845763718636554526922502325697464895914414617824362466493219785442282129243073275203194276942514814340524731027354359659999748840880905084726712281874363420602572818761361013407732855944277398328557559621783129173292488322563327026318106225312247595126436135781920437350536679822138293879571274371514002013633776666967644513935408641487525447465068728740664609114898911092417093651303899963369734202727148064300859112395926655750681380647410121282329837761004142024807218490641449675345303162223651789339882780697670161721142227800371992962246877014978926558655841967013213192550612755414970874580003754765034759667402083390316528642024242091052258366976832811011852569999868550195690679855951080941261934650375074401835745752412606212874757408680763677398730375796565866253585515810671101308130317005251107854542308195366664904079464854524919987470123661595772103545603121654273758269822385945040860981928677010706109820575510588840159436360742331158273040729828430478388517625091999090256026921618206474114307055455820485570191789289951757251474593431675392970263168852382609351769287320067083072863129626195436884859247844386351017515349421266407742597470624568434483098048250692947310342109649126757374834110444948024099081719958931733407941851913340540582098172441387833080881073963380117419900774448464505729102777336149159045574958464694994678974869927468935136184719773340245056695456996887867863566001172612044179103225233273500957193027502919787713201580647908737939390536930885485324065995453032507322331136571294724015858820299820021033646249938776488550287033935260522496854743237920404125335534241264661975722424159279746700996706027356963123690503413636844786977360972353159333090333134202922963335761323981023455911399253490863920834575739781544094757402233258258301440788945014695337866780585392106574156138998331272879697236671070371497845729556853007045630974129924682962428270835486401953353682217335636101994032657224783059880449535769137735750237049855431301705405873207798758945415300309879790994084937152558970746254999473926510107946136982699251325899769854171946515729369157786450635232331900004310109726177442788787074569022496852333422778555386453666230720912302759358009725351572060962777178683163670830227542118983693447584431523188713373932176013231200643707438256922642407904563978712652708862568973887404085573686899309559867346638586889151925996076035641419038188383023047476477734157545348624862944173327785843372519846953648812664747049810238461531266710336132626611858375470076679828223956326759100473783976500205379093126649860985619149199898273673736041593567231048187857258178600224793309100339564052839211880097648235431208779278335490061650111612279115483031041048861264792687644126777155500215165276735630393284018637899098192309940546164367072312444346198390808792336417236142552555190037588745422380645654103071170792534216412221995209937175183744877496275180662072323948793044839281937390993884559790131351616720867927724899197660862536696262449474420293902901887807681602775845053305726962964157110336483858681367166523892558780307601946363135508887768851295599563161837911766485530294500815527578740213173188613059440283262576635100644321996736540767781508681051407554806207392405853341751580689908870059612559072166773482953941270416299158373913555277950653068754013120808998339891882579274992077570647457739281543212787242354724314256063033034168699965888197612040864576555062526859944110393496209599340843020220080666993137055610921188835900048736838330008947733533438222505038809417154920800388536545962923642637004207599063162899754338422308924638615815591321628759243174854697314298504907392885132924575167512660536435824748454157353576353751021704856940746135732952509943611041227402135908818583199919503190514951471330716492911096892064609007609315105444160520716930649303164176753885187364841066550083448669465352608343665914979771123991212894397045617159365092692703161204056476009307660194211911651422696985986529230083007658158460681626560920146379597951672775880789672901696799089400849970401196480565269533384959784861877025195622314008650597558244610410404604587993621037149050679346060382708898255209796099229839514047097133492286105022951264260298285417511807288240611369849768296626978649571707299704814992122871790091036041937959403321790705672171020062808142339648324094722329841012289205637910825460259935789006661379118732317638986072756431320914986481632134028003137801604827895089980807139529943632512717605137086118520162459883835485937373298032512242704332358037017923111570948865902464105354526924247524534182246227869477213555335026229771481109708401098507816830969797623371016910120936465901355604491384878500631332131188009006733810777674424918362387093456018670012770503693270910644615493180029349437625058371127659607400219808942929091370359348565607231114864703549917895557506741037004688170766200346785029256391927454334031086190971827486825619923221137362903749760181454554869373445950256494740457114990629809451976826678215964986657331629512947306159341831581977037021261073456027977856938462142573508197502331927586182285015182257876816297704870493045909829316800009177680139849101047618758698426257727076683319031906075553949922709056739065748270666400584546224896254411217472544614302957776649327817496864133194272181349548564281585583245383723449189002678246043100726243363281718178323641236682798377448863783247104923091255500685720328183445218631865553268641361083261286774610285943212384284073866542655880571623438801745758238842513630351247322344655097257401611211360682793460725025863371755308140248411830695382968090651602986109209667968289958946230583206121078807662179242818434995330203232692950839255441268588885817573858659354435726386381233684297249925923970143240036173416036289892622048834238942896577546697450104376415914770135128937554729933524232361291632957317396817510330289585252942716884721063402848870728631752770704651504295953366178607547456716886204177936342841489576350744964846635904799175929724218305379950457447956025428608222165806688231881721779782175559338047138847083633441343147116020545617725500109694094747361747517501072376226922193845525999944252580181330017186683340446222075383445235391596549503393482304055094191909734419987695680951130275552315028617664803285145357453255097643497591486862463685715838257464110756710071143989904654206764334253780186287239220422023267068573519653101079914626521851404145137089684581076649346687054636768740657501257675467946290970980966388496414931440215906474308251033886337808162089018303633054714085938703376491370078588317851867547461658679642149301555754153204607524855918341505081539404557341122338122195286529483539974872657349969920339694812444253186157527697174056189527942849023766327578663264212827393318845358208542316250688548929368562380269465756287086599487802097598878688599401103151949122912680003819130664684498753710669445335217469226862951887863615921492883284130256305907557950647338903099171860361754486092387534728643468699680893079893531809175222468836217923501531851207739147571305005803829920481902423661452830978124765295117072471261458509525966962850826582196273445670451991469348497663658039282322357068287175764442634655634541303153657808874641068618216754102188242129613002506411419978958659979909386873459593003606111531684843736228831043581888717918247927953153356085478927555928450048315132857394475496911395881507740341129365156373274033491027645777126599709058148615659229714254661579237622969574412878322561545186030454788461023992980371658516771208743467095826572248191528542439505396455630085907542655851737320595803074900675007501434220274205017782530828993031450885995858884606424508505768028968212738613357962498583097255851966558955223120147956070820359804404203886169349596474700848419093270300177695114449687307674008583655734981487360606271643078323365233871553999955022893658488663231718948566000556311550736044885191038439481322655641077320022007576744037402590457221832200953447694887095008983697394393212829936850630181705763628250300884768360365721182766335246861819043263608398548419646484075357089915141299033619423622532233984790565120555963151620797265563480242703880360834339285670639435934468367010398333446702400848318655485379717807118571844060106075415458461946884468220106804984416912676608209156092442588043911722687204917683063017469525724843648867303812759769489262841959144541766729857102280179574205838441621749496936722300326896562537625290338447287524220830286200128971116782231614973059510691552542098311660947346655000661153526678357131451447488043255629119796344453526348377462908686872741047948335449185805064799278064556224515766152963709915586774750974174860593090953613908176605979711196018766383820465888587365874866888784871047019002067502564747624141011139658362968717143072863168424901887519576778155613152662895804891910426204825098720875168025937875862623188766540430692475451564164192234486926382350085967294748542862494790760797885277724854347077562901530679462073447545392624441784242983871607582595217655538101478566012311515197989345503182527727032073596398306001307508985098718400717700755702097610605806557085190208050075040584281126720978157610166589391332577967177391489807519732445404081839695866561258685365258205852567370699587002470363471361202691844125095578387584733162770735775580067404997524124043000288330184635395398726831279997268705885275099126389748131032824148077263173581645044546742786422003806700849346107617708638503833663625129849709910391352077153079190261956940432083789230100509783297545554850738678701786816013519259644149868731533766703711602290327913176982179110487030583635804812896491879988715899054555518581596718128456353021094013473593305473210292271146638390933129481901393805403347196865535849093034061221884359509921911091672684479898259809713935152186028231608148706083124633653320538240981944241423041443381744238733422062085483879553723860287983530768129337461444961013955767021214177326929631584165050370082461558903905524405411287462913197534780412126727589912008527383058655904229143769078732585078901250878871727257120903884557874393125015120224648854406214212977781852606987906602149167766858090129249542945811345083800500219343424690298375127080155471493208355978282003263671574769804693424636145156015645384888644341928454045645913318088234959835694244828032309074558940443026500059470411285262674777317183685672904946741644484247103131342582642580080908724467214573808351012465715688084224261330577887885329012369027265184695864886703396932087044639997165433579278209800152295117838171821754403333855309614366583965193711732714976371863940490888165629514871843049966538804143918447382229396726305880434720488523788884570041160758167367042175954509524801028004714986380928069271278991114677687227409829726658622358831954922116435724278897565892756680731579681909128892604373070082500616665009791173083760815263332183707034186823581329114678139517872715882697736163406553084133654163744432896972404754973248027730386958478420391432087856616571727994114835175884092744168163919207838113546618182036052553694707685161798695289734669046872016346372539431748649411670974548864864952716202749142705297638264429218315868687021028049209003631279040722959974902561412058393645087739942174541494173907698452186354181045771814927580317199973015630622101367309325338079452474844179997558452799199711950009582771491753934524372722231209174310455761922581759370463122053250747257054704993983412190137687833857869223972299857359780970149935927303812634587489708843597314115038716151132567939503414871660168530738038728490843236167818288009516639546696330995426426192269238359651961313629883631939236511981697550905027601990983767742812083151478616849422716429022332691630027348113418084940260984821758514099036641078470730477485818697971445789870130051238105986836334043540008818564422139139421845477744273074863406406023518897904130473842927786973780067593918485776894336968854938500644715374623035644736624023310972581171482020868638335763403882433367244399959257390741234853407341789047800491158241650107110619677287766886733665208766425331303213795231953742757157900242350467147580689205245761291342034507610057433057561434136980212253145894247258960306730831448047920943649089053340489623879110515947912284445728801864937786394199798999597589289097830876115330167725100577327725617785071585038924521871466232654351172501801850120994638362080426097013809414681795189858285093671325231815165483539100146904286115247936648031744590407109586775418098170377428000978067228711732484183213711577602884329582157370932869680997482802536535184400565087713062329290031519725410227546177885037885137705345973751852683829993477968754767745757872039877629371804822926789376746315567200966334557891184090290961803502157846915606209054551575628997764249402239775335898199411881298340426938654997811379461948089496395928265609658722281497915996355774328666058776852559122361936620223834933068115870805384273612074761749041980780176563112251760851150507672217273740377358075779012212817181539103788499530047961173222296904151154967389625092573477186165113317785574985350365298050533319874650527300601002076306881515993726430695910359247080138867922934057464349151364606561251175261355637420352171067545917560057032508267683284157377527222019481964359102210278091926689755332599801216934271918747613302407076249027840349772351753677956825207413118678930959013247554153790016070166885492604725557505851118602879757304369267213525459729652609243677901075288109739061836181884017307169181768987171122662481266816350923483739312745268260472615159406123762553354776676729936681567458378026075406544407538593168288584069492788598309215312138602976756056633986207095990022306622653198127545858029530013235925812194295612619556434338378328231342026021984386071139164610749357102156232057451405343758746999808350673315614139241130314271983241608997025449329312701047332573259825101413517281414014632803358925416879895143106983664785751689295296844751275371414056624966066408531794481908311483821846044299503581720713828581742823464505394325259173109114786031773035927388696641566321793833036887540850118808435384406017865478642065169826072089900178133540594463062820060722596970897716711651451301432599067546677397707787575412669579541349976753668199457577287817678845208605525088828614952167411403062777870463369156827620602582590139976791012210076031005183657462233959529130800064793535705141879119701401319012423237096706304973992877392911193952177359890258337101900019852874784022426210677472319545575011247222585961532944496092139468946913027200488384192400494765666376516024600462521765855027663526562160406517995450556870494809862294025394265400683676111111102333502654070901271043770120308341228626397752399626575028840047046810063244581003740672368182975913532556155416028740918426156191520268208284176117837632416794546297664665082618755780630867085704423107335842819445446181420090093249122467645390968220303240680419455209244021696777970857714765298786332926456908019103161944649375158989941989518931253564315807699092572714521235027386007932445477558700675451610930021325698251684605302399819267458792168686894235859434391474909578723986716439069101307955543787670710163895077637761042968062506884695405490494792061824140165653142929572461294258171747638692807093028076390745945510973879990298284423925810117961620458039903383816770033248660150770041079567574704374960696017079715418127552120063267588423065477829857175573253742099704453313849484169434631249519378844775990798009648978345423746338958937624152093915649007508116484511023694393775221778689671418412685159395044117722148490556866665051513915366966105457092720156689853275092457077705033781792364092091074386187823541939995748429962537223423759773361777131997842362833896665238066077748445264712291539193607597669272325734020674262580078850148182344614689283005495898963953910373000232204045374918322036583221747594348994614017344959781902533084523835011536651583851618434330405038928841383495334681685337633953127202652145170544547713653358887160504297064272548061079732603774067401575226382917319688143333604298983043159912136885540768896892433147599033697563405861030061980415884578615984060749654440968385903259819975704376781243777654749023188303628435910915370336810450994825242333535484396558092769075581480637583325280411740484390316225690832298208169244988224658386618846146681161828775044718499326763237038785891781049373548815089049198917261088280369686875879194541989293287297627697471332548369709742581786521531662294515204457678396574786398891172307994814738714863852213759172862499650059947146641557053080387558428913570499936595676734493889958586751134851782858424108277063743565940786404865765478530634689581068998736366371652258490561844801554293712485183996019241626827474927806201066943035773941088908414811751594466741583399988559208776879829593210216654678153111805051519117145095534546615723263215758406942997216050379365349966926026882138116192695834737457454867173653764901940701519673178625266543296881707887543500880890719003434732406364870937272979129539817682623058035097778981241298112292494311397526102144788016897564774307388457212041393531788131178293663203517702121153346699154264980858543700471981023934839678950932627005531700080140830600387193075389986573923201289591250765275678220395706546798671521667563303568123871381640176081224978129992924592394688516365428161192255053448976237382939863867585018164080152404835308976960904606115360492658951436227996343698162400919915595922401641333631217232567451805672947824006607978503187692141563643410128307155504817612480198773034474022600780209423321768957393630165367923885357699837748321868125858402901423007271126348119182533030706882164631005204642264194055532965802735202059909494752621290098095451804014202139987307423366137322797863846615953558881265737391060399982451442211721615735029635749059304278920487591984113281158921624902097513116849359117323592986169530345274694003495328634004962500316339751406185421419128162466512243473557870818812018119037516573836557671911250724818286389326265201884770853991629704787678927625918679253353957955357992591848961575035230582535817042843437227697682201197837881197362369832696815260188035650523324795259438699421114828569874527262884476368391993257724734294845897761279819575835235165974738767369165629184101708969863433885593192696544047386386640772926944153328467312436838755381378242205483115177067607359803372481919622202500715096159683622876394334443562857762509072062497462209668856950208178768696734035576073367005730495860489087215855141323986946814327078512906906038079650368729103881766548204470450761437391468505499815243206836674944522749229647242517110949120420447447566959641746353789599539008110542904864621975227053146197111679044304452753074772635912803724503036144158711286311797212972173258254148352030351484814859393001096600751894729217421194534158311590577807678572916228111460144837981955499311989400187925433644344934534974300378572853547186174178046772339218236077359241521829700861575470496116397915173054789358535025277165420124580288094063955873093248951476958509965192508928698855931586105601296960608943705433436057930065012714083992935063859600169600453586399252188658909083173669560052236867672037693184130160369532336046700604288909279201491684554028556670988547331281830465094418877298723543029002444642180615506539641925765839782969066146508852705638273330690977283431139443945016811336960110783047698734720142416761106323977272071847725595599379115746574963203773000823706318128574546969400543243622455512943016309913036405946225295295302581461983458116432009683630959697711716116739834806884699680195730146550712958034768926169003748858621278865586173262174531423347635300545155137324955781520251555407639877456480663036223091150676037564886196805091863058289939038359506933723739659032800189403217472254779281143861666714782231021497315992125071920087257362984608445798681905568879772518183132206872268828071003032778829462268638864853469892054235616039776254730382031206814234174285379050407795766360300424071970963550378512813703883768158529660806071388610807103550199235212122837046504484457453646261911806883587271581691901497696052887590559716978975728728925206050632524451539862169815645034795346362221885483887708395371535097145819888845181179997409687582911141966330118479931437100534778727687819201329615942209255747922062385929065452939134947273629900812794575832176362845489143809755336192559048410942291071837439671410123499623936372133362150156243499688899562312798786500021997322915920951780980905891996106026191046931262575079131709775505586972802554118595128035120570085461996028953971705094552922196188583094131112480512206800279868625315107978142240854624164098097585288913803523438302631767715184020521012503108855001228497033871109534037073504084238503842846777158111178350879558463434119283830953362812319254459130163339276867624633726273739718867759575941678550304507075941401907535977770899572947866393796317391550081568820702464386275850232991962459710696142636352593465629212568019824962493706195366450515015043298521700999023834839665834101189533548879261559371012139951390840077735963101277307637293678232905808225406191386323691641255518911799557831945584581484404130455898391056551064497449999403966911089352602138844677481727349389413641800773399942859978392020687157368736456535091940983745264569337876612111808849237596879260172964238207666189038690984414403256063987852202599969991553069089666478688330592624534614846660858118597951378911655967375033238333391558825847363695625536042768617099229231932873185072202123591523451336646500227499508789772432656881145815755767360638064534276738294017566079420482165873329135629497136626023580051656408095143820215476712888887041123810740524048360160971893082249191859013999907527595997174117099741630534399864910492035135280519313849499035971219873659983901145157905640285375923007217669817904365520336718595207566515455545506863951102596954605721371365382118986054406905121216137788501052669373377831885595045484938947190975709406022628347312249473024472058501359826030306070087733387447393084940265661127513003599779583100963827055439677102555015664203646109645978065502654095179616792223258152830765462837530775425161583313624471164289853741114485210729165313954308234501910890657521510895518266262537293921498323130619260367827053546115346003604042448327576333618939849074161859210388343017784092859316437782768748388358885436858661069686941448012666669744695075820182206567554250753820434165554217949624449327433666842517337921954061971416057600096562009741391308367476622861694960699461231261683067621126008980994491459485291916880676128567003158368522830638190266488120364214193913454053300493745198000021149041156681597186061851462319454633994716085910926902188045753233154003842671722063669508990951588707069378856334390071717034001902506769365957398252986918501786643804978385548965069911003272348850739774255006000585558962072231436560505803526926492484935833627374063524261986637205958054674285902809577179303578566453742225782164124763026335713452540692829897198013723243258857072224359220181881041821804358942703146574016353395797757928025251539126888624835842556292859665620033858736446694389991253094245025776184798428666596274321372981639747304095675639243592556563761997855080612039483591282126113526512304006398649666540998175172493388368190862445377589794469125043884516111397243840727318411635882276443733439355204140723472890863207966654879480526736950533800236605689214812746160417626292233977572580536632796528863563669804908041622430581595495461316363945367073882681455905499136333019513660874149821351455345659649665887346113348692545367155023441389805191114108391142836722110423392364006628751042221088183080953449069535469843878381830868324795307294379778658558844922189149669875440680427259191699561559312686367126007988233329303421036697619049076363521748041732776979968866642007536300675744891278957703239642811214559682941597741235501585890338009212418087735383001162933621196608862102626601548388643601082835094964335789642323710511242898045049882921339446838450074303807123067195024016349279237253572307083095839761335249571694003112256480369141885826483298483840252986108486625184186848466393370845458260543812629423036804683571202088072175439776395467834072306637964007951666385650968440400533530603261556800076732740671258297501487884566236046181518093564027316257494461340038751904840784835175111138237281733679688925519484146137694920597412790252479777834807619815114487813706631799573629049807347086271673750378876604694005764044229395507218948716160655396455861213875318029500150853120818891995085811269046219633397365804733705813978611043614222838426326150009412274613883653224033134588761989808988086160590578884622584418902761724385399973577967909663120823461319783825140607113961129925853796865129156717977895407705942605459772823155216860201105800021348859380588863232879351382666521275893021193913297732314852664146349733466367268929328961468529471632615320272187472010545085776360762023161030668839829227494701927595679452437033699846381893057111266119235971330868120453035206719429198660860211800331248705265724515405033918446298971560434603611565427721910764468202777673644806837520022191974082981711615278071336342946022050321858058877919581113663879695960809337235386240514274233076674167632101361555967853598243526089405818896153429854475219349188615205826102457622494527722408381325730642013159056446612662545346903219370447290463002994327866270144238495600021237234085521735480525334828654535823813353537241805413904337138092102030295174755382095678945849984568536473285070106900167016391722177611267436692864454195314825841766877395620948721535908960303505865795440103817994583505332233917036951740077514447993152936847611442648452636287646435408375754542715294695688343480501169802660736792388636920804346497444651906014859726303339717561615026725814966240448500095285062101848630364994017814194769363732335574693080167668887275797244494880274258619637172968019120683520316891541835967801262873014891382943264231178850264449690047787435622017721426437064861607900158834906696618850879579589450791710956436905726411272067381807627095490057644411620834287506683310530284428308235892914436186302435399311551502698775809190187958840578376949749257579429101396361279591255832852068835927574565374923405928039034085519925361308067709954438898687867045829906892338016831234246553277825063372544848439661229138010379567789367718720588127043586189556147598448941755539809955028843969489788206690759008860026204718407283231416498373647144620665717690547062682812513820586129301287984284544001078919317584494813047240139992162314622475105438115037606204581573750061567249343200251746168800541323963024289872837917630163949361398195149789536535641113634691829873300204070813999951389270420742859663777532185614351233044575240777621761555841637280618625168350592523422058247231340665933342114759547704253184471345192906917395060340432949986165480707463340578289751821568519386607297390532955355255942453437217859962087001178621848325808915255570090337431445640328635457698611993350362046429627711557525251264656165173377193371879852544524266342854645647586868614422304195275519941422434167659750889898419457324562759421170549780533801323897306823441974739103794355803288286986849337612612583125307372662038043254566187039964720875518869558511337477288641138642117466419502489786655505529792976094855580260429795571521830312931875755011079246024182407424766757067467278394715244801742356057429283371703823388877557795656395795243084369452097813802098781416724754713025155959743783369280535607129677506859337731140868304604317598632651105152960282404055049724799306340495215898325161513960883722842080213740483938879978770052240243318733937508018210094625043297099929388731434076867730034911376054753306164285366696347718246828454485700765854533957749099649453919901397004471495113195786528869268339916142849045818903316704352155184447488509653002292688439777391764507764366360864736344930678550576814574986298063085430720321451868464602985350466207030035037454527430734678393682373105580201745784759157264622065522542264260784961747124589409775975489006372428932369001099874413215822304999026912647475624181479002578926815347252204440388625552496578212707527123812615225465826830465910195897857574462789392328786160717782979137867115464111373573351068748329950968653340997022676533922768567097362721385921590336917457494037759639233408450985965539780719793524437216056634854168328018981225882084453044286388944809228676302542580678666491731513670104382371002917364351680472313232221666369034204612121114325108468233421249058668115268390213776186353149574635170691267781541864211426796210792825597611346674746951033845858793137136364698688676014545767820516884639499167347782176917780712202681953121546904831582461792843929689851444580117742113876287890132565624709795092888332340519056712349010019367096470147001547652858351646294414279459308701507903767159196055097998501118683798616987952379780494124230680684277973448474616858043421065445942772794389387821571736393666060309301051475986611982687230446036386141472982985492745980902204336593764901541849621505278590583639674794578316951348871772386883243070940853575150150480709909104195060838596875424577070148879610948896187480688563103510899578696570191839028972520008925041100098805925104513408691706415818412669520102673297664759278829259610600896554401525170491727100403793658728743734792407893748602530907052231692491705686679655178853030510786908793569320580696620521376462188738048952086130713213620436977804439278579694512187305320679902247484314893203959206846772473582829185906894435331648655320059234646343605824271326938160727275335949897813613584420482475238284465958807547125026019043378887094359019540276507561807424290385199337234048485075877708880516929389010592979912470124395867891283347451381089186220762106186786554494763025984311002181800923660268329908637210877774727643688134085616095027113477455535288178767454053466309815565504899866327707952797122883091364161329294855121560499244533433401791817203630865641126653232644284283554908798846394815479346665053578438714366540528265763839773988540648672900641538765959459303311257439889354588088339529486431438169349671711390803178316236369403898603059769077446125259067305138999249615018612332453919751499892749167958054982701737706309704009265141335051006118622629199178900177434098489107672765674634587482088487798151641964384107456653288456038894054781244998805501101564874182886373492580678841711030454882236351869093561915773349930991838308284088844697264476780908468961100225706777551057902811528976063837448968089046114193453739526464729191392880682689891197675137736009991014030232664917652650633053899190757357188446402697838457938780074256670472307498559266707739379202571925518361673969466683032843979328706406734228434786023802002021258498268341855989196140146804449400960921469683479415196300792085404747452524551166850907630944916965229149391852525762217437244055760121297153338226251471592674967163611503238248229337516288656721364756206273214677966854228448320168457399872773744810582323503928578104309844260232144571447178634189344018725773716931486514536447044557706232263763901508631947224843180730776048787610099691382941637309747617014615503008989090494828570614760635218479563389577217682768446537541123644988577452840055812106696900935133875409951070680263968823899217130404009163377552401980966168270245972961928092158291783162488251770684919274824683745062545302774247512842958204326447103899475198451272877373635654074937032369672483420593282491929198197072166520932866679741485982474578067105016569204142073022094868565428316982929718399211452409942737610239852560335756704915569116068127474974876075240354629548390172056935267522855277922737615802614554899056109623056280208789545045176508084422338540820325145717660890509627064440265309786698366649959309868147582226497957053328282848077316140387741348748611131544609195714329021100118004604138218382308653059476001871565416651229440785648226711467693259973430441488537567649309932435240017483340806419600276562626418581914557185077322628682438281645207940896796546555512190463218287987975255518471650897196676492354404129791692218105866313595594508046816275235088762781535952671449387004964119868417205341212656599364911117277346570178306512261876238210048687013375269937997966113762646241570921092709228928567769378502753342737158459598887112658222096621987937847537137951112729571011756676277913498318026558112485813657951880286566597486504511203918859948692025501700079357341039554593820532241425755195977114325296609159180758202703526024122961217301546419840700963655833815084341724454829193970405776803032760071424748147661417280733614523313850549410319355875702582020561269685196817313815715733171459336881687871557106234300566517174188694639300765083729434367657051043544555418364428237445821462471618591800201378408623138232225409654716014995702108741232079337958129926048522634539491026293769766470222840061962725817698409418450080399827534503766760566532036185329848693560250140837393807840569456815878995134622254413537431059752184540933172717133958577205140068246267582701863511413430274620274572122550864823527266120990927068906434149344304348884027373295775994884254390955041437410362841381488879631199025101622797701739509247360182093084296349317107826335898860071469459868736741625283424409421752029844245598903553437522735114449397360593336234617796452133516740370571536661707754303090593647132133840987312326926980198730320044742695396933278050395895608317451617152411768959121951450878158741753215640540928551672290466722447600831071864967179506064844881738501551087102939961219920744021420938820777115872678427431157292528746061564385967732040156074096213546391936840113918496541125966393304325405019526924277396758644945113078620835260682312100372288091354292571762077794158473988952068254369757212744831856437421468967827221762506788717595444874770351246459975008340000909789678124530146795512852586732944698102518475441574328748597420016046563540767777588249083115574360782009000662468775055199403085318410747783575302084312195541459262347643884699108593638517461352913444718558061652583755896979160069390002700498513995534011149199408516829393058128257218622111996120096194187457505746113929308480680679245100130633314677001649704201620679090695026409195477754989742185280627932935988159726869220006059142567082095051090500024211234098447974890612760927062571153909804304408008876379421380295616704022379419542589625911881190154762804463026333112414220948297329605737032216051635360347022189485067314756648982354771588595152011469338265621056856260393848676107066839371693187960961817220137879428772792806182291807597898783444164862173945134277071349014758946413380356495257854207444809506669991314502907812595277177775764940600023888146668574559826023236474029797465197228641097539986731453022225474912924429499044213972162311787741114643491931959685446556176591075199293686099501527227375555780070042136707780956365701801532525015865316369401060570174751530744423812269477778489456478979703372926661266165842410982427287316424742403905936833513564271556722820454239359203243607921733707721491517820550774185176717444800362368475295801163279206458141084022879934689815408401405412126313761828439611887444023295350422541319986594190550496004269161083200100141465679380605076933896289211384478457935153340437818823153211982241970852872145392081139534024930640157544779982800115618197341286447649738307899124276829509966415650858033463438852702891177253985353155906508030286084589624249785922870672500411683034975541400749783580969199206720276346212206111770652571684041503728898786870775897938676029636871459611930539147082823618258759447379045603712971696214848359688550584897644648840836736385863253373236874493834238134432950065264358973529432096584559958796792394486916427651326487005400746063559509101984781994160015633339458591098828495829584460943331681116727365009856964452441466131541753507972506475873401944106904894142416184223188709617536314594166662477158496655961006074573801523713912173140602503009736857580290685907350646895474023879713460168026970165667379805220624823607588014713593319416553449032097545609868487453614362685100413031840905648254122468143407768773583178662781972889241288605679029551452113581710457965136946111603690734951608590072481599640601730970111212605292390186150275473727336553308101143364579197833321030324789025558502183290906368929627972409642558892660252423795969515916210832459716282666903516925481920618456830764249200444124778294906992255929051282105939178828708376759159631244840263955139625729093455919579919628849922950078373309444445161391306832285612031015418013440035524215901897649027928347748069985151541104936427339107445120945262357173965040509857117139998364415055076551021499877601054320760496918321399901175146332715461192471988866159166869872942472692628347333408685291195943023872478953280213037123508031228727592823464854923684380495731219081007266784072974921327241689871143225079616294276441411839262393639677210612931084763037232884342351364599881481326960924474584453412095020046154605737034975926014101390350999314315589521813094246255861792720581972390283891165428605024607501269410301018757564508267986002407046488616359554902646012118529249529780864552932455394677464515035741399893022199286612015888053510356099542680881773755832659324110609735185296979050568790441341745706093700889717268249224975718003564418995163971239096276511460143488194458583233610245039290102821900690466980017791395512949697187226824878458521990453857626898158848981328864006284539371308614890517063427814507028095887405478330726100941655088844553771472938072394495217732461008126517651224815817103732372183554002731848438970810512543548131984370705827778660674652731299749796334055214298289395884116483359551713128159666845829452479965315188379098233695333824772629226148885220986318420068119582007544017019833079781716785869649080015963426249712131612345629816965047198671909489499686413048791019366500524996795627374896228226490232874934197815925969827297156230964200151699110836128749919882392642469475197494914242110907293005431996369608663707938302952603846717669573950739586162821834308784413715795249333245000365991194892363472144007016664621862098658041504412905912247826802848286890544033670791768507570292966786458750144610265581593279866229601569552623135166304227325057037143929131286517207490189494631139231967035277407387874355880053431833941628963059440353506850554933968507564534968565491595827685140307336556043624585082486202316115075339690774729983545418559695163694368040520591584530951116113663822198295797040683910096188438665624503998990695465109536005480185119892955057815006815265921070636049813186203353936753977837277648506767639752240030943205721698360990706573605358320403202982997044677622839459563446269183057169169379624979490993679593828978728280721432335190024426276801436779663359171189384161442737310451037504791889802153508892737522536135361199939014904162934190753088168272841612839622981521006368356030910744143026979074794762399486989542858440034908339232856636421673624564667950057426807643529396171386687799605730194396761658783994236204991351765385750376442580040769012906035012950121672050833360761282464684422825418139272769256847510793853719934573059433399763481274745800102528715162482279448292039312851207880034719231936133189852850500927304440565023583232687913323325117853158404546226401398850416083713454258246551095404868102070812261101108111171026429579118675209871180562379742860841486060387710664571446339889233029020462349293277187000585953277917953906484275898401006370625448981623278644673173572788636645631444380315445392573002527471389769640832187663985125072390180080336173625835034620386254934396071971971579885470395542943682893519125789689171061792233644267833404781818379880198434011968373255935848935126409411686959765665372191233104834765478504443168860710094639021697767602361330574069465251097140971183934148366412993443022333093369251261645373645666631518288591198609512886475009007611042134974007767825312284775036317377503426419052616972964282671839969994327026082672680733864839252784959863899103939324388208639474400350363415868963267427622526492128367168571034882911447178681133416425330019365923091158485414347484927438136995677903492990094306818967315387646358014687249757773842584179207190205553224251548055817999844923447547495361207373515473042952111874010443530837114902771973163847605335747687765072113046189157364116948153134376518150340078078218534775678432932519521669041554261869135287504122278238328926334249902915302021071614857348106428948573832267828299680950471876351077269322002124892411825055625020152586034024629267063768892143461916079622692646193133921540202872883953154419249938195896500559964406952666274588922699099174882480263215202032712925613296869040493658254095301774182228619173810657495619657548251492291859147325465493064894293446480285696253918706190426507036654726546436404686584810814981973360005105657960466608021352462447370915652798359104325597642813098694373874687914460937438933153531040513077731829523168983357587692994070782316905608323923963458084143533470925145555119520827123550876475657942696628285814723278498084415010754809431332857197334125442455388209273326043473983489323308960700569063778464000664119966906570198442767509427446850239199221136527934881392227413631203730217859843354565045497256807340811410306862659416166386410797677893175423877909397888225827412160047575773020660599498290901999933176826452889293657836631862403149575523302460673532068374788452611959205619449983754393844325010163702977367423749575846102502481285979474559646563578890986654178866766021758302619450989570464212822905393567584627767903795228524898046156183806381940286209129751465334105554378240431657439798230411155209762991246401965920303901202909419982889236062839241091178304154206628245388955214634121110166676505823009428799016094748165584889863599990000418178157833319296036221987929880044967270568446851120926303683397452259773332329691384832292478004109340755885076445258115337421534532761344390269055913794285623271579732432786531732741118987693433214412716556564334686531705538208766085753562729787435659329516451274301479062690920074273391288636314123026294138813314106087190769746463229626834059176956304683233006741310909856768485454247200585536006044691447563296406650830555703194411823376449296719890676143791006915875016421016589960729708016946814322146668952090605949936901191641464945597716167273790798066470410442724159509920890423341508975798971416823584163455361136898037467600738510670626728295551341172941136614142881478351276112108148353543633106334290555350612809006555937007177108726254181010056814331610384999699489960888857591598707216472932655122864157097264132022300436173555555516771364239476415799671184001462772609682450191575374534097886533321595768598761366985120322657767615711501755621560686174571051385662070200336920293968254766820595922867588761243990948376874684182738505707290086950719419791106289393692902947022241493690029139301425756659457109034829954915886588697526514717070326076679553146934817982470153441527193786685888537577430688111967983666670644133749558586731617286926960379013221374311426309706376517352276416479526756406181094141689283661865387688099315662968743487089415064862108055239787868010069361780747466422785020749977924244004317535273788367584481532766811610336792713153824265889941946963839341272157988712618822619507403213539628768949954445279911355492508449933158546497036337974929181229023957142133631334960303678199995927150218209073263925377989667419131767767488029555205241346966107141324666738124182254993801764107893191237165331326561531128821077022660246637836045639386638357754368235378053761774100318565756286302737137640786184457513716132879723274193766261058844159513674212085451389724756510023643886361234276937750719468016376734417969497062653332781222021508422521213373298657851549679125064863352195452600255254154865359828328693810328941069390056661266206061907269160219436779799669702328931000348330404456655088788215409485766685179388999630498470324151281047184652421724709724092948707867371889205437845007344185945724602232787224083091169708513846523465276847639797188408184393945020431646970429133567516808815324995941860511976399246552904308580171503220522968434307574083644699369324975645709264887170918176407044765471295689302048999479427763379838321430858937925472305985200917581802065255866664075198962216233740015071963469497286039771721484831138082130168906125537256952990229838012476444338656241042894185964809684104692982890875855386859904746392777303992614802837957248287495285581792272114566600115260346833240731442935246977486750796441575390787672753657433426180635454300142349636689571120769220797749886805548693545803350924922747722858512600275136114930623811231154084885733465057407877835533137616170739065078219642780659874988570711261634056245876304005522841563677461874403746083443037769616237167885290206810382981350398795395780133733724998512169944410602749006820754917271600693522469206493836358117689665113643655611973811659747108159120585231776913275838608058350296951073436979012421955036941509529520596899236961977804934407334655959475499162240180844380167709667478183147597263948332092288361847648621175758163891900483599818286152795495778594635621665696918977369716589571516207848201663236429304381545416126814059379145309156246575963358392597038033374898923690605624081964925030990343404707116448892084836094578753596757251648124502577946671903082465033852683638466635731212688786018851286046660326792805303920633767080339896171546415143479747792451805855318236470538073996215285363841578376330549254142765706783933313152744549414081522308711413649885486887980455662271443496759873283090391373252472782530273478481031360485169843845767441815774783302133762942429994520453888652653900810954311460005383613096348487496102068587515996244970492640504597310947408559098920271284245190778394917451028777875536023869875710283802169972318137860993414610636988574070693924933236465745075855497584916144633659160868706817381922382519961696902669031138765129403572881828770254719512412490516125515518753959552139992235918437487769898436614783733258030662528318372723646830216962651362190139126231198662808328224021987177675035379058055807884320381768565968251771010579577438506075180323273822422291351360525833575857355409516545287986826698732903832998439753499032822724564112164524830503159783667615239559159292470126215038088129129860968191480351268208546549312421355114044299155265663962217107579256646620306965767192032234226182761489616339401153189890820348790652785290335045603690843867651105116716627276441467922794630253335836655776931754895318431594247086737411247343962263188024069337407639586274655218073730828691806760556651288478769979426396466081988650451963785220415405706567312475959840203189406483942860831754585296370093032042811100960161442045209066049829631608294179596291009570917186027973636965482554757005534836985519734998320259419693868312953936290956378109268115979774064485562942666931126846837593513840628588252342920892667441584148162791956511605638362092176246835983295408572637270560502983660975664364330925074360603257584193107871094193708719879477861661743786986258132884561453500937379705654687883623232432627901441058679571221143875092926926405381528032491577807731620417164512509534806505365509926610632135234143092357155362410573735109786467519400998488932161884493395141756107960789002959974529782961286324830615388072211355997063223424746398060622981265770630172356405736035795707216524713466290503480600968760825790054925346668035381270998434431472482760162208365916774072836478284498901571409037111091101653802818893842841965426227532632323186449981908081274058348412291741498803270923438438913706936663099446425826220144517929563976366251729914486612691752132673850408440835572236067666513424327281680560881147472792568575379747428852572182721755115547693741045148062439296720856349326296976995279531606919077598757444417324639596223944137853914898683738663643743980271851357605072338092311707708751277728157326738296407560380039884746962477622523439705989492329500536892101387772307654169848295202186279652190658649323850252987387423395581711367131060474156589865103030970740512764763033128054120151977739767579841799231944434452389951217403201688547712461122983695377121564558525587638487881562313156242743637961090083106739455417571650173582000203405171150208270146610019414686761647986159837323918590112254462192064747988230563490349061436611864597569355713720175688131499865119282461828747370636274827928810073919713135751083289213378371295212074691946596710147236605060575324602308637327280746496775203526499858594470905908341876380227620086482714426303795487383675710193604109934114880867072363705780371281652398755399945939674314081192112332546348444903380130069741720224422493373978449863637953374010674336065518689275653957631958709224355881995670272625733624818668902480241696342197193912803446144421423788985612935862022703234397693966758160756374250907366207961018037165928645973064800460178811408469470300301519298980487413528041464174449624852951089979565611462393269953553847973348281335141369396718560057502765286097302881815951956050940387149830661152342172439401924281736407300648600641279489809348022277476891902292652136859886169855929711695241556806786245204025481930705765414243371184278922309013325440069972303793261972938724551242333612409275070290723960108138621476641567525352127561721120739396100560495016553974757029157352810293067757474840393189732912545633131167347566424888186615219734747822366104123447970040737484736757442534896169577255933195853114017882099935663395882875010233376960575115076415014603658423425404039957354257523946193695527406469507406385799213720682159280242222852371370641361319087674719854961239366188332421288741070790677793875432104880855726850234941368236844910312677378395282993400983701994280880120371629913149792409693139214905207078229704845414178414228083385117167755946541673647355747261738836724692591322129135567423434259892760482276807863388006315531338113593912056964912740618204985889279433874350802388023329653152372955843358161029790905707173148371188028155445517682642646534419776540220841915571831909984902432710300123191053004347145923199986670198955192843165100390947514248672296646229928696088829963258498208668990564391428375294654556845306860997096872836919119445534313928998933271855643904724552931627616865755328081134929948607748004354787344924302625601618530851118786127302338122738846242563150320969946804807219654346862976174574048432949690459394347015089220491637226934635183409468180088355988798631731967171408760878798696663721558227377029465652935007860122776102323163944149171457678782764894861928720802254097800126957153318206334036952966139873348069516464044752254613979535612526325112704645383563544742806377950896430892707016638614113029576383404746972309732926010895602138184810197507957587814222925025142581797230997841905595616523773870771807522284536820283720316836187009198185358367517567622784052210491854695617880901659463523329251949992383943704361097894156111236083546539958639584514557018620252862193988590026702978862460388123236764261619012913405362287970364846623682856807691463750249880035693352339529717334041595484816700302232880833638211140507020636256181821569128089459541907730269449384844571625198808459197741812630183555531412897845659780786773155923486902364498827684573350732108833520279251296491973981815063613744594455019526225159445059897346596130135817322634065013433862139164990152674626224143513035287421507449738330699850173395744574239231628895102937752880276225040650313073001846516217933059434466665149077568907199629138007126322231973747201618407701897407798093272500522492546824574508216028566860531458953139330253038798971234938228685579680896425151443263654494540442679840769432508904772005873531244175412307726836617679966785789582544711539795023744229831634586932794872636507180203828656252163317232969261072019147599850270980089715663790959580457902914326221111243992170143110919988718869258519901275862593568468391874143786472408846782322178795624120343048278744802952170589373148437464680107761065326575211980941589600508073750069362891984462841186219188357889450724633545383178412733152860232841046226765065833350665783832870540981062640648830136616590509396750336838373714000642060793981870278004002111406745057165440590669694863928440544069182694652878056833381484303412673991060605066095172825917440683986658036743946542034428981525986673043672490684419657750523582513503334165992401547023766585148094032528162555947262648290917260569265210907694319077706683219471612616707358532893928897816008913174137341047024205577022075767970806619889804961889029657068969432700699410757631238371615416796473948326147852684391401974951695169868632632001977903580289176395803882195721204161580136409105879826619320879580088642131697778489797331451898034715513709049660150214654054581229556106457951588651968307932528138549487628528436773168118672217276577575337977517814404729642104910668614729410774502259381405615817878853825986714923524654956796217321051777362202908479989910156922173357755813589798423569929971742397533097746215226450448328689824702512142020370688618250390044523315106995804108952140206267809019202162652642549026639785742888022782121059920353508850902089131095837815014342547271276239235111012477827541243156129664803550576805592175295337087644332437073002783453582880286409088841619194210497701710315879495796333989403713624140471698697905792851859747602772488872284602125857634724371902719662421535835605487721801950749701934450020687963130223720854589109950402170638487595157520786448576172945769901934155660165076465047660892696700223737127050371996364071718459079277387339171933217832610799912399381410488558622881426397590144755485086661243211599283790106013295660846849006592654766728504102071458406276668919251480342354168409501167574932440549328739978525765312415853036915411868190063364314722162473692516622808305764494598348786766232530474173339052893210025714321776651073236101605110657396980755206789380541497374505110530313795213470084911008113384447452872329774090409808916609921444556270706588445489699774650632577477759857047299803556435684890168934765088198776440325030999735262379007894265015184946830758840668285515341166872158827715109292093935381810159987947603946323380537143214677301019512642964726523039075715773071577934425467115033411788397212297678804706393871010002315220452801557611535423800982845454361971859894868394748993081731749908631586215861966409651111588470799149025644431883597000964211440960372693294154835277191695371710851353100521009676614398895476263056773950130558686558071825938715088071528155416802850698109358402623767486831021567514625868587586346889944038815986707094980732550772819893629739091393850658358078045126480053301556222899273379588366160370476769981781678900291463536237801420927265454029274963739772854933283366773912959873085131101797438850004585896686979029201223594094108941639550471081616205967386219318806446738654032213488528597297573523105786438548160050123691850897411749373578111070817859122487474110827727479454187561604193051364141760227931863363903967836250564905427654208664048441251767899551939582927774679187138277832528650308074608283173722635381903270683141897376455910581323736768031366764089886387557425461171275503078846891948945232963481083466986838093237056454940592048125551547948484300540395884032920075395194636221372629263776157641151449786814098119733737406273201421737408190810880248023090332823907891610900495589016059509943397514304228346873203308522258653591416743841514297099805681692594424195526748687317197494553705018361523264467817864870785969887192680822631242175412052640950211996443885662716039895868053329724231329610350677261651062619474911355179657144547234403898529138878675036161907727761896068873464615515559375477326603155022886660177364046617401856126603422648520345500177236777212880612770518961335353823994921325495199095728935946818391923130759059830213046984978298909024904767753305701933783413439447434799398087652773639046785974459378472229226029819164785577755179890058999164142076581091658132858480232333675354476426459933741231280043512348728576699407609715203161147052828271421511012562620954750934665078711992830894294103565490447243027251772922351413565658451650850151823291492267552320432695905767977541106747438988896626045962951086639025641377712319454684078173652155386896598907688142765027097292587647145674071587240444999254472562088712316200664569110954099178690279900159346991183216968618852963064819548486844326137275997961900303879376550815842150219850409244296231861514979517662169152770281942299634895879317689951897059380472727461842088181537885608151962137361177843860106747836097519701317886033335527844636766169456048828477455213488796176262074071831977209768648548062072651719157651697981660595408337929121193618726922846687535417559428274666724673726603146655366147097176005748456280088475397253193909964990846642790846746355349663457527498897052417023823100670905638774277830991549555801345223845398190889099257412592636205239350859016557114176741138932705940646214473576021896211504472748966209038698007797278071804773227814784826363129979813210003792865435103139000882139303469033142511897716930896858735108786169159305550264734378171335966374464417237389249599084950543550746653905695472292418710188445621318497696514649838006058597923726890543044550288932022818266666004133668280254691535006330900133384121079407113538268358070464263475809412781726280720870869521571397495111925610502925860202227426114133884862902947987316945187767540611527367262225936304617803512758056143513137547537436652305411880965844526055046845754086768457908376723746312685125164005359044843645357527046325769788785182413445089633533362782615640963944641079689830342498298808057519604549971777414440622822937646907396620803498982273145501417247744449004235608891173157205722010883414817808327598510623545734931677315758341609251817924085485328197891024472087424720834922937249706407306521990731889495694825362074242754578785663544339616583330452811343795998679186516553782122415412853435202200339240205622306093080496167921321585601810718066619467954944303562636913812262070361532860091208649695007200101734774181440069943699330683751063617324608161009740198261147487505847173109042377339485376782085734167553953240879446692309308156691465516824314367100872815955344987090933594191061614363276351529934548168362406328639741158818603963730902481784149812566424018575903651265023546740344629601655922284446058061299915360886298382783392895420822570076044211360812165829217418678255650991256497970389046784274618573273850888528606409562512571551618678199343964659846944280322741575900517687306757390350758474925746558039124371713323370515011866386351166692040071950676599912787633727743561695719037654863786710281112565427106022983783718471097174467718540204284407404197803492524767914613613025247335052256984083094517070383403869933113875276670284169694583343837557930138234296662542787867840488527745895061125304721410965789144104857762800972051692800412436883484581521663517474843912950931823446004900553755529722399079223906316295796774149773123676435935304283619385678294138961910815738432908043890188115680571437852399120007444024463243134530788819373575052426030175654742942325879557212387159945096931060282271147935410976232277161462989264880510995462227524047584552523935060848762949409067971257926193679219778361041938483408133802232363307007896957598040875520866995220962890536806043900576538064774258354857923035157352889362295868629631267773794702848872421546734108386640200747828575455827178200529395717184257120486564875084484494449136866548352659553787753019534340865434535548472197192241979312430573292859919082733422104239116842199074264556623172796983551560902596941605021722578623361437053289251680807555965590552694934103337998789862658057995923506393661342516516174471267586410620280168293498585517858463618447691272915514531982193652341280065554621057330391288239791462138234040064702468856598349309106652630735107660630562273917046160404576237304093885657559743597328415995851475286411967203133527126590289931571565112423817189380649859437950843112532610336447513293617392871427429720701061430842331132381990942686204994902164121026366809151268390400745725462375751646521617076253415578846959293210666791127245443482569090660648126834857606819160766713832337193535895775493490716438779413883232966462424644455718460990806162367182747745092864973853730833737403020090097246061980975080650335405401810899803441027640534158486037418661511048607515249080091241267830551385366030800298552300262445106619539883092102939001487310807479339570436236266640495262026810030380453329745009613443341768300648367614099511252838577659294677677210199144240848990940184577160169538135282426866535939297970051252181964487067175257161422089013269812978683501565038522478459866831764154660433913398821905610778912000316532992799345525794143357180182080987377069463956553172903655667061744069482464669122648737700014344556073908518445074724783412608040496762646037285311477413955904295988251423704862613502174068365351848030720218052988833000935961144573024949586472273677512135779734500501234660334444870961639888809731652805579119205649004206143359095651581906617724990742524276650299686329767974996975805097265560406813877694551106079232938995514174105542986908885502635888595223231164813879723015183291967701464702399256398520806890495910434339501833669793250355121455904541630002086717552838032817180643469859812413127026870179451593570387427733325843177368528018764864427355990246450437839264316154971144420678761429064309117563094440429783864723056153858691230479349260054592430239435494037682019806342711873836637683839715044119669949263427467897205187881038014122295867882926075247078758147055802766893107303781895750561689346066061862670783291663055277415694485870355118297110777389243954756026188558771415323492887657759713843906610200997466288335739822621091465144122857572643050856802689309572723755288018437666722569948262037261770486729571956835315504858165111135009139914382997336546141971531603712596267666636015882320196795239825627378650546977979338117242196244949153988569495487988744351720856415180244160705905173431159396250767384050818453728966616684294529119600269169139567306246270028272677458232712920104275014971933438668902292128289187968156982761739515922995742095004185648812505621740929955498962696732718716345159303335494609269965864966345717191219367586428493866425194260892520908175241065124530053493701437152220348243063013436720453286221048726124118538569220180326268310058619290890620847063996528013261758510969265400745267901225031208318619158342618754432137550574689761368075899389591607062464257617868312157121891068595547386687550003691706336570217950731707454925471281710379620897746870999241340335584726703646494850255639392755364682328555814876489957648136623468571755940967634626121341477998182482257033441424752891254645474698045251475680501061304256947466921610427676819992389046797334108055640515298348258011897548686878185225880620174568360429389523955787979000125314421525807412256658299937358107953555242010807079158095453177774479506557133550378987296551422667086284859677736706764798644618476702972829702966315070644674999950420824142820105255672834128191090588070105662045964759202304757314962826410257544557305049659797970519965391040691626948017201993323576794753245396763325899075957651410433362525020593396285676920879574896263251230278762377858225324038779044924971835132583434370900129403366710271570137125058893132523526587572071972942272994072538918352035606136781424275682725385165959201500495845487360722489141663827387773098076891806927480751314551535079483067455829530017959633722226063156034236511505903089539831990687190130601738700236529968153251528539162230984716338659177299107358975725682720990844066229852866493276146067503532420909089968570120538187929968366368133434213218481088096934147843124433474937180810679885678883590878719879419407614699072611075386594080861101777234537659919739257535446968100197972865094000054923800407493451425258380377909479133732281822511411914151031342840049759333928179270033703432235744069748324657880438648811767434896309035916041254501400746855196061199364806563698915292403517352138040595297062639827885005886156038317241780130847354918965882270585991961387360879491246445871138033771320069216885973928362459000976537713551418666107584286761232205065786821026092649774155113423332139056692360958176684075955477887232459812315448759025405701231208619834742893439019454888076277215450574875971026698191938299350903811282998804849479895276707771316126425554000091291514651465866519490221784675686802717257612525168731742994688333601674950775318727388316562287102532075273794064314880473950277372215816632866548282744893759427817031515042448699865067778326684025906764923448784103154780315849675029738528846336540746263766936886119625888355860788603982029898282025043768964644851991374192684167485380052465488671851597463451647987839688320217810243398704471276415530389054452108014735100369189394611504253305281338850988878499235979694946125102790884714546016559472772807757541287020115626808742322826655745601253323627515013870221660062960483332679248514630894411249062753374454550949838821148211375418137995375237018565657729499414026917494192158137214094230582931519226786482321561539951888471299565989863743894583191469106774278722054297588068488019902082464335619356246590492483959523358364860176054699769974001195186966070972906345443733635652893851087506368950725193995629477591605283375517511927922314934925933337791858246037931949898577644517719252036490310075101649116746926303644173938968523340991593825271802273455255454957997204829417215044532014593556383765021915193749121568328490543627971226208954924379559533336108710198536015622594690478097017956699184859421312754572940407057291510623836804482145673214809059131585690204618116553723433686392163259963225743732931798963561797521254436762088836572566455000232713439391544853785612853209824607832079866994411772647041992484328704624217499732152853390298061319859829280960306794567638117372440634755179343472371684812274051169064311704460190347943935736723064543791401117272261338305357921017914438407236972920568063485963867672750000953456857441972917346183882454045966559513669672637964594706811522443280255392945870221866976063996376043017745592027774947366203500879882435064234973716648665764876287942225224049369030667187923708103541711897817745961235556383507874026773478691575681230944514268289778694838305282671595257060750488679493745058697655513088829043166890365097313124692613670822898575996616505174769011571655930967758521387986333437366503753384028003001230326937624951905270097220164023660528447208664846951703749859401850703702633091035430856756789239333448199008913386866928799710713680195379541774710187505019754134872248733346645260354618702561426152337999706094753562617097780802171438893680073167127185854553731729694277686114639170181331575239455407798897089674503685501070498062512598399355693886177293889622467114653984766190441314187370209166156305813363226619023679092313066374027905899389026516481234130688225734291723475422431019755757706827300832715712222935467315941810707765254144202300596838628121953434377734220870120807796396941497640507266457607637036961219414355726038439757012080845994804477435575211618807521847790371122474226604064823877462219991934915810765312755118230418871209516967194802983581366749453979000867070050096443053464899064155964644837172431691838418857979300148644481847411728613502630275386709717015651956181071458573923826065031715528298397227899652283699874369737140958100132782994754166938736349019003913427959449008177127182546734409829850683290378602632419846467881713513317887846578068722018891790774525354424607714461400005220731822198609789415985988346499147952116395966242471894002919998132871420875098252286406914411268148110978563615286705503174499632902531963143481930992220207652721254701417909573757076380644530241026151246248968703094082790149686218196652731085798263804907293036061346016559541311745723428814244769650626775447349099606270844850866264770267773791192359313091178069545621678869209607670263918871226606509964536596785553779704137182584157354092115825648368056725958478217393123324009341031995864742896075791644341390208591344687577992673508208399684573971404832573378523714605794746068451216085508908924643363281934035024370822163665987185926998620354594716249156112323679961694332158189284507059789929829064348687254948366392422936552991343848624664160975315515203787946053456940710517359645338315364750986866848247902749948004893020452543672083428279319509650467017066760917991446517073680524212917373757443383377113771915808760823458402058276248478223152372124470957269523932036879727361040678801713032261197906642341648230563749577933278206341678410605714567939025883671207795199908350181114059489980855568793702619038271393186242547261426688332760828605096271734836950433371066226294431162267018209199805140819718577027614398145830718831278498696406871880613832280077915120684842623061689622546539441833148551852946461843599366817574654370897670166170427213479248751818150150883248704432440483818297494335234787263057376611844020256667833189962960681030049421952878494905178401554809518605866601685209759060727058595191971389950099816124564309037102886907053150729557877000734427349417377468423426848885540312133770062404830501411431552169509579454207765788870367686654494774321222947238512849745372772414904447557898975223075438656427387025892235866929309206071794719588734373492279976343756536951027766866453925116905876869770411649601655696470189939502140478730544445977548965746587017529796151479011916256602646015561907888736979519433692454136812788888227593483101321824588155860885004648228621448608433616653692979673330889863245069416368794442932444892378035859438293434956106329336461721682024712883204902285335632661934233749582384051285317250218879821359439615979506777407206971354418749897233164514521551835915685909191772590476600322700669570359089848390219766177716292044059059655633511074762372357457381684200565647429366236952081007732488331781549717131105236688452862876558123958770588407629704666548239695443376210757448891633218842401123942252394829070564633466879499878202372428555989007358737848405071447796029228771774831442791249246996556133795396027556875319815721958372558088182883552900481198868146788625314339293388423209297427109663222503749380648721741057938829661958539920204639336228431342794114232434508719168950585153542318867335007011340817224368890231080823101009351865395484446602240491476148145848732555564256689783582970236130298178409977469468822908437642573330574124784463816574285118976578420393178227880825941025732991048008782082239151962074508705411866131518262866627223760696000052613190288234197166632819110740749618920556113671831954801262919478778300075800783006629555992518171794391684220357005582273916667833004285291206307101723795136678059659093954273766835032246703282734913756830153558970763170442734660885646044769491280628501414985246473177259931224911430851574957084599128820305258159665483008233279963071899668772107987260310327208966736077694152330958709470339702889035046837881569841945933108959522038294667493362900517164493537378368793337371305790453903406056173337929208753588418484940264682943335115739666690100393281242903610406407081462707351353884031518733303123815343590236069563149599462558874687047101802406005561150136652748561525762329283401449705735483860254949621583668158016760376452104778155168290545627491464072046425767482337133488643934603409446066820919438519892967956359993182850982962046347228087598761712597903264611991033753421455618183048102252845967016685522620963202598917751711997189661439707719307993793313414537615795081449604531576616314598245505189044692150195862891412886913492601461175012559657408714335959452945443143915627368800071052254860817154504065718979025840252030713426535056914223808355104266434735419833222233577621293647421450579713982692478772658903375658925715078801485606963874256088643238799194755124575867780865058424572966862472825562446734864219315753497277022496772249044317540199331685297201021884362544116096754912918020118056497631917520736682382346366598293436277682746721832161881714466274667733671308241439467086991665044377936065828981821320222386081558363367025099707675223262836260031047411152707338802779293879823782452811652259152893509136300373476421930641825281333719147073769281437377591593392169356576312049383856351251498263492345528184681977374468697421041738788507144610275756464552268077462963205634617032875269538700443671143488564190419375000770082590329826721753800634036387796664493786329456222708026221498265624989388046466234057325993721173548062315898297938453236070966738723577804358203708141648285118759710067922881185935534571174853880266421212096168236706058905683877070073997009461140607584592580348537185323663955768562791413580931901636994236068576193496407236895589288879332972293977134481180382900437157820206659769917048004914676917343606010572267816858868582773661142527168730749655293754657303832449168526930656685178922341248298491123671447664371855540338336816176885023441736599628300317029035201781904666189876805560652276409261337999944782860878803952429713692475642763299001716227535255238282472899016849184062157305852553845269089056741658902884549149061523966577654796801573466004317625462180497363695750924685770398957713885185136717434964489768595013883467927070558627698434383655522077865025459952069577667659208062914753787375883273635432637592150682221285857377530357250992101681986511837467778663829077819755044389369531260370680039938170074871273822165046794417140869800983670767599855592877935422634788377909111608704804460848444760841026325724879635222982538005135308351720541679194703870457811709349396316970835171400497586854557088195226301445520401363395501178990841941207924629135599360114571167868896287517019141330984001049863397034788106074479806407393538755477341482363688381770488280994438599825736239425935188736914950038985171031151861363315390778295824185106518834452217387823872776159562681677622399729085424531149457851726586979922617893927545975335589122282074556011292379294917917996095090003426398999533035243150151265481764549092441933407430249391622355589935760294602031397336021567205935038882450584938449208630258871936115784310182236464824468841782302261408662960934288140929545207351884228236196882096044091461088462399756995052094291863776440692867709596805554287507935226958531920254732234478593403256771369465088974387489739243194057510866065002542460028103073535379142110925287292364685079264134211610977575108844608577501771689637379903846397477476204975913974679071499339677693961876627350896619693619150257595432937343249957792454516585819518471071125886966233070432237957810332186689689680544164163277012941379071208185096546564981054574198195126776484394706122449535813891451131053040624667130742589073156256094495217959791165748645686677622827336162847674338056134133166929162683573625009104911061063002408886394009498213593116627884405458211058303832957902917064536403131057668647254760066783847532844655153977676073562058580711224494958698477829212181124818646461594961446926857869682524620286799993950499461529155656563948557799213495036965805934094555657066754315935841265823493283655404497905018965048087858244878298838799244545331655524055829874191103266826140098381760622870669647106154740288144454625812816461964648874139646037956084253206073822133658716561368544443718856730014988352901950122404761448043845910495183268440514147430953025618607519797659844216811023836799974754263748418214932528498479814165089454845915414986196540861646143698091424685936692859909355062968189560218657420108626396747234340656593577332549939250776195620691339765773826847153574704236440810922521508874676311495197239736721010444834614860273345211688305255163872746512737556330421119719467079749331767286784070526664402258316482413660802404279868606358735274316730744810166405121735112200174913622953193219889673429024586379693958856770412923426384172565616417627777190716797623211901187348595904637531546159489592866161594649999806400741484651752412923880365332211070258457292033571080912853251982620160365973405475845776794898910828977473017315184580839024879611543856614235791463127165362427888550488552255322935351865927574807903839641886827167877684034225196759321155915273717991095777619389804570924806173796343887072333037125725778682681716091299986465314963741781204294052773153743935482602867825449479898246224576482188421752447627442360164732936501585801742177520140975142091638352169755294030816062028438844153068266220771638015750107395347104973951486502729957298091033683136090067342349793030800290801768708470361374641080422416633573527492156018898925001353240021145649632861178163263889322651484596983434964326715189913197226239739173274667231002815028020607565446842628729473745418387959135503109423731919634747851077452479107541154343723111683546342570284241774863746341256581427920053038962494898675575171097178645610544272196711672403244813524948181551006546324963227371546492843087213960441987081405747701894833703845632560670008348818168950241013598728002889951127852269624333247029978408989640796106104680234515927370997566559715366624226257031847796215654475133500849218371431627083573441550613817696461107884826590313656956884448399876027504146309764608961702223730769414482909220373161425580724404129842609691572099272664077837674636788328421598554322458407837842291346838928248174865659702764859291003878868253640339015771940797529927929012502617575207104483227058288982438257427050065489302110875094048619228459915282981913564528453898729956621518697358743992556602276005105236436369015890394825303578209543207631640184071973866158511540069810266430870929881275275775180407060614416793151312919094324661841997993702191019000527608936036453901048593811635810146832154811901527576912154698164195353891362587577216441816690087650135703775261325590486375122264936196335635727931886134537135185955837732737302702871672036803953706499601045816049181876189630184398581401848509462396040769698862014715001039263734699572364541921636537823654728260227128213607595349107297121476372250192523868198758089256257687671304160712852869308661234437554562069655477967119500646906948342153884911118775276876341289592783644360973410606462800559172764944115864896839269628771742125318517100501905013755825643341224474694863319337745381521230085920733455260859416312572273691361572206856264334657484651270511227465714684286608494787585567096030347899318760225764210644217928240299455888157570531038745949765921477029641692840467896914332228814778506575640503644619400357894710802578871618866481189257467305433509870229003348281425273232010847561563723307566585505069833173640195427436121799700421758413831169835143656021803871980240913322064392083804655251848772583830103689119814743285375884642895052239503860769022627346786380607816130366177897864733478964295791296337551127646556521940785703784805383883558522757361962353537154728810602524189149588215138580860035422441212371542261723172054849988452116497254489304633962956483939975567954787722275139116353150667078792221914250951980435795574826237716443752299190282747325206452925212993435605921407874277236331086173697483419937712541267441818726193142025733634344851861158552317710355479995535260473803566942880811340411093844740540876693994636323062149243016602537525521346876473244939059576425896428916141243365862036890380100496098860136485371051087119424688305411295932739279940779356315979595196218590021354928606180315739452104280378001735479651439747397850507247240029441746498989499739799695103538059780934491172947224577056013440671111234627706762224947251083602260576769819097963980215305882006829678497895636547838613890122278397225063396681590756307857475229580071660040550317044353395990903231921972188987856792450471449348616089304354814350885873279923843767599706944987704155445129301936977450591757516001379319612883625803060480801135670996070347468059804065529830083717946407813137579199732557352384854252074720065031762885303125965362924961594944337719741128832498230139256564075391272558061390679888449756622829665930543507872574581305982375223610870846858191221079697925997141954234016847520166873838537106595828191913659349739953717158610667794456111593269161205373235794910176735872612163970576979431316892343661986542986901125387165973400434131575201328915209125335628093103063390080760990424789695543889473128867157372932411611663109089580868294144634226435635125699438808649705999439584900403219585218552225839105789275661886205256114467775127024137048998504618944521727392695569483177682122020234938178296264874323788302887167147342907612790108904825864857064851813761030275816219509315943898168968998134807710952997875050992659672219128804301420843759630042963444759519512262441614795271829083430033542031430541249479038768375726528722576885767524192453470817453797631147659791444291033623613560900954111135845721987355680200954843073132975868354830346332422364065243652570473750020677227262509306429266242391432214537594688480438466711678841892866639531058343072664193884359462221750712886865163004126918045522419383741882883946312332484518017264715148128397373684125648193663928625663143615197917531656776029838322306980664169241888856406875833064356156743691145514256839221902436259791019282657398148228358983502983193658133699456306380591422243450766824314116002834536749266803388937821291754313468854524440548727216040890389748673751827320941912101937941090743289996069649830020937603544055643437259554203260552401673473113256256568733218500865438075174855912449402608677677806279421800948462724152028212838845609176027237573686277207969401104827800078359827104121755869215430112849378883746455310019960774612238764715083918871910085508000761246958645526810011608200930539499283293216261893337188350398869989444197111261052194288935524927823055499449280540648578136756182984155671954885788052056980743655013001520390968586814152502965007641367277877670004697047550550577061707494591189984567385834145129727828838048536983653733674953298163537518291542546168546150427080734755608735068811060033895624148964597114562878961777460985899428014499579277644793624289749141482331123123480606649400072898213594826666305583547997831285701142591036211516393456690288387184153821361897205425264732742577953501466563043515918829824248015113918213667289718428079755660496898503415288516034850737208940982371128621850768732093965537661457956815138690005678496020077047572677513554732619183025574085134099047348274143664363781773573333549819634513809698292521637158447443461903260401791751147659785915230624120302036887892307806324397760555410641330344007843809217853233804562608722155250239056466299630412409750071964286533955898149821739269647356696552533278100304352253662998563618356016392483572847997677203416367755136017353168567522401915083775739898910834261761413659720968512499451834812442920221782737508361572971953214273984922861227321655042843804656682666265309310580455766022137511061472649335818896045815727218701203721823591288113981905330797881453222693748016266957662527592250040158232578966738035080207832005181013372414101631717871459902522520720093641562589753579065753266247593653522194163684160541926357516513868144097393527122563025970141697216533688124996859535653162981534685129594645869832192139585176403795869971139841126999542722265922627045196868097651795132087611705882072373954049730329983840332691272303378277281109260484836139044561724067211061631606622054261978062071174728135352623756018361154876244033272470261794736874351059381015910486345429618838491851792319070675028893459486067221799824735563534765214432370789483811401128346890083426585823788058512720137137206752577690984078189571061894393462165196924508731565273159612901527768152325931085978071939929288078182769572888791734774457072520903418982431152721927182376182885367745528989391656825941165602667205523865790720522846324949643675157490705352788066198121599708594411940207748874897311676276759013834268781042652675122970704346259853022041562191803373659058983621363141111162866287198919620544243155899429039242534603621537798983036250911535729575772201559306633478985560421869643720249809290771047840164394378620173406879025604052533524353908203746316884139228723326347405109891097934075212506192162458154370609881186591131827910932792608297206516842992591280102108853244653689014488217726840694360287453553423162656814132271288530526135237545579025220580056356937057482364338412579138979812182406126978752986613283696902159629150001218775245056445930061358108310967219182689395131862113112852688998249079428642442756593191028447154873893534149873064500782431795560924375501619016944764005053640590539034294003892181045157922050401255032258844302611482945666979796299406624848294553312350062146302962048078125819324593189723831519073536283023895444025340958592956633631343696520069796658333985153617760245564679068937344783145578735692060593501903970661918120011080387747802374911610465470542438035017636579313445385213112449527277060077966803211515313503301509015144578624671484725450523293306032448361790936964021741586288034961924888475424102385882709700704241012339298986238060812874871111825452298270990488749741206288673389265494608049426790855603968805607462995850238668457628872956095186419202571825706225418463742141604158709781615679423111537850791443031983456389367153882867098500090867607804743361673677101074157974620910290589454133700759698826667892921470237266187446255069943893388101256712635868860713552783767013420469285781230470659112292207378025858525551586945185649668466709400343348016966756467688385770444864081930438825523574024517132703337115987878345331545833294114776090961562813402068318237416937140354206477322225676163220786980041506484617462721640088524323778482126558295747020029921667911399780026066489695983723397737142291600288094963086235700450962374368511486711458928908300083687578481810843847421405149581735953426557051040916202117753899844197962071137206304512420826308111428745156930619624516276924436060385993875702818596712515003011307840525805109237611838750337211807812862718973104966179335550645984659144355577979574508269938681023849782918290179425166474561296786405246768820170937106422354397110322034114805290884309769611403644106365218993521038710268131011790453290018079682189990613995739868327739226724737427107201040750271147389751912936161424731612712572749628506367616036653898828888406368244404089843682334499860731247415739158676078061264487027614028201042095971511676832503958166746663562443911654812480738134229084706561175304393615838669973611881028955892118003348881971625278830871693720000729718654659388999083277376973116520708937492706785607051665186311492918546945733814704133210356249603327240266715463693780817237301477908113120253978979881387244606629988750878835545854763412964724043768090006284677020290662037400019860031910652036845828163656329910249740829217407560068308312948029375378429870573012690111841106499299027383641573588791034275277748296326029577974037982223966677470838321865454056202202215404461528565824035924327665623541701392576046180817046989849095479181432867234853818326828027502305307763223227301405246147319185266942684086630634276043739535715535154456204459640945885069397692826409428395482092149018665269177033567107575726357238198432858892780964363581990252534624409127400293114785195120702096244374836612790444025394402732056912990223218968345779693911998631205967850189326365086018007349191122704163633116168614356803097428867559260171222231462835867906727835003341417449873255862359604551536873786539926223186532479704432949082983154852513459786226849088652707257762052633879944051223245834758803001140154890361608561018595532620478172541125818740988665383489802567533554913527561666196196156133123590143766790938651866309489429190309316288567707372091227220373486386426399531471926992444643223122835384261964819299720606939780682038954111997784935172412337932574162502342392113162386184414473627377830877096280240963618285073226751374434851779963525281479531076699085273255816977637256334136529813667676925918005896036035204870855750647729789281437996788176672560539491281454542599336505517537070504231592085951966190738926619768861858727544295949458214881008362196686026241287608774610980712935095199568838337873282434736706286774095141212966850405869094443152963758788023194657059493440945747899676633081407032608290892366480966603816977242188911586002109857428694404644030387833881398924297388816260435039621575575755435408211632913274021207479227584545933681986043027937157148572523250532287377088494925029533815647978223143356251151816910126051754308579112925726213358447792279935638365952922510022276029082046166716918939141525510317987529047567735905122889939453428925641957056838618681365285051964692943677952992955514491735789400183157032971716297325911720778385051642969834509651710956398798600029816006482722983964118298097438643006867424865351880075536387882256977770054676262843527105581529091467604832200267494440446249281980624293579623196108925718170873253066379287634212352315781424533406306076990583292569621682404803453046652754938161679113439336750448190224403944342805953889752766897007019001286024577835742750707442012549541935011686787003686496905034517755631440990700466195737792991009432040526589593990851468167060541522294087172351213095879488698956587563224065644147871431093895805997028706098016828428414042861734112654567843204973022934179767385881710473244998583126026527141112026054297985352557774893921421962468941306647032716587125372440960292839055044536856787439709776751957323424244466993070107579597191271996976186143485284068747330888249978989328097911850710239465573079192992849512687733970073883145214845567908252113930131744657649756115177642695692609795536545883044264731435556302705180044029738317200488109539903313816344368030538387220037639414471573944802460936580189144264107478805291900244616771124890957972076325220176036189522489485044402641203724604202039783327584394061973988240923497921743192919400283921301079678259104332153826856175243440237999201272207824771836475515097326539115569362410978716019366429746397062689153188513859580864922426977452283924910315949281189524342714881359034973982102078104422571989787720836174378720856008988860746285798906064988008021667095818953205026348462866430838501479595145221390852550231016771373782565054263062206715384474139732464842143039875497289946609862597002606259859287737576152146731137091452802295498175539878091021599166081912237408632207378015662366692035865875028796824641618549802680385422128304269346958711543510145909259961540900014534270441878026992929486112105010568762386861085841248832164360110682977374692002154652130227111418456260946329974592945204794361735446661115717568378179176848017695767152281721709523465324255816872855941920880946642679721509619566686807964688566699747000313309321748866873142767435631571590185108954897030560665529870593962480436236755869169721415449628777215946397289293895840980280903390907827428722660903843941057513820577101179939037315561078604426356319598343283893671345467339573317209454812663173369351396471214761777156144308620140582051327822660237572970845898271196186280631372263652393275461427660560913331328177970497530201252873728723408947341325586913672786218482791816376586604619524025542595723584337233366700645311274663874103065091149380499464255108884371361981091712331270976691195597862224557686251661450803645226303472812310593767212599943650882293479657181890466344971206814663239894900644902247426081231764835695167347683052572904831945822682736646044300266584342748975877590069953099153947081457720009506206836002721954416889955784637340923259577862722479669112680499946949541425121649728186694496963240628038427083377070554673650249473787372677975079134225779447004682941274240215079144956665465638241015245933481984705372857324481171295326030807367997874434458584047981826764839887829167020645596840842570121206604410805680898614363190885258406036597989666875595855699432611904917871215325360624641224063060219084728012559077828716819875983243138388930393181630390924374773487311070253299520861996658673847641399655416543853430092374720043661660964644991161098002466199299455909795719153752232314267923980380016772360532264334192114735563072959578185502211244822213137972244011802126816994401736014741425130669533184468015634858730202754043189523618353569663005898186103035633545453519615829100659002193080129012238806874159433415076368279231952550718513021227199409292703572666468439277545314969382572111043224249751655449218955252871550959890329613753282547449904921401439011269292702421583136907443664289072303683799498749224486484450703596469193176902427964330466112742853685880137399481899633482146106399892198372107530953351435644985195242391806070396110602390845282985695792615631232762088298669818527642619478894532220023868777754438694566801287441491132036015341682708233007951653842722428509870667352195401984368328477363522761505650812354247937373459862961877212194189265603962871266142323486288152727775923902491666670717927354998093752346448535316198967262491461297127088802230863517776325476784975041337905422521468197755472759842071802350947976240221573281748973335332383679629534256528651388789646710408917789483481301768703483004561273363937248075772270398294146726598261289073328983849687834545484879213263645955351421728994506630528216719768945274933128343247251679136601093715399139166467091784916107128634615241484126102067365771158908852595861619586287030685420135584082385865969136168259659767811782094924875868447377777943427771053997468970299587836201245527970076959617519985780472094855375016682031378430775863819543499161043820463449620667278567672627999730188299897045633756057643484609974054406048575096712532518213932920065648720529913060511648363746027266293334311622080566438932556485836946766495722914495648280074940114252598612258829501937528241001970155470051628829888950538910879891597479218054969964245836763815759737420722645446657735638877006185530906585981119931345358339057280819330643548486593024806318979835158412058380107511344211514792855239022305532765157153825542867414260475849347071314321003991145989321354012595618138209189296081554940796428137283801607346707564973851083883469697594183046291216505173806488169354831162964288195256531044217313715298170727743148321620025440468937755873911960120905401410351939972484735821020378798685939374018014602858326549000235822241339098246423825285031190403029197512446065661619798634058864353520789768166910717776074413877358849973094780727724639916266753760218195066662848838190827646393952368736786352530993153517937350728052539006004635552793625561792375718404751268487143432931073169390485970148582678437130676324096863892808926105471626102551016574035141812195320896117965544375555786960918165654903701307388769882754780278217014218158051265114393221432963136453161400997808327317827051908538772646476191812875336738346644912670198066178605959321022291377946797708534816507106015416965893030882862252655164299905469418311396344956138915649133385147285981656790714806996647258957451178469424194978947855673645013418532061581316601006543278092994190755522147378239291179973238137822914291326955756826722005759089895855290277047893880902671397295122013876284288983004857710612100069142436552095206273895680602276905868178601179367866841029818339387980076242610333170994487547924334103677693716918827632112629571682663299632040773103457773078227066996530938072321873736898751866028469605026399466233849601443554627684783661453416853893129080776317342823225811219582676874257559173998818953444638842071547193075517916212880540876291586991467338824996737735294174222036678900160532281280457511841085975233848645400176328954551029361991561530604364666768750869413315746224460561733330132373002294471433967181025167010726941736793259848900284571757016331544916539972227858868290682449899499192484901884478340885631011203885946062082523840290277801966954025541969768905642290671933358927558436822640255017358988858463755607117738059636146024996571849647434074795326060350390722226783451885016415142151809072292093590040409460732767355712186202237376789055950077650019510818772756417272197264497849837434821975253527683807985131727210569132425877851268501810899877478899279508898201711377167124941178409876656857802867717360758775788889964980025468884335476774323776604869960082305016078391096982599820827355843584080872206078490108540449989969383962905243338524062208157743008950166734642801491010661513733271848967497851090760282862140533380267264922754480016649356243894741365442681292630903428091429263934464202165570484318001994299540411008339203826469662671408774687230389849023334145404619862568538645975970333826426987893780572897446214070870112482743804809147654429621172908042852830019943728160822410422106261059817319992779786187389606565933789869363123696500773323179005228702116353861692504105818293316992888649811428372983938522390417807856984921243804026046390530864520281353249688227776251595694935116056654086658076869596542644643880746062701964011582117160176743412399719543909295791768629474123666518260298303974780083911781223462544650924462241820499557817315151836278067225851195218162705896846284399531264702718677832609559176385011732857126472943939021012596607810532567075883488594501408148822074753754307457582819330486596579461028988823350496788407168146805617852303442717335584340413699756804465004074010844988631310350731369976153477632018738812918703165332778418087293646183405946618796167296760722538238760937682373255297677395801239119872288811120618650319483015234543768842332341891549148103164477973053313270278157870883320597742324219625294341215323660985600562561573186261921726542469829944196734161634366733440638818002875306043913699721136098738519248532453878138716870812241336050344496890355631510370703186903011658359704055415225164944765991479308834509269043050986626099356816602368679157366136176670887541839006165000178117653971598642964115497297938002191657242306982276435621208606929800565745160214895421149013555981806490659297018550022986988290283712834873334148016803919235082729665994237226394494636246384095574284644238925600479097826090059270606726092488762964242861012224432096544259602709830323328711433027036385860976460724753290472438994119596285293341631671330255451985046403384450903466963532258102520426351049202180421163252279791368679565699428402011272939976190841041115053563861221074514395115620490982445880265604502814516946361991425257367639039589280808676992799822072300532051904675971429223860645269414537633735933549048415910993238821893187278718196314986830261530390874258078533192231831396935502088045980685576301795096342062891317005987175676636444415756969539628909761907835426208671425212155444656412193619400967710645072703185947858553001916290523339184386007162265415443535260601696570408964913728237892301651973495799461906974210409262302522786272912807607882211484110672744507481302177734411764903232665704493714167173437978222455526861904140655712289560619096424798881394088514661069342273888539530374196925890256282174266122374278299509066837349927566979286796920602838459840604568731826780307505917141949798161791276928387224166537834367897029685484943059227698347158526888023479932625353313988929974912133179072926590164409979198574926869261405164715377622327586299365264171824572174728174307818623421772245645920228082408488317394695139183435336364483711262415121177462946818237276688723916650290216286807515916707900230404848835497663867882900825794586598726458311841424098302061690000250825203795627654734251001418503654724940349264489982379274320530162162646189985231957248993463467267910872001999516219248383721672819568377525754902533076355480254036811685439877942853256364110324966262789251571765786170112406276707160401074651348394041886885231650665628464820089469363810665591435845955784404584098582377160228793390894874332760490831818610138405831283179953833850910661025465100284789410821185581216661724536773370089310515745193247190362109294739876773143672943521764222742817781457424595338081874667042847846346624774708904012666975431329781662521975378438040306440155486835100815929404130110967333489645362215024640397552128102180477504592316225388768161846799833686447326100713482134179234132381289697197825710748182976839169025868046942536360276935495309453015388351485093482765331853914633533083342101020910859150298210123234651378119391180308286019542512173343325403663220182686724137652633355894130775461950174666700243376302160138419887172621713299520702963742736903166987407195125108430916533904241765444962742611894232951137427844406929888128174752547873531401206259219281652506264550918890426267349209157189589539271383341126973522949335958098868924297999012293851328216849331941270180880729781698966343611643953296759634757322966049961634519725434979764782589076369881442652773220604422188183342063895480573448358827892035373838600923808638561279244307396776312217234746068449419669799376257899784462532502844426515262898303290828377414245514338201766097540723519222520581811134112981793785142391384102358981561145143563105375025443195857639910228634072321034856698758745178299662863946872764918318812878735458582839421434997397497074593764435199994342600186267038597207894757915196343997900579468516197489723700727138671323607947421754462216261077139864137901760998689333850112965410924619874612685917007942465491989387723520493536352129992790923240037723974987162411312816302583100675357723227481362520034936878716597875252211381655369636279531030117825000030927495187192901951841182036034333258441184289339350725594872010664685850271372538901119921781364986588972126633386434750594954944275667481173513240521006952658986151145730936835651697842619674266363198590731638471633681704608939486709176955900397487329091525528364305241205586144206854822844890241951433257682407210830962753866435805500668616212821928573864263099581865123817446794021103092682607954910986878426771692424756792616692361783218014334816437753015228402239453003399574073355517397352758281725465347717451148486381402681087744131258906612843664370157260539991190859519472048375869119777381601751505001329008467253537925049422684887688656947177046475993274338669984973874370154028306455015937277661375094674467130604202665321515180418451848438323283222602366436280145053657076549322077955874888664447006049815103499327115094939466698471454636092977941191412207164110913695408065828492203770907585148080981008523744243054526605811113052327182352775305271717936718960143670494034645391246052606895416916024480293021200986338055302392975182344084538450986929841819494121528884444287202130429754321184164176546084495136263494462559479497673738206817463469451980791078596830415986541779622828510529950678764477329837993569680194522831047396768338907369990681470591322368327541031470186351376624840691185991334955428745348510381741169594864899144083503173617109004821205930748350383573661393753242135164442607729107270885162198487335631520771781932370181019283206596825946990312591357911351997643096269827392427419889302395891881536889503006155657297323524990314788649490461930608741321211056612832776863464686020746057293594323205764839900828360026116684572997091526665358426973929790804133844562710956849510863512419782149586862522493005660072223471937769767568071921076447877531977333486135320091017111436733307675537424454979251162381103267665893102117938077000106886542511732659123515021420044019515373308789650814615285992197176089870278568506388206330854853672248139433450537355931436225992602203074019162256970322329619146945419429657709807570140855498343291884020930236659601936416952585374629776891624254613549310145575702309467750710794303026233924592191278538706644851276062847446292284107368998980819960576356614280729942261384396861293574553398519681750426126156355626547677498070455316322691549776334829332091699302830343034603151154451738743998925743195163706713007077133028567952908880926566133718092625609203126434145998247393824298001608883890982076512647821803665748628161372304058929984729958993925790616943368830494165394094132486974163641400757606335704108177075958294829352160592949307079550783146830867760419154633755466676247896923236546299505799838066353472275981995127348416042017583466934308367125327257756522714717837560349531836388307931112111017140494999914920979640976271347548807102587001619785381999091896349110565990937803321538559160109702724472562427424755069853868709231865288152490807224651364840564279363425824882328070524456820303646540888128370330106359785192856656133859363132862474247689065245666390414912698035074554876890944846588986797543472093796525236905624916564341454787123484827317583652499498256952452902784846244282476347098611533178583651143488788378615365579497061219410027519597599793746238936970200404778133754543264287893430440117807904199622449541030202537251454107541706930674979267668617873723244969196001908564344904148860806569637536648872256950879766937347888785972115329586920895778733964527020416623613488168044766641830546051257740522117379796399748114644719261729549141329260548383738923208824139557971593123839326799227128352747485408074102458289006172270777334904260854474810086511736654939672885582329739855141871364137851234428384386557115557838067247521383655419789792129230840215218394206875703623891484534997479565619463302431335674239190194181576058792704621474074469480306750848596370965496399599764119081972497484253617502514907669962771577375413567887958242447529638006162028267327224819466293009861793837082669857312092923008137166286196046764897908905083094365108877485717757073174061083041862678081705076287160623397155435079784674449812097979177508055880043844929747669701206602731857223002861137184845038745316188800448952715443041062954531665714685822229129278347576551367737074315700567605983393471228756519157205682638354686254160999168078068377710533802862367247246556048628606394860672762120298063678916494243773307763879944961850300711129328387646468537148638122714351360909573557060158261206679826697277753387556118992104367091850639974638236926234062817370508764709656982104733061862572776379379600663619028000047196277405408394099298149436516381035656481783291091897992401481086125462461984824488564813047532758032391011848547223067098130384776634648611216415855098837853420320545586099145457644626409690985915559807049932951118825730171407272420399106544261622481028736153812835146056936980942002425332273417272994192320730962650261331441494418894833440648504456583660424737533596915458464749441825062952610740677584919908357329517345858769008879445587703472797121626682023037593569363844541992270531697210291612506627118516745511187973296704703968881852366703927926279234796367084681250449982674876802266614626585761889031923249959849990133785275796734162256825223351131830002942657852164124711463821013116270001276937757543720293452770342342124396698881467553806114270625381784321094194522325451923193773646153467267451148254533477421456563512205626388026800320229207699926256800139491300890274228256962323115435075840395719531457884329598275014622101844807019888317819924977104362714451891635265132677985705226063869411898454500371598550496966338666867929354723274997346887460484281247562969000119265005405467712123439312431323958867055907113741908869863537514933274232120854221645633007381614899539211829220926675944653094092019519585746263976490146254414056326871915111433474363934402409554387854116423129274280560005949806795787409512298586551040100855075729537665375861835595219051408948343509245620409637589579571234255362691249896057945582735769210593672621587733660058422820103325171758920941331804978523216121820568639542962188100140406674735470795127828266475793758385469989657660314297575319149917526002955547690699213301200500357451216608161661470562656200898337811295047471182469500800639343231985050485435918216424489847997172885581772882066273511481981191231274908573471183463653805455777965360303869330837328133438686309569508956985485444048030026826379227357584247693201666488193260258765801808207255658594876833681945647110379790499678369146372361748949442364578610704868715647861859418447938505068648920551586462132793403628649013324689669319258514406507444652799414584660594710352509590844058978465859992369440830094161117786124867094960210817935849072005511081283148317319192934247697970808922104885523848931850197331061141129320353359631027892802793447710184494458042954652081648216788079239730345314204220402757415912441697099390742863007016439650039945577662504147619453861208075677385639329579600854285074283041981546090141942874557846522882704452002922128349196665271489885657475800067416616263829459916835640433738753812263124886169680505046612126286744500097814528692198284729379931662189729802965764835342439500128866355505004392867468876825677124552161026761122819127563965068999200388577097953869322599076420489011265339272975240692653620990799574321512603832866432507087773195328556892867193704689186533025085529423402643594303342557258950077311895812209476903678074092775546378008196970994816090683305546054656763289494554585274111631221774214917236682891318842475925566992175131098668270059475400508301915586884286661883413924688089507303736510158772156469203833891154242395067628234030673329435533371357673528614605296122659414395068111970271187630847289393702241299148485673637429205055194279164754248693935497275188069298098275776219425593048415919260605955186507723365180430748589583032074158359768662008989292795395634360431142072557071119402250318247204968870160897099846230182136434806146130264739351875953103799450465066581627096433356615911421449089796511101782970118878495581763454142481191247467558500370924586693918420773933164775442588605514791046964104228495273773537323529747091869038139222875908886125142511290447016666930904138198210685598219411994609498846617300894542376735977668348182583951210037123375986351052015001441712460430757107778859487951480913490926196728574533601063550713826007482202699954508955069273127292573525523027496814194412852455092042128023323386906420270106517694698194949528808156427230598371030763026402889262592847156213868535558530295858959293369395749595949672926629621020261926631624032443455642063934197980277808195109750104171387988672515941855586919786670930023382469179655169157968658855602714106969194887865899380197535811310018324339694401273484750617591898268837157723850426056732260221489902655096340001183740136458124545111026716228573169302309872575267431555073450358345800520403754223699329598066958903240829575139251900138270328714644425696483037022321326467234594529504333381441370160266850446978254831175695885859804331436880247383485026835470228229460208786779028793753996505009671733441446742396058081764887256445016103506360632249672060580248891217398347302742241905714435806995422367819696521786750280025962518149537854460254532942904245836525941587046682691378702499087892421068643233066659903823806781212311394035629051182467819873374357327823432422300812388536561844262469054712027376476948585597800692141840188924636518641842909977921383007788105160298299937559551482827808620041292964310090127170056439401052627658654672173309993840601234098613133612178825549441027283856583325551793888508062169906020263553381193969035926512970069710223425423713007759426090607906706920133010029100339941355984786930286000900647282661568412971871902943648238080072544158630395712179487518078898487310309967406484641999525522358592666796083352123012202962338582033684379383533690313175645318024192064850945845098866690220876503616153567280907913240386720826601891920825443028511406166585264110521770761217456554153082313593165128770800774766503196161845836664076523465989059806829443098774649246272733165394654721298705022000469565965639924838246950677233752456989532537726923120926870910149584745814847692629441762109004978318211060255662484341781812510089056992119211939489233656001103332706132661832433962448044005380551715661826354759704450203436914765165591345278878806743576051290001257927908473990670734301712376118374644247176314830754740775403460015890299547444150019231283184635490451761277234846080568516101824528857476670992747916372813126131529532864527653804464732061268271434387317880415615111048121210878796804215072706490957107758072361942811630275638448309464326107078930070136379771234669941142053876212440103276381229781512579071813326540490420944246609571936083191506023239802106988824295721143805488822678564278563908540435217790479927305436040391718675834461791050653319758512197259600812758301923401660695162298136572272526416613871740286434606887705307980132316344750998968831998813022510926244013745132990488806379284100505922192755782156072886924446181840758414240923255443347127031966354450698708579154192204244220009919861236058845145190724888602247843629458981560024089472965742356213292174307184898277349503822861360346325633868922801783906453686860629201264643521731558673089325107929901478714256571101730745797634818149697582717274160189858518448243667465670377250818860512241445563609826547145823056120222909527769229917905893727240491756492243148742199827893073339468589853791924865740322702075823684900902738954057804752644429425986211873936724229158687118442285639387523242805874671679833809618621911942985638823645532983831004498712397985338329001917439411065706244940904964013187498062940887119611475678569238472057581150761336175191231280734768430304860978516520281357865942138036076398018889437522873831683953828090595225968688753754955420381319911683274573065878352788474711132646344792778420969361761035282776436003619272397789008083263560135808216972084711185095309712999605798218911202722425319790119652027700660958909639936062419942838549752380333925646998832694353286400069376994775881543675642874503124642094329287116222776343649880506114309260932653470983326938149092142469418636963122945328553380292678033800601387750172697842175608952997888253790648576778304604843170812301599389824905735339047141229858335700959302370536887333670078362844600246399573783806701797400500726452826305133931539331980892522118344895420673634470411103760199376302056138088044949365447640404936245581543037646607136953923917234225139086936743994822969295784104596407596563864496879991910801471042147285048254582017543267220183286249017559423995356368017643116631319043145400012279209135031388903858197731229134913059202190770744917678311779542479401812830187700989995659747894042730032008209494261313145319520577447943258286175443238892927017404469016837886309573489452516520224208197186112000689956119370370929658284824736546933414143294166684794196078108734230131509252049073566719703783384218528226070897411716144427694955977847619700997319337490793300239942400310647903728243010550212135907670187175583826657356308636708918414764040532672537838735805786273894523792203233897445612343678550682832707098234186124087473123434660658140789826904145613878156822373388465264215626976058826912067066405177162721179695260958080872591225971263293529287020127242993707714637595677825294419567158505387149242201461154633498579913431618668994491545963797137507847909490726653120818568577614612393072658915886313039606917866859904807768531316906578990816022398296426547388889819477990017350266773024372861038151129532456770002592166466138560919440339857317822428830106833841158348601464991976333626790537575250495058265749335486741420313543018888095319019421361100745783167339392808110029669622381074481175741102233037596152000486136741129983058084573401675501439212875643512697018515575221477776409452874453337164984937964564157060804940559155556023231131980403607536184408532069190823284249190306746580081146422102665718227190319555367293885814996798988701977889119236663382954566369190483272829518339839575195409037740760094760596560688720680632201540404925341538000087508067105057814081928293391398802905201551808123401380406420250575538058376861481048935263103188877316272215881228745623290878985686752525611341457848629426317757685617019444462537604415685109996271751010149823934812336198049711712866092013067655202457205662293536925286203537785990769169826560328301484620713245335472646215114916240734491654926802639190222820317454852072369193042564315195543456419922074109578630258576341207712609922773427645207146828771261623406933596053209531578483375250734570903510311510073444812306313219171637752096699080377091114205263252364659683806752894147531323138038815725761835335220602624963534235093194998139139704646406682908685330045667679490132402253858098112689644275222974296637342832878510489808305454488899860656713391307373381131507849110437671046978554875047319265073849733222202050341876714084299022490175309442627177758523408971926436927131498182447959614292365521404176455929452529449751703892961673346302318543004848230822793749045560965953975537253680791392241502223033208772315502471815498395539333256788327026329471343018058681471464900733033568115939076910401064659388253166296436415195859820064652372566961305119684950112430668901746596395598450376214523348042047873614445505209268985580876480726712123638438031697259299954816789424407143812296129022539598188351776943802772545217107536908906398374395658694943969452987560349833837000386923291294203332148294800970431361754273280493216998371593709680808607067728335439731432523262503228404592136703856904637996548566901172815585424347061595185715074358932999537823218088879304949952984867093449098470086570355441183462838050770791467539663251067738575052378053199363427508873228685795776569180744509851628258716989186821408076094428067284029637153268629978247597041223805585560124724722008315336891099278433019150368799608942452591495068555121439332369118601251481487782586704879805430750723970552660959320121070483486324688935303614013238524789523146716850840424662243737047768340494785778363980318431315705591821560337314346302172915908134979482113483317395519175667856180177267801631668117592670904855556922752530598305465341504081364955820463202960863548146602659058972268936880368178086847534743082033037801358974900422984790053174456462601435582413117212477439683919068866068707387736824501116472951081303024832055520416348215544309831272405458317799016404729079499374907005313016465816834050123472476482427014213726739446706973525782865898476903419327863824701287170484136409354990373458726415453850967103329690344473228375922017730491479810354390150955771276977115320328276632227315937357634582371691738283494793869469952636953586257468935871153157251099818165404654357767954411340618358749088964489005568792626351796936610424129944481035235271533675242579512183497973208434512279686496506223904814031262980101397867029993469046937825935351529089705497097409850867502961664620839181447207884221614153539591760423124330245695817423847794511519375484635732688550436921780488416092399025265354848018056152939824248022402285494758590946135993830990211899537904683623355598930095933693791572285076195582175175204119189217504677963152372953930879639988531097063784972017100454728600592062677568342135325575807226083580908211755424394425788271525031566686736953391383485613474615895679099729257773641432423360342664945408959863469703874030450003258556233275938663798659311709543953796824077277495551215852993156544166710499722908993531792787841597215199773379014468066462452764389458669769595579998089399687646531528431908461484043575923627122237045409738369530041886303327946627266866392567629103625109038861710410217070523160702793708955775296429580465384158708849715998642615845515708001496718149044557712013248961709343165088671705961206353681959057940842162554818797891374141035714586459650066033990421418959097585486557278061005469393124092891286217347416595670507462365743633993880609547803640848033767613978667900113388469941706655012306891674016770078499372720197664925145148499572575000871701057931671015144293603510110312023599513178075640065454909848653829541881344841029228293126125909903759102381871176625452903801842884286601248426130111544994460780343428151721045374479519688528150290315961443555761211200463380354762805821772417477031998156895607054557636661763989659767857200599299209875135885042882451627483566233305081645263375693753388918255513807066380416413560608210708627459756924893445214231486053892954844297591100952810551630426979301799444397714616898225772956129065117697266911241585383005607465837333828292493794645604787420443723233965311533047884212914942848953870276112796796209707184479395731730167214477841521094421100487830057387996610638304367368640155262882499596507957787503952881525841701446220802787338412719583805252303130895151148732378279939658869952207197433235393761725625379464309745256579935629000218671957001298065662920147736947553886282173657684242665306986168922992238458423520037691569365902414888432331919856918038478849562169897703562848012675241944951253810310681096332967029145426067560849018483182680293092153218417592745019302216542415796445675197740431281146023938497984974429824245497196237563926693357322515506324521160183574686545573560090898629636166351975509540299093820193007037615447095997669515011590552552906687020693841155268443539794063104091127493850573115590544088640776681860109763760098412498308216382791217781642713287219729927417111073784768342719191742991240335403070563819722354624232753104205297944070417026893162231542127524521445026256853161071586275547155110331716106528010871930020187040297876420351288353923092787664400423200750863053662217820825554911586421151909016188726619847847846877996859360737091929130187887927703035367963370904451833503127257022022043779026666025452321535399636232639059690744233318927098719160304148318368447716204753613698993323378067948607535132078262286231033441532531199438988858628559566567483735235403438262972959505582156518490065832098753598935103063707931615081721494890148519112119575444292163904846415654780158344008297998085622599272693592179570909075389048624739962804333170401837530579686707194627108531038285878542846652846978137198902490040591059651778867200882770117215031270394900034640617606787417239583317631510030657267819494020250091791327540292370195002220368917734767583465733332477699964883238356259195547746841746776831658774533721761502023824594948275314680198722860991138007230652041131821381788163786826265315267091191496880569270040128526138562490114848006776541297382821602515051730151966618372965467997200782069061890921764038983060581107777778503886722762717761431096052032560033782434392270353724988774228116653347577709941752982930549020247218826125903989384984376524208007331401236705261148903639512418233922406628200640218561451567933771597610146669895842248571900044502887267603879522913194766721174188385594020502002088211878502495610476198519447643936617215717164244387289069957708074656475843346400027304758731621224034758910931197268675945055227668893074338552756192864968412497410543361265958733709046697883573398143699040851294769961501548646783165865797709309267271796244528746520239889133049361766456432413391502070587387707733630849794769672098724221652889273217780717759770517657881307933231373370847058828438883419996290410627650400861510986508050644068905935050941803640543821887038446756650225491434014322748474405932539624025591011442558988608751893014207341193351590486850548442700142465734423540719363163249417364580178943009482730758104765944435636169122342888444070669387694324412071592903427859403367858856123968190166819209594049630196734488012229220158935298132271690744955846661527643908423435342796201640883207459904333058077864234154655889533153579266885385078628942574332680794897973813766700306263259415238831148960454988511847482415344733760272465131531767461983101435575503849726549599016812820138763342136928374689521945541222767083642211915958806034512706579037239859036036605836644179515233984344682672715268967542087601932145050428441567399775739009567425746863900003775211670840938898869715451963412605157294347392099302911948388625375888248077556374392191687781983578169908906446392268606055873724201550820750314713074091907852420297847600900946172234958243035400214103393009366193872940184963835643738068375201861441932262947007769516277947189822243161548061247820721487030725751125480907105272884823119988638954691249068045156824226313458766748341446480404832503801739021661326662569972210034736410295696849302022325368938291336242587367011997819134064514085857095636733971755879208646307078855654775942396146440193949040385714133491472732201828111373706533360635033048974580084464409614201509025463949290829950272545071520345776884367203295072689920400607196947295739712414858116947751267886179051877510621717766649287213990516748912237743995520860835118690266954496608847055762419379240588756034973700602460581844998800262146729067638516762836586083538111220794298618625852664855300788509281984154278673774222424616168918188900140579700575110020042325832084123678520082517354854644578178787256018138904470634512412345307411146296816752527213932152841629316671788868074421785086730787518729577306981764509554505393012027919623671368926179051154400168852632915235802560479349708753349444935906046854987459318261545712875041562971640083127682724815451288860576443315563514375573149549914515668399286840881711443588363881267558746506080508773775986918061797102795189528388453830960784937120534819129434598171697681402715982501002176907851700329189448608780297499531739067989072144714328755731393836935680245101586096797141090720567262871850523628150460034043748921693778917674717333066365716112214537497426803603039447699507473304774627012987407222401344675700888836033217315635618557565725553979089696811642022391611613464822618152428721207571459149165231203307959856010107276079121852083465217754543209980687702393216206374480697346445362027163803270711741296085754888224033176783886297262200852033950498469134227912645331495352571452321284008002982330121669926444858890468566524690817403525673577846110543488154304915211116915012078925623463709507720657239444386744344265950974964694267303260135346255842650520483254458360198410690958201740578178826571365249965908164739709732264231332469288210570315520827990030475317215622977783361756824408589617420971461556077835205672632552565100446413314276969522136509508809130647271965821941314023623668582804141953518145036010671411543175802971454295029752681958425568660333900332579305155502654481198095193609268105490583987027514954470967597332935667110231403999018374759283234513780089613758140153639783109912504202264359466252032028419946956716098081750614497256552574787023204664686267305442591957049008472200452524356617772318625383796552580401268366733106052797014499680428967094931500871653718163012337825546353876889219400998966260949357733734627922537917320368371263216001704529597703044396379796453020034295948786574058351031747702310845230290742085324759785328161156083850741025930447545299804207470093577616541718949925433902761189084632007339738316939195536691741506104285515190469005903668506644090372381136944475752973479157084063062450430828990560993038351171738286182052506927043081398340091864720816917162317677925883229094799050433380392218938120273088619652286642067966874004870640104351352491379738799114100464494320328076446628890177995724655990529904612711963083404138676283971282408975723242831603375472636332134382422052360687597489210497343637993280295250509467851495964806100933331295959678151902453863320464552911943405894783425941870078589422348311736763497906549277288995153274751460460532389714627461090057347924398284167866701848692196701486014234359497967029148184920846834836297262836861505690809485545017151365412387603915412878946641742885585799512015367860167433811089042237031039926301684996496107587615675331000947046493887682777307235989244397574826696126182199315560713973255819727082008411022938290722242154176490086178925705396666576333936012747303080058894227467680827711920412303836144576461041039924744489393747905469939110520804039147999437835376268436958491660700798606814264516389832876762711958344954811648817473196808642846386266645751225816626929681412744705039041447244042587138639566996677151351136956717100782441049121113967173842798132391190400258894500989092733873370483582066116152224593304810124459415454052092437953634009588077923806010219747372732129764545326247696065520454800963725186704528087847394042700434359946806155549520821429788457459072524497020132773790170235626648746076854292184557352708129363330684192083547680519821368489294001563750064317834169661228322443864089524729533982315048284828216004163568010708888156678622981100260756502286810970794802981617878192852660772050884465797952488912786688812141704033457822871747451309007044926224769534418449159723190219423851052455798806232365593444980189124832736218053105541448376720545419647492854264488284957740160548019422364603583867792440166527638657530430923804181847159850248666008000723890003153396623643848502980433852630586212127919702574386464843276841822782872396482876385721727224986764925460823220548794795616368239797399980570433637702165537320011171084224532638305393759338440292233617470209798311101461549393863673840415987929747718785656065606527574560613204615944179603657757059003538218856006882378381984840880063974732428290108725724118271563723743695349810859936320910577170904782305334816971797010954000067769505941072828447228870131667853487535385786549447401584808270293228929282858142080419265100847649161552128797231237103668228442970113059280799370322196533007234847475723260206740654643849558933778561321633987614912978176281416217057777496304195147852835586892022231254333452429633051392379911221230623685616199811333436205577900195599024360973830703382006525525892575862076458171368582874545008568579666116738031551806584642816571938380535585921585008838864885305081446461892428659712481084483137294638393443963718907128654350168858908212451839327919817662798300427884126061749445000348541347166417265444711337111872249090772995617274317729458413411043028368977444085813551209938107087610887903215448823885681909206119032751074962972261898488486648751709187354929558096331062510368742951203822150009253172761739704630396422879163098952394678711183757440697313611955813999811354073275870793030477835899196322273357576671305569952678608708245637335496021133040454616286083276162690435351684638050606878959781562259283344605039245205968793096225513910043076162087576482975574694074635999376856889294917710225529042372930382228106107135296467265122839518052992823352548422222162209863266768179423292920907074159935844030031110738726996165960867619777187597879725910480327814134268207048935374196735484690058175429609321562321963015019968542069946062049391494707557411749950665974411961084914916856342596157998474215410484729281222634301397750960625504781402201550286052501398696547291187442622631173385451230939110769205121674898084316551499967439864972674886428387946504730804615879504833063733478848671305735660161180739735902596674099071804811288131769763358820216595679034749299678915079584770737386749236922542335338984694385307404603637513357489768451526609434400892775672593284199639371951862763365392569769827924679527936143909741017203589793060115522089737037846706105179481952544880906153744533161061133702524603855065820422511478153528353353688976397170351895991286037861594572018092767379461055649844010157624079356641422996257946725871657411946688711565478091668595155590283304742213140544125411365371978744866487607832701051166022551690813444367415858483277792881563843712626688265031523344902225948667199351041694787010823277249174666707075515409170150062146486031443921494227344861988948055052205252677987055536043944556670722561098285335002429755345470500999524839630032225466894514691222642354435665322870152890650194364926155582500066093342569768075213656067033556251232694810848828412944148084226610586522458613366851362667005389472785791978841003300543933863966865448371918876445925197222962393496877042965232986163807006241583860299968194972967699270735429086154638189578526552784571228437714531444482389877073572559668158184478520805402511025108133051241881092077315253487584616766299909419208020837010288477509357760334469312619155554747611641290895345958453369908493715954326582398959996469512855546334510817437625253680915583839315377634323603726575952679770712875646844798292110595314053354026647287922481985144810896492493740851582837195494436036542415552366173809692836496491058076747188885632631853807128421670089268473532360208155470364782589495524924706020609573553551687982150225834794963925407040771457857361210074316543240209281997998229850318760614681580877244005608945592143942199783507682449392680327877782965884930564101327139040721053114333147910946407721838585164436909069978744950551452710136806914035899790032800685270910734455292728586490920113136983832389433304247418758367156524246516345223797970317823640468066376698428672730706183494162220834423247698933626952533340591262267875575233562428686482926779036698042604555000137604909635065137944422138161468698220710076292780829380253789967528927213944960748021590786461703200263151398715760649443872584997014744610212194819303443009680152247625027783122737349519546243897829990871815154891817643172099049153608568119518708558486130266619021201870131282074944920229727553000153450497472634043121927777453159246663361912395338359685397785036776301419519828431967133653538541367859822603939924950304407614606927254058359514640023002462115303574430330701365460512268299449604113165653849674855696442020802942346322530193059146468755848280475359298987078539059779386713742683658635727665887429266208895441264029231386460476403805061867328845914068400061355982207122578829753703521013483221196527545946330772461829676157613464742475721532741686214258040793587654686394774971230325048313327340799662476134313721584444724881301127097458970618969537369979083166074810439206875661436858204250849533608756675694983798953586116969528041687956532822261350737830844935981792174399646033172382875239548401081315688965248892626984853678963765577259608870090488101090331357857245870451366606286387060284481386500377993221309354549869832735335757877223263851576244228137807421322251665719181460559900947653791361119845160562578343352392145697471771993611370627257761511745843596691095379789675878267591673532689448511984818690572330307906963919186695130477389064172465243990906453663049858201801790539236985181302460654387138354636673391862560878621657209729205887383233233699873406024520129443757239067534068628079509227594227396918607428913350346210158527750257155731386844729118995073861191044012043806391356909396818004128683674719733626639510397678422736490137755024311750830462907014098023667670881600371476869705393685258454279374849544955586289992390170346905481047965752406011283854421347242332562813878306903115594708182041150437399787962490622491077902701266037825475593316023435910559661193296241471153540620809978390270762838105261218671724111319836485920758620324945289255884774625600569929967764681840364722587871381895969525836508840518674134157149082325240305542402344513059478380813692816654378038609638418964739669892893541467771284769939424158189151589941534698203421605466217296809208887601322878372997325891217704773691195379519877395474787321963866271905965961596323903413612111324306015246957540258336356120226705386202121953571454925954404917307905300445719016136970922827513373195467100292990727857569391640300076153689731288355255196864207209265258749261714529021569307635126584904415091958726693070964292916381477078411807499290254623183097970514925975100370441689087847099678503204902601237037807871640460892736883817539386044674411866922029103302227151644142630662928604240872469935853416881240509591664772381154759949338985107932351495071857659463243354721833616490636314345496813158703591519310387043776323567764255010006783673522227665032253450005795505353295309208879804712693797069331252958672062366643615111123743118323486662847231255590655337329563013160100763378765028232125435836186417739924168029050558563563227603295041362318370272758783479520524382219706998680564316607753654516227279639990608391977850827029499107119788604444424577589432018343794630594077852593735226377314582210353128154178743952319891141672868015451451435962441657254683954011750922069761554980964836396341682485560893916827911306781437009077217324761273805683847585935700643750935098633362633420310121125558894648797210213243415103527785945950822771847536316105678650351301297821751011433254812483177131472958306569731381234264515600918951177017590858886513439155453956988993724317031942265221392298928653049927396028925451121228871308995967003113218484538466970842663406279023719660938024306404711930210611692014532878722857244266185156966070188001523170782837825875152916316187783460069097808824951233989166971919677901557795718538919546023745029657789580610168171217906976085005138745514732425537776850047180391030752783743558967325266998401070520484702874384701500784564553647587717535002108865863756641575262076206011740403194860203065670450722525730259168240784878411916307983729402111347681811789949741683670917189280535386874595210043025966143022448391906631119844044857809524598505723682030412231824884572004236289606558913981847016590246224312189877585697746351067447348895535373356347817980769761262509558155377148462447405894441095799914735976629682465039405093262524197535231589839477757613362679850281786020713939232941627589212321123600902040808142385267887245149970658306294636512549394692945023769275399279685103852441731884032020006724409452209855379109891663712673387831715783900593478350428653079975407884481271052804564528461004754455897457518263291692668841952446035080276137235235769959202790466558513146936541262294011435880192724293110012187772236845347953851392639025240244115953114799198645240096159800553315229857400015320952117089332981327858807614165653847768369740797671309677498544013852455262482309798455315525222143676000147137426830251591124056135196034677963073749691302721478975510268361583325751622031545422557739567392245968483838403556559959060279775529281267464593749429542035706235442893898579556499736798676969625361953917045749938512027041438640235642182625388270049854505017872571098238124354011376410167498606327814826683403575712389549094903675262900003845240812460406822448948717054382861270304929817297892226419656307251283105503411817424910890566741986131789401860156035877527728229369725183140324095028460761003621855235048351366157786975333094075776148758272457974234028341969048195127606048418829235360220600204440412299009809081448874890463827449070884026389347458918425010698736777333721418276891857965563453796701499326858429938011031380916553553531831519164275764753033037423843421313244639628384861367146147282392894684905520357363386621462049602367648972953902605610916058626797882756838613612630908146067229278952027919888920152703561838136471870467980207872372324345301830165206326802738234007490393616122253430475426117517437780426314029765840806608570253205172320325688273349456765848663524940934925373340822104988044830063380950303380870201765767317001124062229563193059048683953420376171442654917251939364721634758950240071660221818173602313394220862614295772413010987074832129575934949419138536332639599708409340460977040256509309487997623961387313998515326943062086547387355365013224230049881535851003622591582364535400138132467091648830516303229133831137386485972356724630098580807673163456999991651631469376112785244118301033069656047493917568570897839949567036004637810719841082403694423237613704472803735068322416974435331179986174307690534093420529121682831954689902390509439862125601518781026606966327553312293349979719315904843030198784283336564285290681740980411283140690344361279762570096297570659815191797204898120281023854854578225421715843037068432839577925557416710731555158842260411011507258869492131530418478793662473129225935267944454066908449243759012567778492989245645340441911796740526227610289229965972562011117986781527934304432051464086137221899490116396248081178751104503671572212976091527037702865452052441472218237014382839157250488273195756203413115050309090002667387081790052588758991416587253769784618625097046460226147009629611572878075105844212912636963234024358710847285466840829516845959828259604414799959507296605514942155296634212127152580277610177998764604385809319712655135177944130173928059254306904809393051381514713950100727997398146041311669921200844973104202622198871997431581575600142782186588088495851475951477881708127097227838303423391745961902357513422926215568665758705716224691103935916736894962858816003553850559066588834560387307188486012695740504302126156404991682860767060709449667198112789471227628057127578722161731284305165989684393097886292907594878466770638498172347544803542055846312832106178855479354378631733712371847037258503130638109240397489940970045970008575797347086580462054966130732237646239696617102865228034826453170705090385278904587319404434403314539421441376603426158007445187606814048604576522807525556366915992010668219028731408609080427944651805587071070445015759810155291780935331222774255271007375413087103117839161245461115795195845113873344290857803039560160503990962266275386513840090589850089277541500020461261469286355119297656868786118272009599778682413603088767324954738823042217800439749191069080769043527946560597787138262589983755498044079421531255904613021443374671183216903592301775332588979793260464625376466954129825372153617280579841561082991900723149713509149687901450570641303873330125917526601741101004931206592248405098825409545996660250240877647950985065993868492914953093101194459348553501705774508504154946888378950093002761406870798781685487599214063625568939567767439539224370664367421785641555448277328995505521031230355189729357528689469044904074491353008952220945878746893951047784537689280467332591611950881609535716017063824101453958377740222069498322193773113653708565596430556330693932130059892852966038326926767712123848967523239471217226248539855505691247429228103184219771558978326920519083220267067495051001920427408923482050857325900769333382245477201532478270019032640026519600542927051881956786159839256306189442936648333967295134117188595420694656713378986765073021015167302605616075227175855633714056256667972731263159685142050099569023342379644178169056814107603186473369412874752660567444151255117194898302984802008669346844705360995248507299006241602490423896324887940632362909425464826187994923195255626556942215637355199968312614984533383682486509972295466407361796565304064857460109340632113603476378511998956636398915056129370680912390696906924631055746569591086450997298721624014190463173585730833699090513899217439848502898801147580592553360017757797082411481251373224511792716191121024950628583514105583109172876919669362421282759817275145489472167174193120180436634079797156062222439546713504025178049325505177997145209785824810549026750900089663227103999538147000465166769831365486649684972361088274821787163110027482994871416599140583421360303406382606466776653240353118386482200330367910855663136900029065619578661244015622739441697129109143026903186705221364696106769884517909947244244437609800602289053838928731992462597549997235375334131856900801446447210253662429317502103016564630804014311678663621711409290110443482130970902101234082587357857146102531871879905504161945058906053361797490510610311800654094412260911765540224874171372239351078509139732089950564016251644848654557019584579188433601825926502183043111891666746695747331894344085607995737670264400699303014555726015640088881088289527006688128300273771301699593276734321427135550128467714948566603417689633025222234042764790648037564826506314531548720647574751173304483810993927743613808763197264052729559940122910255394830340098059441765263180911316735383953759914893224571081970978752847069287701538630521653814369335020021798689999797833482245393549857391816758806946172616339960514132838049563894438862021092952256333972977207199652456676958351820788760185589421852248948026137371659330365431948841731345166440618066057280359891236428802616417813148682077311159485773751927609706470067158301799510280233904842867932897692151159894843976197451258111240015112490677268900953195274892004360745685340670722828876846396290150747562349676566556926304450685017719261301034197664718132487942401055564095083210923635030367465188239497800621909050128408911952605079653066157640642485621998499985657563402808645512575712778398709549464353901260893212343140335179632054677790606087353924183611891064960673887058975966181609938117766125040657163727116337868982394000967730259082443075940018525383143566910920790076055376740893167856430267948606394184409595640483619313421846619427906753005625760618696489724290642306683109114782302689899762490659648437320537320288537777029052307602885178561940634884545367840772414402746810293823884457222131883464798233101186975954351586753654349284773351960262883601517387588392541713899426693681976715265552069419229244433785661578786162364428366402580112925834442330456734207223970753207067488177323564277883699124807994103683164959477873283518999831738512540015813994058433612680574147354943330842310374208235195077704229761331568193176072542805695604713303537266199269958358652975306441881999557156039779484918870233680093494497264050837811215004963735300757542660877305544648213474767722433286877443781311805020591032778090015578835673093076156249903399321019882667803232574785434936367596880042042871578262392018317464687730026048836217374525656801392806170786589922262684591498334131363290361030609459436909915833046143355899647520925541163714396688937869719611336022225215969696256467655639672193818986123797866635145345377760884279733599255652561709325363399947568709040138860429353181782088109900714010722796769389433994007776070506818179688750136327141384624865340886140135828765606852155279376605939727604954084759696454766022175329905318143446811976918794839266569803137309923285069781359198086156237057926993105617314672285038416899706324341413676143697279243260773338057464949718617412677690838183244972080541149667942724313941540606634830742939150733890728936925666563838727018809177726902545536827911631691636225506572686047995911326948481715963576307228064036519091773997291800305996135300570458629767131313558455924426287220095927124239917127555945642248217386836727198302449930794470148007670449973037084159957607856101630253530121101881516804578594214750941461907686025800163958894987594886972953770423169767793406366506081092335016378873014786862945318918779535625882332765792059514932952630301066393150610294460529059972460977772441059062125273260195827214008373608723681189594427545459590567978817167969808848340014109497571770816036070116400731964898457981053478258148903095212059553343246885885280181394750855120071355972293654367453076127160674811784508803043849834502580563575589124052249526582709353026937165295401387273570033354159922272126609788298089007560125692208906099237691844550786486857404976690900373631427212404377777543253912415547979837558156726669770518237211816674649442980479184002468470674925047078397336738093443132123418363991519270676435527921640269662664618767196875991960998433510459087971519842010516490313063626376750497006742330195079128282837646647933440005085384504191948409704313688849978943338361797202202102765704743402678746771139514502334415338419461642401412126874003587359230448153373727608090679880992938460087125017565400429127972166174332250438459418858212415887561325319171079041227670604391544487651884272897958950671452732644787648766026820965648023878153049572541939803592278982586803669759255849647151016789264409855589837650326414555274602398396154092900087950085011565545011630918516842850811269413300667136313644841825325239099773475061918260709647067642308121457157455294580244374650037642651241592999441257092839162800674880252581156409128766452096614185479591215617045212459445306675644280931929067930872454740252554750799296187861346239602390633463767841093365717402909731688649690987536865085670021264675997585056874894739350857420099664167308331966622664585732293089300898441506690316043303433807976413104543266081639787788554440011249333870899241351466399959257405761111279726918689725749481108024133071817721007363378228729940399529538125173774817432369494077637323515844101572161307567668820223695213390809898848529945598928322181371523879487355345950166293603120266459031273470910447553206594694758917235076858145750678086470191718643582116745193577612996210802043543215479051319320517139388866606539480829161019501443815448786431680251136306061858315185126023273259747366060403212204674213625110733232275045440041027359185863089374981261061458071640171441701175326999748465507181739647136488486104254088246677997158819148478438718638835354005014063045941113842063637859109043431357131141344925152900610193721848735685121548008383992085194752626488588038894859536212983933475614136570446324910351657016069026902391373031248466670969934133859549002301825900255703747054424164777638538683777959702316934508555981439208182100993614458185417333051860562216568059879697557251287779951714517615127480001379689220187484498550144618174889709315079412407183158393608947277907979287533003701915299297750435514842440556471174711293598183236904036138333012904693628454790614630340122671734703123449438321114032135578507307879163521084485144893026253590983388804092355045921988075221378671138217395713475061796127849878875532998129856524113821691883279755228468067896697062603951642396310693491359171426294940119174028500610639783966556034807195846673896897540238926726665790347534357398220654108336972799901803490521480321565650630603958826638368030024730815375116357788158528207940069949298378783823667012256123273963403188971468112055246973836830300646643456193243715787038096733009082605752352334569824779257123261681728137153798492450558776514963975198521142441663172360857785481128570227897258618652234806834219251878549291122074947048123432022996489104848790375590008087865500306276963228769998916436816582005065181130912983361726829973686309820982438578679283766582812324216424379846665010843292420378927388576774308553134883377959190971066192636841144974134344008930813452695935541499693496193079870421526798848010676842157121013836647183440973398804098467331063673386713352159336657158343153576838060568087731127212726263878993981495290486587723974078306677618277313035238270873223007155529673246305213526569817675811650819445072172980520605441890295407484584419546502292233150802351585279477639720704798292503923118462204049289596614337461242663211104934247696155334701385208568683158645733621097934736264938587082846391657577393554925267770822605309481224141859511937032980337375854203248236043077184638679050108355601235361190965938874269519143659398356120896479066290051612547962822781554680423955183396536185274861291429349416248781308925738420635107217743867940569368101457728774293741165552849007080286623643319179639176556447647224677488117677137347160217053170442246732931768930680888129302322401920174230656706643105487495705019045625357221072340513333819826850614682203637654556550435649990388437194797563954387168146018947889740869167838343936840596186195786683241520631271692276548844489734343030437714321573855258217093491449228898429992420098707609020805648894318533013738774835581001081030560706188177857445559860410946471966417337822317343651607696838804020998366884414565425039239189612836293770467475712019918858579886305699250365205564214562231292987103448600881944215048397782953872079990113183367415257175116388658730704014633819013472565415424952506155189667751036995412180567710969062269543450223262366323802717856448059879558115363200113781213995211459839140502011140049376949363713454651836090330713718252242020506152176993208045465048152133774367742451193403256223821659551908683131478178759282603945853037222909985183066012314822160093591550601297523880579176047359602751569559276680656942789642764346600407190159116455828265813873197817249017611897215587588651325410712295849436842985485481104358381071860197246511847287841761019666658088129209151149283981994821986816151041240497219346511754139635281985757748993260744135933511901645473840370609462278242148388116685504544619674585655236631789070222349621952248288742981351429839247434545866693136694845325087600775799836010567343737312197769073666128023637639345531930803286038709695483576471936401124617477357372900802933333801700654430825705770686771165861433586951231123707293871740064449629286487183703696903396754876331448771381483476197591700362344856293795524770556882038674644666868639385688145117377182169106329235546896106001437276933151817730600456831301293440701901499746690018241489398416468653543241805011399329071048538545503609044155275284475853907318881747014661502395087691566700056716642934755300218575495166122216956260000141986398832518857481048122909314774649277086141144387103121829137244797119875926855682313017538844767283517605984126107683861836781735633536793904629205382349585728427983472467944952097985193380648486409605886470032703979196849082370903209948878387615914610515007842703672051297958704687965457351026328487551184024023313009595972737571570520973831796150756095423453425082511991200752628486682256481820745905957042892505368821100486648946929554664529181914984490104183498858179254901532566997889744837413054083669543304065952385405175467326234250914059932615650229191215828392115401833422833676999321362861548403452000795323084318440936429794931492433773401126252469292475900170304258886668747075645970505237885343627534006591570961397400201504708842043018029393059572761271436493626342225876136631568021609760684584684247322052125737965111813552649262537805321436125593641909747150561029368491966441221784543129131059745977426073937814710243070515115264380195515749025557310672449902680774899821157887261103374444351170263871189529855731499575899889281532668458745660847263218261694242305775297309000700812456252878125712548192201723779853545664042759517076864884374166100960354977232897042901130266173503215123265298710543439821453919013409713338473900629862701476502426504401337611899606275650835082700334109328011571627541034631356510251905484271831484484649812570559482187714207184488778608653416959628870284073367178779285500377024324540524562250056988102531687617510724690188582596051950961030412780414897601265274297901957504969395264227099451970625880702566487534360586228375785891990993632696673641626412412720632535212967759442824691656686993485081562602254778423787169325375786511628151833194563423583085724231365138860096875331516665144475175960202902406023073858318510815634813849300579260376315235414902120571066433913781439474594312913231667550922728133838859587736554349409244976742994912465095880945924043929337668233676408718570124355927566413848415306702026376076244123544726563323311847408628408238568341549488941587459807685822921461044453116804934206926303883196373519673064297279108152949487580152109712593229930120935987571410176347641790634787506378195946598930818205844918669927404265397965130983466147197232380867816487247463110018980365239984309739672149449750310552489913291014457315422182877142344269474692582400467946960661113751318778890342020482346323493168277473019034972142282861555810299808984711325733351095126182919728812221383042044231153796732493615281633045988818951201790166587874478771735951744516193800055767331586066272031059011776538537761137540340831935729016236620920797389307443318534259923029182593134755114853315443783900002227340682405070004804699331857646804847843585346026635004458314366415097503278330725700261746809671065420467766923240437098821666553739384586270232281210100326293500784933094283599440302282647267869731670337270704677621392580713311599854926821916867063168174497952806719912940178372536511799857539188788596331970834535380142452144211797285828296630559711992059224745698622041922672599817054967200008584021774077569820460297047907052964406498563971701056447992537534671946935095624718220718464848093749290891996514970348084587452345482446671183742998974146725695099836649716051846082036069161918177514395872328490268636179515812006413756504675814181104913709557639444904935680379945081247099506848940115890634847209809905329532143263864602089100844716919080366235268708065300694240514469955748801186144345650219392864191653126964463792863039910687502487594684490887757386881609137540107472125849996989301534639943559878529500100195456991015982634607009068878392469265202764697935756603342107239864239277656824239217229494775354775614776869028832773108036757293786104988636567199520974805513188619599134431231935314645543197183659201339658352533700187113049417889814080915353074243507709093935104047259897424726687592825242051207539286306110859209514097089974951300914479690628574582586084311644927522342341450952318609575121044751795479670904421872684012209995361628840785848875012025077157925670143793685182707528626930989000857036639474502717472157272769009862369104818032012841657486419959947854653515295290740523457352737302621771941881308336641553833759660285838299327795686963173611940446419384496599374413246981682148196787100883938026584832793331058398601881998654333936341102266418814447420396833700300616626614822148331459577670208175389425799396909245143857393561898603391176435451192877540553651577774213702135887128325873171360369497725970023784715435593190884636756508919402918331583070653999421874752002942449201189254911231321173298923300325683879244680827465323969885840083673645964363816055331276338739098738055731146053142139725265960056698631642151348536501014335700412344883122187595487967007778981221369727652671348289030773040951494385940304400840046056811951883332529608331818985020843287980322061928406113367040246006087830456930620932856583484656000984325954811563208521419509271218832227792399103089894245930360693858188706216192219004837029924680920446101264075316833398245738254115100762512794285323601571583380490369839035342593176011375134311819007021153741422673943962123936655824315052961674890726781017935330693290341983636954100293726435896502494560026249454769948454721566654979370776776808687377804610447599946307275153331270198513089252029756779660459300011827012876140875019309811443226496936935535312233700795530226265618042880404679756156580976987873488482998802044336503406230149762077653604230634880938101802528670258343448224797686540032475906356057479450151689902460303858828358387121219553823811687409200353514291342355824193346252696828306152453897440523933178975353192244482474739856726555809465703610735789258402326993871147310827627330219283182675838231777763124968670279607135422481999804734089809093996079860590974630335019473267412865254867640055462361452551736014161887105694373609976980657085546703162033777148352286783914651211383512023138552849716247831373617369403142809521545420978739486576177036980673789982149917388478712424078567304182780160987032064721763075501061393969372473586390326098418682648274374316689156366788030769634739242339944854834199526060666035122879953601905841899763459281472157192703629796430456305183204668862538105753833553577648906242081276316066198229993504633411235924158269858545034506958168042350159486690444436566971800789201949431121958425083905672914372931724203915565585492717926587766336355525162438944972941543518870848698371690466478292197938355361262952592088168610556372355040906046555024081403063870267048774283814151423519988843475949028880914973138812453028246031935468032855626255472801316402702749250253144580076340286445687495895002553371838212093072344964233343802350957433379415327015326622892496075267702653481961510398458986729977941938256700420343135690278780133006537789117406028808786200746890413910476401872939935924448690363788204193663648346014680726451397575677795069567751641279485476441636845515210850084087187349324187012655641253767119325555028107578307878844699087635679157779626107580948594818119459333543175425655674266750131574507240011287365566537751896636365675999174153479405671384211931288241518649436197566885644117050155787659802201518394869323354295908599816343405440475684372938960324866309424734696785864913265493246709050113793517764539626777266532526351246369684097229695300467688445999879834114727307727413132719857242806008007045489503181795503637372891186923236764893018554621720153783882240321689824624736830217130755389406518110555323668521141563847243380899255427611512636280236939516114113348682835100301854610743381376600248283778329300308741344062991831333591872075822000864561594157206589591359995089336674533698416199375104494966353551019893949880745855193318260813686061706329982751019351506409394315393651229958786171059943239028121908692898394502743409044792230619713156419298980727529326320951538354585536333114361592443743329292555988175088420848067550459502368766692501113433499507024049009238485501866591802848335015621748506340723177804038026469703029800256812024252907669057347352065460992028631300397281096979121634012271634444711368656306439501770943280597368778000319457272772789362636933677388093886112816350299774447116597188001749829926182227628186378346265473040856525714624534078734852719964513343600151204238986394898112596457477329672084620928869126428478063210931161369701489044589060336871920065261483194060300385165415642985944446560135544082184995670240910021482844882342130118609609465098769565049242435631566379885770274254670898454736210730366110432830931363073652139982059286527265856913069763485866901147028494300039727920122310888297180847537899963673005721930742335527678717829101383458986657888675230976690201721909146271340701870642972285194914300479876031617471251389293889973464898407008206759538172172663777023936645747211726700171926110837115737216295322371993341406272080388603753539518682100206678544152023302768891917548436812990090516062078230119280678584091524297820552030169281545107018232841335728048299924462167583539580650210146829920435414565430056651045837382582606004744748359732562828432496648037961813919918201150427233751879080967806823415238094749234204122617956711571760005241700761840535378788960591962415141341343413190419249363811555680585960738733329775261383196879265807818625260672693833420643968029952681395593684617477088765031241745957574174485421684168066546754980180314994553768786583454304093051866359427206785507260806308160688865959906491037110565521196007262922523738742865947892495660819384807163180965269519320421846884082669300657482785174943876077873895158017539887346294226874303471177717870819458219540834877225630713699071821556065489609458596736889436146283151892204375412505690859169915538727308649692439651014574068859160691290812003471912714376684116822494561833299702199395463136970054881680248448333688934028681293687356917832276045447650789533856908409846895658730889460767142559400388537119210812768360203049396076601633587622772719149486656980044452804404743516033795539799182808217263387752630581672041984163153758751334773291334397635713644488258557730547712070581236270125831572797636590673858580975385489041301085571941981797533708174408430905071636273613839979687918375634028195954738630392259429344406208102528418109443569148444440477792126150689391079860811587581083178774057846856808708768899533094312425329930084698868964711753459851212246690748610584468138600425072980946663024694733668548394932688041118798942204076842552615191227121752626526645244285249028391627404999793139395405868049261370775921802048764170800368088348329735012836512278902678965924065293115144878839131515368203559391160733109898329773192034630611753174333598357222723835085568481156501343457491943881360325807637047327431086461847728037144871041794325323105470163572034616283843306532986241678931056044120971191136850982446113854914933203556550767459456065466483779657030601401169031318702407217471440396529223718243346395473936215070985969341307757613772438710294593484153354582202096041713415445858764164272519908909940159587190788173754369511178359006780026880419598966331657139579183033445341824300589289136327504625116926716302842781769685833338718356340285931913037741109607322770245271090338883720529655283549092028097508575017076099191674944619155651724511791209049905288162969508127801340992356236964869849241979385502498546686106824680341908411626573818791673854404978155562449296662430638550248591088477280060458901156490634368282272433649911950412379633708041494124593359136314888511320406885248341254567153083600091847555091465938662806231520501919696197793127403176880518443652524084332463691349304662805152925722564565129850284459754395645067200633328508686143550147875853997060395544245362510193475088556070617157446654159037722155988228805212689363470569987849216801448600987243201695076583867744857839702033716369518667503578687065327381189598532978546831620274502805123133995582574822402733684564180156950711547003962198643410294212904251236488815882513024577567908585382973826295376400422267495894483126558401598296618688524223303511840275515684867862880216046349962548550275279700494164724037617204099282747358210882459668480665093661628502700321009058806689607116522654408791851961529536557862136459839748208947343090260379015480351466385736590666263429137121998826201448332381334548306245905656298945480488503174913863027147467995766069113410525583348012599482028661309725556227892987900873346498933298374282638391394982349417987240466951061065230338343551624926402549150189906027280169230034876939794850062546081542562129914892492137773749077631308603471550433128593606635989445027652321991988499123194184263002275226544871019444715398295514006775103477490108283749712839957881128276841943377791603760345125870540800368526405396456608346236240654672799822306330509388791855944261472480107431861091611681329739173502336856655395436164365856383829897256510185575701800300783498985533420400456031548469264708451392762724543421531622237485001047932016271704299722276293936883787568285811384402339950442130900352940111485411209685993682534424379160129654215703244207134498523750588659883898280039830739961012533962630820820445115534820371260484114797492722415485775023659547387990786842350421075063287220394997883274529580999592665504077273744065508847391845836475591540638383844749369714157461063255740644895094405379853741981454271070698298730918298153458291189309800594662433357218647450850965570881854250586188705725815052620706243621392059265304582242137837142531702248830083074440217554046819395897055307363287632691252019038438889701506683091848443297248736740950205309880333675465400623111115507134819926969635944831356383011575961627137794324518896143213334747528304667551351227790831087529338684157917423153072581010443378760283922773731980995596822253922686146564767358362131265543338673537898149650604300125657644555779138176884931030156768383390048280979115159264693794109409844477346770431929516746450915515932840725935743558611444024099744529922751769253435536270777245681766203817400418047256675073887544136973525326565128516701184262727695445422236244246357525189832651006872879953039279101180020453081776624845764683888911002702198420053132721216254501504430147635384925215019767863856696059632750406929459404981948555485660747751600288349788541147221736766962587723118516785841937618392111224554040491677661283209839930947587499724558896791288976117345959458211808174913044764830238190685519835717618746298305824752321492190023095479705694710292842244989571265398333647316360173915212886894524573470728237160930256131999246092412895719256556611497343687293947916125422790510346260724891612462222754268922614754421990942872402260145571639710716493629417622046456981168623338723162105859148706308069166493167765804178823033515659847910790848642959924577602560694984306336410566387270674746436615688538433672358976928373775405258756896133210083519738010210484818764767970882719688844137805502665704750031388182486165460410784442204433115222279435013977809018594830628773517390864993276408013916708724971177278356160223605666973172444595580529158932834504746359646497487853288423964763455523400668103615307428239807768996256042100981094247426436786299279534894430029379360163991510150888949976797018561758671763460679550829350583371191360697330918360013458139269396162516867754138826671477127403816199848148456746339226919160748601000448722200409217086130087776045058192669539598489052653545503616437360904932790048345303067247656516292889720947131548246539821563236093211691617119901146040358425021676726218602993028664804724164783422361698060596602762477727408678900126518765979647889529454597515569353829303842350530848676765928000603585400535225300319191493840624297197655285154895822082999482844556744951426647388624217300610242798090888373721466500560412301970926475700543861038840374632827502920329362053486082248125978031280487702181179785551123237045926651107868590828555786849408108863223055286831417227871114268671538933042083384562775310639518324908146333280088231350455066764773540194192002585456263306368594193191396090043059629192610192057425127304019870670031433886218153485612812138089804358478588742764348706720343757498837213832607840730095914744012344158470410815132991082403413188668125251274252381345474928383794382977556866769728175239821982907440263141135652928054313668093472864730037704478735389119504190456276834329477588971281587749635249494596009097934663551957560181191084644628643347275537274366676445867905010819228092165522012317737099134870623486098702475868638738647163145186209931772268691099524684098904765538096642301530130518026219238032576012767688271923985852687379799212564595236454626084709815872829814194302272498387320380786485930912441557535209332574521980054327440385855675654696971151547016214429118756090113054155197370561913356805781155934943860196484881765977145317490286346646871274697023353379634420624733135144471194768998821147857541867960429296697499898280305802502274418851410694275773140276352099451212425433773317751098591513297323170491958707984146104550502260975069330208023681113836028179919194974203484030388953837244037934148254530957248092118630108198702221583618993348893077567114669380931362768374185006033174663942737329644535860341181610519356847669646439684087095770175732725447102810619615196026960854293034549725643185040759799474294142213378062434421260720304951102496134998165316221161491090733088172433158879043436711489623952999936273280899749567659834394709210140650705259594106815015894927898562743126852566312469708396960914988879672893861803129072353085121119884536641759126995400388738031803134526516682850177613849433094886784883736571470776155288120274431406048751701480411430105888194233771805732160673034467842208380940174014566532497619093232333649491634134669148607068097573488241151666704628201179585618032849270699221884260180749081054301497868220336167928088064772996531922665665758193141559482622318429800075034462458637442941547626802441967553607283022171679667868969278060079130858684216260190986911942692370142198453969922893679889925629766105445432229180762301348040146474393514759142619061853549234532717745963311006919559882836205456549839956855343928692603276506421870033125886175844865180799314548517249524583278155916385662903055310004647885759306021161506765549607564312848330999387758029103896925228209201480602968811880536677832117039273715008211003137964561001930619097762766672323508826849818024684276530212091155954239527118471828376512504624746498892257957725270823971793368641674186897798928763410413348433107726401534974277461241220302778757948198547136229484164324460315981716738006549099850994187510927551479787467533904485485823249675050956703625813466937541795419880604009656908254334725252104580315268747962536363840207590988465876951784669565810062623066592148916463624849468712159074029282768386913498830591520181840766733231329674453115418040372883399417511953873054475559657272915493400802649415852721920166690637696333805790412557779919417753576443897104697382230878380528426072018142352480268210280362787548139820924543853872061319646100457702883593722345840474646080798024912670046125166099175204150009350330227626762501603918088308743309047223014801942632730964547417169370444913311878691466493134939770711074182236400214351288785593156718245651718986701125458343382825186254356717146488822643101868624758306165244445909208529540058957380293447068479121779966570276227039972280446265372118618863980205351110270751459448973574511743383905218114945641749625626935681064355364611224414835663718262605198924900268218779790418889369456999577738237274875313147506975288310160530850959005614710908962458751965500570633201697298515932678373120638944297770558148831388425049660546852556619747536101981783415517081123857009116302583570608177835664309507466589733514146438142773478147088604645945144540128832907011772522271947579056818763007797555777217325186823094956391731681779649620804099605517101457125261038784477553001355239155803164054943158876489872711252098953142956948434295697861057665147105869859177447589350396148902817628128190438880079792946056920024604908113844644630244277021323854603008857914352920250460412537748302133630504370521724245746467677561479472036108360737627167948708768139634196584179276076159833358431254359479063476730603762656784173077537419118451293222488112146407445057047395542009088793228817523046184406563753184778530525990118385608940658461820661238674927049334241682077746793667175297727306871359259760359000082601220382811745406678873823906703720453146462202695726148143941156452821866318211957226958845531629084474203792575107077734945880329896597312552184680011657584870968063441222837938321063702117646267923465536687893276243652025493606141182143894081826001262964385246814762243811080947831770036237118397893147820493914998388955738707348863522591977934838376054411990605695943546220551910823487445232548602037070854103408263673833895815328705645922069676346693650151202161801739204785810888031156933297707574297357716165422289278641908983750988922071791475742371449519649518890658523792662908102439041740256840525257539524966990520940951420226172162884422961014111509147738932510191584023464972779571572392652368014501508532450088107018630517720010553523734872397182236620843477405987726017011392799926449862105576005566973222252346711263326049739600385818534288430069117891451972794220340868150781952314852689940710861245732004857374006113793082445290016597172097854445175197036703891244980249956441510524788353345779835606524892480154109196857227213097546901380004865466776575200884267237810254790481385005909552927487953160489620301962396901331511225202264734721930234024470889481076892479111312936326260392802022469670151812663812707173129542569367979990090810707554161261247987914572870477064978429192139803830234084521308367268756230749991177291062366826244760923083509774074029600584997494466536235063765183390809712213731525598445783660942115373438416424830054041328578590945504159680800100448189728053104004947677643251055682994809278143566507430782211564590833727763354213941212851322730429034710464582925732060884380371790893686594700095240671731401031393831492134518888953669269227255824353573451825743219276683639463409286544546053879896035932182605129313887058468195514604465089288238348607348744946643370781399903097705256155729380280395518918862821174816090934778815995591684450131500142280350600775934091078292658006184925104443796285072474312391030803971696708007876345826729672214291467418953442894190838495527039282957526806697406049316338964074629772490108828392172084839828880677321897832643942394507251001246021699748951517888397798842948548170650227991180364301802861962736784265620996851721119807873616742569010939185146675718919196392188010352741202967031036361169608464923896482590325988106404211719029986924988313462173913333540851604236378680333219102997816305970770664963899714723669022268072845182393629008207008695538825779498743361965850792949573260579623597543113518729086969494282270018023703476391047030651304511752408733642604422071224528355238912935520710328253589825718753219184464754994847969309922574670806930980249738114537164105976846996518995267788989635571077138114653465151922121359979951892658650450622457540113852888322970211507113070276687268143086347849700129945711212341527781393014564848101501007037502993954774245351172029810443465659361802826298842630396827326262913651213551965079557217100056892872221861782743755777942390617806869477757546793853602069170232078269673354403976563256089043737930238810605428193131141887343151198985002689459910764542504013906011982855667090279938028328471086488280477359131102650506405876914148307921023074731969380197149356056717764670807048640930936175833019462513157482803442676729188771379028951574243673071857727774763572681969973347929265306811667866518546921156897775344943814649261322922485131397831082202344579771796255339159169669610548251179634834357376688680537482081681298295086075623754768105446640965653395632477948905003298687004164900405847491837070839706189698444187209203824774809990548661717377552555617733156388999287519497414816042597207686450632564869826412221443550883809161633301879776661983232647034646317409351950263427483526227157509329494687036167431389591478549724780377488545221027327285590396536025368352286711640597620940697272046671675824612662525282391135859774657262295952437679591499334171317958247264998688136295249091298960976648487372740498741337540255129155809748284221641433500604997931405616099797750832560350854587218947638232556071780949869054638732871091858545308700679586263492340157970618112165141365014039196881215219767317732073623622529835763370672493397728781852851193088190005818864265401699152249527672268244673336241837781332209119698722078162994824191893110052625562907104783877946790892129180740359621354884153634996155477826673983249331327598112632636433828186425792096733224904661310521368933252836384528198309742567531059356819630464929620178079115153490733692066812540074758720156595147492221883087899643534921902907842509918273871560290179692698458159148234831202870745471530322803257176361072825440813360599119272000239121625022333005496430548180916817746558967769980842698709076326419431212486523473630956415235162431831005473329739853287807881268305752736697093303124198892358080403287482006542419369150466896691935218664445903582079284864506732818601434386240280396496028512906789846003588589942850691160430537244219853703060448953249498768284380610853380353369382811049069238485419813899324703577902102444797977812839941818677428968541676816892471857734871987932072682427524266261809258383087683095428897280304587933573726227980270305463828677365542290832678075287113532208500914232019971703588065843042297356579612394877925280112544925145324926300890933929351928227599141018357433437292676876211824106789758256397835912930537654553331476876742244055575097700320642463649159158973391954211608574007438510925214626056343016377846647796361785698377613369685911183609401365925462166642660335470156501466463987576643755118509319758704438282439416820831174396656981713183086381522086108443688149796365591586772402409389896633092775728243538480395384493177105475934278009489062389179845774771163746861323347466591386646734394236549786065958432272871056600578791114393658144915634511637538721006058646679432049027797968425092551771929655727504883948104076026520994755892300745017042010608314007845342484415572506185425304256845482216041688870306048013757786713722388382318443753549251470647391179472272048142572642396936317227305480001373279930544811077568775656011659885819167747039641029673737802997327625003547578810068718659535411664463344735074062412219167571764170986219077064646704281666016517528921079724237361258005177252163197736990977215903662779901059160861393360333939974094341614365086527778220034785094382885725027961137625980468294342819123537888347698825556223779606102814455360006295773023653382582670045699563015304549844072295716675477958156750614758433230213836141064631593400588395255362636118770773035474781721751400405502111408903180625518117658371655632413497674015620893898723037248521770802256505445256110176412447128062393094358184539864318291808175514102098054113726128560425441852907921282219513671308954677650803571540669733064315389807934715270321744269465887241162942207515704962926049975245786508133049909783615253264038692220300002968368846252426128034350765620085294173793901958993860854491148110635610323888335129305164433178387813245357815022223257746296242209154023452905246955283312746358278738934100767256257867019308252940754277713623965019340521357436098892330959952422502888809750634821717380178808054659407048797353579488171078029517455955841806810259598590016356481299505460246521638323235019994161636701749013432912757524540293973424263276107217095355519969023385954202415231632358080115706836177616572793243558566569006253111015420761598000026364584424612013050375982872025894105594913671698538865687027098827294048495208695134397030922236293299645656907436083133609105124304366332691553317391055698832728922309280193241915187236631984428196317230974109378894875926524044965528803475761246151887765662056578230566933009925888087066959092774573447922578300859673376454376556069055880489205140767729673270098527215807528413968513060709274800607568735102627522762886472258837943272989434857413389451150440186882014762361818442378667210100365002860591346991620860557025971858956908626054985057430760722345450444972631450895313135331703612481863715419366152343224332730216909016547814126724585968170344769917255601451991743419673190114840011015050039248091065883997893831260371481961965526344108706192748960063667399692979922133919445975300940966392348895194529038031917607545588564938913826402311688753543757294502304181621960881078905383947677534966418892453064631623251743532295049877261628855386383315715960747904695384284415726688288716019878264080419918333050401307212976096664380971144568364710484293049895756878150483413695978342201002793386880045556159492453483263302775154845143858341013490183289300008103793708150666865511820859483943380284223401910762781339125452807785667760230291691933811232189190735659175859373829416879773631228875374940537239156114932958439337146645423818075695834303636467804857763735160968690052162039266314707768346393905931831748004768020015223719973534683374623721149418842431153603679636606980595152518722685958898481187989543029799945271176130085455807330676702816843176744281250832506743032903786896581540895961165521196040768929213808834721946197278541890100664071944797818815042444406416659835728269548020932930333325239072764185707717679960055457252546772772099113251843994383333042894386364843065356452831481778043046334467748262703494063997119210721284793562908308366638839167736377898142465851764751962372252123098859184290697571696113816236153770054846208447585560329660257177367167288465739286574238932373047264819146572496570705764638317136777628366879683249623544713691447189401462037148533256206231451813173412649396429290418732213667706869048875971266081794500447852847302852661002660503319536800556362548200753261042096437260840993803763224323870176839715203632679812568090331685510186342583868250534896073002379213548895419526225596728590502303520857634869043314690397087754610167337512054084003817650270768944354130750767338773495300630777704664782459177263440241159037215488010656091374515847718237357223887761193839827688495335320388762638492770754915782599240755324563628811778516432636296261520740532963209371907236650578608408344521594477776200185275761405487174447814170984563379469744278805767432225084667850471221852870309702747147272021228834779950726610887392403892913809336372751277675872917242228888917392165180286829196820216817089140320171954329147779648548187303584852054638460475856991133011230579928741921886001817566199341228209507190916303899449795093799021333446564543178583779978250594542954269832275923941558067985808367563818502166280556193481583294678517494842080172409262797471066774101930330506408777644897048872487545858991969026027381738196874497017901553512369291933832470476567147815984606935976248162996469481153045270501175445616786478325590851676748558147036873681601238659042691692149900013145323693606953990243500068852373260038209863305887760198642935705493675246052306465467112447975376569572794074950911509392222403493260552207609596894738749318834813707068422210900055283937958780716400525355245353361726356427017033042168001117983619827629915878603650265669492484932606581273197223366806684483309266786937661696756064349758049688452141282561509700926291652195758230703725705305106205649719965409071592486768771659618910703159650631013433630130018897788592253544315972181328365781724521851707029050398802135771332702795313123307752393619484413160169919187901501211290190031935930907649084186952445198463013532905740393700158776117499579437693735124396474861126671179672596438923338301334263743753689921898436172351437605532541478907828409065995099101369508105796720150208037699430783531247355398604017910071817717964046290886845814530685907263581905802654321093682074469496078399763991906746128555410608718090756784434279114848667293850314111988123887389929895116719571046302424427501939355888492847079662337217245039055299497440437871015155071190095465989383924089335836031036620977655847747043538515007839342270169300422063644214847179646145843439696011500490492654617972637596912597276699371208961927779963264759782130572079080202147938467987503112285734850175369936591562942376009978335442185037713260826119538394853708704980829153218708167463616533452230792441638013586463564760420322505235359885829714700161465522447495798164348680039889858866449805799270903688856359447973174373081021049787815319943665582522227646200161754265034022131595316827111535088904822752134060435992776327929463629362825797460934771596446264575362745972100917334255813009412990207416505540889082230835383059022352838077035645861676504768468098131369094301010105913224855904514488512583275166331429425413932473957954962994854500861636695066352612434489962577932808515085047987549965482395273470929332251608405068042093688493178130323628720923234746963724850760341306789051402558981660595530945935378061256070756117332175132785992825813724850749562161753068845797494411552762607852688917327678670736452874153492515374578725838708738786814865808047546194037948107596667199600173773756564911751670905692151828472488422170978077053456068162113481542543431269094342908145810632744774529240934522765438943370433226182188732664448581996770266115125779016924712174169349879801996756972578828800316032604440175322717261956117876282733565787730090414297153777352976563416096749702878924316391800070129038492875685240107341438353945947582834897097747890115136414856616666179297636438989973307212115559408614458048773444502182415785719846094725253494585998639684237474143347132552268853274082242666563025376349415621253251928786379878283588860783878162343736470779823402452351874194933481788341462483401432513085823407910078398401141993533186049100617225159245541583809182161506155733487111365122928611229063698320419382383972464680128208002353603585404070481729209039320617177119558854722513081610928993756133434955720898085720884707669833782490311373359970948460263202377933992669351260262381610489728444496242624328137689629944581542572325551483261110240133489503798996723972053071453239872084178869326404858852117403131730491489977096399077722866520857866410014705187375984757039033628858275809916060424946884738003625663625629648201304786763969341881926730888657651860238598091524296787682829351481411513500277571191052178171202038760842155883483920090469541970487086433815853565862866244419670046037069520381656974192656007368423280848002170873803602890331582968052202464336462299665711513942020855174387501767295159244843556111006819901068848558882698231804172926427293516346941429926377329155993326309133626474815884612404302356213586007666867081229049390667556232556616538068978929412509451221786564551439247434996330515067248175630959860958159251679880510401947114776744551529510821758926316426624547315457348773796177175910085690735848621538028818464162959283869668499875128218349537059288091694413063417706270709935801758018434724109094490593184734949203511120774757831557307764538431934866398885964814270298229551411330201117793160983191433823288554330478403473315264221908872864277968340328902179751685747582212523272784086264772753576242168816696539232031140497250449412564895333031605396735590374056072119580667965451223412954894723127888286806934482203612989463148462172950440885346587459238525241130024961745754264011504803173133885878309622611542551772217891104662610082252077705799955643202627133254788426073067654872651403350970155134577408788641579672712477322662177324189747159167039268224267397367051409439344539155307531301158388670521045271077851378089916009010447100580330328091556410871401801297523158446881393191008183184121316641399897684162409587210611917228600945547117765291850040217686980113551702753837872061798490836897167533302257960188835101516764759820651313491344962694634014191201458032612342060585803780381491098665677132419979285618089669852884718604010492655428759972154761608253326707665862499297890843081779586504608521740742589106354267259718402298669855785041022325617164529451345707734079465757846693364123629550846628582271391536776963815979323870906512987521799041700349132710879713068503906698576601113329889364170427950641353668529736215095617012584709294763422816000841410313638504208554539627296645711282916517000217575500110099761954834209463065452063934250515861587962247561454570375520117573038336678199479555040687039771443183492912975386228835300012901803489765404311688868017096895099301044484735697206106409059131586066735559875008229011491713562717692543665723436729908362337157719648747696797695905813856163833429604508031082548520673373970644096734702865690239233347710204701112467814262404782390274640258904295224776104958982499726923434765072423116723580978167500124189332505282055533985281475327197560264093151447540724763823138763533726085275234822947675286985518550920661076873844131423759306310277183679246171769158494101018602342739084015770242908713131101774714375914223132273567924243426041568208065243331726867183113635017070605400302524554009918388999190809639512722673874101562782772457481306093487061969781782385877060652878393627027830693877021502068823863043567985024350587871809508759775714503548668284198696995355128593587319323762239763913366371471602114490318803412324995232892516182627283136656941948141913367319054477584709556395742206178365935411177681364913957623414742257002553653120098402397501042133116124177819130611039720707182240077605069134204273265650004916906156549252562554393099563318026587374108172638371060375308842120903468327835803338955981580759955604780200176394263756958942392876539885643516447778742747484002520006520015455550974469723519034710491238844278030406835584928913396325451480264950463153162912441283591638175732870566037347450769874229801655721200320469788553531146420670743520842244866233391567583883118235501415785392097452568650803550989192872223242982663649799209460291698719047766083257136100086963953791569218242768941459183787644991689827217798102831701652376151423284833900827277555946672635461139486085702337272408176970527286247675303096720409022523385823434582648789515094923729998272112141004836052874731576249878273846345139187564842841042872344520881198632143954807238716875255189631369077258211130821650959067313946310595173744765383847631109163597590228210507738166509011298744242239491342729661409302981824279028335037779401459397662517831766256668992530499104014809896556942554815961346780087621022514758477785822183859832866498355125512676294730837749393182744866373642871063821107778105450185920940293514945705579339890145428390880339959429090085639193757577482570676133071938091659942529707942218812745722477100921628854741392069021657193167216702641992718253518577476965919509903957631202797440103883481090332425766646939766926403330673003049853168539355384012480069985546147263073066720313779052322404785281206981358825222138953677101173595318819459401156484942140074812321573245376018627414573198337296682256060405722850034089870522196067676862550489563552819980573668412044356251250791374315849275974431611004305124312752129263560623390862457565723358169730341201564983001429193326604097919601577119395460558928832913441382593178813567537946742558628458060589713498602239132126802361977002213705922499656696112923475353410976069049435717592320250608213862578962495304645001381267698925019854990968922339813146281478245041241912355543114928277330692721248140929645899799657163071575280689467315038895583735468526971454300351035154241515923236538859093032690541514985594684340912414238344971389757265549374723655249059581045467413710293595815606356616498078201237503523659826568958949121205944746708951516772798343529555922236642684177698114600505389716779560574009360961534914219305167081654386541411275844499244741361923887729270274221484570074868716635650356760078296115568042783695411214253238595642142154318583244463017100036777944769544604502916102545261983704690997372219237223414572049969253606963918023437543172811671100517188715778771366306653470436566206095584880371136427754909675898042452275683992888773953687951784862186720357285418296129285015324324493699725412011549435738181236192557842451122872988769668516164534072309238902936335240697694496407944853701757623830814677987271918675170291551990258578947808828977040338466567892377131710551167869160828546673334799460774862714020657344660017810907801850800765179073967884370206801291319425011768274808262176974876952844849970286176491878652181973685629814745457071839113767470194916933482356207578786785276780156749197725020076766610276689705321324844453689076852571696582048615437109571184457513400338682039778003641293360020972418652891648636124085577742975810515741161363801474733718119392946522317076442515322855275803403913971065702679544207852949452267853140798327407409419908940637432419628413648730648920478482255695125659550298928288431704179695889923722481200248751567880104766977764022633736290982241848705166965862541263502768528729129294017777013616804264788019779104874625854720828437163106184321445487952357056632078271480918912443382279006836422453984987465306689223134729233413762659206776087543169770357147864871937426135287277249821649839184904986742783587592179891149463336454762948586617761271665835737998844225755920186572016057492702346219664979331995274038585509584601128861139180114305396304981721638919718479499040248431914346375055137666296049738431623807045287518713977598723159322828902949986120599852247855851829849683457227390875173661209252300887266602729347543469634573859798576037299280432506906262369192107616383197581016466522971585643775354268852003500844310323168348535100863924608673547733784213053432895982559845543561068759719166125282504068853028907524182349625368921798714964859089794175404447971951305181568196002265757185550181467750751028720398359716635921989501383792879811306487265259318593305827817664883931393017673422079033453519751087395473695346847037028944338110519439992972916857803362654495898027955523726297778074113298304740947749003484548404092427437363334445830032022557141355663678777617628202972133351920132820304264903116974051927829333055561065731835082267917126679778331350131614280787162694670523841254017743390854805164338516693122554215654115776111529623346773378998732445592167602254213432739174668100049827233747903867160493197968438196938457866312231579035530565328110923518840989478554913010037960446247353382131286717432943187478525539144357280307406640262489989101542027339544240744635725580781715907248287009492050346469321142303934027083540301013551491744654577947488585338759784642687877597975639859305330107040373645121456939037494724625989024672537451258645461431366814228157431007766484661153765452162980500415181509777699807515857222691909127018348074498081138750858905406906043693809033744018143176716287696453772179075711655588922382096529894440961650205179090049657980938341317407902957205787809984349998589102453278248993023657707693708425400962840357987587073937554039259361082479511828184674150510753383665268907746457317302521330887674461678828917296453687841170434173796335388306896083564629105352876202489486390359725633502778052056468690985264409797251690549301597729838277148103336176141974671132032517421456875312796654054202219384884971964809190192872556465570502136792442647825401485221862618871885017770389418583472316340950987620033565412084259239002412818987188758543453084257947211529532088934501683715947397239507628323989274953672937265047240620491474899379699474763902865295968973653959721139180056099574178237172675279471184804698118508143494742220155487733085352552018565531667874111739821118406996736606657201614726959664699428374163295005293292987407042256896814311562833222752536727407344277061732374746050504191738697460324473403203400271313786353033768898108533529478829374590272087813397400715579699543983877113510415050461472276696024838414744282985339222692231692575203398135474726675055014514760206658739942639088911081028107142189843705681355916631607162658093159515516628755318038430687946958186705915704188166399708744757261830816967992906575181471296457808784357596069453139199678521618911112297975822473687155477972570373050046823613241389411183927554643032893531221343160283994351056869325239260843547758362051906526943906686098259334634952787611567423904395541723604463774856676634488814343866727936397461298295627518879534842542893788352042096669556110973817415003548234758451856070666360668473749275413880346765574555592946665652709043386324535727654994063727022675699550567653990562206227558742021942535993196460181842858712713108988755000228902259961029843963869895789251560201840232823806006143192545594006643970267169794437177044379117120190228603743107851264643917662502906764815423612160594119870306171730983232915665814958074613214762718025570339606743665528380224608869606406064020744847114571394907135680603663528478072866607126502216898052248340859718081620989800857300483832791098228115526951592180020069110163969733508292200404153420948792975799138584934415372893562865500248488280052834460300387519283933919487212565621479655292848944947370476055565272453768605791186651752588708957476228332767432787827563935741004311392300527692979677382974329578406552187779626094855526794281629568315769330399112086202591312063873870970354269552085247377149425481098264974243890563949951366726152006692055322511445406103111028172904122872864790494733623278609186782209403192358430016082984753629936303078766559498889039126941510087177486713917251453277922474590506798792723170700852909788233995629012732316322646831546533804848288707771149482911869618553452154958819081537275521546481104351616694590202188746219191626870962324069669873270581377051120203281176509946476971156815231527751272527035266908317700098269868398756647636316195213215944765970119156655693766291030819937665731988044758301740659320150482596115794382948432813212986769528942274448963877634813146790634292084442637586753247391178955512333420053109739391024140713123424295628816473657605519620206403691814912300940976722239935910690133353033542705269577706800949864506265343524820097734939039659754495559437218276594076822526102164087450882939634818049826084118861964331997222015621566873907223075601108409087169376343151551295779615938889513099020582664400045380027112589087963243541043367650096729729376148327878502758118641899727498244225388033607447207936863863134439360311557939786243307291216918741757570471656038881292628818430159059942017883421230340603058900306467958455933465921032984569385851541893522834299242048431623897773308195629304891203637847166303746749567615353371548173809457151827383815924742471171620877669048487323338321633382186813621817720644960462063279888269225766033319830274456191649907011217067016611765481623866476808908935840429181229420309677845179045889416575410363036613170596973331122096429018008499640416505438509363104031906407733092379792426041537045928715214071266244067173380438205426765472462276584246895029615718365046098408227371489954163135669057718913979870885421698210637330242108472045775279085800651221915930913620866451835239841642342384575182918606163439554294339262236169119990664373620338722524834513009187703669458256271996634137007013905306743541603670615968262722002719729053176093773269647135079084017620841384660250898131284796786943385521698102199996606441811812682443230729095198712320922706802143269178696903446115174221432700651930338233988424884319251587277063565262640694570931851010060567087866315482693998694685064491167022808206344494471677448163062622459749618868103119058505323726479430858845008010022004140416821134364980738026857136543994071573374548620488545839932117693338238549835118251796986204278939276294838706080139924545738469976876275232327058761065541977750147288698467496368685571024666623047703199831752734784503041509338222594020592657181147392432361509133208406825077987436527778670768855231945927359086981609593318490563530432153692794715549975884012174238620951761299500878071840744425618840111461620176990808261421140410786737324348422457415222165960975725339832583406606384676440297458378133127645952588988563690697629749504194715442799953148592107236044241218120746615928496598696821209759773640584111981867084635396582338504704436018149743243584605927018065753177838786571539413582967799116208868278635156720721246094382999607237210058880201814458131663389771084242990404784713516187703082219760073734074754453723982670184654022222198600682326248461835708457226043467929736759362531140735831728915142666975901278257019680913722173047557776149079411342473799663657111217795787083955980250664546248081222570867546449784775937316790867139161810087602999087569313078509201587649622925528544092803551992196447331721353122909706480828786653875250784769480610901234153850666953496233591471659816242159255308567392971297518886904908882725962858767066982745005144132987793013391565142666244292148627521172840235010380250237604218091175286970982864632443584730382996344102998477438479743602362347528672215487369153189284640870962209224002739645776118616638752757222587270567993758837233298997847614851868318857544380924655812993451011997222524714175451204900704805790322857940722209950967569317067665564914133576273099526299809239918633491610302925419035673082424686733186241220861256513227720086359912247444057185828486496975530835238280659966971068719705743561596100473551749737652819870973762408310325394960143335152113815863778645236841211663827195935294935262836401714357679979183450302218278489485014767258768956503973090098070498562493284327782618407082106631081866035738017818135322433301613911956179491847186168862050358439201975427498865017165935779158878217329725530823596921307966162931861003138666652250923021151405309885385373655388755738844710832615709365419259935320548541279707632468228269418440790216193661297167584786943290839905134619256400264020491768617586942692605618024137741541779528202226032330529589683952425703875962233929881824699367954691413164597534024274626260575105066530495574580280008106478205749493221614338308543463556956838927077424997067844773226007951292034909919931307708147864514627090003121316681582428339889563654020936188275608020713189741286313063076262286686124504725815917999343809707066509978205697390922578757810703660989919260902676116192868111659980122516818657533815994643133406611775822269297241309266074692045059246482682141602076464773317396127133760309296867538641737689445963611558901183286816059199503576113682818347282555775667594252605835477641306490687113049414526149389252417230828050261400529601975579574709024674626104760694729467309780858206765721081684521269539981027211903149136082055703904443721022658963530780323700342433827129178053526718931294607091225411353594988136149108335896035767633949504909471863539874394313019799445888022785661751532779838204970829771654908224721774482952698474539442640256909127240801622915473345088072277315258808135654007526532715268658717159350487889158562728391892005970247965892169730004124887142769320869967992678720618795207332507337152929468501394740652694098803675062631190064129367228586536868626197883587588454796758804778394998667966269242232120411838540427924760128435679934542005433851013831886773072194718735544583679787694320561072351406505142069147041715466689952988449379930043344751987670516753200261510420320371626620076182158072040795034113599889523934044634940252526119648591484768656788019373802580736829059094292846630259758592769471672273278285877177489748517296650265843639945178902788768408248889104188925687323695186980671592317754086922499462703454486461580772943438537550671017779104146135119674836814527687264831574099358779031041485523591713148536900273400389412614171249507323668460148907329067283255789547720213417275876458297331577805216129390520571216707620566424880191810491586885408254118288142239275770370369155077271493743779178096027176829164977354397650306769408538301576316853080509312012987991384354779756302054499156046270582908495204725192351126088235691822288489428883691736527849545724216239405019709483499985079967941542793101561222771353833519098416172080495758073589832446936492908779786496005747484397640442376077705456427904944950689713598855315287003361702169433680094692803906839286170313425502377457490983107793706330241278954734631541312849768161125812382857609412961102702097127022115070382352395313830378319352411744534405871350521995852344620042088908479238702081173311516683717312522550960697423341045319481361800073082838766346009339611834166104912838460273515402926971159788945056811501357085620701953091067171593721820197526876719088405086898521786348673521396732358215118671513216210412091141858093288463676221504883687915790012819281858920498421804276547534457965896241181929515308667161926228342124025273811743809568830501929262144721989049059757583308079788917226831956931283022731300897235759081753021935536679929201233182927576158735444448902048180874010369492124978298418435804357508465394002343504634214863504932581392372031432994574324355690758074820533922135198890079372725230842793786805942373208136190802440886527797076628958163676402453068383838236029099353740027040167156180946922277494985329763428920993681906133071312937968931890506979023997959963056495342874171767067715886043437242688759605738781371898857451677859920359644818595037247578431020302057597174463549470733248028150453034737966702815224521561910787205656142235000978872554001685887159562812691934466095063726756549859084843055782031873900746427725570346937546283471549769768177485525769517790965366112922592639619726125837660425217433987663175016432539595742772447879330632203356910636903625808030931172143499034032811653406080120191925311145390784582165094321141851550158543489715657071431644806395311320628139739141308335929338658044635289849858811348567775231189751132619490591859213434686963036501912741407331490523308205764275903308348838603692109663543673868117882243999356870008106683829528488427328831206993576141270222823557293059313137974584379425159848933353888421792654980544812838829177632110777665160189544030293194846768053122807644354967157962875524226006667142532923246758258432921638769858067876040647843385502217675906588385864628862976749982045960794279751953160678932169498593011277988439824823426873755543864975620666667331362917879695923451429942304022345433194951817556242806984816349478306735016496886904239396435551998732269279188725451619609112245378716938808938558570542357464794587297526991800562238945661671573927122232069489419360849773498131630671154559692340466737917379021022257031605065190730717438884306731799656463115947139392369690176291590271154237347320798978705573950399736761659450123901371407731218650939560744016071486235235783877061340105547654637694337787359660158834202647492045943562321371082160179671007370986345778269035290857423553503938133011464589205439294212631751917849157066335431913720509418147461950864127677415273656940173076303479423886895645405888101179656526468775141389679662469113077613212452389668737984182814563630029922942838312580543078026219955164060473178437649141835808515842898812045232830559542599672907644454354138794187622903510749587933667291348318595136921697376564019992952767911548009987354157481597138342960907392919872366868631250265446850138367637013219363028884723499436042395529181321896839121699961699430957154857124832364128803038542540902307043974697458275752566989748739653303333093979651134069056979786579152252187056201236828273840386133255007290410646033944937556488463991685180374927260094142555971000547729835544262132994953519275120626420562941253381634683466646303290833182350121378309929145683221990792829303524692626944444777307313591366883851991822440193092008655679647193005271657223375590572828136392377804924421225062470025439967437025528376959286138365273424809901583121831058006599556123670541189621541502009107113192345143815581980070040801061570904353749412567887833657908819630828354143911108074430828826957756672910709231006796971248224463076112229632098565052410866693035678670815940403612321100584867210185120829400988345049474180605023907471307666246648728621633509921960113044599642027572518752469311049927457871727932323200900696842001266506606004264539398270485444585478137264530431274189992696997865979028788972116633898422156598306252264106896779427171605845771876168360005832820575903556939877722325464187927843824970115824205384457128972235530018718021046458777469034184572046272145405842591446931731849684040082104197666581010532370426320649315922247028532240203716682239143542986669680977194903487686005035652539929846533844396477395231635303518649363964992729613202321437807669145599692960860861245392634899633655428533333974185851622778506442364529531715754055031090141031228973336654904048875240248274507311479979869796518869613452289978330658424502105662295924591291834574334641436109468124641028365251602516447609830739470073938698158650470992287260179829166952568749052077158862399611199512873078054260039680112213480018100840852959330190060229401376244961782682974144883568147649027365928607101917588928810920252662228145220969899604527888279528825166878245502113957369445746908513058008148737572470426476705525331342187080743594650802316843169163487983784576923001891895979414168068877690766401195017868339998932324942243465175200057525864117685928995485483010683056824909788428790976000959221333478043544415286782729883121292773503848725440450252343769341922718696921252744604596036363836313469556129459324718292239786067997119788020225159710822502171063012038153494032386886455130297801086858350302216416525898059269247842660214708050191787094629155921154937348770430620640794912198307193440126512694573776795452721352754006214705399739956873472314544943690237544339907557906289011082864214184628217890680544495190639217936775877052957430817094333909978942650342826942349672435594559586734009767884352550915406259669628942470703357154625907398298416425126912416666098884575790696155610047018778276186885181230597570156037835671052966832114161184934453903085928067892336220502153314089958817264229453388606369220499907965463043124071601533023900781025694465720730576170051542245997806083740557555707147008335648602086156932248389796157894119770889315499835302408484629210429630589918054480876299185368172541605840565106925488699766626652485956423817388323161788066834723807656326056540804874593378779297322288303203259554565587974143806849457848166141451009060940233786147767140341508295364651287626335507811108461143901385404530071044468570983537095780487701411826871363224317600317030233866573122932712107531886400321852930836393744849638030801778565659802502731860457402407368641344546050868617059558116277223665235878567369890518780913466062962957125657350957150623067103821491339246706851385227216440066951945048952654340830573948585825771794458424183896530292985468440113844483040363711119501187971036084158321695351762412254495697044375672231254677411451381775220159660986908960020527326455036783731850321719651789523652102756961454048378681272582507287829299186562487630582764279203405419548636416196641349860763389805235381190343076003159275090325944829151148530643442398784851920082901082844934455792234973448011104845202038852333970494389767677713916096585687733332610203925218696120832015036001614286817270966652694532278649103502614829408678249307364845680854136599974385330967905867379674170311880879311925096392841866842233707895432543504962151737016633588252674651327628153472826868597176490271869668487347441354322794876356263021045506682858986971343405883682176714568631239440812770020233441761196280834879765492305846077025887896108017005912280663128276379023903659434452099318765034615928449698604891671835009898707734210385999051128472167527110338448622603476978803621816583579715216078922780172077782496390680628897699050162986390127099483559967516877514223881854487604469678233696186818859181482943326084095248803072696448870821785621522066399418662740327433987676760598779995087244297999590390769662051724844249395844574501994558528909641493639931601446733428299615519725663295491802255649194519190863281780281187667958772497908624647066651736782289739758359796309697468607390708847467271749254456343818982985876999892784825892653988671239429544749451455884751282418776164680503811561395385846952273086721936567135554555367609722644296798042355362487031314847705965448250552966234187913703240771670620266595425798326360969354701947486947490356147200347536935197035591688117905757597180456809097742884047617356592521093314835888798215216325342801275148565312833275237250030405338144182743345619525467703417744789076216138860336727900076102460004564734465917286266618847666214831846935606117608303532280615833654413816978373002841580333707337457584354664178898263381054734381751042073002800236813899105628323073968743228208207352125510024313190034230077537262223072038762566599232280768143858538173830583889234781847612490657605241067348627080937169904621314983337559804023961984502510873796628605034533577318663967186017031375047375876032125653349027478392538156388540413245564288247597404159453083542223743468560247448512868778838396600995990592922007941356012304744366164397253818842103660789836085057224683781589416068785216324199487622735593601507122420859209437235354903523631585215620510342692399025869335999812209681046158443700763838434711024783069576532807615820573322982117049285606758304283491737583369116392012015480031680668126922002286166306953018028677156626726906417532604926313548325728675175346439152246349831807005933830941721422873427336936013344741806922963508184775194861893234800550356849788902338451047912557041050573939479499720571479668704080963283288632326523693248904199157577136181195465206827775065673099671053533855955100662577823174491415155638607602359431170928791481144543462458242346924244285138470577204728157890926805626259133318499702598684383741881812923339385018332507920104465258840387741420872060674968675762562969994127466603082028351717964629550564009582859472702141918936875804414635738900681520414392359514210381524978050364036736789583276588232328371231933123947527449389450292141566278732313439731752825964986905271860894720568104626157524642202601209866397499349899598490318270683742864374104187915164738986644451994825634765497724653460509096040814553244394646259730901471731938217054709556985078870412064529942227655397417069286076483064276679735104025635390408537661801721562052358470975382355555408630144756740544903593112237744928123128625394075513380428974610879397958289480011211229621204781461318714527737996531182243290577598325679075589221782368457787299324914566960160677555308393504756341608532548906709894717669849024403790837973512328128449573812096986045992132163456377595048837263991818349399505692114012214334412491338413257636307164637363093735633971662004850470943067228700504845992366217783742466571944556723976764723393231521207323962719975196561997906817822090306704721290376388626452528377587388619505266487847995587983251962693992791306444311063680006845841615923639393624943040622492057318562192536480424774908819625080297288666263540267226129720748484458806926283118777668204867748853279113741539205313004675016578447236073458875954327332101793549191055142435779641139570084015256484989089534000081163381616964297877552554802691234263012841072033973190267600140498509238505745994896672200556236198842130728088539012337958643589380326769484551659355332688493535977372132879949320018657596400751460529867504725857862147117513511516873999195268295326232730296788629841858523282315875471173803290853485742543732978493699649061976818502892952601495920459046040809781529443396463534128869004578233208376072873613368919404494494144957036554594419363215041618876160053071494885211438516476496163573636432234998517842440317675735082783786264150711443948416553900682534626881266175743632099020874776738236203348224608671235514354792446223616284876139270292482060157195477051197071448523317085951383405788084913933934404546610970907004279553015545562997664319083174566781399322802070243711148410292029605268285431193422784349415735876099461360380041634727289101390463974240662080098591215499014617557170984466956460425040491465493101764197385401954336871536303691972967828512732903180914447753624546231685526262970927127518578657946458468048727244485279358292230070739077611663103765697259278586881443039382375124392586682842240017171849735083649689426620381471204701763803921298848035345805268125296886127960129716820863143694063139753470307017163171819979110965689747645053010905443645351396373451291765672832344391572264756497059698464533239172335101886813446201815434549055536630538919120096819289194033990423970413358216179857096375576989005840194043247782872982072689361449035243242393965535672858243223823717855212564806128719753135973023255906098832977694797464388126960702864119037489501487931114590210436734151763780908258266933555684318404643010635526817501967822066781623230051544765069602463606316679208162079917522353169316629622791620885224311185989507459656761794901864250439930337319399783907356261457446831682592157222263355612437561827184257676008400967024412138369477533787069826132076497016627235686838717452657200563464327322373541812729859417164841690013731910143359517884468859604988824948016037830264303475484507475257799661994016336386893820079922182966349464556939623303219527348713252076137966242989284138271717558332672654665718872237501874382183620709804514460363075081411708343489315459103070068542640568539367254999870892864074183915007181558132907731424043281371853218895101471389877289986812068912383878805901248638122786445858355618532886675317549197733001855255164910777832013361023234671662435696527999365054800210071996981422548234958936305848237382926250717223385792616578075970079715457435554418700438732567231563441160338048182183337554781197470897816624290406795419529804957965920808361540478385104336370568526393948148757868806974730694482352159909534126186028692454951807864863406396393872831453894279162403330053062637686244996232852907855566753292929296188070786969400891602825810953514514718457213660926445508706581004552613054005616808315310694844296455335764687767428965267162649863805955695127493545959837691768275657665928886953777349258235380314338236560959382845218622318833888701643879380798882617779356750595467291883871117834752236758221280410491020669263577304826284426922831154044233584702072973276332795207494755702522907289039623771664752310068814768832371104832348317968093124652168313132673418862552065864586279433998370465868684875113941159787345271100952874361307359580992041588856644675353466207132844006471804269671889815013178164967803523105540534926459905819991296693668124269743155607760506883512308337312953792089176863913595052598754116590075490109400059241842881981525718441427515324838876844137624861819756201875893387650342375243273285085471696256842194981524450730182025685755053137515044744938168520696780585892342631440671330080938531522675661615195160856064781985576643346169307363779543241542500607450932621863345402000921443177136498446859542330460466964822231362774270765168824060360273527467976186944329578659978674091844234118140015005596493497603992886495620195927654124899571316455645913548814345311202923701316515924626494042528362888293797399270264026701562989568103193766746800827991503598182641865525747639033558259721273560979498806151055138113784959102069946591156914585441606111728858531027979239394134030452222619348277741850275507881664834522867315692795252451116046774812931151824288614154170056504611856410956158386457040388860460094990946378831688920279042861073479868600170757383609832830076867847517231459784246084114118078019183134728912201324474449903078398271655029095692042722414896410103607582585673877555471830929253520436750832028832553357368308361863341248461427131278855451295581551272375955622609865076863514390263398779762322553481866850657776375250898456397531521673382033549691725477678532631032496568640283017748327516678246407720540357832816329462596597299871427029046034165579326902383134904135700114911308331334650782652176331765052882838945999338510783420792036248056285012470041019256565165733475412184639408906890506159986848438491104836497075332248999906294876027685185419108815003435526372591034119027030921235191690640777847687137583525424031377611665772901857191262582473649825473411524885576919593283737376060250010945049473686993113346648253863158309340652655950281395404300407183736225012635479122945334552179363147697987197894660749075667211026366225138941309706927478810906376959407546445886146252633480320841030807989990210325677619683181502561856963746431945032378306888154463707060119621317515683911938663731698087674937745438871516657424207417697432263439036893393106630632784976838525973797827202056331989549396826948000337980628465845166913737035531805301652641393311012866773852109165907379582221604228430910291448756335968574002317572994559257645669596230274762880615564794898859868028024516958368185390472097221437512111528425049073076387256942492325310784875177214506443698242169621440152032966410882253151420413058205155798885549039427137134300957772858644630540073678054242203950177794835767688551118705268588582662850498770080343014056374150728659002473093709488270875925116434674289862621252017579533467139882226562453321371199552062720928265119121647928206211518215084905192635080274781784699169662294465464101535553661723133216293269732296305301189726721087312908810208572367353518062960555071981430808280408629132501754634970498660057960466107302702216232255835288223536865642545681678937118266705414640574840688430054954036894082185827673784427568533900096556027082273216069135929261423942859709508270686474176974574834927849664740239971456847335867334007378356531595320005354351489303854902331811381649717194778692415190056014382072110785609069792727059033199306440472306566732265123399651278377880631445230067649800518117783523992672876740312719619344318096818674146941915784175066257735625085162710765004340431185062825265896423656577240613151040126247574729842215104694481999067313770185057425936781652446716504063002847034455575762869598151312388729134443066755768164623129520736714426189476422332918431310495458614064100473798140410190373894645713669891259837118131580121708388502194507260447190895794851698240447478345088182183152846664741171681734491171287672756069858897675022552983181093453641803227094743932944581920774021860923668292294013668499599371999772910054407590726408112701665602579022475851961345652167312137670108430405829756516406862685283723733251857803857276533931439185494803929168514560337343983634563684207680936397192498754640518483687927098087230339378363932276078399334039595619742057711690236702561874475916064350867574968802573219925261263234259850239050885480504556792837330796863156235669910924052698137431612046279484704524201210827888058425203256897952385332578207718080800434693835990721721802469766211936199932050276849804718717635887153121429900901327939947010670383870256395160016541318485704333662480886270976950527113638686262696543315359332742152767377860868412165934963228130632345358972563764615450320358118604165604480878989474389524900932943660029100969460836845972037826892590841961148463189221786486842034536824739388161675455475931385476969071235034040955713792533833169146870947467361734882974277712664558073280295612377085809841523472211067617399560468352792068088372448537707880242942890899936530140925342783758381011669912502894287597624523072549044544170159894311465703316933696122905208345078033016630397473051137375169412917210514254221222652034976375766523403936055035201319907027658130082471204000319948073923710638743328022033842615679715893752311140905864423297198034118036930307818409451012750698105202341166048989884434173360672485427063716236638329414116291494373227010275571720035604698291295807278370090453681334119779214739233899577505335194055585181239985319362662605980147057581159032822902285966585498282178780648375851965866198915179672188674070479535748204329909555508838465640957743546972327687855355271796490879226824402750702902374329287211436276808585187656304238120163676369491867463930912729125958898396794267034527273714379697276483690663972386678093583707509906965549215388793599208164442930221643069648583579238000781240135943483237191268608252306838510145093455853660119932857238222181880817217997250752030772716286612294696708032112565929998454206421903009183731434642213194514167340790324775417793082558202187435290325588933887935159750921309977819256177463191715606865916316048418518757822784163138124114988245580365572289875149440320595870296476662806540620397923019568865811176663951200706459350762502142074566375983923812037343610593136080081841780174179460186708847574186317267421412288309213795288580795332351494796821030745794529231673864930278026655197649103696947453531669096432260225651937363851403790081895176217490457533388168064768875500785911130679338330235968676852681414944541905608758624867138463520483548704126503549722331067259463648736324738939855412712607989132892720555759253662175459485161285770986868051972954812665729838998496580655588026818185880815373506688796903899765933570521928727887827935845227581059535165485346775638821625271585787971738774217345125136071984922736751481101455068536181384990033442306175520549895231927835575605964857724391515500023845715236430204972834068923729826057526954117758913822118767958331231181567933998527983154002557210135529865903311866306556878693786752730111313901554256601372036312960723485182889510441458745109501801910917896725629487577620013986333174688059934666423502112713679027483442531220723569660035260054748341975754833381941126383582920677769508530900759563380170664189849302717181336561937547655215441247157497775878152813902385717136522355488773806916753526764998941274438305088364169808346400370652276429170363585857576909207739852732463616649023890480188931888657729860951425211087535992949877833326294398022721002078676658974596607819389558219103951156383982812131052482925817521268620963788402806233276637807071749588215258827031023594006443499274146698221822889513594525889541046667135896994387044220087842224292866080146452017745172995281028243928926640118145425121624923813168655763761378129285246635313635823221950191802422600964296702935625178633244123275359416404047999483224202238342146728930518134484708152159762727862664161116794825943608756385410122079991225535336464645931921811815242230576912011832049053443998202659044226144531718705907742947192146194767813677193995077677896188591456403350721257591691764170962918393042315998200747126427562453825470001175613102380525726138485688870698296907909326116154543278440752416621745357993542010843278903889534081907904002692165431375934711448838986247545542573246269007726353196372282246218400075568352572867553016778835098768983436628203288448304080230476319182980173834355043076738113049713616151652084337412598564491810083580399583258474809332700477483214434343984550747162523849835617091506445138392880349387904082295107436282372520547423453774541194794486195985498213935245805159052314649453040895836392618310340668809661533613921564224906122752677743572957716184580117876262772868952452312802474607419301023239104738086449017263974462757933693563419649971143318093015170620735278999003011832624258185513558244976232073758674433075639990089046090672547921061848591955959170544131420402044307248934938920661111290545871974301852198273169103363681333693441480620276664996787985815328226264611120550023351183341891653286547861733057549025255229435493293942547123108956597753676517226432939803992749549713815155131508951754088546451042412817572627151166354159039209449354697659759518823755094435003984485180881376968218250167109589610754480827668993323648833099622325591659826609297812381801745930128671543849876479458174783446072446120349602488465944169901888530350765642533363363720083717610331807914689712574108770206451836590489131124376045077238581247932072994292270688008814494738567843261507315345732088873070606950952647744604035691364175801750770973176961752860827038014700406632775223487954979455498600688838186677693461830563556624973429450413960835099911555976026849848733315691200960040054479555142936411859845625827628285555592899541625300741328907867630236695865131842854493002948000064282942463730077088363374457558500630586344735066548591524944033401897244549206213540432560973586929995467480122915196652286101486815306964683507294628430937952039387785055466263151897499954277806668286070054390220674778072959134303265053689253790730215030262059640377951397536947315455455724894659067650539908070376171836991242902713948041161461690208039156759353538020105660627428622988055393252221345682018237925054369121139900643196989328692702718460567306513794477999457126655098242485330977924957641823344562900402842011737340260580768780122502841495727684893311664945729468653963777527623361210298916813059775565017838831011922194532948347734499767077303908824797570138113655643131779665570117205536396920503657329235452244241358476072265922233201060579232055658036841512078332651752694786327245714138254491607919447673534319801379505827215145935052990510522295846870621589113787407719764760419177724332547614729209623317752706443287028440778734185525731571802152356598349261584417370992849391269118078362501369752642915099274078323317224127753337755783737399157338641374679496849367335105101858317649143571961465753630845075895588774537417480911780478514406230351413884378153825582835790621607021949942819067194439478296212033494030964388424816240332846358739711096499223176453896346939656903964205131751561909403422912526941478956151740680701213287157598452052939653970005061421125129600901159047993494851323512233041512293040039637360779381238757556481324871260708169271357072468938259557691827828012136394924914508411642107533533079709966861588048636764433234585811504970751223482045638237529432887650852086063739309495448539127363559330630640424405200157410145417120735503082201081662315583034355943652904669641631118162066138639185466434707771735618975208482787119981112691152047270190833282768937911215757360777815766248036056755143037761941258059199885499417609497876984748278405156269171165244139819094586364770607840208498709311587368566098789016482814670138673348217082734476748763318123604808297099066219249041146534284213280804802931761605876297634855245859507420366425548531000219863782302257510576237990030762769518397714114104999344369665344934270967529159151727008349696976381501118073172810962043173103612824394231548164992954499721030938003551447814136704848921647457558085335633668586497445458983702333716891917530251719580425767902766139451122535474017351341417921160740687122679321041590633457919458731958665776798118466433644209715467134544765699696732419837204494799643464360257995946867860714662608068271148489292155870172607191815244591101400187445931138674285420233373618481551061942148238579008160721407490237271508007453320218053139653629637247661159547328354231407843838289565535570340648572275177644477700964896646625807047194369990555760239903248264729800585183461165578961645508871494770899234288992296735391446195066107225014844295226193467967124211948179938192099555767678005411581566220576381284612014221371207959536529663081379403926241902577394136063060201856573236532502966052850055443943583758001103912259620790899675259224988479214924576349132644381428441064093137576646777138664490423043942631770593582484520846391564415915837183692944817127477530640027340171180771945052379642266242135223997853061677663842392291504201975637361894526659084623266579896724171289739026369962204978884107991169790598691432145753568211755424979955993502094394608552936514958306620040119269571827253975670112688739325748024851291972983330960803975835559185737363814586894840222047458948657313983876080949858734521858694612280976920608082585871325669243703345087289839700401215547950969168824871752431218874040202326605031030256299465409728380377080305444694288961083717383467487843998014295172478998322153568113219235608450725631970196877925728393769452783957102562681581009787092691300502654237187454008148968199311759380748914118555748124895549065169670580244394175000137243867065106662146510248833132494883359130820660982906801878682738959553561638501562043272004794103240418398223271083408176728239290900221470894804731308856171234056516145669534796236629053695844624692807876632466003819508047223433392087809250151729233308622985612974867012409002128008846586294610040617923776164923548044680687742881311524009798690784248033356905312325436444810733676102566964913377603961801316407723330343605825604570113219608685454592109144789981885624816531621526273186885292252820483942683924353701822674938721500661367432810592498000692246144973227950318595523398654259831733102090292806645409161766391843667482096198070943080420070835355325330581493093872213517036957946330723590657386293170764163267267362502039829298266605610787970082603273868006050532486003173876599218756148049409666528977758757519868713225213348536678936839472387146309045008456321895416090896617624690178597605686397332597750083379330461501082459361544563769273838048685699867057179495741366326788748799987664932935358147509335105858180540381053324163619708988657178418628981764087448102734560665013778072841964425852735901649972284371580881915555584903715491309393520198279297105245154553207890355620513739776772678543969953691208130270040113328756230369615609540520930122414608442406411019736823849758114963541053673787186996793327837085168258923658637989381878683282729250464036857207412322676469828685470120104352251627008144830074036673978762370744142792880082785264249128588888454996606964327560652568154251069925866180014607514690756995303841604869323206047051061563055666046855697907075948048705076642573724669499691168887696427285077447078375895995099754522725604718367232070428911068886409819586917320068551532640227712980295610423220571828371278933195837747011182543100194382985920395793551722584480153553493311469676095090324606368960184876711587650679736494406885533677587977215112787310107824362534487018282268330079701613640137413240740027415013364070840726285493973224704615593368220686878340647985061747908010572109671451257486931787460473627182533408231664245426583614138248797067151867239369049484073110549493982412002989624783619165227824403025904616107740448930176287069146828276015770216494103034152098638878707519898853751740505416840460885927155753450382977139936924335865659155222028987814313602017332366056127092530949689054631225105895285239306199356658892615082679411896602249018736521420614002857994428758223045590171656798347567707258744109682114639009479184071505936672317317247577056511905269479742559647560991432938954708377627740819811939981048986393628247347106215836037334625745260841818288304692301896921495411632899642604284113966779879109665819930659704962440908811514498462939092021102803238829441725040115872348179397877276567962263052462757533625213145736482299162648125414385936284573235868842285779820837604243930315012013561877134696149703662501873017382155212616747690280265813951771441433160072190033416569915931018413670082254649089904529100868058120151748189262798575545459597974908255747822430942884496712234727243560514919439800314460270652181546418085204547788732151665815317085712819840245231506143207693258940298632751257595368821860688990296203874157642160345425536959730749102913101029094004832765074055186333670259838367297910168884741976022363225524450951519538920072983727387079113986392798037060757758259501657736748924170114430290544108688559790988523606369256292955680650663182242310831580507662435204591070923333706323528682528722363500288397731668951055179650819075213004338595223923079237617150565040110279805263478390497289086849576993633593502819045228850227702387453420997064995052245900549499979615410016241804840807753488537808446454723173214540352962170947405422955667635912601606096128566712609998575075211838610588377504032648147740687075263434385241734572229760739578804896604146046469477801485669797001773803067829121296942327391495874100238995783861206861546069293467567761023428040111101860988674178513160737082097676036865249300390062158668528265348121225627414599217195029884223351184105112681020566176538334399610993304089352268038905263401561420567294118689041031605519132203024150279951433177182636826346884277118479979187005078596102606552351435882622250760930854102821469159509734224422263118022235477899376149590701716183034130829420754019554837937274621592680415906673385952382987594049674564869865021086938422623041864275985187048600278983766029758864637536786875948095541689200267951069890307923339832602244030462690272356412931358788856434044754884216674677392961260544033066797003849469486739274955887527164837439403730605183982623488104497848952547934549303250983208196514578976161761516112990059641837397199538683579889270271766005075439206137516447219008021187209834222277960112024043010669747050357597320646593264827124751712657802730996875951172099028759528427365702367027681897094795670240257195881134086915075125386121177045381477708020803709226432454963056639773154533364946753249776889288569862672663326950865613023680487145933504316608342212193762849794045022102516047806601571098756070659829857687248950926466593501444362495490342580113535865726910927653568414925278309199487169088785475831339651827074188045464650383927429587547094006580144969867470033616906890276512476391920513099941908639288069897286195609707817353814511541369115741050110721753138332894585926579524219198029972624907038807415797255146095618735147273435692024227576538405478550337073215977958318072820072426645464167237159120814238007497339964170459062428916957241582921172767843923221246953945252737369534607149469859142724428437381283650722878478107877488896670669040697144972184586781743184996951181542288520316775529284225994079766186130263723271010578651820094934030416973673625683258969867748034256337606509270784766112661520741830607800185442353179943820801100810718614720538607733847869681229506752750330549378499128995342831170138154542992624456883594775049157419940730381449324877262499392712540736332114802151029139776987871637703747053157383808371515954204776386368551277666873037924632302846814454268609288849846291889720258716869979253339240382532460313520949526538329055186521016791824816250752582855794142018457855133615253986646660433580281567530157255983633922377364088397045341804031052466201169747076434903719097408824724663738208358273598911405690926646698498547214832382652533227807795404813331603682893146336863974816113664728317830319487002474179515473779707138615849035396357661951931988794300567872676081172565563778643216426483042475517708108465607501433584999792989052651946788921372029799123374236847698667238327058669134736648985640020749310872036009256861954224622982551659404452650688308007981621540859434119762503217563616697839550790494883334822753921680697082126958157255957444451808112883642611035120142636116769973140923268886760598645940831927456063652780748712731394278256180513740099780889815804794499734084358762650432597849744370105131095988961199405547921530642542465700180955840611373099880985844707298332542515340221428319318604634098407328905358451180086887014453985952324738731229184700782834662033256222353840778748289950704157428309690397789813254987680363307412727799048316071365200597948131805563276796222451698325459334502619847153899491987403008459931864961051360542609692044049932589951729577705603044860583351351024318591375419274921513048584969922317460484367057747410649808226108761005422402144034247721600899854698650110927972154768897380381899068179033309297525174398262522799016996977232507250132923205429436767780338642889808753407508620023644979862363506583526836360998715101226599357977205693242456173580557372138473059345083199131486711933334584420561069066861148588581251736112731540547729081568708695074369654651382589258580149689560249319725068037530750127637037733926159908561643614506102009825208898512656023963624002732830944957800940000787952591211285400481646333855281417693231330290943735957213260396497333299488336259251682451479358308918130338182214648462744262845192838755821422608923455679696445438575844987696606499868823649968387670173094558754737325604660795732209072251320949049465017352027103306487837531992854109803749381685004963083625489156696360668433187794127057999498548994539160961016045970975721899707919018024276876808704972809933690904445826980614626024278584986534272016663357308663416302660477623697877434663529828942554644536578511232337343666390624944106630623385860141299070144445819456878919742463344907014750157783189318683447059082685611215694521264747477653215889157702232226076766120928552507427839312936427460748648108109583024893181095534804357535544432166941324930045343535196314436391139396969537566668614770328869731312130025951917278862542396596311399270868904924432240369667562884510499286667813367300716777473062373864954732782143066784369330730088426228794649751546929286841396148038035149160719090726870229424689842890271614580032819970005805616407517808140999179699811609849971649214454061702426784732111658557184536554221385025480717390788374907199848106368922437198296095104536846116665169340595161118699345416175030905331461210309930722214295942698407500017525502849573863558077776486474997668834414441279890785138180796848534043698870986069844746026753129142581462178623507837297821527468665515729337862871799772791227934756858966889032336805754536490629267842664638626664016354349021728367349571448795049059062909214826457517273974015890221628998055028060591766974169049281619009484772061890186513104189851871752068106854661577411550641089785670619996724376382343807571294430666490311896642160639867840832550519942129962866054642597755393895134244520601770902435224974166304855229358080062967142186711442500744992985071699556848228293998609391220605276891500983071879935166945538836244538090914357504694822516824725375527064049260496943832476569376175742002126257058396630526220502495608566757570735165932773273595748931835018669545765082622063045800251859517438671822910502472196024524150121294141746589816358557804969462183035022151136541127880750771352878978461145066860511204646583959985269177604257715419125784741405988335303737804863062206742735381392043372418855051182394016149259234185418885051848396169794968254967024082058997616436929850524604798131631619470669323332181113020135834546630477460154357724468326757374286531022081891023393446336788445448718968796285417113978209428658419175214203980801796520375859439335942179479410197449322620627639210009774568027905334386237866930838319346928980114242166906642759626577139033031443455972229095333307503837249039389558485526649957448727531972458187700583447890076566285976162725639407037738527301579452432160615194655769941118224425975520158804394831936812718013303608661565103859591205601567493063030222354077662143536017756006700166323760207226429801044547734570853240102627429892498637669565351326848663828231362224087015244078197121898873490937543682623091942167209202119346930704081664964944532370477792546616322655748605588613869216924464008532171376544260799474314464667859268866957338037842380381139675487554357269371313983556980622851592026379626377140015809741538088545669995847298791086676154622493128308373062873085469478626253344380402626710287923395160428545775799547028191447739851449002165350750409581683854848788621380342710629159247491790439787312579477657602758617150528404945119121301952740414871048999891612087174266315681546685439413915970202343422836222132201016016958315909419057340401928451853772220500044095700991256943145996390806928237696853025651766470370191504519253980220189199530305344473366170543511324901327044420603224173551498490764412849076330075823662388165464823507778296398979137222991640710971299570013200285384851345912691552143109457430024404840139733721322117207156616733109457061855427822406375026250670876136804751616726393790627478450109758548335913608228576309343877230347435911929242831959443828208183783513156275731343277572622040615747584329570821707946237911397005632494773968629417006837816305362710337120660375548380430538679950638545804480443499917722012531993283118193722909276543619725654051437317400920277657494454754555908078518216213225161405729223807551444458497130706266667415195111979097488843421934798520167583712412155550134654426074751551669367285139936054431058062800423942429657151417207616634631153281389706898906224348932047428185896016705316315796736402201881220481563048755447451433830072143164864357887806912849965584408910202316786041910698235798467605273507034788424229300565182233342585451238785821332628677739836157288583099593729834300715630961435369305524004137017596433338719730919920326741783574104358293263389140912845439813315030254848004144946731761525860196320851210035230910510523798584331944543131882178571037154832557757686551964539397107733385542299848838577715002656686508197166887005509907646027043392466423006661003320616315095178226398371413330769179463888269975142976901031484193242090854423176815269682928952610329507839190759345896174490264470402211323176753654539452102043510807098810668736409121392183269744136603833735537405302270197638911605194823394855735915629387857227705665181695284769855664999051958627525600067196002482769845698084427168810692934415676559332700873533724968909466547255544684435298640526029954449746898574601355326193136349445130331385260058703097440817475405309902779907668540993113904959766822536724071508264910091307981724934219427075040416353932316239706911349196334277823779006428583293451024194568070923822116117208479837300768719103298529906744988351501347367369439552674569714611509681795909242029949314908445707617739663008364939482622344005170656280917325904428609862786264836046125617167174907801465473824653538750646365135920975894457349104051605445807068095556145037906874271660783120326347154948886275564642256627771329521431763614261557840539761266783382029995989406480638050375962968129686684868891740209841350970832609216873163879791221170245701266567006875799001743295764835313722275686242024492187447025536232339674222776282468167130911739825501058401465739399231401379242813825211238438143312395829697605111405466891166666793984286312237769874006426105340380158026045995800657865921792914885312104249775367107896747103010426428980735028421178893817467297490824121026942148326525991151672343909086544364621997602132328367792131069985161564958156888023767024260112164504872024051432503823464959619350206524420425816242579151097306281777769447018543236310520754826213596269319418217507233670069929785474330426544202877945234688078471979571694267780450864196697911647387479595305380675354229188589390510190617369439163466682800089792277877807164597986188225272785894328927493343730621884327090811618881329864439335290782241077574383796602814524801369263537855373862465732106935491162899516287604118839871943704679717364408821136072755239069353514959626414852718628637670307560086736781971018269228307334542100893621727543221757281702650977218301165023904744838803389601292188353200239034056876371765112692181526302530444519661497309471599394375043901839872682071218746547048652830982482135859480912637956716144713052337482362753458427364686987028219008605068278286614332865763098106177001901564935106627218398552797263801016593964407164566082100656444170049833119503933503902441565760624905753535060660304815831187262057076478937300054639010194253593068789429667791287379590935083400976869181528280281301003503549986305089605651354923368150701931676622429694929950379194522349781859505189923767651326773080566081483152833021741493677755806679394499543768003503575850824696159543218086457793574927414587500849916527618187406645511463464256218444101229957910056243223881629947842998864457494990117296668567558018163794786108809179489933256668243901529550024164278639241747122884940103221750955948114563487467295731105974313280807505910271525174279393809208244988319962710839643997902265797295354635102677592339580190103181812075686553012458234803480457897184602928957759812865218571065183559363852740722770625876416082536732460488987222048026806838346141953243150676295638329167521921592309804933666180037534455673277152405049225240323825695738818783596911195609276156896561455183846061746734399832027248830140090766688475396621745959627257508807076991907469598845710751316328244048729371921515697823751267468828017832964476767421171021942782817106655573147872298563404061189117258422266683862271019757568131801149571043222866784962369439477723211123850106452481638973065944931684109452258126496836322979783042701850591668140232927305663537513923804850735043008591657069856926135091785828176350813233182167745568934561322625350119933605985566294133609364230341664472616739491137099645179301640522973327283622792517413961932223270154516134887558321555933041053871812887432241811990989649551510418571322190406151531980101902262620275649671738195007195095380311422102784292208647998875940350901510735036254284350523904543404796289487115191806910467686472766647259745624854974890532384990431365441795468026952296667480214774439186908556716569190994559871947342253545591971734627804242830198508351404077341632263320191284523745548922184308484196934055202638880542713286836901025199655073223315597100276217955045852848336459414383007097957348807605265308799678484686537699678602312887192142204547563515781362235533632113287891692016039615094188094345050870934434369629820781390479114552769447274569085884988064533817911211218810132552614446198247967075918228554240220478660384938464413354060273266898112286798566804003566888793218320851280757972721329443486628731357045585843321137629449677596403367023369256112606852628023417474719085438261157169422407462032385130580254818276589361759410901599479250028820824790931799419689652927507397145869638642851494340109985187863453256545791194356374592465089359603993319087567143763261159350216157325927683692725584216857407064587048801834008663930225320707768376352881734087024719096575083704477826274823364371703769690547539948155669976425253021315460906462143435810256132940638920398267132575522326057390502410303728671188578162989188358942999298510696557540197877332765602935788310612459358449890601602041598000705133366257157996703968419609917066462896722039258905828727335987132247772961514891955551982400254131055761376997550693851935796038192226679362199287102973258628774740531708954208570480010173248349938218544829199982166300123495140369797519326160194165504789197627919875665466181416003492140325957442947460363877420195039242505567809519482302478990852869614807515769686324779432599760711689694578444835388062870785352425155930327878558210451532552623246868087844195710186724926299394874104616824014719367480185151786535270559448412934720945232264667043332968260660473886572712244562306484743393577950540226330078826924230949461252701269066340925605239371512175415270668177074558889076781580858951973327443150135334466953022422483888193239648562110487717733584759352075503838039903804312493880447402645286734256022444056859905228588732565832063101879294302868274538700148206661425123050365087450898876127115219615493046685690533584953854454082359474775005696416897237804794695802608794492246391633993022817309297134947630061603985041112694157045772768577590102005099333828299217034106337782512028041568966211710178748374568755072910527130853678563893516146726098424115191170531917194760870628107062084452409807731290338495328524115036360933360703449893937899726753929260415805896524076062141943407731960213589169894152917371568257779087962133091539455625029124608118507267629374943247968518862027793699074836686344080562702217779978239880552896700868700779118745321125178331065729548656801134929476345028982181857065785236364886773413691782626102456560240369395519398655712026628451110856136030763908739050272055478036661901271413356992961406277263719898172975820810002788311931587644889522667547660851943430045195483102534641521286352601935947976552492735479702249176413151883303535444858287408564791024639412380443055703233950604743789292367694735329817417432242108580423715829057728467326543095235405771491893734678971117064581432198325617254900654654703146788137363039744840311380929395880742322936783879729682580126641505497118693487655504433454059665854385358500077353127201935400650000434190615341977552547206605568292165905567406107812891572290869837972780222477214477291766147348434311839983260973299294984679267285833581649683989792448701964597297480482898189694129635279503621872037142155245178695331000874314875783821032831527760797980317034108996429792758680126856537839018833254652813483431482815012153774954131108595914258081519395114951722700159397257586797738649661600187196854705232827557740749651866566578432715866348420552425493090262540920567422914359235446276374019691708117843675873254531797489128004742492131363718649182150861020075351522921251441448250569713426638782377907881826547687487347920145378704296406740052963561935965776836346950836476340659909167348572768594938163958266846248066426907698796226032892413166996026038009978417723984498689045846726468707095929015275473768420358233906563143632650615786482619143533692242353906122123897884172305578573855484529940783406082721891890525643123551759030766596324003817391131486062877788844749198216495633924496081776174493188647861161738076378180405557703721599042956285040462917972828123093390975740899737440538300552359566872876086587755796464093196285868531487514319798904190473232112041104922144938130540103358856756395777488169330451744848021474396714164218184544565884303048642716812401876364917871839736978695358329046215287519959476524610254362958684940061319820701427680237731624689708441105087736264105659742635548195368227902298341790940813414610009493129710425168350388913781159348778153431729109891498037562158939965949435893941482004925432636042965767218490344671813556147476184009508905695150066158710251257452527169814232604574610793395656589587840491912108415922934503644798516454266646518467893494166719603706686509306031290050149843353216436803205720735567435657576446809505709496964794229791443905802399699721325289780371712619527836216021771328870351423000988614308757452913041994644390447955068103906239532396763514264088403600599707679709598552830912128814516147502332342993589985290440342421802294902532877212767991402735303544880242491311614440830438121371572200129801218452044909973731142225373269213259131837444995424731047609901728852541244215514449938483472126461906247712979545226706503949106816083568837355118164733575667933599852264560411891986304053374573910254564238008684400949271513510022677087434550166628466456894195653976940950861774796611808591666160822034715179897914825548044363513684662172400778534233159695456193265001621944818462886847741064562627695010703402143271519399125446619658514306257097285812364477215387975318697278509577282145997980324690733060872031543749513529385634420210378147458298426213757465139013048212622262040072478260476258485010933585225215214157538099079567712994170161825524058258202137030788835741805790712537605779772743053947522345926862446993389712281125418831589289168613370237786502430610688107111893278816521712125433491334268876111099519624850385120794799926783939209474350392491515304856280288032234758868294053872241628204989094968704855051140573895918138424709457915656526062947040006224173536807884191317371441457251846315144847526450041018405765316003746277930188577405110877025570868387328082245308367010686381710717169415791897272348021589231884370572426811553974985459185272013066726144435638155080170113357059831250920011897064296695895361741786992516890971377047179362194394692929022079753485923605081343948531851821400554339632485526252841227693266303907944791708193896788795901238238285244214721972651856639461005096661718356227927339339114118276035616076501474476749079739230070198335965289690829947579906630073033196453476322226016130028836287690723415890121688183673828484858355241903040776849753306221270531544197332891790841818370478944474271804699034151986101515706308891537112981726125973300778170312859661929557806154562910875684962550594481497654586262120569253747410614795225557491862113726611259650957682483782978747718869765883708254894587865671630978581407126053523671882562842001257447078635978883629304443559653838910002784059935364574125663975416268422564328608578871879337926085296922240399441486044363872886633218447023253001814125046741623063536182736097496739789072415578031520140106999241135636481906528593823097375064078564775996360492201228627305402569542368862349617513375580168314116163119445212899380860345401139856304308544066517312136002429711411009150568085542949080152841389985196587384685676252673701025626351213489211838808472521654973239548228529869739735458976917750468812841921891987493141263351864070252548421649658028187993351152423314001792563267694616803241195043690289919730031475620028489894537548728332281083371726749961064575714831620614967641775108703877184904234761494328900765817535667602559487566349773990354806043474480139629111285871978049727582864427595114612722108723799913233565340275887751730503819136821596555619800006064752228606223931950941719301716893244281286790456488990313926003532862844545580401976661142176078339997882643918058970611255356153883536851587394307920512400452214070121631005641661969402353006955037941503023185928037987645463827080078089892810927617350164149563089713003556053335990621998167752658274782241841038627362328747292624997925842986769197423096413510084052835986177529164926644777966405383575689329496285633299847321065907073608212914182667269193578801980652203990336436221695316696965870824742774653611933466649894385808014843062441383204162649846497663808733239575308480110277869943387538665730476464351910115292150004131771284070704562899986956581207917563818411009443766141844060617998698055252605929981862291842626262088757923312016901291761229352069135861121808022633429094134489849493698229181013893516084083832959163910881095290870719651536417307126708353122414624675926788799583460447728391571168662240616964982823945693882605216954687947959512801843371845123408479342572808933313093856384194157017996921509788968233632963633700460443457012619595610851896720185759579139012631560120144544737329392145548542597260047289692335463052389071533305345280713426046416852881520075932520128536254309959887369433769408298702606065980903235725742621574582593315263432491938457653681063533796104873353317250876705118622105523737876001195122642630750208417896008457425753904009428440888236867962458536798746356530568405726870622581268146039639110753237708470205583287982317696373657915944444026368830482616072096894067629961629152399146250318776507342303035193714573565468451234904130785634948946680727308490418212852466421471610532189740837713905642052365334573233087722073037361227982304074287338759508814633148121755831487947061325281958798928583803043578611041488764090524253956065465944526757670417473975549620450672460360317316723554629164538876923106612950205198406554300669674082808795301599441860512221840150188079800259597887336390232961959792950287508577073669841194773108555205742392730789176463836045705128874494424495445932895678398625530905136965108522514895125994880544088002982857011435826121326603437478439850116953176913015671939686524007636663529291119874248951262413196639215229439021249308104519858164518931590137371987136494288747242633126453542644625042003563813892689927520379678355509912704597678511998564080977811231962669425782449261040185757430238791935280097281387979707914449202644018417762316323373963628445611386513179151065953664119498958279614530872256542378636168524786926482822537820858924255709819392378789978993254496915941857296306196594735471129017252996247884093730766936863362388912728089642996060785020937137555793857249954922548254485336997864735310214737110029534465246535343856832946240626736031599095262394067062023258401100247893078517536234293552695820659388843047296874205855310411126677950885479145203701365148723406129359840263484428065576335869145304578160469207136721567232395633912134955604009842669669545913083337900860675392558402553352638449206498986599776300429755023554520080229007088623449827164804458349160253893013015062697854689752923232515941563461277948387920379192006890638592775984368866317685743980270539196599012549322066039586441090178292246902932962715742732399467284561221588609701557884797370960361543998483792574569076364137118136052765928973680048555688164048294688023970661814196628700649326207348646848781970586967785750031783126457481119833294396465886980768587944223859792991092980713547799881242336131142648578510010810534035068833689507909853373674154534106327086442888676655588870165624490588443694799426866595758749628944785343606641735724174350145104486495914784842357954919357449160312873776540219260586655150204844139483974133974694681597451065776414006017138732363533732700971908885468530590878744093594490841580509587035533599394939159223709014742351227257760704849189386460412006744671807200260861178144208519995113728737097395856959069444452750103050119070667270508297188473226684907923577230836778485776220670895891324079711222331278724836778714074230217285869894545336390944611561454494742701081207148903077308608378302889160277604226732117959642916700370379668491451893028133055618376360007450280958711247703988333583029130258686239678907614959845971193215955473770914345287887116771780862295623010770440291682280836306100828245677227132073565373774850761667155444904848290729540485707416184060656580125736164719629949911965340644703179680236056476528665532242989397370389005222888708615877039928581402173453612356070402167723460735653871559133875576283080603124187623786098466129142606290630562245030985917804545358167966275383205244548085192647920298222448875435717843604108713516252781484355414063214917177402334861489974000998436586401313284442290897870166389845638545466224954624039370354358699221399827321169270404014459217627548045684170039566303592942873248982639317864443510514921090906927290798873556612095329663334720902669328531696323926772480486286118016470747647925766498263201635965889776483001403493576664329452595027249107467402065657783926504339657560207950956954427945723809999006336299844382037838544708282056250688562345569848101617474587151833362321641828156360511640915539844254581502319575398652360539550080625956384482284416737109009941828594198024833313973059017343146202165238222842821014871417572968791849603554962124525903197657997974082002125618883067662780103843895245349164056248416395778843526562181349336454213851688607443429856660960417857261175191582026849613891591846006731670461160704510651370276233267541600089319545350797219567130522661022317319819025512377400014512521611931944322529581991476517972666566305493161230434798522930191840796584638614726331575385175994281272576059044135374007693997580766702554300006995801270342006137962332833219695934454090597696047340469864070237663640000635409288681569917576098175027467616067296935844589393125384376840058523518455129311528029458417195412771489657680021765037483103807828018039705074351457437041861844243443866170812856487042796904251481249847322903362805227121576556837258608153248999449716025370809879017669826363855036150715937607366173049180945707899169558084113567516845290074337057163813431509362601876366847290342945618391695493280763013584701603551260028605501666240327003335751806196963167335457559533761327999725784388429367784318811006208983881049500384574491503162328573947824594858087174265114378768128908272166918189315277000181953977555832790596746126377768223983370641513703456081356209807639939130090307983490528397433578581359456491726746895365465041078837592497724156288170025817436789880479392082410734805998911819586400782219331589911367179324672152112044080762473926726429679541997973258314129642736763624550709155554724226726839504409861053986528457060357426282154621417312502951956354146032135212026983623576606073292226271324997278189325662704630809253127517060382996070188035327011139839970674766891591471582622157222090470138168920249397550310823957628865192416642912293182335127874759324985262422557294963303463760190035629999488278004294409304343021585521063079238120367409033023870979796037029475806757733562216804862898959014898415759827122840418969218100510280394059291729080414119287728723468787973481168208513868015227967169635347722594757596081906408610398891253050137131194150084869772034356665553564413241363673611094519310528720110469230108045954500606638201324389878341358507358054276851494045158828450832224547360699743741002245337447478625043304691418641518034373371567041946980815423150993932736996749927125203198502175432127322387637762879911712007852000729691215494708553204034193115274367635634730289171824398097943436590631464090627504305260484135998961107726743771439368976648879207582417175999542933094400637496736920529607359683429664648340863034286023058151718664215373321028916534369993578096274968083283791871711968148676206489738007700300086471138631960089745955297369984212714959536166711694061309563139798981338442006855860087592914461758604608523232910916883553309268805932605932484010976244638622047158050980792555057767445173587044083509376300368354965900278264009954435367096806381664221724421066846922305541642272931709739746597854391918069344431698188608567532640171257467145024381980283811035348577948686536376551172565268098524738372818851247707347682858023481895777447354207728620857455650880190881080868430435775300344596468594039257667047486469138911166532723788511351630827439404370480517478709126267728875101318302035448250064105007453781152177493901029072994659725191573153639654657001261277719233763382350397934745224760625339246553566705800197437903868391677089939785993164695583657731606333024110232933200457876930660781427731633417348368793071145512133855679481682765354314223767842362332681636834468520301942476735987458018430929745322338078303478557791049584239554380620769189074982925107013892772206278785040790003542799799882003125630123658724236158080237315667597126385560934290878761467042741585704245960593677567067400568933758685250309855275549758901787667392005426610264624205310942499723816906107643501702054035262261248275928544094873316019574513104329013128071391814790845363807124569240584521207733220469715690899931814198246097630675462521786425922723896921197571708785596297678394704611245881112282818875336766588786815944333924414325776176067242541917362197306315415792269235647724755387798971594225440615660832167156738440859178770672465243452547106316655444830957658268815282499044717165532058767408742549043669167189402668787006132031297644576200531342410063568822158619380512648854417272533233252410800823669829668042383524998126656583162689066374485747299705497167087500868786921208427797458595828028350771410687157247284836929633952200192428598094612145360312120266338578314567560944232704106690149284895296691946960419700463003251047594990697426280083779677793200225983766303869876128178802565324364860414584628558389990922425071691140547215369042026986565144560785399175862157640212437236384243749533878102849160914124686885922471565453743562603020329784357391038370393761056090556309513788468011088351012537460768016038456770543359754827104035437855909840943103926364632305220341945015082881622211486290954275566471342911932461209675916187232779890977801015376085469794717433652649589532214156903580559569369945059795505363366786567155240971601300045752488126211964550458672801426786173631842623322529723988307683483413198781341789165155929159347822813906646967528682237190766648029302710551499855572905751415398407426664964825160782631037787635823982447384547706732099278428220312946133739776300832841755658764717051543030158745437052961779527093610046199348373468361290220814660487792929002320749486860887484982162331451737906137831385949373086917591070771583233313325792977118931287177047513928805680126956442907100699944922874480435364078130795150031353408744605378306405367436435334361421716077689773771117279108988266355464255247298601105453586767309174683255539153690015522977496193387397681020575951602197092640164275258784990719336169756125969707509922702212817066414848228588432037137017786428770431958177742635332297217247122471162099247620516474231710151736600729271933569925975880838903210216848186534956518175341193643918743090144324376067001009593832955480468731101375062504520695961109715645852654095226804067503974752907126706067419000961347862744154304980589710353622531099298672270519340994112517872629583315373291925183745417015120856456532733404946040814179630233925810897634898434109980049870261742728705276892843750743623659537806432835057230837368617499227483028466115909125048218401563654710852928016132175218218732523141728598926114535770717834513817574359751778065639528427939818845654968906201852460823153369649295230763809960624272461203104425836562185750033602641470437150189756103997134049710799087860492290170387703961185745144461930181713605366118150539505167906952896482253529657296522839879657392272814555173872073916587065205419744543333794170154113351683374652011961652792963314598489466877888634282638233469778785737269070890813436215186219748093194339480057009205947001503240410279838138876525987144695269626324137215189310704811242782761188712178561073973546816522552413597288932056819066247790375898657955744629993045212807855789690361338057962542993186597711775878259117672516637414146805325052698695175610435329571135669446815630528300731095805568010334326864395489379504917402663515906004064297708220290225503083315133448275387046966564703713739726368965685216684444223360164166823718430961629145835317113489949338846791609362253708870032138731800680609780263118158521345521340297433479627734754638890345393866555124595465928872593837847530400522204590280480018949822430374320852158853802731546649931751210817773219892465647136456577651473470530282323665852619407969026953167971048406725160628875296312941482979524273978913713480318654109557475385767997411527899061927281575318196055798286290449201464609380164403925686874736223087808583796668951998941943691073941388420121845496392337776396199636927910577995026645432033207412210726664886138385195008918193167687086239575770702467161468918994013072382558061023477261517831935427640565282394077688376987992113058246380553798858341358567512902841364029144968567429162182277903932730270003574558133389032677061740185906920432050720038626091991764733410048602571578288286321112012594883099661033838277249149697784542347623889751104348905267286317528718739339730183555261884371671416831592705775623477773008343812412819555561477052111793743467206669403216222985160858139420349261153945806338953737980315741343751518045701223695963801916444877680704249338224118347562842569039851818028878259668815565610455758771889397927843725343083027206602096467386484393169392644875370638929724783470397846864646291106830696589290447758193042531724373639598808054606938775800828231451176439613116097390614698793091120548712337429027660536358756890206513777148114079979114151452400051840317898630316704385324061002397874108307523160685638287985969286200131609172635119849646000474187956645387847126857474423923237940048675355160517164514086944935855653999248480288330354868512330898128014809598179798285859572374944180907441877337565494066980558743106097002660208092432338226094261825180522941133010250313431907312517576533388996454398913084683527530387816829601920276469401157307603951388173127737098041098377854970980547480250667809595527642181703471780514878439720433618217298186424870188246590216887749120283201098409778852930715643091542087328957474875443557175076907635177557055221843039695917145327342523090778203883861597277363452946405360295402586202413365906884682402379646305316975852348473597276366784360738545521612113673055791315806836988175950600220973146139911809342525651799157285265815461491096973844564165557008261438445953914208825132887960270137779967612708844655725937722663539906208975108231804624960984307966870488316602820216833144769418209868044182843360831589912351454792772145707827988915757867530788871752067804927763431178710968240771616755057284541780207153257326493611258448912101039119742276781948089005091999240183294679248546145609240317352948182701576082849162026693233065875142788456508785610444855746363581576812596035105505840556907737107344944442147082903337278812788902778740502485336871521657316163569239507355892446827504076853777280185069344050916541172912081610981422991988036517003426104779260756623950842277929933423301147413109181651005783667185506330983594227922213590774506000368980802626073697691395133250224997466614626778833893264662272975144766694593441173485646491298023453357691799730260864885345534786275628324112789630519983349751373289325087470003525766962759302642181057602312873246949405813671983971845364424208013923552515951404512186682438302375845936747424331697488841495398032109067310439264443287387949755465015844463855846472162826920589675129535513908101139261108442130439772757477176239458072318357577345746080303227343033999337084540166607233265443838171802447726123088848514925769303942289193534881608379130940807756034637972941120923021362272789197683479428037261318527906493284047381610918985412320057248433072472369399636445120748595056616457521636799668589809968402884511624832477808956015922899939942882720569053043147091216062362725433591623045355624970312471110682836581094747212836214812491175094743747710057174776643143865474133313941550122570091376681807235898303945888785179613397542859811049661298682109969206806241497023436546455141056906830099605212178300201731737899534892379221663694214684636862901526887043472815889071282464478409062349047068493829962594711762380844573004691067413266244649873646061359078966167458201077431324821781778511829266060320290493405562791562083102273346642205491970686448811312711435845573705467369099755186325634796243841657307049288661161744783796944886974149919498223856853093666988968622388037510860514128679739587270582329958761331216419362883462381786147247877527143305377992040692314799197372169620358635380232255292605150386362512000285446902161699456739851117466222511823177400083073117593044989324917200165878798570828500622197491496941681580808285273427691165620884210411663223351422765821523023511362782402073726217575972895272356942145323711678486354347303774393148406183955927548307740457827668487618506743618069809146151378662436399571379973501531766472631136067977058946364979462074088690896521011792663753382505469608735598887454417018786968337555931766225422450833293547167012417733540551352652569807191451381724978969933868224197024068076837212671449543889888524186575689172256067296568805719116482564674338173380406868471803281946295247250058479787759789765601429532239267264806618887780388266505767529929763718981253230952446602930888266875176216188572144619435450703405396284848500260994091668336417955245755023047068861416610261442077992592818609063115281940968965869924473497293790054322245988104579063617552551057221680454656402381605985036779251906120708040912318628545287350535057410476738036932725979201508713420514560248375369586759790378629311172828586816214663397014882852217863615446482986807819670202270528250719630541447723506883355512904263464363547587766115425978483822693433766232867294272809265559501948971514292716671731522496519006004934548681133267850916496180560010285102308887025623025564439165605090411603099524275526834363323881028684075128533469796779012251278816005565602041193381173651108611389167367625114080654290598522077564964900780199417213307053030727310907996958853391800839677095799992365857461032093303672327987117343568294539465699726436132095260860489220047556299504381062681170320652240982232928381628036318358156935825296661570087599782690774740631688473196589908342566744412576749085997114467298466063473887336657448519278362066618078786805174881937082187770642557245768555181958593824000611452387485861825012522940141828500962565294998856616351283819529615313758713203718898793435127199111282945225059628704717249230207264127381234318553532485995380992558197535448400314275571326820446294613215931293132036441580687331625459076091713012679196258502032155050116945987399323003548433613204173598541030410369787907838631167841041758697994180174384891193569334854065419413072933221958358395009993716478663842945830704210460325954064895834267454038269469322852231156142972028801392386253982327240839745493658474018854741557523135218356592361630918208462268660556448481490169912586135942657128813721349799757786794340185737410255137775570402116536447786691551961631893278986773967053715227221593143180657286712636811162059607867742327621614799566316688617184407486176273324951759070997718399636999435245406623817207184543850876260008795447148814101612929828236610645519137839463116398414629700181188568946634993292001920516707980273513226620931857632127446666352612203309946713145117489200573310014986948247058274833066859287147969145769861037261911178852350255367612176622734613470328112951255914756679536694986337054496350352709836450491016358480236469031706815570059804365992341072542749112263107396820315073658153354659300696075727741005644260368182565564123293504622290419831324051224423061430640120373451175915031231575500475280555002326738750433596617258999931284368764737505914552639134336006022324295779951422628178660586284164716444819141255983232319401413658569067854280275209032874913321965932141660384453578195920496186335578801628534962096255351089787442442009526937020343969263659186532757972869254980191014587977906444585913963874522777189838555857128266990353986391516166790393249541052532342487545358964851981913407155516340461257197357045542030398263029002543237940214929861930770531887400187657239292827416176477782091896445867406033650573761251424580298367986853422929988746234325240642706233807135264914405310307096754765761026040517136488849725455264808311104526704085835820933468891710302410332909688245049575032916214066711787975776198373867353131865103197524968764734382572103623563691363440684800508015285348473709747170243900164457440893905109941724468590532010876431472826857079775776094869312674881224751150261277914033092892450939929513531075755412813644155911843662433524902136311043708046385587675194697202771753597082334750728031526079371811813808478493173774493769221978779540865526816045916729633243261575582095619837709549699767243581900496605735006416656527093789601029884826976886915912775293627568136435434299342962552802531845625862837777065738591059224647192470517657340500622938561893080572029457687569224371274430231174675281619629733997581125953565598176151208211002981096824132198086890026264801214299730672493207317363058137372918658074673332611876720562880908678608574855839563463484863568934913744401631087606376093771709936011842745440329098485256763779781618244285492693577893251052018569241118072134726824554185028484557213598545614151661763057456667750141310751913912022130286191397781919030100709758422536144603494556248773913951981853182383661761305720300244177411139155509503801963444386124800018481610958555638674695806474211347257763124556749440660978461801557145721540625166265003025950751246174767660539194074826506123162725733575418086182014694295013517289475616148210972371428026598096232535944876498647882436681431273120003031721942242265764622799943253619382709666142677065334852799597915801912268052699276504705195875280131749055077344088140575408809892534373222655544653281492802760874181838982668284221887310383931401519468622173622092896733755760822364010006909657383244526631403850852762330521861850203993096505612108069621261697389961655779977689318007804945011978412870691158843070950386980133477762047155001770568320127074120596766149963031399525164800616905646277493123250612364382747339613209629707146086764454821971573699029124088022077854043668326476005422641671826987151230002405995766239960609031182756591249842724623603361035255754391379600886832142276527065081105087169500434009421365445800349430407182802997218637241908974303389506767539743502740169354250919153677460408973827617513638621787616492093127019813776136714474726417669872937456242162613210260768174121527786364045757029009941941245839215178637021072391087647379897665638722022411744179972045181866575695392117299009065311324855879237745913453058853152098560565944319212293553087631381770312729540754550941186347662649099774982053209438644374268973333962475229170246562599105206979327137023966718352955983164887976210477445899337104870802715960565343114794723193765438894947832979905705815356216273587121915639827372836478540766493430225447041341304802453246739879256566674973587415195201546004290475071474845063017772418267569068226545418991625765130703451555369374505846178954320812840812585507068429550733502790695416265424931087743175752616711270419138647747788387545863965558668243356443354958522451501047110776197026161897622683743109426982557721705482632475015730990230020472428491801895468111904557572252326518613787471233912927989158679901000670626832740350152634410370169433988824822234355419821460955019438709163380910356928533068421622248323707078400766158077947580069612164016266259696230621577548938259010595089256068615365790557953358059415581818083253817955813789108300274788885978334134202986553931231104984301025460198299679771496562729615325595518812125994017497565081306777298884761471296014770340551189144492899587561673355675643406644649957985582799102735323900600993274493488072199224705946535744901805775709157157945659226936043265901400495118251481768992111289097036015388592619461624513170975363465681058321557161915123677102488315542178224624621618014530890643343303941297462827927409050024031296134312302935270701210425974280782137988201332374003341023897200973849941129030556496952996592272483846327498040257072755084489427557099266620657906668992367663940721178259562443027256480546024406355089623554536657478566263953676125306383148061154903405838117158159395643685941981369178701246059180252480028801136115606898477667353917121363535271475691658823452795247638726852685791431819740149521725679556319114226886694364878696622704057849281873226268388002214115053931421712847708491021559271159894736615155742645785621897004927632873234838472921901039014462580468414743196592245605215401237806897615493015255302852316684643951424990971151060988114774044540923451482288514040284196389404901871882399036806701210591933155619667464606401054417680988473824182672737145568981911951686851452730204639676214049840571938909314629600890053230623705787927704239422105178883253270281188890981222780431998214033389471963367917851428506367518041664305451260304151104068367411574731052302491363030780497975626429339406547205850391796593493266280853951175324967153556343301990844799932076620096898534989583390063153670877096031460693201333790614604590559799060416403047993091846999040299131988098749828859706209540059534614621802978392935556380773437072947619409628351154737188350027705575563346917448483372733997282650141932603182286604539312953777938730167472240323431490000953769674971016188762694514055781204980078234186426343406199919485234593342982067983349470096527853461918052470321530099824607393672633038409089316504684277090954055365711088009402982612532887916700525935088335411663691460288552672218238765428738387762232776198390782362413842237624890351110679616618537076794315283443783410158222068180415246302385562157424204059331740250650394022314931326113157019297401474651174394836528395713465195859960216233340400387702251586128754049157561287115747330333167433368811732602559470191836070529965531982846393206669004208380302319379425168311799016323791660774765794578019070202883259932425982887689582050544372619184905903003885067114152469065096698113971836500774171626023185210013080090107160550969324317741314020539616332314039183913267970703128767706731303600884951087297432741068142316420763590637875636260135486590396979015062934106754968370901017145752003786692543482961800444018351369935725029080906561604750165326364822498388396339674660839565797033190464672331914449587112298057244292901663361754009450466341097113699263763446298003792383754901035883284488433556185987189115842504926431277241105353463893603062654272580137888619188184748250255267063229415516481008683185638522707022897872054496767863635780231014979452560287997472272200245420397462560394266966660511267811752509113646633303994864175109920722527256066394868791131002238453714903315574163765192762188476331177957520594104169897567047303374783273005993911523062987581813596657360690173238336116473262963552260067998246002763071132288723901732657716353686397643722971542042728897364214221657009681232176238907193880039639958034684812866709042514824699014688360147940653435748587009820100532626898511534176402444488701264122694937935947689069447770939714081729192236436637646510653289563946479847320429549132601112727358698799545546644720476837528147349129376637591633705771012863517227064701825521776157136893136248622769114741975832893648187766965431167585892418325993630486263368213959525980258137035370356129607091497300284222162390719925609104833847042851919717748167871276364543088019085361988919691113813003151920314709957325597118176362213343390039459509094228703587597184163868294940273822918073119759777822270177046220410446714570157063519831915911313866582894224037857539791534745345577512444302473316540430433764991311002858343786101711294109752455309176285087209436347759844658032637032818471567520679985947066096606551741332988077349862573675580256413015339421984508676999513807864125102947354655720782231965620361154200208549160215191907380638703209618599067213446940630504687161143710682075506024678885675877457289386517830405805479461782586472897757342202184176649194760067549890629183240517402123142459737457348267043312375884586813624645089596036705734478908919170664245415770628382087672354667773999119584596449328913899542378987853869863527389905542648657968776480134703716795878423873722450416557057537883843782558223261517344493062504152924139612722337639268206612651207680237134421012908608801304820196744514727658981914730619640373438845162245409776439419159166020160537916371480599413054838909847271298453294210022457525739035241601799105861089149320914830511143743069362702652438392885924781664347881953811468920529242364551896734647360592202991011468505733779939087655598961079336895779234480676883293329537919820150534322945909377057083010882461072107330546332438950424024911870880351692476256382091848282771747641436969500307060788686620923926227224193143941546512274268859522958314284873876141471973556224540811456458297266813739000396097808491832021842300955774514288585607713087499919414996484588152306021387318783573986124840965849762702464050493046701139259680861437929845512678200606765905506895404430391921994975113726806554422966655397402618032174459874318302001522972893473768725610509443004879339163006909716757411581164215791464022183505534083089102845206220607302998377780177156024707987203899194064723292337284566634988897090294618051869414016012410517683647654735023949465315837042025349204454715818161136390427238853239997740067773471949022896781315426796325691793954826990174326154106727358583298004650719458098909106713705955822638549328887288256120461789631689693366238773074981684963249552464851920725474600249473178200218168574339096079028004783649740439897154188557853229283611706437874759714441340738626035616770190572061278977685946365419898020454079693892942331570223804147373156200646376119638707444423421616971331973471340944462153515674627031039527042203167811766419849485685392362731532680803157302749156717546565250838360243122530147884558128819963164184104208971669111779000199803378977360634538739397334090396001056239055250345160459044606924196697595756740386651337067900136688182035321472543870962219881890936363131643962095131823523627544283601957510783806031785294274028531021613439345347730976654290507075925696585239736867315685495763495001090827403963641822414581352221822748097782364908637973508149731774600999946843671348550122014913287630220504476111224828251026633707604790429342390210353070458614010020941011622708820584243808316483289522370742998141138818751679962229449441486106618440168775560208512506510490025330597588396851556929251660277434910125413053397900514522961882499947264655882786727594639890567430328051930867516768636959493321429937842634577184971379841644519945848920398691379666229545352903468317773466143403788173188538335917748449763301662998786749115011902800195822080575702971891375939429239274350034614056636404984054942099329733645455778823255342815849259048557785407343814694965191469470367314761838090145289726994004085281302351966513275334669612285392042597036851361993012602769434384769539416284996040369239703594656066176533418002986543382272982342375218227425843917593755802602368334203608844179830740297709199842730391377974840515402381533527604451290755260239257469486857178653523916691192854511582674000222828097966632777444407709162775253379593419317230857904621548878678504370784412933985841558807702042594652682128488168218363097314824248112026293655555528205785794631067230328204508939792174042462538737700731594064757919355508836547079150267613347241414909163182641963625014609284088316078894901140542742916542256904653638958706532735719991951936902977946750941563491103190844096388918879158270477970616750005845202873167714739335074348431083864690797921356426363325885752628288822121719433324372858323199022303116233147430505261472860854787038199551770185873340746700244304698960361875093150684136941746098099541413274166344038037194792191000107476729046060448365776364465066008920452790519158899804469180764036002449676671476773192112118662510511354527496237746668672805602737263386780781388692564422143735517423428193937617373208004672354176480320822145288837194531661465540483484699962129438422209734360019669478583363706236542006024592168242528076678453823927273893710159630880795132063596272244490251966773323611493244829098269168460129056405476868119625792802425584762158683462355839051125156059971394934261521919126984922725450864772720304670574634866793465065248265527434091385937037059781336129962666321453899914429218550392956949271237789419602280954205792413405907305655893446267122021338721753910883004347941212065032530845766375070976949796607982390362963278868761941895689366171723116128138254113990616631530507032989988060883720635239265345462297561971439687892996536513404240779190283788170200987628420958873388366666780312366391926173699016525121757288395433334628978730816619691661234960909478767750440063970458284658605302959412962610742197245976456331540723969274338741034691103229347912744865472175278923986065703719021940544043135053663720482459861234849988863508279270593339008905190777154086311908866275601409593980527818617654796213063614867476634282382663743116469597074857006945762632832692078736726013893680219525150046918257250928927933926640063113912423520579382419660693629738619248387767140176242026148905334671239700229022372926489394301428195614620622830067319463232739454478170302134730268524103793716971186130851743154899584699588649859789638472803752000877314140226159010915857805018463683689719764236942119585902013313026471050443303100162410040878439960283431550587307554149157437328430143908336445153254715326645975185607799100865647569253242808618755210737380988274366762243200971801236587829465765409405046692196935744470498299720374401755241766648920217881619705016387612475978731177354405122648821788474111422384187717126625552200674751264001194965504252042016393461703265542784602522555760546383041597551220098717235349922330086440721690345568925221810529195294329377432722802641359750907804218298061118518946638377222145693278079580382570119569781567596597149521841858741890465488790163083658579413911790219745799410653125945084218083315892778174987518460050559719600134650317060443876646461710406025448660806919592679407179269988701105414879786488407638303821582875474096157857110283447212394222772657745337641144324493832183514759330598224457006468424804710350937930725997882440268922632386041204441816485490458221933086273545634465955212517706173577145147457437891767640932691695808795157032852313896041493764832093414390016551618397675382929050191872722028286898074756527702229362630306546056888627849007940944669219982333433945827068523377618103154897141983302878468844771618124716814084499454609876529516119527086577265274517607086499537471778212667568717624738117482849069478399245879183507990259087454415533717641875522067539079712584267826212255834629492147730349141296562270804497905545799880139938724289506382376747554596637921954447306344506732495047429640989419349708350096138904756214994325193993026217517376057233386175992660233282374156897842349466170026323415539627328705006348597905948397154278642710916625096734016596575165225779016899590541252609149228276274630373695320927497565914907968444074899393231907690275378323029878905661978821056485557895086201913677597436609496944576927918960892687069991595494209344053716274733533798523087013510584681596667032895845126569731020833882444610521583444336390102636176490966647307288260561220071853244912893291030332498003538829957468180503863992872833876376286190442661908534426564725851384093717702307224899701408974212002388694786905211759381021463055452640778914058512946438683492342260527731322974250022766776039996281633598138121117580685091172694297510435216215144999937150353229199015349975425921570125305904533383990348143372395810129950133868586782623906369337662642921182526320363164225632881630309716752800590803131974631576270539744783375645202995359966674680130224952541675615715351007187929883952133585883911864731677541724837896101123700489203217525864247790288849101468300654358687228596413444364337074184453122876651758736578685621259914999942551119890581726298618043460730880934348463717438604030471604123288238114361287956696744641009746598366508194847284529699820128326797909437017250663983529289637878384688717587881821907425014614049331464929529822799894127419856089398670641061893900980895718850100392586157511746567636946075359696470814852186752647850054308985086732919854564220269593054077377117941611468603541939299876239531446781629895001950768587471011699421444490666162128763488070669217235328160891269433901362531135914083693907140577446597465291014770937444098616514906093658989766752675052675739972001961596633324700592088160870433866418862335319112003483007695154704065489922985824238321363755510042157203856231871164504703205899372521174324445293912941946539625093139740838854907238482652120532787580548800095052337487859284828388598261146671840689463483467384237005486188013996248843807541150011442333342637363087221797718992812760168491817471627608512527174885284669131937961071913168031281115901651511625869917974297173412684700632106446452024520313378496956299972592233232949690688866312984605294793159568556215994006249696187393044993903364696613334270543169943491531394153812885268359260303061183607686335252717544990981783082938892512135139132152155923281668975349498933635951779108729239714675834324609798511624638080678909195916319379578541733107654325162447568688862747834442454813517668249557448384559833724110153658033899288212659995659795001772689055727830352043815017539826628340104684703218832409704578875084940818643629908465862256441173012310051537515430482979620363189256693863870381484257053689180813569565451486182656927893365756519547757662950503369283224598543646830847564642528816300375780764959532710642391181618551671958062155517396480570503792916932211492878421743667843775421378937083007884864594530008831297249628412724713818760201413638787725176120811992058197201779921357112460322845711557685022805043496493611781912834747355783537920665868410516455111305393012798952564682075366348270748801033150691423491548936213917570639468407448172470736046061555061263698282722488236081129404110300304293550164925898323225258959718678406590565492325067948904844938464194853103635702985794643055278743206146165975718328543955973241215842768015922047610176320113435147745035271089634006064352830291675177016908465993398785251919661253178171139193580811614888852381326831096972693564689635430602432183014953943881273170833607250646153175924570332716436150188671205048027819249390844970261152299469390507766027157651934322176817500305876668664034703950296759442926555488104834035732784765743341622832402468244462030391055049423192166450895854914561497940746903370155075772348220159427308346725213864645397687376470473613818821653783158277770577247285768081483027470004840605610205407504438951305636579145218695349182478180213471700350643858638714840678067716318001400815896320660093446309142346508330956905605326293897968982885225105096764512753829480660658337144541930528436236175751752999298484343468436153454564817419533553744528831210381339142101607307703673088101196054718970092015675271147256049933680707086132734374508201879365870243431277926703211068466698904554047322179068039299459849294667915772374568332181147774336563355608814008175878004928121604982469309373211483332394890934192288517025885691329040466571141331218265756102804783992316424977616761315711904438753581159683886116483834983354491250521982020109914471395679127323919379724414370447977514469765782304220600831938662070197947086519452420491975196522027214817740154887338668672191420667186138909073849667856453967206556979794636626400435987023076146967613842081959190391281928851367051536173702747762979263144350090352388254339503650810460223809816498573400904268016841326380458355403443685717715168123059344981089318828504419339001192687082872798240741896879951641875555488313051767754907225025861552123891839469604236843202124365967960744583523218911259577866359601183500642018223081909430186983250578390637381399882206361088979772201201285037741424448891823495437719854608086735890727507914452504474498122993594184487753880450833087698239811793152941000328766526862186934405588472204518888239851787208982963386108310021026274148289284540436369826589978767788304170004122458462167902953059557717773081739596963221621717333657895545889017403817992387127570411296535428238571564798396292953833159858952605407051191620311219967348847962575911960400249605821616308294884313858977583138081381561461885305193351143948668208762709318065518218928026275745296216313361361495462665012542991863901561409596316757945371412193671441844200761257201240233053738872988381443971191529427388079690346225896940258883970995279861159485633886158785869914397582272220151177960185623260712141389261901306273845337779265431707360580105421125752249868838023484413008698387877160464122501805370487547856543670498840862072134015885074424937705132532252381389036432050405828235679969784080140939832373029391675938941202904012859591803969941546094817101186457617407784404757413796335465189537602435400025069668799723961550922032086566665910293651379826415693679517472325576839878237422185819124955406769159055996988227998351556853988066187306288069966994800995578769119569025936938117682810393311283174361745096175986984602839517170458493992504364032224891674289334307461055172961973955667863253784956699327264931441095889301180847742189690249310070697983257829046391790784555293172270644312337977512949174131735661318222979303251941922214641544357688853203091680685971213083030214552365348146062622675722840557960811860775864709057208200569627210022029565921292899698520059810744297457255188395411047305704456573560725014812921882869208524669686849109879734516271039957907386905906565292429290462053535066092384301444888505101058186123200478523367216426084259637756341265735242616097841830281065518079399649535195247975455079255380784192038722191130668900863344982907973903873998295204782708120534060688302811798173167215492582854963969102574168375339157623163290369000296491290233767852690647430797133396550445415288576430036585698197698038173101127628559651252541092114266521958778879514160047961825348837448036896085214016321859526359875717651072070472710572620241275616446831276097074788421495755587944880899172128027593949198786171210405396271313430683285377766413008476870723840481725700545760775461667698831594466450712787358790337469470656460128975132856918591595108431195242491023427389265633266367316668573671782943871982636013792167867496603902903086388807803868772346581091511114675641734660580634995155801006802434704300848312821717268244746107187287097452995629899780681325160187496486138904121724352321260727502759384180869847536601246138297803225376147569766432364459010445012024257212692328778442883163672114238583140871143118527260583632125104539290688900317879539950409023034010780948729316899823948812001062302233152428206995618239188857658343364028976451269639601517464878562391226096439706837862743731739779166594699129663053276669096342950130295952829126653807722217684590442463894932855004731108947135355706639970788842277225234940085074166027413629462046749434363549211231892279327676279856961293595257408778134093079619279430138929920794982232849457231955911895785359118809066700837181857964936164581817491981615835135239611871523056994149800506979581720204156196879881277148060530483594837715945842713256352374131813318724281562513829788581095286312072621502479328395413541244836259495271839894400330452349649429997852351099858141941997492206122935310036908608072106129724470304374691275051988302190042169555094788901739839860754237671825199264115803110471569029481272577623399194967548868700787504786944859178146735628273746595780978767887894618122222087376904112388026879274124821181676536264874202283810515504944837428962312219236339271467349888954534784950166562679795927499732843475929469312883314093959311438501065889791376145795172305935490274612362296138626614373636773610261057915246145805897056576422419337035849673843792442817307349716883177160387393914280256478050429497035397190541436825260218151322343909411332190255598067120129753034962630877242405934116052568851350958564450666608914778806136760580727503540531856758696643510796521573632495362451174270526455522552605297815249824756320957690736563763730163400588794430908880568578904447891508328215573262446187555867246347937124391179255987911333344755620475088018781139838762800289352342232712905674482023702911968319769851630915520986481914901958252667057080240629237202146559810702441829999634441087010060113325779140875883337063677009461202196424976942819653696066956207174044928009051284026524640608648044169217158483865941920819457692812531477240130225808861957449518501961875927782829609168162324748602163817439534582427978948544196946545379133823370878133299929941161290345930924952447940567324634132565894070467780833614712206792694439827999519301757187121000267269911476594588344942297699683928041144400710373417513839619137621027571526662522448600601679867956835572317480277642677461000665372525796287142903468542149228942259132048455811510161925699812218451475643775018569423917669612328132996425237841955864124214541802346949755782970279236917965138505834688914644580157872337661902638109575410716516836365853136390851673502498091738791494957393297644847313410923703577373319235278481718240401526261728788485755916480117844405533514413330533263329449823262491052268667395719113965074511717809700657204909401408787386483961808209306324429059913121888485883077254350633679327963251313380004878504772136797109546802723276749738959624705657880312918449446797815307755715694170447994647820596720925200894423449376160810769787492220965073659916892363565804997746711411057555912394617010173145760143605163191243576736667129775757099580957828053087965178772221299338426701199147756170723211254886974123552381192415424645462369335571387297479806338266303395195957877496966105172922624005363106755384110995494596098086847727285299508400407065882427109622147674441233512363656361568768201695429376906074800370577703334368767464561767769955380463833375488150396582313991568227066414307927048857656059910498856566066230730025128006084647803907975175238793846804588504780375992580134182307973001971129888860579446989717832822393280107293737216331007295341752184713087691237540693683981597988061260918854699977357645337933468959846673226136436419864446503349871855387207131959190009328969048178748431074956151680848269073088586713790564368284554216818886156339864740287568892834080711729021312152290065218117415541868795520414708796820372393536001996149387409139490184584995725673961919004330055163822950453929414852693963161724476119905670735329344139950676208644683887165321692434453953208622132502055525987969304342980006821050048459485979268625585813830950078592167116405357717984038075895638739679896158759268819844288711944110908569692920387863220894804894273364601015494131318518152822087166141424121658396113377010230686280599908542010647954095065659718476200629185983282940562320696190024389538771415989841254597252864468736748938038949909310412972145982405246068951014562487488534025843360560018445498750547867709929849696014619493754695418841901488852002323863771084415424902467732534118847300169339373388508460447486056040306984771486126568021083933960976390146561649711054222343394157618186173274654836141386695852829720881197790017870126467167856235966159012043074198851464829239888735839948681433585891438863866748446207716841769307267255319174058201189705635060871164320176580121122966700247372474348126365028994876270746421770082328027987964328397083146212001383752717007075774174184220583023498181179716209216277359716155529961550116820074184771562311571509312209865636472546396000932346833190202760742468662881570093733514175640293798795086916014544756705372760291174170504180177941122556170166070027306502675694215770109623045083263871486726007839066160903393184176227237795014691421225707908479195381969681080217092065963745063182358695517668974653983184568770279604323614974288712896070295138326936539486605138526837676754178083998665981307369513040292774081970321136296819172220629568901569305674138525238200370420646942655514411837391915984722282245659786364845482893259724249745203376809063176100799125061688130205444321667127614632053368134639935713231691793481308906637500654146891479413385172344071713942637068064616008942140018178677654278384198683741811846925021488393621165880876609702669578332228643116690721673893104249508437514724968602626968147082040539406194715383868240464442303316274728975554818128219682039551630672222042386148000148741789876802878562742073678203753948329027829465182081348071041362574771611064841540410976647764799638663787036366135148056704328971863790481583587410012520248927909614601872462086988026365474627670423944720519818769277123641008831181298808699977913979989843449835373754441877982470645811748567347847573971310093496515921447752963336996154520944575333534424004428351388146777914617164454624897418548650738988039995454434487947922890547212448234753601503544619052246068110586128307494152195618540183559234606492643934465130128414072766735613075896337016749309303044262853662275811728959622787137506638991658937507805408950873678724445488099095321505020012003211920700996296295881627262196623516472686458720287357034683352892004993238044805627277887786262756736073818578865269293104077178334997328688626469503792442372881640377821510488574081602274988888392814016308050716273765615042045905091037464745104113435068610229897212240545610062066647662919878895534965632090935904350440836517766140855824562425524801572418245127745185584806467322809547427780956755930258870610955654684473799946284123468303942934704289622647445036289692237812635179828191877110994974355870531920295074347772286262889496330558987780318686925931173427112293468912946926444533071170308677657627853525677224279314903166905103056934160651402111538295086136398263863480617575466549562498945220863304482720857717876031711010631980286949047270082276836649486634547692621347529887129417663271455947517583810049209329553420109943785018768742252598359691816326084861945310712353076454629038116456336356524555780972431933851709387306101343695265366474872358801398529049070142357256626438838785409201993287412923457375794661450688241563790632182604883651297081973917837900807094363049775320532744233006981701046183114857072071674753910264301442635979185353694348111583345980668103565594477497388762795838451788019209430701442621633313191177659636280498734679921508626665922603092559474671721667835852367580644039023069135177632929460170707021272596504547786971496412494990890719201527015097458907771116621175178918405593737077357825150290268485534574857894070043539222942719508209633907776772395250994979625138600424815416473122484301911935516065034141887211554469073394389536619192841266028908748883922015162923366466830289522474688113331086031118972738640607110478397814413700830996822597679726728712581055972564559660384672858672897780620162995068183841092567010153615074731922121279688281614150108561945455733292159658887335581702460603371929274420475799394709642635661786212224805725894841511755825171483249284049606034427345014585696206999781163290994067476009441814177291217670290169994325812809536979546299722612399261137044644633858213811004025323370112758648995844958570041167288736230108023721447917628969482920677599481209353398345519753357734441934134584748849031420300165092728203080566372643717606059395882197457863541481423019993118198898500785470182737558059935611393866485664111829237251628538442414385702622192736927676127203788387658630428452089102190024038755200160114508774051044295048760236335302077021455587449671875116438628567970249749224840168350998521971756966129373114085412931892291974992598406851945676901992624263730368359388055473145587582906685020715723545542616925967292633440184421756799304289907570562905648845131827437709330376007157661039187561536429674448499823381241230436262736751119926376109281240938373594616362035693042924637646085251475589364253140952182144646846199668052330697465665417499864261778789288890575075934641975732465597664590266631419205684734511847162261066974641369367544753911616269558657071826474032578084622277873922759929818243326880151156806628301041284147134383140278278049161783121265625247940717003199577118874185870397617058693348660158849377540627068195227120875305512523805128773946288216588747593185839488840708357852369705978114949767805887128093658215139942828762768584526902923619027338945446162481137803302924838009834804238523140983017278097860511482101116857752976072376208963963984240812654511597638340718799066729195727830415165692130342383863958207469246156459347775988548336537482557599282617675492435845470207105462363055945667458245635733929513303825565670524526822815441648249585847750557125563359248383287980064749382670498953591591550810179666930813497747531342105156286348073698779410315464485649266432248183253385880410593258304254763609782620537648783436703948397505098668157743212574885325920762607142437966239071809711374572550597786594685458827529699538875153285139245492977335891948325780159427343300573776955531493730548637607277518989645856197117513356526918603023152099168631151207703356410607783415727892765913537135618672343759358172140680391571964003836903944339225103910927670439609101351188702959979974692176164332923678114719348650895761433205017132308427496208942183164061631845916303117496686110517053894922968417260112261598507158159256902498613827484136180412086606598095430207160292290069367431556528410432744410254941103254239607737867066856620943821468380556904994657081213341606905950824717036984302852273075554014861024837463127571293373288895310846066518003685017033665523656738616197541425166547602523779394845635687944474098974203520596361831451815695285828244502962640745272193790615059890869855870317675983721202673336448601560165699234022130252020303888634395854803336864906838185377379760974534733012295821090742906433985325495641569404288494190684369324584867610949883132301828144754486228964812607463346448679931356659143065084116015930854663352752142758417241421928525330884864354401601232545655249724831699371568178563974004267536358916840599615982409463334387382342398699544111286838567805619035924510575059940400464885312491896208174853558812165827945731455917089407251769052452553382043055853887122481798458168027812560051384981911162666724922855198875714378704604400319274461927002675719188623480980377343094955707392287324019875916723214810653872136921599863020538350261242490122445931304543214310769019167768036012945862268429430535669049221139789512952355302993646164331955488029166820414578469814315682625276110236457467400769677711763095745532028696309558391718292233366519136421368919221938591538387470765034659456688891599839789876976993445222059014268899102619341172612672021439358076448685208490332670973681693419985115130013672768230786527572538883736576017061954822240101755158741230502671259631453733846180142282362562841456010944902604991475142299770853320929456312548576615995250017947840486394957057642640845209089418924917202756853699247074134455370566046709537131908150166118453181000662666849716120080404975733209930707861433996254710474179093075715827297355204290292840499744427435724847737038614456602137203454701557198223158279793032358825799026966838043511443194295540984078012322802702182841614348092140937212506192565539730889452772464391383195149814433763380470758205614276782965214130818666653817175515630190375268289093685535638560237643246613048087773535379491454007452190537561854686845970812873464173749294630361477513193345326341001012122168561997412356553348178226199017753421345182014848189303799220971011318238472046955474019458716454232672338503273363803387392233519707754552284733788421968147426132783090437758529941200632132868684840588257965759349998865046740206803939831500038506439685389311361210826719054398596979160042013511210074818378673297713951456338849195148644657396673805995566574483355637118069713190352566337733631359735622261936411704706925737961022531269016624275021248483727390315086784741009174742606723562519850388250742987592545148740079765837874102265770267725104655067835983664564718823650123667060274005103026211396202220970060454115738619965227397937814617139600350929668999264255852407267185979286697052245243038950699047762945032535780767303426079411257618592707137326560762568205616726721853512610484942997710226647412580026022940608256174076488316207650660583736362081534235287096887029887664095935027339598243967879272624262893244582204221609084030726321070903755457977016125058577093130427048918573584503858263956841206792689048087933263441622239505372221781555754093698620632102441345261143547489109551310103931598386505357984142215593867254753575712546155762995100117943742389274530310297430603624907921392495013249072275211179230028581405848215625287164404688910599171253664722203726714429167659895634847558544093805243533252971557229022345226724861670051843144218564923768628997684741422407584099159555724252051225427377995352593843690823477948247619043336122215863444723786820491028370599513441749140327362530411695634120545388838815433013294463237746796835231340815662585977329973220181551655285764369576663668276141705724808560784138637829932564766144967185035923311937632283748001705016308789252061215598114403874635446190098040243821461029573174250343552695920390284781534539418324830824579210215356746815231033549021645145198947525221348671345095134581981320986296074823619918707827313266335588974792817412658812779686754656463299733927339268137141857657313411024608952998159995233810379976519835558190505978746906305745326161604877797795794575768669458175038494776976952967048020109425378200779797165383169996554211673684622719787795619248280547356583444493002975480271188778901053097498729820023106312984829205735857921811492156991276994665838574385456731998575016328931653424712258826081473877043868597866520949289853968903296144617452706075002620711122683638900331296488688231271024144763144058505443466823925956527589298088275278328880045371037117246175739937423610316193035709768432774463116185079791486634846891483605802260118444342882323467180082003507458709853052721737080112313771579070485307299788601287831239508436464052528085915133388017667200712970512862295583999999926147317929483845785122043193572176518591214224471092124658958185411984169088450277143088664207247119863033016658761598592867987185221628435230405871589409710243201279664582323586819013177477806003947740507331218762524365171740444364102021021407008235756187210816116465706553475525683149384619541491407742660218299677631671240486717119221847948322109943411686760492382195124035963966669594565865577812877399163409567681460916949765816373676988828914699065617772098922937567454307425356982179032562394312869449671653828766918435880734322734567105825426675540045621851404603711238168711513475603062957237610320283242490825018881644989810979006596069586953861293225241035208001386253483108540164727035491118786438341089833050196658136790907021487243914945068162444907359519144980622837710631095438112953238030216712535107988740625997472434492890241220055598634759780280114352047234132035153101743934647767719606420414586096646251820831234190878179820869860103091382278207688966036886078860809747226106699178672849805741740981363989769785901143133263123579399515271861988908993056783684543956627644768659632283784402435685205032024467156067488739139119039207351197789748779742049000493807271565897272028744339771847650910606218789568221511829010399703248563318455573270784404332076989897548428775332494562967296812071709377145438012302411019149952369487490914283573287746593679839409777565965377299365321609248599352067099916588209036861025883114784421194332818466266228854081864046082912261116638677997840709237247496737013408978805123647537066007674873318530790234612714748720161834341345920081260461687185049041614982317445165417077381039314331035054323115921672635694675683768040843640249222291209780538264132821667623757243276982165813309039003313590951392195732645886499542034502119111678828060768933845273086253283348664629999344455120010460248259203857943963743542950140150213303988109762833741586781952239786932477973356291945958341530973180569336400782512668697181006456592676307498771194264253771444860744996395986552815253952013797725429015057652005774404876507592555612436324663809643486641142077390175643429421952536989302766692675002562170773054861619421010957559463065593545409361801876814263169857677952992898701426940315892821875479252024429904591721793654153227245241880248695593886174028636472666886557882116882360794074789504196821620513223748553915621053319780117181784435493245489642908627651834439607523981098953795280104633740477823461906772369626984960901375251882104864280337983121044216152879213758824721007172505642881912659914138976202540795110784381442703047785618894979271390164030628332437005588000760783752395844812382228438139917791191557075382567989274491840326405426785008209070407437776017463794681394215556155568516114115191833900788949782041545307809960675940815912959135593886064257399707217348278331200955110812800329630697549378045841775287198595836222689125760240142195353240544732894201289745031951395340627291477395009703921133974330072679911689911829988275432313571404195845048215359198486741261495582473209930285170921627728923419634122542952042039877403931049012735518813183480208176079431932055014734157902865773540230349397410835198843091752438669199696194408247779826443092878519514597000488423369810036606589632520924737418342431643643278190990182000262349549876408967746765795971404678063618786965187970460159068650718878732369069085864512447404988243663866853576394613794979138572191242923292025629182253762484980466673120104724517933204930756299109502461987140297965343780491754328487034776541107804160575120283375780756321141624515515976373363127461926618500649413867563592691264612538752302833240452877813694979639485965880613924260257656103579896085270975147044889497411203422217016752544736623647131056459482518562800839068016827830739319338747088486335952079999287627422437571282829739437142687310478849608385620323667757487699497606814340717630273623977210342601880955953244121156724346146321408986585656375058743914277337581523844689291628262583692157908444506567585221361691483984933460650617556508598765322810817305939787269405848338587895978146838906501617383996330014288971848896920689344904333128523817332183180943178962593142058810350005597028685417000247974134936140054712528036552477348798730714238347288768267381024726644639954372880386273197572673403474632290144614192873957680189962247932423367695230751363018356352164382239845121661579336263969965608843427801930614119039561038675351800105501715849679251970825117846222515861356072472076705541045486829374242590453407032967622802963960520110549129176461011278898490030584896183439649180048630609149907988282313554001485265433552460089802137837138966810829847915212396706084509238969843343681769299187724832199041846916918805319038012023526636438387124871220742980016405796986695515750282686542331765356037356937461849935459149547562788043351459102860678925599933167595091009055950292456305477148346677457360178087080753016605877465966866376320129029839795268350606256052423442546845977033435129669180406741797244227308514530090005348794930092821957031492633756531472743790572632149528496662065791354065226963701903307841681952593432598010978780481169473885343510504188680131526098639353334391654724665048241545463848981940483604897222495830018753078687607740170490349772662417176771460367591324271864169844221498667986041948613526155143005679011493583126606650902528397122224109671810764168817675183931312598117973533019607955545805523162963390017124495630785145491716893024458215037892340892433734950140039452466131533550871152115845730573953419599000853502174688791934656196434885047858925472374301569428406379903658637454285892995628461004314382200031137145576363692727785706613094510222493626070047288501665815180619462318279834113665946127359824056555580415213591070267496833771603638125528552081267441319437152826334054101240457830568284745205476807308732124410458253827965060921621260565502059917236277460286450058009714204064087461957172890437056751787118172876832767350043355396524826186964450173717205561885809987851410771461299273247643882204205315968690626906424643649881246716332070143694872087475829880907281728887956329108713623324129187519306996610682822709720381910055581931874766287465425679226890781603932315191514993900780849618425264873852786700025054108489094132209699760514699044660474798272763614956556609818895272982849536618805434937313588082868862469335148840773498499893185501078468907363752018263514881650272685679540745690451356209072292439054803270318160193640671646923261469419294779772392426169372410543950389322334024646697800835900612195813356095466258774885122529506814385568521689440950990737832834412772443368348810069061619537695890242715990617139248090472766412858113039182558523609985090073354843191267981912806043684219201643594103232923313867203047123049180339680121069363667987482352074284998326677371620957430744460063790221309049332676619438220481404743902426336930981327388082738063219326249131763488137606922635094665782098160327126186907418904307969567936951540406296459498864617774338454524979505695833212413590937180992060526397511389287467256047340887440686540746538817288370874084807363938406826222861085172013350474358961292564480073040849566803470153477948122564322504534432015614425367320436275529024673348537197993367894006493593780903084463200159097999315359410343502837321317385199771046059798529507742404784626636244956718872210544237719886477431483378479314549055906984151333211641889095121981268858974793292657040268374531763939624881058200669602877443024401390249132232225589920003683393432922028226190396925105768063571762831486241492290482357324627308187714136530566493126097424840958611741669813940593656752617027108959970477096931370456352359883570417113235814390782701074249822583966831719547348337078773116176883477119799224210738456986997163427406237827480826950648484981949017725082197013695262707336093849943409719391897202414792898584867435333956108063626515272101238979696655181332433114316111325853771457082353878480747482459219557034714220814093402837244090530478842088801273221020377543892861846165527668864315179912892621139638916018043057769512159844287993149234457783715660509768662429131141013532940914575590800128491894791891815898434451787710703427192371636798257974220964578801731663613966779256274180749826882315142276399069664759487640639255259346858899452597361409623375927723649294431452010741922590613437928129534061798420784104127549301299427592096517436195076689619850202224052223246820675058121653068239050627857124313691620039377412636811166096817450933732424109030476058459203496373500556060203697015354408520230642181502852523698019012104572454111682873064595607719567743965960462565673907437086792823820272475295000168585897226792793261018824263980303766145609750678734566191656431534988625885937733120349527633717727072716104230178130613660356889921327674004439047723363459904867287318776011564894723009601151782798696550041560146917220715666069753010246395841335309711260450636781188423318790186682022425036388637367882173554961153902075371448380133122948072770002283791993430084596114403934947945182647041054662564060703676943162527450977600744564222410702651859646988481577843226570969475499762366770016584803108881215870415795167422746819678105156005755255231853621395415423253508424601328200309128393713721720497396926299812808137975700842490724234027764397881121526326367547607842357714047025635170341890058189657381582808686690608883437799626053763153957572271825518341729200605340742487252395313804607510798976087301922642469154773531474458228282545262110657236511875426905055390986974651474672484417380820956709898555013158393630138950929332569754729037492199228838684253191089925469646553343239252515449506324426832241219081815430154235845959265336108655695835936009959649559464111899580682769778562414619520292013795403664844569440933629691229680757802367823912674215158664723724866952407348672305730904822115527393907195788350178070838534271658440635002924195187452233522067251186689563701079132679685925794696116384172202728194873020995680153830326689013217044809639313630849354761897689256963657484495841021388691695499874003984598505929581249550115229890123635460731676024239416291670964191235993856777125383087982836688710845983255167591608806822831883032854309759863379637433888743813520471682661433533800349221303802901157059477892353218152800513274079759961122279654453444045841438832211025914284258253690767649245200206352785643628924354566399489901188973598023082891472860818545754933407372833393495335899333708519228299399457722107591249605821461251353904910219330823404085319324201404213204894634492334063356908125968157558473599990243479141647823310934611681597715696648009941519141242203114882902322466415834029631293901282243983519491073509044257581516888489793889050693286658920579339356685532130505670576468047465846802729194110484552667574252994495854683029337328236740465743011355070421269945789877960840184061106517069855211160185644344422631485653972348699974877825770319475541292827477738060894940944663949892624372647028150560761696072017381580835775169470025879023790500534177604804970682553650471157042226706426530301245728837623136478991505466582357464661777599137435469149678912433955057882829780350265445863833408291739674068498897795135820300009483240711655636602669330846669305958916301805728415204453632931470529661567645288966661531780492698028688451330822255895875661560515160591718378738333747341344924432594065835713762753960032289553616185542189909723825350239157961393168112820930553220013700030925138550857080701941712291952299958776070230934875253558792664242407215445142117636736391224378255858461804689214762023802054360702545625148976501413248757799124123095506748667040807270976228001054776801037405184019622746185941402939444556170831601786791694406516200536029020840708795516637522011519111507678446245743996784890857121477411481441769906335397393766604104474375243497801468820190066466342962739183860509800079682082442262135126677517185802719741857824970140097238645616827865350850905458856815357496696523886572440131147712655634653134009331180954484957425809880793994789679223361205793004867007480445896010783686358721773912943269565425522856079744704080290740022858970859986964165351859371743085905118253559949431542181549313608833379841680731624065974878923051849568683338364155323183120835105094353947057028234455315862448582520224415937090953721738436369079059698939716122317076219792078607208170531057381353468065667117654272497381120899335878157281531327111120719358004743340879000693886785646876115467621644567523582446436019503280936916650466944517660638689403731620783297594014469676807692839458617736964244624393051213388552081282164504652796505348747406968188904772149738242773609108153884035338717905822291313101130563029001268285026539056589176967947482677940663178477348621630617087612958267883370219122193658948258769447779928110305390133028627414193552330365155157994144572571598178190174144204018778851099936768074672837597140620545621561811770671849139906797231184160959656379949136947849318763159091136305339098704408243274328997228026254535450332002759310984657018564462903735611300036264674804666687303442625941804503428687254037156018532621584960154987708150474444627097485440676767943068257605466677573404574972173205826468163792739656334880681700145057060113564598059971965417077375614941642994600296594710381952879547236200280540635295456193795528546323922788170650736619734803924216064168265076293129077375001641286083139566805665859337200744499725166485248486498714365646354139326506152333528849192434414570927917293214634694641241668494180991098004959273118497825538780237382244794234347290173313644229923249556168257248216365044842129532442541199935353890784166734807388964406996105823221354007062317002682156270142056205881689057094184645237507739408223665819493043015215181815539855595056927454617079100818629095026175048919129071164567496017732063392770205028879375264938948214399094895176523259325105699758529485830765378817613262035024459212255360051333195135567518531752303480847479523219012814151339440059734851157735296527412270971746413387823204156126328782653599333767029235768561518941601662340955378458600437962286115490861759104410656472634391175277848072935706065842337745504637138064856853696855174425138340972502474380810031882921540528646712255217808824815509881201974530162467396298000577162827821232036759062224609864498311254127799780642823104522327949069540186690900976511227948560198491898676175679108101055103093422510490860458330380129013777957206031381317301227985009506513354039819673657853882461507471868539887422219746689672889805254783850055795580655034669094169175455671302214089362743139217264518874304014927545125524711217757195902795919634128277438080153203214139912792502537296226356416781964833432427652805502008071781345719014565805316669307069535286038093837667161708157894178864532627031510108170527460540032195394666858617429128674004218959571416797162144749101058857230486081297995987235479135302676275364849979393011482627554889539739822764536691055041487850783717035727739741740371797932695981253666372109379049356970464503730421023252555333030231796812367687765878652639740555123201852907058123090233832256392770204287071013262431417858826178286190245142491578695958719884340333891788658653639044205601785458585559769214075883370673805069738699088362311803859315338962138605304910836930001170417107395883239546275298838568902786441219854103385968500825505306741980337039845423870815452060148222697397396579483691538779267549223883012086401971822515656379414756048629799396443853792719689823737922535415428001431318250367019470214080744482926711184072324314751472283166645304211092587214713509245718087118680007737815920019414295569669044042162003667222283855109763173549606708269762372232596793516436527906497667802086917756379807465566218617196045805911942588692754342973355068730820265856577098790382034785016952595372233770802447542696883160289498506068917641636346386941460969881000449989518567744915493003901397265410914011254140390918494653659019272895206951973065447920631745769575175893343892579684251970160676231585876870333774104922203949213728633063930778564880604468659271464609110157629475663887169508845468092907490027983448662135197140445418006046874380037177387641317855368953144462631370706095075017220523799592065473560011234172712248484475877026152059221029485656383877167516827682372278920493935576024515871753424176006514509636901408338012176094083303909053328474512083632849436249242651672256781712022964173910985079992084253703560147432164296000156178706991404423095560100949756313849551436740638994451550294591564723383187906944614321637983946621351975937435804825020551001755535011546978275415640156696109892537628206799820091558805216062307911313874608951293427762248697982226815031989094550741399524076245528011193411769050491862089614057977844006594925106113482247715127906823200832064565410988755646053360231529941178965145050801144591003439166584424303519178924089450962491169454999629161514677049334139070599438086524862729528025251938049834285282423839630384037409265183904962016160739444082834723146858918199504369230885978226141521623998709686857840082508461299128028890924517776773709191202070318964431503225694642056629273074357207427643630272071160124964932519722074839052965817921963363068663224616939574684843297632470046527485434093703426522054223668719700116751383455229861370545648218891759585897248911145149519033692903690187695181089296315357274751707568731228044637166587709250470466206835219443623349136705199764590682759372844581841319014654506012268741103592509543391491806844242579988247331301290766149093317083480765549412088877870304837677672321415612304435257631545248778438845444921164154623502192819336855233254122606557104402812262578767120842237111447485057755337651835154683445517524211741176827492495461174787102684911434664038647394400039756375709165839738728015769395550664623878524389555184384416081146104205683087807016712727793673056920910821084692139947184796206663109806424440193609385169148965225572364934120763103916237568726885011488905453896796603586675134580092925416321071323558179437364340823626615903670845672145132169635894252929493535260967696469927250563391989614298888409362544886968864324086712831676593274204712242901655061591373117072912918086238071869471366154199275028880996003633058213137910045656589932700479783278144087608076692176221305813585743037320333951739333478409690503134194620260235653920235430361871093199493443490836707465993471702498724049827317909385160747400868064055723447826156274520226062025587849006565471010026850387528536975247392777063008310498467740452595922738622318316464245024028090673610461872932290294165840317903478432242444516194368164455547918853819249437243329493379064624196574163940942606947315887989068869378683116661613562832167842918534946042225580814394864749891031658248902920041599921969734492476530682654103368864110086929714779617886144778257376752410610283667437474307210290906006912792851392816732516626359655445059465654474919027574767876516566461693647215022025059661882297154557572907502943814503095241945002879343968964953980839152602896124303533496804342689269471723554782683206311362992297789328747733604183030524933650546257001238348515940198146285825118391478068853531500354216077084557310224720144510656545025833812128678756364879825116716503209511409410566442568679732334125069270174164404216109523763484131164404331234239682988196725603218704393956529823615269104769323653222771337200866882362097325786843949992543202422378909606912008061726479910693849224284407525220904504888681263226569241691240267567885607396925053122803560033511515746329378446885832299115911801350051156376866612943818004020655111212263312787081504248857560756448727943786900243788390937092893770080195953918801922649740825832138087954461102666138762513731523483025593037488242878414452535113798821284551787574929673535602075600863377021105129994102246781346534717433438643512181979037298417778375932490086432875092327433879792199743624873365618396779491124222438897178159119855454679331882474579876079240881952566434713301908438922754638443278846226155967739807665069577258810916508204593445420024769378271276531388585603155075659920699216690535312068310562016905983265154185562089531913111777066771378171165993161329703134692811724034192309333059362328312676715661408757970142713551579569090863243474871310465257449224282738906631734320788894356492494912169359422011066846747726661499345801514258986840999621128045220982302018297536331552324209009145993453472503717309667511263202246876678272990364238166218074092035479593034729970442247622141405498258192887634432693650463006798382019192999330139525008432945950040181396329466576068217724217173707051612437604090291134855811893486690505904879225208921034494093346403282821986942866168626548419943772663687943632937375991551040850401158348810233690022989642929833355166739525691488213163879224358913375962606059314153688655627114662359612842749341194338383798151000941179961411980516343506819167440996293566321065242537495950082180833014711959958066297116110403285950693455856268109850180840813403530584413954307498018221492040632328237511292397470044900409303077263403218433319557993240854691761934780222232925033388236475430584252813008700069427311901556979242167409056744325649458916261359152176862057259833826436555590451643206349435459955445018946831069545323581038603722011548755222427725973552289839369862029820441014531500858427258202032796553050761584984413520284001499043169038611029600829864762350601372124456426606605224035810724599262164975703396860133322232816741564420335911974696500938419384509250031770139476899104968397460853480984369498254307334958300549746062222753669492015391937851403442958229678892860195581318369457409626665448015517189020212118268583717243528551168122662078017623512351285137838211517085804011896922702932345150972803843220014592553598897000814280500951829350644266586854514235529847845437006728879915238322046615217059790359649894617791261307449692280085985378061299110306850924280530869218974219452845547685080658730662138474531499377169342085282168585191950185412169278292767293588178703952962933617522918734041876129221784254458987742584619089408504395852276662036978294711885777977599727298359684376977024396407440608989284615170560116467815673231446088934234232010264439651760134965228188485087521623158726468723697920182445775922666746106293637382760100512736027703421796077655496100549663886309793019936336232952286150109942292716268653383818883031822665098840123851166536864695149881015507744169617779971584552325002724937550763083013423905676838229346540299983438547108842160512363025434438317172825273695304095567860046030876345040554034715080125584714673697844259391969926695430811651271678808391018893550296806285193697138590807296603549949524298994607505263732552704030162442008682904485647929802533584705528831216145582371757921213777465909036127989854886020843585311294927254098911351829891615533893191148405310804284714016906390647052944587816736533611935521454737981261682756903011393612603161694311531527309652176337461981439145553428820625635570581418387194284600517028622347555068549529938763421715524366890453669546091012098703552384065985838644263992988211797574190621968812120814893122017317668384776221305987792979360543474452297391684900442997867855547213258087145539459391144987098013995898538359934341784818732992916833679381783352191329536570938090490339623070157936022164080536990265242643545595821577259684137492047872559647941909290929547548994726833033020811253507827258231968049380877291107942681316280178527097085256922998045363887961316043678833400515047720063875402177799232199248097861216218523409717854896425080491047500998516056667131650212640621114008563131022595186882400706386772255273210688319242755073330219795280924428603762388563742577199353302606574074496385682172313519150702226035946218372410955250331836223977529654447565408119756595385033804480218582474661899015568904369180688684505185388597862583088077044738735734316186980657141004390235393166819222881248254310451739877278257917755201051953411824957925230621082231635614560623113282512502659364990424748388764194444091451073417273292073802715097883088081384037041471539690406131666991132976538942449513284784602901844064901057757146734627338718732182263474929431253881039991242308696418587679022479248443010157127596882054583622420540051622626267819907068620957125155404486877980815335494956439699253325012801159160615828757922390634576995148053638147438544913375021609258002870433232855424939619021738562729001740830251792774734727555909320504081324975564993310755043917475634391122853404256178268321632637456599929763078874473963606185030003032131948571119171484886048294789461618414006750172970440347568030096949115588287784215554814663178332051339469575241658674605551630797300017146485842506448980171234112912260961401906888899913729288008585748366323327255192378843558531692393930415127750754452614731706857432095274265246899332262168289579218351848465654771476559811527187045873857086486421341329192745010652445908479880820620349340950207513884288307992570452979959165747858306525487950643048308556555566993039973226190292285452886304360555450925798284554634389707863354109032457952783185673456189031723204542520653187204570495295066177613885975128037761339276134575333598721838475404136546444755068201323334997900372216286413777742783280083251954186731753757442340377278058919824385860944737272431548984193955938883267235834484396211596520343032250145496067994533767475140072047083477374316350527418548369773109141825434073845120698553826523514361464320759720044488351442463417845419392469470305927061190089164950280875099724647409306648239282199603044382220138507954064784699213784559586586166997208887696307563591604432358042292088083320940386630658493474323829327536424814047938026472641255515187049676036862242129769751001489246555899564874425927838795581742418356105900249331966800567491145515921188942625826327574574741549704482439557065456416012078394910704833052657229695612558918364625763095775386002138021114405902684602725015223632379063091265566897775997304615594436144270360526659901942760793620925353940122674806118529446199591095881759918328278615261142351380602446121094645814107678873452091781639237296541580345520268299790700304572315241131040899265972364426260528196161175139386016966348185471896760045108695142677796865672243604808338821225849864996833321283240457801161941870116015757645782950079431438307330872739785697575700699264231931263760877141986074907175503044355825491088300623156195314864387394515461027019678476342892439612308428878458695165767548087937503803650198469138950972815401105477758212722213301915134596694066963098652645683645014754581838266785286700688073220398941107040360745201696345319194380711428028400343907400581906373584580736135230551348126809150101387977295089727750122980366640999037161868075403114453169300059591173233941890451489682912172733452665094338081109901842740823448338708612765444601584364978347424563329214044340686524764442363657198455788163860314860414683607160621276782992631505144972603259227167917277255114792319799925525575154635970051031439816184063706473837006124579337937597047556219029266028608165469365201724585065569491537848786961865750508046784973627613268422896045871322741575966191560672069724401958069521599634768499560562897264048014304732386009661198016736647930084286339063167729444645966254742386958601512598058164527680595241921379944199630173026868574005685402984144644855236950086819632491573501121642420233022312537899962705961373127129666978147763803800737507622180579151552683832928642647855859783329671549171338338100286901947920399062233033117773963522105472547212843636733440317032536371378351964357932310879128232365809275335626832506103126507925602831686518100817825633413478356773530498117274194261224001240925276167904143179965535342888195194086396385050897204038893208337310654486629534679819743623841199994584496328158807107103595190077067046639555757632051606930952344803266246849382619009169943162586147048732943814410954089979329139159951829664770995655219085036624164439730364025418215256660622652228194564247734082307103361014640772149091866867544523798145122607691472986209523146919901316110292944070154549890094669360861318160661008220064807033330736677402365086997205427084898304095329406252477015494804544886458597013959497588979567331749695943961050795361618965504479728961952987578065376836559772763507248206310280885758081607547533152630005106156584164310089003277940178673585005537215404367738597887374472317646527000559519704172558260199546922114247056021539525932617103738808423021996185169565066832409136497863451857134308505601599044146937645742138859716408713968364022191996037983517961421214442824081109599139068391707882926478267938757061788536897494103728319440637493824742731056813844153013652919008210908112669011666134405244935272168115218524904803598289828660681212416077275512537175267428077726523182671130327352468483560637911318507820892954410440779519890436277162133842825649732445563330353853689516690897828709103379572394233558553878341550198507401100712147542560470314758815264392368186931729678030967808823051279126695333207294109766085738147164400631806688667071823399863894404992738484182549810210913467481927189848103746388052773772729029717407732841651945015941021505577235026851908150092447989380640845605338094979160582024576954411611091245315862447405682587226671320813929104886295706261225260410534240403789271400960813857123608139493830879871907310227976535983463747106863045532704638800398200679348007654231363382709979208484138071207456787426748843585164833653198371787042259865628585514293370391670551201534089943053353897604302134575653759267153405687077504637731848097457866777107873015401884699869937280944585309325222510922193289464943284554811063678680745059845871773640689220892517347698569091653203631552849194536809306379070091869642134215938461206529436957148029770736606644874729810416484508337180570645349075801692753629599833821213472799762527032443762342449557187599911811970121641293417440822970922302038485615404966778231546504904792913811834129593951436047096532327839973234186872059254356067866742769845443535080630444851211984708125870660007107842223214196982537763457755128533186485126183983103489893049689238582954511982523023055113486792905569645429398004698985937087484621903601684599182235973755563893942770744678263862717607689315543367681985943357277222817590949787653796322072395314058687742521290337192857533673810316159531121819599934936045398926928567825773037052565292638223650539601686722860979829100506235015556122853307672321330149010127428814535555090628765606924399993540239218806903771370519181277707584354648882971770279988133981483198337046222872941255618843228586121513779812797133449326280136920375774492542763426731810918088101086759970462400956626426866105547450926598377540848034503502419368300750263415283489743352630042430822894655342439094474942086501120540084616768317136525794973154865812581308682625940060201204521898888777822726552226341427443353060790781168479718910193549524048934439719291421637893183489620592289801368636249485310874474771791019183530790944936813499239816206242883264187772041298416171607059954317507359876483981027090003819328540523117441397511673812311673578876129967702932461136903743033191391699050139804112237520827026648158755494499504379526067867442932947486031883578585115544474380018813532521427438289870211173476909393366847303289721571487948336635804261999472328452696326571225099773682600147019940882335374668058040245215046662898315066746466786449203229402921668892618209403959860934190143384161548103509177840809674809853798524171027869912601521280135964466177396389478621753192479014591741473258102591365095179156198878297662964334080106377681012332861273615787651566022179354511445535137251504693380386578245700781673876935823782994253034241711470729708741720883628180725676272997251750305033701986510591442251913930081785165373092538082703577705725228985620940586745437756687495369711825344762353198050391750515423588342167595603528574540982257219621742371035391324648155995038228962741557212349891423113181890122490920214374633750966872462008080636902493089737201877614858120014428463879204376258238898076532356891415951136014086229072961153006377055084170669097697863524420008984077980486018706289373918470447684815291083501706459293633039166206199180285033598579486483477981802298727859426363189833746452691060242591015978371826522629976410807984639812615927298948063547400063784581525444639509798693098344591293900408686234293757644621183773320356793104712641720387134415115788535709475701779427226677375045005738378735283912251566628478066692776995742312149587104270237141661925501218447742652136040082671182826277320898684773028227644554027863544187619676547608863162062159827150557190040607389495739117623051667063713627106957241616252510880031952637364802889099839896519166853152066526971788382823645878460480472771162903800626338677549297516128757903441436034928673095588435040031972145191569577299667814316043264550922335575005616138776652577820241339013088089030746854225609273351434098191778439975065905666725736119389910709898548751230278840823434018040917649621074872286884614257704461573535290031070694498618731503806923215599670910779452265790782007344594622244461123151172668173457998246188484408608011709876611871208094096501518900554892701381985818130033568998212843712596473150083658914259026857706611863071813697275660975109138682186280423752943357271270211433849326028681441339296168829853309300556792079226171907891817172342376867141639012763990246439463063470774965739478282693163512845251207899932904600171506993603757291674852298214515128326898116380225961079533958535266145918766844627608283217418724770041132086789092134869260014912766800428844503913686958532611198468905042339741977716336142105069390826602551109003900235379133909374171481912933572039039804976223463942289996352706000988142220210965964966493832311773195853766274602593379153239512110615624802394430359330094656378865930379801623401251869443461960334433677283399484786212981631939324559705326376663507745419622986118429288365343430046955457761230294788444818767031320619701148946078259291346408879009951534356374942808284410469288186637040379105110477140115688554932556592282254350633274606944736915775394003737921806125635842293260686406672409635484012130405931992036355685111324932855359326755425291979114252919635767230005696092903858066654202412129162415863720004944399984795717966488015517005691303272752165717771578441904464783213033761315798502407574420026056479686122834941008149004227047734451846186766707461538502755978182563617490267586094909790558564352388475083400576214038431395132251542708090562465777961928535042218349139413131539630832106773955333973123697929053317483946192643622507940764907096529712491786609158347300147219094482996324911590650734957936854943773359274758627275965875061287971061466967961037429112554485252487474872731794222004762247946764588953932446198010635372705187123854594060084420488967056217200401282368256666385306747465565519079796095455454205000049689011009635627060994778103942913309420545193643565573154401041328528658721204516541761209046020423500460737497512687367339545353477564344374779311448772357983472190883930630997150502068241353943176978267725146752258279095484732117217571295271181083794496063367479752039625460131214442693220301930773428126770295711662125179929120526531292462427810712546188355596519585104930733269719394494630546007773398975373388202436845769253498809376644529963672687759441330271827471209445362321287657735470426380470409457620511363907132911947657482018141457171756847586010506247948826077081510589756051395226186568370510123354800085624944663322796774681732857939114981057964824234112418955516962532863442110239706864194593686939043205209863128608835876268020723322282456809224274929715262669828922385876672449136947376136527896451462666662876564830670979967541653227745330906153423092912554577474546775073467592079053201144117613256892781730506336124093477226819805629020876579591530175091625932646802111104090811420558995863227150384417935364562406967764219744402782611197651442981783642439048580296327657997998762611603648172860883381644892079048904580873960864544591539688985844382627047157359810025219716064587645165387938967626752780118696819887385774984281761850923274797244537724672191363627335330431998929002418051301921059708822633943163607571902184735704867102661461528931160995627474768044759259245657321594608942279103736812869299176280374000421301797988693354363445373872061104901989154828846678786989148171527813080412474656857976462337920723647120794416346384765260769868919149860102017040045234497196816065353868951639445437439855965898548751164599941695352731811601415842750082660266677969361073203369491224553061672934013084526919563889795495309305457342058115230981670517222160641200107815781252308567294620765715649492563702217275032672895777073221772362903819584922039360947933372727651923628790747487831786123540902647315254876015137876322479117322658884527722122853026700693849862617914912873807229950693226159773069184758642421531810547399809091779314128252129573213574839230390406972285183755897919673508180831021188346640622837490308027910674140696433347957534098653422445279602770227772032835411041088481757354821129570541133983683674331942562130981918918942808127725947964586404052574787306470912515556951414512904063769184566706599496119230169546366108502686136515233801279979878673261210980842871653410602729019096633299168861248804498628617367800603796519252004418192951621476968708896108473415607066269379952112680197007669769616510318549165069762878322057765450394893282752574979593807392766428088881652754464656722146736789875908547232848570041821699891320909661686163165244269455268978523082482820156774274553325911338151296372887675276352753437261437877051552367200159982310136691827905376479207652918783530338230288944564890942252019733185489350527675488427551290952857762140608029292239064234468723224389172638002076213491663691817378413074359310144135858923287789832241535133737701305980895648711704327229237044262138941549204442348732752503275667814767038027543237826101755351160539858173263842187704792048501590129310053938952350983939963997571314464810625908019027996483494654511195438327737281202077449693038325814956792236711675844589533861615176954561934206774216172965915480722326556822000341008073991996189245041655861500030050306703187666597308177760860809647065840804111955382016495828258767557837593822443485203631161889660508676716983276177814047397842491554058208529462338458710137999065724081691102615100972661227838321167823612032474643263087313826380857790563393857243085600505613212134987982620956590811094234772551554587473417501180916046681013840765659939286733898090161421540659083744117954831041083225796288515357580467479086921028938275396964196314980896796951426963659973381178059785456899978624580017826383605861257806655296416734932724631176076227795625159460261675804436604293393460155080720781094326436811192115727602389214258711523068950460876843389964245892573226011800304519061178255563418874065196308269854229160215612880492044897977221821785643163529440159823112970307136552145177272104967371047230599042449087883639668225919961081738790841343646634300772134446785223578198056740864670298468850164887744853033611256944848834320561203132932848981396851739215113631546613836949867169444668626301877136168968348378153016678113109876610833093320786968558507083833400461684658209714790579731034559405870939128976152123428971677276373453993438055776984624974251866163449776169866091890054523167025944472984320615563237866812874460948479020066950303064779878363030755228465171713436253976944715762740212337376058966004430894511300319727359836150481363459279245475874482875423949630534057743868806781436631730126990698245216762383631148629569703226617893444441922485966151242872299955943978919739902516033855856372139171644431385489308830198348622479949007383095115425504622552106832955773955503628854353536800912889138900697337564180668180001818779698874600311578548331200995227810144541831816056435203277750028947188618435931830401634425188172782475034345190360940157891667564120696212276500240374601583133222030174802627078289946200789338341207785308547229878908376947744292134690883574771434894841832288446599251993742070158684968391798347590320132643460792362890849212754793734025504934981522373363240367649004189038877707243808944654651915653991663574745580866207872499711342328197795609056811869438131458055695169846989608206242476227348283592597026849749571760548789408411790666358184820249684343708658959203104629308702786502884166663308210532269212025033173234858076431171105905400545699176818511825364263640003326422862220425076345872693908428901094159613633835178853989968998426739356599718619556078628101351786948707955271990821683689200192282155700157279727963666005727251384784740713863548901573370372302175732588337138253662471533082003158552166727881398818093039624390653243507738711940888121676412305357457588116418203291538744969880116987630675243527740903324790942248447531681605793562159555073102660860720320271565167938727804382578255638907951789872532770601395623560623690081348292666971220977987882270615557161558651284915503319405239673230607123439176792518495040624829111955807596265073776318549355974852817332763244344041008297919927669926182583892353575453422046340830854070313235218082658118052477697981394605373908837656771136694877149936078339148810797296800496192528450365041069404645282424148594628003226117591569425295450471525670073030104885594377572566780806823690579726593378550804999125135772941453387105460766074835297524614671942342576983869176295466059118819422044781208920171941446606857277393409246408214297853209010937551417119349851149137190459499872500905919905911936408865246396868473469529810202723997991907573483023833474377606255433705123093473987015539479007855935606691716876703234684415759313340315848977213490669402728262281464058491334146959513426653588653686821203104348685708358140323502483043095677947763752638844540957159342100408439850194712424479534241458913120212484033347603287227090541469105663622521771317540419641661630716900319656928244880082458794612395474403652389033855624857659910024243975788658311775673459256092738417780293129913610638278566655890670935757284838307061650188433066251898360541641899905218883172006566426918608780482112007644356859935796216729592219923456903300210935771203686317273744660605613129045936685612616870268531579698466045127143507639865710556970189745845139835760463267306903827495001472401384598224523666651777641103485686154033248020754362593214411314820221673091553997182592073486424677323242419067537194432129996880012325838718491012993531964782258587373131078585985990380418890853278641727451844299154008779390608628310707910266341059771784509138311701172996112665944603062501316934217204836790307824529425387341548381795643512858202615579530046559326468669260851133421407729622976195309957624189033945586883273201507269010578530412175826076544327001567577198198050139411883371309785867212500397535118163366515509056133494878143327635215172921844049903775262337743014858656314253090255719732285456593388448632285530742255737891952066819837288878408311525723512881050383200609123981133918028544914435951087106991399574019505643019215036499200093959125382245538564788165484977921616632961461348513233682390655927677611352255126969146423540131449304755991672590092580308962999583833508684017389518733805046064042908631704820438460986173624381501945360682563355061378171951045616865372224323045129724029621397973468432986425827582870890662910280842851890676997235207711519550099768061029898060689283735595264191065129075419665935071551673760479566400623437721485671749141454440640414692744769756033123062855975194639846504936282460745530373934280237729952821229055656349090618779838771252717543860524828739713887064171564445636478436138641075166741787867500078882605657588169339186967277778936648774595891360689850643073184090349750277369333208879619710314515614555374006639012428954761584064287199618856427107177856113347681962712415715295395223738972306138695772115412770403198324054449419562854723800371975968392491203449360699979883724900366773766064562338071994500863116710465287752287707001305847740852995912068478142096874132510161195653987379832852446294414351132229905490425341278133153002961060980275811257847980038468876234795544308679276954997493768468638520927660535478277082420135705938072109129913434342412212684795625967456261665961806671153105179017772763579984441734048570265863413437720571774878710394350548725622329143086286216925989063060548532788857001827206109531338555724081573922554597352227986369347391698656936726193359118757487396464961001120714986332093815753814729163785429043734521197705640904248183721962641704129410526567214845661050973931214072636270191147775135970744053147769182518554571957170740265610950620803787563301923244248810040958618922054099000858931836289000378571674011253894947454555490549866009203960460922905338637379711658465141718751927304771440260139601199681587355647890341411874944738568446576945867704347350222077960883664466634431795947799599371526499345700995122227715721881193130501816449290659245358824118242387186077556292498251002236857974144216953683976624878250446087420349418574978533606116530711652269859879430731372252038162279185294262488506673412976245453422557550554591870880930495904589828679015930297967757232594310433555421714872791550532085217039542008841005011639462099343449952192804793633708140966040196093768870719740502422539881627311945359326284286980548244958335647152815376507322675850673532492055648279251688626239078079583001068595966140368825636799740194947042196028207104976215240280612336469932726116448538083059723580794173644158406106506268624738071046502595905104969669140116609351502855205121518364923334828945191066787612459942361078529236572131992873518173588726118013382013918866667991288097697740337147804199295845997063931924637475911169474311780645343364955781403178154816516017432817810923517909198606566547672218019612009971753504758905504589121127823377261461737881415941369208596474813439867189020176936072987256053308679879236285464068155732538845238283877519129098688508107946485063840283791211404060217469028599065564504296664244326398362291900125736195671630414181846936767917302737792138901289990589666025764770452120992703904461767737992919546419696229844188622615103078080809139055255411549722861247664296146440308573769498680464220597967898662946593453359358494981719828116423602320441789061381155868366813991957603172157345463170181535869558848591319018048305425388518113332159225686749262532319302349261503733988190249159831636483572622800063889358632475268247226174116443788989812764960076171909449835798390982596339667839906650579325313290564124161168736252362577461664354176414607325211009647941638276791454659513241229903857959704581986106952820281222246101621809867643060605192568025550254069874165486303488502448258510145164122960317177940724145783238348244606406550360248484513640859769518035347487450731357247779122762635062578029167684718678327731659451835156745525328024670687125654214473862044159183602873895259487010938062960922696921828816387657681364178607182363719746489462346385037895793519911712750870283689258296911787752340568166493974203720755555339066823999813467955333497056859780612157964810439439941733978061763704100392413130692309050839138312306856387458487778072466761693305407520148388917989289297500147303148532961506757494246722120625957594651809495091845900869343982473840809407060921520758156761017562371996845023415889008368745964318005671270878866957649953635025312356415950540958778665192984946057909690151093160983565001535632008190095699175574418387705959517972075572433966426316691088248458068660854764311222420498828100345882975364486924655650133062194468601316792382852313556893521962425809345978604344310558460442157248806603760979848445039551454879798761972505109716713208075739819642964891295116086988747201201998029400307630423804020129914280232317636761969754252742200747594954576615372008255746926240150011935882548859219759167020121886856058564788856278592374885594256119251049332789223579050534525095691145673782821760611422815487193116800765208648337380166435475068614690270138158656530950131012184271303755063954744433725260807152529897507253192776268955780735527816278802634037673427935984949537465146163614356506893882450365778977049334454508490530216210424295510386340352628333654625217103987655878409110530459080615483514217121786698342420012897118281521879592680589468717494684882840076899586326478128233561338829708412618522567420934481461775163437910130902637166458952006211920184624673151974613208620822068867283672035369515933165595537072782312828766768416035039041417779160316391985063905904604905479243222803634049788015295777547627186220402936543648903612707341242538932407075384049625742910587261625538239444868628552377260360577036912578124688247631621071783686187156094193702190460993893107893978333256797184122864718877505220781130689695992563890145206845429056576294553567821912538673384291388048910372625067725210570088563985745216815356564175993948114268680022287820399892387478560601783933351136012795226648068820869213544446731473129690466925707200392986258550278450425108678092152535215966487802093196283302477366120000865522415087319512471065432001274807049331866809704698645437376523949027721639893937310191665715503428668218924717113056981055722708875999146488947706370556560353232171455528820710977962016137852997060455183620662438553262054179531203714907077653939747447651293762022102228437261072969736819138570206625992158072764083258979277588103410494797162253959235681344343314565982380921305896497556157166965875428779352498385965328083326933352115756998006579510353005660302444989487360263597679229453509248005849575921921894782260086874401856203519480208359332432959732039632764394363491916680576369140349015955444424004712756390763936827876057355470271984091407593490557125080493683883456493293031628141359628740746399174722162620177816784573277831718692896208771040758243599417978150665155969307612325580202162825667945450859207155714142915601564407186752442353387257329535859669898988136872083012235377411856091907926444815843625807490791269456258659884265894933692497376828866750475871300588669050554321438201812297965436785097006135807182896430108404459851674051964299308319507553693260838172963026770505322542476446789792675580817638400256117272185857151490013304429695990878528131436654768160702053254137518069597871011316982549033971033542332253318615241362593277973546724066363818652049435517086325133939381781150418089289893935592514899298388915736609970559745854963435548409395624642539652113857362284358086943267048588516341865376925796215266691234410735476731974866419889441683066626678233811736887899495990143936464346609346818840408942666437003359772733429391816253461675221627436311663378669133440977648144185990539657219955043624755252788035605702987071508065824104171475006025623754178108820040163098959447287520000828075819033440960399540943020840991912959692325513135362475702852195838254093297291959073271774577570939501454235678204198632898315650977795793245883195401186305011944931436609348497946561796435230162314916680591006615254854788427576035589131988550313163376434337881878366025374261311190061662522358695000582684068997354103145772716222354367287073950615278946775922260829104737449845867019699552594487577897178256923026449661776427676315396179660608967386995653671157653277680521848446325477023645279292360776742151930740608231578761108657358625490609497796350683913211842941577965941083746109096832811210975837639388152281349063700517551047418815255560695266450484929428171867248534858601530977790298733686358335704384348685727764275578813177826217313041085008167388400352469477737455519397276837347438586780019439052385652847185601979898026436644671759796920046685503351337374170076834445751377144721241142940530631054653320757315627780246194980864585626477919707470513236910140546725205470728797346050784194070094627699555392913582921939402035001877857290826236526718414899125298203858349698355699804561105458467016126073894704637060493567046291931264009153026923351201228177174491763295550812448494543925877445987832747352652181000085646352012847640782678055282020746570486311706828467956472480528274465340552749597869413879982327723774541658409994782053749166944360796725895432120511091589613762867417256799059717117938055348190563258022436107120451616336561563055585022724409041840643160626540732533053084870428234138707714378250520210139163333926849222762656077521007941975570161531783235669108754141014031531911917654554310086525696671264137686077563992969236550199737634622107541876554519106834918811693583388590199413964533070084215912594708312638803971538457690169322311321454466451870353725269273526846434924854848548147004777213868869542105007782299788723378945106346888613574402475076263531256171788783341616624606662761494173762092598663349730398640470245571795132585364397538654370078295478242563068362946857521023643293841099166477698187656899458341140596492344402038478443761318205908960676176479595825073553865210966555322553552026190984501935748671150080042680947202664713366318350982115767947579524509428235112567176464881529120294895001031166502005528989203675464505761707616456479150144388537262632457781719804616764468110369161029529858499107557077183479736465482118464012009215993109276814108813994776732815159904792532415277602110416694694200771525608874659568310913189494541260184743009536115000973391540485813875746448512784480719643483122218551386621585075837485393068981275498798343529709986212855717621621463303147899158760884061325363956080454743812682446360168986182090456726178283997064947271731652748502522621996558091196039956914987140413685318899566170981985194341433244215008179437256223567932675622331135003440404448646290784097434327328587782221388173838413734682870714663115248661416944048479984303856677010812171912999784231243269230332063416200746422298990486541404500833327354582691821232879694240093684754844941953225783829791443175237183173153063189007508065062233816855232823516113157517003385004150060277376574257427621556283352669873017303759223733680747715299321131219763125212504962650309597870316348468946557912727176857769925392601400292302963939733359263762644142862325921736571626852324558034493236517848822042112849984055856721367669750585399063022794672091749876129693023220925032976917943281801063106859197774612532001240721236063559679163399213827960926024321740045045514952106233252500165516057816415211499965906403576386552020817700895298602650419567724004316310113450031566963003554488093409664243004574995262601821321439668215891891462136998139077275880390582380670911795708134449677484362540812928788217338993928005956051580363807728138755817131559759331616393799756656223302246227397579857847107395925554834394446723888439439802457971037723563239312052092290546627399377535581945501003931476893207285260603306962124140934690000644622877549878982505199411624945537055431994733918920513421502044060197268181450378936585060977016278641330610562802613497873379415385029322234310864761967513102820389583125420105156892748948430613312411694735977420376900243915304379181955902778482446767617973839119451166856221907578584769494394161911101706653083517212513169158912972642041183320096164529526666128319410593030586408569627931052002213346290068719288932621878940747140732037191207074908587680242971485933617945336199346716737074571951794396893906198255840371340215425778909595104954559302757346713208665942414818095141433545943610481862629642544291985159457924267894952674274254926357106399002239099395869220260686988517693172713008392392297312989599983131169161832891636658674732100412214283128926082680997511484340581714387702508543064978840978805141324894011627490670202807858911737482355635141236926369445180383630602906272106190214311581154880107326834944488014341492208153813185271610192565214123367758197170691277104850646319707194406598839358449875396846343308775896454894016850409670880873945983927912102255456570314195386715451008518547173087636009043058840327175048901821169420644540969150773749924311175081691767063498719766875189595895910628117092384209042092799474176448490016553908596232860912028394925330563519712192191019897675839399221848772114753748420714505337405979606923225271334293764905228856175606720133976615910587627952526619025466995782043487603096903814557983634432750217573076759508033098728253310079416858525428860254373476695561961680300724938772574708253238476249757774447242758593781595454188270485284633291523940260166455678775360201966206160645001801615713433086987011917503240885464551777383254911617576951475949449864198233304445706101782404336614574824238977647525703179494250080212506406606382955716402971012604856528185494712798077840755681421369058745751424304500065451553524995851331846199693430722890762875605212648130224299167718807365594405712169143612668227186111529530189427793284758800998490191771746572693320116164554396015599648216129680164780861271523171417760345778587026437155287419883108174937112441142769914018730671590060998369920928040105820739458486129056538212836257852072067273184695214278983778815958382607638485936413824199773791044486674446777219088731433913148581372290943017568646181656781230252382755922483891973921678121736845335145440021918555153633739489445538098644949298154321648294786518474697422684005126420252104086401788313439882440696491737081450412001362931132557957708292156992770034426567234721824150673617846154472033567472711864251404428858621460676754294365570122921706908394833271374021822422216348808932694391362805157219931610606623876483673656612963638719980769836257987579360686794338277477181174285240953009975310492639485662252887739970645665883286070025441489571736956511745436202213262119474235276793313864351422786506586878375186371921506648222851281364379231446148107971886647133799550233661791455003697488223810360154500872459431059499680984994269450810964089381001649030714150609403396008770770395550018708334103624932523928910749132435954005012896518932996467372780921713353593537890414176846076407677860127530366564706743835297938634055665392590535546845769127497625479060505097223982697551609774319199052824054367145800977399017495924415114872929856142721138810123245886919369274848478943806499752094250991601143834402834688353279906222576704122923300863897310451512706451882617933967165453286477696624136693282016226290921779322800114730311246990875829588784622997988615823452355416664043114374617978011273554060952515919286973120626862073175174472423849600731878690371421646131839955512387945113031866811586095252547993990180192244954636498455669027371276832972742656249222615194006121159711042128354428726512840811250917727870066365693821536056319107241099949136745686727458971402698573898914369812521187073712536055187276957275440551327194383307203458977361062753341419138398585179111730165658016988856030986489257587880792830528070502425635259564133420067789429602483590498525264093378617315269036928368074680554209907812975469144313538546572172054412660244433420278083040509800008860676507873727749697117469654804743290870928662666419391521356003655533423240614681803633272056816669771900042839162765435172906117516817955762478206661231624113227029777645993772654039111573015080249521833730174991741917398731044532472476553203881935911283772221449614084121720490684226756134534343006552626657535353613979916467058372158998093365530864255669602643429241228290128343327820050875873523916390086152488116365645015200094641696471674613172097790232346924722568488074604217301044213476280875300217854787647803414427186693858369620243113217985266636427814051933361196299666082759809000077110787429486619205919724394308544181862352119350819354197039641816681477405962887997737474087847388830100943571589292358939426377750342212292238621955695456942117484589449242357272148421235337826140272276239638016781071613633686949963582708957803823815660050405847688353196559316856439531379931899366252113895730097388955691290757294862588807220255028664635054068733015269006278756050098976695309355023743058817539779807600280528822266912444971274392919973422203072399546273919229896301643946715235497577308126403696697982975203902415974336211457363227716504432990811892279114490064814093081161705348863245016174603945373686508899037674026557024508297967301709066730699803704216654616015516007611136311718450779658817019788388769547355314776030060205242225365953853694154300967367375878360676247504563185129521075611991458193196365947924479660348160798774663863049572386730224383975483889148297482232418259630642891231077994868888229909330780426091789481139120319893504651166248144015855802581536347815747919730252586127081229387584850136999631177176337351155853093373972634514084062654935130395076579740910004813958388180434431491712431426018352549382866932279862459636710799411434956867120065767945348310103024387502806480864887652103582872482559362527232375174443583081730940079569856453536704728092150356411870369531056510705484871915736928767839402771383995243482039465561151137663591694992269863414626350202816132105601668000349905176254295592636551011616385929212275844680142353741674764282519294717867265347182306814418966380787686961151204229838882655505461046658630008874188998770424602966609039389857753405062889241727951059973471829496392076240114468368111215410452203428899532225271254919229214541043157481257510048512559122161965085397954241107600111212599323088184026021055703029325032092141040844452677548058628974718689009029247461221825461240517318082133660676972100925602413204392289712375367017328706099735447539129657841577174720700652050530104640401483795770082544025470110253927176776756720460774801326484972835781151429787908889208894915817709030005285042138055031918211425972585833934648792268381831665887422689755280043288892716704129528856837911906228129968645118450134741796781373263805854330472333649349503401516213395656703695948974176887753773036155929783693852564085843353908866569440230496142605571721219345669183412526296676327510718372655522032992874023932167518880607502084960290264569352601747739421721966366598100827224618439566696905961235181452011819725872208591343385206010904035080393355670170911980091295211732414763135372496212342770422912540755864158878183105008849018045998640000379544425709869585805520184350180019437333849386837121321985665190603342482053139347717560750401916116540272662175450175263498151185520400016365493400941506683946772866072375874909331860267257679038330536066740275574364864717917211398193653427533618586158865896360499283286254237026500226096846303010050943678443333374158008053192875590897899781726729906196749023034784948015100851107235551380799279127566866455107320689196849922975042791116632904242756047276734452352158813575493976190876490069125767200285994831246440448794237258240081960789309381554644545582371217580650849634526998110712148903695155935822735563680499620594786895403060835645421352474594521201016065716491893408434955878326279221529681232167125119408884492227277751342809202532649515877634893625276789727860868352849939962262942532296990406130277111469426022349454958543608391698665887545880678320215429295174987093301359230872219141930943066892044629001614250599635059330935213484322485074379771201146805257574269760323566457874661373296817068498076076090785876957918793440083074198167671270959780780596208187214238693263980174495282668415261424571412488406050696536921475608870534150035725592507455156481375549198804619751452309954285211290970325148438028954162825776538446944504139186140727732202785838211899835964117760830771721038915635281493935383929106607507779095572902054420176572682794342287447297613825861875680411640110326459722988776140761296409340245459846256401095034675757411594078244172575322273295098620564283466491221329406275339249229716504242022432653242402291227245907478707701266692114622118402888169671703433117329027623297700205319269406327891657515247701337624898984604184823961334062210838195104586374092670997496912350709503419918616863794757570104187837388499067105503162957661387798977923062488471906554874696514661403740029951301237082108934208654488920902503036161117756758320366884220380420485027273946881927939739064977859312987952637411808804637627649620765047013398443456641795346948622816607177421692743134652283302580656093788124807809457218840671360397928018335906096161986317755914061943430199144941734655438708921331918632396512197783968482644500717796770111565817421640962775269139737469065912030885887863757888773786583455908369589251199285591589266269740326430763575361449727427668995625085425340933641083976270121132441174772786192874346424647643190947007488927421261817974972040875869792832473344965713874622161467696490806754283686361282469068515745314668919389097811335591863367412979088604604031068364375886094272465523419219502280512000883314401369447034105769881622598915163282009041150626908674462945069372376369522872068074726262855559076607754622356009766251665079017209262791078580005428631775531560696909696915049060453706866795777443859778268428023731508793442009645661727019182735743200062726590048793876860659552241687733448895548165983031044024403954939551333020654381780572712703100792075366196316011663858607312705381442259874312879739485997830807847782789027718280130942715420119082941882583898008099272706291891855736842137685253134660411827929955359798716308195795947660377871406298252296217483320768363689804776759923501982673687258090053360095590105523072748470203863032713680947255876526681600044481837168052006120852010157195754215653865805894280367937346374104166044380019310630294813247836750120645106294703950084372282746503569664680324877475176601723378983280237815940912318358391495118352256450226207601061466469139260045842257530248721514187247735980217877102858813415118150403534466683843958637919550489884139684880533125730508138817630658639326088628812355286796261260954880930542152657839932331973786427722542136987847102739296555357523465022212784216086897235577757339782860300973836562047527640042052382323901049242016532609696107929701458030184365446016742141852489581525602973392019370379720476472170321668100453645280106237264480120880105179579406202718327883224472317426795276156550957825149059070367832417551772743915092167548261512188450459164570029272339877243278875904343272898942407154804345557667015565608011273560913429617031517662280802331578538714526366145599625727145668293899357532059742856411576270011763071590263851871305476434057388679200409224470178548908189261103693713574169214903323144731099899328758693716492840497736095711959709339798010123325508571417227671193534568454167610961151334829190542767093550164370947368704138558667949394348390585835913129050972741778570246305266759857323562690735814016824214670829541524550750829966879355623561743724219798038250833806779202568767497384428413016001225800559702609412280392952239934956680128186649219513829926706680432176239210859132880309834998042409515804690713562384078910391413750923934762067147350240379241123781334582048283979790178293260136276075087471256489115561626276959407254923052010488565912719130277618775006010201007146953674415802483044476278750295806207520774727232965578028717067737596991908046455582698850738244108707794971041367641869187148614630525683653348980563239250306050333289686629145847018884810877240288678519420142766792265137134812514012923940124543245231868477540363527329134477695939254492392431867073310007149325994567672244129753560385600310395742426203579550749631713736555814671002632002198230449092231578855789389722769949861411373877651699449036148603159013908498915588444327462214177504925549712108868314715322814689920494654375609308854669238183835751619329594359265495847818586269041570023786299193950855076334812314911989468949710366394237376475917426299281935391524245628536997549631522594838071955193768070788988866388635389805321712444189691454858555992151276952327465707218738448444778477537364593326209832830522092287984633378919329229104557956648355106987455369476864684810188070713955058150792229285329535941761509977833737396295321857743569980373843077879572007078962358945537720032285742725817468954107072150258090850916911788800765690287424534290233743535250930810389637407302737205248896563409092767249214599761434953932688796010150393727756962596645765639761063538618859383667076617597149436822092361295878020387731181882898283037338497996080674116967189170738767773343088640570147619044787406845412294569337131216553937709973307148924315349003243801502395000096471285897448342278771177576367292270035559735619512253816836907204761468206613392155464504901212308193852734839521642665446040721203868828574032277715464858130857761047578327458010419320202328563109545198055747977321620631636762266833793668926133630779218704330494204174267561294878653328607451630480054088510377669609858450284796488197824806944499558066850365877101033127488882499004982914332732504867841215083348744319339095278019501269515371462752143716961116968721675831344892423006456836226538630267427060601832387667112021960687579989991165580253738261073647279472592838447343530642836076296095235117181276353976219798843931142317476750029216839187696027667294356075890376787508119776155819548297333090341987141153371469489483706029095103439750205490744423683825465997611608312895657378733376224255721078035501377560727360429637985692752724230359365674467560013260491472245846658533062271641992697265845490494147114397868315763474375172963869027013432169968045797777762731856437055403867831091503533392068401829682585564417592647057992233683190218520986004556816208449028257345810980363562544409996552784035527216238298597759845939278272330265580107899819430162332768614783475414892579771644888478672101175688648691113462001218043382401312291882841125147464682561074618858527428639979225741988603205139006019377706524623700865796742066436413822238365514201212569793317094521787141695268470540025572085996434770826200236086849236398368723653521064758748300328846580762693342916636449874187763692743755138532607802836812941269346804073038493884176794918234694673333096103368140510451157736753738906149699838210823082248925970789049172867054414271745314057083965905437942617242630016991994998356138986653633881588643179799370837370561814133846859684052729252321277258681181206202371196632212543821012198395823177195491675685368934569929550438435449461611479803309181726927343762045544972231072492799055886822072895541491729580517342211329576893236733317577653728362202257418910843219021894646028672698507663991710837505349074545166854937317686839964884451049861973284790821158080254671467148496556550020775439027920217488110968812801361882083377687233201814396586847653595858038077584070770066240263844354497884225123419932229300015676683968585711277254881896399773856877001036595806794690955575889822883861966548596109891638496429521309853863667148447243391196041861444486196567138015001497945810631022198603490116083728635087144661105183152962585076446147845763386964075342957541401229290001827261193456482202792826592669603922910436073365880987828834044908492592759329610508401485167020902956419113399209059626649682688739768069868957831638021719302875281177399852194450591023119057231068145948371600840237498402531840724676705871329259413406807920310973830125133855139144363051647171886503381989763325323259189972598887768869500806844054661367330747668083154711609486861064026176120326021991237104254277728936736827104852142122382094520109822579884864801028457006499623898135591516126397667545377043458306906312270853362722356867833741763101029173733233992921454919323317294276420061055612625848018779917685049910898635370462443583317722608178498895502965131946107510142331711527241104465165881399744583369054051655527591410934591928937949565593414852103146933289001795465874888876624443879322528585033578294818124541351162902127710811642533079308618745632137784878674443023729629383473263122686807919812276792046926343199357813742521114016785646968352302230498418226359736877823003341674331366174843487866567029923501107406403530402938923710391975384546877382526739984202479998952830731096234172124368293169881115331951260117496250860246385940013308111451020495046322391438792141318289227939997353134834699922619986223608017100474553456486356441743653849366117513349328510436110171662228624194937693918067230177931402896185243070091972264530266456483151604844851259016452127450719320463377062578862977355181245108906549438662186552572155354881227532295238969847279701228173565397293059761638812093622503426178945777135776469141987844968425761138055478518203531677368512477491300918199037383547323342319678037288650222750168206340583459698184624697257134104074980391733028057082274784841830500381752810491016711859182721415956507624919269713570322266025151627946893780004042052559118381939189195534810699668069412282025567869637821274363072285270619796831774137753400325134778424191818806810544293006654844044839089342927965884992452311086679447034862245977946170721076373760031367204497903241150335171852236750064105481762461577667506137346679397416016622325337829644267152142776021558398367863812663122160747675418220382438316983491647077148025032293684861370540483740834839615531124907380727772814547034475048616215313378347122258495748150438290939067763267667711005663053977989434496519266343794695110220114910848468802100280741669755570205689147346867898091747696372408363445668029282169957414058202783092605985716111328555152473222968407712497880602720086529922773236612352747570851337404643814022217471474558420655118592872704621032701894352009841034038266668660258762485710987902734383279036451677833035863512434721595666335511373192184483097122098210076957752314666232565072885230650012339556966504503167995980365468150180059329075367994376155993932653723965587352902713688434476881025188923207925962920468514587905179049936929408359789251070648325640225860639127428790620979860093105437667515611066853131356531521410453175632750825753320130329041582710426885684344762443991460825823158532928145653555495854016833940713462577282030764136166689787675174059552388715243885863393471435621101123071084243872933151174676911582849483960591485401749878821398394624462027354888436580122081280295239067713123943486618630971158982455750395310333285967835418416750218813149946096252581677578716028062609269106149558170966857352535135650242053702044965763313396220786421757788220228161225846659499052972427058004753600428711443917382359614278425821533280227993729876546199978033040865093166995900111580391127625801252831804855864213139750041760027532630975500897824426827217115085862311836696881761445281396320122723979190659106280159662992058834072498105285069965832703729840375584666958504730502913380525461351709778744989134511812269256743260426242194104634831257362292203231786449605809967342971952924596230306605208344248384507697009962840722196544425559926092891708156301176677325295377733669560670631221451465370813879255918404692106243151157737744072617686527877339519893737374445039458944054323282649019344819435052693404496843113763672976494928244823671938148254023694514000405465665026751441646040813246801198593938908602869671269889544821760968136222267064077582445493100799382374739880404147719969170120830155943998371271098317819592698916002708031024404359642465375661782599126402116707525708946846318486923549790849278170447858684876491394050908974849246942954244255746847202728586702654772370558023072547614135372951195465177671654448741427239027544715296394505124492085300645398482344783495724618796537289411577277292868037947447620235823971298455055830394492960247016384519137416417609971977963294657480553756797771612555612026930728709468654430083242489643098720150975891128640960573954191037443375729907921317999023704107561652799936557221887015404909232836706654757029607337798452015316829184763226930999054056973979031118672368419137793789880731610754603743266715493279933265555873032254492206415438099459070550390862435934486060983046351689141303715616744799344204985472114083092345553146789738522900605382714454371319940165140142639387970447902531213716573125798357695251547178142546880768823642004747376180181956068511440264296584482036665307145749080953648514991702540397657976877659336319950431973820443320830081035093742030307524572331802619500609924065819792911100191715790777041071297426655076957780695506431836164956678986709487816936830340548770223038500582677915122833228291458286576489592823018083823134930901087834143489626294450720368599242280391686564761097713149904921634089677031842596153014704891596581114911121185938859884696988727081738109959949847914017236946238199866083525396422440101469217055756150318740965716938586520845382165071811503048802147767768666142565315656030559793237691349858794106982489264377774855783473682325401658692049799295166397760017094278359644921245806717251968957684625102256506663305541042517348972556194556574387843600035883152080126412529651507089263434506303659122473462843430219679684403301322546087494997253549348727504652491982127052304323427331561859928067486072227574432844628072198718323286739866009276143588570794878245223177614238904974579059021292096374987165059949010460517608557055459566858823118873483796175588460618225620497077807308706953079717483651829379536446692165934285556862067331028067927053511532994221926162998255866828561971614422292608686429260400389918408107135849926714836967266444995907095439255469167796268583246186054982641049965277676095493287361626058924664101897518221055301015262228290619150569977200207906083076345447161330070912895333865219331307896736762064283684526418841539231408923386301312799290910934605409994522538802247690174320444636179780869263750922889216579235363838625519749298697387784406485620601638719334834417456236205156650905625287808469020220692283324767677018858280552599781746244879323028924785080381233080536634408517237327647202515268545312986300193478098444562292945602468259953260974652048752556782458705495336208995757010769947023623993347460762934167794037798925414126256781253160897337474374639935395840654214107118415022914233889696275739383662382946844248856087756933707529090115133904564219757223177213097335173483370359470316961332845360923924594309305773482386211986042473885224528007417430631990297963847297107792424815022137388201350771351987965454926088683303114334605975837559486294678509050677672285387191385531451316236209954245750082061854599423234941068168241676114164531799513719736215386715067019604442733456042105749454522678189208699759280431765398078634483810533811106811231583004065108964983589778252415691275699779562150213053669184561894085723285680400422278722376774339987646943605890034429718914783592356566982644875498120777378747135956468175301834952156012466744973099541691448820069800068422307951692427312309583055062123190578643525571269384971976741764496634564868537630660121021330559962840017308423899933709054072416131148080748285752483203292561196502920009000347045197673613543865490597699184789724784740740758003883194614289271199532606690767941900957076532105106002098291666435732387492276359040912437625790642408369974824196331061346286484221419219250860009654274249709143701893205442511195689981492391946823561238791805815993900849707427125660963523407303098670154956388775778412426771489318290724092273370292252819289421914429125542526202938194593431682160360015440646652075185324077825985593238748668679761343238896215750347787121668765132228143117826592238809881873718350834117045324943664118638966737507340825786458457578119765481663642727078769863728171503040714204982360710949590420760178387319987034291008483293855796579619354286173397016126679373861103310882728790398811868807260556581997253746206173159035621236654906428851194209611888612954634612922953164532473336659145023620919053156837545862048715155530360281894439352103251356860358870006739337940835813510044677495263851313401853316796598391060115633123773563981544253436615419337419179039796539910613384520819151738366692507771845068409067604863996146571353329405829337303396780163647273086946625135819875940193939974612238241977544310739942546379291755800114440017022298591161026319465093894804334007545159216109527154612130250962166247063317812781060367140402832249571277718364835260327836772977019772247956431491550445118668797507444722487349509795410081651846305901609527311690655577039867502588844127410016720947607431555770176505264750624259062131944041210374139092610313007346397474726728984001818798859134292571585203858902145449432976357321168182071807395033704035229391409138678587588933291118980646660341114184600611894733519405180462824565628496142545668179074522384664692356183770442069116639498679277102580836662455580390440999456048728696713449121010152288913126648268221974718144767934128930893274598170689329383076547353459864089920147416253933277206473439087910054574170607980566057028282130829221829462749150870958905374330904888473983076191646973920724168091513768933279177354471286146633011484994365169693843552101970675117190303481268024047246794363138206605356007750080146836296277396393978467922794516334128422233669990551454878082081808166956314659122583447204770408565204061275574521167009177260008079931758599776589745963497266644369872109588019743635353430152276314109460238476745077825122479643129777954684948040815954180967818204857638152001882331672466737216090318190412480385633238930248183007172612561626078382261783224097291932805230299282043454219227729309732400403844543445189477603750735520460764230799418736297930096737742005740297139683465014955919872630214885435064269123265258559803978215562747312786227398626933202948920224695025914342310012883633982708612977910887495584229307142416731002956754548943361368626323721900605626242932139952499437472109130743472897522927240502774166353177391517524214461333016619914516318237609839647327221246642384031141640049783355815837435864935690647291214018656352428159097482630881422246188148606605432977925684444149232664153478046251145724764431631409913753302242285079426567899478956992793042842318016856990964492712924335741946471580710248667445319896159151557302058839908327023836910135747840078502471895639288860362500383272571792326752702998891559808796124004419109637044396254739065259439456870107407316628788129447904689415706073591519710159673990813661462335154849822962179468399106111266640656195814867294779783248204510203424421226384225171331714904518458612398658345138925562326732426518391835586405147007785370548095942534249774028998072753031748433636642566337937287127569534074752186202034661284942571675396348421015488129826795946842097407131066780443047244250038905716694935649977538878353239525220672423303090270692438340406260494792624377279853617495265581904202137028975205355290194115732016462791215983850069929369005922990547506285051218760160551050797597237922195727131542177463927813786236937928716385743803286157934121247896148197349573852603774220168509522233541398340065985965966006543503257027069102871404050947070084959028971194337164143159775106791467190840960043478326124326588502672750657004364687674019833550770715606779300764487654989961251937066201883547851737233162101434956296036569548354438414473293603350055096161648939397416273720432051056305113444485980356619663791051177840526349212653063148425725518376565647401170007853872169227997526932200820450873251540095751982487162323923758549506107247689993486980225828989124186570368370563919869375565053948072107144519789438640087730033597089186951281095706115906438413728929615016598726286946356783486780468800717099814611172099359295206776416134691572633779465283566878271699492345909899293933501605517409465281100704302335284178868494100578530706193271018326986172065470420238971866020790901330485785983335091363438133865425423078184185969405306047049306243808270416703178284421841335771705867969691095859534693580994632048631739194821902120689908369307922373619037839838744673087820894421794400647455791095022199739705524981292293866418708211865119625204714945047690190478124630097998221712211529978698376512937161958444316850988300430778533670067898202848886074308264007715966220385813881064192365287979094324519711263678194072661354906597024534527037169520730796544468378947832211064471420367609651819540809426111892322781804402260184637480011855901382001343847312328041135623338400290176756877303366604825238751530288915104805113646797085547552882703639239690868795893452660710205274595476233199859513264273553908636728464215676577614784973028369553790704422669194246135978012797935735142032702520104199534687065563396405332002315578563242674433860550519550479954824223991677413295463837771320590408692485642575167910608599148326105306771459346618517174620995817094391488961169731031936080254340132038279347671514998455941582687934806037002611601821381501885806817608887052098731737731883543304175715763673466286463004973724317126131543483344658107044105748411002722861334070644895232406930959293561011053114897526211988215781174426428748269293433709039316588546006056031846136187880670533756250179591561017657907164359934221140644812411530405963463790125953338318644086811882458436435365474810220260630078058232257742296503325895366891673856785346459309387463087152370300053342777066620845697705945298335184918015573229374581484641834662221411820307137057650821460982552729386000244277738471707246516933972759674314622139618939129215139133321097381134769139181041784969341264043338927182004393010028850693557164954982632811277667389290316447051490426512979016675538488340342030122109130164562387217219925751125316626728837910492576678142873578146402065415491107020784182283647781807826163214886292496206296107017422093421017378929670796474328324191041275503494274725337482676291316856594531678760870259403362438287315540976305923155690994144590653291518438467177541513089811652594958591450448173717911171720833923969081847693401787840284991736248951158916230155881885345180047604449387754191342652702714490459625807657226372889578846997565530902142036864666134925150111051591496090289367651263895072603662028341017143228989112392647477376972648473096411352427513314229839803393351895433117443602620639341058129071942558638444800750729165839857857690508387352518348191577719691537662507701564533280938637298622149131516483159409338656901245598011879848388187309585791838900730512822820322819422718527261640744702064694228839166537500335251404052646027067331685008223087165074123566954720688540894350914445141067695102182070046870887388643333492647464647112580060312889841145807048068305639843728966354973938467285838919404905437560765188597500908029536895669445215469010154526356593305282354049752696939444774612709114693983368393642915068287594564918333521736739249349066397017365898794399029081900240142766093111245135983379754964394422917211007442802660038373313312428657625230088825417242374158178400379502109560383048386246410809504751000256962277535224825906155215431031771506310975427916630342239163586591613595401657155521656307278738490384737932905411074936127797835209441294876767836306526209689189665463365756987302255712480674215985758938655283311343780236561092839288160585835941711683328200104853916582107475355828267329063314392950916812997442938767121445010030337421767662857951531153785716466152648833969200400241414671579491821307495548283414991571262289384380026262683642752247393474484147204425261343700701656169086032391574748479775720949932275608778721477403629075459453698183554238909691083882626787253031542321899046531291798787393352036801056928319608756349830970965765160917223092034203280926901090645626207379837440737154442401240656285865671864860977926046752301267174092315352436970020771306107352265382977357569625120903780578208356055267207432958260023225793657872308865800780551688030312229188591532491905712044637474849204501276031387730093421908344531050961706078905356340958552292974878736887283663505792983140535427574785493738574097351163088438451845966248544582045730615551501908241203423841911831100663493397943887828151153418362079803496203561181403076958423088522844558774311829040558565613523925288785646282493912986650753873145782524509352028031015236797646305013535770756629152004624909857978372326890669035587197809674269021886142387885573808100043218716384715922105480618569739570522704849489336008928216338622677705195659237683568113493070135207520378546447989560214791513497375974978339440984888944905928984376900144227401317675530094923291100342287121255706535238174848774538952882176449016178838164508666307623187306747976909908961540084922910716389164520296014331337939727486125082859796770657598583587296488594281961017737028069147276258150095696776885945583047164622345191725651294848281440359050573660608796621198065457979579622939319482978958821136882133359579351595389568178781499218180135692846843921455256149265483778016787871759636645427989679715377562544033573735315303261090961651589202999301199858827762134369405861200340549049245891117283062306285834974327996608264130038309098568939393463404735252879030342876062498285737282321450271310301358527845094697224341764095345836228886403275182390359087459149883544140730618855799395221150608818884497990279280511604599172734213701870386616256395719213634379377949773378908688789801770106786109894954177779400840664836622124243446056999979610738771510555690486391237538354414118608270678602747988270194829662927684215096129143079952001423539991831306545151990201636228454126473222857323788933675284961405683853664666926991749140842249090902101759835612375427719462200895031468683875331667710351438362234468644575786448422392284642374627904401516104476691911071218996616796190044131146687390051410601705046036693940144130658599131635128633035987732510940367638624321684285765069835527608667533426188047816220162649864466601399319213757906259999361359097215704288804066431724672641212126467065069251900891273806630364794378904327452950558518442785762120867115305812644306212090709201873125609208367969757788653759824610934570142299419253370811965964460454886621312660555469064780170454729726769048420581092925045188118265023310244254415440910886357185719700778383500051035982132098907960226370454748547668495657060158795614506431633855161501349831380261966218024426329848723488259686543794704900201904486572968010334569435096193568307171876820549419050310409815324333678108386720651869661804564452730057778790719922853318803250580745778427362753634153538446828308582508727283358566109069595604199765542477406447119886523038340617699544740718736793074406938394572675970202507209601332646250568593467415524219799720313732617495478651065474850641649457053531260619359060985302792192536001670468761682504832666068064186260954650478377056925065881508587100532979306258930858511776331093593851355539269984813720436385962753297358018507903859976982013216961978045495504098441164987953148834792049929403316374978137669990171962474926351014851893652054072664281997979145158716265535268350273566441249096324988857988063055818978278907889644633378376222797696761968020329971389090952988999964808610219260827736569540457000750460481949576204647653611379293933002654808562827369707766637197784700247818297088288640593530855179346513499159063547359383504417512336580013850803775184343741241559829692808621789749191294833166299336465133180167314066819037860841596494136852143636017567704691168077389958134801622640828899809367779953551809425243032213730112930905618425849276517903088995901320441648124325724998271381045298889636954637798560957594911254095095232963198319014946054327453752123513015907368133242203006003387142276778118493430769670031867678585264771963531352876932595143538427597757696231275103728906996804515538168509713211685745623783627678226617506287851809862306036358268925956747108119850711342576335748206512630899827518980592944579498443271696396309814373558525334439623190778905834699917406754805075569356700463237935137000456299164344507456233368406271968033857231697883429030189129029751398174419417043144618669131693927368493564495018570418160873497877619050799786124846054245227171263194962765170539965128173493228773072667534100339669895981060505350800630238432841112002514731778591691003155380733059336313651697089450815791573140619232673535119957222698409487081325544479690262199910146627303575842982358871153672618456109436143581237097165151621775955521079144901667452322422234859147185937584349025819956612402289796588263216645674978722096811145345495381092672818799999148755931681239287799075234991738828100506133164749394644102807337958027008381744611915478585427423856092040267975362285807011325933962625308402692786371148502464145830151223928346318405961708934414610706136668062324747725650555965495601430206565808847280290763245115744912226088700735359186256319974772662103815449565855627530459376008730517571656810825432872272295965197076318958956380312307291278226994063375009027964605740074553867695186355102791696879969739907619258947794805831299608879300640266667362194522361590309052874904542979598223499225752036713573880886974699469697653273037226053724823385765724782376948060511403365422347362694491549699708065761197951688004443545469861831889645564090267123536001374447375149784885821165717247584835139636420150683205219225529969398445968472532649169887365130035337688846431766499049178785427240914276543207536537453643887533933533148333773794846248299017375038257635974772280191029995809112142671753893000412391986644184654381670008019461679257981448723945471540796778175529281936752530543890916584131325960115931922147624324109221495775754592637424662444804643639757900968198274583459734851534005646120648345104164240654239791343472101975025738517223008531865486342617566122618237480849336020958917444223278937563796018266080000230715238526441518224445266565145376307414587432146232757230565910210966178091462826595834908003545360155896491368155428292721332285285439508414349346867413390744397228519071414852501142724422445551163447644390014378576701288705018098272503436743350108779445049744999747846416438919115721882910364629108016465788453678904499819732926776328023073374619437593585976596649192521887460461174867617090540507098798765337918390698832705556085284554793410844888142341790784731496198679620615830290915895497909412054508266250784426052971101199950943426036996751146039632482971044365346147132399813388025038705948995491195663530860165492195897954092643382753189059575527647109718926041017410266131043462677294130089383996271991555787572619132106842941592686969694567257379557576264111932591926679371724623624460524466330767931960854312759108132217804530081512408752350245583905319145924798667802735843197905841690555785701550360771606524424484824805091012057670658421136111387357844406560804512000885955595030986561774284215699013332613392498295921345107870088978442766366175727758018155161694017011039223454254857967334767951677470423180201091283172072520647472463143871416254724227304083594870476990020231035934670699068593491655754250620199205952212777478065401540894124383408123194832514939193511783173317990167793485840684032670710413977683031953417511917904716068515311339660850612094123724055806949790191441601853944008284015491363545389515454661787025325822008623290531237485122730353930237124395672830287271647730750085031209152605348914603949091104082921962376738890126161253617695957536679654360259765987561628667459912543441564248094818998817093541841201803521040517545112222353287447097597585787761380058393512503867267839937993009718359616302994085474152219070453126134172145457008241425909531001394664621765556137962811612926416366600119041866716137570186277230745545683258685181009306192555450296816769161908091036968554564844644844715918667262790528558331306187566611889608570750699670290559987806684786443637923994172009820234183587486825876075805111995939798063073280925365346508991303029591248375686915229457699356080062188080194963712962654208379959298263019730769343510653653709285503671240911750497159615241333116409076150164154427402825463847431841238966689672641296028606176371421336562705779231516324877610957044000777867540706040595193605504720545620271329723386384351402537766722814745777074280009253888922968414827196993788637744145692469771161744791563585644586644008014123206060521710722358495086227901793443002472080550826596533898292310655375034204737908033803762669608368135535666747920988678397263021149638093448712946291240467692704236820623977286592734434861460238416744900679820699098900397977034629521428469884670968347495063056402618668776116562309081643899514573001300708606064384095226411127665848275239532523558442236927592871850719831941281042076754288468188989953776878135655453635074550678046965201583443182197197135376519568004492377678824281909556367988380805155035912985042009643291571060147358600842694718617618762067205660908313869283716589042908818876710487718151289003078423571475007348451465270147214400351708722387506689113093462567048881678577135862195829114712886035750258666125396856783785391565491081856693444530511361932313192841520570278632092426463170406803122221166622038809417820608549135673074274459896629578123510731091156429181746928867162356282050090205939045529604535212865026761851527118798662605049933157117299821737167823107459573169409777862917894237211080350695171688650749797388586880694208574128461791774560539465403334440478553623395164889197488277014822832659818485901212948986181298156690232630243934431151904390447047680670633941292175460585131974215819801472591033569742546157632108188374554678129522051410923261947420127636639589968624032525418443508637237061348288827210119211801384126728552873696590362079739207399809206578565690827659473946992260985687231382337328664394486215484346229023645817025885770029414956805360932575949473825413094307872984186868961509133379525707836782832949081073195545490463167477152524573408095802712975133721004284032383017773071342296527377242165577440473916901134068670740629967735775375467887561387916265154551194861723098141800739073911183388368789792592051049805091965320713538922006395493598853183061187619979968909352740588849060192670298883436706891347291044318381666290280404678838831385115569375642204119605835471479255498268029734776711762257729525849071797702029621761862526356597228639197411072234147759687492506641523705546407261616138060015500811786805695162223176964271228396550591075062717328289132188463943681562343886457927542479348661252884383815655977704287731390369475774753984324324032309319764493897673356717323131674666151177843245906999326418929825931378848572622716015273083116587049038209983903068856797363721887147950225431729490395752792254039886712983075210682122805522061084206761244190067665054852453248642024932334755583459836500405682229479505529137494784217514003698917687821099142025637931070828954423821912019510658154047915942182079571148377266810783237471242689882917151790026734281383725744497845005952641907674314629983556873667194315551881040678120537462808717091196437075302740508119970566376497801662601971925489773192280812441943631141998287958025021967473824002066836995961776744934770460958633540211458719231834180475092417744172751572249098018660627680123484714572923972943773681429176172564424743073041591734048079816193358658294214512376284307527830879825921055461928063679589344987004720078772836688131174374460658713713204166407114058072533810603476842879120037304601699672802159439083310474253619024236537388688149317686313733625024070246466479156346576194381490092146924590887755054971038187067281645490956624537591057847871096803648691665441358935933994600230909965508018281932507075684046226344609613225456222279546519200795109571957994497201428763693353719764274779671635782027623770397139959500152923509288195300077547914313061151431669434195953042391011115813429558509156710018049432784884156206601119685845243893034150909714703337207702129760018340979676424387833801303778367119679727110442096736601718336195023197636251347176030287508028355124254006210572543787675095357449861291115034532352106088407856406205699191144440008247589926474416792705690375508965866352540558703183259928215823444155333990255415993008858634929369461508248990309591269662531886165498921981966790004497384140333353247791271811185701671029686774769526490213180057676666277685269637659976029947178768321544104698821529795324399676686363889589122478806296147516906241408904686869556118002692835534974721172970837695414251230693269553461419893826685607892413129601110144328520477261003121276958420424106803301217263982454800773868086417239077698679115240405995154945100054809409081423663991067384849543100714309091497324911362637043084412122681463391335927464754567162156612341155004412555623238909177557704002165754738170580849336224329058667347709565691631130083010459183043394647430454950460892348579896385567989374973295227113134983111140813362199442426383560276173398789718271443708751651252902178782527830646685222176621713708718650562248112303772354347211161235534725762704628696175816017534370831929287620877864920716992739056169879755103523593681885147852919535542864081503653768953356086048815832660109868927578162166944891319396282858276950957891177816789799416688051091859722171919412010413399895142633711257511656834472704219303817852866662062317946732030575419901926230859679392163786187400158761546573818186195720455770216800073987477211599451209209869541289180626782503619846812710370686496393332007053192333755479910987286984347886990840529144467005652250141126968634479898185612077471213048975636561553273839050799708897469804169799720276209716929716534703800113243926288600943975388535680876862076302165515534553120764744481064972294718661948760079728018154015009363392914096970458030002631964614956069804660322286216745186927030019687115135185147970231206683691659501281240964677625272188334447596774823532225227512322610977914166927932389000992539779295387959397925436391668045032181228247798323493122937521487492686135495177765962300141620176837305522604149614962065679819996623325770141545205134349656412944846383510427352383079904423370582386157654619113412658019740443339187690662208235230449225060929482479950200628362275823536100163084635174141447026307047660315598977066953861219559138667949227715180359866832637382924402291747426072717290472819688597376115316532208616924643400843130472054511711927034636012442521036703738985176603101488890009168752255939298630758044834720482506602821431432139984547733031084520916649467258936109426102045269884684290554685817882608049800075380090091544625862970611373860173987224899073440719456575772860979989459056586056304555439283520371669131600919470479525790219878998931131331846784744355013377423269577345961541603838231507129408392644732595451876806778726155082957655606376830916190624384862549740742634778431921113374852632525956947760831113272837034496089823534521854678272283024463173983451163112754507626068565752580483301107442230750481504625501344703713104247944098413090116001007049447718809825431571771539585660294398428571032948678952648475852657059247724266391951908483647920649400864766979987821404271087292499395250885280991883903996859850477938829294486575065611872616460600398958335147284048541881310462253236859589116458285754155736194210522963266918527715500465783107836577403224770205016489888400178782735113716688720060848875612297941626475562045072642993504186123567753422284950587069798245250246632892441656904323301551136393524733826341920877050044205940816116143038793490761912450274792518906236090372309221570532753563217592406817330922390691870009684666880842686537929358166555181499237916007665747694530764412674761547244607429476581024149076482995921442812563111483100094455185133435385708194416305649166251745137583136777350866208689031485663149588262583061007629629668183691450700039258360748543624359417495096740730781029266980841118368119801590589251896953287497830069503556966369238531804703152601052703236445163984746499980976317408813053909318385436171475166529546882913836949952684160461223565693121960076779783673078251613184281936218685037247573386672603120040605277014058513462456589765951986632183795624586598197743340005060135296926165194266990079366455047440150186988002448206098092588221328540375205347196586990112006406585752507812985151009577108033083230067142976483144493587305367560986741494876606250782035988627795363534769176293371571690678605059192675215294755609244332536051846557863919976626035571188733167696996596632905351222846440316708031939880516229592947684339627237036832909632580352731957605567131996886997836556079678759315467421067013141837270972917509193661751977017322012238152357729380559273681983191593076068731343396793421356093208994482646681217797762217880498557550452678908558760443958780749643441675229789552769247945535270438131981482696096130523816841411509686308875222410090471265626236285841547155826868276384522165699554132528267567286391695891322041846917819211968893489253405096849947950783891666825525667546076689519537634513774310255835860540403245132525201675443980252236826939478883150200784209405980338857612544005681886128682330393754089270234885006072063497971173663411342656415153230940462425359744212970867830675220713472799167660215539171021288604058645506358652941404473014980299923966198840080266069808101700841494160523704977442100693975224067670567767857323304442257350122914957826802174727320486708908920918511761264734469573593929737310830976823693664767136328179924189040583139776701479814803559912735283408320942966897464776970639248659737062240348852153539863590035448275791644565780633562045224968271325532623007159688241098212765852976465545551349781504988211789793240968240818625091297889591769371828283144065832506857869891587434019998662723544259706112722550160684441045002605001351487207217679249658019541361300158959985861098903546004379187518455560332050850401622871973529380653425916196559872970493643756428527424009502675236264050679898649915913854777252477832164622170736215404997277078545828326085625980894581558838780370240580653779139605798778231501617454881405808972999477055772783963694705511845724654695951773573883288219202607091888223202531165531138146422021006778398990368801533504658693140636134548992554112337394533729815191729798299310250581852681501819986998199685745515333158978892092877388852917280978368270210949640368469299939445357706428070351234831589548066022951230242608793563013133086491312495081165786711505459731901734634918502952549791886571580463980016484826165949767114464862588597364289369571626800763506081091441311928216004351412460807126336476604803615027188137067013553882962166175175794808254055839151528653451876199484966460895549340728370019612830721608077807483690449247928069754096881490969004200688087025249320696022696399197796960212172750784662087649723511334976137836083535758973461683866285024211695380876871473224090734071385834559732549554603925055694959655075841282116360369957002215613964573115043326723054776514317902011725640456320837507182161796423510200576514112043574119048612325210999442449413222227275729831302052499997042449325619866584280103957974371362081213600575229538729590787208304707009143310034199461789708656628063427901107840949839904104179796462345482356122030686899824989259776908835594429470610973522790055744329857498019631194293859214938346589252975014081232407132679758210919777645954583164357518769391215903806290470987866883664341268348306407773303960182095277573760267830564642587628607029050887169076912564127987826859303935027948203060869694379224117728275496025489687897856409049676787710281567068313633712807456917091840240422341757511791065439778868977935239530780510500499309945769767326097205915326075231595956045183659453829214153848572528142190183448856801333982584755696581736999167294704667948788524376451852629505712369088224524951188102004293081497699546479217914218010986162715858606562331348828365173075827400796027210964161855991998955968720470663163886931236934218404240772060544513400884480540952314199742072836993809533056412755711685338667174700065154317920757022899480821639051401268257318230995654552920358031447522588601768779693258082290082449463454211010834652759282479673599860399944382341669889615243248305455803275134387218131154985304859684341792325200292403236471891954382629580443532711491614763927967126675846891201715053981258094073270442445108413345870801921423358991506609611198319126972431779102428125527519453658276646929764348272563033445457344104651725875525698958483781031318182586003254941753730278034175983588312474080680184787305710407865083156400606272556953534284448929006988465114011994574915918322524328644320183965976394824737130379027250666860887597574328590650946944203258353933830456514448165194301776639696855142889502205439603006301138110177683060449487092797807700122877591601259477732579553041484548431343450560160616854733158668774767255473145352260214616730525978564479553462410433347923598665079626198709423168831062729628090552924960950662380964091936001365934238941603947655533654098989281653163281063385277938657359859070504516583013036988685813555587522837127609130734284804016032734121160183970672939959523134290198126252054020749669090528015688885561499888653397739510376245813949167077728348692365792999050767562592896981348907038675490443019954994846217176278199972902595841833828589870028625031797114250460436870167450835581296467702230104694862501583520499374537003385431639020142577679843512653263085006830470839684954808591410791763475269258464904088939204412354022666046991746147382411780988401348418909710018347326592692567199818573748311690103480991054461747165099616670243056464555581352924817294138002133164479865860107118539984805926168578770249457945849927185594407034989933981720178644191744667892869435859339642720067495571587138154018125938449797545619376415140690579513665663016718383555089720210079985720688037233526823596774269631284019030783980610002482207902374669890388828028145415678530356811779681748037871550646352809205601883373421941292039665833943992402127432051210150175919023540427440463849789023932223180124969772144927294607655443092272180828838398902162383955516229581943602344840550639300989398111209877742720661525288953366536603422390598576259145151078794943136384360168099423153295729982123300032351559640018264765576468339767388870463097463644863513906385316805493508859165420572924113802155998471908162881760442141228037590258723373459828224029606235702783728274763449488396694165401707899069463690495588219277605859795725263354431719211151345929739893192049140663730630139960343577141442038689600662126191942591656658015048358104898187435349698043699264287857196938104311457208855070430136167569958240071088654714209633407531134239164634951003284731957331331956553069714087201627062965298059686932793092387770276645540596811629087551596011302312998900959828620069383861418905346338891133733847561395839181743545564736067456293129143909673826667847477494552750212739679441639746636288327733335802646035437381329140580626569975303941894606463724391030872287031282440000921002289149306327753662547080342116249373594845340623296037819308404938255757756826983031129265681697170272196659064946327881743979015575998066691244300945742219392834501783188006933349196721830109003358745706309631096846268497576440828357732264244811776847443139539289494102410652753303944550030643905187392488427945206470652037565872249761558677868051023563706125937380563514681738741991475725191410254270039398784041871744476719672830504150827568111594069492469882052137444593035503646662241354879887558268454395171838218969820046176540224005993016932528179694030220253183918712400130057476032332823020639183614264398592169404328490351294604936935907367913944256557319341091151007737795261210187266622967101050069593370141018225949075087008381480594255202778524557465761554313084375491673524892706920033543005443002956111772764269795316270793526705853456603942383358963901632717489539455659642807110689428043159140830167796374508862143444895430523112848386753231267710571485989391837978403638408424799660422582209867918286316311048428556973100504849718724545597377056462567178398226118338628521254114729469366887993598881799434504664468181615899103418322524132866038019921427392862013718949289490696426736455172973853043083170416077476332445701226599828990999461777828567869611704740609257522085761376037921380244924802857319089608096002965133162717756896578845562021817829195439500891410804763661825894877019267443023526759089031356958250630073439127683531809263171023330377520411162992599405640329727805077292582182782307697502472910989213432514776247765492330161080699021629941861194645333512952669862304790748147376069896835081451087802060794667509712885900719255881215329649988560251234565607341120301675687922010462356535154992799640690176105976458352360290197145221611379328428204096432160749977932878325718436098918223448938130287574393002464799016298214221974501836941004471903417344099870742997650281163306880270474124728739722355845440432041919466732825358236746716215748611951691366447794722176891130127459458317236450993298909109688365054733067335963357650188296493689925676361938121011191837717879430159438134348128086418264915683364896843358917583342478749365271084535818949853053637247182842353657802714100172515933460050593927256131143566649447615449994271695794622155685127102137226405963280427989483590755748859202948105099345351921287586557925660347781307229524475241070247561191575370243873954480983940500192153518994044949244218428114213105637311222941824053459521419475948011984175618408152509609778728185934591870279376074494236819301193958844876475228807708818694431444392161205372634303686093873165788303297181467004414190452144571725627426625334578771117109176268618053626932675604523815574815232753400879579533878434458947527183696619516233239069067922040206022501212549915597845365294914872528922031449590211617765140602638464953853927869404436890689298499924739404552916437567837394818721819786213325808719591650549532410057143581420068927104942732349722536552136376063590370317663884973857120985086605106962874904433095342742310471494670520040684357053192352878545851761061167912733432648979524354247471041388988895843258510602784453463918193536472147094556992064576738594530409465908067448675553473388903127881430604253726551368298252572886979591937564806313266184168275738576543256190405221251255066151304618125065581495521592524096181955532858055756082949614213254018509027538018015370927033796545722936688481071854123141665012139350789650454551760749711469234025892398995646868940663712502774234324905028559944453262598030846538620494562749766308335266978937807453069897317093434469763491104452217396235853588297960879770719957637845536560304708127017869780415446478184250027824142038591832126875457948196662463306129144483748116175722611624951763516369796134240893409597577550422616222303790741285830345473971983526726169845475718222979345220838884906405434847956150072932497251665035063682320874301618349517735187725474935039828065991368954541110059333954573511788351065104386371685394259269517564075048215634883073931672474689906908173372848021972897555757280221026306082859503604685738523019295871047345871412259314724165337562604022621025794899429371980800117665642632251288472043005941601816972636522826428929928132064815660497220893445945810505876360569871870643392328657828884271477235654782111313723716146338465257162033651559997447761446512577346847970066730315207251132155339052548053712027949888946785393594734796554641460337136831853767697441764127735078347433504291653190436985321752029714499865216245972662250178048980963799839037656260274410582326967783763544776310708130485647767862148869733996027745418480191416165698383754088637052960261037905158715971346728673634597849496188038371925084660096685443905425686715490152570651699409660676361773478939315407318906852851618042391542987960260108840548705944906462569544263810533000694723332728576658772492641089458033862446276210961123703469995883944578848017031838579708985188382943968816294892350401288341243639867139640346740738598606355732114745461370833067209725575556457010730487127238848677607456012175439738728912108930894297622347960767880460781691959483156333702785765851564292771417177505018802324350219399780025562739803510455826374700034935330978510507391003781066582975168244518322850276142240363205928423883491779847099328893649795851472567629157655405265637564290077952896891457863414068204519468401165330485719198006182687220201760528188664961369054048829168442037596346940424728798609625343756357551117147808603027944383906708066716059609344429339365863488193935731878522485117899063193122366132023993419070321883210024799606337252843998960165974710932041094051495196768765780279073658456370111058439119574983545625525099267627370442702849154216548792991160744936119145291055700254774793061570210468263744963764884420175745139033936569409576709618722674169189154399100223725538246517976431802709755541230666770559381264544603925612436297634032725601467573456936811566093316867739943653390192066658657581360260445722688454265183578615611502085331196809841780658530154352912693050294383597797801515377207367578237645443784458406370492036597281734115579850110552702070127013651534341838920137254438949760736861275101565622654579846523488925858772402656010322163110026466747411824416655040206852878494611212418529583558769430100072102544012869041746614698987246929326260062863881881778321065589796144419192132596533772796445244186736923740234675055830754674075819300441776626918480522660902491057177217292392748861920459484850801428573069450526174032137235592642004469816881330496990509455416489597897710374176931777221227173298400161431525823073807117013723571037707602703851995874912245578102334378324186851152421910579849332127547315421189216534801667365194456755580460298945569001819978388551817771464114753535503405058667942705656309920619844137508876312330877757094008795433539218567086043638919788259722328467279405309515785823178614356156528090682639645452972954630007345108921279486469644421432165797560911424688059262410652384084351518593392602122563031998283074967595800436385380350299998161290210850301221447350473118274088297579766984642125502233017461810876498974566228712063448125162706182568388917861989078623631559908921386016139779363377198715374193255265291936973505557533757830219568645366083613032374933287649566840733794427633306681642879866917710050525310715518251072057326202414874244803363444337493942403928724765467447768152075121742586172196958286945503912090629146035608202447879681492497131335692636411594096113124379769567076516666535195792029517045344981038077041534330651594394277084667188523012243532947222160174982174831436433323836175147795805645897885968401969393855223086130445287332217785465657074977920349591845114260336355678285554327886638484343825978128983568977579835593643920313845017135816260939563588165672965772730601318952678574888630038445612573190263398385327202797534484617138931878595979113327206016441917290090829675614155298317658942924190861876676606999356224889891543172958700732487534659434306973330262132442567093788239986544162156494900563821014278754650157079217574976106837837792017057531924877154298525191600632914201542509140696080216740448382280603094577196347361530277563946896832355314846936586545739765814748195946674086270958628544898816683435678800016169247542182296946121592094044387385991613320792404731602265689847111690020780579846592354775777258543530751924209092623176732365111575892943613424553679794641012575293506505613821644740034643234469555989257236019537604717520679939416118466957622212542243833806725571953615260603108693244293803545768618927813547834966223307436715781634082516212961981893903975770204618683420017797738162161550008601622388710858042646568713802480071393175520214987092651353802384686618934016506883083470016439497304518729047592733340396011376531541154022373277769239600715868057925556539946481053921152860663203597040219991639065328818823185838564576072506811482682842949183969094740921470276065186043596912322894488904050476104075518468753274077378658138279320736323335997035104493471596846743096413668363638126422548200051856695439607573907453645455084747719137968394671142283361098000878088495236278267410676640086249488375924148406410525624335351196830962260143067608266454818196166428628199670284296591899116314514590936657719862704606027219532358823206463335235688504304206900302919349212776646461693716133482822164040278761408970811488504330277191409748343546589135584864396859917061691160792368862262843109436600443985570726936103950925845384460939982617723787946827133720710884619867585977531593650042091605215178007930135112175021549459414642260626445456172795315981894144518630506361678494990653040488869025582962206698501674772166922247025935718791185134621692483563210873381175774304410005790018689591644408333835070905099674138173627179992814251119470525550162075414377459334172950493076082123719783087299028573296811722570269410415743231354326997467822255647844395699265099224050484395566849339326240449019241881319640276746728712155895481563884283975894007516397341898914552617683516235594403372909568202529027399953538523727234196376087842053693919906556348380573129297746946562005548445086338836822141275056102084138409348865713279621193167963044774619060779790138466752169132348107020361613712515987871502224210151958365434715054606958605647243880020745199583635161396672257265742762118837344673166627220024292990826220376630678548084718105871918818051221358578357745136718227561470682453627123279353865249816420029148401236140370655153261607839890621514104826583992026325861573308056431418079854050320512003409798197089606493535836373683246663121446499669938766706264654339498103757495216708445896785729935752803317081305241336402589558809221835363932573685939161433352237793520189137265843885954186421038431286449026696396886467313512838673110453864028670921083043467739457335891767611525383767459743606826064482918437842162578413813523695137553177840639781470597399018124889784917118740587245827612874045205440159387997567172975773646259905347063944649107172289944537767522533005174252812290937703213414907615046539702044114199282565435576643577979015340868779914525838256402090902049021639575205234574484917032107880432937231669193953281016882839669988909551795853935689511752061313683347076446338748346846534647336988858197066748662333193595705764632282379757537309299053365815407904379710047829208547687484904025913765942148302668339102602068568561761793587406923156946267052260718241967382315477645416675752066440666100778039941954489698965865952519318354010772878209088251894408197585204580101168319728481727999754804916704008670858412121311245047609789619089609373855987965520259326249179481994632227843926724303938756833028438565737618422201745375174091332575806534298230228624604742206251464935144024209265227833417665387149018062269990804277032986754251488735914693082676167409219930400715740085561799723160558856681133708488097407586903188758846694302672752946997883142514002347586370068207749239919853729445966196093122812499995410030583001825506000994542786615530182654220458588280976426285529060287129353793666366715372230294159936982237834229570851076108671083504944961647034308807360334769685677507931035650704152245916035422812910064108505650364864576003044698404938930595909352113033763268561362640392736420137350152522911591216596011210276485008832857444598216855181387126345655794676668001516467377273136243025222647045266087114959607347853837131977273864844269370709280197918442153921926715991530960887433636092118816566061326377219022500615897162605007158088582980368421239111794292735064308932142303794344092849853095131420833523690957275509889770267970437880542366602704526713015681555207398605807698803855377413305755052363420239877106613001626438810891693882477264548304189508113337978846400041807942442451298455891512327135645388140744157700056987753635712719374863068605264354084387078065335175261922808227143885355014037661976955567495443721419099674166834197205463921259173579047118649015000382958576861622682230911725125500338333829889092144781336275493886687577493424318607176756911462579055076386054908268381084937163689858065830035160220650910172928097878214876448061200667759478625635008395827746145682690208900625779544242688720803452181247908436674060350011210298987603846486355979140713560356940543594472769556794670493525462928659193557889337182523212831635970439926401262930740543294876628135947335697292826553007685529940961509912669109573818213714508326007566883052712808052302073761798734508187183450419706152830086901286001963499376595599276547457160265719584298646362528202064290415899066949384478059908308603349340880369625269715068356122010294045180670608254758860407093227432533711032025340168181084980271974172090688040357694546478600622380756136751259213162883452489971060188462720784166049476067368147007807273835418970509123024469589069992045212699158361342386819478773146148140345591401874799279157232221753584671433148046951743060236679113070108149270172398765965773775712686392840282262415735943458104996301080379479563427775001573660883797373072309711886239695546475818971569351680543730472384350934394663668047974545626573278961856224303503490660119794943624675296358691278592154703715084920541349973609519344447566332598592945325474580695048464384111840773444243690728183681680985085146087869413000382808882391294038552163410237667578493844973249195145124790614537511587311020301436217880301557387581777016186495730158423807222596400641379223918597215616529345622348954884266643897101760038774870880985809936752820614177451590845249846639837614272654894744170029078857327493383106035218185291921654441561682183369964607492572201320499702150310354102724214179499022217542603429815271496134126266193883448620512490934771248866714119549784432024978432590074507107588179643320004058726828560810643183830083005377308674267825793852317434613786697187093001835318396208736834081149460709947406834317517126296011675074667560922598691512733317665547476307182961418818715500639043456789403847297955636682666862734208147037767209621733529793957714994855563505586409515785818413364376198287774031591436994214728523401872370598586779251827694544776459430338889540696974184916036597154179260669265212999672643088780123077675753969237928863584602848707165047658915570067105829005302316733610570366632770339711180002941031385890930138435889057176742673950507200367069660529163280551118521966305521025643909322456983055935124154508883460976767866891963604457854569992504239365235346594803616215144313939364230957118988230643791050071652167911936612237988598188570971409349894256878984093934083937260119836017383122606380216005051681934593084690523220197330720167531309851447336855179452142778907457143000322090135269918812565620891223201248153339890376666292060126528066307822065172628203586662550370483968333015024415051399204160668914712824256503293545748393907943601896038737272490931623088493160457975518658511629231317895259203181918429092019032520473757135655868400825057172165283928707975995695307357178716054861883523356508028800064150973730150425998124730751800989540936579365432826020887945128904807341150373944869162379268088341670742143058523668365957967658576047106943256229188872963337170984324716059537978454846959587545803857067729668488627905868488038778232733144730508010382272613625907113274313965587265434060235296506447542428646810521895870252248557428491018221874972224407131189267842218181773667232830275260225836580672369174443542443699555214972525838302947410457305868328452099305870209885211318219370545798847115203395485190070978057531148742630055580446901054250091321825382646130316259661618397505326968381399171677222846215322416054110725594088268240889425030499068100661278636240698688856793604944548775463163614847441877600329797549826364895503020343775545238542492500363510309738214919904239970528495718791103617964683242885570477532047314034667343889202156477168452483865094139216217518143192302146571663523227375178980771915128213859448905675438143397978095407722402965934956048692300298287504404471889692974950495063010841488690960560849433246945124727218871969441654773865417550246895482079869529105404661547975251915128962913647278440400388927038826044482597042823918597380539772878415476059013978764052080946471115456323095949392353599500298548115336108924244854170291078253063370300062052434658000366469409948068901624839662850756315407302231770124393001849495750609219645783985511177306804895755646455023732458120511399423598660176763460970875270601461298391823705011688716232085595605550967762349681546722260249889879879552008112545593996721501562687139902516943511142667724170070818501011740714702206325218174695769043611893189541572516025491549558075339068772056728252764815844243161466234640615421940017728561637247934056650413811985113513086153321497929066376486337514225557343236249798790084260220219589708606023448939551198549456325673273644380787670058069942982059929569722364160455575656037234238405526793365814728638493179937318355903268285584123634664975751996845209049950201099917128470786397940481078633689090120152530332714575671022771848036627756118778058963448398725654703072666074291894546447392209430420416819624086459625228862420242295037168108023824793533692782667173420560081437737920814400945670089818896941244759748984603326233365749958931613684906126911713093668966790999461269665924292846329201151635868396197524603369725094181746642274090508753134355814097036037948346300159693037549747016154127935199044490591151079985523811622966974799233992674721436381719085386533819025433657990422463187349265600062292587478575077755072091000192920447883133636898499458798418092520861289742227595268423559508412235585131580460739819901023111674751275415045762232413339608708543178193550599698053968798959522744782694872172800839692679845873728970740155209782275537005994981019309148000888447661727624347598545466142154055200292347384991598326855184242006486477208980767891847265190690948583275143658797953268920582600548604923680485958143535693459866149414026305864522128643141334759075227721766333409324751469995555710272781371771625750916891835327427525242487204828195752928643955792411326869933202787262945870534189082338697147623223615158638651392163140207729145112252830397443861602903642818036684897811789853521020209440732694759492017851002820049831510177642275171718631433419466777710971721054502660622846412467675770949180620301718798186927045437538512198660605931065246612531387932721938471227289158656669012090268180631634414659127478055853723090319218816454861356890299117237318309017565532269301160551992447053343915071710575449991242457690829312070229139447775889520416501143524378510781610445317558596616792555601744955447209159955841791045611884358467300878479035700200208003279541346832910369346557929616443205130543517625325468030251283555928354820337350552153009039676982876823381475887158559695310244847192042688139834449108893251811202410486435778701340841318093057638049694868518205152363071877019826413079321119996532517449758995403640058233721195713387368916842608915692000590821058966529514221302146846975525122673655383059983910107166005482448669901629794271073782044959738798623538119679220554216142168396003987628144987774002419023387104080573063841152532378647458970146749164985754559098598588984740728447368916478796505329363579364197912722086188962093526577491379912057680891676571611509608228939720520818063476306475054662281100491805939314785571360582373669697894568045930117911046095624693783076671743359278635072350811260706357290437429726889909755296046410116807902832867982016845977041318103692198241200770275684732394227674251079876600965435363764535579425867738557492405016204490304212810735180177037871545603242813489421423752668427984955964389180362547062030506527831707324155868220166315465005646389648475113045429539529571680688731755473714984458477336845068134317102390692336471702625604612664770031414108359764071336976445928708028406020413729127748684994896239713937390945521310243717650871674005336138704116324258382165303338494418710638803300823041850593875203889795720096365180647498945062047495754236617200732514274585522308786630202527681135951883075278765290391246979643613234266006927672705261621662920554298908067029389021813303931779310949646077131128152962165115109737362707359540818801449125231608670558419171392445246829339607414027478922591115274539753142791420392522838014623278711510966412163865116046956206951427029132858849683783980400816626114547344172922324965075314405152553721240767618987362142957158381884387557351938921299966699027988315887580501847381875454560822750624844720970260698790421789058954381678463525978445856461780828425663423997985726824472314602952727261746164738333925041910637933109716624962860850935327245490750953200221044534298835688171269401838086640271668183437634953976974061715259999044357820366440501221271817232343385738109866138949335610774298069684935113456433564404443959611408889020331793408585012365086270804797171654894580333756955694686343569806190235950921739948275557611512726640421350550533441810467861790540146553619619874673180297964543820512666988582593308802613842949892955694680723536968486498617128610036407841610183843875114553470768730359034458158245225011258493848125473419105280923677847060166311886242948283373841345282036229156467586583883953931618511522152762224105540435572092807758444607969239653110444160560905328427187992535504046999288217141955263894655063911197773019975327760321671883021956585406472864659207359434773656242811686631254961653471542412573838986724154477761608560726527217538285431163252836804950384639968716196205331008531129054789491746911746133150604086063288189061774885136249717202501771087791710966999187731119220837511648049061236385186141449544482221928540206767735966579474728209610169838898620514696471066127198132153248584882769294900858775414827379166488571636551518139507409764369318602190854048648280930267904571894092542744152371756094666653697105916523892532772194262245391843351135005836690042773705281682265328739581579014131516239071937149555330643630112209315158725529913810837452856110971453040586585444213941373196067978734922191685651187138656782698966629630590433475522770313000762494405372543314851893798126217956720999188854619015179969553926396472380171363240126889814879712011918867790984706304642648014828385909739297383997502047774402469589846650332070463941095438523449790010574327760167579237034956794736564796699976485273999758220578491997824787132629300400942312417427852432036669370460182906150654566363695536867921413500139128948969812667803653177136401513756696231547262043877475700873521091082306352922996333733959515525615155702677088289696243622610377775705311703881051982590399009071172527761532943816264482233301056736201841278340977628215031032417720024978174671781544961134500352210838799729778394162010990396972346033774512810079657511104261093843120787198909426455866517127591619664807109499651427234163129741027048842325398073743761125916036094857421191819150090313697875279283288719739772050562004966964791095906366673472294213811325260278246835954556245655405522429376805916962535706446777923430744665966435019949594430713290907708104606989494085486782656394962016756940189420569628315069331163907727227451155304567724761688742193580025232653085596221382507425097384654107758868615126737032249604152029293699710896011990183177548025273215262273447523972914223312360865385765988228138693082286223435476657086903263091721427370513385098992929628734820635303210169224787816517121380790958303573802011705590816473512419606715348673555047387234052479372010728655825023256652330677336040312593633037790073676627376785761998246892109501133414912393066614949035461267048044416943025771068950752639349744814453211249493120164316729734945553622631410800396484927806053947901918372631024413574871221541789457101317375576780675503236529644092320073488176965730878747249258443781591136429131532749411456595179929925740222024355792173054275050503803468811960501700716264551135856805839844995986191837488158063145566939960082001138411048577798881217881362865639931887473949600351302874391142474568223179250755809021759624463888490361883394266461769620140489619588528288188298124889367690415410721298414685749417590708051567725645409856288058033907947236334762674574847261106404014460822849992425974831145412448463940204893319427136237735608548756664870392245266068908444264353632513527875519628995290549018831204738626224035415028937430471756794081763852458964842007931848305043110925640112371654439852657245470989983322860263378599005755504780286886500514580920522322689843528312592146917885241298657554309573836496839046037494244871557665608328840543252303674249283827358043689517784235074652098602269831692265061895165405105540969835166100198459115311424686512884491577943614613112079064492049917801823168872743954601229586836900697911663659273338121963431799077555787687016435606170897560137179646778135109343188630329348092573729990461229437738606492916597364428462621835272111718699570109323309722636704648204371504355467109057126638107228247700957695097796181699755646618912524702638617422294971465225948309083414899153182878457764725354757446178110230780046533098043891901408133996684265243313887208258540769424190408144308616941349059904975233840908717670763886473948672920149745181775170575815296820944463010686018680222526469261869641563451287733062257113213433215826293752356768109616065900530773314210084530444149289499213105918691507041532641800628022416880364578660176369456050002256519605186638258998598185402585362474652700242502461078318802459710963221459157586381930215935022140140988928353335218046806639808282525200755048600666316477801600071222241161135205712408895138864082317615982026382582364051886878736074189424679420065801595013191259445073233782635734436127482649189068328587162884886130261364081095802678190758021903440155683818899441882382108507833732302347104101735008087318608029377606741094208512058693099821706364861966720222701556893795140622807336252106653235894456858120096184189658398949169178400111073906743313996885444027407546807661518793033467180596571351900774948072837782744836900633131135314788433870754621424712269348965596779299135626911050358593683164841280667659387737749740046298077764629923015468917868409088387658195584829120030025729299426682464014960037561358666819595929205368992621339975388813732903230362572929292083909932830724524790091941972924779147364053682614860135013769519302949529681301908790602131080315962599599296566619855807574209775767574864976651670374373249375343528857075567037191699915906082166131755916732594729072941717463904225922720322632826876655261974471479618105083477794858140791470369269393073273600763422512642823922388424808805288527319700555850181917905752313211507707263177864522359690286960439553238719969362189528385779456327360277723612099521531667215589662686540788387378381681568606349401645734185539473593077103849398010506409516684215222794121327309440182630504928503507808914124968274132869013435725358764218777946167706820720828029942613284973631451139160881077693995625734406368573369802106866041437506975629908789467921656885306754558747614393940451408534626808496594888652477037407544913893888685065214096605118242989862169961219388478256067044482868084479743027987898219490322332642192327433277723508669855379672108761392722566376832127772487346059610053045973603234126964964438760699297501113134979037202470785793404699033037572891115773226898163858314303638166848767056800569245170837995182125437613880518830744395413479859405042485690396131803948743050349983271294347851893088190059668473577400032064931233481107905076237128352724130094956069686907145465263917215570939482136389347908253149559824917676993049910254987855013008227787401481531717678413759303814811549493470026397422894314198413928073152268848576256070702084064496727521721879007177035634628224303792934146331571327272503816707908903291795677511933721732733470914732319171871264841579921776398480141508434293496707740236650157682603618173726849666416882224789380559591507926996564055363272637601265750561809379912326147267373532759864410461474934028708789539060761580526160252957694546437670703598111665656986812515074976573375031102544260702108750533162525009718668332809947005014567397468022910287621759764705373499491236225544448560771302040213779745733143747721434348292949276719723843462596259024014757159964289657593756402423098283718562400017528604077946993907032636105885862965602936490098249303767705626722419473233189608648591245024810272054299781194837675074791601136625706089098273445446544775291053606700196638023661280497023873285903927539038036034330429123597535237639332856954065195172891009397199199685853937564202717688720279796139570177576244062799640493395305668406158954704545020842479810470461812290806023325225544745361682044444977969299717469092179291554966461942425680095722589260767333104463072162507231380657406320624081137084464431336342874268506747092979910450402069864347761266551341933747017713705059240236134305157621770122825828262436508550240584896696964125423096435370224957276787910342375560138558190497650271660603925579503784215531159749444379919936546762224193492290746013215280706082792350459429231683418868099172189710616729990166655575115024366094076864466672804324697645619684241690160026487956945000312225302821040328755939440372355238266036560767767987463943102903442844380387293439135582545819256322371704127587144320956810343152369596497979454248842215785446758850261718909603653430921066875994625925372695623957207366886146251481640708607749620024340519422239938338441264063962233999859064271371081866888259422059439649105006390861591275044463696436315272121902860865302977525539209532062724830013137064679418684234368011099569054713610764361702002010408663194896175695014355320979448892485935073904280529733353640013652832222598839997286868872484164913894430564300948258854339246360222593762789405586386668732447353667506228437864354204944435462717292456090135182196847453086090286388473378434353928082992038146168841941432245681852908781752512478457538015672154023531874451340489513052613697400921471025967487979702769492997273126266269134542117556057330566610984610166625924344379366520066893707721432374322135758105126039951136034842632602399287301916573349030937427239318923667780875714072783577723700060286327744080131335446044988709834832582889277867223240062400087279248880471026681712063234725898666094968809231460403551186647578572357124206347440675851308401694361000856277136964591334623011677244953706566577501316005400391415730105766466647289718011062821777366586727683558410362888968254040100293347926003566416077714381191538408225634167826570779242024158524217573745118998036884749028473372741493534730482198508302651383859432740412808181425153160003625859098877354631108534687909158628140399867355686124292086955456069224798900706731744989923331443911966395025946285719841282701973785857467096791339312173331928572966224263947747716310710653273847649222135294611749394553167585050084529568016056610014059174545904634255492941989957512307723195534152987133511980706837474724856400087430176125731652158951585555931241418962326732056391458107528025139922454200630187129186998799121098180774667468653429886947436100640020896520650173006793728829527235591316157352618786452972655145651551958903847250376612162954720122750267781619062790330021437600991187246460266946438146368809221765727431837585391475475953382176786648040033886293505126978373830481713252224644040634464541313274244610215245233346563089285562834017233735181676943321594217206916859257700116405247224198756095880937742863716788991825796561313777268567662878848522136413507590945247085869988724244135187445316587429607084433729587156217489650987592129898930862032414967916650283341742186297415720112453804269875979407991225054444785414949936127680967955786441844466308725639181588298731218044302160130800028882073413386424581047285002314983249598773238922537447839897434846533706916121452116027482172731815215445238593392686780484753135182533204129284346708203582955123231964843551494883511474703141102940372498636677373541983069912169500444678984005750893274998991381912414802023982052743661643149263895378522376922374965484044097708448605726634277948493409799461836365285888586056437102618332520475822424594172767397328607290442282442689386579770784436429933151799627454733780195398117339012575272452628026800903383047392282586456251466451935807118134503261114894615458962032239297365996650041802013565066278053709699445724064856483509826785738340255272234860945639660115071121730311236329753619731002304445837142986356783529537409527521995279036844013122191767516144525442344433312536143770562082101829551693122135379642721311053561089923547778858869774106578893654002201200302702835732473869949344042388486970105157550714534415709713852988171125734833095219785758334088048998255532044325128274887151618917205738722974718113010046580597986970897715021936957227917738472097778498134365525611508308487425362320276466669629841090819416105055020318501461513017150341354203037475801927188462842481772329673297499102574735436064510157059552443515721500070276490113285676627641453025435160484831706665208102761670588910644070378677209025233582162586960044836973908066843368799914853067025200815977546148532852206999470525515178496838307612259153391535692858934357113189733004983532349865355067485263071489901497113646848794730239007428469211617722356429225260776310865374592901177513244048156226255457888080521857088756698992652688069718564459836821685537864934818129678768391656752135100822127506318469343146190304151282493127129155974370697318155424903921231078156068544295152979703769683606314655450515121269501093058448260345730596992593001232735429124601816394676173088367570938238644286571961956043025526613540248968177456341645987677169073434274718452310586644648639111140596598108296099216701902199467156449027799100986332495898934420570546246454598598072662549814140982552629209193539180138334483425601809118843839467539573610176386913073014796053883514646629020646191314297758521246402106356663942515149656271059447399474004381882039776245535843586203327889419857758904241826280085821743884312340961299712914949495620499744708857678786647414546213545612448957677624344879444973099951293513914626277258564212082864972432915276411909732184148123513710400255728875624981185532193765354943360310945196369454469225466854398736476331526360472906215857968005636094964455654491309508511700073127929801660793199290680646728199983473126724002761649866548420017502304518391625942078941084060626247581901020396879085637770386362878623066063884432149455999392441316832332208409873456885240510400544099220631807164651771252284985236135257101921021043243634251147332414179230773783420616712786524487308786066278963387679755303990443724762649987202015982390670645918635559897339317700242061300084539962222008056457059855904708606643902840394749618501075990221040214077965599123593284976591985440112959467430665540188185319397422410644172846569462465026381229520627378391479868292007477003834119252980810879139381412229490963893681516410324283892721999643298547329424772281337836349379664938149466831230443109179510430367378796526210928295406762819016381239008973365418262772615408864625091647543965090428085925388688520655891608939278824414788317398284904846509399527192938323821068566178413142221607197155066752068158649180054947361649794014143363937252743803710827370169789642244352125224471150615902102193790295437452153793809838843517199294394924316903661447148399713071834421285336521794947639822830862307816443729686066691471259894078325734745641473828339576513356758593950153047277718935764894368512079568848142623441463729002095911717300135027128339379145816485927212236330336480235860187328250741175726523219920335075453659363517809513034780311853412868709705844023872307939925804960419498981626575712887151473289293105165364668001989974270100790357742321087822115767715873505297405904290997114628995549775827659395645070041855781597739021810492948636945885114807692167029062960065872820676524552227947972708656390753293615994343764181742308329626864715532427903163869676760871479318345549202974456594575749729676675422190106277100407606474339003480629834703552848047520670368179193216559824092283165829502472547997469104991727234233699307263485769602942771437747518595759530235539381814601388744076027796474700009320926807287480443326580764971658161981559537318470902642927461115587151719113068587075861813921639583710997669553225732198565157457176047668800365930654386446571734956975967329310123859064427821342532745858836034534788064740715429067610494510513104452378970300647815238692394927016948619570519385276908908917657949686034441142860758332370848635936000910560366817008466976234165022068031623334152945518189074118186003542643173036165962141526547367520369178901621246321948932172538221049866673807706230905806871141640785026251924687230105822497580560985558306621767117605910715701726290298636299844786705080899637081023707476510983113445414950693908086079116989399082053035232416169371804393707059309941521080836101859334226430002726770740420064605178856252720989894761914601990242096543849043601324107855671685757694966463951782314698418439580974533566869193700470705461954557210990532585463519005092005198655115288655146650406749448929630379067876513392007250857650408118455041872597945877701966287340045957254537505852207269941415346713824770305155634497640488217131984159925403423368052827566982910827309791793735316692199577477241299408678454064887477405524730851909409604959893135282403779630216201676686132183244622548669321900364418880196546959095313273093643703555467079231038328723854467010410334600393633271225435409062566937785562940890183766477142631189560479753195280107798648385815856022884605038604071668156805597753122401935223024278769242180160518347593729073863087905902583572557555924721256248970588979245702796395677710335101346550659326715611129990758162205743624730681054390530164575795207657546808858857390622204753354336205168660293012287464464953450819241709834849903947252425063067929701348667001214897416999745732506377965512125679963042068172451141436869529579846025838139509478413949733070733059453764778506595591777083555556768139012046115868357360000192222727603263991892356526008618702928186216416045639613514419699106013558995665584769633945348374734623864527345897174834400852585080334428472037219520974178814426495803130028114738152509031257836573565518819812842330491267962527379891582768077204810880950785659705580599509566204141239004307426109566358571383335417232685911650559102246587856309287846078999420875405076043737059762559479821592757257132140543828456077221883424111878245981058758400449551621613456312253466030910070030208414388003815512194614238768594400054401138495979282068438484680030020407584182636415316962147607352446498119692828007360693444093702731094259856668545340974848864978536786354557221929272394372387165260722746332446680285091985584549444987890148815352899820274246515532897881988061596784963868978654389932735347695986331477141071110852659626810409580443312158438620393350220615668180838327625855175860347600629294002857573575629088134153637029056471199007784055017128450632192359939952109068704003151476463478450056436752496007128112007550692293425210455680727705311923953422833324203500701937236149573505277345308784531205557245697807579146004132688237823381281551486474783260940271942155893929141811622611724066174277065224892675274394400790854119475047468138456900738243773472643863955223211771062716653275236256637134739393381876376235305107415252678130059166334602179691323372972980466142855492270737993460929285140843882209334498457121333154163107837628197702604524983687837438265143244593367813002345669317198697467276773914774604393091612515264408526821723413522814373544730411467075812525800717607918986948317065143540302678369380437349817703288624389703816844693093134473330806521111464390992622012625752756548534721340739891652866876702754620997547400834679126610459970966480992916594627227428566073225422516632569580668491335576211730174214032829131349036897194343519448074741709124464883086366796307682629950561449567664781815791642807245669481841290426724579446301988624594689785251750004728458425167488850213569157752698256266252659955472067282898475268234763135236928624112657342444983388689858879143621648165453630893794016299254142010488957083054029549087528108903169021505267902474833813994808822367099632015251211361990387348753678433229778722816907004310852933646614407184425328262106631872899707464890731480364385674478896489653136657460787538350294683908643050687834349506419465182451905459889238604050787051184534571494318466375183054567791098869728027683141658856637056575296940807917409207544930544979994123624005276620824962288181199954042590858154257846241906160514279473815044363052731024496872725335075718852557048014773744426761888129001691326648010917899903697656967125551370288108299880060178832560673926556361213909781019786212260902024850498852730247799862158204130490956384626129431208610135662672744759695123328840500763236765278216374733835993551242111443046752324988812052046432300661381553998319136229934954551903174582163931016754662774899078124417007283921555923115214445245242953706834557211115279857510452170677520323885863320316773547395160963365557473300410640567577329362597387681895513136854172279331708170585109041805984077739344709054510942564220350054182865923490574072208361333282755627896585203972379518265640256177819096798179290581922953549584041512365398134987438294013987191593667330280901132401921273472397837247386138857333507816624379274896847107780382864528617244480131136196142130126738974959026336376722350088920665969664691233830831444567273853635833330171780910439245958712724565344753064614238015401036711650505251423226466873456775702566476114128247017149866083633742940154101971097353653427695921454703156659306278613382914025556629996252222674615027525601268676788374211408695000244185047182891044479654563759932259844173744951526579901931475127644294064271604025362861549312411099774810308171684869844086520507677374424187688203740525974653465859091936532303775336729557219372503599943214721575349414144326776924730400698503414783066371133110686679555141428694951643289303081162595945990999073698877672486507618471275116058504948818241427604915676205545765559937747410481090970692508083428758707540294465560262107662155944883020091689500541300897369087899995161632720168079151091576883558680446934294949093223848560056514800052562645656579510857207161461850086003288178942409856162326581154085234572611381921255360991051871971953264913996842821097348082539851003955612667812710798480104405435716700076902666831317271503835921665979068360304411734873790440173575137496928730634674228788728249001929100153495024717195530647013844398042207025252909255633384768020541356233399545649165272475551946082845345539972727686634824245302031333937353438377665539403218148630942362752966435414602892727056961069748320011826601440735775199568197722534574589589828668952151126909180153437544503808779003238017073277807393470893192341846779742365380202237670890179663988122981199263997314155445130373985372933797768952320958885710042072248532241648449983332961800801865264246364057575301759882677329646153970179620731191957165702006192811358935577516966100135921599505955648533566233722544873438502392862769233776311061991171272799141651751043592800504872178300666247000056308515017551623673728765560594954153201387482847159819415501885395186940691350164250929116303184038034537542147238772869639867748247607056824941478457735329678003681396572850096086116409476008748818791118297980061292649159119183976802924265352050919275236823506217372088060681316149458662050348884424825227471684031202143185539786858882027890471384134365068123734230045880735860494116586771847937854186199425716554294437865523905242957030910344025764981612769431128284859530791680144590254126114728324261477095021281502164235175496881204169671229010236558111572492943648155907049737702568739726888902456545833688755440300571480650461270479290475395463899446693544936188750320232347034944724935757184232755373160389320460336631516121968997953095858298288062707257483074767136838335709051898751398877500619326116715805671084889889175799525239163705805978364544532455423714871773089299401986205787851996756821225658065926581809231037053692592440320049388532728208876538507724653646603677887626042099716089838604897682123632703309162987944054404169604156290645593554324335691128127973769161966288942473781357963126365026258128926917304201561062793861795744735045985386898953645186120873200831382760142061688742453874541241364176133719229781519334720287981548128216221396316589103529618381936086694580075619672449825665162009567821885009594847668298344010297082503347674894703165811625120061989604687224548415460017940544222262734301747998060246160096625504874917650116403989051705674785157071882349588991317643299276321053918993943172532418454546124165357888314440231331446808142229352555205972954678148618954690046305001185051213758485674303437925207484896934918009406136217126344321372350162921346295003023987541395411666339817715371577407307736584716139339597272211604127535905412368919440428834160154245317717065279818450598410768989151798374587372009963206489242115939188830596333171545599342970821233521062658819424458167577450455128677382680525951041436998911651269236701888927682130978639051511449159253646268547485284766731884067879999176051836828592080446740643855746574624576538370533288353062261046903303302407067166136479025216006428365138688050968114541366653448893807258038174997637550847479273450232682299869271882923885257080459977322936292614236644635800801924080752650797614092252786964967054932980069246926871842024504625052783019026286180831133074118795926559666956471180402153742314050448691377737882577532057688657051252273433058117904206966347586378725035121423525175831973740526087217555541508018524242034237507389148563149490273844159515065426495622777698945205441076028746352765283985631926914448147345467509141194963381506581888171332217498843383118538995694329376908889269878157731866465284827013075203483630550519932958556754090211087903875663051915873427998764273380709912270251154059641070191214147633212286297848272906884577415672616064625440244541068217608550004465625981933014475282894594289299642829844527884203115759509768157128729495838859172963834100879110704600042248656676783554158647245012032091269131103427251280322019526795969480513956012115527182571302099882824041834692140980480993535393574223904477951231407792565555996494881563912748147593046334587399354390146239141147188607350919285348889086885266209978814427582248898183934601285754703271092280182684215809985121802212497211895105760009772088930905877751726030017754705268964389271682690556765381233742368441638938829125073080076398657041374257774649382588441783054362772264259196346598874960341160923421989655704586010395941870079731871343568464246492453294639746052260362577852211273313907270914727689325257025979594676760518120795555799835714714809558763539894250299155172266249909761981806689422825854722285985208890765363021431723349693580001011722003745580362725192360698623350392049752912281598465224179494087462884424638530363937701883283668643934180088955305895366493965096121968175469665752105585144689332979020253985401192240332710138186507505375455985914296850583749340010383364613010885441682619955989532014138212165380174664651543399316497060383778066529101174056384309395985659678867591711144432417884932285879651797084599106428489239767645672505095266507011728731509652132518168228070510455901459536548278171041364702035716655215311412208488756857164294955253080163173756454045484334613321013418666082019804479890095757527677839656188785216750468229575010799068988623116332616101429083598179813019269439808980461200020270718284996152346905360385231205939151027721009975054076895201568718505842924780213561789574641462217218489210780091949645581013815809916844963903385955148414604079558547554963982116707661967920434250474024691414621681003679878251209007224078907840802322646875104866946889543194818259238220465155406453182588117425100411198178161628815338820669437240113882113213102929311375193677896685725480849287725265025482351105031281225682019941198949880771600190143134861490661645461116807370277656212406768047767179067033867015884923757496527427668686681333192400777720326562122832165274078598558484060474614399489650519301677500838487761452219877395616071533530380827571238281726331568158130632338082605580505487609134000291338096670776406979200378166159734076928456756732796555774021338368265860588115776382491393613589531426977061105376940913830337911659184152331663517220681992550746255626484745620381497572937986193616906083118075131097923006742440435297450361311119152776806124346480457612728385578898124959343129439842079492213539899064762793100848021618066903861296244721745727903208479929479268439208183978600673896852876894097138063093578817377107568166717396766579019540753816856095986376175241338849004731140402496157263056204998954002985288362462801776428801550064396647270440713932920487784601723042782046908375778614578609391333244462894842981087395681750292890459895395265333874884034702284347475920509584903142773668850188137349412913962951271537935433343269157022581939944986352764847565478411233294500904823810201361942033008253474533784441438690320589442659893261045506998623096022096024644283132002824125138804384554780248630375600903571658521830622579275860905153576843816393828358787385638362325766777494069946263875697197353857944233026448727294215338130459588252282698983975278059502437640119073311042971735875713431945463968547640869678028322262170756653012861354295100181943209538491157487605572185032173753431981078986496900866554932933542014717496240927173915955168634707248535895309007927806430966232394161920417187522728144265889182371662155613777634639127473301461533686377285766873587560474786660842865067408757317887022776690638644220408906006950414854274332145529345344641094380520729699824344120322976103690604158236687031035146381407182459408776971658564210157871866654942101511802752964245352685114692973609343071090667159860124517907771990623559020306399253465699192738449504050920109858956029724744994218955965191116762601191538734216183441731565706241891035125304164031909768774167021976039746388949827375760729241386801646662920628135860845307175391551316941397517414974429998196452250539838441257457675459752610874672305404792658563475125171412275074413701121443225264845724768852884081175558846044609597737254590441083651110774165403400251966014384968839771162199226221169609021847393686609533634984347462265262627485690010778313093631696972993635081444213561547482883686141264317377003783870891296020149079272701133234091468091876579898031966478577018966882939084780128809316228617164523735430478522311972964335627980771628646483393088504602834671943643465714768900073389777663596652391840487321835419721428956073020101956626674527028292858631083697979952961829255195130601660831507971823401732701651055020109736262032062742373024363390941827409964073662120195066675316306654764558338214217420855790040833003004041433294447607132795490169573538181397212416958250530206593186389478129497997970193890099981734918864807630372631707888526115072756936308067801729794765968325875630209955093674197612605305904144951948836534292184264597917351097453990323351796313313384867522851995786320189984637794893243674427660355936732312430241394775705428414159728209760078490615546282905810278192480967419871691110568212648635504039166324443582831799420986481352384512431475768990946605695215576348263704039776294687881468110585333634021205354226581754253531057231951257171207752703341765450543891078847901637557635650716806567509711449380201231144625884987265270823232222608210585504208796993306340063867468478006979946314318151806332234124604216086997711946730004081950630472978693824615103420974331328219346357877473050063595694796179462903804137398792288329675827593149155753631685431219501232107109929844603159884470157366969230405333809368159142480937689701727048958433349434386630909832505651013584255826053309999820686673227021353348493394179825126766992576961287683790161611417711729236422955684187831695824571093285081672093379003401686607775069844957646063303567689160440380477583749726602948134130214601381252445316829898298553929031785211483876567460637610666935852696242479316035908499270187479593480858773868853891796885111696418338080886145709829173704504409809765512498029821296659609476586193930505260680787858208376297653568153209275134627999832893908391201701489972219022276684234189150590719799785495844191419303658341337848600407384725955439529198111431533710322993916384917628484524424397382124204739021040214289844042117960836764798145972996461899042083601520860798198269329003161657382356480277355694647276788584878660356625118682218878098100893717855951401633944771889627542364203016083526024111181325501875945312713252710826846934301959645727097244065642566076438464076845456918894636727480106226914254239153976437428728504490295462528941177528550502756683615026830093320997459526239767486079509397269634249340905592061027772029192706599053808357148275376927532697569114760044088048568011558828820511008288626874815444159738545838441406808291410304344252713904841876808622600482031879608910441456028772020657581735568029799279656767481556502320377698902721604187454678473434866937399670162421208867005544785716803374341354565629997905571170380112875023604739769775444281839076838805359525568514235774592079296491771538307820849313559382252812203720828900449049561818611624776136973008282362749820048039204309718727840334043248358729909971236034919700287874288599934559800289022413500421470656174343415034047564885194280224039637648693943000609568134404081396212647557378866582917940372535120689406199929136851531196218705986990839667366250898434253340006442259943582335651052510366079086842420080177711922480350640702987102054569955854512190705779783688070943733489198251982929497504513914950238928571816129068295622595535248608587385875871577562169137265505972311193874354873292528272626657257671300126843339057254960152411279257595833334152842594948848308436296036843811036020686797899036135663041302644530742150369532037632334669698938014061249723476341563508189296883006938150375813477621372215611235332259514927305963096847555302702312089430291973966522183800563161381442597096297691708923170593459832104043877894720110944034057495935252298634794929037702227206361427751983087168091433970714803042959398336057103355671518209172724039947608860645203742169922601676077144773111330111279641190223638873348886752272718374106842938888470026917869952333775839293617650387862547876863520218656162521071186194239095185654166854334336274369614689350510534215219766027296907398064019731150714514783158335268578385673302593099239575373107647366350792756248888725562535002038848078558775133843643411506973860806170981505209148373916647901435673105942585626655125650924051802314144517036026553071432142973037353300346032960707156946564911480856380849729469192662884090272895525038455121187665766151077212573418754373374972252779791711713725548655544031772320011308191906149251610955416623528998307162626035597916030699933618133936989007667501791417311575597065749525403489027361207574828600035404277562896114762382161515246424390824390309525868451727444438423098271366798685147498423462965881990927527248963109082279882869850829926890987082627978087766159288828547223298127649512974982706478826519890356379780413505123847816500659013665452580507476514246547681796755005217215777292228960773399399386562293408111938523587169070217129918507018094704211051418571009914257801717419858872852620091218037060836948318287418225778111221300604382906826080948943322311361152964088416537920942170903217087265662875123021786886781100538578053339538957628904420848053675633271859151815966761518983049001819448231463074719833323443054611333833023362793962473247618252404988670917333076574763029349716293687946207111105593220038996329358166223694624593703565363284428700590836514322809974704272140494272775495921813390766899472731647717592647761153764275597801894399821290589705169976499816540854866190211383844854608501706842150681798588795932381345514595595844943543375808191476459203916830481953848396869378373657033199026094184885220543922263265871989549887952803234178863553542129231210972240494517142713558036982671648224257524402869383472880047156445602800174634237111816118552960425638404620760305676488187999444745540247417888393619186162347336342565460035528352462436299960556669077050576491696950346244405957289507546592181133410301204549150084485341198180495349114274828612848017088748522068364192179009234918561398611065314728404426045567018397080719315339979992694984542154938091508458400267471493829339248464088677571487078308155058841823716501475581803667406468061727838121608486411753018727559421479892748269284471399141361501834914801458414176646092505808308827134328750812415141814163042239494641968057046904268740636549584962266306714901311355479522362229343284678032423520733491071431314771963255461999539527143088177897071997421166682300960819892270154307610925609168382364398706358613035024851077416550546896915652883606070319774494287738847352073599723127242451795867497677536765378941711630175700531450336715231567834568601151569956043213708226712610153739212444068208428393429731871358197428915059323195289615347521284379302202174409267487845759582053459599274967920861124599574187647824872716632925085878182522385065740328954008260588174879850741403345546313951786646014665141921721209165364298630936640582651899858667071005625766633786021176400806762418632927127187299774326918524455807015918815454032440073194508262017291245742308088132480268147839439459694872351865059187648839720572527415261824031696556002439521299449735001403901248780332687097139356806907797388538584410739579307134232618837036800664285056459150643074726806698298796291026547091928556705534987843516319638200789260634277664223576662423773935010182855302377220879232450621515228516707658751751122928054756214015962294578975666453785778907148431660775208457738157490543537060484100210540448174532955388701546266309278968821902549569728533982592326050631326517621009016853531146677547512728983892734036567822556860674412604991565331898466555811857827500907735635105286278229443512610919131028290436722446573724165125689406226722281619327640745859755443132108056591566942768893647944832437542543510136673687550651439374223742868385659703232431794790974109665309268967918688505503887315819011363956633585615257926784807617514050218444324562302186671193172286659679641141705779649528816806529971295524427022238817677618809738871366099557040847712443159405115086408221991610214746705216497683912011031915748409121736663337211563767026429849644048823296615128122965225690044918031834106811458977204338327438815948662625570633625523382697462154945908173600595850430740721709702298699453295751103424378235957965911678565846358860493145773305413763529335614414900196844566927909008550817866191035739918829388296139774507546538329962924874119446711460593312332526169050805048632109962257724548075479753567861280912626192443847866006707963516742274404436001327746441291221938727718324970100413577902609667520386722954540210603747447815244652811131933778526217003372949847748534724404344794350460987183612592234382105697702073481259245471244097672662064408723700831259308703224132429686875221146092843583896044863064256154579445539914144901534991061559538237058423051811287550109879967925840423331372850725896813123650044930460779156274292487086545441010429548931256613194704123957583514209997059040181838848538977675568437454846014662880473420425926898001278873753546049880781947595405558722594869610120305194064388403508184771561594183042911743393693377742364193892523496590916585399143548112660518946322534173772939063595864975760722318185646565797027213016596324978488511961409832810904303848030583031052508747974212685474164397795108243668232613183546889883612860944568805552861729527642054630144483056938809807907542528435891739418407196139789814156471652808446514266093386390657608087624254430276084907882443454906276830174123547755117261660416888115047710821073596692946931593992443781067230096575380314877634645321115504404101030550604876890202300165433388815077340304127158977491811617534029270447451540936876215920297235302974282604592285713321331913256780252777015393635047045292165302894234008812906159205805480891730912388651098079651527589587458848169561579008725852912109564886489694923644377387058199374458392008320602997150375597114000739782432824031849984696720051587385467761602810308171125263879519036901013219484885867981538701675095176563456177958909584245435587464511114956709703119450015062666349693965031611127544753546954101644784407126250833840685756144889064588118458616287360393133475604475386696467343546158172121030880814457677237004522361127936889064353866618253626809345096767579324967863616311414057306188167057211487126805614269468115666522422917068714211845579003203671964046981634573977165991086920009789627605749918468039740428658809026156904081173363200471536684997027252827532902794214550032518017893228671693367860799355366307330647174093762681054114411091613574795408041892140989128460609547390569131112160160137141516773247856978091491902746118948781201569267082269325244183267928621759441008557848103327542065609516649791549233639291228763157008866934694449903581881403870574976264729458974705671366843702743750400354440838607645880370085153335283079259658247772867581270718119667100303308998737723239885428263816525795339769294395976614554814117930876510139279013716711839232871023681651848008629159878768428901728174805947512921649277107259621646408324025060961883938729039407443878832602217534150826001583862924743975574892594511232905274089606091717177373520762616690004080894383878570985898075258996464498469425803886582205102205808975144432907697173934418244560361722113679158022438133301647740061318898906240923968457902490953166660754122542499585542607079628671464307215727309510158485921293438862656152688181582072484054260012198815585497129648415596209029571189733306113791382581199755596547335496870360804721977459402603512015130420255401340870750095227415647282434345022663808132845209819715865724954780550930861777885405157772224754239352369908029975108623270595851154279223965718900516349411827072897214441201337248573944611687646260037751712631802789244250005778141571317243272899945423173692289751305517834363075195193896645437765975011654477819666451509776613907092596331779642301291365332692142216020589593030114416894787818401593868760333741915620432263825440075187270661723634380311854326644328167352194646600515281875704921769228613243725018113258193745187390319946712456220426202624811610738663485546683877509597370942108254463586638425497539220935793431872026000967053097031826129460310779472983194068251764194848644158785017205872617634371181917199410559755017494524815717490286995497879280664542922466192979407004151326172437009599948319719645406868451486844011205513853746263119718122621974737964845669511046254161983322015276599829284640119293368163995444385598546247162639579997422113591169449720340151118725506631805843392414194836364225613404731593546433199645354436671905406651615927309702817071774600887035184831302533341766376159513783872773298086391693221930781441679777838857988635920055003066933221824805619440747220865330100585447735910719531981903881046163064155588432557798946817131524679072956162537434855778487213455114255242100208705049535957962767399510988117559828240424836858599403579029669745703776862087032060507133139623290697434198249847402947876000092105138243685808004278517047863279605140837728791439842645276847564631979742197517888412934221599573316800902012960306330642151827954280901835944977155983203450726826923966481153839188126765888966078866304742172569629757567362180468922110195611690062216635933749871951863450441705113474093211887315696998757728953027701389767501283498642246649587003206555411737237322533590926468257937822440789049649616026371630796723079585026969398219962073888680387510323772880769097784500052873945738431391824450373797143462933597410474260422924975327792108867156238997777526973895099493838821640733828251613045057780714616082203890239458851988843646787382696008429586423378568094242769516385994773281793645426480614316836258702787105646444828205190500033989808999603062128220337672142481633799024492545108090514584506734461831182460600865159014051686368213256348388033762037064592084080655834390089062224128785770218895583675965765407879210875333492176159889420880394214621686299318604306915111943833763837488184829813392640453571021811169022584790157298238255192238742560848803489156409168050246909789146281561045020279984919010380962504141412482157114950086527554025838123019853103802757144396712564202097373775570320104131405926279551616596243199221615627315335369638497913322643903301723724611848468111592152284019596024671223783218311179520939302627074002092098539831452666273183439742092217002898766676658417124104986265089970634330226701548518464657751251552728694358147989437464554533415758419425486260521585499709204278357418267924025782316386196765034004128572060550230548153891633669028229312847144805984010720345161509589208003025187378640572983528056747735251620552877015303190155462853165343452993349977391853298907930545508626330795213275834217523739285338051995038884387113198983448406405198476981033193152379558888005708358212902233698935741548095499276821502254954056873916684897258999843653682160836195210732193350705607741773536801912135071328630516782045042724883677917730441578964986502308289776275315177521384376765387649811210443185286971291866396165126416062616096728686669417811974555408951117460668973990936666765878633446460726086231018917268595554934279544405120237309463871142513104852141672066891147663326904339870808318519068839126051528430612285418503310264537834329968192206391202741953135430957788588943127808310675759866193152260640204604723853444308124038449475926800979493522519118517743176512273191277976367176715881098944881758937214680663065077034556418548826975030259795131195118552737707655439297424686473090551851206719144293962958155578549200517808721083340784341901778059675447477088885282575025019679533722642820265209125534761458029449856136070600428297518183489709423207971418848133995400832663815838852121286060187781288792325410964354194807679128231335841726222287086445196258360029078957342776891938111897373278662632781439503502765077561953988720526767397096916150392709770306718805466650361449057057070417051551110069248744817845573613529825400629520441126644785129648411634082853490237837828003720332515829321898798406064149567276585129557556087696827080268433148740685311525139165448706354218834321891908901757498824697189531875768423040085544822380607590768946295837437245783646133461109301538215405657042768517915204903700925062824802732255597351026614493339426405712069204044633743889643257899600805596431517272513234098664042778529318566517006085727460626944003903813254967096274900664908614868418307753270756903252088977824813936148810557455967831975789219280424769953806995543826104395708544948025371584913275022520210574332998736656742157145315858398410155431352015022914129568424452801774466317034534292956260501009229934177017608270870025305918030716051511506695129624413981068892108871373956983679253737836944096963065886425694648319054046636033672726498079466248541575259081056790119683227955402264679059723194703725393123076788059394201633987255437566949553823810637593285789968793559387093300397063846975248463167452431800572776118720585302266065301368274067295107268390158466244733332881276025483146767864024524899665558120577555086894180697220202352792213104217000805370517869380508674980367589102718356182901795701593650231993011945607804931491979048817985900466107393881078096819435994990687094542722713736165965651083700225646575402163434842820487444840131068726773608382948954308724032281443342047405626940691915167564499981536719818862415365296522246131231102367852384742548534581233026007290673734604392330570693147748871497684582278277137109461425424985332311556085629324911545041363466484973333387785148067960466181220178696220985733489200105747577870749550511109409035227743712678484790701488410108521354810620710926545823323394500061451022620378691767279316283278207347587063976614618796555920266772177487311523367211513016780632285614774492132472383476945087967637632927771554557431112897048464762713619182395273422969342279913005677115258878182339560400702594865300133325566079663288484298132241922638304545631797972611644129729119268855884385408134837244385845292160221338942145001021152012622926846639019369899823048941739817807126413917448581408244740044516698986390206793196162664585816185480877753096685422564937759510499996559958186021804137196909518869561667234335415704300589626373709186567758981174922564912440356346963668578444056428201592526326655057148052124489493641609856303654899996627299759064844710291486672498591934490771850299560807680534121091266780799543718386706271253983043087505094948215451572010380474602610308544973608721896865482122547800317847480581712597780248256836606867950696800359964473973271413690606525679487486159718223742391698655422119133387671941200552813165631087004767715354617675832267540404260587322373319215816953406735872915829347530078657625408655283669848254893687465936273235105524367781803710972882205183977842195842774735756762987503335807331621390473995459700592724820797466661409415785726216202214210684051515464515906164839973395512941938032798908115799586620412894304952569061903773959483630255414229068449544404812410964992262208468048116521597742845614216440448801062722287535977864136181850483939135635303166534324309392144895727521348140556215913768218048063272584441910852345988753958699071098628383959198796929745050173817781488402349460122254205203958141015250138897536263674278019132815423526992159862768217067444439994428357202459670394085642278873505405231269713524776927172827264870619428590483143330074305279629261058113529592211335515365030939192380180697007500300432494954128275789576441168106518554158151297074874094197246081092953912058488248468029528061649621813195389515926633225415612556802140852311583687816432046117948440910235134209547217043673944997383729061028932690521491689485365209503870281138755886845594917252989343672707097597549854861610161678423120911954702135151513499413987528437252399173890555716862816576077840767871935871074602771514134185937719847548418182670863048921397582238698372651254229147980758848994772205700882814452231086114766214432188496524359137303096698631677615305588325858897962419901147290472135288048300592911062874535613610675112829657478494772090179845092474341998725737383481185162945611730468168978580943907188572031417467167136120169614887821800358508698861376475754080919827563661090188228574187228864424372613069922876966940494553982529090782928612475429567563328181138427978507258050166924856476562147615310641118854955258084766574535412648675724494857992494036137612695414565159780539455441964528990498932690058968670320800320523319802703204990499556433051625073022927113035652362082106155145632399392143422265925469259673741864199342694792073122239574983246328887591554609696450930685544224441209320224687318229840668975613954410529687305488191814821647523047982230509238676613695280748997055187644557681904582170387387072851755335013202598089126913045028879845756675438615880319991008646707011457929668355673595691270457967702152027421845502935722995402294831771711321151121407463794558744343163345657158996671583418816403129300122723323125961230733552538822790487776328000265243699104679660940273711249499900479761608588487366233570962538429878289628618691204319378541339337300629883430204647449303709747430739775518043189326889408889411324785166327671537673119512898689503742543469603968884627285322938661196193966660529081774894843558563923738592615213179639075016623810158732738099881980426880553388226598546839363093341393640534175533451772030512896440975035870093854179712230749448389129501709489593948637977113613449890772624367519219470766061984015881767098976232001222496218855709740491871828625206432855760562324956220138248951352406739788333200744202672844799884191598773724253628612960079405615929557580970378682607982489660215022670771989044483822382441918531854364818055249855168283214869589877608148503338632643713002982332435522987595783201534440996205957523064034921804550519681158002271566845619087460546989067204618761826758121915641891692684710952355633865644287456872661667075274392007365990451480707658346444114303973731778218453993580597759991383363131219272771308401080430638001584975720608021744608074861921762795269301660262762817508175129075630194752903563068505060865186174098039568657909365213394441881933118606519851952442896130261419905906571076343177013726320414864579754970574818333399851853959587367199264876451618216395675484148227448125157974720408718216051277171065468684284889663095122817134398035280901211867977593342228548397533315506721110716848029246646090153467446535687152270626074921491956435761647101388156458373401119331755634855591597230546861966049685719287444481052129454099812734745625370143843675979460056891606118663514560434297244621812976168468554065859654524460291960969628431273924544353491437435747666791741439275303316838771170001725602458313411632680627380228306488566324375870103273613743236473338679680840246128714505672198011326063071749965443068632185404007438176550311765777953003649527181843272710004580280455292140801960069907777289180761248696113367457312272776976746611578122552829358376690336006889071792846993319319217083847092092618869792421641087637168201840214657845204570673460342959261956968902070547702790556554128370123647075533989076353300981407451786103671877129590099045584084482484077525023066635859372077631854389400085424082903464135460320316027328386255381382886944521666480929561676785141901115782696888043091101287204973249249915450197363347784315802504153056608966505830692819445447386316976870675318212953867879549305758171062270138408412809667964044651253850437136154944144805236669821919266756360995353336963982896111368745808584659384953146194639299854427724929486391235608499363268109534893945401004929822511228844259305521639670153812751351232727967548671236701703226689360850081754796804023530788151277621279411595045459104226851525496926300312695163168556800016140704450411589465969835012539322966829823343171185197955957205806115690256633525094125344067872623040637350666058188975092237137135265547392136932773406656639361364043833969348548904591551663817361764858929659514041640549216976366810114293482567484853737215086496244139578830436998526492696420108526623577851161010067336381190096919665003043317772166262427049066128884712478297835079181792567559747890172104542431331338712716809414074646092319767196278654029861742365682243951762929315361002009489644054327497190516893854724343504360086454039991610625115238446143293196257468755342344413906495721625688245834020269886594908177210723557462565219279283057672952868528710005256483990682720838198578104248605367355769583622886097196061482444950179923009271219967006904242782264473962907106676484083395108074728862704159303107971096173918254086339232212403118131084185134585324725702266404634790577989624738015808711580696386391075303533819118926985208305943886993740649703095964494353813992019647564880094283113110497269792048345098947549666843820192294231349116555267551704240667860846711283373796103002551007020337007981456316192542017246656570811672481587198404304548882025721069046940939497386914129571406962609440639924040985683255498342192841122924584136897470255804629816507229474069799625601877306928503094366836776095110609163990376331459138005015475549245999876151652645146238702306447418990808830952353044900080979486032154182055630783013285926498400370682036305359654088009774926045687877195835531144134483323574915136448923902153381228068949251196197896350754925656574842769747649922739037584707718906382077016860544350664782128081483085711855595307106471387929425589708715361834269995808242332803291836826245564862608623080170506615554014880139467301745000067486371798955552390761600816260040544314877554559555120948100906938146971281267527973479802504943078254456368281242263305511961402752711789207746089115758189615290397901408353549544532538839933471826699057294949334493315792374931442793026713829491713366321500977086072609246615103354316921482222503588764304850151556460403515581148534276339793237398775640004358146351338551217207042639700672706470979304519366433702855794494770119177956120462308415893723172908358230060891750853326181740132563039705917130763406503119744858746018562635840368776887661875709655745133812838670295616082896629337169339184960557324627231071366908814435398437218832385694231766698715411689979993031466055580390033851664014673021224697705006581232613166112217503670798765150195814916011034441515314360634877976564072796027536728343657187954401717511601312000802523602585614652932353846872952791527808115799160718821429583316416741935234200002318128638123763580539287440617405448937628197992930713600608591282897151823589476935421433878802284831325704041656118538654556417774820606029950732486755525704131051377755131344416403428542323594398262604318085149562045048413734082924165719249674963519487968044182233056658842352539394814399237306808679750462492583155258964161706269873137742949335051252367764486216591029864394560613737419814232529355840311186532897581594897097190278825680945948748904609774730200807110049137676898229750860602973811897234517978507912578406982666737825497923673206634096890010316979239240317440172307308170173489564308367020927638292151919323276254914469875702622437122023349303362464801531447331227140998607852958593181415475975343919713995694126407914178857311251855220218176851684726238866198959718856350203507596560538036592387620261406792617155852439308694165360278829598311973679310518469215338269039352024562274009863888477361741479215021541339201569916723510312883443570830068067836018010092490199672416937255722350758167492693446574954148705923792963469886525029803000810101061203403809395847871465759678041915346647434633569215449140487719973827592211674597116987575608703290837529920116951672583962641475107177352074147854627913408822822148172442632486107329217968275808953791229233675485062886977176486664963251279287826619726387133418663889167390870730476383483780286205822818530317419861520905131085581505843682738115236668921397128484531791290503721602288201590612356974307130433759967921081650922293272660634978004894087494711572645224580316246667073976302288806300358909552680897362977383497287606181482319816237420801170888772383222758017866724560519360859485616253887645755521317662775353302660719547025988454158422932273663265616952974946469903315482628987943230698100171713056519520204713425327274941506969562733985346323116715753355088078598413099363377315628015676217632258984445254390385624984784012078656483251838687832147377076363250826637206521212064770681190722059074626788767673922679956527671808588659418301783342144845774276211135976118896096623394122270666923697421307322729465514218250806368373027383161592350444622190004570726193800761690199351813494579670654885643677449731108058876721685502854157448831518127536421924402592849610151904583287813645374514938785569634676110318877367379327726009121344410374067795465691838493957986506024333252434520156790884808341808598660607366001287190655389086981628350475248598923784601033997961776745113259470403301012487053152689146670517018613048737311812254213846322854958786344727035503280278028877057294701677701761024049900846495649495224748658572029643596188932322274475701400087810566626950037197295546457427868504293400529162562674901327578948131347153710293164159600101095502320166299514529355618500389192632456775146752671112867115872079331546216324040071110677499121206353991405605048391294604714505492350808663173334236512628477247787216642869362652632278559480159332290970849701245208849598047896778363758513029932948205667595766999969734008014946099498224598735656450872282454570385875347746017381387016188938183863724113399210688164054722785116072374460205497920598950251591148113064925299535794729901500594085264473589986206927969831130651584337724697235235095758491763806774474008693216051301107246963154107742571143898710361413354904337847614846645355144874254196338251275744264238623133109651281755288893068550962221060204367292959173338638049645031354911769904759876737061390981093893543500200871785123664897888517637453019092753343030514825135157384048406660969651933801827781582995410113352369326929805082973370432187300884268046620689563445483892657381928012298107820047236861807208457062996316294534408662248972584955620697796896170067586898497927471817985243751472940226948578436250047880335757108539236497844955116689065727515626183078308787883753456941118137128333559650967555368869916266221288384900698703567408522584277650467866708841777414940255518488116686375981609032564227320004390959675468765100038257137313486386242398035950961082452984074019353690480438661931508570146129539764360026916818660512197110435425532452613356127142916735358355453152948540634282598373090064371626896606247645339447363113853597441376718517284652798322775106764663695705182817951473389074601275273831808735029566826410294596961822546020071033350907526105864644734428900676770985538956943370593754193275507579519104031047513095037047056435569833591556700801693033938848618686193870019650222506372970021013766074215256713188922948134447219718849427112082864859451905099988368248943492959839512792179398089669529963909756821856234665995752742089956623118748641985769957176358124731768995784201987497555355897454004326556743410378454680704098717377914705166408465115956110712538501929635601990389252962652750409473165224627035890334953287845899955017079630470129445370520514075557364373846719647475334143594008739385847459049259797962382007402609973575114588593267776829445999831075994186320487451718992675082968942172396312798141266520287316635437164774567267280739190949332579804866544206462435972022364745480968913663979125295738298540300559736492379019202821442742388511713883127581834901922924888483922839017691153312802699273610606254801854475268918211513715162150300104306740254059958716546603769583815815228644530457151329913298755309918039844740977055535370316897947941372111190897183967030581214465974021350653264515346649973800262009731987942039161537167520907593391030191592056559771627352262263350386797906938537107742794159346558387168952381525487667608968610255270231108751986678070863710341160892882751944846527002767462388323216064801009499478087391969262008912815681911535885661445498022810493442167802434018526337513612192843678703128161656178328940691136277641806056971006940412492038858328738208258004599945964075322065072057005863237052221546170816270700738944343535714585766482110714767884958366384287119622390938474244755914500814234701959537716162280296884237811993149802255463306236127379686522722078584566179841867000951308008133306748409869515431642318080474193074745541170552545942779961477339572472816221343919166317774360380673395113302515127927834708947167404416238183409814221782252851969282827141895065649575777646232473936440301594853853985787594730284492871121998121584024691644107037995312386030585352203516196557388743248795138347363983004479230610452632604220132979515122518527439815129982195955574663944798011767039163887454765012095221014274985019596910947316319609722063053355242129046885324565078442837273573200971373480933506272890739940855396229923280305166311737197642112880688136443386261944112496468468821536255310259023994948085177067572895010836181259363724548489229166342608852165857378006495392274501929119460699379628448009305481128165264272960951500148750413358794666201583849747468566095124066364324802571921677222310069855088199254692068588769162490983442316113392297291031272254328140088613230098607530370555560484958129291668350649142503541323815042304490921535932139381891298913506718905936232906490289239606288725497587870997519979096236023619139071575999716901893869247033418403883140297641310080520829303333946170518246594589383744369760433117775129332697381706158545406662675608804572551814053132559907144301455921848151116482840722350978796519324688181909663563532295077356141115400825672033017593281380095562137798274020993826356900699190570245945592219047111582084257163576601066534380809556501911965487975050265817224434272885464704888303729762774338673680890524515694545057340492803496862043162480877071868315443257740703277763230745781098666110000432673860695969804443926654681823790819283198509477042759522068030934159829138126396536930192023684909368015573389575700035524494520527675742384473179354022665271135457491205331579186105878749276942414535543940562619208403523616844014280181137045169257924043046212598325840563585775535393205336151913759875672011156577391695289598672336498816466013595226409043325305082555282063615850356126893923193119529480385554735196465854858794956201016751386143385304893140209209325674713124037814858569071269943292340696646243229255081741751444998029602025710011430939314360205971707308366985288930177114318926893913187373105055637951404195624229706701517189605933999439778561532267828436135678179385165706112583336457708317019094169983705947299945384618469054841550212369805743737614434919776898951147830240877640914868111470790503084197688484682769024627350056733448466299805667420295758654586876260156176576958756531773162440953943778170447360129015262085676600331459521361153058455346261631219577268642838255805807523200564171862704258545504852839184726660256795368235592622890892269042454262658533003328984218272558748571920897581763288756619818074072194299038164234776826462596207899818353291477114074914261464127566844346010371343075799399188987050483812212435739389451057370986622296746375736925261617505754054210404880433959489869507193542130282158793552748564646037181629782559285104792521193173637200676615920144069012434567229058198794690885039203288495596519622147614636420035094874524858373744316159162250694456203888054766529198058639244562707352135972917911854276537932635480887796322703733062771423598318638309142440609932345113623187971113814017727274114900065921500023834069769677736576164290375830455958894465245448688996614064026472519275796524093188726788070224886890989646490254598398293614534187362375079795156729539191468423733724631112594906490149065843781773072953352829100005993332363813489783094061951569534243408806772796008684004922614440633422022861348720670009782134349936944616160366564106383816104579172430822818285805174698620137823826030058200451171399027505747634006494232427720571957546341845147136079011490297424983783113860021262831843098717066888142107686756305271492574424148531928777663310174575234713908222947530781119214630487182308578022071885075753623336387773274868515384505280507216629820612645534649579999526402974696206131206723294439945975108500257172716492710910051643544895265094500200561884872406362811167458069350613110019946321417669635919350227112429977035785748838358595754711919661302492323689104626111306648135610822070964983251510717812096559740947241219222324891951877122504697386788628129401082771933101015213308000759985237534336465422359316211356690290328768142772896840234653449109637966315841588964577829236543593448582954588022158022158425819681421510091380772720279367154250957354714950295191739347686936220821766727544022174048066792273020987212070705461527847512881764702087161061398788996419456448356403950021816705030083779069483596948872556492139860019469771070228014715016688048845927999876682387305605322635235592172337865885301891714206276473262136508312599482623436031303734496430850649522830961842453680207451677705001253053580503295900031057537547667755503360003847372095174503330809305127259992142196779369556831487023225215893504679161506841779106268070091649489709436221136735101928161436252335277644392399036347622521273662256779017405418731206362236219427751326999990287632829692024033953841481173876126469968632928590680446335274388071839286551157320829067218854898724006391755415131340955269792456214833329730049293829382516364754740767642454087583053811911098496273929785244056476056125678058492814249007779155817514602482077277321305645238747034169138420456917952130686725534217131451936587022553152351080948437131373576482979842150297326734442504481283377766675747347542417612583587767288210889122101426905989096042837593636274313791259162942669486627186316188078536819537078358412460849398760498634202514073226851469131549636539377862294927481331587709265046980668194801741990188362094256593209209153899138406733758460731678379660322159814664731185431574606478082897322342679576748665097337736631321869079063201882488759117493242384235081367307420864580363843945593830054443590211839921638078528483597823947766323803602776187781516564111643163545728887854182653395144203515807183495004919564403415608665967028321429657709871383049546781294434309808679016594671457934513431770585098272839963889112484413559038918104007621808380418051078549352455008825829540301157458347048814775244617693204829763435682485906974714635544909991847676131393269178971845696650590001953800957173774817854541850035325951702756734599143888337536007579821216466666149603839705189106974955599650277159522058649797596545901970836894857935104998306072129532212120644790370563169017770021493836117105009369009478387169384388559553194986184442968276241437797852073821155811313115294561458713910331617531208704361195206813899185137440486047693824866686792057823783029710083088655759792891524433526053586335532225886847807659672048111593586685766462716653719403010278265934149943621089776796958404712809578591885328699348699636400621759079546349209238255228673068464197772693966177234104671756800025159424363141003773584860853837417364169922161616879859020860541335930974124206088792000785445536680308531307023610991579551641574532528166788199944488324836042170663548637403288417347046249893031242719542548140476897907499930343127173392503061577204649979886052533797674374590532973869296812882741345466136556915788348180726185710659937815928946246371847950471263881644851285933940236942558122975961091245983087784870961844908350449361329202898773672459612837590682211433384179378070691653485940777569407674118479259253295940378314122559431578557557012128003632858164794017116539915817183421710220556252695524285513879846047227943729896167527707808142349546122237930395628253425174675908000615730813426611013004119497682005642850481099652166624734972513378102833378273906623336934515226497111275028904310470445031565737375689576414332988708353713739261827137776015691778203762468520076140323449751515175907249050266742901682630139262727156770865543870621236065632491045504658263950112247535575658714206269869428271932160324210755539906406232260032187328842251613893416437232334084305900864477496919782707507678008572951170895052874074279871574655370991977435896706979830739827549379126486893188244552015476422931138881144502548466014277717538972411789572736715567086207004419237086436825941420713237235137879295207889610233923055240229316565285709449896009919591580823580338738562460230336961638845344461801730899472571489134400607372537206760613837136653922343428183185986676698766115591590255257440893540783218723299923613971826178280809156359319450763393546786347009512932823569701750399665411248802779652462588159899117041098978539201889872276393324249002016886842727387007841162046431656843660897212368111642291884126548452629224975889231302325607470951912686947580528338664717520567452885467621008592521194009385007563655046479299286883416760188208023851484835123713963869286694287930972253458442788514272593999471709177339218774585554722018281954307775131654846919903724517287555405517707920362371962232864448459543298699403240624707433196309523060241776869809066782116666997437122226007007535794230774267305082483936385211767077422913550177846361823809595563302719718840076130025134644782886786946892499149768906995065234007458829309066017001724233644900067457962186491978278705456919069331072967103567996775049685401527990905551010135184029623654055229188930619652667155981016056457212471933984419662313013721942606302563582755951204579406713168228107972071460737346596114181536469756556394660963742433007543573121602688318883009165680393178348416808130363528715822292318160668881867197191032259067480073198724830053197367759831135893003737062345004213466726086108674562112026963141315028129352192776989820510799248808261395468363485985682041921623745894740714717207745731519995447377919357610484582194389272371261742784718899807667337681338138597646004089300155753144478122558843303537624808655926466332551322622133833742497287405490198466660095817488634751309107711694168548270171184124843953359196080106628785569544759574455828321158019704327372556162611898544041319444689748684683548908594291013024646432605756973667777489720810464877123393184149442141748663981569606479778329007217052437540485568145854095919702694885466216680289671799744750473621675769180535940995230566321528222759715735429908305337239216934819389951352681137723851933397391622840452677995461334036818706084669109005150839915790699167261968632465992623326912584152133027266768972800290323489150851510399244143233261925115849674763508332256112085302218904870076280588356017341072594757339977854206933981314627516609740413078382664948281475593964169875754979765000248238273659521503840548153048335555587284717864362314592816758028774417519264137180375636464013215085183887687344744850505673629978856568395512920720434415651835687916482219229373725972228176360136163881776248529599149383531476221795785678157058653895126002103780737202491932272985119176956165438549569081248987405010918584579988375035290993465514994567557841673943059513414869111735092051617601589367905119598802403742485512131803768380954215323799769944606382012230791299192488533086994572276880304314459440893864942002617016195011745043295600519858743461595837098679909540156064300155068340628508354159856023655346515961617870069630191540543479549036241556708583533771179877838795358146641966552559621487140581923546519950999781331754463224609549791681250371244630645263060235488865247254839913747728393150829523253392850520543689273781810676490084168239685545209271063251182211255624641700231091472195901628517345370113124223241165605407379208722039892133107632055428479124789632447242127935027034390628959082937710976782520463180812930317783026243610015848354880304873206013611533646098527555834044274375789816603781078710591383556878622761141934626942182832972324326895213262001906390560982324082531126608386427716915032602505383755593439785142830230696047930755762897328932555716116126741778842167370915709400371596168127822693290334374203836567679428025393550536439519806961012120644125087466561583492503041743368069003311935945226934332059466410996725211244032297795804160804581597913521595521183714455561518154475320165358197870878997420208871582294114714817711291437444333335647421497529079162564977517444173404579950157489759004484346464590683127806220648108318588191368278602889635298359914595825158285291892651743215369288077534087457386545300964860489516665723199241234244079329142841243885121085591069341827015430535643068263408104161936774843670531301869420934858727355832947104927882666051239520082539613531488818886552371490108704150001127888431198443983549307756300217475711959657116561059676763256009735374065813040104286295686794739167153741561490699935106128491932366552384469743961953714230823401671248859790670729232878749595814077960353956151023155255799940219935394279431209821108356701851564070759034322400407999209647383822779717342961233547223539404156436727530945195490983227393141390255780586493635432201174992404919501377944733115613578883158043028506089327491774409274297468927145423921527665331068645898732656883507520426729885569718551117076140343437888215832284150281111200590575393735647309754108016925480944197027154570804721848632111882864178497351420769743769308285000447849160011721863691727632278535889419892176791387020469509706284120087542898597119468374504613675403951155390014428768277153583611353958501370474899173301543285779615512939341786126769361890584871754832224013918872225258731857640585052245370890100417392195592913354020206363044915762834346026311531195037631830532856665729354662501139205132380679986531547963794754178072346999198153386544282048432090605832577310250278072353958914471069874703422435357969884725942810259223866184966636579013390052123462728376473326055218975526654263930029858378391141174917953401356830252007793058455914096328714521307109071374755409487734443347773141479559370710755072972552678994179698984976997731734602675572773036317619584407101337137679264694084076230901278756555033823492503058314256394683203622853282278219345182540473405097291734438886112402428369782217861212549633879736538279523764323320221641548063642337781695802578054877087129690053539238839450553134050666438585939718445503058668222663810464477656997233307508248859898346769598466723131895924345922733291377813991403447489874309038888792361744601068931332651206374476150874146612508563373273094649552287341681946554849566292655631231976482753901471122354414183188686296074078482222592201115782030049876896749664929565582157082494766420086033138248864477252643231550071817154621292575894747707461990852005604539000567730477952303211294804010050249088108093849687990174768184167919909456804417895261256665390809877330566003373820434540256364570852946640628916918535774966886995671934885085357743045866446139918609978963610388812782521877747974446531029731820457536272724688801144928907256089406582579588457043111724676943747020752991007949517775404475859207134110576961117479908860702500035155767817160657251208684835641681973370846845694400751223482820921916859335856625934393318815473200838411041787487316505258198369482922747952487359107659963796228289774666940980108144287665003668245352153236718772710799141306782428694976561361287054951179348482152455180030528479629280447106531921043442630727099846941766573622470823626728853681646028130794255043609830650626486120924803951704184784732367740569787072979445862362351281156318622154598595305381100166750466079969256774440944143868384061959579065265414449237149825459472515492949811292500160887663902077166836711276567633622186758122384415232147953295564065863562400791948869801462405926684674109157441020731926241018221222280746830803983012232380665975783527467510973197243283994395944106217323066758192627728856206314021980063153734203273025383229266836044684685935100962507368046008609882092645620921855093079893717673563149776379933012120958577114884074723478731795521137361421482275019467511571462885162874878296537112432265066568757279621672431727014434044170678002944446899315102448816935024607770115014346841461615236124499637684752667970517600069652793749287716254550733147281092774156882664069690975812326473558214475048860504869354158865855637614152096453613043653093659274524899297461703644538135641798371647334994013902786152474405613226378102435347030876693408275914692981913616074332920303381871776796449889404906113827508402388127596838432258816223344412741261555074447830395077816862461228181261834804499093387378243408137226835443583483886718180779188144081469831467871979443818994593554917584482135326110651339873608729254472948874407123118018889273733663837568821747648250418020521919359038669222146522332251868557426255307266573620455820261503779362278004724491138834286298866387596970995069707285669209887269818070371249740799728246245075172036963585017039841170676396958543719583435025302756215604726170311409800072450318424346493256071100003997947321988269599247084021444727491192120292983396939401502229330054319123629546813838564557818209072437587679944579485288099481319260624938848409420567426270927324487572446440667742146774813713576234738744144090611327802884439411892781221419483467230501156403525190833157911851873835262326173043317234912379080235247701509330149418160532765453303325549369439299683131977916383864200052471059452299874261224813079095323041662688092319770836356065180695156401402032023171338975479357959354833459909381918298018018047995900537539000044040962439917931206013364229062820741993519548360903488823902052844857455632982610712665281805395947621702262939476205105451115862091737814084051534410901772962957501490701408256711855498028833326001998627638046366057353156217580191798095196964340025790677211704305845029365876418925109911123005319130847146414618828351436663432855491328092333308901914520605717552633688524115479196232763052046289389966457826928244132355181339885756033505323990628931933685136605069347960942264141053159617591174692431171186260912147513961252478153027968262286794589438935005824728081914419302031424449183582144788136234571023898150666600329904173198067987969279397359030341469423760291668777652458215237709320586066271517254339566156183222116648952070837455492294598123573464865005395718299980005138231974460945434620198583774419883004643177107317531262450327272993536147616529764626226077093964837052379241887667868833693495038482110773242430334054160222202243878158982732736411152265993487277851088709572238540734923224579790310435946278862002075417466813572060129856062924296165169991555404683308991991834491698922911282606907888535710613190837935071466766667472417659256818464592469136075322556094601658968117098204817612210293113597637870500127033812557977317557252334482562451848781699618809625377720213467068010681050604311771838170702932485789542860800204649536177085922311898922290245257917189573454116209595014133345772187667127991339350344317674003749346405628328162529888158213635899338243939208980107789218535513114675086486880409666735375762862678964175816152814617784801174650414934520139705165088820334483317116246565684317354971646301924905982429706515689410523046258491470936975957523742676083702180481807801411532743617503002933137513933499056434405765378781389102714582405695897557762290886895835494354673209304319776719118772525059386879050213468549622319208225916785544311520556435571200186018385530408848273153026047382785791539662978752672543692329558343074182246539105942312676210662617458742745139061118323316751084350099697130433774146094671946173915437955162285634242987652022250290078984359214465438114339817805574675505927370937085714251645994635046185386577179556486442340264086816013588161210647939329877057476718648338300950031678207350915540202567482710824841673699995739128864991393701864308218540504970115664629021451703768857658704674942406812134580278746956896534078127857643836306738098678903902885229929812023872368008944278383921175586163225279660267602813822623459228875753763785759717855395543474108534119101857613457456943496246082391729553903670896529881807077112627283861085141730832449972813398336463306722572746276082449939320063659485626796249571530939484286834237591533808811335550968575706791200175988884674877908711974544144848703091363987989843260396047102617549700329405074990186055003046521994415345449766435783392261341128279400732274833735745862635714308502553054773900677774230967187830695913213045207761502202963241064494800468442526306696909988112542464730832617495924943415857208297903818162195807234591468744579191147645752977018705360186314969186970730413107024019415493311049620861003304571638714741519967064676125943006426488157204631276902526052691999492219618538591284060805819340931810442990278897290097495999478064028286397326750184321296156854028519316501924890880357028596274855826098721170038351286732244980471693857650798384544677917940349525792644241882702390897501431351742102590210699214720777913122046948319300276050685370007726612070377898829991198275823545166302853781463023392452150877568556050066819926373345517844375146858834646401296935237613390506377841974043014560673146938600130298048219384812286297364984070267362268292315417194713722426683387423229620298302016447652603655763416194901782000566182536769159997424074747580490148201726911202190741071899234252746336884164623738993784334062310199495640531114264033271643933078511784468676651591463525841111654468844206691178960828466075483893207815276621819868691464633502352746577285058628720705868443663552884118633234838828867130834428623272194893962699684202052613302614803607797556351198244749089342820167659376691146976505875786749446140807707904188620948834297155442340550595978555301144493782968523882011861137539435105342065970504547444391720682731068350843211997337677210056214343447760826009830306898405085548423761059537081518585184816567902477449414747303624722697081882366001611550736716063213272678916284164467070909842762649587962327958570731548174921918597247219978028231356248710941420427265290477164347580700429324494459011994867007362293935636985334746649724335334276920532884081008757062975754436306803920263417386186879803093533455668064640242487854953257664306052422221304532069178614608999590700856751630789897731198615499520968941167434677192005922621124341347403390760585572152792474108929517312089681746165103041584742987976261500897100722177584205884491161701661323684366274312605696095175471609146808667690095017805534959285385598111415230818863456950161065821119596688870855730095935124977960989868491866382938193109753094123828626883161097259959023076503449909198640523028064965896768208477805623773209802469551002702369263425470942876224425619657435723206871471894586746928447777552457538563289969018654600391947017974688258533438931337709770603542142367404225444782768936119003747155049547936402176021692884105419690259541517899769336272912468142597849565980835721411705090397330997242239015178232381779789596514247855524015557620573036999042568560477370359508283204538763430698223789851843066784847959028600951928947887590323436913346164097585387536948519196289119126952556147075922154405313456774125286594861161144571072363487968161529610167071101789284310915003323915643057457250480660519194497709315547186787382332156069492609718405792706930949890968770397243813568062487404391431045465235852760946215570088970054277355589585782657690821835621865352082188534033552696192067951317354649856988310342973747995147182960275996278167486695785792792553411193019761662300457666846717550590090820739430775261130041452803669784941546765814336770365124478421302953822440498287054212847520406062688362400855835157551275307839455106517539075960016374822208479538162843053182158959263339038657326589602109756543875310975423830296880423276134509228504310904942135099702185141120125382580823449436471002003820059288113618126626284011261128804761380064507029429387910801203813437357970853391599840452427738965776171661106972767874755374940639649637544752652818621866201966569255914609258062117401334196478181784627288571064994804644691520068497957439700511270357133941669560326840209217351217786945629344818680532621532472285758296865483336654891096755389599649418929736691569377953292701587583742807337578643271275258650009702600101611017288765261975548020045950398712513782348174812381314844571250428237114061068972477329935872400123884529965868493062431984275225241980134234845253378511233094454832217761323486528457740798739985973190423080751514445788152651755766892468115899645869975114983429041226490966954517826279595289495181092678334263739655161206577219549238020497597843792342326330045087786123663798710736239493177837628119146697521900416866244675054922630734346107447005763363396864543699905670907414838130765207301989878768063895006969822190889129300929226600952655262602680017958958004528972566765778818889721627597372291973510570094336397164368450750548261686658044740748278964231312495603267989476888146213681443675934026740492560515038728533608749819725076094857218216911814464465515127551859277386869938977664979947255336620294421968237613989644240386958767189834227354069905513993956437645700822271505315218409624910269249652906596421860000455434496762220569912083243853766037386051478760036323577780574395098246208450133331409260784639121606533915398543086061770988919714854257745378039386939026056466260344032754549051358615800199831558373948614297262812090273769748575354991852993863689696774700980181001660190914515632481851834664847044476040275836097056589105400404729779237746985855512096862307013040413932057047519249824528778090827412540375239611448896509710650622445655308987979234490781026074222508154086803785721793701428535642178595794364999152499875427689902890186045754685728550806879664355836481509767037625193563464563962991174488348328200228493817959238723684480370080697905816718747471065564764077869474230030032518663709736204937472541555590105280832788997782682768622557826940265310281333293530817336494727160990082355974958129116998469781248922248095628373792589290476253200950328615725673890851689312328616617304118674265730595044338366737970176125552647220249992820359476288030040906536697239682551597614408008572439791841928183152215887593843255813803551393093098166415449207251721598515606566798063803130731190989137163170473266618447668513652960936719651654683317773288766199297078206006243421694631676714041640506754261199842685739880434041854798415322064446369896123981674036969466331445110087016953423530378728798875786689873983310318329677157517775849857489114115049302800111675195856787269512825539820147939308955207959653298943704162009809226835226155336085651879631804075706469060103712187270368181956586009695267416049616707679980163417681167305840509656009242211543829062697609626787566010705548705550228243863167524761886119607741488360292843812785509116666946669675953774936270656074505957829571735945455403466362999798561161288456678796350546115880629523098174949054390239482954456225180690904835859897829052695887855755852969588435955768542178164234887619081768225923884594150292470690486702762282781640899918066066869788765839263995787216706902666733949899027400197801199988308497375440231298641514204395497798060060715993458045519859862478219020808460436568173189397452710964511837180580204748004123599915215866904956174181555413036287379474527240047119474500602012294345411263273023603975829751915073205369163456697936420580998339747184468732737755627864187023957735572712999245204422949003813754772606793185733572744602395929057678726911805137155467800058104908849925699003775338808629937350295860670295414657177862899240389745117557752464239305742245617820502979260748432578394438487119311477429212713920457092998286255486543502328993879145693626163589479461613672175242603331509665263458362657408799971902515781162681395410604824580593012862564049173448490184136036440377943754931149441215083186720774945229126716858599755646871022679903590042359964646694326136565514384997305654942925556681452269900787763038181211575080867646388313559780640585932842443595525375311474611670539753633083859040029071278436804423305258660085046453567048450667035400938328299179785551333386566546066077851470474760730114532533616230470943352362675574667407242563184958117883324597772890065897336495137615972948935026774333968041491905490643853132676159702366411305765799303297223167915186756020470614793537950800580401521693275979054370489859848980989189243064572466166815585529987774395338616212712144082748859569630502934217583355427168728766431730277062749022497795094642189874350024544311058823566185187761528596568045572266874944711249255146731393143542225346325156615935723254768064515301326224931175746300997377623881221340412664897158063200530351886071559214809792637048372698655774378334852609331925138895848626625755205276388408194079814981088264861045728909168258421706578224107124549146357780012639038420846571879872963006847048845135995887266967189890480727008409743333403183374331674001213238697491239106712647631897028857549034217731345771946987773876275026623123948494699347196144760726128761957823120193455868958030061492247072856363443569627806161553960745474356799735598761955096426072996413330231578276319674931418199794014488109994359762927563342323094975170388239931081798871930514769438765148969190063702030115072148198712500572270855832564642632264959540030588606442432332086021371975318156469718039333299087220850280818889776378022971442353723721414445824362516301995264583164823380663322806861564124158726481246979349565339747474889309544529808089210193635834821919113870536287215056448448492496310814205040171465562549914440667340146103445087758821338201383734098065321859935650703399389362947527426735199650937695145751587229776372889581604151114809639420683172373683068067132488790378720166597589177241068091188480600411116836622745711953138434481914027081230433839513094387456205843855054751697044524173821756118873340749588845848916968420408635352853223692226593764300149754642504425632196482719412510844262422476503639345704768419939469899142473366233251475314039638760587068528669557821842284997002021630066609844255635523280127903863999938006143223195455398121019700210313057214980352222697663654418794345330368919588423205691965558021821387009420266883789021319925731352793381691728210274857556510047050449562266028906660179037253708490473645061594533029998575036810820182357183821168974812797986184898466220714153640050410142517419347044871299179264843760341420470105936035731827127474701952347013827812234179551306185094254459919069509681093281585258394687131428666775838521455641690120710609609631765812308953664956010386903278596106923675898968079262317821864932396345333802645805947724340749107850363789277388719741797801685612246795904351192412443681012328607655099842279330029595204154712693035644949255443737255286328766702272688866799958999581276010073455291294502470944576994036200187392735295637661089501632774213156571547193624642111216532802348145238167744515884030882212359125950205557723715374721918401900519596880116697915578485552243285413944154644554240977996132159262900107579857883374880118329334749953053044812815426043790049117980276009828841435814099562222490245561468519349328799543013484347659233058622788729162017637063726538672918607205219915889315566075455035329585792201513262029254412218334803825979612654325578851640094518238938514632647557222608028558829190428815033542805503205083846668286972710558145075292753575155873034840701458333718043841426720398078822774710293770733908525811819505877461231950992485570610906461182435838104836480080584293459120069244910110568592941822675289333956296393431237159515118723813857217561265154837039798700701799274580025934114651701287654575410751319623126507494910191018701808045732741608055120597414200196875949572590803774905049794364441155933995319687901196048707706407036876493635903433090555551488823480179620421796029711782960464675030930753078616485850576786446952390738096495918889672636779749319110518773925890440969497766301157841377515569070903493703465795395211222340181008589462204839065094196118434828505447895451119901450712446810963519769323969428610017365809017401790359233333430990297614573911651209460869342891170303468739415082833735199288370785210153150345136343262560500094091348464157532541987603094185517055817010758146391773693420533194745280273568709552753954816396255903474232635994535435878302342867838151226131520099420221354977562965768140742638456381632266460296452749973119728187159477856515375809318552046919799277300624394584307106103541533002637120272331720453159546935909375757350863669467506308940884611087565122323616720809474211639401757289092771494294851947163715567739696928313148403130495699683746148615073382481935599090160409919482604646305725720210241946395201396680820451518919737867139882129232968544363957410085568691294464431502680378299097699393103876684439434878229055238167123204207980965011476377567708055015601418117018261499141824316089217337989083080675980513241965073274059508048824402591022820375653238381171194959447243980105090830030770904971526429215463056122085249589849827545034709886933490850990806502889274841318981979575334541845610792271091605773274783697934189441031239847781380533938261483809171153573324240739177159853844120218134859120451263312878100408520875796120478409387398405765276776205014228011935213055931492501405605122512888500289765120606886215352637046521187004662383449601845714922414680005410055798488157647003835891777695093104828805341924700277852145999899643765760108164209424544393520632002883448124865109278403212088082550257661421192595268580934313726310847293809937657791326549565627692844536618411056888619411934290550433358172301334599185004412004890715408738733910188891367561424678428039733810128388943688501241259792456705210111433825310688450599101491238909451137864495940668829771984162230181246943006639294781851153656329890436656199731234779646375216636957704814628773169957209067111146025808152547967235290062042189568107399546600090962371406674636834328657893084655625555463393116015694383330975247332608978884528593134071274734596402594558212629157820083175994594730698349365178091317480177785561787281856149294356659451261344740631440035343191289110340639975892480416806564111971423390473543043116488151311814152143494004673267689288185549432980333019437558549226058068464362960257507191114640704293144172454372894248242443738424034181594325433769634890508453042312231724529922816640754716910097859344833734641911458163499295372188796490050603953466766804443907768415592153811619016179495616033495587355542816466088865219568159344402996726397819942033461236303068050756792463924338974464838573361482448490808218591063369896393532570413341425629576120281377569383465738230902804994883762882390942519762869886551495370755492300788959912273196469217056626416949346305648075858600536472103955010803607643729155254262342896748536924482364936382416145558731905653864039235639886537318934442760090342267984771064271295319453119599541032475155277110503274096771286518293343666976150579283042293609744823293395768403394810551205568468730651111530123768569366182222696055583285891674850748998547073042393774427461132909867128177006561075733462985272486626610959582988627548739935297662656409446960269640282080080930092982756352104149852785559131322188776513504011367542249736534740857050496281728253676446608818458538810526844130774973814446142028671053775658754891071589079899390909358451488220179262206506812365333819679686536310208060259007041301278831136888703562421464369594099254460944029489604384535234379865478588236498495934200549894192920711188314806137853066666987293429297977039640917167609730967767643054536231755811034422890024817705317668973794049938567584693429387669259414668773544250861993346281587385228015322720748332482218800036031179861115934611345240237724976251547487678338570050883104015512038266225302373530459293945639525321125260952049473229100400395027408044209971349806683826704877016202082006442156547554823194756596811916681286391955245613973775664665433775605167358695906484549429798780853910717288925283285085069759948837297519343204121881664030474176895219034485301814189995050153421177611686752282580707357693869099337040668073460972623660957102796729140307441569421008040479615391034559271448289946819430087828836707289999597043332930009821006122770594904753799480370208303014577861016596835583289491385077992363716705894902559794949299152949680224737141066226967886828154475565014158808352267137853589417266181238370051914491470372261484616118971194233997769556117487732055454922290921539339680510335089778608837923467055307688692773727311346378152010220343131223115360717875807514335348519692479707994678591374073068188016271707140304527881023548228071387366875318612369775215272084067279114362387022760898570422384306225370472582950009768465322780994042374470426461312425658800176098652030618047768653765166508980738033449199211498798819537123843108041356424273655649605481062940578243143248911284985491384792789067049088425541272027660609188554654821129452325617831669254988319468657224362228273313898041562613103683493243545200617599633755842020850444117400628700017232737475709856483448485081778990411601881752694262108561653070871938111299470113687451761489870333559341551152216768978901797234434782028984606228556752807412524450305154078952027345008754033873651503487187114088526702914061613265920021285264722563208736879532130377700389157719151605822563267924318050483898872481595290380934877859414970019202922823008697765436576691477568784919899993986131633364435660150282022568737050918044499183494886566630440097118330204322206674156503240893971691047092791743273468158428223054015032834751843413507551149517649235982585709678738346362228119934877264209563348030206544313268250635138992407065457612067551126451841910776769266294714577945750819540087527815571567080931701544902904769524496839674675551660811218347383646394618014592251991615387921768105446127443670167051004714307527450590994825039256818621417326180191055468536139564318505252654564844033438007560538438030623145687596438199922835806000927342762140269240762802685019494571194268646360925771114527228522106392961639245270599589655546490786947409860508214459508602378670414074107962869686418179871256024790662787983293717467426697771901455636195510291756230326607434729304392935994265503268987177257061176425592912801926881060659027681139939026737813706757228950999897414550350066322797355306871005811324178820992652465800576554747019843401256467726374295417560314980419329514531277799587147990074586613916425086811314712040418862515213450366247569317414475201752690696624190919559242439267796760280496650067184425851190451065328100009674157684864464848990059129525169831736475223530233022765932800095906907570662903765045192434533005631496648235216268527347265163862641873155531306139678607219343642625795931366564536900394480499416424530820897288944469288346567059306314328951057386686810203191205227090140375338757601646690172228304381104686453569723485114948006563975715288096050286739183929830116776507441095458447633034261598572294238359948840971672778373576996699540017457446153706376124892024002155738595891473186514664538027414492297061049719215668029020087568440052744699495271561505250493385388980604056549679138118233697295103126504602587148391159414713125222710489227553386630933059163827016132404869803478668374947547366142579835247828009168344669311370372239897323738388947952380811717969499652251247596473654324505889112477240707353147121343923935163515895489194015141872746505376456880966954669739162745501382203034739091580245545624314732279209273494822369143992984966078780740803637202045677472740090835229318584763043292520065276058108676830076840581066078156290795093682833691806257327431564081199063173786097659699193480418761672816418471659365669116221008211842274509395422743474290134428301735169330628747973651830574261335375332506614592681492627231223813608042083507186750359548876920774726658688981464816710053018584640241726387902107117581550073664895152642044953708513859202870821319616752312109380415620589748725921463420857725673794071709356194884608914428348088992475623856842973902073008684317862298071467008483960406925377990896701252381149623880425629768178294972337786326167075839171871887214397433266603648100879910554119028672883819441043064161304953987543016298198244154035052937382201833042264169683357074293875166946412696292961191749097399584057766101799859658924866055721156221892297242463414784335802349210511542208179625561251787437987060807156503577833206750265662263308402101735193009166806910444823098540311814342297314869674516057627833395726158723068247305797827791888911473549107083277625663314552135108139998388353970916458641936880847436710479893967754773132597782651093901095927894341841923613819743774096172779691914438082442089927486772841321136256744146019846739266159535776218952098782406177871275575537492592609218790195968973582188195365881604757528302959271737809277520957002097174212400827462728801312975442415923872488173164105550315993468299594052809426232304307652722221354210328769793907893405020717585174628894392998444360968887796574616102583788756307252825576859584458426677398844799944935014838036577658300672286805338505514425430681507186137910382596304396568097925656785429680816745757580621876681060052742413712640607612312426482991713956129411286961510357465326681344300981201185424527440183724797293536179337156560637480319034555281477420717399408660462250563946600324947273963124467591927809218946448100978018982979961625478213347097096844420268887781528192584889035299205814055268719508694227412802166356265029198775032710559709197446481425574404319186068634836077639755396074047223896179505475740613466810461691393124921715573291496252514372367213719323773314325956320764550410277733320223388181814916592337419825625565477639351259217386344752339083878308722290146923212762803051414036931384246997247751618518731300096535250642354584350003483412087623218027236449118180119562766471711259822241961860921192757996164312335366646651335750551308460708780831023908546453348247519293966847056076437007590307892614900083183959776354102618498076307381425389180382375689313480791631260903724507680647680539229495750837170528817813862799406582976030220422051471937585044714783185158251841099421630757496238821686213416526728550318827904559637963546699136437888264799366876901707778163617914042551842102670072217206321624089560790704538607189351820066387621240731778198470305970471359002806323540879062631709800963699013716808144301427682290915335795097684023218061927474933583618071531325989746699398727878458412976319814315750739145153710496833302242355453812253252201949949072714799627427093288330632080597258966242541471488770458499347245271079654425244254437833344633863713870112516961944156730490331022198650356186697442135498407956307697702771315667371040553138052838090716782640771283489857901624747786370760900253850421708441694600576711549361726362608854936153027563091466564575696330403063935128178846874133531064834870079554266497671664322848099827979328494587753099934617811850219897560971900950238954367738620791583688827304868571532841978203010004271307344572599925511564152695783189292770792258110421388943428360052228529894650449102967275854291321304145960517129835830588176954212556124608666158226597819474139871551498804972366282370782231962015671613556264674666649011328845728367415311535899933956919033330629707782388838476437274527187264383510408854915684282104243175347169931940443324611434317033583765697550290420449345858564102703368841297911933433021150058405461342935742717343434973532456447483670424766020191075723308125179959997310230317284816442084349429749616341292262359520723731229445329101724336617303982841003704686501117406937872298701331455944696820591154135274345291191093466433600001202666342381131305267908872562474281387841731705593031597379522460421839100103106271222271804103619516225681330849584400903889111749032527387474299704980961491945888233540123078356701261592637176746405894998944967961346694984890163993227395885410088011126338338766971140443729693431740077942448632062025252334414107285782259316559050615060744203334982284382300171078296478210878548815862072799772722573245081495748888830630589259170797076556545784235124845348865459040207212149739685165610575905932527750425976487494606431283238134617990794004975758859047335287097325386273706771881373359147762284828990936539200401919988994251716093384706742065019523395931007948871727926167222235033898297811760933160349027779687481731702314279210331396993227826770885806281712387695567176401927586815487647411811838990209837776704094595405795671270450614125554612650086519053186151554608797590011873011492076483677486720820869895260092202609762148696957669427236140542081196846490500056072100051263012717666446608564124986378429536769613469499712983684835591220419592196753565891892245906268843674248422377771282945950318227932058668164155990342299276943567364939834304169191014326382524737917372326689559166118785349526901997999303140621980186566506132613954436275352396929259058806213443142147000428889034358207845388670602720790074939700648577576247717977003933254009011430538552277920543234221606061971559825340506493297290659363035174606967647391656056992222351414855578296690528966615283944681093287214792654556790208615694787048548305172444899050017811305659186345872069125575878003539768232204404124876056577239740682109267485173299845396454152626044489690864350214129306170577362329836400655450913278701167619717521060477810735805600557201255412066260933610395587036532508860330819487117332641378475416991721371672147703832510325490094118565305826942329609081976338981954143014940795007437731321732661492374116994667970695748809434622805473547904019208836127694346872687775676004699610557911428043803815435823203714676844576002125366473579024402180467381998398127034845763743796024486630748888211745368784198844166350703034989051549508618548163676524918619325975835966691806906581277988130274685114222869225915028593109192833989270921144645521678400286781638825596523805109811944055790066916485419529873680685420348222291080504838727829566329781706356237611947744301083988491801081787377562055248316496934407441802884018141363549956649336697506531291843920770532188116981119839987143778844108082614023538016248202000819730835598042092126736461155932566570474292748503783801023939258553532919565556386701842268213459700607638367849637020560178872773757479986182090759193324354345571480990800207983183161318057544470014225463250059898193021850095430314528628684883707140999153485363071229564678165210520409154109965566555917723367002456637130106454494111562182956284999143628004297268782517037784083205758967361578885631235825480172191433638104227542968073095115895411473771055554799476529769544532726812214102813758838229164500339829693316272898270485567291220031774089237634490857785856045804257683275767349404359914244226999725140241514607190920553366561769596836286620007605832991959275481332501639139198891184654988158664066732335412723519778613738737693597361204693175844939570858935471634572732312057375183886969009469115672655340097062644938553743737531650359551152724941548856939844577683725385116782005149663173102478543770678748349394613460837813706279958078408076364823236639792525561480010498721868114704477030120541031860553340910839947635106316550536596707535063304783099156955117774142001958041117523051373457178616274540187113369657825686084559577460216910786468873244595047530469189717613377663066623319209718224127994679826437260829043679110187122752021273866532818150964886549530836900701037761157187112406869925580428348008915807485635901300575743859655779380423473877702960552725367017669457151356839254898553084392501478440139457449714089102380122152508293332563861900009329546719104623115904691205583599684044610095796415520528462727724651080507654411901837724355078885719896512512456637135612514683048409801615177930917264008685049511404181118681385953678939811712019884409515097597195462543697315593288072983140980060927773465549720924063384514359993261702732595394621347513127521491581818619583654500347003156165926995253449579639208275841771529152200373205568354915572572120729945779379959253049192221108607529906488405457373709269604663028301224268853639136974937431360129444286966264379089212689114079389372878904307314278496120246073496408496430560472516545647658738610986387508252063470790297700387386423056896002344578383024976832553346929695295437774625176280974197161658716402529943947198580377533412819777526469734427386105035332288737100237799940513101126317007257601024159949862986534413136936347831503045997731453656746663030686778831234238400069419728297480697171035471676761332316203432090170636929326077762995019989799499791691932534899914516674913770110446568327879627282044849496574577502506916634306899696098638246832473964679527965201224990759699063126204189399932585847415948611060360768492691466134178511593185023303613632960049742628292810635217244383801330503823090035516880418399715028752926049079616899434761223204616198040703694692227725071117736124270624132660599740258272167395195094399897570177535507246623307120127699870667252923684096846788929209309851299345879315396154529767902783711835089961296203811991670627766862720355261941713892377496779163081106217674664346103758241239306656644686797550821441356591050369289783286297976380200304129769189648513297096115203014052539383933480279808126580646480444125758436130184979630737626805354236600159948802318466734161882034489139343333650940225566053624675651068599779580403680299528970212251730192783115360688142949410277124292221245513640251274483057208590472153216551551564684094367761773297385392658183654631479280192496725467123966140903883122341882015686815212084244227487449554518356646846224137963312423192985970373502996961170111441587857256952127518341199829386286610345684933800025237531824550355844489657527396712074296802339724255112991337949301751811314856397258291336603917773123124394583967077826757978054333194780546415111941318421369290969840464347482996224563885891772939046987983803595849726587098518003571989511585339894425280692976003028699607676649494376186235990311290686579884032148126974051846692653035457851765278270555378977970857084051226514218265179764255414582262085166719911572000698869175688999849545357127320584589128908172575678029263940116225679921224285417020423800494842686810482702426576952193774555295750071369612003818362298046049482473189247349201182678892930225018978244419835331697604910292700114563367327021846996999101534802927135429876372036062318533553105224844378542070743468177283452085450745458491802747287461457425957263621167282588165561538364798280457594065568261314740123962700980279790583954469955899948072977755521395613935757224518173145948245212232293977144242954802127167021480809936278503682659716111179522525457427230399789115957945092117698998749362022777932601725000373616279063942725347071941033091378230016358774999019444321600365306294338155854291212250549028850095507828701999595081449785757765691395826260825716837252395521108459810395244377868966559524664436569403873637227897615133474038538652977427170270697412323973125631517209874737621644796250637833659508978825379888155012212294712532012524534269206059258127512522810426494168635742505169509836380268698017562642671415996637920009745986604207722782372743636095271986142110447577947886169064666608217226051129049650095438256006740582332530289060723199446966745994984548172054889449261350630188088035239748619193820760255026122477253985656360509281337187525217234488535159535123045715134645602830094348152206239517546621553056128533976034295048257365917464656789578712380747811047171679404085256821210826143891593555574524425864470787260042079079722657718997652330866139837894824965805843750193442672899525195991946638732912477046101607284744791842953712471674405414376866195793663990988681320415995837221586953722354573954235018452771166830446206174536462722585247019243678380833024601226264653197686551023369843789875846073213206568233993299510360694521884556693798646646643359209324112722957666325180099634971696450293974078585534154138428453890640116973920434911972153619763184615447657285188938798390581960215779429146190150118028988362169749250621795382694345970335289347845032662391533901852553034157340513128105655652509943312734728565755153522248022549278568328713945460667555721133146720169012092536816947754341272350510367538046272535572925251014540655148744036442699708493440257084361113639750045308366526490693859402047271331399888368921882237098062979595613008924736278084614827275136694405046158143867270829163584033536782340518321552852951582810474745749636318857511075199013859498618396236119415600144381341279361796746475267326822969323915073395158191980082682769201364699691284727137878729996860727153483306811073245189936528845853035689114929491876529052821498956593125045089089264410322817281494220325350336081083108932699302385028566073206784668129904668610562435661858321052145051871232699604036831946632913968694272016237141046106395158920401038794746898067368365551797980609550585082684686430122244729577782839900222332480421302241927888022167690460993795056299376432165705692815063901264238297677591911681552977527040057324698017737856586748684395552939766918336614159746184767945526056506400375421632911338074943500742669543583584291990858503465034963478912719730814268729480722535710939841491654528862231975706379187074284433693456024740106889200181685126559113612097088969489481793454353868817290748158330254487959172205650727494808163421585089534735736756212331860505085441824645100199867633901531157219365957802247569507380723165966622866463465291366593661111065367447183932545415310107637512099375624500789332090832487402105267729397047749514409106220360876015066623614941255142011879075386316683504931895952960818124276684668680081283382199081451180686643349516200211662080760220545371599325129186512494730832724174079375295083602371512078308741705909421266905034435121590431470025892605015115277716903000988844268911313706002642862514484964102652873000451503557596341380389450472887309463880038290786187671151436941326423798630511569276342675709714920388752658093336800027559968405117019092479606554573679562924034140807936624954817213099793373828406221971640992434879754686235506391032209982858353887669108854358078574457278993402591588146374080204485437625234305784101912221275626305760965877013993682148777396887044581980161512935743235910664010617020776895705056158277560689373621578324789013925372713532449428518142811173088591673049755951701857278491605940823385585752852767110252748115439985230674920881572246338853176541576846405204195985021657551706989013397572191284879615217889442323079303772642419246245280866141057705852476862405395236081939912274037253777989298800111451489800567362882279940412210131033251060956914207091824821915117442758658240556247869005739061913617183511634360668945947166684081728015761996799496410227593035389905153194212673515389131975828117357992359705079731967630836853171007423849331170454424949466807250618825934308294685592367501065907779878636857099174528388074472934977573111270499201511385483286779270369706617838257162064973746924069140979114976589802994401012378822737018049526178179954041654416927884922659325723536606647457610359297204320299080874426847127547349057524172823696403308498305173836461676321037510400307943677737630577336361958150739280346225401213070961391177251096561024282839438246185918752038195210261896041847708687211727066774915777093923864223607121681457686974120604539156243429905513303397481276275803561902558052627154415028817802937074963305457114955229880831515924532457170872663999693918984419085036750584923885127278905312832439444901923376643833107210357736659353085052254811672522773797228866989233975663110982158260236136695025092719693497264358210533768370897292829858257170874699851712129435617545063125376680347856360826904426116776627576337900141505727884039474104739091448924923464265441593718602960234158505810820818820500327062211733659310256092516894858060621713350208660182246887150053437398093175898332362596930706026671454398471115564665299413091076613101019382586780530469490163043651444471073166874773351557432004362391778910794868246075361309851038010869219912917232030555050476992878842249840244425189522196703308544206450014437713664890715129225938859172300955065840326111834567381737659590803389353281817240360295335228318461469830809233826180723007272839841666879984751558431294197490643272725559318193761566134557181459041910722847972784593880587947862855283520108501249263194961353799919730711399176973425134114732340504149489828252892987817245322223823491724264247713318167850548657186872008481496149434840915798210417430165726748360634502020231839173620821083454551984690665954604805121522833876861540478834916027085026618080846953998561748722447585560146531542428654935293047500693541245637011904686582243833410594202905647951845915195580406450046412432453083492176347801691560943418374812240480821555832296850878703562020185185915006299133130903367597613797981978085870227927356189346199041831113738128375620190151678727226822162838417393108504814556139339904219872373731276064353441275056618872519245381391697818102677551482117177809721914131530186698085352040537082570312034215532725606101217579326133771686896598044095570328022503418860417864912818673833818232862664331304674177592987761827515227751501254141847543612520079086224763511245387697896795887908051458294521971131963451488725778015500084531556206606757310241304195966490844626555115107112021678102457350920458306833973557618237036348712265264775323251008703595504891538601074758935975928679469926398930556303562861812904694879067505237125233472025900342900337847488457804933960196916079377161809673792375265595212220770907443288478329898882937474006732351745293119779257108917497653655458682666252675474119264464055627849567508005507749127883727104065273542220537254041648130709845552976917906941296403411503549177524238988494484695472411775233204782272548478869701319786402139386807752282246435595472129359685046393144403355305998676530535884679898267414053294132369812209523725180894452498096507952302911629448296927610782955380767339559178846133679844619589448550227744054749059373073424340240632934891643287859329144737024183803045420118910471892811993711078558053150355575448745127253562165569258052217389073655037250918223669415079314575055694261912325181370683057884354823745378001168172079369743426875741857738874910086529250659613539457791454797330491115342155942001858160399838485657172676433085760309794433131380999413644532762158431199875045073454152376420154057338114549857945823754924463071981646866132686628064779509250126474571324654862795903144640431417280902365493130349191482267187712534357280116299599185149531721520328179088501769069266205164705888774136323121055010872271691208084985423347576783266424843586134401398917631547655154959391679209761321866555791153798977066275568032338636591845832349984871630379907332801754285691862247896665071347489528372386424977003407448892999388900253349431083698804328820083524248575465929137616014548178411902887964651993862397709060489875113772340046237461808725107441371605525840412010353255505113595638560560824837490070853692684268414221328798537058973988364013169531525934424065125581600873212625830089744511575509185520982078948010056949218091613946646522245702928252330681734541786681592977784953688354580519144291605922697138407391653997304314768221156493207325151173450211384972196947367400829514390940730787973681361374222913412592096647814049082828592964731897816625887571677390689472830525241973116636447766100011545924116961834211601210683625711061800422319758162469093543449350435589091176693038151638665395174233282161425115715775490347009629313630248246276701661215338999536164966048229245977545150326151808173867794761872035922547503071038411534235759441634644592025910487638596357496711499727309765549143173881662624153928476487737124030788210361552110112332408810867711073725779234832293400106186612251623914340980081345238062169866425137228059763906446984109456475446469304650597798976655130119339483784516966071686601866833621265179077113262052124787606168206395736302156186215992025786535192744442565723645962032941845333726266190306833110990391590769029543451281593058889468444791305298433552139910111133231936086874043218549505724333832009026925598524189160166957797546002283792576237548692138122338230897935238297852828593005051577513518495615078617207507484795669800018296383625378431238915505965679162521894126852688610998196349940579607663558657494399742511917240046890687637993794103988194724069756588699468239908204797111351390895899777878022599449741345654016907134831128567503112019131255834444497410489967145790905222876468402584592602260882374686239849012966368793370068931040417662828148862828679015183742483799448861571442487369679803076413109226034026241813175995221173522143291371062953156567947293264449416672266833812975950873130296071068433739966778643468868675382052152980025596084369172077737368818708412780897705498782361621749379998583178163043750578227787417427135029714639618295545934983136108054656710552324480453215010349666063630439081928039509181213324844445210058380307528941885964527469079320907210935239124025867330945413043070356204528545242633877276516517809435308107865047854331922626120466410089415797217731780073526884595236766143032415524778147849594130359833741100794461636690920870278399148466696184071616844831528150175444277240638903062119665351471921530427842992171026185496977118421020212565672284540559584857422040732221551348616014288280902583930474571399383718411203964200604507971189099133913553159828491610466888311003561907206936533871439441064518332095570674811137894237710083061657663481361644402892763650598957938359718586000273028016039077192381584694267202203796538777844072685616053363393417342998317368106843059668965975117141266138665068910322117676864416711685290511007945541876862477079791380589265250910988638336107023245888288283265220781556325980571579481200340669752041041851011476821208634769478208440409619411526923786082765123536186437857080871059080250579972516157581119259674246157253586809687652472555336024587098999978693262032528370004124255592247754437510728369924846572324372124443026511989772549068371471010105662338336776666650384677337362272651092473702287315180331861560765918582567836782192240549753054572266214624635135383375751108349830821937101758996020847103658115197200851647085406037351390068478184698728162576296112407599996587138108662425849832562864516323386638795929047779871220544270787581657669591146077969699668970621481888474491248247683678913692215075290410783819418541431375083914286643850251559639658742321161515909009045524076508182313137553159670287375324287383371274271419110827497561721963365175712931479606258069889499349578906212379266242883198761025482264276137036261439661814716754038973640970477847179895804607828807686243270376711426082732950635149651687286208122470443407590033302682755686115700817024816390372956782841987368725519589285809150470855318815852872210190878782452337434316793417496509076963547794367721966778525036216793957421768264566683951015470318677196558820378245938688074936890727662664270703361842037085347874511023400099369349326065700349074363160099833118711697617327402076180678988021955174783045697918947277719438003182144658397269239254358424347546366873563042719191727284920955632842189092466755472196845269188081852804401792249621428752524832588554576734257342831545791214056846858834651269613304701554435401227635751477351109796911529847405017511027880745476269047446514748904301227992535443536028405975884241431883046594814469420628723592784618280844116457145375350565044406404629058163488414057651114739894436930473559910359352726097200321407012726009651305339730974256762463915740519567260930102540110806846593503766783248689546644138712507479161195435549189579000631677007771308495088670494431124791930079721721477929646380273245733853996811260908799665124892001314262502654159882587812773532964267848204238096545814997776018228726022449095249015489058757128579185646686696623405530715639826260994985367089965011662610157636948965797752999293420162568903076878795737973869480311329341481361721689996222119466509577041869390044042763903423318854057254558428488275917712908990717012313450102958712255237411699882901459261847354350976344686478933986621415738747046340462659538229515388226905630375401630581132390416661272555606519318677527694913320675282625673111003774824284255515465404075588309398144179602194349693840737466130628179634155432553549715142583088417763596667541578745836105162413780639190254519732618400957005602200184832554939938025369345295282346733542312309417231437171098310848537316797614484445632761584710343855289094641346951990000556633322975346236341121473182111567161515583785219247769744589016897965902597303591169845071132732837192169294553757688371363425949027296257650456825092828401812750431783690596575651630499758740822836501399267695136541093571512521241164550336301940062460821541011961341512575077253694582427912834107360121617717177516630232263541773644510364941237194229249015857809546525909508204005840567436072745448586964109595891079636172703289355638658516447633579091621842193854320599762670038303244494425626863167625653921982749674858828945944747615204845212953100275479471400450495106688047943243727375957535662527186942429985144289249234685580380341259683740612540184135044441888222043189815980185841690741141616311506449493699314352990513472101947687343595765397044179748704279409078686279994305231982627959099417367153814132756076730965635561433682303750382676632525772329323422340319186266793081897392018679972542114779054725178561067972091011278697403040975044656942228897979864345098674390518228427439743797882323615899275086536951170797013918031506319872517552191261367296816140896784471600278752851979227142104124513119893011563115653846461933521843492020185824449529114784083411860122229508915970408485667064738881835997556148602341871179295953083307538105716072898194783316701547191896567761750300508165719031326337693656067207129683511255308198535168191848949403856211693747835259419523437928804975936524349592731859624127454413397515366544575893604849851573312835312441959142165081339932633675485669501981692246240968097556046789438929607689533154176072147408412632036849975903597266557824196971424395378148893892869456765141169980907541518221777410933005839410575618504851324035749241903248895575788016227580396647986592094117904764898401051951398913645389870067651985565705671909350203279762985202199935358774296200513266406614921738893980381767836291965195012383802733841715548980845402038727635188805267235120914062501386907327330269608521814202130223234109891298777670026549455095388347451258629724910277576460153729176729252759487403752667428167292946582747279824970040662581491637288999087165409289443638104691689706081679505621280532420315166695113721935288534083327988786621481563704866673475271475283711761894753226467118337002606769747986108276781538616088841866035520804684307014101054184007293310811973443100865220795625042780370363758269859591635622224200803939429154891370998300641277920160498675904804858328843707878111439229402882024622981306027893556740405547207304985616734882168363030284808465685302454168311787849106000563978757708825761756676710516505412591546706572866362308821300666916485417277896218547922930312995996996553168749695387741919306407771431473565685338640172177687255909468186326779607268930035646805848785241955424577051079380138377415882485560043401141775692587531763587606030253615495763039642461020212290400521084950153142741426019242119029172641162443713418015039878158438777815873270532522958254413723919675909315571435786741511769642873632605500733272232978501850200775469279678968014644772497751189941566992516532421322307108328067019163090357380737181579608450738913627062069297074791938429791321207522998716629002066189568974411899075798629036028281647254788199460256719856339167879069341477628956799371249758699824318470550861690102456172226749297858421974336353124722274654534638257473911144742384948112123807763167794032052892650147865750261207048379954027453656335136564197251186946790320647240677764645002933471088326209262592413882998807798453869961188192135115379987198528336233007914792604695506548270437446644517100189826619204570230041853635772327475840637809377672873654286535773610124113504309819940922055937232526193916550008176102997686901663152894060208837912684237106962737956725438590584203398914482476591829070407255449814511902221359950632302996419306884142982192628291740326906163981999410050614480486688180787882045363830008819873995686077936908670014701591031017195782364227103282563651377098415415372213384278913807134379394812663990888704785498959103907606234516151667254760438570107307109744695971517826350179026307887627190906253166222718099552092496720511160753635203284853847949745685944378761865788889762038220232298572960966973114155327636820542461601373782376475346271656546165575774677925149306115867110488189460254391805401115741756187707646803039102884893142579055109223463589728914080268518064365318498121878971554673576678069568609587776881065199529076618223168338085937462653010373521894928802616453853965112135164163348376155819655420681120472248756400522876715178886184391908772343475860287546305328204441258146497646353378720522887065389161850735382474979793539104826035774642065116791787891280092415821993910447438043576285593013329909254151584890115204197641883502732435657814397545669951226387003125176194659170438465547637536914861597263171590050317349698641093386690119844579039048369667320891696956612302129411552544470001655377298402972005611020743608985518190213564024197687317923090436038952433698959513788437881405122718798580582630081575058589660583967706576915745326381094719529770927891645097085780077313049142009415833069508451677989151232153774132635040425809119625437293692884251158770833996324138114553269702236281812733526032569030877391017064007744123797798885107976308440316236009581119605378534389095322496530199670567912077711430097668757889225214313165937747385193259573450271153162064752492063312465685576870947206948097699701956745713393147534482353110790741018517266237253349335931171361298118088003831041808416247881807958667302123891223866087869993031570933937798496117735502660866279358420884574310601715062837524901158944538887981331510049468540805982690701498715015036390319546376381741012797013955646787709878006036919792161689733110287213854162512178562580384607882033243021505332288066681821260870597256985139118440707439532892630224273216566990002377573898483028085941833081426577957725706185474873562728789997668130937520831685494645125120108418340022081910728665273271005697788843369362023629304708335877600386559371915504081920273068364214476129041578701288901826469683547592452836809336996361268013489184220937955242136270443891895704665126865827086160800655565349362463349864849067985626345250024514303314131193784824379740781163393325995417083533680477735017344472409994534468880334732736608709710236481224961562171694206075706253993578550369189957766372562765205374104042159878389524797012943772614743577886121057914569213242483830393822788287477803270046691422889381638538461283254915776372767747827171536603472850367918342670706372392228483893583575406413157576867098963069016378154370322069366701516250334923549961379318774777511645401361699559076074243573115038355173567774670903885612461464318625968601237668429833084797336642488005978440037985371943249492126913476276147600354550853645601534615580992660112704265597581063402393520578313887520241232719247628312024981489343863477090705316971497318951680649090773150101984484795468843232482517967626112682086536151904839504703196877339751345839724916058863454800811164625754388321916621731301336383795004538358888909019234211911434363524084104398598877854695590057071888275256115769001700160352612883434787690281597424137042374035204770727840418532065479100896577123025201863763004708444027237453991150831407168037222450729275716145617162723808691873404539023132425879867012948241484029925192308926138028728489800346774330883042416789952362802173070066218985714612231971452607458292871915558770158388103723046209208109364540254655527299008212122380921877186449798921546376290716347505715677012873006095025985956058758320586600180810745350920146961395156081768242450798792285504747712422139484294494457558995867270072866654859891573591721608612907648218360181888792807573129114337241569402104511391324125649909521328191294537643255180143885236099007652309581210152072915590732334589272084858732099609604865477105366042853830536059448274404988414611157136821770724382663038217171164311167479157842011976211363568522434217634634675639459894954424329363813403635030831019869202720196457167949299751209493330868935938031915144214218184413916846832713482918823808573920859303635748907888702858350502895193978792566394547406549189965454363218726444543768958175462209699723084419516892131508404950435240214259894243831832515554351710751171897044626879490501839416892691296886920971491129208587594203509762900761738326180851974099698071903553907635943551183117810999455433535459159309310136817121805549682230791791692808944279333578385684607815850026355673375556429242129365132397684974043886736560585480595945367182350927376156389374309407010273656300859683847990243182236898861817333142825387504123067811458664168550514711585917768392432887322391617043708990992819339039970174588840578328327424800778721595547351837119728016630722995670548741381349753336406740468105965665992782863252749935319775882123161184837846783706731926420509978404128978893458024903274478447158124032091082208874908380483733165759715089143669855833750517895388851468141618107690079624916709305854415260151310825850345609096744257140693869341766526384957331314104132778800375554240655581291152979116977722090108049452215814553913835885026336820490383763513968273550868684195024345932741061564794229492889376540464424152531324482143043148011164170626776432466264763638682035589203899075295155239348572627237045863831138756500257337045868992926350962195947374647088454820095354397366937722345496177623781817664836389457238954712377576926839795605704764599461340379892912095064119122179904544097101202907170616467325094935161560317054035056056238569405775637438503877596563408564723546173037592017119810052756675902812555960293819119434326651810783128273478225814866718014429432148607786061335476350628874682465385895467902792065786383997640422584923250997859528670199162687815794804395152062496365856382438180889658299974654978820185584444382475191158781245365207570438703784093711194835057701089832506598943701089868099308689697994554405709633552594727482451808114464462500482357482423002961893393457163087527425844267506423816778692616278834016293449373532845229241471091452701980479749161424625329960031570771056617995704206864311208430118213446254765283311690317381429499314244284613015371383599159137864321512060900492194801992708604579534508671705981032517134038346946198891773459043286504843665676320159454246354509020620549901867752455088712503504818940368359313435317600496141124983256892224781662247336132388466848237456326795829073336295301392109714369274759600138846121836771146780801934326861278600144177547523877815054406102843998118490097913186139891601561869017501568725598494530336089486606688352807237419500110681674972854166127902582662621550735602010431876505395656018494914998412548838230690386168289729961755016298735405781505658874041605775588731884742777238882726357646613028129271301190364647118480219477239395298903055143143419025709917417268519251702439412868043074522458944202398985735845992035448336812096564561156570783951158502946212990034441853009894144978359554938749033972394760630974794432230026862153060698076966219668113348745725601295001915637435971654084659573996429111848383657330280960322819712337351678976597507065812374309843713440046410208591055486032750026426063314007565631019620110548440557663026845357800973752650491446397739473966357102134037038220120093415238043533572867484714867580170233044575337006297141577539119878111207566326683907311184594818456591375862467323764137398901395449922824527289471734457743288892999786442790545282542392577489731182110508373095265614338215884039594878249292086246003098826837407191777740787302711456546071493936651204626266929818794373104505253774115504628857476660610917570395746383551158445489413880326695189544204951140251480584925752097858543961012278108075967575917143936965973678980187269176529387175068661039699974582980562569191512918251638743718769718250183313338594431614774816745983477759986915560212635604201472281282455788699753612965862038732651628380177493983258878004924333479408410934313278201875694591520034844306055464658607721852253714947581711296490569942456200595244175464806987708873714112832533474945105781819038202889099636329591187015788294717664142595801377967897885608099072886650334674252464903589614342428191300034396718315357816867559600373740439001931902547641408394824840617380763457947596244535379743820019886755382905026054622930141007302485879239308844898371731834421355506725772150827185152728355296118760848180318815443888999810134487354136711891486632256839644058576841028928734458919044205583570701499348364215401931219653205797483548832568579359204813403294752521535988662306704667824774785226256935614357782526948170637913788040044145906135574683697386986225781447516568042982682601914256930346410975202347948397600293717679257072040735756558443082166877777772476082940093830261618782498030447442994391569556825131970223054693074445442072505870861170826111292650960578478310212871831345675977979749281155801910684221533682801941594891247680835226396833734448473345288685515977856424577794817731311011574177083186565541976904164212658823679250990584618483593457112094565899240710509115300243874291810727771289013419875696115022696696543973836202909765714158237032300153157584396002968579252790885246603864702054894154703201957765693110860457739168381981250817383719112054706725887435383031444253676579848641281383530303547539546858419508450727736063126323575713707852674579038070959523102380968548282547251365577401265768219092490302155688603028919309688512837130785888421540344925080122856744480338342700047258634231507561019657635560123501945673267014111000481120817209131770034386067327888122964983512296498268874214048427723705190890043094735389478720268184984631043954862974746240262618386493782648838030986574528684018838322154002924175077342690396759186214146693520854837173127856964989210024400271152746227036792314210393760436165966416092154306320135562175907999171661254843042224016689101558181370686490467218975395887816611180327331515856157750425186337042564712043214744811245714767665474222152349749512929452132345206485248253248483030393259834613524424737158382179005149951874297132687467794120870243167567592269665507415437045568813800467278601443736553853549770017318405419776632141877596312025801336700553330571463041060898785440950380047006663316875450413044598330214654317447034503209741687490732972425160372802374318600696016735513843667232436973698969098308392703004431935701089691945446085712422101050343928351751438642509098645062805302918340395006844675436898864030063513688421737069337658977649691718286258174846715106678839844001174771778246052368730047661008971499912359460256043100202413060896464950313485888187753877432140628425156976811903514026182832714052197453202707839922284491315663103340838554006685244753455711553317122334763381135454495752136138904987458199891331816569126295902065088547450728800158472083620253163074151992257957583355679927316010327333232615667269465059627037743095999330595111279950484373046234436035018293909821804173901067411239914698435258747888271664711938243096760034170635302881865861766253704260642941266878638372551366954329687907026603001226045901967363933551277348552315788007646263581112855859936670232484772921794146437223908814595048185091466037124422588383062864101607306950069030031448932623234841645201290145837770110151059683581150295901171983714947302234191843918574156858388313446831930158426150082167394778246565553292602534524568442322587564036366275600804581301103472841945966032065075672498318072372775904711839776522454593828070793867685587846510185471030519550403182008695120944360329045515688800936876795353413945467703426721202076843932519976573694550612942659772347688748917116378642801920865652658240655304765304578345738466680967605277023455637159460331252526064196345339465687486520495484193989925010209094186231860836239462729854290629726605140414605659395084905400228856025192629679577055120430158394574278403368673885053522665333407491274595315825392329515248915434357074851816389940542522876048638838967663456173164021489603865782756778653122187146659787430463759523380155612597231881486774047544663313236600776413174911806077102945702257347915715083493103365289585602084321195694649699604940681458538329879029877904848670103584353192008466635407560235051983707389981318979945490122680042207180403071972300865191797606638366966633840473901824001222445532272008220040078059587956428261896420036472062529423209625832484379165338683392324741879601307480339330914101459357596183876898712171748715214452394842611870748814603076780718367401654060233668238251386463087331867117492815140828948347277165551698773078490041309224196286415505796307070368128246578616588859777968969575846691279717165521907484636533086866638599873694464217099130784745643732789912627472988596324837100452844589382388350483394150404352020475410556167129035734536782115070531294560409664275834032957651546578160369475410739309551472645577793162196559914672273243760895597291779570439045781830367949815003276212322019027634992072555619313364366177707229863887201751538805111245529198043027861969858829548917889080159190547542480095255144115680162496413422952492543584511015478810318011263116400332488059985802793147467281455399253002920662622682637912241655264750140324667599803396836872023620981092882553792176350104194678413843346489909729363939220339589150574042666173663737484604806488706098164438492170919018618686582676091989614041226077530495021490254125206769802830902207627670255488746190311575578597331204664679704556138800451593520395892668110832011097995684766385987987455169922391369642542002818751739711765340366815702576667017983200402652133946265055449307641106238906735487127520497080348296351546127408375357818682692258234950553678392328229026508423268464761401413374241510794966330173069025484652984472993790302118018096658861029888189278659802296743799565143014817132031292738496727095125460710075647651308044489180916418687576765278169631834080531569240528394123983041177210592096146098075318052082132660567397696510536254610471265438714000477507834073091092099062874301160713689349929084018855426898298938009808855214230432328000292272941469352040909112857309838784135135892811914568556142214437469224760657320330156811555776413888651831953621272427932845117774159783876420231856417877350697068974887022968144561487348997088226399523519597086469294407538067891403949722320378690530769493773474071264634021078333390003759298364452284008746705183229268333179400090767687573651808302301325381283480240456772057445821715612881271629294079251944395826614788997795657495336855223625768629218379103799661877709005944370680244086926604184953824528136226247537865752960087582101979352836139663472448486506334792735431145160149539034315812461390542690395409822829704613850520857541416583930959583726558959227547453757689795378275745542305919092694030833709782396574627875380987907390258010506893032417675778417500085966978062592493576794227434794604113713895932917356406873302570199215441659674705343357138239497734306623578472663905224128185216007332043018600528438185374059735666972784013557754094859594921763160380025902299645140676762307218819537090351057360134782958574732019417964116064094505673760451222067211194621198776376799153444670971755104052952538958282516536947480518280428228438737035576038686952180052766966021895382331300973711616448087235227879859485237266383261144503824175267168739861045983021932424567152121990069776105527358910238570464540965112480073039896296689470411574303715790354071758184161116227240894981036547188713620729172193711090525307566979582738609776108070105086302918752903044168086983845811654613977670093309827891411106250895018087057080554657243532400300497747995649052150652039188829178414894137321752721050905632757991569409204816219908363470678235426268485599073769194850000947988457311563084722024821724746244361307201615599333862417198308061260064032822273291229018256217540024223123136892723605429278707767722771650127730855008610760319128789695061003160576942945666907612613513907408878379563699022420650510999885966589151568491479624842411677645010156394046582241760314203093799209791034631556165757649501894373604259992843259871913760571363283747620936947386023249125116660358054482287360865584190651701335771652217751929865342437502507722032521920091856503939628494134200798158961879741730687696972140570026303308212759940007737401257267884659549059094174703431466681452487089954941474078433395812013484917473786628294683149037639139794502772650537395062790282111096434473743682634305396270109099500194480651626698994232053157837567200310328729508563299084196517705491104343569332971492204349356965159209559960998779282269856303706487757608311038910834362979792496022301918088797207936402454858405882543301970587642965275183383627410215003602109879392588331588831531511029767666404677192107216168796548278994044558751115267575509137357337020822620879630366440904886518143211537933986642865777642373542229273104718660287648564922622668477989437719905554332335410300382427302755259195364198065565004772818732809233873735999935560484988058811961104697744826184422911520582558434848244290212448167065358310493330890595233780375960390076240529190209253154936540854572201939130836746225142607868169862856868192206581103082514027768436005257080922105458605277090807445820934605864033941301295755384270292252569540263718300208391553212662676777859964319584726807298272377139672383012393988630437687888982194484440644022104662473030648379943259674137036481603134799528096796359821738025458211217373000008242319259362763098055537842552780937755563520744774043427548117554994728162489080131438667286314490536857747803790703805878663783595421539054630616685281474333477063721545270852541764903578853433958749247559239313756627705803242576113134126869739606921231419842663610242195507495769090558872318385158535648530545665043736374338113158149955924400936429529272252199820742368929081558076627327380675716040282924269624509209971987177410869149807843641286857012456962921201387675643618679047962969683082388033811948815186968900532625228875400517989813241965704577357926433786128906542878526629136529403933961203327547037817941125719428452694527786981203559383637171081553377764633771276687458435213857534294686129219671484130064234589979897464318534179421822776857581420309457602850399704308977684912272392550675398527596851079685649251278948386054855261107255161704967836755198842857545640543780312894386423032410421536444435922162805205835828481334444301773051721033103200774825958928545076528372075314111772084272059683852919172497856599215185289005862903546638578157764176210817558232274939422179107477019381362543064198452687613929615170039290771909495474541653940361569339008805825177617105390623958912548345995196759142149622236534205039485132114678369697027638208406994600132696192944715928858439252275505382432964133654396676237653232538146292282014911048502768164790145595199696268971816631679467281354590384654146179636952481647351630972794442247934868579810643620071720625435160457067761734828273523813000564802158180695736579009665094548500612209963119490681852490830613420079589725870704302870690109754454857714351195056477062668952307654903979075813711648707714964147006672643370127659355421671611635826031872628635519171055032215042181310337690141490736347875572068945707071766693717196691328854331498100294991721592850705451589197194959082721028654908536206738145816586402281778927192059165318047563273361955157157255073230708727295544197209851914167407229154039173396820484757382367978710242176539341903165879426030216398481109229609185413494276315424535110738047923416279176070502266218177858412645881449814783845101398608243228704214191801961521838922184092916295675992252821010325036044316985919488746120004670435169273640808479190057208933919691482075444259757776898339107620599879972459423928396474297438730885035779275407396740807755540312601542559245752449952541719563710790766734419660223241653622621368928865624389771411420316617139249239188698826218303705074714303172225535984071135235438037272730920627068386543318737772232770118305599238264743373867845569029606537868709795548422888437028973085008635904138434662742029254191874667248044669263333290538291101595479868888654725329239389578778211827719493202405481870851136985098253989751525841793453308561079697887564686840923692807883598052515348280428941873116331478245354249918890176706273727029346901952758239087037342356700711966601861146018025380529816552705616593638630071159815679637061047246114538797514282509365679788416038901805405700478442826027830160095330523595054831619644542273773911377124316774241947993295595527853908367350333835780715647825594876947781066942269844188272476350730014841705762396791443108947407396529342028830387656474845957690683970803644532434555740337072526634301783676655197266926848792024286957920420502675828604221628457232070703098782869010696028856816214935374359541251960271525958518283507924405060045055757221337852526462406723040571900294834823490635748101883960383312441438685214907381524156521754916891113290450219140334441927012076943972209214273150942635583652890772254885003818945717269140597530745420380765117780347390594640042521784657589639764291834411997830119082555303874486798549070989221841674677696322435756256270754899307299664656972351762591180716261915247316309640008583325758307236428827356004937431848133193929150181370253127030518379286459274687735116089384174101178974712735157053885168823492365521994061321771621731993796521039660316832400180902010067531253493491516039095124633443636503459985353887758062637650737651883437330532833579306010568390196417229793320766559319065445338193810397023320739472311284782727087757673019081145730605210776727718036037180928627844322570807330786652230416069846958983886124020269796151543972127941675348209856224066247208619153110712917261881634825874701451207809914905037879044842795234314868240502518766425066368525830457220400794299641474452146517726522948838047952686906066230149146391796914082067595797419783670031090447707815142002844007870867948420906948093658695671881196877334354893458396228321705926334299858213380287404387712645333081802733783652355070977905652692908666622020935211823266692460404317374390831891077446560992145904657161805456406625092377849050161380025074409855419428803668603796440990928408896409245253056914219323354814131433058453601058459855700900704461032877687540669620625820160727604126970684870371839421913521810917157521424522055874972894402100509980905131873002040509010438091874349500542140473639099503341997484815537575086494369196174402293372229221585462197174994351466853259921298709714059657209012939468401648883644009531912734990925685573802780534413987929316353356434330157713992506477700753471704644575897032045492424908183324124968153908625970632953044457137809923801872522318817170051768263998178361402940277854726795312000840276519602657408385351261090491829398725140730048503471749275153442613170974039128825386456602591287950295782292413172261418336854198439667793926522123338937134127027781654184656206212873010800138984930742761114501994545805547799239440893801041727098196624582163089990676527105922044459433967180688206080488084374828732473435003968148565315840305056125003530253398609237189363154961186459632118358519983182135427196963122682547243418952086628100040659940172775142703688801510735696998765417550808246518915947603309809910882620985573171763188455874809170035701887704779822906006002224046534454913573439676605738286448593676811344975243486512625942680893424986245701914794419788604457137114567085512757404243748121592012940780073947965243506066881820043131810711343700427211687825389985278605728997677435700678157712525475038086724355687767985441154392985713002702542363990304246633083627046217763344198754877324653077295542607285133850518044411478301053600423088939169246037517243424475113095812119470373327227975819126966023165953868115825906008629167369245155072657080321901448859132644251767458911028643671177613952927163645778692572636486862671633662329557282781580405416412134932419525626943842017418905090330773179966058598969304380372199232841077038979277781441708385403155729444611556395456814698060940874586318946058267916064372684264980653306231387675688417981557084828665030112364383811635556428691914009062361114842438581686342840213575919932851303077673448245998703372501420701682993135962316625758179634456351954421397775373853819260524358264999772015522063768039586123142471782681223676420331747581332222937331746594996280068494836049421242200676681582164760757084251927768234364277904015461082841450263726798025879616999040869548683118479523332901571330813561068382021096664740008909604089659220692420499826000553340342517700204292873264879497715885135287945260164485234884643614630503642490489144091879393716331121952468620987765821362773353509368991377433225992802251962275243714156294214687405976472582317024893217438936486971044103158800201465311389154008927249463648950594220237329495788313368411428961031211279101718167821924901424964434087472599405901990786991175898749804682981396840758515679550751501564999524975055332856647053224934025388574424234644128302363119003279762541771382277688519558334479653454394824999073670683149857953823795371672217215235009179422950512160543318176897838727183449176774605059603119167743049362369463626206844681568711506716238540898223088091431729971621912132390588222768102527540005108829140609144071727852938529511215774488273893435082566448849493411393918850153232609827230049478779803604200793852759803738603691953240933015628537029060415002438262115894257964838274837905234911582561669886622525553771397435214926289748861079958594194161491914580772038103838825034175134881914984155015045670111372618255275414586024426901898962079327316438119330449231015188700395260745944873153899336913788693271193483818394599363495310279574208683305239152442797366886600242060399334865333851893169543019222893736082870410740707614220013791612682054077523908481256722868634468852806200410112446888576786051280409996058764326954819015118850820349581516064583487835917717254510884644228783455147897712331200264077084082003482439005723782551395717954881324161493928262871313770515887547091401788365441364425023474614628007118599868483478379508702182208168290581995439272096582262476027056456201301529209653259235049634933723159246443305973531349548710018137662706048743494366554381740340577454638663533185937651104137187255937721296724108362250125978909614902943320439114321536316094565380428158357628985165526922469331942292847626228438304102468020792263076374057173654412583926632942778276568886437102360725743526187950801010874420821699665751258800155993406316291578951559166744446377905876388286956259817317757734776490320933954503135122066341295612603455207497565751464569622286319752827922064268121699058329603449989530246759541840544615673043240708875790037559607003792182772819818659531666253274794006262211458382799908776245331461255086589007351224826825317840360326511889501327135370881655294648431270019933364012146043624174266811214290793920964799621185800134923206322693438888459057871233407546916288924218685489026606897669709720443720268412137163547601312572483670917629810266997527560944793401100110818816549345760487277684349711321969491933725683250523487941642171099003567631549279675053913018385598060296249499937699993848232303322169411357019910431952310889472523763378646788170936514038176272555930356471523046061728444012405121445634085264937102452900980828674869667361419931060240968163272795680503883073601841839307188708559613044764774937967079761190791381398589255145188919808076240870339583366723151522996892465443990682837669507482941312631078488593038245272187443919836589588992354244587324916005703932666251472224184082378588932065412863057912463923492371546221405820678631636292533627616065055286924141352763330186100710715878990545147309573337732431292984365528155772199253665611349765867726804042618132827746388247571648173243048165176475189580385845535826455780366454116914120820429769631514358337866417627093886596735348193017726726988604372554861662225385550595347311217106317512162214493632697035080002009142207375409635960626607913089515664799838060892740067146817363225351837862911238757499637105595392900307713894371566105376883322928335680855480772470331296704948349409879891955493931975925963356825354020062840316590262050283902071454447906847987500848862853248034226136443627848586479936176369813469718562203117887606698916308395246205532799275483723196544266413835598144179898098352086264422677332568737701194410565003486414694987326451086044702634505778896388198598607889634344564461436620091775021131275996879344394627308904953975303770519658858390152771068380697359500682172347991413490190994281384773117502430442265876705516197693481033543633386217753889618346927500191548286677163273472352857630685573146556864674064993794501911269435505212844528564345944190403323914262010960035283790145930832156446725789613107589780315492539195310568910602608335567101178808236876830392812096127634512943491265009871703393170598301303785692786379175066607897189809707826340363282096987547649744670811785296992295399000756572978200780396617378003064939352287602052151434765511616101099070121956852137814026147813039085211711884053138567599253351968773430823226290969433440168858406922359904065239717463751019624298622173892103498265715246172267627831206915108143867927663500505394811825136742907452357804976066752248143557004907194330789444747262181592966744072553025093444133005804586557701387028204654734173870072497951471758898483776609515387797547887347097883463849998994066810800747974075600876981735650541916168482467670811482271803448926727591234538870100303306832283716033244108911185220591659646242967880337060608128929607065246126655232544805923900144130655990679254202292030011673999033720825976748843075567289723787049199116465059531797780398699738285458541423489927436244932623919291762035003252153186188582586019807146361843990229619795735329767234638850400881997844542750471492751882421858113855127773590093252034848449523252176891666270747075648254403547959539690495564690674564108863040471056690223446302344894684881802681045923956381604431163569693797405208860380484021615034642757327996317985771453099869703647788904465439489734403574071969471088223369562666121924626697016291943132285179593958698054561097065584616539665434509343113895308835129591926990706826859629010761590480030907168122636257665998181175909071699004031504569046572581902022846919773430169788532359731783053464948131897595356040781205457620128956005305400815488622843244494484732771075930208313151288132410976134715573357464741126461578236638051357967144559011283388812630729051963270774705968648963871646355518151101726344617789422569713085282248826566273066064477660530598022628016784875211136402452212082881118080727207320589738177477741994580528393990250877740379797262098236994680497646509089847111418704368264463184793057285794028824611154540779775550175194073027679744277026994340639873706941847653011535988753587870505820877971865102119467396348136396957713080744644774094629571434546574583162919500490025022500462131167297164324336402395865693011991143469207078145824091478553144687055011456134775994144923775315625282423081208539515636840583919781555388523716374150987440577383625448693302533140299161696021440845488006478253568719611005690436574535668425482956457236168618316323577806901870231474111023786418279308401294432359441829355074030007593038726977236250907419547569250558624544344175200609016608902472424318623229794662069426313911158020369710470904106244840937813103706532883516030113539085132255949905123787691376902152096554450980895514181544230285873667952580914964938742590974253620860937955017030301365166115380240471447164165266581609956930913275762060349729987224298569544204308264777941859639989914241383864326564614089289987122476109733828041667831754075379348902242353478194148609743016982663875903537154303288614478956003033078269296043849572686100246600431427382054324210819203665425438718857105307229994252252203805950784159011554835747030911520221913369541288146848151974415640493404982423059343185334792878647282594795700445628387077357354696980847257136308628306147884810641420983107162773042607259013669854828598655986426473704729810611448516364789895772190604403420084692603924973687847221834384613783987561519451098996593545428283936008822894461734445364870307847772564142598864688938245631996170022055334104944652641227443818053563878318951398325284921916919925707676592392927979738509999141090405571181911403233709616664233402430038077402846930004764436075451771618674412834058013765397998968175733272796980416287267193445454441110886515259433691702060394453154248039719379292502999598066836173727587808872208321731445623396952610505710136247324418069936715650398609594555040918361285530234978575461835876544899721236731835782011488842495387950666735358991213124200174612291000712641584012754736613870927565251300758293406704326501897016524450927231988972177144545915708723981973934540093919533068200834425293816184566732352292158641177067652070106411959099049798890898200237918199255517120920286579982383946907518140137064907792409328572531537681925927018407413443063342412044995965889102953848134223260812737857774641591472677954671006575189166598184130187352244762029744099981688449320835776239881361537885188832846643592903223760753729803041103387971012907380268039217301885897126649691795339459415191715330184056929592384297521357739750575428362123521183736111076486826993986080379435971882744446050002923171367984807900639208758116868781377741929499326153497981275949961600239272334469978908497139077651102111169344058351338682484361740810298917921927120475157806615360845958354755626831725851792046994256736104226589834566482806147075221251315488365038954174748237742322523783999124719659331420181038917114354181619651663693135467988573103575510066242834356360537091056807446089468963125377861661653728986420785708011151618049361065313630261079182058756169768721470658605489428107146256476868816513661434296820948963497283466069357430726711894244777004388669297511131925303090219036755824783101553105964143102515893728289527748143543812025849715035146197365463256003329075613046475604284480758556380207854519984078605925939247815318445717828993627772298540041093483027738159708502923090235099270231135739871443814468630210327428116595147280804259762888664547568043376716223968336353835747671343384345638660476180523677236259795355670513600795832512765672161427985490102204606307974060135216659007464114422332502345255274238742448800659498393704675753975846423563393733625654841583479375222172575823032202908726423944103131866572617530301193495746693997716538696036990077345541153384071930855462348309584322033117145828095392505571815520966777589964316078855201126046031893381178010419815866337514805837188927068452538034470237672665825389063161098584844876560867098293510044450717257001599178275748502295304693816751226421553401371232251305532491168561037703218378050083676553266892565894403103935195435236075932165752299038477007532725048119780514757351812349418105416973214561540718909349752905633163263881237484759002525599948653617327736840343874040446308898892521393795478874269401131929585989712247589617113762015231639452434223076154683828467042582561142969337209088965296190467574544186236122192078669741728863955160072479451607097887462950438363454381757688179380600718613817223067974021532901939470507050254973042604171646628512800664013983658432290449857729018737825267506587489422944454844309642440693646789752275006024095907069674977871399964189952095833896742877045119620328222664650121739266604005947808127963842437020053757121020445244597243438478196744988199402074845061463349696547419039127808826830636220563299794246388366318731659266888332407324927381903014574943660068909332518690258458149496049266355894402900162360170268318621536795066581136994135476587342675557802103891021873869412998580562487183723040878272270284482127752881685347068542753951407656124569636452423317743483345722904575554238395090990338165125739217135864161883569656149674894590723696282302169489025899052879942284590888552955118714103952293756014049693255323609868238159900388448838850816860777725562514435891544912399694918162214729568019153865572375702638778898813032163239111404329491069739980784492791512900020564146035697686047184831195625188841977300820640484675475963801077775514744160483368315238744887052956726380883743908768657857885093462542622204121972825876273500856117239676028743586717557866842810383932246899826295823651530622724884042460371094659922718590150107252502442249834949045388038398498941828758414492522617015771268095942499354619252898265567885997058046460979541595079184822260111308709642630094285810008560660366930530872493162228145823779541830635821036889854866182930693751084818829326476658348816642266557448157928894965406775110282530506597812916625132379130050088305294426446025972671689440647294844039912259095622979056906036820009769072227935123672715960024288554372697865332402361819296721046391608498102396754052313835941092255931679051742797981028640550957972274129263045639677729587547120787477499951643380419924626656850789469224100555354721008732889182632885943725758609230235132160515232068346505165744377804542938707818713424986973502903434755322721872671291081497576825148488953324255059133833945393171763315945055051288023949457897876497658030093482915152889385523877620809560017862276735870644699789591226578871002010684998187852387221867209539446744943204043002117774829661658853844767434435219446208087249187092860195430838211507543394240535212354631579637961014981974135261091039167129573455788374151548069037832329920322992044974119182039648372131887460970837709569744148936068084459402470657827784911853062178575479929120419260165844733505616803522552785203581756865449564572275892867273269991121794822019754772662406371712605773652751241194048333356152226823097841407868155538026752020483350844052601397843985239538933274752268427029346635930509937060950993314017618908536295277390738080378883774610387462689822400375231075085792833391920705910324681149339076529184690468636597133203339925578506495094464630138300096969714791176445291950630348905407023456448379788642276584293822005664293988153231266849289358258706951387771534119038459753477374567400489254972077951315290618517330577354083588138340829625802249161100277453929902148787094297623684024200920316079807839258989988900092586256045954987159449612731199537816961953295098302680703318319130449586607198008214194829471123523465759460871766875131792837466237992117525935202009339475725610068033778440060539766315830848914312263390436869707329716678478657348456174095753649159290235643311137765147916687182861087328945774675011034198698327678022958327669808942290765655048509434275915277611684215395258329889491633883901546529923453667667144404522739397964972094018863091045523636806138190673779009719601709312209988844922120142330890335693021073300925849094121422981492328500651708550472610927607824562250055603772255115654538092772084854452376021889941895742088264139518241608667493971230366043312349593204646771838950898512403829576940081814946973619000564151365286605448444776261503842598731977795721678303624673960391927981711744783888423647389521970081443207183942905821791692402414508279450291376498777612879170988231359633648655198931202303909778895794772423436283792577359973435672973533852867866987593940391162995710361252706949348598264066343622981076633578857278757736878549041588866915833572628487384742097772474183304591241756792127979272885871965727802374458513335514854681986220698390864377836741854536312021466919798689309193301303708087368380191976554313289051613125052780471176693132063593030089555566647493499963113291177411308878757285636285089663721714802556438754092736885762612048920022524966762844150821203951667777004547438104403423357363050401094418297856203668183826831683644198618408297683825629593890736703045513495190418756411971683156748301847006639235329780449182512822197139772153561596785932267715686488380127016386194130460251149896135396483934092620975100522126823195072470969252093409908246675719693091411655188249949858535575301736147533575964610853910428176712661898524172242201033452241537322280650056710156897766423493906515176216590155602770099904719541860251136764401029283348692065709188394244723251462521808661525859021676994694107292899433349187505178286100382265020642617975202217697897761801137233275805941586922919517137988245236006998352504278057888153271090988651831615708327676495363720344625636671580411610419742420005670011393125242072590526271286758221439237945305598047008035238592408936924901252636833747390578008671307204971776346863345184410388655997800838943868621528347490862508462108530450699032821835637485643642832141680436093206070499038225948197941730099933365462190037173740008501947495370429748961434724384205572563953362874311069139754786943440493259823375299089167309671198519312283667603633428926988512212957212583202957604567533025528639790379266789338732757588898625043611575231966002801851143647950446426432144177780364534186766218613727288045079133736252686579137127541296374451378819380123961888923616647143736007265541548164593800492280296511167829161693602947130999644167933751913409771260219055902974806316955027528195690826061791727392043165968087950011489859877460829716679181670346963875485944478127656539086420359270169988557341781652691856921590990538394662533690639861691718976541998989295571629384566158565480114528277904253066908167157392149382520277711224361541205933863187431448682283625066772258036622312931058651167661936860833898149317524314094723473663807995188989135766108411757909579969074574228918179804846965683408488912067712085990496219681390081051414860274256239038136098611498324571372395967884978371912212414681297066687483479228696224701656962670434671598325475478290225168833785333326937827399509212537413868274777703318104291432721018111451277090734669669524975813979150425996187895610909554460550898558856679370340849334269641703362608499467413179997992416866405435813575346098272459217601973318223766364817820619458056697814756994427053559549254679701772561276152488056929583687251252515352713804186267846837401190611291204824227244870978962952697932188520970092958250487682834638267814550123898558526354467036334041542584038046148910913933964200239946179408090418064825363092644411062206757606391901159003784312763896451090193920893640981145991119467538354614479529169670141480190073847066330673081116558300781949092869380594159009060336764028619811281981081692249903294477532383530166504841317295186792702113937378210085125634556802583929958535798978470112181888356886268062771067286184901410510389222084303547210331731622033756174694006858918731090620208435344756612260600932709279230728334211146961526764232288289328218541370960680582085760509319758521358335684848546483771918603268749350589435387371027190653850397089449130937275308450508041213402481362394375388427321158783838678897574433655110406678513139034349503844959351274263011151731522285360321942778445378083206994948869948068380344063513413528635346045622939561581622585672145254631236857246011127121179305871744508425645618415786244928789558687096682546192930906386896001240672208816329550985913371557155389782620806164409805197288976178558331291097604699780126186284650091026065021755969790681415993506789123554906455990917413828254352229512161516154431996939634651631863669276453117194965788035194870003858296039295602625245451874560754169389421356224982771839684884576056769041413559947476857753125760128820532123377049910821201641708949326692564850815074134891926743360449296302850102227332386206208464274345836764853666521431505318189878272886176551095988982019732130323343136851500586763081654526920947117248260827140015148278332116105623511801315186793918593296045366039594599044661120136425924063478000352942211183018415324024494540982948630171688744194483694805958681336706954712422664397508443097801567797707251014629812436237704515368693388031511129917435659214779028138798001533029289506397245561729163851063907336269047792437535649420750926455056850752154843655113205003934183529119274931751551925864505136955864640409397120910567737987198373354120801620389791870684213019421377327773806567996719754238570037043676993588291865475406302538252335341807355070687567105783603845694006155486555551051921991664760615538220352203943201165430507830631362961195649605166022163944445488868974012590220147508053069644613608009063763884470488125040868713543901162154475392391477346537693352397082388721267859352547408548439266704293139180056504465001227749147776194870818096870362848421294070878160673382689408924892022769971105329548604483601050375836642999063803752803097341680008036025360808677139523598812476001776064186750680654810071181462436771222115619656538619474473860220392629012369053950443651557212743664177350852391439742313404378808215039108286543173676790711014644300409003196494882717709228813499012399721773281486134453194303472099843819713891937348660550229632656020040951802163111504615997403493537079245862998417952396029523252800512914992694120641993583960580135725261297427123036931698752338328618423350030600301551498659979526389775507136943378635640300068774528927683959164416471545509042077572526327527998084385970242552874055272455013049926134438339246625722106097708748927396784292296679820483611694062327909462152428670929219530463360973900603882492678965036035999381828995007090889103449794711577823477566861146107297972726142393894228177872140064943569369814455698249769420461039408829891616970098168796293810837537498645965803832987222701164760835136812025583288155406808518851840929557285206561244570983513248554607002419719821033262857789842913285061354099837469208209912735228087847076692440319033126357741792679431309287080555621750432304128499314725483995410969898862998962761565743318595025997330364476221991593534715596549877505418057959661397104377369320600531065361762277287421668033941690292164718884117312368180508385370857200124404190231749865844711051848339975156488294848023755238114692422327357216671919481690317547731293127024206442799592790467728681897723944058943271669043795527331529673285525481318809709323386603885771494417227851722590503514138136458563116414269359035899149285154814980381553818713295655270373511287952969781169609899936472153504064757977593330348510379192069810278446776430992675622608786476105133332670476436420424469687531414412192198945057559838928925198541715763027070923818586995724212771377218402502140419398110170207421613886958528183915125146977168637481501809912146507071507120507289762646660281057972124020830086299907226165700599463118916199687398449095645580668988330136475291179415812336117956276151199653073159760952190923010368996906352297785341074753511512272065752138720455570240866627425345313750029976735197554860759409783097452724343314079330626782235248660402016885272569427821603629967521719258518462260148422099303038401093444879568419036248815653242783497039087748775701809790360320643396823442683665087467697234183588540676758910286439756628352801947509934686032555727625773654288677591995299037753988163457898993845005164789844874165827130701530714348081197052051894396022291487716634138693908061963542320530584251397553282210345957641864778514624501260452192817871244072818470939534175592839054220154491791026628403934313412413442088824843782011702314745802957075737915188571512551834101378629021044614087072573422836220592666413784995448935370640193836007115180799397660031252732214743121938670796912732719542417977419731591568040969535020446601778071453568558523964929759731438602169420418342247494198031752258753655872463352852479932839918409189363253693622221536249016035747266319001852690574838791673978412800074848761976978212018790274066613210628105716644113192842415192352288129552726375285074394175689286683248858751676430182284866989650256053630019991248825436575371209505954889136032622103825357347642544030788222203519904035482845612122267139901688128518189290244454833769070397426213310265834376105686417114744441196664553206010680714839510236982216302018102178194597916458460716479067290319723229245641052190418390020477263161099742098811836213772388771347963437290116597177717406949343919992955235182672434272530975526823106287946646457342027824859034996332303044215845651135995371021887420211914696826848842450020433813610850929612985791917843543857387740606263952206905324776452860814107659059746519615314296812321625358956108816445702315522587426844758952718859851340477705886528063547462215821741855987566511715829534064904207199327164117817255643612497601414952325896035734659519626695806207495663076842890768152350585789628411099811848020814169856056194460159245827664635905792073736772419152191687656767994741242225651502707560213369963484168538880501266327832129913698235525292709583587334281282768110653923626160280184111264198893538745616969986503467985326976477015675741816806074541201762576531265436625733776666854441719773497737903084401395600710566184268926355102548054823666683110634910849447732192655164025432742521109381305021972217982783056808712004952168876619877291068704831309059313300728829512667825915790370131243950776664567387722023591986317305267433121302706118710311027179361587959921778654707201740915388911715306375033110579044809908368896627288095671666999634504508915246884030190681339180629714768393655415845607547247323213183263997782937605302273275174752375110252955039009190803841513723665668607306633599225984671732759351615134431790023452023349807684673299004382393132490974330408538205514913925300603042707341268388949927069597162344288830109842960617180682277293614655468081035230895493677743687910319314452082069803144094231632655955920005243645396285291358376616328005335160401129130746479591119710462131285337109844286296560578918102087203490382922915315107933292035060262014789425412189662723682216718050435527449514742838441886224228464823669657642544792193346394133223876197819514153380177267819098918909309890096873331744774198689534067708351118439612366889280947104194436878543962759612536362896584313416288612083066818523433683237091817118276756023283894112895664006232904753104697936779870066226156259037205376307424136352806724784286017501042248096776534236658329523373830600585962970346501496890203713201380070580776460317265010360899392863326259918123238195538571196213122442871280965388588489345345251045900158037943023215351575042209186863556152891849678410074992175845418961998222685878601294024159132530768341894918231842986681977052438355271479262816040145806724675149394265351846662686236636611464929002363971036185191939481817612353136232711114514708512066450050763809943808107604443446733403480745595911856186321684467347955216822804438470207080210126663927989223400640390137951882593687062035780273843743030522365260568244993825869993911151663521760014751916577999859289809562035694857676804366955700157865512939240643675182255384763480776754309245005631143330947400377879539237585951401392603820890226567456306164179305273421522324840402875813080091419261932199677564267406144996463423159735181058357300191987492989843372699857468878973197205611806545759671698426802380459114722224384522596158389526731261725727154129103935612794571707625973614584910640259780192551135666662240693512429332185305313717725668688828243629590662926017494905119011380625597824246864046019314593577365894191702409134237736599142034054735586817263795497490027742626626144888166457411965657458867298758758854972958051884588224615107632221246965496047181073363382540439037142368355649465872827175183989516000951634232277627130909855647571744075245243264408784556035576358383596181029764321417426714214284786191904261317157699681317479363928019627940469769947336915229486094838163586059663407237212311946049817400246830582262928026339092592158381317797106446083446414977119044509869415290607142023351275298213280207047084672848983468171450728005084406280487570829101083268318637114126502681517219664862559861076873485402370193102301588549136958431719232918487266567794323135357900315565683049561719312203577488844191495231218158800504130974928958571886519574109506376306781019107609617265636431125720284628522479439203100618609424250088320319272482550775820848875880996612418801928165966442608039712307861179594057364486608188170410820646455686599352907027523888092126945377633287252401340375238893921844501591540669225469198379491338718618099297977823487555523709955586399843268298853699700670028316767258042586001292241200966836555900069633448810205474421700320453651611817793399139260004958017185390079465311677642008892498885468739629625839032966679000701169268821260921041036306432770696080426906391471898090991481731940474980649109682317389274133993276850064866417564131752427593856512000963554207222211865814818108175699983144422263772858167349755744055117947347362436112851638664024978426936597203507334168256711520388863199721886590559547635692097648804454950102751701019852751401620539162360745350744911997499033039702192844058021799498367146412033285023755262154108707939558281280991983663510893710543953751302202249390660570656217455203371671766604464537936468674363271995206026415116305015770735272906223846023304206769636400670341925176410585663354659981253723460706833580706429404678337261372872349961097802351826522255028767651278772456208989354733991414243583600703491035246132143015767356183387764640687530356359142064679246634564994059206541195313621085450101838287471225750116318928699767496099390832963992600273224805445796182453435562001427083094439971212043114578031404281776105184098436706661985170546235034384099346341860710070774299272695433182620517931177187996693524329744383748765902263820888540657771470165405917748558090328094800021853688710876817822405528859240490240673383489068508218454850855886384018806706033691002840014271229403885038836777684954388512033209817295909269877069711871922390695416774029077673147302754304535513505453191278223190754204059678240190925431340945033735950923713452744025175912794676266980751909721523121051221504060769068989409416336626397379595333032581145166148882139254931060057858696188470648964774355353329122169954233656858502489657722166265993668334455637876158566145493666807759566153973225900133763013923755707668360009605766747364607760763062419687821189346043177908533656531164052228590486473024228530970149424820758392560849712060202204981965125880707865740228762710086612658816866844289144397917354132572168763494110815362346945550638654410446110513679758751895941122344633590596229807851009340600328472357447235264132975374739338735925340617612112471935594439165701392467954391917181356441359971396737922096409206574260768690200602926656752812965882382540222811042839821938192565988612155209058359022348731836925829613247291293871282177533921092159514850966337665537385363798719617351802812054915523324446963860729418855167516762971359635087584749023010591558393376083700659743071443900536295545864431131806202382829367568551622351038716604721356610770650764225084598709151558913794194476088516733928838830511063206990644982018114814829678812969849487896250115150855450347538199161975828558770947207142206088585310611693828432338098409621842312503922512252468606961566758863070830475807681016465699322870296603047843740122537668904627671805809326725799069065540267874261268521315516039183323668745111254596007677284518936796067022673265502980560872762383678071312516098805705947008373592714059402619069755434866735417100244343663255258556032370956913523983741448843952937472709208022830940549148470165048796928603245776381597700217479244031097242907474122868123811139375808890078179439310413986204774229283266636263611044396972440280104985061159260500015900012069075698437224296576244070158166036250265094071999673693060775841196319868311365885878505028683873775408719396642708546456418275021261272941153480733679949608141147425654178237655338415471737424080709171617920525717144409206068728352506288906735432874435167858135630184803772622286628187169660427026877835393012321225049105112692271056125750113503550351999714471665134966813256401826483654874276501401262310282420236541879309543365236072612374529531980242919233874204206687450603686381205368121386076509720272080811928351666354467677732604145192380114560997741117849489838450514992235116087901198555512372305756848863377091714041692242216081849323225851662493128035322809392758231399512032427419585552985243244636214725655083228628687401259374814296443709142827296688248067986513697021256301324333580294208553091012041962793511546663825990433387606029550436378213434757041340283585475619514116332781064889478937963622291866826381921362536309474233586251277561324967280168086585173823951687544676874462255011852457318853506876909326953989771568859495697686106519401534096266342063234635124537148250252491197567315653599102809080727285675030857588834549363145164695429298250458321371402370572062855756569931108159487866167537211396106132004626912765724606071946808881230776635672944544612780147799408549825384728498966921832302361343211054310469297598645959370131469710405933364053783591560684824096875468064309312373474628076438223899018424361797878027968137722953684115926796899599980431756595028720216596642375621780732072536917905318896290951269809682086102279669149946119378063709746946193284638834027948181048837859169682739215026693051094666199526236028135924554538778310710833629161550067114023124932052855094099523560975394303006336439410979175864637675669814352193344037586002914709110017675953221969292917191042847162605184731672705361701746386812706765685229467174182739669035763012265860523035445496802898579706561864332953875794508032114374400171921096266576097095073449378116358273888944015096356351047443436238296492841237527673304380702873089309189011202452553882751186548029906743583879268817580278783206938016165335489982850782246870377206158968417809863328013582063482821477128817968165538905182591469781691775216215110060442662938775802044202533359375643149260168807694393009264617313660061108868500393863219430435754167382199219365717805924399403941471009816275294664601146537238890216799447005409304508266541648746626258357189211081446751577058122269748388132595246910484263128172321557651837747967837357646794707510561099512245385201068676464511564330268823435764952441909432672733735191889874590459609241019329050849277179074565967676358111213333867364505732576417058431171948089610971987098202732945116274666262300093135360306746711440530224970712733917176752719931089469958844284144929883520446655464044676811241223549192196954102635263206919412984563873329458953824620322894221500971517804477566470914989537389482423671750901226481321351631811688066976267322787685238694232654411244309514015235087003229333887529323208298928767509786330590425195626952904996538769046701172896295279016542513765916361918120163968997932099863112478245743029587038314544512603378706946032784732681587053278227034159131524577912089554921638230436399369284243227463645129383307396770175546108177045402745622508957924595492633335486023814945117740757829355891936222462975995648852392827227738302465496754282560401690314834463122007758443107928627626862411858532824487009185081001039309441453181875233476025067655419104970423741480823429221347095611790191554506559864208229373394752294571004832814520941279681753347524811931144552775511163313969228204042638354248788275106215278807606252454564654262256959623055996846042586672600819886082159958870042584567424174422182242588875640707509786741235155429631113265571597147798373470815893528401042923969001002865069042045811692744809670599750884817070370026542014216715772397882096966078856103768477795514361369036658481052999313953408517857072057858355884984449464282725709240619601385041663685578243694313609604181166877196130822816189893849891454117963819282930101520433815161734676401944451052499731181888500002450105936022330394440559896133159753010779574683371497526049100233011985185148036636022426280056993204708903613139011695386279669723789448587433462006927538437949832587426210873705301794604656803152127996614052658156650430985095097891525633825806821736660044888998418266911168124942993021714448782055025739991376833126656401300374825087962540285415035050423482383605323979144686735434231167762800646447122712824063082512873602064801813461681355322973056161638669466523458926798303999750402334009905158542865600162016419186700929811225293535142059034917853540269385344515211692831972508175930671728003051251387984252269362684573551674017614030300394503887706195220191024433871217197145463084364026159988011987838027641407727596200132530778835478925752281635969459438624140587462514284629889902949388163685221429595742542419026533298177151085089207727116074254462143781350673191338408617700000565047345385271470691839121368752042270118174495109890316884236694415228531595209380945196959188009581243435080893916241985579511693285322961751814741726232524525571265095801626320300690059579085892768223968691511041292336091089504172587684883862913856295391528228798523131324088007999214484880208305160585137537591214203944828437004353133094758544306052936297328849307873913385075082911699592538684184607752965566678293778022892582067071754533895156901230906586286932406849319820437912606256160371123859400869315645480696508325503175959812147368654678571773936064341111433862403550727523168011975455458243870198686706231305739907411934811711436487860586036848994404080691773844258811560486062150255456386594544057691685132449931627282876637420139273396855950316242567975495779420962828185236309929219299603988755834225257397190840715914206649796431656331476593516857431334281111742423370689667260994693132587046792404616542736844733010449884481817669104355980381856317216245322778374513746941836518035568202686848598113646048036413193293888296889114301154931075667898598252279568496711013362458987439959072899401916968785751855153123325922987722765532885790590127743809232185593972738957206968462140105085818205624449026799266232463798800499511295627211327128976025247270999340076743891215953372021797129329958787440037037562315703621461988884925025972412667612894103097289675965971771197902320309118561652641717545007274041183771851881002705933074859746395028258357161246400399122389731154338172778675608215061412893843207469922327031248773129981201824338940621739991017956545206691960653002974949308987562670765254768220793979323270178293769349759130552290639690971359596596440518762784334595954173890793269603692495340389864952793630075430771345811563756420769007430321150145461021983026089569706096011452989321950790612586744105131510059518431244138196091496602312231955479483767758256849687737173131793248703315751603023704451113082198095237973637211019470621680923463912174301011839986919229036458213399411893341217634977842270637254907064006350129178223848496044821181689921602574112659856760850000174049887905131127751058145856683387155382294493956830545410458284302591508945309204694758360259376592661611460564869089622435349434167271304914018893104292043320113848595103217982143745573723636744274499195973884987707271879144367337930023815857248524585841741491021800587824928689618210128175865661401176504522131254573633385275540330857196996688126178359148171021138655460371713349135929493027025153461496364640364990193901749511589240456175706455343693158587720057278406175336449191972838973840494489264976713841894465198051278179085307702008550943082991200998969610318772503977844066663083575847724243071887222034386246704490364492824944284842444870471361307892766783441395776273738446097381259066064146421457115826260804151628950233316094523414678873663925325820146846988121773965466839094405587325944729686972710986838738564816766959942677781007770939218533878087002030639378613056078679171785883455393155459365459742618426688448205600843281206517192431285565341396632394904779435421952516562233532425676099874980756734629577224118019134633595120659815254520112263053379967538717725273513519049759888121487841998166451578463242244671246591796981383364771122256341377773747987638695306807546501007538739778330981295871970702713342179594766528742912544086500491830000293784067573600166882129507368304714203131680664987150279174667960696932828631813447331484840135342276825812826974227919512050905446891825860277427014564601525263324473377192525343603445181902308856618868503499098949102581215621102077238364274402077099676437588797317139632311964199982993965289457335382847710322496051327839767908130327458835874550733510445005961733704028087294781076235724465747743104414471385146477065186629800470076110216825150383863800512830252505807886687671543246608304900803429759606904268996308445779236929102895523033111000501297839654434957049878426866871379143153579114857072655273877258146285535676503008755819478727296136872754795543444963549723600801154812624661653144716184827624551298772971414029359160364475926647125475145155170603202226094198153517407626285013850291883244519782035762474344730378957394426782000763912018636547807080351159745851475879714120884741821127597866796285318168919268873537572412852300013091125791411528920733947253203485157534615425694212825588080896088300231880161918442193723211499639593880637533799663878323794284434126830104692277718044112648055936057399226918930788109237544403323600834878450436103215244420706201209100350210115727819882576788427855872576242320230928845223344027588865653777728551382779846441032638074474308329920975518044256896391815107845999588103345274460572930206321053645206496422120407920850605014856182986579774383514048271867282209911294952500926083247079868264478063167593632642831223509188574238112703501776836903150308391433611722830799655273028305416300657792877845353861327754626255661503200375467842373764428818432918801774854504650116127153356416702422745233302156454481352756328240347943729808719224656217923500447954080758934392495427873234238172746182394980022982188101185255873347460688792360843628037799232385795432183284217978354094333988132124457094535077866132180873485109784251065850055716392011967050392919988277420289143184895344338150977254608345778603334533062594736242264399782016337754691698493301036718496764448060545518010062691445844065255170713749694878602823546719967077592716108987528758250872259970785398266723024190442763648824744723856128072774656654596433019275133537472127813116873808625343790376330647278650606205664298454525146254094463046288440698040004133510062422625145974734167208591705664507962788965608497299041038689345474572699502629172710156824884926900989852367911598256112778436034270915450186416191721732811241710148280465958610309764363584873640063060495931593024040890256335512631070281501702506727084012111584224444255834593243975648429905064283192831950696911555047719533462819136459519948305794611136986557707045464358502153811428380348306743216753497564423728216647141945262186636688266728704250098004587673557971825359023606671103644577351592555246279230799365020396644199641378151413883772937890987047129746482190163868578221993050208734315414576126816547161806935540634600774555328005919778437003417091637502181868465538782363042093181821839032200891081503570707447300646812145084173716249874058891870725276176285453254757348137930876095296000088839714624129977964919657406280167186206856275558053705521429209146716211110798084300179156106569190774996141535720354557610976493209968800599460954306769652208630183246708998414582098947650261620284322103267353423717244943077018998160790657130827939089100743060946487435459940136022010064098404784389672045690877442198112555220109402032854380584429371438998729049619769002875581343743723159267258646567316990182641397224455168461943089674558344152909608722373953470670179689831014584946932126879873308365818210809153288656587750008597292863625330348287617655907376172917198377102260925442998775924326069227003007538325385004365206579755892181598546420735619483359599553567132843299854436967071108876140206157468145323565757624393810164002198079600014331012550212337869097321947901897781985776015647434414119626821867409127832687635234292760373086482504673324718512740623893558746126968712177973241419822082508843342707609819469627899327707869352091832577280059761007060309600530713793756780382398492170011350902350867396710770849164827497753361372460049889760547167415388696849874213006068975973311738873426988650755269572984108131037368074675087774250738329392765574010651505271026055146323874211267916338734098085703686125195234966280295242396144891919972995187011080965154982743954851428428749489073937122953393702023213764185458414241815478667013789814250749742530413706837292280853850962841954274514010519830453106177368189124786999420286572881452298257282395877103969244762700650541333629038743093140147995399459048542353095366059424991315410870602728916594792757949434672302998042187905848486603282848810517086105415166296970318970973198990590727177117777873174918599770267669480100361687960635082984375842274210421639908811174790667245906336538093436192511417309990169582204257284988904926012538371344749364305760361074170188295693665734623499627440661640232426592330594057013259799759773988243705144559173146534167435294321624519110673294341905931275656016801897715164828919679964941432229958792476857097593391109108675156750809987555909802936782571249773916162816558785422233220892668880677480162330757323685603971392699184135861318731138511351970095752154106363134649406296629949665499417720586527037514547266439197089696812169930890911647063805501686496464130082228988238067700618595418086102823822016547072992557469248885347314268451721302220240224973038781677199595255461977500804567487192932869682683301708759363425435335068474160170940271495628015162240030677888376154258040394961857721423782484833998270781694082130455253165101072931775728717679689422944372541285700789955350945374742167638200589297779813243560661091155179806563993816823323528901672121730005661683147540924118491887015406122541358865353812005308764333610498223540990267387777578533688138990674621634097598295481952287292626107305915136651048129054710013732640334125133578850297981841540786908287164737506406535313114883276108065011912638689202932036135169797323414746385563619747623114713324267765141508013022447172937735230963450856156379723794886475178369319783050133139067192042606859200288934005438861868503552072096423464069900478685333421608798164686677864333334846739483186596382379891221072066512544884829878637553256662164611987527352646541014539959744829765018254673114768556694534124882362920823623975744816668424781311534900420170785626529593886852275277307359968786045614997112528763476379947571268610737030284594608574219900686699056702599606673514474092662956950143854557441814173431697172641343467035813930429789159661363457750867496598236464574074247716324512565243459054195096261807271497548945160205102055151844174499110380153973624480973517757946913808337978878107171733650410027119839062173736758268684674237502610241946027982828532871662798014928576016347502798226455666836810428920769009965138121345814624724830319562662780658712413582979462124627879629757011614344849003797155768644105096927175602349127649032196951156221963557856828557316449463859920518944348173076522078695673705348017524647987235054934967854970499107512925050643611969658878434356909457274739404717114210616737155477535140452853510367703536310575784611260171734503844568994466599661800851357205703371690778020664009333009323883884766717458019456529616200610284377807313908059296635458837858922767716030763311804871396083791789423212533622757672634200771803327960373020668472050699047697985124800657744845571926729773515882775292575947330589688296552351791894359525729325020685941743786264817336142179821183761519485412372307072147568742494559936499883785304335603848922351916592635641376454881801250313774229299407500040533505205780417730020328150930914163165894934697989441948970384190891428683242066883206491592133788171067254271198297389172159478517814927169838005368187822690240594221714229401835770425828342022260170836917174761204613400409807719538224311049467778625715843371220653374723266680345596046397812574921043694042693413537300413680811648248173552981339463988352058000326930207524072686114125277299897973929013484991598621565288719902540638148990468412795707322071368294042749712544963683938865980404200825419958424394231798485381484323410437805006587197182092025715916330828145253126392733021828778952372963190228775107858809562261727857229483244957355680888711882467255363940694022486355700182804599967558846937995713386544662591928037902583119129332317344592324025427870517757494921189585807157847933261392863891315083650736329531193339495637710669298872001520457532310154718478621843568227243060148129684012728873321438690131206294718883241437581533188225322485199290618737953867496253660683990722142962733298107492201040858241036880799361095311680374602719261558012441696209462454569719993592665199240915709546430254389521913592588527984316069729540803292479476525766287442256011064991009026125838837238562223221322383114572629047687830681624232987361291626343100817399403002912350617206826575032762656091221159721631623978735759492360947273066197263373610110021252235807173031669072906075446037366150248829198664495843385202086313481607520157752501517125899856771278046177935786860618861044782401937187395369472391059019658661650848978856497370018172496225348968336437548922666453690265468495664703999457113983815517680216634377660809682797509576658237176619529745236236246569534614644926444547144443417781640608228845414623374776042794416701539165575574840385465161736317215894756365914992415628743425349210667258465824773937906606253819735924502232762053358628770227961658192433276304434214066314171942900430107804230772902646035631178945651178515498989000502181306921652402868345949981809276050223935074823633413268094715758834885536644160883433901268845867254468892556906314440238603380654078643967645947127788958313732953957092807655788271590659599927583308617595272019591621407125236302421654205569865153637398647922353790434507571110417734125237147813872525124030451054917775263734716995639409168321837643419998045571002814516164817026659582825382668198207583799057084573170981291340903376326483435936684208104120354816202785818477942563286908792270488767902620273742898904490654171795987184643453410355632368362257358833430570470692695899635403409827034067611536707588425015078985611251159202399444017340872014469622991651672331576763734736851373716451039081725047978095373191906611751128749669509822757784410926539721862933925021973513902888445384668985985888569055927482472830683743695371514138580502676085048596798015650777644191345717005705538634880930813721442050569204382104074876854123146811621982632054206495420162020419598413331791825169006303349388760841788917583190301016864034925684171590428219550412857602301887427269967159459622780735925950802711998024704556470347237889849355424753644890489301483131939927401410564715694426774606727742966598474847292489037138262099336037414970598733770881354474518528382039656892333146517920401608756024651419727907367732749596163314786004699428856110851684916776636599314873466840655236003289254360918126426568014532976706506474359558435394939953495640396489194005872438842746032699700271617532479840897337820390783450967667042401497382219309495620825654098471605339736752836852875403690767541891342415573380605847049421364482054951377491237088484670416135330148690934550242778418197339307083071285693730175719899472407861262750179222547547403926676387984293619063070552553412283715137585461645048551649267341057372935737933547524356941685023011564179036287158222164213302794325505972285687635727555737149856535432683746636857659054020802657334429899733192902030630284430730996218017989718894245496660134997448264007634110286165560376834332481992449776243489697297799641666942677115047995151862307116757034414582901349284494495501773647291359580165159522592038337886604107860060574411674865953685305161236829840629869206135058094384092959402786602704473428808204768401609933317459896885871502210709888604091805445155903847995554847647797299070294381090758982414570223655341328621587690291725053034386636895957427122365779814281692334996563359245549549943656080950429192051041955646505659563937639157019061942867148984611654424548972691775074766122289959792823391305344457884959865785474051121587622356483735476002374333202789770182646057840335384890459143025739906504676427448439370448757983776413759583656784959517698388568828601088563724264013509146311551775665559630069630348671052800160310502800140146240937641734567882477501257249803576061109078459318971199855012196360012516574767320677706278689699028398907195493238033356367952665024318181003916753196676332665507686171798032411745782902619453616747866949167603404052227342162613235779144809150625805284218142061290003229266269715921344792449330365493085375781002405147367514652385759215920329143961223625604277919852222774095523482643861995849044726524433720855370547194759442502980283118945374083801134790490842557445115091372770193315933844138210130367280202640519392644783074626035116698623537517236987785734229914401662702340443719073843406746938455240447733428126171123561035797726251111982049951414938647614545061636014771908528973889711805441947500764991444099611212736644412417909832332251824711336991821397379864107501664373657979976175875028074897608022921955167822001491867855741191047937182735870701591294070393361677213240232942688300018262253959073474288284775735631713885621783150683202783548748067275400537892483883344834854207796229921617425505761044099628262862450991985098782192013052006734954328545452117912166783412099133649743995743408695371618412347964462691974037708890277038311993165321678099227462273535396648151943087070328308678442711380030897482392583752952954370127850281521366170373594140959111797889643584509655144730858077960767980914970074753717947835975824795864237339072350043047647930620361628170685710602248616998554926472758925714572947957971767713532927780407415983072828068900417812822962195203080987616620937950974869702869783364108656588748474705055764117173480669378989818806418399694334408131771702085260417181864351260062948239088015756423673929156599440432122342875278229631772849971132586509941010525598048021930072987213299102832526599508001292788952234043369389211030579179931334123040686367875860151310430615811358585507733900322918788355250029018088399363452503977363966654599122430938403597173320770742158347677355357467025365222855490887998208914736716539824941837271719212115105376814957505636897681602085518191501837893185913638815481345757749634653379722932730317014744230504879457868007285753315429391162014071660318621523301377866605228751504522448187903991615231996170887218020707275533291541818412341664274593043597328303261511866534862365726951300872180167991456721693933166445672446533438253149087171390719469953876246794715749321168828659129042672470585217018654652403744151532863806891890490509406559602572665316776222566223455034718343556077613262548892387518653859267917394390826099971205340982333565431144011459179267032672782156733033828353224689224608239590212538645908234752507960428076765805458641987791361318061418954327555212305302315456644012454673953200194811606698706889430383201044923774373481305853810008256476020688258371785001641527212390613847906570369173073573589643465804571149170916327089645465578653806524537173463481558447399295595309994335134413141526805411895107829186894799003047848354640424753443746021481607250856739563689462521275616856590798690096578378356914506419039120909472382094119968181697328834394577128247304870752385078612976597044077325197058242118595066085756817590076730529520907824792663995352971839207212193047344073028962731644933680143868368270307050800330983222566014067398104484257278495141455561183044866536711170984946883833949161440444160019312033918146150165730363462241023627112533125650001751105516939893205461404363608263815076884368529746329294151975583940266962154705707195282514928586482728545130278189437986327968590577999443659818919723698434894662585307043490210423009574509695530986503904096006387672475981571265543430520412723423430561304737424629780608420600340121472454165976604296240512524019158579888297842938153476525637135484041437243661127899606561622384686655939752437391738418509164321786506961227987050536730384421521686499570986845040026563463977854769184178878728541365543306678845971039632016006138178771415918276694053412364552648972031981237166350255073863699071005830327891207813422488176416676252505346422976617517772407238302529976291164792600818517151194516342077329542331352452211338042797092197815177484775069507475091836180035096229643156736306196477835558570044299592229829680568947916402203391198694846517284059900239848786950809100169795800432388001352172816407484473701150852982763515490649234123343840918019330782019419102374371132302861789980829029004952200614052323897745015470948165576603405393446247729907973249437612007639542678212184180819795430257961466786155351679030892760393632479557073605253943471772858752118748003393030504215970293375385324763514361089339279829650303910680807748819569256179185810501928432560087418347710440758058836400159802419604472894687969004334479613392553482809632249450315854161095353306455582279966771029048219770502820082639114865687604764863438565438277306731937695738333757190793433454438468573136275875803801655306836618272714784674878741047578253057918682397462419772870236923967832600262512925703908586729456415169748739118797273080120205251157379785893681114722719308440095548754400531747687616961714626298509637562205642383426493417505365278568536496504287094164911003568753027001708126281135393130501968505486629405105405025531455029587034156589425148945704695229868578846350909190749655863197602613587696717579507661812017666766504829746321544827013953074105599602193307268209513240957246575432600143428470237077768705129848134150397543188359681169767515440689658048353463960128933718442350089394500042735982849101000129866287354218297088892181942857338078173831566728361310477296712926635186577803189004346518799335679395316853779163628384870360629437059646848055466980833128419489663588051216443952924439776347194584506990809159846352312925126453180204905013885527840759565130228068126589393577832306401167213938041270176239239751212464881895342044909292628765083710862237955862002900311424535783508705388731888287671720837666067876909570456360677317034623891086319132377619343659125918029215010665710456728993669402148722614839496268572519181509662371458825111342936980188933921292043057772876170072575403973346133273578406947899581677055431340109593740265899829588042943695994621099254667250196732626380431204385072896331589330956474572143117965890398616099003128671978931915310558555507539458580721178005619145539446213800426672925759691082495066305454824810424618431377672367106966189865888039469410104012312668931544261998035611958068289182958522849680228366335923914624563238728407395947916323221498087379071213195197000992520904942826988276352716685717602486736098520785915367960256670611972389332657632675219739257378020678481224984614270441298949066334116708905860322284977080852234766966621160169831498464097371969953423528679206628812771034020217817471274023034953548927725560129426753925463246427235232048760896741752850113824196486360929533817130964007021720855735957356449896754830227237560879205514891127701516307701209814309559297713753469170017751434940567041128471427355940904168235853805900382225001066268103137434192732104264205841262275768326663003580273980161241336502590654432184371826103868492856731712419660306839767955519574581397965584865169911031901351613691652360996074181190378367760648754656818609795479122683865101647568716319489496834616817210459868434710017552991495314604016634316363063695688869159153839515751660705948270721523614097438635957540659516596723838097084378368593056249669558465527298624562808103975545095492585664644506241635930697142221619948526253840388182306750112484677867314307805028841866339398171209881740548848044232949076868928771114291034496139596476123379055276670653728196635542331033861825300563054988339064213154308871416160122392341996188166943574373837795809289776513147694080617187748662832468161887493283560114612775659913680565961579224267053421309525587124168102601089103173268536536642267485496267657025887561341654492146513193454721147870519497445178472541858328445362566637872750899813322467447683929082934750544888719187007738967825940052254205164453895823949287218035513557024747123909098277503785420433827114980884758848606817656672792193064091726098871163197507775143309540522668532989904740326900377883374121147320592716942975099566552985950470337339251261328500602317458237628080831784058359594861418876685451378893140175103579748999438556869779171497245009020375328458169439572081436217926912382775746216314197650622275354632232208995183076291987169222340385332518479050596062986632970937551052138701808255388740395853818992543781205425015159001236948185349199845601031145236615038937339977089297210336416339101387175826860071897751207091265603086883813811523542821191347031248995088525331484999756507325005832534076718607063308554107175393467953319680033762111757113725725230362075666731774406276813926485400342978162691473050030861836761249310159137817422072833668241214951047142861183557227624061887738562773636163187557328971011463997756810753368356615798251920765555602801224299353279750438706446104257620826266854751397372355548870887343093361739256139114898420899506269565447854596843631303317148789779919777358152500612234451279606696296507100469146525185866768309703995464392342201415927512197626420221563002462944649974282769773204064283204752683312021234903630520285628359207008663528439200683153927839309669369033303445072721369306375698115801825718161303159788738360883591816629534126264109519746401933635314558444016390647407373761402778563612879481822288166154480002704542856569603712325825631359893606548053482029690805913377671840878308397392414746703484712101072670083839484107506949054357770414809976199935250263439159452746594313271867176430107783773276333404521512657664468632805041055475530763724031399888998781171542221618523328600095472179173733199491084032602191238858407801138089846190720145100262257635339547987800816600440596042274988055819670145505614647486577182915381724210988997138751067868553834606175197666323729031814235991882584322737674613401853626295486994843608722301913993388560687231417172518355187049160713009086398475726263456765307212453065386159980560949163569163829778621543925470572959176970952822956968155687487721535735404005438692067548119723725101017867945759052684954961309572398743093076341667897714524749794553029352101875866386292706226518337468701544003968231147040535761043860454866149801038156077709503915156473731455932690796490198924630512325899414074091011818213724769380810768186316327951909470336451398955942324688778732121529449876939063460838786761996228826959290605535903729604764284883167241838683970826559688915182262782363199033987985841675437626402793596866628925135099881509690449597362636162738185709114426279924806640022662692882590942452535418326973576507179709163470876839688580083394537889855393281662208735870068612967380333487094541227711759668269556006338092806818599031035402430741274570951400951854779289692276512556058719443959386510721213358255987215448929944470144281740768805197777490399626928913269966944949093679837385874946627719176978121598634989827600033479776576904033353565418541892307701065140850488737530588989040649065704343489399694057906023594067298844156284489944985302315372493374905582082779574590146866464221128037119254973483395192751362728387859405929848615004055716666157824150017672278063705103420938810468889068154764827410992635141839545443134109621619302472465051617201518986190171278804969985549660331748535196810287260628007695114193339007306986574528564345338451466752930253425759489393796847511236948936722093540009137261024742950593927590815436448736338068402667446437391811036432971807007060073273179024157382600752064577154320419063927349488896280055020794507552132547938013821178103611594911176860679283496017409748403576654041070565018998070617229239357427217146304698932229332239814917248431962409784269610171743696005830116781595715408456678251044317023090723076921016732607415450109006831453946717665751358882679264663987078872270004900186128132758302941740074190771357262458698119714248239932097050648176063564465652756735756679371125983781309911912291451323925312069031502521363637491301373089293217815051259971689236922886892436915407012501169266859397739439065626744115221818427611911094616432704688942859789722271003556801730836290744184726241328065445732714923024541058157091229595152338620686331690199013652636850956601049499311443648880562243270105484496131155280192486597487420531989047274682334601662472100214483747920306798194663628183016196335777746245452512889390875694442037735748118138913850259540040355105018257387836582019013981094333821993562046037529262736977246979898222021004960916502835595661782515793348188708772198301324697343997317069346159810273062536312159293138919290560421174953235167251534610803048627701926957756887431956933341681562440427957202247102495471494742003111040676987167277583879608092886225883427407050164246512837876789593623224750982090357117529773464017401378968552943291458473566887572854720330583827417742563865249939471549319754389436017561730868136773549412942854763515917921302962367806185373605642110852904574530426509518482096922212807655804620050152297940865761548235994802466075428391508748203738106144587475740497364061161711646895102154829130380924025708312902749856450153175092991023320248083831136227843920763196469360014011688991403355368027559434064511736629634922412089730835485687649854878673666593060250791215647367609517196232121652750643716131034612320573810359426270306325043105812820704258628766242625473949758279776987688401973523614629668997675247167159884847081600825177423977971402508288774314776909203483770228898181185925732640594347359815226699816734311177920414952121130217288853191709456977280001659581354465214207984119600234890908519136143437180843234715624326814971325812388900871547778924732323125047884101524044871720453895028008535707619320713880528684370216076614146801117012607799520392641211432673391088686716161202756239693462943538906883287168300262167223804322997632492534415370254241180411855017833920691209545672268147934935748511010635362501414485620778991491789387214878445526551571632591967851096267475880590099041031221594172145945032633383596408198094161713468300351260976096320960832001067494813005319898823685049142095445910114863486991240765765559814430376042986507621354574061924131943814503294479771520218664126023203229387845517926041872090502614694331526845354032544043131967411054221773141055564379416482878048969382351783797750711754095608023945097023032545910138499236918457297230092256940125696038159777784534124018402824051048048713099222229536839687479097456767741518787769333327865916571249258287828326676542300829592477907102217843172657244274705916524249851361419750068183833365036101878775359473998868683236839315236633598635886259321220883788703143942479779205230420432471906987431247561049400199407783766662666880650397258304154220377820434006399564523674939606343533844281645446033016829094804296228505361336315677995378436999499194801505023035881048872402001548048994936863341897544073733084542145825563756446755842097530925505206476307378700827187409222460253783648645123013763552906143016177710787597416287907013843205910715496047908047378178022759917396854654900819192113857008028197244311978345455851321916173589337333593420074272253277784266981403417385767388242691400416569542436037190378605175471390757398837619547694626361606331250316042230851107764328711814869926752784427844646538578752113802552633402344016028340187389896444317170495347011756630992402926443195694375153437603657637505347372612704007240238476488890422612008393787255206095429301057895725768813393475685849185020791194365055633457339606629195332148940856517771336477547216474703404329695457623086609094817834971653868993992167465134967206224096741987303359043991737743634599569011043201225265562912821874174289651503671409484993483116992243846391423569691207753269284282584673198822953622934567800227762089884447584537936349666491790809561588933220950735165886843900457336499664511273205040919386183204677567416337156956590121794865843369364077089751051067342067263713507585171537677682233628706524747004626311248604593896835733251367070349367337556274597787538430203748962720656566984633818178996696170222931250732724210647326861813520591291520449218270386225834552626485900071293395054869773737202008480643533130559756974674229773897087162581053872431164647548362235157936846240208401199028426068931251416870944104188230084055684737816629037305684972486747347515690104640650228427006307160952375957045371788013846053676847939893236253695699847849696584122645925033740220626935966844907904893839829985025397840932758760564231764678342743173862376782136366518620474459233628068512206956467973751032184818693996641306983851577061114817470218093972301494736968100072192034004745114890957165815701686523344120189716439894344115917606867591162527047261574206995994716642993054015761522475839575678980827769454683408356203263439809774374612776115032666982562254595724081169596413735200276586964933990866999858778939756856352005154298143875536859259637093651945672950227349295979271744444811776494116438952686811562313591252325030031578654468208961584863380044068613930749794682416109215492429999232878374134077692885465454229845930451075248441356960757909211765002033961235941149473907925013028188645327242962601365764235865011921353439975514675453246376114331166427288326565843436670902978145608257353341182587509689214851165779856164371075623222706851243360708751909661594214511054647774930409968433941372913051461890137969067728444451960457550670872327828371543621053624545888372415214786007873073177436692649414896631148282152093482414773981099794637537696029716695845623712025025017582085339981369106961386751704607869899365006619510904053500112548821535441943674149184321873852687743241013090701943785369167177320864839637882975933198314235696400369243334859824322850662690717999509544237509177613211651631325307783684407181954882509297569919554657339760259638102342713079175156681048199093010971908194841837519952727202746285158035425044061849359360989138943186449782844840791553250171091838860357165714969061262075213363191348664766282501025586100609874182266727431077879616273620053396778565660521539813096027840991786152192732788929684408896374709472650396927724943893752915421888414939889602336142604080108979243305099633873359264861654839299279993463575408376036482266055206566947770380280824969955334215670708379719140695848693958201496687312643755282144579513653884511702480894263711764118080681123446896246687984010893529946946077803627696439047710242869105797488256767511619887244248601387847972481464215191593934877728458573827053285570218968415513391820913030496875850492483509205469378698841877245455074866619037804552139498558864640532271580236516017072687448013178206954295676597052524728546746464643497167775158403928603192176290123841090712173457294518133575761984445204379649266374186972159260640804040296553240873781677153070101605529499619118193756401577748590365636355833458782675900562299928710375454182081053143074495218813095410635959793919792875861111201576492551440461905815270386159252561502167857694447500414287872977986057431770761729605606419852255234572394412495909684191437119000959612635646474483061304137422659655011728514435928570209116974303360004048706485354956041018234392133797059565182112382744270300346689128163221256019921922177631728874215946270942031253953527818907371382855456497074585800215612340858416577278790322253665391615816653410770605620969710625658724240816781881310232977904499305094748553684091584796910096443770917900048890187346008983454662977443851775576390286515417221358620403162604986394210656380718830035306304715728539967422050125323824943744688811805229089328609676140210700451995318433821407955245362112469034264305879984142791081520972352999574226297129768357330195295178864923463887826018596069220716439825884551729584877196112211162130235425442018366451214579520871438307381761427132860072205391658005046352071270903328537128299955834429863189398228081605866488355506072786807913162190829173087775558085955349703785836218400212756594311156884031433944077929215383762814325213272238348913891299610751161869423002257544345837812615816438628048565383045077995428468491122909310182257491484270915985297736740869807130376458794822861781553249171619049008504602213652049066683010546515147625243120129309369827609763535316697321741707800614519920686130467323780057450107592506672574906802976824238463784017497506314071054912372149196540086795032274609866358022050534870377874904540515528949154543405562960575188601039023628835538229492581100603355624073990680470505270980720849885515162660292508921550786233095107286812578464919065246722094594116479014728610256734321759546924775527073527562347930745972414473185205442220769944944188788022965117461504868460254213741565298369788919145929663253318348302936460919090207930411304057287789347162384273202862056835532562351590576767905637082694318815407986627494209368675107538917602746641151879326943740337434033045637540673627835912010162761583983316713263748737378988890123807367053056404584450062106165426586804602237546400751208935230237589898604215618799905753834629349826201115910016621501598199925027004311821668429352559767070713750052780979860745312469297846038894379679818459877835553534618319672876098745839838902930674092061606379452569569276841624569620592750440761093893208658049585232063253060016540664881685088301028971896353551725837677357489429118269367406583492186988209633443561530279463535069331499849601210921033386460730092294994584770752305359038478634063808281828747262623210268361339253537806709068410480743784377648706654386142205983855659266652537007621063743574885723218694701622686433371367415539500330839462707450968243304854043192288441210308956003726192660574038757739738653087672064566793676000521972001855955476628868309144080465421247924053286175408136759340462544684318165719205861449611240902160036874024396920607940818961128038011460961958106207121569468139414992381380356542842830792257755759968807736474249551517653899436389440889684751386645393052969221655487958145721639094717596314655124062175938911732738857432037546247673821264698452961559666039997631688896506385789393013706531579068522511315391839448832705973572703211179545971410359347136517920559950620951406087428347660729991099511205238863221903046797854373240974414029419260073667717557496437141976893586845336128190904311755969256677124657192502445011231114414011005682219603043444088589515205949460233193919222695587705191685318268519422956054269076347138647367352365201754784531768674128881505051970485626882104918874379363644912233103976579636022209490224517830444660618925978445606907674222341445670051245173152510074900913672992564301959067974945291621226247726191886437056717644560025774342797062769804726899925542609523699179314096801593750005566702153783940672433559711246124260400256061106039825705553111012733741262175281408755973803451844320398116854261528766405435497028862614326726968002039731921152269313860558987455166368625001252090395467385115438733786768403147616418752137025255335496843012110033485842916667018034773277208579865149759459632874446487291379081430816483359195695339301960289438886850105693517478124369035246544246655998119501973443405820646011087417619057682292303559011249801128974765980002682611440296869985767741349251522877737966184557589000768383330091367489627679906623731341575666490253431177777020886873283430563043907428645161832145160393687165435685120962400576889973716706218455363634684068545506963889701861319994405193416161459587900194122399194020981584205274735145379718255659128544116274316007462930163115212930523861760865559744888561834804195671041373226278591787474170357757931344259402219960032348319970454025204477331817800837436554881636858528275886576866227262342771594005578181617281619528558393914579705739409461386692300301383321451180869105779100288330992513331595646652285783568463799515394046556312585398544616074941786920153719330090385412587275551866076453301947034427293527085646244328679535050350258878489064087366078212550357238637442515543263110156245657983822389705872612846249319635068198581627045400130460112577271051624415714972043442817505817957377970326754019072674107407482043291426523614143717780421551789194112801393456408740421477256912996628652447610923687087509821820777834274912335520387932663408661080105261733681147889426023448708442996340795092622694265942990025168990662589494310086815156640350742257371548247085847200685289890823633299714101683986979828083919935364382200415384041292620664300837069409521041188474614731291457658049586721075165248854409644133305755258163577173111879804232898555985113176611893281950402979104534452091713857552821870516037466269224140932369126042748762218288162065723971804442158913005452774683933277981793509614429481347264113815620447471006316154032913288368780710079670561782089282615310611755975340633377142617692339563518317217053180552128011165404320982779022888000111063240191601655683863060330374371980467459374153040890447052246714334944561076140034700548522870367844323336025124705961290002549539147840166690367140578035819434905321271577854077865677154542474861998031145175660091486459810499279994936655097164224231333288873004900069281543471165476684545865584546370976696077743871245537003272199681655466685987666782582724396030530882232700006412664534898258159510615007608850744281776311954731614902117994332826751832076674832112277461571681264877670549972160380769456040586122371062991265474915003483922054041324243031650063009818005492851163450769693736507706255871943420506928085566527206630272906968249557623462298916802127183852542906391726204413492481417947836072515902598312578060659863121422907660991713941926696635506632909952709595859573532840164702581264301556342602534820408024685242590059003735159733787567082605998978237841038046652737310721780831214065572988957953115725221598449477436938329220601476528606999691731708969562861439547660328510455436875990574661179683372825708979795214846769551519677198185774737817420503111536471126913259594472093638402138188027571423602549623471124152927467029747011745717880514787242374177923964922583932481042766110008431840561191630595357481198452627008171828129349203880962609834788338595893887384716756816802017897507679124459004365476043117528255605150303393275283614844745975092440356394801853131895898780872455161579189515112804035561479243202948327208186916080558935911893167427732042613925787530875666161659629497823412521752926416528016751472800476295795212775451183708407180781733782142867959200335408309940491870215797061085289331723781302307050607436958449504218330256498952179157025845273308868228975889838916957018503630983012283779678480003701036483335657448689030721584252420570096282982491779116270964992260505918194557857826560407973618592230366443921379800349217071797393442682557172642543372890330276196208935564890893948291193791183555782679730637539814759747502019743181198715076916976273643081973141082410568565911109118454639434277046967807490261755943616968424375873909907461786406257451088128584800900763535715201988971713084942338293774209254133838331369479034284792006548086858191267875970995611620172188583032052535440396381854876562150931853835940177245292785448110289047151704954919076052738252532361072546569840696009321919998543444619044164169635362734985923331432846617746666763944993269381216844650762418113062758060355993654885193039984668583800812991897181944189568955717435398040291723552602544390375328004717805279366952798469358719937905168069085663443727542418763729510651629319046069867850509124894328921074107434835958778494562208069314813575744282461865067804636872486276433572203469797412075542588377143373034906010887243410482925413977821354844723302635302075906416923892566013647361660147452995802845092166057908664880741336343557428214790378018529464250482733632579131882337081836791755915017230536271696957671685607765827051530783502004736415949582101240273335708975940908715271839334636810736398191569745548633650930632493976471987434374323463468904720526389466383608128747289958846193596261616341533457198295780746060448322593585741890175258441404278634550487956838394013525181952452054817863041926295978348732879235038279131684019996094056573842772026258681449616946273115697985411216317008254088102493395933579623019316475132326504570100285404201717448824974162650256962474451120965253397837598973004893958743394465479453560386940196495573094405686199532527015667854013224424060240735760766508128858700303760975459409826956392658112916174129574261347675636401397429126398999387641651497134844802155985621787769388493498819531420012252270551324738349202695141170793371071075939909001956527422863802928884601901901927721571102576142120332965377181370372034792250677491860654415089104555053892314270630736487922017662865755301042708421200517756104010634843543366869205940376762996389496790862062722940453633988101267964790666563416253949835388598459764756276918020327761661124069354299520124037290011272260893961318963461721921462293397883977431577270212813488590539182580348334453875515416919310374085423831845797658001014608348252693615303180109332073350310298618643622127561328648139318359128731244141462791085190578592768496290776286254363182140141684979071543176421733639364327134178567322125091648551932679068246868290306584413880129839141997194683954195790009307712039163480358874903428568964482618375360566521484535136776700000839924703554304190241396093548621755044463508829196280854881675871095469221515493133018392205943380208501359148808012198704361173356914971761706779722321625791098571099193443788103566552311391631564809985982324532933201719094899579045585282713826105027016293445336026471993649471280722928150425991371006195041924365962416943555972745986235822602506835789129234519387865051355509825865446364622221812872160223546349445496510525256854323478933616124591664085860156107487385787133573481538040390699212975248787810329541081900292056892468017168897759799441552783146773693515984062659964329155026084463329453764321235707277274544616842791213345110321431115876063010721216872708023424982849587088728798026839329048272668439116637408494357048541820359438391279935646076145994323818512203317723329280707723721176165522188286043697600481345137887890487492458203653032760071674169548105814733293443338557115081122857753489015574333526192403274213157198970236709531070369130007892450257601959195333071313716370632127458780356864956122630436277936785810281452085026942684380401271288940584482142162590061593574913867964718077661187231990480078627832723069174832598113597642363952707703052322929987418377554891252868972644996713804983987866511927030869620490734604839168654940038827394549284085071651804890815702494162939156575008515678300632804489948004018255745950951942539832843139563852711665657893691232539244105432498160720143625741812050005857345751575981366287324767096934121928635490046588203980655971103040178598464717639682887691992130491247168827215485571767986462354808094107767354717038800241170539200321389385203771499700036545024384373236326435805524024242717420359160162874339974693653095723392070834322392120342876267122336597587247823782833376567299451357396250986663171430816746881068433237247391942329793379461109979035560894591318437165601715724498540977038323098431375177507134824090406095007309736295675297792356606549703849127474696560374698074356244245595383555687217724474818476944366047664261081534591202880568954065318974077107579224239351613102485399591170352551240074885546054693181159970337398008468750077773640325706413581951399826445149896605149739640287836787045838465518702110541077258194437514692444760223970080904853787521895057876857889844100924564670694395016242371136037172382785400441718396699293576238026854436049333517144157704575169298365345786617596204497684666544690737549315397153332435197223104689840248146254900621146617595626818717954835730877632341664262882474762541666975390805913821951438214151679766490902993148764422048356532302479692597725092632300140669053423096589638262705558762476988007860633596115213993875641726430293797503721636772469092404786015507430343611025412912573096935646371435211394535709881068242762771941953735252411761352234763093358454385616127540660803672838819253967346938429505763123611954641914550057275069461462832795083942493687577174239559572264803412195786758609458499908520371418599975545975136526813808247254359548556063771622529887030722922551103988898724107192618422745596235633587352517725286400409190937454874312888426564594882425148306978364265079729720847777431922020643115814045975138685441143902953805306642901383952959329528955322930166122463759678794972256345265699719219864355123260768778045815954179684291691804911840706755488217566858223569543129544300625940915312376579464690713725056455288996348756059965688155318922788028970600347332743733209661315046860173432798370305374958902803086401040249850801067629884462536196033831511743297460823747288515299750579778757714379031437156770987098330005264264433919979524373699081089460839318785326030498808732540509850483496149138765078960970965539319203181028877172493780868069142615179816825933123840669341388144750197282024489725515114115454760644593821575063408950428618691904618956914942603557865982228204916448955611395055927275371292778813163996998614931277119411154302152141512223687437340901126038816222237583755720440216099523025689975649583299378243444381156750259864455709535986454239286611916286428780673019416591415144375291520159403922817612624352872932202137008610100273464130436701544242955409727340637616195886752228804476190362644998265026342805925454865964695575168622674005922477700224199269014134382317537178110550495082718351805571303464248491416079827924283319226208945405743951573474700460139708761502925061420592891739980874376794534669373996869340037524420956545329476464169433015818050181178273996121723795137335678864517789729155272158108896737293727741366061440638629529097199447545117887730329683466819721889077859695695210946116154588170038935848080076066335641944178394087258509243524000234212149874522938239978524444296248251119490266579435851920361959392247857805167942554794157088997548105883166611585342192509826794152775995611291765424670203578130843086740649183162132274915768139257002254974093870480065189830310154751431563350517257629596159578132349414908642852580194318504043016805863633756070643920527933296017493979043312879215290650213445699957998710558086812118644885127508267203678011478633294322176946508451257188536067699509211139532684417614434100059679832861041385617456815779132106325709052511869620498349176725657142449244549066696600484644751943879820241601336069891492273923655833316978640150125131049811525165442062270530370232246010483216040507874085284547279337962544477135682654545831442834221895797845417037120349895218304770861508438122862087019258241122829228840328831340756166834331884498966112809681910003080399654940858323394166205154647133349661147539801418491263478152455055547446619532437657760834005029435485027064582085033341384494812035779682814072308947623728579233405063935505024212747250859260836585535080896383788384047554263282214308767494536757067602174638551595771694828892588215515923313144599504339583637992869539304178376166945759629836751564736690672181516108434012358203708336721301637036009564940105278356273444788174535284724964550582748580916848861988712494054683579969850869728050840364409580919455226648604877085807685792321399130106185674848296586186599012949899355081974839238657618818188870971965502219216221948048688927203646830373310765698930478830463718482810003837066141457333385628654696177440963494033944964512681403192098309823669612454290717534158333020103972531773105256129512224237955687228988327937504786152374421317285013214873339591516709490534984505457077738618064733410561243624740431686121099731699850819429609070069378542393644122279718564650226968933181501374237111766330956360029744244348957597695854267969737180960741294284919432071494856457643865195063052144621217746974426660264414456590877351068344574655881505900427491526825897335040466623757654261190217641680264079487489069026057609131718670556038635471353242091586722148534125057059783575359739222607328373853890496527597224341141678294113877238926172198592180682631468412677345961343076301564169024868205565909460969782429125767817818240719287199924682959714400239699429857527346072379406497145112979118007857535617482703801767808875143808952326425608125260021376858153217122863511747169205938794135797108673256057664687956595582861866570918570149957967580247259838514456784905284629170052831890316502840164301434862506624736711024974886740637781504971919977544963516378813469427098666772791563217985911681563280365584244712901287301365047370688301430843252824739150270722911180918368833913685826633796013049989196023643343812301492969783949018758914846330807305535908848238826908323099596845789963834484052721079871907619483586789399186426197610680550216809564220613610178992022065223770468438376329749840216295477052406292862010284465864284293089195693652165416516814012485002938728289814390356325146944484421697128572335261395079338847941550067320835701465907175640550506861446647859406594313780989419675809831274491339461448071348904237396357510466912767027184789156106306439158361160340174022517862113637957684011153717087121159432775389576983459863329667018253097270566122675259887109261625593039567237816893322212359072396515004334444155044345316834920239834777722873717596393034565414017436079058992652147490709330980242692129997161093029844101077643369986418682077569760684090319105450158547924971679526107651566291291699798574064449931950149663425263834420743414867459224413042590144581559114529895615952705873727999215761475128066471122444909425582828198132771806731419064537931321547069368516793624066035908911812213163683129521264411241817606035916830242136416176808863035025151934561394873750096306776041355912787187508376021071394833570216854698031886427395782842727510908857854162766600510658244181867515344599989942479861389436438091323351841519968640041254184787043056285576248005251708818118314051336661638271620427323997583871344212899208472162131146404286178932640524179394533054797223429105569660302419670181824336080479726374673747554984859129464011182973955233241576963581579699286845715577746268117550983870983649378866197988799735061803830984289608265161814526950534996607922318794171363762170776015024199700455545386540904974816771783459953994947408178909476071462225707164478623847423922230323069352235836861441511105879438810681373487405969759103186333460670836823734668089418103138115903509833215093954858937527100082633403253155093080066201085114318228278312472530509984523380673406422765771457055404180041913431008755065652110573721375447908989341755538831060912470250495600741790976904581567498990668960228727139109562439522667625615096642017247719544790488610016874734286073887704575741344271886564376098811104070668226191972661151534509607545370023839564756506241988725527399749444302699605660487761267454347102565103897532399360131690219175330783527536007975796293303086358561221256337076270215351422905935400446361875253257779693361608979424979233628929571786132956523473754418469417956820787036031900331784094483376373921874792901889418433269778334114487739486675744408463841515327474703222743647770150299634132863393734823091876087445159743676891911446370109061919265688149167910213159325346621643615214806392337457698864190588092960758258484641303188265597101250706146718650310270076274888097903941401460632629214029189965104241636861384453959370978566105414559394592150925115478407308114424360895087737971428286614068862231187504884630407102430704128350746509882588441430332841412465765601236743959457334343171757909789623516191425587849733032037671687375910154461792399787597146003520588320324312214664046755589249320332104355225628152324279542862718175053833120428920692180915000258610795621993820670530738993375487061509346517594867614825260222215560230682528120748473926972976309032239061526056864484823476676297263002681108939851813304271974484088630948952295568775868616355271349115209509375847259546740837412988007291580059198335646703030298567679142032779350543152776952937002362790350953001891729067150540813339778386914525012187525244457318573546431632174087803476349403206258573147674662957637859280845340354561979077443721754955830935271365420983700835635133020709781206646570494586034775842555394466027509840279471076583087347993452361073847573572482511921415131859929500276027958366445044499553580437229115412843271476233622819260224873192038012935705505151050416163980693371196936099760594314992836593616025613251689099298086376931668719728319683280598543612732826827748708873780041171220137524983927827065403829497652302454219910301496396613293416937663665834189160943603756855776834555250830363562642792926600034880346776914705296929128855610637575483517740422792752789049284667721332434741689383483084760733886824686406100521227776986757634751110229429818724609737208671868063721475968976326438810548549040156861930038824871041659958349662558832603415365777162650536990461729426073577353464432762969521671586263192154338124390039528666815028491658175391898153000672219302407368231461453869832395843555665578008384288159143518016776792160334856221319653808925415292868980815224458795174421635820393282121806412846394585297451847506197114625663298109078556653708174014940118532518127923935685261146699864036605740342921150180722538717154759262840135862627662398459809445941389043742004615218544838280838816738675027330029373428276798360254903673545147190461775458413536803736786845874753713166952899958878486454707957146471846697662861418660767865749787317283118698440956352543586227918070100866559911661389689046756887127462138369603879867337043490252859013745727625428217276150091847729706684292576195525963060615776918383816486649568643154044767485826913912944988898307636397672360232958370548252878429589397038574681394300762305511762714869745012749891465528914220157909708472224620133033194001065408519352053008988852887331902354946012003402228937200282374624734345836966711629627454477448212231262343821666587242417025616140404454671763302476437799761484513511737853290734744039663243494963420131819007533569504697320050560976921228642500573851823445844859084137527580671972869951026817061152954823345327433027135219342832104935066405476041081106104301436308001011696916252214287644674639304774395751591348836256473288523290359065771230175262112811466677394392267725448782521224211232745956459939575624410879016034201681884230718354855690485072749584986330785193446247526144473531740080614908006337492596910814428729825184300158585613815167157329217402238618973374984914365423998416723559693282095216823860544364640003064500039292656667079674455397531002269423874902871853233619098245417827679223448029836023001950787226111303877009457796227849950699487220365681471514146263334110887347661732111418106124324941939180545067384277449908073807027210725285436356595716441890284184355919565519536215984099706234540838294836429092271519265434782688813616142186191132856335591353172829668450525702520197045392070440511189303172156221333223152603968791187847833215951491060725871864673513743225951904272866307354904305434477232976663598074867971270392342274794737137233259577296679647978618790545200957932230217235074100818497270553158166006866113695663651674029748642435743872452559357178631053551881435960050507509770247888242410704185699117886226232530067571205573373872470748553303158495699568946814750251777030188579406311415865473134363669285552966824883034497387777622984555894248917494187606156550972253997185634973362116213751543420147801240789604796268114025375002498657420466594427600771333042178041405584865381235943284676949977092864147662777620003509115713569872024882749717786744794619345570828468656754820301800412234000709283412340753845750942179128398886796112610530507877616047867458929480337696084427511422970038934422373246751522485938294595708513154490276349941916000116547472433928284575816704204580866652760366801084207631293221591403272493479236893503799933394560417212823068438879562727794318330256953081000548538215500550670815193392941747636134275164981403492742973402394938354105212189784404083378482001110912441378395877422082587294976891222310494010980964188318708303693743841692604768618153095043013646725411548716989897238981154172262323829340552815116092925477632492212537729156412313994664839098872929772437135219079511531393767875090774382880778271746416863081031020383442125817001998789794170906977958517426721363393582454555042836576976148470728727262047144981772369771423003927962743601597506299445985108869781486359779188890929319141283716986976874078388830013841590011959582047419657926936988663442707940322401858622594154790630118117455568840528487787910372283761940413769325350444727906879676026766429225021725420237527431765150479090756028046861157530160237365278942996443928307803917396741313430811559485062288532729224782527963992077927003929934111659751641418897081105656420800495913074594009003455020002862609730218791854832650998151402565079159524416040424647516035847408834645266005494823880882318893962787232794430346787716757377039223364621656708535948811178232659850022660643177935425096754571346571210095972136503165661250721510287451052726329475421231044580678509821157664753799401647390186077768172645789836508425159111841546502168993395791181769597520212121781584486073138669182106905317296277103116053715503999101156874333746627823360320958883419327884497466519315704704742630678636224566159707958104717527726195669543484716494863877440125014820804775425968883260931340987881825598749441526759297117422896661765283051108707571840460133415323778889440155569597409319673744095513675222649947945980184955561408347106583100105453649254409320589830546218685401830401006830008962121384834934748567474222663116807330278037831027743037507025888281355834731243120690306556743322572651737744992870591542745993024401113019364298969511339182758688621105367569983906288556265861424613364893236204635182899294209103089331014945545608795493988628752772870874568939344848687148973586234994880329306736323974292593813602050769731446431526215198764715525195488301897029426473092137503870733801897263236262882210903648151618775939285686366092898696642628911071479917980153409540367601517262261490082831764092634496941307130908079783817146245742367946167985037338639032718927116667805481185560483413297637524243494825766967271150843573419817889205911287710623652731979343726309269619882551773548983512697342080705037362546473059448017872129057718369175043419499982150744063446738613451744429879368469527072369140261456543559218924973407434800925651089320136646470415482590583918523147029426507472911599604200951133146856860159527643581252853653928981843234676968789719867895606464434939286149691467491209756717120777117679646829551712189104131860385575944502033773106723328241368534275122933728293838883704851081097827154715900556623252894020262642505019656874115313418672783573417358858882167539711784237457075086378545210432071753784945794145547201265873193107540560396699821859058444565454766411562857712417926334926284389891027192408264284043339566010289590611679824514609385409919674769860289307991237935931140140433774704749858075692635571201680489487255970675421717308201023158284094825016388229646170005674149929926517022045574636790680925721553670192389146173417610073220811850840166204334281863965086820878664013416999707162890691862319523153504674354245751523387791178327031457233183327794408349244957153328933099120732333597659092425449941925128523247874725361964087528913054732823844333734800972486970361678809177801006455956012637183474417128511549558530800941851372801964842699034468359234636634517591690561642970221283517058346100077704837309455342997827586867525446023942394351901264954011813845074224375459742995613135645005768756348095703191573348457943694702773085630097006559759808748879764539041118199306927803996027281684054964715918551900016196096096322121880831032375835720225635325406808336345392678150977809697107644989211540506149221156323096184584305770662223358577843571689542569862811981833692792918967299651299325055482406413471488937264004408940203171144571206602478364369158747823836155422106349807086727598891219412175765527585021610111034337546178586137774200143220424614406433279571022155119420907454486152071770229156422267922588951467516143777703814551364657592876185930273041615421476631859505301347669547452659369146951493167132509791370999548781663993746740058625132240410364838362489407615862758910531680904874704616705156400650590664877139421333833346736000661862459951333945957061939074948308644699355410764936271036675799031238734247782712941677333222308706208247415063004374316624003328444164127870888150231772151705362040118893295685798467911166873856539782562355760550920987512667593079412755628836790401597185653772390023394946471884821755078135337136665999527470365621073334257797599744136929443068576069399601279079731684860634344230846583931768712484009679340679309208662365575645096641631026773519506280950929282259024943526722617499564906296322259325220865126173261726269796214434064303107347469831012310689672981773539926566358181179941182894445467021370465564264639381259388851487212446092929258908137156192280526521028372012200107794354804456661132879186091226344316592007469231072273261085199626578090095580895701620673902030362591350165459413758237400100935613637500500084764555446371563360958556011966347595020290069845585812091115727996031617644175670896550270183085918665189757607193002569767807772039823546898640959199107780621686106029298214951722854668783550203568600328102503119194261763282073577998007437567316821362544466091143365230581204067972450576030848458257729081181051931311746636789672171989957479033487545546989383949116982366624767330218306733194215835031779550706529264682454554109709809845022814698607394218235546211539296546569643295344044908759505716730246192886095424848496521951532914206099144867103469363357470067960639086097123484822150457064395771210642273519816647684897355921802788027297984084268812047515759256968663764223434450227659744301008494648410772112633190822368434708024529190196614763338341797953254151436333655406824601802831399743513912899009167063245383131742705401711409811540291463163084283791553329535959703159187465039510121879626157836469554521401539228176728678831875268676790873582920330878126923936345444408744816339591788056649702592063465033039216042184878649301135197738319085998344765559313278525847673643522243485139451316191760546794095149617770528481256784647243462955896325626687230752496404108032977541504031571787571138015596017017799818472042221467995812841255035855573343013520544287243412803271084828687491295937018422274797056957707208742617006459805024231689318334428602489497716799786392677584653697597605858807142611605360771869001178357645073679334218771611103734507730413341339928353706668831754195452866054938579528957799674364334898781607223279755198678918518875896238208321011659404205206685306283895801181835465395110573843820309078032500698584098435804406963448094708029888523931625348597489085361075400835581234982934191220269050118941814386024989811969548930407482032317388086973400800535696817012891823425943762279437275560666166827313631458117160197572530196293594141542305942714727879678192487301356146500818634238351705880671396230204560669810756227656880275518296979666251865718502896801232529886577936954728513423842880402348364174623415834708105406190590392380657010397798424939900077597221215496019100043060946799770131135171378245304979922243445263151305891699348647664641906778500025894685625134307067131604932047704754038282877374066151869742133352240423914097091920191256528464192553305895667005070164806966451573926768395585667302517617371427581282059020026113895063179251671354582638236739492276683661338921736386836495348156628629875236315603843256294555731571468146294755165336013684601144245756045585445385150121249694936947183379810168249521607230651862661452616368336795118809870911440602929208329628554999421948023236822975444988066807683986644110534466974095028982885837320080395193243090671075853926669029498219841431671981178659431137239466052776451851823879649828061826277640553379727244866832187472091382412311250694900329334411238358255959973084571243712231785381595980535141895573528761007200316717411508701566093369122460308246822510517099032218078782839917217328873473420021238980955736752606799674125749259089418591566310203888392038954223540146680629611917732065474842818441017114708672605087577020148049974739394259597987578930229244520702879406847278694570164480185160546082530446541452497912311774102953092451722620641060410869944494286626585443089872443635847011914256098456356956930760126417405171396616255441385245989519578690283640776647378574756877105827338073145174813991984174440661919982070308844209962050920072979114402535595422428708758852843433970520338289753888033195094328190968073193913622216934784587843662635910101221926197466351276739415247634294982999499511658960764393179499118237223364702827070140630427417980811536995160435094935359239154170924120216059930371030495482590881336359055053493081165745335208522674641485911014076300729771808036469782055269497492329933852679441084693446906056782586826550387621890163613086547163466409487482301830076294093814781736699560429962902001774310223125133767384946009977109436168005874271256425067846954060717511108968311865527679719288127525570260184625632794631615412029549772495904448732384115021250135082035423390582551339980870795251269305240573197730245787620530877449223204017248089792709829118614712908878038983811661178648864886971724061463406030809352716904775882905519583853604767409403279608365713638271987756374564409719929153838032733584113966007722266317536576214583396059355013876362317323939962924785472796035017548603076404501615068748885735322863257910301825773590326118692119895151454640601672940990498072401351626830415752913015260174107242722390945787542457741801988588763893168082198978627925711029450001393115862218488942994933683075406676563079433481379573798122852861666067216385709734001119897854805157471261969376143279735766400136865410841635184853052187575946597879050502623611167513710403171523611383084865418413145859214571639611963191729264306780211420127617249733219893270167875802879770342970969793330303945132974510706529786778982670320452168256657984513376866300377175004251744266894377299620101476774950906670741004178770414070423052110682540336424139794829563121267294522259036633784168295686670033646255392432891890467972769421358140261976169973084492495320853099948788292734931517940951431567008490373727193696047490893822528061245346931255991446787259214209641011850757775154305662005631893121907036826533422326930000869594198804040109464135995918941859479894633656005698768146240754558334535818473933914286873286744693791438732681109406674967919187742059852968331663363660603506916987992439368353289961885076564436001036981737623956140032498333243969845531364698425805371115943768851721985006286407181167744744551750476122944842731224506397736798524073885109332810317433395339102970389373350304962977126775472780241226190240889033771168863674173343127101941275833736744482293128512553700048617657300715875570560409085957946343909427212351678933995302420328100291014276629683308247461325661882946947749211395091200716181775623363205680093817015002500119230991132394264997599987638538435904861643468432383561297657023121595350916822822527342522808419201889639281446358883028153665583527377701142476639854162501369490214563237682738379428018187252423937395663732612930947251437909452681910103746716922110072375983518553804998032099845221323395131519943511588670713935258958217843401458314434356370395703873028237390212110200730501076793269041995488430700034504940278068929368255284406239817914137686077069047749219034871368074138095450616599187610544176248266979417886403174036738236261330182440108248804655748649959716758530100770976226551561257639495623595978912272583197938164536300810144378123853098308077316340309790653387840797273232424371007519007955171331142111005791755550444712191141326931833253646565264365309682849590149906753578401601413248653405041935162031750260769387550241937491965194366436783799813501429322332459106280401999732242977195399162305239278761902812536716053733892065031979548480601768112003431393751111171407966441896593505591940998939324822032342847121414373725753942628880518976326027006033718220279721034475723955487878129396755904528512611064437226529484256118561236662227276794756114981284409569734528873746999071377723857546540503999271946602854581477121161101639592249682749457434412087647109187597710835230248557471378656853610189645339715478053037961333711668142379390886590633184518135324930199380419651252944836478213806801420128125862048512412551887686611072255371123059683839786672322267789599350066131614161924144789206593719335696427291469791905619827665534021508848680173503359613815585232452514154974389313368293187540551020201543683363964940245782108987620738187910400899143937152227914025032368307175490744468683029797496224826362115420380156448636232524488350618234605635487651037433472639979594342645608622711532456353933153726055049057466669869909914800996318213542160168489488180397406627494538332852226055868631283308435164541981272444928559814811991243549549497404166589723511840525701419104064718488459860022033272491077592594638930150118228673430319750872478496848754151049338630018158399613639428968499966605684144708493495213232925220047035188441866417935812642798546391097910989207570534065429278462964319878609738629264990892512323728794321158089242891942332286296071297747622411712743504276963342591118431182913651915176018887874705495856751087136300315927714269885156819406728649315112805298072417894687178869297747332069165352264083744431337756025334397786008926034709610022705992902685290644545186178655354880122297956677859459818417901187973672860435624220598046919728847667889481437792365347187912006051526527620086659451703650530989594246436460777842838442297118672046706382383994254618798660372680264409556010658285742090019027847687280639244785720925222931356269933808599223875276891048158025092562030464243710910518130054063232491862162285680564993523709252506692262488890848970781156658980582423477012532622775349071677370729860102882859074552006387941723928479972644187696839271080574691406814451441690178058076587694503187946787832712228236555025262725426481507775982108276816593183674413411607574254004869455861956130855130948892175365126463304992030845028651671172871604478871066393444582351307878963659536882143694621630650398760243282079251692274033579483655064370867591200883715225483062617520911727809577193144581696721009611386096479895722074983653442905871118724263333794272045690514182966470537570780210704890400437496638304770116535474552730453624637414360431501554863445839429097327089470712013937986907147179043334355001030544676549041729435740631375519923754431213893993564183633955842056959454796435377064377018442312196299791182346931856395647485703892888653877316936254697011453519642194837478874607078273870454512021425072781606407417289023332240148491264102552515124836883840453990813424478333025016880816336044789292607287933956104639002148363509855019461758398795495318539475299484457105897749465315408169811814100814514976957028523467471467499587752589145646753678352264442924032064551940508997234613061243539366317133696389695313348190407346941979953793513880560981336722619626998560110030797815892175294917572693810173196014490333805967938100441485585376097370837321790672496632116996567867051966647520189540389758163575571191501810874270738109552156106441287124992156079543120312460998690022791854834082203135994183022697053370109364195603984064663647600844755379992231313871595234647489841869991927522849847466049768346285685902023751985807738720637146059297508914115511430187749399632312712910305585945644160692751810991292833466677810150334156982603368410836509049054590403725330701690445906968557842860171554473466625081478419851720747194888418625256250657629804895157926176225524561457719134447220784866995750868771715493493301630981319059962083582041746307852057618227786693553464307539263485190330256267192563918723395041504917819954675388366454772982256967330734855232476425065714361811898093588698302684018000439124279447860452919340645045268965529652003200551303728121747779864187659353949234040104408144417025673755350945362492448841323169971375328474047006904481542597384315378182947234938713450273543349233045266244595617733455471795960536437991732784906590569475336492133978491376979642475775217240839098871739126472092742934967372648379518760867863506358687377507169175390332603567079096997545388482016266429501289166490695458089816751908303440379534034782343692598519813796716007839455350805213500538669744247432199785059392115915533774960010977636831147403126458955042117723220446198690783080370247955660904547949469006354028858199495336128727889752475388073210121718735496891870923015938640517427991012398325755922789866899871891083181548381435365332740159240111193973454977431721828415551119852032219130352977184867750735801792880674285908153017351603606043348864657835272852213569656424705255476512975672007081581098722343010079235717864509490646829367646050832290632594051857267333646801298230137156939830484095978444280527273493908733877628885003085782298481680503123461120706959832443018999461041726179030268795414888712280401307299381279794851237049415949890143529889023854232203786566588277075448374823592428050443920574518632717805887753783565141615180109203482316718070909766818282708811802957093045129290507563924419402438002693833282897296413245668370551983570276308857113451759345950452049055595589104038077502867937851659222136020504193738663736495195887838950571870217336965083946085224715753872086262269619772299415596435226758026253517159647441878447605634995251976043710694764165349005902195573121497124516348455398803590094059694059821021932215214887817950987920906542177869835206151798620213262316869589740243748739649336273787001038162756857526107555271291160997989118265156409937016099203161597018837988507154664609136715981477185579147346355412962637717850957719872163375669046219903412719560993387869582159011800531354322135640997920827691808011418666806777384421508826792026117079757720349431682405451318146686731939877934294472106929742445983388921062836658296634319273462207508054033392424781601163082297486777925990538938064517450532076051152373759766218069851983944675871457155629667600976453081991436322030428396166200533571507545178640710782081930849930172793326595851347982087533851518612427762828670968509492605596823842296943297207260564359007531344924539051603010929688419430568281700618475009098718215920776594062175632515590137668832946628257438197725516748104763891915355059799099786269917587109588961961337991362548086723527351156618607154355013315546984116037601102416585031223547606237958317016176193729779578347528008568224281983839286266486712890561530259793516626814846123900902728580099610681766564958069918636845671019835559010471729498365924097190952768675389472927024608765637650452265578702275420097579967029646131218363201881762650525867443323292116704655296399996294927486236885375811058830449288639129682720791134699422483469683747277637141603070790947308047673962833796971431796574266853960449047225618558851289519276844288133348822493891017316005035453984643710508196143275053714868293510415248879220569157129512369888465526389078395624667906660327205267722403070327245738217111549542570282343167952295201660111758268516782717194923917333202150555273385000117116179383516142281991949987777017934062228857098235818270381962771948686108169933413667512370588676743551760784213236485603017695557453692450081000629758246324431044985055998290326853145749980870936441313909689731075334931346921406030273561704523896254718153889635562623324125131525064301002839744975317849411459317930941547970060395911048038330612476056251808293117444252953740950108019778456497825324108757544919640015674328643539930799916790236513376252180218573460986868502096205357074444291607525639239413636170622019532914229504136346178789008323862170485331780176786641345032893108058600507728306475567599679586137410161532042363613388965369531024417161374082390695226621845840735769064169804517908449893736206388040234166967116803585477141217595850772704072355024822626738968774685419643692100643821298880973660014642674250247147664666919491084149922151731398973052800011173480510786720852601905617610639034721971421447827315330623690603418356895905367222180052399561645211557366444610048161090579580457365752333986020933369561492999291806998974815303517262108161211103159395858876431549168759934842449974558780497093714987247403245515836682193116851332771232349029714518711376545593785019015993967008365587779151263029148099670473153811202551622157280778319976844077249947741209792443857628388755091793031395366379677460827720631730945019848438648290398555713300158821221520338790677110188274945535923260371208784576679761477159322326660153404580692595159346903615945458115855023516832510834902450990343521735540569075853154618850227317983571030183449723993176449713670505938949244568560276687471131221321567078341040053660186380714249945545376787868752070130773548327587941828851257683943640551429783146245571020125863704759477432900259090265776167110258051789965663712995053189895499474014269739839425849815650048461000775383725688615920817362649083872069016211390400945458165532311111030119405197755396737208135913950187501656344840819507964035979025562335396594852937170898022414977713436099693551838006916502159090678406218672473750886087756662948793013643221062340671886352957016832621994638264063634135573429832632749634471021526844061895932544202580316000678438471976651187220655775933481998978414471819508333744341363187633298754756354503341683927432597498563010233322237395434734825352585587011001895415151202693400136161440985206901475591145420285095902259972448088380871460717061701640558451606131950978635048501597708428674159352606329553954196665317541888351590551169241147025660308049740157059318319895161516564313119244446568477110316001287313783805445706216663874185726317409877213905789079446503035843324709521811417599425091716287814586494760826927886151171318740480519360027863512086955189485187415097086420227886269693013597798063552000477672877545933831563804624722380708256665768424784560945697433306528091735286861372929438450030892172330983606472169404521743784988269204363630751696885025920059662503154186417753076357237517105719782537940666563372851000094876913017797432187657670173147312259088675644082323029084722040297959913039660890516506907286846468099849472535832857748696837858415515482381420540349580805703247662248215034480093605706077929903925545421468469099576684141438720497634722747477679066089912556110398760607287253709153975467764360530324460257562469388731779704108714380959167864512365983568697720113653236796391520713103477564348950293771355517928719248113011693780114516969445877588168396737532895888406526397248018211795458648599514193188628661025831045329915294028850998234471577204854425923974601226138541492881817102118101052829159672362053137564933948292918558657178797778306769997999686153693907822144253700876235540690888848524728614748273465769172067464093256174851504746627094199187855612875123186927155989166432747883196255092972296321256333079004874694784147697374095476896415328164675432237954021845630539319274504092168592481489979168876998550204514060818246836247159403706850841255418618921644541291193579080747687138783760629702528827132002191861452156431814133631647731749014355750682431392061117902034213741134013247186289839614936849940551938827882153931309843395067040591026648650414853903993212573145990420844962219125254157316152327036350132452418985017809697094338093685582621296006026408574011165350555531785014947896987901991645033003429015494145709139729058028634007632538181099794262057433002438740916313190843027888993440331137496414105594541592025260047624338527109305030160811527013885079371466141798492545093214191070999442174090918850180018063048238549579286930598228297277570740052639758717428863866627891201205177386712613259028587218186496158727859315847890218671379440960000037346831393104661267113547373603653373711707874661008220903515349604109655617230512961321140676624705789711996629175388590436704172501430844524800629000789417144427269489181150020587946987593314920252180866517397279384553737082323925227053486956277958853937369159157828189570214237413571632049026425765166212133384339265623087209865008163367359413636018837424746823034797759376599569067741736026383989623074009703204728795619277099962512211545138617257470452526844358482331766422003124194387476427807975431578540123589930447345835717195083064503366111970750507598619795985822312416892919012429673117236588318015678669464532299465167867589710348082680567109377885117906879503769465062002435858011898786559060572726106555003280176761072548461388042957290915064500148624965462734133893175224068131694547026877037751316158626624308414927465223079450003548702398775217636099717348889399002475927313514229097832185154521323633087965391255716341387591111228991650952994833821526963698824639019144860193860732898601612169482983962696026963507042011086506003482964684506855028265732402298862897657773667154731657626963574328710618752531299215352505477722308767825854167108692785009844131591011680610540959902106271987908980879935352787854922916943335183592838122817453177711088400654746788419418976529984683259865160600595514886466289474285438433770960270995041844337849171125037791786715748955198817714816685389486337521942678937021550575803072098517330240327608733440029271202405490098945881426671447099203244648920437917948572538147656837384913557986805763335070012565890246500940964653155908094218132882372962063004153219336024420976984739593174248715138605028887710682291533597446414222885714888141903405964924947999196450631161040293918485463375342931239199052504285103190512560060942276198885688862640217097396708757641739903295237885609189665037783087602218179519098706705607014122496515524538303881834211416437421771115903143258241438537373241844699753359639126818495585736214913174175291007769305139345714806862169552018692148653528189996801160131671572676493953051781102162124680272480040944759324666689188133376008243484076199569577621864325201374264110612757330594869869193918374308642878546858987132408651346381087122611001839244502697908781172296636856324526701193165471483648299504238266419498201362478205722889613390396698767731214934743869495401148911011489261384914333045568146428328019589054032311648468401750212313465262746776330433714709095760864586455489466769997338558600868544814464534569682322896822446022696075920195858481787531453170428265726913965351331765579674717093647751536876300495569566971454886007524106837892772631026295343028267503606079329174907489599630546604327948356609753662131583963934541492535506124729007649665387126450473857226390419541452633357976847277763243995462369448074617039428203897305327970896098838634456172006613537283352668577012831851254804121870198844701060762049449236532841825879702347773339848999159953671013769220675687297880302577145714651266259603164878971276512939475143988084796543590641574271938578419025519325313205588834712657085046691370008137788067595792659933355967610718977287679547794285328235653390755314138941713354541160875963302897991661737485213330667976363069500459559586309440463418774952785387400998642959954543114063208345089673283464004653207170971490070634033390566432220219291300317220525222610345303113780240283302782846689558852826265329493885268191270862496100656403265682193232163617748973372073383547874607502941894392101374619684273251274697966329963474080628217924637171323746629304923790738934676510407514454451752680985489095863635862280591385133384561525151391849546569311202242251495495697452593187630935143263205539723732414192584149162442924790128262582143678547078756443938945877987821036398180781078686734277303873995665003334732016105570937436805924382530159974232644068045881660678953464337479263630726922033834602343269194044413221121565584526862000865211065511441366456387174244469063676279846946298614577853039136639436895872813851407992996889990822701898403875775576415556476637664109341267926187408887226472017245257665749138575869788590356999758242657972949002009906769266310552179645746625047701655657338827340116423383524205310952951468697299244127126905007951908201395352964942513102121539291195639855527977098203511197070722128267249962740496049609737585513099624168833737853180381471398262141930268149418227519079805995327966554889087359356796539405150996297396141088979031401896355109059580603240653236151801133687284549784415344271276813069214464806514063429107835246430516921949198425664197300900939844574690513861268601973694227579774743391778067102675574398144412978353284351519182926103609137515937879115564420023139641650758596094772374938284004690066653443147181873856996449378251056229333716544447893652885987618045015713970699578198668998908995606639833975023630773238260775195102172310929247172555104363232237429763559152531315012278028643904765689628626381898530900160500024053996455408150511502037177479838457289711722273891993127203053017975616996280807843188617156891088812192090838019763549583816931666994298569184765254695261578995231888998045845704891615107791307477756618728422017710796294051092969881935567598942509074214273790834369690487754247575768960478236238375651340418066521531942260297350455192516912008461562161267044493488857242598954923328712991128559079318297124859320393855235799073716399235474887406096660487716414474203176648747731556015129391274738601975331223057654716897648041606911422147890243297628134140417716681468763259435205078445722449565070307551717669556690436621020294021157796288450376491497503628187717365615460839679621357990734399277527892439180014593302670635376949699283947335175858344179317346878395000618220250985548503934906295981926217170316455005291622375043885111719729383265261905905769591700681068682739249746810905688752016997724255491903260714915575824709760633869656074523391374619555826725922326175703271845465109794416731362214921693996335993189267028898599439969468073820031068747079778460585111865530408275575158351725818375901301919774236183287106362201268932503657791191979469247757638561132133206553717338465730849598551923750355489528072744189616888809264421875522843292959531002896018262225939301685615591810237121867710694005653266094952018208750558152872186504340356459827264222232309737982587544224011299329050698710906062004431870038275575625774070183746442262039395773278249012289159423378022788826836598147962931467663800270628925555540392691746013894129083103369755770116301094044765234677051709220283275459494846266781954248806612383535959658352294297841773830915906206762293416968705578661651546056805174904857611674030850488345085588943097858065964893842683453393433031602414823168943815090124190418368386190557735489055944334218445289780030654052079589762730247796049721613336358395836563218911565783839796563350315890914697266698752097613376016887246671097353553565672710854880188766586086435760441988355899459255824677194769376084404048681801207131219816333601417267838611594047011221583752424388459899482975148035797777890291453241328733114753270181299778464505153757172686409403176319397284544204724778373840324413245415539539055218802890308704172527142179763222289165103508674108474877296963477749921799793093076018645238092635918725906234842122988981015228384657625379572725072355022125631719787799281499027403484449210292127065204354404511662255747653000536037182927698734078039947548796795410141500560273292876734006430987917849324892737214724596655974646264491089124665386182149958231090655614061806448741559497923787147252014614428757934085092272700756894167525333895230172803864693150137241465950651919721028994392910221641176122385775651895921955204959056720206983663015129260710350901948170581315707668581089409863036513261098620931305049747833250918789478625581885676914167725167990691250875783131303369955773321004901943074269066692131141469909479030961916114864786842875403790100355156835712420897689424162258743790895857910662795861818632307154099982832162015379083973084618422104053760326425761331111135255985360459166401323045926004440173266218523497260638021027031189383973395134899490244361395275362147364718598474096216206467769138126628598139111894745860068772559742300616569184970591409486505314827849801689557945817314537456195205038799076726147387970732362579299801282531082948650075827930551448419090624757996281042167638772866997647574297883523444265569440027701449044426279264730144796172000468336351035464855855142241201830319059507453515682646380283150538110626787607493739678250524423648345411442217710025287312183051909798128523287912751536567309316092521539182432101203872562168398784312389518907621127356003482790162640187746653718879357962474386301487922786358663779154386407984953018747825102113997750265548923934767589306196985203619243069755655774051710084013264152217354850890230493905752789189841720901341824934478701261690307225278502197006479670949732248973250495683303562474052652901287316695883582606162628044621991135892759731313523777483813688764128297693778641673619516310787158623122304296621397182812284227895033035942979605483782851474598236055391780863428975297830641024504219160054823902530390248257294363367253634335232999493171545033189073778619246579578676041595085440315605210762443136457047979376797616297405355935908611681277761634580457605122421091967887550363939836065200620168193665655565830487330173841122158036046442875425231316068099828882124094807010902002136637318926864479495593370113430753721240756851553865841418262658580897133656633625697832684999332669298614350927599073385137837969866712698298370552062176086694265974499355903270948982938211985690837222731409241540457027377279627483416707086865235752790222891017527115033781265993471974422130081585194202076160542585650199224141904568240334777099571125872842666655597829544617546994571040737487815494007154787054106535742745973156583419975282492767068140698574880998642207746675447384931700554372867050333104103355022525192680705763295885093027414258218571823202494860738099078248337970123886399659221822121523551648726672574543800621580209462754350780191016132046291545901287463895549384442113040019443712371353136045971580597699067893652161481316758470011760302709877630003943614038098602980682082183087118756302966897886278112579152854672300505813305946601559573675184116472105222375673335896447684114525482161079876652482600472657403649587339510485773362838155628923119211067560728017931458163603463347063384723247843216540746887988630741388110146806650732580064325618954000145757657615689490979792258934608279997868340802228905754481209678912568802719268856495433757585958090075025714852609863886445224069130475061305456012145340521652573841918301056554764614811082853312904576174791087219672962486480895660719980598421739006118732951964525589345280390317371717646214305845880855081014516586398295147024629281779616742570023719886833590952236929145423497022331957181680435913501574474469149897739844691045307079000272374781391998724844556377764539467173935923615520090863373324263318760049990723352358127005123567635565121497238215474794074279607513570300339842794985183560458499594560995819739413946428906025400015368371013182757082715366084939754148466835092383407055775075906326886443039302619144223109841516401940887315485463233613309224433109107582207122736417255362353074984395216340475904578370091648096387366604461668471979671625119328948526359225203456601037239525536616360300782831052112739484149649858818608511159445592453164481770120695214111618969663054186411996589923699795895823142712216511024932020541082615781534646126938080440041971365570267379119880688407822060550702125522010577943610453429926845609856517129649543108215885844951781321037895416124035165318404513624475891975598246924208745750849631621583638900946979675803715616966591126497479135156223134957329808903967259446602813698875828167251545234246925727869098259425509823451518066769452709038580538081066849262775088318771227589869638534897775315760597860443235299371827107348616320820596224030074487187090524811842971818271827323234630048540148173934469956074991528596977314394324463373792694690046827606029485478340683946976933428885149235520540971385245623508532673711683626813572569626297276210876388336184005977356284621300946387715667049674658349659777606427254478433698082951549900327750144791446724217465190242875485606723526848932337794972326871241244583573365739733183185657767144955257073648195109572114828141430039468113695980181693784056978362437754630700288099794068583247984226700812398577749252250749780307188694239251803623159327188114850793809550035930665098731285379177923455960254889184797466337863020196567203344161863544324543798252434612577767843598625496738526246067607471581975726634826216858938821472822213107772143796595352759204768361969477637616728592276295511948136909970963326033134665766103271563581558597234027474906956158974413597766723850772642526482393245869536563479393383847341140745403795630566362338239576101053390001589445429305966607346863965568769748329626240872149884317309573382596057140930773258110004008864302981729321379548371281586590434496059697132310758894330008060738766255047098791550810515303959378205884502877284896056454901572659234092791026407676406204690694050680853196921709177742818112717094382728790508678219347991003573361508134527733704318810324486479934065632440130086284978111389576978537439685551038615068739403860566241827268192427253794873655539178212179505530954004991267177838103924152097649438557459538178311689817432781162337012575351729564581456802374250395480877068955330705343591240299928772008385179547344304729598295512960427032672305403596488176443036657938571881329214369990944803041091638101262632022697871325383069871248004623302069412757728567264464324041308852939144576462641396279996299473816595920491034783088160070744519774702942732171974581457574790192950337709529693434106727841884487059868101995903206912988648125338485527337358203778640576443697951718738813217547577459098461998385409736422623028503327419663534945920465713367749168447444143044909065862682106774304520219866060778919315544758391311032479353706894995182132982350303948580463333369498792053722744670722343086806270958532288373521090097186487702264624806306611605005850580919159119357477989306558064766111827102822244097208327538778381873702252252687236014133327052337371497843547006034866831403682281181642054706385922742302828814188681063667545137008589168593141821040312885220520192413958835516635511774172349434727038667601735507883306255852949402684515448244525046737019116737039425613311434830022046708862856635503649406548306269832424817302107124919910944865528739406272714188201393015013337266841241455357918198915573585863682855227856423845262126090443172199024212563233204879565736177789853845496615854834935514951666719341500412041751773196397208749345439187656654556142670649951121308742752703034515438261325162577056181495142826966986706541852609772330940559479815540880899000391455812173574814919230238703100068110509542814331157811689533006581198216791409275282746968024354665104031976967843007044824839533891300445035584070985421102958019396411855351275253872273876577122442411569186498506722862146553118981329745865051745033021085677150433092008813864359429457219697209832457420317114823536249049908728129671690804768960775290574499896667677158590535496716737566068760738923177329589679910931517126768762449816010972365643697797186676368742191462907934433833034591563150720752883903748938514290917715961941619157529410807848526821564727571074450215395038043390949155600145801856064722352533390273428947583345002538477218798327230078337787354092047255283816690360415243673683148292491628671743338221061550703809230577481357218583851872243438259594040671880167360725337522740457204643441765161567190680167309672523738830419009302620276322401538245580033651403656653422774782887768324525002435736649655060142533475203307038131065842995815852592578308231077516085908514375233972821404330061581175904101327703641689052881412184313830325647385156641604066658877515957424611655852533779742054227484773455969716121586823959222615074656623428739148950444584072016391330496397508447095143247701123926293434162040723901016637883705577632482687373849516219403172794813076654875761323006464088261773371623830005061350072951452878044476339772722794205466996128487160940760100627982086879354801090693584247875266750746549966817848678945010575130834784981276856312772233226205096211614180975719035912036053036422834277296059418608863439820628982368362888535185017304687993169795321058375119064628064478941516803102377559700314601752521330026681613558147658805173181068155007471179241144123317844502157508683700084433368790234782383136983292438337602188012351147815909798255192211045492234780836404693780263622929054958534117719527635635527961557049237263713077948128133887683886663425239769856834771549893559826001977443498905096288212087217198160328253268764114161206687428254441074752111395828434694977995136812617932789956030279924965683043977974052608227191610881130874034420428404842676417504602774490238097385218720947795138032960245169175132351373632968882159193935537084766489414166909271224746364141621718337057684048176574961004087108591882396705013478494290394068107928030671835821593427494749196461714590815010280454561234405782408006233268373256329055512257206296216532827212490535433368379824110759566796988491524974247550999118710247580521737929271693587126799388739213444991312123878099050621745240948306250388674835949895777247454055570588369674229255425261703677325050626417298826673837662643640831625701582679044287331533685549614102515857894567026224605586194205418401430419589804848018552068317547649832849715548203220569635265678927854468686100878252443397852683698141438603621807831617502337868805210225915286890773844622755640653252170308055844415716008682475508227314054226075983197848312726694599015041244831489106836853284203612921188660300300227372521555080255215544994097754867974188528854270552131150660138018526982586808228227632998478046941733160913566617413988988296196483601338806184274214154963851226608735968317027938790441055048552380552837565971303540362963429218125380576218619129068608097672741996918654230207013066665396107270088230586561335289797633685290296198569596590976543225201372378981901031417700221971515345032377041348758832390634414295660036344398924632976731980899324213170169213040186045379704584964601223330545131407624604488473794715169694284329813750181479390936564005081697707756988072945209439303898654290696240102162338857717080831933538341377300327521567734706748766175865239522767087867644885900281937524844141600887503481545709092208081164980752207844046831270349504046824799705355239239258917763713450753800543737112332342153227648413363167147931797778350093583916903678983595268970066000464166699730802330310858151535026514674299006613114734004537687318056683776088594975125378249874084868770132224836384869438064280801396586569784349149382105026465757807200300407131666693749141663753687517373825951022699802605034632986373680707093054999837697824058919749471671709412817855692778782318587581594665612839462226819010633559756154065583799274559837680172020040144469205049509845464367732976306343193863281719476491280209354086343954420945826281875464561709043217137410240144066584141993859838850909608634204074890171808537678519230256859126215554259971759413192601320318511783052009762061230222203218585230250409904758088057625260387877736674350779451166101378231493127018286070218589490679718103924628559864531463394444059876013004430515376618564737885592843134372672598223527073429684292041594578966960794280417981675060306533696023184414706321953914297677331289861523726985375963434532079682243509557824995548252325613608273047159434960191812031185930481669493854045787541555104775078808407706619220097202937257405238402462530475525997779104144466216391396548183204194634882826327223684239588150267345597026177146233270285309591151859101489569727293156128898611322093338595250488527284808618557341837767844092300862283465220529920261675358811859457114022531369139148230979690930466815843553633203777868163893340730436316398748061137252874848854317831011173656834196384240261787535040415448510607484882793876225395817259200106025202434897913040221420765525658812848211690577497148139276440873021920789346615024089470242383854631942788934623125543902237738709871504435555169768257701939408621315440380465688458484725418454891800241069030543761212167913922787485963247287034772913050739088872801614241751642236110105542508107593491447094562574943138745408747979624554686397119917485467726289567614517270623644531966308052710667673811679592221556271999372497640544902720257866334261286424464469338038033362678863001198343218231190797420976174267340003061873710646627823283707207450680771965594660073647336756652053191140199852234037097312702258570239040252632663511231776187892140233661386369182575910859732702227980336920932290963966778432370366844099107006597429976431598484931136531006568510913990613328957295326413486922738821240993197608934327131712136058501490302072693181238599882837475753109999667788944929352484577967356686147895633042770742255278633367160271263022023864531458594959141868405993435467859558651662425416102765926815638607970757692670624189397785292432435880508796470335180013445305755170864998322000574135135929220858592570754069612049185158318481978870448841046324048099255829709506684453186028423835883079662783152830864148848813793740049783269532343263958820065375316539138784768266494220671896791911481041987339597369264577957163862303382246352696762346536927062907925844288004621980543835482639794763432149195751855953130737932476289312405705511241181921476369377382258227276243670945195724424422497444686474214049454845182917754522182129848305144336383736699321704894245141096590056334065035925283500886761626530671671833131409323268175814998233325080210669687670920392083923519745126917871058416920507412279928132580327649478477742492523661555363856539223328874554974847846793375583927409168956561554810590343124504201078782494026535075193057175188215099264689347686003271958102971921781586835284365158360823403562902661956265488949234732772354450636941471462635850822501901738021391466909426701389722018942096858689230467173395479433921177718800379126550103088436021458960182050109706622107174393040356440282629069689350400070398246969669035980781449757000942027867386619597490646488298643528795636451804105981397029619188602288011386550545959588918431478832103199605017018372950306048986394913918051847517942631758856402909078390078431760482534251089093109631383393320454681716230047193506588726749611537115818134963697411123534861662869827161428905284437274091197976826330357852307919710255241938063267325026155291133008762260195192684039769974762983557569834812742790771893966425923848591254318757798355203336152772297685178072237366156393850986970913802660923704286943605637130170911882270773565902769279748976484641541603046586980319435697501040196530957213643292192231608568633871163211672348639140026626985539021599046326917477042968453955383790986332183071141914677549925580853333177853894650610373043272189907720561079493212383633727315990332763779039828412589550767313977542504544431964710662712487088743272079849180610190740990815155590149760117145396700313844115527180221148914954341461022450651233791175796619058400825363542445599369891535973339789329943202804807595783659844735992193536404974430983032562312877799741946465045091061104934980389995475686915575036158383730993231153401846140574995575475272971406619915276011352118488829106264916554362260288494157764781294337739554122299369400397733354681627668403586971164099892540428271221041154761671191713184218942094051366158209376255785997158635516064681543308359420588269369258446845658998878033396709344197263650014689229837201205749982402161496223371569643737066339669161235607001122138130298474926582444735561472457910683992381744128042721607274409899484633687748013167826394323192362328735986898587597491482395949308922615930096243417262874076294294076400916373058786270061366096408349190444704865395820191422336310942087912248652958181162958940583407101426841687617678307812367246946905740922216924354440614696434142842278704535745460327213214035996909654999351441584523889664690637202387482157260506083768758666069371750781936260809102420823197383315379585783615399855364580925519376390839093963216298735276125520875906893822141589326901698407467987573410770654694011335613697228597194826805580980145487574809177684926116790836158242877993625972990661402806781068066331087365688695275414970547574564927429891471324892397464465523481761646172553828214976827210522710201126587635747272763109155700540460825107126074592709266763794568306473191679179248445888603766836837289624402688430355471917495544195242167893216146910765080256330208678421702196338263387485212957165866509909990430333349117285277456586180641052778883712710797944639266996796144738367167985939365532087468883893650133881198906480408510506476272165998080594831806025214620169276550228809053014730863523325322088904998566583774958234344926677135739773556307831412072513320949449016564303939114094768034288683561559550064102646104535723375168621583611188863623373995484729840433389880313724310811068954942180580142930022695970744577239816737442916305647145600971186361304350751847508998180605023455443763618573676867137192999739126974668554127829325100504276591523434773089966290069375107317906349928864640164694572239469793367014647844605995242922607015005646241514212328946679729014703922826334339699738633027483961838414089679135894906691729869907919905764313887309753611297512173093875519158539953670642284468862462061529850094767268560506739697750434824949006952740369842298048933890207055291236156922746425500582831957807370616916754603733341053862238877409725605950280713643990276692266618724623750430243163347362165951761076366727296287945145784118623226904460669241435186923994972875164439713153647985927038572832771662846209528474461711176297396746340302360293582831614453426760310097768223822891205430842148794868317025306814514365022140091549525876109807552440665788087494942961803005182236929893785171120161578009072023661068994946697224732152325367310867438917206122364178843447217338855179491006585708771914517347677602640375740772969426667358077809837682058721622943580604422071705579868197771234644448089141554686193057864371059510106353992836973606658234979771739026873017617875647118158599307179887656081953237111772914579405329328088089487055946836498570675375139068079800630115420062543717448758895130098614802929429971799597633071459394182254329357698804569945614167526661850410312632695488614464696795910058556885380792203543077159928538969270600618066373819328165722291635150274350923904584015450735933369842357149454958066887796213382010986885064293796820809876662981665042295099987065779019562976890289088040749091646645143046304363358308142732229562770913056894490638640216125725805250837149545400155001372332710588789242723760037745366552055975312979311520260127582916858280096955956700945273884843757457474639109734037262567601049461770341281720378717593343794694614176703338176624145615612432053995545549360890637972072990157242658315208449249051564402346965399013941677732582302648039671103647103652019223832570353907983774807447851182016813131172692519384654965592082534754723137779538595425549911543861335847983372431193031497882382323408942725378181841142843107332483825384991188766588274028457705493304627474461637828784839892428748958273516341969226681867579288242018393444703476833351241443203381869037618267395209804258338606406618676326510509645826417349407731076887081163613397260635720089472961067293405770533106890962199147784292259482708677769977671399727019489897953506576401337560769468546817853196136894056072254780031689051999573768304483220582082623766944703468595338113728172106913554313788066478839182328165466707755294851540982668201389832926854357302575833603562904212504067414615699549224379400419552198483884070651912175885433140272953293077781758434397570395134952275153149872016908765704315833245516475879727742729502346896841150121018021539892356272847851683037844117815791785799508468078243243587332603763438232112221845879856005862254035104344125026846894104789045348292547065654406427841360012180659267775681039763723556107566332463698748462049220790332173746987457836510805124899841563568494957554536119678800375261795789086882009169766590164048597143680717146048959166362398947283846477314174192476539226786693288019509180342425859203299348677692390878263129777623129580508965347148679347910640477836357973176979002627637652381509063789140247662522931525208160063850246491108014581894245207299748074278042016174084402981628599894646417430823714647760463647016849198067893608892973545318301540513646324332852224660044559436282233422055613411754559209138428300274303839329682934344779093567576963984077986525209789499351126753015161238063193355973025395604476212224443559103499781468047338055810986424124374383583542579876958444105701435358526141700890443855345171196325779897043422234257669547212728969539006547875327598290542975700885411371333440429964304908678154680397338307650831211808420384521841686421330160813340789861891461962908896973435385226407703181838510221118029192135684041311170390446469124205652169929502438308581901271667426937717442268345617036703700789118290440179260952238089520010486023575741617364747986254894466804024511377102613914971328993095937159904774691347703088440770659388237558848760003068981868179172971986318137912409207906190053604835983488397325227285653925238408858209413144668706759037580488812477877508812595014730396623540502646140645482286062670067191952331006238780409670943320241935162474704181604117372193087268178973734839379837977711424901234741272340028741458827529536011710065399089538885694889193600833546587821006551434530963869561669258977577094436700934682320738213157525793549555932320669679868516849708024518128064144652206972209893986313883382865100395450283640855093589871209192534746230275625848880140518719443924161725909430227126164710269112413378819653186705469704263405074325893513369118905731760710447465975870179796166755355539947159381451259784372423291764025018790651956823696785681766717596546221689750888218980485659096691619230597906005709960413367789674819362185446377938380988349905342798019772407242748660092923694576725108920125912411597696276827796551190068482406592242878190505085828718242923557889090022761704209574295869980960064593527910391282980258495171528261738568226057573744731001451681274950756913684353315887113390183334389454854425358921479111413593812054048800636631323145992887104933354012000072350886630528165647147476441746634471363862412214172997337598002102729000004881489624219091510553721165361217640572198216737199640355270431030825602175560410521609221745047473748325990134085276796260923926781467907287969307908711849244521133691412912880936912288806581294085180417104602024952196883380339093988969543340321100319863993036555166242344047757081693558502084405767054646349403299930055612534210421335634500045946499283141058744578936331371707298442618123623083532771110966379747582449304188413007677687207143920321791721518125937600390631080889150714413149819147306279369619182443877775687656766025491100760891219310887415974166127824530096279975959622802674011587289533710003406130017706656815991483113783440731959888696468532749074595398034155717166861580645196844265971808299879438009232314694891009882594017443401130137970289321718949676670871568486261457340885034732351965727108411908933930605330002615162188064734728633108794292196042455569934865139718909840412398597187143514279318694023599889091018696301998154271242501094791301135851116926135394223492610995445734412217921313548562745184271617292616504022915124668380750614622600924872090724195425465577494421706514276449321029567610316977016464025610412002970029119250487284575941006511396007677885242847166079709967166876458202664780118698286177718241652012312926601941296238572515714699435894232904168758526907754078758150494091559540164165085385838498389436467625320910448420997963764868850125862275108613413658672167400233577978411821719841613706936007869046228507716156797112405127330280869564095214390914453092142678516513249305548950002739969655348108580248421190275208547979336387047124969283288786489113469706994545929917586828803692036325324330170813095006546944508346442092757086753351691152261485222792934743783564677182086434660200493642055824766874861725629343276793382885204491801787187249920240785879785035491528325567917982739958088673536517315375698523778236491636094615783842986345848164397666328121093315781398076286486038399029823985055419518173055591002697668125726119207308429295597826079786056978145819672583532925818631171328829860003262633222826282191202914656525927412741777223900033840235480734660731942629014433373758205896303540957094845792926813473531712833896750009969142001479118251267078524498359190279701495201563486261983237949546630390852202693037610254741589597424783244253863737426338377286907235796545057140990312026265586060278892000215269768190528252587426857452410216628018038801892250028602754685799924525033131612601806242394261930329426706217271479288899254026835784532365758915108351547769081983977898023722389825839340204739523427896803851085385390432929035174590029304843034503738868115915016862136485779028718478920533434282017815065482315986977864503730762690673035705169935060901159465316210743376373526001757315490751127095511057436528882678291473047667880090975932726965534737961732481475044037298597152821848919711285735745372436791690366439516396966147389948175666339084949866801347477841213192458348160184137931301352858237057202852429169702866858630601254148830745251186297262752387785004070125065164457812951306195792532678212221505789086516799978354284921546466119034150845004037472230986369694630081270471576978402122525714658705558800325511673487738451216507887377059190665564736098100477312826339256121816721062175357146197611257201746792817409954149003461306327768184527483919752862593759080045159104202840114792728249227443405554605558524813763069655028994345737900855439964698402007826261019258325791974848314429597975890216417704179135803948634204086541457028684465949535167912604077429165091911356067069925016586601437682736861754395072077266321839622134265417777717387253663148922425842557215545169232106494656907673470511264164772319296868877085143226971213213331799657880443823211401181858060927087506367141354593193047895230761353240012877675464455310406894854744892853262771291663081801365699447956108313321539099307099442359361891265519772197762577088326173775988899881891864543904283926468695515480759972421055742117751675366029953758577044976655670011208364687668753648063515750329219899746681487978977597441388652518906301794275200324638238188560269628204575652437721852027800746115400167128243462599162374117451997619565101938384071697623342691834968324929436670352334224617914187107518932942332643747020029465533167524801056816852602485417206402802193843641993153440342052916883591712148646722853161535893790461349554283237791742448908009239268397183418435551676948143347501149947630771478955438957727606026036569745257109084020186432018821321687985600494259900950884234124711674798957217070231941392610307308093245383018772497701220248880579931905329859373131735605247206522178116914712941812540323986410657148919856691937628169293723202572198061034453814721466726866550140500815024345431290920082932126565562944671103000148469905095749233541190430800899274156953933209440814065780853200933940979464323219217961135016329618367082696685744652851438221629447675940740911829014773103443400229223179070961272256679567000231895160884044620440781066564415841445992461062545287302950155003874354513710742981338379421944948533792672592483548777575959210818351262290775643106080342563919585462010291992405007397004985344600424328632194364671745988239000698791729154864163551414800529669066942496747692455565779433446285249226588375945177744442028374342232288481137200409377342129592782571129304073761264383769810080522732494396005038671728939541241432814277280557244366353265784819754186060378436289428147222654817845110849821120308778712389303948144181657315165384595905587798193519595148677160678364783686562955583205513648845558982871417239336145510691827204590894806688545754593399612380883424049603354476826852661558130777608181151162596920354311081497751436431375051042018357137323134466987064910234302700307604563642549365069535219339696635804935428321737570735485819058288060649676167118207282479483302874253068486492308510842271913679980149946070630810880245090077315371903828391266802556704309413775235169615857356689051603857259316760402888150297447504818212564168672272950930175610880173757489639153549802834662880985282932260977519939171818144671814312653648422052852110188096347119675375754690562831990949733448906534294779221320435250779403635986100020057305034371136058237610439565968781051181372280006749588910212273379528725699723661240993424695459512210875943971186635575836354360672441337537422120608881946956115864093791527605652707246119067431606161693983500514348308017774527004361068128706287574626292252286312924629593153449316918228070078945790995883512987231481696420615225567371602966673123294800815955845930789066344071178304064516682480870728902908954438076980842690434145755502332000546147280864745974764417096833241373837392137655673358164782649020309371656759135538333317953628091397122038412363413590875348848771837154902360211318478825320158862906184715708435392499432271903673433078050044174258927535790061306768365740024248065033165207492503077364662269979512845173446891818614265769664911794697626241459312943528067321669087240478895263427767863499207550133730494565605413696109589174357320994868961952257502243959798660029978000808589229703150462721054039595700608031622957198839002427095303517840598597620741154831403090783398849398300363823106259977202237582664228266040561920389259996544154585010753899425284568152494457024500958691328411825475952951901841800266607321313356166244180092336556177837228659518500738181655809307946397268069348677224212247617112125996423006522536675402538128242539926616651235950226813286689746255664637130625958714456378582293251243351932759669789110808430807607035899760137889862677791459639178833583661067050588300668432910877589205037425482822669389486521732106749168231895545304943859769855889708097248785502343768528205109046864304858166218506216765244383850699397662740641813736986099770844585454415198031279184444938848314277291179968136361250643150714920757123723845786609787752444908132485048273912099425622438596419596010486583340366657576189673794616292956710653719945202029619568013488685764375677676893480417133789604481623865845310798343393889877598592912603184349862605365509631016070564766292522639620909953176932284476926716076955762234656022687629073308728142513358176004237172110636181143616254542973906228057255957178006076299834821846809536147647236587931737696717117119321204475359539975321682549834443002308499734866487749629451013566637907922179324291076075453720373781153876527988274799661841479330093431258095211108071725287748709130767838833283738342307479103214404417960170843034807110653501768124299567029209067537224789435726450075073276001485441023619500002067851311742375975006155942500817903446971466736422175024367372195390781695104492419297718654053255614299593378615230213919043005525757137237493783964559494700314337622272969603783161142332545684697191349480003442696880191837491278447281475447335648072475182467209677141158233214823968807946204854741442753661191770059784376487301765307434421805688146368238496206661009133589870195911515885538479413789298480557588355191095750615537278040602882427846700175570342431816587063369393428999955519706074109387816235521476643781721469839271338390587198897205787836737370365271708859915048382298802336918290997789897541464343279645450153560295501199145862852083620470636729240580941201304156208608753941320347808966941658341951420055166360965540657414670139254046306312294737593444934972194539211705318554956293454520074640816150606421108870057547492787735508541559053419046212725378048105987888573585940625636037422571419558335368996947285079028684310523053348092423049985871675209016256831598731476698052709826792682180012871909299918191136077649705313689244048551250774114996840472364430944475743219195999431752471688394421595142225874891698339272330935533539815745389871403945117945436404306014135779665609680526533521163607413278458358649294841137912841055948056069329852091156954182765417911093814050069748401787048064343018276482775543143539147748154585126804821415107023110200327825776614242044848062592450645067480560384464457496096585196043399473957636892520402741695127053231147173038925849965911231830859376511195251165933618611519563711223819198788630614480207785000109543802520972378992846861872081336581972004421189952011122668794119725808604179085168218564372618817075491697104291643453370404513837236362944325595725348518223453859525145429891458403879748142399988177955195618892494418793073420048832452029158879984290029251922440788153219911436703386149250041611262205267613932946044936734179878750712041253750675570717645772324591322833373264230214934288806961818728018309425568425792685548649944948063156185170389690753496252946760720205467550152394264324955933835684094037244100878086649985991519697518768346188478353360365351647624075226772803900645852775412682726257501668499583127582514291812339906438735307697646925342802463051107059266224367131384126340822117612089491158158303402795974292660854630903954951064913967158068816613083269348224343749660091468155110086206879934080984503125356363188718112083673844794601745823166460431123429009566386104397169394321893000561018700322033648778344977136671023567603374077060739860311098683214655900792073872835942099730234093142901464116002380847683609265867606005680747183436363409213320957878835570663684741070466879555022410034297878679234066830734085404199613657307727987591658650805219803669933057925379548700742688039336506436118757775564857882746519594736009653514910075381573439094168899484645860975024160538675030444620263471064474851199477480109154819922601688523216458813368402214431362470816085620589331745325440025755199526064875540309517793859007311131400067883763873437451153908906397327828918492737841811279865296329410549660549996712694816124669398397865423818341392778900406955459654444513336793818425094616515023069133553788332730940290574487138188406310747063447577297362825721698573059808386329578028797245120188194308869117397239810102305975723438473922192698869680532775919015899131273052696315133623400042458461779671117766566521401868078016729134698379874920723011176035862040271631774813052850566611162477576585079352879821108064142788024880074393439739691719442868687457801179026907101047503327688747538272885083259669500406110023763134170217475160464223849298969394283690303895927678336185406248932583132970638465813925189394186014723427047400840543584398998635318080041945363800453300865559307165214972680878297991355834920892508473756510484905084883673045044046842928550353144951478868682700195795114240888011643259995033219711369892000677078635936045283658817513285199909988053171857589011828836441977201338257543011860934774940543072136233575321527138842362101258421203232014597154537979542648689709652800687144278183603859408916581418062097270808684192685124552793103845474989408393228323769433040835510452779873336404330326460485121959380552236795437363509577218036989970310323806799651402480574292337070649552509431293467410078134717811560591193926367319369317894999931876004028938981084960441064062240563839103052998360162794809972012777209448830387624020092967185902580712934213582080208759665157742388285984671698917626635368622208747573510124150290846907200694542789168525813079755257178267132137646157121110767592088922818707871472505399334482407622512649403049529214271018105856977323985537348346435646775958759379150538879742984552192537324074591658145656364489503584192901785455754607096594642484888948138489414299422153324473998157067026353644128854862394754928180851318676392895480930737660231289956560363419434248678753155298230789915560079735026523859321305800755901246719551620332455495278400674175538890403532511283263669132496886862697718047096458445142460496886453772425139702027984425540324366950509473813942308911538909713204011608639373777858085658611482066310032888192703783430189628910716497211944496651589817195218957167856517658286052394342106984856222010136756401553044013353621591872344760265022822897837860223157597085472383223340855839589451495708865976437350563773702238607991074286419886164166105271499527190313590357469974690059180822098659638841535291485785689148010889887192312364937067929143559793421392741423100493895127307885058106533278056886607869255851049041677316917936611182511488387620642490773389760058216050287917594854775278203981270629562182508806809809244879173264435772403099997992144526654471541436741156873857409659415056268997575609300860446281773494623845788409798423136330660404182366247430663177225005396145022779487841913582627317380122646151736632506495306627292837962895904974876009958020513392526977745386620695965326843889548564948535388187800546554457190913682031923723659951727444845958280212230725143165316496666161196830598554952505972058322204845277507502908174773067771914544990371817664813887208341732269973785633105906552400212373828673829004423985505088368465133513680802683813698634196583860464958534847269220260361811586926747155220374626602090545381905922620639285676058363436272921165013729322023187711985648288589640930707289939771738868846400066900074497974476385143217868209249776224390660611927923078895496487248375157535690874235264713838813094209803815113752642637222655065474182028332367858664407272843424405909669016300406969494647572418355751846077726475778301899228776478196579902957628738207106161458197987371257708692940742064703090362007243176672879553578492790733597056186102267525107445362412942602807962456432997152444414382328266014063986397228492905746290658641826662980107927568941771720379028976466579717465087038069043165493956337137587512300231245857918600862158636667580782130226104932311523692041760505882096783475373845838843302342601817775633833706790075435228263031343268480429559345269705315958423895778012037568048833939333872769223101841934263277642348447194847013309327420030935656108271032008183916735382815152669231001839519984090213514162082980047660245966180116913904441136672570970569611368392340403719751651405830772887722323794176522889681099994567548493538338188788409289242446158124364776767633129444764357773861859910890826832224269922171239966420829504200407830973775855255856523581112995853985127581422093366154479251400501702350154428803933190072751150222436997714821812126084419281535914718940397260262101183994743264178683429628260483216509438374175482702758536436418054894208459253337646546949644740703479080380650603258140715616110615521602925926834430045216127723664546307962915653548602524453216388142469345889528296833107468407982344569286283739229741669159600475391671092571799787941465067642126258240594686181534285269803203408542031784040305143505242882746841178309575482805553002646855437212227663573873074324157937050425240899573016210045181895312516538878507013051474503382502443253885057381400646381803550118335919086631149430466562066018079327493923526071836323024938047931338413193858400866743415291974352030028277700573250442112151331303195922153992404499645422657389647777784787749224288053926403761129981879118553875596748321950294229645827002864073248341493671575736502415626180578985066805258564255615429636222138068275531836747946788832199968682001633167251090356283741908814930117430579070064480201796972550638112748350637000614802942910262201299697942758056393868680771810775527637824608070529238103078452900459135343603063541925526198784551503111894537578618633121143520570834625654384679221835933537571137293120843304372940356994693379517352208767916880762530900413391085618161407071467950922644156317756309777106290217017520961852585969295865915572515323580767445793338190758073450851415320393710636875961965797601571904170292775586339174661701702097698577343187169500900932512463454901001124306813810153984408069316066006364454755020147037450829775064279574214640027282600699180501914167190494488869786289672120724316459760868974931597625775237460912675796335260073964538163511490116209534978734105155700413744526691340156563591936658355018667171078955840361014464535032275245444499651332511696097588815963065666511740357339080067260705873143555121322531036103320101526103408984066476873037721493611284449065684099095010880438985117318016010647905590138582627473281972242298758444190528546484708840972507478362447148565933110427068299592897547987569349410447658830931487577710990999454622657330626058972355204896143300299066856423984091664006487125739597964076824656862711502319197045490958677954449342913401799551069607021114180849211160418168130458873251263671714534047589034596443416124901965294953669167404512688923050223812123098165315772098672088058649891633640419843057325627372384344616930316951922043737378747783584046620932885508764109162626128592683346313737420238301369343901184956334128297936662097894249998596435074063563989599295956131405877445955686557533199075905718298564052921724224335655385589755130999585098163137872850129393822220677891432490687131517464338300713881976236896297252993814068170363436385500873376317781894065301526756165392714026548096500232233209020879715135269103420093926443691400144255601783899074712126509150725855819808137117751259952574598009563836883749770402941498317361522882538671740033761921968986303725428416440151678172174501816221492502916065001960725389676448959687245417002683939483075165762658861513621718699672892649725157192426793374076727323538772525761396177895510621690783388796773718530075301768233644258424478365109618656923439549388396938680676389062765182870144767655099558924370702482602492036672949273400672882067028317413953680899873552269430515396177071189548032616155038159196920851874886958310295251728262974135095435304772076575143412634713319399176089379825564797179715666194067212305167723047483012393253696406535299323414366022231432725544183359196808341717742372617312175618690257145184258293640634861171183015898844641592595622821179899908433786311726616779151724169364304620898725405247841070738206365582239785600389404320274758268700777756479233462019831165475380351065427256741920348358969223593362591630996084472873346641778155216196173280811379914558975138750563041623184751766468366444566961900243757112863300399205456271509063092772965251795725890654207254207859278946826320133811888613742436852755160260532933589016139662419957172017724251158339620613222088138884965804503398113391309231623331296900593810850419760774838459391763589575584242274477351935710754885931405117085837442937389318455667699033698658037142202910045589648070778502763451845221392209088645381733980074928021132742181506491700021214532352464438946887805666324201402454590525722659781017617402635527666414480722780743040509057577456699636110398408477107258585649695452438764317884432561391180712255519867290366152475653602122734848084986272143528547707812138604280493422311900365394763030192335577484847243041617833916350125642275024983569809235106385465622124687634210198163584026771754336506988944833643454177921011457433936748336824585773915996111532408557067041458704321284521152699384711969269385383507508495455108818531418103856993533693917012739378084792311638457269304378555317779877153415483849224948724718661925340958858276138660229689976007020259330898538033471163673254094600610325007072945236233848263390864571085247733275791822969734238793281950722520995575319159544433156992444367494816406654258541345803003303839671913820868415839622615335803127941589963168197356473923698578973199427085995262097953907478434931072248029157859034856072215451036814067505401436437424319324996488453048515489833516205810956732980586224587637096875564967990551470063229362058996916486211074313859408262389649311733812353533282212693272927994069644710546324095357822962259158585656709482393498292843517005359878225426919954725610560436446264639737277513338251721785030683398260860333035471482698551292120081553459294889472385626439392801897260356788652062317430179897960998694069690372604455696192558145674716876082752417497717310136285588691168985059249666264197614724702568710246842064464343463521020596961197971130544157773566505517253868385730673373472648599692758128791143121424799587875704918574153727793946617783488018795301390586853270155103644775699049985408804950618073872531693311684267526485635136999963533387425817838679246414124310030952626279790102233191277260350526436242793175470451244476696872049738663005341138336514389835739933159493433183684941425590321622029984937664350259280979458622627968119127835403333705795760525234388484292265727908079890326908242916063131814179079125792345757127870877406279799932970649437425638589440713422673610472152582531081073336453451405242517357244806615115460957869120692088885807602176257839525699262444294332047058040089171394698723350594090296916422062359822641857571058608413827213910716257663774145574595213797700885519896258069056543689782546084757959601133589104337874099992169936182767164832007118957238368278287476910818953582866391706733096593966133984994519626559646653699951106057583087835649044244158344420785806157947838591597206989170029334285108441821665752283041569604630879391149205940141387363993948010208283279887847419202020982319287012421745427223546954844453560218089851608639928357149899076689284830971474680445172276575076116337834285029685883251259013643563081889156482801505087612884437292989210323541281007129153257139526808122294940414491790245208920733194399679709223680244466716417492131183982961632226244186627372534018590286734997547544152120660658759011121857662239960491416352326768457073833796686173801984462112797795297689838333948495514999872694109368701768887243543962173549488289414734306979491012574379445533253105586716991347637653194063325692654756419341670456837877895217718061703256794983483875457914472638710467041320194795947761831291964263402425242166565771718737907226923813840081855577112739114869122971454836426902386587543285146158375428911817869174027329096721060646734924536753134527171563951593157489204417647558020209387304724214993775117191557692355499651765708687748167829494360424710282025996518563571721932592135336339350941463743312724173564138066107397216922751747269555090757317237655999678236964314194823526110294388035291117401324071101727422531143790398976917722913874663663122003145441090476855257496932005421946011321902105420036630593274976713309517620243569220840555636658616775833955130246603518052872453189120664877974692920546100971921827847148875687941994396515995157593690772605761569029725661158870890353704389607345601183227285482259394652224109754600913432926023620149048906794648592752070162961763282862291804311868134979897851348252975337577535512473779324784538401952285516548766003863008148489312453570121809079624981162545649148465244414231958824275237562100930441791903911252083861759408874694189164375586617719048925694543597422750033719522866834857650341016251652423548264869072146521151168880497950553601255628719407043843169352328709975799717667792774953079529391786535795627136187032669839853043668533312281953951538835290701997846438959527679507188011769128184491679401373216956156767679319152877888729286819910750115721709259599800977955628614204440211981868948867889353249276566617581263375284788599082834046565614318884440082363271535232227970792196495551537804112755140995445640903041722660887554156973180349395812144922377818750516623308652771613334327017257300659621555527426894393803563928319933104097754039347938486992014713896809864062589802061273389069277959262486744996890059166610324082609797631609268486124690589058342010713922990016072478286987326065996297604737832567505359265404517595717418384822863892781933156044866762090231742528231631741086388125641324151075400357308643446604291594181613988991838207954452130526705132417934188214819412841850946133446927408565011890458045204926105505046388569765448406838819153779113900828831045526077312173110592148488257553813809856757104599098716847057047110130644277790690340251014080424639834480325360315197267842581576122662377558164976849738606771559084989763317631838128720567543854935125621125234946330349761511060481010119664245627919874174744821417953146988842695156591931073565490694507049125528039938158734670064880427314026046447614525322757414429927343378082812995348629791042593097894951687144040925138640695251955709544690200640179832014296932639494644446504114152366525808838311677522644003028929665606561799394205778115619721750489001083334728704023134834962370967618541173612629439037374165726634146181256458983709651258729801901429217672959003467612512802652548396292069776098048600295986382653406443169545032190298082550352808111765224825119898964499295961212776720955426608048999135100976213802592841715196142799837946093749291094713354186534857657583410195843804355178886018902629957915505102118969742610288918969343373827636917337049774194243654942533299917431711242750488797716486394539229651539898778883625845916285778269572552351961513167768733104990656659927550731527476025030289280652333520857929533648353829255153035477812529817988404864219206499328472275847761044344925030631285195795544668695285205055136113964646101098325418162025794044910458596744410531673382585715642870517014847450532377563234611524103101165339237985213014679275631192019184617558007242704344646562280553781545339416491619359713417872180625399344558108122419028869876368620583456954721372829374644228708254445777002144704210162931451787097908943081252367151336944659537127737216521217299267140473486609743230794522973892662414467940509635186060071638269400928621477592651448063738503231139524358797305872558318280978841193068133932336684459532166928307774862803208990398424441660697775429290246456061815698993803255813481821327351800442264066039109519144239159245719092734911685729983145489156693757954838903286246116547969865300034949652695952065566772335050983213980262303312402745942264773327466712958221781829469229763312644158637161205457897151017673768390971553782678382275790907021476179091392535383443921509771909897489944087454684610005446838756333321502320699171845996663955040746979334662827555552180927321110936893824734910606932243088578919274556525780035779561117756185453940802470183837242947807100351506275440012113641820740894780761503233695112504368055822285098006427930664673266106304322365901396206433701507992269675051322151612759928300214844891889032031029229370354265096229536944220268553402939163877726574882871423105190317306870053741040041435901887556416390525225079634905083379315685112990735622613357222893150593699806096430522728537491646865533808938308792687644381574802793038086731072950391511047984872790208004953473400199211174080387736037973334659836609817785686843479818150333543206137962579950785397552215118852894762957527803103709569741270509847453866743010300758486153156900709471976052609723543491216560066700024515242659202803444539149570469866467864544553985885119757363902374551119668108938179631058425425324479065717355130928001799265225227368147138866152109210782551860038908721912809782694564588477820113189873389609064084126239711697636265200287607683428418897519104052493189773748726653189626308146259639285704382441963969215666653792091858020661578770130375153897150610448069934028719752735039542487552259270715954901547384757817581193990569054657179870990275713535767325538836038157919876145926208771812346603919888188876024519034412134952561599795706007640375019301220653407442544394840427322220671154016966105540091843771955311676229999491267472327031680394168057247823272348697356505550375396513650893520780397976651820706355257463756225176481542649147911795163896975951799153923534767766577808288680249603224294360000529178545513394934475788266050474818012100162470162523620624428520576428456692640732063857497919264118979402204661067711954749763940004668268884579767441456284874309180492225112349447862964286279552569550745746824234620815083302928352892123240847115580481584022511808996651848689454011903130256374426005714056858041563959686627793346977687282189314603807893089420209993425731644438154650979997829698662200678042801898680262605127881042722335777454902571219475311263923580251767205376034168173229162464740985118511342667538891890762802593341942879381000081724355606210314227724455918517438151801241095909740959835481875227135892208436747945416987425468768286221020733362986517164985589383144407591706751104860779068400577782563717436279966320132151297167212494906642965677795776683174723348171697686080111736388114733608282480061185059506800694696671853547969354733023561072979968608154839756547097441493384541537727141367128517672230352814930601079635352620661064116502138286707797572711452031847220969829472673674300201504476919294286004185206334391490111204037160703006613998680289186084263888052391882683442192998165625682643665094632030003186857594248911726668594051249699495729377484253200164540128034217716049628575955320194741194527462131879239405289586361607392839487360016533616079161299025352411676525855124873840901239895852408103131494186667811366470858075314547721064533337128505067401775555830527778019212511138632903212393434896233987282847989898854127341555036364120744114292696323426865025434572276000648188377455959854494809757262109673604642439266034866589070966398583132353993530110228196174125619886552418114464165263324478219170109443321585912240499747014465102689358226222301520217382588747621306805002402861587864249305867476237915524728831360818171663086429638593284502785785812396835539933681273464809632841136190668405381840805246931298445796752011062398506008751613444406685756113219896279091948638317588034021915893050801215717414183597175181111195495531382292552635490335722685453263040373901172191652292028685678652898035730892518443080264222271466116488081821978978270699108960807357905583136074624398502862536342121320638178451415776029955919173431377676371141764867577936668754088190044095959224956536566555108754781608857120138292406341933748664574800944101740843755104936312875683319004892800552132783463877577514407391796179351149095200054161790758962143553263108330565480008689933889355566968322923039806756652230667844764550824494297040718032174684159384971435324652612395078810044339813725912042076605410604097188849893162894362766307583453012374817132949495704513627932099624976573010091245422523735471794904409508155017902025878244472432157388450775125603927810334617613154636707401815963865409394330014260724307117846121309471058109972499766281339590682496452131354466350762440866774278956329651787548907573186416795503003128672419270333931490913488943297431977448270081104149358905567822312586982404141328405488183247274148795520221911712577179608099969399799314699414245479901349087123886293721227933360176047298413061731277289806596448631371121420531105220382452643608692343658627488421661553461977925006880147198903741531221173441878786754071342016311028499980929521519491602349650718936306492605803263578780088904906961683530844570167788072716937193922324203143945649720661345951275680039115332164898548708455225955330933287101796722340494056536380591688225811333860146075415241968046614951722282856288552147262090902232408570352240012693744033981634236134657476010894731708189330350401729934874256382389015568286743426903387964596024233603002727609893648686524185551398281961775538980196540753424866088193160716779788332118950095606736451718047522201845556787461612073167273106436320984287724335237246397567803660039372245408407900422031523959528693660597516418941401255416924068952793170940623175949808894094655943831501916293575907610562117723401961763127915510974710937271539077911917090959412880347193560382155971493160506892121462985271632306128095897600403651147868682636087985512097580664675718603244325007611853757506659896158531175672449336258233546009347339530238731474897854667611201568761843411085318410832577428388913969954725313622500458672307176188668963071914148509279270679070870416897058071970567964579814437703306409709370708504746150896920785431427775078453917756819519194058741988508264118266022119882090297936484113809078827566426249478969791967952340569201215914930809797930510109038209255430270015571478967851211145792069108763393518189024733174266324069315297154049176707841712952068525736192277509532770793101224906158693824060062306645671033699947229143005391553550468915981912226516678979201457383149848621820310112496282077269741285547404186910547231970179648770558605675953221311434298386544742687484770394726203742084499499953049770717306842296803840564161389140727291065318611987301960080014668353547801851335282675110832151889639609978986770609399283886242694364386999854344511728292231702544672353516500599571664184678588426878677279849592464087415640812035876332537757248573844266245376897026034380215852562488761935482706467044401185319877201381224216774161961590679179587570460364992737017124133887219557527859953024149858587575983957232103898475654076713676229690490662897315166037190867031045471255545225926965049353205214895528841549644553209665381639996069207715412849880288106014058848548460773468239269815693130126877002001918409190641425004858851518024334929823993217290760222131258404770868723856043030137953356998424805784157559197996953850091213939382343171692717728834562382572661843823279133679810615365804000115795878793200320149863104893733916345277550091430134102551721655014750526974528119070640651154021821384359845775033648532930586606223288715886305846256588220068695224166459681297445762548563077481692782101836921808760675237038259208004989469546300349638946753278906930221323508007311775453560909771186015114998634946986567493509347730678625409986388760131277791913144107233995013989492186177423558896658418145323040009984794436745082468847995415967068847405329403581593668367710704544987349208153475166584175719328222576134037098408999221506142603863369695867707790804007467707047487372958340461181356545867593307152865509707475056888471611649943529156009040211007465891067686694571144116437231891851304331325258025535230328291351875180977134802557997239846073586064595787761461861141521406601634533236015639351415856786348672860994051683201017288245736093788243552884364684352552662247029767996874072184425056057976330861255916476725939713157136679917441310197966573612732082325112958163034180934855918884192392164797065075586915395924196026494173522724964196020057548426963937164248651136697417179234908748160063729651180021803122017135428192086017828027449003553623961815746268331755723868070710421497577748239190137257128133580626782196099915473824037769629010566869873437526191758070787750300088080055545133333022149726947294402647483452068213908739328482834047239591754325287431777316129278305872079020978577078082406439050445359477473004847024170590160146498671325386518927324186632244794616928973713428874383818622841843877787208277106154588297747824702238815679849423188892126248339293689130536380683403231698545498679740734860397669694347152790907911989946224624120569773475203675884777939972269590157100959866862282521822413734063960976077882757612129836432231341644483133876402305144346079886461563759148910759672934103947620233974052272795531383329641279538925604156108889681907054971404451323111171097823527644932395129055518660553097901169621446705850980899111714461987369302886605549842681849447972306987325020226811177084823731805543355726956992887390854218817607239441024638561183077426257749974871694129842113628842240721745422094369172044806957954503355310416694402393899785145189835118435266985123384775639231085753545088434503596579589300792546573704303020570061979224445270147768755133640357088169946904955256178746544697479305955196577953446983640988257336019530154933210600056727240364329497289383402166668576815965403786722846035258044398390702098002786704698081509430889486940551841314295290242119543397538641049333202040199629428842654342894134955005609593478759083772470997594412281160569941818360210025484696816320579156337154639116351664068745118902244341578822960071311641230605374524467785544728652138296248161046416260069112091816217165117949328718062292070594598903789808974815630359956942221959430308636904170045119996405683713240660592000287596986035928974577342094378809717017119869079798720942942941439536080699183055603317712321601611622435744576098273431550013273299106416192519375785204293036298589872868064682887778072490647910533104867879609491097280529946391153906914366622466467667061001812486320164298024688141653956239103760525326062724219067036125359247930867759298917975418875013308116954768042365564099079995873876667550019053010745839124763041182039207081576383631009224916523247449390791009995615770315627096043250587953416117564222348495543172357535363495890312443218991517468769204368695300208770073478217180853991266294570195237625359966010118197924659844878164843105079763306468498461102884600357277734675452536465742218806207473709008901481917282218443274371058247745240233530234458064717301258496851275040875393083049547456307461303903121594614282412321643231683669007535096410729982512240947533353506239669744192671943080082299394325136371474910218233675596244454330962387877779455692615781457450208588826192157965881895392878138976835350634728091287307990615989310496063137728323742755061972904377918208760599746420330345766266673852276128973013236387055932748485706428793344000904992521477107060422674460054169092044450456997044122306481037155321685634762867050745450700489579867273052249015554563474022343745292468278426670165979384471724329867115163816470533313280714923701522498411634756783924639965427971674468810280161647654542457392836186358519097898573660277767912417783711965202576110678966572969504878286268445489997534361762031922333899949929591384269459100975549182534741307761733549179153549826593075172288232601740037160933562559507690896093836518750933935434114634902499342155019554147188434466136336434865912204691637563371845689587082462497469360061374396954109374624425196268593888141189268482235726793436350566603519329574762175584654896633983286133025748590930645717738604646702255098744240980907746415729615708222606151043952537152366215604628115572667155854334721147804659155889309458301801682016238790471206696706705894840200023931350884167984695168106237276519460596359665680476523793673757867101767543108172248179501439149709782395060737751417360418993933045878033602009186738634706704523208752437017015198512451898114953481067341474737612543899371687776278867500327835068527498043004939127080621077167293559993831553178861510328642549501783132321809465977593411765277742566285629886994653931215879721905565522663418672702097249020362917488735565569504518326952030507360801957520015707505770445044832537915477349353853994886099046792563190878127404919134726002901499744724588167241642404608772342826549331915263586802174408101686470024117012093375159058377475137548930593472051429427155434370445142308583372390084475800740316394595917364532500012737268021057015107038935476103736469020607146216391216496239521954880002936365421304325955375678835989391000271194686408530592758179524132109272593998680398181296127017293243170723823393335002134509463556175013168965243087069425610219158994469333784766098032884576853304162196911590038958062252844909331019194897123320664811526375946633926169938538321035316115445470730137314816824005263591425300185216587918005202293762315936148902966005412406281053554325945479084735742205237021624024728465558938752873261581820393931761542854785263677389652110121883935445340243643470089299643641018269340964627031448423829249177148183892220674117146162877336227718546148391080431074477779810294362066645381921890660936851822859272346737636650657443601416628428274775044112438888222343558427048463062157801250221202562365480362407964513466427765807512914687232800126691359301535723962070884904960578621104241539564923586930667197216068076691406999456507422685164259818893026845424756080733848139724563742569421518596160410667244615217501602490129439428745286513400955927770511337037790721534718493804173479126570366058863052409037886986324892114355462615804212786689682261032474801845519742841583229324582184731037684231894153709166641139194685223768330205036832466277695252570457885307895296757750916167020420814050348010775173555426518141455801493846027756690341148214766279194004169157248099376663406369743021512480256427128561727857740682992064533377596863478974799997026081799297773333119331001672697023606194307459998554228144357289033482574678329968585691755022851419440930712810129961744444867021321568788183385022526095021651365746913656982776588388724783723593511920477330614380919566725561211364306188789485123467186240316964575331808041257666919882274232103328198277042939700862887935869998018790117652593880653185537638060877387732870606885714457970041150196933020734483387356187620651560902912369577999143270268896970625666457114084098966497900682715846933836741185503275351439524516467854064512597190255364477627659618386797640295726747599471883888603308086666674720551521265620408036782604881934883346158925628850178202689353569135798847884545520134226660342170648149488984848485587971230144521241165672628695027876672792455461362663211489584209875203007448092679615897546960213320518742458538447684483818594587995348211740561407212883281184868072257094481747630502048488239177134574188226102623591712887523313477007566057751865452604710379608258228665896664808138241676815434009719413903028965435072129892975198724725041004763675588168133596000552584783074992085297634612939104157163638971288494867293057261913198779555722658926546226322768392820244391291983404228514254288891548116834068013799666766980421357658418644987351570756954504727130558676782603243478482800683129927364618580227751690038658322339585752577646829792486499120423911550407321931523892890183756352256057929433445450365393264987749048135176217269835817895202589570049348113202279914697442282931727426852970897063047008777955309719636361128164294905082223037428434690918211165770081831419636127969811052230233355503918054072513486167898028908520494877644469400083887600620490532271287613463593322474060187711704482012525511565948308008473002214389550179410678717318363514940400099214844639610437092404290921608581700753316438024409614191145946677789667638057806781836114235456453019943186108649489234525829978821151404446032784846880596695630060273499116948158101757923638206939760723385955369889415053934306165928742320361270930391403812896062814750813261770743863943620327317054185968473057911187093470096074776143572174044487489085985166129117764787499491269962258576678708901219927541427816121144817691745553904768281062532359724788035280387920031936302721509371043904327985535075522254713651923834404408957666560901957892734357549917190015480367244458051740873287151144548414524053977509782004445088836229879147327028782420862844331475143258560411503391521394673817717913357655898222967421966507140676900509559379134175686070443444565878454941714231294050538207593851923155011487923995961830763025011585822356187978442445357144035077545110499425037878357398909627813816184209529448343444275387416282531728521491200657894351841443510687533339198579095881871600197728812208303027621620412789194060608311198994040613720420873180261960000601838143576884001867816606788014263574456155733863457202412891494796278795340203532338710499804827245188780539393980832224164605289095194317338749303108916381897555949443886862621867689165240919089723426117809784107016817373956294416497910164730304233315130581816897623337241968660803548173687943670030534460505601589040490061608468031149615706547542558052441274158241094445369508740298907591962369937033273425064889913768583773121029667574328306272034267714482425266757087879684146661130504177291527918739305341713927346031652692752730847779592674333160262530334090196199172183873841062991447252597502664138067348667732485866732246715906379373749139368799744077004427413607978064212456769292927903967771311147902042245538339693066331504629486074543180612730855807812017421691382678764352755266116893351395419272378350681030610055160442986264286802910942489872160802902824087780988674395742798236596614393424871182881161927278872871729612569753646850420280959148926840280745849536006857444317080861208687336617742095348050948975740012770941217051930853116797756262640660841593266072018511220265073985745649506441811254438024686918701634731087025343170173531740544309432588200438747905138773966325950964072759220129706917598795252880987671088046228472925651466891074445797835547301589214052882368549494676885142929444132917753557604852398582172356769668999218921138346999006527809222190922042225459093027283365275548331674434474054218479842446361663387157752918121555727432958465922768778803658948652932189614797277015070967948743560040130434655385114041616113077193156021306579705452216207267157322415463311194532167786928639877835258314366834042246213878008064738156250057820839262421422337107102717704637039367451907395751888000165302141968998471973334837544500563616467003943034392506712068996857060575503598865507384174581849119652854907652905616390073259408199137103904104865846469987653067524869738664747389451096423588544677121048392194006291376282850591322110830843996016381618840020651135725213221742640204657256528728559645155451965912022305132142975355364828445298669187571281831595492124746464390065305124586587221443194812756526962673454730234187464109337701667523304576559150630370248347250424176095346361212260632780847639149623080277806047148839028785962622984659169496452485203471253942454052565437782962597079956962909250016396472173692908882561088664846623982032583070515223048297890661623197350615814836667013394976687681820276187149632171329924126030749039760257972780036862099434382881088861129552761309358045179654477514242423536972004124555461176564281027812839396049474592372047820683622862102508531168579796565985602841928079191745502259343494789504736456869245995628420387115570367258141114485610079506302069650567210596432679818860180120204660495947344665247113229959339710638965025873544755915865359422169998764136783147059623306573533845070781253552865224567505613342013960294630362262324284001442462780945706722446317086825347991587030146146767238358070250547247445083758327479823369151321934413248510879752029519145021525226652435018974982658004139320705013980363888568819918071701296493497711992464407058874233953848568509371110375741789244233729856495226468983972203234482489032405138095986855257807801406461874011006378790451170690331903095459267355265614777078919342904924704272452134142366250436958227099162505389369701575250967109463541158573915891973733982419889110577430383752656349026917313363757503616334218473262271619440133870936888663394216758534644422867505330196623213562375119452305631436700979737361336359090138734908362957096179003893000201241484659027760849561405283794195383974517180162960115064019874026167298105025918370891612501451748480043936907563279709169071226858478284228224496402707942585323036389785283326397343582414358913315650350288644920745020120165333937056039914872263048435619956068185575165121469815910687951307529099030946450065141908800325452248747283995503918597166302664611252047047895863163773373332246738929266440375489647492899562291750926075846512551436503664618024615727632962066880477938203605688022353313080154570885669060538885116075022950845538546335639108580640060558815772517890649044278827189220908816283078355034297057926536023795904780306350937240542001904461310425780841672066095430849066472862949983923132197611315067756333432051769875011429180860998338383960327830177255512652032642327394288015326997751083764214263375386645768427219927739417637533996894815930921309873203730961211240844460025978541433442025169799467011425989564528669687801143081617129888212122057643319490292154669479103932380335788160903526527249171105285868031543410249485156824999641432374672819788960137973043355415501239791871246821681962840093152388737102938975522977357209173740524006053272522218086252117666363022989128215352059634017811279189406032575627415237553202811851033476945179199182606438425413803948145106107361036780359652920887942339450163690913916131669983785936234348546162996653833778096089759920979524034770950050681752493788124699341350704894257211474572476895264812644769685782196635280075881676241413518306481769104316319008606722085820556812495463848072305520431946087611637478781216340145814202456507660499006949799484083270551311531847235262798000961151107902743598445036738172559211903255536468378396732342253892374555862375483301119522367922689674333300960951211034490449574468511393982649351078253258350123748889226159151268377729293030638973575432768858460981430395456447500798318567948657370348354823731634614046714102882164483310744039457429819920669742249528048070721193879734406719715293497573670655204372487624351313980644929950997939457709824930445249140926143330615048985347073223104430501560001483217017856369049154330096584485185729438232405515786140895840514873980153818767253529312683860342352931587730160269493626546084716528908241963039706538169171204354936714072073243664142530898859090769708494479101465635644321494260063139111860977998202459293905305199886585991593493871425189369016718580697740714481507798877191247030435371471475075608487988999324954013436459408439466217580192820621881312645723912800825767262627927005597874277197401797560436192877911505742338142418716714375445691629520994959525537100587026313426770117105964023115735511530624500249996891514237890176806641748439243582872497049886251943873663939595195232852004843263305207745316260119712802787006378147262664614930997547931751154554174416795776621722500166587135274625240611869930755592227204954954386214162028681787059582674388834562112533827634387615529043303138924758489244601720790827439118869184016397120310454302213349090958019070217123285621366679815571140755203626620438233041632280140328765090112263808692656431691507646999209587576594170361979802898531006065002851255380787061984619670234461306756719187400986093758616258946212984512536677215907940972779848535930547687286753637690260211321997250040902287025030350945936461995595552058275585939618534077665513808515734342913360976835674827970470008540054724517497771020015694921123378016782817544016572084444892917707734352195774432664635316975557143718491939069480115456523309462247672084278430597471354331917551243015232002237043792979050436055881155047630283423637447645858643548844489576653550193982347881608409995976517161169916600656436940798885021197511036993724382289972850326143996612418587773446184343711834217276686435960858138700683779481889554861527076255205284586622761691748532014540374775441595668202183656919670351470140290690608677131949188814514426217244202716822871630407688400682610113907705799030558806804419601612248085999111528307639843977321125271811143594864849618075368978669260223060874375724836199705138467450284662562440144916742313038950889547934130819208440066559606493611651798441101765523353911358797296686129388595548957840621693798914207865055013906359350138841870764693308439679946063811950141137236966744287008469603106952056564978235882216023758623640514745130945037950588688055869093559329902157775405426171345821261929349147563404831426261262931088434643735602921493167948956977259476035661388351353545288789252022376793676161154547417778239787829777216146790668691528305562399786827775345653534024775917299659126100011399691014899910001165836069196464764536857006412250255137248036272412699312478361317599584247294878134591058566396095107633214190708346700161964395256138764672538448449540442643931808929494502390142568857973958097958435959539262576452684126119051111867854970488478877047924839113370047940324936566421565291335703184175275096782768300909859156256465458512160441982725237647844112591434590459934598824049687449390826278918994874933584025440161018952795900291319917458453539010664257442253078352417961485994484235526700572321379694879479649921659790494584490827040508065195120822004424934852475525865541436420481860161437330771577113734232114270548548369589817414054097231937921056976183084747698566237605928257632404831382047380957263476670388697849535549649229429484462765210919436001931226324873499671143886133195381765499629618324590410466259354723551837653683157809869426020134843448254486445576125752275096409245717547511553643663754962173660907690196733207705399153945123860503179755480798847693324808905352292369276805139014490825086733695859537298259716262831247701667365728787733978592781470397438550648000393842777127478190868702463566024316432104137713774558466115816055862335652331482111360519444533085061946614987967768676685712771328361897492513322440737734622674383142538116394535759529539445310466800506836386204486413670815889380589017714579090027683939766441856441551116243973743942792090512919544533269767806217613690464943416075441412912789463514203479485568862515570086864476867147587676379338549943619256589322118522671448660810949421720943908227399180330151953134450336089351866429367009894803912859494000865441395344474751513379458362407627285631272911058370982008895995450875090971589429576277463759437053049478334483835087028466470544773988814812762608697743889910774293158420838927941441231060522027751332490562901520118836777288572763322658680341703677219134370079941244714721197601622274950669522646447579857073426754561465672797489247024110124255481100655526165639793084089218688656473438793118236552628549838403419101113329630217291261206104131325873156096750034060372376184913259352839814666893871598614946090115340817791702702063903381932530058745973701452744665611275711902063009578844110137675398428562663222688150238586006544089329395411934117077196877946107107507254377903561164367949213055442892224797635629565337178508294140592179687595679890230836007136547114302265531249833941621607950223167747151627515955923660277497723816690493664190600424692230413087806581153816412094601308040233218729596332668817142766892161698557768509912846440799462293896489483085921440444180091380310359165262434760640678852672268105409397840514709105907489376251146145652566645951394964534519166037121304265594234157785346812261627628871261284085799826523804439706146065021803640301613991224291810500088562881504031927128444319185206386519632091929142515929433701084001213497372338758654430816054905737794212551018495811176538398978442838506436689225570155099755897526700445152004087910203494287381491857025291298651846067057053668714325138397064821745999736608376050164300642815116643229342403945549565710172341105965324406215481404533572822764113173425201648143222750496696021906162649076184838953965118122136013259539567701038795646632840416303791520312473209439613102816795784738245841932312932388017483123408105282458181024502531994344261998816598427112112975224252286437618267502493571097832356859711333189081675821822469241673797276517702284893754390160424685843445689792755324525798328528607102721416878605492825421718131849018962874588130687596149677002691779184373476956459283182299386194540099537594447363651809481207500059275653916879062445635245002232897013686897342403617765914742901551710538576717012788013488182520063749745547411324652038135509949171809938308850762240984078639801591393374681949050636500369109332826925712436193628208829667270117916058152734317746461023335491373567283532660494930951826458562824965228334167426695880482690490650091331375852372839235197857067984928549120024989999186756426458027868595610504267168120254693395734878600202678541478373034428562070242416633197543490567370028814459107389519167544678601567231155115183572919062822477824173304135645245519368066451739570861803628700480003180095251121110399299779972729204055229390924156639428791134149450032806683852327974185316331014997895827816296515855979697084775108547211361802123873306189720240434294365170430766732667056914818112653513975294725955579328477780305244036341474936628875762489583113330666275832125734437982646079466528433277930197159837285284778928847875907528691619569923202040919825328665173405344148338981795090650184335576485141640709653349873808234342965986632729070415170308812280627255445512687355598316515111581643959712054799223746394456680971285571083187791189136683960542114621457261537860410899597056044186536874957851877593272812194270650675254207722336617367279394089472160444438419468145849817475125491750838782138715076955040997835487790232211380729635839760666103402298808982774931662762159693766175280097715447900012975431971238774819735856885977923576354879123652223393125888791271745268009349905054575205574332966662830482468289932552515468896304593064423674254583495181678677729205216480912844218127662676817660971056213774657398109041492730255807073150738261755614658627932343555990385381047741034744856869977493127144609128263998365457038358414282896258092817002318334570633513794856116989509675017185161534633225831031914431481367071724775135958943124600714278329646601385079447992742756496400094662027763809317904845362389181000255263278699239380211874864597226632235781461276999121091310261169690423283941642669194559127519911950314970502504462546915710016226149760153669216886513355423918355436395791369045967066392121002100795377081055060371778532628872013329414084046236319949398561796747006302103456394667746353360786596586577422410897514831700432350507967483911744178587282907424761282376785793568970083280616387334241501182223376630257004718416408241877347507774649329854316378613233537827913526168103801512679329111809257528182431335760687845193169041624038059427589136986646576066731825232656068676279136503650358103431231667406842297848874338688946903616590108281374987432579481213434699709956673194739686759815870360990456804290202333615266140734172799103045034573982781896637503030596802017183458195798970564109374502899593578895087254909218368417683395541349444527530336992329464303158105540852814849499638486092515805233124829267024151450918639283567890454501275913178956761145685033938048438304138094817318162134058108412812177536370909813970688738349470095459738057538981849591183834772729984904736776294789459160578586940293246395784407032889852233003400616400996739953955646326980262326507668457166275134214352087129744348463754198388482222649291678963673609365741082313947321793058584884425854018091882754323606378575283053309633647118597751841313750464089249808288518451063156766202133812422579845425079909196098743736313551734094786839955263387171688219169246053150472912613012546158800580305643310244676281082341644672775326651619737218074786897967390304142250159964942675423624997042906909159821093318764688437440749241249185633229512342190139696470903334828373572687244069225503760461178309317798874189476396052756825233425439845028791801868737841347301397435565509237330529004727508981020249477752541472570710271065463443286179171787014676897717130245034907191904803892579513861624143918045890548747514792512885608442685975283249883034847685618059888019169079509840588462955939584328378801368776129808834600444934826417079621723950297105336945114676845103076796381650432337392129431936789521946413570652801038630492658419170650154775053379152115273322852791748639685831187547052807179045806315560739179362436869289386550956243903144786049105701151521085226480680735098396085334970142190465627826711201280582775979711506374407829672897789724599075625010620926802679840172533391613131942316096838574845689438344996027606081888894609488414845531343284869901633796546333956974547170056429906468089188154346792164288749161992289565323241514302661131101707779532213010235381580695510232329275800642889832941562932026641158834689353913944188974769125812749569709306343360874281140626991670951675616600315279887534629091399071891806949633210596821221599561796249503825444015184849198410955345477738878568761614332354144939534363113647217583370068124126991269384280639758007816333017443850993513673706313539434950779219829585098232067876137168896750760115354070567494562217194659567965924152788790613581562227312298276330097255412144535660463733899943206119305444500998524625871761148909178816674209705004469844567145200721028193986038253712348103230213569785245657342997175123042469415011204532167124873867188827398947720801992652471839722785170634961643686932629017606257074188684514232449430126675161227181249473817529956510481967272335439399662518024875009449532844427726893095013513510514395170178819713469503188819968411399147640687430597525300493555855238211743690069728266631159982933883155849854800773215892151752623694907462422264166362273530729878537306557285013119919168649269371398826814653746154695412440122614250814625695919866821353488128247182562037128259716999354639548055631793957384553283719181513838691149394921550964706231574423134333794723285456932537110815213654698096826469004106231687339014014529885421853160685879144497723820788631411002558142426139916970952543635528633936312311219127359063245818516195882769595217770214903691790993646411705563619763882644489919671207639673447659217113133548585049664269355593454968243064816147108903425729994393437634899739974570496259600802472373250642997531453989606260941548061561288998726638541281123002781907792845420645557466103895751690166298859012529732348562431929082704359857352884110451076000462251690724398920187932260049469261628708624664172177109194712407941299938654088379282843036915341459528823916446180740618373534689035102473380731997440686935158725118401660550778161795516524294875573390791919698662689724427896084205548193805302769093389852878515404184051494831252751159271862174154244112873304067760174879625313008172195320666659583243321218642561072942237382457348627030321483365663870526655182467752479342889381369783363877518511188882305552669319998248307385396101045001019280758414632774723009245663846254436747666351919163735261811682537150915742716216225265387451443292681321223443824609487906179305700144020881806554359186395568475292143578187110147319127751588253050127705907080338532215876440979792961286940699661979359914155719058989043816124016288819699604814824244249721894095294723321372093043831948948986843722641500486033762688348841272104735132051395238409493190130362078858038334470110000032427372410234701342225253651352442909993066839533374190972716473433431961173304706514532052804020507373253586744410706491645000595525417480904234947553171960525857473668927506238673630935970390782813835896948340335986306327648743705711425777627442924685778479370625346774343523826776489407075442369019578309516035901761887375878843422373291272776883786780274164399090976529868304175769035506742834579766866572405489886953218934047186426058730642279637525011832887645380186066070250537200766510740103344233160459908420000357683629581189620208293625360983500292787567561185281307116485141711656516033356993135432119329153624805467352775583699093670706648584444303579848751251851586342960576527872366129062316609217270190800582449362312754484864316023188938507512570481486103561434745557532065097215029537992351051648090964700072647504764821049762845586879756001375600818832619775502933182772355459087133641110113893708414551561033609950310210393745450569364504610610506937049716445976749840924152058071324318511553601905346073938185923960106628961906506618844098277390699182782746692905602278921543791500562338278261027173827211926337853823690636798666044859411651164186343049267259545862260646212573777267012506223093392691503516483870133592984632547847135151943213699435000966449885638172447071659010776380301452367518521630703950168592435368188962782869181036466710491609355159485254976915428844947991168718983549324698962676189449534536777244352665602580846865669948408333157739584609700301604761352368901131494037403424572808278876718958104580148481441314196831613445756481593804614888325276292767028872632114899156374213294264804700887512829529484020784678851120570547997258965168154905149239538939382047933896931531515972164149171285297037974176573242565331828808380267937418352942361143669501890846246973455037697964692656921527486970339052620804999131345455573171709723971464099907952049534261215562718761096959707134833520504317025387519131234757781701164187293723175790090676910005279021949328525848206867883714367145525952473052876997970238292514086753672325689263799127647740070244821398638713648043090650119432958246364896784206293855265983480030543774149895989206017095221114520001961268491987605049559420751131598940346334895523151783249671632599096075595290879282371826219609189548508404544865059157946410853431202391779202366991241247491104257099652496902941542346715530996942931730569729556572311296031625386682634999523497096347785263672933921287921386996059983837330078608118853985571778234708850482009566227755046659599602844415330337339228356085865875235430441747120794341616734217523425240383771112360348322635344654248760820933109615434662021381274794363039166857279621093745025949317004718543566253576521420972753846359349946833494529773528041977059096249292222072318063570458212753623042292944857929996684563188978014448912431476709205352147336265474922304820133487657884271879064748161836372527546671443328078550669407470438180681222202933089574953446950946218853237962053616899653101638085536130086865231917838794739446475624391409932306299004879251715260710071736492659433774366130382336856617788004648479798773482452544517728706207706120999997891455249917199028788359615473054689233409226197527797596531362260299390146662224324700430951689703670137251141672868955897220538880372008933952908811825219223890059645095312565637130213046651654192960246218899456490481944198624770522199948830403710315865805684730281999578439036991846272350979406856283731629441649134413140595820831212109212667510610533180897426885188833062591744850524408791786068461575513488155709875284744446357628006437859980878092238118482073388608088755901664331043418993960889127923428105247621183229421070091346067905250003429135637666850036014742821276678240009119809788978855717714484690231828412781560507741159823362880448162007428681522180423718631895784321697043564554030064684562002498054664978485081927256818299720073045321504224123698816509949982832217610247869575139679012500763902659678002016990169753972381435803774817658844979034951945249300716487853234118704196446006711240283554171300857105251558336775993060743218550486187225613774685815152431950857017991336925734528495182718906079327094840959547158659554641259973413617751723542217444567084120370391836025148195611654370493484171437383871225194277965028530854290782058904909601213572104880402906384789699785040729863683890337148108935098339682991919337894527255200948598335687365637832719888506142050363339472662543115343089749639516668259915477742405596184020190094344880114186990685822420555825625227153864489620885217337530002944799693063583560650046513535868500544902268186842027689395965893046081935309341725385366499651490496176555537921482289973650684794276498481464190974908242948023158056520809191625949024966207040577558891678030127923639690502621714882984152966978321748727566572301502443569167915061653931384224172038752643679100011569859900313726591079467361039288592396932155849907234235918427339908939390277425305323528301761049984235601514707543294740621415809260947694526429440289231694226570822185774969834658767782704076607742257775252573846913680320529456069900960083185707898620735930783403687843993791658232483026366089839587523014975096698983916157286601493716594870543831379423034533524452315677531310203306008990417428465181592828064160422714816956839829125247008845373962853686493179709548085676578023740387627625003238653788299376230151314789310342914228848417049993697060153845329094299071605117461174890554598968019273850990815733680261505105371661529420366525154622355553455180498135366400976846467711246873707139001362435240586349088150516090657136410879073998848842309561684479029269511667731887934600035432162679575423303576612679438367484300810158379574443138903626876567781240291645287902973359750373042456893505018063451986067432227642189916554251319364370739633747848945797376889838429118493708221236259322207769015117039676267992980546347108554710556921410622537982572349795661944253492435502233600288659832602692807849042629590750760283658769399544219026361671367492676884311061309849406418895503954439196181235406344687808993715770609328773629398181275848697734617644586104497695909186888430312194688044950293409554303109408511844228932900076579823377582942644330756390641523536100895416305682538778828675083434376609268106811455520678024404385265843267856234662360585762662749000083800485181172382334089884667401956099759442556082903570021765285340551699493439459086017922030689266538077141544881755687947513913676463603281572143919287722996162452644053791623649363676677780555921487518322157981870946658650819613054689260712990701838386106918273294885258573647560754372943293872241855306654491590987517816457805839601885375990994669136412996226341747227991265426712817729694902517702494516676434893767649338815354078264674959507140842893357012036443789288879803417598681422410976022818198255879473082539886720036798591880091348710040451495899356447925720173556694839623640398557474542853166190239911015129929975602382051726660541562818584279212996150450203492089321018005660764252803693312584355780308580722169074178518051367870003346423441999254588982489480542917587699835258516919006880344200126246110562239576429802144875924608507906494888149946736366176827583058581322541154337617498224387040379981214271308146085436355909314722510680213703489012634945952114159782228422295451962530319320811707978273385858159828322681852922582016627911513514490031781152506100567557190157530331839829440422980619004059871884324505359183630904567771703576652753670713849598979351263999535578534996525098541447706581925901564803286492184917330061349088569098146220693467012567389005706361057949338429784422219194893035444491746704027767799227089435470725606639341774799880809626013724523792343733358765076957119173587746056665576137202139543441167009285890284371608159822648675539359255679241386910240634090840553275565172517699629031926610241212262037141941146765174078635673579299368671313071046295184481158690250764181181091321440369462674829332392751463369341454278179134361186741823454404738939380517237073013715001916547107038075313465167209965524821538119834794498124910071744425487766719387506742734289273206783869628320369913557006720478723559311370290550186891109260354854739198258437024364388159590988455342543242280371510381419076430314068239054426231730192367343023003615601224899482160781153660779720911360860047540941716887816975931671601439736349711826748298559047846513689800228891855793088501816584320370533111081338582026750742085217870246625047239547551663698828907018449546912422288999235907053330028000178701070370425120994786142431025359648756361756586835743739180200416095402349665660294750061249745887822104716832873882453874897822874527900552621957843657709999449270558067978531455001350645292923545243554149933097641862295946100716336570997029874509674940031468095079752803409160242186528742425446994737057789608919521185895740926162160981245082719897081510370510919926818399703194761926746749326469553664813630767708065609123704066371289091276976691625139053527750870008999898788918595514788548951274324609318868883256143715163182443731560996201611220159549298323875409407419503848842197407687743263244764765277089348838216232011348876903160311927648782389994506298952237165384177791826577012997307150872777016091127070876002019112200005065350041455770134668653394957295290518591547552743404220567918350519313903531991384463726659334012145608951310741624638747775674061841445910916269852680786028114871035592671785507414183739513938502591120534264208069832876644751261183613789217602737237334167394623652881982301406611885984106178144231686617741380978748098351042555878651165755197145205055939702201317671957529984687754435915615859471255510084031622682469872894556158734747219031877032373162516663686053691716264391594083070795019498472133119753562994880310873345155353641951798994237583106610733278306499001973855753314397884867005013810431941199852912735948239073942911006904872289582573857332923090545662599674118334732302805995920295715992967935137069811787676801252232508256197502124908921278241333326488305816914701001387227918159466222286755676537634062360662497766833681071578764005892095356727211612665951433510307027237147503018111057339983634698630752587812165671006977770932953962451484970153800184737924320983922483279800428797312437242814299173528202463938437966827185089968720843521056906805334102256819211498780385191722089980984942840723699269501292031069375641652613163397896514460909354684944901968514003028262039385973886827136398360002072742964867958857954453738217440962084573246283581424443981276431542822568973798530957087599440747993784833534403797406231843898259350070101852764249958851493032621646392807887556450354496931054707171245048118208682141910315339522898864789371906412890118393715407544572115272908803121283159905089963093398697436187320077039313277254542901511093150678569037683491083946033242307095674410424730714608075496356271158236628943769654650848801735166722658767768380492138681301026515637198752890662697635759227980300649083000572884199382418485129045528093299163168092061252620699933167898872243576446489563108272895071375914844038766345314025210812195498215444472389929963625380310205044625383788884507741905348845618490167367636246253830273020732063326853684191511518498640760459441843020693896371896869671988275054694460936334260185676377428821253477898843278796987171900169172347009156773945826111767651765078915653589166193627104416503845568183748591377416509250639400003543810030213991998790587906097506257779467061528674299993216204387582830049482791024451363468831399310376359653324533257909877467436777957416507154678050293763284304604523992052654654904922806865147536783361364245193072529911464085919608533024613142949310409675570969507144414138739918592999854597894313385267547767589051158192199927511719135192336274654524097376838562611146201715229290089687544791188097791176788194523758262266459403961827328969900019228655110627799631975549159494693114297702120904758825465641222780160785796300243864842587312237800263068075778997864515846280602517236982755828828660809896623111205918911507816296652768782693147090431745134910304906160467916795051164729120893984949187722436776488654033049909676064695799466048581967940827087497767462482092504749823640843101084964765648840997410355940841784216463814743359702889417854054666387190394132981880119027363224742177986695858111847353284012132505068311670610289547934812870926988651455373021247915525157058014254387371753988072240399942818049700973522083386869871986142385346305227914680724475613275790088811077581716320628988253523238500046664148522370310004151475225913020233111370808481046811285973781234316087541005877553368601433515930923035860410611794029763604597845576466098877004853574344313845985853234652041216624778357736634734082701574569070237407740019359032525184926159594970233640585260266757016328495719644825214363411106477885258084501344578167595941086980025328010766257800857741213852187813240986102234149615930555366989433244127137107200363694478835104948991490226775150442254180001528817693194769097413144964300884879493316001378474621387328744908288559966348096305825528572136457638090085728259638890581461179103165446801173451173633736041047646063404340447832348248935371168733699880935509435131726484585116316745775332392711726626479924391064742431495391324941974112501214229707500415443058380126629142374973240481230226612642168111929431291138943431837317411212823060634571715291474435346055942247466010956827091293228628383000143936718112847271114833756613799351291646647400308580158136314855016950358898278748192142936468864399473054006770930878887281180163573375141672424120817232908951869087265219313652376362904400767333317177647417841770765424468054658623057460172918724719103759356225126028403646083617794810859335692971078539354594170575578863679266075334099467422994816435306206759972336800971120565047529995578098349715738114794082215498107895475752475493730514293985198369730739116074392519594204094127687633011174190645912087256414374155055467158283659921590395017142786692041431656825915472558338338032807172551870417730836578474909957121208348867025493391532282050238934037760032387577801052399194024587159986715678512546764614485698393871590306924794957137570124440078664673472916034863635563603226396718772045481734629930925271965081875257822262136077143077632182332467291867337297095681080135509997821954476724506116137161091401428731835665281205944762484375246573184205359515343473951655233467776213347441357483073874969798831230726925758871738672644004585077812521585151726274263249679387554598818437058797495680665708778298496947531204562609557525902332924789255903459976448970334352341532197343500286081129444132237126342965768281839697672644847815282328308782985733410710432677904592464657641728599848872874092667538589163513724811457642222796749011262934884037379567199911107218075327845224959350225193056845301986630524786614145364445857755974408052959844857579023691340780134654343409707084946098765889076917474682830984052023434914694386133409698797692067777044818829006828404997154287191106134685321845172727832490496411234666203853904925806816501432696756929750822174896376356765621894883187851037493014469122563572689535616223788803988439480083251375956832646108385551220540697848183246819373469668953636102716722324605570356271273717122784488646752670597256686256714470329049585084929748964411635871788970776602590691819318166571793990526241687642048619240501285509257448675700174008175778264286852652953275936061422372460768619830964988576712537069335209776754238307403392581851336634568719787903913288499394725283287080262808863135785093348162904767131509941269157988380154987133456128320510555350998231312616080539975892274656875134732557487087256623067374344035506245111259697300592020893369623294242184602396310010889385138871642803271469965553876260185489893883118849234081624511931949425870426228721692526951006633415666654971403344352510035455592542801917423450037033460240589000355963508397105465652458834605448584292982938959746999839231705210399719031436245623971467366040128025151914995566657722635591553437073114512125148375117185108455870719120160736168086295261395507658578825394564321988857565260024953737356162062761122169361640248783803302912974213967041481172372912257251361389642329398648051222304796834488279094302766256506255500961842531801038833884513484354224124938935454238404033047657035624209699639406371297097372518049079788342712257000231769812540092407116270544232725493882034962664337567854762490543016934562292663532709445344943193973019372013799149516268503471568151828964225894770350070257263573030308781398974355473005403624531033441064124926262610882810904655697991332771543171078398905720246301196713870220477485735670048685620123919466791979153907137952939726590662659677189492399131256204296446361641826523515967654903314822985722203479684313918027639044573483744330649047645930783764625648060388444607896524716869915779403478395564710355304913528551547473667260901936606575452453429456650422335037210834351740015565560094371292562934908003061618991538985267882039174090562246992034689662242914060350008852709377762972939898703785543170028120835786583043331529652763080306734354837849952091813502968453890168295356213519206218757737505817579864765138761550978966259731528557763232491190981213359927147670516906180509063953163841361892657270578255126273307035466027704560810650407685485359209708503866090749625109642032282399312279988190407918767275937384624219762181741871670792268888415542385604356822837199230401134174540192305632808503511240560721419066750261781369580554791470866409737760528434285267705256028749329578874662844020359963952094271155378548195789911043699890057720631719104687266521438202077882670640455409694602926553644900231944330224563655077454238719717658080884598270302977246261807956738402637081897460944091098078540953291732893005200023088194167053959418959607392561426817441084887252941976781753903421962050062768940691001213211747355146797833484262319010552249987408239139393525656252036418325499693112424471090910089884095578619509904139777874661025208195156785293900129544861672876563680398591693244506421200167614702343687165875053922348405187812822444820290369749352775461209626695344742230473712077774970935235623086340757469987657404752833445102774565121878947772948694949221802202657021848429375669057118573624435138195965716773911671480382400856718448953113410482581126839110362788940809088997703045036292366855644562384325364306526177962777593080224092709018264823333982535460956359397722774600861808020887630654989219112402085658199385054742667299440373602114933731094223128432603415525852351396701098631312887289778229590979730705641572315629487016852359584499870905672199566231220070659662975396177783542747391214027707313814229710614625500295852024508638576887302586080322507103072520782575604709491810393859930103155545182992277448452342784392732866035258148056739602272487567996527823288880387560033551962179886459895799501678628990852265591503731553559505156819973570086669009958006589744175356210013303450978576299557542508818199376641618722722976022433150814073675022750703903196934883300140548304006515913273535796057597253748249299567811294432445176880232565650041360989087898634931621067801049083412811589227702865583450416041784715442907954757272163752154255551140063111084161725902936856697258090377465756840266625415569102876481215518402644586096167602198358222973978669242791361507736012136545189515736034307220403315490557265502574332035080440860520351233919803560020719808880053790649023139982020843205826444692399351893659378006987082554951044551167092603413453204499934255591776767692339451715706594511306207011027902774162482222254855924999021945161070470686188369593367675222726833173289378375593974201771053953680380627275352247473063978862571964923347757557192262096779972481981897415316643348846886582031637387888495737675354727040811485749786565212316047768216551281324304313813576726341093766476394698981606378738848701942134596745493212506570608978636577033076078647691005734090988805471636370773997991519343489357443501119310531154689370543462375020332859912908318368013329620836744391761936265613317557603043028866129701769844220545521511310176266960708152812825901597814802800035181628136872117096189041307253613370190080543429633813030435151372081915482830206814372235341051166890358561952066812499284518819329155790926725585600420841605330468274984781088419512642130335634277134431647550501815910731840173036625158913425651406305448897611611639707567263427965320161791829369634712589884435982603889580809016869940174484477038468638569726918937581509066230369083121823691476765532150805697168482045939859394746472019760519392354459433402738188041071789388142127407956690582670751463678626941319863597220919854852591014667110035613477400589678779009072706440681861453200851836296725238008394374206664464000491731560505500962645488573121503753093826025076228384442306016587546613882105238784293944376893324673173255071343419121587040392943123925229760363560543900341869377550709566564158210127632959715306551746921353425997283638210527908510086055827482318455681181725147654908716679750715754092926423448232796530651952179625346659821330113354433402215873426793710397239717083414030043195982957182333806683713091351710932067022199638716327922870757084733330035882008929217011522112105597616919728189753241059385241583942941524346703386479426702274035095782997739529010229354611521894665550777625416770232809234543117585517601407739441049394534377483626448892751689599732705587953882998950889809577600675273260806988456362554923071996370285622716572736036724101374705254709791545691791155274402249337722931396677563656105401839585344444980743856379577977767600423910812305436930366072878263733294950237880574770278099125469019822659273196946500099020096092650800149966592033462100300431063813990640926166351296540636934483189395201850003597728681196400257258334349288308408972499092443256807215675547603032180655707023794586900771455554362120816174258654433940123572529800769002219603316409902766927203239570456897612168986048395222214666237412339928102988967748109253043564810517918215656539571040728275240834332000875633699387934944027107683645065167078873827188971259421033215799061369019085434505779894228817204941550257504964363013233694110878279195528218056072285214609031995850054047713340454492362579207321112938763290374285615890192683433483871216789834801496025703939239419440931642230984454931602566909855006128395611619184396789117902247367447499512069397566600123839644889670324361530323449185633062099533736227972528408235929087927913358950142874201219426648620993859468352370097843371183031790971894554765116782442360020584473394347677313341520151400417595496558016196531575163177544898708500838789664826937569652410736280262104956438002090175782106848748065241586546625223164146636440038909299032127786461355591241860932570202503576276994864473641714623051945557645917928409843303498327779366469774197434553713302282756626874338582146855525323629375029501713897176384604533418169247547841597240603725207240642583772089695919607985358010561656260637229195895242902681848528131303578923321318132346205445152182915896978002945126691876620580695206373353387998004315753538133488763995983007830927775984441720348922154346230590905377700201663818826298607187174929307529797765669290141047727128785217582980184644001671573951132766529690640235743119664460015569048596384908330143416008288179839847180058877608639307246157768033838099438613659597468397989907059640427987893580387930639065572854798365409369167757747342539070862730323495982998017480291816738449445745500168943356866861822171020703197250771696134146578579776350201266880922279385353048773747434860610921339927345724890799480329442884451969579703287612821426821214804878952613364590963839132744317966899960906755074882942361753429351272881743058966705377671416109124029127386835207534991777351893178188581576696192191203848070792704709347150771676600849669076642875268444266133470927244863417430680296227358747753854724257419556504565090282794577427047948418399401825367969689582159688567471832605118005287588388112830087216258276529046684339550820337719551750731842155269198063287400321907456536653079257542316780336291869300677999338330744841112676839968861643119604245705005416127278930890479052148333018683194674142270691737777837596260149771246420991940597889658190245051930037291393323994829480109098854920881521958166413122390646522819418384654114311508889078486495401786001181020226480275707540956723185442095445293838156666394036839669415787658654647003239213228651898166823770094889840306723726548506806568672638805259053150011263162629421372180388717168450433880925554693322257493381478661261202687908376407221251520290526928132035043919025742713577964377517695799054462909096458630443033828145496417952284368444118394067351535465713115260895676697410666952285485271253213470744239892568214808427913409661021117797897145882401743909043210414747911725915221132497117098135591620986423966990168830867721941719769922596203142577510382312408212652998177535018708391093421562302565682531286315008903160333996702104591574422085447909325645144813335858411644256469781376220850382601703447982542368645874975129343503561606385251470139845392099354951454000122335273946837696800993418471984250675923231654269604762424483289752901606900846695153662169287284589130954355287381310327170086277181269589277124530527517684109837805859227928999504602619340608949502633537904652913676834113660779301038730030140032921547797696699991061695759521361142622114973320160907355088738394510984224502834809213536422751184774982146923086864000919793153818678002656209151836278945976927961626008237373208232034475962894275575439210663907622650778093810581569227254871363693190177017851796264573387907959493803004972943869917545709836778324804365399328406542668499148534451899463869208397613216816641547403278842250891308231282953645321247739131594744915694192357447211290491005987940852720797475794514919087828685144526454146765789797483144188036569753024583673616142685472103003454087600528927890487542731479556153290222657911398498425288924162806533281665780907876575774584603197018789405800999445799901615309797371517310786848530110851430513201385928046666460318889475965354084574485174984074177870427033672012097017975900679264524426805901777908328549192122540990715291973254526443201096927622082577490115674931606912352885132191675486250791559214693080444865350449286213559749507581610041441702038171004708026857126652647426374248840733111094744902183515920137052555027440792717148535588891994289704726045965968915279250902042627127301088785347542887986735808171778527688956313167674328902249341717311572778513926045147400490857195565195907461209547166640424225095581976038272270045678276904855934003355239623923446605292468403563297214395687455770401076853487816655876189816179294658814978182275238962564483114233961602023317549757244521449337751169999814150833561890982352447976211618786226381366007844301746570072473147383624738524998923392579355832313354422671493418612999129524950595019135595181690612451517914263556908804860985684097928557378560644888641782607089858663783342244140386128074642049979358148577511677666682932560031072772402456235700569727873571576292366044002995867009799484379581583198307177889148434123572913656245491138119831232695513565231351770717730900117651365903925992754847645567121425318717135428965640319309441689763848375608597813511098739693980722369381317576926360197910512200501887898630621533542506362684630857919869719112687565819443019769627098157670153470603220122432436799939697284692765205084073671318725344384851243753700263876917901776779296665296120993441079769153946073706530682096090869034522849614481830696699828513045598116611751167361699929360169950536815167038726563889064394968574302376131125334938177576722772680855401027165162050383483954552763072176147847442336231476351690681619209018518603388045142992251811981228907178663724543407682803613727394627149369930832986892535502244569675584053877560142478278683399240060997663953778542930278557451232869288799101928608838861034869359366668855348535814499111046852313585579038933774822903400688143269250958977180189957726076715787566232314259561887287251226340903607839933902607629333908623626539680717121811515333306268587724163702343077204305596929632413194637072503987038729533534019680870842361546018416909114501672112234645751979814923496284825291585055875418568419011281843306668728233908930087228328814540420114417678165513311156797688138229207978574908708836314268070982794816352222002654555558475582681426395038343762176850217886991397442834469887355933762299298425841970052615779939637578170063319655539960574336525633978610383970167123360512187004712449333660990951312519642155397594945170680954209068559602764333318654678176893986060874941020971516943487578010402785774858500509322256615518085704121654433011488678749603672379574049826028117252110533288573971766155196500280227646119170827828037634861810806053455523411472971055290422900544315725078693302168473045315744102589519837758433019191719101781192675241453648376142390537554680664205734297601110385198084009500570558609751523306601202556489833005413360753838042246979541478329311095627730097450456025183614399855341698279752889444341985819658119937044317316181593743945749837503512432956324199625395392343492710536552715636241975712518180609638698284460579680868360460734249830391124357257553038752231527213839045897485517850128059920635811979240310250665048705323874366192624334043588903689375607695928456935254392419675367228803279079702444485168557044408748429114077821618268700796070344507414047901541611627981273589508186359657374676654084944055942768556408368494423179637332168389064304098895256942833973342493138780116963798835686287720500336762141411575037122757686367939743898621783993744748539380833085694205903663309687649373752205101994924784857346250020861783810323743445376275090586939440086186506778239214580192511990425030036202388504617526384302943648743354565836892512697841094032122025470374075011957311533222121098666842496318109620429193642645879592789133507031463893624018560600909487279872024528375151476216747323569705183151599294802865842438461980772191017482193368255286671687610769787806800462235540610942709952292150925371809481417149639023373352024528966842019188403017626504762208359288499626246618396189079807905371723872565876530239553102471095283168032069534459398011720391253828387445549464616389939027676412864257628314967124939011286450041124277446299074055663649631600384321039952679859193769962734375896639765895074153761056691022524515896648254273542242780833959749486077692856492841004452014197299879162024387030998029534363417320346121097493547008267157101442072360013083003929132185770930235113530595639209334985111422434880350239737838728128472659265762311095004271839278587179100214102013718298851219209544556475552856337685823661992709801756464291627505328394254234934757628920847343107258586569895537722610388313780965122112380523231959259281159844408576373952246031349034910029888287480614099955252938884088843097426573107001310593191122030611547090606678262673884560506991657186146864683851303272415147780870058343579376823499580904469053049184189165071683570691632883528690890014493932183741169379238701886300519676674022951941694744397720288627114196016387012438048655361548466852676756281181505766798963519344483013617103955057298119542058816761218305165862424064821967652177674870375095024347134379407963392978580765679194178623638089986869933885479089115430138346627295019850534876327982087151465483837992602180676222693762073513808172185577936493416351141337538526544146830566347721831247973047480805577329392433309456454355415779707336525252222302816965050500250160176684012315655126480410424321016307041743682049787511931349226800675834719262451260146974630088770484791571447954296945799060847413070417973965959223577879282909469133821288748769829742093349203244856930102738993306539574437563258519732788789426369342213077020097756528336363456051886649142471662329770972403345557612119087953694857372782702354962338129640527741138780320176679988055852952803010281055110657144906146801286208328319521121524737902675877701398370625611555153066588468246514036694552540901638455870936100480713159860010468511821418364901487869903192348993452475866048589227725548598479642974344112282981418973599760840347934774650145413215673104164503328035003563332055836396185449273137734850388682197804977943242256870272436490268365359748698654580037225838326675637660762604259056825173790710683243254542880912460297464137846328210228343948370068743855577665219094741040331043989733027523838271267918128323999563126056339816114687292171495611569752685629612125346462101473638976609601721233880720491191900796261794173477238233586038297533065745894469618636839521580456788109349367350311733636814881943380448879598518519731283417571148905022198760621494180161324355726027257434045830210294332755903285061139910821493073836808836051648831329162727126512141180159589058323480379969078565365043763201021426539268998877987671409150782316465101157876162872910533800986074442374730431087788331817867821395775289149698607677733571475514377948741015088638408623942428105527226692662151860505090177881585874048502853980023135237931365754455040395466233963242917237234787936241913593993709796577250185429821066037456490107537661170102827201463266452987613767917029541762731819707945170417300287234822372769764581777020488041383755517817993961409151521031588116826201918575171847327381460803426876371356992694557181332535728228243615586984140497018781614899398631741310543645089723054403565715712353747339633224533876466467581724126612260777543676031375561690895034929220411697128388069590572022316616539344516948919010165988583570229513888933087032555486723218870374199429504299869712857429267495835010347768466547187859010058075289874318004853172886716685713473943712321721803713807754240613479197399162485604351438151662674789227483105504013333811999658802043056456484650342660439381414829579823990886667871746307184591729836576917854042817416041792294747740475265942346787629951297341343170170115071802339759253627157704048113482129929301184580457545920919475257779020775302860598321944000278262826530696300688314088121280563316105950856113438385467946846739203077210939554491081662091403934932260351743101813553916946992203465786444223316167056688819967584973857868360721560087880204620867115121060734960053052440359100666952620162989412446143809471812586205509956943084160608997260992696683111399848435772899603930404522444363147882190346036185748653381203289662023122781166159490537939127912439432632534097429311042036541629684793588768414542282537944829692385908888373986160282232959107459418506003699090401403418217292888962841834852936916164904182645192141029331917297752254877879478996635504711716320031997739296372152333269631281075279997207758834576382647079498194710369996253915327100967434127089622558671408012040765077630589532337801105682552413177845011908151937910597260121903882903653322518693355650050003361886566410056030543573740612508656519857640656018742431851405871947233355567616164864092429409313161050396534316912055253405886458796153029154469952247709687013653245552577908504580165963416295758278329971366854358353694254352755768857929472427318017331735757811537832548721230270950922563274025320418708342473743281706230176453392157262958906886042342094216200893023098846111695751290915187953967293197302254619295212666682944602752694865754772978529405804720916151981767548551530306810745033769250734234945726777011663883132422161912530926540382937168091033368507064537948539268679362012637084952981652187268863795588331037499019527387578964946130711647291663246045460913710194140510179880321304260366493088532354751541078916942779385752235308536240469985025171026185664708302464190782771400674195182582962466754460517140101615266573966999551513954244531213505547071808339541661069477373196091451588111564045007721838207115090637282649468857214372495152337152244262572182158699215980720075231497345050204603584600841063737307522739476434265420249030306072972023946970675625929282209163239112902481502475596125285139269550092212499604795404733221862294358984559303577823580262931779961390275200548366461871584362727669846880118800591918830521042277393375777627982522989916645553995353626723129972987717898214090382294288671331660437608234566433377122210285828627456406202761108894454935131769819710235067632833915426381155916392098675535079701223367820887110964432266139852420892272803579600664211910075690765797924086758145446164946973783380422829302537230750150343754902052656276522850535300134594728795149882226780556959652206308001950547394191124057546638612057057154774281050435691457430902141917369807619896206423040538333485161955392207933117635881875339729876096851710641007625473778374700622553119806548344449577432273476712351403694275267319685233490029252035878653715853750905721059160658922058178632267079447712589331362831056327674597176087358349905853611941328483050408707097413093594655451894513999907498900933321736832565051747124479825444122265828738658804855791502450678037124301169532212835596714821897538090022871523336982892596036012631476792240382943060574620253743342214354179664769295975825168822082452376293375463927547910900240910241909991499269264849261399982293543350639469908649581765667894852768192269952061658174240804099374994592110639861603743968298967960452350348404747490092667341016344387195737975651249158472024810073385143846660327850494841299261562981225555493039275533053259470629414265691305545930919688107991675114878996853554953217194171978671470290106253432668085957166601198480004753913641227831240885164432224023314720333568053605546915125976542358324372381351504845934399797741785521259216183206999426496040728868579598337651950849506141946735225522928354232885542442149532656180964989417103440773922462222519185876781565261514319154649582078780824136613078514948601891982111428167758807008313806239327509986250069228197553469892195913171978751696873388509433314731984603899527553569911523887214816151318425395061993201569364367251810453784103708280169403170165135518563222096829170434954665329030553164819942450677389729700551455267931040254581586613856133254069377770533002794353272847893984302107109925727988128364888080790144198224963112688448472774176894350466028481019587280354340995445808899258137340061405886432848452137892622310397165205674186877789003402144598376113086249888919491417519229543291507885066528060454003003862325927901677689767388546944272259445190566103042499502968386150771903180396586001881513265947678348388629285595860165988563296064151735159525297007799315153371807042775334030484273946003082911054621174530574948347829310567862478143811397500533001245746519092663491736508923373085213076065238435061393789993890086067101775205953019984784403911713086954295608152382214376177978699124939225917063372097266030834667136011333965386232952337083140256740760156592081991060151894103079545199465134888596861112078746992609686576558924943037288841760941387311078637583412359956364757251860761081238439005825895287566567255473016937448683557609826847806572435475152302517817635330881697823046155336047310033559507052150004758747505615886327094325684657185637662584242457817945937430432878435003105254144556747181821066017682990630972882903389860185003127675157225894848331162352646770083188591696743741431399271334848958751687096406942306978517529428918481391462556120634688091422477651022822646968458736650134062727302613970241837228628992689828529650068217993161330655278225993403595625699409946011499154011247016970157194912324213866469126084740561194798941043644836052928317323276753408015316861542480377464038151300192082778233682494335372031001899337009087140784702929086326538468645160053340484860199538808974883828497844890947758443811812446941537096304082496318117814838465051651683556098585994614035988058908093775543415333895573693533818763001819920884854170108427634428685926652506493362810452930914993868896809945175581145709893047956714159886156969995769505656364141496710615610449804999512006070657392602162828199251464669176433236665557429651753302647642392323820992852497758376634864265730092884336040322642774660674819834511651770774773108377676212433250773640131636473078316241601442159710939366424187566933704912177894967040445008401097481285796822827877078564931041912110416255849988281571479377100806262775780427972839316963142285343825387560298675379628290077091015046315706407284893488213458335701636523916626152553284783481144387712290573105491461439437789789217012513677220435894076227220017800111639515777111225325523201349903229079118480322463969643047344849707090730191413069058362771394275236222923306592168252014977614361505047424038019234207422354175034026536596746567682073802318451259486279243181095223584302210661873311532239382433397353403226204186922579201000011229093366991406415945685243050111348765055085057742642251502774017904565537104395314408546764611294049534467335021159162598622459353245644664828205420245131501826247734419248088158262190277414830466832917412926491731540987094168924925107119848602868363241654704069380200134012578775354557306855787774596660448948986547791919021669868954707590674857903180748650578241131182300212840914151345120517946960593170091885223692550190124457709742554188903546657269372152956993945046678208141592828300209498482238603483209172158201751799619129719981694944201879365421846284820264755251923370101867020675864797967623491552976915671027982362256884801094446355692455446752249699139703458658779577415346250075391214560744050862216602006975020334464770762911679382047247352946668030917492664975069488614764403112868184352734415845638203149730435159605721560575969522356821055792769069105351660274798122642937708255950604068005339865398402534264015842717294284940699822867831509959647839305879225956893434952652150833481808148096037839261619921373881430427751122691831963001496264855454548776189503652139435390514405558859239259365102868011291424175215638434288374864010228333104553723939523866175296576316842161618534704090756052521553938399524185707905988119319313790645539306932544659239928876828898072391395922250907664434696712031134424973613025622879365659965812662716768024553547295222943072689379830369164327433652562085822051344307470318804851338371935513415186148786722863944492945034855158604475693422173164381766604098783201029697116957556606668636927834187554047309627265324632680487330077231282721091965102927959048539873375734910251334940575089977644312709252026134676200737613208822135045438871485822621089257435355988010788732503489016060520855352496063462653536761993491077951600255573416660230816721468468832404614404494636672806092742912387711941170098110742452054998774512034550856779355848378801354744801559392134199337455727155992179690512640954010559971591291989819991649024042677738546307592666596877431704386381047694432198086542141849944739860536771857090508606724645307204789216315700355572679512175452755816967761501857109870768059370644646011512184809740175887332279164090713362081486115460458840448301826495279162065521285166006765306855543845382509494649923526802682316869459852765623872574546912398392849947687230191151396860489690195469714823606267771439763383051712636058855651334295656569709004551947183011431065375652329205450949290327379695523617308290541214243328448292023920480010292120588168918371458742834677039681026748519680972196812672359327174799924901946811328268137220707963398686209946367131108429090546028543978102994341635544938673629431428231874728097937699070302645337700212463227615969770771643316104094557876998845546594932169472260876138955263416765912544516118864687061764223598070028752431132054095069102033918107626307140905730037971382517529387578512922040124465630820756623873962035693717606293153431593123490022711428356479134004129328308880255651475577823576302608735799285675890714291891151325737472416411063844286689676045142441374959436482924500757868839715225940883951698465183870820561983712746850189599516216011048114316750231824115736512470182304583574164462149098072336289232933627516756220944713273513651513194627953177149586697416489512878341005818859215423614004981299955499222320459663268884097924404820351831346675402901518926708247110170924471506455548563141402359802243419578906345719628579281605567119141533659624281440650417388684501009208968631033449795248022357280520914871222252863062686930569690927106159069490425348808143487608262537139598282769139566457491547081610924692992791008382205190216684979568360580517961941957711532454336646381596175922609527583308325068970792608273234679065073092491072111872234057566828901362316380226852619050233564074166855149343046573913673086233270506308818631506980601776969408800416513402617511038683796246323882439543311388672588003598713058606186511774664429896669375378780579810508811476763654648570155696456745987747107893673844866553345273374728249082246540830395796958693394626275553125468468702210548585413560906311005388434046457872959961857502703890494433940178396292360122688553856702183689727413471586746584009174621305618656378750221004017755577409415186395497459200157672942255536182917266053857241521477859653446859368765430011459733093254951813531766285327352568190379205002639404268499322004735103368656599983728788866198320666227607575662517365767246197508705512279098632879182968740278792118675946794288693820078862981461753147812169771536209291197346880166387256127440100709433867369489690230332248364850618428023595618332248918093526932562116170501182634733715343027114030019225896079518102186273132458259341393464582883069598164629173003727758763111112116859193037527198580458221213608285791307464308483659997259392826624629071107838146645380441815748016743401281775265090852411890481312379040860686276587097472034010006776682315182344174159636555165688512980012427542301252733635212719522096068765811159899756672422177254506962073791331786434900651606510942250890932004472656161246711666629521254658190157152605162419524637782413711405640373423630162613328859669242441436543280545706919298426495437513499013376868830401458546465355867067058877491985382683146954949845256383539559366856493789711186830289046220306058214752652926751671535592076226638684982246173824043673553120268780533653273911146724694073281719653724596297130045080402454891703136307845517184374891414317578486107764174299312496952670651691660278936187656920383553750804847604206069830616654533316465632819923425364419586652167383041450549206055284957202678171444541919489288153136305760006472782604994831070503017596965010246152326120503164791451491904009456929681118036176971775345175421769235018664187960416374269136583072891287669040881656004369303620771215387158412449628955617529805989125884574665611923660897267276363221047172355627789108780495395875606552630620634985293790883546662518804185809647110037456277503590668333350941177613176935791887933875265313588981432878022929006302206920068404782169591139742981559403506614906430496614546936147058595226243578356772793299086323872885003222305878157774280512852153932440820831874169239038937272681653514756401395499872512994118003244144941538054000092144729425650622826021034422198467894912353474321313047772449887985284234394934889296584517602110170981122056299779457816885107126865484154784801090979027395285620625316833353330586587111763499161452541736396367156326398814208096055090843432427479625746734413454472505823010802355640294791984486530338084300247280875658025685146543764866759921941684739958158308996006535986998495991152450686704896681153903186033782115196169198821229696832933776665355401479392248947302489901997694382582886815538633505614819399652060248048968109336255985585692081899093336268569699438530681476777704378630543751986861640878080941726727924186328431761245014447494070076513735836698827382064773162570540711999224606911457488354603479085619174754762824230077384211477105291553676943062622204848006721019610825780286600099958731389873124516611676982334930061631079726068856786776202048238782609307117263040279924703162191173246626876512515683625912696573060669594910400194933578590859200511602467023549080654982978167672844777080641202897155271173349413136743181032438932676446092938546649912396985179612760577044810149791088643345188615819192081546694586513380504745108009919882690736799896243126261644762550017209869119833205638887793858790166561347186451170791401849783340251323690887322418855620865676228330280860505374609147057671325333962845486419107417615375590503229385092592532421106458336476908857343741587019456673590101980433419510197786698201272155025094430272025657364102638180319520674056626264407433665642519034152450263758541730381085066503672129947754245620550258808048806976809586681286732016417850826126767825275847715205347449440570198001029571220193170377713590697208667570757439891302363590668285144705021536541955656041504584873381810414736893347439532683582016903995308933443798787137557774179054650526719005218569865094470138063934051611213377981793305732379657364948471534485295365228943037263471709364448787634459228721633429012107690813673760143466685050954463303473836910911261966758502100455552572776048964520067026087460074493188322171394848589052686576239512822318015250600863865828455230420067445582165583656149760244211970722165050535968611213046941548829507779024402557916783273695073367593079390523734474346538201675879975083859848340690024781773143340085664195961207674037388237961783110921617271904380457314638645129480995189259225503482504389768848413336592430281506872915357108228555364214725208932475640390393541344939646852839078354376256509546567040283204622604323368162871790218967413084272824662025772905442947095301097867124410188517127139812373558722424918333865815762079303786821689360125264709925595399053836729158049725696085261853784990961941459875596444359492962680029341129982598388675150293706682977468880151441195225900125249073550117980188842019312134878467604733199491198519397854488297983205537544678787879418825980329814492816038630084166803218811076431776200811272633797856488680590406555664242182055940896826149007426672914928019237844244096295439613838155071335283641256363121610691360194819549087117857465631260321298448990236338393752698220462123607195337027723765168176529204027907931005179042035686337558608806129520966749774431541947298379535236570755302686990530550647078315388882697581481629817022310058579347357297636420613767364585073236300721949547388691100633891856226275776210809998525105356384642647920858726849485359260154949232611773764276447109347473311531593354843591504295609241575927155669001709785071716467836046973110631268217195556684020550686822990536298645665365891799046525497354807874935018737469617046317397128540186989797458840870934132092396350902459776363196635015209197165905136705017893055396641210313565096450663612351876378773745039141054367750139627095403587323857759712321831001340939185851533200275083222507357551029513033878469540980830737950496614524699992473717513047669816181162641197836323456997972553765943383480132510434340183332584926760278670277959266953318942160761699403564730757818655517100458095708102042419149671034345022570812792159423756392054554248174043050481424112501028377651802064468381639271112449632005196739267756710982787095672951567599619006166414431194606385449713685817917436423403888329128381678611300583543278581799842764034626485746358188299679747587917137942207380218658725652039671450325666455952113685988582185205335821041373725264410521131186888701540890728259994422891779442208601502602752777975144584031252259115868681021614141068090979002419385200700653116436755459593975440296700864442243800794244412991122614178870765275785448015794713302284340406312256233865441874126657094710748407483096673045309483890308890453479520551116694713366049766275563805369530401533899625263516147609939443978246408517932545215027750077755051385706492913591232709490111041843703749562477436048654395496745334166168570419111085841299961079282803977430237837580042187141793236927242477616390464798529286959338777737199827380665700070869261193598053654851583800673573694252704850584366137328711329486626889247745126459080218287641394437734859498364342998597604235810943587881040579012183091064869614335577740253889213094161257077294034475577704779924869559023386142782542037562541267766576440370103672308241499641917666185236351635977983886077738142455574271030222672839595677981317789607880428722214712020135081537147411671199556312229933036408823052871053045080864712470844070993233415063375660594573167007879650476544952880532812297621200273501525877734254477567632830251806234644129447179416156208581575062867292118045092964923990350986898137981856690081714319407664434937494396682917137209479199997451285401155955794344878419362399837929743079444476681969662368854927535417547916742719576647082323661671186032226444074098211985567024291260212870801624129956857126092985826739771803981971850551529882450313518423281591690756998198912575032850456824207068501272980457027354222300184532327895846659990627919958438038728462477613813303565180207941040097989029135784556656369244614157352431920903019071881235641339529325365171014060968410016761366565992501825424781614354884086727423188985750611343140607801485094295425974236432595621158612993972605780602308412677721932044326830724248001869237153000075062410255802258000726343763850092984180324732699522185727078692428924334640483357646169285826387789907324376231918621887338062748295423485877677211413258330791640550569728482336582259094685118045109683247278321655177615714322957749184574826237306333140953897082034691719261823265951925337599927458880729554059134098015990330901962246470807984608876427143095229161323917828934855733820311809466737687271822977951445517553317521873652566798771595085338437171315962872601288128670951764082206834825091838862689842039107709396021216502887559665152183525216041833159614733659582085273998078528391889661898470880043124438009736631997739544008444321024711771562779903222244199979155491664458516375151279636502834576642513943312650121799852059873377075214831519257212335149642136577793959144897021393234111202963961273374954373976971054998465030072769990924016231336008077670555535190804627692077950589355889464635283443800168429669681936501948850872040536006833411092733376260424024399976349067948131215572325388184806456611798966760514439625202909978059231351050107803608379769817107015303205129852374578107028033466816684917280791350575583351028125064551523121852506708233303384185680699445645926295773385552463420866420958438607743933063378286051908142855382818271858953903497638466182333759841928163771188314149184180200928361333654782034695342622841227147118885708562085665163671714510320487771746159975608992789304594626217896488466461937485564695694614988429146434796819049392427754117247321550047287567960004432568485969417164770147546011730678526419444651029970848117690878814247655231565352271936050106970462268189276813701284329829629584499034673790399141614812550496121766180756144285036422392873351920171567098541556993977433255308050996382038953381698677597266009969552462906145615173824912152437838841483126676855107227689619579212570971481848433141944654546998235833838949328334664219630864541579808691311384760031922187210941345001173501087033883075714866307926639700338154181321421656557425245438056673819190934884542072442127815423932585535453938188244325208498150061581208293887821566826574060193238876611350674583165264026808711439301750450078385443911676713613931411585901516252658985080599614977447353535611381920642516414436892981686729937457294441842324246998673263739008377551054547997046763294676243463594087383661178729024575643419691625416297681338092912466627809901739251119192303337697429952199689926847428942715574750665239025269874146313640089823564156110937727390058623767382425570064293911129408619586032205096432180993046446994249664668347829622914350754877840047151607574476011090283382603427490065120307337809606044526137599004593552063245005295165871005005497172060715057024169345648890834992347735789093130776389556150310082665196275107706204637315928744083717439131303972549541229497450725647436152264459665329465096811023667236730908912331481624626752972793085859945803234769990832758874837465840275445706052405301533307600215557821092050356029655188890179354408308001527810206685632058381412644010840257477989844760825309486501814434596126592324825857979216930391217961477033097116471234599891125281283424407137018551763738140991528002306271070490380706346752496703926815095421649591460369661886233240044378405308746888225459400274429804793964383010108425600222390532302987663732108127344559126727728959175056681462773132403269420373936346317379127931524790302133637919885082873248587836573292935967211052361823622927892164726856195061122028262539564373113699995463961903731196318265652024184335063296268871687054909690400237412613927473440460225877954894002284217155023718081980776091530280348452508747252635856391268439986194042953119625568731216460755407265470075605928918434230150042902063577075419098838971390215357659597044144006167491394910277957499138574636622719789627703804693571264867430488583541920380826036241768655433753196326495542309189016956848079325108907932544409079944319848914354448067924049373158238897078143877216159933296832289701977612069844398841036925105599678487669114509958574043964244688653012190479594313093586042398482652791555518123779408966513111498581959533845613016983828151308509284503312737005150810803759476854661339026615632480005446138700172040284544766342449448672114723568451003785828788145518012412804001880864252434062438184388874986050790470776568109465693938249249996531386876809699525363844312550366967431380819079920270205327681598710344025636363043272930690422031133135966064275756696807051549961886058396829324674394343417297226003804912992797733685068949256363665594428810437795695248202895565291934124673164971091575128483762085140307249775868115975880343638890088196642323409599455855584881177808975859119188622088116502477809587427488937342746577447395424507744783726527594961365891479099535798632236586998045005340640174973261999694145423937933734319077527994830033536997966464573283392478448241736732697653290983462211756180619717926740290456149730329738518395316755709102318207450664608000647562766948976596632871555808654022371109998044310490648841571778452924739324894127082592793734432225143857490558251838543227178469515011383315857132724421533921936767470768678759987123383633323680653896658098370138788663949961435985497979528195390640580853353892353002145944720312585897238477435024571808255109662649173559962707464969177333170276128289495562637553322894928381641712600126150496079744393616873147102063158892864001616197730644890288916103886831178353246106325587195825335574006157600099587635450668085535177722478798582175895856553245054647310488319111348774561424873399248989849731625288124644738731218691157522005125908932344793787257264790661431622588205639478366731325520535187210363962850867943010733570256386558317329725209114309105392806438406111546580880629734720412789740138558611229798611313379958908828559409243529306963809342371814579291215689134410816623476117037023646300701497041518266915108438369405870354802831489630023136363371836088741784400148420122814006940055581587192099514908507381017145763005182382372243915652919726547747986855480278126025049619962169236033886312847314710137307742607597217497693140931788848695260119242888252023407111438289552921219673101936965495583970239341383225199295809389621049127248832398637584733355338751960488092562989590755299576411002182468508875958232228499551320892172608938805347924195936662997496293038982347563227866136475118458765340398639650064465754385164351488669339257550759906612429827019152660718518274483109726132642194984421293784847583956868865338669888789698239204877338681460974063987912916941477753707230099421326494544899437272329027425282491393245663460440170667136582483624865347631667035402014071510306131016275134143635005307561071984377095078617122798642577157055433928454300800614622162560670018175254125837670021944763179322117303312246954753493217596773864947707323507159181662569610226623377047004090938252774160618953256023440739854121740283846461123857369550646037985576066225691015252270623100021053379801593338430126108729381858065118806653660911320125481771896197985439429149918602924653312335850965020926961180732616006465752398483351980680852673965448323603828295456687125844760336153851202161451401765539814872946660847683494647118277326507082068276783774261396591155571968568110568808417841033340891980847624807241383949175303851715571822600495935442918912109033224959420275416827479601491835273298784849535725517538415729366447474979620421059801359498982872898695324689185320154072829288705553919875745707150544660094804118463285799718182000971586837549299806678435894955207698110670301155891927398112922859171492654561215199670172168279866644671498816797863672529621103593477635240264164057755229985140616546173329203485754246515389435850013287252245772434029969677760970104204174421871389966197147044032929891003887619208737673451331256301873109794268257965786486782306698053715857764296219903019892644689284468197606578143394051438885996139925589641374769495582554184843122518083940344975095766205050767375436610744580521523857880492867245202557035924595350325627539198747603774705088572339976661388536955930706712558431666943401025667675292792773107134437806553910454647649146525855515232308951330149517151820153412764740270111508754182359297143936198548927127977350039082937239074702873324676890747594003643759907129360059710125169184233266255832711992029055223076253875177643795069833490372908870409874319411199990422527598709479082680935927005914039146505077237476388085727078513462586914649265422684242297889757132435362180142513629138467204572395383667904926541810173356833565854254453527265013262128018419947139326364209749651850989467802471419868870377641433916144473128158926365319440647741517246292036618048959466764111462965893146157298122098635750300856620198335597323842967965647724638591392000328065843620225517886216398112650843761661905882668292494280730084120515871793403820030376261896909827198111761474227742245294827823229985373416311924020062693214033417095592499844199822486956590712863981617119299504092621006438035435190773891589214380395517994428190388133886258184984927332913432495819396996574318920767568837318187373876701966743053058588802620719498730677784521254722302265943169691465872034118124013979912450148150851594787907503536692150358266576970130009530630183366105174372550383926968062207238429526546116802909489426086940725342051265635174818162019346067896097483364334352018025744152689705928399649374016090766469046159495247159479662646433091008786274385683831301545824279769810993058423939662392669928604654402606296099516685773079621233605541427674753854951229355508391199255072235294389198516955735076472728236315443989363420773071840810078519664338473097139935969792041400199038272265029820759836945239366244734123694049524983952804274780761289014696072355777243169801678333241466392873830360160393108523840236467777964449541800646911512827862595080387120539508007354779686836677488968597608523468306748500240702171255412901992608091451111574251057780570436344684415857883750304970693270869227445885391566076173749972877096671130995406792603549240338414379952488881761684086962678315410907602221627043712953089222651746224437360077374143023226481408743943175892712419641739787789353818982176606143713739245710776006934372742540013579481999787687020935799765982501544540628987301673187918737417971996481894035030083851050099417711173426360111558009599342353294554108683008343567381590942792728841677744709889249794738319609862144941993456555869901113158835354437197563405961366260699798818353866962661813842891231449978436026711383119466758247153460485616824997346379328329760158680123733722284780913114253435565496170174398726988400011296703557098326939403159963243474574212481000284254928335775317599169445090865519896590643689160771576697533828106569701997327228798201753905394141963869732506994157106333844714313456909206811990136716065751250314768742895314876427700153342731169708581948244911792767637400530333641047870943950859047477398626997517993234138293862047096915244836418770277226115112563041624718446382157302023835236970471475383978563414132699349640583488074385213558538974162627488191052761045665359279472704407703764792394525327500358518105838943874575619702745518401386910935088372027055465234860959255999062825358463205589224580284504108841336869698888773214247353805417438580628761990330864705752858934580893538972819727007932128519367097538283296010628139553677774924632140165339820943311431588577253842961364336924260386659471283611261849799170851263170228625519640924194067689017748232296878889933008529927972038625116212925902020616832376904049537171639686857761546146552070025279034468136609918146613942416635541452615125114761040554055652790682402271484237360276200445293881283416180223150658151404026932134444160939154905830480786595981805441623498259548398199949493392763397216212718295887733095785749999835165955321834075414233510049260850939203060224354896995833851596202601022134561678283798815247329679663142072340264295476177158863744481568028161587626394069404343649821265670634858062717504557984119880274820245540574140697405226276708667849373976445789477280897502855229465735274117496816874727095875445280321747621903395362974666371431813995466174401032770311635935635702252823359418850687695399691037333909536334976904849215419755080777437789057815716914907745865924142890872888928028881837069311656328891235388089570753335290120959981413985763525689247166720318812367097021547390077891735373583801267835706836702710632265549435535602330898081759769850873617540096860270559234600504688015535355859937913995509924877944162846218568523554387983552039386061883411516454959564585646808007670978597180327978049759701173417287744246957028357908766731155533074275124265464580236966502182771754846618423966705601779336219151105186184860686538392318084683254317111884273083069748054409017255684431656956137720334112128852275761870440226384864601461827995646039715745734363839377286272751433653225492933520324723644005252218103099765543646386840175724843753287421829075611383626769600379340373913338199306378717596808595305655834759931548443544131562831525302912806853509895416312242535466749026636194505111382542221501619316359440362865100590988740680136982419292167210896391159272782590671082413385924016473463888652876237246407010067942367341450680770383596953006310303162513910870887407828035127800223216450386065300634550168078657753116600665792793633662750984206787545375293300255617181498039931678385317956763911787396061514536151670950924139190537779050379379655151790753283457131080332458557013483859901610611528356678176044258986274239243799063157151603158504669816280782319113289441943656980610418205965095466852388686314821853297318964041125574114147544995193906505771630480066105067794105187841083732192192292502328857890276533834977150936825420687356549545184082449977039443464336757948331027405013736338821858423695422016801431517870988698248577204288253558741970582409641171703204041195983804702403150771609494761307425661973750058125895466009418980678381851580557554732072334074666392760824399338247213087208663568347127741915162994131255700815004969417898488633833450175592523009080846131264697090596267871062605733088683040851099211684576047729956876720076554800720437614513488779849579639690684575704508903834903408241558404235882041119539202955369502920949807481286635768147850430734641768086086727519411450787842956360030078577910803171623802315375639664876758698718770492713153225232423437708281931802495828138018234043423740008331878293086581372404600409966544362569217845093373235770385712999178474416345984902972296647125394313633426661573497612343827359961323232137569831201245037273055289303968859571463726881877577537732175223730919857785972613465055422514574202933793393101557272581287616285276308633160216395502175075837263299871701384685174977525039337534057593154867671966108708814518228073861087266792898171852208484357473055686088024032629028629217426041621299423186587640245143468895739623590401400212049522704546965244858333447860800858818182780904894343942768138261278415507811920242221187048185730248487903771087691655055072453289161139089307506500571003285953035324057722954240087054536999810761737259038268777506337346317574831293216903808429209664303174679900911095518458833529318438516012549348554773962960026090222750858242135523078509287316410866742508830312417452791108265860925059575474149955461617370161604784063119128342201110754348112292134061678446674330125523969400694437730086589758518766596066470697715772019234054424989693208467602131248889562666618383864699232426167647147951760656317069377175788087889052822090117139609747514297452122171534916935673020045290453867730360020212366539841833744216276745405935174063203994081203062479267245630118335799108532453480986633483236912353287228969114836929892699603822560816601900134350226190103688859761213200822354598182434254555827627718810246297556298773478472362825631336861421204217031023986389672197878342415493366847402191091810718091536402430281785060971619822503959810816960975477182349865146276258623005232030408023268087867767658404247552972916110920596780748154138565789999968930053783893176795727665218325562785365573584711035074170755408407585063266684500320942903107519306174553693533005675871121495707580702823046585556314332066013896888508247143750285100715254147712595655330368906321268864592416184286277407782048153705578950779880338203813758405327437611934065716738969789632332095381541594867021585106457163315283227958875487883760404653630463172142387752044334005593844587300123393484834004039494757148434152456208204882984945731575556315894774120407995283468923929638564666229473870643654487396919566138418832902819891446766454082336879166839179171116280194599105740182890622360216856452622524368284220728458523606408105202119008452578423020335645971059491025967302293430018536970890081979546377489647865893862096814899529147639469118016602654314502571361645178248999434469618830792524569605079526818065427903609931892196305530838257225164043754807448596100355272202849716306109140918318899506273628646469348198896179035981390830369711621814801558518611125936395748346834028145416935212373443746373215692395857560510416431177755409407499675616641755430253228078888044916529750352267042458375380932005649156260599984160509203142000685417397594945302704860067990450687189925965172281031984573123956605142889833896208374812675984328629547979049493105254930773544352852373553019589066685350037050904781713561037560038944339910698224796160550304489686205365889036315574532504605151990814851573849984458913697977612844277121585545963212232740869126451709864660959194988153860896357205188149482303252292157224937034343576087014877849303798802092002625897994167016478285456973759867631101906470530502893045371320101733265487686473724062817803531961855062666268299554733398576702533460298250624428182413627060315694075810895140951074880851566446720561696498433073936405658584803237573757172389014419098235121711123996057350539747932422708672395671414436425420726507033348586081482094036913135580398315465866845907269184114824370181468523398466638274199190801916793765124502309309640878038744896203199967727188570028266772549145188474415733748998700061849790027566641571509202186727536544184561840280255510345697889190922279001794705005610878021990934218366871241932477193437504042457086660183247416005331434871568341208983280081886518111629954877272512049863835847861475475934333514396099012791426078775283173212748730191897983466218735939618813613714865016092148667442308049310566723484718623524324744179263100921700852045864858738379782582902356844225055623510120939921867918336106702279242216226694903939989722945134070848728030341444793391777512970732626316567018381072328596101882422540703930428011485390787663199570533269536948030682955663559356258817761750315250003458200267347748604349831264682963434208664753015168074310742192730612460298431805462226638346733842284243937121089372708339183593078140287822991515688855940833574624651239273601653378390104845755880543087594048667913632310986577158921105424385104041460835626595230067734793456857493272406154432619466627932656017896295852194450740699430311411498212492167952912078023474758797549135600496681032296876508597366975779730901577253878565060170125057780619254705563721796264318149879008408993778480630409065241018244324226346812811778833727352466247971176017036089422379792115941933037625938920849181658397940812387466151516574006985932852635197600169802284032150951945507626829336131775938593935424306934670074896638954604499913755081887233405988468416823127390458888611868890011194041672966074662647224802057265151746705441051428363702674976896202825623971416576418222857522494660637839800583303745504043289987315940505080285490579470982840909950457353538396033705462530631949054059880432376541110379449579508444364593972405576300105328959697562613896115800411792644427096619477360907952958735431169149391124877519821176925332691793226880741149602794930037881082412210532617319797679714278726583798916655934666779372761686211686489744069680685781141168290808332832248459491742098899993492325860546487711444492119532979299199757343446103639985694171238240216501387789210584367935564420316484242793328143697935109008299628574284305301476697494111353463073704856536797678134416849645867611319068468864243851694758288457080883459647277065205429003832793746508393360075673598298106319630709458987653229825368712346405222775843158007019260044189510322642527853603151868173899281460637347873806517462296974892858464585345703110642724545871013225401867122048594371619082111493895376168041841508608621115400008406147241048205796822921315866830889239111693487602918229954032792413300156827988028267658305039092191571588727045379898621958933090508666272018166134084173851241115916407347197098764174419761046068938351648334302306726076617310555179501652274598706966269974809337311209064832012142548822965314415279337074830690966853959933930726602839541789506542513458928313483362637923190884885388847327775416107586992341777616119405427747627809237280866473838198894806260168720431951763130978291659712509737232394265297508993187666976686627424328528995855157461828541200722465790897499393629001816532800924419400316779576562268865305832252866753004300023414679196740588471516868829158755173949623108613979471654563052478748432092171867139571248765860664478710462773438435205304404410046715152625637350847671860115571382634091734831904538461620517073408973337153520344024947850670167162419709722426262216823076004789182508137536446889358381355449416744321213092194922017006657292055336926964158265660122800264981283797913521953821343707800177662823092107042155320362161993122833288318936453362019133297786243885175112169770378958540909085631244634781534654952003785534033583595812219124703614278729127786907059008234854538454673064643551426945808755539656933236987388217906027124013332711571407980001685185957662847027854592613274589746704856763392852765401990729453562870472596989271112904233687033833118307689498079617113286562869235874885805346970300990968649417857249923098907781357304134053725920018030475477130643270636543950822261693197297124513889835803438322257553556559661836659065412367767825954091662492718465957859583391153900158012417438418884953217469698620452503360776537187352783692004867407040577749674164287659597540551915709602547765633863757878343296353181607141648511534873488697520798232046707641242135500135228152941374390743126763362028080250109456939345155158345390671242875452515492162295300972676217563636937705376433523423869368800100178903502678161532519582019299975615200149878646986001700658549709223809112415397993168307964279973190217725692397185904140528018600245653603798404263947154751241605413977543739588133155346718773351453048670714783825699898934528398886044764099233194562171397382338223091730120276359661077289721581331352382932366614738858333421994991586222710342061954771248698141561314407931723628119552380392222139441227542030523656739652184926848666793379538731265917915328949487678004631085226629945565560676399478748133855580444730186053539258883790279103365624641675378361190994102075819318747257349995248300332901915363340628037203094360947241478450205041697674464020008108874514682115459832849823574537795741033449352454842190918168849084982046111592271345245390377637955465144339541958652229608934011016419615914253082702952740932928111341436064369906978623101652364749157003786889456486672486322557166846383612768726097875536848036873614832554397888231589727901969516317106546910673991331875486199304041840491699560011092178410259671448241570560313965330694737662639860443363744588610284921519059299380711119389254708259844706276424605584767770774682602751584293974657764845739618106613957611398762344114444114768756435251375044791215527484578384105906470717911240211615555168720627023084349498068254071999042322498925002189430526562964410690915252123502205521438690262930680040631124662258438092918575886673816811859712302993228423736101943245813706671528606532160490767358331114702297944176769615181570032032591118340372567038120108353260811415977259128899998976286858766735978756384754718031322244935656727904944543056917498677543314513212929278589717969592895405124093738154982086587442926661752705450591121837979812799613175300911926059202309022627884067070737175430988069778852735862696203861188993429542910892125142359554954274940392582281025722278261826160460258691385527339814225153368387577702271106615737102789029458468788843955149232026345147336746109793254928831770734872223278620154881001143985079275485753066800067168183734307516848995132066542186658603675491693786892587619228201222912522323718402127155605977499675274570555619978387078040582993275436695757527580675075822249092664781015859399942756080168782059604698588243957547816810780674000283488003278146282913474802679705670267325868092154022703710393983314590119917999423294954711743365320352864225922690384831631729122213724531581126729934908054055301849135362866751990120015059455014565872389111126787306382580517960006394915456008744537656401007037915834005480811496188959593394452127308088087213496343018037858702480166440765820581203684147398105157725194775104876213728048000066044880062728454303074377484737404968756997609379669326341278053863202972435573188383291633863602143511121071815161283051326613217215644220613365455997220946531446076840447444847216282938463943744258457138421980074223214417782318820329069166196775150396343184240468084760377994093727845386951343196260316529654860413836649353162052621326674282593159905667108904067511040561948242516977763441101452467388653983526141857368472771019726902930273228245029745654828615578310382919954111257009855568663686708069143624019383390425276471639046460475278881852545381704188818817409619305467970873014228574496608719232194762375942075227887202135665380858935047968261938072790173743108211643491330427831114424249752948483126732673162438259740659085202255725648939012682472141057954805623541757984330404276798737216783127688015453757901699443314559062406721880029310863598992850915757178982887690339080073228769983572936310270158401508631280647206822146494984694937086026803885929290912607835439400950874543037252160523043211848387003910410604420124108587735372835223559153255060843604523854104920081948094800865339638327177910952126728437838526782697067674367319947854611907640169100859279303167059072399144542820432664421350854478988181485933851483038819134955586886965004367782942597217971004973357762471990400134761743092895237518928779443521801233314972725605706067066363718735935311275961350981656412045835474046129414237142691442786953097129618260459268634499866753001443621059226456862795433296408319460381912820882301639062918627353597012503795111792976629661906152256327441430176161499220844258546020278340715071818147174643939943670993148947223739193184911267160052838382237155543932559700686915153501142585763482463238265098420080551285754581485735974864342950870428536793562749324380246975989551368206168948725103662465598351841308669559319503190996699369687567729891957694226323056853879560252617083052625289895077376092076076973811939903699788999274322670168936263055713091755672948077125772081771889237349930788070370278948333011194381550392551610947275278247285539694726816414766310495491280142000054566761550715535613080158731098349135557341648949155001939509619357419991182438517683820289671921808125942676003896650682092601615326181872616531628046155868920021347836042557054368590288651599907910648754508874885146326641203907150894390760831823096917787125437917642050973974489397052932443690984471225854478747070424438710209939190693590056450148332357314530876572572589335878748340932780254051862952363797357492806086792433222296834555821689152055390232712203957896540306713177366988064567357074926699387860377681970999795933837901591271358028363336657211830435864478916618680837643437943350564043522230111209128732026078900945493166893219410996342266621299871590782467201884681908574034591452612317978353234725980698925638631955560782350299373509048072072846914125674603086658105079076940237097252656020757743487413390851351130309036344309181466613808661670385270664808891021034031347786584158243095442823245496493588124056638663173016807280284818218292843792246487252662896094939520208194834100592250474155660733100871639933217953843783206953271808975246770050940255199671007412832660421380014895347307397790090253009058558825146850595346901088038500264738272829382672734418361089818145973348822680036223607616091276566759097866612805564579962931310953635787843262246138013218420814667258492704294702046863231722943744727876666249105623994587164636103380700462834742341030951569699080556637886183470258459332326333634356029952320579124630590892953401395692875906186092432010041129395002689163251317006763985742170763480594441332574467740819970138868927866800724002307397491541640760507186840881773385914980161878237506530502374521194421693680164543761634795008432758716186140484093396892427061425818659890728944976967950501968499399615648052413858356595636991038708337212749371157632392216343532295357740896599824169016190287520658127261402890615354150699593158379830765666304896330712983105257445723961230114595277517130317997257606750707569641135099811000663060362782011626235556609463274968906416120447979055802146649361118421895289883859556212275426352373590083497701462688455249164714548835562922974774583727526487874839106240364350166358827437378746910633351304386616031063269283161504885377193202671029465319778774748375118883394876589094380532779946746826308029775174843681242976866207292071237618675609115422237202157576920347906067980644660844462403514635999488538761937356229977645832433577875695771863161604318909612986859410185093003373792214612367828252911595655711038013064028154982716125005732688139699363481427193463060647014485535118886262783641689849269959550562064061383652385660166800511799536750980397901205469392299655555022103748725744640758702100465577789034076366533044108473224059994899136532743851076827540474648265216231614952611909133818006600421953743653670190585143002128025024152262668297646220317989259751166035232658633403644243646766892860288293868278403234682812263087374423912129293605971024037698225499581476849644486989739447352894946580498379206087926707019911567703717089215955775802921989653102373214766992942234899836974023447384276898879028335887461952294050424433806136335233185519319843371406613454762530033173672092757453121383078761705728178076385167067411622644141374695964842181957005389128297524337318753639062553752359311771775503170000886089345368789030198568598674778528630765099570400068730032248512153314181210589113722446741477922493231404634025614416509495958028300217708042485687192454940448974676391458389920878744659142821540693694405360919301401136078489968740462358023122358907345167978809595775878655675836009235020066987310597783735031299748635932304734017578181081481768657876505516166771752131319744588314580730563147350435389949114435470807204765662073679722813365280454662324388165700691474314782601341346718124862247553408846145618814700300538000628119536228622623203431099423751762440152157192300498645710626774409175300509018106386192326767105491198681104619031333981920703239220692793236175188777597861445062034259509012068873562864919167788314115839798936543363802086067852854054928428698918091400966026211403868018046931078546575854585296430181595147540433308925467745247603082218902681388948265273012982139922529604242849258982447004300537511036958916268691602725698324112923045375749600647537687946233026485523087002082985233210096209617642181740402026313811527580551395476932756097237147233761092382104875587237749669236659623385747147264066506372032539362940953046578594127064357605313619206082871866094596950812464669803342641644549269476779671951479207725288336539722895391523597942273525017000878675934234126993801376024451198569212430064578718432521316154208616775655689780464783492464834026624270771382573524734834249742728700408443937521683691534211236918152943244555092973518684744269542524079618047370895708596207040548512956823709519147130977491243237557182885787328097259661979640732710488815795309374283059219175095521514024818220261096481522423710192042060509080910921013009173357789775096688696957343519393621680403456150035543773153779944503538301024817864497963623559924495126840816073445392552833473869249084051169731466425069477667710482331760608608392651137118356060027835165129091287257077090819093089172360589402543649938882896848317817797150567855655484578991560328438176213721194313918966850024732003563236147785945053893414117577883373830624184841455495680646926698920119983120816540241115208657755389606211657582661982944343296209083379137075124485234333838785550378386037158824141783398525291826624997503594990640651707045793569394006839687140906319586970826118110530758587298338432721875625198056590415892919997420046038410088787167345443779738327794438939903348415466156075095774193554584951982546570339630376121477964609885938651633354159217346972354246258166263923238256582656373618763794021393698576393981966619436922011777683647767361769370867832696323145727919203010110155304444561796672750776519156028580832383325763950536139163883522206580430399734539584465387523304478976772770175220944265458275047282611507445558025377028098880401608268495863376275564859734178729166428398705526626144606617617847308334127584511158168708028306973614652447320061081152738187700471101000685461671844233433402097120580380321058245048192744224788982191513189536038502607832407115402751714694043739020518179958466717135229961205243691199103061211062846829232978752879944272558509594887653743451762488121933248528389157103131396793830969528769303049850677084390988366096038800917758675055848329225023583350077683677451956173788377200850190527916167099497672795188987285216614369668835329352051080413273706197055393901822113123450295083671700724648395201416483202926407983775853871127088354494658000724493819688538435497179059458449494467154820112139026437768721499262962705576402259278123377654036533850489239303795109014969520766976736921072834182380254885751824247607843271204296118962293350410756637275178774616303421180129104266766838504207154683375970243243303611378819125746832312104758565939094687200040878850553796205012874333978266524996344226509236341040937586953012822180590939547139066472450379586314401684202261718599972145515160056436558086338245700105985388646663439280331125169349362623083189318683363920451906027056129416992472677956298602420583738691186880071907271504216260063760991922249908701005466600133408575632219856090223700815906495019832242955646704744386852461923249796981267372251270217453646138011217070267494506133163693250339575637901110441534272532846056726200113688536604821608253095323363445348243845102660711265770909979010281946709900359556297419552773721126160615382702562944483604949560999065790216518890501492010283468897192225450763623891067428356692434469274213580942401900028343017679302370013353220498544587963575429180003499734089852863665154219666693161641134769827047302346919250063965851032378055501010440856729120796832292727280177572819163215865923457795064529649372527244846079985536937583525148069406170273889180131662198595946344995867164226705744077456279932087450583283311774832705164277223717027781188598429068784330876966135682286593852556606446148965882722342536044336681774558132463364972795559656906525461814090566597223784880948841170111909253074157647473222305933583510667947164076729518917634438713109525470471962449756829177005903517826121082746591742486832445177393977100147495520496411765834734810371686448680967044056894199641070289978630529803233008431320099216807660866194223298262264005224796162762596368911012415207517046719071721948791494360074137394551008960023153409719172796833325785539634719399317425509727776132006109262344165719073987319805293963631682157645544869167014233797846353854048668034326445822720009609597018968434151683934950771773461388509268403482224975826711326388666669943043000589762542667519055741772887541547305615930852453282204330903213051316669678593687456321355991293338763316984273361971395283194938429875604620608604324452708603778913920078673424079356941579854418715930786751967076998443741662475958071561902648024778737011289934887581830405255421836332720046768079629155862150956410519052316340011133710444597958008354084971409177490900167876952829965325861795743097252528576063261798552108151644188617330370936004235515166184291534317542887848058920285534160155736385171877202089162657327218451324125701294042265449822099353976851930924273342944078881137998684014567230296223745667836569702647178264357583299886494401848081531744648176860549172441802186447356391640589880409098058424021585459281956839398241031143474166667361364806701784878474341609396959771494406370541562834806948901473083140617508401822857950492665325590769439505900116961533074127198734795557225267393930381650313919350330609812597652749173040825404367857294181044006136343316235649419533309661426297203574485425049167405312771248252142989846135666112344092777627572463301079660976019301403247399657695215077636144497257736531271084965837260667465239878062847156955943368871178798069202707554192263688648555004612924378910193077363495930630884019302429428324711420544049949772634282724610642640302013721920102368031471609415558993651752531917674124637773083144360442859064065427036539675592287233930272983402080622581743520616170323978397085662468871507601577777922080492378326366052415675806060649416983555783037777466964203080850462990168946990416941191479529042020516362145547517313420006956030153413972006249552481698502477538124963489215962384198845041191400998423419108037105478941940700247560667467689486871061923008804468267503170367684440394791002728880500823179465635962291286624524066109692373166312646734638033309360400105233874336761204271993902665571442780950018198390142800864058746711493804650770746035644756477115546695082579936285829255831040212193137062026736048795887855733344100416084757728201469805697050383639867456213628559648456076417235768047412614150772462070317296785147865645242043634552848260777809630287959987165284095878959193258565477846205335190404780583369231449079972160996438829045394461875337814768958533420390310320037241864265571993647991016882650393641890821358534050074700886301728501296204760192138378644659763200252952487839119684191489377613180543369211027106568865874174155983186212380911691842022018812565992954533690768522624480060473946651372439700059114801202192131665106732958325461602919380915785823990603549219044896909555263660108976493556912414321700119531507101605875944000838856261375833027882357875966008267160860007383568186820929210539895105609749349932396803939681399440833703339267002669469660126977277205421587865998460290646436507534641926861497690134403747449545986744000211455347575849238546878967991883268785510940198053160706021457983990728721277525222424065182976881049659901203777984211038888441783661094595668620486844519134125798505954623813631440271703356347249847125369464626835912966931983625407478854289577926365143862947567665722968999310771717534705616735933538246966143311372060041630317374003055111315148396441561739995829075984909617016707565902082998383787702698484224510466346340625400957583883165701698125600415865716688000230349921122518968023856669976959029459973073447906948935388313772962634755751572000282997103524648145639333626714662519886735608215032993389471096571468484548305475348582981987082262351046465867287197004963069434015242327087739778142038846782190716320381816153988775244079532438370348557076068500581849037487520382683867148175301801302097820329905923576335839222571173253844799002748868546105383272567566364170078931785935994920530186336693681650563648531987427989756066803195598449370028056432489230879681523194085704108961669481777390759520287701243794803424385306532358351678694247753821917408449995360114799563716732024867119074238718507738641347356768048475560252898504917694915412781089462098746103528050193804055497836305125327335277674619776012972276923993493645522536085904432227069206197586276043227489329771256741405628801955198531311447418092297024394520437537204204151585940503488138859670077316290455323896812298117475661773040437790898643817011511802376066670325673399119952190092570015893845748985043273187052327944099688016021031421939522321354295050946116457871287461429355354487038008027950728143840571721473493602782640393987028652381554858733611777716616801273242706892698366996739823202109082592621946745920594783896086977721111013940443661050467333922090799602988731870615125373224866412378755554260145268767716976295747359712492169721806286264768499370354275583958333538654894712009891964093446338737343567730058865958998413459717717049303930529113559171557459547110160849858336179691222594200274008678184840379870913510699713580228487324237888440594865656588712868046499454560406386847318659744970862356743220336021658096572973593768424721534661860068394636465228339802040217490963446637824240875989431588082170390714928658878826002858401290952867490260300781074419595195521700937637225986417706614095331543291060038046963412703529015435823213653099514680186485550450071000066585566461439559101897937617738496277246107274487005818633500475636521504885353433696007441412176881179738041997996253537355789356539856809356219560922695157592577132790165632185032520331188707516140358114535249295586531373041784244796982495052021108947170440321932749582050202764146989873542104142627193382648942808077952803068828303088443940246929614327173062381214933744703435581389341502461512926383800882272257992824289737121286217265606459868109610666481636376649373579551978121181014017254970898231294050796089024809408511530387476876616090150836794059402475747998550319206216460763527945154798424261674446681671160854119599944091031168338730327920802208450444810986328058957026011745508473581052929217931491893655317461719578278788082413696669803675425176473633070652286198765990798240901364720798293346711326934005113828065101601775431888002880873936727068229867846761842140249148488885575012846147637294161308354359912440414984848229558947877109826004440660519353775110220427875827360192092204705247551129457255192740141465974477214724121440444232481612669101286219227697959035600080392414001897703044488232734071997182056722983270742256183455789200891498111628826818682085087364472364537351386646540112353912363044292031392866514998630388867926802270850790868675393924171360614783706700060636483514912058377069615207569752993326019894482163321584897350934477921722098140184592617544130872504595050712012124245761884469999902045975895026941103890106292991433186574395484048503085534443231481161226889751816157454205148276343403169478829876617427882847610694171535859236250157384590553969569857994317697423699833259359223909213958576938179060163503376862938937383119064748583466733048317797164622052995221235165052661933719095924643657172924791060791026882743949345119636145538952147790517718296966621027726619902308429394771145592574392148869209718936999929544213388192156030053432298846972082635052248131190502247091978526451311467045427626015104001002953301239129798264686976501515739065168420619558412334075130067413675533545086375480958182570603399852416429299227613787907628044851905116005301929874847136913225168116486661126541076211787433177874985686855884884317813668577663331264937890963976605053326678920387313034114526094170295267898137489764191114065582723612377175420580827404164903692647291676525186707176847668436779431735601053875201501628487810938739876086685372489683222285547195965866002811021143938608183970311993881119273612371509019740079993838975740366568262284138834302150819190441798070350114653970421793996180878628620161974944366711403866886082662716835056131268231197962634780837182408892963401096197583537051533104103382103399411767703874350074882211320921439520531648367893270450496058182758550143283237416833222382779008002928716197809628482897651916251293083844932643796755946502879322186139027977614242787920189448538654201677320670784974980249849285320909648829477587420560806022807433494472802051368827279599621623327317484969729248944723818966733900107864317362993031360255120324881349405332397624770393899325260762553700091494285423233218538753869542592446067874490443985254451780088288143753990858502319188509079541322527061971779004703220121672838986389428967042542660173700436308552557581636686087117387437996675316668826000293314926263060228224319911789894073565068540416664679263902343818945584775013090991127944427968940164419974526642227950770932504253997972019183916632255915019452112800503072468177428138960235835002750311530337910379445101485526099433879337863522035740066985350648424663057108419695669736407827886575265574527068982058790820076741557407774344163741631387128461597808876369838176357217016946039151882970996259802339192043786922659220462620420760564700179809692338723465516790742123444470017977578325558530009150271569314083596829166070034948399881848222777968692143061958840539850919928751663473338175181476078320935122028403318227867926038829397863937080582906411349074960083456048171886670335832207635731773688576966261871975517760800920121734267943940473703643276865974418986644892459573827792290939619921497507222208551820419126660969036536788732331563656389935500024121870914119376009581176633723054370478062099673325856520211255586688891043546385154092534649720067947645610343783539453626787547086928368664427271707849617000781531790023594458248308196013859969396237559222113030473106212448279303732974105942407350458989014726063004581795994785349303206210700234854345379925023142460760584416134491683591106326000404186920544974011827869833976896556177342172442936158082267910635631213335648447306587506615033310896717838071542422042704371361478064042948258306770374759416082422357353559916205091376803511197833848008951753619581052070189895820085199522877186639501716599271074694313064420348816702920498933566767748780149661668175616571694203027009007080343968889032085758417843316171390596846637468141624720644706200978064804791894706732514686194956832095698052592832189239378843958973540903882596298572635463102435435695592076668413044993367586811366456947467620982757167021520277640329206531527203906221917278112139029966337854041792055536344199942838499207247941396462931594675950410686680062967870049181575389593982072903969946585443870694722714047227990960710953139739905821137072194341584128464325789728337490550260998805723967921720135031967483027171592122128633329175009009715828991214955540805735243721529629662923163466531360259082603174778499403106263004521302731865659832346499114149732087778515242251110627633571756418688238564656560485158095087969339111479758393140583843596615053692284299630130532046428365181306382811922810810539899536341149974577145417497501169440364372189991861532657627831796642767521216347434317126783376475244789455505601765226614888980046770804145128383560392214222462270479855716431468760364690719181237955362867305275135350459840436097184966858200060193773613036351080980703710423688340988573801587282056103015629986779351205404851086785274107209486405790347180148825679270763277639435454877966948327226059375563546158146293607189352206187498206505910255999666801836595740402296090559584393455303977153341138911241784328954573199475336605638764556858045287081245501527024080607898366784863706616438527167863171554521407864123601860550472233140657135842931883767855770692851410714654307855813657986504719335565651306961180614620347976774916695827194663420067034045340812441169578656088765748631085560987919943160367114065992498534041895807626422309248121358753416819416062305796309776874497980474524631002050971674656187008238441429877048625521196411504063625615028984243736472916434737846111583821142169711259707614510596352062012997062046715404186751814222308419140533383190881823057351598367415102564294365918147474463415583724850872807485145384810314500355192556647006248684279848006960951550581909347327415229903606877542497818156169975818350298429028492703887240456563339693684503650014549349963320053559754041479942352802526746640026947645858688809448063857693040066219847753399723251271074438012346647046683663070369680771706078061078815491387013268467557340008108835277022629904155517017577256156659640755773727163307304225211565442538352841301198251911476067113563503470981507257287043692248925600539441236995382037247864333019513587791962848621390694731158554615904943250925639303127946430021209077382170193028000717611172625959918111601393166011289030941182817926612052212606896687740180852262121543270317596870464923014023036183214753278032500221783691769368926013223175687870099945182810368519313554735600487667659872044867416347253636902978790331509781606708716033516885383920281789980169101296242220010774322772529638763195131997959137523153989323250298114787043946671474434862345306044452307419145075281433587791749661053816238454810804602278735489994457145664921940583648638552142508228500144051988468396036103576097267544961766944979541544861185360211923796049543593163846977554373535245423840210092554642862115566250191002918053097976047326600292397525001017058503765690421333829268491884803892755070685987773096804818884286444107170190838726715740153670583704996452481140926227660297643662304641940316955562923947086055309737024697181092357885105390957416993866347279692678305410883690400197087443858567745089269970745242695358915749669780811570388642909634557155937028703990750747141916726433498805607587765625789664843615853368583853878822634699379489584168692407874391737654725223887453539208357197762451032301787911203402630859606092139589676082929181173457776896195879578945040414399145935342309872338773657252772520046488938218666668181810737516030666465843589062798292345746603127200032702336823593745303090639472089593565509911212598040183500499165645527896782269465664116219174333459154105439057025446617399640452650944547227164434404883257221261891847590940555159182717243575314536736262566003366826354035196651747949628314852385397332094126104872025469970955077745683812329079874283348412352152675246079813255461751651744774491703924788985149913168993125564662226082382567515258349552547802160784189870836327525498469846506391853439254159308818658182265205875965743478739116564980521672483085682597102989178078415293634849659136389169684143444811254234861883690800096945475456258425388188697819769235635065065010524955358314702049057320415184336381030803221932289516474180867737905028071877207714077558958088194722579873896595288748995673054581840459445227792518876133883950891362548884056211523042659614509070008843971057400250140917158054989066817835823969230831164870576566612246698259959063885969596027701837712132757411763587353017349777484148464843591205819145641434246025104121900107796329947594932057413502245378270661540396359924333152129951241290273822256430752304758070238398838034379176116754577390674932939473857193212956257760647286497130245092873329861641800475232396471420156040481522366256133720494244450141662001227497948773134215917020355744866768857356602580876617328347438217701776789688825610201448355283390931643517481863541846691656861456801135946706551805950406527796307852926272167431533509405257185251340269820034162834647107778535313176566593742998832805113925982939400344307444000401233996892306512837081318953937056208988691309612714729194278465153601084913212853271927141174687187287173370902759349873303489701140952512583185743610922998547048483230320978996313851631838291192840762393532807547416804557532009537385390021234458376485665664672306807186954596501313409115366101687488224633921314103867607123742980414968905120181608151645740332046068438594858855621563429370869594741535442490436398283234469729686104070453428759347851457147755931133266538510431011628610565396562585258337448797439874993759089048593312940868589702722379959909686234624665794680785813389378338619410993160792109207191666791300950019664629235775026108882643428645589885280581886243887649076106994409111215034794707541555009906729928219825348013349601317979969510350398290665495655932160111026471931203096685040051133710020083793466568050490516002523667701427740284589160575030140194345199793062203045060715752562443628418405242908552454350223939442824607291230906970192441660989234746506168040959837608439462247444197244191845233734139842969205630285945502989268385631731033537297872161363653471889181839365278024685055343738932755822341952990912486006171600037705631652334886407027956652142668390159277158494076560125591554529631414506750123296936296199173083340881404325180227233301654922207467534934578901680166435219245550727117251023326415024966978537963630482164319703691019920962560021208889582379104312408936382888242313982191546995181664360414291967638146597086349900959768649815737608001619869170814424057339301053493891866977703235955529546001027527123429215947338381286528182265090842159795624024376390164904983811277334665629284875950388685586256282391213682404912858815157228453950065554749973918285877752154188896508654165454369447879405921552551309524562516430155878080803085961241651888031706050872527038455276272495481979915793198857249069630914654777337594274425622423233976124761732698311652374537374941821009768782907899376451971318846071109632032245544824937278581928329194617723842632673075919525057807988962941848839710583884517621321907621967126552434155687821308229654150471381685436505394448295699920693094347657400883502708514590307331775266575395798517918844956281898058699744221758662972068048334440873683338806981328992270107321635854569531305081239948259860626571943855221043308890034713254691932410301999137592943387344667794652781021644488561112615266423452018545150725400436218166323015540119899423008511550749309211364501115865121677254823392227018739866878481606761600876118627931194755726121815076555732578093928150524932397509714316069660876347229940007909618425666458263783253395130395265506975687138482165239964356391796260892899181844185395428417296541193765207662827086811987973124589218222406481422900796649138410059871567927546754405430281627653355068234199533844160032156607854919653260360202787227803559016219478252233198853812831846050850276779728905048872580857206685674144286926061070316912557219757166681269302668450804169308492612746909271457038489999636513693400592031508091889758262429623868933360951130566487412186724169185095852949064270697119064139116300072619089530495019101958192660290493667581640783281206579343039009320227586290669727217179873568192402324326872048552451192368755273533851420634680082752169234300374632283030045289545779740749985301751481844288027949155108184467185605826181463080572753580880692286557918830294339584331515288391835868957074110917930660005314943699889397021886352358802612375762351723466686066374668296332999755413451200327711158072864838606677377071075460592535599154036228703722479817945403458673354314173468675595179938332842815059976117946510050713562132972455139309912614888567375757662185905149737249511744202589727707070532392362315628843838020287815498669305234955403862091152994993685579628904337069482078932183518688127575309576086148992551962963995055751848119794776691957258771526459057645233303173465727683901691289400656817224771061583097037964535969429109809036306824908971291695631124119061539225996725558903063508717745616545174895453559749186815978366888930584021533885035031123009699592561645028021659632518738560796481212008514298664038394156800497713355354255974134754674088186996001726710552132193312787282121929039282885666214969690561605302929532874914621324711357919234652811423856598504548888916636913491721888222849880850685972261605641056703977153785998389110271541250369561808342135834848560932704586034673427854698822203318674522020036489960196349499178411861617402207722207428177307613204747634086093665775152608581743646455627917885947372211774675967527286838412946436661505558615504712556308903305700552370088012723370794427867419861230819639438846375106538476915991432377908188595889681370988159428227447422087863600257859859979233964870673222840500856247626953328468641343685870735618401599855183951866055596868500356162860459003019417133058261030818795726974626580799182303671520692936257806700448251637942982339003771451630103537822303761961837181224666051067139743907952043563230281724910074985274949675983564192331790413029539691289894744343304316032326104060410410392655896322202556547406951733279812007734231997909534774666110552590305412274747893793529492943327722111135559932431065070568061079457381354756735107260471859515642591294975391953441347644179892873725178990260178722796634449439227501993587387582296968113066098557409868937778457445859747339314122530113652286353048351913661440522100165755693026271059004678604054576257115895384916949758892460682390107891386830593217094282915214169921398199034022028720648602449643396872735776205292468488806089892370748067448124718356223615755727169835527273544450625177405938349277811735907327731460804479968962043439351096554965932968459594587981405159082851345426119446876302082394351636610914000960768047008876847484799558794085528608077270481325548668892720164704130664164274181842072715411352912253690305957336724569064902503541764763263355523744499528151027667823408667602818743876581872318229104033055636645901394611671907664414882297800443352396870766417946922989799041235707054200486206969514493054045909747491821188144860460562432184308138549389574355872575270225971688088588219044068713085170445226404669627419610625288907424669796839373241099480441538852252883662968596231484666659333040275645258977205868214539621338332016277271650333017893820245278629303253569644542160076130059901018068500430109657763105281850916091239621585778978386052072010483190399737560115924901867931047812329267650771520471040907763160474543356935288068798103221524091663286163400614315624851936316689653133055510193235381919800132459154656065430684002724129178947069189543576928549722548271741539496678897472004172330632008012209454339851712488691063647587935044168777268818645176248398441604375684837823152165721389272107239663799789933714712212988538929261082548044369511422229153344588100072817882529890160318067605987992734501903138531370792949982835454362574355801623507466932925526672003092459472246034144102726434329437394892994199458772701897484894205784434235232767514023278263090172543142189762767638206770759776314835012751798331818500257475310285205399404225120676270175389044269045433447107881860691232837462771370165591412355970952196477043409689376675525056599750070263159525996774491401212934228367963085211499947803533920635303589421617643416095656367050382903880384690166357604186236795228948655152778282403235527419253997929312626360594630804772374099265370724169698580172784880105148094623211606404000524452158588330339819270966808175817035466571875596531307851478098969559771481572897209372191284470090652186346541548466766378007642169997930085561532434489729323443115919741088576034848471230167148877755420205274588252921891409331496577569672260394899304408993399483451015746827144704646394938109756260794705805684125673613997413990334650183635002091670891618853328507983639706540554109428214944562395757558314554034085152989195713247060765695732496419454978776258095005911519153850624630301524695240342290592654453239719297605467982703354131555008282687092565376472374311773865223618399865635024807658063482701376472240231325250404709329305716563634303872710050160431785082412672751741652048314053299150909968660237724377259906683651725061302593919922147515931260287616496725760315992689376712711530187645833088612034336555121870231552878893633350912872828290331858224047860532452902775248554471159479975744030562505000108782154503481016096652073952212323607405168461122155475366399795323493746818121681537652838019538996599343724640232360562930676245857552572954419212752269391861639765712355169003261405297881961022615210632995750119135146571429797758687825060252921953161668891403863225874329974924334564463813927235218436101974199607713683502818778541096277191365338780380320037207623585330920774571180014582026448067383215178595000903767006754779404540433405387367527659546538861240933738175106037568035806709434366887524922953615710234132029370228231535925056109029937308213362377284551952504258822904194095908744889813751404336192435116371311342594379699491232978366775139537430351065898952583314462308361121719752503149877656581903229102943729951267307615594797493078031429239618404226068076311360979287093196842041724739080069926054426585606549221235630204412742038802858555932907016433603396926393714912819161469515846178181867311610697202375200748427195016261690618586390178040514184781555542428219350167134572648370929224527637619498872810813513137342778548381158246561381959852671478711636940058889175047989656441063791411292157680392675158967629620828224064140998933478047299201079348701009346184399151029504832383134129516435440208944538049152870760679784400370790651198807220473596740393627691263657740946867637932654321774517099953001144552726847701331190927896941079213813549044056761870045930469527249915473497311732879877374636109483696675942263233764957567162566024826800143329306667512016795281550972560464122310093761106078812796188520743898504072554210429337102278883655847904252177980324580345902652260729338117916061343234758099746269767620898158897299340483486101861151329121087428290756928179335047080949469863649916691252742708707698329115021349763643243091660960640731451569524158727775721185032224429926855414355736550211643898446890967374032286052683835751055033170683397911093083169399317149947380656784045692094210728001709989688789979635134188424268554124384406412091479258795357242751075437979506932777370435116952857486939364056837282990197937364035400711250925166901165885587659327886590606692968020011486181984221706059723215041615900750578767192354927445357987329590925011545865800074555248215934177034719333475682282593797659884949575352757994621865521662914366928575946680834757584870290281972023547949154002574723358838959174662738384210021060962893420392613881659099744425998819694958523217074059469197804628067289348291161724131511771133635301680861542146239361899945753794491940241022636133238262903851294278892939945488983405301367676732813126047116203734694162046525907537017862470578431677019519859753621933966489915460151133485044287068733851408814528878881314375385859617787641690991677045774447350058926005933878432026961349609967462913477491402773811935382747418153638951883412391416651774926249063543867308558797958938162789066357917943846596191360669064746330975487955305813943961554924464703873585983001666633667899918363315704694986238887469213086878991682734264805293426244019354686267245423960562144344639304381615163256979047842810070893793233224356766776333570072880509138810611060574206293235208202218280754550147604378151324931374441257293133069187401436818322227593252938127265060230656896852135426648738703470647799608433612358513242732298399360032260334533482166285643005915276915535572559315483574475054036314703099739179360546253312849583999399549106077345548468392242327494033662753593712136337068663284485887734531680361418199473977992207550536895239611127420601539249866394175529180513639498597165632532014259767349334174781104998702503382218624600522496026559018879057888964944006210175825205913182794163385059542010928824404090753214461464319003553776002076763982313397880569476037589802233360555517381430281031935424485194279816362920483213980794633792494913766450138106460752461659978060484950428110394160096356111954033247896299171917814589572393238095850230543603415331430706705607805120287421325395495487176590294293593995363475883118751566269234898274171281925994881402763175638733274287204814801783531247351757620469957930197850659988208110480295022202598040340836481186919270122038778882114728970361783587114035557269767869230667346046160570552251820079672473914800475575117286495194261125055455113428394496275187156954726668970022774456004462996232698650604110376993003076262408449578112464367905362048740862554544861081808282346961257321759806811072736766531241660779073996175935425460910908346492751981682278728691049876805786562998721535244695502838142532133708641613928279413112124965441777939552847403099467129610621659185606306753890645702436204951950930845739481985646135391398323935322243148464635037734251840663043144933548942449766699490766962118526378210437202376486663032162682297624818078652011416965772100300192076803252401988542909139586852353435693910131731078281200174061433585300379415446858081827189240530133756629320402337673323395288160317060958540041959236985669284056008300930176659750173773068174925054159674119676430315939550511628496808897628632019704617970142990350901888235021542552069157379044910839076795386771231961987030338712779496938318164892858583644109070719590550847553452676064901513205627644130349844656307269741281541119472846733046259387189937178315169698731976194366806818813786576479620826778127223796640489157481294726872983588627144525205775290007200644388655871433442446673842416436805475068213065281299362873122135435500498871639742192515005448371395413600982422232733894642809386049240097127609348760174596438323372889659813742405013150829807498417056064473403268262209521206499166964523309088174419191263625209842070699764478649451861705378659943849854781933195325043428355261999071261412682248605219659980522911724664976878184186280454778132478717117986069705107567346102632424036001536872716557250577553288813541819229955937292867421377388744590326747767943921231589766793569759932689345846792449342491853441053664226182384831725795467398593355727114145346093263692964626311576899192893028217684114206855445670601882484207391753288809146510394262262522590355218813524429179139206487345310793601393843997890971451044966840907170170999992531541587119081120941664563311828925271768590821522260616317972483244753129816803889167127179434490694261201061887325087822409239459589004865327183357768498162202778646599522231565409421796302812219043445789553595082795799594699783520099511051849006450576794135372365242989333154551320609723582427778527147088471891608671075435729638645931256866563871736051785329497877546221305716493317973381741690383011782664079344096828406325412430108245493711162826205174278279342201866317848348659062160958355053752311503168216272439756466466671177067669922581989802843506444614007160533243689671407712873605246680668875178557995256850883134331643723937821765772662434993927119821477420268343675455106531090884869059203541995832140336573140534494497373343245953053672843943490202207642538335772633968292049238576588920114435143499606829901429423069065494069172310797614327089426622075894301526315318946076692332483077940323116112437211330773188590142615823045420275143279957305752727851387184411817386670447587280444000901252334095338906749533928781156655468861800816338282382002892002598414012115594135038009985129035994674077579590265224661644764800714416829875293061039497472942244397216763875805025168207914517642854455714592771464949115011617323652077993730122933924513542615958170876398685487187933981012826803528404097340013698882919391716440671978110885976896078388674006015569782385525727949760916263735620419251486103629746261141843978478531025769549774231826317321943184495552321563204897903898685475395405701171006134604178518549372840459155767331799818923527988471727792423746623927033425187505068376420270184976955516243292025435218614901140881770531590117719777941228353867448276462723444288698924848087484611130603596758415197269948144309453032796723325884086657864861385689334705206786962970029913222397025608205390377583627768262146272899434274072361742977385893464438629970874080837367230016320306863967806727805905934356748992577490200385145722218707025763754297580628108600472923912381363340562401572623072334017582064327215762900607616281634881941156908306242144503852249150074176636319161362968614981150004815300726682180498563981616563915420526842651894300519112137875340430436332961983380929930274168731443494157557635858947179574672967167908874095599637388824864099691358439930421273878099058044954088140923498968253855810548372229286569665313087102630333073397040307403907730761396808989858479167383178365534063263644765774091489075015271427975234613483600992084858024713768003821143818123741912532741035549772143474676261323988538100075022472607694659385877632879239137613206613640994259171546809945473971698252166643038780793059376225689261800837220158948213912068574402474581774545494627195107363146186239517634005992845052943916169411516877080485663862976344055586366504065799096852720809474780836317140465014027318301609102908374903292253645501170962162092831258912254267026135422177972415872076847262625621319644987025597885339743685787849479583754364067153219782519228912609787340748699776868361495040011488113320849575463516129245350086820169270823979164318735282783993805880295451496592971582885748553652578557898833210767426032459993194029071720702150301637847702434197964100333129736457969502684215280631000981432457163003518102705708890326216062411197404086114670846598336724733522205059226506910530719200057444780261079672669763330162929769099507539604589775017009959193884490751069008469727701451160042776497398959108516334866153383910750804833898216254580768269636166102655710913021209674277697672679337562125246883892166138205107633968972532900153243744424280490515889139385631968336706294483883685402703280752717530421410240880899657912499705267279106961835547842305676004183694500911246287877283432704985157541459304157213506625455825920418661814744433953503395776641807985551863227010851100705945048700543638792749563207621863373469417569739316470674246267609269416608362310015906358805794248208007220548317039822202963792892828093677990419283562049070713977196555381414793745621711663072268051346328466200225916720368616892692576841687454150606466082739919077759240964472748250110371041293499091174204122559409828801650373298277001103875432891945679909389013447547792754260711166081204452265875606822757781267661128474810561468990752022591463138781916828988286357487753241406349239359687043030246103152971729920024411415016235372505753201284901860278250393953417293725014092291326626853820035677620287981434762924295283700832320205716758044737632933809158121922201781818619513155201325017438862082161355611062615883069485595360017816208861113644365433662216269647341678859859168971222158462427476726494675441559227456035244763147279134052134091246570136827084654707023441272443395424020794356512542194684090848275422584837155868766684335529981147650448126155262220632250497531317783674901432949409158830879937720583453889031287521006665580570003596454707413854384774171549364602124509406503617802739001766218174433235557671013818124588706543822900730416338977091580514418588231305094871034044056149132396311954142361368174597185412314095893866425412744618694210698993653031409006102829336114160412243434840011526403857082325342458270777681295956447870626919414967350181993132152482609001597878606421300818727777376638966249419071565150170100221657512351104780640424762698937432660973769295922927951904310313616254331872579069992062254698858089037613740649646782237267595433104490922570228342763576225867430614879242690008701963719711009926285735733686521271498478794537624950139098519752187391988548231048108679350465536153336453194852191172205732083745338734994604498430390065806114771282514851082249922409464235602372185157775492669149427880755909187155258032276687900169503284228695668039917800939481961053778488631077300752101281469275612859118348370210200239807909605998897709441275244292327898289674956881957544350277852204829280787636368136606210110924756720421471788932824344142299751606314498183657810640924650891782918737614920569046053247468119884185052558082142802193759300460068894312448867047857859615270712578336658092137412551150755713929862004878921995513887486533714615062379512420136000043341059298546147338464923442482484452884358912322291309606761904912802820883569600079920335045151318759062339008945409095295894891516258065852922187770800977586701036071436680640977224911749349127579992811858101997447986068847805678225030649380797318190541348696331551819198372094107738548642775767300038818640413831287794841404574831547336669444603130613814916363085497183507056537778180324198496634517736120163627613921294832875507139760712899017529647061179753043771866974105463242054057694632744196288930997694674125297219030221945785481731621187795486695453917119515051905728142304626325257417853465547580429028704752935810245026609499264163392616250368495622346022553356216824660044690902872743243805472294499897816073210750501392432795897635808491099201032023788123042843011137331422405133350255954558144356348939965891546514194250868358683202644832733474498641213643279818434822062875825426415221942228741654890490066008142266422065419934922451126243247319009501196739304385730356054862711700620559963440332160160503330501995058968337907739554415356097441465561301812396544022180628382816833936847749828586416586628891921633724728912807843828785162513334119112063657155624826267285730193389423594633210455471121812927756130371544228329510891380003158490308370806218819219475143057151088387754851310611750893575521552858665054332371474380537933233358708712522163159553584652786467794483562068493314000532444422362728162804825395992900114489982949843646582722243899546564787976440914003275904456548157660092322926386776983156051399511130083170592492495941794487919989761402420725540304739347802946110210916498132769417694780747748053272566739938314483037829832030471296769333679252398709688298651893986544381704545049129757554757973985949443292182289108421511829220986805463209684968243169495705581320316280537124150237846937762705362250964435374190741114266513103186339321591321891145546709732487467371232149251571659715854445072808334499087035794969045836182920106505808599221235211137303995930096644475268636292035707201179224877874927760442439900441798806234131934663126330951677900749786381709997037150585919866324102452918821553920564647243963843949121847900040912951880198629883951520750284922849241656671160665455330931236954993908922116153613659597066380221812070859530728419009835779775244786512162582994282878103184886360343999416660408108674978959274238734157913842190570984001581778080023410400417744265602266690796809663887760035007279005137428601465404999164222495310117605487815067651326417749421303126418820847647610351888839743705516236648645877226749938117628793074023547760889431539480547070236178710430967630824994463994244954343419172049611888801735988602748333074592960948449494065159336615919143105245329067777008730758745084964051851630749571241017278212340001424794659464655700171985628325229813286291344067557243666244512246248065219565382062586578094353679370499745091939122977966049418762618206066504819763568783013921848082934836288749863413753323452207759359004959453209538039053247208561059290396413741448723405911393449266874109494556081740507127960688993473506195328417680624696985509075057613675533425363081492594315920112311746899268998043784275232260084563454008347760761539509370058836350975679490582885145802968377998341272200847397929325420336159358404539487075407593311731337434883424939638609135417601281880950461119724554901862386210890610355418187468151867151842520709429704700349217555261177361029552525278091107626606602997154991291502421350838886148327183641688453538962037064553352535694947667069958251178943738913285405711816654246891512658864883088140178525863596132497952185017953241258409804733198209289914789247906868216071495003535189325505130135480025689791276993376937070744378054196692969885717183138483651285293966923088090560902423012977699100261816398757513432621001828871048250823296643987518363852417088460277440979678136869995349447552752705205516474722173733581692651674109503317769155129032588242196587127931018355450093130340297130293103032670996821562913620709933153861545483628358467522979466610211174662493828364202526801557092874720764103879875979198918820327633013052854055543597569808812298516755562000295200891000625349925800166707785984343277993413832408768546676231094887732409331893870052769202999246662831809233031260202747673331298876720030776458482445421265379297273402381803428257474400694672684460460436847349899561432665109218914840290026940226633061678825585980170140335330826983716889453060609711440433618332005333647628166315994351155718728987560692997329446737099136074288417659430336278234213196819296516050346941118107382090265454176414140838785949589305399929195711034768753021297994181728882599408746095238522835724742138014010625318228220986494278103441438253486596870260725721850217621094073813921947085420636753102976660095423820021864084245309697752916784640008428840634850025535511340184073989187371542908555092214306444939159384524687146682717286879985741025090834223956712251771560125620343845126832551409305062238604216209161413371884026880002998140110249283344174282889248926061314990237768077627021875951748390900880911730931672602258111057268241445069708515563167881074390407763064684491925964482496953107624263795414206381419610239236402085914340623242258118104509398300025716906360612997311593451216831535096703164117533813853737812082636995651023766878282728902014018810799012000514157503319095955556772661744446568591051352999939028458961106693176693692679745168651939147318367648402634506287030242864897922374758276416743719346534331834377630403832987049929407251586728229761024273541590099599181527465275594732299831313686230665341821352529862302843658163741517978699748823282203424252721790282678118390317264007063432058288710326269788396996599022796853131910655619997818667364845744425200844191748808898860252382311896460516362239411011920843657700342436009802588148948571829549059692972248261918006859445221431851838113472719410335448778598588272387644529120585791819387761176244599293841764264426333570244022259338595373283094473936821766842900966264950086605666272874821072394818623717046994213156111857615323547520176847359352657519458781958156910468654233593289714712654620141695164370297338410877451383011175737619748980557796095887317199754807840926515046390165813186078774380635088650093238974980130296581755161438519004732700551371909368412890738844934102060393227076785212673223943458983198567537386444022428200670837108381828441222502176192743146599547358725539265648260646243411633945081317704882819772743840670259328801933383852401784608709171596872989186183936821125260982794479318516142297301667073766377366828807080579909648404276932631396209027777226841391429728994133414307350153114274198216693886731103636592101728064391852318018479072564116727584072761640777631394357774184650961343678015017022646397407632539293233835755583536634057504908372093965541492900091254029439956303499066567383426512001218955147860179528316948425254489806446913935429263308926533229273836832299775515383732397766538377929250364985570845799922129609460922059050603809282479531435873412920568554989785874915511167547580628160445949148398646449572037443165190675849694666995723629181188022704204196929602879720375436990558238859536750360233947570362029332597516756405370128240844264531018491105887903838333010942324666028938921373729251935552303454005219653097718819163951765529277116770442172006696571121642516792981589384958470328725374729451269243842368936622367771279418856091123680063538057607554625952233268069981192569273007099248530954530892408993836777540237407253087124742175913616789654411635660431333912821699967616588605569378180220918865703203842518486879548261856358171420356999146071830809530215549834983306132917611869924618116915928605609898886080336081982890063810690334906491268718551205032766335277201530598073560914549930485713683813464898038626441863172589731341965350590827117263221169482518149561543744007023812864963020947289819522817295869696150821480768669123423091324833084073919383472193587520436954519790649692880056409695087299162082821429682174993331583696799555973478808476161382949798563574881273574569096473236247040934231563120075524338034189987770524258012297373699993119705083261560382853936648584998166545630492362840713769637658207033124370359844695736248462998174492049597068694532253225542675267012763092650518840392574628213382945596548395384441146667846403870236801414184936600896162439807343361934145947864424755902282810527934826636956274350870658560727375690286172715860505432645909734048622089861441856882019084125944552677619746027258946058750204037535643831565057435042441890856157510839165096113012811619533530303946087870107664975747970817461412651577784739043189605789813741011180034855748465135353951406794265941846977489628243537118864087438289617014471585314858276918409057056083214589306145285669992195516383966816697825069127817322256113346651290089417195932294413591760974643783661762089854575671092847248935062177999130355082294212267942297592529608008880345423129482067814382171124353463266348362866773417572637466205210625000502366792052151291615621562449366277627425789527186929116868512510340607461872690110838297059906245818888246719721449154013387664265559818293453155197399028953876163955702470141993582841438813524783191215640086838644610724488009534673883205101059643117128417443325462584172935406765084114959785069563009041530318255075695520355123293605918813528328243020730650652973123580243540606414305231996289362244179679599973767906751767578313049210857199975867191589518443071938450708415371312981268200729252951254844634188108313991281505424239625174190317797093459620324153114376206725213005320485996122155327685630791491492739353699358623912816531062473664903763625352764043091854612896751728403503753690691901889257611197171752328036786081182330445290388629969215353885377356524512391356662471853163580338269741749200973595335312428912359625218841242910338534953000289152889760999885719793559791362693968187473229021721660572282023039269463449129556506764111118548606719516525302610941794914858671284270799974956630621952585719570347013067385994536408946220476036904506164919557087204891276982446001807105681872878160435815606965190805308244940975683251484055179360598042803453273891148175099004140707008191542603441064943092322530686404377036317399068257782287280572985616824585041436613163156609935246441244455669037127625675125608201101678452927454255194878244648225838624936007395130631036306361301045867820610177763889555410930951006501136898397440322804959190283464837873567806671938082825951435494917610980619854845828654286682410262537599148770608975392828906835286590432632808560401960097665532757322000529138271786154074717387764746851505396337317828709083724922045430852253648712745604041054639173530751908612503045525943810978228233696877882024944948054504066658581148619257053912152319583040940932407402660733580608343344457799286455434708667104252890122542329121220934148546536603252929292906893385794752457615517088774603672609510903316889224771953870205410276043017036088011317061462118153406550279460303956605349308437127293832016031322696228156731840468933253402633902166362694937125726133101864916026464497699324279880330870688955175131247482288013974743232750860929682718061858063915763668779438367714421662701664785134898168553097605955594355385256693838477100376389638912763009531241180791305161448364477437042120933764214200175976400522799117344780043377370982304940248603343685660566053909972848312058691916961749589384288777686402253191107005727492670890501835308155049830885726583132258995831278442127541347985960506422600572137534736940239054058318603277390968529261549644447698378377593422009725490380477559962505121991768267541613840681928487964067425064660260195433769855841277329709487638382710202620758624681243164076722988384812849921792692604914321875119057678338460571182913411939565244682969688440564694446496280557326108773746878814013353414014882094923206646071020448275613641018742954638368860478241134313181986854433031493900088818138943242893883504730779680592811958486064811675081155748526026200546370272460280512752346979692254205632993736422768927422677811071903303938074247415149979296016966751787499400522582932155029888233637268748663247605598825230598655010279527934583346822392535900032765925326416282398570237781656760920892198683021157686399464893688614391377138501198482657337268554266882685000109339455867746273983066981876853191923825611533824902723502349715448616706692084571927437339152772276161548389593394938836570613508227307619649742289626778326305887253201666769020267785834018061223378414652533920819886273408572674433231567709433559461169622082263476697827890185546757564013999392765250800345358840429829794913087204209045097773218020397791530083972349443540344654306293884459088670958557062003706280959384277853342535608256174464007763880022770397051577526304936638516111495954717707141321413888182739620906700867172389368227174643222524016889638882166800210955698633667763096048031486277638416948701137694267055184304924374437857424342183042263717868062526901643203917397943597106799525597311655039390729679844398872668635888533613201379781052334312231101214163918371147521254712327430849592236573871042248736487080930075027319325614956051557612387514216260741370423781855063874351062202064184560039066705009377157879627744396899153176040501208537398578455032161117933056997100927666127614605500046668908701776816298802363982890421370784330309399053605205999156652579904419299747911676607251943461388697030675532594085958463816005186541344047320516872144413123646687656980292515862810678473092506053022981300503280953266668733333982006267642264525561892875181646145994279134811495426763644825176354898951690347844651725575461144103285976522436235378434845092038760761366345836870150681467035167042792810459536893620593746559998745166604460830191049850696589608473847687831245375866396799540624150186585508557429556341587164634577998830186393030554141121671936024068680591529705450508652588370569048730609895104157373329664558921085495787444174405704611352230354017790863471339199636863228067142179782976913358505215043609074920241775490585415985520945447595105654451662781585424017114016973036623602243331422302024921748110726974615024766155152375145559175211228425888786600230064545000178051495048404213644191758277892393379518134594613952311404602213906592148390505872731938411406306272281902479921724756672057454921330446206266085996070056060688114192756031314363522136441940221224944696600525807372023757060881020952472142062105845729591472657473774276636705114833404781831491982745625151319023218957674192188584676659420866805124037439798215867494998507798293657158097330771186485278454512116994859136296242265437842490189703682758045065881197361648585062462391391002209298115208798670574566670940626812655729011754953978611681384344188745417105411872295928833021569730064946298238318036972018033821017252079857251259433750240959133652092354663738404745083706250255608768252119423420756808627690681798177031343185085289286450805421211567939667553007516827352837546676554377975507927438171148829172307652296893431165763185374623246638765476597262682799523204642859361704296095840926455913176709531114292855755136034080165804801533243293428191502809697716394060552728271543416830827232475394074301429803890941789774940753564776763995436445333230499550175744496135294326931353364849322979496327127318309693884576966856172769459213408241911500046697665266704225347891360393971797375650831889522400866405630376486815449983918238724168740018139125604286044133371490402120867455239352530696674840113559737359619529254622973919861101795661312542539376612507729959532089532978592005692024772023139297897835621950448282641542713500775681786093278808299521736273439571521667722255156651423782551757411963771060709888860898563699079556618088125761757710699695191951263858875233017105251311180760649834059211255118784310176381915877504549807283145045181208282802000802783615505407390156636137305552521009871494833907424780667960893950287444401689304975635436428685695865682178021508338453002301261949368879690691940203116617107118041568639588885661054329321410317112951902534662415320897730398392417084460180149027649454873251299023109971634242384940894903468975888899365947389522085017938957956114786283907768687992780832298502170968026001801384105743242678005679825609988654589736836220223760967201876703891190095269122578905060169690818571741515522904670904103899091400909002170353873731499135932434445702756047338866181272957359742243400858214565135151278860260019119074687688633031292000875062134310367085430397203191214201437070477447209231814904473812346639662274071954869905203371029576050130254536696877473335487963693772022738158080175281585556515137931832805333947029812622825741104327135978612608427593431617626353111686414411018947062740830647955665564070257181596747539673552128698782707282172879633048450184997965344013547711355959893152678590357539018140616614186692930894515201467383559254651950147829561662502943072788443164573055462926540899368781546817047185032106554860063383423479209185943277385004406013280271287301386081317495980346072138256452770202640951447547786488800847081706043720662443452445236321546479872232260524102358819508676796785710711480611435390174502426461477494406065745511633988282359573304474927196186851112739415932873057349983865296254659909999937368664178116452537307575326642998729353310409923815693269417512859252979616907530157879080341040041310119759614577482246096123326891985380727625542031462692539442579407203042586412239427020651002566284414221986475278496415857736148690936127061834481465031453274351163331627500352661879600093834295005524884835852829787050874676005616098780943715186500405771396236010703310734571687573730216177106417627681363780499377574283667694246608570324097478885128212270337066805882035958579475471812716076507279226852271198671106142024096506107282722401742576191709393303310593861346830560193233324297898574941013127685799517284143928368386126434932525445391978044436521455087053767803972148969726677280908972966237535933067863345215622068849976877383577181975636231028422723805274998144653237262256633074312276902873541645241751028782642739540364198294561320589506902878396293974985978998106336993504192888118109998807144875566866318824567183085300408874354966576471546211934977129056850402416871952658607870027417560588543651848208630120390852143783055445651956127156542490000761846924141428967459733972347672216003999934068716665107662690081820892115199993188263968507715689827302556384886147687991161200776755597005090527740570003742309979124951767362184526427900348677730404546217805381102998537472412090751850128656627262107951461267935420350913829961297331770718545505801010563645428570603426526040684394421959298327902359233601298887270531995825902547868450358786296952599217978451817791990973576555418165036950902600205935218455636551778682517247296484449027590499321123079765126846013195256992126741376673670199575854972647050094387083091454291472464880368259314918850764406908219746345300081215989903578121118661385754339224813607756117999086406420077251939208492624930487684222468505891625947474625966425900940482858243920719920524284853168836371147100848464933128909393581717859842682916473813761869047493638580698561185892136414953615864557808295097649477543715372588851592756957402442071272244052216262208765714965814727373583007045060974886761444042260323204251865113167054382148715247434963760642224890164643100484301884295851189782968443532903468298407444887278358120276713605490509244741243341357100200778223288600008606991778680417523142656729800954769042082262427464355261170703658767371463770030936183965560588161571024993667079714313290870584868039646146997152202238030296066596538608941439893244798121537360211911745292017190418615756688034078370772506578833133292898750076732148789449299774183538751907173907082718863904299991593995086305757937328936507545574878050541978973602393471577497848909979189093299585586971184129240743037973513330591160515966607456876905426288324816986299153876899278982076093358958493980650916087880179647311371724363761191262284098077534566654387714935705454995902491113938082227126407413350401276556903347164142611081773730309859092747657025066453383315661245069531687651973472092160558230273239610299171791178646651940658718271320839558420497579848292329062471721002669013298321075670248982122090897733035779572553600146206082554713699494971351204296423099723802816546843853091718418107299890659397299274313742526751969466579160331914998925812461202289003538394180603794862082462708619510396897461719391490945691849181748227938062708797269510586952795644691800395133601640710174480447920054052784448069484782555741449830427136175399974134696387123883266009544773081224242559808494560797373897677029656379304892907091617844952215060659363751216927407974348964747970294040680743998907920358145388942883097225910765396932207176315507107786917474021270143092608374531431829454071320005896242517237419899164224616208366833128191476647634061544604725671227175715795513327383321325089320383484330894878589746787404100067273019978390982930461358827200220459392981774060881501183685024751843328753937237901191250940384738921297473427994838677634745747126886552088660811748663995259903284582257481123615065925351713892291808285381034085248048123193789421707563505004705462866629319064197792580322147997780899358321174931413730889622029113910207938908223643407712202420503067666627438614679544831069818063352438416053927261682830281049980509108880386054321155936067151189820484351213925233408116678820757637505249804519673402983207432804545113309761352873643399372862092987890916984670278720820385841162640854810866953950508587070114303844803524184904158096377813202232796280520439552094073129623015304736507290619129120366157571534248218735088789525487936241598439510491998814520329876490015146589258373605300372854000626510098672008563533139371445951188272829060797848591302756197663355973332277663216563861139880406110910463175409665912929049446301579140498297059815316172989151720422188860306145265323834717806351927695571819944385924372003739934434475418272197705297519312407025398183710797974815712764433136685810251971774665143456331420507258885926169072219158639381688922664579762292610749254293681209888323935626359745254151102708805945432061545862064870427735741451431553566109395921664441279931485690091467298253997582158670500691600149562610053709369825390960521470094626049325979708163821895271523422105059065470031986297373026053137126629878773564871469236607846180115503542319326540603484979579498562828750631258035193118074331477288126098093997371959172287178559763815643099085446825895965720405356140061658178734839063765591567269103590668661499331775710767412434046041179882753921926546760061798799180073738853695333440919267646806843966921226551177297523188734498331070771001221424508571240690274946934623432482719641979128248998981968402199312024074936252759407009436572231335445745517414602274938202131154967978351517245692421539200521697961891852630161730493486806462615662552473639725712645730470586950158328515214719354978796086344099750436924666177974140059093423669252276254126144689024688992362822749390520067585612007421200244477810663956895352891414869319741917657364199925894285432628212907629662639006417754468410175514308084215499261955418540439964379581385458952172424378719128026200749081787370097706401872438040433803064517821635842348254143206699298253301559491087736599233006466594061973054682138169112987098974588201215631226300347799721043666833397934905533967776611451492262974391945500062805352426268365342672558027028733363074823394195277722161315228552227758682925715008103382470530660599774027780214096634541134775195344018229715471536403915343456349016109600296292872629884968626603272547189940184337420731979254660098735704151264604986064447264275288060033339785352987764935233925890349503097444297376734706421278961117022463897551358448280924030194505641946612479240332208445142959820751033118932567499703851654742235253742184641981964496402650243439428150888250179240477015600210249965660350182604881817506372118706001865006809055313640912398059893772048536233776676719743083094645931648502248680168112924094602091318165176582636713125027981516209690392977576972998810867248209283089752872511471821887483588401026168246285912748572996379141357263511617555517075140452071282930650434536954608095187962880714776604455220911525494417714181992459423657507471698698164702455197439884364095546232679720573754819928997653792031725738178911818881104262474963853345636736813445909214619451910195157713344593050203439097133660797413311221050944609039046722172574892706390806803195713223847478379173253834964499009165508764886676273497022683308654716264291436680000210287221809569792441739401623406288745542389815150862134189815351816144096655470625061804090882748068752896849998743116272944959524409017254225797635547600449374758782486922401827878330859941567594590369627308845954245756222407626170993175349204432908378075446782957885871280009634418442913527693844203786037018297996794430143822132752313672668696107853156130359977465921995233601675864470179821441021151633655227773658585857323250160693532400872065175164840154449064157440206126650363403031104328712564658228112547063246248722278604311909393647288431717366784050490152854668955252103695736777088771196343339994882898705207548975951515746292971722007203404646799135465975215430121807356402389346951054608348361534625251223352642195542398151205250508141693832810388547139164807069621009781162154296896155888341730853190562416441011211398967676723210404703018691589598053301875053205195825047472823699671654885064049390922317871089703432452082359551020076087227263238874431992711293988218304669544904057837440993220838445032012964012318131579466922458993695545763889547518985974564217593571981709777668564394670464095835039836033318105117004417386970379829553514147763244661588085367288516535371331526733068590215292747500977732477720139082372551534906630531986892108407324975315827040358399183682440207129760407283601848791217286088791481175554021121056523862451147020199379303126589847693251155907839107170577916306650075758070507979312702494218281892451112445097301404327073316668739919072943331089367369006909578598373119525358622508172554735220854909160526268895488222024093213791703482521109251072079443326986884326579736999310860198186974823777135066274588729230251573370023240973375237112218700797894137777334582647589892223648272885102139495685516026678937227322270745338696034473040266863275902948701149696944289801888446993886877698773219981895244368869205406226115457021134732131070211961007334173850141258486838042394179928611036820651739630504552993185675894900821988725940753906966047073595040003568780028549069982630011305360427867703220591492939180546336270834383589000700471703857015667697316890965135298546199244665897254731858155846812879363487841978291249996940172695524059025700609164196304633535119643344978259898113538436258490687339357648178671790985439326341037732938278203860681153702626747995403975416117585622833612946404886955021231926864040205291726618463795453589756884902339559219873847754704461546551651012839912949465718371964287248488140641436735551718951517379023172251657898896633361659658976758326762845164824987881759592333685940442962153021698888808258470707354408370539469119802753719900790995594211104804709877863603739798986583718585341776291278772805365317400510903417632753476905349877285888058877117616729233038727039316631903538259685087783780458894654699757647210495020530676638484253095494234604981943485212741824424977685581372222867039895577615943926443317840481526012108738273192981885048038234036170947083093423193567272519960163212127495612067248735973497358429722393852663221598274932129935188354011666930840988326624460587804378563962749548055170087311990871383584451442022017560023699416618979659379287720665234911280887949786043829437205248071356712491617652744665858377135467764377329202841686821571166964756595190592300473504687892366212210386876612547656669360372893477520713430700918298961388934253423335649000300101710367628964519913415620156278247332805746126255025528595597994155989862622459987179916747446346831351856520471391790537374534033406038094056523630672270912798631850359151238583009069967449683314455947224764647178644366679676273576265169686631028345879430208746961116912863254238635792227918846481277350758187190120058599457204431881997780430115021865914212185061460317515510383217010072251365605689154705337414678622345981571466042487352346228147106872483275714312346846838585587630646165526783671379089733087892862532497298515077216352418030762440498991508829074039419920587500980427740904731818929947463246739818662284508412448957374497762509166675636422118841914741495924829697636193529877111591195575911505377544603683953774305661266634719044437103092315989756239357999406041208947048350107061693275388387262700391409897075520613953980516359101785261645268684378733538604299640827648672804052247860236239467272800849407551717373548061756419483092694020263473138726740116864225016853626068650015352616752786528943296322201147592947691962329170190578977049075645819961349300520465242492734145478403525555613445370223535800830299091731427382972480072237205631862877159964156362144865184458202091673242461510251750340633817264542625765747709356739302206631764047285678685559823775614759753247679960156002168622744381855745381146535740298949812802138716607749011560349042549464988778796256628353115231850650606821560682352957627369037174750918350005185594228765994479951485242520605099751407890312422147023529593034131284774983994184701175342446001743151678936262404828691771565726291463604499372576530436260064060159810053061952605787587070323544585341402564811011379221863712900905956771051568944331977179557498237997284073251839059678612555769806751170136911905846699685974888498001985948960700850216003621562871013758857329353469509766800661405168581898570910220205285838991728055952718546074771129248717874684908175969119976175080370198657395457292800247464607698066962601887102678352231972560336494722213684123793729732490029012777555983064808449324945897610603929074245052315221226305869867953980275855936957962940608831126357746392498318084089229891980903249277212717478870641539253772454479203310465731775550086131773554622864212748713621707077433541353793643405286175415950547744050889093292134419799761223887231591956909674893328222665659252293372148959451660010859728329947253585582782723370693375076943111630326541210591588547500627434669232519662280316226723203892761644961602771578221965664520456311169448020349998916057625649061303283044423841630953825420432174550215926468373327632505440184199427170187696895936342100859847577089731336480183062085229824064500734993872398441317715393765817462744724082431793934541099456578747049969200265004715801723141986176750386820935748799889392630074249661687057215466452572018380313001344484380702287855116657585969310104829766170610441684734552891401173888371513723543776808125554097460672590012526850971030986435823945227518800153135998184825187214883217778390869195395757739630300488088822043020931648100067673130842723861096016279785375325328283406937178174996971145662497063848983320309479494019481616739872764953263362128396524296436526916620135318785824060863871816618764561797898433832736342404629527384009731092783082912757046265837478392769946019458443947849578480270981242196441070596216294841825357100834546441337957704014844292279899340287483323297110838594562903866116497795628110885844252806261639874969385496762407085751900975188389409550043474942722864276989112371277286221547129548003594208444253044752155139643605665337534332778060445631053004235983052113378236495173854559927222486480210842849330113674752635152635487786170042806920542610089571461154200623109280504474383770704000201311897443279555619112494444717696541674777210670703912705848554166884057355900092856329093903238478040550994755667161139018962832148790637152949484550638333529271759874901076648624227534382863439837154483925917581484771265383960303009085594078607199942160921587444285010885935421045922727267729458524257884311400240829482688963709155580227026756420870884088101398259292624906225635785863607302857549120125731333705703410802378988529210456343217429928585926204712837745960864184757458815047767961414909517041509108587554903845735305318899040582710691266352787145957060373332853504072239384870808355255397362972505327402084213036774706654437060939848997033965793879931850263212776880183454260219092656356714123957666690458200033200362787232665974506211684276697457191946900043496543926081909879976954234628621405128703109307498479245865887799900192624574456858513902570226042803860652122925204082616651500233388331888700585795621822868142380339934633829092331902150591262212630781409918271592784068063077221751218183847282225718795639950774716070911545828028822590385048700046184987859596867083656999222420631932583394776108377273081287261572340193829968726639576679321596536816621198778375724788440856859118196335783896108416008185144759860965018717438306187798176067349475335678424759150340010443696732738820300577664913131692535484429935151971429064798023073544619078439454947973629734661872877583291909983824863215827313617922107651593930121834583230202657969139988015721391059208884313223163826245182064534602331582908953298537048701505156791732213879413272101014068859984789876824712246349091938868554753487744769891555734070940714071698754782173621672668810535415998014572484772665678510761896685244099753783177634986262540059405253955292407725232817684763671588283869405116682690370484466324338643662973937184402426153268086510273845019833420698662897874263030618800626109218330669298292303435924961136537181513382767565381394512148455339883518608066088296592062204896521770818624249033298738554256143072130219441783374129578918355493600180455638126591176831440177915902900937365130743567084638824670813146773408549978217123150809386111904642537417111959071954254002584509569680324084629582763936244496024261347576296276408914036482188915425444474222337006381583405259666696399064084461503110469519133739891473514845337867229220893282918049331654892772197172524544330754362722749846440851297669229844681514819824041419363903413408006071776208585368712104429710700943991416293784371862485885225587780652585125541927611217452260443021009651903215841340775759520181173531731782364849728242169451321719866390277750277786294694973401774809445838533450789892301422239176513679073309157951206244986733377808509541678488934647974899150135604873389118046966359613779801338061573266081558568140233959789267438110823604625617368034028203386007700320004047610723873052372485674319194652338569611752327150677973837241177554121820221489354211392254016501328049954758333885919932397811224786550758191286233864156014283060904961454846816484038557859816817800349860093457952926429089745743233982418678831022082228968416220774125609645345324176804706984688285188841214815190002110311297008799135199967482673580960173795452613395736120306658417610691696219870364001954474063751270907001866855254381917590461954904402430970481443840490818961013891969325609104461000672720552965940250577315549393364198951045767592775595214203889049696954854927666006458454482345890473087724918422935512147320476204903318875139223709824141463836979058932748958320266066611742435480228520961386837588275501302494376207076364313413544554789667612711415453126633875296728691804471510540595249194308808842979041660730331367684296204861943434507163245375701235256304526298023736757612415646966797794328196984062747157978580263207249500099528654082045257361189028453509725569171873783252119188607292909917080271376341046344624662028789446175700438612974589980594269805206083705074906575338856294737027547446373617232206140685808932501320452952253167387349751219447855767019479096919017149724191337345047075756308412781021971074136146691210352774896041909531334809514539807879769768428423545868497167506940405162461810848110108690582751267826293404955328360966394668693354698114536744857878333233744209952024496107580223535311217921754453576429966409291291604939096535298214120369682048079918591809584050855848329466531030331448786083598959790456951363118055226427514308036025093518589162684831018605760560828343243264999653554032249782072325386111215984417450611043581175541392400741427178806985882698290661051680538014478339875721246384813606312355264653386918719226952114196520351971046188047308013156253602220285550707349146993263910667328719816713792107534502723278889017642879810857633632492197905515680112781409738340751538472248313429094534010047388535471546343185764983710238684827112377609368115651015109385717581962505330309895017654768516543809164575210824246691377241432653221261153710944727061920490708508087242888551150284029628390048379022667991661291119972213434767677793559088656493359598594500240623687790564809858521972802530240330516156890893620610809361703013555013459426796136202178981394112795948548793938795085174715173704723147573839362945049184659395355217106206130333535860176488243804091925994013604822116735702226262593583083016572412280592497992033775591844383424367027309705152689399400763667921131966680362878766301053896930343803510395373556502772591554671306549695937726080178062855411377480466561516592485287564072156188602665973965311402800065128148056075334498292004240786832907041653879646179344549405754340022322815350920816612625110639907711951017752905677033927329072087778954266049919746529918206863116814209340895610526868878765189300029308747886092695126810176397731558227139743657235469701992774054900213392587115794282574526068656645561108602204892825903056225221443324939895851103509352430877287887714015678683714481726308507492079327104677000006351992924247824031756372189569355499315668817066087534325123952668741817648306912117170495084664661571462113146128313307719513696789472062618800285589788348855127797345606743674399191360829210738238445106409775087043810933789138816422065721364789100696815977137473817244039906986629698144270973970734511725383868817054581125132987438943545587824121811117373663678798459406461657726228954824958481214418988827529061044830374812904471008865364968151222590152309144349926171662832886704130090043320741662854533890828511524952560512735695370707420785860196074268139359519791510145562764586996355727155045582552662050714410374080076186755864421595358165887912641531484367181522043978133295846803691358337004437813061605081994571628882508972619002240789794842180654743233720881701697461403060865337885436611517953191779187724454085012010250827598001224717503484968963444536154492756099928500812824666953972205385195051331316860671111726498340546804729008497470368012240192887747956578213611496794647888936251164269686237922383548408383148318502084346865512868726634429318010821916481194501255904510802462039216682958793475001383131391399421849581523541024988728933120654928233447883734615536724311138836300868908895393572633676910492307695113206690612179278240201821525298293724900694038657225139506827025103749709956617591089975784939361679590958684796831794280402779242911046634419961567877831242629970549002214723798672820292050023453277086578228593990348243772842896790573027927931007654710986311308836790474717669687133087630814687685219561966126878329947176436144319496088831214248944028373404191218678557091886322235781799278906473515469043035038544155334263789006545812765997201208488657005204187558001789144082281408729092166973612012220744116914702769896085089516081057048959005148625954486118182966732505137214944197476832977514612394345174333718638165108896983905167439539496394734813914268295250396527801648677388341285830224749705343533500593164995130828419971317216067437109214616043039289372365418749579415222308048436176719388056528511380497387467235967794185898301778551111766568855196422699522208330054292901719784651248179282452464905934966010247631389447657608600970747878563893522434775246786336066754083137003723495583774356287877946106794407076561459104770876976477303952111480717147257760382783378773086201697148386168943247773770565022311184086961642146240871410361915867712422279506312894619535130486475218792564473043065997720314960205986049838184550039611398532245977153083010650841593608790874335028337328779325806063094564599944972856426139339397526564505860403033719827344370804237734807708714438252022329008719859115364934433573119875200152873156160853709734950955680055272217129198554523235383058305614373799357356734432431166224986262136008725221893743582115790338008338989462988306178576416261174070091332979493914681710795013347154040696098950761069600827233047200821795202986242683224674184179496934412806360594063991444576110753617425830680996783810954869556090630871710584235017213250029238934825946580484028088705091870349502949011872570395672798393109573028678867658988442713466422518425011127596237451971738505919008976975869558850157710189210790647862501798173305624718359343579688970549690983462949248867502247163975603652230017666785087616228883155960129503389488204348751051518303750447529167069414969208786191238558613640955032416042942488006334138136695937587701967458551703364611279463248897272610159076161636856352566190988097757401616173415782775139067175917793320712266634635171774105279263468018462679839634636717938112731320432374818675108709755842175472024865816848216616191277403640442794069744371068560512638163421278371724412269426737669863537893412933040937834452479853238177894287460509356542683677726079591023274317739392090742078848706400489963611080894419640018927862932894027457048327444888601065444025314248873827280957348919025453702961127257182839588346181014523566241322167122471150633233251986760885307332715333056814944763802205177115902106345987341731428172202808099009504372164594688617248480632859670435929073039824118462378184641152071480848088108156616957373812321334298594540994709773090992189091993932274226494589030313222929758931910910378371147350609204796320651519070962076411567360010381669919059125509491108064338580605265761430370200846165325535343319055154588018229691027127494733686058776442244814399408890885822245068461532351719076409934160341736292394215775276515177059195761770947261676720099693583979700182282438690792302678072930064846881223948583092997648641093967475223405442068567767540046108187339597699004603553240790013192167187621914192085565320306973632639803000181868743314062540575129363592343143923272313420358331481776412880151879480477733286296883632103321174659695602884631520898617125151311812222527057966019352970595308334910786059823216901405799082762993459052330799828057844643589675052815585042971946778055166816127432905807441345454083836637820696391950557056915347090379093220432535329979952845638090869360697805678489461469098341830146343784352767467844480845316520107622622179605462403857273673495825184484567918248185644459496840656760631938453758926214706965724019142714124797482296762588195530687278770086536325641010501009117798731568913586969248144495930299439883583959628576227223514150264338988460655324828718692028032255290256200630668316431753974183311132882322338362132441611154797356902785064134822462925991814964190668094315005101041606416932315391792683812532038965377285364917558059985078339605938314081948252420658035531091657159858213137294782483724223628595442680195753905190455572687673902087532029597453237789156156949617597517915853640015666101680124564897093422305634108068593940836404362565229358903893685483140978514762403655615398707892470912164180531606257758570399355103274206719177403566067275402550804415013368288758599759148624246266897111154971123952987120152559628475872397912361077567431043865740178787091366044951999950754317170219387953604442848067974802891419150624527073673865967137581203951217890589981597381620694121132791384436791599168917451750771791878923236054289038632783714852492269318685740937223283378909770677722434380088337058486374414314458776047949576682872186923936926809988622059532935027907344035942835896789371342704825786777813698709631218101947303748658324221149136189185041676891176595601564497872693228710559287599378620690525952333498054374754969082682345530906258923863799511612829710421310466381972304526430813373269776882908424804562720380116935568740557302093033106715528845624158185725190031568904941458386191508684308059843616044067883384129252583950091511105346972921431641131997989233411578219777717720944567893349285865275092102086741409576260226805461509562644187592224504794387030636917148314065960046422395070543239023006258392053210195310229539999788396158780652277170056468526900765014439111770205098654251397426690994858161736824011788166239409936132232193441884736979674589539356488930386868544783726548896560687015857020159214968342680262949873088835581511021521006110916653238068871974634812370038399941309064982761810357609699060534760072994605105143153889971852015590573724175454863062797853037288101932850447037649885592070223760289724437744129407528937978714139707440018631748419210154828045403755849130667347239009650676063123651986239501865791145423011268964026494336593396416147561257462950417851126815884430237545900538078539214427488712971455998718056349593282663444743264433585563454159106778627232970490140206183649242187456226598191051393895485862090674833805923311197329067430337352155101098123036337878127590776136455936877452739895182857516880926264790424227835613200676638368670866928674045146182711883634740977878204597311350084535936987990915942531815252493253827921417177978434003658373952362751001844801575751122557979381434897478585871986521090594964805903473670309736044576546866118880567684003156249185897835301389425131429982433818515613066273726339013685224220127674247349392979657188173204302613810745556751102890923942122193212765541985026007371264705818825939724748216563763423498983001231033257248876511276541878607911677850746882613736177208061558864898283161711346483850299641756009711782813101351046838199742489946767434520867189058878617559183511394410998297249974633696385404012816023147220832533271481585631235785180823020390865442701156203328956987242664577183215845271593012159806966133684676496467653302076325343183622878397641071643710852895612820678881794138032311303951995288007245109306447195668521706046203467139617997290224133855674972424852419386064722682588071340744486483337389387322750007292786284554087761192495456000186726639485581429868340649467255617535988647350693232360214374104496840460722611808354688173424169766307558253186706805399030209812894546082161693301664850718730596944720314697418694710046410612669822159774022763942365607429013199323478095021655573233593991186658128670863656063055328390448804118259399332590415576533106936250507041275807098095361303362596615109208246555102875087494582129093343469673269827179140006071566986394456968496050754521906268783264714336573077115435861484799463043511217612251259422661684834833788536700616237124757719389808432072419968265624789181003263474787220338204211369636813956937991054679899137137208192659917719065909161100557710484403630387601517642484921351282105937040217421724859087159552909558826217285378305417249266887421685178437467648777315304199632703521373570783386756989250508872086550178600456352491361286990247612054970931574000427883092490185259215508900322988231430330314018029253575559258762745345992000958046360204864937269999570472669824580311443881236408619334253599534210331054212737573977528237226815703930503717048996439944403637006468299403663629836334414975152048099627150383053239678986227635023143868645428183237908391806098391392379953615253342416524365482198178056335431002393013490848883800770208411155120072465277114290916038040521818917138144881421982771611682363851082298619136721016071827248048480875475751086632259997291069837692883408301436426774590814035504050024224726658560544694484672180628031947423774049105124770887048078002376428743628168991605883694997157195302910812852858091046195868948349158130419634930015692037693070675414845631124848509406953595693456046535729672443612174881787187155577834666300677918276222599323339482217748896055592866791712662690726855550105714673063870953544705933949814768825794467015898178761426295517591900048598026328085050542451968862941525419746091176203006112074277743732336126463419451726796193026237863783459570583700512243440368415967425518044073326963879503543734888207008257512086261256522874617274731401713690127319043797410573227640346246812020744622986818734264800605482389314500888915617463425678333725159027749148021318406631221798221071346086768424717539305329587710359233765797670704547901875778770018735717479389433641604175716035271645537867951526795707265867576144665764362925546142478543531601422687093998983933318174410108429144597747073269232027986641914509973203643609146437553847887642382227168832682757618370897826078134506221094780584125958432660942168092513425925417737472852738285326192505284148469965342865671208538257455046175413943384975109195225756302910744181944356409718033601664938248363646254794964803688563546993254903923398477662263015159105194275384269142840332370596581462759696273850419400452882165814134432234613267048143513949152380980854174791702642540970309946295019294958641939922389616387133021865095860362302557262163371760925668733580169103414780149425880278933836449194247251633486279832217652941812400719283380468169998229767952175977387743944453818738370197700404526742511193204505866618167284581167848122053390431403083027751189080383459876018633398140786140648781158395858455083780590484828087511347876779123330598714728008962797279948693096489976932193438390878700947925346955305800202484751358346077170534240033844735122170222509478426745275512273525650336065873808160779979291580594200761957967262450587440341609470615028631444326399425284628586135497457323765762181780057652223889297939947489723464761868433282695899296478743248375731692590454738826646501221715534566027257713788204358744289162235659541726715352906379776247456517256293884774897848212070361788203395092463390151708577856089224783428885146766792593418026620865533656694196994008854103038978071147253983579958021913964386997667925599385721951724636866074111394974965956222268466568803347807265630307678135533035926177270379758597506791527031642565066513248856718844825761879940399711651499194082253597730809478342735194885758855762809201627757078479114184332361072046537383305494306738009404532324824488464871717804832316279863033152554111097303863912255640759638062035209780822191102403490783707165966329683296981079186253479988859497695417068282405346665590770584712329425981145695423569000595456603873639421802634001048748546753581934733180363746545837986242012390767384063917230703971849223672989601152222912248207414135450205013961360206692591426035926053197447246526665557579636693272080298147989405710811801289032619621240738558615541177315226842367215154169866532691731770687063113560017397945306830819014381815712854703161369831485832943460018312150087679176106902219437805056417330275248202691291877391997532639799796534173721827028281029520976386135952871974160160530696287515437329595726522392125565331588149638041894540232443851506579829263926554716716224005397356601026446258316653448987949089037853561599596000325848161160958910282322279023911427844267038733993514844624764783391529732074143841028325570881863453075129245067565997812348032265045776373161030343148406624540617337246050201400871828810906575475382454425476928216738716255175538079077531088617952347797779882700414387542855652749890323017992712793723732594193622742637741730758828803761430130073150859942923450953333245774314306419081209611142458688494641891785978811775303115831159360405191510572213625801169799109355903469482169565335632975108195062977519370142718736364958839828026803628412959098214530273569702396854063016501050918029815817906453029421548046395754161949193540302244547571608895992003144191194883319725772462843478198249356270509627547209063782947454469452248306161223045045325602293858732227070984086854447841814722246163722378401583644201205148244282697835651747056912773757832693629666683818694394658317973464552151649056541991570962171495580717794199251791974707239577540438252926733053716546497724296883692666683748861258817260982404953318755427217317483680246630272114283506449292120756112050828797842217207234212475830848357378029353928327979852202103019364808777334963708104284257696698595961866830915472214234727052739977919643123218069308870340882075294926981346583764901194893252584811047454806926827928137508794798790024605601415837487725118728763399520016056791092687892681523200985648745715180476137062792327361544804881801162784353650087630933651562111265937285880369178065123978566739630980659525279829059929625217405844107331840095046045615694909537264869776235239013081489523650042138597631628935103640427350664948051244780860130091172989512174149085587204794918369626553384092225606911559779822623799941493820037281476174372502940762727226941775911619273613161071255675355304792183397401446729888035585833240792267178962386768328164533768561805854796701374471458453012402932373792778721876852930498000907531555260914325743574546164961954363325270258494009005908637506689628400012157814425917716745615526415166485065129577730312892930508741089915105126105793619646977289222611382914765349573731807213595077786456631728658886858618379767282763139954583180278413137806385769479728317645654246677687803459316657356738349474007707619508767264552644212143206228132789702277797912548500619405618140922669227446358230778953774895170149225348484981867165517973421751550954342665902877610468222590158526943692980728661192389775286170845662544391168243274370239240863252475013761725139683345653937408724326636422580893954386275707654238538234290487500417883798813804794046131451714751386937930605975073408090439399173753374454931599605792132620074771199671491912933658117126114799801952500201172860280322890300984998134809651999786512549282313512592832451574602698424999652467546531025997095369674192641555675107179771364963995725514413193458430262736515433808242151030027754657640214444345629797171033316491451520559324915175404488489313369260837616896496938644663058150106183589320946964816895266630565274837170055693762612203999133379786519472050963173128274646639761344323352235728302752229607278478634765938796134489233477688905734302461942402611490116662906307255094095117183592524096203677047418534495695394579363684394985092945683342788980031479137525076909222938165812365945151484367389153827700477398911827528594978635959850715218456533872483072401506408272576069696242339261924271265536455207198746875594352717271791734723415016163973911956028101289067740058995796221220295282668970154132649046193313855160909849079448519317196489872746070642400720903581425033411125239494809580965808641604752151563414649401941520563757573474992749185857868165324810189603816903442361669545772357852784490536395796109259454215858538420615892816733373005592087267589858632262771745016282906212963617917869613122596915510030222336294173867904301355650835666242973278261126380524276595845446361732153562001892297750820660479303577476607100379021649071489140820494053219278020764885963440022194501917955963882851447077415262990241808806110406950792680113497022903181260952591314492210193410529170056305131536452218863189954245295838869642101649399953137180570052337082097319907190249735698976127420183059347561095150916319881084589353882998939375070726034143570010925145519327552072547061129961768863945347943582900777850820279303521074406822028653711296591800673257050819436886627427228041497262584111030406730798086193307754045593027535761259596998387868193554736693150938818132261895465887239577413037691153461218697756131354557317295924689270386493996396524814567729121871200204249615426819490828142485079976195677445737489425038732199512995292838879529399072748838297604252001222687249935249912309940238132980939901231714332193790847882681963599659223259689462859217110394929990570401909149115669462185901705153599373356321660119791088087338581425322075824346066529017432460520868739068024660610769593373596025513430506767655210075275833073790853921694060054881911868406436402778705821008150594042559374897801537878137772313568766641146348505763795576985050669085330757172549284588853461603517491232361752669663390721509356807483019152048501218965322452916150974678507374467749522635438686097890235225244268259079787276683236158179031798045672078459822040252839626592997682465650749410077690071975349050610792259026717777726552547097522890235288549576097850276790809098700741445128972175574154693078194737942689655168361515248581691697557854112391266028581397610539804647579030460340509543920568483721209764617238043189526036430802206931126429382547277645288689583340049070326703291238089446092216103848218390758909155576067523688433560641084652232637282013869976317437340105667694518569499623442351558854474714977713354310521355997269924869329362396753525337844962206761420910195735200588843100721992352701026424135962434802537590145986546257132360404918840790504991726126160357079043309781773373391959351929734702756295438532747498276622626286134091111595495787484783585340574335386807408608293640730304216796625886594317205594331697864222397502472857421644356722919519546722173320257905721268722633709121271201556222782727262030752149176636547234534339424342842172308458160409629495079027505032263411289338273673872334819862734727826700484054369658473678192157779661157609492504774552386120643260501302906588936059027973156618762010955503490450206390535831741941052268231113320582042096972720497006771517252684923640431698536631723773677860151179244044223352081629206391633827474378254082813588675476707632887283794836721057225581082391848439441125773466833647534510131256416158963177980359355985376608691817770569148447998232826192064095213946764521384098959495520939773899442204517225006958493102744195370548301690828240962598464838076899167721395850259267941604542217398732590839850099861599354144763876387678865677706392352550726450609914951157128893881095452470109579000623300468685084383541041935489086222487168987390651863586158618975848218117528483338894425690255888030865197599255535165077677545369909332725721763263017310626651015616762381132846098379660337880581240706035448641068195539425741613114227025225149788943328409815848725707291182003761904991972597079240621293883968319716620197496281774982783148575427470265497269181099619628658273812122287419366967286523026201826050262665361101578214741818359126558212367424482871382338492555263537885367515030952617563497955625011285333635299334723088692513436253000243676416950653110023124406523904938928427554669713724492587749440148407918975795803003449007355225377681221841976206167460112009033257538528929078227747381105279917561832429780140231025841882826577579570303983377840782339107016282445026506028477981987703029337894505479228595676628892132875171102870045391272218924723685491357762268723192283006856220704169323377595126148575987481303663802675769071815436771138985541609373845972584570408207873696332115865096864388742358452045316510575417095788348569131675488814486526964034055776090140871673592925304528951826715776304223266612794107735804375418362940865799058768113531441219216195035008465613938261959160796771395753616798627734719639747662954832119579176464664094409426376846784944127539295305422856522706123361076584989974847698321227542995983998422455814375695239774284760673154119573165983506579821974825766639945984394087606441119119467306037398719747065242156695951738331267640327522767157688637032760577502658977430960567958013393299599251473638484451222965162133306198287216761960501776877947848703415638500517846222522351194135476431651993647603841724831617110835133425455725788588965967636550933552709363826789334240557060699087331254581602373896434840526978481215148357704470141219547571626647194724317600755599353054237399069789061918759053384443410446146191472747517322273334728555184193998613155206713466587400081082199126678056354959335424425247926328382724564673801788717671527249852657032501122560642224210414270323401889937976966018051189286034519418547035464613824278450973158500743398939355633382781916665673844889219334585915938048964289090123026643916136620487968419718548237529929954504027170343669554897149439603876614145359742277780832089076889835111479138736981454287221743876046263427740202435094241462833118583842300834484109520716564042984941669221072515787266941114098131449685821834476009669850125690069535157450155390116889784391185504363742319076053709696443100666844280557491413347094130387544152759794641318622063109991307436406152874351473995086651217060036364592471142069750581704882452296313467909961822269637263251994030039752289356297317744800902699538738578615771120657726376498618502996743738952491646558230859188778114509901157963209443088753003858349469406470364844974787627188489978044287929582989902994064846311113405033144395815661832510401821530631037379378673919082661215856402968841295688035861965454025074446474443346606091973678906200381832687330976832143124938953473715747718257807546600552599624387014937249767449665957933892412355270657160695374665051688718603350992194016313556115492283796437498683893184348642171708256321860574012964974621181609672400775622367380431761681989302268490334970134886054525922675485581318387916745039649493021624212375675337769022770789662385866797261780574712930805198053605415789106194460772867322688744976117304868890988066828006701048553724049558029002323876815187546207725457491146007286925309609652084508161128166535997694676493783961632588254273581035835062305414793039777567994320026816354691988625439425054597035470881239490308130780262317401398174755740036331244278353083844845032724110842602195419867166119174730413750947240323793935338202320625431039668853106916094397611901404262500309821895999384973367919363264429974442518282511784003454590821597034470363198396803326007697221886356583958601612328456581867288172838447868690234129145472742505349009133562424221199438976213051468129231393495568406233574231716568963295193021805897412463486197126514999286970236079127388733808194997697912908834455693022833988089304307912566579569835762841719303899050397655221316141098909203843036177143017658473192277352706397521978980466988649065409703919546335058846065287440564844692248794831094757343261739244819882880072558803583594428743330303340294438673392907532653995501023100799575539062413977649570178928165117247617037412375724297373183030482102193326172676677134668526075062992868123212171178211464380823322807783457531687221649793820174938979689124451653326113860147567045849718110840711203285557538911426522264321598262096976533411327697688546696574159748783884950825841709709884028185287669799810374978526005220939380874387853571111088795928075274807541523070198759030862330916916206291271417226299664969637367059332509974830727150827545636112029276775986627462689461943017862495574098659278046207717909412478623773993049800857062698513856225252375485967492305085114364671631546830197007913462569228296574064636366975013496972108310572830846717728267735738587963276522609080151733653951797892572969455631017665295245759192188362153817786106897628053775667830045758553996127016259767100707240043436150488989133825773847742468162301337773231127476123521282439678500818843966275190590614121375878080498854110302367758842262506456193917486825093986902228988637987558399534844123931097787917603763211735081279356310641217727938618496654772301141518262570707460777238028299240204243851791071140377361178476093861579232243497380282789394961587582447547169584248180013875291512003000456903151437545609676428731555880662353955778026230410606337585091804235194294799244055201516718644612740884884526984501908533259897860040800138603198872265212570908634172617463823729060280380478796441553917093805213318580135602569753191953229428088434970768336892904241134083151427242170723281236851833720454370649355064527209737598262671207218110470413479681370218227388234834340744690626709877208582502924407884949940610993897531101950200185630688016972514808073231828344129460583268916589067923209283497790560210825808999377904986668373754631255800495372298304865235975634008379062747012629471556504420355497744593358353882793861801388391075962970885919569995695529577304247789882483580488462657570277910813375769931217105835583296570492459753727317256116940546516726245626466281069258166452346296734342094093309854981804335889117314391544071194216545721725576994794647958960332831190067251890571695327619095442921604585236025154778082940891668407560193904661710307070168162573478374378407388759425528534130043377777607842792090791352051924484345725456199100639181312387742531955648394034816419495809898992289015434108329619408483515190387148895832536717027342913788561389445445338072831257192563378769916120875945247567511668925744442476110177251759147675183508691215411197261266305254226512545758697046476112675454190939330477598525092299627360972028510407634259153074249397354072995900041297979042277966260420326780342172770844764369846333936682307285320118325368832140976947485157720040568847439650040219599523972188699746691293434484862378336316792896337188868923134911513608560213612422900125119608770844938254439212164130350097905707511631362727548796179071205688866273097708914049137108134292983220971542650634482863990755575605779744726302711502110828830757789827936902732018333415054918626723654713865871288792936553204623784116112617527882763149985114102162546533031371931607075876443649053090392765382528165228205784033396503560930456591462357989125736418634612976953574195926180743540400873113391294077178397192614797109063364315639785431034056033994198201016293475625380176060308761910745855324392085770665864751347325317483065589591328701909100867282372128638589591661915226929323134653659315417505406773349164291343209260580455373419502218492013567501260038395505471694610269515804333878364255458280687841780247407772098296382641490895049084990538131594886171050876800888679061026739997460387980738418407958656224511479057465592084862903409185636443205807765416282858788006396031270288596951614696242088778907217378762090120206226464234867582011692456572917042630593457975126747069689213296243638923547628097006318654876391266781987561873325568097608827124959344161148797758549086860906857978768382467608149185219669304813552555359223342249111320525474126092030227139861254866102721718822229682462439650007564842985431529692515212753837726494896871141839674172148680887314164759824516457592146893199802345406726506606306167910362740935406491582178975084792909344120436041673060192986885525363282670546299155409446938617414344403272320375446035775105590366636263542351182426601858946112346266958223856699898323370195967867204246732984219451707772123814544467078521426311607598995225729287395264555967450338759062274325475867931933077238080368481996251971908550541960823650285104869609777629930923415566336091981052663259264768891662666022048864517743433453467013599654995467962713268548111579969952421816201371076244373518908756543269664346497861189422136381641021146902204608901098978789183450761945348011436754408960075545159226852222196840428217209445132154551870770607251264462984649405062926157538243165786728274425080210082113981026542515598760756455640440661769179537430893608260341644567725657233635072661978067446852501057806508653381615639658162140631875122332725185048001044851959665270209441604503334916607858172936523851030120555811366005354626763410996910327568797028991483537489559276653771177692283182486686799446267688182684532890382884117401382479431899615953070279406001990138389128377200311736196312329125471695216969666401499806024763929860943150075391951732869187535637892334807501212281768371125696437918253451731305745837282403518949220738511250137486567467268657261976334562338895413132048474363766939144795551799170144283910839487852464866682331852670932904822602657848771678589356015014357513158242777806800346171893505849337915925453884314086406545352848190463845105713354443447771711649970860043043031409756873257749726984835173495196541059005277875856537853843160066093802090706280430742581860274335651768527605968049923565585092674501788617117909870782534961361934676279279283645216448216483248928886552872270782302975960419825821958807932712342709917433929856800370908481847649451280149812666838901208408328873449193371628950290018056145916756475080198184378203771821703350399412711856917192710891309754427877271583854395581424904707830608973898804896505484106992592407919106953410645771241293884189606630769068457058115365365791219537984921080855369653800700615993432035365570680288867413897722035168133740247208560496225794972569554095032345065204523046808787130363129920117658267558282165431578318425073004513186688074841419885105154149621631484656114988427647385383152892414296390194074151599874579742869996863290275376418341545549408712710077023280559736752804692447638109445573771412890059792974385080996216477876710593306260298222929949021228703117606056172226605443088648773310020117924058036901481452442696157164903726956966031319983982856674206361196985442514506821396973713292976796859611172272724060408193961405338812010361414921518991442429480896438531774586265799138601519964155296980280679002010037362058983747362461573119734801042085959996508653134316200231898078630761040348748886922595868322724793262402793127024088042544463563840020700030623307765114848147061909032774465112664509927029181248826367523458206331894937211268003672637883781416595114249288566939281417743342406923156573314152896552778502543219693458245514647497481864863948583549605752616634534428161556975850592128717847370629457956058012890143568595805341441508176576593145648716877348004721063108118268997936152866798002150415572741227537171911326211225378256576132189773245958349816702069469894767271914436985955529870190147123748191859252063133428486356361341548966857445118083692837177374460368758189660590494403854282216021269154965211590023911513171229024911255770724578912046284010061744448091461826169743544520979227004499774645085308635912128798562292240108326456933525227203057001295590853995583212394440079036183358398406747466464750985877268109687729029057999665297240323443010923721641949530371807586747547410412825521973944927405273524070620098155642046134172941110156859644962786141619813446171821804558441343355567288078018405860038712227644983116132702590147122929742916131334218700773146225240187658087240757860903365095305700647629848617242679102306922877910438596113854687261575663788346998079865406371770089576881739262488589073245003281905152936027254975796895558845447642497982280305888867101055486155631347943757558341488413581598935692635069803117964478737387789447300129270227812450290145896923155546774848936610428079216835137975578237458905642439727273702109363248324758443292053179995184545661004031843591824674979335643994676270274848206633754509603965385230801556916799034347018222587080479979899727913139847325414181557773607334378989880671675660948022902882880068076502045192638153998639414519427237716220573606415215081898163951253555337686978729085483534689661271978206617150726444542476603364286003170343237859799478043379690755833597548550951360595198937210754714699888849551998063979291492371418214538363723875875366892748416570161841358360383138179722291104659380654736772273899510011603116300383943625641636324180518558693198437117174606888846858371880823955709425823805526752622222484172295215336570588760662491612875483399644259922237012442833069374636581048283457935014449910871354779407116448304951486138511916267349568090279422471875012891402551493069943124030685269380188072703881459188375659388407112890065405051116114659119944202421920389779338678620876989205901414301997262861526436929563643247319129482400497916461254004880815411410496013781219902113954913210905015184275442656356418513836076641187363429756852077642480459836973770906401067576818966422611863771023290842914349982416229467286863762303401982983933857822789294197739911483132192070202081365398160992225412023870113658302495024141968305118707432460481959310691411595426421908409153117570596875872732707098702617472529075489733872190279276168793300848150113622291904594560374713220951760273378568563629910767279019170578885866656959702837697666512867516913428943736208283443013450585719542242842078773478008514457812363996228080604381433793106173520406901876225106969369885340526406727621358461457612659758758699397822292282994252744934491878105380793806217511001403199537488232908925274424296378890365959933467867461037233464546978948920982882088385652787539901433671284624789999315114372333721061005792059580615706901592840818234321467726336735423703031787847460245794453582004114633243151555546342117725461058064026983171750240119311341647409240685659984905574380667966973403106393732737641934669596423297709621302294659242344160612152458394406886991647053582692725498188424864230057249402327793287158635584169961675725914977541839238210564321254523003195368684289792264782082920455318006565472411978037433239962367141416151135855357882303374657725919378992543695408424716721545121398456041992007668320114479700529282127700931413395218604400624456053597555223883820700586659161941777378971717933492283124767404836857247682941370559896205023411523197628096168131739305299138581074379871591862352551512278550541600216410215141561576227202122226761949062341276223738148252334951937119092298973984837170123157695860045888849456667005592972086963970126889314257295341635680693458412837628565122360250575938717735419194869922320331568230478637164051652617806886465604224885925963887891231367689301832222043685611323791180575988444862120689310186154250525857696380104660799226433179794180967377640720221858747673138942953235930777956511944737674228883262950907028444606437429646632088492244606301809685670588129333892580347696763008616558194557473364288604590549769420915310689062283610519887397640950233588788936862688561827269415856577910533850034115438740128457189783809316194382460973756771971925226817365882674977959718576596334968858201960175153228355927270576707455883968957518494384501896903570987457124833856544943759930490287225045318928823403893710406189862968699534279218048124484178918708891929574730775896771576082130309314134500729893559911289275882997252165238976906519794209373201274123283805448969358709556662208956897308074754146364952679214994817437207934816308787756599286402820645195180874960114094746030569699272170358581961505229462122827428084530418075948260999997582044244092084939631825146303398521848692846787339011014835936617082173644754357111360442347415870137369914694154564104340053413096047673965475474681545104263252140764411469786455532808198514614894884734127410785932196340604585094543538980659126559395117861994381775907873263176837351160018145605924569788224725834743596590291316933362680160880122161146420781420761344884861751289275256954772074060518210780793678868310858267533753483033297086487203281377023401674864068614350383935974786732552966383632903123750547903081247043082893932283704873400522894196613027010330140451561178498851725918799058189936129264647750886433914007861822899743959796078313009078409429920918178585500726817776457703992405463393308686588193644093214830774822446528202151380251832282718414070794661925316766966483716432439530658127067721806887330701722565753384136409337823021882774843209896929820236640892120114061837841229504545492539597556919630778748161218069315455006025108709267639947886215409833931829143620824739383412622248529852727792053371655365194292246797861393476041932234545853978869560740340272483099054411439819570902590992894953734405368595786530989249957865410298159469715990414219294205403417471841268844072376214923756948095102920547290796805916979020408788798130318154998016131094021170675714439355777793902064867947062511789790106585613485483384332798011234040849636347271643769436464133161360221288040259236114495095324953259954184659740200458509645804319772586217247595506609730443216722110354266362851397482646254920849774962165037276992598953781162633407347848296131734583607891807075204724224838346069375379252901480613171354185031443260670402163183318019020981107095256014729787778054395219297049246922385191939621816992944372147401789955450611532539351665963121884905400009390557696135807834083766212305690310525960214065515554851187176269389943777510662483440430884020097854612513120324137296551041352107827396937126359967423202965131200295832607216597967618000974239159252147138271998541727500244454045984492280241436929453233996414210523043454010040948038420982159666654372539993108392873291279502092667669321777170362421459070566233109944561209797195501852598803341367431637965904828112901171854137883768159954916782935862983244785648021850527281227376282521858942190000339885926913731648991695000877260320796849166690664102542274760669653986846652494137476333838323882733387076708677033725111099131518044364430651824395668342118862080485546458839925506523152220749475343696492742861962472807799314682171749259808312787958139994283171913575854248995354870626036518684169132371028274437575300347083888058602175380059378624046343007166710406518284621638231966523342472090453983884441995367054974347965542063789320584375555364860078224494644190274612109952609061366058560725458550074975464262058643866460765297659889310389955066343872725188748295111181772234178139097472636084932860876267485750154393362266629402070678508214255863748431164095158153996057028493139188004773774544107861386526975315571633423155629417820157909987917341700954058004046028176095845685978604579863841156604075292294867699371423714004466183937679921827399653609425021748920962935978850175479825874558722827810797566285762182989341940657793538817011384853443776325790135613805319010202129433801929050050007211077989235548015876994583201938175150280638582648871086074479760791720724619192206208307424753298494554745375071119259454044093217141333844072433896701128059130717492318746230838965300142326580168831322275681866547221972155115382539724539759290982243366334760280065996218841471137528437847948353348844876743835853830165072272908757719279999367906853879652902185884977094995560930410982640041675972822309498454829775784883324699314824983958408889343386924359804465125988431301153959794961435763485441783154680956822781003580686267883323504831040406236479790231307206013509134986396861242567910892724625335847558004650661608897388351823770109713960384956223002262246183443163152064314317149535067314151534788203620955641684365923965411558608093221007810422532883721264233471348773312974616379940623816569474209566122372864439678583196564551441645530583379493741810987977738437376248681457589186005327460285651178103684141081037050391527431897676750738764413822194221029705978888346938470682259865660787666601870465900384288561193389638101972066113695220040471307323765210547350075763774544589395733292964092456770568995770689540911289160507927263008224005608045434436815106720436752660986781264205222189167602835991011183709927392693399378600094693768084561887140765020366971047052736833268527187913259842351590338782444901990592667483799585796720566694971380555018203832856862784802768084465775962450325637219676722383858543807624924742530987806611688700466308384557991554151252304860944902411766717385790932883211046244495651548412088008493948790042349044717095545568922944535541217154391310854021321090193764693367583990808453204799440490303600745320865691745822313510587780594013343968018108819928654225609652264309523990549239567715323411550366901008366778517388103445999174930171386295967522258161582020482632339441357747637272410769422383240081568385075619066999089186907183205495829304295766856017028655917694889646259319374459824183384864239748950467994509865952966371116185893693551389691336021470284719527595973021489918069417361220855869560960926789234894505832349842784334738083111795697341376661694647973876051178809713966656432911997384590287862565088681486207320430143526346080121317165727452831028424018013318435331419016082341106248621429334979335134089564751872796935244484145015980063472662497881794830601799942859274791820946137038789631865530833516135654052820975665421715689919410676905493269693758700254850856305972882340024164075628592632161600618872750327875371172880522387983952479108571567036554887705417018720630217768886597479701580149519700175996719718309555065896728362366025742574855859142360812395662059155345741350445031798166522492772909579778007796367020322735233521177412592774950047133454020764237335829941786526074341474237087512287976581543489759684372167485809664696323282920253442235015223701650671769615680430663475393986577287294844277957872913156704752237314209019763989077016118477467350970644990255435385036652183617130947931345520401387833095539616180097819907769182358375168485042559563646159589192238794016618330469662750055349864625647040911758647976311830063183787761503529128788192434420308822087089893521084668122891935974576019705482319298849654276332089075090926045317287823132590789979200372179467350695985268862389496055704173057703164979392975054828598492487201255540959099722649317693369592141150390661485737480071615882193862212585690440478449297716709666563156150488320241817975960378638497052037099408027174891585543078048796455330735686631162414289440740489711088593850578814430367208529336400730850486710406837739038363460429391923157530708815319312399814073358052648171591447121322229765038358728195233186987188811022607861158147054729947937399605014820144146654584180191002953934483620670775240878164550885637272026036000256260161665424888897640453491084385018396940661493976530844761602942300751455088617388654770367602420228336773266642584336591130539036195441562662056620193821078846343619641235433715707569375133496067312817892589356834648794917760644067243497016394859595803385794401370200714507569014679049196412043387637724382700409530402223185571345100267640450010757086828955943057691046649590123749609708406069554209290504737945437302235532946759010220782155897791190314841442497466207526338405730260847684363972371684536905739691526111010708885596597556623139170826460207979918631997276291585063228881440034024550849275416577861796236694362983360126072227760818375778172812044989483578531418360739432161371455859026754804951229770967655627446942203331023073518320627676731602032417197331108586494951111794126363366298732942678459821043818492429752481310954032242593983662194847368503262226288537114342309830139381035680578598513968815725325452405622478678126184307299935013776504772795612894709872280361593793815572580968303469551531236204083053966175299857231714062655544579889143062060905216844871845007370606857893770940277875497454498063095432158498411996700444189117135778868962575913354978862662300827111039945596965066572778329796693508539193111642187344949334368332994722436437668217088991967017160353384997664064177748843631723154667911479208218139318896107388975671525030575736283902907297796984275568986059700445180116849030339328439222421513456699126776062983199329960552333827180114380255681518573897425664639729309844763900187258332657369163559410447077575737701198343096695431957957095524891728568267640476648344919834883782349879089662868454057370213779312704523291909992118845459730690711389621087635133299926734868928188265185445825073036701776204514456096359045479228415311288121379673763658661631510669168450574979524120466127040766080262752785285503978736255749504292500237237534552134125998193880423571238429077003721393604810393482099091591458475757318821009348207482380706920198087174781342124720082743395681071813861376218045986159488329186322883515590177539743833545578635483068953563759419269557963024062808394685290215004213877244131275927813417584606366851387268588180826334730262716054249067248534903195983122837133559756019738540220799767060251018540090416517366141333429781082635092000659924759252704349436316083485206640552296553491541563309294724201638334901239126443727616333743187747068698777101132696898425071909531700689326568722433944165760451100946111504284214013492591006059363131365535089117543238735592648584606785473533263431662807354407888326665187338409473875590015996407087507756668826714528781034552578208287438405247009551693107525607199351055068556151736752471482442739698765669806232733968141616541254947068883559992348375233729040575447283472881638312607894841503741849749676727388060538063195570417050944709309089362451460217566539994408220358621470705457906467386429559818497248900495704089566312210154459302799118260343655411974988027099924454054922106315351611287181431316976647451051206697315088973537268215366619196777225656368102699464378803101746639468527394010778825793793211756756181358110621314627935312218462918079943277426690028670630228328524596380831249773231175558356864666969582689690599622322208128838738399710937523445540696383866123376554873751027845755897770279275271039443123937416370369567111312199165030611496519792744236993216523222792975184739363052505885609666265049294841089537014145887876117695699288336920149355708961139868508060797971768602870823477832178908144368411085864521078390312903009184020328616402645406484331460674032981546067285968941889417897403861771329089686682832822165674207247055324497392443016405474280529507683825021946321783110257425222487536406353591195549706210809086719878927006714270397472360297657956539464796437804653235383797098320847491025460832486793558743446228333635535374758967941489092923654266674321499571949728856943860414139030698900382520714669311091053054075645230189219218953541004416281553818984593422683709192231123671495903525292260765460659718758347798727750394983400949231230308093974333733622325886225943452100886749978856438476023843252782874361697750392695147835419780724082394243164344662995967330987775321491321575634155960714823562658617108546079295424904599387608530547289690392534998953537943893686018036811758389502936711630264911380476323337902998093968659963498822335825146890088003557644529662246019974430996101424335077479369670895188371566809928474650369440081401084592171390166917926816756418630436931608448730726198707478375098773208071291537134691782360290629592704005696583471201549586667456471574668826329170589630073165517259877572836302283815134764179358593702680958574930770527508737909535994530067072270010735691343916116165132757265739802939286777467923791665961323104699386657284369152619131381457320957760066953918228291016883558810619955294632496582287754445093522389149122400589932785398154325763592987683479510882725275093115731047767736747596794249844127361500617761703160053821693126636095551639202233184766213170063809712829200322671000517839238485688159910027121097387404070302482886473051809995472854980450726635439526178327779202606975218502345765192436717339904530205516919308183356825161478335628505697474607772361114252429548193199389584974225134854562110712493944031398539758580528966913235393158817590155688122675916812193693509692071485145629795718709227518860153449659664535663779907299847046529969959878383782257037085948111282536467712958485209402654865093836976056113127708394243545838513266776532921137157830925934589851735367804461884328130450857520160061051664924075094463450244801837428748685310374794392053310362616509733222998524084099169382222870158669894129879277404613306405541061769729578968601727189603330071096161770302776134440464036345995933079997065382903277075364936799178236352588804381138396336546733701340411949469296326049478294326825454920038955309973223610695267823005641120765062068786943400491186123504818447196720204279483066974890736433355100452936319394647515033736668608470104334526330180491196316502194928651658567782073966596719817432534637947914796728948156615204515614920824410960060006520815520692658237693539046850442981967452354578671791996540081710038568583684097964407457443530728012832577758801998878944111333298010315465885598082865987244292219223773768304452063346989199798731719297659052878198290889956507196764152456143207361895497868767171049188925550125864609462344302817173472458863726963408606101644703019307166403338317138932941317725716008830959011150575746342805579938046150289979526283459841607767065863322466814620850558810934355381140035230132160341724184930155796160447339423077414595904848937811840913674715056548131775581850202697915602826523968591378670854904789668131917288139367576066094335673993030052820284331187942058233477428667446909745783604479760515475489037209788429689279058789558249084577565875727006559267809413266020784664829708405355495182450996671477727494337693259346239524675763807221398367067479455655381179112348223770742276812442263519074422287553577439630829961422172278719697412041090817847512117027629120945643677715371142736132598203853646975619214140949646098297327261669538724788719329649186606574978693459175257490124643157556412277693133847287696831883403084003084854987252374394802665760247342965552786725839398765528313014100820136695472314896095866037110111288495647307916135909322078623727600598866624725532765532749136910020228488817437218875273064321797921062650187030647673583010146980930513376617778820037556006624051319843231186036338467558303181614101461846638161725832367160542204206145639769171142248879191758538953115378847563352519003808767597993212854173721890064165445082507339474419232774445608893427183119044394164167036598836729050677960043546960245014036446056908397999679619983468403897587481158721468270511716631302953032132206019004458652846952078105572018111832175947063449776817365882383691968975366456188456688248902967421643522664420212186123328638632341841327217675826328554311342499058168633662726481270561675813330652909147070283297540886358703090505489922423476267739335683077324871950379998908985196305837841194519525935036245448349779135429712811981686025031746182360014627963708465695425992720913700573886995384764418387812765413800968721566600434836534686661849208403684088726996525174293571920099724286169144132130587371616870401269638992654118669631856880620676332020475873811591415076385009768283483408604393627234570983106178288698300487583382620327157965610767070292614298421602395120014305055802124883262742368653637796972451364091435576877800254703428771273715562887146698282654926311428623519901653983022882131583353089561540243885375382663557339847398835491919334970961895776587870789271141982286808690398051103821916123397103151603428200949312682235481309329210680071161311835660599418235905853016845284011801260226882336230082035364091820370083138247986689196816610048988219350945071234370280195606408668018046843654307291822786028720203118738338154042878545220043242631262185897435657910936168425043291345028098142071969128226606663825533981897812552401247419632149745530088436513001793812962483280519778256018884022391619003417710560748484529764812542653444751448607658661548390921705513309732586178966252980555504396135668016798841528514708239211924874041453241347731654200393486160766924558358832159836704002583498536312705456012565120922866924496841031997015939976240680529917387161779720634811852681047903681683090495457872712164867886413092668281312544693481627558209085623133312314796498829033349190940276047967743589686694361093825403284668945230370626799683119005515468466924600967679799773891422731728826603694254173204031790242916156093616420659505157955950715548294864508772353891356788937323741147051196870764475209422104355226707154728122790197862348346307746427153687363998862303859622849657159333665144874220311899613708776851163844559213959755204477381931874572455267333564486841749372536594637928226285474536597109372457467932326456065381863158032128833125425582486160033562553130186536683840302356010350707083513528271490123482910378355026733024039205034785166808554028099998390947336657422110086645043978908615000611843984606398250783392826184322575253450535865923370252095168050127005253578603878978560777620761883126628389278629265909183200988266810502772991369223489191275164801055876963842457359863366157676140557388122982044891799007640201303360853370971813764035530408059538676319460589892149888053356553246639835741468510825209959695158467909431280397882741393693146054344909266515490940923810054430291344747317535848831409548260048664899213889360162386990379719520705532274558876074043647996245971371671228257788540640837985720643686269812816132775736882342922918378449707200744205823272433259999281066788093614020028320401367061619722619059152568383642116052274407914216995817435418229219621106875699160321991559134626738542863311937892291671835385489980752764458681108067449491405844204981219316858852874947845436080717978239531928582392360621867812644716355146642688673323726905770233822435227022424682855183973542964801820341051487402360155258255525507607681149711156474199861677142945556017091781644858414098624893245914825797575176607612701824077805885384605620930346590667605390245854693577289858710011793178045594154977111130676575217401879122388671487970385980895268774298522444089959767737305939207930136696365254300238573667583419001790168569392076341240141845713629535312696912079059133127940261990918394840217625900992803334577637549569989149781632680386474627251556571715780724626502769691692320608122342219739023453914227176686537907652164328550510358991236505260593452533586079041696623431139359419702549822006002241644737165977707376367911345569647649717014665878982026907562877056248006537599248020047543866474918914358786019125973902740142073699869595006104121535771341355959925623262592351484739745324757177946796198135528190591543396489003166849980793948255244254593174565813601766408090812275725922696367945370488181452573369516027733615834990482592465448241405232602460155300265319300490179526828461918378510984069846630563838788489511990709774819511499924408017969560468764726169312974163477099429394637128623298107750895462559457166169941663386417030011441383631635070902904237393556398547418940651019934356632627051700956191715132796670444663406179798082807090267028759897486728043974225987915983602541506757668503680800280015326589810439133333762735168067645514637640409680022848304602525718477915633790345701386249841951326465582333781694679914614630523433037525107716782974152421848082650514279771285008339443359337194625983130456447243730117356454437677537534083264731842614601076488844944999809740911742936835964968533491548520870755998239437356902991643408192965949807367322918807926034485681181084064506568314449005158589713222430347801179361707591186313811847348479638425445489102556385131422336331889481451512070151327133149292211617134371316541247221448225059855555813118906269846001608369509460312879423046357327515748071712923263019460682062394232355714814201112373210062336281241546166353302096383949809642082917098228247847361421178351497862088470513970732645165422307857570224137036423864348308108498438258083508214843584853999010373010621415732986476864682171872746363731688347014110069118410191438918582840380543355851970386239321228540290732802086183143020238017990195337228785882165175813331425239110857556198537992824771944205852533782098008599563474777064865927432069556744641111256245956350048289939387208813560762021991066166172290821492065504047216207382836385708925599212482816127157337823264998660536874230571023744808300858158541748045625833454341154264476036828978741531493765795841515842686147378376634460917591074521865812205011598473457990266831156144745740068868110824601641829810662789651364383198482414868627603192991064544313952973413520526638405775919172990766568606030592530849716048368261867217561906987835135199307728350114123206529356882445555412554523766624195632121396342183731777999036411613068923968262024737795636153717535201836176660981294664071393811235775746281132677787549207442542377894676591559556142236013996088079443224671540496326044057938024511648776437667415463932140033297617862223163033884702862723181253772637200349435317057965122015145177139099347769800695860032645452431149162446061510730135099391363350414743414662295277084748064330001325803926698661696117346985509597835421298165405169679393737077686224273378480762507186130275029633042990239800569647458115611515293407647969970922021083290784326945114121454964279132525997153182288994421403390043559804280809106669201994955757492659597795158109424522740204347004535744543033180793198953679634840771567692148149280046808682653365848468304617362446845474458828721170652116412701663783012182972589228864699214556710803968724337410524951218805167960347880160323003597973492243044056374793365251452848176620467039400692469560293380970162773199789004281924619214105302148336566519219403431384709623878321966413287942681459013987051571734764821135590950621576351135769005282744264532131804338129747240855452502292742296326720896208105677994825716722549943093739842248923846197455664691892665955061085783531531172915739950855609523230879011603851433662071813414102258466612310661958799269116412332053700249312450861349883066147542809274274522996758722210320104084853231383655072149826619395066867973082847094334994591216811524456254584742424507374819379924596195894776866436219063255810470629926704520912915459263442142917776334587178412525516572024233324643636245088105250261400282078796586347714707102108356534831140584011802155699043035266950961997077135558987914399635008423102956611471901447028060681056102645305511631864698604703609805116036424878553976638947521249496381935353378837908412142170295180349066114324864285826768341959438431224758231544649403183111622730923014353872690194035181971012666062001774934035513654322800685683375707809457317711592298811417322295401276864744305665038719051558313870725762053868261857976865398534330259984325983129813513794246561224039459029278885873023563241325619934337503104206126339266338871100823282050648211728591681906663461628000324275477193341104123772324635096155373362570953464636428157982379234153389054200194924959125740401209615560061738540221451581848376316082856572045639423871726227957312139115294247016079551236286029459429941707114627757958657115268309033395394649570702359987935542278210707407336712293345716608753000955026449212845770730802463934874436460157949337349489185854554278852123588437742799191092988363423373766355543755292378560457967198813365974657675046125654717280738091634685744238599151466656356561794201986137199586747974011520089109843879018629435279319745317244310422538101512870993841125437095486944086023147631587621247766739246839616931686295282849218242071387391749547456690817135442952632200503982968344876440012274894372883926095119108177541991028282494561412314261716347718471383859101472216708823054631854830868241413354046887928974142290518284429695744844009512763747741128964625174032422684947093354948841761473003335489971827786914500827670786886113720670922834629362176818083795169953570075970569369740374710927081294837187598333519145060351048241420683367007429325699294703229246464446278184456396042953048020968278214357624220665177564811027251125475468518102000526657773314645375145604246557641407664773727080594386095533141304642653950786128765673014784355445995692608174524016396983595229572452694474608149220916164186239538458646937698834008824453109382044163266604428769036767668801466437360991426976818706089281295037452401957788022527587416618260918275189849776733884117316638115152784176907208008124607109271010788441052366096272987963077963060394391824305191679996398461453987818202244128421645478319129751767440989325522091544882775796475857704751069943808844916797554969604408556134795053831174026492543108698500139590039310575649780755152722768254589778940263559962915863074971980607484656551411072921685369907502526068784889334107630088763639536670908394475733767070746858256682969864698687904031346157782354608128425076252178865622284907485358116429298531107226903683021756073115629531993778030450094021939955211141146511369820663397847102176850682518463499667459911522924045372505596019318120600779420366824103538321077979595100324756996248447885950375435888287757373673390038982130995158346473054681851156624038569291877412754522322721695595914529798845850667214026894443982118507951700164177648214820299318872666930398351796429752910052892861422006228925138871623381486012106804583369101268996357046603141245034529713418103361152769381306468406421507768223961142698152165038288953834007961561858544440752501643937546587241136342562952304217690769561348094109907019219091461422182388124576898305119901411161317295368316325963576673734621533239676933903183972984304686311004141251124071698568470469321525486258618362924072873841489930003689938878274809471798218062247306841305659090218842562393154357436503658932887060756726559579526514406906277646443515020723082530609388554869284879214974633809138045415013140388196373470696662939553078664763067948640765223384184572073010741535215502658845569421240073990834621494357760944389958752716523916544592653432498827877681304491967073702688476193685590267532727327750257445101192607231394624222725999557447612562268073733010102461733261682002633649656926254198013369419036464005956006597471375076484833413002210557468221531880820837782147664011676450213717400934540970756847813760818465126360177188091650431837902640806388912429336728223605628924162185399422180753763827038874432687370711502921906881935247973275384619947307172872330025775331191372356949445665372616120877713410524855439493869364940668259935381089943543995707792007881093199914609668843410879890851782791375181375067052220459499264633837440124713657044217763639185308062716914385729122509700789561161021067624673211037139027124749895051644873285594678446032963498610708786557827317539633858514183796044499192632661517233193484091400338238838193313260599826467338634887759690207518878779775278615439553258375636322009183777156649403883176933985074554159172215283039294026436733320730700839903323851293330476307802524229189578827618087533548712667075723436393430432674773175761774983457090484345810036477874984441285635881866742699113254204311169451550233020349323540675967823169800235742440994236949412085912436748206236238219208760509524007120949377080008438772044612084076442231738544513280365158930166116272534885982516310751123215374011194793925069707597328987158750683571106979260851523508825921377318498018197781294579744471417395823556081302467162625494485619781386584180561291731140640841977085988271158435493468463622783608397444939864212080693617354232348766228668051605984962912900185338320645474520838938635874319515367339706501629928595642583010250953091793912740231290640966503822122406097275381280423724522157034519845798989286765213856484976926353530543059324186784277968926123443455542432613564110580500971886921416349357629988105262250147513134050350952274437393587074613042330984082677511052436662200606450869399261279425543360613328010414545383496832594915395071080598615295412077467888390406557219289234901209421602695677678972580146071744743170883709847511122738688357727199870771675612304075962983208232405603366705937588662774136839217050724513861699656074229042242473464182770717670039700708789934855771181803460157848141568035900896125202136140320676207012537754787219356380192873822018721184717565953130523615882214559636288454684682325569857632790558504469632708259192398704086431278976244258051357027400065308513730418733430746234960431469935896030196647984034783783931669089647905059508955933503071363355619622627015441841760131308037195786993502259127914179804233042764434773585780960560586837535205080850459184626435999372539959635235512769539324617175046825526697450169478535493681900094433340996543053397223446798002300191445270461603748616860092748715356131615951545067910303352187953862393797897234695659304304330627423254807134939018143956737604419398298562729142975549628725125338512543793074196661377427889108932245140344971862216080769095564435872294642151492817962280636158476891213712137864552547749914945079819030223865544899234076933275726207820353727549851007847055634239145122380033826201734694294902006284991567733492789451839110666615949379649191199466004248016037472445852002395898881326079523800361257942653962878492344374528975123375813108362752232648761741433858169269442358852700792114278693349458040468078974741153218003584795417252330462162168479996965327523213317732394690085614237855600942923847290548714989989815822903224187275925806098444839954932728956407713296912159541510752790989883277086737481347946528986564139796274421703679001447942455981281479802001677279528003613214787252987852117424188234242016955281874450381388977017072105473554461232034471634165732345910552591977357729261457786544511251005371952541725426841815897138229625394805468003690814635523498175568001726499980255580645014528054058991935051328101244085949377897413118840994376515698101601346523372281302784428108202866757428766999698253120385227254723418742203532624919138270857063850333976494779043480956774586674763532479460481998743458905242867639920143035060415025317205524790652569461996327205837011620487013659548920837158151216033783905237813898842320280637023533597643751031713047872845293063650938503677557346361515531374851115750807797359548419172905326874957931272701115057287969518574352330627627012708876452631987613959091917585676786270575303044607324242730751617840074922705276396300122217895537618982581066784758089061548289130741205560933488002397261818716493024064518736580227516749177109663611508378873524764719219835869831901568466423827099451832586601616077570497345836557783755625421488457878420468827961239309427140520266211574162555449884772970764938549416891624950022704826904864179761567250129658132349866924165203632844722695340935905034335039849564518805639464302017043218198343668707052532076090204853920638503899580988838306745692485626810511055461060887220424129279061822786597062417166561395165990617685001108041815978051139813604011549861827894926061452943405804837147225156899378594980982225355787904421296858679044945516108058696750538867272851146441136502686216154114171920582839583051669814361043775791859417879211831013423369427001013992397576908350275864369191782830830554859078223297722566213840756787603280709476163881658093989022884134662130401435604255225848809770467312869321734973079171722002389057741726925516721293218387198735923686886475708121080212573772193285903315323837282870942020934189576016180056705848169267412253824671929713046239648543664341362085086338830047878467407709408521170354978607012735858922908233786791820635204684077283744979718090227958701840447067036975331836387945548728153418350908176057814879278843288489072453608606532111674823832314914692157774347645916872829584526779330181503919510411125097972453800199246148468042743425720446709470810394441153276475107188971219279925253271403399323168257193971357816268499926628504331210245852558245011185964150596898295007805594670619678069027180780359847005259887720337135619653494945797406425499922546568678773362489178229335967495571986438712080314713522626822035410101342438881477114720022535053557307258585409920010323783807226898113236683898025949703735263667446408106404845687621664137919850898351216808580507632310127683035797353470285276812181624469827301959860722859858234206600841102575500389125753544407731399916170702153521163330082538627536013543294794128113870911093504353822198530620730873710507862708558116766039061220830646712562899871233590333508046385499691058565299682390412504314590971875960924674397034999388592655206214509427716994069088847658005866814158225796422497651945270152224176715764374806026384333731751478486838592542180844469425842174622696892735022570467264097530417535365972141430231640430884747134823232333701708177072021732330498983192383741673425433177483805569874025378005564078952451275053472812339390856798184107458801044491579698065124618997128452318272676553226492488222572389031273496463976670123360588655990445961038233894065903432606133923619535444890159073386122348290428886852617905073437037094218123633163258529379102990953021105063615290598105895399904810657897878291437956580379911487095897715916401968688859021194993735696762004201644320526531367836130717884144710189856959512601777340117432803441707478946482538366985997914238371004078454134042450223270194288176305930133762741722674729903762921509592010588775279047038168525642228366820114511689410838848367236134308604686709842261421478717208302586113966032814438956727435412291091899188247754112518388586164278022906088738978651917192235208130160567982625281275016217996875520555063489472369302813413843065612854883207962291350533752740649366240974868842003803401755611031466367587448956940528364290970188621086194050107261798300415109629942470840032541528022880998397071405135141390472746783341705299395997145452340327559761153799978751264230211808505501236436898901903068465526626378760169182457984172047539835605089926486804492848359921179335030455805296306262386368516299689889008576862466424903190616885146110882817937253170235075951033219036918345756217165945529064034781325051446347459178251466058393805563670942885659381060468630531543064431299918634856526853147210691255257822629185198789438560314079723830164928865674273688680795672156532322191577385418329105865783803024103056020229896323380725150305160133722682440166047415466899814405197374570317976227330199406279672973224674191361969719990934035257167571084149810274502331532347729559820802822631781857107144850325940633034234039609544455715542336457635088838950557581028319578633757581167174065826459244608472474210972451334401148622438438741650744735587032219301288092678243488420217203186203856612999129428048887163845088736676458311635549657345998985196317601600381329739567408869796742981029311159153427228465546715073228703031604924006197075830753939994090452277397881243551392505851261352758437467824189789868589504926414606279533293510176163807028727081144854625527653013728743505267775711904408509096347818319055737086355072457520065192841802608646952938818228606679747375265654840644172803430223393825575812123033263742626341489512969598714352780870423060978773077115498861036221611518349690144698422972467367912987907501696834549961828932152583646401455914995577237494112882703695594533543400924316975406962241949479568763495270244252538848428812612097255504538093244038689885186126195802699273562830151556138780218626808144140630181981753833825964032270850195564585557267004233067820795689251568593372634281133767342350346131761944392943323990027795144916736540630846510842831441491688946122837305746512970470491698551011875813559787409841882939307649703301786652808221008250218943038416169611388405720371600608482109974814406874302233614777584353368152498088397262235445195764575450024839248596357837181053131986772689482179758155083881914069724388273357879013587750945361343370941248395397366500069722863769546423588550405196388774451349043601226182135735889458281217592143537495835893691671733006457788969417636593874503618695188072792797557994764671942330895859631055111230134948296828899501636280906331084335970888814276929878340351996958104389263360396857385219358082355378163262922018891045724941382841535131578757475879941282699504273645035475848410485411416365370636498855471326399655433651607274750948261095784286572056161650066172078674372218982246408881659140968832891046469134462579880689784154449023000354899552614600009893971501603248268987244083619401187286405876707360140450932451561628522598624734776618786126629604602805846341042577979190874827730769300120332326464623473510120358705595907022705688332668696761010325187095561293772549085871770675116080829603152642127336783605308570391105290041800861793538546317033037545755559677469194734669732395939050414184091105421391633479143052463578673370938258140172725767524114869913496593408953682144318306359096318306211037112455733819155446944785054208457556466301939000490723489350341492586984820108430472384046788142629152899753546857193093606213462912198572377638579130002422332256412347085753319515476827136078965927177795294046059601128392319988782970317111249834466708018936013701902796606923324457245454455499140094132271514928643021280130846217356454697477251382713116455177144106940712092382653811537930416715739071739173116514016941986946425161671210106721176224957143652860472681350873091283629752124444362942056473747377977138151240146083553863154996371410006958046896302633619340011548937175080256924775550974948628987366207999628803398004094846695399993749275225784931865378352465715979453629417732270321347376302419711929915416668994092365683415133765013218651883463091126124604875401206389708271170679368523387518397121815488573772711827335762515527919716658432579888933131101811257253889503024803449358391646174359644332994908247535860517167163046131146212638750483542181162816401206349861306302453443878440520570918701537957061096069379938044520239514886684445525107592700663971016322246646101078241798854142351868517239298034791217365034052835308321624582820754392124488691176444685658843869484369741754790562819473259572427667511743263392193645994811900237348145745078772853225701480810539610807764161178005959760106165114169558760536175449141942723584538892988150171734010096579443553566755744405613035603315020923933589574941501195016063417250881333551855545495916173046481389971437892465910374340394622595435136526775218604870056662811446986717678213849612016384836712215042339397274093375020391443653153107709795225441695532592175710419025640052661242582263624933906015250123119200123260460021867911420144183977651198865647116262124106678489135217329503378464347588675504725882931517286911555405207584459253100399190566111587712591164142899466272319753027723028185916600121266934114456584150260885120945880315166667064104307484730569031096567429808124623820591983960748938279260697574215108450520356797351324076690976238225263301024027503617978679653493472778883027304121905582126566860452899366581447810316159881422686053421358617710955631467022724843979348665976618517628286190120267908062637019619929306694070298043600953455358958724613117817171715121900680880714268152911024332374988925846100890056139467249637240993330798423836932057620706009125188613638602620736075985005569674960008220024745394689829487805406403441841159753921573333100880394943821776615054241792207653777517637521302971891161112022682260411512195135588600436517599454739687477676235034439170638401029530615726851187027628897078724711940967552786734611620565314863905768358716462286634199085345171418138467406146895556829111449011399458965711940563809712368158991101375939450202011230511233617472730738496223073472819194779589160914262966940368556566584826662075376415757625050676225564596994715862817327429880127435077294242077219697244291105365835327759075326614542428151058388129021796684715914987142202091279272741761766192076533436898882939745452347779006696155506406163648922286087639155501837044509826697352583946115460255082433440668119241747100388805750143428992397248145075456735896403075010647427861034776902179540320092745257896773809874973585581677384946202595547316553313566259114535351359756459734904481488024089319527387416110382615753773081225774872944166024167682635185409089503644332993869870016050837172520812030434917243386857439049382086367103728179231877534505481593666538943284217538435416284933233249492529975171756215839032569630567223673312030223774760873798513211497960116554233152834796784694122126559062959464986293596454126347014626254910895298443432626635303997798228767780886626755356701231737097955733886961897528411370514001997704338162699944648982808772949113833402009552066416801654421552671985092519225527307425708352134681395349203255653668970930645432988032427591317343052458015997512429388032421643126174395004843851533766421036600360152895668637771364823034610218620192797063293112367913062164666568400744514564107620675070324159150148913594319937265431620425862850943498035887631881932661200275743500190418868657682715577896481701213773396373937909345405171836802394978845914267565501940309763606276260970003138957108677446781953006103588134001521638839160603797735699886238673699874223737567060454154003635846822082203790507253406372990965312592148408282893294531246558074319126395983217237663435419349510013448282651738988210489128780289429479561728866105081973173660729532003453465325074773714981431087703761136624339660531234500342448046074714338279826745930335624521307398262437701858038249638494222182951067859959285075066666822511443704185508777073840518271757686111343358540769227867250053416507788048474667201917053481786046918690518569410277950840821844290427143979580934108966648337345056386703846538387572487479489390673358569923578701664107962353135685973894730633894582806504545734312273441182610049501610615109046663046383551575678807026596673123150597305265620669342698430662146899689878629880020901219466965912633196602033812607625238009300103373869542425416441237705226562636335965031015896227707185299611277139643648057448529503121965416355639016679364736248228470188523116426834830496441365757243938923407044698113522030493489285282392984279443082483024954826414633479356114419051497889751245785568882220138835431555442619717720889046784652524759163560573100086106963694487059457795495018933604538117930621796748391089209141426510045825473696950163700003121963131416389141555823710488743121356982205121307416389642012291650161724042124157378039990117592659901759595918220773172676745770738317414853052963390978338147080730231070343122774204812065488395721486725237704191983588306991506308424452389946255491428237749347804658217334335002142927101434507327641282512901750103781755523968022795651909415867988570006078285841658078061997395949119265535648367820643146619149987745816179372084116123198729743776516190045563366433060424618019168419028032355507137470915965319211758632578025222710235572949382379295976210377028369127110326096496107052678828078357762355857754363981144584852566837807434747329879239758019199274933220290484288488890033514837585311398029188839870329256548305953927588127451639976017717472412650923288723342845631205924600874258455557532463734896989521834550797098957616336560633408351424408493682804373677706008774917406491954163537782342294106697658092345801193813915727611661373433507308451382545007999040271955904578573000247219293953996311317331473532356400796473646453993011880325139582705707525832880339155603719753913191261523351810435034663409338354745236393215050221845529013040679168273799019344115938548392954966771264485952180995062989188342499100107031707345074675153908601822833879684498274152262618860215794556776013072309983376085647888360460601760550576417954598487252022854250204811313438627580214137829046824778570080406980346962994674002977236874338710527720006200161528990038750822050589679785279838871457140182315901591890612003916239436505659769933413293582125389749662011609526413114398233581374280844441013846401332243315181204475334472545286878040354281620179564613451996301099235642010960040196425640716024283893098661466862603417216611010947484435546733823603006022806767277448614377095773323290357096448184928278200235112827079059915880596319964067979800000960944371262348390317255516324765490724988813106606283504187220366522580796890213717687283135566542995013031911278042231548088300297697644230649561516328198217868267366977932838794293433269903196907593953527980939235836595549070117391347592119428679730474387752321896787823311743208142189620825627260192886933799312773816362240786581323024621241135045322098457713473942113155306122310926508773486153521446661081354020946121463205698098750502910333564362588500727067028933836941854139454041409689258486121120217118116357334584344307014830682237554282782905869506400463982597124326355456651016552984003420532406302623421789062672364118510318498237494097857165027341558328604160239963203026074248522750562919093868260026652644216548972762228084435104553681695063443988685807169198727907921090700770266126161745289786007633222939222589095289738228054908442100760841351723623882539092859576496616643036898289541091173413592596602705542606188983413568345544507434079166428887119638768381461036514006830023647229009318941229794777333406427856088987022569433552790969056455692000688371184112121440528415848347786379843101990788732902451901295025537782791506886104651619320281476860595268677796406510372133105627972569170298255318031921159963254862246989377806076136159961667825439886514351839423447026264579315562422930025932266629019636382804943564645151228406098518993984673141524384384635224786574242289097112688383828951216564541062545119529501634712993684588108051352454662328271756640258913163333420064406483396503905722607769876432925064424108078852094271782117805230895876022415265524244444348545651993535309556931129252355365945299600946553745725307393511753647258536892725131210017097140289429499595866981699976988599253023771803701035016946847313647415491914592123388442714276990359207003129823509608861109006718191316634226290764899479201800144954948475472728878365053475797528395290004905898420053232978651888557623449490608839315902817828163883288329353529311436430051773648980116796344800231105998080404414559019335463965615482391851865106127758003841740835434385632468984227737893592798455367966812763488196690470439689416367755864385399799352324874316628283383276461681018137953460825877028092734226122367671476286888479742611826136103750725443341919669802645948349484745119156765617067737972661351460370635455439938484320395535882317311789104266452568509900611616473531836288983877291185522570514649735473581836257424191742676692166667440462990256822715020411358517988338039021635386244485637066907881144325612672586264653176944875552781886721766988122908291286382614780880601407560158343191135581671958249078487550646335604057134393548193839213841722563658603517025772572167056295343256523789826490536347796054575001786484272426172067210239684538288025977641739057459059107116167075477393188082964684457401071770669383907722004963583683328580421498875369639886575556787302275667932339470525564207440551725446887018305944809056237335742532053703677038443875455996569478401176082941948418635177057340561788327755074102890771594013068011171667296328959825871563558554040069699180807801105412830353589145415080321769330879674542006998597998979232970742252111639876008884851797939567772467713149343442338439684310562631269873833617026579367592330156992375766280448261320863263420797569440699428923286827175237190012551319043204570683561302967742539952385351673746674940673568037270039040712639812158789927269234051078710801542480127982721423832847245705071381078206295522764712312890443086637826532874850424444481099927510020028584036804231491078703761604030101531090370917603190335824639786244675630803696832344620793850785985196513363901901720252498258893714348097653086628884380104052102026981978563748129587758888596101315058483271731486070619138101511645903038913663757208257959032846190390977509386608528018787320552131309661430969582385842432116439214278492859941700646665098174526712265158191436871646746208766497913552785931943395437904323936334432106164248654805496408665828688879295659697325391433531259124986553948272670649740345397769497622059435548376987894722711034522847402629605284350542361720961174320089711069696145130908544107677063347906932209867843714700403214466064669462063971073952905312768713433487759293644125149587490182264997657721067398243890592760262548834517810486612491216488307023945827108263330916031263314080417571522330846075910095399236500740980600021618671030926138660085786164292544697273497970780368772290510520961801369411272148046291949329190828661829524893875362825949159658434728824130109225829697023174289972545800242146852037183492866177360692940866828648330807645856437836034046438835453788921767205281419665904193919247963441483304646494335275863741163691306710670816191488553609859541866052217242993731693139233199292334711138722458764894597240880668125667717225510479741133085442961444355457475672345149365277508032230425593413130889837291494481305258447678893003727814710044563130173214037644196418926807614069706380809811571115690498044842921449571544965598734954466830403255389635939529133301028299789762191396317241158013620091504753010921304441864140534480453983401060210834932069466813649320351000867261377514229700565560928543868582633184672072341555892443037245838033691583449648913287324864042497387796187511514837380232837178222749879774825902969446597882427431690409514276798946237923548891876983065710409111424723562190258687083950740804259358428230552238653490761071449582310617238815179816299552364217044930382550364115241024822017429545632368820284711273095304933179348130819598058255507112634267512028398508797239901607977571177132202466985850679920690651962364267049614952993584262507461757952760650104466036367564150110523269214318641459524166887763782502894339314681127378750032680114791792051783930640767917063613988206649883482709388331560913136543751257283773023992068218133331489610264235645525852567613235331334454682365636810497209333942115814937957302179885551576773475169047375681375088890437655324167282020870218947744041946292961543026694783455336678112054065625126569457931625333793430351892840404019425784540209602362569318756689166107702636126022734424928018708250877544715457801262559516294961848348748691431924189508669685785205743611738892040885660105753390291720903162162966351586340335825823262213063327448431008814273605254593163523726847327285874104547753636710554956397833957119946786480517047972252492732354768797698293548696315643166234005955868933203343614251925648964577183787116804433926347114722438586224307789204259200700143797344854196156231487445563342114379470259180964182599169899516335667816376292790155463148426730877587918676174157371597231663365671581500379414267690184913379570669362625784516417735749926597427971117568544962238480513505116208825211567799299934908191584573863260748233997939121145786165123544743114526256686794350145612647732644774780375978906394350766180759906291171883254409877609876705758770708296616403159419987185281656446271571847803413767776015158666885854584981649904693865230910911675342948017153319864973656809285208348392746048213202111814103540708153954228694414115022921557797715771106120704530363345853997198716319954691462961683059611255086314773184046660720108669101627288298359239486016095839190891237065005668865725159068299634552784261006877707573601374981108665448083352635669110082812233646975127828412055497350965477568432072876599077713541925227250545655562006438939837922727584928364946535438659196137328682567267642843491808332450553131925339774326583744070355992180214488766250463172955054486840625237018074491816716559365782184885008186843851743307863828954730335929903916102750106754271050152838589559877710536258501002578932548462123505324243954974707321551830065314732498090716100346845933567260952226508844407753232777558343826089245829869431239577715179745379231399480291292558468610013708831856991692097971416349236099283922308814172882542484055626288236569644665216666698842616031125667002466813880965178192622119622218342285091131006782099333149984736899659595273442932405539424177969617537725054126410314325504457758190918300138709334848978091118573758888817634060228515270101098183910466155579943507857180681387794443247018817020732243702903865287162534440084356776520339672245847804692618960278435477407004258304889588169440131804855057983023303036215972752888945183299768556084602870214223092652909109202499704943310179045891772658488125797433736612796653538118784786017096443021028339426676888167477658736485944221953489634760498079810996667739362439657859236331732794240790911907364171387797388166022924144022195968502655469723029776764441988293170057852205046265931750163503484706535884170395684816163738708630092659210632780625400212127702657845521731718505183789281485173164356976901668900335861651048051548466134207172425241308759596237725117853444744238301301740234781649595729758377401739702451600565733466203076031923401357832585012718209986417282164527322026446122046905502347686117474345695387135001022394666603379782527273371774046047867082370496490419315836587234335774142569009415529844087268300942990289576067789554102378881465980855135242821436672726080569964552868376736132521669263017220789215367929053048876266076206893460469758398126020006735167686847675150527242198499588595423134528069555988529606668891466381386088353406157936055773012380109557854114443092223988134866951794056648448911596663984920967592041748299514431702756897063293252975767238644462743635774453596192096288430154878968285615641514078929440487949329081541278612113554524900328219367934941076178437180459862433898016691626820544602487412709248088463273218950294188357242663330513270596879531968920520471632555196880134222466997982015355674436498833032176917353276249993502686649852381735369987586925256691085022999213782685368825112195911761984186197981785440019977402642940177297728791341968210065407255021336706662737070714698860408138057749727083488253297980620615699917141081585228534611772971426933080445705183157144892591077374597260177245965091177676320018764769106105380424006865562932526956235292179057746483361600859591794989207069746629535809508376727046706346753347832070794077068012976646249552208755365616589514087257374714526068638293259456925807676945763901509245434483405310236304878082515810631211184331535347095534770894861802310413402426006431881140010652252924424711650847667404086446489394038987834404472196228416180880022779278590907683693272870400090665555838046506014936621643825931579767848841872241199454864423741764469248385673885160777256137480640167529683112139880831079021305161035622976036155869368445497578365750248084581563223297759473401422958938257978492058318125021262411005595543025062717335591755278965116432765748359885942922131610415427158906338302553537629164918532308953144042709282665870612246522797082782432505142740808657291563412279079053635490951784659190417509694926342935108488671051974033331295764807722508829698173089888606559991570891801715513665248536429029443902913604213606623694249789517619077666625014459438773538344357305156546492808900823203094103605994420550893644383506914730167105948080341112209819012449969199086707651235756138040856939329685732258349967547256253597578817142216689415472813721522130152040370206007472421200095101512650800796149448480214977610725852807230159396918335580531429261030808054678108796317810190064226277214461045217563033898277270561852370895445538780027101324198068852501547925649447115182201080608237595981469617064625827210610809723847989918514629769012281352227742528635820642042061835663636853046904519982253881998868480510016302607900267997432326927759954233228661938571469783154255862488111236192231044321340823811323770811297170087634554550839310118884426391198907898919782259748953735180367857114585336635759246640302550587725472670852161984099526153028585820275632517588227952570936692682441060221007563317045320192392401637133153436392364471803537953852494183410992032413680379262173801579689183420120546261936396623080861166167695688488809267317704877719383255624056665387391722759293130036770411601435563272644128244191610677656887212243297403095638173233616729282639577733512867645848758995123734701326147379274905926086698960860418687140592911633912612590488195584552756726067483535813662147388456291017958489211058416572256629563073922322158942216688567843782458143550593244452109156545895053067476940972027275839417607215303363079322080107712021981949921994744704131770240211797676115758742182636620975908832789430971581107625198562453988176768912459519284882040362369622348822162465828642901713820480377495137784658986944370501760314814618227914133913230970579442540032018631654545033567126590631553314641840729517015429939568448677613365598040499856099512133943936884340896259534752778040944894413154667490477699603381575987454676142625152556514116081943313324862745144483390461635510226553210158502188094345808249449274359323136963954273689308600070414243344715426671399433512858322271404807214593768479008773689592073119297637107083512057067953325648353256018875905275455750751614978044732077947909435122135072868706215255033599951774026638686632196915451583643465860189198532139674567368059949468533336538133384745934182401943769360752568396134928994906658811306723815875834962868717072519110793400426508723640715678006432683114039950398642325610973032324161457300105210563877216508554844477117680147634296986686968222587319947349166040096228878129798904474325212675932095360252702006312752711562108527859441611226943606722557610092746745768205145433786812026879276983716616199308901901270584477337265486822386473721250912985807507399831993349182929929368002454235360725659443459211340357466524358911707646385310602844308039467661750977036009074752904550910677057975816544617550085223283691058121393687625901230582263957446910197040022841150454956227390986215540143127789131355018409282952273232926736932296046707492611637099415115026938009347911176255102405694302992436933682505300308463661600716178434004587953867059398565402400431886459406996046857091217121505544872791378716241537549880439516147524430995496146106130545882904807732427621357062003900414006312650979009743557079400425112989740494548422024977803553488116598832595497068047312997027720219708218393963010598803644193843654076974635445053267028470925103194396467775724366870773229164356157389722237623157824629036309256201300890302599429113774853397548346248587277745138872683523575250345155751094642025168128792070557825753083398496371821346393000988607466063914119828259894117001230051294885057831933571083342118541036011235730630872148225326884990643558074484917239127237453630325447489710546552006921982251453988200188443020802974682762157801365968836148612230248874890880898334724971086509043773224540214296093236517760428786488861912077395761633265114502486669507567003270689035762978897881805461933970450926016876600367285446013118531938808803268874060328870892669448655694851942163767596583319530498676492113441481092199683512192084189321554917530629077895533543955344082601715552098412472715603800881875791405513919939255285731475633290843215533520434224043553115686833610982946156402141901837936450414016881405377485145355378041496642573583076084533665057069653902239706832904545680989358001663623004771110888280814188967238426252071096116993498606819478422225082947570782826965978705186364197071039721374756244164356232255339111712170295035620144836527255887174641981566860711519695565177237966715398461621534873458325530683389036519075530145822159029243344225834638033954985845578699782450580184071165539592605210242653949775786056549170206533026044556629489109412121604816653351693651056890456010618421929081976809394757990437773505381336711595732528091974473108033229768080219318756792191951802248175242514530431373549323590661963952653206018840879931553697077300116914894569294987822735273895708286683104173690278067884521297292775366094265756658580602167678352429540378974150032397068730815590353363370675459490382463424279435967379684347113198512860498371924056555922981620571432520082153514928806729975995288533028779213558864225867620517686385592637683982035526069939980803630674151937165112769680557747912845452700074682982145522067223197947864306645123946302227066692304691083772896127081862367615585725586807364803634606477337330482240205012798123628351333276429561663577448603830705534134010257663417061733988739167606588780116597128229497363300040234844728659181320965172499499028964664382631995131373591728499519259634608799443540251229899124755958232485996419727829452120300079785519563072473914922100955478556415759774342233445317795971617179914338079926007267738704132610327351241072910114750582756165323663767352627466384456379629495712670224729413061571280493271037430758436877554768360800459503509089665903688003219995404126379704052237003668534510043036151296939624733165680054698719551369549421408988573790303762049654781151982885163227819218792686470620547331972908847889949747571849031017726606932754743449959336974681663269830095654348422939020411448956683232456557185655013072361902576175690128452998708429770704177304055128068619595600033786811513157670304697699953728383769531197935425610129188964230924480304075296722055003822448401220059977480850244638205655576325191830045920768593638543808958333755569300402167206249894254051246980193565721816120149525600123644034461865653400065246933309442169688176411521509939898092513339549073483559630733030310460528380232978898652215156882665545924052129117050307839535554137972464840500491838731382617512734240512723720454203844483606559447309192961501744537380866138922214008546673266171424048812377005235432973099804831950986411168614568591824529144393770717232581295846857827899060570357827971705365149247331178478898019446684011698593972129836862213698128498335872990315786119364494321599920338465883382314419263011906424562487325005434605844298168469582734009061131519378235151535584984227142289362029931437845191003579455688483346878410194484941438599200595977637452475343918936308698212478216740217162902742131031565167017010588997932500561930160444714319777221369275980678092787176445563254840192564361466949897390806141872188604401969285722147089583061415599490596307774171379646112648981654781151564528372598549337094269131045303821272495706786979542489168343517636495009079639946624624556493733179966731018267400887094037596571239317744041868300316416318306138638450795642643778867877045301742063367149615541203177298296536825963238627922697738861191727484296094863380773467901650392413997669440298413494072446300764457214915273520341828756682867171772490083410295271721678971567271308540319367808903686828362555046745970259592663314595331897698220398928558335368701843927605913078695368049812755899374073180304228829570051552201686416679488997011967360352823510630344395111704104717269591966130772692300287289726789021103107534627584039586865291557797366097476929233802265322379899491381164496038530095921363003134214565286985080927895492876220253230454579086776117779150918455557317720371326651920571175478560421265660071229715003935407770106651541652036754240287415386077538299581152807822641445279509707145310012434594765833141041304791433185633768691338967470654115552214350707798012536757886071709524054570708814723328677351817869227601374257541260343457550366162612453520663148605862457163799408048225458654431819319269895914682139990505236459930729469574371747720461796332825897330968956807575742791172700761905866482032735152633438950870374962360777559445414832456711767649822652923999649004302123093817169219591659938257954588726750123721388961268383597494497555308054434748038447118477449018628746148881546409790166054248331880060084319658276317218139470312291608055969913678547721625968670967742825490955161552922607784219611643820996762367931182775422560973039151183048918115598265611175344833509075034389258588789416021020840101868883603764116159888223320672656176629522842144160406869900691613315127204858219225518431110438221920659622900862496126414427984696922716854490014271965202557686677092030906362063970064230478845740169154342719944544609955068986623376081516173338528493082222065732562877593702085070862257499514760371885219072085650019962670039058146722249129160794788870460311887437794486283703895154548479620699930514648479253379907945846171710595591506031012300517054713432494639639881168650271803062475866549109856147159373082031726755261784478917306069114071985525496366415228914598136466088850311100062237403712149158743663650074992923797159584860360798234284731977211021938087267525777636737227553012080179360120900945624976118515730445656055746243503864269252486978874716665462923714529788185481656658391598151187815381903818336107029179803311973441228574819913833686802776097688732946244535105203798267548415675610010223217738585061113536709091741483088340185787909524374718939157488464394098536437691640864094059644182584417299921378523017735938920477263134001960772594234849033446230182982668265290567427188189592675680893573985235914033027014791967727489556049940698544866993708518336899210627288890653259256495653547810136569094380780346532706684937441751535262964706980413308865949381312206524127277054088425979071093012510528445539882284933721381160709173967416879260772698464906295454918134678336509336489711297900579034361388921141862249879980161432553446823657661063870990953491933114742653205380792115908927495607198281126720368409960848813948759018670491262116352403080182575789251665370799364597124222457521137287364519871494843822439045138590209356452092291578899281919573608946373524076959682093322902702344438537899672767737275490344997778543915124443172624512840395709965572599766926962294195676019908208533897217121850795425014247920203074637097294280727584770179591854268808854030775865131382073845266003985048446245082200350735067413715934018614785356959851848118912943711748031133022643608027391037852269904263490245534157367827622209114108012182584842402363831776319581724509660611229045426726610432748480363473197125038102810531343682634482938253906114951902390345339451373793982124600454234488345669553637520256452795118636148874649944323817292202310996246975724388207861270974376032117269771029365287783374516991185931953450643511856613280620759103007309315094632007008540055150251430092949466058029140051949584082546809500895077919406760233191402056335225347622841151126546974001117355364104172985010500599603434590858277901194507056076587145898345490771194958478293826118758789058894579327327074791576473507303918045016961468185468425399052266844257834205219287282614780301562921052716171247510212201403993478207347427473927748998024357160068328430248595036293879819123046066403558662403174876305041067838290011919780846496411261595084905732937348599706459328251073053387306709359755959374269623200031042303782894643986482974706360155715287639744085313824596145171414433004355726377525549764976061815711632694227637141805188622813755945575144494494292626084866812062889818785473909981150367154910265933720770460468927902386442576085916715230237121921051176382650234629967622820672363249456960624055577589378797643046589682947317146416093521960723945842608286419680638256353598099260749768862304954207021435646160852851836527076175911380851180943142345521249009070924200357280971024195522667852716135475135284628715672799619856055232102826868412819570995835196539856495443085099640220199769802389144437384560656313906947148693163410242601263300840349509914717498967554361255572449108071291062600276007716349022728429961322936340036161010746310749844156563025388794719238299004853629635912571160252075428380215294906279647027664496521480919069956909009073137814186764097102199333179964323453267344960458515196099437008724395802886572203963774707094703177166086055042831033736600079731911020144660652218154863270586492635977498029549724222810936497935600589654458017050314922984081162975805843766883654903081367320479475943497917818339808265276633687797961616334048673227312485213157355700934803363916632981339534906842867073120240780946794793061910639093839226590989650739908988355316821654519280743864014010208214218933884703768140102491861054888098456727199319260085520967896164951956046857779147847872905730684100898577641295926399996738316376366183532223151288979366140843703163124062748452991123766284684068106927873961772635341531559177587207989493879174577863317414846353214617405733579955799065024887811328349883939061029501041684759262905244432755589120544761229095750490828503707492124802157935764028463359871092002174358733356508595438079958310020881024734524797946773423445801260764098055076646450085523382652633785211618805707887766078011358669849332165855317089394550247266474298463413563467888145771972380915525235207316668136322667421527023914988717651345990813056319379711324934761320997415144080720111137704501015169682333545963521965639180009963908940353672691668434234659710933120327462964443491658242271536137897510733272266167361970174734974988713887863794842446345625439335871534565723920635119050027540451777306898726693972569453182196976058526779880964284784647657252679426339467238360948243795817890052799842249935843411279704673117374514099007805172684725117145369823386292295656145262506266121285882524087705330611683590140335323806611908193409020882469052494459880329018314355312034985388528395937949386865034243792328539380528109657682163096453727281461537337038287200608486186873094325388243041396111955080648739901812766890578907722897746578606986017150524827968985587778194128188793246036125439041900879039390569483154679774896498413307583176491218802363109758220125568806083630354748053365788281160278326050708509365153495562870210779741141746983741179293807989798995914387122775340341119081989170095522749233607727446243006082454767030159046243455217989795870434411201215405949382628814225887824684170204838091978152815832681168148438493881464002060531282239431709200437561801041654429770764150908264908992222922616374021391196324655163085520970766641070636633337413813747639809740923400927149179331568129694121443105265254194146058090576933901358296721836630439477879712875380477742226293431167699953952518401173941575418553594153234742179506950292400467125999649066126694937082917326288499629818818997859416073789857302587278227217165399815062789392475893665984770085853531185635059600337474378065047921300245657038223387575608207093596014265932211134707067962281404944547815859222196057342494644222992934725285717795680768238846623651768238371876231196639621285799012087310508712976506905161253593650183330165983998471281253153427317920189477702034606177340134022750300379852393470218473938642080962161600049871672744580124955504073326958715180662064633852883739820613466063184448489555532778102165349182521726877905827475163116580019062215121492737419966422119671144672292756998070408830108341840806017157096443924994936450890256316598580490623328796487561874682948873022884932009831684332930872866205088598473580266721251264355207366533045274338858145870288130429525996449108787153855646965832203125327191629334115587874458927808938359824282679856703259795674853770575763676808106874654381943269306510871850738180450572396267015795067139035051687645429718236404539977771425814704603669934050078595582031456215009866044510784612473117587031814538596832191404096715240172919165983606656642254856075867229236857734924384824031671294581327338245290582914806090032976698273222559849299561201620041368479638405327935026282860347810406989712244526492261236392610948854845239427758238049441905696090997370732273277319997561780474841597102428959985784284958970594526776830448097347181312114104382915366696704584202924624299159027037275436863779050912130522266836026740630458814064327157304647723693783207830322174989998398050898981359293740421922587600652070574068724708416762308070626349380390211840808127924633511503793393775985087477765055998835508203987368822878070732246545270714937291049155263570575976052641231502681995667389240307421095149401851316906973091605723418805692303451376968070706035087289698983644359389491567171259343079855807124746820799460719119070947690336266106657209839371753152338801712696559731634459702243188654389202769621911599593385775687489737312231459810726329599215776975038299215560146412605831571285498650144624252461927980321322090428013879881946451164973039300964517890349492683546813294367744808399218826915699127937484540420341815346663458491586803077520887726409857198452795735146306736911613557542728430019787427368768299380400351551259369420313954543122450662178378470334564537996968539775736005986373291069927792435159500363119689486847886019405044132452718639148443831014959933705796041152525017758192451651206965385309883966990900715100265151535532241999254506560879305086738547077599361109305583739500714305118864411548861519914145777333980100969618142375571285536792940392958297885230478803504679242835269503509795521302368346684070350318713029677762496865771864085882688959628497051935692015449361268724208682236480715195568340311556834019814615599177160589303023152508762766601282556549177285805376067789226822625397985246243139247806362313606253856751725244636432164627745064336623855809638429731015124960204184050751888840242239188792054697768837030927461598011929849807045794924906914596475515768722589400706561021396981005809726228626954355298414055179660224846736597723179710008294038968706117847315784033306757314980314654466150694010019716067622083618505249689914459255767464310868769417497177505667420262085904014106952920969292581315053314400606196248612315785502338739941093798468212241946841389143524955135746564358771703785017248702841255240223320538825351081046570287997777331647854806351235024399867533294558699232129295291315919139608519819701000528692167430458714910043147688424294901364531885039692218922759267797091899814508549280037942151280964222674199017912097241183454526073043772987122689328504995074750200512009475420808402964281527122260547479293801295117946771818605014961115720667809322398757608086501084224956713894496260321890202550438026708389898122807331994856408151279967959622489287013815264024492939098056149872734153452790774590014384968321420049386390865913530209065236644210908469142719717668994866846948776669449179461748078716459343993446053765325223147579014147458410834088428954131666369316933509312912391840386310995673375485200542325997345318907839588081906679460011562328000195820220807929534290854658726404812636477874837729852527365937334126533971619319205151614173389288471409331625886035944772265020398689257947217224139616169990972396497743643262612967126615793139987210325419144856008719650913196620158046302045385346295477815890259650680926035306213321695721951548215922041730177646127318949035022751410657108750706727701878750465770571009681199751874820365791748534451523011483754676499511328716678983735843261087364053600870795130560911120968724143597583996174950843699118280918432291127319875668455683278173832475348813491816240831103205832291513278593777539924538128146348858555163541305053229404426658022470558979917590750024302459007632028164080549832405514658372419347569815477530953604990211591718571200585595050936182762018636420945215396062821294922836458680406188116691742762417895610117938157778796156071432590701490013609877726442522157934857097975435620566144505777412376838515947077718613572364403689799482804068642198903694633904787668023884519182750453522496471631522232362113060814803135085986903743539570740485845226644912319483962277992051642691533986825275677921196544003842469176297688461386126397835892821746357287563588081544008333495728307101868270369064564433734602014614725327012608949877647865982068747330146677026166538114760070814620349339000500604879182789838747911335990247937155170703316427771673098558227371747242514252228038726993191804194631906761476182955260057597493272758934541338745744922339573490232253661971511783182372066018259791313486181139172526932702424453368921236945721452784706383507508682299484626182321377850207045108856239920305072795341912661333746781057202129343696956496397034006029353424144474839882680908915891682656040622161415636034513270514379918242923786614325217070048070287099814977999949968849865157274836840714344529155459119366989263105821599262166139116003636880847990419638560897912172696048804756514641277191753125712463719586771746017125515503363530099533075890507832879960150882809975078325708040973408902187649743384464976186221433754105157977304004552308905674361553609167354118015186564936819304078089512913335247499771401358173431319247127462542047572093708490550117319233486444149441920199438725140378032382874895956564596452363036364179320432617824172562833838520894431914633667084770144178556921353034357254806315210510754642583246511421119146351357152131459899524043202509646723341812332586948194939272881578731324873044409570751654624170233109017657268574475857311057937964743579256925026642804218740635324803141694962213463166380938369849649953666701959000982327420861744397240648833429514931674050706118666581124092946542054320874791074674978545514700292714926128344909607387615857404375765380535159993420666036022921807938401167379284499608245937652191624389671356555564334006456225775966743047152762333142344000013727592015130945787403603241974089089531462710753061327814031996716848007255467166125651690775849087104213289561847836003780936345010787648598106865699797655572349416662595069515004758183075299799036416101983699642297691983930791323863201029157062791783846295350235090714521894377173500479521933588957250212345501782916130895437207177803098582777366923937428212481029281841027910214685551544612254092192447773300015870140336442646614361822272442166097186808298765651881709075371208319850238232772707856340388306301120189276485301405762119904326562194460675342755820305912722697435615147045827239003324359979325933232593084187835597409415475097693301912207075661448212509895427332273952569065114516186996066322658160624005768815239350114026060260655174974217051125118915068478418290062470420599635349821555635228462902452526098277209339105801932592886627451763697704511987104420952655087386717023687670249128095481214078081304538304737701742594167936801878215595738157256920544500017322954448082085922130900780370800093575614012180432223247017366185369067634255292603231786741433282289193216863033146586432248699904573722788526005309975617224192191716011676962720252015724107495808443487481030325669291437067070177210836088293481089293686911926813685757661253928005437707538455809598605030392664556457800601324412497886633030887003581573713031647691646133029895703651329971900506803868552106182177241731688307565794238088618719322416700055603333338564722610402146597196959390383330712413098608102040606623141422243446987479681600981944159591742243952093995241583838150958920619844628498686447041079254705181441631937128070196285244878295848215373528126953635474749404464809375461247578829568413289853784676396851559135420404395949301560057314881067239919742957241153804846135838691090048402607406439986627136397021171312097698877905860425124393275495614861256882435348579698261741031419584726380534865084127979791360038947424756161131864278557754009535585379356104190250004456471058802095810035071695919509024698066285801834640632019971167007544440258328501858497321141795015617271969334132401773758299539641370819032991256639682416219191771097719610978750916796223233231437411948808723930520503885213387042314250810794758651396388940771660561037770535601374631561058281245852433784777181266343762598105882123705639212018386230904170776163738866700087760182734252393802072456921598160438652597105750800256168307032983344747758373560066927187270618794008145461998088337636454400450078734687743578092184280253902935870483304807629068566867753527423263272949913432596436739087671918495752745339849839542817999033543928278235434506346575240873007875493335128966592433129622724782727070032782743066937454672620054302928178256641517217584627888521744734289455017147550246591290621819156853247530859724449852842670795924946350911390070728475384171714752053469034165049596104697167570147377238031765716484316472043340735455167366791475580258684869108576972231581090546290322594780435434127033766209715983045596744199960278801530166637752659424218363405252541024924039254701837731091837161707042416788810246428895440156396259799099718737779567543677882376547994258407610038429508678602223727632445139545028982759868823737515564178094210411091484721123167038344770954421820476219249515850872619292524432987032301073994872683037565120955552648989696988585341910348566442984323484515176681774888769721182985669053469155735461238596107050760071076329959993811412184602108860892766746454985762141858849634074773947448383758865606401218948552019161626284657811256359628893378654257824614529339001813480473108275640246381663142280288810491129742997302309981287850957493844934978850099995378325043480109967978827869067429872063211377472321083514116737954810698948953044352901188806171685510560974608049397248800182914581796923619518501938644463800001668522756976278474338057951440491942827170311598094001969447685457432586784114125092293540206405667750193241434775365373288182361456281019682888822674041333242245509133917679678523961388928460641417334756472105019999323029435725238298016971575136063210668955860212169810694965011751465587007896427492304277857855365757658361573854320852858304230486411245393486884161078798352644090636804736811654185141116799550617072681358742761227391031692969591511745668545061912764066824773936785621751152749615433073469972503812534618536910303595910149831241600389611922792625810286650352432314658894209550842421815739032108842515158761211237045567660997762520925693871888334750686953778293327289930488154295173758289067280192399528900574085795386930173927454708556333614696629758603775072688232340127776773080354512714004825912783578943563352603085932963795762843473647745563173670654990841720114897019502818274986883976047728486005147403778670942521162110467361698355931243561245349358240269504533322810254877296022671781649286701340456495523695447661087901029741073732203182247158856692968184651106331248039520980733221154017340763187770630246013206956869230498634089265699475981606401498469447304235077883650433168614821930115816863669322260780748199449882840516492590984474349184170736391227444905225570262242440080734745676282530307505438024542781643846249556025142031729320030831181686557022636477722390408510466751674588317999312540193482751455935472411109518820395819667880261809822681710072620942607357883394271747211181636702406566827002693065255100925216577407911259430272748734729186616226549198596746601053247618227183380146244945078918518053302652937351541880612323561254565718660472210004583137959976499127271671097561910679541964382055472043594694801640136323717789981052915134299358267118327319869529033552315127408266462101325379350404558037026871845504522373118677362141867701701649631418730525808316117746178309610978318353254806494451372972573214986093140522404016213470449272234303566396734309673400363403891272036172942662961025320488542837555175351274802221066356079826390480946149804944425134051826824315815110658127808130370198192950789607809698032143821536272181203252079065064378174886956749495343745718842889968320898025290193036524160111329631173494799415020700522857503316440765545126985994562185082454950247948823159247519908672491651498171778246918441386934538882767826933499970456924819147419354432753625620806786234743912448842605963680962289380080747950055351352863560295819632386029885796292346305774472545913069514553341757697002532285991198311379515761636273056241690678441973834505226710160437425290165986607789768741335398052475265142276188091331108950256189383802863191457149465535632989839676833509800557701254054722919556409861238658267721983422968928102554678941699397648167641781248014658647393924704874933371717815309496462262397927826669613037146902282944067007797925947751885576608206383208001198988622740942216503791065283978700798757478710196886881288241900301706064454384738809326554244847384277310501954246010268610641520273711644609593703703783006805377821221151333800550018918285183657564745815111333400968949136884860520759475585346639958556502201407704574918926177230111360393174131424609290442450282103301354498405364554558178104957182948792463356830149207148137621910958044216284591843975127859402989214355768791769847012271342717915847451624689703803130568924705386361817139179257260013573193546299303799876006520057714392640025474054366045013081475568803498318882783515386232243017163885425190710356660193917416869988724868346578536014205815449301238613740673412214716448284638115046578873300576629253410305880123628958442928607575024119460287134686916688658303253927901485774833919167114131701751338475614550642329675801668218440021255426226641444965573672184567381015382326689854035054984398451769063187016030365905254323916251632788023250051791054510251922166915565708801098894808025050093692005058856985866476077264950942149336148977715591960598278356006438514232625781391731959865156082050746813331029211602382710152872901402173911604229736474286807321214591282946213155440395112847958674268447914694351746874215321580160594494374375853017507333609753858692686105249264929095329866403670553576241939190767479141176976337237042022743983152377183372671896198360442205028694887228525214081299284986010314586849375984624609600914340796830696835181922364058349086571121489811148508307781138232251006102739541166734317809262055514568535893337726352105366340053777153539734856569794691900067125443741735965585365279362469691404430117314269229544471834604829288076834865249936230841157364573983952941756543807657763204617385686423580598764700228056923617150640125066227286805143413555380690033671219240099784571846888835479897934096384259615894229755192632414848673668410404376078155656511808842483170196791433938562603013436338833392637125750150362025749112695363118639901156840478189237255541571189087499395963851264624575750724987182894220394086539495062071104997404831594100870733892472715748746489264663038421889986395771247079257879714353497350357566546808330189764059502547097849798003570742293453844875920782852570981888630473138558222654446812074222109504638690461043709174058163462801931320851318175211525761590000956979109004700426446694744684471786004435725628789552733923826778981042073899069393296089039730620585696142515614981959333760972901450858109713884537777672421452674656702867585511086846519209296338363546819351712045092786854899483361741581259115010942796500071645258946736029867300384633780835402603378593967412720864326169194782135561646892774421331899683019279165483986750058609946126120981019226997986169403458250509043179444866834767247342248018282458574132499056228557614963021343946796810718244855236031724437765345252689288320839724535568544843205620644434927759733452329720528198705252036689364801413806055501196754195073485654386082751364414168612169132389985442013218244140852493004836426402313876388155400493706998209942922482538620936277656704443313549582927743955759522604706428256197076604716531833959080410837934158620930640838567728340206241603304831162238503522143453461965460013590997087680273782350188751577129613196010113023600144618962931105178504186506949144184162885826031966112207946966150818977985840266177628764943850393655372629295601792736698433881821529023548284732947612318895776683206122069431227809114847572728212808605490201743144600884751221989302307837878806629034559991783677788880686947557504753340740375036233881588109697120015153570575812801647882381486370202498833290529842033609512894873630236039196413715316979624899617735424599674297896964343232230254003779412176900349633718186253501534773221800349813366972905600780312502181967490856895972506054648697435953156495300637341269162213422931554886089577874291360336432608601947426558883148692386382722156696786378261320192885236692720498393788821374580526705475860468608322913903485773920776394354470157232032029486401705214106835178752576320668472682196912561430455409053456780899211215526189017538107698591420177867694267293950433363664390019439480393054577148197641329364033760915823619564189589090072262497697992964774067462759356690297810220718979387965099017369361916455025858175370738444190717042880521387862697456872172035274957930190789295763330476963836505780593457950494343974503261806839488430876600050258709409328336123858231935987506838155944070939278334932967633855253706642668692860734071757766747108641357505839789550652001729839215964346187672442761544954446586272635527667186902373340008407520924047503252182537541199510467273812442242919995122510852769972829059303977076530889874121028368375968631472128744386399577354938100878436496380616574100505215633035353790388063155180671190245504376095560739187305049297199149583113975119610037233034795635008535215513861676330202830646999245944937438708864390988316751123782043269948272403494372348777267026429975510403625878405931234165121462059785753644340136564864980575456808304518271132630274367863039120495736780863702015069511667192645520846330221129299975813260954119570755739236912122334709017583790833055261439760320976075793039487586329445908937023604263970573404708072465172316331112109886088562274435247034583509876791201532896408188357688587353038854762209083941772204162239137216315894927567062304398535683738406234616338547932660636052958540822817094594713179277696134033944652913534492182274654533465177414706881081616450346743229102906605494676853516952631854466798535698610654759213632679621579427131912350546884881068310673587919330449100369465656163268705970244968588192569128856385364423929257562707528220881193902592297509852094039424649789556482246429304936087031638916759276466823560792048325180600634633196817249412268340774016672138909056936442595401701305020681772551266911538050097676201610877129304188306570091043711325098640634598013621262046932205078570476103066104294946749781079330113228192682525282721425798984109183529146402739524308784888981944821885343541463554147352601561996831164320998262669732176903314304653752543207051207615860142466652214999179463851486177245138479785330498695536453365324904773263737017020354077241691287371025180623827072669740882329979953371736121568114819669381547872407525228030267622785261324143906728378651100057355173397265401266539300445082448038697724248447469394941403664544205100192447310686873964832207163701861208747772659962493979453948495895965870100305148533461710816591494111209409830708125303350919946218458110748619569626993091042357886606429752306263400909053347936311132768984999980785663777530231471176286716076887074947235087693610781060814672823676431288692545491018347725443871744351031609550676357390642158715820765829471981676127190362175512930733373433864291204804167205888243798167874479520521311868419671184079238526555875371432157609458574416764693941435529668299553890345200042719248819179297894931006850342993654840275564228099103492007782774201389217618009623847299140017943894030963916015312863997338477785663387141573180321781374127413171347731072720123564816927240060563885788111106053902321490212065262628583581290303182609211075571423312891597829682328214733064177042065757778243339170820875780505936243208109945684629385700566612495247818406281282745253450202028906650918662427325010840999748066973117960612760337936726165242371923288355235437565784148734462335365747400901748654373650760166296246264802916490885002969817518300629688601494958382942548248860407031870567281029162450130097921714323483240754434430101449956435737346641632280201281345555003635472326814623094083432159189113061315714919560922792780662698950541438909429952685751250421047123526793026902434392984098051777374910618617149919955997853293478463708128854753170756467784903907479297678607048112166803949741709739344914183065501297132684696948637782448847803982785950400423892583353682166795119676498003413081181476365062058896460038994364589648668125903052295416261136635319294991246489913864650487716137261017264057447416648332511754927718564797544215694724792826597005240821361207503875532985169332675447371891352842006920659657292714407206471066502875813813710375064632075555814675297199968271199648085247296556762616080850504781211225716874851340244769270974276460270103437711549176267835508074113044618199997916988317031640719467785036708545151129290255034886975520169626336434001962373959127414193909136582353932144903281517913375236855475601263427895513038108207990074788744645163517640327879376940036287784904474256289035529608482554501338174097281674353530338338303048881040742619549731968128808402136904660948177100833028969040491413351592144478792262127213814731447388191218059227728867809558561817313033234776617922222595379191308723317974897647730978701815562926613679434817397670338083170081527540599462631248666050792417845463607100544037427893766419933570779195775712206364973256609336976558500462604731701157384708049620819040243329673767292365004815044895243745039761927349549670685983584642922963783169219356697427058068075834531134580504368266892206706127476735338924162982980016955247589044093029080748598308699208637673968340630839507017485029632619994015490354076078113326601887475406772480178212596472299367586863422511006886794505893213767886545274430191778813852575237395004631153875152779869304727865656106371499063031204045467838572854454868824005873442656460802867277370461561829385102655801660801299153316876454362855393337705366416189895377651955095620950871220963938371447810557875680704328292878798291379483332161953117048364656425700396252169820580712138629573858815392044605555896500829712402438557455802633171259887607402697995191869142642516149287751008610835507706905021157361885604215906981110434457896042055827279835703987810017698325744749118570416835689828586311256617405331226770877486763858898090478894062442051572438213954683690071510051709543417648904212129998772988195143622491321595929388891940063002874123533202118713182166824819114528868587382899637518215562017898012307849633074252411972716370946205985562359482179097902533242652755466101546752645430026174906348729695558352268729830479551566965656758054924252239708499340899132295706454730705230118721333899612246461679798891018060771748429305698542790028765212830920718713968470090495421630654711338465845984186648687311362900028243154607898417453459930562376498196009824173288866743918634784698631861192136308175256569265705993593755074250609631095821540171970700052277514301805136166190353800648206311600896278160952633210525716870898449766755400535485139103022830650187267603129716170614478562942525161104443759394652870460608650078188465897820385757620337476160805097444884445939205343624819265338945613672053867175646787029041821731433660526589467997815334068849169361336338941756721296541322049669803982481172566414013872695515321842577500394803089379290606329865593403487003539203517938534371556636288492555148221221891227395588811231249492962162855950086147770915523332033020330887877222985713519222002685754877848376211699929367300680005634061113924632130041422328421616068079372821645674989933876821769550604097288209988168034007058648194579493126863233468654296113977307041836519211776392589879793147311375915057939386460717457690300504585160575907520784972149944795765664772898085481188668728308125851500793957771980174584741297119214830468870826676462682616310564938570872699713987039589875265511256677756214606106899267824641138993072880928303464589711425042468766831176423333502400853017634409683200985500927367088215763666783131912109382651930474735692115285392986105874482224046646600709358234859335789734558208713795336152844257055362777608881799010267944027251186258747332806762402213606365318715464138836972886408090554469471772806291544800987709755125352715511231956993673063352794990008433792286284337940834492249176665855833422601856462406470634740782473940505747424681342379614466355365523748780264462849021364042370077829730443492000693025894895770465745984470689496160208814651660749666364173241091550610565981490560069873909517600738189063957290238332455515416452420999273030212094787405356865589954239869515248099351050642877024743587673247926529795029388054050912722521273334782219375866589230328338767485531099326998041628958428409295067871415685017783051444705886166208719353087882033797085185655930026325866512734130012252888008514510903217289855199741424751536673758603609015318189927292047182310267283301637972038209981068536713598910726960185716908961799571218422813893786800357672994358287621597355133401460941514849429596014751199520761246528894892225915045473621664048714128195416078893358524238477703299321109319296529614049245375626465067953953614978008212243787182029997955323157345688854663551259044765181317309587845039314286556273554783555175040876219792369134607389035682253709910583044372903680807936290426865935122918073500022931655397396659489234105770531447543295576810883345775590670487261014693680764781207048297346209446543225033117378043030574657037079342908302441773033160151844874392236470178725303440204235638850342098518137649278402874007210484028701306874404446885624134676965460728752487879929032731576046319500326344073612384340203072402039713900528271894785284996271154611326667002111795002071221802990338020543381386219165768115459075239715228284945679379983896720454259680730175367290833685181954613714076916889954615291222833171193159292869511854240241927534349914207047208268781495782965598478241318299236080325408697685816347131966113781446399383639540088648988080790401005455134490851071494645066792888885268454518361637288732865702399811526600824004659133710682608997199821936270659378227104895714552258323855060609835576093159786901926278966316077083699730904890206000332483588964094479329792023801277327729390779096203183133532623913096580260122670569685743448596674940194978399926600804892300719786967232060539156478418807445866384276732666565955832974464375283487949047340360339003685185439747732164538587156343432564931689776913339208367167680173951849940635252130387728425888842387334744771539030672792338971472029326356842623092473647155435221978086723899288527774171586323783368112960247418300814821857215013702293071200044410536174510549012018661115626139438353908399609156998440038140537876508688960606850730340487293794077109891742734005823963491944988175814027733182708713431689376133921158231958338032493456406792989969206971141191800358065341997576294154749191919608601804951675751092926529274062407433447442248474385797831219181177850245959020007227401502737420952031469608051662319736402635937759773389027263688833703916412719954322608938102608932294485321522233606178978840144271425998642972683038070366478787552499337172549476421205214064482513564700147817071766121677167951519010526456346025949219560865887990617597034636879934830600430089727568336769197740092686798752837906738916526984450128439412004209398799340481140359261698945953759127275527370781343079511596279287120998359957201333108364596101421462423124872025809340383941890641532785574919863438394692225894189236601300708979827137288262025526197469952063420160163372367017283443543744796090928695044044966827731233633850675461315565497029116190472264206611382634385705252750075950567964565083663079800985746677000753429124652886679745150557899862884508160587317315289420494391194290638683051130936969201008648538632317692092330928303147813939583935757307191160379749254546133892467847106019084213289221519940767244622904940361929176470043640589511566372327098831283647800226775161699560262299512277700535229046045313291782020757593630702955035522050685430233880152702692832073008825110632944815795108754970991906319309426885349267299356639238836635341310765132979130963111708199076078304348663581054830021416091871736726315213665804620545462791447121486738938149707182051972155479665771937470299046223715303224142336885036493451536212237814550723130409690686334341453743141454413183505446102544405532977168010364094431136195236646414315703067031386184920569945449784680854697590812737726489853356504495398371046331243031407429735333912136806768795036390349301356763082492811314941195298406148587768238465518249028820635818901193753035592024931988088145892995112997051886836005725983655136590795291544125262521197652840332350808800952265707622859535408724803485613057388506793052788675046065165886423852983081235471985441519714572667798402418518592793687640957534791091688296055173424924308286889063691142856874121880532746086827048262310248027108325364875897476318337928402566030484293969829350452248966404760303010893959776855623872454299708795330629736669730820533932251835966570894614102485063229674598791859162680366027251743504493513473658160556221138667066563421766933814787261113154575399870999291280672161315434232480508950874560134224778651751937810682192574307036923654776671712706388616807747829570419782575166572050137782428445443097888696401323976520533905196042558300278022735741988026205141765037829543381447943782236602431471806554694721234693347736419335400988793430569414786006608348104610435143082232473290493658789787193826400552187875978221304013278645845204764531798812866013962256879598878275104576305059947839416557445988491884482653820886182516047896430107031273299455237328319431782327391921637540142003072600880610294255452692221669718455808337474721032878001398768737823561725703487264746879277630521656440828133018018506567100459306616103468920430660922072309579290477096996026231338218906876031899819428580021549929908451975270325478553271815186799068720485227269170930928756468561455804627581867172970485153343850552764633494458340304674156057705381769840267583391697851737094053871610380098505551608057116611854423562723422384784235092444561919339144307682395479055394548834807827031269067721097763652957878263990806590290843732945468067558030395257517639763078082893689807673280024472785802245027893093908860422300263298973904985533608202826392178736237266206590771628297223702511676726789845242079153531381058166867101262512482560695749294492574619179650460984374396551823477193438594147677465506275812427840456130917947689755009513605048546467147745950352211097507033226357605409127682134301690014392831101968481777961181457735105455085960200549511470498429477157363075383947798993812035363278192542064002353360483694177229878977928987458105978880805350882650577585442186604117840592596154369231359221543998004297954058341551365648264740774730683308076384081601940163703210830790979892954373291514767800354957053675475841053929895096924707783372449966170986086300580636937815956092980294720273072970167854200457410465330915630971781013137632015111035899691772581794741654533146638135652131119169532160507550969610154641654701232289339985671759688194967593486073501251624610245081640218399861345405207657970129754104352549845460687096427342464363723360867222290699877563282536330371946132947856130889001889211867132551511315770437912241270458260916610217420996016715359052814790205095883713846481128444289689184177207869702523704582905638499822386607868807130083694494188617321565299338509322276369449589298107819687258573242051922571807718250355910727291345058827155858871648927264041036327797326395642950343954491837467861593607707985799507381318904535867053820285666557686645674092376518623207803064932829456696170187410839325407379749365767654416722255420099935375839979047763193306237916665115006610466603465272693115548664685636093330206184636134737584492461328441843167513428471822533114905483756791989861556332477768050113856852046596955561959422565632753780703854626585364711864009209976709214523908519215623181634201581794528782158859073892967539697454525757501670810861426831224959229288470685462109384811044601699815883818948611063999855436490433510271543120624026576777331149531210591482717503258194631783823573194613897414979722165438606486694144352942575385062416403449673339029837191823357489162034369248657142883524360134886079159069751116070667888663771087015265736154486655543126198487086389050070780636938671420397644688763253095055669894584368851901945981314435057226814682936700471938140063340565624025109811280814282320017656981754989313064969029486076753049829038134052435686165323698295909022919241924489205916734108882479584915597246579564157033424527100672695168324101638728558620619693430761790986003380601861994372653229846137104872037925261924326171038218509061706209868782885355947640802021285870322675450719376203396275280474207987146788155279945162328045628891318698343123048132487675269193207080170771498971139044241877576689791027325872752377498582990919813068387699693416996063297656741715374886886623577744187385429597365119051780407873410822222531097605753429431957991725684893682302192516495071339356184194966208133057277858874487776475747249294685152828354985455035809057182006118448459625196806993615174653882233049963685072582769917588626272281206251675893938378696835748356179861872363787140184931661825219526855828949451885810024421029181219675861819347170695486506049414020707550710647465928550900071742497642260578298107474929274475451730612628851386196886401813259107307752903985240543840951184578561128590176573021641278510105405965182459382498245951371588854994278206378352866015547795190200466610531264495385186497380979142504084094808248203026746488462800887905503064567007703205580168185757201926876087323187096039352936934481981901103001316353422135061112384412300799773769287636481944704016283195929172965602134847947641093366779830693042303487959675849354984437064726028850602427405672086819243812100617534351904407038004106582580896144526963441218883912027589910595898978438234103790572142313216928705144806851418420430918582369048205492141744445312031635112289929078756240797334132354481439453618338550511215351798060485851461468303316792232403413917546235919504476109956387139916474122925975918031840109903474120495184488854904298751990544260838911118962530084106782318354429540607557324208999940863018734893396649293735055681920530309363820183915432281839710078933585823187716317114952749710322241720575908486317189031806129061863594828774659845114533011069659111898393729520184905166231829280797955165449403730700495359284272452243121488037189439538974047875473676872455349165324882240279199043677236530559639344531726403861789646047518976723250847303036539430391336541802316232005282107358045917201817572864367148364058708779035703137518272336053033727964634927789419164553655404643239370033203406446881440842322986545687590747152055359214984557397757518165511400211062145259348982768928247209307186973503416438696193315103358916708922767837988273939928816758743886417316086170917918463989300377770728334224031578047094369348030251418438743421261840100302535298221438790989545305852767876088607444718179253303962523683998386340922655943933438752448913375831858067109063142150886071866113755163977769261148687499366553214007032835273452871794688222534156054021908833676240232417099031826959235668257761565899776326046022585225452667901134160822315024421896393716151291575273421827532210250172671388995563980269367762768008865833007979386406783895972791037678780418874508061022599516995284097353970670646322798958691308592509919097056215286370110507684348419168779828086061503501038048001665137014932014634616462109287327967435371382271773164171892673674595171835464796953441590591444391926564722060580017276688110955183531667996193637252989814388976982796258645547921051394815495008378336360246870956547846667229949341009221872873647031580950024047039730727041457114847326813956388260691797270435572579273893643007085516306097342000979646286056169026869312887522705987871516268876911018933878302264239314635071661522197572796846970302449309212464469894264776538653280064678764003065643200507975608581599397622225974678403563032022811683549961635405203552838367043680462902956414036691148300886041251507733360038813279597420016648929431031956264878427166934808418427914259281607956193406221812123793428546859833933849005291768787825551665446261585382822511877438499575631558748393498426123485601256501296743303249801987423632960319032800677124178405218821392907991419092459741820544593322608022199725739004049047199153522381176517702914067013276420479804461317022441496812949176889336865692094241050964450305629104068372790385931076332884964137719481995624925089986157556733498508638875824599332904141277483005090583253121955249965499857218886814103286106350457552933583215498094179726817237268723700848825312607372058069388099952855312501138141946963553592726699979491983159194968696882075945973344361496549413192068273359385718921297888198312077973099107267938392698334324337429752124734065169952007428871958121979732981580571451469320967311924500192474820271160560353043176227698882011878218114440443099143720189362884570705956213315945999522243558308166277748225415112677026173645633034218104099194643274286614693025310128308335519284327728689220311409361094044584864591179558667350727731079247499013674358062072790484050886080760366012340099648556886420909345890182561965846087916613536355587851251194181808592336453601762760108862900253258842967989120574513630340209321588828642974321505605947357389173923367241956219896771747824142410753745272737485620415036763697745633170642777762221635256838026626169703098006150881677974225771333883028606426615558750303656544208845458522410468366845631245706691178576407588553216076562540766430087033981631178650845908460586556473524691718838774274038545859786621520749927272228282199449548690978344548168644363781475168306684247040498763514043571992117722460303310927466219841539794861282862319176339497498950814830140955433231396671174847965695532135342183575506762125452870739122432322772815452373400032724781230401829611876962268977788802698274988253049644217323308887001324278691677972576538325759989280953678235955859674631271277611202979422276538653560892317253243000418799780934070965361338226533923576551224530778046778792220743701524552841026405960913644297876873838972155321274442095540328021445939940128814188259149231834004798588892460376528857776717758450624510758034561842648917444282695940843035043887232073457415515527131023611956306028557501084357402766387224875711387847844068614744446916636348510218108632296323359779361862551293290944633732946339430559462390229066705290481105371426148763731527196102271395917861365926714325199576715901947740135927964467423845572818189017608186100235337892404351036985297819139728274303280738085799576087895349012590941547228784209587025867081647272468524099025059029178871180436386255165624952319637062626475460861643817645360236040152682216725334257930783792520178231774905701149279167970732145702045392612563515304962752104208581574882476184582742081255146498684427755004063067793970703721730317227351751728679592518556748331749625317048884049349154554301194069969008828984883881408774549818426382798900864917299324285173610782951463027362796976310039961112759576794805273698704435025299268625301079464109098253872361801030651494827275737531630735320147512270731047878116222442369414354453769451373221940548005132484779655115193909417339485706061335262252742949963247224758148529014161650631075565573131484349795944470514995996377352377696698425683019247217877089922373434300097453389480676163076701123401416191549003803863101974614781196717210806274947883893649745839562443138418355297842852181409303154067548752155034038220551433614794735002211670066240015079674226706281077358251782602379120162261552997573924684659278251526507127431879892650181464962113015597595550822965117985075372581660217821642264939449480450238177551015831928425363665177098263302773913525315230155695882900391128409400198544766450355996542397913946865591637429674890353094812909388572063342074834278440104798463044867912047154074650300637616041766605425895527719835190018856415574390734046777505769789578317880556274462586043658561441529400479822911193593395083008403351724963190948833251208417492605103368066795518828320023942942792370255420610350494119136392771946922755980783331066669884091326402230680885404559338241300987632619250562271880445886805833714021458177989603082954732778540389981962681748547882259835808133998683147102573075801162078356186510213895317362429168779654364458322649435068683930276027608531949567270224580108111446832852972717264717407379067961494833791891140803555436309045877406345136634873421743796920759452637315160770377925588602168029454050723114386758925945000902743570316384507612917318325983897697593659223164326593195564202662875334246673556682583464153650109987788292662663352198298517614846607323274691496927820407532939970841956841327756495108628395576375956889955165439811054043179944723595968928494219709247549816875016067796359780476751521608622641428867728188109912642969689149299754354094359999694737472344485532549832672468251108075104826655888604306717193960729773910867869122023062494198524475943840167433665898608357166925546404327266867712189254287634731286715709200698656538962902883449158488661153141752948177768144468068438405349090789338706637292543072870153976353070867067155501043300138642883859975143001040524615448623026164993396612516863536791863925968952869669084254438025820148842239169246535924578320348029294712695829232345682997597964482271036707934058188410952904288741169295589566637785866924168327457208748794131565633548468444502563291493055287902851165715863953140119156526954023421409577572914455884616136454578005618485026641427786069686678551869232205291865628969177165069524569770287649414608424025447853235545688780690896348452296737280428483511671093684622098890402953168478127596130391507223000157921203186012228670914526941896134452715178007354253694875881578375429472225167280198101081242419662936270887602595188940325666504010117641264070334753546177055554669153983462190861352754961943941576103455946962485828865343355986169731196825937653651093530232037520357293588068939914939447391918132652729737124564872227891871516513148227404104770894430403125671246618626825961168181041822743357082088417699404640926014673869092482265619020376127038903030782094073293606771613583977959595917411042857196056528196992161970935042446629400270271947068406258205188340319038227568865575328480821569762929208930136164484027604893348216260026864273658177103838229210829670505443249174078833028190561460097303267750506362149688694450456334342643349851320919822142815624407605063731750726191330452319027374177687067649497978648297286149910162716079099985255791158857723403180813447161043550928733814514481529481688370536472514522812025029065197607209579650388207402339430958463211152422198506596919086755747200456798408831641453738183847476878692664388302800320638279401408769436595127037657750590437289748384200675026776212289848148664979606053144114022968594614297130749603388953025655895275894826025221003427849591287360055651076241462267771386801322669117646562996045751518675810414242737518107507806897176559586580291329367595206276408975854601735875940727652781269659579609975005093456781444488481876528935441178669904642267525142278353244328025617893913129818103152596627076560740549675678938088872847237631024522907008032837159043718059260703242548019676581406741572255780988368165667835515703510403809300279641635698704140965523504738876090078468927524617668693197980994209015866420019148266908925385386188170741592463901669468557908985582413660677069777108996670668170829993296904314591444659322276758381521549322901044898471272699276695735862092484733165889137868867989206403068194381991959050589896943089130106947183587169691849783230173902169039379984489369578718423160850168846300157415443388734793853036127633717285276567625272932716008968051548011153757256855825871735768358350875375781341378685408243498244056063172830507883800741172318322934696337143977462591661164634387510521598850408796749672183302051985234206348970913907209309494701400277701569579364676338648969603737457039454441238121686119513481936542638666579372893574295241104963167720150509045390735759323689368645274637403812666678489885574193466663969402080268722819611861500609168355685663418429406605382200287090697211784509419812288080028471803309240076939023610498922359848088842124507768649719932352859982928622804443277434560817035718073712983772070712990385547251859121138462900421564450451032968291382582854328148769700342272354846241770468468970055826069419921541159038264836962202070618797720677559266214079703889442579293400787292126294297522939801589014874409489312367026262511787204193523922392788250139368993884693849118474095309950333110796961898904388654915558332796286874943448471929961328571324495384246654557597886648518080903952927394774610839343425606080537314056160386846585872358142401534406984061553009900130803645238798661611916779658801471673389677241832238592070628182653868791683205684955601911746215407585842612121328499047292057045164542976673583175962169494951972440009092170083814567010279145157852817853787362542718921603663214476714549450446150283724905503773350092288937177992727667731494151969027672609486810730063920744634204434524850650271355460532495902555091258923441961792292895394228089988805205303739680599304256092344447240958011407740199592185391826815279882390512373965772097307539586856216713407038477169216627299629974444209061794115157643796006908746060821909720830390600439905410265270520012282637322539962750834416749580473643772675370909833934988555570614414255213178180903735295371963958189365307949040416313613804765379847280320873585421370276650940904877072971395286851388750722023882426222450207897795682953144146908027683985133094443972885262604707099065248843046270814149717364641059545663458108764370204055284875145491485082976140851916856729044497499049774890386936920132924962348625140370829761091782838171536807255093326981182331304726500063822136396778811875924188042215710631007888503395200944212962867508898732939186808770303514894800887502120570521068752267944899987164191826355959100382944644060675234493796189453677229632627771189587632644326967582897752995717385388483155549949360318662166338093630853057177751590202963629954209021021161448925189101784841688960126976126636589661334382027211757789674613627940979860396930852811431693407198649349241675317189616492563117691304029189122298843823628648726646825949111912210310705850309057696416293342260751045346046177660876742616665411482549943070089839280961718306258348172243524662028270187114622485660416362363705752083877240793723446380145450602867095564059552533531505604010639389149334870062762121930829110556491676174772272863683864398559017855751628463761585460757616714665861335912833698001868544985082555187988100023094972137413052860742488507433828488108181093131663176502009005076440347349172138555082805898994291707053055906382562580682325221872708031383079805985342152790929954856640899545908235876841046440215551936729428019911248986032090891746893075684109957497725293591617571639220012699134726751072727486255357746978034483686047985041471863869547110393349494809640259077734665789411624624805135974335848865153470611416817064868026165224501063513246620382265495838867150071454291928103065016927531509502762975403990919480231642157226528942229175508277772391687911696577588657629263388216816311657296421654466771360300502080102792555208061160161383312735150148460599049389721510224988859585790074880069369715203265345512090892769421243927834447764173305110125107059558412967708038661383190990295656212152368515188710335561660546553627126226895696383110620797615202643104723094263468799040483270790316957306588346323005392723981358285813982556257678895284319605368789643061238752323376634185078217411716594667147021107193181781104404205610683035989809947443956188904023155863562283549955258203390345557458039575636758046590550729735987845359709992541866987222889141418353959933711532327441130510448881669206993416117143016725609293138802146455339340048815916187495148540449364007177232751064546791394625887486358777161755606123955217594939760688827700060511722952224769088481968105910899371434817389911587406529204739502972098812579201238624784248478445573807282627881710450713505421751611411795635466929873928053272685827251280724183430962177152578645905807560327350794142080821371518966016952001093769470022337147282007414462957667508701128612419639014760094156186584162826893178538876635368186758019003500585248600669648344272548185795179000583942867049329667509001765867225418022977309728369035074352514904259973920430936223458052552170053628792691035086175451558305063200429476530866912832239381751037724364530644463257066956713888867654863178529748487431939704673748942562236579387954860115063266075238696678623797118722216960311209562024971955178315565761385618799674842096713483703405491519621245480077948768822521685041104651705411396087123743474920070476870309986215370653770761655009441056021031271141914496110024453894744889261487253594960333273442015676239828988813103785080620404321291942608442192837132435062678516392451183750154172964230724318739317987545542276103930603512143093804358327856550703355873129990845925903910578305744236679594301814133538000675288639565428354173948193645049745376612969764071401574295239030880872591113644571771793219447755179592696234773429533962060033098344158003997117737826580631856300393467734440402247222098334705475456398917046608025279919816005655745312946192593203293873521109146723736620275436909671677355781920399425698300189775990250685637658560817700185143939041833399483581778940273282026666647202705691082474816440955992860143055561568623161044607854176763984543380987062552662425196359789048467512532108971623819444401294390197038659356341705997685099653673512972712114582193969234284975922959817423343508719895183388528466696554537986234568650690154391813601086412131784678705061965878418329961125922850712764005877188611993786051271580131342601796485884610037015248773707336542101399351516683171024428663341387754545628070947704119114943666057419524144799964085534272284860172485740496733343415700487829292348435704166613484844949314855559294781671085227984270754285999050764988956461566631937547315329189552329516231988900456909628716765007789598233894585483076918722096758000999468811835507042943049522883414903436907679487377234044388155499358041749431990555205530403038762372438489689941724355964975837920904613006123109497171938062945789272073130098006323816190740433258990204410657114783580785209560698297024678554523959758154081571561272248324942068632676409026456134785514444508085810512111594730521628903443652815643310094217500483797063560654464869637967716321627288361849090842332132518962838369179623898535244925247308270990614542503774227134240757573118028885791392697200757904696713231962741414390006273974930113051158272592253487299055583361798719864868583350055155588788671024996893658402674967728888109283925531982271251793094074926453865550899378152789549024441514278407612941177037112836213560570652599829470487781522170401727631918073252464019142790522900441641834884951602394487651459921689862268576663137565756164298660157980469512059207223755153853381135150773875195153412025273323702797217624968934028291962269818324658632161014802338630476368777999801351224099264994120918090082105421757182645837071948717475750058967192787771685759994684201874937614182225778610838203567578927892843051556992884831982111649979241621589149093675027169371173921412756450347533195862678330175810053829742349113022440469749945821277153896484157763262851873565134296751116556581523735223045191367544024142275762867279184208102413019594139133061426416849882222964552305223460646969084844333000335017812473388273013276829693595793149351671361346084070901471238466645970330233017687550547457738167897147805529355237404292828530363015161773998512202185572818944788564690025237445830419867415508121992423068900590220084297725532270684055654571352826326312611221635663499117459748553249566901712427116327298583123209453485724541835616505718071569175259762180563451888628988360968060791514741671919401050806424168187483838234579577971328721571093718173728840594161007080283066800721443037408260130362912645013830961122025997366172273679114542467647485840300729691333194617273108566749541415864263412638327500889996829167993333553812642894667687712975600675128671943908353365262249534481077554063546707821460103908829599485162856535280516017708885119655428596951539618817993940221778613427421092945776382838812621047704903439766222058778290453007511138193296705032800504592247850432833705479681609038278402861042386630256790620758580416917640178615065764715242792180466597085009870515901330188786063262885806511086467165605879999181766961761491370205985414501320191994595772063043923470056793420593744289579038809154134710975462507193649918919196814615984961276000046453617269875908153389094157121283958713949815327262337316394808080988624684481069024301942476539699152931531353887832176875523229338749941364009550919978326018616795114451007432961175596095062371603514627694562135118820577022464136355632450878064743247581023922223628900400334110542862457981791668793864902492365813985121993241301953585440312331338750260080474701329987337709084919674415286206933623169070174210102613272721284293097918416123662669700420421213027195881282398763649630908626592175366747358993028328731883995082143114337144397903820008524026340464968676265284425829647125764385254663328572231218746982104356285518640015438344135421025894823108770730669448498724925001366544158886257412034922270522645974421929370057166412719745260011272389053520672232947999299602274094991443324951012196377402568934933834629230027051144364552485429406148840563025717429988786011463137992307447464088428160607012444835063935766725319683916556768272805378584279413291349732753151560234352030797718379123075854990575245573748886247530775901945825351228776559634511665546763082083769040434846265605104673372946309135062761691000083961781522262084305113448752464614504139396018940321465647712968083629987916274367005821502906165000324414189650872995973537472370612521317522369180045275307086774869052924096535001975977370622697186512751970299687812506569380736402876947513131141613131882602439310084366560023277263653360816880571197079174611585854613372760193722800355095622679851539222309909648040666956420690915453803445425296078438559601265609709057633628690104935574297375255576329642497564123762124026117261373133778819265677089622248106673634787513229492775002581700065995330254139977355703624191379626464178878683336929980216040767862783097931851676731580142919045153564472068091022531322142384632729975855535782919860266745486998784569424355399157494136529083730250010916825493851845867343885002005612655893220098952240791201348511648165489182455257847480930539200916725257190737751840202984505069738566025014654571768998487549573246263198775331465730971139852919227518239568708193301869953684973994668269983796744581918578567510987178043096245000883241265366706794016605359970955545621153330758404897147452412377890294213770153018303022037954839809470903823561699710525558921995048968564259393583101135895092158257898613020138445479769473927400969260713238262850122883191704271009478706793441673100966617651948935218131468663717291989740672738054802668156939702806825170038322363110070949087681787732833364290607772239852484381517007237965705273026774275278903262960941675467373073967656302757023927760098211004122603167025047049813325817287690503539081551806791071517778843178857580805265626154683357912211303493300574104424424902115519882854725730425029478954293944832229119319408063192833440001371747593699756726522972982513581232809518058419529741105309192544893406456581029372389172350531423912459733418757463127675379961135071253560512199272483167750507772973547726399536328557710367413512521791236377324748925729168106119090533192592018106506246511241558112092302510111803708194463356640993727990253232355199199045813752492700996473474081418373296301022379351265659191773984616402116905293797091126475936548415971492233951315866431584640825184643176079434536846161453361528296536149774801323735515361423001430748787855201072419679475012369528969006201391563424960738115107246630626425965828232387293190116504247888570510480096539625710680907423550147000907369006668204575366874070137695794897830596759801659690336575248740717753883747403400483383084434811061612117806442897695011116902924126222262719093169705342230569073258706839216680055497458327955660931076645937168498606788982375396014688500881547960888099487940569479589584354029528278022897702835432977996933258639802563583193328171257064511055419672461212583871995203290591680704934614696541260180373372685460668086377017656676741179140313968941095980380139306418910794327688837229566539453227399906954186981110402919221112320115400967666628076747512596098303607712970272830169842703333716528429793285283391603812680245043141412032758145727191151810781999460894805278031250844036771690696092062039415807133165917045686894910154230308755825405631973543750176915410316932727127318284779293073173203832943880169993314097315995068007360235433920177419465826808145750978036865869237601846838800876280951185450545415331850892718829383568067069723952247414809234137333980789088528265487419921975056233876613297639702494120963181346632518687720883509239062860041477928939803289869699297060151137347800008957442083000883734103443269080471227592403426355948006920010838678560323971101005598718339738361429124293079077275612154283351186123004983958557700368752038510137265090354227823903965815376085591945236952681160250222362560912857596981988751234977142195493951825987972569924405666188992720717644749488750149847938320867597406153306903119497428927697222203102946758069574377940257487979308962077749393183295352634710208446612084551015772136973273317368102701477520393739130854575487514450281018475099712481342690429906760000144411551948251150343685106321401857072903476992508510878680926630801059919272410420622304685054689768294283384522402900199895021142222316184489735811889350184150725325953361599641777009480367502064437257046293433788409111257821876031355380289157463313005541187323858910864289011878560493076167273582551861425223136939415104474080246785135440890527149848096583074710101491894223824528503798827683795538094305125564187174934187652735223987716111984042336296057610167615315347570492242792315333332684126964001506316218835264479078730978304916333615008654147413452005495052145464095282187360103568188658486979001110398357672060019671097721109584588677012893930396222293711914420388588046992532717226450813671809885410290811079750732770830321876170131905259407306213964166422493696887887662308723554493839624411627934804969065212085831961648937186044447019579453518837382401863191988183048565057773637667862505582157980671609569282713842448552160664258141330291155535989777787937233216166246248010553877065136740254713830394813285502095446205196724362302640433329066211824505258291933875569457154067552948787308604073310694207916070373828748759608528649980924034071665012181078541001309433982472370418172828790879997323247582327109062931850857432011365177303732612576770605977568476373751917475906733441911313922234829590252041318900242472874134885981144579141649604394342265581152492005496229037028262546442112236544558647109532114842280625974283748602071083412974059555109280989055952525895742354425207544397772511316680938291925914926200635344303056812451043912477276445217859523623135671087998270480974570851614238661390911283898585946396202179138021291338357414543142479018280704234524618272968504074739611968065037560928994139608390978884380388388710467172607193279390523607510682883499034148549742567594391238697998884275402023032455263455994487397973148306346911313071759755166908243686446428501590503330268515644841252758269861584663723868443120140682751539200269762685430123686556086832283532978921826960574127554113601385416384803444755292365968270499894905812326073273684513221974364605822414905890849673671737322786162844760034194036237417968680376158319829605720734449883396436779349705389117158013405910306690364100906589839647382763611513738605951739770633901321695694723959183899769838269398076036626573050010716048703718876116192545061508947987228212335746645990345841534461424227944161467563887571637140164822491663996559562871505303965318527846941799667524287534714558603510548005891149428773326117262301227501212665364301532688156170431068271775168626949255142844324593489235715355908871460785811347080933613403278347704188390244527416828254815153556899634223890158235010858917903700575112703513492422792705904857496140146624443732302842722238231956587455143953829061684775783941683806037177377362306059145783922677197626588097287085395167069196725862928110218339868351651798987391829743410389986598526712910865394648910280306088698067082181770970173107705384876249126606975737520169224996981373790729149649476135843820694042540138246885768155575057671550190604516937720578488669519079532542732480541054526447902787438590228260240816401317545301987109097012278109342145664824011810088920885543564931871018933013459560989805208635487337811166746521057431721161832881146560276393316054470055306117731475177703060440150083113600558281654463231091707821551588330785197660577400262512942145719159522396219846543673149350064419997519364892771478723735660743473052356227915648040318159550254717789046176829473825622771175163072750352074854507075710793917389269514032497616672216792369844193971700460678334988062253964163197993124763676154573839972720997884360309097157085680872047811678676359199811581542694686228654181815504432206234342132790285019772661935205606875708816827715482424940556735435451817232427484760760707231280695543911620905437729524756525597500876208050940099750635599841541495433944329177684824251990513512528804218219781554350007455198717852998728407190993448610042046596444113879926875374297058056691376258744163895294412466608899292358146303832040164827992529668680422634101443923241791659066402017200844359453309854864751280918967234218523939878603451786711506524402470703663641848055064050789583325046968074845035681084770676865817183235032141019955137057865824333797572233507596006583340931633209351222770828629202548237987259719823439124970672377939870562562964499719433171059238617165132254262699284476619341738107174586001470199757770856218463222419495620107541588121048451644899259654950351082593811564616561051566270456240799969999482830559510321905923964309481011174036075944898235170005199589510012079203059831886761596846801917206526238380817375236793437495880794772875849297414082916044902283250404573263303146760751582262892072774015844783315968836165081456927118310372352833692881900773053317374020943193102404587592341675552097545827548570631426982279910482862555063328140516796268519225758489709011990821450896654280322191983517483893731177745396342208450936571755620030594495644270192672344911124166546895592832313811664559236923048915816915135313096503499009561475344747188136804664019147548888039483988353759260264594629655148219173088499954817572397784521912943656672625780076613894597843628095475520270082498936413028790559401072877823686035395047094797953423645680164623250158047388580088888328895456046338106286701962988717875635497023931994926299950416202961775393021140781444648278834815259209183435226351142087376977942204579361111720481650819024484192137872756951154132081541665369449382248266721796985076240778502485586609924965136051454769943649371864323357228901136060464302178264708004715347515528924573738490944838051175436869851180705051669874147217017930308770624910905650362933855992160285978247602010186292388459780083578769139116064148459080851960373113936264526990617636229432792859435986566339414561354104521117872225800227114352259193620472705024366836730259502964292779447650287634605610233932204897526827699079015780148058684734042494935566974897764159179088940945331178001975720046888548342038011990589986985835271746938639184176043929825388174941545021467511817289328880006944202744807222805270162664299348414525184115228050060716826790733876333151983771958649274813438869537641963314381071765096457015418217627604740109448972951064168069758487672567228481603091315862996499573727725055200462228357719452865626906799088091742801341764313227890321341360928673902702402346852871832486839179210067033355577986906606999754041165399282539715974809488543678961952938507665506887880907803981209903331973203896762551887843868379712615144396831766867372476354164361389449253111952805768347140108920067041616681116579699710175624122589719988692276683504521753998340889833129000933792924591245601554836084804895037777474981069286930212798183121588790129123029085966207725805340914892754431923838716761406523950350677219164092522720920376028287842911661357192714259484976986815950918721700977806238207269299478527253875280461694468737150052560634746107022141527816887934972320736153059655560810655479472598704032338155498608974485336685572625101827427152024883120263995861832245141541286085067125965040018566395873621618006851880790885710297670921352525373831749022797158753639744173039845302701045408642364894522460984290195291977705894937856988247928832296717216439617051095214046295034994904280589733482174403617314790750533353460694459335952577630346930242736078141114263124092651402560896686263039425556488706450627928989528606805132987723957049809818561739169001197719373158716038175341520983215289421242724675626593780659369906589240363247878889742733306906171406461346187290840800766416827957797128372440579235732062335266536682524730314633776830899386891362424018745903120554179629061383508986206362928223875834513174423008378103092839986395203860850231584881631553611017905313482928603593487999570613975870926216861154750157799319141614191902950959804328002488997439888115415143023567889908257961352928025230634830220377228179843222827046962245322103898704990187572701679223113461085347440442480924213952554386064885573182720361267001248627594946735924613204605679165583712908463864850262851307877341385247509107383315864634733481929972145977580035673215620946894804347981107165505773704384567857738363857492701606879789149046306768678132917030730475057037021292281737852122822072461314263028443267968350343184612660496481015907308520207724999364302407058368329438106737203020841145932600710092094180494342053918973158387277889196302233341651337531047676174582706083177853360464628679791156037133984698116029076965293478885505426058809834349656706318637374289857995290155850156611141444496146176766023219515949580483144728247872439863164742305599202444025946652043797244430503998823112577596722644732246764960216830407389114436806289501760997092570765579835083846368095027737303774178999623203407583817753322343046660180490411899874593627488399996837539527807865015712771941681164746437007180012215777357434701168267592776993563872421908404305298492509474082555758182986819575450087413196157877814816589132782973797408743669051001037524581590301158617260886959090869309966489286896123916545951086785411597586269635087516329450523661968856058988116350691989429095910006839806485245057524035719080036774625332639443968304953651507142480069486123210794593084219495692252755950540271939485841404351857269908567364979432334426185004343819841804446888668425799380884776342200231600600822886828053495917333841398831835601752399543973619592446180707055497799485001622850218489368083621192564913643475720299878952982632955038991163816223768894181864786064139822931401424253557473325554631657603203807394509958797063186453111866547586626908698086897591306135221897130803228253915118687364793468179036496103839838587109616457590686080630505761046202560877367447093487337604466581291621957397397002840248943745454823775545630415589605699448045400821665532967429098818096596314451981992101727781216487309756215461960697862154496878623727527006958979838791444168032254501580670602139787089152922874864850616767418999418197689255515592169467736181866029486153512028345638592571936699978539141708294344239609166069347818400181372240668485711999701549362990619616180321747484787653353646357502988595391437223859056311334687465024610347223445031078365148768272818840904191367740485608305836883738116161753069886139249676934117120500843433538354176238189025903581841600673594788178247625242868017646346495426197421952660597821757376229696514100360660430257607872851978548672684756986361752079963971622381251103974628023774963125782320934470456748005960035638934329197996414043522781822230978464809647931081809555581858080793563907114917566881743291093252207575042829483653604824410369220794321503132016183210721717200659847705741750702997414000686878299220048318708946774094876785415278522979842201111691366104161562503726601687149437837743749351375801630186614734215288226020107357443748484181970050868980430562399568294903674835446597549039392556121340311326152483722798112621034097715661813512841489863639546655765845103457587882486770270211709300351991391707845689448822709752180542071535945399712399161014021894240201787082692433086739431242998354888730176267826032715499712520762558202240151887567373075146141627292792706837469221911342599669076964345334013512391775114008677191072742317440068093519226004675928769597648569076410151611540989670925054984915222251628139709897554196317108473604557204544693075672165298778037108321516338665392672340362259075888209800587431331615386771854214518453477755243270000448469002955795904818025978516637037212753911516692175080839131656039251421419334271192529612413526759080192889096934080312307938146226392968646195883128394063889391590419437134480791883954593112943178279496976891043149220381212688846379489734426435672992306014118583401174860984322576806268194655926888637718068132661647111141272325574365564852724121219929241750648315198555701425041674131180763517803768413141979850989659445701267455509248480483135309712181037124381647508726719279261315400827482251302568885821684127922330637160024682852975536735422866539668171490079636578029506789382391092762027756307472198974083755719241530215154781040951050013393506726501184510440722284952521997151028367190003056083270585412965419338775963754608320089618557747742467545264271245195962461325016610776867074848413268102265661600919610256939620548745206363259872057588259913848106562090942825393335252718180000936087578635708374281583431476423110420198073931561029515189956323022558153345423594894143461801991627052734736554648518581033159456581946599656300493033627821251764821022171865753316081861279084685296775695638486384879002469652145011610363607555400543900613494310556440693678825753627900097338405249368733813503486108993198575681529094586119847021875574803176644917841413690268106577806094786350037864971506641635017240038669769376052385591679494700835121804986935894248007521702513685447076357906226267479611452956938913278521942326291280529940101776749024523098260723415272867091196287555548844490006217305510625708170418774111949651761718600754883562996129960216211624791068270761204358518090660025851461980913467569065505302885077776133135622372351481665414881283373085686994581974272855960530379391068761364283944593769475023523703985192083184677686910581110275176112885327733519623395404367252132461457716890174056566589902482174686287530299124562234077608171785050040950619051911264329611585277935734120637204617099992230598022805253028422820527105399480736196852833785116454916009326363449557353108759913312189394685499136371861097883561474654147798318802662937377985797616635832767637458139972697337524853896781380509142010950512783754977517887286126345582148668786091492175705334376012916764534829553305560043800983268826225520391096474479160386503545595829470677518578888191076366786247865735942687391177917375082776352354633855036554372415215068609364798976154342658835069696016327342739083656439063685761588028595949377956261854079706946761508761006699968443220360967820476873533638096179315990169134836347508241868901706143039537692300598912577343340275706486404471478073391940448451764323767666857696594726062878297968433437996169513835180222117343715370476345258956253976536548686607136532916692027242879031747795537642872338224476085833726000925713339870634635757045459816123705925930889553610139623955624376548361431183504121884849181710180599769567105751279388079298757620161121331524107025137280669252597544469439999144925248614640095416168971181628826185692077321936026688419360898541676759319606496678470654489802904842607319170013824291796714478109906166141346089134451766419908240343025784698113429496045259431098080174025568258557899949617511675756357434554536654155836390210790076381941771237186459747754718233107220406326919872388623821361048274457994077851265717512939618597615089174670324075999145615691272197000360476559117800226683016875227795012338418076602573958285812399394676268300444356830783877077275575209771808579422791574581878154030107686464315808928991199018951948164204336941243664457181908814688810514571486556135103957640718089122038640599550677042358823717967116409111654168373326127810603191003482051542946657281311036249566781842291427986341698998934929538435990319632270886205962818753709183191061610760504728171671801373943791394166959887984701208853766445568085186557680965999161169784707506444715400285532344094475741552006279507848219538768802456993086148064562598351920427887683388223737410041644658600139474635961769891788726420554546516480176633773411929933679843898551274195953495792723365896911284891801823368231048832068978938774991596474207211832366831465566717037837859402327578455623135119586794770653401247431045083247565000013577741346411738344906828995777276293377558895293024698149588655697772259393785836926086550451069877377974694159647159038239826294597708019317262176255131896301955493243710940261028533017013717068016849258003253315775944471477847521947698092420131536664785458299963566614060375841871120270699155799753622145859783598938942583880631201463559476425153107887318575257794669539492135409480850422321951434841749029359715497164971763236169723727513420414749569788612422783173506653715671446526969283689310677319591563526786963265554302532087726284574553734488510085137296371218848503047834203023961048914375690339595485435279844674166713806090361921960900156037347468349830571418513423904809517882556658134619815226714015170271277551253185233493056478303336500653502350454693267397732841170110502868277634405086952043698485753276000713600051562273355797698600620392302406457730789229747153072925888551651968824449688946972702139014292724826461608351341911984161374890180305422104692733005797741049677742064977586437394500973368055881990271823775497538309339064484122859210993268822351799728672064349877082407181006902462155566836905526708921021443763922000125348047674348476621041607651281384794747194622011800522800375837121809560567925165672449838071271438275302453194237571726208299643071819533224276771797266246629804718637129657725663296259825930501085011706502635839370756644475919335951488994094921677560220741472640432343325206565709672063093537666014536016175430452957518885671411305079989099306873010804304144333830444626385867529584200870438688840021817248212045568445958523990340233109309399654359154610516279456880669398812187003095172472657707424103221876912016245954946905007133173960402200838986404976312390763297525599499316845247944655080671650340320382460476967771537790459734519551445150819583421313208066639887266929564498324223130990935790043729955879361944667457101079517675573993299563308589097446038671947182204112712436176415607571592316623023069439937336738730283782536035041863688202320862569724773308004122878609029529775921870871106432440113053658100244525707820159199535020805801961003020617667468236058033598709292341511262668308137677056215984684640738715159961513611660837521229701457028288139642877576392451299095915882912042057829701338969269554554659171706183904667104723897843872996498713669275953546894152336909012596997384803539901579198047908143309639598777290681462839880245862445539026687456425255978058834507960284348523571820027481152024393889810380957989468831099057867476480405059857484940417626499121391474151819997307009870430262504776505006206035506983570465150249692018171056499573477340998838977091802259906534636361428424961402178077904091505908145222832833739733141088698245130223934708167144841350128478862909363974885060506859012084392904667535419632324559454497356619088199760643280608104004758554896018397312644100917168322412119815618571793091724573680467225669384225717334186836881258468315248266984597854863960670966144939844645987667164752994026577321699943841750828106312486705646688801084743686855294385164324815812466448465641375065997398067295926545110695787117280082903164340965643786631650547835804221329630722349442924600391209533092697442239958451175621334877559048433577988745021222918107629228308998598167802705301543421662458838798181325172807689784343599576594501284829941990963997788770668862623230409183032184469947757449074914485556914236949319479066984268087751290145527404971130223148799995228658886224874480429030435135351803679114488234175790932109677033891782481113884989296393135967240616054903883001440740253542904172286757238904268174440152471063887458561531507940876595940406980249960733903707292418822766589721882509353789516360288074400539890213818894284839451433995102336873382099830319100686328083391423931472237261062224214821069017261963499272174996338529669956530623257414083775357269959429947218761977201584102843407359755143687069343939356768057660109536180261883279982735485333304085714106870293170326460603739190834355024602944036010833299272997764797059434918219513112831076409223965745796453562758071111443111631662192596862042284685344688348637357225090206921720801632434151983675083435886115239480722829875975281438206664567553511559041860143959166757093120372139504704568191331604163179130608555204238990010872304513012592032434044775370284472891081065965530257208330289375052027165943857793493933886267546230516520449422068116408694033472931439902483269436629459884893234818587110366947781701581685485792173950917757608679380871832072214276466229114526345439915901882881010468405237950590953906761419594304286408228493132399753549799036165006382925515278260077744381776134107686387827832950020856897814525454085329290198962992853181036256314960389940297905823769602715190383785615707119059667409213224210750062990436134501399764657931144951314743050111544912826159485169707596727401534372438099695997087742428229676527179950606102623035330489535613627986506375368506920661850896088678963817696525905243201451635140162457677804834578087520454515981615973951980531320518199819302865693470741714770289295039078810355639024196226045085651651274845630973734427323934386036441229805171262984658933285743889491458678515262376560460103253317150929224393229379294231138311559817894620666377532317803475793945271050138143355510152744744527819457057599119297767099201554611179148292097041903370068545633952865839924559544378025436138935675774314547413908114320657534306955504499747922929495081562955282948734990105926753704647463695940233075877630266275091225477539264193258433242627942814282908203410135453670159858646039841682462626198500790833730838944310306093039961676395503515487775620267594690881927461124336291338143689862605726738538071603597407829531885156354501567353955803987061640284710381243909254129239986796810628521721241451135932171798166194761453802079564620807667447091571627913311310867354666315888666296376709092889576695499137743559184944556971073441411956901121049368124118762566225979174991779458156459749973219773591950034002563971807600651215251147983163665197209638220595363849660595045706964007727772699345216646872300154751600434503331291521388776368232118274625075077003976926390531750319668904055273156422663596025368905645789383061837104987987979330728422523876199502801416003004743551164238367070029739079290065828712787667278109234139883115457050033973995893095747006532075888820808646455225066502092162759502376638958253775060992274749869333631932774117422529684132189531229740770835774357817173356704550079037854680369939124754087510892434617579378008700141398973370157583906673515840833697273144294380760762772021224764036629605944161222101658319009018903537732275138270899938651149451499008316630118015183138900615164631606669480009193825702858105725406911349924518757868480381863397192914193206601851039584327447458391021702420182246421304803732420400044716212922334139988149472281710531899457515548850658318250185434933628742696115847555499027971833020238816055529003012965743435342865447739830343788358789299134361755529370533604020636810997251486066882351130047204700368544677930585715451903797012265639018155328639964851515687867122988252902796406851437744501154267718940330980657511552774113931460388160824915446994187532392212149398282729786945644645706866225765359052234744261445252424973072782975873767597932480240833104396939042973417736689819713647177077381524668278884435068631795451409532295068427805280568075907885974860611894576192256804924627644814791375194317989928523710228017223909651081212337746674339241793923246543263770068290491338582332461527065951251583229787091502689858771736063064341792169889032410434734910599682272294670018043402225118192029900831024071347235531218321063591755969180682997333596134414867853326750798318175554507077578515714937849592275572070625046201198543325910612106435653517663575281158996704608834303993972770583049886289054936231363500857831491270701330234067144877706574221403657200411952014709555276269368463627459784276818444976611573256501491955604979490810556907202276397306621572144531872926463141918364356765411284912648194901176359439898247362327226474346673821083978450424579246702933134743578103229891066321669541301064486922999243555295379601278666161385847508264511301077551492651186139801096113990542947162934032933189390078958737725795236975548913395212041953699060556718188969408451092457597478180587706887953840116638766401143429568506018322272815317397023775604814235673590086732458829065608836534599973114601566689524051666569300252918390567309319127891228509933511280113564444978930896116405254332508906295940293678538781865519807279298034963002113120863376639288343118044891760757043061408830135177951456306538848035638088106109951817198632307873801791242595479215091072029596932207727084516582135194096776355275941730772932505575505217329524111433454949263725475672355741044351024632061923418360897307523463413766455081775660713077356826392147908263662906564421383115251153006891373595583201675380957176004115116433925199434771253504249476614727553779197558755381842949339107947529025197140388358839185876353722820726087047106994503233320333044571819634958314340873921179817307858092259004855269347786560003145258616328454403303987117437361243490139216434178161556385961669493954272693000547685752725131706194528696115528978104200021844073157864642355259596904718288338834815429997211934065349862402224441803004555632695167210647711816023238426835223348029999232134628203609846098663054200175858067143013308556100352726996690814828503396221828737634875496819960647989714559265705510461234514853083278589591471864548174046393792718194423234479323064540724508218420475603923397220828157684032696024014732839948151163101121452148350823571451666845896225614437734969137212188351390565582965121696308757605052143181193714974150216112086568276085797237289805669218722130642494452811510821495490327082234169855479835476103578675695033220482069172740807898995521333667107768715752891916962375352018295187680246681493967981279341061607231161548206524631577689389904583559761650974916710868229949405550773488832394300641902194731178566459096488796026994419811003277159015608111653807269773966930398205713389239648155072182061862882940191765985610527629296781561449751566953980711344012936974828174796123453225298411149833610480700148439326219498141071589751465705121938102062256604104226876858309533871530993877170787437213299613103818819932408118392154358753481846574129033954760527398097524447115467683770821912734499685293621898969699112288672866240190596521632602541138311615368030834840501773797411189371536554724740191175366227686138816144222292440713087839645758306550225133418216433703926786904748851436548709252031081154421817325240575453159871144449320949852281029359710066912941619230747051827236044322716635114129793665932762556255634123878281665700356875900700391426634832069637922151393880333355243636193391851263487680962964058926036623503467638712722260565125459863900616265795411801663644757682934565408013008928300859083453785194459153053635336976606043086586761084746562288841758326655717816734397333569307359970121192032316277621784723326001731385824911595809089337005686447955389506348130283502373519649047502546958040492256796519623687026821234446236286740405606145860635963134357934176652133983421607598850468375661034663198486431651051880217262999421355038053739545567129642316576495775320413830005082804798139557911664756033101878166367086922794396755688396977403709281127268999538828521098857099535343777736429921263999931330305109838054023214238589899599146210684868780795385533980721421109802286702647664306836574271536663021023546876492536051463026136365529878431442847270576358167101487573508874810412474391340176310515652433102701113718488124366434661895928017919206166451278187270863349250541901477191209815935480956696369794618997306221646324526783344085277572706522935923953465343976940689892374179627284694918945339052066370293148207726276037665781941830462685820648835966734334497379011766423359893902639305009611225454915964855050657050247854190822124421851603255834404924227067884579581834682043371338775937406311040376410014573158623534718170988935876850495475461057570595651622132315425555617653149391435681923153771422564228227453199084628694250616326422289921804346421329087758640376096674601289271960060509669510549368620767725891642881634461750223368331838046392134501508026616580845190344275460827923819670053720099925598261032386436359758813676464540896319753135266083972018810059186118490337462136149192804630623200161826616619723917631469695340193786356891480046576485386200093862379612321796432980648482735664812259916355370642456550223519626225835228935553822997491110065397049520766787110983964714964402429430999912256796238897882410717962347120876660362680738164342208043168073745002005222384681830817285003717151244813688553622976277046412055148126901171770947713189376739541633034198943352407322135606735702977191660492115320918447281242810925924901940528424409040177056083270095743343200958593841094525868170693031347896536991012765338056452254423872092755941448477710926112950527348954137943021912023721190057291654428520831424727768212145387278847422734905591084596992793964008452049666455140496683254642826398429516407636221728935781180959967437977583571432073101053987825097037831356122040048434910400405498366761661697892941583218539402895932861206636897701053330950712036466827382108299607553030853988803925921864855487533866715077302546793639930672689613635863628428391519532110536189088497920142698553553721392675131477795622638736812899920733474789485976666604746922121070783205559600471552001765502914628101193859180254082223546124590311374631445922382374205146814436547671057087674814726775172283313796211980799268068521781990156325885304309993309781274860813337802701381038892307971034153539569594090970745006843124748063393765303129295906115389804340678837522696696531924530003127336458389218142681315295676797322044758463777848533699549378766466311822176334434018539139189211193885724594200384262324340031883656606332701797634006740443212215501037550608840256941500283292951427491502801159908183242250864386804881717537651842600881600463922225192180189942388998891501995639378047727413395102532688594682478234228548144206215636012897020741582280494045904165689206858644547222861295344407157661589887064804638584400160966411524531640677557656762161377333060876068331894064563723536164343176695876828269036942334500761969897749668196802276853682820649246076033711044501745554640441127240306778771951523237244031021017078229779569813716953893376944637672737073571588314555798749718382157219967790201823069044277577268913180970403994711098259757050451345703400803536764921710474082594359914524047967281511194700730133837492994904722291260201930501995463214414238706685623451466519743645074454400881007172571025414370386613324005475860795799019317387323061469489431385639769683269360181110539611047253592393878543171812386087405283609621686073258231048536310464319150103911593906891051083437944464395946712822101399447375628644817520445622459611724569022386746876457322490038101974887216055470514007158660893826729182180513651750249787645654265297860821371296330289602668855563132127768461828690992941779105888421531494746006946416099039547328898150706620529692587546750692775905403680664070311332961392116536902856019802607282174528283190003117333124346719666986883661103615428205964799301372665114926993326623027982006288080776313133452215730328469602396596409848379884290396869048193826438686217739542422317274420206148486830177836427131552156989213955707672661719147530351207037559430880048637318004053447331395967955299662310254149623076120970566397378601744906782972615051212606561013280011557582653959007942484532571948473158111332961201517456204669775858710501334635637326994282823883112117990480840077623239733127835802792356211272872103021838141561838838262072711694771291087024984504609637290233541943966746211632700179797934309942514824976391981395336999394245583825509726272736452994869945780832030362941417984301970905939379032307342283745397395790000417982754756788973482454480535008248977045923087133883448801455946327995026579269219446374696898882646965090755693226447204754815853718912095675177488974694846387637300561883651169929870826073070505822645160499855004753797580428911441281111669498306040238319053355367317254402403197607920909088710145585533509544338512682405432470025254726698329605310711504543064776064274464702096634996156803302894532100980381945193767561726667563980357763655863484164296457870958287030150890580817305576543504259369440462711909526103145357176460336547141323337770729064712404070107409793774165279467975439967853482897662312294608610093907971788504693260447761538862224068999273182852149478331427316391340271446394223106025734155868857207984939359345604451078866717607831361317688832733548976979874091522951936208632499833781217672240390078547820121666096014604635136447796001331509544631290543881662946527090795730143866162010228702648388330010792676030026563176253405899946243139413617875279240819215404739639563064851340548962964955848402906162242542552015461109941279060810384333592019085696565478217867496131797104320028987721671082954655419532183052007984744420192998050197079316582800697390594463165560844457171376283567622916856612428786886013830325852673529251486012215921812348235606261224769828656348625388635997089715449763134715288274969002518141881698604722579238551798518441953446307803690960345392904220060908893907776460734719803758968847063417960751435772602453432423288088345188755295280342940465544114149179761621498977500510619902977037246842710307240682814535174853631901381367136902076178365367192316900116452372544570334818431568154641867011884415579241600023569887277164322029982986661916944276110690838313563506505318118228173224655034750829579960466651804833673274202064583146549006263032694968806706791850825501207318446982769864866985416082308042407628144983087557059467892091086532860050580018602487065666216245671220774548915783541010178737929468729090474394126831468913422301445532374630117876839849724881140056576571443685661060775956929687496936524925421224766913679456708625456791573465881717502395699067223084581751972625514618213269130266893576432261324338388971812369893425619499411555009310757969901511036858482110848439395879214780734271611702720050961011430889176569060028742807287953289524421150536872268751583088585511339167519532361188441990039089711025088970385525948567587585298188436564430580449683071824545832767639363665668133377871090233895350066827371295967839897902729758623633746303593187962963981944077544694196096978528338997909154077339188674316583396007548196663607815747193134177440000504364545634419133684597221643865583253592263456235023842125505324812272187840202528429926067856522608945205256925853327375588814089493549239356161822999830658313604672776798669089943000799652641513945572326462636725305612436448549341197781607480744794241574903610473188919456716937373799969651307189099480679886723331934826816101364917435141396610120678365148257843338969041638913143477049178456507391132535903865928344855826531931538518209319567132094771995700856838839859445855235983781072138731320427900602606759601881418700441187240762893883879855059067218322325701342273001119145678101554095775150781133961105777305742403936763572400047535788615081450299642563628834880510791344082016442948999863730996700619537527314713877936194899361911622227712068439167752117955316667925268263436673271983946928136401460685483720265008397271772575302039995667421793909107332041167284591946648573962936718081070699818706784090718604242484338485468091884943107451594911408504441772306671542674070595864650136982078099354029771538693049639458295692702890803806719158041608237449083365493948490197879492881731982498664925311405148690590448231274621987645682804483084910300518682224847635730020066901618784601222492868023447002849807994556700870310312090232622304924690520499607294023537011289043556942933940162525459398806826542122610457540180152682853464384531924530886947629851933862386321892485324563104464466203957309413597392265912278796107096255611542562074805468091767632100335044625263656252167635069614777167253553823739235097708166598982421175012454015125005244840549532454873038900811295174930583157464456540180678637081682595108322980968008358052076420121049453897431505134789195460511186191128169931857783633796290979946031442408785575080505114774365811232734712356968552636444438895314433433413315508246093009822584605111038283191026898442801369297618073665643272530988358792553435969485120940499196427644316077496670566932710222544014534181524050147630164284650739225938094099483605106321208817524239710446147440781549348760708372050379374134346475888063775314102092227373346730740815914909490480053562654498882226517779112393037345385215360259503394600806741196981188946460767753699120580485771732109674941933310933913037021936187605812045809848260501845475582141397783535492795012399590541866356371189353515016197825747684690565819679910446413520065828744230238061051891075610624557841325333017976778071179302115976158966397964145957757411871232998212781500795560836961787790473424260768278147706113046627095116313222749994099210985712527680726329155023137648958225985961188883319350818594779770636590377684299756374253562719974132570460962468485594769933591249399234860476649718499019593381620109605734774851931135042053608538294630394210287060470684409982987461551500888148559554415038557504683213931658643967385555049223540069111770922412275440991077741947992219501846907028199700591133864211120671062265931916405585608359667204694140292634231476011839651925539323818753454306029176334901031279226678433592806595855469839206176772714221690005623046523297044927289951571911668934306975633415433422854949032016718288397527196484195261176769909982165129212075223845873026981394658086490502601826534925126091023851761646536331167048450652111829871378780990272362541778340362777179613965347172560945170894195501459352306823549703487922923959452791965342868956588193800961607471610735302334822082104523568453033374314464609436627962307857265846298110851352498729477613704232264409608215515586498081883613718407792518696277671531479762310719774868216356977280868571285660187163542112588667397350983401024408067760025500450651972360241538861527912637967872255970711465786696800028745281622217149768626911459887959465973377755683945600992705281034726502523534017815037516753337800614833765135890649915428220218373819549436167489531560645327444171106482091737042802704336286903507188895454369785369036935986278565368260069833608050144264681356749478037260812182841445032994250408093900023718469080667633792611581748013391082885026358208310186686648766243073116525519436937031281074213570246929143993567312205475748438954063833441144837769197985872013050214789703794337769672000722264836268627408654510396124992657018206742227429281587478883745453271733788375527729490102582927758953510209457409826724122972976999532589242478562799011010399682619143807054346719983000758517138937955343830633213501079257266698793292991494453822582408886842174967062304421381733823499238973166188101032480665644239304763669935646997222337803597507974663080944361452915288738830347452738927079651145652475815435198571694551417668069551524253173165798413356906030678913211584603694282963221783710875708421266798365989360561365809924717399896001783958461311471749761905071831929392669603539056471019647397261864850750099370438516968192407357446366473581813513187177709864319100050751733008802445609244614795349532495274325608826513104762167208544017824141008979992840622150795926706702407386130299323217913061309089926210235070617515406852323544943064413014894153661332424084559202103091123928246071754076485337593507714863554369239765864825498255490124302567947384047119516828863419727065410851255671674343166547335697966451489839263463653925969021597799226121657603145689881794746208017522092338658160479265314957995774210022201586017209368295307392002334313132038136585236706583735459003479378762689464073377201997184471014890570704129560313066183798733608655839678534380010915636542363224772192838854267761224977013859101394082717769521903141863373543542089167801636680156797592121952181182314167913532877918759293897671457513716386947300883215856829799773417376914746782956073373263786592637199855653928174992326080182277365323699799047979667601470897848042113584754156426799052417995581466539742400581558544463440567748732122121788145929397466827607918416785388548242348778059349495810073650692049339393791566883504407309094004366130619706552868889037444834644981693988159496882057771325386134541373670743955838808284424173679121221632594477813066738102675366093938157871410433514469719893105470648831392679489406847427581216886668509231947204610630609135585381819573618795665792511645877131171198674749961807326158667106845975211317940130530970281645296497876669353241686104943380805380259481111427617697190761279897528577243862954916708411207901258845343811872663097393801957936650743239413710823363756292324061079802603764781025079729891287470572984583128453221640360603266807304845618153245855730688949145150000414903889825876991239925130805315999470270948702379236807345395061015812926388088569755183902036021404806424007189004739973650799902460306829163509709792983977321664106527862528397755706682227465305474286481367033345970690441333126394336783862767020912529191124527804115315058571868156541432392395965687017712414401755019528521524872976766308573917893079543670505691016485949374146624681397937558848088264354423704702830905367584702316640895797072503492492098261934012205928711262162429251777525739392179146355906606347405671050135665504721509015457326855213003994713092909159902650000007345762650603582735284713068665601649557322038737888453663661137561307510847414061567050403744984787510157245667740815724706756818317803499570527915609383464146261861209450957861927210955865037186942268281012447869488232628219447124943314525830035859534836601455691888922477963741193257620237177598847461438285960077185065590293479098209866879167426608372373338283766858719772157908593734462264670282484390566335601809843496222278733964880765541088386309218845796738723565923097427003142065009337788166538272101129182006119160945812716982546192900183363659071329545956089154228695027526818451918604041946116563431756359842867629391525115500212798702418547199218488501262011905983798313265566813974093879852949986091320975904355840451145839881682198505855036232469209152973874143108193277670442709439684795701340630777282366701660954979065187205311646126671719840039486911836426835181595332535778591056882142722997182073598126452918983565452037345456775458211278469815244694296485738928087284176983651168807540994114244520079336373287105283203055970827652355923524974560062233601433109544895503622239678442850468969367110606990467114561030571236001113473757380111578975738851140500716379479488360721583328334753385298062481422098313743437643133740697886649827456613416923566112292337297794906110555652535482404403318631822700556593808118770567786099148946187716993289320231843904444293290750501521752419805079031953047512407834449687284866047465473666777603954894368970979517029202368737621868534498229600381283563891120998369818704140084739666662917379464070455682767569598151105746147894471130720094239663814710810925162386914876796622929961790972373535602125164581108097934358060844516298702594813668170593928841569825777136585087883435652972299414697865656216787038369451632125586259372918443734149601767499350189001312220167604779199768779883656196286873395954608605311037353656939083678768543931919886489906960657566031872487237422419484575638550283878410025108944354217332191286607190818048485715530509235240548153699285350349569069355693099763143225323402319351782282056503760193074131194550669356363466729128574079574562798492935271874653828496357670951697037086988784808410233949345298202500045621259295102543321536266916494666884781491160604164377706657590935646585786505882416798959863654750961394700841064913469191464650754881863874965790791345851929845975295650031972159285023653140528015297931603309717605946982985795866859760293928445240612998333194273032072421144482023802829953323915937540450599137218262918045661692006589926728014561195844956822078548753798678181862321850248459321497603297706810076747997710090380134360008327658424905323123571182543319582946479739417256783395041173787424728412037812569446986051265293548569385284767791503600439237780653979287216187149177890285439560283327356578567292033080024863040117325431371741968092974825753582689051520344880182272802490469966051246558102769807279635502240244640228846481893178496256583219466669833941261579444666699383914095754449992384273651540911679991072967052498105602303414291450871421541151353130478662615317430510867813366347891010188794378591856400399629906230945369730531631727235438071101291729182437132079301559198305862861973746178439534334552879713654994218349880664515858417546548488273061864851828542586506856536136130476862703188385256581514513587452487228668364586305272658992186011907713537317688599216264023175911215355771515822975974135600411418844909278722361818178322180743367384961492005332422773588188659839463739802861226336895409986694733186200790985566502070756591809003236056190766974604222733410378938023273842407137475070958991861430901936583471231124284034900148715402627657460193762631523813264493625906907567489914798400633455303317509696319502773163496716293196045695008117433894224050815404614550137491026095971315025090627945788535804266167453836079337949456071743064488411449049959845322137114835296986223716710757890502625095506639047334214756189907121369251119521338565155545908343221939534544305641957557314741150529639228610039772712959597465593705395025641036381951611841011806160462020572815058782306954845764276739833434190028575581090657707201671647959854915758657714040081408963691736855606480185065955553719143949974826200230077433652738714262942066281915417670450487510332828217818514469186714438068028659839189493524559171709890686568399711894720748397875385831920228489696719103789281674306612485516716376242547670261313677986088768596067631470481289024615895316909367052497010669937085053977359064565800534483801652225346056629739660413152922007297583580609792145760402986270510678608874192562749937646083627314090479723981480809522339733446515827319945986666983158473976382745391495866562801655427357217406057259550601378267242895733664000424118730466816722234092745198628043038219734095286950452480103770516598757876616492193718843144444940791177583773801055935033898006188196344322112901132066409621147771409801594593881068737872253022463748576003168596801761158016051449259303092849530364679721818401223260646007837855542796041372449222106693706972730383747336389835009512007511781343030296416504441089027005004591690806492501424593710374134613145393305608444552720105535394610563765819770981743769711975788792449803830191112292732018719992911046038158853599487082074959071244654184839505058174144518358261236569758911268470369874721869786377329016254675049175574666650031596588709591422646109062269803196484921280293433559790123939546942313723670605108312161613236418814792115769936463057041334509012665853863667086904444059743254775550052998015800681493005708244451222496589436212449043838333749634550712878431630405176726940765074410253767270190941446944449698353197090191284064827503877369395609512465750945432948814465919870369188337788912065169800202699155392056910142301698711474926818994139122638906968896944727189428866117968579993947904690797878086881724764390885532686113520746804970011594765297779241123932911397751803557363255826851223592683798529935836886775442129690054675362551062100460798943328669870024893369665251486171482005424997024934193857754429092236451121746130870504158609263921428877790647463511562991056803951880303800703658249828293327404180847055890597370610487726243992919523911301914396481597364066760101743782233862785148997208314266179846681253722281403438820458324791462948493883240115148347197559721555030143047290157146783921674008682407794782715981875846214217789197313621039191128334533698751549812541780048704297076320372132185542790633798781981801395252801164739087846077186765111249407811909847975312178354806009337889321368571691916065668170284050665289043314690282206830719178658966182770690996862248122226198669873860282602293862918729038812168664383969712911594055182192093955610881286968148903603792949864019158107136738350730543030819796120151919798859053298245512025735710307532108917452107555666364799875503913747571901961244445862522031961517158029773053765042891322346229295153849116024327603585474747824380621479310085377693367663922143344126586457669856278589745847216592494672684601696161341517362582842785489927718040949561697326841017087856875701739153821111964493705256592222658855056623364345801008938453462675925137719657023766675053134898109379966146377786299169615328854016989345700583305796085907629514655211429194236950240437438886422915357192355396204960586446859683503502716369018373291422580989817206604343681592979005259468242860531686538831820254629238384792303812357091858029514733024166487023472710312383429694796472831260296668337324600520535104465019288590104811736188920024374296786308279326911366008591222820139572579096324029932705102274832136389617992683468465527709694571577361599906486101895606975746562109929640512449190389538829904405448934473733776105075429458193035399808728799617377177522396605286923398886352901929608521288178028286048820272742086019039661825068214813072612684745468081933925028282986405483252838946082440795789013126672931704567976747251182804432542724913149795643055653398401632559194160445603221929961920624652255394469785456438545620684868609401578769305958395006053211750555666291203619808267323042747370600028762743454384084928000263843648364527998157417735237634288793107867483633825650665404999074273869348076882010482358657764360833539978819942452022842188064555561255196700907819867535346532546937045509349390990385063869344071608467380974835314752096083616227426013483374979166511565852747810030268089964955367307463908440637660136764434934171444134468796475274491048498964021530422509349977305276853963871842220225528136323726597386477019428395942448623531391180706861821344446024305023396320627847254960560924644021237263294929212124998509765007128090650302602831135892686691860923412559691143300130228482747769606889462951788094984112034990301350973443221681715429582523908813628079376566829462807465058614579797475032187207219794916647294138681569609773515113792739822025239535334128322721735551567747975179975698735856360016451669448347500728961787278488284932876000347856679331967223019823766484791694768842371902929401223227033880298963690671734952168005206095685407107320663637094452900256359154399331788827247937936398106843839474127592645111060527571129254496895876893282956459202737557868950324551289634114587171137242677425652526473182921674243753367870836440469297041235662229827730591943519574142190910658320372796819858680573866591752435198349040998988194814668998607196978052892717077229947617247109099189808329658526697952616270321698405916914590500756868486895712396587873328864061957668561582681050355622097800048444381562196808600158173823304111496055045831006751352796391219284526846824322485413564642175311245329167408167242972718238291621466251690204148783240646972951809572659551967537636152862403176073589843267431968743477070863839922055068227862337151841716018036106364823375800599774205393932889011324111745002905441034424452971902984059975470168879732392953981398962996422983816678176412543038969497917797786662569607361372632750055703553872535943267211746045024817698560377788654329470783234215359060759678882469018278668456496454028554234511204585807452396850200839780044615389130467672507279131026774831887499035876296956619964049435009863234507165676980905346678341202787380123565728696121992297198195239469720815592684725305049075804423167586502010284272212157229724104158419221093393116249558909092300979064529776330960223782910792530912844760539113272515526236991437110742520909159227396132667901121218251139933551248931909792619181360133552867584551537886500529513745826454525467856491190456833260636183919111314759829693023346877568360470613519548867019643903715210446356419530183217866732472135424636770057509365188145742907342391719685512742219853514557636410455294743821168841371896405399509024905620552852260714531278739387156364339351557235767307154895617306135359055074011556462883238754728490919324065822178950905197198308394909129511871768287529461051442404817307962725283708245799230745770779428203826097385862565292325290423774147263192678126963463606578267278286770588379778999970586708747847912789257643396270854506495044898642421050122618087496885509763324907054987065466423139583224632354453423713288014082873329222961225906378116723870699421498713881411969293314142030081377209076814637687479454905255606550317027038282829060167673687181225453639998885351107557887827277389962226565481263752277033353241607026604658987746081965095490098464627225133593596256313065451249246701519435236030199642850886465377447329824234967865527939606058586949356933919561561227890005745160544648457252404237483995058642396911863347421538015313023257808953109568960713391837603097872601754090311854500679293847507341819253455050355852547306603614014080746600573129655633432302750428182003724603408537805001726339180693141141241550708253571069189732566801991479382385488208369569395701567385052989573606711671642139782927242926639978237388642108311109117556608383140199819913498975117771302185486578057825841862049651203054888392983201257858011522772004158944681340014769309497587507217064646404648958230316490296093374312394457840079179885460324331824937419242232518031482633733982891450497090311105816346954151098091995235665644339944102896687932129882097334260794332562087564219598029606965252950296595931325650346769429205420718061631265622279256896569093795156497015689050011439109704688000358226193125512529739724185299944132389848770059943709716252112679395201765494538300595250089213664583631041994896767454931603247214221577915259176036480776760759210183357330679311811133826176720792814915576565705215416672493291457537462994639763798985529045543077070145292165964425048462844892488886212214217377404394070944160775266640927845953683085050119037055405522714036210760557206539924953736019392133071869644635532139680771904854851007568079987774810409101233028288561591398220920914990050774644635517009584870066831368374101336708572372359822861909506694210450270603806948745085407803087177632831071794536855584446258058841137150831281755633487476458417943352543836663009596988681013923740507918857517674438880196780422799292530113845635989774233768470892871279670966312129959867991210251091617750969542989889801705187707975728907064618659934893998158425501968630108383785974599260230477947984773707556730860103977390857806827721295820856487366370543772863551235284697667728799950650668710870408886060476824955420805915687646056329290792719047280220174194737481040681148986232386922319530202101587135944486203783729880416883961568890214720477092459583344125696990847266814773089446744496758590119208875846384210698545394518321524826780344363603484168620233980940177105360665619876628920811409723687026037749583922918855337638196370996634819230478722786209488172059342482356462419633825519041769591034229378410893382164283910781622945029604558108833287712589951036975229815770272750652264105025618112193635594141102000556016990110572043528524432071941928470411986340733825207015901261498447854976273959348216355202547908657122509892564892645357490942224626930215535144206821775816853414013168278586980046650336445201488377594710938341068924138184439715375772296905696367196972766196110658076716343552811784233488099109118148477701501418470775214840747254487178879566883784375399488939400316318744158205715673426683564714882640578381115962414282440870048768382501589824730622047105081967433947584014442840736588053464639563136070066074250032077384099392024856198594289306942262763527673184689485321663447014401423638584946116512304082966219596710959999637865743288807453744326225062499478250299453031041091561132948908978870047118073622184213631058399609115725134695377919547285849147144976820383489154597923389538349090530230185672183170214467536950966625004267751978211482302898452388299940308281074342932711255563767086907198672762840202775779342258914055352528289593218806629904716045815080226032931154412778612392642448506132638164987580870949106678448753150341665914888622343968686817484671115549997452112706097839830162102633124406055041022279395971914751220818721550622266964832723995264294720663464892129492933240445180198966069036184849018250466558391290278533787903641784291142704865890626172156190334519002291818641863385759691733101120031135309429527309550554339899305516651819183193266434868605844171751046137722651851772012525215847024118304919782695132914900067595669197643607617207370789099330803398404362309007258638599867228080029594499781121649294998092453636745791516127917456151020763319137585233871040209832405029109476310536857424056709517520176179062527806162632164967208763324441905210038141034248403402959837708035980552516215009197960284672689911974555387123468181546433023540397818399177173790270075015361340386262235965404854445648619080569215223130640609842562917070821660996334053200396815331155277544459698861108493339173579065966636508263346814053533523767972182523173811990638088788074164700706491165962815268743013831753572692337590097876259855400633312202756508575195576840681809815918436432591268409177258889102327062099834615704334181877867866498757158882730230157667469030256015464597124901656656976033319338246211437035600229206254834683079963686559929678714233223481476806964228469610510083076230932322882279190956923105052234062796954185841651861955249111498676832839744955202749115830919982250929613546796267521809685596429837578099724955531753540643935276086887819907913205441258577165227746607783212119159387913409076614159301601095600155431665651947620650194711537736634501127079102166745150955680987577223240187617102794755128028515685640222060474657645698559960661360386889577858246925575204163001075473449889463007177637334115455118760775717622625755183577850466501449810790219127708059082849846269232379390494655411339444677366885825619031275691446053813002792775191259164715209629808131576311255079779022673398658678836021739396358748376913679205689976952110759999522030955140967612054498374184686199196924376625953124077011997522448025446731798908251467599068661105981894238678512356612009184559017898202583847651880879023051324478493625012820272801330317042395269984436456686589705630451397383984255998656292970111917613714666247949011503683086420107323093046211512787279112307019884637289004986607841136763020771349955752239180887370541831275271944995382350678574145063905911327994084247989322429900945822836023656863381773297009266531332868919821474286680198935724790581004445719005042535638949644115406870521264922156832608493076156677863156765102297621338625397540311190606623349061388761499721601842531806391679436616726104883441746300018153316548335665379049955306274296929993744137053167450671887548791071913583815043062648197394858952162693927117532377780359731822085813728106972541297989324107795715308555997995603396913710313733848828205813526269909581852067650274765725083010847859333420682333034228303223471133360688550402886784251304981994943785210226887929105474872130024995810209320056480230776712895582200866202506013324025756434202550309556972834500674156969883048880352859236238273428013345494410679878645966488605497490766734972799945016797567844153937136819961041530447266376091630204589623066669280359676669267458968589725628589464749264383808280894889897272654077984308779705432753444467905427444533279471519295609881984141961735403675471462302617358243734996530586585372711089246100556716418601586983829964304086418116637087825394229542970216607065470066966055097751716195404892772468220149620634363789253432469516729042273561343998462425470999631711883887778176223353240965892516524904893476373649388240546984472155393131831222841578528315348182883572761963574529555605643472099992021136050819894187943191020775227739423616201459644643503361906058779369526716504568482043705686245997826399698700931200398536956408926921805061617255004417031239472846704018999130642701212316385392415445992840436031273670555014286520255070415484872115368014078557268003471909609031726485296745234507811516923652816498327015912720518434097404169127342773111943800205351417432421086498936957356328333226483327635952861231801208205199561475494325546082794320857542823003419063036999929780803650423653552197570926158123323245727269296383348910980879591065732191198574327918545976680508629240904428440883600920701284897450655613586889443858081668710967252292933610410183433650960851714127810120574857728333123700624642622435768623342749835762263388132135920957512228234742302287026727563001898829384559936936412094649096207371119944008663680287957477609837063997847783899609883543719895152009078736256793803427295857947506270135946816766976294012378359756447053861717003610370757890909892541284772354279741587504128246728532333663867218116473037157948311293816271691872833662753355697326057644507969021960206292505390119423023831564590141735851232761409591038522352292205079789566962178963570678122791903811649550873110305169742310854509548798065537741175666135236722291241158673603053117034754388149969565224799644126241974879834998803513761772424296702617324966604942681843262019296888936703584720278816280718334892350016707573330157302460488238285598853747867383838679673593134611782915499695644719629190483663346583892619781241598164194812032782911258341470241346938403580950816894493631207165940013392498630727208375127892033056993976754494113847177533405269925295315163126038540610892073792806850736396471518158177442779478139078298328324160346875565905454244285981507340271790600353585087338500123075128940849716280142955768721894638772363330353182515479968975374339635191914202067603751278695506985149758248345831644164227774491141767592406184991428376530571848483360861449423094485883726776447059617173668517739859296880423483356616775855873978826993795622577876849181014069781162276424063529703137204197317786798240344407744126754206213395513919636505481960550394059970084340731937439382425393363938384398847508417697037758812619525690879187775381071256363613211306901218041072056630256299819948852162323902700651986934264200235275857455844082043786011649544718480945758359036921000376046736255784219137212376628334680832771777604733477525577466098252566940226100063139148457457454838552171915169221574298919119595270181332135406342472054383569602464355488365693725684988234375292290889219492680849661379666978267457599453738809811064225845146283085953828298377735033062610973828541501854779226886880672493690218656292309641013846690519681773678300143820608794423454660651423896963861250696294794511224598695933441336601995451650014131313606281169701005759952394997760661998776836258119475624603637152250696614125239406249121552570006556248858399262025678843381162010427433763712910134378514803754696104349163058494521565281205688265076547450661418061396029239835264083437122637722675834355200056800081783061716400742096641920452160669346693857837684271762885959459935521229935608703157591558560527654734917897820007881285090472257088540046189077112039739327096233333926164044697288209862184834750973457719001332804259230163974043396303741809979691781146158378110989189339775152656464352678348342241277055512183715893409380072362484744046530974588077442777550043428622683621706489558909019836010957300814680946973386131628196904598521959729386283985637632595456608075306615989899324586566399550927858222623982690762685408439889722471510194615538291480527559809949964377572533052199219221217278980025692025350491063113980538798001497917353057641366984033690561132679779889178365823695097202022357742289306068511029224290042952126890382825934861757049566946394162869864516616264024211785883498680348508594433363671313242085292320458363004552035485735797702030355945179144269159330812800391451574229510914094851383231804070268068817110134588529672268402057297692098729841736794069185014162382653226542808433592710964906085853415475989766692410745773501638978046064033317161382405417581595607325748096271536082485200640132058792260718259019833940811825650400681932262604537421639837746082560017028020719599831752184818851346202038617291604265839307629067796981302546559043225915425233994031211971032317217806017658942849379621959326744702514930397959927004603806063463021119270734328932606669973116956635250066727008799099016121370368807889183393560483808729365846538103482392958896387928935974829309802769993814718086144483150111312949009670400151112252874616524905035539207664991124686646302126328028985801408310029811227789515402231829372096668569733749826138058342110079866571867619930486443725092699540777668982020158956974589905962420161011578202361988409095659281730126319795473925657654828621958031979708867403877219845951277041305534482530335350234781961042766184435252683948376839394217457327961501993950304838061737040974020329760764315240969052314625108553247174477643269912640436805360133775358880806163178005842971089308675916474646798604406104137073772647798195203173325655539540704909149523685002862021178861069785385980367600344166168932438540106918785858091779862235724865870787490958591122086728294013238252799781242260312696540659957688717431321603176308378775512404755265831709611690203989792271327298504760026296350055739061708581711886657818233772661605100269006974295871071434453096313724766263528079241963912479723090782747863132389470892408619173492989124851608739650718179294003621494523086876285439523587456818280568590218035085116253399274015149036628059727144154032434036954012122024889699942563370467771132705663715843966437043171652458239425836046240194507679417068812022244541809636475984001823003993943006344535219931824154240513133495331412942906204566739353445803899591006025989841463569112423300781017119145861426528761118286246695275228843595056526824533411346529646221604692785493734786843581182690969351602564320504888590669218620076648413054460696616572607529614162270405034425263546033227812471351883345969088117564029628686811480451248434423347513016920413795969394811624078996115060696953225855308336090161017068573966801146917741634392500864478193955749459131662373943212120599817307914126764388594020003791782598476739188622267609643242272207030764968782301023245543726944245597447729443782914813684321232295529067666113674383268053076767415327209839703302749632750727998424717714793477013358186308095590990172630873783516401434097427114490890611531371993125975502989183227282725897536791252218727794804299331487853418671470473920110685968695531563063728750118403943139821076028346967806924191632667546802546619115721280008540066776926988830089587926592550849288455239721147695448675445343143136496665072441294929474276614263588281003885973802605191702102311534308054578699617009142258222054791061487237364184447858439629168255718387671857566438542315513982824381341424475356888983965893578416420138086682741919173601982540626256486823881196995364527657858765236545333817958660873444080308210805044181548022453162777026427374091904410298323668850740920423579578713607029268061240776186318672633819949462763389186503530460424264047686939408459516062058674017944277357751380743527026108784753326994330526963896114478509713817701166565535226197573822610778821552838842951419283364233982354000129778461419734086335441629026054426526810652859577983170478610999471868617501284091375593029853051725424129908098324000960031752808456741013731299497198867470527685458295608982474788641120516337475734606477107884355400717797613043098917596174698795544057176499999988238380290538503467289598928166736138333019841570901094623832594984582526114824563314400830790878696387695949315878531850550022825699612229646630860463732899507138253812677003188294152997865517506500206121600864806794628587907058338349138220976869469951253210166480371406447634922690227301026596123418716419968436543200990169264502062605580637245571364837023005371148274126186151274555634275013380080446893994953845393628065676511998995117128072368514045980676355563120368846992934402295506278430152607781786201224593645581070821823345077985221493050423109669911704466813932121868636640595345475870916941329384018231724902544056514180202727067245907610609877549826515731640029212966325301957246883421744444760423471960886195396443576485144303270173713354216070423417850272909040087162725154706940223067967520525831802892190126244795550040929469196945859735531183741775297535528792409894651979440111083571770396797038814104929825790850227045534984715665882126657387644035845395880025054190913344641603556930047633697859542569187434067486613413188307423381311601791010735715634353219111101799581802817586426676467594259810290572285329749161985025101397952302258530939592533267004782637415926142892671284345309812816978610215268305815713692278011677058649774964009286194713477440247921261174612291635796363533061454196901524549569578076575423388324877679195662119639091989646011599033815819016667649277640582107128773641852485405427973746415270797694078863969975592223936359627637028140273045331662689278285432276531395170031305504593146891654613151777210795319663912998791311164781433099067659840297297090728276232386674445430469929758449759364800985824423673047398589255662696943285752296534430863356712302525667010670841154115792436652886755105014856093336933742123933037153313584929010199777720665841527528832191458602368997030208189962091111614764132957261466520650970523481014252106968237396199853472995066723132719653042746123283854452055762784987548229308103614642523640092504811503707797659080103653827620453480000298844098839884491741918483648912717967851925793656017459295143559643988957607506611874399107542093378305916304308396270866017728165309806598481759850324744563944948038828204122359241387341801782485143563331315677450285046440619082944512083581995113978381458152294526751442208170641125181587353134467806076035216865509991274065797577289912127709076182637049726268552028936375866624757454857424831343689026946967242419198278046758641380567072216544845931476058642792113010993947964888309583227204247901731280135114460632491721570415764519256784338862459117378098301380233675739155033017214670964778307126187574286589746780738819100701838914044975379773552375955511577165811781591063655911539495865995552985248098524489091785748951880752373881690219202132406880857638987464776940945674051900574358834640458195275297112013560949042939114104782356932239813673605233720224973665439262642604550500104712078361212805816449811377943946935947506504075638709192882269730211540327364751275325505650188157807032179018380645238911417135155926187642493279500925082239835977694582919910701326750785066462885330557144870595947523411363485170978648794262618533392937077004223168443303719912659045288391058512155327494260575368406032193335307054496886351190699689043234880555513539506326001328874552952575396849381238157121155251089836162284779027982825515912150762632306424946942229367169889667944228766011850097369576808870178539064562929834905252852468003908849392699009659594384862387521273142567083950207153887793998873239213594151755076235525657067694514268211538288711738446150779781863019152913242253273363757205837094727441707934814021294505439232236969771726675168563843168257919007883109284073315846424862545157514787546429105460151967444294789713518484662016494998752451039109677799344097399374107257150054927776868409119795523628740500312912446420851859373361890993864510881608056354863325069581409967710427875866670161566086548716050392125343724762493507877549882412340524534950299565582145690964671869755317109667185559997872558561353219918030457690091651868714833833209435831403267082856843875599485228091287394666248152075447046309335398724039702647215310578220345392121924107102682461960740572095568275268571181239125871892721453471706592096274688996993715383749301696953729300013007269196087026532782906136182941519436054323482705398435171948193426850800652977953304122109205957672412849307838808339339938412561068298453617771173642353271922988413201198404190425200362778947431784090747348474496300900217645464272724297292000673092621568114437564202967767919707338577777758779702583389327001489928083300815125064316007839182885078603455912036285592691084008139702196422878272327323661396012046671275585849349636596202099898646841189564782691917487476006715800008124640755825124032656134162437539296910587382705124802793849079872225052747466985941405134931395991471586991296850211553186571966725081514569283586174977877718587468920135940370733624074391102365202892640543071091248461221217303068436268007646831562126186286037245466909910045574980420364104888328179400972227274355975974754760931748788569830624750933785354185297144391182594837863732498000494564609281735743765710563061517147505302996457202822382743021734080865228765417734465901094558236642915310014164108376367112642102040031400222613748428538237945793273150458665279828023653172811672821385470503237638179674693147534955676763834930520220362351522083929231172506018704817548809011729280103011175643024585451190996430908945254143539502486722978171189096735786446601786220755938142124348285042500937014268640693395166118413798045850654753191049209434421158867127396999608684393430112843693638074570501429623304851947803982786535443280614564399207053454614670659206964171100961051255090694718058808061728402607197710755521142883676391440625236727970585217564319833068950640766784612634222105180976336802539699133316647240215505828707517309463035009035542490680246915148395945943577618424768827060005959601703394905810394779465518893725674601139517134778177151468597395749355343974123322542740124313347261422721571917179154817276470889300437537893653858211654545262561369356406723686303101369098117864759964003265683775955439012396607641405302985096927681863918506552902582727341817047041278883679353224392657324861817039959815769783469873602104771651049066838637245837475740329643155344651935308953354444183143273237179930310732932314616987496271050942407829134676256399450706730253832558083014288077758203014829803980577602880301290907479269522385933723951072846641840644015134795583058532376991395481167091968860123359173683639092716679268846026954325736161598528523471836393322640056555607091514133963664593183946346281586089714853534656047656703330125567909441404751505488086341093382338466103485624564339452149990225312021135747072367733600337505582138488414355875793438080361092327868708242590339913404819608789211738729143185301069106898410751248841309594581086198903222175899546007573126767399969451596939042249961956327288427007797543356573862080953800787195961048954157945502833837357211169735887215414290962658085348227737255942712422370449280553369782752646830423688431473435232094452575258833092696537777582079762821695672426639908677906267145450359794853814109935059690342385651323600174300819564682603857300083221342520126961948293419491567860067825565316411733541440281090599249952113216944277524763027288229479222197653740227589969443914208229956647418175734117607980620585742270601716361074591606055499598970914884139037339107879260322470404356647306915692386182233267721317053447965464706174674010491152971339978672186951921291908304655025668778648007735754481175909598159524818670600833523970328712762042469583830119700758511188473481615628312580665875080924979897594951573139235821508939336159249617430225695238813166436710398390110311432828055732333451690288350929843950002010914894833515113453809006990235774674752529250933194002842102414871576196863027307076787952466652071939407313059106480350044531858875285293253808927175091116430265448111980351560865770015839217707154581336605768389530353051527255853494311634969211873805261410256732438669106902811933973807732422158354762576772523687617497023133084144543780501377930408291651840281261110849485274587052774977999316390352732176544919945720746186285456526989253432103471167739753111059995825419595061158076009210787269890305934765018566934759554746683350400923778117055063919139854978608779582325096507293969663995693412691736479043407331400382066673413449696393272543490826950102373908180955919895034609523309006183353169470437251152916428866271927731373281857374560658360378834153840107340131395135016813219455553761065379098247273039757345596073944335191928063342065384214884376457297590119581984492920911089855105233487087463403400128503099735153363902242249661862593543404675247957407313078474634819595103193886592788976503026425303074894472972638898873008082545176101568157033313832446795150158126972721752720163448620407379273904413959279528771619822159090537472809192299690415754879568961726877466106812191134357186759343944948175708473118937433660093847985136751546893634881755284584300470228253770881144806702372763785271395888405100215021287698252714183547662885344389209614622539070256504075417654546641211899394501982893979625174578847036763786707600896300184039456202968235481267391293075031924995353826948832875199364647242839278461057575742801329573629507005887362615999223360572057549956527350607218371042712068125453338054749572139384232754170386258353680874165523997404070062402280199425337245940600453907887757241326565339627412424807078743775771569146411296545418595377975216102384369218985751858102525456245237593554868303494136381097762750009571049850464127662229786055981122290087935956320513117663667673346474073351596776476730456205128052888249103568655276024451812146638210413438109253521251014535217588052303092294638274133222637534701788456990058089484916385416254518842990733887419157521303296318333176546438441090937717540008184042856600231492340243902552532082630617842329664998074624508568394678487279946405702607890604630078393606272029111552159118227293626930122713379586158725153157746402358502672470932501225138091909394606793911897826409925091365566428285106432474203956355153169959585507141703797413058422732349894391503414724180654807819273076700967314682764689538667751487006668848171760611553398708463010699074668192799961949088708458966424906733072527502403258426852997857752631278145051959799245608265625968664041671464838555501656451539706126226663647332103997935573484898384541353992907520035899325274044573671905444098508987824709364897378312053524043436080424146344999307040019455907756792959269887199853697847173770564151736269913873999726742317441860976806440170594516977777610905173839518453375203341562665659344030063760888959464889768218418128689710535354185090124232262344589596031068657342633327442609208210174491936681997642295615576580878374282861719023402419424064227115908917644816677157703561837401994522978897951481390476036472330005610300377661714300295669634425635369784436437240822890472300393904357885625201597937967391275184851222262208371722196880065879941322685662694326428788128336584338131598282511928367894040450926344933086294836537982208922072545591805645656093990130429127054590992789335263413412738370499195192502231269583704751567883939622891389576700974786495600553407349994331357645503013946084860411055684574965519428532097947922349299900735807916091433825612456688534391854252270345986031278596631837149261744062241398602528061164236382861373657928007068354061701521142917008829968115492994352753610158518403114204525738569012950741215608595207589691803838616316711988949499821835907616590287334341350248788521192163903382413852274819548576167105479203163319799503383943813142479374351258953527790638091926867935010714015106945657313653074727872884602646993720386392877110231968766619982712411026028387718932448555730536459572260491646546771309290052021915600285639757568338315182088985507472739925618735892481655343047578430128911165119799963025779881732919374273439227871696485369012685022392585715519562430794516835544260370694619129563214079012340966417959726925688484147404428472295929332510064237786229899225322868359089360218923230438609926360507079689749047896897954740486387952406151322722322097987821702621243600020812160040714010808081474045688596489856560239757068639642131888059426790456688870492766344882920117274587036845627584285324518573674861939886307622707476201854150303768907889683021862626516882033504538121462592472398180587816739207267105835196992963910398686875218257997700657952147716295674082603210306890801209188309610921999279834780187668510661355310490812115629062390639481770599732020338444702410026846636224484466706949148616371749549417648666301795671561476262751092753438799449036708896505131510258977214601492855701669993859489762424940584309353405765762778799227579186936961289227831474560600317847892627295581070283657049720633946611968480289919204345437111597062624908382092408905180261276594174601001828178054501604296584246824761443112759767662551536674410420766683413031378841523881957526685604528851270034393709975389751166120754834707465580849093056870251270098959895090473135978161606581156899319037393185032805770024992112669673532167178827166648806192382036380654160387003713186667755280044338767747155329807477917443284243140250756024473605488576076849131715932423440362900856074604168766314238802826089839469490608859846150150895254729848889706253584543550236380606025143313685204522535697915114413839335601784755780867504973902216555685419962435383293660400384439027906752711410782021551224029321024602526839674978661097499328312600792223981402397190867923448185783869552578465664699200010936583187639672076647299133245317754748830915104826794120407892657816340794227329068271626016144306278733954687476422411977042442071077742029765048667172619283598065982353668568242075507964316117184166128225546660704693947462360864107178400129678894647973412418820562965700815026334178700166532000328706642325111513452985156383569503623523311944269926491218495677888298638293388900884269466388764782778123161040114169657471015832221345315054774235892323640947373413825924537029280358405991459934540212529304866910955090417202450152006650283555287461689126422130845101835918779870703665709195226996260777517849339633980312137988360876053618344464743616671633906799011503015674158036015153286528138321675769627522496236907064027978387503789202584685320683789138048497022690950117213424649462079702275644203401344744195861151937618885822900664747314074092597021683784811751006525448119761955100708543695492848118211026303734457425608127747300773504902315668136775775112732637274715858876244292088026008794935807960176539844435693793725533547039791281305056728107847817005445570415829636832063297343335686186420174972648884919712403975139500751246425573816040648632968591855266647647242351427978955951552541312039034746249599004902579739366167444291797397725506460347898664687612063811186242183506749526410248756753385712311443674680507842096940841535426854709563129452930845218646239700987202723196518387222835134834835229775553731858412710454853965347588611723736841954009820962336794582684479747722612888648941427324151550792193904550058561429645421832281653681528902405013680742782005575992694678854756822142836539751298329245135035952518414132047108728172502327890478751201865448591184598538681137773779811948697724869683597278380349362322648478830620058475380766866812691191987083754410937065562142795355133479618049949209684411496095615653311947176140191679500838667420707602447280193702329617308731462848320278847686691496281968408514473428548955267372742650278707361173326270011431216820401996356033587358776074852782731935768657763595668572178004973995878321225694292859076608470628209359836045552760531329034088872316544616994493416348343217014041300625490630588020806565022797092595708900224869156032915634759432494297453767960993711238071652533425317274790329126477586791633656614451801374250450455318284999301938789543678885944027396524626892086687417138363404369178797985286443957849659851309032262259742484663914119421370393231261304776448166099680137689179246342033192497618070203547088171933265896933278868140688181322256989776121402020887033618575995944902840844901944468279109898080920091726795597898424485113645822948991592152478860174595446994447370384852618085363417334473565863960785123634083751355965947515658320786391204621080975539025120662221328212957858437926770637358946547416864737406775107814237773369051549420984222025045726710541443694682233794005143027287841591507635160772886040266207166027980057665181114795001582710981357524164251652443000644835328498264901549631764233605510138096216379376814017958956022130297416670239849898206659895570323605387743793039098196256800813422110985665631929364206533794999509718226506289458712696518538124491210063261587656323826704315114546849676618551035052330507894992966561767872414022010161409242843370626682653317839918133933679877683682196715114931172022829830929737592603473617042102785050943744648171946161028642754128292008873078349494674976540738007803845514999550131706983823164011338427681012998735963878920731213101789672027161112248068457477786456085081693181627036005720510364096689018599146507903482077241930279042283395690157838100429912238977809665439281724811428746581290801500499452233472060856360371641008788656486498254970306966982605700148028926987514130112142037206697669728489339141635510974875699650241156817728926057618461867443973655930225845350983636301021658145600173172596410420743887333789494086035941489082889416285207661074027711025689095587013344113259143728511515119441650907951636908701166441179241600082249011091598336371997924435782562933610852952329152803748137167469460497156142343567655817218831375946095793728302712766866256013030156613702334475287043127959011383885171190534955048674814694780331138377487038733697508794703072165626617936843479167587648655557891818735707435730806112586609961596270910392124596884213979221526482732350303386786728463251373612239608621084211743078593295016556615068434228693413183441858927935138330824293854638267417474061791590694759817718395556511062708803129352991733226749396837561683235007575607787278491532494157329535036373505973746280706458694996999900181612572700318779957877169064321436634381266644362735378151966675274261191925273132881107580724822523826883936950895683320881128762720767479712163876685519880075066333997432962510892395846640530267288787313349382247384034373131390487692029244578574779240627800225441069130245952378881105189546011448491369102333836666853030299434660762135129727485438223045446181232844896967646615050886432227505456851263871799864502449558499700149064091843345289302690893159135104547073519783983308216480889348676656044900519463356850262845811610752267898285583580975305373242205098260169013126509385354280011252098315045304004166691177750514972226051311743359313569253960262342969974701024182535740490352057346399645369652610968584862077361373263804933815401035165327203190662810721636941302571618759127717877012991087815322364585572588210998826087826855576131778142007561272855827309634118000500910221615247620337306071332268958011130309329278381321948224364271393700468898159413681565203149289746158822038305552359536930625247128874290725172599495657182732982224141042843987057229658825555718119899822604237765599709025996166831593962517355105907706781169268584029514777643049574838703654512902857349782559246198934215265042303428818195991821881262101945157343357726186871027645815892944754909070497147328564125508637402088757057294968588382693348104306031778802621645458560128223468365942206912665562326284421727654790364887111652832545878460243748707209780473733389172188645710535283048283673371766823675458318743991088797370365314792537371192328114098004054957664520125474964775263980289319673486894059236487179458428276152293250014451350672264669678593919314270198045277962518061254740189922097905147353146565122310121676921604615135849991325027807249067583654188672742432093799452471980776755606470696443834259430362246957852989787379282907172496855685442793155466236249785132838023655124479578876288019473629779042096637691064122756986012745828349783704030373927174477178819470093725818833919626416133017049842739022375600427999231280714022165517586457802072825038953684626038634063811456527530522896706837742124084705287042254127972719326273972646181566243620457089946031342229005445583506273248675345577903506038203578996763441869188711169377621158484804422323462747095329256958149497443084777026878262624626930032968246637846380673448634088478447878791800074817362931204589614416106381035590928912366637026314208526451169344034338623376191206077087980993922866929034343378028050165440350881109740663451576557707245742202034069556957673764993367762406917583923277983371617711924066555732182848297964873842566122524093144412271041780307462742487508529655624663501760337708747983407393208889302538079939493508972567695388881669027302466881288590051850319353593530619769599593105738491728211879122068230232719339318305335030147698402679410984991642545419429392651025710409493339316011538083466259983524547158310019461627531588321195579087923998032247481984431655079510557039875792361133301461514733997555481712779998889195713376745528751549405047034869836459306102456993215664194906305623312061450548417525384474929821489561343272524104599257344135509336416369288509097811371499641507106972866523027864545497581717921567205588526035932826013897258436861545843786285476447618247407710160715963381393928956579122950117401572261024695548338143135530617525155103893828639340083685455166219764402055762457600602487828945593075327411829528543824146499007180342441598928399570153152715044262348905516352186458261132368124510960051186289387707640834928461737877813498344450138380860086302049654344832860507100441371320534557653736454431646135063362581764638623474497067528761005712787802947723797950816339079724147440051080440230387084645014471753746131051777206021564269569979854669021127965237148111249498563065360731911240672404748670820336910390981255835460147840221562182628122051558540622026774903271687001855551955965243417559862583958585592926245253115016306360119236905957061670369503296536847266105252469118479390517043198912087401653987358491400223835868470709853038068015936859149729392849947347917937746855224263603685558847347424107212055388536963485665418412064358071774330654636045250867743930304228005959144870282946325158490896091447095080889750929618198242195943977961192659856042680684365439148850582918523592162411357783911127587257917036292527930556221372016613058365041451706927310445976891216167538554588794452081195080688518936242764439707457144202377012296471185366856023888428811765230811926535105984560554615262456518244602539750462919096399742287711173272260160721599481806357698080927390910869708718025800152422588325910115692262701044885802366732118881851339232344908635975320873854765719816055716136241568416152398710600236762425603809211137249636366832872521563053663613207415965086324863085811431366105434555097980561555114854737141082832340510409824132029342889743026291703689695732560338253023342850903363436849414353172390496483346185675361485948533421836418758516410861514085802123207974917542344012211132852849314883487018901058368495306627164877850896676897488789584103714023785400597700959153308958990606921149959518876100861361680834637561231186958565287161890694727290756836095194634116864201364122304954524470475415421873009433742715429065395483407127767316492700243605054975780414926309161254223251266184769022280650571986982800066650583411814441947643419993760522986583927135015760721888834119974097753407263575570357409105817169851562849980157282702068317371145784523086042529393870657623146853077157765477269641436694149861113815843223511658282832035269544645199769293605293844510530461097212415170653692190181979352285068466329237113643951533316473830709390552028560446400284688555976230069883724056990618040132660254026248654271628957429947620815408980705628209286933048886651824092172186232521587288663621135244821737796854568537703671297109923642407020200472499772229885976353231675377406825801404461073657494420556829395160431749907866051448410091010242279038848578292987665246657227220224136420203687576650806878400180951796819615111652385801257993319513661425844386000634623461199407903526119974450697830732583618263986094856098877870503345909257494129719363011185120429557124453314627112014474060651596147608362738045954329028776899568299640899420689764687015146512006868849782550063641341510677655241689781511190117119842717936485354380158728076244611841239918185661394834597433407683243717133397017431059088292511990242241767902385145979233475344986661280681752936653833628000086108158356026728128656389545045658096553377310644718769548166504220083762017380506271457300540521767534759746983250153471810762519644253375902920770132361823210242382741937170305343458558649360108886321982945699767371753859109802586255866363950357960002798761590715221089359614319837124295300795392259309723006428125498656676068981637687525411739699820082411724252429027433926557034439674586341383333714873248155561374278683767216844126670743559366429591534716679763395340076675665112871719166594786373624193606711075442230904882253429071754686366048471800519859378234213515436723058291390614481419352694796412251224722923204465560391670013437430738182601627492525187485741499121695284258669005675791290468751862955911303182330591254025674093145343300730389114834158174455023139082033961831954635200330272235139387002378855266966668517734968825452416332812451939764607657411288402319463492038997672215040680625521562910764271319286867649032795944060963309642532777271353842129272484539027510220428043855839614528782746346033905950169499010271956203423180227677497781719691376858679505660444458371281647128210288694995254203252451077359433521755869569358273375102669071150259667095857834225312047126762735434791274435956970018249597819193112722248140693499363160516778567375361656840255083516742685724164083266536659110706047458530057334325425736838100522599490669960407655888222246962611466339586401176815499379678662917425635501325220399457553377245572634522945622191564730662167329180267576174077420230621495826036174918136259695620456470688017124722882004488007996082979737927186121118246500022528235120220696188302693302515623116906968064536691818615148132568038572801317674439299986216481480153686152331242642742391974423909071000964779574753718525156789680662377038800240751952896352925781629180894678857621253232295702828930057766357568491739826069545804533542436786756426683032540826896844969860834079651652934587138289544253705954664691998130624566221118963175083306969335551290090283039845167530655694804453310105546303789053097067634394074707852188172834114006409244963431830616506580917065276819598946208567405830265906653323426907253521637173948547227479581585341877344460407349840731280599431631065818089025382223947829502776632275087444833973601517048220384196412905076150041569090945652704883203642117162590691760809274968812326939614932186374657408432934991329148819939734818630792786401232339110248685818992941763185892230091610827788784712635103637754077243861752321262625769543345230512890245336041452693789157290339681245462052281217611247385684610365237978571716289350096881817275265753581815280393199335522171531463150240214842816189435284574660791683144913357847828935991865100747211351941983827011144922855798145146302997828109004181830730484280591707820955491132647858627835020767788925333015734825782652308781437271282978310322318577379249812601470574984913695478459127199405511531949888099336865279269821989423314549240762571585758292347678213332262386188297315497862001799683427070501182611950582007832327768671680241506721302252840228864321191893106552969777714079306744824599639126415994477260669511136109253786746404542133218759799832223577323140362231299958461405376307188338529916312248155719169321975081799943728516715181054818323788133943514752543526203477369385322410568634541980330664706636757871734532639827682289771350770302273313718209419963576542237215166671974439573382992672836420739912634277397691256917398226181805417034001154287226505653431665610736683142023751444225053462958851108993934061106143456897738815044143694268761172002190162110183394149563182627713650406892000719809347875513158634310655179217297932590554984824622344218646462404485599216273045300318008143441600646528483884893282901649219611256222773311092797411111467669637170501919153503196627324969128151379643606123681812383063765520243311870767728158311052617793221506369404702696969482808288807855893207925502104532970632339820335861555165084907992402939467620123637260291836988584034529628514327163839253567658088350367927829722599846031435244222041546805501632133710602622255615997399023001668974267397268402816297404643312632638917974469617706462995443469887537453108137591345578169174253625065970778395794572065101596877781346767372051307086793548331681600162318453357614946977799200084054332777830768923307002854998746258520980767563460262989031108678775321383563981539864648330998840906544850476003399681598326051747757887474496422338334219550331522029113845229022517320940406478432883982329447380037473986656507020087905032375529135999944214480032816186574026226322547212910170183233369253835588758258417370707718131855463013592219857528811394342170801692984308093851029557583799890398993483874966112251470732977599549409947684011317427856170441222911239464442273103318953534689862251314758850045493291706343351439766457891427172494294307211303808006567354341702227173776274987252252722794322803042693469491288588952454113389491254512047615392691812799869730499657109487122195818782905472113223218601000590306713296770748270876069573430238257013716200823372269049625465457019928404854306946949531391379458762300362328008885296084929349688821144926231756794314995255508835580194062289678122378269653765406464305842440635746273606295001258306402482813199525383769313727045559647935649711077720008102693053766935507549431515217363672696132350444732954071730348111131608249695547091249598973231014845775879718254671962626098743524241614584963262160457517607516045956206210006720924884382987061130411219108386005634660768992500625952722972217531394990356710321766556892992993069273420203968392225415658556366054088922762629641198291632359072897128475078815346005370328467371100835764837358648419828127734167601963690918109236227628475713416072933047783443335284348005396017759385104598295986172274777442564550154929025807360814704216364052410874774285910987179414650526622293345336150419177593574731908656290236853001732541640449152728823577903727136376786605217445966664829820381939553663811065728616209547769973196249620793561783572151294412036620660050904313668124242881418716410595763938190340121438884500056960003781506342653992148964052800806481307947872778730709903722057666312358846695144200517939715994761068979444999747473002304799212759783166804684816319057846672055493265838770310571510103757713527855268641206542063635356889340824771756778112625691271236649252992931260250723326778456592845675912080575695027651616864003077088250108016442659514446535165835879178415869302354039058870404529712800075653022222780123026416191867104124846192627185887929767687864076089255602161779274165409419328655762926441188354998929616178766921331260017767696827131509058596188546885588087031995949987456607941690112042045518114725884810162126555447224320618559376635026574891227873365917631871686667902072050426914215904547670693450769258863351201542794694489804362790905099538208301185172840203243896997610461122978739704279330137150012246006362797382310627679692260826092251346281900990554418988940590092086154481457581129180358223286634824256355779759185355442020678491346835782612725779994483862582295040207341834552728413619508318328340843641643459674629439834949193979635056754724228821763074901151052177390495489952947343317128554342763651349520881979967136842897154301328640523843706830510344820957330886973097071702819460837945297601640541546277307809380820877926500313646085647453965793419117748326255934740408347653213228999705627556589101832846268337349099510289321252544728264114258447455377398166007766037142758303218564724357050605278928674500600557575592179165028557461587438861037496525299614548308045938440618825882155434522369561089868116186260711650408964183164624823711087258491244624689230465076974125723686568512348048428622852725706961326461803728983963902905752716219949418776606377679533045900367358942120243089698220779143548831251460272563566618388178339025737211676825190921352796478413001490013430758176285392939282296445505553534007466242530850040159359018034484857357966125225178214853755160587793698496063481400250895562769854062566939233561841037373539791175230991218190127577324622214485288524397246791078853451603626624926136349982602610555902540718797020060895480357077913527594366057506125662022986888943886167713962318487323807915971270253457607975629258050975656848913116923459334093215326599516975691091796828603141814387163394579537530938525541250976006398263621693523350548258451498540544129073473851206542296788822562092797310099325049249503101429798474607271986907440972216286610101218306517586541160750195247095756759088998761641600241905853275454435163536408680311336287415511404852520293375612275250154758827582426223768734753734431506327706509892658945838623056633821560498405673519418755331626097515202789542249029522700978332446719093170397250073713773254020857698359762155543159214268433542861356236754393122269736678897722172380509688546756469133307644094796335797224440017910230242515841448782732203599602667322223401114580689902608177304359146874653650795285946449089976139959817948380333539200096418122557737645369679276684303048341501242803670953189260474918603556288770264940776946119438616621022426119383239246807332240860531000303193241814613404008242661413047969628740124337521670167372078130243871251668682450433677462981719872236247190480245515088298392138380515405417344022306533342743014872021214168136889099311359723898679551018527134291621136312820138677304904101311916992318098845152646689438262242920799023408573202227151570868418192443986061533011719754638646773881538977742919439156678596025123962778513650773732596745928390845975618115187487156815376542278190154976206143318481696313717368970594060182274178202454837915098556544992674793215534927441037700698166716552219367315842159228549858805193824754487624197388526558853960664909229565044733078811139039140552178940595066967999119245452632760573005840208247593233968015788897017917431574548458205649387546897834462989340363758830348455092606507608831208440413119620585219933503954644102705153544034102809480788190869293260115383222472953528996165089437072798763873960711618475569381831332137751193459579292555715316273548842611674571232101161694112552340939982251491509216779243400615282357458209854564250120158518499070383010797385303247673002933458578737296408688608062253246913100041845682584545607278904810552914543838260438754802387711352202437145673707844321110499214168403373118691321477802242594319938756777736147534397071954777271056098165007856694481684312872758375418101050289820725254418553037091863954427209233852385603255246954731382054554670189647258117504247116121109653934647865147074521067118873453266633154740333930746255311886344453001976266069761734075287947316135926925887900913869397340473141037815022108910143537152735509968863018683862249995480084663894213585819032383000327065975793984385928566803112622796094678258018963965309792012352045390608769806467084472497064375546374442420212289391933680909338291625546005236572776035863986132794246429260716352020512647943600094628022509840992124388114428129670743161699321875717592978111273113815361148422984927888630621764162997604218008311270068922471327450809820135756436669607720046406846607333811045838771952039799278007231184180170179800094103615070403657544291252190754719728834096285241927224804829986845069425288747429248148678390282187496502340540915772347616074837165867449535621692070007352114662947254177973396414835271418894397712727715242833291958649220059849939750381933170870962024999984615472295136749208541514676793709331201069678130242319098155709884126691031955780823136814945743473587538374633674630209991504520784490054879246608730074778322938113032167350621457323932920693968224549833530565674555867110998338958403592182351989752047814036758658447590414938406911182122898544271173283238265977761268231522059862151233973993812578392919272175282090356532684732610493132513011676490793277542595166618988123186229157052103185141540257674425643816940012151971035579723440289151217858057029913673739309284707220029182929330282105556113248800913373510158627679198925883117656314897339423272977705187599457532525915515603442680906801059242731758517277924446983695941916565003662802124288531023791702370703905988958041169812774315857757163821069810936139945117640303562720052755256717451181772491282460503611077855004630140521170587342154979173252464867538089033140283005686160493076385843277030273506535036784119145194895144299895436389712394218923367118546442548703269172100387545951236790339748578340953231852443715342947754368764890620011376537533165725804857699411263714175244105572231145705549999169665160179490561577269696181983118665157607744089676722453223039942041587808724103850105301322163977303983059955387373641800925678262301152373459482722901213641649507919697839175020896886301266743072612699418385000448060704432932242086574152728829503306878687304740533022386039324398526339489693182014190804314550153640054787236593768076664967209613651068713954803107005614090865831122642995193442845894580468494461073569963189482591921556210602594897663793861135550031004554824837801542336666859127620635977193418224632120008321316213326679390082584418547330727436796529570238937034600266831954085826287310303327081507368109706299107544084401354777608192502844677823740870028216556196168638847684899006644975554151493590330802958799385443341239440462729912314084650799538217791659512352434742030811961789331082192555499559284857840335748686169592290821351507983766165442676813029645578193160451931765466194222025139742994228621848071842168774880880746202416492978398709634122066201933179849413200340276295733910766059092540076083648298060499754797853367547327541500801340788832861238114553086689057244768090682670999826845207789552968455930250901062141773326642205558695040446209860730484014837347129549701577684296401502442934909782981399496923621543534225468087744749269674358668310064724337606702615830190359484798726080814366793003185502390737899987177180409225234764301262144164147116086765095263570541716835828808153538759191028975687763330061599139397907581974998361371622758641358737188515348311910214708345610048383976725184421300871106418757124590023761563962810440695015750433724090583019229522413612947072478912648043710741792714081651965654925871012115570415227569064352658716631775891426924077239227178252094427518324156089443506229672126190319051109391052477208217988414972815428321081826461076699504648737910111706913195551812634784866310542466486649440243874460534870442145137903228039827543202207012399125311827840119808461071178755629872175978942948510301002103532817627029566294246078376386363799923221910331578771843706444418373901446362832208603592393707495731199118806481287442024329975950330341681462054815641635934432170766591045553958522380235549592479678309555603833644410520634923026816487750522734825927064722203517534398667618404322791118543203603666091279022434514066237179342509126739745589036017650304048634311155183805266760534657785921603457823411853368053734007057649542515469701156273930147180743955622421627533680094230434237921350141066794356064655808786836218808605476508250130941851384003587047618184979661071618977074241429606181413193666115697257195755288587115723068378844597790398611765787182567511251860129002687394718838184688352530325777024280163854997613521397784884449440811925088995042767846126866625863365709574239986481663179651209186145116312914428458950097652446797851436745793134338155210140115129187477264675145676413834989325112839268262423644996911735200960982206211943379404848986698600473062762695031914077039973748698681869046619372974454822483451978819648137434455876345484981769218250342037019147132463122544155645792500626369215864476905804065482134841990657357210871673681625524247801026473578205281714274180255775961970220884903033866286217339638734345737972861932477101386455800351635775979738261022780366770128080719816824389891766665889553791844859955268267838212653127588689281363611516974574723327174436381046449729448014691822320773812650714437977205024357080534459789030518038002794614169641863330244600252616228231968001121635534325818099212469812433943719489703680148228282334720223800348682563573194301965567103047802564228614925748089886541269492828547478790451723927427755410072581180083574004338056605842693758035737257159077194119903296329866074921986052028001539960827045231502300443980185890672233855903242622168545067357539771159837844342843714854745359565377146150217270623438199294800903578243774635937373531249793994970725696317649214867414659371797778501239373956643209155345114385537426384703141433810904652219806520855344137451392901640511195174707695506430983822572740864930389962263046655812284665681124718621769587067117319056835381393756421779622678628028220915133155225283257496794749775590224277114268948786208391831262870640689360553469030650987763416541414040817869980682989874147271443958753325475916344464501260786618614924273156471467196275736612715006025830384821247556011282619749787664840050999069750673687377637278451876656566266648149990871125911393838249762862445102908165458023839718826010118953266421065571992254432067154356630993204034008578449301791964336191391077462786584391465361591843327263282627521907145969396046026429135024911160316283270631482901250691730022185090664125910455247151558035495193346810178130734556795270085484937143231374020678037334775457995246913216489896034548468418919492777988641529615212176503376777105112766042200979206342796239628837952824959750570234212160064150052926208008460984449968055485542468118363380282963247783314608266674461057690567930296933249877331083384771814999674973978204910031396069668542751927345050768659623212997965115610975332718156641278510117395659136037249487013823139084573958886928502446893434838006686157844926565919333701329386951752967698588037978940402456225703453288834257872870487705304665525729079064900732901247285694262347597822648349323029869660334292965311279421794516055615254650861088643192924470357097207623503546446367540410121635205763134605411068377122299531167736813754381604285433951787806017502104053844646000013524010801595129234119456878239208606329611839037488413204705791820164015494611825425138603652968932795347711377909635645615731632874475805034339733246843175670285820893404442071569261756202837175586328452360583157597894491907109777487317331802667006272984943939915554146469955957577185623978174736946045271503930274196788417206802558622523318372059226579136375391417631651028393871763579154970532178430135692142084902557558535845038584507432788107735265151489849724577199089421978540108414956326017829573301687727036181370084832366869906621755395742211629242428751361412085915278144859799783347637939839047995525146277370049207781146669064794845809535603327894126032214122581445855175199996314758785977432907180896211743332635616121076889219663807112046219047000342579424899412859326165085076203423986403370321867450062087470480604235475722321155211777966974701913269373600669339721535354580997325594070698240588039339523103270935849786405679788246728876301540588371764689940381896230973293841835573921905397486572683647633942022229185761550557841836588079918002066821137252418589656582968563139362953985935764235561435661982269635969050766855895536682569800986003692832472187325364269799771018528594253293037199425122507390959292547862560716371949865443114974794709529683277852986610358838820404108706174101376941210439406898476070933168679189810689756325857680181499924917046123250072373684728979479422982245518496826261923982071419490837420468352310449056781037399574275698210957211222321252425602520462933309297361290543300860601472285583117109504108091447666027146042878957380023383753601404349866093347504741811770728640605006212446611331254621624588435766776566270679056559844484550445125580746429525592685753294246691369552352198473744257052889835739835674830116730666059747017227258510211406480262007541164777575467920833387674280493936457105770620820325372395195907612230591848232035979719260256064345699546178819590664935555240300832708804747947655204201076177988144173805859405802343677605498035828250758823028214305732021313691098379454720841732041343084439321523608629329078422348870255419549336842490448068009190768633329668134451170449324153109707588113968872321937911788633834337786979384876950969227969967531659838366811786133102907661502545318097807078814719777048477272367400461968340940342804311646865578730017341286067247609092268581651647469362400278367108363686486761208559717812564200582606421142916029265531466318596562122562461059816466082968444136414342863999121182726343630060089518776137602197251157774550388033173556808417766839387336780383090743487431854132869365399262044050570272525653294831697540467593398624886124310228374581458940332991619685811982148448127423563714459062563944060703475904599145063396167908833818120263281599809354737799276535339403329361678435573503018256955929400636088853527276216600693524028061466461119974743248344027014219500262282466172106110061818089776977057738813879374503321548794898595937546683756508643525691696779782493689282770716972690470880665348683075673819647493736314056538267867247170831619414326465966468929617286335633742726219915239730146694721962107529646574548922526855116018835136419682239228031513698904892563910320482092883240557656567409953161195171545222496106215157900479352015625974329945037332827852869400258530127651283124418450903584455787623927545417276342727995481102855590385398758192619853741610075688410387868344258353589583459241782756300175638995605483653094296588766441786005052311016247983083348951488915993801552340885096165634302976764222640754702331639158597083560418182184825985193689644088007448839344124087368203304311176008160367725250133712981952684421756027777079672831620264745349871803933847979066708332318581376621090304251609160919504846626227075771735386192704762162212073818461616417123788877129139919307277261697499939944171882869614358376731492484085242115678454710769667620788488798153776697356478008980574474677104364671216561394937236133059113723176901346365050516670896264284556428588830678540804232929553444991321105268642652650488201028166591281756356953326662937558298319513956710051676169677628957966793057933852875954631450103171187171553892160166528858190162506935954769674217421563043944613534322878399405226442322069078696970050797279626889936316657506948672535259308127703048379955694092209152527250072790856282621118442244006850784973680761083284934021144985149832755916761488723696260749623274357956444360663150175909002342815668752415463299118211837916862655827931207153104541281363741653332391994965229403749984453810127251798126030899251974226911735046052857106317460532030178281091896867647175247444087455597558698779609353429847898237639439110496131126648859067156186743828653079963000463287108633078484071071983809833711207663963601574976163984840181257269753223924642684826839424598215475491241063334447657913988740482388026650228332118975850022705590125244630006522012753501190644464238428862762760398549213944513971936680675002464537762757418622076992016982084692465469951713965770308501007938122877664975216788947026078656840576278089541887452955486183925526191229664863613775119494015908832985753712733571082766746524868491273951070462732475757275332079020255989151330527886295699842373485716998280135317309723538262121080995256771724619782599686827050247388083983053133728979114965747898078677483275678596690623257624768500754550782547379944258182354781691231479513668491431077536885238991038796099447124841737267299018287415931417770793758517461115392642751043121009027007803287851996770228369397861423984106706442259787652287848438602455054484833662221794587220146908244142023806709954811304013194855003398365628435350083231696755339323332258266967026259163815656268349824696150977340117003265153273789542282191484987172630950303987803647510033125421360281686834742662305212211292797915715255623835700553403915530652525780409426720629250344761639756896511036743034338191818412215507591011894001293797193728607392281441967494355006113989011584491766627688182111997973365324372378847400176813711535221951203168047464053323546350174277006034676034971947035788598601767891022475806911894160328295621038315592439316238107589733593807666572046385042955162704274405304579568745468080253790882617718195715142166347009606220747285043113245068707194347538402872267848675782240858727570529578249858908809256726713296461488603073581012543002090424139006919874402020117049637626351578982194203896797594370781125466054614102047776164632819675231689055677243745537561903504914481787431556434139033013200573539472917332498693446447377897677340206690815387558143900031716291103932373565222222275608219722472793505505768380358201148264300675517243220824058954802773683329285706301664442342763158620942353584104660273546030039621845408096336130226538663615156638874228364100714784323560722275026764595410668252612890390146310843876073794244691593354966889026356961942058838252959473104256482184068689306267492741092607411139806220050410573232294056875111893455109045323429378679321067599674338931267093756272573602880590774011462082505498443719873972799061033986275679525438849583111097072380027485753001966411675311819379543317032459443817856512625781872270641979472986534237733821158842976800495081078972795844306600435205158537735966139691735357350860461137683275387961054954166366568540896949677161224317374358552090105632675862109986550411800199616467933738577366051760774810798856710009749047847271180144909555811829447509423326507749817935027001046111838442388066568304717466219271790797014755745885746758886408545018384252043539222087411490421115132810214267150849168319526882122384751241476745778983919042044648920717706258844366716641409555605136815379118688245050498103139299825485221735604642394818192106619257780749019293143772040621396648193591603286541883754869110748455622213007539017377565644193955686646834148279842081587224143904787913617351942902414344461509674818657891474112543364357891296111107824876840022014683255102851225985859347856949314324304446956272352786763441273583284959252094357454333629840599181498905120153877142881580607638903510586523595344221443148112792123754095944336292684985205086529197535963721109037016978573178875453576953181214195775668355444201425388113626921429898957730726815619814546482483148917747389173201646354729298017998759767767449658603049129671514617729293157463767154868072380376673427306770069032864903414098717757967746544669844752369062389767133145445694397030776217959762882730530041858672402794178169669057239975658219568170844525360072260542866331984818065353979442037376822727832148119696717312076155722144058772369872969791766683714233926140399075775977718874222321622849446726605201001002177157204889465092696530139429254031026023435476802969840369414426434590636640375402540625260197224843835256181635009357108337106296682613738832467970377740464710562012855447401524358022455878006346063451590999141377396177942928249218239030122688502839121505400097129572438280942789095956172097121011705894947257474431184456214775178937636045460174335962388832757081063618869953010924695685594658960501017093350398514238676548695903596522472153680210984657123569776318942071658764430093648797964603928741134439424145064632231743544804531209922022345182078678996059296450835358548830989798435665963608701637644515895061313124164268891971744954446213229470331873008436994637519266203783173880055470982465727320246151182713195478153409522277350547094347077596783406868709049069186156186283504011430443565845524718026039131589289976970100178212442200356456395754675941641298059692066578475017077018441218335175695155232320618038149228055405450146766158984500973194130450839919586137518601273172660423768650619644402207646075807361600430470711828231997851678348893614320680006904065827963629828535446531155489986008418721756079821433149577099200586015935728815836728809956126812565487554398000415850713024664307961304112155313242353685178336429818623065507193635786206235020352410021595187125843069711494010036817837071853475251663605872999985138233655895641446620281018695447443113293962140206765594121877957880108010097423712822811602109961513117711207948730799738597586173207362774132793504022525997210121919772423071264517648172496386233961810848999803460091919196485567769129998130849794270316461460322547968473926415662528182254437787686551198749418967334331136023546360951927034214794691901767507183182396892019373856972954800746524418871651110628596308202566381672631864521491266440390097584047824996039849856844964983884344053834114524292502640777565473850328875910144203166867960162019781149661318827155832761055016487555513079158076150277783743423322273228641719652266779591955283244345948843486388595428825177602938040582848978915596858994959645687682134079600449575109337452684616921765387235389257124749403898135643043288237084473011324877717437857131147176821298933511344371178958225454510415669225802794803978505633763729560416248257073808897467139875298996735811147827375811476002765021780867507512579015002359863969884392602779098145402385467234501750223864327841790914774790734377049393196620468809985709895583389079055819117890623343346497476766973358056650031185533144365261282483377228782729674297092471304232331493873100958184986830219144382087105511755343957462682616208906820384577943983204356367680523308714103463004374021060745977016037638561972033879001670217716613722345292330529708127485830789935151946576312335764151514715814901157335190135710035230585209415686539202615039750790789211156223473553357204530058187583496110992990363462179373494585984007618113571606038978684378082532612352785492122997476242226174230984550195413611960728234245763428200145921386463816040445376210033264989883295932511475151542183161325909790936960870460892082158892769083473476877441331650532131683840892385473599463573175226190166906777560964047175808683555511585757321940495541697418580584882149856461894569465948059933504806174318551254481666960623893363508126525638961479237468346608082468428520443205789071579100807036401018653208926006660039813138137769549586936654706600889708537428125551901364428105762132650010469477183214374376510187050122035813985299517861600356853245766531463194837641288132209175045686901136881737144196574498559304294563185629869494224058402106670778233653001818366623079861875986770588823621379466000092908430263656700270374553195696507555267493541617382679841146354159290148325358183116622866046336727707606836707413628387679382738638585800436032868842327556730683188879609323305569279740697894671756811183397834694502306218521842839488988980439316132716759122278190805752003460782495261500393969514708734345119397523860660499954744585989296238738482855878768466461603887414911728858613919270378445755193378014068527240722723201924215868555625746614016437698424946986350926822679139521217049138376548948659953732076620213513767401567963721006503096584250593790302693698575600855909461459211205745373353346326079925594351092376370655447363516397767679471395827852050797588797127842328924598601152458195632801845776337766978743897179604255314738423706308813144467927779857026437294403194489210009926543137877727958277757901462654852114505686210566102382070974884380777229142897089606277503452717280318987158211315216174404507164183724291964304346158893480707994500931166318920431163399972727603904412460508780552803784706099888017468597705523211570324606966583321188558288169763028701155710475523172671270389463910211708807476274741862416446523620262174581294170985289083935756247101471637947236036906136425542019895067345057427800548018759072964331125014498608645541189964679925503057184422557816436443799415055318380311522369635280004347872899929253449713526118908476157228518113805163923855229837411715804455958608655803581464796592263461535907720512032854115744227231244283086715443341220800326029763806480561500251952851914614624204490268233738932571230914559185230970964600969402687638010354834308224654238611589879782365116826903362389873985582428240904432687985990124668221711562640081014364590062685669934290986610589157108907811332470218545472667913167312141213854421818941265389480624076140040479386913180788955086521289382961513520923540048524459439439584551830471259396268066364729620294486249544621191315110051294227546370101557891648847020472023472276324488320982201447057464162146328915348452855254929418530890150401062162305745811451772174825329925930896647489818948106950327296917890980438261699624606146606993870889407747595804924528803899440519897971781772903593019389031192957284880786987923298394764964734635675739628632359813781633589016382046682326036838473346676171839617406240043565176601218677791004248473355322838361225463021416919936281132424627349303206502842438693695964308753842182047241121983419979110367076227426158438103589594623700925804031958122162747578731179475327733896990365892584973325999972468562380207788021406054097726719970858217618197894090968793567624000898462011105824917456030404907078390038449042762189771016855812716315333490133672066110422735959764757206987711883941614631504396827922343720765992897832238244641211044531638908641076384935154594415704086130556417047010045566730255632291754438550870064179229038493849504370819886980790567187904939312874782206030809625758241393016330413807261398883618100703737911905385507029758413171788136920654502792591948248081914835346931026581494737788460622955838176370292571206328036575276959452132452792302150210119520903836189857371042480848100117055375542581296049591003481507472092816955296198865934001718440153578691778268286062701163779601949008929059965374501026821557984186485540880435211393354454144355566102538791294737138588146687903831884171866122591474644501458813699417148834130242490297306539912137184388866852480357127603751656053310511018852366637088221145651519988757930137406049665727037387510995376834232628678875174760770834096839097126744450817721250461745135740284099440153738003965511009483029231581570333931773541735159889560368447571512802536967781801065550600394402297369813824459203429612358519976292765777278478502393314949105975803022552444943784953990320503735063010961784211906462379666850641497494331441876982538272008645867757475423794097307685424699927165316746593665230290807999965917655059914511113708940407910619042084403749588475490640067464363847382107320932959332148459449697980231671585812741198409096390549421495983641008247960667554047038610424784865671133537338758376153943852326995408869514427625951809202775837029964196638981710264622674190893647877066966024707476715851179079013788120835382162006583585201521329480507567220710600930725847751107786204175839277401021883292278408714177721349692172619952719119876036788053667055160095545806796114988962563554823428716059210907226914791711806975151520907167384566430499006350911214822349482623277791657406480435481175197206429164520797322571175010671098447937552472503481093917690467685734695559243136476351015402242109480004773854035126482218809292668565656075451532823391241943901117575255646278726312353878725847168455277269505013728748351153651696445079004101910835225543925423343535525383244576490439809420148926335397931281327250499368984704571552230766949745405971079420778809130269648155899557609413437646922111694624777012068341144779446335306742322714214316880781106053757356836086891798362702973633748069318876402147362956452369045241278981971034856080573016323092465476796945525006691071415173816304016851844250895812860983475228122302780494766069730634129746008735343697040584542116540403519105402772629701899670877065927510186718554311777321587615451610976169768991381843829634915377261258444887508192125143757789437691744573799469570993470940670655151104160684637167693168240497908557664700110709104469487225254194755506489491238873020149221221788262375651549608049589281322248678703531081095407023131336476769258076655855565989175399675951005578886637586393157125292105437960024942007652272216462350898438598929292566488368533821026465169638085944738977641758174192520787377288459188471500467066536251637852751263947055713099569400964608448794369050026805733184041149358475320958994500708040371994237177001357609274482329782553760018450182615003530390052207632100871246267795927627859746619229399629267384153450953702031897265911740720535497228935221899091735249312370029337007526843731562832186488430232442011838707744515676455076347577177269949918590445713040191038112431685703717295795732601744926925918433266725972220154466401438087217607417328896390068337152969705638343147594826824512360970421738093436052387154071048832231760774684999759083438290834625051099416390153634947482550809064638236123390691316760241413179826178954333115739631883588314959908127881618486346764093730116387498769391829988974556592637276963257681511627024180430635436133770826642796388777912929495712218716502143112502211320077483017064022398695872800324268479513588118235951364535539174539084710819430516408170316317383289374033542317016098149736343496391906434525959843589374347772628616956112160770655831430542587319682381878297015379983246513952617694477839308212166031426125077630994939509067751023733158154608570077264559304511866022802986718664933222876697335276892834983505132082773884633541890750215423960647666861183546185349347396403716977288906854145975671069490706422023348850268506571280988805782636063816017376634057704834830020868529150797027114051159574357216181346647853724965372286315672502747934886057112448742726229878655905076230098100477894441161827433818532405041793503852016161816092834040674651098189801923775785660184836239602540672424713379382279642909994194338509099164128437662442270845090930602196500227608661512905352631431283825048454631343851280071602470246437295621330622966586619561970762620623116009629192876758183482266920082745663672305475185056525272432041380814720036974487304091030150574951562257671576907639742705502089537727118507146253048555042212295960768167826491900448991247621735037636445032813129650782318895824999949535974277325106786995571516669564404578434377191718665940926115057461036043139875856628134476935485882213418919713487180209759412862315984891924550641553192485484027296565091903748028168067856312453844646288106048444199934472455557567579873770743540472981914946521471075800385479512168401837371639858388465619332300782157429633773263014126725838753468141359958718735992529529581647736503546005310910056236412894674635378064988969124318582441535884404950300583980828824423217095204249718546575578515443592187875956389944520359717829666501880377530402652648044384884765978295640550052650732299806365187572864539055844639210495680312625635396642018382294219060504576150621981171276056230811105579569927659584206190914126168917723958673192060595325432431548257352878171089849980880029338249633673252988356145847545421126000589336288511723278860023332025992062762816875367574338430110794487392002682053912854651730739962431816053937525915242915570262589483056822541392624937681944219153975885376108250852402806218681163213347604975893872546681523908338113046309249237365611480994654995527027501724658348474363805785890304566657473790019852125627844862360970650345790571272004614796259068493485277776983978366085493828546653648900494842753212776158398569237781288172532551628996062737972850346104087707159575830576405928830873278294864824786631609046520997762399929408672481540789434785054851820993417310007008210987588643732422721809920576341096945648461799932171725277962289992508771548286927359176771175664078681623960717606324620039169888236941229606904020179517378185636261129598665832116372942112475104705614676018212144380224300819560228335978966498926519839448053606281921708942232587711562986805367556115184140029403127754334522731260480452106860561214014665210677309156919169929837079810113399231048063380712575481938176810011813006475326466264189194605071789851230194884696341666928579535780203707103205321715956576019996223869817688741791865013084935779958325295045560851454726743450826501099365328631936450450517964355919151165407956406882433877169010323078970031304171317081949443889767072695867901333545661925256004662788266573368284600166976347090931594997482005053106803483758398690975376789681716194870803361733476146210683980734064466507736705229068880307643686628272739343002073783879149599738934320636513421766881926526044483450040052745274723079541388104109537608012390991615644032040284051387726423402220078206946073268104070186728715918474669701632506562889266790679779050152331799905389826547229328920579360694700563043700267105663736197060158978167761111925607477305947192680622241794910060532647864555381037527001834572325953267906761611707309892827984262056494746810512419227530124769364610135491486549824334412861696053344294994838996510851201930506218499973571414432055822848589666358374445538089304376998766694143079215227148940033510871746265030902555763894557545581246860520253713454338235535640212238419745518610414322894089914723760658054950043341783459989544217722583187741700742969268115642873247632746034562473355354970140115090849521085678122156548579893368761746679843825722583577063276535205784910971743505056775831081935021590171808167657023505775852048136846526946288560576606087187901708868843251624784320260135468280836251912999156633105962358103528847253985278656735731013237821903171213812643273055561910117120716185438498505277138537253672243286333655284676318878446323306346311559868051897006439270057603886507324184817836590762856514835472011827723220436203024772267305721731540272474871928838723092659997497373090761522176677592278504978809589942004960764462580652080095997731013150335355575578717258523497643325338836338781920005906658710718503446160606096128068938807761868766641598765650698615216267778360338346689207741870021957515335147805200163554700291848261355797335721308775536231468827649129030963056540938614724998074591276838469423166636861058262458736646246030139534730383959943267879768689659146679873424304090373383451127281603799296088782087785988543736752429876168833564368359575948762866480184113037323887126084834198203157222509187817978875350419325757447512808687082615121285146533168275349593773209870931628527484045686421456712962978182101874438228503323977826661518283224378858785926495449228207930496746841717756498766082040703550753501917961482973016683832554255587617196209125252702704954732446857169184784603977807513990083491339718473247478254268795261087320891741235051100768919360786902531956047161599322444944328044083910146545768607200706791280628620830959845430953374056984880620603801800666451706216317558440846477782755126196725737395845539950175894015777959301226188009011032590930003661500047960614066881853128471358154576685058484840444476126735781457771340779280122270311203041426722431997635411947198922056895315292365731573279699744642280367979770076283336636917561251234256648780835428030141700185684867023271916945097902901813232664796431824416292315231134632493157636489977887569832158381191142351743031478367662256596058988433500845763844297371471977610200486313653326951021207439635139494113849973222516445589709094524429081367811761051306243690367556851173887223739047517847467396166406526818896824410418688221494088389860134444368133911876618026783555994046308969258420278673071562665253628707722269085759501944401236830146076698035852847680199993739947819142053124009603112803275061271690831973019089892809362458819654999700298691212855329709604027904962630965977700521844871318302834645646774133433275820950861116494047943059321971660537106167959718838592713484794203842049566899479147933805366201192424503534174017402805454004617052716186256387302999985389630292182892418020834546113951481777753216213161870676537575302688271493735540738018195768844029811993247061785833995562903082084479184251208502311032072842086255328549710579217881959975986578349750849824613846773724737823651048522270232897966185496527345552575098457176218082356765247987802285087710001074887566357673209696003184704007524812535100043712471509843065593524054060531549326101960128961825183254741774694360334582034315689252464592333899692623023733345617774672857567594998303495627436657036243891701652415171031062444330488390761552616649694983278476480321465011425484584781477433996712110627814258158238428256571230069756963343399764434558327471926795232974053105416962271054773302577571766275542987678746580821212768817770432784694206600387442973336001109795680568957414424330094006847219961416300436967399248833887730946684067437144953748391720152278683404851633504183959841461390111012808377652100980332348261873115191012474862813484521833145800004572492825054550779782691075482905938328688545213281208633361656790234471703431834728819655350115252892505603550723325072200057319110235458761432835767668924707194338881649596233617974766110984454104336236768162237045548090267505495348941261165269889568522398567336163643734194186583158721376705119919663629918343569219241542075022771528171138256025069540795454874765057235531358112936662806544396291170994724573616427023304433669684238976696606949709668406411251817847934080704757087164073344004994403656032770507066847484230631582217721430745457807493384633383046715259882566484510714992068275088839258115588199752801106665963730510539243795834261387118252762495132602378107356343266960043648071893828130995602899909527030739705279433300899922383201328385752914553734000459113666872287483773755216105852167707276259262062097389263341477122131785871912833735874867426006116511674243845048395839939035682942246971273193104999337623740364949659814590487471592404446749881747320382345979634532832150786888842962621974530057156800847286742016779621136087479714309499073991985455418118691331252554627491939345958867365077834439677461241462992535084185183750810628222993674037253370041404923920605905905131341312118573352018604029495292783859739944792976927407955004856733201791633544375468168350468079792299872218458809641716074818768368951352052101353463471921166476055667761704320556986030604208117854982987015331906864637064128482305402325814833095055880994353421583423378623672939936429714747763788526693184015799742378275211144715217130558494988171032892696024182663321148551570410214177688450078067303249757860645585167789061558312705924509511840217132911330898651527119658102598217293479704168418555363691750510671743541407853817400925967423842312380545418041491855388204480808818285002250017768046201510858806903663043143864947589033702853519572564056904736592393304282039976231524944416443665907358370778436062534326049122915118833294044099517455535211589901871685016808169694426624874952558410832261603209731543386355181332661027983204188981294054503003982393989903745504427224705523948655305791920935593938581016890701141674768048332220678281993712411296168694638227433888894883982127413572744435656271147270563129022871430417895257355357677448501987045941274193668999046236771095090600209167713327652091756839066458176079695958335879046690528367694736250127667144685664486879749878679034147615284532401929387452787934539666754633710612962580461414254266014530425705536441395767153318649764915238671452062505408209376281639822992795430428827212719194512461034126021607623370645702114139019851282344147590335520262749981455627556457522323635526823223268198463636788331904079872299406657333234232807491039564616071180195969472041317312646749483539016080503050155441383138298048651726401693276133741173956067874536388900893838224786547605542377191440903316511184815278631012173581246155357910514904900369025646623639435929525552611262218535206544716401855871812896281755512545319357734192517196294043113748773124758152063807309847899299584329484360284583177800620823224944646904967529095063123358210484392225483648043083253257678709883797458730973645831055549722209809721243227453964779031378904870585914647722311170852782111905754506880753507708426309821109146291691279747727718126234586531849902246631703859367965264496378407586849312912916349469331248073145681440544774630412703134189675089357001398515053493326995942643377785899009520390909015177610123955225857774519939929115081637346746475944499320719604463970267421930598987597658244704337620761364971750158533654322014040437013552461400228293064631483889835633665789280280032476810292242512650923154137633886900335898812780788352464402721401215688756989923507244907938624417059684658786310572828183152660918717563837885860391367313918690987577373853088762985763284970760102831910601913274147901250575763276144353234721297802219802251390712194622973431961710032217999943353499571413317690194772439412301194690640628910544849005096763842995982178194918541231638301083642884847379150872012094703837537597895017982760072354623659662262686484116633681018085442692268917467497800451852250663714393908836327821865792731834188357622228132447157955960463372085449770216269030937652371670315540717934452945487038705943387286633069904139917375052768058592328355715039961473504844434164841024322484791924841421305844127344855744279485483603400391982057831754599509786875423390746509332566112359059066651877272991613227549844555786324413781308654249907129304366308582194415728455343414887401181291174970638690472275759017379167687819221110796519619385379510998145490238035016272286234683719457355115179879507863978269184986896855782478306047889211426392816612806088375803475221942892431748826847632646037024738911608638339872247762603876328406555477918603566398377818453412205994800103767838171226447358730244212854550424668897385417494714075882711525246221654856481081933730178770339873445317509329140725385486679521130978429177630043920532713484294421077607132647079646656845056060993847657206565828155645849859607677437010060724890034824875911515852224884545453176581331710827808491580090975820851677804162536838552264658251491509701466541771949628240053721384427524769024915371632842627671566186438338213640758358588622160655086036862744010987864306841452901775439106042575637896700551923844782336752701126262603603967430019373952664063236638626513266602794250096995581084144547347098151200328781475945103122720362453360964267721019926955649538076885386275955026073229524652276757770364530668284518388176008252257676264850248264453244794841037973474412556582344569273492150957919544908674990962300695343287938062339207117193847893405389485293123047994142385135302281413094046797749650977649643552192403771490065804709958118866385707739010459097848979042478838430953886355793656212717816149997339945211601642055232921803235296978948270280458764637509735523392667100892514524714643656952536840458023175480570254824281562614619621791378509327356839557114317323555534404836879525977180774984148789982764855640993570070482391445409477448535324325423302192066852979622312809306458541748177831035173910782571798946395897435145194281079429904504489014112335192148695651030281346922175609820567824479904819607965038070308094773247589403455010667205630533111939556301830666317809877661608304653321548365310418337433440271043903169807471358931765637102829443982207106429296907441253583845439154508656991948443007960826292105001706635641526028445217660348656869071046441683478740827527839071217273026853141147753648347748843414879777913755461064690473407622067841481983200478177078559127012275102294015808303910808920292968713289853983323259062327428867888080777108061714326610220530045688588084787784890464163105958437971795507527725624481015121283250703584503731121465200040770577323779342835618524595529902566054895789044058382660264071617382840260187943510039721117289923832564745492169849620865647633152467829214461883876998409815800136275368067791687376010785627593427035474141367610461132114883120978963837336566307883515456007472836671738000462358932794491670550993987980173656374899091004523539925464927201283069803379944725066170148772774860051740618295846250987309258486646657746084002547770231211520145971996385727570517674454563741715996229353305052175750160143478190100520163568714988362122255374915787643278985897646473818366881697678260065220144730140793036395760516861162004770803838849602751844590069065114721161145799831317127665847255264008943940930633386705525954751743261762962177717955192408100461440063825442319079957349742023519924020517024518112773156423914886725435735526234205978082963539370393081334110701910082975741145620843435340699471475168103156378554134745499414738846616447983314099445552933119963618225972867853751931286230727810880405883299225721282781725380654434524672655570199673621874403527813418368940849938318062629809450370773025968627533534050362321498025741902008391415432957074221856594379638591574383574632257014386882340253972088540319283979556231915018883392273687000654957212386424530804860865262245354124614910351968644969033200857420933351477695211926708104510147667566605648989746588096918452855271766628230801064235404613998514772858729939256020836169954866027046188459532493783258729709117134413193756697375831916514701983428110910435963351587221293315873583731630810686083647571009824410054802277961261759150001781203557920586870670267450260653589648859435396512359920381768840525056052215318933123878942202961950234692435329376573699468562812604357547877729905908078610992583629847872550330344600812320222353067094428232674853709685859075107580115540344879238628528805492202075381787750491875418429809806678626267883452479165890060530410619041543994518077815622193753382118039575863695216925467633243211893892583445425688556283388987774565627122628185040340110862476171601765467498518922965884791526580409435627423170983906818643923242663311498738130322083296835860039033032656697568628942284649468398457715314537783545135864375496655216715462638199714539489628788978726296526236601209968657260200753604849824786708134823381597299520495864603327803866186934858637630465639369312472333336642166332008681757264579628450382070214764084304174631995707522283574652435497982311984861720090452780436504822994847699721502013446879422379350328415180807593942118785458823130496149021314854772628541498659231122220846386643909215254417683472929573938716704783103650192103967028115427085369380445313416808299540422045462310505076593396292896749078647451246784827820811243377388292206767135780453532464225344913313942628801167124554809750688470866997274178175803669369367535497385051668619520738263732616711711204911623236070942534551304504907556047783682625133604104533269817637877126417529153429148630034567029107215157026463192875287251774271072993587210666946063420438443492392904852698593012231433484814396482369183195730374186674666196269799122511147598850829079111185166475837514233186926075135328811653295807091891696427648286959596948344073115148929555717846594479681424770157717534460378642610303112414640691591089238201628533695731510327210494776628732532427193031489000676751483604924347476021654489235900454445320414050702320794496527780342256500744375333624727566428352159202221895121281379359065859894854433975833628711151054156472326666532976324492154498847641090776111066406629504922398652309090662315852173997361828444412806308321765470154479085328156615164286880018504032378642900628749168479815033704507214796670279923282796253712331772335137709119667643194126067911531958632428944069115889867955637798854898544152215884789519144422112016570302242540866720501925909700881465131644328765130826405058526592479897357306690968785837836172973909552456674847224172217496219487883050514852851501048022159311429530797605728044266687046049489383957535887065722715378724570601766758256165292945225642186016965703708460824262347103568982523998830031698940864992728137143941578644542599613077933074566647498744402539386806449267062692566345085039861555254787631139342270002128100675384906202432643905982890760914654699323548260502586163875040098127167840462115612612110658506016891452142068430676967964497854585194640366181782184853008453025486645794176548268029256532627124413771443744634429921154906113042827259052765724132611590679674734461364882930905579642453765942300933852847443390880078110614987255430250078581239950343455018247837160255404822642982717377051750997780280078854131395992054557060600093824619787234941309178848902920860934711688586351555168310219412382477029644312793418422158492538445531980142681804926242919369591842946239353779565696020411675713668840769963851304699830357018801088791652794211345668981885394169127403971532136992117379836050385157775517111255539545998574274064817492822288740663371636603735954666623535182054852976551880000715627194890998617338053180243433961688993576797737609456825859010908757064130603984190321396722909817414025488504509197982888887958546047191906056258702393710370831343671761613815618565053549880443747598242261083610341608028888446143158292533038953572979300172372590012293138618532776743494114406538613977450655775995848290741544155843826820788357109913204973500045132033879306354871803350325084512152045700046249334399082546174281692849634459380672252015408720896987213120907845072485080523858458726601571969793097426971147364716421970253331726079047830326331656430074148945516793659424785223542413618636033821035682117222211535106016162940471019870456801120335431183583083691769429159796862490156010713212136864945135702635396416102040658394800768877345065363844628492449881318419231495990347235901209609067390019082606818368143783360577198329004006486084098472975651243526419034672246893523682535127992171591661749790539028311578695791527151666689382868347523209106140245619745404314586995136094131402371665894478565076179087970240464447118821176577191010491702080872940427398088649735090162299029184238473609784295076931247277925606050998621746556002008676169611346249259540632679490847843122222787958134829452201445749311747383409435925939948954874238933163140306176522857748501636200754700824259327440237730095539347159175396178228184869613400831020102717604744385560952565327222574910255836123021429589388527038639659441200104286427513216110125120889065774789087534661673882461228298647387334199997356199362067074301458836172852646437729843473194362065471663575696159702309156851127690175933550703750616577695823923823947527835575418980334601342822166562265086232784795469842936820217152855623431867488150271498894670470511897629157803203835109822677877050768999654936892260426245912084327624931026684338403882327550721281894047817613823766727916468270778759134489456418092047962563625408596537211767312833175227432346954190507142017512812873453830804905340629461909993795036069180369304282331657515297041311064801695172607926379631848410317548325320953243538711451020129948467320746472303956530318006341535912278130480530180239409934304780927490521525223968268528771093660443304057676863969304976948875236367965428291921849261769674872219489809539239193644054055383453503257702990916232387846118418046622959696047050647924442874759575591169257950657561622481274083255188745363111923067014585930108293313070804202956550675008339805510367312183856900365340500385391618352980496622368236059895276820129365595978332804455142518750520334855259792044571957446742190474151618388010256007334312684460594498735612810573487831461530931499316598215906047452492934795887714400414842692041726325674368283154145962175004445559616191043792890133882149503616066903045476391164579465970395566126430460365214508366699224672004036902205033897179338739608263233122517003640905503424011096062070883078195646430391992725678109758383740069420043095091246516013075485605329138663155788620461328043354400903480778173634015740845199338668043255414496793814292085176017327013792168460010624299520287848819645702933428844662911526617558423998869594408357955938266816656843804151190422547230493947187856582277828467183004274750142291559287992274343378641257175586471584143784881680358809340197672803591453378955739597166010502305500732286205102229312127874180873823092455036682873514735650929980389659861131976782419794666662905131502994512512338590715195302150992167996342597471681189870482866426914126685190396320131247275104286618864206364439035367621555820482952237235740426942718636346125993993053163124459561599328631130200700094317320500428958255816299063917751583393630776409645947927198741415466484937933523709936410299559755320129762022604119931580369879936747546951074718416418238843335240121061519986321936583782575688689183719932929545438070483313709029335669728503673574045002613659718573941699807680424824526394500757701736846734583638176029184153758741661871602699153134932714336291163488526960171517763672402680828205177262247836026020955315893209711872088817051832052543829439384313290858693108169825178417991285663690272727753500162249655874331515659788394202925144598295102330971933813127252892417548491528452025743056325882890268628679968695700089785537888615671804545828697716576326784146107701891881035782530051409130845717679529064583106389212605743128464502187011241980330526938956540605471717402779551202395534451626421572430381222387515830995371064479688371277874076773958227616369291460081737513083648010100479996629721020568348990350033815208904746128086280027748455075336346418046120358983176136824236054379116798984610409290842910690539590491318306336906497635351996289858922992110371486833312441115557469153583839970944042203774834000181393383181501936300555148089677878986206888587784365294627847206556292193601198041154766699147836232124715002044634515380402348441893219361417830140087095554749664308068046949502747274209158510241863335823562071281239067951211085309711142560562216760981797742912749123159336222159769953040218827317151648992295537241032636195681471067926880043817206988519896989648244073764857725808055089490182376563421349965502055772468022818979060178228755569046753747686038209726823870982554491479996789725986410177058145365583894725195205712210367655612123064682735253593419595236581362271135778121699794927922774811762800733565107579558886616118676010448448632615913703033522784573249951236080155709764196967137835131596055599333452266248023812422407552001595343608429360979169005528873986773853433189682690248416106301699843910973630941022360689077904283955370819120589557776654247158718235943700919854003349193030755394323736245108517552812571524436168581772481539175215524121561027889366587626929736156835372148807016724887616602572448347839838482500255607394002444328043482261927744602866315376608102417110039060563560862424508022991934977113046028215761296586427901279482377554338438219457569611170587736653810231187286877856247111868620656822196264351189413883845449616338558557843458204044588998489885410126047931053964771450829433157408322262205830471355561113605410123595730074984598252321939023795740927046310952224039331519492718333587045503039951030376904218486999834829835929784152951031911860137322359031951053012947824785723842610518703249601659204966496868216431071328072626393094864444494602275655976893446608093907545243000536014449594899695973388587312948783069425907927188320819940146864557602347816911516006772880023746179809991249110669305948116157705495893337055023541061440358372903124417899534869924145780979119474589345146133739389542125966460847631923204530137885130820602701407552036608612459129890725237310331011204435514728350103990375465206835510154598071366460202157907528093747192518105463063151444325354773748997061442779812445875139470908834643928752721820190536974134388147410131832005839109972931867047743008496031419895464165553387628226147272764897064404402003690052657513244744902697286916856873332258379471124239400192524525172240773179056708834926311524927525698489290073302128300701286177092421366851999341059501410570866125724402351615211819503287217331656276012404742750882617702816283435333212040082057165983034416857264639810379799883596826065605736317286294816455925369495502903139797088576527031569532776261790942295061455676680555394769517860993651685154461650810818418829633003870687703585172434995625491476747781145856161558252455612589555668850171308455650855033304697670430922435945477319990500555176175719189040020998850014665251738579930202290052087575788604491572760701760997146333546389892898011179014345503491186130453252421018960197600733786240696363743934385712397832255156226619433802487580094539143181579341825192098830319437450250699390166378682516394103102150914090021570550389238396138939631307950386194400944343454563711899929625406254965912983698040909816469403517502191508975484474683277167910924452257337295612690305847573098022660986752994291608270661589045652643883466154841888348760568949776413880381039447053767832799180067224882516505943763547863572003749327783407343785291754813582091836080393254683928726777457388209279410525280025520316641010905589759754400510594052591126628273061673228969307521955165273984453287156770997962385008504886601821114619328338235860870487849577992296703274944519313094137611250846690516728938753777707854599260191928113408536941869425806279205016897452080820080446522238743135850527386091805814386879400296689469904618819943733537183283752829050158409291223304959567720967262656796578804239917684698695695274818571359090326458023741924340493502533745503000508970888052762793225428798651359795225086614911230804832951268477581842842958256828999287296526990631938825133583227059218111297703457271080731664200007370169134103854704443260239368724583390620522814300574242368593732260969839956540822500810288047718978564511661258615830736466257467605262989328562368966667261109887579221733395885815867204618140093511152087404119215009951512176899309077067696431402800686262559252646959511113610826051845584810825136489785724646431284137622613743633604790430272092660743747395956329997708202657752412280401122267783718258200383693488602419338913758494232213790887586255626520129101199551176867447100392111527650659866164228451562879842223288077738221071994167461535001951090272684649580933145504433663396122650033177237983355280141110934913972735400328220650670653643878634948198912338288348780480229538312536818927541205609188079540073178526836519708145132179868759560989288141058201145766914433318602783268743166628251049420200181284638319089038005339922621629471217045054285198930047003024722468501152937450587844403481804688743116226783091107087355817042915398345254426103513856167987751515648731593156048130032158624963077422118390619133163289004421579985832685008253188430506996757315036631637415453163399303454893102452572366698849027615510459807259514835971168257378525534335262030893220732410743516564286366411877485279074356890641034632372749961372274508534947349233393078371492694936305622681954711360142812230934117218678873179366541237038522474899369525043089382587893045808278604159393638834044639143156905401629283033742621102348970089142251876348591113151186134466738388727695245937485559802349707071390298315941668025839650629176560589976926912081907524667936910876949322002793067529874901330887948327103780059529398960591404400888765299345678184196535139109134299205552529769089455079444899980797130358371855995605287111903876753724760016775095693445999258938013784767521670503690475825781828915217027663362366506039935867229916099110212709448554855928660125138928959890641206306237189851293745609718662098844033394680968776493466451621221124938108945072931927802040712953982535233519819487433638487848982758215827670797066519347866385074489270651662362879645647196864858266091639612988072283843141324821594718604221091766864086487208134526408142054766762794978268934110128198945564941599990295722980912358221923034811153786583019750274440019582779072546658902885764118216051370021702170749210743780780360306074856132294565748802687127852638714975299902472917033435028052326241163242338792622195636655932176262099354387357769245905033474367204796401856320848633308212484225904585455836938307352084938491118528725852473616202187266351787307957746984460494460894965319688437880298734308976130938327057969084395080436462861302540633215285971544013576500536352602869465021034496386502193956632305689205609302848123425850395082851470206162220260467492349242328790292970484032283504707893374280404583540479849442252530267860003630361694094586973198232160821245454762184595259049892774189816455570467540968829102085358340140249702821112115143890669646617647107205951230057940104767040966630863536657480664813826285010334833176506055836965620867531391994347275641858777822212025881662434773132762216355017297098824159060103597564353840229530732981078484339099926581042816577172075284102122854115016154814135175186036292918817545293662869944305045902189223614023807363853071245837630779721128393867919226931323618033411249326592762393058661228168893813557407343658682048635105698072762726617383955906114413588494813626359092867733741471439481764509719212539877556854800465119717820182303880737102558155176994511505929806882193596909785540404218696845714284173508050994983334333779492864391833428214696976593760818095948832745275085907368359821932967542808633994674417199777954377069116459506831525947697726653097512102696064290913197314121459737463994643500914091117967722931004576021992559475034137016656183843529942786977379412623266012036211203979866690958959719112701125149083707509301854025381293023604345241411862087444646790173080704390483579473496328279131339134286070270503846689603919463702001702173513881032704444684258492755514207725063556829867375280205941287668108822458665804484838960634403893675410753047018471784521932716338177390234461341469832181248690724545875770297679629091996345473244010145567524375901688041585149312926850967146101640949349460774213631019364471285935278878872470499213297177725724815885831847723933382136213589004187348067884950980452541032859096569298567862750652184612247781326691569097688274270851817850029739152495577473169852853359019465406509385143922286269215330841405138864678876752551050786076216974661573764064324614994526545346105533090641626381417051347298640555486073360172697339762012712284161021507567554784061945466936665331756765395021381130944778665197147768083258213470051644534697710088591943870738597462875049823159105274675675590675065614938971301499145997770746949969335050394973107378968907468599701759351365553034428522965181031571530300055128594459591833449021771723975008136602334216869625137381834581851290504000506522576971538872058010794362719816753371842788597360948308191444132954903646948284752250773558403987940679155219155309598649053987208483508122840493741389680234631727148753734029078381908516439565816024665684663392766023280003052724692285274293651597152119721495826472302289463875846117563882659956231165565541859907220827189586481130592056754379636910183956029905069493816483814029292719795052290117074204860719443933741469424144682466695109304627471038052628511271910152327439112257092228662131654502298022625819767422209646641668319814625345311292564614758054574373188791936716714171064293668042352790528196263293361105002172152809679367345059325292284976605248593291137610777183252974321718923669151687608137028258946208752430929978407383956307577430992780161846843994812830752785588327670604540636920426437848498001023193518449028580229047159106435925801914857539038334878395649015479308072005869897722376652602128703620593889786978058431935982047716165812951065344598477938266996914262654604279368065785003729630858905708105103029349802216649894164313079861482458919857265136853479279597874626656705619944382549718869538551921058332263340622134107521713432020366335063982469509195526366945623163200767840955749031053374771165371570694687853677945696327981414406776247192277214036526163401869673613880663256158532141817149827338105683320163192658704247279715091648012075580925598806334463905550377561596322423553334155421843001245792322769764933110660565125485847534989944665714268229437515503141207334785957514662367502370383955324093556872975484921492915770826682987382707374148226424092606150729408880174826763784026351245724057422525781178476685504175760348599325291928054946567173414048817277847473388063472773394533523358760711438287199974024955602922226625732708971609035246505932679822570240477070719594652357414482221846081033989356083628369087174928805197169663573799637914994190117951104827964239617564537040032298324325875788126308351919364513240507432257545625038674296914429935802637490744155606958044355856131024155741769139264345815853247117179459495650390597505609246259578727139159833439612211138039074318560282121981921476583053135015517891166109051424620775655559054007335880204237173828777424757438045546091564711882877463270166031899280225886023351807826334075434050498608908136155055145650447039663678480699786058316886139782414208888247457108839233974066248635507701006165630110116708088255325237058633795239950603483029493295786286293189833723862194103374377003512151618811963119561028390303541142101503821975255577299904002367638772651531983368591051428099514628827322312106057482737617630153761918821053496313588164033060695620075100660992845027100046298616364331567087561789498146949118084148869864123033318459054084076314926817271603497471756982931723828612723916074210849882973160392722232895484808054627467859926501528565505506245310328048493697585568871821688002211447821905616689633896542026304386063044803522278987173847573650548719316512529419495582170618981471022014434920943845808636772815353917848191276068591962441857191588459343192632821130412940573217694939334838857520035117696224063611194249786570446972351181505063758095010373337502992208291321163927922476339944594040820708714785406375128430734009181010901615436423979813279636078721117926549753882815022294585910539887818916694409502627034983386491423475920995581419939429927794434765300830706158246620637055002746008082919788415131986145876396140316169307239632664175225456530049265996932596246400171988806896737285991949895265323497905803502630616517386575265725251476961398253263308898597383857734249654477331599997984175022248483133994368863864631387761588457614665827298257665582064294285957963713350364239375534293818438716840435556450445643689067756023999930632072002474493458049936243410541517717945280394545774756800387825447232764181625878690422615372644547040161902806066759937349244377321469518559599303222002904326483513901681318466927057647061841561192970619898710951186880160993897580847245849347165122773629819461789547356880574361540750505289783217684629621621554628889372370147422192538509888260351257407295899813299926801542713468426792477328561998149628567245621200196046256447077503481828292125349427575074102822189187707112723250967699656418141127513534604024987116083534622816313583083519761756414970625138518815613430828822673871544716214033846869866017230200034884637728253178627540798316271186324221272269491402075797455039920029733041992227401047924417273436728021735874963571077342045464714437604615249062180802159671575428971996993941046657234800284205914789228561876434113867485493966036619715269511881866412742708663284734740293622921349384688050042155187773335969730759856356765054935102143598665747098962995618388282431213750225960392983499437954428394638187804934824009949264462511573758246022685783968047772930975604052732419543206173281536795882219331294503915480818311826638960491434015172833352865880472083369442074338218298156602817516050230236142335329996573033414294737499054881393845918689472996588246787815679922138007878184281066620933232614585158096614444296076586865012019182255457929609445665202108556450170122405832718161054124720525973165944377162003271355458507484245455520004639637184888686590020242625415070672892260595692538554958035540069843427313513855873613343674924101302174081725497143842177657773089604866232049365195873831356036921672973907606051731254399379458302649116468530016593710113631414737337040015813270875051780818533558274483150550623880638459701452682277973818201587480680049874874772906286278302822051060734505816300126574371536945775627005806950666567705544020377441644329215289125160767339079704874362042951044037653784454156298909636720241713890816052375344370230106887811950685777196765111778325666458762973059844687431690192013607240387367574707035275985381241522681205342140845903755969182833530501218226588420867278941928658436317413067022148578291683524471648056224020418946825117481622649909311051231354055953266641998400406199028297792278869163519429483173123254573878075529885264144420605327897155586815229273725911855524903607309101949442333305388972922570851910438019086749055972448048202029842249747907937023365198425750784518100934555407597522216894232921383270214954247684730074532479585827445355740757971364167009166532414160886336265445951397675152936859435015764931640335000131164339586457838239426152943809774502995804640048870942954367623403025318979144645199179136448268590360844891322032993788603817817471725583895604917757773772597832751065999644694498611984533491582821236893244086427221226510606664204143374087291713846453261153900153225332941948936307996023366331415367015286749379062845286642362099172532606617698784253176869520629210241513975475709912818263120945973005608615318493383009876947137152899637121225439269856758502164072562514955679828015198090525462150422192347714681174991759550655195006729784146710617720830828196531840056954582355624447383810205556751698917450618165325474961051975267439179212649347619818662970743330128282057544514861644510233096296049473403196688213158184864659269048284464402943343535958766070047802161567765323155298871416023857226299914799401863944746320017735840129772004534019333431492504242915235200740944803972280401924336807605451869258428908075768454654316940492935630557569649224851257005513230799122796713660169882989585842246581642612807061780620869607196405335477924776955667350324607789503300892879777587466384754710485639570821938150326415291165904456129548592577370193468554693411324504666696283596794391132199317204817106227383906563242195648961936170101510175155219227291068561568013999218172617992204347751052907277223022304714863508750400816327822963433487003527420090496399975195051416265135773774347143610610052674041687338701897128576485560934410924018491372339574181588075990382701620583075781726323478715243376674202404253134381169923503729090493630407561190562770686630047012765178486788144392890936233240299071790336525036598640519679075052203803196988705778777881282274067286862283787150605636876690716285423057946338615001311923778328168139973499080632850074398933713901178496898438155659164512095455451178256901068043641475903928333148103748613999553045885580434653547583976803726333433000769690552248443241684844372422258289299248816630657148494819388586783040677753325369976422537668034022501145800016416805856827754090575415028425401435044366449033712720915072918310353278750400939985272019728013760354108956895370018802702325679916325499767989863347018694002919678828837998292155739724447932015470046873023551882989332800651524780180344463755620940610204638763882267642075970068841389610704557636054924260845998952399806792600524176505694569189986168597700701001752510192103115965750009282229389643910779903263697236938004448613614160661948690133295490692057098957203463536913943956072426013276360531283903510745703628830721100052800397892630063633349828177850600378196927783026069523270120913295944842517741311092611240130972294159272561971245618752047754268889853857813213455960129517083148592508236417623462298872294012915818561560522453536271655688517965036714908014727951152601089918077299555826797602677992160440239674058214737338608267041544552052128164223223104151715831750706172695609392847418448394013462798227175342578733061286694084655724446020213130873766640554199891262711406281932318467390976145753561574025193922288433618513934088958646289538373846534819033913089539736625074276831616991362922606769950791116861220409704164430444929741246629395805221780603653226136006749696573515249927134006709900873666808767031723601046181611982576313087992906379645906750806915636193571856760048449411311451159278308677760280132503013182668879861937547558950748386003932558480616752633482904068023326427212053881431836542259689615586092939941568431904753617070390689650560118672932148762031656128685349643961472837107093580116534802336335391985582073499788405775723870876680689479926270130374631708012580529629990724538440642850842440959503827060959167387453268497915420567798371931716737983330272996526674289738888645136174617451457752676027278684127629824770876705072543114503382546790544317635939340778540326844936775979091672747329648018138029184767239687788153585089919422636732623762546308150407396770464466596537118308027459724177238139120657870513734267584041469721427229526615093079663077668780831065654049866920587826128165512696119115747182344548526487811035556040824374853411213825390563498943904423791840387119279182534911047621192261710875360341149950353010892029435877822513340745834786478545653428026235306147642202444399742171347586217040618984202546096341999463691824582714761005853294148266962105027399534101790463827958112412060554584104521000442897344691193364678477960422741989494077024945583119403536702891200420813956077360533420883146049882951546315313908117492396677970357745885632110176001856227564568336076870778716586646117466742767041719043202675721172546494766768927265003005922676314222398112788946898262302601742656202164050984627742029097790527008507586500277533325788354679776628873446755428675479603193315559759743742752543134229534616892011289532976310446365644794295827002581422054954614454452196304608245990928257446346156502811146133500480182115323726846413878928745043880994512371702841944122945300039689217199991902337332446744503535484597178720349769370866354734792199023744689100732990225987453900692375267372391510371188010585150113902736738701446717761786606181880619235978462343035599100872300071012078117239584539072877153589034047853416294609378456962934573934737652565762990324936266212690079490551518566067504048465674209987199138521869764419887330381033683437609431046552746262759525484264030691800906859754430264809204150131102311117146688034333312188790551363120555150235439702745069250582784775383187181578326262390824216024449034212713968393148534168386584297594972469561539794462638919058874530665933717383396413655020244705754429464397639420029735675481502289080611083601963344360657097589778877599688883842039952702712131928093466440009827664768407995245279306264422904610853204043048932299348548844101082031201479702751684534749518668968701786481537622045636352410497876376449079449131495090166514040775912446944507254882203552448402921621427755787596664555944848483303275370680466955721780158258045105069090074620786912862947767135791084462325291255201866022605349611618149506973517293523953159378492448837675368134216888379882955084782348068930072728322189756374824457115900212728746516019315942838437557156156505373811069366888795623251872805819599586878937986381086630105185042666653947638505986448014767514816652989548433486248435905588244745671617501170812563178058134291386702913178705330907872254351516034316906741130038626997106300085720486366287092576764452972563254125548752339963702804841881623454160188196892856488164266464668177067393493156266809243350279170811173454855811563849982070005556337095081706761999527316488089677429828368294381827318426571807353733398260836377212616419728601862605228558508431950855836884981414629970382025165930336508931830116966098428704406254580921277655510400122340887851580151253180640067890154882360652075275579682837133472122067514678426605240877873087648792898824849964423886827681377517076997362989783181503445055110439212002257929114487475540628998603016574015131992029715727622549122159038898457150379244403991969819678978876845477450441489019158405448278934656332271979959373570438722794292025847393214396536245538496391407397564805250100429195977202927099597354787352683381464485159626426458457911371887678263773375307280996425233517385216388241265411795642238225393779203817740938825580342026230528542533821970433111710328414286649379886364990831089922431418641499201801957829844774589239263072563210575811651227251923732175270549271705339037474476677798544266892313559267410705720511095351513318704109787100204475765541740875690073360874075306786620060323373577435548218605499127005497973472243762723603732376082759993709905775884194927038750529095558996563038868114024297169597571705328753098219715613838832809269236150848256608001424460490875428557564347736871322178687113148053295699872325256998829997066427044054406301136588664060429958638747904964732068301827333801457471848485424755356646927346651390664990341662267653635895448386053045070303543989358646029819526325914760767428214084763180565763571240044465090947367497591392299786274886848382654676182364650400754425843676161285103960587250414523365578045732881014624012222015714183580676086139515066497094109169183431446514354070799375882324753287378946232460962151840969499907475317743138037587703284432195922911185590334076088006986241050718914738901969672932860242715776465339320038911528570877812641038398688058691764449423296588882170655820213471508161323646532225826473321081469187906301892668943195895554009794007122444907491614415316202399657821985244810344511787453022809885264221073919869218552978372988542709719444311437729788435720985332741622900293280404328535986450220645905845993675131865154360544793853154245357317123078453023647236655467670050590952755903719879717341811532218873455862481932521558524380942517621739742852512264278628280264644812045170962377473890244539845802600355952644442289304914838132750299832492382820413100396357148642858948929910716703307785998988583621105099281604303758613207380402062551794925088751732935692366827898245117419820451447125133381750794375234035480335715097968791523866134647432811251352133836648605384325796022481912535881129496454029767539967445011416746227409342381715940620406950157767710965653012052875445014210594196982048471027153074246777898874440614420135760852885936219329125425026417958982768248815499012107158392034324077043633773406057641540391854324980592154350687201090832084735896147460422918309936404703268045631913098875254390090113657685953598203630517247730774934538133633361592413719245880171036380988619152963140789676572118322612647394416040069169022257593206205099303417999603516810694817734988874536565816341574890386815071754772464435306289137281316529947032515807716238430861480271883491353787780060857949878693850347187995825455170831595772112148895778068790248428591893715225386325818349006824965783212200464660208608588896268299253631570084736740226234915035218052853005998287977012506912969738918133288184256943857050758976866448456700808614908186310298362067954306555873430685449350309585866202232359392362540496187312707907233446305344722363544526178495406883923133832948597720862647619103536516596803910189175843272314250042837846351941964157412832102453658571865426524562667880054384755547443101233427583686567994698392760201091007720431199239740380629328155157475707606117631983884552308929890219554858936013953113563231300737631127474007649306579296910613194085083169275179017625071267104332410798488463071076941772688949197292527968138087206919857380785471596376727410591026916368295914705883335920176483441923901663291809478098048759693032530067179470214792337425906570921276301598495332541921052851961102854130459646344734525797828101746976523214415210746362717386666376105825021338584428286343247362357610553346457129687229049726102669827815794019949313503669425844917574720326666688016377962602835031057275354233127907696038723153417790100821960380801159122984586659971854916763568580147326094199211614841574549037306263938011552514439796215683045945548332100208349376321388514578012378189271375195162264308319429709649041605542093688447840244680377595690988977424552187874649432131955667643181788659162007611857690159598500236496853975239008223697922275708644843264355853840173956115702001595193545128326128854265759624289202337876479678664699277151606432694984382213292110649273889291589087299973104499658332818346987604675899847787297321053895745363601813425432330759274103999587184785843281708567899085447343740956262341250059645428415286682704173941316484140303346011876399226159877613619575003552688794710950624505293434348752379672988251638115401528333983538242192126590868013060131926026819700337778907872890712389761788445263722378411215924696249095083559510416451710007271195413697967172487769944289022851158988756581312091485091572453214084748053863232818626426195478396704801548417254862901078819487690675514262402451755931326973041732204798399577173038658221935030675375364881364332109154383571160014921282043931168422402136680273197765997596148753171955083380003688322901774021580083392847548128245418965649954399933546526569279065474266950660470102041860170906827341098213518649322727725107757087836100895441893852035304664049157228570929156610718865639787097007205661999649905088855649181523260148703050043236463405582733330861699350832151304345317479340638274072213606996680724538939055448660844723284783149735833435828295230862962006668875273734262297319501488006762049213847604592813853849122742978942409914645023500917195535230411427788226139436220169295071122923902569543770367831858895535771153650999601913960899746984194199015389823840083004354713282814296958002317163874025912196923443489372549901929511221535726907682266104623446060269409962061085874440285560344017013528711604978968214414597780669259067797508063295853311841689253166005322186557629799743904062060145758582558401159334862673768425960550781478422056318114059762503830675194850305541304584403340220496661218567558109916741472443185892565835913814217835362483348716489987741388735599220768672858799307014265948742562852019335737207950126263587405954947050231543500807643975764428006119178263183449720188341621648162467488482133295328162531554401810443638626981630876708066016394404774666402609427866863095874557399618030175637343139176755264295307995160096597455259808451105145111455556485807748331612082979713855225020926613967055704787546886183491804352249345129725717648881647005583098205335402016476032539249391391307611560713691412744374908799685715151664271105223889706467586823991784611995667893531983909883677912648746765095706423640267635291194329557917886111122944989963616830915113588946055540836927225998165708880140090841787642867852073175956082143887426172572469066714008775294249560847610222507976778013512312303878667749391502725691604895274801263303700746098453263569123586471887611114961553620256740585759441783111832615855138510142519270778369843782650009619523095451835325888612879164497240131260619775760921285159285219414195796613484362451103065981188228142268281845880210688722061718442417122028247186461021305178237726048628010155377216727113023143266704158798497689189855002547853221823527091529755739004595609761170904813965657076914746022505399334420858370207237034101348552097138010855144071312931074633753293216168638362927141662721455088992859365439154299616167827163920006811216566835323098728702631152927981434230075335554159940155973192230745865513019049435492208069569278518558474031307296537374104634368094948838265799092220029494965849733390774633133390365936012026059683181566878268287303906006401285767631812961641964695221749793900012117755960033473436567997934783769870828660125325112349563825239306323235531962765740340998935532313621405411014171750601023603500130347339125100081960820376376688739492828360407684138547763628320887160792406619438791192302305437736212129099160573353630917320319030935248479410882914706100310118668002252201644179089821559445510433654723711038565409225738657975800990060489747586329362850365744248281182631869786358852644636875785157297585714037522711356924611782035925558046993121649561010489888771589597694103486424681389972181096683261899652191442466668362191110238251002042747075094654473021503784840852230808161446716603191227101208996574550143334989413785723178479015440371501090867304898221691021522510537796637519718203882858134391510835196126938714106253377390319428262561833538797064648766865063313307185139827005682280919450692358112441034539304913545929564574335818304952677114389305659161744576607608520848230462775487762931843281076268469580156136700678571450345193356130502513113595975963897807787960311664046681455744081590362866007321093934240959487264239081720518449034754982757798769796172051103533637328541032264729500479966324765675080792339184907505657384626825800614720977770002980608330225074458019947290757462867057464764874769534147252778163314439613772738037537148737087050257244036762217686293565495077728870640809868347382799449457349325082818186676037090797539815572445544579410521384623341054249356718687628159952926528407088346105422911153725486778244818219625692031165418758481139054348022431393239238535131945871663750806951459336878004888727347635605056046025670664367966928571509046942055116316602611174660308545884715865490485218959189618634577449096144048848552694042121151505241327426763553450553283941833054073216970823169059668314554479581958049034587122564053963948900682747984968390326647604515812633384043135970536194311887681594206853749689605596221951145657857131420122556240424732258742257913877416746694126268326072803547645723015249459902764756093040958767266602569546268093318483942759720990755170464093349091665579303335502756909270677505396482163524670422644168975477824454483279977127001723666523041290975394104363601481657816601227052453562947370330455538591331603486507240321045380064808068417380985191769533668648347888778433403327496599675495360822682000398041768730140324853661911229765363743605797972150449927131636595453647104656716319214860749773887541100094329025245949205651028765210096004028895066817981723269445381949508791514526505601343941584061460608253274816672814575384361039248134430848068640977690987706310271269049420514871805987136859449260166738865902554968992912134282625942055823297174340177630975999063652472302521840755397035575634353548404745044211455069521844919713528281020905307834990355314041248138861098067228520062707701671830328504094368380646484136191448507722024246828221723335069936188611892452698499519029811714096879680338047722353012316581781274501055123091150984862588570433247789741772076064013152670046658974540557990491320408688469121299920281846670229793777402757150794745829395753889657825867767327652706175582846451597798847922914247742408280133315457903441994530742577048994910063377282357742131314169908588793827738664066691453586809196682708360879296145293668644787319861576680373954080126612169323100159975696152339133124218658890211563284404343594070650837023461091766316762248704595511128076186411800555900776342399473363678346073462138182241850246391393466109540965237703118065940001773098662697737754093839894430812896985785481395258786423999027419048250092181884154650977444975567059008086500949945812308564777609304506464776924144064389636822720024035302342177837290366255493029821690698552384800089240586787049597958283758485015515435056000462857391572994777731388846338371874675610413353451257823468914352774082046593123577166370690821423810313782340784185615028555839773248488026761238381923998956387934566019283875531950803733102347591758300801662633786175059146127780848345553059810452056620066067146552232119563184496742799743154965522730940267850698287251245557187144964679891859554003830896960536083643609312277575863618291112880776962436009495256595324586057591709457515526611171477037817401666963240289870334598950288654730403168717654976804672497123574608750156179277583835184338263399499031534311792298316193743382291038964891949807077080898049810501844619433839202950970290052835739104323227986684938114539268398191029905466708862939679566278335135920176901483120015336327164644255836005466087467400710172504297006204714335745880306841272788717818112069376000858392242230107278621394129296611347860981261982709804860146854697839247063434641138026946093690447888994624131441799667217814711978507198501123574025864218578900920500576699680649523063733728927504325010782858510714379931811765838164225160419882830658686750595526832976534304584276149880916749135190382077662906443662069461610395068949064232544842478563436277885462743968410322543500139871576607242474626480537266492007668128065283068352442004420965666357659125900219122349106721641426874912220777047698285933209558927006583618755498607105444034881439115712265512107801622093632808016113386816512834377592505378702595780538561393514801209267263408415309236156983519268207622952392955907698653863186377032522648766135112370701898882918254556003293517017290297261681829977886878992782140131392649357458962302372234202413690201809962635354602680365911844660690208550813963018350086528873277603948291084751260321790819283652549179419724337886217535827030373678602070821069465035437250413158559280977048912759503486654298051236585843302194104370277889973737557422580343191452627278225662054263801873623142415538565773100966543384158690107676023241901921711166153149133213828193142784022929177064156694372619592273969308058717461310921216461407356342539116391582564010282112564990191859133714435356429354160313408024661632648468656505347910765139431270759990503717806498658945528935313339579040213250221835578543068614387350200627543532401202048781654531508571859215362636520629772855494086540646591674586801179552264032490436212208174460720354834629232755107216857812126933556901006096101966200530116770710444191166672672520946063889737424536005269511977297142084526080844421449620914932890477316017195741550853956752210523255749043486927342482736701475332724715160501042102716846164140059691479115669865558956182769068905716363900248633371368937914591741328835803401670807321549839251488931128169265668736759528857727939186781744469185330766949821858916551652232860573008938289874512196470871378221467398997524471639099756995434158725594577372417389541525492729873403699705322858592717089196497973906460051181392145498058765829287858464291641668638994421137528650944412983312421059843948080586075000140974100513009808091359555903646382307799371216537556775391915622450170496823113245872455017129314082647263245563560761713640711302899354506754127645205054325539434735577384430348889839307747915693368023337633191017485837937032825165058171050885072191185975464319001797598162180904240348000600299703909353222220635561020982445513378202078024902835676599925950293965734637594269005614463474346269221809892617563417431329164988076674402029777507784428993702819736499240859963109932597814200583211581396025180485673918700966680498464467688025008224591789693076525517065758407107518628441336134690696432823343729063716194523287643418774595003844490391267845696310135435322664446092781018318401999493251976832475731480394659141340442018489366778901825070938305582031209224034391267656004249852601466247884939041090492781981824888710681118026131580283150824269117323540712870817886475889572155329536687466907375277358324172302236747893410591598399036228757024627390653838917121956507410496220022638600795323986016187959428444234453835242652531772050979258312531811124943090003924059106872540739762189217928324179875202772325639596673251599074749011912447197092109716692876621288489078830891520624607717085133134762393097126703769176362420971490690182029281722227522004243394031151200614872520508218958931644720625718781275599976834990140177101190882365211377205502774430194122830734651774456928127350488449536632364359673966503087239362535553494326836029873856178540567476917986908091966307901792031773783597197660367672749449896970294500731816061498384301614314665980156760717664683838384177764025113267750647336494980337167535929873922097303002319991872438392598483058035964112828747984816249613958313856366216956935707529249682308231790988015006298002451050321608195724717474776851837406431816923781508112212180575331339829764778922845864869498350497130318454504689743386915017566642923955701491256350393406290980755461967602906367932994204433202325080808514593343070423581474498588966651859028917337298500295756832695899545873727454551693519537690329122800207399392510059529271243690382143555960018138265119243531265307231594378004657560256938787892445928569057618962069380937037681716707968024441419768603341575618016108538619970195328018275170562950086543358916338351616444428412367153880707860139389336430681134668387579354989005096862591500254952681176291195410038674530717464579538303330578826853191045418973620483696895831889983565232048255615843811481661914562705862071936874707149050843462713679311037605327644635992535470693573304154040414467869840829433603702342915147767221375720031172679936759466767173710683926357149915214016381669336546008215417686425389537786454883307901006895188221159640367229357798863034238430082550434103215264500367291920312462214195234313668779149257987911322052740679401581916439434357375632324810715391205064648016841777136688480617691623945783487666075838750209308522386490950627747115724395340624041435802682053512769973048607264775974160045646032435756675754184457337710056454231547705273742960276370485897144238827004785425968035489518570536432161967568641958876648376756738857393585650836974275249328132218874995729037793389535801455536416961977850140737341716887504079694578392002006357024347132534014163947943508934456295423067541580772028048719644455683998907447820343903000593905184056812826931332917478179069267162026505719107282614232342438212421054680705708215172896666247253933555069178272469934767521559528908779206921867666872391646370644547803475046059964940121202730707040177917055178723540787000087700028394771478677215958694490713992816937980175747614977332955333266160948116676791021983897299426748457269487015703648975543715984472892715557770268299199646272597113023093169946699934909560809794655229523077803637975259435209801208873356641085982323873112014726706572833371087108683878924413492814288290410993321267551060300195262742796884891628422135239161149757457798997859448564512952553537333731768876743659633814372508459885697412189794601771089817964781205772118490686610203272384163045982471981689628542182481898713159651084640168663617070727567335790665134354118461592595564697977863385714559651545470770286169636681792318792323679904343303448110428774531195544808446031076216221889949803663508650494635776372110918255727269376506296630430430414574290884005634125458229483904967452807988899924855124427205596680747348014537481108979186290692178155060037741757136977494709729364563273332449288211628954499490597721850335295876737581420114093850976083059724832011697952818549750049351162196793061631218124322168144948853446945669095022214928806928352784353844131703803906757287219752229565133249065870551788211471708068515267039461223367447153856690705656102069884199279189146551016804470529757934382174417329849556262553305779731056210881726281799784567010407965928337674395322273455454353304619400038517704396698087202863011407632955668580278836826900320870060949585813830136297103234435682868648489888463421726757420113698008336640550550557669515594628983837973380179903958219014400069862414714079120278874871694702623823394892425432060007071777718780158355162955183551891023883653930922056157633986458546742338428858253000402838558015526345819087370562047340917787439387854799355424268226572210472008514065901002414592811277217619584913670027141519756227053549031036207534447550703424210662416973309009932631972260296901523574713786365684797861980599561358342480890302833531148556657741223960311651855562408643116249613535868909579683125936790160652871026520486271339048543624646544889772256141378507875150307153143229062950054692394199769007395610030048775303993409719264273928861111524030622941965737519302862598309744225206905022208456820368606282475907742289189589826795860153714208660883982610118516384427324396942513226290979113676383909370339039366855282119925515824970397847423632225565569572036694106703261530855328916638963249562399974183212043286279671198112562270371576865609989028663582607638745510005413986891204978306232967179815964229679774160196019720120582658160187149513257940336105160199294666506116353871025114305740888852635779891205488041658864165362887389569213335223868778718683499979565585343356851462782939676983520442734421277564995985265297356618429918110322301996022196020168275696124473829167071770097289819827367776352578674999804638076966131200388467163620490140901157114451149264675014792915431020678133138684177930016090987828500647787685552112904683508084940248875313988613612003445557555883949423421876478891054893332719043078349895124436043653474879204341842328554772132039918732863853758330252770129536363653234116461342758369567254986606695966474574578257639230941587378062747006815621875101784906288342383667192630989691321847069271987843802345476158996039045185295412026122261958616356544801647070027512285325714777039995703208561388431202219980603008459777801622499910920625076916514109203481452305745612299255445602684829955472793403972052002955464321835912130263392372010158302262498297859560681608099660183009037728703112360391700272592751828279650607567499848825060921006172906741003772512968477477515862999150559301104134480309380940235015841898635073508340361551765512083108402317434280302940472993275839073389406063236714066166358260958875819194964961770861653084535771157573742252069781705311096626719010131693522309744882616066537231288414093626294651562637916198948931112609787739110057796509024964796826444658805353959849318916253313929549995230789573076948380109202419970745055364059890362482336187363572578870312048080009122005847871169698727911837062055208702053222651524480542230085095376206053778231321872788524239225997800432238198049699276448550553303778306658072900649790101848594998922684067915205086734815482056574456442915896688148770290676488971269513897064237779752247478976392607170851660315336154397168419669206504390480992054329522514457408654956322272706603621434796413766504921048536864860654232967153297458884854022696083841360527646587977606466777682961801686572854062399135432655336907400272214789754578317807987291031893029359161992099583611201805870941503314811606937591935849803471902345848266949584174480376299896557578197586296409542347793748713484618978193969972623232690040854205367123131615443881487096956099643664255353627009742276644763657831893247080187653596812679293138642844061916279397625540180577053299162375549249317860331456218258572792894756792293120163222400828056153672352642492434187545474584250850958667684671813802242629531561354178174949693940248544834488238270514260669080863988095165126291616625806430851817277462821737194944536725101076764473281669312775665168750401617406216120978671825656862901089007694874015098261596797408453387842118051202877247870286004870480110175864732878851288855267770040117271773310379283511138922629606937308334119371662481643461086556877194122576268394352615755932486117420471244533468881464974558670571054771832673254313190136630147159970451216489533438322556096977392873755732847991254669807153322398075478068407182004838376515864606022040866112246296711246427260071378599734212134152699554636525760283351858095947308830313450038997933559269818599821273922472062826579342736086409802816132504113127399316413218052891594168126813087989115896963837663394560829305492277629446271697845979353254846248360376419395353145133155729737527651196674056857537669967529109068661350815264007187452980849694690647343074472399548482533434079997901225783730042474589845867610849635411619815421189409484317409819870824151553710167124014163613140471600371465472960193254792607518701193046142919387836512559686044191239423474636055353654916569825282899663737163291943350904673792859638735161963756712817623125429088032688842053231364607159171487461499174304518256311622501128186370751795806713299340252361213752750598574824317764486464689408769957779803793448038929023527793342855318804631065301672475869183404433635825585367845874623560812533636133925651138851694390352687441750307708477484513844453194658659563046477809199891733523879270700518531405674333781689643927270218896097310541845673258966984023411784345619806158810653498718570523318705284260151728947317704287481363679312012326709615263133402105156627037856371176925247992599128979167073439787748462706720690042615551061409288758071389978949752457636444011801595789007106339916569629250231334449415032163432364266098845751859331364229967611845305738588834494180023825177425460830026213603849501280679171578738670396957110523106611857280035011992580386464935804665844025270738281423576246187770967544762098782329161413624982334244681484547614788882092478624843521487169303744710429718881116128765489221227312568102041973126651522041387361599298779692981641858128141773647216716706627321027697908665497489418915919047018975796586829231217589351979687045912692961824761656246123108971120922827596336393056075711354892746944818142115129291636413249685405105292239747219279356967046783714744419992098714775059389590860776888972777711119354580636644994193199393952492117912045243279699210032221110490409612200691331058946286446348800590799709510283416187772864488527646042767015294078172120621760904644172912722557897715128579305208573356462133723617058296851020778566551028914071789706284967402106363114488751422119782303669329333192329926168023609616080447458719906873381439798282525314811467876108523919187384067473908715203735345019079361673076374008823760667532059152702207170368295160476932265554346120937053107791035811000733697520570706970668679077529952745086420403419694995529203101931490989209155962363472276921911592282529621966839969154768179450622309981579178775244791880250421811458171686407145845335586566279493960935613716541125614173474173009848943375379145723369821114232317834016369896795972053506716102301910608262201001542898643871046375026582499720114095041800739083597409676732124237096641641907185657305897015920023379402226098023503057608787998046071575489810281990819017931917463391113890873774084687728079166016119765084271812264966758528004688905291055086480097489189654106127793030511033038325488470413196654782554793287961333056092704400718112645935726948298640322739812255012839527191567706408707325845309579797165038762473263416261246583079337809500028116775678376527638126554897520831813004114498259008524709760670261703771420170860518596838494808830525555862327105533543114350263057219682363066531053563508797461861823781540016468482911280088007281212148496765170851095626210161706839181577697675590769323297356876132473453894679010857143893557202799502384008675428140060863176268332514866518036567738521912021095241086345938031793716372169732276398607484305301705863873608245606858909449534388597402627814781123705802896758654937550158682479820037240670447723604769911534262857036938113676243062415891185388275713760982450417081079652508242344886193834446919709355603368929843944548522995617067938102986530234383553961447405865912803580736647889143962209774049123053668739827207857752830751380654602844619390988349353040321413325504052630351325845663813214832664573133152958758314271244563950147732960496088470181508799295302710362828062171361083884191847970238149803295082159292052174356033191501666490998487659187441209528645673203203391576437555340531577309449014449708036605161526080054160424447620304452958195188248101735587849401568828771869343261399949295076382748417465258124718477660919349983722066661184203729081603948781982009728045577608375423899615090608274009358654005967484143731278666764376177264119216455999263770958466455644952839303199536250702542167651374706874995361050026058586027160619979592150362593010844604755807959040562170924017148939935194173145602672980795006020981597313857305581244191561212672502586194290934968977949974373645781805402856352691339446858863611807506399437476857695303937232127201847397559772014932085391018801323777276625899988537721656450813741279651478529873037478989914855825178051941198376952264989689418868675404170417157054733249793776032746684853484252968274619325197996597108798188064082065193651432588377959162538960811594154648667582073688535117627887613276128066233705698049185393342132278401171629390263087602461514682785235020390183567590463847795356215019020402592774156850815617051694094315568078982058386651466217387457528637169876717459416651210710062891592003171030959064911750048534546113424184323238102792874517139824191932431566315917519986076184414753924706106660626433056182024737597230848765056824824635381598011853430399854151766190523243187954297471224561687748518878674758730316364952517647432240355016944730980552580566168937576096541702620342555530215849373261814454466835081588035995787394723044909692573488561091181897874992220803246462748233403080670488688833689076117874194487044024624301202282001164921580329120537143167123735079845366675334228292404734955512338712951028728151954211645985656846829241200100241389657206468220666889201715966272858844978764280269117617729365395683577607224219984278134468599781103667246047201380424884853137664617247146926486596147615122641383465293775585738382462529207034346609824951034918087833988719532378045215697100139868642363179827804053237010709026241947578029639246583309558232568385970065343412700788500660838709276918008261061267205682447552036171799558963996208910309080549517140970432524910276621002723038695451503469462479559131723208187279691235204836080574567554930029540802819750719336016740346425960423536717909158724690062927684790787550087211044980268512342510266846992882700728026689009214177616386790635614970203024290321112710131841884075366678472002068749194877395123278141122221659931020914769576551385297958009779201442699564883267689118213406005276965628206698679043538734596593340489900880462214414427422721143255233354339929793952724502025119219429984959939207945688841063597203931419722338845628421458699152383520427636649040575448984281993286533676211615305617110043932023657107114301282297797755564586899690638294338882956901383500329246675494451149876908779809594891480558298672789595809219371632983939019871946810013039683903245458355746036829736833107306667712902689494694397796700756784989802965076278899738373135417185376755007136843318016100505533499745300925172755817277381143201588996697053273053966714314646737795884616527565695600602571232897836073216815261515107321570541307595734080061294290742872844325862847644241792931445472554842273625337586632583300689814285078072762319207558664873575686980873988721860459604158543688411962709854547366374726579106393592697642646527715780331415095366725497461249776278699270256471888983711285719277402523324620009920898602923023345450685674207608298106934115055563534649261051470963829365771921187553082137872741867720266016234225199485407613799690767119429714938909984794085490474697396758053514066376519179793688818890800495677606693849721777193704165990509174401499253014278584057989327317254612637701332962108597693147606936817351882392503867945638419597824921919911815725922935885159110444684514472423718735040140518149079886012353082505105729745070475471934949369968910261699049465951916622055623935419951600877806360270889333455531321648235150124678158086342313758899334886509445136185677764663947403522288684326771820987898001386695675015100832391521082626467890411836023802014562452351624623601291655259432342393532167388667963832805269556620573378288734656693661560753332211729824577906818705509334017773643608400595791454765489964677368124719319443764916821547363579988261089352223056113017041879450588253349462596129013517971600665988221652703170227829447285572404194490992898791230814251000357122515247422000037126746379280898781276605056285707631339068885989971037115837983640961805275565035798815514283261537706742026546641249949529067892402290186850737464535497502980118421265684399094605894007840463763404695384387930505428763183164819050651942236345614303836251534191782782991634541137381958797077685892043006487560973837169403770814336526853957910059850618881591374165385801341224126265891074521614857067234588135456305185032423131714712264560790929520139145901368198198257686270974105778677581282137374442533151259094013978764305875800618923827957983519457978013118296095580866970413553008971527398254319408725410606780310731710939430277192037543556719740037111051204729170467184904331185385113293573793981829756773636801138335274052944789902657698528598228071532977730968367995254735260667843507265861267521323003974324309733978968516060608870465804996892836595575508496337333602854685815851044969754707458370741210827219044040550555706030122439407353265101551622980057387251437347149575218821766333102376749278601769669249656506291375725152108984681684339498399038296648440916371152785359009245015770347769308432371706970130179256596471691519531730700326005609151853955663894143411123856860088172433563661067620974319094242236077970529257406652497359528817650109379669847393384451255697180120297620416722941653643309744291203093053773673941219304566594033951526342941655494225151892803886660583031405877568912359377132343886384096769512054593899992668415197956727710660057040556884339245086938231376429501483863647458040949815636869536190242216943852506674541217357063503278969211533723165117647569817499616522639673036108067484642026071355910904242678896502403838146885100333775944634679160197909818647931237499025193911263206202224558100317217344562175044726592813290380148529143121616356900077142928005628773543799232591651075415918664927391147802073201037441102724668128977669222555106549083104274113518414556164265379136580697227767438626607620909463085572266286151756734681698729439502093009390487985695319877763234155412045959366926166054780051199468327974826541006534006795779188666389777154833807550772557521806291775896884880631319335102193873478075474153230714970615697136694941297608360324698058669327089626211644818972333562866026395113900218452388829897410917784071475745396874392972240457021546274887602523289163034928670382922691468284542660633179893455853973057341694989964006233460451043274247691224569895968526320537278434673336054510105249395500207934728806335674499928432260963710795125038437302148988120058080455322404536460854954898345766569646218826510100113694486192804293866657900029670042087279646416359647596031648612480411595907531924218365048229936308199015876452720681233749023809732195294212345067333108915402525868557362680041835722498739975613868241881948907728277153947204580486347251581293789315514370112091570433986072798587592335725714639814886621867009338018575066716977506578526123046549852181255333999136034552179904686918956887240716181956314470780276907236015911506238572523631902238988261600626680424413626601202877379445995059901886596544120841685629793878652581485752252376959798976491734674638946515330593950739331561575643887055081183697253530877185803954566397327479624977668465531676405520369141397227575463299283069933106270955695328518751604827500807509993640172126256095319783023692342221889714910487768126219447325545285720303630866381409847091504524686550909826998048456894942087746603878533909059328417917161309385279472309109606461083256878203615482269669852752619998503565096522172029185188458351577252391732474478098285912387575195129659990540719979827882412819689742497496800732963918239620170979680925002952654569554021927693691605847423051386856316898307695775856894052563449672808842896331554494017161213942237647576641429557076863081641748774382591044143459959315470554257796484913591766750241439554147662391556957398088080240910541205936732498365070248878329125567410309569629888346700673711811308774524482344500430781614059831086268765487130119511536859559837568491800827623114035395968505564083259126997560175870800325207707213306358328676906357894846687832585300622457567564383513372100605707451726995470124880027752931284374759322987602244803330088189621360656000018294621323699085454428321428065130533630107289031828396216651946839436431469231971052294700575617550013271075830286728464986441722273673627461671755950079969818658627066255622907518628070718317108128665331375905664248247536044848161238665798039240805856149920044349535556126136706025386540331325588103001751820364217944160868186603558789869041119240208325975702999772338577435532907370348006075247135989179884703167517642029186335524866384975338467504232692405695761083751231628769523196223154613534275343780951204197066576099657674681648477983360736112302957459297804416493192723209978095695378591184849827435461987379942957614833771319584034346540618777713559768612234377086012569067698128744464711823734377698635743182069586050551081931616362335236622268187057928004874769973095444183760898731545519393527741297250981172874307758144133675415561539763962564519815101702744712137783636979270710754244873782235481960164888293722262575537643202912225071733051222713730147261060261408594270914830426383346536348786590583575708453330138100463257694212081100703084748931392147335179047273768752854738499814964421019248272657021126237523681146490015509670046697754062850563531387114475879435984170583726663617248663998355863165516555064073621562876009196131914024222875681825759851759802171804802492925902680749945720611837045459207927532443374786900765950645140669366946536538961280437250741856226185539346821291663896488326919240987029884558869874107684287891478165236561771410190371264160415058033149468784486221619014892112621236790097112385619067840844150888730263764218709055635321264922170075491834529202310762077106325007620362933973638219998161394374488918871417018316425979736236386301355583840713774142684942912185284220977857642632251022955132820990433755527521441886510776858234001551615970271846677112006621766225797348541485370384593845957461612357592989976505987223435657621180372725647109004479604391671637846921713995295779740923209977937875644095766606411633083032205927866315266610218663908472354580748162211418959136388205636668166271586637004525421634152421188183468336653869725234731788640996789685260794882169196698584027364586096708586835022003034613994622160168665726679056280237837932301043099971274782969966330038571274793754983884712105870548716462663230416604590856604445860626059458961455274015421850052781951999460799113781759592151615546665933245126501393016843849760797896639317701824919436710807101074012378788861415688013088189385885886293482693150947110710952686538385188301488211175716055505514514633844620500081805705714842942437806754581485347125031029612296052651776060391524692900980293445504767695637196390354342151423492448786380277757897456496211928224814275938249299198904879653928494167346259527574002871523929139967033882786131405340597876753855449577976168120068321348842886442058047396356556066554635673696801932478550178318035751281869233869126614986960830024409164031273163037352205088085234509778511459487754432244452567978035456265714101362976543030658600017003903810831088607620632664999233529875358652173338555980291486643867935066618817247670850676998117441379710298268235516587580649879531875655910123721817729677559785369972017552840451821783762052268088051926016937583663740133885452522347229119633716662765140356073328715102111585473582146943143415464723413663868839567007982692483088899109699093469829013112250242085586752404709459428085983175900196352997934851570852551095437280140332928041515968784896084548445863689025330042197235450834148861836587514653480373592660860869678834230673174605790172480012427872700901161217763465950583116498773582355275144108856945736132889543628064177525678118487500355042033005819303972142297059784860758391582046118134695712519509124675329777514695657730516919365500329551515074840197902993919233119636920052268729941890120759242905306963585800170649703067951735742214602718552321598952659309063514114893191007093553973098233538819470770709041026030731218538835347282667992867823202324668777707563252160598873959084335844810768047682074457306514525479005141758460953045873017722788884696578746770082347610818604466086708338192052446022057245870249884448378431230727729598569269736690768278750553268460166307828632891441452589264006838337538968964137053173421966911652275108725232174432278842409478046561777627364864051329727537223893293437215127806527059423417970522292655098630876427568539747562032775891233404118301999702514443359100368675533071741114849226115618262075571925329274392884418201979506159396494524038321255506961433819203528692828504785037103011995681291962218470752572021193256287284686200676622975470464281109265956396613852626212003851608621992304654796388678247097089081806229392943024987124922186653617841905017458962939675084637334134979229550269002346557985454544625856286716161642837740928960693465852048054744383706327442633756243735631089982143304685831572747982290903713060804692324824087947613818332106864004773371565993885409409629560945570056166630046397778436859862990736160283656071502646145522745274796146143334090781205945630865040061163585546443239320791977347858185808965663135687477664066167819592583650853227864864077142829688739601835144239356795041969439601917685959865935801087868324353190961159585396904595874344149630782927494528212298231341702812432179381127316234236969261345662644876241800816562427096965204801429890093518122585636665912985313593597862424931143345511990282245233254620075474845835431797990370948296421861062111075840304329202392907472206100069650921755897933825840802376765987304990840463272424705277289168699801616665520841117345960514718855010541122965405352532379537283414118238212427058215485726741774836036205325593194798388994081093961968286521538919353095950551574666194057851946318523986591541737106406449265718386508665675307767182506705442125695608720225704089177242540185037128678702381125464214097165734963523118821213957361242095448875428454427805840881012850680642145721243845823732426051007651310221904316542651757124982699376278071832876028699854762066572162605868242902665445972888948594908553437891368601541178558640404161020721470456104468820789760534670629037126342369933350340739866026224929757801340105399131425256375087824478396941609320851134336868949553921621295344997179458679522193906249394756220152357282294577007303567105871993104664484148975897622088029116675117691232662297085222732402392019887077322662364383396208069116671698672577548800430603313601778269647791286444186817744878416716249229947466381382395951317302052615045889300393026166716057224163788994230095924380942336449347724272842310609340879328714068831715047935853666258140493828201195363441110133719980939896794529570777442732373151218123445511681371010038433173280296391948202959221802530602591815606271115581748250849550148069660920862939208040618168282927650781505624026548304598762970644283821298874877404456228124902251798613116115086292747098654783076346471049190268117570260527032624287528841990664005568360558540579999722593193700115089002819485874395278350582140518241158543283626923087505659543982659766315117131484060906735232471186329193721270676115496366866507414131487406066806162037563762223785747063977990577633818290541065117786939446412528554790048984625569032946809165722568607175053888695727401533842279716799235630156930988302397820237364761641042887673907251684559881900828680867570277991841337765070073218808767029566610909355132809697340851201503145958158537412802165646609687476416338554770795374996823298007533191646539945313683703777636513356496796009318066483576984734603988239867784389080553778065872150724357624921061454662996471726793416070175724461204502754541522140847963553774793693104717220295875392962586730054935393665930161709768288969860205171532027715886405958852489639434908192637943544387608820371252775103696474023465332466400848725754679728653030908017938623673599452375098902132735079532810012839728038347071400185614595999027103462949509756730239146297475327814850699119974673732397620512811551005726657047839749617317933513058114288419386331465813391487451492895389969665770833267655205326621266842833847631710261356772114610882165325031847766861711894670598454839272961088751883745290704587548984049663222519402844950602335154766040680810790739724231085735805516354590153549886095846799129241916703305652609491026958155031376300674664339167965302787962730416374799067253861419881946481165401158107303158930378374679684092123461557836254510802445050587348634315764968019690835574341446561480231520606818836846820959492796763168087233265384840480471463189592985816923539142559047830639424635546604861115320967290787213341027185265198296932427987560149068781728582997077531012676157268433876896703487076357717500542605877975493692214110558925835936094268066408500528017702483915545053893068713325349385473898916974750354613176081897428691425064964311471501526080152283820712281570421742249396342583547471937779193167620637781324944371026869094347275369832910727167589985809556432207278219011350016465400563234436056507142221224833375612477741152346821045110879452659783385351323270218131369880843409578789614941917279187722396221175598417437173093504841933743663391083310718002054041999048881385339829782277629651176965869156453411945905551426774538349085325054923674976984816327325439717754086374087990536033459523381426204904038526635635322578012619950900385133227606599417654649495997101012660559330165625175459180013978156521791587652598240326874909259675891329800342399805001927608253970343200757255574766689170203653947666004107239659500333088909134561727315112935792033988564418265481487049575327934642216085855883629612119532394921904518314241444099147834861723374581924764861918403011183560582788899884864622500080684706587716491314919985923579496265204848541733238428099689311391473172065476631400468244827563469898787148973038120388500961954544046741168045645825632146679385083157719189035113749579119576305367458171887277895901516251691785782558565421760040114132251024859035067861576923643333944198052421737157057318981559289198725299448221855128458342239936245087289776299183428425017147709199373916619573984461936507933971056621308124664282514645113671941553916169460146154458249261980544093432682782986724243751200546375613441423249291357747977286311805049481475950419077784229632963055520530752303631135486248568172217589417175573523023808824432200402073084503662387343502001825413046378565036414290261262885978953250392485964146242420956963283505574783059178464459806349920983107308928506060095308286925614970872730175389250290651635578163199331908789952026224083424584203555825032873112977976649439466460037504397928005745031043609567869359198212898348304588617583856714974377421709567638175117203959137893276154800043615326172166954013569564594916051434291959956021415182889841450102738836708513636166243672693458471103011794097898145532252478342649677929899401949597573213274949846994712714892927456429095228383398510985818255147962811590142887166864192125402196914259375993796858225950508944706098104318598379098433756565937958275990074704588270823356817999524078935944837700361820354099953771842973257533029842939637430052095322786705718713226991063337678085605590153264276893224853818485026861070303417508320961000456116864924972978069061617866200940899741212894114717257184672712679943191106862131557423939630432033633481948148607968764842233640775407019949426769335751210510221663453067045354812128663427900220430642327588092859350085558559485662808786783842201496260357644525203407495807789732134715395520683664767261957693506772150186382563855996794833446909552523572304664099062205277615988103136085576321318836473734311280515664824297583899641896195928438122667306875967744262801514102149977210578287428065838242889244354434307762272478040081146848628559665186962574304510258624966001907087695694612531843493174805320191065030690004324303875032340762184156166845034215133776076927341848561334206179927510500482272378985899094671415364870281981817266146273271062041747092637538979679047645900358400858581326454432736596769377519878348956347998699465103117447658402892786207100100209643996447966637699042236639761150883434195572566122976133878158038877851749678975416059414602962201987306507087659702172146230896954161478183357344608011709668662030734601585340296203401832938985513740057321440662809906809184829058563172601344587014837956720639895162498058195995528941672769315673308123203126788746061407071688232537618661557514120414665122523719974478526786232699863522409346224118798547586665203933405303239161205390928787071960508926436001663708930361776381507315638400413611084665852680996753667262775009561603514171901390653554432339030942118190644546565310002624407828644475021468862961812464923657513271776171023832752576895180539407787158440551603139467607680034173514567462253808656427630968716053603243103414548950283542160377071939111713821178349930953350014641590160085634026252335879346798832672741122847511939730100607768196889819883644155313329342345431041194415066928046756022083117992881608554053343092999631871372374755471041919556774660422485355572264645063684550127282409534963505043776792828180880915987025021496725483774524647737010512071117542698708726116499354562109877181174371446277438534736632103226351728551793555527949567692318085918118576703592831397342618343669058487762846536633885856036869768942172669799645166273572012809181812028405849796515907443324459979338047901291145823197131956584663840418069074015024776009815332517339012104921563853427985868828505962546350791594277863478652193194205905233589289533671137457135350466301456750174004583964109634556730593857951275120385828109653671360422280064954049754982997920118798022241074850498146262335641929735015031038191187465699487102781110215347880413447535000122464161820406485198834640712191947648724280512610959087826760992807256787204280373635581307358693515530082039914658207545030040213888769868305955631383796785627602357032696502089755246801432920952659258957512117603740110483928637248096401556718809278912205402444424100396416884119459610530333942485676411389966939233874197392631337604573371095096484987754930617662699288163887343919136133696369701679658583398274284889208171356267421243254341349900182976467524500431264503457145074270824518373387684881558793011310850275391071839773524875882292416907700270595099684607862265784584317748332568099873040419620531332396361839840529830668147925548518186077129304069316185088087738772540452433160882917319515455603153069539597076600761853725106417910434310627849253950991395906575078888371939603266112785070895420704820608852839657585404970478784680115400557199635823416510622592567153686829325306110545214951092399340877957313955684037472007583813202539419594922727338280004516174643117145448634551383796770742721132773908923252781009194349777108284262444674127662180819748596954151455598912894076876403814069990645427182953377149455661347851006966183383443482280807220988864461390765385034860215802182955376705614528677552296378133554929574691367448202025836891644862694564251728742692154505578706818515009102645423110909830152813994436626839789490396392542235991591162182312154756762145687862036359576043774334166010051461429406587875548000917361535951107574756463912313970793194406459806585683503647078036032897485927787343819126638396855979466021298861592920427217371923159347964589797470195573041119054030868906710369595564603302761556325207631234936312245648047377417199973645982033579934875080984933259651723605897129996206555093237240322307042816178740016396127103549339753673121585818677575388473200439444963195982517063621523813562186088451886581985993957907666406729358380202590403510975319891682292118884417212252659403086077241895489516791535887526694180305838175408527598520516428898246364546368333743491638174844350692363391470099360875378597010505327122934918105087656683754970275530618588439796634322544215112033128334719808989308927988249884712270126758924506937319758084341261024238615359911359801691573157453647524289069192924061663139855180132277215506722977762399171660014458689934055649786899679520025324193670029790642549121762006284431052849692315032392910868571681056060043123144038869400009832589140884032477831647161979557643728867038707778519054570075590646759229444802017198840448448526844771552077202888879760866017931927703131931725505518573522376161605431587693627418712250638231553811486869183865770193436764245344368817979076122130157689606843100134759958892441530341543431374428661034735184738099349815970819722561599176084211350204216592380720980345594803587900855236235045332933119496009596487072651812115175187844408390034527731505549681101535013245140748483205566306683845590598136240796117388069359896278015762474370433658628155967563233873472553415604455299386193990447278791294760168266411478801077111275880351589072737804947144341697317421024078624934478162606166533962568791584134786602203212919151565842439107157244750499367979263673926371769077850255324348831540482304960744002386535464534002805056640151791681363464114707665042328928551531072452953984416812899830514353732392947406358169456401364195661414415028763792885194341767110615448097983084666621372616500912314042128214090288847618316122128076603738839482157626531862362419705681173942929316328959217948757023614827532457124314263446607183838032778574252161438703060079390546640140153055173900911192340322640541473379983782572608462045923921889726501972121411015716511093141504260467591478377392213510766298449202838979827406500269375090689007007006239911686014232601477614626221535535934227785652596629162456585110934552250743270290935363845208444745212637897091888786459646924638745601987695334173421933660361635719285732024531411260153161134420781135938523057338367381483855763087137540577499046318520154780302604390832125899907171040363723171771315901717147335859470788216213466307875641096420304950536203820209378615242360975840916376125921918883116178426795507154028161756705521203766484357849605513311763494480050145352905752030220679379348006750457567654207887857396675400532946205630255089609081930452782411384494741679831142183185766405118792028829410672885247710938176413270058304250091466781431945493308175624919209748883017751602197928712909940445406713424539002783092593457413631290108058423982742758598287818577442860225292343468017132165535949457993130862823429699786414261418177056290565988912743424135389253390297117596319865150415854697699248156450869846614924581501827918398993503972206877029339577764047262393389180098524320889972167316294622388734196172381486024896210630113231866362940034425509418018872956529876144195141936213365888828390126122336743137457040004396342618333631265456878387226752378067442469077192058992003263778268914930340158111390746045468734160026896779745626584516504377532680985630507859833866132910862304703591208597627794051653506214733402321065092041020349567038073805836268349716924838656339922153026281037596269350359813621003034014251075703843031146703969560441699359189057854873150079870079190089728226450662801744541531896943809211375206985873452222962254364875962278212455962669312861557690098266724650985613573764986262167670647245897184940856132901540232895845764784855236715468068610457221020979795158521641178855186990669001767164025975760053125272905163600226568940633988496519190859694386085098714912488650870428300058182181956624989505513198968846861892462148168010574689424068826765195243903083694176124302594937411706428175445717679946426060716166527868362811110794604312653680941278264108855054519776606748585826678447344471209549781306659810625937028423722242543512512984778733145989921629331580794461222792515976681247371485485480025470306004490102705582989463299270290954533253836708910149085037607235698023083763827815048327192678134031046183496492116873614399171741496121961345047846484488637641951023615599650831326141976147530070584589769835117997943492028252115450525059336176381348790463905885246439134014457956370484818479525541164332926380499995510604707938087400336953587080986192730962845776964072693344194283314389870012074615475773183888182348908425451818390339431810471324028050017180190919827812644124759495615759890658244282463584106790343434304761122644154489511824866051701722158864215181300932015690176823523210540396979190408403538787566900036350674673634046521946108799602297584335201540127711286758078407461826017140731847301086795168877609263358581406676286950439601067683614996448324842805798627438948226970630589218598808705166206823944441778902443302005411091855510956346253911294753666339735111135106018675561700934371698921217875877575314724757703156775103562165927344858939817693690087425828277451429233015725358811781000554643763832937687935360838942049715030125771935669888749220114262028619085840874282779616431712961230090837306396972345846254299626103985219042402474389759589687324788825180117254445755658025227663705294603347523176981422448459533910140207773689473394896271019424412462528265542608501823755232400364828504332893225306452331743438322565679923130317710235619504948525412831017422544473769838370540628195543928216347014787804992439962671177025367791344183694964984639944577952088778124164211380903346035081603861818991121962049216923870727567408135356816760968018523981519242614009414725037241831662919269053324945322962906935374568448697313670806836564246186987535235736484014046449075888338323626899935332761800066248992665992731181427520985215234875819544913638569017726753588984926295733561328548556094873293320544328803882208527571448915576693952692327055520763839360214765759713401806789803875924980335673972927151989064060872556216626711012762031289649340001537899158799899958503504791336815506189158043612012122774945270899719437377434013278840503614032371380140206180439736097254197334946248404149052318973596166700222537635980101993668140975127137016467258623605274047005061792976095099732440980021908265132179965326909952319451024657265187987666563743958230470631406623033393912027061754433543208763961619889772552893965375365156701026260406382133258402827250005906249488379512509691089217979933112083865316555192614680364467863067784423458098644705197560006628340253846712431131543303043606564530019813555404988067498157785140016396752685891527990860782208767389989094105038165054555750737371137188999841432062975561127330546118568680495006287349434828643562782454290864213110441395949875821129839973508215259431890785369242294846085290778715026807283450360837341758256476355086696421481507775240007850934227829660543456965046851276933796130442013038946792874788751278907749741492883309526068924141326364985949357907728600685990829314775118090126887020079619627766108760017405151458328229861098223587931862660749030753872263866535213480317308192500228808134784983417970149090391007927055483793452755646841810993366867516866937977369194641002194138718780851531229485211841966417507006075045259571504093184845023048642189496290381020016537719393111768142939485824916388207560561763046113807361229526368250706697754094519516122132795755716366329836059574789901737829496485384034633561303389767215345608942470656988118001043123816389325265750666182137311743785974037073142001125322947343790373640526538239585879255583285519328138847943753251534744474868054311143567081189370214172118527694223653201674176646005861256539815295119317068393301027903429293781265797294569909284886646243609793372801167728099293603141452898961833851090107186179697806867014353042092048458013999248896177261028631960678695475131800538179149347842162236756727388534035468980017892529908295638409082771352666228691923879616867270718445562439478393185553177416148171888089792245575244552059465524604626545950437358583375263265927658203734025580977398355354472092630783822669029659898016699527587363632492169770192918236572428848871511979056506082071121267167668059333267927142248766497123842510074902627166506992695537594845014643602173093286782563314711300812737945774438463295196176887249017261426282594793451264389973736885000831476835699004975356362005735550684454408971258616133917799626017843040628446841694688598235594500813782261154868781370970183496580571454966277504260854508706178877840565805826293035967629659761833868341555003695266281597724380396565533271937837909543971216230973234281623997964935283683733511809218407087677052679984971218041387511471193333401129765703953353872686006463278316186705861735310434032616946009069144675552455130957632001612220727392794444371937019260492304614789692786211778604758558076118637540535711650027775541568564888580239462113256436966659443882807280593814920048090568077210306927845815615661693815538090023063741156321432526121050069244557698311672223190085111139794518074624753419383623534991280089945415335916856703641684414308725528343378178052769106112893979161513079163096659531419239752783878429501148496780745325804077692597131318769819415921628282648778205688413155574408124514752433109052778579821173295524433060956657187764097447130911005182091489306491108228148413638981343372764792548655553324474378182043860868178659252508255377475540257246812991008509489062879711343245643458775929691666962967458904517515903956238557379408969708898444487334895936024221480928622342116412261173342181645945092425255444197498882621889748355088162610161155630386141831872473355462526526155572680571477954444576386347273250603909304703396770434448404266174811739772162377288252356133308309567111261580094947814664861597170222914359060986819574522383829937460657774311256147459818163435681411602091874462126633208923992274475797232250173658077461087567998521404862354984152507990831603276210607626857484640137623074018000193717072998389155714374566766083644421228903881498585175597049517717118953772011184318257691970468319729666487535519989536909693134643664231773874457373230636967332371649078156494945878971179476201315896934129580242522164190310213014445226730236362602522273572970042261235618446757591529310052358747971056584244901473638875732372617008225307945342536655619223917800995576870891168314626644455624354599686764948039281412722828104949356811424487475262170663184771650211770441958236230336263210931256487127437149019161615121963662306801482385993494650003056158183651932377854353875218986818293068423713615320647458838785817099876454861951966907396637963274423102315710609672882737199700964007853135242396939862893672147824128012839583752096882268420811676233525411696253518899608794721036559149783534320883926062200373910945917398198067828824104561430379405581710799674690130410053461914344931085096068751885549151975268545839614413938262962715801596509322466259332695470232302376395591778075332413479726437954315601864303020345825073575320587799081717485805929219788507191885289926952807505941321679405958180931576885642125868439224735130670329713172955417037529843787770013965768011316531678788511391708176287985027349054157447080301624094875731373935390346060407793217558411324969216492790136391597779154683455084824544442865040453614589984764657384488554589452994421611595267589665254309814013728442829409032448125715349873407294278129733020017520105070007197518654617653209003178303754955620100215679942589289440936472017871092050575534409021800123438044472093951101025657169069052780203266139046682593808660878064351535674964338208133515144740234125551366022930812489645719460712512079582690881235736100637748914645374290019005932189633177495874393466620524352510043344384807953527584739431499826217739565186957241570755194526352267171109620635065551271980670866477417543208063169664365835450718345092482369915488858968982683400887426646392231175792737735119362508957849214017918923089268402084926631882972111968957206367016910034396029855779563445963577989165940560689931563118331294075162821776739204033827795288739467603017232372231996832989872504508668822163804547833006833934254136394357890188850725117127326260813265920950693194263529838122358801257518567538197893672541656617664118051808734276235778091005819442914780579066840063304924321562367314731027681107227459676088751500251789067526037116607791436637547118974517666686602499683769175845869951464692495783563017506042473669082837824073983237488966635489134507746894031896064715251669885193464923947425558685428277680648792027967526400215790307942829701671841004260633838799600415464216058424636399275718070634766726795901867047441609348341772638822049586101090841545833536273299433947792968889561358979233292793494970726963986393778289850514089390737852444374234157777822806732022908428706180316851918915064069737281536346371923152489436216004574309399114140365528614828420580830131888656104588242711684761709794652897787910215605341516927920191676890481838877241258859118581004226198150397327781445068811081942878732722166890617303351015347790534728515409787265345664598695806949188895142629908734905066885444403612098037820936692840440488464924081872041912322371299562908847259451339178005736270894325648992159313628461250106431851409437848928718010082137273481474635557904044801444085376254086798398195950931845105046998398719919617782844153480168359622218423328231436456868480694607423832000776457359227841564105471852798515571633197051994360244615840622458304814700643138475505393954776580391989037845947034063350763899353331885530845339606420175451945168963636988764593658371560288060057904234797576382973621871813793934486028431504343522508513232533218860967750809069461850688580330230051704548695954605986482926970005649685779512352380401951728045053029319815928445102733363123704750944756413500599222355563246805055053389185890442292759885750790084706062258777518549224830726877635146398179425704119973945121911668196972276440181968398212395330327829386333496528614636952410799265488145936249933596347250622013488799866427878813314952054595725487548710686171243758821344180980315761955647561649423686519162748090079735180823198984463125702236446574290541886590890625964353121858909197307141556532384825255808609856434599547814919136213295675426180778885045398662138434913837715897670200717757151482952509788922135025775886435891768639753205315511776005518020848326234698559689746050650436786449737245231896562434159329790919077785678885302064415813147764093730185496471627102542844286731816829038407178151261961536068283707583938684877028794695228935264213983817353879077091857444346771907875035497868753211192897919639177713054586656437129082540378975941925560325372966342755905037970779668372879703942262978928673326419918791946553206198244667474269547248591112270748237708142962816171339773200032276082658407914010916769485268475159986929397717180767627093283568787520023976231379030404098963944331325432391600135342912240955300508827774739787092516028447821293739710114614978246875962679104220234462092751577787648824067255450592078574135661149930382878666713927205282496916550100988549342169819732010625804054442076969503249100618832232167780312316336667175129693262242858203888685737551922984480703127295083379523274878597776496694845205415054767206040598163979478742384990042605517423244506975438475364346831745642587606857926832114340006112143291083114723127537895406795392693939261579094988342781210804330611798167193979397294592371625702185700210455093090866220803337984727114602391648834317105233957176381691222898532097037176121753192433501375282088633597901974693080792892086727395679002102445339455200001349884786054273091500616966413806070990665032373101020407596943874529854519370414055821628698013859961480150727784846858909621971968746617522431071484882993107592691897710461125892532208155623440275716699726029763796349213213183765123455405507112000232121030994716966247431236903811538167342440032254133624900454574361497498208055225779631860956751527049739496171114025605844528431804657844805152886772895602643501996819626027926938284416236537166412560334843849642529598273194623140149544815543593989454075580588183745542922350519266641972399120907084973587859342295910394428021568301602007139170243996437998298927611771584077900334843796524413312494618403553567343611115386311470308844829473820269573741783600607930731299204299842381996498022760033538353475735939864828633011172461061385467445327889448000978032907896727307282203338584191486033416774295034107258236491533284981943798351930949304024660043840827519677709918398052305680311105619144328055032835548467566950684918488167693848526770671500995353522143187279589398678479205250601883808147332352181255547735928484081787035383633232712250793289597799456772385827980416949724689988143342788792917293707934650067930756829372299757862609512443424307494432239198253303267346089570535173154057305306548819390684613344822569690210010712490279367410918440180460922845180455783893118617212285380736911112313435755300731958806554656167121373711768460866741458179109261764960901852676768460479538121526414670657870408830309076122918485045185526626236137835360194411111487241653967672510316205204051908658787118816457271028407461950421468551026893594921895666358553227484601044178486442285833894916112689515721933058713891584821066483384177575080466170118156602990276355635405522770319597581529580046943352171068842916258328127644197846973364865663789614377045800355307144585976469781753594835443509056549346105021617885560033995893130341148078336048367770916305955041972152768199898568829851254715638423621989895448459465026165054436256809276225574519612915770398232098805009411541472584079635012326109183559328093678389050391708067616694172993255009009175082966282895503120413811076246214407180451660335055298493065020675943466503723742265227675725009749462875490231563721675515182993491143012704718669353172509700853052430894582158845071666470065040789137123103192253797011769825627176460547783576715783864972883298106265797769849337321252292507880941242058607911130373922175842743261799157444360532068534831755821656517117354547228008136276756065549495885488219047560023669693945785052790168407777141750309539420401194434412982538527667794787565323322040673637861925314582753503677425275784157415931565994758497689696161104390946837623468763257036623862052514163294685490558099165900619734005166908241826279598156642331088242347647123363165156596604455201045871205422859332206142376989320401504793566726574012088902217186489801597619364380610609263263666803336311876805252111886883026586319582133316053831138686199809197595669974236616910138060503642398169519700487192942206752033321433220131645159391451829978506921905871966021192998348249058480173102303112736055331565387700298321209163410244090382135275151994903422120033694379640101632044622008365049366914782687346278490509053951773602143156391032908452249840727003576539768754767806710863482439738535690387020893535530535242636814095548887976880368885938666599718140247680299757334906331549505147903472148682078317913127140748539298854182523575286839536367780894999332994331309893264730190460667108284401564232188445336722613708177316180256723199105635250880933641367629516828186826104856651851554520337351751187183500401480362568731945583370048853689872573653513805924202977959141766396558796712917247350255144923641096289702030495797989597068411783865981192802964678098557617413812830540698291487449602675227123539159757909626420940240517843206914286054803771307527854757620739475492455462526443082304127776342385606433207303802575759905007204976298735290751567530439998048199947374553148245916736818224589386240372550392658550403604991603559275637114147502075881851485899995742532515070533799413456625359625376761506668552876499565639589845429790448010790571558856578705036204348649224919467161074722253438927091632643972315944963582739279123294881484371652372703342160743340898265701207131559341567361011843184544893594501856869033236947949091139972136725953226016938614060050088815089863135853189706757230218429032055847863020441773152033497331619492661545025443250311382225159944518623170568632333645530693909301948584111370421501950466599532075177906614004004031677552928731645976623054439508335460735013871924888433454545534598224211244098998552151884711596970149498410482006783608885066691181543949753128238796179507398265159026025482446847567007215080540900622955766716831462441437424942718940895632208021168354443834862665539182700210673147721641728179951348466623395939924963093846315366702450617850128124097631339096662615709815336998594888644971612011582185909494541056062919891615220895839942522730525529376978947029058373699617879429029650340717060909384565811290663466484827222318391145749467714434287137342341382192887804815261389960896598031062656325387858527608632117668427517380062629768250421527850161787751530432867823958558624741849674393154545262966404743518655735881892782088122227832111453259498659956351256807036142932384599826948454179295996327482939323697005621300214332990572650365828909452124735080369588926170796439922918867039025605065795570718530923535400681441917065947782065986600184321802657100684688350847730917237262805231491714607789754057807856073399222226558694876997971109940641774255103744197469667890626481102078589493438345567930523986793877101319873340259669510373556452969315967588027850947566222559294094747462456548493685857512159852534643798421942376149336155144545282436140371738754911344313590146033141467609168948185675858980478590951329388013749022413041454073649378799705932259221800634387645270591493694077782240939186845508518442445635494784645344251717656711191237465066435815364612727551287484722746245875286159328503549215358689104245633062898963334964229032200404270765543305770468753489893139417739760458966469665116423559980279221437518206022571869519938765371617107990774046390653703889337315127228241490876305451132500882656327647958446274900340906654945354318808730346620297229817559281989670119622414574330948119650876337358399906744431989779322529168452663878462683135665042369725811256240914156077875773657865762177661750889950638408500233010293606761503253575010447215885677895514664763042338910943818686367573594749811264636676983396454427472133966171493320128264163893312436722764680897934730366366116181957634027735074391354118786738182457174781603933191298153126443881700841510121371492782568985277171307020061037061667705796386381551483334288598621996120477712934185716630458938332250026060773567870799302538084228912638899048667711893075191560326842682639795530015429206672674693781804798018430534826869821856816441001222547907321336496067044031889596748896285256352702192494163383516718767364763731032340791980881419069879462698650681473465649062995951544491290803832864387725854313941016822150943063647189766257985100084853000405217406712395029137632317981318514386908853383106157104711216098946981758987330989452990656838777556847181283237785049030167123135527864084709093109184711728988365274285236614284538866697964078329350494348018087563278946492406628577368465443276970838155963073608749748514063577699138541316411807287052023186456825942158687539752514536599577815019660375727825557361856315737243730289871205833558877683753162448809828046477178217594963238132823783960469573308511119403623930895744608957698847614721471197914493828530126427479913376473274452175872075320126635524677918287037099014705816487387079806767918600164741654115996958366824325203358830459486189674290236082013195936355395859117995868897178929798883103762898435670564090257644095121034885688273473715770693810983524162842227065497793327690485768035928396792219130775599350306796199943151539603185766422550452035737715566780766089842800252784779210575818650982724045774375438265894032466850150925757163528550417579670459312495692307089849148744748785756753661685621225298258330958217788487087578078793104902055514979824481746879479720502072703082325708442122453908513468462560008262267739294857612890035160125945368088582139095978664722602866164138022630874763392173920213144110627727978752122360339936356265554258851795475427847335268280513655796010379868316104933845494647005772273731502393384856623444386275146672970246679165103216680331964564458407935007266488154180514969203184569483763443513068144913226534778592543258634060543553040855251653603574960545149996845954905287991189011416084181967595939236252642698624406117291733109861707101798980667866779588074781952631272167312858760711079124389357420774683549177395228240859715486186160095940677359633053434562147274536859220816588274783812701967131038056424211442247234638924330887520183615631574489756238955819752782147268784036273135861017676821092805904384435486004613990221040488823475164033569586171222232521374938074016206468043690749211075907049946344277439319061402389384008649875973443698026277388030397251524418620342865087288324609159472830819865969084313927159799086424204884111660883630850060977022842100142204442918413651775087044930823097926357018584918180951602826608505635372971327619638166538646130468140647618546897099020852629206084463997190365095770250544332737535923058646605831081607013088279503552272026951361507481349022047817437363028998490193312696730425624332095809603946810783836029927093037147138938046509346615751052690232691220114772885475077023921601425261006544642875835760608141019292359616794497107218350899806674671694830720450371864768038361116627748543815318322573032689773145224741162258986839143534836941045041767241940881231382230525342686454933168435742279221173213682454478014862725371448810316857269908785960192051167154015086699271703796616111314764417634963336916046695184670062884645379225813231952819711213563004761626283332983793818355965482766934518862013922323148389358420037321071410099859336587200805593955855476290685742557890817428494601115376091241330277328382163503558034700990304350764031596983783283531991626326709024287185022967578887250467545855253506083551719467385465439441633362103556576609043386472230373793336088200434257649366310590564485211673597103035931549701584712478273735162976265136418907767351143805587145548449276410270273271967268323597844621230074469905397058668467763844544308839454182520107076790966211029228699830440094874490530031658290264531787183856964708938584534736609705363367878607941567576143502973058241182681519366742445472236346680157163621349118660978062337946713559568132203280203701747453220720922411898971644755524963623558708424368701095982672439936149819399579034259317532234687071320665714878419237041562166414169268689957335995854158004492377568880802188372833610405752146990403961291124741009017140885159418308211960040245030047850254973934829123002555271700721318287643624583266547436997394480732508961440336764966275703554035966675285909513311774234253973063942901479950643841877195787189197507938345645727987383051878258198999743342755735841484999582441806690710043559421366847952452738567178684766810051134531358270030565648249177692302689315741347420383702695576268275717661170075144271270953513862872094388077694903537326176797716069357780744481215845625079945574303854288979971704220209580173377451462216606306098244017983867810061520078210989873981871094088358929750679199473631268933563832042862917245444105033638286461639058822920214512482530640530203305662991759610003903346831910644351025689846346330107210456857099396123698657520137216709858039513026176299699584512245715371625602471846695027817216574660290983589318976429379605789698409318946884283484221785099185246687315812122820543761059491551205402376418015299463910448088132324149100876499335094743763171422551950144028328857230958191258180154103489492890768757273691500159030036094987208866192298247945885465695394007103704001517308583998200570672767215848459447500590037988592730168727810752375494692568550426144588790389426188764215007590132240846942061254331019290563536904906655081501304739070229890349844388639407027523103103588780592728406729344509540898591358654943332269192457340109287528833191102430325674505624332560173125919902909143383021684852692792407869900614091277576691439528152631401926421129126523738475298550514544911110586301433722629750234074869303802762485789845376941875472184740866954357954452981944062830727251975385552226741998010615195074335309306892976941060695997052381619709664470039027850416056373755775349013077781595782866302489704922297316566647772927038271738556247674198671345663923396371157894139858530419511045475116804640169394119158466540117946393865368824662282405273362337616710258900889247747603967267098637883876637999797180445199615173497682501948090749961592081242432762886713237413719604339280394629212092628268042979151134587253710788353010347333356821822795787692875601826034628185652233791858965045041229203657735051439389760490292641814814849047037762870198154005281156015659870251896931592138135449758777863488378982786877868925898936782415982277169252517960389737388222224088715988724128751327484961855112430565255455253976109177634966992814623577938592094910983701774953785087967245049344830830669510291178143564600483848029262806461333137502910666593882480253807238488090500364645076658662741929357150608021703401519113393975400511360689393860830351859467219224801778066721240690086815383300539669706180832513566225366077940859271476059800116093450980117322892673464359185672924214733257554005477613061102689719089257228442338447246217475129631444902887879174391333018838896517312748249102229662616045384228366788888033622723998260561931584862024493756259150193407956005478510825700118316237796297807497079599996895254562030196073427465362640490774518954522468166495839168886955112751125189877640962172914365884144248505445552474679280504684014491980321772244622019548796151893069194662672149280328317769574426527648808770311778566739689691128986752839714931212775919033343231383024019548256519382960344919788245106896224373574421657665994055068623148057700850537417201447025010818370017271842224767321856880760945060487993092471732481768679283130881550679177688212364572092926602491246818697705658016101539636665531434178987051183083705880389697663633379422128224029430137383974987057406286132124914833362727826519334094784693100943877263984544878397576064552452012703567908296399015806163264212240139244790805582049397840592473977855749280162746587618627302971198735447684958860724326173421498002864550439034837663651648666687375886503597321605085082288842373706942344993629642644123093056997290874674762984142921356437739903054053168002916388079667566309488127407371925189502575186738780570045518470515930420762251553274288640179372929373957556012719085972969990520966474283492949589372815473852079798686911055670699268345533660562411366637785384412888896841234941869012029602604056504456054370067593667620734117707246999873840099602817083767340806527906118505328325799082538138995404348440622174676488365787120817145882177260355441162800494083568506665805515942263379074615587382129468254160353405918954709063458351318141567121307556266391800752360911970917150588898157907191664371600551650712011407097225794608361960609875728889359584117682212792892955166051882431098711843123862522487543432846970090241433395198279005872074930200049634535380669511716633669715767822287330522307117787837553798169359047709567705309531940888251900818453228451370814742551614761174713093000918865422718777994517514945789793668240301423836811807609678042081517387476803330349015914975970168670484870202017658447372052504016714159271454207700199858065163919494509361437202220981715206856913203847762455508789869059567653552922729305030349629426375246518325562793928830875714056452927172841842617113336575389309739876281913843426105414164778497714940568626677857344088571951810218025784860369676537056652108781024428008555646636181689815468022064389592394662419416015183984744011057441686888618249555733360418113067343436143331409356173223865689241472838342813181752411585815165793531706662413776427958428141015120295883968492275627176835708939522663841163701684594388833973443983065601673144429260659654088381148209123124953721435569959375733256093592123546686242168242245469550128909230394760518571216062939213501352829327958974983370205931074504549543506749048648861321483518852337662181455546594462566644394600839453662554490004538836072929634363710608316171221484791367916142378206862950543840923326602604977017104914619169416724769276812929379374112963573664435181480341035440179376360366118809978359364365758704470738611839365821755766831645916848386701653809385710168697478206348268021417444569697552787401315016745137302533313549602616747665010061853178919383117255418291787674284141786746794577451993056394007863316120488957504536320612660067381594644834355558325063819398168745944123597481573397916589928295730361986181547483176565090667868088442727997711913395622878416569254144085327142174447187070841038337670558468712700023882275416724527981581119151912833764639148448773496742889922637752732557502299863994709307216478665052745097954829527581280209789698553635892355469310378483176462767665162306665834119264456834370656902871132598991388188273715148449369767404299532187157313052937282618258983986230609202938387948742052373069912027350649150728323117300097494899147530259881568878173717362985483067510763974324829535016887807011573876342425271199919468588704922563517120315943003150480525674093810629370303302163222072658284753688571358529837378066312221132825587914214209574732538124819502421828146210437597113461723384595543863495546057847956229429640260544539105397389734607969802730318900820278671980052740126675696650242012457959654149430983182079471445806752911157103405179119763424389696534693421041173928433031780985025610155342132176417911513534264729011162645765114387168994911012029998666365453133342725753541683274315414494503445403289129825438900509933682299412772163222843570229276986933874934990766598674840413388481130618016075629051966286043493866988747021224718908091732806033391202266238551133936291158073932592893772997841474564785984808258772632718589844576486919213772735619528604781733758035773021617168107498042138972303623745692661373701529230356243638367043586225107892242343483398944946392934444887841388896504598228682686577735364875825747490606630341571660906875925134004894749049292405887947944845478870331379626141227426006510798288839256912122137990884698525046542347407988973430656289207037465519472526198852519166322338571077456585725992159345144588537324059515278171295372272464122945821658837005883456460731869870634208941330475618873560043407531343289087150352173150222965239780808060336095751814493238528505511097994609664208473186881136681734895974178563291814805325655052233780054410114291953895547906690782878295175854255487977422360861996596002171581226629841993094827424878292582900878326046529696711551625812978476555633058195538666120726757926003966839007887622743964778704645030280916827417046870825013463836971706360320315257630667787732151722514862124084661794745953986301291705979759941846263500512862151263248994143572726768976136965406417985960651578890100813421004743383043708171453641414136310303476229892691079039271728410962845615512801746577717570324014166686844054953740786386869517754273827735624758821310176621426578792765245045923174791106388528567976689036850443928461606934593483514207724104581704096155025886446099384448930596632251615281505604174082464177753400911981159966444400698211340411439986450792650991800263523933879770318868652200161763698844223685807001014159347947605649518839816530864007335583962042305955385078804689666540252101830277840725437103506770557138513449548503076107579582142218339193717376243163249079880336273061020410313803512939754917329222087199868528629989597811693730310553000005227715230660066043553223140492349585474140671699992931480648084383504315153664711425320790323080438588101418905034572979087173677139087150123554405338576309617518360762031053398333904861838924694562971410814069437293140913592854861231502673430647031137354697842597102734285569349393448425151701761707691831006901931052308908256245155326707554921525224850933119147876492066652092189216864258956697567992438543120298124315077521219926139787326901103329843152774771766466236410681670456047038193297029093745255042908514122288494844345327453144727948705679178428173708167792046461682441051027419739407754364120201537167950213877802854044940164069355269391828426652339601419880142509365526468636022399576662867674429769613128086328330223894096927303490931556067521345562691408094178103990309571833188251444248853493594147879207200963666406773794657870657951442640449986965612416418243785199516884751002671575064109601136549629061775366516227408076139606821122510775247181963420266149378606663644741861083674781560774630061975756972302480108204037452724168332663283609830821272128088877473219680513235616382735142078771704106624389096640024424853251718738331436203892178626536656368529336864439299959518629854073377762015205476298014165897565589882450531317569374586448882873954561773014324955141582885199162424644429147182904866065341345046190227452496864789666945703221067733849676841094323204626709217501071095454205367163519119139077539368831108226363820781796999726040451544351060272658422905718108801114833306590421310257403949009646015840688364819250117909395422061714394266625655246656409489877882225433855550023522305848382077850547988344929056754871700484045056004222189535154091983293477025934669126958355697350461574401837822574535606286544423524873481457701833480012819723857406904445130485914860710883138867069323105170276295905708468166595489059513841051489170900212302627192542807111374508816266083258994649504283927069402564569706391664301856876346537131691459090257149935445651755476268134505654969429359063639842303580085048563062920817387821643455980503525257727153061584593289067292130543198883211353749672535762097448179448050892875716142954314703456782545360573384931637191340366235593057307883538185350050134982953356235044825545523846466089554992689762098691570907093387744434099818817992992845700152233265465137329420411197153939640604493522287323533804105928807578355325658371792326372954067291897322131072502678472371127217282155046039134820884375740386378136143958302440197008540146007788566295860388726133917916606996347835884127222268090297861573126858267270662062758367781999040711949323382923009870501922330238645064300927760310829794210620053510398883552147538338196574481044920424986710184234637848507376402836324539004138720454350830411084523955868561015662813800865430119621652650277315032753266900207742584294381414499368377468089624516960205737399839523313259670463797364482905907203862336940389692225403458334825849089394669493424059691338408967746816493811817267867867586808588816134833297707007806996273841625365355688874150120368745082431094380966390758234143545187443343587315679878221658628311747661854876245646229399506249195102547912574527313278578005591388823054232859394812071828607129802513648473697304536682607800386358707394619549511065289789137985037693338105596286986548423367646570048496845064289575154046604261077167842256660431985996162461120765840250257371581343209317170963121367663292232191362510186772427796981172361306121036489481062739423630853756550070910855417826190072661542959085260363656281755343635088764815090536857980955095736362649691017588523759046741283224526907573181224510349240256439678399944956883209226921897257389114356823710439047144468953988521703665920263937306902005031053605381574479650574331878730344846221545465203983762496347823955903085689590604064190817892205901256737807975309936184413790341292030415601779970797263181021970450701603772616126820687172060586540742614283572931219189028016450737049032943458715951169385256756293870843404050658877852778341036097901259058212893841736924317564257019342384990160382057528093999910631182369419058706175910986643852830467698335078899747159741471878171689865754814421722944229300484428999853540939743789489608004427694229538369053503037290506686955221722429533160329858962953143598031828363411879067150085360378482589108253157013769724661102177411959545301483914346724228643792995595227727841489189308918768765556057526124496487409076494399602836108696253491663140876435913699526889528687678707948465843051478925901855993077115476890847180733832758985246058034111622015773247963597809581324417155686667928774073278985091412530751926733462347316146083335358161104402789649588683435294000878456535808703264580879753010204981266529334108815074237017889226088175898083009585502597306381545542302319518484358267222917210715937636404651174319896494138727013730481169935781202964507538293171980048989580299822574777919395854033748427901598137432929920297053980873053989300984073938305256698065452864365898257819816966743247849491695888285879791839212103337560715842571044122373521225068663217538359711735560928642647141890864607254427342721907348215307769861758437074777889945304205053135360839920821752685363462068720471626674438497575496515369648030131751084743746483637478641332821519950119841086486176597106768728212284438806721653107279012477605026337674175643927108979218005662900811927859577759162580798897800818064715896548755267688187124763238739001499700387165592601684000104990135831619936776160350814883652487895947208892460329302051587746305557970613645050056547695691981558892943657601894006910485193702573892286892875478553847267218139957816165888336891960600333932373818004409942641582849852649441427416769406777677948965347510617803928183718958238822618882167171239968178802375217428167320448673550155638917108839996264473548994480082837877166538158204589337833909853197494054763937291422025325010809062738085396875911671632426153318405833551245884605882373887006000689601595677383184474378233139628032532719313471188940768636399359831193075010229844911968166486537943473146114759201643148702041384853870188622044163037928675267603352945222957192454737165143996906351014399243891804434007255728175002225828585872170961626306707841444403853752803337783137584825972923734994629762503156053424797297436617465394750433691308453837397784894780458405083770343236058580618946706239997956400135036012909510081012375400547253146531587025092680311974144870995622197398271235502676494538829057796800695692293529407145834327779688953838355022308018142948286237950338636327133004666440621379651380511484552120588869715942096406612126092747171007363473352294410608773951596922356716438778578607786535727282938892937131400426933712696457083797131679853827481120042214022319484264908888164173788588792437469918305501948264641785062374696484744201343277961625269784789406592675961057613313033310588138085508142810599098478081076325321968706064377176653679618097833028594355608139821357708917186565175850279883541138783368708670183627383337774691069128441744298846614861901457787273673527583718696881318960098315943533770798010952389192118634413167318102012063402752369124457612751174430287283599462670749336932682541352098752841663825589904937911335063708039924606166799938252473303414464048892541998399648207833499234419079967825889190912963184962312248744455494600739627002282726049076831193359620636554087664565315615772188261982057565514562675644148170227587773175977238753169286080170467591852571525814819449543301222789341677305124489241514219012571970048867811906000492094004911646870178424363577021583719835342994488840209654569568239788890414324972286979744142669930140684934024407563971151869422832488102965975679263752867002675765655900427017755061250405786512161456393898409877026181881601377360131070639718670722486599317906003411137063806035192058101717941129799427060088482461038384513433596203379809858071906749897535042107786786857186353516448083343093498154278915291589101245241020902445065687344063957408677969019946964405929427964587662456984613294635524265722571204252289398021546370189304845488790626406906550383711174393009027324681762384876397668131976895425600829687282987554897402842842367454979675557649393733687094458813332107635238184117202570182303611712820768471466610680984844685506695821248482593431427332783132130588982005545055681580372668909801256270441329268139514881892085056473761380380770001432616475753623916897750694351431502055219518455016228054537532305174499049120864225575671256143453833490937996455165044217246347593697190922492407839350889474348263704787396967887137538439636910149152790304803900543549598821368570518433570847760221404982257606025807927124971793091210274374807797414956246551573420980683694215140098861937368842507524112543995722234130713811088444721761892167905176938521857503836122101114408382003359684698352437302684545764468813433554648702265815953947125687715983115117397540087867665445668158004665886225754712219274409145069415257670507175936244807062296496182874662005099491137152087157299629022949993276711289249596839087354779422339692710265993308716297873682097437083841956500870582349290268555167530840103993865458481852113135775120023697559225126758127549589775381547010123991977584091765619443596167611352073501917132691271620152335194624290981854479394133946687942554932176892033177415973214406045811573405821961504157403692896662953827587262246362667125609144316457360018249694144621912352946507102890096852724295479518177178460709326410023118565151439384719966211910633889455231979286639263410106417299997205743711411753014966238324081642603238419257929188760046668179922221899796188174586731793689044878344307579357184595519137429676863379796755777782982714736474607034018493011464200060312879475757884575324916532937093381395704123358435889951678437966626752390877123365036053970942097659156926607557472509364194053406578586653911065071487910328148605769283241869830247614147331580604863533914589841628932686856671512106547309827173149139972583448353137936156057994427861423468448466868832104530322931783194892930929045356938213903613109779185115200227903235125789048668325349563978377431223464939058285251539418889617519895617399950178015662160995728618474309789018005984981475879727341716585804830101990584015358190497336450348330863346106793962732007855821905608310881927950421596225470469215570053245684399140363329792828542220577974557913713823932587423992965175442121451372703202106414905388956465073124946991927337975072498850424947676723427893249603267421130162023669411924642526023737738680730906168658677332493467711662704138307599713309816228127911010226493559421284273113697935600929970231217557521330894170936676153992530316046105841979284859419759974505190627628286280006575794652665707269451087722005050727449718571723894912819497777334997077406669615205178845790808915824884747487755129604616935777833611486935737332488983128507437047309183620781802722963596424936328467463043825096932692664625931126009014236512314374934282831370829128209484863617234838009610083864252287029296627146833462952486095465113025155455367577479354347041237279702941033560467457371732381112444291792884124294025598369485864059814396473771979964217200525233905361923053524116587541081387334937255262336110348157207001137425150182799599609778496323700485075453414921884931573084950055159271281009181569845667819351908156871445407550943515535494993196472350563088270853375435459390827655654427457041659842178357972435407837034061073424670805057337205247652049370941217586215164132772340117818350211862998995165759748954203346785503765466661711109877860134947674653865450165908007876504362884094378959785044648144217669336171921269536972837307055168987174000017123295399675208267176647203050311615627525989339043083297034058992832532719841895473075083013990877725838558023421248630652022001976586839490650758953208071155377208930260772862115346726470143266981609593356661996895538674529569377039720472466419888782723594100531228982849000572626258495545031072402132036689431184805747730278662533615871690766671323363621300128667030258699686696830144284931416175115300456503078421401905770360725375289723604507334392421020990719343820908432398962270467538181205830037994174349345224561661407611266010492765552123129352699215409235198791582334459944064054463082615314055142440506891488354995168355375563058748249167803291718060318447210006413802061701376503913399615114414044155633097135596208537223406759184109350193967371331698226577205395790403299080472575637540653179448722252878943926092488170841856958263935941531564760875610305465914447202295346101046582343277307636068427528510196985678973478823147986882842694863886705817445627819046515901496232929890545479856937566343859535741579128702196642557689868245823043127812207976102473855411326114400133241242324789893893389684915122341475532056165547789847150516358496646581844732228850704111007901055683193359633549597317888321270634897754367874040620945721366003236911556149552267347550650768228340495629660759989812338674344367569864360591241917233473290745523384264124887263436763560894770127668236441511282096960666556608157623441305969010508831774722664206045436426936346624839679202199863130356898703241415252769617217120652729000133679400475081478245837717674326200129890722243370965858140739523138349355926371927628230848216076173733529130247459991676866345610357229965272581383662030273639106059319868510739546524399560353259276302030084244802740128534618959257760638080960253491533353678198642138832495582768844344378324923258980946270604552420527293107047227680468021860574364082133622321506124224649247319089343755918445217008995853333642926677729995697434202802193946887227131559424220906597378532380226680565611689149816882467311203401885966725049470198830258664922150292036115333788305288478702990229457138933540862569763659748644471714632785821936686317142183119124551939907191998920000335393955369802620764445482628812599125922025746877475819493133216386305195249043146421535132855629025933797897500276012433689660831871955999446588572187871086448260579829395128396957475004289316431725281447662214451261619864084596720629849777186998337895716850723997603808369059052807075534569474399275848443053604490812840637606555471984169733040814347392254441214030020297323064749350788629740871124505202210812409168560871509264910821213690827207780582727036836589416890624726484893365838152134618601111124642544139833145840321061719852019244771515485778207055154672915121110724617071900663934913957143637170607767858154733042877529578388699764995725723158302807291702067810921491294804625181741710194011696856784536126941286805017944760892223902092391836178851979407958716098038966852899949491916567593904749256756373216241778481626906195292065929196794762443656025053784561337809326408926909222899417625777662839335397816061309409991404724550859452614920515131368932613066233518186099273689979666938005186086493468524354498959196956314607885746490373341267121416023771129576330309003852202238442871588993370036274921413481680325732900529777068140384787571162566559295264417097308287394283364887129997644411972683639126413188656964914255966149588189886627607589051720110866817756395908529308689469658969198530939897949819344886961946020562310316230467243142889155750463955999207851413223762135924270065459836016491569337002863535231352789031485931745302088647648677706500979036908151773959712147355015576334968898688228857101151508737203972308913171352051849399232508196374143037145503269957709160183777527573830023668024849219614109997860933167308628091438214823596754610136930402382886819151260917149890270431414150371323843895234153359243499113184313307360603426332693780223544002560409600215694162222674268652074214049995829868501148993319019057808823795607363957032597121810127251011747805084534672638332892597345298681786916618558148073375891025986999250371400194746219560017556803687937960720635861510562407435804524632348076034688424578058431391500214818160369618194331959453844080720451074789969917655540846548869881795395014542602327192125138718556892035974946817548700975831199726130994981357817971410814910400876770286213986685540789227767743368816868473751859172292175988817855933840264042111963364815328463382047311169973743318347412410208309607474981767069988202008626157722042503755356540090200636662715619534317116253436789006454934023128806564166104841841190961066264450638430885326794404760356996588678445049511734625890026457116956908589197653013833826516674790298939823744031594137114357539016162321086801308075975536111566311906792817028471765614676335141835601342022132573895961296134361593202140629874205592934292271538590742551323849622698696328032674701411885875962301234193630792382494832745473948396845019085703200259900625565317008594339533315351635969292293384267061092151386242285370057982584571336101371221893401378161579138591385084009981679787524646773881148467907410153793878431062693981485607676344992539690368058169359257596549114963182465954561696050485625575269179591721007573074477169691554853774156591015862842855314941626064482967764152237543612244997212842102285013622828183237302452400976600618248570883802191695922358900939062175949967248215288543219214398677042958179951842016035664414449718635322993005863664504208783086706494108257212189936782320240744423533105203550015874750426915535018235702671982394538440295176003411360300171060990420761828612677783558497729633260368933157016201930355690384288053670956115136484750709293716031272543249499940971193563698514020083805154679892251680984519781198184263862562133695576006123446763471608544405381953618101387264176883585611945502263395805585223346823178907346361060581080213104844951383234226335031089943875570602214879480919265482499128036550266198006632811954799772912613713156862365497431989544128794072749995120137397403713552792950659106473956281341477132889017766196950843926701489034793246810796479179845083267963951874258973296751219754187602917898654108755481061955527863837185908594100185876621988393555520151758181363354786454983402462528870884293997810736440523834164631096910313174163437620908114798076752341508900388831169376599404681720103210438914726407770850510328513588736063848830333300363830274181004434243494617184829275685032606687630143753122395444401829385811838835488235753651112333007608937831637814856805551542698915150332392352248922280892847725868742386175271892175599737233710446019258474023884991546771692773145431802259782806243714068692054515099814312429975619476561632477501467840858314110075920162623893349241247384435236872331175484211527108595906371385508264021742182316728308179187673457718164740177176162535718488303225148563708107963999708659113860362251886344388938136404293697401182591749870784765856962733838719824362580327188709297113250328257162492854025758611112355736797928431797428154303893238116735453700964559127924657520609130980125170343391804682302131512719764663915474255046335162156069635027230630409955261363925639873081239503117514576710726288551728815498811797599721456956704466524286619430344721534459675567640023039547262664333667985547297132314148139325857305900553164879626013172941093847331740748309446181971589119851567884661627535675835270344363386010477888383874302042882323419922897126646787480944282238092569080348552309254512025959105501247003261219745712187462962256397774637614807677683451302409940817865133485158897630674627235819016715495798684694548914315781849900314931544930261917178705648255150633864537952636419981497607602107851323131136401172834832896384142166223353575202494965567402924596487058139731531983984070397294904007056600360643910416067501207904504012720274918812478798154943341528672146957015666831386594231255073596195483777096898977229094464015007881369322355769425572497361352931552853286901808731494287955739674465459480165487794351584129855476758171472969922082762615707193358675360648686298259943427605572810909898764833262549358935013945351612823999975030343016288839415884138388143615719135889525236919253960770860696525483650743756652816633377904504072364721825481505713693817998493892311149217689958067788071193959905723289697357302900956355867768358974231385373177083894803362001448108216750261501095904335928789096581423354780854631940566510851358461298768241487023255139381856241939929418606317531052512451362707404351823296097367132668124700203217869206730940513347797317344939707522216269907759649474832039827319087181913600204361728938153852390428574615831101133466135094457026651619469022001290577830200779492342500647610389598658537120617255501952267822280191406023714892364257909967312403144661198780642569127838757707500158278115020047341879707528112037242294920539116706097803909765540544069262569591142308524716494033043385390951285202549049179166943895087287115509546729598422297593828926494504910313130007477092104757473929456975508849906004687164397092766544374441945169181646414488408931886343352958678419610692628222759145763193051830186530103278310024664841948582786476031433320510916430687275839882080008882517415538621406653822543398440898604391544858722938281450643795842340016356182408697045126150568344471304623516413109922576511959697740888922899249040187160333390882158127908856927833488652890880066929610536468331708339330533286557657372459303519416458299824736014088125832343318501677763406647162624061004609744617319005949679524164208756719340731266618617862725360110369796245051547955682943008192532659690711131090462597022746707504668260845115179323879560369662215873035339579612291186714197853194227432008887235000857036903846659496411969158353317125448685703336924733900900965356852088171688165142792848956371356215638026492449532930791810581630890066304510786045455775711212371583309239555646016805070122046435105310583122236955946938190372626060978134224001717514496398912486794473503573134253323342391259344640094337735178483071009338880349196847190154380217467808917805155868462213200955501284836472986414476486571954174868987767552077320988128323751660345377613466673593038040485389088164003670330156737540733234801288964951671734164979458219071553302748464115217388745872693602171364228795596378493467699065233242830370340089127843469721721799421598870438610526162159871011179855034785310970045379798933085405840181744772223165496766619423534010654089019623844641533669722403787192523277807610901323644066301919784624720421891869469932826053347519486785952518337604985334400205928774622195213695122484064876946367514980888052725106816523363004114440937000972667984268935102490154161996971775377692168998623368217114055161383044008289964739042166635457012261798140185936214809247242377016989345454967143157045633738379097837329405928127629565786001437769824946187741862858102044007898649788667521998096346416773566669544730440869030803526606437976781733825588093611512478469331807481460284134956335682818868941101370169133682173861343590021702898081958729278733046718875156935945883040796922265490590505434315561674150377281906622808270068760225031457574433383319379213762958450192109066194918412709454562829832683784311256746632044352091494950527609512844403746046031013321530381075383370493812105817455893201799710359516436979726206189963550260391136738393075392158027936864754654796703015139881348703790938460875168235889180893724497824281633327347426203803975162467543326534213541147146935459880205037556337556362531392944221462455128780955029208435237053931722530060564382797092336998926800785416576669215967693327607408738295132595268274307659036904489050836789026773236175200723759816600279458118459830658587870300670640548522820908096803010624078769304226778414920471424325854657845220115000086825584233822377589365750509089053890982798931836437748270324087438754934364317959839464536887907686147900383044707408256650986262684577196067123859562566677312877912615930023190353887232009265607345766744934166925370984281102901327942932418025868174604158226066545691894348043521759027483245790345082253738061174904826466519204596837290989281236224972898694414797038005688535581350249981947977356019694646620057584438419329706142747121792360132894409005673100170687420160900389722701868422842377014972633181389709558832896384875983210427650495715728318040881058408012669469062194510107000028028343880746801468505481121820260969037743324681653157300981452267213276960516544099317164850676889689233837470232546170761089561529425227404318290619896252680368098205628358239248523822421595593720176134951581786454616054616357626193492161057646221596148134211980122047757829349304128408242585846814132515545636372372500293596211973249814857696582257200974356877441417970293369893781804499770721057100452684280691477649283705167243233222053202577567903795358456559339544939410819151726633363467988802870232624117749727967710870567783725964962330682193881693654736809475863373043692595357409582306416445524058397836696952859924954204230948618491970240322758155274471620248004310644739964748486916150359613144708602612252970481176031348258424014199972506962490443341467978010217573909147679893565155645395817886594774897453825776407671970142111255803293292530701027786559290554317501049637149877922900208163466245426158223561696819034685277468420002134419956727154330090455381606432661057089399195322162619065982375746148301641171514433581457492138404384630471948421058947148185794167024327821216229056491818867132334968360648674413408300903433424722339344118846677090089452891883772370103297994075251116706167520484680329032650605170147759448925484394475650441554970439163137046326880287685015303814389286476296605703363323191161201549320778675023266236182520525689273439988210639110082438043028450720067457029699885784689549651070878598665320663267770094652795071851447044817900766264241422330682044724528332273335560646366579121801089555042236563538736582450019394937069328010565810920276446289684740424523850629291961037236392466206276745862700446032531157916272706642553973319734415788400205307101226699622537383134393432196880616935756149752211063770726763037739930608224946326360608040022696757485617521248478617310401752025514790001826500031084705062063995642691896873555757508532026261289740403836182488378280045777881844782412216820283860740901965459750727847868274304863749213561709017115685978773542773285786569348012466912246623262731967762837856743581176552681790704379182060396282476355150909805325041044341375957746349653278383714240558693500806835145839231515447373360350737428550413592175238665282844665642992694082521915559741257663756571387144978771983867036055474741530889113662795811745785846966228823642318432881400931061559914839664895100186150767462689001205273240475908520488617273482780148967629360427675766882387218966820761608676845795721888939444694459681827451033280410271923724015514649437756269221820939673061189881524727176528222058377505188717914247581526007092931441068978623099580171153082842806823532841079120628773436223440766911267886783314456985032916979238904911038147254444774006027244285610255808303641268294372596398113402608431403052049674348622289335859890710304837901563406128730067015668907949345297831900989236038707916974399624039419022087604571121540735406304387607099471672807559984367359205991748402759029003162577100678133370507423276787159259990408666466664036056704230537813234560035208153071090533153874556626326930996256815423632032141342130224296869339846969407382355330088523285438988536735392200294491740061169883120698600499188926436565681275987929188834098002479662973311972343897625096072473483750260162841163584845024323212353487094261652696939241686212085484646520964483529839342027545053067909020122420404977578535540002343167800892560864456174092983607931823325079797387846621831445922594929469902896455924195834152107326702636704255667972566882074245852208172639892412343044341220482548005122567887550919778499465575553833072009475670575203752277750372758223684608422646605479095531744239689779651230578887822999177521629919591664632185734349725330635582696507500798585335418862505835677226145819995818826406694067156966712719816134601663043885690122438895429902739682223173460498392388305917715071292283502629293376914799300962047082382050208845044453482337852743792492003028458573107381005907005751529217193821474604354473188137765770034774935150503055305749126094983626436821787168492061089710467851994033140621487821345766132948505408595184984437589409835413315112095210347613978422446331609083830348175916266746761710487535050620540028147608407957312424622921274932311160098130723300756923182073308247688534548333301208089492478166083722411619398479749829513860984618133065733332807027986256626644617092624465934084396757492454016280353218789197723393851872391717486699237393091383980885638491491550080422295489740673138157471122792430379815818082346718926198334545154376873075450980291932476769552284363687594579774799216061208907999775352996475383677245625449747330545248788803785982152453000742470576167578467500464890648877250818403758761720110661919047470662658520508409166507513164487550459045332194682295382256462067927790597672337902068456769354969816019218796674530949796628934576388343727255884144737652270163480198746023354754931276474333039763650290278530318179948499245318726589403092319973646946564410874531591951926069502950559822643089452308963809753334651772959167976107235481257197395025473781999313092630149875219269455049541742146985366858283905606602235735380068683903111498875193417493360836448635022947048118750727295535788486042345053231843563696821821934836237910311091631120966020292065960735725978680355866298113897307110584856861752234821960367526532329628658565631111342232866217506879449421741855092541413286755832972392832964117047158139756866222095046136013616684753304688106391434652748424840620711472125103704043295183987840406848499332407625618734888432084341786305256758567953409292904185747053720057642810945554997060887940780997529741248018536853799380075216006950258194221757727116704005279212421206997402193466140611577086232528453150723068738141090652731591877132917015930774883436440789572470102245586331940107860974711453539848860711711142377333319835892091323632609409311526247410950256698744521601640250158719296371140113057002736764653466157889723921800787835706771657743094655159577385994952156374084007710545738734207425149579479206516760872987170636047747954595890077462474695097393370059469181982976310505434739328133821305012040269432885911624847048325462382067447269858220531298246853909780508544817350682120046824832632677949484427006379817291629972865227782513980597038886692762298622540922604320081259676649599622947975400076071751679203531634193363942112069398746383680804005579507901132370147657686848140825495401718042714705988511881675881553669871093051787712955599144522132210922365343274603628211027792619905354151975541229480421170390780347098130287194987490260820357451078319761191768133841413356000039126697522189129413882631589544527172954324110936253600634218107624801995580348287281664514329870426539711735568127432126222276345432086505407868707913706149784428715971096301274156130560836941181634164755992213665841554486138819287081670548123599314266135508052322266182505811705148275230150722381456655426179762580097138198022315622169113826739681346319744286042249625096319560428234186582488068196312569787908438295882389050047340371686167087973098546207818395327077577900115234558848626676903251933721358600058378419666255707063182045964291454377742039521547979917666301079533605411838399918667373051543236667799313830949557901029733157936364935277521969561075335596677472840151047129426846685978114214251333372306074184944870177362632513006869801802952650594157157696522202999996782340844645870022742122992949221743868130605527732488948583300627178689512924680563332498674880801595803990744657457472007440194282280633449335872089812130076302488580774851436728073880664148122282287042127563703804353922345080907157613295957137800762464720766864392314750840337740951487761934434883110011089641892336174626109029531392331941106654847228886607912209135388212429043856379197788458017536988449393287287507944058121876085096830860772983650583547958131663997720591475674348812217693088694039431766219131476725425756562390055250690012956005988363505777563599987078695541218653321413137065813010540694240575510870885372333307230892603545257268830461248216114820209327877592164077537715488236081437928483849280347856446532780308135131101680996263260865655030598926976883835099737044463724565673621462697858489256209414666963897459890376494145079881460687635434205541051486643609065819263883421423176876306760609301292500456841251162477016541865145379291498972331824736490555498338929073704023615246661362025813204746410912649119004612681980859703738818810052450134718709897297792627316900096427392634067869090264746491559320730295026667959455763260588346661538709396035156429104372349436526481880628220418257448613322385584616878469077874395241343388095884708986920008944138207114746127578232752548796586213882173434238796522161943408242486188356856265454382195189185467900458266767895440300120558548601110318919430636754111329813158062656357387170401397651436525789845277364172239910318568584400702317145807038789874032917865167784762376785210405299357389209246954234963338525336331794968038713217758254578982431463043616376442664512351400635902027800399892654838887572517199127186053067606600601025186637155823371033527963559789690375809595049120232793100765973281766065302379402784920337814802346015204444839056950026115122413170901381380695849864481381327851636946970549524655149556937998819620453064278758232392639791689707032380284495710453412288628155574140172602773014669073839829949827340930802716405217643215706551355870534426014390267793385899052823172523443333493304692255367360817285107238198298345232640453045414109776225501825929628111536833541050379843597550305870949875577736243037604334827117263744135747809505869179468962075185604166505503568935338972927560046646419725126178864690298726236660258862416288769381354203298928818710894413088346133027251265396095585631556777009136841168883115567313327641121529999989994775647976342257407135962923450745574078820766575179829068260321824301236191308302678507652811484655627873261535452851538003530562833556126427124184066083864059525392772150884609638938700488863579499217048123578909415403183375732010318131476634309930690082620697076679407848434623857362608681434712704366843055490624786414973758541817095508235527549086195916158633035302218540923600642645851774447895676800554507820334362462132962827996826733849421441902872844204299576633965805658547189927374699394644855064912372563103578655128038091115428582607371162371494860733844781408517125662385740447923198202692492767012306196785984019274267021704963812273448498553040126384976994030698840722735813596176193565052106060985940292918018719882983502498518778854125048390291284432268861275586332461436909215280288974623841516889371656881673607958689977534271451814740721827477310015593677392088985587713467955733268451229570563583885151864976988915716286389440746755424095147060668995083088581992644726932091156264243940335673073936429307748040433440726251880911443156050553335074315965872822184139933469103367047629782342166968475550175289617943321605235185462284858497060983816863643165573044101392329605492111422118389761109555946844838369914021801190778677787526735204934274473293955882714936996286101748883155013551406660222238801022022516726197084683240578819769972490810436640915938570127058000563534552856487045869464990595627631507742269755826115831303398638258877245247754162393081217937457920734256180737612259084040354736174884894074295614663874291027783030768449469182453512987782146244906048397761690421154215494944974873551044617783934728321440198723845984494578086301024353696030386757038389418765565126359322297835869623368639212112343800475110242663648875727926041420209200344464840362973881138377354681766813010123643562343346614748586892905790943261816568202048840733093618905683619346401097725145973223296796979824091313084180063494741147967248282098774074543743507934039072402617069820356668288900574100191541272890549408333306683735200105408136693212838191341147915406601950012548165855737022292130140497546369424437050685890398156241160990599989580980890889245475045639468743894478099173582251623411243527329484313670726099938129246350411159297227224451820853319803696371083088882388224122558366973130590620514612456391335813253828431429199064454538026799694027175202548540626104900721346683642861287592231519805895000274993285952915058411220969284007334476462761721406910154985243383343503121036371444356713590637238198953545469675528692998327918242597430300232358371082995820519471345876677427114002387761045995054663796132195702524942031383215507052799768749543786816338740693342168667620500055406604055174842769391986421182533678974520266409550645376031123358907981908118266584300945449826847592942362184402937367401973776354950961649212406985511247171025009041211860522354538214450840948638390457908763071183911742990880134707276194968016315690057390936219246412124481988014586475041260057245882253894822986219432737110956371524966980768246730616897449830122388885043108978137703946923153390559187260153477771593108685812509197014970048953292699328337052137732763893708781371686492863234434094832881531953221761458660299049614684987113613052514992738622475035265813655657982992744432240773694275775979976991099504004947871177133968406807263368535080973923836233027104727845122946278579821101790964031918492158963328633746033754872062144382352956941657903125291978657166740772402371086868002197305882219490858670108106596328183634514996700069391726588438088852530751887107540010706237902424297163314999887563418888571952272844208668233135205411653746958728926045623105266514661840773692522803317524674735365558247085044092454129314190183958408132888183740645245748723991555093384429124446823870913330221254264811987675530392239794562457476046411416663099722991900139654483730297259601267516615795767197299369800507389391619135089802760666273858126708354298867356915995852606106613287287705349649133263861724016153299729049204189331892558256438762681092793362916761896522185933086447206568087921600004559142700698779562188920594960297377124088426542978838061949594062615341639613712519342267229366405899047987929882738180233371299817644950000998203994972553515226711195061527047812698495470788946146064352214944135995075480120789080354384229768742346787538995883056628760063071432233179372459549103905344978122877921321268242404855681449879451638159039702740122713225314853400962312293514948058634790330835124643340213697802490312760986809801034456352223165698084904805520600236398042033238161338693213668780128606059316182109944791057986883752524847245961403347194748899371080236074483751743642813958954099181267474590273222714757395688377514524582032166294437193077470539133006225341709900516058424881600545141394479134101956685598876698934297412812627158713905395565776234203557138066714061494193033092073329838005500914242523476642393545299151034373901600214302694925506623103463558861016325053350051345606722506290726321741198226140005661597986448660701787990935521985516823675191403314097686470702436913675727511251469077960519580876888083933213777400868530367935580872945254086923374762287031573962307245879564396317331390400685118133072877189283322330573322154565157252806235649522786725754571346168185621884014833356781582586772085252909795500609620443934541745386154291850063848037315639622781484594164134534025747262288585689560524081363314167679106415311113148441876609151615726556716105990813914067510201255648948790421942116283035489229504173288331714631351690824376398393666491779017742042981146904955213952234054224431235652548240429260693557918386240036542950640515432928477841186599895565039872505568763093644360683013570749232220343314822004449584060353876013004582627935141112982714960451976014115308102488886575556724085772280428713279762552989675780046763190140899071207700426299584606117361307259964994803132805820011097477218986251026887864449846699057565574048160343432972846472628329311266810158502074559862155961824426915102754937300479264488804102195542688303983011949902889845854326528536466596698429003641400220992366614153720855355361689640198919711814649929528228879285524046910966546221231102339887951222343226268421028053867881082675707033773662466648618054138077646148124307290058975178851167004502416835872035427935882547233553655235643456102549291361937658542051294098526263205043036717322430561872658227181221596196544683979751742152798530443992133779999267762203257996649882242969556525338541735619848155060413651632467546530662561530301414407110835623892154746542019886056808339306052918627853723408956768348886613157472959308511046789411894098505742867653111015982129421911571845079924377903412619930220784363879831672253626820552192192578769364648630801083347143851818813252122376943378845335200934271685211061067233005149438838163253094308144478642208418124484423853806268682950249633163511774297438694882527192784441103090446600262987607517677416833105724406749137768941335409986110110478785327415333126966689490674100467085633370927090373468202719270972370475871120916584454985770285254173638022833805225638444642356127997860170960816606366435910826491516509285749641561069455955136087008615823097602316735205183015019769238539811893183524982319448448558670943294889804169254840769731485415674013535195721905601914276550898360198163017778098020663310569156710212003823444401448285714229488101638530010894276679265576718353450424309438030307252468759651652034570486070264835714876571206684527377072113058993784150772821479295011883511945190330671507408531626332263063181540099072657164576806560990727727872633188301430577263581957276241523451301681537454035090701450073418084195200493911495947648030043416424367872175653373172166386252355076763446186781520695880166799830300998796458198147688272305935556785073028391641209003753264075105857730419780886269370242921246839715362092408801251337287660093401388098623085930537015359282266303935702692447268919286616208611046930648774532545985043527621099247954811702721356378967892888839844965212388023307028234664099741954516178424029580928229824136564416087421910403888540787969111537078809091902540911848486039862215534323031703867911823699172996965151685675512293447690064442396990619651303097198840993166038183958519503704451185613584753306579409790238870417331638877686038441121566790766866264197700067065949521036947107960834652407990693079440648125598995102056452233727508970952474963825173393092885293819908523834561226506598470408310493797029201854972757510050024621712673027602847921525202431396524171903265804632034112305608250621592004247679088239304673858209204162181366945748948925676447291826458767729850544909741841644405833155649196043934407157053329104213308281206575508337129579839256529031638169938988836678483746050158146424610692428231969767588475275630367005333843373191826015180594082507469080391542691769624861773368588220005314809173628321809692037740225679849951972727254929952938030516371615390523627063307328528935769828376994602548590368293606386301079482298532651701138979192263873496663071072212360116790209489696110557251966294809897830924324969941865717927096810558474788335729107864390777422333034777112953278010131296374420265537182060382537332965141238731859061996080901073356916038015686746551680539676234516076227612898014517712863883687004991203467205838358942511140272139812563553277149879779220108251398556439845012371045981852437006211747118777076538404911882533685935909118568013852831194805183586370861829093967959551716666830053069865085940200713368004149004496844359354023975164770393565528827180301830282394378178169255423198085363441444175347257173639467854272636499168167681083762605784252008359342102493384361221273242940688241205160139219885668981545853626128792103920591733401484155562122096641106441675546441712488314494402137056200280214205497112582426984935220670025418791040013154933513107858009403726115918637621330357618980536257312433153942930276464696954962489383237007856616026702154390408291308699296737282360887966399074642603180936980253768591959064858250487485025744219193405267391813676853766346169098317411819330441765302807352575746454795500932970062502983580447101145443360542880556022710336611847747037933658649744544376001524292462767015758037004198623535012381349752756503947191303541624731547325867824277366011693660284236041466269019497693774030814661456125315793017672257706286969994400302861212382065967641482146084162626121560728591289802379564595815853075078932653978061753537067470433408080403837055039558122477841456349103052741103774209702692248625122643314430486102876217498503849709118055806709267231193257531068169640791033348054044257879161806784560600259072801360816548578806143701056282509672910875833402219040015237861782806714714409199892554812114810005616539578532094491676735492248788275560285457129585538923658356193724424122233700554932306319665505457543874887520425559792239919880893122625509842748994070545166479854680454973640560729180933110163893178826930903899334318619805356802396178192013337857548125957359109323157375476315035087438865996169199234710075996662673869065091018016808921358461326356469841620019653325667179632977149755913525445858579205220648538435791339421043846152461450040790832964654408424450003518064050173591730670240921134964248515642506679871302229178595649287001340713464709282726707600822333978414600740361296822240700011874642394269215131822160381615484873383128507613213609580395514191800836352840553942650356751233567670391164289923791570563692779577483907462391529349452157842173276864624934529888902608905453339188928129224444888194639519080500698598576183259684171639308648986383481599997998143265840907106209719039407163306788200490193023230655990544146345135513173872838975033366366773010199485198502073442453120293312235958160361512150117725831994663493498351143819293177791331327628225606072721865441848096765933532568097025998451594535719570782532819677076404238480552623135268729474610749544195609980441830365287588224371393886374439067360467065854453563427521490563522553306401859794488430730957446149435101076310246022042281387640085676705751992913548256255845797694633839983795404769947805091806921929632927181950104989252582208216141418697029248050205392399913918016908844551095299972382106330620606625431977090003264444721874570203760060242093770486503238985513152137095893141491792666878918959717812487092719624272944464108713815933208194473549809038291959847878920965947973163475424494455362415120296574159012643819798314943408245792555659582961440371406925210855427306418767969014606323487097737873240466753910827025748948307698492417693114902998900540554889255420120341670222120566233097642123125872315637517954137784963188592707978301608298739304175721202297815154662133071382099495281767495691843712942000128618294275425240211030432069677957559574312791201776186487286655675214575578628406021348463968230931553582720659487384335752255693414203871924563486800257482114224189982020424877751854684442173862088735273843694906395708545808534284174241723341497287865818245526880295476453938285991753558136589739313639664830640852746274348214296536124597201122290587636046287244244248496446652004040246227874558477354676361238516941077758969480760007737655188776143318492697745015512155884813579308776193943870250800763117685374562285677471741169404856707046946540877898744090489612383166892292115208485511179256665848495982080788482478344853199274410463359225112459436474050948749795623591156940673556527671308874294266585384028552612563766506966910781705234533268815169836144906943408181413970771815211520790634368275453300889948997269341190715807912576192310948273085937491058983160824047583902584956176959030385180389138064428840045197320959962762685730038919266078430644535418017171472752892985765310696126971473867411724483184797258898459414100531373882447954590483928901711242494674392663937754164730176745160535896631092240225967294805485453986698312557788370439278994476845907424714343152343194537563004957428710638788331154448737697635777193400973228165912905131597662529255858938587396997746016624394662299769066790290561724228515172091268518335351215493324640602125392466957808851649522189547412885978778367883062031375848511949746904910958831293412676412377200461095746973139263837923169398435633393102702097691035356101452306207180803810242913570610115997659217516598855271994619658727793182300395535944839367105805655482314432726797266840656801735507512547970986713053407099768679278990753862287421742298194866644610570716874754533914838919922273543231357786534164416847247798367626718852926845933826226886190768095243184064235083070892569051978899136718010606002069469243067355253936577089313043852664641384814766352342573020731264612765300980567140611972006433423655247864347710765556735011279044402905148686987874944039470123380248310397524541787855555892918528548215025512585987235265014388008379068470940394694309560391545349043030961090486909845753924771069839075353863894413811798023516313021243285700266978221246890362841184292830730833217703035159287197716182807740991638543447117119698982677843892742787258906539590465448484112150124600080166158396910241530495204905023475092653098176633115786693338806916321183331908614574225918551183058758942138404891882097740608286040607713382794417206147883234231225173124617199788472664705911617376449892290231228382904468943205036296946094002156093453564477609906982460275814277143453134032432499237909086548838353297147784800668796723812687239329978885235918844879869990540843066022857182060953574926910720874190824914292733423553010614154897122839763579294781255999331313720663121458679134140417686915152953710586295282196375223484620327772967554491847108484056405710206095497530522961750112184881779220020543120511737738677494488155096561573024546471633729549330233568255407239087675957689529170200799074128151192865323628803061343836964507963439557052511754889202080020405282249917034524009546209120818457798603572142638027823409894956261612278327330680413297426637860665793972943600962820523035974797374062394084085551973956866741948075800043013702023161156405746327684266581850777988359646561504460491818408861073391750892857058836580226289392303190495338445023758181552586710728548458057241242138349630273312263478470520849714603566855707594890577637016892855818255487010883912909129637552588192163210774184074206879176805968093188577908102808469308775322002735091513534131258331242731335166465399571714966599497895894992496623859534892642025925836050565294596311724409717318921978768362791184415509873041659909227819629740336698013040686366516724591088491893894165869781307409557263874096894451746329920430962271408343920581408758529894604727560063402082538822594895850536083552357334419672493540699881713334001030679166532719312541471530558075595565948726239823714279333804464605754696065705337563207206877793360161704551687109018678113384476876151028068254195737359823275395234994789930719387017152503162903050370708170515425675688392908454820002133617854145735120159073290001298256989751705286536251188308259546955547753048652752737550127006966708021565587538601353337224883656912581557936476218390792241420557795901677109477073148532813296453169713585506622979232177601407794605294805952002836782212032625361325100572219710017358331272194128378416318954137707843306519532918498313042237592239835300632630609657887887773593634320531416413340993382086046622317466870668669822981338102864545616012168823279095014568533090584099290409028780655475289391337907368863391816435135876578978110901381515855636119708948204192873259864532119821446696096334324348490763788544939815863337959748643838608198666618684177311956999384497550802324275158154986442840909751509311374245405754604263783044410905553275087745622593661816826595170303600087087525610511793450926204054273025433691364955198436705668814820667147639439213037121688784307706938907399645966475641306221790846393504370846795982670612276748917813579929091951883632104385209587155861481289465465409856380157876495553386052189538178613572951450557118933118810506921645374055660767344620561209342341596701333680283309421868546525796551502553475796062757714465586294706817527507949137763024750597564285727432258448438951783588388743172462649010190001042769906407884178081825472842583802868438513721712597758179864840555816096098697672959826534680257594462607921297655826876779342662046522651961875007897641162075421251582976634091810763429145660301369637059441775709800255381228538674469411198203261464339208887254360519298006528632739419061833086659661656205493700400587515914035880995080676563058477864962939725332350537579739459613153658574961369903875527468542892963163785649473429580076377071079865247351585572190940489469060498180013743943476048341525720104946033912821514852634385921355204820341502404485132646423373592689099906529879350807108155406076497031512975797693451137715371698455746322494734492186195307479896751291178729185781160624259446968200729327496328730327597738814556820986888769221968839043982517094158019665059040411417017940842327159738630805590244244843488899385544118085414359226575241486923825315493560123288876265777540952589217977482020964904529150510383669521557625512251531791819121171385585620967063604360162451933215223734017177146354955996926906247729008405968766527485231128389088588809367489384900600604099073950031497441505242973889979776095349786894477679966125111480635663167773829716711895073507099501719954170061120216494563556864524254395591842428011172006129415515803139638007263877173642438439013014320439265056979869045157123351050930864686339635396238371537970099251433180964507794311141494062409891819797079287456981673337153704650821923323053266439485851349464502913357083358660580474036526459145251033307200619711279751452187261420144337579644701857306826914625745928879848745929173581284761903073293794504401922351269846195927109827409784135081816473288605636591215171237471501427417258508226150430211999037378268401295036735262507377611437902788365456170133869097093387355105431724971760905879683749300344388144061655793432517183494859372181619168936321947885552992074363775151782784778901853082866001070605941022997821450470882701812354501332802913488528075927770455432613851076514571590704802937141051531115346663412787522214432541431817787139482291307501621698072173994210144761266513892418804859558288505244096321203978696932655192415363857567407217698641249962530601521981150264631246686809930076252444128396710928234747751269982667186770014063579283589781363885079555986114816762163077974606269287445610423366441611071542108594986170415977912450110983954962319289803044349546259313936177752160956208504127836377118137765120565968584981650745037964363958560516959359282722038253529258963848554297163270566435274186873946810156857129022618757596633978925115902539088285056693259396632702095532977449011578239946741567017547783067590555652086381207438160169250709506379950459373515230586838443068920769605079537123796726718430693246321493086535469108393996643508259317179344748498905814200056137787745993966804677528186025333641670066078693474217524451642063822738144572383678935996135988494621045115010086692575297119272152254076213955458002121864852594033158322475256777828323819442404678993269016976288738583309059937879333543578816697121514617320268976321618500310903516933114782137216136675136331470271475065458269678240055802579379077233006094714804278379948357322986798387254560863792009571490923531444124556954896113181390149177345181289623866160295712802582555390566438690622941416057028626835031073766177053616959496217380022793921763233073648556370928889981129566854627413400782198110777089338576522196846474362791892499501074896929720571591025472673717033269361155675210994227895398712361580283752395131354275151658373307171932767533633588694507104665497552258144784155731615416125843419420433582120633052879404298993550388722785351157045693852229614669459840624369697151340226900380812162676082743736694383672105303147766473935668875577628988992869892226382357237621154878071945300853693371084221751315603419287390096333292116503408699640630507295989446212416860621545891246761551269757060702869815875374806648346136152455878362771495285355075864890510548397120622244106899420139893728184866179910134633941954044141339065367185786536152611650626508647600145657488317455342052692849860139135150291197940340893689346374372620426789446332553672685073336995264022376072123610121160350040087523624463307424561440485621008538807393498908677723921449819933190002855847578484676926432690246329204616542453010795342524071118727571742091426383034986871215823862780590545077960396973448704614522159070278536455197367678207067960688740302583320052335865651764196296597240752167174222640571668236952947985884559302841804483423663532182443375725292293264403023277337856197298787394053297107998783970926889155350897349149176214303460139733619560581303050592168863576030661834390878908394731494753803526415272399416413937746996878572663812648444940966197406333538200908166372567899960028471092197746613829258170390829165732256097925204866407692494466753300596528219655334206596351372402391539776669743988146097414930605506398800453608602000850100876986209847451099804968534096660081107456477790027285420119262097441193736915582306275677546252594989321516000218335288903513001562245863082043838781059175806395528988993276860108643782672810545732067916242253048313971636617082177445041533561787080566381998938457515374972596008841708337224067267412968516125153690834417565158878498132187891306120971496068024066329314482024292131692301838912257947008584002139389879677251824853906744655281057166028014546419654722078055007072496886706864571546929005163527625363122373636689039841505097774708253844176067507252354623384705448611000044766318092333460196197465419685738505416575320213760883283051840115239155957952787646537672909587751552662597599075627962386095834367080618094947601978590277885308180336005316364652394302508652400696194518521861386328981453672006757156737101090256813255396450546692373140075279683352819626714873473548206168950689182239695311381297791471291249569372176990485474931606372403704925759906072048837890234397240201810105005735209869835496039403677137280075168367203555209377943724568294182769750780027721714162339814229128644192983658196364409569588546268138672057174061365619687990077345199614180692165865061057069395260422059352212660449773044162930836138503966520328100897704062614882143539149184651242061645410182735090858853449847006495977117795689705535620951345414260019214865224055861672915060314930206938104752605903898065280359967710408070697449000680294470260967242414081360135613903649373100499943583395994939433409733702863394196483713417033856692868923717573023982927113263459511206530464945096770806175833729060290057346826831085825952257053418918820997274899473821831655874648650434155678902101877106110422274045574171551396766469940648459412062192568469229862326263678692447609447918958159434027217060217248516811756667792329762843069147160718458374520173595655586321101554611995736692631865756249515683197177499143013407486797583119609704618730417666049448124444693203941837136687484572483088461787845227030866175200425298417213567909263189192544691424583885186311143484307623678376992559358008914933998814465264614848090692867478864659910662856274180788695683357549889102676085563331055184813515533396477528964152717363723969342546776206587129948105768669072952478090391308805319442209159282590714466457762180390625628064328178414214702178458755041463543203691759990024563863088022020594936320022645064730848785182158143553420834940919991766391519160260757755492089543899419588407334518604654048680354416542322330974524823080845860074650772038308240680437787018650906474617197523885127832168474037995726207387186819150075863427515659280780585022191760547532168389694185689818848652624490866597042633967053819208401784604366544278198530984905510212439343426793031522698007549464150047548521408588701891324972779271440554928441402554127995130311362581907762023855992729769123018705587282480340868010804538154955178727196436215948572276516086298978767702046742520754392028846451824136658469068284355174065219896897932263851970735114450292826254613711323991016704718694276248340463895736071218684715652274151082711676425219244595794354390214149718567042371610080107934680517881847812256941926531492556644443057475076377177431463243600199564021815335566638900077869996734606121561985022367719493166436390104099031544496664401780061376711882891275935844795642344102161812300598746157621687239133204984475040656380166852636886635019542996592081111826804161549339672828852820818833139244549669663712813033809589974846072543098761404582736826831572137466009563557727000455384833007109982977652714100270264867662978800902238077566249193589526041255987297470686350809384485480711687810475794876853940233592635474543392147340253986932897331054938901662547201205264754525021496697972160828888310650704854406407029425769729346599957715160856720043818053314641953542501034043111446709842486913873727804751067160080315971866319774810712104924192107632113805316470304116581406971299094030647519972770825419689070803211617378226152267290275313275355341353630410007096331632465959822697473142972809857718403483251610389623050988497403345827952346907834876425352896102418305209260785787721472259606247369338222344454928548261771329901956515599187708984750988991828500344053050230791217391111515685506035088664918965830253342773356815671705482617940286368337280895613879460739807040683839292008287741155951071526406542059946829437424496567502070148321156101979521873026919677356275681598484826726800105796632578907776822570030502609108788611452004766087996403935154806897971414581264930427919182579108214363030362905095321669523991762824420470748425528034235056824626084663237016032476710651780294131494782927306697539251175014354982707579017041302887650432633879430108722878163960131148725623410919209930368604855464993964107256840868125752633199051795389049136778620580745536869227330270876632987175880641194419607515098304502604392261153913262209181890160681025505718864815916477296179453209971475314901131553883386037284534650908264972231365888635697014181712745432508014568879109244366541872613674361790712043398425868901933623964457660767823520235427771700593497002490979125965762195884196342748297984305830697372295135734637973151668977766384173983379972936235195688110886089934333571737068467369634542529254709780373890884367337155697593330238487880903073941213803108737750863264504605984131680371894990077922037868098909468343191174137938660796861435734202396950640071148973632180639995227772226104487639391930446046707847050834107689919499377312300389840702210406756232237581544919727780175221466093325375486912774275161625450581289363545323602317554439330350291907608785647064222782937533955335195992274336652379631868466739444282966880015817863242380677154662237111738731751881200469663607876921089855826931624557178664971869075553689228624498596730801426064720472803160295437803340035296763365480895548758004177908649033148166416557603398485423636725117847390462015908987001708462585797612081911016691526594824229698357432117069824528812184854907134984214941626365807895408362858634815134411991905136446871815253376716120621465985951179372658214111821503655584505893800754542413947950053598770346772602593979174980170411350388510690177100520448913657863581266185529449075168707618369167394593896893680351206187000219591299416022172848802481220773376289833691404088842704521239157692701146851933173148481358620114840427766950539196600643858571267926583410857126649105457514105440772622254062477960769428619214007574894399472136926739254258417959008602786192383203805491192136888628485527644031119614395076627134997437869107804274552314216079533655669448597852329417008033946817589778633790812652600299682387743662083196165608353373893271281320425076782653974581122914048993077559729627291728159114959853086009343821364094359684340333886683805558114351425818666511224135856826432297065466624345519407942074465683081051689912846723344865747355431865709663686529478904899899041220675272944509389359035016067969760184152126569617240750571410023311887441232281030073934126208031698068482710711617189878475200229573620900682876819137205255786233268117327719636539528009954730283357638556267575697482252732062431923765329713520551060857424811035265039817838213132614081522852127950802780406836461722369837662699087523061164083513704700264870954454399659317840470676413026326691285697444940524645715444653650926202256012160802150090673166840499429668609693796447180700710363056279644285737819377152120450920112166355324929092145177495611621683171764924029486217174986883140256088350227635328684786275060173058022548548896748010306484313320221087511631252654528398179971179811889092810702924863311516635130910399529625851632912098923924169222083090504441114325125125860506464545548948308214291891475921348398340756629572008105657860228403505544359453537663577598903989306632931391252892121912171186500421963514885782299433532158135816926537871758237053712702760149181387966067044610344754088649073133134520056845031884715895893799582264604230695598725354577165314990646117603024402816036534830855744638319989276844357873622676477133289125852480887360142834340673014552466684030332689848603262464498885173618894699069688562909688819851747972605697396866061377855414616000711066388146565834953231812306915929478684660376206531661717414414447263892229619438841727014273111539726968161464218830137320043876208865480747473468058825835549105963152649774681388238637369141766620531685830280098046077953273108621929059078410532186462905405790607896589746679820530966850997788431953191172872307526082434929144715304061819155533629852249286132769376060158874399246189110608276590661145225567900171894846915440308761375315885128095103994571682368019643631235482331101561436240990715529872287784089958050145972682727035304624641549820490633457545692189288329180011807752084168062835540663502049405126713256547418990718961929781603544346568113621086443318590163346008089907484494231252426707526653371726779206835054868072523436350265641067595299655444265917812887863374520727541321507470602317316208317065680068963837257884271203747147072089582357334742949841605788713083032979841127419857741698466429269934088156826939753750367654748259534101633494025936204962763776223720022777577030051849617845559752129780463558826206080490450044264719712933361042110108128690301756281208858173827266869738250605697414003196552207610413079310337753787984995662095088322023167843827806534411727072352396658360670532504429707882406871135669270419090343625853041630004589731355426936395956090392233401708892064810074826800141942503572831793406672353658548583932726666243660943461244037506790068926869089341898410551512016585273301997692273439468170594844987530704574984211412743579461411549536937023036569119620175904628115809059390461301481785269476670531872971749262514167643997205013395555083016295556308796358443299059173203164588654738866059770671024793919871892112860831133509567889939405258472043215138591434404622544907558187083852351661547712930111485087685933842891359559633258139453709028880372072350219363112843935408978532900958344609675508282041410579763047850119986106774996691289560345055227668857719038264888484623722358807567865517121569688036192993879341687443121155732764065495612029142926381187344207745834290839179656644018318366639149060267553913115983070907607466634215894968436266733349097766202858043021376334963157657919876852159333203110366009353353946215848175888390977316380846979849492004782014047111334276622030526605607216479424216264334720149850998460999875588030687887934692134108942390811390313330736928274775233704120656778216691309638579020901943523125507445746655907453974103376456887279716236905388548519736367480461591291676927284439739798291183439394780871144599569354315461631586001938346177054706940642094565301059715073434144992081683959542284730058186584152032989430981786706639362684927983407549691489449441891376337546443238991913768433133431972607375394456665523630290489495387795850568100670724047843173143672328400399482028282039993598610346378124969355861576974084464769888966743035867237862346692136459392536286263900636481094001889904367812713995421576212247148525551008695137049977480088441415487447162299927756423418423014406999572647111427420394285681211402833104063111360390097735723721688338117798488128100701416148019828650600141887333577363542598991195191098964230066427708624110466898687907076808702685056364552686949321814427932091151181090595812979146790559009538370539798889616875388071912655939953992799585134624160226531255264279846674686898308212455821968428040092582231764414008018705794924657343588294669534112816727810904744041902530259335953650183170152682656407202805544322387106602818550647423940029393846036359408940430790522276008771845766264513800253155931227282773552610443783244033768413852000766677654811276902141950728841831986595022466005379989441676258361232980621214551230544829076431014728867442193800451686134876636498170541262805822806553120662985980410909200635600026718635492022809603304185324639605166155320907458480030784816568956088106100425352358098980343959093117548595415258531788833338048297302743464452326586971754328966133603694897657861258628325052952399238023438663267404235331396112421756661248866993268764406191925068483544407977942498299130642391977430281759999039480932869545474982114877529769729124779773009967574729767708817732384506909405919007565540031263450147708214052589203743825311014409179413953044842815513815769635713864117484331054486548215759545641207450033892460778425359250360430506663124209068763084316877594725768332592713068969579081120328240533436121607870377145038152595085949503255869395890041308911250736179415461210448384777802209543312682990283735173198822713132478500270503473174388705701255470908322707500253282292239591092807651006056704613812387719941054113262434174122866365874831871601326273101565397808784130733535937879886852697251277271259822578920584735788335860138150724829973150998691351405942722926604762486800417865629177228830337037045458179507616465066150641468602357590231930111983577011064740600480164108581739354574802143418306854578541095385879849034461588904081995013070272711529653912355211572959876052953945027218181664319450907145739787862726845979648417055384724594946752789393632708923957623319266372404099821724383160534314577218546206272113018903962188620916768889672547071365068527179327936052489997641198289406243938846794237724493988175441139360830116709602163044900788983505935437427017345025275577598535805121846546226167831961866701451767278194807181060058819186602779289067362784893840240765977891266919992270865311044530375409400399016878001476982370168114067362142710618158164113609168486093571231957596285896985718108389978412816197895205657125936530640986250045879729323237087440649473428016740858935631443107807546642801573560532661758975993432971852252387829542022278865789890309048561257543415602439606162940935197077986504907406932532101187904789855278909715582113664402807897046337548743129947584711751567876414219652248481864676461926745745807969635245683704783814983051309875319050606798385137158020065695058268129215879458945055821261213744706027380827879606466514122435552566507863299130567084508780966568123013319210107537199655741930813109592155756475033204076264446784485679857163019263607256156760557768386167107636667334677288102907271752358483069795135156602300318799638165557201076151754871457764340500206001105931799401011694189967704745386427919065321801739150617089405288298706509395265273008083518066925116394821075240301162498054129669804488031169350998443695356449857459106241719177694551475374159002197505201900485105134134172634935708871129072540316223147719092299422204793497091296453971376590668503546613254765666045759712552743092726472610588824428863385340589752312958326348907919477392848338913653393904660227926768810250223043302649808434737335982730365487131078789211603782722177488626325283368068153271067880422366372334565960709418667352597046313343972800816937489312432117477154016293867571756502841597744137135980449287337926622104789772442888388120623708124047981776722586986806745496709373434546289128785573447295871470220070974571434324226226110890206226766895107642044132564616813837412344317049942062606352515064336809483054125575819580304505386261090431042953262951676099716284468875769745660221607621619873518863615297526301756225091954313564892169106947373000629035665904052092350750791224631186118183544985901773263952339461067064925693843317207528689078561834711798439844014018711976316337223696850149463988234366683809737447859074206366516727099758320531708257713357119329326953793401423686705014488479669542398690595511476018591324612526925026961056256703425768360203362940857647894758933523038814839093589167254212410039743704168103195098789384779941931699524509506430438273403212594507289367969616599733542642801194382040576490876155445572282573697446537811182589352773893544535661580913465368346336352402172417709826447838654597490912931302206092004345884219068149778606407597798100060288064415758686215145072759429853512557650218384593080826714684311472764436217014354094323919042043155883170700408538760105116990788608100133552695336077243421610672748562160406290647086547429783041987698576929285160945460179984380096729915410692464462557797005313363138245649232636554707414165019872121066295345576527092962805365854344870024220370276224121861795817719915827455526920273405086441842435455559029621432108713785166845141555070972021741333531421695707956941438065603770771895573130298579448345992454045799602038682771915029721087364175455921212512097322865594557549360776347770915858530423022366602996582212106704420958025107815839088412583289361280453111187050609860902895810868765921004748840231387356539190486019694019536252369207393264768758050995087630890285474882939177874756565035002220319924855811830690867493592006632247150105194509289969835105528194331634566881383582061136034102484623056800139708373342485448102968313971442957805279684558980206144908767200576068143283435826244524944218956967527832724430893087289056794528833346169968678104450927320444447166281238488360422806263244593948740893729759627106699302872516487427397640680108336868650561022024642415007186530316983754726334166810819700004480312204708037313644434321299952147446561563464769352331254128026196539015509230422407283707769525565214238682498886097718642041960998958298952754835368414144244520989273390083895100563366797363742628656505143289386465357897704795627458379002396716881920284875382093124117864875366070001761971024736727561559904058250580399314105468705630338604861632236022241913173969091113352048790066209396666939885721712570650843307519140151586615669833741748718007313915133286597626713478080429606494843132058172596620555979936760345032831453632193017788299570739527217382910717740760760491114273798694447754178234838491314052777540426843906601950870327832568875159819064436128087545495188468395413786820427680512017790787565804157823135692081731542987185791190536414159452231803785623357362114219772109867058834192313538340202076057181269795314242544185232480374247362266274037726435177088234842872973939781823733750549082564980891747067454632904058749277250787339688380197361724822898256219071288287331064872252924376829908661353250873879153006294968846864414516472330590157664275222302913184268315045284389475663332904985232841903132144129879791135593787441318180209314929877575981112630612164431291016678739794160205974612491207244190295647814779131379780290418537387578237860402358805658246671564178636774606194570062794899526982496702604389315055523726458665101576366263993293391995391290455559452713288088812660989373441405303365533980298260642182247064614437645814781336484797998323236407711185451871622616354961344048683835918627163064614605188590925239903847625541342183268056007899946268417411319552226122075739193836686792409847072943960096532023780850636008537824134572427308409099405643487362817279171015254933650209324150296300700261619421871741968823227618807087791570022597220263987342000124865076363584611338497031519430305042720317974611103999439301211190886708928188897904627756190718346100895400932512592146492414840328749495342772944228747878064504712416671719397835534078344392272846317913829101610726840134264411929180705142449432624778654865475854507890977142175705004124711334979306788865826546831247719978077015874872667269459530978263143959828370756231345923883546556068124510348698932773335767694166977686214944647038227406534144654006048884704618301697472862632833338016737551589112187980588329867249606290034805769701492325416704981750671082604036927930410699575991403350648980669442489363338812753372428774785782913581564077191597591440849524597516893847972073602060273879881990634656636334110224958621059000204614397465087133823641787803894762557994028665514060180598083490983704402656347588236518466896692534039634735793018138579584594512938795206119454966003276701190572818773794912123944104613670948210589842665735056721208305314981691731511075248803991394291442222707429485724807739029256570615151180424542573716949449282983931367874947554053463179542248454726341965401047407278889541663805528632543673868026399203869559047082279986143039294978383654816899402727159451506728937125278224886087704147337614883704009551018006571392046817035476529605797169944203491522991355348611313977053275797500113492936350214869035873466781727350296070899763063428119980623605479723460857616201709917313362600154027128501531025115967695111501759588666124815772184978175906124055079291529681211641711415268139846081075661198794397236413738516090663705677357680149944158154429900179002740802503810594250809666562763764514048403395194093137110583326439105698507239731356952724308252650493500360090612787223388976119554814421352097935382503144550534332329661590297130900281346869420221883944848779642327256899975770821030391603743336866904769997893669692474826759485041599928269198118223262739421869864436491910381656491812113508801939515154754322795664344179436956884680359160044931134428044184220056937637966995074630738805328257409479557580761377025396683254377081834350137922610973345781602306189911024037567398663019923652838674811712940519106980517120936768024390943588138879043740418131372450973914631794440971149596413528306957857098792804592117926045001326434453639005039246372921550308030663506555134478131380946832081277416839589298751278553516515645150491936671865921243966509690658428410793997890106412845855537754303893764959291520214804749485080619884449551669130458478394991443742266498070385418841893474533954863345152367614759517487600439899207242861827894360574832169415372144397795508691971211764852821176137511030762534266487274123937277482916436346632561772624110327992170817208545434643913785658989220613277268021759113309839654531135652435973029804416756387341374622671672777501171910096154886733467665464912570764623619675947994149215708741110881982611684650351410131511452268568979733515327625677268137154488178935185454885090674117187959720147023177804621474713726534671362383585665665356620854690351299528658601096116845212873556942155015556573734666228304337575643036568119603808608144356819612204168328150402944690107759746031850826962789399245179431811788412364046173673778835064254202293152107974083075607585255638981372500671815718742276728980582882555143277411268206167041561507254302840830181365414196614830706061242344796205527125607686266987651596527858908846281240598738870895041853497480429287046932961678300081422072426344491275168320156803107624070019675963965360695179819242364842906397362441702858849407033286951480343510963896993482126031232792567222290573679096708896251585375669328794469644442810511910572294625618822687539473920201418255118967731106871107396931118573902984313486074526433546981337010219736830815975045990710767431807850370317940168034759532801307216595453987452540286550294032888160636949635817902660364514777161252030586469567993937007381514631635678570061393817063296578890266357089289636622348414016261054196966730051542780256068474846822079794152712428381706401293231573213743924352575908598449627158394033932056994228918046752595478458001387790679513941436138612214478886311571289981935409225888693844223191893901774915091296705711119770164345928259484189208617311287954321416324762073578973409650391612777994288658577119677299614719919678182923086036599562704640257055515182289417703598557798603688177946932108385930104778391528423659085275424563102076937706865080508851782032636306490653310787998540508719298775835985628082036390871063145421054355741674830108999938817874765065223666176413661693613174391309088699140806555668149323940395764511453589524401249745590885768000357080902849086462236213026923435740812408948295447230029192907534328852826245320408406805329968209037343033831424247934897781176837148003449105384851339091880401729255329028927098472754244399462198517409675879290854839635372181454845929111208762755393777357827903013445860013834521815693727873708521028610705092822768492255348487462572528828090452788617580154945886919039183285399350136655719100966364778788749130113810105087755788164017008004168791111624842577251965796659949634676338576997032464751139251694566955170853616353606451649435389295779102625993248622427496438603863140920497278981543919678793358119819512326920558070159447598215701178177689688766607659918691964741246855565928999549884309822927981479802118261911092644476137184163321847576307379982187495170301464300695438760400501688499070240398145276875056486596573861248776937721094717480204480496056444985875603907886491113053939540851440597113764244404630803048932616850893988091490218035114772143961953795963622137535656168609912310282370287999184170584685692513735501824171285530616983855439838664372172705875460227794520737783648200230602984850135512121905114046030672715566482977654089713821686746886857166739263065412972900072217779256030558897252729330134348289786019385760618225650895243245628193978571890651875728371648289083106645177043153259206381130025463341804987180391661294177374924129516779765796425775079700478238944546972197450123009880540620676144570136730071389176751174973279981806788246089010022339231664939496249079283839189556720378133151293947256219517457497922172070334729479980616450003342923408411869180671810784327359513171858331680782341062032078780004675799216537748679627141499162773205018476807598890874911288719558571943439851296547167354018262677530325488115302095837417408009809034871944355713038281316886272154506258579295537038757835674335374830941294168004131598717407733724424352638962246100693897642234315953189977845084436201732853012176404345349826467239616645547956749212319915717418227249833383368274450240898443897836159819179732890732083418800110022735775704495186582409938093231429897601298576385447676835178503170598323185786686758870789690524590644282474882537826067591656770347866499673872965583864937619887208942939406054090402726823920472904884687462698985046474082614144926953043250432739976815894635295016941949637637244489781157535167100578190316597384383455268990199837632225592348552950237433794320569712319286326024668270790922889139998576840615750314456016861923541876437419556432659236128181368524865027517558760988384388293461680700089794322811104310166204263446485309082024186196152426839644713446413675629781097573913194310661140971163735242043335629291654812150267543474474271568793355217438664652079559445533513995763166369085992451940572941883219277039792880768447413845487804958700141769797292873921279837673430658213938576539371295208474921207067587198750061023070359208172230321929882244987743500435085552320832772029403856020482412347564738959651112675812082962743941977868178696884856018652330445486428510222448868392345119402014162225183681046525083213342757861676092679791610170768349423369438496600681973378914368100190391916569528967216754545567108333503110892245302665276066442738836208124151349512241626834611745037735955074242827151218031147063054017377612927551045796439979981277757017974002308822080814982076174980615210310734640019585784484682808116799761580568651485897154459711099895082201441502992041971004419804934038402068711390740397534476187490957049535210805820268818145184046333925225205349299914474731829267887280733876351999134702864333738277717827467017359356172451220190392361116751953946195159185235487061702172518181268430681619765960184981080629828896778512638159765015468037181785010866957340311590403960974868272299742582879609133797617859841428106201795717310033805210664851489899683347609171652312479626689658074004390749838182541805044867052112500470321369230146955703405322093594821378100546384798627917266990364446121817362964085535966785743736373126020762580406127276030376033885905301705322425621062637843024036475534328675134557057071835455641334249607131571750301832191876192199892681736947826039978558235099730035556941231552887284658623247178441974827443209163197614252585924490468141755677859613961903243925908446276550678028484366718430515683829223082709744298990865224326717909203719167591358190828396654876850452497667481044570244693445873545305693409999764903326028847424564059219524540570287626030703670473448121118201623127761041456834681164975986856428000556016365227508108567163997789157751051460065447325442475926350830570103587487627400744906745984988884459135976291622849742232959819699621822344918657592025582666588093590647077867400520547350353776335432954321516781215040279584208967248531440343803614177670759865343001545710290064544524240013037472094376480457487069375877381095159437952243200483516217426481519311264849797436865511836886073596027663284679382378498788906917224599597891615791951250734323164949402876807705148869054701685898353412756128091691846952195343224271518487369962121923174562159896684707037218488357216802819821199493715221203686262667382410425575154123069901834566469468877856833032737401374862498793879734617395580176531849832480033405169394620614390439287004521400548980438541669045513168632970291855099856476492267543307947043137345868766805959414195218505257337459434666292673491352994298389576740793562299405196065286165681761347412084877015462539232664270332737251553700418026854552040398279084259478963325426718829256403910535483906259051275692151982739797649935530863228635719841791927481890577789293261349249924845177766665687133393698841412034283436498124162365280437404498400104853583050201812285723121891354378529706578587003695176795861238605493648519203529678287113478235679284178326756395799363371446427217927139440081819373832883399245661293732413164017907057396445692956957452805891222517167383913274732728495482988260728163586543907088509469122918071734729071111445287756178138176973764705913726858870809024396017388885386210780001747205028037345873299938581927071467445351048970687444147514417696897087020414903403487747176349250563119301450379604359023029022388411011192845755549314395082345895725082137364089391237047212529713615460265192187019448591690970329080308305213792103087012893944588367428882714677521215399277619998602536178803228374135915973258364373669793476494097788724805629269345061438541849875156184078638208139214207888851845003687848181494538727926346427642739288545792341395127650347937522324466433304779575830514986429868565980619250387083650557688959409298904798646402915434749721368032020633840267608388072865693120231700635236600406335051134605364824206900270349119618076711283363380007495531020019820843026383443693151026648612578072469541289036438081756584680114886902444032106507462818847337215188759564600019712995444426718207648266448789081202198470850593850970127894051234753563080201731232681291130066856272186871466533978484534063862444226442449498052880689728139951989695620505673040474774370007195999654091573782104430893676915240076655499002008168450868980013574039280587591268674909956720695567596627636230420708746396831834248500021810764963484927730530567964655120835038483565972087589076737485803188783715092053260774444513172762305115317462134620020671496325160233757074496480248153656136788547054388799748930653059830938044654812989463116691954655164243644132243365836595482726098901028813069656155020997358673831863398648196184319878394602188602411469452712634451480072600186304739156099042771631030716113788885992025931658987542311571243564132853596859644122636168759409568167822517373511546644719912894122572994351085229738900271048075916319109960183410827051484591780902695137505761478437295648424959855665497147395569726033762742458512976735169156027459766021895862201002748305314439141518343857313837630370143409004007338699184629903938753389695248297418988248325425715875383083430333627009897262404078813926233511215634980752080906328851833951861522414262069565823263108202087348453910280992616297653462235719606462672573235835512936604091742950315076702300564237666564923838780992599471382540942219113906911143387564551458854056302354816355103288902977789164102736082398523925470385620259314227734735137210588735387022906210886750814851400112403340540380509528845210261166478227596713831424559201138696550954880194330459386711979991566181627514990468556667078017066599483903925320649980478468965950560304662309903391258156361515297091343020275984387582187317326495166710161460229655176260570465935680932022110700261906339299249153256124969410086072476478178727511067238164771170681595520765133066328272507907073606250851995310364228273690500818267022386758374937397193619134061151594542181579966631943656913193851908632350433775478329644679462975842408684202815041179575300791450012329882138922121572388091165184872131938558511368417446032415972975330753754338187124207856478474292206563272145419170468593645077779810129491532459440740691860225746521010471621524395607544254822596407134369030936292993800764507005441779423966805233433730261830018431762938399579743134963091211499279038892239480686109565892921240125971150334467489409278674666448279700346135531448627160638589255132480930366830439122610257919277869842823133904656430620630427065244588969674227184353681038439761359840200146750070589950123935226850055605776717007842289624592433746142786378907348525343588291742381241254055987042569373110143183814196356261934095302240062256376999241494384667725444328182416896609126880778962083533003985671594978080787488575355935241101403063838292843662068421389806781212107164309812387846192181156582827074484149791157622306534635582698606532115898970771646247041162897378167820438148708996660226371565052311797959871761697691676901344367516320028415815200514937188510535460389495458223341217845189202552600156512335832839868009065846375403048399906324351631196847473378177906042747445208160164685356457152417945444314699191375836407112160121751237134564659539063942050607470244352347556077384225145512183844830065276020469767817032296126683804769920168907556695821028156033779846969745970297232774031339328571548170438972600902274398515116377235505914249726838835844250654221126351374989161563518427859093024238134871062552948402642674156405885402153720936782997606864400703244201493751459656002126147986686404998728236309249528930076961935956944105464475384846132564169083093938501357806215315704765237551783530635760884041131395924219987063309851749451542125446089350361323570858902208877648974602711041220789735087133971444021109523582004505579198234172197636675667091942134874407875123638997440809582727218268827920254770093867770167526452388029288602162588716288813822979127479901199831424268640281101093632580759894518015331031359058071829651621865092739656087614415466950012787777692050493896458583670625456758693918282477579345369012205459636967215537763248563671163220464497402271599079985206025875851936402206106877209990026668398706649441972081710014563855839261783647980176392295247184701217273128112492449120738141680729623876114933552808041798747269204874591399576860588504676717839067827183005978942168044829913363182500655329511879165424473401905689048119219382482500961195243076176277285632088215483547188683609303587554903064718256516262664338843039795128397899219110764156371166105259174167027289887206057773448640530539677786723884355715337907824109741597238195362389618006770935554430493526652176691489009089835727654268441929406854642880217143737948327648547651444988123706947836885204321811422315403632911977766219471824415165122394887170983769490555195553237540192832901561102237304061679958507812080936930889290138842841845176967282480794238608089672384083103093653744707304182503051655657105187822391079811105772630191538890728526413682105124677560588561508022344653885738002337463646181725851914342070836925975147633222669945245128165828865678834283782869359087133376738042350968157325322382916223906789847006187781339193347378234498882519709679478117654866643488546465063645021070371021674638469754252108980524367957651186768766959544059934378974229875260933867702051009073490421745237783691422731137033923133337889459739239779104932056835364537633810543692787721481490846560830875711903186326304992009775822630224617963015858627505803510025415025068643224075554485210455761532715820844769756119329391022374182424080363044843233410639848306398597799232398135395930730029910877975205960618971352696788219493180088162207631523262987936545607970664442241015331772244555499425263695172684839120177470848125399639449753380235920996294326100594926286853874211139806594117513194955740109853667073503287017772629584236571570558862035948386709308094371125991347640196618745951981408661692881140045599702694791217136237007884947697163325511604479126459593443624015675797633186434515204312812165043656371790302343828991410877191862677321763235675525411984245612818197859886597647890422840396479526306561470397845795968438985876308660838725126619755309575013569219806028197517929861369321334947258477361573892306804447707563387930765576709415872425689437607454430367056952879135726628550317656348758091258211753890940936010490305185178104464030799619797792181556299190050430884105110099137720208756438011172833936949876321571652143646003040445894256088929392750760239722878159054692894368383796846827389033779652069848287541268574641203038338898008089574035056037020109829362444668775159368374252905380727395418230415202739933586075057491568993378162665822711143816166225051148847997729980817695627396993836687995170253858199968437222572593194019657778643243392859441392958488354764741457470967139183202073372376244544989449299057310896831392905241370046553356748297650725811630994050726643693120597329645965150003413800721821555898921784561062622651793767288902241276676089287929755491510961511875876077323133934839993294400776378985552189449685741073946820728751667960581153030912590448664030699244733108241132952999072395838816649390852116874730621513795435190371304033727006412080092145551508961572972662755244059352431768254739921402282006500581775148434670957409757545922782983017811700894941329472336362674899880912799573939410486591708860324545313163662783482774454411783813463914966790321136927677702485992050775134066485458625323403416003733751631323260264135166704415057202477458097326552697373684048032044568963253244120859133077668598675559086359851364655081182034004154416649798589100455066491878291706921327278186414468802864722223326158580967421506277618175109984259245390712495931854744083272471807349449415459018583180256173730694296686796283211373992910506056960090887361203760958291148504208810791747636513096317571675490509603124927969788449155776566316192449734909356845963413477714971377941113715890562410178343683996232917608004007002067299549065129311432418753162797562748938165203338137913618082303492136241448806573785549966568541925325354069217590108854761624821388390394143556537401568805683379431169228988518329618455169378846603608602382671174587298135892024066464915271972010261939027474589805307720457067601170975426596447756222736871980650801678258825506562520082898166588805852705122100976503624666838213470601356274984132273136422988706713500442732880755240727381206811135944416161993252259406286310623518519172259429458168168226842608823691332345646167984794271895020901869919747522071707346222875848916888189131216800927184254186690249222352510553744264118046828417903187378693068461993007313793053935789346924864235106229760989626513990298663897601572495770230447936318539205334778493622460969409906057523102210649474884700536380745799448672215825570599675616950940533051866527134117510857894893979061558002975544091750710945814841058325463407639740150121602566135791431687453301355930842691713333643278245184846208156318738165257377439662125351819540171766974672171856681347116741111115225604188052406783654463926521820586888646051233077899912816243918725626254448466041892110887769069728873706495654166893474121732286479787747117073124560164064192658905341267971935875733938383180138768189586235341216015545243625593227187387947513352909235435968090634549014273679776954999900222379765350506188706343952792156316965930452633887227460106763192589772701441014645779382200350689226034657620932282081615151847614254735388526337910722392438609683321546605061859589809396370722514804741416133039985048581701874923032362587639687897522711732533028741024312216336506126590721236540271665713176455583298250427598116139173654019377999787480413665551993663440378560193929208703853396113876756044465623879433802986269482064913183079155963830398469408899587152491139596816239230930306066478760465408774826981056571813793798366710290784723168970065259992952046016552953393728826921965605605815210764191013696879720306686597235050672691185811904987707028630563248151457395309743340701457161798852774694813609031461936439293632152586469951786330990768608723605833807199496747231567440732092110009319855867689255507744549635500685381404868792498897601775163619333706719505278305731323338662332374676384867091663835928111515163394993364269653064031822259236085614634736775739241862529117829045055531579225685694362972131835008868300186342570907744444857342591115274969762821590425873149673862909484637747804346373470895742413381491314196705712453858738952730989857824122563888872734768507508242895760617705163214611939516076478442256567976924422612193218457489327088606310295534655511101117242603756947636409423703583343796460138071705781827688330224678862645922717985417250839869671112075542345373036430448859701628277415874024448101699064509437528999590730566619547943357725936217362881858324539026685262025268335284310029818526264652249991477430745337424011277539747180215627799183513790267696657366846182522140767653247333722910592250208193155798137507863113742069746498905151095327925240172951456573676611024740144578581035266732069588718709993254626935255305525784052180349484543486043337872044196866521736939131082946357481499568551778054732449572959068105806208019537655571581203017628587840557489552049854561835796474258851526016312859730015287405520059266426323392530998566593961428755793498410547178994497550424056275983511817036587952831482426441156911339432430044887169048699176348707967950948532805000911253638715387755830013371583256140061158431424432625644550873876975683310022936676968449780941595637983895663824204329994408287636704012683879020310304111627234280835725140706352044373790501097391288244454612230077571496425140279846967259211373560118253508155038486501861610647257930358472130297642991859930040438165076570460761100804861504818640490205623740529376953705159657858826634484734478058439116254594022210435380753886325389731726133419291608906840230137338217989634527634671548931883443714070663050412801000805900337007704324616875591013999526531172641030061335599990460373733865012034112139432611529782650606657677344705632638654530133798840659799777898538982912354848959568954930316234137809059548971168031619255991068673895089594335406540741245519530963656284669624759439575115600451607222780980610429761790617295803326986929921390072239837808768946267805456888973108014258947388950943131916993758412174606975204541143162525690348274096705549991927643884111006924019598491961103989656332316260118072439748161874317586418484076514639553388307671356086418819672205415842626278649329000087013607908528945877369694436457334114820079283018539965621085401855637362219870265206960170114742311703635784997185332410834689501746399478862643346231544068372390034352206233006282775644998305367400602922556697187371348474903455798653847117740490317311763994718300247994131390446377480962599914657635213547390617479147627317661223571739974984312381764327495073706238604464584676914930043100280980776330987633480414444173785759953894710974055528718160505821697445569743599430929207252245490618288210630063345917041461917780708645797742713546165887514596037992794992070969110323648091216403971007459183866515125375298167492333730655141592508875652763669189291795103804587014070885139421703631169671320339702146996223641954438731085242661085499369259589012651269958913167676290801503389728381976818617968312984755475867916287321816156791034304457873941022050189853950353921682601972487728049581788734268494908611811828450984050512573805710515848009922259047580130039578622972138928021409617942599412428596871126849613123973674771320993042508091538513395398065581755163971291027383091813747070655676482838386872209809329433817669512643314050568393048129642335515367448579304851049367992254152149608243068770345342836596859672858264939130193903747322029716101415811403944569926033550227014834793214315586164530156388417801671979208592453012155849354060057260693304445075793024136782254493303614467779067070290538386002509648694493636259756834115523251914332032132989659220071615669223198754814561921002126377990167562057808689176518509237370143615322588443606029488211958202107311974265724156242739054786406894600671717708073690171616549445337619609823834575558288467229943804846027305486466187089531392813078437394053750295308992495447209441572527481694506550717095799773097519990346726011970320907824391901672221180581187447219483148512728302073437392136404934235518114111558221578746363918790187908023315288774519696016153265048413209260254082900690204702696682605577389225115979421250572960071553121818366788131253504898786543446304266178686998068448652204980554554580267865552686983830368941741022499795775694144516337682939714175808865207898551351845704404097320847017851485568565465882538555657513717616258116086985030294482460032074132050778724702667919712894575503707145147586537210783720148584724257893489422919153870988696073745064602220632881209168303183789588143417727074175443653060728836930018768361905927670107307039294562501177019635385748759770956484587832050194364746422117699787815329461190046538254870937202768063072041501919193688667802544890372601161982451007902901834511170957491959136574517941849108877535507173481707495294102814032021175094357925180113446835089979260054284046821781228866525503874293253335150308207722488540786989385194088208140356451629972904525798168948695375989993156627885901395704974207530033982110153053571303204706155746956792838648352977243095973608490675154856411799334597851535861161173729339772278747986603927431626280982732709269579666652575851414061337104553155127624321947375887996919729993124861370052497780472363344729486103655801822828886588139873930448517971631649653105434919845267010565847955317486686553828352118614644973342846979742922173427765548390499225940505093565691863163683016319531621404029724054409305863324127865585583224953700102273827893100142503931511145236438910453820644189746859720420341344639739113786195109741613980006861058221131692665806642221707948094153883449021002868138044944390062814735043558485457946040852853175988956728113342092156774087388968449912377252326293163895413034817430370087711989542332124886282860528257263872153246541664227467262126845011511621889637832032341427070745301428347174353133779350325893891169660176129611387673275628365977837492468999239101531112513604139545049920542307605553761697320579166893136491387786017435365759936842437937579485741347759541086065189949311954867616816515125373784293310905999451713947483308972831708284132980027039861750097873863746466628910337045338450938972307098815722648534441255368424516595858127667298444340608397678915568907401343760581441845486834598298803713917890197282349611556019894197403384384645648778888797756744153886761300568376560939757070690124731798007797399246869709557500115069382220055432151507709840447606012514252722006041266366892188593791972599129069728475332202622986597287497647337294721703508563676511663826176726494890913895582297180285409033021384158647215703615345275789049947223272583855588182416094172780242836702737230670619899165014567333334170506265644419545075112246270081593618189653645626510634275054233325809328686421148650785268168455519507703991896850665930663082327929514423286392227159158124743348521792059169626704718889117195432090415820009850050986027325850571341114152639331930411697534127888848860265370972310268600815867375503350981122090776767257502429163017989220189837873510653082485360838756630253008445594704557716124778283569557022652715820477711637666096488901445046066081463456808736622678098440090187263765980557801919233153761237729885696274449046766414135223651269485647305156403408206803486683042094984349390618871848470716316978173664773497113022961786710221810630251967935967494237032323154189532092754792438157707756754045588150550934943386964517859090373805794810699678314308115212803321295667606260535387231154287922730795081656109915008606275008878181915793097239005183569782279603285203403627914535039909680818554951628888005486708494364526885658819181206181392080927961857272393443364835924852837477736869805647650719197039349349276132892624407100467013821943220099384861131898899590430077528609325440426931979055589037248937917105489860111068836867971357277837299624948741324378989177553893592140880219324266624244401583917200577130960476361156311885267244393329408780179637501227826952817461333211048241505965360142751558642999816207065239286338863977187423169145375476540341773033439760946920761887865225021636277428278491680652400563989460859097723491609699683246149268404275160132209003262240903421754384756383913369923900907995827419961479450845152450762881156387393520573277014825805448968254721285886225482760190176228513660777191655982979574732309891894141760097404495462074349518127864499364942775552934796295849629109465200437750248370440426069550958341056498382519259200276342005043767240836855707758243412972634351680764245264535165047214131157308668698896397599745623546874442510446712883653904938131767861299041039818844692964488273550472408673111853051318260804806840808290015563611484349115431815020186857975174817971639243031663830671141061627612501988937662319705937521634098373460013706793860520615617866910209229532035595780206504628522128275571275683625062675730343985753334675145787433971371419118643198052866819201493986363300228534611309283753020934028211513621751385208861704197095895032516054148120188017402210474303499027147291973920739237465339254831075196056026681147885488097687909310820252846038543762775390294509272900906968662166565062535059661988898514232849806268492350438181152883749275606040187370754983913335636842969193071696794113433859702886247480468694165836267980519173021209499798259815716852033608410044181732267492024772052330820968014805986985131737554673953928743681991178656132737461433867444397196690658597621521769891388810879810792798397703007419364831782051152841184907371629369546096419359498772803528844776136234351978853609597576221620513477678095496286816180791440406799944686702107760227415617000331289442119641131739883835129723815012293270554552264243569976450008397712006224635452133744253954442689800384925026443232046633371461033705082353846414022536958637295544826081062305776698193834277715717073000558460389810220162055204968245178449246608242237748179156404104431486780482537668131964498152233120247130013517957624643848774574413900571274481167388608064863097508931923325277690175421239976315691971205141180659354026549806677946253793172765907641228194597693163558279132225647577273939328261685127513026692299798670561358086273811304901446684597958090370318785303822612082417436041192442580322696279334213959607872520852118367589049090144036131072524748972986588969267802389052461496223869792294714564917145116019797602036491682915408365987104383614028498502424500688389006390796178517048777345434564319197508912304979064463062610797465044352539696834188643444823287608061766755984818870261359937832005245287903123350031705055562172733482842525281040911803499673515535202122179880820261368506507884888732789134607292346498255565285686807556684120233783601099131066859949070920844091303958022560717745285092043255337762677679343824927601121282911263224615564241117371689880415860732377679226507457642775052735979042922344441420782568163597483904102228662913994168381125114314806431956879108783025188399046699798393724419506169264099274671292247230747018961212035490591284127072089233506022206025168054899981660055156413841014221082728811279344639357590249256583652125437502905684612773789435447366879528724508404661185071475045767057149446035204730406577285669676562625530516666966504406258011672811480676255431034189297480857074769642541569782762840878720270849196920332325678200332171069725522016084294898457344593130977989458530908552657043225118736154489025964676545483135094059663283536149541587974735964736715742610021654764889963876812718677769304887829946119585801719829213495750861930679319928965207883328641497324351202003593610037058601830235163400203120243008594731424925452421958408605467910325660710404802506313180904990176139395870994280243327722933525233386236305591518571691536969638292747406713162697628021000599262363248394517038332976848403109648413205210178508859875789012957252023731816393690172601513875192427003171738047784025853666209799838494941830350745604037900293607457356719063974317278235365321071335781517856381572785452504749461542665890159980237151264597121776598703711056231753287347745024633830224787674443053958334603548022332221589409516577304379200854173823583377517231366473973916258883021937211138187575004000618980656970922830270482533514310279236276268068703256049140074312334782072945247727637643858299536985018680365905455303310397241009387069313662587217192188707039197026658020784560050477053989463093001503175396414234389076282020193545768943747116086025463326688054712007192182564226389260691000433225951454944531682109409360589358298132859172475085160530472918762506254666589956894217595023713805809976887821736493734788460159288359080190869096822076500117701816013464893176334861635419518526571587193251305210227754004587626822847767283089024315298523712330038517316213313978736528770407489528608104072632312405280212046892171314603617767043605171999896729197561960343474556840662966514331567751213260031767985253136239384056645134569535241005438013549897258179681292681355882666635968743384282023420487899183218680559925963933628111124496544308654423857880682438261509013492697469114627651824598907713453092626435117694116109680001232098636210554786491883527682304099400840323110296766329139719846711865581248769686941088078140253501864529248292474837710468351105960760104631266230703708587836982680006368490550933854550373682843556497669962758593584883423068509857271711218951789449911993863658562571702217196947553211422502758412604570546752863116726066024207129669906506675533469395660911761089823223228382022707102213292005599861205987201233143410168006943342394291021649448644582568993455406927089578725240457049045912467384531218636782189306152926244394222241032039997736386688291763046480970211324553869081041278625198142129515643901724428498989897349451624423987054036527667549060433129248404938549631970404457593783605081653694520428785985006295677260940931861595999994510730627989063799902255570044091449695643295556783508116698266094261324585379044560076431720078064966022190918905266287052224526043819918668105330728691489252863412776569726785646976471756728316254269936852286220360757817824971635324484293696590160434139893780821313255912483458697951537767366359012857223505791314628011003680664441729218170049859580411822995705433541098835812840501742300776267777974825050218358091746056920643995775292277523971470389481077986144552036678638148460453728340651037887625948279441701689474161354909994368384743847840779145333668598054573558280009460761834212120260658219881151634284724349705447246673717871320170314943181454861059506914878685591198049180456294576560606338423050243639966346686248293577940598027298743384110682274903739919921492230232125513323001894990070791477083790478229180888213344266321364116828230060526441301202116091973780095002437063455681162785776275800808136796297632476668782085245977651558084840647649429817048094853436370548888771110767083977888391530966519828417576432949606571707424766312923273221701446216639416209220778264332809138014669382736953001205846976040307702716851874819244614560389476493278527870869959098638860919177909040126310307402612088130390453426908719989904537799258701397507720138893052043311703114475054732131363826610996892977356651151534464596243212066988656048697538571424109587808324095801810638962297232765376047606881793742918413880289457865867597399411535237000296978221320306236876136166447945503957466945082761832667390530884792889079305751861545866332481971654505481767703012743833680137030195165764038434463343498204365379813382226889020266100168962278246472530509460554772888130725445690891385632188192809009495572315645726482580366172645505367509003583790648660910059638712399543126046905714179568919135697185388937827812474868727538077630179412138527993853836941635761590595162799723594951220469543093972179149164211437370773153737920277587047126788670658105184946684916790749970123675399425292175103542812863395459948447105449199603294019896690363058116925795040299196915274974760707029823031050005600662035225785988689269335528226621724122557033786574047491061093615651559969847904916553490079927074092537069610029333167412322652563677542622805066738852466985558245399131369847310923002901720392917129870067103374185923000362414352962523710258901468447172607659317368454577367198690218697896364160636331543598052334079556122044883100673683658038996105983014260120133664452133884895123705172251051743531216411736451509752289531833979821614730646277133191070282671553838587186658504485725250123083726175506706544330114497353911298602477309237257044423465361355542933601138131183488823220882632197238731316413876489652729454794807818252568370231074925780359483617009450912167635455977781624093909693562940448346734524110474291985433528236223483828431823676953493861586087015231370777146819491333377192475796614624948345018756014899077648632244832854091793911552013450711844779223115859372363973834776098914686940213000922717818966433321461811714470451749427652622147264963007249295318038207059445521918405756114910594593639665521117883561545435655293872937123033455936008430244144158103319517075353593556732905356097705665059213146993749549052904899456248649285065472834602910606415315804380502837400365238572275630434851836131657016733944737803277937341898895568608701536725942714481921623937005600772450833643406696267674843481861133003693046456384736978375240274894818390348180374451061099924456969673744691662975033530010351285373365969723510585144449356009312115574228847871002140062136166211743561140575329888532267107234291561242515499400331897005057958023702349917907918363362549705291738422628359533216170592047402639157404665577921992147282337134437950824959922257096144528793096256787157922047906170272210924756653221944429245060050338484792282077228032689837138695642198427909041105885508167516304754226361116914654027213607602273431161246088909394874813374433104156214989832586233269990311204791993480600159709473373623187970569207364086603646018350104285115327449824982430139516882453949261108906452918725024239478877864629797869178981267193385633640907777472527525109614198082878132202340077943922073200636329867255099896669716729760678030063813430310236296146606283330889798227550282828036933053736241220858211962496844327368135275389851534894787124464273322152371584991027378201176535361680438876080139727844969460659395503952527726371783097818371184950462558450134782387499443857047540634167339130234737599250879648857726064446767808373611751315503041771760084613193662462252963645915748811737503551191649435516135597099285775685606586148507765119770907738849969707244211741705978551768106410096151998155650417093589462830223277436952641776098188418305984491613783236771437548295249173574200079324293331363772718270924815237715605240749735817226461231489552966977515630091005057750351435419720766912848905049623822535411650433496873991265024382582067834719098540872074188248638446362425675870052440370403380724541430048000252633554913678968233229198847346564152980825584488673114310113109986565036376048592070785828596752779388789773048587889711999047432144459561379744779824408828507963154656285155987205882205087875772584752351918488106576998833785530694360727215128355985957560784492610477401801087807487199894450507078212238495329110342493737469535440732944839221650301261726867446124611831363704614001335437655055030206402637462136675553721731692356064796376233124022858018458986856265567269488280062928873667919127664571245734545727904563139808890299800137600930918776202044872537140442944527654659542530799231507521599150452093125799942638800140314456382521095966959215047515832022499514187596451557988363515759628789991549705768187298076367628436827494834491182459196124057853826675829299476462734915728026626389651486119495493506556533899026682056249090283220635913224659693126384064680275643788650784123461202289300954491666504115027908363076005239820499987995562122073465261951065224885240551813409974495566274897069435746652116562107250899136989872418738373980336730863854946556435216996221346975579828049611245089063756898267580708260322242877514226099554794685319608663288502688240993831558891809125941229939400624546472376481959727732932686256747858035786513390771594137434290753404981948929249033037492715383868504690939269228835899925403845725027360143089938900192194382134955556173528296790507467590848476050223596610991476526880550255072232849612062834594359257262041057542783478052291307680492372034021830471090068405337771394245106660370056018482582751455967789337677348354941315557122204273528064615065800512070715765851209196061488797183613566755265264069925337403660440962519943225149397092718171009852427473482088804502721729088708323617284186335442125663846598042352926731549063926727367166713145131231587388602500990981459242579115183824134192982849111474105832074377418918097017592797815025234391990762915758756050676865822193805939286863213204648823098460036752790304307238987486600890250009129565086461860163403951745945396920394376897289302468313403380801045576903374089960546478364397761795625739092452959648082376522604745575212544127356478805530056220760176441552058146454415775628211407736776178749178845846668176292648574692482158728729879698778135736492551683266017891011106031231947626638896478241634164799919465336524109174247075954369378555648521241816269272054668745738170405629779249623111274389020149923403987112866877704747906787859727501955801450232680040041163551271591401673971099049796825093428833366072247807060983299351210420792289410840360864896683173837898250806385820342751798143322989671973606187811956478359818292330784289163947057527085452949611624519289062772857560232660837068067309841735777067983370347413074706817057907910584109662640116289785475374246800903666598790504626814248865683528415098292532193370770971681282746429926433122908853115858593892768893821911170400096572849519749597633424842019674445683562146863374498413570038350034320536288988436949885458951900992383186642542956545416173495795895121324419215078238187947719880439041895826382261462628655785483382318916545747825620675475528268600693303804825621352246226525105481419987304805802851394105928741450354248469881052322144941489472395204312302616263162711321223960755641611082279498086070323549752824590740512117480298587062209730018638507089677869042966678118598574740064557596376564215889300779656411714042912409899083606740092058503437252663763940898712258470204303627816585129743928611057550344779935588608476069135182624128497866433373319381274976751136030675977442548698189679417928711820982967516890123298189323287083785887036111120669577396462984903316326011756139711231988440574368389118732776982933699367755892493314803360378042871240046757081283615791084568282457054557126842295988021143044615426145450837487789885184898406928719413400254594269320898604878741603935548369749881957657797685896293055037837169577716586030325499894208854453034233834681781742634267117304932630077378068931816494417300628396537765348764875711912598846388748103153925443764280354041048088402503504425326694748603221454203093610383389981097796513508926628856772910533474844692771206819894073849604772645404884208792350350009856632310248744430496658536902249395591192908244741545221925393075846594315588470630273421776632159552958872496307385413000826429899349938056797035137127448531028214184747670961081751214201424058786890904098428120349823328047682754313104588693553753525012069583982434571640428070161365384028183896775986814430566758172906271410414706576929779585748722677736415939750704088507744082023088218784669820682511438304343650701252907412288995305462425429994574384412943969962502541560523903822893412949646402756116483322524907909332551996528066554194747627399288855038129380113319553919410438407477495563675289587817912140731353198003047804465461209544681647019899691782842534380528293169981127725887922820558482364958871796502842306198657954844583464302415446719683399461892325146290953732512803510384306922266720627635869848890256452562992951859319305346681566072870803725998289370544923191858985561643809673604096306926799925741804363600414428087283716167506620991183045220524196063579224766775386685625231952826255417470121196298434410474964568382590278443481378127016395822246319846242774266657186295475347786859712266098577017073835887306048180281763654796897634241708507420938130572690566831874440408209959383845579856324314105175012439568971966812337504521595406385358110145694164853220222692196092302576776613114013768420853750751264479510469477320160509190009229723950349437362894195343921048046799102138478139486346678431649878823796541534113357237193729296215444911216122265605048351653263858156315404597497000567473962529566970968174997118578442611826606455491415146388289702617133945227625243164255421592276339969381397085685383657890362651892328811851164011793273769875597701623795772610461595243403030532059692787055187292406166135886608612147430024092091454904630197847429287756234491309743794048519367379132163808063774590984261044197335942486329079833027883952295835937054775792097795139218007486285937473741609930466737970848324430608017655156386443689164354356833159899603067853550250831420231238518810964239364211452667807488469616769480356379689816069873721905331209935722936200164510258460118131091586435659697703677014875773335729405494422116482946136577594849480885981357666184981285581477847748621646762529526419431609430063103168889235772437163572103372988951451901833104813023411870556939111771030464400209589586806807131405225446870407894870261556923961010105213553620048532477809238740131741505562425666483577303362930947551594324517710417352856910615343524861608502459426435461315695440751872127663686223020344542063281350708209769989406721126511216599946730375364779539595804516686709234165766850642453883925753397045535884474840555817722343983846647812778944788135957285723213226055963929333660972462269321896405112510516471088976408385359505218057278606836544164830215546296751956860127332040512370164941301283319670688155534620392942050465167350177590965083276170046218255943495074148316908855561624696674623642531399811259142766346308182583421685726204904426684201872973662439317801168513598821403722858890350744554243154237558661058517649446400866612292177907150501222378079469429584559220699229552316423632843404958866809768060377566034404298388137857737838007394996775022451188369885379818497858646355944228607408844931754718987910137355872840234484412795708823406921911435430944424878870373340043103108998479991237803002047608404788653991860548634915450611096966329625409038416077900517610430359317958009566337445135919136437959680163748455686538832503650929691050847702960894814445183490627032102936453062758380363878733325030480649493920679817639559913310671188966083178866191846235169987850519253825344175515621110381038260794905907858896961890548896234272741935804072549016652009014372372102719282694813783952036781408237374366333961323462605588033140731385059700702631272080420537932024009789796387960603792259691405168600236184104379342752424581053695157007292520408579518681745838334826240000490322048145130284141714366759668580509976862643939368480401861434432125883343724094408172031595090697250510796705365632862842363231976190708336401161109117299254085995384405506048043680891653748023657592825930363475170635991581851495463759131170710543602673711181226102559364378243552049367426816083488735491834866883539048404020254561390641898275668175659838145415539452967824159471935778368814107722278520772817193234189582326188571852346602019920279735546905369220923163737270778723127565787770101522203446158441633440041215607318500102171500861860692559552020713203806244247668826128003397033017350830852126316863531839769480701569041304120527289814995211990893666586219226767273393227864585023399685073302719038847692800359707542351884490942079467533721796660905870216102166205406719353253726071291054661647885811537119629209877552972683051146389645726092407693505852593637803740273552464392034893229194915842780733707708511325269359353295279479450314792356349431285939766354125198079415255041202988115125886798184581716720268062073992699686762517127727935139990776070676428885147360393507942589420043418731835676501154235224081001894512587805314127515435713705989955223426189105943857687649489240434516296523515965698857807633158915707326513973550329892109463518752483564991654912328016912390176523749031005011310737531281693304503566126730083992128026163069309109614126403102320425130927408471551531599783669430600966062817592692556442172033793901061755353418290202091263044930224755474647060247905045298756586890264532229441151152490523321620814959103103175459234732519403802334219464061903539607029638026318069569477211558033232543451617468319305741946391339932811862841636062987064575764807598781506054435360522207114758476927234999476280214753129169113299647135223861981464246229044512234795928050130718108793969430316619820820900871071345801049554456902389346843122570552175248181805106620113637889383573276370341164529404937410861074722138704095500436835038708504525843934407004795064722554501979870564104148223015541003054844872900238591717297616360927426357901522115335636016446116759144803314589634165335505128080639233700390796757188290762683185017401874195004986887242827877868760494346940341018026167404052214348739765854766242204948550109459028015417363156812603402567192719710422343472942678703219263327645227375943129050788995252408297770510863427750478458910329602018586994059997016518052469875387160990801339363054637840044965177251043530530909021000120074387912960678184604109136083457695100356238899111240200182367978986242864193166471617199036497050872040341345146999287103087513180241697920278064768069025279533888723627549894027529644148423829631926026465886598108037979549797559126854565795450441757092119435970631488691001231436006106095746438667026994284334059328571789541733815296792195586017190555174091561752785473138798406633873399892728083642367738011619976023257344274233164137087103129746266082431596473396450411238495642392927246726754769413278455825590028681435224797953427678418917998206695699293034374880864571841684903524015732930031996558297589854238905006192939287914993716863324819004348994751227586064431201392704638330619625508736728932955581234236641259474786416453598830109704000453494480871407411301237836175766296237046295583749101836628745733980132036963516919494638157119904587924072961057339345340232665132033313505130082225527369321616053813540518785175090097393623053574926331287403562409407274323186275188085138387247573316405164032348249806861942799463765954550670848293544821431116293067746826115480002421894158816940410449491672657937658045607124778445833491586121955579331452337168648520271403919761786021568801500936918659542310580750000896405346231180736093074034196910407576183848481258623927793610679293382072531366832520685495664769662685585988355968486310066188180358425582634054823752289683300044066346184742544369497986444838062239559125361764232089767775421186360378939167054550662061717199983043441237914311102620898538529210839304071120739352822638754564288457423279337845031933972268074419237236962368951500900828091631612133553567922662402441755625191533505013909472737350550561548519690382708763960693024835294186773060775308463965796918253932771187922517696472189863054817235228095177578051867009333466861313459686611322297326785973733149650502225300332170316501313263599997873824699114538902245093872331285589156871348151198102689288748969186004963525210000603157028160458449897469302273160120674451651185475244122708634596078449197053068793149042332263793358075663146440830404883989776409224219351031613631824402554273654113091794483582644916777498310213130671907490941073608750852059493250896410925791354283709977781076390284903857005546863409974613669590581668360645750907590129636343187635508792479330022836315212337231659988183068916693314295305750982041723962153082406972217956025833068787021408886456794524300949474495262459452506696828398513058625940332434187995337567997244165967676023684727649825248054710191604606184669325147731427774229552683956502802119848998847108283498311322494995303364257796315412428768362314803243447366264243707084523000907060725068009430886516991685961993258104199803869668213188237705710920134734147650311971356911314546876265127766027688731776482216225034241818935859467326377044705208528148981365436523312423996870667523715573590615054262628336936643839498635107717286605348456964567620133155352629373678822178921183937180462091033057083306146907066495301570456218357452155776744451509183628041310857215191742810959944275161485810447808011637974301549635157358984029621219251424035039420986764981966957538361882455623878859163471491687351364945471482319061525235312593915710967641790706179203106222461871686540915789440217618853901745702117209792358688942154050874191119423447960696751757588777683690067608794591280047406838383184807221096518287497800373070903687275153966082559908726930814208158952969416331947891657718749448342302201852357628347492548485727128335575325305872615009209667507148358549671397872381236920087495342952833744512523616990785473281450623764935971818462519979167901375591687851094670894585227903162241103084481646718380674842848807283915166429157152322810248976652020771234995990851361707787595921135602567649180266465095588299474831238731658330946570855930593955018852845885769349631474340141048681558534905397757522549758929850424479635402327798423915326010933768935745119531828469083731746868612896423776755350362945673865006528539014968276062949801689897090719561351246385621633457005709530424627648941405457937121057140087465280864607273436338767130417894182725216702745819556307334279459425101730990299294118924358992543325578495859061031759315349474693668044829496282715254679532046943308515423095918474358260218013731927095488241116627615996916281364995388147597493319619225430744683022208955902751080664069655676818489764028341870973266321184339146722059255314409860165628659389385915143251224893101932411624825512764272253156769229921359340906536260226815389013213280500681282986104636782297213944335628572933425762554404083149440127537167290073139930814413328477773884727113385826043438866340755228381526298675371508164293606074200270559653214031922670474479096553666580412519683557305473165165703884036638447212714206661603667670634142128566157498632473244503654440684165686473412666949872503762638896558968909193616711487648619247488172248276498525907004942221144974185940301860565542847818306282317669507040409300348791010795436513014036651955804543265832204287644640289872937009946066659039103010189396775129244851458549044554761710400623534148819620385387141958106842793966643837210224608831603008275491934985551518900275280241604801755806772260898255278021210528484822148162835294514842702559365200894608348752096067032823890156059659590282033713767454815854477107339457271560162150956399327999495648764512527603588185904742832317381813890059120636794513997956720218434657966971074084686011011680557241178283116981976272634483219899202373277461464334976627166081631062183707750386555069864151757781296454958309516902811881265051347314986984620900002995513625931590661654594331335581731547190430882062876027000180302366728101636271236708860834752939297916460888638851196300998029254515995566292981823676138930321849974441637433761113260387144401158240732865667384623646354536269149905362482555668400333732290442599848270556811957157186537275585467532295837860248393363023056559899809052368415087818621763667568360234730786297417209067309992376537148269420017410514203258984785156217752011498843095449791169709198288554217938262022244220379937708050730380138084095845442962484958940313729985978184460619319897369556736976253114676033584616039881005009118692905933585880464392462552550752250012880988359975845569019749281657899420759597649779859481848201571704820979723470499388998123887300955428966250402863661277202824474428536799516258160526790416296785132922570866960133969859357874842662275532583383126705406354815319398781277206711344079726725353484678695221635429162052566073059490209289895990440670725328137033562020264207557567467616979695543583040880157198192778465828172157682545765334617143190347086104548391832789307150475055745915057955452547331568330529075239391912892751456474519866499012342863989582698671145408664994947528385133159451643156668368983456074274952076382488376531921831067686465369565171273659728156859595349796845294069830787034937048513140971592242596240208098273598676382955824459938299885474424889757148291503048053688759717738035896217874680529229611010195172601962960006102582769417412437476675293722209145555835234813348770875038506500320703262476948951448737289997147182771190011213531171148140556123204970207419829234014154162560904306929581151413478668887898377106600078864075049721490039097340956132792144998688827270804134499486468251688349518132194828031737115291445412263941421540465423090562148771672681390807853849176251935079879254534167501825243124394058681736884680044180240888952413234871420673920804822901517544659940808044065224634005388206132254949410326091490755896676057861911985863260686604402591342182844779030912202265918101113086847590169562146667576154884109998472248699391594472782887663585718400233580608506520825960056894777707764288774611561638739055393330193107882418596122891472274015797591239472719079207137923978900414279621631044338002317403186520417249171114770116613300871751376485212578550697068280330972259094708034015767359793921183231680700407571319931698975190480559602704512467889589566149449388489916330355884026577539022928571365779468700044105379027107883783620735812734110080702665007329009501735739714045786738199263965167413505230756924036636703718645582535567153953256433576885054840691508884228895036583591455807448308609191246215879295786231147201168724873735840535045674210134878544539972549827448458685137021129887236601481981675570953011693169699653659753085786539442196150633186292737890440831061145999744383083925656341119020783232969279318516207141078803190586158805821545325323304721589483228518609686534368593406990631216047846009754853039343597120312005639733251381223000879526165023188652670776162494711925632690491507001962253372825163078009600687378759162080310642630687906566993471773563356424366928188899513596080366039613481883599014358445116849557515132638428478367470391348332453431692313864742281445083777397722119350599038542965681841219092527452535858898501154631171806753712722793228041939343471546669009919761279455956197334798686133555879394464063259529692743213669598533195791163042075105521936112843432520022584373696069219649681930656772156806299418891204944050012899577449579708122988352550298319090796436696857451635409151020613814664986199225245159409547021361463607365465652053991858894609016968640281448250643474790256385945255230912793655959800112000376321844469651870583400946901564864427057048060252687094269716542947451277124069833498143808211184942330676542264369919269138357189346843671215289678187436436666727282268144267870162191418311017948286473901382564948043871776192924880754673125787002260582239827854293524496445948402840518542678628640168020234476398364628903952927872417257123771562394483432520334385987875009681711298635031576332493208497851171663988925461567034404607205315137336443159720520563098849699394400456026380504676221103539835786969952522387254121418919408918740654628892656235988911067798642698295022232997953164449215468197604230660852981638419792113155751303804957483241089318199522699220200131314304062510790640828475361890310247301043186446922762039935533590349049624645225521133059216019736015548090515592456962127809020987145211192225157199708489868928102241347827245083402309558395221792284351634412134385237729571837401109872344474809203852548980332090762923244722809192074996728583757392863667561694891699515032016478061489345692660340117127318851935837590373500522738009184306473751510487095709433774981941707115091697319288975151536288016069101623079776426123458725899373220547030672301680401892552720257998812394047565005697733954158162721007244612450675359472019205067080218465603091141468251128124661342953301463853502811844111010436400011850208403997711524038297894450413668059348037477639381811219421719161107109319792889060489935444438906053295553284848420860770210309560565410260622496650405377507495468594542753988660619734062645178387664023703500299465817838499954472833237002781206367357093004877323047052653607883350062081673101770513188892743212239997075894133443512807920141129155077896928190997328693117840666634829040217125659159471680508657827567436375917840064883210073280224760625223448283976909391733188838490991678987804709296763460441279020196989393614298072588211953556320955784099034614652916166378189300595881782994329472818253121703698523190889902292030733639184055104077304133142502880300954904861703257886890218146892868076783898890268771055615816120993299196236179081502395933343193338934674511155786095468637795732921662613418605168609855084377866009147945865009665503334223481180348998590430378387841890539446002431878377928838566677073756173280814777221584236136123773684605587548751513064580522576036843912919924585922654265520026365087715000019494487829169691090181123231178199666871311546151317333454953896025145981487714575529684886790455630167485848223028607898336185712822326741064534321422175463582131075802853590278772959218564626790329945771604098742806784698831350445663176097069673104764075676590480718082032564607013064665930548750700806444564221882049477437030794249720656542861180405353222642735274963439121015721918962937942443684751905294290472111379981376720381238285635682088081948454785402962946960577977484246533326029687758452166438342800042254083292470326760617604330269835862174735174244305590088485325481198941163341586502308446109507885205539408439986422615929125835102002971188023664177846333107577929213755494904522216743727627432045524448100810922404121878911033827467101227824912535147684855180004017453976766921427398006744684193976215740837308199948285750026500294123775795290957301288151981290396889595750001099272636860202206621469822039648757160850878718899880943181748008348130028552967673931544505640828040155075680969156487525881510890607831914074181266132206112636048721918848027573573281812162922656310789038332989647798075724402406462177455235557495694064654919480228440171855580279373546154684684815799774164563915883881622410900692824344382349115133349535747642861377503055197699355687711222752346544487242814668564876400122318500675258060089791641371081653924611047925418847862345384857912470736074495055059970084748115538089094408743466913458324650553053566104230078484093631264433035217670335080832568912667476689850972427345002008361601357683010378934277982719613486652590581001307398946102895729677804620960531449584511853621762932165880378335104761102914014242829901839145152550339416370633040573560049888270877269667900457715148948488838863270421638124279318301875854651606275011823020235332847952206799301756814068715022716237402955251979641621270346199988286442594515647581471635993455117308769197351635595389489542060856995735190956588421536991001880118582230688373168823053475778196665241686868549122307444595245023958974947230513688998916046960120291439031232555059315894751255765781515812523127702629407865138667449488511014487144449181886340138086927417334495340992052266902530688871705672699929168887827867805926690697584730925928124618682772962810330234494685494559109726403038691490134761292832536719515565733164841628861006219066232575450756148286110977050004742796975695771138590523036587428890818147714361522824437948478907440844012152935128877721884628835293693190818262036533176065105567386984813577847213890741098353812554222481066740337204187976197282352292366382766071787561607544423575715234562457112010777129826607274872803114405783509002950607096823654333115241353900197831135723436848692429030006361180393528981277445660016534453301523627062683519275800084349511844309112397724008543090319483497477669863620463050608547578977947520964739430127078061578129553907960285185150837906382484591365474924734543470270266259857886707155749649309456227847443907402007145229547748281362965449043169835041477051890358984371838823680327894686582575073472200446070356962528661443879268263812604861545941847962897759790082335248007993233066918311226528111784384098243288687103422222990562489184025429493101599555714318462876183773861105405025025721640271716156094287797650204703523131423555857827125446686740442276740383607804124075214718290108906367527713990852166721880434995002662524042882291751164537908513330596590226113826123851913540641619601027262942705466853052827778158703500300354969976247689324895301726977284641835120402729168953870124634942167401751306049210672334654505999130994463537766061656138138893646745183956094939138344205724071950909959335160521559594994025267934486493460140001312728372473482582256051797583784305695276225743168039637273315473189692325428070393575256067097402201547570050618300980113533437965445750546243275137850700771462406782410694392190195309167649840417455997058050974055684459054906867894433803926970608264628858484435887611990052119926002472927035484366964408249337075766378244156685756013141077793675143362845382420380237959063117172268412304473904789161995723267009620777501582409775590188619015524737251362716209556725540572463474419143211433102414081155833891445921064005252668549608840698111455342268438638925061798081078724352717764163844272481615030802268982711395545251098028428683033592419952512771649397962920853669799288264732347968261368258023281286467985368706468390771953866623430647844598084903362089662592927771982869855280964296241532073722975662971318615395591390773069771967532877413169832968815210049318003863800809607155733359686082821535806112822325306560748150168421468820217938216033841019481735623236896870932708157773180556612540497653164907952452855600139634906055462646587738055776856334030861517923081253446318399574035765591777132626834576988846017556605582724113549066924432453629188439826546608769024119273583838486907575885006320076550106391353616616359487633052691491541638226243867999399795172668011269768560934688021375206575491274519379817345420596091328727335026935300241370166590999332100864236916627262831287305304630036873496676471563204829078167136940621390601703148115247885440964002843352577075715968312735983148434406876288275555609291161993699852220964629282075447487577888784587977904403123492477870252173870650427810959324153204049844898358367715772032051052692493737555784191252052869692394568585237868922993578958354450896063561332060328946164870604733974086819126882994617377038135455938488267610079612980200262613841533245758776203997652004594442706646704812688965934953193721343634855941170698725457046054339174794600993061010697473865973238350312136724169093442895582439588423919936961092613963506901433918452525568990229536111509007199617576536032090550339097458444243960131741944304265221495848100765876661090254052865700750486872474276643678785908155978739972846880383104074350149796520665826856269265253345415119819583084089638162066389321827467813624600375090880634669028368587778963785508414658874266166968056718542197158136879281994765661353441238670443541915446082235787716204426742578246874891071151014136162426624140461195701936327491189211722615329595654367743615211590542402167165235489409223045854215858730511343377635232990590581747459210895498369900844519184925882966303497194674967296722742843554160527746172150824458843547608405846867302717534021863915747185114204597944593517844395411733556528688600790900488454785515716336429478832120972953613680258987542858556463248824198149197374119334353449168654006754071258737512819980479073613080698739792214727638649071653160810510758339454070409537002765310851655299806547444230480727079135030028501687360744602056611656799998832947743750314989290997496102248878404685447523449205538061895231042067820266170731432035082676568613961658778726335901164684659432900199075326824441795721038360957903776998665325543243760056821330686170101981179043967263266387897527140664024007487107448119140793521425053376189902260221795763840673672322133053626567978290947121907051245599091693229706216642056197782254319509111685758053801143667500569618465236823189927479219447403175636008127499107433183781861793005687712460676832272430552355168649067940548388834196229664937984773892557205773670180639351524782938897463972024079241462641559833416335489428839905912353447121441108714478252602052591478821548151046627324878792842477287677086424562781517095462851004077369832399561538202794917874986928606261362576453721195219849572487504853592518466368113588251147192430343067159294118805876287892422846923065215422359830006661927526506482555719207559730143702997321354778331223379211586525393050335284492817367462865296472382841621748720701511042917066851964884422341596209730518419413050544076678313385111431332203828126670539509732054161985840425654953529470677818437470981754504513729895495679549077179342843704853528615250754689725646468810342497445332332264184085794699239320142207290740770132640240669644035720618733684855596682849684566222145608964755475222681271896306468905713933976632401237723234890241546466276921116017485806293914695625038176119310179057294549638380078074430757617337989597362909897058430855953045031755479958632818447192058813699776987713708276261346273816182924596720680245879368300464119593668378650764036460825533016782038093601542738216620671729834138878331004051202192310269833828131962097930637758437144576749295217114603871206739952984812616265767447460771449496325187687900358289445484314592599689846546679221186179804569690632504563662367195501489147332574325397697495811045391670735890417488547286854031130746715325033385853846871527918674791386188690650588946096927001078351991448755532351087093355416617402286205022125676494414631231405349306846594432014915910201439596858836058590951282648579296457994553969585620495132912294366288656972115233179990697826552141950189798710065786483298883225739351461933945844914570932870360527698277330727816911691514106402460165779470788954159806769568309256500827878048320624790185634917680149114182621054586944001267733275743429897893151102514340519596349639942963330342497272367758649835036373192123666240466134587653874789757607444206426294297726781062644243622287251901110940333784518336470504350156585640431870904896158938028085362057983473172212874813994320364651363530690451972869417375006942424437902361917190198774614409838956932264657841667874270569864572253473306000238835500971732025843810363984265414070914686301006899878740741269902068808704396692738950795242137982899418884088797335798676913381339187533893628361391723221309950346202970594367556954340786536799815677759690938007825008001995683427769571985444879247721415593688412684486540968994278906260834610516419316366768986519777033630453329776038650978220152270723620083599940389794195067741150444788743025015160930511901920105369016270011889723555780568948560142619643285647695939159602404222207062721157976086654578922230052378516189546597930711818226497249724806620739090232505097959002638997937427536636700735147761600374014730179941482553048268630712654472010728435296524033595288038378351485565799537090651406657390168082288627408393475959020535070121882907043037223071666331851852832376741313677204931179322448227009777988728808056682993956871239424610889243790907970906797238678913584358100051110213851757814595779298727908640964104990811668292471251919064872846020772956122674490059842832713048344733325874917706288321659656125993233944633527897614528295351851573018374480358807375984781565267452839521603957287764306280921172068893630945991980895964096498182988650841419841673243036468525440645432022556435030457854216812812894582738927213490197044662774433186825296456372451766898274409978847006952172289909410699873821463921576037803074219289738566699454689418516146687816850786391035692451112000582351654924143042943553073847764827511646361670148225171654205449287134348768830630682662408804677597577764155102207235590747124846633198242236712148880770776150399237265848340773340215788769040636268295962991115686329783859229733896882518325985445281883968984715839818229308156137725388599541429943321724213249757784846251652099952529561375729373544821393326146628842083699652480232972338516897103342441732556082746579589225401650479642543411415595556238696853980276607024590527160814286900073040559823502909202998765318750703183151619414183081098773038479887475435640462428073770101530680310637689367687975210818397661278826559415914338675676604210266634686953180485985789455109663478442554804535342374187852254989482916360612112478508714654699936277850659988621873811478918251942616366091357371904609665755045825034951689693093278328969321110978185771596847209052929803289321705931959634739140936545987823376344962987345647581839813592708930246938753957704619078704636878122220408441170407749688048161497925844573498031521878449850509095169075411359538019454690544743485257164684430193718394029185171262791341758074169752121779663183379322603196770844654596573465009423076995072243101170625936287756146490693800436272529336094148769190215745450068377901659145673399010787299432230688727510384065684804365791365822158770977456089523893249074136774685959866816609771122178678195050549859132882672253668145723567228549908643708365989866594574471210992368138705116541494359524926062750834849725998749306598884726652827144953208579626331111821828042136740156606189015279187177938253643301932211563994875347756370165683005883752112116208909246607388468168443941449966607522165095931929191451386942229393586230477960096778723812610455821683386864336954830073038965897616003224864339641244447368822873184345427348907844475840617660604997701762003112374284935068231910578592917021379156922957944599514886987940995174616278220253967818291485012213282321903841103933664366695996097602514283737206378533814618970418684679336652000687208225926462159651367538012535365053842463528562538300168308627078239260829878722576915089060817398070913290980613521339282691383218060221751091795828851561770739799633293597395613565810172062850354758902816123849943452524673131728896153357999115639068573722583278815439485815007367050693686976672081083909715250051038629312780326437393442545275129227659626163455499457228733452813176967097769255990928038653931576619548285297266348976938842381435035759313916412345578070302829030299566352474865299320017610297790011798035346144179902628745505933965711977900121814759455487265254041923294617164753131910402402805366506777915694435135838949924369451972338391276698090840240958024274621221758087455701224716219298724418874367413520126267697152234880635843810136901231220223506938175357116108126587725640680219330738103508052502361251594816528515870408476467126836731510872514637129588372343959996453617727211149694935988443201889714655460557838988777598494293712983605764595177152344078595938558884728734776974271927750562501211168155225370101431394152014980890130114251291580305248931881490247878745353491657879805761177688503748250030523432065550453572597360599408139930714175769905942097355887819056767787952692393376733385648042453443087113763376607827084483533272146194543284665869627891412950841362632288572539522259506058161626155370192713106958010489762260748669334864760557595909064421964691615594653321694964159694053767595156662723999740284754165905858433632794183134215080430264809521091789582561841580856824410842302163196966753989448994461727638508826562631248612333544257207522420639038319749474168883744578059115649728720225305796313161772768173049570761125085577041625635439317636967670080160757626815349263053318950586185483215741993481859098177999958497663389997052414053140959950072111159206057990273900205280594239596601473463477696279390331694571324328217387048097692432148575847914520637999717166153548435389632548125948596339467923287315722883372840376775374177921084860918132829007088804569418410713802047290922343031548893377153848295229110543940922740097230179998920332957720400152673882837945949167573153420902470423244913701036703985062876531809491552368296552200386549267891910745733973970000626118698816297499896740458607521750502289379501126623264393373052113251031573763346379804648025271751571992608425656115083871842165862566147023314330959806109886792085286781409647445049521453983646282375933125297684101774795435007009601224513972905568432047427196313322657855396465582625163321762911269743248999599490984038221571358301017372944637876144460826823688104312896728549795452009276901193713917744398809649580858365089797448979821658951937531562347997753616792645183892840274689092318679807126329078420103327084766767698411629431659502843282526560830347343727918573617180248619724031031029656003724992578838321157439808581973682021489389277803015035590810366709478857746187539419483511036370342845508449684592525610986581004925569613815482331511024602954035648456111851615530274939425182576453450946961458724896459440034028078968886968064722354145572884879901850128442112318351641334968010963651293207283129111692306547926207370686728869360723010271661705278940216415017299211020638644376898531423838139053816835038505614106773842645785135675266233602982114469055493803366739293014098127509903635447707586449896937353258235756563163192890307799078227709235445056743640751488819706306498030613872039494762358145734513397353791646205266792093542439419744161592752407652323353883651447539198601663074024059401586272277559530251116268005715156956639905954219264045562490206956023938238454713488001606650065237197054942571121458229902492674962185420517355919318997952929407022711321341976433282337221313878258355387536577904599026627733945536529538005315130764264259728550339419365377546110047155297917788912467235721776137642759668200317242693890100493790515146588330270737079005228364672434733693608839120332412711637756537616693517435431202705622509946137579943642381343100808044659845346191269248248946486588418199766900996816173046217470617687892043807382260255077942463797604161783292839228471812908245250084754789619177268660339190252799000251445203549565506651728316852846003684093960997077067759715512644243192249201434065082101300548474390488042400526011142962032153514030555975400258117322111299163831140921363701462644434568090619638477384087324696345558400015774431114649270055018615095480437987079304306369852515467637242394799955585308211176574348333283327007084524922494026424848690995381467485074979366088143311317032482221158387161898056689613659173854690553714531719929374987566591109131552575521347866596495680140315363184651921004550064843597156227810728557647633447106669183470015035514043647013119228109366344716521652416901820210666205687752760453845937553621630260713591042965130542004164501428294373427654000158130917600527693150511045865781401611637130598738707896664870873838473987825579745211337827488041487565597537468623584852269640747658357638345546375668851967824413201894594325781659661509020930543873437897406903114701995762305028848576266386957722016709218797214359075741421058413386888234463004766917456000159236491207126398297585715684634176326392758570177348363998558993072583693430818243902488790486691518945538764236212213898051663457590023107866385485860321905726340465576002555573249147912352101927500267189416816935969925999327229483931106461847838919711698702485458521882593269095366710770713674697379089624332412206644511742667359407468769379321776726490973029832683629114517046515374945423588300543890645666079266878683129892200856589283538877324951267586470134150960625029759356877410947168120988417361926967444577594372315220548319565410929383353129611839171555164195620973660941918269976699083244995020387132251306746959853564339812565536802442755791502115073880334488094619733098927660032073485481469270852258090912556509768177006307351446677957864065619169565540089924344246631741101390983102481214832323148936477313366138987248748902031244448276248825279710761883687623080805577053707638987074192398502137589641791471686191416400202279324234267151279514556611699051324695850577916530936590786927933746491515271547386596770435359992156708291095049175655097030479547472066845186191005956164055971061425882934611753360165310092271047704475883563370726061579845895687769632862274058929337917931237774186552640123805506243638982148003123749091370716393879234639190807723536245523910238435468791909027211544918815567798567556001366912278401025325391473826567474052892541909519291792638751014935050236016463800217331837777304060802722841404048866885538479474304393728632601244422422062061836736352633904811260285443311718047285227481805562505974869232615573162675263464534865414728896127900485909790941293555508643268210818718715672817973838920468618483016599180475096367756808981629922953163299379341876830323580826542399715916700431989872812006428983526704678805231627256803651611133473096183417647680118943083697875015966432924361437349907096383280335871989500270200475467461850124613853982287385592112339180037200371956876038307033233492096682697579329214877665541906792977606848365325535089131096283353204693363777358653587362265702841278517720505846928025662004525620659850728927714386584124740753053536135202709695156775467342975728647002836091731632990379605875170805693997950320514518740120554848397493670357055463171644554063544115515780780916212980545111307096382360356942807850112319155340832430307359031027691010170701976087336281053777167609597888990840253889159725836912389064576424952893129775057315536556271370635118230892749395000245421686986092063182162701982841199520124700759117693671237444072898661449383113217983779699754642998984338248637243782150540729671838262542995995621030861986958695011123788700507090379797948168382273916774523553437291374301218125403757077190345990198762836259530604989320341887932304063871398343341232920917965996770267381599996282199801470101935206262262792028895080575745667112426127712013721030690193100831684751962051515001034229564737581003521191634592521927241509159571257069071029307159215484967148830532865326041008569216497060254565504471550540828413009794534818801468927829131220517443113060247851852927316147389572375164900190526455717032483072953719331919393103217438680939860365044591385212357078636161937145347857113754623181434710986531866172099555938681531110909214001792670344911709393306330666797402140359404975421992463266401945764531005030740912744101464402824844248870177580652515409409707603705278458276140185867971546401866686399382751309408385650602286516166306699978311018902133440764147111275301733292949196001425850362718288868335856082446687333066096057684605356765937438580900358789750299847468705667733596541793996256853057500029159254189442136563905269967417547759708761359250494276077082115685795157064880070775725763771156116067627666442469176424436888700321900801862787556078980380212548925057389829836412625200835858243601204395676514079648710806255695855545908135176811651372499029736761006855035564318446942135590765837478378267498068725695642812159660773369476206036288153178929031503406226094390276679806880410621421433409576639271830590210371217646819833584143209648454979086611748461030011872551068918426159646631908119165029658085195982463578994658256364463649259623303523760382571737714509921440285893892557918155144071910158941142414591299714986119939063588670947113474711048047925020306101876751174127006041712117609324969171222905500934533917967462835432827207746390312200344966227244284197936937442764667456915153445742537814663480967022665426722767535206230977894560690763210376480683255734210822618974262691150553457726535777765579827712889891562937690666427114921735413604239596227681079734554558063277554340089963065779688243865730581436707338662595152416409415248203807118176369407771023274036011769252085638073726236671476186635081583551265453101109162554760612771341397674589335542428067491477615993786853947730345568737646951757004527602504577066700984293612240687442579566651471327665094306823920000631478210148215607248284949961309482816697989037035660993165455297045112282423984613556531407877860142658369889072252386343896851725417681072466570436146319102382954865912508391083506286758031180112131748909964711801405618751354077200037631696521353217860168097819976445644110089314197267078518719024031444014142109503849642711413226499505893434467704622241550624370663502344530074025157847833057305444717773450724206587965669613802891925485159463960259057317918604668470514061226034183444034789089415251129833458961886916466949126028373099544505276053486044363024422940797921757183350481001046209878245463438844122302393209071729129324385863405275579297211580848789042021834596099223729803135979646893786345233297739783943287202550897777469990746574089119007268830979264028891928099330917363053115914718656401430553939469544072973718977506402265777158493318463148543134560131574645601619503626006313524605696121640871312519019031065032609631757432148306402375881982565482077130440414506565246244195066709263240679311899429940524237793243527830122959641189959908958527029644714745601932053289306317416212375796256696913114594800250238310915121497263084083743470518324088038220535414005806161522499321266176484880727349599434948584489959462482021067020439758657281838431305000288169581805791445955017060696581309749500532940567243015979253640977633717205997553234321722210707481528619937780705711518328344361528537661440376875864604691677961303112542018301980782273617905593824115763551942947750461536417951740409496354817161807402155441053743950735899769708556039156362970647152264686160344245335869854598827407653730648217157672901446183096693325726307197303323815037720105580205697438313476415449677173920919107330925352647072052818754838457658072052497117455800799334148012707443750186536809359242978474559847687861045043826805978817504106086570582965487184167310801128550519360111033164922156716186275760834192295453088960277898543612192964623324241196085521891801495000277784623263881693287152475116540163041808652000863383405375160510353620164579307273807657480717750695255225713226209647783162902980974554774315994016522019176614009718287116505412393405866584591901011063106489920679301523361295508517435842168988467426834893471635503340651132802695842989350900454026931990117051542483372002576473240669190162927361996375307481506585848439973373088740498128256728444660830934603026282187482722655008899405596847906609172652939329648453541046539759900643663753942620002562472639663765280124157496634021595940430234467045730242954179959753439260054746101138349998840000695428858732919119736796143749443571850725375764288574996768354197767940611772940355293437559283477577538788281687946899377822721260381055279085251729137710700458327966157973116731449851247298907151673478167981014215638089990383074589470986124617455372126439349661866444696121357859107539835885530924146817473480931493266002122821609851971951469656921961021950929517288416337192078872134428495915413960255772106447481246974852210679335902520927910989556461947311132900920537754660933350307839390173936112154843981786791390171473199929746129873580907846029753499278949704196204264593812195621055047825997152746378412413386546273085634789161421633170723007590747467662881036586935306123931223023448868800064205928676663427847223553301239147073659754577408611939990693800960233052397096619906002203399548650466663806933232804302678163515879409688816708094262642605305736488838176059042365674352413056618318005185934495870910722860016050603995159970398058715368111561546861579316798989444205930267507923185835126025342671370538734662516712258916682076383254967193644033330009781842791276960920307591812470147264073368674660938682671036636254219028851714959899470802306867804162788698223895260922764922268456274784659599541075301001147902520764034620478341129213360223326267482286595895680649436809390943198459952032970419644065436551633578791000500191632372601790299454482073078056491025237896501004937575395765694608122020569821005555832565258101177277812692379657826385779558072018419764710639358660212640279894092932099256695371142877308944198386682601412961317512444932510767717139287638866278391447491551750095661228879614791556461032586817561102103159813642951342182839031268270223046791068061076886318849305619213337124478017965672536947307924887899625496881631061057377672265494881329141090816358591708703315583486939102769783124447853411745682911662432393861260698779793442712498237503626945741097691572219912992913002968501953953055330359327247505392347632284620106485536617660790664749873808274333229285259704693689875439332302399824171341634253902188552961492016022770963170880236120029404356156501712436350028835466510059329449035927149700007685555562192238800855765974646101337211740820845430458740445710280665161684588041651074636215754312740301357075016021105420475765449142163956084227925574390514768810538200294346113177124313030626012476437055017000473038416608669135521374011652082157918334155359123011339647404031410825953382506400220369505826680850495423329958098431764233296224824786219817729226944311133438564173884016518426174308093671629567106431540700625160494993087263749782687108958397594215574158526373526680182085112795210931788096406252219717850084359023366513830714389231628465758518566735226250736525031917288873986967293456429307545220193414632071799851269669740702715350474306455208522823468017621295166337649012533355753187308623445963860756201251691474746474977837762122262011893999744602799005863782016433420369349243242822731183486361170595132683991273465299388455479858854624321164864462261795035131374154592717725415884650741181022446721045468014928208141692097078169327646895370064180539334028772701417206410657409074182152158173297251794384019452820328259789235939387367416943382204014409760347276253787043449285716999759483647990798503920579853371226804082739870104871996494350610523991787732469877888016950894593138602066976961743772163098695930916271499394577910169344059043482786494834819082305470061022109896696408420865380696383557823229674741006933868384388140420103253958703796062699127524686789974430415616174287591389614126190103452236118574502053387058356163747417362175655871809319440568888457194488139488579633213766873288087664939505784490069820944373016600885154397743519363746490816057556795216829921275944092043158900809124201614527565835631900909470186880629769866287552947036400166709512464765896105563568580888288674159432744492282885537565014088062965301513160584945774422551345696080929485465216963466617539359672551554245338113641740031910617301130284428811424381493448381981835759748146822992942272459591909068851171045487233151193677706823553473628569591650079572999635290031772837874941123820776641757560505244215741085121083818415426083269454686821122346296824788029462960231896561234278233472461120060639557095203384222990386073721506952112588605673651336364974852960163782067635335904283116513246571411187637005033063254247314463449341331904741963640721052480934807436478456785982209045325206400799884211083676049721085342195629590583482485853328055505258163063866943673535066133133444793538474211835971885916185436001938128287601405157364259749461948157861901090777692484472214614076353285396087177631395587671280597723856370441400526526148673739535959618699827775548508299116869090212512158684534650674990179897931361327279235443181253308999364414286549653744928963518407286724899442527981750883537610475342517950830069144471018865760794950744696854543662643035934527819526747203004864621933488667213368353883961823944937792718641164556771264793924674391433871636358307237976176333782189443796389856557861033549338485813867603123746696308742806558967389186830576591307359010535406477800489455376341223959992394207671012489083073104590295515341051293716480589688511507292984211362566115354867190251537421490334664531197435580603696233465284898425247248241496001361296608627306559070783929999425748594318500016919645286188836019625518559103634377554841560971331962280352987711227028725010660593908879745872431126003663803799930212826064430122179347653693861732757810656783862918427859263241065558382665940130754077634811869233508878735375049381520890680300252510273110877204967791372839612658905186233458620076116722023769773426460902817259720519583941925384799724836149514650745349240040436377806656054616765766414239516170442923991081233247702026154591103145778095218969948403677554808902948614326780559203855223358770769956821988283842449528233375016627545369393675125671581509095412492658200586349597816219880005368926395471140004091769944073599163583840501612515118069897847653397815839668014410220778162648673112845160390277841657497817053807695884381128753673220993311727577621960696956814758426438234447100019695932155005796688095554679167262033421937158064182569350535613913210853663364129468128360108947042222906937110796731940405933794178872197773357398629188881658027085159220250667334641935204659326705689745458691215640525207072660884796462582254479656991581561159669821123223339586485158573755604973096799582218830980716895948687657733626009544048478419887739350980365315552956276922494392582948840846458106629794073258066395962437492106202081343629945333992961482779301911788757190859045204987391041512995658841330654898478519429097272638636902454100535727772975292712102405591204400181182532707807425540644341987372870746819043114963953424541791600072242950406001099467695241686450388224860187542994116193316778582978795765116766159384940492499656482447843880268997127570943221805479152682292633837519952440176577262004377228469171143866353620749706111935078573774812876350568602332229602705387586180432900976909729549657093709881321179030457666310332438738047844229099488556779649103151028168765215656960286643687421420707850353250084114666051221226165245339868314673752665894896544665444331205423258569001182900317238384433474337672464000149194739904107775436595301979653659265029997280876952248312467330590203001466359010982064512846605160283577486800880529295514011656868009677298026778548548704721459491436685136321097364193575385562834864166680209587397067023580641844874220172361906656677570597265011786991749571670609976002218243867160663275798135036641381006792669774420917189281482494563828566635660486450185464239536822490687742741057669032378788886838788965623691188956211015232914730697881490539601439169206367128752243675285820380000248917443751151697393540738134838001129742669464491906069255643672048482130556206955438077900607794604385670755313254474812095310119395339833758534767268733095189429962340745306117740533339582848559153260631332512957141163437187659112651971730610300116751390566325722468043061807428062440754890535902104141058563995395139359509849165954603583148372713903988379503791360048491130019226774830312890433013856904877600246443090064591818022813000988170260759043889211794569859977548098028718747724655951552620485024028889912330913587567049189339368579888279803891703222915848140716696046614800176604550895582065947900292489181510420313583327652818809920285700908232013532671583817526331560012397377872740501880763156659735027719452790780657232782669347473571225679165215948583239505133255997785340007331108143006961648051710685493242042319834107918603915260901004506424618815856232874620085347233957044369219698725506234193646849824489179907400621401175906801218352135802271710396947495831903218719432582446537996167555026299427516083834915714947132114220099415494047239510914385870043415304177172082937790323102641595430956342329858425512356666680661560651038504813705559102543685917363527013208974970486873682235556474011044286275660998549712283301628237844210091560621104201745001853315183500742206544120486884252296644718244320703193542056585386841445168789373392810369701614282391775002029982037687317797069432422484774300064773872722984006179698189530471348987375299329667224524458650593654174510490757765272049869588678657038426450297758594430355183963135926028567800410929141045783518531807785243027539356570038096798000020236329629083056897024645054213451940706567958887809037717559622194302038548479434564602920170710270912740905210772360621848196439547679101705540171808563654606908543057156588093836535481093502163247915045125778958042328856865251047745079845613960704498540768245816730434314526488849033083003480847189822968099283484069886010342669963946712362089790873979035275997696193834552745084527046331578345395146127389850555625402795005754830170354599504015515861140111004467598473390163549595106369152112970207476594809073386973800343754253683237809268332641294268904229495772801053299311953390857936143602360130661455622639540849934378012914975539866354745418960419709109818454805320015672590286243646803269890545154739181233876026417021341943645662048700541929314453123676639458452419623560108197539174678888180431482018773939143988999934983979330652897904729772789764157993170319231242868362512121454762800145603664517230222132762813981398644941178095188215116277607703898354405139623212605115734889698429487275099574945447299096384526403262651436647588426316274354156515486312980410146016486867236471232900636080641297142368107218384508315734356938880223060385796006106953162305246365598996797360701820257151156327125128836974804226277373638496628484108067102310107575790593955230084305059964061942394115119093119562576302602372863831401077208585459439467032651414857945988725688262779447623622436723593682671922959633567238406781576204085707844759129247832172109761542820232217329693544742027582659984783661526795245371684832718784695376534223194258711112329845184824718508925409281801907512665994688568333990842463490674882108205719876417160882851148592539576557371639611842108341681043040551849853975736748248491878513010588985779142034145607063994485195528507475246515535883087815637092411256964187166365207367046066315692414133105289228562429874994558341843929209482024470430997511707408436535336699121959500522557476462585208838672054313313982506855066727957111164140097075859308144565660874289680080149258041346189857320609468668863284483192612266979526467311866156340152888144065751606725424364921009399530777098518925644205510115848065831158393697815838394979482956026794054605414387884955120028314860340775786086601483788715490976753320076398350026249783488854794220006753965501302835655478707729622504122710870003800455867983569019304195359256452730792898934099071224152700314477641100766912637477066478943510518367413138055087476325276571201658763680899560641910428309482895179381671521391818012460640167458657221170953164168994845618438014315900940828450821018018031205510087236461275795748748481738603551859602546915568445767406847864138717481545245983981332026219595767755641448376698829882455385069935003875326134088270328727131530259504743558876934784244711720279502947877423820268072559399483063373256368110032261566575327248811759861588385705255387582442130000936936640363709474460642777288394180678822906148112146260950986249419007223051776062265478328578269910587544559477106976120135988916378294612853842372917203488132927417056050434964777200723490518992093831801929215252893809680222415753760602145810761412665807228901644245895095310621429234873280249115423883308687671388313969632505786795658325372960731521544766323433987288716884752567853696864284674184459329867232042075508347034249903706903906582841282062626236564596034610608522060283040743030914566549809049515348046596291747386986824393743127513022681382812258604563942840104179947999356695765971677426797470202743348573208838780959028644817657226414236441678988649581198527525854517088726865658729838691509506724796575594309557375057182328983800158637051622919038973940673625553403396174716235647493771370365294806081819407326301986703359204264236988033420887791155004181481506556369939261658839451566397802848727696911630418575164356962327667821144247720501260422130898447359939869583968961550515084307286175222865499231425503740386220415580685114547184485297070886824810836971428587172702563923100594041318163908034487784417816087326527419817635381459079208814022713280628733728245235281165046246925388073826541615590977308493095966433657596488777990998402318271268267444896270233856160151702523914403536462496081542869076837925237494388811423986650258978217962340775006265331574410722564316886707712539586497830832838002206399700164722249314304913755316357804446981310825388621476046850390634990974274322636093172945026515934598810597811239199247295507505719883355820630380466313508697764776754400616335065236964310751364547381270068047517264952339246345039816001604015932543798542814483702712819212547128329052015216774800643026686964317339675151926305642211408203877916365356702244820102350570742696372940392044389606690426832964139244078942110356824899801117757109274265381252072511085283248991418855339717991357014018623635191879016660456454047558187333229513494543255728338913245018517617572222026304850675879133114277372309718773343165715083433264641777153901476382428875688744352335011020838675136470599962830969549555118154135920064355903154256785831262542262529719187298330756868685463694911024075261270404860648424079104677729649181841276039432988435121016540694450597453939026696406957577418219846833115971352078219977565993556416202030439559431553481023578249137271430612452092594133451843445421062540075583150569142681005637363316613953320818308145183322692148560357427163006348230509389407700401328316344542695818311347652191715790454306482474753058248829744905277151284905320289722648916153475065842220951557535530490661425224528197002209988784779587583457255048677393863273197973105889341672229365467840759450613711922329753343730397434991032643868926221242166893889983079447563295646004514799709060532856456159059742592737933173622699283733623310423813129176695570807964750929241059093511607795371956419199251532454326013418693073337437864630928115092235666174468946559939411376573234202368675625073522763455537131140550861365075679748684231528767193098658718670224355161288976830127167250734988362015303431544902458560770808636911769425597781802655852630366335486207634234661449716317240655240174671151795931822814365197948471662444407956033840930492373326728914865212092319720293993616379669484390546543287357853829822162352129398392805298164998427735348151223197505803156841353474610041260877713961818358307597969061089503961848953728467769981181224352441449613349927047206088381088743246189289969817095519476754339937002117976032071640398922274376438655768809864625768975980092129938467323978417336070459727186170814373791954327721095438982389807381245497877666029455491493066416103594740188951754407613679515279774050364192480946850039473867607142671490733522668812546513736373810026496310800329568862537391729365044397610489178083113413996718135572931960281656979641240510578465236851782615427269025410729701863408638748079886300903358644493823150454578957281077699015780439992891820141626198508243904058930657586549235131629197972443199697711869255403430547369645928484473214162538455457127994276402772130610308226889375289932678297612196794311593716621569339879064355966081955693650228377726270558365156290060101217731311430178065604234283046237403861612332390439115852314229431800470719511500207030509616871116829808873770974972372986210172744961659242132695778807830906983009188936925858434302498653903238950942625852532530654692251931735732504079371461612861083581663047520461047111193632535154779856376365304948850829200244194973455845579530542101004822170807959508994099063773299179281466461441932348245800898003621827661079309483367644647256571214244830864309482337904539588335829265268693648985052607719356181557498547292634676673654427769182663936223823505393259458449173315158331918419353853649513712090657776636194203487909742793807686241330655422438385538415636619735688478315215881970343031419619593388227468709514975154557465300532529981624309506748920315599876344081432061813836573102367876898556790068462806771514374618064812660350448756787449295285356109751287576480320620091575980616052645033671582756331036243752265805909169312659881691373759646256625575052958757789259026356460343133089377017352450564122500738532503543418372408950380455459267470472867880580005645868252551502202956698424722024838670228405372286408552264968606169412331164717638614499185680242283027690255811978807361212822354950546353206997833038840409950051485663721866413259002751234563045706493045109748867321456829463388367035086945435970339210938379618248712123956597223603208198692799462733863844654442433304567829826584172331982620561195114912293684459937833763693755956565376984777555862771830781078779336920984015421963573843073372662343510538458439869362909533916439716019857824040560415337221507909924290473037153914240201833692322178343263459971502713641874674538411034874292489276522237425152332365141219094462350283080980248401212323486553873633363195709109029803069291162501270053299536342158098100001833871029276069093020019059394665492228923719074139247350428678028375365795542068060641557444107939264824677074734819279126765675029178259692923379347736096829020342723046864886956796182822709882260239973158115875807581344931530840071418695339639172325606167037535702035621144950857929401948887039282321780071146518562394525603928745165905920105679564278433930130828601321488051316185067317443466959773985057726788300481279443482935280054297073816302982842190007907440080176356206177834868509258840298899523186491860259422796886849415249121825262498231398534520586535380365856994959440738402851499863869190624523191107231401239179511421082135328799108481815902187198436192254454606663681082755667867343904282728892202936658794139729032379866719975161420223802825123825012509661096584988925291394971320863867522114056014701147081550396464822248827019640312744752765198118032309165676087099077345238637861729592552425559620072974459332750544161940734176916713699711079478345579681964250616348566523871351951712834634458966473215417988310287674563348371547456928726833949701971256183248349544798641663854326249543436106675282547730945640372724082404337133546042260209922538271920564374086482248948642711650830692883509087653682777379170483684556485215459011452627799288719252069967091120789989231743921852782620952834355538938023049362869532580375875187519970107204622331281075442516918573076444023874190393968086607014064474666020709443381457659015405640229705714210443434403209827083434895931445929245611394943444891751001938529378767910590764912967048733263430451966669639710689969187246744942651536591598200770786546441448685943358928499551326837830489809499004465350855160252625267611127148957117350704060789274790996330803675385002355521385371387980979296217641367875601341989341417327727075609024143209632373529544058156714802914031974633104041765414388560607209564887023871565617564496081439292481584516872766748624672338492082232754867084226691195216780278363557402134456516889881058309025560763982321671222824969263327059255341609947610776986648220514231896545026028323468981659309974376485107259959843813571740222255950879354838054017778031121213955851978049815151125198207293630301504359032689128052298149014623557798754364870638504922863114469533572877766921501636539469127317160786551813565246478258329774754486796478473224039895838484428919524955438836745318535458183071188413131441906245493405330127000584744476301823707301669059190896268448464776585176347968642913119852860409216065366176353241336226857749034335369381306032481632223980088659022130266609689166215830767683496157009146814700827649813009364032844373858472907302835142573540532429391171957869399679349304032736958439578907970921736676030357522400058034752530976077419585606862593536322963844530554494393557437131221858798224570084700864672352337335850766346221741153077162072977797176133227825356377515955747944220884424049417537072409915617307888621145752383738099367661735644439013665888796622734183676059554516876484772540872012996987577367690757095364999509364177771590811627834486721666935934883322056981167731921639518163918446249887404626733993182754575627845485695955992971793592154963537024068960371408512847160936409511865088229888447626230458008976341700205591192204020248283511730076641566547728331863846513594978874514663359857881386542394943604849545259716119484804148245163973557881895875408546070266189812454671680702939051847400828280866790392015610647108593575081948717372673491499229528405945365089968217657935288438213571417507076236485512034332235688359480719493446351257736047171094375321781428817121246027454464148538787211661545963136643257389993293097926927047081804455310480344571016554380221746631406951727372700024677607955333943110427613592621141964601948833698709002412187488929589697990385786129947016770543396042655396311494574468166349808931512484122204441757411532211366239874485347135190468618332908262663026764347269721900466504699926049062775248470317931089510561788239999651470455442072938459296191241542595697545646413152356207471253793630470272234118554868045649619662344671491162159759060065839540675375262717491699978984900879027171337937594454958650208864300038377867480484296271407524965545143319075554823717499911686451429654816695611107960051953135621972957330300371316937413642511241598358201937401164179761628860099451981425135000056430309103381719017122313795805998369216923982636832791216512355049395075854743276783325192963085252164208728522340145602113745066864416998503869669090722447076611130913785838863041929492806164884099650742029193534891450311799560423585254414781485982388391665520822444676843957037404474206348897974644068394882270322378970656568515025544892469084141644574080164621532164347167507778102929970116450631733919200192523982671425755631703934963797738143596770376115475154342963000064405669112813197732457496438819872616549907422222914037943936999809818820184676368756662875790811478078451504700177834609235424168009829416842756416524595963856602372728995375887900936347266197227458351105038902530500498542552989968116263071177822926080324797510740075751488716286789154923463331980233177186186502607971667646590698352461686159976051283319836640830131820553161445271147281518784843566870149823302437551036808004649756105036617267127243730911676179885926411858517877338218802434150018927346060048230070532605543981823891716546386557848537781278575385447130012839584730305131760069508129100814871426875666697875727738111306847584707985759261273397119701289624150257049117670566483090138447544684561566613882765738248189908943215467383483533489057551161038509087196199796123748813032520368118871181639397222945251500540815926811676554791309995529113516755132466574448578336070783574051753547173793248865360273658584542972471419154857768994940199024484016943299011245649761241816673808352929725882924444890642007764406154137214126247889101814688192500553642787762687997996230932377048201614506668653602931211653545424690711430273894516931275447407671618928074566489389939858564851823024754895795750002636113007627595151668432492734032665904713360450200203958631274852313838245408107501331558014078119981103414839815471700299735852323102688934769595524825832693673618467717435881824149558615311380921157619916126691091972741585462713727062174432339208483828569528510042699730186946549920509049505482815290471574758631679424689870614256741906643363498382590911129139081846039634648514224964224396298084045623323200272537854970022808048673364087159626377857518834401009945568721258514623044088817527266112430055337043087298863080976327494650191296172693661314926143056075534022981811520306061867390975012729143129106370249092446195932183772978516448176398742572634039625607555194915539547482353065496298224413299612067903266642302003111293090358195034826711584873166027707134410645056024918374132491525195033199300378581917821485103772738367565424549840535280518763276079547903612527002730605900420194595038634470663551047052882324338460134162375116962742815198256051363100046139320984315284629836480076795255865385793387519210149053749354783804370511437695546149224880110408430046550103673430413853752182112144531084484395026098019358458749322213050094815673993535354915909734497663644212344583460008084086415749621787646360935913395245472575539233835347776440166226185592544340242777340252380019951048571584753598920157037511707705106041171390900713139187753271770211929675148112629361331776521725612749383982085346231320762347298800149462267738759827146087566708961788201409947379070102128895126143569524907067890719836644239629905609663611096357990591497791288006867957297924018813683255145062841661665674568439745169519513858032162303371057761925369026217466718052090761476089436008291827223284599854956798257364752466209197351617452248618065083140229812559689556441856615634339248959610307756832396462615050180851176435185320691172326497794916376157738837620024995290817915206437783485280749033892147202171967144207865080578522698780958903238457422453119204833954030797009311971138955463655980583024553869092448892087240442155295388435249003146555953058251838862494277408782573958235527697133947006241622414967910875543241635262495730045808979184528468682044003329514486660102476101608577019502617287121738940325126381453297102341601850234562267944653837585043206899085116016320571286172650287611658425075582393180642739114543031245557723679220481424597768001065337862627000957839868813705077647855936660361357305773692680334519835178058953556085667313414493346130596805857672607302253709545460436525533926991510563729716539422811550836259258527096330954928195702483698551791587991646131371595761473397628493123069879372357682560587075720813158314552628141172756121897209395705360147567064774825743060299644987931538384525777440326477195509259708374732972732786941492777127106188938166562692390579295319961875230878072208827346389650580974751609701282657687748658062762152093137457971859093864664204920277177353332251280142434622791069078092560721935045496655755884497620557665102677505338066296412745533034286727836881807468753755118153928942055842948726411135503164834148654943437252071716664580152059284373049687231914385518833475798400664927846524331900113594621466192157429625080114430064193435911266635205246846161386799475167329044307572392570510284389779879641341816701778014922768701354076778928522300160408448689495535278529225260721661473168709561283353625291270808721200345384435243961218149308941045067912923762975087027489752246019265229806081554187539893389766787970632813862993700233319060421646275767096703152843818497003316362655655858071944402185077935522478736452943309530139660665549972037500900852979337791427834502712963388941947923027109616491436781634856075080928721085259169136253524523578113713539662673262130143384287043182621207410104350935140764831236408971642939565115122479087650090157091541563849989859095364740579567553260498452808362460766154496386403464841559862567593000143014046886535733948001294130696721837601340350442870432400018289101630097505595042039703036310221508648758397474426428005594786386394951311755822301017001350698013866673315180737041566376833287726814613044320982355520103254708993062197500171631789229656138689345601684461239727344380247402758857189572685375588589536947647250518042205061873428776849891638071094698640507177143444641142592810710792722749060149351701324830968910717278560343928346267551143363256356378419662576278682114897668134202338957756058909303050440275012386907454340848447624040796592215624008945742041157433782427565712991921206822368407974399797677080621249624720827284413075429416251661296704021158903719687786826079413363339428644031156071228047057636733321568032934827847277667610585092936067931428845827967516423287595897326234340594047737522713273726064234132341692323668222587905733096745131651247974193719085214965111939520729930171545180961309254357892070196268356480563205157456054405106234946667523406529192168644734457367098174912720091361514837184862400945763032014858453589683698106191076123298481498086281979734786461867529900145001656254859207251253883036186712585721325607112723302950693607945286849638580716598339940810076074019618503349821495520104518185267079069150997220504055541437880364323260887193545812335340078167487101959999889562025127121542746437342776378707559354601316508282019478530866574237238251456659996454571760919360525642435655834686823836225145733936783989374773543266119743599187296973181171590221221445279988356392903352220136314346285563550242970709156927641059872460484156224146628717223624697632212881906551577222711834842037538702268960493657725669785135678008788641326009377216509183233529805716011901120595220114898979297120267588703179000814654855212342395648750677006383499889518960033931692791254708458819125011798590292828545561724604020042092530306107065083963767303653881912789127131239239245629171433178372545080200517164467099547513311250717589531107363185873983510295371168211558665012196596247605339210951553849655143022060609000140570816384054187785443517593351578903702274193949641604694844756828027704127563214925149100120795960671948584582902081647359740182942729703896798557820976027307510493603527355201108709673488084805788179444885550442863416566569616265249417833943158152661843522645515569277090976510701572738667157217363179419818761779954193468311487749821571505437550788301882612198751266098596544129795330592567132435822190531312113208600618026359335574245115647793881243984572204913881801385352802234883166781421357792786754179459440921607981477355982340593998638621562881228213324846799122830833518618908669420982741525359029625231668947457639810436885050629740866411558221684874562037941967193712227201861040815245990357322661493185739364129499053781487514824802501034436632795756109095362547174072694169866182514758649210312912973671257637138828623986365026709623044591167450522923864778301361907573734969176163172488511202791808447141878882840023733397373362205440079982544833504917259829231066759191630103824235396793313924214292812328519493193991313171561966884051683322411454158630760941412200479485002646540649638395340152020712674022190737444048869181767632509672716602278404568617375747894566485136628518055897392558824998276853575975387946616023536393295338554896306758864163763100468559011737331124399148824216878947840457989800949742888624351750274263694052907740537469777496013912728513915128569224672234471278119419067387513192882988965725781631461176273303462609067165021147393340404729857995812481203006046943559109203852414977058244870904360515451816935703469214026020550766099000032870718978660059739284704946229743229117864145312857854502145058963578614116644875176235649306712960176878058204054018732326338996606566384772816040135281702938269281169819391086157593774304616248053628631446593911492234619750266395102249115587756380737709246440528698665762384118094797243518205490278610215218538157677850251575171193851810996903419420678944630794858467258545921608349602948528318797324327605132418678115286972254488671162695524340478789282289185530764108810755956234166278640722635361430794927140708957318750599903289477419205248896827799559151648096614444684483759526243946547280153439832933367617427259814942133795676964883510295507280954403517831486806975693588090050649092874885276130576838690762961339311996076503262801550392983507084759515117418336352492321226125303722454856093509848486524960292264885195697363697820970589207865832645426683846444518701743151378880206341246415672126957050020721342421411279294761161968600040511530846126420230172510480023705664998430225925938473064655367165477809599004240422153302477664466220701783132083965345525914779609376392500423158483756735936979998569602870965505569110126498184190586146556244930566246782771568018252148438067317110881902548258950441003888588552441960463384820689073549706100517301726411622400554526954944097647575550342899795689287057911560100216410397387359319041356318925419104618173512810525044169560670263061211547331911707965555044788116306878793741410905930851195905025603538830451794555042107406263763899000626616743074705138395167743530783748071317073511890118300087119980535596201756292901250345594909881056684854998034178016920499899992748955552437273801058871172168116654440821409808497895512677871758284321830721050074761469484740959415917395149026516729415556179240949867304399763675085297031630170356634770861237765118330057619078829356916339235635830880490787494807839152611816406288228317057762392402943069376054028532759825738481815594806288888607067851743395655927263271997990760147882921339194757684194744232291901867810310610314015025094645101888271195537451809815731794738548379283598227373596102564134877428993881432846669110284474934659367729303124668735659956117327057447969785478255120166612951890992134245279888801290597690223005654549697962568576896540790204873577988434459689487684970345798252604365128842099745041403817325349126503175549806318755471099476872219767836635392904827926029385462642859583438819575557575539285820395917245550410846037871636776117054344242806551170451531695657462407319300015063588450352633962847776318928576432748976778697936123762775899403126878135971601435601189150019683502099671024332525463657157912639028073461288441277558591085646580672378641858664213893621019339274289449464483613833084517489154755871740251782528675875060269685141957217536935270425935905148935670871817023356767434440233023220173753322410883884507594886123142116148230827042434404463908668748312682909549316230602235410831884204521683762266167236090716448171852840650582749914714522635005488181833292107636394116513720574514989435315516818577089291912525766858695609342846614843377243541081685440771718477226459224437929264769449986987906872142880673668880898584743953256868279762539815439831135607218394961698218528998434175774923693052153158036161968051593020405766589278132236173558146528622670774740946904229208311125904009734948972941692544770495355842817579104008527088048206832786855850735936727440393307945779507369170694405465463696437414617279581034016339768273195356998324713470087462095074478647666137257568658975098921179228478607544455680484031784262951848758716131537599068005745231428998819706691217681452605220633535402407259532012302775381051566791410817670594980708347748572603097372842621526864630750100773622277771689948337580473256441489132072628732950918462277623465929832663629503881543468685775252434103434995418648876400805355477228851961022010249120742416073189054848291817650254072834622696736508571067661963469681296317133362316409368801339907192460521762464663599525445944386347426029183316881335940984419818710135764956190018187043207635581187124122322278762181839554374838757338755862114172760888041567407981271272022451528070904354099437352149260666658160616664051164281434994102681538562052224420991124274057418653883591941027990887234866130514097893308369699276173772043538845604422471928546680634391027741042886816334946957136207985718406120295680505706122935072252045084500449214155497957544645588359840154481108867712925385042973273276874162974898330836866037730665509515917696123675282898976866538817469714804032735544803778553064780462750557928463846540467345366830323874576215351346409924441034734786271521985530745467174143966925614766492970827098510871403800205469392368974211392301711342600573217514070594893039133088040053471357594112553906223694840051711568537758316628217697762517518467106795544544107234110755473774076534990916461642995944712044101577876378744365728519222916047111301418862700025502981994184705561011549513016696946343665924880394139498689514379227544583238503726315072859634092213664795348635192300935845763129247874823247883710178066093817908166715949721985314812964101331399388982746604098205202910221443745486334488153022821942973915975455741693225478437680457757430139776896777471936942561588925288182129367517051016269025170551314730496706816695024365535301654235938122934278406282661432122228742000350424479530777757422127442729036360059062201968875320714128174854867263616690341506646582889143402106076821177762686963633454526341983150520361291962693427810755559112091785292446373880314921113233266048623974492594386342490573970134742801775425693388948385073998420315624088754692276009074069285558807273423006921933903866927789602685713905255482427451979668707888891975114844841740573218164563838836903898112908745966586603020581089963325840032498880087790981317887954230283136226832967178269455743657211419384563944198608944920178762456094245289056912277557863855170577601150231135017644293974726838927652645144959702049189164427379907861771739795322399371888716370222142104410158835689067670898180348290899406489182541860043115254426609411371183565021634135873230562002690233355238518019737803957055625318815357121087550023503832096234266947133176991088560641760572480197835265651077953557667353011762758957034788136516030528597552101594217596622055679584518526510716648495924607151409741312703598817071589123480757802205934763086833358836603501940090643940384414287770199980854336682516255287797920839814522770382819687755055889300752966565313575900830932708075391765862976731086307611690462956397602689369495552284907485971916841321979482964669841271566807313604356870303654835586348621273020310726991430225209271577906575609841115440144987335276841861660086776706120867868603091263175273968530545784573728075766697791215947091040137025810755266062465286330644522221741871673618398918384836541589119608357589744360547478075702400580497889835082712176569800542831345628132415539596073602672253077296652401543648165806572217036442677025140590025015070326686464220071415293969347714303171236201326561689130956889332899829283890561713255153836457555100601953738346445134753860899653281407617695316085590329581325654844467767556889562099735596511975209342400982116696271631369957369259378007118073405928549712726262211670651805778608932818928280222066102009010779306236144660107159026055198074703009191962460734328169796025563094997034565476592587902958259381125211989169128097659712059530113037651664403323804672539095953675143696955996583947638804063977584231078178887344436912962329485031048303826923790296814307212985105198510187885574868725301989398992713058166117465715499108703276744759345007637669054919985859228558809091939623023363662873877975686259900015553585354723506045354350342592628866908063195148154392210274743276117997435331111106493724482267050098971764560218337867232707629887739512831325564047984099763693774720539730344646383207025969243286879986527863037421314388732501034694188546566372550077048016111080646300744079790930238420404821105788913988233763886705363038134746413834972132834953295925130065023976485023407213549279751260696969322680345377775855593008467189020232646878500142310521305272808599196335561223133166625314434793260448012608889877977488926891775354148785870001314248715750734598758528209127001459165926352214041129340895879063411827717161030780614131809113159380921044694675062553007113521356577084447716888390630833778951026795960794523557849589237059454183863774319709601873801729919828331386066892514150660829164367600147405984374125308632183248738252340730018645114979296615786868071525262098277145625787826775740801002347244493869808724441896902638132434923709181467373116607575271076844496948285448906080228288395962704651467495086138318320161738746071285073660477115216268818330443956118872902394816223372515053503373394107729376163759112590326654338070679557830113246050096970413386551052207178830984723868357825068193067573643658346404989017080302479811562357798564337549932518111331961748880942339511139832234180945164017249682463376308551045195445642524722912736788912942702265265003266070526569369243849429678839767189851156072309498589282263984902235808966202352290059785557281242521039879394613531975622777479413075023375939164017202619109224192880985182330307942302679959224422096589204101832342961499486646787843176496249552408099702223026144020277974423210238732724723155123595435727781115500166001379599139716401141984121527833187627352220183072375945818696825732014212790008367540530751888468383244714930713555317976394409988771791084604436665642483551863175357807023804900219641631012753484767896403821649344405808607968367599072548926810707412765188462860662743869835645951131176714689676124182608432290791458163868961198512872589118049092316318424054294105011383705297593587813996534561051417564766805812229083687218949935064488529569745898230804371726516063318556740803892658856992650911837235968779475554099027971699253816148526373879098114135059276449769213408710884484862985708639021448666115072827724838059748449818919185255504178122568103770558054967118778070868072464967401352796163431445092606886866446912968916367918806011984982878277046273123195339023744189323478886529880616580926672219467039324714610471540250132682842609028843678442409366443130440392333992722497014585534456372452247768120126475828354142628441528452497134961822529365417443437627397712395592963681056751174374826548965436145554103961444909895104318204652772278600953406643912961087732327041933635382204147826091301558733588694668948080917176654140624213380605937992608927004910314732126020687034576229379104712720580319244913601649143886540933537601804592176976550192090079842956904950615347874981897526964350232435393952993172175385894546208702484588027244388539757063429639238851477142948745153474843917264162901986327537535741004318835011031668881394585099997476453702643834738124538679839219732025919674441346159876325126388079804273731856841043037257386090741972844309745095270801575281692673450009649131009203007201630087578840760747755293866798767801845241306486217800560408989922564775441178407237232104347678912950941203107633675751548633454859061778772094438826551494420325232418766852583432482604073151511438586202945582495908174094359689970575855506428522216439777329985666587905535887641212006241519966393589595194683001889299899699932072892307520402325882888001825629255284700883355603959946467527658598032109021444698735794599986840293980739340870020651062654325425460101075995313519101624663499002307568245141671100543187442645733687108846919172850089365117780955318633215449641376767630710594479430421015656961682351937601995560626759370478270004076070355632161296259809406395677240913147030601713628558289161322004417045716008497164796160269774534170325709168716703528669186062370053007696453952119668941317434711532381119637069041742386718877823702524754421895339340029145390594918245653063944933210780022900773418339513967738602372383892411655847872417221672493621736232400944149956754753155196780090466804061486977756066975714868903825782209358036684767502821729928352122124683525262548133963690059044451107539195936204116544911110769937076374814060252116449313935794117983513733470656704200174649446713772320321918458276146407160325497677142342111793686080880208040666329056229234975001009320065229244539978074997112598840626666320317305679373997081192354584300423002349532475234246730946068501333562586271008289686538437339284632007678297477113113372741854808594670900404838978152347968918713254900936608118251820824791850236028010849806829449394738308524373085321525258026800679158329698676854355002374836227930365921234962985744410281082666580369401734465888393813934878098655788270903586385535794091214410792631814895561237840538095456877818618820177286837535038181323041661823057433467082067402199105176328152032979062784742568157323430963769071092318233221888780657183568077504160570828543481987182377773770417810503232534042063431189927979762857017236791265361622924679673336240454490871334218568354862055969037583750977912606432074920029853885514140408476451429828057095085021600038463132691497859980836114137177711439143037977548543159252909899783343553282324201120460773609828190141931115771643424497297800532194393967446732404700597567887393366618789469100628977628673573372786162821436735277260883288682695313639044483660718351345760259009882362306795468079214803361000966718044955061518910205091343276490477038516667319975288630404128174632598642633386514318038525977678043551648681178399168992773357870655984195380159634722363512925009724362993914282894724200167590046589989739411490724287134263982530284223575091693817887095117539964128663572769054704028688636523502487341724274096302241108846992207359569697779689463413048821993335354516061959731984044657630111557247657908381787431051949259195198604785155563474003206851998379361535954596327177512997444496784166606632657203171714895701300687244096360421340596246001619357410191211639447333812101857092971899304145153656152974619031677901552839394210741376904200027864782530350420854435590036822668087336209486696871228233028477569093238713015670156017862018544697408791770054202390303050488159373266682930709682306659756825314275531117765903610536231901030644436438454355725503111490789922995640650688581999146060152725401496728231720515631280670734743487996699026241798345332472269625038707905640124382236777517752455188171143699504722680324119496691624837308227958992867803620636946514039038683658455124547464577553565400641937555737793459381328655693988959690386334380246262364736210282171775382220831396933880885839770572028722942065288834149567659088968493985989455659136003851437640712860596178086240646435539998016772048391617780995969799330462456624012849926754261740639667497245225489277071159900592036462952357578898411394156099851848272837765225523102422249099226823092443864809579296189094387820868532510675791937079934786196794635075337404098729140867786455626859554253790908400857819929913476295922391831121150734772185655464641771480300518673945419742240910505388434657826287011829618328040876269854189874091911513942443964702504556427585217302075230165576929745951768122456764989286002390563193998888862645766472587200458688512111904278085454288246823265502633803652021485110871895004948805090684138000543685724936787676425073874404628203931214678997098581256310325762744096287262569774161921909690909790266773336951260088442351090019094420481602253581981186282183483883444798493756961605835959762245257536016228204840773083154268167349881521853377958822863119992853055731466597246167992614228858930145186794395583468002099456442110561549008666568340403235683701912775805352910968530229131275103725310005935796704877897581136642417870910881873319768375796262566868531779108363495232067016655738333477753022199452291294558016190538539438438855715946508276623096410177422401945398568844240030036981561097076958037926068779720521113721575915297258724663995537977948130059134095201659338479758944352503218340526658891038536337307451593856338043603106206726746349534074159942253294584889849517636368974887063737312565175416960989127767022602338962104857257748190918672531976271126133094106550539575825751236267300299899083019327833521658120073159430866018346464078717213585270603779323115591702975115743678015538954989081238821503673772664057678010281441816339888531782052002439840888747199645808586071609223712981506212871527981317281910446865531919024170360293411911970003433336270995072307392320919904363599089233215387479580148585797449541384731239338907117245507940956771140758713777214125341977759952605733821406186566269953245491298043857002019522383937188434924661924301844954374193376281565784174521171862244078983586123892276015314108423788302913068446578083073380190169796474794033147352953941939274802861865922577908570839976213162084865727621107954331434276821350654873556666569708153184312061861761315708390222917730998032627400591411201359114058737281158732752927197474219439356758246153291482500081183362429686701245222937393487306211560984851625082391716931408528330753824541436710583949112879007634219155570910888797222777199504257411662831000190949628551460832021981366318185710783014262988123611049017730862477893678754782997589611408012311822331475818556483617484376869861670244582302439515587111807077125909365791914218486712022455522801692619552716285482062038437799863237588717109486103169789474663859106368858547858628565820619445963311377840859631251160761541201903107031187195492641300373536867219647081014767110409976388943697662835765721798010987367876841221889827169110102364030314639980587387268620424402673131950023603360203466089722088989587579706096289981331624873339468782953278503187956754486047895473435166245851800165294838451403767863154899748823922167624098694978455674613553637057077133824287128690498014746090219074009479902099785412259594492525941422959417130442014667423314060120468669694157691640057846956414923140705711999910155785122924327235157886476587561730542178234123129838041990784793830824265287975641343786446326722720952864494542734927578400502293815691087820567672008837994848808931995280885167082600684058163555451081590872285914854935856055023705760327834937314587080870582996965207189725230208496144774158676167315747191608840641025862045018610321002676864776173419181039043186888656544816858037502423394020029429562036960215204243243867165050627880436820541412753439098812589005874779746057608705217681911871177381025716356237034543613106780007979171994296547054632478710691328829693891493836216434643033136486980746449773052822511794880591597923430453182071235276379543852673776735380339524399359347137582462666358408002728661895522628679717672681076776340794798056830588562134128525825114764018429778414660746112078197341701027026986260253778482082326454326534627010171715476599856133584196331758049818984738693063793956797653907729246885570124150418615166450921535100750189152284656438458884789844515901054757359499432509678572209346530294870605815695814236424021362286737144620675594432566691037830033971552550435415340119829518208558385185952468291902263270653283021731594883659481895936671170775096194087665012584376763993343739191436043277218821516147556277695293229957273852054213461279021703656450279142984867827798266270999703755138953738740439390915978109505447632094390958958432093116441272436242727862290388151323987636754275958537805213601918936886990198293222562725078517454646387031680065501257381603193299801798165870171141627220855191691090091489033872306682966489563263420354821945422232970357714519840596206258363749224730327742415113895411333263531062500741996239717887256177705240363550179783337118204547130994471601242243623153985392252137241723498318319306534564334946345915102547710016624811041529060883882342016565152100520430559030853104065938471244289500695885068591143985678870294538511477401520074855501685652837208178941373598996726883865773041618400930964593372723830850007786704659856190955105403282342155465445311711813643349732433778191278050145075093724937782500689156360185597414983569891023818499477470991607003980151093372279916655458746579995060580801225378431331844746777604248187140491632868296512173047340387664269098746167569558636525951454189520012894263151555601292925934201517494360940135943069443195869077754861116849588147235784412409628541457375389820880212951373052155342984461935863264905733575365346735111254368408140882717906274782362810063886799857763195026557863271331471111165371979531261797462852636035786097697492328333305031365171843341052537815065611633077071325950284106077999124517401205654455115043125823968069997132422426657396659975840826793223847048258000305278718197358414720919771463655302497324477041961548168410566479262423875649767478504811424480590665548372893026382821457943589498435220845072554001194028590114656163774704494253990825896063258596771740777793744259948858129073314524127727735085070575854328431045596442473423998968994162605424421438983304173289143779805449328327529288302421085856486580468378135866916670312030272129298607382846650184505707320832861386195696244240931560548803156426453255369427045086477223414688037038935808310109451804671061720038013187538816285652368886668126505658935893496102946562627561467564882361412496055148293281420961914808231847733171631206836405275304686301350071557176995986480955928798205891610361738517882336372172219208159978504937586110481003157946418062592350086173725230141105954392428834346280836603138024855900184917489930899144501636319060522783038391237426584226309613054709124690557102384976106993194806489569654557325479152201938745708975835009012679445135829671205694347118774879997877344784689924055652430784650193607119486990664864906794647603463223765662940636978650873810285919470089054601434132588954774812770218433700574198335855315987677385920705362585765931143485115616646828817296309717111281154750695090450703164323651534161195213146561355662832784949313601985423776206705702209884223079342817063698747118070709057442292277124013413575530950941999510152439834167772509225862957224078847662401103373821840967369955684733345416775310604795277281798281382841122364150867939626532312911442389729300418979190365095545248016221674263981812954385238384455511391446551252452437153292570854937881980104906845077814649612712561120207772514784641655551262239060884350661651549825741848820505282503164780438615536452299211282339858036557913596379084110446362229895601511560493404892734168352864222643534588255367586510190939613862076604733496398157024256114631924303352973262987578158418140376536016542000995668657666792935116480536823945946169257556141673008111533577902979428419144085625990262097021245499353601260074233397479001378490054106844482320166692172927982217844151167053910094713852010275087780094134313444752612116805843382043615726739090943232397473323743193014515529239763096750686909741098773758422982338737017319319551592132298244451272384863240125447806926557016505011007919942702293277550309324425703219949921851933776729996872525845168888632883450104204721185499855254536667110587917091492251709299953124972960215838084640908722775498727170372478469184339285495025149268620398207966195688027070198579807789083378911684073680675837153009830315208080441197980698648351380393598607940886965242140917087094934936357739584656708320329698550988225792599460437948986122054830209586159135578478716442438025801733756081339033053447821557360160705108876422627409453540779243796868061822266521592757147164200592731719778524137796185662262306307803444840868332739551854522371340401676314623405284098048009322062164248469376260820683698369455848133523774406216479755340163910901248372717687047645724482296349643106056132668310848113342715150900713227702689541315114561121461967943586541826594659921116281579872187108314230719461995859550930056291114043873977222678934312262754235687329153657730895183290248150528099899442845457763375409297293897177569296355070908848981731845538608282660002782110816057453404769813811048286856992627830873570241096024204000729370923346087361613242922396201338625134755505492991774993341963192563379917276427096047571916678823110302649347488372505825333052923458373154472978654540264798478019538686859257026262233238539923463736998630439485941378135465479188319794277122319337134482011616116000132872419996351828548697868486161401491453246979207507584059262657435964313943814815574089868714717436308768087911561538133968825738828929379564179376199601944787356889266589887494068827106310234760019961059290666700196757746833796656168625133661762791981537436075162376701290485334133809452419648849340914999573972059206824279257926648695549399496045754428983184631137795897358223584331253586054787355140467671017563606452658573355228091617849905447992907741117892292414389405454769847450332039475114304119245478013741177825384329071215202653674162564569220763900968959156540045676087632605378307897195904719267575892938502812294212949504270431178127226317754478589721034151777349734489230485261378538473625119813949800954123074034769518273028556679990964201928979246245110637825451118405139978542784183099628047861663621576387718640293929958053425668835452962326248708193758618325237283595013216082337169951636954473883796171320463729294235727869958763552924687156832342233403405921177140668854318071781908151007005638521896129013857311925354509897809518829913635850323719143215997890709166718861466319981048483273451760791977324670347655767135778227182112361384225804596902393730900075818588737998291292224853537752005542440739093280218603603785859401297454991466154764657276310741075793988903414776552896964763080648355070476093008319570309449788428255506375022797400609323262319560910848310588546870761092849162301488232407649660641319765953998941090472798419424780756946583602400804249356237892801038084997614952537096645088608442566431492045742290126092584934220439751645033265441903128706050714222379344933889134591608294994864823688906677424485958076621756876599673976333686522656034341903680417193606440245243785196739984458618933685248544180991106522806684453120631044616783068866164444301426960381662806203415904237692705207275018575820244863262908119831607847644463490354050806277611543592951778723487031141929930123484191489509640192516471730478134959268199041002248339179297321494348923812935976769989315878092196601594517853052362726152277334319517710653258237232043195197293854585363806338166270861893906951824797935235591165129549459449786418584199397152697201180622179654500539681094791747178717096668546111088243756378601266485810253931695252101042696379461138547420282567725281380304786426651921850443953697096281438423331568129434964652181451104709612726342860429137119842232305066024811274007444249386080668609886069211678918102589964808857132091994214982663095539469394412161830685221815471865356053464449207198587905854894676282486601711762536213668060208169102408164899783320755853415995638961031909071792688245907858617650247045360625164338793088805655809318104260261471758232751015251760226571176631927347174942113869041290816332345487946502436575591759475909511561571231321954463888769671011082868046677586759535140960294959327624092017803277273185086816156040244218596584170019491125129279466810106921951463411045672705130191080057007422910072998823702050643315437131324820881746577718705929683292690976380547754108353826965436588078489001335865319178779628934300504971060377692851254407687619953106076866589537188398841222679067396309178740572974433556365054784302035007305264742795886696220771170803650689212473617524477480585255337388311612468188623928164804920533094121082534528393466545175811211896486849218742657932718838567770109143949965632645023816813619738630955331583062842170154216764467721245057212709022941469805970919083994118025920688025854279743665938974618341542957497791885494065568185073590200511576156313174037198728613887246943851806352270681629574273329642908436141266314291492842798304542117578551182118602567517647786746446038897914523131870007486340438290465057696889030004050519626688136813426922433736642581443356637452052492415896505451458683092094784563423597998664971103381832130612873080354826052875716453086425691698192013835156446826630375684099302494932710569548324270068417572161403501226055881078343192826479664704946381451827499774653207861944669454425483661946573678144811602088294444672064924046316132117337106623762531929316766348723607961515297171243068943649234564738862324859023647449224034501052579308665788220023534401020858075073552381280394350543836861551429269344917970431709294594799101087325419110845894255744114516586057270664745900914530067436967454281546870510824042610820652086816966426537807374811745711569250492984423869228855217907111622715479024009099870268160144263197911268873773763257078768113228233417904725449810380194469749472786231192098574717319195989474863590996781306661323985588117399200397895841864469377063787260650705021384741677774361395034407324570406432921172795120731699331116580909571098440966365795714390898396610008074730647618312384331096837846390850347492149814704443723591837391763397534310315345882786762459281722515935450237855329147880228472805138326201898296492061493338525352922123763393496667917022000252627341988389409865157148099055116511600833154005556365567113535994448360914436203906545369831710605072859812302615471218832403275530301260829001641402287327369513737358431902627523192222614231850278171438701149862127353923444744592460856552881704371711074777170522068815376379096911953414901210063330125415425066474281956796544834887738363683547762317598616820648023775596335369869368133271190532706615933556520497617187204018397938418121125163581610683324549812068042269322855428228427034455577804701692696652049671537000655401845856627848550799836134036771211331744285381099648509554987630699369041515890882137581598446861143616259369701005409493367854461239407151851141575425655398410876711797786006760202619766456294837056061861912574005099624395113812627240376402985524425090231883687427388953546704639983853811842497672842771848466776685813831143518140460921622355410350349398505507810361109599455844980085432572602527221219850835187808819865283513299519974862220873925497886181140335992789495928497663033361341202366357885535216958555705435444051987778122523034960179716331690236187845731931506286609428544747200897702411481088310619256670651594252921822943150370031323606634429601637325624155345873672152734121906596645651804890444637143665673651917601942307837670963403668574201323423269738729496653500767982772803537316837470315137303025565162504617271690786188325980562284554824797139433145430441547397779739884458265285543457623264180185736426120428509591733352362340423817617030781865831091908022638519113034929144667428778645883681348418080566490193953696909464562318858525350171490199734995080169278005458253613234984462374843131473759895575487556864186419888062177524427242540915866121617136014128089884262986558333039739788014577909969841539638026538186947270268152649276667061930061454007628580887090090389725025944569192331788696862545729088699196982685054919334168641942380892425672912561714428775207364416003221263747790346156347713175867301889331051337128451877045306447260654822716440343658491133028195056596129174167404450542319177538285960503130689230809031433285168988558689868654119127550452099454516954529225827860946180713358802940433710907972057537226530680917538947520827980341981513694332733944934338766633847649209650765516876710229985855496981208973513896709696566535688399744528772355956806208888836826205622383594944782876248136417464545869412741612689092821409145889616626446588631066439316736651155869109882057575345066388547700589830388343432554186608199799826892954556389817096442467731747566650769281046024571211381394269740477379735237490286902538815084063787379570731156539938281333021545489964759376351761426082114695255374571958734026851935754202157715353491955098942615132886772833360729115473899987019879195453380678652734340150983105283550918261161652374467681530000741676122411704458242747104338327550663988649196056451220438264206051196854703930089035159346549038129593443571531542006833229341770184471385337097152792053921924348050026519788650859958629377951030221946154754754695409274338530772987165271696799446718786800326729208839827658685760328164034261779870234555522893441427299996714910208084576549618484487308598902722481411972315832526286101111314410495888669189931699833042229186692512918073460944275172105161325043529260136006992605146209068424457193192150183260304522888755088388315528505052789214549062383699250775022086361231150309000522479775783977132359277276807975557925568305805730716798899542094337540930634609412488102597055795088374017995952215229175606479875829203073821507679678474687676195279201701196646600065897916763146149325677855860316493532610124852863579667835114120568457167061729839197346627724102484900591006744517916337942858109862823112701662396277386356698051858005421783436948252891144156921050903401864694876557671509223739909431363734008110889743050626623670356680346282629981662104887061935647594414708852554105811527097462423777925714526034654297962245867262174397323459979920982525013542797411603802648743917537872327637482210093811422054719738455527440104236287419742252266777962408895571702303799146866528438277072357684690478713540971932724035024357734541268241593642706034894965309005068033062075778493463637936611577797196108570656382033627987534915710245693436931607027793945078156520540016294160127431284766360317281638601837921503445718000793559536884476256120629363560027788496946058620979044116076453395465412686367095644661454475105645668865931960602475278978338280749461451526574551480682609405336355445095014824147404714995025360133388278534821205221945590856927919902868976867351821969636943088866788031324971321455206134143167452429571151402860630434128381010590260423239926538364445585034670695450431118668374623119722841485379208421761304707735517941523326567136162475933596157595278463054587124114937315880019133495890082398486581548378847111430664673031534292025653880728190291837602343708346199209506358938827195125757410575327970396156855470330866086371928188695759408348025878873583334864762943071998964970919019603989184682561587409848457968993485029717767482357236454434357800100874556348137230471760395335831972430834279300231902456044461146430769437565625093265350071465439361614804991953560195995306513340249750683182349014372467689605907814162193019298819597670974803522690923231729851202964339646343061450611474024306468686144031156827035278784449852432266760909293919714642363717554464569809969398015927491954031731565989655615823991016410604400896079507452246540319328409628346191743728684009653059959068351676114987733978733570961163500887993537078973630773860448639051000762174088951211330966153475563372684599510908455190180007111902668718660878845900097417669658025658283662483062150425840949282184436931463003079946484189101790824989002897304503320865412187165696857049532006708776301007628151167935852439054555119530209499321275025681526431025993227335772251519845696675432183760467918931003676151643278054696309857477175923691964442556631459951943096541611827474591575130514667634776070250511991441773300804583224783316571635639031548610646408164974555105627728431156288435488050205611049228883395377251419312410935630534457647406766662334513127671066456185165561891803805194717669363852673938873234918714839917210702008459003700291580431387667144296119392001825015593690518593828487305640866067330460330717065669606459962356157493882110430092258680121137782042203341554790780262185621729441064316222107707189077428025537728438363359217503645801859185257923542429149097034871790400760085882974951010337500587674594511914732266565158637711165535632629584545120306259422724422659430895264758271575620631202038399338686452384671347414879955035771008193040692117930597051374434258171450964411026155101023022458804713543054812444230582989113382209294777302636343496338533158133540154021455493143465651835198187626513656324512196610123351649508912554830222853873063504597384439055516831928767987206024004148557246273021919212069801111199711213186498910102592190535925583093959135454207594601652523486677081938124346706975256471141511008030481950784047280106078904767512837064308796005733672300255485086691727747265937802411072893893144519141706385876381245851967269287334971470899774873071154128841455854950616504726274641416051210357329099246606896200530979427397967076024229401958110519870403778496483292483468468702404514487496596418270524723657905188025507683876218003644079314918782707031098624693512032007785366433473702053483886403185789585870457401465221837784766715348422926087595465127801146588400387600163992211778177556779083116899193388397972807269366768636012214318345394976329733422159726323011879085836855561879408221136228380729288281624061383068101179636533340302675007945766461219809680539088192257761768941003198876571051365352973695094380850562299082447499854247366722295915393118534214937275665051600039423763763320499481195583890007097399037427377669054049319289476765011972496131782574927270139949052050070883020237161776281973954034586510919416835441911007094771988635994605353085350133857788991307015148997281855454855952079953737508194019635199893434369185400276640973238756684434430538576075250528925080615039953997262383899720436955419574124913280756670689128527921061955331407668193315214138991612716744151782232793823412402046657569700184770555358145407108249619934888428471723372208553493631969686538965885234394910814667581333207384256295309859004215422802439952396680264994287352268578493515941911692787628758972111692855267731826603912779872272628892228531907311796477207263318269491594311343951077046297570028415798021995428320033419565088131501970815263161396341273214469416143365237709077639250977661604147633034345214223046120842131041587997030509890790321164347126179804122756691943269230755228701689643844223523036911155229967307278427178781295772294453331236465671025769043272084877043215897563249409483372602250888211089645897402375146310688473972628093558036222998483797207349400295340811853174524415298746208585334658001717650522413829539298756511771386531647620358711609253680776226150459076799080173018556875944140051004416236686638176916158296609911546404258311798828661864218542123230066288376072447238072534721339994965589150424313113342196238830825753060734519319567618198886836640849194124911903062361391814398769839494495199923452659292548892152876209159742677779791795524459014252750907406148442346553979343073629884340660214713735771226858164230749893811371438583994854227625632640867662257420897154410227267427465988506171865647008031456043309453267489858647995671111467711744096298556901419382776157486962558072391472751124130115880109932467560025529433250564071374608485132006239776255741218717596249453298005250173740813753301246906681417906246666968807518494951100151820689348237742622389265778476396794310269256447876058400911192744309807127835266792740741356515870614030356305831047844773796952850630605243539527430399146700797911066526375147698068038692236317004652577590122038626079956278099926060976947222579224837942137484463639911700890317608753573988637353611404144140899899784060117452831743608362578891001020174694977744021885615749374097394009360249291267943173073624823161248398349093700988445879969017644499433792990646647950337471317198265912978681870273359639947875593114826506247039486416649967432730661578224423564572253101817259125393000262681295271596137628191526855785883544998620232740066779512034846410598669299408840829884115077817573962524961415167815721231475268282067733499354382105847898515455736469800782215853278156739919116778105481257328107816355925562959529218174369723675366190841062071363783055346808318977725791976318823700406066321628319499881568504347772806693885885744174496271278521332415950394550450712981591198740473018734943612223582978628192091203120034610826747599533585480249265342554793807653264844384382022352731892702284178963847498674709347825147526682250843642815217880526788185305715031490450546967411121898957518274884729282064990548674446571156139230881031031485511665228665961207744242688260599987722005632224561058894828620391454673027447412780065084585193829775191631432263105716262449908979030061603184452005602903725817240293630049576071466251557113226405384619651988851348655836898792398167986516935801915597985311970701007778293532595995514011231490333237264930313755455273822171337146920137943173050507171571360559565065124996149433231667447649514449576810565506504980885192870265305834813680010377485628325577595102761313372579495659977174022313921117644586486086383290825042830404355178912073331642780351371880959264754897995051742436671579264923725632543913829289922248833816276600561299694519646682794009405170755322805335974223811208557014232627039920157306969668050702390992128893340382375624309246557264757048023758451406399554006036982713364006464145060786945050180040685558558043032456645963701268502839638197969068813171881287764823483350714982011550029625252308910080598601366940927812598253301955202697701484962521372689564749723808085272931646459990755788445358720747343831370771435165567480852083083898162631746470469984914211767510146205744673114560022451527427252794206630436426045598904847482133111835743065792100981339907982772155354717905696101303013253065248228668864884817781425123525717078105286522715130532621543694710322429228837132981266689346897095946711344529041686945990424079296251681850322515231071945285888795903873539068859118434004254462078823981184198584761809764150590176637932827338064099054816792465255835171083537257381903167377039527766418996423004710099679237070379275424591486666294488468170824037648793631486016622188733747393206134937609935209999464000477851178479996713005180807552969294224455984641955341190517746751903116140605868332298740419506505400746852370583242624775840890052451522464475960279822928717091496573517288780456433432334959787613573569339301936089479730284926778185916119672494801381809875210033617750357398970597664024933213405074159010306452053871856959912762401662974750386063835808432935173655427106167806899567790246807802765070735402449462579965332933204409337649901976921599767664497637442404726871648664989390412024469325690800702372600676994345583047189118890070962284457827237218740102764016813642057854472005739308955409075724551854861840795076122958355368939888268069842102616333492444523684332759059557907847832584196866101568698567017481141816607778903610767501036890148907880180677731423768991692350393901350584486842458861044827433077688716679262164659324094644670239969186181934019690265451351547214933063315707320459845588009608562477097956397679402124847091831651919818418845719556772301758361586878921034228910130624688184453690326305025984158383533370100454290842655649529289368349709933457488462766819253852356228614155806836512290860811541748276738311001030075543775339949188398431635943382535385582516717016677135138726954215527800899076029318654476244708318312449646428070359860651138435554158175066637614548619725150473657894836997236299676016184808454057687573519155431721232199787153782888707235382240627640761500854720660928228508190565139235493691224219413188823339943174030305031984706001957295552485907941273161128630201748136954667219472708140487138293523786426300901081086135125346562679393372268872423542641319934863579018172068456376951812954322607662077458940747709644246458487505465302776155207162071826340316882408164698917217883334365517396043458641963557004691056649698075078922119914795433516089372535638310197927618923782807930718823682387445629967871642968513332177378354013858704201477757589657740934115754589876517699775821146006387863986068270545621025531921593132162251127132223832532232811223037946093926621967010415899809579305491726854606195238117748047867674669001620668397478118030756399954366570866433476755926053835203784633572786971203878048757759369483005503099353647163957452328615987510997178394980955164152661709794466278425420410228405208542782475387793519569384732950529514168991963398068490032522749642055120038318326033326874755995026087894747109697720226154453579359205839860138355890269604696696170786224165532978615338325973885080414743061244049373380109687528736450128157685142581577333015933413958556468513595598622845527930296217490551997912277080628254491933274640506162005948197772519153369140393742796499633729808976864834713821797393754215010420598649250937072402317931868321291307781232684384917986635858258892116461276066137716522858120930493390986614607798393530803575249366922256706235317382443298256055202383961375207199774051322811672209668607980033119305865978358561175179634799707028496674143543418661760506144376982263655875288349924166585023613276679068482267386811617515550567007238761668195595891127015911972418672935839587716447920467779295541748156618164112614856875625798898091863648840353059151152108310068488690248991865728810487260170363311869030355477957972160741735466477256305801621914031689612889615406194479458547299725582337456764344850126612459162246193255268726493823828074194982419372666733422288062534888056685257896999105179170889778510641642447179616753482324962354192420293184242673629613097770232711858651201871077859305007217366478921836458423062838506243973729715155336392014688805732515561187642946947056300723814952495786977046655406817483791263396236679361002501994825250932977728400795246784159038991224206520215467902466169856526287705664419013710013079963194250100102673901649350421180340602054298573144940263227826384229365626001495561473130909134819064837482404566907602563597023695304849747822864620906135517086886335279723683905768618426358658260299199732507941291160689020375792811889996803146519680440211040579146640319096856685198392845896353542481539521491826740009149832312105042692180614627948190909839434587609292459485772258437046694511450229781337386037919059416803273800813406581565021952453449584829412886856331717385199840704282928277642526510005193057832066742500690453281088151667501102089777572901706821240521061276262757230576517631250282489028526774686068467099612064441605237754910982582477305645118104417875188694173921316378449195329569717756615648648584100115937989179222028942969708799423760687682876213428956481978084797630836555043398238474479849822073563725556626456797654538799802973753386926176502029893436199810756388619660683582302045770422439983673280335597810550473674553335417862320924811051349401517465518009164737399133832814901730738866348351400709776201127070930432383947251603512350683149697588314069586515168323967589304640182281148188751946496479273127589945319367062471709144818888689004357830651414209870859527811298003398150145489512688670163428525121625729750650520747930949822165876831935688121945487539062609318441142736728801733518888287113537147477776922287781740486368778619716724696768677509050269611728595415104981560813803583503124812988060219885615877644758233545826528334569449313776055340044477495124059124089086173615734212711473704095779464649744781537570076547206128559485017845637845700602598177032096967155288752540520171628792729982955927238547936574846713204447004446955365710010331132791873415653161857315305965971779234488386614795843503793370888268410802769726884372111473820112729557037736569073556846854255872662824496986037400449442579749378663508039273320112004208049053183274942279464775859250383820340275336955431523702217412404063166572921867417845320548472965171100663455139822625420320021178249395498034834404280709369730753243956688905905019198138219162399560835325561159510997607833238273770474525092353026955193318379915036939088994020322056078067717285242493990400065232226271774623533997611394532985197403815698330697506181682969631350169366010429413456549557030191140284720269158560548106598201799279772743043837859568968021252733738765311428100822695904727877188332745614884366001758382480609767002513436212998129591512244777364700666795599369646338963918462563552140451014083027407665442006356455264583865502716400408020480252983153014160900944610056333706531239441182296200073801770452548611941661700377536675826243079906235646356524281767646661013027702640596070582793600600647219662829638727580095005598949968618490328681113775287117504914127577628576645892750203982808725684545905453289357906464663656963180664438446227636052148281895332990443564993300247961482646703084366409031178807574830858019228943291894247859683512966232035979539885711889471577570968537247676640394334473730248383134793413156765207604012793968061570682181452422899469446163249725586803759944541743426240430532894227787256739798455235633064247324444548891969519735418514740899312042911822521363875097270157844842078907261386785467561414363473649657432486533635333211108591332246541048054342063484236150942136600636961126972552756330855112977239338828260018013754405170038495460499460794494886151702152026884118733038270804917309829311108162983183263749556979413697591515567851987623097336829538186091972044812580077179759864850579518127678113443195562333195441081690382286701407168006397477254392247484415191621111700753342070508032863449802598855658219326839965655344060652028398975848678583161707867198734935815797257457436227465174975142614042082832480790648663197661186626530446244947955077075998710290190092798579113696354498990280998272995001498734413281540878431699098685298198145139028247692771697712166833992813174788873941300704516423715268727643721602232420316217776836620110956706219161302761379939753127553651808636670258141725285848511249950580214195815089685313820706688394541695789578715361986882384628669312628997658243345227241419495509653748901237772081834514220332892100453850104714319377399075142864813885199603910173326884274897167615533698911515057854342768106881625372124004433782522997098800732877171442172630151833668937840089564606293751325386902408191103676060851987917006952871698207297939008355700028870118766533239036371208789037642253999124599275546477366353869363046670170152278536602725369069432048692456649985502392216931408715244529889911302572565486595872730602831971117052243940905167484101828251619797689184511830994608510373614541592571838488678095734904481629016519648001192337207190614989888741865491512380310538871624983382586377633415937341507390084762507306740700847086152668081890126728425059336268425872058024747465450967231949400361119369337910909770884679542757300091487984428301932273015818391206677213849545717251527492771969572067245204916099695785369457868725353239857613738610777870895050609682240008513829369986660773039906331376779314313973758941270307562418231751060615773035917647749475107278998548950158300590388617036686322488138914974228116483345331789499230076883028833961406591009674763074224587094914656538421706338413151092417783461605419880756669865463496453217303743690046639729328199807724224050536944311614714784941342980406517559841349923525752169471637726897890928795086414085934621245211797409713554886111580224215474938797993123642041323932488210542560556913517606583669203320531039485405059176516924627557577779161249542296797436769732140530458037153887599754128312070424348258299414448988970970983177810008087361789685990636841134763713692324672915428769824990634197592891407229215596844596198143508034196641935215677604197524706830846858724267822033490838111879219720846423222971540173698447086609180186211955781845634028493377834460362738353483979472349605788405478998338568112572289522887530932960727308647846048649596295488531357327941134919606566618966516375202749262253184257709100205095316900793061729827416266844835042792743111054854616071879243808207222860810289997289559533058128524030339817294595833706667158281318679734029408881699181331545231523499190704521085995060475974496548319248774270077872923159404777076388673931537835691940535915187385906474023794095816688089386028978799071749092369865360321813531693234948096698059117460422402009134889493412899509585815977377895233000135162229752402460531496214709123552019492388846065567612157473786235670670672678239031129381429461870324961968534053803080180845791182385514041674563848344467932514154612837395424710988755958554726037655686767889031898081410927634631359228581071853160489916133662158688818787216832205722498301088129378044139844500378019316119728003546259492433950117763135879041961846883088781503529794602298182633059016595742499518022371931838199435770485290109202438592729412616366028495922225546888849810893565512646414906963065526392398087865017992108160365818892639720229067691068598506308881880396514730575040643646642287056110269335783650384787402258513287824933711712174970706517620123092742977659802853043483051016946738583017485692546937580478855159610123029553640894969594513529856622533540840077480297615119908224976141622730211368660843143876827340980219177888149426033647529068625479241423093826380083882207661144096905240270468874373313717076649220871947089747293073345504552956853619512446722405174544497305615168111827440733460321027944325546950832533352717371031346401246831501294477251590578323042508904595606816427332921170068947473621639548183445320803517731299878709417376830197710664128565547200928832590871728490381181801124229421176141890309839423410746166866974068982482442268767820160422944079073023575500213570298974824843398022539328005748204762671007925437426703203093089226252747995572748582544552088973385926258379571614301087301459727341089932122341579106846164984117449622545634784957849357297438311154998153969977732726144596366860862007063947761851899547853190259830195948248320807866378440268877382394139285249122508499342453950323167795893890768535577689581150268112225673414243801673273594346491269512997904015580567782782597869953527457866588273610767174456741317658217983460409646258709052566888465225212214439206101832631398106805514637011683199761513297576474196042014020084148953141642055532490729437589380177656535748091433435538474944452693715767720617011762335669490826210584316648465131868873115258039482807326580599940818601906388870011990450434658425607949649734199668678230830669542341903605601365272789750373818557262538163901112213791577018524154967232114522068355789556466784559676930411674580468448351686428697968037054381963236882244359671401161306532268143313490760868589817796531193712604722670003647641864978828248882468177048161521849934107796465804792068310698723462142206436632432264124503437014699198302897626101686853596925014713102724598438038568414498244372602607830761253445587450704423179218409805184867999506656438866004749118502025091293195500879819702283877386412483636307070849705869211383636575270856794174733022998482743022892373808241635871201878151729684437216527249478588787255148353099598388981293915935544132068704954879959075725077152213922800185423752964753386365858030214929013697782973247816755962927270664810167846162710703938964737456071911327422865002960822831347603374267941326211069896040655887464824245302277386307034452502291504480450395388674572703979878247790894153185170927228723070399502086959594269997295060500558110024603069473660423861623036801122359936582995317981562878687304235943789981244403223270580765625977924060848328284694162832217877201003082449639975209856609921244930375669870431981688682499800139839257985093348460714627793002495297113196703367864962977409508149022761202592797954844941214243898215818845385597371666523332666588267268661474195839623367206313312876930246245940608487064916934883073619433572047308738176853020793157893475552315153474142447661984440831181095626679844624335734987688370539426076401648730912466504324885444992707779491702419268769285685380174462652217126174222640819944033563140491450005624287974591449434846840487764066105438302748174311397658091149987498885597892849703413862171687292302215281536406356228939934286394265177946161920178762372196493799094463948049606239762780075597106198414902435340130153527684876009688798881300031302015976867773052371643876072965340195958332690051094821047665089680822101147109624301445248673496321564946521078282766736867397899025706626856828836949864749394965178934339360777753634227575873289183731566756864638840416059455293964592409586069848005024388158153212666844944418085847205671805468360150913118175539622989132555142230163170054305636276248262314881437337318997160868179420248437836557203492240376091634488984689782113517459024457317880503810849368994678738942489218851534861933472728318996034467914357019523171770714884248112794606362432611388920231839412444436304808748675508051773386253096491432875698017295984587097531846274658578362446964333563701940080845400292865415170501859185429702597021997924706931995561316290544149459411456410100387117096678307838430405141666498752656758827586825388636797729795411439912747741397054680256766276932269393577613740365282153799131345422165097112303517552734802910915771264803414254998680162794665772561648519314865888014170911310191439902665582381901603951776908572842905794017220396232985779528681416193743636023178903769021485568059956553396456896722806924898006839458054845100135645717700763407643100014526070696532164691405375999955108129335672966206343386289896584531795967246329713612143514927747428695983131392237648758161390135248324793201590621939390608036487840172205381207512659458590549076610492418126492081741040353667155583361790167701822479886641448932566755382027312632405078792000159702683453639043866858294896723921394383209074682023692055957991120760631982531838511103295451479167748369664524364551316786520111127206993634778390724469858392213534030557342380931591185041265503789864192861612989362844725404039744617604614594593412256617329003743926231366008908184314526726847693294117875149752834534437367770499437113741788310948809652349381469465485899036421156563960397090307776836144056945886855398187050410793012262362208693141073357320234142353368548432048510548327479939265736982464584426063861898414492872528232424852453365317498163824013239452680404235610618788718244067568279979631791085190075361575796065044648480149257661062929830961524540413668946024667463933369901690155836977679903886954953994167462513059405390309797564222197014262877854073313021842464215460906029999323497826982781125471547044847070814910564008463661660174170373849700290134405206145493016118207528759534386269495231216817815145640884276004696948081321637882947104390995477435351474688033001918205355028365505164231441463094485152880793948185825591039542160189251154529922269587219137371840136805135049688676507933323125167636072588317378179933147287664271171907927003013880088074197389687090818522861616798344846242545300746278813690133378560372145920095570602282994364999141494130201064887254531913535381217864786236927576388802799900240734769578358648060552532716969964522459182222024250004767396023900763751620626164214649510277315814033445043540772036429776044336539503614871340630798881348213279422886455739551301399617596133034013864481618830693936833110020167725671637297869840992327734711717075460282108614612242242071551374372540104660841612746930210397863092651446119437640210853180249217834610386388552778547300092761817534444363863435426880504496309731299268666927666805126962895862127335036459011121621568795396109487312607926244288607040697142364839654168954854955292842090547385890081799877541268742491177336015479116927787157362702732174652777259413538072431065227935793107901662695823417539583528727211423503167579053823613944185221638069418879160267927881580508828265386162056265269854574959192253867731515383864919160826901638009183217500040883287354683481731169879930987296663793217656965166436682585346196954070023489045315759399552323899833862958235901595935350170374868961138659874385326513037537223357482127871326127216695043367700343587224095100634757048613694373486174972803995188115628382280748435507777291909562213561524537458810317644931247359931398236739905927040316188333174012059446878250015488005029056339096294908308529984993911830419737074802554854012972863066379096145985080714075756732240652216332589043664156920975904376154451020004496009169562461956249317473428245838967337015380043818777617026633555668220037869652729397533014616042515927892607814987549433723940522184730344075244905615705846653357602727072175774820006727086079645025264718268836974941730495025777376831460479487635916816857658950449485190607848750856499979236216913548446683346156903070694409344347103667970214041900943729566057593484401377860869613798290896609691497355298872868133317960924141947384582427830072100087265098515030300492847440314422237424532751998770973888724195981625704292165990344396105521219670380284273632013753093563261292456387277839539848320946372530304670387863894340190648398054749390401379367014234263636504728360633045008415966213702507381265007502209718699427491875175555847537020353221263959264476500849697511171269044157060703088657972469394681039274648035066776798653565714358152295833460357943828852553344600963743537983867455294788455725586909939327099960677202423665099702657133942278432404027696663979330976841688198120371599736240303473400127057451719516127402929905260746213231723244427310279617185231057025790442511391804460783413529221011168187137003113466931025267217735752164557187192500529964845681179095251249056992887935808237474325741984498426757446840306134827796819612396839927427510489384918580253105759266158319632888949152601829274637752403456579863249057546815377414851031558153550187310695470401375734634194359703456398641970308241976197259317346750707769493141057246564860256233587782438775666907721736455276890398050501200578270845490588515208683033163975132966282887285671680463754182471345766998715750339884027568880665429132809582493834687775136326615587885188053504825779499885571416868353759584188634512186184877010063522124891057601288335505697591033442929942629954982660944172939483457665234161080989206514335834327823546615843510716229795401983060172147541458548621497393150423283924982230270638246542041227148391244213627282777396057553387512720392722916396888287743757131994461284098590557250169795346850760799093411197825556662649506071996214304765840213822976514009708659549659357704067700540026965105474088447726829234349860745805443984771615236571545530593997241432813113062413384741864915348731202499251966499053583397005371406203376338638548595540326440471865335895767317653968956015565946030472159133267299693431085950630774371331961161779269657424658059870307252145133778138730018804733199593533963926511740425580529339700877967185119767585481200120539158666053530490652663267508153842127614230815140541975984805067990201313253372896010717233549126417190809384764442863857260930685738893041439529444853828322198613504420902011944291096182630278269428761595410719136929088812951341185844114950565425770073008355130585866314190291292822424026978441981660229407798861240199111711306520395462436724129962660802798723126363490684325322104497277932053833754079762571094771672760378171512877151938866892275505665015558018006208512659443441479261595402741636664249567552837404137635485276968443668075053221094508331125939662093572460356717593322503107470884595451821225531984975665005652145448875141996308156619702000764411312845526801127064659583987166876420924543454448569785625190201652736020180786739764028973143705056831968783083259671503594740971645740779325238454608948847783124609714010174393467910481774015602356284336642603497646310228307695690821871365744528541746129036638890747603703512973201696990904186010261500325075408839738837104864968473261010508725981688974306778375812536718514858941167140679721656049140308182783272755518314421138540516777891464949090874200331684217823869561802022761731380382320163027167354002214859347989490017071690770440965225721430300514180756039575273516178173429924556628608309940569073132619209372247948564855033372117914821962316005952838670598980505755783779513340842118129074962295360792320811663004769383998325943572694425529369549091678835495747677701684330194200688204922053777372897224049510860024182060807511507793057584477374142395749221625988332109321827498582956288945233013296830348311047734841170135199803508926526623080570151280123867622777387113837609157381818289671344811379598450397353369866326497031215772173945473770202941469617089399488730454890266167660490466305350645712530817310207503481158255035957263652361016751920850904457727594785028241134339868649011458911688506573118715411071989821559573426442962136834303665515793302407808432838114033527180516821226513385393072711443632707116353000114916170337066601931937851383341338372453626348714811526564079081012300218135556242765848271205423304986874974888376546195984532637315012301736869551119053636580284074049525639650358219576737641078182594530998084723128203782530353818444837440038942031317912651124854444089571106526680262187235194583646054629753269939097938085213267561286069862635976518705612131710901199892128164174693984661666278945853324358564778290133024982462726160340470818588144666604095624556690091587241462860765261317603435182007044336906836432214091194414786860779922043570691152916372399186655190612004694840687838998899091397853316084379473330926286490626630088697660915948713563530417899605473280549080358215658620411237545220467375435895726415443279137171537040382619949329702802452020561336926231563439627756996814937845739566460022833995437144764855838229002723077440282018165672458267958924710581599986196409088685329007840507619375570102611892239361016629555893375497331064619360704037393963137708209721735951802748262229450537457660029134324119700305656033499200344110683327497726409461903620924474392250702132842160424939456751405149742452448638086872216303571584627765351770213179065454508879387418816917114039575675835626559815588325027217724176874607562082726125949459004378771616413946977687493398231958418514499794400954917228536478592470606174117451581795542712991706023423810332243932987329356419248355363823008860770539493902420710496882247342685667239157999770578425742338619868818029441862707524617188395399493996909554651342198237393855368380893335906031171683908543906233498241982935846387472318687044086467211035488206088120717348194368987029265180974279425305305803506367963648148285229017349047322536459058980950647965305878212314080224303851410728047235825939641162615497981077636557463990999756957573061101606620987037054535945628898608476241409360279375734153588533241770359387684014459224082232049792594440716622052413395270728130465851697632513625739998935066414304973704063132353442518223296764933052674787733483235524195888458880279771119512900776367428371024150523861304921061180150808032465405952567491604359086596531017139903733335285261898572313242595019836358340147264217701964811765568879743476160794496729859401550489902080313259239188578120653315212572714174474341290016070208851975312524173169537421311426222647354280762702470481261583307042520365049908350832180870811081975284751224975498384105525273778046407153400871329815189327556217121586536229811862823658657418286361831028116168669353231698097106847271456315841334865500372744983761420198969745123486449826492689074416859426241122537942709517625737348272615366942815559085624400253254257085242823899665110485928739491231196779084242334632118752081559927258507871961793840985364543293368269945313137209750065821337808551707720048511952851479034233726495775380539084869374878907253862308271117147581299953349498435542185808414766955322511043173391042371875133127144972494629268030971715278969965388104602359177167762666460741448568900777188079934752691397524276419565363322295403359247469429575540952007786363060843350818350925583935264218227082788979848355898703371017052364129551478422610132329734467992759356933293372011995663398314447515029968671387129653661548489531238474744641288372943612440452744144197557958639834426193631469937232664619978839226167905705239099885263071485178394002385569278871091333548485447277113054900777834879471968572649866495045889835518264128956658746137801628201506012422495275132683392983987319770187525934976837257261233717320890669064665423331316626636114228541369246630005783649673189970178003367482820171257209031851749515627356219592872083512845337881071114613021931491717269051119298693517071876564755880527394693030338464940784368035023020652920280429046494400480355882932475431751677567158137039498090568252301882726462473658156463343752187534987914848631664284633382387909691740091248691606093453064979774085905647541684211779394914834579582226579707166516435809346365174963680486771603423662617122381861082368756923814636113550410699108206172420201305906198527688656958299918416045617985726799861023048758272105721603512230953815811843268766506944986875264282163048919530111071142737229777924657422772897541189467123680635730449939993585592630136449323687281372687795917267124839085486109848114763822311352325175318175475416514933385318590356523758240025866143952885610604621753102286744923552242440775981187292561020773775201262641999674964586222067844193761339143999768520029150756457466849399952456656840823943778258050960487241407242479442905822300890036768973426855214063516661866459904420512442697730589057722624581445960060675895678607160422030871199160383298951616081702154675287644924619391664514304710130716037725101375389492382902120432390015353075078322642414804154599717404023811202867317890348194022128545953844512074259038554484348791414319261436169042622070125656273079408429782510645112489181112711867421718807092968298328002338498689342791800595820083924634503561726772782859190566807315515107442828333852924802501560931211280963454739459973596597091504831198373449921513733901771473043318356234368057914680895238642882116438358444623020362227954756179046965253617861467011532099331422822454750967283892251914961157108544251625076610384155821150475121078683963128386252211733128829882020368457943139447299631602964953972397474427153594658973880982506198919533419750162932889971692568069595297383050792877184746866141908511385050413946551505129084423366622066744799357970101567638094190774869794001001319035874011758845223084045562857231700734950371612931234031257815505036410568280516046359520469123452250337261739305337995526681872051178642729222644444126118207967489600837041086705201568565459131501969007068737671283570727061254102703948895760117975845920426842009187908746953798423197661215584828310579519253639166663377182796556300943238307472550277885752605061463451310791112312804703357802988461847275521535384922939601443477477869906886580847794037475904811151892822142979127864706424726625738289745497572979906363836516943686680841644836144329379864418235525733686397339490933776758712516799633181014629966120611340093532948228852188670930951731663863581853020901908650761826515035707839999498386384681382401118273444498084443320385629682690575203104577414671693883617443346766963966704459781719879120882900007802632412661666298885509110046834308251929311399494994763115940994179719315347514450463574960012492307864081400530509963064648695486479164350114098073635233075678115957075483665285390032403684843220161478393485574964883110602542737724657276088982279348926473410815237867358726552355410431795464617317569025739096353531340483641167955815132217334922756964369754098213723127826740691012951865241489435620025756099112927220505315544503881966516340075914562738623385392486945742887246736136545714338335469941994821354711816975055927969231633181382180359989273525217844533039419944658325664979739407087021422443149960694751458715971830694634573384376090062439376217924588618782071844589846514137971057839067998535563486019027727742981375525761709814786984237055809872683970613417801543328079255997265088217767282978475919543421044521700275395673243442480800914259319525434320613415555650567867167570418094271408294383556864179638785694905356503335194348914904518053990251340593637714832533775350232677971678236724891656193844908317636280324378966052910586191841708579442804965324527391502808115906349779878994663357060120950861638944834481980381263219263914696787576100271851883290847740029229130601049237104681201430700334033426003060992795122517623150530579243539580036307207072559440663909434958506065665039275411959373332373416102997926801275538367626485375701241640045079936587959666339273968136187107230245362462553481210032649567176716903526382673893565711905238710186128577684169300145876948634261050709738606461984000872961820951887159572145992345071451657421562686215557055877681508087313337871866685213439574000256252563878871256054627632127915034469006410771447439089870649491218763676585435011709003240449070484663972777102800822580951476664771505783044921939981766224712133508265322199962388333708386849634738132309408673012603413118106240857400087577118351347890636515947163888366400404515729536912628361471239385537426643417105220530501602981798534616385881854307561279801912835828669166465023216791014037193248449682396540262900918658319771314756091384492287173757116197056375090839619429280193832761766540318650960452301421222178668255382324432058561861274579221759010115345640078435938474201292885822542448609320965969657716372599760038263910258465107953723672450477948596190606305150767134153461820187910050538235894051525972100933139983108790274683665797798781811853315676416809476641091414288057626899302227090698149520984980528796937540031163534587185624369040284114845531387412813930163114089284689572950208295522768233961751238888541059383138394713611913638112644046317505757293997926429435721768698639969863382545359301591213065921344843986587423678731721613825559219625760651665939811784651442597960399521913986461642938107680218365809629434915775007937282887075098062862274259415785032458115434907401373349914090603288617467438131665388827539183939274224758984744356500797864385584288111639984500788312631331282513417920178644544642119106333959328645535627236072665549948365001932823543387437944015280087581466078289113581750830079888186485961572700506011103556551788275952565017898370051198641530591240809931369787286410458514593125065774082681668165268581947672833084235716500468145341289197534324829226530163930275858718181116949956297903153081572273355995494006903655988039576016286532886513645423578131774661989842593293162142622430951229623101450037478721627314178672581575332252194513466758999320564083831116782155253223645871538456277150062324049514813038261406743445789863352827340147190066371431978684530820628107084188768041222548160127953158423539640053816713425021926669224370526864670387674270432952922673214342056720497491004020559726583717676541045988569188526820151179028132895934964626509891484045823708286110726939178969676251843479804803629692049104652325142898736411971003658376930149200864889669712849754613372699314556082155374106925628862519743325941917745022749456899651698646878206700649988070031305523040357511093792534860119640006268861081554254770827087713301534018702343925259449097521536961945064059784607949209653835170908830263254996567754172141682751312179220987870947374285745342554820820621385953084428450986399006764658605539634973262750320886269587145855698853894115176895448173028847234726868992171396107078055860049643864516919242988816264550342036210080878222311526626163749247969374537552670979303178640447514222308434331970685882936520978506995031792492567718380842313716865834141583061811712902431309650336148919338403854801803983427384323237273814812813303847814707508384694614163291757604437194172565499313155107569664316181554571070810574757899940078323550717954858325331723325717668268481823109946385979770968789667773709502141921238878256089035475204281333622796641320024630903158650571543386372807711486674341193435841524348979281419906051435695345423921455814786663201351285500220941323537053311883814560444437799108181712440176849388498868215112968261293120235232672361797313721091817640846424581421401654250325295695292099160055318094516744507762210676693858218845144064341783285714965040138224833205252111534208166917300857183556868190468600409047048475116626893392124213938085617737659186043980067299392615925003516130140378422610260206746229692407315931468275704490469252266988190073231348026664073789621205467212354102049904801956092465489972576196229051220916642167763481507587197463333021572853236298439406223778992876322570406027361988022576483147573365303383770926899238985502795353955440940411280643542494895240534231236326137509105798438126265948797308435473115575113495603244949345157875253890159237379279108011224169871751160013706310842819068224059856685595340471323153867265321780111785009421987613232403442314491859178118433851840753794075603013243946711393181370694920357118494547144077955052938619623388333511990069420348079549690923954881762554153048798029367650716425296045109360222833425741228270784258351463934723252318558455099875972746361796295780267177512121222992573054222803911119851852108266166970048952420550089328188010561993926190722815482275803516342918807728431780736226027164355092579449184866746606361839982838739047552829332246138354592156197063507550483996461978719673685374008708090082278691775349311462489181499270842034400529485723123151403357747231213230118535811683586362334011598906692128910515800305166925937745312877607307972994079915386640037356994941670675535655576265503327274482789625221479310299022457590662098261712754786612452322890056674884196028418310818832858555499170643261737621075835998880266182992147245604817709495871909842226704125061199566087842033123318076480908687473540180671636613184534589087030811963891327505640197473548464991538406673454962319986549694371509719858752302684956872869440821989129718396461906715518267448735133953318223123693228456999188592635404897858793265975444087151963146515569179160996912542156568487184078017775630963516946186282198883421093529676217356739710399504889560484499002132417466276465368933905236738984146292554515432553490378749843934572603473002834296189775243398228669861612951863169791707700082038448408206459903347508828348948599320829050682394085286148870692893564057392949835854152157234559926162287725793477373822458730055978511487567014124697137814803056687507378738952849625295351812183750026619074801206517996450220762651367771068039713212793243476198076059131461601256077411844486497988517073554589040159905092354015954349636882858184118414876297287384623051532697151687691043968696927482458718969693658385222572799677030256290705512011233901573652072634814780394276648696746556055642800681229344292005212945734770140826737637443788322263977495389933717266921650735799908151525757789817071610980669459085606076399102051209593750480076212104537501228295484013651261286158169028879395297102653820965953639100401381767801724969621509829681664172259522400753602863688107380544030472085171055266949027125523827259253780564391632863990183965547420030921867235213752638555650094969885378381710465903399622164839230837016210500813235924523630117890088362168175557847595567936787223506649503466321633603697807034958794177399276667119611322144725870341587837761615617194977749432966429041921593207955369471534468087156575205730767013364364884607316035659999193436179166975441712044832256204848940850685785474394228133179542943565838689374088919461796337795570654802691948557003944925050943211967216813563848662922367937531812170298361616938819966052613588931216922627163615361396389898350532236138757206901050534557756389347237391182403041186938367150971302179724161438581657323848390297838151179257216304615860321972666173905070443649389205686124884178533415058272637459870323108662019206805724228901477303766005077049888697469890284495564374607150940603250544677078041267904072398359309143982053085762633913075094468216692079731941905221484001897201561102175370893510212323688912261283480464174202514272044908245314608106383848713331530461070382141562901961441573652422734450851333216302118326318126934360287002880998212677889913160826857480701655238319255954352725000549543061124382722408654354310081218585329577218852761131092311157986246868207784409111999803599375533081864848043982997994845538918341201039851139430087317863374166849323968384007819354590984323241181762266755878417688033823771286897417595082371260917970170362269294802060890159687517864780606780765808653115697541344670247550567813719579734921335154257234682349410248081998134628779122958120549134105544436669288655333758870733633412070212228498220186031657963041752213536872608616954571408375615598732789845999350769791205759167376426517773962036115782089856578755433014785683993771976419052607940931897865252633084303416467007239339752401082465464879520607785965341982603015150631581345386861620651628582387452075391888420896282183935809492200739146539073938654232546840632091260657233109570399171184689357752153507033672820719683168901036095532635443225696715751188124341400299842627900188036154996254025917797344879576633457919980639664240063748920636596428714909507284841417717500797873718510265559403104030311084176724228809341045686870774639121452484968551273471058436428863817758991450978163603043243201285526626045657030386475631601275188431629518066796208949564149467287829378437744638481637544957791263676664210038512710143625952934061844321561428037765489529874007429735666546004025498734155514913665802248114571242356950869849661045536800834462497730858989338289292806182229143541534343712014614248558290737444074236705270085544638564729762046764781515802123055667808618971146089653071106345075591393827602895495421398539500453363945773211265306330597473514688449788943495621243063437345503209209248746475480575026396223875458182493818444215961826502700954093987016025946263913427688181016155387548367100811228443013066638135950576275352431316411612121280160529871372008575537896875839125609124873835032319148527820715838925815791529756075211825143779739168662248662408190384782836664016621431258252223509209967452338393580605494378264711595927382375884471469244937372024857307322613818929407003374509103631901268936839689445599429580089504143847430671452315852986335012181735165251886890989653859990087115464306614972506891921053117345256773459069338897771659281899650863860760758337378123363832462844927704882629797763323173615976236454783141171203866891832203767214354396864115779814839834871813319458963763520617021138009431355446015819121522949913067288519832889860418874890504688294036735501569956385759217765147835451864220049227147326392515156175120279829611939434042449085177242594937419203271689888070031222576924304055750479238185137407140495610819127708520190786460009222375042836641170290063349457456529977797752623133142641195510386945807845178281852374537792064587713173931774383067294535234401579886040269788173980254719967714756060304296078853175437038284661364132301328760526938487116111901040918113471474026769424623168208265267041567415618945550486030060367329352150340724285712752739522539444702773659923817587512347935020996375713307323059351848891793839532633461024992112395901020366637641196263937930020808959879678216232354948197565300301291358229335942469889469634791031450024364805951822343512820505567200118945368687610395628676555098594861065346761013030493185668751236608632762973905044601507528204181291962812570363630162041266845147261436555402000582164897332685198775864692755035029570440354370091127850460027239944916502810233016274703929865466742093549130131907404865555699762578449388912975179568320318293142540546282791895883390826943404791015924387207247051059734914351739781101409971149242507321162716999251312200503695165331041217755177468706527978402910201334102762590558768624853428585063659405230719438695403652883446768958516835784029733577440026457671971645868508728481397507038017869760243985743148492397869432541703649813454438519892553115096921716536837467224918278292194743518752129153786527808323947522804786474145884096698917479609106791115784985706239284257753812086454855292263503359685661926447669511902661274824097892031041126906558835571839758971245879976437286455982862434765167314077689965807380384554842953070783927739766590669765319981640313585078546232736388158292095827490871490488710364715932799133870981603258538282187502851321400589251486042781942241867051267703106876892724219906396685297269621908604386582484938475253240770991829459805952163139741048732241385114715554398135638612680086269959794397994565550229023066877912650584071655142317820055983449149743254930552410136770640552979641494265074882724259235190137230832907862078716512561419220818769851780005506955638848219012318659219360095797147059674915324388475505175296946685644893847607119202820143876346051644652095836158280126934111879534842309076983743722580288203912326463835755236528594153790550474031051295725554423482689276880657925354814619906541075879466551691982900561108471781407813975234489187318733920810574196244367070861538963335751751404500080340978300516022594519605070864407039200455764546548414368164191921692084831158114675151975224563831895665528453756072947261436261012222149290187793686679086017400670794409358388295450671436016099298896968639355064091427018755224440785316696952432221858720228660211194570917286521484206266509244525875031843631163678110158140930833367895731780878338406186354225300675941971275632599339944384913952294616674106394841035071145813218201513022930070276845015173487246360889047789764157027099390582736726167564807578588575101406236918489620486979505579481573804956198812362554888678174230405432751953362998043588166781048679005342195521058536212679221876697917202101607647508212913605610204148902802545346954408273043091833994521935702866006700050551720820767457627095322186469567799025899530479117659223747157339155744658671657978743954618161164018268640443539773362444527235104561775931445521607682181193308905573340223781205337897404081638128052869504374822474814638140853338357708049595748750669740815196566311152919497392841508098981621038314777778907487187338572886516826153010489656254913123006241051852181037996620883221728906107406783826896010336414244407957361225925862714268748093807986277790916817272486229494552176123785616610267672903025283024024790080881620232199028741042868651730388138537053068560816466340085007409496204630442228756567038274823363529204077545778340486164933242921821468170544392269232411989139626442358971808490877859929229342381769000905245877039794474029753157541295031729326247643284554724403421061631340950051293320384449553355431377321922807683534338569792221922830877523333966846121430457319666523660260823800768594414121839994675460261052399160882792671901183090623674780744628349546805220069693386267369278873199709967827730770004247713872599439050836432888983380596003032601339149597781132652995218709384132594410523694966818276704527359198496907740718978421355539529314261022123456555692226734454418769116780645534761314249989782162191987105809492713252965930691095236925586931020747727058415069008003292367298444864482421319754164348999945832507005063132044528541326299494885569210582470090703288677289956230770406087348286021069775597046129348848072905878050627086064596517484681080540362412168511344816950291803185680892239953370565866394050910019782354783731760917388813865689738023814669052768165798022126285742828584924876345594105759641875690436240022065659849080586702310253597505070207782236810224517946634967633413909980999961370967927908438684823149112573960848023717744904757810146437582809221973352416138394604804323631707564783793714605701384212205853854016069055185814610975200385283585105997227589156089584854576876320578052516115522739007733908709999883385683931462412042537159352660591263415109884975624281813670280594619636034354246675135333190763563773298469857713556111728715929927233260201988673297233224843657576038734811158142061643844171259157138481617427750324736216844638059604769070810380020685089171255391596989211111904532458811081016045183598634168935819191717536104264401928224225655129114502035548735189476630564585689423282303858985506788751384945941863012323854539746538754663902698243019484027097673105919284039718189298781005609510939003111490353962119237252800461236949398931503142138656345917785306298051856206898635681140549458658653667511622702030416587909971754469856132836307487825288603160347013623476707163268233637368031348469287619318680949855992590014692743880222472762800336048560036139684431562295312075715984323297881936499874695068424418102992069303334850275803430867361341707814706921923660952559051016554158869889121903472927215546549696942285988467466648667262752202492026978069430943465814809509492693618363643940766643540881870714749210602269430122211330580269295617036600766186458119122146994345114291897170121507027443550349702829089509126244848391355339972110828221969551044944552663859349059618465987509020362602183371225196803390874311771513482185173247681205317998182892493730966990521209449179896448531369043490552346021694678830717922265963038554006078693670010895735194394113244499431077962532632066950184436359760294025635858592365950790106263066621170233999668308146344780909013328215598555096561334008863902302479161492858452441971633531740538756654611163258726767382987576863818082056538211807621764648463400824825363256834313253130930104723642608918994773355347884894826442229756522264560532003086759564711567145408412174726959853832091137830665258543393913449771721710216060477482280423205492671599406539989740406775507318755082893719735341035417744300141629690415794755905661805809415963123420316876430638245825311258884775294039230539499864028246886701582244223731645138035286223098704474563047644676832572391309307276671113553196742015581081460811943646355116473470587355299710058435790671705600453041823583132068896150759098697142943702681752597670354126447382166410834528760349950699091211635513966999932696416112950378265923057144152133443102111567435635786712668190558091615293274847679637836853623510121744517548761024672987282352752479661188210937009907659889419256916616907869219458505842895983001216160098462693250273320204665876706741584440941121946497443617973512815900260239622726931721373028691186292505605987849778795530474355578722334872067706425191803810521355621952584941042027404307932245542594411093576308066152566314324499784390731498365964723568260203690004195827072449746656022938955390956534952817828428023648381821782580464489404203081048673920647151433780484600236940043651717054109334675616666266990557693574295332114690576067550008575549222002704792599540749347177567609608459990474076476656982169999401123809421713690726710609251349228328519854835869069938517781119962541877107865638532100216334269099921026205287878384468509441985360647713490439095015883209361655136217224053094701351777045469498384976103907338381167510801360106971990723810100723421664946901434464842056202606138536737245819787639328328787572522020598133474254452297110223981771253220007437097760102067395661223803143472442234691251607624311018301435151312391302319830200332806397752938564422390285454985153693991190163973698718834778765417506298757694576262449182387721997670030324381215625335474269369088300431464466217113030470710846275489840811405034443440385900158994056457938595560660280537766685371651780886889120429717174960609630154948238560722829207985781375035452624033996921357672963376296503520633546548895702118833345308512147370339557103440169059530139629483561039022146744620700178524203306309786859267537555150132807999858955772565110672279873500144432087989366615626229367540063984696524903525735399320185123580917864954215172524767717424267842827444311719653564782940844706359547627991597409108890972853516199463803680880595274741407221865805176894972982264686842675476854889906132934658494264174933684714442235890177980278482011983060114734735312436612320182793915079949950427686041669447808046226950838781261294108888942493596860579635125982524224512223041224491310436808622792667520125229928609445801755533974135156384422667562558613914835434726189970795308963137177246761371782222229190143284457210838093253973719662927960298619911976412491138644886547712516900048805780321777858659486878145051856515565602084428922852931458591930100120021891433428291938882277879020621289996374532970861191694887247286986151774887496844230674334943928669876267088851455006693265100419648602579758439377241668679299584213803190296187139493860865321756522299250509992570150384685733247383411914698517043249049110695221323780099093533314969694727549127295866447959378530773325218632189611899513972684454053305168589382011148189122815545967235332876472120724060052763933084221470698614746380477592013744832045308576623122440107718434562345509154737679940388583695388329963628664202439102324150349730829072581001690528118313273108488781996374146232497301976950461284370763371711578651481905565947707785536915239482355487132548409416645347463855952523377608276080389278998172890982362591495250175765721387566086893566242669786377504169478678976463079252580210235257927492863598522813971653250482568478403977990362126015634543215125721978871696777635062911735636109199383398113732967459708139418891529371802032754627196437278782778913949496911202509015490929877706254435220114980811210547858920775011096899488582938403013859341052910904171336049367793736937029995931004873948694196442464263290840513435072345396449318300541218543206948839565907398515785783741881094177079861290435077956072543898590321146090196355331898124924243709679804196620928866639659431515530728113020364525126396154309682759459832212219902633940464644827984173169917743152465554091333930692228874289781004816125747299987242167904907043508398401096678257471088909153436494980796083650265194696365826646236416974081039697483815407240904113402543472833892588381257261836396928940181049762895157288509470308078944893928019595003520594169139962919274646659057555901513550112201643044198774271831379865156847877621302030141038405306839446903930953385261301951110654622149228606044689271694068604101215190950386604648587198721420976122436891134261310464211685576704173893066150657156462723119015091786418655476442216218990343813221232370841364571952674447442972233375492572167307393753208800547874669911278003588792112653191519800634021973304415476303507865987017207128572435056367490242035235093251717326925119783124485245465009790286188399096555518572332590721461149910251752670644589327943182362673325855213275308230631238341419941275016823148448676265372665732057890786244652141551095625302402569359774751663205293225990592961902244903263088666116669532742492359834059100766867492536723538351866453458989501492071973788991926801396364638746314883312281902935041983955945372543238515162587926643394690231729032996752734829485380510295064454348566787928435184907229694911783630680188264586169481471477469372881688025869633502969619489623589973001315151625772227223510123248600522781651495778126937611686091967229060310173010664906708226686065505260442063624043925334820192167027876479124731242231189627923011431487981487661234761403126996214099318110944324271867563381943157574793255875276931625675600208383549074679109502877632033054527778466939516270475367058015613386543412857323002835409403447012999920113901830874085148482932757862394890773716638410861018509190075820703864260340892677426265598478716293689209004177670556308378655667778350247324743096141758932225201454831132063909164538714038710377130150202703786533410534607317627111002847572572809754480449712980851416997545313729761532708668132206852724324333591819962929400515951187071673961259745708609399922736795292809193330437990602653575548714088672283598005693811172055870874323245742493210564081814771180211503616815185107132253853231234950743031822171506415408394442237292671882864244466471394952524294730072184035201398926293890603360948070152876940874739628018341986767856310633098233214388699289342191189215239884081653214175149836791539107018150883521102032231094089951935568754631494127586491501877273142941238532297687627231860033612229654572309166410360563440019557214990137897574977940576600662806296884314191891453349605254396699239896199227345251451975499418172710882812936256905873690769192791420098703824575931933255028574558346097858876459638703244762932976934415288839763052091592057171380184689427452388108914758479812061870696810571315063936976312803731444973211130369500827323294367504898925429317956986427776523057629070697985441673267937481419708716169990606533223067166073069716438119883786324962767908036469459403838312757798795376103908806482383824534486762673510987227139525857515972558792592495086546227037635390999956418700396781102241857571960403525684587631742381246388957391715719215479715233827536267014048213644778601656848527268947682832230845913791898321714947301595860129135965123464298608014462113683419517706740219618663318047601435158473851355893222486509730747348294876782829493193835705427603025764639705872269671311875178523874468040174596295176976526405402993110920980974406255938702414771824347585119834473866678394166592858683977700090532603186217743471562075279237122914888556093861960434617934472055142259296011152144909796019679974442534279874236752786736425915121624499846751208365257055692186898764189530358815079863224654660694106208314984674126283952580891849885445913846685451169790275603762682509772796753627652615669051806988354376487422975081399797468865244314419853539997773685014981692486887521664073227621626337925769820905676169896494102782195401277259889629702483338662128818226373247749761180901194017441491822854465226848557407941731255806149294271427600065341633988985348814985058548966853145271492292619805554182247528215916097117891847131666602248429760508267075635683243458887442319385991870169694703732706300071271217451800506673717488616317604643882685917219908703779263381721981015000303367913147889404114922655891645420526595549339485141781599509953425614158183363955741691061079422533887640310880769348287141897981710686781285821125945656120814801367728450044255737253749071282583718941995677136014806314978094403683936422305096581888715558996750666607956130359795546868047066872420934332295858548117262206172668845748731872190688825837698772546313138410989511505569136163312525633236928960760142524863869766071308111561719818978771778457503409773895497338122679037348741441584146162337380377757752134065128841481578044424525543008810458879751941371830917256956136856690700395572603208041794006976287489083860686733869462857409847592517217845231932668147807161045766859749147474937021931521244632852097140344984320333228020987651204629362110910812649616431454212571615468303136919939867863801556617809618360489582610598271847876355039000649923235358321492510095221719099773858424078148628434923876722278834196786176029967671890378781793516134064014091025145157230693497677284811019999986487715022942541103482251022275249728956644221062704185598666671048524616329104907704422889050449799030767875007686142040618853853094390709424852735185158711027254163788996999065687968408620452648747396391886414319776220129068833973521145043600052969995935425387861779867470244540524225765849051438530040247929543708947151365126026000762398816495315352600770044630439880990602418591068775057283587368255517467033530384857335711046449463280657541138667987152055050695716366568376263232142826917388389881186931534940794240703142793986608853135746431740938777310451466771385159390655846815417916332524531157007143782091126511082676114852216155601830977659793151086287674904680611202251678604489056414987713633918145946676299181426926380338553804957260114385348740734117557815256036997220504617738728802677893746867619483722669655531062932861468846029273961468181515199470515961872849667889953433198497626392002497486667993040021767121117450186243724407463648433680071908360090730491296435974918379061727647676601889461832594044387843295993255410438653088236960190976367679181605352092527064221891722348854166986233877452079692494314644138701858913435525764048987530084679903286983384964880294577097120382448271164629301423184541095773041497037626589930567719747176780593027063113168489989724935312172372027040511879485875820273635275470437646396179879068703699205375035911654214034179579801373783920520023558593164665873331622498407166177458905855317292326826835187456870307041074567182642248180658163766720678592657824685702874949952308114710992403352309685031890675205241247671073773798336211210309865497830724339682604166603879975924411414936544601871001769559743151399832058895587556743501521113971959949620420091723236916960195027131059250234783614464999958922466037944482286452321941894229352647084888624293930275404208760993781361734319039931330453136400189331487413353120482024680468394770057277301934639026981304865425702561962299855998596011554873796669052323457042190748032899561832063071583686582952431759299019927385821413721067732285184291445419183107978907780843436880109040187682009553952084221418786859258274449205853101635594118480024696528283141945170390975634263144234331587291205959457821454998308249457011378321185635158653758182304231992567452428928076170458700696094110552132867219308156420908692687802119627779687011266299193558413587817072589862083981436005637097803041861669766610716226627536448742275624437037117995441342193988240967812110668708751712100116173124361944280270926368295840947001500081449766350467356494547023630287330027408544358969934418308297570107057060542038863374832584303933549481296132199540850958290690188026279149554681585058922494043737401583793330052713409910895316004861201199161963976632457724203668008854698563251256221481665698500234940808751595596484107675101339099548765670376933340347242487014721076009154897980300249498146108216781156918944604339923555571791012892461150969937875548804402620560403260082431591086833201865335718811177557075030356940880531739062727328564220698526341420289639887532941635862871257357986979079374521082287813645189274115939233305921099823772503050918546113963158860803544011736261936910385401322182267050282932548402115058517434545896237391589245984217091028119011126828581886231853387191245599466953904886783960743555066947928375483375953611082460489874698191537006987751621175003922235860091310207263086473430962253423899657816981835810236018102725952757545972124068869279326085534175775765970509704309469396260242186036421869067597758837348538890448402639059449190559943566247582677187039789292284532373314895075185997864853734965922417663703710482593335306909961521388926105433879318495216320940144390550678778633512814992887540551889776660020577926230009866632082583400969485930542639733992586907651398292201545950830059489821767539196092290154972459617206807144269979773251264762901948292336560200819294769289431906666945311571633820606941766926978838087704602646347567950883273802681708826505552094750893335828162376131704741266657906593337303492412030155152731761129648114662321248103643156141215514061277010372308849008748774627574008089485031060991943378901673952499143924450924659924499664650322838425513693053313383780233469812997685586332777749017745736088747813990597880431370313349900006573532996553513648174512500601750819665288720436394693583830546879549086689677283643536637245272498060157364014570958082493518807859940721935869284745565156792261471042669126697245505631814818200199029519688074109593898536692486998584046241538719878238852711303181416093388316884852458119797138163557989049934083337512433631415274720825918601708395213283355984360201592717807712926861904122674701039013143330268844221331117756916247974906244390325959334173750340059774390380814561116894052671727813161383500059300164930251195591972313007208378504403993335593847263729126765649428116289210437498547769227195834187634973149584722399840480458423912490101299170337146254248864395574112076390727836277726982441282761571417519625454567921140713845174550651514407127657617469229246396457399983812477984601665317918811220963232153062856569374185097862703757256165305571444358986992793336057991920455253215408708357222591566821388004701169654521328713626783866781467632828054282740844663349956420648221669664661905669379939105522886477185301157448310081012082528079067291678133423089116791932382017575447601611730349527244191062389882568948719387608545212284907631350609136248142102702174913217213269675002170129923611520735191249177061161732785536810076808381423276157626795901934734728999762596535230052338187733487168381216442874078434698339062206700326680377323233684364292868185882528962298588924317383241119414489615544239217643536182822199673228221754096244287980199589927939806491362809481668166816368881559850648218387792870881913823427694169550310007695859364113497579573187697683901949929638605663929117672551751647119508962554103978877194930649475753710043539302694300603578328863061062155691502400278547468719454864773627275061538959826785117903078798165500820221950591951510535309949647205014765774753637956915404817019290545343208805960163394021305351083575925395618310855503611058847125809156527047185009034984237480687410763954206113554170468771753854599734162895293806707037528414315918498525276614919231042771528595753375010355937039646411187807339931153285094697590465110791333001125220137809099127767614358650757913090732828648135279503719615949989024533461437796230427830475298113075840639925890598900203236024980013587464350926700487552463922845922502454387586371402712857545836614288851634625886965565860184472938384732508419617261015005018971257046030505906109259931989502248029046238939506728950919807928386556301337723553994535380093238947189621114241038702276787907650344458527641352477949226115503067271940396514557995259718381927154261844574068676996225455566439910196481548691792314095302471965037819945504796653433279817540976510541984573742777690923403639340247962201773013848322189162672181845864675107429962942929779573734591132258514630378997523561509096151174529739263618502208983531326945970991453521428310050731525940841178731124889951709865500134578634499429582997113748300893594573558199905550752385296558443518298107790693426755003355362788406926086289218371704887947310318451780216569562309903251275615864461367815273452469406710078674307619328348844423194505949692447138715138971785017203704276909701186066600667158012817973942320929610128854374505283128933585572359245007844416905728576956347159628206285285612819999247704194068299253899522530781395614685741816192317078384427977784730707097442231373641842531198092873829927673556091220324350174189036937699371195382071724990899761149598676551844852066845274195580030747679340790135811861073240782917278797675384985148139144569011232200917099058073122721977531231187031547024535976105901079285970928840469007120673201980839421057452038561506090568836823258737180139596073138722162992618792014281536919757564172693324337218944760495223238166450691765014867587506367941416238131770866931181369440442177042437379216676659832964402106977766893426189024237392095053284628978113925336152632970362098911978129366057361398483737506743113646371285529149086419363658210582225946931253840978405111404030805838493638458089529690036255787754736272451661696041364194190528015886668705778110997227607663918347358410855682399482972151524056634128741879496260536153628776590892274062906605513468149181330402104501541434492784328908013905351218899442508060721298559604566026273876441184451146681139110496084952221619031667029581463336278959122724950766555758831524396241722301884861504783277590091576959804261348346843751924723389397503029946910360402762492567580276443188041296340975859742090245657760276368490484964551930206383848106192952883439853102370997712297943535042816111153866241336505428320035416266121345682380166294809579890877848167404749694395275495202960094085239235352457566784661989936917490474960161585799902077299154963885142389464123497883486665479070835752423119390772418517817614696983328013770251310026680437554309838963766195481373942977385053735052740126386188300948209206495768055609331856185050921592774360197431337233126020894457806151139225861468327625804427581443234241899497627668839584754324710043753916069014885474253445211948497376538017547760001584010776467769002615374291861362241470486700582226774744877854744842317588495801474668058988242832659313205836036164459688453779155034778324967661976784704674758397052520511696860804757365775024047474588276602999301886351422747952623419674090995114199468147192560137983993500961183674001830979473976625821984280303312867601930644607669850338967629103465740824790190782061818446376187371882201547656611266796712634833608379051492438018871360262562710770172598567702675909023012144284920277486293147433992256370943036608816554840130202893322238256988773141269540154863758241896888490730601841327390780147886358250118424798319641117371981463941100741732492534655035229158491073201619827853982299933832646446293667416120987136559807031125901511000577656657884298375842058376911788283200872225275280303514322799198991037138485974247194471495626242578990567860163885817527099849224139330871396618329682705736593070622376405898010868164464613742298025084337707191649917915622144997779826430369736790929527702257774224729523513342827324925648447313387406706403001271868014063644844609084230223454506360829660476030180166777386734026001242671748231627286476538242368307596807555516434074775543769862612278786331664206827388872504880552430399922337608350344065643413382804145209031441375533402757209550447194184086991390568200696817050097739890976309859469400816171664830005445821586345932048427893460456752566243146310263711061335146552659132843752994244462520856043700742262752218063821900262866329912318847922064754523825916312297932237405471627198682465357929457958860605392083479994834449075127029803390587265110406856551813496185583845121199586334744456330082061663469048393909053010565809504381158812261797361003918081299057605912118750433253416700838807555552043639856136109913878063395876569060478561632163623093803357775721792001721765464066215346689375573909417056007112114813798759678140626328600981991193796909746748756486857370010696469616216652722119240225634615918306328470223260703351393914977742763950976799204612854079027837950872752916404967418040553495243339216914786505558702137868938370899098107346584995938175358143473112987347929320680593188092218381021493043816552864404008580052614989282642245817268639963398029283776030203146449388528472979470050551439284908814671947074212014406999975882574382445517900928008444246594560905289068521691356433261254268841536127328254215810728081299872593583313571552593271557677385802257683238422115794484734556988138679835070772924559881943213158871291577393538744132613557436890809794975934138098936178923069448234522002104992137423562745461232631744426227733162039732204160322159230654704165090313240834744114836684217196863131409217027189451998849165632894249550723493124240310317233736668570614386486740104290045999989436258876971211138512887883428793517620289984551737405507550660740034783390537263638878853010526011835466734019921023857391667526987345305909438329169842323302148303907612575963465590100399631453049138361500344301524436025831953600382568262824165276193861682065530066543985384876079297306442322849896173103986886791147812080937249673909188158370053948694168535246325243101893266383934290044195049633658996233149403353121261281526122950756451897181875531890849414307846392798054923389625871619913335621179837086142647145949684823569007607749143140444286614215338016961712769091444703761922364815511364177680980833586337146556166073584305061428868696868076034106270623166551839720964440036904670396110847422656376018694097432655820874929587294078322354321332217768710741293244209839845226879366577921297837532520586657756582733006077184702315059083810705508815294652517614571095556417522644289729739807131363919976929189437650010710717216359477301563704549006507121421587995064884768496095787017100308148833679473136240657972879565543463528150101121827366568128678385657391837792804729707424202954471968957369424638718027769993582219012095232506834004868746038657633568978237369327121028448428313359948201823975847119842973313644265193298754900772470557346863855043146835427270407010924376911643806040564635538753511895875217432812253324165398371477872496982686524190899364115793702666529581986673195737948996439921831181454178009805756425452213362540184938151729597416802904681798948233842355406550022519986758219671155076369577593477968895126580892760330794288031127216501090128455058772891571782922392422440345742130042114743047581734142915551067251485898512696578702287047717953852762102144985671644353538489607698107931999972944630377878012587806869438531679510995939265404655677460190759144455245651903155557166289173107799569829679981156684199597266393718239439602973377987338296784403556177581860557865030068760812185292721303363530007155202281610315454555415700980966467955590772273525697316641816734277160161648349864279590883732916883609550018307888711580239175538462041990911850369067455599549938696840341961639787538810581077480087906785539957785731853462364650074951508503716220765303548675420925466476616504511490111691572298498311878179742766898260595022476212090549343296464296182790823885024596894006847997640122088253383225022439524366374762227664725695440551850319221264145472948566816682017637638930184827990706314373510202775664061854404296457023477501883344814473733692298195409414827918228226726505004687301405725388554200753265739671974611722256684048421287698944113616699405496490446746509225450547015650124695815114277904233772879225802003574064430853394196073652946613465751795566762591725179151171342645920411586102447845227831325038580728817053493015202196852902847035126306681773181595079387268015841923153337555968578653788310056198144715594787409053282256321308520285307148093396672220331407894244730302288860417044648712604001684286819042734165863200510216314496699865715939165138846291628686283782863007610281111116316750437065837714599308957483980858239576402915230849854749986903943606167405204119762824882652558678789812964185838889136465469254941339861459943005325963571407176056178823667664189969371415728496947166212672536303818629961611531867815296625730639171972319763218197752182308333619495288240032925488404504192210379527322648192058390910338003183121567192678566643117204826797903815310528102139028180528813939363842370265324056727478358910654148299071771948820388168303029243794546502989403058031799896330990803780277236787331425306036321673309412982008649572114088851439355612904688154576679323166238059140693236937970727811925689337705815045434610724673853417820177754349468765209119090207281267833914787168059429921200395809236750027550628737886137750473846474837531376040225960944747694086686015444827454519321146654379374629255086650122002209986193066662379655014982155943336366844687511839239186677986802047184321439982307893533019058074701870867351607541997967406386408038327084021079343717065251873114097434745022555181516360236767883104728182563830319802559837604745065976392558888166199063896639092333125508330367153909259632822683245854768895180504144190161496484385364936528914449706789169523175302115646888236397171619924627729209553733050868000741487479880097490648112913594540048594233877843787075629978471086423771132738018851899378770789790785331315747219010824760894989793323916838523733594588305235112324116383225079641410490572713647105573710955385365279577672174993213444386508235866821887914537449403943060341288081276673838200138004335563166606863457561979652344819437218052780897534922867530418340096737273965370146841087266661071135077362289194047144028565843751488814925480545750300756414456858237719715160662665799227759887727326866561213628471010054583521582697415530553308360070084341073292427293894010926278645251293982034525586817693490305179418925741971145902709858185917120741315270687124133359355047581629928619006772543383956660231211370825032890324327004726547877767413678261165074066646865961409549005827726082764137560593153479421549268036020499364947441280270249276912386587210734858191367151213239438445137507539424184921289062138458694597006515982321270211537029343164525382878919086925033120677185508004831519994493206669104640036953360791109508303693439259992714117523247802576454093596240857473731474114292239893135258698186779973846809162671387010090799352513156745235521123739348839555576133466027224962257683680784475882499887978141125134507300399005720415740931188562391094200943918234449655550352299734231548246550360041112556480313962835232751380779740980977133399177882093077350565539060804225401306854433729680926753905709127867391639995732277322623805681815504781912060104756673785692329798869669911407215504365784605442373063482492267286613037580811905183850593642010179543139398414242733240267493325206065188580694852254232409980548826571320819952460920870624224540803315770024493381344708765190431775400428310103081529090967880563181996394336559846451480471186950514033979595581302384685256973949027932547106410329291838746192545112715391864000539204221458865219828374442460843998411935911670897856116517573382737128700868678238034909496922017519361287520820053188099398931441345504277725504657025232696149012222331386961634389369466159060727538554770379298882073229512342527877504536955444513480642926100108337523862642987785842390884955582152624264704714894128716608991685590146636002494365227329535698371324389954470068030678967007219735018910317520141104564175941815790092133073079993365898028559510345908084036657713831962747800803983303045833894471408804095366514634697797737352691457924209677021244658317719302799347434357984888378493164094025478801567862815774450978072827388078871819113140603479217733429436795216677073651369949439673554061771067267583901958342842228936224270001718742928571064274869512111474429058148329355075342936578960498783838238683582473886969037123821649565511934871635557646994572008144445050178678481704471421821729078407704213465383380134040580222304432247568138860334843674448026135143155972912360450758543233075149149525190496642896240696794174758423747949463492186471063029082693492942851806248440781901712066627589335789334559126954768349770245350299239262814296133780641529329223241571991609945527720464067743224578069291170508966333740148589359241026940109243569813762303827199382093774371890210419402366954335583369990401171966672425768340334024032346515555681577736954402592583230928570750817382968787320259449981771177382720125696182721447357519616800123016309289084808499303965007826988813059216998067275795460384676141526017508426841655519990833837872097195897046958267457618203543677387573743758824544837440577594653799389683753211295725779635802886501404528947957054113032658978233812270008517512391311382520845562224040460464308836687987255440143037804741280210653169397583217925839696613569067364119297601737567412239314575900239523350720400420060086476960181928823858733512336792835880554333694094501923379395685064795852429871296347769173572629314482553828395006816643720407607579474122327619923729889060146920699306180095360854523800731750094940177536870909178712770156018648361278715050817563192977046672788198206691345623774970984561705203035850984348548992780133718080939466551813113127670382681539550962039333263730642419902633102013207619706484973241776658423162695660892342509582220626400698958750601591355690822068587360249654305220564115034547730109279772210910480289042154965158348481858370927265090817289778806336570972044010320977766782231072048601110133455984347005667901714995072541926744976359960930099687576761408718169314741373382012710367486611118227222103139250699843334581621431906970436565859494263524212764247544283530459490751334421364486228163110018401088739894776899907547379879607722032615869293660989440620281741192409738542706320688850950687253575630077903645476071228295959058152387592759118770823674184291420852807168621542493181789714799299986217378489455718653696670432306198230019520211874856158624465872098553511382589823071964839028172417884101354789088327638221324216471861517810243423141869733115581501044609274618190132412572501187073640244483435129482901753561224325926905092969556486506456045778858175388910505328149870561975192740962276263408478415376102474081250753260410041295823400178734692755378984104813013458694779622023594878505407914649161435545625152566886976476347013997154055355330962846287864354687125563663832574172430451669706691319982317342476417552544759242465731382487236293590174983961967053449906940471086218461807832202948762170241257956178186893792638283688535382653757120497074140963977860889643212616687773743360320683717735420586991532800887205942623325534985821848489173305426299513828979394111159206547044821983048713313303720165076929342512067778717924534994374433189605524690000571521144619448292339164917304473120090975454738082398046055192732376631508112000124444108338113760932660060515835091416997760544419145362045489024482619961585370996349525210559690641008388739911503195224539532918989492788878153726434844483342808511565955025934899754686552792667732628540002809935748149543481551772351252489544282377485905294346509060940082903018474809126544742717806252852797296741947800759213369387596630977853295957945411843846056485600349968359029229946838036697640120329621234328891181496599437353598714385173664108383552245057710818807812671043421241076950590668066733700422016287033299759962075685902148818212855678268886439810594859826716508865602092242084278690592006788270840592155569244458193548203835459486006837550886930027055070336616338650271579899137300332789391680839198495884084533701532341649467417093722037036040304976221089869015530532917535441855012625992170084988072830638212266935843841040597703516966023668374869802000411560479781601365741863661264302316335246366373173492615660408083907934928879430355600994155935597580577707179509090101160959745300649269590261290501043344124936219064044939432841436004617764727399851399486895280740001605723187868060045303615719627406414609508069115873656951765567275311775588682144831059893947600314185617240021080812656885964450555979262593275044803513473648554604052349138021764144617806508998499475566863020069115583444474446938714737355485507601767417470400932102656032497136978233544025822755491415240974254060704728807103247860399061602543034475451543336260329915379343497689483002750592754279321962513723664028700502292456090759790340534564855206626258942747987900774977124548781745744923130212620387598976081740788552472559994917574920641634105194200001762063942351546684040256521278191850048841724850051795757120105567468215715706209792705103443123272727660454517916279284241013964263332552157171976414179092912971700200621017929274690886227115211368459661291336513917195007265064084767276812994665912633276035721126203608195428555673475226723565543215051531132241273954814790933835399490772052324321696577845100299289217858703175111600541447975220144633378227236979718967899826175943858832050797474913337445467189769783547316789780979323822692680587466986583251955459684529301507995825271363121536478333839914767624606328537006296227658641833498703479948427256472883521481310381169859006801994855528507653664899862534476604834017168452622190559214583161139785638544145386951906514319742472030620677250567493728050857858390013693140596530265415804603542975916864251984621296991557124622557867757809654402756428737173088408776680564189716449270476271284945057976163683006334887068419793820718528288500177208175882750514247056665972380503089908931556142665896392630748913332262833536699812322530102563805508663755500020678047605730453138625774635761343197382697983944384895540094382138875142407605266109397871538688263737016138483948448873731139575921349205777831555793216740942627804530431664345092909371000892980226042227885263602105375817433955011007965250859682332931718131716540425158011297855347727900734710666643117484817131644179285799288495996471316443387525447768680794404286237238453867477324717855859306460271129890743848424503130120264519574348912400331874231306434699541715195271649180540670458493478452146135996695930687282011019738423003767245644501412450782499761943537736652315029912556451128612467537639155089821646334078339257841278196627166393635778183203123047364050714741987931966901904102209329390426053058496690731511621932981346372024211518791935781442564187884087542745659959454813816155782515294017689885519474439551170717916570729537157181637940318159253605624859514094832069761517812878567977268608317031309862898286584570909154415657795271697809579345052052051217374550333225318707004770360019489030997223063587720462791736912917394397585978315621579453862538420053201365505264353934799058067654370996334012805791682684582766478584904630045020310203137957704519747916055934430300237329639621949966022105882987150384730692024023648124648456665332921576121744687221918558060262604564870331362713964752271234425798118275252097350495346939338147684546625229256718304847779223418606565522703556006964013167989201222802705074352121445511397729724067583333650375838993592399571812859109746564146782800359338647975594756564494162507392007810552567352509066591744105539870613775801972046306715393177200180016809989186754541122502332400009093826167501224816104010385082578993531304572153838113188348163665339862758879832438630180075976528563346734606871424959649659446719083211859176976552097439411660398724878911261896577720312171184607117407041902546947266035539092589332025500718505261470766223689091951098864118555696609903831597545151038923962847021050656955600087686715516640482321193454903862907841420334191850290494924512091624642586152610533504103772411758360371797420705282551718898289349196357075055037885915417620178147207039445154107951370622007805034696994158287313873655361466518723495991145751174443216990814482683733419496361050076442252057948429367846551755763717337470348801995727920500568834691380283307141838801270485035159539475421866868999825009667490674172343573507755284673166137438046634176598757077962014672718983757469970005736597842354020212062649208611854702097178245600223990972897334818982919677674189776337236956848303289717829626414556949270880401136167574612375240853760557273024755853845726468687231109531798862454544435330731427974688320850571228023072060179374261574830321502500393746546848592118293722503426537364316834081120816425557513842697146016331109349790574867188030956151933525419202749347675736993585925149945864605897156891788766917026440443246669519527173906004547907895676619753889334112660245640874510949283281562641683397470266276420787987551200517414124223761810034418046493160586438696092374146119583132945326772782020011859987533276106159585305100449383904714616757166363257301506106650573928097144892153398795011817413454699273097826352648215933045478121229673267927658169019890261165068513156257402355257282282761749780401354860562847251046244331873411338325379407660736451350889639322909558856085250149596324338718562391955341799711936861871639062752575907503001082511724653625308210230140489592466766275997778663941842572863420242360567306258347724336718767108902431098572971453834027763452339114316758287844919359946093844036946615130299741906271826961852822055840736953214684319439709702520855873504598944769618306263966341992410567754643797673415942598138635512980343683191121830713497478168510416072939515189691013226287976367932035151158291896632100285189292411642197281307970990849171862210008005733745791520061551192611598548072385808050866653982953205418641357692249152859096960550881665643483771985972074792593351113374970470319268592422042961261240083582558490477415531779804701914269132319245110048504381600452882525090887635837937200005287192853195097632956926280704639826600352914083180979402707299583618893447706802533296341515017592064076581601884400949976912577390898603241297488982325203299090459123561732814879486534697596420628621208417927462811272554238062298499264838186417041174875178098257589638435721184797128286124698428824413102831231626287973844965257695067473705903443796093661404557566526605106127727586892203492026952988213819704892877291267017330229940394670773440584109327647053717068698918605585950182730290369123915398547486131316446411810163173805706054828046099946260750739418834965154945648212913010391695480537191162483798976965340308867022667935480870505819650995949623553123457875117719704162350426940209003069021127731286074470229209734599462118744381492139844447723658006336332863789092582352784375548883583743161110858073886571794606488204022561896178012011119749860156379217354251282595447552019585202451344858016481330040660146013652301944443678972782798073783285231746092865584863618972937469131213430414817395528036314811523098821485658520882522081452607860086583650341055067011963666478298237091533369808742556231264618503210006640825725128812675553208348848491495309801210295476396356405563442582692266556267407423055340311849077475893526026088727333413479698104672360494201124193536008636089564903564216030328917442467831532015519281224457461065090614913716028068665382994387988132045480626340141729020980488116239272024022519392517795247220300044475278256915839903840459751751303154393275705973680121988010451552629216628804894675902792165741157841340036880849591752405142606608014669223266062155016493050166758401780615734819267210312114461546234354102773802586782823441901539325812674671616936032851134431528491180188317661787417679585733089566207108336156240549612686138818431145426622137756225870622884914522092148087504033696058696124438542233863956999989033998697908385079101491683094826768187713665280559882260796533530070786496791436313900409544425101561200187466776546606489888549808075815564774871334278616560671669727149257361072983074405467485222744985666917892548456055849839196900366654513432889256248239204355566049064130837407410912135259717876745396213265226458459426413539379064237195043598231672232041111252036164803110027772745917056603941757873470952200946604443880963236949263372854994561841386145109279024143667731065267816256361926510360009531719502548164524085062743834024713027749569780776186038010224708186770441761830928002466282157626892436069817833359370969680290004458685287226865400335168314308946680849779534101768020914882847784611593141223698674107674268264076775979526291628869440673711022352962154181245671333903213568665507075147579992463242187102457230079715896890042993548226702810719940140380570510040424094906111955890807755192546031945113416747708708145399956389992466561917436313609526216228556247656471082070778599024910787595056954160457499906816668482143407310911392011968573487142433347286442444786169709467905327057082902604415971028412079766200213122079859219092756129991638047537921681827847248773717810331922369045680918369022538805273355524748576017885146274323457422361518689652394352202845749326040934856732333063233086574843034902739209654532240369200074165501358179935222577148359314917988177313313110221268899390661494758466903387225250620415037161007670390274455871243191796338275382576933977101783015324972334700363753761561738333493163925367297868369470819474833764411408469829743346511095463148988462540991214389712279378291834003435866466204314260195271986021891519672679826316181099913429301537114541006835761872496251248518401155702928829792134261325266439379608381958760702791236312756055574449560598781123082866032874048169307419360111489940065307681226118430205210028292229394100027790855952469967799973462550723023484950962048863870776767674969109168395578651307951213158466786744846702134578119244711524004951321000435427860651631378957276738013457088764301341273530994546642931059219927409002948602504288114801308914263981633747503157204767234104887202055704817222911596803795074123622123979609793882622055397091486752337856479619430406245992097128464132574327525531696188486267037203532828157628439408096555632867817596899907443022096956527317833923663343658624364293445310373648919989093745904968858157056315449105695298854633935773148666654782285960732338902290611541050440724463623744344700342936857719318466710076286274739741748374677117633964370663314893353109410839307371511482679284269704000892389870491180234129596021622615434854112411065278482151199971732949835825778521127944243939167952199669705968259654689286730287146598686577906673693662241124011927283196898021227005321804287677857790315935510985871432648223288047299442458880862849907001287099901670774368973777152814949932709578834319564423646950733700048204056631996133828086946508194849524118040422987720417078015444646357305259823052010249322723296888506213294473132684851075774623875264924682271630140817172374791526256904576990452842336545992046951588828716035589321295014571810030111143367205815512878526559722624235922879755092827628413100415133287345005947872359060585602117209000054085303500916546630502927359687865801601539286097576502483898301344350266493989529616487285204454993108783209035482710480755211380815820025923193304474870629032027737719505827436401675809926411263861943892989699860012029082977643790640384217661209855188096539303120465453614526078077579770157325729786447086652255775250520568206591033851386367134256063753459430114890117508164266162939198142815423231720248432840287227544343743309617885542702872520574593896071807393078902127068891700972541287693971002950276522914703583294883411943999047068607042801430172618283588058083162921939291137652070564616609123001456751626797198886741799053270392045741844518429194660432480059535234918953877839353927880648907656820845194678233628956573546640601108567883822393336317563265513533474420053155903327801491122618557730911256536049955332553636999538435483625620664285584655265707161818524491582406392880730507718280363991065755224747369060486249851545113072049266944514096369843429500103712521121656025831811622891406357829627815019859162921018128610944954669061538420312060936836015702513491978861535865706841872195934530969394922674585568904393484819124018706461210776415873295555015518054144564105716416255906255572690979713788627727839153732538040570311471852836334148104707862902952228161925815774571182346443893513067093144841924935137220632013516890707685911522048471322330626019428284934104324851881721363210731097313176755571738352983986301328231653714460012228578074597288955766646238142832323960636709650164421474503482275733509169430386234773040320381018489252380034219810440572928602867962636672373944252212463402478971277300348313255531551254864351671242487136318955303040238681064064085473617010744090762944038372855314063587111056378096610449043434165233412495060388929557567404369489708694222157580512845956691709470084761409725085844556781232194170156608686181225293990240333912360030974324062041363668598162865033659022793423418986183051110656530589178507213973519469988157916714786810668403788535914492436553487044592359966441076912613704962971018717240288756151133535173251059022024185841632294916687879074923227286434588457287990127634057253494907058603131779749156452879211355615664800110803076513597963669194049351195882701811709154942517824532771322065477935103798771725970550668984206604445874190552821168473352039742548559141385831187635688685125419820223906445706681286467527395613243397751365888935468591545411851159453899914804196622160152544169947171346444097317597033792915249765722344131121615523085906488785215841015861382460585587907704275641533017834594220675100721965593560545862521191122546614935673361068692117561425150626837624397206611361586571122958202969074097798228776706513975313112927923306248022547720508376896468533686350877263714452642250432558161703217235822638233917102731649936010479772915382553860403155101799757953711103769303199908475370206126560261247669037660559739799284972375960675605387721758843663662286914334926468944791746018771554803367944164404122121855905721998907722173708437785161683269107953341660151708037382048215467338971694842892324505913528660196106872678350164340853635040068103456913466621544168831449227201647552835771270130975321744244799608787064527591696404279265059715877017293045139944551785127145869619045688020956815675698029031184583941519093758433512506691134545362047516307227969363977382703017767158043249016535443830609237780609071883851350382721544895010684279826369652143776318661040403580165864840952923243398566580337303238280078907860929680884856860385927766969806645310130700596096892333048395258466843572808379508534160356676642005243603850287582712470919984578200915393483750678592811856827791257334433758917191938022811767739036531251540816229896241307337526892363783565463600447480896876943588094919564735256872508328669144515974268024163013318488206148038309102606937389245418648063128124856387500258403169854979665260241965751379762196260918885448089165563864840067856289843115261325113450555750200739670700834416880685369101595207636948344818611964750115640321259685246058366466972539194912479500298860031203412672690449622249301281222158231220605822763531450308290405291621886228061017571123214993234722019906628932115527379673222092291511059442258060984727807445539508107205909002311176532996441455098668789213556087791333143867041443254325137333839538738186432863785523864106329688411516145350212461888668258019763944012798655598770251234400741021900846246492153543253067146500153486468386702760600152983871417903943010229498820116817500587193766914025593362671561089998165862690739690923975291960283807491133912763945342323534817629852634041841884412818808290725473128712293224601422624749329438910540231665178335264641988264007409900600381125344448515124623799041109663813563739998996584234410219348910051377290784198704521615079546308260086777143483971441875727622707052553765063909222413724367677832739830949994117041750702175815658086981424630078276426282386616356959920382352092616172516509837763675677232535583188126195756343010429929488451199628618154963394204044642543366101629083794882660997994339516444563724709278023828970390259732434052799356461821035394846537391210048096367475872216220683982101649237043755696824360124903220576035709571594336825368308418685251468763690766372448644475867717649960340593734553027639757674748104050202013852707485605645365761793075675260946802380571586720915908326639312404643988178213319417774872366672123091241054747284014019525699560502688385860412949507037656871962247380649246489813983792598707749823322645392411855680577939213258788589967222905131734698115856094891195111700810633601094403489874853329920534986999174437010613657104182740415972088548117026398903355202572852581021895422557709554495834445130008694737870422635929271979956637843361417388419348757109364887476570977656809392449006099362464239559450589183703321517581864553915517381389536667666373035271657162484259033803498410403518495529208357454083731703945909596638580329260706282121950457733117610386191202814778493684642819862536937089958200658431694008646243311132762755877745196933293074588401949485499483910882587804156153138047573817376659536175957365132417028502035529666047526803405077280211304973335608774659465222043787788746647589600264034694027593213970591835858269690626405512722175166014460231975300656305297090430292815309350026482957638051751871525937379324643189720934705173188125714691964396752411269081649937290096748927935607944752660017330027820927810806117618141728066010101205855990546124002980917333780321757926194625475450018644463772585115120696209101667868774889918717634628048766342394780132811454599242273654196720182617721691432052872144879236410281946231580954082644249528851335857035030804388113965420435143820061597289885306866066043388308450426815151101796714474582891516735919181703993802240410665066520855879816972901453609315775197558745301124637444678490150272489568608793969586871078689161824750063234366506917289853888327399907099687463438617736919036175211414450303831526596378773614868130766249739236784463692557434187884801389598921128896968449031590518254733580365843842176449404553314786469322566263610454690807854160647094381396196078762238148364665607603972416973237118419626287433036021066302864387785584068596186628436134086258892681001899034899292317113005076617003819443726277506177445800958942002732768174569643090434319791856012380604665908126436792961262525692899955072577529245652253703993175876037463462096859422325116296806012767299448146183865298631066954099114525051495709577908109801323545814813871888214635193666558793555016387034825777155391333310094114742420943116895593738751939257341242271767221859027943597212774909707751286149506234723462448067842427092647487078090264429204243130500582206061304956429556345259606267100766125315689350754036790397181222748477040415109478284926021209957278425039518675719089034561265246082274825528883247821185149963877691486223746709247410404803887840698089146311571652645809666300869779701222878677418695995638427251719663782166648458538751040958186347657492495792891542057311188532973077011350048977097942574062406562303505311903235380302122164703749608494405880561761765706120220786049356585995822579553997664077917334033891449534937700081521758184112637875841727646259051539155720230963912726709024936597741434572262725824302561353709960947230022045536950595133266404248156813017983459387457786164190813873692238815877738180584118618809060920838291425679442274328308662548940796977926729940211429865230888707598562599542931654211953845536505731970377230825429703470433547180685989247305714955729560397546610186688162505780881509042478872320099659777377706868893832238823573183381094877000982577395711164697975211970345383982425312259619322486988923174391063600476186364015450358935432263773977588684930994468353371758244782233768592077793869425503976997936697079278507204023300784897643170931053481468683018311429093388315424292904656313372074345808999367438611080924802383397726278390124097889950030426051390515956304224034729367438973698893282053698882367959101713804463825673470233611702336978735769607233232190341543279605281856602650969902597568595831375245583105522321614169041980792616486484283419850410543919527667489478897171096432352435215251144040371324503877731026139615945066357974529864778972618367539796235279318860483745652695947135653202993271796310731338121242250778253491548681552667207869659295886793080546106441339060056379304215744482484188126289688863771757469657661747852595828965832206268577713200246438045416855617740384415817695481332174418088768114835281442279182136088536355002025707482127225592599360605691963521571508379076020622594329758164435062947729296126293123243283660345737071671860343215539538559933930539788778307960660429483421723638767800143070938240029866117178750736992308352527018848170082345365479795161918053692845415163194480730108738255022544240808082873311747649359397114485144908640906760379191245546198789987976790996698763042466062080752231782515047453514321224383999263682850744258097625004967199212426451875936155395143216782107971804729865145056018383536108977154899301757682237013726755197041404969860727101378265336082139979216640338781611124203896281789030254935797321448499988528969414381632394185375746965925354177735406529197281861048569538793277038888787855330257467425819784752624489159689706799306572893065458089281708675521736639003777976642686404352010001932329175943125013711466597854521527882225491973895831926493543039765488759691765015467661899393001406474140984107197645781269343089001515948742211024427172232549305288736126425561346016791027441636036633445460715272448583769313986072454352178677489141131900133626995248173666215300903158543232324026455874104391229299829371573955293568580208614676659168038956837646602145660835836003333643084693951331455880116479297281651534532904425527951707126400100011946191881440385141013977434243495468820961576858512644877820173169216031742270023627214884790816510295899663886421110111382728082887861083340051383723911223199548389505360466779901606375632076142162879423290293663518683327432388439608667315821098178516578330103089523863691265709895935440367543249558652627117692531692561390550026773014717428841755441947342179023403527942130707510528258286917031520737697163371339628538477620644946872100303044557842518378245190585377361934545982732242696678544307226126237967971899255375323486079918995300658857950875735754120770772594510703230728411368785200675281642565568680593271000956768982429056180469847217627997799377787654899780118015537983380354034836019004458388897096599839093675948262027188498186873563636407610052584625874543042586604191634567456739059624566016193788027600405744795901850335947038781006926500010016109556097899826939877608069096513497380656417151426022096948381252501486780812446444464397606709659651967882218663466702959469784010900889044090229368128152115992593635274179856291770145353738222306701571764376372277359964378600873562817393156020791952126140226603125403059120558053176892630100708996165902357868055222855640472157076030713584549291224622797234843210561028868473778570748136833297992498965110167154106690210239377658829955138975344843887288431692051325961272735535107639577171330758400878647416744032493097125996296890141396438246958396221725816920742397216379616568770313861043349941478258820011623853268929354429715223555378926910356348639447449188586438921548818657843469598069559176418869618655673468402018541177221182466961137850015039691367994175245240448967018951871185573589096088765457811302225000038979932963659809459497890572033463625747411933840360237974887236121239069273888674188828187783231698036830997296343801951928176778427229723841927347729786448609782580705765818281911961774906476020797302633818415746241795878525031366665064723004776392198791367529538178600502409106840665403237087240746458251101080952200896042947810922536780454360604992369289760498378635412101331226939827130389871389240113083141385738876832633764408013827075531954323923482013358886065925664365718323283010580130704805379184810257634116536554322521131277085728439292014506659222364069608953964164557015007506564345803390391192514408872798325719569954514480397820679625403741741479081400808723717787848855786671352943447657251274571845651696030518011112150453383385368508898277380522242624608991691509336476891816409394693663701142297918565283795658285647551139018962801806250038524790441055398980114908858597775590474045501911976118118583782471572586994140623962596066519096019367259801679771106843533337402203686086273185392449739543961481881774175052967473411644361277727237596351401352744567239020564583350595581537887592201131946666761027663069123772047882620920587087806880706835063274291936556779660749761695193576948204601517039559897315344651917023783067803305537059426466717801147271251371222615752895526182193089144436214486752059137214618467396746643717687747968182257133570975176338326368822593094443141698171994473916636328148700730034764670820380846807901471600712056864577926991511383604332887507660467554385229601540416117151281194841508312143706054674018498520917938490923812824053017607615110217578100720494557294002992089368089469209856378124961192865600385922019994658560545906303978609316787118645632968242116985375804965421753572410372254523900330166391898391484678137839908319052709877619007128013673966653001734329513501531861037706786673120222438190133350645267803803770804805346218569673183821832843885738855147110189406718702216617846150667200504509664779422488043333962816414022347946880388717653240380978260008626097175984530740623793981866796762831372230434292010735164361097291514846186730792892435673515410577959860269403160927745752132765361515333662351945205803819999922950348069732516857468716316449306988502012928807154295377097265793780279524372389588322202500787367506779478773634102538957474316705707249775344312868301859380934495453959512979365045960644218437266806675712531303547901071833289988867700336553547879476478846834648817870062899042712060252014262482891785697410468004730864858024632983267794410636375160013963949240843953717286645138753100603490804879066771023630123019447224805956861057782306630332014771764287950874598569126593728618495424637442807514558037699076046618861661544520647578866738341681588015951834934566764438592735351193993768324557788128788429837173938966239184811707528198797215930156160852155483516963136651762690646306797746342141792481020214855952908670830423014269944452511325289744586413166966620294069556792461085180574416637718529840137957563099723373716177932997392381945842208440876982696207129111892280040628748049916035117449835204280030165936036788995224592337854605976284558034671120152133469468896793064790977417362750554363978163480363661429999490537254244955563523348577892012737071447088576078083061059550559242716425485743973295667332200221871741118105431820430480019932721174891723285125325314708002197881702522485449045416881326386916155594119926232381943367224237293816482735211493440914737822009524034115147561498842805681804153786578541440555017756976748032243787789682081006061002205774519364378850371103076079432426694686164118516366293572925891620268228392905800009675408250374126498874049978615301795704496384635510927822101316278616347782498052368424418138767461784957907446863444023011761256379643941911372376009678692305301413724823972029557072399231060436618772774533057397013814944415970053913348586383274647292405404448857336987621241780270684062196380856194210882845868891521721693276657990986746199648945386555883909177984593632103240709742015961446690812883540995950231383512058670382461444233194886021645147388831205964195100855635433112525198443450067271505632973015193615641803732831590498600798610399956269796834373096733494680298791175953348571573283263944030916383653167272784078012342511436938352398312076963885842155650584887197168582702310252146504205859792241310911582292022351853302795321822584958755792456829089035134452943812743889038862670173514205220947891068935169283439041052517287677726543290893702422793523190047981322135391700609298611116304793182116393675427671958451143373250568815492648768071493252455991881808661407718874298483673642581055308200533094580586466674486709272247594622771221099922541161508591312769477051071683876147121956414806260710169911154505234234388960433660245362105108205054362990169824483244963819189597694512774994044688535218205573559037634554658337930153204122022146720619074185007631038902269888533940942949200491532857258967633100553906486313672212358888858362743711290316316060802970691581166550856129499121612465078207969584919111925083189329148675841752313689903137324288463775731185503915306194632263092593966489917297240038068083194411528022689490089296553487874527470582107860000710150431701147020540966156332692130594828162416333352939940145897674404918311682051154622280974747292651229159417781396161882181277725477908100519727374458240694107056501217874605977853175467636584290551947443126720596802364490566851629797107642451393046697961184361140903384749107280396843076105744100485100060425948338015664297191543441154555185584144209412439988544587825480425358276803815235000005390334886532472845948115409940126949402445082920365731719231756171844343426960319577888874804008954956170571475870459092497147537836600601767304238883351605069200884530505943107877738885182546256598916581630336381017166066065485992471398738931403182586967351301470211457964176920209847038287505847630790508908721043406409778005407571623702072602620869592297096883873639576038887879992540026008691799819096205625533504033996144981487641649259153273167115441915405305486105711289306189391840950797914936044828559442312392993921558486643402287045861698866009461510294173098935633662178994422558773986518267582889393800209391289403698010190145927364425841284419309858567972332511200298314087723284724662543843105087071072260648082046392793072946982870660087908723100354428610200307253829165768986461450433739874094837871450240193840115883177214236484015659215034445005532918467353372621674990592106933553632672523354559119241588506915170962445040573295718483229769953929031050682601036024416213082463399866643262055085710689053342851420722146125727618805340016586176336277584932664294332058472444393643386186821345978954446964864379678472594082381234261966205118651476237578552407817509093931635256085266104703730090352052731411560045093055502513628064023865979630281125117542485973071873640083065903998177789555151701530283952738882964848118594059486978019917614771951126538915150496233082768854808632054405702116129892401152377152491348819621905289421930154509824688825918944350575670178849550338497066155093847427969625781682918264796572761281273789339090370508140996400530246886310473701150690742377304219100027366217088481449660082152771436071228581314631479827534100445032813522729190489923837356515600194670642559336177592985197085422813133380270008630073264508547289647505872716113886924337678958475452018242354513012730094743420854259783359406434840653548173825884974240159361850379689126217685330036358752679554037531970839670790630807937367512765099492664095191784131009067234401828502996962484082933234616258522827420266390243876577645089347534041661090077028373895024483492416309855405698920887803357158722578948774031548065057771505621388306500049232849985772232110824775953277499721915924949947082242545204379887452918532424908032563180570668304488614302666390022156974471257948247142699387134754259810922394661544732186217038088506647942271782403211165457372960175620056987363960805555474712767952657640558006124264910052629957513645468850482747688785240899475507155819331788392841720860109661024466869910884143406621830073070924297724319248652949970764812972004036727136414140165036305476061486804416075121945674552433057926974382193731343068261425061353429114663880611150174770591013218741900264271855926893918737019165109658175683328484056059180264301782165078395175882363454535021741717277219937910921957532666883634343991804216394486983378944507392268386829234959080859969161529222989802315481765357357386728019394027428537614873169657621324340886451709768892883494896839096045877729512292490229646645189177371719391032637426753317255469649960591327001615902321446231770558165574717512879062252961260254005295646015391964616477326422565330044248568837887636865347549167617216891326319960853642253796511502177487415127693109347153161861940238757793009510047210624126522855119317049580059258349082104483583953195775078291291310439503369881531828499839345875385180264987117757001648843720566887663940019186707109211318454151164804359322175403363345030101923145654199207438185673653890367254751235473213994397058631170921777575349815293045958291909874159767467903424717801534498578636588390849742819763955592976160632727189842618612159048571773493201883562251738600406061291958696248655308922932059728590496959107941183413610069489042865715700778082616656331243878213324031576836430349199742591585745670677165424872002780037820427067040149351748778127140821743318930451752490183938958819853791366175163314356485977384349263614982262102560698781318740924346378895810971539890634704613389779225502343211604124198774059823492778608414075247329489426258680456028200506887221245296983274773266771996239750311545050457480405853957673275231969243461778684270785690997556248974018325754737104708993769873422406921807553029810833624808205606511769177872236230165260949187953016681188093462103835576610315361035430196361979346269716925181040452591830161615969653940213003432666919779793502805344046224736460714536533295642842744710892640385549908447560010876885418977655555201265045671898778553881518881542262982764805672498569792839946855002693313675141004137475661754896280760386886366426006592702158394576975713156614092404629650990767751682266518562809343924888644379445972082397724608116682715254272043749182994255645934961462563236553355075833463500214092123850908601058912666729716672509844365716007384486092754583287542658295229459011706251028005505774378515095293159613809879776692440580304840439924778635208286558771810527189815458324299578125764860471187279113068622558423956460705000087883851071341507911002498224325412115176252758944808268905109810365726292315952667468470661393308675964769175972502622373380447182417657231244666038166387119607664435617167705443380861320465422888397700340158826772729610139711582271496399567757243980170219655919858416634600367331188194076186164469667935094985423499436774542084493456427166556192142686372198765562936168963290119411195673948425504345991614664845794000118295450173891352457405094269741238265512694338891416037680473077675717678774059342021618947629492348494272174015247007513148259506791909834214306470564681908207320729311086065517223368066002578298924574003294005578126524694490776893419679486336773891457975859604742655112960468718774394407230452813162638330575383244599016020293235493345282650298498170865337783097661355721671080027063802679564615258115713375679558622585645154780724744645316731369578056713242877495690249835544596057119202980528903307113554287891838865878618641965436247712016699065204131405231079499996339069213848581146921068889439856254095181773919650005713750603461380234667071386258840044870651115673621717403260735365623370985232456736666089790017355999854533327473911473986322514937795102379834672064312294890041425770522586548687547302750506653506358384999952430673772118090460289621405442680733703750032888109263209102404847676096025769349730802290432032617867696013975265745124460909172472062136102487871311914619315135872502727239978947385205001721959923645714084854049977321411532157585374857295896777977267131163101825594363445415323867356827524517415971575112683162800669166150553772613381544858313149561136081993073551331400417840849879755923065795693659147483177737494521683982600299560412156351961624926473537130338619556377967303704030597885710547098594565551242872882250535202176208189469625669740641386983012731947469597874634896235116670963321357349174082126002431915379370679481862660263637222573391157384907537223292569228438090160450607132351257776994098051554065616142491164907952001841527981627160020299988691216972063271350759755749188141055615070248022147707352859666267796485037407283496653670144384122705570971094689250122012512714743568172107609348744104970728912282825508071897871954304959405043928450640026609286784029784998860771520493869046950099691596870027016730410807487109132109838704945461269947025488218913947507277815539948184440053348458003145439474138551119282604406486360549987375822984700372605405716559417177528971116071628209582746510676294412487381990704558426003712737213922561391928115441823687250168750812283077358414077462687671808367653090721936463121263118549546050365418142697362002309476751583546050591099346892113408015675169103261486076827703801321762938973901300873930328587468180888411419665106187175757174835724937090177897417409686530222311212711651984469677666578243750945697998111593088080606327865700861799663929171527899843662598753611377368186524128706182580986490351088101306279210592995188051341571312001316207171424057638086458750712642164253434147276282953057379703403703428932052954874216156166529069225131013667992484001536171163453304469214467341854549102351016339532772448189936742159967694431913954535523954301398784513300207382490580193934037202704356073752405510100633268150256098915514036046399030611426538478493903622654748977733994295614535234201662128098432734030591179898668662078004651066867162257246983580100003842410233024826984046170880121584770883284250586155279018959124849432802332744068660191467876385954823813362426901267995166332347867822753531930420632610608085682744602369344694922129082672341498644076626863173235624870503816001435831205125444040469380606147113986963216421636458313699594541810556596697096980130105457725024666113601373556069515972912937700282997483182186880717717466164349235970379943444779364559953477482438676789909876312472672847722292286117763877704825076541280522350782738956093872270789976002012780233776238219474130266063733455026815447434058846054172432237108737091628738068190399058613038194920034224771225375511622723993201587558511490387921304400066723420059958101785865806780750450679186004738137892206672474834588371960608133813766683407731713971090425868817582266687428809170530402399749491470758028863519152090678849967140151563475802111688569936913575285953289921402009753960567370700845395650407351426417462630982936139121676829994966885917470941041966940903817744730861314441468704653059105449996818605125825204847366231387860111843328550519351204030984802290410461443943162205991240775230855092138670189876897495884462261356151674871985404384636221488474843258734300314940205908757208816407349713425537606190877977064691740189810889013025930891301360445502320616055866314961590937417981930523028022088296714061030913981112695471488628956673043387177153770750971996421578907246122798363191590372927561895420734615780955277597500980277964113500345162722687639181482880046756840173678214797563025948551524009013288568176745432686624098417050767452690777920690566341062427821627754987060408743326719649620908606663583776065556688628023398699113547020650829591491776664926003014497226008008504413316337268532554359695758354087056465572469869095507273408684461363360622788156575977609106626668612424795129256505863538548223526720320203850175418661865285341842372644983453979596732172806995464609689472611219878247433743366056462087956258621480471383873139564597592188008563320659257772943294450178160694827608855791478143381806457309995078277591278006241011941846135749230536824651384091282667736837330908367050460258527733861424302182329955762730152258318299672429497910855784617349533603875814462773475185455559597823139445969104554211566595009788820067978772759113525182754766718138063871778189718358385963618985328851517361334847187877189456472758668318615658396168181241450476693357782016404588623291701751090488344187223858426720116488321239604373083734768827684608497756431753223723199003237017468085082840707516884154614931875848887472298151601150865869708562121492112001614747951663083335403452731860211352724300466833203098518949433472977287161139287176844341218160419227177388929374838672055545338349664790529692868150544897820804591570418126456132974053703262785793710635626727952804502169814879656379757864667416620458714887137491097890129708403051983745869346029291450538877840408231866027590997967553317309389316837139389647748527246214477714752292556081806917859758561219529791492195100340446925079658296139526811874557415230040742465053962700206539683314904307458002116097803614785998234734896490103528460182794092756049816470474694638156576835644321744827543514727551827186674533560490259315061896744528395994272802114313943009924673250285877572001086979312243390308663654027482287855326237966493693683438700927143787187671222571956392864753998026342034168968067160728326311386828284418631956968691609573599462727691867334637948480074564161074398827311360742625660113837285622855329344706135064991147713518250587721902749409118157710808830103589442549828383212739415608020085133549656601626282117332427007208556930538778767440080821746538527438698208757383928516609962564200857757187016312363774358218955557698555507927849170929428981634755035350478770391097898888666090192428236791293613713908255293110099951409206406392520638588482304550192800676254552811067567809168732775205241081006509664367038952024021952631573390341694823060379409189274077822785990433894615565004150069450828149260737849776017829329034611034253160536311537244552229830256152453550654910948448078782263559415945979748629180544827409084112099014212283767827787021412501002204328036724745036166083679801795127090671335114470824414419519618158083994114230206897207714597448123249248053489358370425652829074791993331727284663192735388317279847955973463941187078136656971755097162212963108768130873562711347889727170465586025795814058636761333676218469401331725337115001149186774539967935202413410475175981945038241439700747730482293980513286779615010885674484726779876587731582374106988163666471010776812097410743620934346647867695392397951233760505428047218961338562623319403165011897980771261783490889793079204013222213437152851813987737458847903019593628742547830605436355837529588800534263521748226698900383254600370106865260309073187081745508135412065360785646109226064348697852246560402054890851840144916749989563381524100023974693045474028477458456237296114272222843132821006161715634964233143078509345312036247078626819476214219335792491611477726590933833896071978378332907885072055756363742932967526154874718315436796032321947713068705209216594944707697103522927658463309749889599165065217488597666587837951715544490520899466914491610142848941979685332736125085902258952338276104688851454134121089050404451657475200967303869034268196573374357121833614572839363785253219135953430964391552955248561171144221798730012130192017194698302340313141098055354813024721788018628742914925041286488417568035507457050282383585493720293334779113492045154755054594213430636820420359741240756339692578314153365440583797431802723849458079070191504192804396838389791570116116776396695582236839812070616257050197095596114999298532774521603217349033737603977804789152386824261939174146474081795688442811483626724081474399820466717268244419275361795966369078822363029591892708112502390287187603649783701597149683369094068022555029375602672149006647158600605316074111372149672406729743499644497680173158964627190875161786409926608662125353357617447356327887997813540385552131450001582110535385868724079315876059627105043199578783704343568683396714596543975007906112667463663903124259283736618344971837539475885744675593920902807698491136693385537003818770097317030448711203647113083771628825749845133906650023500490332865772123998827489803253744982682270994189292036909293379438226561967534305804867723328333983041449929203386244196891869631763086305790854870423508211980582311430199697139514795639449909186947073235438649062297302264704147383663366477231999759603829070186697936127267283749432958684275268688952383408340454267715451854981583537940245542259929851156334136164437035592186033761548963143267840124056783828008559824455419605856543956057418625496219998405450032466989009344615842932487867523164843427340336089418777853390865898909384327523765286405169287691163462143928938076735999994345112357847776300080591282704966503051821313531403587283726607787099720235707451577193340261489105945860561091785397572728097524569664052096032992536724639104113689129693256450618217254853319849591725612519816423498584247849019239573497564068891363714515407995978369251069622999290215771214191344099220529631065773906630786116348320998493190752985477849696221246744923658456423302002620281579694454663510705508822960064240546499377002663417702575951090566964936231843399969368501708115561261009117822797737412545270219368895182004185294164852087143427483905491499300201416076738259277684476298249512118357599959054532256676597547476705843504209034265144231004869237795925147874266632880329080583310919217353896902685787158799838103661154074117542579767900776650893314586289834544575208641576319569500129120536054297858091834141275229752722394035975953271088974250122624241453074425120396304798040876000924820535768510465255840901876915612953997010761801911029065645927041981030259385177270545823349834741533950580863278037034665743226377821984390572070552298872089203883429352739870589007816161665095696715324417145445279522706871813020906893797270125606395900460422514325070453742776623070251574620422278449927944952304536685934373286279836566438374732306020377635623780272122920675954932467273793917268816758217914777847499368049423546362858991971605694762481847082822962637732215652984293228188018863582499487671590268429292049992147709778174143825926324823826334591993558437975396631482811844566975720849206894957100249109362230868242787322855302250807752541684606427943375498748516388108970323529287503515826965180332874854269764671704592840922523799494096545135465618646128793747054182771163555255323047784669576981319012153490653193544985783313649278816681622533187206292675584910543983641512857576250089184358111105739654782084702614779941735734371625506981032998173040072718994600511805719455595294637374992135475310631207083063877967246748837700596355336652765461611123442059665992595213348824765521571839815308958184175432584326817496714568963775805562300401248207265225202556023999996143863219718382036007778791697685622077898284235472045149574867741147284908233219404050800528319027167863289468725309048879131650567659449983093355768660578975314913151761333991799920140903496362811323208248190373323928832039491738097887174514477004605725627392432312132405107395896322010949926516612437793052940732910131516100895749149548378362252000650571330546245754035345940900047290668615871788814436518339466452980809767394106929890792939487459346638693883595865674527997737846136223392023238768556083730347862937757297097773484851982647192247142358933129422552315580490560073279975169968385504538416908065260728460373235716574991634772244789093663436679695693767432381467873631840749083747419802730900689796357446851722283184931203097185505145319960680507402803240462113191380019055784424840265687677600457430482575065719488157189124020980507389936390829427786165026152041323169150478560940251315441912515070447976016112355997054157533459800473819045730137380153479065612746259679618672879694115315856515826997731966102049948291868285096455560188223677530950588415814580771364163344370294376626368092575267769103838974800890029532434165245218501572084623320390661887678407378214914452350993548696185541250307736937050873336205437540811164427577390702838545260754341929452657764963435375198654791705986903450719206961372505251069018110846501362489444924934762603462173169953995226357322272328025697815680720985027750858840815489121986637406746801589776431260917175795484885715823512737170531052504173120305693102840596737547137164862550760899789010888858969532829283938463847522278202561697555349144024361336770839953690908249282350510650478151016862582621278587523571129137978152360505055532096040969800777835080819981072861903881123811153352085103940535374285591726880322672469669469777137901411428812069656610978348349417370364828575088813444015737695460670032917890592381457247607309220883145263978910046966121977833819519045009317283060451236655348428546504778832790217590604705662075258142492096720515637188660500401274147365892025110313143404303004527745993833202500348432340473588677877182002914269613710857735235749017854106789520377664186171930334301774769763376462501811705190179487496390854398360746711963442701711614883668033466794434573746604986002523135362006810516281976935249676289456311237817723221642104506620025819285334155180171092656320838657008302884775911809829641912454841280066921399212862380975680360858522497111480197743514269378556398048954482577257346097885137571010452972879020099954383024099999209427636166665913155250224815997513535319037925583519087012386465107762671473931680067919072325310839747130601169979064150636145276540183311374440001172949269417733075713286085049991054615004985332320086488881220332676943154756959500254671849504900817637103046868440736043875065397244028554395418466299846021542496502212592032749818991016589735196910737553080756875913796661322554769428581023089542714136570375813393286475747262069188739214025607780275534196875527480659219388213475781800787379657451166084432778057745392098002739105082501697282380341459333504608242839025540883184658421070096402248135121633312349556968687116329679435407423743558557680344406611459334228334724011781575359248687277768733999193194512870176782915093512530373082706420010392838541068046920989559543965389965053951267519706262533535751051676158658655122404567688295413063061579634283756048481049768655474823362515229981423372197094810880836275839456004704015868401220454723601197455672019656993741143028112459844286000053359700939179818587632132489080958192163377758596111966676582769525837215535386913450637603860596584956014128103352373239930251376929897939509487752915428301244213775044166237441820065948254769966055178656235323520952422454362385895284146192421867893288517253335276431383454707047930231354953179472181058761692425222768599275351975770651536195753743642407188857039823116816357699723805483432611960888721813041614530961340879198931245908439079867761939609845988124592023848225612914406615670635476884671118714760255159312102807982043272809268650298621163879966222094085581081635529017727371633632932327585633173171728794123445399715852061552664885026439450738984644680653676774302969555212569516272437072899575497000166858823196973423840899074458718186173716222060309311336327021952534321843102267684312065992146012935652386664661855076394900089999568624778013547306568878551238369340914236973851684500586455760782265171206367761032406297984500040231732418469619585366035597298924228181288955248865930871953586952370300317468416453759283630686920221645586116325206336267830510217369547932976242091362793125007781298904601926932771576612422305090646218251373505330284915617547585124662782143904034846115058255115412270456432040022351489019258644015252606189507388794807718961486430987265673541832639927226837345131242134762269116320101208670589721473965940030727254964513839087235854715311833200691136508849408379738414687727497645143704863384857656203995740530334348839955811534341607806008346540264395215653148811844307831796227840078509033470069360768104672008817378562057988671998873044933345251954914900652351642148968293254992255255059649592633997280354682741517976360277774945849299154218311146080454424015787307664767029643451951781574921874011340538067093825275560703220374803346105174370375119428389552848011085752868217638654363977470583348837401890983869109556451138735822490086154525537576430723090365939029394566292851348644654460695360836628141318179817622402545292747211377195820522010168363378452852639799449532884254463814376232862768883187590901403330754399050170961329460545761535617959278644411555848984205497249936018858789281524289581634959480474323832056669285517029708340945131350561917082956362171031086407097559369770910521055670052015410882513787018532602459598627679357564394811736190220606056565239359005312594433118521570698494286498365440024484670934362212808893961826044858306619781358650328277226664307349045318228737964933886466249563144001596260134393289447119264591691084378980346097293528169249869037896970827524960660780739469644053619850025967063237533263269175324982581247820042828985670757576643957957636726706723417067582283030178294386766042056611852939318092462435723817233113741691376497978641603161244723650793200375460160483770784986082546959266176977217136026935204440668176158277495395443507327867991970067124912417406250247587110507523750156800351629914318262389839656244243895573043249632385199603382556736821780384011980175985042627458971665891462524458781221916500201355719633648242562739170719811525679745381118503436148034123770098360526922333404493411625346606320840793868547465797601061494420104985350568279568942415762101594743663589913488303624603030681600555989426217225350736484777282624530495856918269489609552444451352245294240077574994216666626658021852468560967802940045620568758080936865300438776404786386036155590167632197524652445678001240754199963055590457126233494219843896318565093524321773031498032110177373225720673606333909152035626680975100844942151009360801070034479063653083469919917911237328111102098242074698478660204908864204036095459070121431335540111466319909449199453141770482773787064387530681225161955382836216600888573689062978188706012772246652173303318090344287602017361163519381182430677614111157720236872954793462643284423082137329104977938630746374099460295310314065364670616885022565281679823071543525111681885001938316385248094706555416192078041432195687852750310463685307341431971686891608162732311581569044059888203862260763940164405274834695224788351752197722588970977681684550960417577393490222976355504646328746743821047100800178630032439821568983547894292189070654317875744920869793757400845310832534363746934348900058499309292186939286047680267830193745426286591866589613593886556240590484903454877881720637469589551081756766274388765769824306539613540506040068369332477174311969254406622180370671519003580641826189962415212453883569762497636533876524502347506351462810240212651835329609056107001245616489597653528177750790716188750478256630468373848232262182468208289708769695008484730757971689044261471572388639226534887482360126219655531205019259364007018592411669233515469542496125340914941194381052834605147111252472844044188670546465171419984680126547045164892736178429044700711794391150159800896343879557122604578019997873666640733124622879207901022787976391608327458356341465519990660442405698855866386922817611058294552996869695313501077274269574073279735556308236319315254689731358563584336993548957299921967437759312888011173097142127274229239074084638940090127934897860956650455239297809852610754895225098443113984675811048248304624952349304601144921398064668826498922609111329881105309657786208927629224596195359796066473448271872543287743565070274593079007260447748487492588477943246786722796612018659741366441311696581723424934165561095914731910197154206980311246958495247458129870404359445592735911039131172726329814154988672659204371817346089093404675127121569502841784886105758688995008220163688587378231072619046657574880950774119068232439185552077415809215445774432237507078313774011804111316290820282916530250614218980594805766356123613465692243792691975986003994772410912954887744494240090604500849758609014141314431178662798291733509048121796045924331193986250205080454072634708149482534630742353173067102508001105232103802733135924019970007131339721052917987736330537145690067905622122339311031999493715901821449642394463570654504992167957801992550889811474405392704317131439901257199644730926382227895021739796976986623976170836021131785621320523300522530361587634230061815082494040053552766659094874672103628402287582201548735140771120129221189046455145560770059389555692195700833819746442482802711539889624175364694233710071573656336107570691902037996678962597721180121457674641522246614326479898497507726949926532052846449226619493736182867558919113207678796099538151958041188490362260906914600427350661752866851135967369693700991710124141423732929309823807434892054156327682377093457671846162807908056432830567309491488675306107676784822324831085408053877891453713026180320848324834399009880629649383283404746986634477146328337639771753005858163444093026516781168938966097618921101178112705292148316487610048572527910392436481004269394086517571733952712228567169685553545456141714575540980142297794494019883589190673254091802067064997322320379892355414066288129766260942979714818073768916449906414270970614994908981258472352957179062811272022273784686134454849429832442177681908983801838187451587258704649152178249842923181899558226329831192211421173341474861634805552922535934573960749803684428899386546033534715938143928609199935807116551660388709147118866090746059395321166426566567562411677147959871252388143684812881273748536966615494144656958798205081998427607666536749155877948052530800355507243228621690413086844105916908279190305815633749150802788833535677371948389091228322010274982112784005625816559061569510755882930102674822372049376526950261282077513223259483128532860488750889449217328910375616795721694785222658509309689923324535074891493847664852761982227012868449457744715249219459869711538564481040174638059532362916270815805680021669500930103914246098077584252522296583480863751196519387735725629100551087156051228338340750076898338568221651624331047967668510013591473041333840441070516746259835345962041323519771852272164043478888590640619564321355834321378023929148528629034902647016478016824285877697470641861271627253405828444630703477419082576354150987769093644567933705077752711412750988209287346258012203292652852529654585756672925783564492704499408241106490517509718446869272417384027903694977318438840159985590436928391050830036334970448411321355262939047285654010701794281884330788647331415829591066133235700128668094715892340922981066394557238242801396835139877983824858696104983902596129950446612011526358806838925608948657729099158924519444746764377116110428872678106428604608348025364140108642994738249386229246847991888971990231055001770702157897272634460888272168483269460678914425319729254343096684319465044124514659712620974689484150986509167653895754579199313578087275245546538595032559285445108883827272371573939908497301261078586245878559563903236718280840613125986552825973122211770490409551526459230592553165814873675412032257613335552198710736459469828895718424397941256012663585072080293939923836809059933916899603815321723360008302837858990867839257502667124281453681258639345659642092670844945198039325150025208399845629370310160130334073558507097956626589591143539861322555971959871201752121185486070387062733264762804080590802243376072801889924429520746857951998379633786071851066215587012202756193608724550973609548854901284033207595922462746069136866219489545047201006848143466074846660864542790147679875820101288469256735679402357556799581971323571771611822766545573373941841158718102263909319911678932991412633710051061302907604522935267955515795062518546292182404803586012533001991627501997781422436123174329197705982319901112828654029989938149322821710664937434451821307066378360108588418537737773297959990871097501408262334105360492229852601636318945541144936819723872783718319732827488065904697459382935920264578730673409230412469533102489683259122586429205591575745992959867696735539248594737520574939737681407564381674406505735864294955228148130520694001971309038528806164029632745826659854214724892682507556475201794636907566042558220202889734973592348256552571523405042081913889122563955753772151279969307697175779780845336974764338689882962290423339027779399236789632159131039758090201464071213688344613795744954559321592421830676817614736876178482510833550472937512991432815463154517954126212812688310375971280296319067315832005147007941141159098352112909878880928406895857356094950431886137044565158573626835023381554916101334861672742688714608378566340667961013196204076330582673819504781523324968815615235171634563054230555452849869705840102135881590212940360462620986341214186072877330563241340190050838658161739445073041097327385391938347423136641652977140572861403392408627246101870408704453459560136828162147537963754857252095333833070716793122704424333183873778115535998077301106412280303294314473700431461702605537483153388965617341091588344311228059600215182804853310410149653163043996524709082056670411846081363245411039010001826744289425157558261644698300650384994102538855525690912674573516831450739195718005085946597226347994464999324050436450086857323355597373572769452449523742622632820210348738392283618344781382598197660706787959704826350531460439274337633107380992737508971523166328441616993875409111822022804403958266749541996211107838596412292108459117682924905201272488996360072293109441601742803791054365259214686873667361832619174757546895364146165751548372410037210210951173335230699386067193945299233739296097835349137402930204463298442032796797276295654076824094826691090851122454290499958751305696571385379316127557041678717762773287130103828726357296511502077647358187905536911561830623052719278991836323639824317425630355537685401771905199773580648745796761732562742001276173187956784727614066446802576617003750030980448174773721980332764935738652851035572428628091207799684392972665816176865743555473993141920729411966325678608967707229629034687506799534425364255257484196347718542114922554294275441593615362968798323380003477658134234242879947908095166152945800125335395206434205169319559298014647675303681768705219070013290603784330602923284471344225972859572268987333234904636338166319612096475687826232658077252988180869844017272690162091174343068151049608992022206060058300911472813106355171449539554735626669834606437942660018734900540118605326629615980374994701643110501260016175967176603662989015638816861054401759664813606592543238743630383796826874702772085339899653328411666924028560155017746524683650958960732232498302144995216171247827484205625553596394880278042818796937195350761302908955866340534480026464699086402356179746854672937121267531929123386499517648501028996674555838825356065373682397504837421026089063646612938084522050220461127471356836184878409138891639808421555857225981394824235530358854224865608120969488133634129045313840606218330181274759900460454241979264850635930895375405185118463604984460710068890546957152142228807810881035858484619849490392677688650359045200244563341583569256521165916521806849493397487674320866194620676425655726242037760981432435663401731685656149825397148303244099292783373113422149805252446808349438364224069055404742835077286427959431298619281734653132815835903180063627991227588302172789142824648604022855185794260797181784563274504220219324066463918311742707922445672820007468947458301658271914582256463943475247059079491951623794102240268590488601063268476345255057048584698928879102161232061301155339428635447531761136159912875984226226733909141019091294033365070308966900813520750471603668273649757094338357178043289034524414867644781366998582990325192461340388337216159835164293297195334478258590607540182316095694887623855432849065636645634158012098402528420033328955725153048211346278526548986073072130901462488555214671899695376395789276040599351476275758721442883163747874694492410938943127661283943513545299060010360793975396696407632373502435712244213143424764395969257686827778904681969772829089490961300156135626958702707992277086652828328180210467734983463399418328081350968945585099352843248125916370464089172835846228949525896833021877467821119443146287448212878880313244788445348337116408250369580707833478647235618242418192322563865039749273437564871394824991508650042874958257898436967688403935863676411716679895105352175340402774013748774997298045431986148096242469807578177641019691231419310328605143369892642219497656234340819643833797305289564688548558339426653498641998422283713484792441141461496094399923926963792172789714391502411706182196457349879327699152526720924744624314345167521523721372430795949653957385525402867346952243677163827745771683180165233017685709049047840614620877494523891347227560623862037560557170360975092746328677524531940738849045870539765732803636360232786742311921666882163651182837113047449310707234034853805583949588036656940978572394346022861999319155386236967415277700147102073040268810987184072099165856277171199206550920859874542916296363348642016745888390563708333969436490035413058054800204738264659662266750887864373184485396176992470341957151511779908833312193570276706945945933272455128399454489850555846806413551730112909337450454983636703721060618247582376578279503982508897348933425284532311466618620251324551950527841719111409025001025155612115181687048875589515306364371309613771505893378287152342706720960509653443012250583016880835644925508985970742589927363141549041518937872924052841682581810664871630415127877719172880318675633494793714138726598555915714193032230335901739072507371617246194359730345956266662770843522990150281834982042749470897562446838888585668447916458476813300007522350796934004142040156059545565933835004957894633558837420097769499111717370180009431612177309514852067832997654419729144788626375776463178999447331735205921989394641932454342895505985419583074736727764775722885283766236075612133492855912772089657511800986778097797227748497548465170528181308713320265713295671831962147176453827989958434859143854546258756761284185013244090861129084409556352645005608018329776631817910598068259578888088649317654955784564146116370396346689172712791831412339225920106403589903085213757340182899154476511551822210072678054925137100819412050993975141991260928478324372689128509140302729116881806952895476859705962512068689383813884486239833591110121799392150059268481304363313441551165977151705425324779104512608740079605462284256671551819260058829491568899194365727682708766813793769053620686024927739515488947504506222162081463206747859259439611557261989058983533672420258776629844738904760526330082234744880584845187216760760630625765954232464253416023930452721214322853951368599865760836287670390839079019240709183980215469264540973561555903156638437513437853707017325518740377134258089000876050468155378889137059367403296093260875488772277064537701330513875544284168099905882993430699900258522110361185157726307132481439941683719979037656938965232424700464381261758910818476214603073162203741095434926426887977087599973741504130388222857953435748635156401948946131503000014109712721493635763248500746270281924285832276396327578168211767510330008556914048917458491799684632740848478003032232060504194982236796609729493793399540371956223063369616787530963469898529334431601940054264096967844782925174019616943219446073359461641487730317946678946143560408857531965351232261116024463146518059406409585189605527707631800716018163738768610692895424323278534988353825809151640159857366212928103728104789640368029229887151112019755534649672148674571915189134861979993979601805971836369867790333763452996077696025200839069074818268567853953461051016020158972635184772180561111868265859682374849113212686569680433538912591644942754349793438042827095839171528633632581987766826023782268227235196018669797320636392279202648045061602768077125155538848876921123277580992802969759186448528299023241100304432368143928062666803163970684704489214765266393665933962655429843822575733954861903319246548441522767745643242604191980603396599106218190695861618604989593691443061020795664618718724751450620897809733315013159809521552443695075832519926817830906431506561590948169125000891744576565198826237764542504721172272670628696528943424159661299479522721282807916578341775638188429299590470778808788200421444160040760651842572451179814898547151376834658178192969155350523168639452473074635767678041623729975849583792920911314729207281941929536115042542853646337584685454986598706821457840439217463172758279030622257623937929433068531648425128167776096054287318501464546419703645309107394404113853141694026073217709473111823361687799938562338101284056452337114455040144573468134963101946946635640286112113260956039284386370272303362510032336037592282269725953425421055527247189500362538728750742639202620442427198103226002534295834112207318676779239056823524794388607244525913312238079488676989669600356876764197030159388518003437025109346731935205404073650770270841305324103627011339414773628720210743981388892281950691982305975245654231931389600714289453963624458001740264246807265136088333352016797035527891798015717989890333355032260878018458923095343999374710269654189796158296430583339997409143810279385283347917265727999022991138961006679374878530205680312934490003109392783365722675935928150374831366397553246007164838989850340191107435261885747585625582126065542447488954376251529481697962683842909543216806635397864341690466602410173634252953219756713972416979840246796450754115413571474655356228519690812792570774297410782356900384940974265886580240377773486688335559966073128073346818805677246922403259502409050684010139182420631926868383829762765447501467906497601406256547725116952210625515307805526585691020260258188335810854370509554905900459987618046660046043770917746888063270203632283985578104680810300379127741891217691101971883351151924938919522905312768800585702760269368400946205052723152195598106333335258634751986065515407761699482029955561379517901011602408286096932247682817785404380540038229168871474118953147738389029565754963365925247896818892969615699708901984848241230846653349229583941540478371136630154850942378334086054521899274927901998583285850111088525388887777836862422253392305729383365575816379496548671361206132610828764247551376560966444550840476497135960789188286589126689792717576928519044246254838669700677455361758236971343576595723099007643285777569673575236788508577474526647439919240776698539692392796447790310942294924534414704527049742742561224119197164938993070932536511533465247648081429140417516718306795393071162018061217903820385548008771388702028641148269346533267303142930611616343157458074241481732206764008558165149513674999212430835229126612281494516663352377404730511611684676339166881389823733387414336656451972631225054850723105646628143777524410201345583854084438901650944889719430936478804234184617320623759026686159863408599867693730119524563948975367394772091500155257432906840070018987322331985237685198049395197918702934778825315183840898219449065203230594042358928028389564971650534627517938601600913655545270279864881763908596563416289611851314715711245975259207803301135017921409963407301117463111116819250853462207416192963979654033116342621589863730356349214972843086594462442392135226512888443140132630628660545803485974003990528632511602381211455120220973745875065854736675421725604921831698784187451387953961567736569642811492206443219233914898370494921475238079084689399669441528262886883360914487484005049171056929435515432689711911689090508783137684320035162244484208165299895098531370589067971214548076299998608728146584239544336453922435639667819525085855704449777124706084041715807626957719195718262235562574410728657934371944470931211078762644649754239558241477027552630599186603960966495762399094466899784238258435069841914229360860581428499382346031811765092579091070512373571798738455375092085975313328376267171858820974510922843346599153249158577736083349527467599154592319696597377830898441651642378908708696599075446070017025940237164534688115465915293127046626668816208584470008875355583271922828358874443088065742188664054207142013402637766463589504575183544203696365653739396405187678968647321427015259943034761397694986417654316904443365834867305730471795774310825301130537971393847589739725544207070364088648843622964492348807599331839996314217047823404922704228439329027445595197690012149950145941547283186158220549287227309878832872058458856279375675748615220172857599111670331260226720786517378352035509895261538482550811311706950974571869393787203178676384483949408460744296141393659081291509328000479643299818870045328592520993419659957010077991165976672767084228583487634837353880123927195878287620933191854070173477538147165249869308014455656808701755117445693298010624270602048591193971576489356429784994751553082979765844255428627809620935062184097206757388391507551928515003887966601862410454849922732426568059579870838747618455830493128672328686743540305395006666948188749604336731677027355529383421518627326737748971290682251452502370619550695764231419914274482953151552869792966745530365129100820182607536029433381465062460375016606732607159646751230586440730696669179431832671885957488047361730841752169579791937941993892558571872626764171273153701764213318390695638023160079030656699097226297090935336284613222331577512704257726195296771726288367989690206353655000196136867538551098226431020561122151678611924216886266246870711425394900882707745605547060392344071213049597596544661651084678161951927868561936642614314573489370369162481530477479135230615510723469424052297810194193985808462745935999322514600435721818758962216495755254849399981020628502763048524686581414981510591550657635665256797209194660942240674803563858004662562746864774488072020880503295859053869739317999618575734911082455438822363003087948832742203326649678912839825811654091411081522880731097425326534155000172778989722883266352578482737942334561851144227728630739659523422076237282955349510699629979367777533587862743475548604731292541055917718618814175595348997623505997746744132351418878004690884177100352604383267576059864919031076921663966309834307125068757510911923968312553630024333182414042397411687137301844321083287473665768942147505576078123582028664007470616254082443383410389720693575164682203701638680553626222545671817404620468109810708590900501427159429394598766773561268261788781867392814822753519560761772293753384862137943537376154990411435442156266765548064305304308470569569838544216988492966113284478672210089594044883995931024422715362951340322233480255199388326613496935393189904696291506234630942855173693396732670750046749130855140489069662700276391893856464895722714283761480714671996926005456671861629686198220987525317078821989009991845415247518351850334481090066375652008758298113034809357588176811309279443450829967850636311863355330432205306456595779175420408822210291165037823236514354159242762110780901980930066189518920035834336367040164832754599652233853198633869066346708041051029746111527711922450184754266001535426073653000401990613369532667347611609573030965442525712448680866769523378904750427589905672032648687101544214574250086655300373536044968057859484174290702313089188470296809986883189564878050522137396323577870949466245265947600463054374650672950245339930105805256177806028404745981433174947985408667757349785150883869147740278388996134377338505478958708202521149216084216078961540476493808513842408924756257219457408260200395947605591690318245890250776512223199869129716452935728370643849214087046040987578282882251784422728050093354520655439172758239832665045298930360317423455850907514305184091082041096678145023041888546879759266075927505918229186566432450280656171877986344855638813987087888542642096347682366726395748381749754506320573308235611819676219156969698128216295852532717312396356786002456708477453336339967739591786845716661773478231108398298905967055261116340112051626639622368712055494708503998780443467428579899575754782965845048155661851211485542162118307860470846744821764801119143416548433987298039839302168341738227146128887236089528609301690490056736256411816623647761301795483600678900356380612735997566632499235427135261067741387053593134460547850066554105720441484248319412724849233595863320269606874099367992468854603637800107498881308246454443158905135590882722040036745012563807762983580624620123753048916489134905934324610614386708320020449571107031517589532495276669007959292851909597987170377570579632899233240400876282824188178435533643300044974748117890095197730390996353271905315365680060600378160790240569840222568301365463235118961260153667212194451004951813050668294296166369786184070576311571723651110387125619371301145892181795116410374074947730176969849592401485770552980316640221335356669553005455683054926575301129085885888191005450388124875327501319457102232071739444927429685104269090242076138588434972120104960088609425258238979867750544512311153107412910298713555018406530674869477589187652507951676463173575190667226041713188094533593323590581944647052543889744476474208126091068063308408294368626499688000949549298391486729198940963707727853125948181254620942814478659317977575780112179208509309108117631020238324705985429914720373524172210531166146023313156011017373424895290082330874678283501238841748948112769496834648480700519833936262151025125695331129379975751313501052718266147137329843155277220408398477858688459083363558708217983571541591640701664907798553896393825328168672338792884101229761725145755027605329608970074678898321591110945095280472894295868770919103074018675668489520113750822699706089017984138923278509325095591012790416536407117104423640244818255510812808871433849591207743347197361351654696452150174009412746321383055328305802788735159517883756920232684302938006613234015732834742444766506175516728597325014169361824933932525159847171837359735292900356271460634565266003990421060667868521738387006803988557904805993859520760389859268249347280635248081886071099834571247063562439224550881266319865435616336352107483333357147204876007143176458517079167393512274969595502293113731839853765034127204246121698106462928632309202547097659749934149398890477141284229678274693618254596313018751627088614736377187925664768761423823418360164886265462214870731477344016996310375625490628541740220066740094542611872417898301218134249718688775153411913982771517062890312737465478152085627919028776422973261967644181813755943436869866538048677530700646865402258084478426014656233591369465942211268475152012918607536068361761542111190380737912933607959625883673516621694188977152078681438793065213366449502678691873053344393283760869441866902931979063989711897848315602484585794705281675374209302924561727470667990861589606619712451866301109558589403317336482503866875704670130516087963181653783581867866002933247002478119932342633217236344178963312073159375025784241220340216691880606214811218922824637171688943706899915199185467961034352539523156962606731878391987132616671843461919690734775851202813903438788123659482953895115517656197436382134916628926005076966119381105712377727250966067350590415582379016659711284350482906454204479869075899846799788379842751245263563544206165779926019894011306265716584546538546147833858114299988510832874302034335568862726774888194074918163073392489255731130263981765357224066360058545390722193167276019683509362318042006823819495510639416849730583483381057262590580045650745577482109835599579509539211477468440229783443236449208606348848336524780882348392186644813344470812503815799709602104733661148770992497511587575502853005804957897403428955151520032133559766496012538107773593999888337137795155063935365195582786540902370819470330688295218247306116077848465122523692231196483910576962207226699057801106591100716884597158478543068021849577769640711084174589889820784039289023454976465413329331189969786049753920783200587977392717755345328039917736114833199992833977673997708637843764057721704889651527595345814961719109506001216668282008121092262945120729679619723925919602330930706228940688659348806364872614364815473158117097567050105354579836215252203479514723443538654758412681082231921644025360797653663914382219029143575802587036359442879220544307977994818271539091964696965278474224524201276837762195630698661067232559934304298485126635583537156070130460725778991034982248939033171767511524938481811168683386277052739164896069629926537936551670015247439768174414322341038348479846649816087180901666918035465295952784933139950685995483140642436798174511847924917520412562759536021417597127903685479063612094744505672562401796212978572631983018707126780138555671091492412203914234587859864962967862726322556615757989453836134343025220078844572698750157242314099020810822779766428084882061841033276496985012494082172839836712868698965099097353209335988712236733798360851590815919896983289863972621402824364063879893518916027763967235764727028930957182640285566004396301153680468866773441744101267521566020711397553082193815639364108886352341352506962578576059357294616160013804422431911836017103298296930838545355417291063955200703540142985757058612619676081055562146593392775314083541866979719192176051655960027305476456234761136411471068059978613467878320475068877171958979954782353083903957166178807943576120635771071892803843283982531340614812839004046426280798355128348040948375154480881231489560001042162990696417810386739188764821202554160265660478045169134061681148787050855759864639722374952746342806528704878247265648826449085524537888753808900997728301047053122503369238307927062269180116333531363005683110385075944037668032736874499112816311777589346661506255114323151469950205997040301905078286528920033982836210897990515344908487804109995897087369934191543728637687875806854911432389345769275891618508659349551703045006693368842791461301309949485469202675876476272733748049118702824475875109783729508884420080290626020025794517009849286377955843221251666430639850829528032508118788038128591132612134170277511688240377850659754693080394192846136389776023579017606485330104639809131854170923962551804885989682059078921014187848769332154532136318340724537801164419803602354717498379565888570475943531691149423732381582310679839476076414949913930936682729551337664989222155027368040385042139753133750440830517929037442914461669519481338439559835371976808256045413076416350654923264023887840940766556527206070069517250923911658554216878614515603780093558177386038907397806749089625371248319368526993595609908233022743672703486041301937957583753359776602002929375561056746562279865354724653396581179704335419508667523907922526089124682317158480515534417517490046107457272872769898613702785083864139414743800394942048480987322986627448804912189344427325268692506958995323765764951197812556397117893658911103645789684200465348572472293289447666175800969636471256816064934815501097996204202118719653721047898798626276171620945808643130655977325129268564764337461376316857586260837814507290320004596602086796076618539318369137304289949491509612288041451884198508099397438808896689247423803696155157447815022679968286258654276645466206520715687462634984434538868626152274149676966028320755637245185000677220450062073056686684293977958730230884223794299587699292028703679602588422203343838410922089919628084222564724562041924123309439215265924742271986916774056355711573230417788436327061293878886200661277466931872129549351268684973953425045243701962599784936655242156680821952876346871062072011793323017046869549022998950698257158054478649782062523671700244081896892840074571876225760220457959420404690180173912880233507191301943892341091925741910376987479359230046469549992910215872630142563944905777687213603310213837150869526814287758408993698882731743814597075577929630636922218877815413292792395308341915963929675641390231109857522075627852218217594389190771796909479109853363460117968831362722654653255849221454614937399954785134907808222304846802798886046748634293377763934141986456422376422435102324946007467787647020677502863441674041494921058315764853676234230877246128733021172147441275445310325937204638670328908943481903539886552794814269843471424857307998368377010103529199243730425000190671562713622419947022475998364231776822523579988955640627611980529843212534399741622143508115661715576884211533717697956633435050602154380849436214822816958740928745476215620851509509054944535604095749218248712490309911274732992638256239189251447231822321730161502756904917727479925632942754947409210705306894893635917541829835675294999567921323743978698801244344760674274670905328370312168302978751694138206172426516780984832234467672431658658558560333926929096340099184637051318221690466973300127934716006527796231982300890144029269090933171058909923157568758577261693298023037652272489349341548862032230514548177686026257255923111308721328211502344549657812832711225805412451814543771733065488136959911165709399773805706772058070861245663565763142373982314792474928978146121735558467857641768609205904115389723447545144929456604723060306778633482221504085402816939694634319088936312225762639474229016793925685068544368008267504170494404869518419353943484004701182436230862850617605923186174066399741813355027198237519909246016427861718847583468068910800974451370993820476151020619935448354288621137905525744051175803430424062249087679013517612687513145937016120085436362249701613032105877134936737189420140615213512653280701284627984748161447755133843295947741387172069490213796378538168494684197648339625440731869678599906957763861690980403568288643092161471323278297932843050513539051591802574481030299778629365838861318748813518072228895008683459455027330569843276051879410569543169476759306067247340275823391808182881695437357118501482007448493135579082090122312971911477500635619825720663778164552409261096548962698625771918684705381587711439688541902209239269824735427521985836719453284030551619861553392677372652442139950559761355334460331677023417933006467811679248145357061862876165820328694150261874896241327910306407866085199510114866391318975795186601930129886906855696803005795100049131226609661402911414297671401900072828000293975750682466871543191269761035312910625031412313593329834501268710745675594724148277980852918478310057865098838480876617116841311143970631694658848144427784936338418742968426333882324878924544184478716594107739041298300796483474732177856492427318523271349082786238883664408267571462536652198165990225995453238874197968120318782642188937045755996834684581204469356207546066073063440398788739977009588512795587084196127696014636471483662161977660250791389099886422320519430486920020744472570856025132100693372279151680841053705480640231209316727137276460761802455344846624386481491189920238450712705867481560113608463478398315592147937952701423191860724167273713134018317342283636794468667231216593225819597956008273301181822318223347503852773114053320686688219382520031891394109569571162359003883739223597316337761885293506039424023025195308294276840607500235371249431908976164748639519551276094825663959692944582458003848931489068707280418732920191338113216012908484187949585785056679705796144145164248566752212683187106244443784775086425358439232897479944725299291530959386422375088116456021978305846817810512280280561858177937878083944858371199558792362472759658839949138686120011996686520160929655544926468211412419320249974613581627050285103347156538425899531027334335814825379130348368090573422755173395928831096181556103289771934152077435222347092405243657173728693559565310250420413149223152373643344183990425680753258158705795913962178708891549745067511464264040311884670215770637978138279338439425457012732020061911315570389766711555748165837541736924510968752688707417573657704958657158510664713819933487919086970556828638222581686062210797268680842656869192354857050997340651329840472969793033986383002720273394062258745425885317816275974603077594531076674998402332198874200046647889633631888966779708385236316355605505184989850031001585686349870568584973042333064035606649909150210236810829511800787632377445932258576437433536456168300114557655831951093851039225545879190933066620698475729814231291827926370307253584732537106514809049701296579117681661999061216399464899562496174693126430392939258332420084576941961498415331062108949678383876259720661552888966510917922845425114679897287641247160038671620568813013474192142580191486128569465739902383188360366634670339205223002180933545156876791619165260560949115689609663446256223877658992458622514814203625706213186571001655257212280346140688328467160616261199457194766240382899442523504368405352742814799010122022695670894935521673771500031333519497895441071731427195466012018708727647653516736583842835997724790025498982686499391896112680969132829559589095246767118287122982966941769305344690065471534132294957552363848062795480768188811161929718775639652239307363432306094888408586572891464432378440929121646964814361407354372490883471742330294102476118042949755843182268493215907241483543092103685101485415928116801636618733808661730772883108552310134299133840031795376630140839880236000779891375653402923923410212231204443664137617874456914720385094071961445526297694992870104198225166583468806157945153191111603975497266966611668043303086489684439992746960714531993665704071271765865178065315942108855052095842730355786086285383863111651369922973854795540518528383436031010475658953324410158685047150938194416555835691513012854034065688424364726261307846195358987445426528772125251657377969373015384672331407092141361219472401102691898338884945706216362831912793995461444980141388458776598737277869229692850301670671046518804540593144029299467944906512271977380249121871216936741107850669077956758887102885130510160810754146857146463345871951969181932104750374274675639856667382703816301780456707960222213990128550907844644138141346013871838030839972386182589272196640274132675379328862710467595578292852650486260190737246484949659724044953886018729699012232588906873499078495899501401643239668727420854337336676830986759693507968081706284068337075188469805111659957342447418295245600088647058273791980209716965875418861129922433627173859965392829498104600059694139111762958735158583087614431929809174412756082201056338467425946599623114736512097338577869372208529532010781057868341076853348720207058950109953483562772698747719422513557552693309545869371579590061083142531946872580513628688919001124533161496559967573021061758869741272376228502053844837763436637477286641172589276556257711161334972064879157435698835595528287475701649207467021769014048921083815374849402596173497191893130936953196366131190349239364103523480003133269312184870685524590977081725675007266109217449969680322019827404419677205749262330007254422363197376503878679711858893308391613001826941594297436042621372745516137738154237649667117496280679768671306759885409363427270006381535312601377818494907499558463086095729498375566289757052769954106237902151405929730402093039943049563904697769519528179959026681153035997981339553542089841961236268114261461235107376015857227388981372723993007070410041284755387332158056156824984834438227122994671463063478691780984859730369156833973502432894698895890547767728145836677751439644872527424749238085961791944609364443364128616184522613049541379591436760093046617369996935200236221185991093261981923221117834925781690621188099136978314176331246692676053272130209735481345355566606989817271404198821582814970728057521511885873189377250981630806239577388418025080455344620325733558084397908753071417099698579254762965126596354568457589899217785498312504157285154767576318226307201025290925860120885217004045640428419309018331693940241356167714489647230328510962401258046141800171644118919719476895369098327285462702559369776825180815085820266892719467609881679660065688201894866369919625883005915238601248818386694244818726737344916373064978171199539908710443118653732892694217424533645027430687340338816314152373665228212285154156465784574503895016936384855139938541706272970154523072827176783270984277258309375474286953454432471414997608558316122244158065781322777701888967838387798178095776049760605504494136747025801551139652796412652033259950987399915274418859773260173692738438689068508989848190023699758885701486455179785085623691665601609604624783494254461434106854942411775346102026537780285803393123675721044426975148825439908471857744343909397312606151393782512730570782100706004025134856538612949449774868819607874248691391325868819361300777374650845957864308049879324376109743610024758410071105964030173934455384124663065408282343006219170116458095866402738736505737591685600878913935213363157953499340126904058568462918442043666636558687535177237332822287263612040112261995561051624500986647060590350472860055594024789310991610339586883315717341786008999813110920145401484259011689868462713525142554962929926601543507718248535783155890439928624678055503117322889170757242584270248720494470407562681606902976684994600440580914351481432320400465135470324544172178370254194219042434200354839648469717501374613044882486583426620809337783514908016551868087207964151209873097054832774226150540387933480270812470241555928554660374582379998885086422228884087144254512455387948096591270126213300416381996924936706840138601705802482372411120965986263958158579674692557618684783206763488523245442318594696165554277550239976154668054353252173782390066949500404323791409720164436221491772043908261607686367658314107247936774682253780862277695289376125536619935477743833907778336625632842689201353564446359329990332347153498876536258195235318846261168478501322266898329157091178498849384862775081007983441928426565179145767972599799723851895728461921761052423588317840405289559857790151477374016041627531214021691174504232408132936541697860769861214255503543129280516528323410669734232029248717039430569039260118478414259042815983603963238361731973569028852603916737614685136231387934470383696343676811003702509667581707256637378530184993108923629551558184487685838503685868977497406432584876158939029215694659367017367554012790826985508456165262233063065140867079364634969116205738581927079451876714044601190290583920573046819254550595401156746596524826306894727154265813099272947169197557558648292070006077402692910848196449478577128678457494454149185901683824287616868810535595534155479539848169846461892983741751134634190658956856298558337447626118552110098616348217009715536631476202556549927668457472862166284371272792244514067648333413882118745134527527190006290641980015768950759683226923025196635888481149524640062979322585429701604520272485059459169800593838965803539777993451617287952712490569666138843931525946940808229414460072533824411831724742805270106714884895074019922698802606666214221555476706709991991558021757244266493148580298015648898970448439266849504624629848035982650467823592774744649672055403161011522842342785197996414673073624148787477168336097224265070045474050106089116257978632951083792087408551253399031186458153994366443598641161664700324241750808491500021302777385729062124376693494698496523334032441360325095052983914982375832152448660071322214199916305148142028010167144686174617620700202799623804434008768648454579956090371002527397296351832658382578261182318556202500325452639599373817822283186426882749952176710114773436982800874048275516491933857037771945063772716467338056915979117309523954085214784565422802601426983335615822005179873482989066143952190053678745157457754443834615213890296535888719617412399778591594303577759464357256027756829331275534723104985756662692111223163058911502023523126039857246707209895432255361017546214959246015175890730371038059907962500898293939525715423663644406713241562888231955987843537990346967752400122577861875006335096543545326626384274684916666812399753132237527357576827544425280863209625602052509847619572044523998591763376188607629694028017324538421801367070004143304003950965008498881480560421982600509075406703744160720651245960161214167651160266066118228214574290198234648659555447566384017675968497381627267041532538690874950686786240561795558637955515104487608890024029951509377069532911886513847665396733780503253555812703985361302973171274416211442188143215845305275782708744404901432847365244875123595841076040409210229542408232034432356134084185773431585098866857909247353698155011543790231887324385906776788609635804318394323953543265372922126288710324079996096687799239370411768810325820605207304706906994919797457192698488513495176614630340979079804365996481105666232925351100751242270328346379737141357315727414767631475852136444024368367576872377214920074761075645835600465212303395010778148274087153991691731574117371633086115224362107854467893578346711008967490255422530579746813351531203987315642233707124430052171066117329067824993512757684230279088402294987729204643316228495415064638409064875596049120434944356472926266979276143340169132571912110214834437901726946125867246696986585987989896502535643454011554313761510630190612403950371136705378363771915676444243638051198666941891716932736135577101483764192565459587566032021259307124209631160529731721971089777112592237243296278298442097581369150747299400769460006691958197649592500698808017658507716657959153319935802988872989270805131716786409003372816043636945324755693147036255644218195602952465724165001341435887488327708402158349639064124448372678790877545911304786823765215696908672459612596467340794752047237302609727303976768231345916334496860418658845962670803423161544753335230166478891693338276422420072293050843033413108874297348450432168835445905826245962576168857605960323245498423299455859602702091319486920160996588109603273747762423847496580782693388390644709858950534673149329110887194608244346812159600365418152327427736816752363843832482150581665417029836311658735953832708013278362586502415526137436299276912080209839520292829221175962969141835782280403399021937002471602133627814508639777838154733930306895467302397080103454128840086119702226011889283524320764513519376108673837776439345997535648796140008919211806732966615169495960203636370163550515528059614669710352075249370390821767740473229015359074608489578683157921068184378447135454525674592645282229440197020117436897258367044560911170558500830488721775739616742522931100019999179855461293625574400103116974066389329885636836212297971465661022616740960363500666367869639855994103598194739473745906584728421752641796281890565239304833943294318010937907120729778309772304253334226197120589390893981157212713553229103958191231703322470735039124480058285882617034332141357829950586624841664098366636172389554485740420324462671423968788301920022173997845577881459666995956367293871389114596149984228671828883700460838553060757092193372318352765092137781863816588431390787456311129077116123640145827081957260043826362137822787395390398843461926699847538058495655302407517512723169688869528689080470868386042263402687243682537044441847822155756790388408919729504656386066875716127094758897844679213039530497372183112084406595825139344647004821482527275912979403464213023908533412128362777762780657606981733253197382773223305859902134958462439958445371665203299748750020363928969011564486907348844004442982913855812133725852543727782638674448663600901048320645916999700648936793022419518954409298241073998282316111807195221599446492300749500941792578912058412735450065667113703486843713129124486036648018303301350469368092613029141293736081793237314569617426819000125774131557001064527404040385087555054007545735473988351353456866557323519802941153347580699162116490032184654942819106209728071921567650753120107747063153409160348997808633407293965122565382817803279974203323313822684537966622189817136278234957341229124005306239031019528733534269956184522729412929580180561425984092977791081172184788256523917937843263721523016051994494890190307214430606903558087440996371625194222799756075840511942257796584803786050439742390355933362306137994522137977552853891111422849199465612106121487244488694037658142671671135082668203086769041426283754760109791816539412304751819241243808394316471460119518377752175413987128992002573471756316435523560524152190313992474050049893175835752570359585701832943166206871135900278625435050870719122477165673235378215356535322940848273394070823262173649573488312535598605121727514786463544624560820193260643758511301033664193879394662461459486782114927707858594751580637262737374189422502332935656203414065825347425494019845735679670322485015075777898067667863700117682004434118762762944609190202729318552998697687952242667264457358641775129749690489065916176989091949046759952105985229887765418176856050142145556938303205707464381292423590727879873212415524806973851621581147734145731211207149368985700984187170898328499210805147470860029288374598527586692886073811405269283629772266442637571570243119873879238912749224708539555997477700921730116900943360791806507391251886343516060059503814455827676831320650286297914695025954182676072700290600572047003476125087065946630246300366124419521722215361062322497549574572397304648061222025212126891343219893649538972573289527676138133772180324215564755299180955121039896092776543913899053528418647144657191351257389043605198511873741883744071973254205887142014854000404031955722610460865954972046898845914701367279966895614000715296323445424041138674894088162680148011040392591446534043463682940402417914723422089705735693922650498195836429744496960304411633937078366130244991356909163283215633891879899558324725545216449278699141962351057951875123145711369626087345756215848954426890144644844390153478071627312028999083999416533480058107464294065708449573217108922460417612019104850960332578207405038502329608413773169018386337134344733746487512925758740877334937089367395017520714073894375927161254911844798689848118019375103603905078199132407835803542064421586596064771370707893900626628267847788907958380911352100992429671045977915843530772721895826066520962438084845733492266942391241452420784904476966847620485059758440442041396907966515061042315247295893161135138881551669005079757359325372406305365139808296521244166727242393222481469833777854742208105590549448150043635961961123662248698999282545124079536584878092586862206673473378689639162021848897507118205868845767978773746533572196079251328723291062580705123546980417378796734559844608722666048039671670366667637177592695877749599594977703576360286198445524910905903069951295154595440280674834857236212151379616420929833739634414062402929616497258017365199803464857153493533839402009081898829457898335196537612084882959846828273637104019075222930207994563483589127099167079516136786885896103709901473478055473045570645230606161252891260385934594947685518842333937520983426579527272996357263951052589172649230550532766231036559380460734780823815220190222623851215332454784138066788606042722131190461423521695963276451422913564556872672306591279715963649022688295303440902864317682198503815705335536268631486032765494846997061381330315171687644821950214333310055505004301584482981100949938793008882184888905383972545898264364203903577452783428874450788505611362959368584040702630785138826098898394844876505416819088368812545057865819106152819663494671062016550857294385497451458143038301287298800030763745656643860646373791337651234320336807697214831440616096487927088171511287993812363077941887626034330038787613497415178840410609167436733826752015267683343940050234479088778143558331821838844178645161616521158065870219828137416817900728364727316341265525859107232093439420032282528183615317239285460831223849867524124166043394701222936185975677232774648775109694475666877961311883061147027067607245239036690995355161313781625126230784627278961945356086059388122014696895497568221748021858997380072044440829508069072451907173051387862346399332502371555380624876660147069096066991450285147799480408984633751813792939059777266524941197042110017059532270097318220193233181258960393441060873884596485638058123962723274400936595552470852806921811062222637280107850117578766468589759609389945703631481755431643329992507791386876821612454501845156612117552700561326035806285006651922370447008938802947183112761654228002699325127903862855744166129554590347889943633742633814617808631538441253660333777657774331068637427768163617778551330929448650533656001817815520053655570679032884700771758095332024111383982243363225193091723076033652049448901050785370916033431489218034451222535475275486301889154080072316917736977871342111391083947669711141821436357031067649827953580433762300637345432183133564866194511035083073574575745127124157358261330120350381379590592184589692934179627774928075124057540861010052379022887025170672614840479280805795858353089436651138167343727925028414300657424890572594726121121370575155367164296641551228851254941073817997200020547600925011608876234390199461890034469667041505181662430555042168987550642062229143936886695674094861364488394432138098038839611897010455626433814045657754482490626718325110664579609723989358044208562173821804554643308247833330068326058304945995675124585796482301712263039520984253643037025981808652380957630584145876048910446868251910186595815841367388812519986796665434710138198204198563398829095053385548954586832149346747451677642160466980783645381388290003122619889973859107877611043925260110329926450858703868648926112837567153054427583548026009162702529054278800712102252116896395438447308154245482836666691346116322268803495942286666317643942465697415734054669316704035035830302400826452287664206625266449019108853093539311031472853201161591462940926378680738513565820545193608315021319909729221762421298099519806586524784519126990864667962553737445044084546079515413031131646031080213053279469102135856286537556672676349993426812192730652901974920968195716041931532142136187042191951665408465728368036986010248541103719374312031517402237329788021311220309588360722469707419095564195223014423342344275256302471708891605908365784204400020333864386097116682925471808396992546530207064795060558265722773456752073326384117977787695511024057694816991492599485991221287403149363799069436248095149376641849123650809979966759982159119002011631764676730185127515657622007632489637810635675257321025046886431656933899231488024483004658468562200030156219149963022884372150832678127508769939407968038133264849911691594118788301119552629762850042829818414337455312708713046543774393470931489562266443021492352440083446584637670000276833420889524110088554543719888511487673663257332997418852769808811626623280209476797454513275262417455523146238781088406101002683339751163594802727874142166521105565183865663561538004917369956066694662654141802742201874188276306035902082718409702285742300658593727863197252678615931990215283460229931026839106296908824685283687955141156613211306547605041060856641800415832161157949652165821191650523735527472022382991997646538317245099132907432925612029313221232660217660762335109069426810982987976571436429052941705009278913096550555454472945302587800312117006131802268248903804040710944763415897248946420655474705870385370431801374403913048772476113224220756142845833718774558208646002406477567177189657145556965138944533429873405490975353015345033212031039150930060502037706248873328401574833057551943289075152470132487985644034723213939264593358696955394461212574167188885592400124298141776322689924687456339559742483894072674680057220662948585809762718946445988875945299266935920099275271042872728185079911996130841175635459888643985459992785318969141929320459732186800613000505201989849484541292396999772558122704466532852476489921038811369907824084972685974788165986064042921285907022019953478798037967292647761487038802638155374670091726902900516207664821757801773864691830344450053584648900059456373208023025057840707239725614269637204209850026833906794001411747200206913263856371291234013334850502471267175925992946138998569434775981806064896852329885958577111841162685083959697939651723374071321523755336296522475616540220326291275531702747014673018069509360376576648668297069391855399344650033187314436846811268308035575753622700831160517577096584058552144552758114076010505877447605221197999245923289127559201315968093428458858764345938595555832151314867412743143550116116567766881839424690966961965291573402770165276086403199048712558124979190599775636787664032258276643993788472813890718344375037740791307081144687055912590366806970282279142505914652351629801416216898078117861060644510692545019852134218749607287676497207605139952642200997518711738024355285023809068842001149252721298551960886695621184817094513070907705452000605322829404561467815923089654770133036745234112536396429072237166894629357540212182533088008099754730466835253351195867213113786134373537255786412894890959655050228338399385226708154277269266951912790623663724709914148499018084448505909695173206691991865060843936119276303830843070484615686808043959715085733222270533925487886917992881217770066465347244471394670174727766767277539370859016527163994592406462536940524989315469479904274568447399498161156871461570891378692579403169670508708319048133865225700026826760438704077734541790085790488390244662092420391926445648690458526771513732104651264355589594339567735715632873825737996506318051015482137830647611841530082740250661526484615361044585878984251357072303308493121344861551530852234597132396875464232415758479436267539093470732527314382876079284939614499227837477856599109195342460721346124020137560201584916544922482819706290433808940038597804817777342741425632091018087103835969946684595834899782648231245843674990435202371407524670418587163622773153029992376411255743448849663735587232987488327199537330561920139597280072397924001820707262503388969317155874382580369899675242449825656956961642533485316213975405627401763175872491980776600545334018484713313172618030690976850642628440758886762313682519769640183063946724687875572532585716170039442022945905676854798153230811677340849168526850520569782423693183181301593684329560350675789361133273226697551398343496662640059013660369253268054137832737576054269618027779806974808590779941149593370089502166019763974705180380186665324653268131039320051315228007885590248301544142640116521606069082830141716668588339594237440629795373114130521497379884173583097660968492529653240703230865182651787731511906588249640400444132424807480991509619460459538038396815460934823423428703925999730370140004634268322593456120041957655478099269485935003784732166424618750672032796674234559123523469053180721767315625571205105000095298432554065588974973161490428946286741025774427081226244806436135996538460996999227228232661092531680922125354762976278376694315817449749505335571509683512320451239653411207027544059383706530553738610224155870199769304800738928389929148370304442124484325844957411371839244212369725446370275022221610489283019376956343646426852812851778489323796115602180357191944560697539442902160957593354204203433122790861947024709767633155505695803202466776194325004417210914665878113934537707050034001893930355590225057005461434469747598527439713703591112658645972603545048715145689445223527280946370245074711135138777323487211882429574963767964353066879211616577032443419461336990819294180764777936554732046626978670270512069845657968396018217277733775277178835444901172136010249163847942973385055347425143955723286074520794287278168830084553841822971465649225842229298256959528471911298794775978850053275888519075923748747378102324890357938926204879973295052524004294087797814139661813885160701392585429446078475854649211966110104928921393117554739736386541108218291198780917924036011335645812520541364015487407708050950603751244165414381329582522373917028555415131524433868788752980249069752049176932128499450431151349768708185877365199118793895852318376621700064566251910279469352124210880550833985744677683429310870932912663883175606401019498206484409886301690762012608496199257748787118864178185057223303023561699167590224949301813875856945886154888335355091047568853428965200629167479805339454712452424303229787802739804790794241791458977660436313670955677140010715458066284429765490071117677060036164380332788094272497129183574866476485234884195670764347746416789043312141894017486263397460260049541222177764941774939769021055553935599717236678291232954936369048655788273743236133492309939679788967915077247431051195634754174405577408099139534334612226527591196235476853220068038875789712799727099113037378500016746684209420223328740370086180774946114657908946589690570454528017040051341096422408532737893689839847790700985597778743851762138935939210235422200132713344810793299112799465236835564900299710193389009583589117415724559478762463543768561663566607302931647393625064781310875095857997790334412374357371200027595159407917227692550358931239908876256925929328567458525133544193831501441325078797223243848186882285689843671197239806589660962113568092051303882225274734884763920964849910875188153366770097467116293393169890118669614948699809089236307418788137236003398304739204780144799163683086890195792273968758415374266430481695850470638301813428317940834904371509733898873900992665360970570209961478591723360832100225753483180867624372162883175340357385215867931681589836783288750070094247065531995865166545725226664824940072175961253655359884259438095015269811699793772529580667793092547908674535295351229519257348454531665679563870794055307301817799678517761810087370899024564129636912982944867449058703469046447313389709998242074541625487790082464183433628197701722399857598036356675552390855876975533872614806244747292004000985652632745408525725699936500847478855695094400484440910366144465181531170566382290002916505954369264103731890629480240594982002699182549766060262522714456356335557350705031263190627118596640770205457906754827947799488756360007357487116526326903530159536312501711347971178056113909961092428762526504903247328985289183505614778078107483830925568738427477905235036618978274145106649580925844557013551888659417913503882607818994016681125676999774227288938824258854352796509739070437554998849571599403316539721576659869875477820298735662604217327051344498296586317456121941034235272258656852542535264001804133775052629423268746697314541490296812297036123344134411080663455210063991601639482421693626164180028657629882261488490897120488470645094453259170134095179104613344848290505881278437635774323402226790889987564895128090471571916077862377465369654565505478766469668605026706150018055183938419208744208040186587944785781641533842313882843015382073011972751595583245769776734452528522719385051500128595415212964815055014400560501205113265223640633335795295315508790289030642383119756207673743065465181284335956029763091519048590625539475973672232644734696824219411352790798423816421045037675794377418170488244413438910591814639973983930114099359376335783105561899766529527206135245748216481558872077488845671084627620580555531996994755040672313965064361786128349905411783189130031426619787674187431233882257364566213516462549911176067576305066052457326410006950944638165894271174736716753768207626990990973701755375104558963769816939259560892150205614275298288139366831530759446975873513840243575355143610413274644457792244024476801787865146464811816924647496768715236599723523083568407317181439474819107140636053996505293158189749679296286510163383254420000180001946464150639622020070006088729041381868038350673256523303536903566756436587488194216602182182909727242387059721301664431553897588171905175961825282715752616957847923907597652315166056935916702131347593896319623220635163734602049540576127965164553424652651502690631025460436783411046176259140715619024493478734847294363201779727432076510116617785399570871861107420549238864310266841842538123978613613614891259431530894543222698468376747883302739442379575631629148465334421286508526151476857247507389747873499176040314721064303699427826207725398679506880743916475812558285476840240161132977824559649458068037530001206438756332863539598111519605607237223854344812704158280857815653016398621723917201451538470405972794296330304495776130111690813656140551882887875112448067955179413557887665224439726635183066594527306974335706210954785781811244930202664215106155654780586909827074626725601757420304098959154307194265165724346263454433163023266199697281697562091660269876750395580472690821734137544090454045798426160261989688894662980412769632638201569282118467445812044917331307850661654444568805266643620976875911051423723949859135196779981384748530233000193273551211422197066241641008208216784276217340954481829870885337205323002912250503978501893178625470824358304939964121992257258968134599554895923113983048917843991595925653174744108425639085386044811843406311908130078789003058653958731688924277670991170948000470514127200536593455077276475394091195260565209111504573674985107873967310550300396176754654835068622717960113256015140065536749921674491156703301884508499140001337320204678488789581523148864191992067974759832880142246383035613805344505581819050975541342036349531879593103757980758173680145599547649180861988103439968640491394749468335252296578074395958333640838045526586418447549348578004432914154662268185814575868059252687091140531935418487466515281102428776316479149506792874488566043854365270706920550398656038535714309422284896877580497851571589927832485070478846697647074567771937722984267549530772332001556861538667215135243626607879981113725746714353093074092580576297813609256174354948227755557120936649649859077569191629486948862567672542098221338117713184816226436016978067284066788701657541956716777659998942972566626241628520720519075838352426667973456873080187647185230086790141323525931677926572440126477880304371773231835209859671548804416397053765664659302465195761362289043915044793792277489088953645184676464415777916241291331122519676542065670986184126422354759697329019525752120343077684070569003045178598457722635338868111972777660533501879169472148307969959945419756900295798025263586730592111901252759041003955977510110196596297927012242453516849542338657017538793514075806424303980064296462505523979373164745301395302420811176513269881535533989659349653790727702166173061679024486250169152798038576272695036679333673189526208444436878279320825546911925726580709472734978095101737684868287047020230790599963562895302608122999027490965070664731415441610265806068796711184022670740637388107576180287004246500638590541793625174676936667297807971522738329559123686574887384831550984914797409709301718784214293501229026768922439955356305157812947586498999524005043484216388583329101272013540348703517889341472615227260519837101900062224565661253603548884708026378498460187151257837611462578589642464915217795030188870135561157449320682584593925586747890225659536965040298770187922895657071733782880856120491497679390226006756704909258643221076985388593448103612689180233842897103739126063340538680812746491200992256026930883832605921609180717997184930589480497872126974552493763914608108293754274681549479161730230964596648677413220481529698163991763104758130079364256114172470005157676592725357176651032514447832860470687976753344382325066580042921300918150119488699197314535058027142898136618850868673986981677141258763401715493683417235002247665224744276651536460531922483664905056378684410280856108675836283274872019657969849003803062787231529757157223226563895629579800426482621883784650113791242691396066448979461647735638434310540073010440149748728380848916433277172003770450059425764804432432683036906145211371357057588769147822619381107798649679032108983643291791551017727130987463954200741277122024764533573224643157375325793571628296923709826837721876458861336207293555482879141167092706327945304423039757988578802577260886649080161220923551806763938374552819376716871531480563146042684848833325851989574462646242570132744808530666694690155699043064383418597073261365278152674144949108762864613613063806909767449261804904552147369054403401917675695308417318404452521141777419168353622605598104946286672243797920517118483721967111031827819061290399366956498000484992123077516674280019913302849172015671691979096496400811969329943611806540253977580394988883510982249539445525676173794975440007348702080246567228808008369603663008378198323742790965100822975131765846970285374168733630832601626063656475382758777582770027936198997577276112955862629142568519275614618273929356756003333240711842298037684750477253130850991063499560360955807693902782438729498192734986733304845813681937691898993015961684427517364646566532725330066327460739698033543288180197757305381310645925970481024472443374410065117283411292765921209424163062977788823681076525533748396943121585397307709989291268103310154199436936928805294717051130442010177031679471576804984494989594536525118954468110749733739632595616871320230469804359518447921321641256418869490216661408721157135841800981213235192322644994674334416731869844995878582230219053021229733354885012026495030282304323407284725612633095336791533955595356585147898987693292710591581702661289952475031808604636625941536384939194360614164239390729048552984791892015477732486155362216964743828772146722602216851959342859708810840998580085071966053193769537725664259219487101024108561444671315004414587457804749591724535999650303408955306691654679482359326551681193220924573622319534077338928709471050521153010428284441001199613250563414688613994349450927981695174828478679354173213645742793780717537447289846835363977522712722937347646443839633398651697143585843101543576290955013294437013649180680263463815627278897812295797806035067869769936826629285534646974802089649012164374361797350794034722398687414367150170490848129361616220786370683536332316882062327022524071660041379341063919245258278134559346230697729677882130693056508980186975311422854631329986453465100005585106008127984480334691344518849818347103396408010525705268979631355127847171901117641805174729722977077517770093811420174447760671464478048588672125425149627775254188647331891889256692092266654549456346883166667312287583508259602251163871572459733016436438753650898380945943319593413265472686832356063714989872954080299032935557574254112361797451761607628277811617516441945147699307170008224235396443705733718227445120505253977838550855315488555415649385039739379239177486086070183555172514386080444498520804226004589615569285812781929636691617027193827994828425827365597276684638660570916492136701926975345287867286736541971953417419629202806904381912514837725081438039159749084286616095868265181313322410908378988452915292313038138085649496949882015070974590660702254225636414696218837316625161161261309460346020084490761887172560031312662767833951264923023013381711171789627117681761582931084679694992075455264803711756553321913819206735860282171875552443463174510984362850807031054812423355209567201636668891876593256614487449741859894021671329301245976324163170349299847449505995858427521750133915971996490964420140164733764455548305644379054450232419436378616901210479340005653878339032355808676217250027448175352560376448989330880829508433660580040517238609800028922677047363617987137584177371065392972824826613166282135288864300064553494261472495778285537657659814744145221787689601802979696474015486965805520613917333471025114415225001572333928772452481077903747107791355667958794118233937877123755849320645312222222570110305006334617476807846907988758708867011662542721759374937866488685285150942631655935255872620480513443317411571160691544295347456384314257131702482099517440487239356796808955164294809657807342690160650123985583083658197433880549305623879507056493073209263989750545456496529022374831358560114378825365526395829193683210142398997814586095461269513833253619275410541627181351268293122770321172519856839971433415201519444030929155856061280110069190602425342465448491559372684816475776372245083358119802718248383609825548283853820878187398059765727443769451676865601984972545831871588728339808788054888525965520483644470196338119787236686483104848701502832704593106918062224972047789200761906247719788391011203109989755957621300242765191321207994462598111341125337421781505826739825731161122664532753445115171750288579041007739294660237431471619831072271360600940074435610881106907994839322343312301660997193511333158821571850528708747124566918316518423984231558940863465361373611745323564503665064819499952281380448766738713062079595789644375549014014541604365788727344026179364684309453646866344449267484913845468865424756005437405947229572456779790968778713267332152708033177173607362238792339990971536149999472665288341434086211436558964166021826620367433987832420323134509858825992739698182272971263010502267104625423346839809875846758177522452400617612865300588758807283546902936656586915240248063148328444959255169392624664572525573298922542872885951675732719865424816376915083970486124258592990621351920011294889179200537445573937953087408504772803851484890939805060263875995528566853064811839570738209732709624165471728585805057845085725733718207521242795038681308186403842409894493850956226192807469814328701987184646446958004143989488676981755714281747966073119740235386038504381357411732301832740288233659668290136453867879018111005431788680063287622109873855965334230418435064517964969107727824541324427194343189356663987647943822175786351724529240750533823923312125790270838572032066255767049545913716367840586507396797160092008556279397175841274110695536279985522955701321506121709549935829890197269723877854128663748139267190914531886242616807749330853316123888582290071753017433680622618148076340902061270854492936747509143010687575189652903850873685280728701936179866341179719635404718125058744762318101238775211811292739345670743602579288897177075422899257894492538012169696676273042480796071014385806808706091018587778702792249288102770832207764839075870109359841610701448775337756231525777744893097668029159970451713541289219499730349652459472839530468924406652088864954573654418765767542826404220631789435175690842966274542331721687135807912877478878766337284474417783890142881500778541138616026003675430862431761120021512078788562954931045231166607549930824867579403847429497216021060735477466516761714191802859155647729047018909296232518206862200005308341370212599618901893857506049979157499420100531534889365501836357046026413390588594503659113814363649853855756602255580932998872294059610395327741099693295204307683927199827815292966770238415770031457006640670776542643690709784154705295327863950768658534292172723892274643081261276456951316911702380544897331343450526424536337201798020623942835740313271791760285329834761353772173169172876737134776698488999835457070259082664823065439948146754106992218527564028348401591090401318825900486419205295264880349582858366735081981533130600617764405591640894813239253467939437035022055899818539683369991932464144064765505493982729116929193376750943408275916305764379587975824535160406631508759753151696565315985397999606116081679812426538044289101241669426277508523005758654109594375588017599958720155742731381678634637066670920060537250909010486848342951804944377782023394989073225412749791743527847530079153995920914034869830303246209956389768569044485408278875664501362625578910913075895686703470220938505527638084869646094729159931281174167195106727741079165929833664313937546984382050188115562606360745076050059610043186802490706161100182615990707577222388185117321297032791179166510344555559787319028570981624264446157999965739904596798491138608374921633514174766912636559645660879656951534249833727048733201668747574887687246239317853223040747942174027552474912348399830135385720769812664466873973357139324559314654274241568714827401940532149395838777143566663954260519205846044865871815289901455106051134738980638936729227111924018327095750429876212809281182460324476851230471547477669239368186597661929633123092405047978616546483770545686465965380011946983784098442422248996785507824663579632153667122606656737124718301354710379171602683100802323281333370670660790055314673379727360070528635737983482350142890004630964607972658643733296668115337757239884133483475208917736771232366785209152678746489036786598339887405724072244168615433656146978407236726393183008176998934483366782180688073406581204286514163428839216382106800770268571417692438620418811410939248427629933273533499034766348870721738900703984710128280447297430507228343907709781019779849791607455471240982006872509755288378058382332109806774658397218211636801471816698663000690095177184264555444380393828460608813915713537455395274863018206967971220470619955075679026941960356792514747962937274843198336539124270501836639017104509478665825323585987627659916746507257332043238591655612367761260820784229795195835583017447301276848366483851689773128080395462971349156233450511665267304965199178971237504250740745110469007584697612151789732086804815138598941727658057048500717162463918897233567859033792744145506705857823000463010387448356021339707306152905511207328531735858991978456291150618471144678786250080629675968662467610745125632497292526859182311164555376342588622543174353966170221761660302252652005990727810811534886640224252359362269563657298491491253727354859195079686672878523094801693102562978446884274388296866134407620388462701579580306658224247020368684337709553609881657026699212823322246778574731255133543830447529919431574170910040219441847770460634413622797135973116382458215575337885778637605556921323989658540129169112098876525057033631345614109201022489100763433408867842463252733686766382288580122602944582123132256887311143022126091366033299654222733722731586561371708133503908605232684932069954056874089914613227776256006279545566167597552368970523836694518249757625748333504100209017954859218439660370225590228533308139459779464568836921446786728000134454133557941128327736415549509516716098909246300160722966251199078345281769664553187779241505540527939235602696567101978232524335561442397973219505650319209064494074942568955423866075479321901092852232677432789531943036145252618423370095450724038107707369875224382568568854808146035451564388134721071677494699381974430724321467872841655515382825097455418074492202869812827481454271146927823521260861841951591349952419031574558091305710945201910722460006704376652353326956681939235808740012445587126407909097600371375275225475963664258812877054717256619458337770644415759268141893024793761119074804155842914317179430801723683295321624879195663506954646851185733877913241206613043621266149628012574918749579384864221735415636228329430553471041663614879069887090668320127364799041842042489315816121110242789240694333625947484211181266534493228892353514642504383292787633326450165502733141991344696926439762199968588176692084937381756125301022818928709568235152724980530223679311300303985145436421651491613882326743265606023495655622133598445410849582363899235457533136895684667912653660430866678998191558897047611381875134590839335910116587454682957352139845196628127364271108194178787814812194568223305887856871998107172620776115035590419783795429362674505999868863378175972630721435035437684483891243672718923541290596097152252242915355673511547688102927289191094110987948103660985981120295858618636068080516095102296826108989280691233419890649342324286109606414310014631626071875912424070928093283934282728288781473618994875964424997492873291224478496346613322864790867280666293483471725497305978328083951907683486044658257239630784904337683642553065730773685723393096855386845945839353301446856500555508839593855858929517401335406548721179476058161450149534576950924964295649322151960295940182396764053599609142842624686984995970264857512378070017837146194067689888729692731100679891750481575386990352489074701429286699165741311754139618667469945737567142079273566682114435797835769614713202445118919607606679135253044208950712651695553745748718835580488163482431727113855447034210573218655883844410124920985548966089741674229674984150782730492507425036303698318917977131948108697625380446182383291476408697850399504125695360813089242541745327550351623531729020987916726873546582105277765382270849479115156977043420807135025820070946852647476665334896354517252499567652316013227750011393923447867392213490006329501002633337446254300247876456575703579241970584550407852502915627959967078406873953561326884131304890660688064310240062428511812781656893485526407220125697747990256196364097511917229691799219246524174813653122214054223051631540021196038498454121223446068363207514786101276179671932590541579737724107617842645242158444221946074499520283796385157455029506814118923589611095990132056342205814931792273208887628898031563120251641159763658861007461096423717709362073253381520851508764430861519346119799160346939681202189795556795150970078288608320258158116926972571539948631929130467003894201824955054219608934182398245978478034019748612860009880502562222380416660842104384205307230151017989353216288535863338405832732461487723954956071190394887134576007899237142674834937668806309823364763192954162207153097533739931103543021976123973028309322320690380066049451507332584797911576877200393544290313026321770601154845991243463187473040238569778279066536460779779464047571138649647192108533466140315245725779894695917410334799777069159811545830119482318546148522965732155045860829387218751384774080501322799728966230525807461853995602027200443351692667966816626215772571627257199542424173400541483373443232645601046864923503662203598066063897096890287388314172127525288090313943948006149275568399494868731434307687178548536471005284826628065279673530662093072851508329048293584708803036733704893468592753217270601045616488972593438049303037799460510523693593763308598826365424365065622815201924145922355930426882764537658817024888851153312418847511170203275105496717573218378960226416573329999531642032153405293627292417363730038739496387407300631451065360683479030445722036277400818201247325364623603399110256863976291214898500166035830231773464375326028307678337583857074794338670802691955523394678693702098751867750229600629500219574845806099769423670606344260351860669373208465605574116932096956538901282477920167390227989999906102352190301370308450106809649894362689519534844528649293112681172400844961610938350431262972227299212887308774215428726897343712460771502723370868879658239265243386293249810097023072419631138101767338886437536779774376857363907032249130921202410665365645053443359766357579700723197270159445879025525183536452973354588102366385270758878018525101185112079961155219469091379372522661364231208854982167402517223683404515238246140522578314992834573388937976559209314270394790890911841594899451457879552607467628588150226900102335717168704392604500012396558532386487373867194936167277070459859671497287751449108551890203612115441325456486586894470889762593942619939726925629061827207828279651751780197384466206680842792551407922877140701562102414028992400435760661216121797390793840082942806897284418151758540107824226996258654499334472261174820609971526693476271086295689436037595175211605203229532764731530943229355028290741331551136349482743629775388856618223408646588756573066307500807425228442294589289138601137389845540931583552509671362613095561687847261756404037212779598054625900163158792882902974771525128309356485425986985001518289335071845075596960238716630220794582669891545417706057490832066414104414018880506429659292996521095130759823327595396430954655685159661020112571009044792952681971234733709329204981249243650192995741948071824533412352011602411048100450987629365140775990761851057668502454318279415024782822676522144636696593281060027338295677762863240254827487378160136660984003420215639794081606074437360637535986409935517017737037702786642967702181303221446962983564843383309522238636651689958517741336254274944802121822223636684067223777575482055860287973653151444967445671423153579987791444925042719155688419340440751048494671449492881971249294487115370356813468995709307351319002328108924944180326757754698745631934341886819191226617867098891858677522840554524226451446102096618936981206866587914173738285651921208097782413544067925971966896330924403530973526505271087988496816314517598528170271822269593596231593599726849081405327917325442985226607319859608481593881409293504566833150869818331354070225179409740795485202149782555265037661784105300332375918464243402979596256024782816969338116031496384544824015656689610960472745479259703836842775911094497411312448216834968413500970742660958560155532932191223653555529238243063261800124161401957067946659211365817549144777923480931067361737149771430448988449671608591668017905407426888400916596892533824959268208233793970802605559917571027620102970430087219577955617147124782573237725314411109055555525689073811389778866864864614014580182554539665243707793267894947091231325559610080217855326502730955162921314689216402977222771609511691279005924814119510806107744041300848560016500252963897926599893723455106654755234984554292247399257649364115366934657302894385626217853527803785531460988848881239258235967990826643638839847007947643626251399205739786181414089384039252217424987483835320320410615697757356172773920142472794202231067472209451024888514967481955902507216985252499198960576929876641495049253764828968011054595126527393473669820417215753896238856880987543648244720432821420303566274812885267069523960111416749415002329891580393272013397097241686229952138830801581214635430627910610485838520969931420082372396958065030487458574981085992232248734379145019590645707701362641966722346141741852403986027863550051565557082629156353806302844479447044352113901899655572136398031681593524179643943317757641996284280085632946819293062217431441110409035746623505783153226985902625745701672858613578598240849839541599299066325694790719336900162513648486548748500821156186130151312247171543400539449353179604247699739819062213561724909720804735589939469651038877391082141072586885515645958696221419566813819486864841478804408261118643401995562074685107362068103659901558848173063134286743817285750811034028248686364880508911662356453218306297080203895670283195418815947293980010026953466517942869763716140593537522848173178480233696545240482607550228021272800781031988076955334719170953628470476634019486695419362486442663351044594929574530872343884660707825767228688338169446287284496355348299286892968541838403490058914194701105290417784096873679360479386683030805977834815682818290707162197814845108513219783072254848270448713789665339830466747287559634143567706342833642845272625773924162219710660541792413596260102998448822954741824616965418896140849113668167298392798111870132342173777993199011438624526419541969812424979123011098880143876859927529407071364436456486978836228539103715658946401784261163322546248700161706400467935407758360458332884492113057621777345052291407541362757445065234620026111184087132619610537442651236780747122496866518202667056309100051006842819067186584165617107322618775379474860223921096637655834895619014790749482404241454820889811391649332751494221342685357967336444450105055048678078402967499687406649205905582760906037938302997337401591141505375211086313211646846155486879244617997629809796796586437165766831091200722667352693863941682306845548500188471096986540562671328287353164534994533043006950450223644150332605921028310665047437096698243951488741538972129162077363472397123969618942337860870094526177389012816127168533124904648388895788525367511116829546274963866668733486328648503910806069299132067069350542999446114082416010834703391178608695565103732887437820763186745510393282385633887550241942179925870940324357984273701351437080526520940165208517111691691249680780434172680114579214859843367269726016348615992674974187085239069285100642717391997574445669916143904484624447074771739979728541246747484824745684583592094641975992435888318568067417378278603052062379722665810263474517908792752761093956681350972477823098700862030832667212052626421711673512170333472211013430573720814631136021956638418394210012333155381850853635978298412421129217795338453889192961376893521553735015372177432697610803621084853032976193536090059194351066891806170294567532727123549775188542192371399065564725780837921910877318439701983864900814836088985390938976908778101378029994729709391603869750975843255970017680391728785181448291502615901909863969100618305868236506115318225507329246757336770839086246678200528440282768964690279127474816986069280845068510855873312800247152637636022877499124374208775931114091085431563111670211935328815899237701505064367531357043407742028513256362503701195639230711722105389769330489250571688397464662009965518706031332668442629702736134985691173591162450228060146170185561780192122199782365875062927672407908683781819445095674263922096216412489180535010082153225944641372756183304566761989664262619222631193484459066365500945791175422776343680939799721906890493077508728106206612493301978522654939978384042749421010070677511963244027754376677642352656702081633210913094872081951169156909260165197263038863429616279473265464922967484348078855426345355242646877527596901309461177850216783449558493507184093381236094768196762206918112941604465663526107393778114455475560962663006391650640060343619654211734856211520169079324060307131220849418008728730294422322769497169962016173106528180213258130738355383894169105724163932301113180340832964199156926424359296832249547031512345245463089286986301971219142085707547953461880149338293680355447097427906644104673578668141308308190656716583666144668401147440351303716003925795904311154159445067529223433673240886697347138869127860950941235636463833357820537373795791358431734802517609314780897504672816166623688883864901990281114795430078509406223871326950299688130057689318101320674629556501089522523720113335016814632884957645931837615600453373023034616040771666149684655673242226251201823180697854677123089580729465664853670354383083912393035823365048055349296552820359614149576714031039858553958325249160295141186175944157521042481585222701844618120478719378638325435225828201526739052169858078630848414991246744438776646416411905801164674174981864304718735709017093587146007149721642140300672194685743858742989830596126473063036406371144327602951742370629212556716983086167763331432189916783124120426729330921794244372879208272237890206363332852403024012221689183620033476237990450745067191252786113450946392394844514493346807382419084747144342560615240222875262946797706336787130489131207075067267608369744886058524507164583201849595460384242847789859197239087637657719225455558476801927555770548695771038580322443975667914592153947804598961472237800180828144746752493166970671372992328028407352640355891738239530415744855264336682777643572370877190704630675841154271110056555717647480597987233840572505605657545735233689882299636583952010657028423426186036921409363702910632413159963504031105423536734086471077340742223980221186375677077978759221822994639481836264039962878112706471021839203778895945703617915808433893758855996037603017026865147520982534494278013196330256522848735083644029078478603655903956033416230468257182530360553134358782838337699035707150972279069033920133422241759231894627261683172433893791358747378719232893854796391272341900852600521881490053704509710777237697080929541654658350257829850038060137948508874959292561324390889279847797998350780536466997813248608888218254776173137452614090076624348973961784579088561499752009695398754149006294949600239391569398451256446793601400472245476135543924220571351181726311338596232875577977941623155465338012399686187822966831367470541991095297909343489970254077321824070138122937311222503357857529521175855437522384534379057882299691841053147465533142724425886929138302998632583827544846649004535280804506533795082715223772470247262782352980681982226301846813878719680942304637251598730297150833510137038028099935951113767075956286429351386557431089100732714513442118706886670584092983175084902745885536448827124116062514794781963937395494740150748670571073008922396348158515078877818521316515676177901977537077274059925540166941213085251773087037800262169639665891386940517140256207771910422296844007495610764169772874595179314959724214439308361303550641196356046011021307969308300117312002159899658376465863337605419337132315749575832115065496645302166714196761327281943942557205740596235777757075592692424526662034520672083990515343379887927130606774713360180422998893443001547527160869566861041417588380191445573879239648714011028507458392921903825005140686340667697748733002796432625437567555597025759174547416918799452834573838345318950456755578452380768279566894054394508769957019701996482038760535561947653350062704176689306616500289859492022032784354291021606210868045106557465753635114276384192616262774590591364949041501740126424409017466161978443979810575378984742383796395007564288983273446514816642064640529131185785872423742434664792081657494171395307822325376949076615496120798396811532944498539678212135075269285793440980424640748956677618879002618630516325030911988943906131112842247225332658130677238370592617494451331083895680872204617663246079802911906554012741619714262266991452516277673821357116225774926653127611873754670769909531419483187715894961429828564585359368427884116823733791034563360570302830733153119631683796569173929705144661108954084573379040227607855465854197690261380533777762615339360407273249525502401300855499671047006795471960689292260577768142800340907601136708945780695471868896802014297038201929016485000459599216053133979399437694439518112507106426204222502222091119602954480790862942934725145401143921008184408915839965140796688846045269415781244511144508879394963769760003955462585521571940668693170324417913180262341105902050477262391974618420927134497677243080859401472512561246386551126740453584975741260480353272914188250527925418366877401035997332718002376583796767222656702872242303450755643520595842321503386582754809235804622620177612615703098049962085476074599608648781596967751520525236661824828355132340393471458226508890044221213025023581941716621186675628811177249451519458427389502601583051653032918356700662338755759631833774955132830927527577272433779151881615175695473516354100848870906018501370599713764515900520595128303362337649363215102684241141248528546568506362948793859430599084838673670562190620854204148760155755707824348460189181169114259661556651665441351789093715494935877401279289186843536713570436587733079695962819566772095672415566712217660646235528962162855808583982600298204625484350862183793086018863517872379972067493926740373282246337765531246464279235531717342701904756037105067059607924929850839973082831860379477255658841270476183282725644920903567863973751348038401439476872834262274488488489012260972052305488177054972650372227115527406640995479235191700608235630880457908396527595784973644916700578543716236217332522633444407525664009876486755434307084522949525388972868998586855692081118007687457892164483115191736661808630083872502226033635690508366765659965535812801811875646831623491008183330248163830267341157079087081812606502640109349424658263455819165835024832513107042542863755131929185086824659515595073457856879535649555811528664405815463875068977689659223223495355146147694379048347236923868390105339537850450256530445006445985460395642494985699371751433352613218542275914945641851734029089191585994116813581025236687230546436202067034483456412663072928902896261040711911489678019512895723746055495710219035753139659982073358325382055597352482354772299142706839010019914816373602497147706241859846360655866706281589036558255651801428901633181474013278479555950709377376746980847283166466724587617752650111129743336418414863572280761807996400305396971131381021066897098402295944764436821335943707973546227544785256906449313600746407582936244500068085245874755677826389391856605011011453822255763408576453862014393571060243559210352401859579144042551154125459981143501387820922805039146143592225991256017343207440182830920307307275801092249620702350953207913114791201926548917921402883258754277626536757101420204106838038403805665618764174560941173086406460241122242635839141270400987572809196603931881536129382034055763889917463443307438329134510839412411659360513613824189356440494260746656430565234340023460499019509662217923683978864945239461826629981210222701767717070933859646133392817804366831692018805043234342008486927509664437101286682662844254752998065240047109240135011413131235189763284788245901972372877458125480349233459881417621612470402791494720049430056097400632394165374381676594961163649071695627789720921313005119356996052901358396907982952591131824083414030192578545157032989874850155778145739009640197230488234247189884051910246702886728509009917151576574945180020490122780960530871561482452796431996436941913875647266083405395439866030434696494915781452842117491530614862671802427413099153481937165471641390396422538135092534745783498240525541612329356386374880920987141765493476503306606763814649789421475160287787515469643479822022514133057575995781637249089826565625981899681155471079154231300417333418282744444506673549512375107910817778145549800061896501489317597767705770546947883713785094236437988232657475150844152543874671978676311524327736079576822359586637708041806326744272746442386734983573259198948443021326683933424430494819310644420930539558096226298321340156782512181707688840650683935897493021899113430653357968261739075238862382057195105525876321662657966534413756222540488963833033502952845564638269405728207702682826109739737429688283690520042818134797977190961528472167125524409180928459796016595336568947395839993365121489998330745785375561689730250127828129412232267789984776754959482075009689974901216640259299451467170711606541051512564121941176437669248024718124278651620178446784678157736415316315292938004311162489601502852403316680063753781550730449479933977427666386075069013452556414489738983295240276366159677115340689088463163679883625822037404116916628511143450624821031221657228930016496033333666394779531205705381512143730107727143457291729504457058264896750278028027287320408187740976126177583680484811446702261091348202094026370273936162199324108906759534568409465411703013780392734801652115538509634661300503491349344053501778041691980002582204622426120672786315425815735356269321271515322777945943698082295641730824537955351173163636543133148016857568047210506223361776278084281023728390139184370871408666384021277480135039180711153329059960010076820228464715372021693495553806861137947937950734153656566933888917884847917345568730841182324143986863190681938886956171794368269763439127045870389603216264888989885160327758048841694337222431072938170197624547230053059981693743872690823310459395024457949011549869758801835797732580470233876142066194720118129588356673578090365276680330313376141289672072244887996500562905065239511324120934050734046159072610022141838016400732256687272937868626226184011615762646404628307288315943064040163903614006205858666220985744244930889602495702092178231532433213853134994142285324926804623889232409615845854240650252510509054996901297216261367863805897790685732604920499646619407139516285536797174964994178335147237409476648299430425507961561542841778248266564152561022140249301080518417517677213817595506335661715426011769293273940987382451206782051130673044142052663159364448843699760117510616816139916885582501748542321321715282916362515867037425975330878664336854805013136884404587919289163226146620403448942582621689594775641901830060939659653139464574550773870689013479627881491820590088423651025072373593925729681474071983676885426153950595634466445994349451738802884424824776635950675167561302457762338504969305909993845567729773210268265987201647451858855676152003845644304500806418472165032949019056311768667897731601192106553788408257566399206740417368266296581977595006482539128067437127790191403958824572704848504422656144110224144910249151066086270150497435368523574728808995563315967114785457066408779833060803126400963060097844552061197618277039988201268205023996694325967037926744342890672149542369282141710555375167230818042905926774547188689850588965007600747798972750779407620334930634356589420644860065061265158778719029956346419875307032385824029621490040542577150600220672853077591927655318903629611915502797574017629330161122392857012317643956874778735753666626214117321879250887531082763073271218577822691397906525495659100392426779799071050120005026958316662941289549820828646161427079752506592700326557702910920699466023345442932893791040555707008081020600924333035751076551677475380495826036441406562281976490849349083416686208554055407718261308756500729332644894463948355119231189037858736629924457327953502552543108906759160012410839841211372874139071653089413092819454399663952583724469724829694642486484027941988175148324326563762133251281470253044832581776010360233756540980291208736847198446453292063761804868426867180614672663817722509553836185008640977543294301166531338165942089349919327778783593580702425081346312520216368010116458755314307357020755489763628211976086488748875033220069079457171055409644225721908680996495981475885363132059281110321094590554445810485476068047896817992493048694128447834297113719604364551105634583602481231313810491421546367290405162518336237960147449536790819422868382857225058419742443019145474375895480272738162293029872639548695275727701985682691828587080979173727865315914796326095133776114988150250211106095054162663299350789359549830384019787220062633951111188253122376777741400999552057721822711285719690274048662729779546087254219525480733704343087130470759251453995912066036548384229701942091175969583568122760244530814036386656548503886289061789332941370361055709152005687799371571810386505792660319864600906380514843089965864738752954636330388703028130734571633286664426749032056187488224563719329472448156114300160974224351887534723680765952361173504974264538661989506543197796331996863277688707012952521325328134214566627134259271482028615655096315148306876467573794366516210702688396414808240134134106434919728102303813260438434879867578637548110696778724226669720452099356902657480287379956845334625790043351142874790361456007629204160663312678753955943986154792955480251015991013687377074869959096678044238986410329320969937693881229221595027225940976414589514558648132192970251783813633298991276933336728503034773394739369999175669690946483973558207717165629355429965587290652160258875158303435378085869932000170827642329034346765094657939699928048621283878406697547868105259354882143163198348075117603127895838709628110999396581940536140571454042374060542986088225653354574688817221276558467355685086056432424430885218562348618511840991557917606032633391954320446629341601563934705974792614183005421939080932899636852438029203485591443915233011562551829375806808026041159211666629578056681072825122851291356862600937102633785684154694064317337625775657302561525540473710331277237427279999066430968817761208719233982630045604704229668476686410891099493140612938211450478298608235996771703103330901624495553919760529366028798321507624678467025536324149196208621213401019724433632773837355930347354411386565482940120109616677269495767740330211848367241120744801595026376295015095317093564317489924202619842033003679572120615991661301633267921077319879949994065894242783007405078248354567854682220375032003827435620824878128788612782180346514963880776113470255104842477228755811656926925023053650875715272714247219468525960283896085284588823657908526548309473272698993448359920326915867063222735076821510015582474771345402289762630659163270424427462485904896611345521521957553233398692283072824842110664040748299668738121394088129047404878811450854138031692807913111194614856644162168096858724748759397331480105076437849166476687036785799898891630390982184299325020001722982208660503446741182215445776483421193279487550803346958826921814084750124947172693774664375344207723283845099561841168457752485624530920457232770007750168630372621298779618782818051742636918250220311780834400204283934127932189104827785942545890720848009452806222685164123923488612191572705274609906399277636865233124726280987592928674156588199360478120931839250466764721164988477032785791136764545895996903005496787372749917614276563349347329511895043832693638367836512611396703018243891062952044438795220469845781262477847996307196339003915648976022686881251200412423651131355417054160900701547090557593125681367004681889725232041987450903218005145158678579676456354866006841003118948265154524478499110046470755474408757314813337134846232094856852693443566920969830847784864276227131180362905313663059783360414403636708487934550484571554015876445354581001671179012436272985402083165895962240988986137557536374815961354672066069260616869190676930427447937338609757114596450976696860201801053944339144574935766061404881149454761632883635094049320011137498358774066684583562895546815865315188589336252152122822791478575109896055846829102086552152148017950862363073415462431984203430795655379787218953707581633154623608374039913760039140486468477172487829646767448902872455999645687519598940965355937155415649852748484414676723797847484627391601802310267723967439462665194473128415140809171352837634771046014689433979733787775626380475956499275882407787941469904308833324288264308553832149913404017954791701561884479927270526383653052235351524072369413198520071104523230223231465801413533647343304374727777105257732070414092820538930562162584538180446931888021458066450169367509566876626115341927049103603735255159069146929234162524043112361342925696368200545435057534026023857266331212216249020700945441817313403890809725585733034100463181662499275567954415679091848231347175120037861685560107661939250238969776568730030873080762369944917976458135899702806729822812253458274073316104704352586107124299185567237816658139077328005843805660234452265237902329434748223484556411515414635594117874007130828458810049031225063277516414333027905682219275734197934422637331381821868259558317402643339778031511235451140952293013355076681862708726085460430076910085066758426169044496835851292595143846364288759437797864474821643996148785206053982377001026703750800478724450460288906479582667030192411575805471490859654155085251775045047074799348546391963898128143347470136267129524600915908735267204427123607611744572591701184009433619357961833858959421222599755061158118794420944485017054408085095486254589745454731003939959488975392884596170671463026266381471231663070189283618528378581168481215420130246005409297975018014318563064646185001095531661970421117036413163490423525561554832631389223505317756208674676600381951754679463636452050041081543835284331516583879561036518048196888296756731999813078763775872357300755293992669094358695912755210637612682339780209005439936326260994676943925866116048980829635725140376857725743737662555848530671785272344557764671665713505950378901795342573724746882434003047526769865624239803533255282445853146388815642222684230868584366728181126252461698220512999437950592306995184037948979691703683330162094684597461590617365836554228786324989450286605417510161192576573721970065198490341135622401200704055120540016921594346654779910864459281378537538062422325620338476317287450282968887971217639018088873453056155305924944195944303452826099386436106744983322095012946721578191052919586035918421272057505606858765476149619703160663250818121201627804373077812409637576368956033184821964004198501267185500589316543956332673206932789254992081147487345807434992019336645063291648960968182332212368013271151460769166074333296386774402656413331869952707665207534448726119269282265107860633300277823366208116969168645279512767436703402466221513793095853127820815479765399884175629890606812855783053859471126835192219840215774947434664755357003267758139032669837080702878918514504936398423713613134635203189107151722289033090266022669951454868033774052184452053173175141002749952927248424479827182025405437620160539272586153201640298328875398909369676540458064904509218099027530416490730476469204001224692074257006214917994892712264895256580889939466332343832064478503972882973672547205867742446908859977700376794155893073691867311662815674703588382930508330244108051967704917837978843505386131502920324333657672910402056248378206664641751618654913219627702715873243928774903741777109738774877860682136783658139095454534107793369373665701789531601718228761173225858136239955482700681929022414341575840421639777868754924252638100108026135853396448322561320573656811892076336066037828133130550823225789483524585864966860166123324194924706608951493221943874474782484188252025767318438378317852334104471994389896276264169222401041241098183503127122887003635448405573268321092575987607148600417525283672889445152547751275159048219952119623091669116910640577355403851791596311103505381511498603910131157223482272750710981851483940520391579186064345696007586361438885218826695819793960242770248545678436904530211777269316106182379825058216870705864798392928980923369734327193026956319264012646892929659127430153538543488382717582226747808802746308702248236682045198036989945144089021598134078359546976121078133854883192986664958595428253331215097573804796186355932093041923337808275093013269779226440883472977575196096561117348592685677410615832802251050289338862265639004384800675561373851335905572607221009844661638842430865126243898917642394428419725637425356508714698725697360534958857055078480355154996336800760089361707274846887420295776257258943088959558990727751360751773971245150891567705260373902342265119512237347856081398073135955726244641197501920045075740842960578245685678612087363756606968954490237839807915820371248122231536252034096109107832159735859847121840849933582873185850922828911386793214049367669199786879517834107088793622864224166694650468665414915632008754132787505452328281622339797350090990483962818025177405535326607915478132776459386709541665418568846539619790145975572867665038037081038063215739478350499661608390636099076285409346433767210072000701768019233733882235148590390178487247446210874074460714795280547357251200127343942912317001505737887418545353351785085532569146598374978349531027850269490969535162024588616466007711412167478906603208458661121481889955508654132310988343332619303222555412338095178984332685059256491558140052707344564439802346623665486391872843167908400994840176595657310239777382329854147150259848203495293332126148442166562432520509871804832296592567214049546647282712686352632986677776330472364786157495094817561808930064231797134670145823533909779436512589546672034889886589146038340733383744609588677047756750866201658048674465992689426092051051644168097958116389573429674396311463879531108196748547381582777326763863211889074327651687137532890634177978146679437595682496979061395928581958033825314400094635676827745210091195291016685787663346201038028769509232509275123879146767978405465200759510369703532110373543685460704780246525934061959951939026572000517784648103197296397376526158130107213020840278284266562398611633338545895196987062310549241148054579252928079833927660951807687751388378922670250624604942001091600759822359940333778710869088576581985751016377064634377677627239435862983411486639726485262107381080216903632115907162166277505679117764519670752732359987331188814178295690707380555940048341499240552822310598896754699743990900974826552168547283792229530134006031764694689634309323560375581552428551465282044887856055934898831585436581065017361653943544642899149856281855469994995052513608156942734471494333930490441004404350214726268582877512792653475204032371512842104635981746538757701569114516975007511182600345835493104831691757375640874132995010878936269374062103201769473880586909478166078092746594888325674507769218667849767839236677808119875685789099085966224193562499830052211206087977515697614022285335661427013895012008757373164891903042969747375805854904360090884541584067611989128772757452236121489206174561931101818165717403983432106371236301718014747501679813132719783994593007364489988572760952705031156905718634935130327840370748918371546528016494835804598389297755499513788343177097777814033381128946332995314866411588521938321661314262011876579039157249051278071116691091162782913109461252268318755637172439175296920627852427874670553555304077072046411760373091435311564294064529959234113878493039478151432595048947311027637730383158267614551956352511238297438756444130541876746649612610418227798038388619882562516344820758107220230956844966429098869228183273856200366969763853520208659296451615044325278908051918312223433309209871198100452000851981266621982553485006163159570297151873200446693857714355073514836014427970512799970839155949048073558986533089568719555196373472984039466072051763446275220311120993189404528707356468913427650430268945980964064529158598146848770532187481421106733570207824914566042735163956469324907460624955434526669850928807767965381792653869758893176521409493944158141694633452008375378450231053873968834594094663103004393843687106865045890922833923920674427153278666987199395987378958531337069430812502704613276744158618667572570589500104479317740467896423311438073332392719363510284321172009234820988527756727141676290287340066093886714680451833613270914602605154739734948996699706720793176809425512264226858604265986741457642634264375082097730522353181044326176043289816601431179055314063357822699798769006341550821212872917491934086120165015787099593934374186653200134489064517685101771662898406822608010366124300431228885496494862395566539488631953773156964967130260197479037619365552624527637635102230546257600967058879398917961603165928092164119046159783089024465607662060840964894268723377134973237488913992011955070042963506498069900431987447297123003429072101032710033930275909453810529918029970706545215407539670764543304423897234074686198691340192152334684150481032182292431539197792153322482568028592061473040316769660494428351396729575841319860839818990801069656715082426683554682605553963761083593697402887305469505777288010879215821672250862036078620457609455440531083119718751186898893788380899686282257666442714459253980127943716797347842796385296612315127769898014874129977455520062885092885469997967115717640607126628638838333077326594616403809057045891644980549603252062317894907595644631575297561166760753663844393326135938745132735968405570938908285659675866177762198082957232110177772851781454629235999376026647258431233055157674268127145373851772863930427955266676457166551526442422817084882752900718183145442085034124812865026043661398792515744349947014343484798578727087779156941608641202469167492051556170294735455567344939880306408118698563245550924275476508272398345658699603055809260816772198944093113641693683218671983961388880287470956004705882226610583206042926597270855199692974933970085385028932036380718155938467837749508553820189388294735474610574287196101306973455957485263142160604962050578859721490731582587359128665201492545500545577553154045098786529479633721759312081644193598341212735441937141141291994844440212567105774682691284404924943632134261745006174679542967532587852935470395047565150575658443274326421218825842389437907222737503776430118707208282756552691699049409606169851680277314141260877905133122367180989364229013384763542387218219622201566190224890299633735284770815763701775933896613185161331257751419884069790916504738391053329978276407075694657945763956015778926910843261175632817926791152899159818090598896210925182835741676896199860138911812819901694031975146716957566164171110406374943056016535857155310125942929570392818870768196527205910817546349340479331562632187868797210377148650092826254191173084156411250082357717676140795683591622568641640528018698715289797334797812198032977131079537040413978630831008578210716396561769276462683402181784904910938544932756287471384382884630317610427560072110264847117548343696772335924379966554234649592511017790250972029294988551710545345692269437425669387964316211850465731789104390560783084156800304005111019597876843204307649847044808420768229642650716049654868664619292383046239782106794773158177704045576058379938296867934417395075006334854859834074474286508565338249726855291145573464881266423534817862443656568388947436082819171337700522917694874180361752368861073386340589418561624997391110168293925699447693762018191413735174761770860021976846112518128596951677456839449933459348878642897091204138401934247041430727922643272947609236922269314862806118784083052087031503018246468476126778930925615505496679114958904106763984095837804645646589317769575519977449795601099277506300823203478205773410655655832727034794677378518085890866458281597141069299994852520566749576834115365034351289507135899511290800684858171816163575644974300104646246508291087765234994389580370613684517216555496224045826102102859561965873163799235452086871890437526354584818133866133937176416900190820367486652793366414384808251931821059086737532902144367732677047577449100761233576529845480729632578024705998995828554943193600579224382692323380468255057737053584799003842050179345655972604130607842233236162776271609696545309665711837374509360700333363940348551063226547254996117759281135547624113691399918344480504174006925335391258569575681168428199538854261051094155027740634594082549074849299578873273353446119848130224722725304414367151951988307634959098578424175227054746580698971645113818209128393109872019601377755981398538411267125014838059932867667647152207777330827204637501885463100253205920476300623146168220034549527338847699593120023259456152541896262990397472545896412515887316183550461017863961415652426040891573176233150923245158857414291066583567166561379588026079447813477486887800941871327536032093792172663213984857676984315755256765329637392627018207733212444971138120054488884006827337893914666606613995363121999094642033528837264740001671131370902257648418493450551619889560159551549715966055345683443644877719692060917763743146294864800429524252121623320666139098480252516937322662191436886601625650691420947168773360791684606191006837414992203769654942830954864179043709951835394513725036289162725058686303999646428570639623605772388413589107767572263532487067069496624598377364296313289304917478022136655346527023267263697602976098882388118549002796994857435935751604310690269535778201361460808650742014755679514855341142271104240609967102474639222582425775515263258977988585825001832049262409146595897188547935301088811883178689895760345025261719195128253758855835014311416426345307789706033302484065349538012068960371108625291641876651175095512165705363431652663415712820838403735270217924253820253691550509410308889679657083572970847216812462892294771303291539872525349516749939382184955334320000481822184226489248653349746112150771970296570788748892127458787348729445740753046197114615191739681222874311278444514285630383948355945189629652126268248570931464046010684491391679411189312777715358443132769045742105901373713450760932800998803348434835803576700095406006270369715423472398280684489734788268460330843354703992736881532317145005416245149237035952809927267404034638445269883718940244275878382343945036890414896269932520266162996744787087864414423914933706641847293903304386395301613052575712362501395823720534239488856148019470217983774640176376173099068642381870116316092350806943249673150600703877125206136828928802410067686822653180812891889385322231367128741608207783986368225540585000042891911486194528056481775883711515050549537877953185077512005738217039106297510166500105141373920292510079226971572287462950351157321575605243056373190513644624292217478051938777844912210431488277602721446399241286129089635733416977409628378250739602274759147827276349360638665323280487725040023283379759775368033569717359668444655132618619054699035367551386215871697361960334543575005467970321633738614410450231701131438672933879189316898705398453166569624234939563760296154291066076209238890562704501437757285616462256390440611371229658634616245636584746149766174632837157987934589471142345446711759765280369843440429275252103905832949957095762036705694030780547012586487418974822298360949245980036425957498436616302488958232684976259309245039551033580085362340563192131184362364476836819921635285690308384813936825836504147752780804395518951938297022844235447546698110946302571769060398123305842518012150353010765087258262757194186415643599519933189067730391586362942432825086730427533183381319273904775275844847181299793904105754857848607605071030470504638307601554335127092638314827290622709267032418736670008059382880072395191473096957818794860098444171563312427218910994313446525300492191979062265699808340439655979916199415894235037731971894298487318302648469930782817680341465577513019529767578869925679763622395744311671978532584696551413130931440442134123452532918310955234131258582575792880376726749252612752807011570579190659587729860386024103463433454608133854689669350077381517988723446054281696160421887427528178966265592349740454205662673104703709105068198232978830892992154501809505319687421308314686691629318266826699221828006417195102820742167197958600752078183885384103877200398706870177939027219039739677147748327182226542605151598293751786179669922631095456455281197932078216716076593478198456584466235915529904832863946216192714812034984242526290358648501011680951377776679222958429579936939709470487988014385392251987829685758332846552511499286200405506592303599888440249677279644661581622177360671398527587908749048440234552391494005468263484917680124713150237120816669343321963583179144073320144755618140637705937709700746671622378864688790664834625769399921585561132141882615246443398365128496819362343235839702900766494201509720155549613389290205748180034053181168823419807264274045777821241826960034159819328871641785837440615937614186699715048285782698103598867081315819427519585976966659698509000488334322060033635401705613528723671144292514991428806769508297213637934692003638933252119424511901096398805801199615436320347018677169967221421997578975789932761418944573961160694063673717384886864859595001753815713598783470660292067303683624788021890034527883090851283191283284436988080623611903133255262293875182281662717298206932356722791414463337838933713544883604488299051827671092688921865392178643985338329407488911367148705362626205190051848346930573070026421591525162598168090819954695669907765591606669218700989633410370115996398617113471815529102393769275174400258532754615225121121245904899642983820087379266431008710606261367007682267952995037177594083651809079572447692538210719998571015371568298562274216528991628940211311959106644897315283834867764948708850183856896837103120261647105900885894663256568120731663567231988494933121410645356605941560583879987163526564727633403268710156139166461651641029613813128316006660880606021562384084074221292321992641647330637219841826074949086492417968573186047259634192970482498103427652458699646653635726784104247933491834974819488759508114532848342173893107857506468274769257938255369377637915083747196252549431161454318855983816525898857587341752231794181014604208367706986107975634594454535241708374338123337763294672163495936277009074509343149790937217153721246964299383341690099887814663657387460958721466981168864157328181475152907758054098387557163137694131263102261041262557770598706477611764248605881986475500417984414379842777309112770874358324295520038458783436726531808839314852173298945790504345732602187550821387469712000494091290184911173025468589974484879418079673009378989480292920801617196563006885371825811574541762101578740275505223982045573831536375609313238301273322001361531873037539050900403824745109066543504146792677304678477728321278391463413374123081633484572054475894923568590466631618707555437920940850453930833171477542556784629127203963364358469761381348812256434367663557863307264007000489632724943634145475375933902790824538139714565465910463284937807447902362683646806880324571438228308073769660662585045272645267169547635003107433114443125206568086612833995800889773824571675492077223218458656520455947174999813392458213749391772637801722212534717322517646820223467983617224866446339379149791182431814077502776496556612039810740857094159876283567635080661358475502225039876302772797653765196953738562293735405055516407766602518269074680249571991764978780303120479735453441830917913878553410271786039984084786817082750334252133313185250577764273131469383055263368158828954645843196040996165406997175422865423280619845649077709486649813123026891959533022961473943664568407782647468632807928848204849794191354211348447465554177239395765242305327472218749869662583890520829517665183093652146348060748437020958266296877022256427772677987192779361799502148403234653902957927756702065899869738632992661383889938106371698404736679977108465913528647890624330342804287601508899774963954351770712474638878616605309546260209108324299970409070487809869310771043411250566493897598001700295619562973324958339460334267406967662078637366655117727482472630968515867789250121298926464975548832625692802034490117874847769976185883195904690067542917116115055787588738889987650067907755093370034796844483974193679390893180295153298445789365960205560259813822734288665264882385110996180876054015821738816624686512743969308620717369653891642946694028084363247818236848050916950953595936364045627002663221219771861254697443548847650724204420604050359564120693606924558905647383782518647724904173148172182985769123303168259908141203380760746893853925291607901173279029183943194858862994927863860594350689362991365638868117196548238800559082970519195386498544766002806436701160469815349234226031331786015623960034005805078255009270556012560969664993451709329894473892210714099277341593252436323752840413241035580731058868651836976812116613534938676037094701154630575380113702234976804546856718795208752252746655274339291845675111210802234121663954407077568457534313588894243474360975162535253619830558965624541705004953187159511260728943198874545620812385875317912047699922613640428258205827460135933534862770881720226943800697065529461485480272408184368602754212334060786458458400203490707713084654560925834784991007968147267234627208701244899664639087280199175826972097482081719752339685291271326999757491963493469290738068715293269257738154993007553991337037606907090171744765795714505802400803056953406354143506909596862861794659927937077692442130114898084778813284024479885142374885691735123608887028064447487945359891596466630265681112294441269952920047126260920827735206863446217919433317291168633772468219614510872531169530444409348250016740940559338216615050866652501231029936488311339803859345399950218150295695447860881218365633706592235173172341527910624653017432616000982158707948042840592999073044361751077332268398889078998317777402969480862118239402717285985750182968852450059770788493572838481055240471471745689907870179330135955711497988075995512482406351371882413518590044824500200488853890199918486226514415388396086985268522588030000203558861297581775793475609837457284805948146924399894053451227055481340665268883662729234395492926361699230578587739772744629029474023015185919191610602772862394491891511300637277905649887395946546049624205844267105416643357470926552503662866424065329980541218518032348304128814501937633471815086900366957921034778267384136335471213343032946268618202209391754309593837115069021235299098601793291900599819980892919731444340049004916299078929424884593201985456007062144142024784410961049607337312393365755303625904654367131204347404542767913428592437254580772725220636723295174237972831208426542113549576735761171557975748607667224977122626501044142815504252991704951343747330832430214070254946392494446778426869407708243049872731452593634221080038797182947876858533069116228556135528252135191419984499710232036302070139593005431027387398084067416735669588390764872312824971861063396367518291756159809090077098898931883754018898546790361139156774639029813135983709278176308689140069659173698235057040237077989241721043428924402015981786645517090772326318437487560012009849265533840603987220950259168113004425962556296443342854928226561151163095671148321311279348204883376217755714431216378733994513720654435847677750497792514239672345631157829671488351048302282603426642454591496658588216006948838690601436666258344494637752807897154377203751164275051533430670579464978255230630299670592054020729753172472782819591243328273440428747199256789253159590874402404609169485900390767668643326140811166936076946872733426849442373007134863548142411344562123578871435386548521417211467072009110379849307724027963984645176352201183301632121617579370519794835733969144218658527822418807005281587554800903511174706761170437993296439813158691007692134462514384894602938585937289491015726333754817480152326273902386144056957484625332711706366322152528779931104758210743465082176331845159691792106168239810123262980860653461147477313956493544111437943821048916683397119651343014596516883151648803303598005230626666092213212999580361187306501200484945940145552675624946939873900112762353430222199601911039068747351947917761544997772123786960887889953864688427894883003903473414082579300093911505644216324851171418126285976220063757660713145715033881925091063175651891834358499499581715729782174168851537863740084392720088741857584933224923776440484513091743797356949195909728523770894263646661745069756234411665518361545954561505184825846048245764783982494243155612724799790173803730211853340118992299352880401681253720213578212173825327241517050982004142929018629997201134758819459693823814108696660495110837981363349269442842312053021890072724011796233334773976518326922247536418844087125090099376833664206685893453213464300245476349704992325832228050587434478351227110019909476039762322995527899654415231802415111785730774000953049766882230911289058890334350568715749219134355672643992140298909533698178006663436786567230772160444995554244721822437549090444283275215046659666376362027929158522022829294530999709555732953364316101404233948520894839534593066726715552308632867523891534701648413225292958700498836384591193609985865903131261361983479900361583494082905861251140687524484277558281062397598959542976505677529799516728038705044313664343419697892895473127128576434210200722514598911477552881102332309077140628158350473595300941543455837299685231324591595123324440071356811622219526742962560774365905193233164005293281431321873969202502558437508109803545869718574520774754580648984097128609033559817694327175477946502831600178415156713437602650476915845563420133976663312647370711274055640112431881096807109080342701798283860618919704584771654968509993355038996095205048953362644825176423927926350448369131923521448021507428344796137796023195208868961458254992881985647708096339421216120082592056066573079862723155238450151290440723086126353113214542304809865324301385728542017416752268596554526512162690050086769279755180663322328309536611402988727841340187654812949693654331859676058230968768459359635580559850083559240176341965419343867942728992562717348277739101435452774011369765171154996628659347544422570448736857405602959942236281603834682395162513161547097731717574265132445903652622406375798204445212731688155132117709558691274181398636805972804378409358325435871204391461141713335824270677793310775477418480630808630283507986800558158342346751334942290131391178162333711712416461230314746596071677332075158014202585137975654704542993879863844845861277462282716127078566333821229043750050734971677864389981033156354935225225721901951195997414217846603033925517428713897950538129716546721576873418110980113714247558065806796455271722195970803105266999813674395408267390143651401202633451959755555568342856281449236956610654427958868005487310084986082153608368487498313610262467237292435802145586134701461114232396477352261863589158641829084845315466101059437970865408811674790973259061534039253812439775277360305200472478439516542700194189983667588530524773508384942782503013644552889896518929350878735787874365626940875136556756550869425438898342696482531193434539079939291953338022461745949807642898094357849016553929640836252057458861478994842320635862351533433910788423029734054550455173173902529605684745680470200056997260320954661394318415970230566760840092910366812987167946286824807007526537006083242071053061101472691176646646790550995287074477980765843979891454894403460906639849628574599874403858437693654119959917332384103342628926522871389214162848166403848186767811411440333477667611029834778859620725074514316100593504548914173445620746462008587646070437506320967362538741083181620138658947685797090409813621400062987507679518032211593478179336900283232234588141239094123544913310610438923711677630085531898383764858305197824231333856151778618384541709697080168186437650014761567478858868818268993018125673480592356499407563648115084203095110119497701427395135530065157742099937132685839546853977128793056945016035514336476280340848779576201212097877021406769393379565532414475663638994915280259558663655691486890570906744575013251953425536813873203667530074345024962405631846614876647169941640384407472604789962908123909261201094247622577287527845493405203382869004701131875845102411556811523183136579219184073775649895025155676630190536528086667741971624821674187081128424571331870751570239486695545593327524377615496078650663905826550328605908564870591064993534198310147817558229808955356196520741822685392941677392227217633624880252787703448914625971231490628877515227946454040323480770958733126631007757455910929292771800747223700888461762855310928656224546654430287814300434381871969697934516729354620234905016292915433902093002390187494024731979902432499439446619711396324981270118322633974853492845643316012472158372718489941156822532938345886551046430631350203855346353965560512873188537585202672698196955348621365909763056200709512073007175610212731760504353215353937315876564682528536983348108469391741977941513856616934494446148044287098215412728248116620281478147661532203143170774276207259774747630897508689362248393953782944808418304211312249350345101775484137349523464667302237305033567487030229804250833814902329121370907465966768149096874920696859627342033886713238917088729614824357554145285639751665147957511879960709307990882629415409655824976910730878038733488243478724056640878001904815605032636748345449759264280313271158344064299636466291466372315912832012837406861172062683956072797314085804912495271790740809000139620886697840543890716285372951765793835114492773822992041105197792836584814135129964118349684903460237485336868969751558999459239603266779763766220340989809763511467545701076418417234906247019112169787135536395351279983649891395210953288533500958501490368247050894476545685864571236572332283212167089824396821254433695915899187160584235124556470449222117366537583693422289744134090671715409209378457724933158604809363300812599304364104156826085019472353352316275270440434557668638426092803162290488062992830022600472617457498035574263713615270916122142636158790624114515757287443121809004961097921794694172318745126021007865637809265140990552894920466677158179445251401327896027513137494196777799074991988973512108942147431665326079989828500320480244106713509260702848625679546056977535560857975958493532532100459473319295609260844292387507339939851483737435084820919762937302499582198929597173775987001296053048407571225334847532791891240621035280292142533493563105218976218763878138312415201626706056899277209467559954076895432823136501051094986682862080239303836949955523177340984230489491109994932660853795321769625898170794338998160237862228405923891660211970516470767650754511484685914605284225226082652630454393550495322234327415620599223496428224025537253304040905896998968933914180511892555657406362679435782665195936099609893869355536406258385181360779773473927727108946479233164844188171742099259673719755745332122253220373019637284966236033054927567931067768052793442140532135775784544164772186533393895186686629354513552915084445773953106430174232190315599568760920034233070982882638234467292114424386872769737129120745022900604517424570878821615590493285054635657873119104220041575051321811643883786774460246576546714151072306414841114607536345927376494998982528894453821279309466967255333231313384070230081579226012547279787973884240358167633774793867553654934320428566906832541405585449320860695464529547397785862981672187350161600997947605566861273511664574885669731222343603863442541837396932893001908582891096066053993743336588316101902866928561275503289127474515890382117185450209307294852405317136731180161987078180473946521395345518138202867901213656377371954715031890897853212074101253349881111259620101112756091093522355359579146557178740416744891357055352990002298797031556981196853303121520427627554651407902583529127552234238405165746196658248481411796890965312394578925946143493282832888421327999815885832803735907540230320054407239376016850594634563871712066646497610054943054175655700921875839050298294248094137583593909010922325151463409192159855350885282791404585576731933321587670348471952787833203505506725619017010926837234360020278853115622380095551937055113108444417585611368523491201648612826178716464938610403110735377278343466113825129839991849443311369643567491282841016736104146354688783544314985562452198503728375061764878731611610556837960755069223326638239001631186384472327775195417410603809256714346683488635747106514620276443978398912791904024393543476892047277904368728802387051276681533452303096715533315135962649640013960580564887144985185524182121354000483267083888451917867737939608886941123757584817348863239024368436885693467096615576585154095055395629619162394159177710244372655869623983103927217740592720549449916952865785429053994527092493642009147637549281355789610693793223083817631171845072433351974850008010576624491811906410651313158585051917805282509719577846573247165678211536086071588595298016155334845332345480343666814421841777038707496474967003641124777270081386840284587162367709301541352535635897686286364731167703489839796549436718983557766947212721044340019075631581830087401929927758965574884680891973248780854758364239622856783642281018152849498157793317520052380948570260959920518355384575013959070082109656589035344971434406045718254287822080516869856851946584458449798092038139077208321005226660237591454642674232812388225384080476947899667484757362522420857129485137945967110772431442977649209058169155755084640604866375788018249488012917487679097901980720423141841047932700924118323376992788868171778109152570508499582690148872722928858412145535459049581894877008664579393015760053255225590072426440232450354821262986624493099858527195995511219790830110548959157658722803023010696574444171046788353248545232130227825620186456118231914285924655576378369599943257039151009625262796841318230211647130565290757176618834722817457796945715522854710776857151460264801497688498465540086366925383562788487004242639885862759528016766748967080304435464981711403079904233030929112590813656930190975820443606919257448924292292642920562517735170847635740127788208946694286789125882832788053808358553744753447660567588472515551108662490158216639582762501429141538215471741006981586627477696190912010063484855496164460761496891343455949747044798353529767431131274805546789572243699878232327531988011308917728460000290011086018151745700019386518729759720482125675382440929955654918162496475711025264234490934229260684245157065276757887939801273827679342760238755627691951803935209149324993833666597880680565963143710412858679522040563201244515767396021269267559663307248737790192092741875299642250226963008284734934095805075968700848218804622974091391596940520065614855754834106348179702206300892260670149416660056046961750712080683654095238928806007339544904806557392920955247175664138832942666547659956280313568010440662722323080475420162769198736669880374470737471785962566613914119568861305740615192662128605613288091637722471246664262001743323116221519014749636721378219535175626220974847269985947316023154372448445409762637537802516673898422424177919330059554932534046967854303381587484831826163313976252425400456515926078188455005228185186584156541900242364822779192139556237552527727792449222632105872919878068141120104873074257310272535600135650960119919525153529472971538875737431338796236062672555218517433375190587932494738404091549262806950878531099457558578170969529722582162654055253045737925218400658604085070909603217305663427577783153641454252356253249928183855331594560036386978946200868295908952873603776951276327673958343533361963516483527699572959851314821315943850232810239335965519472616549979498774410198363951290186496358823434471688576098274809358005700771857974830237055665117509499510929342559575678338408104918798601572461680490398159258922872104539148053132464739571838834185499618387145041375312011576867738326601768300562626922879417127418043539271448007910677114351180843698106630586284183296110800563363334447459985211808932867073465516602667016359692882449555036148883349297736236464476980068839525637299772066965991895534509946481209193830912392181231284008380386276481420694868540732265849979004776557752945703518688601084545465156013826980449436893621483932328896054861489073656592750417897723382576932853840261949162762889978578882767563742435871402716318165904405522682734401137847299978059836066348555784521603947665016827779470393654260348109526696590818261021534273713059296651762596717154625890393921362949265301203370609177722947975106540938938678789522586763517090703909229494227891689858726104810528311597385123410787001922058014022403085910311925312797348915741451834489655742589527355666031233123959585096031504761222604282425262876659929641174773196182464661334456965448037208681691780880177179988744930253204509965736112063039371326370411409308978823611664427394723868504879379111688068017992956733574264629337976940867379289432713175666547959014362523637140718590651773447844084299096196266138540354771313123351951702481117299019167024534166756404505937742811540826348907089193418925974747378161729397005001724560753091436609561721044603326910161755748762491093517170126168501612317387607377691088424184937660229272665693454800732008858413923426454114965031872431564595297246253288595785867657634891058202208738616956699978316929375919332144549606918738381114316297108601270476043338859491396315280625105588687347933481625668882287073925068234045123402239405609911397504960566666328695605464761646556858548307630636920787515929176026314025758533179467606589831286045933733273298141149612838819465839932875819932076407010294947643208387464089546427702177125429586922733532016174877085223728544358216539407411537699225798818448888099016229339636780097124088816312769279807198991255169398247666629238159254869215136403857331840013029897852968368206596620088469634969070779662816606510273495138698711526998197147575892675438132912932202114395582269044184861348244619042989854844551051660522227080969695181420151796333827456245548773605967475088036046826958685861834859155139271348231534367517088685290671488736725765428333885936960535971779840058627067604971460550160488712065328426598144734869902101856934368510436361870742900107518438659184156763358125916089915046718772939057830356622603023504493976855292440506463039950688759013056801733967600689759834941103917981768644085243831337761061574844220512507277569190027876761044502981186339956983734746540262595905831048707876146949690424329998454138059591970848852664950832644120457180135433637859007512706811958625142806767701859070459983279874320644886885707161992121612520232770899515313758356021864468341319520304964425940641050960275506558390760375381791176189144203787506257118280794862653150079527948078963941855765081483889821931209338788640409762365616149948890155457976197876304785331967350359051029186601907918912330519715123454902017221769739177661363778711093661376029576118255939945113712958452823322098482423291376472176404885976155532520006322049042444892990854341664734994441785388175521706387217426891589843814693547886812953456251092475428240988707060870767738274276289961383502088756928879992710774246401661080386920246327772462432693479545898608576565699131629350988010881600413872096662574956701186535998553426224573593251349734510003912883984078452058727920472913967408800849925039012490977930356602753914197683093555240217743433354413722252357610296003012941212149098518506198569402762576233608671945137755158757498706316826561882781078776153328062995751835127609254288497169156268796901135303146897910441638838025625683526955054184043074111571817337573777816242437502069004553675245094009537452926853509011902915186956634940227385806867562585654505455601046169039615738444958339626522700662280078908105801180510022094222117255843479747311181673157539959583342059749166396395744398392356893014785989060817599489966814110507081880346286064086413571735275958368611120882828838426292988661198630457593107453122705336049609119360126941659696247932225365048917317722523095625876066675676038859355479131508691608215982227045494304209768872505711868409955532185138290098153280708619505115222691922118496014639269971269246811219641962593729487895798210353781202062328175337327307131212893609429248273933236378514941953075667901219744230922095190140607632713062783473589933292528004841739585185960452425171255262017027907044891362100622021150309805435027325861411374598105782670913712180952036681483334444793020994971490558289494950697647797828187780561416543676689070602516164072308688964104815989057108859449123474975580368029446966125871761338786160397802948779450250831756260057233556142109747261448501428557577941758034732236128630299350419946597499041854254236505421690729188931932388554457942346180243534479981319474917440614243640073948601504836797938684115883407920101768217805285387530748687957919123432654285460732474427695847760109174153995054393635637061449709494235756558069471001802968930385345861171109667320301862557815892308477195696209226029215283379083970719565479903813809724326377199664994839001619712702485911990504871276822522893135302108450906887425036701518745284442739684208071231981583127271353815953996330114784158315745465329502719596475045430915289075930800245575204591675908110722437485840204440967273279868169726234862298186215328056260652113262269822805395679142069309841329024263628894004608115442492531785713303466022825395800477790534978494140496552749844103506361575637827771877794717695379709152584809467211424335512627300299281045515839080116317816353375994223603670226491084528320487986251491716993190505348626209067007040339657543138567431519565610148960971995450611155073131769728633687659642002170592912521079795500413357164647947195380371044194259211947250615559465945794745975954887547548161950024207816870414880753222017407673855939809622370278479692611850196636060934242041018638702081436214499200353371574911418371432854440634220853325047123536490913436567650079231717641007575890585830864875952525244735623583520379508981459188851606208257087107197716590176711667249970085809788388842793377776222465277099090119172822552946251508236006044618721764839076334493746735769400936490855764142980865025810538297413098819391091463873192117581794593932367156597462701043039500333458818720532974379388824904266816646296420279485795790117726666268731405996856689324853349459019479805264205229175638629634807764655501208699529005081520697514587358871342374342338606688553974055275620508514097120610239796216801801348766493334217497138103731564972239829983859142378769068223691233213563106459995594703412110503494915914170249708836555166129399007501370561974132917709476440677909503014404355376239935083235690468829713251747689407377696441022481988391351516793985783121965936368892685854596903856350901222148906839191009544399687340065485284673187558050867891086224411630693587780984266000046128158153254042766499217716577652965057634229012963094215607244269491063062667708639304227544958870961304340365967807293013772043561850933382840006076970347324662739881490756604688383419217763962313240707402343290140096794474005446878417575382354747288170731020047088634742665387247711861540628430324212032797652511316727401137285948154207271430118104539942983967082913572852918929267508351979633309105619668859055361208983697300061481525725809397325633338186618988933859856442253884671900619564786880507283418808916310935336404781244828628213410315178098797548594432272904801837659559319600261047157448594893707471730928781806443052712798875290151658663949594486332659029382791903842031901810015217395606188570448514163015138303113197898853433371620323884236976001847521581039273569829872665931498453860915992269881432205236520249281141389301013901710893671983730707610120854869737731301297707116411832426432599629777956942992843182981442605046663766948299623822378167965788939398735592835824444054908730704117022206830540441394522235179380335186076953379168654950986786975320559403282761001181622768583387185212919187010103658444665893968737900681587707896670132472022392878640226720586995359316089923889774791273192779211111752300708662856663976029608446400831670654573548151773330255499112088183028389609064903544340996743276603799577982836528868323284303288870005347960125205819948747591022695757290657024870518923531493720946365874390715230368800055356376414539025816939913121296198490240046003536838602967755835478820068238910933884423937342867899109491405513526166881974604349861945875478006707534723540019250442126042192644871251319734056818533375943875121472121245818469754813949542802758715242550372906720962014247631157865314130440337864902472152825631315155363298219616830896456589654394860112860753681918968490714282605361073184117328252258811570190464863281218210423023464955079184330102814304306206794390406488624231404277534218262209015494503984603117539386747094098651435829281620521726290049378173928997789258616905242644039746591634144476607974430602226103353439554514130016105958869828832844107246934040826559187268996848442106892589984339224415901334943627603936668796277746224871311394962830625993339214326164987656731759711979586759078081892904936605663273115453972428199655904362243330247591918838792644106847177472459470048930647335939728863313829456705440196057833655563571738258977986363723595694281708391142868492710503952650983115161283524374674374717412129936878115589891767590222882234407719871430438172727679929539747670524674737467790017868744365307574205480861890122651694331909717643602013107509806995169398895069039287789974383473558504985437316232702648879951249038505503736002362192789014739078403318990939473035167600449137340836667871123696696121529172086026238070042624692996563444687157405649789339677917420921926952780763882244165959591837993935553086032243555371876832755210703561524331455323210539675895652798126580936340477780695503661275951693066808255968355554259460149096092245788048345879600154418576263435023310755179996904255834888695263615613561150968955819685410903259007245360889037584563956873692252618590533999628494766729278019045048246194019508447439034286106439169164492122047312355832730162952103488811351238764972404667529532661502492226807552089399656928279444010778013634920536849934417775755652309260523089109966168275598873402032770406745611232182277452350897289398069388987246589875107850689536989407329208982295391268742355645147197023588260730142159701900385826566409191554228681909870649651414648389535547006150390882369152593090751213722434672371617198198319256968318823519781148714194342802901840808804551949313398245102886431843200516856772502168066964727138926168200708011529955578791005207870114190896893405316817696189899180391097305047066696859177791450055144562084352842409232682251207609194828140141071030903493422776838483433933790911271388085317596769789923194232998902055947557759375462480154236788607853363211871583434001479780011832005587128387042937896948295124775818065251458008513056761976053825901418270748760698284222133991888903721300954139242166736650652641814169184530353358634544859091492289633251381097526226488614091347616053103258630963372274021740472806297976993832780446433803548737126403538823973458934784955501806914998442887798981392164299403763155089361781320519941607984120212497473825900177971997538073623542836925469416540343212612821938742396749991247968999293432503500781335781604677888026129452935093470604073131265649244811030365459867093652014625887426828872494429556770560565873998248184015276840264876574442092513053292005009877980996847481726982614031855707104047167190108199678528196150721659696312054973700031891708097537209817859116199502944756013525848660126404004198912599441541644456024497238609744042500135592728995212225147162017768169323695710654116866447066178377234972081053550240978888652534907038504381348002218200011920200068756572872781322033821349717892093667761661830818915519088728269050116994204471483646485612966015699658600577477591947542857539504505244786526874331435616256940167995080650340154510910592604616324729592608987485742942319403357954596676989858941997117622307179645873437771998054349426096415171790623910085058135018498371501779257457318650345937353550888519008126259773259636840973721467535486439913233696370897267809054564981484668311866686668603588218039258762555743916378273495104889344687309231982356346882860104535619489999567533391702432982749947787296700633840173574981930493368434316871967248790283388449043163201321163457076572984178223868454170110912961693869383154163260244687404929461932003674442405199429281872740415051407649015375535231366011168110739154170113449499336914856214035787680054575182447261719566356068921232727950220721854020741670249866815888384745015491165896887815270709310827971069132610888608877001003254874316294803961529742096025483043092782335015961370763901650055960044828865566495200747020479777387458460126630382329244406209448046458966811809974920699360853299496407285505067845097720755012799731772757521782924607725218666412463534436903707557482804089446714546706018103753438087118578944362479761191648131228247708567424450959928504494461839165912686678420975922380133242566075835445860017683571379006229468853672953826834495921298776295215675649803333646968322163072357316931563032760710157368456782922324516110686909371899156391584423124597677701963347033184543808274657532256267183227115506330967108328710919085951393995982166624785015853560084983649563663736982982590320489096904825383963766522673785986190149363629034958452292445109421373807723833567896870424630912438046079787964647123966371797010139871875550787282292229550019669103903953066814909563102311858570159410694920998646946382664137434752304962079489940262851156516221707122051567848593933514574869794307893538333148033667766121648796911977129599379279234046728474538014061266639672677636248735905450170637856227136971538373480038663363384882382336067964279072098993913092225808424393576238517746300285179082248886197845308278481049899903991898993107003796372864762537427366548934815269173211365814767190208718425829435845616600571972332710688952493255548265125306445464179865083907215266643656866262758220661362275745982696678547624022657271878233382044927683697425794184074514172493688285989131383491926388345710319711075368037002642580343968182582902889425110912505089172101513841597867787496601576035088857971646041247115721511445689667642014497633165246773686191217741196728034832261361285527421961382141171638797406256913779025952160320613324552331790774454391223464983955469098687246338439978082886893705923278595987064238418015002627829469526241074973200772260847149230401699065840768868474794357513917924744168280472551408754844334272801237319956079549927312485920739213587627235472541492244533309338257481665733686057346663927991970957349027218320093837086984113825181795805179926251603485657511914644934948955109346515889204601025146676330472049762389226408910567665366393770029866466949041759656928941059593844023877837600410868246160502872836311636618303677416416371167906332823842892727437111288809734115926188942520045577449534711929351128404748552081283188172124311853894162017199123810002821395841821985878128549463886693320160779653132508006776000374749405134597512036313351953386199031579031307927505550167687453901856906086442151733012450909489928345342441106568744843740444850850245554209159901123184712955723124773586259834737795896295679551965066619270826165113648100795153031947968433105405027555164867856019376328170904519880089691120105652444702077435691316335595547932685018255837828712271750042556089931321751773369131933356847042808092529729707101170799303609281592959116790877157149393869581829723012767690177796658186646747717071828776555189398396106006854596776808903361770185326246427931931140309137806469788823714173428068089937543432740843897111513283420812610843012181608214270599342821403623452057983154902320793533738043113514857927469901112100911491146329572063130746223111489516380277239218850758644454189190497802912180019580872709781930256052765662837021733132230036359568227283671753943132054945334197565391560863043485351137005260474466962227860616334854868547004308617904318627970370287107690683706226549916152766619279573135683985315689126794005779790239440920968261704778995089783104998928417965141117232359846903295319954670032089553507447823976884337003215343107830799267529066583342410847654010592392718842173624105252101228922456571887437845800203599798996130413084811123962507332635417245501056523088066071808667689774866710014880695336593277776167831999273540980397652700926345750611486154956089890636527495386359428231872244284006726645400037490706528425475637027436503994916482582278301232850498419620110892698029734949094399867230914130616300531360357152790498118387938225643586923174931120786010596311735222413972363370211056036436372992651883473442675567001338787015852905089372234853170795032909850596708376003742645753507557806177993373327965946105806600059905209350231910501695581374041023012536008272555644826639721838160689446619325443459601920974845131621823827836287232879669204863857872237360094301117361738375596192860917787185442746006700716432221200680883698577621401710393807218691959536238558045953435154634772150000039143863334892079123263632015855455418392283599375567571670132468303020619608965287894738699453319807684426485015860100520332457485255728608411087188577238030373974534589482067742636822861590348028408195488527269148781529024160480062798467181079652773244430713060351481656383616606399990902335421482626865604559008611923277592803795871234344722167173874045029764069467683205236762145523871520718129331865735807352440248917552037912994168138406803722437374023614866115565068545871726334593681045239332553359390836387028588675138610276375379364500191527664807113458796116847463069130333583747914172126923137116444365813450476599809482282928863014987832174773299242171701811585761409867375854734399933073102541946172013098690238553749538394114794589986935175084265840145976505505690141200997756605718064044850891558631715598076570316052191382244886649032348024737260035147829436785737138282610386694471828005308382619247039962701842900358423958391111593309340507456075651260166166589386952601861189845761087767023730184454006954145555408035197997854846217496741947060717563345073868759354570356963145713373107697428589117615325584300619718606458356473094222611738294755207602564874881775086196826072040734810908851457016654986713290116593120982525360940260309426461223634923234506851881892929268961646121104789276534464752701005341176879125209420550749259828162567200599908104538298595647443145830972198451739462836458395488668305494429446376420993223699744736505079990916940508228564057031916109094377219254346197900314034962160550815667253777693810910626341861140538963140753783389826506781451507382340974118349949679074439864007983876262326624468197986869664447884123949148433659185399663808230709411417056581755964489973778276458824406563409188166384782231113991421629821398166579210205246607801886566530255428472567844591234329894612009898082163574814492584980559812528177720046713205284088841809541253426913570155822745997181776011939786790125004187537426528506231701896996898693778666138355580660577485955497947615624930356921352438956005494999650002504470529125875736901988067106428755257845919953837068320852209614194175096362059787300299373584752780080086650722510799854830455405657645341467330142433791634949488494240939451152467679633867050620357789051969067791132380646143301865611158144600962451706647305703641860560392140201357509597513776411825165713430600756387954306718619479583955948040295115874123003155058756021707277034240741605004945462818281130633961574972645766113157338357672795111854818053840073839636793430045693259725500523951865490704802136296333516832037938189718853074477489334720673030551005356460922169358275048301856232217835901185118476864536399174522986043753940323400736565152095852627490952843346523998367310377141873624288598257596397532779381057675829096769056134360679091866167030000398085641734417211211487634644900860378062606783613927738170276362235745548905839508497360310385974783844315128508639382159243798716481759287570032807724375625117881487702062609755692458344474532241313573244620151843264439439824680663640121874116334671220104155934460441371508955093557392481324006151304305629788634174225713347523247904805390781756161323390492291242308915444987330269617552105592842552236242087879888681178753086335865950117060471333969536998554464992834352272596977210564209555343272943011207904535122990249816647282703066429556001580206082204496371800566046386668214300065911688588153313804944494348939575600295293634784199494187589597622300276997559195009977988144362420790778413023663018714097239271234786767099279828345500985993895310109411966288913804409808639703433852954156112361085705651771095502215719798328038989135226208551938837248839756569794791444848276605507389314315611039176722281463531744397068699381913956447118267442633208655282026455917764118618468778492599756247015424441450970025529960974354754551478681018796539367549486003676201250958074216826475216024657750817635782811106951868962698083530969659686214346306629165485192837842872458128751571566870126511687868941497429448142325590389374409262146657876432968462693163084121815512078513426978635343287490978552394285588267301967646255817000406802305219274074731220904364203864475993811808186900058017702337179984924753426783106049455525042834637795624301155987019432349711036869332695462843632998870618559168617800470740285004228159872700805059596608675617345482770601966751288619465070917743240844103456620270744718605999362364813695606201874695666048917742286748280866760868821168981309639545114302890292335883254078824961420171345620480037890485426369908767249076228870793619156016834595386606251717685834516940850657568810957742283815521089261978154195716640836039433915083782361671714698829751986373756014843356576711558125538534879780344513120741874958630633280487018874617810055793008741418437952317602330919570203473854909009560580643116450412626403111159950810220811978302959249906536233203958754003492220403035313006072422755522830672410373378040155080762549027225345207491604376376470562581652462497028436085898518724933271527955902082035017368594560739135797184098528655292200950032459015054476882923019536425602146904607397372667271708923899698038058626939678748454340186348803256668034864725002995029759031549069415030010119294642797942671718774558552193584786862785297287883710985037199973762699157087697486660017007856018849021017018846473853214460840820732091217420058029130296793887160752228973358998083705711394384054869385361985004448530528063841688871394564732594574750187140923551112697775079154177167080532796018907095361731106303384397107887648648272380435714409359077469553201356735153973428709687439530419656315178204920626375348897323442262462942389900908704955170194906070456397194674242514051890221604556864381038384095374774322855588349785190685549055058016631846867658111676255279339325087541297458693962196354243767248704000116428970405764185767316536507272871921582230517983429423861678924993661995089962225621271488449903090614518291938201236139378259125199562084277605466957109501789795618431294580908456074328658076820433639874549559434218452285737489645792417687383298994162145910923402898552040058459050644465324597414289667316493532988959463775583369336718011160981824498074323187329952315306910485576730716246121590342180037914317703249484986835964247539635557655540655604376972645733608056483996161648229740597252913537632136494268901664095976165637013508232801117203685435836043635594001461246328230301376530259771270889386507210782935752686309941897590251628910490568666309671045944036298859253311057607530396534872317753317019438500037428933370347645501902000897115221882265691480325845396302197029063513395280158421264477284367203968508755495837778054155733579845019920191644721264858826064734273917745197872739427380822020733084638843551812350344267943988560317720073608446510745049012402541246076841801086475402916679054012035199793363491566979688501934880515858209158948645132230937171587124662289147572492172859756346989955781204835874203819883931588443734047622914242426479680963509470340959486591961898598040862248111629325644539530620074004001362722000861507873123323153867099506724156547574014254178563867508034187991258589328801667619480619383873154083808632301643626924888560452705042149587511119794682236889771505727151704911505699962112116561354546478259913162408048078735437760212585570126545045158149022545826404349794505441474524495673314037394050928065071515451293959250571791680299807203635522640813753820342892040694438657306593127346931203318714842908748696099648090790833468090215966241684552720791269588348781437800555585037162450923442060158328591308689939623931077412279153757187639456559551022375535320759230536088801873385219720223438343418771229629273345214917937071023680590424004609376667777421887501865075795620591004486259584421834764128219222466042947642415126862410706460789535306217914877230040545008281475636356593588016364408402923674161475773634119293053942365784867514154725072853773464123270216014516283063932233792054811379314093421072570419795221806532278988894880052481977581269326251712839436993484062735688249606392229827995198413531593502023739077862270735984091717545723725837876884105849973105228816973247760041714218083139588864989291948665661551185489980220077918679552555205392243246013940968611114982406977093473311355526387573868838176565923202077836339606413661429431682222804994549540253740224386561958183231048285518021470779842129082137714444399233689832995837220426531736466322969772276026640868894697303747471458020324645715541234732925491425742505346922640546114702214312014645956694923904664688129587151848778671140958129434721961281402098699314156957509200613640287147875109541817128794600689030773263557219743107735184240772138384256925831832455986364385372951977672976219261178594012723273670169216202519156980260592195980160070539795125096840261894567085823916948798431587700663670973260606981001964186359701942291656477635881950693885057849685592474066505140132267164691654355580564990562508337910925235667827623029203355368310081444341263012379876995430160727788269408805818370933182917289080425998302940632300426753835951013588993240526863422378549506928539262176181467849007462170269445603323221606144207321281144917936711729973699272337773769929748990115376972397427229764671110731042011798004603958331959698419869893930774040843400173786272654988639813432630394925723618769383157938342425806469736397655470056826056054068762657271462137047226891721512364608549894483682898948241390817989883165286300588166867432715640325355763887383029593563942282048859190630050797929861158745666649891288164825612115121405372697268979823378585968034909942595531564651743535376132739535192234974534339833058374564453323978684046010116846619808290284239431105586241584573254335054977656638052116259280007347053130093169464768642103163159901348654809002359700750652763340735651379558181805925083025193506848746107138503178001919521877433709018479969559766426704763207656565243898461651724191467571864354685231470665989382975630340404239933176776506842233724896277978909962935867121045321318263984254763854748893591862039767794583106597993893860451010817488200833321430891604604243854222893425514943166765547889334412415079102369291090143445112414865103502091439262680995929677242499961608394375670961147464742304073145517328115140357799313885243832663098167456280787773999039405707465158343198722875172190895854622981790498893067296495486933811807632485797578463130276790620783897574203159648901804890147223362916461269992557836766080805426680874339324786709025568241439624679653196135547897540575533943759191727924020392766846229389502583215356289306851231460882750706287662108211758775887235802656190327527202314833651262619274154848578336668609598814528344470738875607768025735556153320747022289796482421830802421151506621796178694347575655679974012761457825412633464037032292606989803892251918948034860371671534969904672974471173104915168309620322582037011697587446855270170714698222161130968406725983409863915957381879552139627366832074882884628276224820033581986848356845280946456929687873688142074924894586166281972054406785959993385498511900887127781062058770776729736050895796817601714943415892757189189877852473209496677689585377823348805082053127100037003259707244202631040324853200783290041077924764800241629064186907715327055950746311361939180587680366027709059784272599531090776909544997774279955866041852826574736588618731799130889662914519845728540416416715588156688565195113720164077157095330733704252734265620719677031360467229648494597679134300195106473670589012518300346033365637473455095791456291452106011981846864813534438886335423278394439732481671388052977540633060275800792070710960420351883649622201927138814534510299267216644033527037916626520931978714475011009871244139977483447421993529345672312826359559214765616448825535615746773774081114974087676872359238447848959057247072957811705242638927240059109123175277461868082990950287495976179423764840521003414681192555487210259381799512807855154937718724562414537870753307172319153421365866687775834322464331931678503164420736247839305600393508154389693962963864075125414331223091038155309557246635692538367518931504406528749949967210426064827798020663724419177533351041137678901953694199809314329187526091397391255200780859247664664549434021694968910695377639260035507717319487956819969468494182904946006116542977506817384143505778014656479369757609642475212694710705914248208706306613219431594794763927351174500882783650300456922857726961668686710060809336562462146751925621624200495603240846429082590405531752536637318570579809117832492743776961612873032556199076368255267693247534170080885912324799884199670650744429497374411720376128497453426205228180560154873405679663411011913453397900348320985962446181141711144240538666488542257068556250919321364097418418047213401584471316142887244133924927523346149697665055478784241824740732190931764514349215932367727347004276278858644153153474653635244375753637272985417780470177960207986551758023711729168157786283365317368061868352796034763769779003433474738819297506082635676707233417786813751788696146076819787266645501759695387999288606187556864498851831849804505528396244396433067076705542440421614789135641477833261917579279363555343930632132163179497499504142317969043913351391543223337616568223003637393023772698829010684925250489040890206248277203235793167872336041828261580180107596033307591007848505910892996078954073778626684203400133266046246149216595444158479559779106862161332108647347343207546367919862303382465160751333710437510117303555663517020604998680255350570393141096294359795590992379530456701982897918486740911229489198406170334872757741697402878667206667281505466707966219360650166232761851498100848676452666842046546556658652883195069364096832741087128765191723189195399067535785687796067855867207726275587465406778552989777437030971523289844730218966730654007444330547233718883788494966234417768798049054013032332963021287483534491623379484452839109179493647572240207437572550390262987192373963075849052896717304665742241526486938001250612407640769396380073277414546707325038275620538607910494941590839546974476048888664012497119762389095310361142383825182945557881070575238194762478050521381341532417097378679618394266931480155726939059258522375944934540203225447875217488863591047794058236499761943481552567396382311567344190053903167562360893708398044582413038210358602688861093652770983996096575291422752039262865580062988879686217896703589281229001870449229375760350548855838719012408238891594477675354941665372957582960066196965633743102287734879625903935614032101668285779911974888430180954613304593020305882679287431896727751713044935005661944214955584275260002746843434625552449512429318495894087411513126864926479570881281645523550658168502259458469517897951702355642132438648888916407481231038812394970109457162060404234813403237132619009755682003979285505719150846266846754822251134307922305630658347078978045209552549749902896600642176231900041153430759434687434788551619653074193814031776375173354416643678228249497341934747497320765686383186254971617385519280400188830885458323038417962506602719019194335638180712162889204446280223178578828262606109756049814381986030024080116910857073967094075712043918465007071237340473388507884196023555709692425917394349697904097318248725942186925216958907870013213469845665029311414076844712903792618929283362057253284704226861623382494725054612802842426618359542585641443705803532126295818954467573980834944518524730020647334596403077080048426803466089729559734790821907104635215869018975708757874855282037957481963952974772670929533945711013035206117229844171837405894468431987954841674164596194469741558042059088313045638123441766599575507813268729054187715243002308994403527864792155863199145457994368463559514171248098942202281700056134699565833570961802525034236503842151782599119252185326011874304539418634580382334795690634112071843997999593672472233017479000397422009674930662340550913795029565651282664445095033349437382206964165666604224574775712194167490018406094562836094660914018165619205373916730355258004993587030010757955630343106571558644141566929069804744223043263101533452223319569305297272798141503733351093567758304710082191517773691311709681464562307153736369826696835074498302297609508570846474800488380253887334471407439200091834439835157062923353072754762307177644914415042857275596727118980451643848139518358264074502400104628045991300286308369544694127163944407712992243765795519234950627544155561928620387399609727278647957946508734892490362263251456512599425918580916573355687981302917923698478538616113984104786165882380789157185282447585779660467580201366715524635028650505409351737070954389431504247615691086433779718513252676070992294380050671791903911065342881158196352474137659026972309960560184866512046828562389195075273530505970551923553127390995295896043550088228892346725187274906358238822179881015068462264506497458209541938128474115230965203695088846816458241593218366520785739355337880126369789936279338843204452932663533123367272445925917523065695613959697518825987888208912067896291268055877637762962728780944037333615758800850488428174797783993019584226317377253740326953676660636873975309423942555138764923483565107611922330074706353085284719378652471298402016754577191471917763280207656499187667777563212883147549259400188451947112772044891059409938281189289003744283561056772667566184856700580175922155364527794892389743132685489091363710378138080738212354656015918950578922949071433616456304040838491726195803128485489476812205954829434402849534540405686374662165334053662530118369343205477627993515000119708742521312460507392413555125054778829396548779246903500832424539253830330567770485642467643232293498700909205554131494761657579748936004417412934125905890465386684044706209452610777920180217852107929173563476057444122914985934576071444769212089824666919873925741627739162698652462190510334044199875065492191575837864095730755446893432660243882090688748906171436486938283907377640499579758800933718721856978837337627485170927713974784033557024272691842258997649782049203370966240756943406010388919947413808364801839665601308107074937807203658013270302065863641888302540459995010869865745489345871784090759978908410838166191052063061177559311999478053267470575925082255941839995738398587104000641487487310149791513881801703964671446710182152103880162606103032493702380552676038126146131907647011535205688984647832353632548442783334348973058841278165360602197939633936008131487423003754623677119062624442063136943716742223145697104171625293996448857321579728972758900521634348390812582375841344818249478329319243624640591793270177637505913999949022775872064103931662306409804623835340536614234632524248716599217612288666444796680077687730186085320140179373685897490330147465817193510433864340586784280064917116433671667435469096077883152813730143001149686384735440367001273092474710189813929451684556977121471429098137287787396315565217389676392844956822857392070847378721044214031878456726396664999163338838895043504836533361533598553824015605557260402008938610442157309587305071963372761227907977596790416719375421304085170957208774520762356083355987835145337421325532445927201016065515438369771436430382846588100608237807544458283637073026794233269329170741096441272568407677760427271032574434965546545866618821168750313986712191964606795197242288963440422632966140627485411957933397184703094407341215319333366451372850160364902411208514331705576690263204313905231568496055011009358419727530799650245359663562726052576800310717641684026732742598584973581018081784928312845665625247082566051094189417104674124469927794162935597891316664598954097775912073413739449122950032716508371044789930163108061011802252788260895226682604347078523357937605618861108196194653969017876627502286978462844512428924380757423422160673704695846209410668522617802743788092025641915364339137140258222056660553784784436670574215283573161617103825246954532492910018941253735915226438033509854953503298342340124186143871013531156000287087170356349670560639516138870726327571248706942038760536816427445679062617693983702975980218003973026039260292794038064881251175212633482893092903597935843399770860027736260320517690862994578972845988904265507177431413819357143047618091727132054112685118290186387982424778226744113090331640175400783611540530712629336350151500765681664344388946581562210029007870543762611485451753220690085581798091664565388865110989356059222027929154041667520636090994575506480907256974652571629849495483304017867110120272573276744080376277415975023167900891801349346574772426965977277242026957734629062111043360971983661489019590707379692678637487253406965340465062077689853469952804255964179799071856779511015731006594255190852481913025734022556024078705310152064057153143303648904844763447217717277018461641944422747877432607860797736073637159324065380484014539703437765364953689517247078469818175901840973757394157708926072770651016051780744101655337406252348606612738448177629069670127765414627906786637535968042179134458995131650232410365861845005827384870396120582066986899201987575247397471588681974070889697972470703313816802636117058998549577519272077655832700551743607410958988262452764272617786024979823880233575184423569267919232275431017770564396755554424834926608144057516859166588998643793220521717239203310080978213382676832578843049229498322525914836731160916736665692028464351076447602746068455086549483784965961858555681909204913523878488072564400970372505723253155519661815413240311653344693699175398054660632172262404285458533385563048421083085633394973427457445602430982568945653393596356895345496372459777473749834992289696704647749205150942665626380520039913091965683902002288971769715617084698797863381831176110316698250156815395571707826291197159729042192413115942960634277352533745600463122315478910691843148611022489315525542398330483105956377921587886597265184569644616479721639632446788316656632685415276725398936235418761409323477170875448923886243435633699545290250924436654832973391644956813827764707237053405122990991517011572050072144160366664059313284441639829557575105550637541184608315705627466436865456730943541831459325703578401514361625954565940698991228378754813869264198846462714832203493150591771093970501265473519358862508131581826826708115017195561932742790384658701260052666686476058638666191297721401260841915902985622306571170605289419043241380789673757590116134176447702584264171303318255701195138393865800744421707768287382957982794987090727324631648101927373763980721882244158852268804734322215734704661552499272388671172183585306581274707309555998031942952445732206764813420483187006959393149942166699941382541778503272774008038367214831717755197677672518133896617409474203213104243390244804659663473050424293203420669905238011371959933068370842437378012103925266489470814296191433608418722282608307382298038597678158027025542429849300707875338200749643536278651316171706405090907860081995395968888452603584400619956715513501953365683083869505161556249087261391795131201442599011928033913906959988761604422241309887639452219716989230439035642370215044628586514050909716732173290929482957210224857847633773551706205841663160788585681467975203084130411476927279443406700066795314277001009551725449578315515581502125250317175886762093409226927197180644740205607277522703522500006425729829574892265230202815269174747791043449854196000559847838081560961886378815155942956092594617336072773416061338871310592684860618939287452582625771872532268919699651683349609539295686506290220975664000210708309716151878426755409325413866343313012969375953052751005227622347312625567208442800953859486994641236804385351001771052556433925117088630500349228400434645252567168408552280023953479570552278893635655538704768920339413826970263322452738744325515530577516879425407462618042773172292655153119674284720586408705758325089763342592842838349881453891165509234814079836826376848453573325929388418064528507665283282991223308897454081488588502319974719803312266636961747672050853811393102157929703530256472278418048132069448401087083959129114590513272646392077500226766634603108527607574045770217072903308839258973523969386564968284361224166122384326267154392017319601867172468914690706673000399645292458983494753813050913096054583243783782070865125570193275128221305868441505795438121191614338046653272497651448509592792167412556027411080651507457267094953754155748753712528635529539777043194547248307553570251977490459203381168809863621618744337389649592589887584178726486473054082667240953762804085289777668884147029712573029479111068627846559088882623038002562130132038134632387687259690564988668149959789937149493611892475546348638224549157585318590882587479338149200476364812787624865995719062444166246221301083975768595449893976792639618302686318773992854303792253239609136135752436288271936165145056331283641678811821843196438033126453257224922822038480147219369259735794586225513417249979199334274002073331113347630189982607464060207877291212605343159769528017747480596372513608231618860041393849911031110391023154510470080032921967828560189654495776324645269899633060264655120738670489139231055185740401070387950518292170871361156567985696161065867783205827327171424905354082418901851814028417373245887361511366699462221329469211430393406627187046255776603705913866442936640345944067591115646040011112287992441924663857547078325750706806742234552153687582317853556753821072845104858232437521075557303984989658908113533589295006976292118049485154591030811727379873592779915772430223871248413998201928634986025722354147082521865923912043745246302863399035980060707163048435978603748536911976439642285265967032309410257808144207229992486703574786307844996325010034182410774657057681031070299114350833694791712383698968186301318636836865876788369260900920751929788966283174000057701472076439086901435230928110029462107174146333165289972544082005198519974866763770255571362129744233578887175845506639094563894129119882997432493787897938562191809333244594623352802285678601320587277238465243173262401360935057861664859950968598352271253194598955205557001797893836659877209546299265700568008552635477863055035562059377726726579536001785551701788568851627752913225789498883244358358585668275101123055715248055324259775934985658772955876006590649999315572219436132397827514285609927788778509434480812800518056955629577128075248204582750078248594140269687796231450930454976326913941473367077503216435799231294555207751314102191376783725439636497319403812736790851796766851613282778529435005068354526419031119316606999511499907555347683504595510348707090243925045176680505426087636455536546543629707632411527588590908665091743365054929570568596225988741375091195947764928222902128726250903523661190733862776362255210873600148515668525992523352644967166132723714273716162708195323473157210842068434536294603211688493648075072532909445823516704147699277737443577721126114556525311890715710392384233739936537595451711803234883694502223952685435098428350658657165977910916533654993920021867170220129337495843538742921020432560130223143683354161456768771357963123682237324409356954512889943950949759740113816245953351034243932368530423899870689878144166977955099082164933474739723013950223778253893775974663264804700762327414621151779430459052387934694267660765369086043828433063588099584772320093551544142209642939421808666003444404808968597548842363946951330436373764603580859719400080987345620642816544259935689219563222832067556747819634507829341648679149281584806353637890009207516505718620569004371788831392585014367068441657062566497273538807375391853706279524499095548296171262168508196564959358733227837986901504994705391420345730879470246093840224571691800159776850210308931144547002386021465830498770897773729106207548651139512492590785979277621913487449082599317526894254610253637033421596324384128299882514296011719763125941145875837950381441748702762797235713166799493666184538672505702923356397601663690775706845579920777592249017477938914264476644585786179428093169233087995007147416922982514776012728910979922137446722084248242412778079172883023331367486482904533498138437236060249619232903784372386379883262926887597610717624303495066997618293390927720831777695835599016391590692453605242508501209655644996245118123693702041334719554940637417741539369085209596114893409234110715745204060346197425152636028208936535814255279152447303242472875947399818656123687173123592640412778800861339372692621083570649656157299170174940537308223665380581503156188204454894758882621053428407508053290841606300165549184975407174213723152588763178952844040944581075142739424778721133823157452780505713431133150582281736442016834708901782649574943932738201421208751191522738308393735282477390627457147877624097515814346850828054031385498261422693158921076661150171104878916344591973790038508702928856082697156399916418932051800740572649805892539728586326220442069062407888505508413907032858898698578799468295959130205516269246274505903149805874038450322581580941602095402603063472063748457413840277408510538077589874319418569314437209896492372055560339232911354855628546130374980935985392570336845926858152439132524010017760894636865974373783090940892314260036895573534348349860434562724250990395273040499653001359158829758861480882776826786871512100836770176874834071317283620236932289852424038461308599139538910245625781973582766930289803544612064231459823643001245085171078400196741927367525903287508511977226097368940521513090984975657878609623578413632892249331497067631193828495725921665175618453454588529012079568232688146038083719817678037211247251148918484098345139824738911695663964663777169377926688964350297851583509430310023172752051300367857771012077909115059562446455207723700409628610277204255679930410070420454078809779725378561518996370303569632256019333172453199246182645220530692032730014709219931248632617216001014908040734213260972200529872304477153573816677078110558331623720506225382445863871684066775774232773037797120892352937094898610295167261865063392392752069384389895917781900784780436528283304285457050402029943880556675910020490677957546112263135136984209737984514968600158939061915644078928863856126392361832161716225838592868538511809436476758718229405342171588827835737947988149151969349389822614231761088509516211325564663643208216650752919778991958773766053229782302987476821258514100185525435673696186390100332443695491773878236205904663140260232264195114179974678707302364759425150315113574994504702538077099816037990100071287749157138522533386564483462632980366949059540253086119170846526601937803560753052889080179860195101216689026028713289074270169229838597808720805703414116636328792104428812265813072103389348849849939597235805571555017053147224330356396701733117961223192697752902706060239536450019445941791704409749892414017186155645733987089962533843564164794485682424880902681137510177872017962552855853321558576197194592606907166647468970231707310888336743472440126178938459015849656138781808998778658770184922574849563759036559169599597293075192270242761924334249775611455440117896912308280947246486093641303855800312683492364745612762130641201201549658193864051790664794338330577998114592094670641769725321537496055164022836735685549872125342725425122867820413771929537664191928948507485811684022946576250641915349470914624277700725663093085395244158257128099270231050102026806887252145121826720920383975392947788969684012047157015605861739115939026336626792705006146686979953457055183656378792629226782872285656305600278003962621894822800531671919884830208468099329611662560790345055917789711410421764677015347182224478880501345259620927133281577239745107389806766529298051692710121120581964227978548230997112419153991386003892881449153047063922531477674462382715803739383188343816481777727458506880071487045855954548206519383662796355898242410877444104144634108059129536882571680248056407634896007304464652963036909553961273076698112524186838632095808464411593208063186932614407738831653227920272995277084325835566168859710234611514430611568753739528026213946369489490455912284054220489662203541754644000195166081225476674750407967989457401954189270919529580187446804018243053608533467375886645894430377084435617942085515249124218894693972926198137561686719737036541073788845351886077528405239422204128502493154222938905120427323732558356729112970903943518624784972146198031907810213193039007878589562909122048571574339578507779980157167705906572779628532345147015910909888149870708126140441591856768263883012598152813559469576217057292417399313940120074277073274128125796596043601324310439585535723618786263831597653894101115816232306067741900710473856045108951255935524992846316600835843425537339973378471488134914064180578458659664477670190781397736794521893391787446219059083681610854232063897724157566989101904328543205925960658189390874398323554812129323974322708177367486036064871175112613423896321690818014981210645474689226129230862063121064779035938929781779193817111968159395004286668059808031311027216465493548244359811743806093127683071919806223309755079034721449463947396021355371462055531946485787456757221213264415114942385046223797312928848147588126312815982042954072946373001773283535456986268078506468413416059586103436276060380857116830114926400364495268017511192438976651354334315845009907026831775998415007177955545948317674090663844937639117431082738674243542042147000766164907262977881764462132066409587068042929402471060042924449477707201681478849937559619079674306281331632926493252202242883886134449998846004255730627570519043574829227619903250315945297998463780412513343211120966471751739190141835473947930482737682915698486349789182025208939054879103252647526830469850892234513895359503413003569084493833801133423142787359261104257586191850374617428533397155200819482288246961330104337628302681693951447482293005420019508850840744659242326066942733469004112606518622161967084014601417957896235646985111512504065817758021202647348616657760173628888328039907894843116074864782961971125687133217436463066800096054441353983957476236782231552474680928623553575501777607864801124038430989401173885299328228324614524100230124118078456469092802952975506442784202056600020803810114832221288383392553250248740703773291532107122128503085921517344919339578686837358489449303748195759170640561561281285220755307172063220719704407304688980360634244049227485641002194700672797535109777917128355409560814077223804906982857447222493186074565101717638874875009402139570850926365277818473952505623407176664838932457424966767329380176763373587170724395862287760553849801811410446170206601322550507490077266115439625876184616180994160610385674048202452064064873917660159153620809924751616073406545037282470243897784771119300558467542228535283691898101010596225650264778292103396578967853873776838453076200661331317533447548866846289788154530726919308834925354427805436805861232478891771266015267963926092723907161596716899077069018295986717383562328955348312519403287847591416602223843679134328651982450978701008444303548596361777472981939976463363977124494886252260938341207837911305408411314827002339438433606212150099868988970791760266212092511868936684026979088116717334645096091460739176401353921404470157344026242384632253311321380905434896760009368363212306835223961876136610551791748544063304089383154975862750461953517904823744765385070058459198717053443474916376023189156198401356459261765352182908637262138424566304641352950206298986458509898221075300109856968780277437337271299466578275124187216288831713874656482567415492852390811734912886718370349354076354383486285862934277469962301474867493581697250240874109704119673611994844910608223335279726668647720651107892277535430805923899908031986264691098333809562978870503993409561460896615103330696442541049171017639203846301764503838667948301557042372892047998365680725839016241912260888655005398095311824174248579555422114526570502853527399891678416261938600147903187881446092899629929276681540826541933316131133848670561944198099313033390618123066229862581144189714134539983950401561894333997680370611803324794173641128114360343326371381157379630729309201832933129218905221494537766757855146943344168411714101631527667623445090359817071320442548564215288750734086237876077884371439305133983653191933351572125632540457768888631134181592556482552089126793479937929901989764930211556985553442253551470683816280348468228822783766474760200498457194037910154704716237504370379021693533970787134746996517736102099648381856535357540391581841096618386517247436070115149776881494722089707913706400257164588684437863821189578789769933074968391006918796828100595557109894250439322306140583944110970619376071492544916082265153645171602012359175623560369632542005156213218278049285014985482253247830005107171738121986865839362609388699904538420931114656775290276009077588869030783357452444562104997075326132583952889475805558065302924302743411218559238748976673394798400136679932334428470811127934107117058506214414199989486620672149731106498484426900273205320594543140417090911628018469233889040275745571353219673699581616791091218166428314701573263482318433781579322430999209236158911729854186227639308843366181047245291771036560724861148045027778235690658573258713909012224461045238629069226599620615471992121655124912236325697736863259453752695695008700646339234311166734020305309325958975948060672540163020274956188367725398686528462657430061523491269787348113633500091819239942522062688201598966000914511980096904636608737237293123329429986637320280849923545621449616943256281064112191532871106718296469906528343136395010156633328754193710594714035149331231336295125642976346501234588608202396744959325835207843012250114756935895687010776476243856875222737207396262660299134293973631776555685317395286306737672393066439803107972121853731380264493868672138407966804009660440804887620029612500020721267480924917637187804084978190304899511671927793486634240387049494026911527385429851192324776638657537637901390811501083501394914985678083806843366998840899061200180665898504340351752265943003223043753169800766836138363351230477280444488037554589078414421446085526312201464123478522794273764662996647284131221899993496876455451326869956939602696174811073073866346158923194930424327090798060793983715676338335708943284119011645429054009245191769310237510886663220768251948441938490090364868371306644431607930137639760842138934072693924430946789801176245033067541827634313150934235518416890978102801665545925515221351005955873834661219093146305169095488618796418481525187665952481752611587880438302052281765041351173230035421619428149612864449039888004964918111292854236177227848048256939769277231295203857678633743134807936081245035241014338261518243925128353190175159793075443006509929304482848836127180795056127074688883813621922847155712284826088606605911858892699573166873381643215915513631616297157220284334160898608055216405003153011514409164863113646370201150991196391084466183466157512105835870872327835674414329257739875902803115954630951117063379554254747536700316691881732737610545406934022632958415112248047639190677885186768402948734341737194833739237708635568775876404716523670219972404056897490874710669464462879163317136161776999888859190581575585878941951533091655767675527742728351859917886003911518364163848669664698804792347027145354030459182355971084885497027172547296662539536250319140677648663484030757724061346764172652173231639919339511929973665771111958364747385470903628764486099597343280550037871208869557551340934056236436285977736716892062187885646968215377825277034244987177980877839283730261211265206415621871576218807886492409311100965987397885201557850310252989377484886022176971887923410722100877853825076021315481928892147552249245170355683607618850311002268533551803592873913777652950545704550155278792861299442561719972800058906424115029623416749989724963225410814659878708879839816904423414787298937950055554623126847561828304570305607169132013096655591957257803846234889884362985065163774680376440699021295753170334687971314832076435775834521113881967811449552557733799857846892733867504432175794968973003465455318131505844773337802999269930477444480811350520035354131275383528307215291213445384036252020835121107345491018813989406672947699158947194496789758982837606261569589902105607338906502789654374681356400776231886580020361394170318557330179035476968985629535825079621925514728785302476294826786403875647955629985904771259700843049958568364551399327635287409938960657156522766553342294935753291925631077263225107699592288110839399571545406495178124728325222300708360921609017066619114273633871711096013368855629955274684648170458768921320678981620738741281033557438992679354284829214969775563502930690793130059954260919971382973133738699432667145896137798147100481270966419663479919449396296426398426378592278162963437563075774181593704815661690282251086401466383385200145947815831117234134242662162053997117459497142067392643490182579656570303337841987912355780875928839550217557632356956149662870263346309254340371740861629607993837563110797882540905261738773537116769308203776834011548010110986026215416115122856116220532368155380261735142327759361031833175248368538407880358000594132368019706784756910126556686388170856242060636533146953730024235243640224350063547126969807865224112711273446998479326649282001693191562645253476595721663100441546767246611900447975285976255825781593792989238847605635900871003149261379874590996192340949570191166675796293750062232691189380734941541743056464839087424935944807376443872237402384667913738516097695148042482482211713792534927678672811711485444535980976697270746300396778223757175488638094966476466136938748121595014094548882149267236954567378911617008676676213123456212850272725294240839614243038914119929001618562972415695902016933148397918822125554682471216727040845739571257197404629553344427242678880930832822839839864337562252058907098750620740381680692663123853938215355025375576182354391698193604148789092055056991421574113658188488414940184466927158142624747855334988104444402458031754995926712986393399301454812001303438213895278079031717936030893885802733162673547548461774917062981719996276014509994997301031786580036073956001292503047065516101118959022726266623130306792477281775272173093698045145433522213204518899582907929521334052556768329763521537036917343662540277293881030002232250154787745460560313076189962603234449772119074497507493318623685546144219925799254181634877323199695360340395214365988249371309504447706164666822163518136523373317585437786182909823169074615489910137915290632073688674726878966594231391423794981825774531868405839977469524316624844514161868246686737829726344754064206509359968071486086518256236482403176482573958373869634825158156979932765856838061140805885371098124503502604520005794269258202774675269372868161667158966193250733077065178550567114599537323555759812750691413999987801806941547808215412847255177077353888828024894601715274682220818406206496190797478511265538279296098554215473677400518363654670717114631438578742682986171266431725789530655341765270450833391570906269702090769589563362213409001869463703031139613241114756289217517237658140784428061659420375426992419912260576893839482266213004938259189888220592597377339495669905385365626634893121896707828585128509661957199835579228022732956488706935838746709131552158237297447779524697414834355984916609686519164735029307404555798257059685677868070823840072717377183751124263294200884345253677267039545331590989205886171577540104941846444439901543848818422804493102306173826831426270047240247408771083895791524522843070796559298701677974238775873277319797107350541523725852690639871645023003481798000799644153712883283829681387726784180773427756988504047745976530630950104915365189514134441267303093577178490202010571007512575057413208880197831631316684256365711448863006141754237467359021781890569420800284351920714965912363549521260630859063653497533682453070785722216728287248701241847134946889026459699249538861710610846203083220481146771619410738685225049831169795380008870859261267131463645180322408159472106556653615256625913437907323385314361354069503125847154251490741487085482042315390287444635354765330679692308673799193196210086724471091575634109922796414293478551503691456584614431856217583134313558622065042803936347009116764657108960345297458080346656687068588757813204033544932541163146348320716949265626107934922457198521235066407841650126587291260089832672650653084324950105460396277229700386546546024219971152105591367297262731440823936154935710413700595994465666584718411575253189786566582475838555004687881576105350630183262113434298443104179715883094940282787125150701562521611377895101019897057790971186779384809248141610062174052689538695881348867132681367833512816405866667183266547430065554550651181850779920931080559718670356723789460597269810368534167410481553014215141807364930973062326780597156756308494212703241737631083822698438431156903518774714193141022696650882873374764979570911627032577579847645623400420945478378524607948463292451808103152375303868113973206303032326671740728648035408166245976821353366381165919526522464137285809770672221646741904265665334441153612277624889878097958965167678436712485337056803815013890943035320464426999574131712397342162919997629392001091239919306570875608902337402365068776761683211264425310882125763207572049482302977003955626677360540183997887653301415233807766897693525007780799958164457496396147855856155692298267372577057554875754829906863056094197519817179785788086324001597833860946511833259005009827656514711865671115285691086150751900437366513084511112928346295079228494330438560604809879423998504409049680399669729102123960172872145577331550854032169488382056483928874979054193409669013787528298628818495134611443358282292949474855269753034389168553549320881074730512030111685845719672762217428208716866490589514320860563605767931651792482902400502183673192546110779500916113665644667927236953574066176788895480181737183706727978535202228169020593604937468524480249121897109749018677836514020838428215977248063692937679908456836373341488002266609418618088886647812639004797328810556279334284810063824094705155307931983141919731382839845630712459439380616270981602016961383790521953499288703886566712506363735318822741931682190691842931916634017772491640057335092424668960922709999074894230459236308793161434863623417629459816751265590716726004596164618066401652664065841653117515901524331305884381592917605773426956312666869316460110890817307745528857666135122747346730158546788611542106056279379292270210885823345248979594911630998405980353126784304152695430995056836682511550662891223781178495672728536323665157185670653615223864353961430171809865865926736206673681512547845783521346069547605853304176065792118821844035370207015278593426052619720608335354981634348587520631012515499718520556396506568783806080583459270973677756788738592291121658135109258994620931251929904995198535802786668315630149199043766540777859626270158943475117825425898179631004716789776206781555747974356404931897426950298894415952861570055632626063005881260468861311297891307654061185058034393097095577791650880515836333050320761563356965415122616060464174752199429968549584810763015780921550754779305929742932075280137592573546437421645971029651028748057333493649444349882315208336069282040495836337801933340612882894940536521295817603440081307510198915611108905882606509047998059615465290233286056700145490792303886813174248976758450942949443350724992844137860512590022547451094590691209753975442625054336707488929819858713660031062785039241054820819111122793989306215887817371509688237617178855698445766208958263123251226085889220887041609212205770328073175737621303927423555424798560018420222012660180842477477076413375196688450278720973842205279475861805746532578985726827521762062272206397792204169989579428847261253885412897870252261858252050243967640155045907642787888965904448511029589767377164352327078880722173383678802265295067285594941589793184733619821255710693521755218780957440045476973595235010864236051335377548962406064706855681516602113603218069258506070539881295189099902073519182787982138330679348926504712301883452412118241038385568420443474146287729010728618403656680312954270293615540920839759516903805649747490816116474604895365456627058667409252463943367469117937486990263726258408115850700044277831408808391328866741239390902213350665530941599910932735991396213551143760470168568106454732741305347483162150378157002692704180334919019513443408894443597221838769824900430285947408059900393377985887262275552863616254850032520396202828822342804907076755228734668004612579935381923919964044522360362511440370262755715137098086695343915542901072795478418954767399793214480608817802296418272231799746285283068310298065586359969396478261431947421699445931529464921860419568142700958084792512120561623213313112996069529549759045107689447429878779819473514064100145312105167826341869323263931158956076256606964630416245204244821795508728552884285748100910233573205225070127674162683130152075567388141631038053449495703330642504819789317867351028744815563604006876076271339962646187854770038410513982792200546360835985127097469338328025400414445284192782451593753535687101102921336983101631361634815520447233936482634767880424409309500070677367602896157779517458940191152517815848465271228406934651676751282980455386607186545123685089217216527092008819316745743973123899366207918936787904659893772039511160158193181310813369332530587693193373109769376789218899465693281815723136831149098176907715681955945026322348206236367595102735408942430802081788764106460574888082339527433798658164987734699613700564442810206754670835865301576116089093681054826192763810833733321048596948832804466182150296125082356226634214689751695001108034413600193388537193050729964622338303776735970634577184575776908426244640079470855028913152784760380917750109868010412708316177251138967551652704567381830592530332376153434836738296780432020673408647041227233646695105728939761112573189174430282945689029377882595659900392907248961902683997631728729788313892030414239398640116784461936557646518636731262949864298905119225516518296649999572180469445953583825574752062897951513845593050424660379312462332300839590278616964938411097337603702432648487198650490708749464392151682656417759913542956274468469307121188378676824840405643068201564803411905613290078794359072268865879957027428120452063413845579515819395057861307328581882804567433066036557411039370044469647640510055472937248759557097000380381669719495310642950198351634559516569748684826403749129447688422284740676113471680285211775589685123930276820217489015822365661737643473455416375616942406049078249965286337727053095216576070813036405474191131873020580286607190101955760706544798937440336803818915547911967745030039869008021306059088017366586971563556907453828829128572277064532463421581495008805496171530578767035061257055303706952429620902086282617814747610862248037083715045579898312164044743448795470125843122454566564556912847112791410459238675829109400006462766008744623844449058022022009364971189156016488994662174912271261596466860569195066021247172309583413099840126184171341102837126882132192906550900375913376567185257727530519111185749030167741937578105135748518254212020422226476600232148946961823794136305719401139426344693323414037605456533792915327650839907964421837322061478380710262206080711750366994250785291710706632435032329156603141067001721738512358801516394828520363945682212653243064275804692341733006463998094418434018319032663868410545983116421273531166428651990273582541169467186950047104252837155571598689144917131775071544506280392258192683660724272113959093799938684277447176068531014965395037486583263280396185234216524410679294766425471061606253385785890698762152253094039221146866199521918389235907355985462694818747107313671480718232455793600971175874521303297057893806759319891661122730628736276606287301314719213300729303172053036832880134136912282624333622464667852069714985785877583223007797336869391667663651369246339034401718212632657302432362700117284972263746233128839792583022224196626566558809246782400504093505867440702883495044603855832435278053101839088683689069961945259091513994244284777850432398845964006672153233692348644867435258215251916049328872014652882351472921033931916846496928322300145064489450306340128607357011082308539925531851571242997220407353532964264722992568179006400977319627148457696311507072196636442181101227868427695198074696872366467932165247768183196525282013216927196730505689912609223586659585423844979825635828256203784935466689592256928172565824254829780541629107241294946774325151964133218992519385642771190100219604907491031407840719768483702982838830279517679848102633193219967239022846995203621581202226613162779920355282577447948529117232820458241959924863340317186823798070119294970750391356750439025793492990106504918387626008245978909658886055520609206652795799366512128019429156931123805848549746930996583910876866628595047497817862155181627712875711145373305670897364070277197318690566260285820555860912264227254519422732588627701458973259707070811459455145738038700124384781597543496849350961886397143020788794499780688420904546816368432588755184211529629308346823323179547754978118953850915144631289083097973855852888049402895704369055359440367234742551784045616168932946153011272403134374172893173643733841484609768653590354709280833779173189681685499184835057280135054640684432478615611504956973703366008673382144957742431446182273583733851038978785213181891040254013097880133597544348074937360795783114960117603125108886235672440333073629664827851429556965736348261667621323448290215620435592091566071027986177605941948675933824053698579640044746871782178282563103471261409490803134416080584058430376345950309147229415784221468179430452089602274367018748960409892714025317245671992595226655566557448375798381104549049045072599960824082963069446994892928172517118128947729502811160387716758665276996187786587293166959283371372400179354702192589256717224267572197175545997580526173411798108250359035321715842318550134802912462310329003545613219957555755582300855292167295681653885424973264648485752793067366649144297143582157014743409606590973297228882048387136336954719638716183498388058604883523590553313654080088832969591111470148538449551909143869141305096684168175213502235849764741786016998366690390691908837860621061274274836521084907716419827501823876820366316210019900585747046667614482513196960532024982730953268931211531202158070983991930369016973922558634199343495355212036657525281400187325444989843191499064684513818613550080282156340258312471318741950252466633343033479253363472466767568941868774404180681044426324265912753411224992668458772666582498735693906260346020704311171872860906352784397508251867441644037759206408827435943967746020607228215922732039555793422862111947387105840787160866467055075764294586823698558175266803326016805318234077029211879353512924757249964915861144122562453310230463617217374214905469618259384464773834598357600263265295469630303489161015384916757795031397311489949515174518584557997751038120590497233329877950047302656747366687121103129130772768731445593852853374979686844072631813973120803598313296030113150047830460494935497447822149700842109192608011886301136085632113100462517718646640860297906086148720807736649326339857731441808025703315827525261746896125487701563947766380593166566915870444117040452269602980415126371990949943662810090630086094694722237377515796415631580137967673990014549261910456350056817493448267946658376489790676393664127587486233002311702193895231862952307183460076476498198123878037558455575189090307505539859253145461729588239782839149031062550617926385097349566723491796961382694027760055916561624104363395122313374583312465572056460012001256253798954274511999154952824057162485864728161330719157499250224892925008611900479178536221736722987083750596041360413436461669050840411266686624398931731953320422810169612683184489886056494829739581973905109181006632549949170991564855530199605038064820105113338729311967934487117453363114435987822216824395401029440385206837286336897534148997773974658408620438260025168348532552915101252654668031967458848632716524188070920905651822668859229462139479367450223109586423643862280252485468793923103825507203775123689725349420453354309535609920086229723743905914753424517309029944209100853897081241214851193684674050568593999591953959828256862846369777062742511484358585294453036535478116860599648568286264500859080086425316713693026363043637124134008812499895680467836369410820530557008573852256294797217885711755968766106395946338351481578178116371093439567016837455953965023398339695770928785171166709932969620132982768212693741878607707693281332491048339672183553623098126703890545399056608326396378841611882826295464131561575980850247817266947987704901908161058210640442700738233580881101112575734373124020106129847991408860366622125019661959311124108576916115376825619501713957313538704085152732527931046528667539856019979476720003752742880374910131925834457413381642193149165243761795054940812549689899204528431429690933511064452227272851808860794651578071358024463584324140591970809187853124430502921642166769556708870553784381351139938368167112227082974573558451241739674443712756537057322357807120159637149887454392150229060111415192078429914953616010790265252378937320885130501092870173344061236937786151331779586212436964786164967869129648048996682704362313105877151586150159336170299618146847861617400515506298822318213195693516725908090668151108502593136189297251327805683162555534438288449348639881670412906470509757660946642397484294294310457360782290402642157819941433221038137826048644206263641019791655339224866004053622169769441294790337494258649521111753533457422907024103273047594067279037568942470860653287935325775285602004846445808641221610043048901721280066471525023000271556258392504525228481138079512089594389606332438356427416568308723429554241373135656998248120610951664113409479996813845319218074535569672643471580645264230567025543784025257537752225467240140928336434299600512502958841897925187903436025293775152411198487402468133049616272473244284619554506482519692407945990148239219119144574757325709526232124852139545292760521474570771699907656392746727158676661659971514517569931971387408846207603456615509174249011802530840190360702491599909842640011977909545999851819700061733104694937795467656372465407400236556791312605482796337988444087070317960969484583510881017120279969537252850545940799467360830750705763806105259632948770594616392623203288511263409144492087037352161715753761527146568314599347252127618785735662460946657742630836077820199689092751334796972675017670352101598499088406570867253316506618515583835516235982813475353014300045837730589606661747496072060839023202851657526024317890299747493691606294412071063383158285865605255322722314908206221949375920272977097571868046031911063346088514058001960612634347291679838616710111019747055348686821010900195756748710146473401919734297057222223107299380092915530084664074542048047977156260439530061972547974908705506070061074674836811577539808377468538442964185545506252177571861264989940558882908992856350957093858571638088516266106274053607852366424596071132504683114131321330856382483375106937610070297999913488396364755809161253091502205357821449027323016121292343992644907570164794124738792098188330545323410912147128202136006188398634212062616770574680518707103339626887981853111998053577133731731048320575589114090935114841492787892497434204365560742508889107003743807462659012828600160379165900151193733830491578000093651598895019002423373068702553800275885780323444736176832358692773334158164417668888235698334488346531744737798470286149198655362707511792021910025832953564573866393057831310709159497681610820370823823465877173100920731750006220779825904715690881650205485202972461706444459349789186910167021980241699282497212440138248181558581412895075798124083258846271971611696932201822136371151157861027738005004765215979143127818583921918968257037982921588242339267001793505909414617415785864251534507458269965796663268051976909659052154448239519665909041631691944721615381655946129588739847449444856194291627734149872617760545205410435499018321122304427320454819290882928276611429223753909590159413177112026581720418689651446751458764577406929855590554434391503433698303231893972107101399196280595934151853677060518595778265524349501030709605108290622986466563369847262270871629416419018359574639910553028519445260009470538781265861414339563150281955117460831561132883353863880889469422340681458197452431116338639549184522350259323263036357638803240520323581200513839897156616433002993635093712920826656586022532264393759894010572968633797232293715880032194395173213809890897768591261122698295088458585251416597236195585322765307602540351400763134998278165879650604867747953723180401235843096372126131059073574570462056287459502448739468699465861950975764822582794744698613426798552955013665369321537804391743103179121200133804380439446761552410637350089050505183744133601369457778094618093804050157884997066362434724191074068042735733917586508727922573746276486862171033322463462413376318830331621053919039637633009959315734206438090842534730139169814429123850906567328587018566414581653664590660520880718659183751850539118946483121432526502362261431764105351609699195611813358791963872079529624792460713037221376493600021012639715242293463307385847701224941795627116343162809658617644786444360279076077789644360909359763858863384502820421663340902410579983507016163026818743541929104809116102017040851325244943042223692282178787031647260741141997877963347055390203237473556372291359904877302450019342801861786327688401787370297689988506224393898420362659867781955328459735169535704230596593328469372509891994222961274874718890425055181978081955917482601845793083315059067206038421918264844541392111865041758944310607252695891914849951375098370830640600292904598025925058082926962846082644410103829193809499591015353191625688834547283037551396138175455996966296810651389096035577911667568569720929402734696534606876026373751825496516686317233767416712020668318208149814977239742621846113082519625102846227255390631214592655385369027209540790153311157496319767779532577068084126609742991297471212823803561107235009385608770812051278053864877833289841753627258035668306195437773569057172523051204393404316252107940535846586181454774418489081891553481756136774566374102081937519742473155942307347252969961077449798675413865106420620634516111483910545211057373657088251804646616751725938245275696549153248666676507629702239940607933031458196222325155695076720546976606447834798180593800547013812981718385462540552244285696299149155461694119024758397724403777080113900543286771097228520266399160148658524849939070492830874970079388149353518159070506526446917679191090297993209010134548674518610404673267657113251699162247653016668536826226931824177736469730561997338107513355479554412628621574072393522705188093195200818147890234465291967734171417095305101887009425940636047904615477318540208470983066847114585654354258731794604145517988797121370292772627753278399746002158024415206155035881308056287404173692340841206434793527056885229766202212758929981933899139700080385625728301342018421097572971918850674384774410727840494039917058667307709958917414559649074693192316877565315716887405169007511097833371348461058157145202001661062807302314560521566009213743111323358839254625428428844212160737355642578324787062764896858534199422012235598267318796141379952319587276744412488831928362409740448659945748913286722512628026554427673340208002180657825641109652320744603136593315185756209526776248603745044785279894993183340887698737285562137719280624927087667691904682079344687331630354422966138147979785803944446826850546531615211349314969173271697943835083712713280597212001171813684456069767699432662935644744288519405713022845341067594446781070986979686419227844270751268304998579034939208129418564082325071192869949488466046192946122494119388854119523187019482309207691921976832861950308323085945394413362277743858289939387030449022778062217692587967407771350407342327254370637689432941952576498783392621425365585289124737063988222797041712477707703953279677071688864154029637400306478479925671330256501172288041921502218064625637100623894778984985374478815527541031520308172365979605849515082879890483797855910186386921940392200017007035916684411051331795589489250286335094544440866811244699995962322277052833253579693527073043413698801649346286171557939078706502233837205362095904172072966214970463640022264537143777651261098928753898800935720040191814887892436590738478939443055748234809716092483499401556367810079423030157403863796441274565058903389638117225744787646017461243326171252901958074655190887044598487008672221815795656782110522578050345396393186621370493259912014040006045512390434516989810556114330007964927813309397033774861593126940856345772270746654261862471483581563035845619960858536573169317723625197301501016431401049785089851982620822857861139395729178953319500479081947097557346163135075251801971877961515800149132736993431796479613875427949160455646217739386686398454109746160565036040615479236215369750034721954476414188071533819060056809127197214956597181986442760883785470656155380303061669545052430311250329625895956512608294144633755465951349625031729459098348890209981510256240015441393791308096119430040228013402931356720132253973672949252908113590612881369349117415576850759337831224725007989662550235854630318645800979177260318962402589096878124356198104510312025391669508643763844903038836486419304749255780073310352118270852008611622841411424516927214325602370124955868403472989506611046013247597470695973003939678436006004451254759494435660264521524739353493325720657262202073999455609973858291420571051090695433536680661148382649320714754755881902031386815291721991283425372207140098233242488848150565932938459927816933229555741047670308243993347875680122155809532907969064004309625177540069695564374900744638106554565616426627895748480508866589250922516622019548738028382822571616970768708296567643645731767069715391036126620893220563020172342353956206505283507485171814245520412848304937887864491164055672504638085263534643057057816772323104469725366106155996645205704216974377045390703180118663646082562096880802282992287789837326845587339050783421775273855154577739896536384994828963452918171491703678711573846908849191169096466243657171316620308120444190303523579281148971325767007049661642859768569656538486692036575361925479572369185414971649447760444407864718397813662969241913214447371815148486589120666372016753246490270760851539538671239172519068876897297650377452841135345451336425923180580155718193917305023408031426677856932305016598358462170169617222089723119122408102547760961380031968188530105351813380702074680237859127055336990210723529283295323144816629946387906744570215224517195252177505547411012093168075400084675160120411594219703167548750579039289452904103058947407352040245588523839480041110689853402776164209412747290152680450802418824941369932323083656574860268398909269429346312084323846476641165563215414186831319248171326617651537613819773125088514308729176011415685579215069045250096951918879330777056337600131389002036074289722293948119061355314524692728975131120478284389634504249132754326765942608503784671418133168759875639560161814897228144069635573053694926869917750478041021398219772015096527365562545327833587779360942058654035748538733904002973888705829864967694125266900983290356722838793198790004924719606238716966716284003800200493433603238843787454488842681896049176888564336675429521219744227000326487771319279171800429714088413020787938455224638969210469203003894894759524456472443431305021979244563934751378329182866888198414996797388261636860842896399335207455244097385978483322364966092344848806943661108278332141893582694624810973537347035431788186686504852389118377229088752011414829836823850146143254883243601226888429931971831933819281163489196941115965496983694657696951465892402891778646668281244070866450123217383089017358473080079435846133494035098643673356761186774877256523091573886106539058005910618849024356396445006378661965216477197328389718627268659227097689649475273106480021484455913053502383756988642520165964363782964091125295690873223653382412335687406592565781692876235512557203404407350366866004873977048202120746310782033110637087217152797297428887375270844554613717349118535717383391165299550601005261474356055275716369841753909780903456142087130829766084490242456885098785959428215932117684379229797422553157200425075695289879517299454859437871520087016299788422422333595349595808797131971543026729936958456790738655230446512993317536381519075795171596932946234645856673708434838373431333427084754459928924860759083722633420565982616414416265293647660738033858629231321607669034757753876027924151604974369316237815487321711384279224587409315654751224083584076242300763818915928100185807031668221016814052249272731699656350398098835334963053400381572347297863406964643310095507556592970685836322995900733343497318010997663029169791309781321721915868229402378142668324472848520818527734009013295390256131260177806866192473245335310569936514006651364393703083933694142230864719333397962323701771911077157588825050019757238440312473387690978480077045027622755318708516361255838623159565400556374195910526755423783096392049529566330960154185702607774325838097643641494738941756900355450204659244569399661333682208055222703388112253551664989536799452979608561322291469551623806095253303259640197329839909613509726752569034938963600955834704087767979721366267272419216465072196129723039743134017113785466788608778277195197062524277884277605428072377752968861066788772013615174312516752501219586492595367874541123725291269120664379304891051330684675849018701250764081724196912093265421835346072676755193884319226591967265408660472863905216123384956572106985323729862190033335007868406160470714753395672851399597501886581689429111462133257155102353028491960026350211140961005074676470579775168602901697891655089641908278332069012286151450716644152792844517599921586831560110897787695875552105227723256496934952954268779624997139094035468667909511912705760885346376555194530233441854559567401976847322856419699711381175256225343327964263683333953485495861094910410370700393750933718841625039883708972915863739455463093772883186460954221617049491992205878255654799487088520972133044871933566128487652678936170275376661517157085753507774777707172348364380957882630538345925730218732158461381214078742759976928587030333604296785882237938881756656817382248548711413951324695957599096686392787687289928513055554672253684802819452491459053154158517028401271211568254299920078960595937773542164957519099866560165585487376904586025344369261776837814659511103181380318604634064699837878383608494448491028728503419604651627498868171251787127213591694531681108685936602128848114045981656130174970516551393287585248738658551720673379105677548531909642002808562247005508994576226365765360053919006884449872498192577006517238069885675936648386665932420703027789656168630159513029657297466641637729151691722536310797257863006752938285804792144369445202169862356482674521002018803140014596438433002852064139018214736999415354613518747360462543302996865141108455157002249339726642976831007228780552132904868273765706845117310517601437602592974418751230746615101740906976054328522566084128553772630725139638030742369512048065023703772497146021629752431129295351662188237719284685754207703291665294846518658456909837489748873927951141639632721206666679629880269621686714478803337922710882041925899765400928285048689795773589707337028134132463549451707838111545916526036057340241785468373732482543740796184587063961666955727049719033480022624638471157325249407771593776874145165206261233380671780327527724041049815376255984307903396744673177365144423747399746775751213829291587124067428996525168947904400830161124282531394953878576552896130561154232472547487512055930317106494341732764139298526016364468837908938191582431460572681908238272265148388514791725237114040523439831578884932439518275675557479261864040652229472132734796868730321293194813365289265717061408172001693417342610629500434283560028640230164812188909112406593772520303296481666302940264550678121662470963997253187497954601387656718226350727092620349055991305164277616653059126426018517780248041154563143110886243114876288425845345296571212482396000339797971567277993990393743752516473751189219147921057729618405984422909797342784423393963402592897216199533331476913757582919385073025665173596661884704660129277008759874991323023822253709083252419795308479205827244794536685833313457082681586959139862343309164408550511535197255180909588825881793047777599408700070575630954061001037160587605443402679893802501571837823254781191717513089481218306793199107621619140497296416993463309973915918913171675699439823393629288180346604322833788476761949905788955895806953069941737783336023587414369730663348301083282718993313372562432278643567957161685710878636302613523310676866528213982683569628755219539721302971833214126789188935672570782602241724865992441391848777767973835804995513815988683622310570756444672499270801328745315617662050820722763502175641229212918329285776389465460553154553099431171685508034693227012570561972843166929111058851611037984921750516955856906515417464123257747535390202150865562748141809990573831904341928536642205835108244181800435625092942683302275193434803094530294727224754436770097408042231158639390322852850892969809985676494327835032560560484222267352407465928028101268105737479846184899186014930352272548945476564303125126157085162143077241342020839411142893838183600208800343480969714162987206191408916157614550617241101173657412047133020381193148196740384504157173087361738385463665557238324579549585634083325413471052321815661904571407753208764895225601199114165024678527705990515655590559093407415999955515683614514649651395371739778810269599864505100784685773409476168037182606706787085195276350340034007960144487607146809883407881444082632862462252214136728456315682829632913161992208142136699477282900472638133227639896720781692514461520314232358820812675999169262364032522739240687905908437569245985170955058262358516146215045577256182009684163357994502971640446078988994310628446091044950207066325467628288139312573110229692903013580349476538411906446596780864473663956726239431644149439895212651975541002679034432891231975243051994278452222732329973348022809035439036332335097497001446175099129854663236577829826757180372553989577866232610206397138938561091302355798244575184234283788497719534246809404793293910656952673918557404048208880510569172456227078368735239472566087973454296259656301576749678511302139820117158050906865942051638228980472226165000044724535814045252727705468130805809400767530788506906785535522215273181249106742374271619442752427027130935396674481342104636988485994846921554553254436098316681404567529380365636557792201836979673556252283093289416692284008770559510356006689503357335753166336634043357041414955526554261849019207268299505165692734456346187889843848751763156190104480197784119483172597404477265421362397296850638975212356798228812686021428617403811760376706004680080606410596455714943895734308730081223136754067433760988923230889829343541465328757874280417593352558929861183365367315014657890846129293698774000183337775380611182018025328574060363651098746837457042849189716285245448125106587038832224011150995308389699118037767154786048469480254483125878830493877722677862327418551191066896846370267955362166292539708855158096672744967479187047474440655383949895945518776471201466423093054112266145309076189040138081740818834633485103483268644361304814751340824047100198139916136118908987104529040582159329055890270803664293304896510978744884046882331771017887385132131262653184838918292837118403187704267244394456956888511964279582563233042069296983476416026923669479672648675822617725631530648631808158819660377459051349741758577143614353084522587035123843055940165026863208971493734330757919010849686712812545887109215246504175563709894663411026181740705001836576986772674133256930620396512610714990915938672176323994787051187304678092652693668350916057337405189165204317360644608195580035586545192692257556989141518165725657101995312025392276687934044369223847146756105623480736603064733903001741658506713441913035827495081406738256736060095766396999045867940923048242820893798240961020085505148533670127600496282630042204967681123398981916592744104510609380657013455245568007957351489370351701133358399055455257727121851078220078447301072515848589532124900474628588474411311977340267357217000714006067864250131836433038602705403605969251036041380292473748771335892211134058358669365332184393581331345579887463449151933025185537914796190377341715170859880670942213282658211868188640267542765707708961060027677588247542291657909711261128295093117429007858173642561603433344161984072941780067588647131928280354311775942925021904947069503783383821467082673288816633369594325126614536628437236548005603822080269627361726847261006275650764450651779733462472630965595057061622295153660675897476702403470845920232223203684175712060373343305402069712865926716742938188314994758503650366947774985864550714295306636295758741849107578240438862685135216366915912060088675018747331184416921990863913049883823016018182748815179677507871773182678132650411510516144200888478490162352681025608789137166730168413543435392188410550170043001368159804026661946208223481210688117785803881044130026560616046043119207507811210353004198877985254298805051094302632996809309195953677850889381303594527333574555825637132240870060181939898950949123746912271120851049729376256091372587827888218142617593126586401242354283993397887187970826528201110956304650990976318408452791864573395018164358741172385414149863016388749781620559710711434098304207808467872068776550009184692170366531323623918381391869033833643769608882974867195801356085490532600386589389712969155793203865190302112523672179054033838441698738434411378992584349067831102164543293225498761202046795662682695814425723736294746132276581422662303836139650978219267221922868434034579853498615096617870332472874949436920209694619223859325949525749770192896313000014132974835664321623781542417530671435252487733746827200597846105781270465209824063688256597758763019787487838865576186348031054745533549370927306333238918492645615772962526752156958934745821324546605395334673473525147976902780810094931887172581933268098961075426572040302723306133885452334296312564257381921866351913871293614990629059942906120354049754432345345554596623155528101224617703069541158997748946439872542536638232512858130036538415294726093874193192191106827934490340451941888307134099263438471695717639165585353391023694913651752389961614143909393768735929503138314224268761428402914870793412142087829125239419359645467868505194948677396572323202522212748868544948241276286532727949053522094743528080580166122400968906306146349773950342029008701633636961461538193326344652521381471945022763752364920099349351883167682519104935603497009230202716560392798353215403053891114820779923362353790265443837970802149347905541343209897377881595950215802464615516577406712202265078123258270387974841032547817981998932316811877304074627967766896228896572666011964751054115933549785199557471099719676226171349011591145570657225998664097793950573097113863748478605241250272646346841325565068522385381414268400421255209518566947172721163565645990891305656570410009752698573196535063069403001108645504463366390357312294778319155598716739815121204659285971983554750609828632184997966671120159957713841216229643980981964989903653331825216228838458113255762902554324284857198850866017485810816937733870080160124557216193531597849437680656669171599418150325506907402221652037234441538925006393064458797181391948026867786418357547899478755419599021642959249598715599142857222988487220805344381881373854438825936634748780396015511378402525020495681995434899051154744503159496102722156030857642766903927834409998956412042965820902265771574190347071521797040992217672407899676703279686223774687263633242940981149825705542575221560228749017140406881654182755550286393621193425837904346607033412789650659826929953192335762862510128824886399342707642393088188272014753219063091664523557856247125910935628963738849058426893469551310152097400046275194878236167194206301662002586794754143236787209724675448593289031823107152433184789397944485802338880551955053078433597692328457419447322114505730920906187001406010422430168812200788736611995567425607874598011217878119353573857772136998113280459862323311361393485896429346356622054950001929685378263072253718153543176677655301991732422448576997660059490990630781665024725150567416258969809029566288184444610788740315225190554591661623444914317265267816011376275898766835265995741407265232284369660936045836265725073125286955636259633322045747275602979243375117719955741604392628856281880196875788509749177939956298595373837915130151935810610718259580972614773605970021496312482975647449224271165994590817056705909151287314463959962640713022549053899401517961295834704593138465539698505520574926883648011104490601466342529400232975281534381482326628770586482239710968790666485513730160465076390882694183975315087806205854344905689604053837569811480579552373332942907565633622588427131834401174140178108340062832109283705071983110363776480309589258498654080609185742228533055484567071688902003216614382463997865501413868885948959084307555739971940968463133945349469799128193707006572454918668308718375739623249550176985614090496786552189936177451132814380226240856076749172796450014560469960168095798072715251057200440816198242275654906588642589682802271483774204723732681306407639207567671054363386938981967783717212854746183197395486504890697717216297962708790357052405812024364395404477576486136982327204069255674189378045944687131281940771666411347870037725585415963564930758222907953785434266107217678373725601398161949408786424914626070697718595674162863279844672484432672397134426978537176092619768305055779026413209143017238933889224305624810911729814930075425460307082926176785690172627660607054283640760326324633479130123380455446687446434334953469956244182659297611115774303962553149755493737028632480729516136042121609713328564329810517270758676358021418586958432935484312734334669421605834388538511000129694025462534767372384589973204002838447381865427598334307280840737808836111721718916579195839620673123261950632365921330752529089352234704998039923444130141030618838534041055071909478568137827238246629842281076572643271154322812346703078922532932484469272378033365023631562961924154912233959957900451284570629313192364968413658090718049599695562318883383616560373506208668519646778041200939230323698541340505487062155581646052543750321954046377541647156995969182494573496487690190261644665362461646200197093385827074051690403929547493740199638495610186495456610656155150425025662431310580732427570779685088535845086850526703022737673700633713853846713607087108454281518335462622083265454645385741352107585366879968827896343911660440804192453139508218367714305371464930133563858366943420823652812103567724201314563029168540316505051526737851953549329626458032074168849306833320348002031936371160149224687864950579313929143589434155595873993148122133708641081664604612763910828095216207437085931336340485613474919489518494057936555478759136835604079987656433837261191797925658236040089593629725782525395072822534456163572207691286626455887711803545649211404548746254736125233607822412131369270186870782820889815419579872627427416107783914292025261553366942626790549155711384261419818161315493511705992952901223834118572640179717718615249197918422079484042860547820162923897244021357609671616602701415243751834834024147255138685323397574170025441989375426031612931963802662228260702331851813943553990049751009957105826411073485151426504872639501536471966176536378856695332833684591733563234791078844943197674998194498891743108478827100562391204038668851884114902015248045648791708013149038796816817049808426137861135323520469196738763476692572981812815408924636948928287187961673831251233457670819547749672081708248004450955493664745506507502162454353081403194799007353506716352112506370601967645652780652550095298645950664621586805562026553746270644090217369067501943891497026636577345612178936108537202814752298138796298704434685046744965527111671611664771760315582281707747079206215765437012832381571671914461431393822192869568050316425797249139423881064852394239257113810761194668626117565340380631103556806917022313101982011985723621076773954852843299797042687578728174924826386172358882506377612997671995440429080421731579633652612444349451200826211434578102080845871649354493219822103407647174073537691706460887522309826998162151301237839117125831131576612653066577864458863840967323984275553637943698391055199089746623645909917606279958538412384120311009137466898077425777185813237468742716979655909113243631527234223867694816964950081659738318319229299639346249852088982344435118747496906015174873196034318016842041725267680363546674578519581795572495066990479406174960659151923081834364856813609842404522492077867584067952149645278957078591507381601659363370519885061445842882259056919835599963313870485703367053282662784408255934457659180084235765073505397204518794224966539638217550421642158832783878074441329989564310246677873486899699520559427673627534233118303256337962888175887571796022905221415573654653968578597861691279190050496820695966745797492526604867684307444302234930927106821936898079636990590573731512799221438938930765532455126337091662402350120074250410268969636329709857702948031828538180751376030946439361570821454316624157059512992995524240449912256753338192865570861110183784380482697121611514298191661938559090794992821937570528378369073161316435209757745899980992330769948170500519665114438057435072950263371202924900918620132749726455427230555248371386625820920989611124781444834266551805238162538140610937822149900437527246545032131910366023150602284308713084945564006908554630707017845625726529979226112335383267096473124906009168061567577011461997270363470128604827809213137312987800756080672878133346421968788144087518341774728808849177983650684881044123095916246775429355802525920179983885468885990937784490708628127309521233353452629955728833323945778552135976167763136295348225411969169409094331777006369793906219569701469969499380022848105312112843845309011019442809129086725226935613484651609389124083512504434080466248142684536102019971935868709775529204575317486040474721861323736968955170708027748745482639987975636131999861060410899548863016446283747431594407466206271723268823217946813442898556726015706052571784554307577041027243264718870242069788447782641620596547701412970766925339392525688250786980117041490190386688004512315513911711724835077672732912001965404072897674224149781933760383051569648528393972610271021975461462415228667013493098327315049225674159739787499408096452099280243533309811160691148576182952204923503323471892972421398406836107481655269899266246605212685568519161261995794515060947598494367046550534130233799325797900156336095018939437314414576709556127866542779728670617331012608120092076972694526090634015331376953049713382180227965387849514246685752342557074452379221721751428999434963692812622671558655053890213362250108851407215366172782533074213364767864012461534189150710678724318624578996718254695026361516859454891985381669917227267673684505754161652879337956912258135184159735485542707100762108487341967593970744282204718038784209191501005061954651284696978378273524070106274650616110557383896951007042059653554246705638789056093831142713574781228685001795515302839031686701819518845669219525733525734538519081910934904776090760456644484401297003982280390489043635011321207179782273789088706546153100763121088573385155313954300082863739565852243360705372448212954566611831127239768478401274943238452361060702908069376816488928024028436210397354430837869769098606467425700937546851999880056692748002922803464852214415678791125115727897225575041204869490042150769625042040609767131790589258892788155941966671052737110319399896130931349452639182756864607003134709536773477389881065694429034764982855233512980613706248174570846306944231789217343826098377539925865842551509388353411463086820040371878918732453168049959364489039021021538292022882068332832409131557909647262260432040239584735770176576658281169041137947247509091912752996816653102231421564281126471136312113331430296954731343190685207357781418914084927755688365841153046405639917147393860799970465123356981304816890551872797225285379136906711495636435461060966485868262228756893255704735684898778084489289313525315969566532720042996686602791564859481834705157196607593103559064902975600604198483481416811395061512923564177620604067001210225362549456325491546968891320551677008648570305200145199696577990740097869892767667739347033595842579928314136632407070959057259996271825251893145173303479651183064051328457320031596860547365235175810955023065168061068628672891584931282712972161900643938455321196666466735985114787137848831558946897074940286210842141515332082213451104557117325715098644489585932418451592218180134472594772027089551013675147133387260389836371714754063996530428521344460587454344021900348891389988319439899135214622748741473499497128589794107629496980297162500886097846228620222077953621484332876976669739832209770762094203258785802737309878070004192954774732199155412127312233308954560133505663718312099795478171344753481091491509576732393958981185320177147462866397685441022553090763571796473893338174676493530009561730342109274741486653560022462738190979456733341730984907428868538262056181264626923545372585114283056949031922689810480753016523493389525579494351855249801942371481363611538001841168654667627333682471217615807445054815696412484550797858559036861214754625330097244213842406077373098473790222817398913154888557709779016153297546039151042855119414573335295851346918430934397510155789694552366786228850972672105522922584896946692308130405485280924869259717805419216579874968922816956426668964877194567173444589481439677019546430632506923162105024820810067664954925008709080903673224968362491610225786682186567270948918243348608634000888949073434791739429302150140957704141631612171485453418551632274226406001169626013886347684367756279680339878903584925115665886472938586808205948892574532450696314677709237126626044257375467116812281178896901583528349476110245824278703218046952954549215730643734769308931379509909155125118301686702913831095729912178413354239167929328449252390208211196564208212254750344564920817038634286132733043746027868916842318693507343880515838613028419911245252249560524390492108817881086188493651352517534597619289104903985080910313680254582794936566900033154366885613135056445260210521633117162630671031542180460242211961354102168481152250963677602638535900176031411807944150089966650014357287233378095375727730763243774981507850336631988030884720569812244987163626883830691626325286802280078302357657187051274728671323939547619597721485198004692022516535417071592588618800164314754511924241998378052142925267087762398330503575835997440964822945370411231002698528375831929065383726545333561165559100878573158908805192030422713211642704592870664931842046925796094085478263889495922332752235435565844041426556876031477156195057067871486079364745369428800622736408934614211408743376240560368559343308903160874686551530618388099383956818083546497385233271716406919020044341777157172196862926393318729257920974654519024985976841882686648839139582138846104102822776734536330345975332387982893869959455056144382390254124715802459069959483032218118652173872583058473087992282501624623009263429549043714213603701963346439845681637529993431840758253883580800229164402980974353505007771547112322739913711709781925427766087825412712981156989047394560294375380210057249378465233948533048586062214117673033823448302096405638710617853995049291059225594261535695266596208249390695356725302256772327114892020385626134362984706489920303330797148960876690243423611906023784096681216557455351441056075338086558556823092863089316094440529367685952533801424125073263068468492702746819597878429161170925331240778814401430763107354731027955187264979080624060820789045054625146861701982412637885479446861381226979118710776295092756338217876890527491683039292671150418582430590607274955976550271295419817529471083415759146975512379795800157169784176577542397330564720349509386755733577397181655962571589656023947662663394282380431853691915833289741908289708469451974526680443580511906077699020704800070883588995879449198481538491610878898823235983032446556730474978066840522980494293404172266863807398367269133319797587246215097576597151358838946011097426830162125308072479587027996164407946179222075307192986251571210889801312737292127636071948504042953308997118688107393790612303129339055251464024125722910176599566478465734565845361491073001029536647056642946884797869870051188482655404145445216170389696028686414984994692787729506353630347296926018592375746576304403276920564584715059282741390765711620267244386025930597675452685827237514310830914211515283028807838910572964090772418417979520360336456292504242273349484933124215394750482604455995904103668219710973634279773371439728130742159631057298147784302341151537577481974243321117598495986439438741064645953522674311284879056143217992466347058869833117595554898399066665908012063877553639196993899583271120161225583220823079895138801631370078725790829861721898772310628889840856838474399115872066077311177463945095994605123062233433182746471035643245277869571658809350428149600565700392970935678117353032159994329431179491071588008682656375598980719990473077022073645581783423807691776784205611226911949824989942831311091357748820976188213708704364997147607105004472044685734321190608801732157595432320204009214614559086055930657581156882275142823565257658063665786906417988760131939953186684462310312811975089145905952526574863852819752341499893358304053625639633999819082241806304435122608814743308317036982058439826231700366127096932094279043032051795455625406953401883882155607516090696160765640810437512932794085310462642999295133753744400086344943301920809125358293301137815007380072271255600081247033085078406151551246879536509434928619182134808902149808911028524895416144228154967872577069955252363052703456070236065298688813628618183141382798067988043281965277044478072766329111303478853112482737307694178992967419776064937067066955158650391503629926582414065685928035684729360441113225716024136771363291665736256000584531757717669970923947139708765994268676155165791807124399051986181406272953174034902846256137640545525917530217541728569642773201143180045577709796157817186776360929137138838924015864695250650159350496426353590273527748134573315535754547318982800496370695957550711541890152285471851165480319316910987955902696263101080870975276591249476883247196762374807383794760564640212620661195736053818096366216353288055035261182354861453006715339878218197049789624416043148508275112225873578825998035789481306542709050739830454687098660158614884359869491715679811799901000597774781953053002308418760512959996902950138062969449459093198133005815393244325282517527976381571687556573991000539884318244747698497799058244426264653499417957584656948560954176456983063071895499398298200717637709521073891855551234801344900073064577092279848431579237936635378268298684985840740215332619782007885660145721700199992290683513590017840166609999316047849059480524302216334576086696164315475014244381282302330451523090206202825464255954672941598553859647854540353985947067593829515636200361097320394734961363497438561682906891720121394915807046929595626112464349866391498359967107025990052492190600476058263552503581394117616013297955410417967783199996715444567503246364966180084691676874491874556758306586261311577530310881155235127072500072294523853455474402291940786585815884842798815496302656720027116965356212468000038047417770246403433402708318247368987181688700933737959621493263797975570589101751632707359414042827986721873312459304303476495899085831739127586985593761431775622680610344769965324984065311805048619193867817993741849074424474844641975964991128341626926621046812617261002682303962995698320626427928560164019424866354842978599437944078893550580169898176467155591782647761998811927711475772310854931052669876753867533433807111017375361715393084536992944639324737924088375477773549190424332299405264545056621922193700486744789762147761498232486376110030095601672280544018303668149655360320707806187907264572917202275947770799256994633885828033019708135120859734968723937271281469259844236260957357654417869472658999505079707461269820432108610923705427431822072372177214928700459701049117590106063156903164913465093929821498014926445471996714748672083950125234756287724799382543180242920086394223065904133765481419302318401306904739135498361091039816111897817529591173478957796577752514217993073122666250395716172467754965707743330017374385793049847209450425036215135943134530474394945513653400060453352581780222156667309733888181023601766856451901469805555426278613236222896143312616144519298559052274239349209471543400515467122833472430928817634750316839365642222415744158137061040167714503911736502381154557414809076562940539868773547500036584838692698532134414131949620447737175178340440026468932795760491930121701636178719547992911125499449896586184366917657489129240550830267280335061445254710805391412314963537826909769219266998362435838708052643582705061364765621414380645822945285301787749807173008317038571848355924497895742209699933818666719632617205793866871426656614461009994710468048165245864983297400200519267924363280256931797834364222752607942590218776428638016114176380229293764353351964828854869765644108144802950765621416508612287350367046787465009397516654769122921824239181354325816632395410229478568627847365904095380075805106360928730371310635934974602235608056894771644624222742275445875153695414463005521360759291384081062217781236705602707487294107561189548878342606900263902984821330110423918838185505980952742649528211901586504595686923792304281089895998237283704261323183897130237349996636561962611380806664355658771488501704609169347391383747644800161749343616842623234661292284267611173192951575106028888239583190846550008377811520557227143144089387078254947452215508395663552663852620641712450651081792819613700240376881540210422987443569409783865759582607301008194206955705700770756673702268798625670500647826104816635027525768595600717956955647165305461500547412541026829422105999086138791059167178262532779193243894359988012155576701821087118453027138655519851727114996023254745705127395951868354341370909869753634599957929314500026438303690011013614417707911149628083114228615226429372842268963294535826758690369127074687355092687969173580348653500409378363029883198012094881390607946819535711212793308532841300062282876478953963432416197968040937397917295860496612344001691053173896718994904942826722761339144793202597548662580343032914640459390378694662591883120793554706013301371686479711110259360437047836248376522391800492137812285229808432306032568536827291041040007714133982706418475373752125574171593613693163921238806189979392020169522074245599899897916985023686231090487105082956935956663991812534028777803967962356960603200106491359261932859049691283295168720649439298328371819596298177835369524712641422998420761091138995272406447662061845075085937686072476124685767200108899404517198712154492929272326507110808653052802796247706646687484647297534994477021805849306293144644595963365108634888197198825522336216341864252622842830147531319390162048619589586521062336503378184988541471485593046096685069836480788610170038897962127188270688175722346137062984488206012245063646020571180286965829812552631553985155405872168141479600042178188694629731831961157074565574127266071798962314333828462199130967790830058392230735618703554570753512601634875024652298477377576643837833929836636169948912628880561085272755770734901642565204474424089014725896797151780126406843874163745168832059517162499219443823143106421426925803792659751162941575601129027834249527574853579370402755343993017912521298664167092214800553256386463531982069622932569567400968751271232670126549856837466091755927753225758746134610719524432451269416229500049172708869331011952151014618880739423041053325728244227544967803685931293540847893710568547101518581746129441143786398836903731815681957469244581457987234327144592075988566823152530302837367947212486297170494141455083907013566088313188408066292033356686737378335609846903867341686256265347848029466684284160510105203109315388294980552774065719342997295824767705876038548327109337385953479881716688105987828472950174174103542196160465678765504923329698031287771839521115494105893320674652545858175301401581555314226549371305713248468652646713015924889180279307676248026305750998904691230604857890888152111739693365366836447254790565494292614654362211670137276894907649576852673594799984941702159681275466599104062914986293771312968847193340641311085949005399850754370178829411490315553538935109012232580438156637706700457761687725554629693656644309881602974670032000249395309149622392006218983594701915479896907825189602016404087122516072782584834977355861202526254718590411324475166826603642102751041560860372211273801495337284472068553497803765689885620647996758527218464699759914499194868214313329716203112227023640727583278401195918655063513715492008153116802925107327422037078967053886140393022555275264291491574816435673875334776708517557397042495158582155073327010816751416968654850210990397919976732724355566922555383950681478817396936861043177260227173445653715384051741797240020061950577931121957453507164655834620318708266339122575844483089925572202661479643717652346978289225340951920023831129853480162225131587101296559258886110241169016251786451792296097647544390105381741341771497451199025664704487745711742909396058644109823036658682101389944456974084725007552442410562234830251396092061469526871110768031673399296179675178824198667489955821481589902037203282653689281959138751470259588395844590277429501970204200725945793789125132916603966880954128570538238023713083965849287247284816697864880309374496512987073610329398769581782413665611441748929187211561119592163455647472832011467465671623720066240458332342474402328142190372918324338350614809754860248125836056592364716876177194559359647980496223140612569622683722560377535083894748845247010466034156501239966779179006694344462529797575529799565907183459258578133005665986171625751355217070365837899166307878654439206460046728857517851494017586838067479876774747577013640063796019064546869742678437011363000838489105816943477327176085772875256557641463580484309132456466777241470458509433000168696105098100803444996304815106454186088090293732249400771391054582448411070182328702407223844519404310291411043043713002156242188942922677870579945255957802947901962347126640724884635328685839265848883253143196775858091515319108570120807647840219090955727417435416389840498196496139245370539098198002769246237829391124656026775135481106791291910056832750944843617472107289699506981436308617827640568635410002063452564459558515433275969136316552500705543641486046917708231789294124106989247861276420691330729782045883133626692228567029973224219171363844682497794578826649723974947258914783470963323163501069330548730561963506568896648934635535055568913439153610147683935071868793832318855116970208771069789300984951596124674374685271074093863058336541823806881301217326265447762916276433862094686791383118304861222268910652081338875780564163278282514348364823995079442683867642993033712947089708071132026791460828918446090564738370161619689721481527361970482792265686865463873254518283791129069316018146479036724124314708083521371390076375929231669604361549811919327197538389311745696411638659311753434173634404954148378227722864309920510977857639382019264878088531769759853527974247985982268407470640684004819805815906867593114770493510332395462706815893923534803959522733429309290192643956273641807853751267138933283620782706946822261303952154367113377004865967615327870858888002570406481245610880145224731754439643196340561771519607754091017611584986961598813614352684859374618698282914143312842209957442408318376215795484497566225282101835519743955747349768787818097404657140054656548640279956199882963114618716725124621122889651403862943706434036061321752412488540445059976844553391496166525738120074617925284411648141416608708560439290566250460739994904025390764703273403733491262400700456091890024831454318900383490999849102543669340150014138605291055677770352267301477666063329530040386903596868642386047718317972579433416002755818111752479547407060100940935332764585209262830660864972989231660339849496674857945970302652911113932254753140257975732474290390988332146910411595193539738835886245724296642613788153789453635233938171784143326197916091905677665185943930298843953879584229374605056665319990493802983577326091281260479784736991636109397095203955952402447591403789764223254777222744437632990854874055527401230138315461441193263073586800950073487863715410080175557933351287735010509779281632623854468465194237235677772772489684046146197663359370229870198553517896063418878051906128565961769030370109528654506286108917554176166731881374914577296369957836376115328323133914155856745286910582397803681547431586546982117333664679090635284392501384320801325999420700772807157491479574529369672449970279315217802868366124801327103907594240591117171848847004992806703815489302111572653816375347459786974142224688462552666019761688740629309394369368761042220179819357762378912725651189822375403508084913343644040673774908619126550571761914115571810386894275968201751767645553432125889998400497753387290996004982419975056319488853489456458493088466544960077269742331151977537725425518769000199934642828567419098372213110666242459790548677866080409062968540015368658615801548403166219399964721303143100752958228609239105918838447839683841882157999377330505270960437053994711924724072718413099170485529701763320057921756703862670798733993871023586298775693671485889224948970020438999860286503280101076826506001184494125077648178762033947727007896421956373260140079866712077103014746871018325819372916916022117920747704904078140866203817143213963523951063639282772854318681588690536740451664738489982192977530962889358883502583054766461009613787443635670932082472061621407223126550305679255803594155295730616583502615518628828145505853448257145558037773320006711821746484375653161355877581018216091460525583830855093551732917381754339886601706891506998115199732847452148312717079837074729826919322617436514977086689133504113066153448970345583446321371509058088125013572739160872521726714096120011525649128512670753054487755991572687485669966882432064774605909628716905660879992284737125011039289030592286170595551492141402275818000958867001246956043390430414637695553286598693728408660327132769839992596122694465200627629161336950624600412806871067473103229461071057572003085463649353370219971528555193607350019758028690005508836600874525519475175481501024513383881419974101718987942939531613367875666615515042789877764243513049696486132635760125063036481899039827186913881845636285249471402897448569832537170710025364361763803503178409623398306634617764875168945147279704488977660392596422084644086072628519555815309187451004965534605111419623586979433117156993610892121060965361203562626898998350955388543489696002618024872871802363539930410911584319415970270371748244072101362145470387295933407583290724889373592506531323676880322529934768840082133093968885593545222335419226239414321612154513497573779585433253509870857732664549154699613490273676878895924620305603737992991964964967291983825498261903254053628487121576573013510270646337486001030305576509168596271297081407380981212374085708949262761006152866918247210726086654371483384223987779118151783449846894316295979213953629547217136927131614749121584403518279192179828563524665977735559591712216296204300290760544995117011553645045951291545723402351121312656978244539649232098495543936390687282219011323084955490741097112957791738856768665796534179192754110336645540143039509936689778192998646988053286903506017270487906071076234955116738240131047915472337630599638041068972051910475175130302697177027235267334751306740290132631912447372171549695774478008474637314051332187018335236989212345123391945459047401705129348981526695526300165465413370810763935759847147940375933065814274433014449155229170630821661870701188489515390058694405211113925473370913810219606401251721312373665814135903894606629014490877492204992716750748333039004445441925923483435936842870692718090446322415830228653743762268167948002775261325714079253102930850754172220634439347633422193219105262841560275546189238537984937774209619911241526163593929806176552462291010345884140424662031412093029565890366488048369023283463877094847342903258390494428872020985809169944091264966783861156850179885662583021991058766948287324849666710371623009208969314723020590865200359599140122589615196530148761692997780276450100200952576397987828866910685662122044790312477686145146285572733289494494191332042786649976766743971781117023635978459960304289473385667795038457841560151441619702665497802986777810385358840037472057794273676266675389138998167781055018194509323611501104637171618841629066631254872050501242180086343429111453662757973248809530883784146263898522953447905018788347530537282363688513544975622993533611847157475770743283552366713218537406804904194263288215767515633046941265736336706005244231251123918076905537047137287267643952215210587212870075809500904247243538429028889464283207632778968472088950864944832474749999756731704172012853746846561646881589379121613971856094265310001387939497738563376892774626327760595207114899932780401707858573135284463686555029135924865109006539436190821849431984443764714037348457992841423177095252969234520915912531709061769319066624604334139046447647016185669862490936498139097699889436456909762717331213053289955149820104913035481146606142490666563919554122121175511402418707440461872522575200461838724908172308762017612875003575007642361831565159733560059333046551551311983989613244920918048563930002927941646828752357850529698826253031882451831641239225621967116920025741569769898986199269252370037347229711137690350436009744553584244264585428899313762317434659384578241429302819183958348380172454944027196597139539471487400746800160711412443901059633571698502934121135043435403603858648321571976326299781277157322027690987696177968106622129825799175100947586429647657688018158176507837000325995887089000460846437061810457306996234916415919313277336926620629419935075377000782000077721400314627749132815791704181240874687486228364993389787002977703972862279275814877948396482126039184138528293801588103915278646954492572913562034020227515181076023468822120630970728592136334947040131288934369703379570159831375106419924543272737524068135141803924757773631023042408629665776409846713939228684323514649410768258478430891768936662048900351550375874018450797454119148793233552856886057541744463693490261901227047641955634425146244401245483961786830481437084353096397576022605266144175250979394434207818213809875953074284410822738187669295702099892950568298192670094012076666804901775514221745270851483079581707632164010644820480521219392708702861222232166426738412923945346896989904638809851300179293111108689010533807948034921905707717542053513210562380565548529563758227169876521609903768437807446168731697690154187040589059196024697429576136236908683576973061986568161709690315801952378524123413829930065012578477527504095736696894117144515377168545380762908716488743799917431894453734529942997472094312950197420440401097247411764439955943093841264112499865532692020228582033023539654165676099521216202687674241717789458356920980296178822226407681476509199547831035256259473545909571005294759648494052301708362145075696755673218952741863020730622584707087314732355311695848122477367615646816208662563939237252232323222197954106094153624666601101350144347232485688509259877944476098315938466922751395871228083623240215578455472529694481816871250673670560043841792987252558058052880386720254784194561683750227809739630039494478959531333326669001182303393398639344454622492166569379656244587519285352383613658803603999751587679087741946621826516542964520224748393162867475691376387119961328218146998320716096109442807925575057581804700255936138821019408172311892841961673241404905784434545837130651935699651759884620676777219770104179380543809134578179567051236764882126223904298931734100147306117323780943464797934378787744595260126976792753364451465909125506796130265221083562870801261197207205301731036925777242212584710692030118102765662038624801084809658643067768988411168069959357686470584322719843959189538415176437835810747512930628719758861008352999794846063091688445464208916761978494301649070244656942100544435262109626443055301723048135739996674945085380328705339329934404236653871643177467565128764923106411888480768926186492777134470910526422690644093389196107798906970048960410997891071311830280913784718498454542577452154693952722553162372223132095388601251915893650770928479118357026721817683954327050420445021688346114492906572558790922711428196319790258864707244868888235546095795769032657013205691431117682947882500089980135363841219232120771071216871290246505177953067457740146753611679160813718935203307423351049677638690949438876062630513412356826489412120554164653446452957785412339648267510823490179067264815837773245142164597256098296477485560214352749053545106902890871324392607049555368210294085528021066828584105373941527950910136060600065844523457501355365449699067267533447471320818576416867383467597383202802751788292334648431211132836337179237966212142010815642892636295331760342278205238107047066856958997750388121855425829686771077526703562997387721735327166190932025937307846583000022411699336244174410833265216468216214692048554231183851586588461829309879670490509500235470496486392720825774705884809334761633969443543558993559183625108112015833211597808560528518672340693325848684329096110182661912526917507202352615872059752464311878620054399141318576239696344514287425859054775829466795081938652532588122554640393588834283926862556653203931082458934705214655110492971103542317458702596991205268870852542776596926195445180297144535399191729455181371440523784356582590200716748982997439820944774067652084367788792992146169764099805028780616209072414313660903412664229923013618334676848042523374257310752021550207152085325484467911322640121230497155597842175003215276654684381733106172357204009454249517975560386488504758034991752751987759164367764567040093915565438501004364057441616142355555682324900435670031870146820329528903197524472966655189538434881562287961087778237950492920857981145901313559514290985743223355889770248136064441629409222809100765799785190165796983553358078352819198260247719488779001773491258823135791394158792707275862624237648985768738772651182684953148332765477954244719261421439481992465679681196133541880184306882507964956785577919176735081199856330372526574460295620016890990533294596514424390606673485591381641052901569274484321021764984367205249524625241470138409521285473167220254417105726644548421905035063328965444715399229868345497541487163153051140587449788459484785086167669173089680706098746300045749261596378227833891513283689072809815468280080495107387908909480144624329589104552188887740594177291584276035895402263873150974649646719669570846993604272492913589619155772273549433852492311624873285180119359076764892928760481630944726590274366481881129202417719269827673926514594061381715339458366306792578608418487976309989941894786801032710423103595870312768451807770541879465724400750913943065055617589772930130932280457969529365050138453885145827117475448246436283281889393567422810432739181509245812715732647768015412324013893496185917863643370590342329459554601956527758481897202870583140606702652401606267287478096529167365302982797421966404645424888411691938925685924338479899695628032464522301169435869408781347481407132083379668934440795628213481478216048386385101822157203197249577114970417737374658111824792062940757560116115292699563319996107549885889037795288170021802936613735765498660036438113111204805132839508478170039659549376369716911056935602859797611913833290859994106026281644586492020469307388964630036837798540247171224312242487947095598191032940388394252352797347119454824947255216509249465266734090170015988055063352310484906048919810813304227362592836719682458938526611721745703039128406278725685018854004525873203742637475858663073997625200077330913267725957994096318176770920131293422071754990674327040536983619283167982017110002755966718658844169628139640449111723990579627961125968978322028002282981827366947078948174675313052898043236680871568504123742705146569486852829022547111520361781018041555366997500593313528020126453475861296141492413896839383722185301491616000986287171849415684553264154148110589652916581618835723797845992689283253046004053953661415724005353428385273184962551947491135342006629118001229963013708169268637454676934896862076047362242102168923305919643388935394545585515065609950849501156353414183788529364058364622357959544798349973604472140502056655261059409523049661874933899080857329365696844796894279746553697681773540604437055592527271519761571300438496009513736972238700289280850219418552022310725142582378989985662749810217275701335191514610618839581950680967344683866950681846601406358701481079577493588176241496181736146173732429022861402366341891037969687360370120711459722073749099439638807239625034913669218627803904948578626787004845095668550570302107773359813992215631465165679408952439805986172565522809438649562681951119102687097425386268747912361751229617594039898741892456071382382979226642717358108981609487274950734023031817383549595558633278512276638192555543720649515507147600493312452327961794219816689409725745849567886935784943969773635433467565258983573258760501378063649855578513008446378259798028173374879367125837789756128904274057927752757326365728323301799271076679942115320641404833679017435796889717137649347005024807698077799026486604652785127669165659706098716980090385533119393839525105671375107178580645446007219311758203232704496973154614733112883116449633934511778850865072757213604634738652932166595425094070531811203969480931708263110401376781112844582282054611256667317455416071808617614284954263971078389689200766207834167427670040585716058528791006991187050418536157748929308450302438297313495265408707667904357506731126529397912383282395269456344748493212474297398344001958216330581159313374342134718046590777729022124509903935130478522610021588403526108444433321083333030279093688244465399579276587918257533521231583424923671244301565327936613554159909529353875875570967665794955020238509109591795529036093423293381929827335758803307251532566162839184801890983532644146979331757817600962901351711319411615512330196432081782253403110990254308663077145791989296034690216479203424396443127487923419954766000700594175665101093646060192952632257988162801001439557371051579269010390683173417611526007369317610916140619061117852268548663346092540301567209638514007471399653250586431298966174360121231671673267031993016246865235882783222812926294328227624866574133288309536710984544917282907629485027478421033527385889991779653853771053448610914220249951648590053656730092854683770477663959807006122083737640372851005414677699901236608404535086378435204991644054087473126906582344160896660237635589453124619658726302090830580158368955702319910986230806110783670950725929749601466612414071585208305928026374830214576544272249197226606500961576230522717207614323417070591324554697180182233885993539841751848970841160487453251339792887742187025146669892663806832155989274222441971660010531704490633300119715471020801488187285675933197401220055001433927170869830762570357100972991323790626009447855779015444722872972558577244980771285031903527792734037214495441137683820373491345201932629751895631385224614814328174029985993787183289460264295277504079198516207560791996983988515496981394180830482698989824892125895557146918584061359651117995132953152914242306242900785099459759007699593022613221224808279674350146632534763316785885304955496472304660398000301056187373863517967594386592998663713349571578552950815633539432947429758601335676124205168187849217784892616693136028838034850476042581736242726978549081038120128665460113017886652068478181058448618462984239897738724094946189843448333136892832436979143072959532990625821138552447893981832323296010843224214019057419707723852304015923401372207703322370501932080227352338916886667619439715569583142029234449017384216370652869809055538283749549108143310151502071101472686345130935724662774079886295571957086996613945973708752207077420885809208701258667543709186070653613018933751727402971492655868789712332860459155921882278421408706993266803803487924535616689522447865345646439851500749731785190863509257503247970467468123379803217384811291695247317567034261804762065229934873374381574665756557343630378434214417436870134977664101105869700058048150883078715517936150494090490449133273978178178547642092590607038850869357572814047690429198220558992762814746548437280582555484556178883947374332783171779345421615361381242231848001453839986985364150670365178282013426221789502469900104158270204393616934514291868073176262096182698052373086511266846275740011113619085975035114959998637718623784420588992794952309200752117091727015843809146231885253527675273897224580567046358625808132017285123958775989621017115158263940205873078735732534886418414723962672956994540882535041312458631680856502485080991085519622006154298114618108399972374081545264368559509913311372938265006975214797975822612225215458976221026091673730754344505522953383848722095965703842759144589252286833675508744449380751093609229035229867688736091829287545184583041328250143074248958869094127026543036177320230760415501752248942239374217122407784000431784423588161252616380621183503819215208838774719853291004214393896442623504372638428955955627939063126263095244253862011927481274466123038636739801367382992785051507717588455378551718313485642830581866317981213291095062585680324982826479045533802707009825694245840504355250994501586410047702971550345479913916376242025932027234442392833273029469077903952395861190734166865832925557461651949140716245180058980711113662234884298851418194850325842783246096285481191632366929945627816439108911643041538872973082196996100032281238495152083527099757725967271301821371215124759223450521310274128592775262459481672571975184567882817912874289614306861714028718827703473053879121973098741752149755896117893906153614721885469328159622760075574734131766981694166249652278371378092734553671106757459729145181325934514575262823701948817097748143860059775833759551105391958467226764087564923281103487941121381615501750792899037157257604818104999815410265979523582961049420872513205385210546714163014324238948498615180695836514655271852152919713060295966395305704302147704095622071869727252858942536218545722023531614540405813269993601893525600095679608042479782973660632133163053096583446412538084849586220675915265282493107616091216070892363950768115358120666172753570811370860396948961870324713828916984792966613601664334306254799684068735508610835482261034715231105048577287732978528299535968499603646785606405106627011796149361202643516351037935216244396217191840870578611760023985747222576633646386333578955330450841889178298933696141798855544670507063047292040454715074848452220835236763852508443975207621402429984985686530099053869826613779915503228665124990377053708068078925940688984222542845862089539133830508554261141194094956681798921171218970493231702822829805205924152593092429501568917163999818917547126248650249550102148631506657657307999366136645510036271131046428799969261636006095061521732765997421168332313712688887605294407114649588523267467353236218330948166551982453836542372624287371590443032089107064521796709580599062899096643740468518507675102886905762263926503235371081738520437123558779759241234923481399485782284879153709260420098954176004732272768877746150552741432769361990256950747164741867844902274912802494169464757810965758554761551353833741284641327717997261747184713908922394334101301788857763876953472220329741357321768137753084646557881233688303155049691876238016562459734972856849038139537331582190712277591735533144120162051352335429464344006543568582906943751715309692990233664091803008493708037496588322403170833105432003242027063899781016160174868705372156667698296711190043395028025615459489494903104990372475920666843651060002057207289874663406044182879253436425125001342116262194012761493732227597709692748611099515119258730544634885201836232353760950767688137975720829305218697136824272744671257208933728714442998746536022493105502994681391126277920029080335713676661323712938257070611448746567586120056714691302113988912792665903350841929868603825417471118222617726600774655925728741575793040119016396310182830612290775202164745201369482109344378876555669176975675787977282912421107482633407933534937220278914791788046149879221697211429271634995783146602326000077430981713645903891332010127043123981231534956889386469877793074060848916288559753132158959423040836837917483190754847019128176027376874562662590926213991602468353050987362467254620377519907194709060711791974674594882222318237240295226479182485608660413840878384429864990825218927054657950072526066312984450930388682045875532009248208264075799229760138734855400075010969082013687635084290600736090028107863656436759310679276513122909884365420570618515356041897818205309813340856181208223553295487122576144141101236539409056632078937044334541578541323068883268285996178188021721773886221179733488515406337176907507425224447094788623139508315014753999008862413034116005094808093555258190688538160401663358109014821529815915194770809303418730882464947564455675579291460253010442502958893549171536088018349201222893371540357035527055406448042638170486085365732551054669062200538177153895870463072412493236108100617617295838101580286065704817174976725781490794009004099137169610253122337574626484701522085433131907019943109316170503336859136551304579922421664602532052393789553675923062366890720004267626303404286796789440782417710191425359002728151771319677421489138866628296135152056925636086013168633679145065687162501785868941734885648303042018377520417029840403925317856626157856574047022522945021351069182305303518181060721638953514098373422605518941653777565480261651477695418331877558645809173168806690312219024780336129621196595949152313578213084257453180369324808527531166739646408650880429354741421544216514363577248377204515014799916423919182784237263262772191872717491084110926312498728426924746809104517931323290058935354967220060344668685763859207858962162941705541226187837150263834708323402022901055317359618035079696555929420477222892619991263383408456885052669751536941583342857647383277951158759974961557384722319366954903401096129196109591781015774348005846150923892489866657986332294792953186668706990413639392680927778780610422404932493828788723938269440803970512636240374586746905072527099384124173356844020117059972988735797772177918573831120200566774621340806737777816001606579191075439234850096346139291730146778957475899550178826695403638828084808031523800370641484517918031516591144514907998382486155209624807090893549878397040285058838389842197487978704980205180068405684041863466518692868900159536505315361522518654381703311384155520707260324185920539110179772179995679321573060758455285313424075486012562067695790863108545803338899575174165516675807172112308448126642264637618637108673168243502505089671727104476679514185540859907241223818866945075913267143022237236226049063131794646702982463053459474595211737614711320912482545888058751747076804769862370856313318851915067743388615216395371103420742097934131841779390928591762189958272827278615504828010117089509285225092560960883839930938421474302281607977057542774948157119719613213577722066806781338568457588637194568474150025487983882648829711558360794587517852651289603746963689455901504632757535709379949992893343988622208883878387836475885150208438718254362989370438525243599266033666431732703526041547014013133823311667342292149891054080502664984254284349826467904732286869324212418597621890325348176888360547572106387216949704567407113457843752292580699726981038078298471058724925354042264669250009884623283911867100578394540060743878257447586711150284880457192535778721702361860957665640787584845643034779811513199629674394051683274591897963720907836525480495866867349817160114384248342133634246853348425351842844878937788651006859120258104852483435372969246925325673897021992012634468254890868200200957761996781301625122783347437706629645814644990348502777713067559747994080409750042826531347856162647204222332208722308019272428456557688001789144435092295080779634514107502199355499737298204313578964819359359703630749225614103670955105773308254909024798829215296179486262093488287591725913151018829771231689823822376621020046798397835764665551737203557356701877080110950531489486696834134973043140884663204477717467064008349817350123218259629649408471788580977051866239655832791547741884194698969060488332797974118419801636414069272907993626694276831541360128685155846645185178352075720923020461071600120272771123138094192938760038696562016684614956680238731407296579371372303831893338383896350317524620041189995128426149226354845907375182399304661235376097823292578612310210655634578910691226958739255399333499736287524689145843566252141313101335028753656151445399125471934107784723501983642975268069709404338847499880318989796663153838704177579100516327735707894676543135674248013598962231346506906264459727460233713032044064925845982174997375974132037714525565065393738172957977628079504746272759215392926727224009023027750777365940951401554303060429510631301350561259448053310499249337558155161823851585766623445085862333049428465772307356569423645114694013703656826867387459853272289766351981806115845678404889260288840394657330399978011226402084569233688965094159284182818658919001121154264277527674104439498543739723741845436282490878051707793690333870330317031636749578249669358747814171572631157401421989846865216022696158135669428208052579535573803591257263905922143800425752271289166727099269822453248539769192399778732326065172250872883554809663420715825033579752688968496158683629900202919332681853718915901174282016355010397312346027941817414298239424731557361498883983389806098952047952085982457989893571094359477142651597813712602080672798112065499117716366769975678718507279465715183405794385427500587252567272160849945005351470222780695424885727210300061239680151715381227773809632790205912954760570284301392175097446432391127876670242545535152773372872989166376579605076188225040354046043474402794997872771864918721536418517439794707594414322044365281121644639652363980889364489688968759454390337690368109151138566269541286248574232706706908757263214086662729506071925081344019496229837420354842322215587342279778383641318726318304628090574941624333265517788329883775314754059392683567372252031591046488189977281981848068872350182610165473025147513180654417970634399539507940506900941378370638815835966174859053862438463721218228342156131133029680370109455281541466087144355979939233603058291641080373996732426976873628692057673846499442496378218408679787677986272100379858690363272342788520861005363013191449704548847152670351208254285760935591555582877221842557698625478361875072469639883460882253194668307101137455708601445495464460732592798249698003492039221868527270738968338275651306771419237131548492073648434369289622395525212970133230778783556262377892728738514289353142835967974845932436546946660024495808154882576345275543714361786903160641682766842140296837972618589011737602438187639977272845520692834580220445638582023968415708076308904211834977918809176880664126382477404356706734838206175692780967462634505675068814084286329660525139270814548472973679914591707517136225679105452103575231866833800987724453114101881998119987128767773816974473740261031822537295938920209771427632099735598128236180573622436328201620863182268080282042792176966160362412755097093630731024600018212832470693835275914724905797102069362853430927406550016992035060644672138181837053508342068696859932470138875084248582404957721380412403079255217828425488587596020025216173118739894532199047584096253639288842165618735106162491380704164768779627441824113889949833606725766379256576728303128101259450699811773107019021475955033670576067785674969226273900680547129833778860683084405212558351062796186066674098842367609233039088917273126133901061925856863466607105569058516278220399750590716315885445000357590778768511626048655833792026590317286953766250413779219193632294018460013563844843580532282368575001773405088147618466884764109830969644083647456578586595107716183621226977411363713459079373003709268655440006132833809504153366204164506167939259233602312788673561379342867463135887415324703860722512169951792450823623358810893713861718841588150863461822299728340128774576626138008819530982032929774813096155003308491896798724059099886209968466280157870845436997274638188106351996472207292043419566018910430950562159320253680028133039417463650945439448936719117578768285890003667146367721425286874459630515496961849918868089196519173279454701296666586044889993939187590948322072297299137620053102509045108914564395954107462065440513157338319696490911349533792276525762508265658332732145644682379450673564653114393828286952578593131524314978409921286794514734723211349829740481460583764331998645000138611865325991266482221554226027958081989879655977698073146656550711843993992649099761453620557315136567756450854626083079014575558317511091144625471871223141303220844030142479827262673454233872063635776339289237084106210130771129707741122742829743876524411669781879282387995462305144551744861203939469021053021391264074966657761074607002620379306583213833851559855399038986240872040270744250369480254968964538440936097003359052443825374171559673462986626284589379540302237978108076443486383764393150565973165161326434677526979214368478743998204897740194849383169250439671598925203652466851519879404885943420956756105579983096517968648380867533772090402330852462168681200372202718080298780736998268912688468480868071349055985016947915337510534611446957833528950298016934372480601572508034788831293913069234537640019825608950983654720946012369684635318408319933244652576136043495595292152284647079500914131922789483582998565727770842528791078466272995801601091395061455491337019376390635076649397001723665525738692105037073551478133184673418381548863792831200659966415355790527708662294246731262967014934196224339569910556277252220277650254599077373603109385206773908800359183838757163109829743945327497871638734219104895163393471835115666534250292236255018746063198636369228981184492944486508156502745224329188419242497593908036650831882096287213021818836737337300412768426882925614207683243547511049079022023515185159901275537528852502751348932207918172431839790593056009722398148918620434280326982405462630253003002485600440454581825104905262719921850997064744131599459557015965603921780303691319232456819452091766551588789078503556298422368614774891692785974816207256666753050139345776878848712704314495349919857923816775961623647230378147276164067809394935092818841852113968978748912625044865967991370871381094735455800822970905604783603582190380271770486230695989118766479015036331109247991527666726831247504700298602606982842374421951418065098104131046543724239380674388876137651710269893310928661046211625290047378512700159065978221817310820148011530465551251548037828648404529345393771687381268582940467561948190016194790014632490699844351503371362991684614726119104423913012266281458568782814016097485061274088570421571456816718101667197761797955885497137826502117729539702713513317262262999339014878852618168988081311079482101188441895177686296374677508089858704799027624420748166006866423636718957768747890426595712192919447378609161548978939429274993036877748755318796282217914271134678358174248368325164015923178693400189167424554280158373395216129173513554216276131866511329381891124643439218035132564975069983964239336491879229492382211107023696111120991252350052161692782123633499452872730014406446317115904963392870777949409401638098758672457071142999216686978842827035622046584233265788932692691889310649757545427550716668508257385518008092155306835081056423115810565844994297212218943301287992875893773203171292875201413316272689561402120410939474157675661023973346727161772665991414587042647148221784898902623018479490892074642301555715925370904832854295200143825352805964459194530888690156129355352961471235453978923871549009859665826731506415826461281192109012785813874846592236177396613719972245941912006751334669349314257867357562304500561628673349373888474009970028297188720366578874130528382383519936047628050049258768341337959661568710808452492465067925352899427005776644989624907915553044852539805679404192214765461574744357749982548480215851483440289620720899973728699762931438996249152941517265382819983673813498996220456000140436782442456774204397180806779530418320618386876751647509387234018862122148849332992874526088111161855964802324583890157632332563555503094635366896103828260909039859479821036884358587809216944102229088187473713593395394132431425449989897783924494704516570258048553940388136135089561866221249513260621277956006218766307900264340672275890231677583045299497388395645908544212150499574356846602467547126539347564721819716760316669362631429854594562667874390377869113471517926445292684588475220820684223199012480274056933119428908870839769273177402754005019727486051872652261309733769126373939528375433177025899696487804618554315477081736752907047031546634274482568735872690547489374548550103202020938538573129682793487260100808720127040045240806381629571477644116852629101853144221166127731007897073328417841113696219677326951171819660866446825174801720998593093583733740050485582621403609666864161589070795564052280302523416241599915752537536238940437340505210128529473780116045530453285800723312881574462793938188374263858088307307997863834893538300289290860408286278487216397317643303136642658626445558413141392210475210875951543701368665503959701426276011133406021464409932547227906597872268970154438690305959983102971542085346753676114316590771606785376599041853781357295575179288672557337323496973905880015603342831881172169316495407124667929064995715684506913336121078663268381810711515635255844202070098948440837552840008349090306860353557503609792304028275268196196045089112269640843038358660250944366786036535699190517481141525342387438233632236293024491735886524609174824831181943665571255293563619230539084186083503705473774242557845907714605986524630666367598231998235957618858684183449609462019884569294074957990954965751277311911094770604416871990748643787604662255703608739606929171489777960631115362022089770308954458957554553750147239103096128126955453809341071385154576375142114881443408455351307121529818831670041751358310503504916531905274203827780984625042386562541441337230554400839663388911397994742943160391043239560817426646444351234654628100214161293993574027059817818839614781061821964637650555158346050902579008217024339947299633101264563510067085278582054741463350782894942016376592428078038673466520479513744331518327192804658569499605914487688827482852012018738557029624917945650792906076913070463598979955893151415851848237003593077640442404061663297886297651512393272512998101725594201434480722644037443704413024921996350565272759210357747579206355501593598710615131794260384649147326963706037934306526501920338754408362401675331185271438699438459770624854493909450571006347584679743756519628763569477347545814721321129823578529966283027450218309080221566449230708303001223565337606804323089651783822195465081958167072166904457249566930160985011711799955873421736790123467778010165736797329953412263355240199584783675846119306549270592859159422337368665626567431452519042905620630957384033488727524728117566638513219323894278764445178039669942341534688268040167524957621079083749931636433189130164601253938626540301124535653318383592529197249282854079127797170248653760033197399518347241476193281024496234122673281970110750947798264444807812883440252373461038341798358560835908777117591500750343532919053634163198338324174135957254946968963806291151271891771340760949358747415274653380545839700605805265559434141299614175277435710244625042244802705129007546541819368263178816001595223755187998018180016375101606094680139939685240067954990301881215757662044245713414125102313404947088318634781294776524670079133003315418977203525654427490037965380864478867958498827485337889324396570763813388628936535635369734583007443541386859360084798245834258666188922507021700038128237438466967194646861666215394423515503149918402622361268599452015399036185630468832370414767449174297018490778200840574227667483622009580237868986685450191424414734412121111334382561615812943154952657965605864486763998100078980198335785866390825117086613575889381731844767538451715185620531274952364728795431874121405638120862399418792011545793371958433607997692115885522476273976805407057187003049711069828249772070038248036916235840158389062106223481411858628611877399410424388059579951271803655751025795643755575073137308870770133696398890905490963171784049867951496665126100645746405804184169949854524911165444157276561147895598718177317759789579257061256724387496081829602314539890523171835074696157466847150680914674657388819984317863209956842040761388255860194818762806357829079614258384606173206816673113190219796402078495631983087216864756122523192972253461535740817845030888532073261947621643687652317350929358552343927979240398150261371758729414192507250312956274727039640378554289007751753732740431934518416849556763383746623047018118446005455582782344029667447748111356686056366177490878685306135730220295310819147055821972566672229504222607473924204103549790790838885472806581488201483687879972295156050545591887475623505943515148951623116196007380050302155076661923154838719422631275070699450160681607188535352274135244464889458639002786104717147201595481611670302555096739722224763751132307885638145747016168640245080745775039426408410381631046270036535441779695999834293432117476914120279425790119954354247440835202695183876427523179155753118508247203998710339713782615947150108124433778585172582622970246573949218231082200708746735744182504831864218213801250733177649787307633049663822689006744299133319668846503816232170107153483330568922712144620204414303126936086092815571953649843249474980860302336322098849005955783102997191775630177571089137950846359846227608692435812060991925426564210179015158637681503479836456987080452097251837375127676219452139585600776097607661485705509952874523997425233959177420796639577074737170028598403267136956961664428754457341671051434947933868029747451608943838122557074636002268821936004194280896219975578758166394130264277605747317533233632241157790983157046411506944336861085620646874178635136129063838871232047424485452797937539938120341503685261709587416802839559603989448392335945051493409007011761047708816761295800054667492503388244408665401924831061568780424022410077957820745549034929805612977218919479958451189768690692362509521262702024156833012251236927961696485528765475932672839604765576674719705982271926095698627347974206081068689562707898794877470311630561049707752844316930788635072837048471931478627572367013642508405929997640068980404945349486938111714415459029163545233877772455311923236941711978627763543981635390415472332182562764827991506139376061424301270803861800029784559973267589427135747037217375687004055903075011676981623439018317925723929295884032549741523277366202837903208382694805213098083469470924778785159555931952249749390915403646578597199125912775553021692677811290992833223582285795036273838459170300381437791808194314605474777895678972401576673049321749124942680492259152462102327905913361078273867837005560677587976596014999811658617542523255192736452478198862353595349900092803707515034274553337908037685381164255313368810916823591890773353458845683282753656986773846466557488742921851003274763453107033975074733727969461032523864277794753332494804489259739480014814373125151757570300062502843095630291498102805556753202342911403145992904260861491240019663882514970286040843963359237469701900664167124809993071230508497162444908694957853093688466862056691454540012283984836836836989230476894625106733402001177473986198214662160727142549374968441176005742926468147296106413856627299429518366218455921877589040738135783267359117379654064514846358151609709902285903806403765735380951817715853399712051014891306567582493716162808059457501578272457337970958484506463582268102865577330971954033117419159927518813344291179667577230968644049497537040520708068412052507545737316655677443391063619273998346403254572045525381799335955388502951329792048404372438562415840033933911896605336749618910593353416117877430764829814454772632986270106168428549465439272453309470964922532818876214881599925635971495588166601535187369719306030838169748739275608110435878835518099550064590185149111091125267388047794725433955533884761368595255498719708602880073474955284794291563919172778548709352824841464343320445032018153760179008564773234232782205872955003096599319142996457253261540164578899206825538222602138017078698402270204836877982066496391252757775249323472853278938123108817971544659363292095153034547073633382457179762601892149410445232504969414414413752983108019946018560837796524237575573003895460305552197288431624989761413807418794234453588530105476305970255252859522267538216900360351611847115922141168600712661956012241496614427614853562370860339543499625144001696457961639258993425361117878755445870800567677699303626235699118420825034709370597445349221166037901024529255839288103923651559930556553442114305858921161101740073187980226924371710054849224677745891061673060263762470303164226956644085883517193216058046921330140610524134069500939086121046723008223741197948143975616722654629374883869031890232033573919551023623101314628589045258003229607072990779750073220483827820996638943520117893855155192900217617578146214828309723519778287604421890270638144286571044190797771166690844327336714056008410529301734846636237700662237938684156963100289613117688635304544130301486666720522359718564250963975554698761567396382348287682085985173655491400099284481705246876283802216338923403524222068486797945774176202705600316567950275933654149812498123251978283311301525688558269663503512587720739162036206412781437176335158529349367328515766071829302085444623767297841025481361467906041580573300346283634000433710021304092736906916005130979485913514811853978316486381454927779076195978844010596558491194811732438893903772891512982795784589717020401108744714422883952746194297891511607433169984861365827964838059199588891727725422973576537194983265747929147375254055223231923159261764188544393084079377193266585143492666481878335894807212716430993321686638203455426353065894907496717047810379203283819665073352747418282462971521204867927656101306169749919880417010264199656203447575186650273001720711367977396430188309588331282480128178370366968815402530483584507780806812501705064253441059859647125470242910469411703370679517606352848578053236774940910764887944087222820035409635051757183434950540701301293680313145409588308271891117341244868691726334577406949754797642772456833606404792685090871599414660567510555483204632717774506607098192838268947677292356736263421967794265950474626216152192578179803571769080001473140785425842075727221785777285483417676285203441751736900120149460840053345231378152819743239275698183997409331211728621356367867718084572515297132651073194593817905771119234815350597215568836161844812745667098811507568815081524102316491396340300560312273543588406182333217602876331695991585120847087523183030508008011337208706718995122369681962558249890377553950036262237141291650352191583048038918775766915187788051229743385729058603716460130107139878588598876152194050434270680636568231375492209577644189459816446808644386876031270220547218682272995206920276337614228113057104117876509130394764942711530722833839589597654463761903703853511665825857925290395520448976476650559151779089967132543369072816512974604203862214735600771459519568045661700923936145357054844914579179737298845363890396357676504872600855025581344801381721361712231498230406019834044201759421859588345810026156646704012590007812154225994105741675555036177018776252766708177797127104850275485464955709718288574469851741965903032784376816078785037451278707682415078835689454573990214265900731777724972485161664669333040730859817953161208804618427615910453861230439431164655127219508415101355870120714938548880402389993832807685790764911811219912325195833881971730674113781935461346663557026248484131602608974580767081014564032923924005629967698575140456173809312198883736440611620062951453363267924041444057248087864507401752508645671819164754710033465224006047849880968668563958311044116393532706825730582958721084495046268100109703437665199963083349729443764971756933758650012665752898584695026209616872418296963729020161262523486333575086984997903334550729283055113350593169081250299834981641735382889147115291219630796189526211831031734555056461935344704185425649139513663478095728982036347842264451720049686513622159862933572848867463956715635425838261793991864157254934670363190047531746257493120033173736203132661070023141310917724237404480048113017196964032185901505992967392588734619168130461641019930351525494947179416846981428519657672264334525629448664913804864968820813728107868406999684329556107328945126313635608983636018828930062248870975406620069750919631359196185969831923874881906121069793906164970006654295124129804917289534034904526835743978507221454760118876782660616720920112771611820361765992973153963865141824347437621952484331342398324144180088202555661031473277113407602005544699148228333517391914712806556018508082166063031119806667284197139368065301671282656911494348041108042034072772376154296878146014228224128845105385519754958024755479299731746565111518472114638796199722577814180508946644114070753788261843591181411173622182826624054615415573396709046203141616835831275472992789358354700231234329959423132545615181139924972544354885686634904998999464781028837445819667219508472970449401564327832558156003781265905003526632921671642988160945333980002307702147376253488445926147052821381149532943168215929462426642410431558574678128927045778739230986481558661006087320745162657866146850461528901183907205209881744011892663144104080622017422973203455093684330835185139786759941709016216412350045508654940864539780784353524162886091918105636257971455989159662819385239545436677911745530181516483554169636863216549957721732796180456692945582258087269370361891177722447650321694328982599854550419179070964634518794121391301678010375583434034963328153220419433788965134749035218550881128037650513187264009137851129271361147073289710127618173334716765304319724740223508979060344892838015626767105841800187008366690403638651421791982845974310191948880848801490804307631319184588662936175322796600584280996428082271879077152383284677053887251267769503581751541447606468440896618017018904262711502103481998889245590475512518100854409223815926281521255931308418972206842899094715678459650113911848680446149062368344938557011168647850527657807984548984847752579218640711670093896676396377164690391016347121627146122086571893250558525277668022855720439627412217101277343061881392229276952578507525454573407056272388749155908849279539773612954374597643250537182466476458326818987299340964427102436715719590856783942286981988204302839211289172234552597098408496779850588041353085219062538677505833363556929468866445360729741892411032033401255359768576591468659251645233608075936113565846327226675592562369647329313963947317759650772372020433389658314697000632291110293917746680840517631026133539819597085039416151527159539581057557502986591254489804062833934668465252589326430003123111959904068838432245945095797211636856404574713633031393687129460288658156327950924845009067950506186923463182735182957901403031219116575338728851057664593336168350833087684389034119328760682152660097647828753101274413724414590695422021237117396631544745114833985618115885664256501430594338927201816129793374534000149352082029417618789392711975390244223711229179911538612703359080854224018901879836038384907066134483917270413633776881447101695425024576488005149841535161932051497401358319895174968354951581766049537902605848715740077178822596878647385975511515956566332546183251799496954352857634209749518210386134242048468708308797118543564638146990119153253008842902473293169575570013958333865954098303634036071752581373858596995535646710072915123876182353311393702511469124057965230945945530863292878621405022298787598357466262492456097315836966140774932057853084677468981158565989001107648112391973801237304510209084827375422369145993037598166306446050948195169407634873000701111921731989464958006688264540746138164411869315936744773237879340446360426359279476201589057228024625390658673803329627745921630328186103526041011387736918823113964924078301243458266463220613584828249781331005143697382581672450223794655754159421794803519684281180341643080560284535028823957884207372286791550582123300121825549330049759720853764309026158772381069385705991292867307261963817312920569608726936469393078389705918454655247655144011556339930117889115916970806177075973594679429804924951190764464628223284943596775549403827304861865321046221787946063655566755117537147768178874871925058432553851455561806446137815486809337797530278812016304606408487281820175509906253458177520764809478720941691395140887487018212598989380839133113136698907513025877527846476681342832862892083741172862256425932236933209357619768346978884969672951991269216670145060938586244300249402436557606960731481615472397202697977918555743598105708560946078954903321724605179678850659083424746833783813083814988386396102078187053311890530524457485053575354873177614718563255139401407524201918592128402820266907495236302722789577660064599769497050948580951500944626469993424432454940346538212177479026471056468239637535818193436171355412467086897578656072086239672950487290463229570401160416789977785117234666968706402331097628651785359036530911141829634203175622307874919651930931137316807298024691131285508496491683453506208240718490629158063478523706166596915107869520245331895698778193247319754043953236121402610083792348183289088159159985805065136439462296081059795389439041710660963940789715370560724746363784063378969373935587837604200876821792249353984515037321724088876331270285663063204955632212295181923773625236925013375382297857471262462270432016737465105651795519275596022133775199670258840634386968726038231562785769312139157990175916992524255500937990506947154608784649116081028995021694735064318663970322366014148894934580119066844075462163963165199524626570094790055301929138202486672438957862172874751013375649345005973628253462113183481558161661010237567167913829268127957852223154874308300780136185868021319714742253932096100558555266268555863488293488234936296326188268229260228384610296186115721898457350004707656286754131121701471890403243185238476329132331228979466684925982925278733851141603292426804924789311135939097604824247692494747026581998907314721435108511758777272581806460656673035402038426930597482980012812958782164817156219759338100239962819192272007888102814803361468927716115484783589079788335671445826361797982409398119978755383825282792863799309432282082146692803522649466232970195594001390574891013578020134749484932449936980562666396165915424369927413678593031649932219382884723391754096175625742601319661889489714007978787540788657988679974546025623326546850671720756777169461683227177961583793811724004469800168997319115472479632385947490120987973010215626932643809906824715930600027799856250116923273662870751003937679087632218815143055456355089016038728544446388953807060520187960922456757011153582530136685016574897605679278221808104212758944802614201194441141508867206175629741984445365563640224976205755595583886685493609591656535570517975046880261225477677649405925873480458936356534308537472281532584770221760903769839221684547569586964287601423526243944413705117703034800572887203580462901431338475724843995217441582106086528292901456260152164908733039597360507778181315217532389672228582815978585854852725162432353679781027894849871368819102893483674236520180021107108962964453824664206957558620489887294597827170504439138347946283818693822925040818198440419859476301054897929426135638922680998992713993062238270968357213209873437416564369189163784155443617241139956641085867483356369262393026117458136674649232521980712512688829543482984183689534354861568785018145700860378085022587203759054104453641994505772219208607377473628894991698992346663291737924761672886073816975608638653228225687043733102144107371198921621660647267859499479518207744514190662272897483020268596047965822952324296144724864653084219677445352716088193338164109750884458915509564831381718525249461654148508792719505252825484461413626635740576120117852294192624650703706537445050110150186933721853758094019664817107650878484954475904652911049851064733633627865573563060221117417516814511460893109170322453101622466486284583269511670316739772290696710030932305568454764599009021298183224267287670318314865489082756296393254936983461136558907064242226865664009993159064777845391382066280653021601527997983558464078442948133088940726284363154699815241819853431004224932928780011661086448048684733302450920733444884135247818447624115536818293499099114466051632187371212236272088373018908556985537022144430977614468847685080215344823287377526654553921419366028299401935065614978119586154258423717137998795379050563762142903723376190003838196968358134632473712174640607086847180546545347731358406314447100257890208271042898594529053935956220647357523076973785231155691324714237757563305462993178807505574963757317790258106321718789360963723860243121637807008799845361998197851439027158471989542794946198390651436668274814457647776041774634847032119837084812029491923568517517230854319106577784137303508608810894817182827260619605796903064567583386347003345672211903609884685207632823315601919622346652942453097895349789272564001883444169426571279296225288167842917112173245391861983081250378472527253822896805162227003076606125386433854376499670916778927521933762672861288109489034738829146461929529247644990023874892524315714275296431951985776837035801110964115424418992305962618717708251228685483860126415102278027704974044463419103609321420662632064015159682084225481462994575800315071535764396789474518962141202898265920435324329395668725298308181123029464609887818406565827250301846565047371858388194505208625686139820726365776133226791484570685497597569481329743830110594427019162254145899232317603520595059322594006142841981316058940094310730440701047300782270530278783985546182195981242349959242192247426705542973553418938245910905639937486145893356306228852495730177443045920908404606538336271071698173056714991585959275832535958433596027740282776683085728547835826954918017953586099723690488610356679507671409212756259235012139259882189555019946043844644988941910153404478146864970132224081612633437835421758620583191811090863200352311511985693597884051742365163117678738106091094648663351589544088806009005670445504812264745646005743176202052689115983341994487189388060424551001232063695876572096209887270024297484515440724387016505756009381288393502262119610850492544833426342545453827139369843432230691313887362690901621136512669074217125046212346234039048778914196295100360122058924812298472831953229568935424683204886314549257756700231721609730090026500110517939831029619775607146938410551933778384299991714602179911571542690446850509665989089007499706747981420138023279824531653248962656329080490130272041939979756372844974135704714619948409653026932101287008547123712169648841072702247184841691294874998362679408621728090428429913359825562683763832917224618135800344648624340117540468641093868015668040887005450482255139570616579908359745704885846762301692323901693137869660676282354903815966161145875067960062164771826645455095089474058611335501962995425182822509478438151613031793934853065586658940930248544899951107452668046421893093413209171484373542551369699311329953016997795705536441111301432363232288998363001830804011306361739037310782472939472577777371249171993905616735984781808928548346578685746285173709092282952511835358864864465382203907428539670901472768595432920232225598991949999724592278834452304435055126083593064722844442257046031606341164550992282957321659642059399523870715370676664964048408178072067128455292769193124233161040939411437391218473933912318428801852545540882928623043747977528808894442290754597847264645589522088512127680930617738080248453188723296092667378010046616940569409700258897928475495079549047152069305574844512768715052354340929857221748915745614880410528379406314261566964288624484065645473064303470799591874034272279610697618718992149671109391395269853215690868451538415044262672568261161429554676594178165707849807299076820329303775876215630968694140244224869671438964163874309133678487091657657626770416223383156922521569967585067180486580477815007631154926253365948359089351320979465028294696938476923748698745046294424283294241502833808504574464450573275125578408960502756271246806793138642564699101635256711984927614828656961736702238086444086424802809433512399697657855889595356260069372099061157304607113005711375898269195458727301054809896427519988928554263322570521681315167487508755194343309621877533306467006832521249631907250030887208863371022445016462231567815663046042137095156121013120717140319185530389684478564631507038867748134031626211864960947698626489950014037472689207747973328743908896248895792889688633784324520140088202540720118394114655539034868823001626030185693668912690128985835269582042389462769436211541525553123823837284007628808659263157930518611990556523081244652545222624663664125072044142892403839900223743908245169739362145629093720727656317740282826275058213650470572734292620190415729448235096772154330284559326615043127368448124811099319901122737949945700098738819318748599665171261617247529017694415817453842667684633930721000103303622256952665334401119780033377357151993231138057782824853309252685600433229273131775999325012142017165659414366063834987298540705741546027053223979924498800530323188025898010995759642472813162120255537206403371440663012396508511527933346842471439299940724794036493288407814193504215216055149037365687348905366498437067256749169203641087828298040552716846905223698832362354799495468769164057678018444254138967792946329521038990434506022018732389564463631327740211415160646444965295269032433537617472144691973776588427199534515477554248512012091764310013953042394914705830243050853138670946734539319947233737285568926443660550960623738582090662908884473237345636507579513426164018231652224610460267193967980366151438026856838830819495630536862109744557321980781361239664552261137497158230225948807290926466705439603081112414494287700858474331246402074884003259998565987622382466862461097849591319455275399263360540322687871829934725706133510015218484205731103085068482589911075377902597759857864758531515038325631858992180167242258805849767753327473010278133867903320886039206499439550561132574944431793348451412608170775420091664522536237777379503567741024547354250765402692804672992874335446201777766641069495996161466121170174316470905153992791787984620778370371587253922236219652624893763064425540496138764190085560191215010481611411068430943827267929537130005717009231876615189855103507479045343647684351446699422388177389958004073969457651464004371695702931662657467640188629497763207313753739591336789263400157012650261433073942264014784433328742395240452621588168178474192097753151558954054025339217041324064670763976233262927272236197677579616794162864534833922136441855166497442432182232432459409273160071161337386760636752095352085792179401696937735597300969018480102596902097884719479589212281570798680992551022072750894502432798526068663581301467736195092078764977570180337595760890018272944409780367930442620634370161426851356320455427275158825388841399617485859648873083940108363921833361548281713209399296373004891578830876990019937933684966520605365103286796893614373659130330395519787360185442932030909184104604793291112239470454525682191929300478779161543918157276089419626467104954347168257435613276491077208645544473653530703211308980205171865199078517478470760465201373199403621571472057971458764165133650190020661985877010303138518771381927541178733778496356595502549442129345758865628412105882191957611485967402262807918643297100600487000443897075933731327012531961290978101393560796161172408150972311593956729260889748637422314080708370629799221195951466969498393406435899136279644698227807242788185874186691836324718400078777088324031173025165379458516800648438572624284619929623717252270390100415428520027284712831095196752789149935895157215412438561368711698363521433404506202159519655081584339440483978594378900393840265098795432028174373377411405341867419401748850990135598529221775643586039529157554788624641518665481014174932322112808188432535444418814702375364996749928264297087565423133559743308444385960236010283881667574913740163607676652904617991588564234264712646437427020218382755607797777930647782652333394754777218187279737997081401858548925844768088223600760238250931348452305508763615462253947487545567959795522792410517747754293140817851399370512011073676999553658763182542409778213993521583166140498890971959793711992465766758106502293603219994722042381986829278788424786981449001837967480829972064762047317135630905589835139970243158631705750740304402071520509113081526251840256681576853626349320450939243709573823113237441153522380252928206243810367873882047024813733579515955421720503489200588041824694503794827994528742315389068206781670500073695995991342443629931190774966667879140969629051133677228386354039944968815561635571336212748060674156505741216763930796177953229473162034645606955916890448701714145575831490202350475456063053549747911991533236593392931739563825924687191684772771535844962544215021298190391921480438708143448419315720422792058345375597744519912801593356392172172332114552685732579042755454115179271655477972220082207836571048476956097743586854767796579507141005565509375784545442120746493360327876902170880785134917534996352886382858527290418714949119959997341896302782400930399063979109563401503519862257316098854025049379642384546748004934675202617959228128744879344309895226221965254173221826851516870781450415638166006958080628499982709987823688897549111431729853342098202705369435381418860161746159767065598523398093008465754571499322546371398141670432486768470646377539599320836862545747951572067323309828320496552420979597057351403311313797543728200024341962314505348845776928195048338851981229477819676676057150263369875142189248352734876897639033631940565979777260204654700461611376291211423964758592447713992182832746335127134963269552525568691927427017312179112884589468960131270415369768257137445981465991464914111201994709796238912530575265715144348353087663547316576787089879975587902324638815674268082877135731791168160925984346153009508591816171542221910800688015920605025125985600734727843765590099926383487501565946636274691757122107069999574155733142983228275147748454689697935430421362389440536328949707815660535578660044163512108223760906583999705376374936116508212133236901541305222743032996809255164229858144323144529934480210719890739334957318614410338797469139353191210650108084151428051993652646621958411442096909440776547503430314563549929778380900896510081900074537870041813488485219426163130894028115419553390807010480226269173658099728172618128488792676805265864734457575105661720962198623622485188556066216572473591254465292122149976335860685103472326169061698533507180715120103061030380616662547190711569937722179458601308945135322495126367233294727827730524716905412402762646623445970473143395510344833485996927744574839859838003145833836054931630597281494704252350309059401963669935728555296473080978828949162161090346109615544547105369897265510337649458398916400728165567768265698523137856961039933346792562182195551023110427339922760571628633741478093228073370841848192064846695328449997825377989992771399172395997106604779467828446860890886891295734521645977341438747470753346295325312885931524849790445604979243205620814583522055838530656381571683719178900121978980168240654156154843748653521502912568517052278097047765455777656230805322185881917138733595102049760434231013442707526696894909757757227286612210061324121897054141060680637757457874643243484025226185839435458224983271399474105577129399470533353785669553627871861423306448553224995263764281246802004037038041590293042778550759543813294048721940489718551921886765957340666843824515159870748362410768411785421536582629361613378499666027136998652094210056330722852846996555450652528048216105164814871048777968926714191390544623479535694514394785560652156792385653740518073404853316863260152779894982685390558295408146875969419564572635690373973025808287069183182710481688421225026901623852845492872589957986356445217003191088961902694527913307085743332887754139369388051938161272089289013536791297282898318426159054736850378884370277282384270378026752637953944123713452753824607093261944600169327999274249487399060097307503166113796312922736787042090602852416451435975303204600021595082281261435769641019772496694275664829980890418568829335266339459615930488358057945288967132707035972991489296232068282900234507315172664643565147437050271722041144228236302345711784373392377325496942915243063507593849061341493900217381906938078581266809123378656262336279793142643686056624097856798977168136038059286204031163038891037798605374752388491732931150993603541036325847303187727084257487579513626257283191971025180305883817808023742613669956839567551472703972162366559504589584215084671075922595447094939529628162321589465327607425240502442667599268650679820319414448878725759312215748842792469400880411578049239541999495115102205682068339247540828322898398707680924741121603513264743296752099454087830042847193832908657195217419879771031287104470223704176727184111789729711581364707434298958665563932859344231430168552206134133899231488906442756353915645182036853146007906430756159158431776458896869036401032194485713300513642946262481906184043900892891992323244648313939792417215947998642965116259500344126061256028041560868876163678583174103366945462715191332146698891035496288253076234119120649915760040993232569887604663663289868423613232349380836434803804964518667384786094893461909244521315410831803722105158129885972840513830408947586209812256363040282807038768111308226803241112430280951033135795906047174414684913478784630165299598951065159995476780805321621411983440393647809213720851190302381078303306616454708459432812194784722712774522025157991815552457315199572146439270041551501708229055788252761318424763048792261480440800214532539403110727806869587524925378227377953420326539932635437216610901030059629794657981669676547093677791488866932103551157900557172266951390146997892200516660323161738933104498348170533917806551928687728808339033715748015392749550731324167024961546238108553124658781680814473488666504341064151871498803419933570689033536655885095638660300450500826494383015667272931954500814634759283778451115858880381383087040464962056944320735800034680354856416364648344086451369962732317918320530375872975972574675985564230973669437707106983178645724737353188475168839463894665052779197451986983233716000134187507245812210858156413276148949384772362262193847199339984873695123854841519600748233568798040091277777073725392085052832840609336874927645166949193486288545776143112485514420893639158178709361516137245287541808460690238434943241898091217992511027122188732332039558886855060636904967558765504043926129335131969222538361840506854429185003655303792599376603425351347326497397165072834661893924653475097132913393399736629195742203927897955222467556029518201818059946568369761881748778298966592211610500987973717320228945471169359223761838349973475989479446465162556208897403094377893703258443087041487568847803623734339773475186858253587661198600872448156138237027896963512107872804166242764276859604383423518926769875641154975566462980458269767230927500986982986376401665589119003595658717055843731904292067055626773681719404469246671499052559079386754539904565412749092406823735909605144250489841980711201606635031172476737580540650178618879684787417522701545715540390596969559114730282145735986459674036825071195493377174567768032449503908041132992460248306707566099657100048634648820536605787651116315221083694560250855854981065395630303014205839391813389215328201477208012880009483319073258557256532742862719836138344837707765274468719005319008261346134767417640431977698009222662169526647836728638344996891365969217046844628796500780576339722430684635283049964889762832013219994583435113791100423339813367157210067916864333363730470848529771679485056468253185864101943281055869455694256570588221682032241336072723109281070877157110154408892015234747014270343747603336269469266624368713337389817631893924699092224161767487825064724649274975128063927005969104004742879372646079105797580218314063986465629495121753865208846515057547878491085702105417542911098476338134063535046499854331857251570007909862527368072670612165479696462074101184592752258577870651275862716368853833808688936425409249966092657043769791833221286353797145520846795393442504988004165394783200566318088047187950499657170388241061646228038545154054422189605654321626969733708227080476569774774083915040132565901966159542259426330551856851670586116200532991560884425238119445812624431883948875753776310029976533439346177265645186433484001016331416991272833742847507020055730863543369254253346045436450425289129417961278121864259922459740581763519216958169668962264094952917314007403738175476548271268856268480893438595729675793766625321259824026364574803381066213952644717994466730764329108933927203744740967068158778043844340795114753015044082567908825375837354448513041798769716646220538738712544836879111568713372010274830173844987817038943385391945626303579531766534326241509513269102222785795391856566137281704896051578119093059377348016179476840646917338444604477540313322696897532363927423461964049791241446768762399173315441521546637555910826410415518252523937983889426054550138287950052039581616676595611415880601251374187686292175964566526795089355504424160355680209433623897468232292095203390828982022590854060966716446418697627538828149749942665961497893604268378983762056627074060290977423741362281750018525496187435394905165720611657457052305921904079274315197249964995605205589575328162540025939279346357140714436234419463699357968381515289051042221260037378294232109218308113087349674602437424641988296468067415964852140055288554912562706035303869692420531433994104739424108881283710969688063285945994562276468719370013290412494815676961544524529314280545505770042182501935472215182759451032135721236756736009033704698840001002756707088652829649853684001192041768671324122313490835882039539020773875139838421459406605639841225131290899446394965379042831434154033431191792344973356722944219908854031364853670273094998137448847554779028671516639831898925259139259024718734143896642564302763425667232914870706569153422291934860592081530189630800666936087449633064654105820817328860139404657047130803875043443109260592677924109179331628961447440956709866507876727823946297237156678418086699783664626073097308397331887967808929274706140259529002876404510490470680820054534957026108575294559849860707672274383408282768501473439926512343423754761451574091999813960840757347611861961818857553100322144993065907556485303810589679273357747156450825775187024183051157511184466746689840483554629249197845225245873511521207515274849821161973893274173051269920094736431953121889774909663702188979159938536330229893885743161714571302394431737188493332994634669025321796871881942451032477139282802925926716925460331221962836502554037494896926425379472155881546991509923812994601391403861964263661869670132449141198326786130212575116286044803659456629974146785326852845424092055458966655481419304672654053294298653771047271513635542348203484301758208312437223378075753716889534176760197628847032069001984401580735021860876004877538226654297753749800682427708312551675808965887700667744660707930219659104374886565534459830738471266156849333043773326811553448038159659865905260633999329106872736177898943547497413108218751595807371911162885967163784388899414972476557541799472251015043530561529142021360485255463794383559724340327285713393567382717163922439924882504534310161366912260331171157143846107243801050439017795358047217177300170604778384069233347529930999650412498775040111622039136479029188652394669828964156409601180602689547139821632002276606702042688163546266344745722288870507704417420308120297853524285586515525737175538715845059454655159087616988611750423946313027022441749233133902997981282005492185734833641801828205829276483980629054544312040298547064795267275573198093360848100203541441951616785519725731746722039682791671588354185516142195673034527065271593404199776933462980927682227751022336193064955732322536887994938602314967057591519540615176824523434927657164384360238057798581079938871550301751538944536658493971835439001382180567117620553399052476800702010125697264223945094407198296329718566120334473788968717779847733623834662864711634065293060807877403097870779568297321362554924893521141280533420497480704633411624171654427818590335668443976954366103519810351188380347249411191499500650251207911543909451680435039360799906498690728518487463542622583048964436255064312488574330248100043971978213070094414610883512653121891166802974099765455077271512837742797642490672773217021198028516949319048130571232740384123598292348657523835514410362440114587145465113765015250722884935869116252842637260531423666937980964114325984394521011610833094064488359928819187434660816350059413748275373941967087379023630499783508730188613755115075130161758067285771376862439960157463277765140046857714431582344784141692318005654087233972906070035246538623522579712021965200535363557623850065014261026741428512375697927398399192305806011684703889394296999207438467516468904089322032118094827536342152158926230109860003750955446824838248844066440116030740326738029910971131337309094547896862652943927257801179724326243817573544536965311645936436235672674079878021327203505327694734700672663518870306629340006087733833564360790541728240167320127568851704678355969799722271466022305541265062452708610038935796444418901547707132190227347333486253091541385780946243781266093971000153582212207099142729958150909872979600702216025413571664781189991481341151333848497051118454735036350514749435158898937333966055365579256225026347781658075503200459543431525234125718894814246643491677924164627053298179458213424870005109297311402517006654952210778903213546826091054755143354832921023440655195431453785035527602321854728438989537185863878720050827648284983675119854850994991698151459394584600794091219877656980514118065369008244885374054162980725400699022535752714191127401927951610826536121034185975525156232362472779874138110229089104419688978047918300529342857662987758020267231209991343727884728370322329078883804051891500032335655718357639464455938026208312512300670267586730943954785034153200983939269409588253555605767964703722308597777411420338735292760572895994718557061720439333423046300836350925378333303355172184548274279386049635943571238544562472868744888383709181857865314301449107370446106940108124804045374124834081186037328931602540654577388978441830691970950811160546746218547701046195971090181682532516459342107175029519687119620859667198332773162340917306204311995577708757974347629177508314367538299850011709446445482614448287274064828751098854388554611869870000266930223524905438508904738115421190973657786891433802105510658357520187421623152009312050320513144917842569464527682774538203136616333876481647619210537179219799877755222514020205462289235606602347216385236051438924344175277116843749619284930708174132802087710626231419513573218460122263549599916359952265413356104404876617390818390139446681913217511088369754331175712530706095323394934543749996254111447037622255566161441051826016650966193228413149234996862718192881113850281806828769540828893271201954434785300117212059636665363169683272848122046335510564221772490528908835394578047216802945725030451183166723208541388032766246813499662289608831405182510051367240732245416797055745728305834185175367913136426817758770500409044897670500658872953657794327774594755652094059042271439678884106383355738269747818390391040159146012214516386382129612848909001751928562076930449462327507860198702634462072168727125730739229056126602911345168857855989612522479815719168777315803859988155860042913179029362673541262285717835178231984699074326350497188472788243837418016702775714141936201281072436270959522311983202575695608046347755278801508056919958400881006354012914851091101145604508698282083481855890458311884582026543961763364097538324525277225689863274837802474232048277840814156449509283173036519641519537882308161220358234831239550938948131740903381490630076582860669349208079088731398031009454404458615660096074994675818097550168586605845578655996187778446846262887293226098936178889288646251163528546369905007998398175161464042430620346686505828571539366787930207001472136306582257568330572461139763372528482647860571657484432531295527333270927481377205225338546731717929274229894594843429051695422899023827774191979371019925772685161308912226732887062483975233522914548989787698753658488657009810989864924634986202854014055491085046950300835347476589463354817771864343189485972945753610587606488947705919091764700578998598777210508113418796989692036035298161807435080555558807751524271109804485277900678928289651899280216168198626060001155438721603341054063717637776524743511165440585039025276514080194222142289092436099231162712718950582669285858816824369496483998070388847838942605142935002995323311068833863768999626815802470829171735611453906850997816351704174982373286016135759945517800586992073461712855923397579944055642334925604892984659739365723918385421220101552006458091648909864325136188949061414407690173820020161749793971490797586688712316068502970893554690769846197383798547410295990102123599785449033169757291668846211689879914326365704429826842004526992185618855815330544639605282099097065393063041787362667749949409588444359813193984391798486370279204143537831957617781323585804442616197072606390603804001159231958141005619878582185864864606236795853677218317158739172865050211966380911123974033574510259583261952967011677179837008108626424817215265092889804907618809072868754732908440645165329915158976151865803312549419616261490923421561642029952377673918899040214701716766838861061935511242260779520775780799599074365848170675895283088370294861335135446497221554231674388980773416542987016981479346889428702119413402706495433655238988272523808225475880928087025089393699343852145831927020937690543397521470924625952356214166906459752071188366466027057371168516231905992619173158765683423354423715942369604621308987763595701557978492749701440395213774430387266286098590914261149063936659503157332442372980132640639272423422639317585173019435134463352238811033438468993749581095781589326796466544966045690601149435166906348960573357410742464037079073583200704831687982978109972571031056600271596583094184887151733753170115937595864569600537332657530900635278430605695845403934698140408303747726654538215556655063299180683721738417678149216186936400554440110590670153343202231309722761096017925669656805405665593632333521167867946553159010287242468078653613057408483761330676686492077232808885110665263147291228934456916556381619797863117086351119079673018980539822650555985181736364409494018820076679662022057453844802821752333015370169481294751869456144845777885004224504792434794562867603845480127061343469783965821061369848104280494772524951873716186820060010718568262468875659156338852157356188048250914688244002449572796500499936837475039617262488659659190561388423357624211772698879217398406279442468487628371656243103761698490173625390166284796512274998414532130673868623842972123654079317376966473200017580173301589199658988773759189342671225328718840091961204192268013292555414918725236289316254972420834680000990638735909909890781232551652134727885290677277567812659506764433003706989051564091668756454327100681007020714715046915243431360048482977476587740089997191583633700276372219290447754592720127637825850080812455010889900821061430697644115476766731886653889823962986970077692650312223613842243916705794665218714645297552348138951535121413639221421417039435542019590208766395608473359936204938577387316267653203072679209703562480803905504166113011702323913089543039127473578774123612993425327374739046230739690697737257786604838263341836466804172695956287140254568115278255320849554675539163473415929552015268114137956679829842553500637250586823449256050612040239410730221590057868123083981717709632447900126333667638371698508634369551047814739042672491857302244825372109296141585773828822415993724333946443827233280608296855516314586439595428443766638225167226664826921628490185332688248632200224821891129691217874287326917606707739395398335812597194984902695136255640713269407761589983894321366716848558220097795976258637391756217141608434583002623837576637962820929867232382107034387954411030177579427305709474771434575242261297459566606330788036092918588577431940350394975085359692703835604227557753256307869060617641147037171215876924924590618244284567567363959626498521729965835718471908677719059190136617478566907415656611570054161028804884694549476575947789461351327187693491038173530687752188046115864057903890427232868219965038490853075221784605089919691812949425292945586325663659627159975162599615932791980436716508487779309545201293937116827690292291871155777282817276401697899183110001801971989847030661398334306681595275244813880686810000299430231771520600538620397557717716583183993587052387949389112575461513770056049869717719780166076544916401747129889905129375786234638564205953926352048310034786048810334055817049600630376575048951876479003610950285727657270415465880864329711455432895586268240802802685634027698042742487949158036706366166311986225844007196770448833618652316544008921734968094083683847371231583510971716120966732797526001313571988825700444641824047055729696942126025179473857838280757123501087876248998479637960161865807578093676178733408417758708515056565741638412493808741721070375590870393617772346437956411725816456572006973436581288107559436738362082606419510126181874875226789943576483850087391455321188721935084097875843597289728476578481444689286119041758761852780935475273805827855445403144179369641266268271494894366082577587794640525974596826254109753694858597228408215421413532083851666631374564109168874583455670848340635445062872777625337720873618472832275187393018475595753686516803608754818709000129192564810684518511605888641419619951745655856903661563188065662590147399402885783730833897060837952641424184522971407012572693300183679137291483082478050879266913037458679022403884201612390617625814135277055277659272839496213339565667542760384567797569450216942859778135462437946959162772838855501684203601267457899086166282604727606045151165530895662636556968397759081141633342109661009792234836547283190138627095271202001293700367762245402202379885162335443766156404397675840578526226940672095503699321735113708774901941921076629582260578652687339327718719434098597504017738443209958954111807106865558632596524960906669244264493337394663979047906653913452628405897279216383130683181388512351832780605945624627442490319066995573005630647016414867833146137971900422566843957985687124976103377910848155177430179933529233194178857620047707210997206514880521312032967575877615133827870187366977857742201505671252785782684675095917664119801350060196186323143650100756688228917785243744948332901139770137710894441142403107971589030449809184886251951415981039250267607234870888269871025049562652851533115094600530313063671540648633681225334082559471858659457583629515431977390414739763128342606134757934073174534253685470238695714719657688300164863567172366388898769575311122699907334285701289033434940040224248533722434326079575265962484820830870142779436577669355944906531299931102187980187758257425402190922881120872688830520956052711163437386618341048287773067629566283752497576986423451597146098191404924864413104833908665577078245682882208051805215745539891822284760690390907376218397101308574084388973766277660511296530447697013784013486187482815075664567608524243335958604239488374274122796221074045038751657330908979834664828125479799631981863935743871990449278919782896750734888828530010463315342193564138018765148265059181661783456258084007927906646577751223257912830366412136573097196394224058537084523171709402593079338918002554080569760973950244702854419775091109748039473559725038762420637594684779824036301816939880645509475111759030113041120605103465569821464735119803371754738174106766301666302356152690349836268817861156819336470944208169146110297760011385323865422307646533596308241970116437282359907202506120010132781952945679747219288746160133230770057930312789352716150057197505880643850231295197838216652650663610076043852620416375404626066866149700154380585201792226410580364682756145829542853075150515938338979436494073300168812718201955049763255371112763174296832376563663217844088186929783526490044901796849277465434827485823586837430821686610944362634293016098401518339849402919880222970152595427059315732770919710908464939878662836245072699411793707293783991551062094086843952732342950509589588767743927914476997762119977261939663342552292718777095489540789977236501223750472553181285279508440487231372369901843901502217747911827865117476790647506424181284121725043551172847041839507328447832096058928871263809094557938724456195984238319197849622208542586637191881154120537810054331444955192365920656366633245382832010748622738056872590432574420516090373010744839400911265404259903704836618670927080423303204252943161733301203818849624529479634521145338835137408355655608555712854534855219832059585133846951898110859829944416273463969297109009985193506571780462221543689405729765212959803826209071152826475629406182285557490812930330957169098763727762371846811292428802920009258236773503283553182300405882031623461943610786066626989999451186631859103064221358038886224068841613269648693378080125911117571787027318444927003743800684004539085071350701452056921697237201360954511950333817098698502472656452084790332226601138973615565313725841133827971561089358703715843109636869836854942971888475941078227708591905922894004744649957934459413743173980891958493838558274330565791648010843110303915413216780752501906629380441632538303689382676044405759361707350029919735453273755700149554103261528974124517021067583743137459451495363126246627609078383218807458799914590869929692675393526979178719842856342595365773026622794969011902270109803179669372176297337052086793528758528786193127366100056261394012065029126070075038951681870601920399900536181014159009493185630503658560901123347871157120534700242796290833017704906391632351969395857318840421723038273998934791735159898146342862109298172409158412834990969219767173732935101170654481484741982704420549716048031702886336663398568381299151140094817948755797927207926079197456855843936214815656368479498503725727018404165734470354028267176743368672567812360173962856292415597826522284893443890783269319114616981431585025313448685097587157430416042398213551336199657207496565716994438615258078153479468117904588037441119355642408496672755102099899382402292950873286834610465320693580946721910562979330225056607300606690633228335150502652463918713369352529193497514294714337550900715103800540245062294140668094026632988485320473298105947034871026852301812160723206718216118983826314338835358808416581822702492105667920311028388785918729663510705179981090318727846393783123047872542229469331870097005882191263010641557681110114310431623933104548635330171016707962283991769615188153758553309372771168146880143364155482475783250366310766882712772951371281273928332808439500029401254692242390837022339698109315209011278539674366850772732655816924688008116351552318811029106900924503290190370268150859065652481646362121092710005924377452737766319602371121550705130826139153641832732559579693072292309859136268983207366224661040836346016114881463099443520704218073683736935497808952151802272629694689021362944937077393699121862300662982013714936169013102030451433791446272371231467597445170322893705347037243392443757445068563276268866510329559487431707600711864002485890837690166205320856991782939554520253054822321373689026686024216422798693937903758482259789430798958998846064853292914218013113055116272128016439106551130103407110076567231098381192092530398346938703274011978777261844406192736974054030959126076506404941545028479610928075149425431043428857824799095376418608592963841731494196481696434566189632592331505489552670459728445853765190362140082657962893251486790499190357496531394634606128537448515329322420058437383436586436717694113852172111053310042879801309425847416238270705020117156091015082168421522946596017184619476828962771866170750694856505368910642075623851765780920849147422918763453546257833229122922568970485844455440316828843445683500636073607902741258326807703020376805704446685941601706357914077799440288147126136572553113118096785175014413136757183168923171107899879412100055995288751477740141760867132169659227652874646077672513935968469733662708365982665324101798258910246828287114165852597075919105218332964306095883552615122847422975981638578881893539701091399513625247155709394070892658060438170605018853357773347914863386535925232875519637322832985475203297589125478277621875904635764205768251588169867787640219237013423420210797159244585623274524481149988708411213741531339498743981065623362924325060046271073792502389771522378147904159730334307156080946031612215551558230969768575187311260669327345796719995224707698457751360085939152475621852180534733134272071312970854139855123635456282565401628435201869869852090988679239217678598716070309555049795355641328970174077971417833752879912859050713039844011108648743640174904264790005385043616316556105741697716080796096328003451261164976389454363732806012588183596400735124465050250109431374928919770160106753232909923888086758888082442447128898124923791794359321732347796599017784797377794183124301313253035386998209814123511322121535550659972034996236523593447143392194252427210031604108976959849490918064751462866375490972445089509250998885689959554083229529087656122014478123898169574827824354066232070693286061911438410355971140435500487959622709392181606169819956163396104790264762028596283507579041345253330528096497449200030948428353521885908590877087862279666758892391912056449652310796312727535792815374488376252993540877377472409145710751922878656070264836294376092611899145435512197074899492436747301552268002674825140371196960476806609260119896169520271673328324565043873245099479829888665040733320498351965277943177054724572761200718375637361885588715334316110639825857685288022106972221602124031105237105501277458521931633103702942438371713303223516308051977882454712045433097791512664894361276825519939826768028304961631927393108087314753930170445493324514575041018120040847619337716173529338480423949994909876477209754300360933988374651800520574806593846701357543552086962613713162871364469984285030747424159672474486103948821202335049749058293140951420205081739091772324202819160807940710415177639440144248284209189598756527694381990847040858461476337955571026251714083317634309474305039257542034002609784071492082937017170389999418215946980639227837104179385770756924574902808387003951973906905300549210876875780397738243376501309355094201808232038688705185760366434998126024221167196456045869748716477200970567495064682305399331499120409896715670983743768766561104573480282572312828798713357622276058272457951298692284079301825774893083491087399380543554112374946721153795589275951753250352701460979081901219201354142680949506326015359288395798060537032991524800468311674852165139796368712585963809512574346634989490765768294285347211166384581995765927649557838677867925675673621160505004119132986023614881983711203745345292971937721365804722365242628205870808159423191449485764546198180801704933242083021926420447245933533043137342166000967959897981265518560088952803055625611351496682517397958180278076318429572787674652103373398503800041080930737264375238586955601522724417713331936576947607470116504561838188053300657871919625990996909228643038766814523797556481259748288105530795401467133875710638665084307883620178178679146777204739627179956428236519179599984502358985489030752700069599695464486133180752559898773165076342279734394829238163749944910273340992967883512399976972493966129491660920643375361256825475839664203405202449662151870202072799042186234167245735248679262569918046699467376683099975627188363971787244195193428139400319630105034972501939937640600291347461872903758644609483459811268289257477001265949960291766419627185083824496215657184662217204668623190688205442385795536940262553157168734589239865243756261609278324608803561134901111881529378145146095030309746907172195047228100500424125112906561698684706312411485547186818435419135889645950972742977587739758995207849709148684895330615015601376209436268888944927081309337616548118807707289506376868190388834767722436256583635709455354518651036685603722329706707783612414440375870509066872818318048016468221960140543885589478161207126937366816907479370609064653879491554150023510930220692821459146042948670991251899441188933025965873719078385507042794476060973017633759853530562399684995353603952376182708608836028407223276090850845606362006817463228327577353069260198154677065184984048450250513915946840443138655514364987897702841519124334668676099636791601162602945871217509417601554691157149117153174925118547338969313547680629393914359975617837759582448418400901026384807177322287486754056431664295914350153332430612289915179520970325480104775539027506884301642782495113181317444130582718302106367526807062888860878933006533929739495050226149618058799624952756657126677658751177126079370218552810763246984716623284691189924455776142948180572324146870667470671627246299376194367317352072785704367311191459076669489839865732774563099327174811374724573335434301230016868875651019446619801561976552261685280687925509366062770612736330424200758356102772640837752545879840443074185257660660567174416386495835744626386552408253419124589273338151951291397953730380092445443775657383471159091949565862920360659287584656148904846552984230777687102636777168412205036752110934628764218546702950445604201439801755811684004797206983675285891366646772321829306523904263364785134997138047351232902999573902211806482622315284646363271041424400562939069288772711137057489023102249043481116829020020641265063697610019063486941669667619868341860226816509500155598153095587603874906078723329021586842947499547498587744378224551844186653491317074668187326982965541440472001710292435592886354607511907929214847450687156269665522868657554320538753205581871498788802212284326747466008718554151895226764412583772890913097509547381243501758647319082709655526269569706807099815283648123471180904079892844360978121376160860792557855716320094268057610164295211525565942400863102938283116560506188619019314272432017444748289881997762321249123775708401939273253683547829161927395491682022339340434088942623254189020901697355237095945970670960300972154804674527064136884005447093067849585878937795609166385964626313130952600296702445393022781603261621534154489229065431670808567050532616869095554316671610504441660874935975185560347805604877033892480886075386297934815578190491622397111649762212336922930302273445282414033708165812409166940389347316827740349873311501197420107966656149598641842456093581059979517395115299600004001297893440944468914236162673662351269030157341917359903901401293492794180840079799263761575645718067409547581369439514815396261628308845983778371691058316313647658380277767148341967860759630947380940308698276516924443484370442121928381599258593804936963462272219229444554804297465181505007938745969894751755104081267823586894843653863663540870471653839205432280927994154337799362449445253812675667774484668031916205983304694944312471361427989703049181273129502385925798871452568867529879280342475665339037989502933949580632710593651822682237892142332076553161760970777679931643062960233167614526215470660031599627650109478208730919577405471438739632233079354135277708822552412264446199417196582683874028586422167707031986868928799867187027376385773606604239229145363230442101198942928420935743020972195578148123784869035418226683640115242310806695446930228592327646355414720518220319042669506537473063149259024435284473792628953709960012387629327576720679301624735821383867859891012302145840274658047722585403087598382095604686627519588193130520353162360051218882443617677617411881177235056293727774820655329747323108658253077495703578326176766451749099939417264564342494698083381352173194101145328464421634144607053731250444217218625023317436432859588937410266958499224921341033759732127059637440509810094398814555491830324596961915100108428113728234798882790137630891074190084164146925246016275160911165799013652114977329096163552665445446770112045349349126745015910272320450452785770739763859962209931853015917044779792276693575848056467817455452093098323034883709631565021828583495553098496661854454304318807755433453778904311443616503655648285694015975321975567542955071292166612119849413681734653762958108840113946286871608520761811525994018773133032060494511126857546592534783978175942585901647873363367488681141802375508801726841430255258643068518582761235991612516139298291696886792100425580150449344004809800434727266206547187937136425165599417430560333502753970362294264502860505585624979183372832830584558811645048890025407092766606185281893746425686333806412235647068756996175030401391657309874944836779680670990907720266696952658418114406588864200510160913349737510603408624256454701294513858280196727921652711473661833613638916265004284402689190612352388298206227586864078473511680017616879061223190141208857278048246136263701933502743851035857965018276445004468800701507996557862896349746778480691901356386214724124021963256099954813433538637661151257376881662354385549423246795904194965829474394331469750174381246892889256479342081274481118578723296718112843187177393364775050582459049623962818967543880560043790420293022111439590789282737399246764277172272587932778576711913066246904730779008916309620952564666873792503585004307063788553432883747287207436605685308143107421797388293075111621522464649215871502957586643668733440940450626596701168574401839448815718361059462736506065802906400371251225477741370528483084530174696193960219200394241695210373418036347478368132256047934576991092248740791643777358256621260701562573906503308392535454242636996448059459838807863181255625233692134759176003453033024603432066163420851905605127675827846652128954216825511500824923706507463930817455581673680704949335166447364417063232611988804015097183580571502213811244210453703716465379631174749059481137727735318260134285055519788474964363283651605193561677544564031664232598937210473410988568620860245314367490764138935652281470353384824173872139713838578832481084556895099769182902686327980987451746876653990902164865382809071686999441215603741116546375663585933220779836185636328298746264443476721401429419131589046831064158588782318707722758972211494146943329622708879954025574239919306145439530838032721177778574357826692000694543592463106505817410320967349327927118311338584245443728309788808922042696985680388615777211969261045851193353874351353043552621077501069367416370765451606559593251867284703004685922258903448929352256866031858245700472498218721489379311803177124820522973314253370331284484916911784834311733442236614902531223549901174016022946856424782619306832525126771669530995203340335411329436788210134680158217140009843701465513719680641557548625484808854911378669011052619301591073375757633530227267340564327596442115190772553957978315985563974845896603675842032239586563930451428503079317871246037414778086071564983561153571896722595780976513418984396999869785024149386264110937231402939083715830721813775226747358763813452359999292386815382087077923312491111777811594386197789608685013451299774284945433065356511911781737443685464653104084269231145967197365693901081220272310700938837826639350693455567331834176362665859768696363633077682215157129623324598060674179835137122051186582787607165552553012542948037425229474753224496706317528128781102897579497828655448862964390777909215249897659770046245956154717635593946489120067138097760786301382765106707740468670004274471818438511190470430705758020070386393465793331643367158142651759223673804287516377315831232205074028485661286339688386523155921998714809282887810703645531526637407330307665820242182042207086102192379410740623501009083809512171576970429369759759229193080697378223241835882177061236087930463323782013536327634203197472561035787293193147585778425746033927198170598794028691655175571243621927562850358950467765903875967190391989287206849819191872076587249142826823132520023911972196966271544604202775770113250136338548828923930875868995462516297556765197452438428156084291265314421934020488290078910630375365506881576571143308365001841818112976024734188811444061855357869153447235678083240034195011601391071589080123342500116889195249528358794024392140733008859654767310205160871407048415312712837951505996274104900542389151277156508485000286714841550360159350187480035222247920026029588479177699949750625328723384037118013892678276619247853900578585827036625250379774366367523972960017319439810254459364868185870692555693170231587500755526604075643766931850337710186101573559364113233537653591326272676984436548961170189625709005627653388425445170562370368749009263546113496316189218492911105388770225007335637278236262012666199330946916731577560929610482042848267118374740648951490408569066490662409139749468180532523591807768171723442683725299104898054768136621360064021089234757661899650187045237646141858465166894859159814095093781332962936761077554304539879316900194412473321082640532395846402635067326635260453820960855642166146693531668699388576341890194575450165115702350930188184535111304864564477126133239895520504838060106911283823126429612207837077898017653112407361193607693642758858140075048762885647543928888652155723084962007802200054725005027444495821469226153521234268136252974223371218217383395969600595496725181581428593427049519236290186036182563227040461916506081025926543601920925732005117576241629513218173561113426562883607423109571119778044439391978986214829451856242828359068522311773228182267020471098386603997589777942667535064613387616298263025329343404534474225270208229796767324620975552601898256150898505677231171845744170687555429772181015420804760812263405692722055227944008963351650941340095499357660894439929001452080379554098668743716329233125646092033891799754236200809201870997632592212855469430326730272203334920107642747874399801397051359209482802539006417660337300507243426667871744251689651728803617594759275094392592806804109536072091442042924190621002266341953671898000032267579454988344296712259028978237166300024219396428790638763319409323491120162090630461993016976317707332912651954537672351774009574821487011984793048288566889138645643183780020759013047679749289026333001617332817596745694187900151577597199072644645121614015881839441381879327303591362298242341427190035177233928857646826267953689456667102817779554673209873285749932692923805481679289047835486239123935799780208217988435115200631512065351338188531179071826468823989748562794582718870539716509593815637129721171252592744743026724778266489911044376288240421432141002486016059823965729985585505841061881387142789992057497293705169358362226069328049407265212420863396914407827013719158619350179484241813740575941023123686632654275427894980818382135018939951333005196088969061170254159499109055772618723607387731411588663774097827727666596616311350654685559141331721957112114571286005425955879075071212616873835763057840023731796766651467899454433231348719843623334863174641910953034058349961086755587198423209107462811599966722835207417814043012640675796190150115278571988354688460059795173482297845195589799067017172788391761702092000005027477742611454872747620421414740582098742678038445031441940651429865739562820943491406262610359981550705099604208628360572352650480871070297579368837501568253710432820948764841589233473897943287175507889353000867199263027984117307388348585025767760718314651063609180552001738268772540813132904259600585516866186580524421481928447342513976974199084061714035336620737254007000187226487775761257137661255257796185249847136880722806782809230034899285529461498829479743868371296698661676543552648366090693393706069310846171955854410256862300086308249923369706347921576664829983903596109907800742419847254576020500740155489172463562050168164559646897534322369601121556581508924614197327854025410040980692392629206461908538669659332900575049082291298990941530535285213697918202052272937927529824318344710180166017975851569807493482858017542044692278102755918809105205236836522153533176205540002150105881783027742244232399027182338030569268615323431743069167482071986290119902551974134701149032427431425328709994709550996755233210051026511853746067369997982450813944549834787395657616229847606330660121461274174242739506221294266222688964958921897849085829847567189109572775995586262309925459960469959577915065531956407993264494647493679838013300419310514404326108122588147883972410751517090619692410601357716714823938958587916167236771754554343572471277492636793140545231329349026034717719980255222203099011702858353068160363749679092782012150167217011334644317717591519187515462766464331723847111478754317433448546364658863779598402624661272184530741826201770968250555862140886774182194904930439107716923668134721596933564538802982027380107928869374259203314716328079018804955244388306753940717610783099673131202690050572285873678680254586984152997422549999474618562530697037316240907779614974126412583144338943168928219504425933249616557064663291382929074895266675320956996270472950881589702411506698532943277468431697948027768808226253733572775350879527344452287912790814508634853321180532399034529298343187147348062393571015067506164040897021107786709225769139619680942201582725536061047539871542027521349741577794641251137897070483903712168509729548875543378546023234648666850550683677887940078235685257399920793058951038933949423758513584195520101173375301764562575947172918486006919864223028084092344828243966159705292939471300512685869742213216354485225300372515327799619340731398526022718833725821089676006987559305888170206482277918170816740176838958613409894734063543102957842681003558458011042094025794225921685158101220933508472661727013833381384957291815214384910029238027589998368593416645551013140415536217182113500349489916611072537727766545342078370555254928883658554617874502782013955412654874137925030032024456441196882720995032685833684271939587912300568714250792597549966583830930857984314326841242428097969463734371865445833355982825783348207162364116757933655214270214165878944114765067428159830913011992132865729293105106061991782823500020765464545457785258603397360007325709110809128939437449555585739285155806969805714581896226532270521819667612324267049992995372092806179955604036651492379432449225543698867060375355683152621027764017127097109324031449292441300220084071121792813952565137881692236663574566398837362196570208452598467170878867547412387711166325623890495101064884516493291549478784056666018117178485675701554298360114254420684761383652160313150160441391626397136039585653019178580864537463022819185271573979097539754141892381575722910200814364169629972033981650469880596097550760782970038936603301726400315943495078313228511029976877617224848781730069539452301796921431144719761758738058414340934696850154171185258684363038380291041976361294147966088305608127091573174410053360521272379714112375240410452806376354260337977892415301999468933586977161577713634066252754217371355781493462343859405821307790725332821780255243261437904345543532518720330169742386836611627487169521841914918225472743818010222357344143716888960664581421760397172964937719728056759617785206448082134841752360567810785062808651307453556241875321881393611085965603943513975508913704727089066653664476499692749155593556354378397820241596408393022867664932834351704462100064489242442336928934207311669384551518057600796631248946246431458542056560826085795010699654192857308655223664387132359734148249440425389594132340331039550647004155108552597997103304907680613230038525974931038855107510579789062403281485504703711978718386564247116185476095267899451733677960988857044293813679465968119240405484042417627135345839933555738961885530907113440667588365886647165522348674778545861541405945987526266527553081047490098633186812527627527484551576489285511936068807997046211188177636164404248268095617174865606867081049844594284195759184104079991236425685559250987682720110681602116971307585814940476346538282681305043528068518863756798942192078645075969561341000853975771341924816008198744771525334442360573415943493454962880923631698849033542741798611152318163945981991114709037064910877644749479197053248043433455148728257935871231477517425727492174104526990078731559757150885336431577343486087403346837315522997675232384572384990800560413473880323464198316977813347165584997771142522969416141554681089967135172964781578400631153744712217676851502939849524527455283991034764926306560895960121394724436931918782143586422764545620932866953151389362403896528245186624789268078950859110948816627819769373493670847685988472632794332555087601163427107571356901004600417549453515210526375564818885681363217593279721206552933528106123333013805872623414489473055287600535701146577138954778601003617022039827950170019422437476772291342979431175241456707078989509602844413078206166719330633215890826404344983305067395192560123866299751648815355237444582856595712970053260978994628112638208712370501000528116326180261562763009284705889182650827035934066490828579425301337532694806207018719967187213690895425537912316686705770989531966454357176438543792421704495521286632878294070188594217728138912361483309861667036697365908265065423422466720496169119272091551967976616653976131240690393202970694441032602564197384262484888910373326728225249446730200336847850414094189466435202879816863598093286933990268130377347737200840095076841016050080048198092180192542969329169405728567416090850124376540918685415616031687469887753157097661075092881304593933766176326331034062923041878690532018117647863229178294497700664138424192949710809757112131588639506054003562124004229271933478409764278600287537682481232810440184323525781497988486464255867240363158489447718605579824592166352325986742323656719862808061774155183882084110477074382968595151501690564959003072702197877067427943004028381211842443245716610620063483485047487146655773836559535699485318984737840900170974026533025870780048526078407008948974094912485145123077988873947646803478317203108966292802510451249328624321234252631213599197790246001668253934504790707597224778184107243932664997189047271033672137450197519392254993778308192792304494791848751341928545466586261589295684913620903110182746955392110536762180438433699503697642687523531578772346922474731080539498847229870425973807633748800532444540427610962649380226076650363078623521259792396677972345139713008955987536998692150242314143419959272748142368494236199651283815042376200610766295493297178284439568594067053337380002606493519246565207209760695661289154196156883278398572707625878945784835191158124339532501528667388844732981746402342173885564266834661196269551030026744680480406073934742169977675078244057241882090444971860071878673174421701823736265583350280280762719908272295320013386363139627775739618779738905161165490595351307559144165717375631343697752235653254310909178308570206072474192416113926163174245000353185108987965795511174693252076410144310233858070282450053458238682896446123955245355294388013757458910499948413149005897320627083389610310628789968687589582907086742255632981778345500992798493297972392118690742436563525219073346297585990825992119606638590437067456253743720669113298830540293618557326077565374315329830742669139882996966434152028805407661259015435482258193381977547411020740597002961060367969007220501103002633193215253543903320207258276205838915434614049780805919406370910478358700277884659075066149147582123673707749328029834378855445057466225120823867205080284537335493055624877860161349329623514253042091661935554428804661453641335472578566537183569497456877978101307897009931023592586113522255377216481791790471626110754754403842153838061070524567260796357417331127131107993070140516596748120124483981662163731092929284731830165757153643154598185724540244460882870442586576261313058009740611029230146392148075326591555926921264743382678402873063946526813667066269660196162640266205737688450185832456663120755563245215533644799253538846697705041441612455246404875542415629345357158853091754440308104928926374634574577267303665700249891559798516329117088403736582133612142962496328123752381510648800666533648364680548023445106729188488946192002559882183915996367345837491859945413997903671170220075502502473425824217929137085657497241274986916574239923667222361627998621174574301935999969489559034557971944203570471102780415982689742656274093510894906015066685540755210512140210637837688490833788031094049212672083683121475274215555157673743408658016388149872019885378514048363422004550924547638135268905336473085333506360042197803649734382255079443102057457261711783766896719681495453284481134648662822384054573923944113554079923305922260080687426911586271409595551808855483760796078656126371623514344629476391563082239867920619267975383878020864094498611810896938982416138574010612998194384978032590526849832627200957767406486901278720719089701424476883611199686468582703207342915581758615366919009456517882133691561428855621342653872811636556011905562212865492628180788495137461060231266842874506742480951486570461154378229770116153829126265619796668133864166209194060093162959852097033089371415215779815922448771273431589633823957281687369863138823555324830815235128709750554511121728473043284226029186196065798603771706839769301303391944679223523969006218258985146150165700573371219891198200854076108861434247301395195205630526801051326361612260683751643860009233649800626626960024607277719046356045986998997057303547092595273335505672402093455134070583546838259459168030281006669070286058733295039738859030364449890572163882635306655112552712007855035368100936056323672920593627924988091309676532355206132831586378018847071760971375145835097477555524735617871066377215418292601483182725648640947117019641425745121762914798582974166399982404133858674411320650425738436839905931180818945625737776409185686435193541001239730811350414979350572170964819275885534127636262178847479803840003106096405226949850840669400553518817832360330556876566358763313601646753936138450545663532024448865148306890223801361020579262855523992753643538431080342757398414600803340337146391930228413680778583296357308072815883064810271094352339600024471830056776016926427874578539600477088811387839939679210581990506320175142485805213440865912857001270410490736462295395320606034939790128274945949569410773374384215593707036025542377008166366664566796494940660659441567949943949612122714378740304614141754983753655912034149962306970529814534068287543085802501893635733644137783571026357154287341018674006730651232767259491363022526425428365726863532674119620842147457432727221317917476180309723020110960343096358541429347922341474273842975899661414884185205071418835475186635797146192558176237046131567517273569138071718350650605040137005829011600989803618126110474479594426570335003664541355726123479895407607886537933934821901355029975081017559872039537770153019070056621399515499517815691888069164709687358569621264763632057519868613347671598168879588857893195461969193674515752503140669099701205225469067119043684870682766045073035063728695552289768309267149203230135056289118127626484380781706681434652131529312755911702063612707214773766632846622544259880440827242111422498193036132555235913467199244602348939890853577430159614909197709237371889996321798122305549239517465668814408602998697987423605710487857597682194310653025762048464772349775803479016251307169225330617222132707956497101284653972202028683830810770937947959430433006686726724468097657509589658233688671123979090410922202932458152184549282798614426923685138616187356648601307335600383611777633915555654273723086285543110010058156415790537149357096837857003404833689216428812843376530038736838204788790242085807318794492141797164992134141606076671569195020834907472146041208249837959201205177011457439144753049730077748205567097641115530258474959961892244190740560646555032920032668705687699413661199524511062449594703161164490733068450168684572686015866818072265873927765163630002490230371219013505646635186581252620416906838630554717362811672479032016989197275925400524514484620023606894812813320577965080243814605253981633208320652984692494151855283054637459722822327534011351029539432720367523919030918404010565332279958792687003828928730423815636105107857050009173159074640608701070444067268224291052660051948110744425011771975014995895490704105462723029508212597224789989841578163676638199876626256322206996909134123542930938649617553549424507342239474881724092606877283316964530821683723917988886952964995210778306087567256650298855827884342732564928347491512547918740425680277698794514080927361559393517464569246214530442907524322159886934844535893828760202562838698491580622970764179813164037489988737548748873086742871075051989066905103849061688894296255730416189012054917918171294485293267649339126317886342084594711928392177032371681698891251208831657274849186692535459515868212880870076192644561237431563436239664556428013155658196795439833971528104518291526175578590821166510064758621461021740733725570467094950097338746705293212015922688193999286875049649270136106959425759202891279824445745019748850271982254317159841557767282502263083479053129319985766321977982936164602449190602355967948064796782856122933017639510821809421716711764470592630919062037675205857851548624337126220381030663308721706361112671343594200549902920338444647264057366720696169307994147942382649909326560150489647504844813847911475152954931297052088450420540499488590273778102496057241686007530174198304100658981222045869045867967085941695542011964624318056052632903055361344179248567246983454275213032262600742881466464227231191079909488385224674005259962723651789371201245476372363201873945067438805865977382428653952489976340509638675930965491670207815244446832921668276501219343402085245595264399922204464989260183255387599348512068678972682667143435272379243868998926710662041805593079849553977760066339404035299241622194765355050411204980201147361506026859727893637115292589755497020144211454479309885695460331829800723184424764440291556754062174255327877782639749335066255197820878962806068921364319836931630004753756420101463942126076326661861103641297751119258076222951752481936585323921306388647730781822229723087977792139338427483725683891556609985770656680273857895629281946257580649050985401286500178162392885313322876667221418595019517032785660504589028418035394822766205124015175768896427516072466363791170316692486681792922910084746547108863173857002799722191153848199606878051107690083059453450996255676371706769080731467070656927809923104462954047685307820656700885575901646784878775516132716898079393161933585228999709370461319359093616561450901885389223869584618024408049418121168602174606838988870578318136594466069143276909268708178654066808365257738143489980865347021962810512274964004953804950651108155197817804609365438025689942122748452149779446172972919203231820646896022117541775951808896764244183902854206592368169754115205588208446371156103908416430193124671611209234885493747420826019764356756599422297299349456178422563861993095935627960192764407612347372003970738802795184701969468145988643153152194560657192863502922094565859067883877487898851288445138152076459881440278110985769130973520432079001880964726856446214953436352342744978732610350837756332514650013739171692970953520145194224797219631937984357678010802941896236711618489209540180176458154672498411387676707043516217684368957937841223957144066973185439919358381647742419572715057063504301202597920377008159054127776005604794257004222210392387136740801629102978811130196722539388795320307670577120535973876131278302321292224345000394392481253504667087906724387119696287130302021299582868216344660704392432194066767318351125293970150188870981579885600763218555728267765547369921321837368440046187312061608374839070595033133110169440835271285617982261297198111391988148179385743833281884800137627945140441281779333823273224532327149208953179458985706798287140340347137652442321137034470425417836293984249642619588035206376208405663217324820636745320269835752874945171732234566166258905710146106016371846303471668672405152531751443295662456556335875538871870073864043159755337521819055744305022366752946831017228887369368949533408987620972563474262305603593147037957522514257054475767309079362696991551643500916511838464839883601900399813777204645674584799678107463311951095754215270176912246571127356931120594814696475540949361459774998371045879900364876726948365076966180634929666262966480323208806512980537237716231616839415989200718903145128501470058848719620124503487200924865332910231583442536381778017454739250002666619624201108577331457354620724089007436110793832474245674681639499207843294182501687076379001971789135057794626854428571371023269306443255189529195341527199158751263777144319308766755351907112735568225405523823805637680183153555581110171388287792287234723838404201094390049281409633205706846540257073328023614447525516725577189608838364216210927449761958541759406032483680649977056438322861402111722319237877481297162924240672809098661070589902601021800102250167933575925369335900901992921928996134426942775605551882568930446402721712777330501437737678480224263946935843907904398306937177932856296391565887442265399612739282086543633548819250562005883283881681735098973820515960509656810846693927362174840502871450350061787059364398599540646760626402599195528462769513261015283745022500970862875940686095293473296310614186034112879298825416472919316475843974720755789469396735384217222639770953018729377675015338635034196927533501789440037767847177516528947586487348812549541412779090462835259149065263133545878024901811580040297424138520762954887379599416301297784332412500696450429023116938358866097193326359359290726420639332043561501531412271938864179065347510248556494050227178368901614649564966785505272353471729242104866107358068124451264601949304246205122906829530310328554493843196868804291167052356163189059123276120203491147163947892973826124985999355053831783107167637057736988314500118695642303275317570904043642369651307954654959408202027827039645862119599638065903728867300549126062843863336342613173463908963029511225465141926661290653799791509486409966323833776466095213851927906502178498773960612742517115927859074742196858419966058514127758260019473358192753565085339220491681626496266131718886126543645211822415006290045518943436815054879000675546695753654498773278025825647276063880468966278281129334724667652613161342918765906620540631759752381550845961159963092014496867438209376882486311296719520608357724876452836020314443414518615659971194997929953054818199664547389357736784365119659994118770385394164854347749515439781632982533570240454899167756174842148209549549692763645864258363810641324095037443580816704286415951897501417569076802177786192469303460928569050448821924366036705910380839898936577588674414002184579509034682009416289350918471771614781849575532387817704379891545182097497636745965380370927180353297647115989694380526441134633704003236834439683937943291731057041647242653264955944984799766879848593601848471135516255849523375107937347259660652215282518124954462313214598645921987701586211213644087962083013594243897562776493091829737854436356167746472321275818915051359419952434209957501687969275720028877011902873563464448061810039400638721757260091991280279376808591026489447333921440611426488712736524076136322003846024671765801366109563359224809724817364176371932734755730060644342597620252543336525739896858263002012632518844595894937643880963219074023343153846989300269844291335427819389553511871779693423467476212971627121446478332255320450806223862691399750769480446994287272266231598765502009936294718971354756959700670623109692849330753956415806349171593190258605770818997150330891733745266451600509353832386610359735091601164005700093899017004898553191054708756316541296407780171902392139793455153114063123898464962295722850771785078456726714466172066941990839012614931834998691748213257710184058952595631329322552357162567401169502911219728228706858272690491254932397212177617077155056398078459415203566619281087063794320813688458214724705493739789837004727479287993870034096545855274398286752700747668533698338280631608447213448830724836587016600666269171465333671449247845094515986409752066136712175040032283062820337059949444077290053393052489489818021928301320671593453125173124556589578769824147469130280148404037306683861195632050530533978174786709436053389653473189324981825630131512861612594093768840237520881102309202813370481069475538954166300095959220501034251508546413895330896588976826067676673649658839175264407665631101049015328720021335522354869141980153980866774224129904896184446824059152381039279519583471216287394865933978031919217027930355968577325431174121913493852496884064566246360362200069245243839317464066787622087775962898694226750388710635798271679896577050459918631128473185662815012700726494997823344682021806659825141389994816115592989473569748474857978034201148756047249980481970685411762099807037599519182775017568560788867403054104762163643109412166085809883048026777694538329056485980732215336196652689432470730905819511767405034232185263924984909442596240674939177041825003072084753934418670747787680082277226567758555452541937867122436850934681972822867888595564901477950121377409516940271853790005201746210765034759892298304516901034806164423234495303692563798456138033253200878547671556804902437100076824567841024830164505668370488374226979294105561367462219934430716778957091839738485420574774690198152374006731291329030967183239635734881252356118901954905637091712312685762018879747328928400026131840526005044273745492026311015842578882010208638855550060247983230922414805885739990925211390787776805965390337753668229896292737990810663252005567047652116635637315871011911346648766068999151640836974363937222951323421886315041131493219545594024823510805561807522207797773909883625734759158015244855908614649786892145330072831417101402539784362187619998612508757836989497445732098112782273966004232303343708576179010278097034424430328620296260349180326195663491717581810877529795052125158454938378356150409547889045895572683476295418837899348357411312384076000478423279458240826312029286648406436648034281565198069046177128294925076611036719849160680419506580130954989032058795939835342475291457009120680196469607792634352538212001289466559335442365246327015393252214950582098598818838784158203215270062321328523935205468743138543651683692845293899870753101897563566703593965612567851982054033225627467620445961904091824511891168770527012638681615663345613115959715388221531732391851219378215667360667449914315557047658712881494967454790269822923338772073345730366546779549451536306445438696346079562342817532867989189699799000599582014268650135657288341316175126224828437750144348644972334391029472797018100107571572211459773113010572430219451759348685790371640517986124967751959474685386388385806079090069842835932016339698665899271630290650829789768182320583895619075985011435887969346031158776138693885769036001049358909900984204697258504270871187007465688541352153777983619517551101678422587712394804120269081686288308883572866765177857211711327209099689475146066377789342861593204213650524965765356760722082555933636070787666250625254880394538181261151431880915975517355825512087099246176939219347002740357203529566266346418787645533355115122274634267024894000262230427828509359126179406372972220493591699722026374933290505739581873140599187434606917195612532596544547679467061693634307308652194316583465323186754189615250078090640582799539088889492360628906516122049503804018363532415776537351197711132305175426863005495864240484212978311999438699111546819057379575289218943019776072137082096332887256732645526113901036482195664109765973268909891385025619052578442142538414424140609795586982935658114591532283150144814432961946516079400993446564856483477712848893330301861868922724886236250785554694599087560486949263940908816771217267461938744365253546325992583571186976627306669952553546858189765657031905580918972438565995394560891878273894416889877326528910858004849925134591413379150635204620527320751336245184745875894213884544374926439860127354082193733171325230190416629343329711952878634972413470309102001129940595496210468484443706727271333990618801918058020174851470697191236927340787142221377128079698745087113599524825201751246979794692254387762730883775389084961411208824596108912492613416356043072606466116289304600080915403685316015711836453323642642071066462289524453034540187648777860660262889240483959402738040226352970885730045010644895909907867416435156665543674153123134109989088247962499271377934075631275514719469437106918397365546806610039143031456058142003344197493707917282115209481027185934136275007383961079530010566112704823665576287129031773922403462772719313785150617480715165991293105267830483264365207943545310816182097285651272325856578357466665774185599888537687734854696470779158675556164062206535820034088343631944296468803045386320132963213841573138018755998312701273924576583726508473903441923519159653402366584315249674069197868603462138824390210013585744898186720574452713171240883638569170979566469105380920713686982393656942881551323093476366375149121808645614140390549120229012578983642824591492120787216375440313778659597390400015117200356127062146552110342212323750037400131789063507955297563293589139793519224695250631730128237358664331226565078636086833046510098332749751836120402825427094326686527182153675585902299665070983389116385330450329670916790415341296350356606377670314225535790046131191568438941387083767509017505110259111042199869391047053537545180133964369137631814013387960498807290887221030382308581991413021986547248912349014526266744863812459415003936301167133214526975050654491224263825875888139790453383067282269673439414067588347610455500100849647147782772374120734450783708759600978099540498730502834708811902713349247327177195024698537290227498936136674384236479169489673199711720301704695602320290652814598007103716520596218091524181233771339628328981252359017089439881222128756572495729832293324092723238133735523511416712307384084424471162448932039491873663165482318674084310816346117115574397305426505213694079643016057143543198061121200200944758898503494554913696538575037536088854548625109680401405154752165299515619031943843067704031468735988693556560766558453749269308579728457278979100148934609893775136099587302888952373125422062491119462057283566789147246582789120165169094685327142498288854080227444020262333860476827844694468903817421622155428052869154859707535203720160830281144778518831516658618317527490104435221737958263006757881584335727743270659603180558837009843254244873966460148462109325579941596590147540210688719852045627185458447907213277793661329702409145657035389451024734510019937696243509669502244570692955701014835688464233062016604840000339676058573066739743743998980185088797311046594592245919117592290301286005654882859721102099968299755945624874231263455561326670656765129054579910844529910595264414404462613158764385828488980526061396646344233698415161371034397406891345668150249995370414334909619035624729592652341946160859235049183216291890435076646349729511595088202559336361522232712973758240417021552475370559896835756263055011895559186081167679271929739457300184924767293396884813941103359590161823127467945827011571909325033692253736277801261493360837488888973458241591526141143352530089699800747943833986362749942711895930826513424839998877581246018738750892622917652785606555524070195779232348938621396110205356018611919131373661910016466709776972226809263129677124382337754549983831648996523363050774031545757690365064131246663024295636175559297178347034772027602901397359341339995064241249943213453555195408640937906483432934712426354063572490170291770891717270081998739638795080885697567971196611841821238271299274545570664293857463820724807022792413794111245320481790468696976930535204307150621234262294804230860173263383581997649089955669906096669830639805613953178129400124659583518731513098913127587804592136115907578983074254664501463654742012377128188650933469466706254543782804963767631454354023591221467679557831980289111824106789993024690602592756503907268042087889233728799673106822153530473104725275104911310951859145149496873074549722679654027920902633618790434782074360110912317463098360144698238934527473520267212138293427423787035631716912197927322295418962712788408226079218322908059845360142453403537940739964616124803279961376152076889652471342458903701138204469181416854154658456244915895546078600797357755963772293911034696799347633823515136297844410699882725731469794574534498162620713630897413765970662572083323464207346737851757261658978448831048265606677040471598592157230858842164349554142514930720159260624638574733189754338995203246030751674568932271428230136916680944287146436192173598381560090150681373130154843765007891819820854549723027802942137470268381196863314230700645150808087541297527291632308887712428594490028965550236835304589048463403591931544753330715568979412536021698617937669347685431179857426178868235554250371444755885781832668380300335099306541749250854945948710302989878678846680507144399397792967323108389763532962959622323947078281670614654164760018001774307057238176444842287384423227332887447478594629032066548219378121449759069864841133893714319498330595695850586044668683081593148698294737595753847750421934257929934264808150593542874913067357156752284908347039974963762511592318244127040314015398675132003685680363532044940801377148786191081668628555564307639298255509910859817228177858361018306642075944202125721728316536125038096225026473345056764634364778916821754601671746031043321358819509109408818090787815772820473297658057962894211202111424201719037686653953232553834141603888544271204354213781901249783028692999991567771919852540780034607931778983843697457019464647429085229640853763190699274981138856232327840067849682167077469013517529613681565731406599664260500483197212909791410095068615460387481221754475272062841637030871300865336487862311232548530228979089817499233598238596376256276948947984062149035129601608085388092652277013923353923743341787786464783273319154583870108875770882318078501155348573818239836647757229142208281060443529889080249577616226610060656376047680981850561974563973538476801087096057687346856048143195236397639100680561188347200348207749343953284767172509103395318645835385165673951357985769016355579834695473037605916861707233357545634910470539143646358261781996235814568181372099115810806556695875273897392157551464438714269026645342542859449078178871396031474562862977722637452083099339754413921648964273327421181593908231461713436556135959433160974553108812664767095753217407508270590445899091653332272779347407832438386192283856024322385874309860256061727648485068093025909403297269909862885220715559539609008785871429083776575877724574482239115841439950302814305547776605002339485708937300011515556282903394788421802112389564137106892555013687555940062586955036223529264198142251161969335766780196275500941921020266185551273447799140948430056145376271151897987672594917854142458073708815184574470531022283459445932059278094837286892299428378225022475354335469438965985557508702542782020853287933624675340106918234432175312529229478720093709629353281774690702704569238273841896333368662066742028211606221393567035944690421833133910236747836920371487653467375649078524454518471762158778019114305634434667469274889850808654955809078573186895083799999375137442410163000726351017260260804385088837041857441633739410082427144992369294649924782667624580084480787462953847010194587550967351451460390467006254751424534221614180561585655492902789052494263816998050475182019816298884712796568529252370139611967538585814831296241853150655253670933621218303921803259964079442647949215275750655324038135039576920130202962604238446243709307696166545934281735768686740952979357132235913846892265890791079327403256854807488540934134796810361921652913880509297879210491315947288326377182556989754795305837342107520602055942802847473659164513174600536526649971341384560354376007815643682524830917848949267206469073948937798872561704599198640976568964030507503967470744763534671634556484831944856467657924408771472209151578954307573537891077714353473550806667174189550983106237274163865490922316191006743200282760061706947456038856211372643003548590987306750533214987045764510071415866079537792317908193228228283547720834428367773803013958286703105092388131368656130643661846664962053787606342271177372268719900955250772953632636732662865107621377047249652793586157366541306076013244992143198827824175994806348122597144031519061210384544134126146410299995548336307350256522359688931899667184859716926816627082797661033752165572702816914749499818917397916091546634918078837464331633126749809826911717896564578104242034470263014197231142151894935139566111730527230973338139999128934154032034727968586952138353102988822365003992704830533193266545328141209121862167273155462537177288547450472831440840481473128227845203671589528218762133074687398851677445917120652525281760399457825833738133967204983508977688735737430106936007525276323802872572854549550639226630728908905972487550267405127213602610794531446392758665155602567823346569594963772781820607002139495977880448593318898946246493149815177986238791579052940825415052733176333660425130117410622208672617012663251947957457422235821628747027441205260616188938408040820376261554693732182514910797264525157942497203234126784085455640007782226734740990350424145512052751185152052006115271873083835941819074672078432801393519079947871347414864822033949604082506788337946149753975609538973257728025994492922795811644967127522363305170774974015706091285550421750067197707239958098634142336297260946118114031548309532499517816050293872024871081500629108019339441221599769213960736857027562357637241390311901970843618692058219449334731011102128245809941230764471187624140262073161948625045662374929500059477959534587129554129213455571714383601242217260047609908087726614737016016210622953045255833398482809695607433731740329263360861266460670189729617943793313972909572316424707455342156053276880632085471956945818581756358234616468863228313521218673069779253223302535088319394121558166266303196084141333182169699611311463618058048740503131208720409708937872589565400917830745881379809457271565601643584309603477353836105416925015378154497995907679805100491540518029453429408878289630667481712828792158794641474059926370638056464285064496279216718664596704461000978344850739017790843496669686462667888662512243291416647131833202130538766913664630498959900607376694431121878890143212256363447996870924156375558262123103869875320347580249073870549689109406738428380271815275899974279729163864319445603588497283193437113329224889012619484639216889846973154342531317502221685872015755274925673075286452314076909307623078030024048982091802735183397935501857804360872722890923346367383974469060778732450286397472333909364314607405185508163057492670021760295493310665244545233516752212666814239621014605389402335116568760019950294332112353090616118596338723522925738642835317480778496262373357530290006791815295386049224364902372922990780873622233684576567605601284886071695191757108367194773694800463848077960084748141900450280267676041173011670056001135719128106110530243671352398818305903787107264095503977751407666850854684267094616506493096644404677095157027013943088382560385440906135485647415983598841601368465153872317254573498265561861336300459026171283477958558759248410740809229597803080988475658815397623199661525205703997191229019719668423443815384126679942246861331039376001924772850324860828509787594025516417119457531856510530743460115727187234000476971214804153385400104665995773126842697808803153621634251303739693137840368029411902124553528152931842622169278112382596724732718951522598575661400589723824444186413041355041296388210961673223660207034370715888486278592954720018608197896648859645674568523530353352018398091720360661068389283916922828926019030336080988510263111133683357412457126392813241884724428585613052037961621320382773018951650813545220598660735452969605549245131497536479948899385528068909626134222418072361972110721876251467641062815660542957692822312063553448220533541289965506279729108941243070312333471015069162389328836407061941736307628938477127246316685710180095298225989865570348634721455084024815480398611335326298284244196667033685324367460244225613065955314870015821638753048880480465917907331839500398818681430085682375653721158064778175529530139768206719979819521201256607929979081862095426363275938542398292448321979581973995459190439911592351191463424891249947709742349402030090137777813467718265480378696337502126596142694914618669188819438312457786846573289650867486369699270383441320835229220681980582681712846227376317762650964511914997433775906606099782714265705264869683676908446889716445998635767361420551212297348007481560642315076833729589586313752356532895131090366363327700336513789905100670372877801191179202708408162985873770851106437834467909902846500769665124778337420340293302920558689995567158759368027757589557706133224391849222318352316319204835711322717667194801314857899622588801830343407884287547916776202338242481494697681187222875503071701399184248197870251524859276301243161926525697719515800311257302858705160049549950587968199248015426133050583727115537081921251944745016643493468251514090443407345877302896801097402471928418495965627639407064646661428396141846395168306306282655760143476990989295180945515347292112684768270179325352659446778483879556299721566952748881780424840393752332492357675176553095126225089625087816525698258276723635768204896293290698581278231843365429136516280032580573745149790575962253408540331661612516322742666425099047024606911542864667073310313088691028908709467065948802812864759639783402444880496196362184073245964387619395652247666559402486240332567738794065397254334943577855744992657644665320411981062364162911727221645728955750925393622191055289745652737998494055194382470282920217256612281353019268939010693319416793634829655935919715352969616091040604664425520539246489257065491873689993430031015704473537725047953897853564507142596204285759633280197120492215893326692530929727246066006844630486731363217925825525639855216479278240978454204003704647488098551884635606272515665414309393176803506829616957174047798209644418716497744575780619115704470946652711960597031882790160743524658543994016108988933795777669156247157534612772262256135081599367171586145929225193969504602874101227984327858515614987395306958008856185286206619091202848472317523352378344786147959138566510638978221400884422197805625257379128308295662249254283876141204537073720714865685417995976264721687894160414397883781224285780646518735824861899810328053961821167807157154880230149362494087295343610436481637607538630748012287001510537901556026672252562832240135615027616790207395450766246890077451240447606121578466517849171922816957678186971759995289591609394130783576586055688372027482837367796030420870607269054725340010431433079640888955341226424952222149675275336940360219592981532757673274203472433954435119578906943897028869776441428442421380167482691237122508074974029155778584612768645187041288655655294799695686536397229657597287255437530790649072948212482127654414532360379690959412638265045216662867550357112701926507779673069536678308672085922716066017740706503779044833334261029646337793719772649897220200820064320256766978590740614035631911735506043116429437065350201053587383074155381445425957506814974724445840981609976586348636679912029647228408880148663560645393844375873168715296731976446093468785973102188237579333275659205271998250351869781348435485574104706798005661726129038142791408657197120499782535243130350644750061094192511216760316559238536451920124220571420335232198832304742852964967456812712383124252226053663563389228741773666627412752676785320585033919348472398587816852222005643259111841729449087431946735778220434273528656218270728640933380971658742994869316486700094319334295943334881562133687625915249163522682546731538716874653770274865239406425784853219561341334795839193697070995011120951928237556956917220975552003203658986663850046623671691348335220960132213498187764867379810834866870012862142240279253215343667007230898197414602893745483159909143348177324055380293225718789564272369895851831122340719963155759996990822339499461673441175001096019754894676516315442024840931268974033448709244343351659664195033002617246617286168292963632676053819887206340862723209969186323292921359101234941615979667424634384598865760294523643449481030824226687309449108767947881643532023686915157048497178985279553192607116704577160901190871194541023190961680355216585794905384950010225583660370902656445052846401045729855218987921366279968155336712652098945916177011252960419220818837830038779777172779874008067509557870587825596505663467890849862112311412827134649245344759290168842851326845060588712817648836704898833229836705218280732542472421914509712755120748603437319376968452199501575400627956181094924621157509727727129087029915433008485244732345321246222767469287200733051931123364088927735397837335915125841908984493945354537967505984881126683499497828484174566424746557116631602878699332386929712773596403487339986262859890505314828000886459387695029320972469761671509794875336220324577478181406661677927958351673011731830054655879009971206972818132059236486500195340962740764738830383149289959958385022921165699522417460968434031964271377305466216203199969404165558674389261636637881731487850561748565694939144114323173534552636218716609022583725943343106383983798969073771336996636300717123108792821554479541559589168326989689121272992650846696642833435870247372947377176212540781014011336175454545253649018575901885619155868030707935677063181464102582540381108065748487531681951749130150503119127389107998944670340796338681377429851123434605473914181627826306001153948119136279764438369292081905412546699831167820864427213912134019712328784736081023545015791539608151066095689640567438819471645419113422459871323996013502566297414958416333324675781084137317254818089452743779095012501867593826263983722033825179808780181129963402919988819515033899186743002826887124702355092650053650907151155207592177174077583745840221441163827785500704573929215036912467831280785863093772394636237589175465031990894616938219562079536521243150225247485446533878881502571154280896667141657670472833122461018836023129449172155707223284904939423248687995509929736332888741626797566994222061102126456066491701611677839753112562189454179118970973037152235665983171381155951066795827366560433832502059721220795514907411488042186383855030209613446297429964579520438482277216058326780341729209659696055560842157552028101116430676881028027161918827591479633410849948607009779457747541040051606877426716856867266323315365435164375426092011033637457165926207033961731095152446444113751028008581260927749925498659142881674838320080609291134599413637510612055927927879319136667713725310063927281917171436554578378216043344592199779748309594916710751723562527191059523160814739781253188235333118552039922436029055910244318264211004862427627384861847887721299423384468725124950514597963029985914397973979483078383684852204532894745047505058549319435606832229575834993873565195564240712264260152305417353033314239296665179395739773955573807442662739383415797944713437248575254993741239592737213362920677284664752650146444801114628588091650773118345748822686504751535888167845687012454521609052552541440189225904944387894092380570002619588931228761036081805675973207209154577521375401053383775891408427681700783249775228044204904339289909185921722973473347945031075932408965227789875750855831226919944874969769345198710761302707384719457886856642973546810522863370199731566680309813404379186149324149603936141027408651727379434214680646513183426330365606517535269131138953378865573880410337293922757071119053575099437369975119954854254761297533217162004442439033404885534415499866860984872749161462452197431109781084150532485585366530028733544242663395227818423915329552954964229762173674942439162463553031536160679515407852806217834558988005841655464772444443866759529443191978088017250085079023031561856542080553491374398788339810389904188677829194422029460292318957505924890916226551498393464645086875908942247483568942807680299552379581982125902926031117326425233486065789794832409602887509973622764008468497014237944126882509129739970424103301307774054194771066167071402965536198182186937228285872419785214212479221191439476338356007072981811667730521994093473100499689336684221054803208842128301612956694439804507352263407889444632433305935650994503215650656592770151027531565887493993655695850488054368630223606578849275675048754968431013679572757810582805284301733897444737042801852157502514402729270870032874273261002312654372512894540603585662772869154664039573188336811277464594386290615760065803591911659569933854913232794394795790571525550653899093239974763357138020838267872384969967136795143044761155210110716237704435939142396683145092548848247138179419171120782010611911969339935620501537698961765031536170804187153068556833494818528975707862817016245900548932840080430904868144440167807678516108565532929423804950379666868855209277779497327688709970139639262103596280791964786815025166909370269418306412885730957368911392544512626216087933760031201725734853603570504492920196573525060279921034226207150714842327372508614940535776115303954685447433113740009662316103295523427409047766757969867854602560371484573049224867148292135613004914295542517027978434084113658975378473671768624594422376572420286197508791426631562168888369321857857272680151792875481814459451642180338803465094774947469538419183676803329673150415858275937420732819622564441084747462751719924547223650036773914129442202044391915690181782762741263328455551782664645181916540744466739462877119582941106626886489420146759448926893384123991283906187513793613411990206521474779582897679923562727953281688721289823038545553783115842573334859065058864498074178349253898374715309807872270862327731852961478056127419341311180472970189171313503669239149412568958097155760583880396747589679188798966455840477283573172972005122632281136905630605471101436591318365363616464739480307933737350066248879723127709081172693022404313901595112102936088191542932191876772251578610553714124757494944827654924459704466236419042294271271292738657037677090741340272165596752779255410256993032436878318147470503671573453266307580515482008977432076880714706145146845101135312487270937586800264108771584619897562622960734128283311273035656578469288851614951150626095007405180032720845635570820596988185789958494201037326368149273171879680317707266791260292801924040093608006434131753426913160966387059822604533197925834064726542713112113478371380150596057603071974414917730455481171529482165843013596142668639280726835853296899359439324627050896598936934140427801539830561979388912794458345310538699165949867230222242774962295971959414758023937168943485238806981309863340488706162676169077706796450122301012449543616447253068545598961958862980597656869202104635198638432423659901882461816101519712657486696898973722262019997420835959742987238872586686267268503744278928356692898812805516747043390978518738490586242109760587196987511783678521836403686124004787627552499621739070424891259577526316658382822040034487417513925823638650432812509410980589577840954724844755491297990974433449686802726992467350581612652713574093833856600548049783680534148348590610604520969399140365484521382162694834657804608597341758808852663400265257834712133168260610604589579049658764531679923265346702186471195273812873609382490003617447456751299086586197041710565056105204773701497013751635469811390350422074972289042942711315289488218297196134606027052151716602384939094112697917788775993311937033715004283114459576828171438617100261854365269831529860216308234949734214657164530999469131865804669087659805567735889774495875250439318913032246959495129821695423879829494472114337482164489846653206842711435116506147537435607820480214018876488991043252651629822210789727793749602434494317623041144081034502846976599528606381878738131492550832614492348895213668229066142525780864556410449206927394125403465585412309673832899747184118400593024979086541119675596584067760285636178956553768494594419374923877895468497517663245741950327643316119073624300590603348331630451871545654461106673160732200036906097572592939297522222510856125131150072632686395621524701296865091717012890459743639139198670730141540017603771270878083066507684652680825776644875181479590600365130168422729881846197442917382651904582757878207200963950766435270499272482772917868064310366975101331846009059427703811763051075884998733525223341928871741028579739066378662825610399332867172257025603711429321582247508887707736533466103195651440378764733316834676883538360996519038621927397530048313219498050892780871597282387673020658114822655703408944510347656225115910285908684162534493906570132852320835760609282439930544176201421294303269423043289836020954724482991689374617661379419626187216665332516932305448130709295406840417699077613917705101676787374526332801985212090052641319795874604368268018465763471336010351603967734286811847184739468412004569999186642815724264974455079157170831468650657875426927588875646672705061702935146530295555686214602624962990960718666545554648587836483728614850942282365342125727288313857214260839560757002174535419158580553394230220627412592831360984755177798279492565848789208548932649890259063044263377932780960049853919582560720558734840858471637226125890013321252757101994287699232658029454613181584370640087228859733100949655879318521886543379386831098836266782789524252562113757299246837269767632410431928874462593591650451207471951831829934118403809119391610605761248981403959206915230160417816845126686690411905905016243200766817546533590665468516216515673183441624317002697202994108520699967674966447888013719315495898482370340021741232114334048175559396505181543123847602271002975139343873198892111374248751364367172223203807443344224255044968811387591071079763936801138664961578582847872251055855138561983333151253897690888220892719835436081767568554603950731993684033139449582283301573677144576644472523620204951551997820175275151229113641040000945301370196143392664879966476019150479318799725725124492629187971708345378127388103293387743710298663763712608272428648873993986474761847335514940007695242506474422120092652835505491128349105403284278722036819345170919589980404809562894919707557479145397556956741035063941870607945935643203271127586504402520924896725503836661712655314008773891606467925605067148377425733156037998282212040889769689302333571316017746500350608755576875860968550366340632705607491954554049107324983082988671345400649636019096759597468686083791295142068437528990333474836238769560547580942737057450795233002679325815970650954007727600161713535410011128496383976921305809142004545894549548156426911566568736388167335427404762741304280272186708854206761495450555900299080277559733419280286793715067911027108006701849891300483769738652671061295319278893584653680764308425501177554004442358394773728805534909196209610028283751803096679443816520542659869665257342031693639118929918134699277100417761010573579230384347218621041088062591424480705872714798415245730712862033539201954431402580037794951763665180098536475839708243239115581573051865862573966255082421327964825135523683368771369982648924695646952798166980202181838172419263796428973457546968942454664002742934921685336731272870218215968525899565605359382085884946620465860624156326623390798842223563187227735761309709591437695229789447571719619219077028435501425113043354030002427197072406681885996630215806191723415610741074382225792935474076146064803934554901176977238740465698482685908377568225470234567386826108973430342689293002755784408591361302221997863498907058396552136648294490534542783158394346918389937222327132801681223336649566829857144970529803396883845566293358087501055473756592495267794130122045546995455497944617242247076319811521677370935581741182507159834046501503258405261321761563074077068978227183626143448481277638065634492352037473997142747064422101952857638180990512750307481922110941310223603543533959094722915312111779135872816931944612145070851780068548756044061754181208300965956934187959966640604670569986451830072002284714161638330853883148951040292558586209064531074040648321333527924008241304991266805163311805949120436081380821901442556357192278685313557883435182481162222861204905835021535651942154568762297705190787456414325295244978106764539116733563444343158896758168625856467520426176030902848058022409757245874566104755329057635047931693890058660947939347978660055827911760232976198271111575346520793096640046658126961833128441770359969448112686691772253744284175282388511152872403284730665596503812293862317094822713121708229116072249893410747969886755529383351124596646800871662012557390646369583258820696317928302266290169825734054029800435198959951104593458832359948934991435782158129278170652232081183235268133446058135350774813218636296775811792247616285297189781198962671454760723171895822964658873815910408172116770264006218266096205092761425157446136816801794430279696074380476394675457774098522177725770040527525024680816455558408215900128218270879824271496765318136303586235860958981116698112797914811167604401584448284903410104756239006357974085952799036576752972388471062366486245675313594702829335275000927083468518381379190113262829581144300922639716917848204587957957332716340469347236520648455309377912056534650755392651074533372944749628176280032902078048519538396242863718795155771658267432269755179831195786516200903152377841780176964295398247522803219398124527506947167580742600614194642747999082428519019817014565121194517794719957738222744501696259558617995087035134486301727244849902449400165207035143017287708726296695241580318693779061974943842681854395903799027858535600760755044038207615296400171037490215831708631403711155814063641135230060100197004575424403704529011000224959001389678446318625105463525515669527879937302130798014650076928014703331754408767153296735485170937849934603693149604370788372661038306673278886530491471354470398720517529512199374286774242758940110378888665447843788597206995936610802553421475088458571657206704400339041364968596542250368438270362759662082054742645087332334972653624461160189360239930345062841254559099734533841436043364687235203829642068459366843329768058787833633881893132202990862596330719215643480997520396958671140528844020487812917829016206835203240601396709035982934488761378077162947332262840500325206192094477281839650850145469867587539228731802364891424891849619326884358364611331970635227676929820412898894377569236347895375443776276316698718037184639801180533580042599640452766326525187339139755479032199260555217392516818981159368053531741666235373145992546215952903273473420671192193564061684776175859374913062767728320250886323984162919053788291029490567947104973835907240981472128072322360800338403204589394120844166196598400392309249265555047745681845383727222644938953497843507629336410591352445518845014945874236318391489443069220195601625416033558503130380655070731555573965395024857329623554318874182716647383290501187208906015574473943936438883892275433044983725520942871287265514844466678745198192330198372355149800376248613288719078909473262165995090810299879479932361182572314563181284747551516688716576071652474386444326608722494476385973671401393988841356307746587993855786961800231345017541619069646869869902349299904259872451589948133465451349811586678775809695978992704575478922508237848653458631054153296668335134949985783961710696400015729522630590758432910772846478205414858503781405358835242695688020189394155490719297809071347408934208327322127058925225577316689760201915476716670895229563961418611353741970077126319715511758930573849202754555986704477749482347291075944201953261742827914187907078911346183628201559977846794959074087076356739865413032089912856344529080781418335615846529987715926534046125804985495182848622887068894987419840109542853120670596452815176736226448696504816148574199194909516670351630448775528860162649498525673500696003547947927485888681215720330463229496596871972237772890178217398834707764433559598903472385688769306015945086792717659304749068104584908537121814370651872830116374471128167525848157964109591695391015872617993775415753750469390540549509463044421852965519834207950990457101263508816694604927855937901073397422822860583638723434041905244942152205349923328444132370586146714559265241103525121108610125433416036681592926073693580837302627451220892498935756893977369958284728140283634489117023413670940105593230828110729902141230770744673226388114085097759756256682116125633877034658702187977659257438457978614160038753043760464586421338113493520581839083734269690213124264284607722566190847168104498753193075138464432485226960006913194803566322078842800538924903513183018352118402659599495809535320452002009904216246924003166143591906542242978604520999355761296883194262306491376513756589438295055904461558171911905045891174701708123457740244266176320425289513275900886730067319462636730033080710579505356716000610558186915652151485123894348081918213533508730797620950745273484298470087981875786488944638804268806476510316637497309108466272330267895417793940162772432937510737385097827371305645952455922921626079507906387804248279729578452139774416533608772049839716780333360250234827320999967966191988832854630047960709585603967229423411965893738089210735879453549345377305934067496164997076346036854104138514814433000769652573895293831948138575352565026032356209933092131488160003938295704828942385954340129704426904166383357201815391147400053383573176257162907104282263750852488484169743160917460253647109636848819624734918860482695716248832336182673113986416152197143293150852327641052659243350699437965895828758834752718806251949969810713188348817109555609664658670368764895227588990114426767813038020207020753027031617979023055405708499365069432265549758276268210131993021164006725298081612335029141831021989620904992791708810007151829521645283941723142265946077784939576330684372460522663657381594234527795389204295716021629646674290753414178836014942435996211183841701937327409598291125288318196791850237896101537574216270394247889651471942611808115587645030272375838591483427758401454635344346652718911316634958965372717012372366237681444647221261744559191137440456121768730172686091219924231350972623050764969816692677714045286530144120269191989708097171133826229665659848683863319859344883718416884412070355734764945634735363754749018113424193818472809658439391530326355784026742892346140943088649004360267661419963130103864129404410178140741599677323631973966179303352539764469278126311552538738396743786964587615407958247791290565185924981421979379236467823580695529105824355729985463805355722730452255753939186062131419346831487164518839804908377924986682032144036070119525137637916254723530182625399842386562391445202367772612285381070926836313622938641809460954529510874004026255159311946623723906609392211267370768397316060670864755943292605406766764181315237976081284368970117931655891081856458931655479921125477736536747108693745898065859506822448822959496741490268468636705180839105969664973750896066339598416465590581857581738954288049065868222674529212714868775569642329355080525715061313931997244511935754842645340054218925760116991447854703873141806737898410835843371746951936986047355769791279364028580059427157010461141959723828872680455150019391655543898785108279188484663611921798608772708251509285789314830885596564988279662149266165953451825063142308933698013809700232825882114591915212989563406726895328878455276767126880186314367264036464104358801195241627130577989518248898677710733093415294142435623815181014703372071724901372046681835113209702650686882693172654573212395222130587566716059514495157156061468979080217683365942336218056923203481515256251666280630737757683989964947429044324300598096845122675302059606367234942585286171700194669115034362991484710371362594397039757265275599731133249635225529198607450691535165707110758619681582019648969508659323370815533394049607529948134304043358331372496400757583049463045530845132761841282296740160247354639757681276521691243315144667570806629922805142957558881573482327012731966662912937512542011697138370541591021320542150277675412374707657283850220836735286030637296180371224602577221501223200786762925657189759265755758245792588247298279450740732538013288076537776009970080191885270648962553899821588539423848928657670529719864648507152020935198801108328776503463792581586958032796508790919664066783658054005414792406709163676852338015665783984278457047425262410488712666410359339179915428067977229233829610857158589218210357593072405320158695247758952318672798808358337838755781180272005134106102606424752657016094161719676803060971574877277300524916025726803280218856351122059823011498728886639026170903763118243100524422764792142345619466434355492149614755095062192926930268763545836971389456584901917083601443311553724249375645117318031889450008430272456018489285964696720094868124118629313412974825416341952100104258203282646492726896390662040632514817218795283386267376463071709310678252663012562856632157647195698289692878239118428047095163819539865718864787627165682216846687542955554995202674697181695670517584222849162817683882449071868357942840933452346328873362600328015351010034825837373361129254520320240727797819548574737219885324455110499017398958788718909453180791676746547252094347568456669214342885815161824949004663704989679280800281125529635788867897827837384335837191802987024246250850915318948228261763715471194322219412165573062017821220895202829031418931179594595086258076296859580727282688464507931673640590217898583349877360999808329244083962981888986174087557908122351705618883588772329781961302546294808253694722112822274120307688805021345226296913519654774199847416363901234822416090139220995314202963938015931621099579785425567117382904222818754573735081814520623584021338947274457382212644156651156274253592990546900007449171338731666496196340620544203854352889618784673275351981135160885186777134837013208437786274277800782073715828893255356422185558483006363936513279723009808384540855825870471719677408969432953102487654294808661790517394616977563832892461406088617488313958560157430852891309989554349311257113957636905488014604536519141381399991709885432299526472302746435651242010694043291275589371664504881959052615221851044164454937999361531217469837000332451000667923387007782120672050610026837560893486483575022139859358615637046354011427512798405774824897662715287788894212154562701012272340334685444096237287651333654954384669107468628713959318816789595759872632073839131984605372830485551846585660491839125588956244480953229105805743347826503750982147425736387463319965173048995966078260695712640420692624192634715394528653533762921545314055279671082298585000358257960622883980626810195258415857872275373634572257276582477984629460269703037361161094961856605299600094493168903617352513846258922707190650483767629849333634531182752474303669459988160146021586886756423395422647030672163477845174912099090630540437354099892653735183000726170247774847771935992265855742830097262687281496716110300542950207725999947933167087044148728174295869171714700360463591111552714422670172255344686983534200638388002289349101514458048538626919540338850729652398468523047567122490135249092692228844669854929405532478599508491596141920487928244277478668498898475170367438384222011118678347298030542833415863849552714083110427795089610643380786163727536384475430996650599593144005723009081759006688242370846564253024019347006867671217308533962284017260226224094135182727414008975571570852994568524539221947930448279148810638666545614670585974300178162572126119872165994181340720186137708567993959666272227827661658876380321089763026085849900577867502206964710564149253369588983450525144519088783479711402395529462897339327480843737543314432564453856348808767603718607536396818195689081776887166401512403690172067666701392016298871566781455267407058891517370973259737762902062327404523849341313714320177777478274448113579117428720877588073661948314363903173000548745866607676862442476093761530686781845583057898494484000217471928966642638121559518892240195604574388322296933764138183360127180041844466990505890449551576184032068562116327957677753983140912989419222995020152435623834859932265559083754181583052599785211396234157842189236854978593928651129967210445986809112155780741548898939656047020397321846691314579340348802613549537785308819015703927340896426388900913226590573715218045229521457089028819834350255931882863050110619344394139179188637881527549162935374850345724832961146270937061450995481334614666921302421235322324796366461753783800230500861251649403287282915160600263653295788202731309930113401114015243863079101512779219103631168030848558501447822867704925757753848151791771355079185205961545286767997534807515792273006356412113868091640716318082748997141723424150633307109386923781015669885431375255522066673411613726892328074693269883793918332049975262211394538555716848373674387636389163695199906347672170995018558722670841282238104876347169473804685924427816061424008011449655236071936183967660425578605668718948696005923927939502514728556548466142033571193996008655076433075382997098585528288198075811815037517883795583106840466523359753466276700682981330474916975483215825409423841694928685600694742260022541003280408827165839518219163597138922310698149587300087128246321364002903006029779428752143967619226095905355990349808059514912220783361595397084260744270468816457170923073082153441947725802286619567608688025493993628279298154974664776912213875209456246598456340729710527258737221225410046509029243457656133347110226078845691939216725992325969163557419062348049773974228862923652095637730586915779584490759744599346352236677731967335557759781956470264414841996919885819332988427823583749057140954085241472936001994537015311493091132240931901534961790252509153688073652789090915155914117142544053669101189767931263287779871355256448346182345640699809795380399250952099615470154762583669163941986171701644749483412821650154353207350792324912523877440974532001984266783411956095624537542329563052273361701904591823457724790482782012832935202244003409884333911943125388488528366035793480114855006977014682984531675291990730549060164119458316209782196646758504070167277671231904864968250025860849127857226721620655346070692610414212298598437040317069100831793198776925948236380226708464941362759186159925842902477490389187443437516201967236521481033893582199935023591495018251743867874718673270553495291600244257505743253965318168189140981915240460727611459010005368594887965759599884680629306195602313005048119281231823444355112555859504875935002225277148650955354170165973823559465170090912676492832717216657759522330410038513367536592025519235377270994666943921770022608123377723799784838941111825543166370857669843662428641034997880531339451730580519583978300252654295473622696537503205402024211248604765731325574898054967013552162112297633854512716414210167005433940357036212125299776383525309145990088983490618883575686718308738038139480416990666216930773468740372756399830343840422097370494839648393111142948132581240715086856375265556102799590201558567251509284760122516428743769895574088280962356068242305969826163231133620561979149166048550489631709207974795310689813319867765869203968233626096808332859323879654729035194607207377741465931944309327709218662848327510292977160053399964722747790501783595553043944206545591806011081836380150058234483998502622694069194388148967896450809055648915222096950429556049677883917684976578338493369983104354073859260119522479339944960313999500884154750435179602099089770615620015134815688760372542030656251131871367612216552537208293888303247657781487399313823218004090045544618692832630445055423537404149330969270295612360596504808901875120753548752823603094760056552409775111068113312825051749527734870241433915756321286170288194211857478599914271453965398733263453729778864269881671317085732920363792746498293936755807846807769227018066929146403546374060225550507544319665222626829881820883763894553855712717182460144033511767475020337295953537682392304651289391331512802438811362878646823424518517444519017262796251224684151652356762305673832027379499018166915411016792017804658972645104181048124016452423110679745443379420944083393749220999355454584258122072657855099644695527246517586577463616708086406443168951608478889521298962017876714339117808419479203720573870180668920497757687209352346024278811233499328433200268084585018386743917426384526423820709155773354749106573714259940811497578033530516008390357383619177306677821052986443478909569816398135316676757907744218530432572275071726644499681654094957499382925659296913171312260468151292114453300606251970469521806996723212739464972987334136967934692338227473405629400129440659545824976867136861340932850766591781994453207373942698489742971501602305428419634303348577212788728541234503503412748685588934553595545551879018805841281013452216390004697855969522990461016938454903212316485261705131522555153315759144921852865409051131157426538005645012698971031365961943828058425441975984217623051870999441735766172690262457355086349669482114218861444756340869206106636729827414850643692238520228272704365056307633915989077131047068170630930243284223015717345310369404200762492228678883118787094872578851458633376361779060022319727470805281714960805142330776628876667886174132094483564637495526792615005642352973361728184254868175642033197892468485050410450171225104261499279714818334722761000345777782171507437375502926055187741508798446747928469416453804771752434251057767442540001164351167732577574163819524419243680142646173345303285771992057218440704723488032395337049411901092442600062081163781114006266109669067795038617449486513218734287172258184454900560815797698385418225522228636317164941958694511866483974192606950728360655345023202264879384172144553538057899130467899234750888150528705624695845626820622644200750589192080297932017852398599114469927191338045597602290266492866701135185533584224894841965165159606864937504052022628296207747787923569962301487805117439638231283127854356429563400626746329660343039802179340800286427515124856767245397042513963746391409612441218132311714451420274532454782238650511196670458764978141954190908855741473203948422638455530333914396268709225672327130693693692954234146576791962500471227726449736339285296730065460551963646722431114479876189665222115127510158658298587646961578804323400088278340096120726742506228652759276952698773649716418151050541826683546726325507701320433867787979144529603531351260921292741941568198761906247006891068244745263221492212390462066644835655409727485704480807505207660295308725647375425728161017505225791424122519123428750507830732291215644500425329685650749222302108185713769856166899781767196098649191580679128873183997368164904112346879127530782942659519388352262293766443353557917366243857932903919857056837319656920346341739056435885980642808004387171836234069804997836314605302779917620023891799491541343366205459833945856088723617306552970843724737504348698494095157454737190791581332358135525285931670813644343384655805686766055684142428502719387632666249405529413897798529052917111581517481345629482716425243514826645941859670936239944950442138153811139177097929393731374826508497740346248870832239968675089434460184009792131727044512007250675492546680687738541853925081420014777523309983961545332462217962734024891243836037288232069888895825603778283116159928431557819532134055714827594715927711087020793697356074690506373586253639409347789249588887354702740850605311946847300582191941185462461040287110525662374760215213306491669712678383326147048044008826958021810074555054435331206293117415589779237700341992951313242025059986780997257696163914896841044497086354909591903812140513733345840869256563553114028729886997630044393913053881544611398920351477435198782564683495597964842361449625015691985722363938866685346861014725029589238427938597007059412752801197758310625469208523354433546745174639470859300824997435904066648746719593072346382596386824406487593826520993691904786789615961076174938671161216847527490151653714311790825337864692462704446924495965275033144686521183708574727186241549802820522407738032130321930759277718624012683436827973786400840427692221092229249827328721385957176675906255629088921315420436574291470738902499101156722652054472727130424904498875814604608041579108598803737906193074646188069338511921770269219537164464128862220285776183422231941335936091405568102949619910959843771091863021799343733477294431915555565753753661382564458909746505237087208628221884953996235393325112473634889257147047575776865085076374719779298299498069911648595365319346748089569135873995385777737663384282937405082795514748965890941278767073937305424779410105899106762812876425403712313352544940954442168418836885057589640450394331399091957969956284519919312939525733005929767645708231950802249083550907392639484277397074281028122281063022795608534809935113093070965655820085786643219887519397868344709784936342039061300314206242057528353432883811815605609296393134575306000414084670767791115357442718722739392131135976772276461528420296764753091650086515332110919036602010917988588071663852991398988198217937437005041059677686257881829885734676166139496487575864731279415302462660063749104704056868726916004504571364227642434510094935829643304004040840003994156908192201238678928064838170196874404987467178038648645604239919240304613753156714539156320013697855599852458052731077238187587031997027486475589010127210963441025916892217589064545686897105670847065095519003319892304551242123919645432264837098269414421464322446839685605735201911318374937013026194442870840870545724367502087199928671436301478911746292394707095889722569732179469193289758979504994415312175065192782148379807388689259693719694367980675140929949200829163755608120967650402990380671377520492233343291899962403871758683515938631663696701404664256167348714007248060490755535628421441152068205068298437915405956103978489388717309814126562473450851480752689095468510399703891693060275100788174805670673501540924509537279175056390109270745657054445180272205480830160478826402532165032662693401170312255515674922988558034271643074104386742840605819256712614065716101847368447710935922614672467400062891388673671466276497121059674029548644558317891207314889813355872734584428268329085074374566880915091530121597942287026901470397677205177998021939317045942308854527701901780664794099926434819686430445372376588501124974347774643206568982058386755709759815903257532883856030237919279317123397365716668210669965810099578799087880337076536975089034434603739504641688166113346488171988977356658464470873980674090820342232961990190409624278661209610627657502444919092245372261376400598444768478562295667789893219646115366855506962164648627866480044907425420054781800615631348387284101424346585488857223573959029814645226862881713129537357992831288050444738472049517036165873840140504515744112596177319549914720736765661200516778797964340142854638399664899667243928179291618030294158881846573944115628165755619070999983562952098260299852622458414890590527388043091624651192352085000038708839099819452994804768032898628174810172276570353002355592600513861096563558789167726041683070871626162277501431188894310662238525440043515888474887287505528301821673411925560398942912530563811640018304121940664122021030373145245249808204737760745181923389632684397965710884763532149812970788909115649104469001405929584750967127977001881481514019635554525558342192775232098934211845412396297445859058565820055003839181220084525331567763890272906717790530579703719380364805090218625951781138493662475677290692735552048310790980792911602927225581170883846053732658604096045946142439016442581178129366861449512834608461140441680874010978269792306167967220379305416164137209465380939838912768731904247639923748876874409571386489466372781321991326065386108304247649874822382318645883670385850319954995552198669206787311433873098717655782315887483424386593550337798963414828901407184694773302912810891256558492556598360514718440436028776536953273892024861453263071205207032130917834325917778582173615863924027018777181353771455210204226289144944244951441882641672434284318843308201661016763960306741749648061721406797825028496155171009333481991116091217309414685561620521249282764395029401004762517716032285460037930480236658456746218454768944488850133903784205013037083961912249933389618782432797590951625526467866225561058243105348646626029455595459777944306151910757295599981773672580399675719636865281378810827541245349996168831810987169017456236954570833622994690937927297597079433518442820425500446604103640273319950388744660712210484549985389699166989965387796145745114621046874930673102398850590415060297904713570704792197786082621292563647816080254335707540641518033446852965624354950281795028575928596499088257920777383060646259867606775084324132258148508439233391458883343941375503725109193094179379972274977520521395419093654312544405415685072370381786314192313662416617706882342284430259515961856946692286239374179648534425176826314630280237517856601734745024411842837455021102190350737595326151301781398932551149406705348868318895344437902695121935069658137629373981890287093853822360437097296636539955798492747041638065976571678634298774858476619773778194237994213789449578445895145489944090181555017029049862682069157451905306112401463680068974281958860159100660863128193897069752712593088551802796305357076953785349980969219365473315755257652633033626459903747074024664872474868319371732189589968928891490662669238399378807940881901259063956383492690387980101450492846049989766311388300138814551039174563913700888065046632934801256466450011862517800935333540411205883125289412608798981996539734989750178374234789359563686421376954464107991895914897908901720028866823394450562241788930158964438662786144406137450364873453360218832445646558712286834574018006552247634617168506388091063271709919119895359047758747404059805871027878035123242036726536215098157912205979866029319827527505816819168269142807447009041530253918101118287081253550158965236992678150182100263917389005729239693812553245773342529539589636791944540011020596384620562823488877234612836528029385675291381588209770905324673681808712725799383217133628099766286034706040085878760899386764466848065673291515390025113073738048097727169004548436802915520311310488381453714848982127512459350151161086366330736921124016685580756301486058619653476519126608199095205399222476789192359572850561713424743477362360131220332539152177800293165927905327371784817842399020098797487634618709728518310310186154882103291862877100799562682210690495618746540672053547009372711238752959613734024105723808762997307086350520621288843388049980051884041332344905017053666872558134814113372773496177566261845746820723352445535692561559303119232631535500834068082340140172527429287484265721007737456987405599514722538187685791932423353060957497720242888003437761978285058706865892486496531607338143777590400576019291441052539658077954875879709917145912407767858189698355292830807587682747089753880507067858918741927912076546193254694577335586430803061994613727123276668925115877574603424129604024888043991755951136910392215050610992650591944645040420788496628320620626512114545471641526711327871163075223271015983614121264255655768908033540526491582129929277633926429990246837128784205119475359269193266230584937885479226983368251157544781873464123709006951119437875340563283822244254319670780691485252972708699652682711687213763278447787075874436438929825719681418011179624057046917897071666428447266081639056634551788993024570048108175970965281547003047972222799693816847297998762614843179427235910093990297207873903007431733099568569789660569673698128436681731805369863621730022318772910843051238757859464851599093961254255590458359293796143486161981779317033864888201484588642579395452027050484975980058409272690779484582548866150655726251556547672625547670475964344664831436905519033759788815098740183584106281062719543861663537907614288761166482328792662103032953368343240340590753628731740543538728482709162072780480530851214650262471041504604054737983562565571034462526267231406029526473330121850093574943046593255075875004254181443360907042483970612853106052180997158780913232816828759008988811453601440662118687481687498026612540933877070759981371725468499969764761327483864026753515738514988492616954612169568383497411578496048669084187185078009169856930698831507838641054442040983314645528835937936767372078686439602046344223697499721424023566982791098081269142240999742232634403398050064369303339288516391584664024200342288326397610766145570594159968432698857862515795609567129801916871196805009841814030714109733785380347577933349129818066401935189221865212127094285680434233466342117163635574882004152968401204838610583586830996436452437440683221643071115744415462189861687715077344214356132257132773617187797028033641234155048270863800909364229682630379512380128922608082443080288016231432076524569602923877949553014148148419237815455386309200349618101100757883900552738617311613855841506722369937997020026833503233500979292957557638534321796657432742151416413396812602865076718312206752362391192249208222201872047353540262282637109507700256352944357626192093953060574478925979028836819017740831333936100360923675198393231217861093722956983523645339093887804010411899353186030604574252378998625165553741766885057841114642204229743039236104191981531117732506859081772956958944510777878542051049905352157366588807977332666250930590596317124931575983731716630966988690344182999023229934748279305661375792062762789421226119588377040740275430761059528198451695752454507863548245354288499889929307367327351010576227660876768215066698637443166181307953859095797853719437249606040900389483802294704932434078467799227866875061211675597780413757895857398081975227101531595357614802323387274703851975870646867521065425747128082314525450207035746559399549414060089763879006610520431713969730034163553229652885753950326076657952995315674773464689628861919337407731574089722317147754821389477764760202958295878341158641820861760899418598155308002045899804879431270753589005618480534411399383459833191391317275105313157309690398432044745171595986661659868268823473247470186822808495269530365595961323594256634091280305576710661165759171147654702779976467565778256822012765266446593133291929961185004035722832760006737890401780404455449939551682448088246423234856109170227901272445387119966216793651893452233882725628444400792867188141111785425890153325952882497013920796030910345909599470462911349548350066903229826351514584941801638291634550735326315210615589863922366680430231757633851581238943541783971401204690542983692163177653979162554066992959506608948054434237940062468635086300072061169074227505971129828650874407290329600538476122882453416756738597588965294290300100656529537266774746519857661721772652116046787714538645739402151213542726028791248345866880130854607437210917579847050201480440040291293546322977980198746887723029843694242497579365495915122701425185742987529618306771823462605841562782959577495416542121317865668065288704988990454941067204089685213019390648876808717860834687878462129422805644532308587675929178480111618714038497223632503905154585957133223126938662060877624279068727598730806854720933347650160480387454117302115726359356379920500883551981957285570481824685139596934631481268262986587903026010041771941458632060660290893068865231621687788765331275299083048168475975191959989875714699270381598617651231275703925323272682138628299442587782114576218243282894454529146103170008818930669850338770506618602425180340785986565751473710897403155072436745109994076765292759326392704630317817509612378131508465266820698689441320758074784984536736011454688352668745741221290821259901400027636846533095181308757417047945210411340890807732708893539898851127501432388793489422762953735629640246909337743731350832065344185277707581011828452348237476285788645800425007769667739710966381009022034589373249793100794373654093670314376701636324269794898372819329640220173586530140037925361176985627666757338271679771742386650629020186254636261634057032029677468170247245898618027658025642362934745262091401309700048999184693961914939681852799767450152288891070914587270655144747017452570873042280716345513723987791604635938241793855191308342574488924649677457768998165390078109625714923547253817221870240516262786079484218569302755226634985308780498372795282362468010635601074891974036667082605158140181897341545705247358902836375944186929295952177009364857229020692860764217906892397137793091314436333111154121626723219649215295293408019680511697988793091767648878068593062544288336663420638242947291958123569554733434256791524885888492962678184848504200533266457197681576429431915818062119809224384654138663698768970919610823862643561500598140359583651903153711688109009619962159843317469105055612493128528751456009244188913559506203997070244143596704022935709732246762811127904265223565512330790499511305911521045214268008533965609560703883437194471817406659402570962142923028647292485709986827469868588363102897289872302528068604370359257030213630110814821215793548952988223526397235821443877166020443792172138419027211854339640082629463205680181407583735746807574835078037603484745388542127720341668709731685770376689397253310527177496014368010430016876323143739828027496560179028675346673014525880501110514989330443638672266942589120733848679121033259577097961639956206988011027396802624621561764520305720962244925826617226418124443951448573565784250957899525895740321345510210888582095241003530770446124411107432400638452357804508590320719402029008817304671712881514941032265798930730157685010821976399373864621156088355533691356930552503495637509696417733184626900643244880132172693661859605970717026045396050376291968413826304432379617563327576382547183004322032973423523114961490599472661810804459515922999562884983183269633227143148290411009517531702658892036620443007562253748339113206961350341868483558872086189408294110988069971037775777904549752262252127639449035687504229001087959583252736914255072001068752681954915823517119187055576567884595662078844432218623821842679416637282705570579187569994371366148389845682835028417600853415337222624579527641914396569449020520577785641167316009250976571944904824089394178451021778857747145665469709904869371524455075775737421300473409254359972758368072254467388837261628680778429866405890828237003269600636616433870975343198770638873904805073056905301117844629855368704445102301041542255485699247184066953270518225895869575424827558410197693056618850246592521665014139516193811301560790697321169223540419374430931423968306499445945076594686678983252041353730424130101589193289692042429758758769263717763446082811508147858738411869328422447923939260727352744172786796420213576488660065731667439742628194353098901947597338249656172738627278467361128766363547692111882929774223740080017241322561110744020496792392323391376050388400575852030543303812732179237419214447754049616946604491754584999465386352759331069377734249147239120531353571965421159534453369912848910379985818318624387725506978466908388933753254157559839726303513699023608461643739376602082090197843938293531948372430209556324225595998460729987937658830518634669710891279627702354521365923935332215431098253441487334566450202896306084047612777623395903830627821808158963722244526022540857558377953844805572823336847720108328398963485575258822176608258002006145859837801125525695940130306193400652060203856574913510776268247701721926828466339298863265050427988754875642041666972913656052193886140153854673509049607945883985061426026229135870729046205784379482498034112702371923476531521470791559257426204159900751430903676250951485097870712023294192500922954256812782557240651242950195455968582594537702321242553048130031759752471194867943062678552114191052092780221046194094827556439437454112910785947192050012913601485273406426728391448712103732374811237395269272105751515481672912564405257787134335164470104972462330916958352246855579069149034522153249880205452132657662201642204759552122220423377498048749461298788689392738708761324199525887697115678398274134553351431413260733335557367608727259601225150109633583000149940418086667463193882358839165658034753948658692502597765509675027471350850606601623537060256929613457404108507190955281857510587493995550195337987618428167533380151332349236605955251006705859995973536882984724504977194894583820365918999062206548631679324013261778494079500483311594530135012659764650741526547668196800146324007038319542729791645073664040871333651830835305331767354474032320628850666720827552487951287220671018961562898311893780719459586058642935255690010357452443507276352085138074737722122454831681441945163514206773044131050252690728989583259954450238633239170514651137242271562293341318697746974935883255883565911463845086667548016812589227692047479075348476776812473185331403991209171515968991664988933407121727930141936719328690168913664222426025672365719946571217248205369383437621960299087784828467108861849022024910337287972039482078438785863959568261927818859720189353370121689755731560240791454958839239440108928365823617755676299480896046665391365066410515069076040932779854845248609107445932262414904216035203099635697512618146526936106620903601989164838752244739561754141454142581767539769351392512063635054784589154118170915247066437660927891700062137248446630025672892910456177794784502093828265877267793496175887783134649478426844372005227743547975253869671862932329819416550034874123803095008141076923381366955959402077409700803029141645019442402285130811004638670197210423038189712250699156159728511097059417142011941457974227014766633706656882430081803904202155409380487013558649724362923624815624953693165890358346521612369091561137581438242979790793646404620821347517151795149935109545946980160905662893491118956926120423008791013932931983702476734982578778806101499964915531450369510280619744668700367686386764797520582086818115716837486300129015122925088023416968412314683875703186184085034033394296277485366182194118640895200903554555895704160062514158186903979133589398269771211984362325689867810949824222070846088679258794258015949656793817179282305675953131798010968873300956536217861420929226207359701600050867657392474403877520000917235927669387180236264415737903247960761845527645870286271518807044573850957228142847588256410079266672583493142245915243574521289362357205792331184252102332994394660712241115772150705207747062038093081206024021004584311031060952856553619967817122293067804226215465106570076530043530445919897578140331739141863108773514531721369678612195078740831608292874581195146523819085679913946450359071570188267140555463343076724921786220644236682512625101341104183175776598345385914488812113749624069425808842245082619121011338405317491961930048100538390149401932692075858826549973954269205823997263739005458656392315181797048545439612956201828285148109040840759520473801912216221605230873013047741922283099359683547898950309161126756641634721772591719376137334678555120670223027011626628070322982556438674405454033372915766177133648974295538412231448567921086639561670721563178359647607629509931030899581482036009046186594664532213931821464365674102406303769314369960615913758209768060628833073252622959883623823346484649826269836206001846277712969254860751978968804622192744361019473069147955483291605109987317503631621715081418054644733365824520291115904975316624266426412110393391740746722213300505428247537992905737598007572459447023924520296793332574170737692417027399419884708009706273885629864354387739431626928921254700078951156219245363482438667742593441567071853785714228179338806353942996448299091619468053549529213412281281887479428663318083319226389126203172722839734840518247066510357120786939852226477970263656893880011035047334036108206719974473722272941674961437774537210761848594609841944567183459547696131295879533998048274863355155778403382155301490562980860144822950822284044062100433026194767957513674760575535082069013349906705576856056790334979414509593365531950684703688563696183139172608920221654319688900193928537151746778097878125739165413281558313239785572597274120156778692858090442245983719982313860669980570919598373740843961776928234601323629329178760973794327742382478024990845398342829958130515279155968277512678968480865555626946812655493560795259760850983191310954307409367693396060288843306916713544655153975784429454597767665191620055402358834446817666571451257622901621985174653156842563199482439005459908094072864895711037910202582202746530271975924447739536613815481702949700877643333281624758470884371044328280789381853091848509804669210366340612437980357017893290592365501911678116186613681926780945298391559001113147007348821668817681403241243370896484459091918604510550368371879571805125692061933523664008699323939524194442019953902139257852789160781702593509191759576667949182782355124851468951411063838571207769045365607430219432066066469367829192914320647610060661573851543584057123292029366071611681344774239513337156188372875176668896740085559539441704002560611802197801605758329256429568842829160863195816432908416218935889049987394925635874829225014734543782448096695412237613518438812900840107019686407470739864507645527693379796065899443154599105889408818481409798422274601484000841284184993345825854269097111315768720244008110781530702066058345618233396287346623025946402858474635065885833140644610492100619541711552409479349600379750473165977678418318453371776697330949947588760157595945723198404377428403813395221074243905951737622425655829461875644532669642767810659299558245828746513415552507677180822788079727952481243109073668515061881758969146190796933698963699897855312036260480261985046807030389138597251276330393825320996732398588013587270055353864749774174121243366126925108602375332681777290340350205647431091862827696612654967610644194008353031975114311321037555733120832103779840864396519572912591033894047849386976780919425423669786533569308910782019626412435813849318960445700512621580944289807899591964845001245259657711782399715061306637988734071052255854810757343194341948438950919070774880737028387664052511857080460671448855349022521111806643176214180277298980600308589796408358992054411363416752808817352151849236636449358104076691866597697081166619099686479047501568984325402103191841974548157038383263325751148715764446107530825970041538272747452012518602724449657365229119364312405951548255845064847093095197090369027568899595458315773645030845930886814522337460471428416266635342789984080863430381050102536830954757400363816334426695322286296000201454948283326197321862149215481135278706392368166500233797484259246159374532578391081604563659886042200378224353649965682727796261076018786803603457932429398340247116574647130404705869336217280351902269083376790520103310403543833171638016916402255698721850371152034086151196112798490269657209287274258556569681907444983614756298816290593016335074484180065344974143665748623378540759378336749945260897203374466943244532466486853525966450300401233758640842147481766151208775930399136819250973749766819230846468154081162202665851762579971929262970306681385104929697129787802907881329626167512573484235330150528054176508683657701268241893311913460952843552051317609977818110811953972801013867242805056712270510251233873535593121263306262844318828009577542742142700718558426679773221497445989528582214737596905056933321857151673660784836992459426125898709334938391637230957020247310971179166614254188668093171050317276821494874158041660897323048101052303299819910851220109101089367304836686074200411372155550976609450141611955432989874643158372652924431874310814172248378762201788785793488381784866555997073551016719646587627159063832129314847823202542213343040378646050896446970164524561859614190372038972348829505152961076710458827305807931145653059409757186062158524672879993031570410070303941911053007417359999628737912709786165149845473941429113292157050864913121299516354128149980138263560046940138812629122638795909656747834142885818544951825588064678155114270185713123450688679129700261476996917394482064273814968951655752861688095287780935055517664358944989664298002127033324095291275096360118971925584887742476962155225353129822161583771062804129262558794072844356798494163345458874669811605458818428314341859618614448668058144259437885765370895181416170760896234219654066539137443355183131896100125555414506759882068460389338654813170471223119818519718193712818687241730896328986781122381783864644402534442281306293190367961138463678706966885843668934554773928629914482828132264636507915701875012558084426016629216365317226437204327260819828878553232785429794644100201751284476809141785964050175854479504044420514456287430251116747093843656505351073433607747387120905249985950641970427344066289398518247529321385470202347069776733848066786815892681251469496754093085546202007640839788693021635218783085826756648318190661064028198228680151588595596840902295044521682961242383110918180777234432560979921052389626231663890141297440251508787762447743802004909468732037646513688361502731970493265858436920888064640897112514020349294188334712968530706137659507683615824728731915288899635079650523252077526004675971139466609147021589147378927986810922164712507941783715424718960588346293857600361186231514789655872278608769974884513077516316170967764422580542543749469636626676510484829442609400463095565827403384070788162345313407481803535483086174494592041775707666083426907004358049251282525349941666823085233784584225888067156526140019689948076715582515161837945889452502386330788874041501088082130540771115728231336230033511428424380310813853645124073328652061411285996896697652253031113391673483179447637819132680046513306623442290224078359582229756834140330139839489060666648247849395959444913033956711642933578091516060865562759708692872618280591488719327923716358062991890223082969718988449026821391914474327465350489555846778357342703462491305600366943945952525793805126959112024914808701338606542041044563091461679700498767665993112586192290757826502403261426218751702725795868171232540311423070702306393029379226102857496481450030851233685767431435931434626277501965161117945847192194603485789531064124726975900955941571500722446722267115557576545666318962129099183556299554326413230091121919815907828483503588177580143541766434802065556453364512577573627870501823149048806724192294425833944099266596198765931154330754969418635985682090487076525485512638590006319896517803212027762665711735288773592730807498653810876394469004990630370982299416764065297844575852085076711566873747472704629495168028305225783898236127597078797632104941789029675399826186229945469157331708755107955564747856315850748349845829706118207437367742704572546368887024430435411021438773573561648838455292490526928515862983876019933497093418056641727896529567002630231333540142649744529714209260145102947366444807375417938510707387959164295534460780400630193580764014974511608451502665968485000931349517287910464435208123571826446327331728105525931743005351722623926242039332759728229062454452142639316244425895810981346412978479693535594284759047047005452292310316902252520942425034490789655302155475803085013379128713874209267895432147503598008037583952379372143074438144109937940396936853227429821856633052722420425379777435894096313660030786250071446234693764554672508286908292139372053888124862155714033779813656030323263096763558369191649385973750968453557378836378466831109593952426151543078964360946629523816231747396886763479666326120541213687461631188794177354087552233543371366272817824263850494175631172981291924229055833694187748152676549823605549739914622464894630884776996566709631134505827181355190813054706318553086997067308868171659120285188661309308168198371592857404103742709488237727463820518036043404544690184105602323458851570035858359481361148239512810220039337355492535716413021446953531285772619011334686005272124039292691772782190585885207333580819545064690650666386723110829506947093513316223413504771554443892667747119954535408994074772816802756072356118771846664081757325139823397164914424497704583380680640936565355132692069190964120626891675724692265136489088691962997998066904106146758798321890988179527506126835020250059714011290779325007368834444777557042876424528762164031483317775244523356266319821913276955814301991284298027787864613915823201013247245552505339050818048360322010157805546840321568656953866990195360723217310157093858618354881875308595533802775819726905188534845642764090516106589452252535274360607024605923582889005974224441530585772541085986219146545368464030247019907221290466439511292962538208629672185994936798997306813383623430015511035780075233715692376628592843061640408481888809226965614586359466013554922394320935702770363898269619677509343403474711616384913089336088375392000763263332641424763071641148365484726993998467508059819420324687194889445807067659102125133106861443729048233878086798639040182409524352473403194124659060657605346625780316857585111972878510649259581903311803038739846417464683230346622324132489126084689765856302720257293819187977659235204034203858968515210782697967513127637005578933258543588586444083454103141813586082526273582281458413853697941100161290830564538254222234577874754722443499953521911410302160862453183645102479887453376235971386734003906092594154305464565026880207229336047028276802247071914511084187319364803344410166490422833806754219808872528850554997773635835449883676451670822277150529357625061568512366625169975822448205536798504150683186115469974622420801470548077629442138830904943175763662497857545550569611618767955078742412601954698213266102396657808506499350534144728269289251099197563477722284539770420281421559404501343981834307717088520166499957895160555954339234386850402029518385417209662111475091353460624888811079853431265384054515845175347752505614218646583753252418088888616531940421807365679691493878049887593858665801176695061304869352860113085067432373792764900760606196745883121572493999865065192045900630067334288050471782265013935327932095565964986560469839488012849794117973609126669955775769909157120336733708897505760729880105385906338189846662431287692464410326711942048540445313154201755386172472437075305167652992702142466605530104578147704675784121525148261288656605558248222625336462101215699013594633957105838008408114801861382511191553326385152988544804826936608970894429975206765396494217891193038193878378364399453918721831315305233468705117952357080393136573794776042997452447068342713376002386190927838741372418532173998370775658363351382468896916703240427093026226858583907880200538609530258563908846392562150977779875641281491877319658885279568109127669249672283474033779872247589172385426457696129734709294087658631853533558268278010966477514153654138468947213430014330217434376552701782027254877358398081474405770217409800413569256917276613003076282367102007909718942294861780175249167892218791751969162950066918101073581746116203612359885751961919697459896240325333784556813643938099542299032816299948331618391745217796224804864307405248329886669364712597997114413545740537988155612816917329358334127387701965716754861380651698465642399221099118994547393947918419985772429032325167733852810094762562476767994917036973727501507240787156308987486551012696257125242871363079729881324732216181918926608488389881327718208870830590149361485043796351943125027301427221799110344940915797867244701837692739584230333199040595550333438659897744430541142890277992669681591953308887926236290546860947154375100510761295389038154571501006773476039884347805046051696540320711151054695678398870363689632828461881918396029064305581300100885668189286969915883508974969519508215327131118668183283603879636782772881317547749301816376085807187008015868873643386186213358477860451986636129022039386310829796791200032111829301948976460017304424887695673082313291125693524415848372757439360209597840703433274812351016835190487885533852124072262687332202570151685852427715896099357829426659896304890569010001930812766739175167679726631312367385112060361164402643521140755063013417258337767448193751789941440879088092005125194903961516874832414856249620770195501756043092899109286031570120997332228240413536342231072479121867325585953761077314064974256192661902126283079851874607400625780559182958119418546056560766684562278149881275483878304972749187850715435309709405708961529885369342031078124921591883979712293657835089297188166022671705265708692828575646110033713324739048704932172546922299323754825251807434869063373575556001780281384807141029292731223786236547020552927968393000299108602558646896406240021036399641145944511039427592976540228151033031094692947924731531619685947155560485148435562011995280916343829648065762906647200620595445656877290615077614546795340597434823391067205313517729567794050031386406943969075413571172308124544251209281584845002211109968536638197888573298080529784194397582598226921193459183887507673654585408808299075338610353089371425821686247586569777093683945790054068196530291279852647830450565353406128162110509974675693185116263803100268862086942369598339301793875074803276001293196488768280013994447171703952438777331280902977651728478569647379120241089191436242656298468570391010781340546542369579042259453989661789686345279032623948076887489158830172870355492075298881615853790932482703423817218335678655275477067445525918424233247326761061240911627112280996645530949542682730818869093591652166529056044335254885066730840487632532908130179318356913811624107860343891297750755327232812171287620457140825399980211410887319172845824472337605671210321718460951832827576566563595132940216998156654401481071148396521959947035081547018536189232159888517787224811276782719390278244453223277596474330276604529750228022149813823564296549737089772309156463072468148544801539880367890311967298893265885942497275677750644538733140025622466190570655729423703152520325356703423645739303292581166874206016274901946440360693865810494374484599736534833021099540658994989649465108100364758656946626201249565573084550888158802290698292950130049976980762037440579851204204475341466101446218743963050004384517127004654080819277713521463423995270315992528176622650313812917865901944555427154845867963683357111645395412925236958306105308954836778913270665258248560011838001311823658289344364336052556133038288103490065888289474810934997270833853431534708184967834824221161829241618269248346817175222536775064851199009420767022817324629832339577726468031823956481417464886356575893880437694836542453219883019866001681265845445061188694864421582134261760999811167450120188000708431516079122567411491621775311306688756217400691733358192167237062280166967701864977688412223519343255392179772729270131791718592247931634605597196406769339617215400193903315941430965271698975394271595428191524760826184563893875572473786150681021369297280172167502311158776179149945218097807073524876725186416162442633136501617865463261263127245057424061607095317960038206767473469628889035402183220995153290822726248409009432000741733199420098420194969636618613361197364563525994535463243332843559269034231109985047354148843561888607754582079466893835502860905282079629720637304567623237860966129765227432593320372937357056498528153695151839120485843517766119080082145342216355687565755144209554603586832851786383365629404733422065027089387353348360801784014554085678068309707060476142010720058964128327824418999999769579296511718234666162591005838312836348747404344687500495773379540531557776174172167200555947251157224764914165497227323990457637005550392178267782498500398448048611584712936651211328885472662118296521670216899596084419648924418896876119110756959062792372010019486657606412039165755289630981064068381197033277162808345659819842921852244714120960550259253110214354641356739396968205002548497954277243793677084912688876846964820074532588419712300544779509004360357826061463895797622769140247606060538253464743329702312148680930151248911353802135650886925151093286707646845627672489196254681072261317557470664202824810773067661498927105732967225059023914292524383161607320186765300038412109510227934279590455491557255332593757438528011520724302548849800171427672545747258936855823492605789836704147990816428684545161206656145774735092702627125750350212935578853344700525029405782326492641635746666705481999419916458812141943254092036881944026673640436877772015477375603303373474152648697882166530465828225400802066080318564193243588933524486417530338822930190820392113967228965761802961825796402555361147817439797890668707211518872599630866355953483726119634659322208340933923306789562444611459864802897803584638087725470357810884635292017644729593855068793697377428184773913021168150316745398917970133892225304751172040883843443732093631656817172511941138987215047160997777444964201521198412332556841636244997673041236756713208885381046970871258160883886292177724218207530439748352886563111833794877769285527104400820372156965273544580677489326551058148926880599066996635978289984352745898430479664434938957960315186999512587722721419433577937712688856943660074057584960460739929490848319525779054569310591722216445007795652729170921485369157563131662119577048962737867617931455001433374963792888878917630305955603924909348941555484727637890349157638783631834425374292871494119392517495514077130171728476674609271235703777814021484218490827486631540421354343130153067545353708107469091184392099013958431915818564033538263095717914912239789025591797443721087312637768379389621541395131635375149805030257895527407574504007201712662755368129576844859328026905510269729950583675562773532045567146129250419321717274221639677911858819384213617892918639210064952590890323403187711285450451443824035617875898274446046482100965296946334302195497738800411332898273158839130887747280386139002708711966726569233407818202191368171411091266858043992638459406295669010916534457523720764910272737070631375629621883317755199129587967325311482379154100217214398783477302108252106451938384432116653409164529422248368583699379283012748636290884220597988033676719965322008510445172783015137209620417712845025286076757765701501453168005874135479785172574194248653890164314269149958812618352705318829833089452649381796709361067705758999031524685777172451605066694928785173354182666937939531392267920654611376577159974454092304154436593288031397344920177766037564102453928329545443971790935276211165845061078614275689936710406448739439141470963148329830384936275088399391591964480975587226497057546235192354333272825875227040477592858650587888067644642003004322049690546435361293227033662575860230810226165009157479328113086230279123846281917020078973534226055474106286373150540044580445496524326326031578292655441371013057040173109075466202474320844968453862881177690388985989311961942652297039126839309633122505496830519771677133644922216886953748594401709803971024882466433858313485416032942381950328395245286889495701077357407469256791974112318089845911606216461046650528645041333529753084206385538715037752251229653093030213538349332210676320176101580297001834755355730171808218644882879621901231900552428379277989565433469712696941586842321842767502881445862686354629669555420656910339864358647877429691663775449114114979442300538229901874984371309887439309046597992517046290235390061816084895551504634677169776043531633590801241564787067417478687605352439974891755618546509684987817600749212617214889057179376261795980528199464487418834217816976066074713696599261857097889486559031497799845717005036660060289770834452128191937027185974541278933458367911788808624566573221560817900098617463358160592644272290710168340047223055419863475876264829200064890245560817080475098316573130355016623826532405244330940220554004748140343808488867285365828514176097398991227951142426759708972978890157266863790013954835206568081079020664838696612298824799499519624716751025491337221281697468101200038787011691619230607247373751496869359541902631156500150383415634061818075515040096303966217788109116287239762960383556027505225122888857816306794826795357500676239178715100067331737906755872698345598594311316066563799852776293755281130811255585064983815995017866589880742608188948901759994823814331586831037018530277631341399357530005693882022475112646228899075963137774631482959578362389681527496789410629755012596137008124867178730879930136573595080994531647264869272843613450057025669001697523633479468302425690563586613167831407341316365591285467983586925123998837247123677697083472816746700404473234613979233077374386440389802518104021925628083648079417871881516416972890909729713131676525568312871806657060051392608014984366130643367561743397108171555833920122901211589984530074311334808856698193117492709438076273851211091570610017633645593746494800007580125235522903018447733317895806668187981065953926620651183826830569406953347059455481475359939015503099779803208201408175723873682173565210037594364134269977537489511541294749079552183638028020694319425030120856655407915014422403979080781610186391265714926636690379978651255326943537969272063747153321319553152330650992792971294698794306997193606664194567362409391432539493083074931598135619097575818279894106069156787340207081601147419558357930427725713756623214793429067698965614689295701629349450356693355556243191761157105613273752987032499708251986938405474690139402606827119059631458980100090520895940541018150142402515955831191993196372988325339643256466856726334315249361062066388631742871805324736600103992209533364411794463722798410424519017833132021557626065162993326755297746616621200929802675801252650771188138259821826942824290327706667833057506307972074089609008590601500998878371441292666404623258134474994827752925819969845609461437525506065315748911392619942212435244968666816528055771417561894707275997041963371649449195586751911851069178580470675831302157761561474161122846455256202246139098380812075527821089115240916729629813610169025504145934121499939292551406845384652809893630599757594958700269571111724169270176082541573629877387754581470869859275522034187318813363475320249410331650314938453293791599038401605109151571086106316137525790456718255999976896831778078617888471247070244213636411717643210704683225404042422632162031751520110504617058091596489096432620309034787384135698984935269555162048600805886842682887509650801303197701589484056805955504919805745884485216334881820039657202998085956703388651294330143694970935034304635328330751757420527593841386739514348632952972125582387775533844061956840356115735753417149986315154450862570269794577177065020884721561726006457390345595663831969148180148337317026054920475716261807304642453721046940283625146329351093583863092534906444456459316679365136981538324384463628782803770127030741977920798903056939441889585890560324889345811453606211550525651803309887058860043150926086227273962676203106370932611868170142623822926320487379675604276748441247541878437925044718947538026912184790576716442450215899311781398000163031635082353661904836782932026065174734041612559025407305353029243521615567457103156109789302051909282789745535206146440097774923296385417550311670825815729556691724127516140743744105022726005062459297347268474455683913193767481414736818296518519829799917909887544734503649324106164307793083467352528192072607369964820336629941552402033118132676684923286082148600781676530936242668958650586982127337076900949677899203501200383293453373386543616240026356743456261787195122643230721197439195200576027840610959804154863310487030179547081198663976181971499612227312030546089350660183838410484250077378186952250836109407213308098895175815334581340169149872584800105543008885891964944051655010862501508495513588181974885842216300012815759194612004402671851598253951072915803318408742219751038121160091087627194296603285095882368467084495045126376186895695428469737404371376191745124649741870281515494027445440919621510069897754756475308790436821875704111492347840430066059716137685857815747201816378218748669579504223769481531957224723697460658114124309958038258256705570159077040184175300427277840862163497155349129113722649471088458079235658149512832591391615281662442935830100320403789672974619042303267121832712298927866317362508245314117803948403170078313943684678847596953516559378069713337960520092213298812328013038465109223297386034706109502940090783371422597049944042383414118636082409947608511205274354569280728331211506756781666058355407172951817488156421172193436541107297278287596169484599791628052337845434439177447822909736927455097189874314207468275433433071081687396382733525825886894910550406061986115059271100910644446327348344468700812823118059971313391501663626441886981810678222399460702846207214791395048526815155483400033268157487924525490066064012726838569135973199439149470495810830837591099383216145050150045740889900352282795138470244913491686482857313733255769435023591853773089077458372086798533027610295227062752554799434611574384298713832523600381336168302453874393003191233775986883912316420973334379877529553839223447094342943486388608579074668651369128378451417208463869540232176792408914522506391317354980158976585313488478486057969914514022305839918219332151319354250034626035377348916665570375314727685130665787472007841151796895603939172786799910374957545322995756377457599599504276189949356787592501508753390428271643975154824455352377053111626208832555438404089138573375161728669807747419637053993880892917874005458655827666097599638219463897573364752719041068529327010482857668086074692893147822751225623238167061071983834604710691162056441215361713318366910879096795343859140769654750929847508557820485466202203459677764160908059644717890892744979999532364949279743503110156480262999295652180522080785822283842569661303419178228447186257219983715734303703317619858711481866462863429973928739998398259295367033437453584584488581143016103462740033396242669754074609399636975217826186925280950097173384258365848713652821370864915233836853750405656815951945520233174548949056817169165933825415209305888306372188136295227396679851460276636299084950952893300467781353432297013221822884054086568985230902512552237622730111138290505576463104191834679223199697333797214058248005124300025031951793573889166062635406320625826571069100227228267194866605828076947497601440341217378525574054607868080128000603347248712465765339731493086586507725706728291038760826652939102768966742076746673364481982983451668791770178258005254684998119365995097392641397701491600966296265787279841257378943155883280492221975608013985539032274945460071338055517275877092508280678141401576037556290715630311281257024597178188945761218917535714779319087909622860300077404215928469595074562600541407805983455769821333727090712554028649593473956614188397199886034631591936240167031450176333794900285975027484969702651661451962376807280489906625297394317092520629514824465459692832032595156213487830820814504982333197187461152284994611534553488158475968949054771458710296513219374668100141737669758996892028865446852874098328277529189082229068973582157599297978859224950387437630737624768346442025785054903385922234038749632061478093035745798203708449453224854865616847957896050573142473995069551725602547405959732345973144553646169193217672174349252279669463868920067820671608531512830860873845143072011046151594672799104569807282094638521192835493304087722991043561080535097649353696167127430959636146770350051518277822933286902725589114427193058060716795721559392052662254095423103782413095996265680533647525088424735596149985831233400118860671445258340604353221992482416894363158278508462310338474868819723804449564550788722669388827343416824229535600193487871541034447229796855297542491372932701747527439160874199128073742350758138811604005286761106702979612057527241351418935217607292706375415873097114313972160855805840029533903770114513299035943225784516225699659462122628687420903527091269746167649359552639395653381145154326091532296378392074308694185540948580454448720310597712408931697689105509975505651052671901332034273880892172741843254682164124629995961088446854588471062368281206777516601282866220060122202904096890339864431946964769104423615608635152007667916844550667965982273383295894296889475897004471656974896700433981498335917806629056878854897041140492614895827424864222445274383540449510057015187451443910207081734133181262840259964121806867951144617741741112416939145038502796653809708613573609257996075730025727319005424243647048560493830005604169910342956089970459543345621123886000185694693064093976428265286400404698099461314251423815140016793474757287869412296679908842215867942458429350880238541008577080237661681618228711565378826997314028662620702665988441270867935754471917406992536641241593782825830448894220888551922964143856087146673806054868615411549248466297951064140090717940362390603827022786183098155863434055234485187642018448569347976114012282905438550060169005359904128120211167042777449320089076695528991452171501909245833546511902913907009908590923833934715312822534359615387707882323873428878605602164195841225747435455326973929806621278177219632896919330300052482806058195724947560158543681752960678307144170740089317584992344048899312374134315266398697812756767182223230290720112391989999096572806900406791448116970197847423900279406971297524473442212590511281523822061384899342094389773744627654923886969595056888836715245931269539152812812331164165767353523667177688411545026460085140937052408526979460089615769869689532338198691769520605455417623036132640445866105763002185610345744842698360237792294410371788173551656023405621513743143483365979755045743897536823339299011208650841701975323728391297590381301575110145111383731632300909284964100217721710561025727294471753639675590260283411068813875050978563180980129728960291323889755727465115399519228774358620184842134328599603080898718156559199347294026739611673948054731479550735814231217430193773029586713332450721613944721218581130393016797763285127585631489504604507502393887740972768745799336381758959742927500171525588495061427180901963391940828885712270372521668563079312221978266973005196215759112877654519345353709551071216898214964606291349111587370710987827273361057101973754784093966981592715091346929872044986092930256594021267975078216116365798982803746093917698332059430176214409600701827524332501225633675088305588922433302907556865817026201677767836106390977934429116620651599199859643912536838701722148531400323909736357039019091806759747101838387537323062772747668143369703269905904240451813587093695919371448309629456665668961361346187672255618900018001367861742228097766837413048591211642166854127510644005847026459310441142281425756627760898652141608607467369419565622084217386925559561442164132035023451052210162130659748223447701686512754319900978346811690136376712157540780627045525410913047540765172655741782906715661288794363446376007744532331324967502893762646207562125780650422551937137093205729241438508255204143835004916505287585572110370494785018201054912237406649504824251692629085749176002555752711029154062542206830484638869102465443449331342879728207043038147000066635343090495188601289512296065872372483719439876895706282783739030642851819250990564973574950354124308616833670753465533107224146442520796431757718382097913679048185712214720526175630643532189158335354981824583472026607341817219968558739847627304943865172361032592832821131617371331625002951905644802428671718540019693795626868628173032556774857454737459587388805225056682979460583783644361472758483694308223552907052259075268072389774718021896608265100741240891878920322351447792692644238207890762012104958682472881474537112954328046137008177540186308586045513974134956861640734458659770227179594438030189380334081217342824485276372419162228503031879326247735702195822138219119152090762783317068044401910389633603506373851709096230342514899496459155267253798642144304665567981868003651680641301179746520664672721517695485786239472644817259800100512494560199596239503202102005714567524551126464552387348900100868855752151192692140369896908126507867448345383010475190923935595255264261344728961078914164040478790694411788596224700334605533670021073204929825532982341746834567166454061497997179487903987051869048739732270012141246799981127675452961002368922220586968352634177856740846260338502147641272064402133474164548153531970102796542162493865084302095112191937943263190065504473178093586489046015666590792074973835861266688568547070784189477745731585708758943976409850433658288104628234906925435681445385036120125425941565154730238614755716578984443950513977476050298901108692823408872768335085837216434610364340451138137244118421196824926013906899524639962619592264069574929255599859225057434811706710799021291550529949075012416859813633303778183720550710077472451347335446368978876789790793679936481314870806155813250996764831209014240842161741881881594350709732247284454324652285802950297320824830519336839878187627818342630149843633145851842899690190948908519965239251802409728263415499238248213438565059820154887695908120061628147881103962680451813807391611168736785831641266598052538756762166514822669597257867669486762284111665179759643387283534583534318786751637909996197463595825232848022775636114880360051351001461826933943883313286196459358965312158510958389734911080337892549915566042760992855079443915748895659861680446497933765506147849588201187823267518579522017054233301911544152403628223563566468617478802844595428915008959527545495338554197506238688203271189336598506585278867113082256779271596002005161712049338084089362875552135653297870639925433314062694109591428302570448458658489135375184612444941747826242440789614557507368468000169867741857605519172105558701180194237831398061154779514917994060102401226765826081824752079206428951383572805998017820223715552226705143212587682127754834001395943201419612178276719284728472898567314677120726208191232847601638988333611993015346672855875734941782867973481335993530060994351945334270860933835062738733380697484068320351155648966817736183669969057736665660081751268594143418749985692504797099294470167238155760014459865280866068499797240229627528894917685171146910974608059300823566654884504984244525708122784857592658135825766023957883182379221812005546011889048095704064030084130821509927063916708248008556111442750709187377189002228984274312264517555140787915775452095178752204358551473046345301570654516409601480938684515818091613941563095619260701595242284205317502600305427487621716044643240132102071393964302430059049608773761184294938702206708111964938812827626557037079757851499725621754885563772347285120583244026716184102642779841398808373544638109903528173859745521676352309186836776242646886311627243158004506721270486135606170387015501003405691970045629767232272910537450319517364362740099405919515099549836533558287529029157339961113555234161524378403056509084775487563821406902305263200134816342860178451446069940342769168235330477678037158470018821541319984388865497582763379954050965406154909856781736470986627867274190905208266165317788143767981008250782289975469510716042947823035259798989445883876043503951070605304677222488005464931466087014397716690338838561756237046069154100548785453062124351610408754456220667533169733765445741508888939883090376979939316015153370039813136719880641651214496252063771997666571196448509714297216549401958294874059182378294488105090160922187125374358262247313924326237984838724822309954303039137619985440634669048651547990910682231389294642629614460039300941631618859218812952779888799507898993356750605598670079703110640930159321224740512055150099472238811894707842965148777609196138062586831256638104973613724597146419522077299125424432306830329943542903040606775155577521083736851254664136301941475976861016839786109996761299012079954207962269712027830472765618380942429807441301713399563532018332407292282517677885750164301966306142654416808966654574325032304253393160240954019430534820378268110090915452535940461769618480675241204403837745682740024207729885695148518562430001039414595820584037438440250210745970670150225510675717954821651394505565346488366718586398919236534204142845635158776977856407448830079648561714617805480533870483392732024666335200499128636880581714381457449175360949086997986108203015021271834952775354487710417793023682741842772892020621385122620465595002093002965846103670797584655758800096449215599049490635755547753593641073598699691590128524503446242231319417554762235376653006816037651830225300253172971310596944657139753089225529712892628910174098257044268858575612888154181697426444456757265417559990629912653505909365662312681064731990383725858836650411315319507656933709417190010057000203418151389754063427653260909003105155474810774037058531216243312472809201826383479544827022148588475137219572437035452198332449264592703176443645975600870336767807741457766234380929819252637668179225968942766131725329572224924380505680159164063225497641242632158965714018554513931253450110081741155834662387831582467676414980125374899704170840524955760629570063785562693654035659146939551506551055302338805855028484524822566111007314371248184803303354471186315797000516297530034790267188428423263230837926746024724745595767894827304850014330274426118051826360137608998295925833904583343673818775051549601461613982804264110967183964015955346109235086103419030459542972724823013451492654080068425351067349790005535070204671838094638682387709454169915230297651716803247002145751400445268092955959933514195841600093515764854324874558363326984666847587087335013568120105628315140251397759120912866992237114352828075372945667760526127852197588158797768894817128662605505345177132439657765687992075772329472854084837797120647293696727578809891041361878479270347938247706589475228068693913444487313108847866591103745984417930163229529365135936337123802155163948098524688319538839107329785207396845488745627345662150118107187335987821168902172022306084437285591612997115352450871190575882481349953727083116417068088078554549549356660607790365256613435267740332534613422332201808808740892129090086391650960686114233213428988011430140092524690856071240795768616486561129344151265830566855099535688057531864039008404306756307275189391153416735992030044691437578293733237307508077023744666660638013404813927780384151988123964880261633012477551715721636156934767342527589173543032092461997194510885378411844407029648937948446742187376051049330402059792337978256857945115562039732464070744472529734164364781434310552126320820453237365633286928933735291329441571867812008145190129145985545702055312061044909024581364892043517544016036572234701507434575562997920190097776015449869976234179592244571642643339030330620308306158464013526480191540371534997617786950941505565832103397836287339938328586792811261862149157719239934898311915128300283345753403428499667135072766558801924720219166965697669148276858078172175519450736407560308405785181993645162224668297807218239778838960872650855708952626678424853000834798230974523245179791928665746468754865967918201858519733749369458547117834590095347226812600340634458824356602153986251693721838517973771845696088248482029560178375519804685258026828269540917645147758500140290378312303815226207261837872162897461347606999639750198050450363367216977588419425722557097494368571386700056279843411570940903941495528324672745063883627621077142524886859622494057912949654800566645449786438171296842748557216100432814818936555876027821458036665457647946539473710040953600548994466531189164998261517109325192119421970289882527938152120075708709248894144211409778169539746047566363405679114819960141636029134135415143233015837105356192150248201222390598756752305940596472944325723833323430060727185003267462323708263524894930244597883352120540420128714063231006265374195964548633138334154457446821729123957772675137223777802623120198036454868494961883704199133294913958745676102017991493778612688444087895449718077037534201194469230499192452539714244818002371001915988802576677562226045997626247245153695216179940045430254204497830105305035663189903972534200042256170139984117353182564382705068695028170871598813765722194730875809676067026137124748839455643309944917359620384557540950733563069188664104337394328448209538419691687912842287934330633473893605943362174139629436144480991260555590948189123685901241326038798866172843759372574970798059127865000065894023390551773119443194726831780229841110247742230300340177043541041823268178486662440780576903406950999714612876574597400564407425370060124500671109877647368165244203657465254962326502943183134381800904633596932003315478830931909860804286879902114534931985959441378914488426554113840805569801076900429993045962420446832066322720169560861771719975356414087333803518098196638614349205277131517271046406333324722772640879044800206662218402938107652752543179246181597202908439887297764052007722867339054643860259368320579230683166281761617537696955347513688001026181382432140106367841194123766682660084819409663437162733712240680032223478755044130508167448876389387339452093843654892710925306979125861401079734220851977336185124695235528692403639730070019046797216721949363465817133685685108421833818734019620562337987381375036357732622419958545491881904828893343421723587701013948475023352789275079004318633782457543805498240372334605105398799809772381025969375062746476332660508339594104965141743705975154670051216409882998996151586121410203806025510213577928617955966639731902154791589279140580918231972585332243487731740869978262946961250954168448595396345547605548056912719510806579745205869109721174494858088294492499307698860776871437162620004679174867187931651816471146578797408638895937370859784434936230551071519620708379201281883747193290103371271293532293710406312211204058456358782297277051743722993153969009859401162516944745607529481994103749500476375961746443775566732082866579516927905368540497699737494177608822639827696079494463988513591637706361617832871367364851492793927569307404120483725687005136526947105866124642883994428264594516812664992165860522409704963704932018989712829736845319344239784337012294065704086513448352022232762459235133287276507417866635174421691909972147935407923396395146930373752847792722909452649890360279937956010891302691868322493611342464944021365385776147260790551376522317077042726394337603662099490711665478938635298686581503534636527364274896401467738431017022915576585282150357808535905331557008987429826313159208344171809783259949394207902892316813213765945744279334045772921141202882668134524807374356013194544600090401709093170874194926766332320540768626501395919257786802353570600800223628833795910185627873868943590140855983399800702569713993346702677783461482129809081415110167116249707605542535148737731797609433511040839466614890447954467146648206137394777038100155542397483040687679274745213261373436587202662345898123180419513083803503550707148596075958009379863801921376251729972135346062327906317555695616344158419016227460280801267251126385532116944075775532093767981162968454548537112718658586093282000642699695432486220293098812026178651327195052936965299866376456854296703819298625505242998678136605898666080895980655969758003559643957281767824053710103149360815791990503006498506494685116253609315658647919503203772927827404604293779855606004084990558004206218208965906009783412422773306540931873288087104725923343241388253405370793578875934013553677307244901943303878518233406871329049660995740290125958229584862164871949496980661451239921814782303738484724260926874578216426649152051812962328991298172477297365023313069580380909465503538568885457162467656036519222225546530242531372624438596445658096659929712355642490928218197467329523987714192264800801755416717998238015305368350525929067553110592332909125835503776916937445423339695571364292636010212682532484786501398806856925993247825134792093060856845040386644273356478187222754745489028269305138998309363334006771142496628289311769094229370076835734152126626122707669376652339317582687647533472119038283916241942422428513562597721895437228054723738296269179752835346567502910639808043069647083781650003848294177174377032732622856600043085234416961313085250391808610096311073203431993108396458705009962362921868428681900613067626451195921687028853313289657729067830434029492993315721186209131057089221405811966224258697252715677320274646653708765251623450183468883581266574694518026474826189715821775080329673390220732333769171218141174279571503524509249411434191095680247325470098575582256879715766285154477900160394653908901263693137351849094777072745584317300117805310222329000774916206264646699864751569302900158646355241126606526956265795121695751704076035319639802089104100149653543724449923788639556119340222506638042870353213333006485835124881135040127893444405022775068270654146248138325721717012826560188435688369956961759888318035352476476031148239279530563080412588312116786630554428715040388540290553002962614858412462728100586346798158101894752761073670304272378968551261791993186841973703161270072199058834354250213437060577698475892520540217474728032293509313907029199919803658804551205535664250126624186190186071704469942664610163347496694424396865851280341117043829209446801028952265200959713498555403961380092337692375151221841553771707316651725248033275295232123354802675825694216843009416649994206012642165294691382869165719832596888995010445005090303101535205852671092657560472170434416869099874294514451480033655779116240159217506264974144549926359140803690669061417496698349930494844041423991818229168329972722170689162087863604140716737631033196777073857085691476864657097578576654336391341683551972438866167241625303197813426893355086529200343613576036922846091388349332198607953717989422904928366107405969993988073839824981545311856436372848809668297336728551455046869910510128265937021986054147394682724834454681371092388287708619202831384425857503727542194162530258220652719629041158671280479967402549633810858363440675489914279800124909404052162365373220260907558026924299585116129557935080410269150344435139845974707703728206838685926681091553754704942916209146942548026650595320755482143774802539189403164657394970020644274573682504620328533008415021795511591680223546940611317465639207637162619700020947102654908960659890510206185168982543899653150161900411019662491699369692923690856887447810836385439635744011374640086639891391071647678640445518344405203903617770690149758772057379799254625081927487016938514172221858701676461351035922962799339085701956586486941495550061140524714137316737857115220852942545605955203202919989301038164908030747288573790509215676905342622373050780761383514151629956076780462943089063594017977707831738012766272884043513952256065887638634901435013210491758406045710465944421526747305447534746936479643009674326786674195051164112407258450413965814650315071472159435904161506482394254002873720862991385631256987077751886350683266735440905196939571524413604840289741472139607079239887762329627691159613022460425229475157469915063977278479485490949455467370756423456039985755534577668028191671536389826555109771047938835369485694941511737416287551993493129786431166065475979220859099342381676730053076935299209301718351186130570335280013568482081021049846645207836406000450500119529806545200918345191493117392222389876290871706591294370416119631459187602278909146637926746441205976137865551396824939714006385067537926401753304034420704190560038724996347551544698810326655532874012021102572123649774485304105439141157974204622070033620476737168948185549516355562147941995070489417721259315958042728997573435390494828978857906667527451388717066617817330047744132141449653104291260770270804859576264583727833951211325445878463190834175031267088895703577045627957131480420344386929605825110079654382076558357171385685031449732976691540558763451712616738695210018838739100562239973736763734253903480428654165855850472615818215267370275934908620144438022596513917674399837872836148336458162611441881442624185237846439317111340569966795138681515145084639121526069699346358233255120232944750061486793833947481747497389932164983569455578875057180590645443234450553287642210218778100440747751605922779215467280915406281166301916406452912179270604772461776925271693956035237672260425029123255976147473922545050008442069249097481445425228908827981420705799258528073774001956872050016852144364542521404939280189546697522937056274984649307176202214838071589556949506992105647301434326813005212976755673363238514243301961297203343230598203536274255228052947150186912159007605106223144060335656117400620323959039505714519859018786381924900159289296962768917487637192031938241859049950979225517683270446217823661153742828711740901591164381749103788656437739802763712408686879130587167582203442417197387257456173290881880133576047827877004069149578887549117484607550285933632329705595851405627678393578684175295800083417663200779229738877928567108355536372444662866439219865386600353206350277579348274856069796502055631530452936467013378428765986806774943911989255458550953773986297253249047313387074794532143695409720867345478250241454260529416323055312880531421345850451143758945335252219074323232143421506372754613235135947367408191681827129018446888511675325304453446624105810298995265518183820731981043422812190891213180780549385385322667823440912779777745128512739877951078847143629610405419999228095050254475871689190779694506176363610935079472846569407951476088302138699064586447613582786470301744956990242117710579518461231378188316576899030964389603731146826304972382495887735789133126984799780369267783551080528009789429305635988944631108787318302912876042178372479626728050443770916856183136376947532895357065335672363519967275102450024123324375742114312800737676724444800761033288847863818882007718785678879458260157413621909236116993699596373204565909888051676629472828382672503833934357602900480023946191882277687913719711349634548560775590410208220373588028610069475114122474562621253260947604264783537089368950513387059702346577219858744938436824621163003242072766266019983750409006673844632190416702418208250214870399716848764847832345838505365192553884399908097946666424262148019574230089872197386291604764850599065615562083648333680273614012779214822662508632286190688506213250301755305102787301142861090736707119559394698137570215015927360099779328309298271017583724249526937558123659183174185915436418019458111787554423376991887118686034512889455968814200772256359283528255787042408893057629316214121674549482728765639455962909926990780348795359185096580074839318114225925234241699060657957484033650493075915267253044350789960290398863229034335684207162023372544511299835283814633897605508165434591157033808065351946350453853357992521432934682683555866752300285961435801782466172663958420126271518580700472181503782861003978586796023300815736851412946757141229128209055649894134992606635414327637124889954353304615208135295217538724190376992383336531012274802084539070447893221507696145398592626597510697111422136954973022554272284254789615831072164947528171463997478736989899203407878518968223151790906235545276724751490201918180695647491607487528298099845702802569763741873067363494381407389684943038752183393040326396380916099230094685875923378292869263225840688973491412392288943402871003630026756486391273610620603317228003853070752333733283650909147227424309579423527305309742484700173244113866360923234445911547432188155074584623659913972443999317244273494946910389111577626589045003185386149565950893444866414216529742500511492647126897823009990589197826697061566201209947804965132931916219326362749285171760260195092163527755297252670855229692214303177975690762573993967395685996091576264930349279946997620964363884268515448678307275433090771442826403577183163174009240287720441839987622117828568401251210445372792381324147025727810725400997507191693064803054668621461914310928343280227054886493859345640464664673878612685556605901764320755788097701704110536222221542868874975007893934355789336228712844678154630338273919604029392967638328308583581826566530575296046585465115405391427300109069099645128185099336318312370193768603037634986513525539896996854504503620518338983557342517286005316146096079826164200689514726966616021524421597799977485861637921524565762019686259475492717844546726515961983248750114559640900443836995559370452976560984613579652059806564154309907595610514530489772818066790566330839811934293696727424343692130428777360537625082100668599084651699043055196142057649442575839714989215903293239574676237247141688467033743400129625198081390846738099144868362376799896997928736322902999221627640991363282467827955411448153325899081657992607645416674302446576218238934387790540631359834205706822849829869169283343180495724924339665078282534108255196657093284253564542389341870515326116920319614317174082194000047608312260016374278693456795144306558277954890923233458801040428289752268308958976963830076327633232135918694641776880518798372816599683777375044529709987711858003688689904829577866411796688946170753604245212150180884471543465052482595203731818727538549327767112215073772588093500781949935110876877945580387840130848586380741008106114009179382477415451027371151485203312553101520566868039938688136776598142504846683099004456858721882400598422570391601310290127206660173514329719016048764261344192742143940099084652969322410044637736175200208240938024858831075291486637942231098972482663984067563804155475289726247932272963381127708187582831821537408654960189258791234264072412395854915823711182483359182104872813201755787131191669338590034514671496132502464377316588569950423919412230654723175081780281404485831300348629791878489648657151327676824815141630344210404389772158974080244405303140420676744687441809157537859907843178394324824464366695207782412805679395093385691686850163221317565270690675176057982732870923833716908134329598221875695048661558026190469035072047486887332536594085123647829870096147424322022667681288898492464098094773071809353421684999500300469138928982067801183484642139352557118616670927106582492510447782750339870694627282839064577561512947826995621031575506973111210493664872110280552414296546580989617651089155672541236084205463918395956496610276601161650452299600902193815173563760313263126267889653146357494987013156573421860505018271442434983906621155551656126980520226326606915958231451307140033985884253686968941204817464264999483201488990857119534759852109545112853608611309360752672668280803731997225087435864889880244974430568163044046974404004062292276975970112274510614643823896130663109265836266696211463068844185502495730741924798072182945350969307976285260678481747654897436167764619485397391203504208586589139870522621152337005128839750541305327642645134576241484260593159723082106005106218585665359802492020119083678138757172378077486608792668351285332796075444404189983422354321541389687351111490693858783935393836244952342305163964298303370365958183890639381431174592787228944732141478501214756909884295545527175549291315310480253069341325102143899268017723787598267159988674034688828135078842657761351289418078986916835831384574995012638498167130833690606523502283860943787915067289307183914802434852137685504780176154790299843613838715861818861913210342514882940900014443310283598542990255609328553830453152264100692529458809899208397586899784271208173775044727964829216984444792571383784957951977165576587467414000548882175447185250413442183412804268272734569712781118412205322524689252663195837876268890315255284199043608293118577872382218167975657986610447897375363318886345046745445409891891313605841291926333873697347281140943151394061842640333936012445830921246696381629714802112545069993657778455398415176072062797433781902716578513374207982159581202733152485755939467130083953485980355061736357526702422688117134965859005078322614607354671326992956403140228624700661107773925161328710854967482389026744072824918022163709587148762543874225809218550335478109937611364398056682277395293204720073828355612486322864932727831165698273433155656310095800179935010860629915443218778106627850508313718393353789390456164529058409087605106711940075291656393954610935987869207499889075920405734736505980831168364508838073677109753543087462042090851356482115364110885494621439458753415902544474735395066389392194073198371073523446676292074701963217763948359051742303887267157559675021616046633806935235765092740166326681279183246498249016739275970525936568712099836121116100634535611564805166141745979383669378562664465509908192640692084398060017026105932497223209917066528691647181102037740984669912587315774076202808875849482514949755168860590297337377543253806503725815835728561656976018255741563078273390195123730588383499074743922823423088371601226169122198914755098044929350843578985029747050057830861236963943622026483613514273592618809199454621456158165826512781952998691845878790921012008016118381786680169971763829161464842469883687457170914974513799825746168958439014533339299596181188716712533129001751842876759901622903083501119891485823275397328567923296256351393214905401276489220153938824642825896921762757565125903633659890733057291383271471818359778041642103337587920273537065240556112400801621795377578030645758365409651499221712916514505266659938037952137253643344061075013301398238705727105588508452458578328150205348824002840366546179822068873143958185654171495975365695922052554964648373878080773875335296065839213784839669563410907389441827639666379976322311454946245764472343985638270116233589670287496153156296618077595081625863659165130306342694930148475429721469901381005144966066468096278048824938255966441870285409064515537557394238437631371140614229538474590600635104314150105230655572714595324533644381726800477509574139723126878916758025846357268336066796799657164437885491127557676234941406078647674495962614204012725834954794145326695597016800738377783038646549050135040684492673538241366764611634684547801092947400119514557435309732821206255160308816680007787928814224543643196146833527644783459053104401057007377311197240575118869490182848983527086741666063025952894918485282065951760009402714864180150708081171667663589357745161054740863777061188049388817903104755642593016176555933401862707952172172435130266942065680107682588839162634978028702071096379064028702733211385453581320267565387013941472125952075157647550990587158393171689158395945269605853870193180297102311794404196064324911662195242975966810230588430215389578781888280554796352447302236989378189769894917095364059235188553727444362371130436877971508103306255561270334776223603865737108965567987091245979751217570564766328432780458072524881373106114794747362430423741536463608544971064394547435840259906618016849095691380545537889747714353047990983877094882607103555157410640597094267344690126482802239441240400917411666385082873243414134379769617720651846147565946860490665596242480489399825403509401230310110769972464986369397774036864046230976386661210052127227132425280621689711231159776456190003253460877102310583665463185954276176725125185293188536801750517492658216989895826626261699275571199525197752767234934780918995292224194841874943188195066146174213316739090233122115685366197449847612549836441192605019812841112111698729666822128470710436902415019814115903228547668420626248139016238332467169252387491676151122194753638393956824646987534130274047126422625956275025922809019718210175461387972845433086304875578686773217675047713496844576497689812357958440604138882178829115047327236285464408210170576460109370249255572384445070303910654586371750723380910947811691090582594114951159233239217231141932979532689892970480502096576010992262749193585852095393030214509497138875992312893767345149742321363839332279369247070483359907672194483454386418945075803482260240394013298821237870774776952994329863347867186824693928299526564538709796001790826637443553487958316398157620253806520874092186747922019240008766453380275121880270900642535770654351379030408203784890412134385454011348284863702678217193933329051114577653012745468715654729233740737338504410728172925934309262112939412174380212712056153723792232365966655554912407625814641281992256917681083210840777771694975704628072752440179378373982990270444611658006367075147322784501308345066640247056120078290750809244995756586398696050931520196319162591426783408707762839738585906494688034936416606669474679088887524763868948618767459938143169011203026967791196743876128773431518313166697936524910523938939987073951452408140381540712016767736821288425059466345878696690615174091002656837378423092475240813994703630094706378549735323573699811651543225943533721104872126484079368520280704574996925078361406175175765476621062242562326030762401792203913502368001190696290430460382082423600554514882607059665015538189258609470371729894533172814590019506398880113228671544876704519432086810519846080720302676099451042368371482666760639155248361975419556562233979800387176622556193068767805602389953237085579104506623402902356447286251089074193614122386281379521294434504964749037753295485039350773057579744178160929193046865200574327263026776406503318069079250320779389288777246375062081755631352823830628722875244597857553204642846616225588335961324346061231504935894539981260614479548769246876487125298598022353897288605509971316913930198220583995027749557909613003566418473192556329666767125310027833312925380391851859637650029295281889310703667656486340681211790477067442982235032544786137109772197531947140419939520283950936405566610411118745103503070393222818465573794442623740048220955498444752311903165436271380238602268432016321607127452595735175614407350789099363327459075201450110787488669495358934109151329235226244885937132641690309647454223212104608393321492903573308375558966859756384532601444946181224905750370108966557678490953324597015621902910088742782093643183041941966060660931055955066628455488459521514373605235429103153565539282225905946469330233695440439405337646176595341751606528454319319297163475608747657841163561167683307996530810645248396583186175449601989194996107030565072207649830593509891716131108600099909306559495689801370113187696996673306413274692729348604390846404119276998648385269653883009079955721811506849446687184677741759542746019062453974040507723629088946472929818650392356325131380149959494526766801326732586502398676955947083737990524107809330506157977554219960559069757270270146221292801053863944661229479692027749618024221772210095137955950283502516996507628722214780711198067962490598011945013830838016506266171329474421561214472492572117009131513000056468760895598686089966586892143114927677484534196957874472912915506427590275517491112067651988934276679677484038794151200479583303123941166600981524221723840930033069394618412532825056682704048534282219562113393257748137232775027795382270177121012582479475347037551498335289207281764715920130198134511235815363498293356504327091904495025906528720059278543099421898647609265533686788262123749819177867352704921932117272952727888438104561676926632269706991482860749571214611294000433378717901610536052320056221632238057409079438682244828697880539126492931589910192763167019166923254041120216083200061455989768637281702936674770089909468382073449215210458330771566710435168025568863107738650095632655500297629988934683387522866899224774817362469459887708269983021260662098026252662967454044915481867578629714912668469808215942014659221523882490583116339985457487674517246455092028480694090417324208882394969066668152888598693965629082596285245455722772477584526850017257351973741460067358222315778196981231943291825223089462949823070629075189700468539595691505801328442643408137134914728093901675495745282277167540194998946841243365805338674022504382709389744337080536111038994624649228805781197227861402237034683246343033640868369290403616800513955025220855141113590037737649209888250404924882805836490742878645997811758560049848818404280113401248937534100537524162687483759376920700901621751589649557840888838920617155498579346122452284692415889281253376132596915602465135824964453402509006353979601798645961927625093378666656549159248442213796150936559209172407287885777900576974369646333891908817201854513919859637512362373555974126370986872055793677245581681225812477470923035277393118290472534883482339743270383720160002296791013110146568072054481789644599268136453349048766300507114410988952415106093596081916492191826520613700913397001378121669186730226497877463340795789238625087094461252278878672323260870031239665911295598018468380462956299594930113346757132596855267543094005769759452583386479373687859939200792498474257141209305262180160917405236579836778455658479893677983429125102715681928730184385806084146903945162279857087688562560455890987782678099135808219389864064846200049084258153896535977481135563283235823997455290012770916495119154517938130933807787226265741321144310834457330750392689063541287663927645967462081041285244639975898592955456975931002556920776993171445411049484216740512602161118199649277877797915529704775595196921968789141287504264942226368700303454236322950471077526318840897684476163973697381018398028105307237694162535984643931329014557788754543101500649469971108167834347120569169297481522989675391549997792131191736174593669201150679587193860163231454129857179024442490928828209131408639877216614148626808080665240004386900590334541070441066980935207440351560101033175652754832978097069099403254624510995384206327166273692971538711380986962206901362877411927764640237732253030349577568997552046362131540150067373030303884772090099822466902134839289929126866661772717695416714562072149486815659315882435707200944956154437698930151597106674142437557439140725083408187558875624563984573539518490511339824234822485832532761547023871743667740136748840605382824997882357322999349750924447090004854468228348513725298128426702837972210211321588671624941609425738313569224564795507773157847818681157084029454109704343912268874614778854308681532325198970644887918950133382259948411703021237493872356485689096984869660830468367661346304468610239307247964170825502090749845385077921818362313534530075762793006007561955145965014510047501179340077426466497712902331268816661717398822132884855180156469742071273613270425815759185181830614095611410885736620707966444948760970752772068939518771801433126088572754856090241520034634383490790665455818112334557191487679529243245317329384428389726805875061470763684060623128755200288464549312599721690741712927973175584892572873018366928638916819764737133977662574083562864813534343940903432380192387130297803378827231219187361888894496242671593666301523213594307639647657239797306386250931010720803633157273896932598589496961913243534760625840393820430341652216739542503060197352464611635782932372711394507702788186655737245014305881556354124768951471100047955966106609388580936608667949511979946676083179605926346637183461537249216097999080118273229653761466904549741070568680083112803475294539278238203365973948673049846642806782213949455120098351455120200662714872321064010569296342834492117881176118674561072600685636624070851274374752853392236739814153853285331243626700118150492928249817188796592891237486937214646525835378744548681848849463687094000830163462186324456823934936957692066075334712750681213727216506289306508154378946017604634183612624899441296131624212886371323863885824545028559725790129033325416994550929039498978399862511163548020418464976878154628113994764127250002144580596229028420950293625041895914292671427179317533001438892704743142545272499625251429430491250141878383512137042992032490011888971486219909643751124295069591779737406209384126656868716017306488737958546025162730155019955448158666858349612630512678970600249744544212618151321265233346203268312427468764000053802870276359428456235091808389062900765928970781268279998285429794714595671663492411639487056745363008749008397418968269453218928711062382786330727986452903127807151242671248051537463925226788556056434282525399617847604281766138437471605142853897286426598166184022369247001929602765502919119620503307342859768574366853975062356726343545505624504801115985552351501755403052034706840781428937869278981612433329610293704827100339174422221994883498353681769392932895810660427513660841358416683108725888867357298035768107040082699230227145788545672145457975782525971467433575821911763460477173948700706442574924257081242811233525489393794811316867052696544841559266869894888834645743484241598672708082625790448078719815796902718174467576280586125785745854813739425432209257143215494459835627507379891678144510040901973088202141962493463766655738463636655181084704861435329056337456222399498219431387395897573265474719395259588932296091355939603633119159256992003963792407368361046116819366707545666167377861082827799134431958372943310119478756889761103195755150666978109806174070193865964597182785376579602193270322045669167114714011668846712585467900093658597759394847621227196174615757695610992020979008493876486038808143522173602512979167672786689479730664731844633914444314322066105260963810549091463001616181643688721656359758303325070393563614063118997147176435921945884965800765402420805640535395427743059545975354771637277505587975856335014058730257367546137058449827996262785353145706312568173047755966739130593828428131313979607374896065218688996009511490184932579186086654129247173056661318437955731347485600490424171783554669457802961623001461075079228000753236715290874090714588123926798275315820555368976064003701758912679148970828146640492039537756239675711943670253760465585210229559099093450816359457565679040571406196333178709248427831140086892714068239046461674837750244439542573566143034745038054284152128838709481016486961274238236122884546244730653077780715711955424868634769532025858718429713780754623206289711814473153327873487967981544743563666233777345770835074265148747679708698985040438634244487038338150805140844300055813582227699764395359135387265287661737467874378119581064210939053560882271361019186283643019485962413048641995708456675368595137058021116553776783497278230581170174604265357310439352592303460476959930875503823257277099318599828593757301259538810536199006082532467958551575240110740584493047826770628525244752286043415828383597801809444106122042924504026308530010482890174996949708868826871621005190239522019295623947117104571723866416974842486237588454906142330233172052976859993350425041078512301936140627161845912014663288281445914485484261831793471177594982740186620983860726302199642562581805387009252965669790370366808075102325614099643994912460353263692496146319076344562584980540536801546960087530048740308659658114985212747209546038891386364343127280561904197256509504188550079747028622900653604290166239467504719959524981697382917551369760319742647075265411018395276644083296347183619691651669952975994581323572489581320450742575854613187319962573925361877620791880307078511709616717050252002694118082546610920620448807089601832194197727051802424642390350904206723243639963401640737614942061762764558265537711656891369699050837551831568014654980767112304369768276757320694147652751846802788847101065214376636919618941463359223087384334877460798897172698801106806066975250023674468407237177010639846492219672493921505667203255220274123192246229203416439017630812964505476333279779104151756294745164318305381099341698745970199097044718662548054444019272537692107673115945493714167194684827230070726987748400790427617171696113804172523015072318543656869556375114507621774886353976827293194164719489482138742973556353924021446858333567825152745572714733019824272181587318150285675136445604893861669397902588218104199740500632932002864400982283229628460346391012233844925746845669207766001347018615655125945480514805985410387789377703412086059103854464622158767809764835545082509033167276495448877584665760941395955144521402985336288251219145653401931606097788371184743195120706735328923288409133526063611811508645971034148482024356120353195886134217963143949080619446722962835566286726339216873539209523801337565374306234411968239992901168163240554055006836879771123227475418874751439870457217023013797134955172656233979366223938457158494827638814101439172231193826053978806098582041242203837881914614364740019079570728299774146297838920096680742285468742238018613495646078046659753689037644908083444213692026342740237287235825614087727207036102127537669218725833065187600515846273851218120459031123132986896276294176594208223498913112261865865162918496454752623007517785621069133270676973906082279415699542523490654505760983557845138312956979578714234622847094108575326396768312567103741823029469327225015717345185894179250358661545675802530431776180946169906659271808268153994530117373155516111773906464250146714215216618604727658820661571620955132317270995310631457379499593229856999904369694072403268491462422885364754573275062301927356555736390257237715979378297064546831624969433667714316998753743379397382066664741592096381901593929409562253271382477296280172828744351161670867027975504487462991002288087418299309249514686797747271673776721533297313427671295160662410131503307636061952611711720899121923076193351346719756041047697029639415712508076205785339128418308821642330400950214323692686550917996290794364398911111229982478802346813851418188797752015056479881434838867246693784398436245637362054030408748042237878722257142837214837590182735693126141258272923156508263892777080117374327887128067680372861807539449132360127595341662692877127158062889067636083828343520434735444661814757089303523367683469896047538606070152062980534073477268435451015874921563168918107692823083194351739575620180211940585410396328951023519875850977931552654217150173692566136668751666923796260515204715329507689727504147719873834579024167737988945614432653645383339172568558084175350346756043361463643811899504745457594817899135964615471908113037003656002588690498516311245182172956414827173710537885513416880775411527528422914415869353368587699232027570619663103674389485031521508636815614696949213116309147098533437000740549135552359810596640608929154847163492231427426863641654827106581727351824263660434914807361490343931811146250122158979126010064960517610049431478055407064247412764416989551892125094695875502857172242686426883201250990309655350948630838913045275681304372918126952100247485794344752041333932786015181857038806972978392793524206655733084599806911321945675581448040846651999739180881170105438584737667266791432823716229571106108408889185723263503194267257193400102226468880283030858626550064093487944687955610142348618174540489847072298084936381679418018998166433762975128034367375168843058339974520171345801820524159199372868402262239674343603724918927734732107416499696596751485510449589184190210320349040632450706208852076103924887891302501813446795277065094900733449084966396607805103960732516693740389414916263196336987548181489126979664220306199102933505486821079569866030053174668424374989200796636088366524734702348888548416970157830042112971000340555097067822728470539364169653362959190179748327908492557246792271410473382323941701494588397793644615206085233322643512508077918953466025886769168454112612679028904844926087262014173174939365462392250342616918677014195660603769896217560661417885082967482435359713450343691668553991318959872956563653661318660231901443439359983447701863648677052248503840316879444925670538828989393236569181897494220403561069086933403466402995234134929873072647227832874857327544961210665508648166485831039325157612492225773388690081779924782034111914176947599108657672360151657439548528031906262487726886007843182767832252895561497094358622387442900170010770593151123180893733275594445260418277983893341164100413376233236457556711905379147173604799815960912549339775548819300741008986492636929468238048775371770353388586340153800968424772943649772937972566434936985932301926127375236108761885060721602236770918252710193526734012702312996348393690237088019884803365004305227456733151369291905203020041939282874058644268794017407058792515549704065001119844886342343586287557251290450539985017312487631312328830846635501008044207533690575535976062501395998236122002890082776079787704158922037343540088562462037064651370922198306315682435591713666784370767709352322726221428549491567905801054573897141227071446902701408393373262074889864350042577543249406007267065443868513019800089379429458973175053201877632834500262269253778519392851241866180803346221681065544687645153395657620499700412772581881147448791391660697971137665761100861326011650153189834276776817628124051267616565174598433189623614951501496232507024433904720000990350871857376992446869984766395776375153607926645715441072287046329945621007217526310471195278221406998830624594217836240576923605109053369638010890392208412138929778662871744186158227129509242541983128410340271845906327137355378875283236648724986818949901379671590091276369809783426458633387123038775398261530475980464131588134530316278385893749983590259028946973983044529565612021423948736592697434765634688656117533605049308117408705330810807893361699604444601681425152481091884347109807369438421113388941678615640679285276184089521314120004865432657061784445441424916877054777872369088296585508402316713645391952141046626776152000652785041411011412422044618274267484639018316219302571709212318197940391436892401518971800613281034699132540246847763803587099072464747421010523727497709927321148021584988074092437355138254672488789073454779364573004889561261091283234537919940845115187961149864769093710333978754555819543486627136420909795377194323648968476150425570177427877447213538813398359725038294828618285651231254461651185369102008006983346631561375243341864166326653436316957113278605203301335807665358195958835966594531633601426317898801475513584208319591092752093028668548054385608826096359631692051832306931044549930811786640276026959826414366998158726022142168997811646416871055700474135536332455890122346788265588421375051148552873248870212551123239914828472426716471896879966225092776243867165938047919529960512103542602510098287079055001498913388670539151085053610171975613188215743665352767049007931272664231625630820196532496983554678594491245341483369447038518664122448420600400785196193967924382047016434183662168287692620268213209817347518989037801982528167149679123973466642774707785879089741912968396412839725680746929773697651724602307227873850398679632138170653044293004351472853276056158612278028099154377541193711143145653945688403299814143575546799142599121056612683932073187805838107876401458691094750336890505729068972367260264939565662363591340964909282462204157421410027299470116081766461384307040692551342364265670894971990579145553879452662817140995310547980876825069401475253001312200534629710172606142331504119357073367108007280220515869423933242471298683532896153277186260975147358868863233722356212786107976437046279737307090959806221289262960154105464085385304001498656229516000759961796785614552138341909823034723062042968721161640103212928972270717763299000568500221377431450250969674888328632820190918182969693883616642455176841047680798594662405421647220814645953389835632403357645042364555591369029328893622635848246380947858682765898792528622343931319841826708946290930541567167661684574249243898849134700670383684847162037617764280055283904650059339249448629355094431743824952103342630100399118979257775441238187973710974749502865307341395778292681319969778224356510949960807723373172185909663118500673740700438015878565272208478239472567315216071498734681297230956768806745785983420302300347162948559932053733282848060421993998027014307815070925194851047230412225750314213539718049587850706841746019947286795351240192643172272956143343496739920417653462993800205269799746930010726083728760608833761368337396867888518716529939017602983728714311808533814995803882700426539389135710390924399995615748026498278127752608347185168079925038406816242662792509963433781805201139360256810798852072800364897565254743568788567124506875022255142009118549441551402114432820687838126437239695756511588397943339598550836537415370964692361022727908960094895796764343755610933370913485861864212375953177465982105397037398184967722661430149912302264304753282041895816981232588755194900599484789218181325023599863818269675146025398383674640947869191503173204271279725158209803559548733285416756799914142928053486631254816854101377843001994767305608239378252974881508105998713583114491157428826510367339379706215103356013689583385687023854444072082074950860834198812405897653976921970806738694638837459642296104169359502604902637482684097634667748646783489659938165977342182632089614979034703039115535925708945672477518585533887276212468628626915401043535759781485629270590415744275324292664317486611152732035341311226882743715540762076694379584365787584377488463996193338250524987620166727091868973018660448192841257845557712953720970649442391757455422516737130526882675798635910890875386041745234912164380556363918636035368377841602139097956286246320249836325026730378652391304515169758868827934449777228632327548374001762911317702913726209240499691973098637468397698722151205928785837369932317513901025584593555243208380631628153806832619855667714437644506478533786025313155922800252202916257779299071169915655726155201000352146541296242947238727971692254606389474339252657037258870383198874478945572185678757748056817349516843248474725031523976875749976975689662897968876523668555420400639583892565611849011924814864510490835546987887098197023030307465604458787792426975047496528485515363664926878568852415415957901513337694986726464935762816420805292793075450216152191781113206470596815366955187255578231358362473380572146406149522530435882632640055957414784706791758420049828067929259984942014441658078205702579440204684200018841062298056793664553139275104953481531433027661488703337861149514147913400063048464834742931749419766589312799218488233027241358652562005885544858755023677772146815903094811047027890305872691849380264551824180993482807761046433882996911331698131392499121491223154260986033239665932960402347997082445177001607495406397513028374999469653243504687024948512705465083488003427078789304279617497060619751327310465590460232580849561530892877509843380258988363753746187550902015690229236834308540865248346416277562774974442004364775770473811177372747112075281150244932582268286696163262221525582602840145040511910795939458914626187489202733946034651056030011041683616764471168848643915915493516432420952652509201673035797851343209515242580026327918570908720918891557460156073426614611172460794246205406998254544470532085962922832103341045970303246024263327181667361275477151591136522634431734368046377601057094696727585715239772556277827355676094233846124151667348464521599008669596815115199275325273901235906158589309842304867680690014823569432565076663199318721045223311061516481335833868025378936769786818260414717502997206139894121457687918296715531256099766575711376245356571307758267071369750913528477327281318961995774573114936215885268166845344793785333526453550572284661053827439730921701866041708177534497387600039478872348066188291839073935483623449106484315759017670562045630732424808511544809008319898737932088920481539251463307791935131387918493467010908066881225035816066078397462828859968713575016412737018700864631742510263435954515958241544448693275906791077119328335609419519612500336127776717451725345731682471998895478676237607142601336044899908677522783439329191144118160555425092399198746774738016216819381104450784397419777821761337870897365631608183459208103348949102233631178193007425033862171400326480130555380524428952956070422702221667766793506648277642639767534929365941350455171257384172387470131151595962769194882384645527806936867326269316907467942771808386064205218258562576542605642822917448649224031188380331629408463308496776911731018373922725256789796637215918514914856158317707490934510679952474397766843488197293654769360332673561257835974282008755054218203272730938697098870814024310890606068446383255456837107159218343225483292539475042632679625137355481540505249983126426561950192957511382982067822411847439941448827938812472613466091862048498757690399817605147814458265081524204720287373745831607261811460028505746551920550002773815101912063130099932749927473771912909502730362564306580700560051706658257834729270964896027563474273973540316374273141146555359524372601019915676653076116675312879124504608329974861128101295209278673535190312430565296130447518714457309273754632582961707515015653610285257091598541510835843191447310134838358180188949018616112536679021574370269671218231758087909266226774374917441517720455901148984802742928889874309993430450233645682502537735140774684200293175270724011843043871530630366795567400187273683567177730548157449612973404857441643393531857092742187070943388630567941223013258924893078117050867787544848214711127951515697471735292966310477010559064304416832702340028453537548103094458732916930554329636456901984018208791560849825917141866814566649752430536240985259053932465892507645942190505467878115489419973853309587912569953671121388558949748693492882902881956123651676381432286283287376409416811565715566733395477062818675490529200872134241481975967824427985863375455699014889795350704312961783928724666557932421345650885369785127777498799491941728649046665062887162821331114876511497532719706536220952770717524091455052588764976074102180899235364343989938307935662981977973064390125960554863777788457740358836311956189176142548165290247265986606470379883317568710748704655519266332720762151224041971772369139944865162094033816944583531966166520930067475771069262190657274175632060852700904122137005012157987738433534173656669874713487101247593439503904929561979814828155367914491455102012846521536792073374629279710570108916061699133392118212075747503486669282516631546373046865968374675766781613979504280423558107484633214717835125958095586655819390050092622221764612752670939397382156646240080246580732179259299411438217534388668626539512866228044396448227875801055313650209983162677980124217556962507558192979271814396133298574744477382703781506777155973899961482035580887672745697997333227389959292215670469754993398290401566626504304548876186953999512141321182772801050492361379636103552224374364220953859593019208836956276260207608704533575615860091012799325403634415166942752970177034065867304738134003548329713741639887546319686813030102259462941819862845436937173684573421979355502018283179939952012581420738793909643364683645509775165683138626269569651500782376995906608904389043213605968033468287806007191580795174545454704894903712356941007217053593882167039349698887906083845455880211543762795024933075615439413703450691091072250855868179036753228660553093538164613657646155615366735677190654991192238093722799366427104549624452285455399862857187670194670072458172983685594348107323698981383856585551822117543620908561650813953596126946709048452225586102444903832514243368565642898573764294805056957762788010569342523099695880287884432069378027773930674361371600678326899981422752163900221202256258991646702482875437447831936946695342003087546822826789028291631352503517614471515764919811181290778289557251388712803044624711093184064864752547448576232490690964540511422572702789148932093997996968129017806368991413242606952358596710553404878826151128882970338708213429720082324185885199516454729653359819416756885656402235661549579055902831955377847610432499653473808061234583841912740348310340505303172450420507438633724165238349475302014317772061818836570676052999483177497515278871134476993475047422518706653156214317930869178279652183535749344488761716566644935302382807290910296955007811627549720134169167425747722781211725918726013794516758365155776951667255345980725221626982205625069133050555083707976928412181141819399066676480338806490456031528410237798901834756918409310771597591378145161734351635089419805635922253280330424500517658456619225801917133587188694624422845095796079426465317466424407633292731693498452654201846835496588425368116866305579352380073122185739716495127920056274351816283467966690075067442103780016908032305345049811405976789679834043219516473834619380685458704304407345632181452207867860070812588587702221280585528933853400148242439528797716013690841770288837030450549826097138972520400277196114348066773457368477926133067410974504093960527602371705525600206316974744483537462907278308567919410729139693190438640353098659835903626788455176207268970415338754678988700652149680782536109050804499966398950218695070138189002075399587856419463681393033622043764514713442886428715929174103288558484577563239958244304474501638388513356138600619080313083335738459895041695717815233375738337923266505599132512173899669265122883406157096233724523484735837202944988480913771649215372421222325514103272595602665589803705529062430360141307165301310968784061536034888537959539242243043076887719699693876583836094852823990653055182575184613636205127616893076488330278500680903360284588190792837683972807101935047138174512703760275570359499156831388631413323554725725882134994800110008208561292416162514242168163597680170699981565759904240048664010695104182676889313390886923433878450328442327598740218766591639311953189217982249161202000809619755410917571172851814819935155451972184795278121549474082361819595896843773760172972632339136733320417257128725974283672371178052850228374017706408732340077510596214662128983615743063780743057389364754819204022586208406469568244143048653298410398219714283247724294064852865758613868468209055892803751436408207003856874770462805575997816772543059759503625693848587478321293981845440195199494861036611781047764175190728314540236298482547470003556104138487345591863726487527500323416264409078350059611371127456881081215556645959109022789315991772957459424022479726364502742087500241420480182572514142677227442765662479509678847415654074200491273725188777646711141086908955039441451172210358006651361693148447372477922524525076972347521466303100931602253409646273385092336980226466780706474209041234248287985213829849850037465138795254486509724723327066212069257088323483316053359419337692891511363817553476000331563879996985236432106777409951979768672355342913552183785218786511618782526849961237863144124391601625164908127722409177003174521833724015502766726650197974345342064604332324229831247294573807742073841132880861049367625579409430656777406961985734370162145130548848988686429491322400503442934432169637174976249368283819295112359717342764643261668483205390517316436464830793746239362482667091630785941241407934360142941927087327482342044664777717031459340705811890622849035717030405933961141606622291068947185481638884153501646638651252277393326011534205667720328407278811545762027295187400844746866318041276385040013592700111490204731810060140548373580927629684666179885022728368011730598538429795056401111911669724838075163247355580572737566930466501793234394616226348651318802925577075538877944194349090142100462654136691326606841340731278656623540756858653876478678010362245205744456470226580693404730706079821992280852665176373230259719107803722312128651352180221725038285977145981519860721553302484131838430599425659022017513465256934088713458410882391048344058770013177185913320365885304648584595192610235247080199757894867311984760061707357334009812212217434760468668939653738523561229283178763462296519795766108034161676855577473981604191212147795639049165214902658589522315875516537603730564654893282469539502086517460464284827778416069773106520744737850475383700655897869693462365164712144002343857501476955708486318608384928080433172534367243664196136172942995744789479537056046422859257660147699770360568000623697305099936721274095589011282499879142942479957575724555660645684847838797111905866881236372410128987450347689689526171155125630949881648747249796188440173272715719386249958519491138738345490111795436025022134929283198702668864555065963404694263633979947324398131955626778447400389136879041626811074235005308503220021509028959789768341532280675048057657630209659185757889560315626629203452132496656853623093899894897642430433590067542484288090783894460518939416688264717187987958460912484696930165016668481944587127347820835265642240247992204564735924867658360416532635518822543692480189789568077516431411881822260575713497362635583146309279122696334065958923817417892494254926313669868786466239572956929364800188839506569084426406245514805785024850575328449215531342875505445010062643435943664998748087087853836892640303098643175812903302946645627493721129623826504256315931017141285362399934401916209494346014181584224561433353245547039480383231452019498424969382170658106686340328408257901694815000965733412261022416528374298234156289984283110858759932712234589123937353482266119774817210574877560590339170053233594779576210978842672067473364455618983068741269281100455660736783926593840643558821918109145943285798927659761491816723907436382339294726315853282415312546335512847264945689764927387754551373170810371275171029317504911352094338626769649027132451897433028487270040941923345218475246545972778227358705147895432669046374744313212399326993297584944264457267242595030996939140867630526255154536041204050309341136509982339026902061580927354230836437823620151598445587550841654265794168904474098198173296375995054055988209676562647092864315852515561135951994881602192459278193737007901450785325809046032740290486177762819310143134183676241524287737234639754628326521341658371410512503696701458709624168490229404840221899324994719191647473506349671751612359111846088056566498118331623828010800590675621799212918879319111912584204804165638074963023713104213434207639064188693275413066019509464358012072860989260091889811626524975791071871932751432135414584755428132716611850183184441846404552328061649740592471741754565998819613592495729146258985031549914099276474869245702673957545360166303469004992581854619849218670455191268405959697365975490510124042941495960366745692824936576571291417551490646496008694325585297921168017452034790850458091607498482891240111167033168361198753336189750133309309887374584849536311707778662820978019996848996065008440455592376522726118645801355641149076544615500681964130252214812749933732460231228271123288975240290924911140473871625274902466662054727752003626977269962400789117351018697676555782373358222776919580791802932494391131196676387665344488693218147934998512865226463951358884981626678713567282589347581933364588538205446046977777349236209681914406307420372545676868595979742955091464524178369796036032955423650498575395288939831273109394578120930660185316682616996811906622180693927797777925114734819623477691359629968203274811466461920085543068085182451462939763726461517281327473069240863416027286031203068694529489804065330139368082083848106920498654413138273882996004566427032260510812549853707529796903684313861393495204568465313090448698228727663259403860038365368002166205412952046204159628530017267564398616001822592690609562641370561604859869822879067119243547881429731227624322863566236723811318471370057590384238267718314162499034338999887275790574343078925385006861631269544101380784035151369486003576491139400979742293663838462681248846233932319378311345373250130323125540302214200084370160846506429354017165825304095629224327112342472613763943627280221156655591991670258423507285519034016455328424950831588746158927092679375088616022301753437760648246545371573837208107137712906852524261576532882504970941414623395693194208276148690863931883131122610895710753428486135847403296923925088140903253514264207548956619105514785937926279589051686235660792856526708478565774500939429724455156864155807606377700613968169174701088497720657030219738763836428045688552847304989238408863906528408663512608951642239176062410653726950891409691056825802596533594588693284079455124145711105182274207368498817724555836011167855239557779624342181207809541746490268291768874597210285886553172466470350595867865241111664571646947321742527852978825172059481751794501148634337727324521347308106512265258063685411610764894322898585577226940734804416594569275049130809412669078044828918517225418131988367990421472360477226329137253100869916265186037694280386879226876677267921896458400054802704506829710682604466819942298404154716658609202010053406243532766138830826753935385583446231199119217198201903176081587103269201426507428738533928334154118842099849338923510399007863618823247533079260948440604656424675964981294087766418711871695647211734597792860862965879117863383644799606207792391264648844404336343692934097882799500906184913741694616097225395841158680152999628145333571014911658032457738106444218611573461511282323928627357499363519111195597116920613601363186156242807538225542418251200002036295794881300116885577848620839021153558942923962593983805790812540047234725250600942869077942208443973075140685949755920578722556865682279148429755881345889138240173248340333096281512720783025520658786636251430129284423196045441777693875720030716980229568137150508020799842415064844318968847526388160305019272100642055903022190175572365308886436370259660363891019616176112009538377322070581772543596312913247703826381026638173333506830752626160219681654457670256949522669542285954801586383315123234408629226626247034276682494628473731309297996344197760694339735221797436326572394718153587441296919023474313809709555153473968509432499174613051010822499662934061891660224538349996836877011738040837353938570262826284839786961312233516628477588146412477530613954069077326460262365161360860007673087259995282869144026753418541248723865827718301467838045718675097473007356941229546435254614593859970336650965597815865357907479672596551232172020101510205524811767342500309750400234297267365309043266152470473978948235678023976430063443167910344529298966959081023674584118490280412099377063204359236299812436788375914814103117142855570258702147535062546217821707912916832176184486943931646603995945351437596683548323736383770030767745288411662059293641785761061449267303330819139873417614294902175063764796667505869719647425942598147921630626307864820070671435566255515996753676863661678490245368246372937113800620750728087683843983602548554350683358910371306012496546317445899892242184405294760496108451192984910099252970842824961173542786276977736821026008987178627841787382206250456936371149170960504894066016431036024039442040066704002253537002081930888342282322221189121963349780073008521533051418787269976558904128886725512997199145206558723869925413600039389886855510167155824002744387253168004592949325174359174431455254568930007725432758771333735049661324146523062349820472659473940602721307415832302697667018446784657959556839251040989680095640608606767067068398002198001830222884211978415452432317690583217766656039796027039548013307477651771041193394357886325738681189680463500242095039480220635590450143173959194122177528898777619606261639685512932457819023337753798072507981569604761447709483468322389344738828455124558513193515643942896623614767169562005197569287917025761037858670966510960918761088708345026846344653288067694561622581410155314457823553530259282964242608947381964879554539569616509075723671162307252586135149533647566311430510848168465912330556546447165450994132001858386827760847509522345204183187144327859440033743424458369093003414666613076409461729777343868242646794906117864093805539633231395592042783679024366699588231405402768752037960832838555918668559207107661749037709140504893988278346255270490525090713393140410821875643772373275371645459083014896921564155888927757033439810131772501859946528744710902118400245611857117426418202216587095485516938935675980202541347719428845598122957892306518409519629873803452701543748351725073994747876454161628140090442730286283405491248293385476767764797006629891004882234859344236349631150065838515244724015124283912823173207215025599247529276906299566540291196719490070943369372200720780320277828595191094859522130340418631525262940169907034352296383373409497840668488500337734407128690265474427176307254340104612910738616370059998567002902939219520346327863975681915355023459685715608327472114874395319593017007638176550174828734872041849271622701355631415815258123639136319644436433043742144474731804738318841593067776719651158940470736568412033045465267661736759893543914955585839368484914653173346613517047367844822536047000319247060064329985934839209659086801392484159730096672103510647929274048814903498708970010005266555631687642236710305760925737891454122818225930801591607617165951957224700294739149956936822848447226720776565051382102082661054305376944680650095392871973555148219756995154012401599529211154712139966948813659564982844307679924981623702278760407572233155879777566479183929746763907916560377680427805933910658661990508517315022669819701664279643827362198532656020994169880030051098840607178156085030113519373896282402799790287086574479361780282117461568467585075948167873714945761608746513940113841029154020909050018700904443390174116695614512615908168577479995667762998268358168516603850269049025144322784279838882492551077680787480088305462092798752925385804155472783601075032675425310615453353961023551611261590936872152387586493067796247342820054032905631182107357899407755714388936815976783830037044121691509746779738417788119860506994669819625172735887798960225194843450584534750766911089899103153535355287805118094781900079139805816302580331612433827004778073940321576018444489437129875141123611658448162248488500310391617069547788080672427872586021559876900703549308104715061223399509550876604189435629534540441999243954745274229346098326374173854679069532171183663893871262835829493718391918664638860705022767052184813860582978971523666189476933168075766751032190349333111857674627255897198857886308652559610868417037725799165230962273324589171505810895812812485479693612425139837299795017989565429596770308419336795763207293772462675255607013242769313117053816862443744870712193942746290041721507761812143969132198030282232165304821372278918153462336898496764342275700711449418039493184916887227205565837911376244355707900979553451551459231742400893005661820058187268838518123631042892614896864080517720719653823838821114223594860286128384794925635506623014838264849367524893037883638588527897340874763044670268700982420688925400668568516093279593959273263620037520086918687421918345578900321870295095869711591497477438803653592298371375881670555821509072819564454322108219434913961396772633176230879623406397140172074739016233460485811796607601720116162660787483888886174720019389604002703453318076540101340787641678808952962726502083930066215858984114652430046964973654487846986498512462487057115557653676307249485390807868218493542000049102274255620176740842502035944522964674744893331796396699138151858609538652158313794692309853502005241354128110192398077097424946886108411932072816641615058305991573203950208567725012858273887095824872304703434237167190181471657280134027818313460680804368821196579396011197682228723632348658502529413222811129961792802986073030630456280915352547385945066819849719241516845381764709498580927642588850549730009316047722761283441737001452958955834069113739801060308089713063113647809138749162061550357925214497254738458975203544906192481414106578544924095693086203536152151721475819487079592447611719962112389194405514094206488581157266175213156259268941121331403020241417138779973877390726163359431297087586111557911462139603653034419391969617604628399162610602377646315380083321502465356246186789842737158760028745628768038670471288975325073620068448303256650586492598870935088515762218585851464699046764326948367766647560342652927019252121583616989384336163359965950144048219751737064752089232343300035018799894939390299660403661632274539425768511471751670789937532652832722399087098360542112613813630325467398779784002087638336482936468550111413825380378585528662179165320417566738687195128617971830685086903091522527127907079476740283197192323451638282587126868590939671368720071785297482569354954480298044650151988601418603741360220560759107213796132016697885510027859524342357759604941742351151370700270407496561544877777331273862978673156359847343975665479736226878412257360325154432853879606387120963738600503908774723918212941506882009042673548712941025441424084777141760927680608562840756013403447283372380401462013177132004348797090513761040179620073761389648043009600708569828035106295224372085572559458911794572569140151302255351451611666512977409535129575437629602664040461137497143219566042907321313185646993048343379442011925067216307345931260947302933114953741046686033442417366908681060956673974423289863066077317004345435592067114979423666417038792917839153079321348293665565183444119655579646837662555980659615985075516877568115282318549785006683442138552536070679362865590028487608891958268520275710179075588209841911827576591432695588135541982904173839943516965042219891591422123220219913399188664036381799490985210708086929451449102704129718792360249683240342173099792299142752666302479693310761850507934326055149878680006227033128581044886920992619528606832050956706531192618435966082407230239563565790180228778561167780367119202255644343854947173175816550303374007442675497955315809533706173892314751760739597541126599851116741625074694119755266394505164680703637336433009513958697837769347000223406569012873221744922890079168348474305259593426828697354824859960470473925546797569091978057452941307114602815447554666532647691461491808103910649760371452048388842655204933675466257667724659156591231220317985058495378530354488844785249087738618264463658660217838795079618905102240845918886967022243151951729607688749744812327041622613359203073460463679391874361965297136371326933508363247189279766388560319750281609410205440884526718901219157727394362098820411383581569520507781989889923827250955828623011893854369993281130935592190146791006900429468156012368752713849635665914522961374752746949876548315886767040254546963307930116958696309218457240474069474268533826294688833993464902039302826112832634951080460625186417865976550933016052266700247502740970569123584625984363480259630778549034663422151634052396879334792581920026188599039399493737967395565092142761979840350919402899910762141685947163535605485598643960219962504640224924784017675642143066783912971361338376162760641621845273169142375501002611248630440647301693308670136376113501900036258774578759073253121129563654115352684396384945828672111444120468755978292617725003877134558351037121189059779203287729599534940989222593242414467136277275403473364034935494412727082462393761864926923201955352660406430807204094413742511118235947101963542051337700625472180348456044846105875601759082196805166146001669416424666248088876550459011732278421391027422642727590203711796023559459167310116249165527764052702852172870200613358306711659033952207193126475970763522058424369108808867264691425196980844948343630624426416719947925116313980064746480570696619019748599398662130638483562509710920406159883963237731211003183046902933226446091022716872329522066759462718635147410010380764129579876042080152693538455928433391501001168796414254079348546983819191773099272633690821195087640431867850507550948001374326109968796782738689125076093841858271489020840995345184072234157010450433351634254127525632716395481789646842915521549478651932271461114479427790892066710526247452316434466191157022819358499602888626933761715350798024095611454173573304453839160134759666988658769663273126911376678575569819586269128573993335224384914036281938311248087946467930773325695216642224468641670374508904738675258519214817856835481798190093441420103346494212625696846439805899746285188836859467144242731656561251599622217599363673264522222108703667626928737397399730747604756342786417879618862254087438201036899811500829205633477445423794100697795457171296801417609392693977101818444959396678800249816651437198440019952296963693273057867622679862226964880302835332589444503781007189857930378704242599019609056309513442794080720674428698972285369117530816286750490222479481392974150395763694785171630828586545549571429522725855695313315991726306669858911871833213000052913925273450512374599090823829159985750328516441553239990137488186462174540701627205904143961611082356067244857953810104799676411117818548465768718582986372139418537277776656928959206711852690232331527702506866560664128658635021661324673894002500513526748263639926787515906417950151197417075442210361626683333171844928695863417646783081974109341470079818325789526572472687932023307487880421541663518128188277630336928815218499772151857583207066346551413505342075784989673544667750494007186301346920360430341763327098842076676702699477734874470954498734826640273633907704076513789744955848661885910299884659514867444994687698366123003231373406902279839515464092833099409988156750415280501325194831142034221174321265866712186647088394590779405276328942437951367582598667459581929010210088661192334303611233009696111326865759010828968832287406561145560381118515035571202657552799323406704061776584467616004741210884608011807205344599259338986184468888025350576255830631162605911027034079327909486026175281478410488017471814167422445414067768331391410568551152784996001729304608656800571735075612355911758686326647760944085689853838919801299240009892509408845939791876914470262666331155046667589413462114433640204195093349938890247184485178335502552035479438935124205818011568428306480253396859499443161683122227956955576682275477164106733494203237455025803630590958473375904019602479576135790261796403006175308961042764075598318161992793448567764011686621976061409463346993985537577607329379506540937694143038216522566595209004581090230760359309359046105862655658331170185554794986471131378632467116414638300277820166719025530556066306199729408297932458792873742821766401537486205870000351320462768132660161987909471869393721555794635993971936209298623807646803129916142834703543399996400645995219762020159970883718107127302331947162408274581282160765800277452351872925488641062365872783091442937430878604682459111248524291559726851233108961986025550594953129142605011032090808977479062479993052700035502648482366139813088243688136835164754133972993223317529591645422347761717626820533867656488061943208376380702359953162439586976169025303669888922435886318760401466424131137018434707310413068301580260384389220943152285698664529501848581648323502192430877170787827633218820461185893275220217801005534381285381187020210410449813821089270555187273782742725010371598119232536479284440517193201582781761459592714478788176990670323512718093292162307381681851465014917812078999747666562628887875377462009525358281266035228120869395246286969975130524719967630471281987824381583349462477082422306058189239398926486817717405623176014997616162141551707337505113183097598148606773035985972987612357345034734366835686042571423751346584972696887475939783689140864468088070787452445152973843981565375189686393409977540395340404858473149890329393790881098342564986225571985348185926992722691847943318197116030623815989862009895334173565140931754104387731201350256186112480291446681714031364143921533014559392623834044106986795956073788932097340503472506152329048204485901776165421633493727980601888957362625844107139113063521968816857511290004782765010059157003249541183590071398653634950537640817372430351953439407539482479985816885602287015815264677793348037919051467372627289585384819714705717490972161639612253515358018620850854495537978344741232370958269432497534620393241194721525858572199536801572974149333130250083094157807740791708498000829501449357769948930400409702874203961959967142866350582170979499506608908731311855224191370895765852648206773046728238826632856149572869252919879205920377489550804400526391104821398254434641234046127088627513493221209714739479319295830852704113399816552558793718331986940740936753551359380068448936018689283567990496202150958387116112478726795968473663978747731675629694549006165531619788485452025880344463115103592254206795964412970448036398659815623404180392394257284865992775887508029162934449357787710898916441927568592932968326208026768083977382816944687735352341143018443741154470011473062693392467215407091774652727833459243878761426321131503473517730436145703348947530889160144560458020682698535617161739811446885832353724751590387381197126253324796864268628508004138764660778495721117330268726293323303856682331114108256742940359079886780562673834897958288804443286867996568638174683885420726467965830116621191677324523623899940370092438630757207993039707875489277545171837325710351300943105185537054574980412929128564282499187900964003875950264085987792592161194217070733220782997587067951164872578224413711051351927073260450963510476437964677155431005880803895416500804785999845267867957674641669122905056838660664277151453272970427901454506203217621411345698832424507550810342740742890343513963838675403934518828082790900893479187213196885405276453470696590832691428442387122326352359161173691748088165642125441114044143421467959442265261700768337673781989129047777566170754121495808653535733377820821170758884365220644644887969609398188733278965328220695180230170823798996369009908141941564240688391412845356032121496878214001967221096765506665183808196890617044923665693723335808442528268303667293676298720853144551310332622369204260663790695784733523165891708322278948750864290343368454637591682651616818821144349638805055641861827622332701373754339689951701668813634575041790090849356767434517705129000546466328481690613633881019729550844856492189106501736435009829016277911407129446121114262361381729901570526597167823831199254973615318859370896671161222971393866101792016172511587988380930536370019267786687481723053079293049458482834946101442409140444829251372313893332285399870324634096296548917213889524697358826137096520286907386072168947366307114367278863689137261513355729183096058610809200689171345949148883116541164557945534236536667053198525924791157186949887946750677188419605031385765993977865840824703883295382341937284267022076528004738258685056417450922952555652724141216744616277346433468201179225171456483428749252866003127494449807261418271126631944193326740264753751953868753415567025376101060862501216220148729131157700021511229156038862149626589062488399491293641476895828102464142844631099296079348104588302340919157044048012465582077760769767557852847591663320294481051258399845319529516080857940646251736879083094667783232148758640834917079910801470430518545970037922592828792251837185259620527373158259933035071992086448403167089539602995601836327832738434484786492266826926000362998995381570732249605260321542067217226811027111455081682483594597981608874711074781717151285884404382599043805678120438960464514033613507396411795662262448313459131906565529462035143868650551083359669397262028924922910496357551155372050781201310650563088785602599293828576410200842413534689139576328410691377953643495631778532612822441869623796293845175532389307314127942460914259798933618133088368237992938131376863111964881231535241601028418458492391191538938714574697326891188392075418412564748241893355762583211652106578283932118220911312803729231891858195564978925963428151353842303403285720395590012771902705016447448382297901482257017707264657221107247581758648591396017807892572717388671909562017603468443411655897088691020939161500034477847744965836531123545376400875999171712376204617657484544532461053211974713349014602346198766388228235795792162818605691463829923778776632019751536478096843667589999174950277465764933501384783461920994685175834050732970163014334775576041299683042374096755853276112384093585890387004476523894919397987303818303972606975821991824836720449144681987704943231101259366899940796583880522311021857599616409287497604305119602694789205046092018774689503047785364023729190714928030313522059816224339291983990247014723627239728069173525857235955811649038360675075493714163448761750189289894754453318942001986393647643823524918603908848377001643644542939423676041208593179675021239774584155334757313663989515144453364932595079039190089124928433371855419293427122275666082211138073104677575284460043121916615520437994814844818799394287979537967246272575136789920368519279119952386285681623448421134510108451083278118675157948589695099239374106477871826893980098057397395536752517781174835655533479991731194316595575135916350083965538045436242876910579128920692282725262522622482971095353283373025457920124973088404531240933262909240257228394016903843695388603417238797866696131309426786993748597609798169207510290456223344012113726112300225201498978487396725815860485765324648909491180111323331090412270593416548859202596760294335755229100735402490274662011085576676759813655563328247432234689948704389860673551637280754942404017896557995621080203168266957211138847322957857853535189093285565833573698720052059913909839997150005629841178871623207684107514943373397494133276214248439345906410956819580540423667641305218515821695309827312231061545665167988982292277341598839584544494070282538896848773140837771410341602933708421260658082110767574283496902686287136972592877394188074097642946720948059694842789275109980535928298934146648854022660276712058669774943150317633616035214041409943324993967498463392265213288125949718445749643181411267517082838135101824915128103853222536374168133022926831576499948508003328124126929357808565981726157785813847895086344782223162848305788406570021440436605206308435510913443074299399083479087939588547548163746770336954304452981001945504424100450753141563100502072567013335202967682806045302410365486993757973247239700269414856923697078670496344690043519309193904939980653345088283261211016983040085386271704979145994155341264014879442599406198827176412280027484475563679981273517118459124272206967175371729725578412272874304658508037239621974419699427630581707246705566941943462646137060391718181429487146804921439154180204261419014208749605732369753548059881937550496132793265122449914781979087565165039892193246642399129309074034366822043937180228036473717314391856270655746705595300299265193049484357720704031819363057768905031253183166355115804185294142245256646869642806156742088345554120025283579569130977322450296016336212367503690204200990718994577157977817096630991318701863315665684133158833403180273766693081417268025698990917398412502770398641711899207904767251374810975001294554543556494516120905532294095475794959823243312073351278509469122128445156830290607594849863938407848636686376004411842738180758499639419996664934863769588371295852536243980425783176613782956360592032238125883992013142361483421050651321658834379608583871494735269889787396528482855192603100932763063527061342759544142943788940143967662399359031125247167475945559854719275292305402369665881920092034326826993555716880754257796828517534002218205861880265475953519942612602073182428168792446036231316237155846048807266005152840089381505498797561931395834931536211446658029823854364147529807271208555406033715074481255153810823046085585748496039241025148046586072637516993342090601740774971607697112159020042744416726513305222668927718161251614112970797946768906675705879827718544547217124575763142406880804925750201868985737839180799237496434060942330411260834793245728455339851146611273714937572944905559845922972144243657340544906786030322082462993016048527919787504007354598716334924514773917318634169374331427039099491487978360377479965823203423468471353172461792007659880993225998563611050059333202155952364408500749916214460915127013941540825323808361921982304746358795924872032832289656040976162155492290859154868971343842718829138938201912048911973098910826151268397518765211347091404481157779857175857720704877746693359368409286098802109959224067443399919360751193718047540416929939889141719469883397925003779778427389375957962303360003866070699137783759711697337753828327022862011189478005999065081513585617322771183576714461807928658668226827896132163567120839647442310974441403978268680404741908147936640364689587805818915928112941352802826738415146528619009437601572282558666796060045048715359243287507956542749387026363225326607776881545805496196461466802678516581846840765072817755349633007410748193288322511921164895720404011857351176486086498155432905585074627854153799134354787318893776545195954569851068727806345328281834216010416820971193910110106317917681528638420529749406545733445989395311044367372308062621412577061046943220606528104965497709288060433803883725571127098672762324958704815390607357870081096870288957792203816719177773601190567246137574996739179385417462323681624530884856884829300504556075983327135863331340769537596050355861765000285957430674400514294722567452370914931990117337768110255272321423567134528154613110060432334105102987777646637460678619472102216558915729157933367589721553259663652966445288354890010103488001162352177934806175886005888697978641900310042583375058419213744018860628175363043901543674023990735328335513469484907998854348131271568254689876782357461684210579401358278465404687847595354397948627968881727293331833741533190200900107634517703847139385297407728111150330342357414386644081191942746457750608981742642539954308539485292396732536922853681422379358402689364968508076875390573644121820988167522628757995181702685660644655052719224415307329860993322783486301206603177046172939987011611210536378394100313023045744340792251682116140505315847740081945126917309129650751022360037075914428511612702497798675955541114433184440061440774932989276412206510129303844337207560512012861756339617899283616854542004637508716347285425384106941582665607312461517962486048973839780413494419579648370492751866133942184326609446277958819720373869565608370531369691412693377641894372479600352803072915387862012414800571295860197533607777041814943096577801039434962973099572165844012467847158586206071044910621161437535938003849813783694645470295411437298885064065610859754114747402300294938444122299901539892963896099351037276986772790414214342089976169444398780433839139279875703838932200912917636157879054943216590268429175021235073895220447316081375936076040913396117355365408873546873885731589803910512794435698299057670679848121366774655600684674908972049909433845672864362447562379297716849911596960946633308268869572971499342944019350020093175106299157429299777401316835399163747742940202552202873268565552794047721928967696988749035830253045945592579743538890802938101526456919954010318748877511426016858665269063069371041189107402841499265385728811247738313793261936351697930107841007454871220615373618065176013445689879226354231170423169588155693316180089097373802651183068252427978310194883176681520656274649616008729863855201451595239952433572967742019195207033732450756824497967727935629436814793432340580065003621099390527177425112301163489684884965378890962289860694211374286660370665464334191923915513547291130496047224273426231735029728679828022627815719946044135835839508740135751860302897065652039289383888606457584754575476653239851369235689549206421775491425791003996879663746422138312485603841840070390673218074823208724034555346279460558443993604868649914636052469725035286823651791699786707123693891420031971525109220098722848679836048085233768093282503404452699222082045115734432052519336255579131609465580871038614513777598468047074253674572311711174411814702360253262536588119124422842428510456853626831036630912945358521975741726158919452598177110238872834758092178557496989910924086459672705387003777415948923443415332331922599226275468827350514377068027803032318943805292876390611674699763981756930079592226208137796921980321168495484762330140934764617102953708589493382733891868547533092683374989022517627004159890343960641779453914968062821933869858704754161178372981876677989247209187796402686060192401280652374787719727546786568892777400551477906334200105441175082570487697809029163286000270325865091386858113071670502498830988565407159070254420681048706106248664126936191500240126288626060762186059647485684213263381601219601053574569768156748619786482031374473448258335391470142701657693121904212371929976865317778229020761202809622793971306995792403881651526080503667780405194811345639763616066158741394541721496987557755058732364952415897560906645140792037520265573330234070235967662738012642184564376894983830114508478110015798602244082504704838468893843811253578230459495511010303404999041052530790864215441896123604958847865616940029217755483340326187530422040718427908108915885960585029656383007035687785884874246964232302971950364958886522442033026643215611657911592931050431252459757971507242032866485211083345765689968235713395180471445610052202612031508492001870789020231013475731450729889028850694350265493866883957319634896767073947319685316218269314196183322698461498977241221913086817617947251003858284315305862331012784073213060737531209196819557389247102329552807518769281604287649168773349725688357845183585509656710185757312568234525813257779519329204105867567613219584994102917614165552481673153532702613865981820557993795091902064860330533302628156232369125160002967752580522388678574397592323684405934487447235580281384760639731945414374141418634861842537499717452943458289600387183555259302926378417143449426653199758317988492904244757932070407901770231165781817162199244176070490279519696961058665572152013837897900935436526834989273781747168467328188659037870525069568911414214175372032961322661430086293727648597355868052066481689432314660796190474204161300386629814760796427814733814465761079317292129065256779427195085438522972171772816585276603769884301593156584181228080486359276942889425835856310470578385543649059906292872926519575954958908074288812740243270438312214058992839555499587785090446949717149562342794191995633856598965040131942469543644657482302198370145860706168681552117899792234145135437215599414851886165236201640960940191315113017731303645929360045164479303246997620324043080101213183656848560665636278340469503536444783520299303623329924529881852277560445463715423996016778991575518768128846829018736537191888429078718362038939353768310759803564317524788466047660423017940609386521844385633876431881605605637008328193629051966495486269386751519681100824574161240516348312051541566704702328626475514442765330636131683239651474222115377952871945525870814776677086788099390922496069170805282727151598990437295874829536006917638883035669189850823881890741158562740641603196744909789502959692858035998594877896009119182628233052277873817788261005817104995742427113773341954901267977380043911746132008846396978124841308689719931691221587988831348312195910018661613640728021658519903021291847456526736062112696226130331471468224055625126516047184907836517656924397861013025961363842570655807287659168273742901691762130287507658569561431489931796115471819124509042034865009125001330167070232297018083849778356445857554898764593422726273376975958381135743151529147376806627641432435641044493035903111243192972916632584701459851165784168833936790666326425031900739558618877959816538111412967355040650502310960231156990542461871528371190781089111820039986034103122658140050839764527379927737532913281547278757797881903668136628378564180632110262699156116298154095962928833738494221488504788352588240978880133952770977606861173572974689532413063640504612657047722136884526936204872829812955373012950389971859816868208516017010394899432337179032109326844603276277469933713545428961109882078155042214324330990604281757993746933615030909870749744615367277681138359298580977855601267832609859768467399929819757754847713101624291776373779207077192111483327514505819884113631099946056362082423917207154166158680629990917498884671483052498611184617196114773379246019217382522317502904419355615438499723046177618051703004548511147736937987706517985138423057327583091073573085650977019654349055304545553040586949511670151321063101225749154304481185955775133078780300510679494484284731822346539298924854631310460569323554933083051562437043615071434778653175285041085540917313548380787732180062481708995343349175222805342462532709021124234000079894529294554437621838728786092956201786366131693652057249472354914891042674652731079079865258924353792840667940003848829986388755060417204788452668651446195140913254381935964468820378408769312668764372087122170962398008168897490065776031236312253471164167116076831927084438661502132498016871202302940887857346104750630724867491760606299107655232993493492891739276117437214130979709890091742963078950478408348702523617808143409262677124029015813086856361793848246355651015350764790278319864186724560298926205221104873354492582402678600270135367483950724200410920830724740472852102689403290431210770146623724199867254443340242977489206119806563540576838059349679326651657443380697519792963124220339208599384747244922811092883922207688509035023382805993164975104537075093354414685438256248706684381924438219582217709161884498441815917180473518807277171010192767106500036669326152784722767049248129374244284583590415295738413012036575335824599275287336833765079331020048922508003229901091674842626380165260212984865948403978194445067431377726387221594683667357926302827204508286740606613214718135252745730690238150056163755974615936638098381071248262438501136569464626886619853227664295108999536288919147754306293353937717348544780207994827396044412420502796424717191822881861752916764387459531456248017784286646675642027090738087894525309847254251358732379296347606517666818137786692359640290311466731444987171111956215186913412350218178494153534660651251445751019692956245363098377978711819269349906456083442291181007016468298734857003747398912559520963532854015043690872243990275497641027127295991877512088333422203204855039204908650306217987303856783420269716738809177646804595568329847596121878645601071507675380992842072185770513185145425107692253583095932554892255527274991509488330501267813347645453419576050664921145556625733331852580434223505509201268823738236267450373859811097407739399038912482849441291699525534320914249084348132754492244640177453531256070569755289054814752045190263264964154970979555185705308657917891672107949632675956879755898387882655936996377807298259106978190442053353377285297140107031115089063692672722882042106177846116549364081537909142005099910911273074213933133726082916756941593929381554377263757612441903363233232034380212184481867060651413106093911212204391661527247081483237202762695703787864684108563650486609652525645489209392147009112871870134889987999362637208249963189478488130235249444083100587365688476037345389686098323533845073201677454818687782655973313368105004626087106702709946679850692262918001386490740652187826917758636512173753923763626594912931463233248306786854406365837165637641786618405940795797323524211733470888312224256414118008920344715040892960715520960754084565353584436134869974561148342882924188076490830960828288397412060518351529332424263244985799642004361840145387095042595681298410943682713004612604101011876187212241611660452549849180934232289943210099514542249589778693198863965391147717058272486151848963232981989288920705837533060300903339248988043926784679102602455473055885347776254226872259885017045243534937534397126568298724903072507999451549305742157794784019028783960109142212835536480341893622060524549448130465559723609351832443440659263960444853944399661106109335713194081538845340446950795036322264552464108593858534573143905301378133336717349266647124643978266686222601374638923636857654315288464924213920380498988742071641561580724820137655539846791610842425065112955218913846279186111951804761666586741746933992018820873866776604962809693934944425010323513663702301307478764073484034102601958251597990402953650113510311953284849204163420548821942067849949552977243666405037120450801533455473329119899990699507229500904376302663362828203566952525151764156090634818497404236215411459789094906008713607366190553433083327268810607371314460952806230395886414482813702705894047718758062640865267367092083451701311251005237828824323064800154324665946133972312373857124423530368558778043880696900497097164298362038679827221727866835484114378941413277598161337670175838956070691474565764699899865377288529822507523277385775162468559119134802255462075234385159275778258193929217978758806618988452241739125927996844006542825972594663999450353148406094771839746972749842216099232738984911096731207609633479745953008947971842563771766321276650482343419680319652951442396695818799620375832028445756968098381499736149044546405463074312974690500314948056619647545319928579567988953941008561851968891792746582757612148146137404174635118259253741731814734329750277343581450343033419349387148936881164200404909580792581048080548972798516348962570850403284563174466690459352006397665939930038008919049992213901553994862306131425012110809616490480640739127226545747760842361368850033069599522992785134999372285121321961925816422280343117106858811789516049276641602541615649316881968451571528942191951501096813629082041119189709337928165946022784681289171049703880053405905026889046709813770771869056453632107291976753460269116435091111621615338716791040415264431617775291593462961197357992150391772521276771194195619757991862769002700899491129830097117425987494470376327298297682779139127227876961997407099461583876930181801036770438062770445082547136480692112440043698435928883965973829405614204886974528218518794622473900697718134322454399488155212254479723148591573991563818471927421526097403628852656451827335357835968011627217278312426416592589221193443134792011231418476675309243673355365947640107276404674652808820019543673159606109120236015049171018742236496337796117741192442117590636295891173981359979526825026814591120286776455637576254238898084794255529291261623842752986258273523779180468325646351064871496090143288444401741349320517059308847792524208041109297101051065194458159831803686321061870243357902191298164967781710004075385674798915423821664369884053564666910277488933353184758706060424544850454417906791576591276410299538100659693702226963360689863995643478305363885348535502740154769892625271918897826414078227748426183103489621774630258881813607120502447009069061809319017523548388406068763517355102334736354192354711084437548474042174846255301291285451616520832864858688080437102024704032387321113429129472606380529454050558268358297649582144399341849015225704209464225375156388974499190562585756990196224296545831004779955602179273757380626768324192778018806415074083575014690820243418095492084964101021130498082143347054297499072071809583461271164071899209492849943133017696742014129266428512447992841728418663502069337334895113750701220965696259988499787894396785799351095387204960953545530346155674899568825468539563045092840559412335155861194764822803193585717255310945715766118157500857427093161695798683248292503164988578691817494596569078356372462963839450904821560494016937062260090445282218811428617002087768465404735016159649777122157250640978360942788328695430029709684086066688360877730502203669207288519600786438873913880748058822930405668239928059854483996980410781634767271907651250598895112961826567894465743866946255072132862175491573337650050314406262509372522696505943998392953000182821090822783720392173319026478425294745794127068783107069493145247139434680550579804314335934168026592239120384151585836777294182017883936340544360524775273604435044806309637969640528523954728540145648790176963003013429595417192747110573671314713450300724914752508595213279405346522576312295985730742173728689699373326865738224205002823540002872649134472157603588546738877462820293548492991383595366247229841995149090913608048649146448345417567807642087290323724360041874760812552919914235737003824965955195922931928809237999130512362986993119806832014860397999611440959879111809993889668388291782932576203715160653743439782062626066322234560531281676612640382003112796792793278042966190627837251643464307988875191098781811795521347321771776425754139265217499595475000955803781950960588914526375870998686140755075449972546280059076518875221100444861909280884505500690149289665501382285786359240826927776041849350018897692477213688971416115350973356266757709456450120522906292907493403928420225433896794672988048721049709637037802218840707470875903980018210006513299494250367403490932178096232499768548918157075054049184039603358037397942868281900647886292918004499776777336120954454626711986650769795375552492528699631227064648758196548217480092292703043269600155941147064210823086878149108098542565218099890418979565199014449125913805324393707334942825861542387183133934024025685042805881866683876743455099392668286046193749246503403163036081066847725478174965076697185517837658220627102990099489055610114036887409320538813509402794533155141927784753401508847690324550750879617794051988005841204825068106200409921582515810913577355269684898159869557970074517236998360487820767720570825821078321134310440062925047936420093159722400219961823897521759559393291906619386347045551567725299983029274403034495736002833426685050939110329597565181148681726950576385478297392790165242235924858687595764667630508456011361514391412301572060359296067540804656295559357939507799367959477187986358430780999963057653981449781532607572702365654796586438827704232698763512908409181507674584565632311832291790249400647165455897720350504407943588996586345216806094206922865941465111583999274133210987412221761711416018643645379328319587347162309978771354222618912060303589989679029880008426744681826600603656817816010757395705078566424925830939778018044686355955998533939297679800992423197650583333522353703992860562010536947031915136359433019425615521124995126015552593616667958552070715460726666184755325861518707865633052411295224138597255830844265831689322914673488938624270025180301976816731060981875309906446457211745364170432453644693196417752036484087539008547505347913386295475190595569627658331879307203355196334008712878851440324436031085297721385236497022457341155332223094972535283495716115533628874542580698720795977596193136738925901102555416743108576109338127328455867363234902364189279868134193855068887888046240140986584876102098243487738299117024211610131348193694125624456811205652915556123422162784520005117993968768111966034031346157770590834999630995335293299602345458725887469075502179341244997918823078242200136421776529200383040750086905433351334889668923124674159870256955636291715008019982466037916413932069241729647268729411973114581357674321965716661586904549690697795916589046712645041625589249411683165624614790472762351464936644625480573023710753917181302598439089702624276167771447699968770437046071351958316141553165721067575248185139593292602245748866454585584756401595818418915845633405208114306478970685198692551398073592742817408840332852461767914108066645286290867101794366609845387401916180356784780685510901933702529394040312967965204754852371478285876830440103845993457923724712114204936692503384316226848046045130784548682922353419192878777921144905803641771258352333468327823638197484704100380034800158098271139696640911070116127438071822070048803226566059786730729420640588617963299638763100355937711000904965812191080045388499042811303275245478345547385573248791399436750296634551109417460374885373680219777602959765292113243181310059229107414561648105953137259737324892856826728276044290145399345579118400660939389010203482526242323610941593222712166101275158299050316926420332935601331477140053465334260714256723989463758326576951898188788127318129866774728708637016200664654005318603164972002505656285179301136354062603162950627142071540210350071038911980167388021175243488863083136297194541047092469779564357757649897690259049606321660333129933949303893421196277781018023327485712405422290981593471517900822265702504052617429264274139018596486744035163490832955398588479342780486252211846521141637574591293432434657272489376299231788855474225932115522406221309904173560003361675908516670875781713802791340382134960367478588493097996923694422819345846579336430869706014873573579368158735573602831156759814201759043113153287045189428791696916427166791031402401112939676209153078698575679059786142914218730809522426219451989003152938846840513355319654374737651702060783179757533593612075865719916633208638147873936443968440986762647229653236013032868380796233677847736770025332524938017491336883677225983021328254580912700210111472663442417326761626349060628395154321878977411491730655050302279457243669473273099662271525959254723366540978420137375169422437007720014068725649866417043964588358006519127672374147535880744198833619522982708931138795287199545011372602131022062975585099528107307597847379505144482338045615342029446349488675899179129415499322367720992073731632576045838546311100306195957396105042059690966134244493741804635823378910789617560614731582301358927038412455621161214166121347593061082478947191540855294329185273625324875182461219583978330335718663728890843442537669122983430427587579984077207203236406946884794065782231353925441627823122764597528418401029810433660477927064106399635790832615227797381125300030971613838317242518160268164509564793507784172287567218285472810091407611609883611416200563223549060315845866932677798079677730740610377348547819804221777797847529193730129469161983915762689245511229493862019766219589130155211635654093808264244763498246484495152344793741780088713373880524448545315199775579310183421563640872518032558383854780641895014045274632849762541740948156445792679674515938122353572708230471081073707617163723895961652961858987003089860596829330091119930921234135910493761676169588049330506030172190709049894911877252871198074154118947184925865062376986450875112548091985488874028426952767959435390273769226817533923537453267921964333140222245803281150139853633983231091447542104318692617534844452423823079579200434281258028730379571138190712987742887188706577909885299260175767691055803121288988440081301536007546679968287972024022694062112499020917986313001175956672301693709733278662312838388159551299346831466011114749597521333091878418929528845836166077473249955223915791252793083923764057647614964355676177408449404702056565662096747024185991323844823552332172528239858774683497031989685744947514025223350589983780350522377905000022869098556197052307995563771178200096298129202282787765658512432154566675864697615625523757686135527511821778312885851799546919263913314792961275042952377797001518807430448747139419341455485648847362606415698211478877706953620108026000551317089879242925764597895614544091567146088720109501386618205219733479151451409669883386814155715434369495438984013769652292800335005032075402572853113135439625125573964539999108652577943670917134375953565742024451675983624386369885655572478150696845205450681654608355695763964740405572956950564185115354288344196513213020178385264392318710482319783209014455576839047527415969574960789762525335986524336778819563689215583135139194901757243212515330109902036335097769262009743697862293554240244160098248634701521921140273532566732448926780424397476297848502951596997593910997722038443924186667467030491004519268387066515874114417916482828597780049206509711114122944515739311165106663632321825649227096531341056108733598282096262073317111735737215055763204235889910882711382781498603224965850163133210308364297240082243258469438609553090690513508166796306895499111575422327899469882416964937077442912231612629703277239824236226144990765284072985643168164744508442386245177166886923106366050571918290765103691868325700897570725626328768299297743064707137005628542693901767408520509342156760072136298469371414868672558976013734970174641255744336764697707358682199601735683360364021718183799074525936988287776608902210195914697279274216737617936019077529279082496808976701169016575540508281883528325638526573302471372990164832904935086200447656010396444458852870708598796968168774497087537067073552919730580706377234176206656743620083102347593259015356073285417272315779839357160933418968503730913161655602428900189544694620697470194835689830285721154080611355627726612750195806486664334381783958252191675491515583330576217816442005246197598281093322384285027812379245010888677726497949968563891218288251283374071302391303578070134412763712633333202642777217559405028863659783726035805454890202718993239800583561920683185825161992050374131773925202870864947881918214013520686306131161332637601651401432411078803224411636867325431643019830902967534045627391516059683179735620417312355112807225413657041751702997757370428741266160040467554975399876588286431794173564905927921794737382976665179357406468274392984159198884889825905806809810901642990877354200651143300410984198091657357030404354416055470910095702772657045071125960257053006909183913155789761603112062177543401309743907371817417186558618602780233327188992492541815319499679704824726176824980671346269737302826833283985896082406895705738383521187242130381262882739430431457056106584833930663238460396517649132260865954576482062119032446086190917746115554541838450621934995443878364713034228724192003078247144498307107965187049065760105724843105187670872362920920259039400269922179225395040089965348783853637071536652654308441146737215326716605290759333753852844683370317478541733443114979516071470063252651715368955460702023688895278723104512976403152611017208916323961154710718194095728168747308275673721760691524315133851806534459178469703390160733976460346900767627247571280656712601033450489728223121165420549702402997567627246019228126717372079912228891663067360263336640503813428743931048846496051577651632203905823882592693442601695447837241945429194853073856442519348158470599075876119649160467828050138678791179304472788937318811572550037966266188332888775447150619653568403107207616450084330780260457291596311924125518060924164084578821182442564775793076677024971921419001393251278356315104198778509718775920034021967621718993330305167918413398105860123927951125595549839147185598283674070958249770631941781500003960895422308407991307187332709277770391344249307806296045605681546651787390508173098946827921946271453213232531487579226375645111700529736227163330402478625178211943160410329348977744124582663195761286733970098878252567509623068780712862793756103920561578241555190052318179779705808646409426681945192946489405453435945473270417286484680743333399103333497619304691664624633185357487602238869262634059105221732761055628811083290132090683936637871392492973012787743619260731715171365705963047241144859889224539760947579037779613927824277845963022076328006183462046679113386480964505063115248686359521871069851740269876469200686410259966552042976743987685812952920604396676986103371487647825829063959041264595165943277759953016295733114153111506442674982570890623977486122526675841886815294705534698146754170194457848692051225520796787904209800321772570766500712852968115353323848013754750209796975274259712668380135654594593390690606425435808146638094206799378390202862778089128147068244661259017868030941920672771120120523525614049640912185828530955926979690963040150874458183772803365523931964411237756923082415133440926333104655639182979567669126289032233500741251284450536374093355934136986405707272134614982898344329234767650814146194853353058122749829131113798049571652379948428586278095497601058655511175286685377749496514264002422199979779811221617025885722614365636067827043668049173406204999927000276267958358004453631884945464275850140494724354216306299496298093279633832901013424150715317930536150613005834072155389611680611747166474952948863439674301962050242543942092323643685523568593887798119731936310138794037230654176793669183981783076244496315552614358254419712645485402239351454220990278246569504799496708707821212374853645490832684331435342762781845820596247227123867480558940981683728089451791864849309982692357722940410321015895375786628765677532094034978705235620584627388329156289456374173631898126805461850705960909645069076143845227369507603246397796476347981538911387876941235191928849144692595313575277029142487707564162221496660392883478693152321163566209179586474422253553507528049007823621642957913528125611923616891470699629309139795096732737271468552293592159783040500002973362366663228970762137221359621645348370260273846942568968910389240874290573068340332221491949664217704276418399463357956911185243128574063106012329924915672069462717582780870797595070626648939793312790570010201260379433154132331380237008086038643470432971149899072200655001435329653490922060003711306140216402267114482505854199499459996149889306926134536558009563787136125623777000396018801897863320293636341099658982665218251922197764548114830566085140433989193855387519906381693581928502168565518333254347358072013518935300769970345367923301070484384244779203056381562056920175331850359607852140347045620262974430682983134682072265380024484064277782813253796462614500488387066798305924582802747920773368850228658255938919557514311817904879276558810971264290325179085541537731742143548395495607802892045901194333031738158117239271583275792783328486758058468928226717451005663774046437763935249463392370550480787131539388587876106651113210437426227971374635093414001480396995670522012323939001093291361730681810723159199443015814980575203301406450054561128189600217526691468105563143340988808550925305044336075065477381008637362052410282136611969808459129061404876655544863841059624688379979485509961813920508812597086384971783897466341361105111582253203150861426833891883734483160990626310797316531977898944465761374418108797829089493918475280297473081121597069682514791524587990116567429661655020545868946126591881514136925127160375113903796209864104713296397584108030424331818022416430125913728978556427323059795350654985304485304627776158763768821146641972257210785602180196776513869519642618229759858094601941158178568707241100281323903439068844033033475441964059630423820786701619071839659841118547092056106964486061607457770972074267386673336158253826212850466771107980703998485378111762404831879807009613887064878531869634318323436591836882522474715928892451026426634320759536393993215433048118621131216383729376297072261144402258235333495751879713091838539700339278804174451648763210110097599688511689789774676845320397629183398674332828821795660464725792640007075075843785442206498891303075950489772660220786754777496145561945734663418798441985701685261260990981257638434817869077400739708175754309999688003961024815836831841280231785821582038517407104299031042558137139855712462051646874481162695467950776795514769353422442323231885355661634815045304598474956569410549461652144952458194952888878577144211675048277166095181913082048764489623992921772963530847146053743207576531612987929004281257928275618254302958614038011794030515873202935722778912729226145806842446729599264174021368438740188468871562740020263242337713316428277607133621394889857723662215338350150232514807258155923036135043035310121438468614623502118067190675804359813485529340354227795805560851757183540792174213398549965840346887190397946694240573758321001047417519664491516111243747291282277213783581079398831103381796312461411367003763126468605253173464587029453288930775864644564048621318807390308596977649987997321687360988489738288341836701234974721507821421361264079872153870778009902712941927891310016884636993994700911045603929431437500582042090275954843792438931982982545759979779931001646591501568645137070578426256974792988006327078406680736660159801734260366141892930260214313420840828466115934865191839888392038453876603328766868419224169336321249557364535699341021180928159237829847190703840766411191721883654424553243487359746457045535754093190245045804329474705748378367940133252853555480212766572116784124511906190659520001883162929074551252202168682509885942864037312583047879382963592301407724274982756138199596254911179484337100150593615186959198191553366556999432575561995166040327177803767737865431881341878401511659355900306402051278302838437591903594179950655718148805058400294096483121097732920346234715168631474882863070529737441892249947950448073981386328509038591249882645293486526042867291191582263525589449839978923096104407680427981242166929296251898396797661447440061378524385723664103104091504353800341258829107279584133404257531429277330031799519783879296267700642042569062934771971977447775629705015526329277301001145013287046580880355592678897612531761811219698963645350300328956777376284319745143740058798276669664464158297758401660085310157082691821885231908159204782108866414318594484153992536058051655069888491896595530051238531245623830853209767876887300065459121068736916071810759108939428553593580021004947656678530237700658318381293475876633790800061961225228399432228612081139070107690944922513533309095733731307831507834783691890325642822799858682272933765860828208412875921141373919324493666630340885228968136273749070842825276318081261480950047387439656441811975510585872642527010535975841327375249222816460680950368247431458528033175618830242014111076254812588018696382381978044529579847527853122101749403146772248106298696632277728478493112383191786329573627778977885572574338377180882833926430131654744242306663100504594412471785544276715327904476470995358238214541802381997046956245388651068863873639468235849949972946902448564585994060397058510341824704221141914432484362089154572684385494793728627431366426882628287611757457894353463828054317683083640538719270274878997065162748729815071553684389248947744771473806201457066086574168709518167419326539704498125232016708545904640902748825912403411997891678315348245331424112732433303377472538226118011882063171215201433578806969881365892023915719585328035270224926284870564373132703969185494601538522959492897641225452214833373412833132949400344267347965431859015572541092174243956151406414690377886954091925872019734597983600853683937804797046041623985381889857080849439947374280402788697659867888826108539266097924232118490446475189600403423146788777284033380900280886696929782680490380145699142621122239757257431404247374631326405091157509643302173855665491418239315211569771450671946210866141728350391907827707132694403528676620262225708403423430062657497128639278673424959375081440993132061337966147700878666626774416552628207392344697287630534572270624064934193320562992206680280085943706323321440157428624571938329283356487224287545012153241584652658752804892872524896493248527180121011637927507113906314164237129927852086760742938308242669697413705215866362395823822587404291308960154538954639946968896132584666474530436479232785439063187192349411295376911504405216442071836853533121591355431395959453828099259554175775706289232496261468201036920800947675121273584125751876403976873263244806062921240501310753496373662498572047701405506483073652633268293206470674336658691896425078923936938212942500963034374765745755113678067824289290554758497159822487171239850057938599035046114863767369649804208334372371155718623810326247677554520374212733107400037143797622348796368471442354576034308675511651918520735134842507419320126457774142559757737109277093583634922606586521695786182699039204741756381929617446204199081635271508091702813692339083156094756698681621076393698663627547072409559105265888955341221914323651412034457917921865692028424496922230259958710045629787246479466322869463751650658455515932839552510948586477458015394904450368563169062029422433598947030330207287909129687296885789356276726756737513295156107584800530752012504440365494368672744315743017029557605100017035239242379961946869532707264231645597280347851415953464725994159598561570072532908351415994300519021767392323686406432336316148280576579331930737344841864370969767900929285708639275684108855859367046262232230181941352023777268235310668258317938880575877201122730143884859634327746421335669862565382060728953420148627858983927291008265064044448852282725773662800947929582988569128560898766632234621995300576199488891308521200791663353822770120986553374643747154738380407536269000760599643714480987482775521119613756833321888794626263525210215853036659551366395688543911579495431099956173638932720093809085371491523260983592756868460228994783560256557874580712312957758701139272939053383018104233011534380543435503681920414202297386516237996801456903249858271297902973732615683479740046942073096845662398071443466457010081689610160821600935945024069406257038352181773931894145210323757067725968856676480856495784995492407447210712256814620516351772921439874537578359163469215809205366789493619364579742929734458051962127396168361919332255742585616760224602824051739846962376323218831392542795768832603855268040867126280336756471497419835303193515407777094656594428195795517320918738656707896829907149851567644843931091196279187236677547430642931716709072268394960074983342979511332610993379232355541163897142622356661223018252568961903660837480921751143441315262939030462931761814417586364288242446763907118866100850787929601923619118806827531970379488439883466756207522636662657304012451888981380615331957133418641384263256238062351768701391999798150195429511697067402189598084056303346010464197995537806482826451311264907675866764472998718784351243340533504496077957410228121832148951596191669716784690377561351466890049999247481889940845671653969747766724169905335800810384906555264434631189594247970578007215855500304133782619419303162364518187450900334349789172705206421961264374915712113940204184278095693040578152658589471160278311023677442588283640971859286137544184678640204450501702390386632964795389971537158078295902466820932607613420834471387727786624014614758807268607455673619415767804281080520235720606506351975731103439317883611336970711781464691996679529797342094385458291965897988808401037262790045916687765125122823920169275741288248829092883603691605155541507557841465873502338800635483988687139994382345294455037475521079332584193166633979924846538429197824006335899324463579193201502140776834697886010637536558666784055090070106523407759124227689366795218253083868137342842696139532372727137388675205791837369561430111363567627402640126353858490597623888677605402182518358193928673636244555801201827064916398320738285369505578942128778375106612908063482516535951849639146181614977041869993450211558840415201699683606717171367910520164854553111667102889447041337849237798515606396621462655913168035549377515445770780506162359501592027503093990585488023931114716411877621555093801480151925322654686516808122666544691266109791915971401987229963267827156507911572568663915947027580996435842649939539299680057380337021051254825101856055813151490995936726926521529171033049763981842665229727230701994258121009424399651694321540623939142659742184979449422769435461214176711859207592720134324250868658652566145798369617353104681421737853152695333723816311571431997096821900087679567430551250968746953282518187723829737024963322149166677618472606742348027251894355331690249894471123227369422554361573485605908842403924963685735523485271495135081482987135619931000253657643361535324998209791053115865394239895866095212789863364702473080974616707880912303070712058980397666037126565370406811670560795493854923815520045254804179010274619223608966787745631606822798043444398977517553950458901172805961325502180492636643638555125783959452483881740270052702189208483291131708251934927665957247587247280376501433062454279660198601617068500761645475338337161871600225164635600459720499232188375604488092117477611143860147768228412425969255626256738007110044328766576875850181460558418222855711936422872774661895118369761100545243295168752102329976406647912614573403791570588117644324897642312408665065615348436093685776355418376991070444493015209071300021332022493275746421222909094087808000255698214571227628497886525335139043350445135060927533394216739746808299021649319295289303553660944184941974472179714668821697698421572803452822241300477475415138297271495023305559420227424479220635967577345622259186027589832670975987147367526434523262614465952077271516852535840342053374739953353556263844780195144515652740152945359701533519931861561684533009604580110307912835294242363453430970073136097534068440076295055408853833124421030445467885660425680267851882303084932822700236171501023185347878253881102734250613628235933712177733957528618435069470705120659798487464513538549477527737107528021755561498594195825998635656621737039920473902540169365334965267126603011445385923279468023480833372717146197148835588578159409108532933127829634282189762192784741205015395602752130243114819051672599974054943477203666250041653891485695533968732209578054713368845248696350896281707376776821627874724882824945258405641242741371870529457518808683346328162782604237828180046379388505891753663971477745965209058740010722436470564546948765361325800482178244967648268987393523638602669462965713590537388371588685998314841968668690951576314292745817410610005805703367169466620725490082304638238175999956216107806412500449297036099956205549542227489099417636626321289393810008283914337079333631601037270414849414165315082301104971513395835179284676782002002251615974703599691391852205292569137894551259111351164206135922677739999051215642282781780239423424729386531969687467209998779951812969970725038371610615468755891917647297444663348013679056838840031922706959126011182844259683702442612613831525893234655319279296844679671987254918643827195177714298320194606236973399526214516182868321554112675711838429351137681854700511923604269406240556993734640118181340637466889371846816410649532216461785651360127974558175784335695355948731127440381146870645162926110424661036221400996382684902061525318763898332036775240209102679764558683640920653940808529466496227578946653124003527845480802356734659763384343877371169783490535742587857773057029173259439150944629645005928628961744512263510109830114259400396273106609527417750791894219499001995730573427485708879405453335359229712835924430626706538388355728401475074422263154658264872949017235537084871257235196458016869114474636542682350961308332328764485352202040689360720184362002582224222424447826228454125782877456993452511528581237055165218668497421076438762983768964378651497454017957932474654922430284140677220880113043553643749871376036530247035333563095887788220805477904068471867624473534043366985112076600977009258113419437674676472375542284795388831045244044453297784261008484650011398741304056770894971463766930895558344522923079962145368041154494757922416217139701579357534755649253305870442282270121825832324166164578519552865470531471659425622442865117767627783249428293845734975967256852974112405063609810631420070539372033301439371161452024310373339542479021750053295832508065353414399866788465870898784041660530713055022407498333562299456350550649601688961200306943496432511294643106378731704555540269492764750945487953117657818283946598589883732963219881946100187801355481854786995772765426235577226834336689895452871469271242240650870305030514935378788454525173461009896425314777897153739429809890978198646912068230021379898267287178312477052279418391096856688542392128311123078915048123790252181816394968000597355978203847007640458499549383265701157925114101302608569349588743683930341413631278277765462618419493295066034554885309776306916236645958637486322417089455405329088689296140233184633698789662642513867389559070768622034822003732707383006009487506452097542618462316748344979596380679601418827845448420468986769322740825958427385859594739143659512414515230306950493477575672852323810948221232239560004079834731990270006121283113796588481578382678301614775770011420244627044142029412000682605289058284213522795819004522082315832637971741917334207978751529679355267665663199204548404148354760040966729835698318709304492474942488226092864946023436896551582205966904114181234975044234257368758086957448378787238178517750931728182936757188467458617616306216028607428752805572760983985542790606620210770496665949065030810811427022566831281834290737974318715957035646754561620350034467112334964865649122479277198153994604377959662985189380861349535556908727718791043685299853265163796324909088534425181041552228757996556563803655052300940646130935557449523469071694274461960003338894563131326313402765946895128468044833297117402725698239641075183299243440383347073327951804966326752235429853279496566045224210812099513107211099442112581755611586314982281188905016903008190428871460853792499929066361793596117868093748925908438003401471518751475989746843119161420398198028695263476502022306502424160616161554331796734560169270956370162849591058122147740552418130923564859979299153461527510159547726906528018800512428671067358092682654782897936143428666257373182470211494528358100573462632139453877707871954572967597947354241756321972925373893744844964768904888379239240795898577621117339272993695317275951504719107274718544471361711653490430259804519282353382223469885892010652742259035577625091055093894191242054048125693089463461702722112063455489792234170838757893977097171962444842814178514718610217261134059002397212028691442212839836443957404351932611141550052650624396960957690751540472838062615936883737793422485540601752930481209032269419281536364112520143003621956521908528047066274457727073166853540043940492842673515974890766813225970430510833191020637209929433886338818896281521250498722033651599418661639551808019966310010414462983744461394414308320484178912419316872278255972622507940902819048259308448895284411520338546622943855852483065151482201261201107595369693243433177724222563191714048956272236188319835578448124881239786534937791222345273429832692155853297641736908987807874953334790141742770027516402283433816127322616870883828678691478963868497960566089153300054395121142746213908328928740440421976129041660378520844623545505622326274276520630824594139559222086333166888895678039399307527255297055675464983275300000152845549958290014150905108595989053072505055480336785357755204176299112786675112497443166199043901652168034656592610192915233929607378088210484122201971270521506134423930350074105333500598718971808137947740085490350692168916893547258638272848274759393632403896992504870950206786273301402487415204942904943472106554027862456078957485121623949900029833152869640883498024992631321855948390691130901924225864384652684377162101776003670426759034524107320699466557579441765904486869498958505095311531436133821322173848195393314449537187622992961735400884983200172874508534667034555069903492542677230320123326660334102356611864434131936795022916391970187971232965149571794673391021856346788394420363349281171133098571275234931353172164722822567137289555655006171826107513900429235679003384024202781568830751263177279757308313926532307209868598457955020057240273678074945130877262266879963013611069132773834161633900981922760469135705058105731507769960923037775992353446636995234921399984025455265582533158438904327226708965181448841672857352442747449808702232317474663819028212199648830840961635934930496188652150912947854937817960224300034105977245452285636087764448343867083041497121482029328141809203786389970069305913871719614423812781835951088676394330160201605515664297287471313948080480143311571162357758362399850279878720459774258518509212465599170481608433464981174963930517912839560108229994593765138750709687461884686014855976203408216109781593550914088687385110994389542229402220730847613980374660732123310166976705581880940481067986791774425936034022497724170153758680767551278212799805561274992389380643698117638669651946496562566009848973705228606111442368071841555693686965533211055134988066037312842757193772026969588676275998885352637426449482230276502628951336967723478444404839486885525313731839527183990030514926446787610308352529772089489440750970290920409432418824224896198896950756348266157993059551734364510911311767461276592749044723578685489205505609127753727193124857221710986145615641044175455563357324218300666957468887345073862177505739775937659156753838473279847266262968786198930328477390373076676143425147444514525532845926712812346510490699559543719907860271473272248916348557285284470419643185065822031694726958220131287294827811870256247470380668364173043770317009728529260927338869830934180212961624712571383641024107517451483900784987735362368183794558728056874108701905058716811726028520983543437264493185259481082927952459314064539620423871585730432717316899873820704354748559193973773321998548312102176163048535830565526550277056068846122599727785844705648522325098578268837292079843094898991761157847018639851969299695224677888828101538111838146246713779187798053254863962899182302078973544153896135819547047760473779625244228998022872236714106933627574525511284841852902127539825194289061217239801531235248667706347792367369267457994827775361070273446363588187677572590635251286490055125318538362463922901324162944685776182784243030430447750320168169843167838563151974518147131380262041208291605661564181524352711267436080194244441823267072007707407977444485052862507535158149765997684924617106991287206794424050801464095863261129497103247973487147664765923608084280558807514141661877356223919837269643412525118248184487591034801547059663986067016747462057731880906968207037614115727565522340062307953956304047424305320330340303704147720269281149394069473294638943023369178976407011984582777203366192275284628425203061778687993782679955332157041196781038905052345068635346584856351607719192585805969605156718674803258853976413566887323477398106586045644585845918890762609295328200222747915041030178321203950259672623690762236299459489382164354313468447574222411305874824675023260942865916256100752327600192062248817106714135937107145009163144200474943985972993640875435195418546052741778995671347439461512013787636703879645292961746784079733824146117815762512545601481749951405618752631644008785589200502883752953151050318716372416678968370969919352922469113246276768640696359366508259046143233680226690865767550237345245162926096535250082558393533761763656388878631187234344933776147307770697921140368972263194942504174077792649088659773342795003764245679521394280152638335650239685719958334898255360504151103824411410591962873453123040905814303956125863082014345676577391857364410433918376480156621732457725390933202398759051937841935677460486525607950992720208824544737111754344848057382127196266118808719212142875570678723914034037048075215849629791087122375936329330182083497505457707632648611087720684048023883678335344062552090223775645206101301283018856920204291785227357444140127016387364162713080131830083340491218702949893935014050013632248910689986684738080889553192385054788263443993388557973537408643070639523295562083837096770882616860600121284938630714065484748945784546377035006537001085201483517505341557937080598173509073349122122186382294205764352226819426335132672967476592638435605916056726913153461975884070644007450291269004348361403427138047934621016512886212430162819588808557275516238666550276386155970893776578892566498864554856015055658703003592399821242526009704718165127123264351353451490295755041230831551714439157644835741073298146870762609560350276614662245816840209371091975213914406889643158580987764468503770002203529285794078341667077913727699101368803874872224755418616661341291569704968060375894707657547784694127223333007736204598822814143336216293577662730176112140135159805491731344942915337663142861880896308231261335714488499406171089308129909348525798512243463254615807226220236090558053944510758837306001170038291236668891554479433834014864007990359445192152886399757793369528266102779716337152049134898682190669573138844200522493123014315819636629335176378966445920340697557595005457609221856881602482689023440747146270956317646056708642426876742490707314599579001330761313676380227909903914588157582237585263203059602791319028080574945552154674698279710117417449021278152431308766698077579482032847974877704313606658343661274050756691664981619855790347680080587838200178864920759462628334277363792430342266852988533825436718695488748315744542918492459828587001073636826141403909784535677319670634202156485150708833675359785594450547664066227943007259394703302507036030050758171417612266504720498697606896290323835795104809283136610983691737736938785873534881936549223598849681926482394657209340423541727762476709677368034503094971324743003298951117954883209612103965850842867279264190266003270400259358174371804096055976098752399373264874525225933881343458459609347963345634443360279399915659502914030749366771484314940425059283222095246627432910151143887255718217124222805306006900897777815659329049820987620055919352940480606439358308390240598332541766617290129101180024890388919811663904062676424016191608796656498339975538495458258418137247925628031848644896988410758015868989726082686270759312127636862750028019122160442116788718630030699013785604641143064378594416874158132381052503784308815916265007766744439205384444827052331552249486645644761843828266690706899027465671488164090956986884883206518860941683964057896669464964129348229005268944994802576995233060206587287549333181032809526971531335630524531202499636010182608938136354216161610486881347103221312108621101529675957876054513458770303481685985523513300633339713271747116055876137351638409360971555882723907109188772387579802824214978285376280129285164000650926071400509817073593436577619732958335994782569445011374001693903526024687639254433766146382838485059935794658449684985446773530657036734700656858878349317142061468004673994430310957084218966184931478917144947140393739721116930127995517786905626379032729901914744434949064581427012916169684825189495708021772319068616384964461051830664491777933458303852976507673502999672432358403403591529953931876628999119007389608819523628969840484607350677059492579153020476068345501606945703516928937463777628426292883599444139211930301949957476554545488515506685833965797014444622411078860346736043659813268843126085294538426705589205925929387657652790215704272121791670840027324277193485324525109888134314187297665732040681097316302749999799411612442194014415157105986275936759574029870475748866876891836449883464550836364312633440161682903053323253531569004024387222550069886820388388622345162015319583176660609339075438437382686212631704603218770626625875817483518051624460204964885134985860169177487226909215871157572925464224525208685199244674636019743498939441094487960115228805112213355095450412348856246582897852516464171067424031272567067905466169528104129443470320587035377362194781316940554733410238552313662486094112225830293715421038861298987479208580287516435725062466771372763573726426659726067236291365848462729073327636254101188906741726980112180373872078673152811381631039365008774880061747448330024452551802154059474739988233185552557436129982970547110093103090167189978102678394118467671057793980549222854357369460032443137275936354568137153892316054428375006090586210572932739739234292763903688206984038899667897976610005571600901247581664869926338456497119938381699214475196156608485584644392109497618428595149425511788826736449018451494244188960188475628332867313062070379636754259620266256200863339293607438183118372693568034847055854054378542934843336670734622929134895911544884445789854098002444269799759587835124122891174432996416169908455893821233233178843473302076412557259272442940271744858032084600546399312247929112270421811644215880234449540264776120723350592557446527001792238261151573374670444758593159108581957146614411178984892708375880671792809573978264042160977386967382925885095710507275591773250437835163613318010345497431921944947590328319098356309023531791429227515837370784514649506817461415351295211237351195954223775898207633810563203328529923037703338984994064230603294941500216050445648989054696491277491184214278896336408419208453357024777830052500259393114752340505849747926610527860941446621321527605722877906279581773792837742491328922969600014903317012712994173096779249170742933880811150044855715215242826323747037531941985754285110809257673223698713598851060072830562334847700305110141657155879028108465825391228832470067191499702858533380871882324499420675150251775857219151617256217404591829185087687664670994309526091562406994480276566881006610976576005860295801989975363265870819618606699736463556713894340497046167649359032744049018933641734249530699828924291823276653668506146009553749258845475606519701094281425766690735299953745466481533430015155276234070175236879460299092708046000068092355781159711221897253779055976473638833150818992858996177820673452564237616642000010676753884534916292733395965814193781697660368327441827222850590327250855837369339181008973939337644169786624690280260150076659026788021747627144495036883733056864179224474405973078207157285569328477825424674311774461576248565546429467340414355633022595864249083826956634629880578257777814179470213798422453005817917838368200475788590199563173492717248608897936184521504685731823892796709450666498997162688813162979942812978989310804674301010187449599703922749147395946612839167437304348241728324286246401997371335748021357637251644133086785891775011782811499842055802454379420658543714890634784414894300165351497920586559297125491392660525283818582737108387158827750437407412636177161697130162476386005171476475599014674678561591988228071045488392677011845706398985649436816170855770553776945713887749375555902189019005562486593534823783896350082584324445596555019986299298701041644420096379728093294618109217153284537118700411966139055640599060842713697076878658433903690656010544588536091964718877894085260951804272980236553017960338004465888500061353530136233623845905571562344400220386980658018875855883752084069478095924519792389433513369632719331287735111087356215844304684363598784726297856776128522686367416792681157084966906424064293678131235309238907027537899041006026933301593791140492504946223082760454822338864723146871778438675895941956837593994639537144663024722186229017100684253476437494289622245590332420738884939859725050156501931891544331130062641811509801298740095338339829177347590836461179101878516713544529966944522960321075104387894490760891466034283064085637626323483614702503669377067699419170712844740167821622116522872937053759817841937539373588804116032639282511858381722506607144845281690901431386337419992021079020548328935468864262401642887657879250958353138838618835388666559948466009217990417382190687365751697001682680128062227041589384924991927112576070279089760269916670056392004180338848511493664080413533828766260978629104552222035926836241860315481886996362774065166427759674464073981933379386242246283095741888052301997948599395277465661085482466063897554442642021213899647871563084890202030805767229904871886529259205979873925905718166103399642787193187274159914887472463465969794164732186497341529225014161150601066224338183085956978346755423617613456764901311912445436380524981784708260750640125009652392702930240356063652212013847486521902598685177493093354534340798153914299529193561275583096296600362415272802420157394420393862536067302532233319748717163336686553464457764194408533727628299428741057868362405654663321813717206114480099102248489193364227966580692384279192142230826213178390641751772257349752292076902208456521615361166045157050304243255117708285684189404432345470318342200990869948819292685988245965762455043080396121302361719817290774154684563476131186002025622485355287631751430690389295526064942527599607510263514877824771891342950701181004165393588599088815929440126709381227451758225232498114025075870503393655397044497840904194624830934101723936354086330144456128470430392032895344843766108673876881761016861164926987402816922747945415793398596741982729947466761505082288629833154967659431358186916284924767299582782290955570892061322823890483780135451336763182504649194805419942073615389367267750315400955936079071774410039144887737048445969204644269522817745767260537858344842926793018905337885858264475175761980234007923247547074997644698510112425514984968986344269077454708890965022567152775831280278009758061940933578722241062268766299930461140529297491531218446374159600078766619338946503076114803760576162057185158868812425507575349178316464489238978212871035299379255027081010766644925380923877742980401826843006819631963380363723736029878092329523485815004417936855825345044777425212216967475227617090282180454839937640811887257364673203127840759759379206075551725842721359783136817945565006705598305085151727127318963776493567642360416911536847983194059775701149183065084598585639319547443065784835170144229055079529812794406400739907211524853307345505144497438121659745912545756396717238500213149161815454166378955652989890258011982839527752150152715339420437935649078535415897489320852210417481635063059093114589648600530155590630439468167939939526936030763342970940667353163735692562005922431018826362069984577838306571793214075895116388470117728039707239999148752709420257292117073065115217789508589975502221171763954199274625054965676379808619510984744307305831456131319400653369892154640317983690868482363910070567030593365442015498817380995920082254365872773382162811520830630750298658273908628957365559979468995643484863044801589719911426261792350100313335760855910976318460067398649210800661145362949865326419066523414897902884898921640752107028577961848679416781242736549322378954815296590016178426151148436892151976952704866000298047612918260158193683903849308635421260871327173218686311868925597792689423518626788957892814837062748079857520963170977570731352051862081825185008575181134188327928522843559835154892924553728953374501400495228103603061416147052792631285566182230973738803894962584118332239536073773277739425302511169507188864945242956416713524609013274196177564156761939067347969398540161042914534431447454822398698103070558335839412565509618346972930402966841271212507506727599139518554781061970350997645363879744495850146570574766120442247114291207040074163953745248726061242164918840642571531008024319549308939109352588776396568876272467957071262384625166193821017621312661764896895747468889639328886903658452496503922528613242871388690966980217185400308588975208361848175634913630170542658753163894091630237958976189661153031541075394546518804338139718227829171809846861245468318395430222403145698121726530919267291898490958358185607739648799508449190328865510137366916762903938245325796631724705768512456003071514624074118476408534718910220013130637542113761207550150988560623879253513871109004434476933768075712295942799721698026563157644381594930645962989055428897298908409479088063880239232682766230076249208539079649286187204557615333245772904462685689751211796135099987668688190957204499468187662478422939093968869449707960438848143972303317526541693880471809135092692130638297327231323674204519963640579485781675489293021602995382704053271622360801220141305937128833864592925405677373219531269494431092915995306774605955300139041895615849822353159283202490067780265065387286507581265883924772222258584367793028712864955591573884369854118887958601168873339106724882882016216085145590644999297150412180669757607137205979013947374216564552086581303472453743062912781284424241766212119116150181908773985066564457328430207525357037686632080588579545561039251848375139283521806339870876749774129325071591216473447170924859248434172489801975327389362917232225508625008368968511399274678795938679922128681982348042896652851424786977204300154533817253338338578863633436466835766353194018783453906968208128867087273897454616595835924695816749476999205936186477939476918047910553005716432922628143792662655095902585297003176234822010413333917702027861494912621546599566621356330018226602218661428178106715459484788405352288704209663830462411282839237248250636505980474729221157353262211707974648745935550143465373459410645789978669507243000529036051590500940221254717021641893012053501201334517235042553520350529922221050168188219957942818140095508984550534317086191565994401563670306603443843349297563963350899265948356370166094847987845142440915654509580148914392442038348356419781072869318364623728952546037390774339338685448196856494742238068028933266761723121791012399931338696262098689289588714513399591165935122478752628885109149792669397333043209514953207981945586323552640003772216950156779220028838540589163494533206550215860280304270113755347718410713648474065940179725438085488094067953828971327137110401582084232860886874794526714769008454960956457240531198251260527870134320017323697529596729299437077630678575106142059437433781050487968009172008628678674678743848041497142359633116228934439415880619233612209623754090720519364267803547598043741257345972043763578218923768009245939886034071393729366160167544001992940595801481521909652456800358654830561728976212722735796072392403880496447363477268222413509872746843945586259882652837269552775313164115756334309121104489566045720684553272875768175935332266099022376319206838459995415085281694513859595935587398844557992953212689568118224793289099748910803259271631338135349659917991708399982831622679021849796420837256875369815180058980259355371619885607500063812630247022302120424249801348579933379547407565325451526904665408315042997652994000356017945834044364280706769717280147742179555862027266101822022360957078682080340563799507618632191066300278762833195753787423643498127154586612151039054736778397849847790258669190543392246732680474001597058728945603659738384504072490334655352623765893384950624716440350924453040395662491694666402090748963487392571072444053053372464390588193539108780191015277963344997503911768784923883198105527621034571328325713593418583838331251826738396151204467431038267488089844834355139275724119111342716678854397979577014492926586285819644980363540292571653949612324022258135066559117209503323120757108565857849356021989378789993369694914499212996935522654080536566635223820137366548656008461308871581462949193250943221093106896271628839357163577382699852952629938487618852555017503689571326411166871442376462207321780040223733025190438618856105356308244865115306791561059507793475625828106620707027860001724647994699107756232821368142295268633788824960990601774954847744278423897655590985646743351847990558763370885666727299320981569127193795883019615656317023634742963135473891767219882969387920274342499760737979135557779192442008792463519963895848118698002762218280373625069018408371083900077284619446124759608577920773513423745605221471504606701020111034492437851089601580295163656787449527717009584232304822660205179830970089822773187061332373674600552211982415241983555481628115901554813728565774276414401233312920125756480311326991082526203636431341425144067002440153512432900135395037486413690290845475862457743024859773864894760019528553424297674309258129870811173287620340491131998839073518754304236593316266462314980359473200159474238621703308925049804316429282617900046493938068151684687519471285004669325612019044761610207173047677553286155506038858208623412101719281263623804088277399510999386914163461530130043426027457439280583178467489105156604996431718500210461301986023245258053311824644205539955885622043512429683810591672277321462796963409543362123000931529545944485405699487806652120663451318895066980623304495339390637269180597571470613996480226178397232844051410001140865621970102359359813243756944540956047361373501194184510209899455630512641367581449022530632104840540880434293273193051414678675723352433335172929951301919586619797014421935735710763808934913108671568523836883922456862511416015065818044145940329282342527625718519524399212387298828549122646153684955767144099057654523913390313127857604767963988053591311117674549446181028504418457681830497486843356074721399737776231082020426309345991804414012064995355248102848932042337658264653010325258076673809353492993941010816846656876459720227816478077005454590598074934231272835183238997786192046670151969954310201832994486012189121811315853100399499424355475755368900637688570065315483135456209906757220715436829262379788273817463106375626667900994819566171738333035531338476593232182590604885756731701606189475633875683424124998381146856355870290067705161854467831003247106866031028446408712030958025039184491087006624073255264903072465205691160586132040530027558175186157706492300161593351094196292976062720699655323014123727709100650991281444090914972102325610547141567776984489127048795070595116320282082510964497435194280590969299878892294757137007962409144485994504572518904770949088066348928219177500604493261417142098984618024937634873752789467495694231882063890114004350733655839949546254827167874939976143695569201307280478362559466404581757556854717931319103944451187377070781363268094144073583005679561446426755549345110408635914130250331994366355511802143088680623558047254776215392450012443581770588535565992565712520639811019031254654143163470236200135937436917276837717013445866779600186639671537998822070064315151139973737568284097930970555280365193858893225147548124269482654352561535914620971619311335513825544779593908636706765084438237604108981955382647076741426984365040368816439090047141982330509190647943846470846869295552629323959065548944616070888197660653753405163580940572656471348932104970886095744703303672002356264777178836780682414705221494425130782402015210425121556803483617150989159595592798677115957838888758200633103300322320560634540838534968508780138667607277232888983694040239901168472104712734459666510397833771509362350569309161335314435725783679579523960724964004877065324004186662100051446366371869303681264083217819999986126743519311439009056184295367619231853817609622672006978528781381477462932237054297436834259352758371177626660214742177177357802828403128168094450298638306537563668200387413831972654593451639992609544719659611119106423326877670861316186162823175741997180784325993646151417016916556222408534284905086774330199851813009725968461339364266578731047432842118989337531475865334607160564767577386933109093407470667446287304672146840812254976502550807667728095767551098197353639586314918640616473159689523312918755905719356375701455362971670358327142448930865244653850235658801198341086631484710350613559331265900118082315553246854583185977341065745096030780828022851664002327945564923573253886838808200824408595048082825498485700228245273226143133902846743710423396326051570741886230725545681920262825798980537551228736257537880294166770708992122607627100273093631611767615992199432344733560803884173492092349540226458139042195868245016006645389549199587892440236553222438167698001482371070347667653848579937139514136025738291840484579265240740098351114539541289190542597212652858262434357661243806700910645803380401159221376961152526549582024331252101367843718474381184903361174571857250479188094323240931627908067227579087580792256456578962059428979478976101088553570074519796344548322862400380934786103112366232958354644643307164978643577918914012737343406117665985121806227657351161121314599387750205119693499883606437648345996276402348364547152985013233607664791111455476477278595397298687116936773379395611273570246399427281833417047959102679649769766269880197539516714879676236636144765057810120232612923818227100276013471736373564442467426618473602117705451775417691256722457389659769823252432923453687154655739459584716667383587154309091431954880641503378404786649608377278514566649361049659428571407339216590608930523401684535863683925834502461143483529765895274177348882158004822240785254049065403659423366926605593509540029319302685629594952135065869279491741939745184309997516478628453010639951281171732190328140454612427120689969612795273794647644480231701083862835407313568998464206627608321999813292429818143847782938767055723717161926542992970601265351562568795548348800497221167845599704527868029829716302866181701189018082935276108589686747923220606424527024618776006658532819368545518922502510434583196187071579207619406902391158305537921565600927538559534329995855312305956196694160176099142427942279790018113549266050832627531200605848657095879269105533313462361733876768964413175632053388684582506615491666997104982797534833796561008115505242960254176652484191785806325552908015876689942163306076352588458404220816569584930218488700771630877203606898003241385893516905461464894090551100035546364724212393283249138619501357334638714928468176808995431004258654579056710314356092252074983280563005157248864766357526220772562042792024998707765217369150100810091490107492862005089921385516689138791699102682514076716283591288877271707866713858520679280307324636229434362480501241716928148852456005541782143159747972335412517571482056959480219389168246734483839523052762212324798143228464723970410952975801071240500144516511754829859246248090786350618487414554056544512471113455054075969192950811804467794569439541586641069646568986867354774148710695103514180944273522130359761369719926159088312413725541633467834132896764007388864634089417272467402821140297694538443560790595280821097692348867535566300907475111035794017429304251325354838463393775364490308482903340890244221368991351401756646383494600695910257382687187154370051758611705450305986250064435400216938224859895116302390958717373464288766389380609375291744636717754808117287711081834153745002403891155958486586471345454697804499830616176908119399897195027213643988252630946981668015243142955645317275199199053355262160788672116720902305492418131401227244518321235276868786276825417973179279103376753839334288348945359420710378078025169023362129454402186888347191886177464320810833883900477881323716982000664929988770185638192753357619380232566252483052869673085281436052139183691317031349515638189131568259721991675078386690348067107752933114736862263988133039936188329613474051142970699503424528850604726116706323804027073924525733483580332042150641303125901059096322544703378718252726049089671379202652601557084230199103754946628745787142892045591532797517290509254348752155445040612208546840046808154947346652238887167063707414605413074320181279488887835944383595802720102013537317272368312401913239164735324965726824659318361403540116673910730148185080650610800037905590846836457302910702019229994231284053744017510007297111125695841008167972640880011273383093818918698914626903445708115273102058623557612040614049725285656035166746517738362405501278996481852329090029579957545279935373224192455941197272341690856944090984552913395432987462083960209821697835898267559813048736729896084301990895879782469120434018755158726118748194810891842065719353919477011087518400531199208601843028579555824257961913121787862946261825940995381898203304431724691492961236095272342127458859773354780224611062990971079733863977663072575984735708111064299278788239635559043983482794627582479736347623411897251068611519437054883316288170619860589376076537943612789192362002386703682271786244982702219417675446951043437994982297572668803117500314860899730320242543231909478401544675280576994587448608792798897551890621346766248630580038062843319322970428468454810551165258352714921338605660674930673026193586991808450252378532766411683482629766151491456491126554207553857843012654182691247467790037801443411123038584104046137353045349366680539063119456462536127540887251886151735797422333169955478848226439796250034249274388398231183983590127467922463138432176456090709974482660730738878468165435985801882597829177147065576871693824193231051342056097916022886319484664232171124201501671952517909318227197697903856805508834810773404347050460315974157239359816606694848225932899943656428918505940237165101911189355771704244406612866438533685685710311048197975175054084545728328902558853713077196095069259395151802012460508050464520730676670237684353880590510383537908210506453304454684253904763776949863888980681915497055555834353443908117454771878674423466527922925677458871367967123851090006373711882248815345692524569449153879428282418987833077924214221662051809874354763178810370882520908505023908017399151105237153869702672570019389016109972155213269590928941372390972228743164571360050632240520261804255174665119900217131118502398034243222353115220959097422685130980493553222525074580178925420598632082588900407474070786061100080293592491502065183010247913853223828138903077453443153375670671769195118315736410166173775152848534350256586051022391940202450465763732940709377164168896477958465036644220561498506675921842854179459334094467475589088117529063884700707599328159597663981264412798334063889420461552996943489637913585912651284874860506633381885982218576230333714360258600342905780968974938536357834620073887191347989564973345002570809230952497785580632411385060613698157814796444968212716795006333637049761629815991852608613114399403160951464430854530613282974532948108508315184124495122371998000382569980402512517211690735329201260148018609783678189704715331165896583206871474547336296787995671792882084638591913266219508340873877230215929736028490529709232707756220862392386072806754807458030165756441009775273432934173002560190068709600142091173694020312120033569997688139512696270638093934400331532278405161518703140011991412385538694341036147214643717203084766014585511278283507577835747452293725535409279244822122798870984330694869087480875951559808778879252696877412772278236367756155602267364748125722042919403563953375451438427233692563402640108049523288632983145052716382069033272614827823569066616421577477069404538093325774682448647920114484419856024859024765184976807697417871485536398517439430642612532506519546075872998027734922104508588965733959448277315177079715946933473544466772321582513115878004261564795324984138023828822273995203871591735025391374793165801927311949507183936799764058613293670653718211709604241633086685987073279431804143924953411881794599465399544553226219351562725000172602009365896058028649813499781690694521510694560924774584371454494763554178438273332840632051015062706992671132051175511413773762880458901147809300187163793119698485201063098816752838365031326516862158201341300214078216979443544720442350943050582914323515160254818216508788554311365721584584679653312062584036416559592688883578845258199343295944712325690386656829964920312824525137799130021894956903957187487816128868127165727500476449372543477829298256591525870638495163835073213743734155587380054837055375013229464950443206074425120974158611902206251775658142324424671852997658208951328807008014511242991199586260863799443893868592675524881049541971202796728729099437931708822905204323098776493747059084725491512004906847582582323390179877573496815576657231726548119648435716354100263276539947300718985892761162319785529332233067290446390165439599509767375682243204121225651487643064217060400136460490964361667270840398993825399651804286874119777639500775214957292959300053669278178756640936909586116825144275028485969371808722585228487768691226677245151622038388431961716133897121278259982650330053488655483082198386823416033254756314217418648430805795373728408853509164489913258209680802704643750223183162577542576334007178875398446374775970646189720560571455972701682701608726811171954312760820855224383845202482244700787174256004771058593841610515162615000227709692300214539510712444504624958446207900421447983564058727389917520787918260602376777662151580435143041546356372244059004615668316866875035809925768935443554312072618135959503470358492388275176613419404431143490803591182874981428552924052055027707426540681195916301628608705620327189137197514934441728388812943932963680364838517768018963648250767921754311244489929657801392292902883894033014180101897437383644844907357724142154402814834192751617185814078399809475770497885976600347449878503347354353737350548409489028942126319854679439962474581089143057946892159638889620446949629178507042882308181434987408249596054389476608578269649324880095352727754420743500374172849769395257943420997161792883056226703390211256474886386699826476599896884206741173583117345569247490211107277382272800749457716772616272757056751536171007069948933010226112340391501112245910393643187185752711885443963271228583708119212506377043506887691435897369311725694111338957450403369922389613245935544915127847241818034554149485880130279003774030736777979134380687793818224472008923240275532421439938108460403249818690316395418774262245545149513548735164645994331515193616511182657749028582193658123103070074817903967871605707549369654422601005775378312609892451820652319680060485326780985009868060458457135917487761200144358916298112445433571023779531451038711329746552427234511698094944345417285718739453635961628545129739573637882907753262560380082780093170158818625142938256482819480778103285870740156301015289575933622666396175231303712816615487014267432971317162583773436136250319078331868446130899286355476698697630644692225316845385555881150646460407581927199605406054389669994967861088827607165161758497967832127406111028121901450227942686272291478630958128266813790117967340205506365308506284921020203303945793573886272904243157874022687646043124223507435493573981417480814927402147544683236372830651824295085463505416125603282750533791316732413973461702954445329395061668932815065083677150471195825871935947298464231450220983420608812292835437046686109518907028116277952447288669675790567622904136177549744279020595890301963949936690849064126203700644029897352545224563447208112024959653796484596657655808882577816444284407246399374247271568972410103848228337249449667779958271691499768999367247281996929123403084906787154075102110757366386276617456868407940752179202311168994737101012262076670688607038681688353023082270682641794111111859839430582342280275448299617810876019359952804200566896012419441131126011347672283475530226182256178634143269108032634342005993917472952744269380697973679613794709604019923858755622562001718123822306422830107246182323621195748411519542390587205261650386645369559532632232269245216725956180218596517774716868749979099686478985097542094753217327750639545226290914034951715106235380754634942571716633945426607051190790770627064754998297703860565067013120180145638750247348765028507122644484949424548159669111009251310245142476943580439746016699332907208815518029722127021601222497496159838710981465627386422254213497515652745806365629246057372059834470764693140323928051347614645939789273253639567630101621122724014568353283891212205083412282297436275632126931146199875108400703675112383806935927399141596300670428654910915630278892947341428843840895519043045726850399192928572430385750348411967848568995502277466040544876984598823185168000743024493220874716146023220922819765212871500258488465978546842013495634412643419738826349467453036602846497097681297981783664622281423889661593681365693422838286918363241178508124609165346783183156909639967451585452211196780506493300392385437982924958746711990318602352794300163859658086416830531020309599012975716704558734444877310233667418514487912108689912291921100932914197585164742404135585194399711374399144885260478006233861583457003651539804505469673112390884186599489669342543180219535025490257417362164906711283923463194282230028050335501174072424155781079476815816143423439910414341293966376801477167617777294118037871416781178449206996097935176660746559502818628195877466951186900984840744669067663346617778147818042457955996875795447117121215710603076293382067032741059287954942556674660282197011496334648883720791768434170977606683795660923563311598357254612441801402862689899929278137934410858515624867377926106074400075404273953545060662731844863771410241304587869837945821830823476049365083587255883841726224360958112286005538596993125688708205571194789604100722428279999640756252501053578913232708107532314032976695691281855537087766235811070542105535081296973910702216516628795340056322442320368769018836999954326478559930495891094471181876939533816219652800807898267138029639856197516019841710010812069235585586317428036175300690281143231566563054344851587657077957358667766459469114532873324326208048198625057864975409130688603993617350354679606323199624104075961862885598020164835330379037169399263949705323218177292848434181881316298569902185957126847876978040466688059716918738877585486221026184080184141126530687661807779401516676072875464097290412546552792605968176821166279321822341612285314211187559820502840208928683634308704010751363510938170670993948381102886706241620915455903359350003000201708881665660366155604154565170927580379268576236971882583939065977226064230186273713990983703989710242669601175686236718399185123382949875652044035382067900779077350699569740579894292013650456253708587868886743773636627058096942351161886948593082736640878618171463737653844415568013669715228409485823591698208986690013097777997133820705337742045282462748512712795965396210752336909869790508748911018967926965229361669310574375762446144023979635330752146568727359041984392977224071550013385964808562532628519142539992843510258858869575930956330419558274166145963176438886655421855502876893457842423064726373463906818620505434656453500245228032805766224443204725970538436273912809243265119043232992412014036674668701542254806344729200366651146448454937618800529418259776900545629932249038502265433788560876803733507323460245480273036293903539335705453226390916287627383918928901052650068178187659297242476521265027581962533943572960833378831275258562706802644870857059331949916338163886769161109757168141722537902704326636638050122512611543475662662671732235593317166345558478201329676471494248658873511805500096490921188904698724437462570291494243749699395299967609410453848129875789298511510934028074807932699238713378581686050180306047024219133319535436866670764586073875727671121676051307822877565643039563812942863614161489334399991706858277248540747428331708467132652641699740115126741147926535800466891791902420073002214057251509508464980242585526214497855546709286683391906016687042262930548634190545611080067143047612431701048995693065710624368421346302132661906362440880104904961103972130760494902200932007642693288663404502156533740908883647623239803995765254986174949507437170291583815544920885062375473394024873408972736860203603134310927905554073407257129328911954825813864916757142869636789053399157699518149105524794932215296329558760830428789651669734261313198120968702400783217003070143033543538230618933758108646441250780157199032057123415697841212863429403577948935044569150219794018049229044408631410733264597528663543051581489527052580090308055464622486414014277062837181971520581980123618000963785110813675114705506023002494529270534045818743317134006014282094350740878580504127487051273735818073818181435181278672668033264307032467474087058518294160615498469826577807379768816999080589238048810413526005351119184345243894505304544792041914320863270178344974367968065088620455793042748003298571567114451582471094449767547387732361104660308014950466769625478539460326217652586468605765130963981241321399973802789404982690703604927137535721862798774751417855678113881333604512585852466491769547919591481406760044851676051663937331985525489800060107698274529821766725490500985246691305167623911830970286132324132855518679624506682067631459738442002501575813256766838901242992091392215375300179178570525766561137410729934498753872517477282197926153631048223206365951524242206362866987622449194940699190210568457658822982060762800899683025327426623200092536939211704441854637620473517543735866956609326811023866101973913244920627030735170121487288241276066261043943753086572795354333570352666590239668194979017423070642606929418892427483401979536288513605378786155781474934110913406550477575862438871218034909633495189671252143714590049764166982328145260344453824666702620674488704929240175542882927647496970776807490891342189342170924582973950034970979333263752999799141977982021539573743946545911641536031439910859819856830231573289603295498915427487645333747163213824005420844396836883789772662274469902598836924568283755125118568696252896419880883552685292872439722241977350662484018252665815611696541776305249142426086066494978996494719086761167017035857198477209988210790657805972531988265970171438953151254062554866982688120352041327784209326402766216718318413066265636155875878987025801092123545197927458013621243833518048584361600627605837261902752217491563154389466977231811935768507417086868831772319729069675163081246843305249451647191042700707129256977509243235325669325560452871144204019455485233883011638786675913196887500256722862072243203768768968065533991801492034963633719798925295508727942798819887583496257891816157614831854049777982429537584905520555007597187365140666915903983513942745334058219804940573055901721958594246964894223666398380796546473014437464445886710714403184641709971545546713432366690218202716069824859791211691370910400259902774343073321940639075370962723643136433354473885869182624470628685658469879163682875576926472707358236074059226995013650054312894314137850736907800146822393679929332121808414722243823451062240702483782660625306294447699651555613547043231826740517565881803984707896256830729220362323149124652711161258991600107964109180767278486239275275855861715272766060563149618901645244110852420250120000933797814016746217362584765811259963532253066300521421846456681273852613361243683312633707841713688718662581770934831294434109557169529973284050703176226235304042780121066004251580843952688852644605012102093119914576129105827464765806540097800657518685461486015709733216549498498211164180728876149872649545049602283055655644693711519185741686744616550774098354410470032150754982425904728550177935109485148794983811961299571293470303872758497887328082897190456405273305181247451535649549383423169240997328530216985273588930761163968218406503621745976233372071018368548051997056487310182265380674418208823739146219944048672705149120362517037851604041362579218948825091172698593161407042787393388898402685546375847377859566136904788309324512698100356604628195652997565473488633197171326565645548768668735623854983804958614419589245744118950593973238648907861490721436274479502880361684014471443242100309793427892796469167790080286879642584743727939997789519268024050133096093972433214259215499875302483504806249684554493019926456711554765706506510548682828114267982266192923927241144513129327245237116316135340241729807053000176002849187735816047437454241875714188047410325545822058337604404892373542083983622123227207563455960993918307596815388615427894412454942904976826335742883840058450698676834395838344332743643190398270647391144092457369646708966939303730371873659280312752756678308105877529730576993735539567986395482206416314585571360506533221129585835928330905869988121799602515548433003003735298518992103382628325987859488265811024602360644751254133317517396697413053950940881861187255347797703299749310466771480210940914334557699879493508532626938241683593454470680859608117181634786775766928828767801619331154977964816735057114767680604737286956568320707844335876501140424511129782400732877191384325727926895569925478336878714195102705322046318231084245658633680424797009806849084717323913699734230296338671467929589996910743510019022740471686093740921767931951004579568707551724920829916049115139583782213714337004914744362576468366229878313136807174097843332254739851073828111811070944535028863262630509662990069004429703431895463146335760115315991458327744259045488847136963632548050052308961189714454021914498327731485098005714393732147695871439399630004943046322593781128257440350316179721282005534924694061247077685251191697285068392654331284654858366281041480135013113667568000426260915077305571566541370420752915470607127160375968001656036461420080641392605648793743342184204416875257281552283427933469265919326996100754046701343710168829607232191993686070161771848557435251143490394483825415710599120958524066080659864946208924341777593310455884140200678559100561077652437294925604272803130254179649818992314663889632909629747322925601630610781513597695078358753437409710143547435793530760369034575476547746555138480000202676544462579496374029942476965394609984441160522563988790961893814491857996966247786730716600854745276222015063108448057571119794530936019626499012765018100387447826602640305447712232516758626191284187469676016410585165626210200690545523277887814087808017328997492090647554402762677752856537654000153876236984647312621017309424305454985601062253268343614025861539622186494661967282632865829255896531430043481046788214508966587902746818313750551077820393718647103784807498219887679779337272976049627816479845540123080242314552974904729430875917922321702244410317988469872680475255964795358535432235874452872862767026115340511640634474746452448033514684248869005485845538868477948274658162213239731511334674329958929750825517173961020675837182927435976132814355988396581473728553692521310022365507331117525352742256137207806744055209826870308974096462107512740453742018305087828004091337883889213349781041309144091528648358155661780895926314832687293220944800607190339954425339080825409259162750558453959823763414306119698132524018820477389540904847530023945487261664877803281572641880007399659499802440721724676249949289557760833980640221590915928474594305858646330653147423289202318341820702046038242061450091684732542792580018756568715518525203266329529891350988550523411747165700218066767426751404322298719397869578296836568358974644327433419607798195869667816003218403847650192796440831330599542239088470550025878529907839701129421735459796671725839142049293789232688146382168099523096978540613823351962850048011213870164295852636012305009193215081345773313746026282244124695304182095694679550880847049991231383347095578200218652267475555670578957974382919707806113263670411066067796470915846543277293183614285232449784937011426149678280835500272991982280094580382077253372505172564895410022571662209942578748351847027321783169179693697754273445250131432410001906523038813636843652091809148145847676083712079671996487504529753247811829223891610018358700561065942411409059474116685883611058076527233554017474539376682779874788149585280697627044200193138529585282345968952784443635936764264450035159885184607082381612027180185394550506321817106301986504584850107792252000245127206669535104004351136497661199870038803742395743878279655400876073488731152824900478150994644490518898447282884917162256400942533611268741392256158043813920688534548456743358237236741653605225163793962365521118320859848312635890919720897374959206418953495900385693612708030545234050340032541039205580614362777983169396258712705464085040028793010046223013825871939308146056888726516412873207513536108104530878087089852910356962595450127394485223909043720389315889771647838216872902763112399054821516097231713540401826293707938688299091888946357488210177314592553050371419795747478328220879235358680427993979601204421526598247895387645926323570137854524651309335362949741516546639429839278041435134036192757795758362697074283057319509204944034059806588500224500141643053529891313554327668337170241301035837809455300021565853819305139862729993511695064278858466943073609784311562553641001737735437503305354326459274733294086246498243379885738367949028697239866571915820074135980945958727511766308057198968320857338193825851795637986765182575539129250178518110275350440639343204242187522800215077303888789091732131889480646813434881622616346586096958427510446415807311861170941590061911594766353986206251639934008261485603091380453510241653787108336273428377704932347024903941394099420989272607556612937029247431036496564951465346082596264472181080062876975183938281809850680305167265586936866169223928788338939647284421688174788712636450342230567780449997269686332404759371755705940160386408795280145314707226539274176709335899078054467024426755777546506916555164396459149983091672988379027954495242450399175434786273068153561366241144283603154587344608560545747487304365072430805920826020218855890139225649384582273252213261123942519780257509586946019317035808601541144328461305815325717122473523357354677229939634282299377299545059196721701489860642722254161459335196646701213766327580079861177062033250878818883852050696162136965709877610837683941453002729211862042281847226320799043439252744344187235262734850010724327144639222140186376343391867388486300721626102530213632038475527536855411041025856400757094663797419022445220697473797054402656854586963703678180783461564762029843705222002332983613908775377818105030712407477432517466610568050680893813704184309074830443347037153830047815818060616822156008368430997719347051191726135944631332482543485248319949166647804678797296113868012559696844983962590310639309099840274869532816530241941630347796553342856751919221798735668133708349221662377804844877441575181087599337727393296811448874492814248777357202531174763685653834479284808132507485720081644759366209568225895593680881674952952424985435221035354272924197706978410477050499489081586352967738756184290987877906971431930678944192059106902895321770909976494800378546188972274924363749971409705379196828144560988911746435984324878316389312552879259007460086046929050123470972159600239696050484319376696317682401942941731319830198372285186745394090258762140541237556766789353619807419827889712957555819685090828266840831364311588602808935986540120005838098242515865558715840882304450660190132558181926126676822791722225820456195439057459009623455953928506467298131964543897205948476288894698643017077663408628174266764768042939167353899814404490410631083187583493207326351710792507176262388247120629580661320413566530537539190317837956390379233608636154619070860192776694817559562710294964917652688951682636647473631887685262093460627620378781898009273829548902794891089069992814952989258675798233697153716377681435514225172861570948727503931542241428064872921512982641440111279361353044974890595908899384563079439216349313559091926521137966205700988013742623299239003209907229375732999876035187210699910707090752169451538584282366328009428877004072142802900631725950227750372068936881386165367054941319317348390016521220589909120763212675983675802194499718690221540309081388985087219538985073681690989160554578026427421629925477157134357231378872132085620143199296279820683556314842723954675897968924251970447740964048555179139646967122813801524808617454415171182505427419833418263574951088758598426413076170147751114713224890581366795205918052512070245619313245869352995161563002433073068137850828536721252063141094991049659309447835111527517691640890529293286466360764492587913465187843737568091282796989875389629222262387422047833333249976469099427447400333365974700986530468939036888552038335358829541040823538336809612071626679290030790607629831579570892165555006180646186618087192537842970028993883354379752190140307810010242929682128950757048520767039303420292327492359014092941146509303377960539634337646571570568881136810456979705975130476937242590441461829663131669964361918038833454488023952756498966190620798424798472607839582286258674590449246556946323274188087260888203732548694751017754114507775032247239823086304719999938282362729708944394969084793464059499828860118536594398697565647991575720012176480806027104401843207586813585606945518110728555487775580208502345454036766702280867473289461162240700014738171288410495060459809130651186506096249484424539104361661224070612551963790925522958127983187146240365137613639889508600107507410777502086177897380910225625930485228430982066009812754967251507321542386433723802888587482893664488238504884753162788473947120709628799308573042292078261217508538026594293779089631033107414301814379531990472857188615612111049352954193289719340019134593637440484741604970792207100751172210573097652702960476664330705945450577609975875473736075066687855466380457516952909508977804245578312890541853803210976756161343171666867674812628508102629012320620767997596599252046067156058115928713509880500151919358773987671450393420685303963153668897009032201299552501981286731636309581948315006156785523377275314801332409106483527024028443369657552224702367625269339554427090085425158891055030478168102551947616319780137544747640932353303912999424728407973231996399032559905338329992315941100345853338089617853505181005607422930682045802056923992320995403375050968538814058559542793194966565228260828887194977681359778753896443076887465915972541757660389339898982906151001099860377647079238823763794963804283531181166895874160908148818577835501909032233835166834433042184461357844066433707523299363700247439060678423317869818875844737449639058606628206128946877478843675821156387200894388604749830561631917839850705008537016663784129504149732816859122701957675825797102153883407227521601442042630103402055281552639792494299182643037398825328663432691565974845718887285386034936897391198022898382573661170528365407306909902702562613151186872872039886789802135991656834855397531865782528403536600147492083947259368658876561354280589337357227831857029230429901847105896219756041027986188308223724624425661604018580919794963663679880674530668698203040682588861252189540809433231496098869237052700340966806218646966817825652308787040240592962802098752064942488368152199450719601008814394881680975599704222798884766562633054804915645928376393314259160200765650792041788128430311682005735653158082258562758944801922259209972007343546220738582960101164963857029891266962228298294570282353336987559419949079049862146636752159844241650362772594523041040107687596443069480418189861108707798213819448385000443393744635263620132312955051030695782213368171552882327210771973065046405386943565735771373277321154646298820127613376039271597522179161721868491474593762150016173858530282558961121307106316441934779905084862062070632501883888181656998561897254292631043468591297053797403954686010659841315515329519490573293473156225947375079287518637762946362082239406715349294520045706431964807266630357613644425247233689293647275956779967252604788056112360748231744304448574715239507111274101046005174031260223575063026549960567485296977144472850760344933473983558038268409260107496968312727187685061024831515151125591132494093612968118865266139316583752469608259373257139743162069928233573989262571824323416261622203462444342547515255564761459888309645254428922415820722572539353672848481570488443144574832071748978802994181911622506067429845113682786168196727329489940620719325879116812503383793478005084723697624667082723925555929060412823412457721013430351677996703064062216507134946425791407315294407805983641576320005026104050904727530614779427296901151312317280271338228722546357625715335589267564002771212438451708850800288747646194478292698361765681088078810550517526463251278804800968577869957180329034053093088061594524792256513845583785584721299883707302731143343243478886521020367533677691781052929017552266838055169806136216186655453446200363093979732061635366211028387022952158177317025471264780882553164774539821727219099214529674529591574178638839914440475914585213380532471815573432783891395997385392949928039600073866400886731315388397093124184452810267459018472672182415317021345951001698974349296438678299833947431271357888560693963040255224498894566265600582868473469784439170217604078180524916188279275461923583471994086057428560619064221998164849213178623685486585297385497712670875110733712063339647875949656726745671315850252517398136666778717518145664120215585131757130435465823037643030079174311219305380654026196980774053283577421430986535171025077421848738563022337320627767411919332165072257326723749398994915439132368018310050806082453114033425758887333323989744012262484742133293208402249369707022516845346685277352649905736105002670245557051462976599138957352872036868813425722414875911348034337517617715228452722327239756430834089356824123076182444490506232247312462321737716461690208716563416926377618992691322918587695776665771991658693095107139245761826303834413498197696327632486949243021530522223071180080585084463258447956473664756595274630343048668839464815667323594407727597892114176098744842425143433409513458681071643196040869173289973737071099791902382669009528141122749062948968086753711017015495231560794132446246805873248273594228174605222378149636923243126903577444861281930111899190162922574691335745785714147648932548360440674559177022741431984969046074850171726940116690233370429293549538436006111560821910308885306375325051014274820662599268792577592858338728100590955575244341464503020153664693425488010783872544086326446707815544550705602073328140677012139729563941090841128513325935087548270798937246890711978648489528383322838008213315884222402329138321491468471940111805071476556395987883428169013461841877837896887328163868540214082065623775702293126274209898379702653366301244940541835075133605639970868010447680470626317827889707153579491050650193303091177369369752914086387080807624866843685047802960497424201628555944457791073995430378258739550854125058802050570924395513466424809840810860601359725735880334964536841067591602141523408816453433483705659401125120169947316118394319913058470853012591756817169643782242173706539772988691320514116442573181516444406168699967709996011586662194754874765755464623442419130930540232122208746762415065029878347381039367400751426788510905037257321759948265559809517749119304941789752992771550434747925022362901460290598855043015443425390459761725111142703246790466625397780619920085333901196810498404298744323555924964570765536577785650004066549662215915754379600994608404573956552404791964941884933930241632941194107592747018861913833611270462023527976589972841473611788605208167465215501916444872963338135745755525533306133469701304505099247473729728187143509089715598956633846632435729322519272682460259025499885276629086206046011518583156025477000334550357883591145991000151940908622373446918634189277743262414645589129699510735205299529489593114924605043798198817928115633607193475469226973972180509829755217166946169231580339320817671557171288564489075403765641982454511064725347837968530796771199507457476757041863899692041821825129368698265591623333977215622035811245643658805590317666039485805548668584809117440270306178391588887615799316056229356617791489738865236550915467227420207815940804987192684055886679051482182811025560947608031002150882889910856896321026288069450049465632009946517342439489401031504223288989708203306340251289753140044429451117972356660675409767244475585377853259729400575202120582168305669869342019788415119710686827525079081285076006573798437752462959209755103697262241340814654537013115002759269316330755579684585530724946715028959920895586742409750903365167397122934024596651263275093483199741457789521794365006724169748546848231887317834242764947421612466589563046154456674214018915997117724962496817533229274548026844032934832926671448668983538578008152726541129423006927095218996085177412370212955190303153648009649864031678645020530555209557335694525100855412329779076379189110766128056425131238986864417237232024631641026842797476122452489394553646899630950086563562512239053204878082897393429699428944419821102339174039497704182213358904260333952394468061021267348410806121815291653109123890688242851423523540418397583719354961162569770621645665915428899681017719403096018208976314490737706966009916965671819832060615217085301066245757980609480861660833623515723777932106281425280708800407361417389848923500827572036965078852012517352572807287416896628703746878200102659029370203049530540283354273361634398704337757817288742746808906254714585256887609868895479107382711387083078342468151163767045018743010823107773206247821780780813521742499245299529800449128215166242145204085993021771690919081249413023272212735808758961731014863797514488879018081415930765684649318756030323705027622462939387393955904375864133129429645272044886640893812469166779364674900664480549643958721386377965409688739322447068258243599938835892838207190686088964084412079004250668373211168671155499431830622581831276161084375397839679615058231303302992190904066943264980472467938719141520663944603519486053777319464389311037872747324726012999741858301377202479424798667572496868485095196306545630070938132140947683378256788035011237133183917152925868793449513032498897782811870050827241547208853742217025923794323609605705797079030151903658795468131712637718970984192321904974551396058464152741920286892134853760776828231351769202900662375297373089963553606283751470509140899764331815785731364285258564430976691142179395687395092180021216239461943281326209093224379402583828860679061087657739890948260448656298038453306756344885067449311120444010424409109664171527871549655884667161985632476680944770255470187272224580449575404369376365325652999407919186595973351213283512319758484576150484863608723739970922732900298395049502780623576383378843146037561619792871007205348988143698806335342476877023887875009620091381950860188319730876685916854895829662005648696652137800297576887290326401352850140120774784012055819538341741313478565374533003513819765525241990183609790825463503045726946076030439709815777535766217658891703391133059940090861348032985519115423920155470524192371845412052748393014864321705668030044317845889689300576507265850385069680729448328509423145039248177592123756847144226658113474045677550040073088936132666366417513014669511698290735205042200604080620815271504415551863126011598717253328665274342318667981613404150189002565267497682321003151951642178293990754651176624627955126262403947021079788325413992175605018920097277788882970912272737541813783507513753146685021414088432187143701417983996677892825878445334380806219637690076067129216486746327735811835109699725190715820245487954718782021756180647500408032479032096507063303699078101265383577827344865397711700768180439476400172267152889149704841134460518836414980694095105316676661560762950879696634381826641669118390265103020840476301772812512639252847891043567710499133811589025571079864800708324798894340157833229259897320166340829205530198089201560602123471214249353871588627076930913223962156608632616412342212748334307700291188614784900978485710074074505347094097415274865504623519724001562326020356504593849192527354312214890970912939590229351043031990516106165859868477711067173870675477935059651105169091475990725168903232248149392175134994352597127176490457923553758811424429589783727034125246442984127408186762778928324437384658474931546967175121366032315066959018520036504460256378376952959459686043816114463377703849060465609222873996120552419288558057088414333895998040105016035888053525731298819941468140107429703292152830832909328144925101125800567819259235448109082312801053843203126344564603736081451140674303095993642586485667208967410523762658064764086322739113533503219865536385699256816582220036320289034683010318409385172892223828915446506695958400892528406882373785163671687188812063083498871791966489756775747431112182479223352856387852503028371598280607814474001390457799507670018467349247585799360136356158905329113081520116782916977207700381400284243103496777742180254513561728742911601899279856933770387741726248196767289878632990605024140730359691635367962326374208911509825928632987021165105286795674815219693677536467120870885376023608304026241395081353817505945440619308400900617042018681403499011328920470424183911890702738179987239474559030758048037253202079547082535185598281945950053196170611180245801966363935643390365346919277759349827467853316994606997079197207883915835212318260684186254688250342750729308784711399750245491463979044017195806353286314644682047939601031726770754991705549054901128855982765188322010271610134470897077721142827089184534658652551754442566538940154772220688293062636970590804306044747243861200013847863867524581456547299944311010023445576340335813848575117798837233313097758458062311441536472497112404056617472994392761158415947484833373521092820280735154139566126875155772954591531320676555507200966584591429836725893005474860542950816973722977363917669489558112364182596784072952925564904263426025425010605114215526846004439989584987644151046179068816585003803007340206001269049648726358471546879194908024879242465672402908850372771723528742443559598611737212853370749421232295092156511491537597812579095195024672303690155074751185082004095550790306093493195378232898057147991517194670796999684823913833059486240117438307055830579594444381162286786752539956147542551445853827551830428231493285344054925647516246430682196576684027897345137216195933334356141934485099376395681877266132971270001438924853014063840104781574623258633514453661190581131484400450054405577417283501000750653272165410878329596020768021617679266336815571873232017974406229825858085649331469149324553617281281909905627775615294517117226207862373949915638729745254256146596721793012125482524577535809054825660085806789910449442650214159711204696299879832444300799117239982374989156366286690453091368331207648660379642227972329522398523967968783468228119279352432745714207206030788701855994834398294542398467010238310165283828705639306136121871736429853329583067460701699534636461721081749020186960537703552118168947074151902776599583416614953384863176657943151774526148264377331929965609558109920516662041963946028730661181540675151394669515902436181324941361960066525437061711513763455454885490431298220003673639220234671414609779831342955943249434932606317244237627932795391615553829219900771405835159365444973908211359368564706032332551170567783976600861107793578339152705408530594854655206105794321556016833133786114738429251278553713518840668990356809345525850974382972448141259896780486236244313876398533711367750384998212694854478764654057786383528415986791251843314090935181750626677583189586783052821045008023480112541046265337440326839497001234002713493977674448964701796890980813151043551281182835711147615892603369151900798340591489424430800943054740911826257031851080077946022458184525291521720277397191072480252474342103588181607431231901407091145921035027299673071624037943601599606196858294571706106869754345935634638475517440238897356461755385224002416168451751219035389384495908403154321572264734870338165909559909624969417053703815892498614244081892495399307309373595575987331017275625570846093410701556222810017098282097940282519986018137643938670906597640844862072464117803139752331725126304843310136692521412148512975110556809631459586520746899142260533584616671245702306068933193699037302569460317024829327403521201828636600272053932734066074937253859813338854793709453130622812327065112240155834309110384745259308090314417256951731689727278950081563721079585321023661754356766960313578339092525404215473998801242471711378772966609460145819505050434034370107722919741621882840378926859172273933565416850540935235030980442516352770766717822099372835610038656650645446117656694260859995594511196457551159416154102161962437416495240560260797569722230565899056589224599975352243107414924097411667913135827026907124807827787273681591150566460323249580772654474813192073308532422228521559389499452469429404703189529475057888709188249569868323027196631879363026573297607752305289525861315344932172375340762964223956530978123114755097765590137894096484951828497817068600195264280434289409064399726458219131790572780894114409564885335018769351028267075855170115572107234087514269489882578298957432847192930187897049403921840745731315458510194821212028058310462335688443536224580809905766041303893852863056179091815681931046051669455892292550100717820091512747134166406084344853486464321195746194191314467835904813719887165436847201134882302511947822672773918040690879282094137557534822365724219983624544362027984765983531549641139935573437707749688148798603589524556397150640040486625938940407280692037168044440625732957540640888816722681091952172144203344922670973889753283313512503965507581929055949046788777359717311080963344206445891819568439846843295000055830623225736428305877299912287214099310450369379538617491538895862860750882896048936417056394639286452239121560168512776664763877711021334225956453040813502869062970911660868641743169586810833013469939226738962818124747154996169400986118282406927884352110144205544272063725544341285445796341886430395875501834306261597061556838128652424806634502987099208695886342427154972362173771460135588548900982760709632879045298133082109771763641164298360220788037552447119992861448752479356355735206188241279677660716239590174349259718437461713189771452929347830027084606735936338537123985056818403249885558599510046040858363771176328897914028918773185506559334128215408085791237477152465773795049546974939082049942909283947457191974305344845162176004996667789442123166244997023291720548344603228883557934891167862633135798556651493177002038072698750298398188283926212008592496156295864292890957872812196532066165908809043858468277615551789571432954459980842165028947199666518448601496121835154992131939827421871923481381049000417120118709493758549910628331071937745732846920482016365854273525433879076614712283885788647631346349002933194140952459677338878090890614752681750168133340230307279184915844460478380774955958012840563651266967580770371813560904450725409944590512559786350073955336872467782042625178064950104741201549632650847509290661673292562792864130134243379533206628492553367753447454852920733066800464253701492978905739007823313883434561018825908009320034632009327147243182910598352933213936472191856147842287206836402858991333709161000752783077504291434043549624908733959288470432796480488662058253423447437042533449909546331734654831242506401086067511317975905306196446531462138534463201651608855408199524477808141105744201970411617144205110310621410320978199476916376446027763077856755075540060935507593485661775084431384014277881873748407254305453287735404175975000600587082669078658780772694627310077509101085420424360031137649331222772061750318464623762154775491712628347486886576485135113098285042926315783571946389399931565015933886135794789724951138152228136669594729789184235446506245230783562957448199911261725071106861043918653690043067047789996534636307790448233414885675076208559903210070660791552100613715683420445065434214802338089296543952494851243874536163875863731962023728696122732944598772683080383237883011947981665350807019496234783529095866583968649052323491636103225859157126009652911262711575680899457301145320074023477523151695809400174211701558162330785513341930079932629435143359637842331692723016915855691554459552869718677648849252541825164919397961066614133005814886226925074031813706929812656471989834041489999661463322188565041842617486862531847357987818267081166168378837178845706349874144544118406008384234450135609859623679190510070829559881603298761331150594970554102502116448623415668224707662302255763013801609486838174736794532863531001379662019128861410708282750445682961347179563460824914092137577125088891460122525311818585699024601144676065421656662044758279848305474286545853583490989706948990604529873779822001885338352755065038866615325619289700326387822590324351650572326682702119082573853955976823550154489293176755575032417914490815360857077443675156305449000465365072043615162965180215471827541524977132421215794580534204527054586649700946547681253659173493421261600843652262226546734540151099723022548825076289733345100582102210267552023007524542750675151759492517073678881984684836119404602949941908540972852796876577482957162015701036168485512794702608024793729299982993368409239609362889772307741646539875818920588656281164752970755715609035418962949862985408789589175391490496482381868625995439983391071882067047461390089096847923216140232370009189108801950271146903507748213624447983702818330624016370894583989034302738708596108233142685434781520880643194471105417838406638666826936744388560832460792860585816630320834119481924706418894055083465231678164402029779409250020091664602542683347645412813213329915135396649342570431503119556502130878337184909437309155140023082951533940358608848630982956048760089406851320358105485018201112950760473616747814981976287763380125312264627190825581432746059587418071946008984764553723510639933592601869551840603583599976993919951984322911593422443401775132473588753400092386940513836554501127464748692914805092728257572941681151460659583534153297533946012543795474175761063579609298754573998526514238392544219713932494564294794221258888868824558861460391420927243715517600411418355991074754066000500575372158785965322412939052076424427011483465481089597076945361678951756044284275179470737495197434464017058355395129513112187780777587714449611981618403378509230326689298590636988851132532431523288843385731379569666675046416659508752726168291439515124236590619603897978106447178720904944205329932006684744539866086628662853393570971157280278125157926887567048040434714009297764038111443506728790020406134132598741886101867261598941084297303527822039972709068546219109174392917335282732475101753330478832586441444894447823261979552534379433041253711159017677991388541786197887644127576857622195748476166191803772739918550096010492339274264257498618047882081953526199616299795257598766187405492059848303934771022231898297298713321163589220355854820581025753948928779325630891391522691804944578165187655526948568778684658573016209808930057751841176131082639391006008362462695301395017909909481046719435922517853601153643169582580310303276718320536660418693404097256651341585359445424158160442247490628101230958387540240637190864028032088332774988485746409351915652935547545333531108106896453158785956746604286645951416547826457345519002548973159238499837888617466199566376698194013106521881063975792315671073855057864886000578265990096361664849476909151866278292984545718184661016977447274588659406613444383191283656099497611661605710640805137493511481682800736091130007210392781057386841673782881390049111149562247068185995328096156967004739975710463867098078217614835228161775986137360352775359546653250790315983091907526068245247488996445366977944110206416946229563734991968107360431885346934138314044838423850164214859316516363817943590002416651492178526745653451187322003923793037658627389817865201544606351216035310262680515315997274032960275593375943662641081359056606752628830520268786060177900816554835158822826244164166554566486008587446111461025132832361200100009839087744498387093703515760087260437930380190813582973598500733779907572872255870863958715320068893636727587005901268471739034673220727833586224644146946767221405117270701263874910597814978808893611389465495569510855635450593218597713270443865523732721048986012096725757257368076509122965691621489149226046496229398718620269414551356421517255261912379057137750888574185683416594960860297533777850159124503016024086533764994182964317610081216808298333880571737776886624187509721878710715279956539017766523933623180563423305313937074446247206058161531048234101415222651542159269641496764653958395157423059577408614199045286367928516367596884266635518947554348363923458841582804373014350985785322469522468759415545111786648829605728133856055942563992533367646165983821388448944184723752225628576865709793203230497499202503827029453033679247223780884303586296358241122632709065799400894241970058139593138939006107313968189858968843064445366830179544514781702718884439975773184562991599445394156237313568197541596189522612209274574494493087046966183729911697208936267220781313593613388694539803372907924022198775370997898821901793149336987442443533694060489379353477055274876824078861485488474006203241527446120796139656211892924989513281505449718193696611925633742650234633028533034890134710575944609551218824597385926220929813250604790064297748555457807497510419937404448506365623695243643077256278686431274467836609308067965531023654059430940796282719021799381993791757939299744266600677371508505805437225337636144649426481390271337428745489445954433310653101361929771051297466567619853656137634927423716107675368010636156737593664972992160049795319000212662834687287263864986826006250390000853860979763932716410428010280519602862413460874285531909834487860972738748781787933238623157707465603275952804300694094904815758604530937988133129288057273455421097123010268533560851448643190210916849810901755348155940740425874925238429194550880072171340664783592454522395531855656232861154462046927163010164526622293004475549625340029861336936555231776736147829585815643632811552652114668127205919408871936424135755327378712236669762323472832594302003127808777464554659198232347334176775098734149343217304412166264108189800179733489346916482379550818766197798885884592080783979664108118408648144913370556888281323893503446065394971169881780202964627717108367172472398913996721506074151033510394233929918935193119569368153510208744940510045532351730946989164211184723965664543325811867006910428454574357428275838794689294002049030632389353981504399437653734207728947887602362697949831470274562482248743275099069467110947557580120056803732802273506316311438958837219534355867594330501953222033022113977181168706192966215548242893900944498411924281954798178222105098474262701190144640355505470939210452930420298156489268810299678176657867230764819126430350481111427028198132279710625292143919096394909980019803642770003482653587879951070957689514676082722856679681352105208177484382713276262945250065933252971626835353994352535494821810362870605799378857437776087116600112767678215795449660085992186748054410722151377525397387811559606079552290692150887285897927967869714294013839025096634882994094045666370876713339673728315534549670321391702291350595314969236274932654309660418654861259809005996602665584670902159072037986411654527396914011194502276300302244455571319983653314137134833244610774491285635040698394902898850975621016337118614451399411420535666757541833294565997263765298635244731402969834272192829319016715475063275257949832856879917353087390502985729718915200864303882763966473535661281356086908666947191813279553160706820232032965919630504373340441972399603325430778815993718075737660989627146217582385484643378121075163806542363579373542908901395155794268016933970446916456967063816631501025969813467991956381607585136121354145298015322185560484346856482292414849408985402219216778796827965742541340894632651883531699959348142345382696170480965738345764499584670848819073723044006843927915759075373453024929544819926722000305931297199624424668992413736435012623602751528422294126938570076145336339374069061799159480158930941881381014165428474080823640015413403094482018566399238769636652172967967859120428597350986219267946594955418740886975163144433071421593447316206014138673380789124024224361928563290034350023060816893341127291101203198673717605641320284139421949761967097837592853738489354854609096611421258664829093869443810976833472708106712280646806560256141756810487152013923771024105827224339382061340485123384275044206117441574402924341204905260136601700247495610544059818647772988270602524949274251130612112368638602845343150720956470957708134171727158934893200550793169380567061311656485682446990919629911110058360441686218920296353374044424650030770979014812512832562096392261810558463302942475147799831001686851328479953165516716744705399157193164732739888591773908693889155634284559307842130499920451834517916115822545675646747628085408356505955611024321123932821050042509736416549798910004109934093995200043257607682759079658164790387727466737121534688818339703680979965808333283726001184259961100804554034489329142028274891021707698680419562153020595054842963497564472712228395162053714754982878546150227872281077589380470296921881383485306806998874547284538748184437359222260236137157065982058482978998702693982303953848018537733057254807682316932014483170131914242200447662812280130706047970290951061666396705963151784294756182423817795226398882509025894020393627491212389831358257941947339620062810432508790749600964513655494827995066048305110544034169861797256344569770920947032769671072832904086004608321104063037000196852062314190999259250801759329157073084793280969141350848955901048678983784933982846146638583735303057649527524503241996889148378714624931258396156305940560675195775633086422969816677039755482624871365866087398423939044070743656563440126985122492517884460384297407421188387251430983408548649556093353765708938117116116565186363129311035385996231372814007060970850329541011722713841471823716595627134213060332482598555640187205869762851416556700704276593011636859619560526401057366794788216798125708408691487703055230174443315113330338314513771472489062477548108380443904213289465137126035549404501273339090310076378850567733122192660219318656448808823300510827747673771052370442298528140798990094454667258089322235929556347628065284714418216332353271183275296815003455796246028328100427472281331078729524218457666259810237186514619028760868012435152551294438168332417503390959746490634883783378380433167877419212017248263256408580599873958897437643722841062989321228785066773519968584432132218041707055576261496551282299682832879319890683899485749354862675068513865279281560844397079879310973025047597535054703790123281232693306487927945611165664792207716059620081986160099590020201882996653465420080598759409947696775530509085953061270467009067631878494814412522730941019589810526538155553107372212517384025443742440626637968613737777197542491923769519535864911129076472085350240948912580809012201343224158245723337278429617077099155288205849584653398896145314143300872324626034046633878633435556002360906646432691939840655793892061851349625159260257053062324750513192630718929370953114489122347907584835730350905655106860746873719334315363597064333468347972497224661096367076598780884776193852836653702754896258111157825987815460068108502442690080551598693141209694437782017612096007864938863221518367683992783411192973536369133237691009479237175811437608484514255580592721313330081662111139479289173050342155700380588818674357002196282847240866181395581070056161434470061243243505901752278395333315144742887916819053720084207085422467609050209873748521067079518194082225807216026527340712067548729384786678105457721316979590000025609052534883811080806374473793611743897017030411417305611632238781709085490498706310913835953840721161665027836562208628884282938085270153181767019032914158873400991886351094381337648449271851477279532844930563617396731554963349781753974569027052702221321502810906636167244057505932584740572301935109216182829801372161969282844845010141699759582692293073708501049441687889711673346794256781602648130143789776487438030495108971057058649530964882574966771575152234772323921521112410211216673176204159163417014665545622927755260171821517116084349501870505767674922324226550660043346851846187280097755543273170257732688259713494173724769344759403634971611184788227047082695732434253749048411128608234450803986610910831953482370627164452618628501471423863184496127267399801614482483310962569377615031618577837127680122200378662498948605565898784617394072166462047803454293412339614136013129150714275620595925590076935654142696674451421200275603197012350544668816053314701558805597466221497766136496542369371244914207074276763066079270667826684828683474204980717733870619415475734912007098887010681031629533889341564078528789852965018902452494642704493821704480270007450576251273316301575963588263449749526964533850543336764329055995753825336922444466559094524044781075771338849623524794100048977783133618084485693965453230944584928023390627954396411487032717593187415863398416130980989400683579723367012651881165471661885254800876550331219486768540196734194201397667349820298952548467851574423768190624976993348657560371795128793645799849132023852691022008277243214030509344108501747213097865217118877079303442544480349496947443453611438270527999559575544940840406571831157283669936736338876428381101700448794693704567571211905857192587385717631472181219432462400874155796723839730203295275283258879415816974257507423813545830670071766167564881736314594846465476819042821883489393987613550651989323725375681913988504060359322563198563541254585900836130914330940171842069207431650915646352224368622961624115134599742199144797062656861486892808744921274227407884381110821426238703442781424063772100102621666195043550560039343068421565447199852630021610663386469445603099232148080750660238796036577822614191427153959890227899185391581337600240895681717386339856353948992743613440996884725300338479583858109921934457985001705024839183692313567567593510324387976711867954810234046455638607845771704789782961907185627530841134201442429388011056091541434246271617176798475965294046020993096560315497128749893739871307761906457029868501657308504554410112837920229223485158548500835799387384122872503967891837570262833959538213043582912448262933946490315738236139545004054343833250133556215687446238645776370575505399098124628456656843531451694364229114651419917075229353714488487911432541741235008096554956301946319315091155706695152544018755028910859365390267647248883398829726362404777194730445695343429171070434881001074144722604664263445846506489118673096753130482484774529239701042894645495539296469528611176846535185174899634324185121960885040740324414239803650419632207260577190418191461173828179810491019511684765963452255961660713884763211402405947131546426985240594722673294354156635596805237105997398867810064068675454292302721832358226681127939298832302842613142025911865907825797079276911189188351708116168014811829524774353032963640306312705777566485513921831337881061771304330101842392257087724958355497163180031965602528051910423490600599530715531609427471957036710497338967933821729961095099286372769681533962763544646127089259479619432467322479344417548752825957159531506716246010732284410539105771132725115911400250998133028621154382931183362031080150586381916375739866908828510050271130411146035456871452851939343914431793952956170529492069777518957618270636512589814960142738983861033465773577441916825735422938264729518393862147783572449013531751711995100503269145075566250986503164307787484916009825193035290015614858305742496095679170486891720570023731055941490838283094631373368900800013451183186175604128712920133071393927373089828590043704071218729084818987451686672416737170225464059091625275208666805706567279915766847763053301631326794566864740444426673920938830944348440804443951323219110170783649909803079565292372180786779370209732933010742894889878938984719562374317387365619100967068865579161646603885147676455042019758307094239248690623852477715621486619672316233425011227662433071403089387216094225505492737723066192065142753134773854749524288255466921386395628029551778861062796937887099515659008195360961499401156027577475980640609345023478326465714662822262731038442952703729024914460679749779411741642312988049012231079545576279422394387639562036458603413733670965176879678990739244368291321321474244307654842714134924547915508274010122770810815529960329304507660911941151307994043685144609206038609284711019744056336175152569632388826667349174094279053454346613808423185068861458945300652096053862948019144136669696767484420896394109433880648670049167827963938647088482376652634920079484469399759597329528066090289062877998939251559292889541141241569041520715085022259931266755264867615516206863462268569919970914039604951229251392931755888100083868176889994703462087414224712926661169851042103832323565822735267280751354677578285695083694155881103699584496253598010792888673804354959418142552232805803483220146892428586180307762558028183139507019508499167649882059067632513604560363075239391747269373242721057218173265715496072213114786178712105307925850769042657306979853846564575027601423422585610754774752763646634746782680267901560295084702488875942038417685429524831889395883460397343142048409709573656306981844741177720876980251375138794287415035211921487806597708261790685637720547986573079894811668745642774063196082133394991583795022161489367034649463296544560648659028448046913879362932143031741647920764699002926697967652503978828687537585289870564742732952896464086712693601469242316087294290056802487210273948068939439681513758161338976508352950401396617830533463237169162876043148486898703715897238747949424789145983232239036993299801009426533191940111860509205067133575466140834034428596714471184877356467180582320760163155411263715788831452628721371116151513173671424399795067261946802464033998115743586128088207751150375260028934814538805455433443084356709023876788706634663877668664657802827459489008039283611702653712712575517116432397358717054398024904556724778102938529688040353001260108641679317902191563388290243067320340908972119675457175973579299524981731482493927079833223198479368007299542395131023898329989622940887006994893517314474824020990703508301287359141798947126507606254620659130102608048126879063670855079002544817090310178396330157705836967765974811011901725679924840974711555419057551149434908994376951265551437571571362548421953919309948037654579243965738788461924980432212591369057447743690419305090147356367509610425036112353762438656650319807108581791008698547438104927836492731637371120115319283491604915925068867648419335430451289176545596748770188254454184498074891951798517190914175909264726501079868057253790960668716223789026343448173660899875172716936223225369208670520253048752356237213031788055073427673518371552067210977499780424399011645570643663787493390220369899924819718314991448825256338826527608558475992917015733921303879560494127967337150844046815141212736107047806121726731586112547394367811984738398211774054353391516543526561062347634446249626265920379906111582917237159015461668201903876884929675778787046670097742628939617929287470440214402665296967433184067411013332279357339169361835903414538284684292182704361151373401045359297796382743796285699003417527784350993667515261737309558672747228261133404578637882771079298878406727912193384284010549799258180622454714616637580521334557597644543550900458826800324906038217814747235415928506513346972175359498874092538103719959069114104456929557862395119381777651161023003044173514988986277238235517367586584191951084734586990118219614344349056623826198161553902021291945125735972159616835674984718165583781387767331983555164871158202567411512253181197173133665502854937401597472329600142113748172100560477614551838705410243372258525341511865317353380039446866136562687833376553024743523911014157874532121877990508546590501394320189058279971519940037434845416332520890678743904903282960978577573238324432216848073383345031830555755917800351767601509161841746611431357575710203884367348431906314592691538659604430246271213227073318255903543989882556108300915156154866317974780806894187282622442393879391011148772212032566378064011464653338564357576745988678969285814408851126468793195389704442533740039967082569950672835839519608502955873064702455847641495936373509969483369352805347836167679340538448964419243126246920395942595581100737341112754748841643057787019562077878772045089838740898767338807301386324945001727795189541584468359716852292541737890848040738003468993686488008030705367979199894379293605994371228347695198105154186632056977670165738992822765876915069082539304952961339746709833158402334721099667421232606199212088616090187431094357320236434016843787327011233119840502832865802602594686959452536331648171368011323504485486616612718978352702528228481344916502330338952275827820853878834976389708812684434590326026926185387938956579559625409015973022929348440499597591834878236696757683743744808730677146500900562748389190682644807574167384255977747259061931522454297419151290776652752270811483102634347270897129040789135386772901420304706865731685533398542192622313373464029079702177672207654502351263867230530252677128866838031808401539250388379803053081488993874239350965043386603334995044580219290465207591516615369325031396713945658463029926431769079851764801313213992344325228864984731453170873660286510174726299297196256604909532458060488410955509941530202833981543039353101179514077979458955059165948986044380621222517861953476673140705738274917384400037174061675978013159767486125832410965345261353805444386987213484634644622380290483588932280825631770581980552181881459503193697149120013865807312671604044173466566304450314534621903400746486879969905331324025775314854943569725465650368358364305053115021311677720624146230364164121580701030971890545844518244285391188841396354830473462743582600519355239469616853717234070287813021888173869584085077879563184106274485168733516965723203029018304111691936786929313966849602881515281838432046283038303953840051315146215986392610184104805811515990296732257588028729122853558236629315148368421895966807352774046154241767628141009513332899352264052831067157914232840017166732918728157319275671172037095511841437490865370031453590768100375674924254255226771916085599568213340441670915623380045528640376487461325267309749313018154215676783236295587000035239514764401345170900247075509720528307747624421926449619471846216090351194230375349175891032261665785817176095707057823225810130145585779243764401317222065219789834469491176057122376739127066524170767461843511212243560329954763097636663259275817920333587836876278082984618515464120583091450496821546530015475395572317896339918599458378163132704219887506770490474348943685352697178506441144133045544161269934450654519483840195539726606070307405975107695823670517564842211945926584779794331271226046679395168169554928770078197968236895829335697658176485398849066908526760101719275267498613074609223748110106957632366914435779822436730043433230841274550485285571842175281519512671727051414296808184878942145098155941400440446848093560837966420994330012850454120666873280913331089343773401835914634840781513212108077816833320020610750357046137957048321192913791408464727001481590282700177277059551736800934655282990638843050088352607404618649432263931963966402354948447774048038186629129266307652183040181523855647204259163595417465461619700012162908045033095298560369480094340642277449979260682699474785527236531366192046782988954020730260413716630673383666943175340376156232522435110232436786414804152976012134625884817037020257093164843300096110648762443357072059150755332208174848932000958400202814468244965186412108193982741730187903328108702430598866306245502477000960648765864228320525023683277889413860462523748836455878634239624369426383702793077555534489577558818727624639951354590585346615863319694781072074711528770186908417841558643169287429789315839852182156359343867662062198248045686154187403549442446096176573886756445493657223135609928551638226523453398066415596808650792001937155521873506045881205692532323615940544195757533210817802633507639745232878042096711222059038474112854279476914465408555961128721272695263456074319459056787395384361867087772689022282935571762560355180891673370032086184908308651608581892068514122551458187102933678123517244224957689308541235419292621088990481285156112391262076930957590455832616061324509850039854926027176467972903224474953066013279443825527615661021393646053672232790919303641828932172893446311282195569349407479370125872001750474640365939702795137377554960261297480335160552360923060494176836978267242764872008643398343634701601014572973824469990228222145459853408263232748861642148452461135961803276690685991325761321006071093854664429930232875344029138682346659170356966995450963111532198515261647522593475301098189961471010063810710885826184066065465179678688498091903254481418238833600309001950820627208868192768322058549729975102425600944644946716384966358378338293806053736122603299005393706761553072234560979197411103893473493407634594908330213793579753938210201931020807602609004727349721899775289922863407000673198143071721958790660772374988286792644376977843367321962263458449561521839845721206583286980710245846161257196200815488895444356785706489437871201569749641941424171346261008175838555748222400783756503581683950868341892920715090302708716835874623527089961920068596139798479555263350695294649707497718736086100544659330505857499397814346026186424402650700684671284178334463293432264206449369662527599111853936510729614681730183660447225048377168818296336772482196832030030031851674881801942137746379913434456188780421926707732858713381764315317716325429086059098815176634004169332397317031729753536405815035297546211235898786128682637798833725426459612272254654222183664534652465145893678953423141799395529190035323799778843463983343687961877648005538235091851970206916003002374036870676074578021424417734708511096755184975963335138572060151132795089923291484895869268327360368761562750753659075258606002525947994656984954062019613264943597831048921456879121122796655761297438923919310265530468517036897935423375410861194026496545388117529501786280312189917862883649340347581776269945720336112541504219495018518715677298071338226610895138815293368830626470081764975670336967879790914310373804783618599899210004749560783510858267866057626214663946429855143789154078234433702441059557256399170934293751659481426203509702950152260365410392098097890156231148400943766629892119438025565040589082909434487823114968644827917000459491803825528096761204774095391683337387752317500008330731358108274047056994909422609095009342207885614815898125668404072018172063737242104837202297573483760869983676083740805331300289681464573174723341013122529880688308383127448013693769022696999018801126545046496075592428072788385234037718096242879592588252140069400033202553242199070094820576357222201225178732180214157410744356527961915397957757632576531023244045132919362439990658268799308850335716675475392326668452445685425218079051631837352698902235376566740808467723712923164354753355902712319319190174798913677436655189664564201617789279473743932205184803199661788859362780227571067895367677395304408112357471207662222868111386641177075527372132863657420777478801081040668698471858338455261858984761399032966921870637213418738343235282357616177786683924819643223811608418026940106272939163708929892931596927772586966765268510881069482456875846250472819416496389771035533259446500379896169466384956631354400388381839236374218301791456821500918633778444378301936355199124913526859566766316888867255248829152496598191949724506890978158768115173014355844713153084961563786617633115642381773856486982725740750229854715720663178998415791068032468605527451699573007147943816768432483186697685065722514180845331534633815139340095996562620806425760548476518942306906858932827872676956672203909307037315450933845434686724967948478989028554291715839458116262397268332520990145216867262025344090281364950703017974873413969736453131367706126650173924851298986320115999169851259052610425772773940674694230933715064147511888233023295953046250915175063932547847421366446374646708426163454512411361581187512868347417495735594554958882896788190190948223896520659512158028963621275445363855804341621292225132417860557920627095785007980087764028303509321223819467092043434831074495045805328160463286744293400588927287251305846279107740253242631248700259033290976540892235989616047566474275740087497406229369806947725936887888995089065429341055638773333355497913807567495244069687100188833834745511692948038829694165524128010669200239534452241542917193256569215333026503650397907361597835295059870858774995029929323105857171293488320337397473622600565666232014439983193412229835969920037266222615641881178034286340815898230979676396306396224383755850221866029092424919140785215761760968379802915458676112850319675461250714472852019823838276639950001174587885977068183180229818505667334341270784276135944242439154943421916600691240664740090936579656274374571489778539245241203794401872848148687150954001593263117732473832923425875935586575055979406423441240751701819367151529403402920880565104177181414584014169343244775520152659109538052866402547383595823956383432467328770933747716754107172322614917672521993600282930981348720473915998861490879697101034627456475528650723949169561799241792931166318541487016414804766548752249474367223580618045473421516944306679147239151863961280044141215226636946178543095283461145491499050527281148346345958408451656430974524186601597340941962460688900639285410735038627301059626744036629559275766239834230234786404250963757238493306117291677573607951383839508636249385244576478280230552517451428235566838801400197809961994008752178748431842763094267130830224398965938635032278044288437940823158488016555258608319022633248039793562239601864330410184798548069986974823090700679783374775394078920373398372869846678830125934993420247184928587232488959650569075793721635987962610532617283793053446321313618852267168395425163097490260962977820584644246910862452175760861572668123971772873674804085938012217312578278747456218575184475876831044138727054228236987091237770029152122318171074238806495678182154371732348630138138802580090766965790254905115579464761164980808957202212122715198823409436410772623737973379517019186742483137948850689824920493299953858291507948347265908444411214717867306139303913670100767421445184333861387694769500915154319085554184190634695327906926052283020439660577061282147494402322507994877681168937681037870016251336184869622812121898593501900790606969781173227444770134861284851288001722937601696670841669542856139244960522582201219991476604920506956822426145703742895513260705217562048383529203570224368076349039944716197962622921645238970072037769862324578271176205972278786559917496786149103022451441288470298650375133511904794064355799902295059822262451049585904764769859810081614876775556955291968037597906595092238782407473104319984704494885891264908579200067986603202496654344993969724129587287174123216382543065210814159547540271612853654201614677025317857206505369586345751218488404198760059419693208796089930116970047446407577216101276765139953165241008141520885912347936964057868006480090972465243674346094292302489059713185099216827848070692405467938738342857330334282201298438448928635523094124490226407263031236137667215259817904321121592875316034404401886622303430803656692163361423707448459953821991725060702907678307835510021471416118072598907009287557391645623218054697961439591448061115126884774392799248131985201813356020613765088386160932055571249622606702993705759923243260929799911533085464655617545483653101420404949513089119266487105311560973763645200712907845796266518234402660463588828391456578764019903984672337482156967858053680397788942519818122194016358895751744559449786209666106228807744588102457846820057529288800286099482734131593671998120243192005551091096419889763820969031461475257555612431807054214982121675952007710058719504694469735365832950430128590519245625225120096161291996384447093637463887095331652121225154200426905680599869156799774988556671334365568839778558846158860361628280057418512828218709151253012942694916653581224675739562533161031951569587518454030859427933443467261484293748264600428464538361270870431403399095063147232342210458288747609767081857839659369370995257675655245433203131437422818203790209164361017642195733942104050834243808772663455684939254210485093675427276597811998643966204761198030966077112460992226892548645324338278202663840240092386334031745887619752963595293811773145018987233536576675131920210269482590510175149110562287248166638362360534218157865667757789398928840550095771473763341414613749635873122915653208251546926240402336376790889092399440279140347616850567159903930191106306067014754906392078588774121313753631962613318884842844257005743625295414177825226737323139766606518681283622296002133230895350138383141291895997410216548788074794446198879449658017127456102650706357851865814790475267024462632971518389322025130910309280683904896233326547452144968609085365153615707195207352828961853341299106397732487219250423095117278116682051542421534342535439671508877995295395537368500861831676876738124615581000268888631412196819712217949483594394382547887338545264367385384083797879934600552789180882063470829462854635946159191505894235467469594336969206860924620246783879461672658592241150397490576928044698487464392276926755777116492110338697552395404339158434018686626573901104575416289308012496384791835755735883444993283353591351933745384731550069463189024244449874645307922160999917777425355580462678197680101576803707275297065660936293353716496298936669878988569782842296988020319593818760434813890384954119756312218892598819349437906814292543198402619132676419568026937234798911553123540974152200465954285326605902409152162150846219844541168236314233629899525168279581871439449874845683127273648346813819339813822076391242344268272199110825078622685553473942628604171406033654872750745194580898764536430040372465402300315771976248425438064021850575638759125940651498523306212914034669432017520661973069290153290431755437968753946168815290850781124068532555770773653357546498998519950939456244041014735000078963383297164564220864047550332218329213963976425063800764294333780333990389759593307596542337204762112486036292256064571827955775167442714216695034406123874058581321147610365345307774653310323877704647033357019268162181667101060895971099900384616570612860429596535271448706915509409948837000441863212436247061990965774699575639499093172911993295292811344776525503495811410769305114119417516673259618396812178035639287842421725231534088705408318846996310350720613473676513823583030374786817090590709988691912283010941802456463447543384819235764388619688841974505529667645272889810689260513356402711908481658339722828632656823494039933466625115583383151939089373672553253751309862229318776206454176831061514289160764080213779870283338560049597844688602355057722563189683597172973366797394812808576508136530989767466228491059089828653568205219030838775978708795019961744275476973729642352544401572199299912640638875876790526715049978326745713720926436845067460383751188377395174861049397862557160569091790598039618151825532343144554616479734842841457030353427543204501140220339634090612675741228159732915465294206533675925163683367523928420730277518318988452814278038558421848235309312130018053227315326210039757756417568306492909273995598953393598176853298262471152117225259352242833143981921191870615998540847421552427071318910801829865180493356349410660460978518192176474977363521548788294538436782117695778750873515106934752036921383880122978154313401140812351454801153143698853070314660805265918208888214206143243194918685736186301470896660013511302421401244403326013962769267621169416518629634227889686017599882279566880167472946063390223190307035156491390090607086961941813586871881106687557957260606577071505238216596507678516079962532641506440726594890850773764141654718734526066051246714895847735730608366205786434076169006679436252056881026471009966769527819656366209323034861444068653015044242051801883505590487188906778219305244451946340129640346238064266975892378020766201665591455450632506825210607139319144354700793880341956116696098342150605424981994487427933933924907573961799136611932108568714989192553640035552420513950936315184305247290427907205400536628284777293134522909242924761818814839380997447199933787576956326035760562895496506547345772846660051183267171937326911730422860649080344657415247413283518391242307205751202249903740780093951767596392635212358083127182517822096375117203469458410987924408897195519901501579764644468959827723927335349903818878845246672963747424000569171715407154993641441260057734222588728407587576366771524773229675165053689800521665649853016626260801243102221194566939824921156268279208417448718402891286764659900554867991616462171415485010725234791174463928974808862932166505756240409403681309302732495854702422763667757719730006560187438510868340354284383948939610494953056312437967196078931919292577575686531934862203723570608176404036183602698085884864338929217708156080276772441489512792907878244863489315567513569133844566824757777782557893017409015153023369820460094415247872344996591745397086518740748514644025920067900808468364092733433865192880222067458604868638574102989544993604460351908493497233330546066675195214953922974707781525716789576743738686505716700835278805281175591147101747487483705152047366059389490835055007827583233577784307612414781263239495467929699377426977942712501928569145242098088620283824364580286183624556009592861121754941541564251251460800273228834672960907614195377007073025312723455830358735343985020803613862474656627877101632936355825064609617217980517206174516718639915175374167132085440986808783616630521412486490601189148408070111086579767528920721493918598913722235853815262283960232723691161492507091855240439056034915358380716279890410969213093500427393605780854865524479106464654276721415543890274025421119379374945025358221987177713171558456771026105142608673737195204144520239223076230163244965697154304474445441554551871823725971164415281993978550716194225841609690351457148156937503998271783817465109049046235221355772138041565735801650079800722436921653680580364606970253638198780196184951806234036347913866172386327100029855328856943895857650025891654834014621073986711770118020856998504612231772805670024039704699379433163422303731506378051833665983411335515005441336811996857726787154953704588882658758781035652389085711583626200130225643123869390811012579312266186913185889281897603469491174965730204051909963965748403219219745034550912206244598362071597024911484572583626163514867317404675958502979595353046880912357511245841723279977207388640784139233958035124571940280399598670799985939893712813797048102479710226748406928495847698226084893809638257248306839908791349664494803102511020353456669721761131986614408713875549949256986793147326509268850691289196002838981818955513572241768492955223659188828257726404864437033958047746062406941202244484085981836150788618219011350783999454287578146253002350485357353206892644188298636875189142139074326240202328436823611319022755685312949183180436279358519408457255189713498383528714489536283620429825155389002290632941104786001163504771382365178908175600177498261558724945329474154462879277418913448395475793594623406873882585460795221217237229825609880959344115655342260966896136654183516428318079988687002364275082630753132013896401380313249471591304936145484410060311495810432790028791385541245894538318883528309767411892559027005062086596561509315179786336492547479113612271967018300436587166720165608219265276797360384742722584649147107170111440045497453989856792284015758376301362260391042584774274403103141044976663937583998886207346526526737376957142179154318697395438529265229170702973117890181589884819800569659315087458453937032606055404255604978989480545635053288751521967856812134920399871218633932761997491173637332970984225635911616836002189592794384074398370445644913782574902313813563252709425387867210232427960907123127786163104963213347106412568029369382337910195717818579537983689389060400070463512345023114439096062645681977775300190327595494015500205391193729058292749237391343278087996527981322956635048391166119014773263649644340095529736603922114645066735399013818049995119417216437540369699153138458428761140341359262816570373505593824988826573621514496747512698531777267979257707783819684571670663361670175605804505782674055343619561974845760315681516328590630266637150800604336073304086789173024462813177400742126533650915222319060498841030048175461895780512897796287750984018501010596117517882571429164792774569501473305136783455030522280624458576127521493745701595638009678274101290603867458521313163378241400781993587286172657167105815932115456525988804869331630187717939227468606363987727140288729908421412029153599786021672076210995028806572726756716522032586186865602239372414107260698171964483317162304797148016097015501334415852623225575751116212564950717010243002728635077983626513207812965969388410306235354701665392239991320523948402865753056060550608417624637510382747105551436714358607195667315792798497626821797568725142241342126384940962024786173180939470772292755161711081102708777898559337580643890624525315889163886980544824848885886890974739571463694598042418169170980092282063001879927479459898530480159761233974377396866378218952455449647721481827383269693293158519058338006329694832744625375179159914015789969520615426721327248397678946021495584247253305105528794980804759784106372899020984763197003372199716848938578517902537826140757963408429075008840700789000565979211101853198151838993932985138334308425739972760243667194584090129671729848927982813580961744235104003605698311196751793288213054101569559388686933239003185381019913031306103690062617933711988091571069269678492823013189529585823007100333594899404684792093613786659941226170060915755946391810285070454826512087045626774391148038243603201751310341827227693542198179969927926800170591161937530376537857504598713895844603185607106037502133237410701238394822919800075148030352813734036063342405909014928718618830585180805680573489586985013768191718431719013917684688338633554869011738894390351914229150959744189872137402289754598626510982222735749446643072167549954286544851613891341141882568377862569594552879552475788622186924968571044897288103516822881820560260366735910175949765875294604676538313637409482236579699539578292593763836358597159433949744460705097520119803940111943464982955824840209625253333776195824264833113782481354751824846718950510155837791639454724244024843732217831756107212515580753172067389325907645758250996906766286737005373419854753449356115561587997924433709045853293737344746166049434566587304805366067635430711484585378002251195242345903168641548264968509369074235759293438964885441134413532391103789766678099846084000914140722461114812869344195334367941565286159286249377381325892157630406332856671935949023745493635707987063487634024465638798544414431508360875690770832476091348674898852579713551725713686342032116093710233074129439307697039453129928674731784169552626203206385862439653975216339519918534264340678836095454190034217613510365620153226541480933873813694637066197680170271935072905981353599983829190104979984845994704571901579885620059749951095044039302683262923700609248477712748467690883412092067802171594117360797393523571699263234676311844999829073022231124828470600030121558004117058713078136873752179676314332884787477484287595184960547714044377231318544804358897897768009810099945066069975857090513627457598809516503156905108744912504149838630709307058105064010684819403050476347684287222084947250913013122970724597982127364704760400104427044182135854764688778167576628044607069374999776164743159718381771630668623624650010304508854798281408579014634947620536802603113503244516814108195074602794243779786226488897557801244411424793553919052299471372615523582469138154071233358343307954342204408043714647904234289556031055580935785875352605739206056296169819305029674870116880478620320334310219845849715700086311742353816847726259207611215573942902884961091696409989259782154650245530244885333646644413620485410141681210041860829275789809305345829142480740900881891771686203084475340098445691239309292954472924333532607890046589671737717323257316822009401516800955403442828924086173812435502604224741530782533784017882181764213445592117275749624582713237574848484460543924080707477896839548704955816496403518546854023693612948217879590123167874744823984593084498450480659218892355147486399968005083256601737658088018650941574833769539499325671298392483094261183764987862743612380150002051592702674337770697929292922590999256846309679195534217812925057239455421636637606929368305411486575269113630764824437751902428086621097064224529603142435113316794648562507490576990232375362060326642183128131985679024875727927236948719473226595497195995767634491477709804284462685323093304883986937543214311416635139440870046320681107064482476570421263306200622726758713506385383193831913075296011825258053431669705823406047975401467412419243257388416564195260574439098587586946300031416510138981376179403414423493497153182448281817089664915008652285309649807691632132293048855106317710454805060139715930316157037136547352511644979295557881395994376052820559475246757035475184388246228117760989746871722945424926721519774908628119881564316264944809152986579328900147568103091695271436330828561085364450851227570554127014082857917447776552724167563044781429642152520004705173287640347063840955520276331372733115485578668652758756936730636354994775142354502396889006534203911260414342310969033764746239900878385282260944513285462463739073157287436860367819458785916585314836237125111354526166671702779799671011864942856874053885548098740081383082909244472262491712459701564750008766836806136235655721647393114929339562003958536430441794654230857576688128620769818843567332175295834559820770464811007374303910596774602413526432665196717414759265645767805418577300074687529917199717179754883798366464630618121659640290992496628868702142271235287632640531780373078800452690485132042263881028415336171132848833822449491116544733069407343774895502077580444048578493750943749975868187552610744272186257844470697340572234762084626188287040789066013730053709136083079524969173940891087591745378671252597583744688383618877168162962300241908691801630599650334288042605816047483706318426883921427279937838150728903797041083308897393279095108944660396735167142196794402220878392940009710563748602540487691544842485884519760125151654117979187996608577324094936819731885848473339088962820090691716715701111760863887006277493580242872702166199164322775952663252975170006075897028019208736864278984503375112070305064761374430627211604077538143250663412183661225692388175730202677021047322430983243372863591689721654618653012612552485716357062645560632810610488691270801812492455776428742372149433495233777699037857396949685519031520212764364576589510778885013294226326963957115806466739970345012165038421747441880061290898829986246749490656861879755861602297001906019227774480466977138687320730361792895718100029442007259316790662021796082417438728461849659659936835362209799819917857526838621668184647291301614179838183396792912534087641502806472640272465799397873597189593594818582396924181034205558847403103695678575824448518508590106744873215504959718305366200813909506104633637952683119455517872184827431078493773726497499439362350755912412567831787777567309573510380066425877617413150335591612182572079906259530915629009117148302974329087199902245919391031663361645010864875124295844133011498248134997986348229118077179762105932511906171459119646394226503165683084361733766019994258758422561031575349905810165124422914666393283886494244116548137742057121409426164273983811258652340939886775459340162175451799024542406733415124645111561660891867451948779829511561973610110213490843830418612339707427641147760674088605527340492812970739450842126182330139058296607400646994465619206516675042401957287476363376145335702396851419775603878648556094988974374309489299390605133433027705437686947461928120842818830767315251149418097060967501846575182586557709127547052796779831800585648556612154209021440923830791216925745609993210590805429722865801074837083120610981674100104404576600065877812178307567045240072714615969161995098178999457880966024477390943986554391528821311851047643661087376665700664913160329412211324062586171627973726024233960479333142716089079981940576598671682453004403519736985171561146159783323093211282537474687010051214746638200201775140169507659651164073173355985185278888219836033530887067228954797656930428810210425866444704178680264735032079576655105051442058894694528940868065851665925834781573193186879627110173532061792143541940142420967997353470992837181823624421073682221157515951004094690369774157376592659808393516201372631032705432466609183456290710690869719633021355437308234783920091600078138449093946366985477047951655414113502170443246080965747494742062617944496091859122773686378547366693995127793843935649353356955766753478262593135193281171863552464670548480017981689795789267035255028360917692964106512144077493406955878682782747395088797212361223835797744739615134392618652356813448860067940695882176518143352333293835743290412770017773337328056199875778262911859477963159799868384163369304009103859900899664473417773226299204917098291110837543686003541471085459802938440664635568338612795327693943995959022322264892440788797304068652447197283223054439776674629435164137310530513189757974253752109514892552930631506436092342853876550711408955327541510537260000622550596038232932418119407881292713183244194899550731156892746418710429903188490228354126419237222862754244001438426180733727114107682332679880895534785041672584124044918835115160788801074524394474846866496875200030097064301426383717696688085702522870005944789122742931966988791971334121847842421511077623691519659528864812087043030528413089091549516612899994900232094721096850430344421372382867623523412819305874267529905218592102404788047517880347449817731210205279581127025384267094268679272927991365165126037622016470797314543895313959570065557008409276784491045509811078821260128494242316766707209358915099555981596594326931774756799021939107586121467282074982575753507077589595331039344579671473265581469957728043479908868299062366272167994447434256932256941320964836059026300125025948417145052031554181067702937718649830860037794417251890880756387138439469530538323331313339871856742207953841489440720986026988725006322069541622525261805898221138547980079202685654180076619104071913078168990596979056566462627564415913921786444349957057266108626151830142263402675154455748294692655017733217069175385823967825158774666732754339122659102370893856823011262139480034762536779073455826269018774729826546503378975136559392543568589526171970085543353232431995688681565593933470468359086523281497288877799464015707393055955752383972506884989124155853893282982151381594959862207924906469504205431110919120294423581800952671154562801602345184201566413794329172304061232227197822935538473739487901530363131198134190434424562735173975405852142045259099414885540632107582812332151274735517909534381746114217732145969437334164610909130679328006958197071884712514206503795902378841312272193865957064293267016084095297857747569340382026568967576368297400533965779402389045005752174615186477988936656122062866785880210715893620923635663493832897935437131919549170623702990022478278134304223403228387605487395688318797788143483711712058144211460141167355386906838988214857548361079201568899142825024932067966652777585957600221251867651750714404738683885567444942385534793533927944371776786950541905533145884397557983718828414394621127265280014889332568070132447161819521158792520949733457926059939922258245104746246417738139918327065762338574946524679322214814333557514691486767040868307184880479156583331937135650912913539489161429822706240307482427835177718562481147617071919603031778584782578502073722831769152942170253792032490520449741894397378585489981470196111576797333104377138964688758322893329638512888107887521715738191475289600770392092350110884830018618676121658219867725774080131349444325606573940656780790652584586411934732566316606318405745619252376996600191068672115610681552153248753182064339018158409679895565171924072775760326269733364282505531909430818127612446032007885353621268023063277721885156208270983597109271297641722874910487824892641496778843153749886815866570326885747132756679091850878736931044398037762227034374076370416069506181349310902723113500855691699119951894511167905523151195394418994807215565537118760151196159004487789838196020091181388691881913930994154009579051361586173302163702825792394526180022773065472501931137723195023578710073522835498694975348914622017215470441431035241662630409150647637244491828885332978151793306076255588019486868088151059671069107399505246125030207929164420421629823865732281124494056016420138603753305758095067531739020465585572940827009489568141207748562817424453139926164375026297224389285117476156051850760994831921075982282790387507382392401413271825938801331527772995332611678019075617770349548710885352211949117144078014671923995766696979665413239000928334254517931948251232342991979202382614240907228473987624336341985105942870883733325325186689100384366862977976394225250560416641954450096919475184351119395699130572593368185764467692424463826103188932236471105125214372258147842885488782587383096368073089398546336230889757753854734851869974931240230250928428516429550888551136252463506363472430359966696613138080332353083935144006149914807710550103858643101490979403039993492943128795261053766233397272312692983679792815139532486678894938706430194631066542170544094725550149666002836545808231609312042913990739095604115536054495232007249095032907519746395945565473173221988874842953341460565440686635059422578209518841692061217477128949987790935637453410160480998228869856761502885458268584164139629241686936467408773450608521345461040203068323676685469353128028738045321739768990528910175669436904304929976016289567928777831647206784352611488424972989793239959954398277208463686729223026026124790519941840595771568212122894169328801663468725812250620709866354496762750399222530185471940282043274777019902150160706223457347012551184790742962299310234810354101979744059481218401670177426909562548601958567158320146475650574190591342467565847511036200238759811682583380251908372311868983102374585407724368453008318838907774493301721147818344807512497132428229051984083451906635940228543845083644145812972098410911598608732379183696844237308770617732617229750952456984570547196641692688561197808579179276522392750374489867493042275635865961764692784406831597391769628390463983912890127910407543589289712372472677537289798706715490953720143483811200339549762433490263665107722389926023552795639774853646574828847892590989785509551978456696313238097802140000488557619273531938821861114478411020066848167747558816594087286053988565087567496822414458265005476291494984349337117187114326360384189540517062402400173288245636843484735071995525779022902488307934232495936615041572054418730516125872524182226713002882279977499121306237968672140233896410494569211439201844278018224008908878846110469892715357446215958920444252274190722949491162486422069291612270416711269285223259737804934669144879159592348540606488035505647515142998834061333367367235476247437156094920648651939857792076435312530843538673290715249772828467151421992956889540851316246567474133016860751184192637984651477280017300642028916920433970692886634678664012621270937029723062866433690568420330502602128812301075222475249905418431142355346796170459013056042616833779310366215989215168619065906252550975508198348542596740541880534005955073704742660545594140039036841824755426401981723300488023457926742918760288322816784827215867144142102868331166570787818861267534552425336686681468319689381802447469595427056392398572453199465431512528239443006894228908512348129385794971196479262440463636300709548013504010731616016310414530762786819997120438710472646532598144196501277246842486015258113864249047219338636694447702920025439819517879108262308979496412229828418230246974666745142803992369377968519341359613850883847608540476011237371741367906416645849825451209767415492551215574225518196812576257186867292863726595208529723086142225415510165640936392700855430140353084659630655503973604547856754488000587893558648380665193830875519734326359036118484371603403673996974115877135644261781152857175568814173251533797384743853737518062690246889961184783826173484109660848901010904199474994700106686572580507111856032513138805613580730657376410831734765995282728069475592114290338805282956467372892628436434195794493181736371515956349706334384729567598062827830335659165228562258307125142358429173185274964043243427407511340501919273962694856115291718521166663821415276363254808277897639005810433073311830411874736487380930073131651167769133756186982512945912699629162534207544911450166321977725879078929262221429381212358264173325968828030946670769548310431039165911624183222381673320751030094483537661934212298476118430390891976108118892572013306799887769225519049778018404394937057650903562712709530714975373233163493432638712585232215029818516954952415366461723018986824976497649683310670130801264992274868027313613056330436702678464974204155795587355488613507460829208057053712725382469829091108924642256778412115380182368217130625836641862447678822098266862486728592219082893772837414650776130513639009164895572636655663920227571518904094543449248137790441722426142267706259780101278852701435794612412068384920494321333116560220447115404660285484395600584935155378883510206031818225678213464636048321320061318325063446672759968603153117402126893410792263804791384326900910565432837158763781263354876916126901963262803588713567354618904215765651068606600916650973775432247253061952122680499858933589335230936433252231280741020990845454315294964229229644272309904178112788937411429353775501087695515193220097483086218778040230614381323210312475329948916955803824582095606118176289745770470451361620930177002286879735937811483871206077303102804101267194897087537077227047731266402875781159808860820658363652300262903282901895757131857713937880408633016743390438545801289905332038129601320656582909991689119820659795427403527587765843594912660814251040714995971098189554962598320259408748667317267995374239466437109100536754249711593019365073050077116982016040194506038756047811505431029402609617425639496565459744514656119712621859776297554931124105330966218686972284139004550842286153039620167200625535579861902165319653461006928844784772373837766509601478595996046398371752293130777797356423309066549346173005293381555490220571046139424828812566461482599220372716979343249935079961034507627941477196603910491436035187009375100165875000439119987928500020776836226672235977111159234883998051807497049296006280646215703535777339709441029704837774307203976478293647093542198284836203281852084549435658869625013896193055500121816324703080780290590474178042483497864917602297576720661348019160209915946952834083167086425854871958973240927850071264537416466701744739641817124020158804242529828670966829977544885169571942651822653434517722911374195581521257563774961608746054920891925929540225276341982916263664236875577282733334446351217511258114676316269263826448389460273479710865196196367496660985942131596179761690948846555529545682632592909156199832964075628649951932757096402804916671196838427319604886892258566017904688349799667580786241141710012205192605411563510712174024455221270302031847174325839441301805767992513182651010106731124922247027063141546350351268740758566678373383321142238862312860439365123491955107361831779419329208323918355866555051998633923378259780798289776413886970952124735921519470280146678162151363659348602010577718007942342580291409804173604051636944161159662257095700516602846804634361886013734307709883307733086543220373153123737169816361919253310612361457318408840922209800740921910273480933640255707784188557928774051876334300864706301468082595765357883226577088735713605327595095933311675335263902073997386463534319770791244969352596411915649158291561396239799220056207252638559955784718887492664329938243944290903500398561407690408792873743060156680998079435527323659274764743895466686507469808872954391931214804009649817297427089607517750493163121751561443495879492789872472365946212650152377055307034300423386504696673171717009845759886440784010373677123385721192033786709178626945392456471726467965230374001711322393717997066195614759007607997120382863789240107343976253433911950433717113034328217279959642229156967085005782889968933810965968882754851036236390516671873850795727626865123397998533399064520988562826193771176251930620799406905094961704289540768704914946884874793272983811123375007247407931289254121999057584270536772829570867678425369165885485733511632211034869162303596942171243615327588001414311763327748170402530170447124523408001577675116661088560027664581762816155491980403219323846872263524861821136693062851266158737385606023813898115374176776885965856759352999330465208266540217717638819940148263944773144076684727542795461281756497098792661787585557793078051713933811750203887663897661188511521202378993868517811338960178836937298111976277810716984469747504423820519916559713655973683947040896419111634476414793652388846325234896058211180418349030603054946100483993177682567896603536201691174097623252506369479484452841218328897531237260250211245711480834203857663310318036556333142150779480696392561303870102579301356423985793516388774806783264005811488717014616934143780466862075754727621535220676285225740157794601151653455108344419222288259527113120576325892708630169521398494683331132473517781475012785013377470671674185722966636920263136228912937889127641740664324180284529986003908721592548258525695344721779556869360928340124882895031554255131775069525834874026424680270906942097700527182235838674832361573169935108800974953767498879600245828862306131759996462487094058171698385360887915309894092200328543346095741797797437971192243011656280654711187891384237874134118401960539002664416396400673561194703072441695384478978393532471058084490847212730702868988884591320712426975625850170665978920399089923828173427705233220203505549303113020568925210778659365601483397688097242915247377223639843399862509770626263128813129146930494558750926521637577456521765767345344587012262282914158379357271343104315492985105192798475538547989540262934241398147120564389139599188232479788608262266630348329472563217637605661253393517976287835478467763587091778077130826372447645360447154760760128471264715440665030773340855608155102839127652185401293099756257128192589748731162526072693042272880478144677297775195601477418693288935189026470998217862701347164866861595085697249841362653901483403394811496607830978581880535048699454790615640574861482956311786339902514320170683971527807992992709272295972102742825285340504933218154094996363650857277969525693139465797505562197315550644917904717191023045846808985306087880373623160142045553228492614311262232937651377440420241758124551609958816649310480133909259487668837035463020874007946697727545745303434140212096280810639848850642628977345021031782355815370589280084466129050052234347599673456950663175790942375492445077399022482547177705669259042953596659107800929957208344822896354381461435717056249200107610030960862692238760666172367011367713078803420880576648354376637056123098947014857756115718615033132895109468412637369419058101378694959426118163711388374552150120691686311231532727577288293030929982147427249872056579591939867242484498110398948867337232654246734342931298971742536986522249210367747560394101203227582780042859812377920216901847522712320241624920437511828176886477580045597372487214093119325076207329836138853928886509612178905225338970838458178409162529887128689932562174606498351980268447737045315901456795542867358917649072452687402086882207293886519939461676036310424636409529394294560568500322322311533940016632043628746587759100248023865979128902371417519152716440556797867767004671838104128634902510525800685215287086743188193701306114944547992460390112558891148897487647138812219972386074295339046990483373903474273082370083761375462044366701275882363798497558256705351331223399864776443664448851410856456408606487979952484106856717054354966519981920109894163313896628267210305806127171826148985756160451835229966671741819098284544879040605768271986523798458848187703417328929031541207415515143755065712556412231390381368744338111468159172375910831420587523972966159151615824760299219003038987800057641266575244325827179370857068210693614698605507746320712878787569749004047291857334191315283247281308570251563158971405299639304898559001587955452040853176413999078585820667209571916023252578812648699451192978883740363182991957532425935510412652295606309013179169210888939906558653869111896052889561664532303587756971107156407952547862802281454708845237146837776877005818135070410705868084942438409179030125948595935998213717378689113969410933298019249113344633897489220347575041004184547066051247116544585121135079307576381981573710125715432074001663164669603088134453935638426128502575672286989498571158394464506791489398986893182045923826921470346557106422242167603689859026034625276476697960586585423250968867114559221498187029421525814888300615537764790970287016465811984244920005100737212929424398670572940526669611159441986068843081178993556451372757318120785995390610762441892342991484820470116537739412855388522516230629910248296166858341016403007167225491470339787260193722308154005619994217654157299282469355788583319160264277772349868473464099972202547577009506184059177503052037493378497630540070661621279481272643531015503822309313566057656098694664710976463358830003346340869681460268212947041254127643207381585090102963469638478583898375049416680315183798079662718403420954995447884355925126455503376277758288048519138239967454465832136470360468405702247135421354713384621658707156740609302996979802196406109116487697542886276385612858967897304800228191229250534416738030465058286251408618862462514042943995884351675776099715322798995933335678057822296407102812547325311175344171696765397374332832771624590132183835970680745169793961722476621893730380124631132814206422789798295419312991914567121865251596970737259056865810375323324100227814662493954887732890230028148047851628612433888222848330373961338878523429246761915323460308136070059831316661410265745628865848616451970491107786244628808548018709852496180122727070823416729371663410764666002101544995164148078541796135923378629348912503904023243089756015162184945836673381633706829807810050101022936961468948153272080548925609417728554812410058350220730543524592668540539315768847037230377740604985031585684667863131823497665640676326292598013709259564655952392998645655900544326493177283683638564255356042694258307173245766048764977656170844109310612956987454851271414585715500140870702084510205108012700870534820638267438930097960534214301879964562456235803590252024839748385787772453341775553884851678968319642362632798704991097715930504154376768097387342701890138500133680533360743956752712416766900842931955702293552139268022855337073105441841859118842810263556324104756692463121209670986856757374358931987806588897282360292564671570053239852978833454363863746077838229957350818880194973604076117527779046416549974129780224431425776162828687461791426062152772166979941924385482430900870758466964871295673294788491981929514972068689698922446194102009614760386858147236946787504318248279484943001950792820780568407851951314491125890165506904720624297021414789855397107331579115820554476901182233018272969358290628078512565397903861030942812718403466007499199343849328199328513979535516497681553170825563922475076078867925560089544518387138896033882220179650406649961658380392016076905628397196549649417799633399477787334414139245137575590366200923360683581262231886017107692554178820578696315798445740148378503003836279704877531821222411086058153882598956218253420464411738767563053136262830856255016782415545571744936558385969228317918711597771142737096040128202305878635401456725904824438422669900115013642985731178931864439153024815670984943221495419353239322380573954705190115655809955191306174427553180867016632121899699605545531637127334509517880996031596938807314034628557984332192145768427888311594592082647550354115220923433072618409734519793031254159790339608125729861499408432319439016745988376914390782140629616877562978917796411477820416587386475802197772717720194381487673049582743068756312932266568732063787839372077132513895404845436640636170498044495787330079996860328117530829413253503317795136236497661831091051111772125907157331409169260952818605771201667284759206564007613741140913219882625553479743101458587214518329905898019455794998277395562498495486801166052975160495739746596774685522279641798572545432685811199340624335803360541464438641387819957196694985013527238861495652647593235174701915886477148716127844540143878166079863544360171359789178298669789639444418193930531774876558226084614836169269948645480675007730388200050134025806919876716674783321669229627899608976272318782201897889957050587098420344979648683087334650721027326340256190117498248046805808502595030480230079546681788264101455626294374120154514952772946211776372398536545470809373474148866161934127503032534344589418047561073664281774218067308286204233037798138966295127586441273007654471789163858471532724240200187234942915050059083644640723044525166497796070111379019816026250433399512491176328120152711805951522909040698037171636510163778982646049598677934086458311375108127925209653178916236583916857170548046109817065152200438082039306519904847364490464245075599728597216883472708961027604534318809840551654356695893557030742782463947641012972457275639243480959580308869585800755258560467532185982098989952267069774300012147606525486978144986006105431413660918372892050606898218284945431239229212641027549598330124855930081642257546878113607192326090583820769938662762914579538752583947097216804426626686871178856916716973939994766876693420403928633339137285001739228611436575658356686506583708624433379987504575585200288821997535219724682163559509623307687268888860834656757567487892175705479918754268550469135774610630316188562001775889879864508797244727472028752216071587951901656194998281136983499416015527972456033649242776717237958776421027726778218803213849111498907436662013343460966127378151471467210508573706104737223086296497753272191794940647696322878185538185393961666266320595479351491510693385167854859018742259945944416675999047856999275284952227206348430678011117224479078766484622514373016991355528470238223887479988809670547805686864150462934012510193442532845355383754010816481955687400858302822456782822900951890964267651333675929510016769105459493620644291967213568089743196173820143779681268300027566986480551872952109059636788023255371785959563198248468086399632166113020739586034916162855311186276837539105085213558816116560485905195364361706376942702737142322739806921107986799818317974809177043306456159994943615925411739861821207959938934691182218625077526404862055620805147105973547049646015649259433131175239117571286714847846253058842847132815238229481924215556430727154607617724072775302660842773473682790609401171946905278651030226488913699003132528710643053363587058210532421740089455470911421378070853993895070253282987709374620192698989125354918381427652339265657253856284957043065247925340499006574041076587322184130500856883400121860949830993346173997198567369662838539718754097862576648871725809005937285669280138027286910543115055229298833517012820755862501503589548561912015944896208880865399209633076226526226106000429425998540670129815810499647718821152462163027549853762581436011226013880846222439563072019908959313924886557140559505098258510640366319641196351819769523067454609928963368345762883148556929228842616645450846513920829389169394815303715592829776387418330465044803481857125083243204646580452283095849723546193450376467551905990149202032292976762591631584711781024160485107284173933894855724949331868532464760457570292738141712044378850663333777246338389908204514947699666556839970046101063756425947944552784178672417122379924921205809155080782924077859549833336840285990800613266660647440173669885512794779020330897060234771971445537456161441994434897271106083707117095388103436854819238610730055085161360930440131650218053014530725894246104205291368968538169762245377974444057109368995817632150039731887646854495121461121319278032405959620820130069767843863748833655536828196034985467843753998867931407723554877132810874901020735931885924401623409279630201532745686078400228539284813679561523904277938698450565123122589378437993480338085675447860616303315457428521747964681775733480647475044065015521428782482047492888822734685409886235495320088681263438212146184427964221811649481684157058703711681597592954683656017415342168654865842077048091366197286128788331032840891226992879876759399505792904922759084929141709869936424853405607100236577565716755082392386288546325867112543749932477019237788965581742917714845149345972609491036202835533331306313082674516514266718870445144089518270343206161486397931360535097964400570221869938043304950839065632990419758673515751465098476842394672224647053350766163275253714241525124418893990869781239662270433798073654896051319224597992201223842490844222872973274980849060854107958856448679115644699804179871929206346645746562705152579375282692584170609177413675239222368394244352182627419375791371712706366102499114924006442191772429488368800219786994213695028407377958283258945147237569484922331048386650017605420396648647157514173247342436974379124238453863167076269135755542648129928213493938600377526655989047075365089007324617556310422929639972043014512774321189288879630823802595735978707885288090420979601829102042884065416509552902403090892651718803418095102663231485638051756299439084405823551662470389077253135171262271058570021026861857754536157837186285052959678407842557110565412391494977935920329139586876191312035531891473599745494593620775390623014178575179967963633671498518767575417994253201835320471872842556933422931209747370279489793209477972201037455308616525768864667759861789696220912634553068326253218286231064211688203571701115951328758484884576304988981675751354482080812791166922036427708757393837310897480816190780104111795872041276368687191103245373653735714596812365161028003804527373634742939733068945101205523607854563256825770158947036098934138364102734649743540072535016442340938307898043967618311163503938522770387407381150474703551730977442087741795641429195967762471980133474870563693581752635185195332260227514654425956335339998308223123097589823361716614616828650099692548255855222620842593424962221552822670113069799492887963630521427709836852058431022093426738808625200117600041195188077411748644397717163242272402118186932658025312270818112404564112925081972027780180690582221080596182052106297048444558708197989198892789389066076470896294078660460112279339138171768148780699635355689921263504871666334554277935259196617782428960620948762488453151124719970668457977169446773907205034063244080364242641010635112298527339337841575886133068619178926499661896135007779251799751665128434266547079293502552136155975903398864516504076618082073655192387428110912951233706483625011721245547705635333806521424147158872683116478002040586593719540255485064048267860894428730447459359751817341977103398721171778288994378021408408401515684126926054152384473270504303718312049420765793644172252034222404799251023921707204652771297359456753742410478815453912188520945915833814536903949215704582383843402085577046515891402388876942476321518706471660297227155748369506556719100744996340334078208114246654907708340425093139436940723092899796070814946889203801984855555858581853419330608665903655725609696014782793182710119237437034503347127982005490112617328799064630798196893333739705077504845190325772275784845006963563526977206758621585827288275401086466826189032668903837211912995509329275169518628981328540596106075564419940105996211104264542250005920154111156477382666663050086720320200351012962670639476856558036995642692049951661507284284462463250353344052959643995334274031819486017761598633361829014382566735595005709989421096724058621545474782772940527660662547528402208423606327920999252065257086136682527785152245647382761784636641168218596702371844424399273220470792796747852332386682171677983069117490317882935550543129829835764994370406452615764146341635356548373563739509144677935756897954059853576455489548169666482094603795663596455883701835502082633940174181087313635051424428812835252889725214887390094928435372029314259865593924102270006443535718640218358146471093325802378726481673141635449740690252246579207005115436122776834525659157893764545474438517933360483162780968685956826085246190627989907561713040356442106010517906371824226213773497154606873909126580976964934474746236704369886007498979945534070503217427926895574612635176531765738135170581021522099780514835774893076780099420199843575642555409585206128051820807437517501833287702552217157085656478018577596744276252518985844639794641635348727124847956340047206689114390818286856867660923271179626867228510632949457863170877819431704369166662105468039345067512825886130516488594647142539783478834315789874691466400661482026482897943662233422683978318575932189184249073093414896002106724324283068526414363474707617934328337209159112735179330950775478984610152340083408999025973730130577081835934442002112480839833018577417830132628587953740157572689748095081128303169713647034728055408913586028555482347124921595540808623549917834871030608015245629533527909343942331490080222058487812067570722378244546857717469277677273681508602589202006611204781790776143651602367833429571351444625155146812560459640852843148099505338358317764113796504432445404441657546787184337396508494338970530524319526993292688139743872407611594619886894162528580459278268529811680662969742566585357741467867890923543155851684263555092275674601850956253641993066272422711366078538961181814457998537591815081339810340278268174400505433089236331060125951438553192101817561244274667083778829691672844792223123047394484858376413424124954490089216186794325056815473779839427367594850062348411857649191717549656483372244129560007643200367388819005524463489991171658445509254089246290528318457725944935047950117673127533233245828640263949401000551584132212537246144912118469462141391546278072021950221231883097441377211617597728423717483227027383591958304646767011336795296742104444484931456554975607253255327322192513710692891531549870297219141160255224909599334984005318403484708146613404866475755071062575543306229404282816472041929662250515772636100787954814318275074365363639159179134606746411429124175327909909956094281557613360924282254353685461982578241085139100670173008392286734402690676517406000691836480343170271486381027387415290750904286474426505520317660616589048547790962537272479904788296527203876162047058536471331654857378371377596914215655874028878575185335661780170351463037798968528062823423043644797508410234544319536124628528568727378202657332598782966406914599320895173741492304257239624386872764795400501713016870065978357419874351060112017362475899420750287628653030672466642144729794320685567367588748854305463922221020335242953478416158415962830755351563909462435253900151747384146898330017691249501152494188843441752846663882815711520302097879299886507698587080801189233522659101581970987389014978868008460823594206316926640949339203352044625055020951162406079618173432600894476567716006546291765912720531361511646506339406560798476671792256358067464331582603392668226476829966079294784218587523129730578051735227207493048459273923566029476549581049813383335742932343929457259241204433441405648721026327959303533729946649678301801129784845807050020914232129946736629532599055929133657064278028627066244860867761641962778637214676335276220847278147646914030257289170689983785135069959617988961408556210245127257417098263809815078385992188050015268553782474288520339508347619385589427572196547206921094880891422811627516494195443096777252586950517820649553292864512173465767847122301635295119306228227903990459549671081609816951047712358056564794762543157000259147278089035668709866723695246887632660493501616422378460222638857947561902932575244721927125356390100451391830712402510715074610646539602928406527995756214484552544413950133096941343068796553639505078690071085797139367793557941901920669901971786215368159913504399751127021139133606176548517734634878785844785573455436200966192236171445261597650546775552995776001466017289292120344076913292689506475092184113428029831130320801757875171467423237987895906612419971083196971478271497089266400864699761536742515581781779050721300235107531713748711311792056724183773987357314286170743190010723136979062239742771795726067774458462605757566275082165275118695488659277792103388743076030799610355673594709509752947081060076815907131303083912424964738673102913927992513916593501357477624372992576743436430383329959719555920322395341237456929793985575331375329366123540003731055541432448789580916751002596255578381969060712003243135109909844406052320231359733156343462795407375243816659040513825877076135299660019201318516444122027658579062620407780196258855303479801004094376818762825529451200331042206245202822372446187252619538052340353917030408397936327377177376867782269451366444682931835685424526217034911517907014179234076221642380615951594339020435404547129900550986574409512625151275868889857367686342623343556646064397215642069151530303952730969438147021119854885994299755848272956519690108221156941584816386300720496987017204303743429437580666794993583535349587436462917767540586360733585085825302679281598342798573334908826336880369632783449208091906800128250125889817338475838101985122172624925566452955136283604958687999774274441610763200794365762180522050458414670229711505871635433489120590726503367603285470373398790585893085191031381548107602126468774212494164016524470113371162475345053164411536957229559396699949295912833908794629025363138403401328132444154103009939284600974050450465875886570479397513152857279671488811045251142586563159278341055513749203390344911741007330440293665901770536241314921554642464952905764907622697948359312669807365807357095180228904708593410101524612343050526772822686711975447381181033350167974100243604929203657517708257387650002451772905211674354011700913397897841562860660894474943965428381623530281474944389954378075430004508163396262724518659713233921429761243926104309257607899587377748769339551095012454097122355581132516241278870969589908607621074133256701965625764606844197692656712097080484701188605962516560268185323629903369990705980649186453941065081130434749396119358740120929599851822055782163696141687465585535335630948649268174505895421640630214461220767455565128664709221252779854345159128648823440630276914104991262043003562681529005966828537452422322205864863993637051350797253996636663759533587152005841175659325237611155942519211667525146173556310386041225738254337631301808918170456691003990452478268077893438196154045833366578590710008703143284378068008461127181424754177119871301123718778869069118996468688291356000847120285074207213948449594842748341425121523869668046367024718107864792053711720311820059217480453482733239551654652913137521783622735305771242348902093220792880763718698333541842192914288504374818816134240683391280888933819996740902228088799654532625875092348257737688860151720643628180303310786535455982280907859068736933110985064863189434254713946506341059804143333352552593887047015243071815611248251306075574951298401022611343771929769358898476063189882385236622126759519348536423838072602651930974244280737653129741613285791958212777583960335635628337012743106664570919417735931277204853549427042475514568860431466177370274473022155441305263188228440186093784561188811847410065391349468160204601241845357270903767450542693934473341294548703392471939880564589491738163534381091308159708589884985332834989657577325504807596850429456516552653697614973595671158666152025386278060451153745469183060202097979921601671447149150358662880310597140523701335879650101360887289106108917179870788693077888668509129204838607615892427948543550714522504305392451310904746124138482452991438723177898130773561358189768972306549698234370887142540788003714628966187935749109291003730268279324560206230525726236955535483281458288758599796408595617876206913931991206087635843563862013757504103327715126143002993578305969355980556865256822218218373072980581994107493951155140827537854855600503215141126332435248917613344831104796189436494053018106689535498233944527291967186978461805769148019409731053486228212911635753468389425295178797321266602549414390069128346720496244882565245228730218965341289686845837245805607677891394061334130057411940367855253683543275014786590983527239240538558913316990581688463498640127539415514775662276712103664626529776796303834911625001788369670603018525275747064958671984511764296953956467243540964192453966938325604944808104055980779156983346290968256289543593476349720995519716596610751572611675565461472441764903574979904442279772561833501534801610403058326224460563338008875701781153549580257979537329985790291842943917730512577831800669911952952274062395114309907170911209134962052715645408696338689700444832801976718534207143648978809841559100833387468920953252214082938878738334368303867633701491012426690394082709442977045382079987512270952907806524917515667032505326824313586070552506482260462692909955530036022141723457270005135379581285049676373040363034480927973941483394479742459277754981431397820212226100219093524840072794391882226482401858787039246903110190751029258068986012361664654807690528657847146456267824694515072227502502632639489707492367322374132771246042198313600840335380516608614264393781396039648906721849824704766245950488510063809447408307037873853447569842183751237621492221310906637353047617885213880709142005835599831651126264599814522041040947235186975536963189486780146994043334226415353470923774396055672568476383804922032211293256674698190823980395879059525167652395423910853706243517274130487485201771244591719774114281981803433556715248100784208324472811151645264562648934009708494509876708734516394906201008532167108105259200488000119169309392029307094714484419066579216381749817004310282543014653776945730765851941386542187020293898935953575546786236925786893718963865160822904012231437750379489888786892487251381585405747521793776650113171557611034990039641831069494163788188554819872477526261096962299253876550454495815236261069433408246699074884216432633023756932518555007158083250429352904981336949132736432677083922469970906213787555069223165177701411430868586582704707915043126748362001935960530990506462356793064204278430374131599830065329197927123141586722707361706491260481755542898511379869651718748699224741498287724526430923533150904007050537136936051606060286108042288854335525641309885838592467745483532719679579173443969929965566573932619686088533649163829718249158204527303496181107119659720700271085818344723365045315528447414301797371989487227189262475053129885312770097159719273874757428002288096108356494213259687987044043462953757833287666678068033222985980407644939558437085485392948176230281738745749301872848417543644339058355990667878918863678728212445670835479710795541386748884583569920988833965656124019945473361291911152365948334477961347826387151424140802148777384750028056067121383908893111583215287157623347658990740241377852472226738873477047219138736629567235399414494627461756228045374356879609221386175918889973661776858207194579070340970098413572103782501904638946142172669794248444437456507311417559731490425346027913394874700546789331227707190688034017583262604792897344159832928223429746749285513290829576744031382427009760273724027553063046359931025481322569521296246752647400812322217524793152776753491368143381572689544453872153372125102355689939191081082468536991262168620319377047401700126567791668976254058560858755713977794910360295777355401823003044869582992311728509712257717932349419536766792351909267207455232668949561867325191367306420797547679962360081800947581043849781429578594169610199764467393831357591783405246110527121585391108016236920041245315991178860334533314447681092100237111124980367250610431458098905693966546911308124599175134620823935313044575255373029070595869499525895184141340573235336960579811204875188055171974471959859193748277663240956711286783879586608636111692507515281913821947508992957294897684072307842962534184332777677503532025656751015959639502892525463739807935715137102744893726669694379267242960289955756467829049844691791210749612601828053070432913767676177915003522962178403568958646580598008666348735046768494034190627576913481707007207550666846801252304248941629677063778844342429899500517285297029044541245824116657495346248619099624951448347882756261934419563612033848961968378786966740648758457559822837575870182819663398938748794494238006115881262311009554945071823089023069153857276479988206316561760873664625837031670737756994776546547443959261799646219341769443570365808831510866287707692459391052130372229712828894094803909916022670967530845831740054674525035668600896138962831642893417334642844220226480453197505223827708747873454343541765317363174405774422585502784241201058577811113005629937649737618110823835170041700342008375099564564496843457939458095851787818256953955905404953598355960182416656215838473961939382367730550220526390660462176799521373958126402133923838004035456519124104583106592287968033045365028755072913986428499346856706707968484878097548593400840000995292774826287855076963044594545630520214385310828088181417468303459108795613793342862456518184695493952847633554936917276045355090942582146059750965556152664168961291286861602381184544470790551761185232363755172578842158803757474002662898192257063722497676634638868788250604967082995324554320890338307919469581306691499627602898881854049943879623530454405909524107102989539567386956359172716544060016347691668386654737831729840562970356443102840774933092085037706651824135427035968950619903523684999906005551694500664110588921467946051286779700917518138232385336172250710973391865937019987380487941688921297237556496333264357268025784776930741247799028690601425195631426705700017693755854092693628095941751060607613395540917388545169615385533637827997578117481207821314983247562848773029893949981358340832811455267347472297539016801754576122576814790747792479666058385415963893006582952043319158004118920193978443820503967768641212185035939278193512790135975480744774513562732678026192862937893356631829607920519904277369821661790798121084347499675886492021244946235061582954428476478026967013594997758483889778436966132126341508552447817369854780098388426532401292301372169551188027630593194267815096789404354995657373294443290642887303972642301816809646868305446983093980832584278538953588030441654539529267342319405493005665736934603039323791898039337459889885933844887813004824229075579097163198144333006241388422785088694526266016346156519469808082620330412152980062574738706140239341433747830964428461328087088728523052521567175135082677584024556462478859746181940543411559175909569619835821773520475087786832632263555663941214486353163958722572046073928717336363434460989952519179904286041906370229057559183608242851070269167571723871080081474101579461071222705210537159906706826493733603849897727887710129562280114678484420621861427392138497121628494752467477581876088880493527653191210858202790654894689949677759348108152044803720106571175407150972450475951636029044929086843451495095749130971245319653531848737707890053646639906766254531690699543713858056919532643812235528704757778029844011359591631143114846164024581352531379531461268978250199895755805843319335895214095947449959307045083863477734777152373106745654686730849546998880708409915607917225884063691954071595275386024250195298320273825786739647918523458068618337716450913361458191898253550282604028156912701533486029268425177211617626675094015122553071053418489038177203859986543568142394653131373243800277025323193014976130200607384710773570875167897072752055804285298432253958230294439937831612601450246843404178862228536431775468755230350106101555130396191398224206381382705941301515804108459141890063674113056316510710556809935195914600410384023663237423374116850798083242360501019634454385292674691283397178858813414556313512793758067724407125482539188938017722558916171735864688189546403303249779804689543836249594908761977811215477516158694206307563326337295265973970683414486488642330156433521195939476600324734564028287805449680913846148598554520132558060727017935736760287027824805021015617221296517078228905712711466588602827945027220131658246666792287636351976943714831840027783580281522001130393107507265620646780172845085035385830005040545567026080971189665416272811585086046458057252603542981855927234983027722401557895099450716725992888245347795747885316421085072177435532952279088039187965210510082966859464098875212952714817099240850482798856317531296757135065591369688113757206207214744843912279822892101788176263366739972102655776221609076191989919350882638398615620465209371527292887929116728443564545095685452177377327872074128040587251889275108137184657342365980767787266865766941861580550802231923520632598565115852914375013666886230979112345139722218328366962999970507517797014409024178841285024689049183370734307829687612760563100770874915411464584137372888462226127802006683763956379512888006837564723712822604450300024556338565591753522900004332474223488264329502291354759734383232762774097817907949902305869468432474083442895409745531636161164848908260455616242161422037423888080705199468342064873010527401582527753003695041103020917022205595544529782006450010262981403259536084789836485545123361429166777718421933475188844560184546387070073696437041845075901068999054191230921780949821274473585730332557868024122972145458804119263918010169374618716518082023515493011395717615692761093082796885448401208734849101027651049018339062512147706487968467019349201347139331177329839825429141562704408996803074831153421590031007244405287815897575428568761881436830501597943377028144087208360986118102418263054146558279124683685077947318638430745894960037005272212868394303249527379571928148355692635435325711157007209400774159893510772475148754201741839964867508205602981526175244097183557945683452342833549689149774080378424471073253656948902408823624106745115825767426065577844381398605966743895904522796327855487651642181757386971102351604469169064704253766605134128397549960170160941640020849548082041745537949445335327496195028112810746568125137160978280759683210963097777622956442144646880354185856232967970638094909884039425674394289245463788871445441808008633906454594825265319629761552174421890829146466057896540946623427427439628538408488772357339867262334191119123587631695383488629097206102497338726862993845988237249761479531081629654427209724934685418139896706470633857319992074303481363561755211374577657470642388543967832543418764839477647949008208686800774975437789780547948924942868286061646516159773185059059943394342598071047158122215153283215628563376326028713979923263254961850040919980652640108075145183830914797778353036067224527001788875839545136583394483337872844111976642802035147560251415163981557384007140390471861803566284936167586235425174771225170346471445578092643858829626360540035259845108054623836078980922366703241206787079715796208620079433404272021039675890099628958246611704573103556352476565649288827622010089121796846686286819403181565379750644856202627612192157689371377533525106048371104364702491033970313580532742777918503633251812781589834696604310968992389784355003746529032059465519875265432719292503392754161383285073973008858992766197868527234793141358317550972129370350817606575934913617560685822860739724963548562203271417957169726296143705600588438699958935513468735677305457105916722944756158440412356351141012845662969833751187111687325909622926762911430535605007867046265015220794313081692967282445343608463328852147775713885220282363309532660053062093441107006755883527044539452814411570284735814707737301231905841574405721714114234903595288411018995074733859920624794942333913242792580733374331971762340115412163371559750097462260123670155518905648744038498842793134384232965331962013275909108907019156971437783260705081559361294106764132382700705133892720027973549008964748652084907596870156204901921117979430000110186959388252789249733933606136360462478076332826308596080440639884527160463774178081536589301575977373059681080792131565586822666537627831916684646170892380507662926819674851519756209760424989080133854724331533416191869975579315248859913387760396452093775255446957424369166097083351066577500830238583923369026933318477032234293378010818221208104646452239735194894956360647846055775638713510563911074276747116210324714098191952744594753441323752032492835252588423793504464140671844228987765525642422082325425324814169182796635461433505820200649491154744447965001613509011906671498985235093406463802498251919386957520215052122497647580607459789221885738699411223819288438921348713061618123367613612730958321242717356916448756891946932819742507496657328192267738122923461998563404320172553964115167990616065677134800189449235742521237378073731394446909733484161213938693589954813332111326392785359829767289547815143559368853095549418609247098588404568289788717540652481251174110366931333328032076744282586104549479995933765905281933474359598824681435116388655609035956303444878861177521317365079114078995917784351267429846483019763587833194675170759324711188394406651894219401309294015606476091275836891265111196406751668920983903496297620155361898839604260283042726208821051420748891955088002590049046375528406335728127639366541087889583498420743914115308968773156927917254237377559380970487000662220893922060651041014964217822428539943677076931260728873839494373259337910801538468592733827185944174099645238876075483495998836930491844183022994471263897970384782193616365153490661200960533778161974498294648373966016699355331500294101302671301791108492731356742214269583201397196280325110999660768341091207350236508365490787362897698846092825598636002948173927605879733914040638235537806430571997721593101513664547028004954608368523072988160345649439759380915332453475847243072775710318575515588308755691158668644677841811281782891198798931349569591026478413364626872962851144735256785483550397777024201318257616614002363164562078226779215122121151012238476647885000778923454722536967453386464297158025710185910989089770538355563062784007254854631034217703049642880836407118178900284457812675740016606540042210247730515019976218103402038065100057773483918446525540883409287552788188177401853535773306020750209736289543763440413907754895585262995504280071525774127452801236148782818017800498869988365707310702942315997372512977493924662132817993514575596947788693254372565688011832944643062365250949557385716503946952425422319296909339134104880094394019103005922310500077025992650673643682557118941446415173855404828116555276706580970729112866906135061390029614456787015370056268862924787547477670039919914019948570300054640278904513972257606778562820957679568435107838938194124199091130739389677892592753305040105711833828455004637137521973631390270643173637053174499818180697925857921547843818865499086384247774697541285607850044313319446984408935616326788172439165795112898151166596049692352240314125391145914039459257070408281173844833473255573884676917044190518705333808200316161767603612442660786936409705692735935906807114158839337144864331404453398890300124949278254772940834042222575344377157882330420263041897163919151168392719081691538389108910539881457559006496134064123080630775010110339486257494319094524936877748125011321555345385420928506696327778170809273783372807630073754337229390258314465122097896866713060794673359336085379767342461572692143380392978537649456223833572346547737166672836884948990319342281823999778004626857988553808334579029761798628366718459413291332931498344214621179152254586088781696167811969498161411997969401929073913644957319291039890933296175682435213061397195432267051851716846306246173289479771928269922302360263749127528246919207009363799426957870267357797310282867953338874543560765270231972263761523233515929757130202129521157879598016863903045842534265353785573834319558747405910450088316072150829979627288319326490547963333913296507821600985573456171356227016894808669350332890225700588806297028408131946481844988584148777958125261566229676478211676985368783918395266600200219329911883458071224189166351867308402624545190093680944541888377158535653345810870610785882182235961081831143779822285854920978016339811574550863659597500211847847516863886780414752714452118044915449949424243793993675754228896465256617829995834308262559715998134743172938274253507076416927613658842174905541788141738579119684976665310285858338585227830883407283530419193047176537880823010319220007267941518309518001314810287257624103961610235967697499566933438981530073327744756945646638177559538806510028695410300633756436945937637377837279495489504389893485490423178789323246800661172617630849075564451050576333422230090838666584885756976611087742114504917795668115770052656317150822968027245404155935263393055677836130837679867030080878763963388440577934696454419749993880635439227525751593810707069342612020960542729489738587283764951360336600660026455557686643133431716762631683360901140056919973897642599649836887980695360909319971112615178234825731937824882362714305216960471656326346523714236226340635380420180203244902962256871313862134337509484376790975862741931023516897855944099157239276973165330417398139673113822275537761730003176156132042877233933619038339438396359744558432282334923306645918771144893884748531856239654084590711826066817652537992337809062838745506763034516529480864190277825528929018212328035788814366737866331058522101147803827328149930822998368358554628772673273373882644609616689177747666160651971805085141252946016022196464237875237332240093700972761764479421644296470145666006583420068276233770231804519367272759388753415745448003579752349194918989833702026745272929292542783596372484936388001599194250101052317670795391496263553397355698395487533416115632761336176754733718821730294738714728357620692705808548024849505377898803103446842038595311663388694038610063030035906416665936786828424228261652644945829826595283996982936304709643519989661608575661089300896322759808398111950608240585739175131908144700667799138044991112615114814894391327639014155688076092819779443055100843155808758475527585304701828307728612468236708258547777112582774936976514910689970696616470088446910370755976498024844130682542716446645457056553504034096926866757170317529216487324397894714840498954142311268886933736242893905371406856799704751053122761210634005028139946394284495695015269095067223463164840208888343064553461058474173898502203841482168440906544615892985361076793114960019795518557371198905162712547433569426933111328403854179684629164584988719108992415894647773467171177961987174998388116620050806598189298745777393144551683031671413218659752204993131640563498646541243174824283261921624086082737686109548335618954716390800570505662977570144290379554625462665312653215927989184924376780906370206516192472180051646057649122383457177816552561405590752047966157822716295970103162553848376786420057662453274305252362527724152987889851470070611922421155362880716478295705818490380469225799937674920200044554586254310223252927677236699392995227945560699147833563433130369091261243504436923456532543997516136024089290964840307627933903936423996692776324931065201333291790708488986895352601114586713216260773784992546271786696431046638865886363543428797281294744185588754242505589676857308187888294189955132106480249455100538897804312444231284600151277744470083367288269036735288376415220082308086318467979359673330112818492339503026603529635212705156773873272687469959454548629565179361398269629324038201157050962840192368681441876831669036034209526062048004496828562745627206813477153925689835561324968612523542681190363501292469945142708471024729834943003760312486945388657876821797531613284840606665293988384843639336935382458758778174178376786559212465772675477488411121958585095623786536699656903742998769506423355678259371089840787640001328942609728813634242193203235594799430244255556773283999093161350346509433697439961615632472768923836223936379507014036249600392897219783142061279504037492164255291406721831298438677043001327716196135221299951633944968847602092243172478896174856303413477430315585121144895674336393195206626397236264593494201315154105752937987407497801360966933802132598087137415047517829973078103185601537828292917449210892326091848220462758268239656564452357217214576603023088705880993925620255153627721995863450047001377767576531229305538457860399980007617854687380193361555954661252156782037773811725012858732992630902203863615331418473910233551343102608890570677378700099022355560258234019060104670621623647258471580587836588355639759062887713473241451343409180273150842318857053131526659412209505733825132627736675118329996181799257320823941656212564399150329771531639474366475706439751181338369459884333881855127892317066971268363288014837743076525967356598495102231345108208292912723979840625406100493236187929926268548460953249403984035523924040842324088960827017218095222817934454679449878387438989504903766482056782982156976290353340786996930403227688863913966111644724417751026254493621220473852678333044584714220944549680908533049157525626590791581893423193930099188656640595074197783738628099550114977179429336798007186989285868586944436270809011973302073331069316145407253302006914651042653892196699867438320454078391754719395666211041198669151931445290462421118120658344503237446016103685972129682028351259476326044431255011716030735080416562368087663934285184812881332177415657254141716737580925579868334422118633876498285155692570279210553388487668348970075801323910413174071293171067979058134665194847525302254689963264100220532658291893272914665640716375527594077340291385965982816483821200456401975851065211231353884882757907219865466232492355363759301613808415477264320027008169338844958973777533536903726626666660133001002736386577218424847218717756950724545299262541319185874342537059904519862161704466486360099340016371661829086395184873262565744215589889571841463844219700417820866424188920272065313239174293434178889807640595386902164987590380301554010165660832881498851168915604542491030494228832882514034642173837203351334201620367102850996989941333704190543123341767680856133819609099320799479811372419270126755480984981850354505327731316609406695077157802125245706446683425111027472457206717580327019044129955149211354540430289369658613658216766371175763820373067980616874599278850361480220603793547324639234343023745746916208182959602410582671457826583509979849035227444576889254535764009777103425514839415659827544363101034428347008083425393899678749719080262094062179954979929058816271578560127213135743175703750789657399138796317055722978090828086791116998960220199381514399282485236870392420276939208908071583639404959690175085666635207484837873284976547207138351428511956418123684681882814997219050458876807772419699182217353321060270015960563014883489575272673517351709561333300015579932139712649638076509677112824677647789700845979865920965770577814847318014318965507830643083427053829192384970254303778675323679762011130035721694818599414071393810621546632420458565850488181741003247404176641926669395997472704138649875237495466307789801898483454335859811790028056540131308678657159809049389575473174319491340539005656516595965599164534791223033013737781435681748752472213065092781527771078422828030343662382093439622951386004192778337350270956280747151293025112975277055531168514635924905939125725409707009274049559282974543184052337504109282710592673078853103408002571566041723301580294873963083510204048887746211976057466941771365913422287695182076065884083844625318446814629236786557261475302918588388085870796501626859751213724080290964340674629613691591862391419154199546012386833773112089571185806497506916614685367002544731084725982754848808671934364690442666252594515058330096858502111115630498331906342625258179102215920597119022840191812815635503651435678772368860922139550095550145386722583974027791421125455895852711179047813318065714129628520496292604268503889319043466088180245853893997728614121662539810499731961231347406404607514242687032372987882028937495500006130423771266124371923669489476690527939201795648231482943158871829420993745843221898699572155351293290039869737386970475665926345320609524667259460453491894777593123028442027316258849539803593689250563491037936875776607446815397144188980626277206164453726085999041350667843319841126431089062853529681561060306035536604140731233314189963511246205984417765027914570042209370181068933146657581133158852527954523294357577927970198900529275683958211450985687665182037234217097166265624832462831667899364287722747537659359056462377103540616731259819453146940299972841627416410775907171179827215207755520714137439412007479276589319049841292954890800690044601489245079052259458463562017493324142719889252106553629516780267459455470528200382666861109753713855933753032188419073297915189483353120927058751569767032611671184108951151222880325291739043227687618069049071322043976251442630327052405889312148218052921574944823626718971750108805609119423460726097352729549812097422617455219944761982456052050472849626013036846417494369190498063628404076655957264807650034369129378137393537833298085959607245483599621367809655080389605643046037296049712596471426483156701953467155080770218229942763503223502855666325827895148621602947319339129563876846089194248269242421100546824348075321429993486615186091311163942823428736843186971616223415694930114819116993986063962731154770103488627618712359786842007954213741231112136051279882944592988436316612145241655443500245869403002546063504993437636537390239173478989713112930202842087311288357352065665206149977297106695466579667592181450149802299314146401620098865501867780210437847382849411254296778632788913879954394758816343182582483731027953807588262486245476248261843884625534479270233417980340981390138507389639014491863194918702106888278003911532291956080177179267901902644941274154001546610707494480367842374588304707121026092337789611825316698863132016369615267622761995118769660460782074030372544047510157673761108758821172312938366466819001541428941790412259717331233201833681475488777997082171613426594399012322688834406169289410537323825429935442798253225903448380710209776977819640651596247969541180319023332819249361980899365682087915799529882589675519070263407870423910177557454944404539099509429145135716041439496109881552605219468894403026783480244295389148111993471489927752541225021611088741135672748065922025518063629672662820899354101106767634261924950445505509372442004817717634082725697706110458953529255180061223687500976369533033718120257776133604740743735887801445018838644145545201119617347790696695039815781003687687948293619207138320171199433194511309723025255388668074860157874262398136173424187881073149115390212151034993563255817676886513379523214146831568935554021645533658967261492318415621070043245017660793498818643300984321016641948955330404464064421885439342699849185962614631075464979068787081259619227644633214272095210277457383863452832822291090567866442906241787087232282370810809725097074689259045095139659164806369236604555680035848887224373522521374369165228881344291164347536150510626988477213172124075761161922637523912268439937072213895857004847647239324305053708212395355788665261025675450842434676342008830148097651738212399416853368685013367911666904717265398774544010186407900401777174011163661737403165839415493648624767680693420828944477615785717534713158588710211142158019995284996872322312736517387722043662108268495685239756599275271845386838395877749138424868605832516658624470972839700128669192863036346263055436066271927930496071334128465543054225898929300651686411785232391440434282418491301702761849929056395448541716068656495500511547922767504223077382829770917024253085875643871676220161461059975075039665657563077630176159219884132760009023069732428328420289836890623103166120041756588922518555683228965632767568257755706869521157016611207975943500214965029855881494972266551208198598941509882185343516548347466858265966893472031943576892439891914535072261400064852651225231307919871461920146711721962310721050481735250624609751468532259986998728432419147125922874180199141169372667650401743765239162341878211680388402078019906663343308446728261649666029229631207499823136366286184397755522604623085838583371384163820728980219867141692456873020184024989458789794092153438058390576548851784879080848386007604913100549213365733032042677060727148231400766245021276480966382216875952722851902491631991073163109403769029248473749728327679494433953517836833341064377599820301537278282466023363787859735186845610429693295504691021535489090385028570114773230577535055497912004343909840440038407508241251758772697338690714989419400820637284026381595228723616214495633527205438038057010814679451475546722648513859084931887052149956408550172790426722543896139619905192239336804859927749862619320410314145728416291686100565787827341343273867483986772853334852697576333080812821152085095124220434557257001289170929089055662220344938453002759181609027861249998728574945547417833039122377346529492102513239453250389917309776021438740025123794228537270858013995886540799033596026239581944142918766374274030848617836383039116056122253160824277316754007316572889001937545925357463577646282173387833265412647580903941919390217196219327622029332690913711650313322540040093216194724476192057691228186223908990038177289876999053609067771420471464065181296258272963394185479818200406867840056193693400392841655003868500195192044052099641753105462916958213843061183474785414394398201161643481018883143616283978764936077061939369018658840126298125047145526278758274284757542322834358306990779077899414959783968530947322716064912110257934312987172938847002219363471591651669641540424534905476340819589405237886199127256012622611297913728342143802676813739607086648083491043355732720581894848277232389476999348882594387458094687449241164130740869509547062046122564169301364400315788327976277534331688782929925292427302933370011690178976197906319400474434405865520105299041914263635009484230007756622077302730877325331806650574465397779132423455801903625824479383542616727899988837251189418195720853742115783711810083270666688754350755508451919103403583999119101000986971449143248176719841141206906438424380382168027497342763559113355833690842020441741308138744391338796773054910258605456993245722325842070564708311455197119166013948494526411055057852488747846205874772463479387020922405148352544628380885267303169485204141299125931533134935111232624264354516228762143124034316670489500311722401391293983798804572438121129307013366631363089916988362769579636996364227237836837766042671549000480101301286258064267896310042209368693494319449150850587085176341681475638693827254733369954222370077189092441149667967358248140363975808949664547328849501640012516883191221037884667034235398801758704171487996282186671522107261615509700239254257838566526358916918892988420191988652492913930607735660725780611219987617141983186282057669920047857852586742561195245235840778852973606398775359754610162463279547463486164836293723495009866739330034474909571206758144156216282128026575893868368568231033569091635983614398828704521445750976544488987116423990384764762827613247923866815467550886218790615030381249404545467540098375516234359504615849488113624768415246108054947310571166069190769467802328102007507402821680752659999315187276532405212337316340340857863313576818993101870476673445979152998041512823199932333855189390185224376022423631077579550245041519222076801260200268224816696542873038768703610567228248006840982390404642451843510177022563827042965013086790340504427704006779232710238919508912215896754132798797205274511062758752860502503219781931113413046434285875469590244141902585544123609165005325930374417282627389813913346220058426553521577833558980025472643088147652994361107094466629490354911047737250613043912857936067010621562090133563908998044219941283833992019476682327248016105723387646225101436417081890375011502589170330905970028283938266184978677407344326191741495581630928164009174406563850042098132993582851371873918619346676980405685843858103535764662553668632102356693274459082903413289464749486492489903321028503262117430636365501749563900119421688165019759785101089571584274814573118550311268513953457492178950909459184501523148349672255941571944576438616003680472730974389176077715069782556027319993832723204032460814349143028072556868039137276765884373775830133257742886250210118443627471144253676463540838693789583822512221539152412872257968464555990118484212565723832077174850659559892432874610555923030183134586989936590252719382732508235405497554684198882896947862471112431748332181878886135890606951936194338775901675747156887493862034804064631715060921393887722207835903677430468769822518415615090492124921136566099894323766490579278219248442977630825027627960712264820035956741543985960725224459262879717809506713047163676457466977395178374207263387051093935399858725121625003692566771892779436424227732391511074847108989191428453357822147928452661846764469730455364223980219545272947611173349863874556037925374957784255388773747352162891398421488933253953094949174799864725044307618696071415007882112148810986943648069397268536223697018509580990150790249710332824631295451200179042775917159495410355961118623520561890682766041767953709056739260714615337304290786782811690328370473009759594964256052286355844371297610708802624357572179705712060369106809230391844695120203721475680242321554532682605961652243403252415568672939664168525819736453075538253356611682320401008615332643975645231571680507785999135920129073173431494825920351518518866268831859329036872300987864014211121387534411874565011736991538661269882077008030138659811615800823963223131486890352958857156873674841486608539842062698806754853208076008034241412405436099653769266880898732451681515632174173810677962184052243959554359805325053745211359652299759849416372030626220152954611174037010141649428655528097328979860304844434942338894423234074781129390211097047102990014031482545644166066521606527402083108113431482618317672751641040965554144834978638825352746024103585369218368460329857904615525718157035519508584167145250107617803089702115559041265568912953643950066824637953623419632226970316230519719857911368010827721607042587684900612719439258178654621841995808904820067698981297164565292701193865469679731304024111292296114707824168830796861282021626596184533294343816223836774627028320729991447497336893354616148581440447851199535125772382156234198238632428911339634278914766306356738946073599325014623376415024024006901543863963155264533603780231448216623506262357540909437051042851712430614274363773419762188126014960639246847016877078353679736199481018752474694493421848758245516199456584422069994596831057453098948667528290631472376200633824317460912302483422474146830521395455656708012793150821285526391758879430905727448747926651880487463644280165778064192780517520813205094269349341710443706470596598397853897174002671510702491388262515373412645250621527788812482923911643595655215395180525215671270864207665781705381679257223140458727645222409162832706783846958125044655316359910354065985607355947833585519663200694446670913088256515263053826743601981138481196658255988594272328355583144521990580743111107423766414889135912416757092370813597878217082545868484399485884024736764929263579023897194280915365164366119461910118830578301550725446974480010397476931747025401224636184048399025692294771286210123903156847115879881317977749788476302218445311204170065657388302881812220288052519055704585734163729196843578471343703651081245851400570153888994403783634156675349732379414194783000423267528220554825250657864123510533971517365570801660410221089959072593245076574014933971906076777521104678586497547437051502682301036650745586294101290785941380331512242746780131985506300663052045361080197109461854459933386254890098364018675611114880640451270045339174069325132851504289150182098815338559443681117853753050749702129644987744568015396836822096032096590256336419446898222834423098103298196256708899830728542073026415252305298686093868440714717365510825045857244981888773231696321383030072656157898374186443876307584941788239913444826364379191939811968858905136852494049701269868365348975888541211984854393126784696628158998211317253972793456595831851516492250504722936409597277740987892817410935668378199897707513311324469775972247007533771044271893891157152008672668645558586527856703580267001683579177701711648670979351585082789243337155176120743940735285669473276183180318426613959937099315331175495954734055443909863260651550755654701879227421072184786925165616659491305246457039249674495128087998484477229991433164756179945631742138285456359656748557733488552498094279742366073986832015452620989026856347281201202573591009508628077019764697256126695912432740395456284368305263961361758292557420965103373851684347249348876375949326705208042173011438150514346588119527092952923486891965668102078259813705939347545540424094121804529737197139200835244604437449253267097862996437660995955138046946673146201443726055008972400460063009113784619221341506353349364496599821040717222973847830182794288018265190909008628228634263309233329023612347910761085750811237507996156171442981033520786771550077886462291894255240325528723769228555408096218802620872916793307481323767302820186597708765451094374597937680130560475551442860808325466869092155495641984288391972181061440259259416431272215113379974374398204373282520102741842346646525398883230631016882868761214188287904525217803315409655610182741442933088276840138243088831947231379243485374716152118582850771703618772497603418600000663543853772775171768665397158718960569892863509789947790907379362186254688067623267738778186758246574045817528870094681269054333201284288477983415763348038603864524651746885435907026793986675660791670644560988405019324280737019502831841258058966876910440535225948807537446256376954859498598171697984104928741288789273285126926508006498635266915721711874068125100547606007133688634490545042874928264427678637910293631039818930683830200140652658220896999814410490815978089432681636099371453858743472400296095881528557090342102083021465905638757387786833441642977888917862066286727014746644143876517249176466216477466278999752713511470771548525523899836187059569028714677590410985530305719129612769824806880277940210561624109670641725520334545914182964312626374232204239423619317575843680529879059794467346834464883321045871308070369964819614738967204922864329895657149057362303590929934664456585131479817035800839577308419350760771243795024519118810300409199535527456953317469688788409607794971715294775323253301476958161146353663015795245318165970547716115423419711372862203957701799623061202749299961001527926859983897858673726353045892780285286206740548185607619731701474032358478718203592057578854793203268848170558110425344533135581541468950321811858447093062595962758474185199887915171272244231535779161924238235909600662669682289703964668643961108963377155996515987397523635120635742446121415070881547832743960519386130802002066834244514681182411322445398303755771384598766814136539384105162505542605274368001420642239842988490859252101885260194167802862553423398040800396847943367931020128176943994409713155579172166620084342987511364651411756153432683372034683788177897686447379240836831605209790274845753243484516469803956261112365099645925529583195905751095382225679140412551829995411662436662434295469201879085965986629913039451828135323452513151426689747008338851488061022561087865279361540309273077162622924815842957002796718302945153893933441860126894337183495870437153081187211587169490914980848177118924755328832670169801646032198140597384332448519485101416201120250077051528201493634793774993762243750842326351202969643151617588015240724806431982735940547228386982543143115653596440280826490193901687860376467543854063055825181772176171669058393376684460067673182453214618855716549305033384690365969179613816723198923882126623489012260339141913985660656546861998687876291176043340696304391510789608249960814026251018445146234255385411555909060868571254604906751824518762714655423290460807752336049287705001788273826931991161556963271807143723455913689787114354575147419249618018868793429589373324220637160806302402662067696963266976440973255254750158449776105799834788117573551605467305914460974341289435634647285714298543554637505278997871269657353925263743056232654655820471944882042833200373338863898838413367010745686025817639913030697814644530101481324277663203812695985334718527849445496123758793699065748949677640404960471693237293027379414434680791870767397899865918753928129180641479221503700113383846506891362073060619498640262812076132864318699199828765385974597058571926082470747110670442833421109875949292538323227268200444787053384428702558263786306778325306810074950907548622836127238393399178177294555947570825694774679301147908018895575326708876053376320299970125033908795801568398876834782574366584601711121677386701583462748641583893562953193433468377951507264424012570627321438258243001111627328652616472622376101238322405453156253409622007791726634250240445616342499545783550187649565800626197885568372784452334063936438373457712668158373352193642910587582528521993985313266316941211917236081773624366882315497763980143137035686078116544433711952810099382464021269124166010114188444053274463392276378866461391446453834028667432693646305743291832474715896741472573096560879066217141873722668238504605952179262996223008558193948006046757643920930633392777790301596128114913123148478568433266473898673387281671344416478363526718117774467766314925752080914902626463377766674413984845413870580587493180475503134396945940673371175367713458639172531307218808121855127354780915753081394409262029726657725589802164603240263107846736478999014247856288194878391873994383589892312327927430191858607268457163442888561351479842813861582435477120335857812045905195686426513614735598466786938528546067226280270432536313126018015613729004758524465068628758098426305173036477467135851727089772932477342947011827256999213582762393797962912734350884141628956223849407029018955030393256226349397274372700900653140740709290813978106372798736656994388281040838358415345935362069378919689473034639078648666058346405032887158515193230431526051405071373575053084168622736870993773459418060899609074754025207513213607056716329479513165526678881358238434515741242963877910053391339905862248001789278905433105378138885190138641185886474224450120867303960483804899635156516217078565099658925541330649220036313118941130649015095586221211974895909503784899047812293902033750489479046499206079982847736671715339843411078922353867356571585188520886751385470762631698957446207370639198972782597611262823162068279721636155872911914278872552615791251287087751068466206522935780899194311405986544116950670127641046862086490257739701049651771294851747857187558736967071376441120979860963674766686353794730536671643304908327374573463828435314491016691112429667330133166485908971188346435951535279900644554387184665005730980952398095933628571219733666602873951807801504168821549806757196393679576545452465750732438706519116333271714919695366497383106060931751929366024723036651656416295529887644390189816291063558781121826602611848124145422726183004248612102846021217474674668608404323254833830659406172042571917324301775745748806419182993564078343290503132423111362230350044914746322555795279693002861747882463259322377483753899696266195388940789944106572095811824857784570399699942694683524058156544247959054200164097796942391524656398085954183978400532391318338334206077484596022911211839590082062590744460789611971541279252686972544815557283449763141402481251063461759347424046961465641488308467250652086202845135073644344632620415300544805656334757546580562682637681455185201982977316954662679492691708498760755109904717968619401079807204512994209396760571864220749602231574263424752688403680707082028175136708487352337798078771835818331471187636520412409254326166669961099893361727289869817724332596933267529953259971969888893822599258417721080598122345858919238891729833322359624173932057181996906806358040904012067533548290471252832240825103966536822646950526365471534171201182130862404710437693344177074880953777887140577971359399856045074828247716401262612354162810989839912766924963525611350037055579893588349177710289208947722636127992761671722710606732805665095376213603220746505168289879175361927471505232979290693337506130445366712436136245291808796556315367613674529944209744882490283024001480233757516954145571576128049884230807097263982281448657867091527650949618128386091253294839604756073628091478955311048974440372436759739696367890012760559498296420625951544339469471036831645121911513999797225481368175390842745267397216882648297416252955179052331979012673712896582664287915940187591196398022022005818392520161070388130258703867648049155757741320662098305975717409728555334533020595053605454480753089319962584549512415996762369945397009116078104322286142148305964619723115732801962221348242121089272254884927908583197973807610483258600739405465304956089888884558666643045290644502881666882781030639469337678495131392223264425444816906537459214126194409513351887794149456494320398842921804482714521189386512181540510991714762813011994486588796943092204782884467299102334780094066065676938153482881684922462611205793858845355800933288614134393156070064659077020162034469363236179632191299439503522764965135351206947532277796718426308763913781876579049841556592118615902950571768383851295034948851783408871824248968020202026797481658957863589091543271871681104716755346253129793332462228658040364446740168977544141936790401592842193648715900225981153256835516158358585853714799722922162226939175893868438881575245684716187216075881888358498204057669776962892891704287171466592672737822750178395879375821689302867865888354277454643872638595400406145247666947723694716789294180787276990775552687494515140423326340312108136927994795488245969245094894170325748047112288724947500933420606128724328588902376714107319837641830632915660627179851404223951553038119256513014409493958203405102214401729608574424889396218010801203204495918463622939008504734214815210122937844670600017827180650446726016213540188991167784563767178628119575426065125820773265306960037002304610935925051574045442019022190916244630066228289073982736389043861826125051307384263113558779171118441919181760626374540021609166589375818933760810591669915310640321913854785862734775144653408127743222396640656452982858834459544368404506853970113001005883273752057906653184582640962195434762180354932438221502174458370143588979309234496397639409146786005240083459451295830214136475984078189253680643749588797427480132814183190892202088988940058803807721508209031163688782354382765610683295671667879745957610708791394951335739014130938381716682372789779206697401317806772345030350013622460049427419632766825958805550471809524434279324505737337576116694755472453354307581863741116149182773328540108427713273965776616294796127151571061218849391282684622330655479329082719129268373968806245662251326927574262657504299524788951560750587529764215211357018884476939428787768923025118196270782878372541700834460126332142418461298913971202131246739351402655739505894238777498335775801488200812266243825563180892318522106791924506285909715989349966092399538183530592056656880489670128723013544642564681346024492877388350439383499013683261996464883838577491279115247669712154666296121706537273511281903829976383453442092657503712663950346949706578992717737454852158591415421201698946393695108145196651573687555767255909778401948080464704242010138956076721547514376034485252091260827197662691691601387943506424105574506639477607580726219934991080809501798615214224782780937775037281521013673969848179702885627340699709572278254606056583066150844977061396720136104347717525903908111580142404423111289336675408730165008678447690210021217037287930291376908763301727948346525225512138882777703036287982406232139665789997202589989919559940925174617461083051607495767920238597867268354687936342290536023277108018770730835674894760683428214983397009161099351063096472228949992380308918146752957180710691721028096279055107213615438388986094000873843026153038407136568021329832921098231415163538392103963645401353995636563929904254583088177642560368966212149034117721064358283898164459444713379755033419483733818028802059535772682820260853815915712165846232940170276150246415405247091026536745972499455611550192810396211389246320508840136126693760891363278337704919625428043605432862219908216605810469260252309864968292612043353485392404985101257936358724164159606160287339904411766678940049686872429136933330599730059815384758880735964805346351449927717930116229108641577785762511050496992927981968893275550445819333534666875844749052416023825501365421638134464160357610834129933407620425598802653175738861032906841875997529295808587523200787324729200771097521526656091997328760578059909135944219681376190275385491641518097620501053490238289147502888734014535298516552885567450941451229920593827797492909608614668868451752160726091457636687724387919005337104701434024799416179605358144870629949457320060427329235539612007040793197276540406968193016561537787070201846002942376219784631226493244964493129559595567173255175719244728170200481407410646623890143301274228609473842242861974879875516807869617829959875985570680426250050017267315267087220590482214278756123822468740093292983529050509444809343596629843425811214416997481705219688666388522686584308702674817003703895725831150263744349363210505875861537890847197151523584006757687434073080497564568800601509406645368470980095863444676340129044372143560770357909889143814958966404272269412268351066568155779128675089830808987942568896609902954416353476143391695395414444354421337910979075052219080439749856575141448702152402556193594298501544746599793731590115486870675711023271282413366743204776923550706174181084467103624265682386913968075556817083538051708327429372321392564175275677293710141404563253964502622383280435279682091149718917076438381810805802991090525135869598461369585162693023812962081856042079020260757069010682222901565924556684361256436394242858533141891237882618355467755374066961808372739907316816735476806747850000513507883153104972959072430734847708794292332749943126945183393583234832853617708983988062937834958995113308463123154929673221038411893034563314177624812616136001075605058586540284440611792510100033623632478708856491583832136562766973711497837261783526466569017262560352211657900976813315806201042257388293827843377112581874831423012245322181191514707573570800734405398500288768922384676537099324391262671655252136697803067857668327191680595428799773782446765986954319324778289319491926900102142743215652517782671751238102423785450242064358509509629125762981746545904035215273335678952637084448562987597726920513269402241483550153207545101612896161973271993873568502754481410160138835724315711870358721973388909257181499658810247585813774450033241786037716276065114153880722034409578581689939602846956956730299640968983192107268887918832410389377347222416522023611952095240669700885869101869454696988183728765251367850157131634488836434942202932269645795949504227872373713966554633030774893778915132072675119762552862916643633610786552707070665985939202172771196503379079294975594671446541521923572573383113875915986286709111612340899750626727518439164522471711990899736722818297770646317942724473964366823444204706984865511466216666226409557216312385402104901760551919705111007301959633802254452330002635724854506044871597088063552633594183352294018860503378555050887202798230819278282747950313497653119488418490554635185427924426212286221648648687607749006553440397643490043197806977437772913816507437049598995021414842087003874400322449263144234053419428846323971414021738825480012895521266474761732172144584034839409277670085136769933913544462845358687251299441466218079685241392601891123201031194910109634863997558114673003535806366436824549850106841493370974749695672013274074989369462308282599855935168392714277765657806133819585314803292823748826698618272848837237240416858177434465942898743767979929343290291169960300357691183034481480220613317075537566764328720884041643170035162310794500514519030407589663173825767391738751437332356170032395179396428371873572424930795204334476064832233745480511971268630853821547722019728124044070969787729245575623378892836085628349651573195102994625347523416375238189295841429499210635468372075708918607441874786013948789849593390262334099308200169625121599430856324383088423778244841350741085665852917879509849217962369817506137496073427416384863804544413403346064615422293913477691788564018844325871067489413308394898135491405426823132182286475977414416445969451627278618844649983428280170231243818624205060062925484526533361621169007820494823982430666042992365750877750001403426195950474093807492945349325334332708837987659638596967654802066160578194123138955063596338229826671230953451028180547661035871936112498942599845036948322919650372245050793050197381678534837092599549681088903179914305883143623177525236982447903878834373721698657163777104820569263223530380889350659760262041190308293145867150644617488545285202833078240148268338930700099336084260786337055078149447804520969092773700024912206552311667814046285758463311428324468097921757896691826762160742133245193825136369237396659849345679467676185435555684900373657407536625466317917948082054960024276221771606026239978009569314687768372218834687794753669366764459243926367228704798577503110477208793577618310239745691474529297913978147200803419434286784281732500259427664765368166457449664536864246814784343947280101080258644554463429554694388382234209027492112329543716929907213070221119458048932078559804736460377985771210911963818490142475018022065133928630969428264248695249387923036459594063018361575602498551359155136028025815399296135020973862733133380487758014215222817371812565408045487225537170547621916303059173921563294702084563519754823869418258603675815561067483093051288418325788663529339825505930474867302017798598229927264858236053603688011668386446416299398357948155020413721997055341296712675624521219236045068177358238728259718157736445046284862107550201310280866291774507172131305237159081677800383984903755304207983041176765982251189972704034176841555313539296931155440425039236291145732250800432231441549139756745382262044789288008227158780454103249950978254490206858878566422781600589220069819381979784517248784272536992492565873414264610841527901106131389626183618114677109040162120632045283171917973304724718681517617391228622281771640674188595801232271743013008266263684146884945785048716001172421036352271425518924881247297791665568164743325355026873180621911700291427966617928973513450761666206922392232076406909295241160947387109389095702218822435360094108549819263915724969572066454242308336008252963802960850920361127026387429895752911076998272655527125547383017592369406115388260743083424381346743471296435458606847950657419058928662606584093188203837432378003281204706426123920195283982088848166199889708820904921155393561513979164681952263267130224816418277368428654506876007448437387411166069101306355597083323017312140138210663381609119874884917943729059645810624812566029506694664149473572426394198808865640474897885872869452848713753247696284217285366867298883050513782681284671411964624186593086798950057542925003564657639759761594899300908923708264129014595233707548258550031754464763269971176548415280279903504132419497888550528800754312760050908437586570094265118255296069198308358824863367282397810800410333699659020564663857332320999294193745823840360108313541958953933847055197694006878799348280718820956651903051910100800485609898949647699459055848353421057289104732005253548203235446304957532714241680389117667333541006515591268037578375422247800132967477210750314719711439956011354636939809600772063689713017638035467629053594395086553748859150794884798505651865765974677881407355568463004208044632040974895987737158667729025966489627184831031263272092526138392679271174747688478491807050003334760897560438502386442190122474993810529741168118956280832774661774727707060032504471228387826065041416113849402574780769548622828129199303115730998978646992841201865216234885287624438365891447409036492890502284146253792988349184870143628856610002391763682988326496947910855562700843527516889916694817517816647594798085867623264038722300625291617968359411137808193395843902886758243381750237666639334207964733191823582949820818683972169975101559146755378259345367114144087533306431083438376331387758131159722554285005312606860684424058300398788820620513562737825673069363300002461156550660930200773831117408179840863132821309867842923494938216821765586852561977242633527731666777664510891371611605349214021023349809459415539007940265085423596729185787153808182120121118110013550549124162783660804577569919613949034329136195553692243431940626837423422996075503199508977314904903878416130888631595507637948428645654012379875534038963073324345699830687179707739854082922260153199814759086692223277319675017778745083128920438790679524611855319430995436398032697851349598012932750722453796755714591306372643257015373509517092607630384666934574091276626420534902865908859015940779085583436348674831512228502496915527080752825876183763743577125338000923837171451678151672697330665021889564117897284379597457741555989415082409162164040842016184713697326757860400790028738838173302144411270064719131690186297449551100701271391792272007980897497551281319920828338416849382728870080212147171469390041882400595504250692977865747053385103930638514421356803012478173607621424106859519227025317005905103300481177588888924285686873654440150611768926964795356814071984913672549614556571834008227549457382200832690520778678985460659308920474871973910465936401203915733950366830761485853814126494041686077071006494935818074928081462078560360893626148184136002910327683984891479627997048689935857098887016154679400850004958754627129433774178869367950583153177045642110494539734588025263458991025272866153701353015259575153841176415689169600253327012165626453521922586135184457029276657115099686677749091056782912251989555361456187933852473520535755609610194132296202283012889013957782851668849172858493074543097792011922125419656707670709234446304757346273237889873268195659562725024771241172684819840274835708248961519073932775870966714047066333246482790216608972330232837053765630429721461508426577178018663933754414629209483755295075467292931549057629917564163519149757083180190306437717540328407072754224364918528856115884582566122812111199488819056955170307418694625712666530956849668421584692481700940767620992760287709146903028249386183355418490183290803424850193496520858453475048580784180417670339931715001143783473020160724407929675368061402671981416146899890779113378370452250863784908828743397854752600539664511775614732474962126790559262813079439280300131481253722104106182039470705831148175848406631604232713877490379499722987610400435469466964146307444630319792676983890178192267733854616952263184501639548798722647954649754789481480667555626245923457922512341892700169716402537889364988150640357694155128502700638538983275924485712264044689214161113573045497761323807522565709980920335222687925602785586144826774475845646275864637574567823400913990116644395998603385542852814813755046768112729060754806915923010589668293502278861319463011186622014685277667328549399173045469374177095431243406506279281763900016151383805177825156018116686780834090083871184727615817927584122982593969338492142388698293820443291760588878488253826872157284759896071067014179504012575939920042637432314836461339906136870450884432745304786918432975966966610235857574969979089426964252580454192720535131974929445265064243948737239236027521223687248897847701806602451026435774929095144074965644559169663465470673650059578397739431876864946445033493623285112373349031647081802980899968397130537047461986832212099058180895672004993764730524832388860070615781706505124328748830217982322025944595297110834010901999066845664528461533003778617143800487964920853388772146767971727628604158782554828771962368016004174402943984317763547495539748094442434276527956003294747991082154098110311712124630149377823291517568541246258131578578290726184449084470993618215719612845218678385252788436999401837211309574732633050369237482412277327559045678331433233259305683599122052317695731322572204379058116970023462928679430485845253165341013705433928520199180206737994603714061173026775038464092242445246401596937401689629268964946316872137960105674316591377091940390355644766106289583446906820563665827047555739176844175998682815614020381285824115949376044218480149455346152137403048303526934956204915806312944743219625028462351115921769481131661107521638094293619381550890661425591973759617806530852630552811870248814066275417986180550229143512136924351395907385996972608194036458002797340242017697690087925959553706367374662026492463453779935885179167372582284001504673842054501060836957768291541749270291326214153896849133050925817505356922968166437335225222595398633873758239440278675926144776070770162376460895588948312027561264184040546167000655191363388962982010950046651729004448841778191515798053281343675325167572562626292521640262204400799123352906332733314395252278165716312406085962303886527609740029702722984902590344804621468860757274600372950556444381921952835448078226971504738833758405527874640685276733080450738545401789956085691642614745848517582751757738952076347100746350075793764337477497908060902316701298745046208514715699366324674354468856777551417516203858420736944203564620306670086208064374142895852277823203613321585944072438197745536119393121436764602929358719302875166185506000357470199660466649391883147676698362086168951887505745305327405891646473786234658223229020157902068187644278465943097470885038223591877937807888527728618224157181499874905994287919287420854016474033788243388775480042653126440294422382723705241649107875583717174270677573388501473152260374351956012540593322617330807249992221923145918936405260111397556989437345529833470351080163844261704071742699771241802499457581195742424657994596517869212901222519185374209415305275591168216955225538087561167857825656918726380611908187639539055435849607153289592583368801670965175856696229880236805227871678548210262292248971250558044326413385922660613031007499111434129148882193159361920659355669027350589135436563841401748339173414628172582488577486564725101045763293198978185518372121902846180172004865587620729107753374653952274973374649101886241835128998677242133048120850634924124332912039909357308650250917351357730144277656369605171644667865851408769337622114662256380605377870588165536575486684064037111465708531625075800413008299536200495159398512657022969817527007803860278016971810332387402599849866561628717594203201560352533480668982037689515783316305755579775076588564025400341360459831136363255932881286052065504890415372750213021644248189009931281808731055612021098252460279662297156753318199545238939870663207866518584404427677185641562432450191124762986537272712446260542349763167649756786875613789442739068548154397112986348624548111580544488968985320739670684786841364505569463647086371187299018766953490402378372829989929515486066042324578288275446124418571431844385133137754009488496835818485713977349455390179555615305549554378567096031333199828021464204626718521815138896895279483827489041287224604999891935131235111798755793315482544941852786127554487168816675271135399821576030660102414747520374416914958242056554202838596995785351634718400176667910268379018121565290131190010536983127499381122033399780070495220848939892346130890091457024957525193222564521368097627895596454403286147677379759554077402358481120861544384775967961138199414913247976873884483853507405005788203487668845721202630756421621006457054334026648571509139312076203024323489935155466977867850721158626800212313449812377079100192637152481211229555341305021541407158402290420253437289511937041579687190165834082842949453757676880435080227347503213284098934787330016161732496134036630717769943980781365624088948904164148260102726181055511168490124589298719507786511757773749773465380452561044714633757149992830869830578213416748233921447021755670627008082910151130545350920959024322941179575474011527058769668477822339866509464768852464827243420962493572214551260732158702399012750348281076857241098196568135620207382444228358176228766029757387509655971617557247050212753601369290854674343490195494558062382036396940924199129887915703724494976381966488041185753774533027738082998292683405847741038902170027146036987550444832322114807030099037786418362480445791463597044155422827255232583557793793919835686611280946527839997971369562686960436829988942179937733116096534858919706421078124216995329604515736738593873261202024496367218261567727709001376853795416539074995110863462263320575853817025450271430499320695168024082753737854232718784167869610715800801201304805043241978220832203333199103834878076455649968893453388335865891114710050325846752748024960473431625669071293366900753358029983729141947606612266544675214581945221191947096511950350019268264864003341336802569559381878696153555727555513692722445828618261553824383494799042071253292814336359266729209241022594507435336334070102351464963341362596218383356619446878331877212905389419628917915450611185310102189160272777072589764576058658771643920731555961769953834764246777383092095542615258546559398830039489992780030179844119718855255718467049656216488293482280358547304238969178048647145862761569896273847513677540188057167671768354552140277558976359503246870296086947589001071917675180958817995064417447254404841524206071074555759074328471015980473431449465755674027411452186798034113652911091697358764914357376100491407510544525434667184161406171396009692849145777522033874063666009222643984102124765738988229053456714636749902282991108691183024148433647874317067555931559510169872983731187095366455059092213378410995997770832541345817036161456945388212180874874641570816087185127741114471843060035483587844578963009493744669976538246120463978101789374749412209357173649859070559740032682960343356502979159787302228262266929112369277866727051227935668976642655012873585717129501445866325978310890105327811752738947476248870806259402389556444546815254738150503874525287837700630378455349004002670038306861684766160697581717557339694718380951100496025873289185127932381584812582197894160307627129089045554373283033208519516830533801514585205321510006641580938272202887997485523915927826019322349266509749496390483465949855425396461825591932062951329766852243549072396366248195782931589543873137034980046025836314740294223147646583152266995079869586712909589051573809173306394114251641901198067388400738733903970731466999300569555939387296758274130458369957434197112144534814446849079594616440065792073677842213827422783661445022104905479651221233299683319689690078290882247551525698484053678426195189513073221792724279118512953588729613124013074391347616664993845606344402120040458827465913953312444982285334700075549198174606650952700866361631099795004324172017009623624773226821848119377432617569025134356312776272839904403093751761733131824391749800349354946053651488253022274650693876656057033228895473858721510471009133445631035905984415834861038767139109869835543925227447083063488271837240864354421466768102013260286434509166777733600463559173897217969562274177669435382551862811667141286629500319043636997063229354396168245497607959484376683745784573677792432599122909907351724311598598168928576206092702747348302852804803832202925630125058804826177384891266969924471715027582261190147258742906149917944037755921458322304569432758378498395052651008031731842325745949532340628082038629337980141449690918752736621197412372039059112992971316264213108660872714615091689832564676855237141156224151365926761446722093499350454106017334270577061135775295265799223192400927198693325376400374048870387940637224669102354475102237430083613376357143808535911729058083331983156623953736802401443790450318174886820953554544378101736780164422501335517600922690116414010030759581010504075122078764675041425720484440912370946423150776223602657494107200680338948171814079756559688568982805116424249995586258200377546702246777718123307681199159370178289725291014454157591833547920299376101128327291809866200721594543037315616503929539455844760957490183019931538115803701779983338466297061652989156027533699179761459670724335410429974500917615560537956157475486835831860135244390854257590645751203194945361310239062733234384042032207517516417611567898282241885113734392648551808003599034599753071201153857959375126345039283132208641540378615519520196343251315273625302122469912730034091056481324064241978922896410676787333965613257238425106757533351637159188429055871362566628598104285609460563371470984400502065147027444373397029305031198602301442708693986936954658608548129150441154772328609571950223270995518716274356766229951044667133786817613636016310667791370625191177106898654857838347057130921651814111200386587797911407726469858696610376701401922256283148573234122150226431319576900205561695073004527432282758000891812582706990526246463993603364852203467231419666042730368112175698058378852061795411709432927773712556917126983243558950939474293048871654102680328087827296775980418603168680880716982918266417097406725025260563181837928521843804093085038804130911230014036621141558607653124464858687402398703884947528728578791609987778696046358808378560745493857636652100235959533850048054331187687803563448051294412464064842831100061839640142720218471117508943749161133089641047878225085914233234751803563484891667624562415331316173342815380255388595554576952772362316585714075727690234211933373250858534148188680230439827760886703705704874640942210519192629111026893782806183622777454231955085437313494926102985826591506834284280146222097774100519831423322807684414224166221786228872688229725147132419755123439547110908217165767956544973824035109952874472165201150493711773602271496347563249321384479525525880467524638647013151671527358297208361828594821794167761936690818372702386630533239022130648615375988486854866227682763220487558285039115829521671896026620803808770546493891744185503789963205435040762918870455166285755552093347758504270299881305070036792272148074874038197553441323371501668870315747220455803359536383144476935388307305938967597273394444732686781454277479098301454817580678552294353363205418279017493793652234899696449129353537107405024170316263350840610210296744738731866934049949309421106729075794451061734544169159316026704469085842580785264287392844692363794558009116838083637652764063456006631059877414034366488217556509212646604193783704711967361233380768696941714392745946690025684833465618304076990404159667201454951270609568720747420149305524790064894928720912445513354231980013220045346108438863925733122810656665640581319030305231098151584577626689685561122265671921168317944581539038726827433920594340583600167861755208994470016006411679519084209220005845550073872876520586670473997920238994042728076875337473427686953072414364547739738674919708434501577986724750966301925528394803536821499433839289691386027872274950520050422882863574925024255514582352441628238180973712093415888806262800081120866429350609463678213089161353332699857274279827251038201175214434591073789457532798606786321379923662595602243433319235083248164333930121459337206686485898935572370332904988034258433595494088597728848977172766718162344799867069648234266876410721755695834184849903880400399615994589876232808843602999930765816609360416207382301936671335567493695081047056721276643705475172717371018890318516930272240588862727769493861324864608407999609103354057946652379176820791747268844827227706393954842560823251681990316483001795496264576804751873929649103844708743116388062426587174353371082837678499045318333547965247091894651121682211190655385236439341833696470818762370786777773707169803351988566349221691223675275447424860608922933005935649677325268050220934222775107736609692246497198338944994391669261159431122574786081391381581452803571456747525927545562521473298404988134449163107918532832217455232000758379503350473284277670698168565975614171765353007708859406469746940217248706724554536098685896502870935327767235064583725622307159714344154730039422675667391546277429180032731651789746286532899594745717895950431967819966356194788906367633125060958915452805778065059296136847107794167223338802176964609628477248345372435603305707598553518481142489237456236340826247183842640523699788248779918977718706122284722567900161967644343941145149608696812065767361627479459575885430146494041827523990060544146247658958912598996739723333844877144843593159688291883672176288074517070297683812942339225150125327571799990039612575359106717971291612295663125793588177773850982952487814917556502542709105297280233341541696239201758816387912182295814023571198429089285813885615967309998745199038720835641919959887479399690200446445910723645471441413683454930070548805465072495161477738907829832433168742651795468267478121785218595750902225353940755161901406880595934222348378827797284261574979624799871701099950772503019290461363342307630422537726189103365538755880667288335033274539823883809225657756804310580205380577695625632439030516285782594851018033055585919235330917897840616630303944478465404445194813024200099359837425498727177873686118409754184326954951053514228336243163354448816231235271120019160754024427529834053891114276202472520680647143848479540359068763881335720492044903311795369616947497345640201167673687448361526641828556638559733850416142209970297292962432882162233618779611713934488787343075263027442749433881549633178135692041394471898792381998305180945904802518012268523183578363177444815760649470342467080814821778529105949435437810777403550476087925949257179412195800335484776030952631268434588606794596981120036153661365476102425771501216291899836363492976391278049764548588707139874720678399217375679128481795426246802975308884578197526708721945271646006550838231068084300364711079959365959947528976757004610558671268731085390999622540568211009619693700803560866113094492061432522205002937114146776819465779425833950348880178212869040860485047086854838278415338267643762742741574548038910845122027240399729110816387529478877639215280692011726894769281913822287859197785672232857588544955189230942853485567137856686038993471147989175698992510181208167173995315754268688697187722715782887700471592800759588119944678351650431916545915340777814227460689622802118860672190545939714403351664909121130664195531747451245115901821201416463414931286215841789357375786850296182194446696372957610973574715148770971845744109701092330538506484353507029418094321523820667741926398327060334792631964832408329032311188526937920210839173063579811059111870803280090148263088722447425024992547069807312782300751650064509779010211510481098489034513957172640423978965834354036693985303676679484882781404159402968817222597909318016534828918896842477164502247271885242725129040554009087163040615627658442368529478176199747592418972895825201338186167431632840330443147666862077454374439309787308292878604289065850267683968913400494871497456950346953985659378123121108942199210805670754139842404804741900139807311061234877219700296099140811620131281977203723799738782753073003077704126433458381161871536786418000470462864304218340672301256599408689783613261892173944196408372700736797818987255230909560135331410850661893377780276805090839570191260712241813275880151138939853145309305959580846918655139071319623119253197792568584630372125804046232306548677679209929932475540190720985389835348801054699725324323739828771178366942568706957879939893181351190427531908970725296735683606757902540510749753672921211930801338975513931077431349114578719242395115519993736363499032659189352717983191726864583437795149922451003622324945349077296106906490166157161192733268679506548863618092366318113522380592258935000677812101242280097564200045083826710051895509306062501389200662732118431553620733452735851232639883788266128086227922235716260813579983622163312287117338488266345651068287958755096848939787364932238009981151430426491982396345896740285312753035990761973077182148495530133842181176910856760007885350597426048327241123015026043375456346060333615214934286912094487725946194499195002172563208774484332026743327781037080250473582357441461248441611814264187720613692444929599572757726633226252246946017250650053075618633841385166952217084002157611081036188139830141682773950483385806654622798939129035781370000176178634887707212462659388073152780116225995855411088268020920203828225902142287971345875845262236070731853162595258916872253140284145432463158161561486757168939230350730568572953622112963985306240861452646980303928462243055414125389780985885169008557969302317391316900669150296623312686634097898799154702406450454362976992516010632991897500536538937635413365404523808245448542739449676956829740596868648818556678190980089117521991510789922451546194970799991248085442477033849232233845347269768554150019885643262509481384068186101008768085856808617019777897626817577544917277415589477049326706212123566740520272713903884877733381637691501769099250194290941221085429445123646110508451786874609962356533281543585890968822264384169507441758818244760933726175512515277107342915654498506753249369782648184180378522738892398722172146728082851089961886521881458596236953341128456867306767595192782267282905907267379501487718221155561453556726279738024823151388170791460308037713762098122062102764506744702527330793643157885841436661248950615818279402665064678405018039034726361337781097342605963722369291619626096466006356548516787828361922539082699608920698999133642660694966230460338495309870435180637769718096102856989591649199687727630968773805464206034689071595621367117515234225741298197870908510666012484383189080668493821893765193734694251725226583810863273541225967520351189605751933954584950077476983039631235153132027831958059406009265428126427695786173968179708528158220519810327162490758932964648737923098092361216609073691180653188547828462761455631383147885666433891424244996687797851482153703378342584284908406458846532561919202344177539648849218465650626677298654356928227617957758041729935898505546761921407092865602336814838047476292637329001109206748185731490209425976551743930595036291826107434015197172014618652378754144117762173223340374295372542787715943315754588944200948440853784623626609870500276539669850410497220986199684566815458261335108899663957574146951885582508713112466551099495676221520804712567211232095313635777983643331444320505765859152047327828028456776357055013002445246336525812933347453878688188415114588530918745749262863244553531138369824620958542897971361853770816005460068632743859542150337173766275992076322174030501765446054445489008075619402616231213291340038782699183680345870566567286283761724786838476710654149251409336821346041059081474305476513427635410760040967085958961633842077063564209368325932864197586630739088164414420237876209458639168276965600154974211400501179581038333840440951329749102330052737179818332914657773974889547823071264829089490466761613533931033669648113927012521061822007627098614153082240467204098997424090135109585399482706640367042323811113043698008982989468887486207686127934653346695403181729219985459557904936509206516323133222996240363598654296856317823392131530326483207960898536931075302942516532651706857269137708143831610363810257331854430248989538991070402463621788034355648330387585080719085574451555513550709957385371480627494429731113872897619513846074557778775585345383331913544537699555448134467863625283288372314303716587738608954304292284346793940323238123854288215349610774973165980922463507331132869923173918014481214327451905764529073887879459065475932583868579126275798474210132422903863639566711829816085093050244332698007441364485510153803453288895436545893700425924155461456567426634454231223311715634166250711252141363371548480531358710509927648523647920090997471757032199225383657637644465346911978473362591706139596166578453406454934187955232393341961586774390257578108299031566022634714363253084971491973191535497682424693846962181692356197319175800314775258025393043909399132071977746548330044509030698275242215213122434253806811248810237535700274835167126484889387498615769299111841068641729226758154473010162408006621587318414982131592174458387740807657384828347800328887808406646390721549597706254154205493490934501084888534842155311577478440521438813584201604599338217337211969680261390337948835198115137403446971394934819189092016400966521631585375886997237165287913057201444417468650753569785359731167017383955356004579648912269957507194101692094782346601004635566343569244649411384564014118441117264907491852430872656798639862375096009327887613990316602793271211220482685710588566771140625054127678548995111202989491389067464524067802759846827889537165982757100157923751707106049049265359807947109752606906412691472685396217489486531350024924641777013360090179175076051654571180346084750487073305580288323886217852912344807181173162550586101203907136453072625450310054924741639722122294675013344421674576947059575047829411647925430171607923738949629879432823842590250960118759353565959321000550523261629729840790718948318842818396379117110450369131115726574971103424850074529291706412543073674814763547395261354717421121379075155999316793245692160337312889664483419238399293446458706491130580377048317806566413897304963667587581596071420501503180336262142053612390256529276046527927443929206029979944484763664664758658759511220161785442452177947460508722218779239703815363212900495322289088824958149930197186588851044818930216878031938508813315120920722517024866276161003250713317537130470005557629399541075398233618743288939392505045528696870127315629365501159404663194373897168644235659044052715070276868326248878576658910699714586059118355268998061826968480180346746427548735953314128621439707096966091725627949446161081160003661785702153557061963303180850691386130637755579679354170357702633867781674709599838023608026441847110124754929308516652182904098902520681135907127340759464581578807701539452369490487761787465745821660703180479189479574521555721226066092537002888796217879788985786125499228255826346555397881233766865526329304591834102629713947866143764577445883775507313401221348197462782641647002574699999444661736271293188840735024883500597189763480357064097580371329649308300221161209525642137967220249387821837619614750071733146557420518128333406391099524990057074754586338273004543067162322889328545889312757579190685931235619189183342478594530721252707192323185976227013119513512076112345042534710124658014933921167789679052622643746735744443256610929656043262442119688336708353392323538488116015745740510221328365020232526851628233849096665376224564545926300197263003832820161369813443624704122652851407839514347822427399200781798340981090224001257998312095679629733415953268946203008551840472016334923412700230934934744883216736735105973803559446164173769506035775075493714946676705017163271000913131311201802211580502161265841467357813477717495975233079312010972826149712681376972719081054186115862124838154521963847363773307973546082076391923651006239620558160115152388832446716929364492486055203060584536258094172475013781045278619112288945489897550328264615784098872219638206239463747002440784253496451089798658841892687180613767005169078959706483671352934520336371404858141458297317588149051408935672465754179663696267036045055848036371850173968340026167239550965153522259203653108307797494355741441594698755594655072379839300249761681357589195964527670068031853983481644831073412922775296537400665849048927286402647664825628656992739364610390263396321675754739649434061634856978549607042414777969561050289633535918270802342362782003648748108575957767739029467793194194309370642806439207898713854726909849731855009506381548079143064996408112258316823696136825372756158314769470192797123476723870981126581073838148619476962198798598734967524459912392713589020294361205820765490497664712290670322138958152291337705473893861572512133204734858590247328895159839650802849814337223822789910478076365000814020544894783162405193203925121102640023040017267334049304300372826756225463546245661807118819245043220112300603072887425448346281477027968132598285593814724850335018709981283735581277326953546811824139913716865673308930064598740386544023368799615957982883620511891927939895964861773601320951404874067649855448505767462115603487988504699222587404855380697804650627828163800727379115811442243108634396143733984212843617108721688271728153413615493783783119833692485882020473348228467860673825011495852798100238297167920520391750443845470374136789821292575541798293181619193795268134732179934310183700036889552190694413295071571363042816032597634036647825132244091416400936276589006231985451231666354262160434234524285059511947556419606599135492199251488091708354369393088040266855316641600167028316098346704294306626939009239201908047258659024192278366449686201893324334148832014759575207185521147809103474624583913030515669639984426895193519431963934653072330228690174729362043413531944748873348402375400370167811926696204987916535062140437546937390671017624142413369585765733559518812135698983545056122824018519393103465329727570809952131235781965967920215790705133755296547496491305247086963464403975568813887021639879514868456363043962204964382433432913671356823746376122182897260076080004976435636111389624636474858321686357678557391939163790450271107034670341765448769327752868879854316692049649491688062250707938790567286263946592740436695340652094532634391123059174628586650733344604225994220391567463321230914316898649876793093319523842852533896451300958971293034328400865080890181498213046144697186845554927881031789657618880419090201197349524192818840973392162058396842360007412231347322759209782762871145369909630529987795968422740919634646454467807657136343179645469028681750600062642827393418994036313903438664727794104781877481342582567310820280737577718834151118460304166131865140008144942160441482929585315208222994529781680771438019975575038224077906367060330780389327673861491502251740652405611077271715442030503102477904189053408687583050871024747409532390439498396713629410158734245810085255963695812538035124858802770676585706170146454299287765894488036458121683877124202222549252596097191326030194034346794649669598929333436330601342096469898900664134597454682183125828275959287197390438301682141564472105161614313311824174859305717736182189857051693867961081443364657912503614381350393905559385396591879152834424963244742824769026384610278464512738530028453327288886277766068630431312394249185058048713692773135568828283195716084652539263728468967067528263535109649444146430724136282019112973555609966244933025091215344461463134993979012322295831072675147611852215517692448860185756425805634419322817343428115471892197574418916312240805065049794606337204597006842649085902480678743048055880149716971538118126914004213686997827297905022967139270115257029597803932897494855346586718348759842082471949838884933825298580425587132752429549498535725398753422062460016494181103974979726627502584743023505052812834540770256106597915252277689799051052516681978034524161689129901917827862181667311915057997358148485148353361497343463675977842392457335372128899827027641748919899755657713293900821552034611373460240014903334882076233518535077416429958243499395774705424141744053046561462225055137592481375136793085007661950427040848005672448085117474468168606409940551394872399199556946989739690174643020108330031447748079224607440897293899216775303495379990232034728749385071020401483365665177493013690300400138373767873349054483828153885625462963341221226286337561915075138725193668529250157213013800297993240839084164829750637974771583059720474168158370564589136017539010605565260356289804011053137001355806836689745386370597033125844460579209170175323908905402545583302372316867142103903723715674332002108581051151487371187518385119156853871629176859383563193051013840355558832397731908906971971880557312278294925449627889887694595459314855414599253598064867330060437825403678094663684195939123384196723502321214241843270533375252272790539181767269744251139292741565224724731525029479797039062783826408673456471806510102196216061727269890965041879223833742127539509712953592408353418055178644287569378312303097340625898513551818306065144929736915471737590816001036215770785970411629412082135119608332032100004476686208622370522881071575060763367781520750447871056933081821943920167439641352598389948065451125569036460879981940779531254629586781398455013927998775252376399101859506031253431250929656994826689630270572203201319837115888332967094503824640565445474775905477335886517531680192054412787516374073387415072311447180660251279564504075211912900305256274388707859896973300737806671836403768532911913115425391901421822972465196211311081776407766269326450977512536538943983556003916735361142741951181926370638751570661948372505264887583376631283303583646533393067638435878215469449041267204075596884107950606556954169150819952567320508127958094156428194251918901742326135224935252816792002443928478640493113880529877213875034807535025507684777145459086124394638867266147701156946847105825245422946222697391711606676801487956798562086456837708853767376390830000222686147174433757805233978038369692955247009849698302111157239871296775261166727839880769392169149077045752228762040151983683449180949208747657936588145507777803953074823958438914022069803632839795871950893186833819807936991274271002985674018584778429621747528058681549560397082030709670854727334928067399716347480837921704316816872327549963094711230378900452788090888718205000825854956941300602746597400263504472806462239834007940777524619552641525134633067828373071017627117309302286878847274551400841308222467833228320478383982191318019943639374971187382878156158183545836569457625098898535917263939160835356317165439366177629269168486224061885792536779646805935220090381574305786389433075170419692541249097171521353369359683372585919990384708889053727067781531503915368761295810618148202274123818935503694398685586893203336005085825979029769555713406925052159624547965263444862252790286049775888486521113947414947746079121598776173275637241070578753633782357169742829580885189766483637248512954184174018946701834335085696122994511179860115972701544839902188388276542247739449485604200173991151819385405339841734123141469839939292516378756333632240126593881907106958789467495841092288824639652795900413832921159868132802199438425973385720404427404185685066062009063356086024936639149394986928370704442283829895693978016280078771318664098058997293382962529844532065246363398533630970098274581911334793406122506868517102565092053190248750101159535605293036865658880566550372240242038951253940664494626673041348335559501405959695866007992575196120256052274833198931930556151556832077426855702341940878739371205848880477953358681019004278437470142147301135888731016196918829281317564357412838349067716897197970512192814061559039879331268155295683774747441427513954148581290571934648744416247160904910312203123751106473977831393177501703568270260001959690862351258697160874103354203432935664616348260116255026664533994231064794111390264165814522935475939749263024635801258991506584057310379672817064880130300340695566401927822473197547288346910407779820457529416182730495437353358466604364971953659078784965995740599289404986906891639855651181969763829402051382027221602127327059590178610332472259956565435068204572952066648350928527750815282183642839074223100407161011721873587776464386519192743727308110656844673858339042857142769901484601090668663665003135435261436936518576339178803671020666827132825622700214790165978813797428569076677812370211219679056348541780649218693001360579964906065803637664945339976623978256442217836864545024575195880078497298669087426058475699048313072346219728757727521440619965586755341944355584810543344853649774781963350849063285428904550729913049396392382976957987276743812754934464808856076263967762371393465638277262635984127005655754795197501597131217778448657648696970897612028195969870875588149612527561574051422302071347399576359659689077269480227979980032893604580389000562655299926733833633987370804963127412997598690241304382198782532766738416338636713957187364108906112769389662722487799288483707551416712163073729176174479845242205357993249754624801293057761201837354913755923692009346102411819306528052617678443695400023864754769869373521368087032840284047728180301082315090975476946804564458785538453567062762155999435225309823563481353899586758182232446218378292661237834166505110902857556494088601311826539228088139778104972155970200184599805573901664324004116460087339402334884886356794488398423751631283129841302094833912298022756906093978549748630492686566601400194329144742847010284182324256808093103063283039381559578180649282622527894284066314307739811446607711642358270533987523265563585070708165359936645014977790784702637072422044821900810352375776905487858248826715426289460167086715595792766988786666587869754546579437513320688812859297794793649705599419532601339115306505751358133674296574064969051988721510618504670443091816990238768153262728330213904427935235622223854088993720601909006357121398591536291592750291850102542091061768859386457325442094331753193351570047038315242300356911467364694558750623913496014557563781751840265824246218083235447504819862029869594544557583283469178988245473475668372012038221743046996555690700758828433724090452690750175612208305109144726886474741228005946901490705497798749531441777474796083746492597948157459203748620523456203984508981808115828424217653978387633030550739744206405715987120029261236176824144576110005956488934917651772938314339638977586978757359688763428860853816485794582280474976702677042273793197326703832132363873544992376936690590791581960611018175593675251559784092396469819908356410524268088691659742990614870798778167877290610750141597917966964118838231368179426487127763816245747086297409393194456625756356312237163073574998489652100962160894662658559578638068049708066708713268318508747437411559028745413143214438862637222243477270445625119487559098235922786695901572938034169973746320252187354565305298940419654818683123971103280656165528378670049148699599036846490964365171538028050795800564380352781629210961957124038963029764554077043870040440507770966536974312464207480428645738304342619213563554293531014917915845404420608127019037975585890660768315830993868794526746121427242069403139896076474836838813635890049568649416734575893850441432964893518604546327887695089930179486773188741809243041247180537436324173990977694615292225343424539301534915023870716569338855610702608027200422161655213459601150033696225943634342575101444751873908497091108582346729597354391467449075329514935287455016698346642540574623885906332544850706582907952987562035916080768989776135100829069880339013794781044111878713722044545086266012885536339842716795228739899228545466861236656482672077367759346252513579690662948380551193384588810436273741114057313845431819705734731911805945295444382140478190945648443651051921504296620822407189837239197137692535078271110025427689722673695038657007215276114999850550010882985978057169379276490746998597173427869728753474935864820927449792136298852739688459695211511496793260788578078857533985526605486549112676383977688203645137027760253107480644466348196624352911912870984017451533625799374407200663730196336292502502927018073070593039734828618843107604019296584004091916069604659235295819613910360239657764985216762929663511898340956799148546516912481754328482974726874002331339390487594398299769357255493356671456624585950077313545899560299157873293169561245729729468700190868557778350106043654281270942044992838247785375475371640814086675072491580153148179867101955969917765247046919299624142821599507815642499789601871594261503253290364892236950221813973558738722806838294045781899278624907064166118865423787142855548452273622133625207160180488424054254026649731410010149034691193444884063653140454310007329362065050451712436764627517030139387887073193652495116106633387258911730609858038069001230394594687840762974769080406581723143360352904713719170602509700494060836124611644331151959928118561076536209346962995433275918205642453006143703490118360630254184096323704653101894158507176787891619963283104531256130437885686181896200342641827962124227132712051053690777413912128936886487664724069064288900433721270417314360911518428454493664571791380600235631875885030877754674837441032392584095722206389593880932076796230200899915796419063979084608182776212806880935838290497361284352798288301193300345200494127249964283784468353308151849836613423663398422047904954556846392839787882159418224510272941933871708964655177830179363523099282741618958063798707950103029170051893336043292795958940388553411634909883337685674538575949861132734752019282979255519772212355576359807301362329043398039746556405319578478191295769475151034374575840277440167865322587817991724286350412610348918160939375071755564210211332394274210925878514336660487765431895211317845239945408956171145664283376453560698923349454463343009943234092249301702367660828536432174462611712108489911979907254316395662294889346240019654489599599283093287060595717751864706495604514520746473111834701910537052151727303467320789684319428311938994866349491159013561459932428760493026693681388192951700661557594647453414014489697844258249026958813197288406651214413823904979375882535968646191575880005282315056590961890582666873594833976468133029529790417051563282897731501017309695288469969100209744650545986132849566940980630516399136055768458449706719663526776167411966509872904814028811750139643593515138807564316308649053142885835780348312646073700797096329935633639888060519211712988097697274322913102164629817379754428881157907548389153188379123697709191790760674278218449631474528931318670048027356360617413077766272159765301877007532830702827943036383051758404050486877981552752289688540327076670283067014489388640005337861912833106954595602493141952365604858987300864146919305614011682117391864037152128333551805893697610667076883720819672876262087463560522033828935590083689688482740107936087438100949086320748840414171783704473084799954143826836535207762735851084955549430086890674696141553951211645445717666967113145340285787621261943385262806872155250994414035277091669769230424754636122845012226872147222097745383405756489709857152695477415067995641743814008199566408795479898298847020071391305186485169259955653164670465585656131951153163879630670639296866245725326188309683323912040588724664514768872855796238706798539691877995377035140404906537242417490226244594100216220265475821411507656242388815763249698453497446580111829794942322094849835184428672477934251840467728576406045875581203027382537736411485564209834846686309636508000506915467930637798166838221918172051393708488427077260533005113714712601718497661609622476315487866187654599407484950799890042638416432604624566903624940466773294652578918613123017254529608427295058093604487908441562599775162902299660069122691308374260516817192478042310109833027115344846459243256166911956979859394763374570210683971354219853083805070756133215900684629618495118685019380409583574300600903125128498084185491309417003605116885676358888828732432858882535114875149129455341000347052044721123552291768710425679029369787780462914838268591766228766888223312054468334312162525066255216252235596481209931345309878398608244941465116448556863986846857103791798403778069787478531655830293064232405734907003403120977566809278958260551305648555253767818272703447860017063257128304350961340058127661575116637972875978376666654225518254816703614508772296786525498744872699356861015750146089669977505728138706550220890603506298563219772797397548172756566802497100443941005205299348682585267597418627492380074297480032511263793743462700155953732632029176098934190229568128093141722903849680832465261766063246724360324457496636875853698977033728722922270026186239041831956009667650229036718532426927584222512946132318439325616209732715513075246393682297640974093588460628604190025593299700510114578561387076581908268350097440996721414557017231962335469318916840850403492171615785217932543822346311087156972431887875918639568166887339818693082437505608601191342252512271477140020085558713660116213473345196048108137848289898217161825237110700740626833719526237293816925665447226648615074879685290262668800805572419890116631417194322757255572681048762855273270752528491815026282950729602286565875435483290818938589295931148079537694639681237703846574815023813730034077192742909163607776954024970506731255140692569471663772243612433745317151088296284287198149043731308411168176031257642044828760293484471408244602398055310019054138982720406043872826438823645581115452534612520346575627034546701311998419226239907644625567495337970774462373481566152554889032807921029956144489507291018046586146836218650732817254146949330296084618353740181932087341496619283041316588463069828853413891524262898302916755857479206242638867401050952302006750305290356080665804966190962044722305239357775843934836990458178384259995426171712518776601489468120504047112214985328814188633881749967770556263104964543526069048791860575746068608717777589070635505140184465339227348652001612870850135679501105012261193985132953349603095270456793945772574045799659284795954194987752702182077320362748622646206751779322679021446401091983146051479498776891622517994738344934792674059377312614094740544972004488534972028536651063496935842984925112328813868091459088823526000069310555137276106324438811341293573037978588905617580099432554110167814255214269638103593584152976823102861604713653116503965898222094917516834078333351397348150609019139444267171995480339896612903519773729341448135783376074183881263485220036970798759259117325575375278377064568668875573110474715055103049068856398011898695716912831309367602939615068497111060106517588399010716069965063810550630405157827518807826413375536145593533725057955130589029621007283254692952077838989338193194646814903579583760462630099037912381872039149186863393729909092586989188844536373518453529702445256489130528314584278450144723231820606518420635573971969847563562020034151514118111176894104827127095134139453860066634058996979891245203517008230030053236212401348158988991490227606128997223735909861625308407035176767556530548448978292752714981071208847970024258157682756707247427989892383560772743969077092464120421094315805187121819967384238296615223992635128329535910185192541928786609382777709670039441864243428162212559970530418420030448346886622264863651343688094627372569669003645568066785647218103488588290187789075283558484000428834737141190957341099372259569626144306897653036930568813135857806555138699749344972518040755863487562109896412564684384652679028420797098527096825221254514574522019865128067728411959974424964064351355352974533342692989251336303683921187595825209820814627727612915063253617946298031066244033705162868132791939799669053829734272452602860547754367707000810973882152879167546258017074041719747647067762018036236215081732722399915020942504058186145821476527138742829181557596286601008881781044169865051014463442204307338023504669975062535981110770902413100243285045394491003319207974182845418234464777452637220702901463132678346203778107467480243228416679597347018624712970671463511916449519536786777448000328573768136463536303362197972145125448233760187678229141883842089535496563264529173537471397666512084761537676659937516594227341945673900675877433411804252342137397856068299020973322102213111433615304107868481560888659539188313486921720424907330106806793923329421069568525269588069746004302761541272975306017778825888588463614575013910790037302108287367814490075886533998982874805886850256750364147235978120551371070230239193154502620061152594205069689091114479885723582947225431732146320025522828106829776694046983620666438087441804093878510179052787699791506641101376794496957070903366211274636427448103197098932811528753670610153177113246425074491967134660129576954851268846455804428174369065632302838443993434996510880828804453133028338879285431386610894650543476903932019813403329104989331586595978180855216556742307242512577394728913230690292522451479063158093008977606164106016505028752756738562825880724441214139923187621017101473808765933614482551991096376254392450629676237270546710878093461750855163007375125679225337220375793232702804104231077472031968679399300367072284616224299888884745897950883296963987123168217732096769942573680371590402288450813033368833564565586282187647994857148141857286691601031460955917331284150687491416863821959610294769447111607177172577309352359437012827510773837400055768314113120904803109320488061224986022306389420732785508908146299882748187100127419246253431215567376573925723123844428714640595172363079064445493691807219125497917009320253190136007983963096932655042450586721761759485965262999618330805528700629888261386579211563127235416398541571156647566675078276817447450127555747762974185425566318640548235728814545703388067550226275152253682374728967825613990520034224175706116285929512410941697562885835001556686875499186767581788286703580747109763563952724413034192583152395175386437020645285322914009357807720664924162896371584452905068788365420089456143531088302261007362202659214864336756397827109385012217110142436090551247941754100682204008587383196492473283592801805370018897821448311412496782286709805473202189404799781434892637134505404827653339649076380805298265763434931942400039807182060039982586627921445075835955206005192411027564950223318709359009672943033013033821144704011381294088186059904956140659163903877178421403036518886306015381540444191861098311452817342683325006149154467876038013060492380031281363638979795832277256275970213879708745567040208246475701176803364132969022872719799740514667440317136387635220534151929440306196690138385418891385430537117922474538231415151900009188656141659970347088621374120528406950524400192330456767051421866823232751148073932837984040906632921219973087023151854480688659191566800492869477582731071986215207426434201937879215252817254334976983648156755282307143003328869820636108470468847462164997528700756822504557844156188005504954186988348958399020102970074849984421457247336384310439518716060312268276052342717018869930941158158704976181050729981226638291773884815221933326393206741916072650621792638675142563331582596296120760116540363283508094068283222053946159825055444128915056345885231713660287531274274710864627960881087645985307023803917175343687851592847496028609127805486181393522270580415575225126686459023277890113374114331355016056680309996797210782565553660420630679241251886969713488435287211653801106478026583797128838266273483396744457232002751768358084113723391062507123273056892966095254031493869554423481726661244575720198302293654344190612669528348530935001854974544232570336855858903250408099118394806999274913612275618109394439275767237527083430044272849117249218653674867527439922042106642759706901166703560832466908334012709463795904081752398279357573375386687978157850085938799336258868190045293291054149491605344865169836205258041339788334846518501891247189374246930502637070621955178578486235235467302852503279646864180966656601467345822736973476272656576408968102970245360316458814571346513292238501303018209302487746801887318932720013521560094027677430955539015283135089728008739960152081435676469172559139284877543742087640086964173534404061362802316625285303763020875681367320146988086718795212904449080567290865320797817488081158715947779144894108545595675571025743592824855496422406327285586128445991691319555074919348133582859974706717715617691483892443942351462424273159105460789895428001911169557045361586953277686416983869904876521004436071518048075324192050076509298023421415745966701284920794022185385329212367650334517401055021031749180544913509976054823692807062352326188644252044608342390601543070430240820294087344196067081376641353033192280861697942076462155602174679245583124754761126200012718636271796975003966419263470419116442735408428547465280814793506529387267006020553157861913262555547917579014437603737940506114782629233200525997112912978217011647000813725912113969694131607720459126825783533309070677788328957974228697964867980834974233949496497403669230831086186477610232695989467329662419141004216475573256889357975686716807029664018377596521335199355417234512435889235498082570431577435814397900157069514145989547868814134493719287858974291081713715552503928301134513577674155826720970571418439944407774015123673188248077243891071355648068551004697296485742748301874733940669235434381744655911732716907044769520571562673163382171535821328365490447413194320931203641305823603371313925129899058261493768258604947650416439693868947678703963762947280422635042464348962533423711034121247048400785613800639372589232820502458016991244454519954715166526914017945160647697253570479617417700807054437962674812765251980108655882921206131154081607450296236836719694721847998002149705833867511316663923441490099839149380044388811706432254794963485799055373077960600119185133500294345454062309971843981565005131217175200532740252952533645448362195576459690509220399461042309932735923998783519396464477224167203027885646596104492347773823267615567828075895897062869247062410417955813139673802838150884402597663786893338043151413322152302320833797847460679079737295470036199847634149673730550665102192939092074040181415610083414733198052805547565061385736142177487875790902280217251071034619077977792408639041668568268677446955363731043765264213345263471672563042353285179276810609276360538555325318257844109159150066375877055137587815900110397297135963339797164116771817199390578442997497001324225549056403602782635126728657162404645388542332378909526485062591981846246520201299418668364488676097147159774414132520464794007788684210030737274325829408520416330519159919011600406197339553076048371087900238100447725837963079919056449625754544181282350970340472172309229946477674563658799280138755582147523953764836185410300225449842079799187202419463060935716395547506909506960808755443464775076971223685780071860249977529309791562702060260951954410675750173513650595445588296424324034851328390121602039065295995358568351939951611918011380423753282140667103525542804773342751809140665820599514687488550999191827924587399009355595214214528157413448626355661756706378366856149469836281961979811679405147207782219640634792730885126511895868025829932853448779496342908765107657907688367588387951413976636576580513957974685320846006930790338793273102011595039958606776394591836031045662937292452395474781633537812047418889847008049999379253279669662455643717482313883622181823575997070557028627468748464208193747426694203422440674843272114823652593721337275591639807466552821624051674704267385019111403803978948701336146802803935286919598448874968616899087153092006654652536677036744554971623192094930631942523429922655345443446404380487992012524310738450371929881843232993389050073496701566222190461449949683174162152176519477430426273390253416355219645778530659109452098459240689389585674265228867895049495332032714910848626961859589537069251698723983384331784456196968815700147864015857658730669640173318959714744246530283766949010161725052203684499577221939415019488036516258948575432604139068734350635799680732809539066554764679939167899727902208133388318896318148469315706842415346384492693437391155084813806295939249788340259683875212606955453174322771417464770352067702595254176961695571085817174476296012068805883457426002552242076850015632363588166139283042109000244655257904146324844679839690415086965831533116650435976385418333559623044861412507895008484227179254248239657993162222420659343298161499624602184566888033371805492600255672190556179903109415909992793971779535357376801475855781547526082774314769136490155914479971539795577119898388387993854525709903978266506364354390589820132893319793747346208589782356628976063397644892768133258439598195547398862345082530291418746007881483954729379802123965580123107865000620327208981332077340494945149367402916847710074633406367831357231203295307488901379865164755552297797913277475556050599276637261983910554954648281223710851909894665851816951632911243053046520601715587043270895185321628053283264021725682835744103753349554265478755931207958268470067248313767565451691178214307500394231603914880752936189594462904890006307135859239431283321214018329315025170266937704391970370656014133942273680205001527554124480459063736742505199248521706464797307150546212477858257258575787867541443975943748824092569049777356119392433262336212337883808741849742406238141282250450511750202706185522359553408631828086471078520200639076140224467723440351935106000068874951484165348294256654462334438745807440082396255925593766575851347185026242456910238486090684547677691339365608561231826818748292470144879267434541452345522170368739608541939589735838031629284860481681766425429091355967192675854384857146356702569654981431872379289983380486383256798298339681610585739206124797722138473838230476533953275057514076180794164804197533520934355672130802092763597628962102040051817764567553951683754029058209374981231964924616498673155230741080396919535272454464037721713598642229894246971631891362671444319944796180552611233981437434625441296480186196293126967535547904522888374944413280684549026322356071757934305720547366325675697800618181066520719942766311543463802415127927456602561004822865205851947467908471560185073056053035754284789787075592607825380680117949148365239253765860637859721639038430536527322106013977426836514145048874614680566350889565820278687971987028863738079226860448975977995251123880787292520048397375926158127451179146181572128446205685758240189695039180122370613871487447894764928342455509602035798051184764967893354257679254486879118939868110906287547167654797298150510557604859363606328583691340989915570307281274468762907179281612486004181221149889027935133531609302517440832518818632863997846559583732007677293722657654510212427420589889183753425195111302666775792487392584268464602434809238323474432802614097704057373160184419035307047831029939827129334468773335892450648446016489167566918740694960170318331476561149859307047909858816788877197944078619894299031532833596747361305882954439482579774539475291909165419764120349476114390225903759598335723629813370225452396809072008878920618026294095255194019233904831875943266319344593864094992751122511218620609874903579406165851278890964414321063468032670325115525416465223893015832589593859570607300333680785782436133570802521562226214362065576722954608848307003774586655037970852046974686085596066378295250246794879081591023397823553887592017475840590674381323113909786108593062400735960542113091018952516893921151308730204564198778320814571577668550801539206357962371401840598710235171653158170860220955432706910911753239222250692291841007129678285329064823096074518653350172084349217427221522781271915399094781191995268917211833335042518450923157186909936638097801355716832423271618097213013846789888501546861227386039324030095906060454328337792362302898618888957100480400207157708247966165113215372613928817163549186838734778450363176732242686930110468654811204441434811267549057921631881523662524210280622411454671585613224285472814031939187980011592374302972796146271270499285885012037169501248981107406937745728538163842524280125727042346351001250595859211354603568358249466867947056919682206880263571144139039604524131438533648944362384958053839067739594464123652064767341307623524067637642065851725808894594308764937911545660502260601907795884225278476250266569649428350034278663543281407680591572857951606550040879331239272870245354395026577734560952661531347651408287848346320930239802367419209651150706494590698944667461287737222821399991958159632311243319025380195762943293361471807606720642731007975189963092741113959998343327253215477676921503915153244196350530741534264561120581060675442665797944561621672518048477441307406270825150234059992300318569205763866775529939664198371599955144619896171856117640023980901084620114047786898875189816300088708597931371164775635219773600126564759093798743047020741004709209168900398726174880452043949686041889127009530030715633036517667239231130225718876179248231202385920542478788798941549865143303982088336269582003012878773570879869815918993205302385667522792230426174047110694161876371078300321579691780728237941661583889991623812344278964133166492608159156681091166976326073698439347328348380719377197141000648341792747330928230039541518109956840382785715650583258470340213442218104696170613440707280188149142471114554493832001435051450962440325783107339766292389316996127208236964117061099157649970948849865644627660178481501118095816474213937988770705027536196254297625027495530597702915685005679011796477153704805067259926428593423312989013795932995445593902720520516614803469811316495146901684136166852598139002053251292499453352386061244605244300488931972440277181517838853131833543455843133687967004948442322688859094019472258840213153477152063215730734713143133307361846591361316003538017929968138358852386072513026951452757793138004635995760468568552048874515501946935942572482599265201927681394449469412524049226415247104330779797438475322075866712558650645874891886701482776570365815795802561207948460623072187671919531847799763308121858664255637536052964269624510845356728562233259983031697841893505624628034981507547760363082272280745234370960981967175670253175244660795775472068811467130956669429289406041393632969883559941121484068304621039464427942548442300969999581217305259863780081075981515744168426236031150874580602989894703154892376129984533047058796764072204871805759062950932620339806702822231884994941682234827857183570118132843933294080493411118596477493967226202567142204584632294321908861152295194612563744938148670459576514382974330658585031208690146853021919477813289913904926343893884972007498490246499605678574539935490424715923038116233074841505448299373814434492760091339459067861946014245593687647549070670888471850493487836304734617664679825907954413635377013685595127512472453820430524023135875167426244787228397644921164569570062517904509563490470831118451363911553881182171779434873488677075612832830943760102463132652208930087629273735880357523128712293764287076970768577350638670082650792561273725474327623960657441304478774871041324812062448619316153160379284887005819844401762662620846562458090688715007221809726895053049484997680464601665687856488630098924828098716146806610085555370752662385598228631195683552856019233085788916514607947210653473839376789321691512803253646254819178069637440677509195979055386408593536616574562172219971513011174692193311122029154538784596058549476926758669055011829536695901013705625090389870737190335757051117417433194707198431651720207809991230525018089804690173534383019073141112229557664425503397705879880779063547243431112340157402321560589580193248457836148188558402998245334364370829048468997985252081715513964772019563915574983852445222673879444416875721759766995570284516265506745820752280326231809148124574268829440394508938859715371333144111285349136731422562817795136827530736113905321767793916470116739918542667566926642459379264452011313352674445014796964075213748999040712561536166754526926960272378092213960888112070913187190064137152014706820928907698465322001719166525651276299100408517223367495434364320866878158207567255003889190980186945426043961278231786407245763397801765976350414684148820245329711789110861628048036154738260382225083804970344004784648318420929699352897443219108481020391917623071482231902514858026021208557532228111192831816561231559299493933813442213627476436566509975706379540123825815431981023066087428086827450082111888217462088593585071141923173317598523642825856063110729086176368178557023162196577343280095168350389685986784554704510898759671039891166475383974999421152852158213139926122512468617892388826893520448589353787774252283153967751806909210041507694562195841202401133224608602962108776706562346671749096323592849475736774665026527310330655737213434865636117000214158764837712819528050121260299443005767983354908004744270738533999219279298165698174831285766765297832064235818070638887084892633135912602109318549856247606452491262535822720825871672510964738966946404424717108749521730880748797989546183089446386350542256524989419350359033412540556881735082193104885328306902877963605396837223743548786455334010513838431335351642562495774418876095805727505891257830508008154411071626394325259064596442214052541284890051822056198207649123801625432402601787835473274932210467248361794744103609381710848470569008336820897796963452904667238056913082734740028917953440350485282396566838611829992796147909219841332408226696827653911867872386634287975825459063528999866567667822749652505196410708351080147987504199812054312947633475860723900804865206941250474429678056533891386915780452204025018230410958034796610734438054893178917576235454603285657976482177574189667452824069795332202170316726340673217703185965022051485884289646160665169379995637537501300536322606292624924778480426464338289132952802676007559136394912465666528361584892646986253238974327084644604967873678113682188366795929550878828699824416960867861199255832393127519634892055381605004727321290742500147534620748705699194011134028090648610765039447832182153235344695137351707827201646361563976784982190182114415080480935037179905055177885057616620592704860318153364130836208521760138733931472908310903042882421365903603691375895719310265862913616799263571739782800121259086578295684636723908946836114169736106733933478689639553271575011084319515776600018456437355529127565477527732019042312116489101931430342864907235123038219513201483619168237738629033311827039892793061621436461519748345115794991140981522200950128648959286378465686423377777365958997897580608937085703376589531957637061617814535106211296052592572888846303931022210805683535620571093857144627836589607170709614673524923562904512618272275503158107276978822512355336798795702072395297804513147172943121652426858994251932895489205840803392371129339358233015877044985655667132452850615128109340973571780269173455292821449265581093868419641119305028600725076063120021848033901149287567204339120842293033789547311816136666121237774313253886077465256292664381657189966254204367375338475404090025326226322835578045189423531576296463597418292302355608815920509718583214909887119490144925105290340688684486794446131936279789876887874393072219029980206783778663957422812260635553165689086706401377453583478209827568402718555612394315486326572362269227273331246550605566789089222184676614156067075731167839929298973046568693072450679475844655666695576886631086905854042497020399265523445372458540051962409918296698223023656975801322200653855108314155016331042721423117138573339850474685851376181148817802579955612205035947071748077171904022472747528558101328482145485283476089256295784085786540330997972111285988020047575984868648810371558218892784363672074441559249831430385699063665835187788267300887290141990666947664806127815792580628550150342195489692348680628986556637227319110570714314446950250808250504502467032283448886660305415964552998292658955496351701448694131364408962245665721330625238385481818539074015148911266701211323426066963837756240535488633333688500776441486737221272748351448313880772437880990376768522677382710002234555637829942412025767935146673212104211489586462574089907186358035271115566592570453423727160038887562690826698140909462403652755267509027128610202528146033047686649534518872042634235111647099126187901698214663938995706228234580245243311606330981771044588080139781491159782492404116315585493003121977465944311775529377871252986786584450590390541126661846267304400735883654765881172650659081124486849833408351761103765161861257916737847231625511168788829498306951542513911600503128671592278679235486374779375251356206861815204997443767242336989674418106237513854510674808314805682123549011308405407805495748390782594118121509087700240169259309070276022498877870199155579017696701179754676909059154359861183485468554459922073618019642113463842718903555463225321507246749440015675003786248925686635933835198230258861128074921189175673105306483446158227605170476601821104525715801064583141348610982815320577621731973514726446066754544310629854545933677527272025200161554899393047810411965477241973722972277840007736268946574894635179589897230342517014107872714430071241664516874434170585480448997118862951824046690800853684103301723492867960183563986248427776647646269319492131566973795165735058692828151051024754739091560832105664556710026480049703901004489358924776375040776504077541934614777025373922844411843865034172434192697844494706905478150995339074900424818826299253328801869720573733314867213957894982842629965865523136273387946117506467246371593160097697140598612652619970342797694746410743804455289461043551521098080195736442049285922958936412938211367092017762754582519332488673220712457823264561790774795570205520539110750909465894820910422736796899503816400431268602139966753250550605509303367940994992903860949880763957433535456221854978177509581642417178186113194212009427359621001352118461338637292632280257608103885852945651012128562468194277669835718868282520386661645678070247540935051574485686952476602695511926270289106553913130860181544093551982416907670749884355033370207232102107739476001662634858231253818984880199119453080561933020788282927444344034903605981554726302918551649207610246393274636819941900339476632294596880397165538526360166367050220190714317374964928891211282741253512146774629513611089065326397272537215783570434087652859589841551315527616538496906570591113888560472697573294398560293060155676846675662556265867250639119430836176514441785220650294463005621943858717014358336409633731522981318202817824506079182111070781577323022444327310867025339947101210711067240385008116511532788267045058731036706569149780423946446198991300664271571474137235449766025065710450920908237289029877366562173256371563251022884789549987556647724677793640416154687772580916622956986001240175447222038891135820800146563150965619988047081911112911176326356621740064501386837988753878785400253877692883158124362393229605682245824976763305747168442693564074043835390721242779911364187040917632894519609646318415013282173534720294750064858904487949227013957450976811935296600358874401326325262835802054495417805976928149542915298314869509826603293852505872326999500635774371141439571725794697186455507500455857252241074541070333277856728862791379829468193741355996225430060506316542133229264354285055652022707789372277271885360117716469015248219973284655506503462015869029520877953210754527180682926042241312858523668817394651538853664190474433304354922307242863514241217990217221804397556433109646128028433947797954696180505189740705543527080092472289826351869924454195187056834006843100494643264669756379788371291859360056605233787540926213336095212264959934080500755795253736464310390849189111270608266025875492717163328465466056420925296412229937469298285047634854903439084285930045355680263600143061974562046007169187142712927511984766385249095179408903856750401430633607658626195601909967497349035874455790879582046371475854991550268745684979110579423436507954063807518658675168420426776267765672950904199517967480444429838262368491361526457486284069788684365395302183889729684191689233939500406446427625128940371596817481315686340936059371196441705469837034972923128046156788211332222405367386598744745264949447827456037041250467694092564981846967356908816277842421985281068454136131041126045823984969862141737213220916146597616963261621156290103089671140470299953399475947362505921421028330592515230597056519146486033359458305382830484709351938369776774289787044992646617820887527227535749522865568918681301714133431033898256762507936119648153315657193759425450780387988641319458134492606619457877237391207701868699056576715793482966332920733782979934595859590278794205860260807852517278546810398650939823056348072705343850863974582555522283563482783688084156591510293595037564182192498230202750198014647569915091511932577894959703289259410995679481737267316840626297430772764987339083677915726730431207333674389488439287431802882456831971416313849547997653881805126942016793589639074297365783672496177277407191558452432138081483718424700102602583249197663681527740998347554856852091683221862271928765293801245576695891701883549419100570350455888568394966718730108732816094622190219294188544899648569492384699429354763802936677103344637525898059626423206064030688968426774047616779812221998185140016782045812266598434818382440829777798956325513029244528188309148533519904253470596387387381394955911555388323723168317241497307703611152578127622960768385787862526067017841567447297128273790675289056629490732102507781961010930413257264019651966006885126307411503464442503036139554308391508717597853798422543182755690112682078093378318132366611601440328557675937317531699018589247241947092690248330132595278525032727090878909119913684090301405093236212576822869322500397175392859685455603905621240537291202533888842919128507309658445759727285991668540723182159660247691569244225485872401064629428221252650560292751779712517486285153628284391605774317574102598476213602418273586237738054157900087841689734815300487297242267123268944922376441912780945443717585106916351468685294722500917419478960437142335995227925707059930831552306014877166432168369860844039896300964274657431707219303442569092367914501225295190469399919452917137409978364066371368694221476465570984581992788693588083895116333361801286741778472970316128012053268408155170079405634471666519684963166575347754290838757290778148134274898034022711756378735979078420249329294948703788908087423741937989721539814558617028249243529773084102962152061518552465114246935464614109894484652099573873173255002364980692941673047925940063592907719309541884362450764990144758475517155280946567064164708623833346256115504740319854833453336993022918094576070036812659570580186746713883983806508722832559186816531038393946747657761738508106329187467991348059625268500023554060421520177997721333665139600462497385944034984933186849082940932428428127821964172676015234860224388990533207992068549052883133304721915131475525498249308049984761247686924706259243953486010786429362771892319138991221234870610990642269277430660739889845524416797566470775066776242834677661397273583315958870890206005866588244474974628504936322875239076163653199891499193036595698653978014593958836903603535247720822579711904017583430144435785413676974874377341190326340206253371577220103347711149759606938197112144780187583594519392390898436492624991694220981479116644341810562768852914180224146394271286108540535295468073471571057367761179691341130789475263293508492250273867454753868190220448656627997251782401281370273672915839986284174504187026190438959634254789070550318092405237028083158242064072334562448973870366571752344334939093211053439952898855736946458606382354521922204629560407485493819562563566090354434065847111995930192397934452105342456331312695378629208519023949749750763179526854789281445701223975681765339933327840646979312417331853040990707195531062513753985996389040149723492378641686954512514386955387479916494768565671492391311060610992500218403685543592279488460170062711703277715095548630628359866819738835787372837415760475385964447039588763157192355914358003506157371175910492310511505528230894260040846331736105507984147593940271371832012791716390018592748881676018866260388806124351733894525537916044188113900023276317947872512352427714944189920106762270784160084241313926737761928248468860579605973691198788658081111719504931559892266465035901853838327073414018655961101697021043796462055714047133381936485200691647642668206101025611420848674943386978965960231556641523718912794227432240318707241968427340970683831814885511279354541755353941082200963938114412094228328222029882264649328944105210331516884601238496276462513200404548991370623606721406281825648403019190163737674986988321209726750500938295478074477175837405565231233422437618669311179990115655956797913411341558749262162097182914600773624563514180154245466499905838414914151589603639371883154326416433161062337843992652775786465083212091287889568858384418963656086176063306688950537446590886125528621775539742806645724406562343997027500289601814158248779797415578218181080636795940474209289311006747060663640055461195637536773451407616714567150424678389042862387136730512110840515739726511714493620459836509042311075395117695507506756673795723712003008665431051629602034890096827672881785320318276131199353973732977764225682587534702367400260087779299314164652227714987889161833023159704972278174467094889695110477406873243640641305642868197673502801702000464178861970038749278117906255433927669410044196790164425255160176731957847406482246263551059935073106324719606026187739419074791060509360253542308188261751549867939281190591164971145585581208444329218624352119051468891259578573267960493558639414673565026377972438166518182540010918817804077540889078450701383063031164220321645414952941752804833282039341218639668703085119465375849294924882639853848908822584488311524977099215684546393389322699318994105250130544881591494733986831942997594484342252828545422107981562145902549622614240614891635786288353095726157275252017381302076073559368611427520211471599728447745410844900984851612767461995232818542362622509751968123165976581428197921069933848209073851950178525311384564339831443421798179476464840673861350703850049769398981827840147713381207672708158202484608400697697377960144696555204601793678305700558641139350747310840292168689495500984460638764466917505562608314951281502483815602672441803693843419386905487795501358156729607138103253380300459401701291445101270205260714761702631924003128764240751196301119137703286582441313667604438990469903850475507685084590062140336021701394544927875510034638282937850742301441024838126993312242859060619108176306492814888990656879502189246187596545819513398444453053085968964340100490396431216806647531367352435016408728856920155337671415055394318757125298860582836608262112626019066742698075762862893682295057394538270699070369152957123238828386240701674443846037399287575548336161704342720253087144150468664208783697029319459513211797084809949951125353042769516043679921590674674330718542362870682198582735840099750401989810098870154962072031510441036313336373094358804259928876276470829340022498492230768743780940649783151621158222933169961754356121390412396634372115488528290038533179681984662880291827514283169917399992687445409435372765127520220606683552823628422408037097351319040775567408295967702642416025207773107384752868991993893363918742424405164249932540756951151602536909974252589069237856917545375943622964138716074927307114603588846291768390295961728148187463987821425489974826378150510457638179730283194077097414029785552777486992979758233650439297335051846385711898372945589777723689620876276006173351856782080943569999418857708045682412669098050503459129325798266970892183807876801450119696829431041448470984392430005408885766109343496864128779874757223813446892035287101661198658864075945502919968521799491597773503041543952294963561859065776772028789584880867903893929824330639434045029760147394467107749935286595859072148098721785569786699097966314600588512864225372829976397229644288887137905661731731801126471249534844183006107658411259682685185103946382098237348995459901130760597798499362387536539872801259500008657689846921014875698599538520903385011885557529033361571302907490042221452463085390017617755913879403841533009705955719236891267464844421968732637048843813556695181529216682343463892758183997069296419622515372752090877800083281711904762183031754770730902532302501973641394397911379723884349183304854434617783250897393643032725992760346584293790405795340428229773007648299105369114038461289642568244065978557982712849938362368958788976690315364387637661185225203021475677580653911035731866488257698249919673307017747065128924736840790218235056967415169767416775119678509787251485798104604996346893058117373286752928046060760053220823144303967330031804303643067148301070102641648986469695003930058570333637306848073139804370724344555753742746607988885752083510121497944316149455098172323207392025346301471762485015646159884304605278935302745953419378171212250799910908945688286765112141958079083505955978760159196102418235824787039119312461959494430649004608712061467809428500983066697221003173834786726798604437106563812940215588967071512198945385918594757504827647595460261641257193636761507284431738101404937349267439282902607402819053451489803590962449712364506834118230705073692226869596797462976272569399546588999322697237991065497565392792691321933817008518282687289638285049509488112890034358006650161694899873149995154260061168421515926049478579089544129010366015269766715217073983285914042434274025551089174181074432735125271869094676881128492205174270791508920996092780759391107343913831477533126291727366047561195295593990600419605745826042031720981632468936379310500071106945230957853942705090155296624097574182845569117453838870006261613210807036249328041159420527041756883021698277323695803727623434334263527215421322971664658788781462505460257051813379124708148930644958411360893097468833536949668790352263248293300950690583866035019469993026119128587535020865762823683460965311003065264497016154616101132831728683190976329445958171157330917438635690227260987183161580464570826559666395393224288708725212787280358670658608403606813176332945983736851225536228041941498361987439754506019736231565788614375729028114245708748386627297082532264979581743322224200364566435410271450429917467648684332984260616094112768950722925575549910322673944676108507653293798839524527703756245918813281492411111344447796810473777726490601682373754602620672082141843205037145067792726805988102319205817689470818014315494954017689271491113095682947265506574849443495999603976676073167568599875008990395352170108404192924870214805839526031732724865123550012620290745763662895442325088342465381722091304866394839610077709066935963794351141606609067667088374651551840534928169266133446747218581350983945177636964939593096404728386447876350648045764629598919478644893189455914440319576187620748721985011363150763387777072593183206445487575194446195054600806186890198664305512923991204081763043897439911742778810839123199592335574101146162560072690009180465430211116757678260564013253005949870078152276176030630323740044743904685569247102278112233124173445194131928278001532554979093512001928102192553087230642469184717837260155591652613272520171530329106736144984675329377334326936877499689463959118075331690722441506370303106916697687069948007711426026717877797864894884472902018013260155658564930542134117199319595832563003417331366309643371381466246454115219190960184249158717050132626134460434042158484217172697527713109054149206416606244026327998512561675280783189172259836458102708098002943410255521272208109335704406152650603657449696704470770617177775502382629641830976085416069718151711341729758193866569436431801534855958854319195019678750913387798281463755513019670202787574488650278935676559928861296704585578966168962673970114135352694401648266142248612533840121306712918505253459903823921947862145103457441464348044585126757563838665419614382693970064920966319350687262292265172781277343826515087626168686049217110032434797147725325629249384574722117661750251914628633602725928778665875747231665545159444086327618144418075052009523126418851152556757638179031603646873498805303256764166822618666904916012179028381064024128827780412052153615776129497353776884540682776016661804295149353290801613585217762332129477754546012843696194165527658956979007543680367698577927722510694707890253830376152372225638804327827477680149114692685489068455681677650963028214375212328830890736073659042467122505614750243347789941460670816320873280242700385854582865958479371942686036530552139986610747543769302166875626236041522374204150888751856379418976671943995198900157067377508986411642189172742151390487700251159570764075557674420126746333717687096167276524674337431774225147048567603505658231646079206792219066062970425207470725806437815926569349928470106018991588660859605626250009707213142951098349176240019771799147994345787784844274919685021085935958143448275962411606366143738247693341047406669257503965240734750453916187544373043548738426660274840394218258085333863425828181539263567956598065247772384936864398863329407176109047245968692744813899890130801116948977426425055594910429220429279979777152479732964754809404022932965485076843009798125738534242438332073248369391156479056855052256280624957411190223334270337285885231929656428714041492174009336590189429209441331353182201446859261802918020508014775000658868670509105791960550407639875500163474468867982023972200136869264015832096923873828594395454795448899473154682794178772747565849067881036147438338159291432598503109493292762734382491468546549828380606798560644823092433504423821383879747053830539633263628322811223698045901957095428032469486096568324467106959649097746516369503872796782941170016154444660771001185037769908736415903928800939107978605295918133529080191825497197192941083856940197334200664956727579005246965276294813075718982743902095148244818958642331526271287588969847755140708077413045159859918663063456784472751964183517365216165437523039572516772035247512566047889266116278362436620509703584066741194888236718905196901547365396466516064675733248767421723027601033139509500727314785631439355872771750973026419367820024634964668595846160235984267277318578406715047040057671375524991653315394449182198703887857678394388833956471542636598262707775126761124365813473562168913860813635638189044333572211643060700912764077032389256173747103781354337637555957784242595446125388339308430734467248287874904938383664928025774594797138687953791334724096296871954610009665314966375297167939028543153627765456234418518946659327645486725749773530543570235941423565558570781464937206293851250608276386179263180936350026635605270730523381676223270852532360408514055406678800456537714114671259548790320757759312881982688468211682110272060093878387651650339650196980197240722836798010004341016902161705294774401754045993857726051083285407702146814349770132224400267707214594631573556149822679433848535165556215327391683842835769225925621522948803699523190038455196047559816861907759279199188236083432451418918614636837740257725626960826479225590726264890137882409327464254157872840632411884437434755628248639402401263288522363460676391779238097751026370492569169251394145327399227032439608802946105847573168720809320445177197787651891404680687917188934742976675039910477869430090888350252948328475336219519888880811115604608878027800319712705186819365752635481170393895905945207837750662298395560544261061344508093768917622559854539208323394888977915351954205136524535993237760765698215800409601588564926939707282220863785833667213575027104882845408988519930013730599104432488821521384699703148278258125406787298804952847683921694296175497983683029294121199951440123439595774646183672772513420771097248764700809110994567994510470201575241672675714638713357751458981243891627545708608090665542288529688755669599262118865994673668489473563545541939260472616041110712942837767652869475533108418371596483880281944371405236147577008947302599691358550875477658480281547262797134222414822732067309576646410537059632363611811289543039466322471850750219453681447688643777626254753908212136095371736937540185987187179947542751502790451860936704994709307521527853440827990854074078445194113740968933811081133112745495252788116266076176727523326159041010452189316245841179170611289687454020057167516618317233198705996263069518670054260868788489831328769686969552714943588849355569576968046645463517679377966185549140463403115784620802436431953631690111091793775083069055131281489603131916019732983071082277975393554187232180890136645514265754162300093299308396087135526258029586956949683267407741084255275327058856291575683145795369984785205610082283559632112024101041553812084190045710643182541147088126727559273347827388910316801140001589591862621259366652839042013133132268037864190554724428029493829032730418000037249052702584294395373655677741396755712940345551508262234666524996828652579442528438341839207305550071338440894608576494547601203856706971699689145655045651119246697445965416947070287496465480781611746157061278546839133176633451487993252270689971165107866859810850859867800498923568273266535205691263885188695927393821698944458504864542212340570642826262381289003884651222717496326868747618021173648715280206648892261305143288826989812149565955827561545059442891955981585886046703631012474458128619690918161329915009176416957508310604974068824965428513939341403917996158969413259800939069198239065487149964732653692316847553672666222334570529956467193940457926533539536838260171495817354248043289139056642545548507268627899496802058412822689468659097493827316016072297542004450224441876272884914526237648339513205494195421123837440227598455739311775128189865816040751098694824837711139088571777811435920170743076055172711539617812414473569535707121145956308593083901169643914931382700532638186317698663950936315147447062402603461553371578742233935778320839331023322178113778978230492615476373556092380699597761464741156625893322593527602621091430858152019578719228628900659760521332373489335242330287424774309552058550586592153502605312808380685567709668192351557599657812204924878703141690363683638386532389104484637446218104467273420405861995731423281759681828273820634972067130779333954887118110127264799835579491490441988782769643337380660646611870201079866754679807215265083696933473395103459668124637640135025071281460962353282645710856468067347583419210507227535272592572871248420225779273842463684119482356103554946940326398104857837685207183188974330138968343528762318148938020286873131674779095730033041213010979708479111497226091057284654802735006831648202813089103083470572817549399004251675544062790872254454105520027524410964424363759717211183041774380267388035102235236297516922822596663929689596818282950368918477639446133752534653231642524984941370285136590185004175662086066592532476568925536947861255444099101757411819410498897534122864243245501609894895175994105511160691690886783179598617981576155431688273926548496368222203018149841201462760212136919891011928003349280087829552085445856898444155043863989721171927317493406077230341558485583076443373544041350255238345876086585055297274796457407231350548347302595673526492315015995605538182171448691115857448165493748814543894433585729767758419629136527276215519496859136594204739572194244458185741234822443751678820620669230560353881588275985598626071476904345856100580515967892622099408861484391514786086804378631240165315968112473463264356642691049576754998761428706191731451006617334921280356617243799834287186384552706354527626862049283242041848125944149070431323544479899905170429472127781849847487496895742168857008010920300495191567462233737842644628210323322958619313226930916027133381138228889559698498108459051209732007764265524832890922504010219615813283485906683329865116463942832994801335350504455144547330509186331383815276401648119904199074562877698482255348760199105408317370459549790810665823801224145173982503312710050926641556236178751366594356202617431154003052505398370326511106516084418564789802458507798492700020991316242944059614592606140908371849265275229946034394972100683362387717331403077945802940332139895657756072469834234328823261330216991611263219198882588087753843632432645381504809763826404467813613130167069465414574092692352493398538775789445629395096383360903290202126846677183820902534615725914110279370004181187997688307850670911752166560970408486321075196352430190401401255587057858739591957837245524690920188880227913140275191531456190449317778046488861775081750959248731737427664276227249890512637890616057208667092495588907721475580580242542429243720536712812474293115633189638960703649073773640989836838517930449900631336460832359312956875306643413489657373894296876408486689944341634623322457809029822301350200420832171769516643350840134367958999866435507414820199824504024286628229970395030319567913037106785698253540939070229571860555214747362563342646351109598230041401783404050608938976889054061179458351092929691463279819374066990838164175765529825937429163604095018742298186813454409131414103240430767661270491236023076787109014232205635777805207439262842965969824882261911274293644008179750712505638324507961480080204647863950065182030950752460165876379675306824184801452084240911713509201079692908497258660094121496817233646676369974992850825686554655230837968605451258645305626289321427442281874025068116667685566307569760743714532763781935420940058003526271231056685255718921809026199308215617865784035962912092958106517953999558424512170772643091462559105558051979359053095607967730432299379699145013086675565832609203718533564425155759268181144903542868247673814833783131480269476779336973818503129420749481529224836044177561641385984045036023426142133416722841634721826077147964194550901164138315015268529712169554076858301523243884315674726163304402522338154007201600664599315776430462510365152023448432158846694260199178980214982897179062518719802660400698408217023654278750827912518045737602362000382577776697406714773655729621926299833819961444992653850372192315664410823040707425570938589229976401302038585322292048535141844992141874915122825667747211618717452143535230497104176501556563439071778058254333986255523882595990968680295189254206318610567029816192369808731479964116915090369104560278533744217349975783959660752817677003960282836495518029703485866545556304207062371009026565018901318704158469029539530281789585777301139559138357503859036815905114562277785105319597001260529882367083861526339227741057501683212487219908228916849875028944689018116328630087280758257045018197859533478966062461587778997427410033538057194155196494900156183037856035333318758233731719529377914102059244019998266184176375270449569993881931879053031619992044516689238452810541981181384185507650434759348445810733713800234062802179810224937167340122946560042101739348154979911557122350470896590620028586329496301680268052575103886046700820141152823687593726162609838345884114070327947503749550771776971990270575239673723342056772910129242245263733210518303500317667748552730753779395991519978988935205236128895810312326379074258293156111374114690213434385035051477890406780471689297110130781509553112909808931719133130860550812075149538306837954446069537556545003141195067535700384876744167736059738874314069412267247711185074887161613312864588987242926895846530553053167877298337063171445519759899790011994185770244381843665759321559096256595307440390547230016821565473965765237409096725156974374929927304548453311263506936869019410058427744943248456634495127569192086193612516464899109215768341517652145736489165334342713553100090691431800726567476561566384132196084561822267217187263040438496273685178417053338354503724848762429040526070377815741275338899303928005980791900551963702768452775368463093037119612528643284704290839404572965778185237180307007514872152167017184004133115002382518343435479412873852902052964154056803736538514180052499856488234777800357259389110169970206281406828115640012795339962122568604608359064512056258863927566872882727899332350327109749930611020188511013518637171959981798133558799277792397308089355637467196804869093789793333281164034127986177713489055714834142734851609126035173118868269851042394546618910739155978276538161040628070348202791812004400712058761040507182165376991992422478436563145705136226662657886895493389423693723239697973772506853700968569895778971443133252423557786385192764314658814456174591165345858365798865349175204439979127116397667084858227242897589008572712864491884872834676814878627433993917335972756617929039281981754666085676529447017353441234896992979791855147342274124740313743738684027928942492531870143159319239677053958954610882132774962110964593211685868393466526504604837161218927805087839014042354562283883471171604831478371686034480614872069809562833500487669900065295365785911736320288865613025447823389188704712817159643682176082236933684018036142008904545254825050311272061032068226784001188774132891186186322353092181479579452034952101577807778681650597269820114337994631399949170768990115438394935335271390332959013438537197096251135295051093006252411904550499552555471294167451591611797850404639773609797050906905527263340155619926704996895927920511801190287768897995866996480673107793922731905080187706167937378332651864178375577668335062024989511005723325385347139145938519541285562913449220559805990068553733248890010667202784764368862993564024328142782692420935851646253487123266304199487230726851975087775689994100037994158869530126641430101590166786011571576129373202071868469406999228141886346172075730280274162241444723658154524536039319478277997856470510182478491809357006054655918003322711758533895089688862094605435750616042791938330713213884197599137739356127925125708644034841836604936881774702329880009330755345696066411393498648733099578783150941024333776358983737094242195305232672314587128365979424577403282022914502929469665500981521272974418253796335938464313274983905311033739817049331984973083745840870324619629201605568381240494709665337515720375242100546728542355145209035786619803660731789422133543089174809122817546245190519728871052802374016749982921461436609600095718770844179679299683527421387998116981528702216122316748507133590895012988916309606007521970249774660342805251044663092045854232052869807694076279464538128461183400170435428444837704295520309988005893330600884764787190466621881603224330797107046844554312263152872604400534884638074048706742321254677076339238202206303838866904783655839488846342163833691120413823942344165071612185719263901965306709948815976571246911852376256596472228628279909041398312140848552889448207908316281144041553082827410220832234249058625634144556558602690889944008268034895305681927267302414392659309157281940041328142842607540810385409006914466637848281065691836094075514582484868706630780448941882724673613623407855274309160729375149105512205751057222790496069552272620985766447840794415171150147326719520312733758655175603828277745430767765022947996011577869880966705870328457026714704817350062099710683409436248461052017127114776957763068114105894508197730433120986072908748435104054068930057295678274818333916931181168038411647021832535905982822999087515571014927982760292853677208143411804017268870336444147661937149329877136413647278705420111230489482226155254619291563390669607265155741919028945081104410117570807357838677795141074583301403655345420438442917579780392360140639343578045532700429696143795858136728306931525520578253769785308419834598512483675140101466791551282135298858680575590115583102804418078834124303521222786201125776963376385295587809020454022726084831496175877594480842334656665881026097182197698547764659426980075917109785764647254582802974453093859645753120986698095395951031882690732410157938761859881073900590627544467833588157515046764080853457260245045856033124204890710113406497451316181711348544537881901653066835111386193028534481514634531438433822381830863884129283695279118745803152948236661784333992169016271092522009713458073445393108300092305515153512207077928783227495826832310258287202854311953916178936119550271046116079401980949434369527152635248027197063840547579625190378890941488912989649249209506732606989988119034422970567537381414885469667179515458391768722334625547481848817387910145358881055064454067980028608395356018785718296629655968709353636811624724930093933798447165983530977915756539128901773640212682401931367397314248268971101569768755762374362997351247872835132159598140066951840193938503453934251750301249898599917240065599339433047012671372441045267632880186819072008905178385763231349508791868469623243307511508738330105600738709201328700623683612171576371825243656707907322273650461533380029730062226263973022354562811165025523563430360894018926525229267492062076890183173627050735682599437945359629621710197555642152069304713034774610253150497737381213605846678634434819742973026793040953295340155636583209245402545979667412742177544689637088855804502082193714093664036592106854356823876319009395809405500087624250422067110961285121783178473511067853713286126913037109887199192499176220363988740947177255712471477598953039218814200747740131483424076973453599956111807487349682081427906249655300351690507239645787197583301975936208059999623663860267105932289959112470929253270639639446794149605611996210720940973946855022640196394993807243180497820182656145492520922221610302382314215127479291218995315571342068648757707159509265928616422382776269573275125547668285282646208645503443796310837375789376875313835583918517530657450793118107744850147140391849972857674850771126844224186990961316860899973080996779770433206627953892970390847913136498671743038418871453967583543121439812908992492874137967620717441885418469303680030922796200883708878341181004275285532748890999099508115898877176364847883963975093238734426551697602359156883155600291157583864497719026254411598475444877532124849655617599027833484420363128081685786761159193337266147085441536545084242554913023280392407737492049593297584674806934728065743049557675029942179262268999488601572888594425553377280402697766608190586957513755393810287381054715173563519296029953718067135961447971376630847929408467310118130969636507328941308466702801466716928038153233400468685565480853058270919316042445630569710412079748618379705558345895801668315372317344104277744790188597568377188950172352244424872945588881178271233663074010035221566465763331703041541853798577468136053196626518460443671590642759032440029472689660896584543766154984338596814773176942231771704035850296117358173129729314040441629806327221917327788691836745002207776996155260248551323330880819378730104108439014192663896457664563371191218940877341962304515659458295804102878040592124346266785877861481364806232981219415872897677206867438100085884114710595914504194259357454091984749913206622585102171050489416561636996993540169607939788851552507913611134948052002603115459804371338740224747515918824149011167619506627866963079270259180402989496213361606019794336378289980064571325764500173177930878783475274849803555453585265910620093928026694612358537208340135830492389339228978850405788521284428973999297114514827148483693108588806960983373447949474669965529723080604748325738906656741397363894030748411091171427052442730964780361665789980191726237047217622782314021171383276605256196441402753139196170917544708580760467351983999180183089812793352931761126185953643728661286306797333086341887419952393769695403781978676433030575385817864123003461728147269835466107373514616025327810227509715381920808750608977092858116496749505150361016756080792581747037857553860747690512682373434436630979233071901715740648591517243775024235749778964038153131854173630152719057900291919600089398162343855078667630621730149271524574171912588751429028093827638683978499198349816031710923411482421955192983704228919002813797431452025893920744872359927094829748807077974671668931077964850221508723526826154867005652311696697029164716434292774985901040353102008098311859547228176100825735772172308613160616379614404869664788977102752804809310531011535607106894829283200623495217246780295570565462307915592785069641785232716580484330840605175293605026450744022661490456175122378765315661781113611446718993714422009787778502606985617887506912584333869920071662151575419832351153094313360697316951829141956830779698993786934719387318971099283368014420128060342833051954573912837365520130957763558574087672222870648240787096095110928986516277337734296014924404144619711945542998713094213575491961904999192859945554438237440577428467367686327580056704203731715042470686887879474552335054943057624167235666154622638917912197467206590891716825357088291271390304376836277174184057592225993601702949072157281734704381879963606921943597109668755201339810642886172262613034598809113204945231622261456430981690167063743503769751053206124462676590315657706678764231757862797637178578877132433279514283606453878714356368201384761934265990714729261956882673294781829211435236207958061326204685986833157477330241409945839652929011573499267783291910993041262658030851326586247430183935312672633245709828082395702220361314075040791429859192695220068953176977822583926251059455983912823322159149618250184250182214439979062344500616562299253439488696794302764031411789405463306863226267195068782874306967467766491550337609563580356887949724100160126738850474225648109084312601214761392080386943870996394594040764824524333115858170063516189504440058796186244086064566829832551411887590419670770631893477124127017405825701865034864495020983152625043077573948719873547927012231402290131032812771081111613170763081088457826266152757677282710959840205222471851240529534203110690421985709677858634174815621428256160682511911506618762555469142259031069188774176055609836974835331295478989805638645986165321801912513626266149338136099988883969700381807310076424662459631959051202069966107271844695826132114720622252222332967698515570929101690993667935954457738303251370080152835532507609199030504553830693149967747511275433803410520535181934152339078784186480008860968551382555411202266510421904685538501151451067026396873386903307606092427796183356792093436496445124134758063735757742563784261687808124997781611367499954768660276003697091029410898263512298236499395484409430294799527098893337194967803135287810497205465540166122055030244617515811368782557854385939498022250042581851303604432231020870211856423634267457918521875520764266243006619563767406668614208112463395074378596285653346960182880907812933491040114861411223307553276266634311992636780410260300659647291120687556281122726959598988814236903074666561776518016271290408100266679436151039052608554459432267154951743293030431932849007606986301063679457711187454376665808200106122762874951309255289583258251681184234540869019892954065401015577525414736165781654704546823292027307966015314650362917413305241852270262729737139481377164368015507565908350836728012813086595437239847330188073384927886989228939162986925111886464037073983554341490828055372838572813083674095123990873680494087326823429424500469624951014835844670807645018625056404880978618830567576510646036649204831496267927313243847128962045100495807080785946609675743485980605701541733997985201100897828714994769292568154413845797737766594649398548473850360594678550639214044264220471470962839651893652533886564101423949702655382426230187164039894771884040962516797546086667627411974450451676222167717557706842003473291745185674412337382383924466508575073573810287861068433905992175415862795387872880644003516880025330416937164184433441687094199103178476647028224936967101292591720395534022605026957151936611373421091899183199108703695467175548929801677634293009514672330415936134653399749550838129099377603514528516249879849409270504940373460598684443170398634348215009360577319626305507822707843395947999994613129956062816400689266104851799556706960174344278888253083443685460468906331117958393874830510388580368234191864347192496026271998020514038403076627369832144295791118065511870105405989168448573932034339986999489765483418387173557063051884398772784401097112112917008490036949616702347628341303224107308354701752476186906631922406449823351730613942598779035731301529854350687045948674073064543051283635713264984542484697891814401502226716645965268953768354659738804716445102267587734536073818143099820307620330888323856653543737850338261361281332352349553089756450277675851808967339267248443674945868705559376752833999712191106678595555377159465923094629719325956088314157936948068075261303310675522799867312211002163593911581553170628787856887597862299399162686166651664545035909533629781320463954249156255528448771444466484339988755868645763091500947966449470228533200178840759168152327108671926498579144948601434888931120107601390962516160172901058477857835314445303359963860177766721897799925044351509982357509934148837307455622013747814758877415158246816468849982120762259325778072348830384219562259773062434561944455658728878143181568513644113203717252900662968407567912312238688831023284595265231459634817314407371631513819189098176344056520792972904339202655997999013131223525125006239412895083094126720448056266697381102544639189988893438714616961207696282818765580697845630622882615749112858935606347627917223989440764595755694121046066998971180116542938220430897766391754971626841532811638877183204467134023130315300101521078330370202641079372810553925307532885356093731926942329292656174439193519786799184930322684284508164206940179256481262897548513626097003490999134256525759749857248664407893169437295245485368896769910169490060803828279680091959350883407678218084193843743874232993029925562101276318912939545987103296991762586969186417324037662302492819358036660647177677616396724546099166319594729737505936147610975769528347729609370809889536111776368357077511612861809675467082773259554113790530540322945378581215187487177320784269656846263605411462280538996362580239824615751879874195772851411361554035722436288123880637662169131485862350011069102023273924285640231783528757586363881785736690369984374008057182270847067805576390867097788386982230755771977795439284800945305708293670183701095298212674172937736156045728907523747626142719935574956147890836530160340329105530362698745780419043754445810636626825593340731411752570384923614946126616785861876019120604937928815025196580902403095008547751010694430051863731539182435353399551836914259992262877352137457927436345047827428492853673947302415774020571494966867281655934315897651609884906190888951966389575583439406779993080413960489924757496683747634700985820884751791762204157938187756471657471892866266561498558972361679014773849443842364962153027678176988978542803841273011384345512894624527051070439876605683974028783238486316958350477522169979606879471196071773016360953589685897485322998176999145969785307593331275793602170171328591447072545883040257315075301163526425345605678064616395290458970522088355575822021223572786149735123823119861900015477074715437805485111786376843898716888597964996236435619321780690961314274919975192000669934790790425395553890595654672128449582273253529645124353907693900708839137212532439541525670332208169748979470619603684941938670807420554979116408496765160716265696949550038936129062173882507062303276767780081930087564500335502848405222860840704634489851587021675414045392346494385922966341620130595196189854703725659007164424956990768117090040508402481710983219840768049923599403206222170212872799348290886566074302012892813793320649628096575466896997968112650419568844993521552887341208091324497270547788893170087221681532588830556222408970462987604658972828783287937661795344431542893176560002183112070312504916664703783161940053400929206196330615687826403481977130282153639133291895516019422245848236902106562392833877029044774678958243947575632241536710342007982951893034606240276956987231907649374880576593844847839560538788917652387237743764724820159928311751021089027726993318366681462675651264690186559504952887382228054690723681895717492891790908973492187251759574784098277197531648015963447395851607178731421007255746994361326883137580883294527045886543980242176101899505104446933833369618027728079122349520233294475627256445996891759760636975501334429022325975345979687667759010351619030147332062061552724378555806517986737715413995648924040942660121987238753761040516810254564617957026247084460638029875941246300711310666737383785626380773593478552890203227047527823579390823088915920853462793727640736084922587124122093417476049625862363615344816459267764563505635152824310052335866066026277311491934208173614911767258264230393265467090427080230309618249469857057501632809781286784961720974991200306947447334389830687363784735629423597849815650762547708619749629149020321609516497463889356592786254076701807889514428223925479912245516433253925965642585017953482960466483899640517067255779818904903892383300582520351472541404360689484810836004068222100003995999826589881616967530895390021560217831565086667442070526540533982623185352561980863436523125958810219892613029303190810289835207996068378901796320718570012909065310398637148893820564589583720083135467906694974283878646875197660337402601625194010151769018465569943535630898876996821186404685776001198978956491358753940386833658997241640433899844795684485505526676936100150241126276691707131867710986583055476760626412168004600151878600152112338840712780489234479376956403956119144371757467138056071740492303873122065620234565228480343851427786731459887643210148474815898060072524406203815476297842625177854544345843942042143556701670921166034213265406040325774982029721850549157331996552700856480703108952873690368055251928231103757403005006041061110345587383520159498187056158221824379359162957572444470449597672871140493491536631180469635744128880620432349878974834381396133343148713943401878756481497507993946473300361777485198198945132032561734319221671680958908042467308768953556109024455143407998779767875281864713626527059469462337915136392250583739239696716924938906319894690163184903139893644163319277889424982136894014755304871653476564913399628654485050358732768684733450412990032948953094532952026038564359781405538537316529165834181653507462938149517419941152760504213613231519590401703389739967706497809586323871940352811421786111018928213760057278767951716663406653821975300517552513941371083298800017733463507649324015994233598508566627378306015613311843702187282756173438684133987656292016860980103600267514909308634368529619886500623338651570497870298413896606838391142256393219656910603199996188965758499297772609121807415534825702103586074500031035139393490330577021797310708298153127455165584871955542451416150040250762639914784679235975717198884717299193951449169475316307081416423580992629435511544069731454737096997375832308696396511770395664809788422680451335534208060891727625176601373201165926515214475032365531487074691308618272605176835468295890136428249522148370112952222493537212681857074173344229015856300372947148242759254429064909654158940965904380269459232975954345078570065543731196985129616027351669653532885745699408289456870369324880578762349968787475570841835344883686068875539777318346855318631631822175026835126011496940921917456838190495690707667157448350982643901713923908366776421062089911179958050542066278316350828199794999636200029979123675656105675128785126367913578954114814101148443928922897822824761052143388263868078765677589898941854316176999928449068822115851623234106554581509999920386494605532891293169234167878910953497328194514082700391439811126740812897329514755814548108045833664638721898249168276551029058190981137733898663951879797011736608107284730054073009234013854437144905080685682588801819798641177145019688613247361136312676887722086934882768275818631320927307119948346065964769675616375787513183969401390681001572646937799086311024909248761204004729106061710882261503811494862414675166836064381097672109971007010943688673261022885344509195670165187628690517685129882948197227328697450315425772870000479231940919301315302200836954871309782903039892241794274498303144001028691260747985578952034183399072473762069892918921560510014138883735578632834646549033873563303229382336698195347296299348907297482241682605023850918781592087058999378543505538365837225352778232359461700010378865281157157797806833918272437171477660675535946018911822225207615320157660074343116089748702618982259347265833838193942745613255506777947615933417715650087053149279381272503291419315324257136523006081390291888111980860931752581124247527333890956754412922498233836540677802951551428227337415821287364655076821186755446472078959293659250526928232129950187666294863008433399414126568332401777045440257167978048164442298607963116522768678965515504714338587696216862466261761002422475887475369611231520714320158775638294786745935984730226798891459450836832236862883552098262566922325984279848455691401432417956180258513511610625428399711689675014545218631378761957611929831565230342815503015343196726603318822204669390763945934580313952817667105965075969461974812214783405315232044361518615983464844188316556333037470165569127380848330906099604461179418990422686624578564022605031052446168025323775745163246115753033476269803165096373786227194640167063449485875932411539360465108528997736799037404537542671071616280754619405580717702473141857719900461197537241084906597721676767128833196378001996486137209294043390746840912617556526465406268421886522723762601249544787763979001626984448282903044622148000775772673655768324159242790434544058571604393866868079605471385408625749168955412768063035993751057236736820677943211819314292523277344645296472994874124086611861311775570087239888717298518730889070481018512086614201707151452716351035089213180078669596769808444611232577968810221516002870482927519898805542805288037688747927737298445330311810074025061517702968232926897668962399407103330780857030682147372111017761247204544742636885417518611004840135945523946105322732666639027427234717729209933476167603554563387029778937904648003107032834391394152446215391819668316111013121109228292972250975824580245020935659041965672190727023329798539123922895192508966218812018529376339289241743102254511912572017908776775541843122649349643096341459225790744216219286872908188943866073916337683545517914171321727800212414024893289811626346238598877330658355625356910173794642376601859818620881024237148465006804998848123259014674964480281309011951704746645086473684036962748860083274013902134602272010813477036040805232191878518760762000287882171268873012752751089206712973521491182423658457703727549104149144118027603709824331664182165650400468851532835815069835346445163316677502312700328409927252799397554623070655133056263202208416732081875639086879499697138545982059911759978749791450160161286458612006002296425811622106649336657959645633984399362709589008844569004892560504328336835570249659867419869538580340952435987268393031690384309280585074365360898777415033147673010894266091249581838334013059362183210831545988862876297802202843504630019021342133653130144739396671015189624167452516065127292757343322716851043960024854032543660474281244269194712791975593878797120556374434633266672089835540451977516715045365722596545060247899907758840795287669216690244001089849114851946703668878445066781234724213193521429604917865548117861948557004325652529098411571858024525089284384176820926071705649688615127734474847467123355776364490049336975789916064625738077506826862980336640137276923755281804839989593434751959101391572381208147464905790768466304846449127687216083089372531986746839252305613462874871569294930062328607402515563729810381497947051339048375324760173028891383116249847611759405427868119750541266365296840016275649683260447763775801861061287058138428180221010473380282173355009022930687934573751107511099581821207224571596502017941158033565054831624623006016995084780251611554730190737626659806935297023258889377806961392351671687086363021029571530789753919504966954684703976884632767354655110563928845991598528923090260692001815166454291180079635134465294972222988614911961748009507662507138835546581327625471441021965608422007393092940530281462673082368990488072738629759253255437581844210332542220761202453744847111364197742817942345486721336653193618012443503029727033151833289640473383647622310964317390711841720470915657873840703070704034978156497185317796826380125768367192837576495548021649157978890403589962811074147483405723281820606765065631931733759538239164207922985813444701706617130245596933232252582795953760265237076454303051605131402906297074734748877127936354033860486936715996104228074215227779146060730540408874289511107374104746993855557138435082576108091264901933252870811383332562311290633652174077124062301656955051213197993482285587258794496547865747432868256916936804656085220171576191460022782564086093500327285733949187235800175448007275592756812138677418430499052999902154807080279703498134778261450983592526361829554588019792944068172878493016958334164752383176876747908352404017964943486820279392524512623221143811341426094796439271051967869125776100537400685528784063352580676917545629010695472890031546858535649624390883701730387475917539444860034059168087539657932150065195828234233081731161420202451088981208143051728522939434543683365674869763908953168021972569020379109932333712977955754617569181591124571480030755524844027956831636225240173085008245698618696932560574325341386284934815049437745146585703404031277982620298918706844630037924348632110055364278834484271217878665924980696541931531051692216010143603485316635820364993830402922865324079126921430762949608769339067498600500600305921899741255559859120297484963022968930214996777963436938863280660631958851965983407193490195017463187878993501509956497458880218019025111561554969686199526429930344011183867218757627929759510457562884799978456101184081593667850948328716680446470375795546985438491834322933364906009099691161348156660166621216569192580951100441269406341541871351661426548732269827663289764613400644992742655711857727259562062308515395592780855412921752561946185061734553009521898858149794630949402210424852294702368577755080098271600758137819893115357655033944662363132962115702662262426347706556372724614738531304697402060259833599062825724165107638539585117273889180133431696881182940792288720353945849636406196377319286153699560758962058512645280734652729663312102172005757518104840081838063837012164622379625182524961568493158756266745405855361654059841175693099993310112761597315997797367933310525829029583920048910832816147447401373730401678936599931183926838485382748822718394548004947112857334493622510063288423394410263677469239087980460477850671690715727655199657030614768659819765451035552403048945296843093350344347443528660260936053470340620076055907742102722536666969808648717612516868074103167164201658414384427656399971949653727875269951066986916606060461776084530706379725221208230863752552244680344896148081528833591196894747080790300734359183900702730166075504362908511833091597390761809687457665959959020063191157585276787746733920053898652921064873020408351456695413166497716898754179769379711081858095805125580401391967818048600732953450573761592489951605403870451211083169791462975046607194436561033333498637789403084801067296306948576960122115291256589784258401125925442939031343682807934495057367982159359817288130612178428792898998887654473666704064694129325289476253036042070278525595309986469493834164318291897320364028756539753921915970579429655836649654266869936166250887276044543790770235787117021003424889427973383439614014585622911810138454284102268817014525729507805173731024777233068745494304936851718905322420398180754520029590913128606172314039389688936364921767294887780237860466686035719739952499563432344223028050108960528790176825596950808558245758133807602371046178517263115284902602147582419117114525663308054508274845963730887713893798131152904046423476959893843166744232400754541858229611479907959173061159358021423110667481294440755496191556527547733547043629152823935560883151668648075276083814985978800008077003596942245492227921724481601189735055913521728179209487409707178507103653107732918851002838196931289883301570039518760628712323445904799033102308408558430580006206410577428317273083604826897946944801463790795041324309071763448705952022785074634307476962872429542267249036140018016394244387693753574571577117142680968870051944100607732646002013443121810217593894073886745284320348950720290058261631585208343389671894530061379160771486507166956823073246265773762025862693250713086110085853069628629822624573503486339599160396662576755147672962173377437618476524809765712605943326316778516665232146983960228844670053522327346896139176541720970311117332227102808670942252914205180875459039525711744372343893883370576537515160151184023328639442315476420447854663942363501208104565771514747895225426343239852730421094996762076475750603076241964362649197681912083599994938936655618991163186528466503225714007244624405319722133820125535466309011031278170979429812221647445203031851782783310762367773117292719992288790385568412788414626059520349557686254532910899213587352791370562743328637810324374872439144306172371520793615901394663892137570554476387068512454839051136503049789611813182919930098860933027273150835935455653558094251229305919309647845305097321525094949796911494513929354947855374773493487698168026953307452148025037068813705006356202659754084287125677291047347197509309149697297383570381461347390795644338697820395844188856235384107697406897961329756149029043606074282766564352791411874613324259718482471576243841894284084043945994481213664816368487205421129323289959063363037048870889827369888808186469925655283395749173189636156661425865235238209142937702689488018563599934436008890597915091665385791950500090754711640689365454808013829065995858678911093356711403410291327136667856126085272765572329089566828239261868967246933833287588712276576820640737573042038024344236985353018447042937743509564940669306790964735758569347982037837036334548118047136950918720631227759750141637708719862796546387393985208176310673458311514269579425005081634952574260419955330201080046407553890764036062482073927911718095332876160547192910301011475101342166574218503950529983217386817331891700961182075434003345558637973877621304617344352040362504448438178329173382189218444673686524784541129405651360501676603031308973274881029184923480951537630515415828159820484884103609489498642149740241416178131390718991610087415661851155086764816294295162149715812811670181570233898829583335035605291877725214649993300389237704657319110846296416093759592312681399550856193654257586947701332877244154759625920152102406876483210277500944554768598693967970842913768573231334672290616035279778624359320067957067868656100795150245954107064560116298808540697869302112335298354821113341930996651810813996662858650054030792645916885237094129762123325241458736425906130828071542935540799317281829912613388981541265535194268883751335132820627688903984777125924891658341489650737146489235343904672287725206607272543228805023332778264776871784196148691453628972319678493759057756117043791142979809285296914319809175508938833138901744381004513933437721746517094841213371621271987506602038013414174004067900476443077199322450266904467149218279704857237251107665841432213759962376964182286336007076952119046373979377253032636870319241452876475475003743513006078214908666451825204050946697108887648852563686865929151111122730267717277223266939878331577060910855567841104769830257243727344095315733268548455326065961139173549660429043174668763149428840114662357102438354147947443991941017431265331013862111339761218262697444218726653744393163212868180263597616317107239914021254622859875400575732129026422267153648340879668062003846993036079634647730214318793939810131791917329581897927497378562440872749306226449444971600955183888696496104869973420990683271494697926605656912659693277826118052032482585647488684208151248129871725585510817269337163250129142854551213986878626875099963646217473967206959427542944585453298911729642442059445327823091282561633006242712771067526352743900746186027407964831345550015413368316541656825964010385566188781406018175324380865727274586425894453898381859322918370315471382170106114423698924680653522416803324513452032225869536489060589544620516232387239407903762434000137465387278827227861569616854177725745034572696337887284588117008112121843528859575208801769889265255741438195891153669663626076084888120513147821511189771522017705954137516790489218707559092653125030196966612447533406365727757700170917711822914540685658334093606781100948463001713750875858917775221654431109318756766462085349397964682595406044290424460245042158547235350774453946336159559278091310019867709932309387993159339627659541802122406675611113820237369495379048375994144962017691767102021322190467680783332041970047160390865938436507477415746016197523893482240502912290805860490915485659459540853459428697658180217171562313554780309269476843044913347101567777638302881419611230284225780677306069098267822906636116361085859270558227019142129999593094493482358664911008481562962502957657304798418582105592969785203515369153900629107360276764932828146103042986988189320743691071029688585316868738753789428933047883893088271825006058316835907936092836358353803300001763121808924750288429799283226974916286242950130544725472002949114268141668219561097883187542273022515679008976811362185642003141552550129932312759994322972935153725562447540220480936480290558685079389245214333887183739321389017606213096768823943035804497995721722483348211484558880734388592417005719375065004197235158101376236220531832313878270346469167329136908321487121263670380429855692683314921388113337255876836692184028637068297405169601954410091211211578552618006326448989144085219561489354157502658011419601284515997616334396505363391751450164949657614571045592066194255825555036983936611191881454895215137350455668378707194464917495676055442160018291078897455363598631049466126572647935973983147491662393701574321706106607320373269912816056550152937899873998345474087818654144860701741568923599000588164523010555067414283169307175145924580625851945225253486352274632321953312518869769300411194072539199160938264945511559451076054968427075942463889525365015317514311327559510434799491802320487679672145374978975923738902295109380555110316725072251648018698859132933262246794161234005313979349664839114448237997439045085347773831625459002444778390419705246769563979552479609579558081913903888810451687215419454348345618964169970267867928554785856056460406760394043014823027070214375744869544675672234567798850599986959289815026507153873469356046240605614721622186478683857980177035776895398313726078957999024059785614188947565485213235445369903028586218756235354820714770088284456087203440757661787522779831278172669842005379218020459224677947405417150278972634070359562820537856728564229502876929286093961642240669575745113974605898159367084479152392668479817739520564448974355836415299204305562841789276015106082689111866614651886612817285060351406740742707259821689827762237019984575711605239136069661640547462987577387680797204041770106787308678143601396280003976042735841284063900619687887932788420403964198602560551777745094110839172291076064536807321934499196796243000406607600892529835718820271759207545147913008590650997336893742243409244595852379018434845577771749865580089933461473097902333796039863142349643202119443439336045478559667785915796341752224754421717372856024111782530835924695530241196352501481067354867420305404487072501806704937462741260679237753138643007652158462272894859543059744983819651700602807957707408130495025805381705948856971820643973293462215950703298018578101793685658927336541609978602175974781015495836800855504066437361556665305948046981700090159788011251216361245164362872323168563917027420987272336709319943878590781254321764306107579428510993292267382465336512956515443258612042291076522825775225398708970106925058164660975517994526282023678573359357502428245070632044382405500576504716187431958139093016219385420113984484695406277294550240842428095377349170215548498580412995181892023504634159064289498847668090939722142438562297342494869648564221725014306341652127281710949670298431225838438331196656859445882053966574696907591367559591279932632415116302913767400793196478182739827743302867411837786292864180147383721399346660367411577092369556427507324361401654604130899359681377169095937706374566252579399155471497572685605500919938556550474922861202386914671726981551824874523778123343892542752324247679142298348963485459725580312475751558126024321617757642503037464335416825688861348865111092240977379652313766626242778065917518607638276196007620704452177347397823283062726953868976788350311847400881939506094038783149675081153255751346843017763371029803452520950150043520500804965493834187378653815108094368899294804688591126468049703309588156676789963456597943168967486368259741410232436144842087057709323316260040030645264820390849804182417225074186208653257848927762289126795946097803858428165845512682996313810929941601288215899681643826660234979719509097345044581534562403732575688750384858005861439441219205090590282966231902772818383943959375108040316560170425859733053283171636492074234571736313910248234696542143024420504264522605371218870835098977387033158346273899751253962247117988177960296479482391243136839936051535844450570345738541480014987511673465540751232166620641504303124510635581139271508924487543666702347478709171160972250540967424875000549651295657878495314971491406847473628384157175152473055438752043809990564927859104611714070717175539591141015199367421126134929075850912265291165145271212218380120237089458304549084293500552994581111644137332144972341820006863112067418607067023192318764930158371496836745697834928066145600795397053046567417861912837316798074381513337131554732001291744630293789072030376330622156225778714022834996254298871299537824120526280532613115174989942798450909287119063197601188705700549631959654496188439313561290902211526630220347511067840099319029926166471914970066473984534216867854054271936807322667205376772409838981275110795080451140590633257842704835873633399884335104744008589504645267972982298527772828923448929675691955592046059617506221405170407945638811692041432376844695199357417699860916291490718936731467914376470141121908059477643141360554108108126735234836734853530882432988058027242446153892310586846071838658684606458106660943692184603111750148180351065791159811543908456145500397620039916641265075482785180160384115566616581414106047220198599086904303888299698785595377952488761296700676996305966500379061863151288386531697171190541776400493661794044828512553352129260227665407907158536132663765140913678252216089634011611263895972597563484844251109609936029195388508894125895412679749347796623891300094902286736526481008734479545809471821408643479839660216629779428581985812273406080603006290293945400849404593996497103719214735848228500882289689731924426181556361159948613690729490523381518361219877796858126523745453648922162832246225885646613471934727245028850470205087484134573128929893343677033695175681012757954982034477584026367609618435999254203756157591308190484465894908968490886898297008395135896109406322534275821671853294451040873614216172739988821270954942889007787654013425616523433351539169340284973273341686117219082595252494826521487705097141066073189940598850203162181417613229109706064692400733381844194254354699714991582784763114367984420153754317635053135130033652608076662863144986364333008658378147173614593855869041700598857092521078769556540760483258690239191209511746970343826589977480267472692056776280528722617771321701189200227497502953857893040907575887711456115665569401181177191922221758095545423104330076913048018203525082836120318978410786092994251688250686998520821179430583056224501876654293008120947249164342943726272830263717339215786808313904409373724816200677416615726348188270340183694443538963789213774011687210237976683200956410868367180989714566060568633026948221454831770006902466559661165591016179415706255985053587052587121133054644761572039633691837109991642952986312532669792079432390851104413529811582047906445203965897039762905540959799761275035645712834151279370520628156239640165330746456577234664027326695744803659430212592958279606474499832242224929465214721242169718225242632841470411318793515639824894807402333883533850706482995270220013240210913283253830584452499619042542002047059956389762766765163457953519311530913550614230072009283371928189701191457639886657218738364462585080703173886681019800488714056212780965493839049011188577898829841940198468073607657709717890035685057827189973744001550028685775556554624793394770448142996608607095859528980158380707271306615350229325857028870229012028078036026119793856722807497642806645928445857204609150792992103162636520460884022390994890633933755133012997611528687619095185091593005398879374367888248064727083569699680864664218309590894044330016491280564627957046049345305126634094460940499005883188562208951740095023937338907400959248800916733573995893974814745823469425960285851392906379107088645914761189292311913269846717512442968285631780442213251311507218744397674181695062989399278552716800989409826277935139447557322533475371721218072360229125084887975789079309342578147140427287068682378440487177248832555475529241908920500259344975098548490729763777513855557510836777891921650314566713559349985031004102325083187849543782714452312003090628189026848804730106512060999857586867713585341962233722893587039836235823102308395292474769026012882121728347460857021030488692639648392093569173270175416557270300346693367349466240966386689726757348496482430439580234259776735379819551528745922105310565547726759654055966781709334776373743187627615882126573195769635133496126670472751864008173686898559872693579127881761904445542513149790004656693578635702859995892260801315420241268574725063148724817412689404758397787876724451304196050719835791771414436035204758675397815942131238141160993739033745330867368217331057589827974537758348335370771963965236892532081222932043564128767931466690835706051563629634487928261078184449008945268239896626681052558578424693185422745376481414809949350940962741155449056550265688555333226375271893478192387214218377487194781761094466686397957510262166881291702149875799778054845782605018419005546753795061129135233414662106338295215953532585595606110269010318752054268584007960929182703634345870907810568137280386181152833204580715115885389136084009107738862907086362550096796066289275148394099642308289847673431644546615409017819052583692026653538721746635626860294136643648583227704434797263722237996806278272690616825351880754437411912116061570615626901610387379274688243982917998322702486747195624405888724982365910661027826153307805763811505877349431102597544395369595553026523113610591200582911393284829661639781212177607478289724695759858500319433509859910294218616426976696007344817710090231810017330480704296730151036644770884185656413476181196240367553237457424210292475541193005074196632387769707996067906188625412999272342301301138372098050555623043246367145528352697957118624816978847623007295151373973222035370965408821096472325908521714878844758535365808650060471810614087239774623727141550897717067411512359139974876747667332372799239337197965092793260732450942366435660431992500932853811568849623252477767613722492504878840951911346835832723257874692729143266559165415267294945729758956535400063959472181209303380772093740968267734954497533695516249228876394725480043183768991205943423300964362940375304281641599099522176889343467774981010516689217680911150089755308233908300262055851437249069545875968517059148427327421037602950215356814914633114348340874688760365339334605313892276355639990533651378959876919608987648499409459445989611378363371191720568969639392565418818586537187820183255334258231613306124722802388999427078265626435064707808146786726870647286003038178453542122579156154999133519330236912335552215665933402021459039070311594201120298726641150115529165187008736205972266281609649593033363746913156124640708513192257589534510683026075473321482321638445896694576116676323301685125358107263277152349788809367106366313539612697076552189866050390450895097669077430492742454388439204306767258164756964221489014252214177180884137134659166422918144051256712564848460190400036432508298115544392303581443962500035506885609978078605413477104897255250203039622417803128964333989427741835547367957869741994028038683688870107003774120143839230035768604965130646354797674338612765582103503949852821922162554191200167416361294341776101730986563383643258098426611448664792216991096110095056639697797521315689778195357653791453607253222786428768882835710448180990914182387405650579795330823948342728610715454109070560253676771992719348179171883404409264575036243116435634706160880834567364124265091541987579813820961310140936408240660630304998399091619634859511615868663981847276328563778429280686443612263984213020048881725840266092840019579280331449692183769491616389585868237820617682339012582674367760329165283647363246398538196048702869947913577918258368678646220548487417718107880012616314915595514774137485563398729592757504538411340962191603952571162559267335297107879931301260444644579006730755641734317168226578703675027866264097930899555325778011063739015861206050532457770132027831447694536882695968481450695253006248093182927192705521054129942290297072828449259097030276452532602401336404845164164584485705392918790924017733986011604897289985081522777541514182939461044103923400641714663034658296438327159818698979104851939399314092955143657921275206526657389548677967553052275962923012058089681984752989238675248267992549554724825694392612992636762162782924558356011565039862656442986536349430210306543568492036151199160187390668092052864245869379316240171244906754963680307401709101982813301970350822596708156313155394405011075418193198878668441228405811195893558680412404886526438786565976528977096322544739802856161493465570873372176763975953579286478189920887780772681257152311443994842744590726190624046909116017607580561443728208065675365598233148586344923418265102223688305967566083633270688465324088393853280263528371811076414780627116088292879984505098317479059648874721188760811151378153554779652226168128665859660362544042375732360459399976700907024363926117876887338481219404000238347658296539352886686081186890925952963802060082549815454779664886699088939924344462926622610750232707667657048349654090693572274999389336561057799168621423777676224739422924075890934777088260123429633967553681705421251918502195268920053350021833827821964748279995757854368387709565132054105432160970074699341285766769959438505309634434646872490664378929120459078845831977375479546993031190566307427909304368171743114935559147603631495593707719646736651984037427820229742595676610059446322502292143094050258876144990830432514869311471727109840638898194526003864470970080609272468387569973236692598955461855759623731488267118144317608849057590988811563406849545064647328275818403541586004640619914884168092144368726778411762834976492535556305103821080903553985521191406361616512831453130104223786017628806469148284536236502582689844852993109357300988262692241815551004603552458408089121141645566930806917428746443454645724934430826021758697168875087938948047386080959714558377293520652237723934780662638265127448021335718722859374153889830734066040392805328564137188793765346972427652127028074553243028835996810232112313648399300500625193873524185517055918341611751986281702360029418501578702802446034993792613471761221077339234521229770573287892308676288306070140150192193864496711408506036782611643017516339134621999464393788695864900609476231898058074542392048931963414561214691781144673583514675187607998914152955042596327064044675037133035483628073208218290133482325120875365698413267899848432364264758667846387688176690218978232909205788787367130537539796494452120974349287821941855760352358147968266508684433247063239960762077064742921037942668155122527400265168154204214539445339461287230489185347226783167731693105955057859173172842633580438577601841432629371142946705186617149586962643802723037796897458727559394706876606095937742498429532275177020742052922574382552341057770055617598559052857896574589668700087305821232205006406379993414120716001741702396993129789830582741134732030941209813257411354494128217851201548816287761594806656247188600472206692811667431581607194524415568860572829207868400908360720427819095413706300552189113168127718789714082936518635456233752383616211274332171038371067099439534745610135595404155686527624368979210004748333895356500226499535280415888570905055298187270015230057701187032465116744051921549036386217648149605131757983031572845722518917996463804420045262770298930088549387023776347718177602091755821849499627014908738530648824957936482389811575159695935566924658758671644726046952973945273406304332271826981324174712130611534692202516236987385022337523948205136772320744717055472881970997536421236922580620610961013323975583576779834388432425809350884991824454316736220879293786351314843983260425135653104525395055806230568629852368232533682650666765682142059418388590920453370860642251997089814376845184035243975737275868447144518440840895468434671853398645358912316645690101938990462468871184047956136806353434787253392541639148531541074406187812244087017616465038967903649608713917986368345445684542153448949229929335703174400038633512239520126073192678964232112785636113198189713524437535799441082530795708014121648798362424677815434527803207585842987689607211952097950591863701613850995085295792092644895339497942363720231734124751050979840533808345936470690901631648927856624393397534187204033073361746607948262002214201265863883840274828730116395702344729786020796892864287758752524435424493023092990424596160298943699816895859959070073200634240947241855831483273594113696060667397706382992639562486613633038717670199003085495127619395911857405768905773027890910358817841185591105771674080492826332205571615619316689839952038103506888146541032491348455267569402856131258624879670915866054490095651340366657483176279691098823737981710662210319290427098721303941077338285458119534402580619810246581368612190225961763501713788343466031042477715064284705807598539015672245366572808328811397308337539529209208982263472849416887600601724353929593415930334727349322240006404736698717697546947518638899841745504012782119276701857034085962852791101047334049024444895410831083530212393499492505732486796170217924902156249683810627614116015683988881442642327516833816780187009181858700714161877942114461049125888767167018561061584387460372873944112272384086177364663783487949579612304031824315306199837548839778482683450658776264259056300059439574469271917686025075955433237914326186975039180601640057410605022639418087224776731981350092269519298307074073290506731044201411687753015942907252412886368643020611580728106784856733974812680815578356744045633636000574733723147765273203432328113822425156637091282244776947842340538249388397298490584901550752764317745308588404069858690020074332647811236291726444022740571619726843672765971654417055089523145247094101553336198561008507238421674734993954754823041160146685120970617838670557882470573664161167617565638456924814605307522841840561658872084460297429239611166210137843860028446217609739580287132338522470936366875760136423343791168631596618804126855215635389420478208626583250188792436261695775048189024877821750035215382635105143666895861096276958590981768920103985615286548257888071225435341615955381518391193172026601632260379704279581461344259679106861382091889370865796875534629538839923961193332222208167483444103473177427904031292500898219440507504278482222461191356785676075885509082923501988652601306822380296679033506672131384402679217175877835232244354153198839661759253143361696105440854117948779427326532986699710520758111091072931344931862917917660436291010114369360378299815528037970929371999493367270608280113457472651083315512895346114292874670114807846644353172228717571915968796747498964042903195585703836369225064214247359127905855341943467246113560909248317483386211614567813589043785080814106967112451450168141589411267913436827129281605445983458155080057809498255127584426518509979821978986385494124288500259181039723417421338453948922418421493272420084963324393278607143529826759690694252741817939531327317654512747113470150743464208285926643858305635670667699649528846163980292050698060222588862854636540874497198943850598597866353305429989932509492223576496374378782415452467552778141111498494240731117965005823387958643586510223712758376326087557335878740345853624784139571389834253244276214033226318235615286207612273495571703892092124248973856129970406173506191493390668269217031034927124499681734605365761547071916360612930527214973814017976150559078070418311762962693366879616773572282191705735124172973501516856808281712995532712487517127000635810193398167663911043500350557957315599676209514394592342557652063067804724091662421051599408882348926737413797492605960024444332463713218380203861187694087857248801226697135461241223065203397844624885727623826254837341913581745133545187672839779686569488128172773254449342797549285021539650980880142343563211179283606622517738913186455680205861692962934695156592327911340149114703102537188553057273315149805702104498618189475885854855656643320092224410045137788790845039096602361799016439935687627633665451124851663675643205141964165617085326974397336329255485342033909246394969045573018880838193959894919016828224572751503260115525182314823363351353609921187715322951577830772492461347408972411282114979667769625685808080443791999520756182082497181364235078270697692436699362340322875322625767299515352592505295510528194496207082537302430735951992758695388932094038581181534374344033808904647628007846799442089761917368983531017773609207485234353365036313536576773923957531965272333935974531145855443334085841153318602984902727297570485424359393763052794567424169559402703453128146762305294070957847194317399877349607620828516775862837845726066339505626735999891837653951094855449041245462134385776936709372858113729737603274383114223560686179627199879418179550437264737950118086306305640315463155700630412315559410208863734788981352568724283847587575862390824605086553343531332893290843030009537523071020176301821514534581376305010860328708361492436349588764603654364330040251436809476541268626314909715787404069123266328478102166193688176730324985080274425431962205365512023701790023253183910663267951624780679420599514861201592556585888712147674630782265029293405924814336529459837435285798033965172679360045912433375950617351899115513258049412517623714005019678981877461184795505915260931212048607926975194218056899970564464403976314076182737807668797991105632218160590966198886399108713763193672593175777838841882237578608204394680628791093335358339016621665581515475704759200897241678124075818514763403911676016658211141980375767899640392873001384355633755713590798437540506676162484755618046311118554450277950080493562016414216075140027424866729081304375686234468893798336209253446608520683994154314001315414887005101465263334694115606656073357224524175390172208112752191597630959290213196553082743955938350567339406126842100250602173900287561879047166277218622344665819319460567316239143914696632578645597079779667782415409409333711970425745353663090047697541267692180774025600000973107788010983821365953335647373107276973804893262753669266118924903936606226505815784625545014054354174994392735993424949747721168865645338308086584792615886910458385250225008135679457686057983342472625215998974313457364577529044696168818749302460068975414764700160476897195122464759855913700017002330643755846570300362725991911270674093236938799513336276411416222285184926624871820969998928302230548699668492517649079129098541334148713165115922727932016973361719287302709012988373238556239617156095025687707656794627968752759293719854377282261347276842058495405875892883743996007369890666440548696776343053156005038479819582561493710493147923066586522034310289125616106898623538568508221837831204009102182261387266428730870828423880329764636739865017677206398009186002089848406973273033205238115074962909511094617988171734099108451922059540898962490622025094154046830124971857002406985113263811191914954401062243225694184177440414882287340593092835166188012452697850698046635832796716524627064192228115001483481710209648150563210042737509978453130420427890567032137307309612396476452216525678885326457468276114364946022984876378342156603797275258630213013950051550325646154375352518681521713766435216007289971515938962985670395208835520322751722877937281218068738577750960254967528307547852693220424008539370950816488663974116305597399123778140648776592147602180731533260799553859011189684519381018838698274756612020224841319258556495277424017123366115879978038804300926865771375415083490170799634559976570708453575570425680652276147112374856725806028716023291528336035788270908098582184639024144112713119784161206543424903174133084762253173311150272432799365293356818902567679020632838632116700800068305551115023570133252790172547663795087631159939963552769731007660132314969535075762097750987633746726528601892418598234688949973005845738860346374953808874704090802729362761666875893470013499478757416130850614585216633510763413633971096405417258190233877636287430406886972643989614590158536619047658118227816715099494807804126486065906107788922903104818580159539233138919877787444651323517399468731839740341085264971410402040621583514964904597444798038637318679570968976714423460684017695380812791876635061794304179970107777929464260549206707625201724419382430225655738261605758769152780697424216620537748129358673143202165161947211039895550055233230975561211155161812677813568014023205709412934289404398617611333646109876537871505137070804046996412155894693172229072366666628426807438360636147000144111586279386568672342518574198065264814038310886098741735769071790309917988964591115721104030411579791281825554295424238159788770708728057498674269267764820742820322817642336121068327708183382589257667139841643524774791040627496127695533868801106386107102228083205640833421609322159644989611041999082311069873791597196970678451512237742712883477740353983604263439970069563502123509976035791135027280007708915022485937629837501627807468021574806221726080988561395391737917523265667565601375006514441560759461186491522500237592927144073895669635251930875789573049965864008616835061349010273462602397732420836028637759716703023214098718874602145194948739869043434550248916724695267242693548003365401620367854874104908379450774598837141399638575643114439661179620509492879483984630902030677983616110192213763144982553469326248019608102656455514529373181429270113847424592636863004031203345742880761680715562543483467396882335523639877879647843834245726349295046847995109686041770415004402574130417416388450937302061552395961671824651489070522791312334162578234936382401278684715227565978650575648831374653627795617336720790041235977027304127377928409641949294573809381981330883549972298317706957889220540444597090633940687573397235535925727780184233687029500190391342600565543938600608122855310442030941484151126288858752002550719909811346090904383840817899819864559278715388949653878307682423607475763588428000294771676383797552537881684303653260321130975935545608511290415776140800046122059448164483662455471128530279991148563364650196422511948040848615140895363853902785563928717075396570400100314294025580897776587389311096860093486167143888403599346372255850616851701475793861971913712499443513401036259872594173886595701155001086676198440873552193236725522582398072866060453080481606827386264246573730942721287718898466656735779416641481715249162852003530809368692097064370375620753731869812650582579888667825341369498614670305191643719997166749049191940284298772904993314815249684537487024612681673061891867063570015758614440942410982875115706809984688108527592248968068344881318174448956113188777265693886719503743302790861032437776021101874122822143149530380055229240321439982501881773723321813758825935879721323299807847934913616210013658318310182506411883275636852151727369040967523866612348808485263589703276704979007846084829808657657207376972416140606315869173103276666543548488083054791716064083101968077550443210115510443711260231330242353419739721431665675131840413613192094168940979742785855236700250145095832490524203773337880154972738444769077052330989019214873425919543693415144779492910809373776795013128944137463692557477607029542178539991986698476592381448717353611068195464444243938234282060064478275558616879708063233698823243883146885738511352911751375768124487210933658373655725771385861345990230001755294209147473959407049879522075427304479565282212970292815718611694384930691134708788224148897256477122560420146528663783384239373110284388513285196939125335865644287430963706927878481251197563342641957803271097713025289376839756913261701795954908212976603018244172247327282263156203750205900914969123985664689136927420556640367989897769666966347477203964835106640850789632826233731486108244922403684887050801234567634819017731339122921354919134643807814832681779731121692949054057789174679992284683993019997580021556261276069513716721544030413155429986243495894925431171058854480483177726714858122795928624240951675961862703314809158335869670728836689399198625479958754059558785344290433379209502719272169586757599774330584124180947003824498827819430278528521116700690749920126093223167631397997685158595321723614067814255522570610178332350091021620237091954781164389253822308458648412249512544706920671441737016077996901110654511920267771667248711057237078448026392719173273541110172786301722180243257822434361016517557615866537804956592896505936514762597849378013279289095516633974615175310756136130776391720133416781499546006717183936863784924435274424025885955684154680809349071514892100579246845674822137186249117449122480812286583218410849874476168576748710363364789901129363445416862962328801280078372254122498715837150377894506094063058085101211399822525152662864989284144217086206228919355869552465435828385831625298792168080640040782283671520908629807924684725849320822017332488013637385961616665919031018195565058506946625633335328323164517271713210879507306235405383858503998650939596597144198008113201580933783404545687736669861247428577930984018067865929564039118470642008827626190499548340998733133131271693198245927153175943206645127052393022120991516432825096244631139375830618958416037458166491497339794300235943209009250721598918146027918547698252055755450120777594722494900298356426656050862210908615600816981827791269379514522265638819969562887782186056705516894009620426036594120298361209335931351260083710403300958948070384627800001556072128790300567230500982770153389212955692409600325430403202873509511057460353568221070606848714148526386308039924091522642814978853500041416152784589352366151588986103639745892304691348226744490813809519146043790187049173997002167758447952772806839005303198545725251599073555510538911818584476022507471255812054239740235988950374172653960155398761755198368336185250520178138991892723543149955324829074065350481506376018361622007171909406495252248098669099772972483123719068335130825756023170037633204507502553580891957691981619389768477468405966773768590320133553850988210719264772133020259107159049474806948897871751437383260552363856155645543192766880782805911868972090222074663496086594271963007828597433248296212237819588846341059566746911474397284770947460050806232239411024122128637488300563541212789496594333478664395517575588427234089292727345833185681587609625805118542383865567611518691744747465363083160242148542599283307929463969160253038129717859507523892792702050732703321217468036860251115148257704502038342657635131322587199546646600544917849342776468842055684120744347238681349680799090846280707138685015846615137303517067833394715910186389196923964268073712655156466461858017195920369618281828326389297607776397758503952984511263907018446045185780251475755614974967257444056607007695491069033774998527813748100573794554623531158621555833893556887010039722534055638748281594874321376470367966919520152685320657209981712362673154200973660844815801239978149085937883314541217981866613175960595613962219687819030578889002076208747260785401236661876643304688254080056583166751672345855704788665169019879279829126808748370604297597456199756464811241419222121170390008642287363966659197619659058890376819069066074373747102258662189170735504070120596860388153930330262536290039807881468662832531369181029562693908279249539976284952519480258722786149601418372667548758224514789558138917125060086237854290183720815473944163197410355879488947650707873761654073911213765877865656457299150211661202672343681425224969554211854629716564736229635717292383077474432272311909377825108476768146281391209936678044540506767122434844411494902523646208558085101228887696365914970838783388080254993279406278067148406333808346119890985338362532888160167548143717884468438712345823002713091266897673448370379122891399788909952517511071116354101373563059122440752508218158335294538959837519746561378336057119293978817454845062749965655397561938353756413973174907999558488441274609438790608862584522870570151846262374583379372165106191153763481129434562957843911948169718929902565590238466735841501621948008027183434276001603073793698980700607913139318693665554824069984679241253151110080569353678729025733314039355517206755096854790847739820031333372685005612863875590395023017875916181279518497839018770289359172854789522983347842178996132579174681748448719585243955592856696030870777939491940740609138218600117133301660329196611000371842539348996878886667880457064560093649173459105933271162061545473652615309674275796282633686516511781961652750966322330155843947135989641520579538069169176733056136802869608215421012073062877831511370059297427004652914688464947252222062849452401287592365701993452499323812977922113291560611498028722615738667085400240465120717430947026802600966116123098942714757401183421525954432089300596169199148844582209511696258134032470293954988974481705602654359705431356605776072387629540580411630365012116534168942294270587934369426435237246694626076350989773054992000617518180705357716855073517966951370567273154351447792068289437215306450221810257442268704861040000767123695813805970313168276836456369070267176351238554161952389918913108068532994433011408955505576394799515979102434198527769052476603067149870163473962291171890469688304171210883202450160654959554891838929419876471177819814651475529501110064837555710183635459562049486004045813268280589959984887676644210489582095562966432662714409267686682416914887053198427285494011488155041875307240257409222818677393861697404308690724434818531119636166312682240737738588797908020415002974751067591437262811389087142920049804388005472765110262451549208742102718646173889881213597979685406352393928491851736423604126265898919854986036447677222942579314164023341572060361102270430265565881817589312303243976444953457942086400875776077276708862196672944130618177153848101410020054545004482956231659909552618322436052599841284905033185816246838613575391723397899250835316549698619756746137541186238178149269610205280938685408733619232930954321724241862298083503573355746664128332224114303738434524960364356764512120364337176874527550820389522116137565868582462843536807415382581718047701155661224643623700157798913729463945604138186769073505379590723335404502027934654870257232239471737855850828261564562997741086863944331145811307516942384976814471511624394274631434481232697834539320241015347173735054737150641056896492836304838904895759984505092824550262552920165070612816235541608670894930164443545383593514359545915719225252643927645254552974075588283296178795911296900700260046673032924782738910380379459257896580325002842081384679485310784785103371865470511612353350639318154958845181848251727674048896927713702803242609166976406979675481171515402334676649482016656606312047724005283302149138737862751688141102024710053175733407147866205129785924240788702966056966574446994399668181170986918574976444608715429988382793568509042157879825018115465164242586230452956351446580775130826812485079835333101253860273773222776256028347522796760506123952478845030211447991560686469704975121865365104616269019053049609571897405979525783890052863708112097162970066394567820293854040176703778850663809097167380133879769946042978834341476240028584764551161507493924103618335740100276268732446990053337166695049140629029860832565676832946712546847221338228644255557400240671088366909859748584560808687293575614489723542978888633632652806619108654942548338180475947745877288312149842304267644628265356271558686376737382885434620120885789263571027154401958402007161352646917693063869518180309891911265481034270932475285531723242065711497257362568056960722186514971147602789907542232087144748817820858270186682128022112049370508646879681358925406013621426445570615834708254145746335524188154964887164500158135499761831995312865239120342756162906085025952381158622426323962703026879879569866921958174287147911616138700964590506875394289454880974659635693192128465133421782418569267763515267525179378576813678952720786718332740710269617865695951721067900556472522954418933361296988113294956749305633006531728580908613803780314878925710009430134938493500190896196521872755580765412584614421316271911408145857233405015407937053202665103569276050437158588508966405930980143657836192339531910698562525047572703107979123682375174775193823103657225978738798973603273031454006230769555150065534991799135565654169192931711871731812603259436292367172839621874723963136912734908619800636432939099936681828346672221753200132685725288321787909070929676405630457655224902662594577545817761249702446712638782274973038307270021088777258175446231206642980276552808022862648835409241163288346839574802185197513497552133535538053456964830348163970162514813432787934144632934505667251469855652220286797090785564218349695584746369211600364056642958728152457488303998933714857335997013242025496262784020579977708669611057433282181405688826503482442612843534051611876129247133599495398056829111329487309128222732643187033890498575572249693397406585100041465876776592612259372337605773417385338677312090099035412000265814551922055515914622890788069444199746432755385022430483348586813372003995946686996809278011714171711341107828217967182547399726976880618766149418378845343511985746793239583622074716259018367705564322306205005033402522941213821218236480253574414923533548796380841042235423601970462962357759763044696018250894836848981506084029821528646966923394421578574704956187896415246441548238923842305474287475775904966983460733028517708653801676669639703705139910287419412564471922037384265138989406342001779790134600858956503593383576213687922552043153881604032260578814527055515332558703011403367534790470188590527403610084867096289323770027850347948614701129377162423125205165516332836293767294796242075038172028739594482323448441742935761840255451295807907647761755098661856614288954306723773230075243940290303610724075252529912288291384361105577403793732641196560399899843182175254099568997375356022055901592336325645699801122419926434366729785084289250928270969981449692644398004465524561221691291677641425884555493789874629373239179382904973431848784277454900373478094710662586551936006175993224909383417476688313489422839824347328678692751457285419978330543431762888190153251896377721466037482536876505490191684107016856313697998417844072138827254908445686649373471444275790658544501726663256378037231583151325938908277130250292347206834356283343051275302044763212883477071137639464822107006138557671124538929851586110502587131468632298001131585650892032515876170594716941070404625432919965028924225488325869120973545930940363513913622929224249104383170028396172056091983361620440624144940554419573522759244738371893892499440278130999812291516739064174221250750125408820340103387699278964878747241723411132174586068489589993703003514100667496394406326525761938338982711392992827408634366233677520307714284990099181365014784757390959825637708588373311300381210166672015607726190258625927621129997726695670852309815089105144922279728898377289213525603684996008000434537869084562426615624630015916716684969601716956622234051271100767320383358042321656826554662195480490625587960603525016026448990509930971551563242233829348856037280908894519204720012249394493922524923276107907514039540655064930713098969403617503674077313331460500112181683214642011294150429952863433524420233263890775767639672717989938896957607187604151073948094219346360788240040237453714879514078762640424195247447108300164433802211543014953821172504381196817168940162797606497721191462971796511774117529346799478310962666160479336595936997313680813219995956626040877498361737904748941843275143963541489491824459580254778637938831638383760675672142491352574461999947983694062229736850944997044177358856213779204544409148086882077380897085317944792612806115425904154400348649490228873329383554839107095744335866318680993207507268046357670094870208038701961689615173278367359870518871348560934465213174649318747130015450791230203199590285964878842821765424103139971860394724245928960455029130174164783675927431506979587615342204485041746362512507180092830504973419752199679994087556433664397247998663290347438000254142187813666194505478535895613490747544862912026666550451178134400448869427169352067546940847348406134790086942045383556469338222815170230548581412936671351071268123926202241696948601507379575360922638504094523458670635939024888451292727862231480916057067141229859181433699721828789741216071399829223013890183473982431420610876984526031222481442675437322684682766824120201416094955288980340309903129283753228374669146332343324613634313149310155762237192587291983710391653689634777651180431030625944137188505497493044431702898995052279705632337905729864163564631296713130495831180189815148225600444894753387248673358056813923257106473679334609108908421179209310826215560775353412482513299389733655031022484927111521622642292930113723092143048942292248531918656969581443071334570039689506183907372262522354898239529886380773703125115518420268886516397656126691897881439527357426934515213835629715617623979410157737154937210985471763576336160095344891510979601917923635553057591603690364594349130235991795643383158047745310501232559281623955282192761853074332976321156860567769243654690353524999976948250987975058406595207311279871901592295237535306485095886833952632866830066890327705768842761107310317990826790476911871607462518125495248432478226082054706811610709746764433838321609435843304231995512457599556167700370247973303944914763679303236064260116818467392633453049638630405629497154866037885128075361505369123100263221589630880140447770349895571196100865484976110772900814037901009547742669379428699647920461062763375544697352717906139258023114774948203179079291222473695579373405566532309933205816673001769038568268623273008025815215141706988496193690601562439132815346654237434450921832406899479187454900487397477992753360541413836195581819790465711805219624765152013389250229218327050376768159864474681114543204469776208243249321411918962701901459990520852601098198696296316936564954255719519718335552878845542090807076066313728680192315107042054997551076599796037303407841832515992680978602561796269019997953114830723600349777544486308951027087246106035230048480295970999152318612426218026624054438912547039768681211534920467435589497084308349537513917509272574282013404737535158002720998699938469689542656144039269682325646161221470398660693603457186705222442538937549362657888920234302992387505743945118418990243332520451331839141958213764988459854752920255581266859211895630247995272390943107968543942898651370156876516064170627605660759726532885790399901987882636662645516574052973135978316756826807258969584518972007320305924481490585797651196945386895774202767287651775412319638819116430229281270879376822826726392236687704756826429993869167820361545231276789750778718972971793900063991103161157321779766130330794644570714464295459898500931282867888196856851637178887141218275003578890566549305714230407235159397204903012992452376209170804659322895235744360682014066925371718538074085763136948507781509112778986194957848019702237318892210162380073682076164148351765119535141774852885419148451972200776996004365707332413582211384722370279378771760444702846384185740017667684068801148293872579566919050737599981507129168744390736570238583603563269969486272320979916138729791597744728355567313951120103570410406515945549265607248874734594780953025323905633706805581858494747303945992216546144321934802694121653778659299901272085451011539271520313456523775092251002538406078630929778598301093880333225664508085603909231348482769325029494485381667361420578367755137953846740038466054785645290057576292431985674932250467591303462470911487628022330631690768691506335052081086268271663878111094104632489284367955717843756373837085084976577439855088288919450239610403636776941996324268707864409129812529614682636986039782242621059898517832995272538174082985001049615181268558584734280714596155008937182147686494060551801509138906465623730171015567215971029517139927037510844193366812747668327614425193130551705361862717536832975190659576686995278896210429991868267203801791579143923512875751572426973358961433422661240039940779341987227655864629971450794550573301215480440745191990626244864354725558205871633891663056899328258212118578685105992621052329346441459770343089674246621072802239913567981625943161659922486248356776904566139404502010279491471146233582781145995849388434293393787604713308694901689799607608642857656800440397549468233722677964144564668360337369801358848390716907717475495829101527452853215355555733444137028741917110086932312514471097469922979028987752362003109674534436643423822706517761489519452235703436621837490964135057054810081984506973493760435305681259818743348978805719547422607875091756287039138416793320199341438734559376838280010071601486305635822195768166122878924563162844651130651051829766944474468303741698274840136107863010731438778196751635663406409639286649738503744060399589933311178490093605264425903483759382662268263396146977866672939868955469940866073711101921327670926056936192311696141014819034953239442367613055071767420076492245923855804231441814104499010808895237186777401659623724905015043418590086705214294606404761106570117381809162449384815849862462660173596352165087956043759764711276390615397218639210319659502130897821570558327205108057760410258342698746675676622619200162733778268528198835928445612938744528514360152355175405718981488595867322672541368333978458768534414645146795627966156215905147034412393301848122591812181861013861008443431651687108278862648727798334409561087259804423311685603119388547836909089394556221366162779670564802732143977035561737338232879838973649595397431078993374987970738479674945352856271121316868612033920521419934523759128616627960828329198752294331798974836537336167830325873734361601103373052771692746218611559789334605895596662347781504037634354664520214564925635585060384189151956963156368322308419624330769513739220173492236295823699331758326378015516387883923678810001438784356215588650474760179576570198538288147687363328898842412568572866342758927702620506314497196053551345763047314207422610377594448632633251145831965623888098208073736492828259248599803969879001490294829250286177749842331850408960402585339594948779787570385317594918514406633018337854513474943054971397475942377975432931999978136850297254188664740105299659408146632764160526930611028539657075789466709080427432234185922525167591045777201546812561884082887064820532664838380231697934783816966154131948145520581117885144031174631446588657983864997057226500624154514371593080170256608437318013563982294264488299204662656117409563981063166866692105744844234808559177492410225666047612471990635302440431093439474782668186259346576868368362990467519622879477681455500691807438645472421918918770564200880906368158777035592263678248863727575868843281534887600618592681015253053830931361973383297476012994110075335736957397490915763289353491874450393144078232351973433030807290978348937418341932943422245275887109383865735003924216932763853898955083091037305384004882708335629951766587648551798994643778179917189645652055529690833237714393358269933521346737762174693429543456944624283258591406179459019336912605119246238251931007017929658202302944592271928959496253434378150502863315824941159156865201043423794552964937557896417449392771855467595906433987002592501686728730103250067304458565935828995284263413473022212877440185777215848254181949428053907797457819060348245287204199811284230092543664004462330181693935749494421806100305767321737843243561888049590068156733774647811190063785342116544021933572310293347607973684144039613181648618719565911455966071283197437929272565350798439852190890579855600157306432478804289365327709025355085886310360055645523970506306423345083933071576479755229673421915072026284428036703600072409826283913964444888328115574940306127730530214855915239781621008796160271529912158825999945792422826919868555588114123026329360123461467228504080608472641160591915610502962136584822535746581112968235054502625488028975083287458903771580160993768959913319329649448938870182616992554456863847982722872915643457835991663520718492972115610960968398105600229315165413113228492127822048262386941081772943637564657660394643198594885044111081289604253796590093152140828679819310812137617087419392124776629541161507007609749914327412079244766742070157493249474966731959482036760462099034631376203524422023225216374524803409263705975091623460577848324869703173995554906736107523783580021085610109024235446673615246068131596075784924242496190967329910751211727999235501305683211941069738218027166342068568828826329595762023707629227490510315854883533005130140495351756466645485457974800578072772705973363113939974129190578064157975083322058519321895496861767960146836217509653264830345123379756561447389296907906120851463438982000437999120542886833593665639465086320873727103280394920326501745110855184665604576207710569634000128011473050816007271722234108581971484210073370660442134054389771416426818807197393743039791186723698279013558427528325826835214859171402371136261133823038612952354477407439352956176660102326195872635469903801271781425213020165000138235345660168485450477479645418558269126265807928261918304808939478482781971386402234263530449976768264492547683631442924303702347014342870271641420888182818264082424362475564849835898932486452808795716061711320451903237259485204006131886686746953260517243754073833694092331331926424648564287389008576640024921930298437285434246358649031518292260135304864896746473506621725742269098003313595331077039351814581056803581131007148504098180533282460345012539589685965368454430395198761405965434127637111940530489071881800985189761803896265958860947814152868775151048532788740485893899202860943078633721085767316957857378479399302365570912868588317344601867346857853845184011322322913194025970288075898104244258472772737673526486475916092788788309568901280850809099723678516993041860080268133739984554331631311158762346643959631501694721918642649787115053279540873415566601258031836393635025985174380743497099546792536597001308027975732938924008640086399436253253613203517136364923031835898491531012173274773379805531667826733526823797113956491364997244344724132537198595945975742327364212901326632856728859590719001627130015352026622022279116550502373080538425599636154189690628105720056551034837229565904603034198306349674960273033010971925908582403091870478898722116798625132034505709058541615059775499400433854797626610391501394771455975727262143069177336072343266237343376806505203232141581092782139400478405777251167809657264531045249202325819282163242855347821506267316549606112350846322837191072766255059522797437660176118927982275821295331498179102830559273235047752291446811948515621521157479103643729031973078945236055552290661827617582918106634563376000660396609990377732365824668665363566153157469601552518658264001520489479036021926415784913363632098097218525011829314017122413786515614546976611878507767621055872603302070092959704696278015776160549447862853112125415039255202792843991524274051863123723448660155337697168383320986555156837620570745693038887439706271659647162073707457841439084753283565541928439417446603872135045737696768506098187547025546544275331315931780601948209739810592578324876518522930556163625328182456741703941732375773051135510416157464914976874199969536184082666847553565954930720761093400845615539958388491902578007455312335436462742512162839259251493798358123299927833597924393594836692124211771942579078183358094728507756049757627556095225023346121909233337439325363610286291784707045134131860329327973073452955906067896870919049598227605016963176102673322416333057741379155349887250393774898591328308025525884026305846984501324102513011868848876511439321364868761633087317615039120467325677458150533871657231065422903095307901332364178431943071922967410117031274175515389799837865431717042687093130676240090050045475310215300274975227822512777984425054532513860265621672320347413265899848722789584013350191226189347489240035282730355305362906648558993626069075224726858118285230823083375233929783943853383947160584109683517501725354394238931821010136660723793555468232066744727915081624311922753424075884248234761857360620826185977544585187759309809253150861850707903200704148671008825158384432458450112427261379015805810060323952662249226962803488630146860438148056517888998225044974506842255575578196730737320630406639704801180826957917396828126713129115850620040495691013314491590781042498161159432579481168468341017202724875858237183215038971932308651950846681570096331392498610203937596292649833919606903087878176707546396046397297862344511512058153767555647440646746106221969000934623670837668421078057832759367977608867516270988542223728278143474473803342856370455240009726469058679606884574849404844620582733360947844953460426254153236295879978322089064055287495274559592311987906354761492038654723826658665875411142174716602934355967180180964264095067021150786569570797483242730061265907733692206172449597496158425616770254351194297232021885329202079069557885717729324848213316445329033124071463152769851845183624169296265585744910476083681904656736036352023853880285014897979056307971798326041173557802627642849367640651264666091005233976913711733228175873575145826880112878386794765912918890251025149872961522556050163479642174630282414070539375460609189973508012396089338659822640874532147774430409985588989106259314117270508995508072961611907115717219974998165027640649366651311198862291565670039312405239209428653248250953941506954349659749911779093428961674218369803219707766636447822964587161067589750828590866433273734897030904181936586657456380127390797291445851251324964802491763244554953921118131790298195839661628652166332450260545613911716101946997403669356778784319937428105067328625480590602165725371718370184591013537338164360757909123303548997248226497606450400242172944074681692880645103727766319960778126177075845693964625506980001293977405948127055572130271329638847300465418127540402680246023234742134375081298594524088289570436923091204015620029444097563543436136417849317723738314149244076109791738073478046918493788133676942038269084992247885068143627027487290581462723674625670411209754268899866704813937868497728531330193686501565296531952901487223761919882480665931295027124065064210305628696226931713111188751775775690518383087834921381701713303241631874091643828417661448158173142129709482758420628979873230260701753545265018642120013898397196267795858222330345426774753825677024147801960548031449350243966327531189291040726585814180234177709741320193589354109663564420789240148996868906047011426731309732576918338399473911207805351085080391892294366310840800081889348689239368842551676865551850151065199158987569217787570650081358587175036985827087347411840285593181852476380050819080448437732518250262708806570930019754193477707877400979969692313786687004213999724735529904085909780099748469237990301820470102932973372267769855649684001804366757050552442568898569187786373194782249915981568158505966438246297892053520054851994950252532210364968529803467624993941988570313835092121782723703191428015250100173745157606346469972464199439315420902115843716732354790489709356220737732312780580669614211390747544572428736105704756492704293139381941421828050522291720342819308883999502965691943829485631026715594822827208223847291507913908899008306672315094892693384625781748026636095706102243226086279926013044926358669038135088225050325861614955255427661538726203032252527321444462299631233597283360697998554472636875024470308778299391051768941434440292883215873778328153301234667506963056721132919864751325716604405779767817296460195479107152973437079967476717058168033358184953091792158925892465064287508099314086797254651931314391078405862464654095492986794537924707202769942268969241848264283584354637741587262003242846403074115791120166779313172183662122346584845603056755197423711630145980550656713531746089232060028195632078030405103924691871374021185833061963869945521225177296009223171144239028377091336513384733119728226797434264798037792425683035641565816590545184492479878625146809703385017979512389274071694109919289146573513388495557536390355333904199825895081928396982375562096416635058185622880085288301382886612468079043709637346927538818127401218638532131846508992490082553706837613818617759764151720614696053165187055885380555009146610385945569976444055366932925321534478408181874939240556924543817703513525572511415482303614959452008412497907454688061753162772977855935397938519387950438050237906051417522552807664545311157060218986545059740938087096433411598323900860417669955339934505238537615111626238013716261526382995210037808448855273845255900327838315820087965652501620814961259579827414403251108926286372397862020614809265445332574011586931448543870990202714485185254081187913224066070641637988142579434221269778264688019944493584352785737470549088511790096004488536734218274205877736803301190130859694707383864802942840087747563038627468768033723074243692864619534744023340210380077344754721340815238962084456305982531166419046544300817879884047884104459521524349218815534789215702985345480515306231992357517940924117765868929172006267217535189845169823706119328752518251716966550158934667459983415394920787613657019111842656304806498644851523105199856396713395206751278366329561601681146051791586554947132443156935293601681212535797404821636924684457987503291357081999138127375015544145068457302571799473612716636592457583761350954972167228240585002911206354449487013572923039099259044218310004580742190276801929610084128298984740358264037244801814242155901147636996175289459600708474487578065859749382463876873678561563809370708466604880887831548224420171977464938838226926686753876242368936503974960637127695510056532260316813188693447599746361805427416752093524361274428344270072056527568635200614054206443434884963406834803810916503858470795221714200916675658409025957474009624570254364626388803802375511708542494152470948861196872547857765231305479887345639839672260936846543534868448169377612035799506545759773742034922166864479995669105495372487377955665073078712474977475615004799507852115437847891461612306577338908325620191126178541104136058535638613122009789902566376482615433321385324919985510154858079284610001158273563300559253940364967293560698514255712707878423774242219181471003618973439734145323833542670414786629060673786985053081132586430550941978913454801766199500696710706674668058003043090341374604985806444820125267720805797212230718194519869974739069164537192463387132827752300477984867400204403935952171141412067306192653261138166855061436663390519632252380571140051661331168695774175391155262545590947032053244917237587816886966970262259574998915156721651978859186160332892378951524663796300531042779300768327530804988788747372419871334004291120548626750651851687212833888200436538229131338613586520436143407031878554555062060829069245534596787748374143311278058113340913645928502034672317389415567615831535413694205098587025177660333299615969917781628862935809697608547151011555882172177734742178991581341825994535766247167749741208162909849103363297645306905921301850834530714525164245617885484189565415413829606711941846613365116926806188549834639222175214218517098179940712942285813656586309785720019421341855073726324429959674578249271980106958111758894111938562027376361754147695255200599842598726350593183515158078886294213150301592291698142258621044731132519347495823984930525142795730393356927747866735404401481014033617559355196202868443194954993249692580677095626337712131814072814101498819688935275588024931466659677340339412582825834229013555894035744679252672896473104877874682531428268102114656367484814077382258893492663105050009452927162356786442771937928988201100904058022360139741046981653033757883096208002963132307579146060464865424599322944848023827661495604275763915005067336917206420979711753439221553333989638292623611477463040096248426422097878103589238095784568980962010344789528701922031001724378724931587834094697324178182652563467557555712403466486765776370607712998423030710530552336512912052186299174468393464635677898154591931669826615123835800821962188952906294448721726926463989866517324268270431315721150478890206939673189126975336541237304702713476747916201597832132526984300903992625106956965831431305948288192982774530499920228104872609060212770428447276643745457868406343260773656448749388698031505954890800786068895472636202512451853098803132708072843195556255540158761128791090263350722996026660781617041213068245492263203632202987409811357193706751242803303167890858027480694045234472153295547821037172427317855445752600679608291363280110464139114686644825052437456209858554754182314676197902161263062404731979625606560665441653655574938400328839819409858998042926416665769504111786275659961365440130931566827207306257542330234592285787644645536795051555954090355941167079674028926335046580186568961284861604723425755706343688926732613044806154213492246976838604745465696392752649749537609125076613768753565247606704659805868898305914907916590515006903673117681086837460401909726241252480096073440167200009930425177725200798598392447081362061875001662029437712402009527885700375168878247220522425291175124940377403449133920332979108651178683490642047545103279983460793322420975904507500388123010482471123367402549705332472322660130770235450002372739284890403154965077441878846110994230054792200820696255909718214264839126916752637341024312603427605935262132745514569968162950927800468505549123858584088870731606175392282836761572039121690940274165892489387060685448810779414977788156772551492756053868938278617050814972590896500403563797559692269839237965518553110516079496337485310996643092988090283885738668042491260553474972259193666628960974383713072925013998639572161396837119444120750166290230327566040591114761667677068445726509832688650556934725132927999301886644548696665772040751813398483824707591256025472153870914969404362623034258206208939479502569501093957599027818254779036563084613726348404901452751380330080434441909259075300422358425212724775603239684451604445564995304228491079605256513908479841683216366733764834814326074002323644788542873893097279093763683021522705231128161736828492506763394064760958555000976490407002539145561853954180784618768121960111196626193908833947439523188454208360208759099247634145191912278028427094262514150657872407907500998238624629725187760484894438658235420961313996665239084449109988308204377648765012809710116019377011787024747883108796528161717212427958616468946454935181128447678098252105057802643747199367581554346084210294562302454579381833833215638441488820577298306741596603222306267992237203718765967771528941846981012897360198452829440829619762493749764699319524410059404512166902303604697055912396838613444487198683094750811265647117689326959343757714756042981843458869786435792844881590695182488463199526438459286373025815281065241769338512371874602970570885912112684925853245331105603659004908518490232307145240803570925811351325195788828439319612518580367600703864886698223419097414469897938065306371123942768714600079616974953632479221845480988874135785689506660757503905122159105014357861401318433804272510639078546036671734073880898851451365182838316796880987692469614810858589699588088523379000175462866403370869187520780124564211828733116532181241307697839518551448079035515858712313809161736306510046026451585491385797198791955026563449760182210268831794034267806741021001983150609932376181138542904566997669557698343887557297756252542651083839910907877222400699977847711833805333416438101239567576864676179927372569590742496144730074242995984712471940301495993785999081847526126492527008134236105018997302870334136116066798693550389865514827072302963695467569665289448956608138095550386182812730573379836270540959052395705140399790820542251909178863810451865902367750713758765990443008865616274517850220362555219777462315391953979122464855963911578434272692971229570846799333911642572135963630109301206967580141629902998722337014327045194371326150658221339699045576003811617490923659319314598363653166504780110490044052160317761260410855339344305242895659303489365140335921741639250133080761706435846285028718576809623784742227962478749202767948366421585917397166186338387891410650044476115099471443246181507000408851379418149018495669050739277992246056586460506831847093142435124891324704335782322694684527045206021001675565208563193251555524698148107450633338288484918101216279694703821369399085954592250546423730684855876293107424557458556467074577095178838648525948250009621140508826701629205969908541575148414299788306530331548969214224669002424642779322242224619293744400077984052449726608542427500467015097131674983605705962034836704323696217369794925634463741354413288132360406508513455205396311133606403583960223707026063678744398574067254012932414647360614377340419010154668608166598652892288860577033489238144744397911752068126610303278362960823228038978525453612541225053624485384709106434777616142047640661918229810345756484533146536324602120376884170102997894743569308561357227628821499808302044167011591528195115448030402044425301844630000756243085836463450848658037469414897924706566020045899730900020120271544974917458410863702027607279159418047221819635186002870712955329607811939141169655071728245463739905410885374509460063391686361979089644521065043667291189158728767093133598515771336457024471320940661439339038368615653643237043300841065048699334829389961901179041342275215624168525531938153901617636344309951112592562908532188655874503066037931888721030645910683646255342950376958434109911033007843155059510977057680831324747465929736684511803122110403257523334731699499719586431666826446712517266708876080548503515694581582930579344301347092607971706919874165274450767078211761709932898342521571714084758880849580271599246588829634891189326306211228774048884141575324078564139073288209618236583036678784702801560584357396490620102827681213520781652784638915321010070353499093066925072007715569110739005258486593983745215674390094817688924065010609226854764471935620834649363631834129648743393853544700318592150755877529998966389349124800600236517306309998579954449041633436105272228713311166345052583421555199200381222595014140121097466431278342004380204176198626444186266887466598457852536176577477214566729704854787582145352295733911625627267016469629579036406310041328779509153299649143046571509483675375259169855761530159628876899890623776599960850218874644381938862191982916158126969207111191758779373010591596672513891095500334024224737257244655077476035437790938760243699809575293683543826634973747038749224475228282865256010496695147571455537138359310679929204396029223611332631240115815330705569229877800192875743115034572564387120862479704875717802956289962886149619614547732491634082005218710980876936233428245698398541497951113879299628097907230852931610765446675368974232452416401550795230684436552594768298841008658313425983248193866567290892130108515363730873520599811629818261927231726273541634421294790091562636958295875087501552517322225294924658011669999373172664225676249620410127677851668963928535705284706757812627719830157406043554564833901471782511059837070621828395981797154212659413077930070673342811284749200972920795362937092358558992587495806904678496260493029946572655875769026654093019629293894554461904163840458388972720781071074894571720459158044198375017688827965955143033223403825164632804330175531479304798597261908652764832622121013264977028616103357952861683598404840876135687383457912073239084461116899776137031034266898938267382137495564924283204754015308833931287084404332127365255904051936927388566212854648651102815221815253505468135733177247134262446679295463658716534309798615299883743871943565196557251727734031698941790984899770902487663756961763884087820219241800365426929137577063042705989566748613501405959171864830597076514997390619570515914042961293768142067778046983033549171202166174622156447038012356296343162702940874627762967014106644598166126251968617198651728798541123172349429279351674262988873617950696571190215233152908107336565752845706703596715196952601341671256250984108143266474697708798299197379976504365185191656627691062850245395448686055879094925480336435637748682673068343419608820366617071449797123585140032376930059054673339704994375765331070850922622786658034242843186198848747048000377547847692941786761023363144430664757829061129368087031254505134234551128334612056944294330522162816810402956988843262965813665474226044807410534542528756309939503187984438237683345217157632327600694206901633113923272775929300468867923112975212389771413702034129839596476041895214733973273016155496309274696472032597910519637929045198357205496598608744048708435291340808866620581807241965589003991954110173483686199162249923170560749975067472187649324622269342433255626752609141211952562615193741960705541891122713489294061121267365263182984792457860431392773546363819753925823848488129516097733425247310541519594978779219318640261931278693485720787807643490377568835907901533222417715418342493760392603567831056481879536917356407685206538723813389126817379128657431885966675827329634888894996414821543045039279725094975417737098007741458416534940014001228218537488223047978497518414696127104360258144266605897037176185421049548077374597029665839101946194173696242668818525750988942376746118845315935142226110046489574536943864474274869500304286975317044489116066844089772452582681772386968578882323538998861220096603811596482621827703932587963636353483587924383623362864064941612409099564768357053129366204199902886127888017798995309179187372001691116745942846885075498716492056090714334250118236555632033357605589294880361388236641641764136578458555473897523161524835602223070830976096378622667862881584578700997441945246742850702743011121089443495311840324942222736374661881855215840131975950296393420802732477332277134424030837030620760396789108191227047451809729839697258219092713700035668680391076147283298831646360027163384834651266395424596603923787117609724461668152195872963087921845335681858406595375561307688082760445756962727616904655683473908710631551740134098882675617336931928805539897807443863983144751115455087948291978053848697306007822442943099661393950793869325428767526230539185632025731631749761969740757944851712575262849236610334603855612784756118168235420831081222685714089977395215468606867796766776592972187794941459117138501411840656001658463178268556667977041182124506171520755748426950291357702408634613316601698567731486025484559395780399571813144865268098636586538299598682721201208391087821548697571904375476740078830812551368011372902708849668658849483620586608533618497452676882492460413549494905789289469981028641575172928603522863560136498622484898784520942664107014747783641161469319609800862222788654125135139418044881682630354381075934941808640590957395213012702414376006574399904619379603648088525360727275787362378154159437134750345891661817262674434723835122849645099407885124594868459827378045861388817213449031951432431533775979643960521138992373683484758023178817294990434346410479180205453636054075710248825517512482231318234871372823402318143401435721019247955371115346309055232029749742084659318221763993412174768107433653959656750771052520216714669301158001665234817472863164085565647226912477319303256031718272105382987123992969470308646913644122108139407142054706059800149809388937983573550943641914684287589631945539711511046881231421633840228872273105301456896696469133450382806069556247739276974516771033054421402099764860329446089337283386658897036580530083993127674736076315242951801307934635728752221692877826255484527911186701700778950484541673680922168770486945921568894280372445422193149602975059124483670894431867978445398294903260511077532425165240359146059434103167430668025253287221823181345854621733764340906852343282535010505671461663240283466512284489004428049832253610919490545892695264412186527658725257665903473929021374829526956871477157024237441512606946970388054122048873643369707844286953211865289338860952758848819823983834236965673829572150205721601395307865644758597579705786418554598574452114960217157375827880339384970623474837266226657557867509495763469873254350918878688268039102264404703270571184150936997331280881312773701845233822862567801196206420926134941284981767163184425367526716663435160215179620130524893980389596155831985410223801661458397904557674472593836071065569828016061794562811164540265780796455963956815808711919600762235547517597598642249464827905626339327957730883745459528915752531436859913395009142887982073752127216652645216303361274654644552721936276933713647574953830936581058536858039223980795102027213142773508044742750364205678978162914379506128007233347149753790075516897414769321821501150159629432618298551587950965917057395835642851947107364139244573360227667024124231093996427503780719578296925895758812304183853614250737281667076569205033004097278963005939524793237994693256157899547296426416253520960032623855640910149871267370822438621880391741855983412788076574171745143420883183830073655953351471015374562206283011651678283932340828360760310209796039535559878106886293452354175671322961095011738466948345221453432027042683766369231372707847735292194992064646439041106753906290588185012457527529815503889234735712538281937408916829303263856220521877804196736896802204334957475048283420590991382237045096835308039184461136823532308576281605312992407453678532244069254058812291499290343112046283711074725559350717669108924123988306582750337781750065471749626949082302215206413956659468366817404750446451467443270039248804455757317543815488441920548832968156961868073460900963753555684818346950881116098297447025047878936591375361301048724245924019947096252761811231608323135384202402951938239506685298478680888623715705468576814135295351169081127332873305378604342135304509783584913113316940074482327954540546548775733162801317865066365566283589670389364235098749110298108319368283838823411852061747368984441429077397415287419485561899227760399307448895725459626138561160635461512604737249448777965420156837532182098801984565343260345625428832179088072813629792894971615159498947566497901452319884848838499280783719883886375735126257692221092384015386386243756938240457395228598679877890574014076974998833644078157399810621822246185824974966171358122469987700735322651325211535814301523406869450415134316183941359335863645166854958620221712569126873851878166042940991862068742898343325632944420294600302346027895781041815295140353215094437691409622117360682507570886905845705509691824111559145949198863218490120886496840595160451895652009798740425891027082948518514609192094493911246863848920755063359183261984208407105782615873752661271792116564932185905932522463373741692276905140140751096093366258358857389187473700208430131922919616511639671722991226347197435634098335367276029908985658648317118514035736823405967336949052860831793356834116313475681289304363777740902881226717672307298957657018072548728066871796278911778507993641868808916624220982296484732074767599493403552860978863937517168370072555652626096792184331448564352572876647604276433664778230007252945115604032583934190980589351841468791053691508880089405270682527158038191906856358474468479315135110858222174931783949710759479263036513242935157937609411776123640563853267911867311184865850483524422360658508742974407643624261863073244234018277406718154157292697762919992914928007464267249189650822664144662199206735030514146606592985201642863538247304006318044709492245239000469136843620225433141503351479209819286608394011169113433956658361908629431552977645049483424654028443236375353810655267145690988097145995774667578752846465492686294438810094840552804818212904192415669693232532399373686948068750989376163036875720052274110036258388725631817304386595098963482624095165442953328204271981629825630187039949659883723276275138903841303596919297602831427921098741552914787162253639425549699221566061780371190747882650354053219200347314240362864597885819071017079098338832426596848265549814884503622615213678804886380177326763094065218590475386223299630274030092519560663708704384210073346382550132107357137812873264036804926393268272682979506759311655414695460105587448412256502203846921566761949326956920694781569554163673923381419112534364409452589765157143934272802583616682302649075156030085032385229816342722997085894117366843668014939121240108146875876386510155474509765964685889955950339663724477101180532199236958568907980909661511225606167668966736219934498541991228844115786509993136319083122195214548310429573801204082187268193646620658849620323275163125108590285592480041123225391404097395326537863773781786523277914248186686469094702749901143717073696838792582634232737151577636612739787160433064975985732611685599837060945817444067024361948456991935045813524096342343882702414196944525716432773601285817694000965081244243540962822679811651773837306841368632975496511172267757093060961544688695109973695639944563584277797370754087831280743493433852153398545361575754719363605193076531591738904221173165883250112832557328965880100073383834920777483650745765226606739351020646678179003396212827820723678222997793697244480378606085892194024345548584397599796503397114978191303918411250759222819654307092595693812669692604489841608979768065749086506886095774405091379385519325525602106400247757459151896938114353485667672188648171864536157097061989455509357933245454015860263784141509246324542474765932664785654793030576138353274395822706563516366927487362333807536709688135641605328774593980412240995981393949992366445695638714987846715826561009256902136293674416343032798278582270545807130665912135995944118690907171223264299376875604068705025655050427327315257955509374995817201872022350322571423777250998887583794887643085140635169616129323175710792849743271932742054053950243104089354849130768376676027490013770080893494626222416386508760823916271837859913276396344931396204373750003958407558279990200756888974150087364914166201017373195917029698723234185239557637996246511086696595261947723824260568963130446609253121844197424866007209390370823512664956359295224171893202821000493602234359071990865274465315692778875721995236428618480092071433750966570901706839053142067187671040121879984800161069630688731535808252435975799429626337377152339733033029930938820486212599304430457042768105045531632407038360235219293845952479746237106400007111132961608876302070687828516108827082718645897760648515217712778885229742960336540673597116858242585567406851137746690593945553919017205517276058486091772907411286820291862670519031173622651090149316985194712856611330588039471778805545143015480298501251485001194024429852565162917013287610872654908123733308456844807077527187324647790108511133376949948130380481586867444065521752464329920611297280152832232566575120213960618820829571513413070161878325504363644421701489504389381388978111570092595501218971016727614306836567428486284413500383238448667398054643741168519335442494360377396046124202970714288617656205803870876094086107264166857477292247024323361233211793452596070690070952636773425359710820343908967179557951543181013947325497249861479517414408850691293552611577023788881248742814178680261551886184576463638430991398035566651468201535148060137124226895735846677439557120952597993426589706767748979613964717514817017705828355479633823684869534573874086510286944627232170049847564825018550699102837883313211004662555504341509199070002515317500584275467242791079774837488773816540045686980233571666853326621731987183049138283769666292244605823230167023843447333544984559564818647830770637237187645944153715144846132029313450082080756274458312917920301880514256266181543844595905231137000344703617804783752265625817957379232002673709012694089594500301339119972808907695199056923621575132818467963426814645363958670971521868906165367965224279377289329602246420800355157317696161092464441105865885763691368170171455635097508105951720909487582376335864541713328982911098295273864565621690798451315202364291129920811133115016304822991216012561620977901920642179797888592623761570522912991684844457096317441966058959251278340120895860633365655841775511752580685225888152408407823011971821828513571217579391646541123697731938406528426303829223840657846707625706169159010439058678089847094762722715604606299879609698797088683327993003717640488774830643754774122532233026181057317815531402632600917415640069367423141849974953415108679631036574495024575423949625451703915867171552138662639194836424740996617485310764536756307465825384618812341893113509200384064991340648188568375178602455856604049868878451480417885736368780523423204410374727812105191556122842947205939107913048121162933953132303389805509567982113784484527327389646898326132857461272265093887647927823782891191974011282223433399662949323393191966559328070006436911199872781927753442419672609404212844648955111947945563853843919393231990200539019479103307798368975920838317570400324578388339388246030931187577678018078242136548360158767875530462879307385626175077201365377291494572028919189057609293448228671430604308071346169793392933618492860977558829130162577003434022187272938836314280352809696569523258288197201696495040736537292911980135768990521718577870341636725476982124379679747516402240971104804263470924138369261731397436427353078084691674812295215353115517509482430536573928012853752012077019659985871766729796800757020167844709294936656035080839254441745142882882458317223256190831131964540939898945181016858524158581590846797493227797451621834548036131853292623343703121694290348612477311122293348874747199621111129802473695325013672941529575276956703898712589487531464510283547765940187062408130263334647232101491858372280421738324626490375585123517338797578039775714576700384059077582326114820618358631623124965782954642628637506557968254659000817182739912826687583948064185167352728067904910633442916034846064602094946580842966802645052425876629865278903897553318104897617858595868266745997724044907167451921679365418752685779599230746502252333535023631137332557342768139614664407969391544042616778477535704829212508092287891840588888246890702910592508213241069688457066681368788251144195928594450162950249110305150102393953620497378470851291691653796713874115018592419908421155838701826628757025592830844656843499167680815849621216790387028200738016702606311816391002481966692287714708738814886973508320166087055715781540448819138801512801739754665310811094658988965100168574025249780604343009095516451831944243196847265509562178441456693308158788593225942228936106191739381905394415096083616522692083693313406589388772023295473952939683474310172168933679886082748950740151232449382238829314881682328711670874215815647943514010540825805596275289110779221041848471709807387069761612440110703866636334540173747198832519041595249426848052798813840173936178880389369939837516645635130888290073255105665462729800863526156615594805045804388783516849476616309178522224589865716094186908551600350202243717644636374636520006746060352177828339994826500924505522176971781060347178558009701581580445889313980619837660286670228485852969287375730183909545074214031051551177286373610725639091987259291706988593590918404693364958036528370089355643799307724684169677213296216223885527406174979937923684498575375048587256017518502581217300170944246452870250860906346210997323385876057056190042456602340779625690606139654052843636334269790612077813102457509343000201767741687727529550847630968831427257007647987862888272753990978900520660569756649224716994707397348662067845540391827074225671079669950277191668276928351692676647643605617208861926257707856955759670175969598598323890953267496401519901872417459612053703557368342048948145726863814632760293197200127030215500301028397694606132593451523308205402160747534220513205593833272756027477962053505595423638265663284797454911107455846685175460402260395986419949505782128672554334098322723580116734934485303524866772669490702065127337280457852411821954693602358770610379950693268300055316090144737202877452515589700563565283780649786569529260027657337859543990553658403432591565573724679911352397235310247879784571808481188510839790972226909833808362984624629676275082494893720721502481737771790449808297532790275912800067851444265128696269335863883180969337813194576569397459071109023056775611955450588108183120191457654939956357370196252614712013634478823643726322159056306363822926436625628524075624521332332133024694080807612611432063915748470227170010688842829196940000090542471618459538708623119236414609536669389797993921116351426365125673757203728578698122749378535595018745366978825679536820413030287139045838661726328306403314111330965583187162250160789593843782537357086533122820139981726547451351926182539564253276788232991494424708405419227210611142382432948332682542476671789893881913814966271587953400067920641841777330588665184825376051549956314306410148220869833042005540173529234089883688948496971434982786342440788048967511061662090744053985582013609118904044363497904555435621935702113296388989306024746432858927418968540274026999503800988309035628291743461485416036849869135957207511182404921864633986583643246967326568693507950028645614417782181406582297107674672130545277178107519562564763907436204467492286471490905725948223379456990599067592720432340408592553709228996482542054533020925904180008802914181684693596626456840596956763965821550310470775654966932833032723640238387117377669003879362951492296143348458639011385212352992385059208066298154712687597980731169752821920567489598271576875043561293737646726054502028885514466347018524184808622609483202556667190143384989984222433836335914381875752184036522228778281217639655834932278307393970698203974349389533094770191681919010437749853681508212941799933482721605418721769851633159360131026754341245959850473688844255360795168825242656752499762053779024454111815148728491432094580757673810555784389472966824947691080099154438996250535136452796785022720901326447677277780095289362430212897650465031236723180732935020468924364632351540210699833281066742217351389173427544584785738902779100517410329603573958582819413028898784556348568957054173919327319805378381863344731956408058699960807210445096455796657843955965740353350473594125156018790124267337409789252809809648371495350810328447424948672915740816139595876882319477797670038103588080282531642785874930819373504959318747993339909573448717759319165506164309445394610504727063263681931414957927120731914605819852540483503714568483677309094329174633282398078181856715979306464016292501709014158641417214892181713974842951370235727760398020021172954619793671937336300849367725909949529683922733756863035365561542049297409101302669597595061981172774609666519619371851974456214291056006578851627485782996646185102707976359154976801741696870052246555754897905916252366934483725808834317014951637085267293563398840309341729929675255314958295797508940470429426794760579096997925247446187415954326720708601410760003315208085540445706911187209226489836196993127612467025223864215781855719038462565053824744904453206162171503875137586205103037456192820466067293829493670992696821281669429418905760628818867751567615825961072211979331213235601283968016134794170632366576126087684480122048202623097800702490852025895451606881830556865110427531369490171369508035862369760108786683047107464309933471999159979686799589056290753324056335143588352737411826151735305479356486257951367225503152843080669922151578040418165810160202868594100391755163567879973280724158744095657896236174868429423019152936650520227498462790577321224110858627506493197601287333340790791775468401895160678347330341964455778540916608826470912268117467373662411286478645449090483223800602265709698729317335096055237914791688439953985980848961194974942992775975331289486049379848558914528395706885855577147549975691949315878687058600375584515880003371579517432181471287625662470178727028871111446797014278130455322396674720336327069024482580028776800934903237171503408132881351550736314414695881820986511261579103008970665155215251322941560369028054589714638441002169634073564471583912309365122096010044099971547964647269243330353574863018034341566021290816369561539857737358155797607362948346669575545965630614223243050405398307493222087891166050245830986080699495612035214371120342868691943932510070920894740930888329487191827668722426888195531224215038889645176716944685730157900666074951970851837252807446950977563813022950854351264500504266949415592106861824869407383952352669835164731422661593597663502151303013337818886667575036130956996849039617709386247356753860623081086701433447812351306865866055407330114274088120544840135165771228085271147437565051809276623718255391768199244869961309844502331290255149662119946436068604354617066063383721130174298679669930441424480047389647564510755315012459744430369037201036277657766576727445456748629566403622176123506751915372782121202364591024512636440522784165128900686760572561536176559563219887590652764818279704233200652425175364872328456811782737206711400193774152962069994678667220944257723180967953620469222558502332087678073283721527679235906415557409233913876753091877984483843092130474916021736591245061312864277172373682308298190573180664635641184850691885203678894226952018760656263494428884102912587905805761055338880081218232124163501731465185050244698196846666114370927146037777515698662137501218965182161520416045686417348317155378839714539223323012716275741920933461163506084660432165295492918526121004695385732454673486512534362209879775248368700244557742949149422953665034731751512956016740423633515058407370836766771839440461639530146164698800194590346722372991242968726442126372323443486004065180255812136860726379242860645246919761250636868613895416283106954006337870093148451444274624429855415583831218630542749341262700218731034475092764546902349899819572846854581045919366523764668344480303637908763950476081232924689767171149586758776547166665536488249511815567567972059000048039607381894923383620103397238014490629070173446459599518250225437886618344228472059588864992560329028012923953556337570086171023721647687892761622722487436086199014691601811125517601970108940377153346284185105169889058382999670902665886681688891180368823136251377915004807704831397711301645505924616214501525078134952679003532434782952014601902494816528370325185379363519301196231840851131472635079729442096009339957859373150944012010499087322929027951750204867627456359650120854890583360849568264974295224772814698012493236968516149327223297441695877929647738871283301135505615210116385918775791257305301124114457207898859763540595591810358425763070240610265237907038481166227658827539195049923934940629905300089945309913310636125280923044186100392129180501372348288721947275303303503288170633144160963835492831202539780275291402198022208075256714319791880618117365158938826448065143095648448903718006856830884211766782685596439471840584101467523698346415828491905802292247303546124692133981713446789577969564390235096216242099972514879578070699188863942023217366428710106618678098115768326449720190375034607536180043721892784887869015492072065062400028461613209382358217438838466010599640067490691409251422994243076505699345666899720855026935528213029952006985945277564029095555777031923386532157744442173380629233502447209601860692803623552549908255096711113345555056753845329663213755962276282256430063216125430201922774085005467514831694330524055754345436359789418340181011033472930854261800562653147164308985258272697401248864100615249078834071921684241538402050604435781024267823886133917196305416822080926168866966398933204512778021808183161813129829720117350223237815032311490496715463523126958868464517229569486408422385331686317211474904980025669683558590914708462484225165492097069973197699042055150741916578726112102394337963744648236503447891750581101181057559607544071568613282763495351972217029764402214199578587448257136482814232540933626345601226156704720558969546909702138879703901286562413946607769250681710194919605184698479219452677688688614740275846866140936578452208277910920728661539628533779202434142379026986803350055537556560921369340119196568753749233154778557641354415207975815147281930407864658017466252061414949458583836006167342933571710564808932175023605951707279270719887346419205598243630728049595932850742734700186777987118365268177211599489843722799325231195151233861882521095176676392826137517483744317908251884792411219012667048900369350471465483548234728090147761690154467755855589940882893138745633966395182963081386812670738240126005175320635400270318149995698847011379165145127090682201805377823408483143549829053682839449566393474553867020838303849618069569802073330676439323758557441997248972765156149464225570526787318833059684532621202038173072796648920978903470068148237657812209295450251145871169734762371041205413845453513835885782259400408283042335698272051244513848196541493570725473564767525905170231029526079866421032937676466416989382136346598465841959119727412241279409867693823359302947530287274278484873360405773112334091840933407436996348202153518169534617216611697809205061248597652748348245809539866568370584853346570821630275829355565960512061220598887378716552720898387359304917446775451802997844254425273127120074648738855070643684749441803675710124608158968322619373431097548178000491237571981747595670279616547867315775024907772388719835582068236212897796530229392223052294593204200809292835341787186212652691875921795371107603377753391365956561371613594748978826063914483467130032009255981721033889483412923931205684386851634255761114561617330494140306194083699346088979428201983373790472560527272914402039368569586837556064632653754028237800408793132602629291681532092287543686859934054113311229864571493164798513929828836936338419553972586334326609077503481454364030868423932249923079112106917239446845651872475472049427006048626725795842334263225604965524857596489112714785718105003106299704523490150235445438862373181754778094044448840820534344945685464273449100832763315542728846454061213508839060191434594973235682286553596928209570344199035412028700055264144227639955234330310283512223578947346763194658146502532636500026868208278196999290602445141649105516261951709169626811199194853532797935237226978277317812696977474969005287573629223908246293318791661591294827605403156291470518299490323546831118987934385588844895588221755957299867752805277788446719971923646995289018969292572264960769725601386002167372122172427889025584670107076123200809364762311848805030582480775983872771257937437470315352365065924024669383391958747523928866692016577444652090209812522455015581204638890759557409256045511332935898712334493221790734079417269969314342257834265225459427605545896201024707748407003095787967648217467285952763425540468572389831749373268602627820158941839311115921566088011198519433088296168800983131350300607548904573969265115019856566077404585358243695238177303898896287185173602435510232303898017210260216246754210961842354558176831162280163255634118749260793806032751101908933518856743792022931126972383384342290029629814352633052448042049584583273239918808243000409767525284996787658263858466494255657966209321344810561309999659974887412086020554962522577219606197107998282621623610218949628771570585556153605301367007085312817404651011380567471879909433368564208187675283391247458028000492114886689085793102348179298902543444089260395772706066185916231340229106387389350111865986636346496563654915621715466093210669618809841287196889699261310968379201427917413493551812737893834585904523473044897170871267290379369732311028735852537398347825198079195398414784029506231052670982610182125409448582464734020980871709039241160590301316806502210372223065981508552577433190680320329713896466758750179304468653222373561432798353941363012680783087755307493382670017313603055743733881502173790811572595859576117373448637683507556032887364347091203114045246051292261837256381505307842060508247618108608498800409268558136157649066181948180829577876375639407654156972073503616796645513587813298480135033322763136126938160115361629615645377040139051633329105284217536140521286254662033788058497723383580292239797088926649947817733041230610471210993223886730611827222758751047275460341615358473984603996732657179384777788125246851794869544412212793097544830742825074527433402858078917825327941907427057846549519484665209231815400717729170733758138866506551455932364264862117181145308277894527958702379726162815413113761180876418624770633705329537606172748792872743791655472724626742546561800010085143086971023860106020118058967794434727360647398583476038170271059465201075039084956767649793296001764665188556209244492265991368489598074438685118136796400016856135640311733987526012449894882268460621574991690874531115515801029091088708139827752722330547777976886946076381281252749475978426631732441739624915206908291966954157258422811302817538874214113844947611331215881399144251688402433979650829105042403048887226612624237911136155446794529834003334139800340585488599076285666764781581615730946318980567650354579787325412112513732277331452835341405746365693870490231960719388210044474100965998876542650078078804432391520201374781175332973132631538005980318071617641085710022876802406943843355639302460281122489602212648816185233538354617265951365185504893445548649222517446420758726234978839089725073882823734999706802716926188798181004134918181119905773710959714051875633677955678879094018413947120566975539337480096017622962697938535489132788210982665060738136696885300111826439458617927872528058250534730242688279557721811523687856121348433825990375512883757911846851946576881686819445367093944279069635221553143085903949602172942059846702243207427915904764407966934289502093809977531252192750098087291596581142839532822116619984712090992326794832175184587720110888663314239533467736645053028381832531004866946632619718648490847623488855982270375223831900645751634295269094911072767565640361712970212406079806885369616665764404747152176550469931849008085005449674867223844643516779242400008440550326706183249470439186112831799482255377064195156879924708212405036387524473359053880250048877513601195968144473071412959213682498121133656347879389202550902169507730426673898944054890425967920026305108371983719105626544898080618084602984280155099229697393746773418625602289662364489453134478413307411633940357628004761715486827231279413756782260131463134631178261499133251218330148369400112873866695016717726894130596217107935001369205099509120211466398663650382428155239683821629160991828612399236874297372764773350828983633610858724042699249053024528491626014348922119459986043472279190831835707394681549674376898485914308342597773957192932691928786661467188113681309639933925168650884517700591073424622133107524360659300052277970505049044009159748333353719105793427826345932374367583608089824953967565166313757905846656223082710207656884023429322213137537797986590899160955634251082883031713966553455005339831325642290466873025443922721333944670112840791029957463248153262653905595974178978511718152140895627098838108060851503737206489568873495480796017058740574302305824973587311446767702690181783160651358830607323857461728137988419075666866151862970395318983575378382857383003523630945532313035047464942499261338582673279306321372817881957133100863105547011705318983109728749905413908631323220053756804363630024168742835191027229352437952280356275759330099634324546257211825324244227078704926757376338006214457877900309138722614988087147443694189338888388177368198230416414082774850314600115704290139159196179478127172087891182666318181248484608763800236950163732082835071508408506017062827913496950510634187309734960474654409972104286281637011360116178517407095426532333261713557328753363300453069557179318485272544445951787708875806950551489875345068123597993211243440546350255972728578449879501284109514367499582415115881875192283918820193298645561659479885745959270937788866826728888085737426131008105699691911119909112309665866125699689044252589010128653896543009593254283062709596312804668595469880347549742289744406861569179243193954823503056891958745562927574440136837667023940612320086227007689158572445957198779802335581743749416977591110652868000935464777612588316410873427602328082320707144801463270196499153207964194888698359283971961106888076378850004359975239777388938858734774273519757107478321764259839829134126126418573864091141866669832452389716887962139590073647170192892163309348703445698277306824309378446664301258179626184713084602113662010397786583900060376183539952554391910120719586566579639873181167628128238549718873986912732442506880402219650959793390726428943596201129217437212566959240778565159340778855589689519094148258552287197105732811449239181735431370633353501030876144685437778814909499489955113814348240945615234814887615331914350742826052043186842283311215813968426475866755651830062219754499358518256897890231893278400960805638867232708489993916841298429726479992185977248592309025113398476505968544865037483921303742617597932964904943591829076354302232150853448089388081966674125884051385505391350444080942022664253357158277203646396783117243937612010492022502282884444986740622130637891910172725079405393333821786502659080392905436351317086177009884112123891556181096297097571248477936324768204396232123056304314534997107086746308551978670202475414534753336140710432449423223400625449361872687882963022783524230597690016324097986725167718432881836295389439173067329301901640388351873792174390516149172668265484967817604183904663503932448035886796947210546530861060319941358592924119765096640395014465988496451893044147902743313432322615929745362312665290218032307468081490608733819276775910676808314443513874146566711290420356549501826060408177829862010121373434153184879193516954792965875833213048099476386606133992910965639988005192248454710787702085326354584286743841022030174229524280752319756882643699555258504686188371588368301622967529199775911029167338647911932064456886522782057558445032233505143841284442630054665334267853183729087286283783987677291677636805946383364009477243690621144523457727871349097358726331652498521739135555430101282988194011090396439192308132906432609400736784932285461820573635976739360468487625926176096560057167840614223358347959810163985925610335883929526262115308977641115429852623331690984122494277979622005020319698118882887918713265315983008079814746213159655103939068118446442133072286304912467882634958798658460828398256203568040739188908175243576173540499724367676524712012216459835200491125664746512519185166815547329232668998336299961568097116877587854495648201601307690590333622589504490692393186159502792140405905994567755191281899057398662621667919850301380318947604728531778727554640723218271962368968864487284837137075254752953815077608678857583815439185171699835549692293405334129924210437474965177630540745984035057189239931838999967468665503946676656639280948018093598454902617080598096884557533116912772309697648456230754540436322228247960310825295033471633019250228368085509487392714564565412433081312902344411639356483436264201132211046393537579435951665764770566673953633758771407342106955504447309437123031135586416714557481304690403859844906173858931049393768382434494201259998690635284899630709162715108813374229415641310246297004829123389403509794595925870811102566424224174571608074319603088431712107231823566244310447929305611298607155147249440589186457096139686831840319699901431966302521594240506019966834320607615211505979780151354145115970798147507969484636177456086337867921484414700542933213164515302644996934410594929724742162123630685890610265137937395836916199106579811330833641901013566011966189799145919239168741455631695396914426444203424330781196153348375414528883905281666892261226378659573125039609755587268732028581546421401956344067146664072358593322193232919863746636365415866211839933562306387191578358618288710551504088062551604440930542724839283641869898792392154429608596240125234669652757233753202163014625427109807257877882129105614215140625013108031911101771754272560372237912006623860954971718704809506412108855522785605885696509389168000710734921529960641438232119814868963262847438520669965997346388856799188924342734767419852599129899047886559922153998417802332863754418659361477559809459188649458816780667527376306945826842535155941804642690096880891044199659336942994958480449664939643642131055285482284837795638839683217683882550939728551482624338126706575230278113990122125556383711495534511655647030743447038511955282052486524449939185979157415626484668490795272853024323461768096171495160021398655676394736279437780354455199920078827090193491296920551211069842507088252434908727374924388599363081798256770727153597800836862997376589763760536921458355357969607814622231283785171892562406863028094863915362175967637943230922424937313938406840541929418714629954744807961333832144348871998648375943831934553147479968431595477646185043394153565070730889540782261392175897948035065815361365233299528409213768442745692041722577970146620680807740207648622628437229711251427560395057697094085847049762547500084561439125802578803477698174268670976980039544544190839065274669692134775491620869964135852047518013698131655558339876530837724606192352944694209991559737079160001945887288039459388141748846649344835411722044689173988410165909080645983443031286544232378357865390441728309096228891205064299390212394553421533995493636609598613930710033303713843373595978935674553858517324305622326277011866146548094953058997002483843732621438935088381056736814702746483788696693874830939606333500135742135049183383468484444134194995061015396352460397834391512774981931704682305693566926536541338245769222307145607380541115785712900181853181402078426345780438490257935882759006825121786018519619301475282919673567354345990786820465087710993327918946647802746876314044128086472108847735167465001723454212986401009460688885815663482015334576477114947210406524936143646917481800142306005729724969578567397924276667736812557273188976435970158894899384566771047689492159836454729568837892526334525643302164554826882157077751250353167535928496038846437049384339429430533555740504161648446739935201704400341868948886438153746522581805212046850808404940068860947658118013234346979450004135062734230885993290657130354150813773889861149188475446408555667198057987341481193021957883898014624350488681246918552031091241816903406552782104835163008395406445835329517937172730894707180335305307485989356598631746169361546878365664967852455799530224478615169059179163880843337850498179075166937255774187339395743475205552822965863199146929845448643027899493246085131851041603477601187173782632159723493024495577789610275930478378491938591433797057449129775002357332254699034292015235967578566413974743299113654850077440358127904329286934742325322504915946644275031344363390622946136759316784897924213206833348406481933568210032847801412510523290759299972546797732887460392424800768117683794928895074502110016019283278583390119446036978700621389842622963216715454868493018218975857059593508533265146181405436829516630933998473191574238943009153204257042543694676544232250260369177342957889824436387663718368410980265470097103487540915918434298018399510220589402624043818181538727274106042932571072154473026184187443533443346074027922011732293417685102178442046963487045446765608159014015938381779554039911183843169329452105445420569597841185205640603443914011017562409874769068875793032893367679769691581731753538490217006220048730552753589141859444050050227406230071952956602367572360734653995305531722937526082011177324313671200440393849761811238903341378385330744019472755485220794757773398979675926706373988453485100162406094688593243659259259969669996981575441132153303630807279012043426061205490873464273670350736594990018291251805329688264654469650460318481510298343495579959448547549355531041952872735593669576718783051832481154157847649291017400758818591606767829653781406169777753612006704405842415136944188561600930246625648761903006453945262125973089909129825050200919173201856895380131021317377116898024315517278280879742017243449479129830594453549419508950250451415653816251832059672780449181163431506395547677322309982125212527902526559795737236511956495283018505540163461882220277895064635451592651316115185295613153614011422326291172893146056657349119875244626693980571894995857375666631876804335303514082065031225525827790350434498833629492069594057982971630011279922577453639603272968807673900966916344733145453253599824875450296454492056792473360333635398699991350234064328807830808403572640709544687169373419735003606369605409474461409375505410197476938221196920087100616122709892391677295688284653256553790465553206175681717564037142775565724024762741193012544261896960014576356504378140327490106147140517479103217127613149890886902723192696750949395590773627762383310535049889506879850391495743047349918116708159781581059794174273000645842075095184976214264725896453070865309807034401610750430082222513614524641584843514243951287625903801954923463769069409045851889598050654995612657503728444693629753269655369032886465019692172516930812608144014078208533868804982569242823485836697193892319043066896559658744417920897438842130466976550971821675636086090780044106911173019286187839024380551430144755295768533175012370533542088033792292995927220111247163777090854932080555237555286887320873781188070115113733019064342378972415263659859505132884587377893296919462252884476836693316528303968852757343307130698424260960333591957277971321586718088407549155970968619091369462653956497873294586557684744332839297515529158329996724760702572344393616840826905687254014748792742868789306797855467059398849235140555521919774296474338112777962497578164109163272011113492961378426759520135295430741236686101688819114418436329153686920778749291067184699227542866921664342502486593620522382833704311086888668584211335887529434842885388462837850777486194253916835856031312156401838874266691684170828630806928396603682258412174060269398474160746008788834441160491420645893892644118712594075910960069344850530135164448877994553782189438398983403210719219866513395388732974614757593475868527938513220023621962000800580273600631461772759335671758843932114208656601970810313768680212238115528839454730249498967643000554986865012816804961728170021169481625091698703926645016170158898905065161505694061429608407587133280555395179257749835309997145738039948373017337040187567929140590516108034633102250812114676616897351442909811146558851531274457715553445456670945119978394616763382034699643573617428295984271936543490458538750129291712618550293427583547426801756644587949562297553071956969878049836713053042264773473582537221690067073518486738997020851886351636188058479898834862609494619555162776001428114365276181149436938973307474134665140195188752691103026128144032927221031780217920320386970192630651457869916214219810727457659596763540748223969195296031846932488764956290551781351121974400103994166618605275788847042602870481527136844524094492643117738621072550000472257102967421198776499534219520529124373627405522069373177232176505447555557792282825103928940529545282321925738283278299072021309271112641055979606801097092634595923926029722847069166666966644433399265207044747243614330697718907485579893601251783152672303040062420293326118816753090807901009584368225445514059072530604875303554243773323010061636708287085972947118966645062041266880713618980573561448894303811744420357762404223335003712349910400851894326392384732826893145085696621263647428514038838101581620797371325803968941393219394859775621305523967067717046827532402658658122372856216925090684163387311536839780450609998815451125751110498443096771104392010647221901920674940752706703774613941238183653263992899852412790925176830969985068622095400131115041506269780161461403315233813433862195095486950873572027690311762191374194977787014001678841639331287432804597450018936387971759083438804648484469017574969081632128503608460064902604289708524564495968429797013289245892054750926188230097525603818775659626448177054414227495895451625320027101773917856399120264616711386940977097126277593190629180632392272752038458039827037197368248178058624099960507289219363032639325158784398344746009384375261537370545614110191163082723767540244444218736550868787734695370789368034129417097278661095873045657241578792129128100932613217279054143855643168602964049986964098037702722648345842583976075711570032943719506605811097702763081912675646690044208891865843115385305391508393464580365485442534708229427435132277540905450026288074727731862775208791572367730508965793147566502112971181050747128516857231285489125781907401109681830589482132764864040108394186033325575090691310101571596210722934764238006920298621796220746904644419797524831773256349050062059229326547549392396482804681954423363423599877891907560530647852684480654823523666435004108426078552849139678400117048690457356967869719208430834113249168898801341807865937371688480433801250016044470676197545889494523632440862121947310816355157211413833358468471553377688308018753588867528868888298178558095729091752614706813557371561712654065698522049292622138277285067582718836300630682603067677615556650121896388689295744067116260039987464965213844726060573662337134218212485181222337750285637739185947854810044256441417398969224611150801310826723469548895134506762420889453444296899962960750230907277200690782111238981428396378887694518178276013052982942430257556328964196956635587844724495395181105250618001494148632867086672741386000500139467563958311285934532950478718344116791867655761179306028774268877031463923793446176017140113823985743273888444778309497998709720234020285089275875385999707962037937482906942677969706706846251472393654340284643863633306949356123068448475873793065939537276243378632665654033510200394081638497768960849983142453905237226746189581073563671078701957379895609834923117979686480022757681663341293282089345591416645583426795966430383944994515611588023399849190893543979915886857866808328637718616222949038022451588756383621011334073732060896692914291029108324825693388498935080368119223692396362182886298057610262010174039317404891659764805387542909788558660855738704434987022157974738545285027906553769978858166343818653581357131955204952796306277258763171450380212882894176607811225042601521888135124285692504617804778333723820143497294740227125010102456054394232206962223782358942129732932400972569099928452063639420435610037418791148378708978491213577878008328203025664257524221699287631179453608442121818416636759019409493826342464103839286907955056155780164407451904175283656668590388019213838210999334616501854610154036867962308685839982720073801959588728190587484110967622375470189442569118794833598476602941525842412416535182986169423719845255228193639790998606336833745099923499391213151075834048915276111610326618051793798683321864182210454568975725159241095297404430192229307160368075598490551288041883288414170769093775575402255981718785152617455000155536365799615193586945240640341684838484295582206468643859287846684520924552279339137824402715380331284176848493824871960760936727842735760456911158133060052068337003004192403161743121066828537227796071488506118359923107916602998165296899227296054667314065243462750214017142881897668850363682442039976876165231602374350298652008639552273493787262070519970503829536393739280241553950294991931000753756807187447674301117211396637059044090398025360780923673199332567045453121364098050635398944129690975529049540925991780003770227085957362699095118806697872722424219189937254198065639784836909464276776165034903820199524008675417805920921477451932469598836433531787599833844865925320842283974918675615699269163597092895852452644986378034629478740780729339571603025004075403982532602199794836445918121161293507683165226459875657189684444388438133639350369884099433063439584037149473784940003084830077823727134032002078608340059863828777916309359612311714627977716956547315680815625165953427638776059928689887669613777753013230687724593832816132279158365746083561136451535691274575489830009426628193736054001581166468447646664826842741528234819425368379077709054522728827154164131483188522677390260320032247269683742961883094841683613762876931791466656232147223113049980175288363518502832830986224199355663486653205830442463942692179860823768512754383181445592205489093239894486086856863924154459799320369230271417651936137735767453171929070180646944402502285395936463209179909899744283840606458008108680463541718547465118472700083888330486186096404881186510258655853825813191667643641194331762742685373962598022283095571755219092943069301604758001667114773751417207318006637478892072400127709418728536952962157011009417341198766026433104511068172316890895052535261365130028671987594375779658527974373307154932155809795161776027563143944664475077288815715039045592451055396090846201992897996646569383870218465179157092319754181359757069217889103556360658134914141265695861625394253326768014984000782276206022599261098886904595890404861514240421929293838712146461565443594340174692638240338927844184546171451925836624769608754571622373822733116879011836545712709762681120555318363916780596755388361616814798441785779618175479646727658634358572745004614199240707865661743119733633138737292627484213261260725396377722818552131925283077551012960721099123196084940179990021735256824338596028240760321716483632612128279182230245859724465908759541606152991335885189276374631269613285313409525258569459405498346594327352842037753536417032110826317224133989096005274574362153279840541758202990311482069359892863843956265828657879765986787745032925136675126534035418781254821720030252093599633592942483641068865226336028138850174666965965068401408745960600570404153999223166474126992584356737531942036584890812917618288521159408922895616075233131560664234385059663013672424648042719478429106353236874611944023485446358017371500055848893231850466400737571853559511484715652126979116664268136427067819904930197908700154463305559015225238595442334777643291456103986341525666147999422832200352771901603391231407868930898413750569217188778448219520009007701947261327571400366636571600202052561462215168091253755214898851769121890848159277911129855477441808062386461570354946109596779983401381190713963950044481731351814760494536635527033638861961269985835873791345686168690684903833824067032561423346699503768354084648157107095624035433528084449056285184832614827582117423657729847494013967434535698979501833564824320118326232244674577257546663765746528683626480897758984260751650259145950389717929267806088060972963728791379279800488549377421751707173495716634885566154883255769367144121760656059297444963879803080382220842868472980291375184663181176838747882690935391699261479495119425398427174918783926994064318822041390797507325474871937036719019648741101893126944681419953480807999784863909010914037935099554739512927088497537796132950965519589084933885917344739265163820570534448059437483308258562284853968318311413480761208810164465898885599641076071100548427486107685473171527995640182290854981325569467740734978001850973735388028142309598322883710719260580715758192682918754850836798209190323987025945570697600942680286684286305238559231076371225221950510053259359924842605252080891131476239980640310927602857235017765730332380446676599047309018551872318870227211392332823425928256201124897423682149776772693680609296086095606242434874435564422004810411538777117197899183946622337896102860423461146491346868496750348924531041446281666199862498655865145991360893518013074255850156620270080767037721932523910636523431390179171559546247832105813155248670520703100631650068984195222400675936656853826797867691511330531243473520793875928886693103003646489573867746777684746548465344443501641387510104624573039795039176683359146172075925967527550066579100634506813974478055112478177322747150738385604510233081793480641682659855211689471462998190598825245757253300642303733164189399297464402238829169139131144083323203509318917725886042161459015110344285754804762956833573109243276328626250151643113937548183933678655852069493210103063291572929095490047740550076016967620729798456654223996529830683837300642688065851391939638403432086467489626479724695819220305145092712071047396680422844252318290876018396219541788732821534086303215429802233367791622886509491568766467414937706585298647076122270220745745811808858943261640988637875695424359189742404039743771278038555474589134455687804563219561087514397590317023381971986919945660833691607981637041626043944169155611107808442415616468270839090323768395429937931181243663637469611074878844510279756604905958978362703675482404548757456625115622312289271816693217131652525051392494233386284433756592775145282943543260776261110946784356534961385052020678699685887904681160876452218927477777705095982439114575327272022388235451163652743106597751727147453607711665448020037876242395409461560121194949479646692216815271701294155603016970600565614568147958474525723248468750008687494939828819363902461733383896045845371973877607161035911012003665446396885573722276072681888687576287286306847485625128892040492192727803562386112786358557512741314767494708640259210242654574492362503194900395871238980963621187005589163590379792582693361087199365732667130692388752515920443655277197336609251448360130159829918404643298386520259564351423349104845482974293641597601458012867425088992306330492796860323310341195273008268964992419724138975916187450168983323667824232880056018092334530477270974741722205515870385444449982618539520243176665946618059051987376775367866506377829528898022788541368733600838189239026040912399799326238553768209208058554815188218343367221991394005596895548667576126780329918166448085784758454096401786468875072415126586247539147499063654916518856563752353113154728898901022854454312710926299090309455336841268503298751761487849722776662926967954768928366594026902608954110869336676964213611563104966592465824881061851763737133791697906693099864351890630805136841249348401436695264787498493420254340910954820788800281392554284278880475825087809376798545349750654220573521696090351233837907088684883567426605872482940687796916593431855008765287926917698019703011025385555443493809711584068923767018242913765747209195263637902771848759576073932837394404194704065477196229485726426817742417996336988245567454777621005915158105538081825825005006463954516518306035863998732216572590127431577324590497284424079829907405297166330271001316697934131379246832985486944143841151973078541279605376201626327389679531429205996468929678958042023610765088734269196895707155053906045081059278598388470754587190896047910618430214836568006886847055719744259095196697187436077749201051704834249009325116371314320965517509936876243588429911814620025715552127757953591237435583784710757627569018617857827697782695564448346000752273571465241115042679194217878849018296195595436229669689750657103560544866210593730693850595024449579003656439183934449939690827799329285881577767971594394280106703603703958130767256234936598532850107373302947528308084971020796183707541601355655265603658844566833159588621033354281410594574061026608826626924915420589824281773234783814286695737101957114368698802250215991111924610441708353428472986045828610214701751063936690888619280194521393609562495349939401523733018564369540992994081891709543162860432743974056089273235457749860259626589545651595738508616741951949997072310704928118269558868231272441182681721093456767524183374696057710182003507020117701396170325874046829273096059639028405466820381612066608599653680734538663934227709422389371019546647166290778310475398402698195183069926182790362491688813306172017110532467654179917038397425281070138205040685506925376473343383915349889183953641025914001222478667486372634122957394184168887329469701873507108414528298439474548453293110255269892674000697026050734225266618799380456793333427133682002673772905486582531042547371345137008168813007532028555379487814930875353195065759076768187387893358153489493684539139074480262907065646042797515656559817496143385029697855703029588178002655408048632822367174996426258456577411338939023597546123873108881764271801601090963790185544543389502011731247721395018712896128173766821539465334305645474845900163382779855595105414100645225597770126736608329327103203758142930535285985417592655989094888165388127141492425534029215059923200986363247292455552989311493265485593305743170264763982897101067301274717069796320081540705238246953985391268091537653516597273066979204838614330731913616570902554857067264500139801638480073036547594179584640543453360112930320266812805239566775587230813638545073924370107641463603207803027040005877609231203100077350856325567884755774133856282120071388566606006188272633443343728007269151429252920419440527000517484282452887623162361746994700973506989115775141245265766194931945195310236758682791373243812846018197528376327106455156900677008917817514050976358928108841248280342970521464100835492863355616862551141651868045895293299958001458873286076048268076664827041013790721188027978590802440351507340193106264237372669888708647875601167868595767252943260958585320345781762961662056060341653146538596916962873535018706399707305648454747959504814982146244361158160582664955527198085150360989726284250450916176869695945225116786413659432610864228111480996751824307124501282314350226090568405169575942715066210380288785235962079898553493701243963957304766514541786069836721409005741025166302036266635964744155928067443334298419663019097170826883193255865834601628615819934087444027193053665677047731393066323223406115942815340697550740796137948833135473441301427343345763407443906610009624086745406431305455352266108355847878690146457765998301252113566266675900914102666949085907409012521327580900004729454532979933921411739859143744337857134009848559329774093429617829208095621330410441306505627541756072114853817427558520831139780777510575491468189492709128286637192183153723808655929089586123847760755031215402094311433528673236556635570758888799382270569984796307081473878306095678014560225918108396729885425585818659383146037169664668849459142090771675789959289091660060150988121714047805957484055328523989714146323713879250502023500071812400350991174924153496846097559649758223296912666339501251493952481541464515913656132435693704020254804770262607087046392054013439896096453709664644270014419306191355379477970180499645592757853490043195081430245639012177098591411768054059664240555623296903039302569181430997536628635768417108127677892536907419032224820724315732790521741175880369418076877812994658355369127339475792370346908583958580060560285554599880207470849893298101686051045691613934883967806083668789235098758874065177785331084302946526396585820852030382047733701880939677330507994317290589745723624216920402289994221711807901538370096154512830919849462261917582462609946422714688861117854779964265156125443661752479172420268278232475649831422609579668983304681623037167581335720576937472761218564529517339215209704822978071311472886677373912533139520347986585909587766337311927818972906289216040464211350652209959632500295111596282516526587095715946644909370468878932684511558945551853936893139883071012026587293445526215730389048679498148187081192056538808819040316868454249958308575709093366923746904049006434386645416744239318210757147129884627626449158261998734769870536691185362507472208987651052190194334476276935733326818748331939730135656804871533794854944129872500592861510960158165888991014666976569221268663953722684892420788657951682119620565033776246437308123384252842342645337516073048143157050289344243835833777280200971497515719234019016023711814745997469566822791015039331425901542749616610441069377795720909031672361104087745365849661540653734570899169567955126742590471231940402895770628832748975174434098517224228894571273788079808116364250774676255210065580869486024614072967097031132267011048037631195934001068068021157091038097064288256111822477219235095079871659303773628550808508176829614271006834286223938010360294242811740744243366855964473248299753766258048421425962468791776069816152582934138408724330455214919547415661463208845990313145426263542525406016585938775758850502102009464487113314419237619844945654962717692484163667220652966050698914251136784146500280920387843328074046755781964961093244157812212961358952741836495730493644422783161535290933590224491173073477368071486615979779200803281421645797034192825237540753312675225075686131870528145102789898381539241047721871115521278163535740896564081774115192287434628661886584053105350861484066536115956901197773832875455263204240901727667903062375733158151728262959760293495250273397657463560614038715249746421250975587890266615127791081028742257310304365474615140436975305403745057504892983193077092246811788019560335939370409832264618556721937155132410201799689617106334610788449517562426349945192431568084898740727921901018807952101630100517863542803276084329833426494468333628890298012392440101999759585670591292050212267046113372493503365483344700094503703217359039948625591782762990485310415080572773825988901483911584440398463219488553562620076619434171686062177774376636379787605260644742466383004452573014884268010267550434412747434471352620241158287924695422584891852471985626354934508164351149750682974849324666884442259482849938551153052988691902920538503652507679529507549220604469039090284360341161275094678128022566595830296521538472342737095077045028569974126832386490352698868678511332496773088004598232890269251028427972714604437337747593094693020482787754677343893642362922901736949810253366943967860881458148346593274800280693369138457148359943943804628564826715569583029482096055798557147576403977060639214956981199184180752929111431906232961044828946631590980718900134944489204701643342048069328497925447566947414818969486472561988585250520207135101199505620000984276378952816275786703939234232374569616151461736432437827819734977067422368352829360265085664192442590162644032822252581473387284713387207706837427711664551120865881291971168027278830685423124304452410707010983541413453762870351192791237615175591464979896293729926620767199377115444960302032581163181534528258030464755125829748379418903373478699614527031497191774868960103314169038250384818404984148086380687821239652866484471749146439176277410233379781347127085382179501570020592307013146144892022168644129310442117064513378929638456878926210949728739338113791046842056721929613384463770884797702881756236272276278232657236044319799968497640170860182993539358477645288282798212690268001023426229692385297519997087257563535637333721163437779583154274005970543084607047963545751809913641293040933234834459696364634630608061579319145626342891905984560026928084230153818907857403842185740024873447971032283990332386948528035071621707105697596525005334231287024969658226860408419581913950041648159271647182964418439169591082510101138396104022564799573556015730576723605699358354057317415482621829271461962741118331756763302357418781736744354787574667102313659040381699603675215896706163726101033651895446732622194847199703396325741353131518344778915779002178063513247094247178417736014484931597994104642794676265535713424821590219047435963334224052964381861016033510996998240358856680414644514798451546272082106114102161585587695463055438909464512736834405638500713285621164000497003489874025109253739928866033851616474845662507770768730180996807838563819438290678283542537447366176398206267285306848743061011470563539369348062084411855665153782415984419387249629808424159460734197616364341823600337596388463859797322671407327028520599568374068850485954116603521520326155511244858483597593593852237585914264160465647845226500959016404733807168141458314739518782259185193117511337971519457144484375525738588822658041681913092091489026373872801379265245283017355767910417297245222285093877231050820663773751880012993069196494997872207515509986640270682762447665428248022985406177075356810866878104451052986224732423434741938339058966640120092492084042854656391925867903159142517697295675691886074694905149946846120451253957929664894648013007247805073239212134236629851388333339416890981145865299868279310138738423390137784362795103744515169664888427298946060353164471400298190092156896667816992693552354957563072071929158323961922087965392140783468118851814231493064357345322005988047106827080365561773178701203684237085510791883926763279601685234064897119444599021402197105127756939738514573994414753501008643561884152323153799148336496520599984359716805170064990387506550226471079344735848950678166242793242013982315247362046938356051733100700406920399977533081960371520333413934917270889053275067058576783696351420261132462914157781431690484044488176454824821993518669737765889068462837968966180718515506249134077571567399919334704006210133041152521722343519957336061601230713021088751233810559063074164468758905702244470343272552035925898833143320308235107830715762135223159396971214910964097281981550098282321959945834738132799755946701190240526727811885327071118353555977351284013109569341386984135464366128391981056801586471610644882056614707033362134892053489355814025002939258113793928341336987596197547020760684455555532171103660830770386219292549420566466489765294490256287917961297797870774656110918209355664199664316918188951345630505647505930687514285719859051092248036907484817379248543480962998022765202889579723315759685593032831792533151439819682875394226314531902751264618129987083416063215976396200048933027717371662310429904313939397667165006683617699350338347850326734696449872445186466571305641920252085084031266433057192198257715047549484779935999881248593420051652041547097829987347617320196521511312513698490287679111888985626911357706431451002996852849897532790642372941356645065149890416875945196204391299147054302287643956474899391560275991303055404709319347533334616971420447898210293352851432342548957267779456319325453888167640197380531669239799372547621510252016579461558993419499979303388111833710261008106385951218416481721568495849332684909194387460028682576147196331892693099507738231636543502556789498172805820237052832281793974640195592606402219710345897587137720238281247218246664864364609070938623729868218631412250364503951797828683417798689872822153837900609937284927099855008283282051577090422080676360199103939859591404186815194850508399994647508216189174615872818304090883291357878994584350625957173667368035715508767541980052675910665352690660265466729653646695257268708860540864415975441341139751676800394502670590232796961709546929334567499531010541178451972962305246851822374191186064348373844371891445684400027847293939436449893089245541369048221719109106261052602326656467433283961366461516412909664737730185934885719338541046873956736807648095239684454997839902223858522239528120438587715027282531315061575005321856246401758179892745043223877248074030541507769350474431199966248700702606013396700665658993966664257127470883001429613402696710104778781900191241037324141693133078399666743503357061407355202921073189096667804291732866836686600546554640799335631208680005344892332580339468468421286975539323934295303508574566783899099728851679007023515758358578268133898650106489199670568346215472944688643847722255270913394723169199476230217773333797973389839137111302973971520045328874761550827280418014401091728472419976807394656411530171995789908874931454890856204691533189163165415622103866119853832676867844368205438015603903492206491228167869845522512435236438386105345658470076281361279380138174455528512607881432741511305260541844875425286598693899538290674671887491116342636107597824686553526329066547482495614958260472372296146843849493918692993199217740124050834933022845564790500400776737613166684376155495989697874037474825990245355761599046867725449438463284461026680533856242413247589014147280221543714312283590186238021703906211536923908300645943654108779829400695290966990747395134511703221690385409440724001482329398805415895003181372026647794365554799136405186239902009001812926693001366135275904527407742457812825336839066992914967946018848762138399614432854787674017460766447284622764492635170361670001118657686877052362916095954001380783646820820060598458668309096273400280769755252575332783457621249850321732462454778224266188152905135007819032416339146579204550502775019701970404967325028176152759860613395404949418267619577972709267331990025318847598674999719075531808258203480071451950367713610981164303516170170545593424651120872317477998853170840590814181374153395724403006530127659611442305115834625639603115758128473707052144185400254084710911228504582950091360970342928515795866900958997690843265737693367941152417336698320444481736494160616175745316042659603525015278371590034321018663711914970784128403373978230539291076904070906052234380515532304939759012769681256046873425165666373334797118127032225500738781327462081447626752760649402917790117090035805319394671454138602548526529410168446388015282894428377594978023538576784273471313102466577999158744460829994469569946800148335107933925119511139116844398622843381740710695942024284196492803494914179221499476881632868293283591851259097863898068754745050471298501869372318451536038446240716881437557867357359383009557554817163423583821666234885245769144112822629992110887235612765004263194776190713001692040177215382429432105927298911142521340386483318377304902639712130205371075610985125551270358382388694814251406563658441099819760047185646147705470496911687504033442281219269921267624663233809601987300941045689936046586802077873352688972465181935110239517703904181866463012289443943809369817317321043647660202244944976516896417580814126146338238961346916202526884838165488148552786851910633779934434340307276838977084979057764288773293213495041360916364988194799365792385683142601738324828587183409644621746358427856493204129959734426382800286513856146437697721230521413591836177956609206625452804949598761722988037813136875209370340963210892557480039384043096982931522897243319391942381441520197059737227527683724893617300136233943494343029635681106387702334030763065994872961435337197111943307016375130015372623974553020009378940364571451690453290914753105029409244576610196185816059843230448276998360641585369479707385333861762123669067292852144923991810919014236829579811633638614148241554278656250854394979010365478311538160105415690660474360399321926013778149499559320191339018992649039332804947928862472818502861796733561734522337033293561962175934330993362316237303132071112732298339616383119590835578752881496452043133236545763049373164837950010641986396788952919087672402885935720643289583546359556363344577627548420547796532754924560468865706983019004190095134040732867826708092788257296377824048716453201077260769223582069970530791411122092223352446162316654121295697150067047221536774337349102851541191118671661127702637050570005977990205043412125129343279218665364029977499288106454512241184155840215844204181163253313505473087310931825039098679489874879768597623875819887800019535683384451788606724198169766834848280603529440887503186050983788903201750361481512512812199122571516231751979966416225214905827118271660017227499965252889161077468279895173363149987268702910916531895710832502296510286821788905251522077390874154211050906980515332491804711540045254033889420104211928182745613227460723337458918575066075334629789524651908721816185639857362711591698700486423497998645964214446848913590226931322156399959643020546398113498701143858929448794195186674804105821267268223099827724032255416620250141386561407299657526558100229628081725704554385304712149735378728683609576184871021141797643342434924914451762183506589618535484324715126439409112735950604121606874058873842515242082902934104078892047855826667128850669155108185807073003969971616742338953449290418832760590033435211012192630465684109437332915714533492294876189593293330711077959981643371353127795543846122046891329854913609880056508346832995750364317750437045271564907182287855158487064511937517420357869359305461158730999773007237204372364081365639016803362566916478365081593061532210137349523409844260809160388359010196808827777899667759048883268556033556624826529042176005792434881819024999622975689493694738317870802699006982347226262635762489994781905196997977088942661687392713782231644828472676864443152675197477452346208208215980560894779075695934803880412471310242889642165413841746280650066200830749221500607045554049661574823383169981671294628557359845297022196502026431800637181032261177113741372544462859248285332914425623302459943413632155540542641255193381120285538396567207652602588631738450771668585906458615824861696781285201430693218703048979975405603681850153615320945760881094971367494729555795983495405467570717152955563702617230193677187834784770947022295612777473023773109009894915275005409549923938914592999168797611516977821484708091566006579766345714573034219996989883236797052472136762749079089933451128581449423738617242043525296141138687134738607307143452724451269422174992945427035509948992367709896184827512665483444763470394485032679212318824482324482521677854426050302076683567558466884818765465943278861574205875023675902070360891430543756544951893926739508599101539209556965477617321553492433465762068570086832604667597107190857406703511358344925952340441761400390004901460662093358527262366153467348201415042335113241193941916933744352110951061149413085869663790464640337440660889879318396129060090755577095921575923315018354202069863489342677859165874858361228861034063498624193502538997960910223669253043658744628763643293984141367362883715259474216473232217797892056745111159324197574808298027784009479935085213831507069770496943012247906498293769260238944801815750022030612007590449949788656639220894857879503440877351387315948450447992912554517454970970282839708076376437186048771362974837759968756030216380052655895380313940737611222967649636395666807295630452795536845100561837367277865508408592938862072339659899551243564459294998043564807148481783859519097936577828187641021157478936407625644414790272577297894625742479737604992405780003036471791111376771650390488140340144133550928521901932039336830110213250183102873432482598914957207794554473887476390957916827298880628137796106852979620367977589220935635573489868496217773822830576000382180959475684935571070638302683982400911032098965265706594469428112441864455813908848984429858814831292581624647877015002334892255429508100715072368264116744960414370763578955390635615947274068943638602300052440354748964068314107722900770434767397697494687978476578628269150010681117653225183335586114780336772139390800879262945068062491109134699299832157972304293224157729162518762856582373520509383858269353435936062828923718744696143820418243858410959304352005552823365897145387020246517635801277733242856358260792132217105458542622940518692110502230840068636451112541516386590818540115405511200326196802982046416320645103572709873789728609628479320395699937492907136752329086736239155814914062067653021074803008092498225487358035980113638908589879821307912174507510836094422219431119158873299123066609846481230155991161762930160865172299195376680357926164414753195971323600388147376899481869106249778365681153562690881796494926949056487935180042880301681595498930393466464899988999625743833922993599096125637019472177985304572138587181317318419674861022761670418142868807304905803875869902807499205729963308238507631298479020910935059580508584222006970606644403566145129240698670260633507243838952165016888281890110652167940971206930998245114175555918563395379821987338264501346667117586673323724497830818184735768950438382030567637306981927271687045193184004432252521038572629600905866908924027001646401773894547692595089720112251213739073257224773309794138557308691814534857267825697245129303120638892334564199788594783550264766508994483240420499689523227667863383230329618132068978241023522879281588446400908189507326647891909899204591195124080451936500194445135055741500318314004268682753969786760837522401517671022481701207925823539857629587722302794750944092520249630388685740246255879961145001524333383462105107772606043782374771621332396264414038285839529796694299341831604386058827426588967514748288729609118398676649661771412763039875885499832408521436962692916697221496737910531308440064954760011054851590167614503522116734521453071503981178282508561003233565584506886144865238402734477615488180153114071744874743810815754764492729428547719414739471010409927289521794428122498968031924801263918125297149063854424809615980339045687183473978585005730612289956638370970615404043051591986413765876630654278256890072831198540121979508303985364100566186540533823885387308684040255833582827277286203813800594022892898200103550767209811334054932126533943802235757776915764567355396795185826126632786545540384637433801512045381790958485068714596800385433458253595554450036143410533790603251007410345711474647456100640281422469101272552848723341247391330622279207499505688156603145595386176078565203305843395892346853761260205690729008699744351225193246433030296809525066208887601679862074306885968415974530334512941263143026303463930297333514102327469894096560293928596919800419263639710290834705309965219135721319260134034554458654534295261610742485764321612069731534652431465166821560587232631800078502903500080630346059021307921878482967748068498998038209006719795050859319770972657038129003210490818075631149436823035327247487061283478104064905371380427321411507135610290458630450502507476132291834604082789438777988564324878357749980894637257525126886471688568267819421461690026067499572852627270239087460256783739723714468173236546071691314767094411136670417095551782098814496289843754003193978809233064809727714096938619259246317664160990661671155159035556380308525291796782062073106189736623743740306203653869713073934987867191194010335951450582038487919627005905426020235828670248616341360798283288809824345558492938170719920378026773395332051646095120850522597666447208885900942261552978685768280862672609199161610324071165194518228685038286020406735400226703011656206362611535927873186810407728616944934477253671644000785273486025773302682426810872518067716076723301224858117339032301633189935500003214756471670820614176952107583473190000517522000985276719470838733058946173589283815556006639604215393024076322807270553669924420131930165747884288041297361770230478526471202751660757006212922604764514513806514883827556289222158113156844092846498205338002045430871964250727403852518880451560893120203908056870000492486246986851717318543592094463037421168653522215146724455666261166379146314826331446129107801413489700958440959606221309814397124003253180095298004604307447512507031986107537735483604410792560057114024355102293811701361459369058316952254261227912268472589956930974297713777602482028326491834251674927819001328205337745469783135916170821485837754361537356998347294788040398198958236508556931499162301074366562699114769638540720276488492505909824731448922048083263282731429541264956152534294745455347838856154282221933726729367623452470267578409800319112065271341806454331196875224424320836787006878362471751856544062562918669522343660554293537641102552353685684670989750615027190713314510336247585795847140617926158313954989983364208922534254616074707823239453595902382815525444214362672516247849053097626584556714028648738492718093024403602629591794279287613022070500639294628104697376874338198419353968253577186894273842222384760679369608786128441193427630505276453404037716436662056405304013947180813974890600704576414110553537957062206983844554979383275521030418664034183399693388217817170686046783042592393631641205208776277010269470718294049444867066513582738040953901088428394490419356598626857182580665275723210326632328305664407380138561978030534852333923268089713994664314977007439087524539687410293084428411304632663118397381946843146239501959317777102650733937442504253963499113500967886338804451949883345605010231235861934729450747759077779583959549941793205555469336010891017781127505460233002860949117262786286887262680694430706927569446302124817825865389352834290178708392744461360169261794484246865936199090953855227644321448544268417624196775252438653452972566770783062869356053101665662618412141426486666374039939870581798195855266557692322512894720344689406250742618040950481463249538039727785973257769205398798654515453474750675837813556349324278472368252742106889960875527402420828556275158000633978362879881790383613604495857252635850325877907651993934045798673786672103473448864391792517506179956794616716245283871629475733170705779364878035392018509870853417126963277892171392056405144221004751211954778037626357882804028064684922063471128889107272407059405355479207643729398280407690638406196701767307854603533478585801926652673039946625524917776319427746363765414101828434040603304633433493752831706434737996639561031209127735233489526847707626727360256555850660630058513173291583303656849001773744152723895295909368024575188755916190006145303670535242653058737610051414157168502191701117905768266185503799159965772724173923218673843398515660389922104710985740564773117094134287804894450947410371032413108802415264183996781283153196405270242091090127336642770097391085558619000243921681678090608723070991182811730550068428667145715422819360722621810277684166552883737508490692173300791552298232627940215727823778477932856614846962521619156035350693182481045054774335910671766694501882236294476155103836302678699637576137141366595332560559071537305267091111534457672369152173893820118850299846952230712850246633794003119848763137398696544696286330093003307214057913824081303269488025318940606888047881473451741648586545809984023735696037758041982617429019655508325502859189840932547501728849006621287388602652584875087612415260400572766713843293173947180492107902721139614137885621262053270585710136317549870772360212427879739965180676406567105879504759573326683134169427776870883574937895401844881416779246932963761052149570207981563641653602932126377986968819187811062462563467684291461830655108273147303339091548435397411087853836914316058803237478028279657980450910949979757801462890036245252649589130805486831356592534767952076883117707507199183861071213896972166883315603306125027706683380036219493901730106207467245728540819154009610567446895885689563438979507345921185724048609805272958548154429983058494587030753681244992587982057881807962427952725868494025241676814595395867820226856134262291948014257668170618236423593122671152932171944167117358197613031402167923774318511980963635623782284212780530387091699531731075629466467184592870540767411783429902466938217369299110248755781901136930734590972572768114329690449976299964014665674497645249132299911173327128686236439366728610796604835850925110718433604812030207378350519090475169768003234029298673179750043329999286856408394452637281970905380201130294082674187152953728697388568962036886517435685555491205735035633102780157342557888121264240693128278169546360304979904706758301652404510711036429077010517153320123036784340994122471894600903145137469778398610364217205603621634330607184844841924645040494356219717574300990776231315496974941037483060539722103404238430844893028798236611041630177352834399155023661077485947551609756835978850006086911523872481964153052999731551160143886409917745744694100005784502454731940764609018071242400204325550609962332747613577629239819207623170215444716424591636755880024077300012490454228986955983844279641102465700663501966426109186508747415607654557078542106439489230055003337590828411988039940679093664064523918899336291330752245825247497793736286720226614268606053094670100518483157470703173472964389350040537436490512781425063606271839496279799037475332680521104828949354814706350608495355889095433343671646834045888115472079018860548478689849837160908249818753550519414032784481767309568128202489075699242399594709070693961656193408120548847787163902469816832846523683303335204165045818279932738406384786581653236233373921399848758750475195501776841090928077744583191878320401212120569369174293262676112404651786723054891286209978179929930916120813124087259510903390895327288338478381556073691707113614166291854329779991076960300648947931859154902977916867325431884653833443610776988984531720384692130680898959514827713538674200062804046627799878789892405581768869411803804344556079390126651447732931215137094361285320477475942729783102232636070143837890158448378035129718704623314096339103316535700780649662616300389677997263870304985485179928940346354959291929433777498896524870231739046657789838586916942133144445943436511682755606583316190105649148617575544459039154208023227527634151520274291265029619486671417758973365535188959183355316251388061645744015905105286647509862154821021493744037068814084492576253308565715557047071680215474234661462010502933923681050797225336067063514426493283140890593644286926824600619256790588780710156002576180150198549539852074291438033662804744418914496699665390768202913413083734619625267139626883971097023109181306367912521135885435247504937174548098062835285977030801077807822234119695270122484900283766783803832680822991934558454832197425300359224101860268705630169999501934682116974353881948493073733639450440842952818127140549608288622256255098264847597713067480282837790960168959178262578406524484741426704244458413451532553182683022933703729459392444606695843422303378754985842282368928513045665797437245000019575396486522819747772267293767400172237025360341336281305362777427482227599115885480661308099456213621414375294557490001132156414076952680451254375469675208174316352080270810980484992317405711803010439985209627790635592036406944848879135207480979476058980248653180158680573417170820906122521520825011251712030714092208712313749844454447389247586601506162207899085770482028810380732407316268610728333256833831295481877380074850338220198011588244375226760527113496808774787454567643212383360997883157833259233718645231001331292169251961140545282812871924107786694377736248997162132156292395570988393529417442758434589125683123352778420968876805205851505117295791199343581299351873653602527262844260191273799340223910943107587287114494057142013112241929403823768798573448555926973877320710420477236089109513809330775596768541834371395815549306873976669327528184592421702136154645108536028705239717948722662106288306423413237809823353503131143206260743871011619127028123472742072110842964138468197019098498018133492086615023404869063060660910372810048014987113434066330746230442442629450911963585037893167764897586239315571560549364384762579151027233886012128573742329930516417406091157225306129583030886543634182446798496483691282660221738133379719335194062059370719734598513670281950820272698019972838176169053456165161815485015668094377351728259984306762386667617951366596254118611685633317851433450398649110582492811915476481964879691389957010267257773491931712376477399469671217228755772386424546403639059255232176014122487621376153552758885245089074258382609028726245706002921931638998071891485419675118066333280170020648730110450137090134916999126643895532793455750932472784241850811841872225125591918768318380382647391991046135156478648326820547078944444787033387111676412400781726029501123082808222519701037549781273332488864617386920928570761023801047943910710985868382883288215050011978015677115270781370454448552545147949284525489047378877291389284526485970754591249132180912239315890625176582966740356806234323310992724198399171488122978063783174734447908279745684828777167572708373515207866345293742968596643937954984032427867431900516935060717452842139027390102118693700132423850820625182429503324436031009830175245828330417379290964252377866449701197442198626858709172221750929772676630834437359514836037296458129906310693350074008460111700113270396607435563071278910841754558893380718230448997806664261968264886315945581520860222720139324172820588481580703785305789576979236644629398625242224333698117224629252835737372919196592758669213196122530676886591510841000574471293083363851254034278269563654022075674443909317683444731411982088467247086007078820918767366130007834261863814067242002062792321703567605771548389911797636688897118018663656237659381478998884148216401126460061187635547980905519655987169435104016158677626229603037798540767217107247082766560479913560094562264757713202493268661435824368350751066802291353486023699979458814415039728852522164894411104902170214507533169500053439267469005783729746451030982732853030783245620484640351450343911629215131025297034462001448428936889630601290947105992334739695379151901489922730167693660658908871133935637801023875346709812721792977398732527564172351952127559596529384053722749871518877901669908380381498155838847717378155782292150276657640306371197062658833237722245174632031466116579918753114722611152715093604768613550507848705112035297535128682273228019857484653790321910740131402243489061746594302696652750233941887383326485670277871486165936098310406382384603303605575930435811732495719512868292001671121946154619291917748704246901649992241881580270830082465155993798134020963584045277175279544434390489786603068863563135537470595218469409438233486164800906091872082350458155525432542801069988141975717184288623951760378937242682389515324450358267093406274677492803401843845422114681121318417880155329680844801220159053450276264072336859204182479958504552883646268135267536696891999169030796557904168548886359237276234918391176513732891842909680269916541196502889164917257141326862673392115874199270016804897386340895365517040698345721710795329920172134414914960398495714937525565413020555251624083999790608362493083711587427123978851819682425470605048642227892231787031239563216649202426155244853290531081897751965802502226795242215244309200355058856307262237202989129065305806659120678179280298176895142056902802188762496491393075737202373362563802673362026313951015405278157899847934445856617791682372299307992085854086345852067325868317140987406699570740465373446057252264666560811495528015508831217905036470522303749428094549724657262239349542096426441915070144126562645275557677792983859009496058268618991339451415855689932103079564334428019896907343040941228227402235691760117687347014881104840887306889621995281876062829781445402647331427713496917830776722678086300821692287109773080190362152551118728741110818891630295286786330076797924812297897613201398273603745917596014156711824021850133377901950484155806228468044725155687738717463926103261173841134840362628716192217783239217591580725035293055179348777342028576155838005467091076162362952893976674444113955068556551553116686255174253871172747541660714019315885987752607227579344525957617972796271494172045561338052370960409403840761301595992005138694332678574264016750875214200699323132372252727010646650408857054315339258655784162920493514101049477819348576928214759730833138479022687556235194967818704309815647377098627707050373031824756988802194344529765286061476554627440617122280623200209536143641034930913886599683361906634069485862273784755369554299422541537815744579578852321635487120265719690641669098606704257138131010706767844235102880528923958943410991920182696199404627867908381796899362551860005492776329856586520501040603167482016858468455456084708986539776922326036708439498827897437405751789631201285947787159595745649448634371444419834680091752023546315541800489364511001063584966660146956693774829805315083258269522286721896206323500839971198448546502661783796544279084691864578019890877058242973355701458643601896572755586787350898186893396883613536457754088112746001644513836623522438247107092375914566076621784450053522045122153588011369797802383350609060443127500903177911297691962808301616971897712368387395569015935878143027098938140011087187954983433740035319051146063008054341921151201399834078323740479915448886739149669286993917695306550504269213745162557000960156191051413413480847574170029309834562491519948762551940589703025118759875069130866095787319134478634791284551796480422597232345899544709194601756032721271442624211590637587600471681418321058973608236610381006877537565713022415460461406419855273596084504678665105604168424805536155352037898055879383337660216544875850433628156284183940305512920798464267469745385025369507116320395540035750366640073253482004222626316980808987907191885164677792357699343470828381840523452744679674510247868320662006856378055661063933890289657823848458167521149772288143274683888382735785424615990415108566995480001055856961126226419330754117767219609337373297214428333049909886614446311585882855124333921443893478381502464263132486415870704401523249346326252457934279235864066172111561109385216179460623344947687976550642899374480550676410833825818266526878725403465994401779973373701788366626888495045068858698941621080096127943753631153014769552951959757275486157122653118225762455563240509030752292861399124526708653400041948317022506915029572619637265979645596390456043795392366009224742283633815677318543344808206358163552384382462978263440482458634494660529456054530781125698316549576934494984454830139530055766253241938069041386891310619955999006489287396265828558570869347899605030870185773028372358764070362321100445017809419122881655602605546655208042473489729061048505719398017043608205553476075478670081962493105326982302260463006412182017495298248628284468053953867592288538580080240041089446027613486657979212070089552121003632359361389306214076608583175128062934353942122071037662617812199438002044715045626801431034817528165060266114519283542699849363474370219784405629053098185843118966776753936958789237082044735939089101919853907983681354658584894730150699269425258556644139748173004721952645023906410048966819294108811085409956973989648116140059858423676109505859166045730823165683635730364853563197536893601352057287895250468490977941026925156867202684723600374981318969705777452698213565586777060468729938531336689126033725220194497492838744429965779808807408570870354004321612079988053571692923682852171722666001799973139023293377439854432832994870114417285133939796253078466169838104171761482337128485155819624252324941631647084004648677300367652179913269677000600164005113164813980958577588089789867344626760758539554666190373070751674512153631268687061073058643258030630431454978773746083441921151199079398149844776682718364709487439014852987745833958554362163246267326136023029085580177378766393999325055910934427962159179390396090680632502919250263172961451167325659544339565880933891230333253171041850762793987403400024225672084868021408840532705424534120938050289520028983575162706141993511673991938957492853062053441509820922351050716168167449866397466429138842450635132031200453482469316939244880291926517555547161536848716334641755618749293771943638781793485759688791279115299183638933051791445018301431936491736626904758220906266324625350841713418420441764013775608551434133629852556936964670791611477953582781591854172133043484644750923210539419825416349891937318715489834051965146967452235936175813547195878323806517862519830631996481130532351245239024594139207659010144334888066333548129398402067614859238119823940969977840846689706674158114436450511615163832335187402425448602242933126940642849435320424300787570168951833094188400099421039574722535049930259075220765873135219252267922250104761865300301765067035252479975493481452534117963586491831846044748905856195432009255121627353200531666410486563396919554842614697176740651177380362253741013638886136008995611429679402315569440491023958868178033577504198130631684442275499340876378787815293791851717964278228816682748891353749594802166285305397676662093437744197217221560153817355465246891209453103639619494867300723456105931132561666711055343689030233432866068192630012572555254159799725012462969206641414417364929888471266828784289455103086280060659971875902684574564886738892151394097568799414781984790751673248571852551960450379558880926417755244967428997588238148483680566082177652121057839154357449701348099771407763054419475451996911013276236756412067116788075728858351827392306101641543909723096490838401154767290647132411130306188570458145218544477658668471524161681407234359987335990171242773901008884517716144710996750736033828908493114033890289280989114160766823082613192807261256561472374379602596466082168516636163716001243432230182575079443685555110971906323021520488860045230941564103677749120271906814073796686350638360617308874554729899320324876157308174890771504457827410787289105858771268843419652649792646761134216219406606514282922132184770959834715096089214902163316412748213759917147550184834650378376567223116187401944673068694113311177836088484981885118079376854773069728345350579992937568896835621457839719057870386159083724681151514901018216380343196291606046339283026701074258106029771390133202556790316823346652020345017138475655083289374137784463529211518015695274914659464992575581902328615046481898426945714122169939846271858602233183969443117533668396531987899912850798207831479089459390925531781471682031501053852850024819672553146354031668361744768194290994405149342167930464605026279981755008063204960389198341530753013213602689266436743239285000454893024497453365436756410640811589001839431995367954309956269339167385653300948115990732762841483319175869373732548764543775935139993356139237455397069956655452811621982544319098145534864680138912547523189876405332634075700988590937783313323484187494339273457308282293634152268374902463096216819151018609047834725295788299536855313415482954012353757016278974109063913981205713034261830701753934553165661078645151610127759885650157880094702169937392624271107983506769250655255481176678129461329276157975504964349413922799383058477592565615443616005275049261929234682595338909259036288552971795112644081324514352489305827594934132162952455055766453958085862923786931230700674502118419551586820918453342642189513994699931932035459995141997387365457039632549867811861791673394902350968227217644706912666291075682556113654207026644561453750150558660498632558945094642782592601561780920907736317246267230039607491309211816387574258981359102505208926688789518575103348457405281145046185095522636327928705473532226324162781997193116742923300942480081680887089289757970166485701530734941534123282798979350742177908578082494331030441205119118352789815068922089540138247493660485261793025815558561792384714779741911052622215776419852344117735606554178409686828587032572963309345062745959143420952185293492124171265791600835232747008419351465707726584636732326861742802114526733726386979601150755825588554017632392337046223483208549009352536062662556941890754240520047055342198665243751070384280163900636943233508295715784188080067993660891803821335905679161061117127980417699073651514291185279013711325951102199460753744178846999998157667652571273470037583833207655686412468424800312895040838502336474286324599706440736119252721519194726726776264721287714257634618591230888312036979218882377234543508050153437238716988977473320505810382260639005115800378856174201983892737253672104636435051452064433826604254008490275179430487841296952593699743672954472697616589363156899894007804917545868067546507875618372511649845937792408052111872669393626812251365809643378525855558946887849122259233230862384857781998012660875929354895335841225657460489485603252215755471773850079459615218662956253973373333715711842154201525786839464617825932643452828674706637847017347576531101271747739062996598545291188743284824150804704153779728064095055386874279470169066651540546710240431758651250815307165025710601125398429214151008712986961479944547967421374118302073908808360273015818514804649272854477992384521468987861395889981420736094461016323043020271338304659044434952985861184498416600254584760300676965310690359066236574361619196993572712047563521259552925100629168312114062366254956670710406780650795506590498302138392883706007928045090906807050327754521506413236310201826242971549338730552900553148791289085091538263251245561875806257574989754563417309197821534212342038813461751716926570115583746703114227977055256112576081319923446895154268979073969118539854461744204074406106154833847413096436147877080646104702836154616168249991479623968088055892393620019733959627508890371403015204218427572312500608698199530899396668560306486150980954450639511153170910676595968595870911281934043439773708603386572023195284284875519313245582324744237898069315206645921811847732215836051395927098971880544222727097074821890500449501514848333711255638012102663809127884292208364009741042482536728714725298966165019503086037121480275004035625566233063342421427152463819192976737221947487190306331347019211293676459969915714016437771957989931718404441035498133053603726580917529349610350056327954080634192310937257019326372509818162616044935678902845409264514337693136753364193611827342727274705672136267734395770280778915953117966131242619867893997720172672754490921671233926426978969025724531785017272669299242133611563454495993074860235947239686085519242118833688370856778644355784190372991109543803343878754029316729088084582400566639210537409986187846947393367239750655396859782564005195337967517365831350140326299298972108456097257630068700710360515119246150114406002055180306186477398173717153101049692228325896055639823009649997669487942073241247623803778913185073407713085742363056790338975025195780194278055568593563944482951836537557148461905617814296858186749379906589488325668662014155150064387490696652696479580948300162929611872174027514777499438919197806664146565924762399085985614004188141289429689999800849120386439677886068693857477064144007332624052306252487232859128119971441361635291755398062708331969060126614886065337772726566003837877188581967083913657528565654972379018766546868392912491403568984989477724411029543006334875731980727032291640190680650729174466254315202386884625572924769474570883305102140222690498230141548068469187980896427030075865251478220811894670351763773035537550661011379315135030452619579054517950151150803421767374502510802369311508775450429890469526122257419167750807610616256611397737443562713292494912167182925946552137535081070084306066959050803562100714577585940959081705127964572211172350521278345857119766754113757343051266742428282624462165037462423247562413259797218503183505011162942476125138033578494611927628984544735018134747770378676529827746806547210207168774838887470571834156997488603749997336552776708461569410721962526631541632988098034611854855029553370656038473419568306111293644103430396256776337183424212319676603701327694589167567227295440102926669189499337359659190526849716427804361138681074085131220624239034103003586214323168254777691526544567128396870492693430439786615481344138145425678965746712147349951699311812026017001884844329618584131308312013661921696574702503459981849087483433662980855411978506328677746148493600360850595444058147543220167993183781971821265765912642863560303166764271967694451498539056419660111379284800323125980411630182871244862328824641229776657218416969205915437460266460850968026625647281737419330337581144506143987510266288965560549518318904460645659876326838977524926158554214434312466948844124962924060081573959470663201665521858143850051254482470803428115024119978957044396333374023477752132436082810363466504143507852347174490825032318670904808729635957157546812566555650591356509835200402682393939323727455965181286995206516295860281269436320231567559795237983292748116999184815290533704202923224499830109883754272391567658207548013281247447473062838704230241901430498824566050396104305426503233829120589579339449145028482726983184445567362293768045217281782234879447166505591328890134300251497946475090211665039714947493979009675307845740397048670585005111149488592562869194537434492817931723154826734036227064039963751596578126150933954330698500094084238643597147979986897920936415275254445431690918622717453659295375828225714388570150776658558518579799305472066591987098401922774127800597969641204386589796746726964892606592234094438500393396828821699357939060588913740430244371569716544690155976751695785838739299031036098843719736675938383670561189614683376575452084043352024973988973624450677631604838139449122798528494217475481754192546664104677432371540264300966791163297294454070903858360910327276102099872122400573818849539364463339729956185809401717201436219292243781063486578537993389049738493506390164188778666828588572239229220129057992429818786384313573807517289857602875978320443011882620077634936975266792679414392420966411837317165577982170944364788260864596290076823027645538738138833916129447458424431943230449812896897980658005851995449095451235955147467622870477515959640085947257284395968133466868105031495625773267488524599939483286135859319165212562242880630996870385195804585694030068274211425447128173441876967877074562360944107291517225011084817090510618240452706528344916565882072451443711572794439461612646523351113435460498703993168458529536729503902107560028651068850664263003686317351120641583369728658090884608351255579787848850423521624407799715459032002188836531737858341115114785024708149923362706942199429312796129196005623078499974731754647142792589571659326555438778559167447929958812665104378077911810008452049634037601992052575243267456010045809985243638145001295626758388493524522169803267591215904338438401604964116695629916274644226119686515860593869708208942407820025954694122755922204140983134520244371558073604122545216920147392146913861812434266411882549431926360817150363492955871534778917128011107214233348321841506533529387083981630665958105522692136803794797967385331188394756921586002771532484336345945325884568650123016151582026180553092954562408675884286296880510482772364606728493214630703412370952235564622544402177252381779574331473266884915199574348187119508258138099890118191006486089940362222376723961786508711531713368372864610737680157307450976605427979761908075864894127612482184643586759472198695619273612766457588751069848339119323740632968633814852906167776348747006323234149508322203308944375324092396509047641357615306595203511045740163507489811617049618488784148260181688676347802711330866449764405389231275565673641910089614671847497507173235650184137011333253157528566177666187275495339636792341006099492977837891127774242211195366704347490874742662209008766112517298521536390760545487115312397990061164108521789146257989884278363612294194554067897931207021103808604949164882907959088261727778398816313632994780250878949664946036484834566760589319448253095921968652235582057754735427139105570976128976455833358386434683609147600909123888783009676379634146511530697664522860841990182193277546344135032887193567052512517585322644322266883998845827274056586459365331120606046784540981359980236803386250486376272553878985779887430476195610312939425392416049082107848646011867040116458893552556254426349299341611983761488992371739024397291695042065020315180074882568437474792340526337992217623053377580584919444639528485359168340255065421457182871917448504825374435473811738565059101356531819030553678100874912856192010619648005721133666567295059901719355549211185817147840326140489084799156411643832200018771194099091889613498767522896733330885526246459892529289252821006502674603222014837490550710217752760529420511725686979079633539447187776650453522833199842093502374535219027107115439591428384543572106560105270704431565124236838666819712935628969768450905858627648524320954583673844850428970195198563647914819639821742761852697118452389432433482858013915872025396863880198128858217781278598396151195075563090697396131001750697624097236481126595350077041899602403237075123801477189639733876650442053121491044830289684187838009929405380947052022966646845017178780816507999016785436571253218607060760814492827943944063832772079569792134668198400822318493788986531501071624386378119519565644730881898978374463889113629117908957143719114994987623307147452923119869767140739362798813260011434779166291495848370849854129386282261209552614907476729429405758461610705575372934513079439039211629986841224346263184517837972184877169980712943888395672386451634106187641991343783726806630776448279201661441812363311008307870832177914545432245336073960456259314676989850202418810463606289667493211060358369255359399896173613258389643663985717800152612322084900324346923848692090138177475360617257662550878250653902004301730798671701966609360166796848228564686621067111848600381170691778569681706655718864108312019289065023130873417387674549069316040986750234744912538748995969295894360340406016305294970886744993090388819300707209593931365639960629491172686106733942929390775482464654202959394550480871450832192414704694255734550324849927281913353291342601849811587273322045395122433416017893673097132887140488288863083751527483615875474891839376621574010709684768942830011695469599741009286719824183108548573657436024542405539494141748339987599902461126848664886156812821809521118433659560668052975683390624327375163813710455715746328452445078510812631121839470333567907696280497259584160728663744008064032329727892521899018059429177322216702476804484837996225806591344724290666704160893025644319526926293468699619522895250091634938763282197463024296110859624221468926798044046867808554408844522638973021195148046001712440590313697621374710191303500363417656896606314417331014009871574563175100330137160464823710159848193350675574722390758270729765978089072774074507922264451564157065821437466609162710397365837570054842862777487178922093477977767642570405785167658711671434243253343959652528047110811801517870531189220041895464640431923868813366075703878242800248182641671779241461144516002724300465319678040838132061844262319630347472379857979231675671322678836775971015456566561790409676859112248133152481729536772353270549495399233269300885273290427646590620202519797517544009355178637203045948423387734399682164200318158829719836126676349658180479161148947921286607277626506996982500074631299936564816450644888918995847693705970032887728528904549701649831853846354679652560340753026060529153591399521276988234113504581579550956760358031886293349850790659328880982879608087377182986017734666362662282388752470584705210626889213098921084991490593119674473793230229010641410587046229581093591136084880537124743457906844212337260677316478594698853033343979376509716417215052273162096277576639907905918048248569525136093780371845171973058797143809510186248300726136662928541810117405769389545506197495379778714117974519012090572591663902408829550810971750987879134276161482653892105359260108701581853341887000909573102189609176963086075977614099366700709938448516284010080167210495440160568557313657626210704131890864588893829366244914816622829839881304726583031881277735822310826093513187977530512762992431513948472524692400907115013158553767381919660706265030889076408126440315690417222997055610211699755265697321631096549078025114894702945305410630573468076882955654234753847518957431060584259081628509911467989142530648735520596231623119970930750286168657972278626206374871105169534259387869604900482479458024133184591270902906853760656911442581551106453536793510974028369322144742294349445441606282676993789314794240016031627533990297094665310454614392335642863822078959628488899355197594172572672143267260809300857317390768227920745038849435233197356641452249234981925934569125704238425211257266789690612837866916963630992303523241451466302189302618708268982039231879042836918220845170476488317010385270816835531531123591934079833564441828451405504662471435209436321344927292586122706823765865787132562257294367143560450747563909300299730322252508935439654529094387221974843011855960122246892457383917267291878348179849418033005180313923548119298608345938970978472087662240702492192899840329561158958482404216755973771802540010920431875089815869937666596779073655072983547326914623689432949066723779388520066957563983638128994227316447908301995576793608763510929639131371821334064507485113212341238659446346536136123185723318585911499185001364322436140543932431506278603526834782536460416163602105609002061805060905825296777035087021375906877103362126050925750159973725636932225369627829235849444577380546506849611403781760527128860025998642295536251308181381795501823317787130773985012270614026640642976149778815662757612618239285538018902770045673470949734737554192998134310389092510965485113222644079611813034014249705911578666586004692141836416158496052687133014949677195269222163561152333368287672943479219471991295290281988362362347325931199125277835524796052214465382366230836715075197060298609517743587585375021887654422880851146741511851277529103044241872380209847245479664281335459705182171156308680530339750584340578551926646490765986538943778189198243564639978775859343123110695597754156972102206734780441178293277844524427542912876005681216498958835652067171547012310159571132114995734702995646281211115825981052355500596029129692163400518118814781065355753536101712362869055624634220565910911463240537549642379915434000753717037863069050791506700596661235677060774272535793205524757375065200962988660467374049114791960900383267097249144745808142764686456051973782143140805515232661078266250178852686336272615754057980754352213137847218165927794206565872264586244688830073094607542573648004683546140384413489241912849937888086796709912031572302080234305023447349325343826595622635260943727524887386252680535802580731998537129899087537586423416169742651496547142690389128533214645968692127277086735064494555828528783619982004470065932043024656435982695472239603584816633027505224952733041022591716852566054351947137852709890018126009828430256933583336200078086493422047261427869480282989597064206115234322915801032983806669068593841311307477427064158141660615161504306101488145111295017598232368115157306997532733572563602268343161079359744928750234284363614939889830834435744373956950830533940165019830393903674696406165166437592308654303526767872045581953355650213827982640053326795529982688741373583048670107166516600091567288732167940296859436327939351543356478818323773420132356383368462681227741272563406634582701851414407237459014761796291220321439378154428309538460015370516911276867994845408638585305762926381906807508974946417242564583968715594112989273507538931312709171134368436304023112746749938577964288789657477033321560306656591516603999030940657971532394666525600618009635191840259167754208715836657804172381410293369241057303427126127874426538331531676154749726571571532430714361980717781961264726553530033179249396835870822528239415867985547042013335312186232176461026786024407818330042021594085703570258624120196518703395774428410160517360335169082082501169890838640977003842656665411971029214989667892083047516238552548812111736958607645366837746023609613397003952978073011558902965621387215160825813185427432556061913030555124025991411733680391421104693759807652975193383444180012257338894838065163638906771481046382861185747786642370378860473422924296501587501817855273957211078415901903115215924572857654544472547565155600898234689475636870586557959511620287035456061067449318252750087013441022858537050240354073775047879224045080416463412510880911273232673348670071770104644050839149137940938770441815527311603604760237915846180718028781698335772148673239577863330479686090793177266734310662034260221525680066221327975381493423078573625818346486621116600468534930634227175969885078246300855535998486225760596873393087566413273071939620882147193856902270208640632792157294537502684160183787647867616397735056318255787196332471636196930603279545987338351238779462444718093972657223682826983448773778747961983819912128533706721211740463167632829611099036310117183884664426461041494452964170214198398314113310142188835195487360071147603733623287143058369158341907821396046611069113361051363093616532799241796339921769880962463069638672772935699268268912459709976435164015604578048973185644407737866642075504722753168917870609272388543338440155971387024232833338026011585532217094172269565687763199900318231532428087108107678159888226480111582583445062941716490841971748008084628911026721483346747466381438798102864817849820923902372981944934690338143667112982825520390482110708045655653481153118140985513356572964595131789719375434942939737751111555561794865136229421240889239163906011285537311992429751081086972233830199858254478572215436749528634482284904245221629343051009770063082539082789966647493941833323226915534647202002869320860422133565006393991813472639334541922974818689716551808119030668821231332922945663443985065860284168228140045824543478263931509577003099429656347755132297596811386221891635037953698246305227334816098891100451617666555412945337189050475705117163411508355550598253993782520903140757429370126107569683060317480000257736887195051042154788460417888938316516787775707493950743405229763426747063882419150210290897793591093785381953415929886143372292420665198641733140820951659326775375246779150177615811247529144928321951672068621050644345228759751247583647106419205067726665412477353987851684161220670882232427275145549239086857590716321268348193685798023308718575678886266165477695016283617417145644620876492445210977333187957725088202512896848753263721283503858433432345941664256905150289913776469693727836465453796862197902858092976298231261554756130370516672216999133881620949374882189482327324487479967170601036862462923231261246124192284497586082382202408618243022552881410610216300484300796547880973346224268096153154895777305528192584230438454358101768428052339960137979494802076695056139072150635947412775591162662892571434302456759970994913196349383552140204228967578646145197797095310002901082991588414801605147403740804614523723287668157128674436233363367590270688722559852487078147348740328716366962380410619502722033483640674681226779536720201981641725010674346971399120724742412435692395231499753326838550346067021648397450582435609106757596205881321748849453294259209869172400258203502490068251740186670043092387501419910263479303707894419939601160153326216493612170312514934763342895739868722897039870713838986687420976777557935449320671974496449353033214286834854184537373040490195526126083200751347348953504618392178012715856834947316017594050219955354464883769695426268672129835522405245543141685055060871090960650159792171627800070671402785440234776070820945140576064204608912222834622754378871964161729729302139703129894463996126342816462313903278172084306913079969320001274295799701947431762970716595910893565127046029671744519472245864849123105288944121878962267091305873399503088672605894280621383875192782389545840914502538005293622774443118104910705458729938277274661205741387234208986804885364941278980673379260847293536489979760437306956245905581346833845535401238402479153824895142967760583002264039825618506787303509556980608297444179683422120650693273502408450424989439516160209477237810485903515374156501420009228080118787257901481311789502221503514502168551412004876977936381796624140175577638471544885449724120811803794077642114522327381976798553274440487321541500203384259133268190271908778766930188823587186256196854273441630254987619468974221858960761935675324044543039772454486964167728923842299019750267100422544100377767375436087028497092428520967302381077305665018866893281157517936086430569244726866578106169265640331852530308392462738134535251656610505817420963423999522744249751698847231769003229313998370728778446191252533753970442397293132983986540743765041597573250705383891202352106544862983754451834729973284706138850701285464729057872307640205974265480322938985512552232810140267630985092169530376656119905292849194886516909414784492008082142305061821287016826264871167283051199593731278824724278373745168420310015606579967114418524349993552286997122444758591204991234900837405202132043537737242468606398638418577985719333209139364750580964172402239841530463217540884442520081517215997258739674329610670968272517187691337853351916189468943216051643654903828601737793421019765384201541623700981424121465279783916698953848841236231939109516653743503370078991514286356695517395033541933705648645939832202979094340044913345003585047317355195838062064381365133057834040310405191744681573553951471017536898884024429432098224386480273622960866608099786325761189387641106266887430980364127667273148503620080506280553465230816204376802919312337652621260521392431877924044173648619738009757339185222468233167883771397842176597640359555055740641124052466876214922364451280543325361269179225852704097535396509104926004239422563864747655791654719870561510637195158698496092679151929660301354382624502336776848612607827390220480318726865613717618098172652272672214794224913583664621589263543586703961271319564832132208737459132595622779651852228235532702966302499878457782369616183514945789936253231274960507559386266927408615488371573307619604494527397916015414657743388385816609650340227414455510265482822594385109174146308965482149642630284268726544495317486541809990782607835339028046820189569617558490936018749447898912274860684144341163869120503167091971922919625735162433969104728755258405109859484916080954436586508384304458818727592276670068943708374378672506639060921232353170719616268645597049906338638940664914928490752283450876709801375867300264702337950855200120576915449643064920715015939982260034390627868032799841053793556055362447604722072250600604701368260114590060319674700737509560964125545976109484588385556951766774292215536349057574260599480271123588383712493921435703630437711442137446880485835707375098075178012516369929799928704308481067717899546924620164902630007336496742941593810523397412896272919259620411695726701042859725282689799156044015109114448066941618740082486274657556822135144032913725772227223373286829659525131284188411281162763002187547424183817110780584201616936604182392538610258751714317091184338544049148764306102412270050365744823674763362831897270067217817613021228956857070653337079004608749305389429555276028573541099950323575443027617792537270519481906132332537905561159545652787794405089478741198454930506679667145960399800451865396719743824390482648199164717645844712407804352470957209832034342118147920260420878900214717534779213761677134652111111150869547986218031050238795864071205182551019206087859772628760740333411705098640041261928713968656548548371936624668504367934600924619750931394837726993596955207647539068103085504019714803008431479898957209672602262101043786974184169081329150589501390286688581646662675219365440833437739934418349062593229109012924289713693042267913807382692226061711189274546792253035574038294839966814760153217049252102075328735039993058448503302594802150152316686885123813128630881563202392197191970280408770286772597157755485333190551686062080752847067743159902484049814342570767929208299516451363964567519208224539816941653138966645608807239517526900188495343808521588632675488275783075647276374482590679523671020190319610843816822012748691563502640308141247305825777523502372257061628615230899182736345299210627776918156866103550008781919994143311571603247879951186218242208840261198908205480305959880249630891390059880164967860497768625921144456318996605185820411583019382632233751785569594529123450984423570025301268339180438360096997512962801857872249324835989895467489544766980121085803560084813532980842395190855236927187277649305168788393357594513136034731197863587151167123958653241520792951424271947609353357337513667253358137561218909308358277658255036543121097035506546122198880999637811419234808186531349319107832103760230604723931593826224957457072011014292346518803330957702282610597990704856941496867034535687037387849197820803354576721172604914349668033267597353803606835338510802975192991348027713967613337166594709778131259312525717292171919410877912098282699433819034459211814712964054940306739768596546930112864100392310205918465994434619640386225332058754080710621036225609785868710160555446401777554202737948682048403914151046557238866412165266090849822282053782605123458902182168441714451499901082132042757985978869596887790548671508134649094436308068418550767603826456639885707734211455926707310458027429593631652311281065497990235651212381960407871981481289781000772615727699565923084949595346921739369973471378301366106211857455060164387669862828119938182242713308426177334025284615700775697627491463653691033796333078113895902661009908857539750862942050357483184323729216652065863719356175711596731657014097045605732869636088285715295693240689868582835317477267428980198003366570044094588283271159544925505598881677014409615161279035445962772266308855569069989379839081589816971461173547413001741518710270614759717060965303290598540089689741096971368493728756631350307811096081137385483828800902532476127953995724154751691922365535284646351389683026776208924326670527443999312554443740030099230576477750510605662830423169071386865313778293551796058006632871954498926160170286171008217279005375428882105958779000524585405307680168165438563342382440255485151955478099959686486002264646834821031652285590214332675171824349520221248482052818106700139141618076027930537173511657382784964127522613860591767068821366261137283404795304744053750665626222737004223536703750083800586813802666294508108786858623130595153091361617728058859350955821180192004098922660957717902491550803075371192330288507378819147414907356046926969545997478209661377429307588481882893955030206770697106683013031583563649014537540227688412777971763661770164814709399088962995891297500637002601526631326388739286531683562515687564944955650497560454894319399382429778446188407245152340812556180521738854104433738532802657907969917425105745942831907957159094283514418272650612639769841143021816065103526070675816976939927918945423728776322796143727557813027572342865068006575153244562727120924807391490995271050160480841337208439363184691823801002970397069051736437182278977849619013646432097495015919337743043687353619411064522396671845430390738348374345700793104376254076899542948015007133416276294879239873965384353554468919926130459301860557981790593455519213396216239754778967208395488966475923207496126971869757520636630697143406661493241011619599342191614540220986844533802374731087749303002205914175547102252501935663740827348229344236882657427750066151572678895878875462516603836912372134609737626970620024884964639696319453624895095559784269224942854959211378164919440065260289732814851574611241353245123387611266773148301388498392475984337039194396661446611919342922665153484134048061039989992846582807004133141746875887201824604819019385387495139650799962312696261774441039862825129139875491642597421537377102533998914647729995745272658819932551722881534256538746263486951784245156731942917467568890533496748339796527442332714215678045696155096372158955720901736564095469200556941338870776563533827551829494736473397266505858145049533798945101646844577376817558413364749981425139305416681387806373776196724291696010150262296533691215095300801093458006673182397515717040363738167285620912137540208074077552895848373112284043915426755176732219147629775278423393576408381240861702380142519113621254796098721479966946439873763835575420832581655352924363993845788125927318036377399365537367613698701714428268579356382494172797639387135729678671008576225325535878989666363907988808796985430809725183363874124011086602217116759762300559479428942415853000071909540494030530522374827309944870152069526325654218677261044447496785141998232736504038795063515573387705805705360661029261140991706294720042971625602308961728634728924694050633537439601295513651041550008085310434779949931440797203915424951206212760299109425515048527031943954519181556361993416994224790813965516344815283715905698921129082659477191315307518290698994079225411468825246520874125084470190724887872215253737983748765423688561228131705735683469247644307566618650598397858659419710242126312519327285659161710753383359900142219231663389159381489487309361188800822143141291594925035315969509615983015338505323892282458616021704515449648194804540970808976226881385180007102115607163841829210805936963366356601106355195536110589991222456295401455747914134001160180734969795187903452219862146586479421004104645997007304783884441078128304423005965819622697439935933854221725688471340276671840162859684620213601032592242926587809183373415279337679972122667793069815524516222248925412568830572608442523511019825615221937569788718625616387074520774704079597029790590254131066955333926099847033476258239249379324623414909575852184842342649820530471394493465311263746314207321991507361192920439067009501950964163029993999596658319391431835884021079886217362942273838878569317473875202255536233919797070380045607637099002766194780813038081747267410254509765917668048990158401551610021706333783574942277617951194572742473287537718046605979776022369679090378015156170431349238397949069789636225878518436266632738988524373985110227185904261424198738804699565607431882406128363977779186290198812084217166204303649020025756583543166031341467159107307759294400303863996230352414879316057237928315636516245886191042824348636856250927583737472056221393801351018642364517322276285685497712071699258030222451139147142590544138519999384044188026665853222350525281479295146886424411827343523222370150886967271362609214341791925716469342997096771306895838217607073802105444923729327960690286241812412364215334545579601812072269611264729647893939928713185769035901988882013120659272650260607200771184031109434148719681223362978290892991805574482370623710989953195273633347449961653403569916411522115737479322903783024868443786498201675426198653081945279282023489665087333704771319781159365960570031211958832219418791107998738729049552290629152882168525984007343700188078426201376567637275009325146348390994587323210634561986401114563242531529219416122189957315338779473162567450980822924467783159593172122009731834264883761780540517944808903313380107153704577148438851687551348133610122387012295129838328076172984536062513355388129058133169477425125131659568699846237561388670357895047226099568027775991075149751367682444841123472468648922575500364665587551368051828667763284774219288436120961423490066820301779644416410762963789213346685447765877176815009306321117523695805353009689211577873837095776400491473527923477726181800619093534621346382635357219057342916003923108810541753815870634531232377049044858262904920950928572506749209462776651678021333346485232937472377228963980329695752772716750829841092698833548840591560474293070905542876124195326677924217422978463762644168201020631149537239180517018442428346698719968381472669127959510771420566443382965345028257043000049792202259415809601013761221822612656211498400687721283908003202903093770240022362987819611592356489999409033343328709486381940950406031644730403251475435893950358080772689152497701259004904939977312012948007326264807933911024326253585013110726268996593668472653383129922708647397786203969567593893438462447630795347542330811033830618190019924287755395039106168331645305322433059318255674226039149712573718969056294683184232189462855306480622673769912495102958780802609324050225291035336446140376642322479181508532521857185311174534183305342965680088417831279642170275040825621977227504322477840631732691720631126885915416713528597474835462746076872460258967774268619879175690891356230034598864750543508839476402301385438742382582544013870682380205407465190172964340029084072999775253267257542027125462507974685067028940433527606455711087183378391519386117754765015564442779973150087014338293548966013295899059022749535903670228811662790347410130251422797005102687685974266201981761343091553261424840794563984825018426820824041621431465030904203063665594697145999103189889564795390539530802204523732771153150984850434653659806345226185752150497482938235802366472740195027449683486591172728758757530465798271154805400952341606593805426971306817399918132483444912572542276103002260716646200439077635321484125269182642456722982739358794747941697330441099553933115649463675787972380000130186444425611097442568072125136713498649664879886380802771526525849466015366772902143406237045928176066400343340975384818941694360770564918256810707062924210146134954675230274066833948804098311461329594656617379973464728464649374889830085250666074159205829284770870650782782109564952188444083650830756539680171414399507914734890073825608340468942507703605084021290037091045489059767332577195016172200047854828622765064630834774822835663947019496795214108888250958480549335714155607175993602146408364026512218737566695055524920501586543525304993234986294458272289291768057019230408768201757127038422921568470261930272512480195732840401419560544329353210904923041402208065311094838822230822074237782479543576204346797359490287604439035812960807236738476665343862234504949555155151380494782682139374173763966795264472246569230221062267508258719274941151690907265198387680696715660886500821021625335729525111108943862821035433710035831481495081885021863140622140350893851397919590407817112728513061763350711023668071236384143747578496837899454983173564433728907713344251342258663249834705248569919185043930983782017425338696360068676585413323132941912388336176849311236500195289674098210710916800287597291561980603515567369448503402117931389083188168614711486989776169581348390264187769080830566701791475540015614185886287746110332645781797932145244767264994917847024255609145076425108673937021859093075907966395490877524210998615852474999315732515640282858035896944764607125514119591995288453964282169935382920296640402927653813704046213765982798298456986573058118045004374209119480436747364795755300783237784169175408652517136044990384226015580047785210921862650765689940636396661170955445459213400729051182774574067752375996951245200459405188437172578042724150784704371920186877642793349962094898653441834505471291940909035155557823687541483406984675215581574559314259950962753435327352156955508085142713333599921745675786572280023748842589443473534393398456695909970062582268659521897639048437118077129092438264135194489617340090761164032948582766527223087129802451166316188430226945552095291438352018364678358815453669563076231615707909049766634158359580206152817922866204661721614228001270082294225537931027136686988871367040140416256949077408552043049665432482285084345176607851790038682556351475556970674380408539382480280992941209379192821233185692007095921981116568798802814362210163534286581052237413497355429603286363271030800502882866643485307425734527902426535418291812121005651633711202153583997291080826546629117986024477807579884263723340910760214222952265214492397583936378903956958397614977130823174624499218521182372104817177564589265062577693033465842385127046499582794746200362106112683667620836308219801076563002301134061920127379114441400088792413164727578220919133611403293007078027930840592069181082733848276229783716256751014235418097847027216862175756101844530328279501492023328975203401480894849559114668668964858313943505434183137097996073994446851300966021339208556253370738894773189531381499886095369760032647244567589422112312027881359724555573190788518282904055704231521000970320972646922787108823900600586528369330831819348235281370080119453452078285432704756273745185075286326851315085454729100525596436786879011809418208525573535363472798672668927736085065143359250839201226630965245272692102012461557133030726371675263023217840946346025496092570666733481563981867091949833427918744343282486701763109012778512054456280259776508523070166979939244957574544938891605589825587606598066333939648839220656804522387745779448226373412202593876862831930027656457663199284037417294768955241479607352978327579694418233521451731341469393550259196490908777982322954118657569565449235132968689026228560866461404441569305502211567622249796752651015341661384050571425680141459147356116676915496326387967301050018888553024816058245593457455861788361350308657976203488530525684463583502856503323474119304409687271884662708262274048190522448290221914271314760053686084086887869204087807240138730640891560966507690061483880760622370545664071300281066244352613693668744315700387114576722613314686484025302558444563225981132073938612135542840891429043134544795832275871492299215141638687109072329925097359547511772164889357214409773686503950548701906825923791186523033532616007896069109140168612696542280337306756593372831715442738096982816905361275779037328275721428335455281835879856998275114363715424886914494182570007922430454061966840194471043906242986439218712028057202003672768791775368308723006756193916130275018720541489692122329329163314850914212211180537086036313737362501662236959648287405655536655012202294548925057216172484066266168528913266726274846146951221119401041002504868162411993202509136715529551483262794873906187284330815846735597411193271244560622369237146391124602269700423888261262005766409862300184190144521086129610395051100410531545189178821098267172955060209020225367988438973838722556643535513771319291678828160409177632967253454890684418663094405876890585642480472413797512638960722168832899775593122277388859943614397449025795205188622310033447252353576497031361590811255808283549220692908970629658426824457983252154621127060419993863792410000368501850306140383242943683267003774766175041930562935584959416545547157976920596703696616691050404002864603489405162226547244797526703602187855181341886835309240792092670962690748192479668036024122039675655410578081267305281601036027028424111401405123635753872881871939901418043311016877748842085063815903682796315956149756860891823884025378793873269743650684138788789474063276019704113593210683270276821908989948192514960956468290243981641458443828370669839632523093299739767376714550492640259587283018766123255861032359490703137584406442748760147843104014764871325949354898811852803927440326015252582370018926521559273496112032230532012728841186110051194554438554769182680556255422520938402847995765773623528639197243221548121605742014606287433083434687949724680616986810628682889669205143408962240049560661908147708204376418914667183485360659134812651210336929850375176934448350904924230940026940949715000406430463085877244943293068637097159647618055215341336859583592291707812421680366569270555909003694550593485978564956710872518335297151568133023559471492963353903919667013226312997881648950105822821222726327316981541498268628559197213248740865855720938750662301417219195165381583705057889924336975884606404159507752233920895455590124454403738120598282552702677036210090831677859310275216614453846957249025531541764979772197846277242044294154496859554196709060821908609835126819389434389909975289393978805728100453778030921163514607934292721867244432286647838127939622501686247643574468512903293993125565496784638914825276319513897324366454389406277204064972399622003947322247826030669711408672652151471746587999179525157434345015658032326768132734218464065448443431254712635514951997537443448253160225673238136537716023304505963353876644395775285773330527508041935165219944849976605950950020259595196436909494849522834745246918138470003795749132405132852508165700897235953541181059561056852468274589135067737692063181077150424857564014126461200268124676634154953368991480436586707838111905493899956210548672673142838252965802664662053399974085710684661670964150288293746287276683658941244808086209839706994982776463578977464499288099988523820927064268969190334224851384125351642353333624060740095736615850283662094909858597793545169369418812971660755136978575966522645550424566336558499727802781284217731732669868051735335015231715424633028604506161528366490412763489695753317554009934171934994740496072663363666177443345868619205078689968580602831959463185787298975757007861324271474726989192453025713575331331433401909984844932237637606304769325552330543515837206768673909978495383585429097847997431699096061378703206834997063992409318319998954446982255266447329578160911100261951348071211398156355888820549770678036874080179631716482706797337227844680672602559562408080710455390470696269893083622105249054911224484510929852866945708653636524780129047625475650079478211648572464325985004666513771532444776120356086269466307243173238059012383255935618008250033083111206121380136573514322237388608741371499578796818506386492712084750587985721677073111278323420286713031196299493098531529656883699136298970809905911578786987345689527337934986800323601591446284645456116022484027667900572085160814663425581587618861505836760385534812698312375302974593226285321603975788140594264015481741608960600151366339957111616197607785722867064145490826817981633777845606394754950755659448262860522654486909682366439363324774390284273868198853389315722977650362373336277659240215542259405151055197155094434658911198780551514866716941726359146868982177771067758355255722515718044041751671188751023142998003777978662562979396335990218045333503775685262910986856930219216306509591141503745925793717218935700527756897263992688908995910382307957703945386372875947715313044802280931158531603085927651370196945850572863044896226371682835204367267920594758775993443349170065625213900579952207986837689362786999985261987961403810856356017474076882136990141852822942854070349744071798478445572777105249834862683594406227156039842969665016142565800442742580844271323665627720865027197582533635565740438312612557206475554458542183396047646417452152242047031467143522167137114772038196243160132028930802146383238783035156486628841443331365016237812638026506567744420045755829180223739920009236314209456001000321155720426645884901545281070150357223599819476131550636028042531130821696910170347893325711961330250277058912261098463019430133977976725022982515853665307125336611708930106142573858213972907085152251100114850947148172590681532460268658885039756663200193927681748475669870952100756569768037588972542275367569388312790772479708903178565482194782366307186952299820072551861838712209748249615537987815065122727973207207290686392686305219914230981411477343673667992105769465251776276012462437657225534227808631400913581505134102591735617649359031080389716206039345580324793141835162801779954439142380465441282810196753954005453183036353694037278645895464729201669507823191198057032069540326214674974643971880520966203511676085789035183336467518789255446528745397741295421008542825678847682168450312141399911064179764465335953346715671563039180198570786685071637644165712067271158130564816798690195114735323644842573457725605036259500006000268851898094361441361752976339700574210793027021771242278393400782645502546506599426378833879202144132626126558894726362497542096516396340094089182774367689508365079324733033293608579575104019138730772261709554056670718148424324414876353642206612098202675624904207308526548064524577618140414112966133842447912477929916064484589890310429441034731585279959165254956066723934121893980120489663330228441575540107515614227379126471296963745446109550413409918129263430998384743091742215466512629838153495244199221120232048599722503057956224539003150589830925247388187749569135571034827188985225639939954592746019605234928034700009193325898387408220395232289582438450624146576855520282717535287926663679005240890284141467256838352038930297702788960606456866178244591812239518760263595736763232369979166266684250361828325255809381547973281970207162036687698529420471310718912651084612119871345919237390234101119138048584844632928155997805603767784381367563208777403886282674872721109479153607265707161050988864763630341245393018680400632679615629101948995138604045036431883633191699203916871614388017100055256502450935916772363503220698965015971678644806795307806685700702767135840657781733748395165685393754277341251453876406129303423587420555135240299160374822173879047417741008226270082914117119667073040069179807090556091805892232914075366590531591818360181075895584329496912032631234538240406042289479649327968156593536349169860741181945772113764297644792811365136372730857452033344141649867757587014270769005878780282251170611335530564372348040871439243282606198330052175543486182161965159891907571212811450451627845374144964860686633905615069746290483543294123204042859399258002288020012220340451318564082226403314797495399516454852528571011697956637496973318772070027260242901034071404365315200961593210137213698997383433010153024331224974232378564574394731955746501013622240359917999531508093596232442139736330496927011253818330666133511708145420364480748022909931082953968307992173050584619887909814796597670084427889808903890621920521564032583722039360059004729511246905229461792461342592048936974729878900660017472326711822415837054819257442564849407374588400195586591758720825215821268080323442308498393409511533179130945267034600210302740441098789395616168282245154151686561539722311581685497392672095639326145699537351181221378108902093244863361642893653900370859211733378521691826474791675338835654705347002579179779852779657416243052762729522904328192871590510136168506615616492599132609481914269468402954044350231133000750112430775117107724584505211055571709380298125895269725635526973619207747519123043874377472169997051340279199320580114709929889678290766923278571144140627227371266747610399777758068037577499577645750827340216293640711531170683462689923322179787359120830922258346782068083513937599426843108203182779170648926037908908005067837043794934813828595369932704604834431039787879273350228590969692773982937665316647639969674151372504010150559985188509856827919864887349672004147856642141586490632067422948424245894348113360095320348872223893563900201659271669217006694117889531747153118666454476087937293197116740338949359399439930710206570452805731210052051193978625890421421393680443046226934025234569119785720664933740497152272797477657298698506081002735523696700007952525737227646245709608791418850225403957730251231036371044031593552452436869865573247894600767906864170244710948642408239988456137671233271028041952756451054500131538225467180836990062672537928297920713237661765107115889738828059761673753806945434385579812367934082713982002397801187813639950064899289320628415079770796358080368822518417233616456641084681378067656130858750332472451927408937536938210928903727713843450895027317741243247246133889477795524364164975164827860919147764326751509617794748042338728882982787289681340720029495535392676043568289069651924892255756646793806503592126873587863226375135445697038323641428167897932103766723371254626239162908212528277166377523097161567438948949882253290567277018843327544847328511819191081653425907654762181237510617550163486689649063205350710712360775465843924406129761120438595093759606367097851715457295833325266386107816132089473898970394435996752792987153014629486048926797344238052718751276870406663461044962425025793547893399452849521971417333815006884746461806039049592389537741575125961960053312877771263406815863360362536625070984499130923838407258251561915102451115357771490798001602670847943983360662449490042466227067029104350444798776282076596982989096983534304884614985403281167118971122247261294967692522283596109468746405027534508708195511182295632518634515097943621052655290166410833181377178248937878391810968325565373375378279658235748518817287251220544682924825950356415475886958120514551294026581183296802766187445554334785107173991306250474012727136851554113027445188004362402456244175321809273077773263664147383327179752076871988482717393989690927598863082770728297662890862612332882995250302746864966475759316871658079806376502401312406972271290383823024744018221629315113898007832660682926175707480846217994836240904687519513026577187382853215338050127777486483783244506005768438166656547996427086433886291632604858469678488234025440834024488999711650578945015834820122799527055760582578693369161616990418727577076015543302438555654192375501514537361046745156374441056325587525510948962020354817342521421217718899202388592141575223487546358835081599547132552972877125802245928413111958411048028521490190912617520156628073275219593037175464665265759612491351412424403351322964150022388165886009010498172210800290369723681767574905182199271284978528695562525395054024394299007238570820814425200835973407876113164801426187128623139534107802968507625132482634683412276625905456302573382748882103077558130665332978417459668023138117699740180720359379484142543221109021408719683586184817892491274373435181235882754980918347464294186920532993949032752831495410658681029015752165446579153297245771052325867405607595879066541446855215401864235005867990377045630316450910487797659272185192510440231815559824305255512021160222406210893883894863062525427549176589343074002659962918471019197895247489527160516477345914213701909986100893620169416945475041310986980216171251875810494789854855664512094225266379443446533176259596221810614991890670063441413862083768213384341181972334965906083580622878499302725440873366025715524867600322290958853007117450862097635086287425337114124736425984045258358479863994448966406248640194637057614106634124683784379017935345219663018209361994980415825139813157183917582118121125760396210769150936500962990593887387471167095930296224646023860754765999802591286343669215090511302144642083474821574019858083105607422813317788145065600005122704740895293397759862900454102952221942134071179138126859224975929867378500113651683062705062531615521569969809389340168520400346174856813410022855148353977454522122164475323189127766501309274150967829186652231595193187984242848970489852513773673057688455771690774543386453398684263046496348462590287426893691858205113678790859863580051381141908057411958574554345909392943456731302981359473498494163299769079122887536683477230756578306732304962179068380623812696537318439031843583548419334080674594006744682922401808356842875523600461163456392684833915477105925714332406850042848224144481502663940303071446099323936654890668303617609765264679963790210619029610057777685236541916438373205220046355581852462290126560435001306750623097775086601030462175312419030040505870684848644787834248312876257577320574410396538938799541490496297402462170385010102721573577839828986838579673255500341915766931379581825487838117554275682536710918939691258391009949978356459582683329664525727688379454637770169906823728680050399526620545438279134103991174168197352030688240064558627089031957152328305171143694196132609050167655571537704491870610154104491046379917813879418187234032761710885436799142972411803427472176702540355901038118446641142137013188134678689267416344944337375176086535606835827756576493089135194466536589780992296705954260720118951941926878707617562799602436556093208029329384559984491939213214453034955958137716345164112192825819102876972106129537213068278829248434456915876030504738050599628057752569486106106510484311008056716948092417482382788220447539148051597235876690314092719116497198935588962654941097582168568465890792632092471176984702554052904722575158999965160854388613147326992090569022496720442662445360435084976888141598899316016378611370985370209633759726489268908636577434734554138090606605848504907672202877603855553564038855364230357187187559677426093114899682131642052682473141089025387035717483288586792671353163315175059964032980710994685114844359038430552331642250572282672594441362036215259967340481883272038269609074106384120956316312440834632713393656226522155363704696253253611100800321725241428816168561045607062164624308170632598137473560916977866936066213199289978199415225131805231406701425162978646433183762143806090307839104987618430048198823430952377289820493972210461199175203566929052867958730859914054242572448960269292405605026117608419016192148877003205360516656743336029764546190220985857660191085477826845653473483987039595322413316281228196104414534887769568932890060582943052354664506005615271145770194220447565277841544672085302274471317151008246160675457965369605207065783697242291726286039248735214958229042380273906288597290858370090874805085825680184897259043163401367762100541139186680934361087775481696487564857093152390920412252287970391276518426197993917391220600655273634679563751395874711747394471502789327785012851635215881577819657109383072703103119162991351703729306577687325804544495921330075790961455632531425859801518738033988640680014570658452264753753301788958971589868722045871863881082810352038700237806209869881604408424880487739419923485586649936229007251285452911386534843679114950618829735940636029384274669676905128262624800112009637751678253205192186690482786181990336836045792501511209997236776704370298768468663477668705660453040043496393678805826836548062179079046500884544695763238360898528699661491040448439034942801360841431678708702199096642534442295373068649106354043276274630320136715759017654948129326094743506739557059035438066100693873716775588213282528590555376222519456792536661778724899431032033049360266658991186865457890026020837455096342706283665575963257063872074776543767618359824693864759580618986493074096386057732251987776290864753041654404419282299923717402123605678176677605166406345438480820609780636152358417085830172675982906326955220041671227681006193429699919133166593566865805905056519571267553014243471966126521588539222113589274911001239554142564592995074525950571187268177798666972285449345463502566086132655400043817152160296386057820295088853075143758734260538698501183732214666466502561157345173798814131382382797091471910098702598351033454507141457825929495408515212120898766101310927558621689338117129979261420094601935212834552854979399573968628036967164846528366249289882987512736804266010009335466139779304208351483611646759522396929301244697410346412176474740702346824147762605392418973524123601759801996077264408719990206564529659039209485470382868389182465044743930774333023448768470473918449494176919464110692925926728881682486317722141794130612447882729777203856815296049790748317523507482591448371969105480912453659569468223319220488000113040251675323617268202383840792102508923711308024006696731789818960450146336112414526921151455267222382977521951110379072426844335924500664775933907191389214936485858302515680949369760184555888734777316440648322703753031453784782549806067230952394359447946909342013997992551705168617163833725581060081262765163584323216928029420418450411990091442030023000829242042598014802316138567955489816967125445969446644129152640025529436758858973177487868055305588724163751419681200801649631130618101992539200491132447841321159426720593605265967018974641898736034934720439918340658169316467705314558243133191513460159842046992542693493157236242847848336921564773926670005044777354019592151817968377477372349131485502831799694520527438243786537614369305910149996734867762939275163902055084098427983774613479690906439090702365939556229404740617817866131036728489278614908138838593835619930219192330483657742959897780615007545921879375904036233664588941463896855597621601220987177120471021531648836943686087051305345535104409427122196388231932195033484568674399508717618472450594730474974256811689198259577106505805537864967689257779497688516550503447751475151261517595125222445343150489047247776387553717789057686069537658499523996790050668635192694808686039863891549975199263091095864334701468051202164882544659222790191116146682363942324556203414394393971420153852235281084303641116831027406728416531753255114920802116321587697976484248202879934059319351532095976548555755575872530862496939669073620689258136526949712836639853594852479368917676656490249828929152375762018508094712968691282072272245854063815244245389404274844299628469639655220528810702263636827516076767529134456278371660283844105420620386944034860100963263526489577136172881833442464705639923236480657816574236144067857325937088480733883142812056219111184549334407754734125335893345030948614836018415194707477243338788813683443863312275302981983801106110805053266111066576167029681786380582166944482634697107735100622377242254478978184797728050253252983317672096502518922471245719071453927913350424421660238669162039182143380876314750467088780295636507511598702433315995153334288923447572336415789029987345935448694119732622246772930190555487915704273325356560390062383898190263882699856355743052687008334223707067137139670688642296330342209755526564669718900267309428202874165835863615674908342894056038579174534672584479331219096691115965313856118921344379420771584815197618585699991572810758129272739290516131238805187344819088532689713592504438621337297742467633555676481996366419907880666627601556894415606374189032659545049401971420093252535998842093231010683915268403271829365163399933217159086323163776456083063669544207946293131498038057422206257896672181286463470515394730349184574254786152289422726471522057739799365674799064588968928969877376410958101805790285855715272831370668154145067948672713816767852335112923924644473900652378339083904125734670650158907767936049865772866104162304334385718321735858654260971865272003970232355658713867675149241762940280887189478205291089416972337110827958310212062639765567154826022514901860117120238943554033167289449738973709293904758057020606263339597425222438685099925756737000940909497749390520588924047872290243507100047794824301280166052078233328872539391965476514924197834893509884557434651526360852206672920523578664461187136846661219147925947257006476558814690259948682969290350677710501122277682780221565847854350535413285247490518883300756077381044308250881902934465611708930278093553113385496246888890368369103115618900079171579328126444093164491349329664501707746498313079044572325949993260044758497185959290694613333057548379434871688729328516908403023793492243637846482245368344752224708875763153100084380192754796755635661622668946339343946820327152523446669665497507513273517839694912714001698249929454753104792262389573549622694504740847397533248291917952527882939305060698417965607289128288481786373705668375728799073645879145290982675124850769456785394198337135545977664767113380376799776556648472626829812223554130338466404518512816077821768513777702930976460647584048072664151884734408116065585755612782401794988325020789013047897665738103150216795941382225761710958899132576965148692563863156185395326866101256859755812287220240846442046915071794263207159826378008791060514207342818912866258128175245737623900913551538767270180302007359181298927337719324771603004265149362835057346816988135786956375471976221236380831245834358102293582851862397873458585877645912704245959423723793942243996897150005345880656705968885830708933325855860462100955547329942669792999380188258789631379496986223054114688663806824923697554805762738964966062017767940044838635170689634130056516937730479001112832399568480492005500111733222384867994076142342370962614580885515199848058230723297891301941632810850673738822899027637873321368842758504366826091214254251553089919816504878140136377310858750764377890541936324535407149646279426658217683005478533806387086151491174109513318451615421911327212658756994730859485424029220978881339832848991580203618985397383677939596574583432642392528854846952415887524280199335598525626879206942307316737075921783117039893223728604976077615011552946273660628694027739134680137010376866633009305747075554139940207252704014998881411398550725667951335802852826322636227917508712806002618653104816949459938919745757523574721501717145937397963435635234858875616968351072554496299159833937310491895830594125250621371985930946665695172559332957996084718523114857462078246770449704015782929591829469282001268648653248998479742943217041784927907728971625186059520990843510172115695529208311558270496538132959219922695448148757654477850896180586836905301740723108690932054546404930918919209791241118038446568231240841917476203924033852429320710801649310361117807823356231931013152245957397391462242200487070047388273171569835570478869692873642300030670448747452565517238567226775877316273479700647137013343620597736687127361648849945728950999444416648784599518120423965005404909726683604753644623365088998906110967912612763900887554122269885413706416092686489942587863109855836168084250879778946479943404083291028014757297659395496977563077589984280754902675961776577762515955873575944865998827094666604122904173117432399020558507149150566334410180610922587474669664189073347295474168591697389951924132932151726599265498569391107077807314315712254421184065162606056184980392295762485533496934025680557424543544655110227841822071642335086280956560324626342817030260789225283130629042700810569713551425616873184296806454010300131538141677126754732570661003533543948547994141050234058231471473097991073203947527115832416047544880200888600839920091914836863297008658426153029357744962974560962738515736054789328089606772803660328700666569307439371655154267374344410514518193040026588847591256401818139085368298633542005727689663283326522467555816373911058393054388385768491642014230330932904793414616980790923903198556175533841562482577264614160768228176710460306932358136813055502043345464848123577989408419011227694974836864766139145117646813376766064838004718515300792958467783951082703367115862822610019134977606942856126191246008292577434857855548591445049716428829544385762799994256314416476948233318775192314663372274865424738604632024693331681782112594793647624717994596976971116943398116384153766076880259035851684294943483952759934686523560172337085134608466189713458177875691201640996518431492954982744270996600453928293690979029240249553210210833925432957160663243309355986864747799995184787221500232185608962959774466065533174695104263502566931402972370046055933461015026353276895049776192651777551712460900288223808265034845524009699224582889343072945691390267873372078801601935864889064724361634974723881602290277715539846291253518811056267606524031766583346445715167897447627948142617416743512393700291916638299204787673571769689781276145872968893715063135252886575864353029237652149769635342883846669495643564022458353863610947325285144351188222611238766388183725752924825265759411820784647292236267171136796154504495368125878913729434459584983328451561564799172670983821955764336066552120606668576719680285412939042403552145563048455956859213976604192037767448497387397124628997826155054232398630847914992300248561291126871645331108189596477491280515347919496291293783807429659471826097300874738202553317014749110242940271768248519145801543357435132248054517549947870627418883848946806705782796921718314295401726447782235242854635894243112552645069125042380859435894370554232888104182344115184446283275753118029408759017732278109394452408489429302515890945549405003409586784625365464317106888866602488750010569316699637572112484001643767175274272627968956408144380142710126573833713340264798737126418444607196904669184262061886094146227333173854371514666915680885944467195545313408598564881961344407336032482224783844722883473909375049603561001607175200023635733092212062515701601398275680263369346043195538365914231645348180571130902984713036550680262761598578616849676409288179412905476695065076320720382334991372013365400892979541391211870697484519264619504640553164234920383172507114540779860148346476476123529093978258937832147878216734884597359025588939108488890793162815363684793194007485763339238376798428482841355066466048728206396906138015461478604427580455216893076722826267677115952152368300301099993210187554610229838164237648750997146982685590731453159198720639909135040235298700131976068526896603076798885379689518355662503248098709243999370893869502243020311740517679876916731583603610235221573300219072618868200298424839452769097465707366025951180730037491152454986375846710011348691665390994880560516298404646459533294813488461460537095217487657274389843447581205438414267728486045187616708216717267192017925702354187854381702994604233501609421433645633578617887936929580426836548216393607447430073024641913197296938232449861774281867043965858688589416179295212527547374344850703737398850441859786382815987998668230660938156579508006120136746822490445852845478212742650170305128818185176941299513148681755945619523405084869546397423904696512076418702192995420525106453324478355071304143153206123481513422916373358582076067498995448857333974002287874701091431542027938804212613010386857937749048760754394456197467260465423676024715647743184601453657094646369217302869754696073549592926378411896621548478684481300006053569464780456756554297274868796998204192285937954613197864028345904677785808674915083849766190692726233692954469560102250785784037940042802120767356463789066070124017065458899534448633989177745565180369491942568538523362348550807654437025698430666821061665007873569434802613966209573855940770339521596173769257576659972443871386740657666943709141579926772618694954359487989544753174264853797591430773409349499304114228702600567973091897347841750674626880730546538993494014685945830430024234582307277068166902645895408704535298704326006345935842757018517362375935670609866499626443422155012172042645835590513808212819866836391322261981783065078367971273513813028566347876215897007358170135412696080532847604431247942297081470168458079012922631847916730978867325244646046898844319577079559362672767797289869451319329629850464364564181929243495881562558308602477730898227358600848704007806172004546755500532749666681420502662081580428207409218136400371775484360910508487750339399104832249169437992488661349743785713336603807569877346624381449434937060085376154790640853747081036494192430942998944954856280347767227760934274889405099980904807556925835007254042827997636000225861111101892046461576576282268457320570043009336715191303984972632981037173420944409545259726661234537461338587048675994248810942402562933368203218985410310014513869050304419783247693039926021650624101990202777615025436866736923405012064677262944133443566307243804140289966416888140511804693523023583136295815845614039910906678421455077408476498956295234550173144237645443790133337940980956139374482812350209789469196540038809485138115082120811249116237295905288594912727662994329019834030802037697359575643283475668748639914049805568450681793405031684708642843364292964558736524558782646039637723101496232174854628261902889677551817910629469081740848198462945862678841198222809765741480920012341176125946892213922740210410697407242461059970331802506016521390062825467570166007018597562528042281090191087302295271072241682567024802288003978423505942426371126705418223211228205148977209001587012389278538404313733518164450987800032683102090591398992882061756199657248839673646230599834460015266660650970790349507582619419483989696424477372500465374213545952938682426059482944419045330276559678980009818439934314199450505828842098696813183745241651182160665227998466307519186244855500569824298016990777397734081101334490582137119016387135199636232046219489468352988958719738164026694970578466708262091618907459514020841179429472302039313021956088917980449775285957923605511649416605673859008966625254888479734247640758154366786500016764639813714900883340107609696491983013570367798906696230332683367245242284427288037997526576341820763669097498639550501512159003227776119400229540835538586171085864874594305491166358172775435246422097009988308790462593211584433269264879653388353809892062169876203403643423646621685453791654184450126339953725306492323078198549664389031210378836729834275382402740133560569910399426922489781788726806831573209953254191772679120306432457190214407744265463746148402759402104152454814292385048161721654527722902930588128314673679119008065792743506260837580707080809616768252004259945724231094557741735802711823835727543449658517550519301283329951942424759484696615118582253575702655722782038645690740000871349963645822868559830956971584207508756558190196203655193375764050278763242270585037605561314997317642078789849209500337577115919264391394810831471175330565288816570110748454851821393077005772208540936461552918990571162899124599946708322678641143674043523432081414649118820109273464889766191246989798050777961347225427913898670036401800244730128679815969051355182087563614195310438500721839045934510074129851483804644304937050342564884786015640817385445844501749904708298336301731418551823709138312250046616540157236503007071102942970627834062182135837958839756268153033791963473624763168398354406666498565319828642881178730650752347584851392256846526318118977476370069734470721478121796102623771389593732557645725032354765522077592279927178030168537708607786158081785411027726409164312474191115306403245870255269164364374742726628622635492306628672778697829614346461295693394608846255298214423004511563541550545119959533165465061776517820954383339984134778400242285443296198029174323553865785779461367310763062442022030419599687800291306842722688439848953941747360787806815623455755492039732078726606566928819520166424245413652055212137285415874773989149221408392849254050085442852583607547669621273159432313508470309677355799511150217530454104507264508854817140483267373088195219860107185105144482680135950226072993616740986890972071790602177667292608878556093968320366378524177052478600412722787183680332550550691621235813616998728289893188401198801787939757958191072059058455017998438243087091455139884111073341123082076579892317311416240245574842707596588747749733700884388683965976097075180525776074723845664125704932189332046796490106788260025625017570954593876161073913983094644474643105296362732210360191306414115994188833987156605237238821122441915501765749558516337755907973486600559091303859124952640875910215715053348202938447253316441036753534380827686602656867597103035235361408301951515114432414258257600465169251674384641796257672484605200636167029093892135395778427449549916074816037463199956767278775907136205353545341530201065759699176265187805592682940221894919647720712982539177656138392682049837039561049755057536070138034443551472146482491555953913906928782848637953289491288359860547040889186810273890151854859003202453758072363933820004230092951437362280448248470066893816961600435206465560560102437442620072913069152115336284334149477605446481074050922501461656748784830683261056009270860936902079652328888804733258324114272797436002372178266427034630338679632858591894610092514698693049258012183311778130801390551372243624210235283612225476536868239741321301384232754841217187553261137737031993590857985411889703751254834350672787791188482068293614704608475826092849344042764181129608753557292156412439096633630182474304248695405221604203541521677048756190721869448787375082610782560645605727406498312636563246695650969661913438647167516903087385127470729934969500092790230813544730948113695720234856960836813943008769071451481878778555246627948659051843132677884876994184734905111608658684219317795732773958427257804718639697959052981051455210712857358044383746354369657464393313608305929350309172400574887364246070122410340183958526608820987367175472421687726391082026955895729364471696368516085440846167129099444232824108062680087268629954911140622769248797716153483791423586549878875706711477409375548716778612606206687304374422465546890997328557282587482055797187114698664871841889962829828181710801337358127660305026485331084096300861396427390185884388848243797626062632202990045248129253813369653680527135403548537343368917596791409551665106111744918719611936369542517872740787542597877475139127753199087845205587512337876857536770300024263513732166689177725228753784130901046165892189211364313171480210591721447238654784086397366443506158591746884257781834629883741807845531934082009995814091942404129970054489058761825113524763107830533940762816839151470878379610926848348604129860286348323307936475600771044136126245237863807825475152778672199412284771508198844042486201380076897715898217107186289706155852641498688770860145474684893109365229367107179835211058325818672697894532229964310717737257265189710731543714087212167046100665692250133474045240959818230867189922788428748057378214971312446191953697147860890900632840557496018510822104687377910713057427586040013599893777308770178796748001446442077556606021786192947659867650494786961429082461143918073396907320330093901355775853855151837461135848859495866762849871205360100929241382922097897653062597124145818806208165816488701689869508957521173626710897517541978121531564578263567147245095903215776974689533868162777231421856487604877763136178312885516319690828341803109583064981041464812867816103875729779239760668907811130716032121696322751384400360090547623387989315302931531343904290478686539119816424292989989668394974540135909371102302305189284988094855978184626766808290173944592526041172177393030672570092171104941940499560894046264518867382215703350550629581886137186394204477609504839850988266948947642769187697904211593034946864867558407036252221880923506278757705905479134033238531607761387628272305094650291944214473745718415437177476238318567057492407010081713783234291371162798028431620124915914946269823066034605101301000206075493508896793236800833153550242696354185916658350805387430924796465768090711885698046385899154952012480135596596460585452606168444330369645450063765487259669377210584458122903288702800031928772219922724135081445183769860184776231336364634401983883719053701196360208161877633619293881461168351577663385415520085775697356513659878263105675027980581011329210031804862787767393124862134908946859264326701673880420041551619568736126206197145117551277917824615095634129238983461198530222169992504184773596722625014074655892944508267553158922773480711006355877452878814964911342780610760888240228827054827417714173738178777380642036945270414741464458466024174792152464915402602997535723505089295279346571400938117424812457415899647369461092701749605571453160848455527591367658546361494048512674978612603133820023157134582905195042814863863362573183014972518740187606632712900844223014475430407578382764185287656161283601001811964193846051776816742019963694326016528519945220510068167257307522486103027951731756937797964123964087170814987375768804429143626513346200924808888008754729208501934532874459088757386215893472208754094309803411241242336173280689189095875863783362365980634213857514235355983447119200859341413412771544104267681432847681028763301097528775094144705687939553911778511866449638495582671173131099289334070859337296750108330725930859192556486575365709700428358261960377636925138825559469291345399436662641750931934524458032697314308809542506425502885399283508579814189179683633302027226411105915686712518189427162195976646717266459360791979370588352865333053016035635010176169431275843667617066366356784828055742164668923419364005158067829423322587278529193486410182908496372325207185851498073685593697430776955514246095366237129758063022657844026995835437969436207214042960553643610337399666406925891527901063644374820487456727510049895361313718356257906127265478390205270382931795772162362784107598537733880299056217721995995449958814875808971014311962278591098472793820161430687275091750848354799844230288885925979821670871034508982167702056974418005463752313338819963002682333284168367888527881847083574867730863920308167973626500712530910175229323015975622447239742172132032952890375756682166729594089975227371856176684775664654737089416319857600666852110240466283829178720338745319501013012793931032849449515612459345558452081977777757483333834814908951332591741421335827995747348667138747478648760007074137831472640321207034394974710323283634626469147777943762028249319875005355211907878286123365974119704539104060615638714899155511145820207871326064903694645716178975250656082091709623626270228534413090931398911849774481622392795593599838341295877331886832819722710851859184957648494020378831198372284225425388889108886518805459819762704493926775195028623129176039305164117185194834571009755763940002292119191660179587763114706616313154588509435164811985559453268385391747025163298068683478347323509940754301576804565724855739270023580448722672524215840834979827697142277293566471821829577319893653713282162386276797108923494268076473119081610991884753350182509988145906058533758435043701938458228105203150226738701288730159874983788244754579688291478554106545155283983065487463944254459693108350489792088364772997336554882839280781895761496222612232616148954066210102323769716638750003180705368623969887307307749400133730768574983160998674173253125175028717914417768551853692877835710640394642324995225878887362514224866482816373791150376444368443747669907148869017498424727965352682327160651357507297438521944324733161133982261859899304818342362729229961634244375827107021912475193253998089909244521530787659960319110603465504476894744904049200410539564394840463665209409536265672517767183086670566971225728068180978064283301955249524511051950202851599347641520818136309506196313347254004737748567833026106975600766415207268362881469622623727687193882098010293920661193247960153806040299653584594205324861142862397493134808074743429622132241476921247862323163892224696458647261602763481500390910616659658705510823197616845282968472004933098673623175339549503953985946739456672647326751192216001984659910930755960231730663559809291009931849960324116902537006886405483978876900439502587449101874000826380105465829161649013140595818992997555670154884550259741456632682486149810184784453041429702964852057312161786568858445558049850787660204032724767875887225361015727789654881121705463289333191071969080787492103001391735843853543281071418525631013038261698911057895740408450962362017179959708299841459899022314328785209224233380092576040514536635348373986434212891122816700584035605947623777897216691679314177469950554134380997010616687965002301260966167393544626573015894816470118702837297297855093695471268990538962503777720423493047290115569231747679598069933435788012403036687549993760762484203373706184328263765601385661428515454452581716062874537271252251228238662435356129870852104134451027724335798226676117449718189899327155450825626460166524876861204314598018839361931793646390462075357818354034267275404101173216756502690340029426948988058172928068284828793300893845366496599277620852032554208086544244912703889282804980368515884238781639885226811843133771431198697478844089680692003850240400350126359884490385507757529683799852890901781058000716446039386969585407371705717402271532580526565892261299986862813401806879308500860928936534427670404634353561867566550732296546345261176955590541404625748731674523855276386542912847879298380301306596602004066126564044880519002820752681990968441844137012986291695636329973722097340694803257945859466766629000263576334438971889780973909400431127442620249036629699766507684740478465433437883233004182083262559619096347995961910202714535992780155942374615698635305704516139434527235326924653716985994987804196978716019734778459847873849596379019725987223163715441858842000814137042147913697629446711576389723306643640665578640955572707269232364973593045015765838586108684889362355384505501743406629133204747718099777917854277039858741672144928312566724303589657223598352388033997827919843003383769745277536361281395798437059911360454030843927440211429275196266918820570793970299382548016385771780456064249436593774639077451813652413782785557346405724333387814904254211772527571368627688496636972365228884880982953812366317565697365629142671796460694747267347977554953659498366282639991146262722635394333617867146493307299861886496859688910415368730898519126806174698359785175908859656653667682486244470844824225243820960846122850007065122528136265003550130202160322107147043575009903656186028827946241794324015804353151399630782343001110164013765872373403645999593461767459817769910211219163600281334610751303083655480413957187033115183360055149430972490774720937227380078527805850957489084356623749290664777799682974157658189066201464291027151750548722404024594275708900589169959391965527858065416744792095957827170876094765740040147824333449410521194046569617525102949755708420747351401159894524482666944465892236668967859274026562670992382993382381233551031087026288535191906725506320671096259594658345975078126017552449955578068339225032084668548342358491882378100854631749415441291878862719054364973028626355967309969944935047181979611430583984977391508892357475087398149799457170713532724474622128800527449267878204323599133503176396486260154276711855227899205266159716723858802619917980589803364246639399180510277366849191589520231532785469188925881739691654141597812165729964715369655451546083505834492459221103608081664513563855374498190458631359281144836186856186088083990531629801519296531427555474079970750719151657143767634650895827158159826195571286571419638440606752438613085107239922429455806974512660277660746886198373847905464397590501110039744812638401871921234063686371635437184286341509003392040317777431819868707061666279791925060438515449072032390952950687087743912086630754216617304981476872026295330385289211856127466019271146982166517189272451600934027017699242907754350367249160671733082044780558745606153463686767384965935234892946455803223074131936290778545633875744140912163683618167605111686044916718026896313774234480070389941694639512259070608772958243559180462136800042586146071267536480629455497818512012381364152901984275470485212711912129868061491625885557527955839845400080288917583456726200909376248054063163220932378386518867205951184340322787148263238677825326300966803157278064080668660153103973253001116013720416062233622490509111954360816523477918351215754853947671401430204112871328972697727424969769616559757763825862335496079072030982218331402069231001837432079430702578111148901421623512318546345210177234044019069600827076057560540688523335856574732771799230320240601520255729400767436641492378611914564317501697923795351460888221699293755365372827319352891660239691568027756411672806922616009562167409075575966539421069346915599805649387344648574765198627008901136503026976497758674016759100578332793372627650158247953274610393099992017840638053337473874249028021401146673120091672331894501782094648881638843014292507214463952497838365073029950044800757826809363079641418753689429289549595373032916564618773086423579654733041595579744724233719446887159234918352113516074962940358712012331334655926976296358444104578839552688448745320915770548614356461551036107310955629242152328757774559170424409776256610068029218888415150248065323646752748865554503216991650331376309987293790603106133982255975712570993103257658057332145156155718111221863357056170180231953254099626901674774576061327171144612569057722198309542611640798089859715104674399262255775073788544429197395399380687766637152389675726809348678560440684999497777693887891287884279279264613651777327554165443773165597088780160889990188570881388980967287595629238569911115506845100333777639496944526356612792377717541539162622406090244882219738801013101714432237600907144947456556325780005081958596662008949551580400780976444669235150570824032782835190891930855229137930370650706395856563728445283506336966286996565435651956969068019569669939194012320111740377868314472788093617982136596723343570043621669152972138945909267437216949718127147769865728826880876833311818077080721510242402682248351600830290081081935233454739743195035425914244126005492321634504231889759032283141546143073998687985966732954987837971699458748884485202533569804309428668795565278399448810237303610103417099092383365483629286958566383289249580543790310644691973699399404291348505985530383488728636892343567687623692715009687495946746659596454888099067583338533816668507909755777551147770650693376758733203501990720233250002046852880407276915065184883220156186337222658214378080296776596717530234439345827116233809096076397496394730050300337192576599326600523488812873362465889965209543141504241576261776840001254738258022216577772613216764086171245834152170459203471012949918158033016968598420931502279475359830336871798765196738882625523043597593892535864761440551931255834823071005485884975583696987521435969881763765227222923413647043201686156856640367727082270434763765226043608590211039952443562869981022826587294221294052798317302345262108795069257266528320709029887103204676307677503188498536011166638846142894981376082232811735554490875674535519599643104772344334108901648982629049151596580813926943768383407126181156023244183939845790440446370940797420648212989195164264930305718214974139351247146372411074535992226752051193830930040065377126726850603926821309824711424406725232533595757638224888038303627558163633019327229230253207929893379838477650246818051831869646022810384755565450068996084229422867686010003539392078437914921313759891413996495749777421024152954023642529568160063467972233857114093652155216254266082985784834981000464813221972874844569645064136020642378964592539028567448260694721916126477905345947849993477023623514409436659006627676508396688215836431831780972076366161566033343360361176052492511620899360144834422102255418710632985673572426210552971577212294168005344833348862567718382678579317116085360571471092706147939089511274982104343144092574011224870718843315054322982347190238558922873045529195887517384459774395091126096021028152710202126839447263105581745662965402210137327478047580814346854985561147449336698868527494136917467691699362452398942901550488961191526019048744909549558982650097961776629544838248450463782855903504198363384725175419066176115690769130599080391252263612011082929933199361637256410068340860181033874707023621752773906674347213913825464144406494689719857999278469754232277978795021546389749717741274034845067814105563711936815697445263801114634461875954797795387320694059263294552942211502597316177871888525493834240554227931587097977306865512587957713375192736140388954540951545046631453807577299132800663447253693816312813329844197690700643292334392498553874490675043557995003172831229594500547524507448732912601807975871841367460428536334734228592373965518449867999221778367227814304634879284495244846888750246008806547442686351386947259672218554763710896781875885654121915992063789070208314977314582042973912058858559840492016678351614680119109771100468568055329752317035507926713911962533514064180273633098007672542800993540189211409509993671880605045636799938104359205931355802361193278881915481934330615638799389822487114189456657301280615259776040281411923536242228953712826630500564830179944642344635542565671867087499664557337711553837304531674625683250497337712373574038878527994250344878155498462909017776139991692522607904401373938675334305606072101143933757386499636961581224792211978388580490690431900984889100899142762847127338945894357888320732434748654404463566953667002951691131599479503941468556504466553518419191243580482176113062313277245654335794882575501153329301823013944861110982218238340648967248521867010413956739317158876777170212315171985196163905619300955344487944475308293380882788607161038693980029239671183722256769823658311686676731802137753240492294095475155228225933266061519520530996262155035626776872234825983387787142810651902527810288856545465224951164999819019895117411453244352155660199757981353355575950471524773954007474442254985720421107593666446844297275604763460052095163662889381701496237149709587332391342385700648530030384922318057740909152287085516679706005797298498675529760240050858415014328162851486078691552009902973851298905859179280917708543074925903026332348007314155453541738558859888661650203233882963476534715133207280899197431434503296559777259104095321694837298300530985147126126576106043066096341788059219717987998365524726680332999161020326001304149635968659187995312216593362183692718499277504012589568627430235491956056149284464328913294781017562350646900696119212285126577914242589505692545501792654122446118404898550004587137216360439467420431363909862225195731486482676436946702602885044778745742566227385308621317697480592320681721247577736660224951631860814448312958898414515727379892572121932900255123904613180842468709285615539746112029463140636451112525752839119806550203032970784530678396904790455845123118872065106112189386184614201367583309253510240004490003348991862824239073372376684299050512905088302697216171180678677391184744677997481103054364850940536918057594925753548832844138797544942831233863916051313359695735168921030255606131625530424574133188661771986884101242360673824802598744683024841689494055036928484685180752097490904037900598396908987971408919414440476064039537470738245015033369172068628812915316785133644118871344856510896630143594267585652359928634486402936012861104445429104687631360889223820076182306344104243517836077865441672276937528130686851141694915010184063527855953387615048564651225019420441236162125630597618369405060149129279754587433581882846311204240831171745112832355230639039757612584736022959497157292096132035756437712338574230994292279769187967954838694191021886761137682546246750016902510889677508960984450541668952196787183872972267471769371738061363876087265116000116888715378115237158163891139174667000349411197589803931040036661983661781069718964261828979248848030708246643932460294063935605813052819524732214576579919345544499027598136288730432013858830962348547359688912249941922232048678387628676479798864819801251920769647796540125894713551010132737270371628154130495881073289729549179625302331155320967266657233225699194418946000217032522089494841407400584936878027172884328726629198252387270946319206873870350321822137795595012746418464396310666979331067461605778433607075949200295272900806690640023858268715292839935373340021411726356579621758191778813619859826303743293016137897650806324106586492216811700939316917283625202480332429377439953574284765855451179267073199713979946973138069082975006055863612583057069187578852598514938309007166054728143483701878484970407753489949808449235545401029370313520614543833947251021908395094551862992197790596176126496961012488157742826387720425452079595556223850971858470612418102517230628196698102017135597546836803548501016654720830870278583573572364641872569388860412702489472423560496289679108067001206281058269638951875380993715865506805827533315772826650360257876722781861844390382340839144370407597026638643491451198568294603682862510190656733792934406318524552566987176488602960617888802456088996775989524138172905775087510478283397647201072349135700586262310182970879335087348398678501987077170445549312833544798006765738393009665862344121166919595321615205680238668990988209259646268614244182280178633857957567145284395944380090843814844170732035687199209536875717475516616545586978657171499461988658325920353418652278966156437503239599889101726890347430693216026842644345133056524892935019240497347490432651190439340049315340711402789521688740322966778335442918677807662474884537863967325358727485923303248270870760295723390246954303329778511982460939297944795568307469891496520423181208510965885366853272351874333237403202666259697308433342111968527065219740865929647371709667793503169165791060320974810629778523936230472116105824159643812577748189701894884407005162626619814680826700051317683678145965593610985423155775268913424718675352972614583042848429593870928098705708641865804039549471407457561366226699901853100587818796318731822672400514395689128300985596482742733696671290170210996895850347813765197658810890500649315831761121858283348499139499404466958936671065755747030663464777992605264822954137819729858348371075249561569227872416423115662845607713918571298082628943891013844633971467207917070293839962716220216260732195390403224206462786131847959199325007133196204637458267833952679360905471625556762977867073782838200461719405139610026903286484901227601834700885023931101804226281504393071647104720024802823783799917920075416298279425592175650414196383129955385275794772031714011928196465575421737940806196298463702566893425471056204849843029265166508322870837865661245853504558987500238616288245902672091133208978592532423603241135871177975573145631463096203750278735810369666428393428809367801660840484275246685698934069740865114952131034515120343888142622626087508399811349974330294242540665976891087661507245426245297479077256616681197556357683976424959757982997306691884842358472064130957280207723023034509511217067616213443762910377833840201214113932008840037075006113386596637182865790224008933295859439025241253391200086970927331346601801808307820125723310631927927682321515478203039001658036235498613939169747115992912421883971738637026666385913078185064479227802593686614236351863797588862980340653021465167551401833794167737316767305510230806761255132340790752461563305732243928278845501717050669844769945694361198195197076974407066394485475984825760182312994353558703270185232217924398925484652878521724501396302410459669299884444358876477915689608485379164415300918772562860581207980409140618413684432307393728026175412978082456380055714696378753148862748871245040808387649790517241306500893956396571331578474865997467136175906012392310643035086046851166597407209195609803554789726219761777279755209883002107043952874400599618486460822966324766551631843318268242828588454204801330599786079056079738488038746619166099264542613277536584441581427075998602666082759251010773654388343195580322208873676722246956029388658972774715666892884319705175223068605987215216652934699326138331668524594257307501407936673047688587827687140887944495912046428436598849875739143739360045683246412567670351512085995312154604894582969530161785875716795307644155631239807101105164302744762188958843938167878381389772524951854167953218013933688380341391044334668273793160679084935649607581752140931167945372345250317755714466110901711156420473717183432440079689354960497788653515050590734425748665804674890835885232643718314531955016614765088819191018839539568503649862991768756448043745738241828080666338896051659901393908901462742485913243877280120302126371382792520590559057796257931749898339062009058146398561332789400216948228924164157464058092025753332366558351846369567280956615084158310277069505589835755001668984717830494370139758189689398192722417628233921910402715590886081436042857570936133516582181053457425995056142757548413572165023051511953271497188951067130710378481557481185292731450708825402297315068730693728486055000400262254688585841719672074110605643804681576883219356575586659974020444951656733561707792348737331035545720328800513100827536445622702223827185960340311052821825888106192693539070168525817666975634095971105458815447323626244719672078374358974788615648680705993479626267890597829652032727257969343593156242513514078225118864663489677691701291914158591915518714567130526482733509517283877306446107708818831871945971782880792376553407641798430321532891902394862342653824592277151751218267338962981268891820378424402819896912620489846102018354756183641811508920036520751095160178090177801019899017109083317131993186902267494547852613641237009263516018552157870224642453284801498472489309286887236640682344850188575279592823017106473586757265735467237224087579356911561192259464680347448497793964873571969407977480663937678392043433602262501605870116388276437321464721494831932798881294077383636960591135020933480151690776752811629680776833934936955107628229705691015492119895566365401485509971655914634807459356344618170967360322539193363464505941903940448795520981605242446004267774369630165178914813206813679177673955261965962973483665543718617166036711304954765597442246427151200054699963374625650306713529717051027733298688487514321218820839420957585251583758220108889620438372914500376404187243723454920341564562715514544659010726164294657003080989999184877585248740327033524492634701576959214598240273236916039853016827641152476063103705240160831123317119129335739219490411005727716990773877366594818972432310746045337170146414920824825226726881865232000499041990512668592587051650632342567664202183487131032480420905454079597025035642302052758510077116245313028968316663919716760919682212957185851542907901828564706651121305480650293681460693360962065062307496629756249953165944916743337394291875051074861162813859476659626657894009265052510441742447193604283552244436984307244049408567919508722911961692155464705149387579506517309058667483302520294076536571849813571834542824266609476060327353311448851214717453769640273161584817078455439532022023661042441397305767173016102754551602760313837800094687957880430684787122225553985899287986597633926367113172885649451531154616217372295928799192864597120502109473431575920071233210329758462948677087717161156400745479979682947017753062800874719407887892350288948099474782962807293454664089272240906285241454454238145651596209837782877398232050291622680346961442528556590178995949598316858011618124865765912139946876708349530668193673637445878232763658294578880859190477699449414002011207138225927014683244465041972006488199919365312933530888602411429895382752698187727724050467130945725958019160075181142310885908477133376997550084247747625329956951491153622732362565327381316322272175296297531736548271123284949832612768258896588436956548663261217312298445058874565254076024975263975023620495642394016506411726251977649490080482988140805230166891106229290645883370489709224761470350847110817798941381001567609432554566938744911450730827289029318437317710213613254979638750257372679339240772290307691027630131593819204776217000768304776685970080846539160532716440557886895047865010803367161712852865817389674199285118469207830685637309800319037379410484464725663212667204857169749208907978359561396568592188448507149451233306887750934882125039457843743976188379550644583160609652643707129464355724334912884751575597199961204395061596490872704701901330559885835312112036246107560001885612062206208726432838004633781360975589277919217621924775943678044444002782054649756420614909932613245332641679197114220007080109065481282084329996103294179162150648038435893452731509949565585225590536258923584085966315042635586675182623519743144679230310040440113963816944347511670518300171678122572861318206321556277486611445021147027379257064705390543449722981414612217579756358930573432367705483377557600772056489619667347207198374099562990908444866260366493727177244131619525054569811827298479132827184858615974348276165114773134607727554196537915348044534930500916751129454237518076722799395074209014394814566982497241298491939253086919308336134849168972339713226285325683231004563766018775432605786586751462618743057648731106234493388457419651512654655685438575423941734482108886784130311275951167890688513358753251402351735924761073936895833978336998367576160634602424031715668191935853299794945327916073769173538333726147899802933126483573193147664921129730241186789772346854445321517989540586924055834311617299148806482730555466531796458518248798767547771288519679380444509576059537639252156705364230783536663065950016716194656225947783112142146169434832289093272416400568727605927100232748130961923777938529120598603677531449162824465933398927744807035368431219332754117032594254848966606995647798134683446547583984553102266846031736563898573026111418882807905794028498260287143716851623636517977223049397561610213083606315903310038429333250956689691807477500037667926161079850908851653008854323028841380424399608537941520523609532659341245199263258803157279277174300814496536332514479230334613580113034996375341724957018373859449492945986365062806669091878052870677289198864267025074689893496895279193966677897929369237281771628059986289364745920165954592425497106108827356082685127621491807036234934602653959030837481483054067275335905397123661023972147725815754686989128657578889416247805105847588477007125880369509751913579069297803075573222453337796549451435731649282516752127075915125490863020222115970025281838531498550114685900990186734846965354560993344931674087813430437924155689621197604104707106606512740548698304462966264318879844644165535711905087169121459009901846507466650771919707901998330226621771232483711876466625055760896209854880024006097918198488794415994368173464860549332890206849462052973656478796506642396766220216526775790062539858705230555404230391083686351287949880496631028569164318197697783433648470648214819407050979044041315152073452895830969024858322853270138249356596984445544795298438724423510429714298911155121322782756074175792176388388234501184685188840664779011529403408731854915354853687053243953123624878094458050020356324981578344985848355032482668483906643028246788084993366761243893746814072858185762052527686087656968528118314007207446020027381629802377523288110658478306978165954089545619309399142369260521443932815297645092498735584091529301868065341428362055143116721557538336213437830707472180096098362142961285967946620090984492599887861046731104405001400744347491802884971816400107139633932722654383105932227331098967064958991687950507049944990337668205050210832917279694608980925082799830537583366764219326663699612906605340704381305260956630574878650384179971828864574500976980750073473107028695439863238350376200496665784703887994834249224564715053163843745060398835682400932633862547608193447272986580788295109555220719972753244350976502101372785028474223390478674762451111619206010597056925531159483302213988627768735316433258599043337327560570821083637664233788176071512971544836808275665427933222231730011791768226720575929388253874587283449403914055803698673727043085450460294119419492292919327574568488487482005939885101974879063844275400566147018251897633929805013548220113979811018314821992008727076336572667005214477651057949326368031964840657699976098880145868303539601474186941938302352608080562958727986978871948252516013931733927311089829104002684073894267777570345803360843976762089577538839689659470760453331879268952364925685558596270544041959126130449702695519486037332092744721096357319732125095267329546899217568758825938761290603615429182401079909165104976934513850123206320209308491889529404637673376587792861149534054503093149618454677740203157588013510377697633491543070055635921761990450588139536105564551949080929793333732195059481185768593303008989759797399265501125771478048199425155500045089051684330105233584646246240445367843990469740612997383911074965121108319801011031583820063693679153987704935479964826383936397667506457797185556987275550014573952493765494030451960483792442189867636102415080548359957707201257354550864195326669628060831541340031763608977100279518582495500243002273491804331253462652399761237035048328541162155835668745572427226271078211786265110910420769423220632137358962614252629212558348008607943904481906713200601171718724827969193229683557484245396661263451180815734445802929096494155546666441846756231457532531713363094212276025476118550106813358205131426196887187704545038995196634874584059284127356743581604449101464725920036885811904921385578940218349299427061164448934670972682651308151221124042882864198892410448190607629636755865987903465428908096238999985358075812633939675865589301198265581947961357005182294658761210740683067107523815594555295397128229202700614363196677259806932244613191544286139674808350168288338618285202842087054582094513227561654332609026119709868450816475848929339468317401737860784849951673589540914281171797568097635278551306895583038430412736638065113059877705780564524521167356093114294764630128890222292447511262993107162081185993429678122496556247997669753806461269679458777004643099438499530753360769901169230831844356161631345530613546018937765687971643432800372687442887371539110433585121357381859896117249728471115669047101731290325253832709477535175939357588015877735826602662529855007931174225544137697684477864840498476698518905317760344704262358742727495999980567537961417370284886810375056388764148773109683342348110343469267932818104353363897849038992352061012691794893126072530377599379673274777605605394762182090105469228316147115023210105687699462630245370405720356557240449205124549349262697233899650746898262005453256311023695479823602984783778649577103910524234536366850965326431658978207714907313960111203887797652168276751888492207262019883132614594069161231172941464825470703627377329336041999718982771368584022702175451104536249068021515009495335684740021805238496812412767927031266178537320360180698777473704870744531544917413876566004089439470783013011401294784647163225547070446576776300159673581739250909288169269804420524271923016287960984634847647044699797667065278215611455518554260324944646767270805732964415334139769076423243544758634732957295514879620206749549436520613924352125973214761998955832758097817396027147671275507689375757944984931059201096042615256064660344801273707143758454642618023025996376973174184859744858467011794141130679573705771042314262538103692178630147171179716776940437523463072165780876443934026784122054563340260579704431266056262680842237420380405951624772649474171507821252124321518690469777017245354667143725137443801843691245613818030736332270020592752750506944796323075595000065015717577481633346615499818098271588314185935123954157546017251572719644410760156391666860525836478741255608472697469336621117685512601357386822186510264726946844910825808388775804840723119784923710558717996176383451326631737757518984966626128839905533159922333574872112991196127060901152228741899568966144919747435098672073172185215181131962928775190001052339126017860114498211894851811643641320358811574971132820705266234931392242647068574719069405645489709302714484093853433679529622255803186903841752083277712316835014982063992816393120969914218768673132259608840583274103330602144125419799599871717803077238184922220511934163408396966455148996228342872577856269290932140217032055751316334548414845167159627552024471296063436003143132133957397461007372970023543922037153589031040653875229153443290514289748728914191733366134625467549134717884607665832933369900593855787052620682786711423304026239045393346685784969425983257753034274339498160090020448398003419822920124356801846290828034934897106875150217074527726479194236572823495863489512264203660481030785213505572544743510264189812569152331156641485671976218419320752472144947337045395871067691700427112410058185349259843117542548062090477181530580550308132437029986761061500622259757708613403582006687141469327050363119025151962897151724674262634629082675585211056324194258917213812574029542866868887094733377626004649356458452227513787308990970872450129058275388593443393259213423734913156359919426237190021153251743671829213242478315291159485990994038925207191373504518457904656584966865620504094460434725828617500934732644274504982072097831065193703069789252310328062067772914542841312723145688921791917482110083637910730982200619443580255672041616465297543019711370245932325801154003157992029377569038007403441436482867851692639512567690569324241277788951205210126419528544978579773896856190748960756309775346870697952945693840214176358028039141459170378179621093265693143413776047371505098311254808668142702930237756342177185025775272353309478694731250844476025533118356015567090454232353395090178419574310386699563993684728660254146547342744928841924839766490810316680913586571875110614401892400982942159258740246543434340928382937737015749219487019404958488338797390692250736019975697491556390109947880227717328187176215980094709948196397492611680394561295735697852859199391351032060333100154114184670516045132177936783565764530471133383815005823554945285941097974937240047980975454154733822541235734847916221351345670169377568080306434498908341512122954291701241644189676657456654467237772517277167509555556989529447233354346928825544462639423802675483628287812893737393767278259777408782525442322593957229423294280881777099356120049879009268288801141864950302766038956712305251747358149403706367521281719131747506857669375665793561959518580374206440324855969428566274228400520572428518564821943609206820305460561797010510343038686771921435963600249059528408012572216493417758678696881654001117915226644166145746704753722191716849708199493372082688360499719037326148041185111962249175776823700471503341770202138442377704720942318221889236727442636439662534031725050089189356565595779722930251465277014590559407249105303752382271431519128592989085200157281497042066140783935729343123394065598696492363650714092751124841005504683723985689543588310147690083767073847447384031014596698076154132384868066090111996205382398731116783824084096539280389638181398913923629265829233112411835865629385008814067971174109360778187002680521545854713006786837613090076493234807190234417713406209658375756299574655565272010365499987218815999454778509510520813989530431817704780550941524011127375020336748424282786165587864425917113759961962528537403687397522992047619600710126191953626069774341961911486071187824944926468041847511951885012098685788253902335375867882547987225826378435155159583781353719885220134781568959292899870951367723516696047820591090017149926363038586131951825706209481361586645021463320988785689114173743011616730323143829699188181055586236182078757223536340135876347725401285215806655698036485197709107666193807980910507261579242607400100860199316280011852286593999539930720991422548503737343156674249995614705951521352709570921986164369471513885204210868949216404739114857311208312666979961956425597117375533841531972511622681764830244289569256863354148119946206554645561121799503110668158244006348568548569942443123239476909539311185042017292490496172161175725594651233256747799270010372671595802026088744749983707028935744360533179942376938939434666164757530732463420015413015748986837559085654659661234701825362686180483271669498288091390442724358989151612609550891322495058326557369210966140019871780362575383563816936996387209245119268442580160628842444621479727283706862399597219947071196331967411068404696926965483596063752200456318680994218531571761756580620761688361737605351072157923484017197120287651567940242812662964962731740681120997824045621863533356786767665627918531458101451728606842697205200116122500323802940989853676153346283187134085932716338477296840190729379208431952354041293351340223136636231517150284525038308987527081034976500818442884027785837701156128384457973726697730611606031178421403604744419790398505133786479000012080003761704131051349617219368959041136602764718931034434619570752783912408338951976853832951876398544178646945999175519199465880466900904071560078225033258075472344413562790495076552877659272361240459898035176130870208047938174710137054422741698507774099612403614629507417223249230983102150908313794265438302404600184266973285529312005149889882183932011117399474044699270114909097013862801689327906341707065219432191089438165021427117244887502432607720284979221104245902381310088921711766794042314021610156490741968453476867332518484862926658932176832235834025375907249127811951907917667004548247116673874132853180956206129554075900649729163424976051294421373658147133507650714188637583133998443986462913615692359535608997143709489974747667079269205970236318039027416900194344238233489014304167764672780633879663452003573175079183991391449983887132329275806198776197156715696380536432885978546375123530507142307733035078652252878067790024224363460998754808519475320046891430085203958832627313293624623451578712737924629406596712799834502810495892886981994547637419252209245289979030269574145580027580832257476073137175316040070682414848363750856963079279944244254167801926349182305390671065422687603141363110324973480941356043984188443176053019403683623708901666800090037234772180766458480651513371217557904946622591979674810278601314972830290593906293284397687100692119177439983371211968950857541350642157014813239598046071744694522237531575162869369000272436893682142112547770550369934181429115084124503524926942040584279111784891004647792680280683035426353603192667756387710737140582919475249722712361711104021571439838682581870499282250083370315092569482531970671766561217819669758205556406713230054982790702334059909328117329942232019792320673594082894818732383141111928062805882737137649340690490223817540136575585763362828755658886392074075563740891257945514077692677125827093460420218200279739381040158688396739773630980363430613055172274761658882208365926649377480955942940157997734450613252688869035087636806456107969078561943973634882720916934140407868341910824201056665175893890968381609271030719194613374300045726256781575602689266513457043535179508349651526668736471372672153906334416175920054460743134617955171308803910094894390425549272318582797368297120708521473712790707427941780248711145280028254789518766855022862153634562193836242163599056174676709672349311383008889568522402213118681447792849005721963917182920608583977021878326657013632904862786211512135534342506130167536278741478059388972312147770737319002514300079521145106458677114400414800492140807762916327928482349518903530654293119729776666561058468405888611909282963137408282046897987167278575234665262221168352153466166544997796392727297754190497121036255942407555418065669662856716446143182611309699353439896546238848098426175226171970223329809291253626650412509388123746934753682766927456517568939460694986172993779500204858024989138018020078092646189779712144859518263892827799392655593301295307223833414272779723434536896371955770556642463648534496431450714798556626285996768841651123937423672162271655394695686415010245075212510319348129828695854154357235341462351901828138823576823904708814583068130526723858169370341510050874737356532067856109980965361786387435713205632246051924733601615151997740268176593550246352486948284757137484461267662225782502773184232964107932253756742088575951695041674509678894239228597838799397760983910372871338541465281841033095626234132200963354802916342004247053722394693753257356656267601938800432681174104349556219212352124699017721580055012426351670898483232711160654079815568699493063354260861734833405994156359472695846501899077099167599545138231194753800619676176703688177088307782447034159239156874609966979001952232905940601286031857653821322890889316289865622210410278673078994841340251096079554519308110235020522451755408817164271154921291342696848519820053890531572945069503728792448077037215234376323240224919199925361762449809975417560892483216965934372672177444686314466570359907546994462624305503891477872824608974661387074357996710892448711453024095088591731671090144289369740499187981835417365251938512209783957539700305997526695438771690894954043744863835761986241816501061696851050430907215007452845706229945442667552633679578758399277286485524234467511962666370182994932621818236523029232307091098486302547619487297182762517177254968028076831649341254959024872328128993030743472554599788440949662570662344306177701295862892710326119830293411476463466660301720960718535520686448158716425926661235379720364094046948549060055546153314629565406084988897233534019641427154182005246677337994366976132829155891631925859411741324870032699495224719832668536114516096166542579964508631465125709642270803253696782867100193551082146666660684621966130492317350787814967651163072386015000244288708578585017201129388749307535205802501873132985148370494096709364833378875227931132161579867276079541496550784593358870043109217649353966821493582467992141266072874970305720781132527361877933399295012997865523410696437920807419486598248590610469823973662589036198318225515378623053748027509872898978583667646401528984469222469327700555782038386135160828077467239639542684800405637354573796228702427066676323789998105631989716406721798499274004250870847182137653618485043323264550158989490392809947386459106218771159915881765439190589195919208428102281504611567127600554639662763971492184466391921733903674004398638044775712965853922248119090558519780011690649731361689604029321495064685095560280922088492491695531623518160511114078980772125144395077188459425414123660080859388908429527182828543431566564600631826326522285884988848904967171661590357275104754608628907571255777007892773436133413760308296059712338396605172194372358500755218369774445115666841143511514614056568056811778438046657257259350649804668707625919622079977910388187054152275146117077018990033190247356956628115096287852529541601717746035729561466756496204656987177979299426641821471048545962759188653413234184195638414634564312576677184062436648019806162004993863343419315747202841910867655053186282500208178825649965592115642449908490011452784923338706508360195404138995376511487729843499363883774467787225008131854665497044523800558028129847707584726090339227775244293616277415380967764123139920036806495281907260000643942759207657373626235264393982460534562176158645094986426672371071374229563260021512589183176961152879871191530438739742970943302886088726806361465200748330053382478173552450614279325214912771919333725138333466248179569191347175664651941802623414287925541720482953031274023712376328477074999326736291352409984117774555118287327842253882573094430331497419622288554878285693160821671729939151970768173003383161678707012207282915827900437193823346503671535660264246935494921145407046749014213627739307429537428693022929757634534106697042145144692823159110256267810892731794228730451358878592269215306424856019879152928856343889424381973058035429618033897511466109786763881190092737056256608062380668732031121052535391765472699696432201809041559630453880719421926537944385825790426984939900977225037351380833988523936807653849626762886738244172941540316319061473108631851562253311092509266593799357837992641611368334284037960012332523800018171846252635190850258489331995412744243549726073955112000320446890989972268077061495051767694863901420615192249431314193332816217388297952998886681118497179407863084251928084309242876504836209587512614106853624436624512644227650634293473277461364163662436313904089183430309261156069590165985970085156496540816124479712752187159229573687802347374629130584500399805628662618771409891064853454781465976975753495264877371749681927332332882440517344502018118826148800521669191018358148464376153309019810598171887213365915168193301267236428055353119454652208445180746958356376308858119466559745136909926105166043411760340615861939480290190635904641015425299419665873608660977867270609645966410124198815825497526668199625562752842419841396827578436927991602329701208080181842818908311596106934552721069212379595759200228267357376851386160694171828666095342414344922018710900208085627009265387381337456796861997536157420564104015335530176054714694020483133960565327262021035391610095188383888075195739382208269788587272999663881076603238580724158814772293026851764909542577981202248391191300560649288798919282304816263293715711052610324409345008056958361190307165280462810983944682845595096817990627040918410684954597266445799067383172612559432033993873991128122451590738564012970038289935919969973466182222685740432658233150396887190053289683202822565783588544385757020438152424685695551362366417250332551920144049797309278111670079401446355616220816094290148909203488993543621465868491993924253948698215968443996600175058517584178109205330241972056725414166824644119321003296082088751759842209643346292169768012507754891876922972459641816756893350122840674193148160351359138170596619415965548275618710364440906716593933942923863957917946483541798166344694614352869695468527879858018182586334727877296613654992500250383788107454870146706838569066210447580945853470770596343555141045447307935477908326134741589392643664858558542612893625708658117111835340063371016052268261626926571001874269319347105936725080931759200494497296443659307655930291113962441316593560673512379188398496829695444486624748652814885982590197339791657251541312369605850806863868076039458513455285276346744289442699572008363312276304333659478369811806395606456774768772424482163639825430067597556489515667883363791142040613202955937252279762683433935677167208513610710368096512344818489255712295804770815879972596873106839671387312400638744967559637574844452717269820749865010687324095024704922362837284156085446649876533624154028117232784115926031097109133850503523551851859670226334680296490599504419751169434494465567875720824362796459979551596659334895688824115017823620624041666379246172149293104164191323174231649123096075498123493201559099615181288868198366786645716316483160172453072808079046075210767942788966647425523584548558617885958314547018718318012672971555063981158020145731424760553369046508910630801574135705831289066276700396770794456196270270016038567979770438078498443912977581473993956906065959246462354867048892373303005331625214030702067443305765487639949567340341577211213331694477563012756278666936171236299357376637727181130347534700529741511898550401915736991011800417719801173667122868211883468196130045842535949816058137737306629447000635420093786888805027280862628741930897598493490316495119981741107332239502607521618039945033877209419334441197198685870151347523645979826250024378033745189091902485251813098574671752231342218314507706750652550919719284902718523766860968468906533283666140275522902921027909976403377804810649136844424390545199309438280974702749598050600068040203242306717695474093696473909274550246321596120030956855786381828264509311079422164370694545761041722787356442673533381100280209770257643290589042720684486598706671988103225276873471938757902715171319550247585938410814906584503370474079206333575502512345687227444382745867570080422747213305907971697471540646499458878077501502961990897147685125160845469569061593509660064528683901450524090366560050022473775869457981941986054998057441179747855595976329751383269363541546795303335542242801968609586250958419059584928747038293679968303433261662991949657862926416729760217753888698789908304529143218214066314852968267380357710683993650263213519327163237230729356416988257108465652205689530012092756201456911398670559160150856372956318015476372895216950916246597570313259406583814236880028715907848525237506602672770551837097829020291245615922839383071412327546007181541523847546193789477137540936576474471650823396318826870648283236820277510423666862580294834533002362293619701452368185845379644477422725646739602535614741506828274862055000912150323919796815943115151829950973285436493701683850636794919355680442292113569285616402697843342599097583012632456924514341144369031278312260145964381184666140947421020518166815352458030805586756233878011482538735945841740929392945047203415469180545192566412041534244713201564589932970166597751690347012733308632008592845385859932419988581889032898313496046746281009677471742624882927112530639238681402898432259979377251036060793481475364107912442884682096290358393238070413144457618443063999521805411673955700245524578376239250701181632644899255757149702187508474824363413487261200608102106872634340954040169117583006524281532544670608337551133814971197959368540528475669068206001475218959850982983232661423110453520662301479150672594912109872899583833614645385911275065056152250183434328651384487007422915998490271171962480204044152170079179296325983019662586331079238803872814671247000947632613008481612444546316709327148093763102587138187655603789810487193381829804748116408494034228517712527138471372412362784175735326150380526938309681155553663937116796754304847791008831725472804604055096299245383256434715976610623437665006424088327107408469245101935680992125003798458671923555360499435604984960509428378727212618838669698952734693174807113839750051523040688868119100439154363800551807451486874117895731797570161541421364740177238445292239721177442140474482051677398300762935049918743852496298168981720083665591561663397666052492959972568928160108819854558254481412464528545211006190368406221276155004209352031942657952107245705590199944806754657738337967255590899902924626763780009827478513327736196395723682327413539131913437577921660034439045483805102696614162496762991226154836692386467840946486113838238374479585424192399924960268382997666520393294734780814178317690218268876535817494812962980823861770649573076419867038308824577269083207748146388973953542141728812955570492202631523223595168769594500322414423584249763926381224421351971361891878273420028973524718896970715121412037157643623906736014765603287046096137722714545647853112343191028537400018571011331608330058285620407493009306373665252480998921389506829275139409642872038176977032472781535936889759114981582187792829038346885284386479362583439212727126093881070765588314745879690554965366702667698078971522131623080245589032869006121203084605986519961762740500249369831239815038251818758005581898568112944129574710671502006404352675001387621343363490824979420423921457530012480656314990013230645226579283208371070115260085058014419573409921624815063783588613599472908681815394644659424270401066916573148624074251117708331732481537547393762762568783938741183052650391840115625094953516822488213207540065604753441534285178572994624625025493442777716860753890843746571834306964692194110965678345833526859914656465998402049512518235454066431498552180406632634586877297352335677176300685839610824634389623066028719339919787398290800319881513739033735773096425921701130288105956246223377071834683391134335299474209175418847883616812930352743743202706384979196150734754981079945694129510005507514764145843591371744315601007317823402488253879783822381229273195745394449806029930346316095385466277154724377927219842991613862027123200125995509456524111366706766569691743049938784253286985041060326670376901279486070794513847139964132600260219605945160358724783243140696468595629150554352887947937224948623810157209052261620391218298488701763552798076659734434420041607440263468110373548630257541213997949492556979600058581935459333416094408044384866684204493580327283351010528897562560660239286845272492139381872173501187843122004113832587549979549280843187915089601826745507534503920362146252842277877158133271428488251868625581618066631096947062837939366530976354144843063704135813902310609922612902776250874700647774072534797861163245825681793490791288754598347670332504169349612171382930328939215588869076729514355283618259514154795364074910562580978124265029833080351331610322986875487171632624564731390425616868811073193868120121254962385865889902603208189248148028258575195584020761121181307925967204301850714107610055356998810540215800077834025029120799188684121428315102157051247599152254436012780459576459300373859574689432260106681748573419811423097853083340171929833933178038440774495504550835902230225028648397771116962737040268660454113652096391128238258681034464092394798333581994647598545259572320268583615547702395846019238963832678996072503981303464040087567555824195317571252550806948070027448263103039331312768775023913536342757259658244922204318595039633342384184962289855575713227974982980491501056042942768998705808249340860474563298759813096703636753223688220271272007259702810204318752171895878749456481808485283238456686250247963932186066074693212924550163561816379907686566054382077889889765502840653898422059595978934859681121244921320605671096073733398685891220662984460735805576843628407817726660685638898706405759317288419409843246640928589051070134883344502767662814027029614072377958211700556447987419736336408265060760655434180276034831936401756873636514818624815185458746417892725367617785332375209529803997156061361127322853476720024670167549379235631923300465273377259382625934705082978931034889196987588416885234021823786359282663656035507384746566893842216682300805835242133903449107816155931251358487859057826030265553794276205573940898506918980625429514740075410778831183484087706190109234341745612246953806650248692004234123845581907322263345495341057730454479369099602553057288986443197279860708381460462659317370880747494771558802486974327011847396878674017128870062865459719983632190142635047022840488968380072170232715226122715048035418209029276845772693401652610280290355835381557494226761866464342542196211074775419661972251983983186472138236708690274079278535575615183501351547472431934089956544300869977117897915839795888637863120399702810707412176688477142118026390308967878875756314200852755515630647838841898880455214442177278828812364028008022852066644089837410019981550863370910641890962478116161752729443475641081128736217215840676090718172142405999962054635550512394285775479098105100503820820584031279633896188845508777578238704135597877815318576480171034097916760760738698469408457380520574122117822130402723278023399751080285644358153773732497477714179407438329091446829468236147463735662980619946995835456483330985430052949185347504048993869170388018223861376479286146056753672697890733747459460279434132220342122721841936745115638073925416377762554720499112803130743792846690688462766881348556138524363096164269138146208732909124802073508061049026325273248977762849935882373803620325918540580115447723999676821116015437637658790503944051209904405148520177374070319621780271554816604363619925592628975224348170002569250117066365203760466114392585973029388208595752585477275925897212871551801527960575026889778951306030359457626404006994988867656404875053563184793087114224386665546400479810126979489958267988637514139922370252899761490030313922529569439823884978616225305933252945224786480284941795261878737638150492891347514319704596857716039148387103624528412988589091394572798093057758741899419208457177892052241427317056617531008729728843265556335340957356340028798104314019039487169410543703387897047343062283322682617535482134982841071709915500470077022298003728540110280826021532527335691307332999561956517396233952053447971642464856183889942525742829054587092576451443292644666341457774822208135910166949094270382447736890241049987840124146439418571374318588291599498472711801567873381135531183026732601192850061938867418638822699835374056396276076630134427782686954812331984142062293904956404985680257534689028667214883322123848848402109786556712988831841272245699522283381205675614836336493884126803061898969716172175416683575456088555580818845380677062456371515580822206868615192456838264170134655534047604646954823026666086946386441269253683085968243822014036224542585359626858587894213553864180775092094284841504130018773414532668345143898510775756520957269075286819200345309093849190420389791184415481084577039643367548552824370954781247946012545606404838093205060607964229832392751178266295130963707889011036340773934434296294361502102548329546912076703647963451189465082403178851822736045217232563654150201476081624190309456888209624397027310846501739607487834076930649805081026205801994074012688265084050278715432221023949590055097950944747299611817231828792960589171974465516508377744420414062990967665094673083683552814378051776406326389973025196339801282951327674614932995813903560473315229417344907138826768244596430513880855552965376051634008465825753900490134812404310523579312733454519920863886273143547926759531073380249623767885955483217963790229080038422055800002942489497072268298035650863165112842036503921410362349020904753582983335994833874384339084234462948349192241540807027207504832172952995367178553597286173887853211345299238018655419313180541604561602574951111581217581717965857749244244690757340124852885838405486072798553825539100768844340817168124802878883560210103413997860202192672089713416984722724737729775715504892644367468165360854646983169487386474988275781881027293292503060270129214566699207766121099827577044956121020187205613982788161383725967105314319438568065043174523926895849686985888921723614427372531286699216919186136855234555925999746593348684988213858936397442608413011080120172748876798783997514492836665366208272830485613908530917645611348764881435058095937861089490962171577052056320975058639929889933604876769364299053333204896428894319833479034970747096493990219211189331545346397557776340095177785348885355264751859437052407902838777353920898222968981180440106619305569636128568406180657571685119146848955403805521975381988924303797924470343452056946152016827456863325250648057172459797744157344391124518862215085410340477258291927886585437425501922276084800758055310809803536918428587674519385007391518500827161989910175734131398634376662289688796572946797965238857970572453670508716974952679561464769779148463265786381711544032511470420107943600303441763612159081493624889115455777092364533005538327509276491907607057071155565484671153073346586514143389823610576238229464688344534248492636316518849521614601485498185031546367440938453782224183653992267100930563586020237518643174991803772882434028892934211758068358815367122999462632241596293291026970406850015023603970239767496821783746270681314724294459661824523731812451543857512278649842716371202391085726025979424584526943124375496244221865736071159941492215100795823455654502800346230928964764481359535228821654527236117623955940031455471086128040225516805839617226737965174356975747464172038297541552565384011384112232193193500349982769416299545733763361278078754316319532536571962601753455724022215140569131955836704346467319737548599117157758660673633737311259633212675316693127369318438737594613741162352912038929327726052897816474263486004766340981303783199415951909173217426920579341272146016333840438095832212846498208408499643553728880081434513193041795038209060334640629153525215116781156397306791602522526939585931803880274613465868045561994359199551901246136025529446041840702052308016383394037984834603942398175888476188497036479731774179740850348869685884537540538331448410591875086009930299901401557028730732671705153688860468102369565170351645635702783404751765246758001302663141053693897148673306740127838339278731236438832891746676613707398910377387576996333446327328222569977925970944324719629621474279051473046543639033455476699430140365965852880720609421724968159417687057391671555592118685315115226660496660956345857893411520662794557616873431030355068234152909899362266186457661274942492861695656332664544543137855070346304392242529034062945185472738439783119459364548293429938437163121873245592138723092640087447900505754800835260285789556575950575818491610348942014091358965721783201887647974039145187141052323350403171135579635222636750414432061342590715454766276615668081206696590062072618662540182041283311812063457805169635338757916385561797437799001402709802809067687573364958361268123910149420399014369637152298627046977013197988159248634132008570954560143074933576380681706247611605194290018902718730791759412333979027573148771513047457325111965631831284643639258323574272851346546490333890881464829231095993187814200844984286852985728518535018746272287960019402222245335752621969362064652339278159870912594788351866469303926688114400630165617259938545296711131008128439901849800011692714750891502855698509314450102076073801294284091827433392936089900692229009724319990321932959227372176802982409709712366694827833627187720473242100125231636034545197497197066923725393633255002328479240992211132216446792586493633802976937383721484315495367005033754034105616028400660551829535759793772588810694784600466032779498489545643439471842617131879649503931577711094152752230926022445121237728351679723400712575921836840851546903205727296184964794392278412441851073198468500126747403031041104181555343004623457918242241741057029708900298775743615809350816651688149979530691044389240662507271917926933836158063997196789949717214456015136652745720591121869848706494402313434852330695901469766389516879294360418147891761668147543038830236343996263131796499956512080510664926581405929023735417670948027305118203683528615132264705848485760854267903137898961571650253851948732940384646774734777167394849020145158994625991676119217796116158279681323190735201165944395191518378346064285708444684312634295798008802467175957229313556985085704119399013578150575725478759343588871582903001561821902018404307843292230331878398306275687762694662695846520982387721180077857826896415561414673269338659948898954404795030692183073023430686292601619562818183589114723766702797975157941704040000662792172813034726878359998088108761107798813352494671456117645367611995162010574545748248904009764310441141522928464856702855416004648848728835191973076479639121816552460287519869851942970922189014767095384406586985217343103540441012714543023525312310968275708555693775874787907213225009818993042203569897480288595146676806103005948694248172610428687771183958508974800592777596065857689175209796820390172339041755686382558984398344471723322922982687349509997544423832881076592962090502617299838862325157493868916258120021426533041195098017737235844482909487860180121053830563601705678854464696207659394738633159036421386698884246359494773346918694007016598237400344500079577024963263496500007051584365263115209985798077261810084346059548176634314295485619276814036050318662577054253169855581637414750709075520857381188778399469958775862105327897304057553161932979316790516770305011705745346283350155842370219540975989562724812830984910103740454874587424794978604040177110588454331140107711666802887405633107227181444080690389074636925856915385783614061648393417275995087998935200926580771253558090704484416478454410562103275358999898273018560687604580876184313891816929495016795162999048187025776072366443018182825635722418715964201177664090086784121054298148633426013073712572841276423578108033246993103989167309479018290782551690000924551643566836222492353247596972708993613859138929204316965143583412450764522721397588589075394407875264645937068068567624970982514877901173681064234242976600165507277940595819522808491771834039806145190256181312671808721780406144770403771814874250754535715733024047245558332717349011259566846559101476248798837804892911515894593555812919942545952399121197760813372916767082741119277458163542228625339556990752953526829346899930427552235785661391360959675097838264458109781193675140204036401056798098670606152513299013938721700279875373161835924333282427897107932944321106636934351235276685030451182001211860914828301110531059785655412239276267251533825393115880752555728145373230037431002044679765149531736037922027275448416692953674199100918855383437300099384210677879751263026462715990042123332108564615903013706272022775031362008671533366006249841545824999134046838950940282524164588268723244770126584177200043410363389599340499986987726975751200081430628853383162948010409032293100130963720665518484361825040205467487905829612305929443349377850534508095569941391916238339580673314311471494933930149025895047276938376898756694910947053066861146712229873500038485826581599922886233261709414349988072793703848442349815801268045636803393113913257079063388848238404011205991821933478153944960335198417639739691900417018867254626956461884249747881423753965332347537095469315349611588000612776843505525836435749415740472430794988811429658429926871046472893723087903571473967147905925827547642492711464575762769409849340522212852256572734409272811390703071890436660216271693554658203141867465345201367069041488720245153614427068880639254454240434072071154269912508716234261044099571650977491480664382637477582731206895308040449477312791000100530084709171765126982969293863981595785374257979445364974318582448526550183755509814311310807604499684160206956675894567365572753379233916574455190009439585500429176607410450853412067429231292859252832253302252120110311103911278419217110237535664612369454536920438576537031894949693805133818382817717512224164134038590557384207710647534652943752719475220446425641426904491430651477340684127871830271301223082311287419400626804256548838254693720830103253719859103197391391123603625374759770789919325077883411515429360630231721618644332928872173135402222490673710535836146929773242343163272773213036789097952500318266064181736683528835621647686662244243395847858479623754254349230864687993937046557749433267838326742305945125678434866570312296979738660112922678730167923726044688129223161938225711383075265600853414834380715509263710677201637206666036804138617342937525492477933345832747571160992116524170310222481907836295157693949485914082391353697910570526267677912406437010226286424352427078725868220284702439498997899168456310929421655757424913708011061659834869188763361498005631602169560237676768335865161466959699938419278818389895452442695258037067650615846358734225777708454784179714448423292294458700402926465066384327544332195544112321305069816244618141897560790019117173112568282179223570511753880216466737309294886135189836349430348791887300285270087586047357343699805118309174440511651418805418821998481069742647751193120142802951294672390249851205211052924087136172545441949653726475990247464500572198281764465640659652934228223016736962811986326391452598720920548122593645161242837487851182718765141449181606435322430890703596188259180067158969641931840610608244863640437383516341093887738514066098157784517735016861365953788088865637073294176484601845964304581537553810759337091619359076346539533434134859349774808829569394626286638170398225574624808624604439120408852703864110209945463466737819711616894133662774475373212998286496698303545543125149985563019999425290995719566610952797216325674371359121286340302559037444684885667735126989919139345759653589086678769230858367929247750737610789108993705483246203984287641761376252571649838181584505392085046020405239598128272669216114138921255282372977085514078389569629608435087129795598014675244695219545616769629772684531780175551640243543057943029520804808856463289844366444598586610251479107770085145552354831207732925081707615409110894853394515615116370100754136826133099902360615047394568791490862573825767907628394206195574817280119076907994910918449245539574196552020937403013028845736390699115321160515080579145464098031563451008690470558351843801073875938658510482465509593293302501733702384262075620387365591475422678067586228792693010149012461457523727464926734955593822391963914653336325189673724153159256160612228938841003732569137542025727944480415968280227670022944703141314912945659883127216587342970451894896602928211060903477091929292571240259428963744346642549606390275670866907485395461352275395216938190331178132619535704262913608846043401830332203594015884307455363462391154042980212530806805027728202796579819711257335164214507711791551866763454611969705480165714897878788102229113485164532020772419768437191633607947705609681873328357697445645293506595540289712713317478173562924889489383286636365594396549054745621537236215846661425029260230220640191724085110186743352733454454793703660418306909960994416169789241863652958434203020670848249434419033278184141237541323602170484226563619435666341590475031108720843415672837514859671871862536583179671043144423542705962419399794109144379919985791751904003351527888635394632314462785654013940948639094935867830025879185412371976936739273998120000847513402365212041279493735046310325402032966218198121429813229901974496246766206000727474513870383704925740638779622126673628614551072384242873409051226281809556392171851737446371476106676717588960443774173404141376036234121362615599301010469521389291788557201541677325699996756400720347971956288668226550414397913686931702296513363170415151495136242027952801299027794132462460469933575492903578445413665153573027214099868064714713645544406484984059414152666575748397259825462537710662023168613576102037469117489918365798251127782875201581951056896735057011679123579449515870901661864397668824487151707767989575943233519622409834825829832175590029992535682806578399828106611625671034412529953760971968614371200733956792659628266033557659067709956490279287574100712007502228406328375476258508495725852747151572731687299240239247038486337557995767317204311511801669081487897711335301322308897234270273024717494559951560299405278395066526880513686597079978649256908303699284696621312314653343480963281323899030440944331833777774451382112990491359049226955995278505141045636097283563144174236779134374575344275288603860372769863019269702124483210161762656595878683464447645234720745261248946230826271175925719845635359481558963620369698181324779246326935931485495431454217448478964851682214610005110367769852971708838185001390715617078341046349450823533730508242541359234690320402420480896253316727608727770198073730740052527000322846355482420234663472953879785872551678194264519020146512294254496529506517221356587318112966686628182011334430693422449486368090034437245719951715080001413927670654696440450564512176180979579717480424812573838026282735912862199945989990374147413417252528882161751433035009374664761920382060702153466666694201169978386818972014948357249770355946959754881933321837639860983915472659789949283355238261114061835690414021554671402266935878066283737342792570075095692395858059505262683740621441770574589651834114717604647874568397158786921221946709442629200201881017330728064917811260679678612135282896369079141665311502337424269156641159303884422725200312429662349051553046132934443272108936564023097481838790190139409421845992478897653291832669999419093248385927228227212504571382856382604031093078092613868411378595879467111939378678344253527213108463065421934215904308576782405973431556099996219813194735711358272612960852586567893544405510897752858265196919860490186596215602106430563375971647690143313280990779162231628979607051759180522402137171314290728978612687601058448973708777787203070784583472581454711157692685218011481651173421273989689858132540808005337602133134442966111743460725527087756907425469315770994869276771045453271800339043569722016594419066541478757815538753272250393386356493279781261545704256116616632827312658717574416340181958547329012568803138843153764165181437969617527906033393136138904578934253698592675720583423478270587400864735048634378973888440598142216006448205946329469645962691535532373523469346447193490088607189749774816000869812870777348964960290485845721931301265397388380910863045974365026822580667753228703426406586360731042471085337415443459872063879299038956867818363727918996186748320007938082124014429689739735993011546959038591185161302212572917717954892918780005102808394726236579181257151445420771139658523134511200357257573343535066659468761206803315564652747179805778028724869107085794062083122367629373342396427656987059640722951108570530599639665863611777982042420064561843541285595782685228589195344529061989028395282596833884535126629559147221952754482273441925163204487776083403189809723709713932679034983138011632298518549999690782099830660687698734983612804107379811214968996901461996375203226381876505160021651379060376984961655040051928356129750228434428320269657781600151186927182668759098326222724571505993362798086444752993332718165249622229581961355285136818506297918459519911646776074037359466620305116677630635011920310991099581563329674469109060351062811510068192832116766471380297903989493383136895735380431724985933152959424249956990788579682162941975643749934107464123223582615544501269959254862257445944001526964877341820106883011161225984784855738351562620144530240347898818765970665940495968436090382182543121837952115583697712610786102909260607204476675273266889992071891968926031063863743015372956535649752840134159351225983669642007382329398075447693701568821259086720785738960938535176380377492632262410723668542624999642108726411932893163354063545151381250198656290084271807636189933028788519349736835301739908382203134443897768925396807442094830525600554276128476251500296086156062812336878317072289415715886742637855669688172497057318502944239379999061300808711008640590222482499106707856209659841888405165728518830430343993562217027015326033573361828998927179710609185325538132772554415056038672092062693475901627512611006588831593351994685335681162490663363887046318022242562233732248297302824095603393582909557692670314604967554249919794314825563435998486439860526090927897722017737770725891413646729614670155877938698921827294835255687667738276950320168185235876530900792641831261454247638376700861746998334229058199729998154852021019776106264353475024560200690574704044158014168229334566881418533783764439417696237775332946303331531890720138351024113339201159416726694154506027746968216329443772331182444161894436120068485945183438830225876505164463858185758635423435564114785786002265487921903712661316511330795859147075859728536988430980310518631501878791944756855795455729439790919194748271743064763871309891631601174164906293066542338630518060643288790219178135252654040156649944785554658733201625140399160359655278804078784954196365060865477977183779609193538911524302243080559925864554502769079844918025375861161149109296223529195837333858470603650960194668771138880191625967576280287585942333894706136309476958909285857217809539987349528085547043870086454039117699983562437793183226209058664723681917421822083352365281584787054684132826416248609802937363235074037865710567148455023411127692919815491759605168375081402995854105461188876707540333771408246145400605125160807702992706769662001453653526114399641641322165754328385488729235565410478393323155398926217525459281323550937786734962388641833670712328647171496537530604631066915832131882599007354158497798471872027136834036873603025700123920515180387264205273685875890260350703755585261216451275497817510055070543114851797977762367944574566415599573973501286928809852301421645075423902478455654810779739581705888744510931861919082967259208249247473641721709361299042260703738555470580010471647542459348452381782126955447128231789192557796997190065322573357074073542904405397532000163194398589174978932993418874826709542943763206114654971979399523756749579519780080232661166059273569506817316389634148957238516186084229710651350533238284746410161211267771732488019727555842488180886950220743562151751973144140109784123465663400537463717158182318251554951686868445717926441747264303337817579650260962935917560638873703494941162553795654576554946005265172122277414881018097827841440330175796337935174972574278354547570031036009114797335035103728704829994660699975438851157136133765644371583051046628976220955077784853096815495584182538054309135989864006877440278414825412629086958235587669966517785196296467668350003637731845689810847448875693730889613805198290109300570638422608903567818722451343646957882494927686393538851441257497314193098096070749446546891625715503335872937969507411924379808043699269680335349859917563874704432459321651890530238372607929060543009822631294117858435927900812134961932096538444068535534108557392781801675527839354663544084134248326072569589189805840573652454440439137813309991342723031919666758938263374155654525738133549033874632547159867093852867792063456347119278255724312812789129566433344829704106182755455851741187167004920706847510810655008765245624732738650086916681989390011300463820682118863265501734025905873539253913867868619407130670436292293434021398761103956709026017133467582542468663923873036003196271411576048384214605103593387154417490981347452612179210693680353288000982976395931196665909702267171348803765784421250331641475104209568970371107191481893842179877404922908896158496120728851269034514987794196279605907297718274312686894772686398480500082022272715759391857584375867063409744668650016043577881531523836323054160220745631095372812792467479482365451035278774033989745450377205134152227821103462532654855331979855504839598802807545340766201130876891082815605545497306420735959927685752000130097375716895631109802686181443673537811982309048502181334810635440064390512954373473667578251466489153102771310696633944001809269187684184789216887477512529371834097972227635204772847482086644077257674556546877664266426265880482880292113928932570227502384896545856435767362604075000804463282715025696131089981768612007107038783384211907998666876410716352500336189835725438907146172323544458066322635765128721774495898858458740611270317972092117239339792494256741464130429139755138380837371725868899493048062868402902565522761533690706659049059758020658851392809852758108247783857297068091397320361347626099779268774819110960164097300680654291541908247782208633181691247355038701302520169130774206840033421799736269170121241725314200736071091729203062280844720946355494103339623008432184598320676378807573359296211800274113219480122826932849200704710406303005650163454779889375463713757816591437105927882773748960242515380666296045142863749364595636136139349752116470033068998024049668772692319652999537615742528429197830598525684184958987167107412336976545199073900220899885481619173514929651598539571603956546205915820260865534547768602339618651278986507430242789178024251427046539131373989068524718449589493422107291653706831147009685770387530861524983252213377384990970509590682131621178144308277389238091927276926271721394022502683391471690518394782933125735164662882019776377081233658525078913602621234538035008872742720098554090955813426074618198386129939051904078722976267197080521679534916684884351511812634738379342684260843255728869047513044101700396929381707726942424915103088933041622130040949444823621734139713907089602468713245285111793213866855649666233783520877940199963970326103140666265206329718162267285932827676414113152976604417714051394043117801542333727243646239632073407733788722742034182864044020060525488305939868460944809795664537688936796177787065033321073965430260971776584771122654465810936970510550243863266915681774869307529685972418803942037780504790473798361956287639136394076124357649644390634238163626205594837383851338306761879157295852234471085848175000629322081191195144445030910671012410848621460045609549207416673248094425259046999770286883577139361522089604687456515988886598520556593954080545765768379216416894775502127363874181789447501384257235862824682587112378497669829276431568795242618912414035141601999101898984157542409779793052805054381015688967166494337938488374277485763358849751117058230151351784649025768502277317788655223884195953233833328559741042670886296008141494672869974360466216460009630780077586188340990496601807756423285267186961409852202171665912690269308454612100691203896431684684715328660169785753829467304357272784600255661344710144848964976212974134827163705828514364560597181196517620545559120739634841512626171886176224293468239002816041783421880764960113840885934055417626555107699827924695751984685007325129989575770435909594188481182984125313920259902036412925836245229781902314167328858719545332511700927576768763126145926207954667726784867577110064423341061112879812193084139328472957520169587700773346132950906420163963572574327315797537222620974836104289565681215906120388440886325725630460138250105584973716619494791258544095926044841138583941769061705279730282980069310913980102905522757884945153462880564876997508837043505696466425573918805589925653669468779579238954944235290846438146994623441016482028355361814801565049458895287100490474733801471677196124700995136342293431239255101953714059366376302524530271798194699472249074334447765666562754480288455907826395974228904075638854159502028160886021994150788141972488947265757726012881463369808503885962196651111428049349281476091872372624581416173604921328548569818098063777216514821988097593193847765614569113217892229747888776011215627995676733473777617631973962528836418378711046752292975752359909788943216094646195665313621780182645819548583832988309299399876908940983907218378466571227588852227994132538580320063073672692097548254036189156844446719078246001411388308674985791862752541065591515320567373702710439782104398976342972223569282409856141467993623749260530146139197586250245940054904622992545338163024674254915042374262530316000729416187659042885520044082641075643618911127273614792716264693012321149169407343116498169229604566108023160662408803882360349730773172030704522354492101899095336381963506979010194443872677369254711267245949575653416736578208922821910167769867614138866406372434430896189131653659765637702166061650966340039787373776119979054522929822083045553438376831492188093462178416046455140159664490766457423852868091641996533841673714222820883941574045818314062812434405104408407631649726127693087409035242124964305181598178657453376805036860859280528979438538800805648437049296917078213387934022290337541862548623074367816528245591619662650003168562426491868171564862061678446124036005510728273391348071912529595166966418676445361897782749821466927239917533411192665984593987997427395747160402501569473936893824147625329353301532478767850061302701751160812204095551235074551094182169544517027184839582465634586571400612285107724635892052478832976609561667138534482246902135741635229575424437991098661931237579622392452860175533249342982946176797825536068335405352428681329837607510070421324212363286954323670180795536477870035583986713823696638953141878634815156200210453381375040231287964161945309171205864111930734571776903486033533088330235944915616880897945573250704461026274680735317344736438086755180777563693923096240252872191471953132648074211404348661690863186343091166075919077802193735822076161511155146311283050418390053985905808323959215995863532737665288424125088111066112499168139874498163332543120123535744493051390532008235587895595344297155001479557963958602934734122064939878976434950111197903085631376094164372403503180329120314640857619170131284116294497033830595553002623818472910927458555704230939251917080870542697159715708951092175331829086150152858424937534203476925131327138534219276927319799874778665137435732697389817408556191777845514311155409576282159697457600190965965868840563492299184578070014936506268374624044807805473759398884289796595066733166898593647961252559445719764467545538977055373696945862990368775696721721155210046607237159786030239250444534518781146668438200545746148490687414216221183580818237706906061901405359458607071661681360630996460378692155628755245210520797062535697216825235550748257480748297280291393088907699734577563114060220255172583435910030991094517972797292870561966413939071653794448700946781933216376815716710135864711928036143544340583920472806049184583622631999907148779212846620911597190018136903306775116640257725756003279087103873149564061081882912416550213373156358509138430098719409353420022869842822128164632099157448304903966130631953195423466401176868458352896778876177993379161666347613851992493315706067266476513387271418112037867117467996154105555938486702885863029674468684271807149767132763012509826499100883403429552936880357892148465506242792557648788595223652371834596582995320067681369331680480846242080197361583693811079235672352817428513320943968789085124448725567902815523520833760586215993112561691880022969656615388661943720563464431528116980952980499189066051473952063909072573829141547775863278698498402499823036310014443201343195030824517482059703485604121413567675215229548136298673449455977688527285833919542611446712113129537234284228680688863092876909125602226543948340736903016452699083426811213104074728364635346216292709879994301341111752258771822557912039661588316491473525038577318810476538810195316416119505887232067225466791063494876977875416551139080183471529477294792822520578058802435276001833502151207694677983375192160383830788634839549631305734101411071074496598902498279017094685866549134013811828544705496117247763952126664136623227107128024854055865629540636440814135962781232211144968050615710768966647280276265820789660316526743238085515370742871347781711914396043070458862340770848183479317562965259462045020681526508074156553339306808586810518015025409196519754505140773958412443931848339110010784853021340579993916525660536520964386937055537474998769992054955221670752973742729462055890465503057473987472372366421529543262683279805211752338730150055145974120817273596967630967412359531811107060525674413299974639082831890758828930024704998423660478275850768455358786927402876261515135810253013290850448571516144847962765835994417199221763721153842955571322756063037861072478002104340676941912442783934368138119597758374312343326896577261497828191918368134186306835757100956272600332848017951647990279520516524786961240256977826657867994351121430801773770062624267971078477752866551760684321134414286383524110550763755185238155184503925728991579707250475286309768378078747268304861033080796825718771084191854184533435952436441543030363787270622973930517217706449575300698390033362665482354335334554026122435630096202469044264862466273450593757375041748146273033165159922023403680446498420476107869134718367600705998343987294655423730511970793083518333429372261274912422831420816310839534006911091966514961370672495761300578823287604573598513139243055631707281643313743292035033980272305925275801937993967026067585574093451427329138783779660440211438994253683506584903960664473635360746059223707920327959044239226617023994146212663728717019438802478953925884163970951493875258462038284202848652490159165692861714630837063523523267787553613303490701926745488625846139717011164069696560522592196781283803375581430643390875085206047997177283724775607966815057688642098236662357224887217332895692777830036018506860658089262439958426598879932460931579912060938324529194070951383430092534793796050551345812594347774583764084142140073641437135099289677733682856053359496765764562315637797615526408820558888087801370183969241130395581003046106858388556676806630361730105810290291265841374509775909252156667900158601276086186747365052399843907628038438382675660354581829920985977343877224379599668510605781289728493483852331614152758978853339050342792902487522443850096436657846508725702396966983445578689455694381338007210355902574153445571794026333541171018443157946667181040010267665704924993571245280723886209494446413262208242953581229599019757125988585935576386580738139002920037784034770176895638732538645754674133727117663652274650894101822397041670051328089254374160643374271064446942285891767684057280013015877511727471014488405275907406058506130994790248488262523060551146290373085939381832518064932471486553223910016283399397188968124777308002619028343354068140638452077947519910934640365299999766001591577476062560598534032977032235985390086738486166270585236589804235337416568724878737660034640585281911417535037592417047337334471517505288839994273820783740862766135224793495263843935069399530297052350863302519249071035566710583914141858685845471762937419543601518897979073920776482394309965642189422365674879909625025547906085774257302676247574843425287187558833869839638002208101597064415688162922795569677654222332230590683701288037520030013754872293929213762021793465578003662101348302923822229484661407828116879142325945807980981785210082673570415180977548165553249040996105444133184262878936873834493613569009367138432138266605259392109527370615491932809790594591705524400611059680475855704527992868625681749727086038127520347766193961665932288316343251426779417237386258834152967389028411654954859027325807416771689171635082886647707667274848075814924883943668454118813153892410966259145109217540910417378952416625159072303819393852295697807975382765944908143699041790649641534025779194685407277822338672633846000677790947830713778690297794798177349111964335905674652507520525591997454293763241677935237887387994889654392635613132292256280665631576245552505532762220411214899103572327498828776266479521902936048169111521811108749740714074816774971505137307295292074223771423380212222220661784846254342408168314562886507444793285096283367204762777254942325599874991869731149578624787796652144082451138881582183409003978093507262714203274566602562844666809574931175910407432420116780460932000026348860808126134328800003963494878395540789183465618503497051507301868934303875484141692019419930078348685690054030107397697535297385233312892665928157471261265581882653564196127312684262504305432782633738002651887017353291717725591303578290129271375109750820718663424096460940415231672965705459546113581086455230902365239132623178379004309792791501953298325030748033655963471541934142771428189913621562608936926769797639935327467935309925030528969037330070574183236600011554478896683742839191208370562724763729694240718561864070889571394609400661240900457666641055637522567389829063920563101118474883740470550898834061812387817340229394352018186613280270974198969878740966274081334897642039945422196508781881027254661960414595121033751676663161499781258700519371503238776229889772002162545232644139161778333644305782852910876230013295744464492753014549124448900080672183952049204627374979252045068351662202210714705044575967557067647856268249502199447642901440433738035556902584360156444262797627495442921541124315733795969097402470126941952486743923964972253271126652929525141319293519506970366781267801198341405314665678861793251003138596534373002381437032176730286268953224178310882774015798174638243597911553082311304593687623080035551991338843122692661774026007199349639272917758689699095489183790106795275778574613227185401073068955183418310906737870305516280791416308901531119611049340069407329279292942538710101366663059500752391875072639954263207330206281622057978047572652376726306544192720283264304730218207221804350879588797605390591765347892505706085753567543748586675129780174357535779012860616929763416376016298439960108064663163225172044451922071882449123050351133792968669395745594658950217219296981806121199945026063381239050326390473776848568317419890592521161813427104031675459556285365130125898793817081443113783508453576766116307267640059185181763060559383583066460430079904755330952166231020837060704976642969736256836511571918979847058741988211381984036946909233673320768014155577889287140325303229196771456365904392322842297116922982701542315609400437474921931908638741857113346188667251111802993757654402978009499464248094475406793587234124183602397435473630652917975613225109461863322360033350177156966491198841342728668316984712111936362045402982406506463459013193955281472198874255719788154276267321263681461926593292121997416445285697128532182679370278254972543882710660909028956369602864548809908537357672614111702165632796347322951731571652629985004510228696635539829273851182523401134670826661234751041185331411120441087699332655809659639221451469942997188182632894023473962438544190468972647038733693354254169083241879457227419729595897628823493261212961010742268343345630039263472787601744651875178253108812180934462538343374128347051418909809516578130151190997156363410965082812849881132402633945145376939244089720617377217108477666665159170954585906593413892915872534494955696356438318956508544829666530124143215946651951330956804552068936344221480358048230860940684374431455244204017733244191758901721236877965204337850555126698087379892231146663690751613552376161589604207188910337833130493727123660030523155822085624281798901990725044178807304979706668703627326022190323362433625437112581125329221880081362699655277900250178445506195811936195648636524868412867416627112572271904095728387340595672631308827269185137435734922912680967900009238061458179037950808100642742947492089784657041468209960517345205713203032303978551053589177920907868106771175505624306654895972128650884147582459442150226697453697051446355501841175886354474257474514284635657180360989055025660577588317602587318219696223597463642472386648363906193912585140800024901715920151764127815904499878702580176570255847797756258835440674215648939148049530797412390713844559341110970654015447770263504141950313670253348988303912236982974961340244550597288326898958983303875378813957007950171038368812924401253568842242073705580040238052412720565486313819984538908632782626058124202664489129317264378916132057220939112118163362837587151123279606031583251935363766240077597241700863447720968354666736473494494351428962619720243459623136527489407942086170120780450810819625039476487423418994377747441647298115408824429993385717770679674531511520666212618370775289376520629208802996945429684567287852131944071560141810043437305466767034799212337221402847195043271301421517688203765648123148423542065040321621837991789195488623885357032934464192207592497232232916750417636924608609811334159850944815898340272126464212610853965922427235242598815499559090795881121436438943147466841877953460638112845940274082267085980422756612112024322843459415369016399716202461994510997082683374454761309093429801556529314503497838964728057407706031021673424811798274507042901799072447771975624703240649850281864293879777012917279564630476639305820612549569657224801540617209236836962055606526801927322781126374451375874038932159768975213889150995731244023023770270470696393865137006288905703585659472114511205756218920891621507622482086541352398754697514067935195285559759676454671274501160676051283587555907258889826116865041839347540373461189913943309442123161180332006442292318899674440066011115730936402575477043774590483695540991000736750480443822097702137125120118234337943837242317927358163210892955855977545157410915012962116432455533080487173760808402009207380266721630812654335361283413305494246692528250436792903763626150048315125107807980479779147010142202152289982695089151623220431572084525054806532751716183370281868430832128861926771639070797121663304433618223503339979288837578624426092377410918461526961557206074195536238599918216200828352527405660018000496677405993143818284506471070387476760457747006510187997814622217248377399553816136076602786211238817525792687846769631508702069309104496072415910064912190218772867319519868499002241558935405454433322326333877151041928649469845186229216896350451638993439696076759304806507097068917284226308182123098846622764869727933805869993608686798051211386160527394570132894334866055419642131011220328080326959737507223886856208391847349682206561415826065970732304202773285051943707817389731625980308585260478528405682394594015835769255897740981414588517560539691019080750165823700475249561381480703803636865297583773297453286844614952336000647809706027312118572556779822531129687364553154135509209959683842969539750356044837308882477021568690125764678614484585380754122201308244033768141722354683619164473966538338104630685335909453224549816833155272057582097420476656787867141845924698723061172818620259174033089063234999774442950319688208865179114152208903898559630036517691732376870745063029528573226658614934259255808350231651010200839640459483447617308136621883253834857107382904866339459535386759871316952988523547676759462676508267733351609525180834797940390405287683008020867882892048667808630105385781432885373102288204732661340928327189286613805531925391659995187718594268063160352525784067529157371578593551898918237026318846442166533592343352334129054615896560827263336675548306827066022948976600220903660986572241940916600594312508457124438446489272731945801377279152199932696523084519655677651028277194499549503563703585618437046028596080364610429303855159747625289956125214862044817355881838251724876386814030624136184690177597652131618312437616528421894628120998100336555952332698845917602692508372721882730499939278196500746115181974738114909416077112765386751006894787388761057298004947432589572831884916473522478018174853162676055351809231599019256125408534839153076583806234137044994714912291975645359151608464004852511880787712146996106556611535883209782090755317424814596367862568000193389344087933029503110773480960476081158572103403418824738872374270597360862575546766262064539210743931588166643381604204678212182282379506681106391169143361496442653608901317228214692231564230676376923761693403839855171000082013649760786227252815017297540527143145539486046881449873873075847223683952218292459334011730886978956651905361828083484486155978222945829273162466473135030952348637227493987402342092021440969387544989300588415339866544407114108159935322406060674850259183137041797928539791315209085284195750014827624198524042362896551637125357662595902796357593906003385690987977400256390583611476619072381211701869575138971349002089989685078831639817356812965660967418035011106532395903198811226395061172487406041953992236655470072120401704234175281928621624863366680307343707857072860669310366311949622247920564388215835807742628746206856231000487464681160069787150361681950007293367260679922601692127307848323482128790608525567929211693360750430219151382323042484906630350983953095268096024354577442492452164758336228182301022669983682629499611537571446266655314666874615362703460443383452609185501514133484276529453919381727258292171070402052096637445877470408735912581669252837084595376864454108881039481012852226186272194301112816888346238931142897643011765866748653304302088511135211195000039355949030593848146263102693190672167921405057629188468919576752822164319952259413860199810591480783635598626124010490697517413519173108896331652550293414257981063655660894387195362514037905899264329501761488558485340803523269191686204041722062553455913378026634609837965387441535794438390775558632238961002184165097643582828294112878315174204745196997373988172243372771080412686454644813033247518942738295633970699213653323452492370542021565493507910922023217302760776379877398258189374538838976831298508874766854247535511246932435542141986166404068040008393303521540289885293404926908327025672115479092826688307896665444171716875372967399291546758650490830271962188591566766655076543652154043609194240773682295976204426503305339577639108490595008149014149170306187828234236337192637735011205656561072028388457833941383277796369401662532197852052248214453725430087099583256546580990769118174139977867543430809219567517715156003456794099810680762306359450647760951274738019095560977848707593560205025747135377637534571741109038562704304291113488847663837942332067436009769085612577076786673492653256644555252188359563176207798617741008486742926092884493180150192152469340751266272115352636983200212360701256003379214804982502708419615960975939346600968576595183750249466809892758109099560283437176959757239282306649770281717900631192663105445638571985983205995335119342835233579885162422507424620466937130500586004622886911848321432213989405968595069674175216156710949294444952735638201888745790437254833138669306769437182182987647286245026574611141098424919641699260456717251413512873385506491584949203419576960852350248222489025473902876508882644988509431886849809838153567843878254943257502250545246649327751472329851536874168517265096871746365393701745068374845717710613467279563439917329684676341222412891569890178476169997365456260811827104712197937210746144885291642257301433638645500202544411303595544896489127111367316284720072399309074882453577118686318967290003482960303089304585222085091152927085164516147481686611062056347652898310550206031637241689894144228763011410776218331792309489382478057075807374147431628868676572138678282614953905614874362006421527008764811169139773026354210549322983514375116676841113519036416462997539904521184664194187639958667024857861941112581807857101357988216017369890636925367875615841384397179827991132748573630472372948799901752511552686667321645350695047156302476679512534148881693366939554190224135252962301911956870430028965218704843416098526326778143300040080263430023901107283754389692729467286577684738657135206256883730761790930717872942215452512793852863065548516142897495060776315545683403287547241828343258234464784575814352238875481303612881748804440580997994813393875546295733880024378990323222656807194697131331887721367603380616595736523967641502369339700466337432761715312281308125774304684451184753225804018838390764975893665900983576339855231278815387382030675931965285118594792912064031609158121764050630713072294620455046913792779096061808792188315488614593461582319151772180767943998731549435678945893207779689359925566243012455995130534700741966906815498175819213268722387233487944722475423813834413922546056900483427333508552073282755058498383990872025883742951569926446238740264277631588297427702851131488487619463376003745231981046194224999275861262948782656280455269112712496467646902099821619538255068901220997681784432311545557115433943613645499398873915818418152415667357893320607983674495402993691199634243018507647697165318677316432783432240642006322670298713241037659118540434194276366223564526548985193690667859042654214728031781316456751401535262982943604430320233863270789350502916351516898646896920006553795087814868515387573645052047960052081463084661845832453829403797217791803191070840085678970699011125874919554097138663747603597316718421243656074684905385630834505689596142120579824274106634231148323836117819749773251402986486896274515959600938563560259961076385264599219529363537369785657844096161792302639251107364505843076726960122545984848239109293072019184718373735866662494029136103762533273609392251320710152093573812914906746108749442797779025326929610564660220597626488343387208944912926064301473141986739390710879941094136061519996388061771025494160075636829442662994862527054677178945055477965043154336923553091905942736071809781507744194037547510494138263954643359919207461368308625468520523563358490764291418669295638593878207710616228452262345316383089354891744463571101479599965778018534458303727037677698949171265975220838054897152975902821994739936887764373540016099546461549048147038985208340808395756341431345959296043103571550042535219958656762655342693079991410436162297712767685417405782547165930725492413822860605070053016558449037162235452960543732837715669134716743043443915938035221973164730779455537126187639554844862855381626258767088545118440745116317638548512863238463609701964409898728453326326773434175082480586765904092908051553715255606822315186064091867216505962098392834667403469390840762423775775385485095695472160908640843366294526840574702853070640406789622369521749420428568763980277547050517865954686010328412240534979045269705100873767346542528531208198832745698416630151423154177251320280542959282693762095971224062315911962408988082659836424463353541353971563310146665197545309007659200298137498643110028918357830204053737931351510933358338339494291690974922643224716956094519451064431640181315156942163485268419934770286061458711876299045602623520287614322299718097162554573878589179990973697962812877109456223992077414779368006512052691643670916251447190329100327886247822956585110960431417512958463312526947475208597602439636029231524351779487966444346355023031901862508204449871752739799712562659887991828337822175944720471774693720925130230152581653597431647591193274956165731554040495625518050876916594524672049297339549907421739209337940502895025434653356573095151441702002261998664052490355961685404388373134782190890842552652676322452187598426985951239007507874822847226040058556507185523226387991647327355897364868944768329485573642643270410234091290763630533914851095524134990086416340424334021990049668733558016539485781673152099643316023219231767450699583208963107936387659526751578327082491251664760920185459137806407686033780343700748054310268284606940008202481272447248316225530760941520813827520997324621390067919648162673433579961946609305016802489090746667861445465443814247641474862314330461919932901176822540453217022600887782885215957774272926084113599238412987850628679477194263257515060030689333641684115246068471903945650128775013325264739423914597347495753000028772080315567113546222253678716652897358781878956580392292483269095089918774183701476313205305062801718696759875812507599996860615611691964317642066499996460232343234729154030635630819929469794727775418440285111152385493916283741255099460781003266307866391282318314129079790856137973296193114592737623445098406935168930125462370997014484553490058828425451021189445505558091818054206349720785614414414920219175877535627305029106282371635364678800436910956397839938816671030262507831224806789503845039911584156504767263481895563975572971422915017189127491552676539033751329086318452129445170145649783127391550048238757131074523295702024584497527341183262711035102245575510324697582482697290659946436805960645105334934502917527828403533267210681230100827350440983062965960121127513627512011995601092266758649262641873150961089934972763372106301969283523273010817519892463322799500835699814830476118782950228870018665583472106456989085513981848671050588783278168650944038920442762912996547208392746377127884032344851909500876282720159300336495882337887899795501595661908996228054646498313775289082772654512628849504547120945141836623651768377838334632871136212971131626118499599725512125712768395575286518259528323253756818595691964813901645274209368142871748380164020713742810418154314936804919725552250755069654038350608861973511837395825759332536434274692268006588833164512472176433643574610909294692500657367944702379352422366193456536853750860692249529780202366592340102730329086037392273688616716909335784631520342677923398971211635996284571375562852549354667218111850906184966039898158013907542629255837107345337687566821136495527787206724212366303383269489038790449008266733697662983115134509489964258439297973944765026447938969809193392089667302283542766107184758721581429572834878722165052958469968108799616136402361225001216841980377006682280429048484500879771617859143687561319083766693274215174079290967858161050526107901492610378459068757059842321296310266286700883598883881632886044497250112684268755335129100249834331130221740347579991219764087920795544298745200210728894334918685759752325716955689327269453014775343448440522253929122747459511829136108067709607596498109054388788055027566169564167292657927152837181952565531277891791243882909219488639785111708504416383093699689466290219607257144842146045963677329478154740659455330384356338297603547475889858772979600539433810470812896574251624582576408505555750961534721322326629609417397908780074422111318740238132906433441211323241269737906114820635671151439147184814864522977141761415749531224600763239606721690200392133840765657949968816196044960214268647748262256484996945916232400794262997289468748158650426887223695480269912335983262048407606041901665844659208144579052752295450482124142957761079489435682612640604592212612322842820672136005785610058418973936948841493232564281735790627451023696934496256333763285732224967276366219470753031793864196580518619034046776273037362338695856686502933443991175895479652102084328904420473386565991137987908976066490891150442296673034054760568206899327811886563796401978780941132407850951729193892850259829317270339288452568158341847917311270381654200149842267430248222598998824681278413902772187659976743612296688660545705360754800652844523375336092804671537907312223332742961123403522022879317071724250476777952532162895706725651692088730172643272954064213473223846796140727327783937942203688333254534241824190224217540622665393074292258802381512936155879249734924709081846003312582001580040981948987377757285234948841148427083505647557448488627844721311726144779918983759501934097233011553248807271566197638661030203214446983946718901810840840273385569663413107294599574602066537305636877615895327647425227194924681791090780802875136907142464819207671107044367054094998507851670467530660488745785345669445668511560868996127711509100199077538000579694574897925725502565095513436602570699063493121840649700477290352688841995893612950534259209289382977140434433319203857108722995485315996936852686282571126962599944316235597597867658575083158518922521702217275889910769138955769334210329158237130120118037700546091474091146888352923467781226307400794046470524685321836629834344131483197962039190989766347268216709020851937040013415161178549660878319327934401837564708272394862255956824830612632638444853386099000656791515413952179041542650370066982199351604849917992424700704054811275956396514671991957225488239033035414821016096110022335100503204310158773486958717170319521179893186002044404816793153662518405983578857160611376837596826070073606693394830143811052170088755892325058851989524351843479703475528952551916575986485374184345473589647747741415412665414095499519717930192188520776390378561855767452096288779195695962656814931754621383547981195833785426816216447308146200204795673960688472301063931588161474862489415935103976947366456152917314340844622436379576010293439269530630690374046025062310587015748308940759825486050069364685573418559180531451330475186252091374687497298774750847555003003298877364294232420487981077386375621218979882914136429373505718468097051779345442478998350084405805798499544022154603068635903638841406221324955888062520871761776673496530685301631309298675349852508620176434396379079025322247113311355084081988716031460312776171693530509713426701292263326935780391638041546906141473073896985767575459181190868295142734210413930603334134232565667074451610656580236824433635796670807622928486395929982004178460195515519960637006925734244223263879063046695162918683153156665411237411820582748136156867552038337515902399566406522561797482646938465701497536729915659676794125919407477038453482921980039202437218992732755489346468241851768655390672230943989371606186787605058171849254053909147003929003107238127115567443180358894748241193869212170589386104952439148701826359562879841517909642624636049033415012616427559799967133233722717598847558918820564001651218013964224637099937774291394073423667131466100736551822920267689644601996033236926887294972698709366323683874282578475489721613418452145660002032041789659722619962450999371038628835628819280721309797877201835787765298906953336251398049136937367685320564594275143341929922752611910612878419226054285279945776168993295865894795629983398899079597605488528887882992132989977573637890007675772063702397645685353033851513882228548987307498590018388359934751956513305311432386991159260035569212283422809633402066596627857584262378309153518014913698237206267588965324138378997838820421053654984578732351857575056360747031885090523569457411374895468909197467835117871998941903893329113584286916171618041420492251836352597251922707135510295302105538676109987519452667189275187375822532053755166437189592354280188829583148523212028698990293033512971248368014211441424012906908915435148027053637468266347611980146745393040833116673763200366754619054124934027276428828519090790111224511234558325178438371432556049361225366543260835871694649813500269092511363789757604382375366623851146324990549530368664659318356488719013056112751709072821156693507247111916996397919705685276006572788873138564713434660770387737975450974327880048509368280639521528974568994061817623055423548267090513393541003620573250795701842341264471636038679770363854276089480540722777004557981650190731968755617798516846070554449088102139049114258073059397848435397234386246386082370688399942005416900513501346285539531139285847113787082152769752821573645696402331955837391915640028374196469045903892558090241114962324218158995244470564556862623832586624942695712829215821421967600371037677541798678346506038484132013465681356777777344512357997648853562756644852693311335415849829586195086498350430120613943879894147701114206499754056450748033507520400141692980877777530788901125477424980171719121280282020376684274091990471157707886958264065781263420678631259436393228153137811144743957139819570400239853207955594589837502466059620678852933411432975687451662905961176339773660771554681296300211049630537052202888582837248407004822212638870641276105871005913162047202319976478931859895633693001385816826849757109453753537946675056652304481982710306774821322668849053203917190184512718184055940397931487734563504661992554247063908404677559980516942311540456109164688368411539027578303869715431067131113465226137208553925662370523978276691202066978797257299049259782907758273135887999150241488151111406433653877468497208134277742964864845435414910164748474909619339945268771078309497752472191181140145939693919877710319046789039995911284484066588223290565254599137369833078565912687307086276760428294553507675647396882936075979249344417378437594129161121068800255778595081005033301394020830588418374582980708992980749199886461026556141128015978901620047169737512144613561747075027765547096518125313891060211621457669015991957212698048196725340797766120623228438958707931752815026092243275189892701308257276089316622475338133636581229375736641367957766669668719372307539476795743921577150814289430444179148186060406662783583809201345917453325121668264888930975318326085027276849419684430060168013082590793954225243284032084664696632062075240287501423789994961637613665548642931803881478392172460854560448616399173070282548206814653229146024567110175875508233499974518791646291630612997874351432343681401045433272494801528999174987733281125575576556378560205427431311095154599176735325987488940470839581202541144913175474395846009195545401816710160497965897682664728970552896307054724164826735518432398566388614669087664067062175356655342918555514721615541804351563799737832416090459493273967217600140325720407866454888617549162792390386905794593605149788542255904395888183992484502928769664857578257177348121644817199803705994574087239811290514865264447584752261977239440950810158005757469562816995617111665677328819307121606426611282644961454353122837739080448230485766450868870964779866332701477331234083216192007320464135300989589437806699698458489392884867479054189439655586621564905274483905599079292210019492240286673969240594206732642726287634085749319548614282740768245359395708272709190862144260079454089167710690185838193235039103585178695394457965435679656737778978813804983371695838587539252508161935197458386804251160028205401657356219987014925288957521496755637473467129755063172771130088550751657163352472914227395222753129218468755252310417363150832388265487109833770505100777557996928849399755603994713383586631108703279172290467730737430413492572693340409446808208329230220342901245749526842808155637224481110869284978460650973976895077532446648350148406516376014647536314472565618960746446092073273488489297161744150065122153793746692841286215001102973163118076216844411010181107631715680363519615346753754812795733123723590835382230974784329833618856772226336489860314828694990176978710524463626211549568160897511638347456729104948382027392299654144125978855671114087690588647110221200763625621207143156700147911829866217304586273273141761338122363614028888924495494633160196162230909940658062900742313129592614446840659706811919088105996818620076043550515769244905081969704677417642251415383868805168374544885844862032509463175135795110551646781140868417766890597683387568664003499946422444089818597723151293049270098705551560287049853733530285591082639388329014626101624210794582889790475374532215493735795146268653416337467207606670845517723941713818273841766088375027077673642774252099479484623118830779054202670021111277200036342356137171521756832363825174272504523824944115134700310112476183720789892849462516348142249913870784800298548474770391753049575809638451242340435538076472382953105344655401518003832582419968715697907069706492193775776746430922210360404654559903495433578685926327383114723279602173777702991179599444838879487389260826028510979936051214867473352073903626817658013373607467441930542395822098565572862667176429559823789399364412529640639333294677024445065597167942978957920409661549971286353553734727416087075557119217636613603818327993840365672142837592667007929556327163800038398446421467180103372707630807191732532187238447994676593391722372338133367134579370043742743228351205751361786877453352629856988699350420744168136268782709024199092290766989854377709454631969205696593298802160003124040548011547379146691262390809334972584792213411120047151958505515416443702091187069908346251997465975965414936255828872133193696210698371963693561287139444437528552550491507236573449715959412621215840405507943587889546377017678929640062062482032270287620667732059437719942806281503675371415640960581547394722186170197241720290253935862883628182771480213976376089695834645950949117168617229893236744735052417972737602453442004710737943823595009394351943095050311096511669768218127369418221955410409902719361070387035236455909546996564212994791028992606067921794070183926321796514611159956234027534929590468152602138388583809972315332262643663094960457202476811724520553660027288342679305996888145431650585301998348669595053595713725771997796018460399228152686425728458359741351925709246644173132059645523937873252266710989415722411977099977825212379989827757373244063957675878664385180419571887872233192583828593235886213459311944189576023979078180262532040083072630194052795680023402601007352919607482213883941412903972839675609482561848725739201513655667199233085787451386462029612692370700458030712280915087464402060113161160593384228640136798043748986411533829155374983825740160789497834470451807328512138318439944781784470838818290055526019401741993342438453614286242023414128893637937784858002512188330098077837820324468813273324660183288678428268053038772972260222307387838797415927893204601647687962579479977046707783798208778354813006635643056189844074031909293510908874817124781512987318542005253295545531672943530638834977440401655075760490968071833894206672720466665684252666062616786493600059113864581581463302543469026598168722396784557533671473629528319684610158929063933075024831399412499768124743330795590605483333758945765730877790973082872690198223448661482353261945456506291330823773646161488869097899871031355796137316652418663458203657726297631620018508384740112207163790766103017516629774408798799430469184345311037473591121870465620976401409471274719324247063787060156263585949579564716514283467365814884723015992475618787168641821669875698058511531076646597587793067341069164374517952425320631197861317520590784752972144988814805444800471376286852387640297560566303524418112937276178530396128559570627720338824659457116274558052692030778801566776274530560723164080238550408218396843100944415383047832556785800509809277606756623613418272695480361865206387314778977686053349325137903196018289092927656350048500310467224734247555678207698209866531957241850665443209250148030741919901289938343742062997439901757730777159542769919217345745565134704626669529362855026232809986987709308975683576414232570364707879775011498114753937435085235317513714369134726180902197702962745030216905881810140196500691511325319473482998866572190274258690494141084238584825144151649791355009314858263596992612176615376118744774141549260825816320193571901159422151695301729350677854728138611878091314937436354524002547684558299272766971022014146964955355546064744450270475605964767451104980167867679768243967056385741242657425656821079096472587453615938730780741691350804578860835876731234489497180118211750658023025944861647737611131353687263124629113062114624098588160231523905145963354881167195032184112864144456918211346227836297533194101396872778716881795822810172196399761636836678020818250420806874317695733650839375896560183275645448525637239599115670153561965159831095607186638344914078402920157641531535787852737592157679230021529412194610031062904041116812136230917075842784581508211176445915042404873484111974252600146724011046012216895165243316442701245481621457144156180734902615299517881172371252312106320754883897816891251996767048337213115255087448452420945305904039913415414973328284478699906306933459684977364686046635803098659842021491487756678240635189129985239040453417114653525823167079075855682187058735160199259865947827878158437926009544129969164101863699113043256774877167272713214761672154822565239722391497693804159880016365337542938746961742894347391983302526359000058101670432740817113499590144911737786891022714319801212277237788696550269935374003327486441861805879798550394743966397139078002050263678695733561651247342657707608669167359350114981025481856622671237581063612003351099873455243379172736800383323010096225560121582816557577779875462392333848987630026489275989492759552924655050673010026852477350700233853723326698400337793147640322784383776309824255547203490536285970498628319168263210070445918088181092354209368156539971598197642024767764958839778261352903039036587536264089489622597246047260785553783069016386552168725887373221166131206760926359995750516719179980228511943762641907857181166188422618576497616050245603799567302547744738340498654979730541433739347089516833731852010344805450316073233696675125355206175147375623243930468115076607291184608722415409380823150426843654010832451650080334622765657518941219845063244334425389438760903837044677165318695735059160603303311824107606492323284978558208031124810582408958514488243415997752584969488644687389089252845495262030423169124167399536518849834832563864859700267826610058837983556858993250341079851904658650722219815086158337232298254414076839623886786006978949136424391698897279227909802411798755051873963314964063243325107719969767187675898328347625776059123524694755461285564361365224747439812639078592647593307326633678970050532658046920351993233683373625982340213436568379622016451380345555959178625343305172522694329431877151595304120490068855416222322950457728262895874054911464548994598703605274633083443310155309244705603610815365143514455243378634530275034433884168207895910623373171690676517147199890757609444089556303501647087883639342794358388508594655742250460187734224944632735094113351921445450794454240221850697030225397111998553776101998628449701265315255368837400707468813854857203463202859694836113491408058686723281304469740343187962141511750447506344617337887716653236228634147045440126966294596422115028515283662752527749910854387560142714524060434869813943929780164380327538876478898703949509875780039839990278130955031807520595912006234366318279669805263228179443422351996542301125607257127066845620378626258314304692426900411565236667425965721264666942751887085905964266780582722777554524111329313288051230012255939573559647704093971598963562816003480432653001422991178853425049292937211916609562776710576095666528307501611376381724530980624140794180314100036187812523548608242637725704277035563831900553322771002167332045214503403994561840134470296682198440194853722116544124166215277286157346204749099113498706805208890893617222853654497068184452141519760879244811072341771449697494845856712585025402116386067715666174092921031141930574607248318610419316822779622346952364198895266203620061693316927312683818411646390736947729256040700537679959411890195845091843177542363235540185648426140835020845876383446182562841607581766954640150255590830941627707045478866015713145934490342272743327600358436297718428763994643452872374357508231641683181576231457811212458289732624270306985257872556559674816134555838304304601479710497572835546983628730553897315145962193640933487238008789178942500264401463307828024838875298549703046001998952081841801871387593881957085461370572425866808061529662258264094267331278363089871006604051380798274712144514769138678967319192910595381640047742229442421652524304623228098587157733736208241199973208431492599646971605785980452980976916832804663825946487095111880633724100989757632452820731033400413316435457618549284908229090201418360478684110501449558729149339358678897051259399990452812121509016423068928879952335681379159540190099749099757169060615455197589869845583030856606017118952123077089416706682631131098174395361893267661622422382556400798330076850559717026198176343952495063177253589379482619114934676480824984649727064727908865887072674622805783634476360251354410993297220626753595597236229435078128070664916465504793130905642676770941439607758561174283147653902650145203343848997256098819572814635619692862250804182778266246656796039394590373567426379434861740899142964515994667244886544123098504926257094403988330925101093724111525954058660870994799944920169464886312062098980140861964291566570730503305246801680361638781394909172524255925988440053963554441854374894440783584797308892027173366517671162971495160228787093109719320495834279823969008495293691551246470243933705913406734083070153015074006956346461043101469938589047624665151587869884341130245576521520539250708589685109986688173038126969796195635335514065042602424665014114852712689143969886252705574210161704237258697348826300253547449935044067445714371482174411770295243786202668642565539726265583920011610340699062009650908471410207637737470302763475029668947338815242073544005493152690016636064526091929589515742807379052118661305604731354608729863761329322321686079233590822093060047055534301227576370704714748776040994926391453196416689018367130376959497708734366279710343866413314594168607517214034802748111865196877786455916453165806467297622217621190600445644741992848800129867017484842116181893423484072152539420466834967634086241689418058248421365062944615875823495930330467380848066489855666405133826074810653125856460950645992600553903966128959679732955249932675395236132998512208026276961772027695328933250349735203139393350556367544923476903466529346256240591350070793825013879667279740041247330501277025475731363699800426277143965765662388889663212010115904149878520066222538695866614485789984012261622537710951844326692590075161775723302609704243561968572042947491444198116420781704324712118403125288829915639706360141815513695028899387601617735539103783977100203187627778735896101003233429665191672537601208027368637235965067155510981880692415335369675954815328237704335464243927596022566939770985442719191533531739059069887912770613696363872644277145406437417932715871216958422473275824400761684014891212013637435357268613111600989433522194288924351195185935524737160305465872513663025583356986815655496767757153722521298197273156397325556492437974475747338825438159709975633747142545843889978288069143689637572386578942471705859268756876920841862433701560366374186198332170378254582210924423808523061002757526688354703736915683662455675928490524566658323840830603695982664584593459331710006611438094136480384658992620605145067081369829298309731333649364132318280338469046556291748003233278383927571455269398423591249553955972145833791469657933355669515551114365525535439594635639016424737839696098277995476466654342424274156479967234478710173203368202122830943902934409678422943901175888605200336178749559089976633666283058726132664812313804519100975954287488211259395315024696023393367877132241174929819423323259299447506672876205640971136826709016423204602096483699874277850177419061250865758738272743479853872382101866848623489536113874423379370449190670201151436354548027400709052625557904625781542165064485662785305699465942741798331917822012813183337301531593971757522319074030262073750409997505950145084493729724164083271715200394954198025112693796329653900314904073350917102054239905126145253429351126872262243036704963435722321280866863376925944034204073589130519066495567519756557173068047728098175016231696046068859827151672068066805197343131179095037983516602482476145355707408113965443271610197022090257061763094316776495170909189998550495151535381082681986084446755426736621532789279093677054313302143506181237681429934067344150874446654750558068992367898270640463502551207507639736588805663803957549688795988209091952341656601583980795933850100808677149978886642086666617253520720108491850140120669217539127526989453718503704379338852138828595463716671090236115315096669295905709553867536888567668323282143481101850481912339187324692680779157677031731605463734294035122810150362973225592901179441590858291162031991592212366375546228028022059601539858280626700471127520879254332691946678057954890909660989705524873230726607315972151291133870635414420639524811779998693854338295795683879985806350333821047833163526768489995842632884171565272251302365500855751709856354396208857842314267035198578139328112169505576721052900507392969738305906360270355137358794947110089216772335874905649488057067352775522442900324823064099319433222810227725190573722345810434310540923370223760544446088091517410358377513573964673854990585893510053461335898610333825200418140090641879920300324132464753977697626878967193351788251086550578508326668836355700131390518555743323992711944196025587732270307004082192579593463394415958777419557446354993345356026998570062882692019092579086651771595667057769393006143234270280969192634051826494536278602291165039323836091080617489698488015080003262551003006145000640103633955116518864631197630678526942728295405673247115783408875548603190603636650580235192057719081677477540130385989525637423077196700941983487761569303008729794030422120787572053771638283069142104549810714448691001993182248691401954173641268523999763931342638111648623715828519028752163766604039452614607204943213968159456936267250825932450559763241794205976672588306680076855455637257069745065624522060474738039194841360381523698316440010530932299260322224795637318749858216638492364624056546270569206685551139603034166258281445497791084074323788362611315773848453433973253436334097465117787542455397153973718918182800822265980925685566852980965919240147541702183859197249680051426749355578655945454829273256197798565735521820117999629404163894858622363085472538575760740185118675168139905534373314578296837425724762202341570589436454951724287455856499246865216570802262908033414100715222650205245514054555885018152348425990379360436953818101518800536189101498793180184850396099636923291073713931764130643683205617961248513893740403587932466589850447968138102859192910776713551702956866392939602381143022511037305495739162219609800713764770684432542487401062472656835586674564500281630620985921859869875772608450517143677034494142314458171603065757530231498210303444961466086432779799710224698029913137725632177866009196787504556648803196931376481372629274114784017906304377125175765175301139582566883701107774971047382938251727900412781201124665815717941133220332656973229322186887258390453464147554794782873633259402046734216555193519219310515354988919019988537327848430894170952840381198648325575921797632649819040513514679699177577910513993935051992055784715304196268882891571739285350477463746951052125126693173537223154769277973023265486358443720154705152160623892147629293607109511904242391176109599085561397797887873599228595389567592279997062337410085684898539410373951219998684866134900864192644011369007138974917280263243180739363079780739670844704230982219127042780755346856444052959709732128132590411223014852623764002092939018451456582136879310087830702327140641333081045485184371335671296971771440186055544773641682126545934753168827981225546552228368972882459121742822267065362982731268187801501891445411024611052152576646465698569166930038849966844625682155780744873785296395820031319914566122920885906331196859411686563084216824621170643955270243066386208500118514126478442941396851237176584219074258071648097705220493494123267534097492075167729589493554577391465970642641280670648303234134733073873360744901079994404173969213625284154666264559757602583105664031490626353680051357467328522686628679519306255675386288784387485030439418408351410328659155805493202199688277018563270117069469262308784934261848392755385020234063661020203984303659380217515346881726677140336230268721598086510099531940697654748785385364794321795090469282387889080662641577995923485497686362675295102709909948099138690000144364369976982754174547597149693905025638560489753711730349419947658040431693089256624748622690189881289370080706157551003253509424497642796533498037918925737148224132440244984993273415302639610327321158250596820217725390645884780474248114168414657499683745242333763955301436649159540886790479238301516859633696858649684487205711243115323278600944271202044259081709411587153712850965629064331295219266001242944399690135501940184931355520336534794104061394446167025951071724159791891903346386304987394877935584887784425481855638472532063405612236112117571294100536818394424047114692325705200723417380180221968417931089167054454426731807592058895731703601953701070845544787432535391141096548851137452936768241668304512306493166674654009212823597248923134920000267621929142947162321619222874476736305234489095875515851303493031142728269302689810186984973445838023969920719409496270164665595921545769867600696732270484053320468352463786557653528952938218036135328473250732938437490519598581114592010503418972057307791538978826157546268105046676712377098650153927794790278377221677505966993913618895292707849876327625499967994371417860907625513925824829424677282506539600522394563483333478857632001697540995715909635688267642367146676067682857702107199649398600773599345570810428612870571664056672190509646444917092851745972605303843858985949734266313752933847504740422005466644383617559623358226865599759139338109438733409750380202906079989643393611470403661390413550585482623438635267730567998443802928736598303375188439003331926268471739725996917993731763695453876480993655488359211535438293634004721231643800957361567566108934866452298321455506508961331881669760409935957449800464960108225225223963554011099824451804803773794927795724790058730821952444382169415207120213929068060409690604273832300692943157817320403730737647651367438381008685033901945311735645929639067651739934956559431119350420573898934387881356529227076020648649859801662585815906228007238419879986982978465297306393033038178126348560743364433990984283230707323374761438370089678891057892033084929868818345311530536226245360237550294091765155932757815307209769703222330670628199934718094927105257779918632105863944233233648420767014927337383281122789135096074450269690854605275530996470593067730368739874450585766528063029994785211384735345708381865006534177488616365284266952419832148659188836970713581936413375581542404719262049895225530858010991768204920929178794988779616345905628189974775204348785511992922073315144012902384860637793783604270639360507894016771380640275882350840427535591786940715392095234396518461900614137514901479915689688336362467192476921219778325435570930933562084551688779186245214160171729319413530881696330280873714777901813087470209296052526726716943606981673541668831948273539136032882623226423019042961162677842309838857225427391897216091896497893905391290514512444283310926747309355970759568079170644002655373888940209490709172336627047927049479902503467175644517669416673337635210045446699317449861482266898887883857553041483988042031865480650760159339866407852736170458469312837414820549911990805534315873360208248285350382785849450457874809314310598683107570349435689607239664200590986350643156197724869744665269037908200037197556217685361485307930561080406799646951696933148026952278518326279882392576306747271616441719924597362846895309659368680351584201925691681171571520403602294739498866097433970832610835816695312202760485544386767559197207474725465175168364669395099557599962235010977757942705863259637618980920185378532187013396928075314482392823192313022618262620271654156330026208589313589238512001594003043715470985855513596253847823608057274606255962555857541057143873024853551417999671229712984387373334825855239264113878875621131917568518548771324850138075926156540012147252143150203508488722593085797171347911868100089778459021468041986044440700677194417405009992755970317956802059192734214834913457150435988352318393914997890470334552165337481866583577979157704627228039318902546269809768629918909715449129732911986980284260652726631494466345469785512514941369110833760761927180464344927891872975893354968919327619628357002016190042840598397844455177852633745355590555173829964319804731634561690333456352440659636062374240700949829285746557317913241564157547291921401034624125054056564113786744949749385147504884417535579810088529101920070097191019009436108892444237309380270497894449632000648091619218896114441737809804961109065194292845409629995424856830232727766293771380405324802423647533765230107884827090749156912859512216891863904655674348160130779356430434708120535483571482017636686445009867770738650417290029555556570339837928922320868732504354039449110220452590549947136712850665713916265849714602053530511246272139679846402192590450055085552972871918270507955188150213288132602144238413067440382760494429874231780787909067803061005321568516343629193464129147179465781035933651229969297510040197570282163220665996717137756956504485732983910966372801630215972408307113390908380026101790694797263497338246824967761013549588773837559198784838110755934826795558475798530851020018514727795476627395022542944992109647562919450838042172053655685735636342193941413756018169423347575469948853499954600019666724999101945875057859722129652618703296574632103417855947918916355283290598412405348025729377234964507197837114035189379553981386840212864743733895888396684830668686514772669401189206674628119581106662932794835169808059147387547600809228867127163615151347052827876562830300265799173390645167245026389603578816420417007406271119877215673991565997420341375660812698705515383182272212885543980783288074311681791036118569275623991292245927946120553512907069876770197909513739976901386493413947238794160643783953305751747714929783350250865113176775303596789807490950155357852293395136970713611955075226387548849176088966179626524413937585938455568484137058386472274525465475595370180861333638828886792740014535081453210032642739594298615229177072009796206378522800339358790054697460248564601857587470213629297025081371240350468942783825410398758731439538884984591952814078743218876969634775863430812343772805736762397024198530810995215390410153070078305350783494468720236936383402199012915259214012808768303747336534354777641605794946857866362450228510944240618249103906257350358311068702836813888686864504068454781692697602283646309116278744550297495579951256940298454761699826991461055627909655731354856325053520993130493231654366592086582850528132879064525903291235686350887732395515690973670986133353364659840016329970852041669991221922770382769546327196435541598696628330054691596750258482319006041787679204301800662247662919467076376408074366800050250288436296984359250409876545197914958982102819592546538069791839293104347874047101505764801408767783551891931937130616605336256993308595889652076463682311094705162656852243415317858312886888225051534447775430777735464519231692662342627943973265871185173845579292413359060338872143030232109898983810783060333802135596151233353609675358365992103471172031964068235535012245072861094448684111375854501851705166278402532291847137352107578406161962170061115952056654052212089629049464399480636236048489259751243424103211042345120360044480259732739802234008401387706354186378568473378106734635751925065820732565240912083297851781304778012257414579064733583184509034549587131890314330814416422132065688417835850422516363541748282589196322900303287764690523223432686906236231165549935944548580842727844911836768917393363077517128714626023496049218383827162145991144469558466521624084985801859346684578038255709574656571100564807192338006425941757657626143066564587531418227015112423892846084913769107410058258730076133791142236552266463305860006753739645482399830345864040935871162536610853239404856967732747629875095131296401792684685406511568476078085664815886322816121920392446959670172096125132744359695004190651963491909823322477290819799765136187258541559435715604880645831755638172648122140881258130830124026832054096939619942666064094102397618431833195344045502432793566142430045883994668873173972272655696868701540272128818103140940538416039481503491068170858533895626395303526876903925257314162819254979204385036996191758990097474116895736699117349097071373484048756054231608111676943705135960132482295019929746497346474905690771685600756162735527206206573321787185580308047596329974045087462838252659799551334630191427799928761593033524301116421393955125375640869052649952302349131118335618041759276053234764370678854477310510859401171800472844935519376887663681625112184242813479162510874187325290364172203973064557879446289644406487186291123605637752076442994417561158839611729866700858502989134181664951139559778554578277132251890041369121191839213383412960831609492267408640374793234928322387159647637356477992181738744916984963144019817878403024471325041479536252219525393608736579714785898732494249221072271167498693518270969255406375127538982333552128949072457029428437204996252845756132295747241619592283567417079114981308551478721360837068225090128780487009892489383593248159471035560226866595091364447041481299468998204071547072276346163556507200431522256407749070402807810196196750239418458707056741723448100491122182605773130056365016637543257911089029841593128340757800094740940114005023086915771742127020816964486615962683366324356883264437541933895671546606631286755690185170782054034261958691462305693103971296461434095657290023655435706012898997423269687904577960144080105375093301958337668436195050812622761314462150304533161326844766948602327572058373203041028652751574265512107489569689017809201075592190974204245525333812376986474466332981226733138586923901757695791983553477881902836934708786334976522093579845289970436749349494810030882886300096642844882732107534954488146925876469139752050459891238049522810554072802691850823121625029367790211914761658563682582414085578554640413415887656579449794092211344435868853020617044064678939617313790758278528188929870317392662559960720642559134187547443074394385643315251328429324229399429417954411928459666730723892808210837673703532294876084058815595288411901277516357814735740613995043884070840851896081164335855173250515182188539309292623785838085267297406754271136154595340115643373081947384654239120940664802838827864060889360013327676314890754597543593751843180691170017718048016672168994145727077428360002211650493416849648442090872916267217281306561973612928633872506645766291788649097350192566772755370943560724851286505955473381209121678825931353026070790092001084493882282175495197432068453458031086416265984781043002587818019829340826622632375563761931110080416474962207413902437595543090336866796801995103951083688344137758302602504732887213165426698858089477254668454423099717050344547746991367256766807429440815551259286646838668931315253944541552509794109851751124126194217266298097196277796772387007507209924261227833126017285420622118367076143866412852232988403080388768614084001747920177684968671287920733099059650153234201706513171402685568997599490871531112663260316112180985484449955035402319338181843550594382067484074457911202815917404823106821651878520677432763263159841859319091965410633707523635867179127983657741965732265985066383298680963877858748457891859720822198670165063159896762017142276726412609710265399570433353973211905625269970684292961014941566599710329368287356939805871939093669826324692799535763794364190640906087556259111890374045111985240039426151759968988306596131174577912847748519996864375312536918138274898906173489768785818008118056373559381322891658792652165039341407797732602682494923395984891823933790493965493277108009884830933674750147564658444407222737770424928738831160894596265265678568987997299992988363173309780420481778737884764014143458009714690671454451502185607688150076529325312366403006502749452362418235981704158923577529537842687539316688810377789348130252295375923918946491523518949549865631525015938477836325548714855653684825080188192704989760739300604749459246705060015259646788387510514876318055905887101246970384194265386078465381128345331465548481302299531537435801792068973125068178621738206210218965401371997736151944754567019460220404903103292173768938931311294370528341447791919677429083899147162916356676937420565160179567695704846151333484932249858000856306993714040057998158787709987377057046365781141727868530484451080319030655976323781282996098684670179833475627792810783825575244297304682836389276526383864415039480094505660199212525567622754273220663504877503373670418933679599770825591096133315239296548133214124953072403760789883894282015555903723232694864795326446020667147764183581286381536126539157885585781415930892221576544451707886687173813801473593900165403108712509957720474415718044171455932059840052259686009081310275175498385536875090741224215075788105286646460391382385120162312880929987293895278123645834232192083783286826016617516218069019973561289884245673021648496050841137112927729577912368934247658579942025156020276870456161296493376884055878624763283892210562589805551369443278654245419417828975770219219688828137832186398378672218079721354375983644496627789759083751588398080279514925751516151177944729516446991732193441171444630512373351464829553993671657686940320004250418407021812443748640869022065891030436957921298564291412248299254387880240681870810686436592917548357268559757687375629466875471774575508662259606267435501330361011130792228780353369312812871265974855213285900117250971394905451272557347644614735255200377558844034960945113910601194929678112527534542871411713470631153546367354800522387047336247926388103117119420430266105707044164024260182147012542243240046435366823616652900444728124561821369210061415997168051738352611136136793781598976210275800717067722695855182538855997307746457233238229136988233998549601208620806638286220220399093684705675859873910313142360058498948745579700996751407014251883033504272769006600685837075143633324441416870437638932300900565027853313352762166448797662777005090648997843693173494094316128638966753257922751945134899716276896958191989644292310869184783160193169847347056147372509204269393771845118316240540772499998313801321773275476215562829055182161136546692072430434584662639815243250246831201165813510517802470338915717515574981255294843485291126177235694036035401586946818610367183684567301214222740765105745587964231981586003489747307023585913333656911229045862882346349101087516649191361117910691538159244386045045093130111429830329314977280004807487885806693434715404544007848063733809777054053879051998130785127128600200506570803946641972625380740978153099124479785719950116256146388163156915486486142326899251178520656587888524317170304786710773033994214280977826796515874760564418773613690577679911930416615349331663096987849867096297640929422583006546717867230677441489511100880180527029792928270686510382638383256021934502352523241400753349714150594604558891087993427419794454584613753629631310148975514325289558156154405866662970985591877001849111129467573003448588074491123967852204007035736271922774234292295104836417748625943232901713948507880674117606602344040078666643282483284050242266611039690726327880479510308412842850223061448985026441126187785334404513914361796259201950912779608083303318201380396804483222119765574150202703574590430998938509849106491048791543785211700020788759106056741159927540824896887496851512098109635582284847656960526550403996388476045973234792468745878431639627875567424072596136909538549695473985930276849429059803558074165872027475328720218817382903927919921964356838381033013280364645683577138276549671112496537980825047463960346644567245283070432057689961991235217458238083366022100113653053352165211278458351079581853203531284565002227468811460101756195973587730835906107454398711150421684542597644850359452479195890514653704342416055258474166201262546936865816516422803940387773412854870244913261747120961537756149265411896881658888514773661753468093052534706173139308877380849473077405565318762375544538906069463023012516273776143862071712840688744562691278506979188008937699506733300405168445108452307662248430349734172384726501794802128637027527368575228048807297014718113471147701147028545580949468998417194944385390990048731184553937565910426997961057602367084609515292966670773459060361603454558437806585064588602905971088499216777364176851261830247206427413436138503870105844728047933646863599060380383668373946527640898695919378158527515102487430051659287119090965626207907127618299802056762886860185265964154213664283716133579446843486085941800198918364156922059529899798166301640326057612549952082354950107159885219339594017608460004802812408692288527735913963881457433738566412400502360673685930258692570705244969749963071038471877242460856355972212977876234773952636362088913678984647872675614995121210280779300447052169097767393966533295894044391574045226554070628061288575615325199456398271049578887132002918726310522005250967758965775738514748480146525330914770140660323154742982720474109745477414221629169572230510970076665479686274203224428818896183106854938085882159884021494018885095614174049780446207868431044767072802258471257395005801733515058870315439381900178946775113800750831067232155034531164163304540524990619732521639732962098987464607126108169592451969108743816174739992008946661765248143214060249024014409494653121411704765407237087755136187519987446248618478981264354312017263363325395359546095855894251699753880872772690077033856165758121256159659905036364603097892541329336633508745627480020104585690337598275631224630076174427561114618489637676902841191980104523007899426640567030676778041651909451082719778689098843364869758048046764942014262596800520743143185186561328893628815810868744859185253889950024827524051297699207923172141927674386349076188961878320068578406651541105141868779406997688308804331907242408669705722491149027049967125358484149203895240433433395801296776188345612345036963734407962259130122778219088966335569448654463215547568569830968598320633821871223409281663027777133007630743232648278239174645610876436536531959611631858174505994275318070637362807084092877713110719596816741533620041696833790238479177529395744721971533536678005332467544410442803406583863050179328460898242740653393927403465529433268739898650822851510621290506868615893585698148371215694848836172250644047993189539435521892963056753107293223005591252535035393746434639216768266945139286961104225124779809143219732125791846820283410284286898545597129688670217748966988417654085030087487178069374975100090185987900256725799248335331538520988017064072043618268804634222036693566847695793595126234323545586798816697011025851286655642303062897472496798485974028513494642274221406457663961565332676189023526843397735357599977361971774276856348069184958787327074508464785492693065196784677215757594105635781657480585496767708630639947178367924543642992033983777914145761376535610541270426937063061721020757626546795903289845469785526598352634117527584045347478899452559288022355575839590052756561768069186619710325551899336681888208357045734230704091734490805138866373895767755979888241133358945066790670678130199064301125345104657765190388865060311986652063926485065891373760370834984640741828936344935925344327211753005030900142566097008319592257527162672426794545459208119031335162853701026764646462243075620866201550381107119277538195309686335367993891280973202577125138025098978664822062140310730870229325493598564837847223092891143907430368268640558726247187949306828717941692642465617148821005453723058284145089412030738132581613493071945108324798060455690833066430974111979665107864828626318514197286136137790638418280501515575739248680153814623914907197811655911853965656597010472660875592343433381883935965099375614364376577731924582059217974507396265189030314721868923400979697991837860452891103149264679777656419502166376679419569758640855191134201384854954246429890517065330332727094731549860841908723577373539757461642699570689103788366406450557266360728499137264286615916659839489073317719631276179328553602242317316306233830139571576873718811686250696650188188920956329431982713398849674832261432091112732257226661198671979623593895089186531997961713550891472681745940924562923968614471676606885931852459019389550347289091003061911931152834979420598236456785618808941058409585523194177008465858548901816373849589548800662834876238760869659635205792109952096602349383157838421715787383323864936819602729673954946958690302974975084313685470774630741567702499896411230179198664008815206991282852278500874293506850182519345463119640344709509998085899161654075008528880770927531023877953483373566032402466263789376183325428924102787242885694582379113905482330285841152419201666466978797417615995768924073047981905300355870641784738598983231365041967624080575318496948913867332370042088727772410631956840375942902288250520409743674887651207295267191569631235299527681395818124818601958873690264570830712487314623671405651274519186074045822606024626401815828513468122928069961644495955992624040850190195787186519532594661744949776648987272605662900253643920553074614616267817280690403334550637811992679917639950244627281311607768822016746223874212450209130916127761905720432196927733234415707436592531137500238428170714519064654849401924429184143857073479144923214016366477303580644337685539956143913868346616797317626723405192365606376803686063914656192873367069324020742383423148066652218147032056791436367958916539462255075887076311848343178633870811604520497163696630121736449229597162698954843964187176145789686573559947836237170751287636369745954182015868198880883283871247617471595446509481254287775545480414044657294733032739749244298551788942762287781452930607370905226156880102455936976720700545856005236434748987034137720004793936467550666669160896812056555697730476306394558474901387966195968398350518993025851803285131695442685357669228617938576995445214910874781584013410309698848738249213982158626453462016136814264834854562256352459192661325005858723091866596380392292050609017228057790199013126134512785614646173815940310123772808314462306443890906355582816470834237344051626119050452866103753819779778879109961355072175673860438853977129451568596282631736153818022634478678518859571776852789866354937265274523684884545023149599324327719482262313343808940288563217983856704812447075573066911195239074343541346029314285014389405298975587872396693656254969994874045248068998381089505897567294472543860875363047991759904928295479385543988173684977121744297639545397768752335103146680144632984468066977965904357800653219206696520054157487839799423841653425335846235732327641300496080136460858931997602711038049595018982223398195742671203898791410138264280569999090772747113224559524336895720603374990348616766658237416998810643641075241600539916822554101909610164549443892430409906862168445660175691209110913822033755224802354467222703730393444966393483956419910856020971377052748647915964163984154736710751427736673352523831557485012619782214938789468708311729856497499419832892923549505632878398196109828369117317155015833949531327187120876871332720062732459898590339760187512339734343557992895266066533328013630073187961166767579711908585337119799226507050544718379246985860766268213469716332407797882323851270031997475359451912431394020248712772116327333373880067400171954617391410455086963046158450704329057335859922709631688023979321366661965352810356345563246223137206630906994515955967418502862700428571492935812528955438063632877127357946543731441222144605195664286902274514095015840116267321474074344222044023392737359708451415784606499224320230529944627274450299825315101341265444769762207434002812463042506114839806373028236316650490030344682751710303031297686992556169685913453117520647257668783318679238373731231787469364243037178883102701059423887394065472069502351361708719717987078178261335429247155189593045711556889154556333643364298369623753364911082270145849578556980993812284758038792198509039866387815145128950940564250326123440345899446949327804003111587659647708076668195377154831454491882540716095853850565174043918998835992141653479967929845298376840008288147542856462847915759634781172188427561308347519522027875438047711500153168592784648907901145161148818041916800815640256542786784783495657058908045374557051002598222693560642824884315814848133888083971642811015556186632866655535404226979538042900416968051041016403747765492630884290454741879550510963793882708844446831462181417374558682066218251892986029074631698901231868275401447021002022742433589499758727370289335371440138001378812381885049034351486458978142845602715798011532296436573602082273630571972014046340986670397229984167403187499215188146650479056268461428081631608267590622444355705215650083028202380072967780791140985081585583570742945507362083497365499620008202829618193284648744934510613741025635005463009901041996729761904477505754178481309968242161920313903106405538342995432236883433338212567120389879495573510238266616699289734207128405637168351931945711895758699258648361567585661711213373111103441496629522219747830878415598832647011947707207298153171243882736796172170988491304916926504911862049666884767767653242145715809339951164870091048977181952968915768394751825492115799417337002890414427315720186887891461533606319626681432020104568496128260682919937766763661269979804616344828567912458910826269961528200383547840400254163607341439584172778538509656090059218073814439339488002618846668883173894843110919611860235200819607451605081695007361397670423487526989603981413224415690910010239433196649125898447971694577798080843476414647683553494319212580014014842255504407593839526468075863688946432640450814982248105423256823854940121065282122005242827349669837594063851990200499321169245065765626855718056631029261005660089739574682920503847475261918878424756225536668971004810538007947731798122749657960841366945819951371120954784715071945316163002769993896760666736101012103009010085327115050916597749563780336154035653693526189375680138352949695696976077567231830207173567058465502384998888919802953338763101557468550307432417129241552443083179772289832902544168795321865620216092690550031927067992941380137960913544288298446029925933289117592152063642482485125440310409112707414907855363853837689598454645674029966405412371552855775563766795996381218833293869684173013080770212705745718850689889543813737301280033500509611462517207985542266970768329012809484359878416554372786780514408291671105444410741606222802102001415453361207398083614148400963608044104120070157694916824560635160613908745369766882666060365251191756156085497889975518212788668237742770360703192041106014269878782535527823811616885649634977646487699861937700594633134395991452490107737570835551934915213930412006489646380016815254012745613945626214059694167650894791025207718397233212337970283196262545843420370000740619058817942163345981819727839025335202206935153972856358673133205679787882296745357382762539038334865065908369104142621628494342340114446779344295552254320783852382107233154643002884750995523936165026791125390637754707617226901585771344186782368868679489288067330227388572846339726005386032554272735766623104235573924435500748542866544493698633256815313890741036378655873879285768055459284094313385585015575984106280269452400101195832559060575510296236342398256935533988675850772616770605195118055080375354120375250714245384351161911458845047099884940460301016261344526982740583608882781890082832255114335401449746621033421909263705924842106933631010650248842509672983341189921775420916400395706264653474215681255417196458209219674684611860102245479473963263007175605801164383934068905396817809840305367606324129767376524000833940827678095902942713911358938885873674610901687304882313664366434839572180667340371170236780801232243103921207108610406514236848719969011214957338962427068059442603149483205611546876557379454708649994233472165789595999648172846823691360717443811797711632612156929554766543919557207963518693555565053407978724933050587578552926326985222962194908519181067351009176474182005039802905336816527954927198557742316986684730195889104032516661611078151778156377482664331898224937047009341962645607980356574516341396241236901907903218163929918512671211259890647108632586511013400478495197177098421404605238282094721072153286592079458552647565459121360803776953360296625089546130374718379746466600893401752311622376239340770038228933987950659085804242975729855677369234578003181675682873846749137092033484950605249203282767387461898923469439042896997018241002647011668322919528001693375510271597913342121551965115959967606167329501657853426410687251727755588971764623099622024874820332548924810489756696926626201557402728333785727616159969069335062020428315332694238079208074118686497831103265387398120768714270534576442962569739565750645050586776287547276681312748976299461266227790207906166982301267191207416370854318473504086711212569663552172179649335005015721943760095297356638283283394420294517132038329844347053173730909210193362151641831621705342095292779094885443189022647211276938425682789019217748249849203772379320546935354824108463126665658349553760405684805258362455150034429905211242386296980645370876256330130846785835404211062514581165331784925464447418927154764616600702762734903473910628696531789861787599558147934913657690848940805113194000943523878910918399714989781278354583391270443586551078331885142440776778589745080611050723171814362145127620751669553404972730681705470900753045207545531958178622284165418910799965978761809227201275380663650423236406536799350118080646254663456428290734694742551293326655266125140608355677071095638439238090596481501119133031360912139096633593005787491604770286856739034268500824844382381770923584213249115576046344998138487430449516118232274914265375979317311371003470108535138120783508355364672350066986441611803914208926315888009147625887926983721778682951742779058512647061011262658136869397181773455635688300758489381795811170863434040381587762234056455762475615496016949161563497705489080516092884183137134167605433956719606389515272629080941891794197540711424709505958236532796201636044525327943735723756197951386377898196181237891007508986412783069879703380066387534763410561221493661665406737667664831048840243854995520166403567694932517372767201120011056494005933608856594037671184665413928313883534052953197438405891513923016645259217179541553175705237579294854557543932603803459380306596300591138358598214969490942551964903829819439177822048814424671175692150444993922363603881274439032982585950725998609478721129813339339978502926876167845334914888529299054959331429938052549300804239713156961265890618876846500155561458628093506909095978814823259100776262277154584322712989521362022781812761546483135971779511123778516064001887334101035620075740164336799761843644945270701556512790854652374970828380076873821553811919928252640023332876759167122001495485790869414231405903442725415818929770110298177272770100340526828920513838769868739603303949141052644052216331104651799259058621723093671405386187785936778409372728682379857629597063032415642003621188121204179487438862363954652178385728018354654785411259305798694922532408941828036261757431265832657877585567573898053050724866698450640481357086906003312915914643797472943652599201784990176580391411420763989694951230332894848552270885977547870552704055232629051841741682422254255011474256080983829899000001354798124608439084008978376655095818699550072351616405299588912328217407465490818041044566913785893938794744009373457934077137192307154734687337578557703629465512579298657940379200814172256314972615739736452674266603803590272090926640902994770369498234750572011930906491718771762036002565749020930228195839473027969493287328513753390015145767067339428779379592036524618739489553304208203917889586072094238583534580148734609950470141808061793249696273400517883492100113409869090578731074928889809124252628525455124220341006455873078619291394200836772056011119266955101446478330874034040687442743813387453022002300970242575013465832951574214701942711579654529275647992715540667485488870628649640283747133805150440812407569490763770766200163950562930208643352474007648476773442899449376987356117890868598321490674102616748303793313694970967801023185803690819039885540674472597793694636598373624393826339726035855204240191562210826153140843543023289159885534857510632308454924817860217945915619770280069066527257128951773201440692004477841677869445352716526809294614788206831593308001240033740844782288937179756312358726064903956814975790646626460056583592283947702495734492973208174167594646800114415792546191025398045301690699829302255702491624012056234579845276280606956062517629420129427977880342592948115259151007845895143162867622581931512726661880093044626620532086971373282942691439021393329275948545815356205941596102051427281292474468281851752823233923774273670940033516197239189096804682687510814961430163515398514960278376457476231466265980467456671012387655619786208764185229128089158975303101054992261436706438064380368765426734180171126121463122003436057840008173158050241351687968692996133531363242516786035232977820108221404479559135338666213730900523737499299438877805836873581411994985587283051987873815975679454561712691141246054332371106249275695911027815463859627904007237842075361305474887552747193500025970380198481387148123297179508698977905555822159701388103302768148703605820738848040600675355799093528802351959604338338357111406857614986004609086579036294039797012922786308168130798795845431251813935654214141286784000997466483300928556319007052927508478985174898504410014024743933539499345077801728930948586702606071014257084494960301062373943489304067683787527816554501008838235409696106332404684794802667565353771528736604900619117432694374415559147380136358225617905987661750340019371876264876379603316192290595823141232815648783126916840125624500562172973000937254085758566309369048103743705302090213635979312600447830684566107488635439094850326735785105740529340383237047729590281578145080198128547120841083883173269947152063262669770032786645845268183314435099758874697764549399824963015001132939621541816356763238380042444453899117862888654270108019707588293099583313831904873028150727372240751333897760736962549874451173478621337511393913907012962100791963541224489511495621861824407856006117522209854381058311391256810722366240429472077859973599087214982875532719443967621550138174293973716805188341501616199115996794713634862367350765681613725031403562519009069061932433597854115152616588666277387352800014279553711153723952283069856956659648638035870627054742595345488716192982729265218067974525362713280409270927283397492957665065830840465710436819303809067950269230956306507281911966471812659784651063488113768253419130834764822307039892710071274328161532459742418510170879954254564531183529817200958788492509152549819542537735279005804545561916184840307994402523750369484351631204600086492212214231359915579360064033095296643662020183714641849598686910075565724813138163239680534422023780796630018389100576233337739669123236091105840818808527214527056637438376697445770285606902623410266495069084413405354010935096135630079420133680337392585721876865992977803424327238015615662276792637805224941150127662736338422245634617745936376168748920040730322104793514837944620154341522940518231591341946424411947905882733440986039484154850197101180602003176378520295826206060685643476942404490756589073835981934573896922544161263775619073860736553170095681780958255568638412440338111649583287780123871926284234881488617942839432534112283360027718427264994512710508626268809530014205866298182393717991413172673289017702551624270100337544737232169635983454425954356191284490980605912178376101257814690175689466197846349114822274292171331275728300713309478436476094405714311203911957950257873166239805122287057873713954215041480955192221459990677647727863884626101999517831005887366624900584949642085532367956180977371233503771601494745455573911671587120676171023135841801709022257256971086999431169511117975840385620275533910907160475229719066071262601732723207642893750128489584019995785198093818967414198769326015270936766125644310910038231974563106341566225889778195278495471266481613348515680101291856284579874682394109951193628443995423868916567197751135555908300280564740734156162917523422895695143613665212793094211579776523112083769046955171678047196307475568543076725992922272581871435699236753905369937226658628638800796091618377813893293446951826086696676875721226876396932572059326582079848046522907953980238763971458149914422830905339469825548504978607310394889922846026732697844234991615877162212119228389245692385458646389518218569263621333484349511432156379262045612505437873176289911937297892405548476594554383540671695669586716159411991689064951148485284401091349338154673111901325392851516783359883410374936322532449252458135696780948137464966491353851988067981147213791961642684016506109785549511615296037494216099885006008424085001694830477172577834308680203788644266044826653392557501617836011463672395962261273919728361239305400846815310883810336384289804385111615743566637203314799936942630702062290971211478463160000212234023043310002414792001694654543596184128818355008160933353101868573451962267209180621304419359368779317101634758122232785383209488217527953538827195966780380040796268945678168328335546663241530535035876203055865946911285011728814284587481832992596536613077537042798318387350826199030340664353797249013060849602232446557057818698169907289177508698209606587522558622486496765988733708692443698523286659071161344230542563311777961747129318944695997313360722717456599442534131672531706065106107479026894233016143886439046337948038822771279173056045095011723237751735433243186158738357536821550621659562734493689852699677320950995187977928766995390641710979537182438190907320991567620814693383779127747520423592937647437687203439546018191233137043263779570614447801563982706648794246700026302180654235544318005368025617735643860054165740400912403854328107078571135481848613688704134665516946771153947285633606655276837180324734969882564855189002346476937492803341572786413757399268850605112431843437830434398041228918598163148043162019055663027794054509945011540814136432308365174856907980995171284127357973446727920857822385823084718656445305716202870214189011118557727007144645026911132937992178825705949337625868892245622796269542388354430984172559901311891506007708211019197626557090426751014441080311191786936556494163028544973480663139121781509773568312804326964540485002190464261392913291714753334795496971186988381848322218393611617247477763433918980459893534309091886190541946370521396871016181482531288331366857204067020502487382461070727886179411376861512418308248100170109736745627014592977281001105071020522563421154096131702005002479132472505135084590347180617770459053399926986870618780913697236992290189532759052265190263777091600742288666624483185623279546907959892722926811741056085604548282881535814124144001168035208987104178291081919216783735860800977262054842075201845323292045545062238768896728422896850584228209292627686552397930551774126851893270794031735192671440191254724751820714602049440988579868476742460508949706616788020440330604518404617674034962327675092191353916875195053517997692127865680323456840856890890829356808489673831468048169210510980342816240627911592869747090349261839583015709080095045770277414443717087994278608182123928790835585513549649434779586621205301655829668090701644214184474530633435250046246980198314752525765811392110220165835554733449956587798429054902310509880246044604748430900947864715082389764950387572456476288993804704757480321689677863924173681720264712356689918843115138044357539964108984880453220824266856802253283009649307097811037942113854320084342842535612041810688706903500775995107779471818905576913006504579104857684220042947406559020296196316876163211309038966620141968339292867052268940726081361573222668846225260756425416528517755887043829638997768078362596262533100905431151690638170639151683681509660989871258581500720654993886184224691972988006614860963208374800061636719114081251830300987219213217702443675421250463034018964469573500870621389974866708210012081631739869447435819768077984251016733097294842233036055483668311128980671574011394584652225455769110395883153526429605444461457623360512212395316688260731782672153751590776298546057054236009821391404832493338733489386422664354075874975540176695090570369421745934550700995765534463757551131983421474503225848920737386413420143141223490596842698508396264994564013427378996131672294036264394309442883418181694244873724531677654488637173708353430558101892789130261343050329543062529965734707679387363627187266109388500083535627605800574243303171713779465138043245787486803059928285484038407262552942322624792805076882977932633630432338174645911563800374242495708601934882994005522152574299462874925212860229425961085418183887614307759506416014733749351512336288983820723355750123167249059305336356371352122479215629360242599069762272891962189538256617905237134199680556842539672574176870889154499568413955379915067959668149598863546530724824256971438109211798083084925030831410891829401151668745464527160956717022654865843502542051663644921600768594687936210409941129168689240735867310839903269342468992456722427320726398052704595153233554527140153008489790264497157506214059838438335581710210441929845613286394987697321301156994680425904661350474233973447081456704002606300164808009781645707731974152383638004274893871810117992354211948789999995390194840088561177323985480092773747901592119537131972824530213287080254180854665780803458733524350240315746149228730828919096706489756362639376798674864351832033677382368757582857345019898788616494504072160467698908346082660794922353033933638494686976542207489086821661194525190233176175411781313570022874237643014363666525706626869711508936202514518905712598380631074964662596950029308515958357696616074818338680747817932288504730059621452130340281716996066259598394858546634118476856583248792055301967368826370261913391215467194232066435850172509952002375017755191651376974603698426614263701577440878040226543308195111839201914119526679222920921561498661774207297450319468169995773505385374545145541334381699536143619693601990553093019284243824372167811464158851445319127322502339825836770119519808923867979982890729109814488439126853300548429083831594315694896473338659321727039050772521463168514579606589077316754943154435468190773759618179359193639747001000568652846002555074547835006061882935261858820980705516901500307135236982326391122449251018440578433099741518300320814641483351799357982268201875555565227516515413831407940204487034595993852659825602603669924762060166686830744394204531609239167603011297780858904803089787696892256333953651649760294302858810939156312657910483118702662535437336194782256455118344494640163165485293167869948591967945260848816964451813813279843098522192655862604104079352132056567058859983906444332324768986569826253490316701661850479658859480028042794132557501377316448961775715744323242643798866017293381728920481947445945375865832853482139890990247542646435210040830348725447090631944580865327426874994138557214322762351443905886189426304122219353205965810509735643297913657423867040063520698988721235591668769467623443833429662176111511024949455524805439652467968597983274671900633167209514147743916270017052836552823590589808193726787831684902213436044161796569830758819206796826271996585401913317210878682357263727483398817764549012382853426860910517561636497720049931541485918218374732567641686123012979252914492253414607147216845622685745687610043826955923413378637255449736931733764328715380740600610470224593489708115562464421105770527256053317714788703308471069550276952789931913266812328421596916349306418177945081471890935990416337268386057184627121350989759840038149716331635452711314966381536565036767670467091933030794059841787379563695913112086350731977476753877278755963585750091580666476658932092570331474553119147390365332709861489914860304723980260928482051077447868031839910072909554956332191461446307617616222716888577143621466212977503730166819921683115074155222388502679869860344788487920142526736466241683177265720137115538598283855466877848677225479144728176258599366323744847298985104954982212259024487150229541707106836946088832339855244632395708034300428200791457281514202021737764720120013851622202354050411929678396455435960552984154134208539133784917019832904403325874460079460832636929069779700989982018590381393607484274515880781022136718687015029436524442749643828310309022943549345478985952113043593722451853126226156551909846346444202280304427244098984237040026889396156105887881868593771546266157156728468530539631148803349207086875984249393836016456858744211252184951825323083949498115975867329569747620930224016107363103428038186898160333112516488215922254382980586752223226083140641929784328324373659612090716326601874491995775154011424180795716236302540511510077846656001955232429866091964098350257035104685984184388127677826330481194485314698406050847081447394234819521631483524524170317460924611051706505540305773998796941096328249546095789699928888343420269245191236435601104442628507827871265527148886995392646529508928255108512368634684883597001047678168978633038098980715816702353271958035350581042692785314945576562336887268385837178229698143536495274515729051807109054739152347458465051048086774990711783977585565596179225700136605988246867594369257780420605068052275141251860968026459196701734281328596715001820541870900072707500636999250950413513336016637967674418882438464862937282478938126903054098763152598507595809747092051362194644726329461166925965225464841326673462309241672375446562392042504430559850680747066195361225305205106520613493593443594945052627450406410794527350180982816708889086564923421650632138232800773945994511698482694661652944593257273232563348035117043154232003797608127991569309185050492630916167017604409949642303521733108077820763110331705729524578178005714743484865449477265334640664922586489640935436649907858376602089898662865931605394467814532883124623337446415534634380976764161324570238570352022779486327701687870518844254916432975516923918062029685473236166822402068173975259171667399885270453464421095547900832337748176942200997040098627906063100488615205637783460441740677424463783962783638341382385141555605297519541609186881766408189335737893278621746714377541792725641643469473551041397872849625101013992144364919302232011785766798584830771037267404132601757921307637607141399677612838715582858817828935896553244016167076357936211404095934875487656999179422879596311611871575055949785519729524243915421441034103537019957192913157600665045080984490768874861566810788505860825250628975085622085629977307106470037257274876101945171574198709546643193652065063252643905455822098958290734223902411070758763292287834827114599860817159290236288698821438895511228275728621722416458722614079240695968427348369444316446308409519775009931015961594570704723396813987776370455818323728155473101708923992998510043071804821016278588671570219399877704461676974885360307859876634888841053730761569167552029358413903862355392437538559120335119751600881058287815309350972034786166555797353864616048398370560935295181877371823692908628952247519482941055356301217140577450989758009737852087265348575647511187765109764424263502118696396469516847992235944277091950382445262185586675888611725604003690356584637801419218573774642442495511050627048729204952970604124858303277314343133842163118831419081408081893757051595937241378514620527714286119981546557488955805105567683659265323204485551595245500104723707036546634973782243221954597757785191885634141789216956006611235373345808557212576347006651938909348768120649494832573069247085541962912595487674824142112442190153697060760245023786390398939390606357776837055849099141158394619711774406747737072789284511230227475610134228733432534833723554823764272242840186475371970437412765194099809360467722303400683319964003288085379051449817642411176750310124097405220329457068214708408238194420869513611736060183485666173040971195619490028702526199170253248759123492518467024145550777747303063902337193266417351073652286994140612323596437959220821383730013389489932575159660885283295426420105851356769967752274575671174467094600587264549812964673594188093790899307226010557714626242755820084678147623521178388020682464138922646120727158209418496651694046059183429697067810363459641872397032154034365949847789169471181039548107238975621873148436170298720180169971851867770121782713139459142478793325296119813602592422576871881019287410325094316573972340741654545410260154674883914695907106171963786397239840052666588696723997403148604885387587231630587131330362948115976496137563788318141551655181097386705678246524073785401168307132377470775341257596590671132841500639307101478834371497427034881329999693271231642919581104827858727695583347607296025061010081911756648743381992043404555774261637962035895991122918946037453230774167227702501649454056699296199561283192623302864862886399237064257661837241321649102562401105045010180612831122808052179861311616689526445138235560439312676613155036138584630603467151989368433770681673367523481884615383232396675910903144262210732171475682777951886576786733954767572622456626693480448449729551990112785712282195727319102256392567024560234460064548577648517867554740710235294033663446471046081033479623150032892880800759391961422997380973331589518329206322284717399932326688424144303732945210107472918104327239083113968656099520741632737242988023430782218864971763092177449962192006664633123932681061392816559148106501540634911722516693637538840775851078385233574883596466767806228162548502149332202024461961541636588857293763930223886331020098717538168390067503328153553727014248387670233763024317179249047694437573538776763929436372351460990027387912136024865867395645648368437557840649293507999781230580299932991748499430246274138957940827629173137604617176541196298914991872408263251731382633593267918422624106464567342763871584299514622493536046846665676561018550876368893942760775823985257729692480739208904499349786471735188832237091348919857019422014165246554890107788257516571774719025925516868410036688679745955752893790966200922674161320066391351309818310105186014420241085751818968121857712887187602750908052188519420173956608648741692509634170033934036417279400212165129713159886957119518463099934915005081004270379480311413079821710710085969368328452673335456844195033013224843069207848355071151013056457372703591067362711899353416073709286535046664109869648634046182514145555779240685391089397638966608068512460502498724540912599471599587388357455457514249814650025913811161740811495530174292296072427704083018646491752085202451309881407615885868740435320090005065619252444456704410436904672438238830086594798129396221433986588789948088621226187543706202074151215556230751724649523094358432674502731082921267306142511371674922163230811480760597641265963521610644652572977776834199869709065264973612548939698709308885774747804592359149481840506423256154868260823951003895545693365695698046023921386634806487039471364497064658853790371032691938952996050463815734317668907506754434482569567999787330438801374589708927601864747016026793838918027299235506818672387892296958948579089189563833844643044605987051040903618494115012536126069537063964089976454051683527588451597891507075071272475706150612478182774151296444238534936187739618713049030078070829625859806385606795727240553478239841432576733710972723049496376629328386621533529195674033521341688128990392687423398143812825439541487469604470830453629992803686177081973252699787490145064969429830657063960788523565402300833081543369218362174001830310793452003364534117225024618791848765984886973859401231965570105028237105391472034651938731605311838968724177797214912051699675789843519918417089096432162150371260727198000909875176025282416790991667466961608994575603809169685969378056511203069387018648661728276409989573057525629943437784964941685097580277166503163344958214419945534403665154611947718502876265978117916907618057482519613704890586115295560682763970136896507965522491110949643330010978416170756569598393208563052993041951394446542352799891412871785534875128095331742730028234335398894602066942659305056230098971006464269709027065832553206254055051014901781646734269533471073884110974727968099761559186833688319135657564073598967871313517811847217150437089694095645491438144303011366953767217181362647617738286465794113024537729039995857672936657865174873039953599294046078084315728665175296070706854913383564042314022375818883448111006438188562422213248158939693304051803813649219284640581535780517624823936119877307600476221234087899898670077679143700672189859013580030802052114852345402573190715978527828565541533452800532048058373601738237055431453026507922516709786444879501922515336505390673162896689118496514986375415511064325979740092410828970929688952100754936819797178656851630472153749498117241507313096993395850314683491666622121962414977824682706439484471594988393713969658144902402860116224956215975782356660139799264712946161988427288923753058422985542414860845710979270331453656873841464333204889201459859731533054354767588769528367808463312208099603835034968781908707164620410591662660437282458978485818076787532172278998838611316018088510866542488619539653396288932093745801169977467107974922278832262671032773891118065440177224903276208756871545795303701644884365518270826008712376851019009096265281875214059767209778211428150363435240502222222734183334681211264893973865222668477308673321939265902764318202526477132554082016833521440473614657224689522534781259945681021388744470419218393797033593718180624379438162356075114739878394035337618307234610079241233316028567538565824535057912660451062580511085158070679363793399627902300457925054329252237526112549148510943421154317167672470231730693127515251821646424671272661190521053578331405668409966985567356709847412570749747291985323097936981573846127798883022781354538540178543028099876843643479047890103126177667093373555265239231280010107650692666500887368624529165361699106097709989964654541671624191220086140666142682090519802929795150092515254810886440251040718173762665017779847136155477746697074666233627208873179129593330462400056642940296783782919124057624223054316050591845554918013926557998498277722238512008076174590843915165808404316999781664534477366315069106133146529600110187169158291497285136297294805121742746166230093794342663737354096814404068768735605140427142224969762939598878818111461625666577841343648163172479907734125611749413451072528526093676940788044894959757995017505289755346321567081854340464899849952655662505888552971741351113547519674831277858650402874299475946098809537510823465055774175188912114428650443707625205190463965451363324330335308225826813569265837642792199146922003635660441821873325473976781340302876818130625065199647518461997332490516247810912449749004683688181313944379411383486662744105243887914413913984373011234816036798746674731151730561453057861386347557354175346691961458839209646825249491786037783596044489288477925418044691934284990458131863497966268728480919998711265213424872583887335099212688731559548852566801110226891759395350939199783746979388738625822637838924058560277553240389361798999564152460051642739500988707742252713838769290478571847078049563629672152215654791538849081751529829586433215927029458923451769463368917456574178453567119973894635356440180875271767908572707219009811326184491099265315977867938821129392983179536093623968252234926359181198102402776341481456514525336691544142523355990026449750634660959253276944265161712770394820206965618375614041364635854673994490609270575895419967085229780071101264161954394670917696602850455726949540154825802846447432687698013422064961667980521645545696273136907721969474164675468286843944017721883375392602191704865872873252757343192127771334930855301880480142622647529571517265217448642920675802058160483287582713901882383624940884317521381073574648380320581773229040795752757349072343764862565653442707436670839461479680332767389286247536162666427208621979701906716594378184206369624367602127955083759682232604251166959272237636654267762022446582609467091106597611872007496122298150520499873993707933737316215608478469574532833285955643450534889519075485155608340832422387090089985040161863061073841861722020195485843586332168715389971652750038704281940857294125935824862644988064097165911191166933749190454258296232862146019625169827660033285052228629577360517652277908891931821080848503745307351939428430018021059900125875898378630074311688923138297594106374060597336720207509042134257173756418590576681283058339963026673119459710610100545102478959631557363533838040611721685372977159425327616085935044185766785398458835415501575121473270379297090193846591248368282818751918266101641663178002120351473313087645574801222885442062795799710906319704748815942362303093705497831407881705008206466233418697031137824662401898055957489527495927194321861804968045285422021407951083126038472001796978500593655931357606425771457213368828125819866103629108021360498391758975906691015697967695367682876777888164982286735768075676808066274586908321615113068567637065899061981734932594522001539134057686628116543725405355864259212512292120869477728938079956666120342599678248765595688812448921796523796763249284004425748204481210171903955006801032984287905353371986103676347417351027407803973478492980652094828983438280081078636890745813906524660110138307204661458249590721333585152442720920964572718798694603835456080815501549557615966949287446455966920935580339317072189761772269151489017363781040718452042095015103251621898380629702144623031571066606277229422001635523338485533028212608265574715004143998580150416351886514180089249204824294105669000618590955548906363205192405251399933815647797962336337067063089115991491625123490873828342686475415808218997768749417658055984983902378770508585515335355771206046302061376982751489800929753759479517295143836424208939010990172783887631424693649278404151502913529281369050083501399233908416298983040459710849529673654345679329525377205427897731012213040257899695766700041597237738183408349942307816123768528328721064695454689514180503078036456652968534161633398437874567523938552874412114657143247209891598201925659046788520943952068430932499756565433683151617760044034002988921726169074038999181377571631746697890022813898401841500908915240063208921336636255465858186040934170484698613539881784835166240218744278006874415412280765999971648664436093256329087376223236959804789653289549205782454744951023037031030254163186390295093942216003992379466147910946388785067228212327962947061966908466141210588650968742470129095193476981591757757970939362188922641245259812934434109280900294042722177942381274616493993562119239214155986845428542637552518609885685052043752860237094146018558799814306710543471708752271028887326259237765728838025830684239760511932734452452335225085294135885779129703211946016599751346704759143916875234276462945196559709283646621149892276977941112148851659715516771780589932874177980839590445037121087715275973457797012376812188909683873141032740610294487376740294229241737851510717174065345405139316168757267167282193252230193770368271680562111557245288817927107411975804704435363741924072018732568853437395559466311879610797515502199944700991985996371935148316564974194449883859797393081731268556287238901350054654013116326889276982723382778824580623523186955530308070894770852064322680726732086145866164856085899168578286038694863426471547658572601824948917340399186189366381751573307087590930059542757439162660328552605306116032647952042423674468773585886685731959412707627411448754826005713607017184326099947408526263623658968457060213460004130892262874429481582686831899245896454124910470769086432104395325699506205885410027103192179810030567612932767417085760540962853276940159820083750570281243433713233239568952877608730472861987691684690638782524001590918945379645041687502784555041306782292058170073568276859667177429375188761811955004433132368502326115921290412836523643867491560991247831006760456914174077881336640376920914463631542163099315571268247360881498459189997772698399700905657667290991135933096081230628814342687703382057089163469653063340979120477533725211323356787266666758625341531139914531053485649180080497468876530122021329585417540137459694112020327013348529017864767321149716855780797870543760136823252038713002517417368023384750235081745454992655995935261000117225248304357517168240280649321927149029710659085202315736539837900532664862943416434874089803631609888924378584855514611815182060686785982461803527732495441098847363992171031826968122754952794979334904834165475620199583757526500743973476168322642001294698070800785827337127969574310933102325700841317083031597337893862706837990204494727211709297308519854492011010603862967154027581838238105475014510786307130501349494763090721670147346472179469662236011790803765831450470531407418524503332568533057317650097262669135642810886800551919611831950651192582614949777455171732635260094478683601159512352572488922712839660297282063411273712540964750201009845171964191507028827607470416899034399094077200705951679932000598140378336166633253956375631975498046369491403841885335703529629322445825137019186971029666336813749467745230214222581036241074501097117805598515386499180105969702690619989126946059016442166486618189810988223774719110437076398736794790431651677834396762379420880501120606858124722142253841581881388633098922529847485740239403002937920856663986978690186929079123296286315709484433528092970155255213162880113217566806927378848443208592925527788815779387476360212874634535907658091049633239626569085996197355379419971254427851483207763345838814072243261284260982019633778042353389226593553038800370318713499400272426865144797555063840607899564034663262446760551820473216480042578430940345764582256362045789975273944654535184503791441618662862036174082731243085058437494757715832362595204944833642883881510391158721500095878371380919557461679479082131679498588964756324535876916569740908288729729455152735870872032792818398159431439335982117697315037752546977478692789768630561234889901498514061807204281878147565205710874717691234599272009833583124607453120039524314200064478671529527996375054013697427656045900862645603165751578772357293853066490607627331757753963696650870286541183493426175983227154972345192386530162527719815630687150825131197320538235155616687002031242691155355299902020822653509810485485229376901231130408617219979924859231363635968418911393097372011602350151198838477230834662321389397570617436333857017549736302571591326788092790532885107383233085078199450336959561516898724778072036401741326051665611187191798189233752462074943530085163412092159462368918644415545301306355106065518081689431596922827596041519397521938179823906242978015917366958791918512803952074700703188790183213022406466488793353094708987324233238828523111003114832101472112173337488003102256591080701330437217341062024513555308683611118048850713214010595318432896303182997596248590640261830081754952271929177493214765324044954490051237106948794879030482851102356215211962804814060902414117864809452837693219015297723453172740996671021409812538610571003182646290655917239723485314355438610050747277848810069334430800756719561507185569340972401760652149646781317763407258091572698387861239545416563598381779997924632446449991417686507477035098842676442346766062874240745054910275186838901702805970478661151716722607390126547246091293224076672874962646740430736680503489228798713519944360308143051653120954529441807718450364782721295985954966076940188635823457686759381799134941532807719743534596541631643458156774801301027721357211628402163237871228974219482475185197905442181470828635279062505614709840928965593102013556160144481776085066199256688606158960873843468330435235127661957850195988771261126693501319324745188092657864997034290548019866722980927786515531861789508310124075365467686976761798135463462776118864595955171013057538341056989032216465179095547806431879560868040198890731825803444200420406363831496023566703881284173731181045521974658403291855734250121395902013912513079797661078641089238715722843819083817896051663420246087776834666747288386458726674127596137904695950551447578703555312459822606202225842232108255009908823708077096899120385476600873849319055468491401794052018992861973988261441283574468558065768397164694726544888605518489755525478379020740611597148574981307243848310137217565245523624102279566210989930782318679135575041200143220879441921024486630363836721782262081653868940067037642180260155157220221737658001912707666132631795955051185070115175332306913336323330226922927085313546116801476777221672825182032206601320992397624768462395374973009228744824581626254222097357286939693374063840583235012720025201525947724275339513494228570996519066114494916473942064104267759997951284645318270721226076383689043257429172583708721700797911705824124435467299205423738393380278968431736973801782078808904830434845640785192959539284019500122909172108781161088631404223051063221542124251344029786845049404132743686207707759650334522840680086283336528209856856185864356235602245155671438685086197926584091362792968569260271483103414007309041210005052963383012066184442266110719107880529966275509111358628112358994052025844755332903604538641263967665629170805239422979021711160044008861674661504994161199984116634664472168807240987957357019257132822072775109612099361270701108286647085501102033602244667262129292094326702141615229843993928665790526267195714355725622412902024136642042168678098219771863960495645973333449259007508842876949790973076312389419119645904229947094697641026245356958104050414535817917277707982675166363689396031532291367152501688609843518372396119856533117100103494270025191336383823044120860956910602988932466940419952828668611223606724160431561261328315532027229086111664356354023627873064497765756496858986311604437272899863107629483620439480196788260281701695262062182784123892888303724992650774778758570608494148131799399097171193770670110219694814038499333739779860804843486886889279925326873924590325011170977783143666931072494619225589561822469485784279243594933049312490456164515011566147304972779720626991543971666472075529810975494318271616136130726518159273721946225363271728571932130859372186961416271303762421962006515566752402777857251914012774859377379938471373207082225031705972351630371726684644385233032188915341582836111312859314254081373487854704353895184311542206477172582909933423792811677974195003172515075314564608338758222813915931119134326280038163112547057455259728695957891858688767393035915855838456498610353943650002776465921005191695970576518471230935522314945509146241396428631234289380779875920242645092528207883121570944032196727097311301202459511522235475332771183194417972888790593062476434051412640915366360359190469846113357486710513990458375815237942836270502318119493948696132112507958814625236296075842175236570803217696475944862775115050937147144675419254408113867437359816551255639034140504634664317428084417876902378591477738810631319862422199520968951334501787596189648102415545954606150554848288258140916586898283938231467899147066240990770257331977517051353429444674539373282470177090060192706440673397380566356178941714376197625118528660791298557171185967030293176904470587001634134276022192305035769374039984175365408648867835960227796232231534385785541823204942591988855243141776393377649276088325858681359003413751077490334008762878307878915428034567003806102559099031361544005003203185211394374504226050558582970480379003900787059760053158810213534234158649134576898890351135572665858792923539612555058464609714594258606575302544520925858813628693243120910519014325471846492488234343100234912281111109298977311955906588289163683534247496410186546217062777153893873309177245670351768758334151680991559235936079117862114306548784672993124536115155149118802502384700978217897449427413921344052050094620587630532277362156943206817491892109654874487920168450304495590926046331557800581764377873984803061153208180400766118158729614354878720101412798708207607546724502195852712227539594357270542790093229614277629084611140737239076807593642322837405751650717781704940409985876005154937777279465061297932388167171799251344485592677509470884788226204443065526656496030829004476618283549777128902827597943965295251398969979721977328539794039823797615505351720035467315524461173118387379827447080644493983750516970621798789606664017782087946594532849226304808465007083119716421813354599728541542721963276212580494362421036412003903911936494165192373149010311408386005593759985971614600589725739950108479282697683772669966067854826046944019285048026301469622269903589164186985945339052526192128402351698653005948627142674048822473878883220219802389501721582635821277558866106774347979313522549258768404120613846201060144686533542139710191217480163549844473174715233608348677219212627242142467301030595318880741985512242868934472854511006842565888374686067744059462517829579454405833870501642678475734687637731723148344977885453231713578780430355681172369997889173901704780527191092078184230084600561518188667193651681474586682367697492966964932748151421532060729114112704392051464358170658424050663873805179922605422493564352260820557303579437761554397469392784820590155993001651633373210460643128526151911730380904077349309424812844060441424668820306202515628925705382311515867984764368430587562249075410579861752089139530507409545281224111615881113787968042571273524334232398801548071982156228289096965368513859342636169816448467181123982926479088707692490644360436938530070157415008258033099906218242271735870309324477509592568161912792289185768373105655342559765239721103937248203200472185002621905952945178195353239399944104441179440595140808919499406564554490772829613991089982270822098296157021717759484905362547793950163651072192875610432224534917695656128620050412125554874668003741308038842995363095038186031055293605230134202340555274441433147937864310983087867501926167927103710267228951282373127686953675879901953498602599888216069946100938764240528450005435175122060262855067842248638961434965042219746796566679016063279757192953472664478230520026492464284164215523343108611667734130547240918323831161846812704502040011492663432957049091881873715670799217210004229683372415604049516555678498092975554077014757384966936024497454967030753624242357499860465286729166077385262889599851660051694722219511021962224529010448060404013614372327358713933487811127442215147925829600545462812289585757671547778102896221021298578150081057921489333418689316249258994279376832318929427720817655152864857754969307464318262150547178045664228728405027882308881445205144756285084931099640314558908437156445684351326429084978254251274534574754282830694639385518206946649962189510048888019625218043093604666718970821037826133118541498764623044792187785957375037433133116117600179156594913069987783962731731626744473386146089454412180115335584289775485682969489163855964011700590625371774750667585774274217663239392864613863348107673694751714556236765067698577097137999453635785950803065902914608813950134583910869278330363994329148467638731760030770097073552525935248698452246290763224133048789416255924224231787744320717173878826617626958835459463219671390079197611426753028394453417033396208989880845676554747340889641653124686418915134831126675782393879758279298032890402427288509236571488106429841166480648586097712632871403667261315357150664273993564282693218873032991709043677608510266275045475834111436078546035104575829187363530337720290166260482493186758277626903372743523899107157687672516627435502946037572507636046721435639303954782497854509807591440240941383139389225080166542543562173974161419660930241054940212545481754160423748670829981052575071102789156341066433984269244205676351623705349830471438298868270334121781255063548829572214953224407789119930529307723978120197637463506670550547680928804001658740932473483594972625476316998191155733365308391337454141953648320604598583627294072130610136428802887023645187537274810687771976689162477324500844491345677826758778488007838939249720652037610371117583349850299733880142837680280850814677945677219880437785067155820098050960299578649498942789020864394721866022367299817671354121389279385945672795818956030494170835003335576013911841959575109812828641745121540297055702700692165204618834411743614240968851507356407578942848958777700347133278218064878540283610593743203073978660755310257520545236624603131050430945818108674944132279530432887419578305787230160053339491769465869838355541885715397020727290016516780091182347251132397000397999216408384254017876720412554622380754328594397804626284782699531025469570963597718329788780469256285334536360724266258841482994397442857095782929642781449585449113635700402922752112323894254406025661534587001248926333433823653749942187173534225024847722524548012635900004979071928761425977917525791857271992292526429497651824194198020177311220691634527625878390265819184631754886762396228044125387630174452576297369830606447501073038424012575533643766035155921487764286914875529884875881659370526570183077241842767800179461731524835576680455127675378276646021734790678343170377570842670815278340981183528353391258527015231126082817509416039296123893359425989976484974213100352616067773335817104539750922949290696708261400697608237379276015330401701707927919614920749149397847379349880607859033091139032227397133950673974939256587129463678110160286270799374443322973123517375266064897577720268850461270511389358488588419066496764133281444886776410820886634536639415727177079971361761379165411608668322372644182190003222088824730157070657071186393784008441161397910154517417146360326081918943074544207252896113190982433107510611997850174253402905291469244115257778572588507635999005293594422630801663525735943389080430890082864645772541084481502578843999441894425310137922389485392801117882615665414593384242923235808765627640682940806865642951492496226914014133342476665539078989949964313371602838699622343633543098668931606868607922901209736597919146680858373324029347329693060900953655082997441349431225012380607819142525375174925660960145752238390272804624109168461507288097596705238487284515807151814821512150794989889592074013835727804637881698603125272955999815993506080240844189819912604167998252928521875648596311918024664869526645533895263734990947429821522283425827854962674086098440874415736058311975093596168149754780506727803584766100970939973400640837890318231598954941137580158109060105984123569842527714732280154047209384116059464408208833433064008122935817850390571322182541240930637645339126492813230746973666830569547956159614373440719841470285053360085702266960861613898710654937640805292408064782897085423737477075702621653991649730285807993101841741691059374214155491427612369406380782671895611444096715525480060334979802094278775260989916733205781026721814447083599468241971960075703803703593999327554521937467554252929924027150195856825348468833675131444468894974463641047925845937736974217573668581434015326868162276456724003548604416492069391413493127461359902757354793131303918752251327939348212601832647674501105728937163867455698235589270508687381846216970072443499604720278646112860735520765160316973561751586680988842571741237479564937690564851431643308408033015018729834832805882796758814096601889731476989556036608815144537102879428552157007005607601455446360101925343280042184067055633358818292623366987520508833385500976428859482677698530385059407481300500726989051441979216301599074512143876012651338147078439828777660803515899722806340134957979196951599922845550275784815860255673418427412843588514153794687930895275785556504053523902852084805161272164726093482269322692030756619723855892897308581706317921111138486215020681425255721699239729551972397044476073601093833581728491154757801669018339139034223509285060858475885236179944959916233226760139208986098624151779880547795711846624378803205526835049211598865995494001016166983593083175356907636643042469125542530808749362903520594268106281823136716815098759630906813507380899101384565143595976506504115588132416688926012005183641817411468572582483382209605321752110174844319631337049062457789758090619276979263040355789734562273473068420771695859338162258602882391540972544110500198473814224772288136676240326308420010918108624296933708066281946181989410451490546670495905090024242441622394559310265182530730971327412796667849417207688788950355450585123478736019018039083901848599076901707771598532013654342263358191622876069367434531883134217991967924694788866000778418663648612855236421786636261183294838083433627464551355224555677881169241174738617620039761820084889160587638708458858553778640962714328434368493250458041438425934188863126346300277088343502523755053544200291682995741815455480930044556796316964373599749409678464347667984162250900960723185061787212480124993358573226083968435131454998998057980922188781563495895959811073499955757971137545413421998446591797891259239389255838946560421177459784956830514540805156404649338721249583274607465809713819658819295030586831822510888066527251427665057470275714597268528027410974421348857887163810953911175441319379969130604422455026435673152934905443324424447624077675362564513267076768993240628933064549760857854425392891017184630921242310159152175878912226022036435853070355835698830901591266619224342005848487752247560924395438971112994909679826039893646316307695885204081687066836278469074860762893866631140603866705605285548227067936701344790022067034444937856575702626752752659412331083119804155896870593284313815047941206716553528815715049304165814422345030537658443427481614618757559507781787504113443943301972832699536396230786723243774725552408950155965450824071765107914312041248425383804709005621893608141432224966495485367391433361724899543314978064931883706371566574224033044705836757547757488482603249339528113702762237821578280766629978833404932565176607533439924748924429272628396223475134433720800372689142195676053436245871410340524673138689455522073950444228661859316443527646291648912248357635712435964739145906959189165697027119836830095563849275543714918720448021745620623443284570812445065233272059101008941231078265758277043620840041412057290318530046116515428460219482269698715182327311279447442730287103429448626903992236809856724961143344813675774477700732617871396748958812383308968541685537117575731388261872698817399989140741895814524687398125411138399908298934768428215717379446049312446059004831671445691830605561384861569778160634887503390823851933590180656624895038626734518129207872382322303142710265257931943745292837498087705500830317188766751158190609410316223194890083489940730747277779024572008941825626559868147943114862316163144302030540986110534126578056222141236626819616087187400518509657576112447288490453180924329634591684414620371434733970380134524604454153869108494066550237714435881799199231025697072260642232470222398859889989963924828860694843360437005419154448357216044834516296555492839932836773749590034935275255749171110070620338437339780692248947091683053003932449985517515494611470889578736077133222155444325880382771122619272238498022877925323104404904738335548926212190900611951879710085299123857186060402448853258462067129387725900040279015382714792383435126871375314905516221407745353424746558276988980002848622083036397628678507546683792415513336729610483166331378423960304407279172643445360256422176847526006009629011811662554075406442494918769976743411648295697521934932732911156820982606702807704630927573236444420158392694327890690655796588528588150368656970671865550772861973048291565656188003888192206680630057788931689968205359034811354621369294790223720399995471823494998366901932880177130545276498787802092016586106114072995697937301171598688036219627309285116501632919610976506518723225001881911662071880701631340685835389739265013341186913750821619270136831708626798140498276279328705848996089759420167209599285945558765710027373034292160432382258196281407094533386472670276766155298592001657056474437749957600948419503199380347697166099836780905933005956924695988043902088325826213959020661031606033044386743259282966432157984163485748043729019341421382558952430418532967561562841233144420332861424624843713587255937064225168217680303516882671340375165863003850578093034090697427353301417497254552841987339775402683337234804634023366614652845892701168123323228189398856167919583993122376017551341803672800821976280709244959268897778608205793717293569725210932070805283237831156097689156788096622966515419417178177123853759757273779375119583724450505371312413819911932688282431258227723919127926578627772040107839195358779516245430268238003252513274351371346498245137610707068795432428220767027812745625876428631907460317982894161967164893677553990774292792661839716081887932685999740243711588024006714447290484629247086361332369825122502296634576798036551412735496499616859228270851128226125033060797067165723199771697750374241771279472994399267669488681408646393805488135970932537222730419082132007026540533385470673717914282023568271716090028535171631370075725304460002373073214301976296082299611152092096161417439180699501719420357000738131462452073189601347734701527996419538628043249477356595495071160191911896427269408719517093160311738660109467902900147572767021575517778870468829357658898260586715593308178240464564096446222291913418920937173024697176041639334325893989669338835499793843269437617677286757033180320810721001283886134254148535265969508445371678775589785775788253340110160505042873280412708275139948036863438896959575086083878280789267171131792104462193940887375101308801017401737504923067299780829033775161396072650249842413174654078161369802776175083298370989762954258119580604215445553201364936131110733772439564798318153281411973729025212177697866629419618338358199493795561704166654413409922613165685621484567226811477470564082791561199073001501611072847868753705918964710214672545550959899006559233242847907499155862532910337584482967355493404306879560985474347514589686489924511853636345773149792526098825361977012849431179499068165455191185908473845399689735953798710326733300745216791640925806356577510856754567216500937214549282944576304849991466278745540984249436192268920836319228738198939254873051319890220264045531482844840204474162790431897253312956245542057007284672769829523294397799939261088145768681838697502886120525472774515995009527129721662032068568655761476894984498263728518219811977214518407610452902345502609241198729813553082389233659230194852071454099697661917403319317090331988424477867888187230071999215355621261621366533607645769739686320216021799067236606817059773297412973274910194478838563834278622053320700187361222951888082646354222293878608292882507290740942218834019443147120762839688677173456719520315530720675324817581297030242699022727624774248885092561209394390958690634666562087259278452607261968649560110268317143422823963836740661069510710244565253828476386991296696120884518394233274210382761661871679070988090382733940547127031192180364397698139271422204534201308962880265667122599662957686219321859787057031203008828423956524008245108387707963597442309123097419083658684222554166916391561335705279441857963108769750985182859521706623699123601344008082564184230593861064214508022850967624463591826883810878450477602080262903338888533207463757402713014169755596649063081989309249464097915324599095039771205452838176040643006274559228721032411690797436274082256222898310232532440439838344753471272219040172825498563339625024510130223038531484722035438200514248182122062961389909542198218946141202159080434303149761480199036045065834390594041753198077762814014113795585154256988248617894526609591577001516918041342821014017092811343026360061521062587301113260193294799975467867685307879005343096513986075679922634323384690004779553283800573886190564113913997740364152359656649483563085300435060730758906095204127443254970711781286588618564043112481516596423608843533936030496067537719673559049916435199622064702727687057932825121393410816699199738080453345631892291402043700693667962930509268275895622972167039535073490426565740705624450050839935003381913965187155463540080858601983149107425554102255196204699487301444383182592321007074033139632611642847028568558540829074680507089661032743965818953495605877039434743705954007923044345133862000959438221636919012464039686364167769153133364804907226850319715990542856529465870371995438813326586804543288206912031462070091405136554282408661261908247697909174598827660513142891056828817398410871565766563344897350791312963315275896121603253340250364497539501540775890250678934162184221204469317812991455844033323148235831474548727567104858110606126558020716286968942272057570604573363697158413738727228671383812634957897597132651676312337566611808353491062514325145205561792612935024076414756899866310419511071530278748182560078266355024126772519024782322801661507602273297707964814329184871308139110710940512824796552353058765949576333822412164346505262045696015614706383175321717929023773839493121958689916791903197857900122828001102273570880394801830884120356261050994867977546163274665499101208095087990510153600348166892641547138930005316709560543952429406183287067177982118350654859944407735092023446186779737465315855342885449628753939630463397727127108418236714527069605438941243126857127161966195552932884495223941897574653804196130198081490598825406930028780999459134885745623604543613964194538212201456588295409469530647602951548939400532964791922204067269732092682074543522153414766811133766379851965930233646120367462645004551282914616382885960483586467381797305388729208254360610547877062112430052417289543870160115569075130047270995203584953242082630733738558115790772001693547853726249311549000150275662098339848336268681028041267201286439944501862991974375691156850872657273862941726940594866009399461529804515853438402637258586010008207373577380005944807345842313177468816653580708903726481367786239616460785024182212967354265484923080512710764751372963912505664393705478128108496595670248774987995190256760406299568605044900985675647692468896788026102302057227622689789631379872958595792437901706892824200080719106205204283836252536132011834402142480978250384293936115187950912346041038112251101486710780258379787182675050105729387309344860095966914823538226741089983275126864954424590493650780528229173493289100704676576154010720474386463935332936881811523821495166189559041653120608593561390123354743183950726158226576684292652092825578081896063145729999793967491719661057253822637534328210410470882571813446294729463759998160680557070480591371880003965574637569974949552172538549795747226185256055802135636654241712162856932670555476002833127966067865630072025974543398633759846518380529741369592603635238273249366557464025380865262794484473348600457679152552547496255172201647017888468266558374033616497575479363944706124638387400209914917086663705231569181635229596311988602786247513856243043667969101408436113453128685690649014182535591843222865437897623788949610813645792687620772502618104321742034871563494453945147208057561269545314926566939352480816081224180433326304869885976914574480325578677961706941141476246637433857585816441315363645969168431374145033493916739527447354238062765149453070887423084848208845305492407711606817807433311481737605008473723274496175179943541521334771838203445630356405034385065206199785491198840448331651740966634993411805306675048780129852365875364636305168863277555262029022394393416157078147411726399100684345124052023372680516124206006356492916410688947358486864971624402311683190624766803165097783038653982792463863423030634786446648653555406208339762578232916259883536002894938204365883365239383907261966672061966205220262124071298760008701651008511572375799242620632141520397422402163791593423465115841371434514990929634571634202323592998800316913321117740586295485050661307893504364202126315580850043140809393267860662012253181018887073688915347210092165744528024578588690740027226727393632011805066083862603094753955368376430921079217747493541387946459892034673017278120816829198338819040605185348368439896962042604529807517435842513411755548695489695345214611197653175783321601894933152123431698965586993166612916582229619842469438558856546779657792655433967138912941256895122837764685731013938836589005428426942461062459579560394843656292308700276416085955045671352603855739938422678036413957799582126246060836694943749042394975918593501382538154440499791707325383979367471687320560641996933985901240560676478033432926752697389931704076557119308902255404264814850944929987953769834625985890380798230561349885142889291726431331552371891961934443748071021770592893787463445574480462027406088353937785191871322535672135483591255270312152903632568831790895789061775111742577616407467311012067934143021680769813756207236570043422867253523126207636121294933166868022578162779634068607245892919295786924660809646983908758195693277563399803345962308624198061291639200423034748598946355597213460843584444264520499070534184620824320300485013235911386982935953772805238693626196475387507472665093135376822721621554093451599412297096412082687628373950544455957723979675689784158401760467018359808128464876483014182654202999343145250839838404545881358390966089574388746211141293732210502607501767970501230811713348540137746944088834569413517919364649849311230115314759419824733155307987404332406267939974095430522131104319699631825760643210904604717729415601791331298538407036330724903281258902219021659121195967116999651593311713024843866033058667679952201841125610135837269148938404589739704767175663406045914361857907364540978008687367375859720365644294599232172718374113780778700193481023812078730360131824276024182312483146748165500006310666803723169578540648241961983693456173481399242877129772501515863833797686870722431815802565843099170795681231644453704053760521609748771233615162495607608607808604384148303331035418021180649143079074927838322665555566996980804829976022800205022874158349693332009179319250493547066043952080766922330842883665759937255707926807336001337753951921398691669767726427228854134327394105758140292236525922259966714428547946644717804670464219181674900391265029399352006123012808574793249780103284612095135507585585911497285706058152583984084879181599992227173488804752850295604316813086554603239208148393149532580835103379779251759325306151795290404080889652168539481433018823287241137407412983063837262180973733552584871064776423155564037090776645670894175929224668118884771004491402814705887909502525188398473007284006233743178662449471319630819360564728205252085268706099056181404131782514193572302735824364463909541031386662322809351808774380420559038453891433409553314129340670917605095386309610513720855893166680620511530176345389204564291334366982354199388655160247170370129287892818056802159492230167979019571004928607585615092137785021589154987645224949842761366739342419905945893189475615825992828939456883951059560714751025112564447899089507539806924096977940242072326986339918040080558958157792680653621681361650488212313410745319373087560157749014811088969563129953488565629182305074324040654020631019207067833912647191026556799978640543399801983296573270082061507308932911439138693574649571210552673186536914036403067990114961355600683513327947085092721833755341203979932151627324034085893542863467645582690128250270694208821518368651669212558275887754889515024631569518163615508189691738190652630638928299737043413787302617435396938997080986412617246207272856442392921161926696520509448509873558775433532803904759746968441815987704728865562525281755827085417114830073782565936096963976124412122161339419466403809880460416000431259721058969998951808060475699670261026859742401701912137238354683085795763967864440225829442971260910074841255969699163197511254191307909111351943000163026286967507568336994247199726231726752110564887777867474123187774480859973095320582059416539384826848013034914460892888560513325804674973791724734771725537864836507536306435076432863369905631246155490503033501758907651950537709448764215202792858706446026478907310266158656091183626654887243359687912933699615064284851007852199319368070894226630832161030946468996511600265715500601345088883406541203639419412158919581133772183907811237491179198331064842768993134593006448020956477460963902819590596783396090725790572066020099260909850972374975294711931118810934336765419830225081592087370146173565412308111971071228310168122748216566138590512166948617540660094952517184237778705822583307944734320627289604492375085391927926435234771319148173535971188794953358933362904983614611174116921011039525760669759440817046781102672192405137718759919802969661213319835712576403372031235717849616256478148225124792370359866728369962469691009339265886725165061156535764029139711414853034739423038851348901084286469330129784945750470489021333143744591510198480491436875779079502685925651812614236747983724142486669006078936563420288015807514151566678998168499441273784915742799101668771296618348831824476407939367819643794815640994080484606660977844346651157576451982357868427378572534215567721911387046652991966022877584619541749856377181713984488903711031089997657182793416154476795018725468157316513891915169554305424384048514366153216978724325857828044766630092596942386594087304834899669834644201809561990245915588818858790543793492093852566626061688497588014217256532492354231661395891696376235856607185611090593506692065611174513846820301276949998248906083177763096792368457827850684799781002428131322952291778355378924738875535756162776822407055821529609980527842832928360101303420428601637972317697529390395138443902872139479060407411420107348222901623493064033719404273077343990204543129861240586299007006394492666995167899936463372715578884184794905588232768542036865258525539438697861879364351367923431162463728477572761775799832704472209422870082654081863812664986597231797792591290429341304349267922498868061959417980589910216907387049778860865881393857736717322380121848749008187395252080809085939435870730713396240783637649495789139944085847169180912241834482446808765424769084606549254448418737392177017346447364878429529304355197267954310639781460763539033564079516789776216454135391946226090148127804797153251500025515714219823852682190730080628527599012774381910159008161888860200399614323415558592248761116326573857280990473766719709386399283928836539543884779194942192244028226284709165857379557264944919574887754052704176099113287936256498021441437686848517869493471220628328850138446712378211244343963917800651012212380609949112518678432843129084440622207617354929039991553477891426239202477285495535504947026641985319876652110463487517587588852113690601336592458602475700013916426987058219899198652842898557871429049942504389412500072484214147310964370949965992741258480307932900380022000318460543886517295550581617743770413442971637232313558923014226111211431512462623128374281834327257996128588901615140792002030786351104001757970218356782096563563761566298471132032175644913226664332945168775360344138675783490052373064087004251414843431392218901815291557748765584685036594358531572779395165917344753064724283440323918933493436326447343264119009930424186065109499806114077878654012843291402408337599171802458426204728041184502337741303375935657367051619529556021699967944493128633135480351009707862580341475966427781956002928621771293824333125270153352545726388675599954717631551795143455977515305893751850321328690096869244914432486041489595481687445774249320044560629013679302604209579578988294903588153112110163211985024261534439272058770647433017589783282352390098060154658680829099313392046275740915628249521864958393523644529741476275171706218837866531814532827820676720703318248364404047064233641576885143356533378435747543813020023602685978574213652286174372755011793529049569640004736578032399542500536357704406686918133441830492038345842682087068449087942660154987298687640995290403238022678831745767174986388342853683959934779406235301420244119083006833113264826906984251102152842769790048373480022977946388327800098648496124646564929976403485247416434302941229326346734536200308021278157568832111378218155949248500929725967828455067241466058538930279694314751695448981704499622588809387083128883422673974782341201943576901583192488155792184463452535292131278799435079550809470800205994856464412847066557905888263797467381390985797264699502738375740348523132184728484008998053523186473226319548080036280179952031735236111894848576414692066178411771929265590696942125263512873637840645867763826149691351490643646290489314379024095566137046754059665234592596516464319494535718735694897846083724027102578625071650632698031395861858708100697110149698176307829214069058972780664268519192881414631299270644015088739785106145359708725493042655506142153817710718201783549027851797805653301153088613151709409149911412536953051037634264066221556688051543002759254976245145736864653264562495814926153351284564142742536247624886036411307803213449097630988697786402185748881153759686002552107682430230512475943898806688825699458010747863156263826123400901640837524364219277916212057251734885297127717466975549778358735544821493802931530927235122055711359039146431248165660409102173621924551975795550341964478689044490140716930850912768231697255577601149014132350592395086971153848834052374343159055956034432399724604899593646022457512412846525697602934963448899026829300428615340077542655877535091333417768585402442188687893254867143834075192526641591318685870664969853479483958995589209356213783049438833774870438274389649723510306575964848853258373447257630425464006034784052864371113887832378721813424233704934919711612976191746028546843582194893826274061183623046783278587698344819514917522476694845470047096427620658157364872331407869712297459126580587149550913994376018151716364491703807165328921505785986303087806276742645271842710875471557005613119581472531507889807294775385358428958143500466636070892816803441135147251575116666872500185628521877025757419108897484533478590290272973848484541726672875876345948358414713206495158579538448269411256561162034164769126331260576540692374388150823887058155030460245515132704683416190782180924067702026855684986524795760388894822044740085081081124171158779542509813595576829012267271286604022059667467938330652916376900121244581184427849637704998502187218540734047873949777233785468384730708067706498242650747680449388370991438316565360945148219261167006887843462387090689605349769773514245823351009927990350268998877153110675854519471525116584376738337603214079729201843999367235763934729014046777694288748304534864602330290216847973034559922374346826849615340540427897302661105502613087297842645649464984484373971166575283327676882920694358992479380630856853917443269676936549479214027285182020759620745138004333057254543987518780520285530040766870515821786209452218106318508734589872983260514812170520863626111125405053788280090117655977432545183738318868958328197584452801865024129434411492838485361096857983902216781111271559523229786268256804213473905463884187344351525225603746956516476051878117258761041582351895570684891141636051113054553893606509872816558819112786812204983019207506031721087402903006935621492087518867897404244342365930900830148046529491514110049985504145530689133469307829637914745211022161494693497722846331657390398285848685204674583222560746288949468654383859605017816998683185738028728146929466173677406555383555301466621424388397975815837242874583115897346083205926147383909714242352245359484224725036628870668877893767898764358515993866676618104027184294421638555774274520962140030860993818032100001273123020339675180401272790981161965600877259455802671400431294300421555416136844599168569571571472552803850738103541032859733737082384376842258267200643150106818071589664695772564753756252846504063397347790638767453353492268498657697135188495976047776705889239992264898114297964781939448137343349360476560292447320942099525597586015060555814059737319753433867354587425015558707889080170236368550820210043976718580236363055154991365872629701703323511212926070402605176947944638974567855668212094649238204096711063653460564541357589632238530654241192048553129430507919786661448028915368585647342877025027554982003399904543402627710336074522428476937494393000263901837758398705464059634305494922231363718769699128364132199277057323022285466601032232534121727065481213576757308306254699225211620096376220625617889429751817274289907713674046310497229947810234975709498358521396044474491887087344674095737527849546285246542667485421339301880279054268910658433138012191600055594074254781916897833747071194187384817600361364183894051991502773677050440501237849391647444066023003759418125422955295031581588948202278765385293369369896060036399456519091934227369967124147264469244395091348563201629654328485092397763823054013386828939860603150184869313742655514131598978436147826927310710720276219056151071538701209350479812162794516876910109047532842402450426160336495862442500093287208242701413618809989807044460146964426974505283150908106992943757092793324729889411901591268141402217563962594443271886560237632034612893114594952346162587160489513163805642235650093457974710406332597481295173678917832946669006359771444698859005059181958823870929425082046227096578701348905263651328364301513127807304997069031516298979193438181153232573259999833342367057786765944878357446402698752750839457656155885150165720515717806845060383088829067676459669708115116531201788266128630317856455902723596373885492287927313253721153938135554588136618616270610607529297018148211720284477529576745453557507869000183855588099045165743205791163227533181240406808492173821859894305786062957855963401923308107325016227045585762205834584360728148003278607674475218190107506225292954822304329926951612313442917679205118319586795475185258728666461470192733844821388957955997712524349333555970789614614262131358734510514012078958893295533704374357486479460965992543945129453844210136716844008947733403244023110488143751611574071105008977005790289272350623740425978998298498630493144384422713431047196887271225242665068098966892687281665795436897631579847927246857678961259310731438767995373378639475027801898572167019056171590955452637382860075355472563962473117230979384342201285544587416260187818432179464042825370486963289326699576178811829682001346750504041116990689039401576125910324177120902834151965820848307907926152953821701906493470288107040566976752989123927240793886238424607998421702359946101087535480013418116792427327323516565474334324400048704763582287669839323587639992064778726987363778659338458076842367431736552526382478407334631731711354531792810495434868247884319617054225529555951252267665114624674865822613163772908701273603471359076415760622411454061929879783944417101061024977056027527219164920364876018448881853109736407327693504202870501666738926445145267376568769204375013289233854373116596313227828935334744499399988098681828257549037160670738144102768730712644274808131371753948403484286396176470652014766433791242695726688759212820739320530275159854352571393500760471585373703202285512696422545278932714597148877869015388894492291204493485696880671402851071272462031419809142478854284541070475148769502307787103438079513244822399711647344853069759571118126777463998739564917140824946518362264591840182342319399197234826740153493287774763209984738356401746764142889888323801365635795760843860676389971585525802103152937950022655912596510128988361227212491610322819384064278159549415632540639288344967845275491402706482807154043874029598818344108284638871513813874408793934245288437165971292463787862662589895970228593886741898237910863355464693953349510988127006715392676072144248425610919115420974685666497173183193077887264675954808091061523028163218814563719112612457246079477504940778544839027250957288741858620069827537062102040687186503551415865496697199171454756609635600862891290337088956888060911362947756170537750000481304339849422813055710964535248822610706623176264314644222242401402189423435433855393219101198214700426172183619491860385991085035335248400250482763154737768779315456198706151658432002580474919594936320738412802099385928142834966594920448070516693309583247880762625420853840847960420953385919123744336627381956181603703205161025439277084519589987085112102505604860577925778193665825139138962809511440391407015377232811466989464504868738606575166973997159983093552984573421323292673445102443343496175054734854816774754973078576907306669057783739357020627866415323596446665883743047485072578185161784211745399534601531650523496429520946257610662709162118778129766650015856518204276834106619768265723883909977676316635338543858776253295688359905479728431319751327702374067095569618920600629582697444025460351319864195343233837711053791112225357756675282441347897788688760274371627163170434850561934908821661893598497190768003467385019877906561388264679593852823272829115534872897841103372981953927879396752927860382690661042283145077346339171271007499891618585917024265245703646844572083085090370604431537276317155404794788107713631653046383781709008612564559343078686839130330361481894229780907506542975981021023717900615486379353669837079409812707107464987934419379387859057849059091103541806297767286853724846649307657514466499524639597867320963031467328548291570492256157861232956380048784640922255008262307558746645632022750376091669238752051519956039189374078727508493533978413644205830671637164630419462588983769580241666919107011062844403457731846010333751228655076013558606410284037603201863847703542715280550097702746928651437445583099067021023334364600740855772942280942119836738872638233859292074211101333349612031149071198586408731111077335651011162964952502550559068955713839788813389695916433366203678550911610470039262405711142597445322609200024971156010137677101672284877531569199195001975336716507584694358527404735916641484229470589183797298387780147002864573846422361820516543059801835299093029257320956441571447262580923165494770958325189558862287533437511566725099437570044889940269067463932715956161636006765368744150459371998161023551041794832632490175690300675047003776933295157461078891789172161014035843526913148877725832158666393896030854298534577424118194944447116348339991350502285173580464764742117771307522178718891445541141259989638835686000625509991989107373882846137142094414472315119302206722505796894115640718794699331228598068243501333335354548355261114115118103610203836166768807754420520754878664465765778291877390720673048773248853666464176845825919762065149759972445679437599761352120548485906618919423814271262821749003830769739705698763438438490156736964786236238248474965777057027181267774850252690716816641222750080279198338910715760752148768678883893368086665824825353457305715605255874204288652307141827408187943257472730485936614249815997200347496546630690792705982486504692564876639146707670015401443566756549569695958493337458868628501091340858301812660720745188711631678315235299354193712003132280881359975339943933957996673017391718497432704705492500247357290696646011361330865807851686166864978029972856375201683477499621749178749518546835746814063151175562628019203419376740321294252089846218104867738650302503200429086294645929913505843881997773121285897089280027615768029141538848236755001200598994604312854832230530655046042704714267276255530133548240854826189715686391273003673795678885338974772896085947075107376547439912573749431442682568154004305043242305791357957665306659482755296476396823116026474220289221642341649812902179857657631564060161766790029873473636704285204380683855622746178336213929812496944184616748100079294755069864997257532450235279043371628576394871450457517331516602693293345591298570314737942700740189708274208456899469929824433035364119327900605873159712331882097795849522434747502356290655383320810423342328497711822388412943103040697738412941032947728073092804786838004296220498613101571304788107464339911000109162101340566024635681364604370181281037597619326407593192322030529496436571006804475854209863302792920299037744024108237217482458092081999358188140000046749065451720027572222990713331493487833149516440168203831048222206639587075765990172452010169425016103479034497378086725968817637169041395244076858600987394836485250309187546471652750645357787406965084946865368798116846058909708278607330502653793765402182182057166821207210162248546765362290309948985652462023218630891210104142367815588035677864299916478499405956490079474470200076413934996338439268650863900594362877131388219751404584756038280876806440046849385975748665905091239487029616901763037156827593934090570918405119131211546933721751996818071320299382315590868862992271975590833089797444957026640104813609921738595437356925959184123496462957274654330826384583403945022252013755304652338331388324393247867893947558980032115522527671365028843365565337114108284379941590687027936875385908825854542251256270364172653823737799807841857114789479831855985321820754410098512062118687341448503365192937181715101140265782494044293050276906954903635959201000693442942811566244354789508495016353430115792779229468541980800425078784509125065748855470480798297775485247688734093580618877326588172413980053471799637593894445315630067633203144058282047976055576280703310973849555728812849892321373477142102080957941025090075415537581385104039061294721930784300568632829291579791931214790731597768027364918939978335672712757220930696679162280908528559867902558455260486916032232620989051255378554549494307929785978431692338762426249874403209189235036325466356182075715234252107191573382747440491772459782461626412217507181807996638711476858688630870599241485436816787715560859329885240957172980971150672492865579824906328893154044162567550193017001271038768575506671602928595625359534241833939365841167777687572401948526632600131604149469445472594354721286180406494219189397207005929673413780372500228121474970525623850252750551589596797170579237938868749662931655798912031185303602512509745138163683995768087924059364506711772090929963114826115719140170440620453038197125967821078084433618677567201130615291969318194627385229008837988627173273412993149217420308227287427193752325511037720561965396990539980645391499505601099180625531561087210712769103433290715580410035706784276848044062827550919455970183905175110968216910755428458571411606514909571852487553787093979259891308201050425829079539357263388935266133908577856311931798095983795112740220268438049764190659854821636618109135401775106675388990065311355985687748895205945029024850529999653396569690867604916186465672925938633774732193565088576742909842701668644036300713170737242852004234886418690331221979309352081122184085378058679778711315018389067490032435003454147735304720052366096431580178150433845334163359622336150445744467363998412867479504065504854429346144819357810459919713555951044520862677952019606341079019655193338700131358965063936008260714494628521095152383959262646608405384302581292361921345229962460771101301034112050139363375728812784844751432889966522679752359278894796607179564096370614945669367494774934477902155653751240293424759311129198780849971019151053759492286842390843909944846820145456261215446112245527508464193200965134839383706645827276627667265724975315178574324405900072424774200397604505730894477049177252437100898759683226536142381106177100680339027506893113985687179254973848502459178175068519411883377493482819816292997485261052427220647327966445127586084500505477609626573072433953636877110020347877135693847795484789584720333022669052416767180059472674662610915899952784176420251081759203518823406895158859339677184027828480406836303855401594310839489783724400709890621676194452874736169756852943401480703522973847714779122198621770875604879686476828484073698874809896163483084904688050528167832583037524308682613849576619402274994241907147222082026912331167780837956173836313133049951241484291484016872493604349565004438142032872718464444047650150161309801537698240191475478828896337135756134423691168700530595601665579305538216498324010259739485114330137947699294219053562242716602595625764785429793140241827053280722589258430000338834484795100538861400980030890032803564030926227901921033404795295687813999179910041314007450155914635859473133904880236172445648842618753391198324302620371418751132243021410609227045258079005884112765609003277421548522086949315124481010618657741500377993904473153474635753514702952701136853474090381579765510443214218534729139000005210344025491073058505851368511055535660861502549688863767024894137710849915803599782412111830863110605827885977235224981692348314196785603854271913279496610574110347146511614024174865270596742656959109521896647787533727360354467967934051673668288023171121378909522720602487277994372730575144934911543137715090428044612048950137839003576682074634499954524204126414406090516862957076545432024978539031966131121801451920789039937666792999677944987688948103703094639777708514249177380984682621701714679300365858619442969066299777507820470864263406295984258759582263425511721767827124241305440392529017189768109353083245387598286458006120125770521832939761287327166256379208718864872825973384436179675681316449558041074407836062981491095288071045859087108951006578315775688839896188731407628205757579243663365025514865478166197366208943344938348985250584013286192391185015497561747552768446080670172641827574033760395897597811466204888502375917085234658365843025819511416655407381411731319237717946039465988234027814907253519154938452300490815710520013581776653128094975127948380663541087523047877943229278334363029250703123475173418163268230373650640541141082768009868732837101315418433270640449104603918686814431691602312665458557704980397147345641906730338022707881761078474538648380978993162061541165521301266742545855977741520822311162827741273255103748180268994353420854330840729240685565290786025615988540166561098900636598059196242471751032710533189780549139333130261010991280435169128678930396485176266134124166970230054483341964809099994569701939043240483997964497878872663845701912914726755201273174706120747620659869774937369039827129529424952342567475051588072835142624839995106659736646865184194883623971291973591460297434809616156513602838459130140495641442966901003892509852771511188078134021646663266220511426891563796195396852592293531119982715381901187928975455313483539907666377874599010852152480200460898778617999574457013745332318114106587299535092357110576811885097619593813630729036198222273654340023283817299627191813223482989009455333932811333645658526752391258351646823870866429126609542969312187534590885045506126364434675399500877022959387739927626500655386521251389911385418264740349586842340632296274256743416739056039814066738774911164312898893194111309958461183949150861701449924468842383065993796712418368905155348893449178594025420879350985268930476681092177966810945822524073154547565508742369339192821866514437396834946314762023612783394428363761263372767314894210195177306914213142222204713366087541228596374753833931522491469790721819330584202673297435948899405717554148694020077718807066019185196071333530912945781412961858054249962678847946866936729654027534414758959119672174259719916423078152285697768394138593984592394917635164661963130758401042308228598493696677390946023719179833486773106681491748750777598266594747082127103892598865720618617574409422314966194330963044544767321303230698396205440480354374782515466793214012295375036246278986171794957485500355914104458299168548025376322845328454776873921766551724157098813365613305252949506433065742765874504998207213054051553753945975597323769416951778931706082870078917040021251255179234842249350411700378496022207863952376942747137111512541180638333590007173085931429866285433472048629163005557717621773107509590635552282848163771202720142914751857631533096566399618913280487105586736919453854338556560767044237543518391773995132663733049196018614623658629144877140470924258503791779843375287093887758484763187963872587781888884284637846357607062971372052880886669566634089048949304935683053558224996138074040905848035973081839017195062712018027510194690876990868866146676402672257694714837161664030309696448727215905681180483320114021218860795731564516501483983609726840474842994007440412930590212263102062010204463195302665232945399253909434462074582140971515413801728165174581042042690102012453386294986814678226459500568404492348200833656445194772491879545661973017787289944772973347463014297287422466546300965057628585876584830239331469431601968710792693077356548388769352367717666832601743917262570078879484616973652372894503184865078739929710921564939738833203819686483230750317490059666030553636473187067793746482406092184876312102516872217254941704540459508451186102532588809500668923597946429259584112958904813284309008712703856188699253370637173631779850058996437455599645659961681302825250454443261504816567295035271185327122298560304117909313968197644510512859213627890037183034890722331251412309189143512127538592273628342499813765499093219871327446847857650737862980539430155657869523837755855055516243409839811735488113900567198670465585602484151642625408033730153621734610008083363990624116200661640664770419444321075446687645182479909756196569420915274914142314729630891316085701432929360491547110385642994778896244367198610741693757703299809631530066170861465255076887724278933646512215161351882393500356606440474496526901435574692687167026672535708572880698427873594845306524117193558501070599009795313514768215262339518674551636709530013102003496185767761377499564962213757054254451912915867360960196178993954728931621956605701800629360295861892847024926857370975541816370215567831603788679375153728255940067688417488547623914105782882167527855164013848064522292831672822268483104631183940605061946235387127232893285082726109693712388511747822344376808837251798762203381308589548004533425148528754255644534627482632139723370966640961911738517533375959652831511443628199931422693600969690689403781766548122773804587102336571289936491895221929849525983172622300830657536845491951555665375377064968016748150112117269765792823471877827883961203633046478323450118124346426454101622261464863396033577078534439520559916566228656315832850910677810018161388089065837113678968505475450136089674868233476450679827260550987116350115672022801244923135465817404183614505884825324523272203011207497710320271925789779812918226836030162730878883343568617553956700309392501055460507810437614939714882337968224195081244797391748343724085338562590697095266125822220344297965369110658579794989103754402889636772546397809488295169036454805768252301074090159701278438856015260306046320744209264671042277252954032265930901692850433389369136750218289384771964825216159904943905288842546749331142145771762940096353165548337379606881399847135224804885968411373785287859330281730524809784480939707880994376247779778795329402954877878483448293640589727763051303324064178284147185198229975312302621645743379653123095249202545435570437835800373217378592761524013999927795591754133963525903527371683635972480766573473974422946893421429776771984469567594309733104570113945935503119858635345893624487814704422340850009059072328359799208419598632240481333668176021400629392545085915609125555733328953522026390655145428728697494175912108724670428888377143596277447433609909362179908148411725967518807656963430138137761360541560587622021678546895235351521738254705931875722775420123651305337626883731251260544482165154992700042920393368809284470841539971278475013073461408274702015818701062636188325887821624983945070692882385823618219302715068793348181401219441169236763656808375278514208358355682927339633991390394254491435679891189284327142493146372798842564892591436000868303902021896201543020299906624025184459684529991742752756940159551604695808454891086415194585704324243612237219397525809075036695542373976813435187112535295607324793671093062340945551664063345084554376687472980916926854575571264751305925244944742268145841377103926146237740191279180239383202434799390222516082598325353463690764078286689578800141311420039661479066796005766529666254539812294495456803118581283396523969962688269760500074375050681174902282879687972752968050954801853007451372209626308944887005883364563431532286646850370942715216647218363289488023525300704081396637732853949143851715241729600093989932464557077914259270633534196571704099112598401593872119042199808811294422353826224352294506963250513247629985235519260431374948393984227832915629179940503778240662355467535376724165026806726434194353319016055526315925222787019268677715977701178654824347097702291382459892327486496102637586531861736980016192022899728425372038891307043533771946439713888796363915211012529920443750614614113126560926969848697915042215551211840749826045283530379630791686435105969329163436967226356871171199903409501618942533980051794701675435522632633725014526554311328242518707118703251278570591480649123493203196132566935341783239265509684732929236232556173280331095626995530258175972567728273411000668774766071778026896484794253009684835232207199381254208615688986976797022390274465269115593839076691485782076172224022587114949470955179499036582236824202724374960160940875088311340279493435210248462772208858062303033414483318996251411300255195150921503139857174329353452512385504016917832820049532194904776476796863647045262529848719329788414412232441129037513414181115619030278553073215417235343485498168947929320141704561997805663097600438547819415523873477017724924825677260696730775306169820066150849321079613369553090788652613978771721962269479242066702482174276170657149751475994375701243132195563382945046378775719529604111239690222653955959669311162627879978295306863363985851185766253171167715182894824700314940443152001550788197979533193485919995974957019742425598169364068356518127214967277202437820359970578820731221380109681943470363183913851887227619788642983909918778472653199321824914050000775260489897070787575653451913493558194650602373748799793181166606675405750848227994234683547668448800100109770256973253752109247524341329846689353657390904993712688379418673605562892006308435671848773203457970420437197462350695660224442850464920411585532371608258990802867330622648822631553662218640322212103708149565336740899561557866950561186359502814849445835554615809498448774948040062937024507510808793889931437887689511079174543708330325214455212055335432914908907870525570421973937741065922822415501560535822894269672899283314581480311712062834441285706052402603224784816563910754233792908718225184996618195647424171396681639999222164065257817428046634557458737978166875343534478172364293655600813807065766564003466487460235676262718257593654035939950165905539703481098875784991894543729819564782495066395764041869705198774320353591247680219678692216087299660162919662795308144051201173958291666515550060917511080432414810589177254520814978369499166331557272149540511688340561737632146169086399231712245694273123310053572933805592185314982944481960352429988056342294800699887277991889361009102402982084697111830301533080795235090445755335670272689216037343206770777529589589590783660732652140634172152757033788131624733201850758058417964009815742003327788309770136033864658535623460507386175751082980581630427136947732561046468934258965007471879118583300648673675720360618313777764259093868710223747551998835353814458478643522425777375660728774873378481785523584680835389761008791246336121165515283581590637174903064668828932800123327533791560050413396977035288626602003618950841253061829545936638803118090149312043418739778208670502617428746517035134719147550243278432700076484557671549884519825475460127762855845856355355416537340428124684433133086652964256789802729638108978553914654104405772579401741763456059493245959879542614319455840081311007498923771801096846478493060680323924164637408650441279099405819415251789491978432817005971629108831350577636045111519798285364375672722567052069126625743165580888315821194994166176360221861166873835898621314473455515269418957913590495253665691960019254264522658657074758470868411653090736463271554839015813716025645335162771658253401723533747050702120328906105102989242779048384193981306447057000790228221230254571003843613478752972253059236345104002216136508798333574488837485861143259113084176141916452764435881421058999294951893181172083389234780149986355202083559638533413891125565841321964555537003865873478234237455974187953851514340850620778512986815213121310452619039859190532808151815779266475313682657657642110052938539058950479743093264190396402247684867808560724125737450024734250116336822122744461397749638913455660527208201879570908557392402393865816107732390309175272283632255205402588532201017526729383325671396022463625710968689474930329895131992506895506172555321663929347243814024025652605287695884250324490103524744337680076643296232267216585754468966370978397269431018032473434783106867466996398503068887430150546918192544590992666805640470646277977694071778180110591131047925571869531352876898678648542947547934618065460141745326613422718612814615477141479996569604026778960552467716365582681841099530908771025576191205786135778837170423284810291625425975528310511262285349195254878982630372730389192592020922515515352361879580843120471457092403561024936779155750453482670438940036422215355762805935367648505416965826451299211971772888327115493387317905890279540752488689436541118628466216094884927502446759230780018488493149533358611253065036172534113394404291377577321722106079809586813849760751477337952279953616381577471342170290498997870095059528647192236301662828364297623648229300725101035779767965061522628255258107803518013155032922887550022504584326810781865584721100617589456460251987870403294317126777722281586401300521946492575944351784255681298033334978432525555030076574958888133439504991092196920604666774888854029650894661595186764339828595530724990307500621780052399421932210381134369042520784648557216027865518018175570025821951183010625862357462133797010368640256152871421723910052559941833822671821415131769407938238913226543109593902529672184963053582662951281288002375322799006367360726560464929949321013857005537697621350932520305625219850594085894580288731678398597549349663417079858639038685555144721705339091522329556433155960851012057768744258078933648668691107849330275482587093375970843013306759321389669605955453326298932093512860653443884614192721087518055165575652415913758765920795765718096512645357196535707949309751812121710826923922598725862444452264573487028226888268370172621703853108148028029729691350657250397626921757464881049190302179417419889240557589897444771253092588285328839259072879287921609847951614296646206346565993459990000452341220056368132717152727644571614206974300179828861512960289678651280721830330495485789194751324684949198473254271154218551775360895749347731549966093539198769204343252272309022434143807220178040872540123200332518297419601782832507925398728725115297090662270819710834010166388524410441112504636626188106165812605938025062647724378053593251613242988957466445842996697396333317674440236875637174309749786584975383709230198495133102413455901201693412076542942532164197724641305295520892038553414659452081574481463811340486079386508755339111459574404033280413150518534520293823974540042131875850481525783855543182727052011861887278660340127733003893555912056925155810146440415234541834795876176183024741071589010715697481734928781255585402166997175056387166788564499099100631249653922152055480467598325838127503685658863637035402998001205801088943407787679483312895567606007181675585786197074523473834162654061103660684992345335983748054252664395573513514691513332674833071113044439683726750603631616757390100049762800685511913041712867527568121534027670814351874147829860479925619670330706922489854423996672887383862822770977854451479894187799441349494213951313071081060356067296997290339334764743471851151528305804050753999134425087635969000596750840194589203234897617783358656801158543086819892662945893079344755124176673362696373788676164534328844672734356920614156666875935602786902912467003844045895801587421921346567923227742123700419411920729235809051961130781125839082391110576130078364488548659718125715562354461201026568846315808503980261443093002738208979529392489562027713699319562554836226780684027002767509469586159667429713053803538306266554720240727115858215662843580099644347810637516719531613462106838238943203003663149134901684274138617695757965890909497846223842334256400215976984920121577703336837130094202285378909865951654738349844507082240009399043774276083188471803101216832708201247078016009375094550561755221497937052009200063765208799360519342883409392076569531024668939786197955010647482250007723092456537837131842961332481729339852823488521385670137902215161081137348749814301548528882428351398065336797282436530595661854030574343798404270352988005818874143019700455528556480768929827587280785698581016731592428093083444742601335809663407050032824961862995512844890228198652525752463882272937725010887668694098176803150589005339107708287634623099248402540442796825131615806194391950658009328050273919266149174149752687221862485607780368698074031765327559785352045447334770084368879551623559046528330081877652073261785563954374296536838203397367154828449874458842323260565208594989440622540463833251832155224804763240178833981314189937049227766389359843140047463841480426433456907914262728398100805341788502828006446924522592259580623569688379620497180335482344381101798522035493495923828372151012569592504797231845648263594871141321609314254084259510110599117204073579697625396799507930022285056158711169135498565930574041669606075121444482400233865362474165190285401245058856020518959399463781124121230835817818673384970214460328801050023908911221933936394939609703775371356626467717684152692554884687009802775557332469712986167896379903180270074613882536927048007569510188390727932790558928848179258597980277287086217871755171252007485597446181113901693307045435650757636781901866261733520562096292193321747116243479437307905811697509246820325387548120947053457116714772694271898926719893569630702069852331892737993898112275912108283142721216020800670775734094402221650352736135769632148806595983634548221698649002207416711021540864747049109456399592405024498243700108648706100822052925262877592389221309779965960188235980933960390122484559202263568762434638637660344056016273502858659884458119322787292033982995592340840788182481108953955999835371818937090590607698236649767988860524788511973846494147584617162997984454817381699338945866340670232384344948141978513760908180488421611001353580521583811545294494394572795737489609966680996596246092389389338207882830331318238265836921129515863195616352237661755170669229894017124112674961768850479726108447106150159773178234601798877219172861065598771099859835835515609350302709740422496623390479261880692105547845218881592065328014606351740250913625892209643724270650415419032015082315293833585165963899592593804193212613024259685762400752440473516354170282270545651174528804160303101809049930548169464122467867172532667230194191561881053451673475644676483146301518551638871081373101388750047438130508767279491582498408066873811007856650803468701831276403596693774265733353190825609521405115355693377781681019987889835237494350531868727406548761434836940356267375377284729843838606564135403818524962256056100174953021059805910662432152678633850275563471219607604970332833285552348049190079292797921165008509419420402797906359514401318195045722677875861431695134566694731918521267544717550048873166969478804078832358499614011089152629452274530508556578103792571680768592484254558780043434401091956442497643737571595898185948464324008439289141746406820760358152573853216088593564506578161532719667655062159631859314872817172855303171336543700770054665937270079363545257032240478282579316192990067929337189455822972124241441423342904716021023176779197557630815815694521552733446373486807967311115558252021753745668854133657772782361764757984162996046899814119594482195221415196203136861096780252762114502481461368461578792881121669027707919321269808893736600478357903044271176043483614445273606652512456853840029625387514260081953418196910868218623208121469837400687539212778933125333037295644163663013526385865164858195171165666927837436234081802034207272532672875545504076216073377090580651865812543455572537994796255239540665698345801209798414093367722460466930812716823201865836962394528619087350212508820112820571751369323002762839047360484548487341835958913397684986554028204220898862891389753684795642281825256326421789933471502046467454409978712109008883318488719450822823077350396531782634782667229564222370974867619931590518868888879481278719775918712432880992196603459139249623055299594383629961814576982077175193426945664901964386642968616146208326487691398068507222784870998523008711956254795657184617633262673630159528318697855243351233876318689468401871015335237915884144435365343190139606710927324057404558119801565125178884126328460828839271396603542467353622890987237016863377283053748873917474517313847754377678154540312129000514583513577792050104572202927551776112906932534164631109092281175103630656740426914364099208896660167355197784491927123491357666010695171406745491977101564345085105293810918951292682013154730849407193616328082346399151575205509742187711170915925183386434858514880512070520251602020535535429939338555443437672208933944159222457655025753449189810034123689543583671462960994565479841668530165696278365859998343381992578354927461092724411533063095157196096193888302448587627176056603543037745610092172165071193002162962628986887796384725352703522545872050891625175959993638474232252449007533275021766498002674065732784407651222663500983161959936189248445065590489498726246291112272782368358261254457933524416735373931061588475344453229604429958499000926578681387781004796249342411031129374130855348696451708939411963538090182421781510392593765363173591760124403686038449989995427675601041558301310945152080255468014595778556858786035698012921372590945764665530748638871635993888324478286038531636851706448244028977193375599621013940591284655414467913880344617774659246053695471511149706426543675068876941952132972890775879199431785727279401700556511326179253808461777095961796627455928898407044204648549112312430484944920409880459921825380010245964306433744063677945032060211855622273346471631603285563191618482108044872668916116439398812557045507809173342506076311309663655686670735542841492593699380097508840582170392127386477075858396448286859254613768058704018953109746100578744866530631684014212448208842052161803507776812555760064340293127942854895495082490999390890616790064474793468209151608072889053195231344519578844087400678696844202384181565971160728413205504091045430785427497502572417210621843504670025012092319570714625505092251482328056244747977408743208488592407621864619067110834413829257370136752839573444579107205218166086829016469524833166516527141488222492116830935639059247383249492400413546363265750866851414443987900794403681371663450988427678856776485724433798447780911285307923966900708459939420347395746977756225873854415736572378277924793957395029534132268148913350943923732364628758357516584258841266823882669347969675059282467411865526617652744811864479084373738698005638034720462916557803943647468079806085935209962962598289834862974810636227989228001646508597888600194305477760181292547861047967597396596764180733113453025605018066795884129696099482189452281656663158229090468271654325073282726304054595408846348360581004170589556475102864677340092985658202841345082054156145683940193078017993754041738287591996380092251138129187232786186095932436567545011234668110393650909064203080814893077537348931961113754234338047771814775013696472796258754412133176073115424504978938780812469624074011943793924143235042103433115096531755228537052004338136816678542501784990192650113395002676145204219415715590527948735765610184605893604422623095469260004198440890948519877187814369818060574087882295648720969626162347546429410268154962601445921477177841066126637191503686360505725850818961301007770742190205295001741169679874055630216100456169504831350470015139130985507073811838141986977720623193960079458671787368482323813973293951941351663503325915791782695929655801838707510423067874559850572272592484518522022255892673454323340047975189369344638312337010342054180784570628090551198858628654719891915339471024212442571458869603557939583473546153241908969499058346442730819149878475491269639218893626540824385398883465344634218227150195747206852122706189032565720750807910936409370420986193848742275773573019414761711162879561862355061958217565587139434486892233160757168908147365603754604560035023605262263903174632059109755472626109550936677175009284442909678751504571992826167465669466510553799739484289829968630658112077037076892328117173296845017089236919802709392999759737462122710244744870714301599410485362176157543750585090702119612666613380575368164382792561541816542013571686887392636014315452325447260308891933913198785312538448036596611743901155248257429421607287096581412004360249934662045192792553401483335611390127258620171749062623956667882085595411346298860900341408845616047064965290188693123141242051019521006514843964303260227335286281197639995301618145905011762809029528835053546308585959823091205912653952821619831213985193966096102346719060170938233511372109137076007344659976709670204108962209606655530154084137929950625690804227458009325967910558127095606381361046798758780549966054614918078397757788183373146096192715083835640547737932341179666400945308181860697739564562726234105995307669947990946765114503945767093629048483877542836086788588981470590224606963252775011095401398445909768286061263974301588587682397450073564515955410702675209507184071912397042296599017407156422105151445494033310871818287173081551456235142880536405070632499066250908819973097825548923630641440019562344613984430123429473259690185706084728650927028414316987787341121643751954068620730305415488079970500915178986174000186333710533030215936584501465433575618358592772026261099694216320442032805939587952445970953155184800558913421165597318667082492609950515737227569660885272547415989416717983440495334599561474608666853463048611191144587954870141361793746845086518413909926458946658323293405642793089409422764897483464382527325236171547785407064378127735124937023269061029966159066131046513298703193503536118084003440213245649332414483672749343350850770366344055750210613774711710000503746848989295171842209608359279841478593900074044919940936999615649347492298338675174689527924747312522782650490905899450376008026715081031061749642346292548313019525393796085381057208676679187537824405584081022488256499458679606193610257437411912809750498063093109011766450265674953562345493908255527367194437395863463399520867529123308402205980261811812117385974938728127644364708669745079586292595347682941766903240004467981158675019308007421122590772511226956768385686606090542776132002845798434452783577933931791397172987869774367834463704704393350549058947959498279360711788500602855716911127390381389088889754321901686088441015374359443718926296796009557985850359108668329574488945536344143918577963138765405862258011588590405270065079631979528542153299061287584563373472944599237715446593886555274617000533604387301155790443814702880413929458673204545032048700142252006616330874907111824020794677645389327850937989068242981257244846042563427348352134857555824748453131196914017283366111418858143000685782939011094733829160405598712248970749649972181919999480719779690312114531114575771619088287393445164819863568272006648883306785155172452980226557654183474754682606595881788050899869939168832663039659283542425343214397733393059223056033323915329804933829023695946179032031053816813701457490499260187832796057360512903079554056484424699013049626702948405510585245194903286176227685316198842142693390866470649588929073782739978715009439256604111447139187472249979551760474961620840558233609707905933636687851635875043968162510943432062651707666520046341529241359886420318416729614825015087588939931345469098503678053030599524686326154622212418677515319531704957372323904826065147057784012532648194348138206315343365276326662395197523026598145785187784936810891501920715380758738087970083398415157065701750062892531941114048570902519080998031437855947943541947584873198063869073356497711545089422625195520248441164100465236349906789015471669205017944757515259686592776265994442482022417485843163918625902465740116071107235726799362324057926390275227878814058371804480177465489476415053233335599958401693478728454656647533094865283835010597897890379834088534423882959178604108928314565926343951011263047461329029419663417515592471454897165691213317861546599812061652149310167324379244244621209164591800811717836962143995036166381226420635595997277240559075046636906975144623338199370372264590777967904989847304561593096201606723716526903652553686616523983124528408402953642869692979048889539972993444823372780118749883799524035121288102986403785781734633659246423778722235101913756442528564107236630543142784755026558564027700051145522734653975034381562897853546651191524487798757498252185239963371946135803145015264547230803794954340448605554671017378433753637440253376439831516249990462317650726726031009114698435300858818770974917220632994324575578836829789992290098620745639112643418801389401077889595650639886843608304541113890115322466102713908936549763156083190447734408878140798566428848981138756963959784337692112006298939718790051310635403228962421957083687762434083532065120022769487442741989790083102219725467999465142338102554018049647764827710963448612770241925924644411748311127716000700419532445583510056567300248914920234587360810525100852878894621423399527169935347477585396937995779506338183050026249492158515725153205962371441297474575598100625514172722928868032049541533358694827640691580906220280851981157500397000811666856193407722512646960418653377901334997396997618534305902419039455282608510501201388106380028922854599583508275151244600679086286880982634251320562773232074066929016159142108325123149991464418501828172117510985994548230222462691971581695036804215600367558737739247332917840327507688021245221758373298673452886484056316323690996346153987351690543176601611122081000084658748760897146287370388935005995327211737287813926062480198414453853557373779444329879074316959141985340119673465770042242822067005657567328937479449331792525228951328232489903170511550165602118474381614326806805217380195744390831488897737635812354549398817170607214786520762215641244646675407049491958191053427960546573596066007903427619901593677351508874372708437545003095667432762232544707451639512480358081983913250069246504745595004188770365382269863984907078020739841666727338438224214173601457678379752233752733932258684608469457626992990611492846944895049902028848413423706988915143719774789788044496517650981712623512401193464599482119233648806930073628857662723640555397789478676650099527445159320946689293784091695376113011745665924856296597460780588115928067149773718072325753299575368108099627035704052693342986345433186266968173024099983265076177465596181527608624294035826249763620614383669784676518325392467225377929797837278326438748266265513694773406514861694761261480108850330174067207449970455469784570137529071190789042497123794906809987572196738942059340194571326525862392769072599110738776296965591638190060480985061538881606705853748745797843840288866961259968798291077392602826043431694570334463400930669864279763496295020950365837200622547573028613385399649345151025077429372186239740508197290193692259479997418207096738753649350318570367434225869884728354068871318465487638399645505114866693744914559925759649164163062516599787291737046196312683317559323254759018799106684110508715783396489805853440814005171510227315189441679182746910641034990375197615607959946453830129588901844840168935353647974465222053448091893729673568156931998804015785515932402194728178977733559890307979216070589225366413686025265668471781053242893667218823593564040268295336779617489866615107914419450618453692695471817361892310594377699695973738970137178585460989240345585744030956440344943954131176881085037142210028296337097431963445280776926315582913712539126188111994154598369659804298935136788707886804195838215864414373069564516959219968926029007182665597610767481417169216952042533326620708742475096098491705236032999802054291848635316576603818120838818713951837163461461282489706387944694366515790264782659531975790382968558036687231140899585007657023704902768874853470355017975810613205343674714407453138439869588975831851554576044216305250429740092517696603455168278120141667645463651448027413348145107357911642880214949442672594518121728345066313152915630101402808034175402850504829405967307496180970121493295806825530855697890528356688583443771696010027669286018754138909679252447959880825321090342080820604661719404722814762444041765666317724533292214271568410259373798326623834112968215453796543620295099106568834111238394362688415318698825456048436911413266276415906803040208257812565387572875198905167450621561498637775933517073088848291494375939741656851169854350377178499612967381153422713226528667513894177976077595748422639484394299373920817334237866165511480773293365430333949412359776373984492622870241594619516397222881401746212722114885381873886344304487990553301237627769173810978813551793942418447574890321166824907899470002705399878102216004374162000912630163817726926553943825322168841461180507556300408257526042673171763952321184722646871910490656076483379513661118791746361771912341479250489326252599015976055487193142745283071520064960114652959579542108806745897725171759096641813470735905322913587050588854344661584902110283393352371524612545009112701745452635213025352391304423908182230941313749930304673350957866510762295540244336393627816375069368748925090102358942578055306381360947460539014069881671229234901092109820712885311513498062794789110979425893772364517587108406469022135513604018870895290244802484439953166317652830996620438436056138166184291466598950703197418031272052969374691371973527407067915153825835426765824292056434161426051456482277218747240220002375299161308041334546267637302305347990435819867925064726663787963612843934750710244861318335833056635969524695367903179759036757958609149345853247433085646347009239983425541763954707593959813532461653133903889392352879869090470067012556117982773590566091090470543272795320768583301280343718227531497999697236088089539761496281838576513856131721587634938104017001901145941657736735681140472513085837486352005154556211705896410383404460200246838292297520260052254828352816249113342230283413968397396179675976754362704703337106184384725284624022770557396536206518836357771756870136327360793545764562643737326421278602830191717447570723996314579044229272512435732681289575978796348835384667884412275895276977147817434894310361211859615461039489096560724461539268854548075812537999963797527522457819083384423191307391385760531006425884347504099410033697337441251820569168149140526616914228922773033634622246687316735814388431536249291634086880068208303097318170259731005256206218311141616889215641153722501030152105130912805407606595744901720122592199567847583506366174575740183585655183925648516793501952901543019485369242014910725467242704485626852931653439627766164992788644870039103751652371161132574200733432651876451855763247098298200571347151627149483903071503319510271998554742556844234625980317397943587526233895317268230437522019227734029871935038414482677004578834577618819047301011734951863884710343655525568004974256954422512894973961216286188232571622406224133563867241562059712334945129335325170127750869896821597478627918690552670917383558275207694674188918312053615577481575741846077056638065265763440723152572661223179491981051988042338840620649584652000832305390875960462894578116143407159287065950667244830541436182325784986885663777350730970961743258328206781686534491702168354400700341134284379598985722022627069227160483820687638758259470874566475526100034000756472830923313755889641056650102817245165474512952782311577367900693325792740690465123379449624632459418530620719138589573779413798692849496319094599158985906342880577661068123899887575619579593930776515008797683074182829961870796620391984349024626054670353165313396773169843139887358809622500437786505329702429657818494565939275831105049360851819213510876106590082633841843568342352383905556835848190821446275042371395710953764058013945079704553631268165196979962464421531483833258322965986338389648270078783402352334003931102718368855039892360307161628445205078162868853520137414477546318580267565107259901001040751714376117275059052051042484837944898261842969869507457528201602708232772383152464213319824307088594557842692988303871945106814528534261089973179737266687627745196896775978630015514435733826804897997859121319408327703732419979298480567313218209490378818600182417140085945775553883046364795597027406390464522151125477009943397407081879254804926828678964018510962330262647131414476206294775355613517003382341488629204568329772472128173718984950338309973897008340641369844738806423348826506359006327766729286682620610301190336959015308019216450306791589760892627460423819542167573687298980896142069732879831983314114591039350406513993780917123630953135940330696542521660223030930888567780436739655335160914003503550070866266441121158407376460678109797787096839370888291482758329588342546656455594648376516028484183202151948250802056199046591842378688287790382977838450649109858685892572822418474366913323319868523981234951851385327164096291462450627067570988451356187024687809597036450855987288972788268696196803850297019749419316534383059093911092514519392058194734764378210577971199567051902152057285355829336893955488714304883050652737713457487674634705232180487715813055197398613669296002183305648273578920070940656895584962223449044793241634007658043189742651566579709975721555057138440401682993527989315458297191407360811449008949419914711012184322330361317686953563593660913142255117177284837401572962173587874341831222796156666914827355854401943267740651770005583356625646758303365619613405216031127395662128152500760235713477144370033651324990620376279440849056839292075269829660647442112758140267373546600659369407049212316451665712525186100580738322263915422307241254111082625864605884026899875165362271248655289119561983649433046048080266015622102784131240473821306939849206046021929823503514659269091505728640260524734137005883671405851108271593579114911797246109458069432676738580884496923663934894862113761128698103028039438153047442148941960326360504681395001147603850729444891500707771049527678102912709872185885189575923216363690553727735109423089737059135545896764992048078625061708355110350264622600102605189229432977720955023908911739021881952905354271283383128037982027116473072787469350949533290502327986745759437482788505825302033363165990599989992069193663850327619560683041106378236677610159068808306917100639757137247185749376823798865336333550145824954710380665248138130593806247959133894618349565098221364412618765592813158312008577592874046394457239667853822590034442217449086403756277599254417853435167866827498529938190462156629471428322376347640781975609631071346202690702495565353003860310916786447865573638480718076440577794439287177643623166106285758169853604337248497369201447433479911408978268300379931608996422732324610209924817889151087195526830488698113386251491725001008611823018196886254358025089420117902339062500664024571734056343964826742066992447915837702129345563792848094320836329420497673053866228971612727114327881733879423369062550835011764345783640287532526835865070597716065640763488325286218195515186475019530418178285914505586525635377409489134788569262649340277878329765518849869130659236590695567894281682864753478799802461878079789798598898873330919877122622864299260666104026249017933212084193552093270310612719818961533161746211468757552677507512261123533635543155802734619431482997943243549342125922781918344256532143292767067910180549205446193233955737076524751652296969995891934406584688618071896363837700318900863671727879941531748043208651117703874190888355240050139387914014402739269348880044743054949967272939454135149739731153160180254501338766742243739282173009617503945264693690326921043058456727298645308566369781846321975738674111099549194903193211629115657193122975044563988299994431161208822171815995731006543759003634335579140253541400804956719008888060660592437479611406090579494390353572288370998303281464399168107600888887975561479492796852737947269676909777083906814946890424416277134064566851519511827436599890814606975953751296418550371083653157922695163294149470949163382934637872372059185116191000699933036396113154890997218368568096950742044465272719918017327365283052722163536163807224355641243452338296057617752213191876712610369575979176673546028473227424804432920891183572886865444152099907911889012976243951053919576471457857194483924657082653269886550968610931423263815777180800582792280602226056848735807684979067840815119491735601137871390212326641149679439701610165836517143719131639898803041282646880267614244460636525559753897118070320736833664809053752415835361899604479022331921781822148894968749852147082096086149740947972201595678659936407689752709039917578892025157737103478760451302492226061426304173240915448128758198248147941175002419987810360267121296795330695502893976778403006246939579326116132526929532565703107323250599802333084641932859076390747305900245779881393033739212322978045007046888706754216434384538768511228070617280971327413496981897743398570705020123135694298555117258746866077096610511186954272423830321728833703267399042570029677018018943939875078874210147508734028909528024717089384264780486441413804060113856315816807006324494176639050621466530631124911840132103923009210346084906113506569336394276758754191149403278984111236364043579080334676909876409215201774293066826400748492742390784524783370130786573317639301518806353594623011487631706578293887298461274270393492085201463167034213915831482822437714959515360007543678424859095198656896700586703375725813367893398074894392872915053703213011625520250300402348723803182792992999404166777589234302192407818368786415013765798018851590067855100051659453750814722449913389137662212729386520071033266611152001774788251774860410132194540919651872735418090035355974588326249905545059438809286825771207215788593913038045850288976587484964221161495110585061188475157779309395890073959826380540887062469592971399022369122977589691998359458188444086767624967870997490907290416267260454998384175912532337951684159094641319984325397191421448490804397980592165691296384008835004470939554436125097570959395138318769208731362674530349610896089070041649870274049791807096510513227310551093210409934460709225707010709952233531866465495117288000501977181726177654731209689420142232438480240300996918116681103936452574028640948049743990415352041728729920622269730312238820991817465804570156669216981534801966639887374675706487430434006075259333991481866100544473211024837060476977011224705269108334150218370957582810185235703738881273914378821936568019639422119389307856818426794641700113013989305505084550576270845257753543171046303057092415237829869332211738627332632703706799744660619768733737020360339386770297796848342876878655944621034574336318947365546913309975818496499267759419735895812906195967130680012956809338980224975080561334157245914359645223606223661069461467949584308620998497925910883140172406804455618569944864609590743788127069429413878085924216117047012893843827748000690422760212340517715228140953205837613910794619821878545733468773574697872588633557336701151270128175532095322761708547971763103042720773137153455901203714150840176852835257169858693084297819762100123473333017992155338292289195733229943354675320498725063097094056022557126831266045087950252850089768217661695483126755113471688876116298680224951363866644473661912121246848649371946213471614782673074227543405850488091961806251455257631596434683736298231600833556474499226597830738569328998105629458333846048745856983989841762171083609692887593531898027782206884486687226564749752308823879347386090431680594332466691728835979852900819756772540297074425923443097111066794741046461087334189513172147283019550337224973683403070136352510334626623144947607741642775734069635368330554529765519162395066327629112588476697952613107207430582527452683481418234471333387920606426733421922833405754981500093905239689574681952843284701554989894414338890162854188742475928012016191799310474801379988336608062459545889813994650759316793986144486704820038726401964248950677267505371839569186687940563180845561122125784053637113859970240744544720180268324632299836690589234779245637390346501239376753547347858315318692638331612900114556391697735768932517031782372242698561567123765024492528586332229326023725505446557388280599782601147148745611856255189539164590432534094878781588227786912215939137715477682297730900442923850567536476846055929700152425724162962650690394525428318628744141361722984063575666862801941701998737169520993058787581446886437166552549691465704234483256787024350278002212164480244987448177916437218762333546790337022785758174954429666630961749668484194764316306003803857151358889010108980467204808913187359179814399802269575989983670688722307885199590648426186654789237403255412679095191681273834795930004265379685105818132892638648563420020882268326891022918709979554028612219580172257990502875572285783781410632577044324797433701870436919826636060074081330031212777427489680169522563320727355241305382129415332933528376658106203139781840232293944976674793946948448467515739692126588128621540746169665547568996184266736814926111856030396464097209665653226332220384979419504948722927334026310190235656775298586448765123848417630283731465465181304143055584108592806784338994516778831048533402248659077326483557357647626568158914740699714124951316649505986288170852648796215515388104891273012170399236316560234712908813418593334528131090836928124002722848160411988519461102344865284103938002096178472256737970529341763965747474253466104262468743642682121785236595838532113740686985074201191054577037239486669380992260061930808103443278030415679007868784025285220774139962801380492330277257830132906234682295698090450862621060284368431602121742135453351089363112686029266496110087390172728698723002141200330387508409544301029794485047808257821861644629012087387832641382321839204792976056986829560833434741038888580271970809527048832337980708465242897844219027418045309690884660803503148290569072153902815781662848843483876584576770247944026723159260242021615760303917664251586457185145275555478025208962777517045805102378622223487434079600800948520175717940044639433463347664989817249951110113298905547442235671086486027444232815692161210505966527448490390996560631082106255724465993635686432031877721637232950624377563538569606850594275176310162634322103108763772811854643193456068987509166896536221936012604918192541774675164516709608853713005282531273718467771934309618951564498855192144850186531146209078420105323078669095317541657155297717317027991940166587250364768189613189170527880491375996231631259402572337375932405896455958103408862094963703666972766573443011701696295632779361063172676235289815181852367948581088311340513949247471831588581412381788378866252698309440331114107678354418724547503820564321639358631833932299415151150153231781907802294830471554793976638258726172234715930983163447084726865525033880866920825488004710837673443012526262685060864165387006700608350827314132608796725386893585759758954804860000770335922547421696237094287404143155452837402170297644672886605596402113397925657738010989368222902958814842227989622869997342772922836232222373174102173572115662805631536377379505727855815833268412503925005081804517753067609121534094898469671782264945380413893458414806318635222207086412280722627435036910754570644122524033446375570020190814306843975997615626462320616545681752391618369285350283596929757196334366374021834193594366938190355762067174645263330653721190528442942994669496989148049674968961694153061148903112489052536565955752162512364765537954265563733752641325117109263573560285351633351212808810511575527029066976756583233881343211451985337809273131694840365440088664338864215689500123841078053218570164228803686804916812424807024601951163695964388229134674947363613497223497640934901251418903980319934449611554904043588418180713781531274461524155323193941870468651069532009440894849419549162637002314409655144997059947960136035319656620743378543334843969863491586149354297719933294338684746875504555898032142875200101663493209338280106285527246607331819909289329584676213781837998650789311792451459686049095336895790872603039464467460808584037163252974273022314416635049411963401837253618000421513126802623273046834688549269052793651547408607438679523153440955842213878423074883145884894396677736831588393591971252797985171395554230504942047983318193527711425853463095863751180833398018455417258785726881929527430519044871467061351715755713756201814263385584906329002715448393205026617422200791710274023346177385903563537847266250496753047226003802647370975901477870880373824546173709892969529104895293636352338987779319615144518554715277269645442248103611011685594070390734659413299765181422423371415448410621503218055542807306613100215197081006163358064651077333929860762214589274133334810430259272187293093292611796139606693564940076463032675949253328350980621812195580769367081695214442985450517409088693884010670335743535823747971235920050827688136266243706111764751015794587143567765157000264707217191434171803166142375082455445874470433248684744963794813260771888845725546752027564226801019024898347232625440007750615103917633609108449354023752263878999952089361915050714970217484720591899441473723628034126897811715862503808575658864193576171363569794995991732483632851878640500887411386787832650586352471622788292856132406590790615529061127361777337760268468147273278628136196500157028862042240915339816215771668825608391652549455041916181726968491890169261948412601112554599271386172202984878517560107671896281398632873251394678950193935575827997619357831568901390278702918998242594422234994762095141008110397886978978505770784340773657533824894254063044072702051310978785101936499042958078107863343701509099594925704636688068772688061662412186168048131935289254334623417794618702539572644050935344551093151175102616780277285469647181586981885681405697190723812465084783393711105833311806852092854947946222681097778272003030799826562015028153602869211939312376020020133206955295563869677442536478595153123500227893753619673225493104146008407877774707215592136556995394435863049823562161811901022317061336883911330859954755487581800092643833313424575220570347634243817578855595089662630456487347631874335216871418966894929929217607973891695976773843113103958109917649634500791859724306755436283040573037718162784942005857110186322846831470237115600714874333195692261027015725706299289162234010056472329788900504587624895392212756110997629026902816912214506842148218431314842842214235311032033431989758477145640897251893223771172124272351009108680873356387714854179984902169645149819607126521820637778304666674951315058175495347396938627415875707604704454226683532902200450699644927566577818128816556137606863662100733067432032842316188620783399517663493288225401923206324190499607772523074827811911002468912775134139333987355634047956703408615136807346172880197717231328744306277175689321868528399474664371152363614584238459255530647058651913843134711647723944485956650011525945352098845056451972881601878032592272980709266875971429356380230237116104407694187832556430790283619769245625919537019907049375419660619976752971127388911932905592630449368735286415103768641491791106056735798602968382613619490068678819497836616350117521887061320344215724046909555244029991748431974525023244051423344568302039691921755410733252275555332771131098687676819969876882452677719990864464734308129025998620102243721432477180464086789775044728337375454926972845743226171680008524312833506706895481228032405352429752180590205719925572131862432718507814826117989388128215563888838235743397008505120455292117560375074347423448490873468551049927743127480256726413297849469277088401696971097086697152371386719222340248059166315720410302014722866322761630428853492255912020509208474649458218123924446598146969110900885696027873780390653291711502162778040420838056565475602249122103040124252892211511720493173732510858140885476392559257389238346647160925781368460297317800817162907210812545082963580815226539743443451977402011873249387081591911147227285221344294656304745590397506906714408009098066660098286190503464684832335300776556944626163980583286209203306832555198543237916226425820536236574594218502378182693804677805381697924398729063227605214590914851249655220356204361990712802789650154226862399833402256677429296454939178350120061712963138031010803803179631437559437102209675923427612336693145155821327056101228261482105012408566749301987114875018270635471905194877927195853284083544461141299483647283872479448868367880791563758636747958371648792110101152227238008155636654512505623363905481981968136782751982124587035947982086807107897064737762273168676070229350696123299841684982120549726735505536572027606729246904047301560100936326021569921689097960833935961448009480165561952554075696488418562498853074064696863592577742442745459684945577798041754119135678121705925311374064722000334723272230151999325341844541754361183770641297477296543251969219401502348093051603570947761378563236462897560441987165374894066451931376970185630222295655301395904467961203086218354891568504084678219807347603537715082315788491451536938963601913572030504771761142636575604548961640834253975607934852766789541429392073745723956013968478060888203255240680197949345514438922664219124145576837807287661355578582844963691862327585362071583231059741829361928721778976057743570437425666954891081324638225686243549645829637900332274678699384666465113649970078849123798750607513525932136073371462209038137479159814001057658641573136553418017495358018569639383086359338108618073496745521634136321198513873571852792348456157867377807522301909710307942766948437635959556096956328209351325971583770451871149215007038750868738685224004976871987164864853905573854342044965556341175588703078185519161477335405439541112803153630338623874070001486408256696445741285012850857757253276080429226214573010197359522158980851031463677125450479149443362648589801544160888977498116252947548087136089191890424368515178465588066871114376609077136319639191103925345737225858095629545109796966269002026672195165303315243352772274092341735529943710862198073844792822597436706315133285561598570312359405009701492232166225358127782074277600637538270518133362111294460840631275091861643903572539033624406955480139887725302850093640354253042873790127734095993257130677307535638234829684395832239884687050585784952717656528702347499711838066466696780739188010097457398168972755924624400456632069238836178906939594400780462922044663687701243194288747837719150316571765938169867978528288477566203629697916465901842517155609129584391535508399843021974777935292359695475215444043895252404361415271497595253505838188441212737501508834405232072307452418553682101504758624400408643325643541095079207489677574716499612848862217880975845348178768526508880617857037837665937779515546701627578025897763480586733081087050416850325039546942675912077932753365476753091220789269710338703122580522168230401076798670211626726856927474645035807291780603397377460796935293132484712511595928335214586386404741181814620591261713126398899224774554073662574410363063512736409424606877949524892172154265462879161770245705995221117445547794784499876957237178301748224551743796235874400063909550820046681956640763066203409084080117961741328204837814550547307980523461106231452650416068091924069865560838191169124041515252250663880840159361175843651591918856757124366151124578029799746198960090114870866705627763438201967016827421087384049100788620599719584904354934555023603368479998571920652317206842204184658229370406025807298965228478137543371201305153591887502250104528652865633764885403524636984304362705610062987331268223420255441242715322157693323524792547838684477457493740320386216449193839519895639809858537117950788034576382694222522193370704045471017054666228263690241982715762263692944565177115578019411100639335079297324957171259996947154333282382223876849474626173512952166479569551592195148176183207651034600802186153638851905107761647107678500725184301419546895022564537261453396870477685544892102067318271651497408652671729898313236198204500652853867949288048027657180548896350286311644664829078923301734891622948378336508962423616901884481950712266363838543722348348654291661827397968573863430013216331238586586073830187474060938348500225145809723490471215567154924390189917712502869317688808248345187648696679555826430808679546182647703512362978692127258803783453114107772095381893402432482388156911833515792281995096237267672264781434440720329112596378528833656482690852176708856780971342474483050583150657492253625009287119397694865748831181061131914578600508821255594994306661519420123295291339563659564765095611012152549421974791530481077410176380043536357202161601086030759765901360879322258035768760997857123727537747692831427864429929309051044965838500684065829627470724881672362308678328587105650074296798480182411433854014292114688948162114216736578649426236366035679953079815825454335132993535512675310213757021913054369929495816875306748154343259150502463169698516409731519166973771868790670874528112519018786179736487441711052853843480827392910017566467948520507851050905831018989433015413769277132472345111911786787360987470197640684562902491047160265385531749048057711225169566902565347942444984522832730343183496779387133661956466340735552590859104056245396099976942466201969586828205364230783113453577284310561743000260523324815068488062306873704501080259085521515110912326846478973681832326378598271030748451974808160955915580671883427174672251079350264590512733085076377821133434427640762932669467443274051206243978728243909232231647277653820774082502639997995313235697123808179891008061881461679320102570284388612571183685077397941018656639288204370052568443135766269731956753595661698100223350951058520910070859866321906234977551751862692923935451336782695778535017368297053360670055412004299650152962271602627645183768760890978099812527489258826782483633457828702798784454567406538956039029866076143668909126455939694698864882257000753108334022211814083915907703332012594686465289230561046277459607234662718610743044159665309901446066497288546083973059954994055658335647423273347645168674776000765472826261349598348727314344962561791757741258167270926997650076000080106694853213038725041465824589405483068210941442987990989638934955723174914660954855891018518912416118516366138875758243296970240975609718212772777344926934822155334907463034382896749021382837365808827797576432772715307510403298422256157982349417224768009173430958570373619977877487393571788484409425871368526656577483698964612975578535010901216602589690030229101214960016124064097267618735385862185806931307859104063825313090796455305894359897610412450580644444719166034950767597068450329546921929425145029926656851964049207180810720315739349504544000473149555617417905938366154980842282575773037298320781565988618802610211166873203727994647643217042452813163574537383535628047613814636108012409000563114233683126760827779562619939117816970884310419929153617823708677810418952795056969745934504241606908839839042219113051146549047622943516732353415482341130432286059202700442760216111047545401263501384433996812199469905231394907853751989666782864838324128548704398543891933619637657643102683832282107509737486023044985266333394204365974838878435397656522765272417473617328815506387393406481011980950574620231459944166069777692992850157465139244931801656255021891302661706734481298763616576094484925557804660013782476469868842587286131058323326586328997810958693711142046718764075352418623215328528170353444065163670610010026012193626992396994537780404537285445527901017576596163586766990404129622378054658654555952423394055754688890878333602277937859154968647830069524716696109640601128392782304142964001198522074266424784756591111436097477849961005662961271681607384830150195507299569617612873737247706485936193930402660452761210508387042929756525313032008502514580951003828091918526912119989555182271539801604001071099401846660727149906335602009120433484495508570594582568810813562907487507974341920244687644181786290921244810478822216880929873820576622736485041718316642309795521990244287362103164568014363723376383673918527340193130513517196789023104488351133171924036278721694494849903704512588026661785492048687551992919525569376227188592399477974497360863578862759238793234708809529863122420658484150007250390494286718322421847049078486375496248750604162433988932609888766654663155601768363982326559083499862294593170406652225329609867098286780642058453540642616114511051988711512538083749035719876712437930921634019950675612944777214122492844039730494730403014027504928006438036134073664285634750928867035232397344001885095261048040459479647298938757107880552330170450984189834770833246771732322530712188292597227846160395429949651396343476433664263313162559541554052876212559765355005013141851959442322393645645624528176747267499255850792788341427146846886104912046115665289958852295583360449274444427983788070137026769599945049196194822767511345723603731298533576971360653279552416521444449145662570882540101325622313463139775101516830579584083352527371942716627403445225422645030715482788694882946164055288566822679962675472629432680267124900078429072963553855240171388919397515429891914683682895164651386298275545031885572872743221723259181491946431129067136851871356553329563443242380611980812667794418544451999159888735055408860514946458346154942449915449027208776265735590876240895199864933877580350104699105865096803185295447125931379564868357864613634936022234661551132386016875712586122625847679108242849233437023591420503092466253495163803295462875135574274781909329317513038515778274775578004606447431942969896402386445027934946171312651630968762924710351224241865256133570600615377861163385009267415602106413455839638559790653747531775034465158860915654904372138408784416432001608266260619310627068118291223490336878588509310406263752932056024354480738735718482017499392178677244005512420194770047233115776553489176705548501642001532284256877074544245909728045231699403611241454407427997409224860826714283266409286793102498194866672817201990052229212825091824755347037868633906204182466375603249998043271300720186494987006628953921481156353059657509039749440485456174173514772453449602089554134175678349201484433426463586425140956610713248050695222682886890288764186752615094825483903415558384170807940219874907729979037433329572566923372159006534290198339824732506620632693402238040519774694898609768388182747036968072021304122671249436694465504871407709461098975259423246523712770779548105972782300369476485195983790593250627898380261624096412745363497014547103352511087902573171579539537209977716638344838535944383762477684785534753561480181923444891274590883864427971364122139030870639372949734119510544221650309769726142760049035331495374495540742008992067613098748086538736963451737791298639947985021416189322461688514768095250044517878717355768581374763547175263583410345527441410811430809570183158357438765146900306647907458390309605157617132768149195409828281291134413592612102894871620729641252348631155397936773061630852587891392361073456219932963363606126036284628208276525776936796824921136649344430480347414848077955174271525825079112737503634078163551476235709240149884351549857005705415657461578012307224729905188842980927088085819111577303478901513872159225754123345455014288426729289962732330369603605740437523835038463384641697678343839257982034273536341137336904723587652475732266319115221102768611606181405671963820521208708191083734986077421918969342051981752778688168531445100416527212473182458081818405682750962858458719076925735657770922853159746565755801428963665442105904268294568468201238403641587279127254438520757377365254476174818795075367790612115649865162605483110474797639730737073545042664353668028541183488868637062349253907371812536871378809970743593812689988529945108568452648697054085480449995495690377375477981629008249326710336635588519743268611883477530643164615773533956845879246306988123206167596535028675973062198867240002099738243909462100981048850758887223953907810431418109897502435220404317695334650918042448841656550201142229558425901467908187871463274458746285664258415196989868886804524061994469694935759466626833814782445920860851393526870588259815211798847762176784234161536434291949300045604142822204176777008965480581435059937937895599813226278527989563283923798877110370566308584679016446760719507688269108252547047474591638993986581487413093770879630778222646447037082447306500542141073589935083989975346583552285561021500242782869223297037663219090002281237155162147458311917667018522673562563000913534682810417970629325540900396846804952810041937742508560253696524350770019380310362186349678899202195015615447975635300501222165466253345575164350101705524176893090748479561751067541382881422950711870662734528694870834647806328953983959081944920669546074911370784901234802900032533879252361588192759332944474973905305844558576971343963057720545981297757016594287599704609728100080099406098518143447316054670168472214556376584048924928955628679640091420635047181548418878538496338274489953751004961460883398647341417925010742587571082959736342297694145404046391801051387108524722585421266243966808629206621335176498309776692624931567033895076997919659126246765731032406966600053965978257233482774226619734643178598757523271789111034513695900360365331954163376546757394812863607486446722501390016710108400796278733727748254337141576346993747242657631446538940793415651097055899839388831311101816378870128903908394549531526378572403945701172018122771935764262467897298104308840714317220925947345103907434542576182078402936379148378958935109765276496256750093496073700367709013696693148887732216894152723374044292038122784735919307249499658303328193141253181925513355986511927199533452234661401159788209313120016855387384786905528038293502388948442192215263611078299864353764288392466168017343261627389878093438227356846948049883174644253348181755034051084487650982155061016153526501761731913767270084612610565453923910343494721871891304333021993487579223538096063060072812055084547576533169107960207080979060652224150214952558333297131988107299095591457158965449011124366069990501889060409601076100324748003582948201893493190681676810092071877837055537878888677126304470741111394172569685464907478611688644361223661386807822175600790782869868342247311118362838798970784607288919322955464421564307016699214103713333303206451892235416568011620177797212444070636834747525795331779010090049166037891904203727467064275866731547461812286360395688615371758350001012732845240154083448280871007726064710410306270623725528010584662695671082443259211356661405250098595680548152790896133793417556022763277216772360508994720669488552006781176169655879152340318362506103380706070203039681418727132022414060300991478476350018275675517430722243027123787458518396991589061284705494199631673601877893148201034261702160265809446875768688047199180630541833664408893156492719565229354694331316074368294784683451197048665415199279120989378952531927940792077770564950673910810135135209288866283244083006122835956856165330757791114089106054937465119715609764790026152120905194831956906974729318653927743950123203446800195819504644152258775579416933636914664765052059398076756019842388979635639462739006769957593372975212877853678248772935542819252369981242032910804105148169906668008580180095999014580062233338505178400420225487481403495193020284094039171142531205434900162331275132801639218636345840600948191559218787349490077965209424963730606113410711489805600130789482630483238967129549008368678326648759293605735445726806456632804025601654349166344239945307514681387124199397396155337273854501410807134238229250746628653843177177775424837810974588270081450571313673067304734848116735908908266265231217884861367406557549442977281194837244101084875418901419151461443559506846644779590008707706113439097772750944209870545925080603655879861817631285059133081708215123248059467087568412638802640077811133709061140004592202258495908667893794937988185305318683236993753896974302067612019044480193000949520485064813981686608102335192055054104328861402692571294598887689033412517287391790334075461928010895358166482087421504778103280099459381067687815563857847526875807001951748281053782133100887478120442424378426440558937528956077497183224845980498143907584008438290533037084656094653352129638577611982848164887165728043962815503456120010785774828205294234126455724232690773768636865044287175463948998414697892174329229682173416348763815975549246713752872622164476120157163585073389495725942884315775319766294437689184794956202360841059531791887094286575506574697153843946947757248388528228475790841435779513071752504239962443815760280823480548125358828504329493288083045710740084169450850434494633017518696076962180910783770104107097637956978690946917192473278358111710389905700163472436073879635398570390611114568199814336784225883120111141301471194658160924523403354899804198146480533737599822255957582286485558597164683614064448583116890469104957784140806580594578206465007906150909950752657518363360482774677095180197568468109844734982559868673035006942513834666625128242832981531829140815321890873372979583609697029078168319874698639378084722088380212561436013304802809862762976568653039846255974528496692639668372545490021430329755413106280145931571183173346450420943454113440371555159659795396427658923478612403574986551240060971564803630623989552880196275759470228452040024752287119226712017762902270772460815278521106152454162422822044327724685808678846107743669547160419445664027869902121478001069401804608452335857224324518138726789812651409841064523900934225423515897236059590011234863394470249113644924441073478779345299517837995200666942736134810372925107773364799641681812744103105047117833468658134063911502870131725608834044693304258903857580609850604905629264707861297629122584045975925815769836672028622124308849601946473490004577262909360150133347004975653285295555655100035036365589409221736646334808687306190341757760049766146450012027964860534942689746853904585628833923601058824156490928474607458861246003628668117298236222059660892240694078386348316329291669641597484854243935496315002560297838334242103170966080527833882635915949568692556954504645263953737375770615182732184743964112256989780601549803273969977673987516472479055538830361264724238921823362655975066804509891373988442237426123073123862863755524589766632564813536723831216428481139903645989670581630726213366721975903753044304645529947473454132166604245154650558241613564980564575358318470420361156557925000180215033932328375586536792203886857499962553317329100998336300862015810623348957970709704293709690238191556152912481731378481584748272433401361190334694797493131834561794011491437444808589883477803190293785401743432136712759022650362298733112332320998486035291429314109202394415619010431539637747021290570316413689488713012850150728438560144710896165482156357875002008210897062975017134116650133849269587802591501002992581064861681887670619085366537892409904844088397135480319487412545630299613881860119226315470109345169875306203546662625664733808691392963384365995037351231113741451500053059253478304644650850784437947977248692180082405379997517351035548637399258227674108928378461266732893322927904543111222229068004175111051011465301176511248589159111629242531046851895505349027592232023582377921879170669235342668621725047056072629817087724773587947994896867391703021339158972552961779954401302598112085660877438310382240033976359862874129672443776241251014163495443209963708482183604163053380823366587147619805617154460055431776605916847097749754243939112124244242984233220773096333101117609611489004474133065446121428924895427167333438305322978635042728957726156852136189621594319333842590872440196835411628401984613495565301438446618845922048478452030062148898680345117099250691178864215801980336051557099818025744769910568606827865385544486744067122831522309921855655493896273198032913678646158560553481378257394667148646949734613889683266697224686659563359022711047655318765979114095754498837412116406965484651580426852611450161185486171800243057788589597558946811611110710726518136301642030786391606875781063451413756170012010793778320144523992125352282469871638832107967826881829097878083121684825080361525087783961823848077719140100018031377893681344008599895613648930744774408431225633160559719673229377247024986675382855471378943704483253649833204324692909453897634064132484393883444757761533126846420340271880971161731682639803163285399181647383531870311090539976471412841618058891408405331768538689101174945967252146172073766639646602241323295572448975564339881133932947133598818388743325237514575624315457316161119038236312089763419986822837723725058321563932842391523364623631993093435656597879561377220172429369456443992766671548826986819415842356737433474987688577641929819045257239077739461591345579301821306379235680060452673787729381774475019703722764330331784379670243964494419938602424920174479042019238576170972239976940646711290232416668983403108529766985285506137343685797075287778297141335408861886084406864089905331748523543008305310703152120652585014121130431901886295397547632708970348176473961991181691359582845538776716503665879570484869254781409737167114898702470758118624139886705170105859063867690777912424419107364561199145516223590428446974062839864744627065886049384458470772311997953912677429907812794597135318730052387096297790459293191863157308769663577786631555006208159988324964850404131293516981383437287691757895164103509704686759658801970215282814300184770510668805470519249508038702547684688864361583336026383872737411657024518820947157637226225350204349759594519582319529564970499194124863282089828949644522212944975838054429818357869016504360695164558467195814287713311060906703060227636536184673842711254458692358286686936202876943008069879785490185712870304447044912547368620389515978127417399609138491935848150572893790189308533522134606708234368510773067205972075973337571134365740995946018994803794206528202215261324889888180733940692479148669326177063624122234994058859820518595078444219062447166461752652224210406616757430309932856416945731081870667019424948634421260866290354154138713698972854137687461359128281923256504875337586405413842609243128874111606277083060289153970483883543939308130421113114294002994485851899024415058971412817943577784702319630604918038918096336484773700190869937032055876812205753514017162968550984497003449268500918477127701789759938130539421356078308068964904166097147734228364071389378060654125915493368140981432529369172310987359325226510184926739194422867514257908024059524634100589229494828613431634711571912255435462479716605759139480342263826744287916842485938701256086363363230780504273897673727676438860444873948807961779957794199372862118793713880130284861491175323006971234665554897283863871591099501631430514935061211143611833640904572828016777408119840880710232103900692082947525651025710942836654480199473096768209060435439738545689257463937420593022424486398095985141336151859505206468580093375097970666032725710177983880385520703340949083270029825102703762925784134721744630553887753126330891267058709756215660564561316218309561910939323593736400202536022572596988346573829033008145421620342434464708987797877631460784880171423067490216412046755067329929239960252915719729042550412153278550472427046103112371563672495743714062384410596482523747579340617574281593693374140504351873901430588362361050632373772640266982083433600925243898604004377590438822368337333127685944229779053245701229245943181769383353839084021615349729808605576750235236235905603385214418185250335640352554272430196665139250800517636732226621654094242877073955315895733550716263892426295125345710290260228713596366019634348534582405615041204716640793205443287617394036301416884725530181066281397399390309971246118596440160198221370903821849812274420806683362682105814503828940387549936120333277781636434681130707385646802378599331083417254465899918264080175470261484797070888992213429048411564480287586746088815869909386587643047528940362008080952973572969451838814124589539216791146202021896142429232341195883843631760763350073571684528821317440724187801739803673049517536190065160526487130247138952286967599878682122246368921804201595185985786412891751468178515090538724051550447556455859241722744198202263175535620449855437501175850382250033081969950541879683886455437263125928037821280959727749600635414163488736280075399206108451307308428058407577446379117163537851413079899693058908849513769570917108990260702205166459256383523992599635933282149648457847766686941194423345899498526450745545068304509133340153414871560243360555788020253160563489188966270191317479279944428632271362925049070170248832507008225117296175853085688872135265436697725911807996465288508467747421880315441039516100657375255865865892928320695724092774787217411933669618884995481033741984458216649392432925699877967669959770330840412117129971081099398594454480836045653229384229767580440400429643498267095089062141742568059027480249810196450208201622837341427363080932549237170193528889436265751740219621647324735002097105068294635881995022988017294581746977205351670900464275341717560343773143088154667850926613747139503334827537376305052553740046005739916176802203691237683217849629466836288990444430853111167975095923960842219473710378203064114803717355728556828302143099919754959852439321825055284819412501326391479712403914839104462235887390477784894910987928054717548700375226695521358230555517375239560792303517339401786659873604649590730065091356216593187205967826687601628129347350180501146353212559299395450917028052358999971538564981421092719495200842189336162981469586409036722109646814515109043782306007012469397627444868805283581901845127286264507525042656914943030668363793222461181114798838990441458959545318036568363996878885207081380427807349654004741611805835049487856101809187051196189664938136470153763035706338883828900977870598284431322627290828960594567844425895546340779765234183245126573931217981604022703421958575664634557454810203036382911062377753861240207554983161522034765605294455333616435726522448288536027335420673613823401095203718920825965546358537349770385165241987885979731944648803329993520483349387987040269704619650362338009362496764055787288316869796113586616773929472532812291398830073237165905782007844024575183443757076236682622001600169088934131843872202083208879985116101056578124242949462964453348177728326369757516961773598516766054133307287420592217510328478967351734283287918812805557331818065399148398916279491967901745678424257087104314827155881858849318903604848874849291803823553203367982310593796012382696170425459187721462242408432979995194626211487445664583298251031469111986370944660667007091999709539415045493822421979022536279975972384309720237842035166020493776118937187296955955550261393899032154830828893473027378598157133582652731374299841098713024007494792479411236016868863114832553870569096185951120438427820727127082461216366637288132002298283842307166270929106039517680348548113847076739814853441031254668767868945556872664166531623397262507674422337266034449388502513320174034892507868300930871718975279446217770165443713177982310256283043949819937925791648264946234372858970912873449783121044598617488393758493277218439981726938397803526478367860374498390058084671250074313137597767825831687139584154500499088740444434006462898268264533730347122693354682372484500148637987371314437037920270497254744502257638401016305319698679381717649235872846480890943878355429370024507798899473798511473344701417248183102155245170310263701424496538274213017525328692129881131647887539903739245442868305904914575644424018210382975606090396193337886471028915129772648573184570003522791491581789116088270388205454524263566524691466731789320080195125257391607890978142995682696231242419860933325940039776004013284459495093749566630262186728361172410142406414944727823294185946346757885556250635173695983493568938377527944865597367916045608126812642947248563179149071645222947880505495242628308436879749082714900744428000191253389367164791081718314821589749417443477717493777930187843885897741696214256786209368441865274879277431441424637487351518316422838001753024449174269877310791098114704729891981037842911785821077423421831772598780874281422803313599346247683784496715943450185989349664001807075264154518356563939656993017325902126821494331774173951428788103918640526711750177772778400932062649517165193649819508567498405476215654446092796611685032595461269259391248850330835163994028085094144749724024199902964879681714561126879256750609747003486559181870292582202820835567323781338397021919481641762786631605407574688506721402473263163657291154582716536580127038385190837759288714334165306343134197681521039614368847374177685960483746009603179956403063298582328150474750237198703063804078737129125201357996178362113631250356380130360441098814369107475476683806131821865679560791409133149271122482922378238460598123459056295263291765456125369339233080968073835058627414393876011445629712751189048215628326863960936132523608072615438001676476550313721997744887011209199874920073526864614823826340738529159094253502588550412538532555928984371049572835528240195686461155552403214164181169351852084574581247471911593150278826727247318535218231512591511658003810567529240151354335071619022156855186770475431038891808696277623087726709235593494183554114124454878418410176441784189218889790555678503360779017749389171390036701119712605009784847936826880383653009485374011683264583073512549332355165120798706193464720345610131121822101128265245026760982800482825308305586117626142289270788193914786476795544064985734436348726328435266314247775634851086942933855207469693478456123148785063865277740624787932760604144188742080673584739165496540369746219277781316544627433175846806248812875881000720872109032915870230158308310078745870425189489906655517352674011277271704742283051482133511973424596175129736591864431661286568803565502549012786835208712318216716123901186763055792777393433221661227827458764157559892153645955757030415408074332710650898686473380872060378269070198791444485004031525718730924447685356994054938211089778719547639816945202983041616582860311551513402479099323083526263555307322524228013367135108647183880551785064240697185690627696598337130981440296145840263971538144791403760727996373273022025165370686801936226372937333193187695397100628859852401093584421607767890940041502149520469073142124161354002746813106252075433847700592541718317926571683696162912618684158570783357593939037430898207776841644079460656874981072147121520958265206533858278980194243459555025429477166441034516846417866427856180356331328036131736797012352907433027895557253809575325658798537298910474057265355016101404784558572975799296697774838059438675270596665387621478273722852501133207068370367840586540806257784032097413437227320507917922828902123980511170732941193949161630181778522054802132673975021274637391975731042208329267313210171721086349601638669025345317585171634414887666449059810940979404413618379493990774825240379428521275866491318654333609614353221627134925286276977731577706342960541367222061157713519165863870997785499270096956854190561146605605158294002324641706017093332699345148751009312886410432302233901517961488417727471131959270738059192072291194970802535643216506075598655871579923129199143643897487293131176750915980786706458732585299198001495444399390429720787359672702324960252680323442506830885978322688417230554308255590401602702908179065687303939637990804438645410511204378779115024427463104524725158160018266866426688409323636329549919967924312668134133152182926163498108358898567004195071297053695031685387439686190896012153977937160103994016619843250143815229512022247174306171794697839561237571803448031812603044446549204171072906567426095330946085208629387386035482833365146215968012808949853331576405260645407400548250196705925619963382252635674395946271265751817026067183558336191261528442465008191340870301862984654191027785739340771492686430679603932551633618279960799705786153084898250665606866589080116608970775960318847070206839620302732959527940591603850103585815857365228995913463283581270018536495506563941371902442851028943213431346525048978187370950450057786446623943689740116380332440741759604626189142735366603318132443054414678006035451054372306286542431704684221418526124546100768187512189498828893201823814937384331135800332210231281820206147375120561673032570376204955312886804591701787699091175544672409926670672000469056141464515544683204001202181113473086012136229227741185798758124799940870965471659250960269322235213981044185115542069786340013026582640483381491031450492633504080683175108999819165415201761970176478187054630416356764579765203358773466388828682529014915625638787751887731400298704427805092685258496601380765742665420392083109038354250017961811231483599373102417572405699017035684859371915561404177800400756280652070392153124494144066602026058951174891528052285456394087662304902161169777500408032856959588989402886055269339706107213664433716972824262027408031189109773724605737236464558194662050544439513757730336588238166617370616571708940618171610440066760553832875213138420180245728497933250530156276436517091595845501178341407981406528380161181252061393337130120451989962523933185700133563240848943894613077404105212800402189179286588766647762439873204194948914233387721736312704515669949885062058367152380204288431002267896726025070592110603344599159209867080730435622472907977376169444292778426133999974702191083637000312407211654392432216226311396235851747236932290557524791490488886092935711938056195936495179300003368859008887849273774007990241824907513699312749219146150126995111675625429029559353524704101680775324471008387238561309074426913802805832098633294992675536062129514446438527303998634744692263342913302353999600148101084718888992048308937745851123538739838257964425760971811008873951511201607222568528704445919012562809476015906711719987542802972037796028450710118688678721555741192466209321163804449011268087138716262374964132526291478133265961452026698406949383695408871522461483539688417717501696685376880877541911136843273409359376375432762318020268336353496431109933174336895564274778138060437958974926282988892272668788776091799314133226026073726549221979044876321116787396733627468943245219957160030148239278298648140152892879317756287411626148617337025054291489687264576780470267928533656309959653497473268727138107711784377219978115378890976564929557436020683375859299216156233045254080637100817676770003109021424945676886305823463651669898283429857090940706282119149879551726430892285877061826972529625307144103348206236773926936088619544943450900580619015805784567135981485523122941168761104869002789594037488722307141542662606004279918504807868942762824854916369641831591817515275422527868353561943126209811078568263254445438450201001936200858510947712511029576371069374655623167097359132209966402153891860795135023346173563055575372931485205347843934911179902152571855289992012640510939691625737304568528840461785835446410708587072169235104334328499084686371658257698245347563445346901740470342885309936601468498939111842906015427247231885729134376962856591472781898511650323885852735414844432046853023122259253628877562416300797233815558151694183626359263721565709478245279904370551627541498745472367175318885947269014895635979480511441539341303332959723152438418671528459049639881559922007465574513361763854738814818480986989602869045782640983992859675301582291517566215034832918353624217644027241757546742727941761077270490378678042025945465888919961455130235762986653376929707213100455047588564561653913904241776612153773110439236143377318070811002648829199488555657382661388668555258666246986614583832379870697882984086957259649993392165473238429472771666934861453037965434288474857601689232231783426946963649088643920043350261862264576842852371677878607305084657253896043092035439504570285392464568249682696803022522153836350061103490533239973869849309849259453761270941939564216843892748106277891386842519360758439059046090120719811751294834443314934500761367590359787560815312409982009749755217826916880493805473112885073350332133264258122361575124522358140783553638902506357370622956059805388104940287808683811222961251890896929913189880789605203989922061423533912487471778714138634171955629733243015515171660375538213152633083767135932420756131289921228704473189342781172850812854289378053898427791799532280477863976528304497299206407552932808092119779433376319300251683145874026818792666595181704019056665835239445260688140080149855454297164847473680622062065221767649933567283918950366502015786652696398222451158561599241063967247776007204566557299084661472928744141746397364764965052378169064892327243479445326319398797639137087519018147870312756221051805412418973998406738676618542645855063926864267363422123811605950839824894553553626584657216548721971762450797398606610966477194955914034412563812397224724102471680314190199782031034947865603488270986672141674168401296791332049105440371295366809011329847653703751904269091372971455649900099053930176679117540948021295411946642413409091128957463247386128674454609715663995374951498696974710666921239470063581875539185350083014288635658880960650557167148204884923727351298970998837955479604728725806744132872338867015469410269021689224538936613937812200809625092356997378715532193097271845723156944061577219183540528442239300113515644369778869887517324312169406097954124444833947300390802287784899853650291693263120498286952626918204838494687029227749644963316466219699606101083478420885730106958343287849971244631341470612675450730292490171031576697105061071920354631067384060689718873285429634745684073434691727402914946897754821527576672708971392780529437940962369420846063155991881039712759615720818725816407712165378629489734202728908037633075489829919525681967849429645725158144217727587420865486146068913680086117126212989095796142619471584175518370078347064218073526473924068314944600901047643513561952595561520167672455801484064483737368631279142148715633848225753132056878539017529557806180763261710455731054028877627846888471182367544845944100225143739969488215430290586215069895656640618919403877372392828625814397262779870626916396367973866975772365439039781627587507111787221858168465146244129315827216554205217896155695318808859123052448105815091779815895820127059048590213504387863720657022423101887296441077860304025627394569990020766165840281225860459398605772356819715165275872937540788561332303305150621530103319902309228675126943795777126279806071089730954729854996243254631105497352598293523376764584834701025117394254033468968610479238329181650085642448010110672007788873830197306421229604261333357702471954170574814756200401263763110853993555009975944923675451239159097772155673918177690125320296998869224763274222018388561119095699380499040334874439947717829439280535046549043721858034329600316857690950914290792826570202532380219104528045717194772490648830124219583942969349792597763362707844161398539113111759696470149290352901834965192411412968280598945805278110397335069686553136061708452885104356325988566209715291528385159323387114497790909463045727675945121039431665098183143811574583253312330578606280467807314967397613516355209866319651754259867849874197008055257258288354534366240837035461072574956851346701062990818486051458597656071010047111637249716872037925248155846766891225884689225632190868237655379426606226149887640399622656795992037721907078298581281240278461525966789705471180292041019834805739901868711511365058146680056188443915153141492007566675738778100482946968585633486406324290023161019591540611804596907327553586566058490233182373627382223176705828375461037637785899395176274911392598676074988710322074743695733483306684968498286323957914815838815300040257464835497366851972235305630653072223050545628732665926585342783097350492733560271352714933097655882501336626413925615394012754072495825985964798377787482337558915574257406403111558359872641731416495335519495057029851148635097642311532430261191833996562467637182876704474087419474355932291659097372028991596412004521965881057094418500049678839082201199082914581975531904103860411110061621715245146188643761844427055432911728778159603017914222880088568776862232305335845704129268165103510517460227294381386610472437609544473828618409803148355930567518252356991701398341378221877137988193323636329560045338974837281025445823383218383674202938840224258209018288218167452588819253829645035316311446018613021058577277029936803515597927372449937804578897488239122684307051499134350351946909775898163700893401904673411317288890551479614698023732488240044578674193652429012689300839828230765074233550107432991889664814495994137229149845365779639805823862054510273455889922317257931242925393903911465749130959880956125865279030456894220804146487342654453648191540911967595684317123860384583109829420914851629255540957264047267643275530384147092575894033846981162614969985887563667662368802679688100770164852615331863167232482531762323316550453822203523519808771028879777567119433646974454167872233660753993101292331084554579855679827081374239588632109544123064464665301755025029169818314685174261330631602800519688856685808195566488948982800755077154810958953993017611802471091691290233753967092612943114132075872602007349543094775985496678355258390192395314428280901219676530841083167527027138132263359430410735701963970738725708072989881616567603991995229834579659709707753743050808588308797321007364441002140565117498895556566467284889583810945924435355940501756525552704997331600449377892661882838931659370353055414973176219033980895513344502936246373220937231464000607993843313375537766213912785867006152233040332986681018636569488026117437314451150537273140200361638951752788592024857534246068278180748966241348301163124748308355057691590701069636914949551095285851226034005815269232755169131518599819930420232539128248534213225519378079485525491412696618891396567435503031324841284120707389594803140183162167768157393621516819889960947622689176373104022382851101141694963826479847725411139313165834303841307417070975238840231842232786308568106381899120900378616530893002437379009392653520563688325491837488042340023782925496885489019564851427446962014389589819409986848716292992161057934859983527303646757718318482730602221141226240816826814154458989932886611744887502776646652316860032239596043966356925468453717478374027027703740370961016915914019064467316719609826411104468150138266145875073589987670262521480831961584105016914304730553210003828569865755767468043297999028694711373949551666029942853024111971246867164263250961713117692759426805708551147574119852962755600719955622286099584177861710265844917403899232300577740384873126802664281057867539968275358157715448898094124314059446817884734630031587914078950432096556502987315836948845994218335416749944023900374268568881599742029492184399369660322008659779253572897798203489858683187881134458713622945451807214921084437401899938816700897021252653104036587883794261666581131928168992242599411256766271351494285401714923270011085646628513359507065075618877215878450013429172871009124476459244605175833765716354462732980123220723072561780115703443437022507370146118221369169221321037954626681558185472112071380288055292179545169540125267109592469854501688020869601786733658077629119974140689372621269352142607266665840342754513895041867376684284859970167907915237007975802674283689795013818507627831607061468563092735676338450684206229765552775498542520071284692189081307617421845708837905616091630214861061100687956279105518885343189865818521843959259514309778430304828881333836249900846525615650317965093019905533698713630475700871598231571833112745760547979664888153569126543982049968538460802368640364406671473041040840754430032708352819858213717200442577913515374431901827249739419761353545138895732361856884284917121960881963040691576970209047173563853629615796365162241308472071634973247113482588123249580128993594130736720020281689221607454429215802360649932287440715996248180368028969563877243395365427146646871884965189928306196265269189812069782823476435173141275289406723855687202342389956583114043277095161755465098556112208946549145534085892338417702004010270068872006622712760442982878734359254925487658131474444394170861713285315642402268133797288903133636478945698467625756875722689178600313092025049529654475079351624172694752964249781485330138438786086480216185022222696363075256741032684286084470837576032732632252355085546891295893831198609233751553299915347478381047679126065022122115209525787035064976736006349190854403569701559379374138384202024642512554822738153221427394204049265565720152469356793256862127077371934345928020297072446528305595359990378643200727156853687083429607336432014464418920876513874426831856139278843151660670599137311129573859721678728229990881336677689257097598845332510215014302263412670817794390188262446247509651134597366980122342737012586618519841467420138342771998913902564467393586624870602618708227602184466342412252785528211332280614901477289624701328959359740448254170048389029889952232229071077622491144024901420995761076841935898954716479734121448908613777680896870412465994933106188878193154388332537012216457414488828383750735590739177774408518246615642893872752870590169098837309918832068671996699726767850399000139019865411914133343799584505566840600014147401371990221860708176434273426672743217936578258073056428112474499206226163935940975972518531027589777738769946646529116217971324408692547654069486485521849991199966277926942414023686564820935769257129455608969648582431329682484025718754432873793862130440773460635597713628667616445630921711777631697932137613061736313771779323726353686198256788109460859028633971662508282930387565661107080425849685760852120837516341861749971001532744262498274576593931417262496464948557496880394594351576275835110776259414670435992084685302426720743860518052608941444860991615197402485460118815779085023052785387395495724670246964996151283257475287753509850839244159036509873687307102350106617276737932402118231289526810527019165995574590045134003737068676137127251761123723194673378499999374504063907409300468226051058661202213380034162127606308625293882722590021664576732273471719078247978228234072887633053069402944308655891523454343563032452763148427759982453843349737643978197931854436618665909128634666073569375767313379887356643415511792889735665710472064534855276334346772058674318301807283515341267376688340107859546182845672306629508808833094600458054878448541279415652131355819378288223538308433998306312389371729910973225654898757091572771784713829716547942072574755911898408359186990901410877720608109808044303202890026599133810996261076763004748900398728558760068506698908973536366928773209405138341914685469960389836093204753779979837697759054635996418031453128633365989379827476504095814531991082549929457633159234144950528259374964200616962031649255759680064974644385354254285564207216900615028572833077647771541526473699501237646722619956737151078819633378887886861620606951620787397525501976707190689411104461336400273970637546676309188345634017426979015598724184677754735368866782092235756301652029725201945293733825897279516593304359868605392540949404652813539188191400844342230381201006015163285999112725511592329153325175632089792222022476027766668144845067420258689377277743138261132528578541256702599152036840024146665946896503529041551035769395977244045153922501022543076014131915938740189096913043164960701209965877031314107836565746349066637031977379115916638730755153289305745203402783843059328555659989419378492911724424834791783492034211793682610830141072940846235348170349740314245469720976847879312172533399672438077126719356801282219879908324756455053383611237664623938415797983055562706836830714884212826182986355079624857674379910417770548693868333455547579991010181804559189115597955999539344503122807143252712892831257808152813995064757329273079192252669158109484074917249718333815972892890921813135791306626275690447940154337098633525423321200036743214562476960355094872710147495923277290858564209811014668196862105124314405258415772894979005913431313644186005122059756011739134701350278040569541125961247918620923544223736844452422212882751499308125360959709669920958999198568763490339685175817194668122878949096331390812646970436707401510558682002721021548107497545626483191189523088553502943876529845492045394694556801579508616235290657804264133859642177962803951585734638569560884936291627981779789565436739854810942536826114100633636262013499267018303464951768313226513982217244180395782484857058587486708955366065228157858980475960762209083076374483935705690585949817960950266851300985749678164086977064369005787119016206598344527650795336300110735351915863009100030392079054202362111746307335073570253509374399839541159077721861544409109560075575156119156560798075031036013747703381034354472529179895727291155717514906746076025471974780468258948564684557326368245207495734085485552250827252872134560992510329868436529016785132658553395686697098966245675836862225996492560242347258456601399293270624944594346792516291652309419038979184731971118503631040338064475641628163937739490011561182613049292201797343911370436867842599839121833015783061511767649066379313492406645293200059464951409304451035172435568115006217584986393393381477352398386899100905338190793495144707483252092749838034526504352293276296399521421280353588028594539662150606747622654320141634689749004569257449556062074920348328225260752780020706383503423508203487520190064693105674349494623860350561852827617564559403494911955458206159599544862956413890811986517010131718693666300428277789594275291925096783591136150178955416122574013723043161576132370995750662228898710881587284951282115473372066566962362677986845281343478194354335003842426454914778637629670544920340583359176358288083742829864473886937880056706090363751835525264023175905121014331533560872617526851226158820367195294928206920058024616021024194343236329000029972381282323202994570621012712568560628368518442651725423237152850211129287034616248262079133215892211527696819868850631016973328165112346954681534478589936161008220601312500385819478416269900093099940131372013228936296985935832971042298598049603469120687735190670190491008334896219664665010745619104908163103740553454307760702238383330121224924987470568202393156732746914216472091853999958927740456434399374215487451073712566378239298847649827101342581011071462471632601004495200878148344886697905811055424797732095998107643847663391232066357797044823005475526486994827011590073174338860961687345764881681595812817624471481018771326290724847594994988209468399018471917147537740465558298296775994832980445139883474692053413607204467120687445685486744290115642645956964437925387808139410323787964758075476375678214398063035180901252401313147215970408758276319729829207275477879409898915268002072353239739640799957262769963464486402291111639831534775056390008302231705994866987933268956269174017792535685198235154049233578117526327063116899511906580747038009876711500684261139985343886880107013562789394946922886548280745449144419021536948038853325673787963937907941081197839226250734389172936440111399749394713097912999561547568094441157864419376503207903461365944007459068386478499924115220257865912778501552721274835484417579611957087925272294811907506660607591640112974734030321458956730958760206211593951094460777563668954874249128485809394130198565362017449720313508407405007994239125705567925789351107377727318440278250782293184094731358944352879614684351080879648740664507890858070970726053664020970862859971962957153280966004237481326539873586928436129574254334923652122720937061433168137706328154162843918877462279007849354725889758662627086033848927226370816545344930225556876808274797616646433952334534272868305582000254853867402246643360581275351977859423492373032690421865305435671604930095848139649874615112767671411583250980659979935921862832048555793843040265740141264502957164240792180256802469371905086858720927689488188498666372269729583530551428237305184909049449769988247236283664335241276385098059908264146369317480461302493332110320355043207248531563939280609998635460815168360491352566279168420855596786654819306607919809568904220693325046990480332023136839411719867104760180273843910842335440294299264387176446773968084463536895740671932237603678343071117546603685101302267124000398118528949729848578708165605085133045251559279829119983503347181433721437352728873655079078644588886436900243377000546049352132824981730620803061569080440153641277242467363889985582515272869124745502275874766874717137826047832245854051093809940213099743977897793033032668236620694433702982245102908191726157077717159020778323608366935417200542266157923270982717837502260026838137859987365204030347221018411013232672416599117654994608457070155103722723669311409773029925275975545091819667454313855765952477506096002303506219917639372700975553312433354356285125865063764851643798562598232413965261279263195923357149930733496354257015304268838254683294403408644218600154820017408430874467910990965202107925740453407288149942852223791883042898947071028736648685141153849359248719633953081926674670735607996333127196085182819172063762806834438201475108517861894244208323919363828185258350644200832277631866135500698127772817756466819866885574602332574239036199707075871135973342096160914785455758531635864806251031880153078045082126477902710786848105776052417515751045177470530877258948513369024448552948591614588051957145526557824445657318331041130327175248618997043579913876903897864244352215507339849325440187123246453864798066784563419608160171633738313087999465787856165131578242977081618308636227069991784556161480052593696497070423525606637734019474175053110490698065609032380301628114707503563539983563138312491917025180426924371887350214987700675670580604465984472352255106942880529704854553321149005615772605813318851688364375488680147702290875825898804437848345871459482850682458184720216062522343459141382531247411833462402251671413908629066846737495319968064460412241863448633476628153554865912804133045773391806430747953980955172514807724524132569444886111413546829067500709214771079606443653035238809189479907819763425116798179915002714537115827668546070540562812175627655560502731215439292326369450386422974864022921738976307698973824713448480811134991242398908935430669832742260881593767999992282542683137572221936218780382738586063974984846363885229797114442690434615004591599070198367127749565665449451761964485147020992933992789225720471223475636544422776726349005811071574185752579834831384327053651899080848569736315066329799779987703761042427073909866113013665491468478330186954854298368833481500977049677406753930054698729859142334975896004373295263662421707428229993592639752533818940624366540715466900001196826358967141101374069462031229613964649771540979600757431939131545447841096948208107841622708866956604892757189064444767129539426060461535347944293315734751465496287899967362617045377281264415811526737030822368095241088793619327179331443554882381009772061187533458900040519538776275719450109120358085290274351278247693713149888806129611583019529807469235912683314458851363603195319002938998220447882584507630388401950412620231187691785894103615251824039773477613190453501048280911816775916806014217995038826526071465908610480294937232583796134758116783246594450558295283962570017739185203960948351052554471689625188187162306442421676971428159917658308051888495588160456380171674454596221346448586328728671049583349483698342441186016762751051191873092923183886232319323629429305878745151795755076463955446142627224234620825507313995904546972317718203428808032581479697013243182921090999001491440196891349634468787912327300393721713601789257686748083640871183282101490319071794913934845392803832633830855568147621772794445111651780179759597194870747702149394550174962794908481817865159230255094242676540374882139757595477389799327962900817619051414313417746425710937931385248896322960172178878688474988621577339718315355823541466078240682599847666788802465749497802901944423267307184851341677702914065513563849545379777100078714954618916140293628807446531544988034752489960192160812530849935810943665752301190861904600239234975923009854782208380801478320597396120558242934708756948555379771090963337923075157162938406254531412717288217776810778178563983034408243355998471709626698532410767196442136357972064193116530569750713932385316103262389668862488858249525744757592597261158832592282629346499684774788864372346079483797980545000023331049138591346312943316001953152366038760005783154115784509916889702124217180577553674187211851089052684492341416280863560092723080100104725353341247796181724457958863547797841547647074496836211518983819074720330838415761607665845878511299006604514899098967328320803305583970211376548560075075864269635640673746368510475166607759722328433104894816663540950268502334958971039598823075268871520259961799431527231596173697445833032798192568796320361844747079944919057649089527533774401749749048256076701908924298557799169222955609123537803983061111558830267956046613262269586108443039321526309190326294305425528584824330214248060163253305664234013460927098481403936064707692416516460756410919336170198204409977860519902134497659588749916488961681754518425653966982898425685562214417439995458344443400084079532491935230969559234385289619735090231883445825094163717982261639571877885210057104763885563426379385486989061415297298003746948741911935626923625614250086741443512520009833448585214805935308104853653908843841599477356590894859023744125867956614999843037925745657167831351138494108071565072041056467907416340763967886593844155518144000056631690074625540288962876701017240781835651348044484196214945829812457263014019245980971815955597543646516813884479366243697503444866420140751145658880139290440168095157548541079413170988554703266688936897348245232623240837197834823848922936185639722522575379481117694997299252678617083177636794273774305169746979703330258969706112452896222528498323678768266711620455079243591573227528925422403334589132643675927907946065851774979076059230694466718974270266787227764753717051518360132278452547419783436097321384726263967456540550418563564034259154188707937465020462943106560364866880057202338770645118909380700186677414717760681939127891527332372147793581461269580969842478045892420712606549813800313082099902748996510502104677044813017016709443556014529190736479677197568208269724500653127054688349556741567593770263391279009639528555227571488006927476950508661852715717157387887433228752419900121581361825237402137408795500077749372080119516452152832494389182894275173161040952248859677681167565212707929973391751824829201865191238999762055498287681680020045519010674710432795969811339554255777725928187333143273806816254929936807010384095401701018022653095625609929858847403584336586923834009962287081470625542111803080871430906315516201569153796373636935271333939566684715788996680478886885656198632181682171378274227500157273438844387758199419306578462163290191946186249405861315671914704690104746445851410950614621198963765875436673555319325759864350463716643489376087648406976038730148524216642426465377299730324852406528792155138048986700571337250391026494635090727518394369743671101185797493213759930738442847452400993987671631709937439091248197067045271540348806752712591190907657554314920968959699383638937233197318449804811624633029403515808504736936884531306662962204635271643834762102330175043559409677967540123076615323095802418195989549515115936852209351771528508636053532296690550732103736433583186457780546758427112136549848835120506065562190961794357772075978446054852194655201966256060019198269555398275711553120620764596321377224861353654580001462065163456869101528074637783698532958597389243271102525390908772849932172906380736182032067358751936617612881765396140514142727449834902196118519790571843829340192972783114644962278060832884645022736763145947274081540608796062103114766700496661860175897817637053621819199456894055231654798873351998397179941750661559883908061197854645243727520010530697276784095050544603447588308414549597018832035119555561765174572634579177796421401067123576127427741019484032302315207931437727692250922790672556773117628944439274175630407586974976230930797726167130175660768023825092274632528202720354103051408633995050132182931981514014836041278992098544133045861757987259257728547001067448401858145567286624247040903918160287723000276288118687087957399254289484518726432577344210837977246806672611217034164663112641829645863281497034267348640441996672127048280095523765709499532442507096473066286717191169481292399079997973635536576912932257841729583792299856076376816331684158556328972351675348319870213188596102799097016361704422360630007635546782037556804571063113487607082758070637755409361896588741436932764295811168996226694104296879489868514605842275200783757884788503147166706976364943444020325081356001923734340893632275464829114249629326341905619224908109468649909776602110626980252366391599812642203532363299456337885489845466799257280788562979627069715310301799363857261317954210182348915220025835073722870551848445672851928805622847385585742265330951259983646840698836141069618651056983487123499686848567628099273408546112015493644535262791975781943802610475411462288846336487480069625661960161728862585287565727612758543400715146882200619455387000313934318897224300068079270055182066750240819025029565248356625551922212477528764687109521842228105599996746589214389557245639272726983628961012550028615789331856179475233435876848586414140871731968362232002664198911825528105665406324375566118141888988053582227224142724568109010369764451164262006084905410455347796521084212908483350519585326212502545777543211047436404689651840056771156890507648589584695182481590657472864536249227826500822990831844407859442115860513062111515534510370936719353152000867465417295168285669625013847986564624348479671711828313284009142878468364211349327332286400573610745849812404555093854552539044989298500703972652733407860837008844584527066508350343347295244802076205414210059400492141667836880464595539659770581448246509259426564107901372043400851088611000123812434344817959632818101178155632195783248242627534637995281079962720504198435371341651723260257611246033094941250360672080389016030730657495354647668647755903476121979769902332004125496004196670869398151615835874506857161545177924278556779984464058962786588030373304367300124132127163010390350396265241386668794667863619639693512190079161070922296506022527405850706056277367616918772170621116001251739120625138147043332277394773917773068907158682778173074366558413606176026377889907171822973792113842301378460187785622707759654595275420000396319613172903985724933816529581906032591987943148618974443583131867976440135069590606524648128594237607722580333888837111976704365397392276763459544363241773477289857651411802291395860185711624694436855889594673692879363589377127957494977041669699180276961273894807979943882268781031782594537272504940314547294245879795226691109062513271217970440079236936851473484879708587183298973532081156897736097121484722617883885564610781860381928554784010524193123006563241362701486557192046664297920328494878481895481050859928054980961078554350042948585835725556938808634674994041732691199710371268932585947923951659569116780153720149615345875018227128983192614348881903372168165156967311239986895237519834495338647677087172137117353060289414756101125769644759385545375355642792250504945925540408954030177226283042254885941193769275804759515379015809040838088163738336720414619718037298114157447095617780246993528169410879866683308114881110916875198736722233763621254880311573270513912048744312833108302885904071188789642314463784669671656635949962856216567933042654778944400785783258406627558657608624405803759518808774949387631614778635017875336874927636451367388725546347071807397291404759551194396859569938391995922621338993102073960938269928857820037352124828240769392897071380631715856983142679058034638431456756720563365139887027760458158481305925460891265022039271150116571251973519991100428640583590703689387712411026927294450213618552553727698540181986721442229414586013516840404690388887074822338249598112456448098043819507036767343524849987522940635698504772146245689951344392538104978541867195532340718270602579967875238079998048320319961016599961992404804874037955189622055878745752388831963660911978239084464138972257187217437599423019778158804508777566773269458968796992615131565224092574130802951771961822087384135589566607951815324601854326830697977832155069063800533852284298839395143912809540573256873070813699757681007806000845570405058884992556760855863618750510121096477731646954888426439832376742260628334417850174411533119106093340193287360187912748867498162860250368633473675250231007879858418623202531844992436643190969931202520826470284672594185369112213253024045973325526458790722348876605424746376498398064928752720639684363864112206823319633648969679562674715818827424982282668650962972650657858554855745669446858236514991022409517347467709610091637903961582264565431289404688126211601515398024276695473981935475150049342381822364294192169799450134041010588091170040320676463800766858891454391669574941203722811618713410097240342625360489746005290874153888436440387180269910070495120722254122176863044469371596332916362274910499758998750764848739884348049198667507278953814381222745964304791947259984732431504567746770849599467028757234167033017443861677536885620409951703345359126695025674649809313493431829680198557650609898368565684782187757153509453447742008203575599786610746451653120800270972820888977161980781734244684817887920789012094678179594456493590652710700972114813432154608843765147861770435174369005575024045709162711124317380345845513951405218599025255260679682523847715349569071369049806338452206271117710011096413314854137080424776970316107576474786471687955132061397503350228007234794780634085072609109141693312954039729050573881872793183380611105955464728653797911876448507969214131030138675550604108812320518305644950319826377546124930739802694766719565999603014855861134660120901062566577796483022164846721813413918307562031200430682267033936593112415372390063131665641356611953056293398986152263403300447199346434893335828405102551959624160662430615909398851141798646251181630345254179249417780818624103902972564722270020096110614952286162556963903704924423253540826646990989313752081077402931696068547350816314812201066965631626850533054340752858875626799658043014717645612647283767768349440217313150332042593012017976592855162967940783459995282288279986026189764094801562708389801659323158897424359071558944498998241866489130726698452265097599381516579797528728875440902333167933838975425876556216282177131305945990085678265237886759852793256735037544602791782192410933920043500153160427784808624870681255354775975427409935186726691590571535936501040826074479805421430759676411765873919643201796448638515188301340284684509963706634580704267508511325007881266078549399753406121465364327095542273504859611015161647793770897104487057484209657625927340993386855301767551025257730214847171446703458199648101339315580299535619949251377441450244638010310193858102185170350577949112112174664470844300823807093009173360458741240901529642463753393793233985098186733842210992467983778425954981082996059392774999686648450849334500877011378702697801826482094999059866829370107246135772432176618289188516837598743265180207800224955930629125257428903428554350721939479425177185172440535393167038261069361631349027428046210084964085963880922268747428453709990992015463123002222949652033875800328590337681305739210944055951204724163935974172144105753212035431635846705804654065195114649514165875980490801855270225013515239777040932139846186084643184216288125672555660762023438528988826806669517934840177428659053139190198298958196210658574320462647205875628247955281236125294743395788103110512303679764132019545401628370594512597976419868878808367385701658468512744242448274187074116617692147194002097362780416754421215302495853024989203820523648545525293457389519257160604305322282364628593117531976070050042458374640969869200858563982503988474624471941398373663067177792205276638322602197572306523131329311412242956609436292878894174173504620352057939382855518476101174498408384354124433972699895821442218514410292509798989222538874512646994627504455920311209235922528954492942440098019163202450099636876258860947637580967478279630866213966056156771239519749511923363089764606549240917036805386382781556253429316868394636044182275993746085719168017364777767124231809340976009673523456745418229619806438153919748670255726356357259033338597100411036941352525652277858683486696405446993340299661678238805640657212955514127895666561202489617466879287872273457953077630337226645493791797412444142040736342228714316903292144059384271290728992796872181763608401096586645879863102965433465105462076782737919656866318457153027537209023406403062956655506357282359166475694269699682340182659023071512551830499766841935051378242453379906670349700736304267475183883920241223972790333882917737488348173108688214677036611961986387149076160230640725453858905310771433987900817698644777149351432875687859474290969135340018636785756142306265021527629149053116059345211703775675001825891768659842881476025256896474744872505056030856060336207438261896789473783209294376291833346566264504056261904026718252851084988986958303966752605701665121403383523612443949789465732823281570705983931584715596799472269003977585451026502217831744717119962966206572298460326798414253548516753955954214406915077270193711144493380033273453574796383632010516920792240909498801547018204860254514387542716158347501926787416413831486457923879392731356703285874265632862925746268253650735458258530713621467508724841356291786971948401430393041309191822566116743339374431278461761550948595111398515815293471436741974187972989033493607199846624248705576106638054136404876160891899120395665995904690922844390628779271565454146031741443093216495631784602567259573082264721580275724796991389952010346438561435443451965780933888571115459485259662082273959008620737612898209330731922375553933560493238906621895170806904486429137522206345104755710290543471064222996819013916369347351167760148676446753541471092122865793977810262056557857589237080729610107483372036893241433120578895261994962168992047255794439050431456654979363628060653800461202264253388103831373007731390126154315064567092740415492948840229808045288786517351597361729977919164852878954944315557976863839566671120995996251010870850868093192953801890794114651230619294999372917247768486076233230407315019217390599879177082725078800500388195157410350927862061036045988257083487099848475302278072285857680516224157718651156415915632029832388587829950474255119904815489765256109074499223000078307983195460365653330482627084381419888671450032925021652191321135051394530268636185698843835053936123276219295405594027127787930195324204188336460647982469607134306705705356720181216044703023765069289523016407529549378024802555665922180771736721180207264931025630803805147138848077871221613010636882325434669890607054135646076869724499676101177984358135733418890074489482596727726372871477311108285449049748417770372388872573696445474055874388703192390833262947771866382917483940614796191160782391925632877195906844593902779749286314909011074160009730364471007116141663833125827603885192159865076833198031696459965225491154035051592231241978170372589481630699610033635240930622679078736476929091397181709859288515781249706565362447544135413246778186565542833119834133574614056525743038431781425140332339874634819307005437784925077902388198425477834697680530558878167007749759681904548109524109170961093887713000384764734946944278540824920507199071001416663199886224379295650316075750611738992979983191023988990549083530945162906729869241881550600595380670186854599574316932090808397465927937828141781327817460398190149063808107621189874300221228463702215224030402622371211831776506756471352229152546648256629935588057352866565139164290992766499001544865908415632347648032857087397452133620591497982412627424924783094580403012933162773570639799554030187453451861809433665715954044774370965235598787877974229123125782165564671900771298926962212215955129383928380602258480367584017951891696258003397029623314840988709324366086649003185755584424628430726177849246156045513579334302544425552596309906171487930376471849585069601211269888973933622767843571179586502500197734505599058131886227142770211472112846345179485156021120168747512180780720737219936365505960312125818329016247925613074880007184497188852510761330581096461491680073988789810929884932971871329243481389400111157214126207345048071871225890638923689109745747574052933691126759476877009081345981585938416889775892286857777973765730312103784328239509664267190945901841147284786672951856870904266722451383830670727674197092859523589410466149368589146196840312123353881691198068093240378829437919875674393318190592732883373288334792503099520079165198304003257234675158615469770137825527122316823261508119497025296724789354975812376641252625783256696908651739497296170867392656919223057315958314948693466123382551036176880717597713362908836422384749791687491955746141692714361852736206579225213864106391482724506971110505394441718338172272584831964022241823926560073946024228787961846935771084961690129691203005923961299648731867135651863054996764039672895043312876181713516774481458310912105018884768614305255941166682971471302027589856226025221426383938333193854986177034324002907968478543892468840112742298939243905528817099443363352667993075179103580817096236694788471466719456081661833215997846249107932818680099798870305207229042742260450959230879376445057637125932032764340279889876920278244043108653138404567391327274023257339714956482671164455580445572033487774427989561856098105596739833634751634923208781384178875529451835878697676947186294461870704634155264200191513557655810459739356538159714384068998797409475854416535885133080823696062387712748299029978722281891667763967574433605939678353616663722015274129721303709062784633989395436679449484763706468958846470099991884617026187370173597891370519657133065390264382918675825233766477051311330954108426671174720822891255278007514628517392681315530123794781546083061109913738281183880661102514484655478363711639490236270233381855615587648858230608505366799991392638859866755613909761028046440700719590895172625832494309702390114854029342325648088263356327080679511373890210492428249667814937917161499899601659615898053346416643951113956188601139962544173823578494226471012895380356605387170235728839136899396853785763752152403717384205472475138228488239463297685690079301570092648542297079437112139857007180953291028544344899624345162425603853508433271583574131060411245521782342753826456080175682452462567849065536850040542800197255438528852289469579096285629182757771592358202584936452940415719156236709408349218075267324879352520852244783430775349518943516381442224472820959515793477398577830793033504802242827072227282695408932244141514263312367721514719890641328869454914642811815597790566632581629559027222134481987118900698794437970872776493817993378504591134860908742351712248876717030246596747727322668775058360506476145107312206865069891768854500188112506468240597632029250298441616599969398509752419160091678772231930968236284645576640642769224347152383033419829030027095418635808581757376443129334742666464747454151775117148105491391835438356323905310082487425725407232590016193848804512861687836017887198439305927478578111897791720123101062046129550599522723012898538194077321192940593814333499936766928461852494064785571555068705764674443650090498466966757585803878851028638905014562812934863757263974848878053957399585208666507143813680515389583736725275365470091195227480877183814060063416754205914360670086101682089991629454795825407669452925494267788337823605550006247650442496867125743829213814662456209505937552785869088786411925150096467116023393732328795635363561365202657560638487990891236344047858891802537219848635183610306134141312075124987027708024851556557274011220911577838601592600385795153866434372386216455600400328465487121823218847965889036536452850459638154764537253797701469734372437739666008406818791661653807090894292628910537212204093700740368795583851704081260976952877910297225972147369477730095379278028154913876742021920408739329713767182686100736161831205346505711213295839211332064385922611759203612210316882266000397459632010848322534573119846409590291436129596102930430510448569848922793167923210385710410227643642636856306855422242565207629294178923075035522854739834819392922709139977710917790893967408692717744089928234022405213092998034300585480776215164159876732143832820209037526843988222228538811949132978291977338613237007105064075843174320453008376259840985610970014290725337795819146132438017750076276075179200238643647724245810518847889979333351822331204183367955999322859609425941091703984201271946224547227465195379731305027495530133199958651044371845950648450739410672850405355044409923152447651532620262715846271350912268357854142691892558974777388833244334411853763789347310544091574406963094478271188335716756602211517378117412095384118208732384384972191579630959213040742542672231498244724696649980109437795786401405222920367724311524294566942762690359628484333500236686770071374476881081695910790597322714843996086688629348863974578497944851546012398872892259727832989971856433442445903777150563457538949459462940977731125606554631456608269288658434161809487597985301062871946007542932272148885928683308488144012994859914855711870525289576374837591109329780125602229100307715049198486516045049586246893507749076752830941465333443786291802879331716620937209244261413187789908797356222094774753223355598329821896861449834796709391649596150389139129049210848833760564967339367392436966162243139257092688715622831479310854334473474876716462924180471630676678728453546719003562669462055330555394551655644300894443284940447376834243280298079315007458829859165803032540318349910348455371887670656739004720981518562386387991801182072718073563349226110027712984468324872560306047847776783136456565515829221455616622557513675385134544288790103547224899285628894990989763957635564299280129100741730485374854916280982344277360340831363083518877003135757169726043753832943903073532985077969022656358023823737083670739723946230661662541863666043716367682401052841515210270197416540285800526490883145186878365090237985998820905860482019663666676061080512103804677479604817683104620022939653308490557190923245574037910124361401230055325927380026712944674326522782753731055658196569475379759730302919645816892939880718171244014741947514759207771178654484199508866618177498447222511547836698858327898072474583159741098399806817363049004262767658279501078338534661578667636527702755234627430485106892692372468142659746940841719762637079113353612139199084473550147782469089461082524189258891342845628033594756459744465785462562765404629107031249362118567402681277981065493131157515321068047448201883330284731031798993499378297879556237004038586855679139889428976921712773524803930210238970019203637417318840255069988912924530465602315946310151955056024110557705078560130182415053672067781723805267825316643959130606759344807059025153040316084164244923812607906603153615183930738430752684765816897654523049523662589521260677488452436947297615473037594130785118072175874159751896468242862948251499494967662420723165549020777901662186662071451035356140086368328076389672573729793805032958431154462422351125491633218227780785879494770467436719155379271919492576545918615880944575000708208548109871554172653086464820159985069274911340475592302091624128394768357124550603719420621063541105519919291294341096104195855628273337339821580191577464454199655871728827752467753545713067795465153930068309380571292166418493217345023518972123439023344341231957967662952611461086865153938008257530213952977945720921782662985540831224668083542670663423398286014478225430788612106229325941240255286923523349725880803554731361746927687680878427563911361011427142553055211141898858101004955686546200096329547633319353705190766331386808036995755842139696167701799693109548291458857086852599336222210432239584633369542010822410572934897533993688149038406156664825042576508623107600105354625637002820465764509089715208695587930437217860373311446520376822688430847137271439203563062473365767833520347475839042937370346370452769280170639291775018851014550642165856344895762354644866944671194843239937046069425261362860198673473532727447345606888372411562033839768653885975549579615033567747736473058450468349910806693756915612791913342640039066992789029889114111882511206841802178993863756460029104555755221937552825109128817158378522710719521581463626219545334417698013438612923813547615775682118372100454728190042461791309580457200765264673182992555993754837635759300202121560366076030712152400917902414236003131115213809090223778031827642930759443916469565830121838405951613561076826037971034699480042439690688620959214536521529796143812006420872856801076553296866193532245415816729277454754360559470596484819692065895591423939804562154265123763603273801663283100766533616686068742563693606680406185935299991576811444559924150863737467326571885254118151459764879054021819511131600872669744983777377042566621705577490326055963930496203122060849579584078795791698079329358715459528257760077921557016547773637392072713403066686159553194258006424332321160197880665541244104396948596163200493533874236470444157293869581065211197051464482436822108764184049542518688778691525981522849917346535636106640405064749494321014238762995925408344552389945328469182102704933142914519232016763231831233648465577305813235023504895552560107092224959727219135911897462155708949347395316279601909914026476094582594745855328437710786064986103187900289982562991658795242267985864082136114338940760777675702584476659085596568269349092410978879144555104793301291090372577128479636534390730981284753823490229039106409458442816924395525316134056060759794815547247955782815636543208433519127568324062367315298113656025726351212578029338053059356359008916199474781660876740162296101432034269958586323455115547190131386773235614434057813075868019243687989638912780048917440940608464233740692715521833022777608117715282128320492599838748919806372058984579757547222313034791507955040528705269168634644777485652755117619937031328666424166632895695820280423844754056752580662243820158924678746747505868959745753439720407363920159929207893214060052713212181414579798443823502649215561356536700523173280110724143267782000470086324028140657761519208492515375746882697392850512466061124574744837800107222453001990044295518535985544685087147691856657207989177921116904402578552633079661770691645520174356109517174867334831565962302943877655206377227311741165086521310011270630413924772504419288172286153430036803921220232232881284082211279078340522893834785799209791665322220568862528088424930326385159420154326472754727511021775473724574303263377757363554694444499447660243086859948688860676944631575257997976451889113664449652586352407729940312233186374940161765850298830012229347757130879397185284689224812174992439696108669975087832851373234671635778056234276711524155466281182478320730842400601588678808077133317468197690204704075997876993538926751487642575952792678949630483217488884497252947916260884248180186517436193408345037772601164343992481283255928941991046336802954551177254565522440810965377995685412662330932754182155232107565160042913560377418230876867329408719242476717910079759888497507261537012330260405253278673557376197434813185951879609422834538427440094503396909903296034875222238655096787166069343724232704857229782477814463416146689996785155979807152332764505216545554663605162183678072700345098152730758551612764052904518814683900969466785443030961987908921927138501155016460820191468923315597483618760535410680481042242913255658178155545410451621917071292317314765637674849984810747957189768791626851330180599193108528534223313193298704215470575513029433163150789257522066749595189542146823378725094830840588109910474189537833558528389219186669376839755024808231098625966913251285504637290367654835371806733269597342283853895563904024016835032093086982892229686543612953786454056423075660924916615030955899699278622330753979396149904796291446014288740821649502537061431653799450393016202031163297830552870796404586849838135048849180250986366029341398072262144250475070875058428022682884745315627660853545597205062197340713788604530949863533048017449084955393605490441478360607680438648144788883568993810049846002315160098670188875237579859875518670978881373592340710769065332377881407619879163803027659279830737334278090720430479768041175477342125353222069831185325509336223167827109216859250155813603153212858614495269901427592319621227397936141507405896862756046324397330093671480812657687351549369038392858056023655239917879459360830500755695560017353669644598874142083716695740007330050146866931373207200281000826008215626141602645074278481691041579406767949505804063310967745496522092718684935359894486110492426879007517306845448352711237618379912201320242234231990154703655130493112507437777799108926439730212779547387184462180641660126186982964615889458466136019315638732112309339673853480214937143966555903628155264424710684184329194179194840906778539626659029870902182637858260108835266052050145862591683881143383131891804858911648353617902127460083326268384825578291158412315988091013514991865156359204324141375468937936797991793969475633820992458536860608016851894861287309584453399484051658515933986731269977814210878941955644249508158660743263963867413470204851523394385406123268694045311971221157064142939118965604521130714771154811968707660062511291384297175758420068193584824104883197309834875261116092989445403682077297300389576388449361506276656448663107989098693323585500911982893420369668558391722679621581541567096814493872327031830992398409752794934362869402671000028131959590613969472845702301314167091920942120681216468925038753811021788604881162061507109671075187022318622628884132008615362972772273454136602211318227125129753702537979803155965257042334200538554639826839675697662372377409029687927620095298613225040909962391081487728934814900012005778149500166433866240536578312296008697958946234261636435636335182629158099707631353606184526917540111802843535129561657435948644933004715824979004500963209892984296802476762247949269951024673785784771147755796203302442029197905566073546191876833526204681071652832548191356912192059102872124361697947681090711425837856188771008714791091384961039143738655876075167847601895959995910842169964472865116480004898826126299218952835258833846713982048542299363561832745606640546010937523250096393476085390466173548429535234426100793496645631916769994099072759830103318812664635501343624628195911024018687443957651581915643736178496746157697098926700907994406803888342505794952533571355801703124298134207148351580625343799013709362031692801648982658473449019677469740770097631360190274995548027646560709182347154184284445632815179842575307370027096776619585336388504913529746426366661318473700456424610531647234389317176824464933731554757099330561258285821702358165438037996155878151574445715951944836061944548112548795264117615949989818478129733004166217145694031109346813530462773500484115686978431236447857411444688094583034663853807717316860012919964961652328637072434981530973500961277093558291614480056135742085050528391804555538347271498276050182746754928152148053757606061775839372199448090108845921052931510579967726838427119892087602893744991842686492849255618625893371838698463986056412562572657034808002075232952374114505061085104356587051064043141420474933498890332146257951133763935292331807590219607268091763950062021573925574390108430040912822749938360537115359389246907855069833753019577416013158923362190538713264305710344420165682962277715084454359115854343279208417407226333122455059257766389276697783805055691298141824933480960566338864376406904048683763202315998859935832470475159946015789735624276998771592448519725256906128556916348188628007524561441018129334076885391455456064586434242573014396649535544309898997114686044242575533385802975035948540678578916202637378588337655637262241148947664321976198491207258302970613342132676359147998580053049373093477203215398144791631882524353990147866682816937844127942451435485867377980394160585697627726559643373393647433277224820128798829695139377372476552825538567103972394324867187916777341277013337212558605962835041691739902942459512532853002445725126686156304715198918687714334507454829451236101969298328798475375964653106686305940434191090701248047791506729975826085422153195149270545854361031525310326138099836320233470996960911600239211636741036723795761122537586928128660684653759201803362818024115077919505928959607527836541782018993756282715277604292702282808721502274827415925145491004947436915947145002853895724321218328035800052615382342416704470718149956516480931852483146395179273729367289383027796068199675332048648008657447582443454738679514385025744746619627110413037744720801811187512814863783559795777927143164312363070426138323468108072168632233702010757353728225895788684774183060006246748896382714393946529162415404565689609075471068505075136101210578238933510924670834109854563177085838624300272712517028176588896189201383574860823186732740336579864220847998905868855327381352463072953868683900834448117212887524605134500565617628168826928123847794681503656249527677768035637717153240262903620610496406243206590798414075870878279079005884719891645198071844443340906707009309842153050654356301416227214900084805341159125552384197278557459537812567666195144850372650530874220134762826372369638598535246778473797508464046894455417481591141571496715122975384770540204169008083544820106324390441458264848217654829003783581668209158541098217988490442051578330490805655137198832537646902641646721228182955467147438991160385399883833589820237592978008128389675567114407060671029106063951517810210613677354357472158315786751880215545921383683309019435752665846139422276035189878606165395605668717707924063268396837625516236491834287705861922650381135408862793907134033912916388241689810294521371456113622926306529373335247874585088963045428816215814100236902635553153760772941032321496054322130759069208644544351900824646855147010864180257312721000182163571437922152562548782765529608985930043940759969825946036993288359394388098963433003789529706464315534792342457460460148151550792666382850536290755937249468055119629692246582929204998444556601486292790640989914754573084246836350394111690747980592383430872524273901518052569858556172846976084645859099317136465633596623839331794960634014026177407671446380463731808910666193815581040889726638457631388656869538760990032488591584377762376607537764152992186911547207452524259514329720471228203897516551116492442713802654846152587027536427118486507204166698535593379949108522744918359520397328509314556853222996735214109441462388237416762473453892829701429660444894730572478530940694427312550573694207769361284382862807675776290050874491552147453433420757329183578191852357988149224537550127180822663600254123931926149504116410739345049312205423950072508690436281012460004616832432256703757226761193070247512533781988239793200439855272460461506111919021025957066241781138143182720043071223570943025369225551912941460019791415354445075533545465825537133045984203743765662684253164114862434444105437801044146897392974547960369880269771283948165631990513016399044266817398015067261225203643876517381335220236973153999192462334550135538262488825816635606690597631501670840531844486381058605711986599701782142964928599901642744604679471798961034671640146900449816625483403250100680941122568323446349412242613706451848512906785040273321919554619710199551912581243652632522609196697753057852418614188349451412046367548113124555875918653609569036678909797465557250593706484166712263644272733524693630411229705626724074400558737069167465055978578884356279377822422996347656184847194309540730385713560746555341140271294852313014759972109044961012188047384549544768946027072904648909761591896905933941484996543434697351227054120634682970299190099423250112014090614349713913322693092262811370291882254856929318149050522467971594784379128814599518716011487143458498526539472454747021953330023257569140445925254117246277566881520180004047548205798160182417499549570417150695132603092545559886479958931116141866944810198188336405611545544724590222906256115653715676947578668283767259179796335190667069204905612745944539443289136421780002813532764682926424694122673002256408708813617262287202425084025559911729960459802324310737627264550736930659429271972379415542632611884092325920226343251739966579259100646798991514480095384986726827960541397229585697353344404420923763243259063614822438223201857576600969590515061359925345899800395801253095547657979494236773961660761900575421892664449804843638131878562633759959346305316509224848337456343667159438614521944384895596957997912510204749233984268890617803311416432436029219254120141309516564186135800106964196027451589795400613720038193922444437935831517762583367670477265466883300973981985793510368191659046437215071201706295835849144789482396148918729172613147164301058289453158922799427394608037194065026084351061991955242004345913293018013499122879190088748944662217353271689376984754246775644925350407319787630507980961908205723273142558671336247584036336811409697629946513505403187682900553945934744181534555629013428073498019033792446546135711387484384477450860311249176617189540348446705766957388286839547688643207458599997732735548894815487048283271212384333598492203084326381628586700686566619784521572217916243119502060931541764740608783883753686700554582195230886276920662707464317218417627521393907412717559274744088730233543730291367824826593334190201221220403866047913707677083307233350050612382629337693619680294885744701325466999797638063974194877988428354101846350598383074118846570756768430664763907984665361548246974483000430777461035159107187186614306927638241087378130155404203610951506444843848321292148991352598959222432126972723380345475224783914664576288745347621383007909697315850939473342276676400191332916124994621063995347519486973923098489315558721222855785237692559323365980047052164756346272474203588134007214875609413188547344762432689817431694527678713632666016572986521932742925278958054245694390051704542156190447541699916381279745589864939829583630778348917177428036525026128450744728965345741478039095628502443644836559571157332279884735256129104379781581180884455081905757896366124649627979006054811236929790375161295102691027257083050582352718102709204581956503790826553400613375795718648637718769399199618601172558953941875315353705456233205567310183676371846121370054512657329394354035293113631608182596376228230623320826457140229064913953512893128317288578442055187475449706819190932467040007880900351499718398819673273935995883403819479734672799098770816429763640017359262920061719144370033477823784571528236137909595150783776207198604079345775116325257161996199378617105518773823833950315565776804234564341554545452168312619049786748837790171783822172092862709553207631348784769081724216636112845671698314246535444179975165062143001855431808594929998022585521410773053809932007384444828653336261795730977376001340327879989924047539946603592223488283810246322385469072780044560349185500268982404053609708100198410272029644022753202908578407697292405374996274891420670861712089961275598430952819039849998452226832345635677357137775080607019873340315994618408357884457443298945680046471708495182083440986080235057453535352983003426121965083560971487845428202435598457568748387743692229958817463646658309313999330253558314544563289420204074438808047293592557922379974656910591984209977465767848094708023405822427047269080281471659149798009649096952954144090809790544535323725284934843399759087933205963871918488899433216365282347934929163615464592685945309617108543785392218686862732482615453341160359617279878193875349245276722581108723072981484435920516895439362986405662499785831623362466780989057416767618942944565723584048665758162449003718010647999629363351572808342347822124233051482242301643115208109979128148527748355475034845927299186988759621863223922900554506091029625522806954119456746466676903391898637966797311291893929392614618308016562204132669743575809969969588909488544571444220319763948098130418034898816388008367499345186084233882323294281617902575675008763073695415605582502380243004945745797087715015434388770884117305539360895188306516999425116216316107090272150268555927168013639843656598569211057139287190603576436164784090336637753599139825160813886968852874659343870597861254699386466569075712976738414139320472216289172998308325368856171543299582288397031623177407498857732495086818505165007232703401436259873859436777428364665973495160589570308163919001522072853771826239671038283653880388824599381868323417953889168915542186825672477656776393221193353335490841086357688452275188422018373957908847023065585567557453380162965987884372682596595372954307640438198028199133848318229179413613758512856470420980800558329116043752334445700298276411030671596996534474476800099155827553868582394620826128401919674809846462049769160548529371371774021942624103591062321636908649721897629401477102047135543484755620325018808847914941472818306767566186910678591262684053032804422378109312702718660851563885512772518530624773747736256264738110808808715336474222524138702643712078108089227903376361764431284007401190020957479758697246169203163460074808151118872116900204238565712919105161123500675713794794933413025534911628287389149453437540550033409243490458039374731216154229659073647143173563495279319181152364975113417973820623238902981325668231361614614227649739267894216174198772797544799488152229492695660694504716351612154963615047194120618768340759014210732873221353180542820123135630765168660225737358800408201672825810968661255414403057835428682943454914606972145361124661013143389998083456770597967328048180676513012483198878494272707402175747684163979555248985740857117014788654700419023790007004923046138584786595567562474473927161214373690398376142937056660446421915507911501838331776030855420149620953594046909365607383306281588084860727475515435955145812445951925766943008319269440151867415316092325694668495335680803833731983209442880208301952947557356608703062322619873931030159774160317217521989102983678353527634497189009579885473486960161956458050429912031803500995890557373737002676458102812472992376278936883705958295308990734678039683515954698030820001727951792190709659026801164880509032614214682799093312944589269647967665879668344385538331278592346946432678000934943031127285597211699490100920813816824831984172133933087801672442270582023978297700992224713733465879776942040574200834116387497369542371357699917829827576313444260621420295824202213081753192328714464715852874796037389468921267322431810298415962928408185923110496093314756430278154604282767767758697281919731521636728487819834466940587171502827656060638027543084821156495855550377367960252386700032038697141471191012807191573793668959419660921419632723924236600434052272857161868568390886407736275509347960702383496602601364495033723146169328571469382486613261179409900707225247450939540945915719196866470966301537255024492978295054472662661947618405771811198637256635007229254634608588630469164411862945154962265255395402025547402242706921289030462481714894244504092423159699511493510041742070582809140401230018454364110728541491176211977133779218184054505174386526499483014879613492279616130792473793057522866737208316198972663189991426328710015843176086968933633026771181253195822942814804050264162861001503990292309002689207998868536328471067515612343766337233768105011062496255601395089705467975343950780167271569442148424837078939799757085161289011208027773837895053202970559042754188280147015327655820896047822907475802556509630793898934550908254603776000256349676868357650649512197756806751800278599485500261381042447910599238273193525267405658170645832328541135978678551146306947226057103304111904736907909529336698168994087135542649341499120618864029848394652725300259119625548684586461894157732397419724895550478356706023011644380243256851170987058295029131101503516049465955627651806422126501026476706596374193157574210406871939339924171032211314020947247786175557052081899639035532691817508049865867356024747526594919824172808438119641681644622299171801890035990052061598921181523439060102053738620683868804418372903835347703485226237355547126825477518875317364845364605993489773919143424773498522260325570796084286744405990584104567449481310969622685130751708978611375747279793265663755416640480241661965986895403763517254277913351381238752510744430329212345333331763426821854229038373301828527082921092664082744956020668688881873306398992404064250656169117998297681336798413735078639521854618476825384442265195530688422033820097549515101516101820536293097868484186296601317097712281316412208874519027411843965473149608393793785350172867627712344850916230800396377631978947648903202639645545480850992545367621240261478169425711369995343593023934087009464515483833343257097710629238816217460703049588902373408776821868027602687126518867193814484084390887091390099033563380089197035556838623690840864128707782697933874989313674980257159964031775870955066459539682538487804263437911015425003832672003728837784437753261129378319384972026038566811209504998355357682095746548013122554323306681197963572390221134071484905066064416656983073437649200482739131635376121540273218499025907886537588617872275142865739453277144593366798633423209277100918216910584786719268662889572902151568337212548441435022547084791169424277590706909115355862525912804267516967650543005481388554084788743618749789940858560925448948728579050327064246613683959649169474250242641139868883036478703275842510014302102310042098099508476559620195025771425223959083926856815706685577251755425068595649857132358909744723477960963062656509597404179174018688133757554976034941786794264273987614065563439009087919571330521627727486260424145186173523708294619435378113031509885716187075822572387949481741693465370648022142694368216856576662953481990094774876498791541429801103604662078512452858653545013362104344520950915669557815329898962389902065091363614056856010562894167853596541078409794137133749487277586026956015086373701830489024678394794197170158651941240817310225393769269367479635934090412856551145300316802650991827515643841826663352977063893067289462507722157851592813879059637891003358454509959172549067833031547200204395394301530650780218097571676523286942041951261418484788653764621386972381864313929898580350526600401775360006830996823759989772067689605213720412612666601559508164168272476283503944870871910977230189262217430233531129775404304409401267941215626194151413588130102308309613160893121432704750054569150856851071036457849578560344541177545924795005943533587512396931937832396103867398936514600335395524192588048039825847877822422621005694680124053115749607404365997807914087745170750586494378325026236479962425349366831032832423466522228181318621855617441166025178034359847379038390148801162926653976175836223145950361903316409377175863056249038541710023236623262813381545683858609423925457317520039412765408923341929083534522517152063893020414135940555288810295531046971738729033489709750086754359913605213773907245176205902460880035170918202707040365419090786018024067627336944441254502117925000455043830104806193386365643679371799950207777383437252518889464783641235211305722221924315351615719365419798033927060911537391983440003149557121534184653799445590042706541675797389311820929920972343644556229643213216558351501311978462720929085447440927723194993777388949654135950318586647792057782678482013616780937766987418536817715983438900561212467485950263544668304653312750250907749582602790553250650850781001865226684055787743433940644905122448689428626637229431730741873659997069941673857433550641121308493191278122479678603808271920111700030173558086851710975178044151820470177249331728091889166787320507621975967418428481149254439756734559049461075996877057707324009259692002402837210131907689776614581562673281194594192459783293247892158181726683939497653228093988351715481567264424349372662794054754344540383774930081176326868187075198822082323853411660451452397235342381887637536597749587018878063215838213747396205840921872845023083171196562044816676031779113287379415379127143618852952786503574510965483900667153194082801548152750015422258572770752020873267959131231885081845072211874084944283439671717148214909398398456603930945542784445108122189426368184865624716691989129191504871376531533009189465901968893064366667846359323385818261077935999827616409164615498618090784324834922133264232307993441270894944813545665983853555981105340146505280085488844193990733146114184632681770712783604420833236852691904929292038584090901051161782820033502204445214778624983315630286520119668068252510072560775372120210210941653764460375260778014855175434653408146221432329170847656645035123003836870936108563438587909903095675108467562499751191881418554066779393289828656483458517299485659090580425546672454184867703777130012335867750138000004688219044066592503791359038175502973474919899294327176009566992998712816601496962297602892030318947757739447476289726533749691065994256128438378238805613908251284068935589329315250577902295917862685093621003738103276979908016286285211465838754290956784806872161494546605431780990767870172830457266858024907300492905361524527992613651923840961800018683820822203382144233608778883394053812071987396826921071095737754958294039660393538343161248436155463920561339818492101352746081556331087513727025109452177005508572411248096930150539451185979193619873651729531212690638209952790883669573601417506554367879633334798045191235315325485176335759861964718590543809603884472879979666821417796329201448900436575001979383021791050160871351829657285102028454173501100720708217544822112489109034080486915210466072016612354628021646439483591545491664387545934099346604598918068197242923741162273716258453275330575370229231834777157531246296277695176146410876159318491637058760492406000146785721521067496424171560207094570024445588937766380024601706913155337943445501915160644954030031128063056992099617016717785530245186478494433988491198653053722068465566696044649779766154780220993986684725839079995628330898036271414969853260507180230496854052166884746428683370212256108814760185676433339390451731971683214765374680836270016336838557340873184033743648513103756803870577140129529995959258570485084922570875314088168562477008438311444885130245205593014377720987195024154485952733310068359426531229968792775297746564557049718933857988393432638352268287261015574194159185307891388273373216811079891273806080963981010384654790000569327683498142963999758525797156905335057097644977850981081209471434581275311898187074508544377061502341196688743683529370441748437516853483585436260323477375921242654029907614932080732310376806772127148728271855337535550922350453873812714480253188122869294237088403879631686668330415423269817199594899982009419006974244809294701156988386180791872103821771236767710284245671045677523852625700428141636943160126683099938991187651067015469869964284290832078414640785927308803258621540765997066638086532898383924427647260684614005018757243508293472363633850319115956648534218792588526899654226360957797743604041493720761050255086958090368960655068496661845534677190243311490961386225096834810731286969153727946666472958192334508274184276690297988422502669436874838553064527086888559217017411496109568855364208211765893157519784680596878048803500901304148892368138383705498875324190148587428914408056412589165943306194980277319555404636326406265782642014472342306090032308919051007250899498972353278695632384589913004457704653303859916458431800198553507929953140298310626060796946323516748983787191044592711713290352760290056495930314569094713677244146550735157228312500750875863306399940373389568903486341086407961320524417003783699309898852754317969148573639227352987216242218838221061342179267037516146469874138313199720256648405269015309383351259870891694236551557290409865139241575899392570127864349234617035423400347750284040163733385717473851795973504773284270849459214455037461692694565825340952209226526297950673483664979318010107893193362942332033974414554519794008770310047357249477006562755434890882832958048039973478136324162918206109018821274114054233599827679376535369416931773939023535929824228842013447406039959394896284277049166019606726116509627824340148036953021101490969391457745812530152787714432954890134545833581834844735306760521911989689725325809678833389690838599176520139870293877427714108902384235278832552644288148727005839320676811177827795236557405315050282865201654959600958651611178024518977028804578143883778049683399869077180311166467125071052016901953118924099151648711363265651293219685183471584309344981831777751184861960358429151819732080908723271339317099907336919784925841276942454469778560085970995828626730684292464882308284209118103700961699380448718329790279202118696901926314598076941648546590062640124960509466442535311459100481768454715366177201732269070269476755075457824424569723852009295518143707130409954206838431218864736647929379144547994137811546512317627706018128687020979154248500255185715326655993694302877690413036667175223985676858508449955835105889393546470081529766148152929169416708121513707013257293172736405434940131797850943722848802083640431350260035135687554318565559924991486438424784623420890819708297052529552745176976761393171204927936776734616692338627578096115997656983324533904221400262711658354838079475848904434747510129816733490589158221996576972957322858673696814027574522160433426439862549380223844939398470252202443952114488282131148217622249673094139760653273723021816740531694674273155864115228031819946553344959135463948473741002548313828462210142759422650343409198530651931857462756323364852357166162991548845153623110689762293570539749627604519737724630272102480833479017009617584697030347579053214650224418781619656152896179392986785374163654579949943640319113679814312499117811068112461537567544000477464716112658567499992969453052373055231023307645168619188354490902347402381627448982391261550609254347984511241898765696019514880854355150862005369235661405674495607169897284899323883876942516668124144790714263693073331281309539494003737146384348157280116833063402358851438258437004647731198898279416893567460115987556072648384036498787085945609150556150927012591979516291092712539535378513792553632916885082031806376387661387329199873578367168472830440304618624129517573199588835448934400151207942322782339935274814215724719688212906176173108123845092549689391721500482624298737108796154566808859090466663304146065078670119365909742577069296073405029314251484941575993594232356025150178678353126965119432871498465103605852763593348270820359501170099380675358889252390019556885979161195709400538585682058847332230470175431382801036596895706423409013391358543134717103187095964413934949053695797388139220762931710565789294452461141571346959393060276360502080110716247900234219617731109058423672478969539532103099334050317648573359031909209534060643509017442891425930534002622878769914145672606864448819643767979036783016390127386583005469269289111372802720511166565631059597645568089294575014838578412925917966274189807336193013553852670629603597652983720235938192778304289221019281161518855174167307767313968423836232552754866537687148986623191055606694613504909724676020343107898544833889730107615167620656564358696102257576521728022776606585143268240171793319097813322020039774371061243763382022164267855925839450633170228899447170982555013260393044193104936422043516426755596345069021431964678631166981063747441478569243881516325879928847501158148668967278839898046523127224743260678489780913455671262609412815211807858278050528635554739818494739046665337527233970490736734056211440527585256325870086021188612592692139233536585735879082794740722421806837242068642452568446271595892660426372637618395873761866230592578914112470090746994149604022556789936474650551483774777223806666061981811876995990816798863741307612364762361313461555842652301897481413213085544775989361088792223542552257136830156108222580484327479902751542066251052574208869641312482863566233384651031183447844920830289109108735598076497594625432889682151976999197790056942081813583358279414522465148119493727830360391351190341393630098363398295794796911809200327818844978371235932644755181461545692435216098831175881594457504667684439562869430533758833134241582077592565848848549629446291621947573116924863352228239192978522351162440448270976270111786217199401286608467229049804233745645756394433640459868458092474581767885428106633473586912161197394685140891126224427323435169957169201937698316758508053680945880026845934057023887740411045103004101754864281576763540850117874641393280591995718428248442323008107993171892632957717424323509203077829265783787063074170030865124017342739128728505561857650882116525910256853727204218728344205671246273062420800087637077416452439946885700004643888597658361762380528274385313843501817295981678627596914827786324455203880584045249656309948308471619348972740886131381804482755142058496999518850363504104102356674263449760994943576008960379237184669098743416362965700702071262989104606211755765814767880637285502916204621450784624680216010463848114557293850727941395139409829411094816392499793218174822328103566764609183432978154409923555494615397606771882909279327863038739216913264300858087367943868131989478628694582142157345907965031160774514210826606710155810474703490944348230613508219778847692865988851989680436246031891369210959948853814234920949673463284537468275062654070592507821099971082409730312765878319650324378255269637314656118944050818434092834743398734386822223201500978963112544840862601061971949940323065857275570046147583869568486968849482787298359361764614723429446729750320764099972425959302939396898718163273692651739234708745430571690724776407973423808812158973522374627400230480688326873073866225304395494235634181146355783559887288155207070823589794858010760557193422198688676422177720406724220742870817318177258406826427903859630910455909243932163141104011496408784866777990231434752470787786800889190734720005867582985284267853393830791229655500485304793118076145619725100628571985785144609726915425393430883245170458458711359167287036991953657682894083335275286679832286838146336351745847658086477628355953304935117132647246832741080937945687116645650765008451376719826948502913481958252107308610392866006814918366646053143195225835425248727925340079758599565053261854105463119503826170231028083058800809566439694146946546629428401199870110332060032031830878540379068010234113376422942127024947404071312652854453196285150173042521487454216464941214794916698971872574744860269291539577760343273107631088520375249179647184135450095078246206151067224374964896059826702448428572408821671483968606435849993929875494759010346302064172118473484175961946309296426358368291251864618604337186695290277576998193962070683544239032002411599002779521940490685969778204125662633495172777089205538289102218059150459284933330326942272589877449608272807900227049994214210224318102464393115428738539138522319883766179863514286783248584988950721868686882988661746872853287690670712814842714534118444174806315134373391925778416249912720612494785165534318051167220691017219032902052521063030867740878478743455027504251850923637708461099988729539869246284577493672937105305598881272565518568542382351954417079986332083930950094084434422436649025577487362645051037283419482820019910939692325805872866526211536231357268367059452774451223010598091626619024773067781077847379812451955063527237073937986826668513031023240944269780669713058212828032459020072084330390881472025130800289549791894131675095383084295283018664920579962579268792180216580662764953823986411574048981925646919545073263059230419850278255577017336361964883873549995675686397338165616600744346931825753446954408128565084445190288197774746758256916716996815355002218516271997270485334047023604507131703341767427119947287334089706063417389443923165501732357519616082775975479282673108490893754073747237199967063706406419073134893010727093300604430395541251812128718251710683694601349610056427530746588831297840420717885156920556719543944497054113249944551573961943589183886908168841701740914207420826660023823927135051096756959532079981410916710813882973896554086786328457049208146926647217665756154671730990977946235683558523412522968281664309482169994822443023027492879440585324894065328290193526775091832195208190772462710065273041304303384456200299901433917016274687293598890428888636285929895393087684026341364316103458974279402987438081023434431218266701575427487467374441554927716680609189240775304343022718372704387369464806683950362678230482761610679824986751988017141803174928459348457784230492150158964758234180869643444293274096702212080911556024407212284539746841576137786624653849245226842953247662512960392890607382787160341902889879837671290888433256943518798872689225147859616545486065519277937466290526349869341724491844191703989845396622224288122104442003365936860304706910221750847797183974969389158630618938200373131128306613368413098455450818715918548937262130984362347848183142156797834743439306531859931604137117705977405655709117655919847454560046927775034022512768093749758844981790380454352586666041691580377782498336053494277790012075442592465640285717665166484178640600184670402321488274786494913197224138353644153339800433284488172002614327327745753170476006282351745151915887167789321086368827209059406717668819874558709251976945714842308595121969752469865769898526674818266281139494132133224823113219721239517629762914310921891051328260269624710454747119652534066869300041663464807908972227772016533508890215334757371710119863601924485457820967185377552727618650397023799810106012356979443117792328403991727207207144103198137113090486333264830050346927108799731480271156094991299632768358785717865828165672883824627211265916279376429128312468228934029623177577838701135809377358694595557932814748692781447657507969579751271764764121498380510145090588151269119167721399036118635262609425494602263315574584851026787141645600133190634439901220877446449197242912385579022446190830491921917294904627012492044102894383486852057752195617717671912218863928506529497438692865360028320132437916298762763971536461079434413506176541758198972193941140346709398598781108919699766020444950197342368332455819173442258453498705300024752468946028904345178129999373706358285215142537476360095424838863510755071159586377193930277932079807207067235796045376160846786909328181395472316928465573364214459167049758708287585170822803424857547836767739226273300941250168753573629079260738214424044683984619182531867404083685496341127476540717372147262380623280295805165946148432184373114004474063407491212400692272855551896106908779348609316481335927226082865090294637801508309802891225781480188957175920538655033402441955328330389199073597763867976980403830231232768756115801435211788593575136955974600163489109527791951851340837263486052518849970171452901511915190088134217526145069805209545973920864224831759280825402073231272354990679520456661057178088845049735842872988212580379945318914938900801826318250183954359912692964381273650419837209391696515024006463060003071501308003346891010030194830522849826268261937403656172081856079560631019419727725956788823835574778944147917060016038484840094157003894788590324163626608930286577080980841359658313459521358777245098705657059198597091908142643555279867063852437106588346792622959793701709989740875137415279113591573229292474003176923825313826805012101253153153660339250638387483784687968743601012401022536340905197504366844541092026665715258495616177899362476742108559441512647954784988040966952227369162180163345460644026140273209545630809870295411289196575281693209395665888042182068419953553699678613846179775747840322758609297560206749340666370312510399909313959108575030048393179072241603350577121370333564189647491175312097516499698514946595064561626913644069381110419088525578789722201616527164236753083939877721078340848312528361052114974264170186699155254296308549197333012703753762083473627225908549266143661160886534495362810694572345399101344388683124801780714272134080903076673411489761701563579227277176087198898867560981127139732046445462702375398436474551320409790463705376266364844376308613507798005530823523567782081411160868366232398232966199342622983137397895264513740278018439086564167913587462774960788643933480036144683137006445329433845092728447819652906749817575390114840511634703258756641157555353365656252965335513338108844786002198685293851882660568123264977707342850957095817661365982289741718872724189580116813823022779698154918502565715721827491301441183078054063539544579885819487223174495210047256278312725947440945181517834803491311490253029238184762920266293859300160731103788285161342280847186140655870561886050405259625022009678547698202682779364303074331753249382796624072107267924593692628360765475187823096329506955134521360762378935573215889895995032506263717285764560749418301778794087138955607178870603281500791159871078689760027183832767861806031781686131563726081814127080479811878259682559028793591814730424537290249098788624274178971029250011127074263544269736143139793274434924404450586187826742829607531048602563926668291660436544870423095538567875476839030161504855279991404438069565777358339969163454713023521946725710096721144662807236210830871484247070984445949109075175610011275883367417103887390334397725138367972238673975571831888705896360018175971681621606670046171427615023416671752232440564393878991913485559727492795829842552771601349285680424858052589011062798945202002772714070875113013831000864218574723646641482153803312084194219695207353365142189819341836266629666501433666924822080199437005814048069788587707485995382396767852865308735058159881020057915886544844109165960135803785965006644841728413360052678095004494698584829545811782741923369596461026326187909133787144458353644965232587336388683725288814985755952107419446145726645607538413658722323261255182023346120196803152043309561338638044575545182006519655044303877287170898363669973124945476843765652296842829448716841304998112867840586650346087125136484547560106111285089641271696396258176514095925042316780900463748408693600946413627499696146720248860664333456201251111657025502533372488949943120400183360398570266686834936197868945976869007507109152324114889695711112480548428401552236178483692257998537412512935762291448016360231947864576642910870818633208944692253422699321318353881588673339181336933154529250375849820434182730673756465036392892926126618620259716621206892155853686445718095724602625089430980521535642998185913898714135211880195601986780402782814386676945081935566938681402816392977658193538696869511759847661443451522817896983468069852476608927804477766969071292042137196162656512542309583808648450029830512574228476126680147781380075294126616768253182655287991103900799998197411771213229296395086657643369540344867317654852685161720332124368993097193057016995110094162321480331476430384373375535331156543506741273536784327459865973846827811351276119128250242351710560775529005354942840245301047484128163974326864108085512069630862113703840820192244266005379481873878348254165884664933173172409229447537085147162474356924418772442167341876300094539336446548211721603689295992499412136917579744517442069159338124815563321909163842747665647616330630269954544534431456304840863478060692788133676776866109651926284799927571361096551840951519819341949081712513936473124502400972649125555158460442533916742980870600051517499510200679768395805033175810773657681423473494341651974453033526141365640625028651663733899974532876658871197765048398070502008889431435516281342916037145562352952056642425180317792944067484840229489218520463003967555733152764083868869741282221327548710227001319464815056259498994408127924859442792616757113687594872310582437284819596932509554316808042426740387859241076241169833046162458574056438912161856010712753114022327509634197717388777235110316049976383123120073509791626951885796138300173203704091920892855938559485820512644996915039570802973316638519501302818288366730634588220789827433637743559416147485792345034716272791049375545727621659625019242757305552329580706021581648789281423441450060692612321390240732697185975445091097562779285257292871445157472080752554060789354492311076250767205455013431253644764989428761066202162143786747871291426798486761873468631581811471563436369954140041157233528366782865281456964553152570185405462850160342252939742079040942022333703733269656230726518062782226911327778484159076875270567004821303544124718411190460396842519092929616560678461318152707832251910545745847908328870715393285721167588774332204804456346169896907384981033855704493700898412010434719091493054915223097520855991122121050825823342395997947853076379008875056246291949033681991363517355721281302538117169815614531068073685503442448179475392092415418309561034893080304136054350224909464755509373556019596662117990339150839203218581629109903742152846699319958835222097483587981836883650267527475846959837120348211311482073541574460329834904281537361480911517710978468471668937413297643667020150849677856863298366431640025093168152856485802317479894587703859509945666607618811697170037048577311580731059506284021130674232590357319216228877722584273321784518547157357671832379523183090631418155513354456580491794647441352284861285864423148394914497683270466101751610839261991264752661256785396245779881923448567471552546867119565362606234605870119784454168619875769798390467457236995269151146193648983031770268960974855877730233250555086951622240112304800713083348242094000607854931917152541629764753805526541609954072380400537410498021118281411267527469232122747909676269478031066926307385370420077151336190952493687738918291368975242646203443023292303186028271527938604272251027159823180540694646832784604294694772202220052645165843490307025764213469067860917346022228910372926328920593318398601160027877854751510831293415971074905078358995624429380750044209769474474826105000600234163262211672546458304226928665945889813545418499344809453948947410859114455742325245184425284253979355064973247095408869048762573571943240356290743344049716530903527213071234470020836744504974361286941336841899173420152350307060835988017655411434177922396406631423361089646967715353684984085951054301813312639252487204154672028987986254479209106447921475316545713733531306762922205470295275225651438436436727718222159432347190281135233917433983251234361820778265915511374650159906352225717824686572334701186205939930809728257375606731786269574687644994752120425294697844908175790345509067127450937357549647698852748785925448725930365494234513868652778495633077330798346980006950839081579899035010397509670457322663121859099587128026901294834202003550939880412890101687351593993067650939697385863707702523048302193979667442971989548551360922742643769350564812823869177594682235929150973816972233058721858668317461542625504086036052411321857545761561540979213866988892675807270380206287542949076451048386241307395823042538694689274984857175013096968605863906610368034547608649394803548331845320759933679254527406434181434366180965812298147480404454937989865293436279326991557555473120215915720461009692093682315440959799480698232157275976199420998449734637779727301679156440237941822398588650073831845143295866343924234920400411354496980116107483798470348731739756045526743977004492484031362756128261448696418790229894193886945117814909910423769669826803463574986802969143698400493613429016846543246879471966027507699828654815289024599793593959077719492741023193373603555270079259454507395386839610413011319145842083417019535316744180890562441626215747996816872891037331122971232760250745249675989391892255557689838442147862505142113523550865456846360941383860588177078693878445568613695217860977175792259383462977584276242695645035317450838150635430573347322313942059730253444981430344468404384834155441871363553854852620096012368182169630733993668299419986271442059400767604898457682640009038612875394721041900419604232339247949376960048382772393723130944511879244456849884825694174306915464824578476944011101719144590305362970012896398138943209578673883597766123564931069602345844593529096178320272443426132554616382504607569646840497222062105511391269352933979101472474586266131838203910578961049107281051401171702574664710703632906365579498887378847028767398864601244672018216821590637259174682670400600679730647288290907988670367780798318827819055568674697764519977440765986478983553004600546456565597233782724610612796432537255475242671504728877359024057174170626574280671725391152332946238978699881398878066986168232911295370523074467119907630555477248594718714388382546225901446224737344434144183176215844888770201196380083251247215700146161957357874874582080115432227944487326608787541003362461753675407753455867399147514699591452100651332515550033216835547199260619565651180805336209594851206050047623471543448904034238049098879335322228194425787219435203333136179242517595219729224283058403106403589717846983235524775460430478266086641894246616396393888536088946156245625198205005667031817451015730793490879781895516132314013941242085593534145368339447236311779999465882916535253204219533747227769137981982454505160360215919330171609429673973819956848983178300992698112698864332418924599273791855254287729413676968190776893680305426160719773052794963779367345288470393255272173897454185844707231735767503973759047437754666594607172360959463590606621088328529543196948540498108486798940943226189905209772049561766398374954475829600438665984713636046993835473028412864730723946828677318712301914619302428789492516881513788002903610953452512581394010752892773979332637337413729685064650781028347674061205255615178205207539560309936980162421385597029019974294648774548465088579117281455194954555592941770917534955535343540386920622128618116740560960663768803644996508020080526732207150098045627043100075816158712944492471194817510425690594268010366748070326747485398140733964520490559927927974254723861609818258483134935676455679100078148353516786607675009815551984692461041530826639157416164889185893346435224907343381716415573207953858272469217925611638686523539722249847772730388356478737777844489644273886407083984476278022761352292733739714845372125516246416757201099664185964643254584120599558785810473758052420112360432276062438890059472121796547373482857458317020797033198858073175716327809435047480742139975691459402874267358224073945427325026726160435604414839243569311872189862332522828112032441784725910160971451658594488533737624334927511156488818638200018479444957761728064767436258403175489510922538314115736664181446349666157719432308276552811836741372455559530488728750547896424000837863391323811921493863432562472905344099373109128777125556810591283452331865077149979926461941866588335820257094618910377401334199395897259169795582874911838624413080705362500321805632539772824193211899238069586376459292212560495104272203379134985367887658671032898096921325267976175156180533955518922608809405430730784373760449598389851407729558547933637878481835161540534926314315224443159847629434547777410466396831512564156064844277323909522065507395992562976703680972870224648803980355281155845768885872460925681955642812509380029163080825588221209745659478299323217996608860079570019810994720370188334571296794464617849376624435549840916098983314849531522994707996440704366669771863277046220136253759932758778351286051472090936648168541707410780961535875052573630033978090028414230970450356898624192575323673292462304808021177576277352848406646045967869865886057207878617388423373112791407786372757214467597511095187403840702686922705909519802248574319043306436095337114568606946162547740273639296605544940655574847189091070008021307869846335378335561759435005995213143462148813090992306999155768317242347940535607341337045442371265326991004256823873498414413300068894882582126382007391903149381062812506354375340723906415229101604637890272604477480522273434932116933949647330630324435115069209797442886084064244063879536529111893901672342475375913385209869994315088293620225786467373315131585785352339010617019028692706513532326905526433714861386592967981112756121106198980820651943859692154828534074437717650346625174026305286084741858933952454240000699701387875498272946903308942132168860027045992174696543709865841149326342250094013940258940889570823814514534218077071843801520835370276458172074072550878346648807385329485773024854394175054065674262528048703155972840767110869384371732688251364705337205727611255024201523743676858984239498741245117985364293572464631399820799321786729780288733727426589481871251591726416654416361107305855904088507246661221953848932824243464954709855202262910117064356964269706402065116291593835426665193892289185052120031451966841182687294094578004935590099493822970263001671973266969266903562420852515921011742577851549118576890323357829009707056596659149059981533247925245415290435527131733076638413245320413582447706105257997421556786802676302641014004655849714779604655475878261464063128939890902674902142051435260729139944667417023147704441416964741856417385383386198165838110935510079257350957181478042857262576925362879947286179027302056302462783901302644634718231241019881659667975112491113112114403923060771792153960717997514367084635513405762449259485996915874524873642929342266016129105219613945561287525315829850984430786469841832646462642629773028815357911768921504808484171731104200552998829128906916117845236262471675702074722737365782532653726377674473961679039476403938352441388969609236011085833635396536889719342341145095359629714923387098070950323032941343438370362086376283597948336468386804636286154897166938181430372902821231007493665597921336835853664274254589660914663619824653508534523928874429678079010874255483432182427654385242725632621438625658420125939791679812054431529480381983910524889615821499819847452466264185454082564943044538408841952192656039324050804722691206522221663462513213838051924678066231101846067503479832011956689620580446676510286039789330051527247591241303189017139150960459866318960394011404473390297753798352022067623444413074640630390901605730322814929832014292185792958646765489532157507074154328095611400928899242662979580575260405391473471814895360989622380464717198745728413140099037562183926098718593160813550889434432775218219356001049141801317802735877535363045129751303024301729136961840378035770819242192611553019764694902649817330978623655860566351143709659069221933497327869113388600570060853716273877486034223090449938048605593325608375775336929871663130407529250610585687645652305045671872646862607426701729265250360794520952015413602248864182459486866193943489331649650589004334612673754440830077024299926076890836418672618639429968981029298866188195091770934949441603271021572281299729139454332207287171146861490537593780546552758394498778944820365008031722476688764350609284222720197476036418725497868580310215644298889080894314418252186236118774113949315777659003362746093524286800032455689260287449083299225899948549951078176276666042392856455771811998084485623455964269303875831728734063918736502508659975226963397365503911046095299783236626558187439036035400781021328144451826549804269692721660817151669249280362397713145009945080330938169603908929599481841893817644122814827158903653602575618206246025658091520210694067541380270123260649109019186731772629549235844285400281878265650352772085432075124372031521036196009012690060607877468318090797536409029146656868906138000200479517456977639220839119165432662616433158085476178287911389610917770838023854398206756069797212601381435431499318012979767921441399755071554888768950483546234787207314248183823040221000162359494833445784390703098204913883075579573509520251291191166710856194354308576409788924693641447985102944692765716609800692523623705145589256278121336957486101694456034984508599761492002715076715745730430104018187603483669005331202101302018057955940820860407348205421212875403255368870366669917506179838612392878429203504130022673948961604171450615671957362831489352155188136654814229986912645838946204378178214091817944484856522074060454759936891625979754599297824862194651210420566172472891327908316575706750306767436253426376445027219486945020279861936255561388630004006656046705123259806540153514015760292730999870241747507292666662155185136897152623397804998857266837814710258566515711232043040175142903099870903111699554623938570123109766070805155812952341806894908062289379529603727531849871013124172111465840379233049451876808590276187910914914426889780174730367075037933216457272904994485681416329071262890514495221332305781280464887430305502916636080218980601625761912182051858649461639346214435697269776332099999603212290839964355202803050585224586465721201840887113491513668704993561347086254718018761750064571525843980418038755797203177076313143699839081045663712769088849715575757497733628199400212837003098762372848197767861572801630024163783314644732068215640351998398868370378677104554185760285665174358461791854117358982356201756392065308369959322583338306657701766386154806408632689622430770756439263396099409617932392725742550720900933156127444822054539662010952029742230204990768223008708194270252074593531786887489734251537796747919408783946472433259598720548141732759067729617426152225610805250694478602009372515728739409709326065716091896929016325474133495209303472328996556594088491679528079959194032499884951684070149273520986134897354737634111252172201655405111733532055129426568402886399945182928220534829911919019588780876049626508147691338161101827246633362610011421627310253653319137387735453855093622829049107922736575846635186651671217517702919022135210400572577149877696860856068802793964491114393979280711229362556189665219680323378879364802726751350114964453223799080968115475624941359897521775663751595344427618788691529802609783938499128546454217243070773142905926666697789004874975471251333516602757426276153480534190699129825689986352522915066966511284176397604273179879003003308689325835620321045022761070635697620863816684533384367025132795200107977516924911430410900478832002043197680363016172700702275579631552664379329077686555140002543557004641580157873781761104504890934594091477624241706372450817052506362434281260181277925005289889426837394089622836802433986099724702344452544062332079861706340709299629153965548400247367056808815803849362992037893658953178762018524041308592429183635285913116939918880584540531915535680782046678142894440923307097692625894987141841847140942342586351081662646342458156441770857774377629833600322741286522091200601751751430986856456580983575288152561609655919014202783809044130668397457505729910491846359238028614783862231234897180412467948178506882469321221622500601651315201634565449943434791817196182431864420762403802652238099661511295697834047178358227696374883720664658629151904669810371990719213291465194450410391267202379700874013127232340312720149503260355836862671057499430425118236745510002363897725412549734155347008504576024455827342578345753506091311538737820755590572400744445146516984357335172811074044025086379222063987819765660458304654785216556818046582896156264446371204414733773850114094036453558145158636138066165049054268442007856051366530078033780696793112441416999240576708007983955135121125047613764111616239052854243241318039000899628540527546843308315364816792533876884666440258955809430505460691793868366016453011366286017968489799495807316331008445381263742481052363465047154840181259779263641594183186936061028034906606245754604611424889659920356256954889847762788300553998414035487375234448176891874956954111703890782660334149146114756454023217399183742762603260251409175138847329247472649278141314710926914883967063360963363242166440440654733040804260585464142372325440026578134916800327985978775600810983397743201904754932515105573044696225853836326643839144593187689793878414242814039040790319898083768610815198763678046993726216942363587728605850709893026967033017663144382691511329656147049617454382130047216171675434237098055604034557583011959727097166422132379678408887217286689267506307527438988253724830310273910271766752287410293354432200911508229291456759348598713533889569341336763420927369060199524537610356737209010809903720659094199911299249098904941103761165087206190790684109231649177951254736095797439557366655548506247584466895800046679439786742160255590073864036080592581307940885120001844866238600829591518968430559713926517369837413697214312689437300531791130330811276379660569886397355327296630937357937738708698509716936705527029173438867133092443129569359257826922988561473130446089003140938393767484317137968644892206078500381247636444841962926459003211195849132208711625728175562102098428348287926881302063457831753559143907080096697862063711478433297562172295582844592946514733458301674362992929656810661606018801227010626295535655386889948854194229654915350685345477355736620107836846228271865560025089185326880644826872812901061820689946260024188032447071820385648997430383879049112082411981963201751748541812687195192033881766449276341353314713731382717575128759600425128589990120809636023097797302303171295335244910761145198515293159769516145667620633888095563880764574119530026011168103922589351850535522263086517291297689074874415849743971917636292175507998676794713118697313638095168729350162332051128283273208039098035113027317675612109756240944036061040005205212387951687230798689973624967478426788550275759486456018857407958318297687701337885798221215588297360657678176799826165811101143203797053279535591350794591525522411319744798743067370704508566826471511264132119882787421681813329456583625185162977151099556402220852314240625032534876353348410525945720678964035521443639031862952228589918601694679719718910093406127632647994279872744869694587674559242025152478268634188486512326374780024335234320174911863491224128199660314490560202227707355628881194135116190613632650157302391345741117961483083872762566897934275103173347345569166858412621941310288760164649274788606638140356630604756224317114036044588909245464947226650648293876707795053240272466155784995370552007840074531182727705047477651291528009949083261192133823085625671964185492041909980373804875717115746585816613417319947484832201670919565493180124848780106088769901292800527241419267930629822010501707110491615225763003158388382836081617108733938507802308896496879980861574499309650309482015809034542824829695319931248691757559295461513263419499100724683584598940197226799075306976065980399051260922719697898592581157664744683813831419029105132110098586949807373991817414067008571193612201773996021546849073503905436793641164864624256731316699029081361079416065362799253124385566410158726756360388968511945079035642821697672199807761380164858537240060921088663486159955356339601301945707283514830521344270490184935968756206106910004979150010851654532415954753646331873557838399280017645073045730338665004546913796250584793441564738778427797024207523460989833120234764913840687533456377925958046936781569024541524867123801494518456944507672467821383176111761032167272917508725168895809147088041696343621173221831668315613821083016283451907615341813000707863126936726434024504178253108715568400453998909525496987781416979683706877512564532280900394483275718299341945145667731825205587663588320721590567615482170066625359121393794450437860860407403832227296987241610486649943149389568020493584336792213442452269487443764270472323567302459223384855779132564783428180939217484240933631278450003102358688274617646374808757460662556325525215031011772495618444968120075543599652268356015378162236314443462867728566135444110811658413804847713696892667569751659648981487401760401600043609328664477597210173912626777266731211268270168305295761493266794792879582460504547238458305130297188060994993920105478279020106161674314950647261444584544116635196076632858123917310047524165676852314326222770640098373545792784480507747380734721003571933257402007980107736965610202143924037902353743369511861776681184501816738213649409706525081503312273944921767901488768069276403991317139080627226037482292561296459245906077622984817699123956001873067421018362134526034700398018294247224471144349445644806517653688825746397291380891465719590241569985041165482830167134321664519894028678368304544541512393678566903595229507143513595108948957674026537731109840555379062924527806427516358725226017210805801867079766680271138909316394702887500006360531401643171853039015179968663950313813381953641732947610255319002786182485394458487080749453530446007765070403367208234622411797751728732200098548745990042767370137866157078241128291112300499698551904471495810587885534047066244716193823437449829863369014172070865470310987154889739595469238404661284966184559209641885208856898778898117586875913216745150522827396138572432127126118535221145972565246963221202873079207302736991074302232257089330302823756859448957553086559823050254608737911639049696328754069026264779478776044292134621542626310927020606115319485979018824157432603683114535554271960187914933080580620576751050400945244490065094264061994199481986866297927352824699382364460701533508935657054983035079803621236060381937416299037872291623228938510548409526828465714146086630830033812530414796513537060491692970693666970501235012254226941304837934017387585430308961832898554540685299773852170382708705547595357177868378442497289878167919157412112968078401515064590148461285928326507903828163898716211348328237885244710796017046447251250999553124485691741172190937669677650298954910117108972333690202580910387765833821686534744191690444096924165201146277236870953615389887377110810048224603179468562457530253915681566344971482987703613961217592005342736308304483814547627126531464425880243182826517767829798463659430651667596705917040692853205693022237658942401312396741573768535952792919841474945537698168032765294543955254120267779807753272279171474650198471449976674367764122976106263582101457087796756030961794019404257387699098237263688452200051963841477354070769689055240263589438708493915145192446434787014887853456486451916308210789211138707603595623510063916669177663230423317184385065151467407096246783023824079278676220717898126035828907952031043471774680075514837205795598223764530059230574234231475759663192444956435350320045064529536051948962069510170634334082903537492964532517413826649791809520364398575197897549774184820123013320126272622856860370784976418327412891746849432616295187154914925440383324700369634402261152704543069942221841144321092828743026501843157353080304260123318515952042796942588200804475806782342893654251374340486325195297711673995633054472346925958805972776486915819167164896530053577681032768655323775511095338400369467388167473509223372274704814221494255119408404897255277047724703845534935230501432815454355599125914546368250469130418696187209571917658946497189975345115398114768824024273725392201631977915798450477966199506085567393439615579991193493616032612148267537307873735900713201181698628341228949209304012197132862553060701045337819810808884845434701950051070993426595926271156306316070661335838795470307335532446543027185238958984716035725069764261161076865284207225338625205668960355000712742379678216240942627832147467685440058955616372838681951150275204234666791359182354113826801344276468765799672501613250627500277349605268882090277288301155102014548607867760886461406794374551936412695988106013073361683423870850311454782549633317050039541890726366726633401734223697873232360629821566517079380809996116068854736690347346042724847662280691589944675870802959087225855114362503954765469306126438482484037135539672532732995271055360906602300264687516629764294828782423601578526826156996014655559519674892878850442187884066096729078328199879168243548847859010326138069175337785814053585533066961546987533379521846792359158438973261113862692209380763340788046919570273791422751221838479746776902165443449152785560080073022508500899763701630847415111725186192704022558757109944782016273709692806892691731082697146651208637026825022985807368995815037018758178061664631299299412101070591072713109752307223704469068912146519989446456362724595187607190911878540209912708577170641757989627548042015886210502485145444645986505023133145852964800238354789987890096032344115053950968029325068761654596201587324915532980015338676215633528433838011111644765933578361298222569254485717955189951879867104440551976683385564402127131043505293903959011891222608244638809234834328854070939222146242902239477683730246903776499944327944812194016184672192501392972069230907200489777543656023644535412344638706433410414283651176146214911320466713291294714078784501366429826547108140894991369284374762646419263422778831374490392062920596254054551622751383483095884732496075029385638727118195819600726925925324767856285241103025582346147420254279984157460873670130400944377086253353618146521289270973734626646193712262811366153879690743643046586378590303997683537349005381944346349100394207097335598904391314598770291609730118415921405591925041947070259375779581837198337636147531657855164038024526857307597988781646965648533344533398227331007129622668771394880302284737411010463181144182137334117312693411862290047445467435809552532229979820311482997912150275394752125150803869094480860226635094061127117702182467047901025651531888701227982010519980958290322802269132062907983157869696297581080910047990196408230119679632931728585756872702407348749993709641394183347762010051867673212181013305231762540915707972033204931221004302818748562695416262679583329434423962187566506922748371778112500700849267788046803736901730771269302995220233300564957067542377366600533633766651036398702068446503222998388218320238729865394981880598626707448429137191197531816547604148751831622663902345291389294284993286955596135688357201917351616813098188974565632763868450884437660018693626513514253555132769677169598877783726196865529695523646507312804609954374926829833326899493807618136787172668375235844482234240555461062817644110557127596017050766737420528275186596057296148300518021682650268183435429070781910472043321194890713318323099169527322313040186077006516565531378550703753715124401006651797351417479965190277766582708451786244875640858173889586829192891895482329849662565504242508265580420825193099559145011097916782906403767988470050754516647354808226869289744404075876189781643463861039357954784506816243345668829733892098608564948489270308952770864975435648322787299450058104670808671233123173180539780330370204693042943485632218785561278263653664778774091335563703632119684808001885862853264109017703248563368686232317157868498326877369068937532067421407585057637494949487180793470005814287796617901791514316086290428891515660546920745185397538025714699339450585015183652569251496841471210887489306321089968610600705315739555598863048990035724477510247425807273198805787582545364930980844278093685634452114622270576463685204155479640688628302887881676542207904986385588409503731314750427900284718165308692230122027325167758613420766840200383424031420834879848586418113994576899825274288293675433260495962903924875903551103895721380290289019314031986102856483483592944018151113322121712164147724593700757127174802932562186118378380932983404526284732192941611260652653393701249829243281207178611263166916030385724619607063885299184804159694229366097316792519703729700299370938626645718553850293256525837905544392693363332081682236638033329684621700279679961623436763575704285515899502667144863130249901319882966366781761516922721822761329806562885044307853609586980921638361187525256958732756110601147375280066060316477347672620666761448579154333336917619872841637206967537182759010985606746473175913305281628240944173412906793046978626734966994768363113241997178144564587607895664434866307994133988175068308707431694372565946911280574095386834081506469729089001322900427604365875809535870417002076283002031581937986222208731341020011144197087149867568859349342106098206686893927578686627752568623246493498669895537633905602748411455581814208596586220841497813657342440772943489424453236176799343623480355079706207857394050984473119875539066241583620681078579789383725929134854326885248582490655752294857218862462113272150502311626562933677927598781695535883745872659618856995085598893476677916954696187730935677038274183417412144332748310711609028172536152649899375509598800016501252455263114931312455717513011554964915928405081733850328216843671657678497622660325670235921837621584345757083791994083835226183081022742295334293446933200175174445790048398422991710281168670136295972411420727146584476750432220284574755836103565195139020964670852849895061168859288276293883456029751522268609974089559769291064322181588974573338673143013754234148073840899913997946941884014970831526069547389453597070431025926884187776025410537784801393240951432596204862926756981390387515785100818154073546643405352762942319479188871559887444788404269975195130093956409502580267022301231343360415748843721706871273718145793255364304338164051342353025954608810268043624648846008001184633643068031959824166726284670227421531683353192521389909663755458328147661384584540658191787234246398686562982631743352038092042860426441938087845578796553475866102064689084895243763282461985324536770433934458294023211676164086346063185162535300024751645178013095035117568513319212929138622881524547182090148764347219427667646535607440730124422244059500773649688705604293489676407754282383492235737835854552427806541007076460368773236963803730974614743681047646564214573265959529892407266275751889033593827827837204580035687578780872342141316161827930968194736715406983446538713627507247960136198932988181032450164282061943781538740536485427250193562657397356598595149792221359198149729297418181691063805373457756632041130947173819512748509171136093237635211201334925930547859258001904746328982521915497422576570008600485765082203502194482578541284163734475388482261725643936917907068937410856931628321940374829455350051998523293303228880151307437522888956899463686318628429126648092220977139716858829198076327333477901284091054875987525715777770647504613669341939144717522542340801632167574058124070341234414311231779187445585266099148706834818715881496162534385030593262008555199308078992255170453374057250331951411479163893093614436370064117637818133434293092716444825225451995576944607597533887307466746617632187264114963934907050997552661700314162011206064087564808099896268658718007963908423014101046367532338649306198368341126428880674628933932996020921283239181423074518553155056836241996961498956630102390971227906311531049652502181994856747660994005626371950767116326177544576726910298423097776153655955202881451545182784243768081717919819637862398742577142177169668192416206171596910999949170427602145842867817546943081538541551032859261771257166218785176641982729730581664586282215998873906151693845226823952766295792944818183342514406742891473688016165157729721009694014306587167311450835806611316693717731981205200590836829363070930178332643545145224333009575567608340129753689970023447147411710715241956023689010581176357020092514330589100799447772701809872857519226727944024538794754588704618593613198463741069083624213834496790964892951859675740323017584329406286437813401912911574348164138491042711247379203384233604092770833748706569874812988530432865926850540967022200844698522924336988198479988350769703357443764006973368860083141763480970958193652617349044632033305341838428243341422231778927446065674306400956707235760249222778212945203687871472074011857059988373165038961715438673520711077466264513835693830424893238058142414427144450081866943374284523940605045999831672296959302964080916113048883230513994742621247153450476097293918563394363637694332735918177811553648195026370911255650898271545897629390555467746273846136015268986263904621344420277932320531861323414457862380712041805625468659125726768351158791331140150029775004557657562399115411668693392065245357508828778732737039665063181310686705004783561404373656549654742799172624760917459916131971024107432998202992907470905901505011013869729158471512501779913445683659646806410417672989062262882111746861762633292437471541435764265473413705158574475359011913793142708054492115226884467429044740138441679280855600233642037740972210814091753125449606423886272226283775813972660916900359727836456453820233194932766035421656601008760363283931045885837139785167555828013996961476603934709047250847570298338324629585802533285961053775268194628674029900599414370789071183241301175683704782082767781135445580772881311314088027376293160030563202122222470911520987412584425666695359862920461181660881249803453515122495544082047276990657046031024901345795711103141290538325255844390914226942143161368138300984095885720923106425378333169151314993840272426681964382826638387753373633353254109581601062456514405867438678622637578742658726764064995575902120785843606003419476332890949874007899021273392245343288872730449622865691654865180870147895396401721836762176674759890206459749536610544026872135052933830708263502797618876400126469732442119328218398506594364472738747791747759761436129076226941268740005811329968167512982632540872481026009397771771929631002426369679702432729535756129946948875604628435045778873236625979372632614917051681409580389930726142250282720421162019944615361747698520252738434348827108849083097272514089380458607091478177770582666134941348879004431088093377517630432462817148305223794999607549428153273807811047175329171822295849621859317536247364434450558352677444004124966313701212242192618142031720561400236877140965716630086851931236735565078994238268802582922367428770090718290350719947904810898343126186292536335088089751366513074898947549011841881382044689552393832412737792586112481341891937506698171466990339641761177895652994089483154887758375609096194764790746215905553994751635503960376578502431921937781295593812137802497033389129683621877064587791248377436210441812244009963858455241435439217929847806589075834762403406680663699828943289583105921872580144098676856592910142656910397262679332941927718334974337724072840861483539733773817120352485943465385777864025747924354319887201411410957523102631512953833879802349870305514913511345877617555892752424288076986306047663461262837430218390473577460330427577766124035808580122510751987927799337156921280837593344528314082129730055448999699037584060800568390348785536467020152995382321980064849213859859282809733839414722402950936672116868791741981286677887170947832202977076903493741182572173770368127248832118008205789038689839944085534524599229506469909965856372119188900941465939386225218422991614815781285685541893030903686266889632217504090626759291013917451876257592154851330070627771416898685301851399402771399103586140316639468785337056270852918427682090743321823392269590239292289345938016542519625847427375414407026073138915127852053839842594418878108187611011103342313594514933646720307929398550590857207302128462620561919975735950068122547479782350492539185162275067061688694881743725593159061500923431764876996845050688651609688065586621677465817397758661325373151250877465573234144719943015603187356565936381216658755414710466374231840920685444658351665260454690662212215256665374127624671492156730695756066565313819502008117230796471181611918162904972046922495033058157725385038162232443252625738506328824408148154124419813238052217814465281354898019306274385730199711816549166411220953911720980255342552828824525607559320459173821700376049037253339823518374863890140546310017563481331065819830967085304693696048647364358446582373145596434838245630600814776921583696094488882838960503448333512903933880337342805693850456234757467249610613250224505520089233172066071737623562365292631499574035480402901389398821943580533059970216952628746134951125690272188404342413667242172762594648199415958578636551240129426465810411411800278776749251830159657262239151899571897722867248882937444459920536747412824284633329522584781175504153316150464960434035523681215088349952423633095132350092521535358334408481225570333843840215906921382594401485030825628919050151925353821568471300204080527834494414143432809679711214024358319875094693666686019759936530883504982176877997432212831536231976564748966813664118964900150891354616630009789986820224432064780815610298763629171092345311995285487474625049722719273416350439499612102347600220025734959971155376464123420245595069267044310816004823920861582674806880289798728778663779250025437423084625007926853003372152635741475418610787075283435641814573103629433825709020674427178877451364941765309072444635398541851707753697030861807714511388813876459030812468670645975879885237789178533839112878701037390215749284143228623526711139863615267776861962929773014060251882504162204125595967542682118419238729954370713427801438513403843755856134076124536830492757478754361222373473609806021112113802944053819080571632275918532748117006541853498443075305857499446164251087019906718879953769416589901057540620271053450247065995768511861338634381394964358765549620113666941378904837201383967493232884464343047188001579021442968860620189892429324960817814875995732902928637393912286093145817916997640508526888183027229906265370669449271702498416127751256961347130732428674384824071098970641955130322673244106060127650810687856528167229546977817257642496226916072987364403234032160921920496113713639599210888107075995951984779191579708205325551195140634533156889981357836912302112971183433382574684164204161811567656721713965375719748954004349106442773986177490723112965235251987610988802687391668394753720797565298251948688115881607450728832268984455351487588524467212267679222988830588905633996861542189137217493036730546017557481160158892521955982366421572694717302301285317394479570750146591625926922961744001551144021362286588756956231445053655334586697340988970736876940471002539120901633810806023821866818246579265366898985209208896838847164419881146402751764434640908077666391539214862788036578285091171245035252499671291707866859996121379922614035868411165205314587992281817655034912251188411507870798769486113410081897373368803829284436649597605601998364151031503364224314947649881472242657252323908411833285282851377180667755858715474397693643165649133040388125809457000177679268743924719836096848292826906562102671582391897378361845805986117365503010010896354270743602785270057905882766472350691721605115350754366642864486043786089456280894892557721842973990230623137873185742147842049750980752528787794375199965562250183722449260676227231558064371386808084013112261536662837162170570967727387689105229707825926341648885885342413458376363302622576470348047102170173534837209159893173132204296833287409742088956496773753261637967985608262552775784690051667480203784994721434653605499702833945102386065105979384971396586854141037010162854871596149631017846476463859521674712924292640813754349325984964280048015128066181344700387853736472544064027656360970662695978825931645631880944883668431039534141497656324152468418517120224091890122864884723929131986865841055770785497611849370730550898353940628992892340699456031338751970568498896980411965090438061440831795866899848740780583199957626336270778986729132845011538573679933119788943230433722432705786610493934693794705620202590877317312357622508047909022349590037418959249720477177107503563958798149429579173526935147220803737959864245143617092713579382449767910751078057204984127422135289336679897334894779631090145792392950349497663770181393539038835491091809071010701922158858673066327738191480500539336404750265200253810364425717512779621556230722524168163370851738177415864615334892530798018191827158783530159768852642506722321593011683666906216266053804283232560414853896653830644735185615888730091399557584671386832476052613351293049107921032361679495000308079017131103246431975375133228474228517370343259403091192288568100683520525133593345560531117401441852923056839089641752398459114321594248784157813315934525873023133542203688007437980388936658141408061657582950669395721674359830946013152192143666078274059405210639086109231086812421942974253283382287054355013069387169017227402311099398612521317167741442898173469814076107050487147826765543441217032994651803121941751123331262001051064900790899567855028596728721695789527078020219669061449086094714738895673367627407537112177172096776601482526690440371678232143697547078908838562542671995760167814439601077718943002394774784306913073198241393481407263271314098286515065860093092016724216576797559513038387563247643271479611345172976084313301668981358118572445776603915003312830855940416525066587764567692492518175383330184378912180067866812667284161641238800333300118712123070614941948231788004791123684327636980093190113872936478413486232083250374543701999265361437637304806180151915494428003592953361986595110193845883179408187871686472250991541997402313664739002254139743024393582348674920333921643378114858385009711216125048124263819267623706343624753601057261526506352476334325842836170183840066231906873905040054697778916841759088654081538732624035666948264748589027430296251053641200535783822477977688161226195307843847707227534038988774641297664063596037864510830932476205699008895130880897440555257425545275789789068013311099217432310777625573344668918442891553922670238519525905406405803114415248017074423918013477744236481584906169585164757661745225617038115025486024714040636231260389029833024453710649056089379997386762967991534517420265346268525775911087413336025089548772488255912390660669625093725859971290786083719512434725850812723343937924409741025239168054992679916395535167792949771370348095444986380913247630835979848862322034835939058536494827280743231975893444097220522902053641731866520408555478523188931627477695448278429631626399765145223408528070773283209272975286996251858629529819629369467005108561266579936898954683677660708773466753513950708440249326935120901395707434094718429410342509070908103710620025055690501416652462338433488228877993543871629310113967825710751151976655770410400721546469619310370710571168470179015290298152048147382311527140254311915218650438353632238873708691057873112549019651290606983013257133962383857073352489906057642068777089846880557843255247322667444636306564589578219871047653759217736667027188224651432799710302174459876823285539651212165920513616541610167926629199444064641290639508975308915076252950244401943561228039619724969155418798772925728261125988238847134991357905705504597070413057244784672201834960082769371628354528716315037796724411561807923802080724190152446897044632928923748414568902626121878642018221854421531490315065777502822808087221694331772155726484969130919475081001758326828923231500665682130021393043110944970273595952326533773118113650647608571844662035011800200165051561101636442804487513115807750449030091730665117727356445696792256563598832277953334279881946984896831215475382687438686693872656014687819293085767276808073771985832760828666876220621689482618214021613593001194331085133316715020441367495794149500597549901743399411389221785981912487967130144117122557215095621561296625229985027561160401071319494440347281078805335523731202899267305668904158821761684094977109590898369543137449155620902759460737370081490294823278648473143400115269131991607086321962391837802534060499901974619195769173412293927786099657057269778366387419752239106737672134919825676184673153947222862101582560190014995994170061996327516538511887750546529302602133835684209631776173121322613719033766655325665774817522143888587029259387813846394877869858993654641225724913400158764286091790640279002764900912826147998954601104761567110724111460579442810130622842953574817485898727104769581597452100629530999311746873259698778607493403841197295296057236934877332645793432502098453169993255340440363826963557641451883719977980733004037268715840269672192849347130528176369424924695049068976120626830787421957781415916714506550960551832328617054432226484784562494249794721983910607878471554493321008809734635948016461070359628996903040479249529724655346064086215202761695110036963192327864345525229460669369743489427087698620082106946777018032923002308133537419744348305365834670604742008183638175901020829477756353948927108195232813329846973343786848854963271919449344206479704615703528057692515223771699606472247227645806541510352645726362711995225820179738070860898287791301869343895851423671037612291303482028421505885427497434164015089835110218721400085759638823206856459238435705119906727385172708754236219870642934731713887218829578624289420506340178421926900633472270535240924703885793716782898589739581092436756715871683027893097989814041310560742818783271954196053363460728668564810491971128393737272154701392557625065401196404691741603022905327608889824367657602264373742449262833052359416617837507282565342880246124308796962737196539389964728577230848574367857430740251579591152814448226839822621722831708992543698249158047543115267995239444834144839182211577196388339383610222648607362624954857190669934206907282062739825590730002716577243455653218040466555395456748482755126516434176217156317366157942136718783830604237950659006569613683051767655840459359319994541456336239711694760852925570840079488553990655198720845583136467220545545645037892460141890435680621319966437624885514491551632198979992203889859725817674269208088656565280536748855191825242946670555296836092476308987192440244137862768606549589710041802122778364722007333080925883408930013594822541004513863400892333550110763402140747651916793751305819786730316658261731628689004899774158834615802385650234486347127903176873296537562211128863247995760191099263101349559839551147050260082911359820121664574015103010421464050040112774466525460043483857663737464721241586458904894310772993790127838107716046934332003158300888308479646517676562008992632013172712951549747875850800471457449372434011606018081511095539449985779120846466485820466306574963904072526314156860563923812254940616259062486635134459045912350807469462179784621562086486705507193719936899854129079439178126452572875177949525127726677019677410941302559794164119040384659798446718364324950140979947086639268597014339002665500746061754908538946189841309335385167999550565825421217091742260863556465805489089370028974764857695713975789089268983005903070599803208803626886272726979883990805290427768432826439855487449270611266197610965249995277920152003449459067808931487245175892939901411021471695452948750971647806944386321072744471019627000692381238515165514289780386032843435733567359935435420345302268360130722863297159352218195653034503760320236109915888254414088509539101261081477311425967625304936734993025887282675546969651272797956962860207842451794337505651560705874454743383546076783810703902577918104534617922283586085748509690805946152459795394669489805923683529146428664405853288243966383252294614166457249533152552970906489570258287431819904152963447600936518510117845391653214509588601414130312053728425962952397089061762830134603154618302189893782746880217352889180994792922121396286072579605850283119309121156926352592943597139303796339537021137986243964296830109114685586047165824177219907598652165644140598341894843260872140205728422654033312471684966368705070145235081438616874794692005792909165601911632485335427805925019197201142592639288791103424888009208561037594001168083920799411128595062783738926164157517752666971562327733115466513613320031242779616551590707105952654777751213562947207615831522369295087429897943915215169321362269115934074804225454584811084734495428075920198622468776494767213723166751119496998730510352943421621705448412311308047839708309895671789302555117472015235285601076458431942650062538939798579390930756150832081240810269873983157521075113026792702319983940314096914910106623859379108650315178472039314896792634927686333672846049233945460490348489556900488400134098109938361057721786707261438030072622018931015698676539147350975615515338739074624665282199213389460274413282547161504947887494951743681342850320659780627299124199182847321268970093956892134080233260264688804230075384619844983909276156217875941312442361690629509025171241296556020423330178631203323779478903329607740758242849573958924085550524108950316517690084176927658703045266827540600580724953823419110726783294144988096557665829024424861942480959628339332062852079320908223431736256176245288226214731557201528001384438983766511986783163664962724080521262519264660125076862410444268371520771284316125624187010944944835191677369486195264276691442346948793485209051270758863108933466201465795353267201065399316023435811624139595813245572137827067021327981740797050281489384944860812091979171390370890041957716361158472797311097347789899846735044008896820544580252638297852117071231208657676468632796870105853363807538980828282971882761352568532266863777955642493366265361909125845447438520666843734487926604388733059890202378324503769536928969359295425279725648162609038056241592747861464717104242962759939620765620325697246285794170541012175990522112032797463918206438619601354403803654067192528812486015972746707340316966503005548306545545582997696438893329979449409929715773311460865997140848316147898837059862381535536208694476794114901754176305740798949671358792831148366440796115174013793514799963033770094120817761482722034997256243690184067189489742196213671648631463712469110982417186526663163897736544960030849312987703454713519040170999897015192011612396945635333344558330167988906020255712495145144024056304254675920478281095179512689520860373826118952645987800061791099158107473398671847302617134300872946039249169507294359293170031967466454194256902277076010203171810863544521517583989958589543336295532001720825831741395078539973479490841073473481037722871902623282283991148221334634050157065685409664249234927068301319711380110039788118043496528102920876796551254833096661058972683220434737578132333757749525749744982749594904613531020661536537609504895633017629199046698279918711470409421022475622890178134155377818729006819716768345428393939885943102177501830364796205457701890612923084981235516233471923173218709793202607857468217577287444893763344568067708573828637363933578111468945940463996995187890504692084700149607135393524746602827818048031101520722733661030702221130419376744673751334458552739341843920582407891017733219351556093026945412564588864661638544851336313939415467946829326678499961895663744365287446007655528785628089694602514755569013880768630808578370990308108828514265115299898577502413554322409673096733202935794084468210054972202620746367524269792972326607488450849864463435752212643943292699598517155199387309150753807345116760950467582777304275743473024445517887891590169680900251272545392521853839515127923630050681500715818661398073655244796632436693402010464957025789644281080475933209405368699556353932583600941260228337204532786761336556009412252737064286981286233230647476677012234447218596356940504046866899894527964048367167504158622980876388900998764967609194749883437708653744749476933297700134780576290021289232245933506446074851443292342649924586412851008868806136808284230003632108937006468501161712046000546964999410632843836037686125781236281434294789040672804452392966922133570385878986912725801664134376901961115467966009163636198599509206413603361688710028388131557374174771079949228891468248826884092602282340149396680083549686924588069709983131642166054563900228223237235024399972503982977949327240805228374313584687406371413995190227768674663328090180184501712847007574627319927943055873156014383606270382797921970494541733896057833001151206024813144284729266446904158121376977884523873433556654986371318669585322705998254563879195992309137618527491461622119821974846762242076892032467662904837209188450156597789448125020899360426564782714350621931503236601663793782837716374378855133903998650134690343884668284490749734081977083378251024810286677281880177669869849714572159295886197294444010151781330015440140290358488272145976742559929292241272405050970509070448389684325165982764123387000354938862623194820241621517454913037133411738231624530093611766659088865241788043883256675380121141691077925272494164483668185724750503401908886720156819533796081990515262842380109551777223506162005773350185732804138387598126598893053064729663025592838116750375267900027223203402169809065963563636076178911389843676409146071204450724219963746219728140192415247838460198104268135933828075031743600972173602601850204585165383864748755855868004364457102015896635062886018925995739794263654904652470453126443807660862980473189734339765826249477268882413741980790635206282176305932880836540852025357122274339486180038705842180944683892182740251155480232523400090631090335815210173345199380301289307048646552453527959870807356709898327013535394927050781068135970457487091152917952627254445479509921744866856140521172314593177090098468815224229884582482324570092539116272291793069523769695297713273972445057229223820235210987265805246783720672023940704236515577311097955087651063199736458895748693005551627288645432008188044702708252628185328023303736781488414368536654107906497462912182179454246280036213963043325108528301254083168440919730282307275892649046291641822421985603519389586806521811281459010763531768490171655393347478758650526645876243507105532504113317188414540429038308587438739317693863821769005207707820131934342929903017888193797669319894132811802315399970615279498937142172711610181429624768073687281096337000551733270505411776346740186361474986718051619569839359381186697757853186615506066165856212939203838637616245910948758144001855735489886554099286675090375315772488824950919219362147085964748968038323651191690550211355253288366121170561797516603622952913859248968163662661101016157991040725324684584824860755902003840257742602238792422723734372190048436308494432779577844475017261879884061837975564423571766356120721740030139910493963087237487670301782264794023301626027051110267862605471978522780413302117241166685826565437795221171602672426855627065531567126156981573775945053398493461905834741763095854129103985099323397899083160703076762301325194192474851879512397176457414482213476663740799460658929671285533228051590317495225370514080375098549135377246587775112552592144367416412717965163686146986747334084178563619282201484705189962771374418343583942910376972490145887747890684497608348114409540723756487725307683647462580668602353884330566822550670983873184937635411811004288388071981646633712809308483988957231687625604494383449089673885634413888811684932085718328644854878121746819335794999542145666214866790316183689238299799025758416046379387189380047126565482695429663242716669847619880455488861367039004360225433516850998470778852760077022499470914958010970024732823768943120489175653102990182584479015894717332253961624807866885104714246701184632635447439155195200499692180707740049679738897854474931130749019184236030115385689707596456665187214479974727897189589334697710567131770288613490108039833143275560135456345686996744002398207453102271363876961825639461895834089757873999309974455819552907333220652983732951679060816852435901227300458919379237107129078749421025678193291336844146563910611527001988745079526095668491319557502508999005131536154621671055150328491266438108387926908343875424044558121886369521108676070136926597550008621576587642724805671941786651256628060587726370451457202677394030258262520252900349121036584982408087258975145466346997748160912426296438536090699720356114369104709394916950281477327589206156939559924259054814317514314889023961828395526741086438043976416213978514379485928762035197731435780122149513204945017741599707461315495708077572336365581928358659819279749280401357533278855597198035360792999688375295494805280381323898772389000993031540332771928274224049059604439496036702168280904737294312679099346110617095280519271207790250017902684501050959465883716009900737488551099761588674900487038947645991331429810028926869604577710539573109147541951490450065915268122546791401496071074293893927078556012190207903513666463162847218996430726241124218006870636208375458260272893061224378182081943091475569483935726409962417988729260117971930807978504335615271534856625064497087231374862452084763997183077964113395583331796581331636152188881448811848261921865077970684727232687818783256748830820948527659729669892727323662652850188564353724663164473081448392541801161088993418935245490836879584297869530843582474421785096397084040852435754434262607771267889610668476657877024593615818305662114924927380590563243933564602442412629291648384585860993029021560982698806997250217078725236327745535927384952304192841792469373421755937750254238698578574394403348540812016053736823238450488958574664653411512444555746470322046038891964010928159874147384073679296969323864740276003339308331165335696940113859679542829327078975142888042168771072567846323675298533897248694928949506741472653791700248254524214161148877551382231195396131007531533036259289497409331512301738825193971455490316411101373197661045891630242957573424509425799305914404443878814830419050112914200750997671690234562913346141245425100948484942619398385466754898033770542623316843782669368984061263306501303840157975409633164992331878602895934743689712083347151640897908923183128961576089462943556824146108321383434375168212141333118879909131507755710246791470895070488270827012419246257129236223597868477476049797058879368586934780337986620791982498757878338303814275118172047268513899204592014892489379483131614438166650618775631342598119263479502878149996851363114144435506133937399434972065940818298526891107383742837668121655745550626971151001366371834966352759967851565051733500720915977916617252206307600983665874319268300486976226895791779944625750085215429630249230530167407587272930570399791962254930097604724363695466406733932629223291957389908445465995305710123927189341996397614514032979396635485030952744691719195862857964601965224055030011207339106210529749340926307717162010752911380909893526061830062629157924875485246874476749587424412104574152829566713134203357574436074287618737672008477906169083095776542837517753132278978210661575228878067191167426085621604970728447549581890896511222373471056543760770571207247105282361427019770721523326874339815960208414815952968147163367518041275319482863227491208733474120352464337180630976243321345190186486794513529623527304114647067289570817038461493889233546700958223637860860962448217684745157335906796027127625571146668703227325267694788684364823840675135218079879355261078894697825205388438969920490120011966277405440047992263805471061779268762468852547547721689876404555046501722339247879423164999003268653098334349138897154351158211041586252537456742469461938212146620894291766411252257527561858843455418234021818294321281325373954938239538891272553298367555503035937131301594071408012541858766974983713956525748055138014193942095134362397774574334907701297344998951137990143725176143820616156997773712118233111620569390099136249687022893257628505271538282855059900372235418181941140274617425111119340218375075763714551253590199966729407633996371113475067836099564013403676423284113877643018665889916042217793340348965879876557865901155704116382345439195633974619979813426029015296917147683291365577333005410739117350151235102233032264727277128137432658139109601279543726072763771021566356424764456602009750460775541842261648877447006261539546358087951906332732274916070030864319697437693321104818112278952719344290952960397178952586090352777699476050034688738046755508890568102637985391923740777639261503253489552775343994334790921003692171848745655563250620322397402366807279795979074526586516255513752782005406724437733225652775395676539185435627125943440332591525334024210722706827817062525091188235640969319216136392843529476566213232716023554231930388007805681801444495546923199849105774408368522314300771315538146334012350257967436392711931477322116385135839418743897066109979862753701801402001047744926075071333897622848549727105673664706926420950487117357622305661286754242061888077570159377264118280554284474669705197858284299830402018800197848879252895913292624748266651347261820183923519676564192249359170771015308628060000169012827185722229884431807775749692983735210787358697643006727038036027659618798039918126996483707187264129561329050535538590650904323912466182152386957695419438005192936044786908169577257991412174757939786519548503170487325199333043695220988662468868208843469365132550666049702471946240245327245778699806692275946592987089017793957398521868773849292553808529048095883986188934862562723538776090456916140559488965953188252758917534309104394721598764419212769022176370062410501529377209482653058566921900568979102498068011367481841629878535172912959389145456201822662901722998508639092469054119829172305909542701788402344565413264452323908708595821777606578350678816924792515996385954030088275310684487204379926921598357660471341384708279603210409207243430766190081001256388938465580908949131460786853978056974208702293213834601118272390477623176255958878264041607300996254195644534705459795030023350948213551200976727975136288461450222339179794703492832515496633594021474977625768037965134919131105058728436574539799666119662151431205206900060752559245114133862332370322599833335346809395115941961354446566179081242417122377950141331918277972695368551938600964774832529778256886072976793918486329896003830906820190926599313227428604114436112810222152551442105703853928219981271381854302157775307041336950661995897298708764437137873888515259491673972566914283488086903514445538119557191082194967889500893648381840590170901357724033349517127126192426845142911148727844691409402485790334067337564947613998290193790506320761854772223572207335145908372350290823054025989547765006131675370816061003130754089342043050826085347917686082791021754475105511183637854145168313815429321538171408849815364607834329192502610576383267137567990948606446309888503407804713123587773992420813274722127236045074886143547739576908349575158170916977551333173650323104487807731307370575310312538170855128114592048843172956242910116543663166327592766542805422598722189319032100277249536221018209040727946963076449403723060350524682408921871423804188159543224386363794202174663540402228867096933729322517995703166294509884763667846716181102941796854743727678607938354749915483618033644118766845303640146567055310538042738178021893651138436396693177828015954973835389851742300563452210243092910153889285761174689406554537628246395756627687185535074243157695550908468484747266642674055097236966976984279489913353297228070423789131966172389344328932368563842173192588319298809610070323860668456305269421310551561925533672447272445159697177032519008667996697268866555869123583048686302108671794925022073063477934560906046870247128133615374459896762525826324037191656038359955866959255330822754012190286161245036451057559169263157297541749750460550916599386565690657169660308220598394331174403719543434095577905796814996060603284171567706187547965903182298833312510584100833410189998090810232111422438136308573450905007727757191114774196255240516769149188918191474774460721935865947527272129266986649286226952087985280079276344713488428939031110359094673666306462181983890640217244454612575010556999037903031936367667163589327127165565419966972073702322153275990928792653170399868059789531178213123739348292923827239788743806477140463248693358020183904481083940294182390420373018716912075710501202109913960248760327632438676710557874823276689596627132473272529649625115337947881991024691866200627693798589359992460926077083904527228732767108861278633798530938281244167755764709092629389390346457014755694788972415818991206889105821561907647559815138780512184382357940241038565252469070043381531520735226054971031150456730315674132525461182811699409003721672600154717968385364197065528201068613233335048297572910006025848823212118671417107048010439657080288298228699729562074695355288009157624628393710610406889364350327498472941468953969475730507939067287240597294030291598313004987073096220890137520531113421488816896037662090093723966186406280522218881840207479112638542060595859184897906738862432869772444204194470400580653098037027463058994757142214922453751690381602927778876848734573225458664624419772244063141141634706945899425899563638589263244415876150165293729950129143817305634314378597108107751358576296314419050956572875671599166085429049397372005554780377172288177691576840095933397636870985245315215590902180328966224181970222585866375979931603351558765567568988203170261333144078082139003959002882020279424665062885989155140762805367359422444634294629252690155519207822395333188617846218220116720593659892005012661658552244064407554307457162919981391811237702200694132358853775211489384360899904455553545762674217879438407678222982554089550594860804841745218003251346725838697895055214759528440331030506888483289882453895160827334430449570076347898719670932453293883206139949074062292049865919840477827385549046250030603516600807387788879458391922514904321851551888060791143615401115052928338365382371604844821794848358052157443925296164626825656507846327110321970229653298345374596791275235400602441275163427201138031749092865707230531020792422385242836281788824641691100400550713278703367089131582643015268313270448612085746959320482460806412959097454002993523413714286023012911574531250982720576553094487219301809876424065786422182669318808023370336727626538703688315025417009599432289653807547189748539551859692822246321973172074121977271641422905782030636081332553757597151404478422006614390864346511628473705553960676340725637700762482720873364301587357462138068352095751717137828356024123537647962531326591418006503525824918569769950202038953975172011837355374899399008563826139242297679369877984170288550045232196314884096256716804308319175006983192546961046445881092393516480120039768674670870427614178770243286039795425408473029298141662881908177114563368589349523209637057129112860883374502157623750715872005739713823627969723829268193941150881244691507002840303662704954643908045374928247559886823108502668166639468326807672699960585998763202202917514315281198251025479094281938081839677874362692969920419206419952311960666337825185997856656473937724680535419845604132617807171195508978001551868792966533889019087815192012843635838167606727914857487549756784126202692530154566353152657935269170364126043826938002208214283976650678825155270952535086298493173834663395243908970232189443739759153416611396465049077548115002591214556517586061472100780624037004501385682464628717971956920161725112019161686340781871263538832288742549568594725701906171150822773402905027759633185793053645204598917032691218497815677614241582425928234717780359557626967919727699603738818848575993616039200472942100595381622723235606453240943379590343699863495619899475018660017847320827402001121757964660126756144527286298876448477892372510914678275800738539919319730224104647432320045071485755074333034684718837045008537046024823383609331140802260304566748078723934689229027282005981804473476843492562725231311768767454833929858917918105637228837577905076610810653954350144563631347577319877931784070543479918586264462276902694529359445117130748647287859204639766171423830213529249701160054009546975243090949143021356055659522747282394836351955591723045699724034359423644137786537612570087226897871082989914198291442141040987839102385736514703512384233762125034516693956862015031175285030865713229808784893648738897860815690048900099500612299926243706842166313533518711698553232504277539917450930965152778557451702751091054725505382213812935965189993153962489764458251928460810886600995877085290908121528026174531714046656420888266463106626937593459629198725215466827516094411750363450976011761591106804374543573253363760785520256215535418728653873954945670450263604723193499588251557016592348500288515057637086285072107722359400650211463750906520226674088063051837299086294998004537105761991792522747395174346413907058148387132117427945166069013352886482090191221839749261540916645728737595643298645588152012304783455004524676748221741239686458837907643733174809795846310759465896716277463842898436533092142541924698218729826254185424383703568444116942185538550847118692532177650049704402527651891135024755004204525015314734079475182634901424384048742518217798551811572864293895811391632597591143089242252925367556405542930156091613141219329419093377364442646400953413219794387828402285363191785776697875947342030399989142199139175310529057222077541426246073281588678226994569820756959121310233046245057423110110956026066294629205825004754179824743716933991729570686433160574417194437033223082188216986022556885150037019570397295721850042393898792175731482752407698649165910473735100049291540995045252281534343811227700092488783041046487865706058214088518721284570119477629409503618613282099563666629572003895348335978961043183719793426770441412766835085666823374335000622455425556537286838556968269042803546705978889322241796093192582650664746460632721268828276225285284803049226009058968790093872859990037942363133233911380905326064183416501951187217170195697206403962454429442580627954630113972965818980089750550615843667337894100738461725734040009345090008405569427412319744884654555102258076429159224308208778382600448357972658834041160164614020865515010665989740291866352418746256306030424649580183821333518674915992352380878623338265036298898693548259734235160002533089049384633339859606405874177383938603270798503968184488505869831283097880860082087805236331418926176902609884980199145741372746702631813779120080080017988981495006191131223021972245176246128612891390723970891287636680884431491684149393630764134715612651817115711408357324363265757067207194895127680817116321734326810380338538413752865573239824552969102570589812907613725907807466448998446938219714196340537330832733571430121819266365289069139200473202704545287278846317259415389029491029171711558522890477461153332954572481658470392819157660828536761964772723224735405296244933204805618883637286800245758861603397761449623417494945027211934921979967996983476794323821606610395945455174419097784859902415197495298583779907268953215071134315799392959987489901834789402716166011867298914403447829274304591028380259940640961237142378489971022705545895334324774382614232441793409202680518789567163373038498870997035250721665332658160411388422541656268313572816134543263689734454830922047239955141832299805753044794668534723398240002441009289036333416688607367801812834351180126986326768947501524149915501925728326894604244395440664969820694053245524769282370869537485191418450758677006319332438216344596530915564073261462630070719582202816946534548470037509744095837897173143190669252361886558436254230340607396736780386528429122526028000384786640545666811118657581977611723362493547572592201743125134197226599420672680736636600889238709709619230684935473139786597277823292608632993965364343955998474270285605961465394920586121392571533249581003271515598758400201227768790576278588120854026117637377950495794455013429966332105419675021989545074676713433040027811932536817609633464992842120195145301167056148538732651374816661865766947223232689582241571738477538643180349850715255201938794292655332058432135192783593246264340390750657047386620314213627879172724832180467065594997229658994618636712420475865214188192463506827765103790345427772729992758168040781188489510607375794109117767208105976366341175752057158853337772927197094735680154649419907328336059039514645910374653247304011946757363344075063912691461554944507575111441525320222594622337179850501145259690954939918810351654107032257597166986789625665067731395387729648695143316280427755459292213297425241053857046072999216030978979170349583017936335962491875264270691201031963270841906592006076809490302203231968126694874221420029611781280059189266650398141397789176275635050358816629786516351706920524502568936018288282304496063967577292716274283074255889801606872219138327902147643878131869560332457415832359473504448556714610702630303989813184205287254443591966082195116847037132355055426874493696157426632488722332102709399243747365917936127985365501754950862661148296632890000747078608758505571995475691814963372589069782023938743443842817673052299981288743991442062059307113577245721392610544747381854184047774252491508070750617044206359497165481609008548109152884692545217422782391081619011870403517628627334155691831624269419603134616602893575151419849739335379357598457089939580505563660272845273049369595217199461341456308317168829498213305613779875085731380862198002620570880770851974199857008089043927233373567789182958702696232530343183585046732856095230627042837237632965296402521360884109305430618967123045325179167467806549532338050835395063098482487261858406345231933860635577910398764440028350270694356790804936621001321642346938566698264844971260990151556606366103070202529615575640678284804446591224610866995481484031421089462342392433157603385676270796950290771621750819212037263862324695167314483326474671926914073287583024110117041635822956922057069810578106363546580190296817667911870421972379347575026129850740004820538559648765971548752200872935905078886210192446612796871078377641891876320360665720422765959903906097891747615319442511275277930549422237039083776440376561799277692724350400267821380732407205814227420543772415604637753836068468105648762156839281101205697300224003940826547002467623938079356155068292746915398479218256911089137632012385616453199238449153718638419103895803335578013360312172874720192812205633752646720473459431346267638773131182184619622232747303899264824905533284350852723178718669408577206683247104355209082925214795808741572430417843176134308197080829010902661117369209839168186841165453299786156600067101233414894371327901534374575237139993795678875023591986976469138037187989699500407374115227436004188375313816189957795321985806053371403565076586925756137129454947321424016935227750563699235252652081005588464129018710374299276512765472266359925028652263962950571356532596277846972493481190167255150701755138649359124315107902574271123586173933344733056615565539497757354851278488118331384470662298128898024863454975679795018235257091884108315042687476439528109444468324512901816586017240760112184045933358348771547304632753934263813951640973110693372333776876570226125531528362744196354823445442322356677438368915575401795282621664039340032053593396488421604430890196353570298373732396910076603977961963705100916123218916955800452473360533965959777513446692394408493612820142705749768090304931984394996443351762605065893222278538350428224206703424551185172546225775020522205092365163543079735835571226133852320118390526931364975852193374416301107640634554521360748439594297693703621224737120069730059128231423352186638763294056135986087063963514664660336475885080472023958870013919286068183863597424549425676568692019815875285398362376819801538263835647164219531572573543963341676683973586190347973300134573373367712644158235969470306351738068838765878693172127080727345269187771919701659413843366354322221661795981064579027030388509965109824297948372536388564156778964902730827692278729284425107547285243288385371592708170364312695170424192574128043405558633759654714593831858896711830294496775866996293972512964516382100155860959036635729799702845747896294691432021576684121364427006033882117050609882166772601984418696527636297764592394562262385884580450431393035548804358580047366087683008884008141945694591071693307356016782296240777433184175987317868308849750461824966764031773181456824115506584389608212999606978893946810692988538360301357345346543731860200649453748219770901327050635486469854773127532332373368703013345711057205983406218415501192623703962419561799498277073698675459949099392451766161723590540589674409352111618614485231168320365573585008280514333542894706081916717289485318425896195169319922999465022764649102016456417949717818749224803216997058385515430928528035704956755104352831166385278927109559610048642532002544643037851533955894086821655324344028134512412872310877852126625377690190561304764336276291794157847512384313706720368419240813482198413238025389814368309477144456154843728558871876479787780813933150327061766711852231181215044830304385360956444345495088311878089565766352232590773822161123100380241925812882232149533865401169440319543683005902359709533998243143560475178883700467547024961909757407130949145159750694224924728773110146414136630013471935596355133909896917044477823884248055730514802298294283758509035488576833267938525303717899238786841796853433142613713833152597131810589538332096557997049483139864737745155167614009258165239271608961649225498427685721558957877087613903480573473371048199191081978341949555624487310095654191376712548777005562107030580112985283976910908255974607768810119180397022406924498811549153469460990520597819154720303222009972829953816002226182782891489494294222290537336336844904971603601464432106965602628137692000832326686496632233526323407526513618492185394458989114592896699122607350440655036600977808220426118402313043827489124201590126638837044903862840528681335631276652668572398090825795466085068411581891159119896411190812339463353850360950207984396363407630399068080562958676206895046241316310579897192778903714301968391761857846376044567434395102232283274785555039214806415548019113552833231974126375148753444396402244324407439123372511154790752017881649278106908611534687857347656252792020384897414558417949120354462777869199853220062413912974152399113295565794081279600045993532236588984494941582473370905956807935974846890224940855941091482649839658094615982167880971411073577054883695835095796829024209407984874578085567794983046598675186661203809943725578267269527594950548344122083625428330396134561529676691152586917628347138211384575773195219500700849448382650723228044396624519196224867844772910782418289345977047176284538823428964492521544154174947694855652860372308123714382628968292358605389206412494406345181711838531784394655369477328566534825451199985129177205620397694703403666848608782183980560851960934314131408169297306513209426088362231734195460724515216873319652955770346389733974513213962816843970809048443835462568481945105977516772138942504714884331932029077546809165018156411221170868862022777142194126102449680426505274690019736188777108966268882349744897864837322796321736815101577157521456916650749611279633426458818199923371360905488066834282804599783577304775094293024022584241228213831927259968005234287389806554870779535418045262643664986786266033095684547468385647444967492648231420254746424093605011168053654342687493570176047898477757685382192976890442089636254591559603417128402773795357267712340215031218347658596154879144195461808092673198723617189375837525403873240564637439492964572417518824029621598491395521625994857363252928056600427614683463360367144937364607001607702679790053224491650939604014312828841009338746695093622316735418971996560908939648696738262896974598965021373110094084540652847532039214312569069546788882249559445109300892124433168926796345651611692834876231921588293781009411668025297091205567519479541898292815614748339540907278945519609281721659864455139563916559671076719455370460621897411806096232563134707263331229279558467178827163305513055014740553653589562025589393073661032198832889907723482364666250908799221857794319288646356935354469908058951886586518702946927122355606536301101250047503281158484555958486388091159956981845648484772748195659575566160098964975185879734977907882339773000204891446414092927713716150475580553637292703605908662360347552216386944491745350436197570308939435851750738100676697178451812718643857452509966223738476766497540315239925244390489554607153254280522890391346642787438253932127146948721709104702268523101720337748707604882554897138888149617410475161407518914770866224746999309542448464011599090838073424940043444756658577497860462486710632685225568331257792499871062872192465161359188545285259628190420264424892816524821607686585956368673232540981041708512072161727227573210099538189689111192032010912644475652771231091277545633405578778496654565826556849467778117043887083151424821799919476260297270245680403438094508876831585638805641215451182769512862860671811893008366530160283027228044390501969185670958664062843180120508108775744042305976498520368560709176680358217465132633585388487855764546521827180441391662581587024896618102939241767960591349643834379400769091550105071052164046721970403210047777961781696242251214381630247990669852140725513378426060926056682225635015054555475613226791895270948190291794455886586553981848609748017780870703936459233102909330354991225617236192482422420283516882431962919345795256341123156654405236797904317130016487972641958241652391972410429942385273634928756214578480303473323071863520073298632332385665644917944196878381136265381234318056546709440635246163644490124045417358772225228995465712056200603937283869927575879891558988043743429807828769924568118500814066346095559964242400588675263653399394703516114381577868044564140011965248282746932398520769645931149118080412861638564469063990445998022888379582140080636483587193401183255242959832110005538060443109070399561957304519168962070806212154004102194393707001809275236700111144056916282592834312686944640880972321897795660882687815611388402824578231431536975596972574834120423452340061074593879253253231296791088133548776082441769563826795050830413182529393244508292456280966742558902904857643335628170245094064593505863915787880866037447812928019860635838368560730899478676379633163442279713710080619895511454817669220035430563958505280001160340099425095854403561008469615840722582376547872506903425884635863024963837441057833372886629219220837932869446696634662406756551453223235115707098442009193797616606102235416497694847198359484368444469756108976072451066875917115860403111337947665700365568191524462455816731628987438438026288121908467255869428727503769394027557826856038514703197077031492386116862327570618859084432361248097360277555989987880853757624958787827599561945243026009997400731998826569585592998106369432036284303478873081292300879824345794507893035577728270859205440992604663854505005174032051017165908456323526329060065708348479099824789147568124137375145559769916975144317256655810295028430561401517989949938482560875549780711688343816194420691526381819067671465481601425315293839729535291646785076626240384617703802269021644692741979713427929663398847386970847993782319910170045779927697563595421642569475259371106734286194715681870645951188484138988471562377188132094172544621337916053987740229035981644832376497956981604915399199879482497281537332418993169146272155675785594878251460547663296336758981780627185718742711589797954907617364008979674453222122565507921226640858948730228450527953070214704689787570978636629479810073968197078464301164756909143008401993395075233067123677782092992111506539621928352197294148203512827675276092422158656590097268956225391330398686792886947230797768556368826141570179668710447054402538519996463105893485919789391077503052763462476613075292621476840235094618305483278909624882336178905265685640853561338886479034758360676291687804443790578863358077556655864280371898513661090008813136662242706200900780310504978871743591901237216759823202892470063512257782438440216639582380479260559167125607226294939462851443647544566702043952334304111117228503717215764565141949620386018650072899575045743080569164915659493751293809247083688718977315138629996410247358454067535635263363868126133878304718510596883814757287128108015873373836963046368968392645971999346636504427059303431426165108968304904897726046244376001529796701488676960238829462935758245997525332309277959300765777714298822164407945298282739892878125688583380722867025439107129269495255689474324569186711454090363246560123277100159987580851781239214356891200414642787617783864569402322367142224113029940662122137125514305296237773460792126582380843111587036916051581570750969379150389965918024701976153999748832727591033377099938517609824076946016730582619980542329753775517522289188975318788779089578150680354457166072510674374469341065775026601632668643863769184604687047807367234383172074170728651558297763868373269720729658101699224764490870772141080219592627792064776960778871734881623469993926336032397793462782585150339518553358337193787698078109760421967247426523857842161338998791575618333520977355059658938599092821867987922354479773916331135358110105554152532472498075445491180336295421430744918558921437577527577156917074897411910404981118084284272461479716601279442534353440960014885232575247272771668621724603579189292626126976867052162091192251533734820474863135994859199046462145585172696301942317908536581032389413708672780965040955525087326386537923319578842263797089309561557166485894736795362857349227231427246442164866997015946771177337683797324239121161630418625131744088656901333416849457274114357219525319109697065100467738259463875498004809365746404684651857031238278337471311471370881960073117626786087552652128669395047001487491016065313841377140983710797780598223014974620502088736636519818717771650463743922712702951533004291287598040967673856918898613802167681433651468458546644860057215236963017983514470506633287091632058181223170791061911673880218804368883442341959322391814761955043379702668651569935000614455994904772574731139668471969076920489549830328888809785817330008245576266957604263077578861609289946088488932960502855665764545902502370276560840339930075912050254161411847836226349196725315561742348967758133672369007346388945962256574703526107124738998050452613927160867562994231025173119088690135497645816671286440055354014489698992384000607459371453012336770955530773492054680265137109971791232180834826563485936486631712051543108365421876904844930910743370674573512751795592353825517603987243171857615505392040213993628516861821732861357263930176505931236717780897804165672799751079068371356089782305445925563296987483973276378624865793177281634572538305927881850121083155987520874222239995495293529741518740007469641214890767570661847688948403382304481099325457237126027015546946666034576583220245959981350944537909966847415776111548500939711003662458876874848198194633609712253110244059286190033669250169796898431518204988415235495911398769174889741880096657349504928799301542636242134603782705181642828901973668857946145577528608720890449233763238994339251509181238955503189027466750756172772210250184645842124458762095227411867768943939574013115244492789828520735709027550732445468471662763522968440306265853663481850315400114670773322540574286430327850555573228840756989221465632965380343432165975717765321016248229056366212600650625573025590707037684107618166772979260590923184693479693967800934556927440037025659370077040197308444371632412113235118390764946213238007678771256897497797964482459288593329704569324616711592178319014856109155541520457276428227569688274930124119798787202338672839799530702572688614797323206244332801937431793978659781359677138638449149121921036409882292029650983892899912798768965809511642517471522150362616701271385330700158241232534535151770063657992720995739285722241750890699592101256201062050062551560994897167999978073876462355546937283435459685776964673957356585170794261490518050590389543539704015916922402365666914089957841565651967181341287583560487274713816192133333560330663636680621815299485411784915664754168832381505695711872036916593883852947798375685728899691399170116003628100176970634354821098746727968268191203012224938600555235329617316609175990172131074346697216463698837347760734655147435103867739880240172867130861594873688664531564211239497121276368483786354988843628406991830832155575727971472108781550561482566770422888216743052584352231459755267169962739022257784871555788757703082476251041264022284025074785297993782886088203670886345306338488605372259893582297328957243283900480088470162982017404689585430976625465249354146293716071637642226941486432058323837251126649660461933457599652668131388002616999978252855826620281832447894091136607391098627343068837305382186425269794102454137876422554511818942177352184189697885541594056622089149205294143029818238600404440792314994769814243536684115933065102439470049218961435587881609282724874096067041403520422220871881841706172661756833844675805133215019487571883358356292658707318938859939525870231815124252691212558280807930311228911436956150977435855143787711025550380281831634785367083521037720280062050367008251651551936438756258528900683727283874122335549705701504603206035136817048263386859935652208386772015808261039001215313853143450540758386377662059082580830706978924313064758946371067714776121052634173625824754477581108319955636730365664793781771241862017329094164330870795619003945792568326971478577609478879745271004840753358722869775238492971630010528522655352586011290919935216723227424173448142594436482904615808703997521649330997840810476288590851945575840807852339363996085213169670709725161789419328663078778641115919016378139669806746193279822504406894524144127298589758463678372590677183402080029590380049023273589150834457530879845669776175380651735932533074604671359981608998977578244486187602261057312781892047271071004769455949633297832569053753398119009545411968611904470459201061281716792943442512788786560349920855899062158628051978213792215123932653249725608652115328738469886333317798893978295855902877857855381468376742688236146038030113612400795984824110102601762005584657619546705128698630412903162194561858848870955439932096548881511856209352917590288264528453296283759140938676959470518888120755226566183920158472357681451393065849712574849177081930728244015095205743038534720572322376502591354103620979220247191311081072855019001448248004518305162312462668021251700588120730592503243577598419502769432538645948082901984532773584271402246164150116286741980611748251888257432871561535888520656668679958921719552505364526693296858770490280084999321523781304812564362785111787827338256414979785878883208184150403223577537069726721544520764243745573875145178933463579450163455740955547258271145272927487666750816242748387889652424494377704756267073123810902107969025941450582456236299516843385400769176658162737878916302537447096530017992443654486041366815507935638912539434288241932466284031658394785364592328353801197989519855544611065071057519751037960679665846391155513216579657601253647020724307462289352014994876786465460065204007231757077694170002128209624373219193359932891681766966197257622214932266755765462234505273439230126456439925157557978374917339235570720495439161347958432446882140930367901124782132062125448058336111496266914029394538179514831424858619486918034794899815134839747548531865996448285046331359765189179714732439574740215637826585905797345024808635520839649605426365485355445045880229181718332835121252430985346590142486319481945491677154915897386916571818736677372014289058308555796209969630653595174186111876007454629262555666709490172942741533084383577814667660742463240295513545606282862411515420154693380914909115901880946391678095842486682421698196509525259745271818674665276109143768480312733606887909526880397535108710946601329724114091338323475219487131684300073641558827950769935689683791570694578926960002061918182570777067800841511146153346038540361121242011739753715972645470146844370179994131661169082849633248413087728740452742476552832381843768913926811921576849225005057014202820850186096144872055549166945837776747895248837297115527304181667446381435900632428443446271214314179145240558959656528551936088679680537814599182981217806016542603442203694282944102273614938139993113665070301781483676801222864663044002169560328024548329856822552175439655438698900698824271374145809322577692504331973298764388694430334337376406443523183892851527047982845293047002966643523590594009875830386014540666836688710134870007774435531266997052484764074429295326864710695390671203274922729506856226642001970385160703301316924022906537828639700571344443829828360795669569002772563920410655673617737451727668666982998108480337407092263176181847517885816434839939093770773408663642228104466768181912159564866228952902615975956137646552915031465980370717477444569723043943166135102723372435415673022870571964141527971318712987838155330108068007117811127948729155503058266366027072793027475423670313640614637683969660421108585521660787799942317541775692396311014080464844617329502302131252212993863504611203430319581911460533009624370998552637779268482434521794565255193632480112500728730836288440209001418704882061229186438695666950989447983659943549388223262307267522869845368683136990354463043671750268091234933147366209200552171899488914237455381043578130425150319344389098339154224163908149292618237566023956389763339269007349115951760482610691392360586797136920520280873272411606290718280264481107438065057009356028262981520787889914579732618207734265980642291473128867683086463647828281626426918276371119917666622928449719530806530678762680876903910811709513499015615529730666008679956356044792754206237022659335412253062836423842191301897179244636983113091918047085637873695645059968499844475937136798361286048428554019097124427187520242257475294721778547600694777357320053329037614900602240204907167394186838620919155525662268561343209402504372595745724796566096016911868667279725997227981713675025847001766401100574050269870293575229210854308287210465080947851113387484905185865103786480925548868716781827420642133153257863973673812891389488841258056335281684326531082158208441369357993163640866319735977478489316214641470304603508400887779551986451810748853411558135191711913746585740689491286420782185673632855084951139419141063654915958625236653931130400361739310664432437980744325875450831978326588057277839017279700657381163288600870275387488276294300583501401038391199142921283797947020638623103335284147792360458550019159364199767033173550822074242802114076168344178340209510533490487972508499277820976240521502412772498039063226507943260019239689889882011760636484337156900271814618587479763896026856031105544236579909480751668034790696580589991704205254177479492618311545865404097126143304104377490057148392419047638174788496624915029357339235280360935459444184090792044107258215037680160012391568592737095396745344758535154208429749772665633988047824017471068569562601677813764266527323495966685706597076400678352723532636843961396942064939578975162939046126326089179250039116782510940953833730734332679372436738574333466674159110420512031728325158315938320629099883159065790631492472918553826300890425387925030050510564232382275004426948430227039175261762720882895602019971225068282802510231615754492654306735533525591556855043775789167855017066690604733587090601656835234164361888372435723450519384234716506851811489299720496888120335537884565180072569767814869750412923123636002742775008219796455737980361054339581380272528934005431148344493857518574215342005019705315991165693938728979002664001515235365595019261076525530493066487358997446378729966012538472518961930143883462902487108630567769212802205140756075690396662450638376401924982190299487887566609755889067491174119079949316078455264594530094009957017935986689838762838349834450903158316929467922456086530423877185197281737089448882065140048537781803465828846606894576975807787999530491116902220551038642845970690343761492170115781989119525067155234045234054005837026013454515830322843885729425678338619242940784634983967439415885179529710777840502740481593167427025929018164895094300447202975059045021780221667890571729098820146064950447046764194888231415951634325369135632782574202894421948163623463778691351983634490821519295223800505412283089244686696941749127170726925802643681607151186072176354166127925667079872781182197266038377612160517879046451562103645575904360670408880570374952272390487898771432907828626055519715655223887632598922612617389702491042093037248813123193981725750483278118796173268560028333754499520253454030436396835220672839075794401597222633496664637532034698752071436463382482916667817286344713558696360057296962068029563754588984435867465859560203079731693102149009376857446437322393275609470069595771081929503397915543810096911846227366867217972015639153793211547013727290192136263242961632516737591135356506990190287102522035726752287979202087088283363870123527096867530386903022506128413602344264688053071047462986838854447164055104782523173249105535111960414619152768508863131069216201422187458963750014460416295373443110976324114651347650955408577804747021098568346933796801561863866478162822627388100767377032627212228286579617018331664704310993511235399403376134214357453730769950841719494654875033531411861187492533741478360309933678201537857706512652109913944313851239118991308327632644133038239687992120010831824386948225972473912341701118157295432845786610503637330760540079702885510342625666449884570134309131250819860899992924236078125156708097232417528629819805812333119626075453508785845696303797046377713943154728753031007886225043400006736318323329740137197912873805670156636901667252681219581317312488651794807639033966482306149405980803153906351380397225651527944508977874853596238135521398884034108430917680311473442060068415325499982215496673833371087355745406452866403586934109936202292545397356033799213647928384014884450205865361690446714204399599135831696572759450126012000681309434106190925891539301021279945579424337293811200480875340588675314452960012550805916726258627915379916893282844070877089676779442899320311505189595556777245066830412639296910483984854341736935309612505617515183874508699848841328498054973600423405674638409362744729984693465655086822394155449531820959445200324396854945307454030063440706284110267573031492163496367278632342225651498838864638929872673298806176618830938915453817680325492527287121192707862984482462683960547492832652692069615572292157199498694101244287209942124040343470648311629900018064109719846395121532376240001245446695179308379171540927690346731607911758076973979616244614463230155734559209328737689838922652870800004809845224369074139427723036881158464898945732118169688850950801440548849756916475359176054411460556578894416421815648839752731807734613397826491336270469170221316946127842983343734707610361627875449206944882218719238560624658631384107694591518604295951427869472487770251694462973421357869793206172885409591040888642680610279105378930403378881910920456761638275572115929958007292868302736826775809299364975735163779353190908621766290496834091655417457478645669470948034035595304828546992274574486172581482463801636391753382596132083874346586055188840811955333843742461659815883078887663547100989711247001234717651481537982856457160953507167497576688899743318680678884938548742432855638793145882413704158949039477905399042107901481386852139035810032728895455449325029259720586349734718555698351484245374685065382465180391173480915370311641128804764002006756959310068930425803878071051465427883560940322669585241171466892328790944042844571923148818736091233696059345207914818550281305100737667240337383312030205697540724968766996173042836217614848321172728556902700332011989781690571139161772900806743213235792150225392592279591075269688219579402195888636231028221597013205463207159755675201007866712783634505400628543712287688766999285994892702016738191925253226495205077363763635797445220810050319074602158131428095356114971732665371693548017984755245087645515920643492536052475180672052979366555897828353806240570811237767814814248373121575353887881466003209790546929207501545946353106402238556000006925231760872300133955197604978427819969829335121319256288189687109212456442500675735187724121478969505278738167932299945450193539032349707277217978366175692271844062577282927144660301727181216090365612251931640332228144164897163788173559001736845280306909998621845559195589585639988633392934541183677363585175162768519111804102457099423195917710626032681478994342934891697162066902375468942939734643721355453452868524834352526973806472909464659544281378482248452775181487374914775734071713948276925909022323984870336729381804246661187372479618748155402183215675879036811410154941933813043284907784262329218295498271198776658276134193083836371749077415534759542201356604367301326842006009446304612426609512870949304185397921625953877630489218680660165739278120390170782678714475831703884829526857580270604012461831928302086234912117183753371867235493256411454154645914488834545954511442082640310118094215894727818252309215009050233940119003430510997246498279014067936962019677840431528386899736977460068785550187550865574912198071796096892449857937207232941250994805520042344148234947130260422555467539456438693634025773996058255443628305899181779506486355037686523713714651991435487242516710104533795664657493161503344111243924006182875390046293806820687630002823221046978367187107311071866394520008330837418238906354415632622132364689416670539179585406734673243329630678857222854334866896381868664196815824281334511434122294131853598324011578601122625202326706622295738027262723608473866028024021603797672783018220450191322711421739337134879781217234347424149902447453843542457880332362976505662913001205947013376176860380617915671579008933283950357043286565657950097891642477289879877748155808566606984959658409848165594234602353303271186479217332876633123465764474091683271985222419478931751007781222158958822798792019108371062596981261433771088695322233258608638170228176091314453688108963507543473847160492285554239896727249670454064071536586068890801776863220095420425445206742403465145964918541974592328256645593765510223316962968960345443073634776326108525013309331012691811866371594608234451070377921170865106707929624709450601139254822962182081741880591204367428163599222112207171301465450740094654777344577227357625438233140921604923058477439993362824533669360080511003430631911432878539804251932602042631047567474743721652791273960128009494228247258461136051443243805858817350055911976459723935493485223098105906927812306578387574461170457001801874472221784122801595367215119169824018875253196687696953232394663258439243480731110738726561856045523484228834739973891968580748790526044810888059533908856919619862450657992112488147565477706102789023369025888422525881753520603939806810544648857010013227443194154191282922242999962988707534467253326942345486428861817838343495440533672885623930938163463258458604482046215179347331550860836719799399895608755137383650625263173078522095512324502100992003708742771570960331333477445183588235394570516254668816792064105159214109193934251868988093204666423917824657784607573386811945159178797994094581664973896213085644519346810259053326540004454352169749536680459864352065287015448119712732103900758199217913437725943547268041049769539471015731531406672626956675230283199665400321198770801822503934933839706651776905683509824251788038418018381178805403010435444168423242265205153036176336692959189929996476096979772498030027045034717803855445879799453299682132820831352337975460072194519418707457444241610836033598634650711872694777070452563055411447440478239621529044327919808988037451866033786243014526073501493496915372318835156388499352274765144088172800278842270438311856388024527748748361381508111453928255889562013241731184116986256241550306256939497004278343650791829839926577950248431437224794343300519654483370232328618835630975193992792742566186512441301024046197515382456650672843751899319168008952470916174397460774653324422861638801672913573659533756460484899191186658400107757050424089448073295133415184762687521519904329669142708129166014616710140307372409798232723278237041598555189857384533053139748420216069019788072311936382992882360529735025438321884526223696725174861910767939954500359984396647587548609856456848605328097843934399720831985443140018331536133237554758276901738915322381099217936596181784458425497198012691651208131850928072419248641593943279905225245749354956916769183429520677927281262416755802473595759505979149197016891524281009823599530717125356006148921292763446363981160804084718672893145514849599496751249080669427419243189896894853005233951976397896677390253749676934929531960387639175667513848470364603722375127562702263279197928185471299121103778804371050814659618925922627970188259514087344965649218359328654146870879321509953124974734519167343158740304399514715435706042924244460001770557618460046942572286870747009385869750717164758120624980308986391058791457922470830788395934108598771114783279630354892515474096115138682308712709331095591571120331781180455156424466617674476561363102542913668650212338543086904351700201280313642623904676851523646367430304557209621564310119691660709279698109035770740096699082453606510571849483134707351621808345559303131774559697309590178356761514592957576942221034389190476772324462059206679331697491417577159940626126736785147310085548648460904848746940117951517781316394641217441190313246166556990950318187941970194303168083170547807870307781602881619907584212166970317995030553590748375719239405848850077020140117063761472540262402261774557906045477741929912241856949713409528184038117847445493759079278641947909099121062256774274991301525228250193862597083950353134754103163076121051737428850263135506220235809467496271228107533664411104621073236506080916596436102313275406987883671414528424152523561162387136183254569325899884516704282033678613308219447951304198749147670135325759124618717429703950861280552197718638997438906312588805813816637027996285744384729352065580418790131840488371415899891700122866358057791566466550467547868561164242527511388073873467454204369936058379957149622562131776429288625048424657316953426340210578194919471224977193992464735669835925200842237046565367092041504102476952693785803551508868729455511604293263212931737771165969739226972775148676024909571669921848227156894123429465082158176799194555674860189107299672778831714405442084465219551862207635703228673675805994061824073858561655917942413662950993769912415498177372919663332479054622990096624704357250627021222840523498854397415172262752763249820660662967571607596669946793501362825523150369513654456139834911048524042992746847628233017143112601788179967468194434654157913133483680249100539308255237174610905353000589150021067887419203958561174173743347100488219613153653954798635893318892209485237578623387620484706438514921408227192965268602023678142148815786238430202985808269570673193303108356730704707693559034019613009609116425803844821072279597579162386387309535736620102397300800622698694807017364254260873169762791704962191543203922726710240684634896400040973958057935765807190242009682085733085742339729469884685119305981438374826803997712959777825792670004504997737205155719794973894027229183492613468949730588334280009920088209913662996137760819879974009624176750982943063337591820130396101709940116052193145401031236605332402908199960012384062506478738221244213734118498631544110602936238871360633510835348625110246143081146379867525991131181586355712911910720341206924428681836664287390952964890583077374309373809927837513137994830255825406245635049316012566407498959641975408426231273312267017938131375916039829140090911094024311100588447303231907606138806544454123546508905483672409975774033695550966107047267948265045357157214701979673281938958655267988892035868180671339888635842108056035137723375704618158603443709015777656424283565140340976413204340876744306700527100080225955590693797905783745449606379689938845673652409146530844482075291102739943546365966798002129607656718153366493306376696145084942235688858496317081528044375702607302648631093444198402732704606598071004640295684688781582366342553932712511811847134686284656249030912085367990757062161227460140865990591550478695336907952927459097652225757450428333366056747061950974553434886418010621702299689563407168121836500929984553660019372398001714801380208737055759274842660412225708187236156175867954899759576740335970732799374610934278243792108741523481957655923940963231231145421331177133607800119570258432141284254036237602492429480484378171091265702671893682781631141514002867036355755317107892438810927688256239669662302001373093045362226598667501720087266944879570208492609815940436533511296456467910878326299207036413187358329121342939930758622272146315381966939720114824330257827623137599667532400639863979110640546792425691729646867602646312646919460581629946716477840085654965505250103023168238686835269140881430222510487457355001036086008982905383171297767300510459075108909966243557247410750399147200771710461835333562256778254038644825688106237182229715158981846884536633051449057597003896969342543549383811843826154554060952221335711230795242094894048799527705850549418641960650561366004877796434191523961090293019122486347053968382813053720619363213313225474229969638859137780704208343760605848543567995302679306864748977097955436123562907195399609112567116110996603125276706720145869311959006331680209044706279958357377371780481041788117666145184168763360982282435414517424950170049423195705638382543745457926217895310076559246239080811009017554876779608135525951703016484078971031548961295358933120461681565450573181524713896012546074429845969284582776908929356945069427107786561596388497355737488867079147744523194619696168775140139628985121496596351456681679045425136452916976854198662688182654802397677684520380392707053926798020266102726508092196431501027690851659313254002678601410918239709973177429261290634752211103652434388955286373064289622570975620205275759477017142257321081026595901905746561065149278079902015326082145820809582114074839065952617466121671563742931060288938778631647659360453492563206366930886776646966494513418118865570569037229949470115623564010975755447846150972002997126015702715809932308367693193832731512021578586456480599540311342816151865651721183823360993072687318679965277312766033890132433410408493469659809887165620385005620137380146069610018955124364922381774762233645226214049236262100479505684304764165439041408159801193647655573495542443184740198200429065277912964690201856482159044120999987353981351649939691565365440246458177683007551019083099450735968192061396830762544733008356095505444408855510388402207607506462219876826238595827533777875863794626775653746701658275877768362990149881719936756326374125815678147190834011456214223941935061553681126533858011571806358047034121272545550822634604850707884739807132801243906545204405486944132438392062329645011024219623673303318117661713678663153631498619891407760349502980434709360010797063510665937703049084140789021976045117664835412321163983969715252565356567758770834566723320368257277535236889420716049877099669461264131625432126403600401276456229102237068503065600459277096293328360521251244170360473054248153575036597136214395835509298702745508734921416421477134852759754634154607910458002044315775262013627887016875777532883960908007929107695771747894564403534126559245971761670193176217469584402040720531909981236319251719653967318300676945063492079264540996729741979658449472372262949486901351164291435835057939313992269897110321327548222330321535253066757333197183812986233394166616972226524437544789551161374123591740030572099063199805120590660530530201455631834952971354687300244565625858818163707335872004526736288543745996807159487012834506710029708697023120815729320896306682786847613243434360694852700523278569478516528479640984712374102722598608007355400750470027865024780625485817068536705157092348076981767554968612780751638436127144621245687222500109493577835527805615624052665061944572717738353421131014838164254172073300199226981585918824779932308597728106790188922217539785951852184277567825833691394346709059776344406141423573154554723245996975974566727223914063604677691183773358756307704913930820908969370242097348045043691033726159043700648404452266711475226561870054762401139273880850875461359544057591814961056792188832590594186299493726018200945048173428390588261613047043959974973809586822925658892601518414730100845763710520474694894159011629382105674899584341065334184808197290829255060163889555532182115805636286577844522965346704383406033840525829088532334772305476780676539178646558403525225819033248695208850467923506532440759104990818840169973029846736327776306741988739541402071247021071616980385168542539926223901933427186795279067319775069287548067023752942499148287981102700675328187463549991057208077675210217237089245643745281087623129196497065634423666472749908303413914643736043116621200083685344256734375088167671287974569026845538268846945906551555656798907864157943023518333095256332882930704386002439493564902584087864726298270630651353814955743517138420479695973541903351910520823081476162750217497048134915831636649841247983264019028252792891839100537518698141009894466290867010058205338829858013417828765577662894570562398109016297927163240841720217667840236101701407644448817740693365442406993797919236227240380613752994527083753851750355250826783404348641118803988642409505600447109418320056715876294353350910648614881531885004558354783816703670885468110096825034273525009267465230677424376314689307430030141500729323553800734999641961115323277969127755134032723892138680001841983761576874468492074355788926619470333154505810659838394243811933758499730889100151929856324635220291399554374999637927400910086583458158215466027302338300944553225596091019412722768122117004935947252856506994884309737608362328683560919596477635960089595891001930572959946637106438468452542322927914913121186300077528880225021280430541577914455240712537222344017798357663165053573508861335735208764313306899896506780062073062515608212254810604521413321212861506219765113973448425101980212680776916735542688261952485608648419451316049812034831359803487491349436558337433063051540831248162168100563072968380358608265682067688756321472436062351897498576077083511408422176897272542137753349080247965363697039769176302516642236275654465152309393419577661383956840300651750437277759638240927737496759024898552801465476394304062836014414081525491716938543817561707725211511622034319260775726110393713461861435901471351404653555259306178588123494539964508499472370956333940799445537868619728605063402909437805658876993662233298838405016404078871349124276918807098414022391006333740212751339444824203828086669207410408308281026771662009864688379439952011214606554117265800103108003664614332216533747494158678855719437284094376555413024400719669436674822029088331689247803412504190602563249203705441609429085851036212455689228866772910987600846289368260040224501633088721025300189002215253045847977746713871819913261553050293878580269698956648802491874006507697054533253595146923096181996121196771100069459593596500184933411668114867999043672344353824626608673674848235309122645707334374480762181545073658607072809786662409252913731212101934437566640398905710594274507041848889176014723678423878599697794364483541099908212245686328055449146409617012609984990442480216679435031029108396068960052635353952499105394181441979602394663117540800461876260785320377637301601289719781462052974342903733542128640149919427316151860273500468489277083155082777764218534875480790452003138855961094695985335549517447727393416167461796962132655330407940772800366861025064130480695478984933335531907949718328565939890551171470766729555832727945843642884677580249132762876997136839189790897662708709047679033419259148498610294998346495999814790864292117859990716586533161879776188888072021408694489709814663144201035007044815612752960512688407849865772289218208917758676945418716616846472472518849805866311616820635803400627977896498886620884748819986052937366582692440069802228861459013899719716932083720917044714797756384877539527257027036168963473137808696558007462277304250617529845517492092167490508900594627236390755911092155986120015847765762444888627273341896726728053070539225821676127448096615638432879638470239906938839224522136822392051097818914143630063899400583023304394781749503010273320560815261112324320586098984709630956612982482873955287450607458119895956464196582944083201343822875058999758082107725690037002757447848346653763169092518593174719184375210570079702006028142204160955717772935740018775854735356917159041028821806596289982723972685320433322769537765076353225196837842755366325871000668035640274127677820910889895527123278289034956401254203140197818122288083864274992825224264216091501934908204626991185455324016060566379355253551936114734879768130041662348780117514716575388222309433349069566763797402890692249518734696615560625579131410738933619778935014245010692032541433546387458739489870587938318483939993480155021666865430613626468280091331654450227286672819768443383743788983951794487118402717464378747536485830598829299780406280940695507854472407441094188166832678389571353721663182152399881454690512787954397879891031201568806143041785310027536580789802453745114732585803326332028637467483905204064411657547911007815494511617922060470607246797271347226780986882646821161364496178352118614300124218971402705687238879148964447184854073793210223053992853147382087517295676809546412322829225735496015554019498638426336881697321787428909797251423023948523360022798876917532384292236859265763081234117647869946204953120626733449670992515183630032578289154175501077582710530076536272321709392693031352134996721843217667718299932567913362888080594638639200506180018847235735358068159722079943053447586894908518950539858024525868448482860851677194951681861049926195034292348166251397983604957524169310725123721338704237143650007290644832473709746450904181242636318459495409956587141921501318175241722002326105399557189558044676856135079422518898761773783774882602027637695548401758294209843173062549101215462840260719612013422577297217665208383970299463822921903740817342169482226698047922958076821939923199604553832509522438213390988482214203937192893316249617754979933425185398534418406075820190491899003080045494879999082829981737457298007428656496857023352044387738909674349563999584141821564432418064843945744351180563822492223381260379497243827942562783549247640818202344123219256447219057037579740886994236497905950957979451860040286251891797804521517837688737652869496106062419751194465303977999559370475455106149913408123352415399614966767896592917178215547818248699072023992918193661516154655427093230665092917410671777978751083706763632271998956675043348734796735590760133399080589941460574059419437003163021637964503124249080116131429177485826609338207347529720858616080071391378916837187050149808586192820247875927150950560345939384552225429046029553665292728062220667689240260414174714494503123172128357162976211663898015182916706314926045613971220327568967434940194858999473959214023754101428827206452321405945826613656990284305464714655401054948489644607078818516915855680496782743651259926270136458613451138091719610837602664642797291754015958603740849454998307424156602715039489465962339215132088982799451963305195616002592494430803853867895679396268137426443644127159763279034498501210188364131301483845913897434075056074324905379531936070251006760033938032109449216543308041935684794506316363324203782215075981276366808884283618021308961312000275918038549771135593790225130495000917839632769646478899056024373501387195373617616417180358543006549387448967655270642967288926211060116794821112262822771824205883300082275011949761257751930109537276321415138186095752138472656880284507688016396607034196148605414414313621873120266265959905441108474646863677963699271270372491813728896410521770449147088629324228903522434504672875840671231765904351084197727146767584585867609740626043496370029420782691150156981131591572200638561428517937528279864830035506139023624273400983920805537157770559691980074978905431331090389885161691728309387482627139602747648731858285474149572690894647942753566264299212856475292745909886140825195318478332412284329469260786737454481491805971082282685529096383696709468728615392060841593657333126994506415875754986198791401598426114357731108577875891560333417111413270014740619371145041024552628344269033879104998056584964665111401473959006545122245255737516426677105780224135370920224440144269809247138657657679584135699234454026870252341952824703710338567578391363931898010013484518796128113786837770620047503193622665068344605623687592819514398462724029288810081541465790390994957677413393036650578004808072127094684971594580364885021833663352586999896898980755378095528908229974887298148101700767059468855481364170450536804577426289430659221853719805798096271570341615948982232157296492269873753687829241634780635984856722787726584475328733779504490865826940329243141134136996949543222038510273806124748858580841634639495369304094162250444961100908902577144836811497465598102958843244201689087616508097060935648631328485602759458090343851091687336834768718063270653253649080815974659090829290653361861250287183324811794939135410403981211665290066146259146609233317361639317295813079293383282756213085210474347714494564335021479589208895890678885974871540906221300076008881909358988464055112042334617434289597453830169212102255606246124529629355613896995794140071640513720254304945692433050804061211571773487261824492041845009144197661015579537566433350147016360305641643779855402704093120930829609972123504413125738405545234178714936915727444155055447474339627946806476446560949048359722696447476741517068102704296239792687234472200366602919756067782259820378683796009581969568881101604472332154905495584891252261590830163366441897204745321186608918897673384832587027605291255316287300887120843286236845871442311198835783513026672011471385492517463065994987917291532487609987683846570370788173696569083363418163941562532248179675273095304444965673265796814790167542197725833083033678834092284842372049366419082590197770156968846112861440040517169907888497193129746220697426210615327218402410627122008257497647790548070625352344552499811090852750858670202307486270156662334643145127755711855848859993167778102601707735522395664312213042062187521814792965353470027810410809027314646817042720834429692627405445846648104847008176175727595644311045448424147197400658318613618609259563971016694708073544876647940167317791771425377130505839244846053616950925522426825238948642957312506603273884321956952738466530391517032777504551293622145613168415057531817532861147847361500849513544780899237321920503645907601124813144148814911135324637703756091802509752716951390839818124001995076975406093283719398707210233713616552374148519434973528634784916044580467884701789004706540934595866561954694424889714167663603442732332428584750703136834673200772358047395972135026196609720399744472207295398203476301708739270450851389696459178454319916508258146010881231141220919893872933384716034948400019945048895868333231333985471072193391864084975309144051007537576853338405596538052994549358314332813495384305928893933810337415238878226337807346506604931730300814995945193700423761409074177100747520581655182742300112803639678803031037798320410108392450933449494134565063277215449002222796330009234554773655412527074126909191048920362366984258254121918874789282481209342308003164068340229261019074833909626403357355586934313067179150129393566559514985506307369336013859492978569464050933713521946926282801424462908892613080634113726350841693874017975428860686956252490253380247329057725655676613857032562269982783688330872183162669546882134014904706528760615536226947312327087943766656657017439052288590858445627514901738663308321295782645841706074393439166165385864230900074804951110799514610688197313005945976789094324039190710560838473858481715170488630127476426376079449702673300624517434120464309915523280157762156116606957854652388735269188924456282656092934438185133998547522215610514487728780427786214807989057577580580046119801537647369589949644459386685945333653145224051179419825708525419746016052445352159402265117621335102585684635868191166645312666050824913183358514719793403763547882797337416059089566265025843882358149698085857112623789316256724241472828434145870844465051192618157424920675362063757275646861238392608773014135315515536720091040557772611471076600935314651295970237176419241831176700084527101053218860707418245585850640859385532211889228257537418673857267792737719242770384267368571237908524149304619112950704979784403950719169774154476617265317071153952227086939425017310305726460891850389538289567720738180016219986534203190882725782228111343954291162036475521708867376549405323445869777561913732977474475483650341152364851490260437886612677096149556608413196386545968458312062413002057649091518823597820150592111264661479116904127810288533321008376545353839953326623345867498429536298711120570056970959066345842295887857187070900005049240322937849880974582182547619001243567935484262866784348203396664862901677779917145722759609182689674917950039858738380167318084642540522540773411778498018752575607704431328430756190481749511353061624566708207139485475547054689509568233012282886597262270215187763566454400257939868278911379679762908818889920327822912373816019014789518479493092086044158108164627843963655926238468592319006297026500626845502448832608962197553182404022329096700396964383138102962702388798897720605331187603115169305345203906326034190323550761468745307761858088176669519686631070418377685992133021733814597028631721067148619122922216811403803225868113577447012339774042167954915318955221981080012207234177925656791063764692506394779682412527858672823784553404776906911022230492214708581621671521866267092092439898581100065831910101391836252324761528787997866151176072321071383352798558843716992219293748874950588015088773823526875125813452867549453977989159064412079721127104303552869821771658210992138164536516015055573361759208751063293743444096097473851270939489090122974391880120423517366586581337642559271098453244777509618947037333122088361156626535819099087946021973549109566822013261177687690016481069669282924593056838986671029328665552305018322939468992115806772022172858964454217697955804307095779252055948136477052208235197314131040502785527640740655303164284097035839524919293998354322490583939394013014092356151419236295214856633607235142207418578169918909241346823571346571149913275495769894841295977555082971331270014736191655238660923976993467366158975139145458755129189875670371537551871185555478016796913129223076012967138461458536853037995548625395623996518285853490551379369468876529459726395523956419730950351097255640555535698830387806169384764249604623605790412238452115591359047609803587023973488887962620261485472761088824527544865907850160974002431287789875889173051314436576029745467410545238174711631995889749000436548061571045925929425088823259716589927281223364925807524553140084664501392964898344672857648841441945455056378637799327540566332049100557912818391734493875451779473451335973617096945416063099117748666040708634523610344195836319194837275288925984233807090476511781299192061226266931232708239491768796614516527917066353874245498834255311432830149723445519383854899909625471577671878053729846533477381364251142192674066327423210082154902593086706261826827170268068314401068036698707378515843712185461831261962872644386936448295350148111986825556717186630822142510634653104304714068512908046615323850759392096935923773748398348570064008149618287118625340335363755763015054987578595508964316856155532815538576689070012359766082024771890950188138985510842284456749992558159888007649638732718931661026318138500117366496375267904224928103471207783174265726265988355939408769506984845769535722977504723220905530660092141049575115037752904593005905245593878656682904108059754909441807691403777726542944895534507620446696326859470601874326784954696441641580968362664661348887725162521552349562340686257297790138960796534641331928419458649010593552380275227461844358481912955422624884161629842107302131097163355910409618251394018643511396724413994546821474469433737250052376252601391330273685421790077833641041882220429997480998940389537779357497866531604195871403856393440632508481510543368167314218232162734638334221801456562432094182728857309030862342641370406169367582790271188436798945694234009693536198395247702444006500456228482387542608574854829635970984968695356409651851329984989756907017402821597011196179239980634644679638849101805392064704008283863774721841867353951488595745777390687146304974888544487376712864589456408077774700323474672073362835225615446321078220849872886795636401889310631753349392519049906579632735063000646560112335169509120652479305543667561922831972767549441405707352079635452518542217104137127511497586848796077281660912543324760816703399311339553206723032634346640633076964884746809001038142559570533413814128732391007871132839925829630695699261322179537086592517442559568948138545454414887732835321510551439532206690897828863406154746248804301309938015592688696702901428916445557702729020868580440113622918673410516404749325361501782511964936554197691124252991822447214908547333501520034711633884756423500528467212938770625097706255521743010567766190800196459580796808744050153258267739799299039250078708054063886479868857457436565819654134127244046035848186491022760114235367514781959462893044281744712666925039489075828921703432376347157754035941117507317193151887885988145364990923565577646828014653326929307878271309654693901088701221436819152412127913789422904478346741920854473145164877326015384831957568901137629881147208820434809145443337432423564002605885929220789168017999179034433591839332975343644800950089730896111065535792059278658828123714431805816995192494997917519549984558482991111417377474450114707711908308458924106742915234671436204583595467240535697345137395630226532258838031627903006252036963113204065949692091998469019324482195821437246906320435887232325183725799432313884278862617413530264568577649319930834163348573576387863891750437341574707263853329740633714241781848024560670566775700621199768103071690361628270821579265212912510265349994336109659471607159623526800612773987840922360274048400932125380619495995162506696150629213255664850303833235919643606191038399825046479135152804534024802159087335107589975503789591327908592386050866915254302114922670891195810748893134232543335584695813300085366889487714734551892057148384103686233400404940963947394286000785756834058958880919199418732891415172784585492870619493744355874371375778621415711234883923185610020074356234165039300592417221927970080092289542486321838587315291175538913620130907523884661705027449750750083192375882853109195513961295951062449839508706777047320398053069949792430986102718591179241641626164645617093229310539673336048729512907053493136588695446883389539655978853381748905466342952695013679942122913819817060940982786672831660433598861126054226204757327466879358117488834504322232566076543685303478236638401606958533246582400676503700068968763080183590111679106742260625444240313450578316616367400921100300516284747548919483229019062189071230670056431382909544710361377207178326301127174594997763568236924875296970207355361624180519619153949546642771626261749072650509835708242547631625385102305284660664657833280457145354882449898245483330856960149549414077725217112770955693821755151092444630444297231231760979877403588290082451268782619709693633076116125494450159708038973504696662154360177947737204975510414737681486365434065328105112917481104097439222710390074410136300708959440902067435411275837216848606524768209727466378857642545899100337139392691385732473151131308497421688752231082073623119508227250278304834383597792651910931549497634677015648166746361406173530584965920632562873493099121551221207900757098735759740620102228961231398852111719331009085230734714199783504484783897801219080402995672151062650520416523920299571896267643525445250795615209656384703491728471540360060081879943233863367594240053998337387122374987675212492911095357726068056123192034694897739859354038638312012584825708243582429040450751350591972417346166379466741405187738632139816208835767345981180798767530907196914419609523894383189036873020289103696507218783178397720609589458148172558737193956226235927008783655239073058706348730189647883757364216551210416581742083312569955227772120329990597674268752381971550247383319279875065220489494222007903862074529979243103954798572864556724151889475529413590099394259599574467604142690259358156663135949383507743823913843191180321997610352481634532495021316866237480847948105558152669182261538320537094356665974535444238693700039260307360541000208218113264747090992440499435448162894052476965078851634261206842810643482082302244029132654372074389546550046307648480571419490876894119452375406121414680699592321304533317374304873382050858350745419212774411242594438700170490779600600790634658381920018145330816568278834725195563582939339049604749007952706255016652772680655222957343129760183963076987924183874694113108565733460651893844100529869646452341031064314915318512471596847174753258338460245118439238338768420357204880861833498653326606944476559381205273772511877208325392983833772111583998300557667305153521950359356492049728040045665257738452453710724442722835135595647073095810712642620713110741732743223528047893352485406700514392238265807505762970122813419521620892746908277659875892249955926159609276206081924936504467580586427011091577927345230702178591752773404468857811496107392589255176747026573240065251194624903325061367575184720113714376829994665552924174736382065390008080716682565642755071577066276359613944277940862259497686690933519846639840840301266088165296639672907496155166573311043108253925826617219854544147532684718153393244743450473720550369122081128717147906485982093958093475493552503354110524882279421024267233722082993038154484112722075057259909036788695677137404137283930609116059782973676520558387749963453427942121871541614728464327355093025972788909186075754907145053583120681776978516743001835208875440754707221219760688941772524152844777580472210642444072700409554358565087743565781032849926548082980866080195520005353495458777792080029703678813305026109700367819548537713962797354451532312738657871790856387525508329481470653000574702914707874925693444980539274660710050895103668229386342715984356040961765807826909720214208508285625143748420639869825585908878804893580314890861655588300609972318860660124695820555705228781699899253162519313884071343759642709935473449158673313768351419986354079372098762890606282639845228856904620706540950056394440693691961669354720680162901330034780767016415042136235811582368915787508393515758749997191478995878384670600021332160711568052779953707361522530964067920336001928188909079628280878144085251469231907048436687069248867806222720314089398401942126550002063932427097127942621547516706673245337811226163466448098383401655865824633792455326947722804177882656584226840891685301229127348121285995616700898335114820098790394489572607539892451174503618716177169085372292359481122504677216631007669257852012549665502944503130167665214284900676593533653291989674180311167350864758275650312369329913876250031172388644308709039924837588209722953009269219223806102313927668595832547742731545179725602753790201165307188904839610028882540943640545253988132205383402738908938434607939543627466397005291608383781623545771553038697789208995190679794167179984479982220661442595496998734964491512546563101888905986056823329773651023401289692887364236340185813043598206855088749018667496466938265490365897343778186149779081503106115250402832366885554899032705203999682313781433495177311602578582741073505165700956995552129827309990282799713751972017574034911860737114800566956260840612012169425455614795557841556561424841947649363026692619888646708013489676357968438216071346498024178177056040726210932870588010706732962448954468597483693179121276101072716484402227092166990999993613376783197620140001891988525219562878685895561380229622560260220543255236956953320551206940184906988504348169355162606743656926164937258687929701500755523401371840742121145983673463303351881956098302617577765369485732719721347004288698054300596522075003965072111534456253883045565129131388962687062390778006371405397746321702173374056709703308480543308066151847064819256415614366571675757448339927748451167691353527553608920928155392251968873924691885301267873732479702043564710251853950377610386922409809419674740515623500952619399547804487084996485596341326027993111760707226695816776903172671739770109974088500600965862684314992748079548583685703945255843058073137928026109213524481921725889502435189588271325019222236872598561610312955001623236718904021470292300117264445457090650785984757644489613614833627641398334948618335751018503743474313517737839842905971680055518625920254770022306773801211345861029150081171223099225350677526308319963568057099211093249949428331261638494320015086551504986020187516735245204885147437299689636623374831554185551770315203831606612270478328737879281835171559807610102840870019637122667606888054614099244799722923947698714082342727507173634763711429532513774529751799290454419782537772417095911348181893840850052017975745825738565582912620577246122422447361023893409702936931540693435143197626226461135943238334689088663622042196520347876989782503709124922260056268065802064615570258923206712241077222075305051478208681251788474167847123812572372131727381657284290756711093083373542122398243357943703363189608309368712928383080526878215553637518882181552797536033816524666699728778332739631274261439079406577134727233662034729531705378061220803833977139627311326879358382332857700492902274825361447683234173073627195168113754355645216948002150421594166044995545071736704468968919855985195747252817278524453153799124958198453802044090823649078881467219570370035931485531499122340312238362401638065816194269631296886897231250896936067983748648839086717020684698192345119851828506513298337644471599969099566541193637846091532739418368246324608788858143036818294993658420382364297227342631254393997026244438015611826649890419160371268039206447642502542761106333920174704820577450858266435885098156397973411794414705105128024664240519122097291155038107464141657366635132443966477093333006623458892985603322682280217761268984613900342219657210695107689455319938682062595824682232769356929105338492564989905948460835448410752629245884327207650954612001770447710807307519513098240629914329578434588220960256730794210660312229566717799796079267915393745701010923940893132940364056270545367310433994472786655374299125971907493442814738741042843293264220165685439650697541805725062252355642504844804908437681438697102414472778085957918884397433713372920313274302125781126443304610632067410952472629149797241036277246242047087969009058866608843546848153114899821682279476305429973168396234226790677206825521978187637944229249169982926024859948688881332054722217053721753616163994077236769731139928574282533116169509871832210212195436164893195504951180344239835911402243065027792881637305594829073654062827892352301841686451508980744665037363719673273605885698702436174315036776755154941801081769152599106008889787824127293316146899363370171729863227162941590731204311702071387388457599252314383917904064019471654313661825985856230780758975089704226428875280950597035400575724404686189925247667554930368388168977895307067312846013122444205954827741556599050041833239159706167368695041465551664305052138692566731346461938147052835132800127767058044186800926839337534251325835366501778029570904351576593734643324119171226970639316315858304187644567053565333193657414119423328668918937729105055325271554752298460639556177091101654892335308244243213009166944620684331654943209298416774507563970990586865115282139693992801599433792938091734304125734608750001114197935122926369058214076822804029078190295365473079842800462609287967077325940150033885553296101826494512164405099419027579534499800151010819309906760539944879851498744771459762537693945691877074943463364818262342055966542887674338122230677088907874415245332225951040353804813398237220435200206438182043315061336366847302678538216583798500070341129135831529171937290495254613309586108665359355397155252469173179747727455289936770289155097304291891102027762280497108030937790098242305474500418121821735056896424525150619085919182847614142617500385198058394275287802883416690082368510199274985194495762646198417603335278020930038365823526165566495250345471349860932715953552136795822739838376287750055404656974779808067846066759802801768819045085193199579741675810267009045446490752062127798560950504025155424675057848287581945206796058167063682561286174444098501139516166952353853700354688112349550606304069836871676244482450788214496527077014831124243252988925129781179300329272170145265475428578215436675087417283759258104186017246595381384106540916188204428307718326292713852797229844469631980528332327584557168944810932339043790851502202462447810604573950386733723218592611167219438166247401982851703558042420812408051795398886733353684224240341536076382121687855223736161217714090022738148534843465955804180247185885443639042799962965887875296655764021426167856535749623002466829601159891320041023454985687492980798057833602445660627712651271242067995363440374066192693750033380564429754447794204792754943557075095898252268741434866628417961173078466783032531901785408870080346549365700664232439666925221603737337019748423839605313507035714387312531852359440147051921752548943433702498724690621786222133901055583501395512842384174894666246095793103490887689576508974392413789622930263415636247330191816717200310253362633101075407219185125934158702902960969445637144474320915565894059553981788148794074748632554163674161549788569935553334577235935192876905687825164336380578265630204015853917876273273555154329296538154655521629400388163518858326870629225673311266602082336445671505726682698432392130069441526577733448355329432875495990022633894308795242755051898060542137326430740369701474419885106295741691912514331692387406468100560274287171906045403139940577853773522583052454472234302625825164941488618548741587946650024008002072097454282773390713564430245932851406705174220040784893613081144672938823610843870310671238681450477624928829985185962480516535071103892600707355043017843184479875668938177707785851864031876320459952048104050165107365902917508987714078480160268429807454579756903196160779507709133877887900326235792467547138474986003173828711131606791590347459088657963313672872590123575471460653154157609545911213502722610709639893577473549442424432387894774745122117733898507337795289525543756783854353019282218530839364968062185510918660475771189554727382110526829202157392314800236558534712002629336302008275662079289485857308249440483580318271373128592618943781517059919749447670822954416521139616923375483730926703249723250696373937380894504423057035565592890540272803982092116974197561524018655704296023951202610869453777180392465673158042869025509432376017745962788332618315527050426678380240232941945307042029770567305012167529496454870090590852086567882696899668220920850949658656561139818448655335323828852536730809728678528733486043445159571587764816774026366487596613252413441931728176162791777545141085567710415783387587399470327758984744733206544783967064458910638733721937226314598451634232319054590495180560562092519094015857295924437487905037482257959614843322247713087134912369492139903750422000417056266703470804182219449757236069756491845505077971823536720294481398646141015177734410017102855610871772155990208591816726162533239791726288946519267469348034150163884824021803907965385366639224973235084995945399747702045637214242628042214806809798778495468070533517383377470820918233121698215755853947966605986656781249390564194182323107128068963977960723240430697689679738001927606576767329009929142522883034936492383486249122712737125958194775958056515556736137227361307583423548720296493957756941365430648287591911262666707109573820721444619874928066506347908866633983188392582333566401388852080796589248184293237618741837658519695398147508197582199264832923549807386348108582780022168241960066987144054074396081917774009791233152256144919636858089248774326495283177479986061085814305714954543352354075544174064792600376304452157986693490184520625592937343670986892985344524464020039711085418307988106194656412911957149516164111231010187125165469628018886924771954053554080661522345658590993763215817274389037807806260128899213751256464387116543560150004255490086664699353660614277147746304767684467315432066398974516750551306948739259059793973794100647052052571709135555126491789859826491625182234532766248265952503098798689131785571739666597589321597460225770644093631919261481430706759013299849155841785831141366245711031317163630918733384322334270800798799112361238831436428424762201868966882677506388966134715091341084942686689058402079613637023854474348933269788849650761261612311457608750494652683370022242870541867484923019929822129109746613675544920288417178529444324245585772655545388751671078526908169773150221715793202641709454464919096405569856186711969201818160324869794801450623271492392550693435217454905092146812925139331917854864583505799565563177929047920527431024965330182972159339595509871410094955355136718957118078105411689038632938767043562317669466885680604319552958760580925256219068963383284238393026519220039915644094360690962895577866355114147194967913116884807060719850766303500122132630326008540712123470490872886558024480167362182291616418250698467438068155810326640841366641510188140383296150577084870313890241142956792454305493527282648815378336856084545110719738082349584285330823549002785690496018200009268699214621491328189087946302015056288207186702900209589781977110260525349667676144559786195619886309657788330941768503065362860707856352938356714482415166268995926141429911735779576321077531831327614534102088995019302569076974710128901196688517515029310206127169485263609986377387684917713327445183019803793653912464648774015421673294196149087656445661699016177746463964771768396481162641928781754810955498134158115678746583023393562872933557079733967689106480616717294625999022895634024762646153907871605112557378901556154536200927398196135489344961741585975745771592665376682533653839207235896262968238060295232816940999827745260868362732053304015350927165031493727614348780801688045909889368640963778652145070490828630335719752851783684388331266738165828889951051713198890830652690226764384674183445081313010686608287254855318303732742038592852412997779551299750827107511892400901017221371329080879885375885053044543070857668578206326402424032478534601172253930526131276717290100628485852469723948495685256786479446282964772017500509921053841396696287313064300177476039186534297589750061923776853778313632972263277918412212773020697232135076357793563907471922460999326865800763699386163447921326667372678128271030829398262084974054574945392184399136666825819934694285144740348191542515959971594036878051024501981926204531422692317458416546082690024238439027102996107021620048445084036746830405435924027134930923409879366853404761040833097944166649688203727264947408580855789839729939747669272084399479484028823277765280549904864338660669815490248838128333110408726984118681993732257514926802216693677714173254786419375154803319556512959950309927586724349732345724232863282047578469230521906631464957147564108400556315065609450937541085157111415991120586437403252453394248739809371854754373981948134579686484840348892914538531486589395063907251751737470324718283355787467587330178157164164848751959588746443485572825495500501763023861557608815310159907199230994710125056368008554350936757697630931160505035009807780106725041489249993421440363095965646162312185692596422437469192247469348097275662924244260513004570641275703206715331778614972054030986920175884631738628337226196360279889689542618087847656269750462893375481547486913415978713233933958020389364370226297009229010285891418533856416630983973725193767938554322650580333036759973931832786460840858708026675862413200076029415701193850246398172954153759581222258672693016433190467117542111271830791978607734913349260604510997961061699783023843418397500946036388600589107470472422057042627369073992177125794886271138899921146572985577533643000837909483938284465789631752616191903509507178454565151604622229244004504179911524969190411206477400743266232423560342952981888331135741864832458726305345459000358276698270462419237334573721951546560041702592602592076197993849646458999511357239881460540276811327214637061110562708897105490619268573862189915189230956517601213716160737295399166818384797576459153174580150106759347154856806359496778498044385642364971021321540151230890100592469813159452053475038281112238529663410186927678030240956547864736220303553549489516125476197776081543224185915526528927260211936929611630755160750724326281243950951290271393613781152829258727644687316668204951138192862227880412381670298825733248730037790167797372989454720671697222124191796203104518529207071787338811056482539329365747480571816807449673085990655675714121047791364126343428294358013352937804561909306241699254265521408919994491536657000568142964838281283928066963350053050923436217274182371775472334075853337197922918782931472780689206926481129148895853536076488254494294546047938729779612722548104999554484951475661085008065278774005919029118127654191973034121395553130721409274891892320622929860427898662432023874619081502679669002781177469559613745417920075059433895065253918760836685419242528192532989359103564971176226568510003760390721540963889196976708481594410206877930638618830869643238479002363688392147719493330415034547955740161264686032969986773048668320888244976701519038330614798638111698481587098226594346725041213464232152054421157678647919744575758929810694709775959239322485186643616621218874693705621971950577884962415953631214049983106692978218371562303788671795238343519627196600698204629495313161894311769438168916161358711735815842441600870026387177520134625079100311790049737380389157205826319037390798934602684156780911773399903096984134516520456361233753473124025845273448753700322835282874965270922449432768118413023210998422989766435129309512014851626704744053793805497826438937064458232145752674157787937352235089587877402252168809441474565168576404376909573174936916030515164120753798695597228546712319831819250237111919681477612870826293448626562781355240585802458040315986045228103479115938404900208769249014461949770552338885498906439540583708283882904483606039567577040169621794269709179496119911269471634622591591454689267702790752184768424588918504442924050932838981088302268542331370818417751248766376784777531060206626003611137113467772014684206824281565752715436769437536315034505602126118861022378248312706938896527184080039288572839139553662833135541074424375021216057730440957497040094124540027923495860008333299500298806416868632557772318570763218030005517382493736208434367475616396939657938691194823992738495976799850190596801400685376587277496145186970278845336250138308102935466096654261430364132437148941603717536102060459214780106785626428624197890673850831071878298362979332556103929141372403717175147072361994214632876270116616482462821895134380555621369345844705405495690730073113103766268214285572559722349920961293768110052950425030009559492278630348286341978566382674776074209683629472618121847590214005268365333973521299169219417313958162014634366983869147687925231427442077873610978296948701873704486936335246781710487749736766980411376704940090820479293375070134586156451604179849743341200874309034187470540561259879221700567600975469793593682826608709123418332420915207885929398208972479191990726371735605645763565071371015211806473298341598495841054560253951661319039422631271244492526104628437004622792788967076918187890634513591121183703602978546744534388561840272585076927739432307399653451807273179156360138254150356894131603224100635700564800335500246254933554744464027085671314130276378371820154714139995572206339482147888704451670783942456952234981318546759584110772317006793941361887970673607216530368833707225219360252118500458545473915278543991310025455923413811283422167304772019664818867748644900591668920217266694165127888560084361494323620627689190930237976345997435138695829306701133182492837691376359056487449968808517196161059540896338322420143190226322605598995359601477923733996623924658837924889783182768549077382573744565307402543887157254683309752805774896352012727808068710914378188284044973837753803333104324279105280385176525852355963320274467257567244452906443246056854203957543546559007789030273852344337401641125337332017518457321419925710865714723248904476713403966601676855447433806660186802111423289755718510531891434633302312957203179429123349241101682114985728160390032651576315369490024382135425912904274006799388898118936021173668147205846463695441821397487514966704009272371582827237873283555972139528926467219077448606557997774019532025214185449440887777770851426623215659320170362734872542598302345464690552222144208418777511915111021721480192870906241287967072425326269568395345895321129163341457861600809200152397686495606815456891662812033442910175753637821659657429621729078293342257877568926862277550490162631257157906372552216983734343606535034109888759367835855780558617970998360826468272446476793167745023046571584214119844458530896453703319053588120326876042843636056912666525124687267443236724880395774960506061480403540707390375073709999062554717406171715743960603921567146232724160335266034498821958209306245755239829886470839488859052461334851708335761523859888716331600585748828192331249235614360869133015509638205149858223735627712164166008089016832562138486698876014794817869792386964610706227109858198422761541251883043674992912353294745015446556580742290809511576874623162323281982692226746225114583136273783513015888224232370304560230930978053610274059313311011494596968002711022139872600383145027451174100389945372988340383501317758987511172051317767200607203893533414722900289556148597356708162737298523630300436253839226001971106004573289803024592314711710764132752323405452045694064064041253315916795925304576443689844675491289309326460064447335045668892667631895162517174867412414431830800363912982565809916901296806031957715400353707263222311072223078081959218162270492795157719297464999401963424804164444106922659274604990668258868861674078829988654741660457182068690642778581053514756476713806927304175224395235292377218536163699463208000978053037256522386909709094712030015904283633621818527368782527630575668003580366337813133577364292534671135438308640508966065092957769645418646451915052407050235613747880263920736865781169000037791836393691875248234295855526245484498392423640953508416651353431114061560463716697981582806172381049534229708610216682673037319001522247183188745422200082549263444972221963497916750496922528498268073888475004954877020385391363172248136343736050393232035148413848051370732379844296129799494258806039253058337022747786495819682054183507719883869690085916177434960400341325467764306016017900800017278400252881593980940351523284848010376651429335317952317251824215894015068725900666220623925656523659224653434827695980251300962642235609810009543222397006704555826114997751381294682584554019813852853287254620740535732322789162724740417687319490881105197561760922026216469169774665867233636810576183851246716528143401718406898165985015554363585170059941287351820491497883832063685446062372535447942330293118476844674379584616875390274874406208764172907589302584633720758148490157195235438362120110521438425110026270876327053275664047063507567194703102529406119031595166209332426688341525953057256192427781330639506632845790964126301457776087799924915759034821280002817310900015301084127623677332151487166902395627633920263644217863615833342176293199070732655569217523557128018809478467905868794402894890419026394173592322896121164635913873321744522441361938486377703419706850441867218846802105073632300129813832717141608272455439137997741075433379795123278418619726124251626635648036252922279009334589249980621868334844285663167565462225475585615212020000465311549607170888622504437601526767845494077264293962653987432226906658317200469511093112696346868744231259234570256939753372599645851841155240295869003774568106828535726335196472852130200952245173674345092302860053369043509765793370931082007593511168865454170372494815584045577622845757820937016972346152847319026046276697401068744524719206348790454639009817274427417580311442662298033868871800110043422827188394850274338903455009875158133371738414604242334031940528761809139264489945567577609189474298853440444107943805098818787961228293533938960317253242821556191744731737110957228724614929550485481728909137483556315428738394995048559945354287475872797487366146401052752290931276103341114594495839705900011557984424554022339783790147045839753429466089478938439041335439685109701809760007645878114351648766642420120688519355604076369280295613045324128973604268736616471420089017252008565549922160476917903610697940801502712744806182113822256607548033623894511306634558995307482046414430225999429362963389203666119413768064505492828604023601227838425810227509688267391785984017385215654789551887432665094082724368971346706714757098124989645131077862145546473805786407885065930117124246273489458482505218343894401900151119644846349253973098973864873702028002921041091949611944483310894341504742723992499040452510670316231822408351151158804042892440169492793993235374305303750359108842161661722240291621405464408881593176925905965327498946485644236485578367575958915618530006777375488845208252015467391763631626704511465184528589574768674107004639697914953155380742753471476287385099645208110363668932329265800679793897111930255597103289998641996452421947860363144660180016449106762668202037938958759102472858905102964255953847171499131371683978860914259235328027176353648815205591875619430789462365525892629123487576578877642197031657836855708133976582612698396634082127610757173236042041363376312295605183654881210309040022192553854346925639661632243330344548573095412926000550285748100432549492713630353762490178588092284626078370301115854641932614320632590707917657425629801252013318457624528388917157667101352460087620304739236079426701821396611239357831596668911067401070018972497727364530044857369056619620579834729831697577647016309435278560211186772810110004488074073225443595125894541404838730145166866231782524489706932948333838241593793767700577655207800507927740242098985344667008705766868190984478628548095668730037459801645190834058778075654381340272383079046398086441337121273377612249348836570313810134370634267228603062908744607532993519372862683910331913823111098582823677913986375217920211060635364471771795591801707297973906069512223661057429225005886048675751482646261341610707420200517535825130968932295899394357810281499897005314394783788044543863924990936407539691131317133133812194358788232451199716408155575772779069761815018004600067880065612918007745060337134230277228591498678689971264822144247842405382026143556209286343772879522343002125546633321927437917447576674572523667613935458495797114369791351261553376476304994642709734678262196385739162065541174587207380283051444259642229063995779701546405353232518503865476625824746722737884997831327293434182963258411034893283307403783684140804081135141858980180915334406948850168139520045773345638002442074167392259065423124925578976146809641058972289757305532523392381309021393986405695763831429079685809864198333295898423272366190714468765143135509938261463607059772301498819866247078217247592993734520052783591040764278389998139894737894679851316879161587641446690001217630777217421083649040492993279162243142734959168555778253790475141445916530188339985994142580607366298978480313437633427136390455674173734990899064534129249531802689636981093188117780467178430382446391857026577130467153371578606047313195792272572631522234330868592470472782216372758493861360645996966834999155414566741726935639321577285287691865561642630664384986582391813562849343482063280681067216437299950430004836960229797114669601139498600723437871072217952802012562691587517710632510297529570016984304387498987232525052091828624232484748393735561406259852483764205975801793371578017289026927811963567753979872687986337557550808011094642792451436412652886602928979866418100490061157075657189110517417457711412033499563778383127208319012637528362462722024111530155519549649531217064994679150274254543398389696301286715868521003289092231872037184750665421996226996650811043121721180324933525560292854235322166336413993051648999616608695062702891129937119781083347101994789405305420205673362870752302676620142773474049983649248936665844388440653353550894209633968266007596448047940597053954475107570938708072350279421415703250612642065903979098996615440389546166508202209834969848086132831902084595110165390822498767443380363261210792073246235830484735663487317114956084939898867897729454628911619704462333127908432362859171561019071733100710879132524144322667019395053781299313492821795234477298724319966213809680170653955794205288983477841799152737139687133118686694076614729930278074283296551063020038053151278495023812565665390732546358908186945987490254472430832455660272882340376868979977137967759981172518383185704745086104827991861430233129967166583928649304144576204602964478415928251794766004572031238301890700850127724230960938164003178773391131778809355776197998883875625218686237461774086568091191522179913379507990442045309426844084509911223349199234715573869564632957673708718332123703290823627473264182345503888805138643272740253050326984496709955761388933829217300801472682761114705402053066851164753949279757667830264692095904332040354098041447647136031333732451682779818172692973459046566635764141512903705254421221859209869478520738924766765780888693771484391390664312719615210683549456239178247607595856583327492555959932384078385965618037454474208213573716806448865375863101161105560988947396761135161038064899047141919361226560041548904730766653017494836195856162892613461914486189676505796967699187285774882747159238144571318071421918029276278024150064912989670122711142040573264980843534245870042788131575944029438348586485334667846473844320191079622467872289394954024579362690427431092329559512676529343301227102743633307581000024637158751432346655336247370907592753311650341438557740615197478394648397714569023113139532137825548925865673238555355889900798750058383313979902500762192151403632331891078357415054996817342692155717057567071178363710107367964770808650396534709664142206163946687453476539506254187654731024224921419359908374631688387276469997493884861113502847281300278161745768828180776570697421214107959557557516331978222702973926862899287210781505029731375356875582815645392146280898252578993966590481450557868259216470273905988416593083306605896641345734278976589044757025316781422402201798038870402161116212829985203725501525888273077944420002847729823239253994782699289063274427850530910449505628474754386148493279104126526615123518446228270170902703131519888973161044530634163429457102550491370347939622016299572748349085990895157560537053643966832465744889169814852408755233589725069905662637889642450936480327566969660779176448768324462627954312661320655310875769988514372076267155846513694951029654154981055090141489251696930267318599292558493904348093823134729818500622127680843761706644078639446183658191659955425914956651476055585012892016075082323063191052304302252963053499533685704546401562350823689370726768433873158321244793944743081289712425997488787592773542684587516087894298135917271731981138352189952139319691625396931496032796616580681945903702166957944377014907544167174795487254525861952348992415807697818645165205515483293920291185473071953222297222120509387366064768198816017130181410569494436988343291555526897013661899764533762540647910254193244035960096825839199236924571120101437852905186500029598672630921495951576937217448833464475588383716973357313117727432766521752950468366648973150746680015610107140508096198528282754388402674173122353349172706777944618481066939041490641831581576072583126049048592398290489041673921332308154808383328646824571579874685749001816228379137243596012836073064153395768810457323554564033585129380921063309629895443302938674352099423303377897102261775921948025765477364291220659546712597828983845494556506051607801532721790610957937869698429388975032084446863652021224180151100508327905143840032750023109494672512800897163423518835914599995960995626928811278897266206836410625090371070907181552314352447328101476257436771013578696410526250372367961219469792953717063456544720065209976882548383820975156854074715359949520682399063204177845902973613414589360312394510351869162182183288049960036896450358499166270048697874296880274848229948559823932757596894501207962279652328461660413157138667376084461930304271119214769657126739381316902546368456451154663817359590863345346598318248231744931947779261293364531423329302480247598470619188463653483388478695005022436049729698775768796123827165573250149942058375894762737855097954182859855575824313581491627146550619364310352852303352796875291548549628968461519100873492396346315086231313592314130257332252239741786504199732586445750185326446434045627671714654400213273809111986275052622061534921679606710490948071458595604672250204422527869450783588290912018707688880033637473249751502261775885815941486578068159815535569566909639459883477907729062494274843336454560160765416360824594072753438532414254790357340395213123863478327727385621387146071840429799766671348114777829777445414739775673413860754799771183611025007453655776149837771132140890037553119320037865685889400475838113071837633642259201705380017027657433271282190260465359064238113507637497302467779111812805753462149816045569299007280170719686383299455386569366789076585611467097772306461755514633831255247166655876505344520886178427696880230260633483277388256913445095036169660836808846062267785519577352242196653459743471991234233076086811782917318427190265845155365225928306714321981494659900983066612079108065066528743869651717224166670792173355106341687817282952072415696932574612765666581649189217315291493537311333890138230568193597404997234028990902632426055691339151033041511626841894062789470821088456216902092985100490470620112260042632111446855337798181149685683343028475393598751267821055061649615525961749617479473504498486002905213072021121797341952828832555446577135698684805180140796740216150728795336812725588526078512390584753785261186919958613277501242664490380357185358405363581988817933698754697652527237037761969217898052655107164339028716675632328703982677675081391583577414922026813979857602144709466170923284722969301126620055279659720704387304961164209006694003801403722955179592168102616137993148627348933006766422769620408160485599562565255371000408411270566784779001016095397296636601680207369392385521583560045520281189228611626147991373944289923830056918612554602827307484710872514737980632263586467351589300446619250728371851352298110816421520543447199655740529907550644053198067244772741839705270310422104741871601465995794320921649044875005826846912085935297788971770254392306506824836694185820944150439521035798163272400385183766138654155501158161539724108230773108731899285813451728372168818749985312000954452140515325500686646629061785799693473275063262009136913066694398831817797199584890851416703281284467410808734406117817004568688585222708967344061216892347934604726554949735941627508169751447984561353795988549671382452177947159478798889355491447628823230867065930715721754670976625020591982615729017706878188770671309371730802229985070624394171633904032730578101318343478937648388328409757957069846208734158461686371927423440768658972478834067020270777981674528486614252858238113874910576927135220032435945323507364936168753085738278521876918377709955149136582329300886823652540970432960849564421617788253110054187531132871795842986351911400336743929412153717040273724162426278209686743217543662788513799841746295489808219359623652811941426911031125816345284066904382283654318306192244142848266118292081204775907158212347644473949371721536119662706818011990745815191778816825697345373901974715699487410298862853478581523801580048554096539363992655470044247356562901391094122666168496359960950877907898604926138028480306359123364210501499480754330459956579600976787941345661190738213567672012376422289564366524452881345821373803351481068858192203949269205487988472746906938765920474060950802976512792032769653383348400005454458927539391981883009289126515193461850423565769844959624368068290822458996772108190824897645364373094567651033173129528797204932349705165808362098974021853071884580341325735194311676528917951724727328144523101378101330148445646651056143265971949360446699584595159580532115768286993438808441533891473721268714256095885935664276081332182993546237872244229520718134913298064247286590067645749957491787247638141930130282671032841282993783300160480753968439939460793525024263547213471897608992539793079800415006937657089953812566650741359354904686113864664553112016672695067490498842638410449940446930023175248447675664599515973973030263276465588817548900138552290544060114193539699602947935430191311532017823338236884465387313049044695019618535527006321813070467870580841939050910702103740698013152498357260729318250211944852932222319092837487176449167713043702443590245659972105084322996114770048823981596553128226881906454785282083022734115532123280075971594269959854173679645011277589796321249829043563241994453537828561036031473863913006721166462384923229834590396341619145680552096817470491876927835962652977655215134582651744076483150450885177443403739870487206003647770058481694427364899756429621988965619413073143934519141110736823152984510899398159036865886634015116556932884584533266565818201646286746154119136298940117098838178012731741129519321111489531614719826546920563624697509093100812461294097336563056342704688035985841238805576173989034309891126156996228534419628244528591673444619491007160727687997382028138987705514517730177084527924428504620903046898802871302061678079544041476378813594649559390049595362095661177346546443884652261901991809735932034736328868143314951023855104358849855531455105908939158524050871253030364117410887596893661415525633978294380993857714307909967374832191075017735945776129316676283695179162958976191458906633953680793718680799626135219777155138596204768642538750183147970585158620098555032232993165299919538137273913446616062874863975968537761137052860325449617137416742715240589261944852569883003164647122100910241389897337740557705640878927888613395994424229245979090424585155757856845496647762974149030688901733751887583659733385196348556123818800497352188678793208655242861052797184640139433496130770069898221934952570121821214164261699756753303436807072280186348828560455796785159233634898152754333280368425608594518831063504393168893812731872370536657967620859787663658209010966609691640927519794516145519761878227495248230228299479876016385500625060532137798397070662800578390331912980934895228790420593420122486312051713925195065499794977029698125812632505343463878042735997747594949232341930471620143129022936553998825201158472331347811167938542136214985220572571789584192988957944214210228688273795746290930106199772462840161236539435652113392845936718469220597568637428605625615845029682601799589060977728668834072811275798535965377888337417693459741321097428454231743546197788340616306201017286641313726730904102367424356509879997223844008467832127032230405630518695283962502789401335992256174007989032785827027093785411817090136662670534964380645048600886200396203491194607876857943310025054717441951465165435755105459117733407014826544428930796454146579732807639992844807276154219932088675400775273582576044486174566265570981267743294636958923096131446644508842939358725266993044353927924017994587584752650828547689068506538794758971638190035547211426965312538166797896032553021044464150979053219486807638185562102538664452155006462482701521693107519160616570604385636459865149862550554930357279131021943942013755315867782660906169839261118154752057742560803198699843589768157588902605559579690176184272289394658826553628322500584878940140387899615673397392509865670959182281317432611267423410634948597045476765334806456955334635224971782815131463196763334169240333203272402242808035142582522214041316090813182534743917229392296555478058610691752156947918977586080624739839186973813279892567167940616758197967983696522779269993840599805735290609451978346372177369609354423421285849553651437688957457227941999339780380298499620203993829724205834421520852547380359264347387615175705771932497582607023658576042515525078785148888047196564541000985681837734850205009953133919120929719991632479831086592765796915474424294689232940988982822118781975831058463900053007360411351122715503021390704912049336831519763616261687875447584241449920130479440133050299886279330362256554993561250643495317685182199037326150342361414350155217620621352531260007544270553071088362700943863711642833731037808112084577239228373751066139032537564670109862659124658129245758471208220392110173954127053223990194056261947539474364234801465182711053917672937699379816098312716279999263643960982811495830223742157268144793857686338031815546537213340867306837361445552549458307532732784905958318391574962726504754090713396147187267242481242592880388825279370566191176620481739710304005942890553829380203765255575546067148768450568360445899373734150547562914049905443386925458487006990102175073100559686836134358328029111203107891298646171026998503589411297868683993287620200455235159087478905339275290422816273360725122918329068797223711024401680450370392047314325091316054334264893432157130356958789070684828038897691655514880681561646201452070984353499512519596451842808416243623574758993488734631399970287789520062607647473597541370528932265457318201056882173607931618134311754948106660877604355539085370706293020968096460774763363488795571276418642327334907571609788804557938192233374746438327654094588818012532691892132108121651724495531063634882965472962186856030417342089308701619502322410843092389434820460747393744049721741403817234977734930762328578202449418215450383047353748740103003906835308381919247420177726529980017063659307899610131683222640196061254565328485750259609613460031268224361517509608912591911795585304101417143698135511890357745677325563621749538457091809594413604002556090192552285399957796946437870056124735557354390609833324877386763368583911589793791732090776217548684314005350792712757061082057900219731599475832399146755390397707572243484890404913835152657176140055915674592740022285435740170723593757448009759049352523510670657144343453880234659363009282502929192612778225804892504870357346075967411606254120693187165062658517178842973034501620678128775686862421243918966479701721297981846051695402516223100280579532037868648263521569311906563340368965802443848330067475878843081508694750919224300523877076621877200653816350671625118749054198092153461006545487958311274923078675480802683629628689787828932232058879859803882284901330412424225859398773789089109162129830598977579913786347797277207318592750506499078109587189037427357364446014350604373623135874920853909289443965840737712920956763357198373874743697928391209712662152662900865002685052572538766641090797153964236232959539732469946292331902687242659624198093974760645384594826955812796217787120386860513844763530317313867292311039704801445567707921711208966268531132175496717630775116705042285164086882214372115447381914131190003409223791344800699005487799061947986626941021881160465086756090960157443849123506591542597697013365304183420346612144251967299165776878925065621537506588199989355661668737402651915699029454924458875085743149208580914855306486870614391547903240504341859150582542466173633776907688533114184798524073978536133327673542509529583115234887750144130571145149880949385924157731646851949595270936206397716778380573221854882700578498159100237922032579206075565795944735487243339409469121258593022181104342864952398527399153736213825227521672022335961674151472890301301590153309703022130883433188603423502449129336348062325036197616457921501144695152700462621930203121047136291721384079842536110766511119999796194792681455822135242036380059806752378364325111015418970041308491285756920927602648672388615678889463582801119019551221643724263228787350017478738155799532051186306679915247612390166032930868966770107502127367036782791171114466189962210816714500939270802273895311299348087243803445270575887586512413148425816413786422499563110910907554315266010055380942581023566488160576744125668712558611678478843864470674070982354887620464270687603928908464528366825819516358579099255471439439342467418317990754383446563826702510590468155266108785203345505234209701091332743077144267469049992005243123653624456625074283547521690930707236643872202933497115286484146314596912699532835426174896724251200179785612634713137158477742026542085944343948910168655232549119264559840212738341667037816051061577925837090078768810190446441799225709454249758087362181296296374604993458290468047667308694605700512839176529284375155826192693499644796606989167532188571808246190383060325267259490897870352823045615330003523941519946986266484406324732393526461249765401588423819794380111227348462580407662430842295581202308153207585076690831191235202320877560023202247983760835370208084252709007230965436960467870216969515256136518040212088348929904786550126485053966213576627045486040061490901270796460948508699907995464414428692463741779005604282944998731369269049570822322650403660892714306231908283888277685278027715758758833149914876276970489347727850798078482220342585343386365680128669542951866763962084629789019156169713044071173869822716219043186995604212267421148575490875759091464202215402160190201778762020874696983262588661007565702786434455947008859319294652116117813420431222182477859364396638182441036199048959228820547895217089637171607726272168973492369973827073258755313355923238968644376388206074999292250934619604251959724303159658998744356931203277741294962074277940088202973342213349495262122222186145666367613005692062267164057946500537312834721395998003812816771519618382046548081323865187168494224747987109150483683050579525925512554248531553226113592876296347568759863368366807710240987073187256930979146885328371224606306753032347706898122400581924252015194460437133778431836285681974189122556859866858557999322975248264595213903297408959435620223721875460921275295332834331233653405416176748215654691612013737947962622236292428065708003464311883262391533148183755068419104399047795080993567911766698999492689363735599841884506706882295451879851919421345053610156140222817066755905955648945658918059584989543754000948239097996489863752446702439003350213711618553587807119512135252270083131898662597587595623435615008072633056500026642598061458282666488689242201251731460259732146317669591984607433450072436779712500271941450043509699056936228055510325344725667873323612208132087232125064027288843561023134837361284506876799789414746736600101911946667040437591429553802546415669829972532584948275108837241348899107372158835332019585346498480652856548574483464949987313499012387965924944600802602252865500959438740743762357976005327739174721326867239408754984548836010338428374224701908725196044107610921065363166619699867320493570664364806374441657679154697699643221686216354935414112435345971018943505656069039871971819020318606504564717680274580640844060532212165904417540851463623338021647079906734960092601690955522728900490081514917742608739986300391608087640102728446646366849303596149804730097618839094365104210269823297746812940737139783364916891430670983894828604436370726104950389776309192686169627932833447548842693449890136050226957612593348435514278421024163757359320683429980324370538248653727545963535103218423407502284836760381893383361685205246420591168817556315921541640914270409106976072644207208594122894240044041058397990873291538424324433525058510867426812723046462218052325661598128363381170537301444671727555993911199977597711926807793933382865459667583407204333922407401605221939721291903992474093765935446859923048931668735540497545148581986106173616293954110243840357433390039385307614874515372798593386296606762695270595400693479572440372839255171790073151507729515569762143961424043456916901276680879219613237874054141830239458038710471821774448245955641750331225415445142438119279606336614689000377255967929498194720786224751621315822792755147687455633256034430859595418630944020471706821295012896175655860663256301498702066842899090095172912406597696323080631330509387932189825462540183292361943884079834911496620215380270950103588407882961828420091685154266169580598757758288812220489728293367106116976013069657414770438483712462561566151434307366684590620389591450354784580703008552249738448534889335107991951648192736517356023420425962700178841908852022382110354505032377361898454874581605367100552722795180494009970078369895852508595622527888572977630520048525210416778277309035130131732193190647257998003859978854464842238047121430111939856190257143647589805483310244423795305489056037280478339587883020091665043125113963221978171842099707290560983677429911367270266071719977903614666614695342094716213582091235317672720394770629065622519424396655571346993034266549132042420260972963091412391530630329767234979050987076946583219317435297721480120304481749248948275064557147909321166549845772651841791642270523389227530353809646749173015381136598180479892142680288147618700561931997833118335593841012379017287268132881743664454705286955068564893996994301567549457879546936785319221884053109384446679997723015029738168221751097335563541955342168219134745840688638715586241985552797915143762566189957325693448850001662093745951542264745696426693074481031202001483801991420073821531511055350605933634041988941712204434978510416950111374529998953255865778966823747086409647074176760216906145881431587850347640592634967192925562444309384671305316612012122740746551991790029590530128961686064865492563406368449544166024354637723449218462606395576392380339882447226077545278618172852340833591563027724076607500037223706373820776420960945234759191650410357446722171070856686318590366433995012162818866038822403394380294759272154181015360665118224933833869189065410846778083865491527773629786377429055155033903127907641971662811615751108887845431537453414625334458983143206226051600634708619460777610712610548574326418835924332624150970828701644817907782552376059242568809977479522445667273710486278432859112410228259181856952602057213455819068452248478380438118536661261858111144028739656969703689623686300796496893029504995426416728266823814593545418866116767786372599543645891308395029299246972423850510076121501798010585823232528982656987361739474929477442034750681095075713778551141606166052959628853268677780700187283938460676802449735598415597412731880201513410276875859046217857732747235308854578929389528957916627654708576918160905712137400819550987593959169335527620423124699267429356937509151492369727966640689339099196426946372708397662132734038291642271790425173530055290830532260114733792013319912092430984292584899278119192690360230154750878962327365246683112601478477624401218411081031943409423118921956322790518444941123877992741647020228786292669014176445590354222999398125419003595742540738619237242022708222816666275382364869272976162929824238969408677322568904858683854578708652932566059744234644344103472962264801359677256266139039635617688547614882206958406711404466222010415216569857322981409741342362926080409394115162501218716806298796605884716648131010354978682548462192785595952205027118124848583585021762471993591445725391373657867888955723771939900874678784856587366832784033368050380653403220073518327554110073737869769411636938460137006092264304454007800072829547479154743735797187392263524944064128536573403286941448775251024619336129326164572563750313155752025576278819464626678861117557233136033183332388237529573168353486990269933034790021009096386058069968540858911182751169129512227111435126326911724877606231129880778086326678039700206594256763098147877681217824902030980332522093166611529230572867690422359634284628511206720664412858336884225057018998407542131507637993421456780910681325781157780584360740474558506150504287709393881877901341423701545969725353270465129095809405645774477393454380454155700247216317722394567847329029899898233945323035844388485124030146615125521670424224084959873523734413766098446679433977410259953023340080002049256636311833633941057909379318255511124192769534948259030246086272267241497415603922137596749015916392390745593760388596147382810451298110267395437593298264768562185015788811018285773433755320596876352024426720540205075016782653207693760152266576904426086888156377381111037776384674060591478505515083007345089637379511793319602273525403414780777863044727418182852683002071602677723756159834554315555389457976478917968278137010302281157603753090641566065220575220456060184794225844806018043719362744402238442159594975218895532927516282516010380745564971167556515500914755803497446332435463452902488436189717720991259350079449587805632406203594185845632991600892985253777692131731229298972410982842564243331386956695468573977411571591671093569636740578188064571382555237991233630280203026127628939034887884548290565316580381622551401874056617768758676207188174761194795534116933357533069277815110037793223458891509692311269748030227705949226708829609192076489751888515716477234116079483243220781927290463748048210087161971813495622905297401889402788964872351250098936180668139144699285346206722596043280742761817571470819106658211045949946580447498531815019979555415284300215319075490715832950894463948102501615261450744134900218149067520884614750091957375228187340868355998638223794836445682171089917440886387478646261116546361365035830130450474125002328733909906056338106599888562960806557033022493083521045364386783382311963674950187417452950288403919723514676870907659437596463582945092801985213845474769617523599200924047298892984941993305032368051927360032384448397029220991794364406912144613978583127913782216152085511329182954728017911909239195839481949519091954029284670463293946865831232965857808344046243792803948550270207176741217247529040647396231662334119636003821554806941065721230526449400787150385042042742858290045700931837760091670488547296065914540362873721179635288904133483946188859974945333655480244510347979805779152244701010255846975253144253566105252268324650812239002669747131375932651165393910732338352991723545833769434009522822702687646741553050599714899976307442692165407489732094183323590717106912061447773299164942842876797255065261211442529350894835661178317995294183185461840032232999287918663639316306262680838085499139365036959358308949232824821806667525017254157972511184016369803452339458736059115000656321103444310186743938194180608165896707361009642653432994732118723500116618526416906447121874564952021399353290145954004450618305452912388112239409688415611560120787932718079899448744799935870243291624529063814134527629434182268241331231057190058487675553419088367744560471651143298531142798966845520482935365638177405924057226100627627559402152039572699455086448505885000385764712042623174283228053373962953308056110690345690481060462127443472679052046638307784466389052128476378894389736707666505333338980944483654243554439571335723762714407013879511987390783570960646965295887791186845271516762058167197757798781784825425862744694739281178193638002021955754789132345422886372031712819504238977474834057388621299920826602396901195968703744324525404597468244402145766115491424093249773561710012848848312030092625120804943965147671388866205481938412381516700210579223329330131588855868490415283059562018932351476627750086043749868681703593332439464097209381049305192221655517209798530465135000744432361905837920929254447055107562345260251618935830989595758172074883067336283317467250910433421595145284547925564837382104298931577602486333089512177780297654079417153737709304052633551059143347140933341884619723305416553037058100750073251398692110335453394221566718502188942937283824427685704484772993150317216328899877997129228605943188326918538856557074012710994014462312594651673519951516984912652427497305566459285436259268389221330577271899870968781347647123571096785245739437491270908296524941383764797537758696937584305456802166227580388475135392208355954737422986158052977235996052146159528915980292152476248329412065710202246788050955071242701964807321233814598328599931501098580971786918919039687415067517677980136358714018168963624739497648337025805603818908785193557746081242125482294336075330036865688339838523565968162443015636179837218697995868936927400580478742007440769291891836023802071942459536026733713511588182155982301193378797748763792448899185639575594199229337419314400588930765432451440286066244453852197480388294867195961180218049631030260921161196920116292077367832609962756628390681113672421124337595747612327720314906099260603379714479173232623666002868835834248491829582278641390962658796956512923392104671632696120763504951764821514087732290485594754619510256827467648854303467595913135280346695190424899141969963287711751986176555764664023319479055071973644299559662752983624343268162682337825489454189569025469128973372350661649866662318692780575172590606890119995333919884037894279335801106187227802940667207198027451393921464876829694817345380022020297265200571820970986206636446133417320724620661903204753389700503903358184948716235305256134074170042497112928824990049899298012904006513641200616414556365192324909339165844687923473112601255828567183762766913834587773702091186516372912781960535363674478244716430992069192557202391907020852677365545408928070223168443282102692038344776725963914595063054023453882722225147852180344986182899550282146991685732957686421840704270417669504958752619737091111239888653353844960165679300558677329250139113689216292696735625753805437122381871949817461200341261876239875216682471769157826342755722426639527976703311797046313549148673163294432116248416748710691375177881754607419981996523967246583043389204564390474552048062040297848711614187024116764783441278659080226363013062881812323992653077156970244303653323047767397771918130102093239439343400853139812462266124810571831035216141907233842137278192251492760809390540059041061209109672272701759990726703478792444995242540923843641190680275991767857200410559035688571932988767566848790775087641553737514812427085018476645800139496027090573245982146818446082219198473493854765820929547152963572006516821544903530688372869703461968670010605750336636230515354174660949631619623709778233489190644140446836591216304057919043097173696255314022407978802876463907023212153806433618597830835412765149876647195496511725471037261992049106480399482761748819436621791056475121811500869445803818500151486627427737230725909926755598305749422029411814030507912759844787090989803043695218767464705831786923242763357670518662292539463000927176245917427158207220478904966445324659672762624588275330843646021434845383266912024022820991184313474872921671079839529547555802360399236457358547579101544899811670981267209155107483113018867239972487924280332023665702040796348437881405146572844510322961636465827782132692875306962108329693864393196408423226970895846995251732146373708491214211652280831361886397666462628497429211915280592753826309641958115807760192805920371910623620822077519109679420361069340662200494337634169936817530019698801551796387027512105479083575346424488954626118277998980591071878009997736520146896884374674091091486295525670421207014073030322731713716558497475092336139557919192757676164116769232085717160482175385651299749127998705081059250832381627696184886291150788576578600396311184786369198864656866508002589278580562914475580124181350235907889053864260851105881871775471822577234040056139231163742624504159589777524189425558486371250516487708911586897572871273758411016294131080041121484814217504357961282648408448492135995544801449627426333952803520725000122859170168663602833874458267130839584825517810576486821922620842739295862602931636350627170646380584584251548457313937160891386673834772921191990461644579631283179789480660502395505062820490135312610101558632714258973001862919459496280057978601497926387297323094173871440729658636684433674245526753393255535390845467247603639899052153436813656785942035694824289864950531451048688376967427284672265274242571654620096913047247122462745473613825899089103369902008093938939252043151587196224688385614416140659435529624406608413754182045744667613752170723398666139814970316072384679266660873273358744482271784672105133836960515687791295628577221509407320139090820442848697901914715908896184057948114860399967071782874490003789078544871935431505321861872638058457494077455626578919149190672831497915076432263406670336714645590324373490165481552495498598169830899695572620857996082136944405194315674038129236692966468309790185034980057109812420927969648684373784035771609793259416818154078992248880749064702225746386710970972016242921041071099851568957281278972879662298678719831614806717195070883548870363534008866917043909186860878728420666766478579344669579773562025277695212279388452631126845225348115831292956366922663158143381658539340198294605503721074411348928111377268274994207029209755731013008447891904897146224294541730641672449835548624599195730110506608831270081743943010173842229276714318915118738975422816772378244488681961436829509692456492502012498025783566051945647223201967060425710630075428742099683342272659641701909298653081179284122668103780439101902189195906346466934206472625169770705658018678807363482179818786406783087858985108426143523098104699937389865220202177788535392380180394901796820122715929815954484796394178163689125552352429430839788202305910154290405581977487932740657184891519694193575497956680790914561680629931346150414065729951752887015870497457645676400774700337620952851663116325423621143308465826206397670541872440087601559191270865303471711988403136818179655061176089843504866530182063389266607611140786851357420534989182269545054993369752888361121477991248825301815083879029492812952168124878419500782253197984743396470165682766640572238333178074676979179590164557621207206039161222817688440548587863789654939749725797271382036757108641048231289889885552372743851763869106013037611397722324873295704702635273111882175026976579359444071766340535487214678021749350153565015254872905246798416390215166764803489179832500429639984454483754953659154870400000921027411285482931010497027719793261265156248385463577973739207317135031175745290577018985941045845498805297539833727965950488872587580064664356311502312605672905872469904436052901160277916301318032200604453975301318803386428544843653570421613705853637499562254406992456484467149447671966582060992814385824749484746470498174275472130701057658468993447755363679708884067945499797883797513174098278331671371213687057437643381801523571973706357323810938343049966410318622124189191765942825479148930425989593716516239171744670773120996391253315272568630887644783315568724264974767924754468624996054843990101828504858107590103513493198826246321567172643732358567968604789874896484534926671422903654313225445474118493892573336344231613134461582280989426857572608825330692756488240394360100605583587016812414527314877663138544265098204000375518636321710853543847601226387693287331978553786633766420075991116115238129593943319494904712706476607011081209145476583064753661847045257733483837969732704812937928935095755636285204135503417826689045144481925469542449549641088935883519651825545213985415943406143541654007902000661739770446297123081769223942572269829494597946586992133614520918991182119503747609894925144826185298348198703451989514536164486252965286960511992357665878001056184405599823432062088869025407127282432544890765628537055362641594988638085788297072575860380431130261174192653389076713282480163141972465889198867711647568994383887030433926340750380350424311777655419591860450456423194128483598486155974452559352837743198203769748888733859500492948642173595605526405485779603248327683219551444075530013143039105703143219467454571444237060460261381053959993459515652953164737285255913725589188839204416631312120604114761075954941023990305195624249869883603157607188718398632919390926917722400471674673914387601034288193528491335802027394437947109696099622713386128890062174168111589346865185355594967357625068388838231737180793949006320046129518577311283449362984483615779220151471777025289342182510770978940493755420929496034373974468054410389997689632962194841150119336988922505245449266406207229227731211730233813868231626787823669554355160092331057582457269322905065437055469238721898485727809891173752811493484799459501799503084042585105951881621937503284583347293690412503888759722652566191771220159235612227227140700591902500240362050796262165210524528592553127620968882829179464780947052497553015955830151617801882711049175498009011361015001422246517344825825510270271482027103338010614908977350403085871389118968819689854509498221319073468357332568117653899995379261429481679783686081236491803304239071967371175745733236066486220165431580604502212647214599778218287185299380348854047233785050561614305874578402022591581103294202985551935218996181381229985233431959447962136924621121897828830113982526735620700343799654714624960973655328365916588486298223144265244263975195159989315257627553131354287871507465447739058953798468589109098630837489024654722992898696962407471414146145154602285010390684263817955726066993998949867104256269409618932445526775716873595415156762527412034814782948969665318550808090702020557368103635819898237626296944843341268669743301224313551300038462368531505314290955912978184731092143407441007492910948125109217658523949042316337839832718761803768542036732784930822769523432382460029939911724055662454989479415762980165836129540092201830459017682013966136667248532789644549532653641501709462026627749366374909084074796390125677852178349665818577710534544498005543890828812569521867024191794261344107694758022296785516947973709655597836365102387507438810403553113665246995290719527561329506367699171230046345900980224249139189059422819287604158401332533338445342004943670259009539379270972719425932993163896312755363955633092103528104725216988786798342469101136298375712412482463846233517411533142690236916332367568449177750830433207105372299495700172245239493415577400543827176868529195138852166039603899290424081107206027596939182225324144996361795933651548125197003728763669234982922244901066262524168252345868896424974534583319646001023985396292388894571980056818606189563595829230060573363463576412039886231127116592769621388516400976357703492669568629345249948792388652351063857082483551222252343466228607916024240186664974737208185738465649171507112197389708352246284207452376355203721437557691554307732236294289992171014897351289996680784411821395887859763158634081678941809943827437400127828330445206690238276724698578618186495344115204555793821821062021245787466754461622253251661787806827172196264774297803660224941987895256070243674847481326894029507820163738768936940528764301512408761486267359886145748032662601191296256014135524669713247487736273038780279532774819750024544664584730497552259790332604688258167422985496698065309301971696781364807274999792374201697896233811404281560701807697963168546282229355951277163547305655204145776059362755063183542480715417702513935942784857737539837251499566141005618543388761174585810454793281141856130012146188179294188166107205341557789180318935216941912172842579705631300992388030290027111480548812677611177677763972286711068359053206803907537298371725071985990902335592179340948983620726903290904971071415495666330180907039328590515090739616493692097143981248577089668125892691406801610390652932988060559356559180948442001907317102143819229965516115949195542490097439010202191290099690562219410639523735684029637481824177401883208293794319832335944579386496154491446869637858145924136425267568591189401716194690531980608612547805422057278277966490743182843001345808301848784713765809267912293281603452395668995923947274586499424059946297193368544872105393372288575930912023286733634101561252337952828195717278030494817567094731471445616839905956502802827219516176357538886379450683558666559726681955690863205695278247609739491918169017470316813814143059827266386006370942295519717680466233977729873220692344284021179729131362495330926206977039884956348270322668417753157952220006240957658632377479335325924599768283237786963922255767229817878321280796589709610097924100293405043290002504198481353096015207575247671565099544980803705933029675714623376768320625513902120342661358244031568546974386257353442422054804065228323761021360089381705221317960459701269106551660442575898945353922734417143570679843303914025943091955640950681268872350385863385017288574118695785031661628355349056143851231662831903216408822170321827677901019250820037953043410227158501970595005172456889203829690769070018347553022434856251241842151493629533805054078091343782016154628942391514854147546873104914963836741681040504955844054765538801161775559295960251958984479685484428162389679984499868320287848300409802712697786847796613090952232440470212118398733674570069636133897450549778710542803050278154018667499167684655363111788387673690289921755621436635970301902079512180262552619995541024627772973316619545016866912471940790918828300315458216373285453281628380827431936268419408923793963509721768743795944183250995819096234486811203505826900681970411328984320465102902072303251916236427453145128926060033816369632249976565723107808117242047572775785353876169395137074631580597944871669129366350537101236825658162423965078429069083890900571802173558494916897593694858500188614291775030357632325010987571632383079272625901514769508538471317779187205586335924370700369073101749570539860306380177547468646933312417883738129579670965601339715284963013904871647890579860181395711331739571172397701207411515815120866995782632256739470738948663121664702842486225800942238944523044609458500243777979327709052114000237558802141084770237934777784277993935624454955039731910631217424240143952319164837828688506522815838407239148788263217970289267236768434423462551960113433799197203468461942728936869923121717597522549200064651369135938532077841992799568410095470309655220564680138099699054594599898363637586210662961985559333323211408457491517012218006783388093629380824885301523261091265736309606759615940290955981409029259987931269862944725231757227477428529610942090670600434573653737988328171916792313673543357425726167720547853480997811726139068831719415639961976098751717807506760453569464794036090578713968948153030455101661967952228890193452168038997526026574214217782098805396260918402647392759452170445535461178601857336976854094214965747752770334793501869341192497132028994791995757249267696076749865854389137125485129052595034216332739572201170185714048156662544214488826994011151798925578865058513127226642442760090081349865813858901458825610454753295538091284568364714097377367807984024570249543922387882798826680958444004718351492735843559337024196035474430061998299862640447770799950207598138903682380813895422431472813545285837373449535659513496967634469682708347636970122728805843305648379785421446781822457414221094129831704729962986958889362344754596333866668695896497442684682091439929781271103600709751320319135043301401433314610074333089499339801055467169408831122003971336636814714173872021468197878536112245562921141911728898392410833345086923776651006244699801897763653410959148401517825148133537090393779914725302826465937849884472186404066587235752498545465658601363429551976195174553369291291722779177020454755863246897928640999905580072278343330141002983302723162660174555602238155441671377972942118205759028891711475958837088637500145352819079059427197927276133140159849930343828493456558286946755044645042107879410396501866610714448272488154778354806021027286103750094321938409644572344214836844135788903963033394611752497226031818782521901693759712033615880237563966316302720385584324424080742066775414159563704009756418868285429569155331728922706991198529438433105454284915830256996720490708148680815138889806533706346732409605981989453800602060944682845179895849928133711582710611425573546231500279733103148142397435977443978819439249706308832356603984766408701137288162911335627145159314508708353866215210607915165973992518306016623698402483118334592717540017908176727985932730827191039822555958860361213469822402423070331017024216818345277287462361271757644289860625994675234178560841015364258243749329766928368550824863274129376320458793152424766436813988131515606890274260996039368576542246914044933862201710264648225997721626769596167568208305835586478449155582269130625744998078374707964155235745654829910321850973486901144211184921983426764589003989055354923833801212321611927845093101437632176093413481164071849956915671883006740929196504795842816939962300436818928378273073614367480096954814947716374387906006919273737809681059313532858833465301088102170501984534118803791268635223027109016784946414874562289661897041529018812679706511738836393575739409311287482108003659503732728007165246940999626586684721348634842365184990067264733484338366470468126933658800045825201369297061186257428871600476351181523506772716450126772248837350721949591389927583048487427890028843485307503511809836745587514699322289046126029556689260332068234978352086873373760535401152478283649293499558119450201971201319160233098116684496091365826345941993051098341022206561249540131132430509087675110440384608128586898560305053525733964434582502643811803228167798843868729037487555569176249238628307459637998378979789470283221267059970253086764841420410674706661931763031371625473433292470134280084151472633414033966770579159028465895036852890631005193183540165712295465504842624122294500979189079797317788991234676465396747003654952871015293184480748855966223388675034606161862377687412013656423962422482138594729036211171287848760367997832483144388324915294735381167502391075377517957379069687101911181428986884883091046167440419335731907747532464910899478181160103123622787982888208771575192790231281080753555886336118170675411679733139621720590811667271437246948277690552557510359276345141223270211071763225117500980592641116791991699181800741129379039063764729678119620855457673223649544348239270922695445274468600899439713027298539239029343380487464473837301318801770713131053373035469382360142503192423211812361979060593497029838923431327486446343244084378922303567362804790976906098425671906446797381820768348248946452501434305164988379413098382869908109911057470960489608515192299204532066008561395594409356040535390237353132296558270650054639492005585145352505390653802744132851801836126442270911256337503559043974602581303151674344748197281321463556315734366593777331458109289714577644542429086726341755298404707652912218787177153664818874634516466413993260944103853697864549395738414116706663767114668977219721623285386010082691515194962093656820799186298601679459211612254994966671424298309324701719558075219580595299563124340531247949853677985974584576953128729502594790339610067749122675570643975603307194429070444629508346931868795208226687997395571659745158671597134150393247628773604378144782259779128767250115172445510595521596509134368400204374399049052834893444824542719839932797773288292161477202889670392171347255598466670256297830300989055769952060608363824454105826192113970572409446805389238428261920716834392470338640589725174427725825698369322488350573911787188585280483649872860591732219838194447412945820294934075497209208117603842830731766287988356257185458992724709064046150140132348265778480289581999709287962870210087911162829241775361092519805768586548802098570558289736615969557661834630136491558168142229923190166004560931746991788260393404001292350611577496196841885253327747762330106806857917244135190244034845568601324461800860377366694536180355299377538748500661896094918921332231104778961464804970935408575488491405250416522595711327002911244598233209746547273473536892408377986786473025796991496333578193978367807524613982791598240005653904263673362867295968664274090771759471430706529459955815174825493114483280720112858533120888177783890668560172567512411692130300981301018052362389753992152282526434814461348771848451881807764981483000093059323614451770381378176660051409149313598067791700415334712570535095530653234399660994889991151319818119959475065316799654806336247951135932164429246040258171467119995167115782909155616606865523083637812676796133005027018393164562660889813504292523132316044655243932133196258959491905591399968103579964363514012897987123069392621659467055662382175777951895921804245620112369140356473248959950967832126546159003958766328924423354553593453929030565596188868742937593536614361790365988051606838967566072017545909475371235637792975676468304411893826708489078517673326171366599288695816745304669453116851036555715805345660426737363650145720187588140272290056898746419102299576164727935950655885685764093021943573573092482630939880458342797884201738505679898205868972144015274057721650837951099594299143569002252707014617363503200259775010221590340293649890193319226838943619664524481337737463821670900478400784121188843659798250855137561927452554042033705755773764852395672926745270635300507214552189370330720687808294245802686164551011386252527455400900656316266146052538073540988667461708068443606318664083083218171586927505845950698539884505486280338666235073460206536530031976473499976302908743552964453859283733849178020931404928799681933172972336580419846421950029716865148789517870731663666425302638524787135097684526824819937447316718872016904828961799204597864064718031269501210034877785301759354709452026993305385287318187071849251699708300318016652318727877664482956642931345843999169132390931312842056957916553810090575256962469850312032578102134909118573600960995627569254341945010595943381342380334906362959061085396778745348084378741267214266859041990460335427395352589343792112391673564906279756521465942588509266694531422215781683038077026072927276265284752537719947338610516878101362064825629479917117392850102269617096822529123032521115956653623642255985811510728950485431767327356710800374049358448592819522817959638637204991660154956045870370765260512929286557573843853534403006085947791876676998064870088583235300190900233369759100646681882507407101462092886849952899816818684562039845341348468743362976124649487997615162857291958333494105932035736680687030179383126742042765162961595770736225042830345820250262736894620384056330814593309589137989415041582683526940170794375340995147903329115782282118125442705220865142048308637705619099390172701502409493030747702349563210387065245229617370880551192140077602582785188144003610372231028047173749414445949826910429505393178284382096247516485933197142647421429824846847716978851312211433692418316446222243692465161287744265174217214104418844349436054454082344708812057610985073191281753489723340662723202383756859594522033296083797065369326072629978705975500396318987960612714746839573042809691373828651324670107062013002542918006182526313625352683471897120591071178255428866825728525847648143422528727796040042972196442482632033629251104067522372764081405085729137449618565242295677099572304285919128668647622367875538315126302527366706182307151032259072875896371046979236359709286791491051674404149042931260541272053400369951559828018295862644560958633149373654673144767845717840401997122131031881898428662311351311511945539841203887101521995290722219414796047639997034920288275107720690503875369306503152384710501169003175726612102133862957717520894046410993637341465960728440236175093815025227831749508266065953765043912640773417965445138688680464219454214322040190449816330162279483024714860724330090511829308423339635495102733791630919637509085917601596681422364959165386066514785206907921317968507586939411112647779164975762155530161904530563846734056027520194550537418816529547015948689758328214859459417867711425264536830907765920347766362589905553572400345924646531622940224552711632554852000229203920744214798458934842284782471599272973013365879916219726733365363274626176137125242772349808051645851013752383793160067496351327721650242940641775334411334046601992565914041791075916280722459268089708898890891618997790838333098805781943853989445001334212430939658647559277031371929308912841775959522970813717915684536903536270041710937734681608214707887184253208008770027554968750048808358427985415032769805962460256056122968052990104906726531731521540869092330910205742634078598450765548602599233016191660547836168202658205948047063698668575824300443621698349314726194721247579296175809351528537829083774528305358177144015183101115437677665535414016324738560473077225216555297870872311828231753481376055990054958245154185594583346761452911138003813768196230901489306990832557957625266159608726110166151215739648696817333708205957670165313516031750761608885427475355685174565049080637175427054591210245413115975469092196327747077584359125425147729587753649675605374146146149683259352744769376951464949568269445711195277299299143908037972692412848948878139890564768240059151176830772659604784867626253977095407336697832140417456712924752741144319443771978616007997120356345292302368322923503350173364310212381614832314455098849840146642259290392952808375085736354617602435167377991918577570054715198292277586821368033086851539712102354116147553045956169856276945316957034707150726556347582601298411582922955880211941205441875823765266992328138135102439034135384705657784960721966562385128949740275786915108810789573984854237345405248083782149261306850571616465459411275714702926044383940682775824745878829218756800648353242316760448761032506606193787380707168067360737852806459715801565136358012015068143248869984320237268780443416793640292280149731847200452182475722854719814604130958842106335852598977146323909970711860006823583866453452679189335353825324225121507037084510239409330284219696134816622892810237800051641425790194587517454379459578730317812261735096914175506595180695035547877335666780931546120281589280272739562010154714236590072376815493753518834542438276717657207239947469617710634380735987568451594371321641666513267371702148326877127479748868512535065458317363051393918280294789333275899263502057227150064092152651974062587081277448320093126307943626907873581126475701164419296294589751687817920260343374854475075087362371657796234651938989707585186718585494688410055004787038495838295457377541206115664940899608918821929521059351771854356613657466111119784644264869952406593743347035290203584407245897544364858831780218881943464641447960215162853914061166361298900551888660949888450102137560062637459501174635024736884516522846995061551404825992277364760395941716873531468897648115678810331221222726875746898264265870571108158119325284560639023326989718846417007632294352820640097473841776724176342552930583214039150023159564043832631506989813905436214994526794881163533515450919291956570946196699889309805307171601765326679345639794938361377060056284272170992898620395317711624068060853386285385208960963813851316060315576227790712833755388423208116081686908375121236739655968069190973760773757368163483688051415371091142754915901044958475962573878018548468002269364590432404909682728054118621973016260812318896589980631547235824454499198196048023771183251831801179213084783546790292805307520612817234002898831750792983271377741237363166789952321066642697018890916000946723255486056283631142977638243835794607065004961030137878175506805382958329857692614904953255012428465217359307650745914604117084664581622165263275885598183429235029889229116492696906227433131130916503012118332065697163833497424132489742282645356442674110516238442985655711632062127899330715161971271983873857416068908817659224948036039265519827746463932656225780869367609062538537205904352362921430657948295279560642997928482886100995810452400911017548401719866260330048796397049564833271110136226532599759804792135244243590701895772842643179538232441518647973236527048341617919695075416603907121648229850518659146289974464997823471514238402900684593521066097790043661689604014687426598794321356748154353324954018381491041461999520141274431528670402633715516045227964243506910956321727225569220859587885254111403209929910429074671120014647877759870093057030477363717217880776539743881802673060577272484892277956127695344413310784402381147057912986592366711696776757533320425948617508037071059644672876576115614154646104654744359334958845476511630577982294558611191620560600405347225957656864636595977369307561785932912240675072701284239703724698731867260693055996788020568422532605851016420212531349899757607602047739116070322718638308177611817781390587832924178088110769298054122266985203933036922297888938164153368176794732330866127653696166943943646555623032281718797184385615890017047016131804799955500343307281509539529712635040985339586722814936540489984155658877841267821701744383966866673048851538089069298087638688200332542533996249354803109086603608531603070326996390035351741619238032358771612684454278362668757074349546367538104204405957575801261103148861297233824566536009286970235002953057643275954224559742534983393408351801452917683300469749808051563997167196763487365821809556577424524191339294383368342987769586521079786909698655662558352338663976628388503035582823620169228162296498023719429099550930849203908207605702039808340224894974862507236146255397384579297505010567658343847546622409773090400620374147645319374211936256199861035922280138385959964441873323700016692247578017282943590675852153643627604979254366554363013372605952352206047077703930963777648229408681695602850311819904353501240463154461569158464561294305985264083694601559445916931792459528635824805486668596246516516561309527868165592814426868692795934172933180025596473593930934516788495613520968948699678621996503385026348181287828839974259607567259110686244242427810742779570023368150827329383128255285431471372041025658589181346391230904910103849102952503493740057875206181591747741470409780182324221183524276876034709064510383182889100102340829892469537424637103116429591361077174041117578100245545409328156466739675929148564679932580869867468090753444997705728534312421606311136382651539874442696863612062691789577967767215396997418579516336322488022725239525483817924274161948083323360134389516499753431598986404149071125155946064366321169778560397625941223045162669547213525700714429069079968859325159710916639245758204998004508883474292365746618883192185899634212583382466969173876804108576154469095363003397284011427059709988232015281408566999455651758046710966515815065635542966269418693922201838860384296856192046900299698558900960138705352737393719750967576156882885425500289335182164813482039472193960106809605299073718926716883074307593752125394899495896524724116937339557876727922081920131231146073832347869916589040959716004690265903344537813722338511350233862262788862622987590328680442551240887481853278437152484814214254994142583011758599612287850990849076130018645125026254997612318846177111454781438957167100694968925839766261694391309706371889377332951824950797818280935826161795039398032720408771279150367425665426769349495121961833741729375792168437522493387335072289252298741236755649610218730678972380535578237081215402455008402926280559069903684319015180450082836648906329562463489105526833687094287113422257142488160763940642623897302976733871135772713342405545319086904770814020073851936698617613492782073064726638980039771166674983614002828350753383718261622856497920830023030749231707032778941450225698724637381722064039979943691881410298410396278371994933513050737362565607050083454800964433156276632419895882767494332249981045382897789451480173615231324451787544765784836963569666091525089836234539131808181844305637909171667824501340575411605475412787544960773157795313009605250558108445538136735890323582324952492440856114752380724433006957856613075656592024048812117154347219199604595168366495807288594136071398480501734016784034690019690647315773684137142011294324724481383526956221078973023864930888316656055068721570651418466632865653105936540557657585934853162407240216606081100050611983503915336653159952874759879796902913134733674583033267434195761243500845185852790131990473226871013654750593766589204703670346160230189442147098223754731346995689844434391082427256965010270413085668069612108631112327469167303498336831144381381959826382269436597251163890550243402907461981405296677276167639255340581820155665577898795211902122606063370372387631798257512140931103963580685097445523851008096921528870520667315866011923446111154050486352870154881167302000771936105572444280216753772604908033772983373003068329105912517490222194198787137904053014127596173380497903632257911623730810393173983227085858579213561427391243260890414810922216933043457378351984928415078713882975928218494729229519244604071892547521734435748935310607486605201676113513188573676242877212970476155873434439785319764479235551246100209482844277785948323956756128227743689197548872024311876130617802569101387581629099529272775396585867639370952587342917965686195325143946782510230977994997350163331612827294233501451681889914983495255583562920043602595840859645607944041018145409795427464442845528415271668954006037571994030421666787618087620625840483308173704210978293842516812986547123175345175451815887371160609469867051943501919612755502700638421158136416466365090796665220710775795166978007979597291996388940480015065212461968399381109926721290571529081448122466934804358606300345504530712650827883965077302623355553606508473908961983212838968381675894684521303790597513030994884653422580813035645037924499356584821982259173417185378063415341450720001339858486159984247001516892610909626299753314132702382841017681025745454947558844226159832730770249075237485646965732628004404484436453573485283942911768192581407874200832726494361691867860792942020035112909346187853368804936164934539925548409703227682047643536537938860467651094432393067712479304460115890567293908639205329591353762834733413534569998740749681652398322075738695408098371827179538468119298846434284862143176573018685946152830102797155924420922630189678467043799414573338042766987672262318435662397418439248730899360678048646582979284441112085661364491857450604007285491881684565460033687365768599333731732620711772334344804277797893404669395089252494515552354854006005085356501387029149289456903099720528622626741726509380763616187656099698538754891211619592881703393251345398000028244086537439937589010707685793281568367666998917685608179155203598695391441520095112276743291924811567035059538561273145267089656942280620635984576624501326421626869581466148147526396537460163774149901215645885951237753029862301921007038654495829877732880318445078227418969753689220705138158360282167838746281964788203411664844646052265012127871055068663133935718886395831294926303946022455608261407940589725470647696852608175675402622539646544399987408970006242020431703062773557425537280551016063592268324050270916914290073461991659444218009075157860366269725949268846494123237376985580685567391307584374437470652539376644201457033484082720144410292494261678450363972553946620904412011081934066218380887764784035036423460497342256018563892518832337330224247374141535293577798350546652160874778817811988952857690044415675972806272745580598344356489701912717928283313548192353494886712652141388232045067188349803257748867485895840228902466929936628466899491395445453157515888262401444282723347891345200264893913748879653118156750974073363097762328154067605875928789307465509247633265369005416251427596265261805884372851774478286877866112209367839196451350951596844650264684357777869570414412322682995702541326674346904336551618730051230312697348067763893992369824364320484049027820188269791482864447845379328174092718693021677867546462995795615593792973250952096989874407515249039000591102208101923976612471546856015777378405334619005989760695439984258200629959800443843243698025332813874565771162148883166436742221837152471371535661330552766144338951395041276936985375372320202043580010883828804112008711415668984691843253233942721718637068265996212765042337942503006909490536257870005082140274296804773988097872714479725129061396035019397577438251294454245210851016546409963367346761214388238018458274949700337522802147251847632900221981175692517930691238000580724015412809078590405463312223546365089453413680888339134085631920471063660728860189815050468124543597503048119677193249704520072697750402626831434066665651671526279293478578442539383443523686303435624821847605785821554168858284242786596920175961194723845673485889793916062630624679052423691502376393019750443282927237775863267672232796944202827128916158523419215547071432034096995475214801640205282856405342219412368488881219679003493061816756560260800998751689396521977861556763537517586356532204528741840627711414538388276797803566142352654798861935329322866496999273581873504165544190466916806119559987534869839842811133617221019658390501625269514331154997355257779904870396493305820558292458450266656558934090428513918214320442604106132301865768899003986509022343116430057942964955526293093754328912027566459151483603716852068561051622898882916451193036146053428683975494090680470126846216132177901195656464833726475490777592483792893565433074894606808385059534979880121154893456024976377348249212080797948421111228190749766551195279633564980125667955593561138158287118103231636950296550388313635310620831252195251823073298338910344588995336367775042869280403163029112052657056912728986763853629391312502254754153149220237713420969953180529417009998330632494648237095705246161669271058568493844348439649222418233241732259554454681745793014303084979204521195163981800025034698493365094879572311988103064295204894126999070193304254387670740771851889007507878874069839532551688277786514614732964937415945855026286241090137774352111120217990054917930048041225249345388340412303112878798824481188845580635096127428040091040634244720166792744797314733205503429053693822365818822820555328019333475519508499024599211121118243363824388655076102527092399495878599447427416854944563261673168195976280570873379223708659358155073542440015506886487048552282322534624121848711347478925429305251416908999099368862193454116462890941449737339353523286630846237688684469894516722327632203691431604630962571167502340314741191358233533118875567088980275306511792756303429026430414441129695652541748090129360252852403289283077995679668166031972405274519212567251039891675792908291067807629335872915563646766112409698399152547697434965931973304462933385122030297410702637358505955093435277081479690428572606353870853311803494705561127155917038537804546346560335822135844863326123379727377859832459537828795735120556672149057125399983158273739833223277794719873247494854797079108705728382120009864382552004524431188021017628686063280564945458306987011943305915574790488724457923691993221025832684614844979387630962934669453660612617449810513877739680718713766742186560828283955706528269819026788053879889616918110742437106376045501758512154382403209630354388087938471463395201015751490294963696705603190443286591959313150838304230623891484328705109648121773924856406939331151238555420609724326016145128312115264237952745671136754725586289719834389163535623591710309255148865247734860952965678147440430231370624909012444753312217656816567768819955903830582092501979601989470136788943656405295417469379700664964477847895848491691952600421656644927792352801949316621949827375620266253001714542243329626927348465886905195261936212343456542033866533624490464771647643446467574483983486551169034937249270876698879278458212530964404293574810603381260831287965162007687543996024598347166737414807523207164711277058868118944814781632592386983353875768821894206294875819192448729264948818197233284988968800619497655705243015379997640234851914589888518655309982964078648848993185242247402235717136296084934065254334365537665938774498390218944698469265156132614791647891056714776284729521786210683236379454962026779769489489517994476702493332359098344319325608467547066468480611869759320179426732851006405609693775036569527044837028978002126964208438056208981123720320484558338247421175080319262671138110782604283342859360937386268031572511786619507490736157400751119346800338362031547031304552810750614820720552502651296871223459361270499693346941844115685668595260029621804717463603062654408313625204657368494249635744315217116173160087883079071123078940970796360495227558333973995473872981481418131838462255445363286042737308548960354265425650786514139789376759409807802609367397653370754739337719370714134448869603466723482133095713230848770001615776621247094192678458847321439909387770446076376636527435820363256004990290234766025069487427444381239489671881287943267420275980221177466991827455719535156739939662398133306393084524076885003313265156631527668379136138736370694185039410945138989889731506030209132463261223011574917183618470134239687935273518684287032392341344029774069992962535269176796137963887463205131974862705172524255930590982921333497010948213939430769035638303705535884866891399254621794968353924148334629764244310490649788562699997507756337557460870704069600835769518878384657711676811209267309696459382036553125793193253584189828133975602373483874305897460113753002339706422787836871780007745968654024602445528703297413238798447561718069252490362030465606733224006082865306806653568727393456107024858639321993689435402714443990385135982272374261648344447951988546800543818143108110650826494291674415610267752199079255900372538771829625855222407200498760359529337946873531746368323434721348739241077016421589458839111941890337357009438356541039731105923297925523354058585573502460050397154006332758321519766171925406255651235913737685477780365825981798840546062488669891402195497173960273644790261974279456615479774759502046303435070000909049909954427851300760178204358420134414239934329887058663196496662829142354665327240828584893573530406234344766538416477300155686312760784561983172189071895129594994331537267018511062850889365769510652774649051293596040769342879624465778466322271577659800768347677698890505855832481177605639386887345579715330539420624115417460966292382416555025269908561340155369363225871528424695654930572000166152998433641018170411629568587124447523030168857435636421561082310631401496359062826342528578782224035867827315271921068037156144949371661574293036804004332545130770721256671806175696034205488868203305811682432261002263434160914001508982506705816085842354157674048955628300263879136105401785154816652963759931285186197623984393976149864872287635276202237220950952492165520272933181211975048748939981436592427793633385618750763082918131526245595972099079527798303855852060226684224175645168801284297925508132336935190736210001598068864590972154242441585078403031358431923987506663582793495205334694601606599061183097249678173403521245529459017622679179967211347869321490625919910101375406432497261261710906084143478317686046111687196522754237496884013777609383771339828407904896137032961456127709644815658686765142513526872844849993755453350766009141071408045339068230673499441507271846779897288105111123290344100404824780198331888569438251968943976890895634964677745051039495702045364713333597319673642197904936828794765440873075546834184755591201210618268389534662199602333751159064992164183228562781788013611375618102867028339458045921764282908020111601052982988745762776204277974012771570009665376309842852353861773423556901853265780211718782124455303517505460206128316299005785085898267633965806335820571902921538557239489353037409987738446215597033430495942705776701894394130838975966115229023163693486976249043633810302923189188147357540570317230194393488977865616863523922728640978215694103852412921793326442006011973194609606345033673118513535357429572528812698217901586533409308291842416516959099946280060715602404261821383296488720693215449810517044181367639353405893574553588398753703324558661314864207307316456369149547049366246498992545173356335165265872250733967306661825590449570813797851892321649043818168874736717762239036270280408796646595716145593557553188101246640197059290891088436540413990383040116448877071707336935513015491047017692641979359295860360416945205174344960519081682546327808033228222298096477741084960189760907913581834919289062578728483640110829685471927676802726511428691935000500775606829077116599207999880404256042206853960915161870621743520445012175708414382389008940514694017660815592567849200969727450338986659413410670373026114693184966673858759693402201353468300721112615130414741511017339919471772075426296017036008043408731852172074905798581854184786053800067969522162308670622877974880608775025797701052193612352050367834608915928024573746319430867372244641770381548717221175127663278884336673849949262949057044315892595684417022928103191879637106784317550827837291928323135589854944332895867013002264906580415065925809530323032562754761209838724438159977880092460217160247479383975926737404731660528666805806540843428028056398131403420442259917961339516874387763991044895120789016619058609213865607335735975718184742380600731265027382750398909746707514587744373545412106397914017021578976785774547910523436431871009156942531806333696053565670721240669892187513703989288166656048271511158339453173143291881871788419201858415568765785793675313348643300549147617164394934670607749450449117888540146402339855180484248686002475929193684508941441374766220951455455177058219369808688509319795505247024927457369546122194454582189971575274361050046720852153465491505035652191090946412181400717336587132997313037408265529440928121277420944112834811222851682585827156038965937074828860649192884297574374209680724697603107261451729220270149613826544066572984518488819470642590378207043562362287305969334088093297154742385820165587867425987053655385268226798846160560372489049734218366519981869569995372840859913814522260402596250642402773031590922581122599612878524423630122499868691502304800756546883909207557094250602949528307936242298766798238513463324605353517776913384190330538943178717801584533194201859251606786003564159130670831066673546659974216569484050011084325658344211388153084515125581452831086530632728314868564463955260588265734847615650106798232757299941615629703536835910945933085203175503739708738694897618543016479372695816481561770225000350213155863128962270548249934569993966434860952661392324451055515827393786990770709983735947041223380702724663172757391497958194461117946261432291182722433762086701812342755880597031334664084154087788514462597885117879872124263303869663099939513777268049433350874671493696101290025397957975305482387840737875638012520932017346424970102418409030996262001806532223369864418744256545802467193881782486112583999812589117676732044103559941597467187237495240668728343390163386886584820322807666163400456554630310789133499976594132449410864107349479127232876553286805665917394290444730686526920305480047778446156324951817192009930353468759682604971334990122203315358089291558338284279367474718867906040276098834058176295985041022920587759647891112535124539629349539020899997072890956946515557356749201620549871419016683159864393406932964509276146649691151642739821252577305455824196392408870753418275011110772225125971536924720932997894095588005265995046420959044395432639054840260702069634454096019934860922145481985585101182310759963957848105420282474297261043294521896789515397073509591065252070329126529236963030084143268341600870032948365440748589365021402200552557510963719752120955817014967686869411324294138340052425566670573792585950787276269427715415418347430531356299553562555652435327294385391630289045972744927842108227502925683122280858161422373589480422916398797048919976570208837129994224327402904539685604200560093493555637203941583747586172537136110930969018031923933561763470272247907349296350136284114042117311089991637044281467105447583395241829126609652409042491740037076512955274871385209218166871711835574539043701875751503904065024858444219306741531290802501869621141176777774467681798427851392858915798767220322199466550253387275292794900162524240796455426361177376736823598606675682315478095686899593725494100607788689631991978622330570701856270620215186304742628821542271008441166013643207271363233106644101988908472702437072863846394283093037884019788298404598739584255290964393579954857420967380771284388675111106943612691205630050735236325961296657948478135380046947794734079239526691646379945213760754870699950079642043626023917143422782720114408933620470342124956869869538317722286346296255850662757315849597918693596847707781928469966900674892481732145098330948212331335638801662575737784168918823029451680729322205538717876435952232309175812501067270665529941502956331650299778991076134105569978710592707024069965933700567896831635851725923953695893505833282842731150099641851857577632580570739444758900530260587747206976723091244456158713445553137472706437825797679026629457864157023322959822077106746520298281310506432359317241584075054152784815910098780710409291441937133219181271361700424901415247067762615227918939011864992113380683987159295960817732732877518332592145438463109611774414058428680505781887157198595163778138566206736825792665473718710547677584209525410992420450469916042581994598429238556706856932700261891816377697093962960205632696266864624914507358269834312629874076639452716946932727830919469980746944038098922436117815945413155871665037205830550280016405371235272701195831479050714468888249817669874237316784243099698375989190137297879202506273931810314775278039073683770105124862270663365036400960855104435345056558087738666682977568683244010991289641176385156165934179201443806640309720489739214781364337035323426401687676945937594786420341944952553854591938293986335983540714170143907208358312125275494026883427916776280328766720420761508461182693501506435873311448738223171960825500991725972868268541431993412672367485118326089464246856273452214848420574336283421474394915410195952924030405873700646836552516902463273156193801957691762157830514528275852705651309104514910298239854814888799139232578843723338545722047057037762177446766390025163725283529998435065192237279898712747940190884567707223921588324200688500246855420041126688442720193280584628899729822521718866219498530366487596126095130382955178936606539068409200527247118983021968644649861242309303374876297767291408001193566984633330927446546942143669059715291540432725801384585266279726609157649399300449422022906474705195436150355700229582023607929658221203550378085118658265251847410880533155388602009904096922775140068975643559560845553473156389688829466335755169580131273736082415315643454065428578680179058166307580795716362003551827018213904269255604874295528324438242012075383248526776025911375769086105440701877983913364966633905356201522414698885026195961749988508339476494157152820983317563655884769121113652130524016608886596168098663001174304581049983817687766654750844283467064338263948365906027212764997792505059041823868058118948349323624683728425353706554647391301131880652804397219727986469004383162238867714246976664670179397188834749980602393707927490627144043229537407437928993021716121048879230364066682020832810424048860207335813525539857113127314406620886270651932896103307758547294722363003357963963120308487968142360759214584518637666232668045802200094082437700454583794704525174194899613951515019776576836795932085414848604835549836941457734462098974365640150836207351965372853165496841322101128544973089403983650881070243692403601089276609773684524424574446396784362008293826737235974697807560333066310825566690080676598732908006887132972347116476387847143551862396753177708382220957221656145551149924465912735319136746903360060280403971148384646221260163045104169802869157107878154269008204555333206497070157120156240060538976670389081802496278128274274586396879245228532461388339129232523314005373583262403078488555547033146772807471479267635320430625180849012901800565323327303302023128711156918813374612700521828234385188661071841353859822422514988339326502611298420770250617759052404252756665231240983122459582006026581434916737393197126801051187637105705865910593883954056888626820273731399845046523893974413150316762219775382250829303363653061686182059133189601251236900061608293113972115683415330935645493101717712768887262510121424301000768736375489047605968021582380987402891650516902730535988483655465566812157792717433000319014510981989353110277305886925328137795809251317140300768470195560935578588305972799599964647060882940767117416912776019132282808564720892532503422499169341906143560847994992704535559784560952214360254355565183165648106636961482962987609785856878461329306671931031601199203973684734704330493296386852687197689924419146620700670222446040519129426320950803944029638033879861015339780581125967303967986386124896587424661693079831421420484082063497150588105850092211648092106930250001413631409179021203341046397227563181792697111286390988907207306539284568415803163417905751067744674356066762909067309477031080297783535022184607201355384675872554115287638186032309022306840870222758210140523177170002512914687683912336278103214114044984341413122117634594757190235018840548278452171807321218122647253319896814945269907216648294766357855529269492001143490734530877058123010042940618740673298842006211172482387470484710224983928340435901583029300856844173203560890415327223978905148630999267374789857389500225273653772532832634704817190329578797922017175347008389896940413023609768790442840337616017500012706981347724026863661465763150282726395187045797173422518167962902034830320029006434203534547232028972651680582523001735967229153473688164689000622778364749121387557629760967990779732891559765760139790662573706119901239223159725153104068912592935907668708459167019349935196586870103283332812436099234154714925181103716678015946721206071989793452706065696984873605198086452925292816222926560370743496505636922170172594148578825349229900219855664182056220314927011296171336342920607436893625218033020619229814536004693564984306145832431424034272040055759920819749874710743372260405652563779724393197364402864610467113289710668656410569021671191309689242287958404066956060994841225440296679377462990917903954579570712143553426414338975281488919780445441149944590746806309537654084531644333690291872985137046035964515729068149285722441023130032766529759993146369109091910578543083066034692912814366397400924649888452889303759895894807737807932882282312129842072462007719444072587846326935991314523752787869189673640064773360973453883718969252357771208009685221617531520875813606237763535426492891915810948888094881434367386166571878172807117919174240396797152339494497455957218748650256045206852357003528829505635887969805599300233312757682722615007730093439409907819173549710237016784922301972489159603935491355887041960906170835500212673729153778169775701372891717369999761380050708729437684524764917206130460429047864951306132097097818830059024611841643700617335744245017645791944072369401273242922756270515873334545223091030207113407567451028335810702438564765384173460476442056640803592368218184233340641472703485778064276501641494871895430386004303207958550510528277852369706903172743983292023576626446917018729350440303901134484716946810495634169352268065394494625998238863992411061136818999816741680247473005784797435049418411346471488487965610672940744854379440881383207739187093034429707269676443316722893818987032644847196315182350099957697311358674792091804986215803264206975221993765456213200854266008180618339073947742392452182340288985777259582585762382319897614200740374959514907572927827643448880649776206395809160370411092178013898699127242190216008027722557745498204887123812679891109479024002679387171113768227569330285759087032044695827856206201903689355540279190993821711032473792159460343171582076195541548622248869116905522309476142665778399585362698646616558491116355118951688921229926289899254343119697598005734361973621515319295241200124039728681587118113406846628903415616788617310481896496225489706721969957772734238224944994502281751285506403072101837536840441334793529193112523972151151004470195379808648067583209819863951271562088133582143404572357040580768359397082715775046964653424164352027431124666314325485590752154446632705293398650828280968935577633365909662446983179868314977943588207822098017837947694186636182884965235055307855232648421626603165707648710594073949491790809816315325908523440076131916340665205744215348377923180994142713319698784684321786666504080642267106908812007186192387733764219385766525463240284044537098165381380242892263961476757697455077843369527042110189756859086263377240087894273038495099636587758488476386681509696051115937011995964336877176001464372198993815521598960429028694414354693449818817541356565719552184107682549655285812058237391552327931024651595998018324020774705115695721815066744968148389059659896992943333395896314260845891872694842874872006774267643364406274358907244304641113757265516851149401487957810334759718753808481111763102294562596743341613996720197829160164571583867826656785552548412943009943262136178259309568967068766098148215487484250759419061703045410619808425005607734338910156739421963731432287318824109263026087721087380799784128449894427792768758953569209313107984788680246026274470983466267111037348831194506153029550884677017968929197619465690711673096598730654262834038014289752559412300432795082796068784155076592097863456771406562391123313322921909253939525348079303006545792966112030592867371213364286933411129963767608075861125788802589527265058269384074879413237391789232495104069723096552668353111023336860082475068062141486056767046340532494199491512966254898232536818752129520201360484090975585141098611551279401718367132065798520245138587972086793944378327258586437725701566646369429802040653382294935103081754886429535335215354723023567665041581017806544540190643090665092164602465060646560306196132524677117235456851840969726993055888033341503015405134278277904391164337565123307544933509220306257651027895290571865856869271935773799731157970371414704583282909031081611392777946129866290578900140923689101154429747967407022163034449603360729299466773936956475594438161920001249594314920202597212610082827064525333073066211517457028923782101501856900844703194524069775013057160130885274537586255625998325851321281227815100408604348106038407771293157357867125209002246739355509148304997000410702543103293001948712584050538272356625639003038732451671796258436887470251602603481529204435359695315232547555124681096284278458281085419973652853347119322172152574255564054566909175820023500695015437232286555954904863595653644815690647281268284085699140957662470459010891999894883006936692724605209507191128289255110487988946418385334573983020642925173219500861667768019578475958336397097114232325200233211972605457947601936389250939427926703941724626820259707012478283661325485712873990220256524012466995840318289204682575926362178884216386663449737211385650222755389876015854746236542967714883000576728212609463473472243507664776938064221088559698024375389142930719217535954458655750214824865117020081507215560606116772077595615154649651460340628523935889051605492861144065411995782148647056584243209103337264322349246441842848571351421509000345267803564493519966794713767454012808867062530494738730105406582041204697864375397784933533383237733684388143591286889520773212861770358565440625363302025197343373783239048326558742871162091664387884896006020861603596692964607447107286912118345166432784456799668359258699251006213743132193694997921763286474715888924860140776274818952658156978493380015704198435106947941349138610626443968118456390774859825187024511402922169833520377954084539044381583038328049036909696512892466332173592086672682353152545914727565812670292040220124194403210000009919425096275394284345051256126224205470973848829464425269503753357526036291298615159940361785673238004225171306367547367961366214981175682959603403641911375815833033187569874264012179551909668540311676468093028596082897811685240624165710353259910906090926073539713712528470624620041602335008116636430995087247521156858328139800685303903485638061472073808203287922235967658215148767210716144574199563091245342031276287150645981842688872069806854226731205081335350668597141082373015308502529781720928243921096182704199008926150456671971290657167380561254502635838191258610977634758991984445709609164579868309993820171214723028021744479237755840274320022401682750994742757994944023333177221459332144659148163111063868765422242495193792496220688943805094813275226655007448961263138989339922950324375976170176274687930635493839497330066501088687239894070563860767455666059711819051003426684763949396225406714995822924131939157831556965079934780519745382775437172383007853270154608634494141459126091907433621092815933173978664544741473195121001672603946939346136482226034565092341896364120182941943159223907783998741628183093265041681114174826626931005699987358464636959646587103440072599184840003518739654888179370181039202247397472383420174602142109969190994071228193056033535131165474885003015920463044726111342763768323330231784943830345359976110008776400130466239700285680409784129587498459463345951660386601024052487916777797864758954851311543812037469023561301557467193359582226009742199645404257633112924141294510438381235814616532762637438804237331518463464013737956685640944228768501471784210263231978793794347011196615391275033663705259395042334207548652878942882294475173517909418939769568614601001910015918118918838350121720919478457023730841604429192646907442428637605949332889921555732210482218416030081032098931260531579895018239240770749146209976232804143492210819337133814301298231573848183570125232519431375111570085195348022210108547833127242962585105407293247605386100957542881518800497662010392401400669125059194788366057472302752186247306908811352215370427633993091885739897440737976338287817724783499486625628905221402329712477038384478206639739738827863635065241884778677286426731251923241244891170913787919344656933157203550743832673634370936711509783677562083466786193574275944123464754767220977516106260289825903013911434829598714122960105698916403856807815342019412053683644017549604013987383272286018113560238440427490031687177600029687561340543003112069384814648158820436594621819862135349259615781714657473573666306096539788772221183124259475289272451178003526880675291928168973628328258832338185604933836140076436044649220184740768671408423177000224850904857708282840371034119230883968311095322324417809183379142150430139968981095677456382735369586669410563472136512067614579427166502460289530164273982682686867388513954560678371120387047447807800378274919173944175469127366283284542163502942056552205707381816572778205285444829758593389898189366306775057903063095071810992491787450855845489095394039922618327503267368371590329101653218564689409646198748495665782150692776673766843695551028897642118142075518393769279895819805378388048327338879817927930028259595295856424131838274434256241536101020620283725112058001666108432152686017140218134303050982309037313691148742085731267287445706174031292652651646887432494586051470351006409121268006628558671443539919423654823050114281665997890190572325167489063951017897881459177151853306233437068230888869503671412665461725499114891856910147583619006771449908152683818113209513104714889344200465549062025491213264984209042655781583864304821967157694009362349040366847894734401798695562246145642994836829256540322544387838760240343887158177962935215335214019798441265868059406378861219232289744896584634111605779900223361853878833090404926480642816675425427093849077171387885996554085620601993056958517744130276303023838803100819002136723781060345058151190440903273908272733347994633349761605255452784161257390718385855733981610151368960984357609737796767398395600106661225604065860073853970524058543477554421507977006203032943232305601210718421911391594794653972845256464138082703762782666439109421483130447771866492920302439323921224079929305426573967135070278987900991399262984959942927863189968550711862415716448523680665726915412090128237772090721903730289846911393163082705763505060859831695556670694058081251186663034983425154685114324257288907335967507702348655141523105369610660134236837475136522965048501883971137078027138157653293457566380890484216984087884142069629067638723564767789712747404859734632128215163152958170619673285952754000199976988096506956850822335261796539968009599792102577740939078912164678551267162540931042180840746744763851394339468200524926101249302416248254713548469948080285215682861978528363413318064371675665893008203863007691504731756824772516622610407588944221508519299350288567763643531042186701971404602104402333641006350733546524179677052712607262656786484893448057800660210348733041810790530224664177154982060759553768732840880598910605306200431086959678116668449145214628616931934587116934986525376288709672572756830810230226427444344002092113530318945623799797602422436859393435711395459609764342102399190854931166275216627431726699436404473697128459591120097861226753137327312378032615352997008895498800498537333915064539072832328228788959789993545057174719597610691201387422031826571889763892341169476267441910352132063119754360686346090055440862437885369552217693724983350187297070510861888924595752004401313459467344739793948572129774495716105916778533053009175626339846175225414088915586320942593753473263457259691252636426116592184106497854941442865244898352633986541155444407163500441331062197384616204364910438110529240756342047221387215968880655311324608127501203787832553057620393450856546425507042595898401168813520807591371482041306970791821592278275493682122611182148396755132387501409864809612437195359278920448693157963943301471010119173273551691070936590329048281347399746407246002721635115997366507337157905611503042005682125259757329073287144475390398704391260092276628292645735836459891328361035554157929624289590167632780572131461401016869356903626530626594606054480693775345490406410790411545979064260998985380903984517525312610411615597583785330219716492422861572397164267147568252756876912557935055014651979488121411663440011337886167113295006586224574783976448176368987268518421169923387895477792983435158822234489501953010946749830478768823610738167086375711970542341839623556201372576142042502085008048908186115652825385200456782102581038955023996564357003346564756131171896357036807273053150663021857801224986097555241921746602292228580698661165442806054003661524284747953627894112217942066441833355137469392155204491901009622073175223030895906261536851227764119706105350269741604411459902643852188927967498540791924969542358021852939475824255738942720421153312191229943313322223997268129471958050153560599596651393555584940166781496352148861608318299625533771216778410310270969825034884247066604544102621305523455948800394985783750013425803135766097971008269830512481281276580040940840974556180544655966992735448706550415775268264744910648579142032139748282322299179917429662468499867259701841122892042025477056123564264662123902503474399987464697917276330756181185412805838293539429521814972138210856918765021506317469588830900648313966723148432441779395582865619244579681991064008117449400931894866381733383541011317562683648796056210740978715004882240202772358588545976872666436344689342393420126643430419913612153043120276296115469270846822589559569671359661100184599991784758159463786609003300392735560445299624986023664399038422410065246290864540884491024892959048361574144192510275906409840657296238460767689966912570431057313753673319583912804522896891554947817224988683207385502344115492628411020589668732866351399533853161615149449024552127994556994539609110353015794146056922234852827178816899575127897743059917266795694430898017328461775412174888750854383910761204060409264319342555801866079038289715340800978357422671274062079488818060541218316972495466677607314460673375977545154951321007566652615183998018678439026466577044794062334926592810577361862925667194142850456245809321944879162940610475401320404029582219592143403611612235382632409053801517555022424861497032286177502095097199912245446852825090136411696521367260978932693705667069926042903348992099738769682669076450894886677154272556071816747300184910361076681481152271340961878691270613329815167338568776359219585521003384836663088205822009633928328804361176105026200713877623412346645801370014658861077939665523464696434600818568848692307045530476521696833307551322950547825126225966038455956538437890763636466964302224435119872383834295450454774622653460803910901817395743323932083864644012444728298797929726579559761613923875584244056543136337542103905103097666772656146587144153022187037648143589849847834631909815691853847226997537252314367863210819323815474249662480241524117764901997588527254528853871177913096770097988026942414621771940171992300605625787741684439696049054707021290002501403231403963513813731515608312777624182300441817360091138365560333587444298611232789907041705529963778792501755655010006594188997821902918388728442396118347400507418922425258921333264304278267550071527772933350303380724568301038691504105194731308514251783619793530493255343857408517531315142667740254650847112298700534170044201320659288985928547208517293582807675472218451152259788251911890952156544634293825288082611075723161058532106451704814876819480322827447484274109154608958771088377981959117108359071125268052278012640124358358320306144453981976209441893727043948881496589842726154200138017459448695980933426726719793206377748817584330181415436645554471166299259004317136324764862443792148039567732063679512507645627726198659307305392468024355573888670310050520839633084621635840149178072634943211752479723462815376362040300392464035451456306401278151643789716949627671885267774382636387202636941663598094585040110964293592582364279569729670291035603720021201586575449840664225562151407623343349423440305180747995330225079988047292057039145533198471538305436672948692717970315163013841139920624257879880434387869895434737642978310885754701215943588230172772035942449769814694066335372442572879850152897032019040127677700587014316183958518656311581409596704464735000612614788431094118303596146748311116748874852213035925763711866244355445857889064055745102247512588289902203328765237301070046701604904269232192185995153797205851197080646152483518691926794714051239378806450623694596435350867749949222938900625032324340874730635943721780521353484087042241593705910830922783185834725566300950044074676442596514821096472983648248300608845895646744489890067383087932691784030499914208352039533390747324636923191553496791796886755459595708948231201865526640364583607234758069783543489837153716505617653745418933184160922739156637648917114313768196953825426017048732740849113568107749805142412926854185392986394194410527804390658509167308637859550111671513658580939276777213683193937201302638853183990728743388478197951444010398137394751612298086077252740587307979315711370431081574971436649513583189926700861739980174797672684721286068971099994456860237534185757815154027545577249022118134202500377335524362033638355187628778297905361383626386175122380995684466885961991893831596841821876960105538685258572030318112031784005899502236378349339933327105332083101699773073196838681274800054846539064290139689049181892101191734388961905777167154270619019192025845998817407725891257048339082901473981790919464102070792744900728115085193700506586393372721909014021027845894970559313047419483414052832790297155380824169421569551843970587653276968199475789233497070089732990718857565893461857871196855195691338375401025328574273296934077927309453143279785407529675807451076170143135432483912791156929229262657122705489804367745559578841312056302249210052853048661626980343518205263320514485739790035379413458297652293351735314649468563159024215908568536699399618036448726618819286835251121817998047798365212187698645608325783561357442018783907532135492778175493541921904232591616113824560413388132808122201087540085553482102731988005942601282387895854086485913523857334890577005826880842258635842750362753689921443937276003571956825056461797633768174410239988641326492357776728289883831072285884196720038949946758266299271998789873323644427609709000006114451262045484694139671302599769483115682804994370243598611436176305722824208002836678768161621950263023942930698378064234200117564123161842678168356603450915784759111769496306156261401308751328723007148648314031225729492283961563919881623299956249511997225021220794248991799541643769524449720618332966179464130624693578227920523290150423426998082170192147415795087261331470962956967197675195650944683638438665052505398607393443981993660543740023339737487803892495046872568519389460549936110857941575638884589812165774178565719656728074048172011582479493628231347584444044990043502978553145844118487369611864878946097103290306669104781642190583576274684875419692602772769830214810143545771717907357227205057651196507939479815411993687584683289478744964335643928487934513448702237289930492851576480645198047150473807305632373070690439485373791719985660990854996222065328070399826564129953038992727170766676988561425696007191863192284934847957167274336903803531254885461285998326374636059466266688205056403912277927160871987815945826546457500731582373941840398690267511380070050787567042359298829358837751480260030462209789443141641666554708466757733720587655283869366920045735648786267920551227838884122616835580568582969678271921191529356171736148817917885966246401465384391160268650430754339051132523369248466749980864881728793434996300329537955551118427409548017347541279139240308562057538348328464710081698866025936721774972857525242543829724888071743332759764374507616182936454761752814043697976855750498274918239904231506196524495814944899104732632639556215998463495030448043949357568038606995648203102508108981626552188491352572043040429846046904715121477186803262551748349961876164266124221379430360842483339190106472005104955494126045843799144058462752843800647006496098710629267467987754220123577984149368739124190802479376224644536628377760598160997547314913236413655273758969430413552349086459412765017135083535661731118758071648912800047060495158602834397827552746258370237508935581311345976580996109313214727521573320351708553527057327220759140964037223163683919557872839874925472037147653729674816323296994526774695635241144322844186823885932917541560113088597707963394426735406026293819810771483476096849727218429312321578370223644182520654838549309752683117829575222343212665147368602274461743221927576114624505728924038074121575883283989981095138352856879324012615402913591431743198707846284977768989339298731301504727153965736638737774293631929164682145498198953487633567460912265513009782590884625877600475367591090549299479503539821088368348467307582263442189326530669454233750092555052367123616542313481401577098937391759215486427510985044215245563646548817086750914849331079561172292316582630144581009971087476298376898319786556251714575361051130353869120711393235483666773537218182001262032459840654993138319805621322228859877795980110267163347338600907460912927342941347525402581902594929474892354173696966880133597497516210354772057843824269995302156039350863714852242177938687841065398288911313520182539599257289701140203033230594612246518573141187616566667537175234514553614049580079650275298467526084350120006443237530404338382527065778988615526956170296920870771507447379137673500098579293918708343965406071092776895596039028027572690634999204564850109729604029556367388166646025867956107130692258623690799150334424862387663662005261587148904788121916613048711716292816601030632015540611067081751517306843484836612255587860859924878438546898556501544874497400575681018714439100784422679070273046776618161792813383259715658052412245497663833933759884373299710457226283144630873132163423919097344671424536489738655352700628525703153226141049483071757638070052320951290482902707456103695217208605557601732980008537664581440636380286409888831087492649106980782571756483808942883963471437551944012064009603095123692989077699082343941960247416427218020566574150146531873107801110884547279472250342194054358562336036217043644468688711171300124794951546210396897397004286424063972206434080682214189273927931109377045271727356275928113269441784215576929642494460165339965420506323946548551982094469859115329809596168751010611803658283370407693274650822756904213210039918802871721211813349544185497684263144439385085581329403080611707750363004012742718380775526766831923749554244406959301158194779800807136099404139523709571678802893124999557091894315277086279298925770789275495325858027645671182574125542773619390041574375621877178863837043562518089554516281786928224822412437265071424162242129231487978141075564818867703010944088263108016502007041347460052546301939204094746330738480145238493478085779533290812218011431019561524441951330770390505892117471773226162198200224580711049969289673947728795863360568745552830274143382866163149913801815620709643893624549824357820228635363476027152224403742685057246656073773609739162459442657340702727192626160013603369209615862622376648259576580446716519185572511963652909781207762535249215655307046483083839761247830298895549484897298286601324270456394849725245930831008061497924106896218244909591410340589734684915018167665686266621968237454431563241543657021670003131916166905723187656908378644823688595730537291066658939369569708856177956762735289610441508853022949775655362451295514184220288657969902274851103701971272301632320481162894745321479432509262970442580358050109184995023367720398722557231772774888159823825227873236599093939790182905193712877420245732266646762129434415198850491756264678911372991406114308117808871834312989230239108293617879975124248150371269330731415336516232131117016321892779321836973335392980675654894214580137119266626111880285870212524951859745711603207792006441716175900085839410994377504677167356621039867994941248529770378048773281207423649663787303376473393512609303528883790729785719258636174171440930832049031048140627679176760509061036588273134508897558827396879201783238705148620561848681465849145410192078420320848364566039567492509014914388965945757978130003545559527176322575270596447558015660138934467537895455490343688418995720070680245278018552282422193070647448768073220737427444340525898955316054783412719590106649501358208104489363726292441277771103534010082633281211390593677803813464792835686812599518302290965581036444754631082320653304993675062615747062327621635205796065461331913725179481364667491242750120304670332350454916646407835541179705942426315302221943391786570044400306333966371646314563529877977976382336109791297248522407220416720467986611776285249763904586231108021802872745756617207983660828003352186842981909410784453553459692145664428481753237235969706611937738109297578269619388002315163744365313222453101978545648384960036530751864228829725156083537179671084327718863543774528109269361056090388359238244849936956189851520962376457383355635188038939092233514296872983644746824703198654871923197259671449423771448607823206478944561804369957240314700117813022541240145321764321762774609148502154139444748663748146140899207512448455874505131316443972656575878593349862728241228735714819694932973757483844792017892541484890693884105370598744105273815350705559756849386478986182530240624305398817891237812130912765355059294750883371458777242932418699240588290199192438899597825481351875269385161665950456993331571119395168550402124527182203529603972131632044957755293544572246429485391981453735543733066924598574083176029881042374462368344286660305294756626314329558169391658799562420072276938992268205729118546854386012499606194382530635754671637533019087622163512783768797702055826540438110737991803399095903653681079651521101536184726608592149810872309339413791024578097923201453512129234214606304308686069748498960532819121545614032233155094538853346380504213638747086456632073861017680975469819727114130855449377953923860216807623877628311630307805176051626289201731241790735254932375598783326372486751366611940690022768110989844214850741746828425116643602615778796561946592061633937874399165134549979866493404120422640445248482318689362233828989875662764000353778694480072830062208652504961063866513520579878421002549308889748436869169647639965665698740411060032634825847589922434380001248130976419331470722096838631614032403665740412282052714054595786136361573426483756935979444043384264918747206171244971863559730354764337527171820268782868039091130591281383462914960944121460450890691783405134901557215826263457677086360648693591707716935229018922069853938210011774294896160354443241169789337752189751628277708212274597720765902004569483440009631655543809274254633715139565441620143607743880532400473063851348689116847063436829125940720595679022183431666667930121056390804802413758969220346755355113081303103578875114899378764818994250035516005161866690645898129343474763686128427794652182383004208484332334029783556071165481606574118299476910512958364257253039952798279666465040315836094913604804637002901745756608521146810169510695663916729374002943443040845521659788894236904186130618439501521714071844148955364735824101628111068666267579043110059974131074248099447015101689206504070640358763752326688341347754652881529915297361809617063309405211001786932379725939239865220059508351816228175359887270864192028723106878512264823919078254784419714472832400523983046647574417429802148095037328097139733788947124786988768947467185196938972289303408272461558227573555530857572609068435463749976891267103805386029154659838900758702009976101049363414510046896653715815055132875770388376693984961218486717780190355656004850360314759961590327005653124405475154238996579616120051723129764656220322605421332640991051663274255981770755294493744591135592142983735258467112441473624191885101128214522329828522905095820373365764356902227004101764253650045028003909193014943556415101475232430655832832850851926008730759299003544613052035137101935621963629683674866042860939143421092854397141324169469035202932503193673648737896113883682286824337220771984908494599523304805283836921445148625785521859814970461266371538771140497923289843047629718329673606325434552871634920840520109685681589905892008635001114709442855624889328016420538676329002054741224758642399941381373775982502072425570358529187193844123135366189681318529216675430040020240444384296915138055197726154848060305215429889688084491786640166998082834052911407153092640453921220984845025443940282219128008963311739776413767854013912404375566366345470481150457049038780965505995742091007665505669576601255214129536138140516454893096963878070557020835468538656291934186694377736484381935408600201297216234973334958688363412398315851122976628513549648209222348915885177163797961948780775871548064181850164200455545888322054117991260353111214707758208347435165305646135600736723626010627414245113282564316926208443388835689773537122839928719405244603539812265372853152680119610158080250758847625212329091139563719052017193791819240482992735874302968332562540732788009858334708338828873495439657993435669620496587259283637244827266225575879677401397011779440170709871578318847002232484062340384048704431489256147197148853142096697472264771678315614242143494085667626071530776324182526938678886310857175863369504576769468450822448218838165488852540813270328532448342927933708404065293202243497608785764650429091362407001084530069504838947034783446251137026149387608702119518297950266556668776944281693944723072001332576794244947870341047499267982135913705297253800726592844407318147057346560448377419408764689254385612840915404820649130968694871953102584377772939408644896989348727750978162551178641376480965873273663888699670846538216073976493133575185695382601666442592871220426579159141940525684382342041936700786420331119143177542132905704821486127947998572675402759760488556156063643595518184483669880311382718651991890410254923147542029639620300566996371383511868979392772098068206437243681090094710706171724916466700149698043955805253340098076471362308943183172103882979971163927075736594220489798883358724059239151012769867403267753118793869284650670853076678706247006000781570468366554303125223283216323383359395607340359684780997493533859565084912747857132560309353575605714308838438751586251058200900449660367216704012734673548528872897075179182380757501190454313767463276934791955913517686574142400029910984070841002432529293671086661663718896029244877699483333968248846360333624235372198824462386855593632012745983035395702193574548588146996600337154385969718706831176982882932869627672537208821413930509489828557984862592766685249847729832033429895563336603870510083977389891940636433949241053595704167155013137364124320409458727542761830885622536985410914764298860330869880818742662991985923169789914778846885129759477092742556684334094876584829563109010202784370158545658540510830396922742251903888820073479774241994421790189259911827663417028387105384526554810223734212955902039823790024913117783016806592768432128669595597822614208766604931564526752666290696792686134981410170500208423634970956231769036090915633530144797614475736354240068935108868319976195620244630190595744154492452793791934793558252985335721292896176788397966511353422036366492709045512316300304012314800422076361400707798776713954392004838239584105010950111014248220073816473289326113311160129223310199559992725727430975962372347779314011197075086023172032420602364424620342373075553132483908180478862410235272595537449177228621284856849920936286514529417056373264841473174072382072101015270454834378968532516350785805909229205909603592028232653786581670317284643381501959816255632301194585188583218738057848677548691404789216120765747215443085193141602900737273102213764659541479677364639153330402192969823395316042830647457668219828869103433637736195691951277381136140281945254682375979500342769534904160821957620287913540604007863441777450335469245592272833988004677885897534816043225304437057668566744489788988351470485682331121174087311009328077879809701044942402258201446814824351520983873155638926126198715070685579336047813966642872399402205132680406400004356670231954172379743700985405687434181321830022851319822095581736757249900357287164903466045591158169434303443244663128375358937752882328882286602830611641276939316225473498354127358089503568834278734283782968028902674343771594314775407837105712091192099731810785560391789373534960322627883307138763032705678567469958608312882594521318029905484016630952610284385724086903605165548187265208638707606960371649591609354785495191889753957186140522982377651565519479499465138318642612061517547899100929400116764723167802663742310720770378876026851614599761071658606718885669598616370552515996856921668968566701098590953187022186611570145028659972744216054082139282776347632540878795363308284769516202664038341596262122778381115384030800667973261608590232359672063506581250006071537408752336918281076599670888652817429803544725357322500453488026892858260683103166908671675731418699854394857496839513554274163528459631963725623752061483777233227042518976535822362319693300944068269730151044124109952980289468152087835583023338806920139629754079650659369733267330872421904149623727048898190467935802241719569357893416428932858916265170080721570112288226464949045365763673103386150372477120499093059673562373585373106780475196641448638879169395279084426150401567153240946993659096966633165306822054531900016107574704703088023171335786720379168230678459031699441585655439765940475833658838387620806552764446276843129329832890109566916726783210610724560974775065754272868887526900839691158454510288878302002992828754518542515034032834448020990484007317072340380686982447047555360429719652140746308465349761014349492244402778131109628806891387142410202601655752171189376248374156289416524652051743769264602367598656631817108778569523711683067878253396667841768114019364240341669747816839723567442476640972965665001565677671357046010653824182618973150234437404951383957265312117895696616012792662055472249925401926890798723337943906929424816743364901307027797033531610609907031329930493333905001457828255622857803791602940146287677881303848034347208719597042396912354337256706347933683941622117367001154051296323236587346743964709765003600535667622402742763109843682807400933042375531900278034096227656430442410003379684961697044693141689456297471022875386255187782834179150353955048505914397543220424708733832155593175594764433904224366418062169439121553559021166719588482305726703755067204420747511726533644785471187960438842371715850504799218843223604074761161898872135124271951375550388817358421208546388826759915317100357929381151756720261169534496865469640321591345459652588235522390158127657769316659883124600784449951438555301317198441886557286848182007580549994788214705926838839518860867127574247734470697795737133415081869241454006223042645651973620927049967277190576087080000130008773827400966851500605603471514420808169916551064025279139580165671691229820656458261692784370271860644347176807379306235351279184606585786143692426080839627978749969644917166303601605226655694263861708513061541298868145055705283401875978012265083776899159661619887622286588815907716098057331143500918928272091225237231121529647123922295234120884039258163902162456664862845119416466413801379369155982512383101380833797193055466346262333103940414627423102940557136349853500901675089247556819159504694052847954211478317488923043710051675319075280271108534468287937284564256001376899926453999372217467070519624746465664307231149752347262246231551721556495613056434938765183917659750604902663085573881417891920150037718834644898933030509993181577988745847414086713891460638366184906201065373332815410294520848949177800798570507582496350730088858965603703899524269124526604663471884197353022637750276502611883657772754810391856698078694207055446801744413325456334856154423021866427185128217735544402858442564038547363214902200442059112201886555899988236073620581029675763908504026771320210496700417387409663036666275251625549065771376687859049402515716573154960261547862646976746175458010952750026296567478168078548027072650246181028971241957150809776406767107186278803618292717380858109895144523751209120348898051182319997189395573727494944844983787573471876152632492877660036050598425982730732122449279263623558440460859657831881407173578073775739428336176646670527534081291198910494916213875338485549706417964477938471854041156367737414675383889002441387377896958104388019965664436944536940115821662648524520394992410605384749206372063949977810458936943792006949137744034784264040732160924820566532381330294224105884949604300632541269205344712079472274449474295621550056291993153329696652356478296654198722778310023453570580713812627542142704488059855308838228148283840348212327379415671419105462551060759058283981416684843949410541600677009722787795798150795322553993550693278042257841483340963406889872868099836105571460772397043815057439883036242219466536960505687924454733875597978142025471223907040480379636435039912238867556423949364696099358246978422382394273414104535327260490620010291069085340880701183666511990845088635513874482839514233389399474974875583605566943501075448407304032398466359746317853913956031727053946980456024464870474676343233758805553281105591694693485162303595118051105251787729409776654600716686074318998733629624492336077819563048031351998056684364481472431281975764909037467930093673841821026112853718283513337618012764141194911468163581798795428323993509236233452333778825163919029975283849803616791621851903997515937293861543136337869154397867290373517019568909983212610085605642988259366740690063551728855741519229285355981302351500537188474883952580894560023601416980368145849404853471411476029338958154242896896309202824240551602399267006808838614000001308218835291469810654490252798800585540552884389999639071316374696904897151006674407484585677912086317597845556887545552928785246285103978895098620111783073512099633925012592736118275513156762324305072076150727916153092323812966527980021360270778671975883168675324325336931678797515632492769077230576312336048727905151837631695461549486422270850362956901122202013759537872583380903011211575471051982585566581086143883563483348210436712635167440175051283169196353319609953354265332455832332299785383359082666853937267035916678884936801907422081356002120393398765023430966812995380520044779069028689257219238921313267420679071426777846928693225275710190851834205202935769438839787847906472704449029617502596247972638789213137564932880939763703115903513620495662328098266928514262733931920342300783542553816473720788382975758043624191482472561340221672119701783095254780996257085963855995831027321542321619717650290498488318348756298115859846006512020830273784107757115185780145162234127487272880277832216698747833529119508771689771197003295030333258571857127931869228665864072579161276983236032138643452184392351181793130983455363166541337263604652997232034416207368037722316654628175588994554652170675206888423009094438826674584000798096974551854550425124609226564554262560493320217872929208709685432952734289029055281217229858811262268422949861732356282853379099221394626035404589190698342427239309656823821005330167779308471472493444075986162937242934877206302029833474300019761143712733716301423768661507371097350272879014394715978552511010261382787925548453229875470710972514164046989796217515258599899996480230155842773264927683791111704082814789767911925644061288547102921703225220689217971314277712292506377772185058196677174863635948798629611723413181976622811594818370889012815034237110233250862964939803940658592190220622350225834131220638132938416633008032416642300586769355787877976246693222827958344067127183259079410485507419464016247427581006167621754213426530026695112816153327321725775729957842846521526911695674699814801821105141221827043638885048419094316149339024090779065916610738495751199645374207903050079398989932641549289513821421754231840347172854317344508822871823498075374487084564746916391906608480850235478099652410158238329040394239512289327697072470355937942122014279639505486954421117982256334944117677735772976554588147084538639266859116245307989593610586155482020069526867153168107886721293603531210186039770990433001395009168041384610912511282990964594630065501393744533155022886358797993850131012133620201294569870775919036270987789906565571427241907870681699646595656454130105765546865218318224269756417712593864964806546409000480344800900113299030868736195045110156522748259003293508349091529039354387968194805387587088245557950166512169944475925835810319513532868810925475482836459703645703281014069178755572644480084617449502334486507740883958158004924077895311110897874797446305019239734247806898019340569668026427482336265447585517316896634119282884910587955638527238461050079199601467566833406417104171747596406781559306575504692352602172219623535124487853231083517588805710784312823863678164098764876346212523697371975408828680057421313998264802053956235100001378458767694395650502308920157466934072573965290619313539427005870974065818062244419722691005183212300830980873800189484584501811990542883965220725917582878132747007751925509202289290190365561176511307307506737508240223673729675865723731934762094715262625050292075125886845211847921305692018556295637512510132150191306477210159211314354251840949595318755237170219742720136641410302718786010208110918789965430803801081499389867442270399035195875293203279056226943074326514949404868802709970469106005068665336638374056711067418878626313934384619802891393405755067275032674406710638826371691323910927373616870927368174271456993786445857501152188903847409111146816282781157024422396255811303209627556310079131187300843370189242918385436903797600452385422026538005722365936797553521880042061917589861958875177745015748774224804212912415473652747556193249352244272944175158340254280954375733721389068362680512636606250669230564437263173178185706985356555366081264296066844801021104149779313351194707765713437257475832799874475601018915778287979829176513760693700760773454182728426029315052861812607663575617308293843301208622470542834755988671830598533787452228253810297694395632113654406614972313771262072827052181287755580961885120313169931944771646873526870449975410082219529828160645483498172735299260446163554886981707051363620206390400367033696394134371980868061323529134655135475646073421546896873342387789876284541660431404309208027713755152495810368020295484350684112494564990814151492415191866688174193827457517000124837486797137416138717203102527935380029216826089476352009300687027869364960608195353150016591177271715865935961700744981385348915014589323181290602198286095186081770764232448932745333956106666731528011517429890672502685212021136242493105510425362968182644821571855086305838113945531347997174933481606202934855268447249860608208606132976282158759359282170104938996023457891429924436164305449896540683330089991708958861400939805765945989782161853212941169005248865684907296336543747738867297941570197232487852135564555294703992736347315625131442142171528277672673752350527723038614540460804863584707404089653201684447186824132672767403247278923578764042917048920776087462347653090432254301173480311601422041411754918713682673246619702280099465956549927681005660376363287847547076289078437658681870068542464490875242073942101932811455078137524440129948162649317681101447347787334766956140150854956138080263808430194342987161188845278126169820840319843394047793512573609689326756305373234114057586245312363346692552421613255294589517870742343658094583917224123055852511973043961690224312136226544217938717186461472435028565999189425384538664536347040514544700312141881682561604556199456107790146855237695766456628805819880344179378849498297721558724922814064400640313067816903514265683391767199413089481061490826735998960562459988640390964926229591076708108988122328078981830235752882963008230631229410075077941011510795212929434714608312919821551575283625830196413902322941084161277337910698153848348772465941115630881680040663279382127949486554246675735689388494059081163680418661134308266951107355150835455506896864073058238794328724728613671588576253455825469196448938218027289196836672986331885733462040202365324849897849820064463811609899730679689285351442972590774342712506738431474290505198046857035976313021135360108785419165715665809885656222719611063338964559524677907798526217411755431520133709063942900332384731238966985043107685540528100780491354617862909577291238268973880256339661460432898699593656304438862841681224436904934097284241664797346487371161103987035055226268248579729073866916244866806495862094736167353491024325826846974283416567823470546778170936953565700848660137534588800511531944653981213852802697985947062831978469410450766747030320696175592971900904867380879049618660687134941033850854311214875036340940257853947569725491492167045241298648009417398763673224155231610282371221433250575238073768552659469163582596346048786814821125994241362938255230214826209265736568943835218115324922716245179253463655932145749334516782527205881397508969635556698840633584686504084755434048270099589679354265192373621115295567267730085002909118008360278399674715073181045799612904960934150754004676475540509217350694605973878142671624989637861699040967480345683528558020180919212072506462879156705093714968941495999609114281602940819347002498755327682200014215721685228878663500254667640706252484713235126414340805914393301177816126091049513483570220747414858561009901083703786392078792837451331021344549709258890873769174447962996969127033641378898932238399801640782023675009305405651903772497120844953771509954032276620405551493620013896259521683373173018827983332147512892417985484678018675419010249224114592640681319359153424363231383132112285938489558346005835284827525599363162637507423550133126037663042533145588235993623356140300033020167902340629313516890996658390926863354343320021047931578595191055458055723857497190186024500435981568828160413574804145232766232553934766268993787711735069641073628691944270181592526357102092611619763162692322018618576844571685830033626544824491826257058460690325480551776692353414893833528611553236821204375308950938055378958386926683936730278411107819829251328197152747009278110882189472140094609122022313173775619498030323715832766524910345954848548225533230991192818295758868948818799051843044964605245444025280501911067831761257883757482802478198686052091448073760261195575973538184189510355079099163417202296027664156144260874412489629047942908366096730269668092926429569567211633095403523924939180618147425499237125068071407415126933248267766960705190290158543095494669311751613216307208409151210606484862737348370903745570931895610672358533502966499065139983616652031825463613489825472221947900952460094201875380708629529393432991285466942763138650469908214534421644125320635749993387509485869298180112680425499666835896888151634987720007183092113935128274168512989106905833658143800858520286517985110370314374092336187855619687967908486545292142429804355129229364405070975382462816800174799779908529981823519029636209100116927029413782466946264893164872725127099552967598635417058276192640762187145872834882289792513939108689182821528423789121368770428924600012435208452081344546973980885884794001643423491287695742593241548642742089316591824667943101087404064613863263339191219418836287363379740107124619257819429470076303864579378169338058964475956841921275746521323562602106086556231919271465237697068124942999243397988390200803608679282288877815425169891047827071195513607183303340150580223940748536830284101886596562975625820948316490860061390870037040772286630299112718249701266856921019396685432451939894360824542764897629792079672741355658759703317627593441469858947902347542105317753135761759716352354960652831226610330054447918886070589869857223369704790140471530092517245541901615012808590556224266536942819544195936635902223263431139957627659947979673195768036846189443019931703252596918638537234919617592916224011141722449648788791637133215484075429239963670474392224630031442212429249363350186883380347343073599094119720730796835452575025712445686571405768792540346181394289874407455648985667836385239436041860837177209066342066087770592253837368772171897099522075243455329233195707455154508726889341570951340796705019815479664708879067018668100809982370029998890452724512088727896813417414051875410838177098734580627882598394483056052221252860884930772766234895610205631135379266140195093159154806313031969936319893987986430283204915391629765648329301725715683708523086825737719395971747583194620225455846593083965625645704715124051233578053727706944906077482296170995435635637652360585781335074385770810959708492662614784851650123626434197165255843482425784775338497674090462825790053093323643331584177203395749091364471891956265159349586886210591765554524640442761107228608574505518745081908103089687370051477860758520749109179738049140551631251900763725104679638827553086807850799442981200472698582572522652899013779613975694202685504713599699191206922538042161246822894938989068143667105592645601331993152252042251971320098075226661460490097708951648578101763167319301842015296055563758744686096715323812968630713927123306239566715542434429404702727090701904280449914219199217905196730817629321470471171121700650129113086346593702089555170288754988452051293209086809495961516043573376035323571341028589103691890698730335427257566165327316496123311196016186372588516193586503289863829490111093875842643849119198195059900095495012339808703365055224737687411336861832191646850065016648514559409947864401656776733510608533998228699794067059639547370637030932317479409187793607553126428415818601671764775539141549057085943730427891286347741456036257304526566051717804792916417594470096854027433669727365770071287151613680790512584248978696471817463168581492231992533386905762144590075700071804850225125711536590710650670520672553189332692492917669516145284616529631873703571390143802537512374513856203430200192023343604465176046374115144025030775028812848963089859804373154349998011861178272435130085998044097448353844389813362120599873102676441171759321481436734510394937227720755009637320061943333733627102911336666481297143748363774222000565660504013470034974325949346692293839318683925682822749496554239465607104267350699939081809366375058668812742890298058342331547136308526927916921892267989764480946900657552883746722303577143596690662554319070182982951048185544687506829055919898725567635801149374016106253306764428316719093435699446973349037469801868632668053151672803450562862999529268086920992623739130494975125946073362715157163249137915897924470747841974719720148014625461883418563315548081653505063783244959725069007724202876311677677423263397270010953608272529191968605174982416210393160449828131139178617701449102339512743339583829724187908319363025415379347182072464207661085584522751240679644070982897767151918065951484949459117344202413410650731721690050627356273371488536812780821116623643935487675104148115827934948486123751977179654998193184196668946402858334764164357571033169270569298679381852673337159350383719252775344334495673120577844940128476196875315733349367802648583872378237698076892141702996775894259053354800387506171106687492140377827075706738315501777826650650332138834468091846462955694012322408220346353934497124684415547044621936369577818434220345268279871085670984135368148838738580469712156842028917781913580186342584385331461558130473960231721512547964816880509504693596023960039114225658267018491563362029447580145676510502360341513870257444289750730895990670881799957642715233295369325079276876365442286843543764806987793835400931182982956558753921820701438140689751024513963342282679197115294605758270729332249803294416042651682926736562687416562485915696832269678400566098309567746123634668619337579563435580151381547101793965306160869683799089542573338445837363445587532194823879916389279154732942898088424853169878399314262381769203043241105964054675346688169150917076878835646029874519741873412011642607510290081560784709287074024709934465202092169732774894207614468815294943829541869857860607028709397063747746239027626371755415051573832899438202905396252722513079984713262597942779322883627277664470687768008459819872899687060056331280405370487801336653501664088580326855921571526254985440241678697806922232852579041186309971405998454915951599194194753023817868973612371780851374888694958078309164866478403156281556412059708284014037820074258270872909980437116907406765039469692497958309549303268862693176928502577801150698094350866247026566541740363363321890163327089617180951704538475016152015731329164135492918495032900774791754933144604842424854002537198769793627138124145897830794199235266769724301490501978802217837022044249622149710403103448562268046248857915748602771816014452175558880841796956529495442740790508958472337960550432330972115060089254612004762186029529838267009369371100522680651896741688419095126653638338857790098290771127553435358949758596407196582156381783879765278662328741245713782966796011137173741908855774257121124946403332870459290124815891248153104511868183894720941670141060235053377745583143061644524247851028616485773854339210565227955829227343749716948171738421492755603999443783523883013667438269499637963817376465556356151691376132725629349972858481968252115873391922066878416912032530733719008524700135798358044382033716232146141733449008641706634930091747135198466211215112785249332779660650915431912274604573275373656233756163305355270355904073594542557024851910026805436624905288043833629765981839473329038376799197012970088994467835471960512369710802685921554907696019998121482862807001249873163846072339758527229597130605718867023642559867408214691491074486864013369684288850780330156632119293342278610415284707751225302541677661973635610806979580956181094192556944425134461962089910709658998511098117551178974878719189829134178598837081232557851249987558955693002254433323611097112478190443465438010921146898060321882664279967954050894810767153905721466011430133221607804888751963276431788250620743434925782258822313241904526280920286131627134861192581899634425386873362348053038554660303186689197866049652509513570541039124710106288165932492501174004749385294202968442284362105475704958870861958943455697090596622128375998813471585787164286491343135839617299202490956930791119584262174902696991005407665088997926066333227976206852551795206624369320461212268400748513029843591129360305414536167434795590281950322883439817647047498407910320177390193633821710981392380608194218653268202433316592174201441950099760492500213393401362063396663016983300770792727906694836893021615442756251148139921327237647247191888284600249468921316308872108836173044561667388113075397606616206648594484115212289197662151939885425911847888325765589070626437628299511842544725932604760178513800339713386364028030157234436827835597723592996072021566768616644184669843376990010597679271531286363016560545586161000969598107199185545596402691777905089145973039210909385529864137955285394862226587759752558530268490826527250673783150852242356926407916404960446187614682736883398340911960867297696952727359291284332098424588564320809404274295590528046719487133037427172732575137508168391402806983613002144463492946643632909579701490098176736274556820590624101561055866868542348449564564631057656375417764590435223201097107649551423346873640902879429892827246185861132934888533459345938106383429364369664767444361205348296231778764019275798374772888592733529735967797797275461327048994316993667132889343282266908818044316233285607691853034089643374171662433561569278592615993163711378102469865321111634422889576738411620675652052991684846791948588399850607339240383853226455794682524430046138409297223029375634562493314057009376837185718171343462315751188855168944031551078398715925932584975725760749151333328197364340389555591808278860784636585801000918493953118926388098679351608169411434080456818784350910297343674722096874111846229320832496284744701148980419570172047022624844938811107484069469902597483841355729806820835195119595995473432945262887583959029090099683896786443865371221494145996878086839417494942638827759659396694876204920435562562726470719124707126120874730157693330608734200964531792260412370167174444915236124781807353233979836732215063474297942272542033956344149218536312975156719631957446775547996184228523635249917962518386924927660866612383375845332392994727133182565067944378283261868872509778285861104868891741084013158317528929322987718614643954657047484273833686127794658905410602382190839013261236993350800908120879886085440937697298146577920256322044027108336114663267821339567362694682228397703506023587661727003110314092141685362126323255461997464100801145196459792051777557136870437736005171300090370846525831164243925332186728560782718360814128668338072419844497962335812914670787848662654901599788481820251398214772280598306116713019114422637822200896757904898871115567148375980904261052896299357377803556744471880549994565463691322280845200184098708143147911777837915092300015490063346968418493346513902613387797833846156243867337417992190023628209406763135532722078666506061085872371668053565583548262846550066436645983680999178696093678604705269789155042695641518510153019927657814962577469309533151749758815575248679624874377633367936715563347896837030531660103309756761589494630553459794604272336155489406687084418027068862819597172239995309088697074067062108070827340634070255205948400452705202469593062296200284774739798601095273715195484079347781613760070059632159501400882804258951145284685731901872025168582581422801836617382785244611349876809864336261710476206518335789014621623515259191706922936081052270097274529256629373492733762575232409912837905767039172361735488437847212119738612056890163267697010096389860675702831421143365553118025263843523828691192160422980824874334814470462222909998942344161943610648547709392559305728877548010552171898995693019605035499751250358524440703512478298868518473369118286866183334652529238969724525140533745234881881966087008961431581879671769637802779217176553918220960084007012387827751476485848547218224917658574034503835808085704430146818706181933430063661217085684553170140670282353209294608293783701885613260693330643767550695099956025952044885043214072961674691354726438956569092155581734675695645234522176496243643904304571485750223281366745817188272826041179560091931321042453591208675445023110314779958792499480911182315081804341204092334783010286778757854445666156705290151647537525945779108295627460290811417443726966971687726728346151824070305924296211915926785738157762745727610894931084304261214506353915556326623180493077504020885782907450335585276480216973612055505045280585050193612842067652517867834962475157712575404682940609596063704135226293190990703261663718348052659063782484359737355127132368965378587312141514444051722388277166705196769802114105718732478072461564729898388721708525883839380374903787034974003393288495449207528443987760905223168224441870700637656690805258810808899539104246512427309140863585574727626030948067568738560862695868137868878842847473407127233861007007109973176937826244118444401331250414866333258903783893598054201966026603429206824252204413731708863074337398876076627169929018713849162285458208842245383765647890291143252974900436044058870709685012333193062286122155693237803491201264047003227128193702000592725737483490109821648259059038743278876139444686083299365077282846804942942250488883359902014848995751212810275335555193522981431381864985695817583732668627267962124147605034012125862422489750722308708992901327849264407804893271324096369211458940426463610715394206431655013334462158319834459495043429082181399066449278468631964637642431598660542086277153078850777103336491513225863753988830064814021546527263458251808946351689406459950944403419093541551173445009875709861593377266583191983899865578054284117318175638701587374719007835995966011784198603363572471523432966014700320806064543558105021397940672637412342289436874982065195950267558631896284607720379932119967508514982537652641202195666964144143069959309365401587428247681059182906282688118513432755754116281789974912442998491639866898615082115364369059354994376313449507250223800760218156412480286526057092678380778501628218749163147471180740412392210021865256534537458949863946872226877219634136350001834858480217487418952566765201050448148538673538744709813691078444226011216409602633826460215871842262046287897784588526343442462200079796068392620145046446247074334866358768886598371408708759765306545786205583943799189131884626024659044050155031503567409092800991141689934809521081674161775098205523864642214330292591635004194264901134310133838008580291882423730311960830872931015763995479840298740737596372258330814880565735495335321535035064610960073882398646047647314010895366876769919429669632973937064188108448419412439890887196866795940118237156434392408051150394806880396443874466082758767432792482669803163141710543898585005477805224588609601518946499949049825200025912213414139740548711123517508150544088588167272969748595599688417657990687080074190378318119564040389026229773577067962857868189155067052510127545424291020455985607495338687945298738159846689728428104956906099853445412424904845122428173358173735894748595438130810198344596821147610588685477397015016469031030732366314451122698492964041334683745915764495440198633022185854463556812849672802312643028416071945444937082853544076356510230009951925174593820649397305483622709755691243989971246584250299977035481402988874983998193586507109517407125397439073591500099530129196485392093733686356766978386336803497113268177208018035637862325455986756245864163078576950652787173410692627617677517149802104561503158859430925970985316856830102423529518569344845833462597048338077615376882409017786384080434978970750108494534179487030375962726470438988392998589880856289581185363603967900353236755091292545097329466688284116248447423522373023579313277032393045875614799883524067206390165260102269837917728328359209912225051877251031712596599001324859329922516988693284126146669594622544024508143065938150877289001871464052898360869818702378669522299025907240649350099400782962899684081912192978723089154414361070355538863598638080364466935304212892838370950751376433214897372801749862543423358496643724935578951962809493585637354027602765060306135301575051459716651610728057366884615864966900102857401452800125523343970089787148124342423381218188976177329841688576858420662952359534699321299910122474319522727529540759559239758880319656645627026919124769077875712859244747648573405773568010191328992782878222012843640479316208803822770013537174152907983374403127049624549496391911338250481257410602741346904966066457209555259529991401969757338502538529885119607039447455034925737229860526230973637045896103875215487614758620522978681272747346281694746386384728224366577934530817001236830256385262646512050807934089629953499977820944644476827514375923694176972357401842271995984913519808538623821639610569070552446526778630128092518824900825577595932044204628664817284725312580708051034836880676910936902687057581680587087834178750686908626479438575926205915626950775124272007709152408603204335320452768367773342819434984709803392200550656201243704232255284071827743625636927053030429996258920673119026423434388856684366766118409179471527112969046775029448054892313270544136824244048160508848485374655363251965143382588559558159719942631424200343917565999064257880746795062942768816230326197905810220080892718277014101920053186595448098309043377253707204931960149534769184505192056843201890465647568514027399282406198951477853171626108987867175295054389440449188858670215374780956427642002981483677081469735562092779361065852913574363183305965398854634662833721444530783017707078799258993826150657262654735981946362663047012067366990760690770411533476301405143774870600171559865354153444691654869422630746828365366282836651760289632901498879556744301588473625578986675116896238246702330858454732321609755070423081529045770083289953038419502157288692877980748392231768075096900288821232286094027303049259241327510286315641639260185992928276768144843068167654653064853524456070702440990955940509845915573076168835899886745227897819854262567169056434424347841456778274043561592828269165295629619183890335047038867868864864151551954359082995433730781406762369961733472979192091705883352954095789282099493238921957345803175374887221428126768031593842981999898915239636544498321232391891928511436123025934946323839920301651485403794575584429176007039581516868534897502936443973848562396805954648187542504331698444343655857071855581342329452974447663615882986538751373545850367171839632524289318881876195459749408520379616747191700744505238323855139226408083353006124619366853649891446471581468233031340021684690768341309759089378980928015824243382336664704925182151779766030317085740626103525656905941398420966655846413586456722809362820885392485874096432374322755725143560753666044853912908079456038285082017461012348680864456649178306352465193147625047950903267126679716489468120341366833050177720871742585671259820897735784676634309012941135655658182185110852996129355607941991007520994076779869890926713439309520174965571114012961218308639310891162643204710690534219953155381925620313114947948412675530936472474692734452631101586151502060378617286949027507189863128072138447228627663751763045829154440740229863245099398477063823408453724779281125767197870973910270744877350335275676081632043173196825404539727231104129631673249187243107986992490375181729674456520697781121499182929532614286116058118488782916225114972696255192755982018904555073684133371780075177648733634167267864764881023878270764001581404078404935680392108405799614174098848025086762637255357434566177027155017639768533464076009928457320032611616682830305411199370090866025509031771918738291472670804135629444508535388980028610316399330959747840628327883361863560374976404124516367108868870148115424030723869646351392584383928922308169084033270066339704274339169326414490695946511360803055953628850832602435624494408865380733112924770267161707382260945624945249740061811145340930895649124310743638376867641560049694268342965979721159786530624573731044408331099048511368592046664490644686229489321739177457941866629508587333689515114163759648924020606569209589360429585843967473252382762486284113332726085532132548889204390524841207589429635116662049569175269691925317801132911360248904017746247312384567505026922551762768010849826531332856768933412341465976204961460835248134481116395212631330711007309893228291706322114792855864859247948721478997701685004931066168045442585370230673186159415225780802112742875335675466507476253711814895803891891576531738072123939873579610377852656147463800823606181805534340507376810938840535200085550494397639440489564096778686528786279006712138660697813689943158210210889016554595091723153944665526298641828736360581656128335694918142960580979033757787861011211001443490526773471200338391117183401850465958908568528301767683620544708685084748851825593516965897880638726920014311852346744019552670975609675558950006626306425768732988145712552515960895050739810914078764756017643117182744488963022349850111755325468954481198115611748725637335603830842459175250938096487648432382383572791953287961267021716258579508349445056841750100150236807113617132484006064739469000907140668942745412554438116874954510924810500175714564273001878233255494449457182171129777335813589274993141347032007474801520551696277758695075613021616526893142126765537287286884751924087991989736018412127515914660336098454214729595988395953206171380044639548118165673686090970159087475231382234187297380022018878842453739304960769753854274449061789041479913805076874732082344400048451268849679312146000540281798059121551394909838193061140040495462820042316409446934686787870357654742043695133776307197373985900244715752944227309952471204727349328416445531992975635624269786526736528398419916256312032126983502180407089761730263085231944639758322706752668227646853182473898067158252911814241223257124444701874373659370003446196629041804692869423050253256343530221987695150170880768064795034184881936413232901884863455787140401599437730932886001636517859801752626308222454468499575920900384527180739086629229435504940859377851543867998968059834488408941989714623325546781024177982939281113621902705251626900247041534551121637492873854851043067569226786585064759909614393225032702953990110942271437723696615837892215277325533354704335489730343553966946752682227587633543018206464467121441689670117812789710608313296480012984614413682995582066441472332080059348420769730979377176529464875248387311765960478750984799820258045581166813931412548989640424151484326440961022017417953484621856067494086656909038067730508916073369752824803499937252773265882085498948067801908279982093607367839946999188039515210468707061955702617059012110672060908613868439625439241983059118210236451222143137979128880070420944405879158145580814662137487829071555075893978382805260758965089997072019686279840964861782745230327196941922929261574350219056593154896233982393769711869430370296889295186190429498126176412049996339916325121180583853121253586723316827574259040622359995659843830523707800155477318715931632512033554762232524135264635317549796750006089314945878167377808780308066479018735803106194775920454399356653607063339975271576989975773944596172736482205482746516410052663638924868255430191770897868227529952412174427242942259095051193514486279441561951362549342538147354873004564285971045814885506377089696569983481404112251315906333576192519840130239704273812197760201986372140620621278545204568713897455764390834703992110722961940279101297309805688878705025831439651449242309186922042886371856924056243456328673141111104101686615418701596855162320725125364830291147357257601651744340000554428768089970380282749501928453704710558695994364093984631050611730108241529042415870097343218539039383415562200760216638194236804205790765357791444499910667027621005196378657248761778844289587831998397982137584684430722766343614465286076322048305080020791913128502503200462689800847784949547890729363301650186366488065717106437517638239752654546217271474693356826734111596867328504934880040715531844288578367235520685145304337701655892138642569536238623043537075233741170147614592777648724930575394450046631221538260746908459945384857006126890896106320858525801479515997300408676610888292631758179036412944610433949690425946373683664150317418041251058046702770609904189516015414004103195694018851299562005850009853897974720754951873285909854481397211765745279586650317324288394638951446888439534018159996312409889216572811291049904302980711647061224558751282160146911081593953976640227157493123805624951505916565412029242599108416835653225816998884039464373779711805729380327515717350445309432172837060693946188815140087698727115030417905667022709048806132940003052125574276727044270586652714267257417490681971456608049848026404471328108503514333009200579090330717168835648267422486503912704495112393476408202440969710018751241048035408527587082078755305600128306455768066409714494063586804154653698879727167844181202912327719536341010719606508086749139917671558837281107509584669195830236226590027777004547565466245006464520986178559382461959130131736837765610838377910939411088772759592216017223506799275731323718127488255372019467599999666956185347543135243655115323756439339143455670772360491396708632545178093141884680707218043081103782909850929466876870704379175593273916294247692849659815611576090893379435136459948448145580063119137712839189148011576500901062841200960591316844708167827347960927435242508466576610205092358692410307434820856945387487468894715988608245750617952005027080107496191586925027406767644480908051952065711647830385800306149933437307098070950780561289298717047355137806043874366713418629444636639265650159237467063372577855463003578249401426230867761748093960188745843280015508854228139140312362173751717316774153432237609378659811321949089168141285904503143307964792301911330708083266730971153478212653425686132981816641968920060446536465436332932812985006288343276553458105626125178177093172538448956109254460119893783709599764757944243202115587165287600077641837553458762422297987211693137266223669749852500192748786327844238614935813951233643676976864376900148657808734411085586027010984720315043848233796572322884040038714163615224556018795674508805193340242711039074234495267320712793264010989556992717314420463673401241753137173551391013022424981682679280412336422439136560706920286269939791221462305148456397352278955436159644336761781151192409278125479984527478370695229885347507355276292150070017497193079567766940464486423065153425964886874870096643151055200389519785806699519018283323866947720161614447959977953735507813409764092168739254759451963943939212329293565204559908626095800116252415215363261407035721610825206550071230116318672731304155163030658785982653639811827832731068514053743964182515773235465229021019709123032913757250274545820433288126863827886593508469165877742370760872342018800530135241271002400588366187262811915714010791029280916944432296965869359481632990699720505945933519836265858543765004770375727177094344507799750677514363635842621360405995132533691055976786172746518426959524224444217823291686226930372287642429210705453921106271719973426142848443908776633851295846305505128233740201121101804453294897763815725606173462488012154248440860135697635041158795609205225302984967611749749800968986455215309967036444316420986988648244231513640804244277897279583295381089503489178454749278805283430671810572548641717470610828777363747119508667993167339349395603732391642185272321578121135470225368161205989827966426863269287554147802193769906660591080502107988828900876926596006075134656579045862702867629164941720842994373652346352420671224792937594006548898920086518673924607383036687939176533203418321292966430542449441185646386445051361523916026338922536288202087150861351386717037470224365760718919764288630056676615549479566290835753849889511118493844380597979533654630786813541660074503834326251803802333523244884211244443605511154233789176768028831384642150500942878865225527164877236203401486928445682739319057797157562181159750951846126292674630426909783119434640682956916658821734996391190678544117550733978532835997314261738253838209296328796219289425405249082104157667917069471212590168294541322481895131313492679750974640128309260610724091509517552580476367352706827090987704809470343310262475611086743312339306126329054547885354670005933433125794435186196958515553422771372378366355803325968460614029704010090579472350258053111167806009256661628005923194464980502891645712996175503253377114572463502591319458440347594981318710245729356022406560983408086115068476623435832526782265874507319597934959283394815257909335023888715316876056113791543228738964350079788191858758286222138105339156486257540141156257008969392824247898458203921956307888653826077562728246208068129762125429827608077630023521586088957556582900281505610100694273211910160649598823164573280576199916853052768939619363931212407122387024485672028363888867479296343615631396750472956964515458352065105558952341286577330238334621755395990329434238374309895376540307522760696362228656514355551724357314584143506805691950586469599962872727876156126418370636296763038927913813199951340563605433494701527949271238143462372331055761720853166900200700680575223655831010183950617346714731419134967148118557453562058582650610561937887954236017386899241724809816067492399804883433428154935204848194604008866788705536104905997290228138090024078038925565481886179861302893458887102111445010232442381413703971550381534363698344561715440206789638493874929214402024421488002772190653912673218074184450500478937601418693700463874665738428293471442464978467055010945754636086809040970620512958573605803589445561949823072165879052436510305047611143102670258501696183738304353154389620461719250764598945653173147682366242153965007452737182573300713285308514476436040836088537888487305555470399393944646349611262424042764391064580649850895827137060106491976138182926760283320425199180963690439805566286235187071267413613652666972860392897530136401092675729991078359049458335642818480043922359128532448478543607759061561684730529408001356860848211353128871431713825108552967767045393973208904455109330684543713396547119557690146425880082469985274134736261314862538792331146929020616728001371719009905121798190571535528598786692271341710340595267060194886241585779302953339290112905395057772664199135417755417822356418630696152035042155117708370659464323715518006567672852735726651107896078234687588788746242411496922776242612942890635387208451841161006055688037799368312841938914762265022743856136190035577279988603683195491613095492792408043207425000792419978100764869022159218037436207258377790729836814919292348377536917307525087560052960685423994583760526774311485503418313397194362721732800729804623337039324201921820785302594681912700719318067329491275791168845214862533749544576271632226342375581990731155996985495444004398894534905355252736207083029272224955083288757130879588053046189442008788378905715036834295700681495153970190089132058631864651552986233740366098779400017178665566414541463254025653378576844134816617987246913355805561123675978663873351262997066346055915365137058012046717754748519549704917543282689172937860579583007667011364534512474007055345738590860249227385108414128483487876241922852035600367998307885269321021718359448827057920156753046522630340582152161577379597337380773262824774697563524997630403020398330189476095323804915837895042678669878562338134893844863552582439489331512240768681376750944920508923464087674162569499521871415447043998447585730902537617210165819748816478258611655044927522056745977609980706572484067193500145439325493731731227588530673944532576831651454373646092928712964707090641492763334518625055764537766789447289654346970366976291951494209848102684596668665568348996242625854569359612241262516833371083943988302263231338458210039127470229467390615773489114111427911981634760931127473992339497080088207967667235047287370116325104816554313184659343506779837218205795659582789828712820681367498067867905894415178236955775087402914805624765191134220331434063134024161242342102282506666420632141467557480928732963682114702726536618336044305111238126923436895069064131691146105653197262469331935380522516258879431435628538109295770162424070854962082892972370591595841889626061186054732714105408852751254770236957410707178595536913510834641953516231091531906844046809781332316569282987550053043336123868962632831232159323870618848505727555751117237848063454433692724046310841247578296895922238560414433395331453087873032146504863598210293992943410799716898262887378975571118698918198103475237804096100151740084444240083737887512856201412862016224055443629571848576762493669553047758414995901581481155158418786647459844668668591873873025261807753613211250082017393977893426545263426833734666427359747584077360069712331825472902138361744809352272837705866330688468048640661716721763584358447782632694600524967021560273771481975176693785857165301744522834417618901194426358999813149917771314086362051128174885270841197154051695498796090550253926527562888483090359786349885883861297618993383021929872804517491037243203631927686735168814989358414845561142326137133723200544303063206809580376075630960965546388429745643649238666351892818256541533593215717218504658915472313637765196931621017044778253383400759183105212900816330151737835446121528586035777330787485797474420327219409498922311144841131885162825977398379182235444188897551386714616015503758787529034453676737308732487864701137168032740088718200017551031288418240101625641822869947136824786625843369793179318940777136717076370036209076297391711857163849122485946985422168259746052183276005069500416593459461747443467381503328700405003777455613169693014236408507258744143518937365555371588045250944770467974940721391573323484185810593792228718665635344346517921635136438889948834210619842502400212386334254656947125154306892765047748880231791755203010470581953865940539217915937543916154702317924182391298643598429948564856591311393701672721703657442341921721755275242289902593608686479364524599798307636361455690661766825326327765394795120150964171490766633097207015083085820844974835862272801992511125549246464526943086027062703823328227884699654941654922214258077020575264238165439408581085032418106645558604705834750852599757259855057782111835810881073576994988431519026026204739904623549523827883065139796451436675197234007700718387228228679366287124241323206004465869068959040453280294481676921993315026403459012230498661084915449448592809857049100953610937813886162223297167460399978922633289179475770356114778368482247914475164938351138621654279604023501787582371802375309397917003068778114652845564709963465683922974152629770112840254031240010961785029076352035807524451233105652867554644744065213611228516465767317936444996793256523366389121072083711103956153590616345738530934212421604053682746358923591313186880391748583320345169058318640049042805833005535746945052106332679671540956597665333280226298992200583528894918683675037028207342102882386715397191347841558665419998631627900797522833811558606590866302588602540645175537446930264418236050653355720958572773751521220582046524187828409969324321620071667631813629854700507172603584824826378024655194548377817709791500501175074447699568952889283696338713956081230929936040151544186302430242539143259147313100056329037494602763906652669717172378839857422243966126430369959750141317747221945623057493388469733039287557449336948133120094084904986194507695059825981941305921120645180850826201323575073379600710014264184118870612652385594450028235589253776338819236338611442301041941463717930086870575060976977002924684391462811218887699506823259974432160945655095403010067368494654600954444206909728604293132163492898869215309168562072937505044927591674408915568535399845654460576264973218760485867639890609839697487510980033153686753296338271425675397551323258621049159630685147520606739272495984652300941255056505890303973009327477671072161104242141862090611692344378426503551831793048607149934329030056918119871152619112027139005668668301567728394351512379403729617243597822493512618943110519574016725957618065023656888082960552581450328444800765443335689717490330778789477093430788881660039094295843786488190832556094813803589607040161677705451002084247200616807870834326681151499958760097462640076213691450662784136422377609938649071989141645904963822948406761007903791860114394115656719906359171434978343567495090597109840838841451746712458959357928109561097470887823295050351483559953516669304403755952753056459149789074795572019425980472516194281369226016409848157596051776547985100470576178627798068339056021182945576455298752809059406205016605534461237421127309770110857958463031231242586170454674402945521145407432751718566049669277053664423257228962797249269776362332121994727947450449951009540006693230602466335250286612345397656156069625688650806248701359139491800699430170498273489123972794595483918370220004750163162562784954090117706606612995619503759410467104197590601219744603815685281425290579597351384086255932069720684938769730329295758038468739390802949611920628129757544196133677839363261748556592215238561554974121657635223392588887035845854444427647673345180981935634313193499985959756514556417545977835001862242104319635937020670846859964515456330922098100693050502458692512921752665697893836631118327409790580271856944355900250996252771735633909685987777751297929837541543032242422550011540079607320249535000544508338420823914470201043501507106835680882863370867329838993752920230047183560771368226588557548674171032857826714626922326611722353219122402128141873104599267603362199403602509346270569800249168143397892174231199025112688263414710084484147625876827814564437221581127446593925069822804537924219489940901250562428085125588771175756735389818014532087489980788604420059121893887374694666839831017803422868518105075486192224553202757556857958909439365995146426546859610578006783495851070238665471212532402461502308990008729053644211311583295564364693995001401176650783688681939421036706927817051733652843303911886263674471507802629680946704622445469706433938577225707426770665394716440893903842484663057732095517488037325003760795685833728695645792468665787107313661182040900683448250459629393080574826518505301623266073107289911245689709767964683509466179087827701016849823255475722019457628824049080901094044924903145778076025696819240471879157624578343779103884174968756652687276342491068473011989374173287733879323406173600751955066568056529160661775265838949588511764625537699162490365620116505323162454820291646331629828772970439535346817477013614950958157462859825392085094541477238675410793856779552802763007557004537961784386844659125108377571985827309533187893699007582442436557704154487930400576517704904830112202870717173492916101025166646854491311237968583321198577291690908973447082796774429240436034476327212475601301786721154900786914528966344934663456790231996761834964536389754037551894186372152284324662235848023036712320206746327511530583563781662823751118429621931513082283805932690443514998932960960380261382336431938502046998960410855157501977439387684401774675622245489544131064878125816766263615848956924104331895023621750777502490055452492745179008654971407770226171307109198554214904563710509603590003066224541379698846107134981515301815686729198746055466533445927516875405205724345016014711440098689909286602613575398552238312348507666198857225733811183383444588011313574067607685242900163936237950542141579521657764073047371064095169797459261665301580500747166799143821918720859168068194654582727289583935511761184970513586807433305775774610825258227965800217905565110812621686586283060734217001569759772891583554160521962914095885725253693966607485761278603504382474592435765715224548032548726876244675344601484582706787108207548235656719655858038061288730004516912489218921138535496654316713042582312531864039254634973757134215634143327419587217382037028590057893464714798112286511947626423772576949250139857048184098626851140636666657464061801138285799382343204239702984873171589658300053847350467647503143809367815032946789073452938323189562724722111964577552475977855715114691172566668868936531265243194539873605512579606633223576028256812446566523261615878831168936622477699955096536728428091984873505753763167639959042399209704174103238770495141687128984543607022738778053726762437790739917367847913144887742871241074894691764874537216307250491770976535399152872964571704065184880351185370200426386093305021987272097382524944523299208858011890562481399123828793795534690562146356290632739866932129999134626819937107412825815725651550016485334458632496387290454042684830897469934997609496144941696693997164459271329169212784983984699927580488689617654369889782950120728259305423621404664916342725219939009065011433710063504733040296068044559589042816304808398765324927508098590025867256789404314793608300545168136962770423590287174055211738612635219837119908789601633910053140120200687181937184075705752539027659846393976249318255776012823001079204982536709518139742170032549390988335929233091678733583669090579614870570452170165880828434845639077600750646456962052241841282123087089520299546696339485258100617728141013987767554894392875129541031506709113371152327885143248075130689429505895009579211152140973280271654819427767921190650310565937935818970817394602492665881372968108851969548752489982847872936946542575792445496998329110705454132864905902045864520689518487683656202440893704207483677701379058762535302879165590272786386414013412619895846568536853677974041487194273018444351399967779674637449434227503169828021376254377708336082599564807832968013614640873511504272842792122047937422722863864843992719314827978702546040572800553537621135475420487844555294208940192934937467779535309244746895741621701934500926969531969565612606695052195628147079656482968112642575256193967637530973536744064152433768075372916367091418844869850681852087398559042422229473456004972173572865328455223114358299548636555901209405011895843809663225734084451010254880783889449786963865408285190430663747431845676653154394312069099801953130183240532902434960206037318826493321297146962332628265680827616227702618028867879832243873173503398639170352342083717973565977951648332426187770978154381083967430858292873961536639526772022363576137532940943165296372367024645143717250548184110114628115745727364599811411369998606165806994065146230147662341911625121723351632954941882600844043410310607509530048067365388478968286531330457157779300624611374377860529698565091554409128193083639191529250466330145049819316333859728833871379454712672760687234907305363844036461648005809088306366730654328794588556711255498019330094425500383736983947555845084938531798512741966481765983958586569148102234375375868128875466149194847965453723605272714364278776419964695447965582229221782497975154421595706535332156822909209650598615816900541137353432659226871520057618248692966305597984716633140614691440615460046779359585355494438111964700924920537805127893628692611819103119569590308161167887147529554256506216974225108519804861441657756696537604572954338427285314179842377128117091371937903338423282410085037001407452277924148884452142417210285629689030035965335056249220701115664959130732041624663435181511072479461984149352315311290082215887976287258209806844526181040588843984787338265976688112962219851763047092550524860928114745110033906383492741910307404672119839470236921319710348332874373531930379187097413675231855653217556728947969246619912783181179417086776899263669489623121981137096016200363112214776300432197416805905005261023906740814203202345364149678405136329913233554079708439094254948508814110192491776733041854466606523609063535131625448800969710835637527495373321635606091707048329247708209404839373917898684666286963439767927343180014903965385574530309486109733774263207203578030253391284677967596691046148305269703608423957771041199291390659591201915171382064292323982606382632201120754573001466086871210130743799214761206016878602391985525441292850608240982523940695848960198379449424782620134420809979056111813271864880814913229433156528929185973004754396199069990543026000717425511311061215943903240120563001221204735953255066296421323937864809464173790886761919658047332250088264015313600727429370557775158781195866041734337184993656144182667625407750554806111131192332400063746597286031248682412042020631732705522067933453994197468652050833465450892424702402340892083042668263939819201499047113221731682587960907630993252744754923076364188552478585409317453996638008286550456877080825362899825787856315037440458464168294182977502323475199666248852592146820859398513403427154597311922684864425335127088060961608982899300119265569413407256949255519906048074083493022277344515058022282873606100764999728206663475628565445655417336736648143893395444507992471576005872055229658988202590458640170742496333824616308447389403262157647980958015833575046594200634392976865281860769567060694756765857506253940337343056572756788685865828314403469684294652130031149701363304028885431436202999499016519127862336856793713032000973062754944152366645173874744680124771007498060841219017121354154152171173564524231276470273586641289820962134787859937620837976537109781996986745179950075395575506982199141920972350309146564737454081181964316848587440937823521645793889512146636574893372020446046220486974831044282493794397714210115491219572135879616174855233661014751020665376285642788869226951901284481882236876657849780173926070221197926620374574789636285997121797335141197478254963468567463577863503280910364660268250128147654906956159962858476844626013335980684797117396173092005072653500828793255530774065890099695165300232277862502597919060683233257540490253706335187210148202248507390706374509855978497335221161193769402707110024364397830324948133540882274387897914865216282200443801225739402653347645480918403822118567794960194482928480586226724729303297319059759032430513785192064051693196966357636755680999483510990990153576494566429797069039358716295770512289698481034295118189400301712563629603528568096262916479087207944824443099317681820302700645876592907617246333308521689023396566936546001149220315433616501175780942262065498758188022305964667005146398918114636385143512845390067217772389872530476751896750352614702315432814038643223746529206705407143875244432810131176043335865162036414374928757288936534141075511367111422354374074793812824881959996643724275589540545867636607972311715667202071650612635580136518535460574972283533714742669058130067531214741979758621725001210946073998952295905665529436164193575216325114038200550145219081725041877773728583172791927902084045414415578717870322468230236770702691735264174968553672816878760605408661402041007685004406151828769879899435632008374062198109634476396206565093832799352876564449646347615735928937036779941049865678545186750688272553929425483101474658724141195134038223269447381743015121115228719564909626892706086854043054793847628226519356172267769335546547784693325851219763240911950612103541998268743863643533544177445906807410453477850836292634178078846211540166720420265941691190117671905856530293660196824750378690133034427926275024080418990321901040276999178654558460557113152609849445256306886322815726344596710779459533808957283543199261224942957832013781839128656207041541587604676460015312450999716346583481505298387822285741505752310594779791563403128644712088289223150449078738565398021797592981508845506782113303223993934138673879611927894256579087098459726603621795735865054782807093119982812341357764306388592330829913625909834789442868649435238271915299776617332719621704877161869065793013251590618704564718980925542919431278520649814726581400683827569783076779257676027319765506237543914042063842502194791016178495151063917416104002377184721027079588990805533698747034208279782408853739399339152035800008479106859839458364811678388228773803656218290123591873684264617344904838405331797925100121581853249970268404448314891558567607455956716967091301434684013039834063198820713268220745486124360511914096153860016643511356576772889674396426483853650488462635998405477588004811990052580389128118343776331446269745512829102291346612391939785314122047501191430223534097583895293414448349954086926730340573545372652194533846822455971044644670280685344998476055638894130067963562774541129235376017605226970940639931428213475894285155707062634844937544133817196328356367430995133832526944695691211980400184789267789541460886740592441710069926974069456754727389078111904226178366565384439043739131836568148560716897883391412265289803384211361524804011064285461810449409206961950686263484733757510418739839283814861620251602299146758574857871742489907525532243846568479814139953820473386824145366793222213747510719623696090519729834294287053308942110221257612618696037172334635151737775253932434111095688650239047187034153754159344257201937843596534071812467630580422698686534286596518181849273385458575716634768754046357021841029434376698584350162015719389681504746377290211678802314046508066516629329920254835934802925002461368045399636962349744642072919537260253147799266706133617153026601187672986350858014888419142154000203515691161500449075488908811411973335491324680164222544406274320669730842653502286727731682743815554698471054730779535698043088704086777269451289194545706265810571988230537882644267339926585723219029644866384557967541369479644659461031898835848839592952736099024471793329172291971619990974369949341311437659668944451443688539052890416858779870246874445230353060285036788188699772717898509092262230782180843135619767662557886293497438921955543215886336371954704905766590131888047290983732641961058925227511704418796276261332995270481728352859190400697159540996763625697307011015351076625111844852152665828960174841324928776622253648223953742724829552281563080189854947130131688582301541688650458036154431905384601635546432156114873259722842111751654859411896914181889182853767565606707900112124646270671519894778040186585093164414998218478922141303707395646509378591331280879681230051432434198199474134251770512713553602590517726003982497374822959525552397664194049646584857947944120515094442635393606253100547692901788673040207393101661755159501982804514646295928754523791922766851015517663937921630444187478020033172721109394052941212155691776674686049458613343446413574299526576753225951291239186999912354531080508708285965728223638381013419780614623601109929846561871803568897605045297147665807086578401833890042594554109020070249276729510760927459561961144851238232124265562958063281997719731715821058505992415088963712348667925849929766615968088391466657346369283874237749527904158724521604354791460814273384588741268083495752205652118957281077847235871207391499084471360119589022149289072572569378068858300655351295428380645395377085889882064434334591028306744089078649818241959498006879351105430282521391320983239727289609553528080461295753224990501138700267297842189635159730270664603846437264721308170053119328905766696953306843198343852483444222666006398090975716182997102666194854444748154677729876526013657115710424444112219918408904325636025389455738534672889299436876802851752744176097115237519597961295436879656328083058841665311480962286892499383172515848782914006280501879970695600253981143795062635733978837547574736223899985512365185395872883535375491367239820343104349590349765445652740976685763845786721405651034042938483025270073273524521735280202535165953822101083686844041564539985790980446582956129701429054452948759370568099702525356060247534110745630966466887803079903968987925117063239056017938072378618076295121950267101718911408627524258327739717624009006044045557510906096785791248065421340910806863738984753567856500043938599069531905415393905755501959164265293323830924100796610299751686599743891978613625056441288917549510384881670865472594910102312426589288380887020157683089585840135252140963707568541240343865348542630818126067641493385243423543824989081059117589954823024893916700700522215436840927446362975462287009366889865636443136548919752602060388707371059288144330514479302177308791196534850900706990180956080344944034393006504737185295813002991690748412427394397657783948217693129559224410003173412025480564099488668836191990090113998794632895379235227043576221486143015998510395144419973295460169321166230123166022611213895525653184349804388297049303220994790812155566781445112460676188229781829615574964812102481530424907640134777262487193624891047606574690704157525652416294689370653382064704888105168905587447732280379854354015436193047525436699309624027689918732927718111924535025657351479573223891933309048787772095318206031928376313245478234067387130278715620630325012332213828680069106965503541319555940984652117067309130071776914134773495614283271752279011841629773423787158250563742233375638275533364971231786276461155994185360742887400529697951888585737687103379100411627827915399864239554301419559511715558470689820400696366533723716918253011069596293687827500942372333840587898187596096320749106151826268989859998357326627934133015584782317444177506401114858871576973399963305435374471375642581278523352004476923093492128245895277365831463882698896293399200076817228725046586210289549930685201741248144816720933065614538469642867832468908764068996508871544959337782060419636247044968387350972000864801003657979129665592301654644077540506100289952456296990050105496333920557553373086112655053201287385570380891029504474442620652427977249434893866461898154938155292548477313868895970657609318082180158724970167054042878503165760066418057147375833650004427833229490681902419564214858314501235338116734012713691788930317721215383962743587421169425488203721648069114650588974963660689609771639453689138494017567676326166491107594140046546881929825343314575447992242096562670226439209689378805023240042846467020626733440691907472516575949088688178002947714317500431003438282935633954861240775632898892839160037550747391986991988800180810385883907206376346254415320477865159284610783974567144569035838336542663007230924279338908204793999228501955228104287678085157213804193103286940190410049740907774057299109003004163311886359450283144670376936899432582347204861916525225035123426391645266947149337117314811319712117236422066994905073695075306867172158030984363402061554223816555309471639482037620718047511912686836853153018127129269896366915510664881767438342089551952907147703581395323712840054385102929180039955483380649886665263171891821166809144554984266250342939472080576182640532644271988533702720913555951752083191371898128558357677773471602191703102509797568191870483142284711623106366657557102294016518860010405324917712919629122652809770469020586983306940943903496759628531661722446252203168452825424002740251619101050245366777085887164541253336837728945625959731337585852277115170214410459667669386290033374665250284104307478089284499132495247792682886893191189679930677509156366928567647890912219170248565864412782181805322527698396867034220490525924695396196360772405598527419024478006442657019350423093305672492817287686653886823189864652550527476820628018243308222392140430431712207776834364444936363704034388419186874912231340421561243708957636974646993203072092909929709237132680611008395381007563085016670665136877227262776496748987324625270644955500774100258982973645044446909771318501341968780720110918192472290037338493292325015606243699163774037997354169390716820408627650682343791571305177137275428462988548988942941487627503491520188534311981678322553144975308485626820022006100030811495008734188464775756123933051334982069380913154776350879666545547471440262083033516728458667283923868681440386583036172649521048347322478124067117714046376051727794206979021013301693099530443021134816547465887246058466634673286896133800633845921637226348527379335295349757110919576140314857573728010923643541798892170739961170165035530438615215011534215455187249664251583011966977349881968591902298063742189282416381858323985740900916344937642873502261317104193599207288800704633056077561075232774216679359739776718049308213008016450214930450869385614750356450301868383986724109790737744325716100256888304736229094140605076242566845216042186770748561053219891522669419115502491486279987597127373294754075649630647986874457158905474553720363974598583037926593892234839912596037327525140495892034384670954887750369352486084096876751725911594225486295767396876026188398470035277301476764038196236976486081232424442259325355208470617655888499027151492443658210779097957626967743767502679283842817607766111465947937504792211632089275518438438590009502015039533345987040163863409300195169150890208493670628257300437690637134463707175940123203327777288516417390469512080911964683457322542257232387558368151089722362000736746925110987733842746684652488145929749393517594512207689577511517606966209479567947940920214091563391975936015860767521567802849704434369227173554941252606307867645129125909579870100810850488397040978109194500503113655128754771185313893512717805823910552408070322327674306055234522490216625386263266564083888059907463855743421035605638738361989728188664624620325549948524620649018674154745599741434341764910352309994382478359546838422975174150239686207243158542897069785523172449213015784896101383452748727272140651609959100165637676246999268300395866497843772076528007345067745892889185678269295726776371569592975994335585759967029175163969709167163102873157385102629826627370163506495457736251949616543516756448304345762025519134568095256492027525989268479624415747441722746177185915767892146174840704615772536436822800397774163797955995225260639931598767984515944634222266588764089505768615702834330352924963290508074550076392905837999071852683356791634072855872522503876821670525462528506128936111717184289027387323871055740694591954924356164341236399886461998181802941100628332203432923721326548764595076192628467630830708743862138161535178089549702938921470410999608410470628075604112119464563919866845151066391315913754085804881199141262571953274169055651734037927864785331795749167280749703981712961366881944507461104819670643328563587600615379191758094726385954456143737398001249462175786331996736838653293317099258274139434849112387874330548835394014716588688952673795203925286022147733806219126471167673464890604531879332951948775205383792244447974036891517850134370293816475319069588652741712667844145994937587481607149695890204052867157840198325641340543538816269606339777832698147826565909623052687749192363509758994288996046666656258034730520911577725598491988893114828526358821472078372254689062512051177751918401865853426376390481716373312926424965021743266337871856749412014883133201026575859302238522050599178533686658300966149505146866952455303758579875004854313067447816924078564520770241014584593292191617847745673423943443495374011681825444527653560589595030862781050151944724268554364737070489707262417331676250523454966989379408231421055725209257654115928070694519905369246040224251912885661060088684854735704830046174523998687952589762052258951571146388877421585988771906038209302919301187706944421824321339608612734679284750029109665891241019389511646404165297163923852984812188565819111349595466194247805049894273162238170169106588034559952627359378173555105027174832171677754676150268023944310121595144737219331061049749366295667418342169785947811722038174912984112740736124731398578292845122680860466967720645014036405370236024690790094198368125913796656901189206476988872689533532808062818754569891599039321415911305533465732571457277676527643910278816825502276819245947300703792455108629400053006480637224998955717455614642070011560073402574790022451181056716529292287924488553504311838464540518598312141671868215435523219501917320465914904552549996182591596132630969961928644922711745030990908878676521849371062132754630883559789664951451088674969067474695153640538728415324556324877732684364418816937622534985300552179894530693430376131749003216695055076639805986667518194084390994988130088950421569295122270045352487500725066033684754707782711746628302683944361104722024288156769972433675626854764657788243342567835145128422800541002314248637213677089543909418910071829556722343243835022322989325480558956857966874131037948769594627053358192446678907038674471616263844215097677350823476661740264292253958162461081836758175966364199510524372450198102326045675465341190727229805987970104241408768439570421317390750613170933903779078733573881647211192638302874444950617998969607386439092303970262202834473113726313833989134907596013521231243301130070163651890469546853426623963650926145709452584519818879919373886521327818735017160228482424938151582031525332556874818117377701182939478374719332081594491975780691879914464251212659240259456394210203345828134970988380323925095110901135030909317385047002072919434266243292868772849806665143105480016100685828240596164731405893504800058952425575580582427937690928352227835350473250849725374665323769896081528231484766826710565457847911043997826743254536032633601659964445415312804279735366749456056469705328645713415322941409821705022083285442951994915196494145774422866665097613741947984477836056277823725696417242651686488074374677563919515011116922087396230412658412040532886616261617158798089420860463150847860825996341012769422882479665936928837393785964169610464478586409794475795002016544170509014788352625376695503642640035195457922371414062063549645853952902580670176815204293067933823948591633916987538586402395716312096820004091792002878185752885106680162672605518209871931781361036576350235808238711964741298201555431179647371384805143073688257879366430823255887378168265125871279909677834990183431777271351533815424354680206848478079135562269443262885441404904276603467257714834367342944220857188477965018338526955675447173681972156700350578508488598298042550478048838856777274389646964347286998455965617174953132392348695556473109204933597189897627830401760621611179956813869093770651281484864481552862172536059924488597899109302566223353233350379704012149931387405240807823598234214057267137291004161846505574687181992113707971690608216216418470395891904223388527335000660809370066128049945624093866020673830283949557324685771226702641698413249570237764316936384248027034637780374621755525023871432842794920503264442146619286860986586300255654501975200891243614620035866874365950986575533692627712906611744728773825232940338825305536424177877523793158205978547755696072917930160050697493764829163670263176627544295601554454161508941471236518498574848228073309464006732976979552954843282158761080696992282700793972053992048102163805953838958400349568970558679102363336444331336494544617870045391928401755638977404111155236100418288114364074560752658901051521302284132812041185665449418302547930706568843193060006858347368453219815701618632001981225453377458631532829013568035432215501825857506732462859771048082256160081014792383197920660495962419578591289866256335190196054833638664029741338640298808653326957488333122857297883243764057535815294113505387569813418583057016244079320403891491454051195879611632267478059924507121690460242976862539777255740950854622882409152538983208896702014429632055849499731858166254525296699844843661292422865720633826330899018198778982938959939309142310437537651686421164874631410746952169732332091914348855363663243694076056580112716740164554838684312398560840350608900408381445571153938322904845486864179936682380071820678507047024920448183403835609882321900342335579985966702328327658043743925010224222259895539682597626375983232382950638078022818390674315964706855901715035921460059571107892250830122830451996228287568830430222122154091829196688378177584218383120622603419226869911647577399510155286695504319600138284062155978155564459531659390025338059487517345594645769956913948515389479353150144751677340465616542907788771949893502071604496002952859702625082845251132756748943739315403905512036293653438694061551925065193861006303073065798873565929902233438740915259051347172326023956658869413959638058634543919432635149963377350929641935827705279189123151736015437741283096557272599548940078541479232212507758931770128418758509973192104744465455701831288164358564212172330657496955989455468409012041797793573045031156229846292403768452704483067433424178798561994996347015859185285387665624686396322258870349604163866599803471015240341669014292012337739813924600439417110189224657179979578784752462881990614457378321038764175068932247302793213344878656375458012883681479807578747658867688813058477698978445439957195249552874316730771911061894092296993095177382514224781835605056014066329869520247026879290542696007639481365591112010274001061150075806651079062526628076392265897202838778484268701211345522618248878835894333643211908694198086602953389502141961769204426768335232011957236219160557178803256822670719321466331924359115216278070925936680690062785732833166015386284372623663595191361027245521380383980925256065432539005364642199262455556683592030371678522866403016175359347566676124542663336897000327689408823956996595277657015891832385558223290703229471825343812622818206957867993859565320259260116987310618621537369494128248479009867858334082024373849060648963821892791142440437518576731924108486692016266075660508298885279750232910197711435838906897110740036714340162526421508191626684678022386612048390922930046216036682581038367722114722789202759299893975471600970621071024318771432558242678498806483926774774122045281553003734951105460510185133080677279720500063072711601765831444088116734040900103764277186633195629405853974226756732967171026088823323010127614149174565251527329129008566508055025944398693695984655434361906409073522410475931664246292536466843338624091721418488054225623425752526778252395914703814651628111425558693550461690494963611040024525601324174383527481031273687666094244916337091380774105461359635818829885161831913295775751447698149583698358946431907494199601996719917498162771647740125745865777755267183708733032076510935162834203027794298833564849011285979758922522218248152953275959398419032744067030631028782006459962286572227979916824956533309955378167592050145736603265693212529423136376757855127408786534280578809391971434386738138768828230965380100384727751987050761571336644831499214809208456165939972633865394219273992901704320489679681548722620287250910396034702949055843728772263570044307245730973171559723438347196631746145384431778379120706761203935454981497915874288264293498249691395433325141819894300911034118173745184182569797169089633740361319491542085614116922636207172145979174367946562758506138061110842711997672994228098235827888947278726875278703591994925352187015740720044415134506864521375285154271051894898030718704414435702445299923884861320674252763140100800548981831220221908928952199672574813800202276836120330454575929040038710707897320188349721339754920646894188472511957524129993329164346365955245409819715413595073918660499927184837951163085739604549623290903959967250362554188628781266148500630045743755202017239792155097564211822834950084859468689840374117160086688200353224515881947337248677238523417356937637262114123460469944275858577368122579136270811643910779243634428052200335003487189584167204116956350179091232561887262557685468366033043555960385434371139090643816023105383118781563053110505929227943453404603360786703358774441083314776601366747233652144551532501868436098939982697952935632133332663431787077654904231944565454677952717184036659550445551343448937722232189497383365894689631409965206126368150175961919723314563336521486637654469227913309474840768554002154256624355209139064689603784704428010303078514699481627416063820398396199646487471836689926166899774959747409230832164075072786934274369780167077886976011402086827832773293289863299952825204623950815697494890759312589205009468612037953998190316528568250548561476965561633544730199862864286766439557192958720649823377074043626672302428578836339598600637424139808305746450505725753740383675315297125911628090690495847640879924139366421784157798444149920091139431509892952540402218766016547171620199874576824884819270280981436943585185974329003286441363304209842591623032021032541014741578492617995963562518018112154234289744163316843685026957365105596404343656917251958657297104859768941504189193751921650532051425590961233108338558201009189976242722675360812865799244666808060349216238753152240745876505067636570305250240926361149221995195259014055891638264778643690325557526947027656567383349214959163271329014153869080662921708556686926621724608497986982456659668631656223694890885254343611607516298335572329616923698546018685356051351683507522429663089471313074865799864228577973823248381439572305745755138903480114407427212007767574998049283731483550690218630325036209855752320620606840614251343756393916863630152155817593886493701229794648771341191101967775349333819566439590085994654072470632701748722051960923796120800996521269254883080328982119638521436116475580375639197277959579123064394228329129745534529485043863319607461849358056078398032657612636441213672159738742151230037285784699577445511459730657091740745750409282776137665959453256830588271575791748007532566595573678552610786032471745989967173998537013320827951570408262131715423664224003321745550776331879929807315035470464440678638216463521255540013364493023731890434421240609635686627457037592119329293313598431010643253403907568859682380210224217838661408328800562321149189461510174983194395047262589783990773192894373680280647172973063051655934117218552740510743358665503702765644110707890498174184816465460372890551897705358199206580953919966037416613717296564207514439538191353400611357200588525382200305034092015919321190250470017175349315764056666748333121746062840307094627131603399078030367503539492080522557790100014001250717904357357514162242773833601403972576721819457772558061937918903879717559690179003544051363870631630089012451279204356355536617864487112636034468566829541581083811367804746012385279354995606462960341221715330003009380869659795531686850038682739282800764211460491632901095174571178816234231329397306640368194194698516560719321207920407717105227587697602760864719610223619962129575047724398011175373124188446988948943984011387786819336623089509030185038768472091226986952431935844824424311634909794179144348046451588554721716315606002463311023973347091869631724742128362165815838508717948217653587423186515877820411305543719051514641621357683965258839086220948281826212173644157029887212986812991069427736099666262807332810564947100759205953565977788895373430179408404986698548024000345195142632319697006766832980868606895267893209391840357598195834073609652461128601156403740595724373519001513534202278750279128676582919563836796275932975525304173844261140147197937577033359883744027169226777242969174749817156319481974235664176408686217331113931377334572709489397979933452457967821271513902698034358833310377457585803780914599033398348542434645487693921329224494258164744994889627094066611853570784018202864803482489933826853294853488739136619690498435638928346555585591662941595224836425359983799565247237259008328639156918100547549626284606668480317026911025096188113213946976707515801124779488190238278980349289545941981945733535683770176300192856520315573515817846703325498148272185692641720481761362833081444289249086445734870964935212657472933288842412204400138715541330468774477609837410735809989363747412788970568214009849612652434756847155646537554341019514808144677482880918996713163911652429435217468552638846408382865201167161791155650018018253472219872937610091860591928450541259035210302974505173538910009380887610125987028631056776793319459593792751222401180898926251020107059017327691936311824302699187186928400444952547524276550369879282704085952124648663862189327692128090020255275149466893890264841273368598319541732799713197588407905229057235081542578974136818102944846881562606743255137629022284676427040454098121041386695896553217369874170380517262827047162758962573528189494990078606436377999615799491014799528558669207473571039184527305597781057349521612752258008286059341631414726112456774214111390095368299233071768412097677822083738535190335946007667356781967761760606672748166072460450201221393491645483267357550958591954222192066966490428563881284883752600307001139883938233585267284289426233568074001100207033538219548807241414677660617178536161305114769188060561200268689277555085163892697457118528463514742775557262111448098422895188371966201353241976996842066283671811045253496675484554357762882939903607177953552456341395411642293764358855507367315886896553188546694442666003074093783823562113108753110480642787325135580707319262234161244319804939991221654954728467372931349702004295618308011248969962681038735258082222794951809544749776364257963087967913173348624478880950460737950020683916466114074930476084184396404147047373200081555461481465734462337897744604782268755791142999648786770187212434645264662012135520377174567582948596380170353248320448522538567735793353799153732490521288795493949616799359509931563707446835766499801802419561414192616502524323475934245200380783224212840972088256053201708703886995845699466134564500932163936471066353522123842242394293212186026308251225245683276538326355627973631161009647726614679393454355930519417462983014274736938978297650120243011857933399485936680681405157029248031820991833648078898826205287835623851775930877946665999373805029963233399843360907610264510318366508576914379086045273928135793099879047172225336424213169507249370385837493653899598655206607930563868020211671461513715309498375822742113461345654526293727525171983368054117514139859962012923843065385854815368681915855991999244592047703676326551176462230113621022547372511316794183952695211104909038274562735443137482805777548712187422356114506443931260777549245896438909572320913358037985784244384604601110009460725773334774201659568455607542160597012904247630031806652773195986007036105809016937084303574637605111716747523982061431049009902824166168393313978900049143207536883932969655335665413571420266083242874102065696488571386183011725090082799412347301426860113087148309267602187100748216529898965873880686012919707398249870283355440876143123685706421359094353843890455982299781502641993779525016875932843751926775136670546968297439532164403545337864325853476098661812198142006719939248800622632512953755893256879856256482034538469370274394735557561445800856482051440031532265391368911598715239293560012944805793526712741419788398004552997051279155124604295206878412664351261267460781909692490330053578387918450618707041109126531227534520293670155667717935097284257173872818883885129604524651728562932248832334287077634653423633476450401958971595218286691008308825537103821970735944609444151298121435418518368016637332783328275912537615871611525429985305724201072494637145346496501170662904598457476287338854556978870939088251691896413772989596232452151693605625978611851276452620726490095080008598745016958233644556884816422340510569764183009229195391158736351138207826014165133269060756471634001750087790102565093429698830691182155113385963388371612075122365761162901188737884864635821698719652843021326531059007053519113084437331016096931545528190268871719154476286335582894217256338851688634500724924633952413668859825995601807560510580463813924254713024686147845221421378103965404705169916059594205215237782009600791335860744576566097454597960827658610213245103413258313266617603118964156385845105724728147535112900094871237018818290677747848002006223517849953173324714634902484970547613242770114647232883197174431378675284435369678901284625607415243975042543447845936450038300561730293571954436253060281069214344929987295121206115994831991615152219302517864833959428712259051029032253027097104914448561838442513246317689722145637342259545197847453419395235633857711042156563134813839125661885711924368905313006706637823219169556548387845312300320797625816321641883619058972320928178149300139698485206928926045451790026369544125791957809702795895882645582567939281787789528817482379681899177114648720758489577477603831570414997607937472912637016434009731227096539272538635079228073335058367874750320242233227319099465630560243077397717567617393882895386267819680802216832265259416691718059782538117318819406246443679500178244101997537167061856034260156992038536911135737820143370133589324044164595806332949932498634478894603076100604168780547992746826115111562770961595291239270314419518037803591307683139340141496040697260781372348945861447046080283569115117145341259968656846066966924784162157481991819486583500474450290915012985012752930006503705654067500814067952668603369281665480684958632354709221411750261834273092582151093485968798026143597002780186827197174122114752050643435361755893154172683613374007766818914313164114948849660164395472829066448990334709892115761849914334501254709928410801998607691260525920969563685271637588177978414179475106291575995542243863225171775548708124237101664459323878260824272093189081419807727372244459719803759031577153538925729141370354979297529814481149065882414632495311510150067753690449159165821229465535164884584729114258137129662113125910863943615113998025055248437386468552558880989978417016337794368961587332927939711103179266493906345731936544342286990699078654699145918545956654214471772886792745517377321024246145420387112241536308260193792319701562544579173120464571964825165734211654881424420741498017807110306942368682087571961429533207776760218150865056500871829673561672373165655322424472852213924519841391839589287610514379576359119790432224072734711440587676865878469741666190356960435585178780354690053731855079637048055017953903275714208434026232029004050833982503722354020410972710343530504665265049409796161286315623834382819337681868341087157136781090725960888510367018998257927945538209712834973306412187280457144722374587550293910114277742188758881258958561433538416420328476343529565999195963507969568115270210934541117320172630975444154335430432488888805311795583420611528213119302913746811738580023621825726862729677904247355705076091819233286379953555523006292484184247734534637390682626937517120389444156048805784087526605794347492257621649129406963775149718314726047302983957405340033522400303729500604788026149237725979619227256248981076629575528039939517541686975625412117472122990431606932241798843350143853338829342101081736978362247818085565881731216636540718703350014301407158264268639234062851556462269331870868964638234407074006393481465487963559966958511792293912223882180220271736438709493101407018660957657297528663288308590525743787224139085714215161162112927142324327687697183908237103057064271068769554951267978348595431159370062390988165295157934899407153816116339624105273796662495695321351457689212588156458606554669534200611076280173965666275590247296147250178410692778960276986299654410898655938613814998168501564925125948024688104044746791077992878612418130996420869831208014515567760863038154580552866406637486526200574378188140692116686239317225400319894579036301851291456495554898393310717323023652682487896978698533916210604279129586924906181979433615499287214770558179237221179770798645249953020262420730218646232816488339663936438788151099155969535294187804627942929753075541005307405363986900129883531953568807967996546384965016580804285416904953860344155702233939930245632389611597572514245224543983335041673836694222067713111799320564134845707299284253990237966351531201952029379874835970006684787768689192532770544361120221824095789874141832292086434918996672983772214033427975829237844971887937897044931182870355666001436250308356462365327248844695166593556693041178713747338936745642666218754281157409690034949588251057344499159582779484081987969676577999833552167792748921308723862673826157705176053953090212676952411741479195099643773223108288058573029788069137467637834612082710970042909088419792933731741260004090976220914530402769626655033575246586301360123335132648476807967106244188362201934842885508559134331066984416249783551482729678807635930017729732973794491358841531460845957960925886726381095277326349233521086710767046537243394477606589140473272729451674529188013001810859501988908455169026808536262347970362949841543194003377001960954926177017109650850242359853208033769497929657969810960493848369269144430022789891642778058411770127670753184428678413344281193081702722387695214709771517749937199202605809369583104186409129989052907803372192950801342636194636452866952699199754090649536455664557797274594459961086697289010238856578441082489664941012024967247643139641578624136295889982025214335536568547852906071575396008704216023596080072153022725499667087599033170540335288801266177119216790285642084066119448680300499960680711436565885222769461507180829335497385979838456302699777592299444594175193026762674278205313255089791525237866238331242609795312868508875972941481475293883129260998163297039709396607482446658759237035135905424089028658419149888179042250064518442088371455394578668898342842125302697058858852384140519047182179746791926109721782732292045042235990536484810411790921845718492467963572504092948397255799890452255222040883376464254247512606010168651782581962209267174792286894615598864365068670226365804014589776436860645087465683197573744866243226336884559450045478828074647025169579554997894303962601849605602128966776917205457781855207128957434734822045965657098748674317797129417365425559454125452763866596616134299908477156442016327631745403864308687166672569630337185443392214536028143927649102784948622012643526187687158369107259639289732800150748115709865198814000891975679905304803216406499583879974313587965477838048813110314976367157305695167049290158326856449161810809799979478527985251325502540963587758291797602785121963247096107440602864054603978180271181129302670828061085802522696035965393366952284856037544081413189981555189196820072967970952415801755993717673416814066949044712825472887089869796856402671361692763897230068629606989114423814969428062685392333599004699458895182794576150971490417563693049994719842164590323946130559911797005606804429579213954478139615077028109208140831885049816042789271217430226552330146111543286019512663892797708034987791207418415310259418610471071214025601910891291262420297703741260850470090014493813366734044904008962934374381219650784323327704177271652799744758723314831799941334595411536588613139487391362264634867818941105943536531995985501225462642156746544509569154331738992016447562154534798163934600452823783622636972909130171108852783411559340347463843906233843922414616339807307401677687191766421260812507675152723441663525566968631558153192098914639555337459859800675161874407147611120043050393002386594256876822433808330901594987286486418298471092757148660851563022815403611632389588248872810363932562337102702342075977308658199118169573604419903121662261428456802561487781611904802872834689217752747321207798521465597811119762712847078435273743553255585251019963160154282510375295945878350594516935770537029922044197302496852789081270454440926124267996755037896861732703578004333840198434637333564801713662288014009903147882596167319879777481680597839870275080300508915893366855325388423157337384068253245009342681689247180819718307066487960923679288963396169377497127442366321030579832653459126467649519487548992240020722449694383515717452361417932863775396425585088606106219595285409743434138592476196728915675146492082504549736164853427430973258986140914815657007008518418040151746423893019576300959511187583349618355496944246160308883698464452861172033172431712483914000285293834437983926564093409322817508532729483153048332376923182230530052859418941059411880481853719607849522667938360143019053823142016111355951916193308150079444320351660238549037330459304592771434891530178730250140147572992387552494670953174956518267747611284051987502070279416422468777883014356441948394598833873407220374834293858611675146777771337741486122699726707944431209734065522125988880769363741137102844834039170546929824003347312295812934519100663212820113112427926494804153909017246562695377031408779010579348098275659048818716713627977180289175612140841938470036547659162050671407778444661242602745992253327653278160171136697980575824487526352483122484025826108672029894665713869668605660923127011920919066903001321546655005311847730316564417800289626258619299810841746526498396258941202740519128857062224836924121814693237316108785095195782573865039724238923764518370988469304471405863692997745922123982225721886384260229772890384001826681790447315910917844746306595491501815546413103373179357720601615870706054178465122733859646352002530295680396498260606527190854971559204127217707815670717311882674350610010008948524149533218734751832795935042620556882920077317128021424757519229631503877200034469628294577037815158946732807523003953078180342225711946005340776151463899121598145816374474322252161488006023007691964475520471417224734651530868618075167046194026209195575278063233231148733043439700731269305796443806997304661243841978550983552460936511002790987904678654646998455111994697572024143955311398564464554771860358899430281067052087239495438693506939718674806111324140997005051397298325512241048987488314419805006685780835121626533771856136166213671740393989866545704311792769344337336795338796784563909596966590717699234200570201008022891373463288571426203168697853335926223745525418270165192893626854088626925408038052265941120313470324814646509603177862599483555740957420976280207032139567175049584525685833472062374196689874910348660160245390406395120653721848565552373986584461201902851880079094277425705235888274875299752706300751701279417833129517331467166086959909518514867305639210484349870405340515492476873786550584005542992084570279377628228109062217846494270354770506419435717204744116678477706554080774427719391357338337861918265588089656034410244201719015068489156032658599220925934059111027866930117363940366280988163493382689359716181974308694127169337453179159078390920203847790323950926943106466860297357099311104701295936926013879930523384977994287474548852726606132461800536752669518076532156724423862713415172918703934773401566565977708023718872201930341791878164241814966370056713002386054236225564290094686698095261275104975566883840576088184344043554530998746166987588399082550558676854670035225664418881512095536226329787172945484279702572849979254465978840316795099267522583395734289791677105531004780856503685840382543656163422956800817555204488746816692749906735425378841688155972021047189519905631996382991340506190502661925092105296345480105062282644475397442303203322560928213209094416758857523889136549948677091483559625840884013947707248254995307536972076251332189400434619529084191812444567645831886094561205259297832030948663266017519813637652576205320895443219645775915876236099492021076433823857968066218094171132885543440349509926819911937705652128810344512727822462329033995382965037547018328302823279287256592094145892078166192156972444929759784955683363441166871011180673127459670835399053598356656439636171293380393622942552570101770285453748630927297809910495874340957858237647491986555554619824060890610516737968034696795204187180731815496970711375194223428752063383053857905021628658555711991351621030484077658938065763531799532131145644339541962341871316577174610151444921804408086453938524692392649646507664599155763579995457978192293207339250069871634964226022017402268967587433484087992934519461426285982920136410479889149661023292183048370384469636027041674996370319937880081044780733179498136152500921993937012166234448015711724474353184791645718167028368239712138675641149660351537997703787626146875270567863804367965106831114124096179766782884925667888853095430544753082758404229389864641686004033444030008743723837987415898660401372584054021333202260788123821319174595981212529960884162382694814124178453280015369319572104693326278828759509476983851558725052698381741898079585775491302922651101811718406074661976058592793715742679146535871016665223177425936352793315954275373604393656571264545763436632800127448854545938539742498454411012837399424309150295882181493397600409405384997292467336792759464528786078619177997181691710542063861613118148832441890747617897770136520336858237868132425879818267346563316829356715477340063956628137265865192979932333231605034382655587397346261113335033975392754898718915734448724017784368874029382038246909051815601266655679015536906546060737985469158024090707942075953674529900443281439907823273702691229269641019223531059601342471147350549827205739730322729181663067115882483168202358395573686879256993179274787954235558531023081760649148682184889561006593675219496225548762461170653783199502820765479639769213132259397955353552642343032178969054967087470906561146784080615697152678261041737660840254931633352634666002805830381695359674337255973925562084029813322099172137621929979941092625482516355604018755052530954629980095844562443119168205614606193952360572806972477870265098412131930553993197599602790062192474289549248082523626284062761870349124629681926540425820364855567684571763537313679784138961453995338440632592782336690967551004330414738203508002808233288215786298317047218947304581885469411262110446031253939356561116280597044376924010632454609525318215929999157769826322199090852514572652833022495528311589998206870110401703177768171643314188791413533122501643144513003189750767668849486702529259500973059041259133568683630611128622319441486216073803172197083957527559682613766567625079114147765728734912579534601808328667978187623057367533708030367029538559969443163531898011533608772251148164244437307431710800775241801076036400568179507037560137775516174112656643488039760959316069203296492971470743280303980645900784557593098378811210011629360030981145586717226227776338936793582078509615191883306193999305299334234801652998951374167193602145545614684776205000889638922701688263046171090266916262550144322152692468940513955671647429667495358348864725760826007770046493307445319976150184608912676906651805013145765226972196712114896944822916172560109939064566928277249786431702674529240346985510184300731373363200623850111797928228080017428419902304204395148881136207453593716645609257522248626671071627643551665519298164062099456371154777071227609601867843975279258010787345126173098927206687073046185708438243432894010068659164501595498982891503783826455812164254919380360541403220833283757268124602373058687282804539042997713369632103807989983600937089226383247050778870454531472804976181813994506123042243841635177965172187672555370574213327395326276792526277991941563484983793768283731249215084043615872517298259790673325262395659949498539109819963268962823680339037039432196746513857258887990292055620235863287280968315421455766643866070178217113250016578132403008583589067283349511399830991766793519899930351189351294903571452609038433307944616398712030471196993901138911537528036355159257859262811081591493288085173087406042917119276873103556399448291267353541102834884615563700973661896547093367420621542956318666782241241027472653675785615305827028686676798182212912866725421948786109310476050272105157393534921609363180719817941175522701713323911015917625926422100980052214572888862582019424360485551320197292514664434322659964316377737003819265681649596509926702363344070895105827748016423029460320905554737301201474477326461224998716470917143743260029813270216023985201887939308060537131545140411552981066628716296327143363801813079527282837006457507495026075615924046115229700324985361478795653887070027875786451198375957217113207603648924529781690498439204509425640786255030758363487230723751826441937945649058550834795797361060439343054299527870916748170113272202624013492462191173192636021765880292749675085220292744122165330095370621791947047813923492527985600176107233495415138484193393938957812487143106713379349703772807628804759322421022005201099416866279064536021579165045031568976358415696041591760778612749170421136883763948541357133486030553481573775432088805188353234923325802966826610313780096339704298437576617079922194339850729170865039009502037328599881775139721417659190748580876914839046241058900879454665756098536474787249716534890985910524434087072298197516826065821261521232862256844085989760345645370549223373674859496931585725360122197693389378151171040086264946557599836231710154946041812743894692602865983241485986422423061513954041124935792764570194143204572867809786283734470876605477529938057535559040323129334121475883917046771658747654977802827711672766068721660212389861984632734844067896917756797906525401253412931794156685651535442858741153251384652416705500621296239060396406949093362666430667182152874751841852307662544074469403487124011137403604172132721337601508026355376580331207999595703086183134581335050170267669045731130831653839343206375119193047538586662902307910433541387184238724085618202378847217225700570893232906622432545625798066791459640777011633961625082967119989936375653302019120942401246412598113649498007749641073572816174323616078197981520949943250718788992408970395108270027690427696926441429373933498204237781955022231259525835190975503855122153018208498967965164047263937263830951782907696544574659457886223485697108738185168130836554698669492722670951430910494645122385012415304017401085530248878029622850724853203705333400158326321956765880904297948312028272090335621015390773447703467768734702901519750677618641864156237058334981705298477487508712722837923594734892047890653531014751819888407345712152758439537189296685416557160574777841620956702783269217263241198059715427047071210461532870926791908855658563576758220987881906033136733840185775115393757721899511789460040568132150390142497844484805368395570088330228892139254041734082206890439232959590548303657257728947624836605226949573812452685160739276213454586282110718964983404582452024271322162876388122301141309162356592828557108442480567506277115957165777031911993763707784530730474893478666736944586762317421151395416608766664854410312848648054326186112935192105511738843333074230287650237449232841834219957854396755233548483536204986663612582876856114469552435985823931370969462675589600491460904540579441169750735955851674789444535566961748078456662750339774747796813173341361403485359739672250848052735709573375715478868464405098091781030604659722548899298625470640873421245967874146596269986019785294584819236293539694121597582517196250036011350774823072618594228941324326725632362276340990100869514358937350660535522845766708738721777624585820862435221987893333334334381443448464842024530894903637879298343255457929334818082042373769126023122268419360196385167819070537919836459619656876646877829454202474563788303039649196327495801524267805927057134227399817815162352441994885070868800547550101035706748084435492613727888904722212226242285547484291329763374757343643027353160870838552876298513270107636231897888717031775954280784306984710982187857747164300636911891687971994510530467378725934251855185118399096914276342868360386408200138793271259602787818826562074809023117739686002014853848933785066958922092459489744636243646825953631263721124477185451326405440922581313532159651072493685122178333827563982134138570936366063344041587453634286194760725113296290492921362709237433491790714830911030405568809384251177523356542567137738314327509767653816364678569276084132431641220438808632176269358497272622846196556678162405897787307526729157366569517459494636847263304008448867967221755265408266660153479281345060904979009499527609924116177643580560971699036152102909633641632289912914847362696176881258791660374801620830623464229105001312698753003585951223981384098773136765015698320369937660513719633642182963134781438906418207855776357447569014052989417443769546589167261553437417648550556882645821941261704390707717566382196675732088056884286093714831983968007167565696915771619229607396833522783887513031997312767894968197088018904660210521411551459703130364357091569826569977913956899103391477600799602644776737219065963178853052825810102682582761406293928035865714740612899514218681979246272382932088584911929048159348447609709898625432945954951464109133162704572056628027188142878772678455548396129692643009117954935862304684784868319864591784832895229333496257686078339292867858937145670105063451170785671950191344193857302620493388084744323678724595497215153348832149701879375909039722309946126695531249955196454657535131866426474812182804459211249319139727405602527946278979616801770108733995501182549207862414025529709215909957813273436551485469094153100878747593250748545712596350706263012757055450676059720690851731788518418314225607944626595820438698554160882915283392872957837280643524956107205111928471341378612867773442740166222343417265668684105342321208301198798402050673231818787827384631003975135165991898282624573184206696888695723635408597968570998316826335322136825135613381942656287845839869941041947172603485765948918830747034049371028078740895180919025886273942621329667771411630312725986182012011392901484325371267707974659897786114886674269556747514116190027125391887194326771781497176042075759125396373625863403922499764362045144873983705863815458361133097344620105946933681605147990885271745969695766121842107912962544883692222903365979219098997610765725844217554800478116998606751004088803289906911829597329061343969151601925552253783136530078354509862685201764186443520844449127073298771493037906086567787764360800774353993070277774085677738494099431533763897031390689316226830140829733100991410025916329906514145406870686197118197452187572321396021025091907978236609074781566605161627856333882738218134267955541234780623480394070097919168495946287048532110404615259814974976153194325094837994596959318409395851088437853861113383439686293048760283053530163374780450040405162934665916235663513837640183258161023737375879260986109931353988921128228899706230583370012704024283930308027313726224478399341143977148993922554453543361438535773581493773354360974560570824448046004951831332258653971756919428220501763382628208427556768021001760602919399037413915421222624409626103522876665732199438689653482737321468257912267788159966231104029839856542642216592828322415051629099022469097358433650257445326619576875051060029607756664281987407561583572965272724637346047097323093185194464743169323364917730502955399935618494039590232870598236000879575047132256131277190572709584459852688314734916661291581590190595954993270790243266513587403209243317568458700415627488103341180706780712912585640383219779215290663375420199674555227476525437465861912957091401029925876611501830098687399450779569124284975328307805848988062551958717135516184535669819286244916964566428330309242969372056247334534349412923443172644564086870526383448281356288774645122774052115992169941829680806611589849824173467642668090963633837085743641381622336486019864478026059320055460671348592302223755469217243819642363115281678070904975940250131485465694273693300525352821596710401342855209247841589829759260018491427035878391978492835106341719556067024066313153157155370028417748946566647224670558177034863664510308429354405069192804682769155659456243601270267270790014944671964759115998591841074308884905224797097790478516717758218022628017105307156244261013530599627924416390149727960443495989493747494850442232895128454024859341593110507747909852683106089215961284332696290601879061339046090346272042916084638009485953087845336476627045849918899466731105160373716352112623383929110406061089602871127964539660766605813985434228290587246975105425641376891952900239740765408244108260854483512595047935396103893651447245287591843110311668158384988366609586644464250437991470274700389394604473948110296606391739323128634306638130452074030523663165491336793833011758408670142371575576278366363137706300678141911426094993123903292937402755920502759272367345705379355013811425640240233252405260910439889429626866331534754291798728621850199625269820990387187110398042435793076602046994677789024620052112391115048881199866886148348644733698196944362319210127873411954487221319211722424341968402841340152511052436235032125896094879866126682737332906592828882741569489672406092223937608843109197279216465176079015258965100512682882217173155235207287514422520774012363649824024188779469910294466548272589239881517533517384187445256582169138761860570276378889614024651601337142007120400468410450515212369544145477203405863486464834243799748737474377006400555211551760748973043572915304572894343093313633145166367734768996163123447871388801986255111770581486731301442625178194045422004890096920997114519669285840082120373846338322751984962779061780409138695351273753607015026888863519249281122844932352954139197062560226599931435412102885808415387920641824158568506863844178493914033272106724756565039999155165957468569906021915194073710262764062144241954839974401067766378382677843943335020120199957701099508675406160474978104735711689297039505120495117194764009497922815408599963149400943570569055287375532029019176424368167962205249172825802708987820694404759639162535217089283936671892471169572299443105784951548073810675633814456268957335611875022670386253100492657980949787358220038617061731269161136210194841528297779836251846733587248665129465709033649086256715673346449070887796361980710925290462945305364481534607844566317833224391388340318735968380169126604364626411413347150346461609391193090319941356949337134369928487622238190081099995335333340678016388489853828297948443362804909634170706384113046652196781914693883597901148326566661341787861156509314940597588719812182222399883588017969889029955100240494073416339210795768579034987979333326546089300163127420651168506328025768308872396773141634990286239176551829158620629917644699515076564151269347691918191940893289273258339307710891962103389908105392943680016054276347650177640500497564467141518135488502344837868691343680348649910065077509079284966220905479601648233088182130652119304980225620090822143849297048823307945236094299810023633130564181911657293409017785605451669447745313137489298990150049583478843368465157568246561994888086780248487653076013937545550647839509887844368613558561047262892699039047897526545113627090705212269116384879780870859276256118013658292817981997442172506957276228393457956879279045648081571359570199171032724916811414600871994796119132039863284028648858928646150409681356811444822228287938882570745473130379397544595987600076610775081589580104068569578547092726342812066257337339111991919089511483958126087567635440178618632718379221764796217288959111271651936461286891582931953407978880776299692974941943161453862417452609205698781659383306498092249858648335101438338135788089244009670914087518264300715429356347059465692463605410514536757318119942675730354625244022458834838385451162356866013763715763107446449580283329928922460957309511653963154306028358729672783513868199453658794684768749661086124097500923907980202910988483748752848248821355818847324265289072595502911568251606776055032827555537013173292523430956954260628974836906917987042161431374319748765368996220051324140302716106395281672117062697130961230607818256088143553255963356145580518256958245530172478071533805654083098663244960072558918727450741776520118850482977359962841781572113015614220269300838192921112086649761431327741048006582054416245676202941947857126053706294082819497769948002130817462647845399457925115290950296008226073596923082433258707279055115179702178586570544481435652028768749230614557995282685130201601511981040046882067857841854959680643606751547254594311045357828524000919216854805314902253945989743391559097531503046235856319604285792531142823156497792509294103450988922551460537038002202274868037213813147699731460284291371729438207294704963999933498969182308712684752367760260965335144625862471625917660247609027087907880872624575973021603772862110409781804929208482450725032995596692596649531555382359514901998485716167755039465166937434043633080144881311935873523181302261457883295157293764024495271261960227830175634415550063309929512006963621148459850862871572026581222040873548122805764027566605532463882912119778319781483554165099327707834468523160520170043965261960330480035665302365166111521441168144759405994283182465767295618170880993323306259706806747389027045574143139692056966277821966321478855397502911272146779418925333250266782622965691601615638296283377831869595567661764749369995386351242787568846526619534613336098841388897069741068017943116315025895167741188776407134309308812177858774267895065515463209131915104816961842325706994574516643885518043959879627162798612069606310895936242842586123488813828594315226012501775109726410603411436305003548758275496896433441735632001424445925168028582171954954159397952433619863842442883345337052554870966248788125928326211036691577687743776271954191383387465087312975643064484895812889712653376429075548982550214938363833186968789694391939203112179318007349910867296639510952394119632421848904705947319019156499770743547207078062100111906372968827455923989994035108267812533341277967615921942263240781840403064555931139852225360908270993808886432480958643875027836482485577404544510159786609904566684810398362416834127531993304710987338788374686120048790075957289112052524330698042673258428707498014570274415751139045718645993983679547121818479097865615908233701218753957985603375848720181449034023383194115386737540762924312432392969376240241620147353023085593001552983682825119071497500164412301275318540804862776271095885181797726354474729327495484785501166906895856776802410648721683021007704844367069010098723860369504664978494356548311660916482947238624083355381957665355091997546921938443975765551871002777465814314418011910403116242313823903379647274832797678050953703254466766068949220697355738306637677913018321968317842899702325938385057898080650219757518421301881076912059013456909481359945048822045389283344747639048997731853915227706269874887944748896534823500483007130931595636456488854123924787480310486740381290730969712396538316791665112553720388457463523958850184647220599955943877255224572244765236179435274694532901969927324101907578227481119961470379715643743666747519740372671367357132484054223364180273599965271356445288122464546857863560845521211327910899238279069113986336845997480637915773722955893689495048828315133610053417862745514710041263118068025583326477291198145774816648960779799851460811285591847575060350437885045152420612660611840004509411915997197788105210837983664650818588694531782371317347644920851629741519593474709311268119842697094772464254704718407033193066359309351412690510886618707179961729367691174993916061046919182255498685519581774025097145616369406265014919379802774832708588164999299215879434903754069593542241767215543183049258833920541661867872490881642624103067927417639024803044965427499261301738809181335866126107793110610964362033722597000989549214253178138129484627194062792080493390335400291761863252200392376761746591076085186822095331261913768811247747513149079119402950710312492260070177769651576614865079578701544849113894090507562684858300120125521401492901993360454563674231605181622916276668722352981127458542486328866192061342594095189634997943041450410818005116036536024115204862871016343754065436634326757089122727981765386097261945837034817540057094355199330952072901575345400344000017026408952635788552553204739436544168550773544449941423899889879399817677644032677080924844786646516681003874717377064637010239973525693372473581108885350714211077321337613866349722779815066386696227409558262830474291448991049424826615763929111634775664016469243768406345615871526359802119013969041233507948042988408231322722413162200627644893121058926610118490912626643690128398687131811312904330860333772017500799156250888582980235210495726938891575701662550624761763483798496862474028317929057277360734079102455681384971448662533055524638533074066566418488166344670749991442069735805827391116893925840939841508671293588395518500343843899453587766191046214443055364124141723570046205364719210005256615117258281473081799634609295333432663501072802492308712473675687727194529302479913403820693989929150543322189316490219069208624135085608091101494281565870433118257751746439518578202786534699029635292033268961413335043283468094263559958614402067332654348284117425591835767119251474321063342800802264232857109890881853781994942077741929526759948468979148958171263055470511376971478442631412869833869605526992332833155051963212307278098441905452845815733546884221987113168675443206215212485066496376175826012084458354266346350890343320421822405477943336753438322723068451119468832023672797905534798066429225911202703342694892714953005964847734723915004621291473167043746645551323829437200990915135976066276513177198168817689868645591583075624210762333349931007295141582121010627936127758079396781879143111709907309255703216048411061240648303791259025239085800526760610109778078231664830554558692350881018214493156586681336960377316783318951096723590405315055711662248540594983836383491990570811983076551279560575449183587003001392466628679833297723725923001001549014798969397805001322660007362885214732697108540946040925751300525193115696821873454309531174478037948726064981992458087589149128994253912563861794479675461277011778974883098435764813402433000386784831857229435660249613432295716683228580684332754332772865580307332083198057498493279060561060993772877547285820097667419886827794807223364085363543485735057588695308179892095907970698903336496315137288504611429505543374609214005477430710316639356795072593330503968806233814803287832021732191345734639542257240566950167935552988794982889740247402926572453664815390061698520491640085078512075454406269207974205383309869723248799950871649568087840806796592845514158567244333983300216961170954068898268318044467904144999435296445563388747174454043787686140335553649405985601293158800025635396762255899668187729928565553572493824799719952141972781121395243059689813355755737358401195061593710754304323670334126424812974719732761517115237016811574770450240768546796767908935235480226064751574163820529847731602042903936400075726821712451630891130891198559885693812246834772648710956780677378493665184230022868884348347478281392556727364938171792242862058547640312895839426198377636082516951675372742853462525272848163399527355314528684388108539645122890925421163566044800559471452124904228136338181285499170957380498607004644094840072921831205441977404051160822733087875529425765265370028930257806144861874196409235573433822550545314152747065292764802127066826455116057959253400893759756215328210482367926665603532139543531386122957047491017510543059127170992450825835195916163006884140972608266919512326395460730436585355607943393035587974230673317066628823018889596729114423294632902617928439076032978126146828228930533032345112138089064046897327534197859551839714131345910138285577281856833944576664999105789392223949085473121090717141888845129122766343677674668958998905526385249141956530404984961653597248694101432865433219320433725821142728822883710689841093642718159548922037360571506117226724540317453175556994122098477760205513886791924266951608177650978977902642693350624198484352596031697427696422033505705702274460954193965712024087381267791178976520397953716298634878207145987853514863386079659667497829745514538020384755790938993976437460991243888666685764251941215474035859311585004784243378717094817054807396987473902545457208084531641834929400008399255697263967591457552532761291009542871329679899550836035160671306729802362727956837425570302951979646378980471727601848004414669863795786212888804676492781865048777506155024147855494396273877484774644235499753330639379912235312947829199544376628284927212118860659545305079534248533849229345489100442325668560041820026128655941917492387857797428891667693170563474357364354027081196626226897589743846980602065302983043271140825372970271518150722022309691678014931791454437900794693265741523831283995715725060846644201449497316793318655780902513526250916996167770574767532141358314831936898006600593441489828772297776537701390506971751551529197526724027389452609382091649694771523136556230662117670387708204011858197640431924420140475521009490703182401818690894926487337869035677438117464680557418692556084827245450484448517850829415485236723210921736123450721038110569431540013192370795329850725552097980446159018358016729239441429657898744628518933967836917338917689823173622401771230565565251593619605564107308862149366754188550913560940092873641411589885489474701971002118768686103383800237177504012859030276285706133186603630401118871637925421285935287379394576350855031395724406275112903020613186898316234328582433468032615469472646163148926483893468633729029100800495812943075845355402743648131939505088347633441396278558870991388933076584764518554031869450587468285795878948535103587798127209400180122010580261867916460332733356532136002346364023010257905758805338866639341961402724168652066751599983547577829146705515213918226679531524233532927058286279038628264000125968074458548480008424351902036270727819482514174573930181583209713017626170078795065885020353544876197588081712074880162075191398349143357119169410483432098278521753156526550951340386116736213326900605877192564333627036194928497471626407435363917964993171705088263557870729854502654569626951681766265077799878578652318255663214453766262965775584057783099632432496441913321389039712815391825702284446496483993670991915770879992066331926193188991464215062322063972782742948737874389164726403271046446763773111088009431556276250150166272853882657401931763759179511773291983434639584593320301011329301538388840443632731739862214836527791780202359460155333680851165662350039192836429012195343726629077399894598465659799775908663274072774186879229492330078164113518758813284563212626018012561814932106594314608225045829253111974994513858039964479106855270393299734553929577429780267541784884019116445825143551796989207848199840586256693346164140985493448967498344547206407716683990112101485013564379679221870978133386233098861013497081887850181348783434146713985598452310071779597166046057889402666614355832575879082017618031813670948971749422030525817078213372621086477546406747306685012130221439518508425886890049781066704869400244818830954674040252916425706960702606492202744680502740342915772120967597108459407326813888274039753290457444098087281538886501010338635500306370972689801228917508545117937612795362306831373924395747111491528098512373050872121579648554087900168823426583495586494495734041056156156323403426592920609763420901744898535486978149299072438584355421532272038898361771465618312560477345714352439643448551036580530279073568212711997023215090478457202863016168856173611313244654136014513494283053309107267132268447185589864872841665461131833107570091830852033668858371400500746370026666671219110199335175550295263263731790874222512127601048318544502608077648410946166160852498538338283798793008379623483844087593012322135640884731212421099561839303570419537510503346967748361774029731760137297890926871764949323569198093078108941996651259390026041298153782689464020557038293146146884005780095999951558171130181871001558843155251880782167856059824656159670461904957946647174424798987664399844249346507050210542954463263864013148642483043371555240214420400471482078184567798466416494537012154868116592913436739440926780770491510494877504405430672099559148218658035495900675648241333979126262587418656283077520048206589836352504571821033911898011510179312579606434547101133157188170573145366533039630081081792514874277199912534803033556588359509050087315207497149100731714532378079330911367342844254237075895097816293994970282397150290634263233329717279059684124135558623761520795350905261764416453030014945342662602052340464656789019188381938881377370509778939816243872644452477531284080237250056962180777940813112494398771824600343097159667219883945006669789277405301047702383515608347212695379834043227481144953789997998853557852820789170440257503709282397243320835693394025742716963097529848926986920434139007520997558339744116852331257687096965027630618293247832391253425450667782238662137131950844764364148623725237050065147025423554656550330145995234438705197739472906083337487186048348266949750256020953192393658303552312616517629950952043448242902642132735670730082253043249634830442844160571690118856170173499284069052459930709547376395756933332586400839716534241464473580753627232412516470783615077642702133204963756405972730286582506125178844263591082488098193311155547518504406935880531827255569801788327563878651630571984664245837618692954183813768806474718577659735969819675445640947852920858086104053619160311261728641310580628793124642621629503182221714105262581624860271499358700169143252390461666846608226826482797113138769346693762810033342560041850653144875102524675552709684495308199335576163452362079881063310929290235095378241809511823373774446027447627850931844510470303826642901481440441100378647157737321024156463656026534193062509667724204920559049961149497394796110413566443051733745805446202345533480787133831830121423001766258753736091761349605473836783472870601088355285868403064100386467769566099823729130359548682171649210976125344730361412835017416417447467776013175284586448691386611111912574452214508958705850484116385660373796592843652985102986156121212487047333339813778842271754201503262177201008614935583235867593835721307063625257890892091569479483263146425153088622975356915137716455052465445680229487129159971098535143551227812735056736059904019122166196389096875108796939960471403686648319584730664462526192525752428012728240602907393772849222273923417587917375231494535055188406436082730300583137862863300210174834382469538174372126862151132021801110892608276475896360107910163793213326806434232459702804013754346224458636986828576496878357683944737608492664389814873717933884301305569387866246502253867364004632191533151008866857106846299163406141646698010284806179267729914419338178270013267472033402744133692335811994150660694829646985830910451710208140446887872686734332910601764988277706316138226153618363540924768975523159059691762088874515079440886211229135297221162344661410224391614197949500496375739930232030063919234745546367679870469644992728947592663736889793838414889842006668149931925782408259229522185493959888967883353181351466453332165690849162676109766197092951160402613696004860042015322696280090241877259536250804563200703147786052795882430576406484829821899543657282292199210748483364320771943177354545419188296416778240500330503292264374562633769505681509113537301378669667952929237094731562479603384636530922303756278200954297533951354053867539965960052747979748886554826461556441209958054105266790795232320047036857604182337476228448784542271609006444896459934350510310152273300034360230704842391449350519489146777675518193040513570086809014795786426832512905772035789305133195329579465125178125644161288859328052386444604811426816285639014770237912948223619227044975437844663186852931311809324123633503741867400503734251315062172889610960635820783092007114438144377697756430103824984042772516935037435960835431650913994078561655466481056816813588204152577305581331637431088928665051412914688074415928596345775118535953165239812173620005968793694610113041905227411349168366925715538488203215055207093407151779531982504105499587604425348914284922602994763887429216023664219317041095650167876814120646667437634278165637653415195218528711156054082914310133829197763649173294532628669724233757119619748438013780699354054475487274142089880923372360893997432032323408870627330115521354305255608716021527469488022972078236337091337366761002070007906285735389993801066860543399017055382415522814164771682817103775819183658667392267207239432286773317434760311776727503734060991377436879587686330481278303275363324117902667525197740174902443460602476531542545926178445169401259933689857113013997800170753372652736593773745384148390141991932322934851563766181231781317701469825883983821313318275226918552667002157809359316301555691014605730124110682643994398188363432584791451381013608512302276216775058751012348651483103535102244991026554816283589202568688101970717444490189656423852598234802657939531446401420157965250889961069703157675364675250691264819505221266926413594127994439440668209531651433137667851452616850246721820774553874562902838014842979653453873892851176810219050110169654302002845785600288054046076809582003756821000109179700504505337225895108704736730862739630309425371635356006102320548221817074358579250593743556033131512032609587073141691009743106680258691120967118522431396878825824120598701452005051901133607547679989312002794846431436454547568980661636341810109331272425071353047071864149367546791072937070362974782806509110886566180271227725982244594250194416405668610471306166530512241241937846582946538441788342907738871100420510455553463368864224702292485266573956857045858338363893878845805034972105685517959823653986599719756379953701431482818782697909565932519814763553753495579748033831221412459399610310440204558964691630160297405382464492246291961875150862850480294263756562232218809076100417385549510028334326662363882165248771597551220975781987615387714135527122746129730774697467542973988251527972968076243181784041999685086701857944084598066897310008373632419535946127570956173037853988867679818156415129975554465888177930993920943230255832553095085567911535605957638573542375606825884176598307020701619453064844914123329552155985124777013596542066062948487990978388111995375267620763311899967177995109202509574897039550384308483525926062866895869930999714276026603533684547849282707548439008038758827160289166298658941267319207190099497226418509808284028388136987488213268072829863537371526474140158669925153365940346520474651113344882541550712388118713923288173292427279039781289063231197827954810118059644632089711893664691439062722916750045440114506372094416835945479258424196298082138461976663638911410834036775686142406935270681997347971372841035204031994163582213945636184422338903658456131011441473716996006571315000205147964188068428431976246270243857370712760019747168025380965818511261228230554647848179172629081903621434525076199264245855056414520914998241708374777231967209313390217980266633850169621413098558734333786348559882155144937990019663171529986572656501246427989855937651396200311931996979070849928797163472525464683059824600839473992804887420879871113695196818715867755449095452619611965806481733945383486359642976750777659323076721628392751078078055332026011653095412120992279514432533200736588077879991734974731795316453394081049113745977469381014097442476632192246756653270670223434037395726607651821423866820402719354456099991594630534952662953841591192963259312061618252846785194028225786391019747570788936766389562012253305724223338401649968795751235476133834244762248923534297499934595480368143695804944571898012326563926800105849442189575315390248820820759278429516751020804385055597901347746667458252341601728085707779919762989210568623050002001925059643943377445813659731415261137668310879588374973497404049661473570392190843683761697946225932704090065220849231886808324565781254350499978056128092668193862779059809726235504825861100069537920248609349088168933007056925233065688161248499913870508510346920625527973856630458588169449510305353330333962337691691108198812984250654948271183630416132948143305775032392947432550620539971275730589938851827715795279538805038194011928598105449636023768496830775325427067156665318882021548118050557515828265643493686876611734556711740473113132736758047657262761155712541065629677211023143728362387332855469691651067991651013438430209972125645889770774706220354309498045989004112280244905859498610195363696356368006096651190051013718627146673221712018202462702615416739529741984938384270298867087580816402195851873375213206560076706752331916478516306183308159142629504251693100468544839988430190175552013073311368524360292850004985074596286098645621903207226621391439165283442600259968132524009513473707249470536174591440945304403244316696543101971710351991032107888553786476792427470890077001556374220127693508551926945594459366645378043010145298033444844878738644047992636991010165964068087907794272532474958913218234570255640836566282742674419321985030472730837625957747267190082132723329262982133714229504730430961183648389395822625180603713485192854552821471371201898165331033125278980358571393589805241206799004046085661031564621226878281870065747980033486674308482984129971483231566292867238884178419549298724436081299001626052475255647892835517635816250821846194370062540353537760157000828857293147611452855820378331365365787104493378501231250930225923859814062168815698286151947700174236121781697748251748914541355567845862392988216194996450368049344777882628557484879008794014730504136203803210533047250530158273220778828676909447824108218787848492253154974342638595870227340684388520082218617732606601525637368831137047708388440431352290445448550701960694525588689733831002814188673927949451376325652339100693105982711945950286895774480968481380398760847828428740972590801205683592037623129847563082660060488643286493926325321134391494819163188973980011954196895608368580849789735404641314086565118163355624804226423164081363316761279946206903021432945951637890513164835912858700001378281144650367193485086397580860923185431785220841544025092739182021435494396013640238733671043728182277844195821935414127060030787492758002086369868228818928110095828120039660626132572640689282814240273528437438392002077458807727389804062895028533429136322425720350096984888854973955588153197737825684807433387836602215504441600000319268270136846405939970678104472478970857177871021237814956592017096981484209922717481147205104380891134248910565525041683116678675042622528711512518799852306749997519904520275446718262877569025132141954443258336507526782350431159606607883649520229732633770407347468981540271790954241039567035075142668498011230087234216631580094243821531761300818593733741299803155876946741270301485339913919977943420299771253549808202000716300167623475438908769898593377107027672684662016585378060947019508628355528136202407933395621316047125779885082634642046461881614929939251593548464638703736402866166175906434222908977689867054932489231750900610783623288946185027357553979793141277656334807142029371559905372265159621059032640088410437537002151618140927679105402757035881444407044249140710523663815728155853151762139416696477368560934111589021807678249929173669818991644352310746366648570728934166215656525005969255836333730164144684211259879827585647602302602752031882754921547419307482257501094264713375242239463960814873818008018457628788601680621029153709361529632939430146170997310243309316419840495148344283796067090689523241545050597301835281420957290934543641169535092484040889855756012385237331524628649464245951691606198286523830559248977595858418312869126181711003356224396076780012595037275302991574485739640579703936536588326610976329509019264931448285618852701965979401413188988258835173365001495710100295293662122511067013260619324952683305920433266112820794336220278380860326906681403824609947369304233877166975319099470435133495739133020600306190680109381102265904165539385278842986999899703656433811671126816015337459732864862976826135951993259861815009664107769665068196426412816757484266794491965534502494890569401683627867290755338702405339950086517757051187600249634232892969495059851456299984342343575862466544735358683302790459234070218009460378256430013960230822554368751336091464651189459190806002161624435821117639984246045510346053328088187033697301746330318335241178038578638556490666941723179970434498896154276782112047701042899450748228554520042879080126504356360147165971045946952099953904302819089057597652825092412529770003618856658192282707636275754865934495151083580819479586042757553713959932662729190088404689072704171476009360154810276697291746393051330435791882936479893267633043155443558209223745839862825706703290702282954977827467345902106989326600660017636133981536963085564587275219837567839312106478895629586713790217915986055061027107262001284999250513428388871685354953752572595846359956285011879185741227047756718171477118602642904895836985086800493726781407906787023964713916705935874191812859695428079582023996942890604125845508898681754529615582511425062879081413921208176332595708183717179483423409347486256295385781027828687063030335622509448040037414286008256744909815768828021587911537366375118980070306241197542092463715273056234945709154206470281257266892957258169377556742958316735420343960257941456739690034632410233154602397897575696827546885100552655344718133300729617295594474837711813331143824748088277607377649230570473611265176314987131779638151940785641375261913687524860787418490835000376808413519415823092014142992844851800815440002846213526035347750173854413871628269117630956926518936694999458721154898482567134029198897694200433318961747367732181672277138682979794207327659897036567258509960513635121320944896188011042048770858775781551130046071050251542272900234744142058247094866181429787140070289295432914209501503646642125250964488860515522242821858634929071088058494141291014025899923799335240064736988111541359405401259147681158021614590206814519614583508327902782500108521298960692191067216423630704152781802339742064903206808101324700774052921236422468381808603351252165169318451136951684844213484898235139584829126559563208726725439010731509067986841743948053544897668106356396300738589292738625075107962024311558387520671332736659800484379436583449014295481548017621456393082205542570766149869875234071244528586220908114166410264952093279505612734787646000204376871248565875341864382025298258562436192585618308293669386036962013988909775853108318808407353960337066850943889656207368587133275721521747434123231302146279449311725011215126218515677264333653727261230804834810424379052757359068606056109176510307847577889824309909467497172394683720436605356492750091281243363248787848487774564368388417168056458115639245634518573217188689028507188793431332614326562307544855835279766309574713008367074299428704917760475991795609402712494003515665904433303419155496511339947023094020683617212572654606053996039301125606194538938867698022711183200349250715648924613177539044719814748303250582377277279056731245660647762355758486170811606125091093421602694670999230036353370915095757009439945298788494660064763433163109631181905418412457618585164333067910184354530888092317086088794710385172152267658402744393011218742415023162852733636241555742352753955702011027065653434997168181568392749715213405358741659837208255556245911226392941715552608791521219830833960299168925626186936225691292046785825876696372803364857186133911479262205069182420954188089644173935850884950508849073004171682885197490844964747875647343792946096447240616585170130918671934532109493636047833975519384222948447252868624940237777247769929800522441065477991310002138245737514556523625289740399888590722690503174751517684033413689283327163734337991464631753884182345984430146567563527567814725431398068201684967867052493654681440044279388092977449745458525392027662078846352798720971298721915874032030498073620013891731168829322923456319593708988196035804474183312739082101081105130654389037876458927535973941982830379954237800949018230691461211703508695627983095302357251309761969605393282963112250679837345636070983397556462656076504100814038016621738228640985313329080417660658535523055526817565124178065281745323261863530505429042279282427838071614332072667050947851337118388512978154520884590966637777479102477341376470188067742438278843253642275754039696603365377934019640021290471669825941110071239996623864203982302726274726178786745909330097509645074399689679409525423511232048562321602170471938865387571973580789893033959547042506255527146163284565619922446051612108227181677324165568433641820616571624048422584326842659069854997731749241723101713279864626102908264245243720648951701103883087699019591744802088422845211795110256285217871907815650746312437737099807205955517238720148165079781039003077555405854919805954892314089648401293959328638423424601393085331134942295764327568789156240753170081885475180513137194044157135715283327655544736578456016100889784975394037539085275173073929724689622768776386003958566867008637635557529760189169286329982798760515627527733450568109448133165179659777776669950950160845164489227565173337181767681627645284966155927306049361136906005990194991225473543738858709694027260876579030429955704951066829374831404029709542287835996984846525880952085433878950175650115045539269877453599954231210230307890134597843546898770318384334170221566495566349424747750119430171311250122682996503610119825066874708923366558297109077696366766872704183347869520098156084389839063773760945269032148938350746378413020244852430839984581838058864738262361580927935593681858113844833657187516535182645565785159493271190485133633392554392708193926234054277369767657540090693648957030750852644366523862065656873722629241349192634883576435055060671871718768819485409719524311662799065230700722018828461093285242532089384939784277893399242124671357762002599238518218655201311952203808657082849169686765207180038378117776033748472259087380287340038753092550587313201431334319444430854805039416078292557430920929628619973152072824795858002985150053676037355351782810654809878404001536308380574776861154981512679632933369612490053618287211033630477262672790634308481560145925903916897631322987065227641405381032617592867857403616347862898342322757451853745903561683236303518068036475057198234254380272433111236361021294323731808334853134854556653447644698272834670586880109457501011962860963741970062753921985955511876036344966095065754814238924214467351983031267165243619112080407038315148736457782586794588709724304591180640702625323718337824892348033515746717061949550793494353380179194598271542241173439196873061023825704034647587947861232690471850769519311706641998951281381261228823924471190302159836028879592773827551132391871019056583583477997447500551902664577187683955055753976271674024023656493374880145168614571238829514867757347865809653477402382364976465830754882749040676476301638398297190063109210459223415406458910961840022319180876109106180421803741620272338124808368499971842460685183376936197637551903954712685456370266132090491835344536073033622480211591837082151792872441936784593354497916019323981957918605729035799746328028851567897064407923535986394488257325087002987046736958229539126135328726223284664070480006855508547100211843056051394662635305559481187089043032227688065860093082866856011350660176352614276364101099112692269796192591222214521083537322625493772818923873802768696944779844849822283305162040802034488463223248595005958602973362394350637108219011886272869623191825694270110858522885197163381065093901261644362556263574066197399874707941646416654612570394905060336264902579913002529249780562198510594144676410245715754109278527780158437120809074935842504089397398456117340875351619705119907994247750885700606063643926596709636721132531599090976208019072896808698206344840954277064065083213042152753622542817572900921092589632429738220781727448285530423426466833824720636188541075062637779835089446725190891752544494614247134786794866192562046561860215933493419720092975039570742149705172870802661721021455170037668954627774315583342903598163383429764873620760952075829569348293422077072737265038941723697709232329440059351469246664826010943318258400971792014562698996533407424145631595540777988249497030862175152722308224595191572154364109553273374637155473142881433905097115978303315709004450370796306562210535104313169353338190632801025712425497251048553407774666843432095948915911173617534356874712196515189106497133645176043893956225413394026079342565904546364127326217072312539331741131376830073445206209771906886239069393380865817736825840580971317037321171944357226494428150244856754438864861469082092105470388113587453357809954216386200222844367616799287056725350677128382289000979669277786304065136853818865205604051124230026247610134651691163555448913301710032519576279305397617863230781011809536644948384113550490319278400490589484145940145866615279316279327812146828193090980669826879606941986005332278077892474904635814949451591037639494408956378699773383247858832086877094977914496488960145195557091479255801182164832540636853352009423412353804908515078396817218764008220042192717947111880211546714383461103061923061666599788752953876420448065690218694832085273133299125377354262167744575655498448200173474153797518608242379179285436607402858729649126106885128478270138394709519234706974965647299773994746501805540509659631599863238188125738336654095293378825527777156170090917443730083698295630569863538458570481667112934862323327113276368440195657245639808446001526798174636453861112331715910076010058617049117003470323288457995403715113563761100379918758479670615393626890804365025782362529213467060212971332039981090679251941069947272882145181667029983018521655693811849194849760885420940120983814320205840112771587894250929576855598086510619928495305055468383092002332917249636073346416141623190720495359173661631544221669082526974039570954193519878094770279174185027760087341348410404210650668191170850300841279859554374643324518592239537620014109432764134534520265992971496347633176826613665040176000643231279523249039736108267564795925539889793202775146932964166470680718276869987708146333798049581099340165243882548974992880278784512072056278319212064989495679932363710886775648361299545225228127045159275137967314177303255776193663409850870554139355313426019872918404151975605648425563558820435811327394165246431565158762411536979498938017680436463102665968533830750223116997382909939864804641632313280743223075745941055530421721431628152262709471699970771016974376575232456808313265205877868903141370148201183866688656457642397050517937114059917630938519729383007836111499069712570267175744328371947451717687243665802484324851087294343240018453717659878853018776377022312540601491298093168723092883255533181446051317090274507932472292432510674520458804632147554215037884979188559118304110076817482656741677312824891275021082092787537411196444137987563188584327030694806157535502761173967554784228557589948334519000402491912294683139247057467392237442265549879981358959324894985509982486841896954634363779558930527022677057059656871804138389947069610925041784425030350113317439659975408518672491208169570358765176231237458695300343300350145302715231156356521491425899835898397060656890493975350771484753387588148508050000857595774969777157257567255719589217647311208670804741468440834257598792227066148225997885671366216704531980688287372067202374350834480878720736570520060324682252006178733350806603569425912350768641510387704926156574764745407801426550102128703566799790139007347244507628426120699645957242391830185531239568197397083245602381147369288771572680235345512759816396276636487697774860992988163221029260780160394260045441568654846621364497520905441712545599419777479368751260576257664432184046801248460117883044343677815833520776140279620800152247842241982442067476362424905950318454679926695186631081384640813660401403052988765161755178388009190964987809241767624763459629297705473090222027139639924940378242463037764978902893474559942985277523952110689947981196895469743562123352867814141956321212593703858184420110035672050745811542594190588715918779786840896086884235692457952179123393331778713089408793578241964318183242424594927824082325003343486356697460838254572477779081784457758370879434568283709962782697198215961773875980081647496042929204704768703930883920399675476255062986480219304958088645453349687501314052922018090102160169757381941271284931590396812888092739694897942157251228466596248248775888197247802139396736212527871738828059173164505882028301894811304683379600902797451599444230151660528928823602458275025807254515445467880654092059651328810167160040256536829218059811242408815335317546377457547404338148752490646904090859506029835716487957798500754374962730632325295507117871947000340192951906496831111894400521838775008182973561390729804738872222956593178403543443668097563995554715068404873680013401530639878309068420523350028374123293187738114287895622847997265443705810102522897921333216534288466670529467601358797713647378380369978044164275800050699396519134019185377286540223292227366545008645100700510671155089847166847456188350271650081122222872612480508958953496470791881732640526747350182497670587887316281964700016423303781774530061250670087997298166426057700978326568913593200417511733012586746386809199538161642953136430546569869508078348064498270526911608995612833713603336352216941168354385165186715707083566872768788413615183978014137191266423860132426078200073244656675331083405649672932065020305916672043171388618668651213401902609125126751614480529391464629739748600645497953446658832180512812872470656775084340905761016417026039612662703668978502732108735393966215306342634160812903273524773142918626743217749029373826813452887543546960400139187508878779842770351660739416958206117042095129988056509868007247306951205947741146859214636725347009214503681162478160010223002040286796673537675856150127821784511690639341457355629016150304679282143772692824353263012104457271632856984260748729367956234434286596079171806852943784024957008587721132996504477392887557159181552544144763884165368628111046440759881194604559574259571114408187891929541396346488608711145789911938638513252083423379758971359985928740237848697500463087249311673108868872488268576076597495671960146704643866141564280909719282607125998874674139075994351809000285707886028364328208774421485310545317709769581047567203007050042151597692629580587534917152321297559455677113163903003380959454773560999091837253459904424952188172811093108119750278859124733995237001977443314976290156914172055418002204827678922970701439655481695766719282760104388262759226589230286111269689419817228912546024898433139727927485332900093368847599363450222428478061203687982839970483850588706677784512227040234363142494526991131552806898312727471329904759783428073427806124847047553753963273238780977300778800601882580267267763819082488771357498399565754254930146497919642759575989866067168995303690332321886942353698121858977136521274112013782619804416392350727189682293117937420244005758458177528798369424534120805411694225871415464659204427930810207608136162089149232516357289619448747967861279868261769889051381224994525612002505128444852603797003634066786187635841870613766678686947039302633902457602965431116216937077748697120340956354968552793609471171918348524044826338349835665679355101514958184837755547222737841530259362490699432300719852495378176889441703268471763140775134482153122385910821957146973415569115752220841311758004010011597133400430376968015720739064422148981970114779377224316020137346911115005607412039264068256566278821202212804048897696265455217163853069356236294485745380489182880616001624298557628541101616357197088203806579881612216266956419708984094027957649519449463879658970749772167286316428704393911121197412574820063439917922984322673150509522823195819328339398664668427424610779740671255320851405143068958438757022624626248060511560650814093185490815121574356267612817308330869756796551018073389733438078304180380403877394997165541739142137970460944198680505374891054644194904609805393982652961753864745733805193187618137519959940570014141238163297488428620613094308009430555140809244807855738065922456883715583315496348946562965826211988224493894689186520184884283286004003712603610774979252732987618255069508873330221296256338135276766252229267677876352447796946812249706693007197705487168618888526426496054072547490852654099215519185471813113090748319115086565739694344793614430588640009609743964316946193682276556472883100275618317193462225491247473638002740378528709911021708036150851118608264597243794291403895560599058551980713669804085280605990285180524363168300332030754068914162878197376834974125093760780829530139374817227447223866723503793143917653362269556625178923492330951778988597414843028082932192216860802860710297453588015959441174346628623908665103145147931716699737799604821750106154950906333516315961168800287716110661306718818084476962115334860628734974886720612703403822495047719419395835150229081071524381329895486971630438101792268519162958381054707915089535790834144124791008531789947603915961676748020764798294484036138919945465006865747765433001293292309943128472280782007887531708572817922033223499611195756776025006838017987894349684893798364025258748410253294213858043744136067277368423166934858673421059004034097095461651699588398427582587305800851347143011884895620487673463361631272017137543307443445870776532333068691960850559942808644025281982534656907429705114412783941305905061788553011904731621891997418996610872344798507464010752202334443952424548389571038742056791016287504851415336752809616340440001266644649040336321460019750376787146609462256490343151118387403751134785847691236219557870781459924394181352382101686622551657058933868080055861262004972886027151629886124862125122627084406047097302089165334845605877658160064647608723779981622248737442049351319974496445256308619780702321041231740232065667592401445398651638347874033836919744197608750465256968604573999428220011963434747586650836793630480965441637698968433231258592457425860766825871821377079267751779520329904494439702133688879103714644385921865644757633782341951085569203063358680916518795017652301709201984248219713106569305125465751285356863652610335845985537200655485879189360404328592390897673463047423797972034370051249791762378290914960008477262691374438690327696753689702771003978717523175924884817802823468898015305382265128793523741582683984106892171831656580698617296144433087215280380695661870322198117161247950335249381877865556806770077277560183506830577806806230608911759620637306019098708763474012905018542512311643936422612195107704750392445187433930815859563071320139899838789461849169143950704876177925428889089431834665952470467081643388559476553104943901252023812253980721400861448349636048788602063055477573735455135867454722956450198927541473099268333718504010882233411327958581620711229444743668884530590754201756493784896568488838648783431690065451767719655969337284675238299252843988246092211715711137893249500948531406031947925454105496271890077873727286498639602313189340344222933275992631996176197287235166624736548463232567781059863253004099536698615918915833772078961828152303142395088798249434725575916807287991792604748707885362994747308165236790877359055622888907716710879532607120790771308276557876085055509534678758843755268652438134747883434614574228266634084118095673189790552178611294089356267887168770292963467251318025141072866190514822123091434778455114176078667719576192475871463320700576005689242268544148712945328415442979411155662442730339291919098246645873289524422231915431290416813762600399106890987410133015228835994952328427976656540558294167325772740257506448885197790771979301182969790917555371934490227972180715165577420447580148198510611797653762216325422853824559283224303302356801073676535073142984524588921548253407506149506801349511689422326937456146525321581365698106645030225558803159444901649089045183171284689800255004747049310892349915771235059178147186857730956537812386940016478793523090836526625582472376005847177138792699424079769662415587931151896515627229150621625826555414542881624184736272909243113790071697635395421833238104232763971287599068493305048597478257283930120327387024366641830530097576304039632058866411593598444840757212537518277552927844516669532232711041832395149039142900030731474293934442958495715180488797659697834791196463336639077940436161465682584090282216932402006632895699930410666083135522098385062276476919978907794990422665986336720742887843321624130626371371228650226161952274495241695062696521042632631720057442356456251334087752335784396326096854278359192267615349830690040258761393143743508687039351602638635581740578108990126112757240614875185033824046413056659932364176249650688442137277820872195421081454415106834305178491151631901111142737622386679534223229573027093993433461012476893609935190531531504829973840026256182116521511864447781955552963188298545084375088830393011756352929153474405682469273563574861619747313308596415024381518214103172317926826367750296083115455046663134703667556430705004074190391530681515088777170499663573958788690621693037537709081995836255006773770103605907161540252567365163690760432837362798682597846646136322863331945949829439847337490773990750801377454400733002225997368885101068329774174577819445762071619159142015038640273559018496106223779457180533297033757864493642181731213449014815666330612008654868057388461133663973408086287320796676985284369566703749479944056645520400988177621014334023678063949161718488987991715229396761458603137887380339395384366190962009487518195469902586810400647061733428135548702343680972060808341350176552758937143445419888010722843608614287870385392290858907132767244499910693507174569082009282923530772363707230258937403558357893877315864002038222795812034905754519343942130861597407123746060633925388382616720045168736031053628844879563623495493253335871215792874436849658525207915611677001804319333977147067214530450591121877931402164248066086898145289291601101255138606826532807570411382259421842459089445658119813831340985964006644763838227479503539243142692643516483769916243491216282387010619207285580022827999667349681508046603487284690019587591773049779857518064973065126326967972093397956978433087004709573100203015931180124784962983404721479413672637456416850936804537688286548609985051549843827368570567255940796528904250994211790523490983794669225738823381697686839435504515009261353642784393426638986456809817029991793131445997527414208533103023393997082975227576126922491789634571607775901419519608001190963144965274565278955962562673245929243563594396942449018819546412586943051218737246279457443993527182537390693860522612338675139729337823600586190065666742368541394008720821565022724258921947681811350253626936290240598919473236976746635447913880122659503777237683822129214213366028139453272762726612745505583389960136183973636127048593906124625969044515100329357088515894652475179813006538127398012825666681282267444164666498471195762410293453496538354454711693715284841578325976364926186072020392008763355166475285436144279350473087484368785065109744600058453396790923797881175299191386747376057360432257583662654529802941832947619083793736218121365392353393678577210119438541530954787929009257247811019821294857669695720486470806214373079752612647812134466441215863901940302693799364152114026865461518220882749892793466450084235263918524039789661644458696606200088821622624796808743563111622548489921280003244981448619046937657762594910495056273502198789238937679691884980548062599969190414116310869058078119713012834274794790682928260150691391315132411119394408335566813962431537508257434105682731935466214296148454749458048750903438789724974949694508564038508823452819126671254134882203922367473618325552054585470464205866922262327565600284250164292967695677921047447025580321893001251484301091483957914324550091013719945227728534755032991936515016667981695200473661937512309284371372552183750815796648335338905865199619983127911774583650041434098214255965101707736421254984516984401378231859542986603727777398205646255448170148947668185018066343484488811528127914499628443547549743736763693678817909323406020910599854801149355427258856777435161793370572399134213131072234145504130929552813932916014102135301136047907642489984239760926524420139204042618518730720098568004197158406037107167481585618989687790916912800837305404231643276569502226755304641485123427819352805399844757679911231414942004965395359383889410250855942611588595414968783586234723342717865025024286991934508473117006056395763729407206639595055900030029432460917120118222251012226557444586686086002035590196092160662547174151475605912614083417089228875651304262783105545374942659196365396512379986916764680563997555460077205324336375086962008574436109756833582654714995709410864709481656128393436573219493778709546436393768756362953526446347301201654660211275640731630439906854631964018614193652490699057863254581716084345658197102782204980915509861928258923032402158655146652642048636826806635491422994792966327036768506075625193712337076271375469052996663790815741222800942974737984335960124215998007226854244435239269048388191470866118060218277551010533717447228723021817593111480440819176040509488048844149556218915578407157966313211607101806970258827751140156805360450655805254250672709032468859863866008941261973220667411867158994512510464503586187955125737067544306216565042510350216955096600011813785964711122874685091314786146843450554122985408369804475785907660095282341351050346629987264666968408744383395624285753548927381500734656863539841583113165868152575105598136516273327418076738419116440808840231579534702335000366594773849143769269927760686103385828964088107649123922552663998737683007422953926031483043812179566341200664977581898856970295602955652744362117451889627152060127411019321057953948430419095887785326762881815277103105467628461371759491684083770699799508694301445354438005114155575774961350091650886353937607081919719282784227984517266513039416922566276195043344688280439956684533687264906580909417854982908714750506494650202635326968164983662711196885445378408823245394760975704491539278256377515044783503916241056101431697421751575067594759914274973799522882655572575530353706920766963577069835617988340892281076871904709476775854869869741138698957579272351331697270493231539906440928086765794773896024384064298636549035228964868637021630931725781850817169766028979097119610881335485548629118862591893479141015230009876871663205570285783479860695734882500020279136793221915510208918022688632185277434860451495185834153557003238853856239262423359970519800195499077166930007562649783377030297988559197401991356660348539272128102574362801278618876281508865517502373396178487384752400150125851593063082250969345201038530556786772818473870941127895610037463670429284242771288052015363987215684210940478044003771100521436269544462668154447123906799632925511312318664116662549616347274071889943387481632899268892050560677869927974948716068463315759070235493279888369871030467044504670993470493985386046118387651994990124207210223490003546855480072870185077918212136903284295220959891568109090354036247266827123547737800514853391057450018629831308757372967166183617652569464095300967087677428986079048935935455618775459735635781880356933636976470853459294523999387223082344132813741691777296170330364661677063477882986783740866184864216753815418103159711618331116517723818735338606487243547745491841310857924813537892846151635045224288672324473971662595851627154474685587218251064419127203858534336333843335651584912585483558918758143918787583629915638270203101410156949666604046457460373769378143393459488031040780931798591134229729249566993644531563934749296187024213278519603197977240051813928432690374069580749732190873921885842992667461487071447965760269333660727643840664097713031454151717788572034149601435058323860582394387921941332052089301711230553868766355826996185535865671297577235091152830837503706735798059544692465458010674027933672509588114582617969391167069998517497940790539333332474308218764425722374854396948227020448477161005838172631465224821922181344064692240404091113700448630049512576556376071434809515301644514018004468969902701627981252238724314515881949252964707068963812767159458571150696230200470615557486911213766882811106785815447362892902504987099974795520728304729370790652924477328144593945519022795818560931140281577256717198735447073219338672860299488240283919250924177161676641277394031712625176495434517827593593437195756110288701292219750083831187307440454450238163296823727467169084784858363232855842586523176828636573880367140240346741941006532276448367548957647388395704066393232944280658405513952597254741273250219029417918795598564014572308233186683741775273297656926205664884017956911117572186417747823831353448841344374312583869096948368348621185166171239242107458110265126328598419408335902117247728821973303282228294106187036708651237530152803523278165293701780024206056501708618083862150549279181010318868198696915222698778849361187801854402677162196774018208064526036462416081649764003156538590681253017355829280100420387771321252610381158792706641855708998578812861518184702274935591275497827726330561261344981764874122115110853606993308471051937733039036583836813227416430724914446952466999156371880165085259014109042017172481229838693399260382866968864206836038946464088106721815215042759795209568960289525315440328535952319253303730507848267030267042532041455061289677323751712992223661163065849515188490295375652304254362026605652060775430289500086880324640737023145332125624394398992406773293111025251369720381848910926198752773309743906275768340428602029781489446782436811709391720315618254153722514072711883747640306157040214682630296271055941265043495555874434718648153223824966856507747564861657225117773447949183639304531714908884026742311359380716289139944755070817641103345735382735130130037039624410603921323911241262428339907048595230329883644757511321750969133677686454780794318833061150380304410905331297279024827392390655563267484373330157248588144547938385778797268580973060924520524062107240246240566202982168759372442406169723724146229381228260315447125609636226634163925305449157510603311866533991371570224751851708812582767457312093135975626215138444860017231731551562910938796625175339978231749279153273387910779111407288940947127601229651967828579018701552450180487082455339842256352610530792288098411741200494646886048745322418975744639430571346563327322068929900865537657162180089563700204674641915769420923086645843060523589713958049843397002517132625764561264795450890955403678489041080242389992695733035382840059686549005113422818970643315082554101906212466835482600677305107337195718538828212680269682120584114210892260158114671566939101262209769363462724289141968476283635605917944212506159456994458164201466059512172313067908682459526000956436288054359548587971178439480149157771266748416745999583592367752176710497828468766980599330992542064725610418504418445681848157221622212454126862327675130610377019854421093411859994571485514911188023209575371147713492759253231981695163015539631397583533396637850756093635789861006273651314403482081789091771808870121563872545352193148804287453223713700389390633938977390307183703041591622126942560981341188840557623795068347916771476447746143637585250506306261948253836789164076957187989891475466620181119094832476495721390339332813557554264336189866429159495310825608640377333116889373041659049244842888066743898475993484184080334417848298762686120933241183206760512430226628129367208815415145479989731803109687433912662523268330122751762922644433376797587969802154080986119095792181159539077257155184729821470554724559129406455532327716545754781644364371085326165187199418893074836755844592456666844478059154300182122613206473083042290887980626078587864267351584887456621422777552234330764354977602527534469146721660289461839335931840025038770427993780155301844877693043467576756691828556595165546647165953823958147130815209229016541620020532768433910525028060462416390579164796335848049721143417076294251150079090951712900816133980600006557480028169594843947339595636849237660243590837926506978903462561791745561349493283635163355995896771911517326857426519708291219995084349241775976010486358692952177744788128533094725527704641145085113359319176900186144567937124867276581688936431303307915722171661951230569497673925016954334367541434926478605722446446360457008226648778814367124984088679894643996640211819927210022639028996656458589764311073440026667794064742868631951135572233987157422214429976275021807389920694056764343966596468640139834062453470913871204769708367967604966798992330043329918125152027538744837806398893519105060636106795700247923090712328303950970384464551455412355139633478311773425507236425950266834487260241918160782997557170523167396921482238183614879311050864870467657865995037087222801369273178203989344528254249219650889728739524346735278510489086168085821356204377352508418385226995142468693781935376100454901357550307821672277128952197998964709195187003309849873903709453449003183425939539900027109873712630676163482017702851039201864884306415664953398319660189471818482032968726698023721823467013517165716546085968781037326951807997298591184306636474598331430163582108403858200704709958716484921405485841774583929317912540551976211832027494619095599752289003012545174098439845468144380509760149656017476080947644453806219588062594611200924844751661147002606889741026551241789972080554108898856621085364819977712102282481363081476594678931837886364621618311489502400882593203269227431826591012082935166448613314541710577467158823896232911344774031689514704412367592153063492326941386719023198645196235250871574793981087740745310584440491835716206218777657716657593788507431362161403740549727106288141848860908710426739759114934575152796284043869117915577619179565358351116293223404031019952128143530213300740935255753287898908380373449165873634472419615870645266289247819654314550371584162268087732519052793487026412015484233194937985567905808591884601455861718327191935744434735215784694772355648921494777416425575291294875808614641323287252261375489861807218747955327641056675312793048023016655587497757815487694416033132407179069276646371348967985316781182603780245205834694513408823395324974371267828245019535959474740968706876743923679573714028220839127393071131114853582462785604155463661407854262488664872009285471826393062669191746578873336413898463713903041208586966118535378756534951507656232242982666134683124678773509149524906322245785960124461716202012740298132160581724899739707307968167161443530377064296612142231901350716565294041056261007109005593076238679999121960653603762634604977012750704160930950968428103636578447804791114952669148313552469546768863999936499196330674123375772449749627979639337869342602555235653068968299736928107513259685665415972746390679128154026945580518415095222743778024749405467465532706825225046365921213871119819986386186989228537517368527342964490866845636131232689588101508899541991203991624444894014834194257479338104901830129588323909644383137127597736957383120760604645219847269322004828304581100021291449109717007542257080866827358060190894882631173635624921098847654334290268631540486445531492783113523537444801345349493246504977057948269835520713033749704444796260424836652566803984857050879302173259992492954558407949842295729100938609952547238172394764083286844579291163360231132772880308659252101142784842395892375050059897040818535052781902057935325328150542919859013296588397912525404907389165937332546838380017711116898396862955064807478904430304806220907472108018151259090186555899089633225146402798568702752368978560254131374716965344818732533009751225875410708924016199931714796474612858936214523050693287465049697104723787911601834466944406297435240255873268025227265095565549738601847054141156665972198432991808379045243163861532866078890246920099966529858570487224679108403800629230529221846681676252011126979966596603143224895254356070020119400376364823755422374140257011193605257561181715468757448262420334789827084637908681408941772248316440839823840578357218069636130112217596460521091143976833568131925414592580391730587426860443997133642164209421777075187426845546571086861445928671091969773162044114897530990443697031638207165469148641312853021827326959976970957986260325590037047569246054410421164731588812322981700064750804557453487173392257511808494369550728604258379052044168787725822588533953495703456460642133283590623516071403981438388264655693581933375741213806923723656673430109506829804670952716144321363547459732732529482392317010400179326998560992932515051414609982603621887531527612060774157023257622335967538823048689762290281013144172467273192789039326131829412437646786919289255511495447963740883941369707371198179084025228570791762576019057703936791874090415284898960990530178628776418318513095450285002662135002141876576270597828230935615925563746647035555543199624546375362689102831313410538483261434511015356800813633531893527886097516756980115730809900285401032041786357515051515069165027877536400265614145058238061679767542155808599736452617843099254114649140520940259787066921996457989987564799954433709426407312070156794064671281336934369806941443485652888494496109250843198048341379674244069780062264827058948323399313293129720375769024119262370738598255913667496354430235907580469782773162384675623791151734056160254085004386919540875258948637667311024964198241481859008541952881068529389958245316442040529448425017623541723521955923630345856984618902237781741739550989745212934858566050815016167422288522866067765478076784391366581903365608190319802287071764146169310285283811629384520334901821927530522141319173876984079504308122467865064347744074010022347256328416533532887960985939896641981428008416986627162949356801685711406605027743946103510671665654059183931973754090995200782630906416029372113084979860940318575476345247832581518991790679012589449074910555196830769521742664637563177660932980569353923114207165445865591944607467381865721210251655867040863044851548423082015082080706628931768674567701596271627199407243177647492122377856673971331573218334490956941541900208031787319129101764305495354945400597223860566458332478503323523296002579032701342424481956851633556747654715727966873655872740605377829932805804272113863051931753134693496657109522381481358444326416277033460556464738574017328336438828360549192116929009747518510594950949226938207930631875628377608666881632242620696719848638398118411131899057606487765485048225180787003324384710605690009789949526020532241224202880649533859845704934307373194201105603303661004770375302913315350369469251712877317124270082063900160415382984809500793821297999661082978689825271355087510126959272984172053687029308448470139855998675993880026483917727059877772853947759238436160774801233932864983514974041264252395027522548079896052847304817061458896460398089826614571396021791231666473459609546454380644554697906128609917304437026346583111149129824279051226212864139252913878658075468024721488695977247895153531025713745939519605116137196895457119140001250536336634682742137183331970133474281918520271451725881137429189036988403836330392359904355408295016867379973399146856527221847602275911305997733363502224818607814959537757017571036133610745468290518295563202412264640394729946160405113061743004096510166103623045079505395401854390061107810976125702254224705941271679902188643236076577785314069431490095223935431351220191899550435219412026835168757760619940821131227452495867624802139045012919132160445991059235313976738654610092140482935528383763726019362949795026920525082750495970271792536155998693878093696342118741422618051999893421046798498911049901614324074270490457064527002260240242914686706863250451987598951727332435179135441848716497300592136511698460089909247285035996610124163944953300654240141462759724509449282118597982572340005941713965190512456773737040305290288211461360291304181989918142895794600326608282574577002143589777343244558111020035360178265183462001134697454440752222594671076327276234317020210638027964884822839931112721962784887406760148361480653173556512689894128069161243164427899990899750906845767422477413466142380644301642632539860621095132863135413107752545473084047384669125361101361082856238106818234000622470383908533082139066707113323584716308133652090915137494898171303345620055554029175089786021020202845282909033975821379236128334797995713986479987114594855149167722904849632192018194678038677803452244440955989309689883357015828185242511221957842836635831946279473209050578179978178069232902904399576219551668682852598952243550834316982901275574043761419728079054161957663279983338928947547703418721903800216928110108986225209466803855169762219957852928536139977196700743365746150243883935953487631617979035682057251018684295941580573200541820708732234307553541637968442413430288235313420336247304131193806639747084947897691570218990071673736542009864433322617987515102960491634072000135272989139788438990662695460387268168941420743833907745451199842680950406636721882771869008459184723962547560477075852655159157506144535335392839239426287660713100805273340857769395768281264487744417748548996806871726242123815474048269646162817872409575041879192166998762938800892024690433764918377620587498359900065003653070229726412405676985347501821330966824092951770624395098282884477940531096435374555834733008396398905658447289193637323852850860932588286650293558846012374156647280225084722152328126317332609148039618977135711901079972790642458066296201734817427053261666443407996299182216950883420899289032520340780780089991745299786807765881107358510072251509531683205110925208818915543120200063867737913017188896169167933119920639966130137553611528612140519192156265132587566840638375322479417744610338433094039465131452318454631660763817754905768211495641108117383993211888827193166725065225588711569403860855992791807621208267446901331158445148128724051352826377913122890124174315104462531490564344651136090969317052034513705568993269507045072724086277484626891272976567284453333254879005786811375394848627241206256265880537018456716673117934828307998661390180416859805315875823278590980020491451766337937917955392439843206121228561242383648371024991232624002707702559893319537561006904621400842225654898838634713159785771951828483436545590391263945712543588634707571068812403068786596207653055075719212964438462907817992533253371832127022318131953656424949061441816875344903517433282117185662088563278551859901837926079617151135305847678166921558847666806718480795204088242021026159384873008847271502047770363522755996372418180735645482925014809617037123266595577262321151850808557635938038357464981126754276368109930651254342193967639147769524889463412763054098467707038080758786095078905265449139102753259888752249969262201770817822922186655924921999067910258565843479525628742234060601578342476903316266900791230310838307920474588953039441261139982650260916995399060411626882991075251464663287839515121485207167049261902500087832774297030498441643083135243757217441164266749637966125186421197028543734515700132877094011334740044279778120121982816234838016618706328500933985045991633087334014937059207339290816144327487707131623631096457828060412854480575910099041290837530071049643287562971989766023361998080762069026930201503628875241182603713951406863303813495308049018931908110421891138257260546471101141303068837891413357819292088734356138271130730260903707719942265261168565829323063374562881514381346814715146848073870096115971028463346904722822274541082237385851955260014289345516506075709224265493854359714345097280823532079749339256818645549164369685848126359653321529967036513460586299363686139115568011649780241796310352584416792888743924005373362379536060748766408462981754386453901894892991033665544910916910739826574288575814601049882696546092436696718535704908700071411277886237065804529553764412959027797752035487379067947249547963879098979768300944307461834228295508777300137806063626029734856977691382195926701397907669298511934383679646788979537155949124362966829114493422206625277019290218471020453577100049812938842701243070179894665562554248530511435998539613535921730118180605394509051161077715696738405692155222740498456608114663235588809141780444174014194110894767517049840796009997779117615333470454695873987068718783654021739083981906150795982357596121754460060248815682808363349324143451670532336749804257357462500363216316479500463375831518497379011619190827127083587402506046684235908471603091337414707101145973933473105080247872469890789902210657728136093324654941783159841450920219391302769600601537091829664718622429366474134134232965797908069201809011193125284569962028314723985832823466619508108406671739278606236622986796226200374650572196233885759261382914691321487583810933776365911160448506768712130397038287360180037328594973760098762151571302456847089362598619792548116263017233889105391568820732896822095969896888300242023975872948885801446937426174629820693048894324167856817678686541766364322430858500599587364247607903230572255940006075869710688375428207815480844503721653524455246946181099817773208447231780925291379274506961257193883290189984055876208282203294189174584309843651155319363031248460194380607999504758475852083008369024606369781872818897124056126573508635860034280495662707129924743810214628606717842676470015213814250618606405062324017198162955903057863197784212824655376867267869551086656009135812617098692061490281798716980071378039871550434396785059336833142000023896310838342202690727721967075654615672798131530569311726986124884783206245689945781407571581771928950188842800128133781103421857153198385144511170908678578087479430143720593923038130441999602475891096965169424585142057755707192967325845720841025671153209896816202328750997478185734896246064959850211868233965540269014693480255020782396588304792685596345141056033439874650117328652342009157078449703402027299575546627770791515825689376189952656297316029481538889208590961040643389717635141350815253450832811152642998417901822340831952650441562251651604856933937827074893288701866627174964502174662610796182750594072529869476821468720532895758683133047259417460789213792758537997968842650403643086156183717673583329899051248097268619908627823473563250898057586921054602330362588730733818808569158612428902620202738626524264695213731426754323099358307621776447243387698932477362968414639227576737302880951718263614560484420875994035346666431075094781166146973820458093303488902300270389998129481986047890487981253937334131878782399499708350239423074930935708024698890522369577058779428751776416480783269439285181383591193691715262753846272474074252289758261868339808922240125401586730553629629551028844087249041024735309860775565605590932105690726479832116111222540588495726694255294649115445453071587603236631451378259825086648264321807221020097968626320698140063793723933416091530373998204248005301028828528149572702017760767982079610572178022356054065799977365401424736645617736644786053380976862500988721518329509273466433433646716450162218528968163850300519058555634889037809149881697538615348823330041286299879755432338043940936171135637772146568683912316375125149606629400029663026160550718129915457311449275578413092012457836824670221495801804745133176125122976593246006162981144164067037307039870613482923370541497066023149106535826834738075611465086919802106607584284702916014858225569158430118259124826893937016347329166782905594409456837917716053425137525748896486470630643878703114296119063329124940348889238399236796447608227690873944014074935339989233026256874190531069091595967480740033659165275964423570036716726462783598812487140922297201973319926513517371198088765039074850961810382483293953310592394702952558227722750993624719197135782611209795812560540141320055652310918579251247468605753424292120760652071492980711333008939478412453892173610779478711026384650483405246679958627000623918534359356374670637139126786181188309154041226011290656653587158639285920685362374084633082163749953085549741360810180714790222506967900699202454621274638920479570069479686720977605399518177976111568302856726177158882437605838302553484893420113460160270737199147234216120464116206014368463359608446291078351974240521662754720827709089427299080688359487405601692765027611961023936377949188801945696113927642512015722416934543038032139979029079771556737063637270609357642968968735517474610531084358758595200994126275899754953678566790051660085573024389000717914590661255351854397076882866081848136336713587990311559796772837381976402982302669098344438589516566706940868903259522745355646511204496695206765932922598115297523256823617734442114017362037723450084340636451043630406350784189196776545228634796486907467364490205436562285187863117905111494646926944359077115023505343606133035758056882728038434938532083822252682926859933806745016268758790783308691539657141028026510950670927183618628957050241938643565259994604429618147988861190619449910299405501273173060707781440554724629913079357528551163316720525196734599856311819915556332335394746512761318791916247496357322603280622590133798358114851368050341705029696907841194315334404816231380348263711539398809501784260877289719117778407056016434991397099208023881817032395188387137582301249296715272191531537325229209891163798926255294826404836751502732806108103120752057228321318197250934937014997238171671159683068481937254747259428157857940154365166190958403517434204741134868319479146031345867519606095816338268386559733159628456117523466788807467509722799323480390021820735841625310565794151369995833463288899298741760239400476598499486230262433709546427892767981858161559429053447244491504002992006332289889305038661728679389519881436545639117451126021706197709258019016760513481209088457555948383831246357610771043419256475361326748061383827080702501190102756231760918645845318601326015708601224350003484908187845825135257835918737211517997305149685713029626890624633092579352681752213173709932830159184295277426394036938056586151705320013683146565559841851868167812331101720671637550624997129000201476404250518981486870327805756863005728272265965484084463785308862535627288626575404586985846272300507057382447325731900464516212339888105344212359584154199884513380275729098450387672765264535948161933662879460012208715526355806252734102326847295601295646464084145799510274983092948986832648112722298927654757701918630758805935711289488110381760025424995143964495823337885023125849240198651880801029538906357699778047856224045142723180558871279623057062240392814152842759703136836174104321795191934211785896953042279853538738996922086096093929381235657848328181515270196557562081222681792699043586774504040046330762801089299722915250628571070882137176503565816864594472271672423830313078325398710027129500371704626164643174266572301994524812755281262480285694134852168274712059265481533457339084141491757784217034786428815178089353372659183987853879746323845909178531913279216383577146048032711208497970963415917753006649252176239710646946132745364743236713810705677699592316334823239521413697639194224754769741054967882119903631808417642022722173461167093630614015972653972690419381137118815817963738403201797468112266289960079094812683706721641316850880126578954873835910714815306586344475912664750406898075516245074911868701533092510540076565683199085672970261362286629172773016690542492109156288459606073896992954606579723679759866536568591952213017414617776400936981787587765991962668602794085604012242251844511287800137413959199003087832652656764708217914636612904502140882240857550698277243760003889209737767741190629580016839012172125450685190852482907057760806325343225892976303351339239392037414848954241948624151306228792736457558359440326973816544703845353854133567737937950093476072656867938067217571619105006651956488485558353353444320319884178081301360375673053682962133855260011368163881329533031415912581232158220424169360520601905471915154886914748733831474459181165889932247734154431599637619078063859786268082908088476866892600821987133472056352510739768737160387739340673554348010270624780931096041242928807807371589846021953269094563387558871977364406537413988368131407009225592067110050435179864058063964554145339195758068626019537605879108834962312313839277460052067712829098675912920257000186445787572000976701636892003635466023020019084809528908899050544762446815029661660151818168087064794772176444325630313611931456152597686645736119069279094800082676487265208899490825272232766860148250610540685405571527863791036828860873962060206564228219283522196480409293158659294912540014526573734933595238005107498555908694312140501053343247547217279461808732254780351881308578005519353647078529244953738147526882653946557624834132103740855682366205904923650834565125996827486182022275883989556092018243871041985356391860304109418601832575597437553318064314442194625610526883072333741016952290197968389670159862816309475442010436663198435058234854746897146536600638849538611140638337609278610649553334153281264924958389682102671512150342454492063949363245538481256287953270740571184850761704693549531545859311379522595740742060943369020223241743341438062743946854498104608368426467909764204565632857753498070316606646425865640381059061339721563446333785932719474222716416085508619066315541415071393920293981429334989287447737327839654357004168218245064155128517059554084283255310321293973203702718724426394108607211735512497400424920568336108442322119398050898939744276930340426950808545769544015396521041515669364907524191991451257612701442419016259719829212033345020444532956311753469257645087967098247815354896325457695181154567238825964594803264841833178533287232886367900163853636510562073884260830713012973580192126715514448176245367666486246089354585051434692446858409963380517842003803728059893556662170662929967204110792550164739619703520628096877640324752066150905146423494870242778447932743478002557016729756308292249756456700683910511720869118444484900564608848955305967048588102731592044717874204783862490085021590535345402262169215542885999847608153385368981912308852679447610179710137380272897657038683448188807919452759361122776492595950344010066897242864181802024528397908053363830470628651769672270101433716697480029819775074942839973595613317722032027193059308686713549948891270334353638088426028462798438831507277672143038934474621865819450188954934565509579735962036971209618984852365036746303305388373291893563410124921581475190009929205778698056278649568790681292276405340235879726211058445683910237131043844439690967803286101688642484311240360732613412861634322835980615362767570656860566728293880440024884915969209342048776945669330626802545925285054854303786141226064268338085386521268163824791033339224333930018292476767990803400171542587510893722925083238480504954461792745300589992407317780913576063398447455744105542985342774512315407191350427790707015882605966475577293706586865192290878190241265461468873864153986486863535401380649086383565812513257101028132446632892210543550245489531919530197604305765438988948609090395212243154830579589017604353102681877130859151679074535630658240523052434190932795351685907458124268779033755877954347363538865297041060095369254351446038451396868075533189950776101448583881580606903266729326954116680344398152690869199900788650902120322355164560482949341839871823664748341378271088324006415099962602935438206619671296626358633884832213195070988058915811805501447696709281089390975443766817879812153488868632544103654755426199323650977838630304911100438592960884667179900305510074876804359722858360497457731995340678383924185051346507876509510132546267134847973203293510040595131065793409194833931962736286257358578755255699877584428314443049359733224259236976174663643407746504630706199533563895092542611750525761999647220704889080798011054670439857266046364806310062684252924492124877358229567861990341675764498458255354184531573280644175812820179689395741104964181514923529508605387844439383197275731624407460367905524826119708396516760250738356253406626232676727523718396434005789517668539317399325849434977674529145920308392062981295313192185097746596873214940540085999421683616253021860536320991987524994551332274469493813117407392689172463176899890538438627488034771290822217019241336446386283730121421852490747235056269856764793741274322104405562136563449817444216072301034626549343835761205440562647193254706807483929387908767292573498847315555386809421920282048794014306019291994320979672650610295165726473539863495071382330456223105210123794066804239427595658559604457411704947758118200238386065087362495338992036859720312532017953081322362192913394361999243082571367537390776072165543723554754101343519821372575103192157419018650783931309549417921522870496514690096753628759151770434252468547925386605850150235971867657799141366889300618030276221591216139528163099048137722246984908055005461460637428030136035440300058515095975291448630534274317247900015660547411442151796936419671292131108918523080008362347565738465701140609572638627805522562061233526720038376241454037367123743218529744798421993835320680234912779520976019110385458142141377353315288284292010760911326233534877763445392586864394650104375409512623557988089402797425317206612678705640814313024793455180824481538867405969924591725397255084843098684631518141815979489284970132962712587577961473542149793652454326261543584904849006621225688914497758373288005419656255113677144529334460607667840869693091391959177299216471751032372084918352653583922669475032382518776529313552945016370633687509794857270035126683837489136222800432861501590863388715904721243421174420053889784216360634903777642922082536342925803568297641885026679284274908353419722774363988151909203146677767185137664088546175576505885668247612758772852322979033141029980916973390910329528533438288107179597362161137043391778622472436346541756772013410797486244914499881354897851107212607374598511740188112844538197087920982727971154586082640196406579836448933729123664286638161970597883477221252303018608788879384140679876785641599667190571115073691244239280705434726700474705275832322045324886227032454730828708440429064703803804555849344352727727594073353962301018152821701189197085025647934525478758079720325157858733185580896228013540460071621328197180685544102888558673842487339439634273968052860349519770580830418879012950658407233258296295138709252211958789599916852014675352437041487154261677173931773922966541034269461584170258086920734002614212873831733883796718726025457585874768836439271686329730277227606954969202922532814080596266446774473030733454168742934876714095635860763886435407721555093722604730096413322131519511684494049230647983718792296868393092054525599890135887008662656480298711364857995189575414671953393497826831014399235022272373296382749413794894396340243455128696628170029424949523960004754806386029567300454496568468260793567574445866653861240668093970120700810576763363813481163905752737902842866745455526564884954727917767161360909130500277719912268430824547634072725154978238377574126879806805653904326070677494515288632199559995517296374424314793677754617957472065816806046707767666508785189499789822106827843250332008386732118118142727667583560565420597931993314247131697107541123029691525279727060191397979966877096391067108838256842879692202532064092466930527587351260011655016432377161101582538568780383433343744767454955664731661339884841153003356849334059298747040816998730168097791228931810534602160968335059959750664858432291613148707695612645706578008941391246050861167546893552774087528088544585840574144594552937486839234733169710434227276824830112732948668971972050633569021807889339715002776602529820647863801641386284765565560425303714016805842673973110835654430182190064780023223614935996881722081564619145019546553449825152935847122754561153197245356439861617852931629844418316480812044074064870219235323222417951369723366214195105392745919675334474343367208374905936389487071939707835234240344257859968813645127665041769708334452414948083137218487371600732800610447194785668678201116873374393392160871645270352213978416592682959264871067425734064400466130525468359483815935977982400969942908945665565110930495764498640604404374438980423610415283165791487507506702749176890697532990879277771522995931808814732454771379798915261187818347513874906318645693320094464237163213639690566106494792060799899732350103176912513481051712204656227951599097586537911087335232734245099189798163165831168486299032171443896297112109887441422655973928267505027980305053883614011473827636403228497308578912601861793265365308281207792256549415980493710110151641461830533128633291109233655886645583749578352847791697381543024056341155707291682036391465865463328146878463640566497026552567701249583773900476240613649171961875132684452087887993616157836934374758506347397966803924116484921043831865627494047161902125607410415000351980169099401697557988890434228953168090241843292843310631032082072649319653691464210188381611298597516720509840894072055063128347189891115072483893690526061251849824970165058250708763219168630195353327137559714593423880561606286595889962221840212850738823842363375909994786810699569993317331810490403665780073837932087110697668087369102591184538631921877234842962916244611748970897206953988105266969057500047569929952793709300913239269677757149140950658360711593340097973085271027440596515509704940851510072805589539369689254602556477228582245292884577833322027823404676227822189129753328312349884978654224566014432598915566572018157686860821608351195777985800111565208891067938850261912547818941140719406945742358960150798397832067651403688593674117887605502713772635481226608409479587279278127613863928251051316789949187070421213843477405924898145865091341202446733768574314558489627733557382573825895617650067495327072394549059919048782308137099690479972479719950352285497321008195436715461640715398602019164162009611099491431318025243049161685746606951405975240924380438487178329773354092671574525233404867571657188452275584436538913955532631731769918908668216760236671404761964406168759690693915921219250219904166922842808981348661386707630095771882530566461412972386611156588238001490850707781841440932918621105625799154257691292448037158178310616215662309064457882238910614984377004957338200531606963450018756374422205114103876581688259396855790246251658090821109812921491627373010663223358094793964049450945298590228245303383801418057563852637512301903221744975113847931474361424339194960838628813960734950372691880917028151203837830685442850336600770592823274475744390594094730495909016910242185950308976225645455463325172399891210517080200898645910234003747798164686055667251580375970086782176799417743313132533068692748291546577644694066684365166370092259065764140823626385684402715775788370052153443231147205701618929970944645076626000968671100616140097253728013342006150446810394446583174053061224679606703317994303353426098723495848264498347442732182412939445611081664612604630707418996909308634292373702707176641675872892417482439174247946055620344017635169224508275668919388454907628805806934757976373636121948664439081241964721923322940883834025228900044487763913972771239374817397480933405857862264841805480440980823814189846939574953483175422065039954468557534087321820288337276965893388055216939035475933205823268051681377604189837881005375384118075748443001357437620942853072049638404565687632949864991238063919786717411894155432043424408271607671733392144817522544759734722479219816589644317650302307117335021101588710336840944044281732909220807212002207657771545281792602214688298034172767129216937760289856979038595873849884081820270311558041774123650755500720237207465559747591424225088612373146670308192041589857491925404868372598645137265872615470942978418699340706800930188650933862020127261453770690056861958081036417934052468772217914667200490358361912912191966326221387847674217389932684572891014776554720945073266268063707084682481801783086852035749222542267318868524342005612342369759511810607540127654018371983700579106136174684557219292875395139902017677488147353932416126563828609367753734556514423724405489310806530148121541330550648204415787036854912641757360097039708716173830914230107323318927573822534341010828543788412655671634493439865935232723587845333278356476785049355533654086775230610480923253858946114603189637330933740613870276006686829584856314297886729347050415096794770710287836965370312339600227572759221790512193831798072732257245505133021989915781105077859549433153602210339663825773754912918555105308076566482587882714697399695017816959287712470605675921766913368830603140308111560856766474455566833365696932053517806403074260014265710946975495590264264127793106394825188333785527596288958301516032747107925343345702929320889674351875622524865652127634066579406370097775747138267854049221551524446608304886338778102853892583778760089564304143665187419416004571128091402240078349014039350881993741050762691338815059179378441396224739833122292329493309214551136516925052365093048236330605292816404883552709992899616932849282508073071148821365399303923546122077152813933787917415508781014987064868023905137844797642556001327275395100214115605989622694659460263568189324405928871322188281948805924998907609817559602054935223358742536249378629444171715762246981690343507328547802665686401948058030419253929624961164789774285551493165324258727517441990080975307596370205836160305530392476379135899248850732434907977714113729300380133366834236547364073440203734011585695885819731001255553417020618973547290634207382235926602194768798453895542136999368199339695722221826825742297681117745819167760514094729383295182541299619020088321748905857702777501383110138971629162775334648394693922422732576104980302522674742672982946015274034667848183921154786087839055256345973949727232802515225179841616819982778315788359866622614062401682671533017202344373691953116328820684373897662654978362369726172295143792658604185732242930613463444847533807668927744550451781706197511502811078787100142757938838476905893856038488112569634683004216701561938807913105809486914910098448801594257319466309305929910534512822708482382695011383096115454023464187521895030587290403281353636786440620398702305153025660011372687283284966155163561416901011872601010039546506591953542469954388214061623263415837551812170536197991427558593080757716017007113135783504811305970174540533055191376153523752791930862374512319562005965510948084212749849718448871311988753121125543654875016566055961228079218951547683246517945921590287638317025331895703791789453226906779874903021551602835017259473070766745381992426812658505298543858174074523155445879564864811188905778770998985979883379960017637326888399278940136803016259427541480604837369665766608529358480123064108337399936466736831603826136461407436105838203322385272586969055172107855830962002041432917192157653101945895754638722325084619192418092031347809427236425975849880428194114983267395733828846322547817714794417658132144738724132595689065075341032149805799291389794116039237667184187214298820418913697324054420843054351630844098237053840081145157045325237966471710391059829173431725264512206564468944854969264695337386662149381611324385848609630908998792088561497508739042901630493364948558008307397288031257194465943475105370177737525628507031338659232623527004971011853062066674542197689254977770733684287544280101509086671340243920032483368033838317755455728076453119625248606835579955918481053488296711578588831152797286615315035158296988506652341451552201257083943994584066541932421117533857779888828304162053123736708734286836608738962066048149909310114022963195422870716972841374395140041691177061496664817291575488732634468868364238946565181425098631582805535858793507742980328613356498170677866740023638056671757524012551438499907808896919850041062614356537535593121235192320795892739685577714121476815576462924636870803942855502589971634862231686631304564424190323805545591658729479522339020937221531840850908878536634386050517765224277911587553146365861693177480443365393092399014214909747637296953969668417146008970197732317617056531623879904762047752320496864285439437280562260633963164096560849363981780762688429442808726838269264762757421690884356446695993265589000190219609912862287236094657245325617482287919659132085982403181756369130183992158562877816920047598145749647167847071791513995792117928398462732135122166997304846091456968049285950306645951105567894036068190267085496904083633075150470868418683689744085583532464121619643540317538253518511021838200517523231157086040723970319498689616934654845788280388019084033534580413702349739937118505862253086120736943468704733920721388666468937535438977965463655519038767971979976305109739098065786793449370578709099351822656753884375308972142364974206861982066815730737111796198155919058897690765290270942104736510902417464170282690550141387788729137593517164201155483473963294832312649172345098102849765956643120649939847419170374260036902280184866864054208736482863868556855798429999463949288099078008024441272219574605010034169965313582281694190640101058224859537951324038074455841097299996275697566658896469140108501832867033053660756129832827349133984649264822127037486487699885231714467965927901366899479613235633786110282533858230929160151254267024754637461824634261544596170304127383991622963808779794064319783191368944864792213682962754425011903915015315598383235632273866022101331351244337876671509810953842206944777871514255793011295553520914446956291240654392871779607255158920692674532734011222072767705172515671781859630872062096578683343872294497201098139907764630082224824818143914185261918010121149137603714241751123042105484328200983961080260379626061827859545532850411158605928362384336262323670586056795880573608842358451246202153379083602237597505654501534059533269280303752405399394107674666418002513431497525041869179261201019510096599090592499391471484981207925429058480978815313207397076307025761577740772230911048713148300766116249506858952526655971464670186635886268214240659875146962485524584650497909055690413901455072925851957854408083673177620143011732001769650179296893032478323799282942669588997909656830951571026073492422605784520780666985742415951688585491833968992627086561127190711710646488307911324666514960297493969268380418775966542108369859720271985987593935068772785236520734958401283753740363429682313658770840265023355169469899614078474282188097328607534859132342042686004898902193665924385463444006076333435252804288953883083168347672381219457908925569779430125880141852837785923348684019037797374968333986515183864757512171028120996859404657529022979195441475760697665111126676762391809142320752791885155447156049843688830879968302952955254855642636173885099006025712932789412248045551606047491979976163223438647347422367482061073796422110959729331904621932476245436911670085379447259262824951380564746252032284508435615300778387662194849077540121862078925413138749136166693891925507903970246519428133771905192808359326277484862697346388273614006031081116042544337625794293218656159509746384355684072014831734223208305652704950403277028141353302015978578373176584706342691394357805137967859414196021777019202612293997250113810240702206074960777508233722150129710399491066269276731331366683772491319683330553348996521115279668698666233154621676662636558269440449313354747504941002246659159507494109496599374549775997634973954848141449592193728677911287078321462884059035329404185369824601451931626047478526993521335379961527086929872973224044895335222014635508150478932285955436436582641385369083452874518323748989716013287588423296621151310936785450772172440616538287303805849901733994589354095128913001035617608763880724064062225735930280293406256313641218600503085027407367615891625233102200477336362718800209261943970806150180868083108493899484231134077244232208224517732254068584716706396484240608995154176449671547839324903344419783752759464366299501020454712893411918504851709142296502969217892198972761732789720583329730143291517348542590137613935303802043244917195900337054658135937307895168900901575368930407315940560083126250816951543119479740480453331142554509775313770926514425459896442718275599222620699164014346431434975605638033895245021951529668388567298090187157991258477416531002661391582767553716391503673565009158491883723073994415826025877538303593359850231306148790781872815087585387526770437351069743087551594329134763387177593325151327497981010697379762516029957287827296432331433300272848128037764457184580716237513127406305233494430795283028088844614416537973166751990127294961518444219153436184017931478641033280680620034539790123379794210886409296183688652382431681875850337800834484899444993936991587644431697545595897533109413913407673947379440088762637717334535428918898685149261257836547711922755643351740150818299419784943118178012309791433992683018407292451691734898253788781212157414477170460904952711319740310691612752503856838601489008230738909370207421065636061347321604097435771330239604164736804847559834413325956709397039967938294613602527812231272341142906991306893038782349869800444030206090634436189822081793984800787954655115184825130558981064161475740285777110598496812269995919518472427042678192306525825348671020326099636619442478187285567817144204403948836344998065285278549122012200980107719692324849465969152032248863644014182977337096079123426535978302453944071789744504711826627333815153252098380366398716241996227139310687360549960411478076789406326535716973414554955383412011074493330211811046006520786664407871094795225082104082472403130231702978401854958383502070546185546780736044352198473320459540978743621665388664126342805750117495882093314463018119690914707923217357144083839333508165121848087915986593479425800000687791965394463391690774464557098726061254659326320244867903041999894617592751595617590925430367775754698706851134750639414102553286723284207066227631871243822896097584441204014507754773231491617764991821198661803576987019100468014069386112266307481075120600324214924777857583438701847947233845436948847163760929693066322667202408269045120311962973533073972744809972893761609093982572597440566520710279822499791807653591323999234469723350384249525457696845845666722278995597247718489685183492561932163818671112668097728472701958319768113152180514531321747431966444685620586047590173915342841743811895158946316475860887640513281069033409221574469288181704327704379241291512692653544524688440614359939212261383014880092604943817860862621552378546004442907903596879771439105043393119900497625324534990565255111419520769207287133667233449309241892618806067374719815569458102274315995402600964973728406967025976156307959252598557302164348189261398368126130688314665116064466557356186881405921783489688437891241756325215668025413763930263785543467124021624049766192189098828651652137481796802817762299562486652681117217379741518562603765371248249929644173122148907163803250435559218199138110461552676535714602124996220376376231353825380162465231709233141592217500716499496002524282278258654963404277484714602934213013683421169599133385919795355558977830625918886034431460811263861525587484281359512700456669370875555751507984818177421169919568838885361114520318403425640264656534007350507117083124608308306132304854155446966404392453890654813195626404116272131630829582782878171018289228547938406610704783294853439097970548617381459459981813682163954107083429331822427159738357305207788987981747007287857229674582723888342064615135709138269099460013220357225750241657368913633556949453210967547044932828108050749271934220312474159577356419729863094794784748392325679917610846646448631402012399647396669103847394693256063268487211770539440482719241363928942092065142004626890334769391083556392185314811720249259182620689085917295679348553089160529362054634875613186818519837360546022213728762954061618512647488560338777479674046618944480340785671398631946857446157323454682545602422186528179115112453915388020109223108315697153932148672166530972569914512293869794926454942539598154830065544210222965867762023708134643042602910469654154565128174728883694206633108791557181864632029192716956162152629521185683696077552111744357420566022140544732054781091133158943636763290143439179739120330611274453720746704959511279347408494759106393291102863289819395167262806052517279377646773480749740798503919758837958287639150296961375666393908656864936218666367209412971891172170040609147749971385109447903597016805221862195036943826302648583312693801060163517410970485240465133400945134531199866300369707516442785704278609706434696868996105006524864935716143599705860210379228249452243523378573538383514069640317125807790571417283671585159523465989395941382657317004749748873170055750784486255547430279702005921266306736729788205713651462610414031796640574755606320095723953635256227178803338227342300615068891346498114292512728704265187907029634925988239775030087179486873139292256863197116022056804443938108207472802521198094231514696414786812577644831274810960735749899538886691209894660782527211949427389391164174128887892768559888743320177844018743847515087006461766279112668175105336032621290714058022316182343756287524639784927912449718583813798143925954509975619961797104126728612632914875671256759237238174045220924678056147804182064766622516387617405834268291121705383974482523899928258989987081390686383456192748418159060671227486237296683895810282296716539989691782185082765243582674755606365947344355345008678883672273346859263987535311289874871679439168526191402220307777195406226974081200258340055958564693752709213319517057480420762608756409321307580016977032896730579728020443886423412596108810616212891440741431801136960372029274923193607146448440864104317307826422736256987476552530157220653512866506727600851124193650339418327074894281810233768908666972987857471787888069406877262375862087692172475559273643627919671838684255304768945636855200844260776442368046061588598563064742946773596169344264475931107643829700576661448122174775084638301419059743689078806801674802105778795363309306614839516224958916120410329232411489412370983769097773336444397454881077874872872280546471315704151861176189208440102519270827579338306423935455661285327104342620491780058306406672177972297144995465850620087801419069229779778910225537312957697609268924489672002639456617228286160754755705623490972827808920706698152116302870168951177795606828431433095156343276672039714725573227098289971864902049972365616203866866127177126151406934182128464730275381667532069795581689666170587927942121218293639852957925813235215407192220283136506033027478843685371083052902112159286451388197251761668053848464486975871153838809047497120368488715540958215829792210718945804699592044820717708400735074397254911904290411466522430469321936529789885955941836060139285917732055984394607842938479329398043334662480460436775363917512994151281119045564312560816188477203924273644241111276200199240804252619321188662395125695461379274796022012348651057889505370164951750592470231290917965795822214944870307345168476389589746112301384992791137458972629917189042571068137885624980863956684394460386438846961936123599009791846775992843953780506379852873952515396393754376520701085111240794828720055860574006106435370393136140710206906548197044923235929699746522916837321939662754696985984596813802371598481720587097234494562690774647222571410861981826887061385073313934826126042685438327791987633311247408384297936195237316745765466486829200863549172312338948037593958925655610223546951977837747731543300355087412633030285596732090314727575580865158553094778785308873954439021171723642347786476367768967347374816546245920422441315707853808411330945003987694638290178695430254022732649524466758062483146102752365940327317293746456226949035607657812143662922911550777798689196440379600137236255927457235638923836475282659053859852166187318164335068807007270166949529083659528967095015622013017937594198402578959444784382417024318644115738610497779764794786432280597537857207708117500051732746797383776621833846675225173168878155984595545790085469272875307055036733728201699270991942323548072137010545166206722277106003795015002965188809583681460671567150610814041738621613006047801761574571015492216178969386880451295127835132007167505157063061438874011580365436714132566519725410545864939312060271958087897462019810762219843562451501942187321669989285885942561977212708167859629880400560747531105914762684578384126181814684657739895530184501274957877969511408898964945822648567181231346812463136024900688819299892335847362482986124615499956569594707559424611347783676654202796137096798568632914873281224838510328761611916635016625267869355774664547745801322695716459885271265568436834804616545805308506771364946355396709832769488214221901499610886766422625325715284480328907040266822361055320542970270867701796978962718025292548694208166027190337007720852618107989409446848300240755973048237796201989063591043170516136190456409954602479072506702365996285336730867473350217429262564010753032849975399831457950043532175512910838104948946007620107175213843286829775736137536885163233863830394007059991881940399903256072719834412845232338427461165934200011228241092094594257111679439637822390959479137054702648752173232750003647107432699255680179210100985980619988453924543429913802787818342771043901051486073056020698046811433564111986868804408359465824156449627784007105139265090304856720954909881748710260109373148055842068861830576017459925606447315971564958530200230967596271995570310778708728495669214574705586071608085920573443106516552211104100380932140792999874741251573583524347927529476000748957818689443194953743180722872853859773696630700277568628362580806063935939353826639025032733629739199196069853427523061809495517128138427049741845594253206022465016220922592017946484613315914365694756511523843075173119808910282989733047331479347693488926477771027335864392199856381884995325603734876487593905999806117328826137951062578299675522467023854439062700819575042467042984388953426313960271975860668408846559457574051603039419623379607193549385172035791856139632294071806506267046908776390403346575731832960181082026325019222044882113576663927175741519279637146654165963715422603939131652247782544736959750729176158212802464538050811902844840162252924813937176617312963166044445368101425880880429094924855346291765870516981651293435879431399419117238690587119396983545645872465619365952512723841561097722467096474267628928209581218132309235028098784421505298530384157780954749397849778785066265771571172681371956843199940691438853032024412540955220915185328049178724774379816917129500673206168243223767778504855493070352966139234774963315744005496466180226764066269748599575608884970708578830197964465707625708708954635220871553683620665580145185844116574640370260125728739558357299852308807538244698408172936690951233183189536231801623519064953178414862184856350180368504243678633678123218533813897494367994941154209300356564586220641715560268738557799942678076165071934370565705567829349151596980889064374711857403854556894402873322527862605735752931177738951242106003210181571397375634321960555013976450685471082379762138263461858666381638936169886510633582959829387584147764639847857903083647865136527793670778188343746424829574480024420957919198504371417702751656188053679887959080781795615811941982293539697448565271646521989697579736897988033463100896157911737668415397422197878075497834805924988602343407752034075391058361963106059694855606583011694816076055945206304521628013102551318855536906486326498061641919882398027588869903226146432683778721470557118708637544872014997314192058432518145649834100188625933883290003364246372205401271698709807423964310205458366990575225619934024386238443108029125458512243045322093906096073827033373862539841696526818919494501250184450604806751951945714894808152953633714862726657379784871386214795127233408194767602263488406267836042367292665937742324652688529201230907290365747335603913685948418068344266060326300051999928861806938391407169786331071424245196442229690554080582603078799579870523354034652201122377643599302652043773285739742550950555317024330560154189772928963109020768952594389456753601849032649357754142821544844078278175870884967462041003937376773785430241489699630525922906978931233362226607728224888815194223620977890724645561371144367721179865402507976066977029273023455842618984718762525591325630583105935702994292170327546881292553953486485882260267998478118552138643179964071712604795652581782328762219977521514644971331416432623336220018418943219702221186623287639488967566794873849877859961769996700004170028114347241977319026735682981642858488481605881495135153038780605354110106917340494421001132018845233078021260933683385337553347357864225831531551815986034293793049798805200280212360317141553286711216531309411703851389925542053380041855408876046617733788901813215374182823557052626721066197229034414048334054405030714130708994519570669801619081915475611927611693734181299832037646434276883156253100142280123045485298930536395023183303951144848590038104344016361977149397227114401406692988534532327149935663517496932118347819084827420066898657822375220045339610329130089031700646856760144130576439328587333711427252294499024759162517999070877164042081968293294778538214541129437422545323925612300219885928031618239110039509223694462691940405913531800913933577024677175840601272701420077750610426166358048268731255380159414042107145875580606429507471740294259518070237105414931392298338483283296383650002136260472890442761561383635282447443941844781646782642643102018709002922726626858820026317767889760623465316329968730605259586725555835580078842417651134593902491429591282547409990395793130328710166301384848266032013570670608616466645455191525553156644229017911794615221560258873744463483258951300298134050998580914991592879766796538351144411130203842395706579921695719515839467802702727482548995207947771020927391407016163211086334885469645101770399547117269712642576249188856868763848992231092964452371772703074567905141329986176147238487262454542831040463541694053459127978701355199839110332168363071660260571661383941695573220812394731346730653084112712375372940845454060039246985489733930295556730849070795405046912596556500140183722309718621061132302899008634459606851258421805110289975343824155310085217052872098822832748263588454280094999655363626004757517596457134428137160132063769890801675560535763496114381126768085933049444168838486094564944588431706636475768596115086168981665417527388738388476441551585823820330650569887370370626483883610523223666812983388139470032663950408827834000097335548932520798492279613418950583241875966564521096638656324567867152825082551447054573719075028864674246821475716132566003060481339594261459416200123312342681830089335204059116923930308365137112970684105515997963978916603260887559754942160501867997134454176971188818445731610327128609245970453408148086126829454989870835496116189248758481871723836042728676645684010435688746576597960084871726503559710309739287577097144729206264304341150818838556372825962264263176736480485386597968490252482129951111200323610779522196929000444025395771228008782796887265200322374029778598716885301479407718147185495301055878932113955352426215255480395370782634398325912163723270856315941739552138656836785211909367678455154030671573553960814398156846510156892577867664355847810649809980982694882247343385123316719394536281860297802613891273183690491079749149211363356150309227043920944841343698267474601575849206416737376509193834992598969673234204804714545264828551651856110194574551834800461652869275135855732896356717421742387314191366591745060858375697987251829852297487885830053412369780214809367964280809388752831466501533369309217259854421877173574425271228212029338824589741096562283273929865947003438834628221143209937888139440514268290957238328329762896345677762567102535572540154751810684105873916572867450995535243818090715319810139954022145084250677953745576434999169999216753309992487808315186916823538928266011581685400744552701663603894145532290558262138470247911226457685156351455787554569239319162416231028613117027114194473232449426991851292241984109873828351034150186813350295691704818643246124859726411680561457060925677227087949104120970024112208996255204739973817725660360002048656727824598976774397465319855378655579323378866917897673681086431877412217481828702670238898772710187329081698550021701605455488393652261766677611803282954285399875821405209543936470463730693117863782027010368994172319466393194453025073099039768342521732010676208262136031827726859535885595288392640673169999629286085532325783468873129262388719736368371473528583546362643695498655020722285103566670807002100895505835223275053845257104439965682185625713111246324382189490448426496212286971783626958788758942701480378126995503577059344872636082768040843128611004269869911760737381486828645236262849271143644431018671136306127409921115825270521799983953900516507813821563092968464457202469730817735331963789944593684908133375554756192335451915456517656020601027213709089156930898494955294106206601545214245936163750553089468201605406150384824332167864760760753932264177783914967547148745815696814533728542295960278012751125854335273654396713408302275041723490803339975679894073521051363470840462659883502332901457548856197669726266789741977371142171734690741839432327288709695336022940364356166279511653820022723320074502975890096590279606395945674144022006157868119169370594992309829243459357265677049007295527662271304018354758708908752488174684590957426666585879905964419610270297361211450459428042168910737910038461623760910102493725523703604936085762888964325784542385359567029396087074960367543513876149011370583095888925167523157746053394855107168385535727392419419449121201168473672306120018664063825929451461758589088923946882586636476830176188440610350689151802624508710108137585911075993929636622313039676116203235964238708315939856628957227477605578980159242105907571821493408552095242552751462539808971763119315510788145068736072454086185001390178506358680930596444239966008282445500821583175670185753096967140902174747316881867673516342651235988479429436766621618945610617845733196308341611886190823797742417211259361541114594002472634102377953527904798068416200238109579955965454778006486608364159043502507318083675342633451352826404155475950444480275618309643643802425046600241109754611661897874829733306614908513774088608242861844242186970811986910598371108227711192752004299650181973132973366592720014752797903147100861429334644833505707180298882140086869858530293890770546863830836457250217117375511384988060461808536382893582849801185410427860660667947807432350254094621423079867347583856328172943222498383610106187568624728900250929035188863184232708772701829121694040094786188845241172666764362513770116152014936303780748409008289034918750547591391630461020640578287545307112504124489740441570509600256349869485604838686537867180826928796979587822261982990943845031636826008536919312447928701924805316242127205626306313047833169971964194246598030367513339276118866259376342156641614313170071254294471352945308360162516356067824224635994493144808093812954661117518610393334836730840478784469154912380042064377682572604326258560527480056197023004009162203923080864940247309544766483051567347752832038908554578732189398032223446382672936932493968377638173252038711177337197141338044955122875978103265927063597002236011735680633075973200878019843486466325642169811228020387747768631037281626047567813059571356472831878759530358795838825273471774464389960220683415315657860793250158115832263046753795143403146537981654504070437256684978353893839721990830878633766793064505929577068359253240358792676287712204456907943382429737368098580801007336081275613952081508027950076086311778889007785096190750655355216396092558288916040673695427283072801871175134381858014295132042384571590431038378573039919844612126512990623256162637691230404974305474259618258390879208516367794736564067196726116516102941252170481998261099498977145149088139860378712784342380374899047594178975013342317360506054818651672528070662639151349245352434032077641581988848748612258197143494480542869341969178645410658295272115996301871888846387782939507143095225585434020430494512016908162891941307633901713800568268093309689113206594260512445035802801364667539002076222026833171571969345384172097529183941946997633745690261707364242864846865951818051072659577595679514969426853614626383051433748501803538032413733675454550088979767058690886055459226182798893955761615187807649644488324853554883433533339746002048634892244502036440389293334492993703665242498927249801544742230651238548244843285589043581158015687851167509399024016859455255697751047169863522656618908087070522276102781060418808962883009716027998361614094167162103285176328402996515932606169938567794876549174651586027631880775927563270183790958278666948321000646424374346151576387223637220300828899853762518770797910822077055502331898653748189139028135143530910924997024358065541579354538920738361431988897784157581905443662467804742684197584798444672515774190844749711900233335246455989612144847079748618463130774905286173479549702844505342742146538783490795350687637642008676064248261378974108821409731320094533207406263002371820773688216625759861788718655750962943518826609530274027879939222115242244848126293886416388632676126516335073733621041335589740011462149330288933068466897301530302927140804162069599577796955377841691284943704082657616957625859043688009053968720010824634937555277267827077975839452280880077856291255715062796451910488400258305495284921522408839615352093937408149414134580969936190487349759201982427615401461407413421170522852378133243375631005770615718605616689704799642105439287876406881355148517400942260583017454546338905915763948581725554270607182930948459604914030538304916423553711560904726742710788144489805804649064348213850352169113017713231483209901978682395145572976386303588638847001159380271373587302874876679080434562781878387574427933867691528922208147357471900721692954699926885874069941720105316902006889137477165568826121472960984254055158431259659529054034476043805137126945855903435525821965925573305281169076120838809735771258394293463493363934884312352894151795029218307397416513841317065162573865907350854822172997457921410100849250224897921422084183133459738141492372111170512725511177051773479805323179121707519318444584487888424309533432739930426244369982588512477610707018807280568941136998305775204633301739048705594894386986110220675155967923483378492672039658812019884277937876383487243682102494366277940259969381357907090183437955857081485641624259219383720404753172203972509522502101195673705676732422649826479999509122183958440345764036650749129389034504751501854238021480892846745573386564463445557084928954011378595879590586364861984249894668665708651455444364666371125113044200707110613686660940054506406804183878495957719262804274497809838047518177122897097351216610792909958601087398310533203652052944743846850701760025605186652649786764715849636424128202135435294265106803740814974697406301979374249771285320775099763688870385269508042540217986274885510065116206018447482633670178619044557245905622779801706028559690399939736716078817706605855332620006937545405111410210574636955698719451584930519075225731185348336849543556039307602687306595462410870112261685402127412925988165267619078962112571978151267214638935467912488239781274487539306561968540414385159026474254863316192174040799041431577911928669490790354739311402602694671467409046522387434024444828686560869492997176856356525714809085797864224627094546362130529989046160861899616688334244684400352998752492425272785564498192667476198458922654287680411849401008438369450940027414709190356908317048371375981838656142399792977401181963059385539723619250979658918513299508279572148705844855197401254444524163028111854380741192850647099082046126073055686542274453476874208709621431204630949502043097093992191387588478379277972728279753441205010556339267056312940197335178789903633425428532796905194670351121616214206981407959600304284689360347007064722297521797369480433587370548533995541801775234367897853810038266821433818728795563294406386075383298031322827864241982851349766943797134213762195486273350324490826120480375622043527857352194202156527153548537596681358283046861181159073287105265925870879373447806578007919611989303238510098468670638380784837666106341683389944438823298007065755257587972334116870685374660147899602479188070979653764618999963230473135921957587258518896457484688920723997591975713038715505272756852057851274808290755169555034984176799005582159156269750265756130629486205159372281092243589150318915035479970417865154753103470606756399321577906427698584283183834044260188749512490542700663223734315059773861634009548978072765595271820250294679008217180884063976445446456367661771527070828498587705633623599973258616683076730591459556865503888190817518126498746520778807725009977912810718284342063794291407686085017741640552161887821645987443997430190322445675367501989422020920044016281679754796172057783053070495317502875776111499401416295245658103569867686830181767046632936659395245646391590795759449409814147812104897777565541386472110358711626245316418633418321617553083254231719287103612299981050525048314791755267641071696735063528045909179780500359327116514350281387945215704712552885923898468311819198024127104256075175779670027850312125185102120866752541337753003430745814121623260023505776740405258712977449609327034467336986813610999243688965413494959029301018891406373315022013361400272237861173698763604973997789978634187635854020030548328333108518209200037668341593286061847232205577349906540427919725708062002857177413929320750815510730713398703576010072393467779252488753384905467702049753877352701713646074754368279612662750743473192830930839977583171640762510902480712895819008301869042532347534026150046964316060497941518528630042778464777090710404962624785804201844029208200491337539554660362002341214267892122018717658452867927214343260219709525773604740781958339250717923115183893224598960751231543083970883437926462795089987038186778936488523433281294266492052194638262054565922310938707005588624109485937675174289067125833500664785285498089210195392581602570480432775703519029929407158725823955511702253059549508013229884069918820619771002652463714854039324506872263495613278700923398303096959557421692784744483657788786507172004333905740627296767834772634321825186790340640104418058749816625401692094029579906444535855013683868870490488787398605085358712425861180211081981505970211658108479428265659429119039549758335432870983853909307879613189756115828222103792619991594430765965082285458440503098494385817301551470727830713473300467546053111567493232620946354309188954785246278129665231030603545901439722049573167772289509284306960766913571612840113450324166132306860302506682406392890991055394273748495932701655064094985955508581024575035328137011480232571661486635528043418387860745331174689337462934914268408201744925716558841025824995895582238308899437483249709998201996396161281769327928540139443461866272068429745667360449149836080509046131851853229727320401060866503021175413957609905988252931864855364596404623085524073253910661328660098681052298630657566401061634463197848521392876697424660119375748143142160163639618100563433254232969974040889754556887486499232247942606989893469013167831001144739786659451276863629870117593940312485432698208498022595029885371930212736985050430540086362231301459571452951299130210248674389434479689697692037133544175795002649407939606126501563950088188508391953595763114433445597759527841819196052513163212896729179391633316989913053292526911349125853321841532250518902309954666862517712105925125664414778784455498334131014749899057013103778359713087216617826406818011878728888396144281219547183768350541537752059466392456073854056761121482291649448638315641400992471029045241369897332118395724722892490643282473289268953882585183885928595135466022452815485041191533286731464052631676592389901032997854435909070915443957039274448279991930401782696285115784938452672729354480255170326942479015228761250508105052135911514668323052140102907177609726015145346683681793355648856004942782767292148768719957410655881033639587694511074023438206991506814777519101603544977571697630251970601933808683106190602382114051118656348418916183456128342001549646718595600757484636439242017690251662223659284694749187716668598105897998386734456408301848825454555143807747489465269981312475857609256101875969098064776268518719484895534106658281381917520006678289614754976598077811132819620398414314331350290300728011848829260245060305869211038783335359486498827822949260784035864744977570448805168756681461182158869990279041128544524930293260395407426799459562576657617861359360081210244544972602165650435795976294053849583186371071451127409349444091811740046629502308965605489620257058633186718216496025890344951648208739930108051256316939538685643703295879794045327893976383594640982032659241033897178752263969235376015534839890772528700113589333238872914887567452346896559790235490513278039399132621873084956885777951952566040690072515167251425863855990634429030369979456958585435981459996348345905103363572694290424087205788153062416730100394251248659176412662489557314954578271240056634446584453194504804413703692830477567230268347661798599119278585307641886260416395472523842167542030561555036615730576726151190804356634952793502998156195101616826237800062580315106910567070638957454598339728320312235499858631201600716191444785131616349382314862688065776610953483248737555017406541209960401433324270357259550128516051284443386147883211905706052955093019800359430341760693513495639718982159025409310992681420821140318668803989006410320608879056882953307494512825150165915163300722164703875564178242882129168221110635038002731982937339716145611040678196100207835750933640126024605510701009480838934625363547879719327320814177541402435117636966697965652873571262952799865876899297358608945347823392926693548994565118999456501650733081207581231378530316272688417549620079530075662872636549832166698243505832082785915392662277794759595118901502705892009777312381529180329620664890587248723164555430116948368062249315765278439951321933996292277320133992178241217439406178986045711953820536190932011134341848104796043404930483712761505631021471693639693966705935089531339546111908449369582184692801089326059922152816668682164800867871475406003088605376564191904301673638232966376862041737541828418266601986583430212676650000270776530266383695491044438319985264356980163034660523210134354383426598215068331994955935513722672811020695336212400355591801945733808357848560554010247235341812697939240112043983266746026296314536658775692241001629537117310761614309454829553493127649374393104016916166747281944285188087359084008074979856593255624191065534152783906281552150895476189394378195413094762578900888973145323854294461860906878719819493829630845089424161179000402613335834325953316795003439016997884807561528515140831312664239891726853457706595384495951514673877489278937675810929926956014358899691820068188109527507639511527471830954083624915387353990727137934596584163755560024834471323479427903541355798644742007652630829037723172069985884831152297649610385966718576194237543550591487304011892093270740009227871164020697763721544546367758904729734558634908882390483074760270203970271509346011342840548982578801843241635138538473038739671394368532474723548890043022100171085485288401445181170530921891193104275582473013119854726699829531015442291385742123233862253853444986095080578300277408244029967547837796607736048190808622712396436778910251295073927303467120856418282261012770091993299717784037097365384792532514308367037623350982494009185084637768947365025907413833052376962452838624078849264165653537773723118439788628225037383997963669801965869194776747804897448319674570951409150164997732166992162072632017491625740328528159632941519111313252951061331795686179889492491873608073691747644290600678785265106300869083369971808890315532645879743087660550939802598143393403107042990561629614427568177891456550916199753160445159188284389188750019172064697688622589662664454390996189626454786873577851130343745562503813566003329986444381139605433235241757086479402390683989993768927055347166779000636472405602742461964043662562077786325988415860274220215918718801271309587103216086608674251422727605225042842730383767446028807113011051795196785792666231628868291922683019225242749353198451730986556202692574296563557256253558433352356563125023066291603556180811369436730120036969743612220442138247518520207838121714233975608702891671912340544851873098825659467392592565945620399061545081353800529831883462059765045024419215956084074180481575389776917287526986860793654912724215643937845536251563794533837821545894795259378338042611468825349695845428070728300952177280208968243993896034274050035976627875866317579599123845631952485599190618569929462380823229477524356059257635291464156719880119656160294109523143792360305197181019808390850357523636351794422099273884783310947274369462538592800052605161948914855277504093631610864470528232910659653485839631427562047316421493253784237208561719928217365090512038431481383564806698720389321572703684806766212128305471768770273459224489830351933897773208108476339129622111906228421520153023760088488244433705662169765452756327243649711981731136662703498934796895254802327852785028111333180940334325648515756721358793972836936322154103573211815910545164280112660458754769238107821305132757831114558488153985420320760777737492623109882362212085626676443150275210937812316566975850288917024825102476383256289974279997824436189146488255301543399402658356971227355691988871140894312009886370740308373372106725987154398214498334040389075155563572290230988216497432577338186073098658937270643207445411002431685794728424643530104525991335651558007496581432018083477639058640430190966164153920490658616991676168053380235882351323043113901178608722314940053600169995235517336778494327465271801038489710248429743716462924706680285749384866579960906572859602980221514130033355927186152936147851672171263982822558843049391364152849355671768500959910962166058412729076942432380783870445177563776125613910553315896907273566166980727528615556064638133561325291862291458113206281212211251042181333676067146867212169870560149280347881796141078510464775853105555030025690452855885842694098944452894678238464354849463671617238017774997409449555542675755675578995334435354566537403114264091181466760435029766864322780509000929754416269571761494603681368170243883735707065761724494721377186093693459293910741903250360029133674992195092944303416359972358777227595157867902917209914711937788957269679322036123307952560342835241411615593042035950477094970500722070568387149022386900321069463965504929206968506031436466738982024853076314761754011182871455495873838352861158128366421819113722195749231915645040187862576396940179973994613550641218884437754061857553357104946635301607126287805700421870772931389547937826281326860630514049217448665963042840617874758392639032349368591225855761109731600503865490107927723078124988325951093159232571415105070407629180438832376027913398173001660851827677439338622426222855914388112859468577922163464201068144837554848351141110471314018750348679226167784609666348996641822920840535052250048393414991551238440369369098013699040065421971295754050349137000118803606149229385738760622217398413038075979171568262672849146037179596518270875738823859388691217311734020812541679887041576542274621908117673698651442216048437311742797418459413042406993275497742342069053759467615981260117256246325732066409222539118023833831394634271433127824334871583874028963988908837955602609064334723910397017402960154046307494979553558235975690682394963416226038247947637132588511686146848297844261793817405235550435346476270464066793598114076544401284213998277777047825248105213152271417945684741794325664254557127209582644504428366868818480675075520318355339934898632747635217474054212076930940560116147622696781086887313152917681693735478285336763296545357158009805877262957527651772548215002139220010260601559590846417281579498577785700826375462085833197827211027416220679573003705365356929408118880470154391390640794788320721861293936493759119255511918899196193441542250640100071697062219819767308047375645312826831821441101982052001853728361633149503199990936423823244691513057378439329620820970386713517113642555282264809917300466046873144409279406206439557825497666264914396555873723685808786148856168685363268988471407398690628239439636206549879885713789634324200559078206391531152482254221991257831990381878133545497281992948884835513770065604387476240671894610141974462636812675314463352527994097242648157008307016048021995363101058378114408542280091893806669683373165744101197702309747122403472489492426519240258936018695502225372240595053907298916303574238145174041230925032235988898871904893581372779915299521026244815079923089013629582378780896460814789108766291755215294439221529450232629741193441599165167300169544679904125846058340966596298069588127882108876129517113075760450614836268731695961812510353026424401721743765210767949159258594117448880944251613131159083890895628796287888862879467348274281977319153090720816052436801357993808389300697690533105716079359496223921697011583376438877934758270730839727552422458814546119945370061727573170451039350769234699404662109549515686421310896679949545779743313481613772459885099128297655864085328023139266785207521561353100027423256305162287097238596914958478563812980136886882325400070819316841255157752455991681378077822424670136023999186873009704412470079729712843202478414959919665153391137569179168786705244442127920175299057146516630335624469040785559917321971466129565107478441911558171190729516801245746856407742113299545656530904961845532608208542111246781729950878872785174899750878990057602031741555228255706949705734413318047171971476790095723181260495814882767202215883007274016736227102407195048591050695439941905324530210354225592085720791969441758445318676602779497780664335389405402079149721758632837978411767951291721787146161576506095163516955641320778450050576039806000645734269675241547528116734079499869225999150053729986184905158312929095715000123217032720916266756135106433128393466164176595384132211728775883891144738616576503760838261431319756367020394366722204292778747003583552449086457065770902659086237041859621450045577585212230014457293574361101510302695812094794661531900385205281758003940279319404476677077590459919482257212163135149435327146813355104653562246843487415846408914692508922638421396150489107719357770775967261432891470355751605221378913857827825683471978931674898129134433309587368020167955654872994943018919402884900075572185925281194959186751409741315299692064811415208845236386327444294594172856400681434683164024104857436083062506978689048289384217069943766034880385008372785710831958158726850244097250744243165950974448472590080738220691748106722246919001824629644151648413720945736560561256885344928645123874657749102628001994401122241738888128601220766165637301736565424720369660393986477865016853179039556333898532995932622548351058506004315604395280630525997903952989332636174532308221176415208347344739859970139366981762694796211605298896462041509837854174783615522590250084478917670773398511074147780343404886014853870171157158888233050810835786142763181643821422132797588315990367010637473907252955186028076849551202886315079813230364192707802691506511787091927926555328776992211367556955751601906515271252585365581849743514872920092831245168209190684733813780818256124423956653528476225004373341924219888095436131640433437500018086752083199302337760229254147207256817100269619844160604772716302056460129620798796673656816704589290944227420222530902932850771701276955252207058794749372248829837550880208644354811792834248011396751472319261584764306739120488842210830533316142993015819225495287161041648188615027183429991199028017401726715171136425524647281526199793424625275552462844055716299719703478707584912095313321872181683157143475830393374379175270858832520056530839683486308401750709709731949634379468127045979490575205611100835982654340261474029817555364954173764017910971495435030297093962031371932128343193957579509785309302771143592318618990242727308608214174828585350670728369947007212093680977546528431003859506285600613072217491228910781313687250101841228646312301060892902931352641462759075475933622821588288509444224702494112087218882254312887334338281950531322704204882309198532306216872610166602421471392367767005649650800378515933478523920708999704580563097577786559219343116747225485401386746212742073254018830064927466785830539393426204135300577881634764366953064030914312979607136002755583513072939707317365627705439654510678655490284863249190393695387116792311307583891715063015052485504404830415223042998456929139627292830756862365222369514625660292351703581298992362478151890511489495833150692389795797185080231415316847167452859472544771608004055040500915791270267847460820484319988564960177310603332060936247200812983807640906253002753396520040431940970612135940395085929783408387417095620938867260899968402734034139949298551328397001356771597335269368620429108621179776529091002822578518480307617590425451520089513623829759966565718358726736890212845895166456312456573280139840672618682001749912558359678334806270382786322003320043506644265981788241086937168315351775158189081730415536649775014843501318821273578004819011618029924294834224833767674773961361109239828856358517149163898125863820343638830916983726582258484497506267924420733065942558117615969443527446050836534475016808222781957629858330128834414255696002359120947523564189867405265536157271774188697563249728683995552803729009667236524867431804739881663249144589239698297149350749758930114230715983560673522334871376381823665107987422913210432970054874861844142763002865448995268363050938460168437531125088565257162263129072705937204549654347480960234984251011112828934475976013274554586663912366351671790449373128857167701966879374512622428974989248042055796705027706618788223722080427750598797038872534545349092481509210518459991217603892265648712218494560890332857104266581639914217684375973199659452827652428112244496455400145117392553562926341317254458561199534529206474446169065844192146017781733948273604548519707978594115842445703848738773623138622632797624258870178677201007345549319713259879340377453313052245269571476619082857529954285878040296108851748642618338575299259147069161734176975937619589200274699803835797086877340199965192559399615049538941905506092675321481396639865856949695220640938668533945364840470741485272550364970980015387918804297167837386583426492169009388397363202031511213896083317700189296310771835025627594172719861487705515527703428925740617774328081407770304244672086539927263600416903085908256303691966214504848145869852766553434799651080457680951558090772010513592221026934047964876409510131948821100860560762903094335938482114911315557686169441643350590816482085412684269456543107059001103208503135490448492553740224626800917850643762259990407753071355372197567688045511768474193648668349697296588967823735564938227434671527612563753150481771661908585799454732500121294784831101564144116393946486783882078429069751894614564741076126283781275294732493209936954640636657277782751577743373235028580160113660244599154569495785851159095397511335089796007718574421044203319113421688852336170504105337743577465691403021563449047000087338800048966139945749080024794784111772415293622998570348767924182285706611196583042857139103003497751812334247609245571586700928164994613977392627247361115118472153677876574065873505297277197739742648881850053599183656020673023803779105911663008960394100031723240946236593027994860416604581898076393409798986056137491963000810906185136638979283414396177402333315322481603189323426092113140783444371739126222423256377810244426751145128243331682550447342316767404723905914641071066535875566050428595086234491760157054315808339560520480534076179694194948891436002345486188865748141659287680406939268609517329602935193048382790398909527864536105255638349562919222840146809847119781052752114012666395640500987683079945149942086791456303649893556377789385550469915513027923955115022234565682021052278938713724657431369666800923686648660779109252999919190515740716311010268744627266625655394431211822055172752519055990225878648191402888425407106962134007329166485053718949760079791484147066861081393048623820701649230714283887282342888677986733724376196438906233104528396182735306649988697743137907296736178856045041324836494023075201717020368958103160293473719152263384308082923142957150154228537991180513990733127636161079746198356057898718906486227369592471242311439889757222056795956078882351089564728939552895933188823030914121255288940458267421830130056600750076903433908561986766222110416316618943666912898162932858235478484981403383032372472350888462112523193019632683775185724775003206804587880426296892114657998517420584865402436271543244704790020883935780444003513020242520765343423865786529774802502898401302034647817722467465544305172798347520139229847279129516259769861555306894719798337443024981083278426787951414050150700095183465435540781490900139814237645140055265875683441380523285710591632197541573410681480781874361495034926563280851575947670548792770694896536914681158884067349670776073019993114569834428476194739648431365358303213544590005162638313373005504224271897446151574197333350847593444949169448711420507552521983904512781926056724640805976123385696962431749385571639799351126563823960432541844596373718813309634780363102608973183495967794858437509360881001445010620881827540230299989371560068529296131620101990833335421554800572642967101996523310560108768436786817825656362840851565799386455775844504209625814717733381974222683686209008952375795950893992597081086502586802961143848042045088934450838850223085211953876663372918697953101754825940125787773086295032186681636196834305562363010700888552901706341576518984790665910431869974957214919244886835311710800386093142940680410560620209204777583975815443065331199464622327208286701377427931810762431610599021881216985477493385078230177915729405543049859904517193080889539716934193237100374285115106856760012772425202521027564870495960789631904213587208188688925972822227939325796112436518404593060014790739565341579838257953746374980807984741222394245258285367064559293775178061990230315852487939282853587480028822417025069987834615530261722149336327923161081313291486969092848827428000745974273527041051874659766232124306429205406364484480304171234003528749694882655765305729807155117079490037651350485531096186032463698470224302491977362508454940858637727605656107703574085460429623379416819711546961446602304308533883890474190107135059169249310981572323990203121352492700511257564307004201495189438849323524294844780598630211639324606199081204135161730440734415458787043670001479900858992123820708111693396161541007615722463330239701211389191313857659786092624205117971422508460980899548669438138310836674983251733048372028116574163651092297022697419613643954361544529315911382703380975562617504395593952341809439159777246530477593383498553029687672060674958823188910294407704088838197705261262618781219676568516089912508532304736976807414596639326719335536394566006884933863439756490909526465787366897196787298764399560574177943974284555924410392685236318194396885821551326125482238231965960083504680219139580323477763889540251717312055977447132857254998723612490419394304591829883677288599765660806358917303729565976680690371579120638587938588255166615220159495804256722796834785536133865393229296496932322712041160020094154275681518550255645486292015017361368559306127373235233111000372376745712034583200673038732561577164038208359929977139344693809702158298252565174198721784230686467294674602358297163963517950433865327757386958160067487865970723107831332497564863308328311217614013640681570365215020801171882794010489706764908805563440632172290742250455438844569219783452989180725975255610138862539509463871381923303878552634231661802284226734492855087680287443043936829156584948748362556857307366976482859035340017034835423559064773051966609021644722058622143106480126714694857265400688186875912700543426093272923218817327125057287609317050949579672285733344075465787766711244546039201134731784108367756848886571951034058592675297449172290760128691319894110184736316965944090350916889013458631964032220813124763392344990637951228422183301133584640324136542474931020810757275481001854173934571434067176673633861697898563191717859673447315179833461580343119641204341604136961386303268386272053985789022961095500410493682602278620682524955342218889948153106415942524173473865272434943327709602368048778721741783187284425661582674460114417542876916527096690147323393652207768831600939212420075247135050167692080464660603663030098604727535150019435058847152696238829084269951962785151979639507948543356319763680154497639282215510943369127705653871993911307103252171824700773276409868136789421004166092630254985999574875153995585832041806030141034795845935301734033718256969282206382861544490031229491496530529846501023739985591232027583124521476803118043793309455865325520701881785784296651831907877423469876354901622948512828010626273718049415733199072259730559213655909937979797693721592923336845590597852063904025983623911442856771836313331260085660565411120702653076948841687254410458623656139017373792449369357186685823018058043347574537573224017586026352276823900710045150584963634984564871554525037114629909111373582709299282072578448446881487651832471407621189978663805760729509931085462817414620177198062872553170984412506649827515426978594191751827967884263863046234541493942217889776923972916613503693902374602598229517013562229298928893362420341755877269241711014972534902319024851579142919280907928690083088956877993724749054651995468949897642051710917051633508948972663926787128258240092000842241994525669192762615954865911552603118715017057233206322971540233866941423404292918125810108351674488722910223184043916661987586730538007045798682839381976779521874237249454522293390944170193675751241154708683414838296135540612097544076207918490724293469541965381898832988921760433883787529451592660742873699424074048132419204858634697047066239549093334266348196604144879920385987481832984918545169022432652924500876097580137657975018163112292625175251483234183132558319767480145833919731437798526513080064132563691823827519159933653571978070698709244225192858093782369905162091017934977870368993312250957854047183868062947932083786285511664984127006469635237263975859590996868169445744767093268441309111874217328364796858325162404886146395264873099356739443376039734501483477613684907658805955249928620963019629177636974827407955365139452946360480341404240184510152609398889321505398896386642459227877399968677444189114069815246958865722421880609027722023861977763137665898305818302066208444652282240923154692580835712539483484014402652985646223261834296955401694154731367170568070047768608830698328769230244019316498372012457927788865859343558071848670349658490066887582025835755514431419454083182457354014582930817150322391357314212198765282321500443561286611005541135914712006724675770326014650122410704164689777177911035144518278321821739906806294319286425811150238640615772780352111514441931928219237623922534162393863560471202081128534753502369565245867422219299782468291482777649428547966874812746546963160477438841782427050890212982485893006763444972553033372591071889774945344844558533056584385425858071744747527231718446891287157857025404995282043619063205413561077927497787745488956816884697174354681946314172922797466173667500220355868615298060213599899984684486156176260995597326368670971868374032917738351453303506253860381986578995263287963693689435309381705883824085566671181744850635323336784434451919102010617204904516533449573861870628269242565617266552654267389761077220326315643270824165304907007255877064490806638980512129055083220173291314754818448731955342228073409560983650357860417154613722760622236536211744131442412760979949441222694971755741915836558552479299570439108498545575337822958521313678138973367744084237738509836962589024106576239906676802271852724468939757377228861644157595281177489015500863458330748951645207314830640197854515102638762105115620384116578169693208476083012074991038094665995823146724583669972134850135300082355431968451717407370516734862513150826301509124026830297614618111012216885502516091684843707583035902119982239522376370941478677805557005076493911925905108942006228540724532428633357228389584736615549599125328200942343428297066283045188648157967303831194229941761266856419163073815465868597442970220741007378852846884687857622363683194999972195695162319812892375193423914056924897803695613909115439031758189843488160204810741008881355881764202288666358916700514571031932998692032423664121776940556012221661173168853874459876605877991706278877511471276304937386321348389378325248894900636407720531601186590568758701929875135879168755679122620461893364359391060744523869490302559191972563667398935775727279444118317853808282291260026988196056632288869451313880381159260933027912560543130540772871147323406761541165400118977109158567506518138142285522515298444645752457563472738646354362091661876862133881049479201657731268882984898011477342949892892449110493005080688685034198279465143424847242835558922829174675069112371387617691289843045725913196632225415511239732826246405282895809245475328173952082360130225559168773682110222982408303307426014486531069785557284005248907841979532897634440266297979263743322977250263681839082326385220257457074036699703683524324137900534627387397739046888970310939487391169516754623445822076121648375475092264872414585474245549570100483449335892210036544501623658246821417475806860511803498066761678538264907383577114444993943714220672258302326445939039824637961631387908459850658410757212130495548434409907210705838770699978336146787942241019370602373481175166895459983020547920567176609204736531257837807155265655637338170594101157819413445877134454197038642990027153928094218520055705744688668276928425540555763682498325398852615860773505140685853762189905936146171676768199311438745710694235876280493823433049245093297841367415267016320858984075204000224580088323122180296591094028814275627823530420419708070617134454981854161546755811828302875862668736987067312683171260029514249008285447130628565129939873510482482709343023529953179760256234328450764030581564037053122636284520602111573390192155105470545405500918376138034783388039427754900908855367562730139549596572380258443200051629263484291434067385900816947587156511716370432970522238295848421755710848826508031316636658465439801518886428754002423776291815651481286853823183928916101259524244980562173059627856943440878095340237510756076540881076609536232818436703346493806241538753493930346312009520201858198431270690235083819873371463867199197592085319718068376422457648904408686196331826399981708620087724815678387079078419014916637715241598190055784370586916379074222270964965300625428615330106368998460053250037329808358531537861525568615251956717361709935387257023035140191329545154193837388776449738048997851241838468525905666872585999684443947869366821633480379991764932894425134625376351913163796196361122857841213714543247449191459968196694300262287444299862635880267313620742374708353185951021533085062189171892055214250373308642352387700854752749983995191685862564072547408075568822620985485472468470743981128601193836493051045069872424765343707408371225673613983559232385420020271934824527083794751110436916466948252978044201720213169443197369023002407225172890031213463156110356230850342043111413411492054189600607083455342124038155784924195840996418783572976979607167067748640455138363286002447707804991412439052902783183594842553759949209818074785060471680398310388251396492666769656569738439880081500986345405575284988496671114174108775192692966512115092861025026569266318789654732083753234765123393889080270077680067470589952752420825464769611631909417782347169472534066551504143428226167407505560911906181324448078775684430591324214097756517571490917154963627025199227441101903796052595685957678135990774205881773994374820454586420420707099551596298101661634395603594294895675789720097580328935294648173869117794918395308891036187705659385406736275491920910060215355423092336672976169250883543945995345761320365248302860697829544220993018111652296203125629743253399725687938951233247093519929595101275941180883051818028629827778529695636205513397510003779704691241895760774505482727610685004764168342003718256817656597613494814426035401060230729013454232938032921182868075186659781353749348480565654673716700425388626223251348583721129532090920678868917803753222137022987235860009932223443005344229805510322679899475923124780398800544634411636515030579500676617786290940043550338280845128239422275909554303911131675524044467105128751384070984267954798842889495124528293827728630314962855780695104148037418283739896124221533790397312448247518801521653137334219780874472920076154024156372819714661229610994308019227062924163268439846452284012651814614823442444403729736773356705449127914326538309524077027860860234915442331706215730571283205233174713271446958181926177687471900854181555321426925233443597395054162957958644329644700370042757163097236712725508008762251004849363304297333008025350974338843074457677196122403606432670137586386483367478172062032677960636675656242555661844104128054481532387594394989949765189400967091034372913423792661319448785746266186068125274674982628669994416407497804804234279364607177880798562665825442130265914832894376008007083779118453287958898930541493002301104469389875250130411121664835680253951176813136255894908037823166481195717157457416349973806377383707724247416656233786753378455564319594636425609693960486863293638389211469161027532281534455692993634916258217647705876174241018259147464347618093073794858633931656348870599423856723238289227728311240336698832658965671938712210385688408348816669671843957168682062418718936601622496716546544384550787604467714149697948805979866080158909819371842735304461921874932007841624093532283221111038063223040010747771556362202550411114470330362236057102968578521220542256005792771656782004679687425740000698090352138351023456349084135916260638459828289580135484067504578092304062265271900620645329809581037059334845759588441130234230032392215976587879127886165587490549937953764126395379205040476381568737590174665227765752964641528974383639607781683436255489991231802130727269062362721924906367498999822755417647486483529137766670585509147032079144338755377252886479693427132648025722472262803843979353389368063352509202813568363130857919103394788705904945417408504708121346444565609381163409119809300083926754363861377512359890343037220399649897727094344458930865393028210607841913868597544999572057475975984869024352130592718055937368016074056362479055129250795367432838501348493331663999103729228452154314088263841202562612638184076324413615926615454268248340090982946294036466144210975454139272794915820488131098941613957788824525453379142984960966934086461948176024700213316639903259489105220290536163443543187992192559807807573971079683596514707411956428763388817540561050892875960012548542351205265058456811826236054219669260331363795185884916677426971660323562102282289331179283972825995035758899847541155881614552201128766400281247028157976012860469826172111382215136376948413279335047224539192378692066524011258693247100036696724265384487124356858777231590651212182972400179647978329005189999697186896923049569874387559350481576992739810758111873669171137288153107688112036719594504139492592695038771394225455217880825422310103349595341020220588254172835822819231285416361632464102224219525307216940394522771068637727084887061975991044920604734984913506169334783766659834273249095022350941830956412696561896980519423865798954120005002609875372020475321235349841431930783597942393848063333652078971971521878143214548965550714404704286726503383564055616065376554304599082586827347751414849795021592247272348171581419238963853425274274798844498077531155207915292717932352710850602800009909410053862016679702899121071346007771803330739584600100895997572394475034639778167591018913526393134574203811118078127256025997316557921566958978068245308842114989423536112794054233160767741533129060968908292272679517582421783556004384225679533438638433917425953043975527899365522173835178439994846545009495848866635145040893462678755158305027834941740748774678295710617073795175463007524944011295441129182930465194557066858803450572165780059271129943200706394779884893135079172902337282467696046386206462433956156229590546077310092564606627099606155702472017652024015631997351676105844493295092149115288030926892902474503066074051749198188681167303319974650891453472719258257381715805388615239243858743328409260467814549104266748687189790937274061405230120129949441455711584245061386822402344703338110030063051657371962330520165409315197057379894899633157351616395235483687657796088244823391973645547283568311514184340316072263500757679522127966506835893592015097795506122001033845448111706197327751159394105343211666773831048250147596078771761820438108132469502888701181492433001903448438990287569550765266826632167503642864195556644272896226361949108490265007869594455931295787669509957921023984877794366398410213616094343714410851781500738925587352908908317993649610392725578296292570037236779287023965480404355156451946120416241544038972637621371124009481627798571676276229479866900212933587400826310103452265596896614076693009722823719987791211040867731411373508851963062538859755400788876827438879011895159232310072898070572256354343237191131419052350096735859751687859141110560570385406641835917509131376613506628045614008031312078188977332994217499219186803259216550321384707692277581880811837379877317619790761150255917848112140347342051395563798918401434212487132647976367607097221171857606969487218280356766817154179258506119075051466416850769865667712060121493033366761493251240803326346379163451598990266542270694331678959632113301716149558599175706311791630052904447783810358947832319847592296531808629823485588528481020361410805745387174405095682451725909994080349790247293267700445298448553443414964401489566286569272819397251311427782159656347827617387601058472596433877393064468997788440400481302330373554036057677502329291310494240462711140606814121162273344609468825648685250081881475241739177753985228946557292618197616583793273619917759468838205855071080420885593055030120391572671929389290866437037282769558628197352062163620316013892708353498733494163121454992559782371018614940185676308024530497991467163278686144733814501390268968992964175188609818512458605926658173139825057602760988667944317905636057774692923072421177229845332167220592418879380084028040786283094812232425314895391997442167047706118781172268129273784630971170641343320258497290407617938517959668852542749276058444925910312744636538502703578098994796020921467832229536733970975184791196316480095734264585810751883137959907043821846222505085355166326188044890635861786680390223175257703728532676086845298425788035156372389321135593682702859380422394100815483053061987391812192871193900775068817798767461655576864324750045506859967580255735348750544054404735922768979392613625282199181013868187449781587245311237969543255636184867348971915035312873939549629586954543617870514554166379611447079082511506174476767425522470685231593801135857385459996196981243526003675740951250200782441325770331760384477275633363003060498556286857410271155461842201614986607427378219603797697123373844096565049529447197681110414213313629820846764478318921338086787604380950101091106452220362562898648102169776684827067091353199705889956115278364301965725191997444162828310136964244972233662411741775624118964836109961982623325047683761934318952088996477931009809892824168152464407153319492652928646258961701711386638147687257875895493583062183930327336584100579603617300252930395007126943509861560732599127579042049254254713226209373788022607008463979685640558316424422561891118565098573138161486623605865546750620041248425193377821701169635325067606735343733570639090692399915675054975710310531728717011778561508904026529128168559729421413600350127805491471007402912452855755866251210060813896751377663856034541749257060510858764567958383059665969183123847573376247030226383826839593597958158215284414792756622973865717024173969297141678729726029401956175585928977636976764774625754329527514768296551009379953828924797621443120610163596289730626130358805013081618772526478938844007058742978283490497952492938217947158017563261532979332665730453441466823749427413480203116557375435011069900828726575443998809917985361874150832762090058630378283766426480855623590211197613139430790634295234806281273207969767255566603095146153973980462227916960967783001675897152715710638479310155006036894667576481471547350755488837351573585290445139762432272898098997122397909694173417510618192323207851972424034772110200837525098065410580142552694191747721283593241884721518191254575652104997806321187950527442818219397336639497293890224696575852673659964800475222637674526032188276961489317657642277283891757117499834536796774188992802507638769889004399506450111829217367492297709210878254250415651119624231513528330379740875617540509090644699583704633777160003905585289086339688710230450039330617872342503982283739463320380275992227636142382014427249663946676139657290149984843976474033707739098391136110402985692452708771886332555028270156470271840634626778475149646208823726713545208745976669282857014539680157440655232748168405485471127382329715743274444921000586531377141293667187132489404078517424144765616962403026977094008961609444341486368147105774523431810156766195687588081247970885531128265510547915031526545216470186350972162643048887501775433495566248663951111903645926152493977360164897204734993821082929858669737934138556954144239773386652893602969103525370092101076719629395323804217627480567667845663286283613648690248705846475219571527015699119413769745728868441590583078695824245558374975707142684703471023038742423494882789252612876403926259816272648800019600704680613061401273045809432515351077163991323727330689265488613277106627943213833473420123266481202747983711559240005837259746520380400967822244820486419635592480028603511174324427577986712139550393625493345781645860290376107189567493066732730001695603071325912464900768062317485671923354189484417947273834756095616331372426555386892925612087547826366713998741513589394767676103306407393954178172715293418050134425397249063145431643427508909565568734860356039987946428680902954124190117513330733308800728991222044288939377011519711369765914460609958423258720995114034025735449359927135159084417599433499833729006283777204148764117837171529422091643431907737141106691975271958726120649926460750199989758533448239590576157184469647664122821806386224291321323842835781540864185130965303554306904401136114588586185424190828358410791375341280759382363126636803902883050437746481107932194643322469714751579862099559852372619406769706773049876154232321811827609766538811041398675523185395129466630864334101630598702120540338990621003344902772442736165923294255862239594248478617910761439135534526903580375034832846582915670967481904302942521034610113125135630418478393114586183599385651551775625738546133975153866298809174809662592244971128892261623550952663483247976199562472123205183281529571313705244120264041193434209055999648100441137406146268816507820473120335154142113849330480126965580366149719493437892942781641466397220164881384256993886472863869053402185603889839626589797522493350093859021081629380279095588117486138283164925553921244528180771679302906348073812396303118490741235381152995838173969687118206016734119974628336909249751439924217056966518427485178972014340368366883316777511105821679935561658096624650018689375155014867538067064738406803289995537146159142391282053642649855589082308472461729177054779534454140418049610607793011406557326198001883286284171449439896707366407532362970945684574776009948247894108340656348157800745810588433384848067075127786369172874665943537401182894405573006368236813131404135031536867978785885765331199480644433825664593432230315230531115707621090808446385312222810390713858485529076836589813597367966370319211244886881178360423004438537190403125109577882422694022970302998098792172238760256092389237635298378523743638529367294741501666471339504210093246455700424015213842269749628563083257826667846309077223194423298888940286368859788676649512213856060250904210318447733620148596714739164457620482887172026893077009346298906424346424246398865330835652854615776209032324648871527865167030912286019410262141153098329427048020901902985648253921742182153253789742156251104929031319500796649067930722490272708467868033708263374402175964737789926274873702320629044385379709624599465195276939098512462664457169503676224276214595593161875731944901037936685708399500580966380893196373896662170200911368273137114248090494576485825984511528283417807237896890205317513749882210652344414529984532800158398035129115288742380461419686000295264042515711375453074727046713608363302742410292336492377889575063113280618450292623937012781854854467920582993838016041626587632085273518781534768539262110538439779628503627756929225553466743622369548563619695355406906619125433446744451923358301792979273350289768651813137754714287376867787800471912409796640852778826351103723135186807149065594722856967071109524344518907703426426422521273099503021261529811121206711411408832340226054475179210753780290048934374135997634084444116504914640927248412053067335795872844754796743897642561717842058057375689219584364436855272364984537275625174344767735284674425596407514082597441471760137316875938716955485939087632656407332990504218401905837479231809461934732665380213235159673365452205070442942676093990426778870547086447191726490818778635200219258861635062098027490163492584865854116380953695512439763477396650759279494345204239258733364712478422568127714314351816681284813557815741689854593181096500345239666882656132784328489497954704816997168389959446425374204956591376705337957444060263316565872454129367055933526222113843890894910605620138211760924886170806991186088372091810372888944902165297264894954531117610656178590470263314771200420178536664126759679173482732657778172109945577489257088761966061597239091019538554608953551775965753833277070783449167897608425606424313708904971157477338649436945024164305649588117815042094282799687368917704672655338895553437996209769390996953101220242576436808592911628650836581912201702030878704695690352339976710239937210638920685083473566576256426080960720337488261878095207463194242711630159385616593697097652260658344963800425291650178414132491624495280458534896373479292105846388617238504358259820530319380565986317117157582546031292427589119604850433316562717834439086682594116937466675096991104451683517513618293631513458295009609607354192156497987866297126148647233496137718910508382716900298144026250776809002572806837570145219712939712309470672541291019387016383423225195368501068704783016799174994169492852042399376751308630570974219906606510547355784078888682828359054148244972899948877097826513670427016396250710770967098238606513772341773215159984378504391232860157771730256194448659104599336085550876375707933554164211353923698479715412375261956357250666124903801525347726789607840005225217861851060622430447373190760926825892904582311108648413808997741630119174559661782859108612934981059958377362110466921369973131139865342035625597206913416512711794382034423271532868379342493957197502823138594687310685729634325937155751758652781501618856504773199022691536369540130564353124335425747306154677379944451165419058688287910874539137183803030106214344776852539944528931164899495497111273314199419602084877589356671150693596065745181818989433858426992474018707609440671583044855648970047489545663187749764634541528162416771736715312779237539654458436467200097598097784623391565684771930754838908823873841451614343797169725282422190631702397883602101725487983867726001827478900545627502723197428707041580709400093119658813947862929956739737028764209373983557425836882962511472561892965056332601331686009905802067979784221096005738410097379576126053299094901457922417915273794413320524505981853742236601986688730618767828377109325309079179584036094442002502406574844716705020948825171809289731610725762441799772100172488989535125630268237248968163700453450231335408923441456734069256653313564117951934562304229848493752817434514503310774782726160955605237121383594083230444132501861531145285153897812012022143404108124377138412828134612029558626060793429233495928242296653847992693561433338554977540185331553604789942605891658408087786031467545706230561307964828532596610164989714841853878021806323272623757196151527216491346507410810170061669537234306173633590081504237771385629071822844037934069630201041526999639027067429380224255674683620843527587146735222733582811325173269953920237134159026546970134205320566000002594219203232626427083888571977242866172509800697900864707977357910139385268546961175976981558610662852716335054014541857109641130813227885038541558544371641392770830543019281922864418235468976778843844091818467119750208903400320581349069821592393133873051505678039705778046562386682554262984640359986972704725291024891076805199487431588276259726241680458555454769998344063043811417192007687589841411366686783192292805966337572963076344478800448868175443168114115836057029431233139513441879909524011521344472350859067730141539100254910802721954447290710413979221042610385357779208720901839396105380165385756328628907167343701242572551068167016576797547590975158993501685429250050866075699912254602480188059635046238989519779602980278808592736155301163777504250454766044919441220875076993317824241097081584420628078174205003785527062636673192510792991384837668990206710323765312618407863146545298930574810854637677688399122250416222610514104062119593651737063990742115334612202951591955972176199085404989919493677021513815676237451888989076537855320715419350160076292618766437197403936287098603097651111952637064402097573430005299793264646543456755392225350081726697387235856928132676497394889321674228836027466382740774285365461623866519698598100976937798586660346424077831813993249467707969014112245442483862254587199991512073572229074538663562919213913103514165072992236064259699185528771112277271363299660877079633634103209124338259869699140402840907778376057929814680282771712105349222892474966453534829952997131469260023213855290644192916747697667111249385939348685602198786295465409048394324564990847473305600015062067736746515838557409545432148792853942612574758027017912730063436757643638609414440897200657512443618100680667681014530302477172798574775403507370636610403652844968196154397507746144271705660001152229231295530774916865460629727418868732883418212662627992349828730391174408920390648314143249200527918000448806373235187092361682164471087967073749794573403843615810949585587033092864268853711482812108241034777422018383524988689665446947057492003852452698112201072358654417709917903434053568735512915439638582530827945766073291415016783989103056004012444802638384529102829751742265021675480272035223578133110852876126835497936709259350747196036459668022348913350724286741514382674481526508690347119742737802940963190088723964637087918750267299784373997195563504142208957872239987517255561018743745862782972275674425627422382426603783377433280144920889035795068604036417668970156869855284467050284948576508651709984524143925876289335742978068916047675169453433844884774307696011814647184508768565359253142435606903617984780406769439318081696274001402961820011463747722792053375837547274754341663217836355389844560663810008485277786039853406044999632899472225654455685729238319328840133180145367907924747291944869306237591195190177521839484024100336215287596764570779202162443587579507588263418644294425743636558766864981513663499839816034712132127753987965239498569502191748109131437115149963151758378263876410425359321750677614252633659989494175305948945246993716859220419058943280193364008655798320585386878709583514908807669973642740709593982199120161046414105828264775269027853923866857472188759487896451233021724460169845180290925183925014446778805077308444895598670262308962172488262544051884271585378704733719194165297666635599469088477839898317311905549812075737551817272324612509003741199296797807482452704476102476316439199906809647646947030149123536951468079097538993553852088422290242396854836321745331305629656461934346235050458283200882191018851254028773747885618968813938026846707063689048234954089486442465179391998215322493598453112540721422050095743440123240258456215004896001179407184788166132660854392359207556301912002217078117862195554725446694835989220799864684192487221905190947272777478299285804421854280190227713760630248572083305061982372449561024914430561489414375408201023128737596518143679216695370396487497706790238739820586995592558384428718752852998289488905374286715564451489737004685255093226984804790152925818353658260671969441663043310131463833605161618764754535421408248951275288419619205477075521713777318676651617047969139609218810819282023886177914277476234134376229147760665558858482069736856692406633098284641885204665706301654418871039603593826220147252135746548527445539844741012156442233657187054636909337358775481376502054149886923133033007145704561741258927526646160263816490396971291559677461242357094350116754272604973575572044044252088253021403986347414067545296728168803515107446507631478427724058435803811344123749186267820852794357625486080103387167447824398883740547588412402078730280530613747710394003116691811137533063417094411605210680116971009844285013984304990639306184704225374233036966184822119278961363832226146487368701315987162725553261031681719684399909807747637745178465670789366928323317293526259997984004528889735794799115425732002891874914370145588542557662828935572824494650080818910520285446387840729647223542548203642956371257131491730282687006956941573122660004944569224574744672968203931849139525179703089312671726222780121509929880390997227630517626323337801749882567160258708120539353077945436440558964599443703940553526342514580966884860808795296592165145042676092114508445446839493428683946783663658359810009413922272757477461747295458277970674945559266062254220939008616136108291073200385036694356509023415225631926549871792587747600179636463175167615392369930092015549727226742713489940032188666765886206843549351552353748340952929540132674995853474590300437665367876865023421495146554349905436689706908279720889534951018541651910071580520666555052812925179612537905258872208413064024060101801356712792631358561946869372680877649504747906572758438387692080430744133143299347735641835418176821024268346336317996428635461717067686005317424854671684978325848728455429713296926079913421657002253835083387334411803697420771351070099390117496669415591018848059374564006725093074070982716071633785306889050601750014492234088053402415199868016484557440467490486305597887607697097479311295128762096339730142314613754161677617997733016048751649724966500472707431557833325914810203590539358810101080744853553878265389033494939066387124440275415120577327465095273318789433202379759405549783893462261064983551592437930927476475628926034504992740527450618204235346610479201560607251645563910785600000670005660546959774368875512620997417322463731404023747627929433007598177438069592787549636548460496403415095110022816060439895153445006199249420515253913316850349976316317891201220408012422192596966961346592849921046838856809697185812110385273484454519400236776575171195009121789557641696711192757667609719780171317622109505543942793856944993861104489572219993448791323891731471241900978406381945114149706350284282347250003894527725633601867503380351921090026558679870207244824755420972505180936980328938550342249730877292030108569423298275548594313661507733073795412450553576888531494994871342899350541180556503682211848209874557948281897097737511385148158628727029661528060229126197804610833835071172702949666885084581943443913628684341169021899098585299088345292284108225960594861295079386479255044186171509795374682297447748513392700445595181992286132862104356562782348351618807838780550830562657430603551146602847761559894037820107722419418257252854304033516650896295830485572577079134189236059482486648266821042123552810447421424835155655965681066142709012440703610750066319972365062324281345850642327741968583542395705726860487887542994551265872052262902233852067708842275196499069733320155721836840251670600652104223415206030437526568289375083594525838333564740549482544690456296888378997529745127050526612773959662846019809754623288954706187582295522296992589817899212203291092775139320474005787204872292375008287344702297874705318570217069407956918005030092142992833218010601027019624085195655231919330687437971844732615951644778313813458280030526190491496485121914001242284814627482765512690511295962610676311487294920539755192216661774183787305989166914298353778548159425252131594522693885594498460250886164261911293630229478300416252669694615574324514947227656248569438653381494259462767239496333058917969969988289726915696315123966556293070221280026386835854950769024216027445231491558014701132229756050813280899934536268123708165641950265448478297234297356969047007797994119895888447434208047319006786554836007367502240655024861504795792697536393549771069659566941698756292768992299595108211958374021171077792018180927326375263214385898135325644048188448319928042469339433410365380189788687708455203289708556843735785659255315843476621493704011748137220073620367741627002107217529742202197634087922878518581774246811692892174130006406606746325890690021874063651596714912784392771211956888201896507392949579151134281151464523924702638645496501526572734060188162622132775822336387327807317920490542926723025763047730747643145973488935845963577223612590901513450721545565049187483906134927072718639791503838446330703163316032117182270354853820801041609432356910543809683470407172146085844219750877954757658140607465216500865024658449946003798397611118060238898152294193647429513957208395651700633026791439886977886405291693815253798270195546710350494694129671317964277041195527621929866686286470990673677337356243878562943942653972527082642592807245426972016653629308050903108424620210735427524705008478327102196200747277245188144148235772818012795168317732906106461481064607393961770434844270386333208963099517024168748665072240877715958241577380034538153144158748261218588415805412611827931087853508401732054252062917301740420114358877369732726863688403891287112675346952575328504083112231947854268696423750449016273987941668301998484021250574597530663983608221842902307742109822149978208984417681892622941165995869749543961286931952937862462069022790059488328176157610831670072726145708063584010089260076682353108801766937044301780586728059996065187698542553815418738978958566014016136123227505627663858400401759631569568779470431175386344835563719302094609898188486029508346244805749044615777011706063663920554685995383728999702646235548595572535053006807025489439320879465629864196437134469289453557875739490786721474236900073823142265195977096215877759989396382654498823106606703659131611656784407838761262742705840972003492903519332502449167875398122262966477343483978792056630568906149787071028592896154262113036421743627209531982720282938562568611597406598683378202168556690721482556789597991923749593478731400994768951729775419057461389496875211383473059733259197564004341426972121231613351059879166283555481058393520354576709493230707393896842566760550854857397696576677401673410691953012152821801023995910168273182493807257941121806756670703234549210476617992825292685272125202761570932574243215809822311180440584711417920901808462042859367860888616452482923269690421856207653887087023496206703339160395240417891560822937362932908606906486309364830872869088315441781182301852908361527387733452852961042147748404834485874709682001377242033758669723892179818466637398188461409047871051664053608973524758878774264202488644428980020094152224469371701654132468101774614876151931218261372281847699123353587306406281172460054296199048262740829693520231636030146654512348856440911140644001025725831555466616567751770334660213023285342241804416692954312610595676414554860321478532621897057885637478841226709105530605584890435867644949112958535162939612361543690515714117488918139975232633471301153368934332032887807795583863425269403333213562059563810712424312926729954063227278715296673410867502666119701707481547545042417323200183143538819659557772410580933427038972677361995166755341813645826958722095195451354806004006568454201894861332388513913855992285091127400109769304382339208125445051105966618986303257229264802700837875251449047165347527903192389440035867858936780073230501705445771930969545853087459838880206765698483981493423440043203276831246729834745405467124260344169880315797139778068523624675105707625897366837925717847203137609715410129862644471452183019207122893464360651937428625593311553618612346523712050529347865477278694994339800470864916381601192300493578024363012312712513894809628296919566553364810653539154786599040695431446481785156951114765265414014024880544777645411168576237166184664070822029394142221128526429607106522550996135725724380384577716701986593893527166787928948857471669991952060150776116718466897936091130248521670812868332189233335580934178819693740823614795547541037969629632569901276141825168175308316227214224516991600617094332005930671902517460480970908453215104751688975121795100511130942652444923263108393248478571438193058210232112760600644438225509549122358182513530073671967230109620467430138467151348757240420742560825992369899057029257934828503266921519701931431514272909418704385298205471328710975137864512029793234017774877149813374939379402309206590037272690319479386560067942553422197433206193416242158024894543365355398153213580174187659824698181546237762253692852421256999009655454448854171498871117150914155903009237787091631684392791781268882345702507813664851615190980163146613150683248256062633211018039423316476371617747921790231655185772912899722753600348771720881965870084837239262397813646456356321953325093915327759515352688137925993335647895565798500044270343677413805140898087966452079245932834444733694628240694638134653747571334854158298355939055231197395612309084455222659783577498100189434543616725997103835075987158616670987293876689611029221418970154843759890769597402465969126531212862875795414739017031004847001508615097530003308204920361515945451737174591825932524507994173437556673929517292962208538910474546233479661800535772943725168328212149633383028876969884833474122715022793138178127671031097349152751073654173021396701269589379120725365755989692867639037198393352816891479912687138956389753675247181231653158648695434451657791151699570772066163142449697099681208070608515799489846740209729832464914308554628635012524847208506251468679237704818838187738615706630375068387455304055052613128182794030807882917244133683226531977218283627266368734806394611876117759248931880594558620811881591690705216770456351896474903308393268538460581916061873743952783612371613321116507756479252974805847984498533662133734006012829037993143926996959987146901380708306875857902151997856868195392606774590997974178799542180419324180628936006053017182176168891031152091590568411446328254567801997726682538145786998399668499437643440384252485475982636133925241744635947601741349863355978103978838516565677336609507724912471557290740996464424824917972759242093694448895397163198045632151540803758868656978478529353677536264235043558537516302227625093604754730904844906246418290267512019233293549364898041286301427993363775371071231525823001227428120001549299842426275994117270215081825539003053039336263858095053213828441216067486188959800860714213877115922741232017355154278394741983438401063083967851453155170199965981996317858693014820895521955656166498431023063798184581144018665896308771880530456402813707078186899722239508018268898324859606126352682477912431198625221237984151440454891342179952477850878537107700564903026506138062048974808918890173504473307302825518812725355464493699973156636148838021089684238735357604972314083054460194797573602158633891481290681589524593589211761053149708060128676928298784308558025607109281832425781804309630757355757268917503020060425975361636514300149195116696709467833199186004093664302370566749456314900850949733310534272239264039795527680872592162796978255765259681195484552019577127500763247563447726254092815478079224965191208131001635895806824601707824536599040727466201106217904306084904021758648859526985087222384820763529041359827450950082760199703928011913001018993723571508464212762688165084399269566871483025155984902578899843211832674383492360830211319275291251946885152583128727757398407429855907123440070361365071376280439761491329479211857533097088386685580681734967352507938862655254108868947267318176357658217801358459080044121097569899344109126279104699687320870249027112844252993860656111085943707098654485894702153628056118736993102702970937561612272194381671735934705503425435299284529877721326052270145413816541177723779238521046594418492991246631757441529129667886432784944720751546474773944255299574961635007502886860029882033826229232085253650187841719055218617037668702908109353440134740849658155565033741396469402571293666469839441640912942038032630764758164243221857619341831531963550167861783975927410455497641821729864661171223549365066256744433258879910495457600630952348208266950524864011978461039604325029928602065818318157372324467558922020166838354775597600048506358761205231913803962623338515559852352323486586306654707751121433449239729795477968889191898529758598773491591052437747770461529327053249725647203019303180681418197590469126136293124203997224392086049325486868584621959431097063727921466090065800184826722044208946746394164178244152698150787229094263628457784424797834965944048207883153641640721214509034398745122201282438962679465579528956243349728520877570275715503851922294626675276668649448531487900204311293228520775936256361769183548286887366104729308869224202554964162651250924347254827866558221765939071527862316319087518437221048886724060646369011120299253049124190217611268077248444114380067571042596435108974557044453741360925885822215001944537866917544579519040050531161374075162757811136684474383911734971642542234278143032273863674467242707180288695833666664351063278594586450669555621402340974035068919978270310075448247366069969242924746027536207119699024095474676032993193044229479838771877749633280454641755544524185011462526951639532489780985349115821626801995493684119079709098696120567807497925168806139780701473137437484883168521509926759246785661749438455515813663311022447453751625206257379135490531698237436688084012713524748462642454503463330298811879843617322559590224452904984269152162519766470885552056273593546403994424940493631328200943978905797568362949334858726073430221037146265787623882461440726789156042660332766084486969791929015863787970428049842220903268389125701050775190851743690423806150562056497774453000573051657306153885559676630566787099774384012512533842943338578527583653719565804185173217779035424078603600836447012576251617212396733887783364478121172632465192967730151934101686201305095784525848900302991733604189633223128107733862912210258935719578766488029930537745837048842330261862809200413794714912695960719410267274973116287926607300258053566300448792074133325213809853026556498108133798109943367537018493845845805511082955625422084868816118742471947615108245084352109232021132653560498478282492729275596125431575382520699485198552005581139848315601834161055726508212036950301244012163354122250242538149729362826469708516505809817625874092894522787752853449318851165903489704832176647465964518648480679035280069058242783628048058404424052544029528863434392241354734044098870371179351869799131198324157332486684342023468281652867327811824415750077984641410920098266972619601617540169939391051546423233588600824760194882735778316975905671435814831341287196326112388102027996353042496149093932286030203650319899605878339254417110646997192178863503435930615484446017229888520491568468935390537592544657080413809120577708648053849329505193992955578419944374819572891309504088584572158919155735074990747834794918743776944550417559747915769268068310562761137660053452395286757250475978290401805106573143592687201968457236605891696951261657175125231966929425035855887275749589425319436570086284129069511567142993631461973975315388751146221177316017681084348686158413307491066478098521906348077303651521134838629878815076220821331832028667642018582565446277565299103647606732308419265861221794918191914928388859277751800583277617295550093503708308998527484103862233393464985138456729279448317454865870042432858682134563437172424769515365481005771960345502621013900285999930926937316557719510185670496234705728131747446489636589436281464604379841318575876300921985850529327757280551457700314749395080966661388348010898025847299075925518575275299151588874344516018678483032654727378411535062357227051539491633979019345984609911687024097094557306720287598494386899005744456967791209909063808448661914053451550447126619669139903183358227786904631853074587605690117982532870354942133150273110758612296134623013238752636603752051410180998935560823162043997704063766836251853760460132258483550823015616200296705296267969609182602614051777432294865981136186583258075765018401423771277072958808986326979601201742762779124346157123483767985549381448312155706519552961916191841962553694743366822390059912824561751004804714289505791459953747382892256643322290124246102386001689430982636782308513117097647962556458250723949047604718279573713213891149550484279882035532385529225124848494383486999998476337637531294272245645146920968030220331911288934376961024469242003049431423205871270038438724225100843562833062995881641227909258460496507654059412501824550267199870208725293130713017715738088098784805045090838668051199253708011538224968846293029645608742480853542818965735511693369078339257989101746615450382725145030632007988923839496479024571632310851570112300822005776429293895901659671031717687877966963513366685454344953629616701680701442424669692945185809513833978638834312712850747960310360077651080923719901074022659793928342963285858242751290395711993955980166333498399708596804951863839734644042143430160943356705634129301004119061867548653174206238171151845352964128488795807892176868781210487423256369095936335486781990231410434162175385276092248818722347243473963704789659888404065287883679257782796806003193396468366365932051193725067799016116885407401894697200439110496361603651744755348273962214133219252899818822784121343412504153571329316598896994705895110005178522725031951561477915990495955026270364955091636083937241350170819437775568833614874065755863233815726786606549794501873991899092732246168180690436155848997661387403954848624219965362192258417912190982848870478726807965274421788989671855119595864624266198918515256752868867443412822937172370947451875994302789687563409491706955299742458792182681093865384004302151333405533907206667552077452006890417412624943713620785589854941203414139301802744696648360677507897025763283330773578298508096798224143129238968746290810336281336602081440518999504269460069285616202134351769179998980302816741597816585241757271332090086394645151390202746587833357319953099171467169416036043629114995123604009238024378460193110361620313541188414596226795886793936082828912346095756522253799665946940536152112613082920424727473280542939690931336794437625339045771628976114959488871096085307502970955664226050695621075490265122766455486360232232319676191776725418847633154829014388379623421964430480106672179234062931955768670529288542145281024094524427779067708970684249811461952841593930269196114045832536102857893642081512724255091202432397383848047349231763182630712055155751368145990842834397991160421329264016578597256394962193089093851341980858647467286427370509030614007581902750890978001203472106885430044154997756264092399571524345681904482252294154270474649744805125019351516780735471856527781697569758775132127180985204925363956607828737306096512809609769022274733456354172328660254422841679887860113206078808873189592778643236291007124892893662964797522928266072877234391059613794542881393918805525779184957340786947740567550885426543597082867791901469538469515858386880851263834780009790866129851642294324463152661908630432807806889353175796506238169895950402091104869239935198892112934510786365412909300578184248326218096101182030601591094672376032529049716348004393438838446737798014090377350368684089177139453845180474688853447612162294420385995450718088330015224585786434537471922250969757673112560235263483395899371465883346809172734553568002140803305838782837871881881815240519681846498587675881531099280397013354798077761839029512169750394259290710630937278291731589621756054643188939398634751250714506190950710216441060489905252279023914146585943169328412238566273530982440165316759377879031120109942172568512926686027511274289540102061272692861907343289341283386505341150972135768600041694329059916746861754445160594587328284221568138117610319718628420388923927818342943245171373976861091328890046240010829862620718376448828833907344633785169372064217834237863638269247200986390763789253367471472337457930840592414582814297127161326183307182418003757366606658871364900221454921406364854432417286821260200065299834928413410530520648466773205254084320621496533610723262989599966330641238588382200244814529780816429881665929674141858891499032236651026577747754593351016618437652849654571116987683058474507021795880917039697936818440862080277530869078596773735179101637953061487756480948444209845697353178528162472607224143981663144016287082980436030965861379908413887796674165575633039724809162578617595895049098228308400870882397687345790715073968172228604815937768365756254129971922186535120210044633628572521954978612538497289709960297676274214487178138011431982695273447490076694647481889861955088761358773825904760808661514954310140679546287126317048067128936592749549398503719278976608328308082932827609999828181842216470295109664757375940329474864145024560952679525600082711194935422877875165460918563381425424635169826286421702774225275370907907949198613476762614174123274777439303406192861596604871558965379902749373065677585488276263705932522064101910113487075447174113017833831586214675562413244763053687211844458998734484294908313857625796582369560267222067991273977612382251603640823026101696570842966053046544172419318896661723607344524844979981894990050628695870635346513269662481750508840579019229615066533002377710290466226566615194786297677527636424731053383732850658236509285580501684336439935741196354144128545265203115598321234782282228527682089147866963714729231983553494175933451396789634602089996360097783450001154770190946449012765004602640960992017875771053965608740636045485948212706066791199546894857416605860468505739485004760515274575399177345808366484430960746429704709205389945731045163527022521698813363601121982180259629927502308050847551768051802101066823161362103493769862493273951639958582597985554208482424919469283461341753174690566524747811503256766197173633556619711652464067412704653971512867097462732360474850687545179113324958724341145280480479992893876739399316158815179294423929575414044319443861384082003231147776610428018111679544233669375214122749578565296281534808634145697050776641752215674093004142150691099480727211623442598553690808869265818563742671023706251620147922344397043437308741348285605030910062231957758138120510079076692676412700585541356627572103999601011513352239587181565291089369720752145900553452266012756675945471199895181879000977660820578864547689153321304039904356523971352374554527903562003301335222795908455638849175075999982476280255540456079503143762766598069109320825658370278012441698774827500955471945314894573545972568062535792280978894456781138900180062404098330692098374222622066462932370021415488557505539724695498401575471506927674525187238392069055403746583230935209697312184843863664301846868005142538075884517496191938120019854890628875517867982218255306120968451410580843416059223740846301617301700471087993206513565630923379426932709475201477642651730659652528711830254929996088802705620733410289814987561852898325692119616565795506517938239529650137063434331798762242966634616777388080695016593453593353999921457423149254538124420495882761884177804600785489165196023011431804432648649082495343520428021773271906698184599969244285698305229545226701303182097588360936631539547299668860137704145182320869044142145262891387484872735912740282305989093767144846203072583645818211882582637828175538936659356871140101178269281314921228506970075696307923513340214380075516077932056608548250931699495364051900482117834305565308195724158058865433294509221806720696684612708072313001444373218110328092512368792753376811355308025379162052448751181898217377041350434979979623090117863539125717974678764646275073315124643294572696000018292541119623826127252223217191260776363928176292594350830049246226298783366699504276314886381624729446111457890410312210539549724430200436785239810741072189312057286033363572714597491489911582875300398728912248122432177133927839848129200733697233660104503548024780614205767338425272900849526294683555377011561132521716051223902764599186447084637219084607804334784132998055126192772449490364788818827028575662989704722652419043690517398038918579786380407342485759400564542115641085203064375531813759057609731427498342350716113764480526689574318894430889434790940206019596325538364148180004952404454151268503103265674343222682322315421743637488271146465723611644496819399372213314462754786969300041698661946226889721074573003782495688425861846143728973128462193713910873067248648381724302789584134591239935795355177106425853770240400277765431237427705604360362730846188165463053575208599322252425034340930934289134175950476392450246139975107620989023603104306544391731347327197596288473547222620557649128536983355128792881477533578729203316429600427506849394951367699297578514774123362695713805243803342874654699338467184296373002958911908840833645645919875216906150596897797942179190917836449650991783343400808478469519016032546737109325978183532674975899110864789423469860861073465515885216669758803423742240327081738249341382602601433864985321812220384181315278926434897071774570395113312041573437443912412077400036332888052020876014739226392886758597071609650005265975755254965715006399422430667795916257347948760518015345392209938492238969302038073733284723881657600761957738869617381037445869767552617933005018918140408197814553277121199076693049435952361953932014099216599288657836598786002162261164529324502944180936289569313882291954602671309606555366736135460782439638213137696974052999947980327954833714729762816322291093563764256996593139408708887693763751630848423261729242743271598754023172319633619944204921416616888357989552222837697864833830936736995449345840575624376284372884187349012929141971307168547696536388437537630099182620928476409812583503527646673439336936925128664562559045337594848652863130245127176319268495036946239586309774571347896545613795209734879344597529267169205342055824687007874082172201305494152371070679186623384315972095011557177030359414473606601006280942347972540335916021676917842366244953613979442367820192654261043148627421930802362546918174062073620346183381978163126119651863018988604972564253620807525507699290079090494179642959499349696497369291552359286590336600307051370696071429224544209130310730249667940925323158294412203991365565592475026637285281941578790311588130715480929841407839910604954661535270566831500685218635723145234242558632458485762386119578106362618903969327375557268976283145315991294085919987991905771505319701329926604081262570524982605048481624423823837146538889172039274141362921967455422706168519654872619817627867124794272098475133074750579754735273681300539053160369106049594062371204660004739541741062361334467828355319011929464543963877411728876747184033400801750196171492824208857570698515319863942442288139289497008233610888083352577541410543782292647170517109045004665233362895379843900782303883903637563081788632866116179876391913128640714308579413039225970972073892318932164804871399769673736063524431664977590171559318752559547249880179539541968552497760873253719886968650927083406971756368225608218559658002431361450542211516556401581147367406800201228763333804738784746791704764514650908189757078998257916445174228592044984356093319341043417377982826481094851497184231045470752819301232699719335272014620153273813013170118202320194963141623291788252913562128020100955291263489131421115274623804135947905111048658826058000239364461403908860579374931860223509287954336866710040073852945903036716150619418671289656783505658363077655921325113165575393799237700218066680425737722868869679163256678364532168039646040820143021624563229596768847114886732645872751897853449286474745627788544271824217641417063824779620762376255079804414049632977954453034500149025659477035327977424245338690595500858563145302310983203490828355714382088555392268298253614630803276433108268011763650669293540981634479843524488281308228770168293987495570258066614143569373404584910754118463780155907120290674389468358351868581007073701806960365066139992693122698188524963580906140099268878498354638696625110826195584193914039583187106020482783802315194715226375368018271225372150085420408383876916105403153352225977091752060258851630627896110723104096227214290579270781881910292324054654866108278812497099719709901517216900589612763128701750225525319024488843701233491538624701632414411084888746333221833783006150891869061110145737193954476885683977817267194094648091878363580051248525090443751088630944756948665125282545956133012742627555113832073307214244044923163430001126242520309986723943200438546300739511801166410056905494558008814436470777268330397828336379331154636778475047000314999107538515912680087381046892877475086998767412953636763058921282477633882714324820198323898158015268716522374659840855849089977340615429710415691461014060159367610890652690769510200218247321394330125067251682650323441628802067497268516098687207938231884447785457371312407499659113501591699458395438426880871866748356702903212705353296564148261305636456001424818529811061081034139139277784086493640259479264348969170529246725378426248640290387430519241456759220723284237465347150034005641693268954006010697933525488589451504783517688622191871998007781937036576852187881324658782284658399252848981233770085635442021154347386233467718126858925574857651802714915841578647418387295484897687257300076775890813747617887371052641961308226087732495442554844477854476864897734635291007516887546458979209900989281109912358565750269211742964210715331324360843233142143136368595865254665646971200651290567376369778599548168672274783198395985512025491499261294112987378835620223246343312916319782888722918704372883791687451912360300489246238420749803651810384681183453674823846522299533121059302019430161857698824948050585069708735918265423359447008693177726344535408504093603081855821355616382851205814872700348096365803746491352047420594763837996059716218682798639985422182321016329847156114843462452054355510047297423052079692892663153498787240486516793668263032259478659525598589400577450047210347471930114801962761917846200796314217574916015204529250341198680902883969009932772362379743951616359240912605917000341764979919896211402319485991816198065981927148983662695451986978922686751126332533849715459762508949459190886813534298239036395007892175179941560040120920849616643217311494821637417712904176723740853530121044670540556162440439262817240564115667778342337922447770232421281967178136066066273241279828833771690613557598407127592689334579203573785495679603175955251527774620733206802248196985526046903522611223950469589399699933005018667685391219381068146084340510296534655653677738889190572526255099802181280588977347953777985909886815579413436492124862361999115638321812277215071786961129941723776352070716903969713623537519494603503844737976443867445876199977458650564062218057407725915756170174382510727414843745868684939216957180196563691175411742988169189690328704866886208780102928368021278702841393532741809870164120124963413771186572864502130164810676458478051725063640651354324897781350418605723947000448805896886609820748369964427015705836093183139708708412493763812477605234932088844787471751400082513314809191045811293095250128857710329648174978212073667281929148410394196371758160450822791654863941693762197828607192376741175425837901323776409897882168094238226404870706639706989532787084023528500249095626499208885059687030194455947098142246310270549141421365028029464590793172112564331070972772350815622720324799595113678939273680859505085894824682476002325462049247987716238388887314355711856991283464217809148241919052339588153956788185485263665128532996966463321471461917458112438009314567685921348093457684277049501276041686957250002863705501644808501762039856664369530730233696716712595995076825374861989157739112430221558972790960094914166718486003447432466812880603012055371922048236259406110796189992977539246339617292639912033007477053460763506685576437395733182045933549056827522503382717389275258179113676933848887367486374314545644576111885326554591829214680426744198306305077840094087461630374849962441916906563310238658962583450966251534165708636408977534855278400326691351553631221016797089914604771622772313129342165491362447095752005544917199826445577127492890212665308133398764436125422689171893778319281967069597807221473738176935308467423731063645787016249427402378861468135158179128322384407688729386047718682028238903953135901877035163654050793329429275656188584561607251362633835276662105468659921372156259893932963627978045215108638870491290505511878813933502667071966601587180120666964243614308003842411441281321323590414214245667283895708159231924481401617942216977376506180420137069326668896031748400389974148714374313147212930013607902246198257228170900129380855873534396912590216343718246351031015128303100439566866467728205779111620353186889974739554881098741366556131057060271044072979010357111166698913363681116948078933601104984426377273592662354045290850208380399721303224292968399411099249883483135670419636935015746716571503147984463053669732207923473161372886983311743080984800247038886849043573026492687911078629360502536841831839913862525733995529007554528909859064082209397401631150147094721643025462629705335793555872341074919275995976104894327000132344948456734199227511733704152651772910208167124693064089979103322371777798937461237668611941975445876529906662996038848789249543596781850012840551693504343947030147487058581125405191154751190543460033793103750118807913827936609642176368972355154234256325312018732905738562000777206427091441386567124225530613975262738447889579460972173912452356104482514559150463889489960251614689266509564972871367176190071068530721938117489513434311238806631140808213320394332496311758591352999758938977011134571077243637138704304077611837108532403754382168330380102378142828848061739470787207890829295416844875678288724647133520463647577112808719353109673304058023624982565436622693909590905195858403562769064291346827053161738997571362411151206035412953205984835307047834472710345082902974992543147764700846455088595574757442770529668639990336435657877266118288079711132557133910823244169485896736161397131604103969524121850174452940512363296575858947972822494774197895826317511088731440304975009947464935567512868412833850297629686962984257339945021011510158318582608625094516620349744292208608825404124064629446835072651839173585123384492967931038230991687206324229730657098180223079189154265672071284405500871032973933420019524627131826531344709913529797128363141350727672428610662520281987723201695619147787192183832680306192602015769517692849485793065937689952505664952825769546048133931615461847942807340825280837423971919292294470556616289502122673942279358140697700528611507668183802122338493587164769650438881458694976642030776288488427435056792024855887927338504655154051219862037052846416999999221101772567947033935440181590858703753403772920800518985386518926892723632170091018300167802522497432942265040976544625371341009633073078281994116606890668855106375871305777913393799199204685935487956050491142411751244053187760285068474273672700416300782657492299177849706977137166622277459847867356683883971135913281786128832628151573943307622499717588189957966996858985675556973367246022146821567159030043244841135895926953221128259350907709132756069128790942801860052799890162907084664424160292620415808977407197436274351021165702828956043277230073387579683160086193266246465681782626868601555047717213238946164578725822995870580692766506970491931345467930212030768903618792490961795784611255280909822585556229871402547130109636241823382835688382850122595109187632711184323781875064509556870448534463258278598848608178745525273366277142121169009359670675555227742375343653734653529792248106308558893702671244301030134272020433294025746336765406589272766134729375558774161878899103212800270350247822733368987469247471983667258265472489472253384683948527761336848510385749754992643727555551832202013702295106967636917532586193275071912028481069903833220373472104602111486798799325652028045446508191822953142743413868457875681937021436993800806830624138024497774550845786018770271971556317111000411937453764542476261316121108651426051506709547666216538357031367242070085830098282021619014773932660951250975906603466855992931529897590338133138982648077919067829967114930950360421149441447841434455642137116646030901705002354889914673922046560891547168047235040748186164731168585018093048775115061653810044807005165648608157628182066333935867454479155948335380449471024878406418078224408130274483910291675739905935791521372118614553355360687779508619160194483735724955195572287913403348538097133325661628557165264470963385494886255138807791417530055085192724695575305989612721613051457053011397867138326609220305702861416649096045418901752110704943746488359230774365012435643777096718709554271852359379364698116172690693809116449178652395717420997211956350047443982036348676080238431998628478558830605066951925858601558234357617907064602353648782857733988043182977921208668704651159956608818221380557573623694668391079954811197852268038588377572416509186179109063551453204647104556325638429994316085405962852133395325358847362116014078094815642868576684005371203771721070309707013414678008945534210873071263509664260456967401935186094103717069958720943732754067535624715774950457835063221484950928359658492117616446713889415094059479861491385670183915274516877832953189265559481824617453562340717149078559129451414254836018045681096311294070535409142372451328478282768318530169226625376675432766278818247113188945468347476468072106935667010050520883662513257461478438644611294184700856697115316563786159630108057139268490728888742120234840470921508837179592737273838351666802225958880527391505971337475370188724115055045535480059253666717028827660758722353411627898514666943698744129728013133507042122923814950475909577782336421632877749921792178314923145988149786966655151093060749117276857910222528135756307249746200468556467893933798313762707714988434226628187265943296788015957626947579889393993673011011587410454154113506565263446130712910182135835852468953006174109514820858637022547482536547343730631762027602701025111008955776157316064287913435622151402071572004602663199425363450665933619270388098254093756411035213779621954763555926977627537110569595251359426201579684709753000357881135391080567988513467741019782344400900912269060006703402145657090864684332312125157275537239381777271580587372684737251440274451902812200854369406861460782023419869527608008744654456872227273641968943571882000992349526631096764670694302007666844683420282997402159805592980616917520463011450114602591472139959631569388049180631453903369546460102505272090019415661020405488937000404666146465519790829970374159038103647807911335486230189311317098571994172551107553541187879331372740396753219772453196259824249337502384057605705972791151321214990627871606862677265961132022353184270403298139340996275127829392934505140839946388302954182694693549548117744202545368545627195623648164112937194444724398927023323475360233035442321567070827292640329624269563545536270618103063873077735321231525100032890812411291380350965313381217902053289149055499303805060750480741061530320159529408522409517454829506319734132638272941047882059033691399091207693864983872708630151383197296145787916316812838173970608152094787956166171235057558316489919152883258644354183711078946229992609542748679247347384095803031405047803029558796439138117652242652568122843138946096315332531734876250490989220707855161347315177700182714175933003104976754443182107733829060382618938118250384688266442964415727012298388516715026045111783417159931508983344124425124574762397981920903215175724420243411025184734677260957940568713486112815319584581138821881362894042123362881520001912248459909341690575539326893122501673896242253620164901548517791942709005205741246690514560509368983592776749688165313803905719088606957109817296135416483399438737229918422341532353915158765932501543330780408103914118837497303305408541185970834130630389588649031017055297341900057619718991017366513776513853364421041664280358853450378101371725095622633508927727274185265590190316093927712931939716682686535214463828024374461763849184434292889039022937196922960643456348695575499167185642389128267595585842494033421208825489341870332294794371113098269433039164330881326043508715733559145308586546953878760755062737294798590172048744051310454538615810398434342477387017671862134076011350361420473327454358511527566582206794021388853415539599860773917920610576844103436524271331395875913261524869991094804665812252219738753520315354155950046692051561466216708352457889006964576898427785541227386270438350981590806758285124409644994852253908193064064615835930687074220462200157647383741052808186358706456299454113816934095723821304358527682360078906220029474141584555490013671749748297654395566512613101541100619875720232585136342656084446070046845890980816009390506266980199130947451828480723808949604541199262038414747353206763282102485483111577481386380935779976590105549289700221740340373308682675161141630935472965187836136337761888567360866189855715395704884470037711977002552544239570163956880942621781226914187609597236682219329500451850464772078112273365815393708124002468997231077887213815916825436496026325627022771920574861395837442707739182301944533833579192359195281492637651095411704087460673986861689779555956060797700952798027456385446110427635505670357309116081415294101733526642463878393588581832882274404134503008633479116545402173801964696373932650445376228065156265317849263005294535454868813542330614316335190415508558092871195819812174707022523048045765989663001465775657701267637622657189155294636431552786051381001544831900969038439575345933781991759899760735492907061963388578060635508114704731590420509736413683018477382216504110237621454004193316905493380800682849611826669361759997987075265845437038087876532970834062762679588753405660604446317867889199492489715926651356104619687838978857896286199939586568123407248486396959779887543425220967216983755814221856952508030627425029864895758615965755948121712854908639027846474801917371083177042657893502540886980808494774416582991952018125312120828156234797186028304542575206048178507289679347251044407150847660965150495111456277825839147447340179619881583833526531883422311543908647723346009959685237762465187568254909536432879287715731815597423537733792723209462541972373429823061790057590805314764751233198113790196792353191538207670417812595477894917411677288738243681067148846700504772727004334779976041691855718729130133205289279577964714725208752489189374352406962282790753683964665864479535829028377106346863954014219417215619926187991962164683566778415620743561318571593903025191193584697762662431823321333393153443123910677805355560420883062273291247294888703913274342080965010834475201840151953393748371149636549718524809082751938183382623482607523258491327279149661977595927454003915143698591151462289795652265736433885891303335260403892695478786295953002775203229940659692745285336415804857206438464619488846924250579354849304299544565983163834534549624673229967432576607584993211296069287385527106369390454854468581995172339485167655879676745165333137943053502451752013192886796470519170411972889169268569666246254608432570648695008539695906429301715524027784246528262196579534255148267301760056181130747954370900896920457473430791663155644384406456366223892807333178777042548479707794517942739941773753378772438099112098620414375123019884380593166184871850199978540181604854055378915560991009633540216311505815931360629260816051733203846673753401612947801677009305111415044256415812004139742460232153276714905610722707191516615166393851473498539208567348078774706979939261466772561329273501908949792609396194420235443078650127502692877744133170714258185762282002030934982707718118547446871754399626400114676886793038542240668524595816237736019660645332875551040988668900768541698892135751039224902959824124645992686294465571630893353172452907231188495522906286926802897368179916792820476897181453462597654646561993261579057909403928245773884156392831412549924858972961371892592912640841422162801162513937712939735162545883442306047609829270361980319953065366563345811306388084919895423229225512218062304022387666295570463308150714785094422820056926611693820811624819329091479236337086255360271687297584031314929156855746719032649759729691040063328252199752284408123384131832562256589975234727521498665335087008308822923747032952347845379339576087144512628878606305465641287219546470859377541359808258027632812400232132900698298576116262946269507904040864694684951714867511916292998558907208376425634977951337133801653458508997097029659134002046565308634469148056211945827772327932703379746994963573870139259449816454459458800244839290716819318176809616386124002129266554476896124683500193502937597695132138605282490281277115068161273907958093076248744280565740179335056907841142426399649588204933875155594675223807610618054224143789266030855147112512660012315355875649600305184962488659306571151011176071226440903420864389538437664483481255300128062210771726589130311263740635533267597965904765540545068418745392013722544816104938858461579594421831321155181701268457414818476236859233220255658955215107469373467044137310030018949571826167944796535901077199099674566642792032766388537476274913349964617346971826033284971849318324431927341157235880872944221913455080689387861491054213152391650077922655760642789816526670545084615995301312652629530566865549022644696296746665847770777564138697544352115681641863709543849416230181701828127686086045373512864361025055698063668885239958221963546117844907373767728091282382958507806605412751604481801923565779682987029046762477332105074631941608379295164557237150925359109065004972821262888211922645240213029980035672461023715862314730879964773532292354253168225937044665390123524384506675983745472376585799860166784436356994121131204892930417041031448335875819963773666649701021867356821381807187485107176317671411191522074190673897473386151937601619803759983496841930849547374383916206427900339372762625651481015818401296168387763857624044825088173638037938827741570319525641225073555126448658157115334334280345721999376419612103497188070760498052770542706823830036020481518996549151754544220228311480462871877378996699918777391558606949001451416601677778538755980818658976106570216372504601060300998537655644652095301334807552905312340328996279837661348911805174126116123166789190787300926852607801011494915501992354308985916471368896945315898506262984739712131248374929879631532340542795133079712922725843462818025241064190219343043891918846779649407430719512791383592530914880799321524268226485285893755481543311696408780014420721423519891848763606990340457642260630076406049276918188444418155219388223952667051200788721463044095350599557656147696331120121600328583884767840404608978983435370980373719287723687392438622467397377175050296088654854469528902780072466553833493150958691187248453229308476632428796978055722166844225472600438383709607176232826264897396440840407061997099754056232816524536282809893794294160349810890152193479867906082721672242352783472516441095897577518252897497739431758330378296902328792764416059192683208287240342245269567270475280837153021744873707704028388639768593594901417991731658060408386862862192670889442676063963567874614828592376503831334086630957162754332051286471246773276254759541745973886666502245514001386541016161633870342124233457828416340967668012861972134706511404002713325171403059357927498839169132249005101618951077453679987971891895837107921549887984568958790987429599490009586571200797974489598641169091474764328491211203270960790893263177950300744544952978960919270956947452795988139317305208797816981416182016055741952364901481103161936720724440457393452990371661252744599978032336847561980437815642135245929260603801768623592473432709195005285494212586111014585954911316037137991996514508055911300907148132938057609711169143193493212234141002243448777054525961290181038578884631495003073452299029348286938766037141287612296620869462675739499817101677013815014104267989319671404132059572538121722099553316816519184715030874414858801732122575613923292414364992535260752341500269341270384042097104412218053922942473128428009697276190120847012864296951021592072264989141747546647095926353263326128129524389190020536233716503742734716404809437917691586352781164185860620856751115318399859881880220916725597227677750760670044742995525787068550687110770626906370130058598706065336130234640128141137267601121786925863014793267788634091516970851203285234435023030191188576889556090917776213915123663356204875192540291261982730524172472375662966091169150130296772129109803424797885926318005876474839251158930003616733697119018135819482252423441601053507865003341792065736492570146131085496751159212478360402361459394186120766061233912932797806635750268795134933292610470971247879118892789084541063246555945394472504300405360202381709661520666034030905383906810266961760405173065457890410732168207597898896164186354495809251824968738552004756802810711990650875122520373960831249152714162158669777337127376510042915085973624340827014741145175265955632163751254583067127388025141714088870288793500162040589800274976100712166813280646033689839741364195231964164596994867475883750513337577776137057608902163938511110818904511797657747134490103501833796299674057088645672848088310713117057584346707986178078500174751160293338027000490643867042541079501781519987631109221934290931330095416416470986201036852433039435501745329030757546901845100596108375625011587995537597766078704186444185246358211184513478754289927435060934970817540358168925415479089007238312505253320629523376230873160604736908314751937306797322475833170792548267923624373541423704768418755631153014585498283817321279848635007640696811608079526019398708006234832332596932122445844570706336719324073613088678959440226835895099280205963281244132689072414843751202047774449562152662109103655044043906706534489657423602085471909966137187061224897532393523064688662162270570369196170844127222978084400628187669887029623991708074283504929031756194039350520275382854697488019607784164359846977389006651064640082220450396120452099923710741707808207606341371179268046134131287980720855132138216984148738194923554751441351697195453725969484571526814725225235411558315432688153517211048391374425720937744669821883083832565230802766181874636788457507467858091450930391820974471620637991948936098426971379364868053764690562864475551570540443436355327086438241325157483256754221246279259217431145137402758317801510306126557508834947728709143414444255959954164363586177022816777007742257606720047024939677786202440823806092544660232965557672370221995959879183647284599917666105237893016320889638928391117055136056178515285087912416571706807434159088071581738491877706580111054765418603705431970633192622349743447620277930886116241079621625171317979749463842364368135480382220474393074131598423360296247638818100394767994144145184764035328177087120697040923331300082676091316428785418924516100417314204506587699257838434966811227699181484075176274456397345913949836349623369042139522798310795749607071289788268308255477844902796470399566731970264397729198844597488650473218635207491078648478238590058596279582697430378053968832421175441891956312192316936478963472516260118766853705403709827226683787572572762284859591672025940886101542136718170992099178579763456645091433150441924805795903714873822049835542567544662780216168940044921193796646792728893759222924359513868655443734438639376927732003973378178874964579749202664688427697672039670410190103981625774292011478218684969744236610849041960061704474340832258928153156710692453877664911410500068193366577373257741246695257984263264792929118585150123111045980990583698908336015974903581326793574094429702362694063927349452276633728295448002792610753572670547448268208832513170638862887937811189303783126711732891278385055232008381058029901461975328077497345073773422906545597725434098098736455116173253555684609691237862468557142917897681129949642553359059042598238708092416908335861851476645488875524392601105472831811980846775020890950489663515626910758231773338860770321416154827057027180599134225166357167526349962555905181614678472050783619187151030728035401254405474851794229360018159904719866362629041765072942793429267326781582268224282455159966464219040871371732409863497586331721028597728511371150874202598664012413839765877073769920862115950751199096785792798808226639243127615952699714820920152210570378364724181872376148684508657291826881229698789747844935904389972306461910956399788715204631463658178591210488235713752710252525590515042798672016709672843000488135191095476268595060319698087855537157243413533191061223562800095385011808071026076764328909690330604968597410577046541277543172312591722955539215995670408248205182709460716150743271829384241414611208716224559596786438053378291408516040282226374746922552647006475065097363394242895779380708230144158822917182293854283131633097122176950860452539118179867772600500494460421145646480923374330204119765051643530799343651598348672091313786028456836867339048112401264027199475997170324989109023942145556786497891802537098722767505248141170500965452813956083233649139501789738442950285815195979132868307364974892908235783471011675562357666434744309089484774822476380890252937604080158771536034797353129797344749235177836390684233495140927563744389892970929241366528651115176011573483753541847584706832078642509355076564478733863988665703112000984701299644960026648675817098902860263945124049218982358486806825597733616803803184296449685274861482623754702438178475727525427501679285624038809931110842942367767779084570623810704895167815952439600254288176630017028504340563872170365288771717851749964422053255669762570430241770514157254801221093573638161140484922779472415186691929865641772857226133011072497665383787298022848316210869644423770363524657270853924601193314368000230272129877307391107527104394484516549711651727223048505190661944439892441127719094862993392596745294243106875238535416193957326424905216420874005277280898869465917228404752474780835711176921487051099894151869354105135891912046623281756616993590525082334554361659973472639512818937040019151763515460846762548205045998030276011850474707038145934047882782767196900817758712536518964555302023208716252676836982210772320905686298825124671967025703732466966796513348815710150931606341330578284536321998057083956570052326615614833056556975791472852646532378665732169953805854876366177273867734277055727190186755919009883259991984692180163139607349178433752331863303634554059211430946892508830672649414229354853968459812266784635948532262605528978798716418655977933335190640882551748184353894355551004563457332875412173777292219089791710416987627797939072594631505105655796638086019922406242661588538040999818604663289890216525931335218081316129094577993173957442020072495762549843762035204930633746834912798558545977199239888436608383251959157874790488934937887933881980132657491687600113236681012396694105189870558689375875061530679706899899789532277179868581389131990376109349986364940853999950691261750365153613379564563350522978830886884688001706378640256107874630229417050528023637856722229741591491520827122478422496232221092794832349616373007615281810519840238051608290005644571518891592027376128152219258727672291761562560178513065730766467556149212777697271071217706708573500725252406207456281221374289020234495211914395745256662852742441036225688994239653687786597846622734727412694098078323914957435357413942511325103859895372076035056083148758226082680731402959888115986401582420297417756461112087295304963732414874997834824219972392444162099787275366466674016445508829564574153558245654319692296231937810197615021602426024258177850096326452889602353990277181204581321471079756626340926446472048424850320545136144464466037783731715283595111761775017189072226481636826366168258996157488018367408657487667730254381768722413576856522852548784395358083659797149949470975922966245112247033564092516473304643423688222358401058355588537017494341895298604555942072912399437115350529898611254747669730580200669657044657557683368704625393200458580195678164308388678524492680012998500959144828769749932217068905008834160514955572109912261504447875624640232312756152772615342315218628395456393266106717931577176019376634024512786840397728342065894580319311356624718363572942047008721297616333104758080032316908220694783281003572486331191088411630615285007424671583970150714485116327890952926095206254420518057439986115639057945141201792492163192486315338570563092517734841165645558354352704921822175300187061098827805321747919551145930382925307915014145822294495847192180501702679521715026916218163157574604374020235301965707110435990969723064527150718674268640310965901563379958408950258453584791858659223284328531355119935101350948459177754385838171899065887826945354190893359821611809278364273818248067434494046042420768955197216791619741558169728805282448751450222639797536300647709076062270520432639496031940090584933713427439322807249031438831296059831932813667200621751160600349518206924232346357087191497474004284681460077219595282680724003898013911669397508535572354357101728308927382075672222848231505481838920154187678598235860530095411701775170564594277559990482968551802914275258083131124027410546615133649668784733484202201917409989012153358093450404029058982182615077781678202072510267088558329684529257288115233225224799458314147875894920773332367063481398402608483148292986263490875104237132907163400372682140756552335930665473946055285986291620042056354717395499874980860421621049176083938399184333106020593911160024993433380588505614593153310408373100483632118286679085205813401022325016299276385261845024407237582287437306480192697871205471120615134945357649692289398457164039421295516120151759112484741729696064870982472965507654201687471109204267063330835288276759919500892369502253303620438278878012097655806338140014998350608015933825050508976931177266952308279263831807138216834997743422822185252864436467844055564475854741293460410940754694992963801285607317241094743121085514146310152598196575727482492016136223738588692230316057940545035311750577545034664236235707988582961411790659084328511753165916801523002271125912732282525703858657012670152113303748097658099176243655704603820728764290763324241347847616394410446701509483232979585862573944959315973051083323728964115451586954801582728508070745459725548963229421988723177145297214940040381133932260142056506990751483511517099581742407066678120768960025268110826258053994416894353412874648373330517831504781011087798337671830805427809538668627499279901514836043612173465562683208642526994870249961633238283627712806981199849855093745136711536438197039921244722350656950616499285436808267183212866833692948057125423709580249235344078859799822035624492137274539013403485644275144594311271240318407580963106985944624426940295668253953610847918173229953365042973343406928332015703853386170631788625557126020234131183310159393388369062977745122754966996207145316395454787324166060407363212712157350418797947186804950065206054665879737187041942951873321776505720819122020405602857073060393750334330275302786920763693017128619880501887124150486632001242051652964897115684156048527907668596612883017386667220799157613787674425823859570559321484679993700388216560573626504753092798523287291261682236954761527024005750940398218235445145073227938827997146762118147648249673758710226965040123959570753992920238783150168324099673997426143928497019326413991835058845498598560624913011718659641603484996678933846204815863500560654403377203725866783281029818958346724143613534669501968688916939047350790236951054120501678218316834651287080535033342885970062159536841628400584701140722309234843969632348453376289682155003662684746417158588386554115604196282323143410600134298239365708822056880591828468106692505819159912714759481616712145695335423596525969249053783867073693770818750354660670044523227597152511532732242811963864480212935986549572895874515846318629948459646877510858798630436883157061093465012183731780561236966810025332227323575189307500032328195330486499271014731771155639703263202240251749840234950444704597603783913554133931213539132246854449346720392970578362423859829059287650754263519934349284017910139701245798160703650052588573436585399702187305067074175442771421630646342832233798641988401120403440075553845347791416530198404151302286693768434550082625769157559413117015361088075162422628767075697028822287362944119322033806962486617886160532355981142335986285878046830810839975030346070657230869578553856159838161038079161760443102791840293974847889430206187352445734526718784642670487323875657120398145536490065540592535003420762346399579429888060084343530339243550762031973041737456654192300027770129503126985622520293136326872256699662359196664649534550758447899288123955422872817309879704346503462068277099019526072437350285091829908482644719499208224603665317368110557252733139127040397705518547515408135014365610273048049489344895086720960965621826517285010434544326267223153407101397618465386394019155880456202833844808467627645032126312513245701186881314135459798362114397469121065167144209701681772749955434333487054397943512673297296296028420617983105646180358273723169767070899221762640002322633598713452014261411543092756572101981528514910705193116209710693882749131300813278782886283157722753898981815101324008348720638601033435243484816582954067436442303165678319219759320041218749659338759130152724122378196015210277348835438239623567821537286352481275777522209088024521655347151267291616302166049070180612750942976871069511591111552400761316231346783805882077715813266582841566544306375511883045206080901970003213754783009633936952709083595810992914794370362999995516997145556771719697059389842816064251533903753538965395037632987588701230160076253659554759657223131686561090947931040719694111442479601617567198497167439089733797485814844935523553147919223253040422648154289428902502283492714679727169609704985927911806809026054536398007436780016701797087748852545248237289415230805606734971095485348932616024646681504909427080308631896010068295567421941671538473074688163847660874957345195445070303156301236118871003962294692705335319822465065273864101854764287357188064724950812218671357503419032554479817672162412620452993391133118210337522305399569159602000178288226447075486230890170476636249485430194126125940881421908572626438327551872136278955029697156655071530488193788294448301276284292244523429785540777453797852192181322276487583487954556190262260038370314805077110463424514870088823388356705346214716946257226201294824807081542291455493412879876810538329829214251463104458342473470272343839670640189579408610644541976368783017551177545687718636110162663398736544968948637790052205920044119315418038390769159050367026676474341653158871392267974605222179175305786675202615325550160826696819757874864267551886850214377735946104150031716399633800272599275391172717651703308084856999062861514744098434405641524180427975899198710749916032505196784568770032589141401446045697088610458636845026609613198719248631323476290044101136873789124861394072140272913866035955819900911351342434099004953752617037855533528595085981904543007265324410402351772855343023180147869083295308359033534018978749271703740224405113940703057768302576230125754033391345455051338439849378747884888502060142874675238903457771508765814018984425965313474047137148700295741389529250771900533691270730358326761751763366397355427197281664568391972551199119603525207917008290025050107140679721830652251024442314235160140865428928710924353320064513084756013095014609757569595024586262437987611649494536425306833725724986695680403527947298239475500299962401757161281302762886299827901072576170590856473443752771581876202968672959720834495717426109124494561405489788319392497450614963712573360918881339743904691169972175713454832304739810437650375301408711734378742018652303602308725933368448341817928502011371355433786934634896058182398252857905511365892810398973228705443561746073363349848775389178020882323043538835345277678525400517396861279712430585771238817928054277730148066701321194191567348866959877935756013891695839368736469906747454947858422842691931546831301533720772292605007826178359584677061680300535778786610946530302666196761666264127505585343230758866351979193763732868801523026716987994479881587233845459059093963072731022125700201187737804587851429199998588530552328775676130571150287236114128685593962559732806617989580306945163068840125714697122718643963752251229949835627086617498763354661732765722171970685821046248874160462595065436470258442353631154334831609978633706950513329464344347335534435709858417506201117232796562350111375850694616761122567793384434150665064168319263210604859141700607243393173760954357389967039190948557876741648496050648821589933635267048410564871299442765775822844653477930539420142897302766648060069393312923656154103267810605920360966097808627710614805264369854793307947152553092464363211685684155942393058649888941994895742846916938362397904226389584158092801662561926678168774360879710782400376227897464551121534295913793030262808512558083077313650626496954041127315502021839746096898315646124556424949078897525893990139268153243675237865182971480259584083941678148308189642143152988190494273018704677583263951911057866959797652258507206992723557302957330118780084312262237334838645637440654201978051466163900312373645951644486021894620260341989155169524510339092009547867321875966644421788533218376871559128168778851443703661331713953053375903786578590962613084052669223082428285728396818772421749809090322167668258650154038813805064900870183427039472194885004978953990271382288649036605941424159947706631744353374038623763188853888318456406789874802399331997635879782421598901340048802962787853053090958069490724494545920361068129559622305613912935294320984535025272501940424961406088521822342029330881941403983944191969978892626048192600002441049997208994620985723106462317047767330689648368162442572813136980112441473101519123272890247744892434330321572013595575026326496170497370860008087062524258994592760288328862064874491029525740758377582056752112984781735096597535296205003641289401372805485620872373457167030585008276357988241970803271805698895559915545413504043981269270188380375309885937409897072027356252339608343562250730745134033470478117543299071445441555718743879022096818875476734604766400055501912314260864522149234159591813991195425034740862431225532163977799878389650272200983971297254096461736117018023849823240076110990185583057531652365044914881018629330761868803138728167746158862719609227224090433099017610141135670048031299171263245405427783388969890334471326209054435801489839598963915727197259751760423887945053585683599478592342840413203202950562990329550831746128470187045024121160134928772683175845992230891378087664262440190259795880471735519598560415841259459984672303533853299036346249612059538648010516261233627483405817692540821293520505024767245491968396984774506857415324276653141769022186967791568076629004687328041111055801076484673923546631052275180856570646650383169323629237530517263630870404516472620163383096691299837467060717048240821535638908422261955332039215918441643153435975993636332030852590051184649675905716290511402963280373665711952097591387419061054763801367161709604907634180951099809910057970485644022472353318326746916414422971444104095425334226458976775564590421706669387339210247075577551284101364443485702148271563501316883879697585216258392157574762069368639594631392538586105012486153739108726534740878155068181935520192500592489612303233217134150544238982167860505353760453376974960972294312008371267940280224929191631415597022558939644157808307768827413730104829249582449621118145672110451491711606651490235112592692189422421529823697074263034039613130293421807273952482456168191357268686369582482998623176671592084541606240757847965115082848275021470102389398558078581183512712530345301389497189414481790828252653523837591503310247120318502724566809602878051988054728981860749430422667119520266862980119989846091368994150432135330810757940757164282148877132874816180586804654414382548866830560841506982561892149240450707528131357845727856747999339065041506550281485122413243858552373870378929879557274378051522112806910273336601545892312875740910109035649395800929442402036844102026824495201896666046789734422086340606174122043939995372125052869448620174545350508276270358698841809319565356815215786317759738442221949424885899888376796414925023496609660103131291753061028268635562652643215414008091460241803793532303550709230603577080144736119125081746563891470769687536368279707444088739083914846710484078921802117578593880958373496637322101066080166405838092101595447150775913408865607844547255165754535804215558897763945416970929811614365290579836155714145999286612354561247753980695343477084807862091977136595061647599737512247726542967410058875621314148143724319118449198751907009636093885330607081613998776914782783987424003634407973215209481716135060791461863463938447606166034894652939590311633025075446703734932182247149957223474311650321608531247313919063817058681985030229749211896736895340012776149796272455721614395465157403747017304384410434185903685666125576527538968227291130197472898696216798960107932260658306210033287259540365836008707823905486920308727108710376031020738100183844664498480243544709757992498486713375288247910995113716397517343878563774115464817493168909679930525424511359304946132906206045688822708420748655853530795418361195490194607596701445939697111557627724299471020006889122397829528555571781696603434408333026991653804675769021489601706852622280503558211568864381536409013527638632988867140265218511787097619994957430993677398864645741599593029768088169350536051518929196870561494128463429678038737065831831516090433658806878691730273739647282573840574422562368932318629645801831907508341102838817017843754169883761337581612901095270510244232824944718523444624596087455485182239201403600775770669184291787571149760563880771639011532837316154317196239097032765710769447195160474512892592585738470340133155457099501346120147531836581914061293763413897180580544336614640395408634028591820263915117110106730086380989102276989888060617386810610396979193944722169515972529618699400796139139503462400873197334731492458546585474338757540130558340130207998335317444130648921039795149204502108131051448665114706136344998231427969337844516279603278794849574505489819957992556887775387084213494915545804164267139502618157244704870601267986008861762484845985862598787341945723865039766913869428219456713912085115590874366879290258202050260995606066776307104979039498465594790500623705596015063566531198360089031407112718672813070999625743664631057983490608715654106322323424365480822343547471710689359989036589450655529163387953925090078205797292072818844959204754164255891189905247524704881681204195780571365528085822259466151042384054399184471912249810958417587431942315896453170638741774678452750603757733756446137391454952525294504884462654132238433278618849151625321899131459316213649043258699789874987479759432918220382474750353073735061384337938988796336055229568323556091618005438231707077210215748903074450761845818342959927974825304644854157096670797262731411304186194370432897879894059358384816528611034835115317494838481810784130513475150028284717486599990293398773985890896592143808394267251711726118402049739239929516876401052500111154756668200564692479941221306788143964538255411715154765360975502604248969196784222262982592142676054618186019690726907235264995887502913524236793237501280582874339338962656158033192643856073429538255427358169541208034929160454366929765679201247447788821359726502313109823692312784240722799255238699103130722810760515293116437879816479025789352190091457872829287142588659179166556885809347721518855451744595752856060246558642502946312765289919012279204783497352277833418611722540309192650642391785737051152854085239116163714211822528853618285157973649546465647968036352140677196783357200499540789805370764770991242110627285377162121289560012416099946982623479284485749601073862913574782617946167066422316785074702889578764790697032197194932791187837051355409020237794956904117587555226711815039239921424457256985154874291236053361184980262866188649836437700161517426975107750366878643545849780468537748423385704461462493016617917925841211834040537629942823897559466113406815288632740116933868253426673154018618040958628088060933071540101534239830156663383121634625856507885197618254020052885606356298359870116633845973834393860811001671039685069318739540058566582908661380736221735468885545088182299995521673615435369658424226035870918511811654891863779685077955145464637601457386672002045730057293840347402379825881543027247611093892239562564869639048093772744293641541860726965042622385398342517037575693692220471879206075727316880207833081350785129402074241489806030980424527656048591316007394815852790451242371958209969623464796020087649777671520594591377991088799941190139343121418544701886391183086859770353072173848274741237053735917395633526368992589146907097338097390996231078382672745996717235197464684972927334416745144545373175246926358847701540298313400005898817534906219318127281027472929727903182325315112761549972898922889736738883137084174905448256681272514852487329264047853445804981858603590339427800367249439469049793136945184344133810954019665620661852215286906569150816896917531405695272325677110763563938517438415944859522311514727890370022994896214064779186781978969682460878808814356934852560859852873130971806076858842862713560116744204596493598886412681281786773364638334032560251284802967461332591976111760807503196612835808526650079092730518796455665336236621139423379661229585609851228049889615341649504194488084789255752086110009393420928465147620248659141979985715308695369886622723046437631711398205600846931962956304437563407572999599555597592263624399275034674607352491947367873832881482913606463243487335506873761071249814558037976402314090178115375196557510230936613215103354860281603147044845482751838092429672576273593023877216348920787629856758971093108373382986500984383990326887410924670509944653122926364204583407222759755404460626393857503475968960220667777954219136004248429020868982473296397512359645026866440707248755207313903994228814110386598542196088501525697524627889701465156185265630557197853483716987724836484194368052126670017227947445415554084490922262607363218041110154071001424509830979710474269777482145227662552829056668932963214211894496639191010641440439071846493197283292424378783236137865177869287691178952188529032469777512188882612858373913822253607402953978226847233070795197487522559645354675825890357566071071850481375617827101022664752262632036681972726225156121938896393813187535687963979674190624210141510400240895220651479844089724799556923552368000757612791074197938455002522602421451381408127165282802883801487704326763137181512569578962909393671190275249305497567754327891293305066118434142785115921966843291004570459012490039516937015820318261888739082171655796459023411008376206743921777616807577502899533767316824022452915687456434328650783655858799808017830411445398378185629195844432922202459974735204494222106513226924809854630506777945491334046883641888291638079269229037954664623717663832237406208674495564884958153245318464768122294150655981140399271212025168750419272252730291568672240118743595946741717511929974487007570472769807385438777084317373595435761163934629494709498212102337496823044798683142383618722633036364465276282272201684665760296327254759911711709933640317272353415267885968957243312889076022308332011347745228215727395093635191034126306634800188932619128037413397991860895040529651316121665598968649922792066544252026130925679468487073258253887262793087377442897846383876243796169904793065141122548240681861035526745504253143870065739048862847866344514412164738350709628210539695301296965027134797323345179355167837446650269781996339942462349233066084827192435127999602162139811222188507529810734997881145114048696123675931495036129956065212095501915910196131401625334211280405959461384560222454972879998154875606571930475571546250171951080390938919225667061777605900411720658504915205412278910937919045295455302406524652846197713852626378772626143564703727705973445442233133529236934587348783584264621439401341363947918812790522990135395286442950292369103610228047165050224358504642063817282130864884694627348784206025467913684783051890867214174662337569717302397112546026025418960247444676495308661149905892070774477355400200977065275984183449285717637849375366436995163910393264012237009230178791309038511236447641795555989640038019566570075745508114730603710314298679846886940630185494144106722842500263635443914218473608360375301616262063866928480362448670657734275863490084054379163075476422399350930587737305218275766829925046979930897284508980789032363616156689780239488756580972337879582249928351831710134253187766682196606966623147296444376992291876556796836091283173430237713635604114925599801967594669988113957333415416824588775115085411018278642547686253687067406250000825358154460600982739966806611845087956534260176388527064432234305667102616115518243130461985352782113833657460170329146915328684256980591121840686981408855069656793603556448188530785640921492412038165285744836777269502458583703656178538721255254952077923485505487487281896653844309200562348486242496281535224075791934495565415080047113946734996034484978981562576726993117053321300115574703770940734143981263286148590500177568985048245369855335822983097480061608232719941804220346924512813428008288923001844098104529936492546075011475229595578306659661349238379042151193678638901699467047171397890684153807388981118390291230342457970239727831070133305867218447378165608573871934594151127565077703846101081143702669819184624516192207580082007348410041564061379236869623373334050158985704849921882205684677510265197666948867977278309048436319102927638336394654908111696089464585365222596324814315996715971937360212270897181233423743930072734998165795453469894858045789902476071500335031508074621811981839780328425401129343563022509554854073204369550326958291050026919157467086421575988283232609524113990444006334766114967241649425426506970547966866904082315112310151506320523937341851356456413804291495342140482601349405417077465848619915578319244575833149909349342826579149633573014146439454542533712427870123174104619253666168301671081753785340766292976604292583216818792389309804531823912733902176930832034047587313178378041591455666075087631177347036129138373342635000555335197758671984420304625768148364727883024614180960035141207243174951145144540802772803131627387690708974785337029584687873909266716723438733779804072819128615546842109042016995787566490959742726363530904169329536412966095768850501744703964529877487579123732950585657526955052526984597718794493109295002548098084528392557877758600583602296309148185398607946091980430613482891452405427388794420675614835850179987829710001505378106262226875263287033246482607644787005819259358660623798517469129247341637624511079221883885244155676641295917854214258007852769561048853180048241220264548502000771086631879348040250221087490687839750908317833381786766883421900930295870836407895390412337371699409999470696080085670529028216327965544055663760706515912693570332820870318293884630914186189108049418057424466824928866498023847842342481206303150743968009275273017196674048559956396645165048181729851784742881129630474958289803681525977090409508081547605855795667888151432077234271939503133517773131672075982269161728110792685334112416307038905492456756887819689319208217049414245571442997493065722455728846338699007042004659662440876664877360923809344140811353693771720784461500675283406999259424344577330621537595105662607701528946434826937464224612935665374504251870193367816494724645207493312608001538392140378351835006249206235051452799318907438331600336430907693292855831110082556543442651379732867829885730295498198602462056759964042482103991520579581391490753079486460105680807933066685249753099854289982445268056685575632409252068822829956868275966217118482029802586688487674199572057299768615474855176602719885422710213341109184733011912790280432098802118460840638935735699118204147077853180437213913957420743637229983414902915885262553004743888818156863641538966117677316677396240918333816542279215956929989587455314397458936749418505157970655737876550366567884905134089676239056783680338646965270354043604587963594296712776581574387325056090647001081659682349442274145028298203917261971346024290171313094465242997566633130356690081262608048646160572020998513099329338411206381393275704946031969481466687593263958167016593200803868746837981999300800180084902312645025385695150433954426924629555285188777078587579656574898421471554765730269692462020202466427244999205461620543215726365359093926743420654412772748048907600014202644852625469017129191854842882617146536047837258408407084748617868237585556421132888457751639454299072000995212743377640150143588534307826318787624337839040105550053934784022294365338456245590568477431914498121729660243924623610048336685664846435273524723305837004820272291145561473882307184256368042460941275016375792847424362690510638488595776607445044478548240871346887478160835912557089982850566051990073634418345619220853144082696818160052279491686377955246152175677759846456289528585186995940346683760629769804667241264256328741890160130539363481807401811961213614241880240817588022766480741941288985773961680871734117496433755651910669918760465841919918042764905560467609688846852083240653480895306025845927493768835371706403660690333456683766816215527927392760797279463110211045675564052928658540101076162618896216236576748332639133909065310492756610956085585398960569345018406891851148062292449356917716039096276642080734370146030103887628530568243884284500000515839146883476213753403083646199939077664815420904824860145001772521612745845839701081553299995664791734222091217457512083542870012547367237443281299775941508713497273478433380265940733727102557897728351107129467096130936398754281791346781236853597194633485410243755599472065593401349599685103388171183252762928640288244589433915883958787016860710689309247008011123620566083999946892067943862464066752131465096111549973565590024109879247234509891372802142780674832318779046904716520996581163320184840673911897779067378674007105876615137362346823232907629465948918670895274894124343039962651780277333161798827457844841175367897158226548701136173548596219634666209903869099960581788778834277093794238098586767263639948321663040979096824337401463746510276075124308380258460722694797285347235217766218069904384247591294711742722491972436151768314869072216322662955613673754808366318058794531414430405209562164259850400994186282284815582780919878930900995433197643038698934734744989862211513420161691616558217932185351568488122135351041959182841062757960133368219749407926747277591955090599462366890985886610755893016152682741216212130776630971149655530959093237254490453039683528047722847499340440125029297013184331748958287814955597723352294349474462581724605583312261852975485827578398432593317206170668502012389210472777545970425823353189182845051837602977419140042963619305900488187817107195104962501694896626117077197661595670977443990101000409822851173119282033934292205013235465244902111203400651241743281250299121488804551318911758868033367627435384011793351860355853244423597882408724950078784274403265883683456678436989767149618681561320411230384456117009850900004786735033450541339704093800049485064807821987845503195478170349284297652650971821205113466383285388083471304142192275900416122359915544801297312555055350861305890347100683543087225164925847959667882094122591188237345739706710168699167628571891124564121555837726044207906039978868879362048110756819442992384362053952938495673923905969672929199631697014349591482664190691492739570991699103075893551795126099281234525648151273025633717628847354279258906842388457966238348048504053301031621349361706980553119107092814765231558089561739961540669792826976943511610558492354857709821386076480226211525236461875278986000717028340103567499606189672755896055532653469572391375279712535989179033780996497613908844751650906507350131637400651803274726967078520122949785594006095220836999500622875318653690092089887046083291564043724231622202954248885054700729626203204407185424856342939371711501444307840998999065741752983367770542988078580756957873351581372926557401471855786882969242728457887026674801522494508602526755043906160240002916940144834329487972594259986297243327945136695361469567541488150727329351093943775499323863795217028760003142276049981482839215263107044316232452437342264321301271039991071114534266282537672840826959704364608359673524047717083305044421512459399475618561776462021877579585594033658220536961549971130829824001504324425477563625675027363491424154139283961160239264708325413218202396555062544495812383819761739147726970254189152592901694161732588396330367772628422040367475194276213060382146067177040646794878307025849719767256430188016495721303941348655481176704922122693192468937107037479143110988564043378851985108945555986047797282899207367133235900167872824350601323071694998710269880798206915618417115527893907543698312527918774385222596501418162898244351649926308103554629211698316568523130997074778325874184199033969726110625345566185748911813616969908540779339913037596751232344234459425251313351493801462796670025730583400673406522034978411575932408705123960793875817018029833323541394032499377471294004005738129881017130574975281171764339161201508316784962908714892376247752598929316540206170908393109062620328333019715547748352088125426652880292203654424423074246127009154021225368403825316413452241051851770217142290850365474591027284040249272967142415578767504572497715369563017112166529594827178919318536347639733917873297523337713559092161859782060128280927299418256061124894551561348938628697394493591373902768103656068970185942002810776482707498114081070006266351191372353208953042142882654908886119436114816257767236909919413325687518004239431967341627007461606211070151443792582430444997115937956528218433719087421887079549535500013295733234779259421837805424216817111798969765876902284076543309071655522156924133989263869161800483180048073239676643304468287651334953023494164088379667887844039454317537742605477072600358180447435657889101196612168823371236072479296426923600533301837746767897818958072942166620488391425378367925160453860037435208722227540315321533368089516375866366258436054128610179906908232027071598043235054258193002524450900558955134124143924534095009308918107793550447290727513034882746010829230533896563969894320688133044528321151633687578811528199459694420688269716943090410778795053732141040899107337734995471946813350739601183828584313179109594879484854458246935892409676154179997106421101536754398017714163985947384163647107298214774671075335294568417637348434361226787916130343657124975297702901429374596528838618210584808867528742956883862601705405834718744277555075186286260777510909645505465672009250120556216965804611664935869272802652026192349002257510762203303930722470113693674874242581998714072413955498852870356013399685349503030897101506590828827609088756922911183329941672252785456400316183031203406962184709726172907718323163975943432641300169126649526317503839438615122361966298718628940589524367801233810360825830213409687246063466593073282761068469846814660337702885707695929485646077863655398852272184577498819705944098794783525041270954271576285752292259120851339286791658380488753858621911958213791829655593744967998551960206876547083000764170800643445490673723741583636270518214195379158499641823775929524271301443506997086900111587372479021464570466399562265536714267579190788582763746676716106661748271172105908698570906941942840344692048572345840153447740219563233928572535514973123861008270267912833490029378977860051000219929684681599636087989815205527162094797917726750077144028447002519117999589796474767184717597759964563617627886849122270805621640387098784938567921004581161083598338458346126539920318610599777194956121571676590610749275044292348367968727299628198047318736832655724016658162044361145226460074261906672268596864166501006050467056832754921921833848918066182537222373156039093661082093335947555523137803483386512293889479543062252270434940633921787104431173648032059923399850732938609855141297912381869773979189990632453584411520147882967915935037155121709989625268173445909555533469874188635679996680759781980853495126325740571917514138331302280541036401172419238085761990038268134565190082659623949775756734826942671296863362805960294112222185930536016272436495295316935658939925271074797256551235092713143832653796994348686497191989754589647204769113963754422826570244376940921651037788034503876043778003854038291840551366269616525670472260639796620193859446494850989562413963030357824353452816146142010829651991354549705727248256570166413746765101253457941914179062953266091311413477584761569189474664975416265764711438947874224224601944726761714759392106423301929018128700224597348927621460493043239341638333385421056531876124726856169891573895480025301340510564310106239278048578332873435027769214180811600117434657824871613939480802083965322687367397627420785321315993782887793276086652487657430734121459754124399550389139223712535801425902564438817381923255554497569573552452651605921996861089012661690393282755341323838954746054085978966455523207568306098648839253177324137832561419468158966567451617420044701449542603817086618181111681949460589019332460484960257430227011879090999003175192213908183092584513979889738878377492852493808990963846904611522357050255721052977169950458582598713882349033061304193420964127560318431174100051551757564553776695350735424229182171951574324301715293937381518054744784860090525079311960855307931719123828032456090275763896385460151999469385130304344290587520956313299862402972007098658531925689913746765123351116767618367421379331068529565130437706675599438171700117636280021707906790639752646678011354309801766431897287971130574726229820342726195162763741295226204778982292004674847253381738389632828115872814247635238002593449195017316197115204752579760701324660610830481386064950716922472186650913252520000793447156622086800914854454158427299420151180422381763786611758975768470367863950457323949448226950349394052759530869519161512972136801529834769110646317759495123652098254215611968183010119895018016957908807428774537358808338277449206397423305541432741034663957083451885444875351178790746695024111612280631941448874155356481017564866177445193212758020779128578902863776744510122243996683990275307895399561443480277307261960538899335219609669012252635740802745990727862695525541836648532711568747771579149143466631990115718716406402944145305035970216243595683896269930504039514404596872890073334118301543214950540600239979711526684423468240853355128630302414746857047699806601152643320414952788348815179836213449713673737296691981139904337278344682688097284626471298894827385765351728601815605556839077185631021307334703164096185547320148200139345036635839759165418887537215427867078603617141408408441305349526262721387935451529213058427921396999731027848934812318656653217625067728279486256388854813918083616250014907173177010412919689595057052588136408444615273303349252061798370218903044898076868051968152173035631197268460955408827746865811734513547299566715091143854573092805949057526099437487769336190983536031888357286399039453068363944811752375909115268018303072404039574509861196468967912496381723003621001564033833700413987790561186533434896536171376256748052402933065617955998655012592637599933384601658544482617255824911453610089238484892777385999685809793997847044642665567958286724647043219960228877324114823527197171343072696016610277510843159974379872562524180956546843023414155370279160054668794353625407019446859356970612774318688743113641292464088820831493733635695738870222400842811272087082086572721702127475645756837743795720107230349696571790430060191017809974075598477662238794327798883169207932972922433141161002904123703840892807604105710901414623366652690298482079225137600932154082591675255141935087221566269732365598168354470407762672001689190854797069877381903487430691361211441599089493014229557111963190228706406145312957581769478149638733829807513309199807464195104180010294468012735401747361115982774303931124562309325487361685044870770973018418622258983974064779298442912913487523943818898668676892250180549339947563134658297908038359217265680174434562921525927721926949581383199711426742752400208739292448975525080168267333300594507678113516374676716003374406277392019680608842521517606070034955588909343337201500266484408411306418915558552094905150362162949269609467705677778842055094586837300574816007787105330573018708605141745879067861902167407187854849794830537644872516016738293511453768307957290673606097920340112343352367187385054818590387247439075452628134335159921968244361149484633201821816845034171092561552056747735200085386477010403984421247526190311150279628948925826477924530051996829697956501590746085367982195987699903841603623898669060840738084894624673863026783285198533277545691165944229314365324690531952936128815591099708675212188933852678848945018412448981381998047942078035127512854958530279854070589168072721676051793788010475635536785304967891952647365722042714660263752265053563589344697638331669240850166169993119093035771265541554357631384811099004668245497258262031209800156582610383825475967017768338242662150814180672284825227470668647412867943673775658741308528262403035121116982188909542614859547600424423648698048252807107321092198331472246330286603461832540832537696359622949309302403417638810471014771844322119662690017613384622479424889630822465279645888859247762174772261122126549028475665556437445755845178574061975553640216548883993024530176117138950814534010869253348875515202327344605462877113159884036534554716153536650494778807939746232399981191719766397630627539483022948382632772977950887773132276644798121868771796936329461516565389748379145601078458484685437051812581936534226228379816112844195563121667064485131644368093415544450182800099493620828032237490441084370773703489458473364717246184796836530658972261120564961596967802045683196220336681208803603775931911278353519319711389112024989297005942043927571507152356031187635902881456963599549601025309712695482438087792957399472800742392628146589743254318594758953461925321818088548574874020012634302556570445842426049449329020407835397783198981414652881035434442249446964952116134892347126791765084462038568757148897332808044534131758656427198788229373218196116404738929020440701415146358227068126921844857902052919504320616183421175987560209321774312673411593233284858852214528945740627165749602203163705502718873761304356341714889298327466441065602426017739631163800079398157229815683367279909229953510492781354529888311010318984296197935495785802742345066337201479213159898926874260167007815423715491818984573613947292917426273510456565447973075203490717493345197062733362782705302666908176769147481588887809354093416903891065308506838642080906527990232461421696476031059498343457013653643495515230937317697203776986959302326735383256716094694493041708567414094820286377719683091205941758726963449537574699245357102788849484627038035990426466953180208905322026609191718112310319275119196103723702986225736296133068583895278996258957138369697831134984212641824544403405608899532441266399093601113083958856505692314427652601386829802052818459870849970674044055349229678619098812075023536073921536062540181571442239253773876022608574635843484726479221911386015238795798873385197242342571854729688893335254715073009911369045102740090068315784015884596349911871196751902773126478967914708589109902602508726084901675928075995107215444880436575548141738756716335316998543165949252865433275030619207852280680206436044088054647787040514398488689148125289683943990385631583285683281537266511880685237191540256839141824028273175427705809657033093223906725891982228186583869176351129488497313101130291362231130518178232236717323834268023778768899180218272291756187359094754752389601854189489984651381660873915041938878561186470314695305078102931985086984442713456078892796260498089055064015178971888530094344974787234465162837570714547505327461508835582596963553230027846881721943236032966472458116286636457681802748854817723595042406947483965350825401551153865664600602827071937818560943116457974645962865256645517671568595055270244637095207808601800084940153117222641100194233549684663934396505177673290855177992702713296726478394065034182338322499426765537596690851814609093977239718514290424026007670164011803882113246760697993416409671722303695358898696469601846798420726277533147499318555789641326410168309389083177914764987478697139819917995720845558451481038495741040127084032671960387600228365864978490283768861839963263507367650061746914477108646830251426127329976216109549994078444165084000554906083921774661718604388213933510752001145798079994793423432505713482175857937043244430117732373156426391028716484355840642903959872823780439483349378089289023540393014043762374589661818942055625731826261968901266565003472324052457708907938955701816247020731338043404820231597897518153176807558118904163038540451079913244332139795979766336575471931499804150985611938021678324571253327895407988120935635132446282939596006225669318162894139378161997630694327229993437472601955028344827854375077925534316682663465123784524457284102786037248633562915707482561563610873343409291191426417629988113226271707541544048049343576496348805257134057974485892281971860422217782811465636481091561331363147673912724072928314744427623851414102706214045999156710435808029146832110221481196771149882360567875142460757915068090091783234321896466658952320756192470963394453561855305210409972082662017037859727649275087202620835714391245414073658714656124505585769173075988444038014202783488410623723556220773274028832744370232032304317298183186010187651402667848061398975194306243305346077210894306539624979093059232323599918662497954818076279542623269825630511893881208938794575958802503291141217236597725233617014458882511116824764976124181295511574406274728343536474871332981433437528602122936770773906593975928517135953988835092894270086203118491532640796675966744285103986476900239804980291553706042414508134605516328305199542286257016391002019964394203850108316891328398534195728458001947978190811283384607688537557845397207361081829056497069208415697873874175336403694057096568798381905966948613476067282357962431847061225941621818261771223640739313762319332396559189069506364615934284533686100134185311446774749348047593841165806691774356609575899150128963578580579322608545121928289410346786373521672724067337999925572590159294048518777156788705920874501983324777610798883967098451820785064450674944294420331506524762244934894538674646532131030878901131249574678352232960413249469677542828907030308870748403606588717679674976221694249792981392566220832316402513421559437408631912472100505491090617654427047314563166977598922763158581453570194625383763247240581780425118087970818173017226151613158308903452352690084040783406534186125514343891680519621474987148799727908948959349519520564729685236740396611497956056149441790648309862016878448027171221191411616084574509809935767898765792853530694368826351593878393868985128867755253046072545684972431533118989092463499996016549518047493644288450967537922214388307033969439224307682806262821232234429149747740186613929979078010060233030422210853132944309059920104247666688117386427768248606867014397357609881218818900213425839863344554061410501162305142361865009502325695643367875637903381773061740739272951397535783311456894765864184188384492269363646939359538626693442337613148581078845101865504526798162858091617082630396685432141258992075537872589427251007226187952712287527815581085201949654220939456245947133761359882751891476647143298297814352258496417445247622078620716051943090457088464253809975955621977063843551524911339162241058631563723609897777462151641802289558218619543035986384801397822304734488019963783675050411180471563973193983775448222597191204941984817856110335123281907019746648886916767429235227551826603192725458402365027595231902755762100754456060572201164380459368126232225800828648932304435376577524551521368006549489637067041348270013324136044796467224307270312218650237614980456350034858966156290948126313235232738491829457485389450000319476097152920234636804270397040689537506556733757041051956382103878904844099098601202111807497216895070326448197736342437958662707985704093547762943276428532079634445930272789772233389848843193917850778656053504941403005831221248480251563410863393440516420091090519298729329487390425666406038406176909657979806258475497546473919062695517191916513092903759496922761848329152286843567643565900319083688074559159332570414883578503412450583072249491768491345691263221485407341657856820227881924369559287783512232229291755755260922304098453995350470648893848216483876601096059930890160863138603909683268759635755378975464106161731875006904187008860780881910940562231595134006131217650629728289190953866288388912855929017974980378563659802487413254687155209315084615814933621892808602374267231063810851252642173348221598601713913350896517587687815665424575309443320860243298822434855729159059498306709447000329753579212568486445860794233552264032878797762959537423975669091394118921118830168891850473628425880608056756347585260660852629918704580960597657173699291415387874927888290527775277905136974569372366503224288271852901254549337333257586683888090107062790261370347595331724525354696522138441203859145004454639772956626548411568209818436845410901991876016549144842900503506313032020760142245859272821756974687981314582752738583543082460440584727247499157637924506439744533853591651186488104032873881187514866646544142351980380096122881192847653828884072755938335562669752942408292988752010586787143851059536158981852895595920988274037412115578662158603621714919809607525972135744547618978364324593014987340206211445425227627769930297255728391782977046029097207902181694825024213706089773541009581494918279269539687398531470485108882457059874683698600527892740357273249332155488737630233323026531938816156935023108549861694625243956236061120857786606308879953444442795287347972552476330991976262947020796709337086090712731309939595184809506097765778148716316337669522404707718010643392026584384644699162394796942373823656605338053895023304175329664174803543997890612235644484173370791499521463621970809215813080534089100146493132163760948613570021113987172670642781867930708177132600027629000947805219972251429458462851903093648556504055687969741403109067558865237884854714375638488764165819452732792476476197801546588514095684898796051190727974783207008822818995170220463650231918184666349354363150119696465762278421885039356642439633875719007859482845209534563179099232905566022834332081610948169642597518544691391180520204259967441646203229521958603436313978583475280323952696449974101654215663421291628707665405853939327159424131544250720484933241223154012467891227635424443632461873004470174700821747806448936167920392736477275988888670416226331682682136111319984719657527594520649792225127722665716002993628142046599333280355506546329341423570761168472842250541612221993441054880097230854200479560645906201394000115059927537880612084722653550017266925427011317169892243312704109824862502894409639180857364671118743044710959212007648738882632781817603290066992797001421201157643155699115503812145414839709783675662040800667056867521813510050378662485210434433600417371021141033840643810502452385672115573998282919900868614706675481171591810398377799227513592614839645730566310458386734912653927330062865953209327300171036773203741232983091178075187574188265478409077779170483597409958687955292118156167723886972914079576935922445101973866617000598206011984502004410310721701907870804686562015211704545222021772944723755633672625142196828674303810555900154291922710195749469162595100486029426965869338465718536462052290251595989457429694806509132132648347097086891036729324328361233370563772019966925496270103792611546590002430337977616314191304048715506873598653958563816593424512746834914323583387834385404297895090571202221997565284506080314684146220834523795451417055056280457460785504160744946621274067491528588033348877403206154524841691708753275282491076003712836168150495911850467350359944980324061840688284743293718510344066607529456216082641582178129759538307428021768416174989217729315027633677368462567426709374561909667560028194161180318308577893674716995401323828314823744933680585819230168630501258404480171056144465980198093476822114151614645355771615419711891095945223567148584054841184127214398607790599237936915591424073096893700402121926741040441603524500504447481375392270633987007541636449820358300302721936667836240827075803424950240656147791568068150802689783471574565003361407566728265390955516465982245563996546619497144778098752354300102423587100455949485343116425930454702478609092231097224771632082803972745045674224324527253440291227764543782595632489785121255509495252451165528787962800604298683833443617062811838622011563441178499424948578621356218146750257685719220706799654307630222974282266417727999196898826014714145877306713736597217316981689282468648367851973855571743929321088065349663403476577103093877014111244572525978214435154611870991229688130678719684137647363464866994961347066292362679672795621965475057441313582321178863922239106884570118315944945206520403585792580187245389723371460830594721598980603932592331930485039230117040007671024993423314120423082511688379612284069036171926883368439754771254483271158870612221326570546224480751239338475953860456364436573565985986131613884329956343099188600881054615462230263941214377969992305080275951857444978042537039886943340634323733128302865971950717184321121792573584039253501016877181056198391858072305303911883843126210206362415827111140813791801366173840112796881798300562520051460394326512177336278287041674074416276058230550956164794257733316700452914626988308321161792311312950223604211983031992739406403050421719131122579026898209170912683590477465613548054860853155510649843063081238272045309304509115837384964232652968414344536603239413222182792109820912736094163236916282671329172599755557182155104854086580369138593845044785542653095949920479480222541205109012158275887680598208828690336911286698444714787814575383906314207159789773972133011362888164575526680737188841092096072598677050485774359687542254804898049769950491415270575893630581465120631381870279513120522201152337183999173385378587106069292860952720247084607155163205050567814468503483184864777455893832559436120525935999914253600980268850700940770059001572128796253991016321089058435828075502453215660589330112532867820829305737174115319348394625122207557797898499415180147906275632129392686831676042160385915161693084109128151169875691563871495207642769225268921034579943467643045383798620974558669428516784227732349362268966913689029286116624788512395218664270562963569132026683491399844058299643156420316636035679413112367607977891724326850597052589715177590169850468960238906130331405818361832373805159540045158728600677756997547728768285197972720185256471890758298983885817308785104738312197185469096527146044261455806817868555853609619791928278939370882348169917615776453007311370459445172248593975876001794283534712631867349888818556669227346647631195591330637331673724714218742695853166433693126190826819994297686061499883017008378712685592098838926994121807550501958975535384070863592213240693167418222617051318382628270993600493742063846664381602109530624548102062499545756925924842900740120009842230122744602907306937739282467569827466596813393671221995438211699746436800816047551167355756190597335058252069650715196495146266682069717645996990518419913865510289197019493664222665221793771565564478234256269467490102983069821363671195183310770869302874666361932854665839669380408404738284397469654014851824987277705804748431668047424886965096080596817186637589142135553331470274408750427482637554749796035014750770980724634081132501858429085812607255393244842843207358792072191522999368772238436282205747588396627360339907938375270682923335301470618306959359778622339859636650505625951295602859862747144053752519974108967229096176315274473703769884825914018453619358074761884881181792140844479627387233866892392267740615442428187038255719745036694460131404061317357289997699437679691082859573521123654072359928731686049996864346600752999901427650692439394879723760313556878127045519724417769340597875729087158202537803584577065407405668035566383891122728460969063027713493029846545987981107331124088660435686131740704090939079210128931468010531337906767779936080684427850080442995281874955863768456461252941495008891381936490553090838432089656013562581635517674719071931838587231495558080919627221005356760407552428663766094956484461864210575003404286491263950886207962615738781378185706294528489545757388871683387516646417690346949459527030605726643579954138961391486252003291064079461812774535684248133102909813699907672425354024126760540236341989146077748092658923124263663608247117793403270594445456122354848569055354155861274771437278669933784487302650453030143082295021040597405187721821492845794480553445886020579128048954123802262327605360409077821310372583411416545398307717796135429283696168621925622146317055771393360545571498637123540573848216386141478416280193992088868144688597938887892269933753237243757847392817417048782179330306615485204780715839526067993838334860214765676276930334134135099243511374815608185083488254425760417569592398026899017590750449490127464532950950015057531606057948228175269610667325383767567460028969730412478567677737579965607205522651251123747913490543132173436252735240500741460906284801543505249767006979103352034879888070228405558599267256312962402437215409919316547695055716232825196249108443663509094171210558355917323424856550030584658324442183876810578030777446843060890157741409632645566138777943749384111430461750026707836480156445307032988924105369372383759308850527181030938140415870106380898366283267179667183700876511015354159522390598795288601902416955937835733455637810769614773798214509774873913415847866726599865791745519035215856344530122529336893479005232396266031836995399591261563753141294416760875080108128850953333107824253991338697420269843673675167031430472923743778288210401674315871340385824093960327715860799398170495661612625300184409340198797236286721314796737551481235505979622125663706275324589030563420119134677095912024290904945478618879754691211697047587782659038581086878770456820509241356442339915555742439244326314591998246828605688624272304437210163046470215354722023803366604947792228032050741380589892280649704268677928545965315374799387478937950513654395729883991224659373218876969568601441924244667511513041167956460547026841946604916822730954476084972073242320879129388720736855467630400831130544357830923292524816751570245271355809563043560475938763523840923517702858368185450386177602442756867584607978696360677592556429223431353842210462084035765628289367892443490201670341479900229953876191409876799780172478253100601378782363671947120178999019311547597459931299339433316705087077116429170574674525569270451950734712663161840540867522759777331869395521426325091311673062968961895520082360040915634489257556790043380772026522446047985112906002711178186448548135100476419373293808328026388025794870491741217568252733153029416462958558877180736618233729462564365755062072561134338165787710075525461754881367256619437489810824837569658927513791926035026742259416286971413142632368103771747205476129224171993426590695275138097922793640397605676174557950571928059619645061089151032201811604163391455775452624860501639025651952400953153317526094950785524451966300410397186330095547506677054387774100821207859607593400435854841215453203924178789050810063821426068288540878851641242640985116008855198370555084752436237223276001276235863089337692367619477947414482931776152570488241464067605933469502381151928038670507272449144108326321506608120340342397291348390869112093944755731015035977310682043479091693915606431593330985501610834828056785694337332913521281707875835781188461554019241231521329700373883304305274344613197087626637201036939300219508342244232004387842254938546314626552938417450656605513087976596958920710302095507203490191247797767192846181760556560312258801593505439827185205952712766485216850872319507986461000439376869127826320292676998232732214591609280409984246691285503397278458692079599448859167175158367535041833430492007930793179642195642975844997120746020009768204870069737343615757689830571557286497217183850539922001707605742019130760492785375286413796867253272615079007562397809443064273443714152168059165446767189418994747621887813207866632060672854927452295600674309479769022607225102506137983618085854975322232778909427680458776434461020405439295148039047387994401407111341068204014137187346164901587661878336661503676056590197245562164505380134199273759542660242303661793980225035598250608357049603128023313561945426403629196010505755825409063178967851883455777330909457831469247693825861492861237674035559365135983991092517096155171075620415806397235943032674338242008565470999217002149553355684495823049498218495883494248278560302011740139808222383852411470461950222132219602467522359759607593126494075488105799342092927593890692112893542910056392246712005456627304640631984911201721804859154064533575204951489793502504450572808877998567154393918964864059228503787874490081930805592361690557822942138662964761918349022416456027228307141062607725308832000898708342226746548578259609871586770458127328674225356741542209128237744076282317423032264530129928486906525839756670768236223839855166163424428277804422294685147639759399558756561908368754868077463473405346089199981309730044036661399158960670254181378857337987988623324042989309824108814551400599120057337247264306046210771428074535486258586796550259090042427137980934416012258983362057950607627483644950193209302871091024005425989477158424721245633421975026994878012422907540975534251076021499686660665049227865913906698485194712644539941863104720021868363066047848894606696069010454670357364895427281536417479069903240162302644002564292042959744879790092991746671411693480924501994347655361928783578165115560480040796784684569604559732601990467717639878111104000495068835696008383118970025710862870787213889638275403162311626302567906402844499048024382994733539577671717300768253110347402177309063578047583990582934519880090579136097337953052762560684950012920765978404164819698544241523770036955594606203797534035706870716247964434018288091039055271560911197911625203101524248726975225950745085360155365885961205239270510664225434097625898356217625189749965717647100504805033657142148718451685944849718033176942220527411515564557524101482120865358393011918375601608209871944994164273854572068966460572732689996605477613242345324085527385460288565967489654907913264910947801220031403918610427993420725194952530181768819411285351944026911087989149546235709458741615982900529726540956975812061084572160022008849112038143441202971882901509004435342817775269993995024734927675819431058648945189069604526067942877895963536721286153544318843479553408151901631648535479492751438225097734954318945449965303834043148248988212545245494677006032552346961150512379114568308312279990497207949726549611440908295761570146357436884749887912835819367837366687318818625727875085147292916291020996973834672883917900923972773416248778815433778397776951312869707548375450265235344353162445455673539630013062083214431611803091625997703719874477722598709227835030686982488394736293191044334688879304152237163132398367060408930098675333452427643604484216210150835196480020907467512581735738173325571134255738376337629498430663867330169248556684289245675596070498536624196850265688242711946004797498017401655376722513771040963743607750984741213669260262088782392457542284931232331161258672318164247484359121809953441315386132941188521947702345791662560449451347555364278335956208706009440165465421385669298078721025019076066514048619943905833261750670840267218554151164935347715903183971652474274787126655388562511244833848438217054290278850431614393820275043953797759010471033541252631730761483676544379097700381584108022205963310978038909942426958959848643110956510582453038855847671419592500695050437296471997937804708292150976403320176039813736434052822494990166629303482903334677584677359647381433515963087635890041700895840400508094170334869458964534838497341170215586501826571309857868495353672892118079039257724719759802639027105222367204145511700041513710165719656572162488971970114518486556684918411805993328934239408221315960029013759401848614542093392659927392787964618080056402228143079775575802722872252280687152672204449122972097718461977046188070195455873901864395159458942145373357947479247715097216810645520287951405805928161692679226470432102127148034271251655953413059397202212601480763483028490731900068436588333795953563178947795369997281254903827474760153977066213859230822567458200198139751216089473876501783176699212343179413301025517393915573959957608463824921279497811628769863045765046828128664209455392226583152225470997501837734253524246036398632474950248162856244980820476423002143650536259613282690192763693316002132018245528242628990831055476088502134140916886482125313698845037687162723327644085323310107644385660914567712261815472148064731239112434617995576692923815881318125052184308327129536688907590895477673149413501133489573372044940364864288297925602357987455740739030959324877073496334112809996027588719691092887188524798428074140697427747907007383060689531984522195075953820314251397229740481274063887038974672922334264214044683524118840504586063216622294756347692405298049318606759408990482711632124499020541361952226563919851161385061850540678607687175601356940309538077387192355303176512374560274579592368224461626355916102010994257605949710488269470735697915264459485128713314795928167041359193503755283625993106431285815526137305533087915049152990009071468543950426495761748275648623046333837704421669063687584997262684968210366815546949656756918290557936824809249633554148424072131341875255845232991414196864905176323355771269933039047422061993716525268874407885130567444572556987114099125497023911348055127083076862841412855043538206006139696597002623729388211971939296883367031629153271759798490387357338440358203239263667482789403199114565435851201290353705798492906568197296436738676869444503132656985348019717796757420846307575770626320152123630828759817058122275362331396813364787940169978977252839293400949632312079752039818942376063185706519177507199398988376050479382214626665870457126994006423761019456111420151573108784295025245278261628394010444616552204918171798902438748689066668172729879976406724323612324315588266966158204534170238215796544608988591146001129650759224330806056035683185739257073166807034059144622622877875083448944306789033369449333459571467185697424594910760554280175391621347878481980410623147699880113551497801681623117413435540997140119424612027901653901933704757712433989472753688816972907261548223135733382889597862465711749757560331030787402676529730249761445907775563673622239170484674135102456760095475135703972954337825116865153635642128108551185002250192130966121291229350072578523378837412422191195608081038893320967339608367206643556393206675346234406356953913746221771855109587598754194908804437463239091847776398401210573823498789432997226081264172951146944564459974528678431536575980121146643579071294364040825863755561105065821205782537505444539286513713050943598289774036979043947413441658710603016424927870958104930653001165913054517307106634949882565184977648335127883189486719797242136436874344292326764739939088908329460313712281785288066740034816075508226781704892764030080253584919427759566864361073943584472374141970084669584842592885221425065265821889947349604542373929599197629937834180928889122073534344833710000286783900579693225542155386079273667195417806818677520711672352856347394901600413717199246253527775722168191239873540948394195172067600248813568446564977602893662134560154455892477367065427956088969912587807840327917270156943389091708051039473010516860636927097172850922088128692080573680906131093719948921457057768148132291184770287538757372491793183341685265660456803399300011717729143314128459577545260517063190059422936759568758874959360915021054714567070669930343857905439686587086134879827892755380503977355661406534310738193500607872088481503118273640428407734559256224707808087951244252530295592206368505734948033632002486981444524793087432955692253517513315641082921388589734040673672730730089663695707309952050724124429003640085130788487129703387659893310143764684561403429335880845437914443350867344816681262348254706759012961526956791896707727368765010211624304884800694352666768460501474050573854354631460511043403929037507906514567742635204888704947331164772834072879304581512602774966649917295854865087190763036714312707216573333261095753998442243668805304061469313926731887052298947805643725808217042110778439613826367669644417053182008611845910595203280548430859785619023818367613745649391955705066359990215546326671688257202138935578355518494219734607534095396423028694301165737287065349494922189861660355678609223327106580615949379519511337138969205552444907808584195051020472344047251318067238771504870846511257759822924195125854955562735565194826124579486609676055271407155408928705665746097512554740786684698681400780888493466608247981165775047084049362196994578416969418020702904930859388074700911415351484496348219148069441402292906195044688446810625067110770661228161876488909647544615642371523107153495601789115435448333126506954379825250151661030936536037836367728649467862779333586320161598060561555924212459185417369377534061398823179286613885838220220004972438099376572611961972010441697394321720822664275944797769677359306651662363773781070359369268013485439527612326921668699662060825145535047022031531464876810562097728381663384511144741485241702570553829037597577742800225525038066342520885685814164749188821433015696399812079906840157162812965741884238741006272965318138739201363867540996562790047730736959764411985477835760414932179458028719726910534425012022853098841709675159538827265050962078647981525457671626148081549743688868977189065217532138790264531314737098148604725578385073519888656064316699945727296237291827036214648286960201475080408215136313122696872478030418330708556822825475135738318268044278910230044350079331657566730151158121252528676031727447602258493033355350567530056648019106351745818048583684658049879176514468159102694821789497499523808992162144129736144527738945229990800118044193991539620916488349041475118053255052410000596060716606638546117255699503979263532184982374434301932753526723555148831924461546913038952493325862557089536561414229979939218898548960105246117186332857438781315178793570580482333273658924112504757726217817355208346147914319251892324053485391847895498240695294165594131116407450241028980867772985939366221047446877199037831261491374823799520407170763765924412538370023929012637745883074212343257102205653579587411599957711725294830061362393395047456889088675305194257368812470073600254088518294505265246921887983488611747781833214093753641020308477440843439361109150083957453092440359452993838602945853280936419445690977341842012311962400350125646099232145148710631179549675857855848308126983138169916786239889335190782560299236007276195609517547636903092106055345718685945589489413496735443311742379951160878675623275526141520329559887565634854789622970963533261024031260827156460919291788137242726318454626345678491379880027205132654670964498805657348969801463936064356138813242033617093234930528413551166277140144948563653978000988145904763791839569057335116868758022345604737875912999314648208056100463863329163025419345630853989767247924174570106126186240229227909833067980078084972529223577826565191695921630621342035537750264192952971546882575873237412409527508048778268792647808107081487918080494145077249352603521987759790297043915479646170833070345113867185732786961988325113031735680651078558023309936386310242904842868963961275286111798329531453814289022193252514750312715979743028006385039944487859096413465631306558109652773388351612624435347970463057638980934530983725774715121124228149088608115332705950832746644947664614113317981101152864090696843329703786409234519705385292399606852026654677369140374379927183576066957345869848565013524870162210821033248073092637232276652959656338006902475024416185726863495040492281412445563296133581694434057308324086526245120526967706629324129566660663722774139781644078405332194054216875229542261767300579420686904081942678539135797637321349452502076465810323420978730587936182111179686931875939698809938109559190856716936057302721203494447549093293645833680896286568282516625475631487386796681472169154526652127286858254367849008332592144469742017706694802745683324559829347023849117862452470662684923399105454424174551963586973937380347581701940905620851576711640112625858236767006626088280730847284540500807112297780928188696248871819257610902295119143958119794977114238139300579511698838016011227180815091406354876661700682059617099591807165527946524609421436641907209092455027017753288423152130961152531752531540097124375721100896043849203652856172562417844290192897190270728550499127270327661005515782159134960265766768902628012750814412011026648421200729547218104625039106134490213389956743947796414282140876765262760680858507212388049939671020174726307560929080890296528742730014443291595914937531080767899376486160268945035704421201411824986721051321585497637118643692406134044899102157538080007617145208608951231775211209919845933614301072982659235167201652631303845237687755641756600902225921984464802572355171835416031896219794117601632520130049258304965759357025725364283546512617818510726100420684310274006905068958119217237415395402471445100667417659757353962041313013517919276556297504462945427411287820996975687308826314488652454109180642319414559122461329000892650269206628631111490322613359338904355869760410567265597139049782153689080837795788468880810105389799089660571369521735504973816222526781865803464863198372098143810673487747889159879620873240226018281327420446581557782573976098123021152569235010585470227955998633590005963292656706858414986353833153361367736851629173667727834327180013489007694690722692985285073318845689930855822055776754873183793186880859691723084561324262236221895153727779557016613782076761426119947038756817849245233498076992511452926521097215392345699520131715739177087970663366859685432805158069060041371551818650273123922709539977112776642267133734068690894227143678477687290128630107049684441382004051020721443805239636565617180253325288079588718054016539285979249524486976798066066764893147748250642463908592776788782736343760977240111617664667328571760171624507971938642685629773280721668107451901859924489123160754053536355918499346978909126378761458543902351173309094126637883519424037362718079963108086915976030738537030070492472477713473586675586657921040146728922450457256869999483449529163556158494497714626097307233322751619518502460840168840733595313085409456311094442569816492839024299854699338305256414733698997062062812247774278019335708246914527198420453533393368538901746414908035989019122648785195754500609945947425313429946579618953831775550972332624259592212242668881621045737234166907387223715232101516975863835860101105213249033388752730536053763511280009673360032723136333534074166837141025019250366213847965551323383512631862425892959271929537110256871374860234843389107293386252750530956823110470905164175782902679428967059942300026459404670528362883495399687751235860957347716714604107314892439043405623414244013765996047825640766606800783813389830536184952348135386324598990811245563207798212096733760201123531923600084435859018103759831943658891681934747053297040390254419903821262158740172235922457944420548228052126683692553121095216728580636930877696531269984175192491220132269823900191782447930149135601295105977352339249191368568745229982002643736021505374067669691229276154200259558660050176662961595670094260251029151404684590982022214781797539994175280213958221783433513194194203399246352973632554868649953846496873416186060121397345411319235027638618782308757200794152495331111358792903115015660539916770465891652400689206230439298589034694124960240744030636132389614920317129489900628199098487563549656073901836070050800931622326600552193454049006959026121810138772347762848036216467094085422493768154152309855795971818036049232518158858286352415525202622221950687588929610333481790291741998493020883285266277169696265281539586280338578423381341944999409671612360235349072541008495191532483702797085119606861743819158423139789235413591019886599348577945591615851356562701794415235967625741721165174941832278259683844320013989060167029829890835463188868664762462287391136146226014876063330621889888135416006287340057583629152453823730449475765166520677175320375653661605536422555137187104700920881882995638007802298022241305562111022351138704948447874008361347395331069477458883832344190438181070686798057436327582891222927649994235110995224104792605449741783912850971377410643693816683835506746879720057192898641139100649673633525349458646824120529706817248775237507496438246357790857563126156864870452177341688194608161551764067955045505187788925802288177111704592074702301863061074966243979728064687926869382954466283608477302304218293214895759050561888639939141542738856285056535106791419568449048521709810195503745570910285726253043441747234566679541894036439356290370945439944182203570849913807240798405284982779917020818153654140204961162620625624603628793982905547423905952395008316163628228957646623681880214682773300783889980863685170660484512688711290544163801704620051616879561486646834974492337980583139592428249143399309233202637573996742354729429196948838458538555583044411100001112793008752047568977110692122345649040131752579468460903924429299237781620225548593360134634901365720917919170525399450268676757770629407697335650312245856770250053137955022932849476049205694633553476263816303219276581919527377572773903248487822566357400018096095489757669087076854309565535240297009416578768472550082045289654052764689569655867072198080624582968864079466205364956880415427677654602458445040744436550628949565409141300447165679339652863714138960253687728873955117967687028484350823906829228564703095877261703323640519687535352110462354121493731264733271134969709018871107541797688229240431600049785538502742686975164040864151841010630823605656293071447924167303742236713998509294390225605529101140649765567461945668720433819449113619798616774240253806848345981815554627295487944502905557366770302760783423862555801785837462957588030039045811253178995019723334118726715330930571931442261831046020804497319150615140654829784954467125576145990722013107998633439615609584580855541562333892685505399666396041272827197583625785968017801561239701259508979178535611607174968807726397505781350647275917970952273337490567215178958205466285520048705645496175117450668747358691499112704817074929653223062213915616255086697703295966330534202315003871291285240887371053691185759627318950631408971225082597359383228799218071194286693733392227211820862211169299877607229634735262568927777663541760803242217999282080601950257850940977151752898962140367075192590587433596762086370563806197558971305316027204651056008361020916821302771588913535329323984730235037734789908845493976840044685119655380785770398226621165639265869703889401705813625381295669536393814043187076499757570415551497620852844145677556027949559214315426800436080281681704616646363906510500371597740365113373901213114461255752791029340287403974349906265987012574943711230812733719513792541995177106515811493012072611181557377612067878753536149042850878660534886651254024308716292979663299541076779204569304794236662503703534628989396835036978570335380356234532702844317113497365546969175241028288994726946927554281986428853433759757559683336109665679604445896276361030661972999472928965607323255490552540498674103955867272610271178165798334938035077746597228442585786045493594407841218992705942023945261655476037115769825400589642900371907685272958464359251261344214827844770144282621748370256454046700076874167001399591340098363103350347744001470003855954683553270477923719129047475240738217902460839848441267370912657483576165989252749690565428330722186144324458157633481447344934296288816397226594604380631383196433130052358701526345062173787303809377309762338711288435062391025322692065767092478220284715110373474336052271546755012891851167430760858797059036342224215365469810818473492516642787726436056057256911719068126348501377225107937814854739803289380402202377723528941235108700949598737777312070973938794691735778947196240903307666811695977821755937149835676558670977224212900880689222979865538074416626428681772548931647019056738864700130166215524155119540562770355519814284054400145578967066194906201257415840736929201194132044992749366108961044148136765179782200331721393625856563970403950045131548153183032465639236457841356883188527434272721414713081612851601910251558374905060870340656969434243960795306783173717315891629585193307921947502994059785851144164542658027938903487698654141663562109999103127650682496949418323772560661050993982429722348536271583055715103571629958993047499952097990956076106611661525697668528107412702446289672397380372633176630786161718641180648335202685195909986410043395273731260009487992405649094945444047203256990038206269402791224942691406755049654881929327362493326202388171220191694937095603877904071801595828749544213279821031025878168147827627514977997167190812598096768261576747739277712230425619875999932054812564802134172055154905395564268796589687880488193437469533127242824865204481628916860260983091661027261848376277806515951964666181234662510148160264178798982053078158930334280961644574047918369507487530314369821515828676429310365083572118123020815376296751783550026803863532746554979546330273600052978197771989861627990198250158499551604906388404488994706498400126132660291539934045762719897239274540184115137714707191975296770729373108917317759539194675877616303573419037132066769679157788513725998503556347724883389086175512864459610195348351345370208699176241694360179074936512774779118915762942200492036743088450311711822603061579718591745728275597622713973243967601902675325512982704513635296207193273540955511945920130723702014899394172971284747373741383743290545455341202401347551200296033122169096518112254149166262001213849117002494343892006617658846077804041188377616739040892107191068810515695657074845601309935852614342236026695485008626080971352937786957330430762341972092306828894267292739145656046461107820007895573230251979446486280168398523109105851645631106991425910816638323138973095162059024653162747690862873815717526857269530394863749305814974346309111621586540369138697469510274436714076034597284836961933013195227032470418843972698453345137650675869675545522291549286911147182387480363293565949848089565867414773333114761820950360478561132044880968835424780921478544293319900639786756842044993624752689450996930461583305264992801322101291769202261744997349555020548519856993295684726297328161699897328303634674870726948592339862800652575902048546820690290185088631091713536658135336403146549312932610604573971501701625146616639663935695649496772916740646977378370042087094259031376027657452109311458303239450222721035770451432409766973086150042533422814791166598798173045422045903097014036215037063925328767932606953252810188465958673413618761952443081319227585664263579044467120367802762887829698912448309641019760058484894333748422132132768120283985286868474864706445479942633543374237074075800241243228938670627812772963536753567632586767170850063047532579648972496348411331635451910037096458423021077719758354302015375311715460973396943194308515124246806630442493180603125381942511341032815260344409012695007708181925047800030068178370326153613763332709492269510316593934175267933796934725561427463265340847243972380057876373782823756710655711499312240353193306947898431199470255448250717158993616820953742164796866998252929135042712099339737451312489452987946960175848428884361382251921233638848563156413406378242248522346344257349345627716108574745124639695690835786970541781638693813088042838234412324680156562315984971379575898159972348355558048344240297533694885809374842391675937162897536960962404434262459574651283537076364304308433549063981572456978777142168136545205538625769761298463922976790648692990013351952749385066734947535165305272509351756871586670097800875709384757981940352388317677745441217888947078917355935148928433636522443681281483386919578478205671515008513915924639587999490795583093521183623633990940770011632465114758953756907248342427351697772760304497800079373228217752175501755336639440150522522418934620579035629311989250505179628368137535100658014586335553542465110931497779551955943471886092860635415799684604967101547873771348453899064204022092985795222561028811400060584167391694503123659046563607902765169351433292738949623004992464665194253360662058225664416453599565972661132111559974276664873485926618216565727824650191885427093585417298086294981602121738492436747027292813328782070444486923244423776328285027975734611444926044498969291718170913078247925896725648552613575431538103751376947964902060291810577894263299070291654084646639631406364931134626679141780703167337259789588864178468269243640659707461382405515841504664305136535170974901269398159248887854409424759841638931998132763916592070055082611191350574467332742458562226551110445952252190146819803717519799996764732696987173437040795659170140870006077457058851014714694884592882842818839746725063364581636636152970289680464677366410965676256681306179340429011283674367609272670223273820381751862855588239313150557799762368441579288201929690937424642973559860212862526218212256331811808432173331832932110711981576116199694397882535964112265844658995884299577571083118438386133217100401031527644539866453804643616417565582221919294619550605787754544459132363646443193517743771177563881609044760840531047042834229159164466316112604489897852236750335525479462123187952552519000483788734296326305174538244966358337782520347698455151332144563912390633410708429445801580249394652908516140518379944472553656931793624656111212882588125735866544717524451935391498105300855708503169935229830223884857841661380294062500142676736124419839271556046274647295879692980065793255332833971193659621717998169650681551929742664369667189182668199610197003667730927396113571991406561261736935284367288185967346922342825297125324811593909346529242712247365003636016779737240963031846232685265086575553856316525042324428769563520114845006780890429464034970362853787400749748907534204834482014326076212908083422203685050075000389651066688973187925023125431072264310283775897105965420390818462831559345822560474608985966717311151671549980439937341350895293259923066730575653125623961836803864170022905968183834385213010339523598997033512702958008525254344038331280742997690108050345774674709582202485400299255633364102667308274079124748275741962930292720267877707927120507251346548859201310615601538942275071551643821548376588481266623651093388912040287462892266108902592287126504807620889011549901768277778878525283736177293840408876288375284047264270282539554533347403435250301931523813146161333208245598466071364604899905285431412568340104062000692686653050884046717284419733305538399051741444026072368750818708120022513978353932239407466994932213154677830618463890220389497918991877424975824395548063072854306147032387861955980316010544412797228103822535527701814398896074778807436849007023291345384229356943115763886132410321842425978168954970288150443085875918071457347936876706338016291618303960828217952529023276705512333183282339307171698723829960009859876163283312716017755987498048967985284815864736189068192220816448672542515153303019149221391824965578659041503585308365754085861668907942580979302108569901714484426429614263247856074379761389508711976252690977244415956968267627362434680806735972010465539228663172787467148264911659099321711887521508876970837380022406795094661050214218915429084277012523716330860549473039578395533356742407377458742565782826110072827652491632834146883121048344042727112974175663942257735971700604260795849334465730125169781895365327268305984923862554031972961338081026098641932685870260378559455435603173665869043288633336895436269622338981917780407833465637295014118848560310423817161091863010434647822936076643116199683687344731064281405807333945785899742932823172472016691507400904578459052633109400061399776045079642456204849464403018567058493310949000248439837451875915337637504575382057179012351070258159567811008090541643607503293574252623160984535543570004602579490861610402082830523222835663243738474948382625481188533100079745973872608942638487938632725610833668644398804490348543886318874017836288627684570424593475677014664589535791205730675316991368018857965360182446765904622969204259223153301515082468454926900442549166538903548145046127348339967472237734076950153850129314001764713912152452015274988020311555313842455856197674062678434243888064369109114627841030014589642522153332177073248628474005748644647740752131635327281431271936744743237456329946936394180085198813895024090019974507989895944339420452926329088461552915375351589406874131986507983705384049061962063738294519904406212357918769660304904024306440785267233645649122142445384721244073926548713531993954614594214943266174955076900684828843919707306554075210720498365084454277770067576079482844709189351032539509789841840169179319282548880893461268267494842199541009635526585250393462776942197355476176068541738773322306865358022241317177747193490665031915978574372707947175709061635861820223388310081049540274004481378250883091847611189084624763995946992884851816516968762969854755196474253936467151435065202413703663954010949388804138353279380419946452211725927900839971471467294919974829656137443063017198377938761643388327484687315527976350295492044676728213282486119689521962126264449064143613892640594782027066914808412792951680084760352227378589207239114769761684358429523949411627070082758133884494967638504370540376218457606885640324736936787381727995539171060849618301321769229465035918435482980471855019214340741199670145206473548193811521424117598110117109167797674205533613401840397189124850471087274832618454111902850627624264255552056064113836469112695268396091325110704363458180667486132646436576311982136158324692458119764729110816069444406146588558282487087048905758251570434975686510796743584011673039025898284718053833609701893305019652570491578245923524209492100826249963675155184357175287848648490589291332492286670077680190907372376836980747048170713148502751940790081131158632910148784319171414826030205241554652227039229424241713505737405854056523957871772480840987552698564572152138938306268196936612543251086593005014353076499869597825379184300109954717305031172768255676098874356681584393860504803801356258065760259683735654785909723700209731101615843247184739630426920098056995405549717009678876070004639134138069612723326643279387409680575346203498662965424834052774944249337699678506967121343956068904098180068437975098996244624022146555184208332236742765490258520353244067872492123446674048630220043858351828121365459922052614232359999815579996092112119925153382293336443646539706686220305081380432629437705892425045476324921812122989844246133016779418444213410489957018265573804177026570505774533174111833256975093213557194330143915480764878620023833884808417629982343609737769047181253394692151533686119818470274780666688865977212202161992794116412388613172745655723844543959920894314035907134567512851043818509979360175132923361491916542247999527698436629836571575542682582128602695384337405790801360375790345672078467242424784149037912960585510273883540173519574159993805921699049149525935867478098574479537914464807343112936985652403934770062231832925646827779694969174189308379772464266505969183833387350853171360352728925816599600086155899656106700076034988691423085720180023005209736447451674133827728714428867493563044391859513397911595661599251575896891476432367946691008652186292161566702101991476801239221817525028234579394735054167584971108530184896941184866513207616299657818257591934554979773736598049167531072356883689459511139712645615169396245330934030625489088558978786832670251309417480209734353850980636841371856501098346230399021622769076035039484820172596491582378040416926871119929307590194538688872608652178615823502166083391668895303132099193474572086877688199821652716614418153069344283454901182932911305325230437456580965481114469704658752366116696014003703766960052297241362733545779723411495510854028583192776146474593138746103042083109564783897827535293194929805072072742335314834505790319753345850360633742293594663555072189112921000924924913588066747065735956495676680413996137049073358974129591291525547249989866632469805348423290654887246119977220293110630151964246683237946860745511393541059302372832422042527277247359764885997691212509901492800080766093286001192770930715555014547161289044691163348215270597087852600415388919004042763033349968908956560028349544360089902559123814334286263655889067689338226009473178515448474763335559547733591281405215063855524211306253957788692181906195577555111301064592189425827148972000891515341661924485349294783297141830670470820273608211887680644648919895519008358941735987242071947962975584018037611605478666452669461403588373193092955576555167597805469158377598254248677202774037032848757212484513805613063634674601982066504175950075031996035823912286320315882519505108406925218961233547817066738375374843296904755046797966382630542734038234555531823605852846870575898793707168065811168728651285173486397146747264725615172027203754936851724888633650575770626454008334227167005824977368896938946311203343058492292462844984963438737709207262321398998835753426257304930768507349734605493258420091130623119100577271206971561119496449628426466689252916333442652202756515140584743470671984636973277024401745863096258904230644122274783583210893305938286209424010245803431689899271899776046780962178823983252254326709527757334519370325094381986889186170281173424278014415810762538614625100652916096757414057450409479231058818160788128232193807962100554107308625780045424967830914680724598877941636552232420440891618782351162991975771262075676877600437483276252723826008474177229448531523727219074583571553669416641205983752737318466319738552990955651485817563507761549057443658126997794068965375992288623645139899706180032774279331317313970012906234242431755492335116822093839065927060766332860064931361600817616056977828891298452309754517979892736672965332044925246497679096269310765279911736178492041370579968178525624307531373357127336737164315129929456454981053127399959943452931176932615418577012031041378518295517017910904009156494737057313533749791061254009836778609957084763807865213758526866533926772864064254456326901135780507430726114146924736896582280770591059118503947979088788518467162678619928774981702623256990589102197853748047573083834208601995351793658249288467185062056184065411975796148564021379404514191891825130997660928700635147408374058982430558140776547553285448591925298097824902720110704025084185577598416690408998642999028059050173448082175719720681362842459585444757151256763655989667262032067979074141345571520425357569113195896021176653217145821009730935172073090433482855790623618606468848417106951350432491927807176683835682264177030334991288024610773908997980970408731230746091190586169581508718232485044019255059031932616559670845041087118937433471636461967296809840359620794939492411274572357070620128700456099929300539045849305704160320307071986573939187984088707951087599645630327194386713471287008545497336339626096419215370168451272217637340675075464661394739927407137785924028403830985601078286107257065213055965328524374423021082158715295573163861912049578643218607028824520438915588761531722154694562241555262579747672128842828418086250565991078299157657396709275257572285166952829436335112943200715798532253186934367871111509704372947625552106512800221014186129534677980201285856114046470270522303625587212864029279284505186328947422014514116635835875703505023503975118473687330174350844416612825824071877934746247236997950733989002634658267961392853557297908068459452013869211347389216488454693036687160355093744490125566639045037319683235528691813051960504877887866230417663045129233543124524010332876007715521688638917797950695849939503391043935930016618783690666023067258374555074209111554823840691786954507266137275564641176498260258857649313447554503548389259437332359381236595209641414133070731632711354698017707297059971190820194890273246998995409157282462876941689735867011394362524373210426256081024102974920662211291823355434281346187362895887118437962152539536528248071007669896770110897301765740244613937188209588938420525016097142953976793525464485862158534847604146793615325365162323513679624799555557861895204729044571197250177884422351955800000071995552650536543686334806837136341227460068706867366322436512685245177253086248511958879838456184775666061479519646736110109318977657009074095737106269344550315504033137775271650807850216163447193119636794826754743188881734096883632790069653859860516191122360064454921529438052958109846302293899491820999955151275010456437548678674865553360748761097420076076531262479111649961645833395088455661716576438858152468295297222050944238530394564639808052034602976738577622396474799280021615731289548375922518333080470449719922496426497211541407081148865746820772365307156548453753299513065840899465279997887883972198798126630547561957666663981348928208205851697969426545996538894628401270920697208066156589169003360195251696842311174675313500015839647159041295253473498000257489811244296595989660010976010943131296821501532620532790147151403540761990469225378663219854790728961598778692969871690792364198799503054167474443043416363995109462471412046802773668359732998399097737285632283232293508292478470804171989520138014827743449499786631176965091856883168252400021545959810393975610087949030094034435206520492403975734830004040838711326268954574381853313945115675418656783007788745469317934402044271032099455353651248009317222936631246204748706204700789566750449064651315763203072735865319430531578055515498090993509444309293811558169597982699915917715530618192182609552984064272404783723133923858940222097317136198780877836001996201345866112404406897212194483423802224086083972646965610869447960406461235095402899790640613805298733045915292817149895992916552271574315883836739245579137948031379386183490308729249484851934237375972998954851895933108586977273957573713663632733975143678405365288695834463613692398044284541472348747578464301712514273185130365055969461233939927623733672197332384433974381749926475809122623645490361526187528938286427976373695589926187790595344158565462813133628064010339531231127088645936481841858478774180530898831140114544624113226868325343843720975678680703494280160222353838522138707521889048818491808546730516705810715683524037602515728759692600038178537429463475331187794162661225249173823107374551993532654851159445884060008131744297608429422803061874266799245481668057729037106531007503840529051308105870376848313083238389270027727908354777174021511194515567734750385951871485972706819358523659236329162994497049553282741236532620967473932810371326571526391284336978635387764954981190063117766917696227286994051811103287594847824934094758232910977413592296356506310821908726379313081826952881048222036844357195567818174808826936282897679534816890376518711047015466457222573332903516805256302501084267538586908593854877853345514975859221123837737578873234115007915941930788260953427329019152716373838001796423128465711030461888972594029238479316927753977621011986961114765836180071372280559043068493887569326673254775242815619797843284606589679208117379578081297790519285349421125523575366174236973299533208286831699507360686538265774486554475260043746461144068701067953320639740430251469548517378759005290621734821712909589181182711422654378199981270364488235162835919651909931308394488475975074463782893443761610992634544600706562261951585835891241151765040596566976014483855482442381024374424025938106827313882455444588067516320541168550816966387195937564772102086680327132459645488406171771677745778108502975372055033863324011208958690599107192843780084939006523529979348938307515182273543817910105324897660318223742177120312280638093690856799674016781772539512550371694733421843252033841806398510986720194039445366928691749983459545024194071029320950693152016428275050055984764842192266464466277865510210931730147919553657352491859790957592001788466271957345386239521692068911803513683450184889109801628252298009051428964905463650600456620548536425095570622905281323069976882208050079548960851114203275998518568131795207676827322173610636752998936879713324808734447642450017678685204645277246070952752678842344421322002882796384374520981108226027686174855334791241731692809370772790137680909239908099787697173401342431227228133670672321683494984142494704948530608408410299219573667738438133418443597930890430807409929709803563977643934403501851170138998666515371269128555037381338885762653037040371870978093524984849931051881020458932976002808509299702093447746336383977719364123744934862662172847462952663560900436250448356141741542646190549600137033960126659953429832361515881230629268532636437429262059190107082628306205600819117284167416314846451383332272945660857253437849449184101222424217481542646165823063194780398275999989015986177175942403130805226750015132805424384075229066868538451725611431208276487116459927075563632719983974103734106358366105191551578204624178769508333215468016148610124421218146377165834637699580468293632698319109959684216244072652538729912556211033754828460471746792674033656591898016851982323060855124288532584114520239464185756265717338351543524075262996398690115302354813170029329485989731704321499913183745827838200335432566290388541977202233385700686352164727026502375045681137383824232519541301164373527964406874752924687119425095049776359405418276701711990909057120277941831684927679971171640476632452017319958394639280892625503254934470640743651764812611494668081258111551728940267224317356254005535896779721585786436159028983454407295380574309091745999830145208149777856944201857240868129648845558053585717276954638403741339742879571017828590738669905586377776972673905764504352587305549316277540589149454263164921543914641650611146480597756358712352075219044274956258122347602809229498770423886501613317598319987330243426913904298734707655708518507339228011762275858911343225420162548601683906605830213077580674095593578829514054466305093599905630613619041607440445313382563263906727578183559527816506768123180124809347202361529595055315810161345407927159814255049600789605940770130268860740963173561453307954202954493054834442523788382753822427326492016204315716614577552523167274445704159322363052275431453698753766850875040403260639833545161488896754818445862318323239571092344104435791579003470610120197227805289570099188560444316333997791004071870408655930848167671437305528427918898462294316904952353231721211524824581712279269108202406836688629297297078737024470712721736082407006196656097504349099560184877647480578692943141614845983812310295709824709990553632476281990806812697599349199113251469192256491439868603630280049441740570906565162126638520736153670160092953831122954329466145262610051698441365986921589340606103681308312626353314771868288175335239840884044260616884767025349395056308965722398384776730310495275605973733927118516529587825069623667987302678056209750764825017367547279433612071033119381548929035240747872120921682420424221211491346727461088703629009751421183942801340056243593010180702658110856557335740292737134534310816102212727845392273162516675904397463241867332139136353574947602911555074698960597950414533048735653319906319744960918603520000044707013582592509028461317517088006113308537811104133808150267101746124108496145926661738840660589572569229728969941294714495023541146821479680787094929065384284885063363947602884867762833771245614970205922368082145642238801988001104897561019294702529566483479484621869233801445909314238633918897916560524379102265591452008062360745849484467232762587107556987205286516714533479335081043879987882031986866231049336983980752000568085757415706581605252876076103255156458912099059722997786255277687600497193952338676539837043530077300345481312306359188143703383380984816847688389680629124148944255881958983735716522080881012159700294062652327068179700358022356445496302964669642308109997260537421339987500433247895958174819502365515216897366644647489467647053359186917879949151313105917093230539774386322821782316093053461393164888264991645481440740241424682617128774650552645543739549506426473052074100123372475085388892089380848266940346888671379052270647550990153421720042197978372255636906409216310148403429351736962607459762915029381289367093879780968896223840926854782799344279372871640216125013451815824701855105234043047808787319605687246909584878029287318902628322472366405745176159302768630868421929003527859708059448251976925278490009072131504328976930950216211917428175260679611943013767917158853782457031134895774452475918729540369581484550941444127758629440829652360854879081567148083293175172287601748678911699843116657933067420322296664128182584205880538348643568292846899399613785393923575640868386897277499202705223014403174746633006055872460296793281655752898786832998822760541986991660941366717708526715896307787633197456010150930947445184104823738423861248656849283853597506578966619418285473161637319263947330546693698335448279198148241021899800198240556278517841053104826274930552185624425124140750237702957210017814759930016429805541865990028331707156322293814091189072547416922832109177197831775166049364824643721781864185323474229098452455056207177999199182354808460304367355416577183365954473732202759376867686897480803316710102941187169565170856091825671055394357498742049428018202128430153952266345729000938755580339762620889941848597268591492306583857877859356465674357382792073347535503998924137349086889295023859667756710087619784145023835902042964523401656922185811784441991555758800253098663006255496301192777443651425103379671766078477671552017172899384449532527466141220806060519682770298128419859457617474996358556676918993406969350182375381931795056351666480357224989084607316604470146235024855014516305143145883223814653211156564441739876813619191612081618682759238841917424344508085952212967854431799018204378798771838161955422196114466105045544491514258710892405617070168719130490516818253602257046599470084221259694046128565857433524980681443685440692386475079474647944341804363972901207395480114738020535413849337763770211108965807482609098325494499627108495724806575425633850424887099755720332316649638831913961644697740942072948773301551912640997507912921106019299275781247637832567351864350473971938270156629914592978613268239944553976710491644521074194800951472266516689684632197841721070452574448353122341342873177601467106090674101509970269041307842230129048924389540923508808423889265827389415873983764293815884909041835619509948463833348730624751976206349902396150782403760256920369631930316588039926629019699454265595124160576149573982155569891459017748649554267729241684867490486721053245347086470688979627539352314376884310065287638112191117112263182706265349744573050657674314082999987272737066410963107522411102905657732209012539702454703609534245639299716810895715871612889455058048785603677353333356323560444555055135402424999819290445842892822120445936083443164428477783140102981048544813439413280811378248972929211864826706156402728219073342592542091397314572784316504352028500686305021050952852922201020614698498087468560552176851516693363139097300875369343492779335249285160156632099415496581213765046272984131474322211552921552227613741060991704752819200826005034711765330447030363402669173919210796619635786226438021609145395836462472178152470044364077623066965433838494624217502365969135418541149163500051817946296318861658499938360160604489272565273385611396626741684108631305046693483852470870542209577018112175184519933857951221603367007305097409835459818543297169833375963086205244689286735502629253111851337614511954139410173338776600139675617663357573449084246417942618021448034087668399309773568628721464187145648619545501423727394864389992968714722958144676592796841962986873090220922078506915027233263958199651572176046735529224787646583876645754384261437853221980156989692088503914195749535970868572676765040338586824647003277640212592049784984919204004146183151338883224151622116853649961462100646378807766191991283585769990975673205077805379419246300317957816927324149584840473170914659843062052851504735188829767128841109990370083158460801178011031290056285322804907918119745521874469091375115909471333924565729288362137441054051919764552428745668132782754634644925884664641698315192299424771855937251094175261504019936255508466729137458420034143704487378073077600321321432874794031314724142950184608696419816000668298701079021498639071967544992536179553509755896616215189929460459691409209087493428542157032820213982446748184426608834432555194570232020028467246039208042076736163074346456659268061490808023150297179443633316969837834150962457693048386091830705124241490243210622316425562800671157830664199968833650519605457627686268457470196077441498051648732190361472429884742495141829355717514733515753496473074694471877162274470405257279253938623725288282427649062696954975196290348735284595900048719613888631289906423951145705550157027505979833488048212983624128674283952105483584490575731685517947441398267081357135938990955826092704881948798228354681368769778403968988152816014771191677665979251888738368145526519580870887222295575964127793417697543764891674962876019724910847809093310559378120268050561413669608261081077588825837357049280812413545098715401451512577578820836208440216942847006311418582107084236166291945794400196568285824416718776477727110750348603023110645809683999028544555575877433905652401620080743640119660851626202222588546048323722754180381173601644012357277760160885205749433178425640378521643424415796248573318305972993151642464354619021369218753419615002147451680663079325212391596699602059925938267145274022168693068155204902039925082147297017459175010229682796017571249511953833490740420723175325787530993798296734372550596168429722944797673387876326473590223964641518921136564470180827506161001201373439425564446314642023985551247943682108194777404985968566134065217371815743582860446507925231053706256685599247195465641539631061677793633890673009823296234891827753462512414157487514169587874705965698890656747381472206954602048419594147799309028696865215196008266430307878441436439323263662924750211907812528303294723723621295816582537569217885725370004828977417429181465789724898384343472382931909740505582511998531123073982404544860535599168749390225365804892637628767278494575924116036214770220086682155893419428769407032003824241843551684690048500568228554168108305015491409700831117108203665161862666096321986710966074127922749810651767867270518863828980739454700049380163375807134233194361179263558216953914927984874146290687652581975718608819801106976726544189543402291969241498286356683279907770202460985472139015539563485598813301430335048933303103801972966378541448984274206533784842815409921197997207758790093482215639775036551979271177579364190662451522179756254250549120738060369356494026308553679556653346281972548761920773480449880226574763899265629323153139306988932825916218261949437858164683141506042554406893830705389962653429761070093669745962629660372616963132732348628152784060264336399641299959890749143061788208434746568195695032027778504855440907391031862111822740119325558990611252536367063767664505146320778170810238830396788957078793759250042115149841400827778710704514020349553931033937244224130124512025813696070472888917494388037712306408453882053223804412176352643143064983834720948997440666868825802109021552363691979699410392527667095698091873060238351165302496927003315899504100291740246484877885792954672539366111887002627526239270191418690712836670405648979816406929399472563950434045091629562563735963245886792909900283256380035372761058807269252764294716209333708597509346075625503426611523779769844836463435037937757042530406834726394119841973608109086274117147728475635446576527429550604359447681722176042287308232330802955038192529459503570118724318548047014016098067053536048050311420280559858367789944118504514288106552210806814516534390138295039926573877865896926485512739612989189508260424332859432771655267204974990214905686769082611787195866691756269066178985082176977577407622419280942229628026882903800283720202816641473022026139391441841883770984571288942210393430600881781676014774206749597753819046154930890392313821438207003439581598263007469700792765321918593107032122333396715770123598759674119767213512145110678907265167678355543388399277396307297399775022718434501516936802851150673403518518276588550883277072000203642022124590833331061767495624618087180976295175608537563915603852907259164890585649169598157822644443173347815393533952875402877993325420983769716553731693451737058582908538932358500090290585953301629700004739748927637832657385782767963686162163511637624188570622875379072566885846758340439382830738503681103485964463637287288169761336708653481685068474241997117003432484044007900313142636358329500020601197364371203925508179857366605073392790825251541765619124848646649823877318385930439359563734702893888078701475663898527818171083379450634038978578151662251472481869152839391820172151009183208140001857012680217009060585747809710262591444663820648671052352616048377376686762400433790989588525740153287370929713140558238520454519696393534819385086873668287432336012475596376782189421306934801492960016415041404757464757534379125842778124487351009330163015118022770555110644804044230446288825600807078400983256794978782326461959916261227923312848451444398556888214945760248435092256246330573356605485176166260811698019562959042057672607384575834755704753922825215980004610466895594981778378298532990671849151078986959043558562372446048105617022091911859701839346229911467257566774063748475771666511857873837575435350013157191720940743124822426162521778879680593529559469557633780909388246833696269124434317971772451886290091766843325052898734302108206343916119384865446709120121518538854162190562742417723972830748802919362194686412275209551372603629809679038976670356461279587363286944622109721733453691161316842832439619678694387160410574891039068446968883763819090062090694255011306354379227258749916880241156325825426198954286101978549820661234633753450572934737362059183961407887224079762426310437395616075612492524282707344985729082346713529182351309706348500395716804162636220983154968554650975662323682412449409065182917094281156320246535312351567256597096540919286504398505643979754089474642066675155695833794659060391426070388929873791817413581257602035034709520761809208390626401555157751011508760449767491983021312270281172894101561596659448344146368487327732688790730209239383363811156780722503228893624922018887821151089878791102425221713183496896600473132614592118566085846214616154605755040162814638389717980418891727476093626182242854890383009216039302622794818982756658094009131163946038153193184021132611652618558448868367066858446941907663949043853809968316674471813275368513312588550009029193960792025813648441840481866247071809101161355775627873470282195992207109912062966575473737479100309079341515340443517320459430676108496753022333064876091051103028948895428988062361114959195827729256179120662184765090223168875978079446696076389164623099904867969755931447343096197065451269393421237833760562835720663290498814734971243818259678938718178087593660693887327331876715938699200848468416499829995199297893457754111558202258023446577013066086984631683630535095872463262311709138757055978603816855300128931897882104412371234945471613919096579748225403970217783888966751480330344489186431156786909111005928988490238296749222282263317496748406982773144295315434286276110592767670958032563222616212357702364689950409930487706657870711727047567644919506532055343122648937053336275748160294839251254124025302981142624422053290891006427850046560504541894454896777735432496174476951134750466981970527071507178427540374128090058312045554647702474741160576432597774951310911337420798692715241276162422405463461844644523200717487161745592886569618672546755477619816686334072834251624847457944314647900924639084034731778130219258515171105110037911657679447563968161226591140078748189189650259941645539257356887948278606822033403071098062380403004781596772760341342777393370062571174341083046998981237368042445748632177100519915430111571407371092325089034344487689142111556798432910368023120439576017204891194079100457402838259595255617385090942222681295700043851109966080337359860960446981166506290096152036241965829128170530093904622785932315515230304495516508341426726492529851867648122556462324684493499378286800187150934014034288643735005255013643018773224788222977707733713258503593052079503558881597980064804956939832573888110009333626621078010851293129037739684235658694232004770914674853490439250552834240023016022300641953062333514506537387019897775515355067763560133560750381704257990674531010476774022749456167988807087231793823237017957019844510106215921093860969511425293192449862751147810202679846125273957528767657453649279891418599692503960370171823114652723770569415834963795106088879876270260890087095725484445201939816456414661799614561706759314938813834807811977224985583433235019229804175765052200468760162856827354296157885121975241018953948145703043783249952199065767178666004763372925511732890417753998550150121841263123354196517649758866068860402223650855625914353841448221914332910184533454523412545504072040653351339723587418580421574407439202786734852023729189015040402349676246523310710004080985002298269115337486261064501154892029578693392546056891282034604094870135308961242183254161351711741366396379335448721279563498399352891085176471293297684745604689346324608449199950646529064603529840015935798883865820176977644226338949513579570426116941485615310033926792529682995566886605020569237570367479701629107938206662411555235781818645593788191955605910878300405823282233689555223444664657566541296404399003666819904887082816199765961556922488858311783057685316932603954505815176850962163715251959323702040461966203108534410809204642539659798707860847047475162594729851519855904883138187841961556689194280418866622630626016690695019687695073420421086885206544576439449989302677382166340042279667104378155216146898245834650809545540666023684409816290449002039846919392942206746733682568433649608578040250884371755674976185115366167348778542802991732374490000164323226195006264361865731079254870300123385236546961557966004360302311816794831980690332384793226134377026472933805504444704191857055874191919545786557618647599654666107441295066813905128688825633767203145930483825831283851670150477894647798648869678537106654303510985050221433166888028668980575270300741214737098776434960248550895010475368948691530633333871141266947372116115591112775110310645144452404226807516075673104258870991144415471873461878606618547793160741621702954807527586795576737346724933305159754092195638803208092384762570822085176477018286535008419284796337585430658212051708898513568189486359304698802957473006865757546147212682025049185830860309133297227408105043196702645162982621602209381340877934223402992158472191019212635869789913482491706146452092081313019380942792892656403753844155300676616291214831350050093477994263367997830297347700930000644439798621479944801927920867564665072988400017091901396950203267374734104279990202516187694464809216209797322894636263782087058794159480955912902025872095301146375685208348902288350299524129831040724018066176806388723459492024635326894327956656030010642695267437464918098609272981450245524450920098183235701186047667156896989421864852517990973146921422653555798896550864533458948044866503308194827022403382658517899261237675217640518692482996762026720071540625523593485674548470142445377313382311243931419409953601405530973893695663194041974735604379331370196131334714568866947636306903075781420170600103762216861819648802011701950069498964108752055687040602085085105086423183330987791467956865482850054911281924029223706379012588462021679223308415111255243455552602683453999108160805718846841843129113844568373097425856753019806279468369853077324224608710565489331531175943995062018387267671454532196393969553534596212874142745501907223038404503574698528299039699859352188645273101131958712511180686500915707857594555590852595878099339193075937325823629816935888587035717749978169706125217254626140547640327122712182439092217433307963120253307852977172588857600069642718190725883114114214659270049168298074061875339654420423825205479754842590752767183692750787964005420305585699699589442029715679010806999130806170977695606568700225397842063663212076151881638058828019001723888079781109064526918873222022525479237232829624599116782146598208933121575501605085061985270929811060174161760950526546489751281510509690623223547866709441178293081743106715941237580593818398570151856117742649643143388603711642640536579171887365088167317070404456700353049293856071215262034618273265893328327019532075268082720149532910900765528672249201730083314317396980793077063259791729759424522133608351594850260611670762106799630899380845520983540705056952803661110062822188903994831252969628964408436440694027663591864383464856417363140747897107878283511437418063537481669595742333836743030906143094654758777639186160377881362956572207845004477805256482269413093429878343079471539046762877978000085816588605110849520493782507812452795675392730879321057892597317756977848033963720273998318549156009093130792927645175071077370973016271535895003396559618455019536203867647422495681655057853666617681500568960408389881729880492808018358761332976965444771289795524679384263594916766774553717161275830077788320419044997312654668851492065030043177529989063423990663964296580343876087198086933575474546228277561107347621227740229785204139771729775420068266000831314732079330078745599277172202626985714447249512062856332593049623157527189787849305005978476389589703190361508505800032182385986810098832637063820134566497161767355988666087030108378592747123268089706926307296097265304270118186947396252048717604052804026155443289386432974316538509559074928197854630677572462741541354354127311155327876478557624878301383674866665434628567524908175678329710402617764422590296411989221106384984668639031365077015861274395553017596622607960149092231172054438669388756112458797146179629074669187495071902491706419472658537502398629766870594959354468023420068814378758187744872452420440245875991897544701159989031091139240847266038124844210091261720726318902965860160896070466751457595463448382216895311044864444644291457376817465014348805464339362161108903017794745221087535541893285504052509784099459808277416129565437856077762854040109142981471980544999143466100301763163691976394892430751864910466074083699876498746170824255386850274846363116622756307634604473071237072677597892258229951642189807087282118869299279104510407017383122822201981254902801308468605336314518137055796682035574743000863764095440152399020081600008035566501185060068913043318685758915190511664522723319931241602136844989888306415506815384143950279756107686166381475257137010948252401786087432370232612281631255781785388139150736877616752167745579793076178465053831452052785562871631541785391257138533322391252152474416929998794892938594588813263444782049601852764167190748901879315415970895998159866959991426405355905935950796036985431420962814712182362205658000917993022141786042119288681705601449160076419313983656094506898078258015343405286077257889968658806895986217468038225883857231900375421202774758745441350492509334346335591133568943024557110200647697816244207779580899709019715413108586771906259184675223961109920488450683916619479783772443391388860467796077442876112784775138346762326500858185181873344921088985524405253609374098385070310205800627881925192278766932425719403985762274302734318033194801184619696512091858908192335936302365764576467690620422497977429055728831276061098727210038801088912473959593532600301449403824601889827352185138335396790880960734731776521211197351219031415251629916999346874355463894588508730673827909742139535816499982682744626546908846102880836465914486475401979646883414897084125769429563212672864585690041241478824031215857921511736128564757218221729208343899456132082462399820763327407577635270123917061693423858563236969497263394555585569220986647263697330608353992680177551341716291277898881025841070117754502736152693699916115319884712951040213972729144216002414166827483286177102226703222375675903368532278984184619506913192724484557921173423594546453454698342972854131688196293482796411102926064911523568546710385685903907734073196232868220231877181017246846322437853395836680054316732334545647407388280612969755908289452508647286562519004592744651853547021253923330015645087461609617307334988786069466792567739439879357429770078432617706461249274606804551343533092775883942655349113957064696515685774427730537003815663261915819857832119997819427393861508962271855918209455808373011606143460340377668869213516462546257255587261707221830249190791919266603472392472119616916355851150016717778900385235930129933652429775702577110439796306924882803009332882459209784034276830321333585914718060689959329596021425891648363687728523863515904172722381115538058398005858769950847881591136102219478735003156135590907577506789974647701201228538315972326799355556799598176681234144004021928262981623051372334120506412087995054618930495073324532545074021705307824946411043441358461686723719792938279547681636636802586260824010987489835949696686720802215112359276554600782799380341453347420327741849984548807660207878859834399652379974851261503709069842978327698364943630058178477491517405289975463841755227937542957238187650470975653090285141330825232161262349330053398495351301999837950858730902200796773467324388152438080795392507479343194840250794834297119353240178893197585022452701782383313293624271010523893854709993565509906268488723493812477304609248626193435602557681158790317936228503793226475631861736797523377735023785406286035518836272104562047039833145143110247621644310989960691116059552229202579229150922962385946049171133018324834567079108948356644449613726389927124728121173834836100969370779446599305820771642306151572168901885427310584243665815988407266763002574946045870663164078276653137745349780888269599335271504034411020335144295250962551126044079926261062570128983617816552043851308184764934650833478520801467453899725023422603984743288507611911151251779164473212897162801678725533185191113520125570009926566760638813894813250073957694571217572349422783916193579929637689384732107679052873273004897977697842136111403107705127241328045953649352815253174290714066982429936073509341106167838891176775359623890170662548010909114816095467446392845881247583452082290484649718275099581195420662617682594704580108302431718984218813507003050385290257313244203655318786458846444251539568152088473385896733410970325681870087327341685479819904169544528974154244108762474858656616631527765575174410048373135989841689307691736419647114600810115419266270217489976439183252826517715958224722914313796339346428259876541526165699550160079118692095705544453617172341977305497332435242193662934965157161033994994290646074246328492217992490002198651652197475813846939664836151164734283834879266509516054428377608531182569070422686983744139174010459564899536869703597656232646682606239478719134540799714722252220795764591525654850134817150161002144158836155811517666936774311557950924144812046360015387860522927142063648315994656552073599146169047754855237680214313537870776401901016424897242868907626045038041424757783004436637848736816627636564328211744412747801663857380634196925913519241676277732067790774253931421573922425396958442339546918139556908303356301511065484188654931615332550140453436442670487973349880211925073419011180995596316564032123956349823146835802765974706470224354262334217587147233811417169219624554263002805438655304628790113511501829418492717695026212130160318139218692123511818007279606759644328783843907472401607695162844104190157816729293863662398186919489895840802413521100089696279357198477143625332800448430847826775254091067661048957607356779627158914007306357427604829753573876804412582972475258149566177707362605160064109843563629890729845190323082574803968038151728428200345942213534689694457533849426622620875095778108780976634040388637533143215393610625258109798893621130673199238747801192897059809572030915046502076618599887765724640419654530369018837026786474703172996630306111969259164257790164242636318458539145185683539558522940258129700583548936653242225772609928640532830036942276840697164408438453911632846476212277603871729732257152099222796267415311578778924720100431685009070648978316514463094837305137349902125400210078706491477326761866117107442781076991514097429141869787723815815028636736067101124573434493003450574974110008239315649590078001502587763305981673412427189040386476717912735396805134876128595853913152116742582065584391237807959001194720613534850644392954426321611603793651946511062101936484843544773861408300459699940629497389616487625089093435682907265382071554535706956523884298230720150213877355677407497792592166258619256468652068094349302696383031557434203654438268965364299853749859455724019652373102512755142155633466431932897837712926129542202552823005947354826130789161911670517591639803155143730981021023768345365453066683281315885570246281936102766484163466708998259490718891007610281751351373013056748270823312575861902771562771452875308201287939343299517411382961629906893350087569524550626062916972030765739783340129656055821796758699627974844694491090045242325843862572622635998963551126047857265362121856816732610631940843327955828879645065837364936843688554592003052505076356209648132719496253299277082453516757866927791887936743101666830791644255025036261128251614347324397126604673986753980120209317003282826323465027023781948851009517151327223916230234680414702323556771809590137504502751136773009773970974929675109616569192597752766966379618910378941060536453264691953413901813901109456343386511210681454766024984103782032050780784116018011820096300504396847738142996191638827709360559382943776566875073595091852710908472933670065484107728200469806150519163423247684626801173140094153841007006127735733803788056833165182512268217838901792070040873363875737924109698722701376626938814384829038622861711395520252935809087861631398205469329681600813991550413748922099706154707754410268915484081146184855775681235853475615180400270625663012611205294573480640263496910972021967044793620819288144330191849969773549216028358510318437571106857375607486878544168808772436288696275554344940651667705336495505961762135296523310541493237518416501390653256530704907697592944311966774451081178389432072539902415038956044424648297244468588183128291524957017278753021097638727518880033565466777960360022683449358726647930572198821357890026180264459368570825850200540464024512215763126253459942555785858398939436709096999891473684601853790030667285536939242440403424026969063799433041907159674521564190472300098383495145778743419305828660343946437668641400605752450640745956554956054203439713598333004370619060134563079754116742070069850775898683404134644045359451185889984669103900285201143741028203310429648963606463984821041922392751759642213000751170449918994175190360376484961930459489573312438895441490006364422369017442480769418080591850951925315208582594616951488550653653789408626028590171707220061305479659780829820862021633499362887055296399454430794368312877314138883519929203165190372215836225416576069561151324965470507768989125704148345115655583693836229526577435202499401177803505173144124112504327955806823372560423016990316504997405440986537600891687814797961425275797214401244751808183652859763110580486998760804963921462630238597372968396707716872094482817464876084825803871078583570009888026241518335689515031859100054747464451976960055887450123668697686565779142217840241933130951985807047581809372541983794119113287359899212249308440247840242768280539103073472642256957133936307509122368948574686201104309993027138468700411897687937607637482747276973478347268753418903203226365481392812239096660888503894591568004412076887209236063861468571676615308216782459794504276451235974356497526399593858952977547367058758489134929409661997369250634637637115562087916262034256253908934419120298197998589149317165513372527024532747138970808736387482349547196124453645385137073854377198539905064212560417553642232006657553805881125350462857744413936570292425060322551889870689025923527226160271204410134899027732211539590201517729520624555232569169594272509912115887460295404791716226539426948034492378459103744012789832557218842894559959104896490577959944198581706232136715768746920042438642537032005574825466073571426730480117843943533162012399282136193750766945922226398916176567819896173700163533756913547596316674125250612890053776381092242004991166902507391395193668469074260775255817570480114411163476848557615860776721814834512635407375414611329098127621298350164799993505986257769479155186846620886752258325492240483757834315248283042146956156428605828477270737112826387740063735510040417083719738641188718318754382609302411863611564606146617678731877463884592081444713053551370138902735378975243980039145373921124478899141325047065718103729281840092384542333590487048198080842625049040763945148489847897230786515552905354387877371230193703571201180633425844741863282681134401657093934435771991680010914085419416833904253326989040814001674438711330254121032751343430276640420285705135733983246705857736699189133664484807406692782804792918424996527441361904850616751441432162686704756955807807998692280832396088001353390565773443914894960187958879980989998484912256968181762922905637123252534670097672875993081408304288281116289214892516841432771489525192972637430871836844064821491407534769897039647000263352917095977958084818600716481221937320057316138427984141576534592875386376278217129109866816696423223917451537023991050401790603239356124571574424284767106669216135962810341882070846252215518339479412331721369521709554766436383078284133328955872293228023614509775717762056066568719432753044284447002470170558294042342135914452158401711723963295612278907217116492292275284380799975608732017517239897714788996254813485031116111710704882632032144332353569113089346888895779861396778141310296679975655015345333055535193903177413829809180560452067014596341060317358188593324391805740083874313394144660618344561440761990528023228994575116972168750974431011401347722540823567969060440095035050553308375047682521853252507025138260355175332539520764902245455883594039838557425336665638562338808160771249815362942323451689563630474762593052716077572914022355661360702812673749232119492372067966399471342965747540462372505257224811050696769504334718661758010064738057723628824271620680795323985399607642834054651318951435168383958527255263172859153995015621639005123141468179057631926939075126483146244610341999157154624535760999281961458168073927417395590990628164052853663180513729877828140098289990270342915815241083253420238130904706303109275148685571601727658487326064293296162066167062325815139561098940246626723811926260565269837389738480010555549866234767332032838717447904042089764940444274669634315991540720291831801797531731089563689031041694833050798314786993304439009380969668545856625513550924842932713276037045351381792102150724187475279408403399389224139183348339172661815990943089933319250066849164295956234342707567129665440875203628845404051111376585774937014952414373029483308838659980816697524420069121947946777500150055235524262736923328329928044625018474363150025781886824091930237203338029982209869480737829383583568503439169301580553170043572490821132364357274739722948782055704854514345886786246145343248431984408662982478117347060043115478398107570832022065308116872452381647254898270449771928907669343194067280010640454692245131339416158178851256629375215095438785106754338454723669754523767588904949442998147150531869700888530462548288583286580514619018780611610728159001312149634950361891007152847208622403093041286396974100863803068748807459368258651325165020232212821946049735294153582264138484486503327227835727800771594818597705466281902240666837249935259718096662350322796048105800662860419108763682977004722607368327880523747027511239683205463371121550565016548487732974916508411775845932233195753585742283352762944997805332413168301278835830158285453100983622443144412838175302288178331740781027874679137530534799897654838195588600370999028865724861004471145352075267254243039907750814008268817142524498183680050287277545356408950860945790655296970644608624559843237272775239163775729880275835266025933107012534049698361421747958595319504712248931354562713258814155632360501696406095553584654553745695344821606859893335560071470356546158802259319995923877987882832531898842939764148655892760751579036066607211652062643514780930583617744391630916344222335315101918675074771501284238753070513263590535941467705829022397374099878054203032105533057267923243823563852620014247592638911925190309154135379937751242114567321846376459570231655231481364141891387864691553425580909304763682973870385763960692640271961222248324183383406548270677999806489224308558969771938726840153905364489034649743069131875649424720932546888031260587680233767950681824649145693416078334338856749599560270091569007443408980063405694232065936996052715401172836322992706728796261881351688471354065642857786029581204214539445299755198413500181985775823262985336285872797287377290940832914698967676052351099494365296236894659590631495674047743963568740512513289844520893230053889667081096585020235972519900948205345550406274128064581945248199516327191528484621903336680000552860163079320037751486328199823969040846388972638640673784305146227620613705841673479410268601455192241265927474213969381922785046116890589348741771077125451812160721676741843019518307989143983220104365505732227573337411131293515534602222285847678094936418661280022055019549406243538559390714317991569799615513545231999576121076503337600753439849477616820253522374151706227405729587652336431738475350310476480864709381752014208206588682206253830761890363683679272738194123043607525875742649784227579181827850491158892725240536579580119374942025959875467354809398381679093150319369236386610735201066380659801147952837881638995586928325694627716621552993337721261741603397884756684304514159552399134987139454356740646114005013732326445238767230749281038158685778021204339154935563898374714348540948072357006531401628297283576472970449906477774876435489900859377762843056100500784982966691378483824411148160267461186366333205080702675575981736787134086977321921284523164204058866802997396358530403299752519403090744920046735006956556628539884205373285423304365019316116983010004550225078579183692027074443043967372154032191869462698334001988863757861778660622842235341851685480211830711639483983072383667476845351681895256340877101798894164938290319993673872444918324480691377745900570788420385639437828066667361552890098737720470593911525001955931546175703282870090848678570716264724059434977375679895779431521669996795534795486483362901013346980265199986289074086784040139445175550429043856073341685260583461738857766611382523477458904717503244372019186473354089347507662872038162661988474316260570837324040962663014350467142243034507094721229919367754255971367712496630520583197895294601763498086623387101355884803792178025182448921574770461830788033128708647222633728505082029573757535086898893646434856260887974601207459396026314877545683833926902311400960885230474003292322994335195132039910801484619731716785939218783679761845234326305907136268011494725077742159261428719386357397349063131522774452150483724872588229394808873164791341204259492241098625442398394043469831126269792052120318374699457692053965881095225593894372622784597570080297735644246356859118342158798755387401275712522687254035876011092002308409294261612977054098653869647161274399229716734271800818716523445458071965358735350344944725100744606554766500957061673024163093735824893022996968806981196399768247351985711927798390365597458031538616236399157972130716287157264600162241412832693869689963485114331420670332246472046839914493605317274340847880527186400436872204543699666133883927436301056865928578000598344184836370224088928778240083196857297029561877227212160770914634835559430410379017268070132413571214097032346765710585179750834021399542226746783282709279992777297813681676033877807059578531631916126322233884109837290170470939056503230772173861319306170490969573919426307644148918030833913255880099514934849298751486269786211449383277073157677757281456775076920760164861534877933615031793921744671170608332869149554826570240909971472656422829434781930604666662905190902581846521450828105816216441454299575521992429533852181949132875666513599684654388800328213407749543961290725123356742777599135504915468274124181517970855269922535293085247449511796989160283444327644962268572398837620537572354507434946825098309550017155341490131733871567675031843833960961214787233799145206618527381526281774105575663607918314114777891979834161434153071066102409834877640203226746938950628587191493891539594623868978309597137627623389912334710057627240088778951893929214479535941752439942169411875469491080842062566908867680421103912972620283773141574711433011349950544905163803084997465966216345187781870641474903128081246387834884637992556880168089594329879428513024552492970676669411242832792545384306308565418571458029223692612027197944517032972585948317200533320507113234868226478689897094623446021900937383852799365535993429109856740761234309783389488296018028028975382646156176344375257822491308573924173057289615729573908821667135240018588634523706808855606517041031257694510251661831585280773080897184039653116925025417727976554147006921257174045477986943197933884738428671191165934881214036223306673235886264951072812881678597204139894744559465154652347048584500854290017706894333072267068113678000381074421442849347097957479026781917297697466740203048182814757498236316580581050332361659086343883445141338208961729686719166440532553116821014045839053977415541555014666197573223580579575823190126723387905127223601254681220805352601109782943140210428251884472397198347469578198691208609509059491607946735268987419696050971118414749373325220331087686572482015269481663689237896788048563249925494228294544787146862476606539686121422149772490126226546058048534096016401543186306935567988366427005453349278433214545842904267377068286105834051257231633389371992915866823916407485149089143996304028644087555267921342520873702802882703101543905027965869776759919126607098129769109369923475174845319746426098727381519393378945993075788304363556596995315784001432373399508891403690006268704624614997317784933079357736248987925393251114439143755391012296020902391223278622799660475705968567976976077179163929858739872150998958160630686268884015683143548387028470492566400120543694601572439009407839808627488697978553736351041570578338730158110668516628242657718644247623567814824421614386216049806200603104063425340378216141288783653650423162583101776101399632875884980530752357724081247329791546264064600259348329289416579254046332143552650604950136592750792998214201036702406566605998397795603814291058729414361726030105362740078217194055416763057328054631889197592995916235620365657604210973671646252425903123398083689336882897527132155762415346760080626401777448993955101512888802373129996700683979387144233776512920172477746033538573538691813968758674831860532066665184412352335156478453958013065001677245409262979380684192202156866387784342930195830460381144621354029888781143945742073040329656419937635784355567172504268846582319674221774631691488848368218423741412015381837429318152786108415372803170712546620580185436325286255524564751870742115270985933704978875149497182873869093093446060345637757587898084743186801584443637955781848845256620753225289383850557837262362932323826170588932795265220452874330071481160564641742390485256008178586543475063193807819696780912953893955983477279492773769106745273327542054553207700535816663075394132495061366894856543020988202153607896342142344162928345512205507794263801123911291170744206132563126828993234997328795932635285778008009413178645596039724356220321257269131739852716543977430225796641375841406587374065468346021146691039837451111256094181823542715868505122315847811175914167777449202804715739133140601961564226211329692510838086828547597638776869815111985306388493936861200371513853409914300830332439477312977970247314980853867305469763864476845636929914174286788822948386537945098497992380115306746267085304410967639381443914462534733929663649551072301016097938242472514956309410762578881968784130811699766487005254552805568902443009124366198921408455782902711065585479124367326791541610050629389052977732422311790082499606068717992301641592343538069732014032564926057465326307615212177869085758297949789677246469473345399555058713780337041528329847118941312270065948316652889860303658091102979487841776009683893666423066338576413486508652355804549826400433568370406480226931875005628223210468663871894091232187386755178524786895237594947542321055366075430613839827872390437025373782795843912995058416491745537990802351766483178416691420679545689345971556625893476612675688801213568301731737262358543043377035130000878107487498805028192377864454768295336115614996525838644077602125234870429587039113754727456715157497344550300647549813988242558839953327581363815169936307109422611690791275415528798665141211204536063077964129348887275666541743802006567316209355041881831197897630325663211764460469356555605235076018043136547095877552338983914270848166525671618458460859338696816706842542284337224050365472618732848789885577381588085246616791962087008776595135235388883913528017814482539518202225083173912295410733246009189988925445145604640179917707206803724350966104234912064306050457309045232168931307270155448169222270076901141756984634726056048951288610936923392417548986563894257062258487107473785664276457896653496358962002511092985403243293586593085570817221022756713164918356335973848710643760986687042600520215209997469981841214565529997261517542411818796089965301737765460870059277311128306011196516823283563489818731364417867346546563281689542298699274188413821717635877180292368427054852252695667977591848235197945554693222580281843823506057185545966692535638397449475136995458566279257041919424833368517909935324587186751808824563055628603713897221231569609105485016600285006605656537790652626829707748811219318226119143118206866203678865798368647382392253361536937623752502100894352446062359764919689496467734870659950648400688077014486638182011444195514454946038790087034647028524563361068991643461424504244313389012865078133949175398368433498766328144000032154399489392173193322445658499006641618285777857116057249146869551676313219184683166390415291470886844263069446380592440998063005612232104793597424376535484211293118031458059948170783278511623619569706631686896029716306146052178680532122545365124443670660172050563817267456715538335555841126205758463813445016813841281241895046459571880395562285046404122445537102675862682310361304411517619003264076785634014487628156449264112759366954387324498369994234975860436114212085475141937598343713889047024032681615828347610491261380646350890690349060475596739428623390456067001082879955703565971070432881897958871850278361329089310307265303797442741338261643225122631864391846939881226697041625002411915689825431738076932665479320320401914491706940680570834407124710191282724550224317949861954939970458133568737172590955335535664180138559406695599166341062391612950380209631660206597327370639395115457147623123528373021956577187125487140479011082427332660795710431574634223175379748418459186957566391476051402114389648826843195655288839160711506532463070224302744973392775850776338245649783460176802842283839586321879676201937667803159087213677711075557951668196514703606528805003502035078576114574367697698770530066271911555050353835661113022104173897300441116400662895320258385760695849994570837921238853587194089589747031878999900271908670727485826055690748952141906735022994015409827396259032207981238558676578307053843294038095597555538856156498378905466512669087624307692670451656038188118334992254255649635054218022989839485202063410967830216936002083959576459534325512607007165309103823009115139045217835446561090496986646712872659460785586805924449330155392193765668414616920537368793140945996739424239113531945441580803717132494624007066993664064861657669899031099140291313274665606106338445139485863525766280150419495456213415041621471115675207271656121333652371119130155829063104772102849808067466556971544170086902186093805577683729343593451181772496329113850637192349861043530043279046815289788320523623611775943779760659865435797004784573700737149002579538211725641601372122725795030078510575376072591225855416767414048589188560078891820733760563745558581782225906265949122233586880449347943849555583218113769861381867151284601075026476312050243103441606475725146233502187105622961888219347497833252090292481975000145146144277889652658909441652890769757410375079923300247534952034008738043046261195258394815935794736456139113538253434177574465633402807443971737627492429394368873157662266841379499781058449490005562306340684780910053291310567735260507999132317623385395410502983382892159516968202387096168545588815762141197399332760387234983453328836907446038224828935925792758715601295501027752663990909411196866380778028476315185811670372101469873866835437518327844079338839570724096162241515382137703554949088366227881704505433731102954705701626074816209596543011347592845383025177227746239386085796544252061774977878111027407392598182099063908849743209302207016995803854001862983440855577436095155936382191870640467927982079087835363290727379727458494091195788182599325471295037513589766238046732162736510722030480626979729609500468527643187263631159343267412018223469719450481431676600262904081089274444659491983000757857533704411846160978989001558272999913854848410774385451508532407263729672303099680387047108869820890177889991065803226526349939512875419793951241535026802733720163935468989345605772292214215925532559920947753995344655509806712644137985307999085201362614326152579747620511237731909134862992003210318018225071264656078150311801815293369319602433462963439671053137496703392325310671543940883929350516766556911234423911040287135974208394632643241709434316097992115967316092426064369988732772203614736481658554913034479204817992614099270484723364583901680357924042105080048736885501103963186913447530552498626277289661930581006366046732716906596088711375524485606649485534987481303224026291106251977026452917980534466026771871002537024941895130498654267522056586027258791680377616693401407277279683590164600477342121589559402892205356852891310999269085937821950201261454608556593038794884986525292123394151618149618906178823374585389143191349344627749093716826822773319868839171974145964074194160911934174119922377560011095480100401868526868023975965796735001232530159690428497134516220705339579936040517997804124006383705469793433534208789222517594063856680192393394037945494932989843514126779362249569116975069923130153436147388246510795824788542148518010400994457244275656162932201010758196789750229909953787112876871144513159300393246278390074723019953676936693551986987470258087141498094354908059087171533227120997047002226777400229711482620657569669055820637561493717211536168929984189445716723835771870842047828998225441052762012405317930598587072789899478743303237552500213451184741605686379669050558675192402375338168135744298023932315735602119607274000895965675432831382208339885594196199306058742449053838497478786906325828452215718340249190628702274610154217300284673942988027580005128256882085637199525243717368158993005947510742366157021480198392535453574360059477671433726189452186615349434654758997170757726684311083261398613850928231184986158391852281883902203421686740686329106704103114254118689392868962303399775500551718531999723239347698187973495124912632572588046771273989388706180459591480550772587036553700187455979061063970390414148843159489862994159327697006908848540514593752666239614087433514153084827289069701135539074448776773971501434799205854154881047326304750438622035935603615329711292853256737544382765724967641604806813966306165158988108746644704856487561258658781953351004529100259446966616650665071259245475696160446008826695412629739923639802444290551320388917945048839078847370929510812914364207734586237526995975558006466039700224899949275003675971855577814125571767364491472455385905212892982898606451927876182701081046380954633386316124985324109321818087056844714491781742130419977703021954166528601341130703636977793869421276973279816985121367455127464403545187383273498072482305212623220755986861498705414654146201780261864274596067979731806048319927862742209718337607760917039733676998203334775901053160598408088172089280005907626078748406051030316942032560432816799462422615263933629357573367132669497215541956455590493852273253922104053460095644563127069193994291106062942071887858628599064388879277138583352763320672159744750070238249651377360669553562745122602819438894611071493042091576125577177817974438917338990467553231267792180091205533994867849678941628545336988368464484781354976328466621934606227764801510725599995116901595761086903838309306664540995810149499915660962276050579386551561066296967661302321052725856879085193674351064908451125542243465835897225436190454046565327406951121529695075621243674466359297977468599907387428046254878937913314513426970522696551280016068574816738458320140225668053565035662082541324400725427912416745817030064085803012781847880131132277571949328964718032297531719128919287048585204942558860045805669002258147400331288201149288843524558819503702143652407093287129137023026287538147118306104561332926897755057928292475837762213535029249079457296170994567911010438046663083179984410787552913834134115833667629653592652979699584430857235578325888478182261156442414501622939654873852611801919187229521504807968918337192606025293659887434921691370101746173778570242445496813663904771155224404344530313533018033613727366142588960673951835211018266885610675446381277234098800407378961415392684337829539517065032421274315809864335563303864320547504958268821761541578903331883301534432646002272813686070821535619596393682122841436002145440339592889559890931641578428741796486120268838821126310025669544296955881472428088181155213498644157574229566795337439674875263612853561061331308462595341780748752591155376937937322214126222505463758712469931757859259365802848142469597360740495573315405366709958721985822521141177233278704791476937225159357537074092280899167754958180408285864629144479668689557743732781079526885764314822738533633306751448552269474336486156641875798086954316167056098063820128306258434072722962715582633713311184698422189615623883914829713415020943772234896266352510051292984631525436854406735312628209142966607382473078544428817589757521479217051904070278831200390243498469330290058070873164517574709686529246912304134642172773617069386456409430481135430003252751741371455563443734775440674205008124481889973637389829908152820154415763972594397108189928477827422306043344471748080442666662372604397847657649113583896853536983532469742719641084685047572336543836749943702582936515105938198359465284567236260722202324714567961682509035769658361745068186603381245081148885055483193892033285114518869991249294095859639252937497238441329968854968320010930654104195190648109959869485086988583415871714612739581959900961098231647588602234827748778061417148626947198703538495306236534324725205983088874794154618134011033016269712087508688404602210788456534356038429273243354332690619447181577846584582568109864547829992743882844479606723696058454798807012311145626363417826824306063246066277475485683375676563058521281068436381749265349651195197752189032183812195945594394904113561436121938108681215573288778082259017248362495505025297754274860382547212158595409799062803751575298753533439966222100364218675043767794586066314180709427280531907385027156394475620575598717218631928122924244616082259855010068400754202942083504697764953538283372575119517489352272394949823172641229967408731249538344719403758909337510230050827755088052469246408278557374223943134729292333603335747732752296964245007608484645598393115526940593736523765283023553150585202615098831012703102786961168582871408569357980537384734765527107478971711227954264055690557198989775019285634877634961768186878880314987800399085215670400266499051731017231428786151165321595562548132716991407833309886447924729722109309320743171352817916818857704849058451185808916728641549105677720471559616218652791485832578905536040400412743660585641719544657784973260351105407758289528649880213729135842066402606206838098204705010307901612273365634811600600871099982951175356378637465946542109212849754592101623510436376820297636047062988361677719455570834041443639840310279048039612814431748877565414302110725286906235390895466152013679755703128592169700920101018871572444924176197979664312725696837989229516744378728937406654695100947172492651253936253531044949803097782145030595265433651126471204602139550915665350096092655618877859901864723973252469330488148253520774431991122814811458170753076278925668262268567749106728769959220264517415438016482438427211459436324026866223845686297362050417046807648043039498066490185813443265869855335349911787055840019498933592906151382956508383408134182608007857988617084233019037063307538189761840331181797048172243086205950854965056818728360226658107804473200310808151924907968060872862087656659170329320554701095463790169703951647459217110530288984614307737394527558090522202023558279899634147620980395349672022673964394551705682687965120874540831274198744380567064937639435381870110508250381881694193414461674691869810018001236205823156019235602613078802159801023101853083428727894751998406803175152178351282716502031157581393940914575385186302722489401513583244232308757517451675646778344268439756813589227028578746369466928707888542065948749907185235168009415225827054193605942507502172226221176194829863697714661363703531278844304860097158940943656895130524053735024203684128497229627286765262435531194698514903556808518502107633407965236859490887948256370457817458158006391771170650239270369272385868506661063245289881570110175473586773672032327949771245089937139339688954423050164159818867700150953141616064461744016498883297978526684047550420010674906774601379502009940897206720096476911691969739694688065524887477870862803767404932677703933451958507683296348516167472365115802222482204283232699470332969237468922553486544213467353422512251299392821754126614429014301530075853286300014903183189136504345229929136644953381539192664811496936190643716663691536254184510066692042836363299970726558872082801505605183195978025380351644863333385765900591508383055380708391702810115921527575684557435909504885679452268515253685166114531544826304327416786370549799157060647572337152290556142652545066792798514096096550575987559679769344240468619455619508929266568190164161920353298573663302865986270687088561643491986590764351284155824760732016488567105950540888782307345350641761117780033953845188747845431568717876616547474981816651465792653626862871025640019955351810582252801832467064297371738649831170858283984231589447063529845758920106481446224192211207468463985979543668868581044568963267180693303513977543283044503906897611515489115693216524994518508099055251583478981401843407342417870412465720003847700522760447686468992097603240132934903256574855391829566429253879640776048267103911225470650851028269435126852072805013077261544708357783220214850359948296507373634372218742484058835365627291959853759960677125850299184249030215533980267661235852679462651851822845612238769510208436127137699080287038652784692751238552216244371742727873703233011912464546561171830668949623266128060339669213564001572245133520115051914046833156381270123144415159572151936688559800509168818436212120363731862493736723102441339848509083434343371322393500477257034444642333942340170452502510473191772113552702355449075757042881494642524960844061578104625871042601157548225393448682133483814087480101260266230189105085054717346934077297449795286084242322327961128181679900135615665086776193994318350545535497971306195874403756193747254377385185307301991841351941950157925345294357661893732313290689104259430974417284668753502151773504914005933784025628337709055997400152437125840814781544001349140610798990930070872917788147592963046630461669157347679825748560092021905638767658823317724730419908009459216125378127963129398832896463123970111707606969771773075984018876870342193860284298540282259919490635499034264154222503627552796206946967639972680001251188545153154372266147277585795070531256703284328478722622991269848731392354256607009148878548613225565384976643204101668629192549225562034672815271643448737289763319055209598845624756057436067189483033475630457584239631748914558796801280944726866979209918601055178373092489627215080872880697450516054419354169754174363762615634320413085757909745282287026861277204458895104997983607961169410130541911516429396097126032862241119908492461863308585918739479800727572636664888518673433966187307385668583660486131404374666207064553460798456432090195200095665322412135982305351816372281729686649937561981131161327027552475093072952274384200524408295174107582049810781785615034815392640610293082702904635053144166845028436406245213884218172117776378650616349850391975338657015743758833268501815141905178994936971463460368460401767459076197497263781133582435546115001113737162807128724564466268824622471084147795246457663139668345684340379648199391610203033348569163501195113384049171271682776090790298934191792424003752054954813352160646884720920642761614485265512464749102923615019948862725714517521248175759832182036855377894733632480174150837842895578421455425893568585360118408132075852510949152616274011727455991421537812268097050145837128625607112775394142892550678489552222690588232070222151980730033637782408054800719242362964451045120575134345556553937318606062237436805334158053696231001307750451994854353068053731192866335570707448947128203210390076088304641669580930414007409516636934836467782987789094430206282088792212592902875964039501868951025113314107495332827484715940483795938273407070188641438389763299008920448439229828591614602071058357895853419716068895699612485166713921297260053579289446415924480907804451905173267551357203930325958387471474915948670333673451521877140817997255224587196031686164460350850332568457003862212881779148235114777340472013935056896450227123832111966034451583956822882586137208455328952645535594487241611652967989241301300126575184428791733253131939820087863955134471574816058517576300932919080753761174604675906368468616680685827345156950251769573228358466628891305859962025829350855550491702497769713626852558463898978902366732985955733282085440297370941327681396098947430626202985212571565949582664490104085609458197986740145508815637828660557715732911259022354010453579899402649063633773142976760373414237948750658868015668863191557771712177265962736483961954434128983515689170175936158762645574581814006937731859338360454543367806919566935856527082325224986787701155719536468382637095595532855423515450668535926383620669931704586926256265391845817805048066858716845714143555514616941598751602286500648989171183430277977770635566402848489695362106682741649702922500060557013870915664332691642312092497317084965887183503568353579199822930496370487017866195014548585649463271969470581442306347643820552838932658411124113410233117577433742917299341664487709707451544721221388288378908600277659285026641684045666300297324088118298976788999102069160657449161808129265475543530538174926523646973191285731337282913794584252428972963750570715368662159165448482534008767158113802660641957113366121269185493280284700770748335187895712166509595122219695600041052461453052970771557264121138925469032940423711563900478676282639371067565440872323180656722774851663441214761615956225669537138114729432635464190966244749221136454540121500443478916863201142250290350278635169019299650981790237642646293978997979568984818993422294948032861725958997474552243659639846075986198270210760462342954058993067617844756747670656127959771924795794948906388448544333384650827465121189089100004687674291444128019356261579718494904691100772095643072524169254919269380989891753122301587201234396405601502990971786175108542790964712215184689993079645053330677376565212659081329122734353773641434868850879637606138432993922154550937294149497503847250247725720033934811161817457837235477964084018996715267279016051562066492912605242106212585833135206917576089215092358678670337985635259106211563713058051186841246174490390001844772700896086867546351362445568574948155346887606612100056006336755908889535913069812548650507142855513693654263451180752732257997904391096393829165651261949098224949132217314829011404239798450036566450209101051669328907788120306266877427195739570048036887179588197978569006310191984605825582820414113073452703205025403543910325546247490987704461304925042008148364497113410647746590766207039939109010475373191326351464523316676278870829861235638282123857082964971153505357071217616885872966245644929228873704559504801290885855909900293202334852207165896462555322518664383467136459307237110416980280251557554318721211475167700228132689695473513075617208805557046041720585254562952710491209288540051431208735470614646497601744417211098869328462882542059775615913989004330554601509476363069158258933641018105302250660368728999678424851759103174984677186259304401667790174525591617991032426235394874247163725302972740712532106684280236595228327774702302549398014567366107519233538635227462847040122016028233331342581707900082237168135720687265306640528055664575168019634475895068655770674327186374068445381345596713410779941932873545430388257454266322800892459885412173419070662307531703731498665117270268215770447957598721679315932642074998981365085693842514000142798092456894133453063990925098459442612634685828777736809697076182418825414232829710451518565268459244546111209697304910115991003611593012777176630110517777242512980904868677866468785997268952591921067393775552316564684722547042595819340948850274384939461750350415770772949745664354568315218889678243242788767125172712464724678901581270739043258361629253735623250668081077496998399687587876031740592482527945610202391557231121309340914076565754165258376105517614965916619857393815294815146733096091779002422075018866887973574749613267628418804263527465891813569758594545616379822314662001413198415677321930110566092194353439321445276203334110016753616351441163232574665669114674520894702565175031199602756298012652793664688450379326275629040233185795262758856840086995307387770880195648316473402499741496094756653639949592305685153095990895084367581213907849072452864326668415191796396582511055044206520594834288097902052347791654585092284182572813559258147345357439087805891190358008195873082985945148740360671337890077840038037349021077668074068988686625595290246821397698735294896262371416546343643449638698940467268450703980563193612985162988102588560495357158770934712529761035297492788469413252086458005020819846995185380392534382522251772235198656919113457968334239623921424137009604619148573467231621392403934650870269223767074725534495857004198395937959228585590594692223711423556728015125435382675384645202224545049120063776760449798626704084163346623995391298441426289929098412070590322507394880515400973610606464591265553544394274922983065205040010841012625161742059432144735281368168170970099267568722909201790063458526471368731784228097537087484208733652403330089528291713745206044243627924550969708845210612789185286233943422104468539518519765118742240990685261069402622503776630117315093938425461892345619461568142512296919641969589254176423768784792721357533554775094398663290577708312160723210659543136649205484152506213829433209379877122508767471578867897618044547478018639983496360397672496664559402816270869345398154710548525212322428483938382400994489903793583612937125432469671121988238976606752964887539406387145045462636022090617755806891050670965544422868534111486134564676221409902589656578581571683764018552179334789307878197896266628560112882227766943412797484062816055701269190525701870156373167839544574017426000757878722893212624677210567663998789745057082310341057492105095706199389382401856869685998186325680400911966778173701556490297615250312159865483802213160235761517954030280353137154621333874790838823323151558549358689177516989056511145625938922661119298836822318635451115726243214770867808678309787694346409912015075950378254731993426054736208283524896899431194351358295876739917702870056223755940645884003652967540715704956931433188336285535643171470689544643132586132758648631969441225026523480226354730907900241341949375538404691475593075596611385620316565991434577715587379355993535242610805129624176850999815333335976547520629794371267259159337274167698123133169730695629856398072500773828361619568292589892965686681374519630883139614403679491989987560973683754666420146168979049752894725113510532564985589754478805935182371022544753017708367174802698876788662481553649992567763115480543596647501858239342961658874387350062596189053000343753076200873671731636930736640076541448078914755006178459553474790534553826463824829382051356176769545239581140360820991937045518675786262671692554124831775705962256239578940759809048454188519083068594154471457154327995888336550704769130514356476615339798597258561641505826507226762556385511675114401901741718751534807912533700507047948836714688698943825950344476020835116804393175514719384939718465133885583527772400920428275019805443859283116033745341814271687368852312849542374505944169190773894461151806252315772335823346356290681344274696924421689480481071024106377478153856946608247409117539825862847639355402770214568589662563752242477244397035519691025883691233484102326606809790448166666089071855056935697527833303162192177060747356998948215057196325267113260961545439536811489334695488579746384648970468667311906888404063318074379882502678658656043542861444498740483729763064675382467566332734012729385509096047907987989219886041066357092417172841287720702207634442647738326364021426625684820113916421616646438847022835713614729865787578050312031205393185466693879909395678571241211718208254081028466673919093475174833257680836110446188504962443217497044583930998607410374359900357366221633582569052309454204312516739621684012856889059127573942153525480612301005423548202755845146669401814578424293338004764108177653010296650178444157964093335607185470782775742780642789213780582878812604426784974791093114726909339634836467788259094024961601437420822587343734453140595758305635888755442689169143245957326812607318397584582829566697101123645249778771718876710552793464075586930441714565816979562837019627325539677884086335945459322174105971646818463126526218666553922976123133346874117920359589449003890157466308862203876921417122197583734259187203767695235718472401746926276932353116656675674594259474500950059940022826808529580129343647797590504269304339163876463549049991385140931895806669225579100541530942550586955420687027579110084294040099480519040251714634596657787470374475370092656227868933244546166438783436166074258678525126475296663547196660318945843591491078592219427573848088328788274157449401297054764674565512643254819217926511227714728531713042535988368704823879746446988729850057557186570571109348165033013807192661426766916010600560268159094936870299537587768605648575820648819600743812653069027862762865275979128720141265919515474902010905576787474042009382105155028657342667724659468010091696858885976438412767415844161795842022504873754205171206956977098259091440673788034032078951870279263357786518787068931518986129004967869920593941867062644293909987708766300809966142402100698466668607778618300711357790006196547336603106791868277352647483875820630048593951233252708992456592829262820111219518725878188651208957065967847351952886895758078097877559372203163633614151575252319587086525782458073975476394887792567999244655435750668744276544917878321404892168906437959153481363707198092599980347013343491765819038440071149940753935005007457686727997715311775401633186899687822234676459953649051541867898139805125307840368727815574846182668708744141332556784312178571351550683159791399497752574228059046441294553519638847985401152845801118041213297338198262084136538895568389239411101681366619853698096385663217219848079910238442132638042373380952816318097020753897553295206875365637897475928027772777727277038239999727423367163516535374801598606655751204767489172319462165510872520032782909003572360257164545721037260300903654236143976976711799542522042091431387220471337598947119337387738648004768112504598470529064060518102583789317738451548067203902122512508760899178553070007716353973825266532657477885945478927764086694894864598539095418758351716972358686465979855260841445151481723023495276894786733569389064551930589047356512969367957773947520758750988211279097339112238977441011816526885225298861152524154187976356847340899775547385326266764135196026069472381563253058224927988327231374071082472453268752344556684879386722590183635788334917365266234818244761803749574902355267169328023663563471026258339166810608045217023405111215504270749400400512101893262710654380733473905055872648598064272474827358383929451233000288718382725513231040172563241269402263266892888246603524971154573733477290068240835185942865525745523906517679166337461311000225840922954846971647007826312450955970223994461994150869501924624536528975692322220133098796657955388189047808972526475927866172818293758468564471469256765116755133678445548925315645749763306486886882060283053907229156139952908581670365223808338983763851943072728183063534957824652699215562550125791041247307739062132376898078257318297226175733613366280997694940834028124563326740274487586986936845524714293523358935441961400647946749693468647358646659718320028045891316931037168839277260194690845112896180673819638915678743849453644711904814874754546285029666622613500981740694832338269164727673299173235152820340958655004841224213876587313889200136583654843879272551892339543522965641754165126276414819328179447556594579873176632611144429821813719868012712143414600198323285484170180898962695913613844381726415521636004594128402337845715629988450781171526959234742563053792543693641134200155172465935391770642332905214809385799214317520681560368541645040592965911961892571043997951944610451706691084038049418085358129200876588520380010325574815891884930549288244375236005311326047006484058580333306806352145385681737727087281817101836589580067660068558806309539178432728700849089787974509552100808047326544171532719617264960744829377031218481293247239750394942582593284778758900044547140687400588209802964457096762989036062132235178449717058337716818902023755435986851985000904529363164931762356678723199170185730991233803897426803675813565119363276817265407835096801511848839970786248773798030901446837213335216570399623507605736360557542994363055041891156365145575500079459967314287483898883457280045816791356679504278346628290049678184009112139937378356034736278795455755037203532620686285676979061358272227998352648254066371478119578522667909958608395429205709660834999039910880299977450414421859701328713326520351836711500186746645385919229471363591016216392278238300058525373315478293773097215386516442384984615684677421142984578607168971370709106601318054415630269020284034718581678010333240989751921609371127081176503267865205869552856195199068680975590445464963466407228280106504070559841974281257341934349741726218291137436865764957572869355751599807737011985070655692480910972365966411270290251078313857593144020489589147282292800038917898978842392506290113214644180857542826240972904288822114153492009957889489808698380504402969595202284845811742656424614044766466053880228316605204156811612103522120107762713921434974450323693642928922709202235405082110599482685769035087739386153513473300962409702154972970926347343899870708675763972338689804917140696726145100599924360015587517145514004694274331245600525169706721501212651505414028415072913734353170796937508280841422988785692118810629963169086087217641601906183050028697123017640246571662707425877002854020217132623496726137495136593566992598307415066462768867628251514560189015790604192663551863125056323910202573242000540652286557551350765830507400180825821234036759336904474138154931034772174203906178211131158934512061490267050394275619810236013897935948689520036170383749125798028089938580839105908557286340884322839428799507303316381201510576416702569141932738766266715025934216882780595983917066523819552365341631621610288133957672904497604446373888990378705414079572043646132628465510363071230079479544801703789234259866549893111565409046182617494110755691297379038978574288562791690276194874249197042006733579081668429945729431645205150072480585878410118589883686062968988544800137950301949974659079142925902664137277357149473106004369272307287613979033976526440049987131231446103475383849896407235522850556967621494573377789365508521442353807032779134852021473983348616944050400683342339776992330364339033811778182744854758636513566573651637752215943074272685113497634095344039964542729957750760046219504339504855518388443396630353399093640664219189544943410108495019956888076032990769913479126925071260242977839182445288085705976098271817662976589722603838766055477091415029545418975849533498161886621260588631278504028605671920041908403901583836901747721432739640128227462515976383642003435050510063230344692235525086667296708668141149768321264485395173704986630230564447647739729616594622717207039426285580183542489229675102183933366061054924081645536957774639175272797510257664525467531097480290688272938928444762669894808030465549307514329213838935246364441705726115003537018865145606858992699594330747310971125303879807057577535703067977888227644690349075251386080084593584965890939041315227113352714082474239780390897876107945175001093062732239399322875598572636084939227727460722048433891931290278381243313510125989260533399580495184213239817770096276343493885919690587124426889140593568637235905256458932799436591405275808305298676575019064532511061750523915084744290127768581230493880916829641835658693312483790048408701412072105579455283848826673181466861217021161832290265864337011768756234731700145214007466946848463809260847974648995795764109591412672120473612466201184775361587956014328732636894772235112537106150857232718713223161159867453851367041284256511722192064129775603129673809880426973984600643988819098396244109308473254744950667537351846525992588690475888249260617363194091766597605144268554054992667425310653500529120675967137055663707069539070990853656963632636553012459950768949536768329759257505641002509944166739774791991753415283220720452386537635470511854976772551446321736445910133288996473735398739332084784797688835395461154797316657768716864961502632122850974167661746467796131073262259436727956488283858991494180048602865451462796555762758443680360174493674973078934747637419667687776520170784151315547768684453930577208821132247054494905224617179870235052063525232945509145773920010874119682756561027798298549711576328825642665344789173603765674433101602745377896410334037244317891207435215243653607994376498599812860395655899161041084300096714149010288369622967986604036906616357793796498310137482126706720467327911470120229050184447102334410690461417675994486437332571684904896992829301398914243796497021999638531298352115786976455595438754186633858910403445005044951494723877395946895431795391481642059268223678570640683618183743317735369666748152026167415659466799973459772608373480192511830972682986697972827218216626388240511090546466009969170380237559019100749031496146961922065966579627711941106042541638293621094897469475665615964127152980599850461306760178570749389989883272885169290874636081058016673664307570244992010476424022917746962585889214404719128356340467570892517771101534006137507386269823598185332561122044688461042395602607303878134659645062234453247339689714404875841981123863000877233898223991713259320035505506985506836786407358362889100292027862993089456776043451814062327976833145127250115832636936321003400578745689328648160314965077364037767544850074899633674702107826601061989703897508416543876820524557659311808252105731102775927352228022960130582934432637012357862339789631829741179003600780086838786908943570120480546013845995897360131292910877319641011576917203037964255728011800351547059759925665297506608228643801051623222243506331601679088177804104834859697901048427333890787100631257260958134636982649625583165121436246824590763525546343702621517358434741724574352165760610606201026940172186905359498139629609498113081685204777835733998118781941644787406748445078482380276920992504025176930390024388439218261412758485664409947195558488734789573533995342876709043144093253672343229459456117263588965063610648868981410582909605635518618629519318720414948313511938290017703571546816354456997729644660672796103041418468346619395260459429431340476567948534780109494896484446644021199585828447644027676835395369634860177158896865840839506122033081953447588376907809656473717004204976395070604042673665805672814741692013121409952962633117250124644379112081675656947882876090152722289011109615942308520461621761735263201876142899029736329438550798118023262136876792111502555564020956672113566718709985228815630851651964558896474649471481234371722186320658177968483188511320776131829548003960847625492296389990318090570834379148432272314682968450306795689698022884378402378002826278458725966571149312638476117477103585321536059951228648770230989436983986953178013631759906899802802463529865830509261763107883683932937623674453845951623607404713848919809558103558185338346055406306175389152950915689117551629787991759830094936461732827843142072468345795171211796778854304747620248789208130528366660541079975893829081353017134005873328779401821916154996086276932589366528901529927885017565233237337567891786929892955758355340542267870865307786230070986303351737778515782438340175618518931081519571915743966633632359733275019719503210180794673466161331653228122941277214766798524140098173056524859981165059845117236633534262826083171367026847818641968875948209550603662662198267374185073926287181258723803861217801383007375958469825772777378384486545341953231594959814973683009931293372340166587259352376132741665838894448765754355782500099692126935251811852298475706356868733113973269208390832465288957997446153850833095574581887669444295757435917817069841826954595281851083590585854786751793877911762239369039343465817281988740032291977925429407081938820290234763048676435370041973811822512122705501768265013696524754455644303234294212060545291330771766332964712939413656803599397011895915183890665244134952341459692560845876340862834235764671436273688424715448125508971470695664030854852787395773306683399826789872956981769103527103571086449726736225151222986642050537140934948900518164156622259968300812421069351319980127762587173657858525484349845939744358250651285303917198507591533312238086065152253639620542849300209919856021902586966923412692598784752197465292254769484658812650713416843566376805743222221314387861169834681502997565555723244911244231611868948594335734416890884717200692661263220742809050709078002848889672343535955813686020109468822429992781990404192235366608358648473745318621080325277012256869396226325855851599211851061910106598923976274467809130601068635786860691779377322230373558404605718351237557178689058020915493479893388001891509093949495804503533853227094913590865612447778264587100205339882945733600275399189221486744013417511834664075129477008680577778096366737176917683198217779783013388166654511075190865163813174009622883992166736650746034581375447833402152490966689569427572388093579358240799652748922151202251805581259407507305915142739822371597710862634389098148040455826731730258937524482278217963695250667420856129630279273166195207528705494255198418944199668672882750332080574231828133243739955848890561242111237099722817887548873732277300085650654575698710417508509858328894089081059533872186700991317879172111633741872725909879004141035799809105627338858216069212862837479983642350923273126986153284820482347175804214967459622231293895091734234826449068185634486936539887490193481382179856652179695957138152971002327264057344971937453617310149581311835889694490049114389363586831181145050446646019038685626701299131165048828812492134666082148375960790404111093162032516915233417484725539081009824840386852050966065505182544984671013584857434277731969491064218245992996467625826127828678798645694585813361524783609843436503434745240080108013620463373630670391807835097481761652023386720134436988601455571639427805059652031072008650345388278689666720614006193367897990661240211192050404410999349222454743908368149182823506936452617640602799328954876191213951523036772246478444511984277105044752940313106786985029135102766673733426982154931717558205274749083523487125710977276139756747508934136326089772944748868457366661247381209106800793426458233306355597834357632981148385494711425359584339757546325752375334810718934903263023857896815915063848365575017483296760494316858886900268933086003702973829012651021800189025602876867126137259799480708700617860172184922042498385692421819656552091081311591513553990686363882176849728635500169152932138697647648852381154845015932010434740896175806184214583244227644065528856161720414957128098144978570012586238691297030535432091509759043910477308618816592315903945545076046206924118506379417578366663649021936719425328391659665958867039529535149042053234660925950629829619223724506020479630543155220457144690000001107953837910441452715615934937224802956371970400294523852486188917482172275995826818105312271897877296956111747266464975379854070079010307900372410200447227365299480211272852747028160498040561841706945505207115563316955247837733750865282198977552135143361969385866965616845108673108081569771212196360013414046422545893434954714823143892118569465994788126003016109507477991847112923631457011934389432886208690340022936976624326074356182190349944753924436924335867556480997950259385269199790712447799114630305811949107327625781526187524720475334988396409346666141265902106761221617957305507089056333056758357355410298820409575083516275082059159211039053030266556370307611969826402220768398080115815975827493717528341065286081236325806688241127794499060967147872332055282126757720921722518423469091740932714149500660905558032023544106344752157658465537576445965974340725046057356363889661892596347512467927639561391632234880007532158304664325902301215541638764171648790356567032807922385075325475990976750594764103325446018685117629380945022399274757564950341467396837256406571836177043191155402329075187845201810236287094725251614892200043008250265264308992299117168839506334328177358947165334238541045436126276279210104542522774584900021528585491704093336536707611510481162357733852934591932563702583850373321530756701385898206572334892446880402485997636834383651417444983952807912027024927257765824006480254302162195271544892514865611961778420974951478421685300865584825718658657206445011016897617151999844926702531465332887005688358153723301314733803833328223388961357366266032834042938566197055334839427577261822861804426414423179864532875991200270655918473290443584230411537901484815996229577893721525039752129752127905423216132317333607689987463293921643963026844166085775820890026291909681254745003152891399959501752750563600445182648251876276233412959007443085761390688262122089407108421095773222711240853171169706556498552952836305371136806460512562237175260727658471851496392528600794172725008331771650663355310236071620055181800922730275388143140739701335465046869152354929577918443613274968078070344803152930726629616296508037358138040210992685275528257576996216448859632858300831910707491893042314732792688341282231235808383051631031689628616671141611834058247853463538259532749222224802620107558915911123393393341868330019422977221228160468287483411766539643523729700233774128266239228378864834515861514688756375853974179552591189508797636183602554561167363080996488193356761604304621021114511789352147501458639431593305751473720876454573434155445366428320139180533562559342811470590913895764293204987736082409571894486987477238685842589680366886023322549631339772860831810226422104486400366519195270565021617510159675872402013441275108037095508073463857258290163862524205458078867545280926731639404693873672434593613579497561213218700422246121815519270675749703156040152772263844901499242845392409701961244425543759518774785264989348601762613145928952025661678564059854309058361783137661263921369231329257510335166614041894545751097134801205616337917539698893649623611838681309615651600220637704508777305148268339287741241983370986406687322255093616199296751173052241399184627374294020854377010646505583343122375665893579037381347350834089134861735636639887896595545694865880043382516532929145660811950267621605825251405578643509575786168431022544185377370778975313781560564538922780749556521384079583845517372880371251120720850152297765215844625174637110364922102981886090888118930778930764753801382707037517911031734458136484631710791134327864328463877953899398979664655892695804889598126206145318552378301451980216617870078493887910679385320554769048862708716401191006326380372636882069181571752944541702419396537497484513029365541140108820466331742904739360373822676556800657570797924274746382340755908906526674184172302615030758744526181453394959091441673757989247597703062094186502950037943657702059012117080710112028714398566928828770649517840057028903757822347352140770618283365150874970501449655667468364686930834020086987714195800144102915190082226217007159614780519550547892277823341143470528437788787343348370988838559525201073949446970173265076248402183431752868897397613816498564573781836983192595957851770278430826438180851701082555361885923824338880817899796282955388187341406279191481166037065691649937104248623555626659772552527405995775767670999713938982377300875054006063052810641002861317599296794810126554361053738828599537548092903522258707043531713038343199717737526911747654475047482681749537736024990206942329164708068422233280850528573915233810777559496890752850871861891557173421654882024408037803644537777968329041407012306872029371104846024233513502436390365597115322786723776989143229895252966594962098112165500656941672563232665573418024337615813827659215276562102103392895075834699644521337449265132545548380246762044919996465153459551209050224835673359307272398781365057447863087835301405389836852516486444398159046119138620772236793339186715833808601468047130022450150642938765961159450488730838261905306647833793649585907326657393215216682318637651337654382411639576737967242287307698377853221711181217361745889121200521589598204093587022269164047697210964391037440823593304744008485588144914753302627917574924084585382825900349246819894451507896857319302405552969754608865292766016761132306496927080492629651279492872643341416873172033716485547585357802211587570455356710145863335376608858209309923572145313451539716003776501685021762637356101415453274306647204605984101138225648448374634926024983064383081676222134555242095421618436295098240831649638808874613398335758592403974917485437471152274557401220653335892104491605106893856244820923033246231073415682884239530911085851636355287312514005739075284683344292809705159387827851669488986146439345431471756971043354774383696076145637460295006541270384032587294218558054759770101854435265364632104085321596853833221658382471291935295026863181443982966327930042116182399526793523150369770736801127301262956050652911107984107786159027356834959941753868007780536162375801498305359090112294401979143803176282528712118995554965258149553310647813268342164858940495919443682603115931060476349814355141539846435965817423212032394475715887570755552517506980219362120435452712544419598554869138513775321889336743029349262726016209127274338081566751101140609159750233096801648884896678505581826764362189266261821548779261467341621477378009675909689108129855062033262924438990049851875179217694427122058224584925411717248565201201476870137394405367293751081931324401848038817931676789025943578152132233445795583006300104290723856900258296183051316533843114503190440904002893129741124259125878825080665915561810526539426136801245617294883062778910973080017804238225452128100324886214319203280600034315637672277896732718509799411809863257281169125610106689600021751813773142662756260158481042282795389146069323940491208771273828800975043342094766080872761800377185360779871629086242310953833341897376780341951933056944386021798802573657649797604418590974085783482251655764955296478855006610251866880190355493673545923162156772214910180414159666429072553120897796416370935814241175225384949205202261777872132647517254288584685804578964956878103611477362881152790897161701001221578227928609892078612030457881262474671048065122329239238198734874158257295170735467658623722615346515434532800671355927121454960734999348766550553496573240937678145692551343654111157630810338870346083203120479903926406540880214866021310147380637239691476688199673259091109080709301103862427764512115684851206055665927509048406237703386829475260848242352890071107344026801900970140967016751970226473085234207623143976465146748756434571333466019156618170848489827542971254954617920567574422182045771505674797282096724628600649267815754570744178614593703907117607822164764492242930969559919911188886295541060649441202751056965517644516932925007109721076617964352368969716450015499320933947530380779101105181694341966802244115734773870703094841845927737992324087708597245404450201028909581095672381499585152619902874470942142425729650415586636188478915046132037750403739984123846486738979948569933216571762862222015269784659676818211630764155716426520977226878168876314530733038614396825387336016300919336229015691604822101007982191153710436705583484875781350144415616936781784000908292203266962398393707728875462692063842045901776850320079267105074124604139959258873698347310045732124019874331352908053124159702518310561318667078425900035607630046422644527527624366861617124300730634488708317116768763931105191224831414298348751070347424676936825244932913760130998906736846500545479627773639032942214090600243628137161399477003641550218025509965181555861461906488054325842252671208437006267265620488533871658072647704889155744896564951968667630075296216130323069922511812872711582103826946799930748157564124944297335641943317965917274141557226627981624509262016299376136008720047830485172494233279365460442485344545718733969796451030813827497343961962330623167641610485992328271641354646925963785182287107995476328352640111928114617085389552490780664843384709540339756632379608339079019270967630122207710942544000491912567445890848147350192661117878678692232277437684181222672392537341255382564715003285531100256073151375414067227552740810733360979229196484833001836976393260906753165099853992422335115264446091313536609416515864521273816460567978332390358181527494568398151698634942905854082425895575104000163832050328520413598983632074778690637981367489268531934450567842794248182347453841163431988900189266312281598097614480413570295756223303208106747661557054211677607638651248757071153730099139997147148761169314634617679170358491818754627297713240331782877928615140470918501866782167744509060167049942602124439337613523480226149435580011012395607903878224149226001969930747432099097375162621353272502974763202139115966418238067721896405102032999447028719571287686062287234441016535912009999621401704246620977275873050713624586465583745255481086833105988630633676006591687550163333345908051091391010735194478006826720487572456188973301265546335975487418614158799141136239827727392401200774706214947250469234172850163131505581542191025676142730218958144939297139285772829870007982395700696551768248388494000005982753984504409193028886210324475469268663652928757795700158190833278157998926502223152302642336351987980160491757218609237312564471048069538922351679418316532199885282915775317747334083310040242430881778383288413959506135316435887131192389083688897900178912277692250534550211246778080511699520858315053539415889186285377984572854506118526949077941767740626461393039582610798961381305903863258902445053062348969275178581455587587232058809135373731757559464107709601287847399241086012928361900338625484234632915695369962698773478482401942278506743537688415237985952996997021576207523610491398631030522661088332975355508935565614242044752397395812187407885086367959505198885528938248172382247411818063842139743525906311132554075867600818420383642546481386573106960471497437415534463357141481215119087569681016572927865391112102030855619421147156611687739663771331666759855231365208994961894009624775917394400554156228943646365434063351068376365955884873986278007844228019220737610049760739577554946977526937603693902496234379801273458223253936700639347230279043497478382277758060874421065336416039338644773047823335570051607110670922109456768017995313611635349727226428624129487082610372310725671435291441294989844555276495161911169955871448990774265487530191268758703882896495062062469910968788952606090115270056332825765009463575412338306867587305861298349351427273245985203331887546674089329967980033883329976165596080044935654106089262037745284744722862851190383411254895658006071725720005843119384945835989616907171544229435149948946088541113530957004451028477994553601327851293429790420026660429774756665302780065443656686069415353739739453043018713123261847979195386938210238306777907659845983968541435993945402947297830244033840101826326917793851560129711175445870010583783985701381968334442776259759396830313194037127769606912084009212523240144159815663314790322013721366247050320055894216759047339705342263048852876898547028649909402405047171512827281418700120176949530240234854574050308094378296375800330004743063184152348972587361916339057452821624386167112832722720037264127544435064696858127345723631702791985745115849258814654454065833706743903597470699596811231083968591933316964565614279043241562179091126148421940565750950613152885114036394346228656089848284993213622238406252183597825191964694050536577840570943037490939968059813233601308007073138003428673309131084374814113042654171037188323289717760544554401864387602233034758789790912587418660248015559236882586430918846515692533151705109514621118212688449222485022003710590030889782246936759712913441436192725616590028134781525775428828648885045311019387774902004548312957905149283849627763422145937892710535994595815311774963268532249519884065674284063163309411961120007460740153190014708120167738545986200668823112488694578462010577883213923038731235976195082818102246063676404767962149645434056087985366067760701254224823237166079897002935728595500003271895883591430683632583107991716195559229839449704366152929090104751193154872134705462740830382345866656847488723381604501512926710937433096411830645019317413922858351322665935416940349822472453337209478545592424548143693050325001157143113039785949802169355735857793980152620707818847416232198439726045290635434195920820905896190192626514187286512549759480544192931016463758129418529686412020999282586838014305754074088855619308788866097177658177208389455208768133033587469980334838000340131244172928991580511728356281245877521145111914621497917658286425373205953302011118924236504628627885630651384202009413347739880769254101526379041377788518471342061949333565087514239933886062612516934662918055315833081444097804628818095243716210022413078315087327892419080001070247948210565523178559478904049437186349838269507526883681670098650369779726092801991646972525760650323000229550811943965435667159987619179359128602124215044608012947851432727486638446953790090738560013066485844990932687914821640213370491854055119069098528099898461393439215154501220167199388913588884296942437585662999676499802816334421280509445685325723261876716295698407074385052894576456353719974391651342139953564554268707694949043926233247339855214743259754306958448536781626591450091309892618985590556574696351549536137447044830223520794225876460852724066442966444969211837049897788295166406546544890165230494496984076626061159382071625613451167135194910494218947065522078689234117480088720936681211133932364222361404539467570346773646747717675108451480036047996326242582174628126276538109399041762481440217670984172288608459057832878236851366700268098288085792255640542731559543107419624186482149611311998531541820103163456706067006017203443298120083082846365600618770955872028190631910560042134000223648591989280901734087593916063175847710305301959461497944716484018019227959851205950892788896785500055541791890328974742469714770056083624165966609755165560404259795287638732728776497794979014555685293890317517903423573435073495977341311298011957922079658924122197160919626582477172958266165269633706293341042902854240417168996753142144598565385950060678110931158281970938251418223852611919725198433757919031257790435896468404358836559562219300208193694986193134588104915291032900735160780198493652734355703233708305080062757520375528634434386387325023833078946997766159409426104973473046319390987004344741009961102322333901587032292680861892852094034471478097370652934488520097889609565344024785611576498388939307454056686169466803436729471726653225779475968523532364405767003515262627503448210551192797160909380534772207141762578297116002974303965604453103783117168015575666933033791362247539439591181298271580799877776185501218055780890145767781245780995907504859005299604431430021117445048306106976935296910455958505348446751627428378303314698667657238269767733982153910362560662972559026241070885535555235708555618044344174581418608391067046376584481081057412421930372345758393541778351294049004838500635347695144242235504849029824036580537195864044658982120256453511178935629396033135323115603117648462891859361972737742547955743610553002399488717638386183280913599516697830800058307963433981546257783092592488736235659211274449584400638346430873049100961511386074522347963208961185563496655691286584535698085559992854546714540744255799091425496425391786815328389269610293385151985677336312373511205225299784583052772915198553550021114039949376080063637261681284797398405825752573188475198863726376977258303365173081984268090985777235642419699910480389630048712652956252604070527137436345381201882158255873165146875733815849758229766376334972491005839357224813666163531312807703814987924225249248854940296037078677199205295492070273773659386701030776972519638572434280975522034224699760097546384948411870316416651262094932983478218016355262803113644639256096423743273533543394855676755449269012588300724206842795324161289252356297726282001717197643434444524193126178018174732269209569333796681845882429084092055048735004402078337569084644192630374404461460177877590050676290477682052594611233402584641138110500006653714990831437109295284769569164353170682216335416544789949842894481302473193597824539345851949496795837416370977390350062144070823013989740030806106005113223493727080218322747670714040908409584126774009870638693403564465328799435930299912973439199350797211900964401321172192306442210790145920509626617107515164604810566651135686013159260404758895803849233901826893574970217079990320866262851987347251810387713465741659304711474376439744486391020759355470020829511683146731354159996961830529097535655747858553109018121841792923428645376143887444089594766350130982981408950445699348728974555229046046461485385326942194680545122589149891065024631862871725541973126052004299719998110958513466491272881093689838987181990473893856084594766350211735734254221918432323968793981350218261149182270950336252289412531103595540960541495501678068090886231257211929647151550443118026274469877743597094630924036877003641043984811746885580606963624268795603308187226909194908887990578184558056981332181365478779362250795994521328576325819612342960497475134807994669639352893550215151249380141351987083181500406388422544424393286378940013601685216152717507155690719303975141402583131420264687526154891356260877342559497033021842945319366212551667565478435429691676100657607859349595895826130080820951945103611683317969698394619952058768218738080200734633777334920031360208197571021997572018856210463353040278739158817896434240483398224381324447009731622139602258372491661696529907219233943684483697974804580839396626578838905750818502019761072367160546636813856672418567218960783638023163010682994862761584664622993691044210603884892052598877308727695672930047131292716768141532820189368557546533686787306357321829163295564304664800959857636852634893214878124241581791938012743366902410852177275201667797563468151323218414290825270745798096536430022978377123862714406743072251710625042731013584166055173344806418643992026512626656017696068721121641565229009527481191669407732279631010798640574928002923138250526622265509950188723090329492891025360316508728470356895439376485977014151427888070957132773774216197780236572211797770178459863985803331840892261617861728024025220396453067886966023992752570211064474557601222793864776800262946353103072047620858255525573083362945189648523475939119511498099847781489859580131337686093001713255962586552609133172775484650088545540477139922742871426756712149342062528603181381328536357785199209803753640726205603376376661485650054095426217167162355594573604648282782957601638899881295499313800564339692243057291192039473415357156439290714730911808118051341251645606505804616069895753544727957761559650569399331238445512109278294969370879045255894208567973642902200667801880985463883679881223396626618939513687026456359221781144711833148080852370160470256820506811772463145284803711582404083683595323245797478843597007337115102119778572149281459004532430074179935166309098504141873012772005175188306950069498286326836353638504456739044843223198769414141768837269097663697877166365043596983808745422446269193583086588920805908678259659466813821207188882701531452322906285451293748184505360886159077648817021618519440846333365029334835187608247875564731569956258307447172481993033610922415546659130089395378375896124435986220313591103144202531541612175580184338630861768567498218710233458915575235009349472981380495905230058148857781367680860403702049059006077901592611943451074356891294493204824000917170522902015548808803086662233833441100949358468167224512696030922689318904151657354113511915538785774418725015596526780630919801672181140392897917704181775617159320423889941423508414960464128371414201827117256638000223901300648236185394874065403829772312842457557601219882227814526812361614396127752322971106781236787975015598137755910285304416608479421964885962210685013582664970287940641935408719694160850093576166224651045568734971406602150486236213504486872012586245323896081530296202910190555171479673051594202354220096950915176070034830196591252266588842250865175848410094434092785044214479178424424176108455527527370497991693138776614300359240052980220501152409876871236386224201509892651049385772007368533533672776680364900978419223097174304445761188218262377589256910945815513328240922605812592856887650382822821050510025462434534185491007872435863317726739734408978089287863940427028251652451441849596247610520588847011771060079731710861165107972498928430852518753166183090857167619253894086121744307955658158322802996813666317596190090610359769446832168015029662051835375445810263171219605841511340593781233509194216398574766835699873901142929723075032901977360869663600335079747757889987160650414804069729540293868085218858317195614923199354482634937292980586117977227533181289138386063955178111470226847734030520394278706096173372474681112804840065548494476824902695991471827060823982296060186124716226959675942733887503178791965743994118207721718133972522409021794529852766918465278672669754836342697813416133594654637109241540835658783874392586550244178402886753151108743336463171147399567514467799118923023805873617061903615824454118536030221952699275574915259599480933759365850109148464774334503402631215554868397299623642931214109699096061531674571138399445304788155572513787625415794053932737942101615975321901455400768416493545853212099883003779706357734193144301154781068835510087228736756102556430943056624261334988763583417582469018589171305821643426538648100578187691706625209813213929629242159207995452772055260654240490145727419684085596486496690010701556945720101935182503827649587833785594773440014553439797611131143527283120271680737515518791485202362631133004003652927050608723795935082899667034159189324313297771262782616851343014623883228818528020433278225696270672830461061138907481742801829129534166399660234395364372404989391626042731966897255389263648014186824125968451509975221091352186871181191047866845791174672020594703150108496212011153834506553458132259967189209484537075895485844719675167833787293029446856178669168458212495280212138195376913077156842760605960591117247792723186753935598774694143821061208357269965173527144973485413787203749362240052869432006710331842267995446632845809748390342300039005200319268837225810289268260558960402569272654322704550350241630885607816020184078585723817152758268613199414017674007505036140945455000907716405433834843892664446750735766698200211093068639740100071938458800846699359321110346552040800008450867638034314874500454372895866300703543825107719019508562749063585964358013905783456876223712052321004659426143520013196726022153771903743928189849587314314345993412296206635151688234379932626403256801940864973223206136347982554141624255510130200563360187540011857027989381449414255880335857692016369986728320919495318396102038519954804663867154699814378723753190686137724330022649081819654660022214378171963415713604143488210813331473052408223832906994356480287465653450051454344340100104386282945174948748154736146289439139289067304177454392207255709923050416137425115863726780636521254571249867429721987804015849049224885041634183362425642432315786713321765349172600854257558336136127980318446558242774360147025050614614787321619886278942168004094282113236078853230481850038662838147479269861425553865664599537357430297480825638562511643398289365411334383291649023121218885230829646065034013714292835418503927563553696448472283178474301755518609510101070302422285971517044869492631022750853170279151747441917637301583585466453646442950143591493675824794926591032202171231641350864722526018493009321066909499650194101595112847837220415704866464611914624451266425011127893532822289722036263467556432956518719579762349886694353876154987273949716877690482473947527013092952202131314326227488518540932080271958885198127173499330149711200908844346307759049231512824658571451781944264443411054977831830059900111832598589993087581221882375716081343179293088255177930887323363789564220088584211581794870212523865966919666505055588702203512417136781110147572546502095498918982017387573671331730209658051643615130577259575418691821865451176162478337765444038163303296563738679640315884402013931421448228753816467887268955352792450991341112518171588844825934088590868160026469486749442038276064850655040535720536302856618281941990908023275835024670297711028324415730257660213562572825505038300066365987819946582823218834016534076962387012959037159263572580842221266233230251009137449200317112017402685086283188154691378424051889973535746161689534632822269937215895029867158945115405300824273356968242204416635857606086572406135886073358463612509252086360446294444326600050393179299334232769325571036465517127081315363482049212978100503098774546362921624462812971615097263891559729613012551984583714716701594724871342510293400228224510552599282228864365910685854180176122845231135009985624686181628836716013588940646932580617995587218788356169383929190096736484860193047561052250171285280207398715056151024602271140062158024378234433129544748421883586863160497937247715478986797493641633268776722263196270700939012115018376670804589003925025768438505011781596128637382482417705389144765623167326374453218837564441999815281447201704652180419375901157489671837256661862287152712145843404044881907371154715175288687866304864191102155794362300125724427303399261345079700633707987625108638266145159970719939536055721631994796769975977688731148101753248180228374993593994801113572093796329635710000401862162377477750478300855480119022742932609180917176253067210704659309040643631634279115675706986763134779052274568871729067331467465501642397518723610978398582547785785570341013319353528111398034453502247417370167924581301606889853110610494658579666850454707342968657721289826424943519419063473450021812532985781793232370419882164170809285125112508751821064766521793153818938966345494239307194182087294338340846427278798614601005980814838093792900431475674519895900311297498231631466042049974275141332897633721164025812547101106295383165067750241417479064582371546468257755441032415805858300142688696452154079790254118322945322667332763600633471763132212245928338244883028123267792846242120864799044821875008704495408501707727279645223199510949973275710945200315178785963133735291087827594021625373553835141803352883927996618027993506527359707153730978968472076923218236643503528634539546150270555871687044257044076384257054210634889873958420506924216241172317866389831296981031731349608308751434445136740148390408660965350119862715066056312462027132753024199554328075811665413634916830030023804705541406694011469895311498670496025337679523756157106197021664373665016607630396145543980468492894142053313155543435338312529620391999129132228675497202787002468137707191797982365034704775422294579964033882309377925860180249060492153633540514817329432209326312625008803654032728468592489885711595031895443234019444896617862410963612197042317149242211376155354673519519753855778087293230324782552573389297933568386524548924612344051710101054133185328117949020555411993410247637147076061466776704586600995541645215777175091075962219860040907218911381974151551181838945390569653613480629419852400926654225754223601408953021648052602229928839373143067934400023822608233164129688314673924018530942407752468296730357884658195616535064849412276917980187228695029341530038337574912131166926657374756746809434983103626829632100577483291303464234551437726236698188079398821489995783321419924905792873413402858514603856229976416905915757932900468560975923326671080421028131000758624010539701829294612126713667044394815037546686525049935648868175423033028010505606455039584447736336438769814184419964883494654884951592225806962336229042817464860261659462376524666573425987960527123403504692195488591238818521208654059706189907330984938276018756974752029670738864812839075623251504251450692035269150609580428280791259497694488771475757686764490091030098585770160129575771171209424699592094539280806293694122814267731989909337618493148189797117445041845438349412626517346496505725586012251577454132126360600878664852994202792435533046130513227232897867346391597402792566103401356486137112247962118275978962586095981352256073863011204535260564214515370263300061057560921920998303093691529225890996840425112928899512394048692639004330046080056682661693743077680616593849010040785448650404304559574878433016123737465270079130829867198357619450626080291530159698618787143539821984076993225899055916720347049953799407275701184196952735189732983225614760389836232108561251387308260108993142208709131338163130808869808519715316976992695895116985962663790808089748062852355798066731158533646321595860251606487237055444534800665484158807918171665789040354575057072411333226473309529082565226669856777897876610101937535447629756243191645198302132763603463295405480363192265345144059378456213642959882930005062905462839553681126291250505186190787172090842110983970442009165937235993798771709699179084962844431324287130607716205043896320003344560762704338301077426605521147261597451662309741162493258661979669329824753950698254023069824182687956882789239887026481810875920789635008235188325071279228557775118627700052965503857208116503268690657636682760299372277800966326613165971589798054480199147437112406615187683583618601913014833831322099797208094825638099367358879275214217278701856610312804473060270774856375017964433625116287823934267377796319676312078744544712087971192507133356792320221525194489580290664162770501029543468712691326317976533321996008382804218416982904236860487546181142555538795900976329036142799281043113223279328636395301101080849903401877251677398900274372637161680278506152978953070974392502236591077224776913677401987267236887474817809016442543371405622621448797557127767352812233422013016473581569242542264003361134628272319391854837223948353160781565317707290322231650268022758071299771338561753225661347750241795261207182669974645814893265882156248676024420674478013428533623813729209973487256195999439195949652104822519438514628396867622094749287761916778059662079334218759798596306171900695679470728017967582805453386040975252192289544092751029509379005701082001047801386853302005173375604552749150265837025958742846673798255749684091170201671820594816591142104170383838155757254683855391823213940066416494339690703582406566240965171984266101837519513139221734087379097052392888346470905354247985195930827994703062232947536889871669090071519237882127375937048308197324526517251655295147385125397463602109305104210227482163122055521238379943926779362955308584268815055491610232532494340329266874053419884144714963387181839259827395080899607921194620211144324473534569735074512951754934943714657836174556593540207997064192320158896724337861657115957925895790166314732061667157021863081722133499196308663568040658534258918806023121953118900175132142883567957698734378090666830291983832317975319135544889934435707513651486196740353080134027579806959719084998094054074590930478781609176079507001451920578651888419371517612025799404202569969392089875339765514526465193963886340112523621342477844566432269940603891580871849953417508873184902971003797287638649383801975913112981292719816769403863854671481911558143650313157172811418472718802486247754809395896535714654057108414292747455869188420378725280724136407836845033050356422029531751550834726499110137399289664717865452554827318295508191065620720487873179296020447042967699004599969372348687485371070345337987981746277944004050667222622937924569758254754606713186578713459538721782765438110839279525167090563715443456564568655948425239118639626004285649610711038392629886799378555468051701743348990408423081503066696563795866912874766546424335533814173183094775932635576774345356655285688994168919203705032414653825252235215146248477369421358641591358941709282014036687838286199006705831442013239600013861033400445669933770160630358238311875044262819915286000833939509552126299886900069187466692337824699677460282162747973506178101080434051813982205809545849208509408400609522718885554034329025553687810550394398161433267817276224081530695759026897100620158760552555289973416822642664255670790198509305574722500994078578717467180892786260425427672936869382610419394096914042927552194171661184528178706889921391535536184641285923325584447029094019134752682481449778699012353590959870688291068284294871886605143042372022169096328486514686631822226526166426804511982576020235130784471522089180310064934292768280468885775251356504860522226007784319433271162436469234946073534325130096734975852131516154145010859606484679099283704310264477738577377112412781004422372681578780588027188781954119964176401434508080717004710799927191249060690000862385487811878166560442020441238182302840208253225165151035394166826848759233399527878577433283967773002672520369279970134634550361251280623821202333479962580192129582803645207561792452808980438883883038926939256606339698980537517127798982845770545201969923750514618528054704924315042027888007921160680504466091754206627410701420089658850663880835470475340703006830757831569823919983046473535978353161441969405884628674409138764987161294735136737180517517458600878113509517608378237348472242635070900409169348063378367765598145565131310363027600920713562859141944058605881439212092897818907274250320707967569851536733438925308598243225629671710149912494616505198473614312093784057005356337914725222596418435050226721100713071401958453389000207538168163973460126670392443289629553585258730283724289115789641164222707107840249184242438013789559391887284552415415500088589562606898019754894484735936761379255860590758830877758844973319441063441615529234999318979879434400195228515503938098071651990238876870371357152008184601764131676580377899580703741337086069776520368700149761691933095548540310417558040714519429247906580476989994416295545318542456370423969345912205180018367845776377098487372519621910538516898851399961892424786754230183076112053312819604276872694985078010797136221177532491822681273647170712763174164639314249757631740210489994098806803264292114402406766242648966388333649215730520740955549293300146321866151625092379025205206818380352542763205211078769528055551137152641274980232799203638632605590523217579534701706164733591488094433657929291467679871630756164890290371968456496316088590352239532172642400731964315062743354636367018658262164383906265777338047644925555939934661720065473611351670246859487168888034260360458633408877012939704348229158762519538567849294247805153751350193403416001340544369933708253824338500294209399934045735962438507780778886243531195751292403531717855940710661174635119392959384966354658694502951103765694636461458517656567688248083465985057031054090983528439688888554012180668417181078116584264297579525184828594183714493972675615509065561515512519304733819749705768609782205021602986751101726981130187978499905193803420177345424393043952591731719311717911760712623583515974844039260381063021404360439258217722315252342482261715171589813601532356720295567188341961301042344815895136006698134199255734033848039715350908103593159366459182714899494123001262316897471997115810938221475259238853524626488906888906540649729701956662064532118841644293491232633498381232159947536653236023701798602350833601198244704590506287947351443734454645504090109822048766804659636078960464015675733863248883772190997007907604442149514376782021456685297141947739566189975166794895572039386868048581198148188291544750340997947360181625417484889573792884528290208776082033004474358239823655573762037071169007575104557774265197175509243262073487514674170909930460104466246377557036905806192856299408897832926603942965036018770636789122956382519010720376522526914798458516841908441271263903318057015137506652170970177446780164674036942162658338751924583137811541060935957579317383505840153955040901993961914364089750813500375262353997744063352974290227639215709522330322034074317817256249785635577212855514615367158102806580940318330749376855505798077415491332439640084885432234970122994677960348065435414260170567884217013513069405722370313444085395652486152209910976942728770349392495943548720822401751811951102661567412231441949685883320570662782009886291347475646144410390503605881384333414055660505335622533310607744872072921301438106253673605011719326903638688667711132056742297071201415583645114307556545136424749930557329959161510481559479366406479291572151359627644735673546072145466769163358599150913556046622091219551917077774007052696765031530362735878393912446001705951202011227644233568087495646748805370200653931520310494487277745086874674355575693249940958825589819551346848091694705953163820526506555237130699343914387085810382805382188410083048808691840771825989486724530639290074337247633447160968589942502061113628686757468920969485367011858614578649665761667335606452658301212857022324808806071420937026927769323536161578000372138396558917920535173070472695748373045016030590701996747503714490282814354698114180577273328580817908651576232744717212384596845391184193974728200238587305105395221607442173769302455284403579588513072058195120337699000198211481781905707564714846756377570802226938598837660415361040948425077524522318831293033696053827145325235293043083038584650650696909161614588290194490470461102799603470245316241921219860750698552180384939208967446312775679714810484503441292930629739918895044660299921949673762266322084429122756344240015571522896221565793439121518165899849146811766990654701889578704562927212658989217491151801566833911362955410621851672745789021772408253233949355406273205280700353042317605205837108480992938930838502808405708637401873111156713225852051391700266163368354752639333456721933704085639817751227586360289158027454772777080724711699282693865246401603807784830821005701328698257530352386625118872833865137733922948586365139699072863737105233730864695257773901623472445956332944262037188011804693082562065102217810345116957795352695176287907915714568194369739791398092469873148122514550467386813456676210443779227425994661089799445243222981164114775081789729752977960581445342417536656172136660067357609799013946171654443606814493563307432447862345159057238710209726883779727219926265330864019723607288801251365307411203282179237570406213523842756809078749502173620645931194843665542498364828612862769276120851215877473050254587359459060839651571082168338296529898223235661107945057993513963174642287511854416101119579759062916643260128788033546064501264127604641556994442050341404377076912822929501214532497534297289652817221212392529913047268249488986592227010728648069554582036164504865214307776296143692133438897283632361187129890671097423059257482745579069281580954382381929848621144730470398509917849887366461149104064083425354658208935175612819089939739094580270764506181625411986113401414579268413024174152864752821724049809005490461221958074437309883041605107213586833372079621047204588257641103269563322445603698202577245029608117998502061986941083758214500131345101478559787821010448284031069583723951692206337121750898382435603498266579951945627742619711520407571053429469725604726728471721603808050546836419528147565057566563731608238988496669186910339374972876856730493640716730992472450300863755823011452247485965010190047923367057199474055759727516360367647234444904612425833087373892930411681155891347905542515941587313142238327261848097798183293685111775760456419174149391732145649095813283580570777204245844590067097770584628868250041475740868703943378620790091506986971333049307167055881738977934383662964683738809783498275991763069877581190319067603091194136355310077934685987821637608530174373236916622645972758937906528262122773760983818023650488531827580094740014405955605489026194175618584311271584209898776280818194248389099005436565649240153068135492781014017869986625744220944231723562768818519180682090170587737872482382792365254672210500099613959374219824546003276609459925087463343781333570875553862875087319184608075642841531358846426263226829426546469218877425472796693191876572066396730196977194857364895839765850922398638128476042125564029410639430737094336822470422490693281503560528705285147006874600822745381529579882367197059424595406160177264111731864395026770302539569796497386100637304356521159195138762480685282249809874321625922959315130117701243773460972032084045492162703396602113558624900689250509247995769734079083585477856728653037124163487706782493272768704896814271981404158262791931454999010388474642287302432522331621276420241177422565470621188072969043104885378912395412750475727593778671563242836435380754497121874983066758229542461826636354010452638291693066545442654082343986957421468089542158353739794407638267539424657790662858364564763709540130137348874227508409092588094107798016931148692158901864303571518501672718770863568763445683565043225089535619391530988652890120396018320378652548552232903357435353554968883404523718488722313159439316780630000757423522208476440294561809224537117402388681670513305045717545529241640176418790405194967079127646341986752671959821829298879691066499309327929131655433027481005086169265235595195918301502530163132021601567255776165957913413746396250128879296768912411320692286794334750207827385740162522483339539188740717968726884125278091029099470110574113054838998054823690040442312444138819805846131726733425158364417635056059128780559527622005732438401789049067742055841781590636497295387304372859717194703828194452494005691488167336914950092379503863391125014280779398603574619156937953977409875098802908548121164908388406197984659152017577749228779264971271509352223428454843986036685604807624271858704558421560101597916080705776322548024759831814862413899083102986698301802072716892024375921139388033748017609651931417691149671743427098301892258217871720298874375553111748090717304572476665607090689718923393645682521233595269157385526649528228354959747037765782313110010596112717992040266006557102527382233611081324652047289199232507440796341898068054751639057182360341833430119472082942039338381273194736668020257740095802646765932039221046262500663884417081464990394030548652549060575496472229932944315610378315701828614133159769342732956167597433868034448680054310989644051922850975674935358076788352492337760735060512806844624025449012753486887219951344974339763633400664113557218686116669748059156809920830627408649190144024708657532450272191213054095472418719428442535917664596415552387725510530032926271299440853988766194658677616053105791396946816237492382674971147749683193015734979250179844953098328675395952770041400328264068228239622005278699433538436611014945486341336899504364719387417594306852080470941166869667161567576676572710338028366176412267579016977432948625961208383841411772709144448741461393254809039664088655162321576440929653168939959492638148915968612685880632273377895777715922615286399532509148425192720698846842799054550096255007561323349799442239804821422074837256114768505925841656167213981534823293155317237137263732089308555879252979256921824578517033690743754606457964136943657338152744360920621764951295188484175643535140602014499096352609485694652740198230769090736378797311853712735754869715790144165406756499884940932592698007936620157604454311041709792302987589479946897525856927690438102372254493388748702016230074368911888742049442301445767429005511785673859323022993207607601818305749832483105127961171661106073726955001122703501480474768866455968553203369143963139225396936869202663639336856830844510400358627018773834262941880300326975036476466771311240477368748893115525531709891605068055103518204457414509301946859074005501794017957315419183518567585077262858714296600496766201047549406425427976516984926876117148662316094231158342294943138946457141655500667126961613844372472020320035526999036845848851633839318566753192185520763748801005877287807975800120750616263369596581489527483966915886969929714822771629054808079705684489074226475823546166048359387499916971791542375587433021546037172242794160282289341522309926537247160798408001267626453266523608724563213252393371995870957236992209446688558707193597373757001624151228045704691597041853200634804944215373849522871444768789799020618230244609259524777455530527315379881584066000856332318136132291281266235064026603092801060702083619912954048492026715946491229231324533033442618591734997999942869818632897732164265436645293574110032033720027784448402018547435044774451999861899615796847885490944911319762145767532392315901423616799370497862745172125087164165848478841548630588298098780041427560519563558384370854660882996225437684625877370608917496851909075278357267649275934685860398435492448871647836569079112849078670725257172825099380632200011322225913425900244697219110629951109854562814308318603673056819508396101917342100575417063190673545200439218800607902695318242399941020721613339651471393647265200892345299804800506450494099169705447654375472207135230891178661214606920454737078512456705218222014801373126562885111909096395844889550207523539316559101418539755827507261568997503818631675041174235506561642061091776660410905632319225118650694112598922111826343249001628624182428187391312438204310317625851468358758018878004764947139945182856432807550983866256069952862906275997156598820735979047704776557496386349301975495401603841413780944508871137455641145064809577171621002041739410767758578069281761960778189682961397443095704548728854016355350033514939624129119746884912873526300964112845823677612793587639539195387677328699295790009082642401842335146652184834549746582767939708124944754506169632922516979668543149252977741944876281201871509814164361691219347920187366538764527561949421429080764862656328665099890929909543701674396734356000948448282727673603544621720266757400912104837137577381411522190030789807034039875394674444856636913143219961927464199489400669376235604235314072008826856628503999825274078037167711759615245517415407360343298437874676310276666767991655680135452209177711013280709969267742810013527986028297541065479812269997801257716951493234139645166535885009504426581850393422455287999937332591879147858393538935876117556927046813004294507042871875929069069642180352051420919244585875846316323475992056988148481298669764678842372473651122092047998941535678237004861031216501758148470851498254492970218497254491300038147458789870618121798309544660719268090749733615271843665076672571073207833023466410188175538674105085734182039661083891091953704341018330088225213405782278612951943515569891891784770650771725194917558943412778925143869532104613302946259676230578475837423932695259288358254592726878136627006260724474948324178623478741290046956202125895767436152509696291879700020517490635758106068273952247876165706536227143886896805976970094759421880170711083086101483246784646204388563331774031951190731311853225190550899425473244550262059642996137445414030910099437947417421571049398310020360639113602787655615159853702451639454104046180731185880831029228616812324705257529640782963170316949860477705407711456300413269936734346826295715583902971807047208949671662857621810345696168804577438433176959609936989325449282430466906991696739364366222326304766777943196846321693165654135427654134732273146686785851082582703242794413266566253780903829058897662805822364392618470281701062676410588519467528157836491847114703576108019576860510575746246693404553161630939066431508842697931193115559378209935246534328076180746763085007673751590349580208210591712256700732133226454524985481740281955833210419603739220471759556687599272850253191322027955438937526759332129304643763918666593343244193702757060131316180275814753709403416247923037174047096945499085253074808538827993764601097585205674080010986046716161375562177723996407859125812782160973463827569357064987232051189585906332161174411686575658163484378309892487104468138909455262900877805479584074958129252608279150792418556194656766650220823237238756590018104743107131923547697694210373727885184173928617370647440506647150685859188480542504084370083764304237239687572508851057324061001204640482509541771287172447083494174206800723994415590013266754873457172652354534635854207221021537947684283500324444743617423410665716540960553659426326419563955358537248357280326017713336627654989824020599168473665026804053638886780486531549776109130086474240799543306706581197876724775744727944320047627801438432602424932250087785786924154326537363744130351443486290232722072677231101252301070166065858082430772045450222332439541070593000087823651485666933894799981959061359570026882290997393986386345448222397270659758154415859997267484829513861347813501340164143350610281271348333387410776736862081788868067387846293594635377387615051533605855027961154841777437135600357099597128087306428970227992892794248061402508535227759115119993422176745542078174513604387249886650311536577043377937456937677612841148008477085982098665778975980471133825353064440437782194735626216029787454737170837734200025052563691123414239348423019857715417311096370481741660863325252801876555451396865903002390076467099807819846549211890471626676581167679856187021317680008547843405877736646325070645761711019912030880513813181886494223623209963920466516610660277596756720201758118955574573218027736810339802775044880922932569758227405983559245909364347161710380041367615009046742229611618137836509509143814958911898632961739271863795924674166541310557835160010367263473071019950246306876960118937320204917835013032124155541762747861853411702819354839785682285306385023410445089234844463367013863358228198176825285276429856972582007751030994662748744770106772048284141710744510396010608330709510557883994117571679080211761856168228898162206163974877450360059800620884674101175943861117164995746115562309053462046713512995669572161475373979070669291514617925687578139460785545404849518338245563944843099307626611782185695341627300454610549661943425989427559240645907187872295831758969867871456550905992177783000570274521715940091754423070601685779577329612790206387838707957244221613263757346428044286885043750291174791125175516444724169354292313401421555920545156115964496827170920963051810454382222097765398490779347736508989106646162368503716822373081547296011919340966904144186655911988897793868769526227159156730920864814298978472030680198240262210390836800590489346315515780061413204768495921343640333682431832880801479698027429459020614934592595429879804096078734176459326233995989087065764166018190529646727868379117408797796688606704912294245971188368179727101949014692231213222914473831163130683668326803855800383463951532160244979888474118476356357980766848598749425975248591999246101640460269800511734063037266595375215792530686960610598813605099452307595008277564202982202470433535858700457688017541492188000264249117607901092143599181629183821796219524642771429567259928429435373562747649317950521017683126452407776415259029990984684775585938985371840747449948658103754930896189815193762424123429750146137274808664279367543457869547342417720967043832558899659289723196349454772614430725546946609132461380549759208586461423767862659706806646143778011118219080028418893387535195896115155838132307544210848474863390008959003585183647480908796193773015874051007849302327940714368779131527855211767071139698251000881705025312526692351228856032948207164115316081049323812880898902983389422187191506602065440986275111694148396313277553489348852365445835968926854202929805556629716269183976470667336729638518156369567589791625168422619519052919517065081873655091716954011589280133561675804269046914420646311858441477582163449409924963001156262194500890012279641261881366402351837836448541335468072440344090253536898516717379751192845064676832962247272679796716842178137910296492067213383485306593215024413862369189995818822733831039163487140059958069571349335297234819622938493463367359723018556354759084518923045266089952419217664831361477615744439812147601342920056949989613439185394247373577196768606974482217676295461004516286413852400321296570376925734400246982772698757893170793095241206961385921164615213368512627351587336550951015707252745029491556300980520824938380425018280007366242408599695798254072293239322001346832740902552891891237535118348974282000853317050676609003360911729700698807286325698636642776803196163951579891206502910511128257646362242658328865997885858496146264753344477660983038329762518527098558635956295999898932343571039021722811649164313539742408980807850482611334130667918919482165838976291399761933697952552324197072548383999560520078791329079681063274381032386624478836075469272173884741678166446946303942444496277679672634418353211690215449853687070598723227929794689122922666076817474656958334631980689971883160159894994157857385724468092352123675643147285437777416330647954892998804724038369521517741458908852516102271806639237294983501836535451529853493530039417214230007018176656320072212829691864636321422950366805727485346254193867374493159585548371596663266514923472072397357694570403615538354392415550401438744304062694008040619382801918695023294125706083447548802687622864837639814908533396975738766097899632069002899431774677665366097601653279933779596862144198522528099457702610309151607956713084370137768850372790506984025809803016993304120917227389143075268272445889128938052329299269272379550680001406775688592911499878613649641715442124961144578386975979316522872681113430403978244637403507777615707212088824103022478856310258399175638454879504665349893746480884970363544747578600668955918818728924559173589885459191704693206928855475854535520926771384545652874552033062514059385660098380210829339871755108227900200866643394004449409205857455285200307156047471060081613375640625007737055952365558441607854559976791163308438628028224747981685849010961475192876826752613365247844855693830325396643903804492113980304623998516749221140830005931526533715184249756736169405188741884324167122188243133128071222901006983393871793472611889135133384133678464139374983846499528205496189464995351602593441581274303308748186135970312358750211424646235525762718664736097017267585086540015565700731660635769843163907860066169707203402252754300780851289275987165367111745658768736537590241049204709355802327051606346040890663119394359333251057751242066868612182090337062773356306868948556175203014064320987782451169531732933605720881185989694730450977020928711517592909018812972459775023242173968304633213154197143882807398635091941052654212459391352363715144366961518693631889531542983724909704867780321015495803881212061965443358466579711949579177502820447386479449098459672313773110963367084069542611802245546554863542427632006252206341481121331773983859505755390797998771475474015201232200041444359831148136962130608561239635006437670373519222118109289913970029761639255264699355351666061070264595590170313987285538460843917172923324489695350436629358650960323500450314435744688331218825569043588942366405021434042188273644106044212246853284281512744247005335438108293808851430665703221797086298951599286973727420246003753334158502415679182768988821246284611301387132515034171433041433609685543796904036889985841369562642492446516116005802956455483591895254180515345939103521405632426384794161363150686073830544741744356484135216101864853937345580024713877427736414098771024013409575439448703462291061104998611709907461450361070816574123740580727757985748377128552368025491824715064969440805913939833527650481082276017929995947331764621722790921048709733110167109396069702871580588857903153025414964338466906590391082781867972776790947248522024721416331406534848829984657043914727353124059349372715155047609685745433374122478837190794433961769316354645127534525543082433699123871727329828492305382144590611407432809371350942088471419461453479493021189320603284589196549277667834318932501823877488455789295452561386911169863189439468138240279872123280806007006030537490179879587747909917453027079893224929846378889427520083746670797332603367574572787369474037928232533446038507532745848798325267271381143795378323228913295438564598973219622447959289739376004465325297634780053636238736914512270586048397199545983184020236769331237092518277672919870655014150034677498033374771339356637842092561579161594244051854489413017858958315988914250391074130628374112125312786639526955327108080884120715003863024370580608714245947636094701190878265419937224361948649027086455085750115018989898694621161192947199871004612786982553097208184812361061419815291297660541493996633959480220909582457819295017835267916468109770405356060718596236750256549212261217096408705577694086838248058288456855513698729946405641828891686408054345680479719780188175832089031445974565349907771564653078107287716020958868796259420082539314437716632212512514294930214263646810030238936922844582468920231829938919895186967701534514889354829120657537416131136578167111480308934762696764753780862949684060606746436119621271843499923518819083392266344981291541842369515501738911758199346719175837134577515651349769032251457411619462243970844470753813912510325016487842158946209967328134735776478201715092436145628849076772250567715279928887004894347877093952512362409182007972274779028551892770926312606561927092823028033974907244388334662276305339403561911398843568982802722089743455402042135968499606198938305204056645319453221225237046087214127730002234671620434811483789188936621731572519802408436413734828195129076206582326299693457946210347042641662521079279821595272099227249247549829232290337735395697559919621905446303131226108542923154894000603338044478816288230111136205968441982469660325391013780045754551958994754978401166326524162997617602600711766352545000495092464939048236211406055382853743219713972274899575061607006954904839421577489910663540139592170992550057797812875825434586118142444954697293686861001959617261903594787797633735858540163076171562500949987772330931878250271380520163905943418719626626099843428999814772889702761888809005187277433685800692786979092459574873012488487531852131203450405323100014235493901237427428118634132020030430994810451489809896927565518963053956300934895608010506995143090355401940083475749000217964730038734826783139112682183874603538063916245519463927917422669108617899368091689571107119580787735663993909110101865429013824561513261262060661567132999167406782533299987995414755847111493929254033347207192810672278112192995411542702931803200136736308761713656935318141418910848557840860322465178166275246383610508469069728486048457298873386059026239098381701190608433432896213532476404022617418383230611517391279993216406909572501175102520265115280590988013998821580262421635093574459795184682925979139561969171884997697831103771984549429711554532079106419728390815348949118788430157836296189946741275676049377600009946259092957387221388278409616745946158974393490393487572705638101607351141069017946918169941262617170187986206024834935973259887466030694898366472536124909495130653378715078029810970673812788950357721952429291292714005113066320221231834176055874760963538431780677164433813277260353465896116063681232920779748273944087072485436674899247504720308991231818725407585478262944264188972396904380695615033507802927187814128431920290933603052215006564131177961110522531202378913078818883935387151196532613318125446939791514979775599181546678546151352269330763894713492643859148429311041552951811304591687925244636856260921907488186363478079463764556539783246150593182757465411041407320395862707632577453240587843621319275606138562556086990587546983597685830315527073809200956441819722350915149216485010654583973915794848418833448286739847257337919215968150200178642238479609057477429410338526807381597623997173704616050761349817551907434842355679574987864553792719542453451507591748418209790794627848347813801902181275439407053145865057075299663212395665536468964204856209722697115796843422762476328039687124993962108543725725798315533473827397511666083905428258503412501388644112698230245715424717547992577120218316783350173959591297898215810139443914090591757209847268034606015663408614795824717303658167559800294124718107586800945168951059160123557849518645346836390404573201989964585106302465008606024246454970923141054340836104134339019462478153814785753133666201809508068218353168623550363200527554138087677621822458759605783661409377071621047574248048481879063124116333791587754417708447968246792155417803293232273037892383787611681589988308659635790887802370666644244140458641146547702945502821852873284292327682387868240277218405319351694719811793201909532965868641283718177939829825840460798890304250283336724668701127535672342196119012784154665407084259049089821199067649140725775736891248410231305055511818911490278572658788294618245954958777205455745371681543743764714689919547356832366383367209828594749547157151506890550037096684235998916966880887661417498574858140502619927871300919222672972680094567292863922204917983675023467485680065276770730624926091016451349532819873339545990642087802443557139490267727290199006439897508395847718766214720551391768956130953907497491257519907918797027059078663578274517325569059372634859356468600639955456113283224124127923661848883580719830375475264988070052693557520381881519168696659565572924467755998574873408200180338015308503227080637411046666525351042188515969512680025678853268127164371199331748996760398885548019297870124870705694883041253187206526280669809408730006376337237208429294903248718256430784939741837189005987230186494164386756677487856960076710331195203630467603689774523888689309715929805813621844349604045817006959013949229840589362142965982856867982967549928238674700535303158091172453749878641115943704912342235173958685297883191280638557535920804517161341923227976210936370653509351079490522659507172379946134992163212533193798843471928456650364827898935896170292363235838371148162014047882081034492370111599820205263787818320985097105244896272061563769339733013584957522065095804095487270952368233925715409705377151303560225294312673717156997540688977162462422938117218478963397856703320706953836931290145654216978756353091809285634617926562249537776367218063833657260274859874333018186250503744173363001203091292916195174491392892822457152841641289148700401305200014611531430815866321198908163379306089311537572334284011327653359797389122239397750352775044957376575156463940620044071779013549098337072252297085863406096146688280163863387420631690903952186615858840652252087206463930233072777831285644782911285470976499198611560251711340149581694077907152275805465525468268300507995936652993140703284877925833253481321594649742190936910650188773401113749491494411244114670902347732306822706342399003698655515570020992590908945828149320967715135304684359210175934808957143300289722186916318102449474454141045438669630026258855543829405778733727615968354764970647556942791405069511225735451897147238298774793151564285279349725663352813469495539539067362449976289936835764166359709701240256316223740109537096808996594208220230061461253666612710236182862079650880462730827611340605144477037621132721936879881050523466362083466891735510159754176049518074086682087626659542818672663445330088060008013187356161963890555745990962471474528299738485631812917798384342732238216212127710755090402691884313314784397737432287567894495586157319863875669771313265474233440988605887301639545421690034642206625969065061524274747929472274160695256021024886784343836998505237952812493112693129893517425825500505432496939689968129251884873188481169998079868133826013114254515572054045257701327565114030287168383863267573972150056591116245446100491009491778971484952849575411772286331183662189275649012740584681158054833873907620625592576809008049748087486900289942826461644377793394332547783918135090626117304703605560557680494149453389756222080853305637103952906427107458136309112088578445532255577178749332298046422818771758307123308966011756935934340983962555608380171814532233417172764643595473549190131274503794739476577824749533761148603575748424392860239400348485621653137276607562407712470255305014466425767957372072912622269134234960028126571927129995416033242846274959573414016453511818417652996683675074348729319495588191388704085101209508911895391496983622502820846538495873201356352390214617255981127339285842986926775702054499383962486967680374236030782802066955775780718837893371978560770245405455663721853760762049317348774762196349749376536133602118824213154004028287893941443746480693142360611371173234476540360215384985821550961415642230930179522469281000970015699243022668752166744675977949063534165433122113139247821535616803290180048091868400614838408940706466018968508311934401971219142132576671479007222054275840127865677270656708657556432631897385046081378023074257428325774161895514749088110240334266956838776909810363757834317773061640541890355580515264775643881740381219235607459341572407402530722783134693912950582109645354389165913274209587350435187875688929642193115970611268724464483242321291810454480638226592721191393836168671704757977281636969282657459437227880210657942331400048218545186932397491713874894226148261218802281500399461698543600264665112148867611226682851001488971892763391569061071158316861774958029393646324486424181630726339612057564582025393157562580672066208174338349486898582684215790836337167865041943100850717993110402180058057806143103870392591905723446587183270531856676898212401754319576996157710826977384379314911445865074161476578841631980646515774415342209621382963895093167257231886939222278122220096377616068005964666773732791642399380133881119213196684776239491937600165378549630692323922590753845892586324729302527195287493940904651528991833789204974256180885060164097642708090942261634872839810018925243309786141086745390620881496117183616214663114442926505518760967532733419412092342422410077856750629426355600122397040985334182501187848028287807463479282635723319592672555452713399096312876129794423561780456046531954420804734216051444122226063348835521378283901750288425091174191634012529419117882202679582389657332522412628014237392090218132925934046196662671319580802806197587673375159118696641470917520939520975928963782975545138021636069540291107499761648431065864438549321633866133168211039403867081317257258697133447514116634799567604191038115759378932095578153230923893200945858630635855536524473988156537378697179862216865139338022690861854023302299472931706680397023879633151846955055019237168461824984608638078877867031197044982101225441096887553140863314134705018810684284829503418853740271031893351231567604994234789211235091833347189958976985958932650977327869287163415643138185276559549330108555974413461143686172248622043035610672008075269693322841230729892202439211326234917771387141532405464335022986692867719221625872348686855757266351003074465882453870653962738224654393883405146159442078534767067841075695130441295347603243974207398122695846492158969304028792569954108613854817620246540839005432877493149221257381693044041942599884988823125581322679327006994077181727852701877339816825261224030857019008026535262120177536893920437024877479874745390748917569251823427710908692742067623571396566553296073405778710089708590684799380297475370187958144080137548113496719463453448128407210400228742005781723435967762623186222945141408016684968397215958038078541707453054194405683310419419707400266996519522989302120594363598860795367097170684890499352946406965385232676095980716876539318678108232395707153039135443220439832967151801420734759514925069834306162722675342574515561651853836002858875420814422085046169767847832472598966384649604245185583767304967145753450689981425651631425956967613385304569684106038026578670998381349935998684364504224732611097018678114714161103944348948204344891630323327074997834984381200052070668051501862887795438144561310799726567244935807599367084977486299568245530271057654482847988357812054518248492757954282910868557704876093065357591070141679816764471439160386891975332203902123933170408618341751581477733681107450789928540071986498477123311297475166338400513615593462034656117865219007099728003379996452557979906826509276772008102605423122936370066985623754667370047224644415760077971892078215055840251609870550631425153623852261347605162612413362182364777004896905149579110281829638161077684560710114945412604442651458493753507184978798352092274269791637854667379200078508760712290321007679447834815753587197956795023959833177557545682781476101206789565747588769226730960410525538611788724330322123652897644849248938997839038550283378345956302584873602121011077775362157301258803169383890627830280798204849353670360118844054019887209768557466528318734600883364030356405708369051245230375396676284103153357168304563356256165877934335986725037435066890022928404317980864713352549544163259662071029991330260100047369110953900316570807697920478139530065841937196230441636510535625299451063653274140872726582230297892768073436593407572922463185247390228173067887333088776342654524559307766253806374605618828685572174018636953081994583101784009723360425786953078601928981801229563841361794928881591813341816171325929701343932883771804627939732679224032349740745910716710345407132576823873839237439702884115282710618790120343852521632709303566195663051400276270132672198126154405445291951772503583445774179161378579875471940048183240668143505842932967342585813825722785775049301500472491940629874984796584750310988344065592668374877286031520905424419649194435800459400801084204613585467871360546225424198754360610295648151324718593841617588443965152657370556721772487819471144867276776244536135518267341036426732269994413033407649412388147769312406305869854323438647653771962488353949445495134456199336240309522921545204339207885030894813456541040419650002078640288287273142189738436729963835820261743495397740582553293274793177311880760658139729137924030588533043668725380046989543703779973685343254691200438053709564307974215389936251873492163994758269477764512903788258438978800910698460715494916002004492347137920329432670286884568869565950508504852575899078809306020724787476131613646939607820026371878288297259383076324758745858362812875392418643310018108327134453270278263287875952447773107797399390827584869094110011296790056673051001214988601943377676861006520976661292238804009611332806228159496962108559682161551993884601410945937737614592586415374160386192885240426762979226981973686603976881922840634616332675513319362762222911907652546112512269643521639390453290053312256211512579311448708585389692074271521514534245893161535526124213926384341418541128493838555573421343278549975476626873329046487082074124818389465107364825538194124856683815688660794251623742092417770749256186297941874418514231452839402284230693133345823396765582053260174285493873256211698514508365407411196734650289273735391760983574170171189016256657264952036294148980061845711724654730996467917583921931967958173886635130527045495405988308291665058494791748050092707340519603183697454820138017782838597530129291297466667100682867905562190017153563901040511996020527755082096283697805669892173261150555279255998516798003818500021658807202786792129644325361228049068464071970525861736521672054871809092724336308443417283728871238662102445178414045440569352332967533060215356153050202464264120809337763428982368699617293307584651162247249602105596042419651996476185255635391431177992017961432346309146919927938236615544363837902411963455685351947598537736147096964395254875557373127073829894710062477252362587852981590325991742480796848625443217542819609308632192755537456772591361869836166650377821789777052148374977478855367461438606128860860341939079111821569772683975549625995753806162338540984699191672527983083845588516506501371710905089231889682017151241039310868470416277505039237132336177790228063274954190550146346606103290162904485277984286904178976469408469207414575421800734074888412205453741312691538430536163495105823979179160865485826500634982600459391815457529284629223703078505110873261883133434800309284754763396780434058357890422072893143679061925558664921556253926501470446989318691677295670230163481003840750727386142274673666216308490509173668798512472096569750278735429353828382080504302833023798300514050986448515830276097953404429427298824779828303455592161887277214580100325221269181460768196355607398414539949258946922429031662077561316397270669674140612957375836701411625570120693434784068668070904757173518776137073748751475160066694326457311763001692802693604443699982939010255785840396911336791163574708340717231955340979019846021550126285896930574006590720043313740666130355080078309027858524873869969987097438911786027538052359441631236493067040833376077549805115804853897471980464544956730228460036218760937654485197735870241345801631374954797114253492346971091234093267999752061779455376008184588579012074682550143008225575181724642684913853540879826839438693651646835110926099481236029857294436862866446229070270395322818178322458490052457689103990972544405111554642103928558469298210805308390625547257152720247490673037965671999637855356469743756667250328178927404638978304792481436586296348018112343073417916569880934125170723473677601414970895156071783041438788662825646533887436033740367810965219232682279708729624944659221042003025719165744934824837812057997934560207692328290154540821230409946438086281619620270843611762798415365961651459699380594980969768876973830555675883874059811060701996310805246159356762657521980956189400470772377804086587724301709561394879040624924267567808084757635111691151083479988714918199044922602910974449437692785229815043224634425567120929659858020160044963032780812161506363208218271831633780642982846131180140649784619413299023161327158122076008946671270541996452915778637768889188540737950481055973311704895555147592679489903900055296828094483108249322457997739993842938619665717601213728337556036126428905481628217477362403398131207773647777186038321863581299561452080581638175723399535165267404871676863731140466320688666439838985114956594613787978507705753747243419973829785883045584701947570718625273147698097964821631262704643502889747420740366901991955477709240354920170188954470417074078071720631623425519309673967383962351277983295268490494082016623974822643004608616380943287936657374060188864524469237903586683968132164581234593287164202891538164933573606454098179980930593226188848426703465089812376277547414019909079058540401919757774209999687026679514353522179736478940069042125073679136017919522556488255130487101515162743877892261297412214832585690657516842479467232676839101063271041522071066828962638193375008497903500042155926201077372585885857094798396085569479774293516233858013846370745289025908848398591818099386026317444200612141336295106819156764096974618602674304803944653776949777420870510622408267113786488290795089976403181419146522780659459528355872762565855026160294090108874145337270634847859753835616264978255838229542802294857995239580207947085095863081472220794034473522787511129269155671401226625107406500312897113170442682922599138955753197186408374943544646470586881165704277195150853056154001829510572252368132296762747567354007835607818300984721578658836642499461369802483701674193506679581797476108600894529763688582870944505498192081074111602617027659755232595175260137548279693910241812605602037303926092809567614495293568662079544113065109244017187642300440180906507194109864111212500032080522062264637258007042409323784748693128359428522560091356907752485648051621765927930187755979240455248066310762614114639025009838701395348431729253285582073521387457000094793279356772498117709540374997961481566167898361686683862076722188953088001974689196936896971618728587344771559705123847624477781389805265959389149549813730774079414092596596246003945694449220544577038228443322248878598196894171529724248834044513971324916462596870326901050465039089441845664237018926171892094817684173454408469583684719007097170415852174719570151535839263755024906884873781751516844313843473521519942886498210846730100332030497597852216881419187867495562976638387472611460905524669410701119586031795867184292218539029780403926577243220054247444651147489120237685383988206078647396760609991683439525996169437530326254284604390265759049943555146018064088771050477298335994353013365488372256526358518081015889320308738418721369565313622054479522451210332057915749826272206245023083541857644432230725888780757712541562061332191306364393430136338644293305575252431726251227633846660449368639184363271912919148632073333945902670512429220759043630055596986828023430577186729463680173325079168349244618787525476825472525018095702430044840512329982610292732175298697655735272414051578095517419831357546696702993592845301428744195260812399508249033612633041517934015977351165742039099243529925356771289117165991842479522276957167067188610164076685705717502489808758774846606457438430914741519441687817503676278283879941408807017220550689935814588944770655355837977266446903088223084072918028246306380906268916164958830027929223239089831377474343203475740689740834005074807045514127183426447712675633184996651789131168817213985098911696036083428429742676096908653626085027051253838449165307798499589567967263745381730390053687153119515871243376982454254174081004307401135359410004036011388360255140447738280912983093123669844909315676912617751840179231012768018256659060465296397279793144611669756005441761564095367174368902183552489080357997790250839144081757496136662156431344588200512534102186272510185520872224656068940912035464599596521064136716610907912265755810369197352285433710343308823979157183318272275388206130146326047864957168236094831757807298985675023392916077942573900681235776612901745978425318059129552423665528850061543093322016665144920079124499016607724169764249308421412492242103371686526084923333102004575593559737538622924746872523455200121390441602798203081991279568041351134657096359578978677258289245180605764587818928460183912486392323659003302773758132981392828035249209767636912061948102063191283344500492389788230363777085527912659363590024420047658411251127265890770738590199794858843324250557677096604060421562702463676977867420010530007216369582066287693353739772202640071031579015062373936011948475862033133721763073583617507295456650792758673466967253595721215839116617532361173309854491041620175799746381710275725813838394463458936457062979645070041765678385034198853331286267347198378084549418455727127548115819998642699959929399636029107978632729928535079090894448273256053489767835868211518268347148497502216448609765625643464232533728319452311522307107918667367780569470511707176808783773238597718683725941922092114395660159037226103392020016746974939630663425934100993312194783970028548260825632891738293015473923391912487639269567666440293975949969152335542432604498681860037378809591171527850128023464560119109789719831553506760187988544026150859693001425681861076611246761732701622337459239302942963145959138658016874172467482156488221907559640367574459695072609000271925467619910183643443396138839767552586066920058886656108039546456350216625190189821852905515679132895623903930793425317559113640201018660424372885360582783928156152602771197310038238424596117923898875870789906961377351612379633108962063159744414268458609725907305366796510058193852015558721898889259299799994289072278408140057105381579810649918894605537184640028433204236096243231996547390439627778780445868816848246858730734279652513922681374593464124554258687277328848858082010419285699382852549033803181644189568416869091962834412529642846284949506830139512452110938732586456156989840227364912900685888465919094554543767242330937359595300594125475946855656444226557034859486474180475271701528973875467126244272203696225554283039179758184368133763778416449471973689402511288159669135474847920978973756345218402972367368353047091548608468760848747511187954501197078543526029441832513519899457974013542978463893164246083228832492409421349946982358047524187387176276656417123495899635728701451878926103597030167002865366735782601956797885110591473353514673164809443908056122762131674001612821273416850211835795664361799226177917314715666317463798856456723791074792155146877912087265460569527142530767879925270440518674755737255785054398523082760475449902460619450888469674689946570992581418663784491176011590631244231335773237139936857205663825023058557873454711984295237594138346841183117330083752032714106635227059872976056908748924558657030098622236397224555149774696795526837555382150757198439701727611629661985159256803148707390204915137291715732589860131666845028632394611507038384053912054420616628770595808822569433801182939867071268254848854174614958816753885336893494910126593225561705236069333598113058684246628872485539594847362502325306076597725523160217787830966517919049710041001393566324997714132235524712834984234381298946484049239914288286289208885731224987245246782064544305403831798678660355300055075882705589323076375316610369677862799627832347876115029182735610828324575930208028033895252963861100746672940479599043227702475827177577150865507221589783024635340326435080858726299210670397807200393315976749770775798092972961244115638602843439898158030020222515468044258456960429363413511887329290715720548104203799471498633670356289483340903590682219059884206352141656530984599380664931039948345139620430170193509161115541284628012365792903924911128644240393757973753240496838016741674597497456236986072200684715685058458954408036084058006975539055522718885797653073975450595782482623534694929671767237961567911793454536155568467601194882655471463194929795715702165010249174368019257299482026424922626517840882167200364492705437342288842243235800110843475419215099195394196581053795470174179267041775301271343530611769271147256088078372924963651312688544472893291637838363790029619430621163012172895028893540548303466572903785792907822440273779535050738458352771470238990991301490462703793749436244275200688925064808010943080687582563805856852290262037494338185844385312930497241160882958409966322832331195661615808314304467871121265655200418159880254674731018163849623029249015860938452394033998488265571996744521714662235230011960475171976483969236837331100448874993580246127074318112178290399302446388596035406820035674520179335492739770623997159733547284122992171807359131920649650048366912330129906178247464468246361413877423642863946723920708920384260830048583064912759006429324754156737783125965389216999586701821310340662399876662765554265990836550987517946541273482590296089044290724464260182705892077728245612962309592883441614574425947684875540509761585735444868346941260350168668105654383731760600986301470941254717935061322208689524828836474941850975406331458086798522908692110694734587765891133570104185332210408519707306742060012988071896180045039348475054012242382836775615953998307901148124282044650712140281476728941161964260835487984647972188671322530009432556285227330489477816327547014357766479930331086551291206978160142625971612361100115908998453111338808818754004293996899497371132563603205417513084045479493171739253109789539657098625728699082169295399684980341647369003106471605007374369816434883018952724693329772468973897203040778568241815565223990989141014034530376392102149885120057547540293929620908968294871504337762995709469417765478764737965560783687114418576232933114105091799025143948814312890711176115451865664153570895077971265589796125956359292284700252305651010018964292553198426528255647006998125528061585990298344920092393319009123117052473557670131685642597836027925487263962701659492891557019015490491868271029806355962395493626065113555262733654838022722483899097326728160251861475866593274108689214838645083750131907352110698498900103578439599385045941796036114645950676087565544043784279764675816464764890334178754372150966401733444375891287069207839886746546863359555390005052285068886699037762178682857015381742190939598553283511840195121728730830673663794599557926384301567869870860801978179781520767130827201264032856732719770990699995715167801897143540524281437420395518097533755207748581659696107476447525808558614516063680735434317365531667463199569279238906882354350968714410178814723762681638369522010912548554942884549553330736586454171862909919476429085612305041002955447517626665894319846708689386320863656420452252282694228706137874366795539695285250223573029234982585968376454996986065853731634600316148167593421382130653211336049349692060234750319439511983718588938031541911742251435206512340283944237007127017265282567130044178258172070044130895754961158971333293265113745021924281935947545545485073419185086854585034608980861501800347814689005705792332636424010745530336676600599182017281362055644724595046335543501846612140057040065381486274127416086129674454432421910690868420141727125564014528499628927532924519792231154146310351969701435970095648727241935371361502473859042814125256965727171860816388424807720317974872289027896840884993474899165947797572056689937615059983378534764466608967674968195420708365003140187496724946228508724188041464611345639203109722075700458939991099752673542410556973645590017660806586949166806818177920870573856176655245598510843620238624548662716164552001217850815159117617748802842087244441666004539750774206473010646227560090537859971786982201214010302596496799242878385967153834627011671759777689487715185836152099987769594712247088510347372955219276794576484628089564813101779905377980165795479726501297440207401644013339369072653044478374969618351647424394114802630819286365678272744970869848629115918546799089387585048553143435751407529211888621150145438274287244618134143253657748496042984372362355690782828620146559911215171264854875821922261538842311314762603091604689437976437971179090535669511124769130109425363933382878381075122405151224476952394810997356270091566282175996786794434484623757017214904862251676644339098473034828793257298822882469473148857176463170065309999483744962599001359949606916259608197869470233197042582365812784638328037075373959517694204992288830938706845533393043802841907089814566527222131516195693954891966928212494165671339476916721291579693029853031200432149407961603095734350236685221983322628775485627484682852818928741844680794560099493576487900663322366357824828686339415430413148713732061532825261255546683032315760271339527645007390647446460791659061659568917128607346883987146599449666736940724558143214592233646688774782620740297926852949588125617126422476349334082256816011974255580213997656748355027731134917587011551001678207563911063872046269278758342198809216286859060015957931234001136904739165544633238747875187289816448220180452990283495188897068470545460990588444870022479592587895728559699829642328544803746360199144110777330741068123727246164004540874234444232663653713361950136821341181207789086357606359830387696896896539550419445386728180640544725957947878204437020367728474756574450190116064334405861008997216788606934315597786192057439761089403675615722664212575158799539943239671490572201128997872944650208700535142510234650802366445510827575539127646035379480021492010424981752884035809058404917297683880942418937268635294906883785444305447163323947580429507785908331172453271074148024861811394352824763663632359695305432734902892548117535059798837480184014660707513915059930375760139959765320984135821045244338376968401934881439303954986648601876604099669548709577738392556074874927249092746875843437793221762439564557237022744367716193300942038340352753618485876463153865983298219729991659442030830591701582613809942888244928465179193414627251365793829870802024820466752976953582771655739742598333060520200022472560310001494294784692359127070118028890563992122987167444066752384233292945528957538366391629034065541812592256143843468833413652335764882015601173347886600324755158913892653421522486081104406900191119480672022847806050787321757564425763832910709337157007953355312285826770004603596592946935826444508774458619308018625532584479811112683535506301311355207720075728397928854848054854278656824527478305524565983703070482505155729524661923280349157233093538299711047622062448434204920555979386501545183347970520510534988675376178574589945520478500014315160288601136936213487238002869013756208551472654653458799808914717830448118060248049470478370677796251064540674698022170394419380216697109383804067433112862533441603724778894677543311430898523082548359530046299144672455757215327746121112830793476671226729568010392788999608784128124216221202912078417283660639204628575498746126567454377907806521291236714053918030793827338420410096638903256016203061870509974697302485222486715125445377874074811128233941794855080248238006926285920298732005438935622720194790582688949480363810827488091543133432923903335344482074951324399567816374445286086386841587109816931147997029303014244426162288804856521012903949972507459490658128239358293296921319611914778138742991583749712002107858208871138030348157034410233289135403000971835313848356817871424876388012065427212840714831453720748322738692313563865343425385616252145097787673710264952728067742617782780482294802839105403147043143500172074438780355190943102722503205673381684841540203018145922148082039576997405536242794516308804211179002479273811563080540673288435565610748064215142429796722687108022651082943800259258750718384869014249921308125856889000683904240499819406613543029582746760046647032631597206092995836556298355036941915255037520489322127219669277199886778073575994193225071057949544270520179253369873994485353013846727345085555372791140758119581922684562877029733481897286022005431283923051329313398925079872519808739224861938455050990991128343245636754949505545665049506976836442067999001272880226473761713307005117148282153599042359566000102014556227029133654397530669881670014203981555004036959649095937223989430110632735974010047526157228971289011765839397090268618864971207819073837734853386175386691223560675256380989916577332547668427311742040873710015668201936448834682804853424741836843351702499480634813453294062119061874354854888712265140438333013581567113551723689215209898700349217392179573782604848030835983232077518741497076053362754130963054519826145567679932054009149417656989698699619882646198225697393540693083565742935596676834567857451067295940878517293019131683268844269168271476026813502868207759867615687759027544787228561678831769303209823316801981387251282131779322707813302284583975821525024152254277960706427092347727148354320084705582678476062489029350437014557580347836912971892340334383861023056050333385448139258335818482068266392097068189207626904848036050948927601875524885452411466960503579003482930860555212279754865832706278850896222386879445667273370160716341869921360781510057770797534514298421178754096686352053616261000353031136135357446204145222466666428430303036119847736928364056502840534717135398302250069016117573985129543313930943340720663922660641502423957792741316328505164780861800205645169037818091947995482341735638424009338190246361782595728205291457027348439266993317802623299654792090348069722160027995827566073000631773863812532075295296085918262613250452556441456800746624628297309934462768979851761296593735379027398015817889267049313590470248976294154378074642917898939482087896733299461335031643954633289859921054721824797758400498615962031219531735160592136033021790093989016839123594459497504413978885281104348204345083968357101691410133887449097233519878151158962182093708361865036536506097789864247759570521932057528257741242071462215292362275990625328301077791162715782069763415791134474105215738215844953081559323049043404361719464037828818971828746540035219485860210405194227752492953716250299327398519248170073558927700311965419729139691089608036436825223085443544271152888027669115868639778124553229524694607496193730368406902352357084083357146187644037666349616747434100823179297222621952763448559103747327921962640553894298708079438932922817645368187787483949650149040218910577974896790151836132922515696768840223545755998934070770339339519537040341468619240792847076420227831813704270507685471969771014082276013953045831936933051800311811490339425693257687223739545617947011701915756168032367160935126231137499295262493715943297266917017377594987457946727804278071894860319384211770233891010441123031174743891566254922297983756759360199155606828109675285110773234035369296397301906690219919439121111110192311639118539729890274166516341022516700484758454693705587060283976842707443162812410610598461744366943449328586490084950460788428168617087261590486670698376961800470316562301414698974458854329672340897065574930936525567216884624323595238941898062710111404681410451532863326269164002459822963958199626561916846659030593225265688983874969077194805396737590409592487067267233322536307036570833611045690637892888907224737609651060730562078503743221475712330649922512689769207677761270024510212797587045878188425535656974437771853655528079194951691995198317736493940804651371545441310729798527797683210598237057935267688913537857320519448380220915643454183731206103240833499485207415319956561690214760347629962366710388674792460203889757561827111649581807904215256698793192804994368955359855376229063700232690909894332494123946981929292711549883946296343723421299975348967764459468870215335072673958618069392742046743795272495874476763570126019897381792205309053421402413816576673581410231244654187939249893669246242767315266772075502568494749613983904766662072281754084509044798841464909986800813051248638085576899104736043273106383960074199080541778362647195532893069389793380138306579117354369193553921187764331118961509991560841619195693022159671493550276888706345081558318982614356507117267057809243319770379410954485600518590533590601987704586287838270816329300115805328695490810608205311043461053015387150965474893221469008213819426951371724809355882205171700764219510658912787946012158425785055605833636378889622965373926692705554282682711258648010042929364076240465222824416410003777970683242447782970938721406511030560511355009782990491246143355440225274888103788124867603456288962990285590805915467766880754542258505061279641927807842358912621916441525401888473291241265686974055840785675227944014346015436033910237358250491176202507482332305079711377488741405587296838854704991209782817631581947975942694403831254191117310041347027082088736048586136717347206084498562796919704466148749903266054996761196844542349538110369409815247458677208479138499454452724412293938558675651821389685695440687092764649883338115922892014816621462732444930861318744126047936512447330636919038088565697209639121575172473578811766661485033919547943488375495311649860129116884761436082976531235751954806546736804367689245287267613611891575867024940188658536117769374820672357338032417022753833676168445230578822756906999464967966534938339272292083355472482912476537252354237795635679497061490602956921294563830539415617543780367351858151283599575569282623105851045276519721693244730172875410954905354075175882546412610432532058926846024848273221953347662311483350041032644756495310985254096475016565135780624326247596161082363675543836946680361933453626566188183391836246097180996183911389661028133923170092664386419058365690009966957505177070279157417915588664247407254471928370722535481565040585249971746942089386067379567081083676220818283363800749663097350486877625959127057485374220595594040346048724123114914527272278727414921858092919572769498207354258279231645529582971326498113270752373097059203805155957708591164612339454215394228438289943837445292637005138973286122139533427086420918457596319456876427981107956494732030757225286126141377053266447098612710945580302876848770686584812664348234862619857109207674513243808860963036122441972961093799770481023652762530817483336757438855793811055966498080621818806522038443533361594305679606418635361818692188347145991358150256588201794312514984997212843033902673220640578503974104473340778999819522429155563081367734055596459003031515149804729434543389713640801801479516735024563813931647724967747147953086873353958921490883989468800691222047719968634710705196222230450834570204114260218515721861135337684835744545040811381249489131208899797059064783796695201047770152602055186142348937908681112886350665021197088435338292956237334250810266291503052432905910970354446089652972372267393243405776746488302940591930439270429884208944058618958198356472149470452323883708548001159689806109954887725775412086017098942814741453147220968790186065073258554794260067890203218086763551496078332081900859973237271390870506994054790180375026136438428201103095993986590090794958375178616165525425523351538400716378413873709978354925745793389186370432394191666565297140101298411095750660450730719879020800858945080261696568660879141988431135835974918454628461239833126131704347111074199085745008532808704283080846462046973572453869955438880648229384204928782127921991133400144777775474501960525381442223232454079036781602058798275964468594306965454326793713184077969413632856542980204695556935120247596220332593165546333131367219186659703430591412290931217378518055234675082992889302883739137156809573627166160311943840962031341743851686089571517865656998021011401395597108806805186786891695420117820776862536845630528913978432108858524962020753559254018975639258271132564690569129537033221776287767631308074706222832830295057005253959016524989479298259280713963926750547170445096406390714690678019005356863985362273588222440995741129472336893650814723233038756322438629557768644550438966371551436547050905992935466552833730640968016172296445816421815776569127630219866449756290663266750256253183489515779314863889666471591288952136895523887927424601389208699521691449990490722033528810768386566852184013242536118619800861470720460061807688867328727711359037544032685874069879217506806209522839687983307780631992708489146993041410038708094934189319726117477465031348481049914501348555088735570069190133735680424654216331565934906595695972798472406036102063230747662201982820334342108463324570208883949736727048775509405681998748991828592669369140518344850919218697064821972404780963197220168802003405697958931782564858583197215790152599903201930856222109729341830500637000895106734261095971383027536977488958551677297523025623340659510670868974163979645811617953632092277211101836387194272806501366847001631733379929270909217799235990479749504698828163751147100208275269568254191114463447518195872425959589409405267653015955303232346554816623669342613165669690775098596705919111590940773154268242820474293095763550508562350961051891153429844359174606198815657475575497579068850206999705704040114374908675300149665991047053426728665397604664968290906778368127585619874834461162934642394611333248800682891222961335708198302824008326647964250883908664991545866908667697368596848382455686981662717456233851015117564669352874957024585575255243485432014527760018618139982036661915960484327002547591027791559197549122656675023244142971657885864597990923402677624818357638246548148036538226437869220554113118052924827849086248929518082360431184381595658196397136949345575643864569773677968756150093776215399536529496766983339503219030171067239375155204933986835989176387939040671595457831119336927862662914458042917132870037042101214447796757028043721162813965581930744145367566511235872091024906207065445670407459027142039503811994096643953085567748738027570917930620144398327069032876169314047317061731267899599680347101874873636293370482378158889251097712887673107860639557814954227213281136579984622529855155310138489432526868749688142935380340118973260769519543847400175003540949421081869539285459105514292644574071452795102425226934915587725192727498134120266089997613696675751626066205381656950020348031027254111777329224588008061605324356278440573005674677789370587237596503084207262339265345920298589107406631745108363376696359444950642961420198851902007882733311586503798661135287067452547610820144798044035918348086493316102880618781876056910327134400555538521146703998566692870647890437378698323882263023101184997566985023541713960752798940451893123305914935146325742842638918343971574586292705245067954435092282286865161198051884839828675546998353918905190033609780979949935286160996421773651463495311753086337439328439668609629702538086407761393988684969210239406306022279160195231219687923680380236962574464040062479250022189016344264990293508311492569278449943109330037955955694298369275233695877057871432002663809943241989901322617046241316267017299956898304759186884424827304598133706335599296399875473858770735303399434777283617318533506260493094544643183473397332934423851050734913828883509103777847136688750980409084876811251043979245722685670581166542869747569229575769126952592934619183106808930905101281308851842845042962266123333590073099081331444026151585710053013107719482966278333731341762848762224245351851980170995013125172729041235523094939188230807369121438912582312462102731943526455890514884554451237204512626121094558566908994711030403949269307368735202542806978903905267917330579546224372010331864692242209502873925947074959515086112555674069392614750178086957410383248823151701853819312066539280957189048726146605617298842335248500888051581817861001046611757154558173706195332822722993790469597028248393510410496315791562687205522280397308005038680694681243407898351559104965844775191354724525766877702288371592306739018699458134372550049450856500025822960820325120773278495354805694695677721048144406704336373112229491588411371376260198486063126195347041416300787004513133475787804653028712380485453793208053180703937010188946706982465080438398822075835260740861323676977564309892344347989377097977378992056064022295014853906728096586259754915060943898326962512600709092701844842385365718619657243665054334108170876100388098395090935709306690636310943907218396740895111321117549748863772086663174858342486344538156486745948547810701037722279225221516309213869601843078545507008246854648907913282675144069697780104409287113182425061541956901332101260319535781983062110576163753119232222189407785639818916656214349581445727990180604789913335907905410541634479990926406140868804778136537178058459927476071103641633478531213630055973396374506598099255498244807054878649594467740846237992240752996084167719655896094565081783631755092901313354012132368422858507197953644639531084151464732774322773617663332488087149717905778745580409465917420330159584793222960180853611217575102942021843392946718243710958101696325856183505203440671313629044337775649296503686141373348657906860540943494229632470922922618064428561786575044358783793257646439003602291756599273909293577957052862037925846397376037502634435541358883905500271419394598147470602200052395318402039922934594216465670222364163523621034418838536557945611686597236343243492172171047393648465478347053256318790744462906499392394091324499369499539160219859647026688730636334056432825641583088403900581364415401269915639865972957211096083876427491254233213112766248543721952940901925946693461114312383158783277242548828769076555964469204831832669947354260401113156535984042300489455738407707361630528264903251914518293659517034537625669612075483104004439917405088853433344481465926635660500216416833559082332131860662619041182693396879785919112667833625815210061135363078823295280870693087403420411192807781427983681005901026813867198429980949192307979914963366695472258764235231218885668256835127015662025779562121092685170305527796460075406224704152327002000796758788108866876367953397197282812016957949545578024445879505201944536954783780439970368167060763096441201559766420599052222618835817728998814978006733061756713455296495426829707572778875381262552453168749919031014047012446682054198709177014811923434165945309784115070536963733457948249593397790092308394511074593248309146183062804077331452825348823507582528576818479609004882930525564489723156056852666405622810057831606400065120719212438153823168158664056169437250666669557728077303477206861815835317856775837252246328546049257068998472194391025343419330299554356576698526322454393309025573333638562293055523456725023017190315226168934418552947144337838267054544733250951949272338683499434055782683948605105710390240635221273567381149875207300236819009441317057715725432034945320481089095770200031147733223071850318604244165663558996184692700725245586753431234833929681585922470253540854765588876573250365169777332108536728833514694681621360608630254350737652206274958752599366177899005108874436882903468745153844978916781554907216406060276509980853897561887986059702184202823019632160331208091661594554911482727204806289545202755474017736447084374970952276590272074626255104113081838609843525267659673596307687797956524497712230484186662175421699030283267168541297132462024537453439569412725522055743099120783299458535630617653097598799387373614366248523129252144289033292029895535832070420926579745041961602082023107399123404250122587205088037212488024444185647590137454163724146430537350832900690943552355240777554393212320851479809072626039351699435536781513555975707311294891194328926089408740267046922201264591584915362445499649979164391280698091259703337004086943820235826437704688506769041571672499561546265981211026233002933248165488274359417245169950989426841972220922848523274184063544501998193316616935910141504115789046922679915379372279802815956231105538307951987011707459248895881033444492876800803385393686343799550738605629777828621316438418415681153214161361434506281639732479212843655031587448296433373955121178568224507155654972790659544347180573510787389624728948964857298225897704978466384920222750277354566032763630045584444053801780650703011562761059368312778160861349016819370212533063482580380243627182806550560562606475309800693595247823117296778875636139705869942165089014192074428175007855454208335561106318260670372712098633557287611392247542113673044658491702128156354996041260142116143630261408388357191527464135422042289852585597290342943197135091261205977306173012172716632446316679014568767339411360618834453934895025676943227499300777240404844866209924578522732858661878951066060266223969524742033955235608408067284961847401431820397547011404904226927709265582621271296344359538732062756629907119566832757857489831004137161018050986470120726593375435272918721386078453593715844421940427119003021601796194838960440983157550324037690659224553609891047154982860203920737060748671700417239824076615462067662091376801561577334620127155277824388316368318536942850646507698238995134145155709659125720371807484333285441779302463551328425399986428751785151936386615707811262089608896194437910976223089088423725115689110937776480412532211393448296568962480929948183526844026896443344254093136570756281212493480632909664419373390183051547285797494916746413442472556007406555866979582353583078136830024594880919266775058993861374680316529346701674078049304266499710388015585952215538485651079237531844195228460641978169155601647476492859056624229258853291046325368490506783828191065740730964240383500782556377052153821075551302516419821601043186776040399440473001390261033817291008849984456181049494053744333621792334984452677957723943957155868125780338248295404043708368370432826761372132089234749659938081791402724238893510774311077297737781755741749486577098834959744974909023941815898370001061925042068503036517121274422694169279106164892116232100861840721906587321577977609120363029148442225751572456234904171230185792521263068228296851212108067350365983535857548167582589961513027244274600508638375488758477232838028888126032859310017119278170947477925168917149534960218884740509889002554491930935825104492601271348005570940489623478156321079372656861800727170542852599281094767765375795881940514691750105518141302754669335800772546466124812345172466584469884705538273680417190239521674274008294377039296219119883078409547024289923689610632630686746291918847053081770647189750822289180052368043874495619306905001580538643891375949665461190841429946485732900504667480347596511353870301899971685891326290762777809279365278667622425404198704201586835232200851437462941702424497764011492405713484884217150421343685401038405596309492540062258115503077057033445219924544405582548745438703193207289530876423458568224302559056320689648645363894934292660920568925690749093321634194242625564337927893987646705277132351533640214855596499652986637698834002527836272623723361043647833251464566363141487766382304953483539954479794951222929857400627240587543467606455335746715912463690955999680469742480910169967213090216883801498424939406679534902259492301941819489200080399510027210596671196479568972323073019042178943335677071812550942309277558361784587654342268400788817487868329252771909486696335574171648221245909182936432998303405100419675624330686018174374132461040600164874472173540835111481737473636979254815940838559491990238393192173911216510638839163251747075471233206912014035135307006246985224201506706222491895284554799085936623387378604913328081238353120818029094547798013661614064567820846525428806264651556102154045627686920729079518735262916108825614796854622022882612486926297058130915602638490575173855782449970514485101776494699399651038503951444008066603177741509843399861965721846044694844547231211640963860976564989704433148743607458982653513047013501118722454473681050556252464293221590163248192360130949094279187654093948613848500357810281516923761752362781148600235384138270461828700947240222335180558923779312577219538511304330312439471427993618021253573881217515262495045427496207160428500603166259920512950147562946297203445438415941863237406578836940313700912202283455343508605531275733872985792753856885459249816224036272220945399209362229207523588226259615103003426277702818590790359782151373247453630189013126275346074501292382767835804625994375429948193596616822824026924933102643887636775800805273920292478400206689340420005467885194569318876371637459823700344812630507620272112624098399141378854885786065828295732650526461899257616484570310147440449800191183912128521211335472166947034348602803722385230106010890639243064743248162602701730858990082109840459168800668073085543075082545257244701351601313677943380014588516911846318789909636755541293820699303289611900039581396336172642283992399857259962304463128395149151899927356378172502844442237477886585691846690911857357066030602063759050043252224007830918216796514611975066560518666441713937452288392772451164096070019411903726942899419519307851180310714476424620967587847713253811135830119190994264431513332731457666309344353242585702457603329846303224308713605188930071662101697573435398991130659042381964513074376406839700074529373371822312603778805516674164609298273376505061957409259515294599030326537133562962479980563018259140060901646289967718666416890904089549992877444165035908029370097150471681933243372636950931531095809060364672030846152250864372280446476406315568262599621274304461493122446735343660262996539645619941738387409615004720413573580174897551840511050472433784198983934386467964920513016871925961797152322801193215856146969702302552234738832223768514776333819437995819624966497712414678914463267264642924759195026737757679509768502129182434827162161550555972290940859989333898587490899638326537470707973047720289964121095158189201762153595755501034037493943785021004938266072549328884013977472188459971670583451802351329589884427215337076918970517497741273297406578734704057958039176059291217467920391704681570242530446960166378064393063635013952512365674750474284486094569020793542513560811149682503712549506276557164196753906029629356525438997682868355343062209355475199315763426678610253686815877692259437486621149790645559209008172065443839250023363251116520474682222677292974492697050556266420584702943939687544215373896342328974497374320687235866996034108754571488153758490882607150663410742057412207413222751056528556383144263345087867827190989563528663492995782701818948801793308830022989516734369806449442528556238857766836584554575977853302390345743826823400190588027325778354416871355602135949407587516938546104427411199516503450380567595384172854950814378103586190693509362193629190678549506898357246376620910799161634650018422054165020304463246804364134512016674662569588077600627294936043630996893570901465108772596430424896709995299071419698344886032363379935009330573966643878213500615473437573180579587254290199903636208404934033698472789415930415290584254996909439742006333249189921335271034649144812912606050711071458165179652805462153429674718011820846718991362286877010057640296069335243476090808898410315843624276228417910755314726905941919511415053974429927133477806136852518955751426930109006287975448221103258809043348600075694461380588267956817274163924370002511107426703219505336682194699482502661751475191531610929531409270095385147844923571015748666865463595535902166875258935349029629347427996664995975575687165527483681647608104620176993897406552851258419726344830356608395250145939776879539278155150977253899447386962322491649419777700608311266685048397916512690700039047433584004683392294086927993580698137716536607639377939864991648620941317977209616893779843584931835521306016659259419316380911661828467673406628516577624439888499979843129496411119942110484851824941879419534848783000864280161207646927363656930821919380762320671228039608950320242258809341456364543278176017645897783408339108345554188646403314589979360306992763599006064212902041531119021406809552495476659320375406688242868830392035625676948298384752158525177788435296683742699929773367905018124770139686701170263332963145203944338584390007602344219471435057256756148743243221195984013302537251746176604903202472491758434878895095249718017823626869839831433183729552307612180856197585045242530914812096574187139609569991266939210795327456893639411374539157603699379314937948434182244216783074032990868322840933493211183066545592300505367110033747879660792021469691679202341609468561016134958764017287958512889486432990868992382577122709718602013424025512478512939680985473846015477110769624730148244089661718254370789678968598789742436401414970865370017291850750794748594969073698430925503926040518333454005029068106782798369800261423983826419731878669320671535771869743083885443765587353057635196139678114026001792041677936614291539414443965719093056337293488204378375291293317577070197301545981398249952760019296443017660564944272864749728341043001160159896531937541576544232305404532634286610680883582431481515929638663328544573217681261568472813528448842860976090402726934802696787724243593734275854395561167106687565199109876344831345630155331857780739410137311607761470944300349063017164980522532210353025907309929638008607378228870265137840530470114094391965407673336720194905040110732001080079719432270384982083687925083546512699695198059417437407048085290881563442066162335011848943229840840958137424568912887281189257137484895240992867173675106752052684205081217762958987403426370563328949444613804060771492814758048837332549631300202841342768253780507251750308370551168532814403525263598150501112927016630717949556764048743290224536382192092793172213779937441233196706331511160372331558599073607118108890727227766306043769123699291694126099075243605188027411383363155151638620241853974941687855801297198757801944183702089353679319415613262120405177507461290672546933088879307096938244190669459452639857751352683448132593471265115613983190100093942161391635701303393293646143964905345936219073409533013796899921917831852670111407905597045110518429693967939695141159347172345766127024352661541665067335760408831303298436956776921076366812889191442842591344896685063434163749062069427880839227209491348105909456242686150483319218190770315586734022987996975236200673602056643427740625565857558430757134747924674102517760660791402844642106293099263519367879562713006032139814528435251704828751906747916637192980785934787711394732423638531761179451659432335725970772065813352889323826964406200382496803363912723998077444882253708965554397793309230432799800132187205588115842610281797511999527033050970567009184560578627349297724075757434111452460026288325502001842727383220356965868448278147860316571747295144511452648023302546072018857422356596051363743020710377411574593533765977175810608724738041014338040268658699483790501948987915072340083471630225820183538311987295341503855336969058173389840534938296330240152882437663696989744346375472243096555532070077340139501344609312941960009135570673663887466888405416131322124668044194174116982087184859569520221982139155150225531553260800032826239777270239965857470976938663939655113382626407393625480504054442776644887102408664492476235086057406034197934811124979256722263046164382429932933301225953612371413375513546641710317155649669934534906969667819156292304072637844359822421608963928225303709323760267207119768400377507352036174922505991015310353029088783013384290263315810235990400509460372411655029266967616511090101901366602135107764291389628174996668609953309573939374955228570558195574549388676993667879687085972081925110245741877736883886536133421480242690865615335474442498851885696329083251374378165057788699588702682872334105559289129630302594931825381191272144176975705766632618994721012952701753910384636074568344940370471506646955365138412613092905676264406800124243751077966852187088169830089010588159842692942918700629539618801626473740271120749157938511486218723683485298192974328813757268540262047750887456225493227307513228919448914667083582400514482355289199429353848808605800668575212590528256316546514029628354084465164653397858457553725388715648737355130069817652043104347590358626829839155325396385324551736519252506788840029162190187051635291197311443978450675820022218225926169290436815193411551569658074683231557110188823120303789148016490701349511009814087074648756766786367365347343502934355086966568784161426585427905180859571329331756992329755529945043979014641972829658473398296679852789276191050864570354895188379307653852850607362749579103913637704706968691800266506626078475713145585026395845568856407561549168247620368310671264226543167437341691329571603517900931623833493527044014069150891058237375968804092330177388550221599617029185291549613415764764380132314396935957709306319009289899329242313733194092427434526381672821571317357452810625965612476225393087081455413276645989635791047168246944843180763203462941027966438598920082656947996629139590167132510747580572297732871061370871034654683398548275149513338880193111959347920447247616381161913194767222130253065843966340259229155836436560087376622742758766035308019453749405555396909349812574409088293126448229528290857963940975411059555004435387196118331786657296543852197982993463247275268105221645353283225010282330191788133948044518709471846623586155319374561354641678755670592346043169431015936079167952830662052923089633915901792613659480103370038428116567074806346629484753888989444552270708066610545752366986690032879849909994331722005198711784545039649569002009344383021928299225274294859999377606157841594182859337469102290786987322996545785261959966145965255075056636508413778483423502722623301330118802615423388516769832582379367349138414194582322443056265925304530030414131626893712136444963572065555161373044683478179588848255270934774582858595039608959672762152677829268062729553006636142395389398998061774905196834496591048148314440991992434032944326900868454575325032604913772809258324747389995108841011520226313923608207551939899008426439006943728073048280541569955777943051656753112942728208003329036889015293847325547546323779359714269881929376529635877442823440515765841165788531322446948893200184915963450372710992191969842077833407023675447977474383570501063501164822740031856825079333234321809894976944333393877442312586601132410671171635904588801139688420829435395157027203521545535203219091275795607323853275977456173609592488409995611072758735937683349329794992330713721490349362384797441470238979285374757651303847055729156692627084596831848629031190077363705959776156165778747701946632566019908178958326550420114249201689187208602252914076454620933205631766981430023155211595595368129939446068512696163909291577657938088117872631970104479240632963431368206177160144455922916217090286191768576124057655451046276192555148320907610348931865932488360163407113570801960481039559402042836038447181465552648298535967863693823119427042263474471399506023476588072541351483017046169431514613984319825439672017664573521120410111453245796400504538758913679738203932202201622820916083310202030034105594687473104885909579425088207962409549669402294979292586227840919584514617567707127014017718766873474761144209937332114934461680192398864148188962470878420087913298092365618188533276229498351847167764331974696667917299737836889325317903129435377503343694992750866356460059560128573862382820750733713859968739453678716810212302786938893632291087134666825038212502487105278285077102999644621598594283737136772641818177798629938129577528521593868576646071934092933323010367099557643645683645205946609903679934488276963897386084163501183947003635709569311066508947105580491798524639664377113939338920405037999948039662898700656372790973338047316118623014636924676830376216895205742418207878796921733335862548081270267512198929058397375590832390384791659109993122826510867793364692335009370173518885102232529957495847036189804328202499187147004575385400845987578975661252111472491355677244534665882886095933399346311467608316711545938951450283764584711936776569369147571927050935873278505950798427411289087395247147842489455414733408077731028949216241068437012913943991932097145581683806109096699443179109100609554712867826250154007661009235069850103037719472642381904217314416392974993361049596544500777651874627016237889825813774609267965879762428061671312113644967157960839564090317319082888931473481266831052738151507776454312667434292433783751015226912259758192890494469360831909302749517055976114818518129469996687027086968158710809897271850710480257839598793608572091246524192213551873803006090144225065353489571179114202940438754309740983641055997502900453498525294846615086384063915957138561600393432727426749092710256943593639481943000953372873588810913561532669049950678919612568137822046246916452163074921255951408941143496547548756927525849226301719474435968967383956776340250543098160027084541674222645253234089699237798077462156846937983537961782650215436291683530765162558360428554539958681356003146990136063578426794565695344711388008161247806874157406708757129530894435237940170165958147210416902744113594038806328253256460645180068182229356057463372161689205124866806371938680822600916685875952767379047479872020619123782171715599922762425265793306872953289538785042536619595180053265530577643239071405342124627077036797933912133832891211042020195536014356746823559430241275024116005952897255567192664057475448298463343432572125201126006965913003172518963589374715317867880336683428203551826370804095762382674793790909732498615022472623355273105989665872195380144025261699615888983329998346860959316385871436499182906737559624043245844622859653360920815657172105760324354793393196252855289662752136939982594256394121154626245849431168869723316796137093032106977701605823238282984201827366120259013908174830794533837887555375506211603321699905151175236446468736707807017010146132205949220507414066346762083171326465560357138512574756908342759218426852113375387827645337430864007126673640178481965355826771580937284426643101256921869622053664453947877964644264086835177892568191974530308502805608778993097131385648562456092614200270639717741503128330130926495254903984571983129550079755335679281894912661601472537976388798149395043632694895532168074199237252584081401143746848901730679393188609787423290759011335130466558127359618527837814904028959055341171075363391641141777232292234699878294794933364895510677787617417199693295347302846508701429660813800191665294145098284246913476453308771195549415770029897331287622783545392772989155522426262606491594096532723793062914594822861532905758717907140682042901179629081410051991007323790635685009964815386103711542302133124544311425848263880395921602300317534618032131660545369235771898153095176888313633382294270850705879277875608231306530876179964690827427268791334941432029868462555466483563318720185766482489696655775691303711885784124373551334382985280032791907938353845622953197710529751903270675832787498437174608860827330859167962653559203551256497460859207345024975125701558109016473654634215108155221950866997577241001762208034941494565816281851370770277815340795567471020732639277555043163250789897917386577394940561029310091190095566651795180544856837370844740707968422026999021270599347017671243553849742637118194187871776073605251495698615401607590422847893383972790412483550256494571590765717383918272623114146251362077159240177268234041514754020902597122505887896000830022263959696912557914286832572606932644688648375153794773018857420744440159881729198475217492747827848749126275028649963563111418131390605160508555104763401826197844734570993132052483902297981443844887904272196827208758391360136552175510101215411325216056024514319245934514239375197372034451754718019919952117353624881248902985862093549216055276990931742927669797160079360491292846524355203741299436039847927254343890666692753541561301937951181316610610099232460109118797833225757041726278107873957413754527445316355121925635459900158865454894807264324910123461850373203010819007500428487691808950395300389775006271220357580292564184405290279283262051411156219156972898333426325909433640745950174465808184403125658823811451951707208931777571540443382655230519734332111930322859780346918234543394063340140693166031740820322342933121228327818617340244806570340703229765993983999013026858395883576745956445267515425622778093168333082685083562400254777609571647141318509266715984528605162753771251855687139036894780770715035798975105856817349178240132697792455248962473476977689517211146942247811363599793356864415070559381794512054633910704532527654476168230449381285686637988566972177504643653252736064482586128210663461140888543408933739276110714431644161343045895262399484024086030379607129940058113904289679253581310510426485376113943907321187221123629412888445706930799453581788836514881470565823761949305365981805296618158853159355468193457983212091864002615480613335105095706176839575110868578199366477895254314085092940290079101919505967508188884183943638826038664320219468844938329626751316683257345460067964154049208709652070177574431174028406670448880117880658912643255925505929062362276453017906839025759502754997552993300805210826423577419089810079446149146917147707413171044956297775376892519659895148391928732873125460510602129759062961971908252837246935025845287160958603964510557290713296120247706119026476747601142337203918579546289121019759788721473101709578824775713456877607864617119709002349550671770611787734607264891369395659313175569919781765466782384272545339439972561499336655555268041959874042442331614993413586249627140933214094118223795890877549367312756891811686134449801227158207091086616360597166845664468156026494703442481372220664063228057351246396477669452730211518429734206478780198812441679612324805948780374643251183638725926088888718125155285049880572653911543336009488923284855114040861775739400673997249296123576276566050161039240706908056110609970897707636621184274843506694476196694910962581091052659430647360343778729800322593684067819265439743962516673340995191057363057627059915823834134435290335442385552112585427608824527439326600833581398086083426893395884400896575018174082758456771038409923841219126819470094089141075006910257895645169746450874341588784809091152542388690423837979104276479894404136082976067647860925704947328245649351669299505133397695775843431030604437203077334624664316741384314431405242377605486923227564041380442807546826796743105962575501837870558597496343122177007545739529886312071659129858329818673488080309703482379891661606386237952431863476074181485313189708295734491301662112518997262761960474388607548064985119349427889532972742405065928860808370013482016181092342694609972355419200624879084160240531852600584180852635087811599970093513795650223589109991414090108418696835309422985477309466806041137817509242223416807807908564447950405929484149125030918781255051807843514392655125701569083907986948024443257362456891413440993967905433771218199194780743427492721504605935846662569883337011726312423535126677668200460281143967601013792114579279593291936631112834373022001760737273967486160426539896536983051070162544872174656687430010396401785555064113521363284971813702388153988957264979417454348048207543273026277487062104492733627311003415126760244942163794741360944179011795274320125647000511943837071609981478302719205788506165290276753564335701267237352469562907200263210762447345342308582374621696950069614247788804110055146859794433490063347140822477998564701562412272153350968757810588211461179764488355369677447797788817331438637794243220876656287851029646950813855096388150435350416736691157613260886191945449583165329869767129051032136356084756481855281395461723145960456342724557356419861169770357180386189116893798831696370846002020740334089061244016439558014573378091904708821965153888968334410092545570525127284077681064003184712780565582951138581303463590961787138638943976916544830299897573725142059046550960042135303104476423074690238764297660904757971044388051743539601697399933771691178337602483545624924661713625337268078739341767753590119292693029890834533039030275611584213702611061912693583422303791847989889554078469674615674749492356710057151261853442442352236026323169223029158361294659886492576410951825484207081467335079846792012734309377209220935272293225822800699644768762021365133971503021250814119900768753215126121324546636228406981325458282330434088600055997800315094384158089184544719858453885561889720947779636769354825347174766809585703769658425722414565980524048223356900536164867529471721434957860035712198748574192172298648540544803082864353857640461009397042645067565867446732558161708061114007571788719276477073270612731717790924716085643108030664938852635763393456309371851929813495492459717121039044073021182358157646280595689383894873946423698226536186320229049036583141113438497562166346430142307630193172581016606541386954811637589719574180907053147010482513098046596835210407930660304178136949212312683851960697914848793406680828570949273865442657573891567830772960933796738433176580856441670049140557595533849157774975108620043299752505595359850790570506024480016520241134989322091808830299550134565310003692881068676211619569378528749815061865273142752647270966947873076205054530782259075106156529440595652269195946768048959756874456422023501837438163241434860705660247382148298665980346294700173286216701835021972476322581814232648104743083762192582435763729062066850711057128964582739249756471864401765144899503763059857196066830464440829081738650111248616710284579491871916819167339928111183699989698930188669501466026578277968255555207267762164215705837575523777830550504130917697778842512500498745975651698011088876621598950598108603819268728652384723628343350268119323527339403544334513767471898572920991634182708504913127863929099550740367213114380210382843469351156671407390259930563715051572625622933992993046221020939688796871358042783958428186216953221946363419425708723385572497995014982956861083153650786077148388555250356819573284249815432669912184979439118116800286690936427682169505692160320681732182886123803756156149629587311581114190234228626013611762541731582250537164566803644125502995680109303875650575797812569469966829443688916365395877530489383238788892172891429299703931982550895116815459656960196088415795257589071028819178057265345161116412675677977560634514959908453080466965739977796922075128040537894930109199939779296264006033635153517071415478332430390732095347337951216196108649721311693218426473630496554253305610817627042104543922015761142015316152277301225003790305837229210865766532520894170179471833462670675548287604481398694608001314074603729588053271132419704809137496099768434668264189218076635493571200516644215951276900538168990614317424977287908428096280521496962888889599570872135224071988787628931196333194150676526734356641971307355964949773646062252169355841230056802005176239925479179213165974766613929200221562614642871580103890297939086611322155760720270159551502731241104027610940186217641669740165641170996751970545712673755683980856279784997690341330849883653874481454897853193348285099861059832349314195917442672081840692268489010012665537864440670153511446010177607620492577990522469554093997116052323725094543533414507223850033143985539276961981324990650644071191609841069165999989521960962205990802673554774412850607295986958350996384347625407166872128930760521779022692306020713159878307493389483755972001601811985078075949446397351601133420906237962414524532495124687329426145700617363621158178434449567162470944608086699205700956745427014589221657918391944444189028661340482459214915544045292575886706806813891636132620047773646717437114424204028153011549572313864234783887046073082209860855240774923689747684635507263406198342466005410224611000281215353135075360947682137328638671074333445667930307482973713676866576297570226238332257145290076922187782336733305540625599017973088394957694701173143999785258379718436835609591782806386261108914349457062968612834335893056299861254526466153297988060216907162165919347303594482681598748747895854613436885175453017921055947186742786089909979542633141358665201245909008336710772864611347204088728265618910494502999192495006950514126124215472870413502148121420000666256995125457465797592255270647855076182899088301843120552934471924513880044972523069735971255706624818950425916321982359950613653594473156493633450319960746396398319551927273611513427839993101253553078774989198739031654585680080010999732173102107922125877270490217197940678207196688996657166953356600197492884586830868493175752511786305169567226024097052123644424409998983954729778768738023097008331938273923288770674579298290227892825775618567269621817995597598790405465957659789563579719387657596236020512927456987611706813036632648312815643261495070961698981718983379014051349920092049456278095362946132034284658496173583721074330183502340187890743158273706705854234714155791679662343637944951632242780979206567458980100253411845993571487789608769090001062773380493495347488898021325807189831132116758136089038938408681637589662231664540125851841210860000514041934843045359210509021408602890276533347901700020660952584311886305847279492439305977112159998421429925955943728370638474560773795806208874070899303295795419106423616264496711506606520808481095090005980865632412383514651906201529287736072579039121436881168652422357258878512733712909114367892232595179206561753203084553930728724319205299967150692357226846067395233388295379176910292524959130193919872588269090939275499335985712296664306018949456126674232607694027858867222333422487462014065919415551044185654322819705952025221560797116518628385840036839378082127787055967225083237121966397423268751616621436388447541137863176272245660810837456554572274291415088145129786231295781697798935388549774978223261749077719201704558390595417244890015475571232149419656245229895510020934107029377326301870527976064499371949894406252545074809884602808477474360022768814181305860990894377353402245258190214606409477220680885321324534339874687593332429199494301634697916991317068495638909515977941153510593252548137115857000503689065095323522388961340602071524902457022861945406633464318789090837000054999129231666730204338089573083422457316866438971898442132224921011008437735808216416253043477085223217943673087213788839673828683234601866543434027387894794977461889962661385104061428622139509990709873011303299663024134309020676648547844550758434246996495349185355576173385107549087446297395347500035296984591313639956576968697920236090488354293487420109784140217286927258535061449298551002645412193596451553957465033509034403721262610992407579974800489851312101413101145052317673916267645909512741847003421928004982677809818787424194578127383395057296044403746134572057929412560327088314335080256477413673096815097744665174807123558020929421737133436656471577728955302464533475391058796729706438697482249178551774152239623285020632307849459885044368983383791811123050659895828664095939514392962682940713347232073644043715381672956211080665634670314500009313540077167754244766709169422629773162273452693758342237371993396508029172181743643845811295584370192567073177110707708211845608312413632858372870379842739837289631122528100725285765563786677219884708383963376517155286852770741376584634588407349441027921347702447342210494738352269532808261562491082630647756238136036905455107917348096106790315244495420167567136827043828256152733529012174177184158823441011699164018163708521480808644301668023885895882759844099117400124878250106926648175751642909592952749586163296895078329925764664842342301286631631144729330739146817776703177259699944071985762909348538422518311277586879360585277937597200657208782938186975867761466937483328962505260875258477724072735493061719614934689012423497315117409849715675431752089361038761749305731078856092401514465015487185452866482753008938184697685008654470188572639461524667994304702743821425466372953393832616265564147616172279044167760417328101002567307417392649419795203210938505485735307122805687436053757824908659383097365216519802649983182179703189532988457981646643752699228893217392693255418221891901472077938478080773049797614404272292026188440444164147672336698048372916662602421438928174167584709500186101408785657639281904124604613205662023783398497704074387830752278152549653184473589530340155005495655875985865704967225607902696710583803339935006682215148164394541533479596622399858980897602406184577059179820362046706981784044851599747478008832608836802664583812551520476146467570070920174952595231426326959290604891721301471269624129041536206084915780497504997007221196674554053522210603861025609769697932324078290006016482957516585029500726998536186382638462649758344305566542031196297024868830364241899137121754257229136615359010808892906727975493617106719778138948302877075245830220711367851958106986610523135337172281064950733270937965984610414636344950112785767622361177749414894021068205845710067777637368132393415347947143821672482033361686101251623718322377927783494364749086169244487665188557734070750299245136032010907664103961034216310362233950200028275918501079209821660538824447441193950869830363737574109292715143178752716077438848912877643230974830236036063377908029120030700350037449932053432301607983140719224781602196436680382255040466715014868193119249671229219848794376868583554114457886484588196295950462158529710248918372085065461283443465564156955610586008964557294921079070597919584288378009428659183440456822917296976948842997294852687022608070581785756879885396317221774812625123278512767487451338376857461977760148217095893521834162621696964860521712714382126365064124854769358967741409360070501222417031785362961380469076051852358510638678852594791230832492355783777427060576496671642438847215391920070946595329978253683471673623905014735301102869789294416423242900776896124404652799304390273309633144901024888657361895015728638695614957050488743405026478610656864312492241238421142034721239224108997876340012035642126944934571075583848372875237504771724185577445126387440097835693716076798183623807570916174848882837049285078177312556418421643325304533527702909396428679820299509377809025492992115216668272368427892802995183528944058424955380658700887173387661880562797889058700360988420877687169965621296271124455228591545106558686759501291541793987962562214806670892024827183906744676948844192886834092216474177344173027956627643031316177075533017671345859562919107286180283410675469697652089233142906581758743541358876853862775263390405408641732805442622336401524253474910268004898218276990265453519284881023540840728543325069516927667750257858317339954269907304325483744759153092102356413275800913898401516231454908769972183398910749434591929473110397779140054339129818586365614662989060313901046835961761273442154610270001079147415663613955616238786933870338181306854321795457564519648053128542420041113404082108340177109777398488346881407500671275623919869307440595535696498953061076659081230591916274693797765771168257867725500465283925222645115604254732647414566554965413512644249332681383856014790446079367660866590553084904875341313048142967018318932785778959291842417138245553534692467935491903624777906475145334522408838010221509097095972795244887400929456447279249619623198279449882206452730134477288571036829670511508106533289183395865326033079822209356642410384418534682014374182773677904917652466609584010844940522052879194131661174701207629925861582492021025451988487478063434051496784592600898187264647595722241836704827217880453240365652743714537529089794336610675215547686820407895109872313648911642603420913666478786771993666399467583880992278194807648987348274359064331637002948788313098616405461401327366290332408040279488552461222795653300337595459655995279597056733955209617124045003007933398654818438841621694576676813536211616044527184652830531930877284268168719159262997710234358191769240215140272001751475963062071503426788946001581255753966642707729769048839373896717375668394262687993220164434673388714567063390318337282884195790035337809206533561794652879691168644443959518336196078554029443751789282374984871142291972825005255831347067121496959957428986125909564377465684260931060553343193327886737021229125304255592608405712941080711821921968401939212082556946738054651652776459127142303724932648825323966974651033750659372380602141833720137024930811283624392902370160661062277916534523300523925752325020193687191705210993459838168569301694517142695682905099480189359229236486007434712778883751088711239800973941228133804274412243856568633325322229381865925459248151439814952553828380132285186957447737019927851102610433233592471024986845642815886192450051219101719198526894461032447128406271306130566467997981918725771340962969620837073110693142800015204950100827835270388370817199262743648620722919331168048691038988835949273789499124339536757060559796072035584231190125501103555741504836316296056280167535190818320830791562466354625186029797564639424010113518628930211891418483119649944718060771978816886040898153509063564849511431136865070430326434782921904516031204691963270441068279328287859708158351285737934370221120450067813723218951500309509516277522803307285132366047120334602403669782938068060776888112246608583843379790772014210160963695624820366051913999692494836039870614462366019250823229796678747129277971126078081236658662414292005648993248856674004486308860711393947347440104394720940969367176527577363123391748178413084277637753717763937325174756611263219489954617315225209456099240048779075405027322430144665984861710001882225396614053915319900163288889138264781941123821435785887599956914175939200226047558086754371476539153625657852097316732016260589332678522461686354616648708365264819769094203479912548033476082284442667603800680267439086542195277221465883106208326852308402308991567238937920314886479091192806667943191613184123318596282267123191093635102753695220167262108306590485566420791352962556631175983597273949326896136840202258654882089579688487157335304467804146954594915091773115193770438686022828320943062136611964261998913398159090981868483054372829518514114262113098214229574193454966701513224130694101991305422116988441711885438161451009017575389667080172617802825847082431880975887699550416585246149420755631313772393903677091137467726718046540417013581735922786986969746464900663258480141966361427496808935875697497593596349396884278633454372952612426164900760052079476142003118544306992780944982750601731368142227138821428975138622517520210650536944716678013922453442286813800711470419014934714564876244521972269337929505516875368227229370998255178370090703895181888921035736785019204457979932752078324276739028406568723631379126230638835354783477163249568645833350109856271979763127165438542719548737962076971322177892687460088457810142762220674230606036558845060521041389827859188568574433931314508313450668058983277957584049401685790155004409156337846168892507972133890366502541270629893651880835481559823283834766745616483985725624267435266906416303681049392899099892011265574315566289020202438613680588593518834629332374024693868163959109187961613473511759926010979804982816507006835809459970472788616084176384025358108661348119318784927503950858963349632167397174922701695032932464939440298268120725636022865503182855565553094897563615057686022070179153303777742427339697518792238979245780189101736313891640687681707974788063916280392846453617737362292800216413724529119203660131327542384179161742844737232377548595209743100980574194635939774057948450458572828683271286089007250520481250050507059270951808395912505660860481831244670811992765874085882087439373954590657060404082398463028223559355664491260412579270574576701426902813975922191894140944317290726110075870785109021234091511443123627726691994383876136542254090018838716888040456643079026464036720287189517932998293944962161831099318099918962724538224496205796994325057894801696009144373384456858509142939044318949584474212808852062139836502859038444349877693159799064872329419428279956013364110466292911267785072231523414684013573574815610003632859191801997237438382659413140956274451756336695889441162740463942401254834169466001361018710268194254481764058238615942368914294726265138436516847566861221343970033765734571955648250605801327695124690791155997333378123064076528161862785655807945851885895618792689293214302951106455978639629923592712734881828271701852283324840129184445599788034565406813948873925158124878762187469456187953625634617712823560350082878203120173710410206750918519975526789570439565713549675241166822208347107856821548004770276163349797936533955168895951066888299350872085584941447109999774021973294733580150582890361920834955447287305184828457381797802021669036220769026518324774418473589292202985757821240747224984600083613866729634080900531964107828062077483451943115419254698703414143002529826241536245848547606290045918079134449007797299620565342237670693191404843946106172391584449951163176467240196150508313431215849038392870353476817071630378629713617184140657284047515686473543057124373846839578201931475543843402755561167990373651407540865031568143864155803236696431785239841427920570731945668864775140180150057728262616544072297156789173912364480012145214910934730280999375807169659674683632050781205744168250354214384909349634952313447437461553146868902966277022339106822891307620500358831944540298378260418022536078966806952517538707391885310567740616576821248846579951073123409398746083204565251405611535318394117467078597515703111844163152984413025941011328188041650551979863791045293048317486718782284670549676651468085547466386214766217854305494847147489132403016008440636253250400454107104032366892851599511037146874248019934924851593286769735518637773007484289598037457617595468955819647979229484175143282953223312685270965494225639487334592041081865715909907581657136968915244197930897860816893806302605702493039514282435145474397190386636636045230954105254332877410615371981924721459998704737910518051115434326599264053755758455366401758396298779102262651439995119849624746121642536587001538173059713382353410946852420635844921499072354939824287863396862127401059948517265878975592626920242848666953100724481467768112712895526231281542772918778142346154255899389258792619934155977326892396409963372024013044845485238638073086765679848057412251904718785486405124265552304765835113194926271051407641569106077841709616336109770817645664083281730044575566502023357483496721423700841051463440419677690740383256298153156233238228828713744643939068218445101382131690252977198019707216786617253448928799167764291312977818561646443085314860602950921936222474239772813369392114402105295359316285917886420535337858931772442571150669558885811701331594976989460831147168354250627477210438609785112914367043399016600199472876082434961962518454077498111619807650972870317933316497274334476689802011432370980407009527352292063771204200180376040030996876272003779170998227904232665165238758869427938016158706394702885310103030563127295282955531649345470127640854214730419055431366141659541201620325772640454026245248692816423967591524802157401916579382836095592351918932474963711291185962552779487466319496961566274959077263956042602185023747979026196593511677885879373397644682179889807076170035997749624706937610456434179682172591295953952969698875776099092157362607868490382321017117670610000384290681966130146220941751256536844762217945994568817826313756933050711385892092814647593099535300070523599450621897408880126207974238655779761332377689166858893004689612178856253541887745245537154436570833142365504114566251406627502776413731312714318563927785942436369342364402200980783316076886074350756536786015271696664627195821054868353157046777747591980443143348913352653540641934818213380615227176644567558787226441121507052188997261343360710181915496515630482773527321980822858393007802044201975355308957336855287410375025571998559629132715790324999493368855223229877683659056548766509882271219911997995731630572576201950759575196814334791260665514200301751235332629683661143935294463220365735823427114990857252582292398501150907108955275407102537569648930104235464655622369013816985021477328394966189565147952093507749904603575901878666745621183090648553317223186944668351271453230253424331151662370620540664073807026207415282267855830423843341426978084616859567546444148779053938885985870175699456359857880626423469341618867461531081498471164458516959631388232462029649262458453297174248622511909488542736792595846656325950640662458259838524045814102008647719439914947498079394889209110766354986176264578069061775230497576302949574108082288735163011599358604639112347667787142927790757013891374512542465524728446875481896242502496112493909820927763497529179234998089170573130722187985782538030821671509245397573335608650423410070533787267504266790975245574940779729434454552228579065539421321074791389525591895667090583821130293664654292932756269025812352540307691416247176366673169054104172062861394776217878847169785613239534546092041801436422244701719143714601353736344365746161984850900738490241778702098826119733379039936626428543105425012777234622863159467307257457697433904354447986131003965129870326407298235947968685412839945770541913813683405140919795803794078904018504949874976101867294358885825267159903241145164413906835983028289296274682817985534039123858083423616274357865963812170246887016361475684344211599169582237437532419837580524242659087682060053660446477624892784570220669391705909531612628976738712374365817116214696693109021722247617385298927291717647459338763962607977963205325969238927095211185653074892467695745363354588950886102067633429079319252041842014312409299579745507348574385697166765702055822181211989313685313411622929687261785015770335917815350363213023643011506740972475534583740765311277855577934491872541054156340698755502511807292967100815812070283075664282027845967953876167337282893724668740519229871620183624093706079284042349631639411487929739618531211769495222465594805787706738180160540822863146027585317102851100301707404247178593657163967258079090548793016017008393685532484475321712194325233463806994872358429400840736272271893849367977842070643806964169933918175343734728704790155757730393841927673770191730667705172691328234548068373230511425284438877161165971240264656487402958121222036107557907311088509477466913426598332057409934045248974797772098733297779432279104205824649632226154062639230127645471982393191070523688395370391883368055512538429759020642985275972413721262421526267572852126250178096243692002083887288834276206831488211672369084166705816060101567955944090922855713940594332091399238889353397009797662920758120837737461954854752167499283535068883056595015561765504645312043836401936018171845538474823142916377315784518729955031993022149495424805596583769692695510474030636613124631680561641971367588900876720688433058775465824873200381617996496719874780194431654416692315857174998636862987697126716961122066205930302704483902179026892894699672421827611690816603556439217786375779022883242685403801670503536739707978751091840536094021660342376592135118389949853191622433088366926748889836987530820185793702146018288032134983743944183972466055572185226909074184178951351975494134806972337570046102272555634324469170500013055785700607123593038141530734782897326542669998598800589783524938761878101456984287026251746972002681998888669672092858789547516896843829983732680794596812451371261022126225340912200328468681689378475499685893223578254243795514053851285969829364790122021004165104378000676386552915329911348156907649006128273485634615556253579051598452696196283408008494295953827823567388741413002430275170691389102027638057701473941024058347155804120027456705213386758671247976418197222973567740057994711063046469218556184323723348618372079466732730016066876403048224360940720698661941409000553428900553965308079160368048305019917251956058203911069001158112513241686262484357033322814208204031781106946251351772742498936726954279549554128967199814233052768144006335329445591490410336260823711746920633236581762061020515402955192473714980300755160448159089159175090251003184325428261075462580926849042386108936751853649036044670095344637044297707332789347717173949936966301918614762114468652229099103838435870018387669421539617769352669602276679178759174690433639696597675715886069375671747527796332063142073692900267600280641303026186724180991843226689619452994326222877674757057678430459734568322036179936114430326514592834944095573861220883134298716976917813836988399851587522169323935916821159312759394457651897084731750324606895664631431588413107795247508136598447320369474917883911836225974622495929747331485527681132743729642082254160640735080966317346487771263892042630727409927656572503344506290775195411750906665970780625641428416716971125576649270587005323990014521613611292187732968545966364853958060823698628357079229365226617373712889896896814742293785419711124208497165188435963426975727130183202825840009560988412451937791678957736997718080403871857053833007331940134301464374586212459967261925776518497885432124479618682325063014117747018873473985859762796085571058798690073810040110740849243957164489081026765075513513892812789446611426229074331419119202570616396914015472070005150274676712856947840197114923093198104021839842577439385349509459801877038304535094353600728164957032238614477958803291567585559106315789259097528227639220690051306723026294926732551156851029819840177876584055435069188872332593800936231062623378489578788833025641643021520984140065266744570675785497222415896447911007954406538001865585323715931678745877826991967453885933655135009801907051806479887560272175563447266809246397610708468923411820480113739642248774733945066582326503844583684312779213844224771725259124664129407145164740150758197740530841628662440031237071580224936761774655534155815576217843970394931928939309329647107500414047970724417016553164335642131208539643698916788890816226748335883252242458864933047998912607964969427187431311727294612934720158095040457566534644105568220658261360060014870076099007389123042714861995025249042664937931636738187333293637808072251340400266674694041850151287878486818468910982752229714756737184547146811875352595298354327355431928021612242960604794280882105230669711854856251071311184540932768250113876211581630824704717610190027134307990606319974968216541227156283058370063698878108499819554820862168289779018357236070025064563127433685411578084379745086461923377281392363446690639032833240282673210924869655084646029183490495951825974914848001786616844734506616260634863405987556225688562857944294302726579634710415132166498118395766893869006212927140102873719246903204830517051503535095219378900914545791346492009827128499440253842118259102245902357308335177191838029746956020588518548391224557541342351736292145637616340433049236577680998080591553793986146836623686859676753855315092780358099696460058530271232371419585511595418617307457796438441579649545437445200617124754645344070277950366514650985431725739279519666176768474584586726393482449117226395386642066375621353028716914870445810139865237060958682202338293115384501575944740323665529550217878576503770197084047450302397418021120431242028559051130756477853793714771543873875644454239766010972036310287974173894902393900366291045659433506210156561060986713101325946060023230057350618451336072975632772338186464928697108794375584463030641586770459682146408099465152907276209708846508788100302093817926747398416032074284105099678977076626197285175592633864008737743799081153020643428208019839076182949382733922798645701631177880148276013989761609872018977772901518066765175875436210747610689894160562995836548897537978271214823991174567796774195614387319364657493000746286003065909532299065017004385523340472504837029040592393991272415756937643837276988786385395953963972378203694999075440123687520060619227302701881064757595943321713190957649223313484218539669266231263757176983699543266144940311694844172114134413002993376409625387508443038723883943745585256418682006834826349256595624925377604184775287683165785162957366968194304268658251065430672841191046039914200201968552773217480051533116934493776280635170196549596742787592370418431681447713411844578919351911155886318356382629827918161034772075731107488653105701709414691331512955847177698327972946859305538273790065885714077056645924895454033588478587536888023483930940312694164452073473884333093875029985788199801504418877705249373016706511226593559472591969807117306304913915831079377422773476867889998908931443675867980839771485941762834098975109737040154311946655475111703527223471934695447911186945665548313751293915439747347679582747650514611884689391642615742416791033137229488264415278599337178184408263143221250009376825068643510173510663156592603707675743726064554873687714116071065993763767030060023100005114371054015650419624298285486647051457705140209679956426099151359826064199406479520790894462021041591802583457732869050413743633261772623694768539810510317188183894270582202395528687546322066303194949184798647248187287411007005760459492433754705413736477859382877584459061877640362067038815680955072055826151427237111110380164243107739388697429229391596433223474909268746785106600152033310516096507477815822904788099775462155245422675770746985190327713705136626541870317681847951648920281012604853342474569876942768638960534028701051086917631452377581378520511188196628967839075632391158127089521538587784248492494164429088697728868432227204661975167520141816284468287257599649330184489641383054226038237071643239701214792744058832537431166818145727495998003699459195931409878920900780832395768516287799300418451440314625133461624203798572601717251797298306744666125092206323510649871883411550429606976095374022652985735712976230005327196232212782406361077782092587460010268675420477041004481384402487438084258181379785023337842877335354236878235733250676584851793257734491022954451481117293595232754906751315693079476925322468994525177224275605042596589685276707195688687091958312490276582074416791564327796735349580287595020197484924142162529935213386870958611628653172757715143206481615629479044587626946737728071932529277119897366472494928873257965348740200970753451812125122236928159326232971571093724711228919471232860172872547167815915743759080973025818191502347928834154269774418038872588065866616590730304972107580510256262637583947953830886516301965742965416361015521098025674805115481343988084126140142568059722386433025762046886510117737142871044266142514824081555808695034127725435688660042237150328213948668285300443459995538207898403846203096272863073094952288125215596084115618893245547870328156107967017317220354816066785885360456422533323916246480814094758066282486347933835417450166293502035576942725670446822510534221064697252922559947686054218132238897132162016519256332107024256973046501610469405253598794743431716615533402659366749353045178551023577817427046011328892682578200944898972610169597458698985235537698897334439590002797413272069787065360468305980719068224468852231408475090025889827516321795958598111669620339518432791573524966421997214041536285564485766676183693713518743338738853433968345538890953019856262293235087647803945126827430099663881081865901269466836088591744797516268729359553490702717883955882941467029627644196151720558121077759164317836868576166594168390702293905464490772029820257696881833259890066966103020838250505347074574563754881816903372469552604181877036637627511110441997635863752695341811340425415940506640079530372092604494351609772372462295697070803204503593414018729565786416616210958994100488011438420079229003635762805820978766720301333818496893714357793475247538726409687869163378525094753686363867658855441229144859073080854062632708251473716609984895027395500370896612923672193672550603662423847584670929148242639714946486745136606060214050829812047273071190195161850066478924847942361242597069345028745550083123086731280199286090995512916422416393690937652264637564411978030907461536105544205470673906454031479783471105499565725771596026456270719132128481051205029781231048126111917657653509813473869398701292507159132556850215621867484531772030039223824587653831395592995498826624306470830093435000615333518087683907332747987661981059094060414019353181573223054034887016718580844360743883712104752397432694408462958044062477942644252304223864751045217572141366079955249486319099411927406670666619164286189027132044202007297562258598546561702660931202147228097153239899110925538654696054430335334069599886640210895077731517533630609109328877341982064044320018815061380030369493647686437546177020435881737838353164547295222872778918217359831529966323939760556723500259512203226125254588115297496967655229919886338638983236762689369207026921811911547784218877133298163535396495414021460790193207354385008983048802879066977079264979404658145975053339791207808044632487644597432698780443099731335797675594723103934381926578240984408974961551300815203523735327430964757906095446843466915225932829683135612907964572974776574275449117773157067200446148380968573895737540048599038598511438821093802112822494033899780794050965590184365308565073857996426000530818858349576814594810125526197933521577251618898164643840010894385381916274083681682682481885802079035261171639840024399282259725551280634123621520866112458101571383194829439667528696996418865419263876353449941901958528484098857635814892125647316948454526471008596865821247031882421666991547880966157808113786922659993922561575291278281899241999664488872846424044036471651207518763257287706470593371733306251478463597529700894245463426483709444534813999763045361332814215352218556619505097364553122033582211410407766799160653659548363361612104172855050250033411858856526818170316968494989607405913219320999274954048033276508513142091473200135428206320241879755859667480466374824326716551748859344842697247997365770557247881237397396185392767136855194991359601931629905861071149059111819513997917952198215245529516428545867358873220501037505427815378679772481000507981894175574121715720978089822772231780346323568307242004429535443847354982303153866286797455398913499087204262553129007618271879213437724621590844840725819664438400811863785225210006856311423456916570579503206760741173474831888710781631346304553350362114547778223768055010748496356969671537632459946018863095703091590806283506230023549466427086357349002551291503177592400353827000657811243323101641267989003960584553437706498417673867209582563206239411220744904594208643590072018206366899573534954890610784993528257585704492092722275433603830292641690171280024228853488855361473074526627025748055480589761901528365794924600032753675683961795221818361135320553643945869494349511246230959134444381226674392774731729168793998156016730603080428293772147381257098917883384455657310028707269860781492710236543865959873454211545450731376098953302719899974533083679871737178015234100858362282926115708406535121728789889241702637590353517496205183072226564367943391806265918120246955213353714926091731584749477301018752033432960086472746257447739860167942492439044475669077797715727175813307797288942806595412111125004990429716880723292320702638240307589472123137775422216626285967692300571232015868629007874685568497741127705855731168345680893099606382504634624294649594342333163010344994353150376095838948713570449932850824536276990171178107247606478252732791970908926535913976842993006776060713382744157136912337733711478764362344654065113955902169172423782804892125925672949151709864982417938277368712381966787047911505030056165728301710240609620313931842913711384885828988035398803958470673744319859764913239703301807245263298777007113817703814071685148661373257550092474953236739388405291151600218107842246579032574263253146503145761889816743649393599094277632319684537918885044266589973796928631338861093129868120726378626897286030757136568309575664587633306241595890553962938683011333231398653919713471860834988219105814906456555642429788073569287611287731655423808048713486633356489796825832828291958116739474947012632665019162951006860854108238017804925261214126342103671518668978922643941246569355975732944681845009649455553731799977846501632526161778096967638823388237154430829287235418616610054464604459732791736099217928640561768750704546351994222495621781235110553840491329794712535717202387790686851851899310168046373980912921024202697791301491354195596285917898752218311738349528066357443186343376710475840776537133653073166677893338795872842536150720074841341244054013910164902382062779788770039008245074470275633706680569065244897656658058388314671715396490428651115353244134662592074905141035475268209516792253760867969765712344324150606341323855704975129388056637001515237186488491356457240622037194624456044322621252267554261919270871943493291125635688631602985275586230795596109065751021993284621985797986571162142863327039538051090282741739173685790914127987888448575470109906117127947088673417057934239964487073145822606109678666241271526760669731042273387149720159570325042899268804520476019903460726637285334709589535141019472116450062530145586153278545911049586073000323342139252155227656891594581816326169110533262170914461981831939775431407073993967442913384643645727360861850561534624317566682599002669615397663214502858309316886939471641509532951232244279342459908453337224718085118096600385604806102191452606444052875650577870967648239248256792215731331068599087158922014540999790688780846310000229447093466558477683922182922376962810286744885652802963945807068891359520042382006076354665688742659312942444952464772043197024913577420244075424357429203001965459044916571303671916629960092666111618446504328357254459775295402186748209502072380535651046669986055865892821489168970458498784573843171945955605064516558418716363698837218346911618266280139017315843431370386452611264164349805529450684772132081652331563908949075326400349726693254592969019525818316656140969632788356725336312379596496971613628548299544183408557341037892579475361343424964550237699386532306357867491557309236283443122713345744987558910173800603107601830138441792600583256552834855091255409962181045184992785225599607396598968367708862788106834165223383874390690385315340688967457682322523775236681741921267871801977809513108456372324605540128170103586265569144910965207971157401182817038539807040198321592966817984939402235528301280370769506937736660909469041252682461865489114841780479386626197915483140176432187802335203771813496745555597917049021034650123631120035965076577369496497500827965479862417277958811464436660555445942026647699365819916494901078130509079302494133746784753672248509914379071478700709616286905387856689366580165179303883093232116823131658787869134385659260534245107566723206815181942485410777210069345628613212841833222125562954287991306260470724056443034927859977772265368984286893768019893329875680234090799594516523368693976817254360731158416010909333990526858738610624240013464086737358644916046553883477333252152164176687312277506651881837612280260093395570359892557287779601790456898495566141586240926285969989009176463477185081883251372949393563257943353540028707426043019711351302930792376334251209146216220012694663929264163799742714694473906663443968348532263368736764950990858901281964516243733676443617293031130145812034682038902812544330670062136948014796127480015804975492355409146717826291763603038202594713363374708341493769332436780964278780950058796894460711284614834948907271739394161168297662562509717046814586205041723811637184322287441257840927487656792686873910447921196510021268940770067191275778290781132895321924004000515607484830326147510557039949709422067595331013399424267022119864775995797639384076378711641388412866729762394025639457886004537651926811268336274220051654985049272103738942765636878215632561571728411912949002388608814173799237597243622870424008280565748648441821879914498047616546493419285371619302244773621719362941806185557969406122215328799776559580471996100855988201537048853909196392347503437810451611520581062740372557262057824224055931313810030227646708143042639667534637825246536855880704349327431010775280734923300847742961456928993110405512789277455996402207673307841929801208713434670951019243798031611751928285706724960582476043648577252791531973102782412163015482304516662100949287726163152600211011043802864450344910656991559347958678348709964772871324198271513250060750253134196080065495536198972957861480806319754562926508932745944132286888136823880481622885728501277959912261442775713532197675930422450222449979192737339955590016092380415691035509759254761524481094143875553837317909746074213508270640591677616407277705411500629555302427089617446398799668542138488689151245744884631181201386840727408191081588202654909086058558923867256313785330528093688254417263515073152909658308224308711298078919728111556362795033840780126330119273473418875127713827428234765063023809997345985767731243313573174875002271091337239553039162363021190059107706524797728554657356185746418844968148045946806821105352894569167937993886898713596882731358092519756366071731429350676978100010282345539584646798874114106689145163546291931438660287818986784148193958582823294395720308380562071128613915843851225225675223032877229925178007582411998561685158868027180474901521355166380718129637838118814687896082236510109722150737322444445291509551105038612617095185971962090948866170770400382378764832210870269892649033528052159341922101401951766765350237462403869363925956322514673942440849158654581722859794433811854920964532546672676403691082630435797961228627478459500494337532714789691193318801367153629630284777005254030000671966798758776680621115029216380199032609964581493242331177417680948420785182244716039587610384437472509697512743529135086817440742183087409065300260440943586933477583108779638625289489920350055124740595692902632808510931909838219499570768016518568539865148133201826805413764585984543491068248828443844311829695897484788523864235943957988626300193953077301823505855214300849098749343774376085100083812626890500515991583306054464247182426888285250285970284186649989180275527545993188276068421991839308216138173405948368231631709056104140189609413792965506435113006492731721078610830477407342347002362633142929818423602447835396358813468699938191068601029212530638242914823392451921474070172904790906479723290801467703959340946280663093250672801748265940258790801538650693045512315929026627885154097581052136526009303287508091570335177071035663599316651167984463044277461535890134489874965993127850710930460390200291323554750616636105543049239726029859153981747056138367803394629076640206755071356748741303048098642581408930738151981946921833077280065860998907712012124373927133027959247775577656378518867403616460974169154603956871154455636432863033722661386012172662426361756215809719407105844241026464864967790155672769545608766453982784457070045623670307669314119536657711762607089114439101073636662277245174462629996676407300076862579723913545508478694269808750310729552398921848272619871243484514232196458110524915858784274819569438254141949285697629204642541533377508000775691596283734365237976490586027184860224543441566245970068073624477059302981287743819897929573875708488584717825765647211593115912523685962015481276964541163203072763241353186287472905096151365500866888902769235292114011883348855673989445881287672575916713076373092644884672675332919137212482519240366304575959525778406190835562816342408175450308933850039222776264471119523437374231233889847460804836439869140897344382268391928589099186669542271794702230314215943734666925244387747790131752709141217573682162826536934217778728244198145958117818684515782050671873445167787873295749413621932554644430023998566832146953822949866558083731127805017735935004405817839584509754895313431513045734070452237988716624327606310848811105237051809004021580847071347201597075022242248516872921933755507169950093283519232441925397219511670542116674822012123069092911498011606431762494982811375427729404737554085716406711201202230452432847438066793519631965204207244042091763996060118360341996102359409950374196818322041513613039192499579459664108101218502947532085815106647260172228752031147743940820372293712547757722330747494652631914882702138962349686920537073578702214861038509923119451064676250772305890939712688113770896271843096411175808584821348826412549740456335234991926859402692590349590042414235792165318677752931913659993597973079527132546055193419252694839210963958277576104322196544340514642837348651480636913577235848229848707895136609352457196408885500817092928459617838650368379304803738656807961457510076224476621258943104665498328053507177618065228637044450542536770742705509786667235967624006035960368535668821787627666619359541294017923332188193478215767981740285341706182974079511665642792758488738196671184889439197621378507607303876427482766992904418774449042282477242702798527113693416631105196426411279916092918682877405824127346941383220943647319579170165255182800873111410198566479478036137348808993644684264437359394190383843207679314577832935600783955679959217296621149622941521389571011064390503327393403713292138531776603063606808336937943393274141053370494395492350629882085077316666762929778519770868840698840189686860740736975188922460397191055413877078218534414791799070138251499593333232896272376755987214311877953790145407550010810596007177058282817816578743763719231513052609864352058126651573892244111331224450695495014324242345673323345382113048237844087188267149168120723404442849896012833883122708891512366374164612415032807170618629410056546532170259774855891826458422301943592060119505786781248409257624561336056556463013306232450282465113200086988699276270298571815193764499746888536374571815430277810499802919002589185172135455787657332923708259178379246147170603062836591828381516968664144686921002561756957421955087902137874170026499657103445239099034858121895613192179144198941384201939690230461604695168541025581330156261740482322210523511735476388994930916932603329997352076978616248836373674043478488883169600778375731480526765700692972581711044484020184987350862645703833770090094238996835667742029506794964624139166600599550060524401783599329160034394403093571239776001423161276845991296839188558778430049074557973593646608366266539384671113613372610089451044347493147729456574801834553200263058498164073391963682580230185851085636208114575701754519611775559402164549358850705142818207428383691570882739593992895789838592520980308409155451833374239381112691385749301180362934181630164762813170702265067495966657666937708244472936785667261420046473408670850955111539302642627617932847596076906780819047740412601310633210303729094381218995955975306185164431561303052253641081024065073406295375092415164284480070646092401540345772453309325671551652761403690393043608162737775246158475319618621273232324838341391272039993326475045442764340360260258376061673388864461051077597760925281074431627726210830757345860297772471816631275789461148592817908096141682277575833532483591383608894977746828984208227459349454487831025875000812237889525762031619578000975134083447479687736595505039198110620303899249831623913138024538410471726703128071086850698603955829167536881261858373223574447323828961906356531489725975790101199209049271442788821972476908359131391293833709348182133220599410859886368582086569361805563216549393616993661828944295227740590561159893490543082765216017145404483567313277503357446719647088907754852134564822589836358133560280798743387818829256843142088688510406609004030960414697925895892301297029803296622390924062729603598060580313957262622887945871724750292977798109822706195049267721382138713535344203019518106431502558330723341742576266310316040123180296693535231032068274562110199428313310034777324789228875337776797089542990962121348357357027327039420836426514826579197566501701884363772313155819040631021634270429209125378543819085607313787769031279874650959591147299567246446943834655948356641259670845308681847896723786142390256902736680954281381860198985470581327768339700754077775213587084246545291031308911585855308479051239257736380524965347763775759614989901044216251796081281979582045612422404194948585095994511736671700458259711337954014260063191986818191122713925737969358683626235726137785553779450069609492057018352466354482054366166261342419593525890588140358915828153156263562708700544121100815836316653957948039816414985202800780742283210620842550730369639949474664697122972043872183433197745300511645025973919866000105289984528717681734694392698917517992881307628066073107903807047401274490597979690515701888094398659596996095187779165169134707471951212373737184451244525328780869831891730363466913052489962256715036881915416034019387271886982198787173930718241487781988563712596415900745370931245771371620527184711958103076411260168171604792174247112343126740637224326701743059037731167218340330059179631549939252744997279294831675698926779258946206147009932014941234980561931159157123912234450901527529003613021369014495502060243782025356338720402935239957528609117208230913764257491226418085090669985318760994462454064161856841402205417366492532259629851393537737012025821634774276883351030683607856270089583381020115202934862782960718617049730371409948880644977199316928229170248679503174496111758715850258396065561789288760438861370432841997503957508081775748488371486656793354811736592051231503386496494241356981063125587060375634122074486852208749683340339318339501700368228837312943285558347769235367320799757371446888317767301289488642558257718672157613097496673936959982658241105720144669196390785709065152273516163118489865991647509123855950735019783122624078630814609171978875847554215474007003836219379582635488205596400530852361632181254620485211602570712022559099466896221251796004778167735819144885403241388550930866375345657233218289393919175865822435126484931514423192268106371074247932873857853244990746497008426907946991392265361533429105134960404608353595419743362899361349211996779524805630291525796432226437949717926900196371904791249678938497072464159138133891787268072498025017232065308987722975905626905843694488777840160969351040495214245214804325453303707214223489680920046322795493832453389991939984385062722110891229518895378830136450863271164453081312490064039444750368708572568987161376327785780517006976902110178179567008876388731842464418142390930377903102415629287554534425758034438807470107552703055752938060835280242588926319827065902556919575045457362852680650779664599329527906601339664310682132975421888186261117390967479839874300537692811521011709709430931909855173886631068911601249912586884231302218148990910869993133798144191036174705628892371871362445847508835506665181458930425585495331296200676533314765515686228351502945442927805015966379356882038750600128063775737492715155897685866932450478776602436690962551717873962330588082438196409047640536956923804466033272727806724385560900111621756518320479526615642950313929728331778139323392864643475242413246775580562283912417786475968161838718995267356552244673220338310552330423791714588166650094919423919226013215991367891169553503182302638661365611054271410135039085191243675554403965201545950585653217246423160934331614075109720222819979614150797810650341166388969853931381003772877308873635611927843287017249744781256013850160138240890060195005629920815282081039316503288130351502802133696792471652053270390522656632359067688863487396888525290436126760349200616296367257665053545035334982362333665627022988374026269688263122767886244340678060912103864355072812180189193585838083531818216550447324879482937067599576843124087184632479133036899318968515469813698937535320603225056868264816237360286562127401299000377030206661719473682933925453114352021357432601792753476481988123517866322444168501688685148281544488111648716978829701952784389366737204629577052857756760100817207712927628770815362750472958101581180681388582682470462024504492726060902658530456059887516905253796181971492390668175638204670053122592491812282885665447123445378595268172525436169869883959701196298483756655235498103069430365275199802181544938286963400874454764970110506948441434624423435988137704267632438645814969476724649389530059041056266414079278604596766799032741757791922029641233488960541250151093107370014387793537771489885181802211331031037770844998513787659302578047086967027995939093385722491342162798524839197081562421953249903169714982674707347351337655426010281551633831048289476390933364490617780915127339904866146920147242710730429705434195959586943794456959573964806427044710148622064492183678685067464916046112079158020614626267473372135153310024020689294323959807259653451207117196900769466060310271816758446605578856962097366471959723122908215739978620644708601475833861607088208987100015543156531179424961792554044790537936568991877602476429829292649196509935162097984291288007328711627140494223419055337256841654899534626088061096207727270778212722254356245735541959611785496317336832751786714588676059975742361880567019998882862872808320684461495643686403185836342202549596182526654222817404844432154191052619074819598689682321384918322062905812819295845566272882532959523255586145384699617898168042653258896766312724250808642411508044873160483048674511972615863453596468451756074829479539114370750116555786298088298346074819177933310224542475702601250904677621464308309334652856807313505992534052805522649641218590645116603123086937622894688632105550972714109502856980906674917120734855223444538359520450353447357301831648140351430111931335486943357608480877433106047201238521955642977517631913689776736368488151474874889427396740544531648199527475925635649635119848645926015197394755316806839883727024627481530828550094062325557743162049496607748776593576865775430699166881215204974736323711453688024108797088008054376073122888231663443930765678203256788899389990232022152381498704401838599692700726372064721467835413707876435807117051926003919141601426923475853020800451901748719702963670125307656198116069382002898039810936327400737458381754803725621225781686122774609990060954842712713526248473619785545373554816089796913810089442794163824845783151329332551724397325155416419216098723534404382244820530624193352396585310820325012033111078576323588915210906045063458672190113816991218867272504195062262733889437948237566713401553334708393153994222496641924630130115429396777784430065217785134212583536668949193149612659514702327755024453610681259020641333203648558210645374561245276198788052867842752701556743628483549637697877889425058825643399876918306429571937014714845442189679058902501354611847974949034763873782595276302952186797034272085126698179282518372093327355533323716798185848245500998630106874903852585214108737879004468519521234062929315270815320338513094920520950756475280617845073387297039044922560493586088632892306301451680897447005891305670121803373365159281791769579754252901565526200347001477728762373600583976540588690136575292979374032215769828212367450014268056861836852152578044532995811942691950606564123206669241390366448698214022035985876157537798830068837125404165311935711836024105264169623049277165683877802967821971224012319809479199012633711883513889801308544640187998650672527166786905125024468185893651297295057471328243937791575468344123758370763437780416767846115091873261845253360146191328091935647036665046723937543177181078361142760946300813748634599836009722040822653181041035469753152539441221705650265610485290099269397322246834411239826959120193003719648746051765957962905126120906693607150584112756043989946449709792814634784830441768300803566911027958547941523426418642067421808734499097585928938393773014650451566627974670724063505812247329619773037326316418343593035844834721256071539266014651345214665006694955994570588445340438324990550135484076656750733210190932596913407069765986701257509502503638899502980200971096579861572323701507254260785055880929357335522813132686941480670443060106064552149891486082219342483697460629340624541989999881252085363771745540140177537084037823080037044821412511536499756745060327190835519155356024479059951668808629147567447713838300112895476497936243507684022822741531436892734694063313131431426818785337367892721437208950061004360626165446940705924407770414417263752099028321139978537171224015302285903389827805284039664186740954872279446568354565238563638378587645241691802111560493078720913852201445884329442858635208450612794864646125802030627154585357327315173099396132056921157016030974688862811748797301186761194689092849567985950549859261317042182735290149172941238361014035652079571116719892210350997214386796874290601362979231410648671203636393299351736732179611086890792562970004491326793023858027829386957175547928207412931414270016056895452505867903439814589004031988706880578688768160482156426427513240622629754145562662852436594890230600556781574871933739247909559464933158730267276191834224928815506599931651474047637061000109825111434546178102041857967407773732105405219032629522685913716075212940462938472826212509520717064487183392296863049158572510486112136242108304665170358942239436472135731829150906580434030277912680933408762379939277387750873492901261024765325808917834041405604049597137840785578404716967465966600373350950126906855047488873575710978884326846677697943646954601442229664274037488904660010552529035743332107645430399878948844619161705119331918574311774843411370022904255542158905976858348263152642648171755194169707658788678771624462437027737954191776231684040992076485996719784606407259328472729766982173837211927595684599378429508665091233131407885706652190436785238748454056041516579560878634978296817292012387270251748191642282869804752214602695510587193331273826629065927631427661732777315919878376681828132190276672675529793380720787870376625313412117396150141290309911280065635474656745373014643872352692652011652771449118110281239875141706452218027969472908399575001874833810367441462547174307757137762402871515750242185069466450999688638461803405581296977874194989116085863068255500667813483993398374572822293619880738257861398208362828836176771515471408334018234640698445252606364191012413579219419211027563423842818945427733873401763581593593899357710304844044540350429504153388090058410030520496125087336658173450980051345762560542947629277903218569223601416856806167882663649511524431257804102744842639827010087200701702295180472967123091198607386071584516691007916468316760952962823848577578995501313775293001304459785125714968678364036978689982538143446298618064374016607165213150958300548487323210239615903899585999621887095111354432372749145949781574182780915126971613100924547293415248062814793920977051863486791876846218129374675968586829532127671893698156271605116461495526615546290753248532690240771399707804559282649465809138549219424897862872280742627509061735429363288017278202478384449090428499266478496133614627194552838048198035390392526698625349089105161846285740458532981858142494544256105550018063902667027083796263883889637058488317729165226147576462673253463965736462551832731183183254516351219136353661437043017421614939689468143932279379646693797090619553558749848424613576514114797058549901200804842949768756042221857181239289449841872358211904235092140961410214028365182792628780223503345621202723996341393219701834126857501291973107554523924477190735614690932770822827899080832745462874412527331394815644701892310397630007990759244080647179191556802695316795767223135936776963118963947521514540404994661502254358678049018943683298132663817824302894402223841335351628639864701317353348762345307515764966348433368268662121319533861775287313704565231567339952486968843771351820335591791343897225490231220078676827971231998664607717156277749611476493435779237632085822854259457259270732834357213965473076663387866471704378027463435759056769237687303283698547902795433057156245645397833221051587711290714137500254798297637781118122850153427773005428641991588926932816781240514722041913908077484475775174600276948592988757723646941535658284111483189736527979669647959086402994336640048560146444826379372701056472218088741147191716563913579427259229931402071962531471034299992297715353115101717306143709003850195597218654412576683610542668084265085643590165008992324615492921188129584673323436229468889472725506708133634951422204689147393860769751854078380880957220044503523372890150065391259585822158534616808481035281575796536166614189454490499025738882157043676489660280760699916610998430460493192638890340443600890870052087818857249339360067348119241178216739294043117944919494058003366811720253520223361145642013090577350126800278820775975447736443425357397345713124310180394572667269901512592819200183263121972611877912846019165469441881186075075931516477529869361917821582290415989747177971029745478846213040264305669388501453396180709576290031449534520699472643111482901777711596772453699974542679431252939620130594552087059074305107274974293786262151549923857117679509203668983720083465071983710422819651099044152348779470843952336485050355384794108200893740736832659444541032633696965911096524858640867456429455697683436902305153804046967515809537854574705761934510372203187052344004705974346484546207877070166372407269813428574135040489497014248771319726746689810691988110831702988906886004550075318449152945811627317349743568637355874059078441997566138803044287972039968314686302947373221374778029994174829443531601802232743326356234425970367118690914932655246916623519206508224350675375770712793211139226072552563879212877272221195962432929217582620890804853218718992621629899166538329474221481256110746441679157820931600742543886873540064503246391272631489041414951035920683743039550478907337034421082348811209210928662221524026877259019897690996381637246270612905341119774135491537220165744650336032262048236079316293828340566194036057739196207312425837694158375216261523840856824474460003836595907229218347708443723863554767566872888431972723701522699134719797812410026216867141947186854615638529418770510923291085696072165005941917666806927349283378493803289578384050896032472127649395067320752119599730118832122187310908012076155257894864260752030330330477461540698870915593607514998716369456249098001690078281691258584634609230458264178015000075536705758232605277860517118101471180424876214346504419375778090127723707344970038300276143141932576672891308232276572073503779375598538269991910225922836628536677545380604460196213601198038699854558106282483287279216938861076551574171121113350595989956885745636013039121259107251962194467142135892270767193736429495080649677702437384445065086736608444795353388142237141661317852004675853366668769121608405048672929394083749410808979263043796497007107387532460545282911499048972174294230547629280000587889673676058031007020343577241030168579659699999484870543286924513263801454652675372682664460704669025415561675263742899371120001145618111599730354247003648098552325881109425537413300371922499751201561546788757183287232600990593892868447606503599261852952199867730455944301257430839605321483364831652798410088031507886537532279758098698461887638854435199708061465338218719381393859695240373446662579606980113355896830487928444491725513078893234988138619750275001780932739128243597055691549354590234083385034300772841062374745130476984839604260203592466294181565673495675183448028686490594915213682975564747117925686728417735111710409594830780124022846565238386810397599745310104048942612648795913734496634452109958156365917268595487706069651796174258327753480682310809932309872720505066681716647935660169550708305840823776213553369638111539190629822279105239604014974060947907325106755263611365369416525562596102057892998431244129004554284766673237304833057271526890396545508598750468534376140992443213480617945572276494641152708676020498604707785068301168809481594994028242910458565736296422614890884475617162305734416371562625123056129798883923473770852569221101633641309851945804643557273072920975929573207779256780336582244667685933326099494626115620900070554812158831834807451383145692039193962255768767259357945048600506314286497689177338765443477195296683063965556338077183296803710037759327609058218311540049687349374722589244196427242157081051327605715499846174866267206504741824864213622483135090874221388657060770397207229507732603978800971406846410867283819031503825599525307710902834886441440132143189539865345272145367837097249135986269980120071570460419239702171751795922877311370995555035742601221198891339581090196960764498932124213907507246758160176191291573379358437901222251031653267367011753880166397756972331978762647280196516704746155619462787030814868523711488678145589604106683066615883731726509931931576961850148187617618941215975678430058328840022942099738227131065141080194443509150372636464739313607870462933596616747293500459171439516048142929615085491378477358061980910483042271524271293315239374728997883685648407802418052590223528761493056066430686467327393083755467759286445658787849552693620586642864534505756370460636766457857883466215564184250794284849048824859749420791057150781532808200260419072212211723015349704137302743369428056111636472294429369952389723263064747165082151025738078908708416646205334835691873444858060635302537866837293700681592748162335303435657044310020374428191942907980915115211452427357970477555518313767321968919407881865474000568904618849640854910421145852520695783422760673934418638274210175848790357254164489881058277969379190377163374409925650526887940256578021548924019713654281364568246690043456512427413848565413643229056036547241140715736339971808610369780830125139323639115760810977434028616143811302548597791057375258564972441240631820510698695239326801155461971907101914858205273549887130901418687272826305775388234409090033602068300302164889407767472233185695805908490131593013772246131050744417889560753866019300229983523499494856631010028916751853410794982044595388455824462638312307467137568671939885425484489306125766524202100355213048531704064783379894398674898745004816234724780219740471946516242674520813647132793202775989953484211396599081613290893138564399882698957253486080089314577286693463139792146583319131342940662705358149209500507768824162836833359495019327316884794085875260873341884596127620518003289190897021207426093100392399883716274462617023409769636504687461154285039835395298866349643813199821739878225127592137480001074466313558648779203173120929372541877050159488698724746256104781615659069133348838768255901908688261124684559138381313808027604098315780383201037753670584355548217888511160856634464367068785599587645863406649600494639761159765682137021172886543989668416028861041162686525511082956633541527838972156448231380152607558907657497018358500220148845520953721506821913930075189648273301212078938839739718962338180276603038758908037946265411982522524143134515782292273963732132257534605605815013095921646861830074933837697145274502423054451510236483626011744698405032028368082304512351596671081936619301456011613468785897971832186197192675824403356451111111040958040243575965021736075174041407796871047381083754533719271435897876499147449113269028369429297976509165248876620275778068705897828474998571469847635748749201743951047990402425655601864803910567270243786195429979382112884912211556676982598160189222898044114849921455618268143971900881167204779875762794500176384673571184171258419550611503851176840515650471232725255282976090543944139399067258633532771772686862781658223124840986792956323939436839085589261730668487550635806140487793579489485154404066104095863291190301361586354827479174210794780792536241017655594520813277056806160914589137007740089980389654023891791195568527718086114231509458285724611331701289208706985596013240493481850446002650497258645430307873118168608630856717284155390911781709390798859150503420971991335222838881013043456926778709498620283792692988790551599885470659068828256599392497184511058230008233765909619100666096205692346257906272486867385324073412545980010199191426984758182879011138398539771814677083911075114081160228544897249029264529781288108297111004540138046454430786224930228250596273605962934541622596981447887902512826459337830654126849379684141438174286925090395052619757296272351066627409103738767531573843749074945892106547690427733399551320753929089299521228839749845736868278790050463978736261145118796419284929717006488862230690976036013554098329045915937630304297076008444816901833233525741254705134028871551241244843066972581267020082802487007385840529753235954378871739197510486123977754851003051060970171014189947777470407584326363274012557544852302412430660488252732697432611645045928409289216319980952192030797858869132899346771575882806976088441376366567431265864571810247186007100675189444443484695177612880114816278489944929883956369020201493538697972723751376293194003099822381719772486839086547446724280736132257562544702388944037961811021269382851803097205611355434553818607693725190688132000595186913683972442305993041923249688762744623818065208345107580774943830031751902795009389641492134657978333734503358311932772137018445957046260224291092337602557306889413500246956438625481857533448595326033596997898386099087327695055199368888471045132182719675140276150876644303966276498141720632384173933439434405956419675444760719642545042545792362032136930349117255871461712257608842860568810853964930976820770992014159623207038797983125674490065031478147825931427924388167024372492536350048432027969562149265250734062429437608561716048555158683846591959758386466711431716339449744897924444238714253226781257099717059685390837399000088375047939241093457036548578946492525185473557395322261281218273962178460676586211713190109558091447789289544464232553360467350120333827282878888439974089638179800079737242057175118683593226086343315064137619074024083405900898226377762600246354412384519133427801890050296592971735302244138989023275655574945426042383884585967308303736536715300615911507948422917264975951835033653120731418583751717913345702225257291151672622837197715666194453009029668453879395293799475614180709740949702685386787397968690882620323852317956764680717745023494914500621527599547987195152077358983509428523612372982072206042213789896140980287391534895606527210356275292451550955111299730689045239593711628689876274899970981407579458213435200090355687064987076543768683502621418119732140292675643339786532291959703139460473440260823965963288363760197085367542695548540219101477076080211659891425555147010725346018583211888249172813289704608588491791471251185962614338425431910738861787621298500116372265463649201185657447225555088936400849158786411514024566243834382637548632179896456140103119148868143991208523791387522628130466803311782894622460675095576905393616168812459734171796688008974957056042344071569653928213999099066180197329306235790882788235117777846472955129845655379856189694589587559337775522306218494608801947081157319180591771987060664499358927140189174438806041181003595272700084955287435496573702021986986241701358642891495393394662415012574892165513672546298227658101984446358523850995929025954974069078309321345747852266456777681951254908289894793573114967961004442090747627621410850163314362349032747842705707139305855880957984006904547171169415198814377105485423736608436451523303615904052013192944675874190346369677010571329074839723745699039478063905178385322822858893892609102143482889669448887196327667538030277034962707147123664648104397651475328614804127947896600345112568047493843998430478293133206995233454985127691769454889079440750948950362327119163493997390088362911848770753539838643128939788544443360780445926014519635743566871568724112864900142231151921892234181127511962294425920666519589228002955682974877038426504357318373857771723165604732290665764995258921977175086980086460897126118552133445350437434770464330150330676124179496267939326025775618525650079166238287454347062139310967624001703302752776686970626663517457468164478813204213930582843667962676617990085794686826367004368772375227154538710199217158611471494222274472847017115232489325131472655429544370128704915383564326123514209553193740391451103811886743807708142239838337255334409311239101917816838310972964233544355409512313975528439872981906188289321339893209603554195864190429338238737508330427930373136754025645435095308108534252999064526760324866768099776307844876867413552816959927745955357971176235370343317514908372515254643071768351327828172959109063702840792946742369688188628330110293114012375235601317907974553969747853437152259515747676518404287192189446417224551564615942317741758133094877181070457297538174856365073273261047896719310144093684875687745245029251653146506428829480202260221165029379314787359530685600361936242335312161733943669940704386155172626018535268568401497435285085615433261713856586561591211569833562693189926353337772910001349552186539353911412199558846387923655424477038641682087168694745446778899264506924792146207765333722709444842621387218366575651806729866455384069612572108271132741348526106116540242739863644192703989986238706343463842049807859795594972859678069735695123878536626715370017393953536072300583429359371732837743965622070638396403513398398737748034890558512332916888371186807662926385773864324159721496085803046319615774952416133132003050605071025489444351796127327372210795716259194131469120568036279478589300957270822559199658188877896320524829770666273786478880532005583210153976652975003982763075218363886504252071477833254707632698861207351087709174112420243871118524753047496733727628922558759497336177587742056276787581231567356667465818269419597637926511187498440674829032921454276265608262306428897726640344719857435692727269693253417908671380369534731468868658770018161951693536596352385149378627145877593097143285999652985328631020086567312791466755671454212672341571915338484499654451186013013998445544612079385899594440774611792050317535684861210323684524832401811772571135781587507807696648818207215185953556748352115820224427954553265114551740976624972199795306118804132640156194455273853928955572236103273953124513099329517576158358358482607890483715689161932785821637852850736473885381450755182530091993093252538767352800640650876593253923411962231293675081050043394183340236378891386260961915373678107379067325628994998336262640406794711707229675992573093129284162351122232728302198106662769118961792917698500593809122920946458076086621928124682490944878882156245754789109749179980336143049111132895646197901762727655849112650695928661418583483286035189597803585230256611658981307164396200885455042096673511396215121133941129277581030463009894359558910759584829294540042524153368821307439142438988276770866291802687855200592239295092226029564806152502471376990969515669902779435306866886405359545449808209498245659602065116190079084486053979431397827037972109793142443494826233296776681388147500605657017915273218533082434244129167493537790951865435211177475618206912249737750393446597338551128715260193169031969299027479309069974649786206274456363382014178071559153398398614278638783085180032713777793822618652871451730356446961379657669706422579481211736369973334806891653652523032253472095615773341879866587908563854362152298351756071524310130904645008980243163313875510999566422221468599083463429557520133051386885895013616229341432973327687480929686843565494905176980451268731225686941883088711927295911697730483098798696708675399383690305212773671053811246104880412283080528652528094093752476754972274496531185867994649258924739799531084230380420538128519921137500488291469055172630571542969940161769814859813499323893844883708682809077055279264715939227998872039715891897609479949139504566838326748691373615262858120496163759195105962949427720396279752068782146576406137257192111769741532382003361745586237481719376036124661880090796431229734053260434250504384577255079939767202849539536626749597974999778073514202259079126357756592891060581000215036189531168336416169253631454496619208837997254638695947659512855324199094533166976194310648800060852893594863612652791957061231020769908629877399905172348557427503659424511506046993888647331057323059320133222963343057833817518851004373682061387849625416328547994480542452302333880022514605438598265285400554806183112662392088055290432441299953931368446535682002759389855316296163535120578124179151373429766744860016074401375200174951641497900490619838653844219710934496387541532815159701995096103079919085443602792461398417926810661299373148198384116794164739028536562467616089881794030471459382918263662553142179742410224963447659197747677460490557317561401750078912729107098708172092057352669744445331014607300639485614548385918762710212137862083891357238517376910054054190146805710039109469338264418575607809386349961676907454161716187706022605715643930511298016675743732234292074044805179441551113134505306264915618503912139685115709852242590384087256372188936365645063447595187134713595104275989322738096323417701324491137270323155351924625564927533018510796169337116402779124572170697560158962168800504749003451067332768014439200094356227920463263260191689560131417202906195774907357891301497601308472464931473414873732803656004578135420946658194972659977571054051559583605125902251739365130268747978110149648856566277703485811418548757101637440656172056702649678930241997383450598079307724646518692866829771980486612339410777412205028598290640166738744509647733730718550918793640110390496467144903058807600037567243169643382233976118753889502212255601195035986898049110969216352247634331424925628975550729407337741717710667633988966926308741590693338116817666425317144853993907618866670057828972190225838818540899863843188559762862133205707921084025528634023055323800341690178865244073279121076912606184822222122589951102758042562782859594299312969058599651452395974652211756466211002225124963878479855235206261255629609716253179707766305315439672445148373107094971383771781239781813161493187986825820186484664962876622721076087408847082286819835669367205056462807606002953277246921518583288245895597640518380694795356015867441380751332008257980026588953253648053278032410960375010096019221358855119315383068755067162989277001704873174205666004306239124770752246194838006520812349454686842003553970312154334500179403007115283088035970625211495800505948678056279831073441431747964509948734672482011538504669733230311596740447771413218348082825548129270484981131735608265822028060454077011468880254132851794078466502244378653844735649363657275698234611817537576965355644121898012162857623978171765061485792714288417191009381041624107568932748888247948736832966466206237252335681193308836313330427766207501585255989942220664047967711172800574455683634350404358521537721809107274943036670754847486457784285490921270531277252675983180982623854567645800446224520650835366354688276453932268053416801412506873509466663913042366161968787589280154775788233547320270698077937895655004392344441291277836271652290102179247623681842123469142707093446558168377905848738877144543087550255696019449574108878512211985098105524470516863027997285283542139624297806391290603617947703046596595821730372552842623744671578953359795489179745109575875704809715404208435015742475052791583618882784216169682571512751501178730974826615495111650770631088406587995121143866558754156045379923799726539430999019778387297967233834795385721152399417674544720848707649087900476174639832496149554495454709396222710287271240770016000306838663579162779899815105512511758566214103720245155185287164828879811928142947211613608673957499344492849616906898971375123684783133689573808025438049173124446491942875611738249358602391708759697508441289988096782772329393203804058690965889091161695792617098594447335628207260671943175705770524254908209404625466173676166872006435889947582490816600818170326988112439744130886050129594116140710518243897195673630957566476274314986284788555905097415622384745139390372335486086261077478512167903694083619738058637619810524831799941124003919357591136706130687908465147601597137261894520284994005342905380388726476217067298926232183289018390877430505591208972379907199760034216988249171221210501332742191554677397186489577547670524835530516295654387600232323759534141710943830071443536933148104652996707589542490197398342109289449264885326904345744423964615560754656895696341835928035903178337443437599199513318020883348101152334460323118355001945413125532075310939681437660962214538886102007879502347436811081095179483854026254780609770212779598146059648647577911956731227572080740849134162676802772425536217379584243828754920279029043729585860775360998457108901868570100992289650105607042525985789520002642029874961394863913343203775110552012356143624466542440396371662729290028587337952433383010977615805397934283953460900276445181726238949808917684482155055094470849126134383772024159350713451416607327320156868335222325426118869440552586240765480276525316594906714720949422793603747894037759872781876498704107346839170655219132416458977090197488286333710698678756747490291454152877378143699819981916291414954546353860668157303752798052625842545736257783799074839947827850591125170928629937161374921725648309931191028949847627146860602031483678972419276656431297064182089178471835023890701075557935141413779404730856510853882266222123502939143599753183602257926581705015477426220659799248870674889738467042204369732034806558749925870022507031747972681455970391485055055337612364175302362682372484685891603845183967733484498920652905750019364507292623383110473619792834841378392064297370761492391225907667578479450530768279883768681151171034597122526699874818219847924459971103896662287941782407749627355841609356433076803404657388388204588557348817984806249418879641300284616169165066557278231554934968114576468859812174363195099587568035167698624887618732956352772029778523073902555424018755666733824897070193329658198223249623320506787249635089398619240641114068507612695645295994021035182040450180063100252054151215807473768132844299134201299518412485445342820187549130368682526349806128766327745079518438736492715348934865835633831353782200297044285474062685671607519159198150807652310134437865927343352048292873563804554784345014817681531875956174107578272216893044635258757129021467024725464179730003914535406659930168696119108772067153296924680435218879361321051649597311409243686418978761875592252479778476887090825158909854892063602014943439035171899067682543564474157880528603884653779721745954823108084913741523146206836366414128617027815172743954632986972781264482022133436813361494226303264394390275502996658012797779919448447213053544734631072870494553293838182331968117064243329609096668598329401312288795254369986370383930643567491083827406698307169565387391494399895313037772992351291416016209151575348894750339205902728618836301158105539315798345985676111314441139133087120217723311845690631028506209954860667006001694758151398458405062228316306183749589579724789372692026624658039275150865067687718477577548109844971030507313745779286972423160120961032730026590402433175014012792763137623506436746751952061476366552765383853112065402369629579322178739791625258444586777230967652964346506511272499503006921780477321020383477283396931141452163898697932529742338556717120013151083738262047489766268483843813607404234787922591151143529137206270847133765993563295193010333490002353765768648596021432468105915923716025294281573595859175201365594302273560619184402527997206646618122771649193603280381343169161706924334080941519051901794774681253614447339006636704764910209109354078813635271904250440510146689038040547494516818468281666447320448379648045481451502641910832533423717587424780067741543632421749320376718911514192153544355622424268725275319267037538977526659777815110420472882906811769156978362486898479169583484563368909085125085158231318473580551266937324020741481511666089223941557157776076660430348028277776455343897440960669343782305968148378524101481882073160749554975941576945867923627332711631034111398362214916208329164542398580268669004825280646448187168038185568276834167323828535635161625085793499373567363959695713128891976664533604665250108935223264435786604524541677348063859533013818704974860256410064338366365439242169678059640807163671549612346851697137056523441774345089076551622523264292159004892233008011943089373176969238334188754602278674993206378254951969887800592059115075410732515689335960856411627649742802345377349093216606991424670381692044981009578233216296578228280155882146397166624293477519801200529743982026036184693784417187393076089624727692805235937211864346327261908691584727425516382795635176745131252756277972560709764274462604280455141648091499000676179677803588045158086286024694913368235999871575304519972493026170380105679612421519348549920562740854793763115544801320898690098107618754881774639190160009887814338705675765578882446641145434053616517098703391453290837605529847238041134266685336256964451235750206323987064686906219754053069570395348015041252073995498763011828365366928661386527977404340446421948510412927168921265567378457394683620267997301637899235059723056790488686318894111648395371119171491565923173689098894447981326381282445434051962701505296821219796378152905336984579882690357064878942162307167378632792563462728056111180029879696573479648112547830865343499754376044876452256928303480084478147028257246023396483960714188731591339256713232685725058327359598370731814475680327089778376874994068652979998856484273569264216375739110888313979382506378449596614302800375563240211028789329048165373477183700088955987984664191378527539696180216407864745679740018958532543498907176852195905401145566858600257122267327303690221231571359040880028831534944276813265990476733697735346331833621225465585953962346407878289742344106891886134734287813648307719368278348676533682182046952254357362029926249687983388206239041145637097748025724546330551407779861505754619836103094355086004311836850557257357892479522652099566703892520506680335628917493949928910462585932572022668976986872528051234425272741979849112004435729309225845539507988137497287589956153473993323287585011003514183960430538276743488899363842056542136603282763001806373061350075669219866696006921186407981213930585054321056208904823198754829394960595888328524384824329337813523222965370529735642752624853194521529555650972599297278985004661173915317063644787211343704203869914397201567725457619682002494230232748048783153426306681073881208740404259109333322932817940987951703127603700363165207307186235215220601083897183328960918718481147611879416718590951612540920923801412864462114249746953409761979580568626991458129612885934156606325323626152152615339671749909650499786053006071568715771824848791186681677573498084483985818520928381129110697268033982793633721480498308664897081995261677106863918873012387771182115343398834639114222295776740235601127822732188291264400013048159969843519128272157083405068020607423577892542646259994258426661696914447809648293193787705213290041898879685895510530459725482933498847135200708515898555635517783241212029345195678762937938381764896001465719395251445052270116896960472974760303445810477753761396468740216097093165900680420012429552862447930414577128635446061579173806032967761648432210890320020720003652291873152783679140517532050192886942444476978744758948791607343937799062152391464616866855340678719253070698035831438068976458476980331264479717015705246531575533830027693295622715265027987671599527244132315595979238557110246883856631517291832757932106868587630022702200919651606145782656494955339470824173980878021370013256836935798360444540218370161746624360823628318896781169992805364037368685623156137015018985110268636972874603828860004217096945783283792169699025763891490155748004404392752322159268086015828350522375331807425607518191771578698397162545571940506741219473010077191944992673546946845426446322748402483090578648468773842152900403216165627632741878167071744308390744451609574465282668263740647319264740398497114108860764382005673498255598538201927067478918452342569528745394954624103552304017342224353713154612577999738807315612695530741726631534328204166826128046462594543783889291906802204937921984303816559558302078032537264055879398766774558518086440636014888537765515138358087044023452056194223949269491552244768375197006162326702669880064961106809672236466666834645887882396452730899579578538886938741828710963245534984799055245343913284961007911899935257449442851228563893803786720013583637782081531775156372365390904969960739324802396571613877423912664958947690165588965349431407301925813778974495505744055912609902199962542066968261053693854945146952821708692538867777741345702933629448048290058221843375110277388890036842368074931509881250115508829663650724811029796831067843622943922040295291987653119562248500364820469392674648230086486453999822065512643943264257077878702776349513189996495907954967133092505719047882779492744597687526975001053237938050510162005417253569949064792661625901366528952037597757823450269592880315924185430985841179773122608273319275848788042534067675932536256764636410048608010672619466196772655543051237085551628378875281474282040334422591895027308635783612857895108377923124278120359462266321325299664389948207866342222685656421690718085007389544300741684546718767444504248239807674319345260936063105954795403340717781759771494371588615788945959146857606897499819067102813942620328756229023739706236173253845105310615169628689349001374695840553613720366705930740354683787484394848885503004023550599679283124319227209982927488156096893017881133661770067793278087351468956388805823779563906136997370990863173847127289870095290319220458092964834696798849281367617689011694343231018267722651558133623709063219149932063286227696446610477505128022931117271628135009384108721622445602406785627659251800684443952490332198986058102020651596665341080244047762488849844997607280956499937289527604015372566653335539529111469063553469810869114063328531799627815221035565528322241602657465454384229543514547331859723409657217416917927200264978605540134249140091695282796056712516804852405031894605887846402139628578371125586649015931063504077699539516743983593128814734161578711055384495703898591370228255635704610332309215508112201892496026597388348792231044309643216065225163945706847534455938341306717552096082806166547895615109278374187898284099389580335415203312074338183922535390566377879500779242961115024248785912548318323754781210359190411156617805402064727186820346830374338099272393391073308874393024772934964135107363210628869636847062158717231858835055555255367975379038599671322092763980588103586021703307980987279222996929085678568307137531189902890349091068365265723344290508442762368764176949361482962112089119444961277876656796293196816510264152468083947911666288248052989778050575974375605275863811834400929870992621583558839559235064516568076636850867752833953114447249376498474284526278577445837215897814003968521334666414328983647195352547985593648624931762057395915945761586023940551258605327383554589028246024451843534420875217311018965623006781223527452781314468928575376889755717014805383056685245337261850164453001613550377622181643452878618816552119499993415203049807932311294902956668431403384199075261841795303624121877580862938761243948595133930709388175742837307312604244839240826093733834591394275572559948703426648539795363221254599396572595942819326936378773829125039594770241641062841031104354214425999352965790604741626518736088516911042170287778903759506149251688251939027076305380227543781706427142076847485278036512757013720590012544845854259167710869567908543995264251326413680975732914217491925818314239308237627281173359445195681720870766838165379248497573183350466514443674656833919184560066049021999218065189307491362231862013586961846381331038778034051757713008738791778131525554864361006789455021929284480647503949610132152188964643936278906393194067650535176166230349789980943062393784570351230186668441829205703837584036269807209404991227128733966799806674537312276510467865783902062850262663451598714405903578796711966847247651865426344594436574119242786039344534858431509685285505327655339313717440001452070864958817695571126011473861873834836893868993939733411896180708180473190630014160502600638095988761788963816239155536367607585098468866583335304121214374228393651993247711150953382060302255417329623635049824509320840182058370327234662678796955383247759438962578521401259356660967040889950195957959899195337854625483580580509300148357476225514158406572104237438723493229709061859977447664904101484701930112658526398654637696471053107392936127662055305108123278625625386590865929367110963441845867065833887808675361538778347410373558104219097909001941011790956949358330810019979178228776882725629241313774955331051813560910349431033768287669980887553031973232442422258231819912905544516853151315841309802416666002084860361093383832911781816892980821139562661506443554335553455180852368928404087672049958378838447383715109559059571831037210952120528795302226474521535073920977923401013003452032883235070012532532215980131675296101149488648003949477863916698751985158843906148828469298943995069479179960292758712247038607072026987021156179833494626509318795635432782603979915129418575903578227192787515748468995384060172602562672302953471003002372272548435071367889326486999265291731851481118577658212894065468088471969227773677031563606684929432443348787635025515192776559916604334142099310735397318505654039703251763797710530379592385275482367749446141449295267047911351591394980891690738237767644249779726243654751215915251361357709713549656933439292442869260930565254654435926919810357779610860797391580298348816024395322507554989322224897186908005181070917112438413925057247582356783629547473861649393758264707493264496549824627655311163617495764624797637767613606223843159156594277661617378213980090050774315761651954995409815756409831007444103797510827701293688989349186173546821367345703601315899026956690272040118782650129452223368818500251185717758901609632136774537210437798393617253905458371325880920363315955752141196785156638209140432068923755720194149283656759453425817101634727739265287350106027920326650122471881111741834078557713205187947757089975524411767600459052795967028238491015485452395632011650690255376261121667804295211236975290628538973057456803917178605279034604727765957081461174831347148632005836771485741343947556315125526696319873157351422211775296300967927440323177587073160264918236939007351231952699231444545356323074862522279574190819224586610977338513750795181323659116090639064962231264925469377288000829227438024221620426539693553150793401868021577607963254997600747853067004983881732750627540867707403358761475823500218257272873072293288602091726940557530095581144070571426470066615573463050807990961459955679815072294223436398361361957834529895601456754461703440143052180454883200455010893258880228391350856910808216468055169704748478323271137717535069617762770713225975588040395983369782141150726896071959171979750579017367332651753618470552710298320169400212524479923596005244721730868292044204268873132861367778666351252083159722532882183670549901303472724695748294487808066728061939694147501663831871579913255801369716050491133139538520498994014609941462523695655945464981148880046408416784442254757063805801457593152400382831794900719815588515113154505068931679244583708943296366571246894616681601669446713984155112734057806992368616048024587649594540288395775142500186789862810676528620565963214578964455643961122755862769687117202515118835503904957553804270984298695760323190829802737785836112543498808358874759681157456024269735036945852617292968647191368754671915620390074610871926166750581539236477236827174930655013159363480166516157073508238743767102963720113128129863448004445027896284767893578812389882103820913465360414950970157954207371927352205531322955876243874502963671178954176776298158109915688046390361056778012660397248944228051612165184717733694097940773685728233541215893966009918643613534710657270560101285150600663970268843030795736708054562537558793301477217829208796541649477904715642403637627449776161819634372890199770884218361288563954866906867341252988579923030072414105141389658553638119952993485055448097448412989759201687345169120704838128768771001788240226423378843331934815659182171792569887184388597831089913142623792243977705022351015005260697344957583758117905478032101243803272232628013375058174206269459621333000293575507722210792318560934667612362969158076342487340670820281153917474180498540066475148823055723775561027505093642402282493720840201326511237271727797687640286728697131138561129242546435521049757143409685347518174837760095747593799297084986864844129043712829530129826134040000623928159724037268771498326422869175792553664000046525770012741995580725914577550805063764793329114022905367861747510330699104984907372360069680274377740778234142947025658406750196814688132721560151088545300631932895754778173565203591559935059411410514233338488895632917132477996247250014137547514065969748062893761216380999919741579631971841470854101578409917796726059508152088901704165221970422098433647740438878468541400780166130877155637726562769729589659732406195478067497696087130664338105207026083484084363750477601418879963974645888101880168729872556218303711923238293907045578831233285598952470311296604696149073606933666194773789830758318676690314219274479045300211335127254536592694359386371077896171153160164508929336000904314286310972667887836287437955132461455661442155104162323211368175105026582472444489115339183489086655377455883009166650501878399728981907092213250624793018569674821161211764486803658305868619355621752709635650980895212924578299164378794913786982276724734204152060494281656153927064240357731666383305685285671712905598869924544525140248556761184287525243617611589939889343466986019647636705320474624227131418796300836466262414094522991341750129111708597779314892379085265445460189259165135359262986193013609587896963158368382981306816952690561655847420783895869527950641385909652932024706539530533563007207399188150713641075141162445118938554818103429182868066117179208546028384566803195748952271955503763840658866340181717245869423874436684287653535941568052454268395178899138384962051386996350494135616865211065514717729499014837473154882835163263616599924160473223519775337821685085989833188887707485918184403967088841783644201589145222189727852258673575239157096674472770476380178836203538150917329633217890306236959986236825205564035429422434572985901695344696361642784102958806237651121204007142689780521820354873186133587523168836793156692126003446099031754450597192888034238647765462520395355446526558155069985663236198076543663368014984779496759936593506626335144162418457208054163662166223960062598731933102788697117385601749758808052084613241807929154117359363542361722179198774721154654976528864404688727193115822204948995820948084353051746451483678423254839681260667948493592225913702640447182227716484715367183813745899589613062175864503268203857213563742320061758946169128852019274654813202329492713312994132041502266575186082004591292115862567243805761991075790797169704756421896265031358201305852414815923186123949757533050938613947720486769756051461604337331104709581932698583711172736799651971612296931123612377498927466054683317625274066798956547607613124037660754358276741029097614701134408716272949780509409708793418330751277637407765678295147382862085173580380244184854659976591936500011342630150248846022881087203868911555912341644692733996204164570074178777023406881543807759745930444160143922357280006143020003251205120872065292277156927889446877548428075908792992311007668830670348185107866832741115384132562003631324476208148527806329476480908265284723422125736643037247982427133801722887505384186803376428283876267416874213573066563891916784105708749767015941865968629379215683615047340494197783233856438365596358143297005557633755289020990120493355326949460096091944511555773677836535883707302661500138884128526853529878071335352556818110009355966287231878473867825683057625884295283900106029192153879551572363582433588575798859662311098365282269269716715329029888513941961499579583260702249178838792777406285852398624127369777844204580431994927787053312371309763519674762201828552689652360236704339518796974132746196718607295359183744320575446109654715057545409172781207472114420650395277289240687373526989685082089791137304735729477269151237683431239943907715620620438407212489089913384648196594609892362326936946018155342568483335100410042716777700006547017808041253106681522651153959447848871138465782097659506042407362563495322365997259144488399665255075149539862125552432643211255373111041977388740339152527942498085138209070096089972461433830955929928573974735659601158859688161677289058243561451784488280037254550918700151332639320572308141732696510979954921207061085199970211013291188738796370440301268870051618566175922068494289926035422171575298185027115967828466439055879252962808422756143085347256954734010578967767922191544517028156729840918218080467814825795213465138156562511244494669960637682269452974964012207948676457274881466972237270474509305558058278731584215427016866272521758273286741295091726692654341718007715695677808908579456703645898929323006522223626610601923482284321799832645012921716355835203482402832547150054256025449790943953494196247769038201001375327871781594618528554010799398231586544794507460217999601715431698781385221220271165584214085303358500465181986885999495636479190679338272557316646463274899390479687857273085432374977537844896354467662049621654633432361548357890178205384133792307473232436783088936754802535448666300412815750913036939398805796362387636827364084193075081562011351504348756010967344300408204209027982858578373245164385520758812387372559025851511992470991749757626365887475880304304324727410246006312962701701792600619174986808865225135602198453741887525525129962981715669322392285740309052577756490755430052505771090195365608120701744670186138100404521225723966173790539855269097884723787303686628475252989562243770940008319434616593518424510486747834557901142804803583965785492483616682782833667893919688562544892406725322660629878999107292358318281090709427186614318170872055086012240094551308776711640474474068508886354371225344222948451545047306721369709573224519389810198257611493235089027107048229170125216236867126751475843822883202501125477299489308522125208951585652788650188715288355594931188206616927016218377315678223816512391793237262778734043903308569715540232346490966421973706603647198788188003822255560757018408507006327685917041373357014904955051415921236150150741208703685190208719957414461622904598267578347062260166270686477115713597577202099869996297654605193378261936561610847922006546584255018804274176960006041157925362476260002518132525325712388091814689407141179785060951930124040032398483258500459128742855247634062346703424862697327011340872284528734499219717771229670010370307463062060718640628109714846469802329972316643598391646947799499927714754433459031879831146266407232036877708240306697281342399079743139445917673943069622676712813579914949489166477685747648410554901937440390813741674891180662294515515141179809258083599630191774103722616959566212524394361633056185710530799264787629468543642541495246059803707502534345113995554076988026900576084848421036505115380094733135567366910789124252312838844124339912776664962395445825979871085027734702912933432928772869720853511596449274487086718837332367473260209871657794591747469209082891899227509458487392468738207153298563752642495847234927351511874588500381200123904981711251794784961888079928629805345672358635333920368211776541182961535484339800810390960709360199541905814073819666266250046391485593640310950130978007044681704860972294036752557874902970097752406462467231263360233801462173621949966082349994948809538381570409746898188844309847108141258870207653926960065279612754847569062421632993105115691384397742641990333990172191331466113182829994242881691689586538476112792280107313300433180614495999161168391640115189455775491457796654098168490727501531078999832075173944561683396884142715259472560769631952216657951196312488002899314063161104711271299457372452700783176331610181056369394338206367327157535991140957618290278475417992256754396693018910325727543324759899519475424667611425835499367215144944795181720999267955772277168137834591518685994288470917171635578629014733425482555159801474218929269257874532104952877514556335665740684938484245261552991031886346552196581348617667328273462177392865927149588196374239342099595848163247575684410056377098678272532158093297368461902406269859895670742974081718202672994021662377836770809412243228472654015451893808217281492006590366126820543288541716545623298342734163655770756201102164091011842304361069598612686299779007893565718214432461307954543497568430718883534228498677330512983282478545149274363262005993097568851765952960837763613720112606539508372268169331553389207834808025830451637163223514549741951699658420516492643482980963835487570425749468236270562408923087394286462520311269243720986589096125219194314747302699895056718799216542998244821832992086897023421285447779268601849333197633060843675652943749446434905109477383646146020839775489754986637622789491647519883179865570905129066299185910143592761990568229085381010233220095172009037320961411804136171195592031081612018069171163452527524459920224188589081760695863443442080870357402843357912552492518771974074008289212446166099319580587351016105055544424337929633234925002869795298977451657003235341308719984502979596465266286432513124651481805569567369632392902598718776913918420447493162592279385980812698484023144903564548289519808504812844161487526177515916008708960275619480007744346292269476826760481491512092404199379293440077027024894382044264844147717269433060663968206559098728232973184819343586787860766724879576511866984034710751439951340517965337292352702084338999242258570127603156787881801935798656443786698924318669577575845847107955808219238279367653670347302582564403741862254615729012895744670553356540468374599225526867476061137790907473129212639924344501951495711624332005153357266883764001508818181127303303157915216831768895493445314900635119536462354798795050424792914980931910359447760867339439284247153091611737041113239652556849151995229331538635144694258890425314845487588230960383249393287349429405064312460031651085623909803385775991564710979828332679680286619942828887394748873055354656205755765825195841339864753140180147996431288978760384544125680145613684638516615251007904647171717846865549877743657938903861277327481966150012270161375953662918564691199746926079568992150911561500657710618222231133117774350502519670143887346908542120816841792196159613298734403063058098237420574078465904347066101477326207652593867925613808841072529745639593672863840192748888512222680366693276293733644103562844800032098590357018874810710187963929462404585075429275642027519103382906676336874647578516214185228933151881159944075118145818924780852244572282422015254349600497663616447974366847129928857877684177787289357761573163389064258319603900431841346801230179067047040324212067634350557527581537402174432712804899572562316776159264608880469203607956039331097392026199484844925269906184804306807793385872830214178292489847740019267894082136526672191325896513284279010573154394998516997897869706320930026403203314679984723186634094334356940293448707890952248718497025285427607665170160243163051357993534351474636763680957868909862046714270806779784698385766338403716665403481701853752882334535287279138483105097533717312548172120262287240785646771806710565739427166843314838655264575821503322287920280376191975025512850677805295299973720551643289987646920441372511460330784057995448614899959436475274017894460853871199288757923307994274318067607178144767312701212707789520711223986926842912908166398762501600134549372605872481154260066175699387543517340196199746550693894153555256569400945793602847676765891335072455739681050745704733996453762201023150435621551871586994719229682702303359534523847145417618928034176923087259275206913925614229833299459991603839665795247339632451247233162553026197401335744635439015620158166416424778768550122076995003999795793932607292512561204806290988445357098556928245961964958877300616625971081403688149793111964805417958252759927929168583104251724951573287977394159225445155786291435210948870286086688429754801251362277268053561612162701402787761533213016926571414378331722107130319492971401771184316612828885935946389856647697948351838699020048173994482620370390664425882018371997059110248786054428016209028243795835052209919425168266457663902672729516109119584549477119878081196257637971597094949815262486639881655571740433166206634777037268536835117098232127368354651730370636748521994098751607976553506400903163361237416295374809033821129592630536067787596949807560922138038044366353265583946893242602397305337981283264203475964102737893038761410198973047026193459204394127509941676852577338487616624500207368054337237323929396216625332267300697987233972649145838320060623146342687054564190654795519565001981782645482990872414044489193134382259595099163306897155662003977577323833724673346172100286193292476027640379016503906337482615634560517447184877377759239311554698806915433414762532860369479468300623538956190555449971818441790912163742630510162907699691398814589319164195927844324702297901080756337559123312605352482993909662218896997769714321325352244265405039105490628561789786049248662395550493462845074576439677853451934843996126719918579556117689927222342048624493316203645022970235711422386691532345737009092720882532477652080644671662353835131417073301781385694533589787108258894699633497129625539967942762185035208747823181313746988164303539120401194872956413500814686478457157287326487666886531365623276077518971805304312528407018388276589689683269717467576264855092633690138082281888997542128247959586068083622526014749524230896361035229838919241706148607676854529108928629754163951878666047602976524896591121428333215277818908274282356700296005975170742115359076007958526955285929350834693451195844341807427269578876139136697810393266603763229195460381582030797940048269500672910707584806409620760267579832819849856891717104238049868664961762223964966034544701074443205501000913100537622712064059906558992698422238580599121583884335274884868861700378845918093127057721917182649098543393705206681766726909203595042329445775574915837783978277674554912664792416877850630177943240780248030222476846098604607999065033479521814603245794248403532193085049395928432530362410393720270855948642777397037428936568773733331248273892150870438540479525330934366838080472674045340603343087154668611030293395658398127112255429536107093608544484190830982212842057308357271490020221636604433323544446828182222594152777594718387654584579128601731825330014599305231553845727333783161015546701772729021396512358953684561059736559249146473992707646254886892757710676649641193705346653280049155203163174596926523662678511953419084006969695380729574406709675034293031008235677355121322187215245803920384953610059833397647833616321814318322725432046666791792712888794409903572082836850571498264465592968662569373409306952150256116395380000668682918944796891056937034969011310233681878473211898108655059747746452235928004041102435824439901104071198280852027320533694106158364524568031669622717896215353056994507292176956035751398921520873191180945980204905703077936242957304360969019617205768028542480949211421801243146788722701916934753672430658902201204203580360206345214155950834812249909339719673612306151750086661079725817257895090422151872773404232927439042844588045974091260021353887447777336608185811528965723260933113927976926723899497614722089235112387461643984847522915811318118602070606671751364112760901903101745130420480696503602688382815152251561006306781704735039062326845994208898904480061920712326369975740455433653834800216794645819568740401196482065732271708664848990167934755266300249594768321523508575556446942869821449306948839060766152556599944082557446712209654889516255228950879098702058066242038675125119307453555733297180781330381253617335826707212639052940552640274955629519188136061203795029784920109746912454565899585805596736530986543879331373655330721113220884150398802019493843090240037044460770560070934986670661413847609995951177867253577637668168534242122620236898317173837110816288042061306160251496533176866379559817846686340081606260724628203576795905496633874930989571361570993782840871022360687622115997673501090471241296026787023935710160362319908832042070895604017220385225726105823106020900755994247578374075093174397624769095378721604923179804921388032571152882518315761244378034265081530671644751702286468465640936807383210285199426271881743356238007929823408332890668014667842438680752334399124779914976233557061862756330040433185652673565482076258971707246099944543571911818801992082309214665074710234043490737325694910809141662619043981481793631562769328455515961937337429221362747747702267474425318444425899157845924949603791285982088973738480651653811412654490367746219761693128459450173055290265399516770135168562559018027663227219943720019217335406094505458646112833844248456836466153352185129063433088778373610333479688959416414927049562795071954958634191808440103236621707883024570541396982498834255367131526530029342144267878231121906053310528205535991776706250162485920503984898318661499282412566944349741021222700874561219345890454137880165080019280848722041001056186444247763133522006676214556298494086355503705891835567976849263288840575319411877256017539800789622153218945662863722122830241783673446811097310401801086473298256828256034591123059204150643902266664839652388726952118480459653480364065596016891994608508652660428651417776006808473329861638553087986600576717342433757094474474944556055197585203742125751947707118926755729232123905022384970085358063095709058214532292895049566702637575917296742539933335387572027559748780460812521530457267065169724219176427176624827092202336860544695027756095193676583822430153217293961490473353223597887803541437402478129123321494317320628823895784229434583345147799753476595878064650920811788165536227152595669191431406489923915066745971843440382628219878978790434945008230561072075818849285554440373278927516199284445253841189911554717002831394608773196350080267793042214329709743840874030950711715420164237386694325811288487347050461890182935401317964422891217785748916342122046190965446628123812951045481473692424585457638102476627859771758028283547003384676537494357260753270857755408211530606339662751639521882923626437943415340989102941875875076752223646494234951685901873961829551910402559236869728873024453873183717289829756399425997233528971946963511828776888436158429204887042581549029414817624599836472671718188088977503311882317791638815423770415913143129917656301504528391547080303676792756436533046118176338962820511354918519242845626375954944473374832664522650705181000260123467355469578362802418635460443085226570244016696414685785681324157391331584422771729761617660965618494001510168674159914093059754571809356843410422117827206289885772898786556944171933295102464800369619743331862117405248557402797995208598388114867774399902019717870254749018655703807310312545428459849933238432867844982143544844694610258505203120839101980812104475521290065252031388454248322029812627216604521846136187785827984235680126501991578079954780023431517326812415491390796031667822897133946835488573664031374585702993792673371140785799890226150653208546306910365924419132736138982768874067128252982029601749359902982860136648194220212172611003357448756861072749395101424534109141786069897022068330574994853548013222274703633345626810285819032597957552791854812127203263503463581590690520342755497296821604511772995653269707144225187812154358690421684897240461581985952369573444133165493107695127749063133075328513754229821837580829176165567656770636496032653144767137693225962147639787033059784172366953457359091584824306236349166254512997776185324576327288358101308514188270105874758081176347752989384128736988285600449014223885266672676375189398838976134422248223898233342990447463538783957576601036734824258092526146299345586466899368417529146909027531721712722831307189321295979374718557346487476931984926083869796810205247760671760130983462001415639860745545396882403186947504626200206921482722419249202221072077608826578352726950735700687866323897191933779322492799958078753980151326477795811307188108445825621600463505217087366205339950065749350422309423050708277278277981361562577838076054298609762424284230190900898652014533053891279993610576009624613598783739043341313588568942844355401412790317061106771931712175112424469413765735128703943043997422087185539078815624456085810697313815824765433091693707677646139258506598430096820216806728643998009554513265939334358436299601352284808727664692361760919764972908503867429504820834758622878589993939505335850210180809818490959909941128331296011189052506500226194104040384244970205164055768262627070005388436266324899445076036115328057740507819713539593176006606978765087628956202441629912563015853520642539032731663011251981375245646414293782941549861321895516464500236625147971633014671906280959861255771815930299362197138259327113315847606376345210581209171382083252790446994631516015831862742393093937463807758450126197751269449432179236393351027167735241630562624734757210784713883243749102579972048043040822091348794000248489625542007677373842903372899746861402527309689160712845327026122271429562352243074645111560705648487139728815042125018540409450316814651329170238460602691103181548144640020168363230242484498806705410398942522995409385931075494154156133837623718032645314876347340137532069005023568840529147083219623186577866004442894509949283724597094030336605364923092983992572890211940300819854651531680484957748833478435775656534687855370762450555503083941786208474253469434359019394285137394481891777497000979073153461032015709890545471172297477235576197210805066414043149286324176886451644150071528324503922328449029406425487228233056556336293248223762892298735132329059114655594207820301781857193265571064367191520173259661743585947951655523339077289738654996367324686138055589577427483161142254736633324977719360857328332700028433523625774343008122929311258267633263301656063981476139835432060555434939355231648054891733458842467246727130250556925859119676981752799296010973267529479962470944380539051242190098391096729129637277997052629689744856885430657780461129763157147848640767869598134157477514035788521065965533188996615750865571274696250748657842618968215611088141143830703916984715649712159541652681752678064500384672334679338242057938789060155947587404230209214645098619767548170692478307431710756103778452262858565639312463104997716075972161792432411779369078332817387636413281687708521535507482746247237619962489291274749676547382597253063007434775140492255744393327248838792742191959404256181922246900017579804905809762372725935662073649618582294898755051720327853594575951122413276543175924768433494355023310348756959627479290525138051533292200056703736395756868328653857229549010294827951612987841138514041367495022396852993215067980319136964257790542948233628655637118191902876787128816980083657351585008172180347694898517516349753525622605113820128282583175240861505385636555698946900998170465135414619198071787863632873902882144617565787072927796182517722419619269793109183366645393586405901032272990279184351667533903946744342369770918428369752389672375143327255353747149303763041800280716016929809452299331373639576366500782456154898047988795783520226636157127462133521337646391908276389596349584984542268513709014270504188735304012378889140391390599825495401749672962007874099839092038241422140658788260028870177350617878718694190751573820272693919211082513188700725955576347564428975907255053219149968890887422684208367337306067618759550104414552443335953739490892931287111392436651548938042535442868526451617632864312877523347127094194484849577555953291430691902113644539808298370675697482308927308856651168323838512474780318716794045532606911036581489250194774909972392074374735257035214596992991878613933978192309719459040546871861095803580801700000653172610069492688554006223322596006490097742901365794898259440228616932006449943558429666500485692584188571724524886353718777395219932337465853798298944028749213733546171352143381612100712310462693669641799323554398731721058971443013846174985551042063267704159063567534921033043287942321194229459233764066953262409633004995589853832280848917461528680758678716740756502439098408332280921402714717883538993177818060213262652391523663310680107789425934715607747548443991023195674422320603313529271316530357648907821960603702101193873053577896010748474219543816737399721924221792315140963946153810383196138740845542075190360849820589657910229372954550017285408328549150124860873544908271677777744865163133593989194252839699327282903367327713166445579872463342162405972293880907674746438108746807809547613571663707277773161614039622043469452740463037319275773457366627171868329173504945530037663570534766814764580258019429498862272196731797551758619183357307707944878862133589042350664739991482445925435805437004111470932805431177014405992932601290498940505262073709440666077381128360990116879847687251371807924292864368221369013518303099129124631628921113371498203262855636115822613535195886844431182967599656578750490762265422282458980826967565468434139157627176462048824346674679372505300528904720984001058531402765332469328241318711545905750587649016475673772133299115160310621204484626556849579887666512490028972016598244609145886399334886625680998338602868432081184520319871286613077100668913799543977888347785567735464828052682023076534778360016390298548936192062866661596798922287858517249418385904379295768964595496600174540012631381471201906294187333824203474284853903494556273419870280357420168372328863108549770382174993509580621157658744105264850356622220138252231460255409003312472990097994624802222281018577377963471939286631637075617596998404054171554907204981933010937147102067018175910265224609166506644793864681535102308505563394151313367507461381210652960298424543499257749868234355790538781923988386165949180776574429074551499772842560305918355482203425926371872625904531321146397225509342586947337774002728721924999969561991434248307607886493608134894616089955532515856623976090995282900915092702710446646037642897037538621296705602708825156141827859077694777198596557145642419600455362123398678287755200500710032126835256617158889134688251772296210984998344841537481360556442773787977799550920581194352177510207973984272204101197179091652184182697716359890949917125756684223286578464271076452004311945574563140761666640807586037175958212420114105451205663331075152949214913299641524913513630092908086265723496340321760666636189744933413201675300593016206812719687940674300944216185302345758445759487474576058233719239094593738758629228061659856278112127150938740963330027648081938669023966310434545508346569160875933966970684848441594155530369278339353711034030212338042460665755857315561537497667070623444407314490024354246433711793576366894450792008357794101103648093706687629802590954640769948493793682838060852837282437720362609316871721213457105818674980763532494301618285305086741433464500618612018123198313593080696047724702226582975549395246156934977603879291595120986102320960530435050808378198121468895489307810363431597554712206835842907030842567397718466828759848687986589773133674132411487569783393210718430553043588134978912300820551568380503270308988191825283590227259993060374754870095801446161653145980585195490624704358159989253904321328000462683359229568434772474635200178626557927358178356412754485845361404972691997588612084311010516619100509715647693557784818283894880692592264262221386802113546303172482527230964145021652817077549667236278604712792253952365135169666010800748188916529601086377773136964271097531779330751645986170951895738342519514383991190689743434355168721594367318680672279953042800578604801712452121760517453705544695878027340369057753072391473505749591322435785494805764441145815228998525835379048553535549179170656452531889837810017558945238593347969981596421975057312338292003646588636340694726727478033002888090242810864073884317641884298682560898368268476384603406184512295869609187479208180654164739360061257426527991923564861997912821550149768972761579196940820411844075304515367316364919596963422710410883206084738295221096656090314098658979960232814246948602066323949149293103339908556510406440718550145752721630936427189866456068261190244055683140419026694305754196039999304000859253763018356941708747414903661769774654982746761273374774825859169002057970472717138307927951850736982273831714244009562638247315437605475226246815879072310315632403214331147673984277849963499150642474400420121862903079988883895885178688231095547322218321418854773914691401402078963977317415658757233724424508532673601701080480385136688412154603123574924739602639967966490254306887708409010854780736255500456781330046519181050105621604360728799362818373770037083660767517415890419338169896605076228961636769574428222779684112099854926797880942475304253678806189349210255058092035322244933481728450163601158262415992608666630175845600924246086416412200297504423532559312000125833799000507343366074968609791603429024917537761544545275127417045928020460241981171683732932097416034206175044344076717263877689282491031560930883536564018525854278834461115310965174514166243676271877847793741940148936264528620034805617642517966234096100410468259434073204273878676559551470057114985710402069332615575340755045785677434643609127933876232007498297554982888826086760316977362723549747725159853037389573583072820292729903127819212025846943691508755544352142083499317251587464689547295885340247480874021260677295266040280748638778681977768414581645779672780119256479716620941092934910141627438306072464341056930907026156049545132124008131964376705274476111772078658204880721959406739199380038148857420253478512278508331485491718512550282219015483035695611713580578592523459637610907529119876394388653592386532720997354926045156230566175145545180405888493126403365261287184659256642255696949985191612186355319675862575566865923113930062864294756488469712029314489618228729407920140553414617763028150562946616682464969636730469166074017425038931904920181058513909303183558763954755792056543509271978235885450886244068626514430627530696148069087948525359844684149941760360397434082212035488742333209061191498408169309024734457293934645417787142215465221010934889141613779722522166834343455930339360554241675307818518104504813311972972595159953473172943979556169483129563616873853009778930907072840417430779908079348536122459337127213369191112031573016727238467131100182030571174683755438361861103655973348489638276611700396443520979786890766054968563433240844288360982834738590549678632337066684327821953291509122380559499436985665439134374887638546471539549457985277738288745259873286386045450589704007296670614768559961646644335255386504272632830670100699034925863693527743689538656728524957865044340743578548349242513525555711166513044378283835095390661091871680077255101554285791023538171572190246372953888620410281639439054762391426442141545236330017196132560392573868677961527975063062534996300442224378069178409507512382058154965336495700271231218990529196041113211121002679058667222023080731194424322742092287748684678518915476401406504267219237874742840506647966204518149413799044409511116925328794486198465632006288614061958619764448224948773724772991444781360686293484402702380022499714860529353221428025572576585963376408396620284291571041477418611362958039060052064799316281675302288450297194804449776863832378547061811728634496004969330264882736347194608790543528746772024205181757127630547007634139888166556227261930135687684097172905590434215345823412029885936380438221226901537975495462253897169267067213195622320974054772130455076313977691449895537653338288180489662595776716258172089197867392382297556744173092512672513155460017406496625703020158125533080803306546315264993671016326148871329242559176301398559200642861425552644807099918202848450322993355239960719334217996217347781014385999023457789017255350595194593494977718886170106857153392653217681785613426751021783067819032386958447453924056711952916426768444157912257436164513763328752584653190666183797709274051310075489558292781430157949812187786198810702085519410149706836115512893874257868562312648456145725841894838651834746632487120242268076695794347790035597424894518735672643736101240412071366879786645729718163278966259232571633092012140262189136516693802292086164259917378268238633392373436480813826070840356152462396802182952416177031686427217660943211930958196813277842366281732089909434996795220227408558973086319663262552514010087658230318772139426997559814094599618524671367114449911468853901457481474030634093736695572800448143736068023066083431596743603866707907289691111554982249952717787963898799408832409577294473565659386644470355466247022938520477356077414308922382160347640411934051745557680680350329667915223529502136906663029445474819436845900218015636789379977988646261214188438394582345371653104497169327302096077411045245796019242605696041452953845493158940678880176732248520530588766013113538947819023640026209778182899881015800004446898351154513936257050820675907468509814320420829114282597598365774972238045977484884248060913149598112863636243361424559971124913023670406032881555270169996079049647799896493637380093434941429922783495376875138692103294794288731332360034729056377650881055363402150181282526382035804932152828649088695286979153959887948891995481015908050496640218525142989185554364042622844160084381064509236429139665199483419446735033969737433590028142832456539483518831385356893478744712793475525880551085727123271683664160343224479814328812879408373854907708972588130880543499542922896519554454418274519148112085688906173074627373961873943929731107184026918455676384921725995894777892526945933320700339595258726135073005911733864604293013123467223418409144250116920922397719803483219832634027524932711393772197548171562799915454231961556692811280920251900100377068535300199447926961625684090764375540333930123961522764166699599580656159101263757415737803498924666207685535360888923135786119333340553196021043014939521170379140757803686045443147976721264547416619031083606195421569391951806994090810440125523834690095593007358631106309716761196269852091258705580230127543518061362086935373156484014912278830281206361476671476277982729937149414788561170347110379730604703938213482100232182050769053763354767795741533764303266916254666546757583259534371781224871822961946414545491121301420973178842574784003347913679843571460122113779925052637846581766237225046224395805276010719805701223568848109609197885082276667320441379251663935670516954066790728122740145162283816061454838302640667367405909340426638772627820634615282527099316344020524343687422352788786293282766281541382572827009325339534341566769509072199949829519763525753740790085814407160566930830924817410918766081432711909498461338492543865642030911983156972200969744230184593817148147768553183122290636678161477742708010231773347840788834040442868235422686175753540772184235800052257473028154550380458385393986739384468683503960709188486868064813999834858816781773743559116520525705073545727265346469933534620963662615132772983812427835881666935011949783337761129584456090343229892223645520488772492283157755634516729006257905051997219974088699520469929125959781564667110575412593807646029943757673159558272973560616517121134335382307090933225696625865226275549238804750594589847549617676043139328821610742263414734331405532184105466031100075192469782013472848191230670355836572927066804883128789506260399734090396088532294195360168026393142263501652199885800187105021484494723635998440484212662878354403321624857746801577895047674593164382223248068873602051737277079635622142388792754858510923532300600091606420296958771228458384795433333050875456884479127332539823102197401179065529178363813967085025276378594914772652442318386947873219486430046780601726866921451865950976150654682983481118045090079685114797256955354579826031474610799085584133778356896241961616996203967150068443755759239032418927424823462789134590968473466272474534102699307810306192679682274692157587702227532192911986568367586851167068573690794383609949252796481477127955365333634036368379684463565984997216126946285689608223560133314380028281319001090942428251392619549591763405220931743770160270746596775755828095787820313338912592369733740035354184058513009689237883254760286494925853285129468934347034934598585504364652148095221415623580574628802089281146002009239700951820433138752414411721090094785838256975353374608630033304484954632492785753059218275017276120989001856870331382241621906963826554292030584582087116081732884663347657529660619288809214582055877889508681690427099071360821328853740925507493007939228600840406392383364726111305645216404034972287551643726669064618502468855195970413944384020890933471804086619429059949584486997480723202190305554615388079637539630701607086621894849029326237827681040085990087922867958659560977135690052951805817689796584630809196102865897079328783754975675870773389470614275903642537984840818646585819757496124704833949929464106389722133598906294319566200585191985220602939550890182784242194145306657890514423661445076792452257051450560213365924683911852616302855438048350521960549077848896170755809634253437641842807491037396702097942894855973377264245007426001771884581966119984499895710238404907174275008387081422232388003853817517880579173917693977528766233623850539298047517432590032029334048045870856989003101734889178771422506096301530863922090858919818186573308149510418667312288735133348177117635584756366515006766189444254985973273052137224772320635641952893083224296194170534539992098559684348851434285966525428258664309619584555973221880998110941810713359271670807401894236387334075634779997457489473573263065753738509521485720100831695821423390221101618461282741033961712464796077617361120002666609835508546921033084164697853864825403116934487405691271217958655366687353962458805226040216197666443691868827384464129424001637388157566218219237782128102022729419125206372741944102822600454489741510375420171901381313235124416949106179650144611032920750576474528931880615204858347684475477972157204916107979831718321666564979803294235873192202319238262993912178743504730251820534150430868246317377417885394406517623532565330518742080866220741834481166026704169395582459180461203570640004835405360620529930508560077137669256831972505530878786877833315705102188913502603066192924418409377693636369053547829858405368038797044034296632036971538638753891904420295351696040875217747223689070403432081931179831885130476752894685488598253307116203439287764459787288959591706620837970599412435431135784451750411005987300613203414007330893982632727040743886555605787523460454261977414283019852049288645250715368723918880682587796765212241931103707908325318933252778820759831046474686797702549309286975362733625979334757044259089375846126852016015892438141755602148901557179376337460359242795932453571431086182678299193137749512056828648222937715996645860356183253376419839626730187016143230717874425781209559384667059898715735755322369722233668182664942120391166398000193582194182288694213317894720340019526092036083465499351900879172260753135799145894058469962129602634140275494015343043266643974432482638739726215788013984230828794420891080280368409253343997759886453068903628235448982011006537225379405104419912059258467182817905691142776903796439137409615150488663509020621896425475706108028814146290262497483059590997814008057304583415967197839466485924593046952682087619231118087895791257916404523001276971822989827980552986777335357309245955646197915198161024783815220574557077980034253261649215526386670397448748505396146492833676799852754124462768056903117594962638728561164487545908234821503434180339986885032017840724898635097636447141868606955237396624751911413562888716466427665010827512419499174577196745536688558359668817226305338450849121456168054541359674059478533313755481075728323727794647303697393155612168112646870202424852813787302128675139522649749502825264486979460868517804371957426386848764757992614915475584860877214929793985001150096460933578127126520825894157281458948726071663252890681855243001833226817203632712294489201631142017009442960824252838364852397811012252017242520997143586906568423496374150070873425004081731450374299118889771656363818677301289731947126681244005957533376945334245874608682252349896577443216340712705398966255028566640552667322974945502337288436546487932206945313109134765977230751733708876452164860488611910686644674781565574341906150450023447648767668048136180481985739629148827588126548206327012470273371637189470851790064596116457423095087926022426644902132654606684930938639358010467482733800305085138692281769570671615471333001151062398744917837522015467720742187342788651742427053900195060815541643687674666316864391926200550649340773756069521309742678753259202353378001353391330514104102843339770950595737077961877519044315488274985946612941159415784408537974310546895605852501862098836668559747785346967806442654277479034983760036761106044059242936382885539848911377932810057118278718526442835298917995196230286809639737083507999139352287828414567894796891488261978201894858577991349436830364166593007377904654702485043553355831452748780299578477585844085931232180037284924426948045397291835616813974171256347236398723251739082482109478174666072781616767225010160643379374757656990756802254021869649735937652584784741498336106495084133158267034328058296293717582725557974369417300453347907393598374180443689642881781597681924652818271014963380562617136366651444082852144516282204507434895479389425904533211321235160415060773387272853670451170865084459000324491525903946241383644080973880704205162079810569958659438495658420906118037685805269445185819537256136708612662478597947117092749750819993841146427111328578275460302971716793857714457069042409055752307596150840290600814616775983289186702596880294338640380599868320908523176090140607646399309410793028705191487871680028864414285495890628803409291820145719791213056896604254725377073659657822369439243479293010604522720239244978840407854983071075903332790748788028583886925178862856084158697488579008833480995497670754920494842756495797156031063762441305555628952040928900307793254945936293705668371365599327496479315633927784231674762564178330806350733185217946949058365509558080360539932284955960265461697415715703667994113485309850209812444260546141910725987221732422524569571834055291473365917820783433046552698039754761452494570372448654481885950127773689738822355496453046106235736345636047924800295308151890119357543070011405842699051161834427325060434856722953435559567568438895801271373205562837381042881319070198566933647142691710447536658983681910762465038976664290057547339432774230466492874407893310279523390040803328665258172502650390931852875877040369347895646510620891065803358875841531287620812861093640319316137919934023781384294851347578947445683763198798798417840103948496914222876606375410590088413465046214058791624174818371160121362040628930102125459276811009451649083669599610634734517990032923946425797519771454769265343707313531774454173307190102171779724581525553689513526244470051779689627300872004697962685563647282626278320859664446448790759639190403497643419629877466391494515869280043582420559652889263571987265193977458741909451594210275444530710521243455812310991368333064537525818128876514308861640284591876331347210614436036717312504484682302093222735531485532475488856430562767880922622044896623258322381279329414709566974095348972055863971722057561752565840190190447049476029738086612677237879691370425464086070780705402539462955604522078218158322913097026304509049593600767731255442291075270151504353103651579197586970680529614162612456374561223817362945864619388841192763038447680394128768082909750183040260495106722856340245490847471461746201587125763492533940141020894951358245756982311792981808671221268914757144478660933431154234408305739974375518971642774430333638955741570233820774088430754427547879083799064908391025278245939895881532845500790912480239540346132280013186893388362671484509475903673405973631552008908492848304751081598689689952012405478954260546350198200467624324360415952203209001672390216461540696684442158152869456602204615533077047016121430862136969355148195089148685935376892577251081955284959953946252767654381347781523036045679986985162410932779397604612388038035900368822234737718994716986160433305664643102672164649571652660609250246956805616230389166703778971028022102905659764073575610742331303737998040113216010569062185945941420179877822969460191330281245308273483283817978624400539640566314759489378232155180702008241514368422515360168163522923900239038587266410489004603443749815242608292310451999783579579740482130836285960935955830592715547108661176181946984167664271281141328926050627988611419206534156704619983073821924517116496578596883162574388114945508046632526905380534251491676214590807024323430181560635015861354951459283650753371518282027840330801378069209924221603482515261461638299562466607579377432651791076520827532278018225327055321652839369461911876244488943570673519769457297904532310680596629394649083783534415209297772359224828954668168770769025207161916602102126450925674590448439854414086990152756108811017851893724726147286644454231458619688719176734059342225002692125816740053965113531490263293801586101985058252664981698217795796496523788542597874072319791351830375971197574974449930609967571774749972746002530109140771492503690801851901967350296484195068712723551417349555662524562485158064441383825837964591173813710377323411485083917006750158781070431115211181042937401772011037121586259238094707966938788509029043199538582151484133365839753471920825327542422306726486641292330753176847674737316884418396681829617711230338052363065544010386874612227848854244131629899559605450968649970645156423859595661768562569448322705433598433202333282547957188280772301594574318043270554743971471300115972176344846827064033203133871975120808413738758054144253993748496709772431330270598912484391625499662703961180581949680540793974555244300213370495458392416841888085387670701385354920706873620170700129711964643295496753172399112248865132389155572169641601523815906486993624244132580191737136612479386647077358664537878752361638858250753049117793805250814856798621137869503092682444369408867729683578061995280579582722733944068237727342463748308288349359173343313554710997836722451330956032012741375900362711125234702577032456727696187154937981692559292679977917061327858576314720540345207474260705218465999782058104533270652356589593602297644360544335169051306572087669490925682079275145170888526835517884022942963761960594447435322635698924733895075996873274783185644827567752489318807860228756361523845888412476064638311823629666964075555102237765095129115018062933846587873087507888271331887291006180708867223047018463647322859045559697322053662475023019284264417791006007733753152972239479134490530292009536708846306298455093584121838929031138398535900725402566524731918935263954993582267369414973665606962701455971182250615667415705376149734380649908149190372934900070891531475928732608984730597054369042587099006657653479459641946748656739697783595284043666301852211959251508390621591773520511131584931274736335410128740554573652715332982447013969124872500679129795245348589662424365886402007946380170353034368238945678105480461440397597546702841916984833552336062784390373393997773682198056024820394955851194892188371310362704305408165209097213329450972901666651011819942640362213895967290610244551641711879978103390523688312887496722309786111949785996093581087505355081892226234053993067910574728766000154581809664514287405486094917795976808065896284624024577770720611530829012997304296066877517852674279723975972913315602228489910722692076176613504299022479053738114335191029028730133816056905979726617754226421348936697142275852167757342586656403379187837558817750344418157279730214348946704788943092831896673262863244974772711609275637936631811882785547918740952799762375720584658746772424312947063627050453083213069796669241880785449553508589347968881293727008991019004516998734875773991318258266571950838369636208014854588304477122168329573199764071491654737477328700148874377207515836065456358997939212135050715858538782476623140288981860843944761697975757158076784400135408907640844283037972007889500396837798073339490070156015451017961065433986250127713525575593393819915773102168232883355431294128702930956285440827214987802625982046906844159265036401012518569937499845290158414791334268940740373438022144683772882712588154046926480302869993211189211055941300697730144291814846130618294966033310003893918843249792428104895128770815069322688488322417888351036851834547038148805878599684765798540150549273241200939264933928087096367533381289991586747302902619988391389623000976729866007581040616894173380867030277256660959308427817260586754495508821964332594531366645540949727659849507837799616946685435502758517325074711511459807895976200181160726866159868126748812466359464997900914623407687632350678462645469622337916842662065915704596048086987869437857297425275505920771321595228156842562723045182171413848992230396220767344517110294696831382526905945141168894151933228251302305247730566122668977478522846317573563847125283225067720367683163515912772605299764377076912844385971828975118988731895615200357576719273766494882220436392785020910634772399283293809752625263363666901793119815330210161061048758564534864713823439211537949016376323674977434092166548940348936184804925596913590777725037321117949577053253523558638083461615114925728048137569647614272461672940960001257661626390529004248843700721780573726370904512538047633243286961326302761658788653358088538229941579621826578106122798821230069344586648525186844236191464541444617275823976200379646625535526675440511772422479322201203253553929535594406897912114820541320179875061561158611448859394445641325550548921564005331584546123997979570252940501452402033778004278177163027399317751748484996007974102517105092836261049184507921246321524969731577121431906075422938941366143691939435951894336941119296880535408555330941976853943657038650172981622243156230161126483566727482239702233073201182927303487726593065362303254897379586679153380270313485250352670370578643701176657692000956014822766642185615131001148649071082839281423253021588007615799292527207469473781536200348363804743763173501067785240594214924792394482591155391203111092249090151830698648750980802486729766861751245828834578462056347120820830378799393056974557125881864331772324440634802850830683257256770630244833740045438067602533151570030492408989148871837245734013633272590560782629610475642897600023057507616594148076536091284388227869491077364809411486629450638984831435411553401348764716331801992063179422984629931475177899150561219447282189444949125306276939766494920880043451779432747262249818059862161896661017040300931323242644944946874903449734671712341836914609222491725936463482665863620670852007556012984804138780093364835290545514347476367871092748338954451178266862268384697234583917301543600099096716078994014220590355896551168953268611651544941158242416844832369780574472209102445906292270010402730066593498958772759990529475502613341598394848918740168353153119141587874384237768253758926641245711870842808441426123879193287169814678036884495041052650410325382306830300022565918651103360146175502386444243218681771614052146754164659481983460060868863974522687997819134251978431636875902590630760495022398901219622236334007676926535163236660023088609001203791325890293154023937884349325246618345473555852275703140122760399814327912178911338079670317363737399778408865458342764046316570560747462060006705293580536862592439282401147716709940140834408224276569310049360801086586592798726756515931297271483329776709423208346122064968360885454765469828374899543394699743851463549369282155287575067019460805143239017285941086115165387582315738988248668662104187108569734895747532207070606786769877006435097737468587603012348824328629074360332391503768152649736613434442919466376900231912367616672713051379727536738438080762822553478304223958389549989376541483505460368364954648673123744199027161685934055979715213279577585672600320205452497871020881340116897436691783394649813153752441233131533538510925497829923324721037782293260574022036907475874314561124387490471164762243637490778440273311367034617844760807008915385986212579254872420062226588074443829153744546308990439187894729355841253823547899597802248725144716276902354608188086066889467491224830333912152258572180191678909068571297642141498808463195983806540422072912696934305863580407779565982437772179049298372009879352762184258169466516539526270304085888340512913016515966256212295959492224963454402930011772592075714572666810031916708145681049419812534817199430708407021356911312951961605984127272829145669920604978585860902043563456308170552555599797457700216217489972665630904649261207890040789679062572551199779295952911035749182342103465201236632434461088638303765156297729455537661581963646520011465352541867213667168935772622081849281032499601710299374068655993245389841445264938611649362472369485437217444917928723037532765244521246047159431450464825919073047931215379780964111415213049799218484152352818176161699492148555652697103913453249895615954638920666634981315759040587091667084322530744314642493796892189260745562659570568381353013430816393758356549071051359359376673334877146682006627719430769353066311481743425533185660027575457432808740564954303747795789948910945534222519748866818276942494257334704315561850935625149054213690225294416375672429486081676603278449194979605301843727129658588184720487469627804008877123988972703191199489931375217381011788080093365945624008343711634265584764830934686470681203092997699962013168413360491959298434267574454026361975448929092369901134541389899767821421231989947740225542107848139066007078013129424302708016387312504444827951266695081600084872040200361730066766201728575033442392672964552551697647657076974337070804323322893863721976314901516721112175461824792988062882645851312073744431682363360225004904843217258752674284310521845285898810963641067307448361623195053955387473972741494520756627346658753541393628635418130764729035013844391028719263991193371018702138508829667355700423206669167526457883769670957535715501830191977375948866223711507345730835992109418382983060200754590188507051638761789351624241712762639097673010325019322242606544103915818543140080222071770532033308684017533046383582032157056384982971236406951427556742916706378027274791596594202000910635409266587013607202468010870755477968207571621413065693343999083589778918163746608074549386494855389198922564370555286139917381594563988797450357433218750581216846666047904856711393719405896336897562399398692095349326930374701183176036624246021388931732114191308721393629072946912901231454595537611197783250647284865768278428920739614014309343745660130519184035461570661751291795155662161028480605204263962864118523439303820895081083204401781305726667297429203229574012950730589714825534139662592657847694967642396715972630970875622955405357943016836229568672680381096121195589974022028722241670841698130123370636511303402830903537419166942855929678615999218550683082724811184106429785915328259008197893922787411742154913781418541788916068912304722988826603218252521690937845602895802851473090487852660547872074067808574275197746384179657644939528980074777800667187330370157956120881300873468438718131631325756820437147418176272152761336406167804916238061428032846804496453217863498671363227294954939440268323640716212268736919743204084479635334069045914701565477297317038867432948573603484621238034574294790575391904684881485471668579982319309053392768545239009115629428018303129646104265361718974394781650153489286641747667704164778420044618609423540178213081160624435611445131065964190204608163486733413466480125433817595060613564462395603745401647428925442197074792176141853546186440136598608937554643516003171886737804353850548444920966514007323056428400208766727815843447939915236971753939056547266377517375836139424890591550898238957622463221500370608466037151242174409238544354339519092873027489706211575181404961241438553954325743816495571106599738931068834573337176206211883945626149677954180055999180887441508280475121946628823717975072067928283826128314612978778019196793865020096077895181471441032937689979744277992064283417253484761071471740388984698529532278270225898998536334211377096361543396779850076771967374211067782677083138183368395400818462841200626170782517520627811194710148265166939602973891829754828464397451404824311376633813024979161465036437663239512598448403591716699439163816502088350455856273863812851053292470227858234921392004981706540595918163996469554596461533660672301292325431600281098265535274792749100826397620304692690926872151498876970771871204348392328672871390081236238376882362808688529758387232417932760285904092566647992520398179024096111405494354965491700518571904692596032153046259664358782500808749115958263077136067876028924634524154071241370182744172809086819066352341259290213581664386386694805580198447434346187209859802732468046088485346681763933894503755863736257203143660841822876217875177879770137571897703327409469269539845814482634678348886374957532727449508626148086878771365985780451960482451377168526898691848119060764478686498659065087810151790029565295181943589430770755410876708850377730763662143558863762865708744301886425338171356893232997400097927617631748601880029974607990660426624735320135913894734356362520627670116131705016218532032333045492009409515657563363774265335405134919678424448215926755701998042684181655511457359374521426767583695867961508228712545444691178884005217895053127883905075610493215739466365870307576519670689779505066297424508069862109137922076688786500205216038970474771641567505090573873438594052176316047695713834038282932006273120867775119507180786183183892974892106796618568093501914365648964444782377437491012324048935992355526628274862706188565448001592946215260483377781488391578228209484145212724113147378705245945169989347401210460363116589813849858830599697336003545293247406069836793821203996180255503042207222795197675355323779064788478268673060309652751529837230403659252148527120316226927442711592300713201419536702877716029472692715211676136645776403531887038439019969761427355568165147864249658251064132292374848497048830468385504957318624071068439770202392757686240614574800940189043002579020826568092435815656013071347839453686276653837713499946804744386449546429618368087683388429855778459222796837860067057726331656947961946675749292607640152227651203414029213177629078476075732277027826687879698320213343350737486334295574394263377030080427840780638884161203743974680861219245458537100201187354800003454275499984729898367592092958905635999806694115608769892577452716782494644230341939248858610762391477316517571957809096346487543815455757611526536586538822961673846443263478220960943414667947272197670557671482386118580783781655843899538839804535647671514805796278502134139629394291097475204830666799293784072128613150774999414130111009908894466623663628060762821872998955461953905453614127408297623682865587465648059769473133252459446111436899207212775833706887619329885856359078770429684155241255624491942865381139163014189793510300184008745989860504252301886667055025650757853519121030720736493286299231081709524129913474520483542301082277183494958871585562787226572121043573908618533513838363607055318558495275823170316005652708768480955890243905883204027910784401611066907834139567767313438970983898293566248611859803597958413816191113825645257372724085099713830757321090604242247544126152810408216690138016063036823892396520428475092131115181388229029129005142130757889697103770619108595930134250620204378287435718208174754649818911739195859718482209920209838515360554010395153229614998577086738811238006665550750824237305026811837819884133274338833484744704743511127456633781302561210594535597837340452547645821152132954733314129648811653175131318711315860480709283397254829341218840803182765532310135339817826957632568843847345076689591891541312252058148285705165289123074138610927413233320858843368397633587851772482322954156216491562001780520634599618939113825314241929755413298223463233561811259681911173071302273851728914546767506500129809215140789848149422594176832315194437199854130019902300587338518778887434801855908333062911850260932300881458337317524691651105005098937792083812803600069224580517540519713706488180985915220925997086842153818977067698502508756363538460016263660792085546196580492346026930590796070561719130327637781022707723178160670960775184323452632337590654145029842490845027676240908518838943050230583138140757195694732016171937740793645673979024089357237069885249787893642026703035494869571559758287532161066650641993944284544626638321661750224732651723823292160038052527718734655196281747360171852860989553963212053750481337648064622252767208726943560925263239321987638316026961600558601223181195468887242314897551786362758191612005077089176230759520542135943641935512922902984158944055718861150714116404500377007258318577796449168669630141022094313520648148907334739657117498538977382992389371879472902328945095800308189459948805106367522239550471245798674444306611309798174373280886096886902529854957652434770792483859382930613665554002454678423517131342926650225673796149969758050006103541680928270682770830429791264740897664603425555617635690973445254144880988325745179545518529626687203189393066094051870363271763096502945449769769161271148756134773346796821306805405420289025341541356126707643254553625326529611617963670617430203474929238133719271196190462408611108723316799524083564234120200514048730579804422624910662587410305804186930468230682137748585611303249334437939058800289846901267023340538112223604926807344449242100079168595035832133639894963060766015622214398681287184763593347333257922530625493919304231695068194937991911535385726037659453958505358675404484962263384623208573919253524253924734898925077497793104270517247425874816531703919943615737121443750588724669962532276091556773580807459511183641582909117966275445323605928299450345735948108974950991939365240565897133481779509338576585779808434151354306275900791230467895188699659278686987453699209726564634116572764738903257073432024208767246835050342030065283802395096001213721304199546825432675997755811332014676223597148092509370081936466809319289286248902182243079610249117100191547530686873502307358396506959770169293444356236536361212615737392072941333946169478247133493164302951870199262406238506415070519882432076679773949901220020490702599155396981694133470856432104968691758583582763422559951274967751821840356352168513016809733916947487975050008321657259512991956434387354497317996778202638019468489729006496637606822348023973497268406090897603723529160891269395109633276133497350960131430846522897257086455022097600005288624619746560838748794894761713763079189966148265895338335041075403918538153405956230881667959613387533576152117718811857006694139449805494526496093943365943537918460123154779748768063441165402820794400368397533338963223483334837232973760602242008629020289784618170041051744664165066173275244646902164627108785326750045280477031303942367665634675888559329393047162530328374570271388302762258831538672047890226663876262614506784515211815300546621738678553075355014427531749855329909387288114299631665002238236709933484614939113322473502513273651844474075712233122474867807645488291903758817940797357470069568414567484798849243639108168754101535174126230772717421662021593604469304794305395460748086849423997208039550701341452967852930568584208368427592156519202917537534943368342578478758575410073004429293782468141790688048231254700661459013650644383638892007814895413171870487065649825804700383202549474355412352411524814873646345062338761536903689411009168539520517342243329852012240934382344188207465829542153355566053843387527304645801536769688957537556717091268819365522952775174551946865899383732181202285929018132637379420042045297659497497409098532272935193222883105408176073116499270440305739463366811857876239202477223054182718097217757896763832940064269952296184950769601578722301293073880735936830654167188127072804820731772527126802395733568189959448965278828363257036240523274079127474582491143955610824569842209906576887956712564965661690815121021562150704758305996440965766716137278602333726470637994824261479597517547378773603540935326445604503929622972370785120397384834773087729230041290167864159855278887312733741265104388757614924476857071622621135884022069390617591031385194425401210982319794602402356143525685029832666255371190502472961124020016259090334067569119805304811894764890840809087265200852570832711577059600535933162445521648722000386278505214418100831966435517651158798134511995014629400628679525669125400953360794113225322820795593329945268380753947673402963200222041018797220290061070868432430987052533618743781341538050182992362817216418574989465346492023259939074446483180309322619906908482679526619336263160404176368730087159025778482312877162404338619951161182474000771717204292721857516085190460859530706714252317041478481886909670781370840714040462975422030490199604505059485331590284001807849401703107144914048550226556056001225632710779959786854137079599923630175126462464563611229166127307427586308372866936791593598007173754797406368403034828094152302432855742719645274403969152548324932953123153039732778509360257778903323344341676852133993703120392929592753124969223048467899079487708432429854323016374611726755771949085797927186881764444491556850591466711645878953488114443026076515374338737915893141196535092569137317911830562553732827961717569797987646590267983635577781825652927904929520788176992787077094025782525704367266158108910062043469798312552332829992150994855346289425947167320593101825701939109817155102675550564444783721665538229831594463040160874474597410298279129245529118660388834010810814583374151762341084010387733845003845837549987775264967843568386515624011873567865208248704218856647203754786044444027504699886560492370716806132261479064485072723945886996525213002748691851386149517926099501641681414805448867997161643833166089299984126491805329655837510038595058526138979038678328298190720955094678770315535868655763817404672174897350148825500280064118570021498316527438037511920341071187410113016187778118473748390813352184050788755262091000627648180883265430936178914025023658674520873738497654453553509055974897900254673552459169085909886154795607238613285773786968616095181673187247686676018964398332574325694944426394795250833201202609253407327172507857557094294939939418843894141161930968215791548698616218905120390753584768116865067228841579760402968077313111864136138983339087899975404500928919188920199849877548884001921077407082895123557310741038027949279791002147054299096193982381143289436769848871159630369253123508207693912754432438776208169912666851482147468269228040210208338008799036153502656487759600945396014542778457120606180088951533475537707861227839760426761297905830260349831252250226541200656912875316850592356488204868007053154505566186421846119544392790642298679437865107553762652190388054902189784618215977728694631246080316847469752015199481178132711632495033979592395121605312946843775707933379212494425108857992143279407868767732565398803379730808955609655530198168540997532960958099258457339415425815998732852826738413592215302516509634381689760411811847349101131138884001838392084953473478203827360210392590715210381739871029056227680012058363081534895109295428941851564702097402097286763749809801947625901714160348808597811150404121024637318735830159687898420523479272260729787360684218103140779088029305369116262230565773463230905194819234755380077147384571535608249293759870752866414392100482437885448781005550130823038259667919066374021974739403613394350479524970025893222273483422959895262323181438145760575837489641950856112282838740855325051715920918343474525357133413661097447441308987406732738840409222060759724628340961309444206638829921967880388869091112318546764874573955516882717233801167656936142995466179885126458983641358417181343389449893984645262919201051177761758274751645086555711576315678400769291404748188765022375049879554003527700251686922141324703056483356045305366008426697512743380276280643048170191608319900868153156715000709416926608407295398506819373611539360421773473676314804391939357404651680510149024542345159088815753374086194038346162468692977106848478348284407742605609879812368708760628842457648639449353159475369781816042618747325656852244710968581301407338244172106391029747489074987449229347958642976561950788929871248593544427910650892333761946241957663675794660929707869146962796537192947642014093126670442602386100685559582182570971920888614894987631838265891208657167333629303235931174905510212400350910890385951310836120396259721881548729953422747639950438886701822762667879732176120381772093137658762061812684388224677099053578521326017307839639480591169814888107594212899378032382379152392197254035024768672466076540616192201744865852822062736034188199536984536061368059326768597893734950321984554813926970485409479143032751147955654479672422165679484236890349997004851780583852837625587559654921653754455773006236532449035760246148331856438014443363066638595167347358768350214170919550678968866091434680035209607915466822678314953722629289455109179391589035556589370177595907686971525688490165039841181725269736902523545642855988626661473580247455565991462029745377494507322943618540376899014405960714612954597506462158885008376494017671881914602594305935608343495214654147450444066618273248191118700172644129061365453488339871284251553869979379339942659776516888334298243348841670777635826950253529510924769441470714301028993878614986595456017744060671464496631484493498153782935557365913099778063918865486496484993415951793328245104240382205061141478117644962798787565384716897649981370498349094956983760776964220668043636669973308809480989823510801394070468241377500942194279051308887194348834281628543891954611945056525343633369961569485989663143578689374749003153362819594499461617701063493994015095904538290547628465875016372483769026716821705849154140639772504065385995133370257444740957126039121162826351890556104452845836513551941296084985242191483603105955646515214876391083933933798478998812068024757960602794233634358626054828754967341004478876653628106234695849869679803310746036252382406074852168012468414255167639648002911704558424345326194170691951788762664747885961211381027550609995499464290479592741254632427502246578025077640159609439816156109505453463131144911487968224342226735681463008681855119039692247875393223978790734748458204578271559021400332707579448446091780028917189755912053123296336189322823066243259864939651629165515461765846025472161985599386337070726384756479391981561397474789634724517961122190358756207051193944731916256925714962786077613275150134397111041768178142624906341826782924985899637036418998278787878695419629125990741744203880577193341651189552374019350098279519240337554960058002635010984088986237728839286233344714949618189865852191810044313569834185295618806204702719296518291181696308235047404276443488131714603635498318072224471455537275987461291298531100199301259001840296491941191745873018241929491283722592345403470616074552200879639803054513647698412526625419125598112613758055963950167803620099735809113455977471170295982722320586287462469073043208522199567721895273653127958733914059058863937928761968971373485908007181380907596360530163479214134173028590373661769974905740393196566385241244978001397705122149407508156233015118622321781578142432971770382459718033432568392493299957554967049435516132383440213518568480582223715050977052267662690793651849530632729832195629467941557411136694266208093281696084365088742171740251641840868153064605830779065543072014953065183372965147992610370438887333480887671817554061507697724287378724307644964120887712780685407360520702784632344678262104495659001209856028283733942353173898406823935656369641141567701287054536778661213676367107522292427041039415827093537472245918529294933390775212960979648360219180059932103833071829316710931056409946631981059497109112352320311493085256763151665835887394770011454587124078163795709972088706705727843856165919774424050389434634384017544660640822397517376765279079868987236861406521883820985753293691518840188029860853089631157309622434937639721836514459401680447359476863883789554740224924512199308105310741365709151042506889377372622667363753391891759764305871681873041715819025195151712549864067545379338678798918358461696588604760428603167979964806927985091957021029086615743176920025909759411965410624736752728655147789137594012874893180538032891661836584649912365740292958365110154448977496548636962280309500922290742720978005757092286358428496933566671233136061119904199277164942186463234859607191228279343355094920658875275252066561886190034218513863489866289059965259417207980477841931468346454666644106826353535536203872443916565605935475247095657241896318224727842386316992891026200140376865348160834752003210444291243289845486149451961244159034718404416878071670607797052428586164461248944712903686488584537953562142580270607121792836545573740691396481116441896748432523307950703069628483308239652102881645920613214102117360591748090650457166474397894265245585821105123764807933179086967714112269548323143137508850265042572449536180847826535012055440189215732273205642754702366359884949563588222348609428502481861479000907824435780602366468225101256933828792262457695684538561515015719715944659391849810330142864214765381893192783984536618690637357939924119984013436279763609301488931910409150171384543900868280853752877637637354894478592912470116258453812691198987206903092150426738389219431135591907707364099800453564078045083985664494526361363229303714892001289973045157724836798621032863892513486210225802226396929910368112521485133436179347664410555859257858519608435061773842130607210153336601274487916004099930741528095742327601289738249462079927196803400458120060818444713604613667674839916278384369923100752303535028121847966714017727589386051332922513376639312899594679515769079861368745931245957564218698579508543653648577379477742296357355532204888579925609781720779405750673662829531185617124636260590287794928980102148952510716409574389708433704042478486973599508134975695498189126952926053717106787078836605623274237047555435260422067748978711679058669700081112889757419551866677102888432520038383149542282493981399451370848689054416461946034896744155810166490545713312838146137982748882103940138470617194549881719523337524881083195571778840200392449882067576162727441676955660986027733342240873050323781566219869645261178584642300453125177243713199258981370756096432991413992016974912592747585749232715336631373014018960952387396859873143177521418235261443337335535989044680140642631872866849736078649022348880591566871621973825023655379860316904527895698925399190363033749600530061626413501430608916979815068566862183576309684650272571525810558106060809631714966848465902884514183497693161842713906328010475921787704301290042695027139658233162556989913018745345994924790986371595948089671594657387574787031352378810049089274620006112067435989278608608949840622183418384611245087970028436126707600205500425049410670091475701276801483285359229981646108232687928531811408456474635252039273191952776613329245753409325977451385068372172598854804804970094661324582237156866336387160875481448830549766374455851371674969917528361138356933290175961197787803000294594427081047449908280739959792614720828609731910828159222581671708648349291811766859655131884451145589132762843649970863164800408431710755605572525013998430674023449256351262921778005352701140693070296028222269964829618545537910169654529034148168556662069965038313557588946413623369710819203619323280806709298909121262496269544665951941580096498208509092277596438057344519052046354463727719256851557677588301612772264512433242346031346257300926368107200675278437372796895428392352825239569043865757619552105789517726934155176059917509962226477957734003379533982705067727827220430554920385028474411821530798386358051488205370535332453267829854257360870439906686698667226589946482476022164352171736141493007684167801218479892669633555702337466468012298635684685312997305908891230701205996778703993860879731813075295025910637336170164270549488404206555460464107964314477814526688104205969393539420375895194644117548408382916104025621602121521704933136095118857440039266048019731087815961536279471973185990180435722644700781719556040561804305460995218030584332788162817690420538182036666973334224715889134027753696023055138497956548558678656088496214970701197335964972518430416370374929581046709266005697830850637045956652502288724756376925154556946568392469214472777554148691570985711340228082228653819142544263537000863636072861871111086016303713192766898389668568482815501262264257878600676925243158638560079380268286807566415355918407256345595186603737334900402950678979131286747270775681809573883626465383214090970983728629263999226544189184410369080905189344713791700765630519193592019969664119678424631108914204645284767539269282002262348918547321448910265810206207018164967509712041555208510938181398740519263135919697469273864852303570376158110229865560367155480420601082568020599096138724483435405597251981348103255283811562135522945559522992757644428828458325265284740858564641042446932346352713492044310870753937521054531317489110094912114971779008238992598985041244424770456573352988714797637359760746451092997901515874224324664994603513024529618678882428181703279315882281618150213351038350325556363334435750990364494033759564845529186254622217941802810585486097979951205703756123965069182278963331147405005712677977803457495201368598742497126974603088399954724025725925066518767947997513048268166266354460566497579562660307028947604964159934920869077463591816708628862654849962715553523653318643848322775922089871090861227339668353719128920798177706673071123893263480887354133786580223173278361266151476387494680171864789420031033207492927673957757745201986781289839170175976766203916333012728577705278025269574838527583477602253342423352929687485002038623954989547119439849655849789982381429475802441952895300266643990584267271835109701465512346491393306674970373731084092301189265562013437998548723993369955590020188856455467092560022479488492208265770056629222987251260118250001622784061758022838291851729042224370411347797132609412231141056418714785766288158897721873600815668737843941861236099419362255485454783791153855991269537354102950780260319905647757693144576849911950780526636793779581038677052956131216947513098467285634659415377837025932243419199062840573044147213518347430565947744405956693135059851390750127030589882940475466610783419878091098625642546531325725488681133169912983345555221867837291147281023045856005205790418863423252462088021424869273202024332084152342334093112367836563051288158035714760463143673071041107362653881133874450538730276741832123482579754088849869266096010317838150681609730104759821563844037160476985978800751320074933408238963100707970513875044020820515994845029581685404208534643305657736989333465989546182776889109011129413422952101612359858399223045556808116338905567704276063384987016451866001934129467905083891197498004913073341138056842843324781626351996674069310426757597957157387882376593478879883656128203839749160899143374419628441590347402803723376151070881441054237769278360991078621671192861851100310241614097094459701060599834379936311273001689042446874628157173879346257052296326529077461954665879527470594303311484805392042565023626630433791406414420493946800959410944404649608068139785746240483274503857944864903186413649007589228618737007061260218305474886533576620296209845217636876091059195539074482578071891150099796703208339857522129339999859495937515584036799258947454880065340294020662563137896544661659379551873225361924951728817817435645315763296553286024349431173215277857141936260814558791582019524424637894854718182388710045565058769635917167241113928006705779708981547020441499497295340214730965991289073034373200653646592524068626448989440277828535464684375935579072911189838258379513823080617500124663064580440648616103507886725174970008651530883244523699299847459061720176108412557186776547183168498773287756051740995222069058145760481501853540049143688208318704669323491605158636754711784168461192772500159829732728000198058571269269550917291005483102874959492625346911274619819233515511645260171404473803637751942740863903668919544293435045531775416415189379497724756363053626790234931084022922712322639044727472522193437248823902726525178998146511431217927435733492763152165772987573417204501429206052504607822285479898673784890674063548312247781659716423221488872366039864045724662647969837542149428261247655172176062455809852067646751035146860015816722153394417193330839258600265132222994987522108374146687086612460289825776546691121186366693986732602420511813740177905769414447060950353904170613851061682005012976179904588757728404085764057943344743918804021957843047043956817475475503262099900594913036187951001147076094471496073534794538373758115711301617713597921415253578888977961744060807846005715520030623795498385152525467629005300646673859833685649970306678315447204172029093917763034825115569752974136513991734791959277588030410057784500671755016307409193106398019909049735150753314230320121476278320243856718277383369942704651886696190370644797693971424656874071833313568988400906551102007168706544526295970530531151973730024521200953666266137422161444563202669651337119756952681880441404470402247428914535681895499016511101337840333877105809830653281198834768869936304360534315005824499965192008477723123975016065298774014310968393354978231205472656451173728063379148134843136656840950964979036541563547267790838918788789029771544264253460525414734470009989280153572615119355720091467062847097745287653889892865206771250346881612486669114918300949668358236884468497944193457567650571001569023033019949625354503399600042396134815351144022030574829001280719154225854535069593998929062305130873060550971907022306019377121864595682165922565893537422811831638288061251061124140987430644252552783630281672910520609176996157001596406711161464054806896939161991299844491664674360282486355598934298748831334550688488114947161644218145081623162833790352187342418419110357863222921096728584817656874919322258425714253488360898790549162349039218498178778949480669551328654502240568994055000895096703591570515968531660790060956069498558990693622680609184561097160503900146389905086502561329447328343793923460306714968568445754902520233387901943058772260900338372758884650265541812590535375222791561525970588627095738492691737197947818973259365830361068261504680137524251296985104082626364066485115198460506641326904695435661613585942958569793649390213056155193159093070736122276118057017177247322581493162185083686068721237585208781264584972148869873593064285693991342468118936183858104690060539014014201991602603702297549405121733731845390989551221749605900356144872015738908249716512803734820845836222458117093281353915355861169752410451098347031700028441836803889988812349499636567737425659538286127118756726984455127628874385932957634628075460035336653016548815550236116716676451568646900322814959773310747701030473708201221516827066408307726466424257028984214866193389494974308769167167444539432127483314715886317606620008959990362646479016826287382183224280125045629946188612661515124670215046555707020910377087070800508190195374017078326149970730998451184140824288500898955821070794669112829218975979577489948851375181413047243697664160985182914273987673185288482677588880471273595675396221151604716239330130599254422345152710896808600890029605212467165803641617643310204761706166636703463061484900591876484213092578729879074459999016687407736409147773795390593106723037682709024297906157645145100845768470461462596481194306659711474608968063498611091304533858545072960382211335912395172886074364819931898547520142763707410235773524907193590822588150280862071910576313387681228842196424134230433686925046939304614754745474541164719408420571440978919163414224524707629903794660915508204493831102527319954217631134783698116223472303694573553059187705398479884482753937155573441414979207610058944530239314922385457172947999712401519175448330069082323175363291133479558870910519024404602809275370635151016164428354418543534778250636372020124025731049916899902808639941675942645893014873904735779594948972066162907134562730584179748538184824853947518542176976598968563377448746571815415402171018433380437943320564518344744329736414165720861507411110663470179282361753115107085859232565481269420876244982664533612581037026577857447011444320010053612302430113963526720082839301866514034716989220140697004244723494516187542544717157488454403449465116831918025169060313659600770637029980058608558817289925449699268931554476288266410649952360557117039399174635260482547844273947004392150525807388578121020081853499859648011408344850405362626471270917868395104916528852738260407966703703491870544677311505833526944870314207420181049222297862934192804598455478975152908641928266285380639067385835773971917970975524567891903792508999188632239748751453382048091110765836982800689441593804023622270402813784602284654819221577717449161140413798356367385793390825863801394749698265753319113061151890597899213074258491259377232728044333893016751109536829353049595347988593542502457988453864076653645931404245277558375060746255441995750776283217907939353990246619469217071405154335545629686433599365708281012865505826592280478121496161122309711735213206274930216106710846129181070992894715343979139808408377571459791295268708711509854357363560162926076250486819496552087618237453728694906987020445275122625916869914818499077507120016966787350878883809264409943318566253131449425739129880165004282743914426696794104493297468022359516514013512678245172328471339169553121671757120210357231884088253627656753471364680042149057518985277946392265967230195649856117066737739722771024677804095294922490939387534269486025153716128792422359417308967580164430444486827753310750551162957888015200076849514622416960493547225914730430069398031224483523515098752963220133284914908257282512604430463168601307279285775498494958320527143880596666704914361721301130188149106480165353279635547260554025748374261249072503547516178660782995971109411748305055009056583624975936230205690394766309208767062256936292311389370641616011415768749412776110018686462044129751613264822777039737342709692042567160290148111683726018622731542783851907435486639885849874798442615287675970973487717128966768581678256395888576849271733358923841566468399383004766764461072015234821559958299668627643186597913149098308107547929064296317534287939551090770695196560657366566140272322999518052302321726964625190654189183440102545614784727470643282653527360741911614088153294187627764892746985497555663240850889964163603496533631788063995526659005847162958387177442727742374761398668897886302853766550900161606046873844434466189980661335654487463718247460837109392545647986891887953363143442131110070225484802094073017313503402996237914488415819298460359714613070015083357811398235741637312469985883813054083675142381661080590073640974390521142041952057703169133052948470961432534551769081981384781269562933959192317272735913001814979267046689021698864574948875540630164797191869905523501692281300037933585696576001401475289149200564112064127486219362237033166840060056806320936602233998874249990662199193075914321770821256605173770736891040497929766305979807446914492765535624524491938589656306987436173137999665337773729096895631096533643444599010014166636651842998106560684717558168742320272178594962626232930534309143821819403463427260293314734361978375671163733776613675526340043132677213372312176845756975949174317280902986501677623796921385267242818344919553461753656658287440384393548251679821644343590043894735070759849872325378947645537137006525296060667553834408016068178202758089374074688075667545643409789230183789057122744772445354373379702823708163480112488428412063084444934042843052389465334171629295861846448526465584349080472823703194757433156967453988955050158693481523395944202291921883860843209291127127571113963639298967000929443072027079379697500349921571334330216541261603627452906831756479217936267271659122244511201355668418852106873758448687555914500258565985746318851497080995423828504826256964339423751258690701870403706344725153321527555796769933054307172834353684189621963466020191274286470763639343107591987610001041299558391518888265051302273347755873597003395409053395283918314010373699480125566261046738177121116819722758723513459121484214324115331319038866262637095535942908092801374331793309288764390879996435344599876951805724140243398091952371284671411588878764012813549144752739247106068344462025561600932575165931216946240569719951110273364064373851087303273794012400553456326468813072172249993414862364043870174597301184888542615936719867076576110004199622409912131093039371817143027959832519761294992757093824852086821290528728455449862070536236688000092068224369649057254104246790633792460157214352705530772420358857132277391532619653543034312212692410382285576514174462189369276013552865292108932374320505835497260332129199237231694064645139102097303689256787189155941912338139999504971974814218547222632943161674079103056833458514075754818842151904252612539307975861068424970041665020018893244494689631266746290683383422874705049763538702550485404426679142156849133556789487652007267485662258641883271071303630513092989376043031776056164736075579268437875682624573891374631076064583974301948195728421826859294009340175299957066799260631475765722885777463496924930015313753351375164325970803146669091383807100349384827404316495747408971070626742401748630724939822482249533593928235114770241854414690120682839217984719033808524700529392910809688461732054253266894320431861224019884625524628577251900686250458118421001548148561376292926378245599752567780185509271939951420384524120128986009018722440760934185351140960998592445464018578200222251462319946966852838079699328577541178949937908902312472018360491555295767711839162626942228082478164724576176344295268225203114213994442999455350442094849942558856874628750205275707091287851534743438435293274329096648962045248870525587095932706326616028481585825873172627345871621118366883735855854073548954644063834035996535475787612518640945496172835997519916561232331482764488670978831434397505479921815531537970677146004874328370224926479217473912206226205873344406596631608161571925349023449950517023109931891552077014027071336093944389718855737626986640480910212143190780604796977733252229659346617681753289236864241077636059546839544429111159577065388975605353095091588267335970159283082911852728102730748392531441740897330087178594878822008610540304416175832795210508495526184135134156499623964601308862438710274237152279691658209360780815696739545756527851929976915955120872134608384597289950835054661387555860969510557692397894360106643808396965090702340626678145772286202777821739910744928399892629663438293598038133739644564574474959134909990775494165369802527047167606755887716880434111406113083572146837425833011274207659664419943838453447497401091419913409000113276655209841769397757535148808956116153160066849809245492814629988376770022001459660013657739741855108470769465939546438748341003639210869474444369322873599123156938300807685509415864882782989497962616342155579732283897502969928221153085074120951732342565918299207273707657855226083133014595143526146803785700175550762090277202927455781484676813890749689462960345803717058810052796735573252467858026579649587851848666678963538372477826086026142949064436834409671231756345045925738438760368125683236966955505132271197452268929925633680986751507732914883724984153875855669663027037626513943573679929703646684721873058387784850909136731682023957433693712592689685390998736689232074431535612484632323371243926763564344206848561864210519425479767375751236950849575029238960503764972996765211157408348104249420677747349413530885865576186806921864505837645038518219644696181579209524442672958873222228431455867296013464298231204686788630044671508925344295221550425603060949677842718080442720824064329020598577489849679125297703213527344943376835089725191203645077114399028444768066777932248888342664422078032898447759208273158751316626400630281886698892177429691368431463164239956328043328102286850986709262807344657134645766286830784662691356674820226452529760897500106489390170423992871881813013682151581693044254404627885079485898081373008210944669595280597536081238277492102110274143044945630680131381789748190901011569546051928405576653494151602337894908176561402783777710392082530806727982027974464869901016610750694793254918957777883283724415675232177378159421291538627273173516380134602731735482527179420982076201704506016015404851568409918917877281927068520394981918420863256365056511714517743403362303251108520623806766545481413023245595504354652734927657417175835675207136038349223141059726412355890732005326584468432559784164077498327117667324902769007899377863036089995271412163208055524572304461514386323405772871597148569620264991719030560706774003589813767604493260557061093642504551746646269462517156231749378834478281334363608537189337900004729237121169414778923749312813697235905443916717704433976037724967645455953708835634910947559456312459777943682072983050081210209856008060388028445758362110600929076399296523876505284007510857745182145091088150929319933943515154495520873177279114637028493571505432936048070123869694229925323023806001039180590749578463351493295346369720250469362039014794723569058804868608743807832827923307983808005433356559886449994640670106942388878434255315214028149847747178317908553728926465733674903819364776287858132026285648450477248424302100060163533185512307361834550750354600030640624910455113624138506968705538540956785596645011778324678916639141986641615179535493341868447367586554823428105402786634143325380866692396233598030398474218903595639445284709074550213241045818620265222231617620254837103282351263479112260107121085807946227716019708404641726549341291555266123377910980933055752812841059910861111905638308761016507809095663157241104958312826924737613046965862327825132070687561649986756152461430467371746737317520404563108894969112292262840881432039132986803074150914664734943115109283253167285772503308452614985465083933542769679727536941269015208546982345691551041774840293499632334793404706420778488114650137113893536895774306930660438090866898606981122753981351449040572330692495649583590791013132174523141319883348161418071612203413654861413204996227161801719552957873916080651284991902558545506612769048664857831628929363681706539997299322799737373582911265209001541132756797107913518579710836508040371370074125893074529726461261416124833050989480622181494976602246752989965626635925542174587879379436198879430776124776061951036069640793548697608807239604800028988787818521272241108499794281747436389190595105114452980185908602220681957130879834119110157530464896905375360351174579774459424815106622613667555202173039528584692579132835599555978690696061701624000106109297700678003902095226630350752226628857228738681489303087188847787542684470954218546996217224478945829076966981030828292928656622482743537179328581381885300026929331858560929536501111681812013191150566013795312506633565233166377288073423217867616819977486479716704649301631611023255350078839685316630924414553464564068721017204673451257929948129514900070174439800976636034219561137172673972409091620869277578511213222780314956344581285486693848608919260190650739439790182725661512911802915359902651319741510504834034441399266125259322871405870022269981376089891207701457099602503259334296493171718779127840500934233060167547671543560514012861401610263615526662677030761163747588378711167888304895306372898058842245597931288609919047602778670776076320451019598992267827399376714970015149190437529282285246267833828729543460594810092581335868375994624124069016425930760149297577065609248129764778702879709397616022398793784936626576832790586849714047378157261698843523144593470263716748016617774802435796512233929139308210340899844513137370269551530063995185601001591575613446737864952489270369829255321270732118487881179620895398922948354618067158829564734993553173839509769579581648140009408942222045954853214140711086492529980642368178699691721780471056492901392417694102031202855407540239968657565669753464047816921546312147655212633029097684684428392505759960279011541497981007822322688884464222672525809318204777614632319007240353258747985828454906913349893819676531673481325022849543133334115155740194419627975517940477843185616405358258776525757780686109147495413736755268579249432454981966673520182246917023810980973353422372035128807241060142672344662511664981403234699898016919227544129992017747214924158377749123417230746213594860076587019044336763023414229072476807842610690920749225004649532380168511504601537650416671098688859643839948192882710841920500851255644851807685630373758834751462523675299490236367494085094528505696263613880431262387246926165163406671119433093084289186825659736812878121841863293599205619374120646602194669034423552907288885344933499961314574311890817399564020223978600037124526215177308408417588868108218231112340612153698437078120828868089042583289983954982386164147886968739980770564428798595776886025419440953674236724777145574779249922376678330819849438761652677094884570430158538701387041830431862960572858623913544666883735188565711029998551399683445924194823720289295169782337720555599254217728449230589656931884470465442347657310001587789758528815154309762055279735150144120500099591101136167718575165827829969800817556431201857196165985773255198867254737429872105025821711795212321931964114555469350064888189360955322630208914625487376871276696949416228644565514660932091498704255413449352490749047602748766143594411076498744179242740334111813332484812559718111942718607774448926884933237798480952108846339270160200296733562027380091645574238753404960053589127943235257829702867580079945708724901626278083346576414079002934303149170535040809893084957040716608331215995054809856818936680134723745788587286195796339871090444210674386452008780222772648093520650835365369358485180585233282521319352415615518024944243156460374532985590049626788931081185161403334640531739322266383267221009629469515147216446113932929620519398282545170984550988391210893817297349901898857922472879422250265132089299720278894709106644707162251889341497968548089227028710481754432634456628076734915374863793370775089796353726032286170515768259079162083537505219327372558526559786162265587996409977900966742180495676036084419924354596829871133077564442625310120289205364662357175709373248015994373827640969842384641253976949238980092263523931094584078463729585474892830252962081382290964859213685935790176466692321934613067129073030279049331193663591814117512852688014987610453830745479919579380747652839416581710474248275190925016342263523504165509438396050310677862373209554702831677408564638399191042173521098145490404017047403092349900049676325067131820790315343206338063214424435816849870089094823732652318376334807088250641345341149452880542925941582803512249517447509367381853896459924663856261804478015603920258121749831873584650769414263881656765785466939904228984463479645079445482913345042922333399754532314203247737465851251920078495535585878406974909925854040075847108772334498281881409674876258032082823850616108489946095028805071400875115344874830707290410125359398308518408015473133927332396605642897934218969450453474262713712008304218330016225987702003851426007556409089517969792121762777601525454285792292986277266246222402950210019137900276570248618158004622245786721311672271166098866648716695983559136540473256895160571979965830474590314896816375251385755923111063170902294909028068926808003932491823060780224306236304214239042082166285134005994777241605795374972040533881963625589911671695615154860499682124877537386574219226562343985396530014336704955669943813829521534148182350028570734299839832215417361155238841042503785833396361697148514492342417866679039238546088958693386375523415440338893884850230676276898118883686291343070085589413526962417764470065393602371764979402497980328961992129723361657718282112424029172132136403930489268960853515486384466721637810271584158155290901994563578476192604583320841034553454429088212392298677344734862808365597140773682942850555242739900502683210448047018852586617410903105349811714635936972876026315874897711897068165185221874978467212494950148938244252369878624640622095935656318256096004698447161612821571988952588458162414046268681409001874544842670578326033922664325409611653781384565550236334687229541089695171431165643217391458909330826226253593774080856530225788905258456181553405643492216703341060495500401401220353298491359471722396415501925472378397661463401588835532168012846254711475078585040679309970115086112033651998332482536627536673162321012672262147954363742686936687189942321505456909167996326733520507896818925008941022425406063656348164954425891570608484815058217696051625687714435409714553390879962548155712408021259483074953255668281138566254669677264564048863658789547366848821651610938377983359403489645240333067472327495406795441431910341090615992216621509099451508039681096751368859870946172339611201821468619224121291623866799820032100527981516787047849822914964121384265318973648570555006309355730310320771161413724584152682709631903890205928734952768276749223903409248483861243742936416770047196148650436894655054054130903718461204560936473424729843664340352651538695846276099335508644206298802072249577392588755934082220651674830365057607219227280437632683375761033281107312471138305476438757125191068348431046684127517412287673130719207934629584983784489624497837503786453175960223489465246762250808037261198843527837262954522715004054588677160752229557686797473530708141422995444158646277558472994780972804516320301111326723604018376225307206602258509158712028909640076897692753934965891640382234671470513295025643184033954457816736211728549366633573690354763907946509887098318144983996375885926476973283356153227614089863140458669741396098630611416284758264004088846374502061281213978427818229993062266343922868264672502820260898148049373994785240054054451223767725541695641006049785978189472810895757388380127900558318239692095816100246443717410864832733849290224135457597939394413363440386608584635993840658325014406026037022720889942565583409485975593372894648175797612068567251628284380096164868486104203628428730533184585046604064551935266740551611982484150636307670920733579224730173030358598770849122093863715408142204781188512941653200110340868104254407850987514510256458164091804866761745191302551073117556999746499275944179709792159077837156838208744704729232650754597820350797718579393496388276175670697471660998522629411463022392270398137133831626883820848810548673130424989979882374554137901444225931255514788840398499269473605842985423716900107403594368331133375088359764015783568254407681765770194221768457314756617707534091063007936849876568969162093819252845397476695336515246950817931673085523060464193794032945354008073220109326639274187480137060670143429368371845636779819685677864341536113182226192152439245166470359545804174412273584292305076249332059915950803326675857275189708392007561712453854673472812630294882339140360513755723823202671590676977877151649448433204328026940681621127003813919450595698408173902343978061903550796468802487601227168282540355608600910586742104065464900788814061442969253190556511767353176400731453631770366453769787224196907196843180366729024397082397956721206981463373909468377736849017445004175265302922927121821673493274392396227827885987376421591002684533869006328982941568144634210657345583325562234813925902717332562917847711864918137698885019537879298050151440827655442375872202343632799139030183533865593310222260974422498360855357581442165616401017603416125631994779524603332368809565926107492713846944018594827804045267116634541175342633068621238737982231283712842148508654936901407225538213516156919703651186379641225548914396588982920754930171537384824226838594180468021007681995152764824779520495735235571035522270516930678415364161334438054660425963147523085374469206258078032466648112649992854302709884141993172169872744274780614659864140386630965172702318721043180829197995267593762278431441219410548910704582919663053184476327741620386502129654344989233412689573160136831311794535078396356866490576584328245786284391413127010382721204215440480903704368538522247586228629334496344125939475934219958915229061768187630474460729003983720985196392012955656324231138411754554797227813246859349493568228163348674234089509641400530507499138284388147670823881628830842185797744756543032154188364032082786369935977652272162823201121329591256589490185175914718354243024279053864899744402280959219144428462377317663175211089639410007861955665089503688847040387817803989059905549309758065970973420325329741764891176141648686473213430576721119470713216411475772604658085819819374386344896875544662564553944770894980213600396177058405524018395304043012803417230843949873899827180926198250498249685064201949268715899129584121573284090408541893391457367361541392662999895052917844467126605640028972275576759845292648212841774264806771367661907421000822863344254126296690660490583558157786985887771792714695013384766085892285706620034397300049798079811583429177002242906168418984113254216641966217863780925598891896277921785362213466408788988793864386197287794832992498044796780611516440499950279013325145606149239102241126257115133087159157940212980321561856583782962219980517567958029334060097811615039453400022200131396460879068535581157432439399842202168913651152452024233478514618407289417709663804148812614483618437155691794636433162956503296023548756712928832159290834609371073828189081470013702466806668947030254885960797177017728153998745014986436779391180952323071101525470796488986469228411859826089077817390253807562841175129501330089030601834589139365336695670580468595319622036719573383353125213755715017935966833069603090875098436037535845168790453074170201424541548837310531927121446597945176837101080003565460694782815048600726640996556751914449816858015000951231031351585398024652954731217195818309946489854646707089876806963611010354635695933152532730291352116885834385109084628896874614737462726124185712734151601993106883033375029055765748663638920758708895167487942132566281404855214026914595760153969083224509737149824391280450284750602945343854608302058907158007046759917317376734364730341832719181006116991228248079330782708232202680093831053525095738829195428398682212115699053199400536906793594876169552302938164528522339960086528158822001592372669863781482943646421565578215518517848464687070445205455007083628464434750685063314176481331180087967400303331162123576734385737021482898502962718148675748651589652518824285783969932501164936569238261308065165218214797100251205606750864754529707408823236666395791958378496514286967353188824840406931271910366673300961072995280522326041714382067902365289063461696141319671935447714443054984246826372233522856437292430096013613995096043637530949707691874637215634928390119439740262272983388903627743038567186810212083060167645836494950221978220386938935062552107801650490037102549175072866112804478925774498000562271573200894326921487543839520683332110286080205640757881210742561429166184958443193187822560876719639364830085912632974473166291347625779863578537799015950010666670687783598323171769557710241752573571434810567756061732312755570114022911959656916362918320788972896541668340255280836620342108414417429658795203027673572208516191042255974016367501026650681498402290217115343637284599393274689332985668932830111160723310592433284525606869770576281604720465147090616698750128731318755371118662702280500168567238360534242515503364906686471245328456478155597987491964645855319827459629139350778109556680247590264640383090682750527979293072548110279194849319056811630416273196734252312657174167457580883836889229024593609195844019113016580925615981661280432203624297640411792874937109269781665439919082142428673787404419346942546643190986341525137598849670228315376487292672245158071214276639290783462225900560175254647685821263699367076612401228653469941229330427702358860405294277913034786796944640899523899795875174704347056176094642301727217508939500915978136979603448101024655179014214758048671569490704631788932462049495614750764552033755433054285957289856750321644198433455125360762891586581447176140165088726052557195347720302364425522924686047358771332141680073880704924432877031613839969297210434993494494200866932388687419128263251819415562182045067349264801137196399319194407389438626342143074191930645199576920665941791812050950093679575938573303111667095458602000365576788402987351319277159536152642589767421677304959683319975087190041533379073666433913110487550378132285711691394127557842656375723514814931349480169256449993655697772094619712908563590242693587220132275191846795279414887241363865286990201729738408908251141013700603753201112478729118885126493037951664754858066393241237054969624521989191999217909422681161208857646185824088693528818735263674746102814843077980134334963679134672461239348552082294557210982813048565402749427936467681470074080438106042798565429397279014390582318508360492417971373893858754800515957506220811210236316907959322524596321060924508554619941030802608121602106042270575466448993066784972820747730210068336534637363133227116672208305506349479050735630665653719206779993828155900104134695974894439749769021970399079505162090442874715699080388638177397004385206913301385830747859789851935922838052574983040912723011562454131821763682058497394162839344532032590364213193925618082792210791423217908680370291668012113764187467105782028103049571123075198622710838091956838494325740074164257574690725002201592961064274669908807760341813045401868935351705581455119573211669769526368348555642800496194633454101003668311582903044404028916016431935329399930974782399951754513581936123946185572016885274984523644504288657437765968795768256638705950680599577803031784188411671408407533941784268555464465062485759017729392691303969860861287487984457764339939686171195038182196118037105582398831422058317260476405126762531751249225227570566969718356095749043202397262134549712354309488000476543404395338480898020603721767417848489973448176211761724567331982812201227876716628656947382313122343998487567983425457201053843117942218370190467334931601820944544268866053479043450168964658922977622133224912315910774250878855281927427182811523778275056671889948652633068051935938190605777752508838725419929026040868482444512818995828318149576378453216952911256867276054867220444863570434164645654915614979554758210979252618007014824652906446002807339042971688072044562550102842489555277164369417309726920575514857178079524321713562410404125641794795227033901196767205654620087550479448459588749348048236882969147004578242921093298238067879399328875811748455362747884667350339058003405723192398636249125179733239514231450662266074169214915973398986891114624610627840398942852916108847145856901761637692152095594199653641990520864504405498172304713674562985922811475356669554490821138411464415937796300773626384854948131658306309361471989958826043918841954656411422782767763658654126052369466417599523497609084059189601107782811838533740899575601247743816281222821933838818709167862460696857598387875986420262963612256294814158152826194787503411426457543819255700972659834170523842001327804160706390536962456996084808058376305287031183711126543067056559780860209113284534404141175706379475778440479660049614375970381743780206256603771660413957853584601524269191298914718655715865289845364928601476429404359970722901523738098098358858976016674946793693202276977912869011519873281501401666635594868159944272527944124765303388797191446543383856119117066162268262145744313132619669789447545038471780105271930136048210489635840247648725824804549180681347988934412721630006399964801145427186848087352642237648937752746175353619133229907885206970134255622631228641241949577984485714700735693508425006941450250773250209382374489456557294832105984823351850535039146931003848063622702165788289881953271865307406926131858900768098208405748616786800506624108615414194752261544254843852353164145112830309652571797717380259014991046544264061802530015161732118436520532135076639875884378088402347819014584307993235350122668672224393922329891562470351979583745023962292363189546782783274641516842759806211438631902522006036772811371551080344796547862301855010193237365409447222227146509617022772953220760264155380475464214075244321740155466168132983004360221619039696848955257491247512598284026770166020546241342845793243415684180703283313702447097622189692526790340648835279682783015003333574738797421798393531858514774185226019257597662630706347646958512989042720211502061837971107830093878530891983420926370789705833673080172048482751250422993500121355967423628023806867631984183778179967207577604834939604339234700743974180295668351374210876165883648604539931674267203383786199818814935906637355604476315110984915553396326391554030806470025172117216539281509171505751391613644412920507600983547714295269273612246399146895216414756509330359178617725266254136649269296019093535066828582423569653176986933049583802128808012209536331397997703902137641087508273462855321808011097070339448502898946738098528530564292977396082387994853151002241396322368577623679816167182054480117282186944871748616471639746917577105642275700569411438364953590048433337547150176141164459283398427385976282964005436817500648182310302958924084812296935569389430266464756945504882911849107915342238696973179955122720794616716811987781316489066060095174069060803522395665533814505331583194822842380499281240008261079555717665056979450013810512031087472787655631305643857219321622329810892373728988440675930765450196987644417543931346578291186622618960557206492924017667792938242986065782003783823873500518089014106638482248948903875367612921005578802369539166410204746242880990923641459623068880976170444471336335052235536757338551528578711346202089345146454096868280456860814725153238942494192448844111536887411531178669835436317067700676805472121748755301621202390053842393654549239363469335875779726760569329833239105986525049151884525832833124776444000461294636346477859352411988080160530369979627747054969812416502535173242813652292675057093227108125127399392543030917857403963302403441279619066860119683088867382871286457150809307928186581085527533920136338543585459336628927067012853580720004331168716491811601760204667635695693922339919635591882783287737208601968241674837808808252172753411218450776963759482340980837567080182588841533207723701334310626176211786372702241569206840509109038829984925672869303830138453117437220653639837557783310443877587405758910231604304253564793606572835864655217900982423981147097854144504549997767178042990143044805980739139721062986969020796788453101872664571284110214042466946199737850078635442794858531789481197087382759275041945429412256111604998685530325134475343837684359453322768744297264755183139621768783857706478041876745064392218196432259971322698318991112949136256916852353702068115374777656583587487722346472374076227013186905571875814964726225397881697310292794418995590672984544587311228870827711208828796315888345375770157873652045606381156189499931061533349276600201850586509374641010970548355211110977570604860965471480987960020612003293406004739732207110345294196964588753417067108519186782022031743249819558482013342668232808616958701588146987623536302891846996731690842292987818686136919136277063793854768761067005086207636042590883392328199036204260468551555311890549418475256703441771300598162846895329241819394559118009845500925018399370674152895332378789367824777630771241212172950221997479293120216671358180779773423003253952457018597358061659966233028382717370699580589542543052640627325476646183138591585871694780312463374131282187784453290837531769038231197999681728200660769675223282448821106530512685153301210614543710213311479326936276815694467393837165091649748298855163462650022086269438583806584375470816882138323168500514780764955284283513347279994428625959890487881120931169982395958910560096044474726246005781794720015331403742271911830415502994925208067709403350242981335840034297649952702680284527486054291720362460928650140944084545588708790743743095264753102066145715103561968292578451807728564425200828840005039190602941954201498047225846691646500050089988603000350714985567775103925755799879777903304959597451058020476026178996509640188309713360973195074301953098679266160811392310717555235795116002623101337825922168132842678047400127146472691070479243275565024310401776966727043324804842499242083820025797826409094125393943544080081353232635835625653927588692314726985291566768719127085488951982696227968802878783336293334263842590124600143539826411930610753023477916279886089758675214049745180750446730367040866025596833856112629432866091151305635100334393997287622718104333534396775925354866207321624554647704204700584209460053275300826072539545739089954812059930249492209911511834968018063277745592772680468096989408727898373408435230308223996380125853884842375803959562868166162281739441807927925691940552381979980494181159202733323264805364428924598447819411699829431383265785385087988675159658214342562750061424528723435037509756539621394834725634755751892214687263536972190595029874035541472687090694963718520132164981680505750443217080412017756146554870587066404556021514025241011392799791874058933923817020650997339995212458370707249591761999302385433518691643081453590973630008874499819790456199984900129581538007566186534262892223223347453917856695948653269594575760489196810216219120374812546170740241553806482518887117883358149539373016115679538456786070474878980117126972292542464312647849676353609221671976148655229412674921279157571066119204321059263488049854727328066159769831140894672753991879963960123947704879391292308654183388902121653395070025593306133607047162778718963400128937341298370775949604872964260862131070294887201888213422538327627120339703645921098873952161800525558072674837244715421815784636594509375136320243822409935772526098787874516267511278072666629088136469040194927943397766680493260361884967883194071109638986148820242777316588416982508432654707486210778344426793497041179280851437049792489358755637967627989809981554566000727107399218418408508130246230438271708626024649135454738152369275258861943423783185797433627888954957658979065832767507300369755336924097795764690101688310436450411410932507514651281859263789541670767568502381496107715251114459187484316578740076448261294376465826789252221342573968459994239859374521787895925053492647018601316213244711912245101536303598708747560646678238814313510251994278958839261221922245593064261951307424683106167044668557640494379305093483658541525354440781625703715722215200236927238400023716666549876936636788436067472188189561354944572173917845163801317231407317336775557061793390605056341174249382839446784134593364591921037493926313766928688553213887650783018045226003078410443057601997271128625127170308330428439862663978688815165825851040999240366600971225753218870874475311692144278710143556893908191332714412284928056823717159687982878753190584077933798816188564570016613476386590987926224174408082954323166243477462201758686121313979836933902986130753678273609745304581399718745295651036541157548827143235143033695684756060186742772915048617235903472686873130075409839856947841481541497856819279455507344034304529141927697750706878775610539888560476035478419704494072222347596583504257727792167140505224647550018680200977921590816052000342983834562300446577407524191014250178493917108087394851012491810603682368110040774016155496036616971868135794416581638729953123440595820947142783724417434010588246415676276816643647721601181833769430964204435443974481988389819582698947840091310209402260067099951650260759343280918211248259094422643743101961344346112382878558189059848212180325841940018131637437029723353946597884584198660074889621799513439282273036141899353661522348116535395001550979814487644987544536452015555199731093081715980857597180532846541079372611565207803819104443126639507592709128384555686398620567659851102464697822545577134714601578355388188517874806224943648653401165555572674438945726308910052670023900584837770452528192088843246715661045934715213347042608984940948843699641118055008712474385982795544272293443000882105627298710699198671986700750725644437169937999063989893721612677156515142107943797912085158563965739973930180264813052813418048412361081138118489122140918826858273007743091216903798480228261586309999689158745699675027807291440718479268499012203636175554122594542435337368948177711011196023617158819480063106668347174961430433815811128890562300254543979987452189855275733351321142080566642108036137042714612808775271445364462326979089151687213237923493889757489959056039672825865974725539099435459143188656770732422136445992835356752297972635408220865895235304027320935090318792737348068603031850950302324697389946802762762723419554362827665694337404036035782209124066461333967191577365599917101762406646304112371177628806300743527249612327217667658701895417716020833086378809546504852635609532394641924622029237377467566064549515883984636833267611939584807611425663075655957645449189468620304566957676736717177545670582871199384715451212886787342694433000612533412525393620732760276558574982449968572024504207605635148746291113049898170179389068625193125436800079767536038835584876020967886347901784435156310619392118826208481887457241271692577919646104682209007941309359108721737301957821318538659455756489988960664149898885589769913750887432905931145433608459876437546342678374306275331180250779877213625919380134142723255534597968851090620651364581575312246841833429513083497110036184785244899393787326342151374773819456716392289413261134654972632825377835953931692967939017919696322215655705284063983576736795795099068963489808846039704365992798899626497296848322131688912358045805277781874095370693535703025770689340821192257199855755705401828053529691893184489429190683470382697403411231640680877127492869196416881120902854203457599304497492009507966961004755600329716035701156718540196207434308181804133466730902920123493019036394950225387055074975929938600229989184552041471197589343720103777234378786028501902163880468489747936197436901331676507052808358623002262802331201946626542121669847617773050413006956710003875233309113243235705285280347040829848679338578463032119377308906314571230971318743702382740465250925512575598654052995623162405022066980871666866235412799314881442489471225997031911508772211323722678117470827739054893930713703715911994640299176669281950564362871781683956438530780016191633868058688159246375817170214448545698642907190806270875011418449430263465086267658054029841456239125447262501880398679700042072711970538539161572056674055894424018847547668508173512125084091250837447382109702581195818303641168905279166728529212052426264613132469744371001757492428014296520588077108327444391298456302238176466406534478020490593287499518300172315214511021894221922320267362760934088512497785958060757250896266409007974944078381152373950261601649714740374267086474955708799615980895037108592035198547960879116774353671556027040481964412494219104987018235113173562503650078439827509269873521621671150942972942653232866716111712866679051531911685003796532025586442315150936707963397101068753853580779914519967358823399420724472335845789283394666389783957775024923588599693455857649593919122119390074250543962225585511345331301772969872382084218268394784795816508295011684569187517016891737041991736611949918054078748228708305096759553547885462168519962305700455677229982398727736381139932978286005356444624681369631162777604509704137418624064018996428807557587687544447208483895459603898318185490602635662678750338753338398366853413252854183603968675673290493354016305654302629463975814665496123425341831613153788398872209182132206796114636521677376687729775589368867388045168502440512709853252531115235121889764706778021540177331781896904880015932498770091155306594760594833139258679850341430402330202763585454696078858099753645365036943628200783159516678517516920776521957808631816142417328843668156811067033297535392261920727564772892185642630488177677333443195189749267951489354763995315335268754290387267533592358467369167559207956165179239369368233485469793674259821976977746477097867601951792163611149696910237037119510441744321612990514580610668890895652532642982419458852160809765087184013320054753984244845412949259754290791012279281135435033497997965019352310997787475490560790457040782902066783886266736734187592995933954629918667928561031365487200041453084808639211307181140944843666293273407102513101924602556598088914202344381511669777081872686737073726770758358988406275435592772059530799481809671726293273097578062207977640213705515357189547065872152117648671160990821347327488352314574939676316163972680449432409751794922006630066946801148436015862303822086026131258225076886395297382479289151707372999773510364128316480861706595252373719052445843086800121428780980113636512973590112557466285353864462352921509601488026956712635281191884525282557924086285294130823195343403523102047062520190449712021901541500654415810132421007234314947000232314598044846620805533535318139934014961706454049895246751610951931130946258582112627068153765651725872978013268269562067825958880972520947375771981060935436810586958962805607481116883490839884464814686670665323109234214897232406256223021100865762816945701848606154190716327730917592374833065781728813041296576311890078016675754982219147393855837651909313660655056909537601231539987764744163448356767551717405403700828170736966637989892504696208371404033984725242538659143477417935027633116790722511968187908291806976276182529626851169408884915390528616875081902604938985396022556310965165067193338185296663544140590408067753559763755494444566866921251226308989417678888803537461133649461262194965790940793785958037176447395311533406073905800618006953403054215539017494635772395469971205282951402165541527476963117103775970417764686976483826815303250929163283627760399782822726480156795334830226510964106319534058244621547005276336555225124221053606715225249237384263206142005405008694478726302954613042331970164140682763362771268834556520839660571785989786789732133609538070918516808132302698071312824506522800052522027811382930191662494958123339911254989167058247064503208137609281828610659167656118286663685324742675772981443301630017365086674841082773944278883522175580729428688279972251080799901094337706459741241367034927157558650978334109911533216010074131000283356669337266652849517202144217114295029654734535353896510181590000142367129420236932771518564161177488481284767038367097598628558652713882369651158175800146278895752178631213539902924148086711201592224198764792827336419686055636874844322913337477978822105492735092187604451427930667220685753871809166489552523858718167333613059739494314671694299405210817403893654950540790681815199569198600713786203180301535640284683280891689014940544604659639361047743509458065475580981480191512021792774607156428081808313295928501361123234096495762913656948616825990753188415302399270598121860645005663609496801984624336240902634909519023845938308425321663309314892084765622582964521337006196913209960501317628023377012674001363179695894505266653957691208982133724938285677377938335810273287007563256491124123588000053579348425980833626210366029122298424605520251675879512032061267129901350811575227241330950930792302472303709487521705357035871741937222731433967608423580824997368429295305214698335435832857673645065774231513902437297447115527813927736635719229652388365766260456786643165737896545889729436070359527386126343996720308505157672355642130331853803134456950697188524590419611059419083944719496312251014501197121459088208660210072228828139121456091256667422823619646705879337532749940596678826586073205816265103573121957533843414408628436206963602027583178553017046734148152329308411947417873031988062767266075910172788933454306031174035232790815239333990091802142768097451489148834500708121398317683376737299288686294466027356106963313347660833760716241614672971065254923732127920936491791350902496396881620228819275487269104215548653892272901858528836744157087341527561301418482863081458256361193191034262540172130153673243180226101301721389923160836658295533307238830439634533472900814422148746601193120307202495481841543439899962208515263436802328134856075681170654485521952469851153361567092476510480770032222607777081366678217343812294645882517477297471949619022268247620327802384377530530976866555029450782869903900385153092159306429077061825888740465324968115157846894345113325472778095881719093525537180605424584660215907969880735721192584822992334641951675948858662335862639897190277054805947262656158099232669271681526322383152842910531684148386676527387933730229288615682293215565547521253071294956861914175267090293618605995361598034241901621582552990646200560844180019640559468551735107557375951989195644593774503832663708575190720463196991457031491084258377213647116992550768800072766127401409129520660637244206315595483746398695072160415013125521747871628658532581138571342776127883563146694647353218156253467025112818806046365062101232746578057776061214777170891449147183992243226053776144327338968846893796210510101092977770007296567258195047842086827704025052046571661996065950237629514940192013079373632584741155666073915973824495330692827883741938303983063298160429916113156223989191270729731187024067048883440911130269121624627133428652176756064287915841626418730181776082969259166568130991741806802786780600197076371212504087871049250336816587095584417936838807488266494866720481802761443910620000394975015820505279092356582531749656896697875668104996161959252676623103925457124450250411657888791424777389159539540797503172420399224160266055939425261430967502330728127043218998847909665155602382213179559443354746498973549473444434577299969742984101716256544436514877632990591081445824171022090532910738180573798440025795053350990099427288630642719034834188816389056062608033535281589774821136111687632389834777370183620311239862521564289308827111175274760052330333105704145301678292474690443055006772090032766369750209785191382562065269501039419644902916495779402524029507960020816714624180966924199012587652703826130400359080575146219717925683314906090618461396094965918326458922289798422138766544464672266732416911911706162280355112345443060756742110525858513378805210269600283455019760822418866057090800591785045234178464943446510620457344426502874355933230001764259177027260832793072526695138632876777950250519021362239890410494632471014932578014124644777256354369000201322813549344356489431257453341942636167299174560519182176080742286253984107065175741535163102835580115394105168879447275417779809990638116338827374260546395065711885780805693824624995783363176376830385683399179380231647832201644249579780672355949361040281948903766097082681879515442132519010694918790590955394551075418381362881635907113829091893831542270727473692753552520645484192099833758205261177801409116462506211368517492087819592063212185052909749916194696031607125112299964803087180527698560472722408707201857307307299964042529920563071434832340459608393729970961041614145730903926890727708753589528618442822266775444839672363838964880095354870353629978754291937005910318254472199350558372257446446486409024777794843618237444404308694673511130591200110888716996588232952184274179461201355910705158473806012969625061398246170361411008618687706839788408461927213052975439842705801421396218165763598064560045007422965942040822690093465659704192625342293525402057021990523783320523888808277217719240524909933909761317283299758287852073655310007899396560547462975789124134070881017735494647275357219915387587625895729442061606788587551652637592664322277035712610014360922650334131813355409283256335714799315026112962640891250078830861407339486213578672049915002236178259251667622764413419651570200229040633174119105618345779334764410513108763824161516125855476230848198343558361645822384553212571852584632317017058856773152841952483057553561070655406915794353961950147347898884612124888994583706903216796243729834061815877018982621559089511800711779579626536826199005894205540374395971685634718615914302534647881137772820648913331949655643620689721275326539327555607081663001972228650408792214583714933456879810973410170602526325069944582462781367114194246286653693190354993617672384358337552882025054854116024109378016685776987306009493802019538598450106951163498895571617575166527215773455520651958209271223998901506900028816125956272319113122866065071522986788543789350270472086698726010922028876799321742067321087513206231268879592064427427971635183823645839874765392625045914243709118945066944413770851415365375588212395801057734685220212580027082504716358540455613370263300681802348095975805554777168884927227099382217040115291624382577682400195177960623182842229267700155400914536804220864278940943979425807642530036789472463199763794865242555331838350548615710689853423002820808041687871696483641451691719902605243296357488005976873362886236483539039914779470743309349137056131592074343383646928955573545912766242033371901073335900827886576567220749966688524553103694365473807844068502937919664191186968358954869601093352616113409564822395569977633281474586783309141539391209162339782420653487124390180677111690351472378255605829939400454987109269164127061245052820289377457254756644214391422096929103462549693892218514013296246272124760175446624035192931605076098443131122907226175536242335834245567739013934301239856388579833217344140246384224561050766592685258458102762186332178379738996964568758930173353382492335677719153201659578334287657376299818761430285489301809060566540006855433395942112595891029386759563431231174388369197793791626162628966539841193992838854622319949218332163387234635564028317924028322084701161163697960942628254534216756052470381434221014891913087594503046393085398262056676307875353420260335526441455667820831516194990443387640679216413880257709066473371540784999756732359150152785720341596022914690889089475337972317314976589584226763621185369347477777104765038759458807763010277219577466146563140050347843784145703102255567441148269960682482070532276704278606250838010940357562751655995257073775622789630587152554083518547154412345508481526672232734408443707259403455324276312419591281335421179220509005651174743409326652382064514262951706458772189197424218787805382728227489314982013232510797589590238997680321838418875575162698757311229230182264552782668614118977338917489712911069816482978568948361214388076528737475465693438515756562596839157237900327468163155944029890096611216293897966395839343288744308358156998937967021589962456098351650797544643907918565733870524482016878438115208917347328763879372359861034681231929647958722656581616808908450418174094710870098509522858497074743860411294105309672301276715949984617716148396665030459739470898520335021490795484193742546305065371702062881839994870075818258522276086779024361298793492744414801122795675802615003669927612930751324156917657255041533467912812148462527649438428037620605117827361296659649187797058888896611831738732084505336643864392756027877488007361090827779162585180365403699974921159677202005819571416124631050300270831494361756305805628178671053064464823625438516608766325222404041246695283367865514607710850361452941308297870313655637596183912012122818244929099849726733056053246094702221964683462616659231604546193035466620436879711957202268793433560547957924179641625679774953569541982276127925745341693628024183314055928265166478485946325448491961342695910776282462138632891516677103011263002730579063362256977023169798302263035788002469693072210240540836514634712851650968816004100502919843005996796290004994498909535658671135895555684844090714919392018490758939422447352006124919097626759832776732975561201704695608800169990033053313651531463674669366697090166312536016892553875544486823371243618145641113487951849570868535677273283291122600770706918703947037039527697391102224083086886967674115985112894532210339304819142585469599836893175212985148277726793927722885949934884457785782513404382673957750584215793228344265902985947112042521153880120655633834780313762002182360654349389145748675480630126180442307955137092343989791815867020676954358861185195048508391912393366893555701031408002678735207755728119682865278837009233494040259599582436949874139178461888338209741136386567678563926689248677063845686289757563418675846858571134609511280588211450858929223592043416534058863662688611913700726459979303858861529458525103120765503548019735254030097876546464895540220683589002593207935016780616406427470436944316007442205456047027035965401464829091421803761053873919009120624557475725935860602941444084680988625954305262485804554783969060882267206988776964477017288404850408664927568334642592176596968598412211534741202831939409785303641684084580943676470366623735953069500624409272315342582739658505373298704945256765903013937626182451151022137242263489783174599395993122831770376557558855548413153697955953141797062610829106372333293939937971880449654077899639443096581410945615654646229940751142327920467610193877678254167721839426399831241511223671527065050768246990571721909136623155240942674468531437780819568694881657967449039363290260149047432578678461257910961457704973590341645119224166674723599700105578044712758610989009021097085955258462762642241283801226441566220902770483622768153087711583857184008162257135722060256294587172211385012593033859463108182016042724251932507392866819589122169647066611829804896559585474868043535282241766099053867504606014974161561691023128430766081218157247321970306945918296224697367374733210993996910266827896503448787915623737012228461871258589554928452361668720367713964792652991776997463496349020676768777985075886753817933001372158104634188317446006654208890399668897737614641353512387367759904702512628496675396067223891416163324138230028749556757816328367129439714440742317996272888990892053370550441531132106065442096853017329785978631957166115136634114352234647564835102519724340522505516263620854265176215785093948260538252144526169948406709896982579755187994345902503990439032067082462790104899583089686723283478481289327377923324506882004793790957197947656204955322484828403216762199126495664945434228421117504127126883645369005258500827784962086186048853454036885364031516097003189655675864767702955886588621698118865295387010202899344163031107676711642351496057999539739712507626775918743451623207523784279233877687055078021094060839005962885364649630036693732114875600619326551845864747188795248951524919627786877454045931190397562053844527794390976038027607680238319723174008112929830413871028991676186661525736877745901202373236093289477354848511042051152043352708732259731940080295041996833082508950404496520399135633266024890582091198898273744132667901702476925846419401986196044197753907038577886512826673073255155720129191181451122273428576170506982402674115536524553827827012846663636190469916919322520292664939656045853339817465287866286286701534013625574006799697088763003554165131147250544128059422901859083252392666126485106175236414050071149526719677726577433955930314007531057844120607559222031637843215728904869211083222061528522252407397846608038274356211261655734137856931312797381824347614044131229720861117483261586675123272127363081054742435975165095378367841482115627689942489557931582458306840441865452753486381358440850731988175263283337096046793597622314396706893046034546737473780484191901809755100290204510216177842540888457042472755954622545109492424713070736369707877002177892668265931769062960308572815433385443841630164631536362665472423197729045258550220815084440059669252306702972785460697546082534398142673259893788001834525873967794275542043248921912098728483743663325327103956831753706129677151640426125701737187066606386773287417621905547369524140172275554370076593440238910966752808803997449217231947273249278115650909727786253340412907931491680539714721800562049559352615656629480251054648004358612069647621184237496959813850694967646307042437926517470006676981421255037746292158149413713232229237477939730850114061155341493067851058149335508245233968894519462052821556530295636554774760707977465296329782701188511709226041313145800289406960946379190558008413474077516329608691730075034851970661898689236001630500277102616223135976719734638150642513693746383832479257754429712004994960958308670034269511907726739773681866363964958947844035083072059386482185059067018581730496559995751827708242136571305560826973838489654071884525281747296082986652072571704928381902703553953095119398185220321807030271927279343351033033388897493176181171159810791717011867092187847866126717806820252879676243776753821170147075072064000592115174861696887686520319792757021915323287442428807627166632307534213257422158927668089635396043335709031232596305890302517254244820599779966010412739206388932193545447063095757731129768179986464136762027757655324514619006483565249194468075612328266308347848235000781863615127142382126580098100358882944061236114242448960685452846701051103012720031741336019455503064641210571986865189786387893008572050316601770403110860455415363988174164311144994694992015765564124745449663846137067370487000117311689104467726483053665708733237392079204638463794092970069824857273366065187597646967600087040769241765322702226199788983964970710321266316344563424109467878975669367378132207621552619894584668477779422927071812680359312587684288228976347951454690131437621829853758301522920876564426439834815385489639154281883933939291922730845931706935034823250159269969072655910399019994618471683479360255334750222002107359881758027592125422176237007770076098336061078062098051250618489386625601954551941055333688045412618530751946083252224668362315691436140068675101202280593794790019319893902954323484373060442288704271757383209141147813946966606790804444193945917749185302718007585150345158566031898035484741316416376977241374255594323278710861082628927311744738298607850267885006991423425790916819017308874405671930448573773720668076144767324486734970171306556804622235471590800187232321285200122643688188211138749418593229646508284028025802112462238739671383633697782728782920428272732280462366074309068953897560576703508354881470181055950518585312617963691069966179382310125669266590342493642078139456828530091725539724074341521303243337479834909032682025262562642809584366664578531995452941206121143521187971617868934032042440055518112102342141744452547057331559142152637890882508883040883610383297787574823129676477164263048970075965474927933047781397727745931231185613314178388703678455809570065914398450803774528758694945445958769901539616685184284913309211870378330233788698964085280845399651997181300039961535154465053544495266744943834343270862372654730192299913497389757518903480468758783206852574726769589811681560854973490636943947044132367028360992103505741382637338014708099517463096624742296823566774703484595932252464286738610960231587747424948845324069897899487762838314982063787836305270187759792928124106269049625789652812445972374392381805297312740255068615252728422618246944900532590646293339041661559140874326144976847081222254251736185861041533952745908757388220628042441444599198734546902338043238076780546970260909001634345734569161716511877707107382542298710767577549636250060708299905036492018731257097654807106087696213528169693161564544265942851714641201533424996431289070592135081892679964967919873603798622275451513746345292962151241035900972016868569714507130167300997017620070954658492274526185574743318609229340885679545038173211936251578796242432909177215262009682039877360509280787699437806360819908704210305801893676522868028899248454934312235731653718512536125208108683345695193099230837801757318988732183608212819540836611934277524593283129074008632759685625314194990382269100354912755648502702544831973163589845872797925595689187450414503549620261092624395340025583878846077397458264218897961341292543049132211231308797418826441386061992278668568800150299727466894843004531023040880327287880642568794078071652675305430893960746648190839882660840218849107257416860886408841586833034843865675817574097254267960723100202341542877425460247881607192052255657633220819486133693056819919471876036099680951737470720071922969289367611674086632160029239047629804253543266832235025778068730004207074661914019507015343900423289663087348423720211154547080474147166128523179455109192057902752564458300477648816884775538287645685253614101575117605682354818512349147160667069977332813324888676697263452998044588754481776649279988006666259123563809100082877523891236497574376318402243088356273799889549217066591205977425744496900692163173120449485481241369222856096401095782660038878937084319112734758491079323744550360287368750336596951731743320142061403531217935928753933185301450823983485989642427899472562211166542951271437534841602526865242513907161574385602383309184265150779310339929638002806916895056079895062621097490742339905721308408848970175365260765170134859853567928471807713318628353630276984138095179549914659249301859507247349457104275212210095105051995125918954522329727466727670810380239431074531498466838844715971731057071808132342585553612466637528019408722420405172980881868867052456045681458662183084342248589834023927214254912388324893124057327858963696548755681086572883538640048487165749286657398573036904246240855430590676886191330033284814998102733239760183688296576616156042197491296522885296192549128534515364245910011911064106178047636552587785532270579384148504209979361475840814766458361161009776260727440896561337589307686386776083357891542459303472519788509483908494259513351291537555623481971034594785886740507011742478573558250971316018090714810341741850675834151989888190622999495530707185712443616614387768234653612064651754957989108851524906883521586254905535894892122416827469302671244905731236105417291932897127926637533203340158420440237724617946808448578020541772659142545156650980658796012061956327308858150404677639856264626888569595931144808283733204943931685735295763159970344823373148256389193194484644385949086124461722894945545702089250261066565524531583370630455433843066796521205436248396766484721456551040947524608660853291362944278047173411535579559122333140100522261071515221989007568387867918104987651950876009318835278928368210465628406263483009707717077032632587005121140069880313574835079848521497628748796974841053846893066694970239767809767854751112441830770943156727026953289041813410290368532634408449207927277514553998621312298486458135766038599429689875026173026205279895930422080320033153805945778775757253991083777258264242993910161468831932859575200857813780905097767329374865260075109307525388959145530587162863397300428033427432774049263553408744181598894290545885235077916683250850154885599498773402833379394905477496190563379204212392858229475487768874539545094308113042816480386254828506899625218006563292116019904098390948352381772135271705256990740486208024506129398408322388743998548761595684282176247462079564099795382330657584560689228413679176404974794969212036044414632704008686684756036932834826069079808161591152574010747750398056841097619677030278648401698625654029803850759749211110054247382469283316744857608581114920786961291279966003771678625521149400580781747023653153385262042441272243730294047409468282329556732199620150499208000356664851491454701911171712285932186819939883434253048690904758875458402960129931088339062362395641485484797183456137849643029643891027497652756253243656822758853764744333213501093320117348528972438656827165500598995312377839748226311216141542657124685486434670259696032025699083790347729429870687717546851518169427097565639395678437275609983497148933148075447415038027185245820769582761548335284054277018592654074276628403822630225849401475083436424577465619078644695059728461965088807402033617793496997075952839238058456798872048513085100520606832094455700612434718728846078856747751964769844749468464491718934536957074516601864056754380120832902678092617417494416702007180821177722721395170086881522170246577375439498432395372448606826272191492642361942273223303668684498983096529192132211268786693619375826701012221057658483087843649289277978823533754780196635355446970002683181124366056011731363784360600940619214162817847521797637952479397459946561703247583806689323361646846457787069213055472183241072919068962733290206681001561654212930311083747306859928734297232430415684942979190945503717239263415064523769104087453710439980244281035620926182646554873176014266567942630192402334042764267953465171861985339737485242721046082731645629263129733461000036283360199809719167757164814456375399521983440796297473525983138351617003816759052087036098275376840608821105017512750680695661713156397524207421086499701180099814442323537842279082467238926897299109152960575093544328418922547651970067685989122208217400086120077183897868542360878944449412207147196698490154282645654834936255018428406882745184066981542922254554110163978069322033504138666251194787523740353464381894254259938587807169105650655185374300397953019487583763871771986017678921958626952161515587270219817024872960946826320823253439050206015385591425565109267736988426453586489287381967748699671797111119283414108405155033233773669550133434811273860890544430751614763662226338002415187967080882252447434767660857869079317058179845403967442188787997694475658324420153370154132033046204798570037662598945829777209949770295804113915683356740638809060170226556819554363228340572451396916926260928451832818304789985298666898388366296324221970119580735671404387530449997770492060684155172811283588665132052534683990917428285920410744600358245493683435817070515206929537115372865419419689917089376587238869467705555685963398155708023923568028983682355383680832953870374419175949206133660499639828027300177393611645621877253731167597493297923632121343378213984564082352872760143648073261899095425434944868379755491665405867699412838226218102702729233120433793271976837159851511597533996946275388378810018224390639438401777275206620228589815715397228791132963630634787471849959174160936205906705967454342886799442183673404442448256942777713257767347225510191870498587736653525851322973922705079966630893381284828304947716808186633849016614153451006669822793188976920432668319755837126421655207634588763994281637195009928304975314583597088567150179298756500570203073691583368672732347941429042303923630925688594532357646803941188829761522405656095648611329306691167340688405047339414143213968515138623790312189210517003110177657339989906252214144607723024673115067456907714464489379745633796773908986500424365222619556492235118036965894626146461833397887859807630206090526645510734164765496586308195124601120729207120217490316103443430721376595026019580882634447089247495974447231082559119122605002376766239730020946132577892224875439583631910347238197326628510582825793680486833182998112524654407165902641930835602096238264524708012782289590582634405733795834268109987901768934975426375031758696795395554563202116341866859885519364744939102648094728740665608502557143963025960595928259564809924298351805947134384481966051270662876963869870093403414105678574471207823261674846974310739916154376945464765755082921070312536105754961236345246192323834232591255413836930312215530083869756185559290101269291904987343373848816980139048929242497612487284951675453366523455972556935234076706439322571425081344879779260477678084053984095155958364811378550901011712164936430261824082916098385290455394137008744493335839205561454801507449604246513442659349610932490916559819936282600766064530809353248702420970754334847892850044543744700354665797263948534091912214330579082942918595265023176444485701039705169198470406872389714909052914866225769041738675546365337791734080838064112532228109689637217123915894503857553333399944876439024850406089664653195497277035777782055462097009391256196648983286052257715524568102242673363618371381216436648237417909009066350412189485235221805479112793284537955326047804673482235669300387983085451197987838745763569809109190686865685345957139845045512351316122751301402948031320668914533586954194479984249009622488421607939966795104193297027463376270231390665392292005580545748366048808332542730336786414735282696199300182569956637273764730783727885602601571303936769092671662362264203608289079986798801709916712384129030294238262396789531913961065985189625601972829786594969907425359839268140570373752966471359618438736471563396469752709413688114762547659644603272446042569988735597338336159035774279470994443825144465718946347922621492971536555322727240691566122759804712393261172004770738309401147781424770055622779687936288807215914659226031319682692347820683794947017959418640120860958322213790721675351954549966428021629107301352300326864601977637545104228127843509137316475243720221692812596498732178435866703411492970184841541821463528935420863021972886008817024119752277137795057665547956870300627735052895109209489566752966350023372625295484234225429561449940800447829367497086570089512203655930169013305928090471237702655905612332662268291940342671741179925769852407386484570663607460926332224729786338596562612566797501284841381504704144006211648791010380685731874994000001044733640916499527533160701017843401224046231725409283871238676833409032435604270139701828609265624229370856834621751224038119242588358717465919291238839988848129787653590695327872074185902244089261482898340526466049159609450774911038105297825329028582244133328622997856474338751956895883624375689268981718201088165029876650980867197708737711795846507293035498804492596139251625508379593701508493430882477922722403841283655238675427231866121104328098750143310709123290511588778552645200228484264613106656198940351641456253054131243136502023978724560949276424193605536766981271924329579030688920951820921103664770801841275348466727559101056807202459229312940933054108326199307190519006272608343996339530066855134672176314191612725671226554199304060808644581862205618578494602816768653610943812296690858070433781164591158284115989499407750090807653426344561303835836624729606234763348180467706753845116100717686117340701281003377298575453318483156396972034092748549525702048654122401822473489808769191481453141807491926094892765746272403536937516233583381854197349666299889451678223491552248872957515660349471240841394352970555835630470773477575218447127850092552622124081844342373012254153802968575616106006377390314395149402684431370543961066097268301658624397473055733214537173188895561710293696118973508641821436998111986802679635162784581617668126176151370822831942838756777361920349609342383370093490811628363533140118204592647790844170001428103511214532647370955951158008257463657342549297666620383624965357017628331905625888238317791987958972910951987616211376060048815177777063026038371014477603695513539368963305420644694019475558808693736954815995732265372748184350311131484896777216396483051092089597511122069661602494366257284328582821842186857013359231984160926384952728258824872282730226679796986894490831575078245764056172365808671232014592580432818934688985744714346949835010431292251807474941928540301431765994285532566133831528990937981764005972521299399825642613178745136718757768359756298793069508931684430333661601553050240504366185888904567418949070218962225994930941770810247330045762520930806443381370420938922248881532594929342024349217387217951166800548147035785904192286916498597464627261787112902632776922761745053143238222038524532642272447575236770126106839899041759990423765832005705687755322521068503648213584829355687552944326454636972945088251414726280375820766515978415800724534502251024531531311808519850135758025553955164118319585814777595717035870623286121086424522275470857467197563760832292931044351958847845279167578055674475861871927474747060773457447432263924190274434403060934858387349847590250939589054426509312708628544518761335838140501106688463909026963205705309720857852749934390676759745427510039046923166843469265126555243704126958224606700888365837314633400344042184359400607623126459965704111881172725312208006384437224071159712097797759679695752307845203138272076252770704262810427924643337204265475286809526097558142792676478144367923984179028132362781213407071712337876204507429596540702165799633943319747277267680395383505499042601163010924550988568433927867995799124206392851804506222690314622999893006255816620521902652136003902200248382367295422303584534211962957510980124724295872088464832938690978390738616000158770130021269502920000043598620119032286790535874326440743337341669276711740756465781770128817011338764426720519456568996771485687959939882123545503799435694209601178585987562392868888618731725939058021392317471110479103310103125602302629512456515770524432962183864268223496592611465764003619700021311301531630828596007569408704454269771602430081654185139018803819220326176282029977068593475907926621306938211155652230609947006148560464557373509402501178622337704644286495164780920741081884165996002984840233137822515020895361119560757112702604550658682483827782064629895330682100937553248967625821182078293774351814668043366530929262462386008245172261984120682980976749408669839421269291834667379509174992498317960757468684717085020880160807747925927914704577266994960326647923962347425677987867583801896300885938426673477592588587901448384800246232700277567487870619737503815874853980584075258991556861511626414690985228379193546956124123950613813316525174988343469551164928551904059864810773197397577812039804948322436996332977125120209985079851262648534389880866339462364605789879460181239231737871492567181062016009980220467089566000120982105128241061011445813839185739955361718963755316033444531108316121767167275287804777490551501329328275322609253892577326692079480901735012226996204311146965570039817481572238448268179419257171562439869471082459175842106240909455663051653943889558368151906473540357555035286818411863390839202892389094527379668720980262996831914489949156243005373126580805772788926629219835718672116882643674225449105300845251708966270396828042327847356364001441822849684887892712126861931409391685041990694737614111327027142258028207447407883297473143814075678348063367584582717019007841108830615190537466380379323434680023477282955655961116270265942221352824174074528408510697718129986958799314140257871145957324858798400007117590942462913446959275373056772286785701988564221832189119497714087682712396820291307441053390050151844545534869509273724800610641378078976411859427744236871230336808135706594326687502887718412045399893983648105800325085658216722522287088781485387992233090489532594535622406924210262855285005998940677390987023820156021333083499497833749701052824962979551653868325786836539079690766128467523879228084355597924952062952945080219047233991356867889654467298337393059923167640269679033254059571345791075705683473753390240040934704880721603133492647368585900737245597206442005436198042733391597443481497240200439973463438421035413039917964427030375852144182842641685193517911076826366028901134637090440848219214055676341238280176487049765596471582647436081717435490472470196626490679940441141392739073979664552583820329968465293304977306828541515582184669515886376245032863699294633610935402573722341715655359548804040030231122849620153141137889177481838838884552827889693546074844010966087449086101478850621023186283393799010164275092736607939665366020068778127738304938673479387767054140396462015405619371381320119628321666621230496556987760551241574296595058630493658445312077984255784944272821451320438753950609244605070131795446343099028051002437282272058795135187023109917364224883856592677975373381710619067163565760182758961219369832023537658857480206906496887068305210501994763545235002784063890463079470285532449791904719842178891012050212644738317422184417949043309334670345241710620510440934924133188204184024509035426651445825898178664301718078727185792825473810713197020251782683635402882155312036191585532099341357328965174097430386851847527410755651614378816056223124724636228518512464109081535955307618021114351044901460114132645893679699759280599649869427091213884858098358988638800265971971794255325402932621425114556004493149049254849684532328085441594406290946421507860967343124332232922420734297767035991577924241179510973409759144434234390212900835672569848557884483957021822826035397998335076380233226496487768353057637174932513279941694957789272291382839246394200756331768572131623571170660298616162005467465524344530542494251960384241415023209813631274800663476469460164340108172552888499855786412958406631035664572773781746541255856847589413000854606928414325168837648033620242873596702920292189279649034595603673029465966544258486278522879725953056203707012298336156864430595692634955228271821891488793112161750528807967081342116488629785477939115348079188715671216663746860160290979295987847745987576026553975062413707951787565294571681594948358427585303419302439055312044310942794269613040976282682626186701444664271988931202572239642719319449251853915390448071786746895187971877596720858703654154879212789280811171407769051218085439863202715636229736946591933536880200184380774658858900267032575935133498029282135510370266535296788437048674069314178258830674771835086791143319021895791420256029718765804101920618164514046651031262481969494191526556796734924518126795109052738054097375761518834230614790813219549849360201471573012698726157300782109035106183917672100483438179450460767075626234442591003655742417121320102037557610962851334987022196158594073459916843194361158210560446169029054617717772060392247377201083322648705810884089509028460554559829327016725367963537565772601765675627841444160633522041192782440085404347650274362002924882975703471091420385100590244535500219591381307333497984721968479862253755898406324232167747626281107518775218209233121270199733200213406023978438074171366392020495493412881041147970020366294654034912408100441741358342939311667005433327382833206145858588177749105581426449560132308242385392385053268840835522158129780384943221267621559865255479530242514693473399400851928063300148410443821852561565359324257530071019693303807720356544831987043241917866496208314698663904707298218484147267921761181861453902446471519155963473924282991102299567617971234909840513052317712441103717152026811317605838920933358440652846366715124176000836838861579575970087545644105856734802444130040624610933720781193973616547259205257881878462303667432108182807358451275550110602363457804444997278701562248803696771341602194014643890724562139996766530877601593579600993975388714530612909839389620607514045386417505183235172642501067827267081602265183894543174998977496512644484482726821536337568383333703397859571528604930101200356335600576364798481363731907142448001795719062983019580807149099005871348193120147976973966451093073235893053530658345464715999235919192802448648567413657633020316221534491765897015235711467677067251994267461345511495633527955188853375413983174588015441002255995419606313958679800120981858169335509953718490053075487396397248168913495017992494167224446587019889507550296223931382750461555844331659957961133560596957757128426020041173241964485548640595790794861050851397398817056622161188482413104426014231288853123539943867388160522326110879168796885569253748584835277403144392275069722234682284264347436218990904540964069969412669201720280415109545944165196416809193822236973388482370797596366937109239877314878455519363585715144390660979982083081863214210335382740405346656006323183772874342035055355730176475546615634809222055090761429771352714888231894070462149314348146568637787626842714307421676979539011721445134176284274826311044068939138254344773505897437401490257172855826346936356762853475006633376114277609546816340099577311047537305726302885400006941229456540310253467919630471620101676477316203799414219601574510721793097892586425902546414276555782565735796235412487536781452889165244261132679371808951005783212792485620681655957291776254935318203129415501796659378318373579268926479623170611489911337288165344453960530202595436937644623097051277950045153270587509114008826847459535499972248120579561332010286549207712739967685808476374296804184250464787245489555083614079114931075343778678807213673821145250707430686799213834404597849123232323783293223064138745053771163246384822584665989215153776344418426914151217379741702571093936116631245139819809022597800016368083166165379372410519037772602858667882038357553265209181632172247167342066807554108948845891961226251823532932982370194037760079210330464861409590724606208484730055239991447619249800278331187314453019613329360502495498578016975561103393482489605998982537288698799280276332978233473311033369285495355776447196525049748162007452808016330904745810104919077293485309661042475134061468484058672180094830248665496048880283645138743522563419280366621191816464958471345935700044250070903414610203524595669737111538535585905637877245068310404905345569925333675724896059449460540065215885018014424763927796771559651039158733286258652350335370358591338889059251659198146694369970344377236507308694044505735413902974132868797724688151345494688809749553559522344306798884360716544487424701224250027236260146868144433510064666050034831801858602495766388798497641847549351524007292863024378721058636524926354275910879023571278181669230577262535612662661087550566845317232579356658352356292630443218470466696568697853376041678679077046928782343604913779803652784653517951484623512215854780348163843995944370190752057072517394010009446249210056713852276939376958706399232226840330441900261811270168695519226699170155474763702076685104088838678313224895018597353168655666584082611533933640901373666874593595977207840956020224160223917832888594001159453111534544668754126057068086154688333466955231485347576346398691618226620337494734046709528671769886901771924389980864041420416663489492673757399721367844370544054422889853440981776202240894605695821137062606460386726704734841348728692812873706165124377155537423259373069868324815371830108934468848288337906730915455774167118595268347669903147233274477120756194728536006263095576157917004738833796116386409602630700887302081029775075216666333231321450123596653441259748088581931049386165556613088936184758029876489731947884548753564544668541433312020318398853413122388120318631981032985959824526727300084435556729397891099159984402633035257060995908186035080774704063350984078374647587203670689640530557233442132188755558408802473068070370782439565789307793818906279690502641995303693045309640400114148133994623698194332344864477654406551643918104584706632102631450290503215327843337981399972295132703629541811459371793781517995632584182824743104282423911304394826011869627525120526751567583714601265509964881765360987675477382634119471621717675263307507161451365933599797238579555736247458508041644553228960460346174784523334929643179296342558606440942106453738236793422234004736461141421037950746909584891886910272832245658457053782866955300720309880305506326825896071996478149781695516507792776527561988002715350163449528844062219779130963040149823596075758182597791650688974368475254650698062729692574307169305929729566662812472850262187165142786190503310861844089717686917604754573425739591959045697948984571410198109333776715881507246292484995744648777204884284783758583561139994644830932593609478306896908594358054391229481579276094158006582570494543799949094185058110539376612108437534668963957545527990714450129500980890511061133787039614399247167162565563887296438612653131418852910541049349438120238699997436903889458877346420851434915666457199194834757122200976622068381256813342741748814222858833987598190765824217202749638291861322855277990618522274692152898405501938095670285748796085472717488775782110630940538534365859256068794472344038524207608497617585326742895471153243235506471063934179949796017683168963079729928568321074856464584865898588358998702756414961902092436649293733541422106219310125744464327194386767251878550595278873850326754656263305914055157021908613030928751620279059532372297738606721915370072121247171209600370179897604935949206848154486424158490429487421302310855509542682505261919285711974376080079109246622041380328635157378201004123278303446283748844456251209169701194320418406255064129797261068103359064497786245026258902139274838720728376741852002070973076692256254446132068663364436023370341559728048226809534799074902295599487196140153243934985452737198002049153785175669570014874244235405505673135967259779087868089816792166362138259193052667213060096584764862854837443630013810882760509855328325841913267921093761206385224475301403693915453907034729002726612205321030028787927820283030779394678224045289397312785385817864469445092334198816145604854808419378212042062444339768943202374536518564044661724436101952560456428280487741119184684081977317056079666370450247151888588129839451556026258068517010278567620208580516638012357489797133494469152074435445670839914636522007652298904071910621691170745720960919591725989653780377625635680939635853357986190555902634444147441141181978232114594225277717510077915119452398772457982754223029616656669249366131573039084030159045284121278200032345227853958238371212044953917416684915912798282617938926899378761787946639694446861421854591465008910533210410628083185320503430553413225339976170163067835008861237058203933305687965703026876870597016242151175472839458403368681814838166566818859458798604555330414607447119078895619373345597948361550356572717483940681368191614773707480973152156980692817127744501536099611250192021827484844700458976694424197247577710337236729503292926274556167449288701914222326292417568386589771590544214615063858040842907929493527827258156799917282611615893718843042246465261917573780285566790661905695748735292799857353922697272543027774378771908025473601658176258617159116071794928310928962000572779147713018433940990172051251241010314856658750657904785656351155130735012029780925344851673122469246215299238541637901826523955442602068108448906139911091523842338919648617926763358431754817890012229764285938929451841582771527721418759823526754401464756147050734347855915836124089914598110634146509644010837468417873683665372847941025349579795229097669200057690166782822237230710007138686063568315410684919392540476893443001628930754890201066572458335425188701136869549467610472968382716057586230830197782078918389961910301763238429549592630022216369137113235697505592451583509480351115472215323744689071009778942271644642900602195897218503854162732853889455377236400894718883951793587221925052775800850495962283905045070556283790997479058678101422325637923781833166933819688376960099823926074861723032907021934715075297266897486059100781038656351775425967068988295154472506820489284206272545919684162347658024030238482997581739398418389077107036018685063301488335060337069713492893170005115011520984107647532758920614213828865493934747800664423006113246982512675726599524937859860862976147270954924335623931121909085623488010296557110535480760557647181156737605544590326357765153946498579152463021223164051701434216339122365318829826397692813083642591760343533085912435809603510924736198600339281492523953304681390251701639446767067658457936299282965045755566310065088708264582013309219489796607139940889805022633242509209824964856842250444504967117624878139481432245245158652445535729946934652809364761406212097218292441145408304367252300589305007938539577596136701914367368698633220514496999937784428945695745786307478243412739943339950910776504200164318798131461417585176457701333109386340697610486035214299052130568846275521370768874514514154586014140146745070471476916829908599633308389880315191803957874815935239328099063217834244497397806061723351990285698080097537696927463550962111533584326851164180918164122892381034980372288170353675654498772447779524509083546399083115166774053446038494430049823961880872078570481837400941784995682269762433850812384251962856935492234727574019206263142527168437476367856485131139435694568149225071711670812914180126818500003507599770820342953589099848855099712924710923541210355755129326999347697124681841856114022931894163920291736404421898124905959298615633563967328287846005438736122381630538090769458732458480547050386142098662025877845352841896294968662631214927124617081753735981382040233101357596806653146115804777915049467981733044970753466936581079527272241290644576388793557317240103910009840110712602953639450278190659299934447549086091038956101636902111109138142380052659594495309306611659415103552887264856071171842322610350647328272826084899278777256257962214095682733284445977015371062531245365110896716923539813904086000013995123817262918812557777667013031953388583201108706886694252707588660377632217039686110891122140102085472856915750914399723694779371271221178550585566365617645967007335360930083325341525854525653953171058760004106505417995773049754438735459455794731623522518273352009619920095068118037062886526583150664494329219808455591133952106447366159687981930095118356424420231216679197109619995573164245525678831342428532430216240882785564901674209380189829392925733465373210251218063830341799014268482053736191496196636320219881125225761334372471033247855988530061055996492107263971967048203645678617653496381278442245056236441219635460612196847345277618856274687844319300173375513389161388819300382299759689986676763610434796153899522793946122084096421884601668680652301571594437867441429128816879743046701435625073049352357730516993663015680108122368456943467979036287093811969476094638262949937862092931224874847336192174570598985998639797359850608042082119999873438068456165914338205740785051206506647297869299177205939930753673533419263431673596234204131224574440312320768644586297615234298062157552029963092361093884785587572779405104682363566490553950589582280531086983519659838207649813218105840448644257372546929249831828034291474696852893944997376828302366479301198530076917171477983069280570186808935448746732990989542909099683605193426909217285081641026285105253088187887172959327023045126707702190569610183820476142280203287109195766844161621219440331524136418540690430809796650404243230547173565367141139275399590636713703786125336603981618769230988257221311243165565449714259970630907329658418688353900709704335636290241726103236493533019660912856527061140557357834126630195325366520998384490897366586304952935444362091928374355969679207354145299561572448348241837759238281833948437029124456806009863901889271446648968473399437046524102645575804623798382172518479212440016251633188251828614103082976536851476485347755147838908844847601406620505043983975539769533565698616033907584946935312502916679399322325212950669994025868381542132469956224771699285945369898628507455767556001576620700579697609791547575128788963784477781971009081324204020365513513047435626634319853331249623540296332689130444309222404748631286021241762372674270179591737262222561928202667424707413773718481114775562756233196553644607266244752082904738227119079322330311634555976642490046171460965952789921209174964994977601396527911463225607110364707208055259927293418121349013321977305014978119188165574539037640187940895022039933976676951107785359189308131126475543036879627065919583790658400776031324688310701494089004082371414490254780199494502533243509643946704128732590037906253621380599000481859018377747752741751044964829919635742020474741124327672495242288781800268528743840539731734119154049065809396571384714964591576616420193169300223668028840683573026791783412109829393559745884394225973548074739230524312564811981365794117572750542014442649213025364636058264375762179839213765625275130825867774866282063682018803591012325836559245332377050594313008894856742619497624281190800574463400172567692385724683804577045900647729553222836353975721375075309710392211969607856863044695218089520892480168417044273572619957599346242262814766259192659476520983813072400117463764470491436859883641681311650821654718694851089158781288310569397168961441185701470839645727679644849514036552696382549761065093912340207243830127555609140856086368049715976484630788542620099413063236631743506728978737825464223639885887619416846577729479133204488077492258884375446669650351063813824649007470795559870728531341357930253967872777264153339054712795273822065293348617206964360388364766183090216196190152299011360833607716592548618305332167464442876700012409348368850451974112708180736715264923126367019551500381581582270742428107439278237210325499850401252889267176068926551730879939904974573643924613237422799731736980743220328090401266450834222092502724375700894904279452516693089001198328837510891213921122718422004778350038061521562599264436443007430967227503069970881233878329225000285066717035421234579466126808743396520682503646571842343879842960707725267330309117127571593774906708035826809952869162276393658141793965030658536045180916702181134066238438957326406030193535035205717292891563105010527156930309484609732093817105807306521935932723727036100461732318366461888292620661429819110554546921850816140187148343516589001957687185930507511827325120508909950640313888470256153302041015172561478150057566029033866095299760419991560010933474713714090075745134744376870492081674698415281309984624452647889050070777455874949014910814360210103314059774266848911058085517458365947624869833754388725346233228349097448303215839652922854085656078133098889510950119608690591885472694785223671718927197571979844614231040199816600722825907378823554826757597685754065590161506948523430506514285104142210790870893670393862621065800390198555418145913708617635084467132388231957596506345284435067287715081799065137303508392383436251238892776063936460879370449892609964927358437386333817201390311365636315512201954152696297239584774652229956748176278029964086959103029385344331804063863556497410061823510767282598228231095630989295730865105070008705056941450252672233016395447391275403069092872875821009296402432270623972518401820874330637532681819945909899539061399947318194056546487181125963987731413474833417436831719605684031566675943028434983692739987471592239717260278533406422075557789022811981374078309241963600654609688349204431727824297291743219876059855823228844300419105395668561525021345503551755353774268523664929885335703916254162891061949710795806890632102084750422462269652733212930269279596934316167951507736431193269609081540139621304384783110629234498932162120128553934256061502376675448671646978789038502520531903407963524128329109794638662594042377822286786471702560297815904760989497111450409762190753015400522006110942232159881832480905097999854808247474009288291878854940353623537049929429367287805172816552652728619235491291702502499022211069122826967402684181852185964990328030914180041425162383553304641039145659097638843336367940962571620061217853587390564739367445227826009812865806356824345507876644543288803579279522584399081880441233953683389511559541492509215749038063397454068604731799292899230905059124576438217927412598331576739963189121409401691628979832246217022144236861731751014457390170374433391562313060005714274278621641804949904280695792358127812421973091578543315598434213816463723269504607532485634089909152313337339259453652019883589650605969958214612054524068995047769990865411381654517624488889006475636762631109990704889068669903919004150772044448445638574023183619805939987383354015138695383230627466076650728352040484293883284197880245851132301747966517113429402961151691431105837700000382658352084946848955451247826401675930618577774953805926809923530155689786837526975457605330170206385411057092714637330595672248022291462910241989260326792369902833832805425035505259887499802788272560215134419728290354057482419703745039464420995961742031261126067325965472597564390691940258026539082692737592888186212379308347196881180939111334556012439833582403266858562203834002634838062051965427003930134372327780329850452420484965036975968065076843128126941324249947110347615987652864118802398748592250587174819314180579707754311372986452895331062336832292063496789214244880797930056653900957787117474009681885874459227948507340922934955219836264251015952924073978686033315274846787894235334970643936649035212494840338416418097979733674060801257172906378393547259661258775623199081196804487113642269721067813027682930077594845023335497949957186099971568323316378546618911920489467501152833827113759406074099092119667028325466826978611434185102759210275032862079219384081155242661737741118710286686223264709484514662235321760767837857223588497496672036493315639390582080375887989410767942958881293370178269761754351097865676058059926295312444853095613030966243847336700750119610075558423513205214927470967681988463777596457608911853336711783316115900804680673327285121942937584912388093899249076147462231198124939693990932020457264470000940955974597091078281316917138516813939779833859637187115803754248346698204025205546551324267534061035608216366005401333055169004584327604467065146999601307597120674568776343174346724813673705461882143557674547192375740906546172915051469720603317701870104321510294142299872773592988093765167832726601377452305099010793003161104074423449308945070389763559480730117777206410302318061011705652829279379937367744517642368953726934062128613418428546419097162577739246698640427216887721715006908387673133745984032943792834609876351422005268540835747484440244459890813811801553409181967001151022767280772086407544322146673953892482027522970637624648640560467773711512532727431513264695764338199698995504287017744458566901081532391234940856521533224311651139356453426265379658240291834870003349396435502603741861043751467312990619023014698334810973020078945784143434170642332433774112459994960800435770015952016432198607407484115233611122627568642459744878690818827370730472976694097095385405502275875120360206208793626271431865753087979778725144414884945263183044145412696180818190039944321403661028779692855189426761243145457273329724225016759590758941226427076753311189255729374201825529019489843055419557640143392941566334271872673233586830100905002827151246539491026935920331269966521439411158638649377425429637925314156784763143681886686095620686025146760654111993666374290634569456225271842110193291989761820818576912194216847573505693077475609838144903973273355519595429305096259101369153204407510759212941911211310755773380354161679749664672107381021556103037750663498500731490079322715646455295226087360674013275436262930667175171951976520023027133025356907688233786734117484786274053563409671544827730268803268918531736165628871247604659254445654900177113127843651902678722534410087448151208787552633753406486556741476580694976473285571282987212494843729193430213436763315619619204637797640114095022403224101162050279805389415280239816794590259429207429218187246032920724032989990613628742591834779320164381858153459298212976113262894751174662595892731520046138387667343004301756056985094561117331740283391872095143069217827137860894863251021131328089565793127172115366105945905634242105876554298121786941262740478066384713185235381055378382816094672663869803340369272915655808326758566714785638655217421599679500961614177336779472944216371723394450951408694044759456801583961408536203294239982936453075913459244249332830127355600868722275964647195792062226939737588866807760930031475759452343484260295172042951919625054711104499724643729342250310578119489191591333938088528111170765538855464800858878565187969175397810721022015500562763634424979735467169302614813556231748852060492441796799512801111149442555304828542450001248042702151504685812251217513461246889777860164190683054817830211041516891920122629053484073629372547813510451254103330331091101796603553015233690357079398180072372791750225392254824981757279085418417428259025390523482186685391313227344758959240071642515199763047411942676000511148196576036873572302927346840138611843556999183746317005749477218218712167347285757089370288549573869299290379599525465099819095757326281473770200283008416638613955351794646481136040833650230768469094407703996925867359921403796236263208515500426098579521695262050872635626363894496032048235647193605702306926952528948668661074374174913516344478137496290297888979623281334083011173205210310081801207608494923007867403180703378109202268344471190115789426416533021410743004987164140502648704386809910710025252978252400212067784521729686353521151533747599143881027213410511954704277655145037238580026843120588220733996792144126790614321200059083892053539840812238962290472406215472635610899236301178295380724467475932390959344379759631871290423141320909705858688379223940390925260855255566458144030117830351101733709450080163595870921157895114920813736421974173828283614538243763529708290918426599824258656586482390510607922863774751571655347535472722831591458857255446888586817882625472892743014236432031364489354386472055004312692105990695500894001488486085296961736831787758107698239824325966498253767164410709264216128475018495059054671179171522135918497444502976377092493815632397807706436595005069884723952830943217554641588095226808402371303697031169014452376305048833354341650804674495989675521619753165281281357008629366310110569928857179402230535216002232400060076208737029046447286501336077610596965722234657782142739572160512239534250223341955129711433646583802272975818945364918443108464760809257219418810868428531612276980106234921351034545759303558964456523043900316129954127700960635054729415559369563525584120684548850647060979301936025571189046211419834201551806738542907867282690079842490023562519472852995455297446472557155322346530618412795408971107476429529464901612676956169917803702095571698224088826444726024337373330557929053805010985475809225787359964482901631687281044316009990524590459453921517778109385668647335037061577411109268689568189181121979127078055890803670278942566551594948540248783621853109063739600294250110063809397337183285540215042219023773450502676914146594617320557789072750409244944688851366289497349842992375443580260016678011070736902319200996061197701034559336511974864864920432825166998097947086371691336279892654490517522646422768589048305539353485135676067131351866835645970476781936822179739289262870918480669982991081766607681835178047112152714592924813313485976726935682478356544151090368884118062927447922962918523529275223837728479902998707317717418966378761596710511473816273168586983133812264675823871604953022267328763167661219193755594640706455226679837096969847438678404940439378224212188975801575173504755881070719238469885222225360971527775780451402178134964752093917189152226004303707780687087629102456045248630572605475438105690546274047008063520080935081462335095641728006881722068161975703093867345218620017976856169560532544074537949040293611886770422738056408555762258263177903959697876678707344243315560496206011365400548632053770101664422683186498979524487902002922005806021868714077882408630253823751602065759534880954423926873999426484408361426062752564705932181859552885846989196277363869607803923988629071443088650555026152382920742207096757597090779175887255166221001123895424354096627050592908318669919214560461376457046689359269407897553509602431100023965491211232935278596303931207068563063820057509964103750160423640512841117160608313198582170051316125255594433982861751724314993322886312591104402855837620974987723040267529580179986615125685050507367757542952208347649472530077488952761083410643868382588581020409217730709157778050235880114912956054373773735911316027550161060928090802664157007425109269520823445795297099126211129372397046551219376989586292896993631303230022807893291226817684046441233419374320794035372010953854098952108791867539097494377971917895910269447643098077213354053378057907912720897724667038853338116501842036779942774354103712223437732946080556663610983978926408946988499394017662857524895296973030144320261105019364836446369161711110296066317981496313978297777171955783096157943966517120714874661528579127446774169190926781464171693111454886213173043555391323322874075239811118421345438497080899836581476373827031924810259720140690261507015102386127712652037401805186956197899517746412898467244233845258694781922553749527600323992510199605334489641424509457205750882261800146322408687654826108914322894870879541189377954637307610166079868530937901616479253399204965208591327900601418742134243102100803509713895397538978903945014665636988797117783713234702042383943898167961451699202917028710593944460235748693212443000274022512026057100157375831079681805382155958251132336160245407435856280338270777298828734669420803662989740659628981340323292879349306164768461442886583544538157922149779176374517293288008677599704238920004747858790186965772096306890408478134078344728129649867324896677962814023198184135381432875008092444991772197000343157182597761404661984234222175323290206574335314739373302333678621890914931820786419056120603540625050380620634212401314901763729261979083787202761559374225331015470523219611727818046559894442745986415250769881643000101418460639097673607265508224508564452698112310249072733939718835441775188403378193418722077864872571414423568532044626760220512072451650457220965118842119524920713029130909325897254803484738636786194858190427511434470726609057837027113089016415847556524294765180836005415662710134563828967864726587088718931188818510970975000080624963746217332094090423789894651319637912422503638735503712900689434921190566005656138829279567958489868470254347417715447113020233947381964059682058795761691577018410946444234231133947477160476629265291167979488480827474554590333458302216785613543822623239024691737326049819990582443688988807782884749608369004840273605302458313872165763725170402110432940768103886696523968486021794199839127793777941926446179563719630980075061492409233273967031027649089104055400503540739045432275962806601220193451465314025936913709130959415331605399945144850724031199711909918319471343604668992213760234531617036125849226755801113013439850284749217344858430204065665555729650495850173807159137226685521941920306618622234873658280242157883352350720684301514507412677226756181240358049179899688738527656013167097722788930414728901950289789022283609568380771555952733922103032564035977321571465828738715714277158279617892412849912151384066579219808582378837871605893792581810348333063609888776639019758650628891364868361697655549815991846498480374985973986577173105763119521917269340697715874055727381825766493468347195201382269832067866885417430417972342234312751446236110340988298375410548746098714744715050766818857000244888694420178957084365166238713287800161329220169852774460473288596977952351859776550173730641456167234730620727046757059479376292514633567080192752692371789513047316534707568076780604980797126269771200695908075826411407894729113522242606879384267360397371349555770932013901761280685817294902524676471310421044082762464146752294120757133724180617367780099289807184452748961106402971713018707861095223232641066568882191081634553020591660500361729296071228501192244785308229080620987156137635836643746540229844307200082542591317341646914826034631790173138817853672052452231117387638752925367061397016621314658299297823418639330296952067438145639965494294707844951058174533065184226848724696061177114635977290234450638059012157828105661307910388256030547479518094989760087030727454327852691922902564139547698689439127168530403519373325713261767116382263226280176457449642991804937291971163723923156191640735318514617283474239108839098202000826142625316739423372284998296461503185936597702204505154436406102403584340103547297776428292799197509312794465824653315440115018838890086291421572540172447286146971745994410694417825911914163363921022749332427416687458230686404904287498357246102615889475647489673172842058550897734483129311634045651964002848000529635921634835045003291827478531272487740499175683396363251321148803545827315459070280212708021020151648827438898788383980342967932750167635144641835266496249304266219148459256687203762950813446413457640075094352124533530666561718648211289527546523959519512097462408098518474967366276301530118793569189203464313400077789923914748123995995473141604263316948621680413334646415349390654796553314599548544569277240407709907177457497921824108248126918320047030332022647401019241693268012085475124142322774034967731908506845949172917349776978004333082137488895654259324927734001352550541675594814760965222872017088094683712897010238056306214643456498726740603911421055976091205379726263363613239110950959775667749098089026721415478775783074050079340409557570800038033727054884646075678930360760308925137153697474975004463117125299528195613307707309492619073400739150725489722724812493344431118368571001711976675134882923776233332901094307039091705062248778859842639210637112615285151694238774955402440910992159917875887446903743119606075857820161296844024454062366372878283536081831321609691716913234617635315495026449488032392724840793499726104940548385999847806829167091869852190814487325586611606483690322708199972741472428962258338148150784881821686137141296178810710564955739634410861938910241098815009327951708456010624861985180707243987271796683464206712043305807164384058802653412360271016294086711405224802494724884196776956128795788661083348598745540883840648539398191626998438169977827602369201786904841613248605839774633052875006820561458723593800143079603305866875628636039495074417407045304091165688075707750396723574239248056833365745993707329842269786432056251595319866376242236967822760360739042708360197007720259380473113996332987176098086853870118338798653014620953837963062391838006606865419643680259125367484012693390539476566732315220554132191476199315067246228821855496800029688638483064377981811692393125511749102061859757836388879916185289202974505466660261630550974289021992344446825442694313096020854400784482466729826223001522741805473209415020406529081823784361394306109581897898909991938653539265026455097575533592639821575323969454341901877040160543072227484609699674081568304936784792774732016109151174036035840268377539190519031520505944243983203356396219493011193109225627294477802424943792436053187697885298116607774936074134562235911695442611334786662977761562354259248584042426983886020078217481123305627374254172799166033189459201446376713497480835873480040406910015383575247853334755770262927187953588022937466827149756102619673331834662355893466645571938305343007950951162428870935241471668567636385770376888903309574285898616829574216477735520926103486035776314770031777698800449875005421212561431766149227427735262961965683801476662180138312428329682436194443672674236939474839222966186756790389636608479762372319099951769800624597605921773216434506461854180997211450474530046793428076188860960501896336438957132225960523834933105928295313812757519307673655361651655291426434151043270985748763425015725730287832101717271610331279259700569500299337081618241540479225996828888431349206678653271381391050290789708430522003607314707368745221936275570874138417445342804191083550216637436440313380142833557125118864414974938484848077539489245741114905061034585187213249325375751951400832407437693120093039771639004143581996123782309542402359388896044151398000745528463834462903051451034806253677340152500782627774026546404365077751178930294722158078795922084527362117855049554177182314239880214452394103348487159232512806407159811328667472529659188441163028320288108928795425872120840953690390828867347996709486728288528834688804085708998921569920151944505732806327368820981591312283391240244962828203015812683888071415591817377876365596954765969910902134171919289461931564579432968901467127842992449385773765128809340125722759395233861228089320622190652585008257640692702845469963951588658476356903667629731053822962998897650711447312243041929011401217724353567416797503083058896524389045029468687873545463855081481196285908706097591306344216781951512957709447624610713317068463712203562643961296125876841976745955688709137996723840905479579329770724211033427889235313198212393293341019285130015602039901377344006772387250852828370593334398052110783126465356347488269423800250765323262019163343443534669720175400804365812958772764666619195751245923713756834235026317567998898709435186230199299581634949033721181864752034811463518924418869899708962762134412921525691717522138013183175537287469082794830656767404863120842650275022299887620235795656092086147658989495626577197064432510174401242438499224522173220156986137413265208527803312567316005873896860645317732920547820106783647444714879414003345813728421139638704659770281605100552615113537430640967699105737683846094223021135555758134038461946666849864070027301459948628538236048439154532331453438603180715046420378765090159087925151228243330719504555543905469864962965062580839664012002518691086513130870034589332595476650392807492565596128298753256765592136058593577292765876680677171348835790882461662636625256974855386429791557774747657651259615977163441070766882308389399523489191543486238219625138522910288079305075380037065797194412907713955951599100811500401883383894831474579581631214665546922128287517371378263555254346034094415778631710327324479870539148088757444346271378781185107746564559354721191540193083168696093580256258563049971531394113320917430484360485738307337323200852127687182039808428851791460259073655949011759499962792090628225579145522632748243244128486325082936817959190718074007559127035592454855364502711170324129959585618411528534888364754221416034470977662302896061646964944497765143903662646768284003270879354697748323679718027180233353960206062031453511970066121578204539801527831664132920370530544297982701600379627916906365337023010376199133731750456110905799137339836450147572861274589821497435686737518228031066402444526834553017132143100381835060207899746880059540102247785422991436142062840932149988865586941072687226713503180198216093507972701673542639770950907185682227621657454184436319579539239157184555507926065090823811664772893734439147420290545227718483893206499564232869917376938473522625584956229151019373199356785683731750026532999822189812883934432291974920935045900573157767834942896020154615575732596086703465330579935289502229466767431099490635756323503687042800846421273174293466613476762746244770446274419648371124530250816976081819616858787265887818185573500284904081866208438364875459531666945561285901629492060752413330063790118677647415800280850453818636324066294793018176977045241854427336738852723891305880015469177287943525116010696937144964913236798103987010878870407427760083681009704709338786974919403909506846239698519937251696915741063856281800142738945184932316903795024039391486812607391510648549185497027133656895419786671473119312997735824990083960386566103248770112838170597924618445983521384601387311477828875620126324327735638562856135168351121986759680123152458786208917000150078484406500450568974073665616176473981172894875301219559415861211877111093474016921411156985287540003855291564084533357583148681079308878342988832614733115562279931250347281206399649698628313703442945975570416385194323909381875248165451993079128139804668807191329075882390292946185324646794540082830789263636308211133805737974190077449198066838105161871595952600744355121747147882615516663615630791094349334536712970829099580982668168039019914901316506982200075586999411640195263636610437677303270179133342064407546806980692586776936004103475591851265100281043500719185109322661000896781879910589183104838714361375267812945675614001551931821223835107103070330156877244644170511105665406493403636429649972525165398146908567554454414487688372806951499863545515318137032862002759496609626997580005739422977942774305083565299446889103167724612736046989318502569575077814703833404845623123787974882778377657965834056196669307132976021488213817427740327681407499541393224517664576924879632599435394489901939191302176522402307010307207840790529180710949618418426472641160851039122849444858917646781200268994108003640946085942282971868670838895066464832762482212892636316410901259930668763719156559146262988029638357589016646995416939257672493464712412216142665987733197788634533698186293790156641876081639319615324083833826323977892292841976996687265295898034199350533152296791456060903228055278037609629985621933954635710301694413708648368986461731560943608314617040064833850657565227904776180248333787956199998765300074892941713416195744238438609387843402530154032597437053494409245089352344020588739556964144539055897692342509863151042986041084291427456663135429028678427878632553176100172302760880124014489168314550423674746827890637675146458408984470735341192380337713880541864874590876669903173024397952362875435301729340332828740130489368685292396517928846724269331230232085072416803231572106764000346201139354639217655794102406805737929455881364851736318008194188594028027978227513796852754701116749061166952087863899941235253055138903795245459293682856183296277956125364694020112806365124544071857323659407654361015866723091566232249630073450213047550784462316843039454681414516729247639516950937354195880180397181784662866998993195799204799905067298777196388686051992144084871535843530482262757808965889644272890386024472108977218092008722697325779231832312681057232025652237544150472660885694583493401551485840468000240535930817787310831623914296964827158657851952582858268161575005600974117016462215306181345960539718968814488162023268134573613255555119572587989669517179175772747667973139716196567137222715699981710276571992047783070910747157709246416285782270327892687357403580730328242038563680450202433344865081331325151533702097104657351793636548123541499147244496393619388494212651885839587106475978416376315719869289544840822436194163892652711179184710086819915313912837806389779925394824938107505269412262353381622687906080568256791785124395294580104456892097368499052245571656826042588292181295805092297529324026647310087861394373743157480881854629324346117203079105250783306295756163857008345106788695015720363492527905440331814153451125778220436217878469975422807309177313581322019665994757401860608012235809153524872086987814064935867657112939796968205903616934231028806465424258647223141031416565561972220807055927864035153177479698099673495634853782269682725050681705928638653411493513825055342449793915499569506261716895036510981170934719416438005856526213474059798489559485104008780199825586557688174014499909321449549225892825236100951653394394109914259246048753780697776082620790399698790813101617105616735995704610551125234173049619984007588644142743063758445956010551373443576456978381067082279654299386270009994445261082256599385227907883840998279477639209248401066737070084993926269874544283125088102864840558317291113485754961242470816713627845058205960442503534970965747865347761852866923811032984380321862693490980036276819493049765520629043087820781596344389703849346453679413280686443723574033264079027254385270737668564012211183885146329945647895009056477195622848405942933646265297892960715574702344998926968322526789757204170598982363035476480261011405723061222709239690357614699905112465560763427700113551198934189772909424073609975737427767677551497011936845151494342589188206487350124184658274142089199235105301365442789225272602032668684321928098701791394131285188216696391212452925500119658220732180718286772148187283441811415741848864470844189661395745405371865322509075149605862016034341093953673693903484547014479758123182671794869327285354884679687377447147666239467055271546351794837207037046447207698573497039476286543695424197222553062423465088144306233417907531547244154667798535612901906191060736202968903047275753807936494108686221602890344473459970286875533880819434301397233917733181793246335311835554613218967248722543728828742738969486151510373209822192812049326744240461588368308701386515224929769735368195557981467257947892217476390765443855800703115680746595053566232392106607650283748908131370621843701618039290417588799641436414595525260491117337074164665825681464235711208181276648440351498588125625992469214081607233983053530374184382520417292327737431403864394877319866812382564595889924248817708861629872515801533016160551965839337008331726945724967997769505159592370954156612885409855886391373593588730489679645941958638055639199685637075728811435347632505405725930731787373802216922475671014681153848107083618695329043566876265503201605237940842346193782824285767194257460200085851545089564783148623003217528399016471729853948042581262618292981875004639767088415615011425557515437412225104989129133061022260013410459075688044904429435910544430127894826132891613148189638851043494902662799077636295603780511825449657404408047451954715597344057020715545743850422124557954157163683969414444018571113830586418495133903867741988534785112877398839815495086805466159582740603230223640953144625498037756738941220063319131340678145626524243883269288211562474044259259765950965804215575465595520832034399003308535000431222016472311250360954371708112079670604399701760768698349280945838665867612031345379088269699883510043239282911988308426063388476394873212596375864073528550693128547700559289962901566809644921232402042883394452979930780023711383379051453283779355585002986126268681191014414684585200983903067743177348668878999842878969113372579125906427307072197884262171293959264762606123158579920778107639351352888897501040660703628565919694174565416309441940828483235720429023175612891845119016653852582866520602412605252146230293410394835795888763218224465103525234394521081169361070996935765480421062740749979821494982827617975674029138476077219921096576534038744837422532779081338111405944608952017799669014835973959715925354439471253560822760363398522370047943458842117126307536728829452692066249435165169121362030072217470497386773431238564599928326680631090851665602425408376919404424825609537545042427120749868360987985059687454020601949484002357704565156550977341744629410411121846924675922932941012754116649913749113825711062452803507573550374108752229107119101843484475188229944564662600440336827884225766516356309016634518631673835233871892979436820136931145472325630587553684388472095472447936947632780269469204482932577556785734339537326280091141516394951920080924804586224276700507255242461955732547479410537967641298905581438228815546736084369974275463781605931046666680261116383229792446786110576368914274525823150749218760375005972172855214520668309904195175604796472811215236621258135308089520424711683805220601720618724088737253562439515037915087098961981867192355771728581813764857616310373638899496460302003195383629910528659952008249034776529994983344388949301018791682741039468205146615997060334848533002837183849064833353219378592526104713371863752415592031225430593987399433522203850575250262432498171304348055315364730657826527609851565759569494644311080493324033414524928713679832468880110636020574230561362057201548402471864277291748223516711385669112877049031883137608961781001078804702937219666600987858381135148000699469176083216966743846362019954689920401784849126408593374618149611004095781323743349642081525438513509871616185314070518000242431159277486806808472281743117763397194215609820809770453590869766458574366720004394514515655861604361822375018958757801881225380475488710317900907090164465715598799757843139290211428385648033169240738184610162697244765774103677805027224872529392019755551888872130738702411944200734291760554845824430265116986240859010220982490293759618622492596486754114344190255173120220096873083365292301788082397088044501201860376011110780611772002791571957355890474154827055768671353351270370717270146703208811838723820486876232756138518869086551550177814197183689256263499249061440617684817644763872596819720406020912548634866496147039535162209348196031848461145256117843621416299989019869561072630671214040586425969968780106201045807663463154063791700959810351964417510317449027100681821928318625210503729040367658542131778968385666855067956905596591083241716742817708735549237176266254699151353570831094711515315702780371901523856607997955808245179407438407840489775912426338664417567065966109665562577790136327611008284226681304830884819126640868647029348501432883878866781359078880652315575677211258532298052707126842644887850804808488753871388198410654057054724505266054553474392167392179527356828190541608024301825279308894226697030016622361399866447869691291149074338364310386997349587551265542416839366727494754919780080804201260526650413840336069397838970221665318157840726662703300351029974677595434508965945116736670325277047265990951624553958122991995410778974332507068873669137098489469361561992517451303288455648670231830584812680428822294490471864127264565011740827282455921665950524852521899747553469572671975392456526242654415295363095283937141869343727264954180891511335767731924761964245382165911755526626615751238629063990935077178327858282827141150430441635671563052848120253497092221413379684428238470764485656531983470138135648331260436944210567101109202484756941759954844247179629957354560610127435609327875882773369565175114286360016169590706684849321305773218265302572134235665057063530164644182747825865906523297886380485556688326312425735967154347233596209925181110732007946811041954954378635801275891565608411378546451712877802204261965630904032905069639756913416836949974802422556458566472241435242112791058755386081629909439930438985136684432321970871085845587288773277434513254033008307544274102970202975353270648628572963078319014544454100940494754943238450178420251463772187777725329154765158667921340402747472501939384577529606210743634149236454356738722402416285913855456371900791958854716219948982512015517213680662836824989149473440036652665700982100807704182869581061970504899603684063188547748939769047116060875909838454842332389568825937230227703944058336973811472046929938001254200714554375389551558897154956640193408526367738286338378535319458496022085708419726414215033235476179386947223772063301926394843616557818350745344821352160729937820969248619471016756892963738081536567406060502984025383400310893555222907162511218665288004716340880132837430460641359221166487207934239486549764990326883199728511590510778485714063387916681937112346761633497494820752536848047202033562178606268989152120859988976330836637449333336270795286993268276580570593723287976051835616516875827320528740915611636685959545025429961317438920623532636616293268632023628640789090830938018859285420617417224622795435292184575031210076848673682016424721189545334817519341155653431876698754581828282408726279628418537857290692660258694882845450591343183894951168409151943184658248471448754394619625921921362304283926663845372036353508315256770728235019514136609429268885709327476782361126337357116989733065494420196506183489240782664594401909836511499364808270458483972503958660893072092118641245329326846513261679615621520004497350658457296170426069903681208060794408881177184444715829537779062127274729429415468006960463857802464316335347089504968514918743282897110926520948612780992821400894310521580920856019545230884776928622852595055740484081140087742959019439671537883596686597956622619081654745529279001400050077974560974034902869740294850399551052757708886258182773183579083134514680813831822224539851559031032267009420212677105415419404915346942227057806872409426301496618127320057961042799891947101786356636821270243856738659422039181351208557569040108080408342121520425010368626129267480475305034161669107815645369953785810176942197511378862033574977906727655523961321518536246789729686379371896393431711813835520353565690208739746579805584952603899062011659306857525951245366388318515930347023376044692427167606301672045215339430541406593355176976254953041128997694459371493592275964448453042032176379103665519603466822939858942002607188986653397215787845833274587982997853438562351301949071961654934381631769536023007068154538531219899053458236624465903194203545763680140287049715660955872585164900898038515044983216230521226959721359309701353493789266089550298138617107093230604541661506716228691252432942167062426874724164628759752800110527299695962651249426448481001190028730673214832192344388048226518127992481862413550998527114996604883381265271307425540512681519955572932444572991247479336784382566817735599880595715552437141269099730235431804930452593956087315055273227328928017487521527200070636457261271717093986874799361938506824914285418511231221466273135199453081020267431481220859039987673222401233186542973297911097342936023945393744263756119643376273623394242914096572415403072198926838637772820653176372695366310725001772241915063646608940449709272341033995499908751979352622050317958475914225432286586826968223634463422606116020565262542355407297605154269453861228399849915109793380213838730669956839995592173290581909993347765671867136002778143284263439271682962540673839340692496874906252381069625905979444178206673752626033954231853902849403650955139729271319233337658724171394154761949025758229802342963811109420821924835330780599081766144337802599493267765144020695529796249631450359714154376739793176171050928815951098771434793138032689662494508360712543996981354415611210608050164154800015238111904182863475713588914014954314851263979005432557463444968286371294077238649837972383217271737124430778769172121109478435115610560661867446759604556407645521273023711739588680655795632404913559805298359257561949702656885015801890609772237303082381527382557157683763862618815333260999749925058753251014523367248918811832913130432504124347703412909397677069680091008444392067866729841847703303834221006648075359143950635109974162414745948850378624766695718782949822164626234204631521493458918953893524048901587664067454865784365954063891584755568763676986154803424920120687885954481046452978467031168350024514985225765661545573916737013773235972019850353850678157081083708569098680594716045658861945664573841862083300805006901080317841622887320295940253897915090139010162235269081410423099818662247934696412751955695849329953978420072701233623764618553282931146493040054958620062466358577499933243728440790010364529875734164927783241544207150102849256994893013448732232792866361020357641378128016788178401694602597401183075144673309029586438148720898941293597796505294735529811757991158344885191973543117795132051259065090784026919187700186421846428808110258860560275254636949690053766419653428386341690602660719278469148171439194103577250987224510460559031431920891210987768586511848080726363435799063867765185032769733014524664134162604183098368613363158968309910818249361902573044726579563881202110826384878323814158841331592712882129652292004712978106884718128600068778425109206770237866152767478444732358805930712076630898684312459567859658309346254675985794148139383158070561879895334059154044326896493332915481703874851064048720653683782652437420179682972869515361058957810621280144062786118030468887711683242436688122045839349010972520800914634150846073705277859871185391549012544762353398672686302894658100393532867179098948123745685240142286655319204501802163252420790440785903355497506874910027341099552499394112068242628681340211818087580924096187274726722591641236987472547824937648165081782944518860566254908910785624681582606503924051410313920675818868042716104104963830975749398864583147598677069095126734088932887052523811727420174515296793980839161234509707635740623426112174675641990977916189857849363488389871678701643063496651251277440075186806048808513085066918734246958153257055921704920697739375647269418662156347462606669710909725427269683049993842984056398131664768051848321035739568036317645200082484482176740927353907680004087744456107087516740041222806432518994523640040480849913377414937935250224580534259493585229022868459096296103057063245255786311660189457277196392128791785526301542602780832990514044450464046323591723543815418511168362724391591886156878099360081286804436017400509862877206371847406311037258664059222048375129843446745099942551140913390457299341910185816030173422705562369815227282185099010598973527318451824938349442924114774177837607470647514036817133647491512965491685691516899664950940011587968339365808155964267643239014798763892823144330647280888567145625221383958481877565130169862186512370537212086943517635094838805092393325449835101856656271331880997555710973742770298769557104609371655130840120746506282019614726922311117786053352096033415721163374069017851281059621577499910805301594453347039316394285727262885188959461248224854658987031226409337588692682203571896275020579656978474182936793301776700384465293206875818991374606955128790678734423587866893308463776302203995877261165629276748307229267767300977736286759974512753354064000016286146001484132670340845739120065765628398219803946846020573773327845538217381227358381060084085733985285138922696842560202826226450419004067709660303630175556182920031713318259744154069432004839051232547660561104565925148730105673812206761801240517154325125716080081884463788718370903950702674537182520298031013085308451752698654718467733482365173500474056533264714164929080096054175001103753846481750798654255323028995692316788180146643708911508235842303540763823520201807601812458975286115702585673232756035875816753418259827238040569720648397543285240516743630708992192115823619653107450509407232338461951839188601679768708997139613103978017010081117217847978223026694031081047808029340468726956192196258288994725853161260075296568957306785123305554167331424938125290297816217235299589402713991094523718770972339019157164048852515052539659176812017012267341019103661573557559065004471386215929287679426548945248676765214086127555434046901099811121777258973908755532272498845760930649616189437062782138342837328517536102731534459366841312336763384427318252763520813607458974370409800140896462974552341123833996170378373946858815202037132706454510926854239872524672313344994568921873501200273165470173041559715827405978046431953377123667890481697640309766226189729346156782052527542765969614434775687768416009975670957149117138199727948292665248539519571504946398561551796285917257167726514768425464662191691956888504853730463575794386470373295757326688587752432084869350216971175676256218282675748607377304533500261217592893665749843364620021030998425796553070338035035291475597697395318447234653822940427220320017704985685292932881754174715935481035351852259097063997585749869813830560613336407069921314593177739038182640804972515578140334257782641481755984181877751774615297853469228469679590227364374430690151517225206657432371592989266037785352783957589807054808044895556463083552317422467263956855898898318257638927532297709444794319217053558506739790576555160768781335422477752615024147344297238495016388350487285551853030987079953768819057498122376789884023349383977050064205760511511218341432467375007844188613739157741060117267489839652034852940095837870012310255513065892480557190215003742255512417853083351313290853557243640061549176138205920553713249656984312612036447520001675080179888620915008292213337337030156213368725441165430072637414929882421107599244971831431165402857371168569395135202796705650987169141435206101180278889770717976341546802861829026229198510203679182850685102230391947384053672933110052720693069795289851684616234033638513598974602525748367397495971016161834131499245420602203142033813536250188796196884170212611150550381014688575911543923114819305861537070965570792563620998078134809923172320466090827553443776053093217833094790104826619577648920332021626644023190929648638066607737882200508444912163218102674150867203013953605250503567326445771717446116179325272610904092262527129896178149616758079489239876797522820252195348312369828536137774422904622628920926414028899612664795683654178022971028339184850274732286973724658573668027308266310245197249748643379340946709336685153388771491440917148897670187331463365106843619224325361317993095635927343505240187589873165970973753272723438779644734514072371199091498983450610661934473004352689867469637447982612768793562127527877516924658201747082709007928749485782752460968343647328540095076018361944036487629754533209743702415236001145737499890136033841554903316015523329388398043447016826518046746898515764019907257966966927253894332351986130014416412508137444040708085520851771445693147498944243086469620749485465274400438204839937592691070486505856307868734348832676334662138907569719785044738266219002044505095168856562676266663165402269601934286189977898257812033464184711614104074996598204443788908113187812637323780434677962609452507292561040344397964224921772378438310058115463462008790190826954465430683139949790047047093081970643002078580221060757525019295102125720293222141467548465717928763309090894441314543851155759094585225816411065184487078116584175316373117731540812874211438975063021518914976047221052141529480272494095191324065645303264093053394397468559656043838670333084499965488600067941497107907171845354247541691493802386039674635068682102953710282452511083612161663492781389028414401223107461105574396685332057169151957666028697613757011511391625032524482206746615582278010558917016805501340495421564038327811232798210791895626080241252865841278659840971326936308925792591773140202005792592845051834023896536465197020685065794871770775091712414220524186382285985278635760013427088369393168832711722150467423874957558452938354406102115677817160503040614428794710515518806453488720842261688176465385368895707133245881351786833619495881379939730525010966735150183289269015198486829923713576592362666288240562111240293449715470851223899894300011057752333934193769511278146338987196410747617495554165086215460201800454196553507418821222113580962316818941668893738283864455698974961815577631642975907563282083653236616973617681602346801643370470786441735636322871133809011985768177609293329276858024412283392453448431609029800984093866772723018896296320635352951294104808010295052687756578719514523089508898052543280507701872312787356302770613727694153502195877877298992695958637744495422890947185732927469584668856129705530682948888176492984988160233087029789393524276734030652875786812639229653068538500971210119624915290807024683595467410349366655837384079346013184224776013760460635809239856322173580058026744500886501652065975285741817417750365904446585948122832900936772003458291964031882778690191791214889583467585790171405024401182159078602401628048346961847176364392478006384634212326268223668053149129442440006298508490172517496719696735785183292437333111511505829768539226801670653308939336409395928900548647606815133038705907932563558920672041187012451434979984497088055679170807679550107756227049531347879642380384951140309938689194470756218006305535217605481575802664629823949521941676360394851541554497089707645579411931298095669021672322822288911245609380935482502699112625479960371555118961512442101321627826662924354463161743227104106262494949700792219682066222200807209281902572708263710871225234740102739980123483412324419098130457469336372626228487557228530096137551342342419882872706277937188401949546970311030667039565006518560303325036080264495440990286971581899517915666397479410904252139695608668230421913475887223865266793249658861733548520901531420777865089231369456811915051023128327035759789406347955678831426742786287092682894041456702819561740274166164682229335225395096035060098823870374313688450437800864669036494963455893566131287768917948189140119842648419582215488181642411366017783823205401254755737112505303462280558354081676478194945350863420634820079530466639614585600228498674685287535489667495322676052926930216286201996779096026231574097645838425458842847206214342069036761300684975290236535409076588381974568838498608436724541183589819713390776019682112473370927775683790273262211854144131110827332695833219310511604494298474971280982606713126382430824876074843565511613992066361830786412645246520868346713030496893316103101338939757846110536791885032738044600067813550413143155565629064262884816910172888530831305600683292217508183024689134930373214631816944793764753454038199198886477868209196778934690118432765500002308744769353560842341216325062298230524442017068854684925750061303006263316337146465000079268951382836527672460235263845179093401654834730744671305660626064680776671529740250862992711120230637213478199190034896624570619706985013356694103620706806629695938915255691499573961440407193932317833877309530424971935898565802769615720940909651994775746528630986837885347885500512693609987708175220373739575076896039637699535943947161207843201057963422793745295481857638658482871682098225535014055326212553841970494820497630492233018714261135429374103144458851762204148628708364110686773929740070828031656820619274208795376487560541778824192340636386975612263121732667441552621194412272640587619812100977107207339049286583868649948886012771780229029909236571076502813501466827766363476263204955245031252205443801624126276581414097038073449245141226934169905449114031040134257132259846982759251607808634180694767979120137490698526511972975354416431914535701635671528198660137141143732754147092066613713663185644957424430769924148321230927953691135963120824034868320478597329461298664702435772751489718271085714251327898528706779320337145748689634010556805476456022002719638788664147092370046664125637803724303121172148359552857293162222375247334745956851109690657995307820114604105856605596104164329118926434625527894310966199067888405456721651442621509014818812156524390990295531313147640109209288194248297655400102037556754124640501208487284130117445211779198643274574373274584888169427125797940213949072751898964551864826341896465020893563884521412935028332177291349071648474618945970022891429450184510252523278831468339628593879060219170521933844533094852011203764954708701111073843440948241043614266670198418033328147474257154269326715932709145569396451141585018975540453710201370730739845199698662927179930402339912193588217527564743086085356775670514868529165242696704685479199897904904922997109712968486025997021911690845003253328731728744504456579529010613744815431342638586235694213163334632375651249552111753768962165183224046066865626651367094006756419127780627017647705634275205158316840280073388900411277800598175276846061908374715413404691510138070364960180010624418296359960080535065568640472630542557579223498848888206278614298578848676322885646256336347855270909766370157806827973901469908496899485701708424669731199926325583978339548230541779466965811237016026554521946726835117977337061038954781441270212867588671703712230957119468154277508665473307903381057671118450383158336851025045274233858783560853320422872849412967340680439962940362329090938356225712336835352753495508588835818119251107020062775782734509648466221954618134706707874416039646036497761738787713799513185317974053665760221308639817771512579716224722172793918106201271323474206947005503102206658750228574950034993178887399872750470050895180001318938129729435244661728987106494382669258272127983430194593647497836276060569660245291859112685317405480850298790082268841555105921235421240397390457908784062733140182303084772651810697263792849289534344345690334881245833078998458982364468631246159004613628828296265067104667286618105788338860771944782263483858667620634702397258552939080370403276287354448426958834329938620931965352061300615367521969199990749109517114961918931916581947275997290960491841523122509919903630710969546997734157219252278784226203431661216263323913319383236070635034361422229435111678374039655577813919594553451007054628761140073211066385195836879178909000678880362839933219871492446734247633186177703756166810016580539911924765722590407028009394888802258445201533417206645860418091023338795594961319923761881307917655997288752432326261747339522054891465787449603221096872115428018303207984435150120193895416098768526948011406960797903965151819674109069941451172315828199219280673633430583481624491175491680937334974692321290517955345153724513266580557809767910986110007070004276762125612880902195322464341789799474089407918353882820958785480730853187074663330813645692254040966303596272106708541095293958332568977306211981332058129466083417641514848901324512410181309582858428840309306001934244770591807880836728312569494561803083640043617970212301328148754451920534173056784148312174703582943193097355708255072284622882967160802086652303862982299111703715456686015384707701523520422148260866338526494367298780592336887847966923605820321450395243698331150770144254695583779373157843441408897643354986691767296038244746228998900185324317804967189913817876036416935542526481488488890448846912957436630456404327075392904872621097311088533116906782385075417696345385745505613135759916672428988756233945850762469554623784277508267925688154482962623201322086627628882025099142474151719336694689170963697084997981948417060516711027070095983654168073695548733340101729631128050771152117758999802319113895399969412499295396626282973011108333210601649466384667277079618461415104142256652240223200475944980589795482147601005547831902946252234330054202315390910736034441646400601794325762579282756385121032795163368008064354449327582219291880558834806461288513530535291838987753512373214501624301671055946621166823128506513453115143331280015299598772750651098017805308723040072544156706827535655584226739397399394934751363009397262482617491638118715015063888454016945234651094553413786509704121738421854765050993683586078214906962624574714918413416638923957546213762558172452588858662302775819278784379084708336862871524347857422752239512514389555323562414380623224185270387692629994084871616980257595124268929088764246040738826077386489495466754671131586849997592150356229025946108778045523806239697737666671575804813387256906107525727917778684550306477076331343555798518403594251073056811711402023580354905422221582693126716478769459308781707721715119749852816371939160448385097593318190858771536161414385135036412887704419033292157962956296454887388396496330267747097373026237017980839635246724688458718268109367117085035213439500205401217752376910323038155621454165084284878392122238928561436651139474717178720820553690109583662192649538155582697917355404843450145806078044589024014133519273307997087299236115875173510125218618800624387868288790813261971340372476236163275639979045349355783224496507211663709298323411781345313762701514169169614384625978538049257445492439644107625971213061522520576134777059444198930316126468629867053691441793778091554500705333619311613876823026340013442594927351856511285902343803275713360869092151639428256689250700903566272049214710882665187774216721856532059431765413200347085203250809764745559723234238676286244885651242507585232317258184260749632731164412848577116401111931114107179684792494519011953954961628043776840772473061100449898775672722121123291866920323347260232105224096346113816237407161512428022457120257005428666270007360826276322493799514445704338959814044641449037496921312446216302037178955297932368011032214634244147821069768456909532936168735605068391587207272084781061676866551999161068146173580945188686526702963590365134438458748243173630349663791466174049367091326663644565106257762889693194169764352048889665227988445071898522059321337136002511349920356761741244275523881305324940997740465500934459910225360274070962367114079100937642367836387697383998740047852589187906885682740458664681232303621638054574405866014418077189178803234316931712835619559784814989173264755238898284871909393921936914368784418766352304337886537317321956137624636446129862213358627504256944792496363292631456105281560446829808959440506576689337422857639650570240340334183603255727116811902746692987624747976194118218384978971756771605171546101801297233512986170835548611873928539313955496917590884296026539233154302230373277851074810518804053537266043418299700270687423326463506569530850769661959990377132780028126784836278610583631599731057630142290209879846472031106124242017384488388027398620755156568160125375839529197847935639202865211361468854584958002101957465350093354316508010458083822126509953517035449321192644615728995377521092947477774763577898124019706761747844425586753547218656958167014302021371027549054526518766559065120704562425134289217277615565130165792021789756728496751262624951844499063918552027454716689990503882884766126840834671527683142638186751562783486949086253890079935712143085674879425799688189324279803677099291087821226427814751085953028097715313476567514605024441397039614413202126379843842891210888997942009121183952192240043995334899436686903222156139308476845554290914824775559963175760845423026166670066479903366394570423130203746960783311958998552654012407198770398894746905332510189583208462490095366960547121487324191441202772680484610177249507271620840995817558688118397223659126286018858387661795915341087392769137409642053884237978029923637320808001464673534365730884670517567140200843763880970311848046936887704863588418663423806587982556811033045652381210508183237196695403476961972665467255620445473880384656882744112962659060080853922008361225815112870898992271052228674457753904702361731836714900226023960787505645857822205701686147811721501151170764046835774047906040972023613221980409146871985166874427130490851306858512319053764760140691657297406303808753322961778559156882170010851633935797635485309638797007053263106382486365133533600962368247142709242543366507504607270474099664879811050205906152005603389717109184506709409353689107517838082974344570111209954172485699499741677566484708330002963970009790231890924702334575188018692655846349567103299617758310629637978259305993484966914268472433961633790713722423982034039763748365547263928827313654120486825533406637272794481001608106830914401956336473922303606320172280659202722656340278758688494156966657256212751233425250177105127467536011406362782029953727067889828059573190893650372974608209376740868709980053367694958513574767226108429188503612664716602231617396133496241467434576396051232430893278822260646707671557994320769182426254112907573385547702916678050575542668826743772423931751395232357134319994713825688374222220085861735799888454023946095911234874439421259027635310408912546295467809928108290655992714358350949527104643426331760485891230063913866159151946174879584812702479275803884399779104934697399815657065468877154066162310951803448652155847310303412266109642652983921242492230136689375374399828937219174489535505355719030020457935721696468359533327733610658442419412794866978872703693853528300016780922231115631120816159815187529263060113703990065045101163573572847100484337481593372795414129046481094468181354126365504342097426946151345688116553402697850356620047265237998063716159908392754065835832156401906172969032293856752827667935693703759736767950715430171378087252573829150540238656366179653995190210719507271828046645030104928781996050894002680741370295275507977544628476682875618660538630914041017247596009588488176313334386821149196850117042611945432140439868620845370349949113349241915525187597621454706631680698771755518884029350685596082542852308638136843602947463915772830918758782932824816913206748722885389188981139007932391298422842742334182305823810272448247055737064755303453203134492663401837990089608089035765357571940249044352906417149340604563866822188365190438830529925173945310209732408731259686713146068532321091468144839540145452128371024609073898180848326048724180658257494656077323888960201978585680513128174633141847837489415785540572350540560899181492227104174573916596729002360301419841748010575600574183350065765085916676206661909037657663466565891749000264936429834405567020778035341852186197463019443218927710334461343670396225692024456639179985290421576053151944152533690005625553563869465170092196447577250023952678815734376555519830674363389388198924289554717536867901836468271031265264438490706537987817921014685965777520460936416398875408427707399886483784575104535530237558551109033396402030817262946453584318259925472353421925707291539374258575150369347224387220789121132599616220530030653512532517776707201527434751215458338075916329984958718275636727106929301221484080792986790684167488722041052458339850070279369610948711184792746388261006155847801347516950942223635421780144515623318468372532351454819119204741574687183286633119949120132767664494285372439771329456730881853118429793620814616482762935192358995468098195271377878922689958037437995234572417354269402291343470370532975554278324584678459598594478560410770432470946182791299678687412575700208920734016259801513776580849330801587868519686543085475753549087263182030504458872422080369051771462475897413828012620689585839965849211823163729988849681239815919356004812730383898670151186560212528834617085056540996971279708419034702495227137128020973501010398918446133422826475561308550911168654664014322079960626633402107003079347230231084971381422507535551733265084488092920739593409327094573115144939211273528903535460537081523775789706985405141076955168872721489546644194450612330546012984184447200217626130699790171040099899015293174692435263779566779012683586724093744852111444746540431306320452988173058092630606768464725612047399787347271785522840626547026613171962369931793685990642315145991219962076929476559145075278011391856444636731112505182107007453472287545024741692245692898461494411898397701108631946007434101831293690304808153110721343322953071678051010134109141134843772589881542884334256479241673863459512880315822001976796610429036273544497123964121768368651097653190128912365590154111631911708416351984245736075400300180769003769228092506594241131702063941109991561364478421910446457248543746331250121580053303552858597761730378422765564837204397900968798775448957599996061487928528537184485747327738940367433715934892670027969338137818807497598476281351305731967457681924617391334970720008638396760329086216378816895007320649081106460811244988839367513180247732850804816345434283489621677817689547180209330256263896978114216397056976966574060326015610516812637115725373861440850938641225254994047146777859328164733288791676532998185452338863236999000315912360572998318533486901016843755315172756290497502765889677168310810885936010152030900861155550069941126636787686611095762081331072630897252340931922474303696643324902154986020273809100041600153479560290605883707171546606756688779077514752488593723112521698394660234453383965557912541925896174282345504680996580893950851629855780489628343658417804233433416861917247798333527983007560395832499424984993073179050680124557535546826353178928849260004977319229977221641019228414010529154349109847106327918936142849739726110102154019984136909578241319815318276522443215065202726968221627215698538575832157728825525595615054591897031553746963589682635713108224592780950863052921980871219543862729401950498254811615571384415820097739116567242881560951370729249631920793228583698303105119721120134553269257976365297131322527646331063522253828977102475013406953678899353530811818216050572296057102838783156756968572858154770433589242632394010505359292116943858585659655352069677449521804969402846456848581140637064927674350654248957953995931117393936904968703366057798943549602763419541203213193461014464497517849847381382409671076205885100554850875604482644331461029647256678863425586222649863183735054503971358069435008145644474522223951130413251042321265270199279310671588841846533502617508257209367026930025760643222156626128236646424951016270114609544220000693271337216321877057322189278860086759230863030790877504566383744021256469878991913193913967409387987985618368326382917426892909236906370859078775586328043503846135073266114980432740745140457901141622646577571224854517853756827182423426788356368008517591655312251967553503755787345567064079231574260984107063011750906543445698938421360893872288456222890072740183540333750157838709202072911460116744490120894262427694477990701273937899341076460773232972529752078475790078299552168780792077495488087784666859116177671858668485434206634945903423841163674134965876817600048752133890966475756807037827980047130930479366940945055474783232194867194924913892050771982110147703664841278279289387505457600782945185667168494446904987291284643056806036378586918270504910065197050325182693601563412595068966531967660827483791489572015586416987245326213208486621841007273015688067456065958392460476598761302608429589714632326832089022284159391063443856925683219479645922189179230120792998588544384182149318984858384686722669094552777098142108967510608866236134656817038541326790589280002446472175962191953764254616210363856657178127950795381712851049173015080399527232725236107580132005516883953805911700950483773859375751338343065150570093392589032650130824394282640087776300510539090067765438407487365092364880397294278781300537190599059536919268243249539604922101463772085944411105394108247904482893155425500860841425891600440490508443117541811769340735752363300774043443921757274786144832434909784045408108013000925808327297879616846889556187530957631376026465955494087563538382673773044671446623308917124743032418278044937678688263669291909413772990187313288574311216718235449075904852050523600400173379723052383155305781325320981656916105267297458258092243196865773768219219354364968015847418396876738479152420526074185544175204370695491687610630182279848161676909305843381135794025926268474202508346232528801006984978427516100493657486294044058685178557444314173078375750850450497753963546025331471378758059796103429278193698741223411311590803227828870376610864254809334125271039188817470616141345014761613379624876685378423310535243742555963761373781714416492430729144472562722490651547663004931103965467672872570107015695348870224213251031764937856888039401240213104344926655662833302247229128312803953248843284907387158195031831434532765537736632426734338769596058163741809582503595145325443572116419725763523833912955439492108165272304003229759670702360026640343358703480319346649366245131877441345448272966957523558320412589863505504124549191528935014783040939572809520444245717944520405712676305453004187287811919503010185484711577162076785935482714139287241395156077702575436307316220831387155830678540736425751658827841201335422553117853934547398878936266786338487454943541307474994954186520279525253923153673670459344919605173282395628300932385078420491003218570757304977042978419759936841109240071880035103079888984963927638663063992190567450428902012896764695575556520889249587265157598438817716211850741654944980620521137527583552569451524610661275973664755248991363089940953780408205559289283310825982692575235821214010329385676741273821952529087952658787240454054776413236278271318623940154089866446201387328445968630827211198054876374570732930322571654689318668189927632188980780071432302195850245418139462228312157772665721723942460387369252588107216905779006115959527369376003964334387857999459049396059126921141671931141833831519036273307368253102987709220648325130217387880308072201599936123871974171526808424589996915968110258161874587607905299898960738686460578767692361607310493466824740160896276077033576413685869475602433264529035250840016128812675651077034564994193424804372638482205984206160097054793732239449032820160651740296190185295249364296250520855452210230334373568331630640520701415126581462187277103845493689528440252282226117772663653116235172649222275569877509205385039915837566560810091121592968721381348187126949020090401447060151182458944265460379046097874451012921331425938465524697018212813868514370329064248460100953778228482229625127766251401270090870929418637962036013608132097758557912287825637770064010083336592965797712247136038568053368157699834540657734836439805823383226046839819928925781143273328769956505364590896958841146105451315578927249976382449966857072897726000251838611225996530951631538929787756129109580290770212969074418004129621387968523587321490076431012226304119229864914752892317123436140985605447625518597599629574830557852227171872766151416338852368369733360011049870396556167886007309917006876692673116008196174451295061088738561220538076637367591992119971092543205334770020702563963312512332610831838566015682520199821750777921060672744774396960932762635019086922600070886262354620428304866618369727821452640902694093370564564280654273075986466198020241542587787324093690658462228991103217903193263287723673535155083761338953617859978379640032400889491473497409401091587556278675858870872687004431532401730557005598331288133707862158537178396360756951469375476942931942565780776643121827260656946073924902808896243748959875405390713969288224244342498840575768515777048629443130975049760049203602204492574690670725427703131230216013837473459774708523284265290155321356737073701588011852313064725003576730945280282464981597080327933393406061397084356309146986065953246131057298494700793427078391884694617497859387995743425799253891744705990455790669346789459752695896854838440498247744389040902338909601607983682536571357348761268033154176788089179070723277224445889823064033886969271007526614299536333692626433567581747836197112379920667318139410330353686052568156890769793226594381349579578595705341626816986242676843398492492494189632430815215032540360372371378872381639196448902174630338336742330926415689925232144527499762319429506841581802673661422825451834737854824185587183328278282661048126191978037422720624101599750627609671534311556892694815047570066713096404534409090046947336921107635047588602798257679403062063320557391870465184617641304297223149476216757576041599429965334722042962649768706493325361903831886572179457345120475288222382576016181053678053060648330020767816951033247184853019943604366792620895565635248517264603215759502753425214359617085342941429257754462041739351655798048001283202801231055818395818568125937333878805075957019957657547445874287339784202835084959715304401956361763800798942690637802096037474475594958920730744896994824670080932142504882894691102208571506264107086491531771314256027602866623034247331014973060497582390591749939402705372598788452975017901280733265818284255598808284128736695302248853486914170621998220790262048090158310135164538889359726386027609986960915105631754754752544374561427612617763450605640752701077671621642334110078400812906776295116578093751713179335122112398953704709612057356359080445933877223384465863531507101443829113380837481071118153037522110220783760722284662547304917585338609706257905395284148616589671555019826575967721561954145882846778891757765051348427516213197279289665017636830924000267832221250512996179724927702968807262559391683779867954188254337362680346547507950433958778417859456534166118810684169903997726638202773066198749322621180253307421128891111556595457953934975153972431299978407297108141493527135243416645505314643140165239805676971968477098948747886367305316827388789759658063927870584545437309110503227136438978079892478990889469568077951395387950740223532575601855034628807085941740972557504346069878757721202214009681610262247288526289418590238481961219202293649192916921458376518755843555629728719154532124722771524436499701065798860548373879542650073358005918279790078840984262695731900131738481713249916663138244902691800272983749086481319023673951727087644226385416504239774057694517453863033844856483071917772127810473253155377666539670188840535994463779120111685865255715916207947335093922038347161494271945656487533149109559023924929928232863246858114007136947434536843742665319539564908544247106328408616606142165493840214733808177578721532430001918678867548581093802929533185023669129233411456706063209620556742790111966331643157050994169223162358607497260596880647371183697397636977158684710190945241476345476524274505873877168982497680523385369776486415973423170732412006897748770812129837385349169831139122711802508816546045638548035316334086427869372241461869407718013095257706827330380748766040937931347133192468720083048277078999277731726891058080861869304770041842110254284825334837111853587168236010451781465333016064926620019378225422978634671315214552568269384465672866429659343008368547487815941047552689508002017978858909255108835484718796630881788731178690153575993325873532677231039713300441386982329376534938808816864849932973231542995188897457912835717260309174523557484891232978090758179486418207141331984571903544154032923139160632790650409490033444461857725142091480086547280246245244137502736662764113392148371261227430682284629797303466349009699392543000939373585366806178232841400345419789120570765984137144099078361976125898783036753284864829837538528000358786128208601195793312990144262644805138122003468468806924050617396272285920126229123538863930162959186396450881682106310467823993158473639380838371086145181930456628145479979764004681147582935267880848074536134933941416281025530952216931557769048383806726131766127942809493459204443649852868227713910018798066056696714313734974670462143122191714045278044818697805702173228071948434857306698758508222159309437317164010740704979813567303413252622472268808144223404213920534154335060991808543540718299191301679935232936128222502614856258897814380158647158300356589016200726798253627610573256284771885990326513388190919125627571392314931560218440727091337636619781454754435500476205626059017819066331749521785334917580823769171423399872628432332171585866306667969651178893813762612783436254396160760425016928007844180603871432163219946489273544033961365776162530820278620675680502880996063617316172558648701701306374495398609546612233785713925317446616957216502200022659793880564190701318092346894321977792606986349410398407617393256657765195779147258979406196539578152829477889382520151718821769430904071347955053233932654356595802397294496033812120711064593326318308631635080665211059597806278195528104509828044752965345643740861357136818317101321608274471310013803945057154041650751912268514792088849060251594587483856101332452599182601767193198947453417125075820189273072029314632331765606351226428785048522173186952791758898971706424236855245544243121049348715082035884900077302022102864184885373319523037867635105344543543376520315490213892160479774120907041469132815123760714556798791167239640666838964266014030752195184464488179808003267625678910159991250378081641993338172179902678780947008574627831675359948985427482005798589463904232821552104946021761212239320805236143366920025931158820305880768957505615635812510557811144086724698908217712074188591760312290035878883679796777212623612463328003188590410629976615884710898146472425453464368802427985757474347235687703769574469522850461508148309400644589409151426746169068355915786999977699302635725518891377773952476423305867919846466607125235604135550620524105936638853799224842979284679840863740126637727569185966772106284783398401515959363488282997589707956571227863307064403771393479922803132912345964367404091248425966586444432200895754374609738113683449837229192701087204264890415472829895307610025764398892182527637608668570266779048431639026433502374467806632702554353947004279404703013374411072107061262085907126584057947629175152871250348221663102824614247065923407660749077405183525916930621602004989953176888460158561740977699554794013075666955277181174195627265118226491466891442993728847501204722526500055165956700129329892065505417360887867091296316218037885258216296022805132756096004880626353540206085056718365229597741823392531582036321528065091645778735133173051440331694152067754147089836267889125979926121383978114149463003289420019565741470829150012227300740533146056132056340673135166890305683931554238968451936284956817478197215203089451749224531819634651628238228033149168038921089854916799693865593212269696944849407295894875420961077031685014998068123493885455169961953169747412551619158184247578785749856077097430374998586015176438353322081843334951286227413157006837562126136272203212314063191394981663194842626604076536646132261206605980214776626255892766152032634882027202150131139119798121978743939326821081009883599161365364363506889199237844947073868337915956710184684365170674037592517185225832241328291434218781271312299159151817164459486195584859211338293512674530885516452742773993324445168500447160888854808911390182465113357924282419795423738811095030131793827068217432753316613972524870641915335065887460969334900936785375213663404640279326811768771786166153101839761566722661213712081205674577803681889772455576690043020988490983809594320394494170260718074260993325191209651223688143457081355544987148072978158957128979767732585720163502595233404364040976965334846204585983624006885627518368618597691088599921103842304307553548487946746341351889623960700003839971381169876593340567863375624518310254991121068819291665665099810544898085866498036813500034714857525604174310088755714683370120918993731874879873869599525281327180846239300017515067120583290251661113967987654332815489690668691518060400682563860588675503910272487244797823837861783844666055484123849125858595194897470679412466265894587288133844979986404950244166205557067984313603577319121905126035248200313820177348886727014323001281430760864228192377995439387808265123634966697284357840267823204434426471505982946079618089875331269561138947455729668679689453922461521662279552170462934368949998726092930244090879149606468771835014962672909066984129046916874799259961581742118761796440617374497160960333745221820457902864460833204716825292968746732806700371895226022406125203260288109482500702530568818248441691009362417040959720565570095975563131870984069738814455062821631760367673453372191184884566827883041024708290274381660916596240235355497402170660536648986340726477863146194651699538128490084467675404246445615225012620465596225440499519310780694016350633896269833463508830370992514767857840326939137294509976409344484412062984395080754787250126815360249746868532070304976966874810845478362865962218190250278125959853624752142986900012045890182041049536082881582188438793768290527135571767324702289189176696672500961473913891312240993578806676174218530781302792981852151632862049738626042781124569398153871532392822196426880290601985684842907560799808623497604552259043778938131796743897518810588207916986281477548399217633031329803523764509715681915285817505926772888992864253545510959574724981745043404290889011606363251372746932912549207709196435801865189200612543662391868943736211794288176176851275752420016748175767153924689771505509268708316150631638456857012815692178628077884248303196126074247785574294392974744586257315764204672872518984317100346347334889878514921107572311684968906644236273227809862436600501819825415693541475693647562756713067179732992759375105638894672066473716995129459156030399176649833853904976568177436161943184326990804124790721287103294403979198104781725636246852985065904646817390184844833158675025706665656134154529044133809391776481088671182362052240361685686027865926430647284918381435426486503598877129305882398312948443278479576183477059772000926462826094139464947288465440216526925074034994023936121044327116533690851460663111809028193471584365128638044764776351067723092023693837826246923077155643205631177280121379737411595391531625331532632355937584141368040822952455080110741243454902970415013160786302775799797931962114574347099675121395702831322657839262884734538162399939294360786131188072397191376765171170372556564658556052840119966572632091835545067721425467216575080426782772104065704108737024175361687731104832485187201729094585497635019415401678679992910280471111743978952258034514130296185898718709847805365035653474693084541048167606489770421521683439292746603666874297000788134359162488168326832929892694244185586874387914070155264341780112291885905306234984704739715697730991382057643418180902426460712938996360546185535875710405164148973958913175881798705854752676927435910428133721764290713241086456946834427466296969174848783003650072016149260121615253405932889918004194607961870555940367025772238888297346255716305990198111641482091512479617419118919410031638547905904639340482657260082695890822940243624612707307979935836133506220556847408223650025806473345993808281974408739255748326194321767931318796638883786619049758756949527187545357622716968003443456787518989560723590146995010623347032457627219085230857639839455904753389784912480398865314924962165641352450549877375941204287759255613866647712198621330656535551238009471007743851462975074967950562272941218542626487662674307219636758555036155044422338507302906852989815788164040007179664465957777901813655272805057230716375264083874277880364290765714774867663552166105586368311949054550642938097937678311287799903015973901273534059781254393370162783901678558745882939583530867029636370835031066946824868360770680684316415587926694983467348584396536646308016414372192418002774853333588427339926915396936619518284208431716591669824326910491045702119712328972393901376719424574365224210166801275132822024733179339376650973070287174581879252973231943307226832943782654713267363871215849471856461696175584732983065371499131870359513645645679912787936690784882334310940840812908994575921711726484114373673026399350298603785154116474044114148097975492790378695728192304582264204959960466895338679910148222715242444945904857755233174053507021893845537041424980074543049872529191653762775193678686604550508641902135931509667362045838647929418240345172273499438940496196831491573727424726344655387039448713325935821766426505266662331746220104531192303859028793893509763007109234902709281999579659147358015388438818162092610615659336436992864812569434196365203542489457813083066950560643290388845047419539613712449772117566775518560960675896958766746380357371997060621984661605038005495435898684593136683382916559892781553495553097193819604105605409187824055187706618155180088455624758046983674219305690266294608388843380042075618805837940648319927586374097422470601843971647677318946408443204893734089884932854950018945027183128368848847968367357164300617775482464168294508869261477096568363379948629946641309916341109829509480278858207814767634387144249646195460880883159252212695999382485475844649960061232180452728119942740222999878432128267501624664677527694766649104617263443521323827476777597883910738692543955599303034973438556353222405458479927431749166695226640817292981296830449403987982979565359059384083262853320151831238610828447624486920037954680306334568252452006604362196225082197819683246178522784312301683023523678141233386926330428628022618833807414352066216801298846757950975688270189237925112377094160614705331750079551688980823940327625835625863356519921890030585819014293659151958882007249731465078852674769456142291929898180452253531650726733566849361500440774484854014861143655257970247611109818851573836195126856585222144667385506336498879919814846685004309579381437737028417667272961014105540009885346823420552119443919951685954781183454453468329478224445353886835578012843786111922972002831299652808522306281912338441825020600573477221067955675529011077147030376511851887697817654181649098298621461788983586625599835473603239459793757388606687155680661198722537114441826056491136604244603749108788500934363693691952300520852663906853496615159721039800397063332785113729482859570448518870819700897704253786804060581805350472688167643089751634910777079946337754430565320752416622468230144636822156800168206185640520894107860622358101789590822276718020038513567582873380185691401216955216159110455751850166512170995555085624863062856735739910264593493052876456408671110393810057402086259258241436026551774692495071998889990153837146897096314576571359364341112672506381768178807778178055736718403715201069246176343673233266735628016893562109415807308614626314831486078752199414043882839683487929324021728766597189309380560298612205074679370618386637145270521430082932621842052954916090819070902546929833111742349295012321195128250223144603000343146356773416383407114425914172214008026662571910105168539415100176790401126116853657233537685366201938980366591214640265742978684772829344793620662653794239041825668073138007274470939418912002802307993800841854149200134692141378164926348731465092874936619089423595734975343601150775100269383359277064517762990219493319776595961012457178196332295194686664726194293320578333195627952319343785077425530465652888797261072258105094124471915801493226438161402789319440553948952222007892409396733791914884352953080644942866410564990688381296458855981479288182702586310312331932520104043897433090114761503735999431243670688949227486002221308583236865101447059807597990740204388487213457202322751159621665906566549222258497365098903393174290659276469891588315644332992965710737332250753860558522347033644311152238038216647339976753531626085736965365456119744928682547382351931116155759596258696267973192554679825373414319300575100401413921988190646400247270569499726753767920457982471484972484173032619904348290042161998207927305084607753481757866904143585623827054217753624389576197374177651530284224017046447534785757148362501930197903958411952976128350005215119670896875162798613851736770457947811412742560486490982840036040174076870024659359361589008415922222347159280644663420435054015899788080465070197695411946133502252280523171942829066387546586004288074182702384380958289013556135758976290865188719238291905931207294754016357353410028394021552987143362874555492761054825393967988485272434749908865014693978957622171988777590778615727640553602592454293903188800802960116596544980391336951317758771104185988580107502404692651970821304521910659487292847038779239685054353896937672597926256832561674768459422243188272343370181003233763485327288537220609825613129203099121047978773843988422670296605758892162850243076339660893931496812969809861020880536866273620186505810007119502801094666136286943695657355698865470722553655835827228304301569071311045474180097129853863625582333333319318676451410205737628260167809018765179307149482142943975162323348349320035153970755343393236969155646746073932387054844104133087858345459991460042672421139717460508165609851707666984523321247831672951491835088344505496246887957220359959644426220073224761487892613183306984957488402848611408942230037235755103769951071940662360737186341521632934777321771399549236739075468145164108859725280639871365162467744339753283122238472163679903191231698692804847456821355542486076127472739675180093758740273717794644529016540842854744703251826710495311309258025424136125213252483065619176976436805608660686302045817287033584852349043327083901959633217247676406702524530734650472487351468216192244665764826796561108184476063002466698745878781287269012358275668638746863627905908056003045738987036155165041863480749158540852980212196411626330798623562274072491078446146402061953528676329641272500295263301265244720265745481698581863560536274189578072300118535536941474884288814771846994775728042114085170115016127387729287336352173393611794509264141561890794939623920578675556654340426497485469391688259136414289238738028218987546139781130441820015535111875485328206867430825610326128513183426368892637579293454872203484548692697006172907797378688152371350620706819246369104117827662700915124615550836894543332411044516212251362509099806493857653314692824401757943430764483851488924804582443152351143686921966720181554048551679326135773895478210684092182822167594473534727665666854823886128536725385353482847247023852359597680826858905833704414358150918168320182161588935190172335454419151164256726789028108358857240140092135995923246913883597515839434582788011119244094480222776326366910377885568079566279901139315955674764973782383259494212135160071523388455186291359046786173447031096360095023003285474151842151961487632763042811608363100942662809767980921313938137003560667520730697619578943899069416048252890951620602646717417873201075538141841417429696416051965719230360657954501426457881795400882476104672525831142794088728498922197701793177992815522034471991025931877157496773790374730948543965048794897200165725751247773956475037750833020899716075109145409734315883363694156998672664247435050528084073649997199295778253710678062901772424571009434909398255781760040115417439134131906380810959564950822858489935285693660818348837818893076867655052753618145045926481984657088963291614682479906918733942997734268803418626795568200544521821938183090000028552793751258827215636809377803706594864812700750850913648306063975389882561364202594267279522028636466033494439834272276712233927014610749338935897620726783354280967111294510609493653937017298951944825822345761281813731829233654686491060079613714618465506561498425329381881640428718691541839830459660349967368275654487652627112444914887596752174915139523396826648979965838976785148655924727943154578424367039612818759121908856418461483416579860626769247791975626909726791624451849883496428103681502517637509307095105726097913730499379808565300640050943759726556090991242571592391537262138280388729616340600940093505016543095916555809858554045291546643411766645621050164209989498461888609300936971394605554293300268531366801142899496318775085931917542521480630442152395549028876471130691223341014778511520404334915078087083901121842084492008880979191722676356911374072781027368313646782315660059331153421721925159052226004472108262051323403729775943588427883372976048751477759682633950022899929349511250193018996777239219528604895026773328892558433603084995402519607765994677708610345292494747664557476394492371134417161345047463658082972930189784054119252007905581672613105880421760212475847949230485737644004039689101101620986561886009668336094409908444883785982439384045714881300715951530207212542603971090880172106608846246044066361440551922456777279867148160424244915906202442116890740534301230913755714154832915837685004562351825950367729411841836279341406206378597062808495446289142175808096033079420387307651942846148497760331737306843303572278459891282883953276486706061599671246331075566591185926816772235703666599419945602174681936243092190975671125206687704340336890088072684574141466910282779064098235933534203412253617661447810021250353056864317846604862312439770107504421178934607687732139078477153048145830762285362302824264350380582174537356706271671632788801710851283387370877366847571010050354895568204753392772332493169363688663580680473103002308599938665538108537644917542638588945986199215380284174350088398574161695025309306470408418268356887544425165078506566433052746470826901443901301931035463549730219115626205184824032168609879578626654868010063566656005823003775206125686073809935180793870710984948306912748300495541051779362535048813183622714138658296983060304980172422864403973972925195135761889853622626092362081261730851395527648471840819048716059814007784356734041121972797030298194320947487224904108938693720262907976572243768246760464829394468132006153046028098773678181641662116310216940482059526897647604980868642057428528230536439574067592064066334274012457049467189301061812384123718398842684852517389467189627289660739794405809219001341944468070592684225991800886282148355527906747633516618205484156886593633496879630652409703772321862529859802373533874431120045781639077516714804898652804434980824775846633037638166373322769623490221587853003910000586616588699247702106702243518766040712211792037543190353694814740775576487565638173685381475392363311070606843092644202029164434804321688235583940199914508982318364881583623943983847773892989788591887422802648460137061407167875860505790409217495907616520060231330674454594972566426536665007219543525586370717645572309986806364878228154210108990204439526296239581670024556262564898310333872693807634240966195466577834162940586451704482661952954409153551789075756418356624418382190695111564201021183712122933881769961754680906075602655011100541957594117846662832514240834781416674599494425006243441531108755863104797072749724941021101216401096169272304184464239656305116905152145097226115431429480388124266009246912746705596002743119916234232398304440074313420474634554732117838162034121053763437612711406106127966410768014954492903055281834431939658950957897689072481365598807688895810194269467803654320521363661120095251264955705190424416117138579085741135001623605051017840010307988001944334624249696877063611877813428166433319339862864941103049741942857821555062079482790822158127181696383631529431322819113945981986949479277143995130020424593968590523260407239535638497870428047517930263751203712830336441396766711199997962726616677018699887648344877308256907091654718713253998695199287400312525277785047171946684158367729966483519622316831257492060567204541226297283751092822594514415032073822532144748749221074794349484224410894823470446823109596241262366187518721582901481242474646805432992913773492317626108230514597285595692234701805172256708675147700212644534058104798516530981344191248062568760893271926825255337649621076281089871442032528880045754535028100207755814113362567317582381855242795806031700563128300853755644551591176893693536637522399911824168882769317452555376798283403070125560798502811400543257150769669175353228170662665096360864829063054186338588172270259031040728498993640296339544792003011862953039202356788662280196122897035137576338020259394514312865588643529892068078140126745818136105557982515887528964864834902961054544496796015652779548562882513527963312819447766170455195668404665942211628382945022118918892679317865888340722811601524875771365035649969280855483826333707009236346068366832686030369983239029625775500868418632912153499143760910470279578485632018669050394391633851204642517135070306882971618437842692662244182000080383388385645088736039207905669480912518550548118952571473164365217895105993322702957839814362102844641131889310676799541300793243921968564845804826702245534351842469498435426752261189954033421402476553948208253622978559274840643227704922154791413030198766119589145307320699486681828495190672719311552776157599297977649854883349639857503800387686580746337139001216034894127136446048478929898294807307417987792187016707508404292660478499716844524960623746828657528441118712564843430812106239457823899050381162675201643769879151041661299230028138200055683520141214782301623444953348734765786317214769771543531376072931084281463101657248705066574927852196218661200558925665284418217098954789644548556170095831995546319224027675879888684982402527583398666047009071174384411472344529041026470302821713428256847540504427401407387725437633461108204941242383003267437274144808673368707687094201107771383577602466791353782779252379081188350834892745427719641475087916096639210385231373624685274543940536555010326759876236797279080844448361514925746159728310827739508020418104470248763080870597827994252942824076554960868034106975184115269860570304759739575757097549326209309491640120960418414393286915004852827634727877347775285379061027060835208983689206358772718867820144264761760183201442621071394020209773773853396910871283209814817247498978204169864066439441907271690065407819946414273501455671480785449041583890442962737539033861960923496077216719291814979403984641988980121522654207426647655558987440468296893982293278836497886090316094061687120899706495198025465870146802359227671604436080715908736699908111907933776691314591227016377016865435824341427742735378519120350863438440768991696570141124862308953956049091604703667951669294379522819937983160045367282723297246829448707551461669965742702398674162430361184954671555128755029752482557124292623290082019070188789149420734595010647727755471510158112090180400687217968600659263765671486827034917414866852122411547322329557090657853403110970190628474127319078481799748734866511328579889798878817133907338265201799866584929471241358925594078610625413896173031420416468353541128925918625925742250702112662707002478910177624097532615903029701884691894735241716173483601386825512064557105157545054379480721737459874048995822921906127220102289355185576061539033844667011633907898997380724858178837811089819271525064585899917801369301874340890276898007401317451518746465407653862190764482870100630469834116697931432028841377821625016711895723562570793721267572590144200221080017673826883649409798765507097716033908802702547141760492933057462043962198339070631059522916904262318530463412634671163914700620424136476666341693828382510551942410966171856769603039598652665340142142612963894837608052709384291120103304348409075956540630477825486420438892484357878838154854028831608136124919932855051591475212691415382470074676302478574444866447466762239646097370488637513636519442153977653224526275694338450461685870298675099207042261159461898480132364515035520474798551295224470212458919147012158732376209765623092956823877274035157187989923607444048385182318765002758028059875133488307582190733934621204951884561581990766770596551079042946633779332235148770433307445388330064973344803870887674088984823471494549415288024983189601543963706104518131350837214486821941465532591140046068573088917324124277910376614730058254171351741397673296758219354085312339682140718122617422503993165975171552827803849789636522846264875319034315882973402823895856102252921532776084875313849709168275781720203189467266756765984725578578013081511428510734821574271254100235381738952584267367781420230263914347771792337146094825337067820710518033154297293818611409850153247995501827886077777482462016061631728108574718398888899911265286852620088600757652765544344760566844470213919142539703847937227309574373390382746709578471872325312564773726776868855141258315742892360518322496829740561637682696100981150835676341439944231807573604751867108517378901229618766737368704096538281791984951044932356544893016188486912254680648816691699088775894580764528778143975901527672837577410324955130760259662935822456002951952401352646296347900327102673112647144593439988132695137880958475601831617086555454291304780773900406261658493145397350961780713210364169439505007268938201454140956854481366173014108046332722550593200486344175337407970308059328772964114023898215472859914960259169669175132562597929021883820880539226192973172332561988143211179859594437871052416820175190116812405412443246946019595764407562103586345830039711017468330855501452178740301705059997569635525750399046167966131732631436626897870293271117891493065195184079917148421171305795424864134916319589606660474283634955359840090150761960081710550432512648015535375500654046172393577207619047352580516761859976881974717918159393801713993843697467656474926703548111982264170107725929997762595389471740865887882101514168601467208477979820399357401835515127572799148285875587564086955697306056393547160694103584419350870892836625848540626044108230949663759870338896959613830080502203800854191500821419550169065504312417114046255429063139881203992615298002340431395586393387311702673626302622523959766375460229933476634331723474060528391841478746603356412693241955143091547214037028493286505490142538563308280841002059298711035352232512286525419184705221643193468553685970363552963281610653514411879773400123813355103209435277468471112101732704906571462341570791351336569079042119048773598245000506604136574360149053254693446321287328638497669046086187755695299431407199053129658112417745884612810174630506631553666730636519787397693077142455751508646977589581976882520028445544078559028513335627173892433399976019598351615243611056383529801203037235495666579472889757560914062710140658699804326644821225334989546335447446884019541364947403246771542574652738099539143300293369648441052108789525814676721938234348753271188810549246732579712519014293233957643848519422966750283749284852437493656484016744074718842293765351922709391039172330815527928685086644867357853761562822009156775252954203939889012448904103800365550579594200457000292012308547329843557225923995892189336116165193964538941919504887024117178502240671069693409855424676746909338164378881386474073854276049043495653679088719435333159774045009799779214489443810251216135922242740471519011418211237172159304440622464053973200037067467183338261264054630013687542292160098663099927163039099307760533571974309441979013727418889642514692652497448196185864938879495729262532923295822390777098158623006732594548993046218392628765848024921850354006025722473056393221161619231822087428688243554800796027037193160620862055305646014144932435406428155433748707603738437506675260966501540235976244082769377135847968388789794138611434626116495233645171173473555334077303542526977888673728421260433333587838092139564793304922767321659204774628183493430344354382924675335779644180100445373921544485227493990933232478947180200621757862930409849269990518842404366123545666181783836592202238960267017787011973190030204885872452143108296643358574335918198953024451670690066449697319279002037929578608939601957767153434166972104102588862048904296736413029023439598111229021627694156094869701940003251450186574633411159706623717459416425815151658793563682780385716501381841067538549205314033845614300870646400444208884024935466831308988951197819204788456213646395449025273035040476615333929606792672772303401168502491673697852665314461459907623279718711716676645255686959450970316227317713312386942436283195182405285393197117552743172008362509748169794588124873038261895534099940103565342859594685654021952100933458902101777841542458344454650380367543624986664521722303141473807909899060293422036988826225111552060807339528359977837130823318894960285212812805183931014715395228631438249842352399635438695725349864381327179012315071432934888213687232672667915386235517252498793999054151654718837890569328624176335401733926602388779718183616148068192904438993945197352548995064251793960619074926291964739368653822022089859180945227368809292268658532481162443642441314993444187579414741278321843523247903845324152455597652557158362269843129571732512579178756173243629734210789460680835556616124504460414140668579320929439998233238689907397072825609673123542141227588921312033981610996072806851793390733802482566221286120092445355860307899710842886042274514128634526980699401370604523164807389152786654618393850109550372825760108202228922095153197159997626427296825190927631884502132870168220368877119328945266020639643131412277073045631368621369951101476403350289444217334630570063111393679863266592035720764679855722261164392409215602001405659027750278534304910469202628934446063039836555499287265801850237578482637074393072510615584981402437328094890005177379219110953612831216901022360744620199554155497088968741216119308337756818546915394083991521163328050043497486899310958471239525904385849978633056733661651378801600093535828442872444688845543587611027978691348118838863953236783143776588994475081165493918612445054150578939172780835291639067104854711353708995600602059187847910839802928432024405097463944514634383003470908183303827727863313370368662795476944809554514692341154845799985390485034012161981719091829963495825237957703733678289972247111623466989532097110992847677889935845723094725155810753207944600227890121660372169031907484382750407217909998392440764072104746365968373268587413754551045078246583333591027688800432426896066240337504601443437864489889912471674314497781081080247763700055194407107505461970664006928875214564485105094262801892574597297331755480123949282933702241113771903310348533411982335659069491016841451159860586772431544738749711446726872883781750661008503396561023730606648617745403811537468260053614511426790739886621700248184529782904449091034610804554346938452153010664173385597025012615668638360435774984160579194198207954660521026672506778535795758043724663589714230964174559807403486325953524928434141589586834746614413041714013127726502679677336104521148080978632777933842732093325664775480279481968753506261099832971616924610759057155563339823172436026421984759241537219147888486500042302953101603572731084244095771144822253925598120439145279831838738001283155007414475801643120105003743078008279462189656440913204001269598280371396541088761408073430250467261744264537694773445330950565376877913406503576838797443446755091097224938128259627000226581673429548941087386648938125364223548294790396232856503011630813284324960614570166716651104206309258235671063634332830917627197803868521426913730376622912599626845260531498726880577477831090604118085068894510467264383730238645118087976055886593721618713626665675037205711017629188245833043489602325278758995686973780135880441954930549346857643945698701415665553599563331098393161688457387804996553981672920341652654748705940306914186003854696000896688216792350506488363865035972573284738778173570285021166565286848335133486117193867656430693571731556614376968975913400171284341316093284605647378558505573075399945201447467475292795810507167499034371384724694891027898449554350473891597484105827271817824348995383491602627661809574113084305888121304568318544276642285882769045989874701660257678330761365000473907667167163865276249405500298104098819065245976458747197505679543027613331565021904709264435541602625645997840253150740942645117209423738975038101112178046923650338317851678302321322289204408024428759432311313546618272295394323200664334116126676417075939169285176761841923763785704196402002981560185290964798702204796909533655141840251811885248022725306757406524020999162045435363721761085244987324772473419690019279602014459290174467727800282610712759982263720319683952111302959224923078654002566502722842725446031704010998934622851521447578455207408544826172610158156702295937335468782686179576540383944697399213599747963355823480522554244264780553525770481287806120442791426749625226043504090814097125846157834036479415259414488869542897670475227404870952118013834443931280789037022284617301459720573038412013058288189294498482516440573568570385052021159219611070858605522583113668960335202840156611598909700955760172126121785395477917299844671761579924595586529626182295262583231854855214813815667678736044032432645742195695828370313957478565030665053305082519786006629099606629982808430603108809788439520063783241080733806980417629021985934189207790246106226257982146573630334684030748829789746639469792991619592540549472963903354038738531454302546533707853385380650337091742490982558866587291605432538393053471650581772147039521442609451432091316545959627846298242740295711773941079213458773485349383971131174639322950844145967674815031559521620011551798750300028874694067661920851109637615190300428289192333747889953648838926710427830156678437068010230051154771775557244724179908414478110971513080632240123791500589016198869018481125472263755073913184154216173280860382898036226322125949050963596910831025161008711014051847622708111003157059653913597175589485711256140751900736740924360028551127751613395939722294265430778777387754931341961003416369895655997548118969856612788346379149304838408897572826883329838540256794391747361564563620486093245307548831491578069950601318694573274215257507080306635375866332686840265145715536130466796123574644193678071304851424415056670992591808277954843954753229428769161923281103289571465877832113117261599853249700023916530163393292335642298289139613292821811150581197213930625665659902579284437375513891373972509472456578941180283575820068426967220840259935800896586934790876485960717750702004165901816642790436537157177912563492524133663050781359072537547182153951033892421745168725719400398237539661323662813477895238814907941729485367134770305917195586420872597194607733701054908424548057787629435280338507369752860912044379377333028592927132753111869197821893006310925877577443294181130428361388482858470166530052089137399703827819806044440167144994088155730557070835466120797831037566814585788445853475350089638258110932016467980254642234677494642476739225776738379625486044642769495916107454733586823267352492534922530307379622080863886089809078761049388145838610276327171904418134509674545017880619153394040665391678312389100925630410585466092224332094924607629694753319168776068994274953335255838913324241302998582005793824489180754889023224659833681458977498542816678614871703629216125163157985414114977372786073042043022417457947078128738556921224507931163490187274259519221967675314901965100090007560657181759748469960811615321644630778574760257266531208346071449331881241988992471426089552844502453069191273759787227661339491917350447702475303791910427314665238681766914724324075044447908265986340380878016005521270524944817154906662103458657405302192816856261318085462581531953070827252099764473328976711011915991001889667532111340110648652780419193901021202837628986322744940973499318678324466173187400702090004935680532872905014356038128869543704235344847083122022655332294598867215363660727521239127003881497061070293575387318750189493624373789174306864348050174565263924382338426478210470823924374246611620284928209721925464188433151616514117330900963880266006758714009261954076743652711544970441607791130797417435364382403439043652681231569998027477091574279019113633912042626022754618160307751366013797306114588730649920745508964241262863228404072420408014812509487782404011768428951903275487480576673460672145190576962083187413792060368888643869003240163564272601652213420143671231046544899535147086933516073030423942624869054119883464299495234181814493863397617818279913398349309053274571467410149924239572433838671612184196314553776534661677709210112905276932391351826731421499140898820178257866005271068629559739095916832620319797091461357117005741626043797869093513396689321161241733857560733132496612411704619494392250425417969842101994390941404408394357674390021127715959512485529247388771411393331472580680669466635210633910934536849492479397611146749820281476401827383074026084970572711847794179887717132255710751405149981752757651392481350039854546148951048242628818152118340528434082914772382682872313666425572149680987993907194521001010857690608995705962274398278773969030931951705016568720308633770201337000774981784112675329170206868297495534471797229023272952872901806733596769852715940595848181436296676150192696921798507681087111940865693222175047439821840681427571958493481284544512493729617791456077081140173045412430795312628585929532834524237803546108039323811704305253495122603109945483850628513531561280213438215650682810649383001268429383471651493312748109796116417212098622977114686721144286832927283308784737925293523324144519094330832981679531976062112013082463260456293229396270328663387225105629174739796460317957572707453741091237265628404111541421477837271237304199219382731535042336397201453995036406847548792153625240320894539283778233962126793077056778524439731083312176710434712715918959684921560442050253949701597403492205656243677246736037869168000069744599169961046207727621336608872520161261956222047944532333108438775591048750589573321946789267115178374353274041898049821441205498191715591967187527436068001398235708411308454504598450510062987383088588432083577692035317718296472648324216162602919250615617257484348491951250030172579831900622499036547324177618717238055522832534909911781214575997919339869897672926818782489633121164443658139494572277514415263307506751977440347202335342530600624158422260882782788951642103052913644266459972048448101723722057191455752544547606905937795500603030219094960009476912820067070596067510541819726373181883151373719690096958240744374107447976367287826972062940507672734132912633721814858279564167410208544151129548308191354173324723185209634973480172757784693749642872647402934887743983202639690012681473300465263495709107454284504030814920925157707767766772193909952634611442206381490716590146161278783814087631902517147654258493916015571053496173898760391055477088965622199614148662829896481510360380889272329357453857800465175133265642862025250827386633354485710977653347330721503590083711753229969769441199095753417882305593997384575591727783756300839147432117076027355938812567255421627357489588155148829998677281508167424273843926717317096923966459970073982594069032985626626281130775538879294066185459499787572428331106216451037364692081374573489365489118096055895651915519070324857836428676115839275571474628454832018710200027590721383518161026975829012939923338735502101831922194097265268713198494139804153537094935713962232728976973511325378336787934052564449124097809848955175591672255350155289270304429052212812677013956443139462100661907941424603590558320498334737250374174917003817120152222376670056946435095384685468012270389416646361075138335496358123198279754067576862281624063769239313550154303156780225955095687539413775508722930458613347327916288922218464603081790819059708260165166137102270046567948394909785107490030981456390990520933763138962152868384351118536135234447767452758781096027502523456915156828355592674840120662878143883710342121643734190191479836210886456069552522332185604779467580110597776191154653474124688050489271992824609695621900037241484906095955629974336476553003590115434486007959257617606105487747489285906933712292783936157703159765533317011786905779130108604610482597792200689540625361989300695495080661099205064226039971276048011445619211879879539922652776062988280573431312481873003358152631684090926991921844244999121803214486955160370961363905003455506407676492334019062067910920429707523930318225183842114373124714529552789267744803950709295785682928813446062615354841882384624252502136569721785286234297379363663753199267871964745799986998514991988247064625426003228589537400682831471505016346018155362222607506905818144211879872034964361295056298874086870560706848505633824761202147829538833512826722582295022119422187743786083466601919181884618680783692899978306725109360764198372129896486496399843511984753926769973523256939591881986864463193916159717902025637537059253699299750141249635803273163557196579671076306463836647061994880776509955914764651235041051747590742464102040149625423801586215973870588215413189272561257160645140931032877831496805475613865297569576060132819260258007665879670852420849255155282567324514985123084111101428588705638234152743560308165366626267712541063541821088299192278090801621020892395178515764977786556363607822129116466699333755091173195041117975671286630886614340425156724719945689363514749290779337266079782760430302290213556624700615894265481649342877068438175749734776452871879082600067487350699082693241271942961265300006849464802067096284327822894940042189691533006914907048988752844647685916842174961690586534352616924105515787660529637479373358358456658042106181444221593678073492125813160599929217929698453979578082645770708532439969173052133084159150117167908062803845830459509760139647551591825853032852804075747350928651520915391100937599310507959897226263665408100804407146091253270948244906221579196395554622456583548373399174818804123677148442644081818608132283401168580333506141775532452453686838697324801691303562592053819961486703755741476628117702402200563329146885447809369082939571153425784619320098599891988193027136130523288911271804660816840647691007212418921371131304550831457897235806783460429128351654419296363065981696814532455872380650693002434092748589185056851363374813031783303611197938135043819167974542462703485029210144354783253753717431711069177202273466945109789819660185458495101362087823873986818045102616670778486084633465604558913257934391468007975573828089973536557279358394888858606137682541919208214244578503350901827697312921066375026052449873482212747142234157624737503946304811324154645868703590661941845252653105117862588263587606441846506315164747237653900641927764340962281473528110414990650381398798573768646642417136486579526743429229035418833388113040436465002622105119986391999812814956378249841340525040044128577825051473481405534754701202201218394674626335119870250559845781478901249099594306780751269085956883252317741159910380644802056578962790908247502779937589246017107911445196546357955935337386034324947658771467305790852297889694890774054002466634951931980481844331989763839186841836224708071906632407642583239377861899420490832964830286819275432823092025974177398023461906686775372341361857006407306833900329785949330120627193767867939420719528731618867193693252082802766774534284786319320368454905333069380850201075980192152120577091514781348546244361747701430307215917847160963738711151030064104014605679953850520757476281678604295799508084314474129467834293175044246091378316381782840015815808759805084152037673023802684833707942184601279472676489562781390100071821449924537624255307727090066207655458092674282857906837564422464900994694767389800422364611088795324519581288653721201327638448755203609058433450772847073136049000584314266922517802300837890010225833490625822476993053657536635214610760431963948703135121224319840934158658170888417308280018982867305333598251496591293087026791605503548031360051257208743437672898103829031956075864120000199582389428074675517495848342746804539620131010160170492157438053621159592242144056133884729288582666333593566019456337224122313513974522109354934780241794045386379603856211596800980449992344459542342362835217380703421626885047451411286582267941164659340726164453782598482131925246193660915910620563568731044674812762970423420254846621895489689905741347698484524170656214050217156785609297104956378905262138353143884275483804012362868199595896019104364859146937677915235826352601447255750464507408947140030443863328691601513939303385986584791149954050405026811681324195355945071902252312506692800309956732477812503732484493309278653614685243544153040473685203591585993911870545619632444451390490239588908824199873275927895224924265139231106565677006609697884399946064239651705504787569744787799451428334137765572621625618319785730197282754409378755577003397853707124577931968293488334163543639060969928691397449562868679791928583064285793765223578288529985027836218105289921726101839231549460793799252328282557034409191913768973269332012274741174790522423524544802814409801198921806519194265399449634906173984252391229412569025139343268688369920371031036922198909948166896199692887000741830112388898643576414909810169587971000720435136811096130047868302581976877502723763445623677104871090749434020607993153043219452657611608395470179971434158746948491597872756069893823162421577633433156223926982328539191527757814881060820453300995424602986423206255640831466489000300295021192209180210742710446023220617762912205308720873420688946275179734984001883390682253811355730805463932942436065997635862119864201469940955092135363867926382172917515224008477440755444430636034802156359880042724333054476455517229941268375265851458884319307745811142777084193433405552038852935160428208800163159598845612907264008818341571398647928801394012348281894193836217312265764131079180803141541067400777711577092336652837194085767507735610581412799779960581041160438564040142761764726132261751409879239679524114227421034878246135391852554241081268369346697107542946542950157103125353289043499109493787301530887656053019327892284168733618178278914703565170091226153837541030532439581579575617401958415468023149402219275182944152136964392683404996016538715156526758810829266782186550492403056570500072911914009845704589303613657355296556661922019559356824622480976852921673255247312808101967608478824880703006488951090794091646398445028655485859737177982386152777932178725903700065664575957542055464644053023907183531111316747375590712149403089365414705711444234147639758591043173752903608351028216654312282037396863890020370939004347540752188211166212036075396861376271816927596838198750841531431092927916978748244184692045800203124976997636198365299813727161382486789762313176128892752135908280991695722693849613141156824596358152733934108669351804199021494910649843655711700880849383465908984956280863972019263358641206391519909273643174397567112301381691815960337868080789085056684830203736271141191693480073282069213635159758835320381590578079503016261612546852067804792241345312578933293295064470744457496310082154896066667341461571312454453187245283096870767562823428361731116495400817951240424499450986950906428590041592575342031640353503055899669438892551546356632228163008090820283472655789072882159332357527473025005489432407781095046678432901565787775711295456320074616731535444971440879698151111065708836480167133987561050742483131391636805361026945337863792429926006828094061910760868089852491842628670961404082029867701129836112551453669142907646362197107983095280988061555683468651555215238935057917729713585134494898346259501831898308352818637635140862055556105845685422899447624080695151925377664337000387127042177013075740023571490538301251823917568141026843373262645088491649418689607370580335146045411758183209647694404206753457089782399824108721256460367969050120271426166196742638277080551543997534782916715659371516576744675470428116359662347547512703960102660331639056810821936445254061587265108709706901142730439156341265041137556966123382259147558909330543697067039083169585229227780294078107616756640992019631046777992648206162431072732398763183462570001071890107122000208223422692322075024084256974276638569095304962411694460381605896556475345380837574615360133837602334472312489834853698131456549644061018375728278004694362238241370498110391454967531388862395424978747103943376896362748226236807813178107460098287938220032283432665598953782190089901949072232690898532892433926848798285877812657349189174177844774771565260890118149442454355782804252913369738003898501568569454499231524445515093620447388036475717395157525278578119148112727187436828304798632082292855898558493723260272185177151574769267677371274952327062854697745578272485043850307484619654819265414470585532010893451911528871315770135600661764763605816072448595386403886545191182231185892544633237131488838601999663582904944278016326146199980840085153217889217496269653960504404326067195377724179128737570294505618735398576821124544105575982572973009693197492473281503557870812393632991722642497972983107396020067479969244793627568830349324116854254102154589393981336781921300854866941943136764911479605283090770490525173621189086951597320928940114007943724154039480092126023164243528755510524685265801824102572575531867622410558709355990194228725444152155450503016865129998238526924465493265945839540865870623388673791750471427182779998563359076786520936632335198361723518723372601002732694153201657902888219246060944156355108499914424884817321899687276619191135796402806850050822463286463155860010972978127728447613359622494367969498570211884467080301689977365046436198056720976745068097507754524716794437251554076019215497937743620424102311235887581010082712932478040235171627233966665256742377706715195951951961138766497979494081237752804427673585684608705114145296701342406566892382357133432269063366780552803325463233692556426831041054014758190034343013622232839039071475778379848784326173538919389277795936849055172131427985575732509378195216382587157600872379494389489441155040863918684537558691016197625856259995950184071217096770447325551544146156598906692923892215812421033358956573957584116014698500605688393722598690441152968224886432161161372533356764434080454563389658625800440974241577591288231276358795194755863347480070480033331536784043026451149532349358716341792463178648684282296954329003335400217266299982441604185565899316786729541751901680068479645855238082650635141610084636347247861201445319188275330488599108248927818835564639543463925210964268779457067076243249531013406706949935500886887502522170606071744035188455676454045762502225851189454940572703720464411813245048986704945937734486376910343426800611979381954833860680942258575491805276792065411684233698416838451846829126668000693791250280068695573514549099779742384805591991450810722150962061865056359867232121149146510131904822276662225580999578798352122799949671036543176206823045347447593934908415167633077988850918245938446645549019980108252903249284114680123246588619842814238306903457151888558844508619247185268599972671587606619168197072651855993415913405940909942186626707311407936892521879401877803962234154583776030865900949459647361433478302869906450438340701970902217122365326990120307386278403542603819118564975368551845450900018641544717930851169083464183217378420860028390222524971409050239219212706807187920441166731027385825847499544786587375332417127103523678891553990120141383915564381627257268983209540504351477875862753164973306379047616653134689628451475418998113436873594714577720820492219246282998814273407933972379519739236012235911746647385989738455508756315974601056867126313435173515156374527971857649825527292803625898221498073686031809680916173589002987481118622484889213889720815278051019494742543360221158961939767309088564851483286725360369203635953038603678289512751089771338280770956591299880920587745257074674105964468524065659667869886267040566160577831760887553604858562940944469042033756048858328588440276001841024013985715518645782133277439103347624987241287466100944901385499826767531545448295735782458033662754933767992713150829698002204626465065162781822545810005639961929549095350281209769118365385176153523169864956812791571844865469082832849775248579589094407702409008091648180592212215561946210005702805652666033339401987477243733093294981867148795933042579626278253014250224508737135271241961267062688220626241219244632482434995711492704390946677007555765747017107582475144642458856657973859640046668099029617066850178251454236533230494743584057107015811673238114108562722816447140299517478987367602769496959438077403842359383957792664493460122998147274482522877626919265115499505775316396395470860823650415829662565892297338651492103834753998481641614651517444655766416972344702658721378057795270174633538684591458632589056499255420914076472154892822143119817691653948796800291318932194539785171832478564729250279248633055613148772979725500406364933092224353962309907043375810571095165942233150801675583141835982205291613251416361248004833073950237185673792924849639728389891870149709320378421734735465511178153448583551731071494752052177703737614494169522883799096245813852699731347647127255736038509804654617039267099585456034356627321511185425158791407238545146980881811607581245714264022342475749663637675146245505247353872833409667636523815461721555704177606129164977259510216356784593504809530697837427420083000222964299907952369709619061235870702384283137752155301152502962162290121126028106023073267835931726901480981467353076090425940970256101003777905235677822670119044294481764240314339870321311283182133703833331153434531579987667743263176353289914430576893371805517411577070633315923312131513836850531899410439688768537733335886775315958779411769247452810739880039385032170684483115471516724341528802885528787673197976579204469548119052346867826419737662986396991931045997196756542176508205267503579627450591832905226583183241795179126561844826737206291658497861073824588769084107352250909992743781050601228448572146329353225463788809865275125179692983768683448238825029988715559203630416653577189131656684480281562152229088441315728188998982130628344710472059607196490274953099250052182768211456027353419014720734816057251819285865605036743333899322910668510455484421812251574001086087047207025691804935725203645096230099447615268685493807581584625743017919024778638858208792050030798761491372648627525529061320832950766655562820770552856408005250436322348052441494715354173599409526224163671847755572104543988785156363985999120876914736301388735497874023929391633684262815786559391156087786742656309965345519572174309091013840364083607126746511559100305991382158985586791414182439213264777248069457241339693604442238397427753229455211803887991591787643601711755445892784100738949116425393906276729710454085895536702486101708286589551775743532407345059515421906979383701896165374635723766883053931176967929706571787691542886082862560247346990753132437194808516185274208364021824395178691598574414667873665325459039380272694273327333426478386240348501690217703196469930593231107045838028465912783086728259654376730412657772076560754723811125239407606909169085677097920005684843064329902205344756749685487735298504302283773975210891748242102810822165392593108421522849288317272875011189066192994724470144490877170456436804067360862037660502189882496689027741468498499326134219566089295051546642383996589987674061774313583709060877358590744816528113900334701540931983494553269748357635607802163755871629052147114400517326754794597803532218745556388257135958010029441040573274766363932586171481665842003171842897831427040987342385422119600714104890997319366795366439114007217732607481437666543046957821830514552487083699466314638507122910160941469479786708841875097481002651715810780358901551019305071781183383010587433878083561020121210696416280856196918298996938739194733126780838189293214615198172143161146837637000115990912169055681440148083502979064856644411758730916392116085579161562271463902765193916826995310121016984464725470924759550037223835637755045434593164533626254060735594470683234693110441978156703810328819331429635645534186500822993997078310217862414400602671610821578074883216978623481171586378486863472128024937323907868850293839891377627725979924851702632039487697510207332029725965359543628691203221099180506360975688669310314238093315681187289621756168932607684189040491693127724073239928788562777615729721419034580783331993767392579943232461708510394210767148844067024628194378934751243630095693297305183378877681972647869356249446672515623413351513168917194193403770281631380194572514402513619825456583683861018696161665944793110965449348105960415546572677861984754776410946607809707666521280976573677750702505401575817738524409529810842774548758487096666287541784935009633830547262949060655419136439712778695784648113354269576703393953187786426644787659879905277683143155396721857988851925014665075676714282942512520834307718990909801289202901415785880480583104215205640260875957745981822793450562072665571098279177890575451201309668740433626251501824878256219282988195550489487103580357327715766170607613739085246307489764458933502759731621980124152269318899904154165919401394358313295188961617305469622889443075165332397460914352669141940090698513360445854886926569841908152169306761628997302995483652297250234839966832711219025496208893650804423526297984332927159216992862800875589263126108659339572044607833107068074653631643550060489007540668707133638295606190564925650683612986298750335770668534777811242929562956528185672611416809444971386945460311133024201664820148745348875130621057252600839027384756082060015997156252535214030386227096607355703959122435160008867401783292037971208915517263938951450286201575620821364723426024412370890856481908211444523891401068191618345115100704206099541490362410449871519253784800674862986473627342962152724981427479503020139004239563460471678104044057239646360844703149844629996300686156687088808531066431209369587947847873729782535835185255614432049172484231841957124859589738902084556004005606974935166023261205368796199425020879448446833930999741157546955988781545451654610270670762568209484703713742804320961495846385842442556896002261727607969015726174430902746546402039608577946505875147293321168879029185378519997944132018437316209873573750837096831927350805577784272610559332059304215851075218629769225650837452255882226367644508705237139450148120119699193578878677681653893212199362310935670214935684591716465214820104160503761766065362162670265607596265156084884758237798205001486920394043642122954010991432072356092873497560711174901604197053436373354912612859201364141930290195632001596932744907296455512313625025471800381646507935446573427740136620783758097481347104443827444027998984523491670144586310281573518587720537423354947028301114030075407833524220189187633282551569185626810726251118907372533934082657266483853115432975018344981379498584032457069517582162814045010619772729735606456696622806627276663506732359079237207743632912712684085895458497235114269266731390495912462823797854955215092088335145107380644965856835254045019672255784258510173739335348779442384734405842221422604901153352687861046271670569461062919334833199724091585929784854627893729515799470490101979803515685962934255679135619861734223733287525725780575428310246543371656709156122341853584659235866064635192828627848719374679815134016982541830250611423546778951080454487852460343750227408472660530290511590753451607141248464946927934163076149696296791747389095226628886456505530697028645446671808660843759374483560098169754713437341838477620606879358113647288150537390245621019668141134110965853117222528928710821468966663905908031636896559318888429777500836377955719820850509898630326156561483728556792731965450508430546697584066091997287818318925865433766251292565446416532767976727193114575467715135179063794801841219750452685478228990964229529620230923589506741756817711501523287610090407225408931222439607822803312858131947762364174263075995917720295046621690270588572697416515605526698181069707228340526937531642785053770312822572891437931446153576444904467333379044948119137065922329715458438348093087340224059823861758108668666641653404197957508916819109082038401576946254742819647835949810625821223974528073937761313161784372680205569756855881659675272099589067081398564333138925048834298679702991939380728601375537693572641507295717140405386446658712773282978410498280883847054791185946566501020129961043596340159450626049387252071164971896061170629959958266221069201813617684269528826659914878434625267037132447070359135596778868818478871477932236051861034931657624507036829705145674322048066196394160501525385823304300116001713704027007361024887153822506898514165059427324664042224764210930165596670470502795762607656259591335265664706379222932145683032137358566834469761271337247458218985285112576847045446743233862437640447721240146711886585737598711450419454916405423557131075374549765473480427378403754382413560469201937624099221042451884900068394605727249385209279178840927124322817910822106341681534554946840350072547446058718360186208191221511283713104062856106681821793824609865957741920092858888927966996284886702157445833919875275580674654587898544010608948653079735150473715128268884651852210776083715908714080805495190716426837628778169222874206688094925829092815094240019509947018143535580185569856885417057683958956190834854526817256625952108884485162254033629943762589653588509312662825016473645521535619823278762649202447882549224146826560671682429487178003348389972997284866523485622832370506610030872323484461449048545086047227089278338424702075897139242321000386703399608331869738110444797128994427794389110689544065660945106997612356833882557370067559131857939566987799499004013051202448246765175619547122619033025022925029155110276869665630959333075734941461473996098709388875321756048654190127352800786319661257325410222565886849813432783010577044484343723002486907644458913454352237756159504564385257959634148624647637512139616174813853743047473498639699019973658361746432174554532946556828765221874807389384039727066757412908944064791132101396155355167658636409955500392988757342597085602493936893784019932928565901123415419297815419957583164677875570852934386860055781892461789407273451495766809942504890488290225389112141228346689610514532165313084403985856375114699512352974402645139389580060612315952025467571184086300158648124317369445741242113800028132779754881356668619656695294501155492451189388157179915712970837008490662427622517459754752182040993816384352477513405094303466400061357492247838101889856596053171599648223119330901595167829263560937556050671104380365985868550818417307743782584323535062933308892017382160356349117262422079894188019365601688253958681650816095271873218764245303374786206750995930513526071112210616947811083382465682363825495875489414856388363939087519255792600559455779540617981591259108571407202327619861092419933313003460725285442448446394839415255657726800839364174832746448970671077987878418696410118495025635444296564760397015861267656844859747390354355906087604993936294103758136743548036159685147578601605561691870705424594238543591348388129977559610565145520408209780709582120038458233300818515766514166822476194844321276398012966353391590946428880538464730140398773149788730843938375041090210753497575004291893498807453909934236226232603860315348523372310744930599364968924601634437975890530521821884177795724050524901341813346475356877880965308405002360090057608865419062179633062284168468617781804036406964087966353667167639692729975778465940222327861119191348382513601327115291757840313237352950408518294929964821133882260146562937029768557244335450544695606183771306947743179327332873936640303029170947480737218388151112189125626025295803219985240971416106395356399519646842773263230277256445636752221720430450369687309856923329762113014937167035721993354588501710212028006697966683365083220096217124289351445129326172328128276561431301744923206699217248656394186621606539077508343728289600617285202732431192776988366440717191332088589101295886472991640313935422031000334696914213647070171071160349446788449792584454614385021506609829020251857143322169594117541519202236322909249710373247300817758725996234034921989388038244889346643066387682049170262650161902358378102623096086479292662908192365036996386961997578608210385434186595163241470573450948120331205057459779349541031245369839655046603566627034590585930840568741394205129578635468646560249996092253379039000050667185151200388513444853777093661955511047448451478674296702529336366367211258344534539230420390121595251183022585406410030023494758035968032225867433372702873320732636188673891160040558845192116334151529886143718777806584714743023344343785091851320636088744511358432284228088842870728350931984726769452000610193090078224580417732938541831429579708015128295654153078629272810290608090953774303705472466050732384961092321397720854996865829124496390616427881905901097898757969095391124018913693043163770642688114730088973802293483924497169779495365527118884901997176773403268778226918528456722364256183429033690190812044260372499128205236122548740634098245886719271277996374318033336866551603667193986103080826904410455464615802272391472838842750467991532772472004931756242544472487797952508892121504328514948851990696350588543681047554590979854325912436207946267890095173979920031637736285710058510447919688854409350952430543312949022094134413239580585002811736442765599947185125951638526700014089664455616410870345662271879896073717632968076698607249094996605149680872249720541774464305050071627350421459276086343998422174503540198291513604393793768525731347810292228807390664265407782021761712196613235304205638286149203883439274373609888581561854669740168048643593192956556405730455428628739044950052148287313965245715241833387003583725905899201298682154040277793066024687680454021636640979925109580198679696612769996541743290879021886419589238255060194104013180559603803895386179041454514528366808344414888713491541310812104063837947013698250039455726088086988045242566451943840683181405607040013970732376970031278980902497875958601906852279209137968103562645009195684902316689085637607410499392467566243675466044925676926401316064534249746198334677234059151269794545466870862996195543473067777279051107199295346144160133898915667198083847775428133020923664505654113143515997189180051363055334496710291959789692459556975273468709744999022383817092093778193216580145583099879093958099816196074699320752489522066431292241389441621878348405865819126974636307445496566643759268645787753951904270384170079508782322729548157359851492641155161885733785182439400173664146667554903799334629085122222051947658287932372426577192091558189771746328870574875247855644338480925737692528998680218299708641854079978453459628299495222090278499454964845306153935943179165906472487811121832858883708972428976141027724086124759142453470817073132175676059305795455911318029408620227230671945216033169275594888906585540171256296489658917140904519435932951026889449537582663518601463721392088066553582350018412603251598435994312250227320268927378878847137019194131137257627509128622378180082672276978927376079311836192801443577943787678653055008626714382280128576385496778514568012395987345699648768353042771409418751530317842335450774815943547865647621693098977763362268130792087678804422848374916069102512451927549694806095383448820415200329507634840331503940841066800874868214842858962644824552214578932519193512278070581706432115691932988680470498497582425452605472058351737072610640775204363804269635216455623159016665460820096715734994917813512802882445746318354468859628485900221898999531744761339678727279768046699948833159705138432826972696315057772809562493322903951647169918282362556817624320880294519897765403313905020990764421448768162518684658296938922419808161811062016931813671771909960837245160011191813675059930427062875671617995519561725016720929911194008876685115129400057376316185206589950111290866646867308526451200538637434339133444727075327780057984371552495724111435325970592570893208129475268952093062378889525146789361761881729168645298395998688241847718088045318173338539151493896222668032521381028093276392034100619292192870313331099607064788569792009488959568230664912101062478352352995950148660220353435390306554805202750714612104699857428011006430417088492134169107521496065373680056477317035854040403238176446540327752351460668210735159529732441879627813155737166544968698791546331759348903872958625710532712346394095267435812163018010827318238860625322583064664882020289167172492896748830558071009148816725737886015527575122295729340534918465581834379251447387799185519548950739330161591557145038458659771314861871715171048166206634209859989593298324133716486092672579507047313553519467413205856710614997520836366610063726867703367923202006304126941878999494112070821611174571230044518763907518064170358638136130864515015546422430148595724564051118827135732909256067831758997049707808103398383819417849563754655451883361331740593549820869207685422036853174682931602719919002217814480990424114916457718329478762162129770724812854969217942404313619914839450111720637436609636822937558520367931093471105376020144344654550770381418996431422524769618378548791603928934689209476892763936714014148492812907488637330899957477322517257738813369786416004230675261577490343909397876306802516208329797158514832226380320699973960833576474170581651117279626904434719705658652317735721793409812475855210189659176196130733508755205989216292693409940113880839857209764612129703703794607815770200946610066027328438400478585682377528027662173661289848097205008435624943546100955090869825129606061646276799911429462592250505290208736490481056101771961132208818897580038886838592215967148447491907950536906529299827803947629726727702093655615940855585121876420107968589471067707146214156773578883238968220294708046766653093674108969537317936028354280445367830682402850865613474035918876387574150354712958077501027046893554485877279376700379332137255254224060213252251657336717721825515586391667270662646033558345941619801174090022813147393385201351974115096085205313919788615671013855337505191952346113009488110942745993433055988184425606279221616596227323060580110294226708107232850043275705196316036235247465243432852517003343816572470458013905437227742418146544485075135501944486393001203390793526517134583371432118480014901131889651460452039458272932042982493605499246205308536630391190086424075467448382148695048255581567417675215181497326753710262180599883622042451470678696372505783771705388869066231311047918680387012329694834655624937862982805122019323264001623191558241928515403410783373817799987100815713924459794249253784003495176767020204999503295972811637446996639816774366119553098187826995062002967774126178722015103417894467599363707098498369107719591650583821800406840019718909305351742381569122281727273791898013437378539252810018398313575633713715075515273447118588327014993147168298237001167089343692345839506211441626211373315176445692326482710282299305139639592077856650663978348597205954250444978590541929388231275232142937952708374161259531389791326210661349422804117078497792232055736052171562115382716158262813523099857767691497735227361737342905458775281989275711838581427164491894440264467854090044359072679886630189352184893276561751288688346335676276436167589489655998218740867407042355420739488600973704479348904260322757935547907442008327174743106489973917956482382527427219995107609560345051272115113768144580609838344919613575385468758951954930906748655389665237235652365663134151149300566378893277350150477235609088084871057184618441263616452577593519634428761769740976401685405253344763847287554369478661573319101084500007632570230102008553817251709765398459896816236867946096313683922246279905112394701531881105784426939710484729768321838426682838706488971631865256871327029365893470127352335434761627083045140208237756930996315783058168113456616989634962486342568517901386531125513088843757232902930409306790104325803818571587854384957686907264015969544085615778586051428125478944968803931831430855776299274279517896807838692597831948696747392401276221613625762863292729812210363348382314445318932262241245398022791478111299439218942218346755158283703730306750151788888501883292633608490182014248367763600134672043492616924800818260156309987251496068151272705131025508457378508875274379794689344839142786299778872385490948343879183519459335933121003827452658971442034473973327823666449414495943005049616018869921163285606910841696196565713916611149590241288700079472127272155112608901684801813658058876506837267290566198131978731964874612403597324867990688056332417850575723725259607762846057907986670704915837192066307239156033474535918027280189464268089389835204553356528426434548718869627639423897622263543076266825692904630830913072317030774218221007369172171019609180718999894218549522134710543873451445751039556080566878425217587064535865788072642907045861523469929381728597140837213972457094840165518887057825309426346840860652033168265732710735909869653305002907598538748627005365536387647619608181067507085821411705945774101767817654752299908611297612811377768529103827490267494493813958011597330545604076478410703445547830230784316115635063959423419022827566092172062243930764766792040955091732236224306869291608561814611899599608634086614086190458031989583071656156295713786918997930105901171494474688890987454565488875344381369326683667204142285684629159415241837139776421490055456265249442965277301368684343255532620835428422009930470618874406464877059286600136995094691207142760816937041995328384310204570948833558697275627274346651956294363658944932429840069191715570033997032187991631650461049310038398683831591582987253084489203509464594341854723701120168555054462657725477308428810377715753765647228205566425517464641307425194926684911443121420242548142220072905414521200881877266198995084503857517247356309062568034473310556401738883267203326954671886192363030565809201029568664660181358441107437796010553425564176061068695603491118785553763661343185994900646543840021180273142796440422594059492687022634666485649608786964946134674039727178388908986139165090185911987004977955018260188602391720784946318134156306511618436444941497653905683703776538594316983007325013861621597730826386836491458540222852801475766269485145446831455106907637573621110533001484691062908636883747564455850492781421651338237654411841526565516172681953640931970443940502366140293294564577871056195022589559065996845017982363881331166982967041918399214130816569040472081835615392429119518343446162285013214127406707644328422376878277009846186549311169298456273900110508139033017952059245447033526299875083474670070928329654452589151176459283651786552379493672152686777239471399127360299185747114129604785976896696781109365504317370126365140491358100170168312118202499407441660761137542438008518044926321573141034945673607649235048748588851485863676062810653567602544947458191070860890451662435021668197130222788104584804370115778343761601360995810254273525580258172922150558263759519221815863904623456841035939066314960495632663670580806786971783101954913042930686496746542952496334126152226743295932098156624070066311088731542994045880123224862234782876816862007778401076303640915788053886683892518031691468161812886350946662234746064921792639629634556626273644524274434972705348079981597057992922534632151477836760730893796874827578788816397164678119146759419607696562584589217348993809926055528729224844898328811630578510492933037120888037809858039469668763582735475901681991199494251847243890098072257670041765808920567476383323201861880554581125275990499192461469720994096652817284773029070524101432429999899875755101134659450588520095044835661045646914057191229322279068933005307393278972072195517315452280627645727476171033293617356650053908330093681104457748111216062466217443899124032174834469432451988319368288048051951897591957702725686978288321848215744011636966306159188833883861850874750185424477095682551216830485574370770709991725369355766980390536265795435945627773275049299485075741143878862327850162894580985991554194929095763939925541049784154936205888582880767194464646469609192106233520372008962172163170765428188881374708412800864724732529119202759518525858050410517998346826468734334748244160153235604794537334224508142907777871546850329853445212341114461875298489690340109962332282809927150601594988966536509343767312161036725135042319920894761524055094597534116860227642095007689269000128256471622489457769165400349977106031071326050727424528114548983494306959141124831315512877652963922465516083045929029569287339282087587643114399316852226892940902654268262783806066286246774523948117741648990778417014426291066966176195168106397733544273559818562348846034919439157487377944944610814196333905219922599905792607143873752027550308316466434158970707551360310793065943695265270344969810542365895882827996596014939248792736537414482018101848398428995402098265835628821688357037582269227006504090609979852192912500701810075954891408144698364333139472061084333808226992150246128767005859635822136483467374936225079936922276655125975587820401960070067145231600570244535539975558873064898488786697809967267474013020155824873667958407447787209091246440351770980700781315806735241754361951589544609113453525954052554060979783568688603792596262504167780872016997296323081975118955664023951659782909978519060677187067836233936442041924644515470659660694623300329949200788059027669227995651193210446046007292877627603261791184819549742357360261643660855502171569179311192982475663097345958601786799735301095508725527612450117027318244695674279765233946936668994048641085613469818511806589728263563814435796918826115749065274032916850557699864170236051489094796684505955999100861671843148378311367975000031123671054352586786166337188549843407271452349443488991128462498966442530834237994336944044793789798692089125067297228440740199274152988269074937632582773269980298539171757720162507042494522260831149261892981065526977830658373305437259757853826346665962406833849228822601379658951608217090754908745732316867513578848448318652623755600808229984077245440140124027929281382817207394379185435547228107986604994657392113022385847454089189646320929957325750328437521478019102875536028304727481365707024302340447327614081093663765198346764156953356544910690484358913999904845324313549613180920863930997536171619741693659373095982034826219712362725951459802532414350054516111593234425066172950194571171536703166004027752559084350826719334259739118383293776469166054066972539555847277054999459996639956109202284627001953878369791067709277992232281030719613901328294882715331216580641175380831315378645915299948698300876496657682076476406182289762003858015372593740446881063378002760360063006264603531279622442247097752350678494490188735223293221294146203097799684016693840599793768678003919790319752746132885935858986012289863384744388441632324906896683687297062298992355429924811667821821378974642161873552019380926341249643913280014619385340857041901133356156149333324820111111410336033387365603526555493262890829503012150825294832484931998216390510646529050592422455027354457357212584203962096286552512361276133205920424341099413698259477661456674352589151624763414125931969865383545677268571533555156669085477367007012107785716084967070533631867946344149178543161830108877277023645701613260683146091545573704075024270093930014004759678039206543048020335334716535696597623292059627825453228349388870343152011321720692601818182109262202925697876164257318801705898588459735594433454357327560395895479173619001584213884726188077272534638586926744885752548814210768767352562739380400217759670853423100490944140703598495649796391049386719605271914475992192922580572712358909882070922711067791071418643797114380835865812175763947261246086258990648013046600873882277394569047856868515054031850684869888773019010770294926120127046018646047710650197378984384424320365834198609486877586984391484358551419682254738315793451276477696394591797029773900260498923258833980593158374222822275963262774256794862968377119816474154749219483916694133447381966158089629192155108884249358385405587556259116777343493642297027803720506755986322765595207456389162543552336443834054821853472060794068119015164706793136726297157734009308491517820093880262149478683682218944833409362227704814230618745809829849297371720011011414716104123340000065989327852957305516402226638321355575805060264112239393459101806292816591288016272088563416763854292872118572691502558544019988232514856656925876036642953622965105808348738909537228441390683171612907591166532800124949602659573061150393382781633602442684914087447641445051758736602505724136174156917159756687870090570720120759499090819607414065172297377191117120686259984875837497204976450979716758611331679038325375062702534089475389293647225345837827993703896097471351954670640854969183626995668217810404687625358082537474071679753647393162821285608790499891566507215496070679765942556747120158592300551779782186561546278497814143389365242155389757189085634315400951646779219195815949575784812726749591098640963453565823836900279454612843132108484220004187841179314757316431251166437475773949488625783590117942124955503114633201267700018243225599914113576371034108349213876286957858773874499873513345157260622111183114789996445304589720050613775744792217445553537976792118107924042942215729010636869261642884216843003375710031721345891571111349751473140260232115035010562015563061244332216323884033525087943130166922749383135879974462350065227350538033359317248918608492164785309990011609713153836089006351782191645628048773374262726998879318970275335199656779177435789963311793657345642470837724106039767807165926806814518640216189602637909303731802057940695062566258867135020677152100805325954512999854399664198363702030501528754536936516453749695711684999004272605926432967951844901036336791246039051932460672841733272029278859530498756503204881217494206243840143130832833982484822624329502566528464725788881167261500098643115754956537807792477712094441424275315273000479190463040635471750354743309878922829967322586449667684108998234573121915251635483569623434679262877270772101793299157261360909015253593779229667960631741676558783926883267298602820338459917852135097629380097464292114658716901973457740706140930747856274851200554822583502395172303077796464251262133341079823177009062372481840908797831700795665388765352432239750415457203980641002983158094711622318916276348497946100363118539941362022975707777573742374004883124994531609984657082924136524311457395038366634144451683061715000603374410471681923152698996406239798126567876375064661273465134763483070349092624775005111732380281518757244191008495518901588280878055662275171812220362451297799103513259699386310735800967144958793920608864115746251311981150358353788936966578289319780252505492121051027443728396647259121930177680108458184293639893858839096895176370088401123698799608612716191025594159797577798566493458242938659889103658975228710224991797368862585305920452238126222101763119266130515471067772221516729909384035169218781603374594382735652838751181684633414548773161330879519398806770202672848724987182569114618255655185607903028619664095788607095111805983201596740141541865512740989263161580200512946327834372802960426937544425652885757094370642578386337628895146490777216390634405378590246694254436781881853659609509829458687806934483100469014131048906214295572315325403928685590260804409645504691614103549345808770494592911793166908775241649695317950920777377211165494922079912789533904818117412213649266865185844390339316543465303652313182734587814305146120058152690135891911780647438667487484192091772579236890330064507418758582695734300833915028311227061004456505881332578843118189659977990770609684735405704975323717540622078240841320325166462119771212105952804535279973189656105456305831093534986518795928669813527741378057264085102944917511813245017739435380475645584040707553255904128602185147142705531152980824050823299763772957018127556781391111735688669210691823066964829110370989233367011501366979214653123255969939507648609379402426326925535261578470288201968099347630621826046565513525526400583184310457318624893566644718653113996040844327029946568187660240670350724684627625254208777570162826306021555301947929974112528397593087270882077216678923496333390500624839470003534729516991832722321639236107165267390173421146232276957197222010961130323429891639782436370296354247847052972421785623963859336069504903300530656282972869247040537935290219368254481307432413105151532060874802322106823249647983574294847925459416682764252401071095569143926126888602910700097433404479030085315761604300419361747532694872961771164881624787873030113115795936937901554263307437889749361169209757756777763207387754058791122014144029320005439290554760796155497755083967014711565300251707978166099812648104912989847880451455645537287327505442853157084107222744224137894310439651723090286604297795301245984440381332944426291155082829315435722008181273309841013802586369828278647692322657569172010905633179571982573872663864966603125290101844002153966742072179210751232889503938901787755241466708808723798699085158723917448292224815959054691183914541169746128370576379047905009377399734106328020490476547082674241175141519637663643043754040086086351164038147322290846363922396824878556651137119952933155930361314495512161347392207660727457124742399309664232940943433691413593190557525529923687819980488408856129362275196469083937502791707173514050498892928271462104595281654399416262163850476430734467062278218615854952943383192038213590195247905439049678270715689711762867426858933977683296268554052001411485532917116709868039805886810729110703186765675889097015348785429377266639363442385093084468181375752402868609837242224603542668220603345313050240044904800853099163990509220498747081071209878823535110082100176775353012310356848590430804957017526228081349726270213211065328048329701947499251208400084226428967027128156403790885023018439709352567748994476027145351912791920265119343839040274058835711866736619643633951226742686449544434193743042943999230864583399107497633717049153163843756226731107717525162970133244137405603264128059973721731069193207459244235348333465339767671943751464865276109818376480736474000688353843531891264874321716158164574805516990222224808195566117600961519884554789106356979263754329553396041131142588013671392130970410806784458059123162672132119152605687752233627762656266528954720934229165583122669341360206922470115212131477581275706021699788220982444824680615048664003112238239844500678375547267905603139535933592366433375596800602493445091660722372801548998374222081809531420874434031077129497508414180250010524670006129507104099703959093181199338726424903544646992563855723031764539064857282515839419653912009274700673924846216567687803359132783490586606347161196733930644840907787989523534768981117313687294199907350886154296723614823200185023474159678211396008357692059146718886511304320408485254404065485895926783349181992108945337173202547606648893423573084080199710515709304232352790238500423633024676266006237745553995876432393109902053465166566830753709709539852105777435591531589008478395927662528014745745626254060156157316788064558330401302069140824698019468743837238812300921892936403422877960464114775746669431837687496769330943831210536259180800804416581586899456201841556292809348982851516426880372298687513388771464986235714315625675974957147543590543625924754206552286335270401365174328664163503928313071185196816857095767332332183587208845240109045424102938031696674927541954849403609726022611857730662967675566912806032698142694787493689071093565715984715598664982658653433577571490208878135419449677726243389087213453206033871238326841647598884245434322584513571618496322608216553115809931633874138572704846172048952432436072503617423524439306820146398319123629190381867874586014453652418585836493914746327268925170113361475235455743803112294296319147092151604300589144317028159212800866828160403559527865924631264332360559384421420914868914069785285791175960409917923571403758772442027815183755418376291939011181600186777733003338814326521241680613076859834395834523018241587718121328835464664797891501705845781228505157008111486354322357139789998280884241405314997556691348017947791068234676876298002535006691655179965047493693140993699514229791246640370983907856552172400767484823510483027110709467452192094509885759443931529260884514630044905274894171361824178490251317607959481164530900414098318873098881205349385227905734239012150083710651959033758506843480847642464007283168118159749127744561766393892490264235723106599377577673431348613743807679428923040476228754281621661336149537005889201326550109821742190605027486332907335779974629592353573431841597297182035583080809286583401607240184815638112302088553595950012089444046340648089806368944180817299090546303743487539062566296346344186814975626090715924702735644739924828896220320493949687025675527309887426658639309349717791854878271021984695727256711183190992289700483243988211423118803387747767361195270247342590397739565110859574090437690548911953224728042245730188115143323522891254519984384360476310538584528935139830865207029888363001418808112757051726551049595878425411739941399611241695684910338678264276410177652173888995794679420080911698138316340183172162884261469206347431365979565663351770251916648138956702892858919542256264868204466031697321497880768714396946271601480580240806976236441405084583751154547483097009233034713464804031044873715319782429934965712656403334464354037612033707186884491497832570675695165581074970378737644159421203504950955027679137036495734426590094815677162187965342087758410229695547596409072616978494618735939817857265779389441196202081808310068660737937138773193874113122386920569856803202746138341910957392793123912499007441495917533297569105340684411293011925599357356856223223420893170804440731828798406700455352461965237146350412878951693004067077220315023210499065075884354501808509739007916033381646281228278142589063020484677001029785099514073985146111774919065297661984164274672959347028536251890737472048413860680843155478484520295491139708548697499873520438484662308845969449587174002885781984380211825367206404261519769799641912448490135360905887792928139356360652770820671154502642058895362621052965510637835211607209716237022485704031511463557956557644521330901198164217024262760097246014498407798075220732192018576179931824039401565934046269563471674031957383973579291861060438835090272123471511846071165002730172818481131707117380056557974241113929414194036627966991440115210639034102362884595802623004562828651754323681492792170217959930375149543378467924792454409284994599646868820931408049716560539128110357658198720346333139666013159003212533599099037688440417490353857960807427731034120346034771721929444680398867290649801182711196012205042403201614843173720706767151738138265249273524578140575560162110309921594442646781186204901457837424982657393650350773723199916413863861272547411610506474001095026156520621629761427249519254048637580445417785238731599340055105228297290194699945627515377834774133468577044759947357859293209651770722939199658976890420462412688580725124012100564049342026924216366153005551185902104125519723909476497136292347265031665543845036467833882145586268885903206054382972551374935699728230349214781195033262331767021876875537403200275422880714137938277540992744082910241250487143120091621556031250894316249850331850623783517674661796315206774804604577006211878659758333082374174234857906293758816904972769672437779996528449082973665692036231093197092271870345607630417134467857960693951103889022030132125751465906163950631616710851855761570300179084187322243726505986599376661350556746322445707247967989792705938278023006904587907590206364680312215632757221065733033518877178519794137050488956356568232892397501632530362747172564485850442801649381488213176872150553767380445359056662282407192868680592125301832066641976953223904349159171459929728586715125770668813994838305537070059528591989390080915916051572068873852679617309028343501794991659869883715883220090810491856462111389486216693122225559642880087284061014972388860143897588104777895943032293518911636702508948256290688248221201514886357955530535941483329519250157969152068940358921456949817509873902241279613250364633073053903127507462093878642220253955492567569575975526610173980372083577979480641396397063790965599872281247197640599183940826417608843779722248132329236626429455193186752254338442052846259037015441854919392580472210532692002675846188210481999545283512120082734556308457138262439816653971821573420857675827710100660386420064118689981307313947747101104973457882014075481404909808040819705204634234936550466203880484140287861335681802642532349473633805373436185197594017398091613995575105360076312967628989731331440980985005266815793783965397087560185310826367701253968643661251199379821062525161271066700229151700387398291797529424534864459146656887567025530596654292107751499498057106169569288852711651100757875076873645373942706752473330291758350227746440765855018273670817808883148769639010885311631249524488074270266238075139068703542999700195429754305318204275997310767035487815605145087820881468664371810749153130534222501694436481396538576898654541778058285029568931461137309143778215124833952854349496283255929742224330608532071290252033876364143288399606164506855317084179836891838419693481373946968971551150803969558411621202284281460485986291501227032223048907955990972329586572992400953114985005587150806013180076189135957855636816118501030410207520381464303962547742357413328748285886377891659721447543505653788227617815403386166552466284242034652243038224768063239708503476069812278984247687900789367382066039822522333743871666533321515186719715527857738703218595043979061410827954696503050153441217124058118780757640949652888948509592337361555719060701635958658706138363995016576471186559446104581582164956341419109172510653789769927400091557024089901284402455434776815765555553379069570685145156980573998077551406201620373833206850026816225081997432694785751101624918176641922393280627357292327562944446202860054123092310504982616332069915259095841394182683124284032272741762091826563553024209665603846629439877544962192431750401736271049363667906162044774855290619995347732218481939909359121221342367594277050657407564467532323355865372420779749351593913207810243615811288226693868719966433394904616685626534658655765345195985559295222525655601514718500550159489170640990794064074641408315225311813360871659973797175055599571451309077808205630055124398104883326297253932042830007773143352250929183645628576932951767914045064001324138534240559753082515587745492874047239801852321471501162743666919916086584442084078831153973054111042738610191889762364800319159116193787389634970941042282445789243086763006593627577884261869927790742660765337649972326964627647434873360198943055491831658844630205684036652145229566808013437080294744465164300374367155004195768407911181658571129691550234735963688604498831578150385620222046525629585214564371601565816211613412097360265605354160325224951598173073061096268363432915260307398290938587290214626092314549698554488201379989067376597751801318653140397567892929360370324125666721232426262281331885709872707999428320252019821845276642971440310727363101250748397455805036933486487936292312815735602492645563117507098761446379906156413201557289258775777166182356348950025126768502856931104281476156954399246083329801733136506981139092423853763703553766631840681554353348601622056750627553797962338160791933282307158847247169970569567385967730428025238513560592301565932086914256876956738079847239460544660922532541915942977369515358707836543750040747868892281132012190877008748197344052925667650379136103468768048003737749455908623280531813580294916487479129776138416128632625231393609841083483513108207346634280677267076243166547647522302705906886221036390217313119390201461028075709556738775849612798489292270976665847757653972122262543883190011018354218820150824806851387356249887863842047696757194407164259612031034008565824239307459419356539156259196890305617042848396365270323734807540462771147957103229257338295299081882491025484015867355755089273121967098412674111129708590604614907703562215883544539182918869107967192626377209421234093537908135134106540444299552070819665711063440791969402773331156714193923880269309850596462603483885206023556949540109329464511051116145364042734979065031128638538958483238077345444083025719729694246347849042161362450637674461782450114317441956573506034213099065781694865110077586468236495277627304025510481280928402994931603239543354892471933241955724774295472543859519956643536140043888289891460033863209415866391644335184061150609484961674158046393820375810215775140229322518468266259082086212042474016820181158012845153526321249530662198937738794884955767220276530093275625513754620340058752238346507692465381595853008096333983019717428683697372794907218109057102251283011778313342797469186098089414553461808342164403017218940944513645745819318878292319908557717927609066283897876697182281583164834440713807507194261783311708943184687018543287003072958192832470396726456939576445769288866243654785646137307430074133727249381817447773005494481244728344268328778079637382979254861902859745767929274412821589735681387340462119019232686112656467079075682931733496386864491461610822294125901372654398042032439154599285774785976059411179348721544414863665724214333401696468657861071013626976894023611448087186615081512820100178985461771360285886096184308990609208665308485312964871974404437176781860030597533371330724378793032864717372893716434357548953919255274307009641038559079783105857783757350474568926914573654720795940018742159780274226576660973619205098797233982656572378447710058126555951979187655108580000082330402902126358614585432425821621345751259133647256118487671568416151832947338395638305539663428309679187363684072951381052336879470045503069517180636950130686452473534075535816461753140658510533835579145119204738557886457858635184943801466251277049188616768199407234334239443683255631596072454645213905291007373138247544504568898569638551668541279263556086588055214965329949448021630339163873953350128000015954137457113004082178325093947751558441860831404333964449914030203295590199621408336057074737850743904167038624081051100394995199783985855936692946948967068607540907621712549605648230116406621174105128655050443913833501319523372586814213018506355134004340818399895161732256020253216298174496856218581530381930415383927878776326698995428569286662053886667920677286033166038756082123177115227440327980973601888449945070964694256553269583405999383756261378646913174251591685130566805878641989263370124103651498691217614202068854862770067737370966013735874695692215580523591293571640379138716781498962786840753023756501132411916889345098001360611005732404904556809584745412430371283637336491817975869383318311204333716598475559006241622373216275011387631491546838997406999992122369944970214338402906640272525901975279670965434431589870369649804675037374167059903674453108427214441255806837264181676117376236856131914371083023751462125898272422654356714054208259446110172445868920485740177448113319011070362780359267518215406013000077095748273450235102900807597749149889910745924570175445716485781131871791794104614711158985784737008975541169980103166341141672885686899284831121482808150568691897303749546237894573343916240938249801025775157935598093149451926911302813645969042950617159213000270020199371397105795771343157910851750012029698304554650384341340491742316471521171869944233772784670205685551285137602178620080716966661113331327479867141098354274448821891646635005574249041791764166602645252173443782918933612397710587278651179252213728678095766421697172823004139697325444439993759443306584109796187918015642515558787973677067525568522674403947144158875469951779595699637243255544356043359769979813018570513630562451680322635054226231914618432512658504059922270992862080832118179476494426063331412799757037784534019633322844904502091916565428914220667727066731015100685118085922898590885286121645954438055310850595116992448801425942415467699078330156112200004948095646957852273934119678147763252659346554237199615323538510517239070964889402245047130276915573383214408884999362798426184805795777556385092376722489685298605771320382126329874206560265268803367825145213227764251540484249277223850826572866294041234904942389557706833538112278542344235612063907572172096116961796705490654499276834782827866360549007114348730810376276792043835746441699876666680822710706428066731056467097814347643573241201194371897078959374400005395074488760954922836283852549321073100018159484952668061730774818141449281925703410633393359126757308566282077965395732179278244098803705469597770073288567041811767798702857921747604699792755728796296351344764088597580343137991484103696538436773421925624974700958643429424350283502617176657647805047382651703193837895588395600528633698868456058510733733793916483522670878438076667106630318338887667840955134438549493150913282012144465244393243157785111585877116959110920789187856104529416222225452790939880999328034195920547566043337428981546810019084607976951437695152231132512026456009053246487347630836303098445680407258230633364264810921737365813461071258942013315645306827747598927931954104661356240755085664219381887525594723758955688376841732934932541183753068167736740154697081693996149461396263034263405335976683992449469949227158167275012822479141198131398464736223304818669908874696540594499315038641139782614552143106308639545661465284809595174279314869092646313209974026754507670460280584122100558200258282202426055038088376498580722525218095641033337190310191782475175182703990465795775962568847701688781872025234130110393430883161722882409671437918958433779296849808264388743053301480835679150648549632817492518261609874318191116510598250789327402643156379664252732298831156459995241013382464854326548833517160427180107428016174205013749267738748206886160274123637528389617655993302027722811163927835058273961180972792300401760629685153430308178749923129051262775721072154229734494548595441623368558535689495990512742383279917883548186554172585893383019710969610046430663453491191001838000227139137179534301923761477740077321228115230808046729259371919949188073952124644490699554157011223781812176617973114440543951478517833941116969241151872578029247686350741321896345093372039444257507516814913673864231978544750086237192952847695383278322999946665441610631020137891433196479296399899609058983034203143184894898020565855279104510341194659752906584975809269180813953648300297745176171003951870508636746331839817272645239735192762714353513164168225544825752481099353879814696820672479040027451498740131321761240776015170510761480973493903286720089646542554697011425225601451683390271256620717254808676262375222127570759759889920168906633551814080816450893093699166607655076571736204047120954566900251132174922983412236013571837168174326991566772169507877794379206318423765338209266919639316711553347921844543931399012542979150396031120686442544324021206538289008783321369311709742751608367318165331898882477575172984958500270326988327124501050932114483806672012764617773584603607416287417492714724279465848472805424792311774703959755462631318035540418964233065801125250927219763502735633245714390869900004670197184551989964124007718539428382890619496227406589779108694062492625862838693474958709705688530056684753426291357279474474561312486384652180863444152450992004222794530409386296947282647665570516511491421273550762296736077582820316736532222091611538086621593344845677622239334371719358866677028457464070996325408477460390720511142483241568032099012133336533594749271621885946294392663534437427115935389835484309132213357754402972966824103466569246565791624616188073360051430500079481380754129906171717704134475861091487940232216772593747765560677263498483769024958232273923450275697226766518768083647218533578877077917661173212569837994409326635014434387820479089064874085812201426280213734472778982152486394990840633574568556109046802836188717602199329972953519010946378695416400799859805786288025892525090874551191493038068902199062305931685393087446878861657860992719600123747020476390901527420865894643356266473409425664216092237312626689324792241274308861919901901449766843650240136012688744542493559639513770600118071968581256718119178030624039549430762405067056325282207727218859440169639740504272645811580770760091762871376233076207420690568288578452073604105732819305860856135263246634093625273104392984721446121504593716664074474803496982493347145064996251798519747386080596767708774992045455092055906631079127967782072753977062310333950987911314004286081576557136379503442622484880621218406367094207603718250597181705334145889670796137334852078492109464450583184688450429812424224050798389291778041372187679208690464139100166654676005776468746722962502887049993732911034864793279416227890281411950319882217666565357371047310919762972674617770843127854489787665219794314601867874177597109027613134733408359710046738908788749149646675572005841415664410516637577621085946877881943585575859760629577794913861979188574926597672864237997967388208682216594019847454532541843374728946589958632085275170133332148645899940262491008694263037195204953120182285823331061365008964777061664452451367197286560085529389665093571777293947448126652458649766933467194311690009997072376865170028470591345176606117155685787338154922054368010736345327145990159816862081794035362417147044923446880131017437191922361409502559384821511120574888856315614288829762550035976988298956914170800825123315884098550092848409711799759049016992934270416344863071367926957738555932124560025801529742875072967826320623937091958842991366757013975870087691636669627399875144580148069374152456653727792094169720707928479145308247298821457143519117264186405239758650260443216326165694887255712300894784360086676756706566470796179021103522054382288088543516539836445017270895803202274616759020861912563887988414402091716022572071478731398270814319811855145078821237093229252559318983998685405164083276934185599696368874580710723121749261836578373516440177474464905485010732823651855586080428394885299312740534036968422794027910277738736846217713015514978518100536042394860455382284156041455139607803328686711900904501701282256497518426380357432967636787119774762032811600810003801438535836940588992309447590642771001211487965606141655773559629449279057029000192394190262097960763493215464239784916887037618467189694419193434086650473707150683738458411861396516570461893597017596275376137891624021694753211843893207191504273356241836068174672896122151347960426402254474617854399487646204757378596309041276103900869033962402543404872869929245933855067110353603761508462245330157358365608175406581506380628519475469367289166155553044692236120953873956110243076484277788258446422263574659819731136678823095313726741187608566124129006339015777699886005928440626389112026695394505045655396371313141415460801386558885279535107350139508827012210083314543845927176723560435977373115207455210150368372362256946085316583475911414884418821278715526147402019105314168328218190984464780261003982051456920527725008717969325748964566358831058196661692113642439102680025320349818355163270622045579959937185637446539509377784531957416988628708629091591394689496150250154967540407470218410351922456759066569766784498075777172616390377675597640008879341416823963913880199977203758503026140648469643266676655045981970904394258040006772909075764735381905527957835605810295969405347885693286451914649819234425346286337199187918645879490848767104845468835038629593335879482845844959007884655275150962346882054814731493892998418919189267209612294943759355773721471634895670618522839135331994075234017332327607802497792056067189696935000974005427336023648581477701530140749744482061879988181159986354273447220927562593308336708673725757674920448174683233386803230826530906949599214464806485754157592228193801391191387086733671934329072367797031635968625858297487018869325653537069545994384742577484751309969758170016755998460178405146462411872010051742632138389723528750038733324039887783605749776947065141059758198991752115981468077124191478272418796424412201013185582724886542856476040058656136923227693352517228445557183718108914679719659511044296903850060379379678037116972409623508379899773826888817589923760399469238401106591564352364413762635594758423514564534096785524249807989717526474925055405145741601540543624858083422251891762689098160231084310113462770582521560737923069597380743356358991654625130014211695317673918821448954186712585975726477587152930958123340160701686464848505136523674243070429049189139099960803952128818604946272886316109785606177955929064920358850405488692234530689479326268694779490357389575567527648899634850751131967912810970299944971174951250546798352989936176912169428753912331134341583032446340430199470626187216240821825742711769779012882422105664813618549625567178954872225050628648773779302714421417668240600306878141878402503113886691058413427664003064441305723879788818224720920361741537932085729346188638294526314327100960545652238290600223024137940129254638737514734479145650999097596522798288471302439243602124600936718267986515352438881939812125470117432196270097981895806484862707645367406004279334308007457076667410315738677392544050864144320988326451577186262201458085227269388416642696322456715457326866220920917637132784753580412914388583681432365535057492539419728994467119774417020000237021386338657651600258122171948840209441901248374572218470746720862873531499793188665786908894500824779565883625149795970496956832426431654941969604589637287406382405351597277828570032159497994749287473192680515999860094259943109411151631294513740894360631243597812732195430691485422433418857410550266249562850321463331691883135536146669379145256629741455432959399827803093202675758400012732860656357363344085660873755290682446037252058858526926630947124923560696537727908162213198149806763816794243583919405437355090305427146666328427132493925143286195265360696913261761595588196856657512518394264492051366567189130912236910218433961751197440066680848408822264521540664934749783249335067922175228154034549503202886300441084493124931879216624308181758220870356155058166320592390539406339336767541249221255625664114955063523743263164232796326359537603185997345655951935187478762573172588726359243994571382882840099286563267476664258477545870616163726359734699987272105549874532946504113659318552463555683285563075973558052180663953402327862951468059826395413666587630069449770870437667302583953510121922965277719798172072136740945653947006307232219939663865836918373060991070260686673790706541347950369109302172071783359009306361990949746895680808306101788517422646204120699826507193364432023900452003118737341592863948271311837201376032303421132462005808479131682617851024412810441974122173331593035579790268103980522687206029217336093612821511543117732311026483659072357846510931262321407649341560154351098930140403866661909407071254721695678731826309575969643832378478344680522959954401524598151264572089657766972753862060282644461273532680242761616157972370557716951138663431041998469671001297264873567747720346506606570820972765533528079829375443070096659800043950884399489904573859585408562720159586984216937561062988143840373117575310071322172284164796574807812184160239337228625787514061818039711812093807150045471578096025153897542426519542488218619514898563252023574533547957435217137277372234238013354303802060456674438284719579165219489797255191351982329717210726014294088399674741223860411387908338801602081388125318283208621790794632878800056014663208909311699664728711888457350900317113787576791681267816740109897092618241478975753676840283353614601396137389967896193794883026743691286765677853075695449794104514747653983993530452195053843325500506195248587429159923850346260523531656884481376312468511287966189565092721775707298268620693172315300661970045986137357096755502704014925283387093928538857399582817145889315422864798305633404531308926492285767835757447228297468027785392385371455438661791803324514822402939229529286477873107030228029338565265317950692633017771607820462762670553223099718834686947871042057781498516131544899602717052807149323094397905806685820851569853002976530981902254433679884775830034176078549171830857661966914591307971881853173467019687552471538175788826849958007124082130200779076846777964202677301143431699227867155315338284477371958562457171317221140102806484546098696931700871441440627778703480795089260457005665590479575925811632566873560269547054364684334869183351518308475627897339810823123495438539498338402525989940261636859663351987845714673134091815478900373983794361665371028459377357237049079262961150794712608331673350546859407257727391911412013912722480062118080457570953129843680062205218530302422888990651680508646417119803195546110024534897184848130256095283801000426528748815536149102669763668088560809464402427536313254363749187870139083941374072732013076690395578444769749069078784383014396729180697767383308201510582003089847079049416476865001559688308982150474704036995656980378027125510325967077642041905906966385962504089158956432711431026065530301640724398991757594770623022358997531733883955281340703997229806627722266261864255961220725207969029966386760475082595561887760602068922270471823857902231703264483700270525757709281146871903071708277088310177714909940505108905153543979578353058696040860090164611815009839941201209652181427745584862124636267407023970499772437489651858889177290758814703238923000790264496270302852389120431105634800794023136037983447786404294998776600484500366999651042402902221582303694782220162862487755684624812312069390252359367765089173461980616403374136058297616189390761399546727563507631990320992558286511258960551842384007615961335665298740949540963725207994489443025423401110224446036770408485544396313425744198366348600680251233562271462156832484018482112176045620640647370950836555309757045890863406954581340952745814185896184517522581819061271381902525259566397992828782186721260488812473426745283938088641488011442246638958946771088804711801719174249776007622759664619635118867141482598408750379083588270056797895427211595804529254869443368940410968176884435872703254744147617777579284282527663711361184678607257141066675968716510415012635336057346682053251268911392418145730020172009665889218532785349479622479392704517410556130866744685218178580607550027651014937737134934710273598802073250789294860322492134717747306206261084277205137003942998673348230521572805085579348701090572864135923529707971935355969563993517243920760875304461642158368992126877726434243980661246291723690945230751096703197328770440198491841832446151684406142875096252762161389841753723672960846241443853043653785286766714308100066755231542294859547228157097362021231868988110816564565991372954160791562952348312241146867721765412258349833760802328927161740057063703332858323669031363084850897803563597078774644374888403955974785290749929102048506897426889311808078688696632561549256881436346622144987968453652784206576886025389978122933283474579260986372876657868113071254692728681213110872985692681644900985599153503104373430218424828894859958764789779011399299221845814389099914338636475371926430421041943840440139142856162147866453775785897343206712068473080753690150207866234884893220327781077373702884810774809633372082991194605163665240109929134092166250319220889712044968415244728980595976407857559855955645746059379172098360268996586940867378613248144309439586443717339860214425127980480198808455970383433243312199744872323407545955073892561952753099652323264102501812891049875582708069556596442802285945467648821704591149722337862226655508954501513366774645508549847423166492948503244524440437768887115152399515487489309433161123004943344916767528009562193411708495120789989063034143679498758744003804801005333380888451559592772202302517039929964541107161915455493672590972269006712710428201621228114782488940664579535358067897674347936996465666126013597673007358270403475417945589590492990869018747794444560969994430175349072308987649780204176619901451307159759373669932701445905318247600120199922761837701909818696925870252830839724972789717155973314482299519078819630149597747813632468254007608641988290758233752704493614330593874146505716838543512187128373940355200116376110333657854652505476662494544922324978576644382449516389070882912637970501386573080593180380846257677378631337125523216887414054107067339789507969312025788972129619796361906676305238904437664301904815612730882427088438396875060816811294394426273330929589740677078473780713234554355428912564294395901858819948237643626542567067723322000934296021585218351730880362011629205340829157494623447202058749574995089418734601383662142057868231608502618033352118453110147714784556552352318610731418534564856131031836496702162567359209989368409364498944853653240946876443543940547411068385081149802291445084098502709076635786445343882593390819797786438965290866021995905263789269124366098875412349161777717386471821009303235533712288049362444222836669315580597686290549490169778507409343566490133375004579452371176841594004410295889461957178307230565473528502862532538048196628049811201199876040407182531930496710860177320641737306595442739819586922977043416585665825717280048462916488239515821296195619741992032520823174769251764039624816120344078564776903133348076222421501615261463656318030362531107245344197636909243481439109182924599074175967750562245170306364169865774495932616483933556615088161040604285648829453013168680990453050526785906448458622520846128364961722291214383256742175159161190488959785921125952240772896798938712771879575022377346965784545250167363400820923893367722111044663466431097165498249657040206221795901209793173159628641594271038948834244069649053206280078194412233813500544296920377227898611595254340982415477756944312809258836542852408772790795165191894607588108775733564019487081223966241467254919193840622305298240340870851240083112748250443087160495375731836399649148546318395723408248416569188074008769577991664632606747978946909196973009709917457765557571366886417615203068048571217614844494965495700865523200042751573191100979418616710586238568381049340286119721455756487963937415606542823385958052927530738952217713351665079475584287286374539959089461733179012688932486313813398251574182664657186639279671719842459855099033375068720666438555535808994762671935402991935007119499904363642270721218857910555346483301436698972970679871976248097121666871750012282735912907889009068196337264722500346555248562826888886541469891587958749644257123797283460827291854457017625299098140869382597139368796575737258098149305351439650291561713009505657303159525656277906288995328646252058420437690917724297664116272199002699657462883402860606733965633278221846726166596518931562519984631449579852712453909768219000075872756899954965119485936320020367155442080754738277512807961436765541804056562884512554813286360789679976058562513369571232429281251442709572062779848644289013663536584035668856593265472378044421179228594346603075850974585289042208744551266489944802098110504510701074127175202522874058013386657373913618069465368600684609872194021133798227206574171963857433425150040937272105687756344165503772035017378065178681899279450103028229182496743648646029907901842058204262215212562552057283658069715375232940312622096384467199581936427836656344037739495261288075992331443305667351813314371117897925143473644665756854367576723080431520706241067739478871601212543420354918049638446975790458030230879424548095893810679296666505723715943968011539731277406028447845343801933209385138548538388517730204152325901061691849390187143572162853775405419665244802669000728300186035748081064646765227254301109502648283288062267507850756473645071625945874596209644898728311741953722038582452665403133855265374215723427206932201128610269138848230269157575648563648937691246903469036211684164399016125871960725468916507587055534622198830976402794039332845824433354534444781538711440011733591335035321170788131946360639434632406060898077760742745369050479698679071743423675821927112862557003916119956587139099176256834145411770919549556755030818336212074485245596887437333526756544333728454956512628420535548517881571420388900512395031274008603541301248512800412069653813814946296921164054225896833794040039019136700615577353111513785058194122290524771160555901475951105106169991003828407753815753345858053277539208104961047835124714759266775984069802248341390768487548065188663999281189329139765384660820422677403922624301757805059821470766188876640922124767292556047374455781813050257199566965306494197046833024918923319113223892149758313841376686634040046867319896864583706050700770069728678331079365394286057043455347279973141109902373058774129667729070394503842903240075498554531731022391436082930380076999248175850374519044372835540812538295104216064411007140774561318517050923582959640320542950327933700280061435068948150461712349685685224433739431221287230509157504639255161070113485112524747770629773929610595247006005721547552264927466072796344662278124681134795553075149501084069175572623904467328420549565088889335162581961890239258445245835647173675186148888291201813533631217787519069356064033049691609854453954084642592640661449746641969704399401742612535798319728610185047798650679973235318262287808058948071905287464067204446837905576371604716554312776313626496494807242058256168839178570603235234678385144736030910995682190281928406679674869656124062422187456551453395305046304337219594166168732188908824595834310030234156397798635443132486076097044995201686338593604037084822042876351394831002741386052098792599579205702848699350406255636985373915009302251577534956125446233474695016658442636697698378499660068523808500462782449842448441632259757817852121991801981804282533824923071929821419395073435575276304189212807373912245444036921831860155312322779039915054284141783364112403812406386026336204353796800371983011930900693738900373150931546106981231804962410284726966769064552799041296448133836590518195696457198863417143927900557981658737274281973484086664340028132535946937245167332738192642746999753690775139889185316236431114252884773709352910561622869075388064103371360697846864011253136785291953727234581899593525001247852862990407594503051185901203035091520744210340179545239339005810409019676421141047458044564828571196245881115405953248878228784894937585161949662750675540763548517281496853838326288244380881009556633500270862297924950612196872597110541881872669562221471307654423560302879959922452023438995965187463247617527769171391135513810124730972341500157567668377731653244934798471686851821329985770659151997803492248953558854090327917090706016330760487779906836612355594629103670760640163843009481342646812711377152988557724180282020314090217979850753298883481825577276632743827147607057646368931097951380623828726255011801969048155250314880468569885855723077215306446306881129766395793134951848276645800141749713435190419136887895952599975312694284670558029984797568833663642674316681665006852350685962560062610890762412249094409921959901609103524858432937469722374438250853701906683399776782774012075206133273295800626911589242281878926533700033323029243287015149126155673918043795003300197052570690178300724008510377054111690563457238049194540625439838771989420261779064095173107805694746570682484731442775013478041102220892785578665824225850386958185842258109968898710458900032016092532134558424468745097050696518883074082119933268546449920500591798338187396913128836989686861961895396913974656047233828519206490707018847700382791164854028058968895668025383759187271082698388612364412909414703385153851697108098648588215952622737730831881333796696921359164299204863905923934459664912445265084560895805577025306745093625589486372119308039016287653830374421383859880224899258919789785701339014021798508528594162942719053189954574592549214248486979700168598070249814307984965370813407430500927809878105912927182630048529296958533291669711706580733818191412247285466802280651689756428163722702190009725563496109115165178079988160497612349304971627909055502577477994502211659631876154319786031539548594870742881391896490422709700822391755192807434861870923569974008888402861588568926897448759170494437037194039680242546234447426273146823000400004772248933524270342262445071566588525624799351148476067138246135575731833819423632462116255170844476980623465051138226013161103202259611217326242575750069003437082222639933386182274858441057530459282177847983861853487991031052046666433723374797800206008171834370779521061963577458793774327352785174062907922478048303602399833333019924864718823605498144527524710894112296914604385511269427800319471885134374877798957958536435135881592496055317792855863882191526405900482475245701645305360614915650729068762254991468521854705544815308112756062585200394836409270975732758000884673323310904842145314122501258123410500800333238610215420708966918973796381609516681040960496971949604664234988264287456997536761861449760712601847876850712000665169484311560149643438212790102439449139758621596739405754620092548797987649029500584407021483778182811586931533137605430014484655080869778449077107836192782393632637717253763388161798534864534327278772054629649073601273592175426913142065268865550687694759177661567569744117232146357673859467998131632597100446297038599889989220328413658132044360657082535259034793413122062016843271388258673557123385479759644894605445745687152644299404651548245442241119856453326535428292756842505000937768762746851512734378450214429468667487465578954323296461845787047817569218634096877727099930907725932426757538092368055549284282733551382038607768392768174541581183527799599209198538820589095264195016561598268970667410085119177094286126188693203379487843922345478922407556747709741376000375227209412303829270191004682029622499268308386882212896563656475718661265832548079825945383585217011216395856826152033758458865736218721073661028313254668769962082952969726546324566807436591917176563636735068016240062623110837083611455952119305996190145419518561968563694545420673360116082612040821954411179596540274656013365456311723302278314093006988185088680866502869956049980259843263065249260407950178141665398152079672993629758609543211884593703643564209114611910431296113568054146115698666815603038981774174181704041059854885706591305684307041185140448095344484919414819657421851089166230841636890558852835327069014743226356116360373947616184869144658708833568365031267642711925582106080167006763296589988321500437497020898566506037527231559013953716845408186041265391396880251387284445917407367860345615086266995312331413386002479012006010948508158736313483968568430857994846672297050763282342725381731955851382024189795987938414565229662040403243003630352543688930235969984466364721386388960481168228392020530755767424081086668572415677520303502052979006408828953092697114890987483864326330848032135838539760735117560311262570487303490026049553170632519897629165810842483280374590052941233532637407368732939433260549881498046751734787169022557457298638747577876601003832560447441684628540212568667390844217475463309162053783044750782366158203294793580288776376129023643507555095366993740543939727390889983395075868947447116007485666313607980243224293918710924848261276536604386425169179601228487616215504265274428790143624359279815162964310513751560876736445878073886317918591181359944017317454967599449718652801871068536447383576045929349804814705649505961924997048005645361281989371872395260476992907708651882988472676536543975822375825052736708569163713972135542987271736865359976310038302022795176569303348884652455253405232735235053659988788705882173291759416220511855104382464035396690045662300094728443336858035563739944906695307504188885743198059595963432559591618515440606420900910806453435573510064130388159482939415244963372955067148148662712065029552505297290020481827226622178046073057848657171589456427874380621612773438567431055096591488323323087553153812600105203547154350902648060637899217161505935996430904321873839453831248372027638487634422357909213948421485587673827481388490003787324099893372295476395290354561558169780626289760256238881256337298990255393933577368462452328742257772156993755118110173350887645158454662409131475389949175281265119983444799343075889030155488752480651832172720814620425664771155579173488182596904769285935577020065470210262617577725101914811595192573193677784741032255373244300362906562901417471227458450804293355179033836502366715212350624665601001763837093984283562880310137118135286995697853799927741489622089255556087679007132296198971941805052314009182994341221929528886170546774536132410256274344144874865603685672875592500652174145090674210943365442797290860459620023491200228482652716191260504976667419627675000811218872225054026966484860402892812496751368290663915451786333951110667710088066399763001425889466419205770707330587258942143675827725336276007257331830090007559620419236367829665072638460974715790430801536646638450192547863875991008899967414964109867092777321038678447778797290656212384307777225090898193707747443702967416272677751651822766395293741831247718959678084691844105505276417869880499175542880871971929219309997796149805372963086443239439871731565553053830284636701883485854506369992356957697055710455182856319507499901307973055573956985905038992495995144166726758823469398429276648726472962927883874686003972260899527202920454707187390448217466142547913249834171296652832938898734532377972677687078125255579134566706110495214981983495393958322191561064933494430138973172046893104446490663471848203403317971981567197153531651096761928818935148116440359842222771082407493575785869563490661095464222962028122905827541922336332591071764094018426961192595820893441198040945655922533084061147663948555559821408998116069332546514415026904374928516831462176780076215965015486664076776666983007319907472708285640186430152574646951152326872706370892596410517270871840072311097289624304081429787237562127733673764708159767683957663430665555210331692657774755110988421224895455258741915069134811167266468836750196113418795392801408898166657430699893345373807568063500401820975812396770108850694611141173417640213582203603603266116451516135305343109715958377484376864944975691325889512674528209844780965916429405040240543028555719551713479812101522086249974653469052914362478914053647841860368946718707243130195029337424476648180424221373991231473848206375607694088276109817105230798116278480466086657164286332621043645468151092203610280403182993279030836841530225233254098956961530817399278345461045112063477982700652518982352114064719490716538997459605786157195344063874601026491981730297522948460608689499089022669541036614956300363622884612787546178547498305431442343213252282866683368923409798861145696001864560929483514396097436187011231432520980221427613343008114913204585620286747050023676071233144241186398454434128437043055820876950773650152669860474516272293553330212715861989491429168356870599214898384525261804086726236866490923525961771030898429534317788028302747420025990828320240264234847970286553872030222925519275419297030301438342515565229727877893550814051293480386462970115589591529729050671041547716652561075515990090549595363001152499580669108577145285911262006302615666939186490218597368061297532240032430113487223614120192973105324814988159933784213425204136814448450584674492310732934024580678535778149144781089942772103934485426241697636848391765159729715917051099705419507435711384536364486093087192042488485899692591552791458253934317189713894485697979003734509530731964649332522003709719777018231564004501273608187320487869862959996223802134865099778497947626280132573390473590641397186322531361375458863585472753089434636540391782043339164826641399479161956973031996527995733763784730542314058912564939430287322608931727454694996624537384977995593478385670296149982395682066575573164108234419461913202583305448894101374757312579536687332289526664698955743767112057995624640603999578128763958034634167345475686062554470577962974048764795626220487304927092758049116396240715080157061944967693484828951531828853383922306073824791401457201244840982723395224777347083259031795789597086682005540807889996672517941902035307476135067671929441260978182785778484585683381948438507345156515485257535698975617646165398983144135818259360303576449226129406241040401921069177715484842485267719703439583963930783578974328143757806372171280737428035687879396223534723121020630159417087532281534120745137040022087051358584155938024200832911454169652353419264562991292812775833169832830660576017339307329343879227607420326642462680109195633966022541550605601524449196171806424761733415392417819022972782628829829425195815692999112904906302636346378918085712844762089842379564661589508349122923766721041776505501662845722921849539805302624891049100461771848251765209543046134500973663097078536948749570811105514977785478898297939388628455742266334234032295987958706635038132273771468635112333740271634848636708262560232366149586469999353014383202945227766091668720948049215045806519653499015170792048201489945631285279233959062557631429722481379837975248939974087840361785320460656450740276110149246260240552315698601242252072608048757106309573011213150580986513218911611457609023686713040469066856345147799569184597417219512566644485202994892026346081150485010098527845820810851848112658556846608948433272207019218793489654444026398962984892846579274636962708286792986902291234300393126674929482528650113889336492005650309647567626236316546726224054843425132300891607347756579283284453560999294932284854870636773440069791224202556532983696358270173873262047137462940801011049477521364006231037620919110396627827606709346271279768951313866785860446670771164550944295216264234070466415924746901761521529203548971315798637317028343586015763476262563897166045905299585048992076851649551651061396381458810950244550594808952510211349207771067977122414140263433708277557959995786528060681589705848803063390235697052017799194646141367283859998864243146825224481527352955868884276811729150857463153327023059977681615449687622972377498892133436829133135238903547509612440819264474011832521490087150491578131081734269205117156355844842582565512421987149029740927928515056227498442371041821753884385444064594184138495177430959543328858432123452504820035151159531094261642340944069919844843598117364290054309443010662321101236374926329353450147596581262992536585104271984881251937858535812468142573301521709370854942547924273193607884666552144870541809838613396464212360196742594369853110423883567935057105807745054521256284696840893547976133990117536461866050347645478771229087320110341156777638076142726444776023352482591930293008733396406571269386656641538744166337745368553564153286062650477834329447102341204541521648536956604758197387542024383113687336092168228641313575333273330099645419753644545954922056695991386815329015679278011585545955516254052079818098242775397255075853451724075537553210121633937356918667743196046030589259276092172704760244504756529951730298150117891861613697314710934777167917626176042600760105171788539244582685407659317850060819615526698373404292226684540413854332878688952100940443263262958409898138453629071211516894213405872209657473090758798230019532143413482169972764173711871295635202740010538658396587602980085810568648181406237600798181361009344359961681467458405579992272677427182329108329516125222238637915361234184629963585846663631935066681831047390272313212487016226011986001001606588456765664737806541220754161904375032812223953640904494904459626824652331990317959182569973350109984728577895478451343618006527652063673821474677678139215288253153925768893601804615557604489305182160821411767676530642368731195032578920224802465043394588690831577453056052201681157328860086810597890819750562312353070535004839661388221269554927106078446380579676673776091234472314835213990757272301935911591476914828134812537341675335503415809135122820371545195303636124555106640916214198032299469348129260057467945989225677382135943231608813269018891640773253416331454139671327279804111385663122905788950414722808203090942004421951724543007120183642565437569015424087530038924759574939249432136742381475477874238999063504283437548599817622914804464961023771489898122139039877417241356815580169702307291109599813319230994268148897204285461046771359797644464474195813462404989652279236823018044033032944227859186702735214699656963733470407659850683318042468976310112669044827691653964919398946082001272157392737069436526541771217610285055973437591824875913813275609999768695013574485874144490045242290570434239030300728411262334091173910474304710490967036267951800009496782657719361463335272791270142827479886350089663650688447262878816429810412180521526538107113983710112186795984040957074343773423966447280578114211942619676007312422848200679746230036455981745317028485291248566709588115774668126906471979156835273451243606347420722454415216197503442846372479407027415095069841918777710189620858891652683809859519057247459813397864723027653224856735413773239570759022373293273674969109257820135254453251705971904165752898248386451026800359144286597013354285633602276444173825601903826477731259498093063838734711683846610819746144225542158383689822006168383856009270214218321161097802505016259381537058591209356844681128176873795361302815998180186412578698741052547107511436121838863983767448869683362280742720410003198126989148489756456944045646377797705869839980466156550234131157605147615361201205137991787743509017286218962147483153926604994837170324476310116924664403666476756762212286803387921385972979646307058178804881878212474359548135777661709131654378665770018219085234343339273065201176672902616749800372442579072102923154686498823654467095704495904948123141294568696112090505330324565460501138752295294240319659924834416918340633238256881372800157658868054038110900530161232503811748690748766162345491476473141732179158366353672476841484459433621979951795497788816559189142894607475077025944570729008613387638159561390184714580410840385251769032986184154908185940690568675942027953159402909695739290175250494555438479197489171239952828282594618416973888160452679843478724766518100781482333104235293509411356894628025258401073053477750495989077688339859701575296304925277875991854557683813973194987771328360585599292927718438624787887125769617204802595485584834800905599068294923274780768788002488707299994926622089948993822790954487337909584351071955326406612333435857424350624050743255312951567700263075782451611164462752838791289427839037428083183564172456319448254789915006195534798029863523592096964337433190656936405922895560993431370630638294688401673161305399566328647084590810266377438720736022787925195145730237809727757700428648207125473424763873133563698975511575445440630665580081680200095477076409527434233869836112975971099262311635498819746786954793394939159973572507107124590383373145836990676122689927365063880936116422583842698266212624660026122602533016244659321749102546307011135730310097300093137955303528101551163518465792828344483935094942497767051436767722495761612760951186925737623713650877783953874607714435505258517229650874717951853283035634712151796187756037018277005078264885989476428220228248673420960761595795106182694917338952567898760648640921901810445529991776743978743658018266424249925664955288598484140350662429773058713267606763375709288808594098437878888850243666107267397046226208487656534026606047695019702067367439870671505168927374916444894043556932208927375492682575661438458742178087375933646294523021983070447143777545751046144893344215155935983881506276340204500346772213802029232273060630307138258056594059301832028872691246330913107634669258746602331508147524476123653451762435935130578699613399873517710474886708039373346814724916175360430659128630106574356254386273179903265222725424441580542309944168257026469579845793574429910553197336880222762344833629521975814979230883181500517633184492814684734988580603877985684000146656193127670764295687703038596175338532805065525019707980229790099588812097334427983594199838925996578032774624988997719102731726754562281831487750034947117831030229506214642180568342023258760219055566607446455034746530822880805171744152557854397546053730721494944914850437986149849932453213740407827610827073785618557708045210013731818915451732905493983789796568598009120824567531458843577505171789080542723106581328723751660908746648898176784023932445279431550477433151729637907621842308175773723967888382360479469322454016527918586474328096899134625206769640454314228488161254920844680433394679987344813297096263825458644943584288805077044532468902194809829441986900791849398928410890616147974272743916700748054003817080104897861677243237668869388057073681725606444770427676031936045494485351864301557308712088465902164151466544730421325078593477607383866145003611513662587393661593483723560814575171904452511233675109655609491324815683659015573036525544168012266555778604150267187785004921649863611273231800033000323431230110632527436385202375250987341679037483412926102930082728843990795183255498245013616490363077400580654952518173510121495219618610324183832654488011856736282315117877555509811543666021190126184643996902644018956395884771841066781136652600443715516669086501717774537658418707728973085346524517559796703600325872643417211091924920912102501045180259804199136676388756264989949090678379612392951328363609432414610836129016526203121824863646117277362316913736043061412707878978397182215611945969870511908483014709986534182278816053915636681954482575063931302074140783833773245989514916053905277099898583891022403961753693646582045260198154508364703303016454610675834455881459561249449312651425614532562806720948287740222596117662569971732612642574841693384380873572406943181833586432730164511587620079869775443331414774026598928507441814407938061269879039511835705933498324809651426619824737079448379870334377024572101352934341036074989268860345095831065585971938464295285322147523003081648600710916388605868258462417102631549297541082295527420846876114823510886991266617711044520229959402394112758429451030791209490952353437396289269462277088433803334681343817547521788782334660670910136041098479509157731436173791477699940886841123206260065131698967508725898012527569627040655204636242727909469136832884697586509393811247778367227225033404830879816778969707332938757139365748968422792502130101996024243411889224890589562067879990922265853720659015487146467459886677195843397663676135929205832291813368221275554847636859678986644991775548539300815664543714592798347591941132577648437994547273955453446533736416443924027797421902261583971299595265984888153586736957980826342841371852121912095320239105070320867165197492531950446846691476521377714346233415086014538090930503761925409490918203576373541950615164491384718213544961379273173578381939815986068001645204784885381622428155243334485644566978170823539544854120700527980112196698202354882353316722474022998253296706965852152561254423504377580074095587768777432455097237548322081229006415249127944901697356724594111709249212655666039539977138959337994895952391367011037976585602090044883789142780942775140217511701716741481336302689281740386515782466701306779281787370385331758718978948106811376256108488375661551585099697562196493217842282604900140095814635492023950093854614319121041595430597644639930705074613779789083209615089014342166875984719056028723026382797718869480623608403753214392876722907413498978588657267354732023736062746542439995790171826116987093216651984052759227847836168283212781200125057439025203696762611370959697871909397059028831556668983555120100933787159106037393533676837616628887949534675499767419420128920913849963781558760085069462363931936310746471233199129718523637075843467531779512009542143182296954018641615856050994566594328902212070807448769491110252328737355892998110931109558101257959382316364004186393068407064828886316193913434389506466919023173257508024369065743337135150116691211826186576114704287582159649704254684990654898423585922607675843340435057228888823163171375778715502655978928517913593938037844063683630132516385909097184113148266347087827458654626636403390748901690019667536074349269231686073143545394683208706900904957384815633062784822464135333028419409656343930808280481942680366595823469827398213899112153188276474558113386596994994122769580434647953996519672863195259703164940557751125922031931095515087836113115681856983942760545636163831819301316072490784360129749451698270233049785761265099641120622623314462081954837940559979108830796485036684037005429407150694920400609045526903655472129851693696132387429760849593124930655577442757965652220935894001309452183858819517201609138808177822507386359904676033497150991618542074521003646623357261986934053294721626408265930184248773796616271417856176204292962237768401473704461769440406059739647910999073585433855279111143453747992434469709221923215229214995162651317134003394256400593209467910215328254802850346299928544856133059189552361651580952227134102757247792516717961122513554125533605994533846820179980942589996493069733818151988808150157250585553014295722767928162993369656406821143407931873525293856207703231102944280206827754433035977566301648204155875192573210237936547037467488675900120454785772772343810314879300672091928732847389037865172714231958279742008009514079915689105921695845142149254859931465751299210061184030079055305623744250931659558663125616518424842051528779245835305801208764220874903987881630933798228206966669543125450357522011135235941822304121544780697292978163180193472336858780115945971321858585907436245119106590258160610859823353649585490328695361016525067778896425098195344499005651824850234420879531925548158397556889975949793511862676551986651096829302774223341316108487158563894294012011360369755494877289844970928865035525160050539884619217971883242171666935424314223826028506633960951042267516896776606672456300676258160585673704800684095378075147681361131525448348339186628325772262289977763993802064268724582514307006561439947949361982047654297755854896543009511462737649133806942246692507215212437363744646462753006657742910799377354194777696643736253618266108750467717080962093375876938617033062433628664822746787092734709313993143054422402773474458927104615578690865258059360323416478724397077831657322093827890468932052374259582940615772815080195727684424520024264346886050493265812921497238868053259609913066849667594816390087865558719554865109729179893759262816435781385485766983946606936012472114659760922012512748349475008852637031837842467901910760847835525421439954460602097327754623897701272733070291845630395816367608082125512785698625009117853334427401215347366959174514638707342730292875638668496160853967112993951978564200534739322450762573075272335286990978357495181228912743270902405438136139356524318223852676730259256224212912104860029862233623953655796056945613526535392585194470573155653314733842730270099049942227840585418484294900908211769385121589622319538579633507948378317321917810592114383802182941366020622913397531997071684016387605413514212488667666750430685470367024608159230114157076385105439436942617136571684020148814096323697844179072886340525318170937989553011977599477774665351813422579076070410507367173534063395174852163789891032647491507166575176160497116296896100964564559123783554827425248993902515461149071722133295707619276616810770726515341194482912535059477559113790166815910212134789298161483145449489496959849212186271132165066117696511601734793452470265993678316969925465848728003397178038869011162134906840994517744039069978025650193892860686804939415232215855846231208785234451950924618651359496522155966331183261059757304378959772716720387688761471891517673151219295921009910892114977065334054896705009775841962726896457006236370001015701541566846176059026472073719475461276299369242392984767304827630062939620461775532282301944440480135263109519632448415633770952342206961896205495847938237106013599968560113251953777537844942020485300817951168268108609351066379677556210370338894370967786802438354247569788229237000151602971131828855174501885930787325250081670376490728901693223139030401790025233831636330943509711134744495137850435419916217044512778762714796401844943902336615482521597616768482799633075642505400077674078811840551580239937826089309527232980745580689110861458779162557722054354053204592870151854995071104217757965405730080016675157461926711262917636362778330854160528134984980157936440014027713699487363612173198065129927197536808313090526540833665650185653022471033985117252476994252901739176768951085141790925658121589970454255046290064239248438198572827844657847899007073249337178963797581668919385224954339313236193708566057705886174657993441393643034922880589376431124952067178390257312300855196925722642897756369677266880515628470064901099535676507228739763068074032648651084857725034933210353090358286325690510641862469827953497042353714534487433811985899290223697043670296520568860646898423335015142008926391085525326298831942745247854116726602487078753083138635949241996808570779982632474141546892870507683114212711414096526327259490060209029915145793807638716016128198993438001357533109095851391055448860072970789419031374165837811320448952574431558747460897988759746874742466081588236757649780349898456506668150655453389828679619478319777872179935286909870861647780849425588811399816069189904926687122745298161536191377417589564668722070695151836041402552850264816548975875080247561420596710872887686117679374494177250448341968278613365340942369611817415763103934636427935323691482009928234728212282220985780571161060297548965622969968354192218022079295737292431811060879812992377564460880508835937663760680218017202434632885904645205722138942805463561821031942592716612516253135073770564205661360778792895622471564754699860110671405458350831734579218151710674109310170967882674852602231132769555254431530018582122442318236806161796094659943316141194183620481084591023838836095551401007706008941748979977716936166884743513405938657033446653618909623384772849532074224664290632149327633727668108485472850133044445657874297861798778428867490271771381560484314444826717087654389516033414161027666508372715505745378783373624081956331123266699846087201106523131164417431769968900052176435852677387971635523625900028595548377353484057331665006763509710273846262540530245334895711293354699888257527722232698659344677018574058416491901555634529880759101606621481934414614085933744488398888303286417997012347973544105473320138342231840122711879179644837849336810967138316028782644548773920526701965894041013102094423849994825780594848723907316093739019661893330241879068656822938291517991868490992534754154352521390250722214097165151761624628868702451314492171819501204186106425603821427290019530336385207849573137102164195231886614164219464598377563060349433278976523193254530365268425177616956933663623810168375460173498721114145421163774225522169172961087481082282161483750049147672690067409742048927440298122432013490987500072496179858305401501203502034771540421486145494700300640172950857721313069843746267744619880623972638483519309457825118740829073673790960650859926731018501301434586506976772205872960399736501435183196348303062719813011791549746411155105211251455344414659875769258824141565199981378417870094893997952991545575528542835904567809303940997230852978743249687275766805770300135167330302431657130554776761581573135942788667712433720321103674001972300852228848956038284741820719766040785324190970538011889443579298727638179445726155302615532453507779883959665756264752160740307220808634126587029594145738027186114106052001570185810419843509339894207297474494137328128282734880441931766303167260831219536038050343207925027289257126801738693467996525893280685366541968842504338531747039040677663256416749203940559900206952936027129631505926009026836738992504173775331061450730436737988085034014981582220671342981356964675548434416504639473157983621235557449131680680718782708972145515911781060417747379239800303071798634499165458884268045975595193362429636624922477632300706075577873342675944583587779110118530552783448442980536074367738998397791280161056935214017967175626026340703618971407466688592363005021591235017632150507719814144277943336358192278840431719916800376154406698875858313454783714829954725978058010928945830892505523966819157173313645780644679148302900519699454515883930391035495051113121488504345824777116953181620082144886403209587542656333228405205251196186956503410911943574785518249666618982713004108213054108811387990779450848343425573044780880005244928917344643467314268351379796431010016000060863274372450276811273502362308745886494274272644184641469715936178996042848814688091895605813621482129830146997326385218161598524742511474386576753854669487092238560144510339806542879843256681383830244947818741755382043073025889126161707280147008157507394170859860283715540501083406743486460842910599004301992512047208669916894795196271738278433670723108067402360146432315220721318946775682528960404518381400183635012537077480862773226580420821374023895764647288780345291678189621012401766279056311466883646906939906364866161749981158864524036251183352598828991854498795797168669583896905584475891668598417008719209648161198139561431968146052293415940745075991136312864706249705852178502390571902266246407147693191560758698209292815187296761532324959651233308698012844145200992118538661272015124275945321550635921788168539390339999427553404647940316338105312696473297003445451399838109295881330259669513035015734537441363616037096910138786573635879023301980040827506007909477450273118511850291863554190591589499205915924597652212392806781037329440554887611018557580156397573865059209653766020647897599556554831332340831173728832117298933458479727279670736013241112415536138303502967970709468621422897602760960576990871456213496979756042620449567177730202784343823479622755638933124986076216621837612073264855159720203408494796180371556914598170416252769746196420391856288816345723479397330646350631298234585055909209221834317471683697588219263000419394769720685425461135368906277638163094535158713682419406948939676743137876545677001376669174675369985037155602628586246426817084489674766672043012531051746702314575883895559181487503436043031051126687944479969885047431663466172690979605875495930082909864876378520933957082546205789859999798389219449461913771168010545885297222791682627531208284596985656532831676876030091759624706055966350327673085253983046576796557190718417952391784423931585509176856706407493137710867673335494704350196075613983581935860962775869020642944471574003722437564996689765777794100054445085262182207158963292700834785394689396695905651987865998789672875180545062778882033120063170932262648878279260114932486651751452395643009508893863439068715052153453007864982950515502694244483344741880456284074796822224021068871073047841337695239052397182572596215343268172295349162870083329321297145811832497140018337579276100385643089560439941464204716421504527584594214975479979811324303344458971632861607806798580664954161181837019661021078153916528593247320176166190905788538935660808006573347027224734842947174741490601718902157027452957040419247889111881296096287523339382118697023005971037247409978050295655400540799403820080450382819689291867306733186135762105171838221937182486355158445330375064970840763712524137846501728593276953708956640989542033265631031292208402893753860797295616379612632681836729148727374662168928580281964644853435113408279811511915589422224652584568850540227831564517883086120434486828572239787492554393735088967948766316162557466240136152784855000999203945454599676339894974987059883349202181123178199627078356555785888838190429407568269243809922921924205229700703986214721655590189681875279112972798552408677845235222521289780188860750247585291334378267236685958386248994227904364896766975769771008558991969054796684421981895164383137206378354956568062314111010234729132153162574272292145662691294654466253823470328701355190786629853839011900617040545902735429536287988596910804260400410864988175717509829566140698949648842107954100196620361708884474774326550344564560314794339354140945415060166373562512414251462558784696889764901150832703426781173519811534669497265088876237080752832608864913477132290791998753816700175764123430475497114289391530075399879287726308789558291736412342122301812853901198930214348069187067501278051969876084335186435919457194840045649252719362034448625133440521094809035430805463121775425136815282440073358179575759888796883802426130820872356597202744638565329839185809833742714610521149470112025298040661318853364928661665744550386237972152843179321158807629105618093712020669563717515121623159782024672125561970100827929469171578008403032961813758054541397705784505709163584154665652770958872582223151136903833113328169536054306544977979426256981754972069792414878494427384743309494850568722419307761847076287313027255339992430520507451791440483325269373781868536096747015785875873639137524836180504785473593206878826505275170349381981261127333061144170389619244138572504607885554025563090328418873405182679572178310316379274966600646491751666056166334030495112602498413069454305185357456507218618689536505923779514484263069673597214453940122601397804595552905305302976272401944847847157733350274797259103465715273579540680950285031494366510598916539191728086600803539296878854161823307372742811221197008111955807837745182438280716046602267058962563767956843328077028556137346980236852871557847361990054864459484639295169045004615604648785720645120866214705852712561499918967041319717343260900494067735337788643229950722179827230383356365993931793213672791770653647649829847842737164697761635772914427942630514394010952621489363122634118251653438126680436666328080995359126765921036079369308636713549010463128542713406613226622106654528693033640056767771471333179637110005410634895402310471514516659958021130001393634062257318378351871926777161915969677096193093982115290835332432510635097852430639464284119499306007381560253533141802042406472952900691275619698857050953670215930307458477459528335399305567900751800839144472777988802382271715292801108711400357803029731846669288633946113777149947989106912782727333963347555137647367405820709822143365563307876024094834621945533808078083016822662962789649305283203898359982030872694193894495418308905983969758822459064731966631750530055998851814231691404285949519368504589278475469274650312547679485794847668622824241187389922670560472079660730063611540682405328926489468777218644727152942956579487269264141908505338474626974097365416204524414734098166939292878419147097110141846839241414513153082059281121336931739842168032057431670196121303446838851197450098621228725402464914122905738185498794051745891204747904787293092701676349302770939555922289867264685045710774946123915718892164997835136282747467928908056848829879119340257408313514649748820465682331651327575806837372074426118185462013572311052445944876358488175384295346044741448673221415973462923822171384907924048922047567786270268209852862529765634552736913741102408197113937546490154890150532390230925408044263902749712300672276337314812177411971438926844585508553285885923742053417552848669254226883132735658324181097815969747913592469824393087900674871938877962184605506527222534511266827357458366134406187257144385824538116642462351198835286788381517168137915528320595278123425702361138865789973711459944060212973953018893128789240292261917609532848306540996896921309731369536900841577504289228458290413131426962567792614079548699533533951447403154091072611388924808460267173151520792827011854941188948213859549592324396287489916933770755846643662648000053276958403159436837648308273240071234463963676097922598514454205911434268246767598427671789437650307217313915331839299932793832496705056611400927323029430096790699791458032504149137793261788453578103238916019157882706853879653949371933738846998956682031584982273145443015484910758722540153642045359444552498515467206255223556481002920769731750236601922391187110601872181012700666941819139995383521031112221103188367111700352880468796292689668028892578010720131335737665309314092234203551645031336032001651719732672300267465216279841814425563045572597329926143125991255957695634500923663032400267882668333764554077304593910538895162418190269510844034993594296063802000762022342603469183676215164664279316675266345450991217908799886070896662213278221675998803684670240597189650038931938101439366101416311951701172561386359312936316965913606449056795456061426604583126745467838249390730278785693599362148400098455444239930256491761118682862619271770011975534041267481281806382479450713073496803818102867644583686338892580270444116842494541327367824863311809965004556018140200783472826276183664231496289265338289810992083904100394258101346761659750591134405682508431357819009908298570678541012304294461038794628088219015354776362969692739816553828477356211662662291381536554576964654254054811034040538869538801371515202013005144590105084480857593356834087991567261373576659660861063345523333004311063366961588235217216816226144974111140988329391442436788004657051609571829261593367038299218718312991105235195985527396125115225498548810759366281860402685335268012400931066807381883881225317450406307415306632314779403422253467897750166398539314610590512738193113989987982866030994185360101712442610032105394469973141650411878590653221695432649708698377446308035269213574443186414472539712790726261646353459372289665027511701571628074910082389857083443769126382630402966292245856309742426353544370181971201322987737876614893895691291372190291148488051165000547695889714022998209620238197093850299401943296779393018973371385192846323229311412315032749246495523116955150739248944574303356846415209769490482948536279247538258947191709716926065404637218966033329923239829330780700500421374114083291118609039885275934262523721690505602472025080760123445556780031265050252409462102976320161074841515041694862817416969597026800936652199602392483239667449070221364138918831121628443487795835640238923769041431484421086141219444945027938597179241812273953058318831779373977059522278475124458027264553780040082780286579608620721315139467555456656994320186714763670261490661831502095968602556863416914422202871384609035376694197793945917944916986212300401379648867536904865280587680913929209075611099404905952049952905181142259796352173191306429642767502691510861920120389953871744753544077441948410651518991658946291734360003450133876575362252724184611947315581047734250233750530955482653383092693186716087428513502961530810284687114674486576136308507885069286227553566250824162514186298733110269675763822225732751399185253738624993561907781180050401707073304014530145681881414098835110966587787132523908264799265748217503493042294153524686932934830534384785167515698170500458900209759533106033868766234070996846792898220944809533142420121020398455841477044929085531717329573575283061168095602536620974765585842858117872741252816881288743939025963801747821957731714154084881343298934385400611979498114730989649198434584052157299877666474979384523411490638652218614478176439208457889599641999227018754421486101128098507589531601089169298855135047781546624804935013834765070486773549554708449744053527020076334101458518710325135658094457001149480691663676961023097178406792718267032047143516482470320902234486576426879953969178135434665774507976405985177143015787479039703236664179979268793665533657453046497296858249349770767433583315608606261039056445859148284483523934398990300624109460541159098095723609682178935377336690847146714020934804895296484240192427953549219824317523179026130650420255363381660814194012839148895296481885346154963342065096252749729539128504652009537303098139874468745885040106343840328408164362759817535976575662314648446118154140658566136341588615745276459794152205255199290273418922922409056209006648907443155440860237376120475324262993015686857253990702449392081062540530628167902837857189020698648047133345974131022255453979225605286656764449402102900598895701567862997365051792174440308248214652846322931959622265552935445875413216750472423171290041154902758193675579481867683114839709113067920448471869939533557761396577719228926183207675149545061423510687341870000799835426569348537358156589752517196085407888676296493514694965285849793316859314449733121511041409161373757727950707124759896799913572850251659995067097946440868995529285766480774986726098473163849123069286909598449932885939023612118745607488827239961344143082706204950167535030934762506671320290779374776827028295072102343912491794771975972538673292302642853257637114785863941482773767064004867843336839001466457004196463038806271834093349306254579542203196736436416590520208217462069682121472819566724157592412970853235898407596995358803951623936228038715014234627978630672398391431145718232686929788172953477843996303568884156020966249499570971614897067691453133863565323921413469711900723689803334033303364208934132046904536101969491164927337605916043869050331846077036121303155892439885858001397945966935377589496442751408186228279727709530813210266909031714331896198880116221281240318048469126661988400525139552984195355450005325276992409341623996079221823549973197148671593664793851770581464138553345640246749040858938000640529273705070888579629262703081976235982067229610526798608225733586967486208445151708986791895308993340581734196783382982277018495731240171756724752485323935446212293157168465148839372594351199969917752036024404289671545722209606503856560727481843808158380791043322854738502150278603997294020134776011050776645721618269287617126196972782787963240615064397569961120195756372697437804266066727688003933267163859971132770863069734108152597814578512137523541462559719193118771243641293513265546927290917656019692752483374821529556879275311998469269195940509288804674608611804999011612092244287318621023013569064007150400136444689938026365631531586124240122661950751463322340243798759966522331677490431029538574213098431809139565610426991956782748185603871267666185313230720342777463605633624737697558076781833682666859191844324377364875963097154332246736583278316607769198874666008547379783559174088972483268847593517619234560305324951395302020185803557227477787487986536744069181736764687903325901306066893926363750273518672962503285711746737893915287956243058519829315951690827956193877707798050646964053657093641893637879737561631292177507986308989042681437478458816534620184349452027568980461298229014514873442815207272795652122653566917978883319095704777815675499175008169264593447553098166461726767415553896613930514290393855159796897969339009341972339722372869243316417320905437311206989726407855757077416992303590775721930875965940309918862035752635256840498596014115486207041163315613828685062375355025401901844196007774002285914727341714561130734044286801789186749996312000700370513327331423244881721849098548852436105938293978269069864093936061394206792361077913288358609955436349996266151719725703828556134453481801873329333262410391732641685125311129686864308992836033989733867796079076978022678528156797762620899470109752551261442385061926952108087304084021513491162253104380239868089471460247048492033301500497425685913258144915856568514306136367445581748908307565287444927688856067768311875930751574326725841296623969926158179296645597987813177504680568519854191606673762294241531076164925124077241468406665261263707794618092375864533268044149638455674552650446646166801333696452876219225112679873003488133556688911167731590745239459475498818098811002306403368736113108908828246327302650137394861159583063058571767910842255998399144640072530979701644880494724657477279256455394841501609668195534326938530824516948355065668959009026776032424103801435414141828235749312906872883481265635446718573936303264118539643435112470112889569360605442698118367747590251574498207758675908288957103767020802502748701639202301092733763863907563635526591496904493401260691105784701938159389010230208252408317305705507471712972951356342123657615766677350535705267455689812421843619096816598006974881040233475117129884307838194717414548625882287262757283036088174804994892003520094496317412751615899166864807072835022326928527403640616568195025531964614396167449386414657233770903292805160786129131766933572840817102918816137238246927510719590818160457925883633253847220239522782561331006571492196957151438508172944096643800221670878003176446196256455990862764951677555860858552403811892127345921638412487807154184662679639972937086873884426328663769380542386290148029626900077040993931766946625130611854693901194913311692772013035580291388734226278149419243904161805739011975732429699672574359970485532353714089097447389611545941628247537099199736197510045860099848211021280211530070431900055705800079985908385607909481414645380887941310380504972229169084629556870150632889146824581932446398426782582917026253453713605719699215433357819719795665113212802754234339619084740778286692007468293902259033789456520744144313732540825295260953779139275586626652744898296545391016943854367184860150889560409132193184659267006578868207815029781010839254527923198094453175205570045920745641627664947977048483180172068816342508675649278509624954500459798326632347346133358966461720263562767397281407913277116167350849509147551134447460377602902522820397195541269464777560221696562771167272191894165486609269080311424648676744856581011978439057517884091926829212073960363201672143684909199855218738184618816031760564092871498836857124311786909504344185332297937011886929950203535571949514724418634511583640592805406601194219140363114604582894534366202034847777662696803163597219242548506371761973423051734044176989959730800600109243024203859389877043106947778024609656657740765640768048192159953175726983327276227421358235232302289839390765950386952760757797078882998900421327320141297439995274542330807921903803147745831227798998198062828957564621316246591587961064853746414648237526995580399626682083202239099735558903004140651398769321498483927303659842548177946275423688154291618811875901037175883284929635987206521284236724805788159064250622232391292212605200112837086855307110127262427161641035745671645278642782615068067246179068856659219773886426581300522407750923682200801993068976011528503615414217035085097028414738121168837823071138211744445780547236912073679417365849923769077861187948587004427139601466035705204206545681489043150387425756971976242475665008046993328432072771093454237125876683068951260960543153229376652348798048367035813352721689114801212886108633747058110249379903738090444260437744217510014757872319333796622342091871364560188215333185405576121604614170130271120918396170852422088125614219600656583406065235988713947047027807852220813050849109278168893756563756781197472309355947229712488625353900031690585362598621377194909825740485221798008502844916290989384587324157363669180982495172281391046351894156125306564289202693479566381128031936875746818688872013863268694894491264578456418282002908951105482289137842051078996717260986265120450910422313713505779185878593503145610423707723773314813420508562061123581992674163800317446815959111872738199695796056806876041497642158949089331449581911578465065327833143639826064796815308008570841348203403012419042210103122715597774775588715696950343711994410317233320010333956379799131996010225672840048074256149500981116564005909694447702473318685147981943468538114511062288296592359265477616243913488612527651505236912596615556282657108829090953114004744661027299714678481186963673710368345582681830342479132665087312433497734565331010215642966824987969475612436310474606111363633828197501629087943726517577614955737908606802184969234714611944924884677953676034305418060617901761836287486954371879963121984805492647887390216250935175246893685371350252240437297340233168740547936743415853785825036447789459805996559225819254984275270369214352208977090603844264439625322367561358613946115138067531311925476035429822950574844279341765320047579924451774872300803715948183843059167798462903529232494112480326148399341121827064563946751226447090095737877361171589314194744315527171941664334541118143355281661641674574050950492837241566139111167004600573991486287053963048350231438660147395892016443197726619985761140466889310070094832882013402558478327509479692031550702031460995189081870721470981334016330022304435236632742094426220636366162090658271607421103025828115639611528435559559947966897425739759873312510657317685426534123696783274161448401895613900602723733342902912956858856405181712444607063270571086718487717887990326232197419400344930092384193745529345024848819295693975197166083242034650585227135160343560533426345011198729631670476193891840841049325753487855894603990938751346067909486904345974352044525211789365441829429002708969581253773907547934747835520679637688148820097784675068330019362314792373041727653489352102824295473726902707242836440406433611042952458398919327507328995527919543262099014454081211501280901386808031773752844271857582475067935608087135526468625731545883766301737826826499606406266968357466485783323972212653302887240534398987612399551675569356807999306887279910224194880873445313718364967449362260037691552041023595494453224025433561650169537242390905828982285212385536412921631408038295347855863781366121757274607938781237750857332583082547952325275115607370360588706095819091720495787074747416753298739333161138318880924622747167665300886763085391566989987049811922354234683169938289944506278054728851486394407058742153126009071347544500438537795920094330359680112892029704211474477310252096290736326694065380741256381807184912028415657992208658338866651420556055444892552414753024392355454056823363979882037994865488320935810305161863595348113850272389122590654914618655001743736958088792553150204848389660069457797288338500971615499647746190088518277825993710354607786893690154470605664480742466379871599016756210208473591936928060418919636432079621952829642931530247799625055582309867720666940586622619762447318921691951318077553110688903596272432004207141030265278268171571867764655472957810860858298236616215858539678546814830006562502103334830087610513184620728437506621382152205232830012405656647301472568345255490726191671850067585255909711287512152367369303634826395529984607838077367277245713892084051395590734777270051749799305526725897871793656335067531785379108662406068380679964318017313344620669461176330206820525140795530102754500729434942559514306858838357569365622421069056401464895688369114202048979619373450308270233593741096530594097749616425906658121040809951637340402323798689976699897436636924679988343709552194830519148526215896121111139642233016940344877411172316929323942807127309281760526928375787200884700747340234743103878238636385083154483589872192282992048644616691813112801765684918813076815060591940355120956927195048815002973172101680467975785390552084273300178890664826543672629793875220238445091759142356994943403084418959157852322152205962951981224232667978135512911057276390165130392747605410384861067423896888862413446130368321385113589038487458053402234505123882625678440634523997152649051776392059627207086075965813274219533550635627452555753391177712490842882303027253720008636294338435247309082646053076987295132768808422856849741992872774481578212283282148302803095988641659003111014631360480083727437635810517681135126245923211383184860467385641717093675739109381974016918588864552247665753979729793194167622447088912895084445199487969457847324347398061688121664186799867156510532989301352018829835269469612184415947305948084653557785538639575858286695963117201493886506513437208495546475373552290531982753870009881102732106032429448520987196220510499294636409389596964104576934355590417012062154083777788158934772420449206554507417336760016482940696270649756862346647732219895196761600206176406355757659900813780726605244935720712840150275528639521880538468972212342159627945551295068340386487591919471713018956152547806402239475524084178493608655627365073698842399950007295414046425049290256727344852663049696843277739248257386094127621591441986977761993972846358736424777707879501409906054901194903752385633144182578350094211544578801361282219441930593648321920003646084989732241862317708661839610278744453681277595486767441148353039376480919732140751526929299607308923080415221772969973030262681374302763801986125766243900586909589331696059565528351438860003813535236095326238243046197615994523440566020642182030443175259884173813541669184710166686695462765215918657312530171650584337078770160781906620542070398711064429943335248080820166198807809953784937785681042539250604743718710512598763908894159178412370020488008604853950537113235175999753839567380862866526764048828149246779203939977412717026173680327440919392901874375713733945533705535964192830865282442071121330850081057210968843410837397477066257583073812767043196911334235113093155544240232475276527906986703171003444301418570118091776011921966733512196420871017184341402864928566208010886987392696806329014200607789001098376452921549018601072784671791147206480426961947772074405713277483749931489237288401406204746268630011882542722313432943825791886106802675973003971959970681580442768928331729661263129666760308423500124054768962064915777390670637566953306428716553940466505940933827851116810526202054099621482284457499293588135511729246428629112921942463572058416347721084521660867846160187580701877614307548703672009059329469436626217867612053757048698624533957861003765288779109113525580603811833330438667094534848520928163641524837371810041589289922156381124925211487394178394600775763711234106915217968218869455908927059286626811049063874261147979459455240909985579452964070085978735651870593223642032252859194678254568006545718213362895583221088021824637811043526260808205926502014764576887119364118845102527724908067604381161320959926837980542521963695453387847960409596212390088781962997556102271525153119812416336326884163675815502328494356995670367883664467790919908336286549753694473967174903760597327552169688957956814948158944290846495048680205746195488577293369016677859345830706287171132522141760323070055570017523958611087276350218268060990760862021938242413148046345049048632058457921327918149195026898604475271141077557435130649557905449460964762145234747805859799499695688144335405160604853734333858637394940206232476686578623019447839444624470112946785689263268829697448482979937218753141685429028118405813441961452248412680363335171635973383582772540926822549145342031964368534656986366036280312461306065977141031786498627347343394392240056140249498061889037808255853956152053737222472529103942536505792136283893628899094585149838734268573828142040913949298634421370423606027423399326404894699394021709299224819115743820040371004368248718130400252283437200690902849841554317492155947837916362649529404616308877326191631050069398312179686227338367630372612894178126276892120236649258457829377680638081767067392603141117248292450820049794863119592272542524926628012270719072394136429578595974372370825233541831132757891125278742518457299657651771519634939949960255660220511857266059469567643817947851187354157838650781103421379843853836788267301882849309948550793199001980383077329477583617459789074126002917447681161743561358747826763539016113153405086619181511220723353650772334445810909176315278607592600878345771170082927862205772245280727576957262625063972974227513270293634182090258534438393003182174462114528415534217044966405994544244623227814397492425831385516006406465576298498543462111384663492968778796479108479575795858022461383333111512818784846172109677883152794246320247204555980743416531454625084733323324935634395794300140753874404123344330021702903191658806913865379471120270643358775535232359995683899964887340389274799052226503208224748852678707761828392186335811732892887369737788120116385538353017240891416614043544356646262230585668804958370062125580631181614540710155595601330016198662823197755759411800687463157702166118646424296418214413196922646630696942147193031673922215808261348849875025250978421352388356951582186848657419678762171102750664321829721673016752552372514238928192839656533357032738248948619807017529794162026595368146737716465855688565406160550217464285553362858665860671707488191688300172008595329709964218949615291488999490006969619826068746831594048248302530774232604804880025569632921144982652043783051807143523586933007087706934085698100806225668831751200983694581336719325141554007792078914174413986588998984615119888127209100153083457208155439329333899662044344352932296683761162967841889360340723388772681443600660883432848734898977697801215410276132966854481717894845496667182954913227860129306192245753109138503231494261227858925836817204235659396623737824286829511004104679078208513358432036623305144792726877806712755857973095243798230900599845321513631710278365965060151522748687455042816504395850544497349282528518260724039378047075274637428612188204858962483946587381471176491484002042743401844507504362879656668327076372093167772908280030978865211898992804866651142255884527295959307810091019992849627183642170055152099214098243963314083978121587619433331844158286820403549014756197411587942316550644352447290826728203340891153215296135618151119063649536115613113763625216198514781930023384470283760119503519312151330259170770997918621583220576414405232443897409365860182673167715123694761551195551283689049636159020648146437819348723408407106692387021955740921530132948240741532071067537028712128690567485091834854553399993338830717426235378197667946170262238493937573711224422936153772061824110331079323122758881554081613834255852321121021080848596098075982423929528231595083097963496908536073789463795512001210229937842158200977301814275748660388031809369176254608049687157818132442247454538513676011012559301113526978336760968471955159313185479488997329690616448055123713452535508368219948648427598082961200379088988572789653823253253949096203815548066712851065458553413428719319729856444041931901566287851386753489499178496476341731095640180230646941034585829010672663985290422409859834291996097687602053471255109132799751657295710850953745748374368493404191518571809833124902548148865090421959753763535263077814537520782542997427722923192572665913324852922234716673155496956166104717629472173820123677952414047831086512883287902597661201191226324098733671197697757789785211515484271724537454621157282527852645492290410015823653743778574890003260105092037086554538745683366438162261056766139631605554950275299227040570661291388911036561008011745715348151604219480643595507533333661387659066468514915745517556180158151504588347761394454813466821456362151364465643734901475784739511010420504749828666793016410790242366351594722116582756577804713612430313348249428565846822833876263941478579291173547945376280127052340669744798409314305086759427121354111699863978266534312837361684688949512534240229266399949521429361659716320800325346791170122625920677734526992532872477393177508465231707601472719238227094953913510005210180090399915746100685672424580442835317365088772392442311644572528393915915642035813087199719895615172264993563542431875781748253050701179068800029427449761241445844671358986657650824769996103137146623598586503125635119710464926669300285435710463627795014042382771236307630301591907487551704256990891828000748459213631850615188243121756016225192348681049889848321558239252618122200234326298029954144056753381426383294719378930946610452957971532961279732893524775539818269068836416811663695107572304296815228697588265509936018977595426621295453687516385162552801685524882791448867547120947712496625751205605302659829394121354504198206516839318346107052887315651586294476449268791839801057271120530929247846007636815424260542432275294339112725976867597532048201060748780140483148898898854286837636863218116622718404094795362831317117663533435896871155481713745004585745229658759140718994312019832475048463939540779417434516701407908129863512761267437502373938283440870247096084851669958402958008372042924283813484881747811235777404895844390821320670739070312839488957903095309438909264976044092624107048441356226743575008189096668813773523877358497286174827695220504885651731807737382573145825622820773244850511460490165444664269386415050904740735343777425295219921750204684986745074016159004518871728941827588909778348367416824118386904725952303211068265172663271508483320566056893929802405418821680128020056425151842634466464783934025866773515584585542184884586802682377103274218557573617198186178011638115884408851510098127973542776356644246868416490189926227492517202622033028602265319247866075632024976776943383837621276481038837635358634676835932286335748402886519153535195748651226199214534378399011152549893362940755126878001127684951187046160673869954866699710274626277228541558206704206011815483055324890463891174527574621660754113156095238260920347531456545726768802179753292931219800454002512327955615706336412935010572422104341131792656082283912986885003177907417860999112378664664870013640081650462662705574142154265490552901069290239436441495723851405646060841763211904724494668883452843457163502451584211371433019054796720575712621698477581432160860197477082106785878289408509933189902061157408890076796502883557578027640441412738056965963792259528991369889040089342119254467704312978852613101093417215717770705027103721567928598239291470201022770309099066555896656590506091829151680022349117452618493939140474479934754840675744657641059167556148173824075617346582151330607698932089074915620855516874826452724554868750606003445103926415309682702820519861291211148665144849665945923987325026502157305628794011649972126043854524860094667008752028252784595176926591111904461976128811356906778411429527343187411942080461034874612361836538936641688290026249454380150356099261674132865439499345635241631698958800916821065996060279031669186525709694612964962352278003787855562603040652788336630139690002185745758075128908984141019281022068611435136417004584803292430357272049842957673696798528833095475772457073781203896830605828933876379306268151067365426258354227664095723599943717994899683165565721874794405440725769689185724494818693205730373262605694833230885112784900430404999288754958268252618230316860024553076127657985780240995282395681295734779794239219019825918381686378336894098483893320937793201472673286955287963000111451054598753355101344919312744802146969555047432990293864697852990717239436875824380151633068355851239906564380045661320282907713566173730440189513709743230342371841927192515336858200015084549940105610803720234604081898459242475661384934047060799131594649661314745607660133955672991962494176066614729275301794506687681482164569659819626276368312162567074672723619777686126206570544930054576369786652529015913617566720069892768494012910152352162639582665037084455063636639622129151282570398640413123333730967060226384417885573017912937211254592670784331213300066876363045356885787179437371485216571528471930030412099981983607150469291019769249301496489752594215173683458775219505940292459945766636760201603789796559963571758559760419075214711117423140913036347155353552803431362291225140830408025685642470626837823898150454898786437550076013038873655467592801782476053883352794029317086707339537539357366259947004385394322995458165274750109554753413145294613809222444069388336897689203524778427271158237929666755151797168754917305239779761706473914731933322146580394478088004479775350217985820511736775085294193305789908452808867200859882258275756740616309260819807860455290818309676445510355595186093638928297173052393410144912969932736979338052618057924553227250949528369596229890322285923515057257864343040215961612525407170671040904528259829650941467671369461505188767438270019526474322557464656651705784680337304021781152557975954674256836813581816249975364809398778789499722895116628603477174077218513681038031040620591660225910488476761335327396564621974434472673413739671751910862325703218609065040184356074462706508373238125831200350721982201769437701374909051571070315321039051466463106504851292819167038118431547546691422226103892944671206986403895838608833883886165143770908048597914226409977189525446803661305698609005814834636834593487751215260528050399232613823760465614104397414554492675456533757019357723547160322190654228930155351675856922496735646119450777920367974278303187540187286638889135844557412656464144405414738915034732779992700870646003301816082328755530074071656053655975607578598037271178766184306530620015501158961809282313657878783460457648243231041056255296010480241692186228716748558126223027426949383273086511151584353790738189639882877238217729891241075631259544595564591426215156061006957788031257870091219670368547342765757608996271883248143430965162681840214742367926100708810499433027081251495323639308345635833598672036358879010910912213816886671775544444065416340852086169083227952023528491010355458835522193125132877728443645398161642051166294782541427463749707917740967276677661222208193054368715887066405476709491697937580143251723078741877181336417166288834226792143532595161299723138147218065312150024473942375268886269420823549625460001636035806684771770019038359538035757786611669060374412495162269272835603350169196024725401103752249552925008224235424771207473674268464928586975311205294599029831467530203156411377513109338407429433460251859465395273529623326454781056075097280974831230896672658066323647072952838876090470349424626078314277569500514548225913468771814286899866295974665429074326862935952746828483079360485460239184619283288331547900503984274704113228878128916656982334114207810333322052866687771198130614771879194116241978394154194820703211010823935282642232177810664548052888356169869508500787053371464584596141539612876051981657711355472951806828341033415417442675040995957948221691549499343286931106160642627729686821427857735861503749345957293934591794178891673259528631298470525116049741771643342209243926837914146412740040251304458363581116081406064051381651889365513348696785725833411043881818823030961667301962734595342190583411244633194507993662418261502747313654575978920994770624805247346322061969016615740939407580561811904728535225701798535267576906599165158396673403098555907867159598176335117307360708421054953655384619093609980791285659397773151596224900829233678457857683983608395620961804776424878151827131891865660980773969489944227742141791670692244563843039780131058782457185217841269363855429753453575226733159265631774104481895139349295527716453490321226886489078718744097007429974510263441234050407471743127764329950502787385904258865345310836953102777992617895637462391350627652817555210687915557410425703732248088244876794390804263276283713956411989633255497249848316222651215416304722571136813690211340327597194201225613081643852711707893317591444533528213363193361818720506818895463780035617014487149615291641814727399604562862908756424149305954793791098212862604848022816868014741363653580719087861202933694081670481889981874148777543437234102928499722372474581848803603231978442730639523642014076372940855196304548211311986652641323703984890161750799708054002989174010901416800359541640428522071224153464278544234315826813288258163312609009937075367874101800564596568770184214486463622608243189988173611098100683182735802225255764960472120610995594942935534528284804040877498776756243693819734120261533828900361407104654937731861670853281908005277089895017366726157203536552434665597101479240581587537917217979709899200674354201126389693413223760499888309757605177918210366940953809633940698177112387341969693360831955545166738135055085410473778789742310062079118329716104854211727119956193714745260237153576962880328471914656498593012983512546081219370515172621212209794178595391723832517489566744197466638062515562971667417345774546422734566402987114559699708632454008591054448220576448445713138615308716792251530806205786670401457810656498068722429102889426387765121631417401764738295656402614017675319169070052375434439775500742719936200832658780768424876123485621423754391626749933966561705048832983196138635620911230296654879606161051600790001621284119313409146150296434916626425178088731977963467075863879001524216472184767384774428859335278297220201322495889256515255271840086384771553965429893622726960508558380178404196896632978024341460490169492391884835261150227322452300313444021771267905347155967697944157834013271023161885385823251093682261694381173341144255462793176079173296332844102901286905546597357883006094320785190823728355292063552795206460018982974658276474389781699091721351967134438458547486482155395939019205737895374008752386236713234724611432483104821450977508044967290392199852593114839442451256668780110060553064146744566295619684864287779591743263623813879588589004182514253736977286663874714408416154311487524479322569483822551644705249010638131707979359956166636950559887219306168212608782566751156780079844795317595660111830402967539314392122600087876695747201835429651545401646713436522652781853659820757548711171353916706471235092379396283933718834585752152557486811564677010707148253870468261881605695738176999866485869988472596570181199178049188196125460987871663199340446995156188439366256403873666795435351453202338794972576833260268124522629726291298201470624640405901888868400171880873850997639825270820724486610336912007201359738410405912550722176451364032367517011186816716371542183240514870222734262076447082181644696401501076899604166509101354531984266689673971520454283481963991425416784298739699785362214229581919301221254432522212874404101659085372294927143666511447241487390353970822931780457257609302286415059138557627997413075885746011811489163797271217549584072062358446175891508167916723452180475511076656865593682274553788210249094586021594111489528340807220107694140994110990570942029734179590236399360541221737667322932692442553251000528557022511795226926471873772190010592751341245244150310923410952965435709235246225807980099183087167490916883903328031645077217095714895399900257924352865947170991251289193550991971248723552509153791646996310133002440933315351788679945395917298381143811945781865468154433530247444171496098711063324501684034016174602838707574739034564363345493423105188351276796143906670110866434819532611010757854024260626155255962697840858291306271894499081802619613526392306493595499887565657159480422140533108464043493535743893800622471731888148640702526530834006655626561492584189068628682751426048698200259608597922132067506355151342929076303135967650864265672361537539648556119220072580328349287818253814297798351696463189967242562554273080093698032487899432062386112803732651430652407130050425474822407148961360087066284403821805919486643608438129474449544201669002574733279671176064478078769624910964183959106956786351464172985159436136322751759235244732982863397348875153745892019935147389782268877194426549877659676949310259422162918149528175905856874830938837791952409662569597639956642353472720770937276078414868619177943064508409931089734320839074772947069970914737752912896486420807408945327669971241412112450593899264024249343490084036820769172034662696872184163865622617509357914372332254584521962053181282209359947013729811801724133380879013388910987232221451342458625599647075445367216924215260875001726191578853022302536775338286933539089585539511641235372034917952828651981462907232416067542333544115859632006288180557312144113745902517811034671178425778309976265827394934380457508090671779901999727420213901968185814823610771249895931340924516078903401791803852535912172172113830274184266410583051015095689084865952672931821296400530831907867969524394178009402404898802875619356700655014601941440341484712940864484554482687731418216325682686626484999572260560514010185930238221393823948331236176670585716858189028967646001787185191672138637903926361735356673589176753552219139036249626910379515625046681450470414555629458588884737901936112630299733314546879702570613824535838510581611676092797797751603160893250594405034086817821748619942106344014768183229999257632833935655896104969378453611660526276222597282134152522283371530278168545691335586863724426505008137110799985042428707144883022543695566764576388257068833992262241140487631195889014003607497220044499271766220066761316422313097276216492024106062743059828884044177960850137426071819468351186987728248403331459443612136295727542223365557837261036356593145476893346409012533940596327097052508493774171740694097357487280864293889024058974744050148130836986598234710289301939457791006285792666037505622659213884805483079076689588553824278095379092755637917752706076050458410629940089007425346534144466848736474373359448080543823903259103459711339735101596626502880052876224838624094849206372495956606649395364094683348038417571489178817163172483057932836305113319210437509970635224598883940349738861752977597779213032536212148589702922604475971069960216353674972952986959377481813228369748624275624620190069264093304847366496582236695826209270348314003347994966526579260008685945410846819291763968875588914696492876943713324791216442122983451363507760221516462186682173584959733903333391772169264417469082210205456815094420091433618593918859178147551510410984337408154876296390938058757911723484602145524054008058277348934609908781466568250213587525150279147149262156522394078255690207226431329128657954629711447893068009893651368986037756207352975498203347892895725730951318572336187403497622471127626477844826810585294530832465953304046271862471467480674214707457252473952217897591069085415534639371636510523460549058922865505427396320523500280730627200600074008542499293667009580679730919185074349219427661853865641111543744137970952896099417445257594173645956206027860891764129445430393357632751122517384553278705332258675176902399214381361727767745682563347155591724697360585697987278057800852918877187973382917539060346494607421636012787582935460553195169783865959270173886291197643763378124112860947773485406641657346268089528357510223558443800878500200733826665942567333450279524844701238483359608133313718935498225333925585376497260319589236388611741459420915901954375115826168578646427690912145624976843978200093677896050875179636203801491011024006790351401712661786942863031240395297137427400447408285080104682100379049799454476368044633668190929000475468657589906608180030202110116571650043890964592474408987011574778294203166447978593206069904721646431434767643478855513879773441890108362645653756095530717367679281069799854618001543588741530877669972946704626210925041065868606659869800728492249919437387610992125980988589604534762581846861218966271784429054060882161314918939363118324762273821521111659298481796679184986662398006047315332481842155746898770196136332482698843398171248996448648056689818787189221600051952200233414146433129649870465157396635614705527940650202677516190821838978552205524394456737179019073851035852117029787329904586461989112673463988301588210751130408107939527691652819278420088109292677819323521898944106457464549729726254788344698306174215204774658214902303975727023392235762154957107882592162654490599228006264229982381083033952579685821180556507890044003851038501042656441723224496341550348082397222074936439987966745472958237357225524543166073605058073032178656297422973657811102833537210903779226946215138644701654508854131968923709084689679452405305204414498085913237960801800155598076278227986360689512178626460106955208411818805281467009928550209488004035453212552461827102976828424783019571810798462810006405222729804444000589523341426365121888031116940457327121991186681070030438024518110981082784663773184433315531792960067597271546816193983079683164387175835401166755543270867285272175158591450995395802015899122794144652668073016324905271113659532443165414310262257227717724588244834464636444912602374685931471284207330268160423468735376601991168676183476562293453772213589915919079925506855781868513405031158901028952763420912895640020314506300392454505768822747923711948696585515643133063281240287920311729862452390428405272033448930389633209734415421408263234656203491213162913996221522174547409895315650065696896337792386206497434596691298516904820999829017227791872686145460972564255321841753790320482380301868113574005594935514608381400890599423998442740775364770882861864771761392276400271492499795033010032801850333754713848965157193517094482573472409085887919506805182132763058832154994305988027839689023080474629808685773806708357245761094950465537391542103711996788515591806285368353364290177527256296249308291611648860260848180985447600492320300398831455877405831069860695306696791356555831768437086672315293956168777563230256595317288723788395418009991874730904267187678029878865137648003348996124731260416998170450195802826373061195588732655542196727263926119860446512931221935904217119118650440340681457401723120679318328701376462940966523780561062788554674732509616052434110880604452535211360864988059075923187165282508001748575419553165662729239326601847039220866440975513242945587538898451461223071771336122806215687741139769604534626891168571013813351424466678576207330284927602569941455632827751795037187763365022202238522085603221479010304751563867739668966763908468180678525811345955183449949153268973739470074323309111922501401582359823539804853699632489062245436245446637648600194734599924330846548143425435577056066405761532297260519217768168355928502918059534565002321395566260678835145252511328319047555097011656584053386346717273266047997615309184161031430628212234229468568701329927062740216952774801786270504971378678155827117325031312845484556793636103777822418119320243207735650192664326613775131383404105697754068729498003303088090925145499387566052772219519433834816948300021053762393911124922554649190444677179397364402321547616119414320799967562174885860742709482632374025347225660403017139748378165460400900320751118768754503486603080718769188100720431112228909373494016392302574418052032904787457772132296082397166956552282459149682000698735807573259573942785045876229030909612270281583829520278139294317038678074153537893299594207769150757527212149796044644225503780991396446857349821213422077090938009722233952351317514749780086316041573946008925693206929058172086371454284028196632178185525147212445640946956667071718409095265593050986698342887043264653238889495159336715892426932275455815464918719963097743461487706844691737052736346261898110669597938038432520343087721713177737581325917002826282044579126700778223803587727032773142067717188204383993816150271450746843743569701316187262155727769445407319511073967852628993675091159905093302540273046603962217572612976811083384461182061605984195297406280488217145218898880077739903189356241049308758688829254013650642278951420986338116407537069801329093261815040728149154684496520299438013177843789645404716930495928423351063137752750981954361083269538268610001750426519437493613463151746850963784359860713613673841062538056206749567169489109750073301732550019182558112175510281022755585353143221172564214576304181661857372383045431774944041384088978199311432399902999384307918263724540219204212018386780766059469791736274095762209861374115353994718876526567348848774653018434940897562449658298341516988091670879861181633468181491016579075647466659425437091540298205917013638987172145392063740452836662824925316514391803696710998679376204909588202512483741742493919536481918530397533831306086127387592721798334449633766794782669498547501793372622330445494900550431413771766386090392701606158837867784487105692521379896109670580892818386952784811222157988685567878185102317250581836268745006302674043802469648939536119451798192840621290355260522814092853558962568103945498565588347129037506831096946544815035754440002544464263254774809661771609478155028749535062887359977537193835923926127307374810358839583972181368680027117066881582995968042675679902258603706810633627727853328606011611899269484480784483374916482045994173441656087573699708051399096580586421592694499612270313907371203335079747703188987254167626845201743330534907015366648312042197643210757098582003631260554911759078518316335225075579999080834029472809838796735431526380868878686860536056531146909305319781679308109426174087805401781522962059651804371032941628524768462046716328959180222979905661390345477736419815349853835710396604078079891833407079235873600471254111424903528543553458657947342579252294956515109767299929561057038492264248817332491295051474986706223668509630201243672652563459424437848645672565580005447996651129603728577712591916146601891881451890894979042261922716745562217754378172476419297844801493943492953128570106612867805541687455705225499217936787971284454129833675109349377651866747648722148267227909117587240577281142448076797299227972539716275168606751305103869055248472770618357266775338405819279484826932986840823320824161721715850562539129005528450330768836906696880052263124543230330612088271648922167903216197930639114361848800018377135688901069833391301824118153102079192967815090506364867548484652223913522347766101930319282861412321416112465649956170567601443059543761313170526098049067768598043848953607645904458487406796484472662003894291582152257963003653526228796563126936604484194851071966271912092936321970364688619317697834469518166141885107694929345943927857396790065326337538742618557262981140262499264127843290647815205189142669782364386187859285916017755862818311213515945961459393743616203711058749360182839059261436965774633768462216968455349015379743946857634737814077691509897357305511638553152828608994165256235238765456048199058101085772863280624818036099761117245088626865488536085474253198029546323732034950541241068753696228849010798511969702116152882394349002422595910543489862817411458616065152567394469504451662859806059368757091870586249648154682821173861567316343119943141289375626738297274370620029838584692950811103134822781650208657357923378864685523172952859510471981330691246810028529501633944722617434834611151002080080717771020794666653121651885707279526760329669342011979238747677591499014030701013215766695981695949641986410220705435104663337859626496763388638503805235642139026414406962063146065079124055228257997237543576195323116706930522797013990319694818981940843350817037922379813901899042209002756380779316997170804082535430306804482998527999930266646492010625279374851101155561811963230991535772640880023462650842338754369841296584502432129601548528119792915180226478736803109391578488238341405547742610575994758852237267240604127473745662212950204112709183172122766941595991545928879283484337287965289675581655133842556700757353842294900600782730047310823542740238650778679514186555380611383152061484628018363123283115773828837955153778621843420425416486850975256871191518895283664040082083879828494708598312063348136717173144943778745426003849624993371489586847448399969194092740143910974039268877124727709913901055835156519343552953341006555094245472878320428816395948557461412429977526000193244586442424678128194541628266041504152636463705220101953518771084109859507896006859017497819758824528988830655627017440049820875492656065025100707570993078365542502315739862871655761788491602290653761721662695746029383097963338463473619737872050402704765523986783327724357579650980969418496761092286638510808783182603872078687164731548769946701558538502887836291903852834068160207779128715455238735952074821739619061814505387981485090070713013193868020500578636722430556394571335044809458301651432240127156199790380088004565088384277302936459179779573937085899143453510433147968163667384690515389207490248533194427648835657352078377502681929456951227823193768425848938515242712854990913862286370768669943512595475645305424227445865816143029794902297235485383408331736926215774591687200288144792310302337182458407178083065128470440569967924423939852853790310857412260848822351083373397418966631937222522794111426798028827015583680668199239452046854287508794518727723037122452638471368962487603047946832297313812010259465193265016585155194484729350056436555900538743844920110662103575589268037978201952326917950815669082937030664857180893146182069050652624161806021959811237706552403671279529154156160602029606741138608973035586401593868722236864434850527439649225703407621470338021214538766064459391414425110076427419892755775389584471205955309012572570086342148846002798333471670717955629093557314538343002451285673370158196290957347975376267275575884374449630179008217883668451128599707373111498727661634865645889171511410921678276923915224711363330345797197954072251711432432557796291681815257946376863325332947436980524921198064058416460613789478426004012237894715300891726226113099362755111722105647672079139038026461638407686429188701075761488291512637273278128594602866756795376118449848236562052095057659034130503529273997263542619614249990787240399968318406770389236381047882870453056457301335146361498135139724397295464491838910452472701471665208332372948144735024064808415329529295484895737770012542358216098010388878935582543911225130965755412236716789420943676031465713757874957597059523993957886436473135118247226916175031402203306204284465635934702850198576209943387309283564767015494655993068860638651600357546758630505978555542128624073236849372290187676972542083072297398487339647866562249619165161847036148743277405060633280529663057411489063152083869871214694622549654526949772709198654484021737590923227335010390541401122608322524748061331910181598529244123412312340062822146055411810141279314774985838858622683604236481183525296466685755176697825464312302017429707071376580465159929580342956903962724055667979712213994044371689780113887376382080297862852797644302786222274334748455087206080078378450842120975313068067485535988180010397404486206475215620481880625370162467371284652590121057709166628385426978408775406239951743275206683518758496873419886277328717064816406945725425272631094547145976026893596155608260039343402123143315710744258426871391883934709208088243227909735153135127474683178815930724932172294259425000859767713472666172188356260564233675115095864233261752997880732752661988792488295193392208777134685558069230000669650365704509056370482974212981712847684738818047129769809224249295458624634532232588963426957272902513945695313014375112364553064799878191672698522298039723119397034773378093745765716372502263231455192401692593596718437525102532610236630714827145769944781883149220382563410137084371580198055511778400850005771758152918807497174837243541396851206530063845082882861533795927290766497747967127472378645804229851423602757002185338555784175808101385527505692337759660805347795603379617188849551360717819245401403211397131748088473418703479028902491817895790338846425885723846527560921087078949868651235160426342305406435463891503535468507399714755097560325664761306244172722990485747114553684038411474242149404004681267238410609400639492053360109682993868072705877080981136343860200601451000777752142040212074414315873195617663556205861655603263198738877262981094952224875644651033758708829121476837162676245064222570724895284403555106771985004725842607551835528687528222933772393677462908043524517919861383519518977640162893087779811662501136698253521096556843425649096688465260980395755601530069839804609568116566146280992198345882653407349929509708695547311260842389407734121981328883204606935984663179530720390508812705983830815907768364817416555415859711217476976336357911946982415787719219070582798528117964781701859177573644053472268956571550281749076906503305733018388583505405731691421645440960396042837749045543404892371881821660107056650517867197161005640989320707686128876118443580816280780067537594021772519678357721900466711539291252771477835464613944638056503202897426171835240189504411318812340576577972839053576852927559549993390603693669420117571877037805939125214153502446095262421630951406124187152966827882424645108366965932881192280048906143265193738784662476109109463105563726513393951244657565941979998956606381012673660491846708843513448963748278924787804996241434137628109854042202721864554091182156464106500404012223913696051865379245357254103583966848662249723217985776373503531312864994025088208305221461779927300600079407716358313139652857776828441715801180065692067603629292608022746593963998513702964644504612504360770096331412844394200324762862659350709308842838844631020694090700286982048112572311365559631114262502172860895181574586312373347993735792783886991873847854840316779323732972165680280823075603166120758233795832995857491912301022721715460271955501404464837537385957377272396478653797274338582777721702758191778997835865471189604714033316508419029292982203906165481640715310447353514207035889030166720446028423239469681473708648560900520214327488123216376284319879781842823253624062816862890804443078574740061798285726325226777085412471202419828792230152785163224283970199124602490176820813916659738861352950589484557152182456004263936382418647261976165730658649258653300210053353743939729706880979244240118196994120419644362530286978096194730555453133078132071172466748002949978366853070959815481538526623427954531256538373456145436031474361712013359814886214530457697387382909622101984949619125847496529684364652840859236174402777642836424444146366287198114481937713412616879004185385324843605438939064652536156634977614516774780160254174436924993444936031361063639941151456471963893845844342028352564650601054983192306998317371909462280865137165082801695133328769726369407799861471962384566269747759333585033543540886364814462298479456570490161631496616537273221573868706445783163601279242808700613157427264933994387296677067759935360611941703898376671987565957872682726738088235955088386609538485784659788496540075513795308227193891800275735875542895221763467696939368386846476457954583988754082848032168912223313129879194431572826182397130435072059170303167703186108203905819074574717591073762744607396722058479725237005138286572788682506232064285877262619315426368663783795337784274992564240109432629453270352594542136702284315073475236178784253369255789430634650761896516330044838034333598271960918746424105746836606794871703552212701206606655569997605246800630274310665148094942663693119285547316447197645064484783971072445633356348747753592439262063123938498033135217563499779591665394178987515399689470527791243387318600570319551079977263654214662256234708987408395701070332738235097439764443080564465273200649589250684366226686798035924758235974258906582224874612717031994511862170494031171827264023016456966293483288338363990005177122431564268246084240629613935349298263557514833236667354091779013808078444569023751761020938431182464753566296574544079615586521783500552097240805775607628589559544179191595288678683910599613652846669145995852887206970314693022335590528517359640500136706846562846065807467330774927393531617274594562434260944655760145101402593203603109965561297620609862751623562455858577915186335206406119261468941309849235120165224776272503232568410819899421992193714479270606036082896752099926995491722662533658032627817865513044895342175035560025106457771855409275776164070667726787312264912213473408042197493841477869224918885503968410680315776591196187156053799514920567747908011609807532203305767639778339872916714066392327677423154777762687841767911052200799530559723820867150133072328613259019500815078913668575096500488284437146657144944664096985579320761665545619445521954046824110912187081004534444899420992629554799473871604776923976833551015476411649618317332544671535702494528270830507227171919885867233767375243351399404735326240438076983584429028398324361643460387353200713980424529323473385919554606474154955866797588774733526748372392972064786917410014525670172381007189031415276352132505197918265106533578821045878425416326675099992021276851773500793622912367384097660737827940692870625595903137704530081781948401641220866981100330741146224367760845297506321794967727897238073211879495877482092865937453141788401691818424422356065547762159610834014219491760786530113151036413607767659464035116660691143522838149726216688802605271650935773551240578414384753613256821764901893124740013142196569201400205124190676660449397345361373456223799007378706286077228891511658648669040183150313685009057225052518227153360844942803857524655327789445465689005747436753252768618955350911717608935196742206204981998087635168821326217229337195449304311629183046457293481505265923853133322476976749420274626578185266899798278485312046748776373401234252726758265611431325137419662848206487014141141457739966488757125093560151312113164868516645394713433929040243144280216670145084988797459354099518661724967695318547305846091606217074791459792854176891969487877622685845155496102956933922619213180610744360765128119771999804629628456947583692402382762195214193723364383868018611099242687223362357021549072073500252428998061544753402995588577319853234379176263313791088570484615622998984270344071215242119582741894387891737932643050724340378254017193393850605774247536044262026555163980514263278080431993309049778905070883586228614071802673929685710231899507219763172514996849896020449409942859683903571243918066281020545323108592205924421048447054309406179326546209545040687541003540497841451835983389953221466986170142028018615400299326288050530112474148515604598881621968892751524577684408049933652452792676261539633946313934730610088359442491622783552193427942153332740439707551893992712723373016985921785859565976849108211638143991718419067229409634265048777943199504389396900036941354601871516438421535856392691094534491378377477460468093471179856595048775581806938447253793180443480906743271332907525899805828111359481071927601988652887944270571369627639995633371859637687369795416877617382432770382619971485599147033014862679195920459866601538852503593841914906348877112466133948736971163700040298580481089270850648906839326904623959267585181680959505864257003187968196942989445063871226269811415027923402779565585209234663776191540918784945608639629957340731838856430179779230602549571248686510754814473083265705569518000870580779395194170903834883701490430336520257437669083237121413675529788821921837883598028910331838964587336035071647938167990687087130187870047345278179494406292441453738732318268266665963243455772463391376502863895691996255407256147790694026771495563131985033839835417880059323351719034530646532883459282003008146812013629269793631029280152849416842267861243637141339485396147445302822760389343980281564812400883926973674577087470196353439416946982935543819859137585471900975836655179192661512946446311869666766179108725840957544675898441044851684001964269452174312591968757087338605900088226850945606631800640688070797284052303955851402173659092331547897000307450202872228243744186322082810038113824377464966374269208304807451628450584888065286942024568415269944546046290577760132785885261408987873062191069700284040570381062084918381896766326053411549061114543368414045232196118765897474047272741172718795839243976375280295325069359526179188394683226997893953135354676339634568919842641632674913237458368553336538377316076053199000666448885116599355966590637935015733034813740262667383071974484287101657725951957340712966954556999201250876090861959690304066761670493838476344876485956624301853919599716835731225446585520066548553119918083943279819405386108023397219258106465420931934437275488930039643680501365889298071560280872715284141161309682268522154423349698180731498482743970425849599105885074435396659046409964002808297505874959403330961564881217337375326417552804030111791447410492531366473432541547206997173578959895747649624023414907040412652216823906464056849954207376435574694294134310127991085618146032848679428840149678825828344459069444004244359252381375702563257127248862098724342225265089457054239047219806701991944754371097992103867534574595198627101309118292842341723475368422785097959650387671035874506062553348797422332945147306501612792598645200631616374579906270145310607834186491429155135291737185786433162037020777716979213978160972416973153238426359997589488570208932674190032616480278083861875585729879540277953468324685497820967188507411230078526335058616348682309371412120239475245468386895575587717733533367177830615653995095875284180307202357308107190361533160727485193068229310210455483318111256572479621021609602432828168447731359267359006392571323972038885392344609850062816597370230018780440594060039755210208136859841515980699919344012880200357966674205673192089570615251478454217798683560731644023422648262615955520457151094052996473545427280631548192962054220218495108502259078579782350572478195627902929907615832161657962268079235429008994252025114899861412520513729602101223863234027982679090658382337209370306575334274286228280407739593788783246772064163581481828161465009067941985607439058993133560078645769799944631571431243754601008319516777211446418494116278904563334295044962061328723485641383515905969268139808827221880100355825770275514672184154359906727323993994904934937840358515810352574818289893651645341669880690450447099786416242262891318093119850764549105803747230802026983426695580961314312820669711122197340969339238692291754546245937440550863690681412465997963706082593731981052930410173099496150875615148562083232717159693956481310449690426344982613121663226214093870651627652431013804585303898902883265587037747977598684112606955533325330760669316758154006618652570020338067115036822783500055359329320739376691339733746498418496327877983444157137943034190670102352813140836327635163166888264694890960502904010309765700639431949378946328488436395704371749611446435501656698933619481864685077854017376605475927790275913831008959675541424295481573320780783202518977987556230512551404605517069032069430098265602274101910971868609829304945073249582748111978653590984100359650908136780555450404408223627369955880205259814366557813882434580609334507138343929638981275897308579182861970067490734737363290430413170021754119133357035767771334721964382782873287709511180737087240877378741273517390519492812384695117245093192373053654737462850925626553156447214402222914979499801241708953247651617896802020018234825423299466475924300927978374672246830353538026236721500916343128336973103409013076555536467536804501099024571528291895488528199898651181600211976413569855233129504240146283284523896222111937781192200330535444397302703614755625205723114214053243130953574648223505663756135171521285263145054364130170708781565920583844986488996744315331777949287194599529486248418351836362952673834954356562551945090620004471477329866070601831672226407562544915600188199705485295907195712168469772668751594476784629797114228180043171338247842385820985645457534708834366235290255610142546173001064441565861901159890230958112676202497595082561899693971553604682963157739160814336046704549893240767931547810284451369891507149738997595915186775564037398223256498354420523281658123939263327353672953272037263520883559499136664893527248176790953309460392399875956076998672217155957410850057310283138259600501982870249234584546607655628481883324829533881858483292062854599174068295815478982298098154083157731076518346532891601441621167898995124788064977008741117987004170796232561290228407352381385461285490934015790650608608765898322360018336324284252380401916482281480055945284793145563964579921508521246405125665278047220081310263575424593114447603352562721138554251466136747643419518243753422139934988438316193520336406054967632921407753578481865816962604591966871654236181607506510136624380746485408656934323341585702049265990491924920617254398592307532818293648381938876423110281776409237787188336434346408805855334202959265010517081070479828872888475783146086948578913442642585290830351351525427909168974445186529649832887357720084631763106350812681804405712751658798382833478344298285005646585066399488520127883479517050440716398870765888540805409778920904214303467899506745555590824545470623543925873292861744236628596980082539886928598128644444483211730600549104328069202519452906521575848514615274217990604594329648342792706315036264407405771266212122696849993164812135534620532221644958954781523722284189761070534954998398487651035938392168370830287169823584882200119204680999638043611953275534068645044193509539318638996336679844044915199618507397387206024429148506627132873994938211301784186053287365951533890608558405357247580821237822148976718235146407098209086731636940186042452617841778648321443494886085446962770065652704654745142320308232709810200536969867208525403478143246864884259250100114785549139881373686251024346747065590398404938484521360565128079967642579578751435810059462191668526004770095568006370516137531037458438260209732062614702971674061973382328478419344249215437578532841172236357250894079261065575833044484829150460256404813347595734951722408956474956903660404457588987705297255085489326283088534481110872072741361434379839387520159854993552207821197929834168665352859756290378774469225875213735837159250844604102985152381179582713937818984903192905186039760061776289656540895816667625915335403377867020306046899609752491022568723010196607855208231014797089796870023467191502377396442760249958890381341264252255063801921143024827581982575807774102574784055804747515859082913205502959316336245695683301550483604473307769584414245740390360564988409849162389147231334032376839872648486068754944442448054108640971054270436272850108979054200043877919495192873323915044664919682952793792243946444470959702618155580914853839722795011442120618875655082756103393551239219497381299851762050786719747148077838223682488636188267029657774585532510297401700358748399406176591804383309346262897030620054411011558214711816679266352572270393684855487420176608656207834055874492570489854451414165813702917928807569683699372529555604311127181064821348547210876553382416028004847068734596438185325682555115214772728047061862246602229774453462275649169516753739575485610018970329097088178277499188083060469669190912586822285346525647032139765100365182460474772726506790379681253758686984778103792198312819694323106993931255786658133526768454511893428912639434003180774149455143461972200799252758839642264387768067810534739149739437709496471869950499151406683922495927485399090243803113981242331579685210616570054510102216542985024160093400305388053197967797882074790018198662954569278201191457114165778758858270095806196725325930236683710663761149934631200663320094953138695958371164166087984925780224806655482065881944034752703855250203051009911831811869111495261743210772875400110065559032804550367928966274515066636420335215122580032357115471219239727921683045194399771287088074597679513081018461746225285551690223965481062480881652540141919849215804458181998856847050127713574342715446345941310012166666729276846978841460993311653328733816003136643671994430759926527707382737354925935641826577426169498149125810527152246047966962027436431386412063278038630814650584839702350211118149205392662990673679703159325958523460224359359672195311789589388843702106820553530687607166922953877377045716122834054016396283747422810630432328934854369066573510408855064504500520266997054347024191760135105404532342310898320208735753692503278144308104037680466565604650624532663682547524932471714046422536888091885595579168444100710309480415180225329519619728552909701195604540745118490072373723562371179039004162272384706194798751676567548428507514180180150650718240427787458527999108027554507075332300596294250465930808241352445701759272557757141938426178178722533882028469423721276895497035339631126736253267083771018840325028461055135596005361166913483807485132660308600522045787946053830748431381249677056198522745340092657573308897252193146740359668555321105888947523126502582721348072275835125318150329019370264041312073005509823921284586056694303448253163497993734007624931761174675668247378370633007630009170927686271663740932863379968672479997274775085671691519352415015215187613348985251329868901104024056169357837699515876460635395698046007835504903455151008172550536504957227443699895768220428110438700496407794751854390544087837244624172052719335488710038092907355283437484716667091841855432197047939570835611391989881857135273462267149058565927461364051112779810158413095915469612806816828986030949206652660696099448489701670703718659768710911214477622939113526851819719077813134011843715726736887933776900027675042473149807490866177033293968885443176760234362932519024252747557062143350162288923916491534054228496815082257239388496142401456177118441388857512074081074447576477764083624285022981066710409812472798287288803153958675094175800300231873314240259624381798325250316012783070381805773977911030545773997701439591529391658475410332637117031504294553037604175308217697238578441213656529791909788837094467509679695470791898717596353013171573194542869439893298777957287046747769493332118697411892049706216889764157944366349763183083097219812045147584735729331311391980441362984099767771826007724076541924152862675511591364269188108128042803641836205088784669253468690042969950410464622024128966204158896112882858256593557616240082594278359042173581431370886388038204507517797766351722882279692043156042896351034823929660461554791747029197375116505347085398933739873909353833708724163241344520663124607129724687832768722014350171771460475046389658155148514790195894412067926471061701917541141892277471729963845803184631715755701769170226713923458117313409619230909141681422971338300338986249929736120239861151678390920489892599709559018719057600705626883716136668458504107008948753018006517065231728202030408830413679105440887352372894689904912110028088295507695972991326391499884361485317541558818210378981185729732678680622435418904589766733771504144588658624042607511617710709360930491499300764098423380390939129898391467585871366100291244016892320147501127776873559519633051610516167788228928337519678145830730030230180412441684747025651673595583353655328397221059585017004855777212652362661339295707401684399234953470545072958221895150142196602643724165609440957157928434980498883993245912293540798923261557729541424966467403911665045451386733266321236977100986124380727387483178060226893007375771471155130823539794499133419938335672297962632793271850812766273705059000652662355889014803841648725540391017858314464706041678502188366069748448749256838299871515262077695459367560516868718023384686213200986193512197442031662563406558474435525878159913491198947819473022229766921957332581528749712870405119339520725177481514639517956846351824156353454346705973157662384089683107444865854802458460815321356435169591528951788693659045225331296378794574978170595583771067624859049961733525369076919819798188889711263561451733207948953403606216226754569148012990270707801768683827380173096595321676143586565611433979843599255216034148196471012568945681643308800866660930923946638073644226168151996343101314954285739962125837811556890243883806788622510377528116440490945528596949497313999297748934464161416725772965408626715066223845186400895282694807910665982550888269231517714771295910148321851556716497555644613832550504889552958595768907312428213016917160897650021431893781563308488264057557578792499064140614940313623555765862997196715894708540195788633166245850400842524697739032204244444999466534618957819510485008410473017705035272234794741481925680277051028336946573969832458060041965011184582910345946933357534425825781361316955516855458557410469490186267821957941384357470701525236209762660245408413183626248792419564386179405474734136662328780670878231536192063807970576313578555204004991082114677930668494075196626837990642765374046081108534615033074064332428777351497275514828879126152332604077567882677047114483027389317674367949269139086964321529187140484733082724409994597004603964510884903893616998121324081546568176509350600903478319284607892423692825688250358117859708967935933117700845611613810592001076012570949682198041178159665118599698627652128156165227033849961432363335853008796691032750258583250510691304332553207278852865516729545213779524191719224267911035556874071915993808433414765309195116088723669196825224535654273032945934739998101364599802383980254389989971424581605887133275048951823662480397766919465324482914329985077711384566606390291274735489037342718311031853055347017544989887935131310412642683238141362471626959056890848991943444550580527860770810522921278714277350541200508219369127724544168519688256390292304399574128812134545528850691692663997930674264875264327889004636934719717147801737559255347611236589240087541559758488000284581639621035998453784125354062260583352153583235083919584651261787202942629896666863365945973030911585138116413864396601915226512198248421825712195810099920666310623587039053498504802521334921841318430911092364759790436192886924120911444945430608153421496289224819844176859935178062223135095662209605483100966529956149403135200086701210266061607811670504824168637458780465155378721566502433945147826565097902315382143580169948606320826005162518791886861212311948346037565523031441451663578699803068056211592539592478745414251168695180938517714531364584763938828341005168191659244090036922526212846812683827388553044787084231802918305441288086311432083275175903347290057972668577069348494689440313212661266629153839311067659552040349633223752944191950352422226802377187900692902760654629675170996918354681940745034344633626725821271902767212485991036084497752161966238830777668618517615174512027784689605877965853196863031597651402771681786751939950497960760588104058643107371141299591950670484628697266809151078593412700173279446424180544264590721254065045370346599371257021072608328756744447224242369916789959945416705718619721691315273448600028513285898487031233354498680056169373098903609183678026822783932404377440092456138544496128964298447248064822930667963170032013866914042725140512581307935626337574234208925725119878317222833188367913079404232665813578731687822981467534783522873975190887577204105810509122782574333607793498821768398700576189633160146799761810609368217411348282562962015485913626506612978976363695779821029732095939400565793828203401648453475023575671467383817471048386102447324802586727105949906311299564400805444209327662239028766340950413344839210455276016804687767002807415813130744895853336304390302435972474043945693704415205402710309812106449888946588662842193040183786369500715557071404419890620857166552128827531575761046236933652436498254757227333157174093132169162972014671168215462651223505203956111100046826317217798328530333858607140618637559015357739462379337225902754551652972096661537152547267465764435524138522121603479723767594328321989357173838943076843577368207159553606189204314051825383421810633333475103479020516066582542175419096796668327581507178870216605064048784397844650773128230537706485661001324811436598712830697738235971840723644789325783361646183628905225541232505723284968217932461047021290036835686937315398289469380365452145485924316747906593969574537079698925843254036215047407884071456213426649367655509925589493923506688280751461779304184948130059145751847125211919370244511869498771265776842272457741129420620753591857028706900837713519673148406961601957745289851814108177727564180309073541953282077913370460289223527042038578674060759026364533956111631031941748521346255408894362694313692511105124673872261923013727686928473255101292376876970393944345343659728723246560193602455056645671652723937592567927586538119216600744255006823967335592840606873524024792372833314602167292635645254417806652021229787488539706931409325333401952849264801387957800631092982627423503269939509861432446901819571760884220390028860970105436265019109264629065477209176747028028284940553967481954410515908820187254229293629560090099607081817385850734242963997725596371257758258364695816955650695327087652131698133615568257324370471025508647285992153606932617602039177150685125664724114657831856794203730542662710138351579589745615649239962778320955836021878728439152144149576863503600901082069824542651131116022014807682267731140399729184198218166558782517761709743030685170607525586399801367069611946965951340096087703069011738553876196476655797031687601899125514906534652525140173737185598706446436623709086714639009380495972525710048784550278204279747926357359564312656278734034749736677250784178591317019022398113873953328129013072852660804027171485196636117092739984660986392927150891252750645698883575725770045197325112850216867792459885247844395527045742440357163062127318018905401724187717971985039787827027454172074010692827554516982978180264849602962920434890290529748906706668764073717136104224530877822475039498027456730096520543630447388135736466986664737159487805149481117141811441945583715291478326951336022013255849961790856785080272801031036780999512727047883154792373647181216906263866573811551511774484754798926377475863020565831729663216078071394287525244809900176610119551561061971366354406455604939955941448768168099237733058070928755938940887138830058428951059521532482254690135475133367846461766083765130850899844635413732326506181711200974472666526731022237088937753026299016002943333127001848289051409690679470728351235264450262357572944237101944726269085798647817686096110901093953406632361941855960702557574525336426814531229590815957139975823705458591548542871963085555833915318865013845826670761815582247849316797191218341340651605379106559102777584859693858228569415579764527505319025821676319451074267551514819885710716782164799093741422051534318141071690984078114319155800355532192467690506176256164088669699091436529286827911851802355982445015021184430965957331678695553630235697384367902900910555502232484920397205662301415235677576086450143988616242476769916456910403940632953296973541968883753339382380076846551356571834722146728724253041248762860886658474490943319468697469119500051017316310065663187302700504850906835316153684582475654021886618278280952523184404998873792190263605130849882754639762169667906835474625654422271560589693020390774421670777436657923828213348436167728242139911077132038242218756035324890208517694169092101920647092416491847066881267330557415356588798545372874378096337486719824919822072240087620909896833956450534826774479693212913697221078662807480473374639674878149462738466473771822817267215683417416213202062021092527993148665636046749093330730423785083876688536286642676229675331008062699512072207481423650363213317570323098871252380534920459266444130411762149183673606631547707226332062040277456854600405432534167553853921567139040119140590673275539549778976638587374293527914974529359366506275132672888256181425695102059790744257165657046277960989811140617275002115127878038031909012576362470408794273288439703038865413635294594232289943075836011468727093215732959267119372106595597386432968782422338993399652096196303465257005045641268745324837305290499975279638701345233381105366333025546432589473460082751468404732848718331781588746606329517258491761888100311845676135965407202004451200940822271633339730540371907776928911796742309648749176331523068758184840035203548887342137203041155305356502410971631979249498959666191288703354367231560544196650279657039302437268237497389485929584711144588611312578451883523280528580791059990080243862673194392425041273754970552867079137126778406945754903242438135695111498045155126574409405444367128834642789143423588974473344609463908098641013317395759358915276017346730390831764738579338675884539978061088543672286868704310763199068273698507146008841441991723342798483553750982834644945315498137557401809944229189831950386944391650889988115634974709141148879396243139595414686386588908896198740474056233493935362968805440996707101453387557967947754503628968304912010357905715776020866394241760083595519635913432354589532656184631941398280965790061981269328284718675849622796134674653164363858241050038084301520076109474251708486787370017298451520638413258905551459402311524591140775815871763701227206915326323113502762032477259010573212627517013564497425752483844886041049184858240701547203808093692338564134774837657408556802836413820159830218740196636976099203777528732259995205384370988106059845943120861323101672054719307772890171910182238698282302077810531368511710237244324050779683106915834954806580585045346693346808348867296805185617534319994688881714130160235333348193400448519235651864092004540164451314801118318398758589558900050555264594552734540751370076778634017007106101319251679825980383812775104650778936554418976422788869305374404115922178713413203662981209201227813926209240059652021177078489417382406507122573298649625870191540705086978985823534940170161260872391621932638885597800816608277567179160544514221064061610164491742283751944642095916935581107408952721125876511803213051934846536444953956512952290536415289463408616712998099401991025376244114537060277680932978194254903003940436727526909694393410873656339511392069575455012108167847534991853006236292332284900518786493327536309101461162950008459017319936246499585556392755970690168996726152211711941678381848828996350818304762790940226862652037312797933058739512759735632876683473612649144480485997156911932893407497734075123746568412995610768501096265283850576833711833224280516433494290842207325666181926969216214619487711688998138599652262725084254454957842798026188037597023568870848108322301292988499663688699227808416511380958382265568996708713959653107186255704393922256895907082924224997709422720084180581834290695754953329430230050307233707762360499406232506222111924114108816231503839190133162590459876025417680463532390226715372570437407969539279598258430477153854955701617590588483482668701432248939417972421535198155956312579381716750152088751101418358002795071893180356745214613932125600673844377599006423005456310397852475740804325039311878414169020821129505390891677202132182225030346349515111900710634366644190752739872065770934369327953387408088482701524556472001276821709567111416477540882217895515302199606979387448683624887615795528831542046856705183098523000392530294389146790564854477440018268805033548065543777199715487989370436649562572693510859886272672147449766224881994986896360139203562968209254588231908620554676391496819083130611952824730178316109482318216558035551061796047874244992668441054357829336643796334415346859913515778329111877697460911260598907829122168816335706271948084577267948071703651278426042358667447066291484682185285908961273525670279113382735328345785736726541228311096332155321724098095129036256679793742823208642013733940659761744298420446823619342451525067446724906584693726355513825967154067698337776234549454678881747720940154552051023730132955810204708682689317848256652943559920475405117960090834560166153404239436275614032259411526498150058536997026929171630585004247445728862494789267819981458537743971693853404192632222310696976383392330052343466562115829242705257423083217338345082446639762367311693039106306759640309536085664754613222120096945576867626214041669678588546961095348346550248312956826926457098543708711976242175003335966869854142238774852588088687122796932607399153916689816620476687189767721312534249619777845569080459028813264777843894296768516946555991320627601453806249532056754744260162996814474185253648234779521002261106689062759857365032136712566358285716607034612506267417847400917806383384623002048553307057333543738299151029214338989681931547622968015730967517407976040922226583145837017939157385053688112298470547295915582894392674006618864102020940217074171131747224108619798586320353344602323398452213745315017719806042800612626217906217917772461817894747059269385131542833299700554677096720134305039360776067932917989363472026876273861337309825746427154168415719036092883988114902288858126158719984059406304209686937874593982690173034501726552626955593151077749584879358108208213726127072605331883668634671136182327805937918478771762407135120562169318697004326017934454562638477667526367292846971422611477882627363440527979827939779011877800937181610856933396223235415156626787540056260822748835281565051808407710588097644463287073351928475478728887099624193270214713628479813686190639053478578236456293517013880086957808125355659996420336334004231965443213856104160865999239327667157321142788679563315331805225458255676970508122466090688227784884325279609666662036008032071492442255828154293711225516749960446330570785209104686816029727395722122748601222060537890253358309495180213405077837538134634875819209367468143477076864498981844377867199575847046978655747522067666224481167324232933144406953359308757122347456067631495649378341111349792521611393824767169009123633449777959233757239695971522266469074144154136762190882280676978187750965802187793628884101534008916666102297725508682956426016394457857726924910139295676671478271218568698713518786190280328424210995354833405292821269561873632288049207872660693429919486922416383129970995715233594420927160851801472467969330059827380936773428958695458196773436134138263481386894238725900072844714441038069695146501276200710032191291773443326192079489701016356713223963311430091918492598236824302808011193810416755922528840224754895793708908606072988344162214210705959424435326612293879053171125811596072548405303145687935545021969213854903048655228662455902947508155505340670965274582454277290106528437480940840416839635285233288308489948314847367627413693096576521900657909243207736138581389037019974144051651774121798197817154304890962482357653105921556599840188398595083118527584735082426660493761432259183190694381212738991085777316748563992588680075600604216518660486314935385179865207710501622638483822334362022983524578898512086630419367745759514208347760260780422715950445066455431106917019114640581278268351385219389750594797888912855097848986127992253431777926044663642899162172263674688734014093313809915261337053640013302145616585400137707578762500278585241864883716153141767254285907502098356188174660117836569772334848446212399177551599455894343324681013711632974999173852887819535630756289742533640095777254262448290311738803474189402934083544128934069807537680830728434191845758755058972982675406209554644100938593695585333624375378567598266174785150607319421401118494064700944142380331056357865761968551926367799992309318635468898287578244653138966721185515243716178215564698235562824180022737302108835908217805911740631223142007298866153236787350747220572127874924561772445367513077744452056016348669037278246091317512833594972565722318720343560902212911733878263924949640035548614270679373538313327746787797510236453798784884508821034201096395752586962206957955499026299443037469631930943511044887556528062151388527496747948697865570153294753844562588837278737819214296236589685141662491970374785050616870320087002885516613027690786703913489956688068712116443026850765986005618859828715635023368478535408460857563877494270898172968725956048334719546559607129047727352428035488815535751836617579668482386493924620456597870726392245792393303481398577650691231169072240030415959089745264306830216746679018039997606722277687766829540554447581670068373750122030762707108082612460294321458108708088563281630829828246997949569129795440670397884605616448914231988145848926903112083871722676955230278098645870925897607785001898025173721945758770557052997394585277198607193899998584656036198492430268075829236504170200603057236303882418051995799614788207299998567294267394572438755467596807954567936492936774957009367189332977734814787784593062527551672367426631707816854789560079334482550372233246486110817746441798710576376674182973973686395160665451809147557374260922858643441849417143329509658764052830817161878603667901278627868252048543173373064785808741054503176128326224010272959761522697708438191662159388100701697488155993304521810555611219477845365383791565082174134346342438872955138548592224863153607239151130610574347221663686943616460583574172316778078744061331612472906569934054375617524539028522064060980972997108550464836070209224554475173044157668701763279167521238461334674886453234762001787487686158133234044506486967756628408150275319566106826723949427914590160829978430147622257474644007473792385811565014104670128136734784625624635373605536947759084555481320323976861550364318109836088057917621790668008677729737658720090717096083172443426988865308158468316118548201837886115162030224946834988883784534017468994338573397096320975808114221255015500197574436279776671267088877798698037745794501789345106518031273340317368649429917700055445283381325192282725212314073890178724526368865514249370074141345588789332045456198644808176664450593719938132883458191294430900661701271899134961998679118176669840860382499726098522768673541557291231429245735159657199488258339314635554087883294405770994986130392317192318706406883127980035275899489926992014326976802730970712419060511023519015831615362918723282657816477482821286376348405563036713649065094673374954900761170637452473398233834528458590673365777970757130096397685973243026429271461734096118462777369157868511277192885279595150430493418950178386537011507409815003413242876650493385771490589691488572411674675334952213376529948562655839359091303753947841154521629973053300617630462347751034843016321394264756765526464332575086655645747189806440703730169800695002106996001835669793722646904450378673087865636934104093828653720121963934645902133926577183431742043432170789432823168326583326632029719577970225067885217568066664196232026828246316472659640730869519067107439477951209937547412726576870149124791800063178866390568736092639275406703698286149950030723614485448511149750214680049040258785940813614742661986848837193800983190817846420589370416237370304811581981936477723584226203843957646110243175563346218966095747105100452068065587237686116719510434960840295068505062830526877021681490351245406738154027080613199054646357968402567580607621438998230468789676862684086408143496699068547855094818875745785775921607707744350550924775447439238090400385855230710245918361344387132257177772789097180323376753236259492514380806938051692164377557440952370565938000585253333110045868105634933359478151926167359692946983681734961662704320886298207265682983372909989689794581363020401500379432291484626803369999119518612038731918951890017130166606291024990971749884602142192608829980020540772821620443879977959567827072073238351251856631357429303636654387704703709265623894649299868091849678246649711091660123191631010800337837611325197495065693818617547384909401779941518065754097718789937736411124134760554906119665357632309265044647843063681943729705248818986668894104863485330739553963517973976975153621940730315585497872642560841712134967976837057480227829812693913158865980277354789596043203480238648043942078101596093612742998408980194331670720511452805099884082475611430375333882201993222628600698042954183685844727589178136923550758767503453595808374889561377007031145715457179241942836892932901315682871229932183779224958902748655374303204966713093403184471249187972081086099133281157754193415478478745582214092060456777859161586149177432919813127811287277666258067581048737928318400651135105580968772537973822973013036959463214623023193172900603740944059753959362678007461956654235946352130760971322005294933555956354528912621360772320034088035760416780891705409195267166359124608335472060309374075227413467771015971111049578735670944538256602496167143215619720447988390950975671162707130400978479536285277193141286292250698546698935146997215607625154725364891478364721466994917368022478034171942043875498092189260699956323151451278944178234189254280896965247700562721817865018289824815886078225773411956246644999366894610331278380928047196402774420797803311400112450696454226007378091768564138275427239096941016366826566817109461336477291573098914156368651427981882845135407623696293525986747035560643409425530943453049013081673767507302700731247306256767152802251888811041567781201135478991771585711457703220572820701607735617881311283371563378417437191867798289491128723663776311461158243624691901401565265335168248110619785282073296968846879814499135404588566973330113424997766980717002111082105049527152274793950981136488653424310224001217606492457227409686821429211001828473683742523475676447325966352526182051650855716286426462065945205009380544542827387080938526616903824832290446384469784633866167179601315455478535578722407348789541250865032435218869125676773369994953474518745480382150041081827393823180052742268826250552267580389052332234108788400947248529245530174357418966804314295068537527389744217767155104256126713834135234822621698360051337514648797896005663453122970084477401409262780283328613288350078685716334228963199797499606287643670528136629311400766165223379613075606098525217900312012351183237802353976782531388381277679476469427619887515459978565513852594854563601734409566311555574512897757428047300242513197869210201778222176742935507224715735267879831231425504336909399644826870089877006600967764523182375828729413000215006673998506206128258727725848755614339698229411578363523122090156724416153810110767156503317919913192452039188832451876358396215926050514089990592919952649483306832308462145629222978017295168158699724494990155861998903449191989394358231230209384427221633026995788950386470288945724898661544335942546420172004793806543120561531800294364947924564906663455173250613944162927041953494217171064910461740088884521953050141746878805277476514738767330259946972835476499896336049480456521359807739957256678814097289901368997219325662574412873659197624610069927377633338667781070971008210380235515875144456778649351189001612493226105365009557991111994693471174273116483142197364479623707396895539000817503772900226758070248878708183166269861308350448323920139611314987381698140372339745873629170307279301322201753429076555345235121249570317026404952442409633890928078346791665909089018449518033936355587874089909987784668956083381718238640831569888303510368092294390689316711711351811868491505430461696859924818121904343523539187504912776267697272515030161546379256117145820547167703465320332170712769897643129710252534816730574955613070681184831534051819665475918251947110654055564412675834362256010492889632995514281156770953143785404058249636054901014062750576840942259927062411468416230879368133772098759719383627733703407509518782572142098218342881057750344745227189061895427361352201023596318227763429496747783357640658281517585125884256199655922626692229270056708253898031865702229444340545449507208761776497319825007494604447496412178095179432834429632948687249501833884711063926159668651422241795422282269353541392579266768812204390724652644077439676051068037463012113232052291169288643696426397613600611713618212770766158737741735716133155348184925483568597259680921191352318691847345665334675601043845634759760284704808827229192177983691028490363644314955924562065401190309380223514063408264767055685769789948139041393082624944001752574020887604988503105264316234625626485328837824477382899600057793093651029854259700345581329414690436787381911351132890743956340641619942176979535859165113389045424050210305958280783708761511031718720582438296457502667294806599339696529973067064053809539591882973986827968405013285439530308311072247815844263924045444340944084820598319640293425430605556541720236481712420081150644724698254352221714222258499554226094486431938010941093538892379442863935794011184477396366770378096200106196837363855846385389890304387672673238895606414714643706791454393539282119494382362548439991218710881000821352338793716888945344084349457438574127134475976889228321225518242811608847515997161228384564225640814121147693710945284898998425774592190926405536739857374348537841355327850379377398948889929036357870485902022867426593545134631241985254200132475736371922580646851112422883522594616911403974762283957007875677139523996386995663273075163758152329469950806226817650675861491142123132976678958939825164485550853355691151144618413571752130126151126526117352380545667566417254051496215653488451088574870223778908312127121921138559953717352040352491575328095334632923172798608330737743598374320214077966825327703447145094129764649968891363495341357008249321227560423085127686739212689349944168360367407770862670201231116639319966247100165719157047249676329536154919505159036238162677734787508459129384181433407033258706878072071216931239794142737886132624313643975748036233741256781753692364974405501443773463381414608958263782031740231928616816141398052755812782145619848124274413172185564336437435646529557662937326309881334218291739183988662657006638933512448734344464961592985909752491048989017612397215476787031927712185453690990310078936015726736342185626110046634240186195977430250999316251222322054337587066379790061245830177168674402757043651021741959418282085829302267374481670736004053182655344041420855659889423486713220099198995025935951874466976202691971481691838109344507634798610062519596686128506320933622597172608881462094870695209047997906472772915039620952698932335167164114292068286372554573088160863867457127218954430608709382417746014586567892737228979032205255954563904104380109941692932781499230454570702048467503418096448350003975502379010542844993473502775001332140009186469579890032467655957893726686489351111689078641920446104784323592516989408098346686798714076452212392871782902010975102213463163437890459183700598854643927714277476480188146781592963815605951919721585323009137175967228321599614740869503632369006575877117713715482872926396822220489809149202470151251180535836762703222814603817892734434170019392490192221319015705806305270344699848364982549256903989643250864348077951684025779758286381985959877475901561378944229991914395058452790658935722532649082559509336147783098766512255545608501025147074773328036481426132289491688871917251998451228558682842647990160434243804517200750774811235644362304591312621432986794736267279701940658874830946526181279497421553777792160442595633488319737943812780884115350253775104708086766393800414175931554758764441006202284810014120086885720808507446740388650949151012995643016448806719204359052049952697754601746203922710051082898190792949965873994498759067363648726841586811478604820672033885970497402534470873445516053021678323881110956856661763969910257213675974993861105546299564009244618067855020792188240918841800944738836845146378485811281456115760573765539774938583730117864833257145769674532535298905698950606764479836823337876565901541586822293511358735125986516060912215021524859114855563273155386705144142861301076483815373461976384833579819514684813778162391038455432581298275131840301972583038586272859514193435595879843559657362946992618284513558239193706940102598145429233139003639305331673697823193807226986975001624933401011177288294691732228904781711616655283273114757792625693631532260747793606415957086638644908340721111102658725532777719707233021961308631171145667212088691949510338449114640760880179088953664735578562619128812441710568949972504960480242182846847048861160746580278653692331739369366261863479518444623632841251724320955144544621345429838813705444894336331838490551497470631606853709946994887520373700314004390000224171689275385691009330443703134899491942600721744037117959586753067163099921575922075335120674554605716438608523971423534815567790573386301650636938919514138493501413669871080325918160265317502400510233638938742519121463837369439126717648489659219802784846476638763930352825062651608488598608255597575399179850680171462450190682214148354393007417461386897459691852269938744235545698738213190037383679064697232472326039069695313155018036205115320090460056910942129545956528422807244217703794379326825078481995914283239643467925226190354906621496930248832539015491616633238981017320241177522400882077908193469431061141321602397960640983966174256245967099354082994111992264044934518683603206763133641078459812008910475644736337443086776866210391577665456295344347439358604537983964661857973175449558209653926998691961366742245068168826803178492031413949936359053699672009940452412055405017734825480935704647291332649523419169460905250380047753740989177604813698547562017408098939568040339896160679898812705470360513607890338211946704553391028272515287807396599445805441310545972452452797504571528757868997631514747428091748838246109966266459171773250417804577358012577597557532095113008386483943517430666801785437705668608850404030763559721508936447407458254134074374518261355173829333256916935481958234868980431995371697005034638514092100718271081493202539009772639122584932034012525033324474752157199822043104125254867527052247634171880351529327496868234668867195870563916965054681690899773312849411980841521749925235899747212688668305220526069682159224945977107191567135239776607857592039322016869439091861039329652728097919427805386940346909179733718793442139226030991849325386041026861041531453524257184197742755455639379109453785941426457940326837525195669186350416110246168489940462531925422376666819707839272577648082733129295202252863163860318858385094673706689689501907132342977071584479512048656761791911032625652852824725083577970361482183105881133611228180769806574955488053605309793825227787880159077190968485667431870288960601125122636231228455207049719528878668392659367004464350022911060053386665558968535774886698032666861772662039003272263399880783878092354281106451119522119134932046989542390935166023034034507231604614738458967299526957881340848977884000983738807915027198234008961512933397651390158244886817311689610740019166204198436462048748696383526301282933184972066289491172011420833845369161210714646223461245561664809315442855322016902192978611313173536349648576301015742650599773652304738641273767750113657932178783666378283882322644028389405201930249219565105671984806523574260904762256484864057970491631334868096742254078990704466944189987497302132403835740300847605531832851251592471570054014042702043452009947442889927506807851380313168375960947709689964516750735974382032962347077594464485628625787574803591131163316060486629414991726931645263121857544607744142907187349271757053345923268548244596613901088473278395802370658683280680788922019649259737910462146604918012791105814516725844965888054320671807144560177948187401814514636419650390860432334238142261050582484153766218663252534887862323085264492742400926353677009718390914323293495166775895181209407932678910862896495630148480501470233824511152377957009277856839665024926866177689553882778291101817756097042392172610937010190943399803065768297701270988091047982734697254670942125362315074573155032336982146490724689795726324549805379690138682234072006651251425401870263032337486941934005726529379741240591112657246851137737144670235730513848806222694865438457659943744801010508648796962983710001495667121678345749939685929501747129771677527590157225996252448667185669259923283338743331807323271974033008066981330747955326472991815257864368667949094715784420095198662571244819067382847665667628342705295068206133969058717615599513213500632028599594167802547353151770751016342327738087571027472318785989551901472627155193228301102474456904045812503847572824991414718359751690597844399291850994393688441996181794546306027149224565298487746620165059853427599908040167058759722108000144938162031828496405311911889984785966758633618709188067900286983061319310394304037191702940350671906581839012136293252695426751109664933894789451864112846334314957619400720295151785893762976541135341647998159624613682499084823979978934012446028458619750005767851333725363989916434965988173481286422637091260128079783184370519902982733072328413475242148783923072515178830843035365410312184776476733630723488869280686006801979033524462712317298506684218454447648883338848841645950008301667342756305409478728699182660612523788982743178565551196272408025290574396340768618994181220724810433777201076603867878571654382316179876393094390086070050209926137782599515328580874883656170868447747538215038909291610969188079016578512723127761254460966521382809951480212988375496137895612485372709268219039613741330760248650089566978851637504406410324920355457910249585931372137411314935337821094720381498028313399780458555985948847898749978210687928528960541451017257851988140003038448585364044544458782312008890436398278562314716706212604320444657328997909770816216075899360120345274421100198959350543611086614340526870335231772298483418126386662643731599447618206466957764703620081128969755948913849912379134517328843148683593035110549043251348240060395153251519111775518440256973418931411628086849367327927332283164193372610739667793418713703944327956079318512054615760214917023239550462807414548786886434003231906930462721241472138688864186067273501663573494356643718141809529555484213813411090676860038107509866952255393732922394743154923689813452709622782433905594074201475779284502179654105178499025777533894109457042118231736998923819593319845546220055537592748504416984269372121038727965220937430155035000231941794725734895331977190793427495469108847647524402903123022281233715490257803150550775389169514942950819868471145355574117038362559662123379974633109210810238090452405797832282975188605235831782028130698340379072254276465220081179382505585338225935378013580203127489704704794457816555111306830194627948390739471012202977457921193015764160062550431558237105301015859969562612071847836269503394275347072872754532296670641696968804251893648613448166453255717797838640145088757901287527691890909677734801989322821108507742116644379488662405447082514852564723696951930860638823431376183682830171216883634868794842772505212079410859829524591192856851934360646488292412670217846749787180375768748075331992753328540757967554556119131663736986170312378510536987558984854626792014328860398869952849680212970301984999015347109837430772776345861300898905775084863802138780655022109235794449150230157107610144231390208746743216575904037855786109715555086567918063997999556120683870249784689202491345650794365579237696818232122789811786619506888398326867055521464945916747509193846497361805409369667426227105099732720392243652552152381710382989853549910388884109613725600160836018809724628420237896514639663721394743475161424477130356659356757580266794611581102057118375796801551673851714665588877479455848019651901349859913795731818400152744959470234326084478902459175429859394356185699601584895110356046244640507909673296166469445330367714993710139830914592606099976978253007310307565786701500586646259695404442015475041689431702867870819027260274439393256947101948034836955546084889722205427213841586059638499541327256536940901008787450780739819357528477874110806356459151909268459463055881110541625388522210981405622397217075457333544277308932787549325190755808563990895185186593469987852770782923198546286625429705420088379775385894851731001345858004767422882283017700655962877193986600312413307363038990608575687458059954176584938083722026769655073495185567421894763695696209851552376844322899420188527198725341024919597367843797328394475187008776841233445617580975610687111747731609705389979064381233565666509801645202249759902977826151112522372594122585284240618331347274204708341638117035766551886344004813047231579825503870080122752455755862745902958978749080476917874028768374182364836597275736759894509110664685105527555318557510998750441900641563182947150766900955804085669816199758799888220220646096910739314977550280798321950572983024735520563452809924493911485969437563251233078521037954003886650044397882906293660232596482831149106970684627899678321644432413964051506206982180906954436437331835265213968695812625341226941645857170169266852092639766710796642947813855609373719270215151420749021832250106059404323474017449537675467189414093733576087666514211755007479674226347780985851994899552620808617409662231079451696288531218627645575335894008518398350908547690797981597804215922818192956537165751819945544832566740748784021230985180895259418487185144610882055543127442845911656917390075486205285019556453112862731576622306895978035973299520297848427835170555620154977450644524049043908084012248555886786005411902997734696107863168822029043647965165558661010965419784494004327737085073588774226312680018713800892733621720078097169279915834146343697618676145918943549963289264935062761922595726303145650660587052189879718057870890772859083547699297702213048067392679035389298390217398972660195708669698871126771777331832989194027110649206620598569555805929451272736237384002566092359166202702490611372194535222888726894926724007560306602527272313467754040262526570916788203442997155836841300808533563889077902349489179263304188086176279088069351869795008242698381042276976886121860433164569296753519373366594460272781689874818046192642422633823026118801362551450178142223379739961358355646128923142727585134558680380863705497611411996211372643185298962339772303071290471884646008797551752694786808759109387303386345487305407378198829212426648628543719516423865045912685176694632914081475184134732021299658673313553685247560737589155704707073766966928834164606495104198406448327103609360789299675043039979404994095135656549190794916938933407489969572853728767099325208106711298423778067335907894126827958181016700585618957267005389830921284387245127456047997286222535082210486045656025129616741777715203282780442819870036701692895701317827878622617571454195346951620375372912116919737285241365388319510493126375899538252430213043568625615533391843899902381464417888218177697315719417485004391348865651963633375873611910585324933853229470066162833217628390181368013602034818015175577199348059203315152650642421455065692878172522146246687445656515431421216626928787889531832077513790873082100472930286620452728195702487004788140146180385155820298414832117859123243154552703131074006671825898587453609328510172531353461305350868319561867289096714881975419922026074944610875245292719610977285817453360389137596427201321738763882660407299184132790858730922000704990813847927272644685910769427284225269758725145881266340686993941645350673557430465535197275728497832172881977829217631846922610415062486798525610876019802647406776285530928047492987794910935060311700988814833304022877019150287829058387964555704200042334501193701348480029904285410447878974497230840226875043335698924405184643629583812999652063736263683502050310043768403417304993290342632698600901321442820783985207072470503862280360021551459784201650437707108536540725350950854068553024943011982536033667393079982993398363745723111498435759105335262067607998422728799971486549819694189656771822278508192192427403670041767784930842602113133226101214854466311764775618279417035541097123467889113677020777103875854096790977901373801553969972409790875480723692793195439573230721022947432940381437355763561741056262657493934053389085490987225153215424822759552622555787163518787129538725440661285221268581839688957546099372291271484297565387693263451354377927104336619871898680570578001469048766186253800452614629655295516377175738159537653122876410456232819214958911382186430033274158201373796642859227436126048448943875301605199371005561598374916474309971710564035611496853280489765478130833577064792773140315882342084090381067863292583925758115508368775529471650902951767241617647685565072463346087627896874956266805041077922679184967347285179601469762382072575960638009641128920811516798347518640889310248916072113747363841321306388209290097681050648034260082283101565029189718964396325741071794803435891166286225531072091416040253001684055063369375035472633244625460603573941467484239752653472529241673180994102415116003440568233907711611296064326859787572638434483994547955880048331947727946802362538057067219047501827374848257837775930052038404711504061057022387387473317401586177677149082662938223454381427249138793229791819384341832469253444498429761622010965893994744708271734384288920014252447114367419130555946536800657016792521770424700779246447168785034706526534996081825156918220892801156250038053246788334230066870135152516899068420584006133152220825621085294781103038453819707271959866243704156777384098223464279501506034085758328720120758471492080180025215468024740972127516534802115120990043000120871040275564079793786812169578263698273886539889230405804577607349197193846832046116626240673197624069824825251095990771613892783576627990793042414263018346083655018251942896153702474998187414181654494997902335208258623042135517085484727570381513767086238634097941896060972276483272926882169375638737668610943203400833789334869321738541836146006598959664495328156421652207212413396483251597626426347818985770546465114091503825210221302774893224755509384606501352065622684046723563249237287709734622602642163682966155874574262500250228841774576926636230864802187268120282273631907853220227577384087159822255293839233071263902689830279247040145394225052941357728367204270400494486973346435805989870080455182914735836607354483087021632607692475430269975920231611695860028308546128154591499003024739306070275368153079522907472852176298303879652126113838616636629549531457439204861410393937453994455084856123925400942280276973553069435564741747583034356433724871680828813052570161307636115387141416193440193704008693005009579796535060658475292515498711266388372195111253538444925858986967460657775611624965637933226612182527134366921822030379970912324779007948473354695369815065960253117738563072170529740138995242125801580900064024701218207013261749201425862885238835217108934028249083597297169824802747919259884186942302552391142184597602540100666823345366107328661307541476522200342664134566845446058502609666202509348195851513013014338215216960333398624464916146516615907340971056712793490767268840942397053404303199523899973535100623085671320174011900542159485023118790842512059945538477746529246822070672918512962151198105312077680445751578297133670469401419473369743302654292099116186491088751487290774192031908998897914000734195611218171816456530639488061539489958993360282716469390024997408143847361553432508893427655859726139884397425778214894972964048792997654358089760784458779497070627253821170689172247793885314734681356403798215944138612202014921801328896708778135019707322324196662204614943774764985344316714371015833138943733155560266007170847996481288723932480459629155412302042864967599460467135749957139428147468396276198499953025009084674067145604792378991123374258989792864005743289389765507398150060778454600384747946098286755652571107298792039755101291505371628361632892413983850145528119748229006686665923512423086540808517103917806840570599399460807798859355121456708451638294660674511322900230742126276198619731047585367072533548302955945249223112367999651333330569492711940569898505346420659762226314312998259945094384173784769209988331567957299180589849632650351622399916456025350571157854024180690188716239119496547737498532092334465079685537905997386475287191462674397166252940153980980307521888455318879340361944297813866728517957937564096841424675390007477505097798904746994605809687492276064618352460146225898295274220225311252225011025700071852477877020252948437060516650073468027522942062349294997575463242380962067099231575124702448017559724998901611154851848408073732068695642304390319505366310098890738464212703896370715196354332121561137750878626834341753812496848951457716228726465695336303345798524646468649944942113235876000039422699160343403189043519246279309885620737129348281243606076856462831762068667575182959644948462635832085350713037809615553219869127430151216383186951840706992585289034002393419676052906700506835606201105118418718781373848343514664800467622509823954519325201570644336382276178634957430416082306465562426038267304943582854474773769666292853575636438389113902628160924375371827597213056880207004183603754425444031605812421814762244290781293544531553061926481241690072322292980596919791919119477529147074034019707691375865165941207374821521901171571240987498948803103117796180259943811283436213364536842141322016611542861072242135016850680239512569386496327540520444222650009600274326691724763347837249022443094995180103513908513795584182790487380683425017823331324587161570012185604049876060179644238981781487356181342964857741702868815250321186690397386546281829807172546338139219738002743060417171364266535415653354332194919626116516877936797586369698632546803136779082366184367057573196388934616189681491542208332822933421931240584763097941885374528285905515564615244371233401423304774960527444606854467820404334400198099090145712370779035984577980435749113605449326019823026298123682069213758558075445706396034642444594947353873173221320798651707000581479743479090517557135482492573084951276253553501701156948449397485162074834005875664972601361640340708654945726436744350866329618246385521841209689660633794728767390306891807278615778290799870532114438630628728063781335633266565027088598011939088439474788483300833292726575125808417363845817197002259323194592975796705597441034420692802812648084077032340136100341877554670510855573179252133518866410101583655088015328723207062388022686032980004405175452828131988815086713472795279775092917635063891863444447967748513016368947869912585442612179996482181499478729703338542623050600194652398082787529157323026438048446726023333504645838798501498961081481401821400628621011314254290363763297882633267509683901181827313359270040908564851770175182564714493928445625911089386742179220400583684182970497808395651405718237806155388402998142641429451845835799202638552194753009809823775958651417873200076334292142092420967781962778757481747944429948372870136800102688479436681497969085047814761640113585733952357994366562443297232578375125478237154956043217600199559483754825520377146961689881009011044849283328248701372864043510152842505040082964298453060766922025576666184188052635271460508121086142057268940465491108007477655607507512564704393796673767260592437892713127735202420352250136039177782994106552140054688110164923032527492127945428626867334406413135395423339757182889595058286314137167166619407283056991965898517310864007636841444665304847666618128250845001885639385809080538286409083846830114810395621649505154177545238242526160305802867491960220155060667778322870746794665824402315083500306844450550560227063208892972851282037634835850452326036873390557405495415494307072029800959126725174078259505407403895071607756315032850257436607940570817897137349074175407250299502749044986174774605672223707291633693029036066880505732512571151907410476698307233199245541896794892940124609998356155389015201752379718151100115148608523422795199299019783643027278972257842088548720487645060831399440138661273436559073593372413106241003581894878024994482698922930904158609534974910589886724912084335211409456027021491897529442327040547872821315392670558482296249322332522558648897757169544609613804555483187765972913966378320337047995687572830889439188710629653046307751946132374472063484276349376834752845365204583905780490985578566822022989379343488637383949873108322503357184586527265364752064822567763624392935951488264097718844712653520278339908073215675128235389277018192758520342553013887182298525259910893986272471007077836841868571387535792460542629766572028254468632038428108424574463034111052300586475117452815469066658419132918872267027279793958890872091799859131320216372496195101625734204335874289003115512259613381118276824378111875774712017711804100736018791927976835699967752199147895407348156342227033470536423221667154982280407413186843787952005184183625063248678777259628267651574283282214762081284081195403700576611815077334907207762525881725946653530727961204947902401728899098112670128499466817708635159139540196407192981436410748280958612695195438182856349713534310515749612205911905052169076502009382798584721393046169313056914007003867118456102598184026411615328264942996025675677879218287224242268627172523864704919778388480578254883048149727725098213242007659268136853222523118979583832859587708802709558213862582565469281796505009698073083477879463363378494127170387840080361579795146170322267618848613330363003430542050260823668850126198650557621188803154099950814483019338268015188783109578501430064633745041574882354705325088589830628026571311487891941124051457884071927099386122085895206586447002757602074149118982733781130546395376263901032634433244419734148311357727645720432053578197623885188639861665045405790117697048837631876037629826426867016837672358663455484240956325531247287375180709692796939991573534301698657677815716383191494117353514596051151890221848627640460783189570782280880832687975135806977199925276157535134473580598773223539880373953824165891277116735663470220331007422700833766632434330869926688490431871327888693342084467116554736236941410617753374705982106692530693427085616648448342671306518237042414822355014116532002896227693585105507716348241578123524246921289369249573009249780190782604453707276371371528588109864282974533739490834340069303955202013938762453778350684128890625507653789926940619914571126956218971356771282729170524256807602559884193144442716915646516215264951587973372406336791852579535876107374859407363804686859380579444409150718375478972902244018068586010691994071859856464775489724548743327230482871069232486746825672588697429548945038808155982436761233583952460851799954854383940914404893447816233117475752204614227287067643094200498921397577415815446279546976673934175814323801615165251500844395556602844803289962754915606040712646708654980894401682392208701097325030569607207231172492435478888182378737973431922981242708600400743785260291100246280643473789161876220371525582126332695044121644140385960305649099906727223961725307403663444271160804419895985770377309667031970089098179390536384922617409322137875637945437473220987799246459440081979909034687777000773803167260508592932342161815452946496371716646903014194923539986739638668138605138874311927644711308299101832106542454661427645263137526784643341147455546928228240284494746266161786203271960640678786684587375196366043524920483722206261990003991951808734721475074774795013248475917019954146763755497184468724591170091608574375506946271985979023390517220971052918765557982188563196019974893833782971462291186891330383664237678771446875434555753314783337003267053952983106612632295501751077224445776724207865856535456116024633542621913550563715064178271246639433962584567359385210385925719014140524041446531908818576121758013486234319991711420100732175553495505544057509450541838042001065187321000666115007462810100585248816289822878263811660610603988825189931842543190334299347051995015491447266904996426201585395851005483628407459222803837046652748052596815428851463647382022226576396496142100530183078312135093338533161742987810239684671252243820057468889931140119409211514743392880658367154296301973349335402358683218999723680864358346434051339885305358702999549108486090880533011223172051383320313309018637491481964237610333230599059419769048473667799993742771881482030197072150372354998707622700143751385001854984655239195175007278991278226011255212512432268642729016507250771202922576711112124071172877063027705610687852679258387215729585545298871674300031524417991542416691660844900613330424955641416473726510465912627664628209707747767015273791783734138079669274993824787663973293980538299635970579171350016150950944051016585009160867224513197741978505093811344816026387482254134645197443366558305761797334512857617835012079967362395489625313821287789877081394164628426406905138281033825855483284969380473790231661585524921936126756844324885290631245875500064412878505892734396788402924716413423429462898904324585164582354265390144916949531325057842863692582013472698054053391649243363600367448808155092237965080569216681908950072113872905548934274365007338856422430795099191413801703376172045654158170213608419804196614207358168183784965171061237996141594836449347336640687492990345285050822005808949577040716584617264471894770947793931949797656432603694639433897142632300919956500933094079843176892574507364062534522605358970189305312287627556943339264111554508826203955064341848251618985263477212868650186929396794144993118967594214480124386710190700349604650732645429295578976075428558915797568963578666703411771711194724210676866785914763908853193624741764987496575457173541463012911407505233315812047580403640977637401818470887383932880585794006718305163612549636757263913760313267779911090318599543752428411129223125955333706343805774628906965978894689069053523328209070716494593433407300805305745247062065738704942121664559236918180211773648861762765485561199910030923395972256985316161705127691657361417307278656438794558732951297979002892267923924445302025025714593050565620357797922228690204902638898762400239352295189257260775812970339096102584693732965235241534948470876497857590026594486171325621923100959735646260836347287669518909153560461011991959607447188654284316466211520039361876910310447957137599145666175903618358375430633347543648778086456162482784733855793695433374233347188495972273265600652652233030184836056780980817540224728115945325347194108859101996714587151658600771371556024093776273247677328787531226181571716179394009388715320007451723062027157286850946093817696087354203480077924797914580054571494065783399491262992945011945970285169563370713660952563400643894090660844928028294370827810354726026195237572869166746064666870476474092712742406647519879903827155802943843214971007206876377688776892584061074800035566279413447484240096806646213782840246824082834220875679943422879698315997206898585904328247051661553946250052981902504354557922952178929108874151840951649447555218090702131326230201411859057939656179509006173319356115927009445917314415629071263118063492334444039387932651317032996465712518254688119175005766744705155488621631756770413869202590134476416562858684110939408603342327725662803767355612943614318066067739531102066785458806835033280241060911582120371826222266496876063277595244009854925444796303480956278059780809732565291335663325065864900609702102909757038192481016011319649351680141210806114089357062880685563843158222322276353013517376483288065621141066072392971805222082159923348691738863669934103679126365964438016646223470088333352098892020977979028705086755201404323107838836780749702139365033634491947348107591843109302659761761853025687325619952669383632590182821036607793722906030185394216697650391326843901370834645931098829417832637857411602240481120039412720409150311223720174410190000589435965496199991783172985215509397064277356460643082579825803480210322609789586854690577658560480362733143949075611877523949246260896557630217330179090992194686029947263013637958381245694142295710513136956865742911058849518863625128402777784769128729460239741690297699648159200537009720534609405321088506672880974223581758935600457272314431321667195311623821405533355998006722013655405214448113430010082106402370514122047923642038156630945303422830852520593363285873838789291214049825926663664063418421849085021459127265813504830117886675667270271694499621589327203354464654789338540379645314478210516484136757118434223442472098673229368357830879963297973120887868639934191228237488817759884938093133274406699660946778709592751447535865422756546741248316308692318652941285826497778963472061777372948855230272649650480716896680866770698376884195860491408003678805495227735212690110255098252306828249760671804372207259849776857145839015967440376767502098016619459930239285357991305855552332827172145276775818991183251671510249056416911080454208110521550215098923993585219586087588597635064522937020330303919601303357202710735642010442330055940547684752467044862890444932982986389111253412204674870619461979492684754734486763293186920835210769877055387194921833638421742050057370151105066073586084397372533611829886293422055234367368821222223053345017538755316824065301146459273225766472064216356499485391662301994436027095114113534518879377121556058767807921974929492920100786621231291963669722924520467042522851301534476597831100408694628847069952312142300263390466380433807021248178923896071326923684176032132441237634719262545586605084002458940614879778566920116156385308184443428082559276479290172315833649603114412346927062016961447336049447268649380704458338714550359467067077108961644447864879969429774205416079660099536536947108043102853941393557154442355755011901938618400931606080647416035544836695859462079276117620067138108666960690326287690809212410021744592018884080735037839370394053639150205727269022769756473188500609066726141871575576557349883244559283319704635537903349588434047829870242588272201909646122996850975289566183958395656514618137840171566686598180852474300263158398980769937083343199579534166901522661670897450193519252832571382957136017395557753840086359025121837261592330337698340711032696111688997265294671722827298087398105122999566649491158355726804224733660689094188193109675114819599242600576808870381085780378464484741017845254940251106156730874329053165434077787073829350917610437800946456776025086427490616244781315054092612845015368070590282049790628894202053067780976489668182415942109292065202305041965794974100999851113617053225428483342964499387295139965568780132591518159030785915357367917146788040143889161262332224595108457833105666113808506103738692141662589379933158867679194283136530333289812816596333615059626438417184548992734868249014089923470708054004678467743838648493222027416813461145870323960810411686302348088955559159517942170597499715409038882075239535888838456764596678169851441540008471843551688276304219654275158799920430924448193543156009684612904910643314389792493142319791137401341724136504720202299620655969524045144655705078261834954836948564957442092055614465073713649748313988760291279932010901068940604327304075639887944621224913244535847088388629802890567043323193451830681973526730298252329045741356476755838788200075278936781757663525995777022591049787478656748331107339344641321464435356384970275873108709928561988116350327821314472371685528252634947709239072484201096936262444948103918037800037566107234060495717753834506920220347066108654723804572396994665380662694302083379857278929003972627131854757965124689538385661715306180162122519379752445531719327116589196359701134884895503049510860270722786389691258097991444295972135202491125281952390113738675537580861134458164451666340564388165111942992797307012677398092093324683608187689958901607617848859202858180678131704103721161528500172466698943135933957841082985490815096039967014534545891014162935033489520489912707211854529533266508616479123053586099336572192776888570453843502617582486319896510911868161246305530800772218742074465177349136532444759800376571959377854710546492036699094306427461530966715127454923298766803527970853675013110173923773794763978888113195196627040098823734132651681069973778970371962714928761816847371907804830726579987744803210147458004135098406719560136856263166743146807122023136079901992068552685991935484880253280228444898866150554147260728847002962888432004815841236869960450456607845994145603650226064916977797421466443695348034595205996450746514793720192965424746851395888974545796883753412162009457140059568005749408044145265736370299855302396700161635048414932402473492054548513049766313537952419292849384687683088754699573172592748271015387929914423587747362343667906245497425773484533448736151209162432217191657468528275535429711588057074657051554858100008750266744397480953678597324390220944055185540771289912561878417984276767361005560478001802689361532075194953041233220179747147018832180823780041678652097551837541135158398459404356093770641851151747114348134381812273685035728727984946847122226641770211799554276015357966437486634808256604717039175307122266700920880897245462917426584361817628297081666884331923761834075169621993776654196837549372818748600090483139094369515577049834080399891427660549032374368477310943584725453562955712194581508839704292949132827880629068238209320072199970021736734027574618694394658515922376576628335278777425523959340940941486471588016336783024847517425604311911159155440481282808523098065810472954358021507115542280931346407785616043172644525674040394454688514175916467416103197608176584692068593226382534269797696465990075525194051430557889298670659306670259911202389976414757385631901031606822963439553067225827916795913345160195774472424630082314180344114552833345841103988119036713960727720779958822797813588058303306650247343133665327628487553317669054258127131410809666900189871979555800024956949531562826720797245838741162842116438533143781997932065039021833350582956503005126065199638585723139591556589263683678826668075167715479574767705195672471566103158565228180074201856725000164376034271935216590638450101763427843336947975912175270848548401764979242960845339607313304175711620077424452923056739345770726800391267697391065787451851482017424538387825099637825986874042503340448792541444333444281366155253658300658974994806369449689388148558426549820147271348081708887376838776894549174383516623991734501106894676389796772509612917994203865750412455704659483225358553663339759351301121852740827097921857156291865754166224514662622350570169335077634964526092051570952788919189935280413906498511975498214399916118834418402740236464288705691942399731123360005521965695076815186079989817325714523338067797830231793760115296753552268021662869173883730076250316917100970864333882280285844974760849914046000205099461963832472531452709713638469300966731687344727591861766377406940561327161887710336262499588100809745329755510295733542583100305830964999768642796301694026448879915695988664768274926214242891601080638599436475991932381482955564392853821347085019356289532145780340125958451713688393237353624335012338044861932269486291426358505720700870539253717839137035598996193715582846086627518174002456624066950780360595932392924643295261505061534399631870523733580190211982204010499621651097263451615790157221180404433374587414621634132652290696850469040311364837619595179550678892448277470187961518997996320608234944895583563796239561255763570306896134811055250725649172300233640807360415444316921052144950550719812743217751117405096209240954970044829077017124161457631008580917580628213868428970833418284349623114527376342474826436805269703917045146702690866849766507393357046843828935629228356255003856556692646653116412967693535907095307049031216690126960704950128137893277214112856828456240694933488377908051955329676882426929099285526074587591723560655826954517869758737200973097300588914708024544056359307383304368465041796518184847239056893621869214522088002371685530951489471854733658111556308729318072833324641195757783618404481732497260739594411627488913306891663751501648975701372112159807070807898440498925986472592995752276318545227898073136568916677176795467309891112846881994562657126565727595183258304112790228642135009713304368479256041638789859583672543694196326089392288162797571129274616721662614429699236151843336671602882944658020923248084185604834926549478266042774841485641652086174902837764525274805563422628153960921274008191780607947551360337657866681788861529912115959246312847969638467755749707748772490677773995456199061462796039104277350500697671656871616058851115485577585810779150626223988659472773634338053164226569598872360744176903958463032925553237568768955139955664353103678274003976835918693190064756691797539808008948566944971960385216091276926967570557969311377276762454298642410040532607462921063410013938771691088836935865137545765057212244560285400203626768009666617719812600584457251200747995463504563219611560839883608538298111271404397610678192446202049933262139525000718466206506157789732198007917324133975641291776443936609253938186219560147379629705093062534803101034834965057166237951319306479218641455988704191324056798372291376744829482990037788273790656972197415901300901387373240298450644498046466405014748327471906005144354694175541078326844791617297659202224622077281577813376978840079858492206144040411893986719873612969165181182969515978324806477775865730686645897601922443353777690697149526438839815397329969393949657088611364622100155512291118051008381479635620885587548793764112513065032879815895376580457858901078171246311511826498051036400209691549303590697399387238127517606091376995466380732944585648082022829869250278287471254996294703190654262243626993533077320905866886321436133800843420077849384112551985595766798300891302745094142651555075879894589990829175131896637034342383931587886918469910945205593116390806150477762662540287152493477474818463556483342205586312183800354991198308028151366451679641465831210359207496749121166910423115323705001569258469928953039275890759288456109989183153690123715085236325070893845832748600884707200104515664553179641092354756505657870914415852513054673587728381151485926760941558335034883182259736780200309438882039692370177544667386659205345708857511252039702121080890357874356694363519011576172488353482930265406649023712415871853286181672350630892421962144752461067301850109535299516765769027860704659735671239304217637916480421959286740473121339015179440421175234084080209720802879005098514272318705666918681761172096162036491511180444099152009036222956601840666027887203759645847649571147803811291102096719672117216812652338542299170238126309890421690840181504139970652135757245225621602998182787439612663981021574571270153456402186473467248898135788764089904644933672968956653266594987276550174123193660855893455891660071021943016773428219001265775061749578400193187796551217942571094712563043296576074384477709655050648001760946992061744063283949640411206628584274747805136431171360275794376386658146574991528010343358432649817963218119493654971821601372488226993869120851888072702531714894768764562892387352415661675969498129349287142936240846844154454764877985257388542225177479767842724754181722267222531060881848959992958280634052889348667663471633860111058150387665512639635282360548677370175184612030058123219714440401567230396420782896602377423655946556210393659340723964471389535103630940976704002350914281596602698566977835656418415156254452243900203258548729935266707560061050856357135082308700346657693234206376102746930827316359473223976585518492648820780380618608793455654571645264250978421645101673303842984259055095034886980344678328042152099129222989278388803946329277974191121330575092575947081337878632568928710337623183959602212979723323250979886997266332811353688428590109691858955147516189036792550059166921872738966188395942503543531572413508831494562392176015154747655935161933196735235072690792626025764052301165225848144400167989343686093311257710456351370194706920433062635023395960651828753428409679420448184663344886755270017579159345850231437853482374955312928098483950324656748644434638618372417497247984839500536513721005491429499061395815641510008812590348560250260957384458732317477540972178884989151333789604971789019765828501868884033398545399289666427994155509259739975891523237191356855071821766646811459551970471230925487547533007901137285394232851635890453944620354164124680733827329817992078988122220511591524980244598621090242304056719822210229064042375750767013762344512130662223579866134599367092647917613038842562582512231677801673354558067451055915805117530723248778504190861013821737852618830450362299267023965116021184971460167733569128672834916978764896630532220076445259514268999699644385170878899006226043483881395266767562771636423844903890361146738553747217266240661443570949908259027950553592544626214723685654850814788538627175346084406301181557831943314850981903103156412297813863294094032643460336139221098826952282105902939070631052947862101759120576329438693061226702763457545676532834751943452866949442062336654899733520194412401456792002104067382713227787947784191578848639716329606005412294644103626910341332416482195881218683903731310784011382663083411403253140143878270382964796726513782825781532177803573108703751470665252400104381861699721356462580617853698309918984248869377442186467716270346860328762878431256068420111777834987321371855816606934647139375124556384250143252577874303887124222531767781677708147261242072410606002329386179620413337022077602866247569538760184386663042642088626807638440239122395380694303121908916562891932660806557060997367934616159695599087868623725281838684390431018532706496219039608302285244639251592051512987239527889857942515502082936196843446126803841139972484633575863267889627857950149072488034705442622327763398490899680037213220369504511906045261362333411761266533417016758023023027213873034353685738041344437992201257211135544449688886442786835154836335449299071432772795479329334883500346915845652429363212762599063214987138085996824432268339056273596939516284584774766467394190177078271387541259901492179373609004762429540711096579000309126743013941474216048934328655636269059922052179906494848161824199110863390033938741666819863121425090522559550573450396647647037274038109763575909644638041741169632462461880407368551550182675372821337844419884013453413320757794113161280857083332121904682530739709384373070012955000520096964898774869746221644073348145931235383509885842794037794524051203128658025893431738838934004321499208545744241759381458807656647955602119914984025093550963332672217355001275012251020398013026330139227482501626678495144029255995454943343555083110619488885498581004132927407282778986629401980919153833253067282991312574541325526372704980003506230333985385489225768769102530585746779123511842407208801267276905889212125501973125635413922870623881465567585753516720232971163007121725570225494367997834097285692074016569168668592728443900107431822180164739379620291086611174470284626201345472370748313377456707617273395010468122602089107119471549522699523586046641627196544051824468832775864443435907819224351558091615315007221306200981670177090990676190698477765633200580557636263478821501595728605208775388461929343709471691259443349327627149263094195121108002638966234469316264794514293415413271363843073288746156434052747366633094760013482682689256212572283593989011524360633812246933344846410394318654142143062592772447791882745654635233336338486894109614051953065383776392094240026099636443168329594639998099397638593283359442392565218814563522785657454768929829626358058509049538086622947534026518973836779498658331863095711350160888460187057583412131822097493990350806674041904429710528329516754469343644382434829129055765734948937315396389525705707761849491687688840746855133076320000022176776049686236872439755679883557647339504560326422599272473784910852709557004096581485217898274148912066038834543514355344353593582482406267857766382979909095464335322445977726829579989072233181380751374379029728273800957796378811344205438562210390465602311532034520572648345802114981171754221546656701522642315489412293710365732768996216452682512332111537653262237805838328103147847027658890492633333168575286650677374968755932902802182964443358555986337931299040027171653934231569462597805196196809944517531402450532430032679408558029691283271156551674648583491462415024852852805116210085741156919864051757608479044834420976870800823496410527760371544625204279450982394594814892860592464040869061279863704869705116402289776067255900729094979156655246472573438604223429955830747493608634177699728848162866027785459048069321321134432787947138547442990740445577218405747839138488193758170416099771013975198260477280946471817571932464169111580355674947198491681948399627305117859340765013903016695277140057069751389670243991058013277044260194677956214471756907457910156586288482356377166981371083489105040193089054341821695875148129266035452163525400157634858294159268090336548284106569678377510115958115299204766927870776891385737757642779346343350758845253886810465531186508244064222093204607427356132453986104470899261126350566235837198693705912624425693381437758511095497876623467575348416230858915597922970810276341175361204887728783440868094711129223198158575293597238651472507670132565449474799807596110857206256777474458810458304749540937547064663260097887177556885104862526278820699374644020190250488512448696806854358160208648092853549629847241151292646518932031887889479053738059336407541504349753301033025782226257062036199912871666673749650140910605284210417162489933521904302003272399989266104092282734331604814129754323975380840773382000438045842586453487806550365537505530412103381369593248996043024657279455081909092784801817047294997526328771838069102710995926096457526524076223923544988063919619997722647794120620372067643523336791753073268846106356834445903983179534313701010976795541842170272758577379068789344422888313238915345193947265042774608313298771892778533356789927581288721320101635470836354935149429579886188680103432149966725943393131114706745779083081208459352781102297974651124647976265526640897373606080447350454471784449566318150160262876168040240008988036739875659281547804630587314281652062516192753219681070056727033396981333020478864033213257578076450336249555446906660119523271657490626262279930482798216792222087045273945963692780926563914966835604495008698781497466745386699152005574438891452991760259435972891273689566448336249419903049652463880984082674389541799140377338883774923853602919889717287881911347888954029652527972568837389499517672190752906478307612889072302947366583811508400121642585990519558720455225378721549892348616285745911725404996450104660389491697828556466496509363515150588315018495532654934365188812068813666761078019157492055578915599405214677315894140041645287534334467426826838795290470364460027651375270428282918637251733530034106316322976700536233665371410455750801666441702342597189873892448698523779905843731099623958853200597295533572865504129457391991218579965284230964668790057386643470686887973277941697314559089140461162263378069139367734681543177888575677766200833682410152258484688793408545644234055286120887517662623686727709024003714566940172615013540584540564169933339290520874182802451090433532159783164627407518307888509749287315242091733675896034099695211966606375072982993102598936556720385004193179526088963335395046885271373681284054225436914522846002961944365557314193954596637959937842497148456841931164751407472486481061586857646030678288837213924103192291083191621101514425692198154460358027826535594542203276119672523358151159182869255346037470183952997819897681291114803266420855799487313683713382669674977232879778555919237056348060084261240820154680291437213242677201175097866191745039227551041441188074720443588431311401335639273196408047815976276187885770368169238868413359412950624267046533041277746697636875417814589550124020141882736213643411389839936861479589329617140806516293445628143414609940047979228853735971840431897422950282839510414036892983538399927355107779906400824674438783140691580486361517834093720854370674200034290273864587069750143033091324327780930890842764822004993976442149203821647319884311993533020144394058219337904053636561334734012226066485147423456392330126262161724243824957462605813719349479404811871649181479567344599396673668121134304061155223323760525300487978008840837074259105838006649979153232546412613505050724293998872157966366605694897280195680055466222083148363284400904717460558914201307148556613195039084334121419906108728039055546562850733694433958071523473643537185412515502883206088315966482882556401244921020403406538180271202553018576434636694902633150622208184305001150125515715302780831495175054485057017242028811754914642135033775324383156268489249792694036982507734970395079678674700833516624794108143108531644242160292196899295317592599975977245481004581832329194417092792802200069505219669082017627525837825207136345778491592423670826750889324072966348081305899562618549006734443821495766521622901498803368959058012268813894004628479280605775235412030976854084419076531095162630186414406224656269301476144930845633382226071294847662158068935427855812737700511327717646759894040017432788221886766861136948794178134280246263527792554053768112804340164212582040605117889392218608004633321815792420882813096792153458751586855770963316492849638630602808046585169474161216096023407162936797518968750908579418399064742554405473867220664896944117523817984502635870335841417928810443210038261200573198318854125790266013606155022828099425749204172010765984259958518189361405641674376417430146278026670517981041476125785189973782788156439740608563688605655152961411124469948701840150088892627732506298601128126281105424452797275054224623573162817065496165555930387530426045944868777496018965944469438524882692051690407396466094769392199066920792393574923781304087133660775560617517961931639554343267938879244216389951557585791728203746631468887029904057187400133284011978922975622305463063156846514487569331455958296790648065497387155205318116288266508591367788942698486415753349991869457539996536604037852095426217624997542386752366070079562404171723330116767100066424436877783102793696724560622736962074315963737820915799654743381300318867109893858757337756899052841614800840797185337803489867060950093923841133875740518415958712516455453080237041668027343759262837870253153927436447657588104308387809268185138342652691955152667117700140310776164651973433904400645590418427933599857423917748799348704534659429782451887941437476262508776291067004453791691392847604231056900920169517781236353287465772014822153784842110851354767430779944367901904901227698307785123013656115625729750610054284284489521794718959281010737008294455099562057419216207073273868493005528551758398612307843374059943471872930961137205307669268538388625314968004787268747501797081681659599194600863874796490540526691054654780937668124791024653715373044938661516669962256898249281296155595109782288221024765434337956054476130321920315720631568026455293209137241655493472312713812012686850669236711496990948784386715529392627906113171854934921554391745769617070019717114684546654544581072614355627326497472612821149317690398600924644490805998048627671081238552723911624438628491983103095513197455586177332547875196714258464461119890363066890900475377215135102369483946986672821631325291296044979997820916635820426642797158179914065039328075141662257472727796161251413205534225881151712788663454674936105476305431201739774675406234776345006207779644771424225424404624886524295624026200897103307429139013284881635422423805022393553582413988120139524345071950161675901253911378315347286855035653596621089550436205437235455999143739536924228254519647385392084854507526842882634434303593415775132518006064247911770180411638097540276430464225988615632165198738842232231609155796801094164336867654568010350588458500281588437974150149934767174201554821491242907817087127936832033153161859158959093005009321736749878677098303029793001138376306272670008875066712385184983465544142248730863916640219455388998240540945102540118332678772683285443375290520781507696939096423318113906695446040607806493225614168397388778077481249207718234665905337318240993368413888475563246398227200032977170085183790057823384825376164059547930149248565483453322642111194254649889512567177798993818715886043598271819987400225791853355584102491766920552980952869188792300508948564149913696899553392962535417815258089219444153190701867128774614232923834941975085098109224076702481472479686749677456955892064501592965023135595518204246726517657993730511425543362010170947602679396583269522518422387308032998811301159596785901029421420837370267157386067511966788079122120825547780010791642538963787744298134447697027185707567898841401092538968309425342328496173075368318595353953741384090839407531137339121588348195644030650836651694071183013145699858714921350757702584395280894219261923214592505822127238229842323159846375736296737954834185030163864265537389857547963519962310737546715106201035176725742422241458096834582153058652348446849170278784963493443596934462144702886302208861095327230714733555564490604129342297265567951758332815913977755616436466945245581804677066001389342892141578917710897900439140467146712007578923732687804081886361369947466854140917385176070704639493727647896739307256954066291918943537503787786284129777829331595720048025111665834966126581788751811607011841321089882596858376953075040268959213976668884886213879685336090503933799148522199453808544176081688503455145629192465872562682023920445074665943259454399939637990078568233807472806612786409607137768184024020249806206239346449356729058416140836362043187247342810444741043715883956585190235483786194130312090095924371465282703132940952036066207234050642907280800594512720690034899822453962789713641788502377544504442528934095035818265514345678646079684287012675726981237102846053356433480263954929806676571364980125240612586053866969948378671457298587610146255679660236543659532154204026904973051762264474570604338770982390498792294395535072059003655933824419690719214992108673756624465528130309511952639167558022990513121095673269768657003611880326739898293649025905250655663173519427192149599899966448255894256048619193608404591221260966900293056209888072468136525447486265308290825165703176423266982925683802387975993461147248275043251066597241308586368528467761215083906138404833062922682128216137090052216827113008005000417603327616590349190668794288869421353231487786183598096869842068504181046242280446385133086700502046981103151876826948287851338002387517348691995622446230081161687254777596202422536659674305589616273404697382012981196220792748665756255910994501375942661206956515394897732283905790686564910722726645939598412240404425827236818359399540418061481290377947206240819895020009623629034885574239158699073378634276475639009133104898699030327326977537544780470871646143158735544603649860815937481750768111059394812469665443714925557001902518714606811756289965518899871497837171469337503083309477979757714260219942027897849030149047564319762641076609037560965991178368936792700033962804104857648108676608872357027805765572497634424236195239088177837898694111600169835479800318682809999768884698243695066553441581514426377723126438142100911472220388575899918506023293812710711779431676474888287476544191912281801525992712644255059798903017445175703984074991929088921470130429291284435596315768030381553408061037192270648941500175046525647228480638576974915516492076053347385133671995272486909148242697213733619130379432006750199603105134204034530031284005541836408653501571927728346931945172065433952440911123836659269478778911500731315348657674856285939327789066289212032893569807704340562648939940051088952184474648151375623298664820853241026118632653242331699733050123983942312600436324109932125969248857203842924207168976938670605095285813935290065431083414079701944569812720819208778682805022595831938385683663178477377276052512782828556561183486371107514470775236908472555900815260190276692334164489974439838501373187762399692277646990368267711027142902688765765143093106203495275689221290940417276522751295138786947801245159420648856745882492984985048955027725058962130388970357225100695633096659483517286582021847605075338564612531679712351947700524405087772321658129559635074189131263939742583602877474706335225477653505175113362287913826492408031491779373091813496584203383029214666623871174469001149998050949020754916077685990737622180850076486889456476924726934843041683953865605661933465827667345381281027627867891434077968380539743318954812671224946718834031187066547919411805149788446558670455529524208796683193577591620414943828551562699142698915110256627567044241381696629386071618354620606440811455889583660516956031732842884529939102634700249416721717270918939452933937499948674436432869856232194735778861789581011388608999612905835263291440644888326350530884597410871481117005329053751674815540189238684690424025681151214934590628811703690737077331934639020473655402859866203552728674557941228899022877098154826768100457550159140401672782544325188253404415093994174750350961198787958113075242893603199538615537290708820765953984839578826198846538377070146495357489374804166979006631150049688747538794518837475670875889741241410082322029164062414405946417186826745245852490263176273442696046277695985727086944260303504586300917625198749948978632903501560156435176120406781073807535503090822025085958941903205746905195952057184501541203772014382272530491507633479248821741283391843617440856299627167726794567904244517254286951362333826113185890258170115364331530530512927281842692582818987764670240377644229646829078326352512278201575614474602439765559225811794595421836296517660095373109221688947066142904765973268888489946665401823311171429058977741586422556347956636307237731373326947543735978616394939525103543504182560812533756992208093502247069923830686153576778294961587618663592352868317547063914726539894858974148528214907601514183644263759321437862028351663113581742097707852291975961699586550251752180707895698956770428955739840691231535876479925199705356076304021059745458963852089399180012664719347606860848738464300853160783282840897043898326987625457175544727701075094767784350468740190074432615898047973344737739810497412062603467415886942835319030025989481621549316697027592433763904382131461172217544350912774227702913376840530557620247117902780554215475049738273663402802592510242988236390283543781348614293880836763355146524495908433413240869868736213189259150771756947712305625748205358071114293673836793252526091548639540497066464344082950414639485675798464334838309513869194787948855932958232779847563537010952184253921549096971565500936259758137088669954853345785419539488403770561355462724529834813053407337365593265390549183411218171791185495355976767222281387860495119683728127264924199112248750782026416885194652676558010706770052830157599827676023135799192733447073904794944518445181784800215941391189000738276421137879130726006679045906666625589746945981518723110241931253335775215714468586545536963998337391895819078366460461997441589209593796554453654896054052167571323008905610584008402308400398030757965901176814797898199507254736440356331655265219312574414809327599480657871443658321275953836553857234537403171298647116608708739059381037050836040102953562767932949321367447864775184497792293472905037138115020794428495914563214969987198758021410123556759085033099677469184955624263012609439188159340897954711016507717905640312933568900671432079246783216406549613852088759096680307049291410796086203563312270076610864431123081694707527804593876458776413344440523624793370385173510308445603026450814062803383182507691885160629560049728772158488377347568698984802738217113695426376248813325846068509999055631426940146241687257159451695985779460934166576066795374280513282879990221427674551544696412115437442868383776162028317525304190315469387729021649930677926581082819714901633799543844333934773979593243683159653017728324041328676951176296007253933235363541896365252384927938130880764972788866864958888523849792607829598994105874392224973023106115094532221347832893947371543383637291919559868778485844866295551524305043480713884476117396466991615793229539907081383178983303261382332395484836296154977637609375312435019813532307371874177454299033414933636105128316652496542720204981484011634440108808265665281078916138568104917225822118851601836437373670632332836481943334044885214170938707652529431339146378594015933228375286363366801530983819244750123323351859206560948548180910237307241934483695431926254084475028354359162238317901061324962512137418942678749084023829462347802185424813656455601070212540553844830453594935050351644949380454390660649584513845955476775408791220292876776178379818006897315001424267898805995187873876093370715234361514891368426960063699760351172300976165915121023425442235022510531951471970087951254276591014325372037160249346008282741180149229062414109195657944743269334109896738061924713342115676627679921405189041446036025625111180752862053969687460544388473659791522984842372984231342557930157257752708813262555309347332298068304060020515134858240239383316917966317054703371864065646734630376310969479280002269584409800334245739180786044031807999546334162285493222145611324763302801632970481852508524044714513205491164141505099278416239812674996944549238772659581727285589487243043291599073659836981021732113422268877989122377911153798237001844768896667791537752624960083026418656138377509492631316715674618387762624677044664268310001898511206660526442055778735240800114177048372346991541252068079374701697424870867805057044974490181998592376394377511240616049930300033839691158146557437021891820155971828292764604773377161236514848019748055913769662779365123885799334588783317400166881544383429860637218305106600407337075973313939811238307236630244059408446649160863897214021813223912981166680707355351308974558003919664313252987057561367587315256862617601165993859143250249839555049325113692462713765635883725052840975665707419717049434534566091041541326437480274464249804763687417390745088020390802832881177421887422207287973278714480972449146843134352435201384926283142499990715188078565918503468685316765364407933359731506465418346202028026121720425123965875200914317965016008517408791197903212825200803371707536227395662936265605470404408388769002733950478878394262922293908950241893781115311367787013209337043505601465225069775936243080196494327490620978551088405606247730682577140694720801244103642194698247159344827646385590902932533576085989975716868837466844038654343867225033321902712927823468769976630445520467701433155781569032783548061061389530903177731552018392998206793467655543377904079225686888847727330360499804776468151509044062842138225813865873203009849921313215554576429027869492471523899442819293186653976576144417620724096694121769394726097939811244994761623315277911798494149805755628226102263697150597237145674633424486118655943180419981698471896153395572252599392549173527537682227262134493510602285294805042470168640898831180829702236178984177172756773171839101159452377784618364128972252136996799466160101049192838515937422311547222616722837183542199035569786688382291191229603876710198878216256320874060041967239701044215698732626018081795763127616221124577248989410112621730450626048286478830695695637329025462948426708379545636122649645117835033195690642491056623947301625308866448147649691454245157138252991659953628468528227706921258710376646918861859688444379743234586141097104315481684788288840965460890374368881809251579960819190151982212402641097657961102905368928217803248388924335192827403058446602979690669214196450561402429890361735280032172124163097421690104527046520270735385701851299972640121127192198424960525795016427776925607212770075816195499668105777546625122750029936728226396767568502805574560648463391911843310642712469513312239824519911679789142019566199470319844100967692236602352671364160624899444325757302159308160272496871754986500473437743626788401428769433906595279623528876808075073014276745843224791164170237928729548739624698402670851132687667013281334570068286756611536311207920380996629173340152216827709101401577356670538895312606795354346833650209788727576562392935034494883521488620057108297009744043705141620807750509702756018582803196470375568512467666507214563424292045914363664131275638342355556593085430082964197594406922175713948526973064026380854563859872802010431815803497039828573062795767658692833818357831852810892351952213316962942311709849003875175975159467989592476861957146518101756436517271351992528460076277668905398110966715075195154410363849197432992487881766899058110946374618717315814430587491391290427389304123029373332380393855232387151729476872233594444578016744202844401808304648430336424544841402195979488234995244755011187840036638871716150027474070359690753853994349773901295611509483442824446796486000045555903592840424758064831948136072697873641402183592764162620402553965941960979544412010317502803750398611493172643237886435364141107918246115069703429272989162664722760483572489056377516819283357902199071671349679809101878849588256148732198339201776406528170292350778943975423081536010870474182942043272682077787661430688124235139076037944762663180992038606241549118645713430914590934686251722681792419721209654676818780212450472929580599161433346135104734973559754685922571292977913965554391490723830176627221223573831727392449094590522822757115972525392650122167436593783547520307145752885672165844719334162013506804494667772726863169212423661493958574067660305867049215964632875370363267886134104464301357365895710939575115005340386915445426549600439402728688504635149095179672370222181840401341607389587570225839377635960995315886195195321459788874306790236480379206632764869891858914280273869410303963266761349316661973006687098212975687909823617408587255839592236271412406296913406554076268161777500346011120239006807008619806350140769050057525769360468671832650241940755139201450257293150945179216329084464289000780960171157530925645362523541161511009414678161867496003122080646970321195715103671750392697432135405243564071799518911217591262675796601060808815797730889543823468990244750491918155207835274716833307238058359848144418254693564503113410300360743151832740270239017411686749002754832163633571958398563423270745451414458331290552535069927870807501973113418342251367586796337563217957432009125361446895212859935218602389421327543716527166949875202253133533970325774140991437035154667850182806868350493020191175748360229898588111813163728373434168853978357051458394618180499605218503974045822256672352702166020683767508817521204849239123556078245790178725415155420369633087121941833727156209922438447671858455714324823010444551539955926953600719781960953300414229236020675868505514377519665485569469333601796492784018143661546949867003116876828880037610018070821335091515122995775319176613632493956589314049167069973902723086025701382269884692040475912168552764579392368692986118191084303474821901454783934943218320835274414048488556007662461501224274856667601732098868922257163041639268402201036416620708605891254102664989655450409532966318817940801800311342603210651109785537984554830969531399381099616478491234074031832196213785681436693578085989661820403818875018148188483857490221780329087673517083151857366224801947888074709565834315101238765771711287629574403304579119931461360632734265844619809850532415606245392177954793737287099441618840556868314589893527690221011956003269060273257481806113191990801978594235263675221412616108019472236706644133152026671360026815729790877944236268905380889660788272675240467674726168473270195882004451605396111413390955097539961251134531244617519197917708041258078865408327490380702040232265194531044491290989239820697831077534986603721175547860323369566235983958319164010063577935181977118797708995135952552591099001654954724732695200807168064723376909045646489156757963367889040207713134355098899456986619411073977834033518001414301131851687878605167351807446398496750349445905737923268160565455340682318206796559733767080220242764981452035326412496325361644412319201097194751137653863449249453656098198745093370601119015100888681303422398051180959747052522984621036255146999278682489074040760115812016392210384263057209777181183823983193530863688433867229283359992805172943039727118395092004781885890648349442056622882916491244261240142417987876603819753797041116433149484951206238218990299503373752502120062784694787367998988584531879663681832382673552020757311380698310001940455127227184609675653321559224222288643909558675369600542736150232567380483331589776311577479643335086499385098205975379311719443362822532155754749374726172764189764887771924990109169576744736563813932331635498940488626373178011639631483235844398929643026777925094007045812115188795147687477956352619675898613559936007729135689384568722690477340248681788165666803217662928429604285682321253562857129020978265922167660361355956575139251256409625438698440737657106045053368912057510680227616418005364318030251983349841537355316124284100971127802633610087916282785322787843129625867497669147850347677394535586032336071336351117024691516048867953490851380669125162930979791038946984780796707727028150119057606725371720987872557082134845851681819794282487031566119136839321990352156517682392915294684563638262578212138978604015791966506207624303961240748853065948371316547776572069150292592467921756550717937838025353513577569575322882064340698558259249392863680466592188726123107630419181443292000910430385358032457686155109739021915014080763647756549930129398075967415316648008620257200058442157254794852495887227879407191867349889876160452379782442153328416601227449246237069312462263026380078923723674100138476244700674383495363701913959252368770246388043928341754033891744705372448984432694716344175263418998980326110812002098692184926698851063180173873490984635692938466988378512414178588833638455091369264123730235477776205516060192058687698201584575294342001527545921279818605198668509512850694197347787969019644813919299911949075082249635211045923171645132047910327356213069553381623821943651308491613315526813272035212783302188581068911540686943872281688615052658196963754215310571778403672245865188419323847628397078764512266216354413455007481235029928792702032086895572525994430624954912500026158470805776897797522488949150640030758156979233131922022189311967295561895637897528500974639179720711874794215491322137077098471210866427274836644952984584744867481023785941734694144428564183770742529619468257534009807111248382661003858199638710777948036685776267919844499362436661296178545557748245224676531728204753333655621785686964663616697767544726072037507448771235386371818997773829714909302901908726260036924420252187984007171842697735948298985017095645257848973367439367545486154289489534798748351424673632944852654666218560519714564194035174339805866593987876883878514915882758665010680409159452231144576651974060933605095264959407366320363112228924755752795018319626676532543371512539411149531944074305790401314920135187391912119949560087879083250237971925484002294881422490822169342800614918164824900295356068076514318260345859057210673520878047643570974312510141391100678163646797025763225199952833449640501613303790111029799734692457150349566747859097007548991377238569942797764516245435355923850329339181028287367885218990637445192795984772271913377251409633967067205400501042126842378421328112918156749518084547964164822110963018017596643570941802954787178376968165751776328962004965501061087458120372628201329240776802891353617409130876440008975465504471538374565818349599200947320159115537582487854439340085532671112281143120627262929774793258809741226281513727537015381108436585399281066437738415276240052556311668436323237410802232260683655456679080116737346323484844801275107071978778259008877879135473540735904453908133534524532520679280947027788145520856402191090322370474855539467892296652165891388157345315177476265155755435586711395595408415969604300865934323872039821028235498998625599605731919583948703840958512989724633622628419081503838376544818010918965988905052545679270711114566241076551294214871482679779781953630644227528342078183896108419883808226686014040510343227589321199532207433003009253365839799814122154623859719051929212599772461591338148815499260105036877689426200014431067789351265412662855169319785389477023645103277079485610628516682633179218746396147851476303267095298623695587040021625659593458491491349486618154773253603496744982690458573496732538680238811974796939214745930504859796484934914506133934583105101718374775969240732786532541431406402633933114737081113684308214050719454783535485701910807088055044723751799178741031982334814325077262419982023133964025774065172935700587018599615448033615796082665717122796008611801053452497435127722639797427119227283220367276768571723765056186000419666399835023964725223596772911481548090633906879987845342201405324691816671882149873011271869265313639580257736399313127651142537441519070586454298847104880057902510313321588491262936147159606852326277456395150521005958781443095588904166666120891175691327203293556768382110362471297132234819759372325885823787062875435974198125238078582890064048888563076718952947799603399890721372498515443030203992586811287514819796892319488371950786040824241634614186722564975721433041224906005507866822014903729367829413931349530334532161140502562272575442883621344827072051562679134157094021110690402320239880726877195058967176103412270606445113339443903177763154158281876090675750989096761518598751184258686976599231852805153967782363640436683689144317835635113513110158519166709436558278035969998161360153459923461670891027136200631271389639422267739426885399225889784102814878126127077043991893406285577004110833896505401053937293666838922109867865987119008512560500946582715398217494018013244479879709733787243617973079365435839536722910375848056431154317526829899356651432846003769989316872127149516078457362801642632257102855873453604386704140067829237638491675656301136800795062137307771006771233900063113132001009584505304271524741874626094369180571076551602825605904250813168379819340006687751859386576982603255432655175977307139389831647098258440682365981400251956056256436669938652222080135768016819847759474656807040940582234762178774980705306489827598558845770566702405433404743767081548332414590421055460295594064686958317464596115881943779502309758930431225453398072799380238658027000541114779063597326534391932553101596937306228527213634463956682844557283512293094968641376636527302412379378867057168164618786027446831685762221067363423354393908308146725942738124251225854619763410667230360115671888823626163292652374555423029425807750475434848044104666080575296267541403437902533012827320272370210311802701118927645087466619190214167312113609067990380092225583832107038212772008768131917803854918676231830442016568438618312681458162817553040346099751792454869488042444131701990515198076781194734367216954886137297196596534115673507112884462204081483229366764902359245630009346963352240826398635636860497776107552091967260007731136263602311096715286491190426463347589769379640083532116122119920928984850263955780099550946391258081303476673356385241080124643085733696863377714113352559151485698579049863883715786127000354878901692844370139247617181800724199584953477841951473400939556062820602929088861621945621503340279990396462956311525567705005356786423308677517768639580701599584625344059684029398143571091110448168297086015074512660107191283972945352271626336110592961779436037838848615729385504664778827916934083980362272524771215539531371714656545077821897403796465949873334860071484011875456137608071405051548760483590410841267397086409002076296568759192227512570633419890939751078936667690039312210112723671746633795589304997965413475209280915766708997184269025559358596286500081455287411561917464389745200449538770221243510934906452244723674417690679925897776428708740197571249437977483902521029096626960402007181046018742911713662834484349565084752948650070626545194639010755137210330790044311868168086054923471315750738272985016118941866167187821483960594740950846970060937698693409294097107672239142000964238538861145957829061180714480484524356622069570038004297932200888648956617943276892529205655014663640385723287137786412841653082604116177614905603038510606212676928283872003612593693999218457754117127574149754668794301803464170581379893861531200853998537250975562179617179934467059078028849574503332945126725615509502756541668941154870097353609270485539860185389143867077911595673471250833649367410155128453040298834130047011914449238313606189121612736387309620117156036500224755474841649767068557465502806888227586211670971225169533006844918381873538178527840899533208339326347960666714073553995540351100364226879691016510752231952963543750203222936191000345896876682301191144333923172129360256419920985720185905959374908298872606247244171737580973649992412408037739904870549048990557100554586772270259215458635605169424881606131746392190212867344163037699630167276139416441783519709562011754560005480805023851917632906802064070179918313687802868723867327438447739266085312435309359332870015943994703706388425401639398925567419254324802848088762406640739368611465597201791932754029685249276182395749941790302154558948593833391570135294553068193844474120355279180303276106357424649347081577952319955039494695097181864773480115681049057937363757877304727175163623650605229747148693754998550986214883771268668727448637531735119612070080304751499805733738444064857010230386728152527775851426593899367932251597498487340017454753945885702299911897072866556260992974462650311187980250755434503873137927775094543929844324767515296970236840766610820457032311169969227099111166684441337240329231655222437120319292351370458402881674222790006727946449679495571601481097180812370468160578674590832453851232447130687085922416165147485240563139471431935552453032198032331987096441095654688220605875530138929378011793659642735604954576345845566251824735381253923935760139587221841200052984462498824424347794704438660184301845235397538620493146162297169635837394981412983125795064697183618395289748750859295021948022171863641051515082377418235442116695576767961461338021634668451103713930390296630505617119062894397270302538779730885705079948642030163757211976627653645589301390169188170766021193651081499964249791902789105198081428774819564188885731502297348920084504462871824429003335719421749112217469539512667940285616839693829009386416581911216616906564453346111948516905531574150214046581407858152871479472036323306738294797414377053417107425097924993013696126431084356601365576446045000437361255998776995512393111677273203461006913053443785223830979497857264939924158510196339973112994584815261366983153801697891052191879523687750974872322452334372869903560708234810020894211829381434488293571870351965030498489894580895659021690784016779401614930100504314938940066922883440136731102331397287912464743197225353246376407900909239396189249736817891728965710457023106031724456356321006732954578290953545186796119743355619947657444854418563185288372580762854707889061721899890884509673322064826997408576863209479610689724918043904447848636922321913229656973343806268612625857936344726482114282023421974938702302728889608111868749018136712882531863934438443352679524466652387225664494042821800105120619198330820563443394266417063305378476120339748988239570921509104814638834980506861895412954891248013622997281471100362538065927902694541413070144976053627733988267883451527851904412140293809563808715554802705037509735876266434945447371348579460335717737867625498607007204067686284776711982765734322476308347636910484583009596617715064784218436883910739328611852624654171206536504509324036103117509756703908729839673070549975769939430605882754503896923337079602512867344413335608216555588620663477438904556413080486496902109153384592078215184503930366403696674604574413390567279620516138095554914704018700708250413454530949935019170138063469370850816028092039439840884356202598847492730759326401852788267731775776716846837365960065407206450186235059610118715708988272597387479059365286898876001336949835160689836913317053765832997532631625720040749752273549110368768453234434780762112344629199541746836460147912218659155570265028185811215075797325126042839215407378820666371731312040304407597199166860999575908644977756248410760198886655892197874058017798204363438831561269817550150537741414364579110313718178997757457109937164113226656519048896231925073223246975914843674510787939205461286135256575916247084382581356249489645156136926246388098314817010597221665951992731173300156705024515702397096452479189963332909122731562386767050880460845103102503801863197331312136653112145525995852427258573926351559666915903029950469416569407071077235547720702546825191053638785484424736008872640917531864250172402489170908436066905183684214970622625580653030728863658240930106677530299986722007135458227301191731181859916681130352225667319542433239383994021889824823040835049566345910513427517191732718306085450360565824115271289363388252432400202378004642903920568295820527165218922293592999434687020723686661957121816734591566467225289053771848933943049506866667669954531020662713235336660150750298072072414701131786134626000658970369009108039279639329451373111403463379890657894974765039682014394623755616184885717338256898843179832716583927433550652825056463758254819190134981554937745369868204087025340655679506907385332330291391065002572756865750877689847930005715577546847476498550833104227070041903413322703198309018772777765547190630605287013183204298342223462974636537215254236057380707777723587941582336900121665536796289028389935007565514211705417391984521421243746487215262541842407168843531814134565031557509674561335972430939410538119289049961392770551310306578689845404220769634894415646403200948816163239873824262129107118380842006223013750251947001647017966864159762558998130790578222002315168555596601551305427946702365747252123924010607282249108654495917167833401147452267272493791763726006177323808826445916365130961553404687932330244697949797970950097223983521692146161529124003044912139216572356876215761953399406309918126785357287432609922861340751453687649424311071330986792571134513957030810649502968499401914156711325617967281894976131956115862942698692818848312553201694153317775977097220090186864353991892947362390387458523839135942425070208284287410765241320471540300553299477947788246416241044851426260042173508197506267249631828644520864501962852221153853856171258837423706906003765646449963799495439196251865486755885357771801934208997486975329795100419481925873427096416887092610223463510277342738979979011205206565951081960899238355019442988161278301859892601701935246851679177552104883828723282604754965867673397309321921198539173207482966468790360567008811766713233911689315579241911943091548070547693454741098331365098704301901342008947335206823650063582527804547203688639308642393616654942430152641433294824758178328263215952412536670188594772246762668713900227582193451783599039129278040302625922561403425719148963911836180063617339819539701006589736256592610216437179666591504719410859860676979064597676290261624941113862191238354629147136996138718581098596253716910919937268288687462015134502377109404726165362049947128078207030460498722579175853311241659830841074114682729041434955980850949494828494618342490959258487392594523840114528476340062366265655818006270636008945127654928371517538735053459460964685218944467086827647150326254688606062180742714317110841090427658786807799568964961104954849536198800964024602480558883475316152600818642257857655910799409896978514135673743333183015665641414634879196128524709899331229532204764597716741708414624506497175157698928454356623866988035757620636288063899439894129044668685695400380123026656984162026716451559222173461755794207113898341243899788635093554766219946626646793240511578525966781485507301558944379026526714961968855307848087611058794833011387938275329361957366439435178545218228627927843861009888087787895738402113590017321730546351123633809090348653826292118349055959838182563945265665774775644462900036999844677947784805753780565011803089675231387344833343045758035569829002122784544426870251000645829447258351481224376861652157412453515606015968140403775089501503881010794584420480407519470286556152376455528383112202553708674750160969329127662796767233872560190651344121862101034552222216661548221173544418516454222032562695968375442351522840101941119663607425124978674129173076031925241815856659288236463873225111253910623676695194102529983335260401335654912010423467147280628480266816192582659123504791481168425769277781741680364386194041297706038134332016977006157516887497637782757047664265671338969477828062330773868486663218516754591487728422342873922929947239582259645048675811718117028579982767154215405536578391292756089383930401732450735903197233589814631995245434968533425422311675123473624541161505811435578260819540165225142399378513710454086339234774177746217568490485184476325499180120966313241684066480931761111858372164967265634175163512687133209362140678298435828365588436601695031923989365724860604484517372155991755255175937569707727200419589194271292144063056165573120078995854486053486255170247097717520552533676006514676372394364139158444291109988344529257381624886476970012044366974698080027619744959779397386706434532411757865071680380642219594167302267986626964973268354029280152979389985204470181036138475694343927923803474596996936503028958740065066302043312879867613156515731108396885407917696848965490168052433104517013134217585455563360030212369273886694603607584552541264249820198363756217517028152213088152636853891831912274360286349553025627975674549475765676153870829878604272433001658403157786222818771313608292085109207416086790076621750326363407257755156776978073628460592997045578254883569187686504533850091574918728807948609961667634902336725540254719982814834680215574029997694925709194426165113701578992600401298605940042781975601645693356874570128102987392814355239302872696229716055769378586269391117174602216287655891278174313376645131096172081491328628908154822058418427362705442327108144334157608013915722928455583577622568046047475352078822985401282341333693982353468197308255472138838401744542239386898139141398104561330439199103405974808545808270937010669424317745037504683066080644176218517623181882508297826093606058687207384156530688064489850414427818929678368622830204423490565734266570252278922776676431705779621739122478145067456165833314024798965449945512414416033759281124318255646599602396675640299513486608349176191873883300461629987095232762788165823117303217063219510031140781531082824115426731075295310485617672769628995489694843772086184391600438790609892489581369322782475339475224359722645239950821670423556547265624886928302168766350232047535747675722181183175100119855330718275958675472946242349024088361996293590627248241362411813642168062295888158087479637175537191162100739050313903374059868626650543342622150548825672252808729362873588756790101297464171173747617321019265468753829416152207498258974581290519853464911201999690716970032426526023668040592858762411837356199190964477265353545197117557585060045161723127093880952256180830855472155777644427019361702679087744714466923791147091456559360007034736021961844146260889727008508147348734807387695916506087215661030931086759077502029866153564517957901387016302705263201586175920716059430680966718672789302551530381917830485425192568921985974191096603280582327520212162923418801626674638017954770716552445796842825521544200899379012141557306309863814099640730535601910417145391355388520379823594492565286862031078205584622177934159889995879712456360762184507665384268499432935557217606994271201856663706097607682062663179140326008354088413307108778665209358383270888271926604891445535438654089354666741546057074703846226948920096436504778162209355940257803943109773847336241809918687796913469251066298656697895143023249602556990628755290183516147879622336046417712822950876951207204443241402448766212954741919254926901380986818331695581710462321134752292217852279972536560101801706279019312299761376293849961920098457742199032617220977236486833769426771098776492570158922002145298070270759042841380092663389225922012942282164069962732642006322581674352921514349165600781692655435045242303101859571779975123778709879118405158282365244770989343971886413063842942656397536772808321867479057069203252852259418853182859359045637513597453796780794607219106399795554518913263833736242217348881257126050384144162057857627228996276861179178131193141604886780149051993475044743368275985642593900277415149235521119236704556494627528687115885772730631309131047014258092711789950637756475871900946804803346293850306267981438284306306802195022905375301266866061523092545535270416451376135383876655802303146626071164483111101281955981319042778318251647205345393843214087073137740739095390312658725417673224998210509792969104316805266781390671555573408275432307884984539130484230817631575150534381973463767654293279093807644470955974462137846939994964743690840957956277293814052769513458677381572529457200479980233061822132755086166381429091212235405282582647221110499855068280368819884370453755126234484920009855145258909741136016342643068128427328953840903106174883161558749399354580613093534376517255941135723270883367180711934056891493468773040416835041066735318141219019423108328295301624936502865050459904120887785166814538287256078303818798516448224035005778272708159064357362860076905612447039538602680620459956888688511181271987564309802060823005007898552343338675504630733053324391800207594973608320442922641139739999352716966625476701970221623652502017325745781374371333710769623357540944196977554936288302124286879324480625784599975808781837089391932325647555334297879224706298732108596773446732001408661203475082707433687500809522875374962088673162528341786218540145044735950257073763917301081690210337804867890521705198517138789672192347192483437869283821552537641762990835658073657992858636798336575055725309752986063337080788468318501101592334950491409190769060088505151744235879802655237015276024750680182919861277706420245618756007486635535513731946738966435073474165382398216426207718570935699733991600851809540886094723432319174844559190409372243538308811110289837878943660829429958336789477583229535448715032682702122970854020704960427249404442482621138752349429708571188056194363678982397407087483955040234289961234955267318621398706236915024980778981308869451865089472176123264452872333595928298809940771401439363952868792362717115623380501331111396607495444713082368245781812967497567578032066253056392882852651499463263865037866730052598221292276388722348735207470183361226752466326500681843228827386652284670007474203316534695566864035950691813883679050597737215299626052948462597288561251142249511754990981275492068938714883803968727951004154794761605314028318661825546706275973371329459515516262594818978293093369387760801291394975322397198076498865343297891800940646097919984763351285030694683359838604659280327607379222446247726279692427549801865504387330139408517847561770005601989817767348719110728292123515286534716753968320732246912353761283426925397524169986564351105244724167836764885916923389973061162100034880906509501853610259723178397917722056475021983532268155350189251064699757202032666210779979129548230492048690093926885979680175990648514683035746997096803086613413951164826851720685061516156802749584734077876026352347711761555754782057003771266241884811582051869843268048229840650336755333525208080532001131790562117800190363433949943923532885822314279921778243873821835471092814907479103578671778938617527712355067390223175645480239380146407160032413084126749454619842144380519702895017645062779441167101610796135624612514900968189123003547924108962160712658061975553123720468922221350311761009798108601978886615617943137487994525497826441269966669852756727891797792885782707876854384069176015368070503584923584371815851772264055961159131848369796509065561592441802642121204547678483870994873168997081787759646567156069120688873060458976689530070562494822117917590058311002500136088401506524846949176443553862198492951831034483456762514244863563079279191739540232136576537360616518714788266672368735406726841566768343742859018257668856876484197856339179267018084378520736841199915289862283659531229385370474511749167983703674609178551451243903898696495260967508321283764651221417872160595082781826603466481106855319238833108985413207414109587719347587871373198788056192515159320718577776334216187690052997380473193735144297596682004172809864582551591002775009817608024963319630055524353244949170739995021859136976469216252925590682597333897597723760408822757581965242622066748015044863961068383931952049439986998418201035575680494523069803170612409114634586373890384217804128100339245744780757923346268487511709074482802999221929988914424019747801559413537746219545208504261746351779920415294701766900290879536539844458765928078415929174701502018278737073621282136751733473008251725874626759829923429358365908840860361099115623536156646271822984444826675608886005975123467728107252369274343813874989851923791155158042216173616334561728247658659154328465206988125359273956204681692379343924126293256429688033218621652930751458197952175132458574621244356833466315783280235649492025461500114584263869049018717938017203310974319286521678242262699545574085357812501978402516889199114318186854394297489906728715365240180173745867714003639407277579025951568591508524513955017149149447814210847134013778376943063069701105223367378842550792143755325518980412905176227121924459913175489078162658988401818724637973848093501146358287820234261756019946949363191089425555257742543934125743237792620025325620182277339437839784444736242804652829866539920097399115145345949960409300370429189159540208837523033915885228399158273513577377230566953528838361529326499138231969028716992460463872338803377582968246391117934794145065393972700836814526146432550923153388772124288666316961255885438343612365154365868789336227907329291260553272723157241824045935124359632931103184003813313119318140713871242761387266179012611063772606782500649774241630970766785032695662541684515583221595714441820272196483672677293723806695681884592259005473691204425590942499491440950019206160818088924068580147334973652216104728673661415895975485868721643189163532612048933954602109161539855945788438122858469399390787381333859445265677751547528523370072419428969139034449577688122040552298145602606465289885426162672537080472871760321165302457090731983862103473682608167943597686858561296614591685875906820973296061335373715601147297102830561290170924652924914462349242973499279284552759201469892525878370278166878500257959041674738536898450701977940091968730690829601393096014044413336741065838632104318366883853124151326214959836466444355603871451116346715765881582363471988718713034430326856772123176305364382545112583545341666554666655318649218455109159121991297817394300750996414686949957707485028659179964919267591266323138477535248321678865436718602005794583409050357335346641141938437037016862741878668713270040616110964327772481591454408184109256187452775591893972869782625921277980932805975712810581034909393796002818870057487806337479073891013521735893311883657984335059556523972579494834146816670168467638706149041469844406192549132539271132545978319954019404285286772046326798553256622443671874838326309346743346083522005865086895179182776849452168613937689924803953433541047131763913517695379170308005624994911387850048472536492675846593604953505018333018972390361298610413659963843702799309442721745142888984656650466839596415021022792651086492934698624632512185391102036960351960858157892292653407742555713255973646211332340149163306246922755900253594799470492851971933290846040458153476424818174575348483463238670770664816534560504030982121486100205280952771407806703121446831764129296200342957386585622721077669715297995532915002555824214338570273697087403451704541791459154220114384244697707813108227466589874488109477698559832753034555526267624590570189015748940333008025178290919245439163377870560167066056057379710409514791563217622064226738878032131700687848587016676146320780886208743055155677165260252285015755498836647699565916336386900103010032593910869036290677886883881289592673150646264738608894170327921263636686675509409990531219610759662974279856918122127537399623417870178897473246785716024201397454849727997841575181010405279525711560009797151417629609170805325335458081973600449865942090460083810715118079602120757630772649563077660022112586258941057503800574744853995209904587100965936222787889270088412220498795983380293126170077462824617366283900869098393574115864624322813570408692675470236231397919376561310947018100820684610500819571463376995265389427358322742602904091666068493923325001278249647113379553280188763521772592509559980994126011948205203492320650291989650963697103500298253657126590160626122840809614375659717198401009983876618197328496636627352672144103419335612522896590157500914715358157971524237543715695767539824421640590081859105260195069441634133353192146855255813050525961203151665877846490563612276190097068203515260757141135161314475785604363456013918295229547554653652719925611923058447861581507529469740990030498495220305879894177716883931262466249872219365328022359306702098326404530869336678577966901172853958616055975009996055586169447743570935413575753404277367259859390547937650427835914589763898188173379161702603899295459737918404381712880932408275552469218581050392349728410895262516586903366892901589910071342099647837768282159291973973541268213766288498199822152513590496341750940224068457799330756463658845477107671052556664155629638422625123815520506446206409258089795823253624494577134333131856605839701517560757138139134356611434939069777616625150930479245971836857617086692748943170219284401299493262702765739526297109823908456053711400308643822280773616383322606788614539079450386478385601017016138531906402640064278123793339937247292609849817663207031021767247572947092508395341181801890615040529370726714121675599353884651741860598086967334019866750732875161450039021731487011222328838696081978826188962609574629262845585423889863288387895268950740713154166356714387916608182516606984023552680497763618316263456137924273487013478854481673671850098876634581034247918244981092392305956055724122415843381087246708467699013161625048421797205091425980668096643343821480691938011406641621046925771218593924472910469083422545893612564839935891867622695562158992800625313098834031018000184475539039221972242317271188228134494674765597603027907768420045781445403205098975058821843960851315925251787281713696148685445556267673854866836137374472988994642726895367971841126719185825084674920123666776504106592360881884193745563874490239821184612971614280105518553935640456605918379699816888564349522366365400296023267915775958572476297770782217588981096555949561255167453715429205510823105695564744791248437867604153568696762936146822374979524905996441408460895049269767070421543013418060561495193498817376650199495465420471525956659579497311858824736007353481063509346702608901590758566464123382816715813127683629248459633387789559411780223671522015400120130976300659649491478021716634976467686511177645772199694467232167676970561013203656167975502026146658217117619735907967140667019115041390680491093411332382109798266825964224641985542086287017145960635653915189162055034589825959478478281431584606596437447840945848012135305088827080148929952129142655596460252078883833093141062743806259322619590945624660693397158544716634848436788897394896752631467832484821193200480680078066042396435923111925433282610721022643590981750957276702957867498538701856492682180055642437760883254313002496375210817696809646714659907611208585694091989880208566210682486863719298675643679159669039246299455631310548069610565372317263118036178067878219975253394056351050003693972714992560502279160648512401925301377551395410255905836596750666480352659257065789208833951630796113550380240939583225313796754426986608081028344445817633588764006758858475357743258439623064478417884050905316291502411710189684309251418634793502883099671268599922043354343463536661249585230023382492747946113579756192634144901477550143630731729516734118817422987655192389552786060641829276993204028117913582703052992194198069764807761921128017659492927022674713855565836401667028091554244332193262313166817720895339271929393124333208771925253866322529882896413682879985739246408104103702599620365869590984493966798947839488435534823881831976482492106400147890464652301207579106801622800743626027366227882438249507309571655009765494577788847479534160324039430286682036141199244157945872061122789571688686503643156962685600661051945398406396775455450187193942169387821066561475332330441472974773914058839256870868672829629101290502663971819322343124937544815151903180809547376704119722396250196762490772615220756939671255301861362559147341902739991235085205055759844360798570088845374802150572415935421161827013361835128415655618177077135205717418086203839596345943481641218550885148515770333377034854165966983856795474844075683019927290933188222871646224939789335709648347146189771406258608592528646556836634384543156568700189495293397382472726589878696647809543254389832127811882798857149580603508488703572773861082448268557754731708343541543893400575174961024770793054506375202017493591505883216593912224607958880758265615264008022319010069746501363502145838746994538537107224311010992423087453997189341994275943072080772862587606028226501651716794063339900423782553604453548438227381622357410625866645581710689182664285569399133606200789514039809717083418612105182981354686420270497549342707486676692560640476019827468652388577067153171857373066609988319800932560607281751538218053024118405780710738504374644897674821031689278798348301751545960322147589401864020942685703793898309821667298651111230960563761270004629239132630330136376128013389354747273154353722826468074010115949210149056887299152139538918239407292024087725864752857561115288232503917250179955993318085493722012322433991954407854477622913704891455404040106529505724644419654826458071197521941411849694850533347746503065164411932629248927026762711238611521552255661936770083871479223082842261089722538134560033549949106210326967924575030111346551395680700209615861412495643810358225297839638055450570992359220388805438722490082116371644989204001643628024871756660111588163083715414657121746213010208420237274693304114188039378103593807779399336024918347763092295838996873171715091119012815330692916903540446336069528365932811848620072008287213237546595464031446848604340195424566021777700696483112283041129868895242079074704858360724406707341930835427510288001899620129217274090538356906621174880218041872896264986459695356607754840930824637550068114053410861720450227824662115910338485241426701638220912192266192008050476603824456023972016557138370152028550911877714159215837394386855259914147186955584684251075074072310669722478629414770135662109593643707860929150384621206966873556555475632024188819045237779306009542052603692094536022304756914213848354208497738120383471718258593999097017776975745961409863280000858709134747720377132004683655174872911792187235191086078132299094202682516248471119291391388169004353503105726835302625251931045257775101906470756942847770164506538807418033780624819300835072475621339479210057000527824382962164335463465097098331696356574867561531086842503246671497072282142345994597042730115417675976350667862919841367468239717555898010468847646590721696327843592895497682512740775688877712106558152018662126135166521075734277516196017554108230746934517565544014296787085508042640343606978213793198896445599337410103220194023693293888579697519641245559842483594211117037065804471970371937840099513261702523556415301159347873614119726777591579133377800975550727946495458321549047709101848819021248840185818792827882080271274475642597921343050089970927058794137448530801961387100132045874493306340151051278928827226155957458782412641623131761936235761255164409642278989182218948830668545557595800068805115512212859261641758630253977573052227742396048824629716128674957710271632762931502582910354446560012557660912566335668677937527869454310278218075364232756298519488482304577047008168812877628608963324727784142712252699670977881866280264847884872840524865633874473977472528874140829277521615607284155335030304844607450945801239351392783040183520324104710084736566065598299419452773566085759687212960842076727164540452500122349370933156633942330913654115659810284428422273040557467111340095770128943336116446826355511029268404387052700288473470763412823549570591308064386692907296827224989706848707900590346381153052452732190525203548233345471490162116033973057500950047305428343697068551893508379559725118449845306464181690987733950703799405427386066571500574882638227559168370721394912609811751108760825264340213876592421867048800109563703128724834538671048678476847184663606300116444304350281280412497307214401632831736674104561387523984997286099992908605303105358708146410429555854442345982904635530456046537419761005192926748410746268784261181410777944691785432017070517946139041989962872381643483144849312327969639164308443124588206840508518279513926044271779645423794142661139898725990344797798122367501200474943388978878655856439206142987130263675344811363936636556282946573923284051474330163629668570184486664559966216363249740603841428442583165359241728605754620351307141579646823149868547260844262316751352993027112025979622545609678477386220793240601068375957827446503322663482583584021597108855174970221808260932668384938649126190754447644076369848861777785424312993256923835554273771371852428906519850283255684658847944663650212430691792701057440907739467022976984381826432541113758789082748837208970226477567263769843320892992456202360406653653353888726219335647669785932364993587334895869164725656233167669949883856247001412902807553161713268519313533659411918695288888625404423115714677863565343229309089663841418296777491474965601383626009451847502714030665720263519023880953251310047099371081487094223013859440075752481311890605401538147530616135944097015205266604755522170411725176683114183060411674823336304751795337764506634782180127245774803473675426803413534073125073686618244241264971660809895904025081527509507971895575954178264690194050204811447632730356391540470351212577790129573127557359963764588121384248570151727920276334368107425581566763177067239148667959887447328805182475198406371183231718448041756530879526319066007594978782935947355569886036778674314561464896168210886155530537695352491947630918807536503733288363927321291713046377337536661868183237208074473499862340139256533741016966626555387005049806256241596823545528481543162967201118315504540486279229085835832300159590649947188667848238200461403508043185955060397262736297069494854909601012455243494611226518876747221323612859646877986201227896556870430795447810057682291735154257452454008117545972759395626319434519723100843235839630043765994832455096508846987507390380855893051258387837696739422955138977345323974825752260744564481381989053986587962571101701740572064995114769229487693254025027547679289092712818973255421278998756123430906184766547954636473299728619132863797617510311021845750818423556161417958663197635949799682872812933023726956800191715239068496151194967669861495584761617102427294406343332256805375528094799822463348460400394059115005890880001622020820987836888600155808849323853847162841899018678714576720742209502266138477928383648406351705559583288057838010490001881297010054225374480087260172515444271612547776856969762435934827459018849651602918600484998059228149971050742717984654583522947723047283439190944769487325764296126242505372802462806477385241843474517001389705742385038847889942062729464864594617171665945570583719851857469344599229224541995013872113896640982577767720175345159636104896083193731654351119006095170736897820182887674829428685783387428331304646835020251484399470009927939187388561658178969954776657195476442978909855933375708212988990090304521253376874430035655959539654801856256485751717364936644911158707808009282399771063680995954242474505400410836878355907227749464724480048116091787327898169822857357084460571610457105769732396726933929414454410558271369472296040066764956087487364308154338153821609412283087819233076436952687968704321032800844967136023188343593262546051821689364378183489008712773755077623606779153698279094362142761683723449254240625120527406466824934350381442094508416538333992680427771198138009617593071302987920875306861511589229250189846867448392974607843508737769873404867464328467534367574536720169143235233162257444692798064709445862867996950664168003351113910977752424035862932058169194784261243353062773000308825065419823244293677879947598793453006468275988982655769851991048816456169011853365458054484914124947779275804511563318148229517434031435153515472778174931504452905426532442522609750273443234858193655304931169096859691513562682936311474665249463163906845432762481250464271766062857159576739220258544759976440965914276134316167828199938236523898064005930719937286817747659983770640705427716353784929740582855253973694878324745903042738120918888086771488069355918053614194573363747896258358632796956314097973158962636994202401837500475000274905389309239962197452039025373541621250627180513198863858717110760930552694518163492173495952099705889429562817120033964354403141599647011188210192181525477758658629407291834267550584314100303904033182419184940134929941201886434177215209845947893445607566735756559015785244193038925515613463232791742435318402253521406613214255820260791685916464532596806568291743650121830170951189894985762089376157482013433678318415272912921724862582323122929868461885944748819876315967051635394529210791813303372039927481786361924899859168936982641146228547368836815395672483824379173635868042662065210479402342933960250904049505503415560747643436833980065961571188890146398383394049527157008483092989887357887374827246947510008462745980320728429438815526758932615240173306012466199885716575691712323133473144562985684714630229201865279335048245471529988562272576406190107473073504559355216126689580988962749898451224033365649279959390757713336387800414477031597431392126591031298836379845634392671547017227084527260604418973472141685596031234162472514794013796712354625552842807272443295340427080241446464721414548723811362666461434070514732829537860977584564541191454350589093289430568168041130529155372555211854432000398173231987897799242537995978798181264206277238485460806376271987385066605561520573012963426751608838030440911450338854480132148777512031490600178235262667555274576498484529879551180392137943598657904911392085718307561424150010960617046262684429175232553461864853302728513600806859436122259971015369372427686820499075158939111718132136877319411497877459486963922517936189555022218188432719394558267958950928408722214912984976999107094281933619042028831920689381992750685247661412059050403930532673672767735973261029526798763242379893669131802503091960989892952839295490461510835553043740453360578865303587371963139245347546084552752847444193884200606198839364649541170571254818669111408773801460494922731942914715370543583786828264485851645816989253554665132736658259186725993148719906450657205604834585471794667626552222265754353119127140530922612375905849076195673776038674561438444951141773328885923269168876982866714211099646442214437648233911714709851154982764424749090922038547239148414333888149856337597098762863945553401961303170794142013180532849167193486974386580323833847981524333656902180742917470856289300862665431432436677537533314839191990313041677876534650430805954635695045504947136089206473055877057992919463260156215730827708434415227199441173166745998417404107739754010113425997736137921974811078246415720927884372719190629956758897810784543870206185723802121173060967889539337341991544922800466852794982528142630076693460574847017097843431377875897583917736048576098941066837662947761377623410799422925391978679400658965409102530728631788819479709500023327649581253183224508959358647242294408707536887674641480068320907154754565094243040259900559575958356423866962256353967740791902407811616632086649369389407266781161622463123763521520782269511691613800328934994811830301617550509600510018262794634869590190051003392335290999677785428959181483969185232262253328919774865678287364574783202141786352925368876699471359804627731801199420489288998540307385062233117337505681459912007618560046886063458087962418962722231652946051359279520462342580912649881900587702385971224855669230958215261697050741375752954650433770531991032092923794722442174183054527961686258032335336269744898317650676172107706760785538707156884425252556984025093197893714373865771649809149371881115725862759552757920599149760387916984056033828950127172751183272126785663994351617176182412076060931323940661010270754746407945878763174747506922688367537725877971046758697085202314215788045981785066793631746981706142160717203572122829683577976707086778097875722839299049721783358478150739746676709521614661223662897681959381846299022907123998402280618325449508606244435478232221608971727329354409491707740401330330849407285627998406568283112750064127173726095840618157935560461939523791181492647282721663996461348727645460600444050817169308877878651096467762427926019265143915510042606470375140056455796890903265046318124786289698421376058824912465059819342970747304062595854258368117520754451518663178976457944123873373194174309032934200501677092418752271830125894281959446069372520004883517272718522494359802117871460506966742256470280237768947256922081810228425283801508354928102368547039085762125584128788632294613483772867150885998591555113261787573303889698401073542000000399947634931893535016056417773701497475398787861832123629515251372327316445661714480698179900666632611428638245382486450964697201591830396905110251685020642845484664034318613695304903059401508402932998490252042297138804007556796540668913807121249148933945422102333991211927868836215406956335598539379754004270136580860658773803760731854764399923412304225490778605133508825394557527798087613032855159569363903997783949369597433929826262698381157508646083930256329237317424786420810828107747210646118483009797346182406934373061572180872768463048347705547788049260320994286395379058778565777230497560477254657310616130599080465611277202915028569514367546297698632025888134635146835108538489959538156264246511211621377870219073689108711986766791545014777768045468658884681869102441819758191027795948558303294778982427674085114976996135853046678377532072309022039506037095428099511123262917776483659329183367153324991302324022969465255006223542031577959720991251429152653132802057785967060191266495514756180427608546466091319297438755835031345404099871709142483878437541275753333308810975597862048378971642439901563698224651093796611354797400214494131491772237341901531127626017371476442598108589886420715514734094710390667863585020473306600719035542881757809709472026293886168706601404157932289602535937153663193549056393556457453247434972310419693137917919152684899273038443470189501785778164294174653706878443532422287068029842740484689264507040417032800146937893597869975539716846409893695659143233156645146250155351193105642771391788970995260858653666095943159133002861505368056895096933553679402888050195792784621837236299518486557066246833004153160854732666348470728349174254120328642980189835051136600713117281601401678654658394304779401983345968089666647938260280091896236314980469708869408807524460190540420330311775785795735491269368917028999907117857070198913845939815341129772393718547579130885662148625917127761865725219645216175950712198701888830805508343112067468374599116296081171055523176560020100936189934992720990856123722859704648926839678462780376040454918526507329555100583040392910572078575101974410436715421190702587503519273852949843226603069253034845310302513951096091772108222509808776346862057724102244407040836811118449949553756422045842862442863773743235035518217074505099693204932420825704672002687912656940833199453279415110097839121432575818392505302899744973609977399182516319479617394404199891529361465943697828935894211653461722349422649960775512174689105124185786700035469070761667145220489770915529176272952087306039341491192367868957022418491567890020399858845665393194978065792542910381230202251814524918270570467462608128619368078603930855494175924893523687905369088472626759316420735695821192886663705360826118587993065242284098468993557066765562359522431065051046604845740619446091942491036739359195924890283252146063118853528864217786337407672641184808657949870417098525100944484468934626919218960210923574322037810242392138263715550879579863008269532145784228944111451317523592117219736258985013466829224398642583678868028068433669883056137403983185372837397315553252649823584458723822725409611451032218226315501400361284049684547596051031556455734085702031767350831055025223105043997762856103343514130730585090493592507697798823489740020196146758945357882751554216696702947454585271645044285908342095355260938187510702726753351836054299162889971884050406633840663870325888615846668603398945547905823804811894701078585747716172183987112301283643164907661609578740857091204698072388030144070664432118687329001406955852110128294179522149037297587929002456285927004192936893422983944944499486187149846037872419780108020534630424234812630242590402347888188354781503686142967103603887736210978266722531619894878595480833671302235911697204473957140909154475360466848681149648379335741490198810953564895340266486066212649249474561741550913179613894147099367055526721001303778549866826844583409460554068437574711184317662445097902989817013776110390857112770965457379378421101156293949429530030930123713989963949173980005037178320011212009744640837307674163633394289364339604220481630509041768229085351369312419310426405969421680385412856007413286134397161426764307924921273795909484131963177021361571384305580283823455924212305115880521980687692706410944104063940540475769293497489504670783699379292951567897311329066693648996332148336097914853850196873092412338755479989039672826248645189659902422785890455040279511594438475512346886689539040748765574342359680503726848776296085105151013729665041906580735387997096118235503984310019534580786482872149559732609248926752658803847297687337273635787287708307988156685170129014368554773379829059410108148930684095224937134969077162747933756316578799851613830796436831082106269309173785635648646252491994406902460582843696956218477546293572305643951659343113283778629005119711220733338689735808134514904521392195740664962792973871351392878599824043789824253370011877453677388521520835008523356900416234263040429193285808858174228943826832905537116101626433721635735938611218737631081514086118861135677134549906839621313550062425510636761144537377727609609026582549867011503355169818116864190277300142872263870446864724208622308658070790129292533252132529385468872359732402034536514110868465002146197178528608882604819031468173538654484807047997649732215096318922943164506291771852942327815867045849562834127228265822341552432544010478919271830534311032847102196943231428169565169338791461625081606969949029410216286990284815907753443588770657898077838870244415076405931582244222461022038476478134764952119720612163345982140665524737980173213167809710356592432063021007495844546574909841048741523352109932435028747636929846303633794617753943330552646857742303420986817291827068792857126637999271829212850892153733884503302791757772539433539251835315825892011921746042951395498901718183447952854089358646549034308525882133060744182731402530822321118215944110639720986857030497943802978267110814909241698529976106537777835828148409505858150420960769871249702353540296893738497321087804496114298323326090193377278546422087903263636905659358865439568230597625758071977956267115181829255306438540494264757936743591692125756839877710605527982979350454001603493496916660698291714889752423769098663118121201822966917635189422078429304069023726553920627600246540146249681900152185892073432199348964799310140557177086921773817720451973374771216045261756895094112926595556093842053232662724359735378599690829431556605078623145428100493582146828252872452046542801527980862595869290088829382400815946291146156689442712119690278479289657493868622408382501264993830268247822830835685335702044354547399369945104422290601061401473158460198948992895202973580983835051751737897603716079306136674548222250316648091358169273821432691944144919480449423696795755017009733973445263287790726120146233948561068960290267454872042689852958749226464448331761739185999765605787347452879246261913077997597952311857723004502117182336867610853813762350028821062542969097061324173439172513011121720740714327770937134404715934502954990530429849306024794718358407018807707102571092349264591309101585620811849384012484464906850896201323370680785768877614273546630414264205809805335805031429563784048037897472024701066085903241359715751867892493182416514582944516591296268598240381249707642014233411877207078695383543418434943950662167765828334972366235501331019436366151997671473583104862922308547521606161205568698330196407447538260882916909639804030350065049899102704832366830660257769598851986692746043509116320724762439774480643911802735070357881352246163407858846254567493828720949790067177716976104980882073340437095936789676982937510392804040593710589682411885215855566280655045137992576242226435268900677140734775470231432008961366703901196706809349441272406957424874806032764492045373143597380823440168360627948156958012881683640454109455156364682454174858642813036466183651871006483294677853381540350287776128931542609687428864202338926366311967872741978468424198189048573579690717325710614546768294388913850791623039821242345501794727753399404995951501555765643565381470081863629237886858004521494599967241095258599697301943030871089786725856471864453839709403721258238990173401841459141247048285384552534399680408890984452501140729519706138187767906414070852219984400697306544608582123697507645823260406371929164445969233048330225382951593126688208914909029121439699684791065856352795100201116110678677592944301927431118305117054980684330284495886107046586167963783942344917642828183145600479966940771303004113326059152148985018425914810748428555049034504831023541124350574722482335391567269311707525792237393158934367748185614249365705309472205516423876976714351576634071211600947921043792659155188208534174682578870805110634237316111395385775484764469264082087822431933983849160662171356044937648176352618320248059207610177232694910991345924743155094946691278786132478604218082306571045379238574369844722553311594314565972511275118358002019426302713183868660049596284464279450244869132698713811027951034697355215050949400662209545003467552826328469511879876121735216392106358432766712281271866915413538864857498470474599383042272038069803396125996462496731907975891699283698258485879660839225733417504823662835796759112368862128520519562904668617765853445468881961372603876178911683390513416315993733069922078747588720701454099772909078546080790573275826873368715284584675673966240643978494762345922783825691307013085594604972552091469965480601468844880605259594009212017432958151731310236508726354742006285498235172115760445187323980054043256902478059773944751605513817089286416453880386520430588707325278554267925529207589385579596427075601899626994982494882367720130425591491861751712249572917130832287449548719296104245712153756452391177473488387806392096398895809833315802430951407687624432758870864838416234040882832774837839641437487329276891032842396007047395108211367550751572070308932340956969620335157052388335691951514731832920149949753406297387468675115185637292062555745961130227683311586128795084074978201363209549678541344520217254343221784753511359999766972483267498474302265607136891984959825436474277944983371329203292077574927250297221493519377233420548071764265457522534447215592832678923948881648383578930761702653400415905769900819208355894202218712751409081463731875675546157048045030088954394379984132553973538975394558623585196899564846232838281494601854482139255076929947306821677345142051623154595940958306053757832617260469993536325783443711522163535766235383197053066214414689656270018568443850814333494403843792288001797456850471469689477739772188997653095601063117094065230418011507846180936157172476371658326100871259864564942052228822976626907163841849857640808829501270924588825901144089688879200753328836285125567486234940906439049718085987560486431476686997741331884829583251433124987377032024097392430450998815262533748958426394918055525312643613389204117261061758639531034689255170515972198380243808663659240216391470633309979942376030199051461182241364585106421180465235361206788519527632293113836595252510338981787838650446449050360462552644242073030476926266404802160205536758730333161674083762786263782091192586639327436355400488261244408969210749762965243371724901702866092982092180169325991062008463917117028885802449362074388030359561005576545953101418884700772125479404168332975421877655199066103243895249848887406704147839727430588268216935767755695893992505722548937417278760212917716308805651477404511379105194840333624771489731140748069214691481977140031599164481688649242388063649757620477920983325747813411616733376695083032470695667383778361093192270433354003213286001956826661486077531183698291182871128899963841855357239286099832547478268538233235357106406718414274418890431176222457644339616312844246631292850862942988542205911000995734093695343205779439424410799048391343527936215409560290023165941330257333947838046945691840874946026886038050881031983756109785177160286726566711617467682978705541939001094720934605117841783869483277578093115438694434572016225333325799175812063282492985466427575590359285105175753536492064363590411967151855580476022730949782336610681968096768824072247405113394768073893874660629470882556892865535406396175887689295502142546756342484567761319355852456970080423881791668182834912932948196938502358416343800101226148378346931289136251648906754510014493905519771667958494420928529058730179347306614429325171279495073222599093897369618101671986622031832418541440426143055630141126988994863131874078065277156539758535063930806575400955040583919079074461362729489539690019773872790201284941962810275624333107490569277582541453365579051916761762214926064802642832036540386410897200924133286590926417645916469491467021806315226759217042077694599152551363727852308589928286309609113336850905678081463786752539901939433951664856272451894176259019679875056799335945196714827892022985033246797891806200655471407249894209735624520448896370839853461834635083445025292021630054761789012138782038619005630543269123965045407705474535496590797535498593742396131155990628617090459701559996599824870793182160189770625048877735577751751049377788895648767205130418156878786753310599936143946317953036676642211561105584976650908799855573615681743934341197371683260836486370109921630721258528153790303790734937400729595887197973474350231245292453883590968317350749571121860633487649957650813737477729034324505813807894690685327216278330478614948650586229605191973488629269357821063146574514958779391730746862949855106231514207124357927905670154935359960344306170382100805996011288773530490492898258066689779469344852967138656042152036950637696060519527560732679406580072508489982018204537889583813065621781030344436869212635441182008831191175202823074318611423806556359897327252073646850058080461000778602546562178027233924750637358940277410363026307550524328145581281457527572606236439108890790963357676900901868812114982599792598014598873459302565049923661674427113827704818876625297289288328921263007430425136898649144542775670761141767078807515123013353749692537280779305714636553480633656489625780683402026521518102915378380790018549828392998905324754658662915455829842258740172360858165670397320975920906778968798754188825263708590719956525207932722663044578607315275112990809535956019656789192375790488189350460911734936531782313489588965646157669334971235614943778636683772094563940859769476310839477189897244270385998021855627684671418578040253607327082761169722610374414278846599396938852681769454385843730715488164300127838874882959615208479151266145108084500894117269363161373593354254126548243128184481045448201143312912069854948492636814326206903480545369249126339459755166341136982041441759933414699166818899726532718243366824840300489934089903742968981370550085130306299999505609647728396317132960779716355403167022409366682933635283446262309141870727153083232072308201091495259876381178516383811366021009488505199164156795998968935774232098467081360692814682189679563838087597827142472470466630759877693614053751624573082106176938971077848831664788993867969715904798149253201205359205540931898350677472685964731989053423463522349632568040970458821762838565637195949247335567514384526566915156515594464112809902068263419144724734368634507824761865068082222282451823212610906378880138352771396731582031087678172353354421645330893965717440107202474714155792453847847701093029173872163783140748135944626544795707150032860577152306159265943230799622338605014303091342523306481061419939010555471850343387119169972355638657299448016128396935453177885098017925822139636630921722964215541325533436977594395804219525090599514208409437080433951208946003785054914116716483429856745943340096060135221294277526621098192500517114444722528055295757153516119373879854509096510483219770486448591489132953789945343570151469933791999531715763482484842928897722975591873153923394639304411701921552972542317008279849497667891381857527897657593634970440624235763235575879337179755844645495230950728222913258898142219566349675208883728454128963064748693998736324057067513320561936495700763008292855909642448090415743649632362821163513190632394750664833359704807695259864389589616414831005512609207378389741682694039458951305193524735804633877607710952460867246409488813233145509424667750549123555493346134657912825304769457712128130312135824252035914904741803841748990663600122714815171437145170716546801441384837362798160808372812425630770464040063539018462150411121326605158024995152578413925718229826622345637255777568364572933717345702600343169070031651115607555956324700076231870041778747046933120702170583851971779150182545892810705445922537628385686802927317478583592296820642167972089244184225405991780525713023725006722658924750114146750304913613811256980706219754244342119912263486738052908956884925293429106704884681457596708327944020590016968770998164611094326783852748141495467559158853960646127909988112856897658708191396230344599671092976200127939206558139870721844464344636400668750213041547996881942311503174659004700857738783432465495300571502412443903522281775535682908146262475908074632697596891862399489152360975995424491283775285066249615800430600066072150490252540090006609406871142452896140381121143735876496228708620763833363700803389853317205678834759323795824490850872567262683977807821870819619452613824311245315149732393449401931452780391735112613177933748382250162565556051973368609701651354291724338877991401472777506894915881153869210323711805206416776777548564854775875378689483380259163864996419325803151751559956209150059931185115179723735936948306229181898734337043680980755113566666562685041542647160612545217525702543568484772257711896015822718536013763816184604178541462883931564483279635493235422513393047274345434520582704542607428637787842410708248604916385220540099398217786586897386692305129870090356838301766075163880128329885400441522843196540742432063186786506434136514806347402121473796499792333297151861688802166271449140109541798731072905386065363660083015664906759271301574097766375287565104475916991589552605519244299246238147841861346325252057856515545495605448645674052556967203489817296622668494520625085433900951642810530964556244628657366171502715788862592823833799469267060279242830467756061215518939826109911291368488059699437361465587084799066272535239773167021245669218896726215764798483598746353905246556971306098625412037725816003143178092742412792545897993839423934209099640184850371740955074751339874382070807727684601182211914979949557596141877328978829841544016427530261048838129420794784344998788226165940383699471849156886921753977148773121146329676142453403791570125790099451925784603314022514016637523008762274394146791842368452687128105791278783664615325199621266444111779270964723370630078420925116347397039595378171834959486333561316713122423939508141503715965206694521711611081286883704444615557981650610422140083899659061995547608977523216028606466525048384228979709001930933140318785238007502186552624244527095017142673464412599237919230423680763069095301277714371885640216045856716182505110159638551821106441065853114689812180921143797012599786494514571474081484468307921483232763154000019082052285047446123379481393668840501231682429381334034927567236094402994062721024546987877574144927091088340322895310150628163842994884639587509281947371881383729708580577201611906741810077748576029135012427900879227405429190845214360707822546610941345931053211532251537915779640349131424892881078190708856687357689777047015047293521006601739576075371291242420471476165773451424481011079022801258487105379436368106722377410538947047166204000951749777319662479913345847313585981866825919929077129203602153745200589879432780168452857424327275029199842080838214339565249977165198285714175109612888442479916886133505005771283050433522697491228088269886639240200683747278009235162921213683405333568039796084431259900242909494531080406486158958506613057354547338334113564963809242087893093695067742957039650964599927220419713386427719843734519079860850020159911601245794594268947760701820644656363347793551084692419041099478929570342280352301891703808481701286070729011063840812225735998346280252692680244550927835577239190455447929320170512803713496816326969274084427114699222221355282600893926657400201070433259641389379575539872436000136182248476324693096891164631332698034287347454615992098368588022089561215611742038877991534875249604964169278691698029774737109029541758502148780996384809517363036872712223361895529269729366022941809209520352987306233059113672864090006270918950792791140732508626315074978302836421837400598254378895063628683923610487369882771153049614658340378916968796110521697137746807354395790966796407749135805951183406104960951943509466283543666915568292722040024077112689612063365257125369762443106225382608413745157711227683656159081036481427394620317454253110784581509410167139977144691978682131853130305443688025732947969177566041226742051370470140645035754953170278817445914962595201371822102876724472148156773502947184524319576694753319738008843703581836791064519385490082002584715961040996286858692910133751327827758918084822872223519817373555771201880055018957889055817216991243621194391735722904786543124557618208161975081547393621346651400032305638939752752302517799197034732624689076799437059507232858051311300522964703538049025846408362425992404534261957470835548599288640685493225736969684392676250756646191289141755121074451830325293141337578658255400476246285397894989071427294278810354234799061223191498056533133802353028512196188179837624882702050891955823188048970237182501869050525629500676316049652697702848322164642855775362291305897844997010772456398741126033875172545945790244711459642103002117059656311741321015986261523854526757734605467077912681937776341053865558570152120176946870765952249175374893293472145856690572430993010752567069371863506284365486583547111269063885721955843115915400984661536797343927180331011215751894502893380267246112774404437984897413780871219879280391263797409876884360222052546568842154116884223977965134637347116675113016830008082484401465044691490038227510870551988044869299045422744012066462373862344929577262362576924260862727974109131041344503686463416011840082598375995495613793165395313658341728913654183747302258978311373155266937483980877796675307339555733237933124542805412228012723992436846145956441766191723230111611780180137544022384689591272354745536665757048023087283967826049832776640643944901420560426081193673752626122980391635277078475810427584536529243901461102360549491501722727313269731228511279446950260432798361017906088208063792434720080567983324361235453508766196863241358168799656750822667151081952305643830533840360296278487260840041618211395177501091125556558652880201769140427118861693765239199491688783247665453799195643121694099235124714131544990472103295054031568508878306167126790102462821916826761761812254705992505297642522471926571837615952418885354197665219334643955120721511820037295705894547537067130081130595419245371226857598124900366431515828691076379234043612043631218226078555051498415004733031943385839297640840317738535191550795593178059110331395568705925812315881172469322233825465998640890352683066069018756519469070111280658154862441927209921882500912990720395252010877183374568835564734832181854537250075755099703070248642760978435082520089554688949608700669634583613561450997589650524351315544187904470653271676088077907817039558113250017244874693652219135563424960653660302410127407260956656340539812995407481932659540387311592458497199275513210184699055535806383035706786227872236987009451443165671025034050571809095580576969267065086848297925029102380601693203225720754338470673154197545329462552650147649704780625361394243094686811610853728052757127035978405293557183858811824674477665914282419863755532957284648719419284029136589774076239691354320318351579956814364198317710704984775654054293710927029502961744757585136364037820504006030413386554305803834691324210750069579003964560789203075208308083298876309792380373986178698357789583967587240263716207995650742291572646032472622787018209477347594762734130249878656000998579091111846309534020532237997400309093294371009794628097719914384226235939283635845741037152276845081055795651977924877682502650223434040462405460186270952193369234750847438862805761592578783823305185131486388784036210854634565918653025715077500663824811615487172653681600740666141640050392018158133453631435631358064097148346299456398507870339546907128497211091043023042149197766999291907599282233440308410797581091340182700943330789737163576239337066738906925545024296076194130226512569992003576434273222710448984022283012133141044822747859627032332839286275858783815234472369946019511918545111409438761679464346446227699464885116480537273593393082764051302013412343663814961427824818128618922182689543874856420409299022554554757937298442919003485133938467894893093214542520217774479218599520641638329990694994742317626138680832119061056054722205704079728472743235028762607802610648405629673745910676779517636910781336121378586119886958121027326664123506277160515128154938854587855091753512240017367643242203443609693987697460411894572703017842245493129450498932065347211657245726070840153082368116362696435574649357506036337170758263405942914568597678029955467634333986297471886512979275371703255671125704915376519865713401499153820959548071043344892950454632058189135318436812219302308297200065148162370566572245370990087523184097249251997375008043750332887252988375127301932953052606518033071172785765805135014160358318662251058435894818753951527807082065719668750373489873517370482306063246038295655998611541795464764215496028114010056546628035264789873491953784845465986251487735843037843490155185405424990781818886024428316702543618121026596407929940133267701241661099115712587610632481356680849698092100698806348046567108372126407430627539687408208236109628253349254654217904290423891947237307620186811842740629287856927929031646878657123346596541441764430068103967278053868128054557730211929582631455914289201192854869566186275376587830366602000675817927944268485540844251275576040808085056609140956442078050529377624861125724176129294943944562720124435174767241024875630198319744464769506690832796056982737820090734821870939206640628700588585995829712195824060911917436356884684175893088847644160285560190781826570723564995577491256424433527688511626521921844899555015792910784843464465739550397999680312041899641499846752082312878994717336310563002323445457910598409352694778338099305545499911053075055286527351725525699201582489332219997266924307236452111576951279497794291603526867477847726089932151049444832260489502482213349553873637149477169262240909681851091554636559583806454822720292113510991362254867035703921026390630601352328010186664860876851530355120010591880827648918020044060064067414631952722332948076207613231977982554641076533835021523361589359979215147409674902606736047485973262215565308473235500828166628478939655539684883241384273391935069943462047623207992571927707422444847309826098369702924023020277135581347496856422661835844521828528003116077067794426683635646952773283493079234688299875693056736183020561684944596230122647411832650062420101717820843477962118558872851837369408070391856605176187457676548697930224747349574954259920494336875516834006861490114122552519058225492397586824231924870257090028093894771301905839442886063403509947886631757370486723347253548027723664790439914757601592991547205989334120788738697581782857808260296513300586933533168333059351308531840323674496928718528819351043053450501218864497440728084246066446320514726297481238132064505674663348154707046793024125982661257210717356705329027914569237227588123435220964901561878065824904959928013940854255250061396449690905716236356801212401615991206769945584293288814530816201936078601301372770725652787936554001572577268551483033287908150395226021099137793478038675604895573613797767655419850058841650139701915287543025570562458944016485467991693287783887409370728285161676647624367781134310545848629141167103395042893013733205857923391057836823786372490755389111246464229565458841006239369872008519264835761067689812302093753060070377306581484220379645852899551303309822711756878159194897848437581948529075667256552421538477137780431562578351728622019781459371066913425128821542614823922571658779131575706185614074164469619429656002576360003657172980304645047005462521188373133345143827601024348821791897153341750213175736501155224234854918644370291016771960940712828754993572669087378441270047636429912331204680064951864250927868845580668539884117153956410201774038295628559887416812575149120596419263714828225670982098260279108474796920670674673403665747648094625365783527976100765121176487824451336432073041010802661003381905889002223399288805876883814529626897689233325628158541108840857598960957956017555580425948085282410137290639114284879096292510125970271690155223243289471334646539142675000451663337613810904089384639788024757215117634115020725577809728121277724340962892428990795958795925438480409660202513246235706365380584571694335323480041453633155135361575887745029405270905561557842424344638610133852954269619382032721814996460336829888512671939079733884493603927508036938604650021879301599174020580626954107267486483784595591591280482686282282078105097732986835460949681989384545681494291653740799817175222031282100260517941241508634952232255843778461860632473795679249727893103775460780127880414088734868789827046868865854576705060901034501381182369043319516950871806537814751353434701975304982230241410015939554377694324208575337000182123569701141610971450163928312661598505744637523525556564197672157247266566515671568437999536441644507543954468325428048090344057367338611064395087988077204742229024042448867106809918849035781676770259762761771100034745636952030041444203727641585027882491499613462213314489807095591724238192449324545102253273834721739308247700817425903572044133076893664628078907193649231728955419520833039290948100941878285438486470594866977785388493627960806381351150221603028889969993923645632510586411066765750678279079480718057226402217755630031139404346489084871709152232209246857267225712522176811496768758766493952807357449560852984952445160134521404861468508358966514387761498866672535644095237302645170438402051700441970594184621774865857086335027133744258133637835245686016543909175749147078859069289815026637135204748154937057042785092344822961730693250027324403462640780308268674149082036481585936383920146546358583985154073154265020004916427645243790123737321623420120949174122692441884378388867972378785050302050215867177469013756068336717280630543377561740128828344817229281213887394490786045531170098192001138968083000357828087485152048291709541604850937330831562065339975937962637005119174307109389319344061554766366625064723404443376618060305594941281683619517603910736674004935794838718585300954842996187211802591787068919015595894442288631588952198014223088072682606928024806475436367209099282971555741005025360670180917261739932908430738924863753982642811526520662916111816313350676260604278728860883336884847335148205245882348720987974782983052702335584654700781280509403098443001136763161594481501169951337459913827945612200967658565026290367846595800732233130298516944928947174850081309674505629037597124438220841682687442065778830615432320218618002024625386719386167314311796368532051825503728296648994530136357456001186110481560390405589028892056005212527746465068251080280617964117620070284793407247828879472559570736150934825043233754005740027737243819672556994882576667899148667784363258935294672817901535635534527443590338023580395732025045839713591595677872717352121333818002856393640912304934114690944231468279798872611199347502722267333950407197678661982837587512734021504861252560512388856766981681977056622877719571826481587373804284337502305874900449863153746323737393827658240139293686522547281521746323616070945450431217592240131288787605722889807226973668033211012004760998887005703722928686323826815814911603891018224208430948855079296288992780149226851609467491572357747931563600386439468212531919698436812222482708090530896951052071887935602052954066627813687927676510898019216663866702008746420984226947901012754276519254283519271062285702170607260809539103754569137258926460795366265331450215349465892180855002524474026949512278166311253919451197372549463062609891800392113699584378654807119934188277392987205481738635379294191282527305580964580922422038571291698972866587069464983894400141638499822856489859152630866063785950047865524283984930014010034654320534876362091996669369414105078568082716429373316554422092851448870731873459252955013907062716732669697394220068043654895098911590229241500235018473225874411089411368801189412995189444085003042853456397915006082740624223552345264551018556812452743565403574502888897962210143106009967258952234080637395733202992538129500627241023467161240334850615573605376818738663505315040987263603587491814905770211795976729091082198628680540406651606289402407978893675892416531114981868302301998414119407920932989172620394662954540579051084703308779841343942934331749911355773147587454814147550215382652204764473368058901669302917868973754067062804276873668300989828994876969457342478746000379546960382558252705238187687325482689152054600390829467751139559934349086331860810333505180291593095954163708221236248915495855322130888126548930509099178863410084869486475212614178402089782624970210409578680627660680471507163080396579805288608540802120185205184813562025226708328213931827867567305170944801309636236054364111048050522315249357338486793264353673035007168406831031190883125340047853247045130452250572001882344896134903936409536403044578295335169547677660954565364340194787771384560759878005482679456461609469932574306133527525386132537496617290437696811555037663690396287443534057438186889076890811343453153933379531635276912542694447896231777660878005427250974370427870387364079353246254951710541452800261142798486084576080641414961123049235785753916178102684012408015550519164896606186327404932805765548777887154130106487193954445412864492747133677299427328696573519404183853501136490924698711504166698694167418824494813405512301636680530319126465931236209668133530027081302561054313102296500603963811266014312184239359078398484865833139159887584234196627948376795371868153276479410246834904227662793460715098167783232250998632576471222435059220599113281562378417083787898694802190517069294566690541194728487527951963664650853516214248556566486685721695114432155622506500514397186801000254563430100795064348957277248533476867401926784964408599935628664281400161902056450818753936265561344374174250853446814898288919916079842067967857704484153831239226186835975244756686798427683910618356715587721203808788760184448267730714104422991221117410255883512734875081053265677492569732766966367914922654254692249403874942519382730149797945373155392569249509215081869058731381287119318323692534560982997168343712852382306705238102877925172158215673900416028560709413876282661124855692166500982764235704350113575708097101642185389661861071641725805478884334203736300111063134073670694788932043513263355650613838255816910082884564516859103097482418375342319032501530486197608473091888023722143419994670731412626201305278724644565638901876859870932825109519593652414756768359777645789305419454541799855413088849251320979452416766311343221934325040508817222226459427307701752550499986247369026681535676421747813912608977253695829389813636560171414532984958771200597512567017542728611449409215278993308942430358430786573997093953862172051197749960397898874198599679487866399031099736338341185909400590260257259296153731217502691572277860251515073628074353529855021655786829163107373488326409845207807863678734191030691163405755663851285319641174934211177100169689495325930852874040770195050173519913408169023810966445320908510287925143136268525403090631441342351845396374726398863129619097835589941559558604982438243812297608400878939157215115558334963654136244713945011907653991013716321017439176541484531055700912379571681031959998892493844522192708720548884262363599971368892431304618580249273244772273879405767448218723793848791328127750527704107063934566976662436277345763746299746193060630050796819238362704765489003130407340671725309662811618321507800201825413251603694576591984287010047872416891580635729006336150354833532701073936734448381483267920713404414820477297186774454676242052817949133382430726169421878826191600009927693921567650694183760506325326500914293363703773240048731925211847681895029036030987148585219795702812436719583031880709827717450962300413593234136347868338315517465899739191423809389949237795902723896721723773968065393258226313198769899122767982785844759543195595175665796252953276979713094934255265379771303555922741217160606368675315157188149928735463308822292079729624187012687463405859018883045006201615314695623680195797983755130226189862673438706578069839455192120578652853580875639113098744069626651187097542165005411525155797714143430553097989821556969842963863690341629024042404631953728202649140157394743796134466360695605654327002202625046703921575100278369154278753080390820015845302762464313519824473428873048566418910109545243142101545870622146415718032252649340999186518511218625502454565037448443687486557548575891691766886979498863101212762553512336232024121406158322189815639468183288161965349370486811203675267704486284366589465983508802587626788587833053554777040811366532800844193524534123852876193570681778005709566915737607025272123246417409132121284700245129875438976302745444100602913275632927920523820157791689971872176117570243746264280287526130261668249930596859482976076692368859824885490932556573190255885739512134693470785288213358071505073951504664944076190616965627160692978999502958822763484948451537685234515643681968314781125321622825588553375360036044959586624595531493017870635704620672068727911694318333084727495805438609605069903212125265826705561541576619111607357930500439672771514886563284771412680907202004189250047051863238490036977807798402009188602781741370978938965363605798650950252015244448532968580063233093064036369695194739954970386590320268504797366536857288195673866000309646588257072471087518859377300242561553686721320660155913130745405408607177404781870997742362531853360515322778089171397605665292623339799564905149973300077912823495368905359538176681156148619063324584366530725052529384792069334405187209491468114003998505423994367769382169964944767689748497496229974227670303727855240223998322861696534560185308072483127614030573644234932656561733761135670873770239672462987704108243536897296506243809516611794755519974689784944268159903607353334518864218511851413561434954351540805626693606532528577190675206619611834946370918239036457403141141287135890083533871439248036222988138949383354289312990959392397147637434089049433119721997292818075227386945541100033558425646264336360558327626913208423980925373522732857071327029286034853442395937319466526219306944021747137763275234650059449401144245787508905597290736136937526745516740500975547516171567889303297767019226310652503354785131815645169087195402195097553081304692734603358064549039261733163758536004737294569704377141951707668801930858904855642882487466317361605266268847374371296176890181470937875645166089850470995447581487267118580570941402132487235787733264997324989094169522931783135628695778884698210778037082478849804644655682836727103334491712898800226843543755861323284853387085264761426146752143408291797478045177426102878998930100773042064371804915560781125796405198011693359352342928480374704829487870655038711172700672997173921105622163891147184652565777878718815445673612220452541056195904001247738640419768968250603743755877964213229812915268381613032519639619811781869761220547164486682499646513037837702074940967590103917935990658402273603196704491567623356619083382883034603976581599379071684514253418403704680231207743807549673161867158741301787520441516991577543824198710543418216479045289945838466177941561885258242812171297940151460404962001670855151480909515994079280162066048341336454179874405427071898591489318593466248320338098241911552366350989860180753822807094999662157594104845737081152012919762590348390560249464776120529094823092841560811319370011921562187260442884811632725058308463114448377396441046396054064718171821900627582756719261134313730982786307294214877066104103014527686868319589409486489870543773471812400796662417753948055865109072169622182480109951424004532035557258871318904143016075700391238142801431777220958852027481490540571892603896862090634677290364691789164345706285852873158022171635702064194027641533189301424791998739555777676073084438045185161249680936391810550877543279028384854563740818184809850133680106418825136926056159435631761588427586526764130678239468297655638191437968591463818400229328756530670947870961210898703000908334975905915031460672329445261722538416225390013920536416861070676159429397476609249859289691087513658448979215150134835809112837771397709134420490393003952299582003876496708834817728597417634277854209621681061905253589092261528466926830300820657005339330228781821588030223405495908476080185577709282722982300168309251802267072688113370130345571498180655670977534217525594531937870013509599563370144320124581299258250216980682323976666154810529731317807217399531255999723255742452983507836445107250096529774768852958663315457644629485297554319986572295119369050331708154953357533250331676026964379928909744859684948415699986388609144585483461453701057472785851308068225058851024942771033923345465904837589591600580239429532452790577878477173531301992650585708268215953907405179030490961157442481693016943202991284543442267726241406916458187860259782674658623756474907108078077770444384421705046686593592284376985515780875615865122839923766602555079395155418197214964452584991802455793363062595912890733450029570529306196618155414167456871026865491061167241283747467045807750035299149709873980661480767307140357706919741156924889101700300842840017408715670976826214236093545494951280630114979773771886137309803878180513600885442213742799987730939703651119068517721518334697486239985829421838586824418212432335926875516473464734571440985714315170369925094898453685599969459795883282886690727825054212866771989730639815705030646321530699598403975470793616590999320590972724667605157346852496268915606280403081350997682541021089603185129132413182072349609028750765455244825928466933501637285656377853343647992809363745477723940112342317053381102577947890517199786822206440471059640629237641330800304672584658067201203824239901354130046982441723211271188363182165368494309862366294049390581783076061867977720892968425547721089989414041571463903832081340168917133178542376140781119562882687165655787644111042285633023386475918423832071554889700841321124509992412099049253262291829491706246515242534368274836023044108340992673177630154446278169766011728519985547294670806452391309601437142879072484477274182515834875384489454476816998069554786074434276515813455604760869384370123686115272598499119395917050020550743366724334485715072958049890345314417973440873067931198591438672755205656906993284192262679676664201055172595196199548715123958683087838886644228250772707281864460704485635136687048622406293811556680026917720037178939466568982951920933212551992591263554110070978445116511863164821681014902009777094431214516819062158847683145520779559881473585944981899420511462116303201159386752001798369910694758726536081207554571515256811730668655299490061992195143906535379268564648317025166931161330672407571867716597214347650698264379478326384108149285984933105402449210180734587307454023954149327746603753438280396088604591719422902770401944644363697774041097027467095963746808615256444164508997432116480366652438405679159497938304420936583348411409849603242990431981448472550099935524612951505913113356883510436304794377555960269798658273881065049932648433679128415050501677658930070419785538221425195826267934839254056991108513696059500857755102540975118633129439681792120659143121084472282074505255772320743556342881568371263191949771360576599381997656990627407505966069893185441145441139354493526432030682080408985520394920951444779497349681338846455199088323750859341919322551456178068396203021919149996132591128269729175941575425795399553360922728952881971299939892766007631532974897143650971803352734831601839877554579302354495988621323325975465251971750648476859332786531526848120495124839029540723813132809681612956139084600563044088778565487247628959856418412735668880878236128109367062932413067283013219439294711328028706337159311451927438775726338164899516337300754882858636057219446135066130193409911736224299417952672690678869989127893058585068482730732584574214099675379437006105765501420134596087434079570293349995599514931780613142330318827441903065183169536450905752961549018745093999632884018679770813922691960036615637227971097666031590388924163984250524648561055948701764873235192404008975577916517422938489426230245694398012623889986431343969466847563707275675459009350981422522699101713840627845066526768251383627621126875675041650771015253049239536258055277173495019885010572212969570300902329221688467625192889932055714096918735843837284229546893498246408679656798011524380350986118959116622809870213050627842496353881178349372717823482904042289945385953280075276788064018808947189051584921276222542941645364796433932471689599681300767095323251640358652546106033953645047669212608891949511435861899037028579579548654332649939509602343931077727749012107865968099168588402274084633899731189033188158022317820260143424442458197079079943780776511705641114560210479019576240401278256707862153126886868799621264718998892410712917176122869078929218359416709185834101053094155943547658342660377519713932796645871379646430833097950052249517567785548908466649733618746601613437498597276478039598959466536801926213255723192154071650930722699104938484060936430418921487688083716013511697087436745885746108646304529272630342548831471284974961362247685674438743605453602231434379436420597724567912041700395961977177172594211288122209475068846283563470854618497728459067445858188807191037458994109803442535051118683609555919737009690458770332608846914507020192452969706249102216871757217964768294424909712116947934490243158387465632630337789856689468136152716736618987699265427152143807264884764428725225135284000952790691014499755087004893226089360882514187962475130997483172939965758115667361859885905819498181837860718954896219238079499373793452517029185485322536556555870155927099988779535092197874995048242835949435364755592536399271573698941109432023369598894680600870302227199807583829814063962488369949214514270432262758517942518628381251472850724727384926918472034415535846074979503314521349548031429192948848851346150651375437367748617083440055228918624311522666342891219234268577741454164362535615214602101032049871418187909959693028752859262412542809654523557081512706915433601133348317938795094242436631855070409538920071364939312810643513180820412572066993713411893616667485242661647982449829313908840042661945102254257402337214845034570246055192176535144054788364370125212599186224153216549968648423962039921735523135804127611637870129323544928171396486586211209334621288645101770847491208042138501581253407975853975407718910675230413556323994498146604252932262486945145841986840193877652443770926513974900267813462685084336792918494260101845007864247555901539927519501462224966840077819625567787824913092683052099290212685123225405379313236928601669898664522902801887041696975703310863706878782506238523830495199197818893082629419879287900814726801579332593031331495240176245181858518781922661941905121243175808394202899280799617739666785714496942902006444200031678136239275702031047992958971467606829030383055306182656208370938233749603245076419019352496584475480652866936543459488873903308845794906289243510330194718187264656190608107515495682014338008453956108291261041218881879432054785068343733666418690941002887226103745071991566468046969024099601851318339254442319001347221415639121390215946186206172994968018969772635062468792231697349082816477616139250165445801485242900784610821310212909357085598061452176412571351887088209361537136951809241846547670352440702659997755248999303269927758984685811185211377872699361903619255570862478004226035813935769886381542739050272119524853973099231071724287328748334832777664623320100818580047685167262608954135353992753001790121286836930064979862038474307647264740030763189776918330471824910675402339988193079118283051163797498850496037000310055768494607675701630788249107050126400600122507673195624110182389995569866979453387410044835569205558815069272863583572808565406178692036256704398215875627161594744047787679312118131008576498611680780573638910188830440422744059377696604114631972400435828900923701917467474435883160370849411052539337308402719541624458323117137975125611152558773857250069692565509223518605054640715590799857046120460299688042488772330851278574924843979635133590629599904449295254256484942101178758615314372402210746921652833034236644641172159094589918510358211300307780108588139312243491232110029823073855292024311645534101300855827618364995032814578175733897320438163205336781378792272827358670113630800865332851061539527558460725318457887775356160683862810289479874965166820280619408374112393250974955447391161280451903609603967799623399806271989770699009433207160853525706248369007672329829203164957115636282200950009688848275603164076112429247233731924509701965492220603218214898905236754990131279220971558841781211510787395695906985343102545346521201186920822065132557268685089313061146381003803038758290051548982885255325584384587554687783598023154608680097031674275045877890613612686330777602620015143958950597339483870692624622706789324423113544286745624046005396564691839599315062254119550457004134332495708180421463719378740094246025152647893413168462893950461967949100787775276381462403484807495555167995211392348420984912849103431496486218709278843498064550075803043662277918734454210321228369862516662065829187658908603175116355882852255786012895954084952361659670327592183575129373082430955213285343530265881999036888554222202111683019703323413717959376300771374198256017848062486284923517416012792208681511106355070113573680022978801435054194015058303430333998017251689614836511106387436213610477145388480310570901127237079045589479047959185660677381979482214554743784794694236295744835092217718559759605977362007171183482419919629575309849813121346511301517814943004197903827923216823125863420916045260030519419476216890644326244378412582785409825517126926825901903170191505652593055844955349662078442804519845504935438281327864294682779825668204268586615781329272501530990981035367700163771482014155841943684915558469126714123390233024111999314424749908023276508168598940621038607453819063854630898911354365901603037603191061235166996647694082363239943814025268175309827733102942953705389134091330117282537209727129382933292416826843523845774283125165670686187690556705067978916363762527648859225067906464330428702798320515161217270811648054176795794502650044816707015546677421607873785248343258542871033436451014765633628759218910303590016540682120317897651164385727940165282069155322749093631242686312187637775808013021891603357492583163315241535828019548173898569708507521826264162786497630332468214889649814605351314495980993370334555509741182662928176763267212925372236342440276011975299846571462146013503892196380705919800203989590926893944398253984228242402784541802727435949457795858496501990118813121819815415184120724802182373033845843167771777963541788802455375726441433267909136155811211709003939462217874952431443982266812459625003575991768505917844098778445043738616240311347748230682588136176500622485788039650568987632349872979529595197774795727101105522600487411814410185260193587874601152572052830726573624568366094338275434856468280822245467676586714371304558887247170504331708704681290451443166509261324062402713094021266450489616779332882698717235793812334294044109190459227478455455049483341354784528956598058222372687125166726537491263717209841585755947852341682838333348292579960494147628783653490465753181247932631663005601813250525562041605126285378699268533749808383771824466912681252612425109474748594438984696917836352779759637482341887707049555181469100039796337927357849807877068936985860970804619035852595768478882088438134676767090842427883013968886713434862173660692684868731690126657129296668876616484368055136604782067344498052005334957595474621324292872081472925833345759831285765408333548473228225246565689846863119262042835911619139253134082371299886132914691080504829994758624331577836776711004618750602090663213779163289990663161250125094617813414714888053747976725634382126160543019279155769134393940219732612783895400793306473515837393343679040422961461888580566763412693538120017449368503668889943713080883414877565317801455645652246062831635476806833233133221567576825120863887536248674901569136288239337241160174192242309324624091000203834097732058890625326675785063464165740144112542034251444744323819925500691424834191348070399340432654844392038599683437286437214568680519983130818793650636132973317376267419032637441050921441325156602232276551272011568107208249809621690556530746116884645525225290604246120828925022029427835729516242978718320324873312994624763395847078893994867592592783059047835133301139341594957337778475822505996836365827610929321282666599041364597037223368008718883560544612985818520992716174125981864067605254305927950324002191823069346083453791448888952768060188004778771608308416979179434973422279543806004316198087785883120117500181193469269451684991977609990072425289993465522245631868769777707791981234379099130862319013271220016453202069133597374052425508397230045984981440967083716366840133870263053766196849424523376462933573759434797322567058267451938805435069548057710163720769244272485737830188168767553050588100591437399970408256107535208613447456677605199850227769720962730302166389421915042539778728422108121543526543772386472133230584407483681464894928242647144270191728654063978217956897740260856181157569537922883814170135676091625136980423487248319080630107877695097896905819105515816996706793847241134001006643518918395113753729799853048917467108302905364097893278081766113185264287394916906169223160829005320054539377760034601923061287661940366896925249083752048647410900571226404897145960300859127585597069873037351494596597700111890722344805547812648179632688628349600163035215729420083965918906390922204682974769698093825146016896010492182051655128246938199505081686072503889005648330596579755821732385186235703253807023012033451987829379049203995861493575977508874669823273633052894266042756337383466780681189280903619213740317934776242886086805310686066801718686616393536198274767539043333390571548207835249119743813711117990651127264196669764583524553529789753917808673696881357370386517915055393862189302247613679201756574524801183507599554538262013469463346090760251025936685692603654045643863837146055743931909392514999762689291745823512161366344326458427720305139518271416315974737133678738760812868780049286597874240434728710805676615618456698450067500833805791861364693236883251582922499763401863657368506362877908899523669719369678389855590872550903008386354024248564673382133183157979764122168662922745837217714350527436401981426360089751310240731438975042361775716848502081981613046563848794053957690242023226514018800512168767213176684370656543030346483002942999542779042419652569121679870345250299980699259711212645376583251576813223775515881741363055400224373243069476413694998317997474813296263589144905029914715684094307429941514174316459956454696316988581804319524826538204978593710145269560014277597874363529781253559725913991236004634847908855368557168203560156773836316366150595011423400887605051502033713506267581961212020296278842163053326000259752627487547250308425066226098751154646771521948643786271053191141375336631491558536228692624230509549621922157483400377234985908218804196074504240652559478528506746721282285000981050604004218969747403925431997062418469912801938764971663380918814685470158520209542705267299509150707428688066382785401650851957242170310876751532623617012675702205296790756982923611979027689008628407464205998121771616530121187066630420818437865603653660023110748243920292635717975097103628064072165362560693240214172996169672271999768649226144800129916236426846929945924970878568355679901768433181102163652168575443388371942880390234469243935108660071149598544615989004567854179837849292096268682721630802962613999421368192138523467737659136004902142887223995358066321718912021332195992482727832436808432855620903535605328442161856286520802848951845963650303605380668873577672024929534114308848461115694851012509189489568105892345760898810898400410199293205082541129782111114742775593812552031275162190444010407519368630853043677892060475833961163292458852010184081508629075821263500399914310731933200336626841509062987591335009314029881331300909969346970224219669178338912982941664213354750698811128722726283287339452067460898278065765150273854602105395635740800003961342188457174388336370946861051493948460578909924347349882275658992725750301321389865242576608529002287430045781193297570745593478336300282768453556636065393864667766839464321800790227505462327487598604031075634546238114422897636489070983105014765227587951172905154918585383395478065388936662915088488552222224617581983643493706744460924835167564277156398916769781639979768058156829570843172135399802405782829103707620687590085837825822008630032758879730115400858425284063250895344011741262668342351397373174720151257062828430537756459671831829845433927057068423646016705227346215406154983727355991662325964870721176572898553154116738973566378955873290941126290788049199538170316978800444928910997453105206809127992971377341035585884583450571518805089859361359251999257654101023994343031279957552515839993439346522575277141610633282829806083007660092020750131205265033217859786547134150277409967061640097410736022443896521473194223085202120897649372585753333112431645237028714270726515591249587273287381848456713646142297438011504208217410760297605584031643176749148281633697222307882679159252242324022966105586187430557037702024642507403847423554901465651988609007042588238035833156677405739844428788493012209268534454312459559818229698557811763255381527991063972223107323482204580654494153419057583299154069461961573545677825006731283907390415747515123718589463612606500266246021655162531926136920328784137767449407726277214981010230218413884658589444768710332649829435802700668780669899867754836732307411005916632730626647813501884353584238368938969653401191410155982975900213250464819631037605488793265181182885477999129382649685866578453305972931284180223856364502443847919734865811413536498518354418645316473616545573042315118683302692368514991636304600472229209570289347949650213480015543357549274380288343642828884670146485194445375691985697104963346753161450735335524724209138926353343021829361456826529900458135003815592313110886679789258810262060129475385760139028461257873509539582660862506269884757332085047808021078438401292285202743134439326744365276665594993998237101177033034050494167185440436131367649395199893248936281065733102726274053825414524579325642479059225330008748866181295755172314611759731066799156510268064879521240010190429681642889291147514971097035468899793933004461334542667330885265603871307849184936506356224412389376771437472881625071887651562309588086801151049671184181118587344631428752296394172499699828927543800103364030419883020745792484698429226567296587872130336258638738956406102490460362584260966828942883964198273726765936392614733099780822296403632855328585919876994418845395147551024932820477987675976860180821895490565102765283683641141978712479903170526500439673564795187059127332340947683095728831388202641424926456006064260357074933111713408362625636575036359746469289148096366656863377566774668108406162058677341903430401589306588062534855057086353577613197963304615576641760295878619823427996205726940395734967074596395526129727669020688843767044077038939640049351373786162485745094358690194239828658745563904365528511678148502831775443587590858198114036976693415590249796254116265098613484405500405642437588968960273974697919051106109556485224440968940458276459950008776638731825810998241005986978461092902392455001032664984755235900695075528437239724638954522856361295833305833960683981956622507260604981576771557790161203608824404623192641277178867067462124035882653694397298820599069464807462018623951910696877956013157300088938675183781156345346016564494508338533373631747488406402194829458469572494440990851834375584564353134071440091164670729862489035854222023340679000971446314310539075709920614233050442648198224252186185812650972456353312438267114058158759789919671445225286915916500957465925377126426659009952825610354193924071466447158547778855206341488593799375480032806210459699504968055935564627426545208040790993857372040409524281491835294049365896425711163593777188070001623772144279340099509217236520420109645212617170639887439487115957406304204524154034286006958867691320639516391223720909420769494140021363458958460705780471267205813804951261758717476723191399232940156011937755164570853098572471076253371071226937913397304448693941778898839151237828434123619955029763560295885392782425258578575685353031409429008974384031386328743189689019489306389574123736214690083789378776530060925373717357214110061954703124028935721378878387924605002315322667345373563737716391887815025445481990103581859713939064206511079896963934682194037832683966356192936644188709560112862253925907968099868365528525049713538538539743479972799798542497513377532554696386356641498719917334198533942957618454092647082339725462622267217248638986624184754871196039953241936907072289976789917957698386775128302344252785659024114366138691731440947170605324962795239765175807918373030928705333172728343223010097282627834963227854972422809925171765579303445636833633718544915222443799123987839143243465595790254003857328241533185416290010636349722358227093610943394327185018884084074453465207781015145406250315296819655553065656955704158023091437040225599936473819165496385506876501128936119302112563228916815377984949077795175447322799882033507834519622716509297071397325970592323718114015494885730161611527377887856310787517139782368266547471730343971297351929431543406290678264809106769754153386711838237601186630208868167798471583619217186628417114271132862219677510312630025691029226702339514425103232096632472557477352076113136670564138505909231103622413034511639645735044119312134959009842616131778978833249862413830452805116003844890036638235979389671731138862339754138815006703588438798374465717239981005981088543947668990593200672929845437148032200737949058621108267060946985230552677744511488199404413763272551157893250405100603086325443870934387196265986369771945357856736445555845377096846481575470053336182633667919970471548612818728768303007753224862691109152523316733472493171057703975889598758025546381105959875385860472023822615832005053356980242257290480620014668675789975456129366232302730242206816668654195914749224466376622533418624050483310885659419508822087785534415391373659312964062833140141122120641689255125026971626093868062068938857218025699009194642955190389389620445504097677721315516023543308678081077301013510340647222000437713847265474934258696825439836580916794070486631427917352427993412322235931505269975299128742402375255423557457647369631564834839919171391736312019504524893554061502950015860390924376515016515167104648935674528851340945963219408678165172823400703836446024306021226877689173447064291856484086052686709833959709700689880463783134307264869100123265271684106369944452870390498396337045872354876941909104326567868152275031676520922353485236289448110366789849975203981647403352158079839671104213264635336935064612116026291947927778343970752047137810426651984381641099143674264826423868235107810474534379141401840698677604244911079014596697513560417713204851182988222279641646948822566496575386169807500582481986968633528133370680489584905731723904497977005520586086727359461695957988387410957298392046191403017760180833039722083173655487414559796236011465694785136537002490434393139591810663356215917258639093138807454479196638912866399531623688162867800116031155583317688774397481133404857089816511448988032319239169389486749600545249150366742399107527293348020967635166707616943141607097690340170777097679751545119524589607272819142236254295627478862919319408765829665440872646673064361864915585229755151468955120956324929987068342852605464133612047154869288121260720062090576774070545715864586451938430776421374403678365846172381726191811035199200875479368369053572340808510549419686981879148598843598121576893771087884340807551592045996432551051511217273058735426643873600864819741460522507656034270128392545464692165998866661774532480608698457356225966015255751955383763447596262329368501982074963426929138060044099777845780496729299643824324338829001974544308972637207042554622000131002852399174599067828289301447775047326344328467772199431134010574590481946074677563768052956178708713854306871902569844394320720216397170535088175806645080322879474115283749736831428587241636920714451604413725203407924683141542779506911088181470044271694501630079036621700272318663276404192915946918332131909583541428800417278079366834586775310052448351613549179374960564293131032038568302390655906273946709083602688150001841045528681174255903906940437758965497342864146921097036657811551541023506896432266363881458245440290995858633351154497526320171683835290632553831356988537239791075728851636720329193447691825495171708924316332235282368447756708193238625762133164286269982233934844980534667507211646642555970902525887467715394365878561233966331520515974699746790750389196051144799208227726895530137425470240948883489823976118456495298389074345406264683734990737664421885770618614383834082501853222581549028018231288786695809555389316279631140664997375175992567918932157290369220892480159900030826597772839682210189112517029737275757520322066508593102323128541907775110165061603509751030930259633052689597443711333567368223706578293102078288973644838926016836989888209303897865331737914243095615529330405028722149855903935885789541968229947878044888892773795864183207863800914687919844431547911362367087654559673775761964335768877325860044852994879570116545481770543568801912294314219192844328209631967454551327495413282396555641804020166237792441085437631730859244073307487244810856407292542232560595677121114182468163328413741093895441730376083045483184344404248776982017812518191193706896048117116246652786560978731937355413840298513761800263591790855078609790443379682083967355142167742670852533601396530036056341994663627097346689964144345895841906773458710113429643732445358738082993544415972075579788834173156175181714957085386160692485203878919474651235057103263257465690566430825792757588109900666619988016941500446967166009241313125550058174375005634855570766089948702852448192682444063854217683521349895153855086478230918642423941014255057657074318369049344430914823766613953399640714053347694782124787016669754451961096729710135621536295158471461198645548413487704200830438807831277728697286610643396208041762365438147223143320244372288476429349776056507749530290492342092505047843687465365723378759699220873477413805445001798741692960652274217308154792355343355694207511624168043825751095478072662508180691331877209533562060517710161451203717547113403248363769169511284995384639083479046539804929393135534628776268235745324354732787552914114384289784172557570850057963912480142722184608868328731975129384080673466474725187965104464038960137621857840142249466550719281871691323420490399918513342628989096365843849896976523824545995707378249612699794323270748617873442525150048150169745681255819177846538406119397283493772142916476754108335318815886154232450253837422513780230810408929422032153811593219103146635737788050862067688884258495457567232572019551298239994088159846474770910764592004539381186298613484335378609062857963774713790894078175999027344119090793401896704279203963405285922725129392264403623588624228943640109122520396180557138037542297460593582817825361942362581559351159921832702422125034512878682693217262662112354375239658268336313281095937677565147836870468212838906920451576798824840714461367499723842317929221124136172575478518376544596466007248846780520006531801051674985387850883724761428377145663057305404659824389281236143431834535619127805208410220617584876473696087163026928466521732317384617961709726136818939821296809672434668822431866580830577203768811584265094955419258404751037567281438742970063767159512753532940134301531745470570353953998724223924798137519236586811420160812326722796437923402408033144100273332557003807134517070608019119165979213619310972644301057637693246647328986900287276765263507093039525958799271458823593516161767044911265735160917867238224045936188896504787284131721282046864183231265464495788201298356178411407236113925334392836114068419151894979577260126225549517375184066045659369740188837972615824721255276281867560918831612550078457527639681890643587169459570278867726288375718361674738290668961374830461139858467359724637603600740339156953285667345501047835061512540190505826500105808276783197264444853980077172154996015745868054114519346909689573461929581696084385597650124888396335052488030163164009366659124095343986763954356532990210078948279109960671404708906400943513673028235177710747736650438175161206017118485451781757142896998840350904868232722371332383892234757707986601289084701820228578602954256643322448721416549300563974971460018981447904216117173217581990313383979913237544995646409996303511332651908525817029862050291385400421840773951129657590798046926198105328572253903271413783499710093882860527841543415675841794300757422586494903365767157967537642868202245177674564641206619115680160412202588364420270770438469330067675623612337544224376818010928078160816428664742067701939292955924342998164260118807903703677079323926872639860967371767257551344909862175377092288181339361488161241910823367636581559633033368741679046357025607440689175895944260433079761437259259999650776252717327794778415162126305637430262456472534366955080203298755152040262993764961151027654672955135466646621793591060131227657607229324378740457219247080853166172500992329890341193693329932514330722002380115952266050607668327981026677933096886593702165252819565259122377210152399304007596690158308566162500673165868632120527867154852486682535367131256098194833665924141812107773477463349124946110097247043148128183981492456990981247545330169243721469613549277645707462679273232053732067075426875969010172797983776465567475771594541190019214063351786298665927771695142288433032504870999311156715244098410528251340260770546705505883706668305221504545739464398342784649048054027963268309061030728343335513678420426861024743706258467912912579937292853525133251260090867918335969909877908632097718769169446378327593350033612964497173767487727545351170974242984546116383651385897215015967048990440084072999310393901556474094901353285561514298046957320627921125752034874813307288611778724692343374282340550728688754189632980593754119887246015337131423296920217349409169969240197760128898882053136021051026953901880033558152614100720126513055548290129992148137404264065102742266223801308103551396341866661195660887513469746709388749307788573895240027939879320993415807751227844537847252534355976590687895423734256704142022745202624717475122200922201429511571387603131518690184361343115154246194118937733966364400122128213109031671923043247008390685731053900638025071092740605236799812006557825956806145657307418086079432930220532699063408515826167086732228947130692945544079226560528401741984439311065092237867451784262958487743098524926679520085216795073894501671927075193198115089344032775966932931785750366706913420860285401785112298051516507727978228414301088872979842843912098720494643350317944320256943144232224450332118488933288336642745240175249816490681463112007097177384717345499103742420689736745661933793078071651902091825017001866121354803712116245472403554680480637361157470407783345549383500730460227195837179690572055477256217851073448257691327451973061921181666553420101048571070639249844662591694614131004198593995221257716721131047596794726904188378991186351981989088289746369181060510710446348717979762898221880652336006076733240797189059628219354072450696919021847653085665520872920372080448890483894472834458048842019679278696382854690309907906813223345691116596433707913248113702952510208407666668559183351457874861819320987643232970792793810984603551771849215392797713441736399749754541689643242533777976351935245650132502791717016492871536417352745630203903293022954736330280897479932343247181465549062433437054334642621449992133218275466481711586048469421285285138461224816273853402410170237502239722361378296111749528183827671259875516427614571989022908228652638956641926787161917122088577138629143466593151716530989945775712887104761482547118807613113486765841285704271393607167528652491577035649276910093134762387574231798721032540364144975137823052275937578090128748709295348458310886040898015800566011250385095911926161228678409176804270413667877810009476753022726178031670457744207826204159153409381414556160132971227379479042930315218480442088543632921408510352178699365814206135961106420082632923842530226696079129124375306021690344624553495826140502070340930843544145713545301257686245608153728959741889188312039069171350883633114337154715344555513368525388459128491073987426708349449643053204967643414887182858120040114115473555456239717907910720253989252178534342323381997741120608311550850169933768903780401342737047241620897962169367351448007966813394702737759522388404872015754646410714363276958355329814735126809200636216319026961734645908635751763219801061840428617896293700767489627192110026157279342166546420181635800312044973146845458955157818040457396069472867071254648626980122409174298554308195183731393557463654918502544547100773981742287999234404370400153947222866948551246568607487789972380597208872279840562207993827443252802451432556155146396095140672322182691450279184742959292317763045871696837920727067756692197636638686615409558441748693057282120670726949505998384981422199486723374650216906750833585215771812961709387778794588890049468789976397514339665345569658640808198881010413923153215567657480716597077482080470018914647080922300295304748134404115995349503158586507855494244554694235560153577998205955269687838491889234103143801317204948912026564908753318959832243245734912616728291958609787093313629270132106626802103790799650343035358838849963936974899363386565785816451111276734672177000156380190325279771580230107930250174053034848797435184034846651861818308287691836634669158647292536956675704105190627003409320840222817490109222802844730876573933133035006670302258362219824183179323191627900751784108748472446412460472506735937375658517731275077624587230299185506341362645472691276740646258374682508429749676343386497570015803372242145609729383917993434438209003382622897757247046411248310870438476575776116008496668977130844072971126657374578840712749833099023137550603627925990844594287614188895265419306463891327101647823528255308709606281786580687448900794846982248072324146330203453377133212282416217078586752490064957001471153221244450495583072606089173787886090065682408260801065759877101732532655472710222831658328576326160413695434329200266963154257603609332918874518605915039201157049868660406858056219306001629238228538942506597661442186870409806677627588954522113743910626602155687812428936880379497558725973235515591798969332034267887996453357586036874795583777481952399388735380034566671767379569800578976882725298835333971373415001723676056076247726839090589876507355003184658186490867988248296460300851256072616132017820698030823751851669189245954000279490458243982492944917694064898710230827095545033136689804117256680508960930773683889577208351594245638605930784264836618767900403894697662443937362081966682337254165014607489969460796083320100930347756638259858609145818625132836303380103889330351099858827192362445102417668289940991399476866591389385882123173413943717482440984855301843162650793842758774046709243003069163455031937959213619024885063120867611068565898729377150281075157362360364755291057489378119492303734806452555616937134033805472569683842411052730810377714339413705585915892174276389316012456940836680724439310974811630264705783366108904548715363302621441838666325876632275209872992059585508637254890461275741396692004995010755183938639432302313555483682677896841586577625894805770245387922447213678389684220271308653842290930866776107498196910246634472597272721147345687740720026448969508221335247534108505941590518579992884596921559070304176929891290550268201789202282379980063136297212585652660871359505745183918868695677456482645541136121669077053244844479159532972909145195494490065819480564670143521671485130525670255524163897252410919377978390443026055927843854696698123799136893793192568549741970156096351487192182392413868979534738914687323078312444136835855255939212389690838478294046423998028992896121250439124968068383870552427845317107478401425267550432961465640366396118602041019518470835281831143590259824773077760964542593720688172304451206597902996368408705258092821041405630906546362441505558315669931630341123178575378028803089133909820617643560348879368659485968047428448550790803828236722493646217838682494931416695354727940883443036926253260427101609999819718474407321048299000784939446770582690498434601350934290154062754597522218499318351961187819566956848983001153000130492702238660937283778901290576099461327950496318053669468674731428995175079843893928466440311386456557992171502346046871516447675101024955984960331769562974471456728565572223416073210514345097427662833185169383281515969736176184494711594283186755401303094965889790906750274828700005751697922577793532544530035583087126560227868697058867900619986098989791620891765588473629819247152099364778857809368898240625761951953319323758783300105633317625081832988351170309453667327076816539022608541494837503806604696594764615653437414563464758449717320889593368690048507011749351314715483087878227650475284508246825045094611666605989655608894167625716660525450679242776511964373375137876176432151383901299971553257946898989776861087381632335326399784952241371746311210099737127876892511937565246849204354985052354010827888017933742523806621604601002146298242578198964824826761473571336079273553997141574385025147828999399704532617695504053567006353637142653600901201698892029358718316001040012756749742759305518976870523264180945445595228091110602227357375659837282421653195177998481806916134856701319964951340194716302978562487002771035320799605702408731334872826106010602898199236715432403153077865668152348907542723102235175684319516756450236205418953959689193110221576198317502859408080808103778150041596242233669369610305588416509752002574388258412435038381686897289627283870313296416311048721182083662141944118645771224536027099368918643282358500990598909940330370079657849697534965089124871541102159051401112023906758405418816319331186514312257629199709523941728573615799439065127463996281133841437739657496035080121254818567795974846033743246806523395497303657448951362175159352974708562140993989168404821134781765799172381323068599557441297938177302178149719574752052045438623085643581762739495564209013173334860903872599487024304465116831910721699215604075261771900569455940463083534067048149571292402670964961371994073319854433451205927984621296320269213655019351690322574733119563053483551520660400750170675951222478226042893765234018655419650717176348080349874869262690976679341647111289987103944388689894399055736801866428089178868600450744167112160334736141572251454988064570235713567921045210582823206845880429647793526943848969852163741271917093512256707842189843407062799245863216432748849425669464068223700613046652440698344252838272239158375561177355706515796828231808597370380895205798982994063406997701361624515491538119860575254260938412767391434343853545370145690140483435737716745439839176502947024286712786079043543501808567028959202676364354218826055791468133994629443098508257452780335519434477141237775300643815675764595257666415111033080798431637600590919614137591573537687556806818439928324264442291562932501401534194304727521344899470541342019265553714732841200033527997127203404820182240315850773561463057354850694620436085222197396352957960649903677983098245610942445278491905170878371558540351384730763631466457735200538241071714526855210587645185805461524603211824060967190951721464523091064628515668091308310356041778472000032285183862010651782177523333938313530999485483503008434028006671461476488445164166532444737083203578621168631426968515267170929047612452219191881660478130348665594747879222581878048671536505564668737042162003777380133838912821934443466837693609411661396001870388376183379040028166048628349862429932196079456486320271459866737506008724625457478609816273851288223557781750224512842000668518871068641304052395109068625370802799345055343734868194938812917188874838025279265713103145751595489963401480541035126372837594526209108488723270884489123310993288866355881746799653125569117146696182726178332394131780270165606410250916141065089335432828453504552139713653574555490609376103272163576111528575130433348554951611090197355302645551797938585309057828335891024243575023907448383351115923155775284082888189163752572838658364846149568731710017167975527959338753491297296119087797219149636266212326630331961535022988948587955379072522865943657958937048952636363561214477418678317905986204772901570123190782605270447783997126711301883799962112068277062431705828901719340976236374038860695753666019078944413990116682388134253441991259973325948282620003141929687668203049503403460203513353726429290985426456570047529883145953929157181806456855436346653205414151853784507175293022446144555253952335914318059092225250268803725129683656841277901718062430491218517068933419875525500248384489714231178719505120225523778603739589044193765280025220303031267408855616831569883404291226815748239501954834457390795069110093285456627161898816938623435590638322935839423109355849220251600282202103911374689613809918264029610722348174242122151667876905843172274471890758123282132843514587989659858980585825022295166892216541402936692396967792334026033921374724807751717835922445231028095090499035073683708575060044883049227474719792972245386987628678900239226121840525332279436402596273774781551774608264351148627621351439605427470496256218420012561703282087626373601813051177675250360168252715283021202302079877997666095740261107090125505507891565633034846656900487720696529740943568206433429247131298121819078512065007138993187776963158067264629060864966861965772190346227603277878956239167830208371065977550837688483850802739684633455862438397289132092019147892925844459588157757004798808358628591160534721687888673081381777085202081814465085079998903047260047024887599411726983280174806782736712727995952313479779902063089784041922495847136549467135110421985382070143690743103354497444379081368138397916949237857213778646515812244697296786429818016954582253594425631537298585355360277823252001118963211424484835222835283802316193303313524637530854139044372185310505302964427827662271607991270107414038503846689330371525869718201800179632060873484797675378458222170787708829340637634249187734176160175689957185617553451285598606522269755281975981968841125953481903892862721578176248388335552605636599843713902119530833087300760936110157563137846023080394651089950885052894053199792953014350478213686133960327126746847323893839234829949954095267420168205347499277107827101420021235551001411193152815802396731675391334755332795483996212135920368029060798709378429379398568135183611127784380141319568505176479280496719092324360115125394797390533019364001060066091623178219528146627381525149701967743967724852304471236833636437401403654719853918964035912578779015969883584681269127234979762992173374103797966872364068596518761788954684728266047971034625033547077259478754510646394583675438712781078544937386954150145618381422743517661643056207042976993667473309520339835911056197499701362633436187525434701016803191661441090782442005919866416630802034585229830933107913817811775808475624502208178226948436686210725558295512067028126551250962019682929044538568055758482675906786121476183484515879440634599208081588706705899264994173975855797099208671124074206723556333570298248241331954218659253307310858543638809992508389394154896753551115953471534546307123052767907871737438422653475173329068453787270667165015503527935725791405260900831046784870420399320900216247523905291506510747851824073425261431830723880447569033913885655925654928082379275348372053709579549130306592815926933077719938604317360596427534600572931406743334552843614409417681086946818358882535247259459108763682763090028252290921563541255714816136612335629598416944018623877664816845360009777547051201132154147471588989906609092757849193353194837308227884024245690183855422492754938689385548232751156931240668586591846398949652002792387201483208349971226593875304012897541981165697123582958944437270709381034232080441247099826858657963090676857779424688211137244672984526756306731054738805840117182001472966083270705539431966891692756580360566115089038294220522385031896134615599309183784301924403914620255965709399780861020188506595711352942041126500749927234663306194930136789706351388537363601041015608140765306911168817223339107658201728999878920005731179207588300813828532533260484872426860186618501676043714556190990146198825259062359684622601911420243919329134911193309358812888657319168892539032306041493621255785474664893444392984839311267513715055031843541246578079520009641344384260463793556820046606823064291543517825788970979737056587284194351420628619733692763128728966856548289718737782499656394715364171262247259143073835213169353839823660939768493226603855904942103578017180699850259214431074225614309914284835446087682820155181280778494028567943890578726341672616602310581927122892049031736569106403521531610621927918141705827323716594288204420695199718062546433840760039448183285178789084689581718922046202280939164093246473072771339931107543196341141511647302046150276093368468372405792744259451133163126532252347147721338146435923707040094335766308225785258891699542918966084666401933113271558889245147401850794696861716433122829284573252886224180880185122554028000518060888028099862628628965013505635782382912551693462780876351098043089871127809925159724843238764521127780973639034736407922244718714942975051062284952403375555192326881548193691702474939311120634925834915238797452605933917119629079080488815062780167299107426330055860308173418676110433051597619191098564543144749566502340423119073957449225539741771440302809290856659624036458325143980794719115940923820869764894074529654807950085395367946535487979250722622369085527148385016994214588967963586705125686938593155988068773717494963878487802967817609437881290422853296121778762788552399765510662730993807192839335310018277341112365712225369768770872470013127697495064005817465758451891441849942607211182645657281786480798458379426930305632193294382499981782923823138696754338345679196770584462204242698570244233298272774223586032108111295492660283461577360391904954791768764481582061316701032596480097816579088411288728675866208311930439658408549698209827111061701735448510414504134586345822258561319293735790699729874154768525470773399114812795040061705949266320842789093814757582824272867535769289026461489245180552134527142310692721580852691882336136001548615338748166940581461507474029520803366137499317200321440642379779754789182506641890321680991083887575999627056733340731503189316825222150866732926158206823361067150713026482835677297898765648366676782938549811743019153961297212220301075375594567914841131332344876957123232029717014801014744281136993816839555189143201997487766402315419407587648261691818091442395970400187603090465651155173478028001088620542682152341424855647483390234398619902673054460446955378227466465479242545859800295596694142863486009404076467233665195443355860784927783075733297701448408542367149613234974694510990541269182659083289613121499316845717494408519793540559410582367489303723393186625927443034494705525264961631379926434561052448321363403299062837255948751729272280937340560464836737754539389535720335913214533423871921139972488644621862669951615401979917291697827677835934325444327921008661170363442868076916403617690548626752074792214119182359499484636144234210387027502005224815789440059553259495195917300608277383009714872293891880146248998775156677768180247903681491928097176950885100669385396656644747824206734726698592965890502451681521802954589402861660712132860418715722317648288781418663437807864952457102813218833699961833197389609312150053932657722192184894440702640473557050691070560945476295891138826803695011585495170733117552312430339586876960386454882646808568928653345708165997020618809502219187179728298338419750379487635912296582858631124046463939928391008033457408294649773361087074537261786867116108890436810096409739657516024879187564237001043471166639399751706634244051643100370418368455835116814789461771318657588285229929185307023054555760472868375852184017114112456346403206186814668363825133447238438895107068738180573173035465029559644756260110026524331190261113594744979520672519426194889554252904779208162201758739281019867507152718535374424160515300104403018157305824545189478142170046138143643992152054217966882300240423721986791504650214764115796830668055709501216996646004409943493259921423059961688900639085984076968055217423054857067707536124354926979912230977437026986606976354351668277318386782846959736222896101857695483375576027319721215416730570370837518885518157783405273672710715716624261122024203165034393999712191893551721745255381382876496673157293571334067634665458423511661606423985874075226768495244186605062561022383244271970471640837079737740245865129483062104553042484010012628291012569056662904647691939503922614484522579789544665326131414385398999661767089949182802854796262123075181518352673961904317822510907884667880254587670484140904126276928560721066425535816225213810351159124242158047037765923641298449077464699570099520098243895200833622179442445889707517585048954095386248146931764906953521912592592298949224229971188795459700726948799936245120829594648235330753009017499972233340598798100359926487953391412996629275666846997248787668418200543416010222574325850509623317217299801050751617083022706713109540040446255028606071007017563957910364503110567099457857185358171036749635110890479340596869647617044514382754741721705249875511657006019538272646957693484696170754637678856072307130054279701074574520648089538045823870945233824708453629287342955609828193589626645713230280517903321630290773519117211625296063015940269200672672826432958160083586219217873045473299594326331729069751329837512399721468276855425352226506995322102532631082958609315409728546214160878235222471601512307547406980027571986227690620776632237019347860379933523101908769181018191432201887505859991726733965961589167576256836177897680078910589347540834464090164381712040191433998805907214511889966441796871108781229588034685878866117024982255395248977248310418809112858308625868150806714475623042979823718915360698773594219399847731498564228359185174834759367271630999344679438097667901071624664911312948133039656852567886083271055563188825348531144151867147947479740396498314792289869848888767312064765151370251513108584934482367122850844949996561743001489039086867936992987017589017915901553196554250710354638864648923353136110463985081891741361248246769731287133092848155331360654071108990539741899141965840619368516443836534862317729380453800586586623991165560944052928563289101694375610148957562620428601487290866484334381135082042082783953530255196840544915797177754075877250989913580237277291684847839131510722224760721343424170153503020770618154715216130112889706147409494436492582727609881782250449325609283365649704597410184833054967520078306582255013119356174662494024071025478056643848078906555859504368542065701285438232175820117392665659512254058189942202859594119787537607636340802643257591491451372330390345773860933275219613270470515849076090498069213628058773768271078845642277676531256044661406680744193506818046560296084264854565775752561624991484450484098030706301495619651353930302752846074748192155891241973405758714494963949489168544901546843352053522308074987052705622868407434394289779129008621344046711503705247721876944598002257019158474997635808460166455972309679003856555928936460915280388250663701478668631309708925576202822952608694353237661499099446741688800832739531870811501711465855335544038000119903196361237316828448151529133966046189877574071108080082970825211368493297554030574168742335621910801287993684866250880200922717612001678345248153412780195223997857802970197093027846859351427213216509347025825169851268604155056179210269613576271082659144986620743144816852937761313722697558747096264011574000594239253486789352369091163588062367924630167683344306083015790177332158245502103801193199065966782724754738050023625462841388417405388326656587743156462391499347638934002621456540631479387819890183171694518263192168765781090508188174566738904250267543652676677417810680039055047533769997116632267294742605344571836209694571748727666216393966582987429059999105640655000357531008338730653791138846213012582374142083351729615498775533050721057132280472345239719981887813025255838054726562612765581583882170694302449922786536649634759456938709607148162482918522391457464591015805203073742616165837751497417722467140224288378284017376091872378131936586983241436908266271524487879539985048018654712940154775014830163475319613309528556251731075421854165927140425214645896257631769308667047987398679704595287761762755928605746968615452178847933107021711091615353659978364216412940509016634885946242319974096099368663183907564266102061380252728392568499843687741970458824741778857380939285926457070550721788537132419758647174009731922599381704972782326787172180870280171487338537872130867568926030706104165196222188267519131456790926958931277275261477679263607989428433964851437779880748389273334130507708245280824736995402791650854420036863113095692421689142775094640863575833131527107771911816476727534102894776358401617883071059477030455092479840357260932654817948586462956419395233131269806366152384147621776434168461833517536200874670831294602742228678099883422133632619010815241870910265337024828606128665789955387133254914153553867559711816922936072387807805044342833357617474684205425733929008578281036306794476576343471096636423302747162783404440054267307994655055877437467690642384901488265487538054074594633069872628056554630665932057684062620203972710773179189020740898945301413419134232734638845771636252566753831259341899161643284485542334715991103787946413388044890951958798204975728848390800984969633218269884480007908798541658549474703409868492853854622816401384537933600434699667729430535045029966937696276080459763676171985704384483979462454343997895156429577724909313957401045878275997029184993149564549527792773562851394020457904230927111237565787779250266667330551934723042190567834255531471572460955947041850129099500501695438312967508137945596890304180382303052192602336869878989487288462155552325911576257650004460165550471754974358153635803974198727951262133274436459159062367251793179924403765362336204872994299282155378161745543079080601963947618518060992873748652832205421895723509701843797628752866663132764782670788345309762585325548736917995799185010115941439992661687461788481071687220027445104787383477114709757525049286123627388803448702441503256825852919981614413449260273054412696765468563621543563789201350524537797166749855092589907395744076488945556268940308004289169375152361893640379559659134499721040111471237293748547523630514292555832586679186746400846466577103795320210664631354717828468078949163086435392205163752047675571400984879595684029723683247833431785490756539958658237178095203643554802878710888619982499233713801564902135155328152114875272424676850000188993089113329113628165627225475448332713082232823412088143569016553174909103632227215392118805232435924480785184784302523201699061105713729833817443253926070456420957110490334619027509177689008778167991436882328451394514531673423172512313305598756802928531853461849889406594923922823858375956422253571918664238040107925260810017078540299382936762163896119331237787545010876329286491781947690506261351484115551867571611326062611103630149650848690450498525702411712180716722679562654350970784057297714861477007045146813345362740637226997017477320738859024937868845754075530648707046523546549675267224970263460883167111482138085501822734290174620370392644965430474450167293157817217934722705675661527775442493553847764479984023415985872509859288340300736076498394478155513789125345680474880190701823195143497054752803736971977864048293028870283705182735768399036637585688467374634362124680777010163714455499976878215105664966545542780031720532714011588992905903003060780224815698159705627114555596412941883442051161635490821297381015017529099295540619702843482646245968948290824922636087131467118616077774792240034881375647143193354052102334603216260697994407437033818855053343413008594882190361613450352372524338613811515534449703600340551258955384950597726170859122002898050295782445677229505811544071701164516115248863028382743734480409796091860840027073903683479359343092208783130946899504480596408043565123776932290816968126936875418552964849583021790707611732787496212644810773052657598285119737104459416248909419240582830728343382641607914124666195651522395641371999892912878074691897947144429098393413073346157298102120098372511600034621720710669198060155214353734207781279930773714100388191780770841601434623093686138615083603080608001497829246197019079198766041220781881365814190614199915904783680698777768196101024614343002607367329024407159018508510363335401624568859751122403510774779306128063946473291630316243510329152893805518432196720551973042090946404473390799327965987906973151042242393834069503035157224785920509243328693556221279181882117856529990720239404980716931494931825620842479139203959571418054605429537105858652512905952685859412404811813822658714445450712020227714457312274905009849032098674709142884289524415371295765544190785310570686920232528342049315398744469036975621160467912765275238626388184931621623415285318938530893066740522334313181414439795297347295468324298687003553772462343852465135137921526972617374685910156373914486947842198980660511624608238954886988299897717170698779904182460822914426893489021866295593183753116142255180659157249722971910480648082062025250274217227854908526555689744414139679388908334842666466791276645957542530146511638422942109143182958099212234680396882162503300046135778300200850092776490076782471576780259906361939988100953666753670902861865091514873962270964690732740226510515923830742915076477244402046226529350977764434640381245488149621916192222953297142995124764370319577066607920575706414571003352750381452521074404777135533704976749552529904671161614995324962878903396867289564709974990694425917267994599964303351558318627135899227042648913370433413115987721166023983526078313298779972418652076558619633160538272373205539134958676369899624975185952878431102964679141073099545300988216121741963302828079996881265118615412778266697870898164308151601292111892091305703127610684525425108643048017278250256933595555656922633099258536880256150822100373275818470059702666820741770127487375823344941344549591036392262642767997953214364741805062516908934062251066510879069649700198178093532485143004286105207186061831430732102656283632106991880789022880867199591626261173269021860686812381233538624798524577370169898537374978635584807436095398883735220005095367818283696454184336453132159758148587488700868623891627264720953634866392588685642312364385248561395590180435094468445347593710160593629338461926281986301345916059998417124881124078496257164442014862062282050862380338592979338214789464264113272465448051979281946709658046623990463720022203897406099906180691481680977545270379429595049309544178385868878527566940693957225899828189015236772350297900175384167281443432478127427173756590005996383558624516802266175199808712771122872423860636666388935089563067310630756047826225174009077365219362912118690574916222178084680936208846097343724113686006355788242324083191758412290198522074497277673370708838073211539625132981063314320437341897067454608646022039426156961780922677745022812748233615224735902215758367859239649472312168497323596588368130222330170248279557961474528820536690810644664941057522323234479336906239455886943635964591305096384818184322939425672696114636957848437964567870637857285958434042180509012135403590479616932647055248533636219332207308750948566222661565018523948074669960438401161795058644813240244920503905456050814877803791402775428264822696680755519907299270635403444699553697576957451470081641204399972365892023470993712537933805950913955542654654027319815695590998320244928433450455519411236561227544370757462814387801209235589030193915265797023203128307048314239437405005369154720713620508101982622783525673430902362274898615994702474155853919496988176600536676864580892172567539741331321410336157351590522822377799335244484246333715520856769954350263259234435601104315758704360716648887440603979270982270229475896309035962969968252002274267263072885959924944541453165532528214074165086573833824953858991812472284187713160646308469610490733168332445905644555840155206471569171258550173321754247946823025969872774557960263235876408242204323912964372430330626694781899481966631669148364150355520648648521184827476150774605320567469331326965330051002076069800178312399346754005933206003138014285257941974592114554646263540102143572758321830803243499075303187520360417302002224624066243072336991040195269007158130743358489235399152136265930900751866107204733178318263782421898890709728690828814457712985150959723416721614543617676614364954197440990607341177255245196283282505982629404768679526086464843678938267171644733125405749894768275206496255372509193250234593604118888681616719968361424902833675731022665298679344377024831054190401587686507407160367503615985780018720174571108705536641259773815738027104750442040721229064911202575035131862859375215304089331664171062702605438214985117386563250760136720964490536035836335107588026802897550543963363362768961867354664604174223349165262042639755790203947989170218483836942540685176822298090164270753690737657600855021980685038834737457966695873870950523062731033863681647779627576502788265230227256666157703573276127291885198805540215770381268780315031211597568911419746853415012658209302852166242605702691086271702525821486815860515417188236318565026222699114292228283314131176617461242078080135487566269918262334731802597078331844166016210009700596923470645914700533300308709674493400233228399468026624788307904106250502479329052000423546613920032837068712904371823151583582117258312877986747204451819862232664230533583171585538277288693966780908736544999831783116019547856600345416421606399638062049994492330536447426930195002568579250696338435949083280088588219134076628064213764904601345482872238626861137659108794650528005368776702565569940483532891378375406218300949966930214698450874556317479016164295202007553377255556689717584478021526408716393690051147357256975105001120777030955153982876933913223728940685345545830578494168299135223090127102425582097594337466857437502137524466815466634348751618325461015279086132328681056986523207090801406137425677925784431992277656975202378897698337637543735606747462228316564839109356957658979479539892613922559958542624778889297716692522294350888342647838513653716840943533166351290849117460844244304723994079020578387327332577271542221429595807267487271824106707865046146236112863806154977589118789197059051579700716399870120935362199002832045545643685431319675769315069840802828154339738353844606825091538795878983806217060041093183064461177644139743071177116428406064368681750663140141520665648479881581079079022857046341762223853286742933111638558799701472972274566212412029910752125877446798155389316666717895859780292984807610810639310020379923828821964186017149449785943553420163232741702479752913014477374425921475847547042058465381705432352560312820315712107748811593685189038689526375674192336787127557147244522743296907048639794044077611732103901999209000961722841239446691198466362628875898545415388830391275163014426739728470900595395788702225399938072116913427941232648468248609755332980303075714484780235494528089122282511574656193090923925895097493374901371843689602316668299328895421816054173922278034795990053706228945987187374662534611490027475092500575034412172500458689970569699809787202679910389612812472679051269700442299344534127698021955804805932120223179013354425718307817258986576936397131111029922931969121582975589220815596214562070408971241565474344195153196232877154353319269586675399024497835991065110661416917363941262753631684845263797290492917236628774941786943324917202360814631669929431904876519307373555721937323755508022333692941330080537204591375739513414472308698571555455424807827518961200506346829144319164523303129978725938610328344154738909265769183372722849669896148902446717835554341548823304588738271379249850979268090034740434283415857370101435086414676610944093693084172368661553634674648397782585106164302208538026049055718664427330584977875156551825388827869579682697750897025535748911112139824605562870430606246838149315062994151344957458259367337242455790944079416064858102069650282896698572337622954925614883658793833116791094033665978205032209750937053649048794397209604228856396456342830206281202911994000554884964154047523204000246109712776787651034819902088711745564118691157064983914535134479867052390105107538177309155904367569338579200085794342063778860000136471050339047199558956465121281689936016731734271425499279368699713502526333747528109399403869513189299954202853693750200735213922042980079046376092383663697486973286232680377878051362661367273863643803002132138910405982827272209055543489412897494059111319944551883887124589870564040484638769150035807561699994202967511382871815739364324729152089444005475102526165186502986004744890657320217831629217783125202674591944004019551005756879539505524436351688841461163235577652871683543691387176382579787521992045116503994977025152381581563989497806067669797882879023318459746914538266684063785702646537007971975352425960605324689935207442933447151767901992564797289701074748722623930039585913941353563053318825805188055036585232479310644342030422041534288634906404970488230833634686949632750776351480212144719697660170763426832075583668611367765685134775500850387097417625367683465983258553597171392002302767507142824970646134965529679900005555385247256019991513479151261135082822148027171443191547933447883483376127846512491651361304177438987130851815095207953556133854674608290009458738305253640204304505299641084275349155591328920335689270528280447089878881553742451910021425452791287143619950384285384843731233852488221062062141760434313894061312281106653700237255197572928058088677430534554439983719620824928827437027008360555841811344637564830977180245672137470376850004129249043819033116297592939521791580144298290744587624370211959887082865118714696835474528039225124454028766662481477728282895994675485566109095356750559399043527218826172391348629394925111366680257602435315738053823014406654085777374933172994762085038179111648322297833289822445966170496648834062695974914535870990279804665368420757822165399835576808080508558640782273573654932004270687431381822351498802327961303685684473653763965585583252197797929215687642911948249090778158732026759751618230883305167986108050548363338354626256742282709643757204901898122564353151542537744535373132224946534357181579018971361081780156939860639037061345792620635653482624291676741856024904125228901304294898240299500384231329330444204986342381197343242205534394769075433881232309826228064680241530882416188419367867621566427000015472457930958168180032119508265199654616604522518405679333716498385620999545250599374255271612196534375254877046600863679447671446581220015806750862711330742622040627520127275183059440602326369621397474517434513937706084470311402036091581889972972928459652082175167736144123686113589318030218312776165785162156008919298644107782340786679962686755289646335019048107653754145902668224359335269523953049299154231630338592752073789239910895689519429778908346066222453158351640389917766471806489898272778603375013883157667878555846173908797906489876015434046898520129282541832844878215221975026841620245988560959315768276323650505418424272628849064333900615485249592082421463780975942653050051783107376182928730414463757051328403643406242648101832838543676269380508551390468828083715794008353285249953208296521467599036794664816875450779361802865809237986705564317547842625140328758231724096455183304525533171007205556911997790647830846297401770373714697735165797797687659929354717427749063244766069261469246303275979621413978008601614003352732818532558854830110276784478750209550440299251138541802599069978359839476373016280440249811537761919348894443773238373134791908485537069304252028322292238506591976468087810241133588545165448308502806593550722019465188233291378857619887672435491764807923383872184387400897398494757712967304398731548869817381319212447150969983610840381112023690685191592597932841418358112836515119245180700475362165694895030078121505406051055030690667264784692320496122940290664076038931292294344701499699859379516017063556109435425191897327279760309374224275934438431288134385248256446297928742803253693035088674235872290342994466552782292864591811214746134478691754398360478544240074114444457483498364707190797309236454728851879198252699641921135723499266038983323415264336549475549315048619428818500232259958534555355517009783542685981723108525833895175332972493863617010275594657331053141400876266839222637290177413185296824700398659821959711936020377942489768072356796373392898614887164763627430025462725434696868360137718223147947746434541924406479871660153246887585785706452831047740243039891178133475481191151374368243988733814925779435373950679141857124894159349026060649338618331469389879985593208020869691979832071627739111445759038319149295260077622494474704443273635735804182975300139289710804397954041794155519975142287295225055068852486767959773490786417653086456288821668777348524768090941625738179700227961511345056292138807622650347217290641902078483073354756742732150139148984281318398674885958137057908569378147966698185447345041551076468631383002486981691587568852611577721885108017536905843135287543880491945075484758400313226604693359959537153944961395087935658991945844826477959378375650432716985400332579430260283196794682392826531859131767469295971895891280210417592205272479761206656343353413387271119107169881082553736228024799035361894829170293385342241615064591709169384897709740209194908724010754959078712316745725178499689415356272880662885177175322885957277003398484978108594754158650549123238355150311693117124160456793289224080681001918695843676550872332979761149731786876517417429655587100483599917918461928769632581017262961130556571694330747062998779752059293034710739542849076824613911760224706996519176430227829561614246480220301003220914423847627846383907686368772746202728813557386899229285832266780733058197221413918900144950765985232588040030385553500364811462797821508849579676122146475939707686967555394661315698622057014999740596629236118304855455633651884068281984472455478362049996764493369140799376573420780381678586510282559641264185776961543653557932423259538606893753230264893201819687484233745356630048102990021333856055497636191756015783183989609951317388648959568138194993223679879894259272034906367089181561682057444891982120978440984692063235006234253194483304391660050232365242962665480655751367682970854753434432122028586884540877072484436576533214238848848972249469207289516504354110463703897228631249339101417390028479581076170741940192696128725707845777667535621269407612636633512554996824997546910022083232448128113738076207600525013992104777630971892792461629335557815020051455788781367963982682676595982792436217418342319290843578225292131660689090395043845795229011060720792400255546157909782322747569319791330759073975718137155972975809371098928562767603688176779218160347271950655924478924589392279151172587852369262460100935031627223850042051778223982519985254994193782107103216128513700300121471651616519711321347989044605943038354187394251288727834264212988184233464182883105834954569122533578387517353664716386316144329287425633235045500051442886506348532131879255278838759225733543516455934853928958647231592391058701717596763924324405847066255554140462617069816831453467055755047954993497529325425351794129486705390776763024172317923795652241476264407596097585686075095354380475698965878193568602678132490604889343030500595532209987873307675656538410224177064688053532731135488875012641274785377435655273192480370607167680019203833721608385707940074131800707239211254482690142667834143316221449885735282732449704424790341871591620866888631881272335338787579669544261694182891917686163791685265905807586980855635413839659219852177743027299741967658308948148535399413270419189932902463614042848542724123252911145544382852986414530571545466536752377015589050980973400042513609439552740898985497274145925524759901186102320323214577869146019336243087500235741491267799684155716093378066548930923980803172091033765142814577149198138429864090596694721959078409408475160503954269469014791741647773219674512493264261235476085673785830123443652469030303067864570854805686170288286296980029552440427380317829821949492001999982196954236698389908916938227669357037079924376160376058869384415905405237536405154095467458460779635395167694818463522206148001391209203863920564927541680904438064149339653848233193224114371666880982337907467116671981588005701252785814302421743652586785685761460540999025890943544149718946055298545350864771796275397767373353838604348289579961940868259641820661423221886422802452986110449616778688300392198801263019403339899770130442577276877223122680646762027535925601284442313886649528067299448145656080022269954236612435563750391820071876146222139700043878301589953933887367095339185147365510289185283940185539347125525682162767843914682335816239670588860730064019006166007041528893367347196697217603820807856317634558814938022852837133392295845893561703414813288782137748835934538676919274739907961359738647201913905990424504596284112383922941268087965972029736830513328487444936056897473073034028840368853059235221740421408523820039063481085296503545197641550934084211414053323461282418776010619625132910581058035446816848797400325560753538717069109396573353927026503983607423583648707004268777933885607985417601988351898048506015627792084425476354288285884693311477530805501615572097834909821714947193545355863181617947178516217833345195599043335183959982042770577695754304580368847754396305665136486621958481156586622018892249677776794769489257199231080712210992647071505258588714124492534378256361951147671529411400727609143066000906000816811336960600249821915379555397778114099828842778923544931091319620997633211888420443365278731121848285933926847578480800209580166183689794366675212726291242070050590627723859035131146081217398442797401537707281364634269637809518779857924627972652142769098810825800408462886284332080086139036725569384402981678901655010827420433164922727051507678678768585861615578392876820750282363000650478527453931075387440028427440340535958745634598076785966079261000949081106572355278996324068146112481614141147404160350545430765848902822847204347222933691854644783914031498748160805588760507446009183774539428112353982197862595971213384093752735268819047287423058741914528605336393439950048512595860283275220672459870190149324840049726550159815383485183694720739507204141024462854392155561329413080448727873631378923130790918038680341147923864827724771439641862478072335654679519296957980169425591247348317538108755460797590579472216130269763167186064135714981112277238001997609664639239780201554382428203434652496113262213375468218037903508749575443896683400708780926235259898059594268679878771987061486880887498101233474110289493189916748135910037854078360849429861547105944814022673340298906587261380001256459717660318881074181436681217275386829521913626910191526773212704635738816486619475350308510261154866001191144547544381489526835402040026079960865569864510225106621435955082433274576675163467418624338039811320605086659483574420877212856136329650862321239142158692250730033672735128607311306893078111399335202887187056854796763404288066011643362892336348506004771608556667484841442645448057423424923900549707431960460485575334664967955969767300988339133586872546142889439843916177773470346523723232945969381243330085466152183474344917192801935081155412364361133681252800213539337560971708243318830016096924396524671153913571401866246680882856091385447656602927959994865473039692805677457560384210559144607389037313959220347903677718302287504516243911343492336782124796957522466691538865013445218107329673067704730776937760793099423152821722921436080576143768154804591382706780944835022267950110683353257844988926344758403197833199583594289777675811552819020105885762436679517969811198331482471669456141452674307950464249329148632172733821479754414723320373454209444271965225500853363747597239418313186620568634230384176815362608625040488197253590930011942045875376799986318944979823841516720279841758022025284874601055502760224772183456119843686704331439566559037680199347141897448464292714827399340043157714210941526276406430389984863743644407541592006498156565971834201900065213670470105882155625501648428288175519222542945923148533701854047563466010517582855841180682033011630871667457857534426882383889833683637041904778059009282066133462337555914621419182220611201339071351998238518525082016414058148465526496618956797558893535825433746934108598551417463772834582164487507335870187486243754142014492861441902719838789617142616802634465638684444550634293558904173470762447801254340830140416304190234134881605899064746315331560172402386655646955260304166306247695306366741062376869829994422090154481773532208592543581706029004970383580775577779536233162175668757086985087375779469241168320604386770409982532906969228501339199761515309737698367920726795190179515867305007511909359747102312388297655999674296572267104921869782379389755201903247831170905386253703201925839745592515503421801327338755296004022446378320681047223002960753947233977930391769128663295713794375648892093751706391871524229259508228167926565797410356842596878629559723859055831583868239403795721986901825094277790873223538349312584024392863347721552701484515995137952801008569307436267449876063801974791036854210683798072712684937287121029250046634832159064919459005864787835200321233956874584183806249698448286438592993585742353972507482271289626617013550771144946283842044152765456233052292836782089835137765051459407787525538551196785134835580041339809465177485141657879661735528625968616632735031341346955880366500908611102316577179434380737772604736772770542254975438392438614348490451439285173599939392623588358207768978493428799575729695800548304462761555588409158797479115186326903772464684211643524960262246070130107530297006308968147400486635789818978564905489990387540164301639724169076725188167318357334338756549833123655300265821214151900195259490734473501787463133601819610639682661674850673400692789338182807427242891126014289898243298502033946625948389494932459962548376546275071279547740044367895621511455918181091917504576467117593617450638380889365908800311033760989169042599614984632209554495901299241303921993159246599905494715748047045281504572040635955650816325802533016094391160140849460446353067730417631189130054834402960908983349402988843321550993171403703217986208124242232984126210414625176979320202120730650264393089197061564973390952163582334176533554137808249475609730922421575785628200407888857652811405603248752741636771333937829504077253294240277274410226154276126396420563211528833445761929880601701502062561613945349769196982945620027552664405333902232858535090881361426791933760809989798218796270484341328026436976005951679601440058951425037236982768034032248227419122306754055455994713695035514276342799489080063603517458922196899379354775334876258489822674748126313706853909105670811564077481962112768992580800838327478185987673632975605650458338712629658666863425473393486116849325844933417191289313575082368185660429012455357406490041843233692271450683514233967775549270030513631578559796781064738096909226389525128791638758849494586764130828415975930919384812244873897197566039469290501432824126908526140452553067511879168037709837252759433836853614432637135522975103574222895182568639179533697271838053491827212988740771594113207436787942427267897607721209950561668484210470394823357676660284942307321602536855754176457129654037470565473730585312564770391742454627857451183599102973962611061422615025285555628218000957077482392587141000986105099924590502089507713174851317494734102382637252569736323953507319940591270282211853260102313423748556298861805135419634520711639910611136263383404427997668109122760499872756284025346725666668057100982944229147731487566474728972462177799092578541553514518887101734567303535710649788316677724415692709884511737530151987871161320578181109843816784806191481856180723991106273417959172010474469838381493162272688703929503898430074580877762683321222343294137606099081331785069354701298073442149816614875783076055987436536138237347655945233963326134911064977726343811252588891224146988166249619298507103584719798278109564942167590331891957801126252400607778516675859575131803925330091743434839523573589709047832322692875058746455856184594325120624996160616788252409225205759911444828107057404165324322012603264340393651884374837925309238642116120200462004100569589846360321431575961900001668763216958024961951280041699311198442296024758983719402476083061412880572306674642153384988525984528543221842026669544554696518283934703235344072575599300810250687934550848759161697797280924615209882028798729668433272052157433833705803750024676370693665200580627919425109068680095909347850841770433581063321654703728623568350542743712948215847413947495450392204718100408056877330146215773452517929078192171090693057584169519006187306531908919004130977321736033014943009708793610968636052802742956654564966783697868452176734505693077629597678991541829807962849683325136842041342755199185776079634217137949602202267159811664699044850450142740925226994013182113664773432000526621950335551876996527566156182788018210671434135789358230696171308552516438084435854581709707581720551057486865273891956984031992900178414904940355818367508343663141561180378165309887955022664112486195906184605280358356883780669907454185270805628738024150151469638013749197332990601717340398193069553449256448718563021438112402479380859699134074615659247491675892348804760526015899782191725758387223356644587426228613865543053640224422768156642924322495281512328619817513916200276423130030824739147614726333064695627412407661961509121250477258190032511251904553252180595283313353070439594385502408603882899101624795517238439800467142546349329221336331422002432536767072126637611041563067561541786877609082969684515192591342530626217702659929622632287598193977590402336157693592782211037822285356539577574554297607499263418790007823694476780250353486049010024136596983789931988345773724905359365573348626890897333843042908757570654591748004633781619438466366598488170863792772636957388361956022126352021752605895645811570138022147864268436559714945026833771756058275739759065615799649278029631526499330124039162255585232443398781019629392964758709582819587501771552625219700818070269019701269006507894550948806984825284667795599212388947551051159074257291526642168291442935565748436745161629081054496430211456875076694855166876186534123650672809795520265251248546258138604236229930424419862560649142222506256935353826823536579869116274154043664295206873864971874725564597720056913866537721723436774713429221813137296740579939789008546772786658934680064314477625590697491629253772954594414016929885735963745635522228347524180865546544905025934718061953912972281606860162360724354456371051720366676942271739525070150968604581942502826478604040899010666899424651379790798348303326021390053657793004038407781030337701545199933123252462422265549593220134929417436218531927059373110048514226674134651192135237869144902729788073432115044009619878556690377323525120280290404661725303450634441707557669911164066769122504838349174935824833923032787097105300337780383582675590854016637151947915332665166829530259685497803211325728469007220669241476650140261939478269600634445190679948903968925592063688383381051018928520877149432690479460968925103692607480098752486910995941361991771633205790558355676762368114864873573968988239047515118892038660444178245489425314869604312958136742370584137236051604809216426721129408758068580684452807817040858828153472126055947971623324503102813461956330419196476393746019582568688157077835230393487997023985335324236918958055203213313856862845511746392276136935711852679079926771256025975713189277099654665927965596756165423143776893591364983851974570684773793283437950189570955677244435034884675987582779843968018185138971160643125642476872437699143555178606806289529345458441171091933089703553052079455123029094084486781307837983209104190847822235848148061778909783175305363074817972197667988496436786147832915995543401686963622379443447026569006348491308160358831010626586545254668630415879843072818509058567917508577340354986777062422733795064066314649244993481375970255950879776603135541867312933568918562303018782044175410580075570087424563342286441382502144622501237656050343808305854759090250541551485067221594694154991076740980211421731545014695707504088602333524110526459354162724958996677267132419630585558181079066242496912951551567514403753804504591857913986037177029624852766309072902065505783197678813234995143669526967157714555294550736263241601611217978085547128996704463076547563615043647771957439127383763010941260156283333468504905648477772786738809338749070500002368751533545914038515038883556248158374902372964251116583751684533169219160292893003671798048667844020152665600403173258835638251622099701571210631868162100185843563909862111966616778886234534351993346023802800104101992358227518235998866579302455153496781279406345506516682825264328294694134430074089256980404723660208509780506177948486789046734728456969997557934132305174411719491487395500985227409815735441130689970267040869221661717861940754373494568662710099292616413807806846081929561996648089232141865579554149853505701562343882013200145631564364475705014914313695060317430950765445772463719428496714127025883624482051872529097483446082153902008803304103764644950267071176703871809660961240513494797442702910969984356571859880789814261133709397692813779334710628338573138912619186709679366687539783480337627755511700381239440789452856028670223271409405544155037910334376099212961945691426677294794972541688152958339180630450889392978319819500819640220751808913293500693839668935003347032735438704380395644612100559614331049332426803686381550655762391913541085188740807988117880639747486921453534476126914142447933243661788755260207670794318934387174154939776888891849339119457997059514708392235651874584350132607500671337852825690550863008844495258258759618655507768608308621926831638684341912314327355206339164459262145730566470479925485981925322338333251675701525408007033184774274805162754766875808379315654330739994614494235536234203212316901106084580348135403127678520505254496363013897011029710433423658251740618744466943601940885611664723865564435650139552854309516439770556775242432451210628429083701484387647677865975865697789159150104226323305797924933035736189375898913936956986596614079731458287279168694892726846962270955346321953367819886130512267728891688268561252905343595733889966982905938699618117058773777949200198302887558233989266394190520778841482738734991904553389169080722763449811301483381818282819401740909664503037827689562994727243883220545346274232346221234820481189026953681476019726376697711443121086372413267875770203147284865866548209952293136977965031689703908866533655675098712976811877380655902642732163194957993935867589276332198333586090523337380320176907043366709860008960304496616104910562011494712050610672277136473431151754037277112947819766428203467642503983159690555529018378044413598222373244455708966387777992004508497921811973503028112536438212066990756846038875662951984416180202757490587245913811669328525815056482206049759416504953703448032993868370228453898043379908895627643849515698326134111653614976684639279110685528729469501917134880252649623443788059869256391066020912464365768301591331878405102317746587888774556399789725467891607481159240506036068007015096806137474171781359104935501203475924151175106002491016047600521419420214645042088828316397436989353160845462016859767482357872980910960153333836543833315407734741583214422243556023292096367864791110962765501008391350219201817489661560804218161335969757557182748601438334993131013333673142869853880460564629333178216523467217177233990002400269726932410467939164041105739021279560982758123021068316635083008731537045302850087909663204792831707737410955158779260731352418472856881918034824143481086834035665744056472753724580400501288321982733747823437074008307567137621652928893325628410182940352556412621576291161343146707106661565453396255411102289811135115319412990610961361039918720023071618164090063168390143203448394644132540320973424597053552432380494979145640321206183949587173717083508256430360000525453223793892320369492706164659752875343953044708352151719715933067700317374364531370911177732840884016570162577626216652504088408304546562353354320947609873464653722608323975094250664813087295972367220904088765249785972441239955586685729952062175381252393093284406705719777213585408265057860681325538631159629576408515179181660871481643191062770424707320608087748195658139500959277514424812429130789043586013009561633597034100973370045026147162781704093505313751962059886985505201837080221530981727497386171916500950652980197305372944777153882967427089274113901527367583744375883516746188752700098629731141364841904417493582512991666456151725283068320396383988570221488848888776401780108590418623412284216321881278015936032576182416742534097151300111711271620085041504112546997169891775537848325782818917904400305338904059649372154303038834762884570632991948575215678069866953261152961960328158189837227608968151935363688947579469014539387933946630754213231418914992363285657045268857515583406919087868657824943937926817005913790820040741433650262776406834642673418189386044309070689787388296435863044836727531669726155646034876942412546873172210866593220274778421648271903104689215830982382988938117469599639123622305837619506858058064228124674382207900212077180863361882698754806690670337426004832089493708632442126943929174563517528000614975880661098747419159105878122174474524178680745197686285215416336511549407172066441859067037743022735467555908561366485674733125864884063358792408575572478996813868891663724418753672675943900702773133415985011291267702973151862569462108920735305867736992976235963797361389763865073060095254520200220024973251599459679011230048212534018916578977404785363489971898046169580762720846805494825439943250711765659463219676730310627057318055680908632147269035633271843520464760231941538010983652577503179512058823097940324560188796178131728709085327985692674062326630561617277910516735571799871156837578203048523057743449274540345725415304486665439619622891608943769998978872205501408798596904366732491013089147324429575742986969724025779601805738388851831898485580797902774476688993378430765648923032035144266439878016111639101656943528852379512508367849281905184801204485218219267260841881076723022544934379950324084937669413786034204064348261436961062107401529039804221905217875696458530009094537762615412863888415433571892376981600111987838289286111407775065401926413899386766133027669505423663297635044185695818154249215721441330968277445213825070745901123755519318618494681008408687276709113979525546947238979793072497352797863929411460640956190362236391265168969348358714393673803873046666122565476001898136189503872617368951990592188507453050482930869830874018697501668384728095662651425096177301575965363701556401735131274807130722821247557593232166636579504373675206686454005585084162227342759171114478561901378994564918572650155560150749492111454043356490805586240263626065559433444806045956988043144852497953770510784080276343823212440490542064722406076484404508748649074759676825970165729316554341956392105397028288583426922381764522855107870076689994828631223982494681211791661880215649090871463686461331112847204376997284031643366692225318324627552991661523622224712988058468748706410448814719460230080078960436346067513660070232946893666738213209760098296045191315100941592230243378368729547092303468212449180547188907470460262009915021556310305183756340091510552883197743599044782895817853977455087984404319677950657994781681206665710461831067788882889223757804326381366180648227218540902534837234880234754875187612004184252685294796202067130360022280609857701566494793417058178652285006814120728779498719600411894597034050058921136103309331240285781501468868614136632592637300318021033242936893198489183162506159822442985828958049007571490445691150100570833656816073026500492722845776387431199377091171586311365997808093159069702363792119819357943641069017640624600784390152288692296567435038300483945399794882165204515474269591267681246112656731700731025891498410468751439428412142841913253152005841560188808978544322474564002160422778051794376783929922027149478902428307999350719879438774135066126374219213974223944278193830008680431976001141906055924392121753663124204776217593692390778942464818452042110477405589412684981075445100619929839178613856326342501161389489555591334531731882553318721234530489274580346206695180896509967410391572542352046073237949654022899858117820107614696573504698031782651332099890100708767027145215314117082155024135848343163475869141272587833191006441902717429469836426358232067729828766369434984214064162878295741831633517357012597325007662162828010321146564009795907504937714913117265853918766418034423479564715899849601856401402895348275214624372463633781777700357229869525085949132407974090537833746337447876305427552260874990503758711103584265579026867547284418755637421201387598031971743824027248962012629340236626518254785309309250053374637399083384321083746897719768559985495213787603330638128967328719199632048840471597682036765212827104566416472752524720366289867549633267808438264023808902585713141986239422746814131774186236225838067315087690625369190816541576814389822776607927588530469928980184025149447841563048207214770075520379837002334844316007576429339969287801904312504532076335261838277915442121102198200736236401409431819815665172591342329857575823125065882566255982762269686687796354700540075734734240111268364910876170284372579630217264437118449730510304259605958765986872200167450851738090777144982909713656480508340267341266140096773096741084466459705878293097380717717178895407651799467250157460033563889788310008059650268440474024545685830865347017001328633543023776967965249013136381330057743425695107119174379755297198383631177497409240174682638174775743685738042289358140941330510534437048445812181012989333115245568322236684271855934490809955530676526447521405506387118752166834223187022045235313435274670775731635951061848625909864974267697558888959281174874132399338573810855634086387984233488923378546528437984888827932912916729358901165057230681885413962109935632829325598615372392683490762569962647528496976461384223860990875828142047905307999783852807738308425665617063406762536807569692078893008808907552572043754325371547721135668613304080266107634833808800703917869914952668144064639220648683255632624337084475187137412868015838072122211462632295066822174094692602729158724110697497120338398595336889684795325221881062979925033402501889420365348643320253180064149507699626727405619590716787158147164906884532335357931839752880039180061139061628846374320753970242017155874986185776310748999573824006040594368403436937904427013695287902585466338171300948057722573813760653175246044081654350136354031304972013647680635598612157063038759332129618341918321244817267369959793646330777225655863980450168906211512836829808956691668134534114672876612013570892411993595259753437335671731462305304750590105344010140308375915230027572811700279276987626934595204085061931268683044872150784306984681030185040096923136060400778061436504822993767622324410471633710048504546987732499021133292558685607280508416904014079575742037732408263020136385542100964974998263752789431526143013702204378184899204290185172219937637936784106917140813560136329048637269490385078905521725246651082266691118733782472052157258141517681485346225583243735764066017005091920616659626961136133966589594598509443231637710419621157082105958294055250379149717091335663218473207301470114718763380328396128269972999679136356338422406861652492289924237413349525801357467495362020307667969247090780412411049557430811033079016643947024226149563208706975223802050971045459202018888423571963076863949691645199330257731069907828013135699537214527084634759182267818687981138242575256732473308777553492432367290300759843166081234348487994723973047368631436633771590733845293448081261880281653156780191822457591635128908051253212907011833974357468440686418902434032569712521091154131770509489733720446603429245390424222068576034564335802221755882849723981148336069651931977500722203488921422825137927706544116526373594289891862920055626194505307523975816768602475348315805238953350093962141829531875773687327813814160013579538099690033071535812708284018452100935832168155449486659915770879966529845998828003818641583086996142372150075282863769676082741699103295426488185973882803593204062959906938173280214498994152959973616571930579358473130520215588184034819805337689530166066674724134721957912147673047413584188008844928382826176398364659109263329182921069500928113451796348202580789837571982469594802738660616314442983820555603118266959011692382649806426054385460747085814639626908654054832767381588634196054247444834971099786137072594362045173970976086030818846368956045456401693179987028853289422299901823865765273626610657781146158568561338504429796323479528137310834074559567770289930634294994374751317364214901152872533244405562869353522330857294113902327431589733148181134978513109826746348641373837804258348589258602611871002243320346506023191916648158465314134599986318582894172522054947861955403561063230754063107460226992717189320432207140390573305226210442896295764155016587626413834990170129015971625659041908092412339065274741736514681600757443925753372644374080021347474809511225491484534331893147486771332148770718519205451558165500557083580359614961117967252671273650604386897398746229576183187347968615466111776965058796832741269977047895792340307184090415921779047394500851012300556689954887139784129397035676000920671880312482724649663215947182155321699589676908943118010073667926424289764317560670495202999380699950600791098993908913816527986450928512991598694016247951337446743674600421493631811142212132012002005513298079156685593016668160460091066062395758152564450640327525366328020101805448528453058325225621684300618834128418119397204887680000104612562412466551373155494061057854491949720173426697829598063731774868871465397536154898120990091693492002358492704131867003776343127827902253029450278342706579688293512671238280957688527881432989649503016717540552790858720013436284658293604034305439368407379376812349247577073094457759019982705499391399915419800409749671358430742392564800068176140396848412326813521387564358286200539764214346291063953067023437946633571489103747362256798171980722467463337228378842404425797609741212323095830190686630038704340571106645157251135632138787221915090738426882103993908771419288011742682024497332443690754181266266434439163089597705810896927517996466023545329833454401928041389004058481417133226110913657515749006513194656796402039576472652138163419485906625221415539030996961176337567881198766564070934933923834311980000927577201540019886820025986931136121672081977313650492441420694005004660413606690299392469732748367597784260435039108133301067189816207700808485147754224855313119728318542091277338250743260393935818495898179655274791982810635920057718397971929000966640445006659463248850150247308103256446077413646309146420267648797541843490103347079106899026426838861086432403876850657665032084228959823202321057020012475691486473861993479761109264828815209138857589233145631973333023202191599085257516734028995841573071673726287858072056951975914681268362367285647793664020740741716434554354774718619746128881533315292890902204288211197235643386700380554687517974296774386421438980026510440533938928032919841410924045867613028166957413497189745074486770876415134395258982542975310908570449836926229858661013022152038744763206749426784408230230307147929696698189922939658862538521840532658147015711368380981509718737694474173664406230988164758770035663431650981979321063634059388807395126736994132941180835029353412089069891320852752415926023192726360221123470012710599470446407621471012389277744513394758481231340156539053172963271288138608756947537150485478763808495285097200769513289406588757334263234760545073749962852383338885025231283941361442607992561223502161055920152036372304484284452853759669239839620584691595271907491412632236756106840613049843570351639862206179119627308476166894946562401302981478812686303741988986931344763236214910437464885340659163943650589486772020405545362108523865063371664923505146831759756088544295373520137674919268094716894169587623173255872926364800109027685520991015710364364530464943063118052727594388768703060320148303023626262730858689695375119830086737164431612175035363552852201305990299423776076191952170369924679488937517615995675974443101393942358115768499688343856578745144984080861627502853124949657851393127249030022727713869598698865808144677672486675757849122354227227485721734140982260334492738340201192777884648300395739054098678577563532883275634936812205591939895298043189709683984319435056458047962948110223437016224819983023037971576208806553083306745910297259521088556207686159628672380633377078982098502247820359427214466113360965031224652427522046435017646112604318833549626195292841182319924260472733896692947933491517829172483137914382516654999755173423933794697539645757108980987332769246345474754606091264597129056802768069808372253057648059597268174077261444569516280032577425513095140607511159858928611119607872650021931373060583275650732960016836195614217907926762385676438369425191398176752208156832177952005403229750280487584341326368044133366918943380031643453353261142655270118966558206293867212158866658353024898455242695537332815981870591669734625820809823809282820200782869709322508988578564293521520275230641819597743265001832637281705610875920591265131369610400610942209245551219413344686925957052798661756651708065752428596709162807497106303899745667404068143076083541836727314868283949237886712542037874585768150166672830527792971140311570929077929526918959276994772543247411410562121322950931234645787938710548500297612044978558010362396174901959031416448344412303904323929245327245590447206108295825367627917290843555307035761777141811938300994467861050954596094915821172113820588787347020507059853080074206036430123113154391504618255424389316155809522307205191756127362505010273449877413285368004570224611265967667914090663892044657284692202587703869994937353607519628460945600180047519268544821033561074960996930917600736438398626376232710353963561083059256203945045254249370922788276409137139587668734105321397719210705790641713802698157537786697032653094264003106659571560272677969343415300033729524455672771632165575427418028722274447149539913599947897116188179743524325326308803183664858996932211302132121272669787083702481038931117897204592939362201247209059383045453021982752847252325949777706165576678905943961408778293978299789343706544773523038186809203782512796946427225112175118128209574179238263059306054913493315208057953699618902060216287348406108931722496531962342253440380679573284989564864676484300466270236416356605013548658350231343277618008661106459673277252120772907924527936836068240614473288473630775562705896802870432967580728284474691771251346466799790824377593233620010662154245016140624644759374185402506653454148266843406252286516840647652517752051284385303002741319507189683122400200241856906276932191615768725630204626186118503500987707533161159423697613788914301094612651778635191131114725508367484242470321407643324253626235915864600356980857411498933100453379920712670191094562589634882479905195098281951240237488996514065992404025410085867764588707700941074292498340591038689305042437633356922061201157925181386796355867286914034477276585917495875877593259645712118974927199415281645009789777144502057385233813025540346992127127883286803681909930708113091944674487831685431980044739680857834850890636652836292647944088142857661983501060958344475190016229141543437445916085899358799037069373549285108936883097434344569578744148402725449232538454435718186386739876206158646158396952081343311181928873608500958076012901112988219692998381587022752211841456287479845562678016183861103551529062171291923228659132709899641611187651412915464131701875024165683347551307404951080209750452035077520424181496503909353316759275332434377156472724854416082428268145919889840421269104377758869086549685432712717595509969953794324811437327142583667243032337858092111428079875221740136445391068704233799335252427834338919125525122580522783795526133082113005334100412598833637442624414835679903119418042012074249162264779152934606415624318285499540603567549606428177265926173130779378735169791388453056400833450224951140919889094783952519334031623302911965701962963863504187629659883692768435282540672756501001566030631107777094472475738036278670702375270718184003690101662796520885350485481679248294637256096079080978215371848823996277660306893292303293057409444184248284452741402079472219321884692770605148535937799617325305163132313550986879515671864259727234845944149531022150935554493933081953267208260287769631413807015613589310604327555592597595269893354023813215901691486690239882530030016255357537653296243117837777331127885919058218327170094408086706207902002787406889707833842417796804381688683744573573584664570532649060608741877042336564306221384270802079958742796822017246093910607738234354420093732564997729391145380518981935137076598512144143989858941858408402712689391551690293956141672425138623147988465186666108053800584648302485078158551603672301209235507048251727605872161742420567188191550958672171486283179329624926217867074493037888269301717495098515745349167887329103710708491168985144019236609554363926117271349095821147971582304305622756613054934131146930816697109190700716839058839106734384794961941619107086998230616276062231458588114871435065486681810942785614349756718584743641517584090314465292480671672596487164412667192514076038465653430590259408594156513738914576356193484504865081883415959446917396867989809071502143065109738354826252799434405853957068261504258604288767384708370861879165602294792516897999913259064320467945880067408526139077805631824737602567635527138282008984495155562509243604178805189785864289790616103740508704929082865240790468264570514770922113357207952474232458716597544909525244453026087588023131332706730677034869003282043096620144734300141614494702555027794094926908350573074540585812881253401878199978160441291384202126271036858487529733704417817075402475122281026812496307217257078241912383964246351947712430093760040578356449194072374114903650616499495521229692703903201948498297515779805896954385309839263458259922327110768279595147478816209536532471772971640822767476937364166723991730022403896989887374427397660112525931187170773298126328207812234696005356488985882808738353410410468852193781288159067013238973403678018940001309879966082166971436407215948629732625658381688529178269177421548253830753133618824686787774568684681726440468376464189528035000855966420804382019320782199582549280329419545363267463699696951974242005435598234830268096803904302488951646161206508007350219329892993434044169316621511215350977534098837253205746158369768752009319415709314526726590760105991607416028535079016059188551451713267007264726642851676021874257501436892233132044722850913637573460386324705823723924930628367168760802512285387958610921939377511594992785760344775280426674176751479279381522422664279929005780227159427176414547873301361191323638129137296404603477283670825725609438735994022366980090348212231733730483615753997756938779794846417264249383522207891554452652226278694238459040224000181368014647262288289426314796911563985484717847784449683711916250866741254405898672040178874263464871720674704616108465424737356490205425075566545895098992430309608097273410289551921030872218922552640454478061125598771748686509889017141495198690407562984120561527378665012519734184270917938257755045940291888991359299479351736639990656355853945921781320340257841071508908242465957024435155940179440432185014636586967638036024983592468352502518722110696174004502091526434259576714204977279198980048444641936842447226972268494767056066538798211057285483569839020060009442466930178754339996477176754692892446653148842877708874717705190785734497521940030746266975300973465001306724849980984111736454232096597646074910565518040157602442846143918865166319882591244840558838855941444474168625993696736691948506369073701631284752785558115468869900569522674635231300229103847020948805130485287295319882731970256777302962136518707791040965839138210854283652952345115837884737215328240379592291003446890947733912628041372425027844818164869740379776051554853374182904003826486405053629766308553838753195854295084893211818458436539582957376666920341759397845086963171965711594239518020237005445669350612666296068923241749954980546562079730938030096117896850032443263673860819659974394282354438800727476065140308092829760508509041970729752265094419656302062102817249844328143617476260637176670899242137832157264652434211109681741896061282739003948547010005276307684378836822009984212288214648975442974177098239408877887302113741095021903533978582305270985063585007328522467077770425483735232427132153564385820143890546839408778032302538108260820324661571264222706973760989658758401514785151353741629110399965179897307876588536293804445666495246514376328036005287554324623517914959316016227373876136829262340609007250324618459341861031219260421921562491698702640179650683190277492481751264013331577019316566117556810278895714257527358397294606859052936038027933702069464403479341681264803998902539177555230912060806558394142118796835781308487129793214418003539215180567414907612197141567735525591998406709396941874867053802072206563511666093417631237515871330928445566079520181940869462947218114862378104495893580053641266527229161858637935008094992160230610304032390408351542722149274533047038882984025987529460400108445468134025913686610304629421572201003735697815883663747726308250185754502564024093951843238321778763628224930681538362493189254685723056501634456402974980064010321699088138899795698356068800690198153529630852706442406146614003958037455697732669692019221569526281277303321654844944158504569099211953840537787181052203304510153065389398257139207195503103123022969971473888690819338102709739922213189599459590742355255213696979971379195457557690911107636766476076677606943756812344234698012065675104686290422164074298669780756898135518036358558905617985064207631622030129597855945026119893139183969455956834422529027260352746378505735821345582438259036214152241545173790132800518941140132077140947028459555739866164874145906145464020746964381226973723519513196505447178896450331325313880381686644801952846712768322329341000795228458982431649638530908475497865161901915252988057300398407629208836498292651545874863388915119061106752348506891144857211079690861560899220545325682881839266488315380495034554046325538496439638145567589130687106795474196898613714712776245105020885472368532098370143869145222653186035084055655456640941161359218638723322542692383692109927397644838823217602991055239287999856269056315831648280569683843147432126072747007396615262323788249953040091161140283588687422002932015085065690509128769960767180586737344592555155503028586973168861769933210157268028854925594298746817928640156826002158318888428237263476223031899306479447802848667455765777323576880417743241796475311555806857247780367954842550405502449128505095488274846946811099544572828217811110022776314483231939836631635517801973182922187963607139371255429575293511139133170478617674285508329801278628638656434901995365023855525880518758224053752899024323068875824315300608653837486333467676801277879974663300639087310161986059806272764815894642286719251412970910846852163293257776568701736582965423578951568691011575570805461279919235065656520750300107212669402236591185499181953388879941695830160578898706040966612471813522970364309250313229420509618709544286231069594664253215575282843084620330115689586761985167154865231807524233752477794718992110546951665614878368044080106089073191055371505561224500136483292332383197086262818308753555525504351454448673540539645752477240837026891823323813334471591107788451247702855053127860848285841931128575139329646115630661897806799775878476308739342802336752587686672891168180478505615148403490062738334806575609498229027306144609316506073112044518344364500275631668857507516337658382347188460191016923490589753789647722262097833804976747359501399784718612922761385627006282152139613981404109024157833127740877925150897941009968622074504740850718066433976206612754173097806299624311250285147997949154596922996862590241511882336989284578994988149898456352028584522598890746346742342964082704184634352626583010308026187361803323640963822914795196775230706027073571473200878789846441009143423936776764172746238490203533206877300250399175664060384547388564634190104452165181399180531758456151030081234340560105539339242653274689656330975142259212530946156286378641604614631470613590079551483294569871630979257694777232651934489836600022687680600532986458487389338914259715466290488603012153451916694099367313318117606105455143777409949569896637319790663349842925915108124637654087412597017142792398297769109856758017561368939860718221315949282439513466972273899869220575731952808522334195176541711366179879959587089312103378814430949442834010938719701557697758729803179973227529565781906317515605214774255607690758513644456239441152017473499755596997827161350613805858510048810822154115111068119759653080238651943620486269814861527648674976356485725527468844921574493934077165628063165249278431634882159926257719569517734583225777766994047582958226607078684832729096717640733767266583179994084759127149357223157279120980594201978987134202227491917615012022420928822097441906566575814050494877244955108336365338026710960968567749296831525334225752112563909345751433199137442455139343746946846603861409484495152711077710491332313562361715108978249635769490059125424126689699612704498320306137241375184525169001366457481978063922729948545586364154130747398239830856607974163096876081936655716053248993791394040231557705856999494399641606961853436124573105186083970240456878876182754481745834746885128114091690210256396788291100848568493971244747482589649439314601268047274312002562824917903617049736559574552702558875141807263037358236432871555964167081042074513296383192374112570830766372083712006731879137174323732839240301687959911999181597789974721747480247191852242542275095136104642490297918076786694133214589179031378907595119927026684376192831581430185321581526125938163650163385965598870909334550824935698825477428841044828000679670047559879385076365337695611310294782756077619917708657765640181636418065548329227961453648394462956165330494210366061208813300095001195842632940798309522085548157484862783238823808602050040298946068720664557177271499957083794019544447423869651775278336555252795214153089554828650536295602790844348627491141530375209363131790043297927564185842868400714016992483661259071859689941663125789822702073164755273648642307344121185982261773330410444929257460356650287787668923583441969727346201789390275779182583106886670060488487142740759542133471737630372255341673441854430726209583021482928913335571127564272018145347706360520352747894142087067172716306091903739515312012910994391189977535686007706160040316731902113579509485260702629986418246163400588848545829420322000949647945119399063671974821993304940319311272282170680210418807740141143199374360734656650910636902274093700181013008291015536903234006445342217943184947369264650180279608122810859981923229555572962945435200077128841724100767568855083224133833494683287227759242863994772505778751490599147948014332985921929731391046443671413145830854460219155603589621718792760568396123260462199088253088934960014109931399176482997226741078891053001686137255433214799497782801249519658694903923570599399139659133733298403452185774872720945154316184707184263270309218511850317697139909104184435523740069944523324814538336070980900522380370117819817472301508709663117242929468658407122948755820312007573191267802700758292119844589420396941100816317860201634990147745648299675084467208320097842408513252459144228632302824839723336785631010971732180600707357901388268476507495269146679865864993439107197073549526219848777882581212746801352547454627713390703294732726355583057958951402200572167072239694383434268483450295878558836484490632031324079032746282543417992285478889194041433891916171160140115098757375017877110637401832419117866845110349034106626136169385163225461779264249768068730989156203796889468973368662023234999856096349641568682093836986127574550161559304941847726693536632077274010620598603117633365657916085903181361625772565826706329561585003236189263901672040492127684908185578697902882427517506621244108074171682027965998734794154983206051976895433537562096182648348894412452953423460312004450073952831748210350507975975963671355959244076989578814174112550439192723826711513818229567140525234323873132645119369136313153268840816548437399307614629536139133917648659252291465250540586107563197882885321514213254017451663577359335347963937468944227110207898483875685704082300463566784023803107609494219329845695385368996726275781692196256736329625814177781026688538874937931496601469727625562066121449693040062532869176877223056612234994693812107726655866496264518312394914964478032221106658768956584387780354306512722463789699492471421469093011378335835349672112173820644550523659711689945354360730229555361169825876253565927190404069799009097566958072009827427897977583466191364956986516066449580046571847251546937711249772055492569866160117092155908594202618358088966804366932366756612316061841549018190166094694665671033078309432164263000225819565851738736325335305279289171231493173784769562550025619197091261637779634376079830524791428375185929543033839106968420080658896180853368987810919285331834109470101458911089090706384246557561728496185313710990237759102000670641772582146029179648779338968251826641406095555025092420207300215378787859766662317847564343413690980802091502255582662343058798963416029952335688765568592858878481795932107692746582964712897409607591903759888339057029475582123055149782155553414724084820083024047019916262946155263922027818370385271422550528380008813548715490601701405217405342787938845660740612804398132818491897072237552563548274409761753886198914545855079716709014352786972604255819334522996955554281329771066484519144674757588197878980388079875443843514311080428240730342589327069513798623151563625502055515645973001427897796372816460369446193451957458299465819050863071646515478775865524831378640628375972721621834919763433815161585270247775388821669392091350645899995389382466704290330697632985329622756464543856122720783783774996719907877926828182205967064305630602074676305339947888123200188445004336046659191582377657666524908659176040185653952054323224660090145722156599359533449344705142291875013513846225941843959032182970357886173410737722705946135038172249964852704168779012768341291272764931737826076768067367241747575338595160956208711181118870703462417260162787595123429991210561524615031709772025243238108283140435484714633025095616719807247557310270417714245544924649489188005103408345791633747139137455164381698323634122512091098031933816004295617096769940692862577660316061025491405897478317493984757071810698220557597101391717089797545253368333803327287289691376764132265086800256929593035671308240534586447758165492553443989291606116926612279540119877877489622986442974978897683303901681964668217934142807055875945897538292230187557810973046006509180424993154635550732825380373172264196010838683204420431960137356448372302787189819514584968226858172244242533475437777275158984016012316653383887886773425310983051317000113749738343525056917433054531359529179081497148912951366551856582549020031329550960552127156654528225358612063872246658918670063529835728589740456361193806374085022796174510573545948659036309576626804482332552368737769448246835016534369105830515717546346519203983741310845607249726843635674413507902611593807675642532535251241719697034295215886860012338050649649552224140761406299380350457278635604931476920004456312927422000014589295088072331429652265368110215216314132034000791229241668495816379876416643339273554596006865910433526533787453310491843407046471355370639569196885566686892266354905807118937252982588311293958717408854464576156571715518010118505222541579037562360833962885166952641200440600128884527843104039965832967661638357208313913496887134536176718465657835316556716538029296358113794191330117688014172806214354756061726634074326950372414596872892466933470144073372519816847065855079608418387389635698077883430707093470538747266481492206605612156899516842720670490629107987047351532686363421654316194733520618254941357639292437329132155981942638180367139572409397157819546123891143678088411165880007717051039921560566648003923205192273823195960614267262734040336263452420817797835844255504309240798908367941614006903548562374147573102679074670116327691397356681161393026107143979456597783309616354897367342670349086510888493535689144283573066154282906103279868984540936047606326276944995378018857397718752638199047939739235025428342573619583644073751246461337254760707535804051840615306796658291933136767667817130961000055668960546125894447168136263277016725868352527636115276442293311723653735013327297858101529012419130720998423968347373107606184529321561136459770628924933502585501366061756488886635188304263318046784800798224248942262140108192249318857856475961818381748421510659927349249332658382127251868680579910578586288449493409148699119389223362925236302603722048638475881351070218465842369241441152399625020740894693504739160529358648790286679905329972714924240993202408764772766480751452341694508590237222828570463102284954425859405729012182376917951427324308724133923475962387341553435393743803852541297585685814224716235481827997921133651982819497468309730726948094017893021518429345296142720903907412104937763141697458291342149975966886408015881217463513082051692441137944267479168312197155670810665830046282527777694170241590477110904306359782792211303832148759285143500698930740097062530103053605607766218224432439665679727735284774335383336156177892220615426261710475855802656495161199006966275205603573034482190440044340631413521051942852780491071112144439577313423552021933735977704505493757106380380513338778517212386368361463101890371632365502775475106771864248698560996318038626130393656482893264705117469309987971047843630405066397763845278353071293303613141896875849814858270329122360334950078560073113104584608285883154373590132256111837457516668278001504343032003585197765178794680644415769791333871603845043677200493926253960993337453526718059212771815819139959924498803085338294142246584495437205528826677472974978454282183881950792315958926114382784607647653816464254827662412725236813324812726875845931776379677164715423798919810788834534897398200537300987630552153922177966535306003335772722128138422319518458132641891369594766641886805974720130025382194841007429164082800637289076240315097245932110580436867582158062530806960906108819705244716038196261847222476408087780537341409590618231869906206107870121026599360446487992072848375715443429800776090703660205363825121171693029315835833785390561245877210640136556346898893538489113614327303439774972790895101431475394559420602252408940132719962129933397471698496532279921506440803384842571932243641276260630246800441593424519406831268115801530927642654863050409709864877793102440518661911678970438868402568885863060478146212743526649795687037784622349188245981385505120584104731493163955485382585475320339895766469269483012748758732592475634320429778227503291924081878525873618326108370328746797151908016131509359295237112907198021003234927421978421748543292217303669329676760956502196874046001331797326200898298712274020136277213644671594539678160090743588927059994543902248102509178401637577666131628486647537207323286060967655205998264802330133235153864293892422140767556334000369061364768704152190681103446209205642815684003859048571041232827734295613038307402875452477090241727966295877326787028424486265031295671724008410465867514990588566637382136461349770685763962908686757106543361146523611632701349170913532750236050532472746874359978494076979370580257570769800644843518181277220378051631764509015808439497927406931867531865047242282316462216194274715576485074448551920260478499770919318347014264365936317908715644715089535726459849482238013627932691283406821122633193228233498295258421099368932274678568825950510622409302725183645448169326001142781863117961428327329014257854595141803473019340139568094291408954156436540910525874753087476010811024468721372308261485166576411886517203170671997951754768591790440549717136570596733635754745668512531632966730624575398626362806003906416775715805438902356590829922678705576552960493958925558288001685180828460924474346994378983878895388513202607150579938904001840236278981634856158572961541659270613026759176924599337740827883996377575877993286533786184378013206196354320688547457566918651852513934522337448952573441769445459133506135828172895182786757904242135592959462221783647822839014329679141341240561182788203348309249641086499660125023427693270036285995627200291854279114243370009902484149432423457124042319152640661667886438639311567183136358158968707132531929922789112674667630393895159532572543856541806890790381515894777671076528567521955152008576747820759479321593214735803077955979677970232173764376655543348650096722478026462635072806248796856525580623605542151782144965893459943473922429513468874226049684681256104158424718572797502031549456595794567076975754891531963604002027500376346207056758732307176201519759736338880721820039093260579656063057650513676967530864657228087887528055993460660168212154214591002243910247033963395746693037797695297714101718720834612903452900274999532485306831558158520841787854526240274991991094545818766860475902520577641447120667489663761925399136203620025834123411220978481937846130373458999100269485469058645097736627745395139008852608448769303398911461873315508012469886340122886428767335313445850376063549670263861304518159009454609796520175364033026762150524468066986805209338470167770767379144321506118619202675410494372930674473075506403825651083058834624062819511564704522947739326038549473734244891436561978956256224204721707832830679331961436691115718950520986691734258364814668399815275243879020960689561064735740140435821349730991697257974938427194977154921407477457742970032208349019920393411784149975688843292332121692956347134031435498844150626628097900066212391363522567595534693772648791860328890498672865179192134013692307301912823357426119814855047669497324866674421728156848680032702977301041744588780370758015639675626181048739019834121340381278746473814687855332687340159511261285031044689928514276264638405884240085294149662047819706182481292397798603373194200936391501076140314982450824384026282710664695403349576144216761045120071719107378916626964090022462695677439570610441681291725105849119611573508112186277328654970774148464523667143233328144090539999111249388120648552117898357790385030265566079242172914901538482106736928089933072565384788570922590145318501084031131779712078212301309508467107122972624549533179890116121938078846544687808679832988496142862679667412690154013608275127227168221230820954062929511812732703595144883703173772418722807002671790724621809916549013964686209361924769897474989748677642875197644131860009930599073350108139798971316789194876442576627498943778536187143877258199621178471284895771118487295995378588334051944925642189656796452740418415863791152747381717297408899881596904146280747489338175485190839051972869918888825840125866764057523199008742675847671194651735646101964573122161371113352533575184791322690532248602147840431200075916523824529689690724765180991949573742691043351584460750129732436423304668038668281589404942289303758339466864798987240561929584293699621563709177353545920055350413988314781449062705065831636955990538769423712264427749055735298614168540992551978560039834972437253669366135244155513316455013943852201868996424232884562214153113562596091382362406776022585344811704409409053371439682768179611728895653307042214170601178175645596634683467360795334925913204767932077191609814060480001751585321163501210437929961661172916459493213127403672849996316261235303459063353682277015018527932987580844234469791939016559876627545683235906040799601429149805684664251632179602035640650233820101105887919233947570614253151264186413744035916112278059351446964393973470634729612384109221017658359605239459573062816016853682459435470312262637215058175143012058500339227687523614562172144794509484616973065923991263460732086858487562623543721699879256139299559308986146246760277181366325098170655438221318061720023750578309236504827929752703773575501048525801434282391388914205052150446183058662096667198362397815581186966071006615287162375536051403628848100438496878867224801935730245940715528267779153629651935156200050330902464488729027841407225249177467939517032816986008317683317206408239424892118801073092988504328872849800297533613082276044448072446559639839308748077220368070495987878900405679593897605679043105766097024331292045986808627277441441619468217343860031142427289209980051467545813945860434933654525611499502086947634668568460145723499878142763452053754186879622945926049603456819205112169414331877880202269437597597849918893014125068813429398159669267434827336216189618376846175863384119292669013530783911654541455025174843361634018421051690811608929324777684215526404713734375594751981339860890266962857657815949686611587689986296207345071158768360419680817320417328360520757544335869984194836857626062636992670773332231165814518199850605062163206927180536573694951590559923133200136716579814761289367878405022523828340222951297824562811320312213489685476954727876464007218116024685715304334494067534069044339030286753598119125716454624081166087342423898248871531735062817820585836748390357818482396349810239184710201363505948167052528398924874558726769805654681431840097592981737823869663638942393597481197839589158152164723280680374228598044900577934510577929246457642989576284026811686463974625473751320559632153188037041794324841816431362406855231705174096525582413915562909750950687478414489294954993626028996259276110948036518171010881222555443232577965075312208202498505695746761224283157454512533243139197318283091258527353688199398234433784188946248986482175905751911997748858189761591533999737827152126949611711734646225523473072919173005063584560702597252962088160742748735009210484229794324929338150664696270377197328240765320239555350618011439203917112940277783468129532414774388586686356302538518952386224460494757353949367142532175758497351793360512637808584394775540984155530046968943882573291340371615025579848145771830370906425318220802097428872101952304435393388076169504806729555152964026913510729333426742640441665681187944743688142218316050378754373848929066225666585128951231000078464227831591018050983797263134696805649651352017425501821661017775415628154211279713156201309581768822792339150159765076542709103710576691772120659665515125849137055719315445748600925839546417064860308153383473506050249335951163214025670669524673207707399620432107965471500410880895643513164288977392259840089955559486147119319550124957472161526873216091120739050101792058077273521356817938266288563016852021387729554491949246901494164716861267778695897267773030417784488002184726781200417661018613670971720653386435798204256986304164721897914430748316122566735892857926218361957357306746067075233017605684639499453856711625151844340597428537698085618094106003285663430994710736873820745899271855030234313205439412679447841083740400936888701182579814903606727273998345732495995295856050173805174532481399059577095674412097914175539404755923640851449061851242787061825604823880016216996653602510031241556061402575457925738871838197054485286523674044148357560812775102207971912268596535001118989639424254205217687577119478495315634081491195162980151053789030959343903842199677911312218668225579703144353254583791592906873726629770470631691548599335644297769492028337119501643116891184644901354220194771386634928706216646268320275853579926919865576156010519451466125665865716362923085357592357702215887429937540120039793093512833169331252895395431691473433445362826905401842316088259183980391922070847337036994557162855825678313865719602961510451698955379057192799452318162536650113632228926926647538933607883633339236683212524170154555153713890943337868455704315683262208124161205416016498707466270769915085169778281992434754318353125756120365325336721832766996348200651306644701639291304634401274610498152736954288221132530295057522530976101120925200541556107097638503092855125638295470034239609752910983390224287858825070629291080984610337564609335952872411445221957468708904644432821457869655331250763010237781932741958776121026428875065190576122491741673324540622903683073604010058255931966142286062649394900527969281758849021792059083110689163303631406021772875150479548821391736594746435248561925307195637255654804580504795752244517796040192996494443442157803127206301867062571462415725190752084539891899709426315053590191085712053009933253304723416944197015996833741757031690605175096654666354042251208785174657216108007998710313690812453571167666096136985940421696273614489286605394725408988877550364083797763529287705445540861006223455394055343492244833776594039095988066869591037169668711799431705005548757571939792175616070212778717101890166018587887148655901295895216641153827399332960282079627101888550640695950772740399214549881282651814982846784927375363671065316381868854765911593073494080167948282777729570125625466123617997899438451963646328361841172197430905679917698151848530186124449588522906932997142186725961793249276105560296619017742890636160318974439730314348684289762189904913845291911311590669311309733495419582669891861939913980633795448770816013082289561122577701513286348854722780981629722031942208878226579050665970692907205206327739943549506547890502669171024274066682763301591693611693243703434236373464346500234829837119730138741598194772292145895964543774328824163634505590537611928570700847647423459659159605962838473147395274812663470780740428519496115950221014012304844300052726749356554223723998189342258127497809040907848041501180754841556412350456640443924514246374247358305985416862657247918636099629980878983610097841695758201231201182731399686605843915709673170540420757140916904371079226153324678719256771397776113563098603389979445020186131698386767983437933002432109062699936605641999611038096021704804812435849921486883592599033055027338284024561093478807276048055406602679343786119513163710296555091667892279061374566273296420299033004881609998620551828881828410157351993396084320596975956350145594024751409255548378056739245439885786373389111950795353181802796561387296999927414929574595038268106671274915817486839876993039407976671224654383086273123903455215086492948785600361263898395332833976713017831018504963719824156952562541805633693946627006726507615046912645177918023949986636575724095174227556964142354547724530094781698131829009650480194619582745989779820056008138189053864826841586520907364911977278768671825528050525242736983143111011820765338857549873892222550151347142633925820648516713138606173975310677428662423408223207021136269819892173000310622595461071155624256952962405400129779854432739907522464643314600414357963055584853639400339829756931338472162435884629680017248604375238314816289666290869334185838855373373536717941083836103538026661565763801619436129416418219120917302275058309308536359705940901430466579553702863921143182621631766948256426964134325783455780717162832761893033409677675518242325295621757943797777607891991642011850922282122277922332688210449422400862216589643856240864467237846515320783797314875270458432836944711244354557359472263855719866930088194113728704938923416281296381920065617761400002319309946274820096775329610836264936562743111852012899252696580810075295204178115131668219929913577008356274616970867616850057174061177596719002165035642451554999174923241611216677582233028620882563100770132677413646532326331108475781012431580018172083626193525554390887583086572927335547658291030276359774154960522962871104462189029484056336540263579952206176372884081903059930695608099835921099137010383260078757661489695530678708563355711946222705990074413771461976919854054275527679480860696829202532819549730751304961134239070228831431892528258166019110049576633395065795172391159591573878176795610162470033518519483674282417582795352475361147686941945833941312127760395408718294409928916142411599857067538426792003575726265355554093267133460764847485825297569401477432679126270182708339293654448211093555900482572000748260483118983812938661997843556477623756229123266667253490086297326435912241076109041687762152898133599968211936303983781268527933922383994792125932005399808921020400394139398993037343815169990175500865191753134851554998295885997587580625408260038843892597781957979064296112493451253453795395774853967426878436365877564360912928858347301802077742770801807934648732543754282159557650543955985093386703160569922897905899677512288210762813204475319869304643007068349578355875466160289353243185189112853165681664787722581010837843653659575438190164072920804185181216150210624837293298896471418595139305240893042945287117131800499325757378744313682459580272467988290462297791294758725738289369433085774458956512603150922837438262063786750358520158137795486239605911083889807076969038026660129684579073246412715388077460158796160234644011575305454180376634956711250599498588635412961730049395837925691430106283839801006083040770951926512147874485389140774189559950663505076747507207476822778717257190681772952576058511398528323061033957708482512266196074876641050661590421196625496799854491837085956931425488170728510303989777531315260080853918471814722229107883604002576557401390114020987336091038601034051845429352217982834367223709314286963334611341078808479496729695725200810992513447184879218085853851732405480847911378573312660014637691537946694080683155064788191885227280278668565405575623322907435344909142042327753400312718082207393134811664359263018437900046827765682241629179977059697259656838000655436838969728570539250233221276871690888404026492339950768347526180004213896488928756794896611202143477544312748717422336860499811219598991133971282467915733318919944001894273906110325676436866009045504956321369989647176857353367048343741621578917723935348349755846780628046754996555897174170843889494927750805656313703122631999962213094513755695720706452251386115831223972174642175252380186747971008222792465839574353669116754677295090130381090545494342911116168578264201367197094212161720413738756172631953767734711710883212891728783146948339152168559912400347784555601084320202113539458531244451856298589075394653327154232079676404693557923400005483987488438890990571644960170380006047545770693692794445246291288722837384948133494121315906723009514799592238909459614918474671610660435829785688473504266065633905339491871961299832718684515208290141143879318047741893778061434338607782592616371845226986308771692078373135305418717870949080242634369003705320215099096200345967152765606895915768800858098583710068626848659149828892531485755543096898169925811532908810763568064584532159941233356163758337665144948673739696819180255484786558344104009057354279652296086305022129790465259288606577524164438470032633669039819179988875057070918665251438604097643990859778800471662612910638176726865420889517241483240249999333924664942335582970374522827680829569628564136449130631661500651018781009424010811895143141726898957103484835504225672717795691034215785153349736249055055368337010871135919311455980656383784781855099322637669693335732358040530069775092510609448022839759308875465841047577557190331110978941768571333848236040349226199903465904561159577580095326417318398975728590329077186573406794759200888949578704195877697443816839250359207750791132029378245766520080684800619570726301467516635414347279379049518132271509433338723112505027408702388958222916488488670712323495502824494722621981301889502473373009478529832163041294442672331101717230621658197495932839746527907857328458328549376076260474038526750549748632587426079560267462476920476390414472318598760884258497556431932416272886452096493279472246525037896418290218848402580335194744114306378927118142259012370437460351579504546100136359416101764034415055826628517076059928818591802831555215217393045300073338775179469173202618477713312318094021082671821999450734910167923106291397362924181405089464949317321572370059407059993605235966487710154344427774600125682801460695888793290686611872549924502940675459354374898947440549983353945659068239270933216618715223311206570616496962216176586664158778106590411598337750403127442215763405963069482591569634230425744903024373511496482020707123998262129628991584118999283424475352894286018081756656942884350860676671995584088253280611466161293200806190410192884875940101324734172807083763380266471570140014738682377014037429005066840118063868335046225510678764432960131019195041337052115854497172213595712464293036902502677588999129265256345669063428638586300747588798993687882000813446855940543480024202080194751559170043754231169859866477577312584258057297096061349800724106848831888310814718340456984370357509363360561966741052267289339096961505224420840369718722742946795548370734027975143227150289485585895295877644198404054903570102600133173812456346962752582787445564205205798339072660024437426015848708866897512098200521301201815381074659709450227037055930983645863585637577198164035055980869404086703407727576863700385005855864104650712894073759210689843588734530939372982256413095612033558501384664634546224026550729594749269966574199818384613663211084749263830365987024884686325126075503926109031666982913772157278594524178883898464707993797539882444156843642489736363891861379599023568043437465759005112431423069602153719757091365689430483834620062390575510198746431076897866782617743065384203730256223518916673812054334874249297170648876990428396072345824796742478562675888354667019847951566961777333226693176503941256770081152978869320972110099578824820145092670648494695389360032325684766552710335333448096975271011798550944857168132699368386346907462630905679995103599619182397201694784450449772973921142592511968953039320926844722685977849868161421335439154822086679612486190801083894619364604167483844198816159516384213328269539380737438097997361143334318512029030222406622895875185814968121458661188120460934234924395002258260037429257023443800381845570089220813518539044890111741727822179032656908152035100304995073142680531615100088900602579697557359493126156498495479968829927358399566739782525907132102989613932768229298214655521788818539828504863365000194951074907123388762409225633967276310895970974721524827195212582566339169260985623866104342209851344732329569114522897573191952904141469609519018175101110141971155794285762267964776524422803987486886220926456555617278521826862445283104898787041931711895936568232236947956183533096907330612079854195754441422725226447544175707422645538541818785830866315970162420304441034409523930259849091075862179779582638509852414523810342086489867571983283617320390915205813996249822450672080005088729961421812276943522891225256281022409306989551998753381957246973242035988176976308536333601175650015985906357672904108520462450060942177883381297004545373670424537514769231335565654709119000582507545977816989049479052476127794457741403043479453625495766962344896161060433863611723752176409918735853620955177725961983355048353085468925496155669191549042039285713943955901972573937803668707080780039417827198360458383201006162399318268553501880942771132743905279566694714964652348773576818099905888534017304641198655160939628604241171329674583696646594603009377379019552277693394654910708328025738894371257008142480149594678812155410336643880845672210472485987967598009121486663155800002187874406237421635498642294306590925930172544204267833198906545106495655038123108301203687904388719574426203380074627690611103110320720373950616198468261874553170828087891593473660933147832507004342879870652435176368533676045224848839370367822221818384881975380272471343772913347927949711887269532442406133779766024001007840637061308788129771141731563283073403159279522785748596795709823025017152479224366639948313398465531621933775463165672516688103414358565253512202927421610760764182881144649831755006428406213823268287563237997415106646256799096664851758744619221313353339600301722180241574397085742693024373226151051612898033498521956346665123963394433420826443291524593758809415980645991806834434211986883591212794822300682966780204727940296436711859474928268293581732422278333405537765549978861285081191314883686610421058153392478481894826853226138208245242387022025078085983512345521589680518402337739694955749433765223509546108822662923604554716422747197104827550776127762837043464378165110001721656180098394274080915746646418232794059700421672629860511119788960012960354281408632588291311715504737319471248336258907929203891131958876090472517896982474908716969482713094065684463411051768693675034207329605876483036999733189656781932550994295819656252386562930504998037033602352748297776674729896497551789128266873110981225451598042168332965134667724847184492997612183022808637010517157644295855983767597642541378703323780861636669543609425126115644055359843184555395955847723861930386069657447049448575929117023712427361341121471547495131350582172494962926701973213871180595293802786880838939064711717515462006038268685135084684511217406921337766328874562028960150951005625090654829654348088054483168498242180652457862129236334403665654290936945429609816715219146019015432355715471752331989612254148171632350866430797214920976881814741886335295398199161851658779493631700877897089654430088010199112991054893392923463331038037297932652774689863181192294824240696615709055433054633634981630956629296909887091556751526516940048137544070722827227195251761161708986580622859734964458552684748574410618020196534498230079864247851315317240987394034315976549074219090778027322568263873344055796057709800313412845898041896508120595753863555164557832382128977019725687299296756728235039937361670065661067721069319971770402681456071190578936648042217319314172203716930550428762525915717706291783842863541240565480630871355678985697337127116176664375471895179848994652093550074040776002307945664904221319710856544340556420236561281784562149494491873922467582269573565331176987625962561768589475681195439653988149167896621127163828835509241614876959567700992961088919595816398976896432254607221121759264101001130477888034000953964310591998664566564606677781962871376786551592316978943604496794785106661511769474201047690990804746510290827241744969166106409829844635288605494577037217934209058045456245415436377466818465955347023032528988555667571497993761942360302191884945795113820784457182928822527726058752310128670122436662120032898653994197007737696634727967313506651755266424202427161946102132286008455310869020880164357988024061836434725266653020980118463166893636537445902423536248938299653808874754939840934315333910740547154213730532264676079353381000485802350050770397590544675553660416417936087373520399934161540495822409954484167111701707218625013677895769867846230483817453574072953533049920477744325005835869846860040660344215986705979297285588237762364101637794734460860533240312536300362669776749449117145844979672430483716202641182236090108891430101008023116216220750566536369869260452671916212434956538894146144690982447844204767478845540931693602709752937220079595564572649377049559560362176782194999003267060696632195156660457246080439902867513088461948514197751519091375212813169403856856384317983358940679295612578866596653135002105155081543571218706264426784738807142166406193325262415782848414099643680697010998078269514959216772243795453038041473834497220897521480015191814291952433585003654825967866724873926242843891914041445339546244483507262145823432491803515042135772945349366852748224718311042156870890608968082577954770420774497775443209933273329747393125391234768368975620367972375312632688897459972107349648166503142801160875645408628966208563847613529992337017576665229428247511276475618302566283739393825321097395443783466043908165507921800227865238381217852999750517191042797186744882150337727272884755100687360130558440102038036726217498866365215032283295155583612524829145249523964462328230303974116852048229687054823140398916659710635739376218507276792536739847917408613512893834583657963505947418632331812740875558868274802827251118428828147608396021299820986731578816118450396722015881222143060445905929768270470376154642493669968528495598480751894963325024562293170454447095915596672948185154699444577241664332667237574052871786034978427579301058960761195192520464134365108121592003638839906020545249097171536725121535937117199940132494390253200873206284738390882681926073829245777552292270562514643795437161530997473211311807846383951420312705417028059857192591573707625221383175860357701777729071774083625154360102518827571958459395666923727513818798982625165306858726352416303139917639918005116281066052288224733563215962530240617960445848049158415279971037150729868528839961739498259189021021049532018317832636483951541637765283919655763516845776639391002191684196177647234646206315152525690645638224561463336909119882379768620060534541579103631220658044050488871790296274430484956507276609557351727793792507742163142800729470024285167299177291414621476960508582341536657211494551778464700610214540576394799598183303394351015946207278379605218603037800022272746441133812601811551787267743106859408890533084432993051704588449823580368235707923386745415231667875622350214440731367375788624710939393445045764656353319586863822101001366272592927911876654040971560373207065412836841751144803441572823096097381832243119173536392802360512897329100993280514867938699948023958672549036597509205577759588069582601809198478153621258391196079140512015576324820110025411569149343731487325693634305584978097291201566489746015150150207439139467455010944859612557159308955868425399982877852902853633331974121957106160955460371350343159802021977557620947242467975433343640141233895928947310134566923035005981464466956603184389979032128736288720772443050161082998499751907904933224072272628497193376959275497347638717833375252065752901678415774267754162867572815726663916642916898756176815310759722178972478612451793773389696531894436420154370351503750646880819508993432830114833199592296288838483734003610104286513726833232470889339179864557252649427321007394470419842332407082248474272045210055291429436671976000419374293569491252688183271984004178277986603764928986574849408836986143613031373413763316388323864233160289571504203172840299840271736859394394592714535638059954025556574707315596892742894585566406903042921655920717409130996868650667134056344797743787341061594377987267176724402082139052854592291417420108933907718548722900558452965032196147346632213148565299377873366088910541434358891692393368466358467385250047938579764135577690417255259861905291473335623627045938927244545938848236768417828789642940355928940815364909010511840556098243158434252938406968774812466471954046833332745634996912707456898603029351222597636163624613920882984015988534913600356358781720504430012725049711364317761788463608466083684626860260642133490803945408773783760254839590869049392405399866539879879927184592213976486423923697825282797799231770170179611744004107033276751799994931042763270762534751026159173205363488070049170070028736694013958511509132150591439036168741548276027000297675493588887937904117683694265833037867742460281621957197900612462079680351477141012284716649020643709127692147761034559405246962088693534853366915677001593180533706958980899472185381948623934382136756148439759950336838021269678704765826696880240881412887282671313323216750550340399037843461234768757052430899113109323761140030921312252430114369344232412583609484639679411547492437211947079561615362957554938057527028617296366291108936268646229513770226914737844011003858721860898432528571260754444330587324040381989885131046862908406039608246073310870644592314637881159637710658354712885892452387013969761670262548522360527753457603102418274168631653588447155224013407109407423217304282399122864033263336807417881610334377908939074024426971617016676279626951318433324656558348310982383014298297862274729509044916477113419779034144376397126696444568375968946131112372683564673080824245346418643692249465554093700183247919516905655936941853116839892067588509789907244431940919559850003311655019786439346982092790791595828113808985586519417009488138061319497341398574205271215470966618545937440423788863195056836843964052457807663985854645811529799822524581245358556304031309173735849891431955536268527912572481152829439776836510020178102545418525115396122394381569426983220977832666137483324494533654386138935089289657454391070186197466857499743518803722719952516987305054809899772354045764308451460834022439499026036807429910380362983739977961058827234370882816819905795801388171775390083049135112118353545047653154605330447849126711592929141628798567051697108385502524346769945316861911483165367347091376264978427542589437373737169158773900029364285206960000737982496187211788386696241512808796620147606222936981409502929070061644969572051336115461832282891056849672186992465288018435478392483920757157600411950391261050460168835093882830920007707040467540422690242677387901529786788125136199190926133237371527856462083068691824670462214468226310555291412008070169382808728077162838818238762202027420012563185790559399006965248769099823891849960140773050145026169305624983454360279830163074481598899274285258276485468398752626895696011443153104194074836831473781572920156864187479656762747013698846255048612710776505506775564332454551408492073880293712582773825919017312849433092563476873974661938744476470821958195509915066091000184087899026895277674788791083159243744612318182678751743999236705604289124910483140717387929519539445102028660561769517753332274991513175564570863436317619373287185295675917340555180518418351874471628138591023859412696812192182549770985856135106749110109769811945716802739478707934107418081891986936944350830794418092089601415690656219946213048799617920498449977734556262796462291046739531295831221640448633157282526110235388229554566354371793465546737293367723849687332979909251522658310252178156831753339894995404075034387933840350162399692538766417545099627271017743743531409892118213148422288340897413056146003688476389920870151505563137319712570164423294567234537314014720802361416488903599698230944047120981057288377381393462740292514388787818688635229915541197495124189875470491725497272750732645843616538527976985159159141700154230167680605650204945345905086198578502396523334036444602362166790768537750477511103481125033337342364589793638975256165826825817025535859105492968391850418628373075914426747964709190249809520507608426053571785964906462751040204242317724970143889822264871359143713795294525174031405297678888964295512913205169993723620109304135327877060076344873495736907946697776389372381713738257875094060804144211604328398497865154704963397128800612811511682372502537456910750961217136167594980264425124302944637205191877339145227826357780944712493872876397357261871172616644135459095357177939967702069832593444713987510312745255604468560359371510504936278349827306591978308614859194336824475559491184804375739043904115795720311732536023175788431218601564192448170319320995818133484479746973602172204421184478953728243026235802951248932454712921672695955471854204110122750363999805929219659165654358446174328677097362235501235103236506217182376002498659262278699531748967724464630880425253876590250029406643447687825962393916764781549570450724360586178417084579695566467998485126206432244367833253120045593091888475530254442158792986409821326811790592072837013187127364588659514849239458408606562894667203145962537226986445075141509835868251570051248065273011892191615778716364737348727929259608503495065694313083155277287929023135732277068108953064924603656418952184002759433320706731968656005048311760239218299126917374537990207809829990058367760243162575919229221572309374664999170482234495780533813606179174243816406465008657681006918141316786016524503988098294837049621346804664995676333050294632409599628480662781448594715708281685297174527648921643756295339140739971664435020004994946010155083165110286007320845980831233071361826990748820353506772580659674058967107610450775091635718576681728929041268010779728963263289236531794224197288458949770028084518575284907653235211963936363215616715502075121193583245424946093523080758744453070117556759653197629911991829059440115989164284611656070049366048034015606723168014150714959710224475394807021386470669463038232455077336006597710902738941642702043204319398835460180604631695875876010248688844450901376002621885792047806141398649167122134326005269359965544117615540399926333734102929402637958285312374350330410664187762603779423753285028417382984168423581706422679312566324702440346743704643662174683148196273720759283449364706940193986026754592434327156287333229513487218674720453629868828417244933808799898042080529454825292735082505786361357050067491246159161696201769833829319686850869049120888687396202208744758506855360717294627722361515691475150304928159176560843269183364515988106282515702147978194078229513687485557293725296400377375756678176955515626689053824525884920623161493531439987231191339731997174322045088367424177861451104714703499421921383268467010659007935569089597653654840669735286691027248952308735840451113754025728381189758871178792355312842219070342822044892163127034378877404405050259831908777627436204066175269603435572085707402075302658710241659498866183643935935724775559242400273800338293581552364209360120102230808688093794011916557739930549704662436531857982752385315964956091093684944528200368643966845167780158601778946232656460287728152143336612348229119741151051319207328598347445846394629696205881963092351422448487591105257164160737674300477774705917067433430007114303718996473893295278889572400285747134400759291974334279761544502892426659759978145406593390379247155081401251063524964481557417026485480589858900462530719194660052286439141597925614937733953473864086560239062828963846640009975343706825014227739144802095184239482656769926052704584128096253951259160917084969415487599115003528765169207723079623021849297373567329884880118051892674521252858366848840520526980324598410827984730592605993953180174014588233059033113464154080900372462812294517681094689483740029448609727076379241949755007865589092029813757540029918843669603540063303164595213191418546460903710325946228937569288565436543727298260089283793640054122476606522097927802538857425662882069333274031821410378912409784349656016881523112437412148230309116744643985605904053642646285305857844822616857308625570418912757891631779089355193089823899159989772855746648890708252562146950550543634701714855689392165127913743292910905476576387420025314734942519637650450985311813941360639393420140984289551230585429672834859627122100422452875726883324515525600188783874444464751958845699514832229386278905626268084948241369520074864530905710548602863535983765613195713450125545330332608052377037349607280153122463373548411853989569579495407169270627443880531991129972764854927707637408191471534955086086484687493450340942892188286318746630580266086129685397740167409092253818696986129697111139050278440026208647644827449526126618258800235496367622881446553559452411633063417781420762383810688481278219587955831712213676645297028503425776671487384192490274486526411211120772098292975410320797841952090413739157712987359511828394447629409976537602012131169814597083325261612563122331564097894304467802996413978090916670192008246115979165687140566598027827039119037043286111823695772955797936868683568329073763113072103886340166684418277165606311884631526115623461514302045059941814997661066696688705094176198461946981089309650497980294632117917285703311615538194491509537122147236427068557307539503391057726890826790324685800791519554553746928481632211253572717031727215199835343480578109722449150479118888828646016147156645361976591999123229723049891602935306535832096567470977165988259805553673713589242871817056667453169173624703654271680267222974783597601093724213855911922311149905741203733439658245640440914567362827142221082929503495174657062264032740870887327841388915070693145950238077148644545458866634834662671322733587596511736555163644642639835178624584232057999650597745535893839515232998955878152913046459587953351554926839028419925634377480613426594175253484400067142371545083244446153871241551928753007177267476688091169442693739928994213312640238424361632659712260200364753338634036919427144124797928063966792273270194498014876980542545584952415072281179843623767547997210030565781273108478548501884196888953817009576271173033578868814203247991743730801232202122158105034082699645456446584741620224951771907493151128703801476516647529697018222290741995592475306410946477305868402298288421979506581252705702641232823432739309215714074048461187218926620130398962028567728809706269909546304549284700233245393337469457754334831072050682530190440864775405659611516026926330832345703770274275073122548432917696146456440493325515376967019216382560017671874910559170762773134036330118642669159539504305900932974293527276994209163841739041926030544251275278649207393976980250441115162151391376942271936255997397856228280222334426482107730467444395581559806120928610980932309289431527615448148979990939306082994335447028853219423394130151064088095476355255164169738366176387254201038357112232119468394373507442186282585749339781448522268257841421836089154238377753884213547865292288275741622699043163085871574390450018710157267069323046111057286394865548966293890717687555613914290318233656204186466842969869650973858280801564146969838707253308473005320474324916092228871618872513603698541801939796257238004715169934792262765898555581809325770681550013733487725664728817796106255059017732852291966172704191145638341619947472459794750430305287680446735100968881452555940764750767030594635370732165274096425554784456948524191275777237321549660069753396807804731214289256185247278872694166282190186657733241907972116261310814864957452741327104121854021390369115138462294193089684598554647607346806468668740204527341067777914584252242831118032387402975194236572576371377397501452617163255835196376696102162806572284680223149986440781095392709115169386781761552953939623639694834170035430659539550371334989576238699806162960437093609310776047475328862042093553542854541523709620200898089765056492934324404060383863000386670540197698560810080936269538495841737340139518229782316658841586550404375905012019202853937734198830565461112328367631415688775881327149902882203839367217582908801399786038916221064684926966943669788730913599086159020964074730514641041592234028134252682739862970143225808733208732183998025484564774886822529110143099149453924470881406351667871274811515117688267375413047470134569026651315955046200671900984095358487435902183597823696344390919098756535008692509949586430612452495651881233389011842954513567590376865253053123954965090598535822017128761610219528665614756067459219620217545031723459581407102302380654273729406037170629582501058503110624265146602991044355694346189231526656806050152656198224166822170522199451840973449647796884645948924973631405898298059610622259517515205965661513782141100465641517221640634063917602145788150201812075100579363124749280391881493728484124205875302399393951899690457510019152023605431569767265916586750907934625364201941837407396171818457230404578822125726555312668198822294871421798958534483487532562483959904786815928851154253710062929687166540894210154445955268184861413405436120920312436001754975095923836383171245951902585006637331988740186797086053514251766216161746649543168041679604116598806983388255595044259485573114427990068393338989045979781866450604917268666222029012276492033230150958743182604245362736203248039679960152987794573468167309695050813064526458327212201974791732325069619631915392678459292362804109042155109051095605334652861073635882605957208361107639155118186550440625776296752639108047574403882753941356016440654234225628025020664599208017630692563966488898718470748073831150358939019711166276558320337250322042971939155882143720136484516187915087779945541566428360317223959958535431420300054412680257804214183877971535876347293627448854505973303943810349865465678023512019521494023976518867039912777929498730725414317648561195236874909731484134021096462843244604801183456475160845361675134151530699081716184352898619815578314235870397403081061199126046547443496355316630870046831784314250350621450370620626335134251450277873977653328301798797847557212914717339665271739314012264288600972579998284501610690527714935069126349106679951318776781703772215388289883367963646868044050867947681766794063505245915493961502027240141601541200464437634638014396249705006918723436201534531746161650735020719853903545457089262187487378111209014520983883595171442082272102847225438307448484070591756651907092290004303893500628941868956931314231347487406632735897790183573573944759439716778398788315612643351630704120818689272375791608932025788688793520742329265332867159181443409489234928619826461835708365614436583090195545676905841365431791347605742234403650664447654351633371335559243174889986910659277349522356554107633218860613669393811469867037653555258070723587036281867814884435888052354538799099338983921260378853889889603054113882089159071568142670484164324849742236299486613041531491662503847644307388250489455058564487024750696779849193914352207955847789938156002201819924860998751627966601854856725468713350183518737895303635999946878566116833555386462019029062813688378812069390699870432967974847310387322011970763570249610958012939644955515245221612185035443830428521420785361070181303729466814604709822875676753741050022115773700383573045812274724480461650215175737900877271000517529070090125296003941103029418662989048596393715493480854511761536924678734026725983718810620098881001032464325742171671234391329434298100199721418723548063858554411204028697795372167206671822205221957612845189298295840573531368412022786672899801793839116191057938270063188824806758017544501246739520164975597721813754222548460626652351577809253082449408000224503860818753392598374318944721451970100011919487796833222413748781329212009081190354010614131685192781535565510743726262593083505246461474914323543380517949669628792519928554336084402975031935430890266573474100589813410328488055346210572091931053019894501351208978604383156897054729651489196566815960283285817424190095377293251460660396255291503530939475994882047975942534913218020604769819141504427827859205892181524392253750356786848637448575330575038985259243691578840516894011558687046102954364344750846146012360640149731623635974629419140673163962936087327597765881123659872711712391582894526391217316828840973610229514512413906983014409133557076095043603295752790672530994371833742188203899641619917618912624439529132456499180610303050894503128655790286326975932536150627856328117120004667626429282190876405836003729026688601354491772364633583799216788917401333971439949528471780688668263632031187522102755602849001080183036077484264225107124890489754768492928435154273972585840346504317962919856390611744128465909104607277773914995702299150194270834078647993607755621065850039365024523326594583003768159674264823448493223256841410720284265127525483951107277931283097269521067135329989023872045469029304273425494714825767598724449074869422316366230775363774056000776182391184805786999675136935957848372951553120339094020069313547089123918207868787861703759098030171917506428256630357098678668007676089754178005878172265268365958873579117470539259826891601851655300191784329962176819391122759032053301141841960558093533637448374447566658931314479546374584278973229812591650503999052431862620363034518647047247444773017550781903849252029230709145388591322445028982367614839055571616362905218613915095856670840143441072544925065174821658689644450736844275787489825706312030179926998656187449549853425591067875922281574690063626993313108280391484699830245281713227271925278724726497110361978733125211226385314588575635873313780053284499635748927889741821987140933736523011316404661060015835509142611797996362794714051430247124318364590466417392534012697296983747274727017016861729698506683238371721971103754860580667672161951756944964075333412684257183570585235946745285682438822738885336138897338839163992316669030087850731702966453744991661341258847754741625591735945438723362062035150711687730515814298856399117800696892343779215317420146133596680932526039884156295249695686840965559508843182550282284483108214770335225212966378272540847609286385178784973713991083624874349849358594443223543169243829880567417122359858055447509869444564399155020431815945669042951983048832459215019332778741694944344341140991576779388536957607473984360729468095162726391362152469128595475586624648061354545641973915505129001524950092000240172343245340724518504773923865823156754089682651373565524762496657278254928730132310676600512577049473936757260522659168507254412246725603075476681841123340180053389280213414853328811954035587143096049799595956068957150073700969537204179541712464917217312627519742491078475918169524254542454442493153581436012409788838889582705995229877608004358181192419712526474049452519870727411422854535518343359346883097385102699758074389040062042157286910573508276778693930593029546148119627589640566644505674996075262924923850185921037940081072241613300743057749923024178599736466927686404998726926896250555899489976652536406042752614070538200345953823491948179666727158258566262181110751877034059695050891535692649239065878206125007694247767839740920165260312566881471469077759222645212432922968460071006828179936160960893602249576678563503008699008453515198592622451565569277986496802079072706673229809610418452493882689647843916717738652509428153506565362644940192852125050907061247311471221491469242109410818399817895422969794792768102947604905142903987458208439337558157884923772092881623469235513166345557378885085765342199071626652353366818671444762838592949456071829774029371131949571556357650224958063936694310009018021011482473762917736309502631980630142454600268294310936987377770542350847709495302111545614903184757035207410963808935679472728786483670927058043851472615785736497269474393066593943113027865600071473602105776488655187490909642091091240708092892465143984001309129153463792592664501064506967038634514690793209715801037889314600109278425598741422367394830941527196894815813740699951155221168730855764466405224099167750243412352920470822695220521544800274712248914132739443277904046964502709646473000890425133005161003244505301294601748660718957276965851703051804391995560825830829899450768484325407948559744704493185763748392149340463661092024530702866921491832119250256530410176940791428421843554915847956524758247619726706087743380411975633210451943217685244831932668883224048699572797674543533640805878174439968216155661825964684821659541201790955912905555170530809040075695710737051739452744844525102827418092310496894969822454320807765773902815439637924860756764502793909016587002416380815366136705544142616439215318350277613506532414930724107946153065901701475958584731998973767350802997107459763656661938735383729726184967347489126738928919624748374881982838414117657731160629496616189505742806944728662295289210109814961554624179238475245918482310768929088252274142298986627354988797216104600719597378593103675552563147527750635321355050026635187069329755952316717320420562653654059643906103165112563665025825791818014843396950885418620648433936962235622464417563389365104816078987119404478621900660514225145685061252573983997237570040320356895996395109504491354865492664767398408075534809980296800187480540417664898595803271643070528212941302215779920365658288934406371932516352068645884491322792874481975292804654161257451127386708591275626584302273308540757797685721751251793776995492026304764487644220565599458892029867294161690482705759855388840786069917263191382256436137165867846711988235999751618594690484594347860192042731691299146512385852530612170443977720475732386542534960791730317903050934548934966520171821326783894799768310286629559369193194038676937348793631636048664668620750663477883424625964143895008686812736782245387100740734338201712817140740350620049628372664557995628783379120235921766494343412066146672068513039428189233909465632888206038726129996529825617984387083031588056415296820071719896046669547807397865625374339819946676812611742139077143297806994185030957947852394776346905570279871542632547985575251998148371602834799720869515480737849074170928035794091683496886779544854732997188608139266165400733401835612659876996106561005064284451042385230352750534106762750310493313240835382175944928411186832028650971342490095659902540845380000138137294687548707473334726058686924952095698796857255029095446251780173609876463184055882045446875070343462288067904459295365072271546520816905825969670316457979630771811250832961330257931879401123512457254101747610978175308235038663088392984708155463810775151358756844955226160636554787692059982177842717966356785024207376724050352416364009088210811108958245879992362948219557211951101593450817291991563940662166231363251889694099694936707928960278620671355128814892866923470975546288734383552719150128506149333858083151108232866991119183738888636613569819115693097057504119944788629620566695389886074240088637059972991270853953527204846783185303616707404417862807551309702082899553181968023230357101153470852094324235686002286176363274584541772894990781079398384045969811772728737194501915618778512413721714759665217084863422485827520640287117707299025339600971977342783283681013319720037339062849614014879663510834908081730123701766495652947149666007695386633529448154893404074182366456534868520837453401405493556413828790162512735616370851698160836452155561830388350877431230604310046341399254153349363139607672289997523327060222706026916222139971987360443565415735217283299876917757734611764509516983244544576894579885545760441132154145160328983701898157560139984324032516181369858142942038531967595672387574826593173311861017460284406456866665496994745034884343612857103008483655585404991753161678958447944500676720782082798866586489108814746017251055472140795068386207142093803394510753548840466156854522876262948807476782509013549643591868641429334224386713847283983273603597151208481867420545245354953445825431274615254438320628344874332482148606145132692733878451806164294770606361895419509327425239080888484812081424240574088614737761787259887820048498538195159072993131207745036756948136826254467410757933460969816254240634666873638433955784599516763591707743072962815323437135579183588627006061521306885408935086089774497406506344177485547016170120156804182465472423545691463694699195485192739602772658437585056043259317597523126823103310668880291038251205451472833514793470243091544642153639864132218587532061455725376361404410242117260767273576022590881301962071236028707215252838458680307759519689291277965310661705786972502854006619073970576654589003244963223041505958351195197284258629926962165312411900167891636802516437423447813690899109410415106447837359476445773957384886109709395061185497244386117932420625909603367615110574639979304856396120980298551698617578629712541432138072930436397155676635108744498337242366645703346791312405408729071801832801905756306451025127283639416043886014890150608767888437087463585994910281363648506892735847533568840166692940454926737624906169617941635020556304890058885809141750388927226189026880020524168411669892582694440139574486300253289801737115849500612724929930140656788767665562742731103881956848184648168356186375153836777191139341435787570446030682161412427465122538022155314461119373574068842588891493893595588514760299089733300714883187180163129653908690968135296337882493615842102561431121978903518556544205191863329012591885469579003523363493654000680409066137971498611362072705659201092748127397197436771306752900807656974292576621149759630661873031865065335168369720095344862774456703754201482238779619132297257370911096344097894375557200454976496413459441904837573174922312581740227762107031713999669018350970792728576383718733824239641205478015687449571925261254838056431040856420120710139261131887464984608772306123060940966405712537570249052884133076983930029134098565931550480059940453017795237019930969881953386760854044138721074760526805307744504910336285992205059137178978771089762889230087006465763518227581328003145013281445003731510659150363522824827689220603511813570893434035372034561744696564701865218809903179133672686284675019010954594405098467322506598390790947836881350352714287417934158692197803594904204369850877386987286039173843356431712886156950543862902535908405603987811513928726660560236199710588146249392140993711020509850710649168427988327324826219169174350504068358596632714476067408557725986019497200669591678460814916301471540908502413851005594127185979878970964141313765033344723083526349833941275261839578770987668159332171131471523235643001699487287093213809311876724361973448912370905120432999084251499930696866888275648712957669382878390614144701864597365743929711121712361324060499099270283854935558322581508652201287136289154500624217411462025798982583718342533731698788435150608945331972420042159055348821106798427567105293386574805759371828322732122773047114895695433286963346353042414392303553024891157841339905829995094863427279293238196230328459544120770489073934586452007077514581093648332012095272244640854014373017386701685180672035038249746803926669960681975450747493122726592909746367308671388467180667529100501011846703653568219254903085202329249347871935729734316188146870134849040164712737382546263256388006671752947563970385390299545263988173677151547189733413755709618086835272940068816216265879966173939176725747141756457931354964533359586597418865924548301015286566117707539829459063790485768951864753790988204194013698687561629657585184443567693609539833057587552118260649001182438762129293633757164387377595712728850374936145967954008261700483055322797059517475943690313070718295197219891866023518298568984430634050420285110630652100029084772400169165525775304829294370572891015282150868559336909098901101652473701656905933250146934409089935896733602248608611788541962637320157395598817715779390454971030363539192177638011921114485881177905758260230336538351208188919735393939420301361736746928885225012979522161954985261818086798857940922415195258741775106938421442944528852733379908867782022873726887555883287741363270316302539766821297069372277823144895606671819916023218897397994845701513691979972566767132953800988094636948763111805803675680334240945387423035908711401134685934304489902127792687791774923221499078777635889530512160999203232046067390217471764329071814895219860719491361035154222959703396121538748512658457145691180996066690735958759910327054492192724113109243870982943880742369156261365650201583906528446467344411173562643081939389550495954499483876313234249270024237750205497391689108753685501002201089430603199694875640680354370303251800550470236591966347992705937870853407689986682123113607870920040194881064969818765286104227497639053310363172955875718854635966855179061650976332944835312240082905166791236092724100028974862185400571180563879448768356968339124347060986583125052166617494691403585967368707334585646452120864920009911752955056290276262905040575539362898318375356769783003156380654663524829320883641643760741895006182174006935431099411427773341194827401779695945693202389348174140351041457920810262118784100412157924214309780987773379419492022410736119967670843482622572612450780069986397333940114609488781462999012993052131650453693553835295527058952822929592636496459138573353391595076315266724914081108976345442689197082964742189456900131843957945626892628559089582366673300808963431565191347771603325783915528336891217246722982438538846649504476275170180660299616842389498058591085616902864363340267152881214531291532210281925014144314008921897128429043796357981684668873570660357433993678357867187161304278181587867209415454733714804576528479707674058350026590898783231308681156570913079398912480975072359666625531364880977181590001021877833170884505778372260163019818620811164381368032761673998041685023210103945021118280943999384159737318399610515731953450232199468939939129145487038039225042185266462508724449065099607469821883986979612081485020431585540557517174028881582085043081236015622869498753561850763589537568090587341323058238433642787913625713471322753723836727613680029512978901760650167359414021363472526759423765912554843154509025474892781266052148348059357197895534631345639655930023722921220282608600611168726837047270602930339983088791604944443224334067111567609802618039759435329406798729732149351933402171149682074686685094834296218829712897967611328102012763130953589121228505048785277258524061033060902428546833545575928503859148879845183494027717555218401421160191976340102945618337219236716873435360475823973679890856817256789314119875273876009223235204699520562528049520888234222643695638790788216912653457096115484014282745072038733447536475603745588394214530689872061127481664285860269590963832210249357317113870796827795940566528935752662747818724886820484904053024672617389525394598924993324580048224385654660713772115481180693020867199396519649370440798692656069137173496491221283865396321722621151570158599693813867596236810215968058756613156815351119552745277648567713424674803660084278482477120627602357969534383418990754927061498629146487589091467402087485171494227929039474675768783999250847580545356451552630501161124948494411555529483757887694420083603205326560656265572444915520572733500789916335563723367041335721952919603702264244535661854952370086702257605820061912963715622765262565002366113967532741698106676843815706923940400017891902152489793579586050292043408459492904722330845474882111425124237911670241160396708550283988844091354135032075378428205849653970069235557297484141326662436465288233486684685334483553511637218815819147012519521191794334839710499989659314933430168757921827817455856557650899631118098992659105884998817749087740304221543975801305314436068079449707439862655164253920450530340321068923110069429247108991281117519464328522050009623322778803869102677243317214011762525830074381468960070825412728769014752872243131525076125658527403039323774311681311911855233253204845501549012885336579639373808370641117072578383186637914193630671242161455860699436742125232541660284390552771969567980081291005530156412360386333023628518691110778642053120199377455523671050590991162692686167678766136215309552496945375510138638184144606730131433320982563444131716860670147854892093999869321641863199089634785521543455496005477868488511245879687205346575873740221638990653867371095181474336911619695715803847028647331125788401631828317747883123275268839278348723523326013141203906468139564906694669406573021985022758311887154494667913193532374099143149065251419650144062282805352801439256420800721224315823191685160129761069095920107709504559511993250637715658718774423430731783021345194645678284537450210088584941958858205624177335841181877742898922379180197481153820719510890085997315450601218770961834186512828340510197887143286456223222679544285439273622377702778862857748992653446351315066941346311398570214770693620955668115987324696862404134604634292439315791894120342760007081261588780669187976493988485045345508888717806405017573865194541459084605709831552603252759197170684179661379345323577999122978583088469780593403616108449866858504945446654202103093034881814610336352134669805566332084857609206567308857110937231779519552493281001807004137253999883946665759682543730455640258929985875296077850532850592050215316028442627097895018316638699301807930939189499692718075464594903168188139865516887162244151228499448503228566898415504431701738337378062928402580265989861596587511395294884361529541140350917380365609547022176253525638746251848848570850392071400061184170987975880690866093336095549801364912566926086899662929163238318923429776727616631319477604630439903534041495967333629502337278418686674282642009831587836157075351055847503923063149108212160425847717665098525253087574694503227294226636981570820019784353398626651750386863089697752549154948133905485830829959068993333807143625404142550827313862651516684335991489799608667873802071310617114266533404612158222081692705480866097054957452529925522118650757869245548525863301940008117221618782857155860629868455544835285987695009869324875335813922573381035217750263823732896298862346193950023944152588481935819257407604481332292207361525015141853450975312621080100700868679809250566987307455094335907294167270691704852865671811076023242257951328729062204465568476234628089009374172697346202642996795488096358570477065776994152733052279503335874918848670134111126932648339460601074560972735649105237890955173522850487720089123023213537606904118298248582617460963319217763404932969748526001628847685521107784679543531341143137450633892842592821214800251626753338719881381669208115184352799579144303396798905902882984695462623078986462980924114769208807422392565848312892446198936017740653333328597194365602593899263124480939232115180437995327777862497185029998595817269803200731939399827912376764071584471252418540991475440968849185175020590915674967432310629457777503429806346788773169889087885354403376521203895313458749093113116380158961924006089320195466412866498339996114967625991918607441339723487931677269384565523975904644145689044466414065214947419574790269372357149367133591434635129506138393617433877715728240037868899208221506780965066203107284711242459007853538758059844391640231599274414055488810116264156077683502266026745831330454942310626266319762641657964029166538005172597729536778006385585649561485423614111736032565631421139476343892587066679300336407331303888225235110570724567220996502472492055308092275049159533996713945522365121644558365264781627953830531372560999326986376336959537118929046023979273597961466164569465617292451906137451948267274338631257349573539199788556043824001830448350510628994045684282323758705408454296933145333659087754683797224675279233812923940957772721658350580654947261702370909070764619153425916270392153121816265147306486419739021502845768117250288139870681295471562285012026668925140605715245545194222780462814256654053304208200605619442952293737777055852477665480715339977555424919323047571833452584765131871099006407015182720853018033400037664588795777145649956121797945293687675446166720273632121917510210696501033478764668225608741209458393862652641931903386592625933785708880488564382966944011029132145752196703320488716558015551119849717024868965223344404645391942270497218946854533926318929130722522753485551909342527768739001900539252701392014028693285539177372576683552119458335680350800406123775596541917811191967327079334263397653436616101097997836841094162029155959373254133514750839439380329872407183084907303888854748643334073074093490561864222080299330465009335487576477769545189480931955342833801833571086892904507894527206747049240762952560571654921268874783910010870309904291947995836814852846312391056657165864581156934068573102110834301764980886522408054702498620695456112802820486141855657554592177689897708004080015840802395299913522307402633622077133400360031257674361565198258890910729034335627564796311645782678690960695219283242488760203271824579506332235947543524999761368331441491156115623012267944487052175827425429175208069666892929775217844488170519856810176473785478669883095736696022147062590977948731412255449494539606658478765944348252812683720004304483615729607867078471533279906019510855352712579339196444370280584385378590830449317997380190490307818196581597595403403526004935849735854904473827980630968611801128479295573112111905621475970241188385642514795743740782006387739299181742406438844447755074953969164545309055325073595392623395815964129309829682005077385086989015906071978053005272846608676526558613063655768446367571358877487759153025680800026586464662016366012665059558284567160547136112528896155067299153048765127282916832851086474803098251908243255123707097682723614749068762762401726300076497803784068955459755653808096542448035263147473723982828127899407975398736239917342895693691542892926975622178777272254776910933539717702147707805925818380451831536733371809896086461827610300750258146896243380959919260099953356026759519404513877941790287771517069958988374557816605732308958016546069564165305727937053342455570374038414580952593674347721139154909293602691035936042952340961594839905503188728708673596471923624034461820344963493346002049124081198295078971648909073531201786151139302933317283798743378207721646381208992757666522797199033467580432900546186065323651451726593327957210786167334549162669390281478376069123860207906615006145368729894646800255034675107999012923124689644919529329412986604084697063099467932081747888934681633597160601137127317490885535842477909707371417596659680554033740809166943428967235087087788221516196734501704729796159880757975334383467375630112329559528186016402993765159553150773882769762550391011046508117139853374258211553945329390151270954970574407424838244929971109413903288300092989960836184216575544581777161250080113932626391662822310146206332870086868865992651747481893733907684709983324383932134587707411223074163703182736445223085206032477198815195237474478811799939749225653844694839180357286056315139058502971016177295499685646115163451339480734623923299480383676740569691836657842617015068504121627761347820147628355596445199546159315477422099032662376112657715834981757560623743438364407023821575066344978629748062891003013745785399181586989183923182245070562662641335613760251133276636325274536821314898568938605251116469821358150242068045410204923778252432006788460943417063277340362072962841273511847216784582799353423469948714694131927508661115990511016197718957391547919822281522117475129865903944154162829178361055448796667248422307174401377417279940633161423296482517422891382506712020246786216497475597727606778513524655207939316449398373053853588682133341335541340802492800769100268043282203328678569731797936710252091023700739235007858459860912408906345617129966534668510404112320490102436001265062007392585672120261075676679100516891134304493898281630174252318447589664206228519996123637055128827595442463584031398435109977623874345936784057396845936260660295125090968252067723924456735503054724200155206259447326129241153554815937081659915345915332856314387309246279240684444071667421399582449828081439434303276358723816186211667067456777342281662186494517284060550669673558923254734659900436544052626874497944264550840210149044472892644567807463571083707611802369149972856969520542091113786070562483097842865695400970083380558553238210029914028119882152862149247535953574001022245137864063750408563451782815395103086551566306157078176761318581844611014765027008426778700329673361326687140819739115045034693332218217996135231891468500620631808267708282380696759285643536344469210246154998499784383244435951475508044729043549417370376752422695216568336281325884537011876659427232611627756202808505144154518374237231895832151454917260845420283479466922912329225492737977489711475815610253396796118613384556736802820378706841246334512652637009785561015588646967190226238988555207965899154867379384585101279144197053379112444274673370386647468462288889161867753202791477743705085944668204273924793834091815584847141047553634940364974047860455167658574675200750731745257744918998740103914448283568926221740254693925908440367366942742666419619916513505117324854195996888416383195076678034849961900872834316731958047648854269061837395104140734246153212295128916013672201959220648778494065004813163872879480564938219092230180616755849823760527788054950482756105405972747991937413576593184301507221518226605104357371252128621514828497598845822173677055112150447287271428546053606200366533368021077839644465259438096756271777428164737291223172262341528775340960385215771353204813000148890675647869593523767044683912786239652888142137670838676494720658780753350144781200485845898053387479116552324513727211523028866930595205955289740319646074324090412290682439527559289477048027596334532332839892693108851135964946069123492499543089072404862396953179875457851011770320403808221411876126074346085019665310143555201224003156476607002375531055486046888325927851911314104141574839077372261271737802145250346353858023870421331117252462055517816923871824029393636311467462404731269980037787556767180121125504257239435233576514423847613529220206949234834406130000247916016995289779990604839141423410976491507389906951679426145860227501232842851647366147185976787366747596237598888636936040580776984779280100076061262030696352908944884453152276891506106954576827152087900452025430753967871355306447447952225299749358956526296952664733304017748491550686155427422205736267151707243614650593146394137107477507245395699248363314913862502991130868229936003188542155447390534978479805959272499114549288868315655181833386551828750993292549040177554211079152745643115068235194246776738797310663153679917630375568761123354795681327807414579175389965344127847214208460146414419163307907462171248777586057034082356037997582392006257271711385087285078512272323754310502074307446386643199079963778209760106907493640283614321054821150634499808853438096726626846799423382789572393708979149398450481872889246930473892696682935961431412277904990273543488192196915692990624224945294858440540038262930749740735233459685162670223275244941081454865217152418616078529740754369505033480335113890922755785134196769833910006316121522414397397020989177489034213229149453303098176280416312187404993628908323754255237259741700114337212764353371188841979466756908932731727232699904733094536980703793965327279975695089098516562949757340893507808090692743673409741026042384078627068030901688823974224874455447927295481172660941832752970239961073912101415510482338636763104327265361608746722119920621878794002282022238780552358305288924908009540864149073596621114348900099891922052030073483800040405379564308142676246180018634382762252944674631500191631754221612163577660795553075515266300045234625117450168648017448416245798209849345743177701493366275396140182578018986250641850929663308653128894926762239459416073344432377459936598976208330402769658992739569247086658436964438354735047500291748715922930547011263828183796024828160291774529838080436918531714094597691260943840636315221695971523065555562655011262999161052212210731392216945902198924719553836464161587243499184409024214406278205163841934811920619771735973429208013633678288389843734216644750458246912341194502020718216550525244740123055814793725621500642250993974679122293796458922116650747771863769304067508634814552401883077213087595659973791038878736228609788286441775886078169003921496135544060493037478854140156887972041755780013041693401299111348972307965541327333044411927690951322399371398546995965859086089445772888222462769957951688023052455622802473923480167422099370954641387504750719828544694848407676806516777939297245334714568118663777829212026309436718396129633332494947646505311721550615413335855121029105119833048532289600133601630175985203770039502889630526538187224426166817830696862651198647338489083209552473476673893613101461707239754544049685361457803546408130302245281349635798551004369776644245827876757661992840861158959192876646631438868494160112046047164944871873875753566005748034516218596141905314252790559054924350878925905328717232501898907207380102722415007669217428339232693212483401615710993151557972078699311712867425712090631997041332974285975452879354680733336141254481973719893846955761183161187407597097406724277059956481131042799245371380897293434332698492882157510206858854562388005050395315053187885611121896073018356231971854078187455621929870137951936211153210862408585809700967792729934129667951743836202352754216499883644121346234108033530305236045871478188914269868253472516297595669766178442405400700889055529147950557678436967256865784730042994083404668575576042160715989432491752734405747710450233081851807427561774207684185331461330798380124348408205762610984125811740905691200923633011266181086120170636974474959717574728979971251562378674305068231893487620713090851252794967223547467617708768027516900237298210555378381646609657846346486392548546563979001946772335770963733434579460504506166598846100481157056835340128822288561151611959519237957182128195383977565611323587160744015180339490901009610360350733068633585386242181653212468480047712869949113100371778245417271224162612272020924104892948410917497617727895651927950621620703812639253601597495829703699127295999288164829910630413285486950527654752337415236751496639696761110216835649103440831070296981659533283487809747939121088075092835871051283684773667802367006769793102765936159548878059884055399845737998824968398732017752299218917135321401642995187645040130607629561724486558262535827016690381551633821087451414724821730935389690840368980548509955670373878572582664685157878109389743127118404535083751623717489685182521818509530835168609444465265972283131868185913121531032756794253762983611240720309246611950732002371302293507656127034539059782522432577425059541915536719117003321025334310230565545895212203816979298390542985364285040861853057686905109467521782276663753061560398771408165693123335215225550084785953745933033955828103873383864949068809300200133418358568288230335618782900080947555718973472912577033722896097258296369072846245804574654089030954835663962222841404889029392233259142065257413623016880949513610902312456379834386420910974717837229464267845899671009191067738939716663780610304023107724463581315223267826464305155901084070707013179921527718320976331281825670522193895179235633686489654654394021773107133610602422892414358759556580878200921605288307090959921648153356365569745418354113864229801633088735158589661675245114393644109943165590605714569993471535427022688694283915020831079777140304663432466684370306784121313042769617983279233059495678172024546678659330094210263661774610503491866708441599810354508296661802502759914884438320098930391715264342494528003889252030129952280791559722600231535683773984378961333584390057132543218434398063851481408819288484394824046331189882106416958591352304070856505136299102057270728181141847063212495641518219729051216248843939899788543238634407683138175380397740358405063338162374636548072266624266345924951311207763091788128430104980647597091849006239088411063171191792768870948684057373058407551893186859689860414550690726905663688643335723943714266444994694771477769552931237470824714467211071383747687318012810999299702966354285863333979777352585272378632870500292969283737598311885308109716995275474711304040435998424238087741363301608033739900653314910234233340504079775477213977371334901202307754445086194261168472158842142064326314160549026336767601310642756616652599906598246299295366672228881079914974036920685863141462289477240931908370145090875655018120180610696838659414368223322015579380976648861743896156304182199120850389504272710326658388636302133419661076528925535792940705864044269748834080512565111793807031273924712805909366209201399518523983310994199548519543404999091361519669877456587442505148852804966377853919988734551154395992480528014187801764284637877158020580122874456483977371141552471034499624478388088908023766562341644115791125153915873031732952318367616554894492239690181524424206692935687340457286141775363775879093891698367251360050158410270074738313390770607865156239985807196252626359179906779113448918750850788797036022816775000164225579318265781285897340257731950356855214353071990510204882399230484756390562174521053165208526396746597456308495449820972819232506091620525333760229882752648468020943248078395915163130175972622334757221058261415738375121010775682389473476494404466152027875772247023399224042089436130196319517841222558102252970909089076720531946367547810324971520288410076241822065810342648081855305784015372906314746314832043795763067939957541921876206765378769183540985739417946921795795760012864370112989023965962560137876998401998322119615928996814020471345024576424404896683992404207125713411275146654454015765631779404062953866074164182015165360954157127098247163627196392725865546122914649488287462662254705554945638242188037237571047050258049815877308250790399654594525627116854886469674916361141962041758378973992538745171479317609408312640445108583097745234500646015895909710645088609309165237287017971990811404680393490772040259533216386113996433711421639263492592583874063652862639873788795999571087366652483964156563179058613782148058625636954605804482518643832993962749189395841999262886088533008136855385590152965634350636228872380880867584334761460848036910320040753119743596073800833627455406048621486369413234586167967267839132554776317500863214085515871780524595316733355488957350834914023370930871716114730978677981474729040380907204823214603764870158865036956310613444123109096560205966591839049321067465731555603904235477814056487774479433377937146878813025765124377940409655241475980186574349547713699823332860201678233300420273455142507549418797302622127394159966139831662687265505180912445087641401323162326306100400676965178485968854995863386148096669954667950771925030265740153772220073637486405217239237668407905744531945896599342247429567707871359058703700863985484287720951893113811187207379598748586624082293306698649550996638610537199509665415487326444100688732470086464763390690459762974217858278374503211979310493786597859253275686943991665168893350926645880848316521310896811894707821806171048166799621025424325469712581088557051736218193899179732114007628121990591012759385777688342129820828117815848220790569437040214154141996803462342620391065585278478120919776364175984314932835084257219999513976218379922009431780484800482314775818324661962002003359257054220143161691992730474475420120109544498866033797249969846752166328620953824579684089202468163602757569991904402325866851315417034589063433897597063831370557427128826237024523820275729367392271212018116880659474258512857406645703908352149489793694393293097479615018572345633658888783214146061434065840402483411690190589645415618246957321135887718714545413901071515331994917119655816540635527949841548733819780515274351236229706545116848152784976464088526914977814065144474023958638123007371652646372679696063817004324299563057992079433652153111221195961491258127658353772408383336586122358806103570031947791770169943408994851804650939921757029884137432629107898758254318083631501422111793745756349331131810188966278929797074760284630440050161366532786176231372979155243388125471826233979036164814866934061683200719296925923468809035541802101147538282398000174861527376163787941942471333478104311742927688346085573589483669954790468891227561612045682638963179450925698334912770486951256383758570988593068106840383238917796786873972375892119826192551435990466844612550688188760205826089750377210725739745833538960762554822488170064072881984649228932555606662357175799276319286373825389696858587544258658919054574718906295692115978730044780579626451237456108757536595934289761090604539633761360746295984519883062578487900093262174210245336597464530789938696683767504146183097617583341319102672217045351460169632121129281382529115041602120755226849406179983728972392289616665766658437890336077002313575879973102210646559968193297967131507484160104475184679653445769259506929479540703161227910626655170965129946952633972824537493229232110619088126803162734232474164673650383163924445225033577924429464806488470989941593180357864753885995023153569282882737914518912603980591851827381627896293797906060467766685714319830772230993636800207729274000766627194136790703240279047886179129483327881678253604184642841427464667910873816671243078348522186859968530967481527835734669387203461683353863379421857107497879005137684271427071985452857818945796902623533661877702250437214774618673593039460510265381110174459228322307242166414234978332313357756547023031616467084775340952832183999657714885612513461231300039415860802181000436777337276589856582297553887652720876123269258447489723182604483371966144362302589632268797888758076664348959621598444686142284711707170758969793495840898826114742013281428923670375582837870147316682373691206012754394209433063328629404725320494810241279695353043094634705320095767026049131367281330032418479116187941457902284769984573506140412488247947427378780706694942255513312459081639674009578583537283776490811185829341364232854729049459813649220187040566219101833574558920204149650531975709241503262467350695765825762470070557432123580110062196090765906720931537649391333050440956684475226338215671399934724411723849358262862746125846821280240891413342469544681162773437440825991201228140086413676501328884045767932943161864365470349575260488478896768725445048109659170903967666052773418193563890218702586998346725104015030896008603622531127501528545010736192916260266713576346829816822651373935227103111789893422011603975054024819701404061498951333871342022863413103411322959405944283734584064948256819078913958469871315240017385083095965139610542543705877873745026252072680313145902617642832584099181851488683828057191796398334469944710486534099215224003650421681144864287420420146844352521658554228166789212337651091866653446141111655470081729413877547216451393634490544288649289369610574378757012665008719825967447327473946231182140286620754246920207422185781619598042575288909258456492160359174218055116241869198135193453752983890083995113696931818173076184510473630325353473613691279624698014770235143360740438260487414043260783942623317838150101222617427719943154765799941867933176663660940653761957592553555833553130680535407789224052776434676937046162873863603463710275039768850068087341785071636765797790487782598065247611876780396432169059455813403012024655205946932316337438911694389820173454317458618109879320596768325225960826327499788123133991670748971883694119461057125428932307272078386676525002637935983523104691197177927233280927803893689143567157678189415759494597503681322012196741921046846992408865654580541093373944854186802754002687279894816351768868886698056912778985785436999418913015788628551763956058910393052030040088301177872533413564051692235938342603271266276081166799570281316202764036616292684484590497119588324071382947133433230754469184523784155342140231949851150852767439944414187609993218336694816567734175618269313423948318142599823121851256333404062730782889060968532321819151057641150257572939471777986479013052233596633205671705685176543008118363781312269888357140507883176378816585447006035001842621187142338983203029183627271750766399664718389608765835169885820923620526852014231890905018596395992291049022487104191982474121415043402691369752014820168293795409333987481697597507380110401931751587507766830954557908035981719056459822898101670349935611287772634486983003348043042590914563013298410558643464484093827416834588250192339869336051241210575678838381099387499200169781170057889768451152251069444335754578382067381517650743569323061487591924357918423433615224511509476704650655993971471465008895307856534020726001055487622663347753987669875172507709659951326878430573541999285846070092820803982295621635797572271674594819766612880242873856825205350607123915157768093515101403326889147349895168223848609046145715649957337921681400021768549165691233441412346098071861849497231806541269675452358238365565960223447723976478048249155128596107771405518758655963031839637324841418063899421752049859426099152336025376935929696542158043746358145351389045220203569238474864169402431569395027364942198640923989641634759556405188979930127710540253345184811374770178801154717888103971099249383078565167988870879610079138982536230472433981744760566636721325224630221015160720186384000699586847277439938920893530122035889700605866937705978925268137606257435246105832497656992967355196367955151890742151859712152391778352411338348229038705054256288549864075887075498426290327068467290720818736381112120748273340438486656445930613318046408073958157444652760118330190543620839808202870987461997850287812749207492615004686585161892210350303448688806291500007240375620196459065468196162772247917106352589313990074714019712089165370851511936596430791886940925273462707719188139349140100219154729873696362368268092088847740505328516315305455587760813210560545109637468913837164678590515154259551690615896730376097848398960896655979484695461624868754486630804011785218114640838138112667916640976403159888080595773455069580233449507466019383989565197770311041646089363122152064972159016488563017666037898530000883332374034693179450469491164155911861858886888478099276860718037107624412914141971488846666550844360056079522656818714708729824693612478190334886664998394751322933187642887665591822403325086847970444366254869541412066876417979588464647177974751350788172924174787716609337517925696559356502207222144277487016655554913466468449781450134609712170992423306960964997315033451515031977388848128803466061705393727430361278364370746661528122235855140664031006026762703523624832820240426890755704335041690485828214682863041575306102596297635783945417550972919640259053339997616476264009998545024800418743898584740105307566511004670847033125239062755323988467480812027979486166048358968830347859505467452565043820549746658331336538125443954380284168542388478265885712300576906971032115209157414771152622617576361958783139135942718375325350675030183714890259601570696913111595694104374011879802379680634981366567710052390122967362122126491734648103979689553190333195829853903796661826095444605431318808345014923174494009293281835626785395335790698060070543424284265882873822989744334804182205052344430015476815485916193311809977368506194210077216673932307697602843384731924009413883088268829972213984994062977081250287087484230667451891144854962671527614707388005763470543032274850743685549193035219656537964672674456427126913755143021483412179799051775408938138838225907334493473821612500319107886392200165414267833622281459828076354885339293031488540136766581069149153227337478848162287200961322286948123972115330424686490760656721392772757156679463778141457682458010913333139832336585173933138458414824329505194815609470353490897744294334891568523076872148719190345255582721134698589211691035399306979403675222842255127395390327328898679066979102378752326562832217985557311992770299347510760915374238399347936453235498866704313503697472738917640267869066212078178748270507102270471367852625345182052106535785850510555054704845959279266015519606866248721185750905740492337828642164267245404388236563803747450705292905092105472135717371208555011673208517712796516424795836516462817557958399628432376988020988691011438937002343974401065168142521485707519278932781660383606424510926039537726117391063371945674209589748511797046603220715918239253652426474093513003443854187193880732652365904158012287022869931464576760728294255212572640458458105956551321059501647257998077424975584740393982512433273683724727211728673906379986620677121232196562352584358777928181125588340768905674037225947966135755803381382597788475598206514665730904016187542454432225569419015255596555965017162920379359272531562459862723342277245656191992895442086731600933631266843376833232894221452075518661885007213814759548125428005216030585597799221982531640561179328026467326137595268732944030180186738659247192495071195366538747931151637887207754485884790991934865506308710598759275367441134286671924598775504491226767481950904024533630114656286327848978431977374826878751800303547977726521743396712575087017382247765755090591601220563227345159184974115461635933815494376296059653503266822340561067000680977880897236145952338295487594851807489092754718087353889470487929060686763471571044163657286233285199697679408451662153149165861149281321053823060070309120780065641193129897720065678659863848239787167456620075191781191786076877682874388668083710161475917606322568727517079834778944080247737812059366017939820876008237111321502866055938457650180324307049288685955969591888967546317187999715143042314557172475824383464854318777858675983694276835037999469072477141435836199973961168048503032403117532689889196471704573366593177076276880927571551501982725094112843143532782062975996636062825189559757936000584225554898412938197512403827245476069587082771285758771525979557922728564851061277037966072859727336907984525337228099580335999359531025674448993185900338253225839791912350139988999688569150303781273680336260972876383249506288243230492065391222305794182966657991211829955556123786828147566960087416299880901528415041704753475887111856888207506578344019936058028064157119260126540622501079705814198181898115722282060247802894085896697742453895173444224291981162526982578222241896354212723814364910037143141681108343111623106401680387115720769569691267881310594847813556211976233700528766551122780414921532191918228058035828104920147334957337221961467623563912338284823704618840609854179005155252702030766316226006146352512553528384957685539860738929787803448454172053425294056632157226635533420034127375945587060316466396555510211119882760541339190837975722459369157270418676332983297069650118638367042299203969592927913676978308081459228687077309841552695583953257966715316203764594265814278414036246428532847024571526373336517048612891883939526483083788586435068202178009201860315422458388752986189014187704838336098579799184641064322516298134936270453068830717313447492419275034027455005018745127809091493685191915933126616103822120743713057553529783401522750578892913824799144906388410484145143826514445214265510054051364796119451598523925463606143819831397651085446512096545169703648578330988335299966597059089973951887355970601037838380258581180932803339964815250732862017261120633551172652484108097297206688115807916000411477118641275086735990310376579812088123670255683335871282874584197696223525064386224660903006879482830887835406277056014843068829563488676679114135052763112929533226675331628464325054310126811196381132109885013823062177036339996274500977662237678763566594220967097104006046251797206220676223748104558516327648612108050660858395878583720617004911286522563762073623470664769491951046316039680527790267069889303053543264530053314020802534946669434109608916995728253147042586624523039504423784161059471446006367197400990802740289620530359822910435486113279503437916020771664260185569897293871083445487007319702124939077366949405056830372629300084448767089820322323659538384435142462875889187064434854710752686642803771920649046324446497946655200135673940004451632849188450868184436257202344151384994274616274901107424760587565056618281997984154818606467851861895620254572220851678608829556357236479520392180424019475604444998777144787481682252111087763585491275991823381246531701440698530763159157196363616989445852062173261601957075395911723118257391654441866833736283627809810736386495102154225780015007153038962027580887224312441463898474260271711248767909282754001609888402977031101934501565706136096641165956750619467944881511407766420564526187898777962705265091989536810788551706234260167782207609851372129896229139069136766065874807396064362924107846510274319297356280976658936082423037157190327800477062306043630780056468379479202726008116124017659769765504291214229310375018215862772413856524950314508059956726501654092971744901768682123982815712752280116018102976326790235162355854519425882634233826335604554007296494387573530631261107125229341521658049621571813630924053869109627574693396401125797272979396858726075351898426795488468353031262947883473856882964456172606140259740865440723242593157434062929246509024505046522498597063646951865414475773569926488134522564600188555843720271171391389254565124612125684772834638186958675273711717445111597066368500397742215896883644956473252035258026720533549148033536617431854717056276651073003417157679901048280942664827478483386746164104429875557206591912844596111164748256614986386383251436598968961303585360029128225681239262425601548988007583589219071782035869689107126559229395636355882506986359303776647010823319837357702105050976907027316476920537047326469076974277461349969791859906129891060866498404968072630233910855477088139748779799628236346263836372679532923148033447734165498430818310255663324066827726541574619826063531199161248625757034828176474875142283472173847145190411466226771644522604028679543892788874019105329427071729696908241837765239851388538043358159110105424546864717932923374598384021687285091946468084189134920069287404320190537778238786304766947539235791301718248985929512170851812777297648236120440938227718802077073489917741881277391142095922437851898738856310348348009060183007542886228244915477347049114501529795230457480371563931767391957689979948191659887779483894695487617131123188694914627931584520637138805504283294880496557233081176665549505556357709788886663635923709736377820347397393313771123573150119407983890554630495517683815076532653473946077842391529441761864184165097852488929977636562823628620733047723847670940193449079044736566437532089700934853607257391301124021426967314693091000424069273545073032922665861599132160121112026965398574795963439904333197765885693137746229536762285429735983170558323660134733491195335029518325725841289380559271791526301741346500449940508941410928674082438214612290260973025271957256185787040542505546577074347693462184849344740914267760855717897176809963452148010923375478318261530121758562064604457907458581110429889092780484004327937045488378946672298958093973908221485837940196706939870314432753196943770769193122001822285240522431822623700827693030906728767296033143632073488944934208589032059200878731665989391086090085394997435779159865027533544591023067834007114484269195664093295291490180391211575242439357019472170327172952954096259617018480053828372303041900067037789397304263688010402857433427024323446283930078673730692103976696545266186759506870178957768028767236624095231356416565784400276103564943202575264964321928978037506608039881263576605835447518339158089696613817923970878584669131744507349577210398986022951629548144202090357470721535914895442583865592132730740815280259784135409834734905163294627226588404593914126004200279555468587978370220941948570800162602631217785274967297647089886732447140831340882382577320322543450261309613260117753121202627490374203359774594879914797042335874977544063331496977480953031615851945187699137026433333567246456890718680517260251657793374298820138123231786217474731071048037669899028821538337090456328376612702353972321247535956416650762258392795397722833019271427336414812930310506642633930894850560940003697289048380348553375593468185068880519121197912914560370570476662443479045364995982016315428708337910906973994570817444033184329006097257238359020292655411104399859923008389339356377145486402284701925410572944971090494646240869006541832551819677137284030009199753120554067029615006793354724910486106155453910147255097681052422683931568201948924259803796842207139661227980852907528774206408252881644078741014746499650055983712296763424629061822150721032175594603897319679591248353730841690416272666590819683643730878998360253116646403009054336475775039195652569418558807772080453767368944664069869360232625008229254112368867812126028648006212581093938778111981832982870055759271055795571667498142143394578649700424677159152857612914583799702363360151950300294842496602948611609358782886306786363082152888667562487702020152679797459816823569276186611411776371426800788222068600465121444952241026907436238036183816151305231030499582694028701922499871064743308044903973279494045317412157655245855216837596302546682969947395613242450232564331231089605241569941139930668933301665568311267184843593546589672640970189057686732704712695559479795520311071907939238059987190720562982398548166981325976009328729671554343205105288237332951621393137727355751926963867047741931307995745522272064275085441533867145820725877021807131319838162747134400976795724022760107873207679132480693400711492048116437148742150799815400111505771341708411026268283636672564855719107513741007233419152738455924681087166024047844482513455008005487958704596591189380035630824700995029776513369498319549165265688333171640095490916389650445549307132992563979646052633137484601191657819783633831209719756249291446867412940380305120652818208740375091537364589025989762072076166695186308741957977953192595638193960658573627958113619367741875071221204543978487683594872937555125967529296504512625029144070663144637938003861063970066182411029810600425059074015754876647687744197992021884112372058066436072180677173553234695612469632927350258328809711952119699205868391385047264467923963245375744241789145976385779358005953967497074941073121879665774448931173512690060567974435387469073267379137974627689794353814043535287022283481340144647272637586481679931552039744075590980154655755658451569521690240015071594395349059587625710013995124296775391474964356046038796835010435895494598944564505819796451408568885161174013501169298301881423676203875538495115995087578778985510079989836326040773543515243815724269451276353010380585755707657348976290983094279829576291819100932356353331856269527421013644554663798099691477826161028553122715197614278251122147407073119603053734695727754746337804851629420766931578504575170602920813293003760049800252582088780725527437525961265375996278503980109895577341912009492877028000995406318450719153572048567988279490915010966499494029379205179551604372816050024446873043960991340337951278138450212046084752584157984265700046620525678169946209492118034425958289216782204203732964708624596189120598045177761330455701013871913757179188958345843946255071239309309607151845771108504745550076115083472434634453750620284876803897083317271017648848146055622182359296890341208388412195838752670067683029509716713771631981159742182313203300118469822180871321271465873427550306524210787279533800975493823591336562810635278756120534670024097122056960149837805844401616540302908321157794141805977214723465659398398820435871140465845843154982811544318743025194565991031822428863912950241124912805933355552489826909947811401601818861236424502987777581654245552477393429499302584795634104910576495153178429439068529818877639250425240547928179019500261337960145133384492428227804724888991652750590634643032861548229738138696441277077642437395804839003305706920573528790771087291904512030456417335627605105799445406366811682769971365102006998050551098346431702615023623857761860667415737551827195367930946548384812252766944145085150122499038123578048692500385896026439263134792349858122345945111761001348299381284646153063890379207793799300847794802981008372564939036092761400932171023237712170257572206860016658508483800079754032905204121431966331845023554309151669666717871823920723800624944032717768805665222995725427495437884507562381241188778075848330036638436061696337503179128230606123188517741584839228144669414094370316202207079484879266989837489388240569064872097367961078480617548100705479141952110494446752039768057276704133646113233090518272584692754904678868305372322913597550512654073443126354297070195981481141031071122659954554421074542486753852646917104169950531959092699780072566723586608278020353258583029340577014568367072197764369887043212601299179836715040516650112251395451613999974222209020962580978627166247411187643848381271448937924627195146588376308131043649624667842976412381899661743353405046896707389141749846387089230744834138443530193057130519957158773975875985576207240649290941114026048548817593603238215819210691103629345119746044277923522387466992819233275592174934397410692378451787708127559589820350232502421068475943370694130723064647672357006716234212012118864262186239945374299779464233646213465140641005111588145586020207342595117673140517650894097218761307912188166467188117243675164362927375943527476022373232880699521855694061326762013022254559183509043685179767267880048469064108005541553046584422466391144853839255741257609796538628639270045325180167717014372494504901505969881685479708708268649371129741226741092992488932474905227064303935638895023503717412982835243088295264018438072786789155191746494178336985246353130712991656428137869023421750736478120787962612675179474095373902368335785175071065221282957925473044664161717089206040976909560970712639356057696189091965096755317392435758264583172763164261790595248997004491317050364746079722462517817970322588488915213995030082446593605084509786905084266941674140968749409719128920704945820286336526410663763105996477934694923747680134738098318276092148853441679445136552805951397972816211596021749078696900050951159773011329883832942201625145393322781152672460385881395715560702991390706069940258108926858705091061887298632196966946265886336440540017966312535508486346321022652724824615442619297356026460421687239154531286226061736264807420212870718660828036669679018061169546383407724167964175946416128268261262607629640582400474272941898261568241173979867082488660962438114953385261307505322950175833759854627120109398418161347800564040708871541470005022751469494259413712144994115039090438176397746668286722472759665431113312566454586192488906838615446003453179887352541454844824992086680675915409675930074461511651765587412279045351284084356480278754361031539649674578859691762453172254587596034664561225364187059976115182966153843676255798335475491213979831815530843638082951326991463813130259850210316058410079367631449953444455156067395205046095351169615305115040823779154432029104998374062192889858809095357407671156999464900488227956012861795405310202699645683374903255972228011740738996709184671448393365684912551500906666204077225067158726798046316147620094214185448943451608286031930707391193997607343660440695282137024222627113568298471031498376803599501619333080431620523851221056045700584408010270083107922323059077025704542787754580453636326023970848550957511033872382198558334221575766590533509328513733437830927160603353046161878488364794037244620041971820827996160843552220634209968234281383468585111095403596009677608812455587108667704517719429436781811987061991624905981324473953929145937665205463468338936957537815908967292152587458876121285369796253028336717623776517206462392713725826072087907163276110194613913776684586245240912733016593738726147187430929117420452342625149879988883701081985679124259498382436950297877312542873653075231158595757735819852799679719967000032343321088768374522701665735555148022054119689134561036803903205786581786025501394635848710584349876945744808926121787940241935404171532942267782603183497968714943066517504267345045858052089121926397349146332128639852953332344231505673302390883159937534344778666395010002611795816729471351386773173534976403825298998144286476202335402198670336788529189627239463524667648768876899032653384225784438243865664241816800910341364675777541778538484583978511821418757941879569083876991391516880583149195793317191187093599109669803474827368599179943588310268415393538328966181959917947238777006289474846781703985120251351060452640463883344351128593252971920609504284649814409942268068680326210410311316388123668766690875162445668016518372860988200213030264903921927834207356345737970171878315652535099516246032866908758280062020019540491339984972475131866941287075682988393873390670407231826214004340293279369970995102556962424682066688881154997758749287131578104784206856077031408800948502315073003560400232725204504616048339985740995524339779335490392437865065778211767160980940344679685175243125043447070023319072512521356995026684047589732002081332801633134915704031601831705489287293160757461396462410120180304276443600179190585967677455469025851445532451106303175401985061288793327610680152398572912578243325186874643811140802731287875014056847149598746214263412259426891142978989834158561816803982176832019780459622603098335037096448537505101794652401396171152062398168084373976720786000717048495604385070091011063716101130628666148654850258240157861737741282155885045804498136884926082817725505492871973466422400105101997539052706644588272816014055737633961210502055104003413635238074030171798655877486920960700542364508334304336088770649389573927490910857098240307030739020658304539831784053134833418401540455011355229050391713867868770596211064540325893778738132144036176601255682608997031640210590490769902968157944907355443701389909314697744064648561876764739973251212052400990099412586792819888485460852469654923165793124653176154283529316602193020885105470529589094166573063625388417092658084719322364759977126858495956518122088763350100075273492741059758764838184052379147622088630517408442585028106030828777866171347611559554606171718560772413035877746988690394682676817750983410427655301774172124252211144787795486613187648868202203097825393231228371219424635075854005469723881351589451015328368894488541138791960690906325578450642212497133875853447031625982802374310773708078175192302695518990711621661066599429866478122537637881292361775207467193202166443605150659743489565666765017909367989159778088172195129849956222922418477588383717954197981291118021142397855313653663788476173234300647912104324620399989256464893605811015303619403655991966882496442478981622925690120383139248052805677193820194308665933015484682625595084412015428051315718502124093511352751204612664109221064963507867653723115415718929638752323897576654652732769912643871810408690739955232499568900870763024279728408078434753200520739320214306818382126807176591084819010313365121866187390327524741474237503175152949552815704974435873696540618947900843184976260109069407654603320908502772465976388952969986556930780269931357710525606034533606191578394813420679803171373220637154964339223762655961011504820658787323702178079763179259446486407746207300630567539104261572936891112411259774102845799434565573260731705107153718814054803009116792031884394974372940254994829627200706417294890486461987330964458826739317689877494403508448745830308295963471550162193952569441100968702936143802629642457863400190005269734452650890129709618303358092597455576970574427983361931455161959567760124549542527496927487025075081872055272096453808736538526826310411005860058635488649962377492696284961842662656610501802031397060312303318774048010671735694081845399840509856650034293170240737203001771532586429998646109940727359176620438079155242460838267349663775081035482092870725598737505533646264930774212661625476068069102897794580226552489927612169464821215682736172435612076686731477944647717375108183422703243009135404155673203354525599431937330921419410970652130750833271201794002681160189016541144748287020627018583583631199162651735682947751803892252655891839415186779545098913513262284727107606280279097003387436765726338198343515979776579753338708326248320481356590064810766707832578224180263660429480719269676073122848645968656333698561528847190389811284800056624197181731862450556357288793587287429750774374846800936405410628875178673012790674080736541444504660499791284460195792195283914111226034012753700617058106419936364203174502095023926918907973483920769593011288491171486878846650686715302940317602550573773169294037888291976994168193976879496929660043956106065775357674849330310079398260855490264299822081269583089028189536131114848587714581833816668224518456276357692828704741293560387398426321363960090937090101007995799871786289620999538323420817800146428477483553703268664064564764505835325969232281798437614396648725341137594792638519307928582839229648459860234246793293927825159332635351428869298985510967950056382709518876271780149740743024745098015836659798681761097859291625390924074575375844893806140270104575978483809738380539444104951642915392381635229328466030845868063074532833275760116625134541697594940870904436406928469162203405862958529834094744004766791691927483439618671332529332501550772738981180269797157501215286677964550871224044979742122538306558342107767136767824309354813579408390040681805620954122204446335075453262475635488098954240346330119299944425285747511892675274994336451024328329061045357719834581143683163323791617539781796462206006303502297698673779984430356735997673152449368154420155455083800573501758610508558593685924715121758281692729438174264910228040211012347694326339409495168451571530159623244030951783078485879311198635327538306742153622794485984034188614117552890633864808845757104135733100445802263109722309724183019217480332312693040914416714811406175507929542071414860058959977329132849274602192487810080544041398009978456682497273484435497434432509782666227302043251205341765695651751778911634983982311968752981731818456732805929954418662947946394893273203338956680300593794777670789705742496690560176294318658939643814124695882481589595849354136244250883729253168069950641341664462330744945770522958664790565285741179831350816940684714896960222321254578696884058403294542613499092474408110941589236169357728952062593233110289040680393909344586527251661896043608739413921172196111803543143649310868401826201320273723892465240568546840716961600349459450941984647276162631711496746014176677191242404770200916197867773150069074381068180194160209918477576645317154489121429538823494716684043889334431688979350678021470614557453335839936673564869569339225628772229049811232972642633467626765119419102441122628135719647215218852494435882101741750399534123599450021683986539622687314726033425790230563320760746047647888221889066674170544120166283859622884812939681399005738588844758826283761035325602576254823500952601501711181828160131212216078233280114913059857022672834338300810449072628386964869279155303570040332594489183185063739009303922596039963542898782851340959152414551763912213452220470682546220320791145775865716756140107590307182125892312904533979375823884251991514072976825623773002051377240069607798379830597518195033933972462681096913793664989627244039347448179108658705505457591886601729996576449324271082436313010198269362525149897459108842516808326550987040550651088075348600493278831212939070939655449965401256777556949004221874311965962437644554717977518966923489827875331628845358582191913305939391642026865962635866719142776014402028832607534153622083784216710144218111787807502362231584657843252463278170653973389735694319457808637791165084481388688039698554024973794745472432299583077697882338938642246860672435373583037655275267401202975144623113948062371961245927194663818918695891101836522339151744156315888562040234221407037424090626465180617846026014786825594162818680010618162695189310813104739922082705016777687573543357988979997961729798654318994404909590040576928093696706532255404701415541837122327247085327101450813781137163329287187410101675138792427942913150505533905192548115921976249774200138685479892393652370375540676515422618079730188895734084487088398190760011067185458343215077957182861176732014175291770719096794191393920979241840571246318982508758230155806937031808932484895491764698258241778405894401821769796506428944221025395456969059591679163492026602017046553675983562618162225860614375454922010746176612085302570166616718584734928744084249619252003785607104237170026098585786882761305421646750200339042852561717085753526185053474201981799015371374093120917906096374238892082291093596914208872592302219851346495716963162787491090161848038304079723910588839186574882535169298814461284025722140099093845272748584766558287149389946535144055015345146090990707672198911891177945549664980497416099177609729418371100614096511751659617337820525758330759413934687227083615058944618278707201547613298352335719500748886841123149877927923291671997286653514264801611003884704568480703540724816933257895461308127674472148540559689572705817582028675134592119526567238357406208258364846351140878407440441423048599500312145790332014956804884861694692008996522764359198936210022904918340002942330245246405463363108221534474760870925862246233801745263429358517000227895225734066300944849126375287511120131309584505973297542652168297632522181485764281319672439622748393172775615930227058305505123014971026468264897803929476879326252803024581166335926785711335832759703800887710911567517749001545877425748255075012222445378521586913366418706873505707346026910185096390966567394554013077738675273279348725277952297876605749422936978317263836149132943674484192215681350405021877059585969342048075504439615756325892191973456381217948659810163047506220086218090027878911989677433000957646734929578125212906645867237355517026445665225929851808661931500299838186058263339407020511373466772057469290162760596039061805226485253429056007762563623619819238214857099755002521981335173458053548644706128970556335509997728832676719603304124773094492919716311190457823823559647905473991108744911702470340376965867265173638275272974724942415339137336771776907617572901696498799118924467827299802181271041004343132703424595989872284351109528031004611360654850123724823885404157799625169486920933154689249431344339163750294225693243583848560765961016964378548421893635560571950084278560553044674724931413286334054509944356981815195874446637633278518197370093585830313003581527378643158613747062473998288153494599285233622732533029393216383870178893366967781305294277515831594201033218485833777543892298485770094665430463750624332828708954145032842586655083591110986408408764171947843633278605651882851579142803443905389251659706434506496998019339580414345115916515150205455740512877551984326376889956204424572244403161261951849634871121235662813263022069995445416070371434875215445011289104741162510356343096754562925265435304923330713498596966799565263810860932663939829736678125600251570134925064885493495281192282528500561203394005378562327924110314548455392018893557783527145279891003855224418299463797520124447271856054327990041005852997953469025550285356797740297342253629534646452031039485632957138969905536767176329927312737340007245116024813048942007670063525293460227882399402029573974508513141372162411308724965401387683101684741529148569157870307099809817640825431070532486558182885658825457188602196638737897712218200724350983193055108342468299942379997306025632739587015524095403722164441606524533783502969718910583336263666744342492587027915783695831057745518171400094890316890650695787274749648506569082845733128636840698492760546590472947034052253082708535486664031311565718376844068731701501441484098094160186943167839362294249740042009616213105236111979110268683719405886312354663507449771600114760683783583815311072147127371683363989882906158256733500422755723963696289927437821047806109079665405219481809912379639232924462794843256206317148025159191336766707988010716749174167166858867030277467139833985825522452173794309950856620000233589357560299511326606851191527032557184139173627772130822922772276563590814900386811406860103817551876652720116899762331474101692892662616684138675915975737143020529743907908459700429143275314448446476236523943839522653578029874433478487924187956776211336667614548278494437395358072361746434632964298832515566982827572345276043029815003707096449869292793881889398173543084722745407984848396183236899321904701042822739191036596882015000332627128278048550391738706856490019914671699077451543381033501103623755314545041451141949023709024857358547678754031377841135515097371764699383140722687705160859201617941747579199183243564337005667766609616602722076672695510260706475258136704090884075767799042482394142217554532525517462333071918475829753032743064008105203473498445771620891512048103813982252586846772211354493651514909650876045704294622442641692719916147538177844402428101309233171896185177099428876996202313584646114291029700335089116140849439440753640615143749061781657166066214583532014202552648125026602410012080306250524263519694608888473846444229625934941695649596199748622530170565417926285443469995367507193423701700973659876960875602479711535507088625760557223536312920540267856009949754565919957878721546806547418976510309900555035542966013312128720774489655681468037541664958513148691196223374365252236981516909618967362563393516175659563394580569061186195956365152909823413890454659188430070597738019577921314292185509712208392984881803977388108256602436039407074361070241338302770363443873454622592415391759660361644620488041430035402190427079232976027112175706975556769779332974479040812541006735682448539273160365044758132737163849752457612446137117595313838662011974390386718787841184145077896814293653950308590811975119979669595783566194229884475821964978232615715476933171839690593866093849616316463549055320688362990293050639868790280865472106213556068953847489723264637712487679713382777524304020687234774753352535072758144018325319867269405268135911802313920479360968569886586184932542504410994136403162464725767508184876444582892673197853960823374792290161786845679167872664503771830879756739459828347698109389654934859722741256231280333682156336253200207828959146626777370799488265436406687541329510537053386777183863188600865088859225381607198754310737257080369455394054341962266809542427304186496326689578072303684140162206553946357662423821533964378230864779186249182593578891289878244726268406150398639672407621782971817204456189442691507228372237112856716502353892409560518799932489076124040659679791595240460882220964719965234631786397515781223669373507050275734925141596674591959735232801720912817767265923504894078585947564663329250501103516729800243241929041722672190865241180881763720186934146751910410240353046750092287240682458171253165913598039836305640934836898451366826012980057920426907406457245920723558205807339919490747097492537134303175157312981811040738817254387278866284364439756322329761719773176261394020909157508125515967682121381706257005534222103193962397125064370725685306198527576769977807346839703001826446013324070328414190726911592035325991689612669282475692045754910227464569894447503944088128451301678964858525457725928329986874096064080584421605491576238413945669603661246605329551291866339457911309809679743052057574762657506071152728768195465325395195610884894893753064158690685335662292263881392960431851771675143443839121413221987063708610853654142404522614289941663951315594699471540588950138771411174085053090362569513136254790003324508080779385438896093211876309871341217214326923933163938507176320843946555272689938835561369694172767955628515919854480880462841334014946896391792223575475151109731528723561104159218517380882968034702221841302994487693261175046737870638999438494011077335133174772655910853530340580753047825256196230374772348063652764539546094504825439584552728782772205662233193839213943317771553646073690810272682920676920519738039966217873816354280153213550298944471803600056879332138284575189239846942089129300745320950757605691501162765781819639584626247866961129115153275884858465315538363273593585768987894530555201579528948195342727959836816652599580447387660552287507372077737113890466275298758510164513598285140874835339570489216770473020519665058449631686329973977644604866703451716537514835838543890322343730785099965562604730162872581007631532031850532503390048352104741095355099890041521271486278099829554254662878446476820033389200508123426048831239004048464935879051330998137889801796627303658925254402480687070165406360341331458168458188581009421597480155414675228573009928840542658763232455067761132352595503213028177195506650382928623646239246300633074856957986385352170686413820323857773415994209802148768537388833792281755528516778854111313939579466926705422723500458596147386019807418944456720297975299233500951389161235843479647071781095311920720894669382615984013360644051905995737910521517522432240274832173023111005598325739670248640133751240017316698890801921999945500961085001486239510039782659392153566165912655163405388608557716231361033730483377756256770055476813131841303544405594280346729365107486085552926402465742583357914866700948001777454818703727772860016589695049767160912013412537923200076185307711962242984806778248726925343142105765715749948632452745415359168228167214032912743393736883237664588096166710823664841108540370380224508436411755012109136483339497313304238216813573107473535625764814741918542180552274867407484352301681688873114698334689077887265754096211132307831192273161142659097464606506145100784372088618376870594234627811852684179009267174741118581633439257088225212387929277579242672102811910211358759266052370748945718423339700578568003530241584077156332769010251778889122935289492746260503438947532816495793443084828745878747260198786939895804950391357505379628030027214432069263777822574213667457808520846233125769956770996524474510683924231149269634629389671186931427489416169038066041440665084411872232814104933843993294059194554505795015064351058567096565005573152914712090582976563525645789207886822719746424643579311102701675230505695110120487966350144149581061860680648232099469581130084352836642737357150923188510022093392232117518760717440045120197737572581868671128840570919956274151486906584976704006033266927621896108442605219645740535388178690449119687083254993872846819414159349579836002914557905748445284588247269411438576655497318411886551630490410431589435631691501234411323895658023649192456730197209697989916893056651225408433042246528975770985265856749918419607271839224641023513591799527405344848397958039528679780003707986239181965117896411076622667235607024037499082882515986103703404619010043819448877930747003133560057852483994679522069002155394073906342892228312134495061450291048359902820674688752753316774692935625552836720415512546129918837960247724867964832102711035920404856179262315270141358616419945795347044762243581452319895476583768107640379918237894286758781875997557770591247964836591596962053044856752444387096524129225400965228663360936726649400075798907227803331720897631005366762009923559762937943347733631470452839620790019657741833610692040732731773669694396360760704026486706729927979569731551012521513790220639770824723597283043027549346582988027997287360036636614755042061583409517583106183319257964711400631414534029799054599754811743944375201156357996743523789244006255808372616062334623888248549742687160051550311186673670566337826653984659403518661080566056770821969826381370710438251022525039360427042764715032839905979621757559802415577059857162501442779679237709972454771202005552258570449764929928506577845718354288311510444766168461702018184119190812108728933850194118839756463725322318556202756517776810579754598540588631698381017319087178462248123492602544935942501635936929833567653422505236590589093678577364880679105734090581211728646636952353751022985609111247084629009379989377230015382123052672740881618377413042040282521893333348002703176377071287750055537678073216984422034396911597133369104497295183766347049593926560066323652909804015546486189068723363390345531419088152750780370836252201648519435316864091188616058142236217603347492244517574828572583308907725503098275620725831750863269601064756931121448113340518136387281125759544563892379192182336518471000356607688832441626861368987028236706227092085425401158057206815209229516798398268621050308220484533925513276891451296838707730925010221011131104775163225822429027903319177926166065018345958050937481459302805261428787693877183861604200321682039476718772190006368991129320562236014287336653835991686158810450273265247574505989600113670132837994393261935007947959934214984435639073180180933470765223534408699591004946999452549982937024855648534515523825391908130392793273697906932823232964525247665743618798903816596709354553300369512702526894566324708024022966630990570082695252503869938443676865313837921989772651022863842747415195046354059804101229746480913145301918468790667192672525984051657287173242137768876080765392549683266562128868749422233402206963429842870891491970056241299867218189239929760208387704726889788437717308735526255498978992330864719750477144675302586747572893632073685684585875623097355345202496340283143236016881364075789386197980148144486468610570388019397107539747781055022540779352264856572934349431666213810117916372677780723613304053136522767303698492509275643423124773522126091660022608830745510612709637815864558311183979416853423968650213509218022316414316272400349107873322542069930323520808250231113189178058701756995051820737425075657907015913937801307993386180634970527981481783201330105600631000539408578084191144166884947812346314148272717341810747515074825285280382718609786204032196226947161078361857824695355044320884699619522560826982324203762678995003346563152414191095722689312528536072913600866356707960862014334915789250189206713545042852571150478591970022230213349121833365558423691441756357768140842298715087389836720024568346392888626844850621224913084947483005759511444067596939662951010937459424234648602197297614483048529928495108840971651794474767271029990125984951602973183720279035273639788173036200966059731587289518338339060158148208954100542340374538499630469394350325433886113448829023840110751740748924963315107646315323668291482600565891679454093027859693068607983317988389613079145964474172684744213352678104867782844187067036362139976644696149104413352724168638877203180826881706858781910644811459234765675592927028004864684499800001909633989968964817621051679097900175454540951815786751393746815153306455578996027197180249248960808976763358530093481308861011451093044728322792826547178574935729237424410507823969678950170429364286466725986330860769765713345619122401994571952180759572767565993488542984052669369147257731781639307404996063596650509533761917023265211951607925279369332144135895041918442409809662378296900694295204068179341123419153265733884718837998181862749257488657875217005776057912168530714506928030628672008187340266434816937046110499031719620143038532358421787247118002382802409557457300003790065872862803558297574273926908323574610115179891825128949765335682582519024936098877831984630822812317279437905855638636810874968431740293127877374120762461080423522493566361778353827562708062664023385578855827542199812211263599986021094485932390323046874487955995179563147165781706880320744723699195945072144543191493538308518010681755487618394976643630516287543193142480393567997108002127560472385232941101391536815929885857090370752378877484662464744099128428776771361993769825912111169181832540788115629580133676621779866455202268535118896913311032731253079023921164111142391485328795051780508661572478575325418560150607431706665744276599784370007213848209191065853695059520747674986244383512071043990917905810851528825021423139693448558352593811690009567405298784108913958605419842048539804507645467023801470894010552190415780306452852621381348950555613426759047597195914655919360941895814963729549657614169052663572905244797458565400831900392857576148714661502122515653930710480901177738719959844599136389019902861765475357341757177779543135568642096647070628414442857872865414473958300716734184619635361985830352166376516466084648218614282208878854033976797153000170339419625878379369602242459643348210744791759988178743860354561253559641131054900066321881083904663287248350157350875959171487307359392787925701086970479394625461250385347132348538698115853525663161338391452954619438857857224337761080241876696545249843064601703512981478710086201093772076245980171969564156500615799407981414314165880602448737424554193297084331408974771903666163539468454221410678738384499134396474225269701762210479364922738928511357417922232414405078064274311626856178403379279177624215742610063782096000418385562996664506250141009003720600639967177021258916955708160326057780601846412713734407296561946186835036341696536480598434798526076813259246435455930952654993287718290050259258445885620196424585236922150077028947072309330920722475940696059207374413965105868022427990244969085182060928624368323412854618405375297728215177466881462871086786799535639205699954796515772692096389779877463878410516814802147794605324321952062348510205011257038732706459994022276561243013818408790003928651836737184861353396114427949593836104215090599935895945444832097118874864694937633115306724731399088975600340188463265158090601638235559913938425557299379339854855383017334843931698772562115513375117282658979076624318320610647636274595807118553669844174298722135940232223927331503755719558856616128315646302971308423353540094503243605617221290788622603938392185088341080715195675940468155346557451567824276456031005524706283866530633282329606760907326472494637459727541496308491416553145465707610119730480493686435267647904046047144616553667608293173522756558972560552133688088696800642777792233559431390336796556204550287928411518836463165493633799395702876452576771723959559145857118403452747715953841387150605427748316802306510493735876175855168582258962981843957072402505092777882975280415334655093435623721755961064799857741630415650883829887808544037155601197785251354613553006403739652545532260712220806566971325234565031567437539071938961137739045678087061647582170209751942864203113859250967094481140928956807345634901486011916020938975950619687211249190284027920444862848154632616452657265445364482819610155308182312016965062886525704431294682997165057194545593202492575102444718729968947903748827304267819933574692297019558809352240546788165054230508496389569109823352256503943812399195937394044630467906979444350735327015945678840177626526258364996243025597411290547787203145698899428475830867093759189840022898886197750094194929933306154491729218051273303091696997556691012531240652662117550967819470878919828961506983521075096324479495777150671665536908528255169419690703180931960490359943291651617668435589427704834351030171115652310076358732089689489718489373899262149677827697519165246564011195636299943725290746798138240443491826145679994324061707773271018852116207031609632974497331917544857746251434889889669411906420824878712022850384720367338698006778500899936983008349589062949263754632963714200162537737829688511731745408364351355383761763525653699745974373428233947657553205604258911094259132232529308785351816801214853659675378980569852763583968990798014653624713675414356567422199971956451486635038748226585492556975867642261859253792191657050422551369504583329835318978603639144647669796697756831728027112532624052934768107925101282230007029966141050544760091516016415245944606082425291927235007033643871549671778033089579057850217716348151294426930746024957860543560014294695292216683672649141010019705108557316159903869188303978119898958969820932872302705478333675172720011957680084798791044869030797268133696631201919247855488768798523131047252220499426138088645215143541666781768905810563419906596933519033844718742257113494011836760704170026445688395576471246259411328205957792056442143003790439027616623042932679697370518939388333009882322012474265056389225640357357717738932188311367538615548222436412766632664103892160038124499505286918007489149778188147293122239154272003757080206091722498262040603308481051166773659667022406344998528350680297853085273227189508489757636487996624304428488639608749097221633739563278133449437247185482318649328343789754296759017559105027337517099042829160699374926428941122567113889270777392684360482013687041157384181098204872091569033329573797528014215890787415993914574902463584190394155453295209386792050529906876335235103157578059806247126640606682248904462689079655937641943058308131055551928911844371673795241289320075946821358527216519244385163156107564383554433880892415883263176009523029080885797010212740372518138829786077487067896928085727767602634985818107391949530153031576149759701086765741570901395270175575021627774999864044417313070669265471520026959046032588287373992978347865080309970317638339572904395006560119554794671986306968925754722912653263553516644860018038221695130523659970133268670471317767398286938600001398584899908011269816142366309632297176710625497435573958183218170331661579506396129362047743393964357490694727080565420385451748779145601996121719990806948136579448727941301977654977583728798058464235246002798746092893715261764899947015422266798795986808419438544721423637370182387629044070142670758334478956647996282287364120621339667414409132682855318365989928739086807571855449601429841339004854946915493913416584097204246392244314305359389838966028822981323626157917091873229018260921201321559412830719933874098552310772814554814921525218718664790637384171280866301385998227963577577582154934431711386396743806313393320672716757724661357666109749452022835184179234814240455176306139805146092153701424108666775083569713691759579330565908106813711916000765022015447569443308172594000304838643875938097989800888859171202401966691281619828243501625800479710883869031343778214856408887851298208425685677729779695023835282385814919426327272102295423106941617123037550783503042172503833430996347875748827011601354694050236748612225428948761914236447414122979232403937425737777092764604510955931698251685506816615108115119758388020762560930200030010424433929564811350533923604572273585147758582298729782659063084386017811609279633183089300649983304209894944885374291296741406095286922327048833916658124855034741436224557977051827931746713471902766507673278643757079801098736751166743113219637162871175634371832087527610424743078920882681828484467009900276233712163055599050247252227306557095913916788800297898125541595465292098227112410967417041167398984258347594648212316347963568253411238986442960789384201407359672352119921483931240628499245952237669726157819711907692824764242536624963451468079358576433564528489620282957698352391400954517572046302292317925593646308500280368651989238016428608018533521390002304514220952342433404970705544389411536715647036124133841281003763948746875006819787710540559362353454333663622904394533685850839597917906840052230245753218176960244107789405943397749434384548970767809373703281394898359035629008007255922243917234280979208394247038481203100915691906764190591076239971327657549368531555971528048973433259239686590165563574491521421072930924575552377623114457238276648871230462310112206245520636911432003063351223688882563234134485394509856509335684771979042618753379076088287703181283153490722123723453830904569266271233612803508796629551293108845314628776637784271483163688453236665058704243111624952178389742125783475451264812775533761022751041199464255738786533976702590160076234106525177172142800177210750730361284118376908643052376336332872244032314638287536971789458168301013209707880317006977221089833594903871158671071226294034071511764247528884156773656523291674487884194657041680513882303531275947716943392773410432748027338965227707359631052004795424946768036201436655925680563618869915020380869750477790343981636549701849246934346011122622871869786300091466813691820414564081642843244892142180599615112549597704134940977669493915205123046323031091278312983295457355504967512852662595515864768017535368779855470321718763993851352413114034183241731027677549587082229429431073595646671704868042884082546055369180630193928098958024295790765977759151835956813426237610044198393741764047159275591019731759869850270403306681733581857443999395354182691562825407353387172940847360590340782878730347816170613004462407108194724277182118742127332145813867710306574450442446515390653734601986279275219717692369798162573106947541627195115161385081146619320550610454865157935361686982678383472317786203859244907082694258999333449542618249124610958162272797717551883370434953892308273791469562419963961981125130156418713906358937606170867559610304615942848791766582855323433425313032967034679831717537450838826889134719588114731694290519106923686233097114817055055608339407349618757919399200349268960082237731695983924691017877809008024129792260645400317852146173407257884075077710939076326421091713461471556765544769674113176836348091775254270851532954803614946074705204558297498360644278570326855157024031129044258474982879215507827231854645356031579059178693305527365617329134291487732986726754620377193374580397009049801584273671334089308801443242969853104636454689231403565114560536348560239026785892780899964815211276817796576279517872647178282852028028297055433775966153004164516503540206630681326793491786398645646128842694122329337343231913516023283479435032105456181162354372609411248587239680204513238702306101810670069919914495037875123200174356409161726208143664217320619334594864230036476802932429361234374481121825010231257334226208838747423567941438461623594652981399300925209123249515000977382460195732004896765153453966512603720279520364294731707552796992297278094101733452254496220660088948140728857095104520041741674006881715887988689262998978843884920969077304779908978923498460318074565174320769248385341066868349271587507230863350159943042683566295166462053813067635065959903853730335368959794998612360218458640769697929682997491290167204568932434910917091465343890816835611496639490656344225768683881545475805573548941048268168439294977775346174172282852704749553380390067806350171462742256784941356370783367300136950141778937054509457611447438826643145215059321696302431375545530138619847405254688278213816920663202326353870729562277113585389944006834596880923582051988703899718439568282877721841595632805596334904223395599840539324561801482639007264842411624287200972561220403510562185888953864110742804815117797133425199357059180598449381170022018777256891647923048158429564022969777106428071591538883839551441987889212718213750628054350300569449154082134746689660284650350554160151818126840551718601302690857638605717556747653930947503676485769396512922349307339633725999920246786853637816288190777980209540855819371502976086891642578957581980820369530817137266055900758588516004547423021226498805324999409339234185703434434777484641116092818320897093018531819649667075492642361780555255304016181058071079591474260978313989545700536810118223506600908199194261757717931025980754991950490250665080759152411776865548074932520671649086266117285223108432553211613368059561334098071558613221624537040213546827219484080322327824141174692762638563097254930809224709659006459040578410803432533592667727875861837591218677102761130991355481635638737199044088476535528387607447261261152546961032065631386077131289087643111122011766381396865965377001483502006795388971648252291837964848967513872437132085179427457563563932519034512521426749533725750347916831255114666352775802009630496605205250922928845241212780317857770669148744590959292526650612560068003173856700649425766334939858905766562644811286419449822906619484837199540303780542498060306456128796123399197303883747535107312986231490057957535764422818394441290832628344038632750935152696911364808440401276277167496991807787898865415911986420422226699326119870159498821221624940234886742473153864068471895502777359106057793457236852496913303729841460835795069814015109045220659847191943979135645762031753787662234483990144842381909095370226343471209187617537733754006419881641788598075636473225095059328495419547113702230764460167300677397672333772724395150428918907846580520249223797569850939295624316417272967395839452028864340913631649134821728549781074696534971082290678586339117276406445565055499740042216247452546927079446211558201350511007091150050753024650424573578170418114178741683634084641593246673908548339673707134888540131706877882500357923988135522809326022384134124992633036973139242296990569196638782775023093859639707790416180120807116279746576716140605623490348543034216022925336853158066694743317893160143449016885934996431043893441101393978026454281174450445272947522594139694964657899475997199814572222845087468408284130228161123875424992772495794451400000544659236817582170314117879827899366113147449073102444279701782577859034201552098482370415650530221850428452129804273360195187230781942761233257142771609776566797258283564113119411600431162004094583413149979041261002650343753411789709191954915400225107099256834930001800256953693618289384809589686219529112127175217937485947847950840347028584480916654253218388628872657104205082833027938817890408904536133024161711421844202533734489271728124509788861041462191250511563066462109829132085222305935527575036616565134557183768830911490869331477547602604260288700014476387611784833378785618563831390187654868791337348805795357586026064473144407446837481953526700794677581929448605684719564873867852193734707337318836926152753145739292210168782275922960984000447486643267220656920462723092803117713454739997885439053649399858710337783255437223723183193360963064815353356026327261313671945199251053995376541749865471882940075931163066398810496898681111420722844370683412357367266792548513426646382288415121008977656414902935764938896667269393709355745987493853233306862731528402515145966141317610770048590775399227413425123108383339726682091873645103430775156231416449373711122202138136414387629450919591101563109559107882898374790366488484825717615724586161807064628707086657498696939988378436195778923221833522022949497225956055740770709392918850389302692328416291749647809074238283197127440168829092378337064970466547040615258442680328638116581932680984370438108589692653494119980756498406121804768957188134464980436564990667622581639954251366012155798853408794788107062416562676057351075771521783786878073728720154586094935010318272878619917625893818411737768777794565202990156150749062078686092429114535799542851049331498601080393753494909409186478060019489143609928489732955527432777480866441349132725636916654310209934318072588326282143864776113086498593689452963297900474478061807060629620488636276490223532081019664813878130005877160489758600324865722043545834000827734038806819945175709225108218918122965575120429391865523336564744356760015110035619315278976378359820699841649629361780612151514915494188553271107696893441628025394030846966428923679473060048951235260482247207360131112816153865590191387349057299619241622307871546454316787053395182191706445562528437775558019004862706535466100123292070671414482996284039998615982239807872849435150733000651472683567549987367437420721915197008065552848472936748307391465448812783742367407047617554909300988238732147218449638685032027412326933877243787678814318963291015770517506501106356166292383423772219503269897227755940037720269152970448956377817562286153886353798407171141599998840937182742794661392888012444413804089855707816770765124694148030145912603790285209896332618035658449480355679005005986929264688575896583945826043646411693361731683078881198860977773784015477837457085794174357043272059035758400503150495087408886669930633703684318239135349757377433876276206162431745261227594812592504535272962991291942227441184021969693027506846178404786042552182776661825724345508200326234009321206117039567576174456785220243457942862428113060540672536583708839590882052848164749412533598649490938844781981273670622390867824359831820618379917968998097040406680069662928923577396312939177626430511045059576190509952012109624221262158651331256397784375438546711459816692657455854766833101150620145329161244590917943979885127728040127760226479649103557670184056948891467148339495764831820986014913058095779386764666233756668228452884544920781165805838525345671159383526219120476838339549899088332682675868447354365026313288401489381821601288028733523545113576521426519494790179647251077094871167111792488387955643663832867940846752228728702176780884516296526931673162384260268790522912436204103715080305696465595641674330758051880952656163228532210551585102414946756772521968950327818363735972942156447371541370473486038538026389989228096109211203993790391292724311508105435950657866457942980613595193559024484579095603347012061380711272478004659615727293875502071425840951527847455858094135230356641959905028832746894370670364198240583025725773316783969214304993794522787135374070946427940231092100848742607674953372021256124304356853203822389450432453751419336843976376107053201952254902226559025040194709283082051903386289186065152152667260967539310917680933213510840764357513867518119490237803570785960788053180096252086094566715829433156830346443253812831924863597282746272588271142797574452065179731387349298679508114869217788267348824345440746137815146796259671754690294841552538564369996980971759252433196056016258129700446005205465263022662752307729136390428094703665357182136140857612623410463335171768795372510930640099984293236371212719208593775923110117709358741478259294726855251234026852043278367340240577751232955755933020810278751703886212335361276628052796060110305237067520027318702717632036077720853999072329155066693970987884884726152085227931767926863818657553679134197747734757327904586555763666501072141410831698610350544779518984028434085370556156969338303321029874950021210182915597235105960866858729794936970923372805489481902883508050192608654767548097505380927913793522425812495980950851903100718334742155066407421536568156915798688612055764962738518376806489172325583802070555033469309411914187923571932400416142259888254542221612144427691055580026506903947251652814630283666355865511808731126582439896302880585998822550939324835414379851468549584442975610428143862267736674767863849428076583713204778937126410214393214246046376296858239429789511166287662817059704083189605104215113265034166541296863276345931386363023279288484639610652773924351430548399373235863529440901037358582243378282198041108994844785275351393552452485141769112020266300307227761432521181174928882949626524099163159361159240037647985463420973633121637715637833697881615346875820943670949844681332455534104231217962366662804313118227888812484616274094571168096374907535497268404761244822605784038910773408974055031043627223478943253683608847765477648431508367527636930160856838516125823377351912633922230565038471164533188969796436577930472964863498832243501765042199767057940956113049197737592442620891324846750164655913373921683070484960429828294971656010312169758300324135036267208268157712383511062848541684170353762802470204493407779143834553292448139697783982331739126927722944123936847762406022732340783353043583690629560664510748785421349458253058161823525602644694801604737356258444359222031793522245056048210776297070144880255994210780319047718942640629135379897621555464609599083429627509192513641683268581860105864471840080621740576944745199885760681997618385618829939200689501422127749086701287809968731719531556152865998507073527450456637314577586168991129475975926063431381483288976910291693430142039087981771210734935104830619921619422293646659736919188458334960102326242448153037483759117193044263851520505128495534822530765791561136911716289164573709881257994238555669249636476399527484206370403613230710257828559968045109846690481904324034091091134297768390760048015259056310561378179865556916248131149604702135235896064664248318570943271805587240469405944003611150163284025462236521536566480171936361751118352081446391485462677774049060427158196670309314256135145980589361780806181750872228537403421774244296581445355094401812833829202578656595576084810945939071908097804331886263393890780581618904765176764140755824824171142567095060880033156410057312245181676471778296005199721034939287832870198783919932834909820969502598986125269799303343621620472288938959633791179151821804431690546227086521018516780269179745112335260708562586342054207860086250714979424547920938585933439707336279643041278390447549242408530560245128054924335255937564346482256085977791583357994379596245626474728321675099352822619704388447240168347467261452089029026522137763339623644110144077318765311216220971811004355746880027211566480247285858714265565844008660152334824062239247969529597101410859779811033246163732752373024155235477956017653244908317862716923582759585627334843926154367380248731932850609014555959781915636218793084797868136447733538785624997084333617265785731054840998978583162061272374397166096674538383224393471091240772095631286013390937324588707647583373598403190233917364677028890851211330788336289438783139704463064411831747982373098244853222317508684226838277877316226821478022822359394796603494079845864853022188160177199525162505358330278430867598565557736189636152929053619256497604445329565557429042212885586250990097340519481746945852152080225574906415877464188330783093798402033667443475228113623419060058837056066546049270372457945583628197948921894338744082661957563870894142055595707813511042272935281586203882123967926456509125404974850497800407388566527246275806027316349477503612148552843296356523054984777127235147667183997243362552771958410499223169562913456384608080160670849741870600816823428295226730895478600520402857271270828219243628012598024474346527259777613976129490485471459386871337527793945213406197934448596464087375537085808589879496462496812578185399585218389120629238995077575110162802209590157544336083647301348338205800873554226369555143639405518240827990722184752098221462889658746430477139131876493188840292740076901828965059917139192560451342931774335772192050267922283891894870657889143337997541622174199440487137455222328691490804641860394056653413674122311113687867737949787974121900456077294822006212226609126861743986456452991765829161602136480188299392631100513195393019871293707982025691333054454023441163131588926481868775030762159051240331756638744189205650877885298612030735051302989161648437016649406265506677727408561198411508792134099432678736077304875306962400645921557999503880827993530834792839050756968702909605439419196086444041145824071219406687967244840937030309841854400434363855281325972815777557415443918724004268366197959317637892726931052712729566010842339079868263184971668222313250330501060600536851218827641244607335581380903477083147892899061890000909164979182430490878974868982819621037393030537005729923469286321473138213685293945096003164788447965922801070295184998462428079913113605860663090615597542869447033461773291168409570228675806879972204777774829574191587096745033928613664940600677819307891903637607410773768800425232318825667882394280585629185291754302094405756176972548280318422379575353927188152287226422612029926986263242890707286137964693785793423112184819987478553794570603613719471119869069667252767509817771606404069038463603987856921469545012967790785957355759173290716563943736295453823800130517839495053036230313112196968930221521006032989796539995865988375211913098255459631642448012093487478459965629777948057347369835748955844610897177126261216203456614794083486258454364338436181195583478291128046875631566136993567749821422373579682544537783929138343973995751882472366275840845244563388985795383902902738158193215526719246562091298280572533205475838129687403775408364483736192537902961181563474144872953768641928033169530276018674705643683715419706542908267059247650323149789481705478276860204125674303863251225386614050446316635887648203935579808412221061094487464472423609110368780450043023902648376945560279600064079677224271401087358770148820732769104045776566562035105693957059566162890847536732109406883891553785633468208176425917320863610782377410365279537723716147566164953019751721345556343743921293805898634542642004317741630669058915865911768122020177785269494778069695170552066628523191145793358317275555947406743257938525762646866219204997572638545194335782979074658013289293691813856499969688868715029515466869914884516901426657596004663916331526243388430111173345437814171003972844746661062556111888619982713296928513901850563739371963512898038156635240859841208998490930752044747758918841173798423785433971563424843737322429540972393734480376783202444620311328809402345033674438564209630585808248453836205290016149281891097838123630095007255495430832131545163643585992939897220337179510126607852002717754408584965716309705759151817762880788417693963330753555393655872477163374777796224339793343168427740682435805266646371286920512622969000117192730129559241987925268598445078865896148851223006291743674781619143748773678417464929085413885406586840537659881523156955033777308934535200259975959864689108287173297886476885135122009733058368931933582925746785916107595001619722684604869600711496248053422549802665854440450991067285654923738288472680432355187176087147055326681000421339383423356791208163128319049381023829623606379524232018377538374825582429893091874904727522749554202566395312829705055683493654310846207895918561578156234579010139018149476733683512861736432641561461286087139404452556552622549330445921940504479605045605233347043626959589711556341047397136839919372475837293111247220344994212539606137995290912322555171346828929299841731437619953945658358946282326169420021082573379560307424880230016296331258345088830602164372242670322498724950871013060285819735194732950873539702326355134313037114580954806049010323483205558466842309964645640731785486277680541915320317413026291837294305942919773355197780882141150421867478965350986486182067022778040648772153332919918702164525794560799577364657932658556219881733639179771564001153578100964178024823656515744329565770717110304055919620640813959357062716250914130867206917258543203251108618960064055789044269386080123840271692535792026777638971525835973494162748207522899207628584154905399759670714356732202576175245551178904838803091462476451261241254724776265074757487993050065789495278908207909478507027073640108086850763315470028434121981848801334336664349714669661160495221669500522426099950185878606754720567250970881367760338870287362916572743018069963097197682541972615701912997761151231528495675740550420480251521273448773755894902735523286659340173990117639873275887888364761584801793181295546518433442129903525961767532367245711697855762551442868597298571914283483951066556807777126946187517339669838784582827585790410366507020789231070132253044032610131670937738220924380942880180839490122994167583974677760808054760051641241671663632952259815032175104100793939061349261147487821628111673450457752367616683248912208172726823225727746997527253212698548503072411765456156230062482960710231228239413785465819216599677525701460277527583698577227285951350993825986308454084797776347805237348824703993850027708081232521066199022221642105633712272133417156048103300223986699197225667193793988596996129361917275584670280230849153702850800864132786593660079228582857536205974801292773330958482767991882712408582647105333510401026645423607679038818124232525214368022863255164885214219287770394531961364660711420775875106246723725422640517555739238650017347105882959628017518600906724874148193584683994200125021834137797983994161605208094008005741948644457738601400590181995879934588105394099726445920274305566715041080768173793700512510079741065887685777889631401520256102581654337237896373084895800546465405498938289373297632640793749461444764902802985491589812695958846432742988718696548956744994167056502554083161296757248677511319539403758836179224936158472417035459458907364408649534036401829525978210446493483664442336804180717574282771610297476828913886730338295514745105476848712049292447227367433943899319827658629101423938365699979866558566611504016453710160546498960634713902564328662533152079608244899515042063897959342654162043515237737412449837453361731228554833839076992860295619601405881304072373748849506676037252815264661123333531854911857561039092046215386076964767551565268461800138999527297430408363496015833895255840516417140423940880452223835689517400345339347579854462061192196792599333375926773282793299149181797848206935338695246322201399240725661293733901509835378244375729327301746758432296496889712903415365517895730104500625367993545107750040019974649332132997523932924889321363080949800772575340873516738735823991212759644647586344523612837975051675131359173941749792874259959440859348310572409778402543314129599276146788546288402231694071909882293131547456501837199046313468602712705287654346327822319905924081658909541849506646214576164571784821071729678998889912116211019768166968948984810184420196728487940202994135936831479273736666415045220807809410819004048343206561961222391581112765117004234710606484624061474473910448561398634676428004148173120293326241620335741752721176587478883127178440408226501387126186937967738975817025199988606242195700854719212794011023011945461217401409588238143770734971022091381778828198945805931386266887863688665103530572936474074829375465358113163421937756624274178662390188442121667790479521105925318568282021500558011028346186822796645481983501162269164924419126509422069274740491835563637165966834782966322064555734572806781315012522377623686829588331598804245424878150579082734112168753621852289887690506077573076756813309118266906361119366753053059312570695268171907590308858983600792629099693166028820248268438247474486090614471314798393906875320660265502571653550767298069360839653673901988182424099978308130171451011199355331799292515754168960854319594642194994549870734754730420752402873498858228872321380300108486817607735781949411584604290610022846228123812302989227817654805860813058433381764521271802319915703571123063086211723003470749151178118672057207560269429050606863401668996832875739761778528617606141347097005894747418956287574577391292848915272256764638048665226273530254202632887296120061847220500692467748083633149986265654791187485468573176663544279187675451967672837654439854380441500848032320529033375566462391183479019592202131389884840675634259006196694221571490090122002963687777902026742212997612242630444768081756337772809332779590191231175528975779980383555300654194842697074876349984449021717050826865312883874942770810458452380546353226755119567588546848582708374775809918336704056732152336640445728557476604625061693250967409850833017719071866626732499413073555514994378067243427692065220116131007994036352514324908342558736817618507917670640727527867381587386075858948375959774040340003080222373821462552091024356935944300855386305492244533802606704335854259739971461244942171672480952105975863568009957662390522111923976954680477229041888621132653530743538180154919474907682672459819379484197701436335857708687609783905871286697932150970324229719008513283791214553036694674222473482740816347540063873276387367022946642462740483707851953941900657292444338069368353195275675394843952971556603145537104463421141725679853011080465376847492758318789064077114159587744607605889351009222532231015300759645659698381632064404699410439276024267110715433189732535789732687826682439364601608854778321969219347247493584929325038660982818706577281454025905190345061953173217852011439303383736394359788695604725349274027317538350501411685778788632997511822765930655842762821770398399604697380964882095332778708573794938459300529461484371327602100030198169219016058769831128300658647805309337288467235690448998621812083450197501277007147050688183758949233363912575162941597986400138901313080421524719858839656786093684220538251090972784688944982506272260022889170928513137749025474253657922957562179030106565878254552241642582229491951639113285917346367488411639209209417862103404411939259776102954835350198287621661433183577566942672738629152491196012429242277264684996712017315485380909938129073403766321331468871888648848372417053517490212736006862841174270853534237881551018857731234205503961858793547675403359446574962404300958285129063718087501316310681695466156158360722291164651396727395871349345070604511956998917584801803918301776215844297879084564013265214198805377906425541191420242494084873382539492555692648418529208162540289436204955395664001486092077898313446622105458182878936162241989733547718467326848288628974999737853416569897434346848256076654367663764474621290223986245855856368493729981015844653557998454722771158732173208732012556409016240330456844337241793472999879362938779239379466849845772828493178532486720411835527403767661846462682268640109875569543985690292610367317317996996204931760359485207076508088871990212754074000877357929055094173385223460515504626134461695008639401121816174579690644625949867853483598160029252850450479614491249181338658529126868992156810211077311621958632600849508044100462288851702456201090756271417379544186651457003167924816577392719934260185713460921672960967544961762593777279097794669993311358450262122497110377025817310910252330718086808072291541111594003312857945370565963836818668124469941156270215440101389825136963592952354407793717522944946274958118236977797073373042131320282105495004110044297756531217272058135320030565887962968409082206082831880834822820184278595480939333312051142899091010847722408964820616372189086394716881496495035778791594337765587972246413259191143167811475416248999848453321848059124986534161965680685172720419978654878929584569638302255736303442658572823966723215648054093521572677148724417520727921526815616083310621441077594243680148481980943394096702240731425058454107661771370199088397881747301204398541123928332762520652916852159455141939190395465114682998103443822768988932235508482443746970702541718064852816801663004877969148526708704243307363698120157952452991251707441976527930308605527775459573296238541732482917908786499938752668280735457400298832778533176756633261391873458686814002513166898145450184286635757525104226334048995527655856074528032192210067791401729355462520988088863917938205716742550980303244032047014171508348755553652521760241960919476554143179257485978535180013670218474080651642352498868536542136676292363989682335815288929878335534063064439014066724908643319166229495247572587696250023151276665875792644723356372104597478714734908304252158460877227950318126867888936417261123273680317610025350536380778845762824339525564641875643151206341517576346579770607490128524939793523205733387181402041426662229402629320135487216254105866787204460298498416216429923170934093458853476502912385308502697677422485167214098532826570051388560929995586097851323901682338431166615733463841671594893153222222664220250134719298947185407288754224691742835877470439230901570415606338231808232200174230533553826250849699484896928876501708150518397303055098471225049841293516316578767303565818529324385735734996397253765131417105300266869358139448685468943181197121031139373898714912736179658643309264356184870561457109199557309818657098814197467649343269779643524803614945901160420748141860512516262404040042472638159892555606736357082556741716702001731572662862547455835121833456223462540071366668443202953148910893699377315976612034274622952126552248900382076413773993632212774576349060281050769948386687367861916211404566626511746823562102384127917340243584797436260070389984131359123397625137221614982323423260730177819032471674153038050273575363978763881543208018158813384613112018263371511562009351422525726195736665189945885557148611529730254404442238578628112446889146841355713787107781415295739938592673152435607924453653623400048597847677695551607921120053498259709772353230632684068622796857994690066539922326812755649280280496404435435442668775520497171447726694241183744324743678333616721036683678393035990431971102716990146417652237537057183219532066578697806843454945520365760735003047613928202373366126163615782387332427266678456809777789248098048581558666965034111370868998880949118907678656874525381273895245744171608936415242544631913903956988847469407623551268014811394924688755237688732914620589951259584950054205393991870795215361975294177228699235790762905619689557918632992577019732170997646788284163350253484134470311010659759994821297827720958351632631356062373043405655610136587228438751953435085951635196292565864852866596844629930170804869978421238578566116255421742707101333042872256700596856703482022484257982416915685719774961784824784851092965189714748904359110901363775740873290286145719588807057039532753371049561668705345761498370868468028941484616420964809262643019016830713693285731501495175406616227179141919428082565480913014367331138752570375403083281575313232670695237877613567214267278371168755608259176591569940065632828281279546304554786881409495616390277499466350470141587037827196862528556439310248733721022205277896602212582999483998170872326123269120240312985586928228121817877440201283792406284186408385275618472970766527025112988492369584910726570325739990322189888535047135680005316065788891164221682513048940600186799543464255650557383617540489251826929071510740423671816684660936526260127676409315982858857531930090330789061753114427123226232570431883053751344971803162807675455352987179209462087010941112056548177726828400424401376754719686307843715858570674883232352370105052181502556726330787743713087880120385186505876116100852362966153437846389015578001972947161845352565508668328035902883099793579863962964844896415316351482678769640757248850553918234290192232328671418022450364068963664615182213527890038583175931700579082100359653901060111827184968771635303841665804868383666057723734920316915593869401148688868223717033762564897762349798000972808894898700163978114465975554840719735819748869226601871221423125454088695594509601227683699798352885420982521659750811995121929046009244471719144245345124309015269087334178056037017625664125082671322915979924468849245138861188519157699797199648476638835201805161431258622188401763625070249317501535820720488947829108713681598425703660627476966400962428679387751771820701638374845982478782471056650313931526797271282277195109027348914025159382983586142249048730414449574641892740903883588266930237509813432009886884888602906954523640561442220975288780135305580033296496951944265192258955916390665784767226172999849263732645541989311553035109042654975515168386049319155741565574714610907475958949602504216432824493767134272995629443715068386629553527065481330775456539941018361121469375332938604251742126305060529218036148395288104601642004636374228634148222136167223523169388720303452830974312291610215540753794627327439971315573955074192284964415366991414721584803063577980281019903601282331021498209974970070467112841231374417492901907247478762220410817856163779456666651962640187008167389570792385959059126414250674455665098377938394452163386920367165731305019417861297681193903049627364393044888886274065525033242457232196270554753866570718166091217189862111901240753910291676495842985584385243606348265374149420703152524009024128649300985766770245490442062714952245333170704641170509213268143707274830795036698118763299204524862286331823875389654031280060826938289140331100675850302938562461676235990939072500789910504170667361498681448601881683357801901749340518978772543590869380745023200786060537002664723332910206731275050241892516247963103040087657922516571081206113869818587760050529390448992293705646819451442341767399052394437213308376019064459362581254180958878349227987135729126630749596767472018672949074334451254397783414023671284433454478348578209540740557223170168861088721121001346997254797032440603682591808679534059036574942628200678795797320320207376358705193560067359219670871265449273515479999631578780475113480632581987192916565858692962228271469513017365864152673156782745303020085625594370783190194759275092312258034628155722564886743897825440029619441571780582463434953895671723904567250051760301342742748722702983553125464768860298082119879071199562405871263877867121365791612293020472352267732789445503777033279459103196383639504303362960187199566112941227462572803075963909849063038892801157446778149500465552877897468458433081444559110066435806360793387087903480860237317640989190012912273536318327684737750814680715186839571801825842683892201159159602282654807198737688284330551738771122038955780909732809732104192303482085886222745086436886239886898573664864456670445619113682067782398088945814729740033448312120733877694522871553238792309551888022378523296856686026628521434055671009886876834708290008741840909612396212114381136968600069613185769360883174059649276929013970845566626604122508425957379320096374331501398700088765633119436693763026601215303276985026246165393780757967641170450950150400519625169544617266690859369133003579287148931317178320601084580063043932678015558448832505508653815115651439574934743831494694653044403297116621253587766439956827032152195376315943590385302426650315289688207662208488463158367884966374780686225524050715743724851807075501821888862308326766709729791964649653496120743227247460000137102548232823886699002363392603935464821793432078069511307101038988545698774315895674029634258415009391218715057022381058971316083058659937051354659502726950902048996196573435262939280197051941499412804098539110687394847571066265500728942342874200171690842864880013995021360572181221845560111068291494661520547859797849811048212116877406478301728992691858032047629943303998038817845299149510034023571285916965001630541845447499329736103739547487275061358600537736339920197078616793336133655648112371252989028343340175758981276484642978832051542578706608368671095418932605483501922147240174548193555267451532149212545760908313082963005413984622867793037772347240481957601906153965056855854798676750816211560405864001489995730293867508266997685308190463381629479218599341413887473404771873167836121542939182147315249096750365224936491346734596055975800346073999008996323865529210898249478443319465318623930046295432996177975954118655006797628437702245194523976208567474117175789733223132786277287105526041067594917464975724682186377642243461610031304561254590834311294819989823547044280902981444714899474803008213368813692570329008924601651973775472155805050041464924636490295796939672379176551200001941804962889384916574830796459984785673082144739407951833851347118648428705926704459378451648845599837291006947923874903661894453618662660941330156384052532740587348594235703551250712250324692559908229547427594596280299279827733253613471268294045358714507286587453224456764716169741440283947530750283070914712162874133750060820891892693414070663925784473397396820349723893519991371474724211546523745740742955818783139521146498847540159876186543010811647374577838863396913076195990095816499456677052171815391697464894768004666735698137256545525621411414524350403509875603320306539632702281908946488250574845369343854070556531696608526958964998335217206271351019876134448738939992341855324949684890209386826200194075852814697200372232717283085397911371142190667400420119017675844992302928805055040059857965037409988379489308187011038867153157539816753079190900331439677786918271484496171759817963442680252158055891925772379320635952565568052844473527649974381833466175786427713741081485396072861847787143559621728638584773168741691564937945139802992786208367321953546807137040392999868556518427983543610288110055819091773176037844513039744701496329344894296049659436366253115598621734086352795859186460327295410450453289097315911586642046571514895361206407009459792584092759300136432121903270080010534447521987646570768045881878959105573814471848884660617397089118047391297208867242312557527193643799355944097211350438475211516539078077671978203361869317255607138639584987958340732951210855105342959340694051790607281317044886043128109020251979089795024485153564326348619140678229903035568378052466316864980274376504744071459558494235560092045145226810431387906143037830758104837053027024237339009667327753198972939644155071607133064127591680447083892300906151351428899941987515284121608630215862395425791040784003992952510354693162520756103489736244149302443835871762775395673699613644544473413969096755411910666268622774266785708940710716703284591694806210583989848105639145691391866226155160647566200493931413129170922022522237723623203872137939143294879326584911308633361255565087341161137594794018501536100199538085748073441027458937919712580472585291296764967494289540490315407264132268717060479202061321677853817030284829178943573344433758906374942642232476527450495460684062742581759024215577663560958138955013434746340123554787825195519620466368869429190516215056382756618211146482148705337924201572825904265241022953700996875981322435256345385501831267517903570985800041729314143195538568181869311166155350465395840311012483193891509942154048937868203441775641449700591172118744671926758092630914798353723221460285089611400750009835584654408948647781918849583245937109582910713134107291764577028936857406389608572711581898158399269197322911401685215155536385513947147513425236795762956387042418010134778506271652273777450514246461870999168069399677455184536449256698934596926871930987788619035007385856181944047175828163165681179856269987864519511841265094770590273557085644107029701557514910763803085510319588506158929262531925049321807966053751630591460148689162908901263399136480277228782301142513023194734935115719877743769921660361306162174071432849951828061102655108595152503682714926199727375197507784805510062774782366826286465771300095425903408852014631022698590022462093577530635531859700666639450329935641515089552459026765256796049172959683596029706576966274828749294639412959731166085862072413234221473378891138584616030116985366267736161621778059882547980480628623747120839549012186813091006351984067750321169069650735008406282597876832359876701723661936952291271748837136278633960571676111042141905340351433701949874966474198438218114015414924510291479116300846178488814985525089208212850779672185228891142170218097667894652010796305197739577220034655972390037501081344952159169415401333922744505283120993158772519175650940888696763804159926492323170712344709424048192873198049751669566613380273434826697941464524378875273255931663585524945890902976504476216858029995131316497706034529586738199494405305296440391363318867896309137918248199971721596291670560083599802615298585273123178881467874718127234358832114793405177160715513341486520552025357298641304335513861466994365227580409713589136059799898931950999606641380100648291331991090197090603645810566569710626701867037046613165715530839329147039072681937688300406237200934433358251942186309628771903925827356187105223900903022653804750423251254377926452001742389074322487475152008673143456042406564359289973210371125985884989347610753596037073492371152882745774582371990808671201307430575426208205739783275933615158030531514869791604159272537372638593320678146115671725295555774306155601593717737576316100788124158233992810689526659645466888609331894470391243019778593823242097198019753320752622451490910749326150149418389312609852952048331273573464882505424881462265154872514816183842546870832136517073904681455082928463346749629072372242239551124006041693324064777875397676816339138570247133003260010278329557290522125678783984530266944989481156685283979900225371379716121140815134107766120211290452202931729176650626494689322574281494393335727124027840829126214300794172707176413719137311519331709479874322612227865280018059767435761053952600958208656918890047037261953345696898845314883322313403614639204876621320333154196683735421372361966124976627996531476395272291309559148090425933060384935726909437354866238658656835978304523024853907597569067101702141752863436683928688575810197614047847676464793610683628657978730003665384982180400855990713823772435389789742770735002737379623461373808553147505148740332842580652131791315462034102920285304464060812657171024765407520445670541728173861366412165789267505551326151621571287153850483473711591168769619233284791637696945762655580382062395886231599803346855581048992158639572120678600318544304852587572660318424190402378663014477926663145066066864176923661461493608470904372700808786406677498047191544426905234169304656479906279882170575639122527709386459422834464127604915390545077820621539241241116041820036998944086781191998135305350685113286340139194411455737415197319604918353274719675752674188641364064802104303848213063893399061832215238037280523891231848656927552166651907247853252191065766171924178523138534099285546835075512164176685321502509019715550082797862638638560534591296815521521067501493427339666708215428456339190152818727360135485867587210751264149403685150385577782870484932669820001081761821271154803121501752908366954180762898153268730748112724826059383210103291795503739827354080410796838690671185959061130754250794369973090335816875219147660607560191436662013413587261511315409827323646183617751053366580220411985645874268966903172076676258827147541394915961663388957270071271102301990530255623788880358904937434069056558034056301589356480509265895121404515479317005488038176650107751423184983880284804091226491615600940671318369388629999043454966536881062842598919589803376470292656422769318066173791467322154965848786805434835289851482268691312746618274105743868569822125242097996758034984754909290614293399812918568786909670613831858292734615832069094392006536639348584164240315412757295055559963514163099031007694966902041380056255272905518407575950437747157061101613033292980421751479354234390628913315283497622375930885381443568303689344125840705783884046016095374980137300667838326385326963237264167446504569982575606332936890455653647996538307087951447130691493334029866573860540420154518479749851780184223696076199503161143141793886226165577960662861570751755278437977010722395316299424437612187776695966182953380248405333729188083026768245433434036102639398574210307661660901815401082884689567532482043555097983324387070842659900306827050288847288729161931383713545455862488881141579920554762620108062622638790520339065895042701222507253679708646335342738713192467404839693214740602107208730709085254435139700090287566594546461482437460821820194144628013709357576141850548986060127537185706834666412520726133153627818306389101564924020841443169029309652054403024353986548683197474712290300520459791927711659067970058650312733783693414578141746493963975714902057432320208402543833496680216744944433712943276198406779057085697340284680494769245055928800207639059701181462927996550859876469690642933724999517841544971526744208497955016073188371984949070883680822384948669490899670078603980710561119520764483823052250073855800562534282641042873002491550611650005536062964652366929435713488541627766647104377850764387543551955315929433176848390549643950683096775946061304818861653702634524116622385596827393902637392920936991693445223424869609418000898389924689125441312714262467550553352662995654760886688391504097837193314734350076350567312421801116819731246522364198457259476418251710340464311273698152511065408241269179094244292799636584906963178089437445150075566204268501036244756388066467210832372595181528150725969904212475619213488833056892057164229666353404386220463692748905589550628862720730536041750475695644040284421227017131321319372732235616009009469032697093790456349168896606330420475527452032360962627620680601375083196501412222079431254113748580695961817840720748386354656165378057808488657869079688057167854446471834030072066743173268707855429655460601742851862051146097169282972469056773076766773651604688091197841556713020888249414971667037454188081193584547245842711038799129664525899699532853596870727084712361853596040448258454148730420094581197016171326367430765596955006218465212798541770185611840562726090121729097825765993567383072922612508042753887149539724590594817743055320961229763115249340765009038240806750689894834855997018078125468074304582316910154641199628803492274331052416572160681845901717306970638489688290127184191990539107722783787126966459548396401445123905517126467840327420816009873326116525633528862081611028669074857002206178524614708615395586946295244176300720164583989364313751812249063173296259342346198010334487922624029349425942674724691501265493431955242669435722288875748951601251037119009474229285241101438485240769700355908544884028494726221927530494198976447317576351886378811924785908843764842194506571913187162236986046632772305190240562837384883367997069925145926787584568259165118022297280655163161624522241740132115276488666705258733891847336163127570527154336381455840702314215115787863228457086508387799589528749810032952467596473827893642087331441119811467742097071865165850030940630030287333561321518738777875350610755405552074996823383951217533514817986972168865142016495699001379685778624133355496181399682763456511565091002538700561863711582890334023387882935799509033645308441268176477243107045286165692337646088427407587589514202714617294054916866606728690102828074265142153085683981766801014866123836882633352524454251191531170500094117430233617297995123885198289081694200536751252343581997055513124906350613357396317135804328539830807432663708229607659228508160620886822496018666812017920365532491013790383720015013440495551935636898516837521502652351424066583633305106310548434989773813938240362136817732462550167357907200598977540732740403523816664097614100095907884484571699092774172765174116310719639446233116114390286559683737492015192592608774440181155764156234820250881312565762627925905402093353137464971227684368923055008940394924498642692135709506841669155658965898661343204061419241094990582359672971126046820791106734639339042115318485954849097984950615764762203880443905118190028121650481486317150847369742197599608261070832623699299351949349454072293509821989421402924737773103921064456772941978605865538471920085752458512060726976777362133094472461269795386245659064348434318350255484149736803259371092596190865492670099167862627610662534493625189069159910022188651255158258871753315208585912368311094602645707939430627126147689337464073263734141721112338982836612302170841548302819006769356055213432517917493182198085660677128807906347849978832507686002026059199006090647433667394073535881799500970306507544223876903234574068141756539807089118757024721139345355437786325765847289622581797601496697469236030117195107550686640666807755078451607997198240406190172899974608890195537815520926433283565221745225919789231540344111781266782797720103674868466663457525781771082397590128854670475644769533061925210074742694008276833005089730272429114143548843028090116477203801655450031006232432069507556432806225101015889424896034246185286135684389818545265501551345091528542455656568912918788599129105198578887395067508270499294236395346003370904209387181612394522178983311223179068023905341791200948918295216914059999474774001744140563282126257246740924649113240397274206702228682491857364935485923524686571743424687531339895593374012097285660517148895775145694673720899045710303114096059305848231106986905283329910276309614425947392820816961582159206571406853092815970883096783450971588913048291756261627279076408590699066579241342133569464412490657530215708105081227640970199957507634220210408070728023054962034677871092329073960759936116148298198757708879678493257034759686469423306414193030416485842742231108764541517926137493159367407277573512771956192286368515328521701295820631867593816778068709431933144769654854545880256039848166971974324886495295284613737598642355331426928486764590061422814041490803623441051185059280960753146201951923143769819095630446971486121473144189837289548158676483532067998295181350699648506224882718129664633548153404074615721478967770699611706027892879052845555316933490694602254121769104073836914870430238604998549915181149403177258343781956202455999400636499786677714571738733928014898681342593895404139614148325704877401663202208268240457780091901269131845365887154412189609485030497679260570485403842233666683898327223648337411322769213099463591054771907506953159092508794339532709077563674603919243919319338199708952301245947188735564520008687719917778159208724514598301505357962099103572168890893674872547747862554520496485150102275408104455277426057116069990165955591759836433309682492545346744413903124358470754050912862803146949756247337103777207518685084837899169707868088247465124685394723567196873857962843092504361920992259258298557581382663351957584238738194801343295539400582463142585220908711926372332891395345264153181446722241345246560388562624817186445905907750655185759493061961617287083332692127349466826764250903307616012529818300347906623016248530077669053530434346978500933576883038881133576149350891448796262746773032160993157468676079980670291651871751491467376068308116464097791476072353925367744139174485852561319991519010200287529138523732833552509402189875074343238588914036400358359987834920554905393061186734810880415752140009408077669290592503366712349216242666410020783942066079596435537335037769899337805482488439983105562289286607531047599771176373793124969997590981602019451408391241372536647616410619296649417560011820581803423482124435053349308178872842178348586153580118943688505026800085656206635344785302179896492199831576836607793438123568832553058023636355723281733043292133147343926984385124915666365921469358830361854044921808406442381469463233739815347829992828307172446160549267841973668282002303495578615598830206197036707716952832561796491255435431231492796751581497921452706575478165845955926165689090971484235864381149662897425371842784118305856480017461018105661103370994428346651496570521958852836181636328627758232796496483401848316766009674549476114886384805024362812322214231680061142610070409099685058604896392895086488054406438400826495428128166791259669568289811090847340529711029563605881893886288750473428014574831937154632629963537959512685679779315360940643466790043673021257895325999324694235223531529909812810508017240891586606062820117007752796520658865340260756316150015617775445041509159839639558988335184010279041153031805604757680095607954151953430468295639406126030410554379622372478335340834826284740651393993486702987718756607664509322065501474449150685160049383998860891153425815945923370084139921456419630191351467510902488373579076979254421158518903741587107525781399550563052391756133848822450066221866645771776008995361556488880693219383021614505802345607023799621305417080508758576230802834568740499589428941038518080560345635760472484590658408924162175428569271907647756897266232805899836716484036632833133387279863445617045502806036672693909375909790400832386375612640411656508159966435329587205200891650879116023778055069328236724840865732552229499031445816251676412502160209851082913122049779837247738710485156976287382822256975599210944057310962708135692700044148722971321279009745410433300035394007331569756722752694468686705821663972525726584480176054588524781672744476051550481377093011188897753207412127249173123173014449960470031967260429452597393382027623142045644757159935073253617834862059038803746776426959636871768225960931557402379262061985198082303513170702134432146700023983429528967632436621410232884329156174331773896597326413245309455079690217924247944963917266191218129858862608652402223032950439329237213002434729305503911235257629569875995219891681713967064421641042548437970128970067135010506768911316170450829599755056152043454129678078779690086205099450674730124024629896569032751933105969368390833131716082943862821349674885398712737698625507201573922306139648433520323812471376286701211718342445933266976233408113647280317650366471606841162809297003194568305044067541881178105520158470392963716188650136814952117804489005080416889091012582635794708852228482830782749876022692566118611653038596915581170581228373018006361978431662291882447825541873568344680468685986619631857091711713584214085055172195426437761436542387010087969297189417951602908235236093361406978128831543238622956558663105952855298901715011997547613494058059435073990248973554330636853652970218358036289625916279854717323508604601911655162839933371298848744361396414906566962711080003837077274301065703144519456782647482718936500774954869094128914037275075895851782331980338493077136388332114602586015258810519792764499351957122725249035389361327779500621589569779362365294571944004445618668081425082283620644423809218061328951367145976460399052793894564026599136155364412158419980196681314402819890809878082498620744556783205201877210767379337007529597269513149505015036467471989691432643411500097437101517359493937954926073770487722686810476885792921457466768677941204461800813435887520826709807299883313037972212903602954059502560454912474018789993324125894366612593292792476047598303968198238273436548828339272979046110194133193955120939416191870729030344105931813058503970226425123741377090927344009184047444769059986240989853878587704330050519267586692055882142516551333915105019967125106794863817078323079171269666098350440611097460353872088019188772765557739079100987277287923309422695652474876410678206515349518383655979141265671447960369141303396373158612775690597045552563527579355278734851093770149724276447230932410460003628417550998306274635930686298946349779706679638790713387794849847026871875532029885505799500464860073450241918377949950184383675147753544228443099165744653662827468369446388374484978175623065497601230209424752815734152572199041623776931350040107772543091713457561794136353878475359089601909451142115652321764337423782739397097935941492448216775829497980740792268653265776759165922209587309374976096086646525249216958660251870136727670399685410831361009759554688088641195683602198726571772887339281935598723809746889938306344643824615130643923427452957506628990455732318863048891456655145867752250811950059394781508255302290788033309797150456717086534647355824817442185320646901952615105775689603789441181919240353362683253112353583626511089804076729381144806764864145523885942309465943359454045740462902117482308006952371848161104469655174994343705350093590268863522912148027260891063264859051496707174599240051099131257166074856242290779689135244065433733519894955607795677519061447223707590259472585224813966834550289018198411764907479851250068209783335519966068627535213529001107557831786822208144940369142534396474468219420191326609404785521858746080052755408099506385946994070742790648951434388823468025412749969337210633254250253291037484955068450164289767536241379461486747364961576092525178399120936101015084883580031508082759624995347009945319912551479420188971780686739037367573814223406126262690780187603627078255180819544360085970421234519597142762012914021836895593139194508529179158086002160798964828459174831582105484149925017379187303497922813673665332040170296972997397197414978622989855678897629818705200740847647314061747430521323309132592806119703831219363844269533095669434315556835236178082388251540604741741954017477825110160014388018677365314056758511461091145433179857831003856250014749921469712465481871472989610574026935012911466536979228200852486036602427091508824896708366403882087047023637219055617633613700000020201639566413895402293488702295572600258559402774402999954260812328691490438571887488474984351632730040715328909171015245560046590829644583734483780767571424163579852033912496910185873175521763290573877309665628185337764015411707291194763167589654980909450573449796952256840392505634570429042204830694772818905661271868554291769314355158285423877916344581957093831665232621827525657186502347090308976276607925408719512361330173482064902932526925000468227930513226813284446735705172496656699304839306273809781945136399204695446223121073081450321682593788249450499263678783127403394557910023191744451012953530559727235661337500809726820611240320432141323629909573145563308641200967494211090447385776028194403872103418809951436590979351274496620724867910966312471192972819369930095181515147404215206192484211520046805863655040543598060725347178782296486673653894304000085960054059909091697447823006980694737838242032251107245695676572035492944548209997659776381110163210937163468972304743858646220438398192841817703506423953555412725081097892894532620920865812137562784961247076102024642161348183625686876396170813310616775686959806072751295032852160960879826902385256739822565852980597917472361010789645443833435782818475782963258065045072165110634709888132845615884397058385713111659864642907395855562925478049654766822159932561314263261148946901601994156030999434446956871359470634790213399148302437868167317584422788539486609693059294668905838256708341521114772361468037340923263246902171680602390112705432512191779866114318896171054853344284699800332902893868775158036577518587690876908121775830812279131274560790246820218475273305372302065007191596826070307639376213741952613644916173884902302387456898286106076169862377404165817501443914395746075263952988013019407816863211166856496400134394558983655568395299137290411671198530251804921845516225062529820946566379386143521448128509632286765607679830484488033338416316758622310166012388574572530838551245673164342451683074492277626852008368033623054073535220783516721396486898887206166513908874215738996302035865282629868505312820953346974797428398964992888828008934859497848931945748969210448661686942521206138875574784197986906990436649837926452661129825011560050968896334782060345022928411349788549429319018520830220992182211321482022026132936814794184002113878623868134284594173466302583736530121734707126222852772006566962002550897948547583550187103010483121936511499997934395449195375350464358058135193876701205690794679053490023838081773035200889037707109356703335224338673089835823043459304587141600215772822543744412401339784895623515910006159440726009969430242352863263759141442363153928217207612652793456015632826033410661397728110777000930287366977832997537018321942770911225746391706819021347379944132234701909267023386236363116414341044970332198020996204325860390049512773082762023097429344425835417507792164638963851717519060016123683444713186846887235531301412777911142037421139038275947153707789400868422405495351581479149929017426426757788517868496566790771397599190600137202114886429831069751388386290839693081049332122738645162839937889405417329469187229204917686898390089780695994319756235865987327838909441881189791445637585094330071587420350822104062661595158865746678273397442917282097687413907320324626872636585376378675359159573840623551598441592863535406722450027795019572459409825790671860606677518083772264674673834742666063455638149766335056537834711010359751843670205052978465127594591407133696961116361057331950510381993428207670761927032590217860905680303149498185594649780873610148596666186174887236022252628934674843106766262973900424725512100634023317838124268790999171536948590410842551235176069172161388742665188835210773173551705034834542488776014295033283702175786153319384892871325869365457903394276180094971617940013959926010897649638400543917727591841479027924583033489448899984734859896246810059990167085706419201739849952623559353823001926283939282621678758964702620071565061374877448384479314194040630606296237487675155249232118715755424479968780385228412942809584440863500069109187313502531085697741080586934506192874911798671645316342424790547533888028805497736224100789189135213004214362823265526717884565676216522188366535150428693939710243354016475522511045402956582245879099426303551195451931864466643745659152744520024116351478723665054362772199876543329384897399012576184901018423154065216402794665154674471273266181746624352078636765429808925772184894987186831360198671332284877130844379403721395689385642725250613672302960930203672384414421398738700047273384104355417327548017401779559556340569265877403895740407808767684526273958096503475812494929445185304563283738775824498335917611197813377969767553306543109518105345246263175037915557151278911445875695417435162648657804623189547328059461801749133407955484887837583877927031891297471070081462249032524546297596017411236999042682572967681679695648975349566299889783252157228765983236841154795278431994392809071555961689635417161313991803497224348778635369117439755269723488727918504720488057665341267510005192692089843536075894088581860312990067929772975512286016068227643074254361294583903272468016151996500440578752507792697071034567995100128819320663313244602450410697472125613750676042694390895984492571002021204094159283689485453776522836790312949073764344965493911072823687389703958776768841823826241573661297736708304085307830054928537587983664746884183480003974361744099068618603293755013436353352911668855147213455180227138390987790077158279876638747903339863326564814408629400720239357481471490523146724717335559748291860872580419423741149121094996602524113103918800649573664073291789126468846953168476818360364983586308717331313040087651301958812327879125650702494292288665286859820682852326516161213858671995928768286063494217301725000418250369326139277213934295073749964583346869977086067039598383015852090492024400721964002261150846164218492087898293823613250453227818534191973283485956136615358144311932957683243867659267381159924609922041669077467311962312640424352892907327350218459553259917357836334920970311512721269086883353790881320813834036077932229920872874267712853722323201482785973341401525700831542993164431103154027605917630449040295010521221522530686835766847866407819848635920936890654538811379215905902663316832768903148786214622477136838998178868788618198804338629775171688744726661477322194798201421739972711261296379467831719097437737481597627205649882224790858827529574307483771395941985091399290286512995519581620889255018811855059225056285556052805947981314885510880598435637599928939584627861502568834813288085186223813318679064582975653340657870414633689382513442572953513926823905311681703846239492121470431211086435676837638995349959285932017607189893996280932902415529166521793652491066902304882610247240939421996647838795647336804900289581314286797745139122474348969169623809722215943364068677369837313021057019627369324995803497356931662305579635761919834707762453264562886093828664143027593040879492641596420845172094798959172295931722073139022475001121475816521913247950390189870875758156388947551610472418510834942983161588004199085971525896801751821897377691760839730539278140789062320172000330813142187849547373764334387663257856354564683646290974029559824116994462231839421100567421059618384698375868032435208037343149143282793760763561743767736399287289721289025816106131818368319600079596868802011409206788022360612003338606210906336964719832679123962941100211060055001471826398357915330229975889143555033711892756967497197050207897388837486833864599585772227291490448046911903645494451419374958700146118392924344888326998875521866992231522469340477348932561045256273150226542505549599748251456258196898766454432423780621797903650999848156874889186406562732371791918377378649606536738941096740557014834207208597469148756263590451259135211938545010803855978479768915494605339535352243704038838801861206060878910338805392753775443616367404492483132259410957501277971933678512030668348404052983228415840296932768132666159860378825018586444060529905659933046431029459301503013064332276469263264499693399330657942455128789550207009473439045749766815315793564969685664434169400271958377703063274486740817819533410538949360397143662247438207690360492522973900098038866358078248524331169430279975172656656543269748915713004669208982528742377687236297321110685475989515397973789451312276823416934808933397479683240162745013257953559646935783970758279577289898592322550596842060721098704085278492714939674635373914539950308929108042560939737264909021690905523809940122588977417105808835054516135325357327926143881227993749059791616059315523573315355061815253535554955047671646623804302482179673419496774469426994374325286725956803831855853404694422701121028559059978085722413671227209821922752526445590023858300837278615021837121488278121934048572023326686192099657819361496778694191729964733273945077518173058921581740922538294492072595080218294270147795964704309560184414246573416075836594640757764957233432256410352160211333344105005667651425265777115692349455099390573424307816803010443336102875799988150843910153949797806511351658912624066038187675542432839967657962648952188501571773946922548504713783387525103095052795899637624641722288004768894918382274166078443777507986089103153430642053658341001311444520837205592049317373310213114661676565144477119480847177994698977627285515927736395125976676174767390564237498456029511730460882844429250094059717958703650422912739242828432290926291386728812750151734338471807385090191577382072431544604739366661904449280074375821603320553030685447001886603880338093122971753469843160680610292937756848750173524803674635221825159362916388493566423125763696137629571260834936378892041480957934713576761274614166275603292514487521087665627552162077349285477485608110680465867497038372101100127808596453035037171248130508348825610048761196492345667531194073885512618713955586573230364445945593476765611658456058184590467834920617958295233418045277877307751593571731672422441850381613007966892487034448974944262588526110364612950336590453533058321545037269104029106979320288991726656632670505067346655487001923742962162996569991518123751321953419838374688368577363870643097669197225829557509430932038318938516629471283170666024855188897258410182201451663410014145464145157601382432222267571543920619288724096016355305006973413600203263455453818501246587545338356575646437617112608698852184641450380614043469185874902185705242208548068487079447580325741306834647746221003000134639609006244305759957577453326675523424632005267676438545118649249984575234341590462356084636962411926236642890299282569173483221460617348430464067866840307990262024538965016962938100343254698346476782195327601369126375947789345188472566385259560506378414613274291573548244673909352503751400595649470229479747533234717576972796768041370559571730634585626237150358023002926070702122996378055651539837782888982184719220595682383652328591588640006159779965678087317991017720830773022268971807616264482224898358994871936448745942557815975880213154349807347671210374772324628512058882349263972715211899789691339018166431070167153453429533080195508571564412551214618763205080438632076333289878997562626705147039336021556599468172172093423604103217665096876957184068497129706280619913412547815670949758049638447765701908749465042275195211784391020503127957630028101662814114374234238634489666359229816091335603314789972550019495607363172788882619899611069748554595245061905688036168697691771142086807675003009548636377885537636497382586258816666904492101358595668069626579379126554418893384124605809288817255288120927381912077600265026842060639037581041358386654828797274488284763458573315851674874850663724190202647544771415986172330747902775918624262390629438064859051524339110816664420137098022031958258361694338446235434814547386515254271801163151625910155796393375985953558034931027745775948058549935758947594418335245909286692750823125307406896898081454951569509186672759778433342706065604698450431073162545512921142674447855053898676025306276917245145467195057902628397738191553652616980501732976838775300031306410834420450766087871720201202256996325270104502999617219881606720759249217904268718360633080741408396058943396944864921400954112620417226056890165177808936401369721996573759369537664678929053470550151226911997230549492316749478834086416890699418201106898935133189269513402961571076427303902687223343722467989215079300289643509839278624329227739842440008833853696539378392224814317400184724296178248203375331585406640058950846944876020391174849698283043513752381864558495195030379074108139270967337434353759129349366754709947744034045553006612756673718724675556881172247039245844527221378721600337480257240307026091389543631891071507572752052988121012942319331563992771850365661452403439412036979151104563313667618593325406771532894616155219616478226132704862888575013441655005478742914201961033983184855140100282616619133152067701696203814706303350085785070870594767226511454307941066686057417346208694231425074541419014294088782792256908793149512273006623481071921638456896921047630234271409793953117590805760290942639680157832912209463782406933979581746008811399747454738875293641138173076525386148730648408808967894499613802591355067257705462383565960146957166106390422914060012061161853788387418342475438685845722710912325669872550945058969864009198508813416592999908693789557451340895290422720830554597174835870426747192046369547519453293808523395953999921515646042857094362851000443433637390972325931587492060029181494351173388373756698638734372798941489685130195292897634823345960835482279932537414961450771545104145578519745208858165889212268524799593957862963597071917273657773828251977008375693620396870061794964205728671790250318401316288042717796998598395057266826560579497348030177236344929668335323231928053287372751662400477173760204046142100490953513146427578340620375190634214888324271873321046288618856395790007703760155079345451014464162234064342174516907718614513995046287841478185081196418169617235792902763142623858432528312893585307466534118294852621736782607788690832695172549010077482958422215952345343716667837816507059789201447927475038118023267802101406537759647660384301714990778461645185508807325653134631683022255807771313157112113939074699379015020711005353134693428448516469697653611698859837974644449823347590992351402014387721319969288164901830269889844415427278364283310646593960428133880379769638636159855702986865433497159042489582685419922675371969584779269571333642683198021335058374107177873415260249982674225890388003214728539066814021440895289079728841480429720985712915137265049119267003675702714548574121251852923312458678760205416065544118733179378933901473495436635112407715898896202954469396572099047108390677241013236940319013573368027665003611751220127887898160539496340518451290852867358813015568025095128959205499903886292641904442548279228356244736765634812944627754785591808613872514194729209800102035416670222782286011259547957343542589690068508928053133060951351068487621099862215567817036323654996215129622154091090918592623081902064936311507890589863718059151002143156863078637087857344109240334674695305769870100364617456030452955144624471291415484921400294405420359343278430587636362808565307307857782287610445873852194681529568327420889211903534993024295033977186328812777984450814492752391529325360166871168416988382498521504529995436460058782379408837901219021972222464253835370603315802963990601411886809818727328351075412344703507614629874911445420634380472415573167621717036735301683522326158581641057909976447391096743941673184588181368484830978091012337504896801106682424993805058155406219810008234059963411546010806055015381058551187582503330491000463879271535681324475251449205733745368223712172536501284505696653183567133134489746764809110708707014414247939910092997919781772892624343043398151611207724354619215498588695189356564917862758809988319743587155833866489460614508984103297723260480841854861288562701545549569128465244224095228014114908782255189229250691652139352626029227759647201297712819716214122970350198270750740883705002846398741618196042839969756545049148924927316761979429302024151872878015464229879198963863427800701171972992943785631689725260732319794082769431776996194616067117761154893965954040825905951130959424812405482238743998822647394118539090255591413803288911562866271699462165520402954691708783488890233249522317792426716071440703300039770428081456094400590627553785181507366178870986467071982783038114049094090546085971568861686277281722001709481018699378338396632959315847063355894117367338949069622004918187677867074584749090514933698651633516967160034333093233041744223052019536498920235052710563135049527436002583386201230997991909365269749501641605397279065270405402441923965427924781703253841008272375438940277861351604564650485205968983693112023354372587910592397546688220542788200002964209753501432730656674453498870545859784103661733089472115476020517735333329030344303259263941633774796532687637879900083324800052210135212055705226901343265240990040917319649176754832235608041823856267443980769745447955659286223369397802596715242639634610817922050697138727287702979441770701588143933566832933767832828497728683010427928690664478168130465642709281302430167885627918864826247994545659136531275584610531284873636941700174376426754082686704108898302552023551755021498873114401700651127144461766245565991396388237688973658997009673655504146428180342534151178241032333401646297740416295390391155328166968388117329058884937682649313148389909330936487631902948931134466623267970350005198368380469609648270721654571848212670255303208271249774447083337947204758965304703072183732515307405047820823767851653268642314029640571930435628920645401186056179988247331962766230475617910551574331203112440414091189832652538648036677326296112336230255289520208913411609638364543990974498460538720859999124374712352386938560502800332942028733963581086098506548433696616561796631027167186585912366482922713765545269036576141289252658255607199291814443057901259259179165709062927611184470961878150009344833081764717983877449877463386443024204933700683177873992018622598908222510336883076503335084678464931334772514739607516585751579938662906967781421649182434151541323482073625970235758795648737098090193984039131276105397708704459822704560031059737533530107776649283954393646906417123265357599080690015938519969727878299396840464064072324600635601829703722844986241504541236492033825762935750392727582594276818442717945419375239696227535286184963750884588115460081084014326991345833417123383227421153660186653224570063942495458361417563592917812308758218186873760249817477427690103567324674910286316681247524244110051826991291420751960689637525551450272885667195789235345406805339609867291134673021062029684924283906382459550643711518039350215460735565535247053864527376074223066683018359410370624116980201038508057941096215809086555650847363959272964256408457391630799019014884020205802465187627412021018465309551775685404021982207614791868412189860835662687541245822957198485111048174314420032617246338122645132249630599172044232819489618348611132737288148215813505999677078148292681643594982506112138873016266624262353501925308472608928756511833823580479302468413919028591844602803028821484204328868089208001281866698534441194970402267623596613183475430506678008575459140454481462458030680520154855488684272680657399186022270826730478419282547650431250081391801264378416083582625996156583985022452146899606984184539332154570178433270487326042892240905375621934389034014574835070328836691803624505536734334590585939307860510612419716527353070782303470370236096596373762798822364534313289534652949875733473817713565100875465538447464349327960378667825407353228187547763266196540276028217954502101236922530025747947251044306600381004153116937374985451868558894593684401806234907474018374815603059534661758955992354096734640198424170204150128602864182279705038194867672496969053905944514086743982606285064576440617229335783585188145014017427956102775001789748378009836011875784983130983099068107575198201415594100147353679977392845071415565055414699682164170669570997790214447304634708103848672429913973564169719688928578552729007370694505732383009482642393258592386506099873685723618155509255128346409254379518024714544229393770962913608025219025219918345604925857565559134713715283181015856404194322248293238220150089343315778924193056654512474303839086395669148510023193803726997568453838715338066887370896003762882577784560634330266263020682144108906183858858468135728780930136755865066336310657425159809438105089210719223205974873272343190599031310195457628387977540603823628196629429278029409626982836080753211474645955978193762486115753257273285220600993877960477427419316732598829733873069890085218228315131258360394570273595749831806266543530612158444759577588802546218466454199723501896426892703377328701884829605360628946267640748047828364713321515982922415471103705028199299645261252674431760119349478887018866941949028342149030338541030707916132673623499921793303614261059515168781317666031227689124269899507261507267474901392893673216891672382997042014502636695530291225873624581001868599320324261108039059242917908353513425820963264020898063384648493243219113454747319958982107310823799448418134439551530919531718243432418474198191642877172872075399347285900802617096854948962067597631279764528153600156755983993753761494847059791308349308027687040644488169460756469165033461494329524921912257371346028744273278307668943020361718125338041440652243278120527577882355449483987841740227390854542567299467991805071254528435432869341150489469922925447841444390688807124853164744474816460438355016637830139208548067289744931549090724542414362646408349412800742237501582311369145390204002098077377847319286284295465083290676642616811225303181341216512420873546000944188981656844518514341239793237304992827989698687920569731196612417666466295094962532400243402435689729976232992056197042544406324947670972105443076544225356922529914077553853339847722938783706632705393528984545169570394632251848862984621957135558865204766256182497785001362732435008956255941001509935761712728320469757202251190023219922623731900096063585972253346275890848481443896101544479855627714466837584417237812392183007606598569532945232413801934937064579070376848624225059950762375587578361326994873063494459621610818662908809378311955229635477566213992541631002150137199453726222296959558068704880351521211408257925044346535016407257955940861885676034816330850953837510201116356263831106168381172435428924657369286762152379428742204485679136575246192974308353582844000919612767485270820515877241586827844685364966695763127419023679689386143192319990595678246602493442090528887046248798592166742893347011700946751982363508709186941877712862272162538066950621961248191811300716728480650601170327698642019366597845195094837873631965592549036442648340451537033664515023516882525543068640841944400552336452896296516860050415530201988729646367719183107996006357982363736282060739021443098530850085711956444382782816242288372573161275858136257924177507684763565990522026918842339230319468952558220568855097133622153020157190183509898981590812686412773226922070356260416326106730209963910836857521512845414135824539036989618422513946546356529028327423826797743860506621085741298740617718824623072138647213120505634406652879629506047651522648091155468845821189923096960896769697666405707175374593101862448537870482236757322859955909630802242217546800388616903522126090505430048734936115258833320054177349819643238291535268075705787511730846789325662508503537653538224425400658858184352735047465282694019585107033410385556930675395264738704614381935725375591480915228608723150983212550987845974433552020295251581350841996478780336573554990434233014248298879276387741184454603720404732176587926742280000321212350180360315637443981397326187685211336294229131810618660730750766890401114856578738102586709391978153669779327555738077313206070567430063473292415113921801318106540948025453145193484228205335242567960853481555652683551437106781094186893254492503046209870738363316125841749444884135077142352836074626433693807373692179016272072926811584774307235010158979388062487989586022317317794055874418479584388859248064552513796468410211139391725849018128599232959357139992890773594810486885456089557372912316624193347617670876454556804282100456777934684044226735961015943847116684503234911570140235589049761243469531218987331861987325309382687052951716382871972171411938720302193966890645033699231922098059128000874268724619971596009121214609191301303689134103786056280159746554572639385312552841961495488668928850549067112490679819866757244139571622001318380042612958072180728382369289745093737949007451898843671565249274880757957436685508338616640612752328105945917473163183219426702767793543285605446738148448778243110156844201090630372184864689839026168442145798988381717729245154128296745980625175763404330764881597609348035674332474835593507412915474349483751932119981351760344653705546409744995005558646081966551701867216385229759200210228440736394143781607681246898409468863846241164919162546953516401674789037593262670499107331393675885540093172929685975458727510820724936026269632765226983873393559675949361093254260520720656776608041808445123128152426119082961815450680515874276103273675386169895773319346497434236502090939401064299148314498037886982596790164350766127145866821747383002089180541227908425360605104715628502492277463789755337470173766166661858062050197658342949272389504816934946208385020909624938758930800804204277735589630144692891968447506911065507107082879479317304112414777117014330342416875783808571799918078607467184030671288511856331528070115257288686479561888790434183764175415182497148810031122429329256743127081378263115371180748145593901896580771152937310343507912660976712680270159269472016823948911271365761666161924964037828167528750188899677083083170445450847526785834904388423199134860229754917167683386306692516230939212388105907003893924046691696160746941095902269224896536994830195061292788651346756374141081305760822959563028216331688421018722387456060564877181913716249334662548327453366231821619573619721874014651193043191736463261259562388541037904845196925825416920577592223579717887789887909334953357320922185413266413555596362884426078336793741624315877848945658706804764038638064484287508467447493427017001977411960076257529202556388126725157084976925016189909518670147101948264542838509885635869704377394458545110139266888282231258954069573124776784090410471067170926939787580535638456197327900448933108026746740239490357160228448307737354416871727931788436071626567520476372167405335897333242301809489494794178257515049986684828053947070702043137883719315238896176248231552350279083643516779067656063677535207743519979035806968697331204219331099446650332474089464638750390489847137124168842176263909287520372974903381740443000370526564313856457893772016388974779486564930396427441353266192957682444010383093253989319444905075083463742895337909259796540878526907692314217165124446389885694987929454059504751348259602983975250743762578133568683148180395389622559690239673896771844008795454814858054473050172111761553612844549566190507388188255873654526951649633985935029823019946142226379651658345111547464679739858528383655510022541752104507510790746105552540690605353341647852545255899048613307591179224077814421171547956029418905898138884067864579523491394584234326353355155854218550537159506126771767952807159930598393259389897037965212236239387626360492360815115267373628434411239170696363097701414778557430876823793692254444050873857248943275263130495929967686056811975538210828808891752414238084478345367020196887646449491220120766648846410895974167892396224548754802892948215924944300343720304897172801161491875276462177461489049885832485487470531816830223466975042808608756891624350858014201519568961441903664154243616269501815385846905281182111367430430442719803364489335442840279829734221649029838054354178003245177765116544816851338448711093652401837732868273523142177698833697178114021507629488198145126618021551273691223517327155324051456780796771175183220131900418946185197379190747066465337289094442206878458973535800169684426568345378801986673854291406408903872916776543848740569262829004826069038261342445824302628499028278001894427848493635708365917655528584764871701515161087546481024354797156113179639275607027687895780712249907366217907278626067931454184539102271927764985459873119484641766971191613143412347719220012976358920303723345641928451570130827143730369817735976752490963499962470193515786531496285643851845447870701547643418055761795867343416900267560724836619504109878023926810855584094039376895949302806376301940128259521689326563108753274060337612047532668740138687125930291569420809779839490438911422363351678910523145292944347194321965736573636122209415513251548172790723811910417669956885193487339974009100666559473865171404484783265591506947049697347076592502584912185470551338704024693081154499524952536574752222292186107358088988698340106021634954419226084816556397421597080122664459875894065049833985447912233480212203800201175945889513715345314718120543250124383024897089666208875954706993770904904233109674812243253200138897247183536871276187629384561727675295758881419067470343222498562531930599224648807724595449379436208748980534091737764085402144331766168450485194230666524419376345807783415135848020844145311411645109292316637699056686218965881401670699451266172966766295990176816504089931364390008226872373955326289030366692981243181121263637877211203435980157081553734585572787882610731024485454904400772998360495214042964812792503590188570812262589740903996683391210644345430085461888123152158605273362552292661431355639555561867098494972442714535977236539388093675644689753582457235088895849286234258309282816796839193402749807115409211465298504766179694074996164431342260006552394331637705146551429612277170575029148816488674702483830087967699346286924247851627282598289096399987305118268083697062361898518950134401785705979201984661101139590444095599441386332744356624018354621172214718754204621857554880189171889966722867967154756998397117758419598058942023075478708998503427626730669207433199401047936236021682019415719109219377200016569069112020518228365219434544587479491517999434432468435308847666799369286599093371962278634244807968169050996829158023512729138107654699911944060138375725569619517856861332753501141045915713294911838011350289122355694496629728999745267118792237048993492512032300739773546874758545435787908667030017692924854637693097029257797424850746639831693536431397507712860877168760743668406004932727229856367397399323497556960742227138800310320962936734571218936452505093695883491868941113627935856301296258858903316258253787420120412669051819464725978091883328670681434372821310500751877939679860731329490740712739567509044317399741258037581782608208028393578658823299447919269213537343956090261068875187769364599258691697792114809522892419974794800396200170768953666330928315592546724897441148507308105406324543335259388455279244864990390500516607721349745832262079820565717177422039552689831627369301479540932300367012891103656781937735317911850830316230973929394062175363014437370455339076176385632480401269374876482102564026281077902302180573667607864800118975406838997127298833068111214226051685662189336824295307327267361630868495558877556137892235467823624768324197178742285991766212952697196917203094500131492592017899984691145906431401105926590245455753473496455844156262363617745336941766330609793630850835178833367796646792477723303797365809434417540007732141195678018615743675073696362288622219112416770726412444496259194741808294863138449543643668570057513158564481537932199185168950670658106923440653832253923740034489028638173481916910893888491670792488523298439542600365965405585338600465862661352188611874628842561375808476899730017718434829272113913168910686776399930595792883124812554070674722104758259443648430311398730365145784378953887429603114170473853561577521433915133788884906050264426997786769081916952400868027324464388750497642610176130240543891987357587109280837785227917021370705474417671217157748779247313784345737726772187564833535536411216174430937458036498513182696960519969936554721013213995715125642584864882759445427749400200148583264723874192099326216215612448928956360704230842811785472627743867124655377561041731687900345360611056413244245526353759436850149518824571885370838747127979253309467222074614633152033024011884348598823186876982744364308626608662926503827802360587234166403409164655904031856602298518281531264126475702765610142330773141366284198353421027451508459410139287390166300987172965799053500428780309045148670112394595124154496454974505680657046138257540212784578540074652704462241790819907564209201086660921780927975383737687042198286984976332267671079574973525072831666914873990055559259213499563343562150694959934901346622296760060562932296018175592172386025014711266653092947057252799534528782057172415963197851178502172150774708164632469083344777015333607859526766526857174953283897843176483396344054816988150117967777784975346652944564560855270428769719793779625782225259356878719498831962460366385426887253111712669378030175227227552501495709124704035912537053235919655666509332105644930603436562089248205396893813731639922813259212993906652154629892681078024989546339089824282813608429923150762650137913620503728925326289705675098379062641007174134236919021149023941551316595552188128845885498312830483142889008572196382519724988990831018423501768071096221692068154912901993207668358942577407222198040844109800402191727665013523583843064746254585226471413407409928517241840298847843055215836802703987932783081416473996351984331747407544031531881739008915698304034256730041052570981146639011334478619085495221496958135677959312178906788102472466090019355286608132210609857207559783346789410662375334617015802590159389471443155294702846445430298111404825577419627593539583339367393101215188469655873671293094931101607061302267069006357657853326276460213132863285246145912540034437705315336746692812324063284887820176746608011216002957423258950178090731962198779748770551504690648841813570740323714619055564991669362923171293117216676822768754901730274659656496798229590107777898781197996346054407405301485103901105563697691155265782410800414586105038426258281335925553479169093918589312664866456266831462512444314514806629802991516241908328032764532364511017525509012066947215475052358510306759528584580395142197108797692189759996474029964638472258446223240212508389341548023885326538687263775440094406973886324076886601510646923496869561006839881144092762041447561781080600167209183930376923908453504199784620510009997453104535795542860370003462239658145600541929658249274000380371552591505420988268336944249962632127137042572326719826159576734457515978871305368378759300788733279065713849058421097844787397883713595924856304834108391699739888487773602195320659883085445643959802620548638472040189121571259677125333597371497415259067765704192119976855261152804060268080414998069071752378051794313649875592017276662766110085455843949760549070070068189535032362911857082209508028775733297395365912390589112755704140193561720194470483893288778921664788813020262385176029444435183493148377465792104293393065077390407210995961443687666079776025280992595372530750698513763786492684401283958726489808221161610121212473409083092906521393081981601906279583012640955646167760968471540214591173760130554480693617763077805876737555653226739736530464661616302413789379247303228449970615613685844537686290368162932024402029686058379213762231268278897719257556686113940371217449242751328300160811919407204048244114684352599325558950013885600335281275776015137631752749159773294780859085900876366520002756460246744384147023383872145441845573349451199700257525789929754161557411397780928851739800051658757324607632963302189518781754950123232232707367386352213993075412749302084062646736864355578633135538655284796348885260172241232762306267675818266555471001179767807378292139777479778038594709931289766344392314565602646234675724828505655806467487773788723418496107645774274060237163976570593797594521606304609484447032199354393289837470543521333468962243689507136508131787331741533320349243222296190151959955189020132302413022051895119491391939013602533867384085868378658703381774620770691611290300488046259852092392908819500476713010476734106821960898296015666162027064611017015835391561286752587439873127184828435197699073817137650631575338880024688422080345975347934876544514347829002639284977706030871200096125302546737620421449094933522884423618098460173587463028484582371054133814570638524214749132634654131119477959784398254960876028256410332510884662200805704889424309818963030222079942616790343468996193867716491340380853387069777799903369796255935176710367052626283789527335395563903113453651726978341784403802714732700225793992148114413786969790660771518337424227765067409486303206285128903083099039752974660082385198972752111449782288537685351811746588552735875359862038031969818180293956327505842468549650574935613256505976548432207561408587969804254880534002336037229282707117083664155577832150765208408751653469649686438377282102091029253504818326880229283888237019722229160625331163140765491012987494459934967086194751070279118793112344206817100630818823535778653475790573096552049805022623329762106919093501871474582035017903196725877805950802468744269333174177499313627916248139528756542435381289933007563761557410149694143319865875908804433738010605997177853275314620053965738631104199168348027706470459366444998653574279636526805467960865059656060859940150959926922440382132846506050190526208813943611253193032015744512951928369776276072911798635512440740731814063587082741913326484850950692905103626508771125322824085727149654486389088765235923038848266563866753994387003958689009913882773692073411844940437971267542222622685597746610967706188482320740266651575670904648284912474228479675214337055963627085497436889495996572433946295698427328616540263478883796355607420993327217056390639714130236687756257905051555046198826379727064821893148141927956960830767068607288604008209562914539783525733181441397684780811580868873133967610681765398433101745125039915463997436924778799065562785915809667096937700352107214386770861381989836801689474636664636627992259321125661704244560885324114043263560958790083250499984593339886365342909263685970558638783745753789210356006345035549749521776109397806528746210353806545208059040441076690302183575220102822760647962647005875174624590776730596952688080862604389676744581292192399966725157138213255546489648041411679503589612565519833243515193036076019092125302349997072895813595441318630884299208134141648682650179389640377613357638408176941500227580867712693280880247626125992380403213728828742547146516346512565455305860895862355790248243951099985060498250357899295688865930355052178950502475883568047626361587162943759525333760395669572587151752685106060124785765602315590388110386046508855711746189032339138022640526091346333957814573709921734677726207586866095163792163867911469503990998031814229470212360700378835556321101100599012278209310155708049833860780452651915288657749080963057209320479513877739869080694869100634630623408291491212196516555241860932172746653925192458578128991920088915253590132067344240810894921222230648079708765707933074752930135805421752400596794360398597755142560609050474502800818872120319659735892366009639996972860500161962742911571960159098804493466746791787459888921165287692898096654844919107984928281222995823326475155367025213985927227672492452004681537292921238553515626878655730294776816801554100790980782197713814827326497754798792896712601153046523900352898118542709260175582548242071313344846287677335397992733539400014824592397442273383646916843666336153171520383059819210957172586896164718787968499110313687263608492836318371970910136357450302145446520652368609896532240116675152412618882646307995311813466172175696202063361555025131057232832073091018048253469251441170296953367074923823313412261201138465994373191464665008542586735586016789512036350417075737990048975754628362732213251680418444277955109858280603147484156988351030877576095957094292753557543185944380878197215130472574583398121593355576670787255963661220864070105310579240631368628259219429385635392117764540560658771667549968617926131974882149570669319304236499944023162296942840697786676549293460721873476454953823526493974989373304037501863247809353252710042439969084153392860544340544534911277670599123069177139761390810250178633656604930540647505733534552166976973271249908555306039284806138515015206731596534731542096584787796734342259034928836805328327866599181704565463792728575325014271121851332500065582081928515752808207024614670300146669672999228549875926750334392182515104693244608862109030519725577606612152684281476546910821431076814730900908588932441924243680457314663597238415588438704431948627743657139445618469732550147116575732183592219109938918088228290085524035757727935027536473245732066874071820010032166635182982437373848664569813832775359755847049126220149794674418789411135446284015036669756578281958174283033932270746512311950182108348305186912383990867035450826970581646098273922213163599343272588937196747813190368020903712934825322110643407988897180339418200781038483199901875245687149594876344389813164507917597031095298558560128334685029912395162354475497118155846334579053319160165931223991618370114569613566302853182529782226674921833816824705409060827789956193546607538277124268373059358829980777741172708285116717137395917105141094805177062618380950520957410643221663911703618028593510829971623570212283784167560918271507334394451679589488921752616115439236300387151339015954185958218977642000583942894504326918404262116548098161884110175538088953855344082956992374026133170672552254211669066489969517361010952108494787498785868520985910200611476395259067537636868009786042984137770279205079106901636189795148632458600636524062123550620758104296656037713887057408653226109391101253720033379324127452540515266157589722301429278249880285744671809612365801624643217738786387192461705574860696325574423028750903719453442127589735032572613187987026025635361512005380524884381181214779058949103702286117059966640136150436589507645568852975011051976111316829529609825035200632099595143639282981738069195642718502461715731207050268089592687181247767590621920185219394650377281824512489458791002915278117700221118217763323863110517203580169743153992617090866526510225561754659094433200527238531952430001595169694609232004047738043952248821718280584953798978624793264297899648540631711525529773466989205235550469038211887177546410363951646337402345813522718288522835138050261283520399206814212040054972370903511950803462955737362368479902644492277539306665340148450247993404247613871483639567464739473843202366522541273932449367756004915584073838202745572747731996912650355412940063762457035669449117555189268138670732276515928466758806609524727351787971245565462739014101567924149442534890433189822400627066324917413954807599803533999953440483689455290257027625139047770741613252451129755244401296773461885321015730186628365691057812724854721768219077357259232490292878489426115698491132780829887734597006458278653656742759731968817069649278651412880624005212474558832302076275648693678413493301853834655812500498932039934791897013684414605552639552867632895022873354938046114137082816964886187507902279448702833820767354507352561307948953825913682506246037735859867021555904637303127198359570145219652359754183016206355685301009738981935233507465911156495872157225577794973442131888587053156613533433774656081027807652933115093635038245960284575165096013423464228864694537546341518234711719371894950896066850099968429116119397392873916271592755437754616147954357920976019339706807631740617761385676554212173957959100820316232637442685261586059467858778652554899939655849869181044556003549140975715704482286008750482933992828671095579839018653544232215372360773227176862454987220594332566133896262046287383459380189448921124192594269072311945664143060765748632313817201748607071589348322164168511453773454778425946158092816935667970316415321956577019611166234491310064883723341149911895337393151662360837519376378256867861243829188924119289541858113228258102475262545664463163577458961766621576292017798239679574618517786412300953178305801093893044781979613671959530822772473133994662204156384921928482268290372910960489131391787725602312838721520423920236594418989019931348477114021186866378679924648145317866630389806757509311222891672192727337107140485772228061824202636529699814164914397073785573388896136657099665932169324722064973918275450268730185663997556799169717320882560331214229078248852669386285662307167876911489782972798412000194552509294523226173141062066908365826030060778196478841919386358556858865710136070709507465928971138980028500814932839131474835334249730032165829366647724870219285261533548550985111273091627511267342607722624411646653142562362623776512455083188583812730855324534412940407522070207233149389788423572915767304974608289876418667705887893325978558263373767087592085459559112282988911857171554695366129281182948510604721785096052576161614594138734875134250432543676316405932073461699431226587880146707694946392599373995248824187222930412561575691266950044365024607890389465468523229922492956883686414758452439155951032624013899461248210769839547235656159997745979595171569544839334655772067491456399190868662311439442844629377106883075658757929708275517429421227968666859652380949692765019096202714306547390942717532759576792125633561211227051328750020651363850673745978839938294012153212006158551350123034167210857753778784640416228564508714415261810548666156320436256919702088404740427262489412133312649835013005778953998533519470327259824041394248141498485758950534087789150726228862871567951655612002439996348172730171800188027091509948779375556382746204254107793953182307638662268567300833858172620775255975870122653713464674036324748959528352686849127376971193210319725403991205317423300938719721489866304067752739004531675986352128812862555238191803801072888942557889363956029616167892629947913234534350020707726655027504467010998350296749485052103367649513551730238208819824740700428121132319336886792238132178265312764292775169675500741487829216768841854893936590035785511028979029094690275734050182570446375136709592105159140212865703743839710706748365379778509530058875148613239565371657490292031632848224484719621607330070897208653545837928854691534141673104642318784965015229209689694539793824031467189328836898870183958373618941189935686600246645191147658161769876778493649136589431217902341331905688976921850954466802871062440231885769353519011288371490898381187007596041318744203752655336543229835956652222664247361915304209778000200220658673300177675317191813091081815609500301541082710299301971562337191832161537875385139044166572952839474381788195581773962866240034486283650886757980838295427842451391881456749481585875505916830388070826382642579179694475952437758585615233143822661366501096232464004204927717571068653138677148009425163366539046682751325584975933295349755001886457178043524244588808038621205578367880579026447509614773965724475621424142918629255591136985410384816270968055859918329586585240314087981278739722754954661980958643452183128998666645428895480721732168863142956739841733453634399238959999696574246938957167288166801252828231516258564311752747230133228336117042771626899939748742501852717258497634121596874627537621179013485375999213093403150474522514441238366668433099336030616723899533525035666379503009247045802689078150738727118391757510677148673433844441033497938000027542425680672759851248769670204992136112499626308232004437221641831413109430497490102682166355168546555206772307846354811701668161007430306538430146523154101395493637288087737787231556079207823469484729411900543224445611212683557333423081115754582134620431092432782208285511392599126859274585153591709481746620416613473822826722915544316475728650767133495038588653929184593286701789294021588645794960186204976282606097453249643157177387959444307214190063525615513355558362738962032576417851511250576309632415516651344286005276496445624842177598873684967708376601729985324407226154230885118311656842175912295174600606836820674527771371778002964353372025792121811181405822624871098518163506753255859438353994988294224153864181151976055260100999042879633638881816489890392737504300308340834650096866051479744199508729108283536336939713570227570314411850723753753955535872764787575304306337092005514342028037777269513187320404034231865894406907889736954135320597408288521999828604772432070178799495678875180722524692754055039173367792588207605631712879787148537405412453006319286101459420042241440092961815249820440749748126003151464152558411225681926610914087248743712636822744471890157301911017232617228618896963105680879990532553591208095616860390856230342092926915167926874419270526251913279476724081173910892537567050368700778794196287170229441827264848347258659913995918108788763924978562332089093901748391526525884286922116664925691157993332103340643216261519042576775281018648529465646822464853600999104000603043018913233263477097561228580465751919902640054689828540995403250997993991462192040405808520098853799020874547070729827179685378512790783045361349599279031304348572030791265426980730879554540028332555353525303221418896160571580423892566722576291591596591156130211577823581301691862062402340034148273692081174128427195085300928699032471290175515090835605600765212466774478772653535690278880796026460332143724795623481441017944335169057132243090683138542219330222998959681660777398945324048238812514734142355060093144348668671115449420995721158881122733980466420934348665935465490185215411551464860458798065939595528372185611056436660607434987722749635394905335376465824640179208466406082249112400504579984260699193280261366849550263036835004933166674542857167913183025291776639637596626051629275252135375166265226900527983439935925043932751846260926306686430396901043532941304070369961126586924597969670741070127569627754344036394101769744030058041072690061091689843241240505321729336429265544233935685620255487256949691219553695514287443905139051041447653790813910874633235911905298232512039368021336497599003882905756228118815271997936252574519032514441236722913400210110246108877943545261941285652027951320884559456448714875294706238325449499581596483011080030329795298343183151015179001309887159338434386272130596136963539357171945643090504005578529279149148634594220470011803148051048594618525353660586855801985322649188395870291169803415010655932153665731959081691981274192844120575540742245303763729963613161216116380633231440966789098301120165830097795008490932094997316770321804361481959335562135407969427466724509911336692693632012348482878284897843640751904520943069259159432643505194934518204349224100849288188929075028987929652771916791215634314188002439819855041179774122873207348686126437855954294855493687389478128668317659227182337748127163693078789388407224286222203165889669751399442228321410976477400583846293421056716511544148143355217857899348730505849773513360239606140218757519139216164911730583440371773543604206877878816661789729799223416139552143288654373256717694198953790535256047515468246446388332171208312143005531405981373731745114066277817084330945773187383320776893125486940646061159269756888968901888172567564405002860204544722957813757730307534306514270482225383288288359455164070208138424490347679909201827159128398097530998965328576846837969722185746728059152126483257508926442582520708453571416384538494587759530789137360819704758612589691651441964604718941365060565814515351636161042838505436570916508181465582528724576699655562385378364135166851258596879123861852876782601131845231661242727483901038960368244057385229399407118195711947673430750654351506798257266355414891563174632918735564603319498217344044904719430307032164440844797978336776523243144461323554361724709977206964992398405975799262791709555088046428129509326737822090627812613207563013511689428590341709132868164407415432498476545377242128438067970542558277716374114500727345463684948352172273273061045510258277003927726129142279519833787221188436948507353014723948581965374032060420832886544332553512520808369135701070508952379029754830043681825922230894484396733079035327122624127195577956447185831501330559231071030628703476370977667579262551693477484310296975382926560154926471669072880519533059407171592716873662485481894527674051104427482192391668984137472115553247429642451058977340923665380192073149271074744940183311591619131167055429511837396768517890316045350959982340848117533369603023353203524641275136528919067704139299391235752796274556548869502556436466105831338758243268996185484841270533480149484836878979096360356190374399329073036230163405049944295078309768855151003205970348520498368706584858590111352022132835776169548105392543871485292725555443476188327811872020540141798570863559351753762581564796861083606278335557994461798564111186974427315996518563391403957364797938991269493040745368369929349223677245726384826410149795416930315495636227088013614802956628644156911347678771646547757633799457895909521052225959114577823733738815096304670026998933287992843971376727979603981509129527919669997218122749090529309603172083558947098643230674725927380923116166307107325330124636608895188268224048766137793089116385380804966004503101540352785978825408851870900000640590551664663982136849903062492646896612774663623942951765155325421742242754069569464702401645654736923935742525348796491400512999418700574309757737460527728912443481508845336504343948304077051222736722181499327611658227878689317287062830030698372548527433687693308873246040591699285424484128603078669957629354614182683210882710396991884959456971715198510523866163526476750950154707984617329420541665708328427633945512343422866225032424759826669723825581971964566670226162015770839334680200183351819584212063937251925064506219394085157238135930596194883566694706293314804060002522498582977820747946785186307166091902209253131761755384186650571050741317780555941734764400731343608345213231484663784343595818396538973197156031931666530750918490076936293645839113039213653275569909834016029101693433149981225072108165544541331249521028002162471871087579972893962317320022800417682482775586254237261043182231331322430866732798444681872909338632780868710352600533227277187522681094548590348420661840690530805706959612236244277572295720544729774317830725934668658686000556730182105048516768637690192185695239569732423423347789362712685233883262157220980636150648171226085876672085408796979610366175701838755160653942646991889173326648678779370718144325868303110951392030291087457553246907800449033851150569589669295286756460364074368900395573783875516368650738100978766380497052470639689256812851397611973103710021696627005613915442095460253181442672747529359926423089562799060998853073457483440413428027514968492038858900316444201913003040281850561313676030514546903657741790143867962622585084338230156263698679926456123166920174547189588525200096024246972846401976239173034044577286674871242014672148353150517784254761252040536559754109720761424545391378144865122040631616546565144366536637742881926354664561271372040355309634071365790382140560345498139652643493701051871412287442801766265080838713787055035759062436309630859624317975215051311479206288835098277519918141616770622600285339262380479867104308715202088413867557072284055744177428923244292832006329452078881585151755921906905317478651553323865790181557403266869917873230730067153556957063995698668112739468075974442561330657844202441692876751245258904219636393083831092058636464307654619293574040780750852833046895930967098483082253944517830056676753458397488855962085947742055465584063444961453349371291018860950537745542817287525539779252583094492803662543308003155682004747720124750310585409567151777141991511165746602562456693470521374153087236610962824479877504303938481121699267235844671537186658736794170849535807173213392798270612197663998271294279690517978735064248246673489977984325320223139123716653245744729708515710429839218637033296112267475288889724841949522682221773620756497965064752907886484114358577541101170738396428365851730201951777921006391711819845420855358060327901807368471171842387778101216373837303085180585402947121463180483045193602015938327153064833394112381266887743155905960319393180161214322389753127561588841141033170604399030568865703672152037873050595537942624916683355894487108807589554697383936165326353508535966044438110375102196258962409707269741575359059632047995659296468834995791567910755033414732154200432671908723733496839302269452461077798826709415510517580658336359379913044977038353571949686756686669704029156856633739862850708538489745131950598656118261512595756520786944245055259842428195214259127335743444978200781456728074307874512548930935806997013676354266951913526166712239329766677165080249274475942347173500929477219480943465334689942194988442686761318607186711419153084696528030684281576663428591467912739236484876218898745463596413123332929895349793060237866800099986771544675678423554376710629930647407628285171077584965031266684856062830349804672861371406800812187592419645748955068133249082250647417329115384954097742839849457248615758176506062344728557791059723319998028332415218352970395840090069619235930981615708978741158583540563963659566156082081448052988008992206475697017506916946709057852268724327705917524684496845387635855095513152506597553450477110339105543615778778758909066930185599519124689873270258248904833793214540271342571791025725288967901904193061408472566206812186123227317837254409738835697498436207160176320129217981799377920745140151762613473002858140414740415968857914590975636045901696401378321139647560922103294277510477230747033522286786070072905417778162305782196061853228801650738931144596923555492946749941269158283343870939901649918246971543359589405452613140710265329526209052115825585525735945735926868219294225929305206275230617167545458238753179254716664381015693044572329888924596699520471468239534456871465888348704506629483907786274920079691151715091103166912322309071031127264804985040938308317757215294880048097124274749516896692348026832911404494573120351686058809384961462229704428022630556981662004388462204304076031750025990344745100289245115157426555465974465033637713646200865908822045393990796288507472834088014773097924734906515894364322496068253756592897477797790480766175692274559398341506500129104870879356952894364234287723492100364506966931720274773593651521830147522707510421714620609572469740820029067083553641678582722624750849670963003314518182619700335902007436112880380529655458198608790327959924373087508284746227145376439924642020959883047957693468317973188953536233072898064600783827875491419487251244696001602077598002092513346792124957072354400767616822565568409569478820258405163204502546732008849422220863248105736006899374918772087455440142294183793893751354327303709373139627539489479677852621482319711970454984203412980062159988766175350995770210725893482648308658010348206836577034388911265273539890233514207161250771360815705106314397471974120046464812629803516613912088872848838189129773989278979300963354930400862231618356837083680967737150958291805777711605416650263577988178744827271440451305534151677626864437741946163624279559017333898816685086017819284736545089556735334751498547767402579642205065770320691325895630302231564042200637284233181307188696381856576871920726184584908548047417427328706092117681252267412826950168031680055351908759112766147053337189429026673294060611696653003127729966816946742557466245885625477266854542450604109079900499471790571383022117915119826754420319444563556669476488859762342714538928430559752688631979202030870271078204576940900391260366965300538779396092498390217126911123250174011674492717175920759349645835674161855863394664233436239107787362258500431456595352470063621183295710165366828934380633231305989768996492889416808362993366626266043000792709724867833278285358266461658149901458443314117198303728963488262601069340247628448324701117980826766188526181827076444041568950195170685983726172650871397368245014475537212592109129525554042195410441743259420471087130736108653301965318626243559603278018125117914214624646794477537852559041516342598587645385499578680488049435574872739257503914566500619316156841125794474736329011354579976405594865816989714518308834493639821778782689856570633616669782755676720516794244716442525457487489125431121904705414212798536382641540487119753131570590201988037677111540841418214946844421451023293354812732495554739845750604444437344359947450023701208640871976639570653819458790596077965626355990621713479968736756940357553653644048348328919456081635160046790315860051755027076369851825500129982007480926142815624737267345497962901215231624619845034380541876197594801759559465727179461534888781941517780308724689142014334238008007595835108965448148351916186290218150884071106712215389549838390089381554937429902407258251688059747794771966846795443718752777976368410592982622888770007172437572253398275831704286186970156278550712712022643123254808911444670474491527113171325796911666982470138647457808556273520170822037655303439744092324291302480621257160928153879430856308655706368416692567843383940862962112995489181998592984864636347155285585251402125061153306645055955266597808809744743993064606345111243345296607894145742106574296927383591354202185943114047905073236750576817264542963236255220885577268554997112791916652206942696053408202671294310624841335387435634802198165138355373609902165382560546729439016150019035062172540184674954124175174096067148221230155532281257483759391551165273675646404486076991711242267856770671730330591271244917353139717708910431733113382068378663399863114736724398386480202466048245684521841409162877366635823231613170055246561943630858210700489709212420978950593024596607905624133269418951508528350243947360530292053918997917476406804193767174725897642141931351253251240900360901254845465832190101347555497499979374078704504150521882065868495386777050646876188230834527205372493568196828009156095153797637516128165189504741660191996425485055975497133307595163116742746896405893479440514395442586946801766663644257314501825867968602244314213771253611074016409409842805874548061746251886422370971211688919735136725033967015682043493417052208671284473586525990064506235621562091534172223393297317040061498265735031041422996421955078684004727441788673386678204433434319676037756246387142551131399660915088870938156237700689739714985962475598666041316267391260080444648542987236232346097910778497472129098478761999823237095890120060759137538992932777223058819686309650028926662064594080682929334711462503957738528810432020793136073430498755726219677041061449368741308607482983215075118454594067136302658306533320138029219485832117689875112686190756917969596973239160035129598870931215316821090800190940812072590945463662970729279818796555348347898403804422878208179423772349022917277668381794631365407126361251005902357823663632045888520816587940531215996450012358388273847800444953551025111494250844967269550130577646326848624057888424357332774852928612886915754280669424901079945967381755003691942374145974023366504233912435969194585447458573145688445301644847334624380027213039215838319730507827962937202970664336559401114599853807603459167129348206846201273965305712732487052291663770088940797931436664138175734314904514378305754236776866988665760235894120610563522577680215162368314402708866374515669430329938906033519855498301130293132671866154371317380669402524414449680469552041417167564424486007080163050774667595547825173705501201528631540244430501681635545819900476502284439437158774788256936287187493049368025674904068150483114536521172002584655176232232047118624830297685713553918402055942090537838185267128545574660576355968633473433102212826979225501158121494645334842906261348480938232151286195147470600269276066208711303421559306593782120624483758002127579991383372327407054584220358780823681544517609944259704716491937473966540490209333282858619623737864926320787467149010961159562912370209375637305540821904558626633876454709568648726938536631911705062300568144155880402743493966422975332717993678112820344077467188584012700207787082619188980990168687536787882865672454789411726030279485536876375324459984124827986470717595504119910728117130388999627080085997460000083450896214791972462392876809796536139278057721091195434770166953651614672908437381420017291599064376484198094139256206710781038074373567789154112512816953051160278973754002676960958356849063957005471206956721018320936421505107298376930208058657995341318566335629708777141120538458368535964949572387286960671887629077024341561653843540739984299852389140407145604944280617226935872057824810343261723382850831439833161047594762737154815776205842848666534468995277118913027259985617687899255749013414664311165066770217553342148601398277694532923211256991175412258288692453044929690085121767408286936197111273767134395575841201155836227336767290639000377987262519711651616877532668617222360768171566093782054691205004478792909508387665145916914108029569354834408183521106804057112097589333619929044195008051744013534223695194533830819664568359733714383737114727299184204166774907076377710757094257596626074944503020193384361627658312116153856337228522582087642615896302270518806509426218847178516647245105750733037519592547450000443047859590062175125472892270614349396953475778629326507644031821212645077082418894393341832167722282042802094824193833862198952463934161897134484172968326960130497476182804917533444657474962556278997476427006538303803609055704897135435509805761216413165033733118953791574894968479376661191731891996964733368475610130042424327026993866667587101606300164523425192391665544670792857710955880123301689010780762124770847487338572878523844603270821061590132514234441061689704858268948213306955371669200739431098811199109964211897382513982852135777738569638452221832099765872156150045169104684415836362008489132983562731961239213336790182451320473672509073392235024381650389527987405037691820188682680718653301219083775113565438057895860529291980290165644667755705133945658940632676003947924308690763623587106154077143578836119787385794552331904908401426193515424711645506768908923066086669782866776131485237745660590771249287097507993233048170073694186510025584639025718857314848669512013975561945855432393059103785339870722576965967928189932220697413466328721302600685908206829906845662744944651848228324622150082586767725737178487875087587004875820994923933192479601143666621186681523520369187569229373881114745869391213441228760368287173396052174094304971489774421248311516539152286469630544313497283608459488079749946993318447437022849102085001196365091901091648004722693163990300126119359674514443530421748301577195452445311440054651785826163583627627322912345826838905191598422025204843254750449027042412266596122255278514109376202054408790326461439654346892642199925967866096105027878659525754292043381730610791556168116019526594242340767103979937085299257411088510379118875850489708900686378864572847646805651548661667603953542679142605990101906201289221561268159205375426633473285267310116719030053641436665175449045062735776480253718274035876281503877467428793462592554260324168162634363252446868451764666524610755677180800728507451043605933622128144618539835615050603664982000104795132366481522508419719459280805903630017865168675835936291118910436398415575392032872647497482608741148917899265679361495386743362136815526775233282060569003799426729358068609728828955504263373445964542313560100311419031567936451409389319206800570935105007710124544830661903167623050846336838477382340090397462228748747448855912261258513103032235165289011245558944257149189430646129398572347136848580517261587946904485307046381310718762199641528822517513002888055605598130478763400021251704931019729763294829694255598178332228479151533302435644885722864832673645046547422317073077368795691193901749492080804985735424198979448448692616827246774533316224162998503049234554800304392760811535296402905254260554145110250243274088099403608573229110664361399123010813195011128000271645540627626336214794108150068970900321421398758575079811668420996790139215776936785591417732176387640263174100569986123158663530635082365764154413037352285545061031702997461281325674739007934918489406257597890519026999599705347301391200608962671934023859745726224639227043433766711990199356460561265389369237132749812254606581398135639673063566058126485683120995292903667804571970744763005849841155152684654065355061612956468019273696892476332973812251981745838967092277870921660774552841301182770276748778407792581693081097692915056598015194091288459768433925805797363135701276495650073260827324854580756155954393684384539175397952882166750048621233448138210935774989747368472980649578073944976950726044383430109200071399164851459709059926600549203606337928274007154081895877823619395154495964522567185309860724517444435690675916236893770433752207071992149398052851055359144552326518736565718564361722817835947062753680546683499904801151296989750860901200513238356495859039683902226477080487175377841450114320875283657294006054653502002072816250334004262206379104256992303369127805018067947813297681431317168801983863327752103925106395279812338140229502526279284905482072737930010349982879070711508270674396908948652037559058833471354210682993896861694767659207047258689595839454688975685270004146846391326284114758559225669651322802084948846868273996982906781108321715750863058046883401613153330814430907183470759690178010850720814108007228654224838256290227734376148501607790404484040248910698963296831386732137219661074875138330178256534575202485470833168406645821345270572426577808367423990431456366669606785470432746820759320455976760601007984116491961982606240869513559242911853910479391959584670265980356277210157729848846400124927636007720220429384150806990986609675478112172520687791668558285930217888037430077125383303023377375763633114570824661276635217892752672898536965843158802461694956941812589468076764362837893083118180872117987915850556451500328500785052883086326989818415228437164863535194029469647242160436039771803597393948107163880194133743065545368390788088707021002573968695573251500599501498435591842735479841513461533296949408898613063544702828762165940236056335251923348485058001529231126341889898119616606368959957041160828978581369623826369782897557409585029539715697835535944610903541146720645107982124477170315775529474566963335815965859937746596347693166814747616280698262423753588766719836639044743315983218406953922851587127375538334178115845175829466041181687893062302732222055185812400703006283053621953968226661376870676269474772055568320940232571535149375194069631002180834411094005485717082885577385956793182890896504159529947467871098767393984385543422027049400733523613054490412978166471358375558403652307586981214462495647415197649813822109885600844851092269587774026757106461705479357742468267257267479661485254842584136746704172478944528348327091942815216145428879895303545670649123849228339263026860367197583714769153757207891641623040144446912268754306236390135644207135403788037455425202183489937772210628472366138306906291565269222201733978182492115484367655701330623514580863605792810788891590605488410094299761295967369344865140571400353768617452526074909605533255649734467135356352008266192782147244841737392515389576767597479833256205472273390602679864302068704376928466920005870305439733673708092013605496001943399701937003901387492748352173000460419118069446733042375469934968239231240174916448732806930994394775898983046278459453368064243007037480872609311493773143230405964841449504522206359183462887591750388157626010963130646425302931345212625619099751007684974871628455925617833024011832645401336719256216782469553344161510198938202002205966573373650883092570744533915733636560351128112902377235961253418535617143209030358525447992354254139831977956315047546680517817191759846177478532135950839628308775854005174984822160221107809293850667506323527406066642534086300469928812491234278313668602472287101833575678187194349644657831128195037537776939903463723598029801717724880283014265055464899020223806410139780353447751980901217631051868673437375771726797660519329506765999183253603877848235734440912930015541850888927025252085274000522446665123855730098337605823860932818889615898240925525322085471582209377298994244627121551801253528976857462655329640886089885157863144955971730609360320826746055673943226944181902889844763270904393332588224494318247187387354349620796817982264523529397923162904805556610173139004317200132426090669732917816340844634018161853231064572023328102989774930843891341702774864638645507654016624419016378097087833864078889998437939709840286688395163953999413819416951888726758101825565023496546468306395126783945776264222435071110480326504131442132575749570006135247344148949937777364901114701187778560336847310108747227521789837245678493058887165849954412883775507440989700048305245547919899957532426373384537075863124007393219257420751976180258496175237522430142237797270119358413831799872673328153253373263609802380575508393351327877707212541124010407725515124110374574383730046978942571679800409644502567943059003533534034683039393184486243466100198465084305846806935747332502740647290654915818044830074198804330380977990741629813310744529334423097916049355578048998094327312292936834933343901449685397671758323719034026801460663156896468993755161302831925362569634045593836653246228334540088929379109416006930704452977156862317404787342267304053881606176513430167133591222997681281889271235099346058891339571149500896913663303082107368661461918837177118337842141163163071609589974229910292736194976872528584551207342157914846035246361523559237836025335615308720264731157301770697202627577518880927679912535204197686439374929961146267513272517923322258372301866780325743306511852497250872463575119346018544111557596445795894998088653056528531294576649101005253621852258100731732234310395852507264333306437355513337818318985293498503473862609741155156634635701972603746855081907852744116154669088238894212176284978082382723428779443438660895682742802355534132905541609396907309034331265326186579388188494405383785658542315811762203826184204311638007532683520603481077515327022175080569546254142811324676677483854634447433066934710418135384603596971426598860494299794501270746569157518844019953038328772158098871477254566782559449745686932467388857013980026448277879239370966127552774450169256002234972739641931665205436495807284495244853504403809046839020260112603767763017334267953691011473670318587293111401045683791474104483539984993614581331532209838780479781622809472046062926726717764450696366653781009313411283407509518307776874635017270208621961861559441541774659114057003516213613788396837956205173321571140641905854129666047224369098662546063509033912834638730812899787415269563893229902911679278459547170826441870622767616812247600951147341607735650443011699378707606825335340302345288012939057567265660955254805032516129967741733393050710925480276302993248475291039168332324454906669313437803914473976164187573414029139471661357241984137755381440950607242625350534147600811007857791518431895777102778894103240975265084190865468100056323204642806332292961852749481933065816498847239870063913548062655341460218565941271880005816448157074229947426485058821205593689870106880445537472260020326703029949922930728230876643175307030963028378890605001505262867431075297903542316779611199754427910596475972281435311069545163132736567719181292574507348040392875747228897595457845378675405135220453883048522384408170885284949410722341873572131831936411982215816573358114791050863525239588621446543389036097069610455080512050209856426227428067326164844989142729611048970023889489336235223948057002543417135408122746406611073688253232915949520042419185586798391656817986785596162831729883462432638163679934224734471464159854417493589486618499310959215112132571175916346667143587303031909057838715548886766114218755982236574514933259987249390506498413048624191341139269565744350242123033459173911343291274817110773967887730016964795959301860444665788979896579024564252472113269932666441081801218032238835571983089234360981126313748803103692325924364500260543856409552742049874328446854806618966177793981256899022341314846980694383237813356524150441827301244941774111554667688571650265034405714174315387722436360861910962728824055544583670103476824959236725701082242739081338893238934508276223996172907964879654450556541206057250812719814240939968976233778155761979720183767953981098886606220823201246727654807211906619032637579385304927467959827058043562503233445133698925769991793277822289268745434296812336987798693932428403069677309991990939557909298830743207385853987975033194954526487998116080250483934305051378270232795163823297912491499511617343154556370713631860718843794654000764565770108981380153165225907835197680264998783433562799644976762562081147447750236915120444785696253958740931846119054737923723385594300749285916653142063381260520154867035365113541962354683989189426048192681005489544997817688386762954437665263344260868662698770008788579140287850458056216735447721789191177134225609935878591751959516242178216802885666402994849261224183029385507721382425113551259672569174632454984757910112165200830859357272322313579916956661554631475668625939185834344239764021720423039377856851237056600913588918418413234123953128297749883338892753010539756191203155166611769025272225249320097579473627519390066002788815868427234426493665360624161506419141873816111278161905407580074556584377307089335822020640053254091512108969020365235712334220229952633410607926532177973313482378860025775608741927782201313879183314848521918377422356873817359342912147262906927682750500247528739484395135299431632420051894445003710379431824953210683238441911498521021446402597760052434343771634057513694153170668924066456315158729551285471839827114780314784499449991929778988886675066286646021747785539243677603570562478480710170179908429004432653915330256866544713013379311605102920369061116274922508396407378752847141372164392488254410483192042405127375570721430026858320544649908743945467033199401213477733570612487269814659147563263774625662494314522886426507746693313563196861593663823891328824516056967069796435255236193557647260458144469811522353055522720681654099510041761273734474820276782072500788738911533943961086290513839393335043263144073165688559308613478653596208535580457617841943335011677262577001901568627176045434870391299035027960076885187959267924636591291606392799627040776865967189804705407895829448397239667758555718168162742524399173704796347784382356414685210440191854573321811806139899183410310051638455743779785731982238714326964471054913666474273077578494472589864425348144963323776073837771922319374502859650227693357797362009051195229014802598133562557375182342864970644783119020973297779033517513890555003175427767512324369581710024098556158263631895493396877902139923401870619323679409407203091344502030515015218984690359727980257458424352804936442911424752278407084536134579660785329543312133311183695072943867639421765029471360646011371269846978742160924612886684562357104064982626143643642532201986280630184217422646077770200456441475242247188315410882947672371572728596937530185435785413045466537934325822189906501156318591978922586859853825244554168620496077341649523529548680404886209708558021932833644338554557468185412002565856664318723761048554893356764708392230129415312625514383354850263519596034490641945438419508135083951442029468509130258516277188017508863047309148046230635444678183906427468091039494692746830767704073187990347796133501514806182259798060100548293392173326404354153456051446806909178042497270960760590935744504235960356801973628036918262923974023743402265212994843693520720984778030211886922835102215231658225665851085919460756759885105639849773396813347531832549355862219724594068051418811680446153256401958158124953382795544328146195885767468937368351053922938032871243177013706169149321951613697451807731920416012477984974937657710625788880164594836052734818535349925034054326018694687342118551454864014005404968159039596278549524177876737942606321469791733033180240956793892084532895977070597371419425155696924641636468493673352313098982171880120919425978261959553757705621547561912240677417795804295957535567287669755072198779174496808630538568811272950732180257587533930095985949160682966914943759179800881594423826526728028083258316750638574493030076855863401993880103504246295724177875821117055295948820467943317241079956956725686696368231695964942117676609796604743220489184254754373800901108510691165066733112864287239799499376340607278335608737220799558011623111840860459363403389628034249589614313361609008474385474110934014965383710616003541173637370629455869944523117278328021233039427583292131405455465828755662643776852835288564316878912503635517632369894682967479115633915805377843338842800666556659418338600548585206990477002418787749395190234085122269002497753643994574201538752008326469978149201366323426114610719919547984326409631094989765403510151617542788836884469217112763028788420353022858498372090500170461937174162636867726675420760681927351724863157479117949035064956140999084595696617554811119146204346271872585604160468483375148306689360012470106149855587215206720836615291091899723577386300713332911229094262864848519861519124922511352108159001800767650390224275382306710433537045955020393521448637355238311642767725118872126070202606296870042491290994697206435798935815253407507384860171952519576012329123218712568870027870785816274936187573681007558777944997863055393589991048813501187028881622533682536219320822379019618118838522375067326270741457745950498044085661125173201012469441792649203495520261693324520047852424511513191743101907519589616043043367968620836363780333957402395821076067362714768412877608193663042417215582696757188664291454432816665572576857317865273306456680588578599271883769159107386325846605714995798536036979331080553388615514541903145085131778615935786185582508198915117530557341627546862248693941237355906404492507243291472034956866512791503083502859732328607349139137387521293155351587571261508809379940839764627343414024493332211795563638856651277932426066314812074919452450794104289236954153410020580152452568337322194743257278781260828824146004786754615625135050201076685565934867145470644721009219906162889512954836204061648678005074032970274756118855963570676148118138697676767685144265127150678879130281500445663382586921590978628841159922276238846184779696426840870754476316722414734892142575536961239565600225882056231658940306360743646878696228190782644884134381190721500963018523097214467978881936327625866378333340653033326567129678846557405959948564270453189311241600271239946256565307099441954120417382738343451570078720962205124054133688646480078045089248515206645002752718452095927525113149673755884509012242196825976610075438044860127834118287546836277770842011729058834075335771530687861620539744707327837153272236258871904654931650072970885080566151333746345922588555091629282005019953749245616146878040001374289154244170245391839273069202718647651041246820781741988975928112627408422304385285639399149015835341633810965134954605611348068908697789819242832549325804656405378642360256905840057387245037809540093664969010898941664855501662927872781762939954648656701507818492296814893875708533935075456806219099591561902059980390596068699070809554695802037951088258672961032730995230793737080755742640699249210708060879907377563282233462857255455435015081113024261541528328559414824429039267969969014670917887247204733671176984896787826316029135192780991962130997415294112819814902431025131232240316393141551736229030539227705195524143247566104414536558655428896690063438104974106374038017779402434076115296680215541481779262164913874456962966472475581077308425457513520029448898266847377750530570117836946063602007922336073723360123441685555741831779418715909867025504153267949733236523211902933179557488500024982293043041444152528373991081440014719580088355264440801114329115573795010106762074381725923924688117391647679785765778015534501009120749987160583859543479793983150644066817052399844078275575082086346606063268860408723393008775696883765150080496418496956819159387336566297689321638158707035782808324980651721440022934084106158057437702695095616804770539408728083662001851546971838714796140764513768018717995039094642658141057676694853354668674910397394724521853598158341348415253276141872695202600845203940734035078616929143393805211481999405432190104892780840008464073314708431479022145191124304190317704092424878962374002338031577418921263719374990060167026292460091285576902919838600754783918666223891844648989068708263476826794342893595987948526648391870374564646317718064490820636816366626704627533391303343557469381683264911210525574093600451351987542256422035347922345893886411748636635866122009300803991115621848346946558650541210556261637936071473604126312873692720227487075573924100846891315772991301181421157726617055123730164645236779700691373159758988028111034038939315901641414369738434065103359133085667489587628843633501061148729470397885043013422658818755101291738822948479070167687095564072018057150639268343277917593816508107319734927631061718283370733076482335258731842020094815358300664220780840537536782324533910317060258586549496992924481895239434835365750382069831753915504472861824509715239007354513828644775291236377965036786837899290219206795088023583321232321079738542059865483038044337447483798078066122904817547049760694375875105239341623686383986940292044356047371238922352481942008911652248121414791375953408655036384875519411673019256642677416983334005021643925157635390958721625984830331598482563138269057345561335342548315854598515411996244779946896366453139003993337403903418155973825474536794532899543617905851973544762783630102472526344140174388711517112192188366512611943462449197500184157464193610130790632714262913950779959653698912214755990999449355086704684360292368294088154950666615751119960924366574372940315967692166155867170274198720923846080287961440757329352768450018228178921767619602914913221333435155571251343495416633763174898450643108487225573346702013050974123831616341353578504593221373577766146554469703563727219775551380711638625047456847045536105084795278739807056912667389225017785080485441018277469236001785415032659603238341647474083393403584355533520524653223304480617418953507482136444369995797816186796492164539951310265874735758129759239139863151233892464512788422882133706366361095536305296700062721515055874206633295431981320086244785893320189484304931058133314950949385283288910890754896415964527041223620159698602420253238495181091091946319719481391573773900761284230556499670826809219363490377603900833889684043251540057368077318638067543973308570962122180289384219412916556269668659936713244048724786689174826626784253459343774179769099672700253581660072224520124573236919984061502033030847832463392814893459738322843270765481507024388729098214770798957557514256168382941325222401435903801024868546924196478030103999401795873444001428321643629092425489854061921270743227651230433860747171498695893294400941903538543585462685657935416156063952086983839554674051332297698554803062355849305903072596148753228126383230491750474827537189058676052017060357289995729905509852951936006865193338611573335958673771930584008484752594508712114980991146648404584268390181452616300566359007555050751893339733297963947966204142124913871960462092656730803608344160321449424658585169241419697220541363089794635000879307207964018801722257161163239332784535426943744788815902087046492262218268607169301139119056518004662595181999932592033279771853339913969732179451054323926255097432365766200428527215564588326854312843080967650219421741256268506017046894042271769444803789219213914344240330732266165596012498107528091012874822406464370749503949965460029016202736519313197356166635401373273309189096824115915703735076866563137754249123740901815317872027389066919326482584144765752302964081798744897905604587841267194840592327443186132513492869259817426012124309587406624988150125980353853284246458587609304636086363329103694902107196124599189105360080389686304828580129198904786656496977809263030845880653543644309227484288368256158067254696523255517129242761694806229452270301794075146122252782639098728857396231941941801750827145960052666011277625098317362266139031843997575667063807676690992457600109392482555449036330994669795962953942919691971139501068660325682097185066132803410185060057488078382992070673095366448783185317975063615996862169371562671987759988314728589714465038552176500596353860173197277846315828108612864681216582551041342883576016288104622049286279549689417781094023468739522321968813088085684482086240293861200469336822892057610417912318756584965371556659721555626779076080283414530132617795118764313515034094934778609879971013748457173740167061433121041305312723484232354370280880601114674084669321319737798457171514661860207387188783886249473805647949541840622145818469484747468774250085065222237588139852171017688051898633336834814406700991213929668580783580163233889057968724164053566807718565919448645615871082177916611073501030920807276773607987166197423765655101284944585855130820804406546954960336613455114423774035504840221977609569351833552147806187645757690323638171000419227219072031058146206402065496164407710336408623835716921990133829846304779159668230484834357105003935442854126588977302219393134213988027221182937132376661898983197369834032228015054159501545375884103694553686669056867313032419709336606020053321474293141275518197972535797150633839930855411904783240755771053618805607715653192647467361143467631365036261586049237162870551427293718714707749509833924288484948944859989386898076017773849537469472445784232437264075612526468634641620141517589498385049048567267346389229284450704507525779310979409348942745794599364617235410702974653348651899832195854883412773951478546279312606110233108143562897011957347279914136428759807560850527947899402092280226978526297612479888929016199148703957686077619819481926130205847184559592254349988165404624851933461233933062352523750349065346880798148867042842671021306254320316274497201878828224899356951418376095236291170268452975718408033041406561959577758804787332024488752429867404113927174267478133797996451714009297966745735223226691212627938149601222799731948538643659876396876336139477078340690068798354068705951813295758173460706227891555509388696939252980891507189467109154021020225617530697812433247038111390702211118383907487264345729027079449164823170245650949930075688041710537219129133605718579807928754624498987375535591687354186318520203116830520503088774438361293959437086696905537210627481663764919684653180143084035534353014039985815728521861401801966722385216179242653209274633728118670201737933910159794591617998642168384868247431342034485571660239197620680469843895211923949152020917011210943752926252541600045588035757461785700357972105186726538612749550437731689608498073757930234262423176976794755237432057307428286704707847763563997984721114121441044319511966911908370814985091690556441190662713078791753894895831077722047601290826197178580561210220634419439999842512037870137133317021244511214406874661869386029053541585826116422086160777170243723294314932001753325921929556225886227069792473637852362712470550304963345946466057193090119573143350077911730230526835671624183854406792694330988380511816136948637264853104874825575535510262185734901278958126576126028288211664931106727308143172457589333475555474227762985313464686782234598626215971076267051162799553213938488670318542991378516649983716426844883984298995086177733807218066018738562007638424876311865139161961247764862093503799115193422540712633967782473402744394397411203727347430090344308299596194821328834869049481334647436104565953297770548190402789859345492243377419063303853577383412010336156357175126648367503568928286785569983018573119413954057891924392040705600950927800201085448721201307717068224961353842192747006030551444569585104719394887102727585699516673698091933067688432429566306696546800719393096908173768110581153015193990355430245364875375575567286418343665522976996803326555576568539484438731095821211378818010881202625601837805247050708761966998859684381788552725645578727289661260686959977420970254184150342763533286040058688556436209420254032596334088370020953409303857996103026142160250627380542660085121406733587294341923145663877972368156467235854580629177823394984126115059467255780095393035873983293424741918416160978428818004701821585234130613236610867194572586647133528288871970888454910949748806726674766778725890057527618752220629845213851651172918672253943156398225947958169454947205055734908859244087500658124775231519494192470137826263127375025678954006338199685693411646629297580414845471973186310772504001171516504424738652923077350376327757049649694436124254372836194987305662391029156249668149058263654152875058414632956796092152504584767850607843205475047215493175802687396286883702931702200041524155656021736581148041914619546265978818283578511558648638981266916131740386147005060327242018911556823563606157723847448432418865184706425820933826099331317575095085628331988548547992162556152531320618650217813799029928318035014174574719568916210494565742118991210348411935566859290923528550004443428057991137098906470717918994250277968743695106111569219567253687596250213313099099170065336279437841647316574091501407176343215636766393675068158270933731295091347422125535334502042237836202917784578258998239487979486285903114159163929873905117880140275329076287181233761948305370856121110628978664843815854936544265994597149781351978254215196638198511591334032038866368745012512665094401042536927603876355034617314097806153068785961531519661949395942614700143612414865045735001954052670719074401228444873842468132760081454528589059930548225384584634374402836772926115974002505304572764365505141442138150537322580580347645782725315734302946254522276680893375536649502361659115697898866021427208975695223060422421601493382632564158265612746387020303962505542026398599880572108284683690736334500119744063481327613206565675927414463501994787532142069860982525943781849456458767231643894833242104305894330751028276512189328131517037835943664531112116856737249688081421469178825748253038152950078940794629346879972658583826672757112548637645408406010745409890611663650572322905761499167832345631327328058710365205828755966166367444542219198524604658273072368536416811182767271761451970432870369658545741072707794015839144480982525722291570250528827080521264718173622957538616520383487749896480389263718265103707748054826671141469776074834353961059032750410860901403272056921799565033878923438136712496708485014773041441866903641088719425777880676934343861994407377914836868861884900357479356208002691672579670666703166687504120819287185821637049467686349678384899061093150789286135014865229608178469467883920056668899841364913005011146181697133650386190948425788494155918737716231626802391632869712625257246337057597474239300343406825399551761261799219878387105181984116963704513523447260797858670575243083023300439240106168299136049077086038279715726939935003867113574258715655504067473333402173084854825498151948787397322106298990573391481461545412922520298036536599070233084567604126164120658181052234595493675729762340652433915356547059677227697281204707885762743297928835998104360183308806978705692543287419961328195515614727140716993648970374341274022383419551814954492074678963270611932211795414778082263263192988007315322784074277125183883987211592176345795015607460781762605353497479353855685872895352562937673826082857216785181908154269372156183562343314988154605852037559866416837636867412351935452409680344596453507485806842220044219883110331093986299601252636582249602427251525393700409527466994439901532570405814274497615329836007913810189581779554479975782715004947044504570567305994753759696732724296284638147818684637022596521244033397416334274373582180466215339901507393186756529949700767798428249807235976876794844605759818513334700522765260709910475225147745038503463673733635224876850405826492480056357542630388170438379204802267612163905710747990108400511021265735882816042524880079953527181046256830622032422719144599856710558425830184745167124544628749899925389115218259316201778922787115103029182859879522076526762105266189986413117207556092895769035332490537954329924123245816232565311965146583578822597106635521372762358221891745245626849839827734651292177382027915422158696846674219596247444257740659381270988275169891764091151215063447770135132244699647857554376327131955154103868525032841020263046516786605959329466734125273105842069391733991859904731652660732206767873851904969972649872267891021104716117637042782137047452156659886019633703839943389199527055639828221860720711040021679246830804181403820745217138592198501687447061330386722229505806092353149791446342912821251614848363932729127705138622398823954582234042546180461844341385091935594986562254188836300340951351978895263858892198205144702503476548089406072863991325913481591915804539527994758736154840324766079286377387775461173588913027189371444738330199318653032380611532683039799329005020837491715293269785473981774420415583833992464613094931460145891550103435032871338246659882277572789859797351528964231862936600926901633432732809321875565988789263936111060421324279505694506015933756673861737672814273765000063359264238075458024299070156109461784124521323467785564065883552099672254304880546206869376002180198757973530074647593583963351783305577848326996233364685654407890516065131650233973284690739616359043835963629192261404252673888872038078033447099064102258492740913453785028373312064427024004374322853403700460698159066742317082460833571638691628673385265363828765930358239924358643383193222008418865632247748336507139447290019773403138606828394951496166506578785080041837819425972716322825926863972801142801807198890231322890054682841264824691357459718597903689925850286205006670168369644162411234632842587009174206894311317812151216118831472283755924908557380757533464735184055324675110769737323211954491226936816088507539215981697714475162246297939005892759943582121304195680178772862360716000230244780479248114676580114034773538247271314554079443860840128337871845517510646058810582654643092815806159584843592046838475263099923554013580359027140172425380221739479888343139725914709684990819170650909775504012128942572166464071760180197949785626302247627655717953421037081401588093840813074214927929807246345319550205663719394139339164054239709103025866274795495234844012776424871686904743728693010427690124590138522286062510147220273217688873251351174858606889131601719358383609329250078928307576958362646702449945000699481694147416189925219596672317601886942910636810959752454869253964716749087873142003885946668370957182964963022222827404756740002137031591937211508093214232798541619140269713914569812795102250029713879168959004866700228712167811321799266721175557949748708118759583358962853160224416139912803172067097797509971007815607850143350852648672577947270280806479035200559878705315806579469861373489339342090275779862537495670791770052877089117110608817316103088871647634564659393497828066922345067419116575352523414315503398315257251208552487061474284815870621933736283407706547108744689405914387224042072748963410669044118872894129928363618524604748077619488895902557772906760884886643411985101178989424269932772031349368715595727278975737372716407534774293200965570922591643771271146165987238104667549967064198596267992606099608179472858645599240860145044573888903875295400310249385706449342925804439680557161758905240822874810847167054211531513954099357715745778375144640660190812996634725837183175719899550185245895562888059981644655728566727411488064500954904058647541534822960434864643786043741184481053018089249936175362716220711731449406709104231631822316075045227023352770656069617682347556280091623027030771903298916385746207481957644149021743128064437308025928369508663041662580542703575269171525158191615757201918309533926566767255010399362064646781219243392494126759472917787646696354084610198832055794300342975943567980332012202004391473760894653106176037236638817316081836700890215576618502908285849428779289249334682567957574059255729842689494261509242788355781460994666179724746277043728879280089936376069729997427025529658750847967956903919405645373506942551833928259184701620844266468382507565188546210842816329952764638026410321666433721173491573002322757726859497706584847821044592657450209214421095821536696516569496447805033134106384152020601355076367511287773098545111912080144152412319253289279758061311432393906773370744841557474926614623445044396398215853235166147437800748143751350422788799332675191902411557730757845378944610364029802869924045977569699652857154755998807649720409642702077962476058376478801763530010562619500110937919865646817472181311242225525256410773338011103129033812368123564137298939817982218009617580749810930913101195345397855264687382304041997866179462510706679736883541309224338058749509918104811323887103747849646016017954182399560347335599219355760711067840659902333749696465368127528008063746776326224386315213403140567631469773422827223517601196914700863431637032261470407389799390765905656872820356426587028055271099411391502316943848966079086532872791515825065924924148796176543409842486688629702544139754516850785535132015975542103775869390653509577480707060367896492080466712758673193859358595080394788679601625527768754470669247518154076757024863544403789824054126687702431959834015127612232869088260883513018195374779786752926256374826542858000601433496163524076481055954087286205754236791857658347930383007114195636125470440108300748871867198027966974240417485565411176577387671763174210745771275234006505794882704640431276951066916610734041096965491712841564289095926620738150726740134188755087308499040224741088079694203265226553998203662243053031393020130873617847312399397072951213542612219730067255600190565946481727060744136391117522023851061815747265009368767324079906485866610898896009461169712943781617732115848504170297511770741416889326207115476523793555776716466574554400734442988950100763071584458729162048465711125060611139189223899866932782254618958733218306376087539970077093958553545910136264269634522117280984463741154637985461972962453867568602194586631571301499755173314453773198139378453486338709062306391015186992789468730482129457451423754804065001596928107486260840036900196726928115614816960714365340583177481746868373443423412534759804080069807518981868466993727693852726772234186973141387760199827188883001674352717005827428485785166934981094975095254437206368723012249788430332111712838493332937354195099367327672345298206233183991495507847440047060811289378677314894018959721713944874604676216036052202435923609465632965876762119115136083063927483606963914774860283964496052093232263161886435813019779958350585297388080747697554254503139286441119699280147188543255149766185863287172184636108135859323865768464288662576579512646313380235910535226190138387767179246730489679791528566672522760331507739497368488379016776335633806531129291941711494965221182048526225727036268663319487289866566802708775117787432905065374247885169262785441535044296482804118088295173973472917658988841495070868096014964208703042859728061782751418266093974484652331676908056727349763770668438232046853911611552152061122474090938143585459831739067975629837130816083641698354924757270683171604431317824310361717271095960791256133077823067030795316558790967291468194101736648701108486546889192356844789401067310660301809114721686160200260412313961507457791036992156342912776335316426810531937136375506237866367000184904946153615093314280904977997906459414976183403669433693375841200118352952489459760957493371516168470156361818101146580484687802434199496220785652424056296146627276433721619991520557209575777034369295839313054217646172620683716680707628775864190620010876504701464715313237003293746214025607236849673363708495418983786031070859391123762668140522470318639389012324788042026385500313622000206529086262303389427312437975496026591744043170969275310854599387108833337584907733400718991436360951368275600155191427072320246832717702979726782953665728060400603365418703154533593863945452798993956594595541371959681663074662362934967380991810435763761742254425584811347996354029503128863470818607670594267667904398733306983157049236210421473223408699102827429729922245123761413315906894450711326995375857771309442233088861531243158234849243547716095412275410508601007900030671173710427325811146534813014177092537484182756822854885610567142621014122769406538322001582531369412903589205628971402093650909299015427743862171689625153382490021211131430641973096557471196025877583068047804653117545118309025744359343261706572001856446175714373381141069193999270155720793947391534542869266400322050210633039997213068831786685530075608815010243748340055409302002992855476007723929109905673570121232677087215386477212100827864475132015029494003610963297781863024098774649119510112331066603040496083795792085151036455565122340542038316973264737025759488486732633728873091924998785048335762812764796359230754136698704230839464913708922175544731285409335676177502573927593827369869999065187801873138864218019313651968262664045758705388005061815374427409282967664637402145289259578530806549697442658420002647607340988313731635578617918456513811755464575758280049425399800945406995866711603454081266357296911464080555559936984195893962982816414176796053162154224196586785541037037041820426918327682353325346581744823071631483305351072136500173663802838983156992230397238234666687474242380138830575649437874656583016323627190523477521268981997162184128385658601377263960760822886046070351455656353553899854268123508099462945712735959891805137122504458362210071263408732957812967287143985206491196588812479066705735858831565815272114396910617658743692188020221402382451302817136947595981747506246818838393334905809617899296954903961783676597640663205554540542543033327595939010025280010504616484357780958319066903576926604588069717976332759625029054622655975465045330698968976943677711529491571785287118636354337789616158216817178768391139525605713946601311020147811458096993473416542097992866879795342088358405952256018285036690310130851606228213180770000931563879583361891530690669760839139601283682213688007888971020732620718006596577499575345170835311515565054646892046014098422884494783193989314609145716733551122632536230278392644425416617424786266045894499258435500290591849765199876140619429027457614265829065971970249311608190793757824452652249714256128785059577491945962344841776501252546232851798237168094475185393837544298732253789189691430355450517537394132253600890456183468332904323341103635953619240029706020310407932220587895516608776488099613014872761883316136790671715915963362527470986701398754285590350022469007409592733199736658289551492346371763758731263375400219120473376679700508668149955207455557432064593658548412680655935980262383112605861757551881339951650479418261584162589570971821052091680471296371937018565920907502094838239792268399943464750042943167690101391723501817488195293365757863921793156967607151766605690092142165301340810227856410535967603539573964566623190795212742201249305892257729167524537312410965724263506573792739186447208297212304143700166841189724002936757779201872675378245329716908418950082001918705359142413387298813351693456677970331973713495541355436042997271455207197464448649757323308251394327225955210252909571280919537818221083083313095890236586798592183256207745190622093749056392977922903832622565213381630116033077129572187347405561635524657033197762623921104378504876098530318024334046933191008579636818474324325118297958039780158227714416413560063810573052823958861502131462242793643917355107168587035389738660918773114218620489350551191218046270214300468227200552167520344124970660397744389535508881601895911014598396666315519416522081476816067352069468585601757409834052386510853852857742263564797500616607097345377038779059262864668018923449426827398051072452610382395356258950218185944695506468488588249518615044465440510522410566857238062416793191701823261111956595831023490668991416549221951836647291939229838877805753083989204102462779388514414488959491995821983187933003372348329476150840498088751260316820285285354568218900014082175898587754871788930443137188404098115437627027696569486425437135869473740312541660078275425880345227205805436704182469754991552218697707284191616032774959413091936119630258621501082877866568271866846578568381187852650475489810471737596925946348610980349830492917090956184007494822957313316423866681037812509305675446749791258940556608898883850959894025690822811683963198921823103312475789908125011141225097961826516383778612921089481461789958812726319894025732237992227390102294397639506106795039966706009662749679774580144322856030481129544336098013481592434856537588884983551876278239323457155915790587865095066017020881446215184972857737316190521070279797190813133915919632613680169246736276100252063231140783033287108599495818590907426748645031587162044268010564539031342642845348919940235691885914799431738035895053089712303697079194964141675899465853336943615069383253829113535438512766262526700783927135021284206937312330750850096229803547297742465244767971980458408649454746168064934755202969333648210263980640934448945727910501910053002511221891482319244499509536537346839447144123578953477634586237182936325447445360906752006573811907274075894604313144164202101441479130729831713403542003070844498906308155455958872038477892832638453638525829010094230572636381267480311744027244967628932344176532679383551926474659506689280479697312750131946185660161976027070029824870184515073808132472909710837448983926012158738907927823953241078063538037865721240047741199090152221467242609614490363302193291445979820114870615973246374736937953729645092594950646194642045284267516160321694808884929359996256541806576726221444383174654214292088751113457195192722861298339486693866460203774729900535286364233378335873096631025288835427972381836255661064738211737297255052703758947795829421739531400915857743707447694886632059350876178701139144228418130489287660705207905598429240979194331692963758263951395382659063566358076816460111506504727765511242333867071442955645228449361617895362621651703327105168937613668299167974039135485780837746682876844367770178616651451971584426415639188805231196439400822968003203118566080217225650906428451287163678250028168934038991545058856382509462749781657672803578336330905831443500510029686343092801831309260622529344681989565059670455107310230369788852968864531316732824783037233156727981215972193650991867913231376119322840729429132294386417981858383412593747516314303908935636238637660718234565809150323417065143966157161178736650443382111856019448563619444369383204881289840704329940529683781905137050827512334838611740877202349549989100513350289953188465959809148336800031704656515158829785428043181456059483470558986906356895393014281941806791158949498923026568234299742682591149954104811689686530941257864863510577300645768199758152192117781299092890726707489541647894030510974458196778315839603405745404933508469074663718985938759583751128995336287903824773698869896850418235355917802727307655705388017824095694891047050027746887476551398174946105438539469994825315959923526331581580249592011230821440752886263802721736330071762734427275568982072175221669692072633779339323371295389419498600852262871093640620546005048991899613884480762252698355712395263092037279635410867218637970242829261761624006573708442735110282853122128962457994884808140066334915713233761258353542408927284959764083330473128750534973442903436195853486295091589445323153453960790705592505517443447173568389038994885013892175082023035872134283504962473846160359116099943665745419147880243816988843356787442223492955514282910967137432938425424113160410383002569931050343212454544399729904656259623621781671654247968780513574269937008945209220651127014826181123742707255221624142118416869489213081233448833469954222858809028230926953741457280982196705235213973550666594702605202953998555202739339076238156295757767154667925799101290213425736786963561277090553532607814879099446113038563235098011984218119274774022094366956177791513514373773379371023328853717813794354574655474738001787624946855579946844750486803690410195225567262788387752898295878583533954862588380065058831610648436685263952627748938725229050126828369123920053289937554149150823123832059849791034148942222836347549584671274853633211620161815413097729735502927729437689588482104534231103893460724182481715027143035009670084334621634486427446094028934817043489014795836864154359185233746583971984736490464037063570686139392370702008387583673657909361519722459303462331745176332323989822129307721994530646877972361084418604936889416589340072137977907579334617157632593701104755493827170845165411831644931130779016835106256780125715122319824753695631363365832776451128127118238871710541806018457884707995693957423955950516227549299813495073224507674265264454786153043488001467572323413643588721763572526409051790309823367644696561951782535473450298871921643626634518140532564500117361584496644608372305318480424717216739090564441958750327236805623074347800976264142041866063367553186058701125729636619244666653250847720886785571712436929298578851219688746565152131948784624778533567024411448105005039911818686373617535708085080461239889275875987158182174376319646136094695775152218390778726047308069605739964469017292886057796045853535375331081533911259312455258295162641888091569327186583108809609064537892302835009328232089304568564760080423596637674774093345828242265001898954653731244747651652138481534950650326710849478558087789101287525542568191833691557857824533194106911308455361591639618410530497046447885238022583570709356375392993219746557060049965230676062681212321555872528660364316585909129903770524858108004264851065078800976171127525352119363051078814280248827608913107590611720952624300864833657643656611805320834499867422577230016525217823059015604929942838392467109475433114103478426290326472394171062854910298735731317256015374651663766713327630698182926219718752901193285418695506112831219273266021655732574508618364905329669319962645848436635720455274662691458530461649222385009693831685686026029393596670633972911977595838373254391002965215246523147335837765759049800552920198999539762280499027554129602732273874047566529567429570302107533672621832239949230441207771258561937792276283695367006250416364176500947752995966245509195277044931196096843170897042219630414527972761024185034635480219461519537467400857020040157976132456534403944764897387117632326494899693362894792166273577453174049572173869650352696015691680080623892978332915958390885655108257056610280049624879263619452083774381620189933329453819263861888374816798869212964073038289662645240258825147917637872605395933540767781422277016634256156491908239332375252463022375001575151829957143484707496390297937805894895514712802468474616117889693093416813502580270200412696530078889805171062273309036383181489964637096356555008201093276435464990647971221857360300180239692980136416250700299337485901791758275211915238756221105989394392137481833732656008304250793999018093300210080573854512807617836200790652377792970547276633356859584145479703423047409722091137034748471511931499940148715197625069515104890245364847280785554592185509129540776764068089253105149542656791197686581024690091654593391587768325394005965960008395014306422061659786085974170066338594259902438735986706087239415694401514774689256993660603966899364676480789648381189932084027149832785307953460852778939086386629027068024894063445940387717971354198203205883860582268249339645926584260817580495788155449600646796817944616442438334051721438285451917830522864356547304525232906234883336341055742663388008027712130475232123386049171876247866160064123321909360031636785703281574440763597288413966398261069695388947499791114280699527621545565130089465447904093978927239635592274147309854163830432627536021160340717721689660512655077559680479938695634374204359338195140112080487601919349624398615744531412241407836635960755631915989907942671844436882652689496922079036664619727761461860748894583561167887843211634445587175905345089820596056738861452666889559982631158095788954676981701176197701443359000140455870931325633298458686668849197663439189362058934644624719789561305613483359500272677124178471220533461404969740167274662633686850599705827514380437524016935928595552029935363160946625647293384037822871725877587928047253557518080595077263105638923371806536815354691573442923276473621380971698871332958917407858029765761601542555183712287758440648326629983325659242451874570544881857071984913654174553374853039185631203077968086736469808904026652223613418008503625519336602857201862609114031622177495581642702968242595433348706760898065820791973408311413664727600592241484019105008123825687583820915123001422831132272063287381302621580906057674820431933305732723395544231269692628371712598050627119468340713129663065154067923868668593732000964728381177212228137956824235238639701706975934139818511502005972499015164018148676955579545590002257039784715109677316558263217837141769184189034954287139431749945969958608760221490214687887319753957779681479589609424473759511208227657808991271067595595495742786118955462990433315331536121878675804993821259756579867072013067005802236549963054754142820753981801932081509438784527795456951882880965436365399055597171678943461080200316339489251489089569679222737559011216992317900118939039477548955014816351726442538427529196417586005281217127426376549299231614095129159785064490077954772145506052230412958936102260876489657205658971907396487680290032287188785957751643285685886711650574033455233458891088800585977201330923437088209752585709572613150795929761659117116437008651013767440323861264977527084365295130763128644892257300525476490281384892845053242956559628184453432195067714333418148775088909358751886719845261145358524708686729964329700189236736428296890679843078422155708505223034761695508275387435531593600790533018011905371340637994584694563968686517900186642261311910103726492677000445504866214605930678125823111840897435026519914557345240393874326352664246735146778321778367599892204018503874338729672357734417330154926833261542607642036373425416153214625801543021451773394631310289580548446907739880128307096118496665313081332516994135960698818278237212367929359957744630808039655257033212174897487863370233601042007911521084416339021490044948698646502567129877486128612757433616019863209419313290628174948274954484405588149677896021287796179077738486139208009036697252915347115551595701803572340664571746641900200196562380877838731091222124687069276465040036738939058412598445797949487316365792136737184574245303418386586239608295211934800092684612121500413828129760094942802339695995999592397361560747629550779823299728845678866208122945777279979765937845844614172052085044567264848997219450369282227118478283901130015938061481631470434278076589057683124611746186213498585164095828714583197358912583373643849997849781865761543073209062738550009358589547614143025581776269225103902830532226211886491352699362962738778226126083000189623994522951589489936253743609217065586706078358946903333874310983077128469789949376006935712116620544004122123360633315532012917028733656749825343659741557134018405498984289809986039618210354922533661182819822352288932707717096868676486440942215775298578232402463330155367238738071865680164076309219583848453505202556349661926924614857241125798675207978093776519236786796698353281149148069505189282982184737090310300892763356884782648612215017981309242608527708503890940111018170263835090221478254539779072834573384442541600314175331046206983395836455934862871401108982237450398739494730394120752691609628109565923787779401627228953626206231097998214912039423747347669672127056505352480361757559215547855826024431834190521270791078290881164255385178255635697177405659646840695201996767432467072125785681745680671074499462040527643326555887164579350242698067197534158050443243919821689198629783012268707386508192273098901055306283490761305951441170537094020031044993246158392934235773503414972533425877054495960478366999444630391768650451690605340706580993440336489034773990276796316727643465777287629357506018864507118238845293877652530173327760432669307731133274932154313309588746024272572564971771929120436786394018056412112001860589712475077008373663005610485253004599692267199694339297124237654970547861419630719928914781391554109894866664676837597371630306282801541868864390511870620583260296323279346026935795839491819734129166148213662339953612477838813693514289956174213485043926209024347453843592268641048421619514832741625545459330009137173220929449149397233065146466067898453663393623448712082633421684813540833735730710794147118688630230571015776003461840755653073009540608705122468139704262225350205292471127609605924408455628425197886675927728152062792951348358944857378655128821194615781732933714582711763019885743935302883401164009751484728663571520063115714831197902006784312496052760726508615708689740766491858133613001784270404813436396085077886870668122537769233644979659889342614033620862853541429258576447877768110785851397701615939031533510517406951046067224396048357324028441635091188360401608495774099727902349575337323034527886719401817298837664951678089814018291247303087072552570374639917406938989365424298490292755667100007886918575838399661070501533370683835077140922693113855419582267404986415475145299557573757382820198060080349116366891042100404063465092089546331119884722218601746394955574497360672352967768261228312780777522375177709510727695772571082021440384239744607724194382713723056776930147152850875619705612190432303258465467580438704306649060456475117478369669201862476081333867127376116596050643968688636832725332816983778442832555947272791453373986494529034689144948813967464307274743104917718064471903353802531697163576298177749531727255503911222768790508669729642292101952469422658472633113293248369757763533966376868975201170642403643800653536955727359721161987585793107898829453404754509047012549062704954325981636073058890122621877149051264897708797908449671759206799385033668138426418937018764938482237906388653309056849504365607640818263031264348715515104173035305239453454925167606328709615044695061997020259395345952961744891098671662018090188146836201867660865853063515099233454457358725420653521997127824830162945514782149104012498846084101728983397233477077582480326935589657324254569849205656151962551950274873142924200935349450255717709965409629222414046715367241744327995662661558691825461542195499102005176137985721364606608256815880183828869269465173086266817140687006572263197994246212239003103580096544659135289070440416635835601978398235914739662654955280311269327611948392673493494135479176399474572647827499540339122302643591630624745146920960727322584249382461616307301507089539784195570606774044568027738798606788306628272452629389452932708716711772696860199427044819801790939959946588397708157116582165687219189418844571665436424530667360818871105582200066544230704918724794465073543276585820814661544905790069183654745697436227161976463814314090113270151256789202538924344740153171379269156848401353575293254727388221224287761822033711267071463009981057883466024226278608001170659413052674079360409675648665320723463579572200234523913996063697582796936004065196083397969684027486624506173765757224483030080376666528076275194860301661754289879660654213732763262100776343611849419176740707689190072864526558853753984820448142252832557906379111557350428423306537549339485162377826360636275808824921134047457225868406362076552623777168494343667283020298614555507562967307881579489772247250021683833809725692726228837099586138938214343209670762014737671592277665690886535470367398207614830610158713708569440835440308338404475804118900881008422303764471669520649876382559406483229897049161489871737493403202279173531283659980359832979316853949532063199201607762662816737145980936529952923453701123045466060804044981136663708888784309047190475222795757063499609039352978144161919433490639330551160822525195069821441262938456942257576910736963770200747291196206043156791904635101647422641464145494641978634437109021842050221696941917301464474103120835158628406617856747676771850889784126678930569639325998332647696645145437584636064105257760384151779594978226949761592524321687404187468828422105811258420936310463609463758787729903737792911209548480765140543290633937276631105176289290556975917228958842863077367368399132890278649816949208595492889855524269209334178012895655665786184201665807509001600745433500758292064964391889470698275686902846295073812880978375125525454976960968232784826654401976773396115967003388517623993822097932504473708049565542149584162737924385897073078593217080474071450194056695756495371990844617204474135578172592458488223360071798057160203387520051015354109295839696167866547365690557845245636239980356161153447055327617705145966012911440271610260394767779330128482547067839528008900866483352542857455287806737861789305591088196054006327646948889355204918413748272418755396158466670484384534812490690182585429524912983925367934859068863641575240105152474341647911629402519209413020186192198512995112194502410332070979127058847669939981268833429640560181471427085882711447161944970204233601780191521337935780640850225652103044937326875293673181411511383403211770638813884852201901928020912911641248335240620971169142308355971524953675535625088171599307529218102811113138234281675964329894432643523182234979160345497734461898122631889329010402893870977863111983467654425178561987596636626329125791155956639638195337086387513992375896387963577131774944070020053212921307727441244873195404908203442834114214075794690660482660196863840628839063451576883801355604615266556969159328596025212255760089111090572252197944132208617610777080037495673609215632958928744203396304949841088605955521393569134923594561461670923986600158341713528620294229973664420099239755881778144034974294702933548156333586203451955064694127350133923365812171616114703070705767261626805097838495718795758689565943319832818106618414146783783830823221498770976997755987613079353933573355894492421665015543816723457090248337577882807427082407616064044469538920777938490648281124118729114479819054554096970379796649485698947186120652289259683726796051143636363879304349582376879231297207753115869849655495629584580181080018147099175661532539130517194703810421389459133937364284720004548757254578480449374487520905773857891879601328221036443037805256099894601184321649876975733918393298006771366599598823306446575041870825823159167455829572812847044093115332588117399131795974210330723225451258177668228283080234371667672536364407566675266126814287729819934408901116223418548607214504470157733423079441723017416738842383074216713706394469721920124528556777672617818441837423845781940107315803432591153426482763573749529702472955772014030775317226201446376868463174967583201001068383758990176482230737479952940101225792294564086791569795575045951287461033438242043549594174200906501067859083877491791235263128033540217049205679994425656257648165972014826732390447896525577194140085091940406948579486095851128091681260987748023968772241297531453678377854769603259062613215075010216507811352403687599503756583437120086302652366731663787377347445873744696541284631972062314520531171485677546222049929158812076595766352431470040860113518535398338491880658857012134767943937528275633180090016704891061783473086167863055324577452709437076117286222923496011105919202273452233065566426519406061233701122396540069481411136435390910261824945235731004626482806924768922957560528867901459610947052819845073756970674954985453719121016639145972153832506625473114548354483339699074090208025448095691994009466387736507107856844248379408405548059307738743614031198698387845504486131530623203632103092997611416024716837445329485100937079447020207080737962295138306444329832939440130210514350120993245493595994776995950940154102860092036241501554656434371008621617853488470903706084069837737103932774575634292724389947830091062535802293470151496448074204670080945350503759144580570918197665115260640107482100379171254415075277118530196740330482164561051201316358988057046109945146539707488684858108165994484395986581052928050247865202097504619974222934024141458077367196351838140234909317536212258967992593579841612008923093474598505827878608073294158632477056813121056329361183871161573642162952883009016116782311775785792053008453678663686557815237316803588522463297148926624978068701278187735091061531418795428117299608428482315297940946453902237206667352564439916027951352493648012040574317382633544498344121272897821198517256982044177643192536145083579994830461362894046363870855500408374494326013740760016726721990122043377439435256767637162630690934536990616489189112033042774220881598391573840560373428837415407894395675376321365160878578960171746607795309169637363549925035356789346719711247402958421375797255079903771913404778633308844539620284921761473571130998549274600066888868482609761557200209501337025559364561345381812124550824860715361473905779348416105391069708462459215263161294132673330487676023385429411478865597583647552828107578561955097799889538511632851576595746883890926280740258951480534165274838994733293647462403243046207076498717381239183951344039172118455413493163786447911852536968578794352503628722931550613682858144666110157545533514174820143531905873414152117838573342797330456175078681247656777681519068073464909271084379463755651404230733944612082898131472353897684760989089734737626041507218400577163444732955952692250947528127240389600011965361303867794064760452126896420761445926807206892062462251762768994685829637050410607785861209854149273579958290873026926146557196486052624920248504015944375922332663553177093124545499376319689370723590741000342743846593411188572845725166418081088811088065588351196608372897001117829744407903290585434726484868769465235665261358486143567577632731862587511003406830436781840535133160426495082986726461466101076923214765821718866344753617918949673441364838061210804188255103329090458790104870826908982811422071997528743118084220362218536255273576102932668568870209104837444068173357246285526034179646737854268771098406343312450049463274441126155211507355385801387729811185981634855752607828615914882644821790250432766311887952987703967458739885235995362096952413925092021590036911950745246549428896434161854145141043405825001895300434901587977824040181984475072820188733941393880514007227972498903881390372477130536249340257420873191101845774395604536549178370118391795081460103718077300143099644951507519194656444987306737514082533571673910531184377110330358920695466493648997038286011229408952543264062912189911058582124681639073750469572723359975598320047817605581922626931742833574309691023569773763958979759539332634619578125475755536736751235661491454945374060814435190125916187561941453403801750023022009303870569749539264060876632382155324481429100333335874919483959953283257986605360446136084718762627012744473538969278701091825052116699003233591058781083192671624640366942935006626270253502599318214365147066009876342963159321398303619970253049311546433132329774672669198846651245317902841420415990709946142189556860959078819665373795272335792565246619785067008551387249340472100317349596670433546391551047175174331826463608015881534876287176957040224070917576901532395685032333122780561909819292165714889407405999442609348100630175118116677202098838818119151493566251434171347988612361566960010008291642833616920888039021472401097140647975664653039748036416174829915763713862469702705894618756502468775047245764064165449923182301781155898626712623789832627559974638424961769625333990925407864422074063926616748029221033306589187274372556873817201536065795690630416000591813653110553381897042109435377205713064501285893507834108600800159215314175772870594756555718782209238482685767665142093005965262662783983660778278829448374609059675995057925687064994412990952866382533933163197291632606131914144891635748070389581782203546504221654417283037629226274557393056471550714984603854426430605663116799166579562835443894657599705016691522228714495563207771325481668468813057153661614802368528787452254150002233606303380264196168872803770015753505317063379650393591488045522950269282557813740849825620129711999319298036019644039523529792296390837358298334983105532189599165311424941869931346872213277503526812978984039238572163963975244101187842737884362177498687001740415089060577346799079832934059746340170542468305183035155352663953773800419288199295969959347553248318456484566042366642212716800582757745464908447838056489626678974095239271572052932780213745972720560367556392929484352565528435510191736808076510681963731362626094076509172634092875087066799667552557626264722820577421606125643303140568357296370401757255544491458140121773673407876870756487502932022235994526552877538412090819097686628623213971224925487028079311157041870953516745513977005190391887862102443822528649080465124731866870904289912759494576153743717054840831511941765958486584682651714241744486146841038327543168295010006848108388104414440294122927742399416841259462734203711179176899709740372741236138421321630164711811042495470917552774942514542782770811324333343724292459688560337357859251261962064155477405331205620632638279961028288960957943877327184802569697801302510954847189309457909618014572494244074664575353835861988318768188567590757343837138052669613463290169849932206729143857107062677188031057107047360968858557711703166401867077916146799656889352982467276284844131303685914646435680808601702622821329755698404422604586324134669980757634891149488891411535630856734551825482066741656402612714806307372041960033467123558846401504654614783029180697419934340570069992560579551687759948950469976016353008358175334002159759373416162022441784929565414587460648197858272388838084586934974543175924907530424334606042830406126938924474781368870715250381788528484687431567671126358906696636013223622521267079553526505862007477533092867064427040881900303297789839180538629646964679314930857164706535829131582360393407531289678060063604654825292793746344199098434862228713283714348246911310833506840452366696765364695579822546237292830266934857223064125632124398879473367786767140727692535438816937372159578608061234014503557630995494076076749413712124293320699426291476503857929271641934765458296907458114438734887513812713831457235939929273608149880247999034591918346702235422062335065055408358296615867990704604278275284492052088196392667061385692009513541514285283226522998514738975129807750445326341677247873241395107383705837193956485026057476181759862157698483666386936720075836680356783224656659358145494631097485601980102215351800085316420093931246082702606758338275875982688733891480190794810958223913732695283052193509256310045696720829370474388381774468067964882929623880023685151416054646706181507080109772728707525094187863242363127260832944786974976432586099229031896661899538576199767492263038207081361591260099071214079568133910282783238614633971394644767451703577579706921840484005186545446623750162215222757828992677258785982620714869822203841768203945962182399613612180569838462457529845510540252862865475552365324524616641793580662593835517682527966948427430528867961231033431375091238332394108117778778280614306453525151313779650851294038179825437951736512337918690101492523665220832271205807264484988086903359363879704273305195844998701407252749883044264775773897845109893193687219937934235938618960754591692949387015429499297311787094506194599734468865448821916666861495565401846387793096997763586781591502699672065040567787204882995108814263526363214259070312301083035130119044142345154252337529755254739053763677189920032608086663295727597944675253852141884462335021568885722955703022159458781787178135354772730228741064363210121100160267288783290529418226174094741071419837062575479529045690221269078876963262476943488693312289923986748536928949156810045770979847710998613343470538884338566423490234561717654619295774904981404701546473154823403389567299752425911961111391140023242896852951775506939959299990993130683365031013199747368164220123893503018707092854966408053668311655177227636877942427591118977798678524942264643442976596378635016125012710582060158659905475897148991200545083415098428659743962726175084275000628420449133164916361677550174709443285868901159877915330500948235678618811615398081529652589406797577303998216750693757777955775864419650346887776701181111296645748016577576958971287372485351460217391699304794517184008116408164739151997469628673702811846271002308605707973431924729496036518621456542554140992341201969482704909421956012110497462362962694142124447289554015642362278251055406294093104070434421470441680388433092506121883587071308324323322814523767980666583962341197686736711117148498003397351936229113261664830485330709586527066209041136729820728651823991552016926165216812381247244555246821108793158221886510960594032019953417575829053478289717188397152195421484783436634350125531743810308967099306547219494760831347666984686914356819698315316202485330127551978317357721023240956669536749140129030025335396780069695714950452372876350018537021553437474885790976446000487840505243512534372209386580027661444651012718230270977675043525403502102964248054942961366823519919162974918484216917585985355798087535564042381461470370929118821490085380935615348649224840677672136996929319050882387148169681558288137068405788365869061274493349954884981475004271527995135609528578889439540331384911674010235560828583587957168056995550032628189279753170439189393394365122432640136000544287819295998591264998365332642696556266482811593042101606365221495831423995060906481676905281372446753002670369573706496555179078869150054287214572958671400503189836892680447488940320126716263583334083185706937423066626758534738648194505994089433760315772614289172036402168954706378154732216189718847023942482484438762765234644530199335671196929474495517407594422441510787931660656212535502099901103219073880048848687651638905149562696833384178262972138019022541288849546865474303928318090067440580962433267703231147924297115878722290758721572330711522268027261437899679308168546095208918462991339765113239487557812505264389904302790998650337748137305000722827864511300673847007685046610505427795196035448983437437249188769264712525615974949122968791391756391351646023790471575841873316080672778065733202518891592710083573058555229474884652499972033258468364697547415926099544122379476354618144658661051697875742586252013409313781405708818201378453442679606355488999608638942705400856572689576035157217170891622263814053942278698173179341190306575424587397805778223827678758975950651233263687640265224387245309803516078687710618989450174711820886239667549588035974331730601218659772072535375645626605543913098686599506208510151242222235845599278789972851695650832781366673684576564398389578106230491319935444984102133163310346975288754884459538706782514507350072089642898947352558308993033952979833335768486200048905151337285224642273685628206792055784423595326943385220029810218948885114567591053952704666815616054888055673953761903509678271018381098736345479913587836807314790621067770546545627906398722876772738608735611327878201701256601315261353290056650787320408177246778919282499361813883108123949265180125880213324179233554594110408982831451513903597802450717022493387878352709972614568649772067052190746183927626140377793099638654325576032322036608308755473875759952686966505834110529185927000259247052440420321764343289015458501270527144793449415333757287031834197685163052138668709156143548069527869274006795091460940692079289591836696355158980557260925301518938021896224751839349682833797264406634232323542701933967319392971694207709313158425641883507853390449428748690908001323542878226499814299030641435308578403006784591526333305555398510492414934146362568638476437830240165239552933340770120362111243590814937563095670197984080753642419351909051637692999730981172454131950715069747109836529241453587950066373401856464969084164815904371156624990408098248400974092049609203703550638413108711269109182526031242777607081619398011305599137257363499247141806474151301395156164492840798453203093457335473520159447005693659196464719962234395304149853487846293042959911318264625545812068231797826296196072467106649599134488164955063665904931158881045835738113834006864832881746880815703968243120157812061961883450240058934314627478987443677294351956183409835110752416558898903999584801918536669488733380337699158129750069231676010740202022814883613558719068929345864516476716890551639740144149615114897384781560102696872282029574804582438607252803798181726516999793076119259947042558478890444752322229057233722166605251962778817359903776117494009541767889816954639486960398228546191695936370396646026402975118718005704262744107565306835942113773826822533443288584813032881885698066875913666960007841584904983042060479621296536842134048067392221158429871616243258154001840412685398827139375880986020397116248976197642746760375232758872829562672698642805915578738187620139326861439160628245673274719094507833064574032578465197214492747427571945842081267196615985570192001506575052821319255127221888700287934746722437695512910676515334580033357040240237264182238156541176470138324896293840301856852881623481609797190399347460722401117277883960645322487568705216925483215006878982640530484641261052886860097790555510013162907697528288585418480940980090312543655214670047764313649226745537197264875620070572073562737826452461364923265098743286023662069314991864158318014120393628917102113605606662178264660567525345672650934999687939388937149837531826531720097178503085023003007682999935872581014179901522614494689379732475842585754643776951146251233609187247402413822459415998475553959721611599694602212400739338550326345813414873988062013533483518183206713990812060819029501260492902718213125158625106602631082329867723177076311418239353782141110315507061202614298258400688964097023346513031516067775553440835910104604123746093104457115327947354389097274412232959532743862018934704872462656741753234039529556589622054714953005758665598880892300619604427487640548694026317050701842032285694775990858935406857296042269802419385903482177434468996630497053511977231023763488655277125211419907543716732434588098311364241121911567804466177416275657543163781912066823066140653865837805268688681092754125946362022969414506714831005184559314189576434509143851435162791596608925230213282022147476000227464400851163175878723863427323825997143510168918574560588236888651894522202259814825977047457306166050497885634711227399785154920720373970118496607235044254234072988323690396734983637749147605856896213151238882897854694263161896142030821577721900050379100135803148456416165135160961870861368694727065739029018136755385438845221048567725469613147329498207285873096468341058483837266126366688080590041190159722771529074080283832756394217572952949808977705859880434097789274753623079464385676714071769466028220551931276682085209771839879560879919916340024470315010779529759226535861648497396245181975556758789605614356110686657473410468601207949303481486039031146193526767585442485233096400661386798028675066533124774885139622293575648772406609697289441279922557737545341096710221586111210082144917287078193760393043423091761309644682121874744685268610396249426635699086242726512523132171142051241714235689597377711059510488605141925958633893915913933129292141583005623490451189194271307409787789216070431139752649048865933375822146100481882513017003986231153278389854686641964982521298409198256385303237815392531324826080965793825338668779738678570318297763428671901606765183669027613282098792079187763343967183665157722445027007341664047550823620257516815301232494285402497999651741305040547904800888694986114089796806223838401149580294142254075713176619528184211013009944945645341444901867361168178202067888180155683096692786293179603027538869460881506133473969486938737801494844664532913599466217129431352420567715860369923318291706263239183645256162306886768834286955463844280561374593915385975176895703158825814073957991729391741711946150593884733902614808259656763008704592366871423398635403793543166339612724396525120319202704156105403455107490151168783961058750331519681801622762274008679202321539186058343799285325725292567316413659362489780633818816082656499820563134116282637870923586388439632396978155118844364304406420237467979822708412523106705599326367925785288759718711837484237015004356353029166291284462581295031036740986625298568730862774805530502402415630273284112904451715953060442206672959418071005284008092003501042396728770248699779724267959530888965540630209782357881306584076884624846415260408587104732112010340146239162733259227777117342905201308421972746145319527400515603042230675243515891050717761891571626804277359890146547586113870746689630893449860454392729332913352539560236734687491943661454797691798300034708080757213833005126274108444062498415931497364246485602557200755169588544039589489280721594966790518008549914529583321496211191500051244646546665932864139648949401822470208996534748266714136128725669529962848409400770708828610629659867541026062998635244654602686323482630152198471753195111910863550929712398094184291898365423547482164722927258477145211174188150169078974259307915668474060124698811974136661322068073059776269584982244411347609695042674305221781218924750050816913280845263993231896487393629838723152583484493517212593449924555800638203189459137770131614149012507695426399908060698205414363155108040341804557966799394108838348898073944337406750537978031046953039645146171256872637373912130887172372056835843553901938018292843504257257651266962616871813546559968306131340505298792393794630539949921884805276568099433368548577256482656863936821772719323884802166540216434696041438808298542839760518130768743263126718430814009040378990716716692114052559777607787947647340841359840356469957228770762155027996184405733620863486458175361592677299218923467843331961488927601000364002291672154515767686326101121193379390510586837283975548706256725528614434585744252152822870984914165444584503908312742811551977998936715532505721664478966120722320532183721983337276909423711232001749845275630058944114761911223036707942207034449386872778377411161974650829508119786128705391583174806648512214501163000127893321287499600692928343852658035886883517535346914894054438921469515173808133701140186811784265818014404273577406917796992109331132330022822437267968669903411244580351800804081362939023286673102185411328877013963903476633990591549253132787773576589331104752263311776852955435817559682518800246429435803251708397432958494271777891622248048881591540233312211587645747699734026195875119033468153447156137595351709884034609563321207832716438062078152553598919047496274526631767196551525441257799676775530568826890727933704498271341327423199612427843555112451616908573849480541904861755267317382983546527297906154502659175057743794358145396894308645675454387912382865346823193168681783831028511963160871856167721418335449724766619052261368251150509294666944793562430744413039410491944760283399891009012576238975997345979741936100417558291627034217049599425398517864528752970541856733737071648524972644103418753359009494343044601310068941386498960732962249052719459904487102761821905970694850287130414444851448024557411575260038773155337680771257507312512996068071044497552348728101621808002585072570420768953210116822972036925679781640845452420714261462694294096868798620493201722049160108160954497615326736906747209138117497139598120873624246308928289894536025274306938772161847349309021547623138457961978387345493415604241415480891851564180171420336839114625793095676010450760515730869280424864382401668166718861817681133551617354536849347450491872448244607032592062456172825027364799455166122692120636456533088972821446313219312426419245626839640571029553494264053291977153817715431451327103874048080263412828454656600028470272355572995507269188432990218046056536279357016077492803845588421904697943853829145367126405106402662509727885682014275495987147685244867292747887557250624747804230775373193104203758435282594794316725710730921417986788626177017996993010976369946458302010661110105825071000440731703437875758609439356608839745756907373315096691884658016247908893337837874706795781388627560567820004946579166088459464748149889667282179427864490712003552640460593115767598393848904872051388614559231829799682997478718997568053242661977049115559630562449128534549610515091192456140997731454434922119690725194560263994389036792941863114873867041230825091853950761872857699605976392031486642153530923698732861793371121984380205286481498782328594517376127862558625366815775873174427635002292772939549707189380307639465395867752399043127578247751308341083612458909551095765296930441565051541018554184958931160110635745710451527631042132153154296729500197231814994737509255046306905112321915309647221668416195361131747053588957168334050403193585967829793279663759815904360711164074316748494269390664893105907169570597330195870034728341241047963596617622305491444134277876212363232083008384127341090018088634814375217509906309775122162753911592542982167296848031714282319686997382685498720132631682595061463351760706613875295996263311532555281459917850646245725516711363268220526655308363062325505678915748924159412006163818644144767011929561957149469002890959729370114685733763865050135329298949006297587256229769699718769943932441740862324723160172777602854931627541256764624674542544563356169251985731289250870611420307442210442891791884192202756233787398550447771977169707844228936504013744342679536367517351872643382601448236839385094585203101117022282139070317100421793417853507572559478608830841809756225658434359623736446977428412551557191227570343296853740702429420799957298199255630351514845622184673350957045471550900689621623422550312193271731220066073177028233454326335394353667052469124931579496576349139829227842860643002860172701900212214546433562025265631029955149026190724567257677188622864674384400559753450706151071248359780173118379642131782977099228819833306993596654701507744294253174424693499472401119582156685444241913655671580437881885587156959109214228855577877988044091147057904779232915379789851883872633264670523150267574838966826631971579168310074584226424724044977877674553024728532914329569996407996107757315128035960801042497169657203630625263172320234474083427470306905154199448534674674175766320994965957081206857591531717004119284911710111941821389527800948405949345237351114857414637360549026831389775043032018532764112016793036745303650295887641739189334200173126804103917204536340200675955395125410366262815785363759046469371425562556464973322152852405387645755527225886895897054695572378559287163375751219188382085540263955299406381522118012978192223181899101532219934588924764132994433026405369647996744123820535681771560219906584787828748023280063265435417475338512092620080157347780800389346103506564990051266441610143168598939870531468421049112241930243093261195040336833603045530691873479575403973276236874867990129389776429667770282124431551268346960369597428363429779087201033072998270395622681632043958294770596625756286491970974767016621283296406143146071991107198670092775940682572037286510935018304342753529428955709637637944383614086461857481790600406356431921935257147320253246049030714325876510625016967091342540831625172202549346974587186693016509395615694207573710464670951650533202914919962640031571421140150767420738137020803019601758381838201444206876827697459075019506915935064450645192160856996524312019114537748325002284974891159531130612052370819247865068110757813162652686524307855024970834402969395942391787611156777364042370671577756321517386734579378592843919703994168648654683339834070457195285527765776869453079703628110592957423071709737642411353827183232697862320204399300349591924745802288185531878384747592092332728278290445278267327016349391331785215889325200078157955965213273400256934175129694898175746487395675722453649405935644510316802121821969053205479240178974515859551837174571271618878300725081918515311723049399513792170935193422699143719633290119223604467458881483393752693960530465927107951458016817774145200642094487882448737029103993435171335363325787269985752334535485091688251594177950448142869013938509055572017042092014680382786963929201721619873803507333702691056787348752632869199742031301160065035399165173260150938341188887296045238083321311562232888542553946035610260292703858520144121598974336426679490434596240948052494373877853758145409599831987853350857958669980748968399745585349314556198675359984595344351573703714689488743015377587722734580265737559559750797991961794214290308631543262139418129865392337641001056451911617677319234005619848247413103307375078212051510456337336232182872629725156116105704938081480702357470688768560870205282645322099678803124880733146796171508090701918379044760623937353630901584873343292355533544758637117168669953777976235475871844979975387739281993547751263093073717828827604944081395894152118918225074010700353228857596479252766926809258910947958815576498472717937117634301670314411707829575221382708190669827932141824360979337092299796793608592786705326011657331805398533283657566885452000047080930161036567537901364826255819073075216386039403853215487389796102306358060850070870874394168854289057640602250375489437070412599424520981836969550194630318316476792670416452523469307190863403186510017778359985439052882282043509139250425792976626727748293485226022319384239263895634223274586204854739476740294273912752306265555195229095393088698464587980614143979255711814508238732900520756443302499017476506507181945219560253334194709890958560222317543111100551762834823294312014630693619745452435627003270737394918868121993192529834588284904635113850750884744318375423770446175797543282733656931306091838992101575473797271194451336833527472347852840632690181934710853944499131009462233388898471048661980276516606980528123083139689366935429322714761993231135680341918220819081364345851084305403740208606482450668201802975848426058167103702522941523307721877429293745133577855470130670260472170458206209551422195847255951267049523899687494418966521795108298613473093334387787984847084512209188570552959302665004669328971612983634454368921671732902090083530345724893145888664312004303442506542785622202103954203111487715632360457579325373155821149028433644164458417582034963215717784269381513782517348977955285026275143579425863470538936824957186259268479634178697648766366306706135927627550312086670010970570873657780444329890979859489947433924461323568526016835847487105231243637540312595184835287208689146836758605595958493510998086634206767112669779911345097252305039331868140706278711751674411319893843698153653700513366026897636954523531721914423798723648231612184878675272688108733301629909740821356640984130288311341057204896497244695558208588370901200124018422426755927631302291943130558725552189943172794576544797313673516973128129082469985599418071785468970998832961471154422745219014565123911137879477948946531240799680562517287430855036727327981442949308790360222136976051157330588849645389314357711093280093578328851599944919435769263104157311734885656703837124985819545994825315044527865923845715823878767437527860007547778525256786248227331645976685862799547881948108441623534128213803501450687160091872753122181058420499792754536333247975664220811037701772016968081630706660341359428060745177585890259484165832080889545596218293721974995003610727247240349988659340534574184454460744252715444123738894574442118149683870490215280130981410933650192298994244109896132765718014425538216867046358624412654639270034932542605312427241527028914746208216084917336203745197787663662187121432283297727968157873005617831662206319509292976704764549214283169770230126344694166483794466546658349215879572794025756284508872356727506666185440645987262692407485804602546105498770218546361391867393745651472607635798942702904758070412010316702957598954550922279717998055985714305910355046473187137864563998559278698005959473191927151052679714803403470885901272204373782638788935150579989189507102188628571040358932821489788970895540392974830277636946677536601971064633717394268234889943130840114379361134566854785833502176944916627786240457211883350034357239096384040646667989490026039599853731688580436114032963931920537169170265989968953649389305244005350049856058558852543825276931154294709671378097334078552088817764387326394908517678207531903490584741129096352036348540259104852497430774807285069799803973788086939055734912040154113210830795705486941900479010999962288824075504964965922934331522535435921873964901443351873732957521479489518298357086321803345282066113192404423120166061099225586355902647862225189686382899783910523538824166224966883180581812062962490251484364631126836448434217865510169615737484749817460856139753567669888023872419250814998546811944051301369597090766623149908355657590434299760654787121614051422948195647200026709500000004927697060538055392373012601289293886844769775287457478947826689966388922298178515374637732415615202258073480735454698864632142709108061729819350978045585661934405657050503434544467157096014854637778540323050503356419496440256210596125280839542206792432801829129423098953637014244637406099510209947445433746927072475983312698668439168560390180651341425144887621172107563687288112719475497155101469356794197932863879409863655604154552494183361730140017920917399057087751182426076549721562764078672068060792047226959703169362264480690294454793430706045078127527691598867144457285179473633466910564756352725780925546637216280623956769957925687852278087165784609519082701041238094921049475531937518462012115143398680219254930268856725846368778651540741631347534852987962693545028595860006395478586147256249688436462489609209254760718979442847508785092388977742776522319403209843570934789538439097105857918434515936197941821978423733250323542369096055389231591294826103660051810596670596952505587206127214226013895555105945224093200367783566208290423223315903970309172730070643210020817842105916594544797593317694701462909630292332438378996987770960751229843832863800492690239887145021353865630337378973438852800053501785765060806899392206439676655156218163913493874976300364387988810458094532443985625005933629281229294192024992337682519927720318246918336858619205930111309934666984135032996414033820484853523124764852473736679359513995231372618768091377725437917594752408700209637730109461772576484150545234816198582147881861550725574499170020481645516999834984490359252249216452092469660092661786447589013361667312396648665528738502780763361941891679223850188583800041592913770542489875292506629390265801152113350392948959240767294790403559374202304420491186994823396391856580481314205735601237480130044853716224466604720007533256004367952022653702383093573671757775118438632946816095933157646178908262626687903384115899174302246902266837304284159237527244742887957603959967569321816731103707839762656521277506374049102528098612913609065415234035541696396867109270099185178693487323934910068858306493665463412777716784184082772135442246905339393760417440339035248554774879274475342608140357814047071914792114532472848555819426395603436384448546690443102353450034978505612886758252561853724475213253189248662506186945987577661415342723333089936556433846898339954198451309136016300631057449123457179626846511044778261150047739290301665660347530264747698977801424352728540403488917401341374383095074841453868369200047363029322352740072945816861544185383286694579507739000336969080675804956014138126221702861196516916893800792379587759293774914120074101491378092896413946980998474333149978542454968351384801140266273870547421460026188460566248054839359006241286011558157777134143255662773483276456152905737772909560012089040725447664095382864124151987483514877580255703876743795389734965996451070728583160991032657863177861401253140408083203540648619850644421020440645434844968731223797855254638836295751199074222403892332211538850753214717896286937614697291857899739402438693759805531994560481002458492174809932117686351124591929658012523701366287445379255856536289197580127394047771229738588858863593127274716600263874783761052732321163759939775144862822413346242232749376921107656094314457588497252934036641989879576454112826521030625802301641354854403905925389673583113838203417784531502766447402143070779851438238543005563961358140540446996527993161254798535202856456879216229567203907727376766407820421813684459390882222137445375838265921134374410202799644322830159122005905031163134533714086791490899192052299497987938397620180104684853111116979706968363251498107327939073395719699205725507392181576971175711495023690416645853150403422858247458422847316394923590482547324403370899523797833561548907113888421786321794163089144843902817495228171481374624919645520139780680223110090303904604619869047455790904976221912127026192469501278973548505765541214993396917431652892547893770821047047003124836524623552787207120113009869890808947308686535764136256582633556273418615058330018914954691843780074034118064147396471642313438564363218599563663159553139812553152211170752156243003052584606552837607935261183618806047796384451705583111867695615695044651820349469149892765045945843379443809783861691353555661288250455856976280307624396030252362005506743434617096016546594546476254631659360058203164745475724914905736579091460696820603946364356396691849182701499999911255188459153775028989516003065659787468304083280081325132481956657716317661121238449871547944231484125514730521202320210210566167074178706680862436248083363048194487596213258493222917320809669747546568134180550970273211627002038367945193607860467247108398252844069066343517757959467451597725065559486238452293457974281034796678914046710402199118688860472473800143432758623633720253421688926279266274491755354823267442891198374831429077687043756362763280032731849064552432454013091423606875419528448619273582667044471844161622997670621037686296954798140172201341947941510819516495828647739667089403088285966969746203387957285371645117636824440597553317144993432900044054725127255436223300820194452345417581219257280302911784348376811660244831646730693727682397941453906950686799916102921037360539116846412297568934198621366979957832553192262428925382614581981728232315614498796506008884165404548807980231445545075243316787882476305849178883764711302498375568677427698651384643094010379494086105622039557982862960110485181976049054514464466514430624312959873166450846102517501283404622469876691682399648151495487150998722110645452278825216243904141969662393128536228305714008687428472669706238593123586766045216873815633468005277206111388228995341784031503046039706782988014227459731470193579613573944876772198917532495686170929496846552778290347586545431013897173269568079431044880600922079992986897715709327928848936926899251365996556782222176996335933807026615218034211068183625399055944940328111491517292141602649305828386073398970851352364109910460276991002601696730717750958244648644445751038572736511143113716789024387470784638583453218365930138265677612015665053922076215828416726424105792143290414146779230999451815917413970600525436180978697305748001532339538560408167384670520882816180201722203139565735083773938668418975146531706540409750601223348203768235086098858964818111107269798457173054452455788079536633576565320321451940632128504623618747061168045059356583590151338182408470829696628742098589907913541913152984598354663308084700324440248869445195514529133344294328994333820479245755768271707614983119465405432736561575446429453708317707069621950479767060267443246312398988680191708416370443512418794196471639773234251159533078059071253400426872502042954528916060293557449225368384999727664717300417376261052382401416799812418188155861508664071470211905963320993690227567666563130324641276141649399685320427135126979878975766336453620443948831211400931625216222994824508248200369853296385838542323094407968479681647165367087714797907024050220172562540106102344805897571924756039806615746257800584689118099435018200893338473286452660680877601351651262617734586886903944370455432653319372460474922039521622864011881255524519543805410075395090645315497066331448792498987475211363579386885792527895184572124797035222487429278969418792616019382791437353525896298972680858522487359036720295359778870310353689364561718662739003057121475341073967926760108156818575797111948805098716911563257675419327327372594331888840554934576743385431301706376179592356547937414019046070114760036183681013425152916873852053131641308944607587415285981895617958958389202948267353722182555646587139596112954906383325969944552777530593125733878918613388952126728292691637417113140422454754709356541335143912093392635125508569405266571456456624270903352759279485407776691147961551295702814984242585313251503146290311996843663766782373782827386565736174984525782863876833454961959662187634150273949134405870254300723587605691900137418415423106511433695206068920107326438375469459310594291963090625373499996134635324745083307729414585879584436415488857392634598053998840678338264036662858959205132968511511266755257593710992441877967820934235829297902410635193680789357517068617906586420727050931441537822335164754976300346358259455783250318878397346442948122897948134982881532356668741445450173486534512469865151505020074634122554227917358862270662253698436360242711615233619212273484347028918927982589619392548221164624965417910044402901791792184015054189831173326406618412264318898170550526258261569362523913628316577831578351205894598022727950905408149634664139094626000604859315838888380487336593498495572208047844304369208456135924587478523273591587635202271350959458662493305360202271653760592474625247104286274173510513243849818044777115384642530442702967805123190147283599657099110820812348616270176500677110279169997535877600319643941815706607167622246665164376342954252059903575709974024653850121279427858274373340541958227732946545686778677761074711273299184338864059093725269115852842910317512994132554670802520551989991032458795376120728704326023740767540818382746217306507350646458793509307957658867746740650509141343697174832774418651189665730683106448135792052722002531725546942945229276610381481900080271820122941695874402133204445445874182496368861032411615970442724785117506907137465383284684702666530224026135127167111110373660309761882037239256017870102427108112970496135544921932447802257556342247548300829283306171720653463059307717463235981853928873071536254374525614665342736307362606260583838917902477633162879247348166942965449105521347047299107332792750611175235688706966345219898391826582004324133662347916220650224702993652535937797570277612270519655999328881768876378883216429066620918170645205740681711090414017827991068310934743778990221887496584630136979527918563025098056516398813875158207077911456600909382275303860912313709383550444296632341773387469566351318905047906859430887247808264345784036213397361610023541308130090064446391098242470347065403372175963006596201160097098236640649641524967029335591855802836586482106584418752287744678646053757573628049120040727887774507269480007117043933260065640208301769056666082490677842479745748301323718593780163233058443582867234456817682145996717623292271220896433945206654119960831168790233153277993107904298018384383904393486568873006605773181005101195616107417949531820340080233139088162486942536488493369501860334334850760510567403203929072904396480809833714289730176680989563151145677855575617872029001898001335366504766511781776960030540258644251843481747169148954551026741935827076228285427860820314454245323898047834652482483507372935367080316378632829633446378560478439014512890809010940740083421301707201783536748363959185472375862027444269830325498401265419237524489885790415812688401332746558503879117589274024552492008206227727180932340594737662355276889345209092354522410992188880582403051737453121795564917578552001326618474965080981619999471415859924748590157923420972337935216265365806784883272989005021686530080189571546656223921655297217119320741811725172511230013336587584640426338647207285962236909353809065544118263767429741379757536467131848765276026926457961874857046208705499328634294451108588179834592451690835609336120365495653892867154348655300278092045550341081746603818147660998390619026769953444616590591125459965607854983108155320281591728882978754405396361976277478214247642018953704685997581990778192372023579151994487009145103866556519307133713760404362287120719993912384896600540638291893769051198574353520095885425382106979582105460963645664364275919894884526526127652525052995679197930771426653465985398815076236985984383460530890539009353941890494550814579973241560360301771319644068279591578098946851403685376000008697259699755589581050235859067088906851333941801027499900224507796006824686500069986794429843096853285478186510788051392340337747260599567281092018318669270144951394087935426425431394938392857187469678197475768677085395871389996092258286982126433857798551148266959462709958222467841585534961473578131053224690273422404527048831262175535702425786651176089043564498331403513820931306548453602327502623806655427088671778089705178675067940594280901488531057319604755586190798167924593585521341709431137964313832383758601167212006020675822839650953742363760790898539472980956776702199546156788481960196140227988578824110481079064965183258155293936804141719157028309670953258279333488210768117336165354942833559285264994465080368837232340020472279005879176962789134076541269490766045066919098667590508667364934798906724825611349662960404590472036805035924906663089396184591395562496713265832564017031601316965234121456259848052091019302625536023086683407991535389580561157841539693530525704341444621606670165566231630375877413668050875705518936060561323693228333537695891304441656988317152203642863294528816623003717152466328346178724607874718572519080912940136772906688477031436551922360023065964855434515330740867682788879276277849539951411754805506636952651740593446482246448986110865596875222053393260295243679519234505855303877921404361759135021358653663750115024547272102726423890991366606966116909915443675200071026519920322509762040921212876000013247265933909134774775270749893677131285223244474288996260300552691961715198487999994647178538906207560236967235207687700178292648841314234080710696798975253484745191283206615878634509396550633054081646096542190012966832304590361850893783353852617960950042620431238930913491517589530168597254289208169492785203680485085112660874065769898906691516228362468974998250601279157015844760394102673296572967188785385789759438190163179672593186903295784271912294488464733063891236032965061071930092399972726412475256092623944248476969547938151092199154056680152905733663349074640232811503642515992972431310614186358948903428569536380762117560325414025636225755069679588510160483874878873381805553762073124140204865121966401990390955107591142583315808420182456477250940051319468690384658684813019436593090595924748549927479178337451584100016803604994011852335451540944729271114905688069705755867915691220402129112382157568398264153350348159869717633501546777459862161655841621095485724437022459915700498642420894756548562451765821984673594596660511628899756515874989196158487410299183323171076673218443416565136654146596877986019265910093067591103423301434447267907123316855670420861659384902893780708929266277071144797372518648527853525943591032313063835433325949611300844660731924363262487752798625201848476595659169746983215440862201385160177263782955434876551142850581507988283711176746789738802806478281270286285940542246213712288896337309396030597203516977339872327902378918235239371969920582996071897209156690383873840824346904206168275280569435587963568825434619933679134524308525618508120596592830458841336981295022392976610439284412484658912479524490337538773236108703235462923188013402641739222309847039776588355183567967874998153323083172765537990392683826504768907424806613495090905343783601076837575400859367494100308050988956684085591289643768393915262137460824470616848724816310831700025172029586755676022404476695138466680511058040904530147606642794301615378532729496972286245490996085927144020187432106567100376988210097014374785211968360685255846433119786621117595211667953984234521318947678130419328878554192405824679477057625727370839788744975649621534248635722920422179081837893643955073512078255225170522641242035792639438102521680733638643039239784842907875125493810101768851748059222656534134421779226017343001136068556267050145687719577664369398289455397363683679439386331495295836488383278187069206714631669608617369429317859463930728886712384457412116879585538153901713830956837173760895188249277361380703703431984246544655847029374690288740662682428926163368221911407440565287607575976845671676256661507390878480624068989033510610377390428541783270287780069003735833995809436771817975836970534722762169133251129438001821800261547676539047577573468148331563710029387196514305328410225034934021700522121836111558148276730053683233269491793739256067666087497491854510874222590049006076111598646427376971647756127369410636545670817770281325361854487886574430637717318247131275698434858583034890234106157007535233883669704564364074134984627804068042542480296486744099024328753752330365394698858186104244062720150692763866704742376507288102090922115789287953320814030482549052376970182822260647324383290722456077982014454384896744937896580074685525874656576189620117227340259780333292611363013331358610320680699757099902761548547006022124445508113711940774921679963428800116425561492690024256672608403685651662017453856514470873601776246947708095058203124249470874198502349994208443854584069391330469519533314083025049020732039573568726342834077492954045084539309701332116834032036797328139521157789005624143969124595878090002947066251010441775113123641662355676188457694647482616843073269561862659573537224817211985645077517306344680321287669388990238654111218089283762654228493923766742598373154670598618330465600659876146307409649396812916650506889159283381284125976988979028537448610484679299501725897653883680265300610974695964510154534460566985248484898950273676955701176754692614196866606964537193096683752756046736522224930076505297022097737265572500345860129749390041535803371645165026266262569043399827605067387605311280501378429330150476601724499468838165929230335505749534699705696193960330548310330034948611707660005062482969917244077429823599255351605419574668247889427568040551780480519823995358734568562570641112880901806474995127090313175621600020704919079757850127506219880239111085877039121251771234081877667552033169727024929480938993456618638915973693383069791403718425203291782229615888308556530736353755230439667499498651194549788867414067209701313421457397255321296028867661153902714760759917705889452056293884189451910613100622481846958206069310069294402642938051687917904045914739179310879581324405684197542893217460650427193025562536880399490752086547557154646557425744562504712060517472443161586385955675585440721978545698467819584773410383474207339412273701526739168192378604536099923400634355860845041754059152050119244629107871005860079187631843079235385223890989521255521345496597947075512572539950727105436626243025980716231767323620433493276173415755202193327623206321721358499380051334525718932782112030782512927561520134158598149051314428037253354804869350639810582410232859698090833742377562234289152560422713173502087839094140685537002720133638715125309365840789671472245559232023650371318401682928228053987493350124955413730269289063188414673258742167670913724029531466150537457763580296954711479823135425568738421729157937627148934528248204846105732732467019175960189577514651232867478691070359564668531477860858244623959984920063985181293002599396442534267926152940487300802318763714827103111910849187272090426930668546160651777059119448417705515979916244207218499541929296831264691916974861212225245160112705329347433528541528849940064039714317631636062403325943186294271741470054168850817810919086191571060204976419866694728555301135306386734555030233196655593771145101049543617140621211677894358478801714591074000423940236131979299253945298058150328977714733692937249726476076374954081437530427526345300722618171249763407076677854241522998131430437532234054859001854152203018134328007209682003051944427301106937181695857932192019700733213372199283948518391670427772777033327443793560119358781435011299747666991149380439406739419971627798764706961872778864473691399298366710428670454226453030125096526474406352318886625657827660306454914993080192909633426360154816836546507413534999165502903751529367438022218871274156326537112553334303276088922595161432502198113785872732634473881455455799847585722396502253832785426959260718756718765894429053316888738414414059525436910104005814939101124139096729229462795337739475510821698694824543921165334150777099139059613230425471283437097229749763476921626089959432313913870083319475744849272677926285159819461499097893659818601826967707952165236960530767409305292767852629745006828488953440748881099860349546570603430643729538128334935177227809973630711823333784396250022064932621305474304082597610266763004551785898634693294318064642163472582862784961716623005650874385701631229463693840305896084622372401979861134099140585541776198362686883675878083864933610839907987185052830380235512855550472467339584394142511531087857502601043037139105836270309748812399234475449496856168168212374706932335400792614470935234185679366469865052709196320301122300210490864568094891866245499221643721382646055628916684903828454215914832776692078572576859539889112988731338461307105369411917766924853298073180443117372072063650800055369102065879941460033674485530105889182787506497540899565587228134719098180030038104947666431821835212244524109178849865595642342817394388008137586776082176056601954822381686941501466219108445977790774514790122669475077816734827337745279011804844927423360254963985997271208049011359033722936356554846934613950812013318437924300530075905129430451942962516120410218431391865508388190572189153729993556942732688448409381861697469196851820720144654394452303988586224074049307433636954211345633312370519886059971152724810013536739585378245899042555880811550709642792685192903286625280628873122544970287835340562693720921566780842687502838583512380789329550665900931032894176132696154354557585773058186381566824581243353605204099040657043176643804570359639286236851966031179058933586880804081305690520366623989393143166944473519831506799461784983903337534288254078612708269877829405495171804301020457284721304762558329479666539870595572302608986141640015211021842923351322005933247842099313952637820591657581699248663216741234711632880485046602041313536113049031589044793766171599578626498009629415264883665840820135155593422738199595622215827149123696786029582875107343155336658563577663855906719683484039483280310222488625955102290109647419197415209919810490384243286556688582014522761132698982998721764552355960824013843371529863417507425131156184385659260784171314892438297981191235367100669966862630041837458523019273578217478198333236962449923802190691068962142174987416432789015260219984503089236464190160470850139574777483397369533648465815319771734943519526250633141588207577101001403987502601409705119398029121366384199791115190812393009944131623778932877249483220734286017154175349857490658852067538253136449695973642263995973615415128851300301895665883438465375392480176398152047090149458333802714719978962549725425328858126395557639709963948155650723947446432427276133490715294963317812382582811090295083168488085304414857786776638700278442684720201263391396730325986117460289784270101877999781658843212053077838991775162205651409006025662685254765417322676922990009233018789917364806152891439917454959528372466717383213233194243550385769773789123689651488135660228125164198821605490675938649917716566957282574899786620467627669052796384009150594581423729346701238535851967892296880676310213144427259171898119346685589938777045032671580922152001393512730936615790285607090624820977946480872872257039379631978985986282867804959159367604915715213087699438936442784308040827221400444806931152121202345717502272282603118765991513810797144893608237696976690613705088657513364419638043490320531013468250181745156263104618245161162578365825479605623155960300119791519842471476716160627389112679473397661346876565058442444084919260445754034952448129774742535668369855075298381508168644319210530595643387917262025527814153377865418658063603100982707883574801280614727750815876890877955523302835883287189851384450303443228039381722476259212430296872364201656082061055339441845363204123508525481550260984991331705815764390520786294748612075581334961481002673505629817646839907211340183100528676713792677379180431791596328859458313391187570856666067390621551282803318786095452914675748601025837627501480207830712751859052432101641396862839830358850056129617540322849871664910344108216706692531709851446066389371371800288388965509739218517132464356477327156260000366031159471826349296239068182537955991111281228115922559614125636471759541135959316605032650006207799885074661689288216767741463948440367218542480834846882601401353186139278858221215984399646430826864950895507450479414765924328218197722220317798834446589927277519919063044319961025546108027372463822427310190573322370243672063766852597034206431152305958605788805422996571236910997834557379143423926174270708871766003321919301846619094103746155026744747770163722966799899750939935855915200353466197586532071793367282154396831930993767781386722135130646705299275424577725957428047653515154049096646361398651932300519045257359919230843405443478726698975069557890322637380267501493277401265114712204436375498605854329759340028711897494246600242598074691010183125278875502070712794573247617964656509861376861030005907488299514332069327933298816857652616629361857795858560708918519753414402138443071795397412980201907324787465793007897814058970343021137469425314364101785770746134038736497797888247799433083686353389610732264008150699126805906323194902859256626150125131191676121326213881847347754612212368472374009283176291329563116526989595892209241275707119494072589569499336523278475350834802537677134198057663021493555357112661159066163676912764791499519752247716226421337599985635457435735446461813996206230154456774016800910575678297885676485515084351573154493466529621873146062776434308751943216585127100412797633840630476393137191543105002283457300793568675536535186875098509269796038479578771984791721837523472099136835034449413095849269122889849799072159240830182661849010181964826819433399498526446388513790751457963022738956195049020529799669108757539181492299128464854486829885603126076578992115420871802225680604339255305583506126093412208372519292487084245339320221046695899692894753492451049424015710752988481577628515098467089945609720400923437486388158878982377793974025902127794801851830195203413873752493849930608018395490454905509911813976855431077556913221506847994181901900987252766326195394409898388299532649524465746117151424798874733329039883064525189730142256788145135861460653589414858815150257938959625284517395131836816193305056550766503379418897020822869138305589152868677955941531274873940533870172384584500064568576998859514713235152937569723920650861560018466162938188933963678937002904089036644751913227162570054048626939014359791783997957845263580082955823939823926311309418295749445684793110607392271757627199290307665408718874688596675684313317241350284563915162557388274192339814521669433660506198957089404075440130007153873799072550459501097062111101770862753163697775781895254313733424646904539565127257102406741086420062640175151475234002496133502468836439714734797393820623946034738718040898532315181144413158745913931126749916419624607337335794944907330447608456729658664006751143635161400637951994010519116855376343099739684215096895728147372570284507933776485334064803720254760169694795984573960550946128567124592409391381572353850335293377280678118486377899723295616525745156157398926376563035369234548020165304842995947539506287215175294470215981565631555203095294602608592008535913164834659208384834905276285810634938254769098728828755647063509252303763374018271508499562338206415343481889304894120517252070899649387424473644676974855739407810924875864258880128793044464625703009871812959244199879729605342367676860267045251494761519637332097266376938978892472550064980361051303152881106418668707834506487711382272056449372141212427425219925873252384164029106028317924163389976056901848441670039007310330924573435243589012807962652232927639312193981920488249119386294575815921519413759482504116100095634652309068767804428821157943098505746092064531576926808089179567512814857804023749813634844953604537537812163979564112385517659024593823612291932303594592077561990993874815036600195410310471718697310875126709114267166656063131299538193395609490807486003249628897792571300781543374645090719101455995654050653693541266808876615391691204559576131098239902130482444023838754929163888558410329989486499965535852896856305531960391066003077183797276410999001479697096596325844437594938597903578991846866336929686883374350801699094684310629575155053309530874105096343725846018264227989378374725971321571928445803768544985899930440437997731023134755923001877725802150405297769765977066964554888407022649774833213810967672809472563774277369348147862528146816337103123751177075347543410918578815077527653259911498921369903551376654623797940646113282361461123593312130254020126758477266219863184328510647587308621096011439940735314850650087783003162601574007495654336306787029052863817578917459180919634356469000913653193395208180060629922975499673632281156290080018365523233517497656239772487334752495224459657875575683641279820706133047466518312733571823194631920091599464707418895212751337444762806252458421390395527518010912823379522244767378545658517068713970571276812565303221978372747945050858686607739086212190113469653893994916329710148293333593904299797477156523845970278882016466646197910604080981264047152675165432575608009852783381140250561989151419100250381912248918950660301907135522561360306066779110761383644851311444071786241266726744570118100033028102255279347484382463105373755640530453462506999076999954275389945104045719881395394904852128208889442720885214319051064799273381419200468213112237651906465840409003130754054801536361859759690470896120719288300897536232335453390495841922806175783149313700537595838879563921470723750841109594014943692836091229574412530356987537668282093520046928037155572924318361385143335664141892397891046472490692505333653824552410307522515873586446847624514295173180318114700216428641325976798472526326094753791364328795248151251990634971574349396640895997240521074088104790710132714801025156176752766131994276273809629400640073542256196682901807749687511581603791990241358701302217698448669739934286684315862876964073786367878975342458355940684561981168539526061399442058712900472740268674987096691743686712649941977742273111495027037998256332936750223016572973352712102959172417566395012826182507017045994020543338889465733320031560792015988727615458850180577017208313479979346400174567930183487701020419292310393110505662775457245484181905833911147355342874424736746628364471154676578178673455299986216050816917423020797419733952095673401122117222130329335724944276943947106898822221782869110130726180608846273063552717684869876697548975031352175824885128281125996322533849930216209490557539478896149483086288537312289329218742339624490439626444858026789474673291581876013960087161369784954082846682810473086465412489671368909930670220553273789676476992670650391395341839256199905399633420746047187398562061210555164046791799315941628501670664809277982891647154055307296425385057204829121956597753609361840930949119735011236959945109664198151791152834170481438446552805631979297033622894270486750733388714208984464064384480194167783986333975668235804496093200742681787927272196073386896595640067558281190021006803361447236774653382179927421997565301224650652129745700825689833867427633046315384732924891529837017019835820792112747923659848392186506353670339128245277721400365764129568526866329571984505264151034434633379326295951334898014857834624195882768674063917334654802141165038705279774697034058430357900723209400973002726519193025988150923910644667540676208007028457190961022518364545698373134781637979293426363847779361004364958131906879202632925744327727478828232235948611778518942071173542910565898575954688105529472608523001107577666963387377199456021895642282245041734685838149217623618454414154030423767477296322140529551209747100637906596849981629921539724349316441056570773902938474677443470411813308033739396451784513760290505854085487850959284786521339411925131561643190065244407252078344552448414297334627242862545086061173280561785378227047176142365985652303062077314714349125064659725086225035685018908898728282935546616610765059545589497046410797382211100253307947812732897729532095710112940795284244128431309454448566595862129169268453037318511031740597346030177918748379498106720900587969920201211911683173983108586831245313912651339104403392797404468155634494278660124117909560616589933940245763000261908832664572389908925427041331573666613348995862527928259068700599469570507426775083260106174804009681091251062955971938209700558415342894759012446068918978858510585981438093245381133602373823843245381198787320250544993902983365485661541529582329049373994868161658721450649089441889216795463352637452119186272906227074616119428803590921941525617467796208558759033419830450794980357983613674726002943359565973639891855414747042642370521264288487798325683682434941272384643375197537825803268798578276484173261643446027496185792744980929191683650282334178612868151264342893948807211780887969085952415205926901582519473553848053266798442536879623981301866706963264701459742212402153932164149172621598662700512474569989271176734996113639370233734413800049189560623791269494774419515470285132255583438777609356278692933497802060099449280330019278734474001228605250939804247076891765402616624208133495317464210184434302733452243456437858758178974303561624337611946979730155012808612054539413845043831213492217017969805390287326470517889211430038094038632681207177278438482387031578486593364776754029171041252066522375121829065526525537966303989276221188439211444368998121641765911723687057494368218987052796838464926680419521351501705544922212368657661582722588470731313321028818713261939974635567290575816275379404211579539942684940971348263231100803302775136445944352998767325916741822794184235431337224563533011857884295007813974464674618612075499818398646379215343360399865766567049079825996499532113830018870779009523517379232784138101108312599385667090261593479466432326021322266860666486624591396792500437366590998312590907414370252518464901518751999681097238191851392305164100689905856924627770108726568581683733994853930861419966066162735282040414208871259141452604459125564537104249711574653105975307508951082144057286574472899650555489143110871077052920694154639280372379985598147190785898614741134131283821295304778023839974062564989457904415613770496015739944853772876316843701546442417162344020437387626610562452740243679350309295929303918731059500516239006722776489049840109056101659913244123407076133719724666149822376894555165503680038074008582686395390341346258871604780841240952428923666567514730520155930411707863150762104862090062093250796995683708394511488445401528274430510702696729554829262079514463834584410336875673579620884518919887799500369848581318997250859860529760095408274887141999577049860739224659774127287226856800696478581265328735427632138403240263123619549074214818295209615274478507271065771865544012805257714552695518477690711571032648297662370020503779075854812922311334650091255778375614685802933304141660703775518302479076609967259688185069091124190939747896478941487586252518853681757077172947460513552813905249009950685847428441551886262666644449406306649985173704343419429271422545097552704586825113861303289243839917853354392064282060782016190288544830526701719198935225548686131269381304223668836718380408024380896019387499048913450325963690116391170561396470513799942889197327077348084957240380264420113349457709782825121753247576999902195132733075247923861152029859711923223766010412514460972647588477477372245978217463387968441675101304315099969568348583359866680330430925493122759861590621119119628154572480360668907207812941950696848872638918893318657713701532868978800038976443264500463505810729938541404567551704989890290783835569045912054075719093391854611978395121619483219469250166039765548640988391661779848148069651605375475038716546619749826015790470929807630057741833064347934331502961543610110491159165572291952586227352074507097716992399993041396496313497917452705118181875154101857471511489450510138487594837513539371901774195069437259620315539581960522515395481489688862160787733925294026418076993411177730675704811395288643826362840260906142473925443227545585745332136757282040103076259930072588492151743302463902359565464316812740317747363559451026763630996073056125789752857298926955048517845634136389428574328826723394935689558835831049538293579556061182385876724953784450636684917367310949401796949210976019936837794277337230783259005421197150007271195497333793039421467486486014312190485479341627703382489760733569486686931079352253856691716190989964838512409026266122814934863207976019766335815745956522137765717559301588477412813806429013096042916965867066695518515119836192275110511983995795229368209180327737859173925075144162869782500237114666898632682571929471160536892373182462087727108353519230493516496485845256240063847722045902362136109436391168986658628163771387984409322367598454664829554443978707947343205977952033739395428427112512206208728261890252716773089908743663321065149519625779711129568174515117709367349915278851985261450899655400768954810174038367464469517386659341563838420884527492754116383372414043053718343940710114763077270151026437751269156441029502348250389143571018016610177421025280422830723191893156682712369212119248262604400618884136819191897702379716196399937892266929795600542905984163011389592511530776307620706343861733620586245743542319887873652942036841574565659985399233218320379576341855323040568273767266318467645522671826996123068067738885055427821938536074417228823934720045505546982671204576422015112034201644676371877481496556133882618193309368216749500244343001313399456721035542391777628952796147701274776911223457538177806163249376926867937907861658690379947022622138828263639407703376978077180560707302681789749854358865412205832174391899018826864832992836405100231058971113656231861878350430787021240906624056828820243106219513275749677509953729273534463034535243781554538043726423998254481553495734190107946638119201196754125784561948883183359664847637665335393613214569527437970842706038632278964452886641978505757314991089577573024657578460912825303363783563981314223307495273980571486823934993640238382017304355650173254051400332899088637350136926599423022946927611763414837934966787215782993911130742967777143117016023933603162368242995073652646829302890126872482717069086323318730412669270336448842551825681709546841243967450662575510119292289006705708277167446128879946629615795796393625890322438500933227887478535831044462494205343774132460757665195880027297553948061609477987519450871592469751044829685762298960520546347965022893958435445864454588567342618505321922207695171954144833226634482459226932511119159868749044421199259967732405041879315466210772873474689465376734300191451733176866470394574022308570184239499895306883268837483451696941697016962832368213951540077510923898212640278986233993632676978752920035523779986388457227193558768529344487548513412906373003940881101729544984659050817985439795901922737095897101037174218456190657417646246231755045538323940205104228847519985010787049102605642124977431349605952073846401483300077106505331013335053611519976303238632296235414148334352024270267649635722912668728423124145240201824635515273621444206023608499108966267697664550639801721898134006493248594034625035948737949915024306535273771286694079826983156356095132827636033539938624912089815457503309192498187922937183783563951367402871371697263340582471992302466068109257868220575279363507153540065991074411851780910588244963394373164988649695213404002877945419833286413353472102476853169624178053885508961688686328504056391688511557990664093495854744483601640541248713869558833966791801968422936757274115086782323861354983203858584527195351762521532057044073628152200668885865144730254144430486312130459086995853445475238579155176838917862269867416440043842073206321801858828274739000445508449767275199730747978949091383988166952536612237343046563565704430938454715046648461065697245228255306660640821895218016581219039337535955981595193429445050225090919521329191857265577701136086245708218350576528661937347693107140858544122175341889183555708370611331603965773588298894988596295853997551685615597404644808471017206345447457574865212132430233874731254903994374052564423967454436122466113576567858367032742324718358582277308660512395593375021020041069352132643481186462895190657488146981238723610481071821799015678256603641564754832172284613411161077093657675461969139111560252632433497377315383171392822649241391996782734000766625330452336270243951931364140388674918980063573653268199977375373989160824047088860007982702175828248056161053346882918388137116293953028683259735669670932640400280385835364316451817011070021927107636952080387088147934140530356729894131729995233326686052476829625440014897428905772442953229740500322637453096159184611014995286624351983327293507022225253799638689000643918993818476645300468657474894632753642531215207217081613963121567501668507921767078021704595015424086500321962334660192536985062293864882837982249460918742248256565989550903276943943625279295646654225735120676981701999681907850045413700628976986613126619752248047214419498732897879026593696874723972362917276269926871820213639860673173547174282395723515400148626672662832291263991926666448847801840146435773544913184943307224272247935706388853797394591935680635085757721832467407934513202514791496235034329408937567743807440879437982264020823995130471748130866069431648689220668701554997340776223526107056277878970537558003637151232935710353955155822574439879541468646186042308033527145388438938145636823085261263050537274159069008790852326526271452548127910916476010581069070459437271440482878570628641845821011440547834570657228291184213909851894470506770269022200641489389673144516924485470102856023872618266685042002411127879917823193057256879706455468918831922922280941072389153204770351367728429504839186382009296942025993732450444521851039372750698176264997583387043982001518289216239323233642417512340446995148306392208118413701860388928805322193494710900150598160742143852498625923064369133020329661718346049546720523798692456642837072396260365766405480184408606997179336664234897437006768581012653991346144791409222557185026503106022617057221484601916097181237033285241532115739227242293188233868388220652578032422226118765214516275192135148610113198847285924561622192663186907711293979430443670307042224394467161201239752671357543916972390289285032686986320263372369560907092576064708464015799684228996351349504507063707114377747122679244996376776792168284513446178884080965673614984877619367133141484722673869672851546947110039953338633514678106894197767773781659261044400503990207938647724582827923925729493588252999143567914611032211203069276781479970510448187124814294954043131538914252098038416479348796366519427585464412945703632072078263733535526802445261209566898048884878662580192601751616094714627339183353061894244464283205169890579452295269986378258760852351897897389088977083393608850075167788383362989771030265616369935363226244321178953439904588680043952356410247186546894184453808089154442307886002951661536151961008660487087172908895524096544273795090110788605464510328635752624242464003149287326018693198330652867214717007634252619597859140928193914174065022924582573693053318125947337332648913604744014884267816962759144796921672247948496553034805727657525158743475694460684736558845548582426417962294142352730387410953292344478462311140509203763308434900525820125693315996656594342331692013814200407619056277947865567774838988512939445732412504076618892080297863958927332590980312214988414674283689864284967943729339299622181276896244639357783896059470240412622232326350879776645653819568393081223061281639111008595039828865000000533784790579211024312422898071400971678851348269274144498157866587182192200851247062823285545716849615996969254584071533074638010777977375353331221021125375170354939983131665481268728128493766235669111899922069721193770665628394185172169146094750794392210674770101859799883747386232908441644965439918592347446467825489585997458265582597671742460965025549169792220559358230592527012715615759965080362429859112853929592687421134578739286767579551757397709612313792988583676881797167719277371821518045199999583802470056324976407989260950972938145040333764233934707356247330546928491707316717477191845109400469754112781214808713258911002291151730335787781748360599030695944396975682897364530417066328446799322417653569005040985827131541348303019832785725294207720707332377371516569706159445125521211915787413566587685508232239139507550294699757535909201609810270464900471751941031058175859688212773361347344012772150026062852750705808519932694059068926877394806443630833583295480245997670944599889738281001959223749619209000680961528595845535532900696565055011368456944192029564226527427455914661230246888724401576119650393964265322350035005517021630878724116971844477569664818369549223555976640060072046470494375234537730095711992381562702427523446318718754709146779269187118587832191043378410253367693489017869232598839687521905329101948288870934941107635642437742038167583049769668924100253060155913356002787802836653826487094222714897419324691991573993597655613298879641813116334985316351541312412150999901901345238750361845010002758033542067522855951077563326647530598409412386721505049667092525431694675436809116369975301297194926541809583023493359475887477015875528188543517607510413946720524210782486923360366316192533609323043821685302985171051234518382952721130856189418826969066730807244359284527742937059090340153406413963595928416850644650666792853396166204019617432239999400286615480522766877574328831129098299547159475221602103617938242570466537063053820094364036233429912829679201917889293843471241700190652280792369806889215022237257661009768123332390590021074910622997963977736422877352747992730012273356004101127520524700534334860676961569241049804026086970463322731255140262820232083555993542120949271867735083898557471195066092722860127889423061822296893869384129926680387351781474469027660530907490949563151792602267081348213543761123674704121585346688037116976711782331202758035150324559208198582892352813245926916968008337410803522132349826988400168113543509225002346847934852703205894927784504709651276843507600267429970938558241290880315055313176975900937698631144203425220563207506651608654197847547202785286159825643040059664095762166513739577849967678999993589489177524041365643885642277983866533129492032373248959751586202974329525028720981347723230375479988752593257705908179004726983099009527803709319369828251813261715682504574303012034892530586277908704793507411404878100802496837483230508975605632926867199646915093334634730073166543345143274949789046516970795055953668912955018190246904496477755702221037108286304696987765860054889257872513999294460834745023852086235719383946005090656494154201463352148036573168637775717752972775761706922411296402984954747473224209415407694584218320225088361365920747710648096320832266636411880542100285104439508123579964987648645621007291298518597888280990087469691876822874943781300219096177726731329533737797641138514351984025358140172201092409131237769122635417638963335725279290001723643020954625072306509839945942278461762414138615836101010684212158130232023710267362785469256543266992961258969698692878957824252814100239863217524790818421083242897227025212217367332160657890019564708114624961724790990634941276308749674816401614264508602391077130090369483038256629873083087150546717159280875907508915998985459529141413745981008680875077939333435907993462828776217542447595707177542652696496967468294671035765730172840663925514105435946843602242445820150475177807350073806044936742055468211531648418835726858495083072851566101902135813205427450244534451314123362346085640030395719809137863326526339967110483836514011974915956453375691650466881752872220963908685294324171021000561493007469968863248509986398743213785446486305948973938901869009730458045317568824773468105449075970849665644491418592042697740991804158319398130424976648763375909038971435548741637049214010923482533552081749351015590579976588051875319510232811707083461334870766192935682937816769283062305541672262734291927284258613993933585810715559542781817259948886764167814797943190237671011981141732243426816738938766350253846164878620962111660074827473174381738445942741252942761827332365801257108036647975773853722080972407759294029157079851143138251315667585482575426828349786373571599866188403037435989461782764297586519086638489836742243188445781351837074255485799994594557337012572988437395151903672266792698101740687130308345954768515042207217029038514366393047339377970829430116556225835966907401467188182893272016533128487744747990758118427217336200665733272151550329564190741641625851260979953274932273856141671088975759205073360190759778065117993234212484192804956514805972111125222896190900673587608380469619579269651261533032688456223520827167950029937771422146934153815659777821733423699672537933698145943028268878582756921160711206654480405736813827180693736137087081692788036968243369303330699841251115184363307306246306370819050090188056679920262198869010924442630109158719013664596207487069306767879684921892434703846325452171153732812240463294924551352263296610491122083807776985158369148959959798029417353588718745317752316982304515167501502342336242156379063973009189006032579926229662312189281596659003682437699586022088872061195804460248294699158787490043789591185879038639395705649117841378021347149615022283731222021371209479730890505181764885797619268076567583052198046715615878172231058092109418811505637735833119830430762289323340649602506457286312398293916037407102357403870283544007447718976034808377428294375613703122159080701180505122369786013061309783894693940460313191234330768828216294622761164487386330801396283957329334557940652724891576083605971653290533562740206822647718378998580465492815634921274437573951267392563266890940513223604665678367569276460295617711670466183743103011738747614696920457326017213997396251705414501559895365268516462559549742066889952482632928545457041427496620934556610872492904391676430071557571021356835143080697153525081245317173121956417658500522410942758196191631446491615454144162164470377772653936321746416586927442242620216625589124061924851157981041487618028261548069824343273865538452967789396143703643285629512952365333534790126534732261611399281360880683120692672259458723991219225932982678130617083439872132640192949939897543579142662152313342283461272394527255332719269856605540738014248381830538866889961804463926961222308297470047435078150526429499788232303404717841957592906516133961156153973610392580385809035116774388375808775137506716021846233416054709347864680353072569255457839550052413707935735275909503636807840208222017260489703703590693504259116911583846844597345174537935473309723072621990476757079204169632599978099991963424312572605404400501059027145646172651798716130130695794586536416594321866713309100925367116606079116861722919743557139392990853396249328711956695139855096185735235539930633537239652193619570157766753333278702621401250795296206486467346976621548081656071366628983101254735644810907327927211691579646440611232433507837827588940761020011713531787925560917992704647194171455451905651665649263315478705584404780693180677085129248134888555093809270948054397842218584044400036565665801151416530961291897823013574595810478402739417176103519252612499457020569423294942299922842024429495771096689337191680308601431403247085448902780175507443304051846856484662199342193774582151199240280686691094630461093832663547114856566891380066597907499333031000714201309312546323834958343738333940020960796610112159997403340134566700399219272029300421040770213741971530698078574763846837701004302739216102079895224203378497929301312384258820420352422977979518212708341373201344894142620529776113208123254355972313980977334760270308360545199119055266117326342420273563680016173697169710970121375354500219745894516639937727642658992187595580243995033234500948570501630804906270817610501698571775367873592145379267495717588328389854671118917450410335506813104568289135589493262651493955807322788671998561645666966902145341982808816126260004589062112291943735010773941883639912483391914378928811232362171562838604702004037655993891536117674081673955355272275415551796016159609372841364418393396017651428016664786090935940467371198319341620244383438179491934418817317186007543204264094376804151408943111874022128064778694529098678457559427308718881664224053431397700840467085441926838241136671436198492538681893814426311857505725960975964139147376114472004230781831029320915393316144363166478325112660017616448381773885092575971310903469893626567032897424513200488933520285696301063367782154246017674074587359389720050667064954465320481074176980849664747578870203710668700845127227889521179756865665672658698095351626517282788780977746654834854865742849367107728541774454551249854900000041474609297209671577574656229966290155308613749058792843259039150649192067100941574805020305901340708573796229853757432079637542456581288657226067730429601947770333828648682589100933377917393712947064492661060432544775680328536335571249528768335882420826145759861545427539250870036276748638638504308566406869765322433198178055793033278195393400000113737510531725358098076457637061158432938927218294329939394307763282755572050308840344560446794184151998748430081114580079407820807854001347858168476156748156813898420081690757790372532322398121294770700036558382320805042651554302320358322626817991032691093400635651622079361974704229355354340816539102911181395685229645695917119503898834756046683576584288491538606117576246255071529813389252528770777236204238400515826886473732848391092391188357152510835598447947273262211560077324614930120449577132422794483285941417590190612273899227949042890039084872697193802209649205406876977510107592145918714484846325142313385678752934412843303445897354445592302972661812339633549425072507149916225551564102770316375446564590811113849962184678575844824478621548067504892087780479274440840145836921018721329841200111292219840710963289123911725989749510147301062627634686965781567635543208563714748891875114079529352870626117314710973184311938480953034793338056886338407762672996865144256743031332003172720133373329438633551561814329647788127107918257813465130559249539178693990760811107537938508305316327372704405010269449294936773056336966436605992463444539716767429825824066288417984773193594547240662443684782138572618558510918428836950539405660605403161467831929987310107012035431966480663344227948078864462476646970339279110043460170148503250122305051068771007493398790651106666439799285189325586412699055001846237758188964399141810697510247530571253434846809861544613742488319954660869609218359485999931710932087764595421032876338840939200777054000051099678402373703298883296183901466643566723262530987927703805140182643084287258476999953436012436464940699162296420211658664231724500855587797593428224965487164587486413072332513563804676862598987190412767946286539146148103536657927424443900160589622592428222591577926092766866502144194048183834854486127719503625011380005997302070851641098410944833195487824651498735473531332827294219688957631044671408485406886645917273655497459843464314123277517985571239992861564032899368439165924088241085207095198062938883885469179705945217630594070486265985903787094179108476128740895910628169050504450899010932141412528434329045366596247255199522882975647723183458963675551222387527736724406323268929325752681870535937909349242772333483967261107084913958743265232021582734316792344569048633809980587876990357066270899913189508598771392681094384256914609084354685947957829209633445355944030206400059846042399794029204107547218913068775033367861843097533294771267865633853736552306033978636517688621965490870610967451910034334414772256332418406545769030814720544724309534704675199790763455669248584903244731606823902548064582458259889811686070755043458638065003153028949307528046687004319667334481549568220946969556053338477799242334827358331142588233601675249404456502245416550830295913582518352849881595794808173065090535084150431929199566569244818866992426424284767553395099790269364614901507499452416380879609905896458330407058532754627818602845066058086441397358129167399381521186696352752696464941462963990945460165450448188183836312096906954314183601616394286854321068381311753094286607846973302816739304878902336346730469070186024033628590736856605417060864721370807688727479997837160955984700779081820426945675459858066204464845479184391057145075905771466273736658012615550282508233871126116514781559911469469384774114586661074085700740420486905736172276675789168788088453695896634363311146017169140200951445941755168222120994765792971219834448797660337730102749277511022365883276505293534303809282575946164157908173782114655867423519800633322405878099551308172793553224248735664029063990936890673511105686298791623114658350438045406112806495608240511247142076268414084228006926340923289751826340757938669106037433014826732662347836280034087774283775185298044700792748103594592166710369313642073460983029086860519741836290364601346743309687896450632084516363229365762896431577560203247521818665462387796053619351328204298154793603623357714937040919522074133902737709915491372630007005458803740006986132309010152532622692731779231762108369250680984284464487666436123301448779196706246350769142948010928666227393015872168117443543128820738359813199038816517540748949096081947455729785783109967580467210784469261734073823438035305709947021881235560939030254577154327450897712924107186037895636470310595644501138735459584101509581587629234156179767435378393481160108286480638408884190337665780164256656587973215045774416560739035493473421101267081353573890370188913435599218062134793662373080430770621378425994686919808183904107893795250198090676367072976909344887688527408956733804873689000091293126337578323311398629994226021289790788686238622086387655283677646393511847680862651291758990192073585280033312096035064290025334881153569501342982978429116091650507326248800086233179245605320637321189273174219335504988746117795804823161448933752148997499411508352830703370388893514807051715849589971350207899902465867328264734959337218876198208343635384262879160947939247632537071868369360237287475705524104790131092110696579812731800641227308270359346306957403346794697112771809721283819349919647340355814496025067490916191334111289655173503496312066122295291468298604774718955476179630926785766746054277685699821469171635231096625559299813714443140269470715603025097819869183805357137138929677510591521823196431929095581940055608897871495094069146016382082972570487339218800277954021726358723541448524899095613291594502360151805831276175641750808825976092718303634560468990188834300451787515655964719664406476638797157584873077258525055247698380823440149735353164910997411428688132007686675344778883281435131636787982370591855113695803407944845431350788560708788871495637457029176890617954677329264286206550911606733659081753287017343019299476558992012145486119204057673338089780456265758997550235903459639591104070899667650694647532357956274434612905575914448682611456403546920814945969907073008033499269211868367158131442560899471850541868000570586479716036539078096694052405448030792208776489365538683642808485915853917827246978086818638751405828507410308065041915227518446795682622616413328459780911288820436502080826977415915181402566464361694407377072143879465394187625789498767448779282756553507903781732789786880546380614225307502680771744632067560650832566518139355152331281745008556565967771865542283823793361821385068148248261713931684710353513891396978733264120094209578534955038560925251387508127486986243093299916613081283494222343345389310929949231354505719929433577918162004881084999727979247004862558541174003337713116463909967645181477798321300062675788495105578808203011726522999529156795866492344698229986497124534850438838834004815701384886208279909661513081317528805533093121252008087398214096997488674407191295246147293000686116880740592012737378429791302395221095289804846807645335469096885409932146319759545788131184374319497637028403734279318019237381568553546434024000617155764379847261416450242048195071258661450507427227289823975550321446474588387696843932342939622235711662019708591718275778749063593740696119045967941922053169659773563856199842757593151751092957663180672472652294980940772718782638979436528160835081259799228694302028497882155764155608536036815990611474549757383677174871660590756219482236912785631226486793290460198030249657021507496788200135164783965431124889689239075248538192181720175639521760553505245166726241870640832043395351923007874941336902135328115620368490400235760604553199319860558004486487763763300332944007019623008864079227546742088873512092699892522904996528399195661488189548564480790143361578193417707697891199708748379842766890384285312765957147056445799747415299631882771109059091269062445810100711857007617395632856000477808273100776929315675767826302910534891915698172489782616125844921433989773643923633589854407858362305797224959829306344675234928322372288546550266051474802548778904587369044545371671508004031159543832607591217601437971166433312208579134626721534452379241737727029615807554718360341599709782037484453099379021856358685846155610484464528582786219825552381309537984233215021392103470738196380553026345267126047129776711234113286180199341323821761001713717921619500026697998733618678121086666870747637479457392191310840764546068397382986093689251492123454336142564435000774694751239117472166800232231557784064243704333665834753069417635182810690689500842521302029124898790001064651828203367322481695183911710124367662853214612954701898740350107480813393875810855797081350902494595488012168644615056130809260582418987638920068459706340527320523875275507816790600123743749053145686723497626478175247046049065905738803771984364783637018208296423269972767507103276441597507643235928217169984298602831389753777711837505050596120754907398413101978728044245899394071110112387183303037397006876265302285436650753255321623435242492211337909816138994003862366554840101129585351764700443936564589174297534411618913603421794238506430108011969147049898843663906480112493335331517797134602508998441659128609270198392973916252451916688305215200328423781070429836050924226200467455283475704192681453725788088038788779311338024664413578245081173014652313247520802253003543528915010948929693214417838309943436881830992663365504048176226382357705825994305946502622178619346753132145156841407611163279579647949821961154838426077328152320081887740043698519613322472688274231273484265938761063823713009557284030123161626605126960741804654151034376381515211856796411550062238053345374833176610021046180183674981386889659058130740063120210975231012755253341606212591119615711273138138362070258986878377339081086433689827180689410420641910235945548314669421021072271317973417484203120024313376878796897110712445372719432946944604083147397429738933667545285536057363761688096643797320842482494390398869914157763141408244822783466270494313193609008413429693746286391818338982243607883191461472136168694770564665827837174980334649334287457247999402787005669017638626276646529748641863446115839171716310191821035488150578274554037271445089757915699263790128743286523204341794265572662432601446524975601206206783912253373736130811517100509974716532133624505606802705771822663904227094271471266310298742682959188159801011116271252476720180758096534531002008859001600000360888949087622467818948142931769748040145313068498906092897311954223068689282841799561213407941288506101276178066428752940640109491800851778633170643403712973900221076977364391819692454767665220641753780398278331729430411496971432630379264167578427816966839985867197304640831817111648674298785289384962057744567533450030458565068969123508121653190725348247239001946308522173176655131347405749178769923901689790632801700224552119431986848225779717929050686534657506281421007623408295522813976746597313620887070676699420974714639387793257776897068734815778509345812132668626215865368120020181550254044196595324608728789568054617232864710930426167761695128180687784612562196288396526686707118690588342678867516322821546263119286534477064314791987922945698757040099517636135493465942476460473512269269441797198542347473658225886974182865033417098639094028592223689218846031675887439270666233689652948197448007572161141437444453306546250583744386101826342299630766616311131569575642429085565321057586110587426470469036632321357669301168180404522593185790670440004215659235839931911052401753895059153211918126529954522884565609146751482051804864388650331026186324268195748723070005326872844608952529179254321417474348230714176044863557703261612617638728022487635355873050670665717605281902366307977847931406067568365846950928229374042407475262569764306462229617538282274949717959576196203895302704730443662585012476437155721493119018689811644431520649842832010369367042439965365985781110767473184613540990432271206803938244537856314394919549017237102966099654061703527548641119489964101442792110292864134560844955292282476389379198773338431715624838878359777947936074980749850310939708782095932870808025342189151074139892174230068164171816568980793119833271431022149332173239237608237317828399372053509575785230335621817945828734710110742148784488674066037055253619876469735279176378172315199249885532551190681737475216948667489247676701926706316695636818866973733011374851893706180987090739065343543666875192395588607052205366830421994854382246040024004077813870635562027539993609271888981724549694437919313005276505090132143076042123542883588693068673500229693802831764315638681441752117052684471928951452409120016585856353673988455994980309237808332803956688880392508183071458797802667182370120080794342698214313857101555644496559769813775274093572113119993753312608059144611258382114931568767447659758042987642495000107275426013749015480774159536768554340671659835634810666982899636796268161787811258970292651607833849145577586616862071542150356405495750525008217167599493301201434831952276858139358712707762211465570270916926678825836181530249170858522415416897893074054102564320881347490377385617269027889870172729594275477078689264169070362920593004796174591466584083994677326414982703505238627900770301996546107713995475584848044981882522287906415786301509196394865312984685455492035447887985152632028594159347869659833433124525854265247526148724039810594797173944012260124055007412340063994951768427382911175015463961864748987962993889293585041650582721647590909088550414576534737361496131962075365675685576284211814342051055028124334119107833016781051324645625747524330317295979057993959578980803007387286794472266762274331626539670854719521168642673428212504240152118163280829935702367103417104863863532723503626673635132789013586500532517618416071751641787103321794931292459642293706368853182405593622136377389276243824238575232528382369506459413789872415915898441788328459122332336479702039063052008682036713356729955751302771406667151724851673010116267914982694351027830524614939535865669963277657368011103986531304685639238199284761763635695382588213500234377035301003419262526866491295193507033193956891588887018639468696483841845773339694953596820165617412045756183798757335049000122529625682460508438156809111528365280817453291616364758819816032657480874992377233102029839349812703405359656331196680869277354877903777480246222090879973295163306536297866021849420571572604509480238628068098672859645385701556730273064320829926438937313904975479473752368286663202925969135394837446949871516499545237818418353216428690849235386939442754859158918412429205890518208979406845722283835702999826223530258557200400248176330948677212071934708076480418725809798769409275210484065319894496398884575653675590072328444510747860409595460570410978628944098490622793024345562533749690839031014103896955323600983333741038138590550650021278850377382995737748624262806710503706907128257818920716409668685258604371984447371358832805145441769363782419425646306428055313281298393069860179984138753591998107371347756251590569110079542478916214013476164767053754615738367174028644103379853418884829676700562646939131723220939072154299208813626366790948076781160360664004958276312541918340102744223319656013502942303130990904240972003663133460391865028807518312261460908560135590349192097927973352229904027068334936220254539398911696005225729994745843490865024423688775856492329192564850080426622714162409427961726280543769466977456621795952391001073172647870140257627015198439877559705105275829132968024851452331255572670725585098850128309218579516952392468604689111510454250367809455652017160173990094463206561237195765525529793687272034031376884950626440835072080871754030664300322060223149083068566661358726548494986258760179871982604237733033470959494398632914192356915685893625511405432301832643937817920997730116640762852515013019662560041361323088997470218486332572148517535781033938849155806810357651386977747854175176676972115385732812325370671990750698289148213050201711048994340090091177175276604276139838830664108191774496637103054430917452287443849550039619972586382846038089419000504727981568241468263796085303425737691097561369247189990116957447466259732658329801713862112864803446749984552672424180852027044147975435023707448522957433821596320607728037807710206772611630160324465764616154646688540629479452146135523955168330093046569277886151708981334087451375192477789890376553025100363757558568543246771764483978592296274173791054381369705026882166879601282354002367538955945550218240244783507924764236501148421122221262861457898610378416849358245087781903649949905362607342090278263009323810888369757868262369504949581762980172402335982524238904074624311430263080147758874305841301085993998001541056352654276247642108398031309022256261885498513784229870621929570851683249128725387671291365324233278230427631613245682685813630770970902217110092905129926407055521160192647448346408517772717699211402678865197093969195086732871335867699668109553306250683561132584180879086109545840257917623652760926147834529286548248936740826370753563466849486639027037829771055243986846207864795280607629734935779715387081367830038304710353876715983545702573208757784084946529040617352814496462326863739039945571629078802163730855758339652493896783805634080302584866373187402634562072975857883689763333430007777850919140922644572544858327378790353951801513917307339133875138585342250979566438084191302540075954650721229128374445984689956505754191186381368098868544575122900544074271189555154628479914309558349454311384273391526527926238588750672742900378380676612087475943211391901425165462525050458999627365017539075849288907854799789460340747637095537334608017253182880431084505919640963650110088747651180791258588969930454329024820777900341877707946131971230216373324191777019735143362603346807729200560474648447793396532572553261324348993997717192194439181817351756299334014108884778469905482272360529606872075089543063947242110013379471171920562928999597349683743653713901673395506931844213045811791515623392984585593775456392441785408009595181485969994701813883325080481775086254327350811002321128259105255343603824913014012396557817028703854687154904813479690043047657688975991983589230066984968044882147262178458435151467952841013831391517145768351390781348010927439939163057012522996308324964403320937011854339646199505734731355351411206615903973106560721607509117676913548489489842457520141181035404887139145308234893535694247021561415967386122815185216101935796248056061622185918310904893954189128064846498115727798880694802449343036908264287099715807196291563954458189354608910755569827862290791740491981948505420701609570916969680031095140380096098209545102890414106072653773452328750866819194263753787198736971622832476723068909536797711583676994498291888789588288316757134908464143385332142418355478659847405722422172005924657776546927813785457099339119909135731088343865026095837070542920008935623240354789336689834781040449353432166704417049608065776174993682793209943979334141042593110610371609753306747763359306176443571686455300619239015820148245930565082076490345199021292585156109718615178529651571608517448961257296266934949159320327702729738016971250080221655245152445046746762122711603427158490987917857807968585134271307629827096021041811955452622637417942764537244297575272105643330949271554988846157387243963342371749879679843961657316884673488959290102745318598279697125126742831202651065667273185539101609512586345839864162598541144084620137591487294272031177861302312652767080613296592169808328965308639868006052861568560669979678814858238435863593023809064018609698712821947909547631945779325322742802934998690534540728294186125045153960940199249365281633792813752824236926759790309988831896608949478942238220887283168370099853266305296912633889338040038903844816795775400256173092527498325789454425190106158827398367774504968295511141566427884267875606831838989275905455936771164117320449828393104331518657761764180322745706529516852696571772183397344297640425067187754292950691363561667247531128672515367873617092787419689111999896178619681938529191221184095667033672695552045276304188146689464502623542284068500433842517323981743741658508564836343724044172564360310137319346563333387153945620113587018637031334390319494602056394511114351071324451880442653181123176071724203351643670101945096434670851299637369443441044090444922396847382587944779243982571314148278546827293064487129100245872590896542776552911926119437348363567082269548819466255551205769739583198192424792817706532694703282347817111138541495455694798751328761383843869473334728796632152904569412082108110142234453168045732985914238054984209428444904621971372601853382124214297667333311996120906419537398606758286130289613299535962522438962824247273789610373823862242879759014992072291871286379680760776538248191825250972240664712717652784661357473648780483200123063552240642447702017620244620388579495368034305073793781113755913964463449967115299576181501724279887245754889075676706187863383383170456692102503990715436662785266891050071283254675077094738865111567384146631822385000446243283879411236198724903323538352425775514423113840856502663291550597133082924333336494411025893508680065382144624818319731320874880014344206799938850633119642705682783941146423127974399848872971241993712571357905799567251529678497187333241170435825942536974123195633154655600259467688307309193827318714890172049355892255372679225506915549650754018644846023461392479072636063944292562954510490593073055009218090626700193141447365614985975078580184274315857086347999466836453664973550991898099011688121940922089627189791564271158272144086266968082744262573996040927313445006324706771686835286413487414152021279317984708395401246476894416393314035141449870852719498611057527744255224891894381675199404720683618610887446025300453049196471515424910734847281787850559201029682426357271289395855949946568128073348238095903465044324249834632435157244142194714780529234935954350379324459162772585002508672972706889998192187983403983998184185619587969341610408299082238423080991590542143199610791634491117034816763660597206133297034643172657182161119401070447834614330096341550189475909690026853712543801017549933114390900350211930820292022041726830867443659301878338667985544875224853185713878659829617601132094093389735221905275394374970488651457169398764530611354466882382940635755398832781439519459089509163849149765008178283966396819430131813823626097809753500674564002972147274379663364971852103131118104567491970757206152179280062429438829647326131277525937187418780356641210343729877879582283522844978977517556356972231893906742457848793971964522007470522930060055271715951269989420040661585988044453739174837265618314428197271722442626750055959563187892619172137573536874995403801974713464545491966567126228680254136924520506309097277085835963929180745773942075826347257118844445561534233955276794375771382694796006256990287155318480435930784707185110854323895069006851196611275202052336139909489877742821022565358619234426476762125645457268447467251460376414307679846655865810864762007112429048557895818401803412238218981888009449370841983361483494082399859771642664725109936170106637949088382932760968278820740587504289674832881328530341540341187506522365218616598866060406609936263188832212652051153205343886153164137143701078965882691026202560765758765914107652420793203338868512447560383461593285013047085345644671114080679165859228481628150532179624418546590864504936191846071692375110236596630604684131659671049847138914860389297433970222630047426050441113824788557340443178190274815353484057880198792239877723264802670267715815128136328485789905004969048173631473185031495222429863058086099132643868461872334764652951702471626128933555155329458643141343450727307974442232757546601426097155553439047394192471380708009076878615576025787737691198380451866016210440560850740761124377496220025573090545959797958283569402397783399873185832790523017880097800095528392773511180529791000577854051967013140551470571533669253906552385358963857047023059839406206948078402530815761955335069162362541759603616947689220828316695257997375871599158656004664440711278478570684653364509192645261341462522342283273407804416860298068587645225055646491189420151561388208974335814105986241010707151379932555386558017815768751676080047791859643034528728706745528690099892604956209338780931004965930778913976947906393989557476765377132420087440099097983760403574323722792479012964741202497582718985237457456513278948851654296397545981653897298853892134169344939703624370211552818343320089769969221034902702215037983419123479660736594356138329668254633196805678573537618949719449481824702633438070403112792202462783419036026328571058202701857456835047010188106019845107149862995958747802000939395584514331099979325126866498726859234832229333166986362433581473879528735230192395291566030966450099697633964036081683430344671371496779526549568284816539452527694253934227126245553876912754916051601013528007690215742870253019730461276850532051051266033275993270068626704398675096682631840343861583588889710984254638922673459024143733972604443896823561668099273199600351650510376125238883716314883968176735976602070122367918331561933697015971956719655964976250544537117938852658996390175218240856506977828383511665844478362652489586633381465451421944794599681681140392405697089749187638214841537727090913062856793538886438162239937922386371604389081021382591149980659135338298958253121400216170659371114673038408614987729064380077643474105472382163485110888093181667080354924121715472124234062492625635844337492848206491734059022634954509672792909312421684740309072477887912351048010658956016436081037778664820517782283951372782701749853197912818167227403353498472749663575323113756743030545775040531625520133615196428534815886665727324386430868543886345593926404685143896768074058440855549810199611867851166050256461725006329419309677807870987583253173377221398846995694063211498435794631612746790808276487891840199304999697262933576629376696623567793129305152731162293808039997249886446731608692534383725716455975247058118453237986194276200630284206841280738934592265292191779877056925976768446594541593687778584432309914750248512494441105407491585401797417849916758473677084281427561313774274667409468505342918560229310559081996070842116901648121027932398665811845863063372212994524595914704112953202583096319082191177657049739446632609754559372217295164580099679747764826902102776754671335106070716055660126083329846965327324801678312917171037157107971269682288095215381318390174537199046227367278860447745356421696144363776447177343044691773454359600312253615116427548530359493348124003603058274995136058445423116491499384734812790733860474473856848490958953165669152424652063333898225267500916879767702679936218234581195752401190456732923929158957887040775429943424491177237197153953952141458608492551380122331716455151448162174998848655419498568181751308513674754927958484674474927239063607367513162485867452345822052250484943027891900834457716037805779250668534781306634367629843375421570604196269522457269832935873997154861160180508274004216920644720842684406323407220927502250351219943754658269053039651397804961483356621083804777496399025392903456743822265767718749643305064475443156432720524764928992467616389549085506452126448947702160072017582515822934219395189322778971099389206855906354621983379006592762679879206059845228730307267589137005437496219891229537079743632614005540575186583442610076047880874749027354976883422976241626173127729073590200207078208019826460436972040137489119218662789380443017785082744176010006243770653272380453464304582441718798435036858482816926328270442152559192471668698960392260944727635688679156644430944787908865641160501820416092461113213293745899994182865710406048813049777471723351805433720648343565557102707249194541236402687878234278896737642653032834100630822953058679217535209297680936433074874588435629197869380924671978854954901510701245480382428394843009078137380472141328618143161100439728246401945701124308797735740306669307770339867919675876958099034930070687485246710985750420170401749988975745553837579723991898119901859156642337312897456204328920334883035793758545562058827158343463297210255724426829037945739950402307051022112875595371621741322823818839875868370207523802211141963730275192624737946371607054464426178922780148489193688011852794085051018259680151061530786893969057222901924852604942674185157239405984636667264967228469715789223241556101960011840023551130517909438012900560376372417653267530725525662605734668056845570015891572122343034479835772630935660889237442890108170036836875398377954822631850871269045973409645391344072228810232629810853758602755721802580890632370058780103578263022761219967222477677890841015974979790509136627770567000284895708694941370126133025583435464632364217794054153143632380774323207584193077451880616387074780535817891033541467449849680283718185048772034114267332557995964657067505232163832584308089517354773826626957733398806024277080004018785130432323112103659311944931612851635791491470636651817123489361577523531929226611953114718729096533017814256633653138378056815409296287530434776066884800945816055228169608004740854765610206383526535227486718077957007704786214526530811234289210201722273642680557376788341712844752777953924969229456811198186121719070309353243415786663004923133364568245609475312765412334856829823657964960199180704205195404443092132060116605816851734643604992829102238474113517291376042482162770103012801718708566219036682531957712885475073956451079165903754125397352008012667121269237688168255113823918897296686374267783863017459325895323880958460877541689416943427532973582828901964874424206728213652952373851914144272634635282316039318878832784141393504407326237745537105505150715216057782211269890590379770125855092622782621540193021194226949474431996014775476191867268405864182223648190517956137248462427328892183362779590638437761461604771198813696829658362095193603026914347420621192910847374748327718496998406623933187916873823439672574678101860798797472177181987920954647255710504949209966952328091973954446780991291298782194897842167236735055488691125903074357539795236865525516671166247476993976381474142519158818691119190823137597306129874486137078224473184354591854330339983487219977523877793816537566373067075580628333537479593665472489913394042488436422440933690644164143747767731941990924742582715734686850136643547435551466624203347394632958342080000967627754085090760159466272104428239820152794138673825972659813622825637344646795484523819704050050930489647222694349662303244727097314122216593852097620349891664662440025219301059195779498469121391631879850865065353826021162039917168911094295187150152860224665833321627966860582788066783947250665223613307159720047968238936839631742056844848857251598554489375095512059199600936398822147933453199977687046350362439518494315410175247763845611359689850647288436981252186129263818459071113243192802993551254115514251503021739888124204047010173077781673540245668484469690909274808726341539972982234453875912109384185445162140619984967069905437751917599524646087585577350169711760177101760566716262147510117010764862116305947939937734948684544850282475544297694465673535555996216534255132265455290663897491705422090178177840666650263632132049692627668598890743048648572590466487190741757288394143966728244658597377954264841393551071297023435161639385295128750576731256909782316617922302404616027757214393185535161509052408235698354641268065965991929754026932185344851751670595755324327486432615568135526893658666462295581296787624882437344611243949969140998303600535746352537047981139667843825353242585867225798699097404828214054657881200123351116402196248118048472564004703646272675099481119758143923829036601926876269052771868661764266992100525466874710922705396272764097614377876398808456833659601582645044523090841292198041548397488352677933267273238742561267924545584388146514563557420060343622897309711542732871494236843658535446689711198123465025740326774754368998039972062475554438890629051922297668287293601805107578879054303545019608823864865819838389863192939419095450723351059889172978732287820216621825054760498578842608629105167224353532499669201778303877657815677337991918830448356502024004114594724414115077506620350739489742524880290467079491414368550486501376235174966358883359929922660487412589016883584973097026349389098078071191775543792688773936298256980628807016947480086192469025188102345495520467795765106945398290247109704736098962647372016418499668030323258095659708276250184981263024335040862576101458934256144005660620948971562509884568259764508879497211682879967599997285368789277132311538283065677395382955301215495792324251974054848271046619558498737035417843376809824750744273320128346102125162537860135409440661844023064744992696439788980926333873962684243416716829003257495077982749206861918053809393573579447558912193430971868801629638188168950439325803981635563193009566148617894669766755522038403692750355048605977257817730033319809745852876955486983551766272053100347905649475252768013130257755136164143831931109565828302297614580763124957568247594019628432084859203036328543345640211823301357822854343527368716573872553751928476513077688609683840784222013255780539894387707986764101522877985991709997673150122187152621137500602039964711790410287072651751289728503327159419247425494187124855597132904510451385478132208367222956275408810911942518683348057270344722488811843453883664659578401683574451634088549608264438905791637285983445328874921871488700857572931510067918598088622455369249625191233845241560357638300278373751229687191875328599207658936162439617250445226452698692943978131440719307838463201896311124826501051146576957375261091591259379293307065450521959125933422516086465097721735444207131522614036912617132509168043307319713435776924513455813859763660351057626223467344167495327751880677532573603069912778028001903133925053605575026489607560094357312230730933682023280291605435787760501299649586070708943157085936022356888317438242535787984999743619976747086545870843197440928014925389101457020639277045929481361604608067083153647457857561302760188857006951630644707942590038953218399084059901724292699505848345673265124514860181709516773590106317130020378293138539238241115038358572735132973003523920728798661959793243975437907616311013837995707487019352360948480658008741690481133394722581369298138155185580435101831782188233310272196170831811369654782820210548243645988810203436810885745631917163710024519785054458082774755933162892592079573172573366600509477365498885940184229061756287764862823611635833056913544462861207930882988064250812801937261281913761736740691921636898308318078321446196557775838805355080952719543695734562850715917281417828949694622550835661421415591382408076694450447170081381907048933737848013202197547262598040736530332140064600379992030126192223764113032454297600637540983541778510225812718858844716864928007721519514369683655738917318683011358602323128674897373883511554813799062490045054559389185916927308654077477795849009391746098081182663901034148241361188528255394702843002502197952020631639074461059789442461601354180861220430619122499796442151271291892512550249839790321580579514568896584574427122366532466756190491149413926669473975958694602900475483614895838837110904084574642486758731061812264870253401982762625696776664506239337796510680767040709879745855177680468424032635381268503127201920512500413627145088463439073015937077611586877591157334563176126887473735918831924148564492359314397742373906930698500423048582356460316580484298670080431069946183388848598739126028631382019083225643915577146711198165067983098286158516412921833946869169783691237811771811706539094812905153319996283456886111040138511205019524155389826451519352836441580680343206577976473956461266109477983210577252931125678081189022923668920043618147695575527609660659300843630339067579406248665580857254877378276029765782359692838416588605565032502638703970692685521216033999069935694606876302209384700239515886717495180023810038857015217942369793217457258150357734106799612450318170635706653710092399583321585617138889753023140771332352066038099309013606656432996033472888460269520223100298538366746784945699493408217881207930354753506765787304609547133426910909602851506296035017864287920421908165786636258261815932947599851494202244327696942897765075353002939714009650191941106124110223227100264969186687493373628930239811244347647053426538730754191177086368825678441879042181703379642499078645625081752891288367742408893936074047230237098845804408038744100344050358654689423957560508911317894873327050156014080829443847227752702836531499080081024267371961478035595401616151608683031366778147162312899931986465867279519789597318737243833614616805712125309876493954608606062888133764325704647379271927195161868245559632297425732698101738923656226864283381851942762471773837103856507840863497151825429191541639638417071016445758869859376859044481877711051278275793058666339274936556585040597031820979162783697953380110934730363791106740204968242530199340827098149434544294870691999042813834458139440922727550562815856646312770422465908073546739734416175422634734970050015044423745622145834742022119411026371004119574497315361207884328135489127080995624076110669611988008462564990976460325505489669764290130822675366888232879734657489691042646528461235290323557286115059998378965787692252707500661681973550232388676855720928062054061501077808171197712887669676176667110037465923838469508504868895415376862560464755469309213561516931125553457524894826633775118147180205745783268934973501445627038695099471031521662726478102376840635771032426976599649637799226443672111758848505798735164223487894149066898648716870857930454965543270344087744945564813589511007758606098915530492818764420279104654414729114085514924849920565144334031622979607745451343835087789923600205817956667386260581644066764324176282821148549532803652072516705735935973771248074294275312370937506627509735636729640957031351058331968287283431077730490534040261196597392568108436954077078051841474514134266660610115062210668923232860846913367589935018399904673037482921894127141734665361181670422329568937637864121226890649160769214772539735262243864095709601295630880052592711753960763271229665096077926959006414701456324985857356171273161195585822271267903759853297103442748727851572099014798228449124206449282666052195649275535308451429323172072154116683412449654028224499616782282608495994992813526001444491609131255053119700398653198898312708049244560738304378841142614059368940722855650559729466484675654738133391477378724793728343171540493048481859649030481318889212357084769594081047577639505862032151434169652168529427176729640090259962096938540810793953041487808816125604081832593081339859821817937322446509923537676353108965342822000259801126733842428007841892094946754481645260555673824628643405495912764371860583633271482265695961730633772030746611496609256857222946904315053042446819674374254711144717278699839964987242086915296257858421278243442942314161889139107641750524850939358365819231356570172726138340783953789871446043532695090786578919634611605352025246013543504717101089122229592991854385634349022398613505019254541144428387997574174100979331578718715716328461594736110205020806650825957090247701197633761276447544923182757923387583010424090825966023735054981475761163706987009333020004301694907851697164694298419924606332130172959822956762751911578543248529118905690585760069759759867118173338339333463295990658075769903216882654612152384973509758953926135535258821102319422777339682995936991444741427756356159071020062745158610889996419571435040384180995835061474335468824549694325152352162447882699195175308905637201505068481646340651736750957676186248469485911367136907986087717702698897316424479314780218177593492618683227858460983770150643429166137436402790341730540097669091325811767327600650636423108447482066797600914306569111409865469223096068723675133361045551053488675791737083932264574432014363730396432282953078199442830564886950629056418562924265559348827502792651281478450566268633061417689908508480509380709985685241157928142477493314969057962875650405942534288870442969174365862802092272111618136140641846665870859460527971788740557050669404177782693053319794331877787839766926602899727708416804355809897694840923643588698230553559462285509472720763161277504452747483832189532137668776225079584235805497531578885289232326198663903507993075462928883394201024320252322688194617534532208642694615130658306843543957769579545555706425405641859312100666939125772849649537436238846262365130757106068186994545815148270035004831019921613575954339978690139761773903229420609854092335749526819065117306835266547901807612094533263647705626397537804405131431738500511981331028097803812942723783800475684883355338983358835078749530383834295242028182858413320266229559641626765441480027863877036091585421105928552993105913305121243385738400116576318594178213181228726194325183800514176249020636581795735212631060711003395982548242498293386485775469936445822937464805060628152400902685540818412361412648093130045241847277117057021520658230834831101764572572215426117405816702892312247421359622661883228480379019934098136145639825344327105033886186180607874573581665253094618823747527670792142517825199643434453301474462657648283217051697190531927001197508770912742135680514200731666716422922864359236907786612546250473576354201125146734800723427045076587009266790407699058305525643482189222815827722197434483257602817711301306035047677687032208833849741823213279451794309010505568099163597411952072976945704512036540691434111068775793035259960009097956432759000483073040500153517139043919069935390606290629665296105819513784103362663697247890172981668396859913573837592168475927346606030276098567096506719717910213440166863856988482490893907315839000270701111825137973551339312700530914515548498110866018305199279429455659636807705866417808716950841701925735060908686395151709395487771547050226122316470613047794439495872129808916515477764763379999218442078534088510768547462906683555221185089087544107384889756830410710353666285121010943857788423674913075478975475724028389298795192518184560318992730795683664295985345750654807932487133911723186837829555160206683071443895875121404514327545614304995536475159993893288560408871133959509470507644702351741737690801625630745619177239929921080046983857826042543854253999868288581184182959057892867322489306278640223522399752162824915844158007288014946930851398547511100818984244224123072921802361041835140223466113324496114369030772929468218863000428618518313359001164289739611832775485472861079557140139002543368390605752736907702014789324830555792785743534172816955801484641608236937454755274012235166722784098670366494945030684106185456381062940734358225366749413237005866168332638535328043772233799714850477028972187750296580558470242524111288311671918927772034613055132178391959529053770940903738701027532407963137250364119692936849496362217396373461299679928779757081688702994101232411373259950812347289405369555325108737969272710272488968772915718820139959402085934923182102627960983666548401749423962194093863972915271302656372148874398154101376331395249859382384214992510152251466171823383987603534100910798780811087710586923720071128095386521695025517550997435789770268336039245583224188438981422942988771534387369663843731307197819288201230752210920934180859798021544292970052722920181521851550788355442958285157662041997090148159819521155158613460828196502087528456897132772667296733730223917771693027622537536702825435069385255887081204444069001626715836687952888045615449070847191585915573575422474227486886376834072456739349059185961316477391264141617429245230009198632783662011856503588267830459879447017372449838523973324499809432870189421014858048649661730919718766826863979256297463554261730374642964154177639087523074948555229340027724026899531020955831202777489623550028016047991876956740713111591342955367784942035201961995712374145754129688219083626954926225442122188258610662130997057821913584515491508398748955992772103799345592180497286896454235172202981018256131563697844010364244128469129959120740023260313085696696992228895521016014399173042610590564841585335092550587577451241272153770608020027015862983114538364296027274907393718921543630831598523864182912630311976222727209591194010846689364215943762887032922640881878301543428971616856492365314882182220223862152247990870773176402462056015772621714935152147613512928490735113479306166812943353364773325406762891302214154639430792155940242029791057009225337796975761680659823740356459398698493452181573207406051098499973646852642900128612110518895570866330072937770139958042388738645196226945870504880894350561493011809819276057741086131718249716620007277611542192738222921260930743049023983359317652540875604396241015421916672203155067159373279149651418644077866742986125920585593245724748185641985660658421026193786299955499709914476958452954522116163424588666317355220226312906579762892185952688771979643751324510806976077566325209753184658861638009628425027629039859520403009506023737268172639085276523797305179576863881232898403556136327568979994398797973690176700774251226770923589444357580631928661866913877996784822181431997884743281477202276841819587774044716404563833302762576968115748902581545740106949401598291206349675830766580330441060772733907994600454928966435875587098644468763559852954252338053550279048656118459305773671385919223673426346509893940308563821624398614348154411651973395599814597556453088441366478094013136361447276028120751873344702884021502560205930742718759353645600823608055405213520765853131994190221262005350829127260080505008672540440878187979336479605821481065307044019446416155468115182084184564909558262348800446156970789709329599657921572892413843606657714952584914913827133053974127225582344894889111263189187155803886463643051072353516214427729175013220385250845667793564706984479773498833934116122897383520324662657665250203363345452496738746850184141399124723359353209614657580888521702024994480071785444384925110874618471032313747217765827851737139985944622765386190138503095882751566943310750347193650716464256284262981991227752864470172872561161948108082351230256720499857730488426746403677054049791432332717666442323029452579120604956895643576602198912872816833716217274653411517795719571287584139577079500365475794286190362312174565683068257012557145181258295786701559156659188537958748627289946127233008385684816400886380376333242005710313643332341400542480907303132247392427627531925110063448031819526199801886574691639616423424952401408652178157248003797671008228418186139594462657909485140341717376185396874872901020616320758293728833152302198955416312797820095684884023881098659918669865278253148731457456445230126991649587189241282305147503203817951112347893034145781214651949985851346730929198786515357256264451739935643618686092545097876933311709132228617213409673544783360935710927498419928488984121587998079514352431739289529214586948948758485763802492707003709801769491302625350788927749323842263537619195238193456336895605979070053099060757240171073330487528919582466893494082312800528497095099272573713021509580823873588256147766214159025958176772895200521779121971424156201124212031912419306020952607958586629730463840363821944938459898889186488367912777432806316781356596616703730736112765318104458619312400718203837428363388427882388091860245805063464547779290370436971170153878472095570722665152614632166319869288689476679010245592290624741214406899477242684264704101938075498875534207502416510239366034389725974662917360771423026018929446240518929502571391660672816485530422039810879132111948229497875894091149900080449519921639567740838210178675732574176571217691674221332705085632417248898453508978540022347477987112963503162468691113692973355282640837730694572051301482745197596063187902198137595888089155143020682691438157566916384088557522618067706883018971358806441749674709870214377360336579074115722114044698695756608095928598355373371658438799337828141161971661766333347812530322044281889120737422621884393233118107494092591203683887552612875077959232581316319810026910706125809170060926115821981352949328721111845371157758392232102039791610252847738948265419232605305547221861189295995917981175248359826942956315021911201278336981620961815957762510895514386936970293429455599616527140323109929357394089694033334202180562291385976733126564328620823311427236476983393443621025729675335312490998872858570576340811732702267156452200575278594198302096050726184174525952054134495528043224045472227012312987677436653010311925417024507290128431755196084689628527659561353534665562166539979610513588361144254549369646316365676044954181820342494813651873422439946346405427625368699153730378425453197942607758872291069533097367980541261853279324601431482870912489345092595523824785282907367927416265382277266572652589557843034640361206356764401741188125833986489725838285277048247963123363406053046789388657715058465392627615851044485985246122824598817046011460330078016904908439153560424987067509586181727715769734906324425097098527537478794870914270189938772678490948352411575683226116585697274708882807233434608331466228705355900312859589918165127949840395972091680036718044708813266943652973507280248098055011414637845660177381000315263714348556286965716721201429809776257516167042217321932909709991351361763444112539040645009260247096676228555405640823599672369510512037029211517514196161650186612840017999256124897153013303683003079173004816742441818846941045529308626757904812901786917422649743226325086613622809001287742856815397588590052137706381544335715964244250400444073413115222849590532182105384459316574764467935035849259720685475610757522176060120056000739730060152657575491007509123580219073485395170269875028002377257434752459369365089061418772749391387291721175187228431805161542493312960074822866222119871558155402377343853151445956923584198272596761085778918621316053833227065859330403416594887480834290897432029569586879932988194442797714859846594758963290231368967700150545886207672987118939334009950059322857579983689892751218509460283196078659634721371861455194130637584278761254898163130505245993022101259049568556898059651928240582683521132123870262057721434960099376113587438950458655884583921714648181121741726325092912466375370179429141041003039684069791359817188110665374799694718023021892445555397033722126062627807363382104437111395641706529898000546412885204266612596546872462257214356526168310292582790542881035037912924807323404205865003789709936446508487187337497876790064907037094228174293529706511512256405738651771836726311540193920087698253955437402876220655589646350614447639972566451504694332167275380243841266471591434614809576044794667727652517139592967344367385887765386545025060976709481680886055342572181780726482537762787364086087324527585829816545403194446456193827497856675954131608075860348226803577982915729621509670409623884525419960525458255617953916679358344185047107630646104833657802186200686698508702947442458398981217614442212620080203545974646568542489577063673346974452061259209611904964657869859095333688398150785947391883531400323705404021919036749922813224040507171096832795437597868096840032070567554819580413789715305616170223888028355759214029539492691583103941415825305501368660756695817072074947200453098598194810614871026418747384181095677675867246586256573807717711647304736579128644338917300144699588587473480777242861188112501585684139435266915138780317525123618007738153206039114726760972639958512075056365671899472735916330971342520839713558859382208792721206221550552944737311989953496068033417774134909244603494248796351779231306312677021709624546813101712798519918240612630813380193669262398800441449491915928435193758492674766786261872900653597188359216993173578702141827863881065398268841928612029237153802053336980874398402945665570312659449931896228343818603333644328030301848765443568544961045056211178185101966934331706323671570867819456365636127591633543916771027132865897885074688539801056862603007285698362061015096972492310809000871756022345369669893413167418623563699486696251221224668118501135615272571459262974447270036069864825507039375492676638065338957704917982880893328641028113755390372465667729802804620166300658936735667114973150097111396052660857293969567071536660998755810532809002184035044711937977043708839736349306322987308895574194245721424128036945019395723910609215620949827412792327841618089637903150576641149878953469952800008700640150071397590608825155255673187672805704032378773140063649181953707107707878942636049267674866667819788073474458493225592633503445536476213665568306028878902017651549076237210538582079949152489798950961649108916577808804578783146415245844052342483583873647314745045118640791474789985184438891504382933513989820824040772430189819270607454243678181379392121295521886277394589250233361139605943978792197839981597069828239510053414995765422825560821933038730975312683772871191945601733225232645811456313508219706242175228578691766894735372816470348305726420396913751346185408149700128455908844619781888430995787838189407971080337661629950589868395539048350603442991054464517423533686669641223029086641325362758849960785456597060747259929909935328365252386310916527025090621658414948349145673604172589077422589997904127367906487831345367206014578382834013265640709657841594377545364156482059506359334562936049869130615923669514988187659842143336092055783417804204987319263425747424321144372589884938615223807024946098682116195661872934289743030801963716495442642055330676185398033020376005225139372979781440579688856865638518413163351852275448915406036454772328117746222141547607545417159256730072943804175793969075294281043285111304200395347541198152497657308948552569460248114755311340947361104723469398343809677388140248501406645653641707641312140028409565837640770337948913041380558615713202939122842900845916891972367164437810719607757258437558051908469327218432766764290003694699198426390050720894566120231607250838477433638822035962135379606165366328293740402645102990932209668116636579622634309093638596098660584845595237554490850711913053528965560165970334196024591227891956598070209240405463902690297296652753648679735718947190295192081967584126876847461311601451873163690765763126951355628997019622821936698284867318742605467434252588938587100967438641423506694834447826714262921057392949765328732538254950752114290698082536465175114283565803095351750646554518029778303553514628775971245284814760563037297787049848932874259396521271335048384331558332604062637198095736636407905067475152366532961632502938412724662445600883010756278048844971544008187146490133607100246289668901439919870212679309471585299420744956543736295717654810048928061321440556101151833269657409535231152447896052827220623316736804709691549421368291888294938644559116599901028392110753093939594554782105035060539212186579564199924789762345869971919808486174448854395393208673262137975767702614158046435132622230961287863383314248145092994283904609943197202676775355388913011941072175939698509798286149323403118883897542224919353431287617762644343410506816080849592764960986672281608582965806491676318230563181071031571392955063459622376699177256099107314669017331336941993906937746725332505711768099719634880672355480505444680852042445653178375540465221345211262991342889214580190285004357170989257034683003484179512005347019349398900029038953201737831184235138841770369332488749915092117747816702911718216756980912102000239854622970280882226856422092567653419743178100710496925786955939040032637857364744548391530794884592162368208147029233806807138000066208561524780796432614469489553401625588684335673628768431550069777278963771289489152123280770580323299354136219018428682791868930743411459994929389903746746109428781038795256530458969804261268711893063068446994775388551396481133608574260085519369406583509037120417122343213816693024228347045877799862957769311505730808269617596719934499168470780299877066941907963712114680389313357307726431478956056086536893346890157289600160349818749920435762649008135670542572811857172856386406766973920990796600585207148309294756431747675394185185359271520377838295347423733117498471091954839617539284799624891688031441191341652185052523770002262831889301150604210257449432588676258374892546820896023435596478438423495547737301806772102360720131060617192829387436757670042650525137492435380274595921838890481457884622900285477833836443014878061589582489426435062729202575279588289158502344835106656404465138729685135141697058617189067856784774308433920666829728060404225605733841477457816106015651324702794776863075381150006920501486150465272386171406369932060406458159923097929629927270382468885769972726257830362690763132227861422517931250498410095157714906877521276988798857914444952807886916894568895519717937465696163977118302552259308196756691364871183127679714203854119957058520882733647133805982296815762832995006795185356220712136048462808856402532885411184138744188798866556874957042367860602643300112841279908556478642859140447018813463757550227826954202889969725033315350994494403013687096672071555910021081843494765973363658627344330187524783823615789512106665328408829788877287552291088833328427003056303381441959562341300820778455587512553633029258370666224535091407658256456443617565777566736384730151479462878459838113030489834487038811269433335679404908040550223618346177029248181118691766291266997025107135800579700841486927081037696691844067570981387670764954015972492079439422169890427127009031873629096023223870728512080880729651668042778166602228700019945797944858861434029325640063970775332744879997130911559987954079181818721984836976993251619663332716099500513137742331127965698120131396088642382226380187101183747059951583372008489873096420246612837068513995904955787480848005164667141627648347859491783900144979901767677224058069353342756765661240706044661209229096456478403018809142169167223447854964478968141962007174251346264227466062787447999638043323650528351414222391445386752229586807941302861407097468714730086639011432443359117612577237415571247597088899528795837437175468421292119573525408991366794216204114116011116626846117430430896952288082211414128526267195430897620762776424053453075335660453711497717043788534533886560157682744929125342289067134435369785733200008784342728715138382589100741472099877989820199578758899099967980031736093713223112025747000193927676919855779577559227520600210721325577557585524978682014469366032277250656677829017183058356432897225356545957711931602159792952262102382506731249839834846698295876867825062600736378782372183327934459245938570009409231104950779791234571568216824586532113074585671515739125727445522855202057730604766884959812042692907026866023529273975502448626731938548468904314473589308224694793439611420771273245440469213545955406569208052158161813330477628057481203134420495839995620607773420157846576805109285804032540442545803714273941142683220414462978655608653299288294710114694887162096866571441212154951271047851000300003196951453528406938180390571406125133671599829245183424456591060104496598694738993626885902710350051357865896152869340356856074854207452132313900827801178587311038940064510684084807137403491531874897032529279086586613035100718367417911482365837405335231744596691225722495110647415461738550636036909463349148586497400932267763565167637710781684944444825819085648266178106442229225770318888796139742322787881863814138976216851681096518140610935220651470076649145150299063894003873422306918595370409387626557313547915042962175052830867287360012607564930368883318202466122377624767833674125267284565094007612761898110532979463414354178330261180889186264603028694451897867161528469072273966786889728945064512816581345498940714317202478618557846593794656658577472930636149831539670090010282612585172492140581903280723215913608724973235800011841178875659965285757235398749559377266694558231384748011364597140585894072360978065788488821911636237245068994997574506544412570557502555858577881257282009396872070890105321253097307283682978230435749838098733058225747650985355659559116482966582398999197861145565608105569434495800861931093115825681450841554836173132690398715303819536141481044421670313245774892865053534090434820840776240242320832430561543601865768427953080609246612529950814500831285628107590360074158559157012051605192018063639861919117073620579379957820837850949415486175327628086587583055119544034047930494474084261964955061041992292090975181466532076215812433754248000641959398455745541433997212063423954520872110320284526061929564137382201230821839185863951679362170104806694132515024624315129748207845622999449367835188099591730156122538632972963950719393902194392295439923409427297075752290531702501137059969902667830115515115250091254402431297451038737355832132589094082567001582551529502512059355672872263389165419375052414684820791636157855916129608763430024186100040109200738042172929257582055793154002908806000427180887612221035205464333379278420151154413953894177283644349454022821396858230734150322045076273659460823745962851875724796860342899350777257962572607431028428696522589505838519022129892165012421102254031619616777133659929560003219308728072313701206844535345072655893554014956231552783472765589649600980171830290837679425174615110423134727496770840661699055679823555264747825332461514760377943117013262265550520367171599152095014367135604037274747486445756717747462032934671647498241713765363747412941839079211856040109726773980369404705934232745422972166963593779051766082040078653415874646827599187409112129529703934917600453813519892274105407540094038796365846239905273315076431523084752539649596696188083895364002809855316766189162219823478221266754775456905274923961218438161715088311094155158697102123266746291262064461335266665539883418829121481463216121883643500296048963368170767202579495119794878615044933461260292493338460698158257478066050316350378626428037685832559714048576075309819988060572542182488395657699484452912043380441177367247241912351896589921339194235325822665875317802780783400388567670598975792732748888054081771090445689023575369462834931989977495846280186720190161366751860877199100639237835888412104453781727992875839394933425732307798611585770116097295872762062128462529656797786616092902111876963019558122853697947488939408704408077554012994461986642644158734347473166356107164821322679575308217162042948869117054578152401908187881726346818715180833480259678022764769766998591131914024194890949878487556862323876477686232755858824936714300171864328285834355777425448426276511240173836336867850360421261426810342433038254836574638566380417719796077261236999060222522586405626095031393482607243760327640665338247636711923683544345022108956347832267050181627576993974149061720173398110093533321623956195781319210211846357451422543276766556722438255493390308865102142782354831660010928750103113173664323487297833841924405571156194351372432930618118947650008581549439850397414867080284858300497571910866807284246630447251229487354055896400053679377693026081422038092545665476987813184456048380404296358293563460405905862169159470496839927785666268007447957977936297996014763620630439941419862765957095910958881779780962494511951638003777987708264412999952698457991243525731556044362420379263325069476945940966892430997860357527284305073233122176652764059623022364322162930482903153341057396062684060672583075131977464322021579805263166994875230013656125207722097604018995865329693202606144107241951901502860875657677304924560067691494704564687415263797349607958738066107021688675211437519591589556090445870943310676891624017319369459253148384876519880435931562996434410726295626788230904998229448507648774215809701965118780822409230296259233798051257615878191706055679660579815274858169590845150914655720369715779708681597096633758227715059329085445428908991642139228682433481316312518974937397591059124660114542505751551576186191594088703602873948971410281132938777944916142935991479533675260012022653323027872386197487928437318557429569350266210765115201994617351712432499809071215073162378108658410618091633476953254344319816421189159268936226366016655153459242412012539463196085848295931409473107038349686013807735262144062908714712901863908153665758889121203486057975242341981430517235184629248489474162354628798748758984387575643075918030122360016509715993897507692150325023496063695356266593397649581667849959065534568428411279747789301848029428971537651412832573442173642778983956107229395201890887728273843691772876905383671189922985955419213860783904440968356141343867889020963130717766791326766694080669742301409516628911754933679279107174411081713230251389088483540580493427746013228456302805865933038711970128436337428155638189529672167677799276034790157210468162025642652619839425911243653306293585105266675280965420108573999871043857761435591125745594880257503449239140860895974600814865399437022782910895476569921436256826729850293033852608544992012366554891192606609488075725286867242207007728486968750098376361396740046991122004170672739930497088398678821584670114280069682917316375908750010007877789017281435596787734609158199916274646908795427948468732421418659911011389140954216343427213097305989560739551200612419769690974652404706539120969045374234680034054354335309411711621194687961328268903492861912017288260829955987955584506117116291141386004669508907278841594295675815309802947434789585224267141106863901692443515926339051534209353105436740428676500393666213425966186293411708125858654755155463922966317770279288497321379559176866252156994577619832131836146877186301258225622493033659102231963185226424948388585731556041327121215315758616857302719590381885159870463344286665414271537103953265625108988092317523876522304489985705308025049988262126824599186618878864958311399444936656389603093720793628429302000712172073465679379557783581592164342390190718536409716716414730743268675227604552888259325123599113662193385287005120815481231061974049121363782653135441968376911886645144708171319442041609849610355265904812254123926283843950955950290946421125626796627197965518363885506191590478396674388693722353219939971460958592005902208993846530867546152629810733282783612352551042441283731623326841915318182299167188751439219548920055011650909355190686932211766864648398963300262154829340569981383902832790558419587914407059258495611101285855112037456605292775687414053013430566471618679411076221366730483159011773772797719276639344736733378784759453555355066661069762042934816309116186272672588391461301043770414616207376574146097923691324580721569058359186034570031389960758852489588446475651608439156408009873335091464707209231097027781372091246782387600663176377480722692852127222729359590925511426694763600257760983445356406100262358064964450285114500207886048182701675948498948565157905596822326466808300623374514062345582232676802568927050167468041483843699307352698269119208659030220004771900879232648143434988840571708747722127427611501615625295975421547822368418451943480747970488179789932998428075647313638122202484117584427058109295015079329175046381112603284608181522741667735329474737906495436400272792270775632815289385718986211167215375126228413557251502864167011725682056448591098985912013864557292218033415017864680651289172735949011154230458964478678580100385368539026966711887386806674194699353573050285023964654318578245677508709443926694664788741730875052152082409237280589450732675958267007700919900836070815322158759654066539460089634035423881084935762826097552489718740570025457104422980271672923554457352684224149939018752434558567343957949010880619132685162511942119455674678365024481437300944481578801152656192609695537163017813457368169394869633960028105691583652147692750721601554796643028221641458807817495040446784995128221765807439673881713796854264012277018338848655108508511895089845498549777285501075837022873485784235258195731682039498232352527274300932792557489965466712279447102390043602027801949385143157050866680561564916612875752021806547239905887620338732363509080624022451706942577812051467265224032082365793309148977962713227003509005564328248321100717229943819756117592748012280447505385122667692852074682000779421365699235707047253971362174714061517990361834211474060535098096715102950518383670728415975312172214720440611327803969195911010728816987521371760249573986488845468476712476710902944939263233240242269468700491724708381197012357169608040870666557458095133471556150268434142656259361694911010048338154261028440606306033152681882599571904739664342061422153032054015796504768316685574538669035543619829066767985958361956423254636091353981802989969550426315610089188770817782889654433307708387082676564852460417518617827234401699785059621148753813248586601559041964480500928375014063861589503925641997983549194439920953188790905117699862148289504783470835698333971564572128699316631943168031976299651131239519765294548401781705485567135907420212992880289195153202368481350631902960685851865180817857788180458826527612780298974674380791189564811963156305102832932835030467832296700872356235923978183839669572029934175825179892299286030109523060702382573563422510620217207624908347711759166355621292040785114851387083111489617312976529495638189186952650683056079070575556414232166592520215827145803166782146314802392638906528838643666182440232853585892603667780507305941042099243559199922751142222270670417985015765083410994653381293899286843573886688081377885796186311877069242060028981934827585153373044053080132293472315736037513223810853878727577269923759332584295120189694277468789299694293374340762540251513101964648748164530025322721436566202480372142984990995123809660730169251383777861515750467166969175824686839465440610659397212609196086501983691954325648219478643983592267097234600490658208962626278846515160685263037933227435180296249406207618452322697929728645651460970003854941187055122940288389149664948619706734545643136723952564045099705962266777933203162622898122416527269749616507612347809040422549417010382329602327436514050182971900023837936851360757548999251914298845849766396586804951107437030836963097632717480878735557131137463492192123219190401876474577161578044382187381931312008100456485931916878337613877501593706495874883512762354491468466151914477868916575922952765606486603772233379345481929945252356095028140816622381466834195719797782473916228399450793975975097894364577092970321749113038468541060382328744340023522557034837233062222528461191988811171035181463517105938214548212169879842238729675945938751577954169928739442998093021850626673410075320886291212468891144656085582370264776460739414758823389645610061567043707623336498911267155188772530207011135080517208446588498639373165884267136097767150143846327531348123975722469961674279452711549233446762349999555484489709201183009531596945776009930075410248267029203198904885737549913675272662472263896324536650500726122605900193525763440546302174792184340183288812446833535026213648935301219262600320375698938679830432976967515753225794986269976462370233094673317711256525902176958388701387323677627437608985094960692739291792468186843456365616773946024042436308847819376356066133024854702047670114110521911500283651613229395413085045613692572975730651337082792193276997784255022726870537672054170262044894925241566698503857713748402450599561431547928007979649809722324541333917380025402862063585837567440530800105261023739315037568597450064596539960121348919079657287957877328119319222791692406939344553708259971373816268878821920307669433639209745916321323307564530325424076430968853067886632786018921587100806188760364739388540269351008715210888255783657647839790143720798206372044934251612273133039123028522777562840058247557130823365448904191786970810638907628938899316280129951414209924587995656769804350136412468045838699118620862936314525830954531440236931407576720092638624868388865816558681179693728045625982858715412055108192451411325820286062862757869515779700079842630203567363806865409070473998408512077846529217559443845784841367063589423460678050372572692027800623744581797407027685554097529236344003355192698595619343078054367754028102325217316963430915385198426607902189480203401545261126231944096141848852310706996515392740010161675398710635818791739048107321418550227894940093987003571265176034797965051928669077860606876337814314380051368494204761617585676292984801583230932112086407775496893594564127556938996738769299427396191972337206598040602611588300430587532439136703835708983398455781301302114159686078116938962871459604791940438325247538617999517143052255380187615925003902371854724592856284966148504141666787674668861979605609574301031735405704704667637085301753533833078735550532641257950872408030578464641117570868089989225460289241340492562764447503269503250437393277268375576380157431880569569049802135185114142052738281222047542565658508304412791605557271353716701202082326533296139231751465860392485729117575790948532195242525270793583357136806396720937678870295617900222399260371021198286932451926769916864295513901095097227827536152896192011677842369583123732645009446022688499505398675278365353276178667968600728442249898469329468336401828113132152991714142417921073723493017930402660533919138712148179030620075176435851740744989373362052012224450303245078535233285850639061113951728325859176337403008437758437912479742145086780254682511327455231527625861126113087160124385729417331762700126824524124429825299938648285230248755109697964936561488995198540062521267471253896884803889982129708130755603626053364917230703770625886425775437141103188852970976142368749071369502841532019512720482201017025042232927703939773908784217751779792501603851801005280502369959622933103613924811302452979084511385942506616398307136295290123476701414957322820341745054487188320045076366118851856517392793681940609485358496990591366065481601602508088269593733731315406837826021224459477288779730595784560487706243431951581835452813773361251976664267258332754645984105073995190852223392936232753885209661551356473944964770502708834771837500265496180136470666464785016643015544680499020891849847826824618407886127244533418828285291666953859130786071926864319183446832565461741151237692494640615477053601242787851900347897780237094237599526161368465610604357500272633361925305781447449651841854754444721030614297881208454730501837811395002723933313276362325498811611387859453304437138303483655176239253002248537858088509854450631804399547420807906712608520928225974281746353266376344173715897273629522136814994980365731843596746534348702554692515406485774142774348250903785548044411008077644852080281509295379107718972031978383615785175131697665085729128416445890680844087559775659453483562875618120772521265290877431123616383000711430941837655790158833220342475170596531406041680699851974295450870326322737065228667715928123309811027775536005839544021954273501722969807045898914665739751823149210256880149424773681114854694987749303353698364757778282723216987165213353481335891204290483377134817281606804168733167847916942044514408250054127799067327304836541470542313139262008050596770271502648342112899439526499380838301225749371884814725457613646710539995966809933938124826255405623146842890961644963115860098645802520060941003005049304339788870306132299266372533637571972710330639016600673284858396604184947066053454869482521054448021776666675879616511250111836729567300350739610902191217146109089883718381361877201839495778830340206409910086653299870175034482471156500898606113250959707005742314037472803924263016235973248333613405145288584949150233588117166588564217054546217487993672885193093072014136321114980044371769657356347923813499490930094482697438027537029139588515655156353657707480669398614335728891603699977390209218252647853805244306111031335873116523380586387752329052809354042105736742220933903880652845035613624327356016805246537455250222340617168250376463482675083403471927893992731315614345400392778853957889669771024174520627577707511820709847196177488381558859510464654122440230630539459193486816521664464328905763801130425499445514378956481149735060922005470200029829626993315186311629464122750788221791260995812994769558798929559953300289380003502028090337202668733807522909415731163548676474628453241946007210249084246524563511938674429239437880847157868050202732748452199394426639469803978325901227556655019416359484319831174686360839678530179449864072714881867232487947335420173200849784148363972567859506260897701668616258137951697450317032245515634942440814670640543408880163487452397043732674076353945541085171581614661316777482301936026144920540729809191353172827460763729682148025039495166345627175801369319941623538408811245486926504368259909687876215750308799790916392598189681918432060394349784936910653610277347070672291609176282212533852844760667649238351236409696158642504146713613140808764291164781070607988592073950172485919408056827545689214520772622953884885718999644293652854939178429274707672756867914527211353948492976932163053707936463592371070778189036758543471543278196810981625291377531284434789750028443546972647272255186264854907135002459776505795206183956731013519355471463520713334128046892832694960955720944032424864259010081966413543461106850289415739741223228386841449325813127351580581002968894413984220554859092724524712823371249630968818230592951637931056247569048038255883809791442245165328245848740397341443409115614089479771409211975263757678177977617659877719038646142928494024055629625977513160050442150853259099581388887603823226702077320920624270761338822265229018554243108150076606639640161509363594722130122862229960868324528696970814548865616182852035491079335591998302651955892509859154856377400301577863699629409809572820827724398501717786197137356650059865524096582081602013019171758938715894846332841843684382308902117997860756690461998000844668297250801090826530824825507756310875688536739375423648797918014534902973738660611598227869379485529723168500245981647469043682101696033366650345758659221872444988581278171338428647442308624679608072658599464322750770010090531185522556900556173292954257747544863307707494381027174771243874211264086889399662090964017630295386885314765431801174448417780759525756711842707408187585367170714002179393880856251593094319780851990252277909891245499620516010947941040699103567567131564997986101105754903493409262739533873553425696621206540063299696842370515083024165801524426108123871729892860355287480564243728519932015531538006330047058730787154468723681505655556081364931350873442011838519673075631882603759945219921964382030322657962898831770133901561162636988566782623118664715689621699290994223986885331860067282047610307160571307354234892498065796492585988704572980304405237464936607933400010603842236546772584241175762884612580317930132876742981051762713082363407758781272396254671392050343115079002111528295741725840000792808137645458188419342043225050819535080019994187231591673996241382530171296468576819638894232976268015557489239646810566606537942403022471269709343528543757624525075640894581883613616981931477548215070181797530160472839051858613086604886475132557847785137881619673888655010820470646723594771118698872657780443691449474760293567121130806157694333476138546898401358150662314933751450787400486572983523059250741577341633632847206078266899540212235755917578296523823656153248610402510948685957049647510248168205861747682933227800291729910419652442855113155744168168574590866235700103767247237566956019655229231257468776883731708247664646199332440860840719154957355654889080968659956250477668678887420704516855915673088497698681643864812229788647155933918702530977283895515537682330294327116212909624331677863980785462910960695520836612344041267202165325258334903651868799574436611876204616605518426375000692046389295631693944046796241112764790852971347772701901322987783632271379665947880303989343709276546173847679877440931030628142843840111029540604097569007470270869631904326280065185127030733349250695605836511223871436525888755743845414410113145427199049088688792199266424571855170626759607752228028586222660148657841633260517314310166581097775306504320604259600691205413430443211764300995419698387147465078838178916073307879112181753863428224802151551672463282534202491823696060673302882309736481575938976749158322694532080474086484306666783071233230146071626939652685975306884019064694733803006604329709326436649187180359672827175439105688299681173690096405666919958246849989898385586730857249661348287757369514359561791589238935997526773553860118625136268552953091821307995246183208350118208130389662881311204169718699920417504366535345825004813468972225550450367245284723302631492010745941688782919590109920108469313020202627471652100568189070447506404163778510331720181358672839352382904064286496771175074630120652725451079169885566128812575777920270597726201544114659655630368358398855087879725369944020580688592696209215185235381694690873762401438257194742640554441318976804788590640195370042472082345579787869963607847806089410440257699629372106305357723064625549311515783442360461372900507301317696893602957177508921256303462436067018232103377970092605575601392139113644722338019826091584894786872522106618379503843967319815194401207648238115980348336899796825032588543396194857512710606676611673825994646434370199893556470141204165220864066926719918575726904410856815998774803223022385869686107965768074829365085351641393044913023384967644429871990206588386567731370886334872183718781347146889667168868110573903444993929137480685191625573536618426331207712120345440876894069626670812462598402163013463779513124521698443575749021690974206155034831693204974569032435304119273451894564213763040689978653998698338629366324007337965357600376001460537253048706715601538203829837617187015578702084842716641958987279662946953357718834745747392643493159987509488359960649919764270521119724478941641633230344465553826541148413690118406227222401366398529021796261053562768729811999827815334518511358407082709330424846633270585966762462712842228285562091352683181609412076307890108422958781618641964700506186874955173169526732713758915377274156449496631027986489408499656708323245106574137549822820009141311851808391074800976771562467875798621410388424644605857118757143219447113149754070335158899330010776482694468391590528483317002187604981681724664302333193794224350706800112128332614780364198542902249286108533014260523766987541505021474439777379253234270305479545446285296305233966696557728729118479994460515152575889855692314716270423231316021382509313556156219817446522490332119500365211880369912705237950729648634188286882576094081068891399442845229987142205395415089792594226735408339075524150167380129420426878191227666634768851895671788525210974415194916263589519505466855248368089499054932731604671100541078734992589721004479931135575875388025282656045374492335017499650740559248618189425765038838173217393790275196448405849255568492759252534045239902870120243543565928531558753531436115344516516315994602856172235552355208578069541418897500967656553884134425662099236244608211208677814366347722930945367725493690773348691748221424084691260770222134308450646396775179207461865254797086918920884436579445157066718589252890025104768343152485726255746647133193408365833167311732619150703017403712199813995666581637015850561852653641180733390025819669011563741681246114082573792523709191722330331178835773356810084837870348093346724360834920107837004343783639305514086688386233102642562249703818451507557160220012714246678933206273803993079771773301804797484652247746519511565231308018830101594692554795925869980758201143397629799934852739062581258664113610860854484409987087451837409569161896797194719313397749228374267942308447990305631737771602682561241659657014354288560054157379174901283544213513226873234940502718794517226207713315390764697843609434657384490055955203331903095113778296534317294764760370324491935357989453707891250875556914349176787235342742243483500988603522341299244976642675015564414486756321321443963931567570051093656504528378111102228911935433664953815771068884206431245328765021211648129094993265782440008750522200884217040609004181764299799662142763198646162599914723240206950464294512784321317236436408329495038347801011056981617000743319131016759422238110470964935704609854956052441187443861363731538482430467041177473810911453098193882117066477201718021127251294075877465505972747214899209052119785473503445412430817769324543309565521163922207914857985890170081088027049630721376753314695876690867371000808311630175198979311570753700903389354935783844869009787717211996533402556428739402481568183184512939644232443458525796987409914203493567762819939332150690478905945775604370240179087962265997934587683269894704551906687792912208527211085157401054288079806315922187155546713525693834623339875251300033562447496775637771914351064990976080497530493464241650462713840918467028586110544414748776708180603442438959593297325989308078468587291025186808814499102325035555954245078531101027184349970086537609637611245769756239366237214600012910415398428391693121001894879370790790826551961603480178117348546773401484386769499441522084192166298189282747297220265934592048364254028718407256831508990652963652677365759887885007132986194976565506655550143584215946876547170059296977270320191156379719155284569879659834621953290549977820468413895352558964948996102269280821120242439412361283564235717353977000015451741093306419968144357682854961830522236204533638166795947889345317682715126539797745725667556005787155616785291814703201272140287932653263212717727018830102278068049684602814649527934301216460487634932275534409024459030117913989392009406532497343331923911295997742000145920151993795123338113035670544212799115801154174316554912291873639552372889159249296571965560762284138288442584568051626304001001515154651087206987870626702049019498408510840779190123817965094196134248531728894937390017507466636577554097656575782514103929452618841162748865618507000954993476550388267496768246134246835518921678831890470118970420154640712419560574276574633538382342936473549831660968616818541950032670228938797702184138509603921585155592074469974501494371615111100994404654962247039772753972993777937429537360947544021466313881194855445943136613842661256729688198483308760706681127143158850482356606437687573044051904666543642590987848031728686537903990798166732896335863698784521666146460066229997068722684317457511958782306724733184680757760745179591394889357937058345947734382926393360471054069048436992770471384480515342787112019318149306519687204400158313398703169166211860699472984732866835541638396666601401782030500091534387966298320004720767166286231929878095744267034162657774676448700912244252196496961528783096715181569202635030256081384607567051876006184306270587207172864402767675428070545161227840310980002394869321830165700171966363029302449198046446108064847643150286400449280699973598498560881268111367644522022913184303038677150422475231428583995567866833495388542817722630792495169193997435397269664597014780442403250893984553178401169846899970563850283276531832365667809607034820831388243958236853815228280979989653102337200050766518900104662295798119700151823637434243205680071170580664617799842981278604393523341209716132496438102212317894976352773802697403261660352951242840084465420625580720554972726570085281048739914121414379707091521069012515562064562281812405371591340628434587892612728718576294319259728639130416356202704738543789698402317934927763433405549611558537867697626725868189563566594046106556700596197718114549125196470989460189277472571036779171294639339518210363370735790934414227935944109076748966232870055738938648008261181365186114329945297218008991754297589724079249716006700530468173321374797409142960620477818182941838282558996902812890829960253706919507552279289503187950891169562893214952140218559217871572099736823811604753222328654316552498672490538209515764566877484181670453039474804386764920146234202403330380879197980810902471240243165277771257098000472522949312939094912826228661511553402500735436185418209295912022523192616071682849515941252357285388979536595408526709720760010744313035807414129748010127070032147811904588085123771162810946351736161192908631305334552289639602418935932214375145536087364415358098603838318320991561696366230567687749202997578457135315553305330441302136338031887024218069022078758450750140379329926938066635749702452506126831223237733000292060664837350066456370455570194600757858985182683788754026466055381595898910491859856937120423057214153834671535509821259845708445533447648985475433331838341367504748946930565991716537125519246009811736184929050533919078160776587235828604977149503898285483880264211584384335398400619323335569677148279845445035547580422171518208305298978678345273646767943392650448095959528095507639787991241119153338146346295768770190364463305369252242056750164990005441730664504324466203866935088177378995380508519100995008627507564211055304427279645788213276993286215901214378240974918014085599750103272868966962142582044530835673078246976931214591637502567929669323868551525868243517573499566629928944970632503036372523065990455360074671621878346408782644616469974046221798619679584183973996991334317271335992106751741687116706301236612492614290469798515324432184678633751532902193109866500285878540744367659937679418800490913221153892519594981857385803161997633974838755837956517751200437659208326621928341667742148764452604389623300384597892938742534832878721394472574314473124670856874043423691708455537614924700507880757868011422275445172339536470857254298342407893018194055979959146473330903830706892915608272523772114668252881237500940871527548837090077567834184235363998830521938933495968199767177962974335979828202549614953352169059639205947351600502909649745289143818355673200839612985771520998158604141271019649108924273067610710543604238781646513051535129950875026349622138390885331053790456917054788017128398496437013141843752929326451675564980719869818597583788444279937123000397752805727519817206624842232346768625048319730717839271325768895502109015162015724517765503869895916620097634121489888016689774994793676483324354172445779383628005988864998527292526405513370968266408216905855737769024162605373889215846186343889158150222558014302908869406450255035486747506494499899925351110661414179930561810490735946939433169561682796542435991891954462281758546936258446916552194039541692998297453783257700152037157000924776921663269891208099471844988109217423498056818945696879566174603267339106047005038776573102259489172183798021804219572042089717378423563671130252543755746042873876051192752296608843477794104878895792534023479607729434682036245810437882205117113709410059054156007522893379072892224805264065448620733740646879644164345562798232797278877399830717192074522860666276442744231602389875610514652575388489778539900303392353244407431080840867642343174314434658707874540777450184807168041506007806461433237255089956993483943844084776672299995446075136323102475884542802646425311535116042697798813914451621837448477959478645569912817960666462663378460024424298664218920970363955122809893265347431724351488436457091145911137531809155484599720792559565651363298332191219427424371594967899406695508373314652973106915252464448009698823291570136412463775232089306257189645105545907470913097404549496612810225598691009168331638206115124258989588743504370206330730660740159159505161699542567148442426317755054136264434725756888423872831940443857549328602450663588711316257592893076857232580643039593176737722434120714741599662502467846359041134454880502766378576710456394249403495341161357954076240283217548605470976097806178965184528169827374651101071707785016510974821293963474282167008427622367865726810486629035427469094185286229458286113079706583565338228108483350620563185174902326640177634192523323969598845923708721123461100593811651281597466893376939736552048076080487906114478589856562161281006568434015692825213711257327858454560642413520104693642760952480772330707236144219633646732097320584351897332111524138913507024691242231341604505857129390245334273417193407574722596947332195261870077286166626133438476773538963237385086617734135784093281828188809567222923133677813617860944258265216156529676471763120143671488027455803200921380864617741252208319634836862720835049876223987486887159677382850266660801541396066854243661238221687602321072885149892111461564520547975784145469062271588819165849278402033958256336439269091693035528892333475010653060699917805361111303487527897850300243604503869037179581108184786027583263475802877934952644817313510519899961722634453958059503314813928876791260417193636397130112593712679213866200960627920393211746635432639319381648815802802235812858703144865754368663972573927687959097417549319572645654856798797520384071906868574308205314683660616314817089654159188888428541394532451961455196690786814934638486220751766727541070865267491147018697098066316036497377201254482529860804002732868283592296349817953161974277014248816982832306600154436498958816546387132942249620365831747102479705643714154552281275272506888334592546982194192692700071099212463356910821692949477167029827284175523070392164881253622034996205235156106038813617313984934416678456588972959462074708687907229447591999151427113659803427099056913304493225602808802567665445233771392530266107476768850952576145014615790912157751939506361833877792841177687383185115087235925583969859655496453517478955890263942472113814151208754384768228782998210392287401842560283727161339240922827605726666677412896907989725501044186147097926930611629746385010981106902113267315457705597110454425126762385528654984021679457619336398075796591701844035089772814706085337636911215781934090318760228620875327582249849246389862726129851660215352982014358381998026104937551559348509196673015293645882969186351319243635241133342182767416776308413795526916179417006096302680802343782092279284646492951006658706883584636761300184583904539744094767621078945759073806578075433525648564499349316190840205228598798076103250650715798832746209364988438147785911921167369284803208517007228944418549095764194309706381587358194634602966575063139056844262853384595290436516523411115504642543494196729296218798988457787103330975725186713701005354557974791895165223092122557833293361552425286612400235477701391964423391371712649692137354353348055128827225616620711476890677761467538315265655582417806061213681048588697725986387473054436209040344325253903283478831506202655890093353256608034836441672616070929738314471605428356966545218878634154920348889603288457765621474822300461519473491200478481050849191998456038078898873006157802873944740785958635877075991318482743165784733328275469716420005137355857830110501960303737820785477614839021470555526563282160519120926434169681328036289383907155942195562887801380309094516327581293323095387393749092219226331212207462848246885540039144942028463525354885978119303149834483825858953048668009266875569323831968620177997894818169959415775022228237006984416166390890415516631754035831304918139021472347379845487401022589276448433902935356981659653828540219082889051569012974814397090923439672562261195226615654733622801884753736087822014715315507976817459778785144962085985639557219060601998512398685668377915756525437057081030045751331694720706536106501086782442100699440586871675845310775077965929595280081156930615729207518923651246536746255146500476822520974416030958407153982968044820050070063579345351642773880846974963682204271976288362077457088255812894134594848915659096485980094882780388939559045939584258537308958060185567505639442830269671501202335296817751102718075970369074035666743312051270814692088507620618279646196767667846642313432310031288567250325685325711986590145194360333092646031472367007706213965879181924339179322442630946444984713753353092893797089765740944700893077206270958364286835353821408409566125851128996339991906578739864032807469946939096331140056576473884448585049138006417533695800388397753625503915805603506914091348040530414607171336925354348080343469605436433897933324594846487610969344276056800719192292154717689127957822663027930016924026552413251164616970191493170917034800777727681160643632184106287917924755385584010477880973242539738056455224459269748442364286297511840862373886941954763375900578198583033459528782232179263822049151706094520600943326436594284048417787577006846412649633280730657119676143641206662345852448466424246462601473955655430788066421566683986499200884296622406845098164024807619309054473121197767376408838291224410238240462744386006962699517487878117898640003482419611780710001682223265161800635947420731182641029051799846580692488104034063626203574340539602684800599700472154373663163289149700044047035742132287852228068715357551959643813698617971680381524501990990867195376916183917371976039049510825897052101935901113456833133222801439811425389540739894224429806557301319488357329925674391275281859044515136012650375264323792009565308588813966010121994395058071856649467154966164458723787280645995793161231681544938255621793935114891554645868192763348006901323316084700749494470646844979715214307490994706311377979264043717405877382337734399142253441702567492034607202540825046522683570844149625691312544317527732447410393568140332616451673716679555679551466870428771956102270855703490439916219471294406745434266793081591136427369996999924350439880314974576880590593143625846636939727049387073043931201099712520070672583096341209541999021930374273480995196201990467917340535454588417366384934557704401100517929344074697228003552648292560483855427778605050429720923599020770397209002366863398418240725364794046684920567439424109477046729905962989541228167587164397089856758209744248330457184735084882587190036256896528435401485504855220598551725535367873871687051808110376315776659679655055495375069850392559901743786437493058144910778195432802925526336193393704908869755255906346413233213268798687245616209447376704330614050793550989568187986684239549114858390380374819034046417248881660839637572418137904111868150740599880573905941471254296175671940675533879064059572986111619202996071731218628654410395916768460086945022998131680774421557817422953857658836051023312807200413023327645777216493876803735240560132888004022018365001455046374243806765975530414212084410237071399366120469996701124070360638972365390180013640911285885533260020726454796936954344665382901665836019314624720695987230790656018948451807001045297560539674725100949059232274329330723702887108937413706936310677005602094644334786835513060427132168820548688498819874458941123813283240073036340794575746821970901545597675218913491115346578348482449833052865452724841741860837482834145904256955423279095546257291399945042475834535855547870891525437778165439532407027360973627738638658903757429486831984016217294189084341947491486277271516773777178566771264990776116922740070100145387104697860529832268206600931007212640240654297247128533080342767428074378458835350904075388544701726500700816133071945473238617703921160521531922608973790554127941360907804632565600468870325284239242571429049258335775716945793625374322536188951854117890578287547241317136534184480126424363668250891081218176470533602940353569353484159439133028997672104181423922789776680246445236541379685784852266463713694221312597088818778026119775939801449310303968359935022933413374630474019879554197809229951356910318634078120608132152180722772674619931098574142342115113799732514262592160393158155704286589966202835028384093273696193075161473623557318302784372262972704958643916143595266967755649233160097526081260063893891058819477819726008846683402514091870446304436835024081838080364635950200019346680605165892119840336626363109844854220420117694956740178989601308269474531595765156790003231814582606682396502701055354106817694891460954406129113006888225773498815640598097411904721157085321594696745282059023020545155383091211582405918105879775252562151413158953639642295481538716757191886321220663381242170822511093120191784508079488793096767685360784951051364114883959253481607315008562262444104029483644395101378102604581887353590997795059802590255080073747000113274963797588269438620684332655337756423522525517433616545887593187875767383383684066561778092301954744745595691353207523123886057052767550921213030781201070407447627371949012961896246437666846629239514477794302887718702692890983329562226352517940494940618962538432209988775618729504751516754672582323381378136604831246154132549050898156278056000616455119071806611570540951110376596587623008717357890561418620754336591383137236219549618578374702017478918506975809976506064644151856408498508214161091738077109310127483803920459672505129162671358331171178505950648760080678612410041235450617659296017070715930802958803881552576424031221994969050929180688906417675829691657290322702420881383906491807816645125070432255327208453077158721182154555092000586373325199849302452168429560268029548252652877111789442808803097605277503142635302312709742242525228811261648647598203443905137223037310378793261025469427550083211004810166184679587546046787016463395519180037920184186486276009082152984334723732525136423688348318708750555410133274429685900511544906978542835516427742312907064746247178562952314243067877762950245932931028460420851369565755617771440505757117272625736199376970519349775199057641600229572795369023500555489960722348684393991197712834409474923552750478550752859359202661911438724295609558202883678174113724821264847171359197172138382747302452771090593468770063978044303285579051581383376149334858090044002625199622276206683205813282416777744991030619291873950019586175266424803610543525228592282682740358205344944955938559652332619272107466197245567856035198749102420899810981646938437448942439226027110247910505603749081453657303481357081067027785131820374206714364602106285064671041065313080939659212460195496364691711973093358746364462273871381008935174962556911309749680432763499662877498338922749973549695469294516550644997447580144066999699977646117049732892320007767245710382011795275668565055564385513792155621198451125755165680661501156450892547423479885199705506535685049240803988994113614471295237288777004543341696809555356560672625682091856775499774559181657782950149487570404745511648419693199189911620892895867137633426591674078643578740911863891740761553223816871427477801886942218040931910235010031254805391310160359962917913645231512176973766890172911858928402280982347294537376043281205391271678337090797978368830367778175711725964888702400591922485380774101264764948448281518866253193441107463540927383036518090679639990921785583508256019131116532263832660052166429773941015049243366958797575266789831138083489359530542325870023951098497334665991794860746695942372138854601669041095857056087731604070806789700135347204369657930261093581770728701744730136340634791955554002581264071723900889039828589791509422372607221591145686103703348906800319074357091072605634420181582597571026420510503682535109330277796583268425957785212154136966269152146866370379519961855804324189106241223476891205372440481267002465782909752490213144676194438279840607707237545944446319245257735836175091874280184466255635170324069933389900329650505564411242812179861527097520868985786777800192786858791092800300809560201517515365832657660184581757070992446593584121138582101354737941356440744371192596296842354277521381568397259989804657250056586314235796071731581179768547361532625726584274250977520540673248825626348828734662202805116015872443133914302505476543237391735360199495401698501469646881844574582489153369321480336681145739279557791654653077499929870340040547676995105076998473140905998809702712138278891954311949733659798094960791755010681932870885557125426568974262784444177719223962466668204449979727966663287647812098772399019217544203984524068269834605597095170324511331203864062143114622767617921754709673148586529809216604831325614724035520319628110544182231392728753033005252498272695934023259756517319928516457050611117637798484311395104212174830129392080017475269807388650992289195980694542346099824629749583677808296991590761765272399695192403176993717778228683885297638827166289343763684702174987653492517368139250228463643631064566916413425531054266137132310632461370969291872564900644059924994314172401672025565267266093949608581741049856394059131537028876091741363584514004678832478589043780379026967830739326506507877080508231733650212156523795886743453461431496635058332897487054490216327414077828901963824818848278962531389981770744863465648287065933103751938659558200219689325973848857960686317706528436147959449744887297552519984447515457487373235807763139724797041114279784954029610200218034727271337289095786560413728888786132927863079756352573217302180015324694296296637005453672656628646454255988586849860699263076116801323944844441487583139727362278436631206823513156626415473525885269367353887422228978599532227874641356017165124672705056948267979200500422939137441968783202538521191777060330120091685564111143314622453270711478575837875239119066581247972644580325684028568609719168532842879924460380420292047451729193823751749946490943225598839385279433234270030105866228316730773942036743051440852050325652940043575348098080735578623901323526301770787355445746304232972737872477261651634339493851654257156634508305643695760773794596921216765775704135221629889855310350030609861088921153307976598749880317249040834982708444128881425039758411106152812427889601017117564567237498357754845616440470948869251463656495499271277206661712445736811451299915974781919074823911953573095837688391473842950950143311596940748994929815998816643097525311528872016157863005160215212549149578540056458546435591231984849428165296776487053593811566185756230162118991523781161551809479672814822196667220559749081676117075559966417032267211305766430501989242667713614365228816083499204115532763763773252249536112851106326750815328387231846290706924938236354115962449175190060379986526304031975480814225117512109546179800060097763510586559061815587410613708440291920199958398400294765787086555847301692622407115566134177859988184874563994392391633739977174862116197938710527556070785700520550222053042696294581628186497220379587430515017240635192029937708505248299579535379105876259222514517950843462685609946582529459577181209745745576757028498825762187489218435275081185359322742866752750619716666620245311151352509259549727618914568108013555808288023962074134207963544530143254398365315069905215063897699940853895930924906713136264926068937575455897293662362589385324504141084655758403713370720979170632666224555642121863764134264176971888500320991805924196564200215142690171543775468919573714210097085260264854309856909046009939782054862882865942712056479017569666521884992553872983940149574523965772173575625922309516903095085556760937458905692546786354793186110992766286960085220421597356762789887893839633094635200709516019846649990499463352977615555788807092487613480155455244903604670608460649382952062747688998120948720720379304514324819535822961292405074028313204155102774542363911823697852481106103351013097200442075997064443306470717024280136303969877110945371153758224829036332333203424425493490340184145340192358173004791248082125921233502991061018269825445091348529261132190154325976517477064940124032168592766820867013110088148177592740596775487891873625246547696557144015415875748931048223468759364186547479570797547276153350283223777926954826749813993005922496595405559188430582588298077596012585442739935738925548603652119820596636901568011733010454929120565561095035008971268826977216483593912048256590686207122835176241259548850002396052904269340131118055496840772412953868090167872577915498738087224294770363928393573740959955061516076456695804097759557479677701972485500036028813392390412768802339655052319557897328751647145282805879534301326797980282255771861838845264144447443789981537752392365926503653387127389471489876019173491161768112040465881389557616779944617768537649664400093738026933350746580307876585065138812000816947941773707272544750611889672235717952636988640140491180016863096998964473440040734813483799920236915667420751527507296725976672019255971968426374666764877442012725589665694863266193848663991660286755153073110303093305592215271467619605855866068873435544375787290988346344779759078797922927969356354401462152662717572211915190845465776308099602182414498520066234842484706571018998925203574902581544916348942474964897241517759247358736010182396174325986242819234767610077861963198166351069990720810953724652521556133114800293923419684786916323019094332026475079374134028449779495602663352530651773702612469898488273152113443898615135459680484528391929422969325513469735951098013632110806555769577887846956293894725462670432972911231703735492047484807781144681386288841440854238164622070883009042292654509113134714611844999081562980838085784648667722881430533033449730879350646640326482346881319361026852340148885245218051170272428547852815412322956823730493352126756585833222873340231422605948760166072990011792409327679673115412761059991575756497805329781609338151353408165008123516193416315462862974286573986763334313001951936727543538072566190216329513407777079840131541712331068761244416194192406840178666896398446304647600754829992564044355090161221244758883263355164093566645796099301955619644760283746913999501983734208050465130724276387962468640949510903694344290513263306319075892986065898115892302476443488026505516050079310042438625887805127896698381990797798189586923892109631621932390354516914455119410416193895691235725825504850677989773825840656094319070334870251494827545511634902940277528755330721751903654982274397330146954378527066406504909184355500407113946434133036404653854093218862029627238785181650337434609511529577592752138229086032448865670632039766842035607908637600983437459030567212563552950301855747769498535442409522127543063355236413933133522859588397405587353261794406716268776546233457036462023450148523982734793411907845708600093739553281372025350078423085578196832606646019659358003175757740048836145775122306682890131771905656738833684228314694064374221613621648088156796303405237043597298910615360450532645091540765445318061218168602055866113702405853309307269126688806842325449614779251069301585353079121442644535038319677049833202074397128647339217751028946671581501667172778817146382940528096797363332679270105986070777772111429304646535067728875873927212000219887348665899288384492572912871557106005263009004727773120415661024142619141182616148094412847037597819649297494380139697743490090419631692616502773443550190520672607691556820406952393943577897772664653849405136387248107683815707948132054188421798980462428595601116667934479324442559502112500506401786766687940335963319247843739915982820551312268300309794839648304958387043844867586120340272323462483428535800841514626672116864559431789516496653529714906584033015244047390747683181782360157497825917574560543196571448625817126440769809243023989555584750600079044980441264331270625790287624006566143311724193043574293888907018973241956042156132586858092704178487033503410356519355793243852492400240105070254207265632008220812971347583218319884875421348534174567598238880783157532898454203168232303011883944735373213907004492569242985219946832613782434962093257809842923959178683252368838999491383171309884563769634121450146795660769658342394883433657970486782614679236727966988718897048688992445729504372725558098670802144690224572786385953639136637533835483763960181381536216520752339861856869182730601680033649913480664495210232503186565758947142837868804795914440813022726512209379699450757586713883379666118426350140033210268238799397923014741780083828894271420122038753847506076784793558546695476297794755617500936340226798880899868686366978045767746219215634676793435798980559878292424842322538379089328616400117621937375209634432999445252253375261033441238655840422599313862816721275130648679669407758087697806289768065771719181424396627654382196323623760532220945425665809489345396841595028794530855777849249417565817675556775530115862883095393483540690691806256954634088368980334797299830494270283159254838313993521534027990194423138215872054706333525931947367554933330880428905929840784147156966622332781752941706202192764422095209302565147693346430348939633487444300563816619805462942936433792709214297387943542053384810011400333261841172542080862165825755769545376697692597153880789476438047024351479056611261367654091805213513315365200773773101844417550043307968247333399458429851992327783139234511232453238589288574551809488351317243850148906825752819137336571631517337851772866032289057728549405656328649671475363620402356766544736374225687623880232168876901007213020186103427772534966013671203728556367436039617808411760143848691373297847988642203880212686449705268130117506453428672048683176063083072400615108660179306300177509931725104512021824470111230762255619161755059721894210907820804386611709763113718214572529707706828463639117510505349437765831735309753776991827948191226497565585607037416520188288371508586885440505366152000569979041701784170446986570436144740309152031471740308650814703205722386288027702578358876104790024591998617473164320503256633851625926237167519588220199619675732097774026741669299993361559263329336822056212998706927095073150631382849254217564882670663438397313269226717280182211747441040468125913221334766988929177217279868858163732433664580948340482197073583684003539055094061327356102670063950610110560512938967590101548754892184534848579269261938941278661369928441553355748779821786258128946151404823196609654602225798672085849239328381786918541912122114101660903282421677844712818344442934208133358829136384250693223653796231867733214117186950673086505445810349562576833442729375068225750748946236404517857052297683515503155382008050068943028805755268240237391874445513800147282382227086050086781892909441735171973224529338277324609297622569960304649709321404844990837243476657179306943102701805382026258007919420239767365448720133862790820170010834099272356630568345470606204117934912257748222666496765230543235180592025545279875162312143750977797043630976628968486511200763223795501249450878461650627893653875260845886410844684089141156621145286335615463603514320213515385639143390651301254311606325231441591715452261320340185989797664016352159093363231199832446589188128684905000511556279460355546521252204552193004238237181404522207708095892549451084609148903079894169416249336628377205979635736555304715653830166520705735802869258444888313541078178703671291760297697364283925133344497002998313132709438720378706779306835097418679879242482668272105414449875129215735931721630719537433356444433510680357483499146347372242949645492730645110353593689707253177386186708283574353419647798752866675382562017065038783265648488078847093801610718777205424755103840764358641732248458038349854042099951651028593670139428954017638215159403687672668842002255220157409637567080783422495334194012266697020046507841848975588551655589179162747546101521957607759345828283730751041674931142162098724557185164751502276351382280887161440724408705382379931145726687255044201984638225476031281965576171925947386511781604385989348294916947848483307578590893456603140462370105045560213416817731270185448525127788771210660535935535630923705117710686931701787334099443127727887892974897060662680859994878068820283491851067551403817174678164470900233184787761205779934035800508395005848207855616066986312184609046845179991519538927975945735589174981441906801074436318595974993906720038564421642584505930590504134660758270585133121435155687646797420897143620207954803743348111800087289669082048314439519586415427038297465428912487287021966165449950732617657871738188913620336664753234893297767696758773512873735277466458252519445023043220484124202835063859612547068548397073887349254942746075306251033633181670561719649981207948078288381848265501986969715870979517514633358868899813581652042560320248508460434824015361631817732694947344921512381359007764138683810512424951105268915008965803529054468147794111046105993033342746842811904893119696729217484136026299204480388277169974946440811945509947146580175785873413518363260300941152961747588527083408114476279730805417924453896785373582959517456604103069029033328848384563776417510165584725317206821946637199227463875764064161696790552314307198382877494820090083133083714672600134990130237633797689947828123650405072606935531276046015040815190754613583303045849235456037904905371282333306670716254404456663731096709336253036017444578712638191696299567180080037854015295586658154004920935757861625014628677013761432453725082083949207767888919066519951209739275939970305692167183035606733304752070982733879606372503881552942981217566396599443852077136835304718203752036404196260417141016452303906199584741987251580155698621885383012233743309876905915843783760025824440004140776368138378223441279987509939042391234837922017330929193113326200750532650962166540564304056525415208527863733127734752173981358018077797877739829050714164382223368784293777175424623084571827523281177813298478751420038813277914789726536708004924040250695888591287005612886198505159564980579204343583563861039316804960487230368127604408527665422892308523578243117293400312185169764574530333019318407326232066830553089255213543920817240469302175045663868025091591049938467887466707228762014826555537399502868630114022116293775905695398624659322223606461992811369410393756621631411545350543644769182366299906376621736125897843945137426400430134544283582444480339814042620755390792133857543666746995629672740685406174877905458341693493439367462979254458960823782062607769591009182165730487334023788909220139924874033272746173250353161463639517059058806901467863255665299893829925732179603407526027551811450332850619309152974554854811503722827147889266763892280808958785359546469223544574242157994692576641976192571351633104868205132100030214287714801192288949257422360328880412892106054765836935768030011632975646484771242781068592305548935160182880175154939828610356519217385493886810600176415342592308961208192854860105634584348025676332845214099949573887095094737322551554325689701048338601454389913742848733622333042617631097722923020916992591480150197270707509257779910558442968752282300852505836087249016831853223041698701988487422410307234114808317293905958655951230176706983979880056394375059696872688704215466212978417304378101597144246402489827561047826098186242332111158722113637226966028237886423123547967399999099429006286098705978967990771878032027920759795587361326946185441458368265937017435365661704913789390429395943214325543385687866435561653213618593299374319540525011289193636114425577551020277284851497411403401999566557329739433251814287697108465498199159252717946453425830626098897557751954162786076388977793920195753081469445816606525762821894860720465533553386964377024426487667657606646940007321396181189836523068978454716057441068768099010309424018986305534333262676346126783980579479886178417713804419669490274928014640800894185653256781701188889178729460564037966149313598864423018001593347923246314128279551617897711408632034162305632481263793758451595810824754341998267076968193179502099733420188843390686923285704246466913800169898893184960451856451405579037347706229125470281564121636492407633503045261341488933911130763486840392516632655065127511013009194143498004211276609312981855499592186512068771661316471878908238374899208238311169831721887741895190718246032608290504478362019492457926382723266889569724700161660388199441372026737362702076775161443690340328115633810446240215057962306239711357763848444602611305662866626160494515614323108165697498974107986518935510919507907029386744299457395822026450266742972551135673618879700465248700653752523605958145542725034687622883328817403132452443858585012914218823062128752409891611658259047520628436619906663158805319325325760343254319807125119779069579158793173203974340272161894735127808249775010134025017540032662907212045960719650965990979292049285856386919027515803411162591844325851471786882599046252272665228234235113847928519234282331384246221501083306774748212420655766193129400016318344857246389329846439906515423097651891073827563410706783872004887273732421424889960205932585428678651268517620424251107364300097611672391270819090154148633064803022800016472885919820561865670965428696556923214845505160558539988519396524744310136939013235302031631989204993998644633163378173225866170517454457338891681171216884992290159372504168740681223042506561046951550689859001453208712818102019787550765038104192437548964670953095572585444908679995665578599199678879139896884938713893928171070441390764281955756239848606804437169839382790520027615470112492925871250401478861941268122621324098725582714678759453344061503162609406557487354470330557289145706133847503958419140985252402433223312659407939726539891922575453287998507172894803955804855334262639118052469496772115202215391316145816830372333680599193754438635585544192681600624755278086511990688368718669733306587586908292325203491579593324216315371261124453839962827489612869112697536939295635928831007092217581196632679283678736093040154122821282765061756319986896682235078108330147729338540098572468051213026268027190596778063613370150230146135675925005911997008201688749853604310170025178815356712027842975071886269520648183744248483586598849568722492747150734724831800914311614724732870993004869132486175927047090116281540291666569678371277089900896399584222494987199689291007418010637560676236491681537909326056133475244328219872022258693830371736146177552186409786770813721171711786934134264204849398966895684407002347646068522589599488473558421079544252817174623582672595222247667910895353979889570400088830611177794239633354894997157857323742925778244308815936323296141562830938782956859157162135830936146802434236873290696400146961277754840144249896104112829050191944369277331315557885421734931978519091085041345631237989095263114128191959687978073552297910831851125008762609698275712867750311267676864833452877134679222554777632746456751311399404413453782966689713470536770876956462045089664814340898066396231553446872962278023629024368837840318791165399245764795679611324275820450682273214814030006782540520442457904371449660961937752941148280962180217474593514744631374283924644061056103595936188157102979688576445800626033610501808843161293536890283965580153954898786693532096000236454186516854913465215824467587469983882575184034651823224916690004835891055762938381267766207812420629832499417630099412737418872482676765144569801727031747368342926348471413644105756046997715618017190206605181110347878069701403361876515137679157311379323377073764364657009725854783562355675052670853417589803928395811098765518529184080085438286920597402915420614650452992345531621465364377390467486858891303167217924351629213560656097331406011442404375618474033645787896669158349108992294686668902869763059106508709831486463828144267178861898072446366391943768444679607570366074229140189563579370060297987306655244697926875476582785973412056733133306592371167992983922894689299399957913286198731462072413542724670902678582724925551670499214441814611149840980539857423713431815205699955785451955204380025855560627491080363443054192565018082718132412268896281203913245745934319617387509374546207591005594349992831316679163083273256148180817809930392149509301382264680505306833343557373384475352993888556399222800267141223987106972143492161093038010208483164263435841178756171753514247009336653211830470722570297002669066967431022422631036282761794582974240843472649057369575846457396114492787983638063955015928138564457186656572030643264790665463586131652537557001808004801892996082290926250209997395405372858440724181232357549367241291342601147324676306081345620228875208565758719349376394154630271974471116767509816129032355771637850110039869661271690071249988690071717562036847740841719693593247457720152843547627544001571211808298595538545419047840599932104311035792892495685379115431181171101341092896116745657723806821385161635209948040865144422270365726899079980851989712632384949385683612528023852759139658358300005817562158376042514691022955783571721955057286398716597817318183900547313100117565449940704764999504637505764604636371216103352207933938492924408015177989427136820199603679461485883933955938907134159633454217168943203962572581325773016274244544946568586486969733762588231552206232196036863056879958298460364395231060081703198702050793300248888711767796250973422485334938501828803694656942548313294693647919275543350688089330282266135633111546626267387611463298295913540998909125515720186136022584143461829687963111030634731773625581114657036418423333014150197411456912905266851515446625314220392067655463220104654917312146106160597716560835923053489253419291747093808314649752829435681850147882371679220768501235164556651378714165905394933726162524745240351907385406560564984738064204171885302031269824160324366279716596874457027461720011200724193808476458903379666915797047159870988938871015009963556497033620232310058560283738584196770526778066808503404835401791302696216028586273856333714930314980551612502000608486650076523169694292212650343365357222586389744951416721705910503059990006329810503052476662852566382158095382235117907667227036107003300479727364728145417352733630610457981008988522916680219319556944234786829321969096667750852606966967804293710499401072422138839317146296367625832780075713493279526018123317147020861443372648079074158178055506638062663180804485705492015531034495004521441044971103900876203168012060348875364986156397220165374830191002779176399400162473457696921423930386079810740239745423858491838730890437521420615266498388738554964113016514035723374302923609682990289498635580866143953091707828908877517134628662714188480215967936318999998455523233337821034852724373553319652512132752312153679504734123132621420068858666513287668721801728184761986425541594287939518573183422993649332961296726328949452406109317999721423207728602697768645510213462988545295183499779652164103998727179951607120739028424340101627238394170764039922664144240271357080273340037849513176897768803656250254747573022014012978837388234136010200240619379681861351842828820456128502143924362755405440799539670449945465058690479449321085801382336694693007986123718829854870351894498739651783494488552574829014809320385684357189887383452252861856592731771452533962483068926254649549534274869493689506190404421441740288362399519429540233203733142227598643530577768342425873669654453142308552042613639701944361754323688143645886899213402660975599937587480523771717380475163320827997422607705353120115453022736013113489037355607466495183953617973924756599638269520169009603239782795203326773378722267507195732947659358248689860431256585243218640064758121095560600933318310037581857768676795953211603135246884709305308224098894484759808041045585544403830971450340033108094751503484308659963465361283384674923211895728578965614945773866423450380755085134031555507062875987594289509057026655771891540487898452965283415843895859863682209607414270647471257332569544926597514852193819663431889253994884638810063699261041867269273748125969978101078016352222152379789168244018844998170182975284206925711823104102560828450239436299473621712635748181578445107389572376211088197158914139541631449669919229205620230743338607131169813776152227084318124379075916691098345374880353875608711825992552548612805112878814458442525018400516970795219708614520484367365871170935832260830076002123264508605246293751027277865136645661611743516075796761395994911360182692172106516206791854596536724217834518659362308704024911480876006661131011500083719251477772882705752917786525707039603894133517188293321681700322693664847541564186483623969886949043664906265884136053967300514078554214073721014399521581610879577242687360578927223803509734802994761850986094310439684965626457138306040705038354957633595306864258149067174665418668958337333341089868180398255073856629860952575679051196674130563387266154705614273549161412339768125771716111373752747961331856244617428249663173451932299706257656679769215765457417495910071897528705976575304719086897587917808821679135459206480582556294370377475275197429560398565305618179859429250127750969354325289590423185576832750800399163476971459052882687877146182170803906540519946200257796311507141026133191488908238030368000561646461462721146264821640141141183976832455806156840583264624213723007320584552563136173688338436673222054811062626402178552224824359107898490915694409132923623438031105061495295472330513451058345497534169726414034031675075462427899621676303848991387273816781118222749538095419241301284332658886950125576446499634960359828598851209889349062402400117977694124937150953935390490818918190670729057196587754962130904513233518998073615620890113621528964150759771389342931743044358069865964981981721572833540918705935838759111691048628364944136437210304202155833045509261448635402492035665841066260863233461951498978317103503604484011999404255744101411479604442003686433276771602343674412917968860987257530103469305104436303791969207585219007989045627775606599864745322711699040245861466607544160987657331037647745390551110198665525915836182486763767604177620822546252437013520528686776416027321646037317985091628333846193363165900570731946802663089065718312574789202131103346594068643552903190634664237521724722767552316476609900880513658983736614058220304819323025191661025644270220740994570986274479560273133651702855290339081456416876339372502011294794433849840856853237921072183765292495468918935917486141948787115368531505574940756524351277423402375274865647024442256451227151163316790113616094520567806759616070038301538007677893000818967613978277646019548127015371005630117546176586924940528024071803645738326944923066383862253902707532985756364814929774505346564138404677801401767112162035010499841639575809365041220352119829230752667056553836580219193561099733357728441925742703068122662013470233278670959110917614632167287398179487947467449008720198795012437864793142986347170051144622664577526879725233247033475701502617707234892525130409614259326786737308515511724728968352066800575956657116146039021358086859351234924583327175347894221634797161288671801767127275695093604505303875299097911424388223215933146476034418808285665582828267236471206992637783256829143965825316367851280757715149181029382351142576893965603390390820605955499353686712048801279793258609988147978763548411574525037875230167135189775662591605528547577114840779408019359542967300791191750934616442655532230919746980899735815973590227000273714506575654215403121158056226798838080922510438084192123590430525712859436771258428536498821563877229802440855107911535055040538366209390016659444915651724047110518566345223247489335163182017652597868416600021964285983803716463204699688581016130148117918666831903079930327181294750617010278731223656573765374550035614415227232815525951183575217808909964483469720425585383176551654213346977165732173554593299398587821678913520697833368125682003575043557231580463168689036909651784196825750862595614213697954035591831825262796422886620968502652171733231497306540010616128401423675969957907482002322413622533471032533374386382089797091107106179807940303643674413532174396180345971572394293722643290207986884949881873637574380436001671189355919414044961278074690475471458011867600359676352134191565458571783060218170939421945650307676084735272984612056214199228957800542425893526728400923339413149857965265084185554062569786985226775304292131462865693639695900335380969236595623702497374237187976054711920121916852149474552039722936492633624458297971899681796742168697358422185600923758345653781152340729711285877869458026571970998030438687193901203004928969786809500055714347675617474114160352806906846270948965894967902931255146765637843038707427788176404286325230007570921894572997029249470135374670933937137439731629423794074923173192800894916667160205930154512266670248589691020594476872445561523775947228647339674018795849043548638419362047311678621333087434951346219517388759512229603244246452090288895546359284735585072767168773887011232920837280839444577630896624352854153331080471102376742207869978007397546163685928929157817571823645289911666067771435980445718347054578084166083226005196092933236371032744605392739463546406428065772582137518510687563896061668916617659794696685507469664482817282172871085139517423868516727625122040112717463095452124481888131973430012684208259815419027312998236287276499789586579947643348132921042452173028133049616858860134917952569568296722646466076082566201721389105543063514816249037619212227816942490852112251808385866300861736980721602039056610228265931660680172540545617574622844383817617165997510186569530381954638354244940434388581389493978078833940876442123981780118387218394100436811037681978275882976414135551838088313987901174720400932415352195252035675168104238091481062486206560235266018355559473550366295882623503525545975350218535180015011949785631911667565413890225318625171320907033579144908784328537973818033467279141671410679429712507462525375943577934717608078378807408325632242047845983625020493083026012154016426687250666023081356631518310065112493532210624111007780318972062043359981199573742306498131114209581824832996733022156541558362824390117826516834860600144190374008901525837791852748515253156468669450612808943019546226351831526419949090395741347258612890560422008926995732783615293484933729317220352169545550003197276286580363553622142351802597313984845271351873315954840358250192013283723115843924469383853474578125289923756334377660954748014175006122085496829082092908168951005438694784964464590401309467493829798204326794311216662033184493515691484317433259755753565709792957517757250047396813454189113100812212639212283713344019222077520410572279976074896355694512080712574701856418267576787395058737186764171168333836473004276855570217009470945772025159146294939531563727295561573333488869863525760657394365108315014567715258959564080443544954223472873402149623144257120556926506214110538364582677850367093895577692217765680458364785120063297174066381626064215609661182119390169887247197578562078718885131260861499774592677162525851719670131899278835874597120337990090097222441404172477556309577505989048929779635830262346240506713558050808880777265306945062744699605845043639083927204596745552581571319822003962156510055533058115853375257764858935461726560312836005429581669957853454079306079095652926026099758499685569602093364484440928279028984825797809960621116407880294836739834558583698945376147794103625927751419854996964262556001379465652095411022855089459642535677707194394632650924575519501851683904168061723311850287284194291792583736500228299938279851406449849267980573632651766889126828760022897287972827974580082699385524382712677808375146174604373554349379225860800460045358964436353811026861203997105616549050744524591686670474497102239679366437857758010278061495104623427542910209982864659723079214256684405955460578955876909498353139587211064992768520073525540329751836441652366002745197187596719410459980154233442136233747405608486218074423574942966126223324383468232060282997855183510177651349157541670340946087767465106768282732882215029568087875911843859553862984586846594852341623705301974563639649646795770777358224031228351293711340964629712299570950773543283478164115438378922144894102602742331472326851933529965132682048390690302094474332220637197826936358007521112328856963515036124027325551766168546786973271268677932807043470710303381928684418229914631038285633948499348870168287343175603245655924944192383068948394203892247937137320146407636107626097269264985864516896505562922315004136377650315464530103846354441682197945050762032509452301617618555961468385948682782724366553071819856992374917942504947222096542340751577223584936012773943107931559124617025192068231489935417444788288754909098574835408691244135197130913756954608314549637205828422912397459868589387222597797848727479042048339249508187962612559172699699071292635621838638688985670779334099231271754069541561971787051200176597657265068402942582778647721826897663435243275220656639871306757637533850492498218586592378409958104241165259498288416490861182993143414970790497846478276264386994136731582273807751719260495129576762612685729364650374105462446738006633310713455426927907713010396010714135636331359664707667509894696635896310852466594853556842775148847412506515700685881159167215680820223561389013496612585404975232303317803115217595131053786090640915584911864226888159969496222296126235155987761193063755883800262963025311409099817028031674224074061453537706940652290442199181496130507873720032741854763688369100895833487333713128244083355581865276694145186034881917249554402038725158487951274093637944151542923776915980605432011344125380509891223706961701995286637742454952546344522579037823819449043275457689698077814247707469771678878218656461316639338072165949798120715961593010983186056640112038662031988494078825276531482069494151803336629114130925076501243392640792179446287087620318852756309401468319570036075087420442251845305707044218521203797277402250689952002927844923422196809842649794068707795395604040210611901283916514860777765603956343448375664463842065889487347120583894469795816501101811772342177955744221887447094991378905929058650550957213794598538612198754214219459520688582905191406497483414136727625463235397267739704500599456997079848362134201832166447892155230673780248211490641351195887390086217953158761606325661804297329569859214916492804104190060755783772465806145316442161717277776372386577759169910747619852535787274677554471383384950214997190459652379174766452336774513540893763602903948585724482339882616654563190722303571700861160968402892348557811149087862433678425922032362188822660091835988009054796753456773752328119336353938787712060791816671157677725725606567985769476398809490762750732323074230424641534385421630696562189959010004774450100399730776087800446393859515666387308477477516399278768943651681082865604660564538784191368174977710329154582034711246122386593216878581520134266485524966648404427571545502356137971049397962302199881081444705473796071449514442840572513620425222975270943336425081561696992176121819979184891917386399231712679956669855136747348639374144825963498064561356299928388849673277471717379247552545185618152414233396434502849330424781163173621782449369836230887675992757346271369380600155854089955934878247295724678976745741844224242922983564166385911659809854699293523013626121446333605085338701972572602512611932979817885633172994207427188463087010293780759639411435556095027881283833039371905565526923212897543072698989943794612123318854199079414067873863262732931006026575172284894401191062119971780483413380839834880600272533805390249788072952454589655848844869696900493342964055858532002137673310642165144826234972399508216112487439360378341007284757397935065925178624986254194896701338994776429946663237553592078654475792737328890272656770059208985282427489352167425391276344625240984056239100869121470505434989528400086596852591424278394915428506965524323015711338056697478369525762683800159995490377989671994328158402406773930622405262713638950510787859481146549462819328982223234381417652885910479971387104861893063825170656880764739103819957058509319713009192977951756425243977113394944683998219766265855939529475714139066837179819091659920748343947868783359641849114634099411956414955743606180158364739934956616589859773049433292163733964489627171491000857177148319641611663710540110028042162697192117628569948728840766913102641501394660832638804688475396711592591686944133583739924853974447557837203650769161409675244940085915792404962938237834847189472047211077502094765897972398280138636891965255037563831554222012452207781413611676476038910176605553423787765510015164454656936634304882201978321189320277461163388528392562176204196751924697024931718232342720062227919798322462379812429759349752787375623485127996940138073730046227709771539533730252790622847072661753677413621506633942898953632571715739564189648778797370607163219152866182628570393107540271407880610723260047886999177747071003708313057320344614792730525342165520934875707297599273001011650191831364893294540147865958945020339135717595591555705786808425577930329020420187244416495052291690661538257255081756590801544178503909512739482571734582603983370040038117903501781541835448057497480127909199144227159262619080545142662496462664668841306407145886083798976728310626912174016666117012006793143412765239302026202683099250902999078321792342520804473100905522485638402725692902360588272759589139229884294638342747647874193859580180215450516700736758749789545828605796037443373008038584088215007595102453885547496015298211182548951279678781928494184795289816420820681183841377687044630670888717272540884493073000105278546433486407464132747733927949812479466221288901610403063696758468470464913433949017970793680397225689189770372741802233169082265582173538177641947799643409153141503507979098756142160320036686928658887440785121369125745032731202729168251852772310861699557287547854398731350445672875576122214694813331704826204993291712889159610646641796953547762992382740826487623072872410981962094382102377506035939530014815269397813330393187928108009540351793514601939474671116154418552109929266318133408605692163267689685684256600944334556399729111559315390832563523035864933213144366166844469001661927766866013630771353996115872068595170723563060602167107795763381227618798199455203721603601322696114646302555543479491731848165493510470812330780356383928055997949991155025831805996527591812129767541475908577899071242570728841639537959749643938687909479130634720933584186647739674336805452913991169323334549126402046124407826315104738014718083954192782704769730405351091101796501762597988837808124622908932443694291254226370990637083546809447936573451370455192243825679188090725805447244530689760195553394686010590802694693486143011184144005978210510082467592561325268451506005735289497749702857164279065602868300939216946771276361264261401755602598327176796162755727509344364425248557606319685688060566717809088543473254074786413937914320255862172010100261228977137227988990235621556384055207161751844372612209423273882163184895629675987117211800774658976590153445610924025157185837475532064719186476860018362277079517088653190651142744452317092878039887974323546114082710174780108057999552872180092981032472954777583352250319495016524282866752614482773804026314824386488901507830254226556980701310449244914367423230978652107656418876529969263562972213631535611064004623218513775146413663803380397948844670263417262367362577483442859703736193059130235525142572636138616903169612601840962895888605566570552587185805401838330331293960785491265191904052286610920105684577521158225299943771252206504303742784986249545532441908793335271459431187732729954234205045017489054021323524305251364251814633759874132451979495979056438136717116350460718165622965225535539447000912355882019167184235516881375485756035276329091523478556729376638919149262659084381934838289499815948076702874971580422245494787540775821355737169979133110545113344088955352822683451968448177896123690895843848540260005106130893567753091128559657541722976622517075268585265332269912432509752921968626519639972489204565287810777606614289630478120801842294083151811647598353344220162829735639961009764926854931689078422852783801217078581120915867299247529692683365939315628874839892932229644155341343307808821171961732047588733813821796119924428996595911740748283785925675273429915153108546226053526887994062258533115156087835732812201019183620064029744698766233993791938132070296604603156273335105945759172229273954414065997887794198761589091031696030973770999584717000884129481101247794544085739224743078392521454888649238944338474684452336795211220160898943799225820522442212636511210791801298538577100011378581586847617359430621514997086583022993315373768650617544657514201967499195733025319518258822996060998462399216793014324530133029486207659668797455259844162389646440844372849996403576906773381984712240871717221175743774484609323111265291222588118649210821832599044240192935609147161653212581108015456827277721336417142839146605699340515162324473623504882427791381939981880349221407127505181253474874986852968442599153152580013036132407171542379052144118937080649314029526897954109868774899140587530654424144544321308766654607222727417479965671649842284540473651717773958366227063245615738798190856729270884465882903886409434800960484974767613484396232168213114724106095533284007300621560086297415120237141532975337003567661065157211481583437255171437315378663918054068930324679009676099765417128072597276632635671727445183105930117631508275018850671563801836088408186558508578849566264944219326642956596936454736737124209706349568973410715616346225780061575759811886702478128139805254943102552900225515487398597546921332940184975791022740553069391463267811687298355262159214623719544023853840352689540651060083044794942957573159630592048048141303215797329734278936864734640413734223108294546770255326134696939458646584683818202716971151021236742956464157056502580695247589888052342970053693699749068693366569065736147563703455751908443381103778988398613622290406811949415976981317479338186357470433804747438899825368088161884541523275727761477653565725098335754880552613778969062808510532685788072679703640925467154692588508111757408608660101983645759169210660565034800657477381404652601763821820298420835066666766870666118738513782874022721416346987826677973942996849803872114837780362623487713538908881503737185225995502414635500851070323090522642743763318329158863434413120207986011124057050401176881884331223498118157875469843297737307840074278065147021908298670800361357215466203387458851543682130378274467332712930787999351042581009749040651619050122594311716709283403136588577867543280575556104516815927952241757241562710568114582375596064888345343114008423497395676937122676793146426476038832617811108585839930703338560081526191352925551675148162687200238203949597964910225989543459328885618394650081863087682973092288797435014079178111430000617035154375972618684344375055307956703770969287161534575463873595382684580584604730706928458724256573774219173795655586544685722575761227516691588787201717145607672915561102326598774838923520917754025535168602432174176819489878124353886696217287375524473044419331752080384038319753553775053615155873032074913570466799331274023379172042676965838956549192876472948183438883310443484469388815370528851817972357848530961383385208893561307333934956497272852457940657655581181056421587354794238470797853933122183002194790198944460766777677098250959430440124753081663313562698778397932721928919237389247138587123789705248232099946404899757806527874948546320439842791144990829234148785159852507426141046273329271726833941214114719035561420703727339779996200158335192089988992843201143524241600375269599451004854617205309059284805318448919714965473010073285511149799216549789138636590523817908075848568504836221006636597573180661158029862976610407482580468436360329765813747505823539906606720457764390449185866186476550038293492779324914722379193934125546893116082734827985080291945305933431971628082701775539795972563764327540786994285846763718077832593233280269964485101975244657047170155481909281422913091244918283528257621889029139935403662894231684854990765304615278592705007749334603832160905129856745729534115595379640079520756655783965793653904251704142617851782235043301177057989531214464190482292905694012546600561014761275025693724331599981870003403326607022899531186552067305326140823009020520874250512515698716934405969319294919246518096818569896505913585520116388404884701064154359730395820319803152190993646999421344297786413825763054810897606553273634576684901333846257604840277035341263640837934879153709809922801892092764533017351098330785793955684107316517776090878247464055129745806171054142805796773125438190833582106104099103914874224519131246843493051563043650459597614963066016351076589127480062894142618907948761377111555134617776972521851857775747234608401747730735433184264472441028684263425162020631091974093847035061000281541896762187695611398146970999486985171488375782649288854228792707189137471599700493941321988022197152425492500360656467443989392514848628784204929025073709375968099829673956245166263541021375718958640062965349755988468354090503139190811558883712061244998742774555256931099251315169089703181770055461441040396140972034142308229591924170182875188814637801233966721466047903083675937501558035080675395884022397139648160770636779479758274601441088592634800176557802642111791242763219484973622141152092109054896171405670567927534886948914864276001932676239043722248531004792984422290655761128416931602285461786563353885470114569862511473549761049115025944035556909788032087431528691303141669278643214919315792541094896694520762254484071523564258379543791950527857696557256412500941082804310239460963986412413070403915308733027192700499894280484583043942415617173257552562764038249921734125743329069624267583625759942018381293114847225176303942347478435765480424545331463671959682439973607211847083974062727816377242945328670464200885401032573379622919760954118120960500224807668814920320597028714517144751820614787598033447575070563399676178017301644067369487278689088719498613822051853149152684812349852176609346509530390899322946894120685880969573604580531470877182698791027004060833971912294175530392576584638519444714992334925115315518217800597731352405282602061939441459265159153582915488000986885049156916688000053662585687704465607579593657855250669229711460948630738874964586136385565642886129763406467417054149425459341726364671349332915415841921232643758199606747437469924768133590395523153387519240822251108176319519038913720622733389946824741190305883163279823031261530331870609747865566640170556540012974788664530113190665351804458419987303479609229823510430361841371193701907631953984436802029489684447891265622786119599238938431184870012028657483896473595745078864292882180007109162742299038080811556931995931805431458753767418628901339132857075317146738338175866587843824240107071783687195530842912388939846447838439499036974615549442625256913914330452561882247926494943621983611568277499477282605762074636666315759883304254883839058749022471021432280954670106621025010780625588754974423980294805176467282384687802430509598571075532213635692104705189852629350705936715256468358746138773175323908622768610221087430422913310860226818157622498892022266430578314895737594104811646274899494015505831120295033093264603314111457467872372268201272271315062065117688250499929077169247052091041971534129695189181211201655506316180001680380564231869753305680366155601842930309190034646010403341370403881839875632081577076597720698131448631914396806789810946548314657945671912782585099534844091960802190536676484938479583067619063504502890189394362539418454177174473237044306827132711401965553382533441289526585891057567646650112618879491973692040595742630922020788366104263137702383541002476254060740910148599407167341097818335203274129913780999491634204363205758896215072581397240855568230823644223072576642538495724704245663230317614043912130212416202328145240331212229358547042649288165397136012154856600670189488004894069848788117121603195049712090741130604994799741180963295626122772733354919844062698685612961081541240184497620770886679746410742458910026713738275947340713966191015245608188875464344690865973354887696903353758934346843864403626349650344604441588613346199201120382199796034820838398517314451091096353095941611292361118475150102954549900792043865483188378470584572093646013720353674194586859495535966658544660430674165725307200993374196183234860949974269097423340685899694616010244711544941026332412216360869674115459144729762550323224859567615739710180851421429499903418980481654683305394692390535880668307228642353630616321712132196985335543402593873009308876207671670801968179025922795050826223543291978572245059804808462540933838659495700691319105079503260552573254070025757646904491163043257120448860807068659799185776347009345784567268287810310796492348206034021946803717799852388074483361824341154206475272348205071926791885442509919246960002140353744991077440768441940997355717819002242664153919517219568679221258921555529334512978583633327995499325420707473373714236631162102582147399129604197708995607750186509182436242404358742257208023062788682770397760887207056280080933153771924543019614185758192535688561220433212690177457750109805754962867432713932664613529244951016572431739815717413740673695646606086918193445007283085375750020128098648770706543216977922261018054454865658776295478098246044281626798482723313362402951898299332221335589528803867537988426001901569269459042347436279873446339993663497097914570379647158529396012325571893926623832868678832468762157304298917501027327492442872135852048068296614090717846072106048157967636484439076195390792138052688012659024019407879523490201477504866614040372980107362211035347401521135240522289618491359259817136876980107505606991145822451848357276175444472847735785327784162364118863823692032430209254346337809653153290432844403271943402866593196969878535115735667804511149518952246715368206692915599698900243588043523552033783776299344343005123015067310913774501018278904378682949648359983603814039447425033394446632162664100201526336379957613104328850178178683234427615758416531488392437963604701377385257832355753968071823684755173033921501488942781055338249119905574507731356432782105119636444950125593581218109306697620384532397305976283525105044994138920243245566113236718444935533257268049457147958685528361274659442578940285516249265312139990699370725590903203227041828950485924410385274778369094967930631164791411276532863085756197363082865661215578010357307466784278116490794704374088548826761224722952684479310436731545515759913124862764454099547366739720599301451287057596832232172776822580803878737837641760524322013528354036652062862403328485958964049866280623969260095561247546627890360247391514157423052783623592779199228263271152485853844006545783160395817534389829590366685593407755811578947507773313506874375811654393871875533592557669235125412711409983466651056802474177929406040118831107445373094846941213499562622466480441807695266650466040482500861726462147726017265030384094427036582156801424569323047993452613945991414001814243613273455135410009562281874986168431284552981931758055372316084858253543992632893862934834416645655859806625267202453020482711576829965966654566035459130632944393211162638834468163413622052140338139691995162236841920507936922090610684066624836935896394846914570583208799674706761125439725250624938187496849000314080230062659880457381888685967859202405565913725611254272449211484990889819651337733261032878653288473629146935002898301781020023054755786885024356736074450844525741392557341067746333037136013112006598863943359592210047521690140520953376016721398025842569516437436553183981653884083538746723605950641737239777684011415145265794951628480788052404548527587505345878606687772753006823703414867197401634682624180356407117788413417742698394854747740744320111426320275322966063984121980511142896931281839465358181082901494855659647767511451506907524906351831365348411412592128214649424955104357008574275581782242540091933885167088902439019128951032309177454671591316498539446432982496599436993086180419915785132058460788743882624326793234185605818027526838176876350103246616425822451806553539344840160559834243697682169486297685388925037829401235160044124234597195199296818467349415874359032763503166884633593629877976866677216375521198669670480821822740485995333705002201992552270322510870098413819962006920919410913158311473909588345897191105338761789658857463606867893377941783929834177345830169519458470103402535640638618931288661315095124989021163644491660649496644844321499456418707194040040827243186379262377241405782981269621730440948227001971401304827838274490296298593352939097115502771191922569254499426414054036383687525265386951717550561259613235748856355784720846467234067701992479416692071990246522642945870386849905275166236751872109076889980694649358005050853131848211871138977436422020728971004441818196025682015456651550761694400189783579896633678574458316274170540613115141529081655229475787064438801673608196917334539842743916248154110068457560624240371681059025928856096673861635414922440629690769074612502924028856581381693557625389856701258867122397769446248088555194024173737891374952119472638215802368466649350387739091779478953403864506296150177857502045064108725761619560128791409225458499700702672266573901260588906204585817685069497920770551063506279198995978941781952274027139073647464501243833949200684379566296013942479131502731813771247016312287076809362099478808306242089520532682737947987805108600022860415841274814011667872880527440680804664347862928627514922315026813929074226334312182713359800808592034122184632293304141637455051169845728616425257982060651866988653808096571063784109316379571118164468385985673812762378615581492039026721421618246384659685896807373998967793862895348034194163507617260313571888691769069287202086877798254082396093817641401536074214222033224063711130886724525699302349593438983508980690664707846734244082233731457855514182146952423715777925776026926544270726625268592797201161753886308056941099194557757765457540147744577234078230063154428208969523547853807821769011222913498167689226744374907514210312643043050716305872326226532582796977638592808252584718043474926427062798794029724070651697659142054597380702862469136301685604148112104798865904891336767849441645707233061516126830075090730272716108234184837817448548748402656813173199977947643656696717995013214634294374986997408511631548603499788037395754647141470532763006859960049928608527862792167781159717287673436580669359669938747297962111643960505205747550573810159961775262082242623900213391735703834290446332139080001424442898367914720158617248557320250556776939827263274712312267408497178038913288031304166729030455538387747680379957977631312676882416346453327981250683503587575655813153684854602277673943259377310104810508416705303220667357989321855287263967575931029753142224931205666990868984717219591685404819476619947801096576307375503172329813944904544960955664151460976538464571654659013625174160666451158768344056824741230879351420286772688302719377860152785563320583038382068155460064812002958204443095046764433794106678038046119457202556285986509863342434313727311320805909860963833433154345264823768623346528470503081295098798192890529368220136833709163882743203269051386838993266578925545687545310705526026868690136157724710018915904057999342361548317975145251039304426650333301951301575497572107107306920515220919847970290040547970514513413647933346524704170168651867396836611579840210534474529478206886791826976011374282983059676721355099704779802922818776645934158872356984450911142434502237210920286711285392787981654411253892541710970874122452075880292257255117728860906207243779581913032356347526993382902862066520333656785328656214982384527726136996313354771422915673714625457674386688253011204388072950873643426883346225872883181170837061028669486544167080267000728977612588474779231522277706046918518610004132997577620211517386075653372926209419692485765138846342329316962203384319278634150937141212542016485038958529337215943005843983850830372035440614118695723577641973133418876385300801984647694984649169290935113967646598223442916485246777870280527173028523554225611179037609649566144496772953819765971943125495933803885609349410158255024276716701397635915528443219124577052839059195224558021332848636644469976218901291748020432821296255624243199969557998968753577390030714904344363398768502948291671370369792437150352712773562690213558343509371578543612533483732357219682572288419838994050730824272502594858242752383088906077375914250164358568518654327445549756765942355370185643109981485242439555479962210988709032887822934213205660976061890417458227765331111394900092261646605955802001712143726407805764883901219867835726442840766698602208006044643392107627885290232029803631551462529721122218026245737001693994273296225370804780683255040227594300836534803820010538183276066357964819603896031452999567221281069209113439130552400494172687157627493351725508032560686334121095095537323119672577202183533556970728286961473963873433786178431209873288486160965345080928593668924077507774543085859624158435366070947936617875725817451232039356821426533867246655595800579885766002907665267788816552199173700690180798299153829097496527992572377035569454407558522807672253266993068778764388780679330305495201296375220478676625545765581563273712858031189603547231888652321452658004840347844382807908729506627997106355866469900877732190419300392992269135036462087268689988894519804157241797313372959547961796626490084117780118196932525900749143756309743117213177208995656181310743935408788093233876508731034734590054124638759811724367357715571669937860719466089007554320334157998086393380384060801380258611056774517258923309483235298132226071953186880777287450567266972028301668108327250549407580287515111208528450762902433504717849580413697633221201772563131564765553998439683021567308667417372444723241296460427432578603469434637371116774090235453955312363560701732766245709994330640053953565229735361322305425186643234136607903535557885314068490300034692825402142786741690949093561103527553102547895414599191508134566827782528635302414206135200155759913493861417789642798675362512449947048479994375403244873016152836603736021173052533427617555296607895149841476912906129672073890129599321006397573783670178864364409921800093936601675080247706144168454971331322231755045495406869629302975799207448306181480189964132591283286227986935767735712437168620621930897430068815709760949867500957450223703054558978804011302009947521207587552322963386282065650359240612110341009317022627493681236836818417268236791785542678360548918255659232920327017681923842217655737587931667391282294208178874165447504569924666872913099670918875325030263852238456905537997775030448801453987490159636125320512988863835949454573376206450234036011607920512824982495995146947031479354866288467448144780509259035721029520971603027075756262284131354846079604402474717390139898183749477415390492948192997587833916593461078283700551788713017221528836015200576862475837836839206594671195933371018404381165312751709940368164731916194861587508836684745696969007047484643929737036990478495011193208972317501431980122083609375159414608983300824108012739158071658159198328640915188044548435906293697925859504710676186283794555632313065284781713612090277770742008841479943569773687019565677317258973042920298973566003077447709279481476556384190333862153910686343039339454799175466775159537741505903153097238608051178811244533832391295948118454420111932864578753684651087870181018265552750239987808863946008192222679524462787070994666931096777447074826018618598671637232033177135471185291374596250547053307322073221627465602538437594190477573277970517260309011346779722369611945714301897078292419558012307346957634501526273611174519378860829922796434515321377919506503640077484079673813998318483438012793010726927397935448319021664849126400316082458030322800080936989098215537486168002510070952682075406707444408937177522085300877791803635249802992195014078554101948256150078041595762118184607708348347862549855433635901831864635738444840112293203712649287917008008986639164480465881417030532521395676031243063691171029717559099652412388604667483949622683022385389843458687135022958480932544206258527122207607680509705097284114941240411226410052060067570992733461337699430698645728879159179633401835864702971346051124589530548989057105028949756629557128335485059984748935619285389720080807493618146649130361027637187313360916904817828215843763942696288399010286733876388057313533863909219592712797924521921066315096496777251407085032859407034709696470500934986442842866141305724632996734354427620869066486360113993449454613922267332055225680656244985209143614923130203827448504840463869517812698473173595643155605730394180445294279092543564814495617162617247102087525865793800705002420476418820808835781275198350022072316691948294527284831634072549559185637457173957675295281812079193419618119131021115576577611742488141623937639011992594332036599152711042210692432455355733595194888010153480578955212283009869943893256467666285903776003230575576802625498855391623288310062804591740968636074841577027808276491940178271992392657804540202345659267224169914932628942442761697139456739063365939343634654930229027581989775377662804358108925073497281151723640942738498794487030815654396001489171554253168026148085717879948580694242441133008586292786338897239744225469691985816237398977577434768401479822391549609091764516248615781978470795369300346291164369771745529211349765683550303211207915725852602014528965124182411740871248900511599808279894004131552310231761460601674142449892430998957862018229102962424477961736503079604580515808485398874128498189381065695058252233467730180105331276238045654765803367254449958263950472481292732619575931161410506206148451772846406561869317849336632287160306746856564550022330447063489320373319675263309992821310571510019241004376879636475051388405354163069166411921715386519382263386454768084959692557388185736907203960656316729663861902608627637836774764072102000620059832304954327015120093380958066580565351168185582094968566009747568950317338702772207077642820750084258920030721964242592649361841664485137894594774722449150594196353050734790204549094182153134566718567896362748671690520983375671253219075450863129265180488147239103978312045114037575141053922227978293269368080938700144503786869406581686490138683926727666514071984381617939617461130616149784056304802774574536613779764509098564731063434006825361871829650536526234092622141679882577210174589749013368301535092742895669577650898532887996295038773138985811149496854581063665028449915517650489455028931496907547098397423778911404298386368572487507332345798313293863910865552227567091087228661898030414219345507816031732254282781872920511285253349024887596449679519459953490388041593019213727560628483002554303149443559397381332623537836061297922600241330815037027354117715729655911928159996451619170142343113179560116102899850664820387490160107591440390906306357815330640552079078061188140078568540733236153275911246061944193173618005746627402521173800147896619919532006488338751123242950101485696328149986950509906436487283000567604708122210640535405928287917903798851744375014170701842107194707409804386411531801396335815588672533112024872818167924058882706081607457157402087907254515968109288016314665576172951344729866820029072517318828030421355198490052652908940174030236550324128885161917392849486698880562223421206216996422430543233279609855195207537172585635404699405549509564748544191836327119975261113569112322081443627250866290338744028082483226417227950904694185807432067565961877894889227225315731498340231815546374392363811597372453639611061456475694408630834519855956633359019921251196343755115391871082913069122121564838115818977314487214939336928864387198361927525944909781639763365485131604882298458182037564473054319751278114908338700054904923537683207966507158707300702624068786200822624013047541379794844775665359543728193969482959542356158162003721002689816131980153666211378026544970054756310428469692110783453496179924987396657758514048643838001540415102937358249301109922111023864678873518938408049460803700225772476432627835798437239852782933251314061953550696472449206882038105297407472934787069349803460009619301836792525932315835820934294131870564575319695251133719660397237455745993936826254188607343907645683699409148977609081991213249099656662316993415131744601194487284843074099736203232750090599234302498879338880948628333005355913788435879610539063218190591807803277682730298651622281690088169480502384335548186077829316600016340606547800316111041939193953733134389976490451058305061793071489341894582405608116730987468769057697007724043919932096033060590771210440844518475476768437183976799942638522717735129764433193653869228089018299081335553000393417311844078541890633955120868233992650347947182591458600052095770170622270943103903261683520290802722958810668215735890083137482733712011341056513895363337462289623351338235366371205785891291819468032705950250858192491180653534902320348316313267503559761050620798709158496147197773908533661467263360991130597664512627777832766843609734396690161944522402795164443006761965660156368485739006414236905469633268664745735265869037399235372440982088345020420485916827750197842040131905320085801743217044488878585374658092958208465597683571340042899155713676927128632317929014372198748595274964673979441124929251226691326847437918000170205553313801897249408654710280449840357158541034863056464535774197381641621681155106480279269648295349546075566416955965613259746088572642619099782554490533039552013024264039765512851210382420902641074179245427141607076564817772116802446353160199926689104022084655781689851772910663773040560083447941599430699871158934268987635973810837632111761998736813245354961019219816772757657219355988154448942896551882765461436812575457651106412770240162812471621014072049064280964216072309234369810284884974505908714015904932264507881910624545417032085910108690261792080617407467821145169104320866688148014153674014844420641219716441184676171109225493202806580076384649014984651100095192948355967769109768275250297818290565864664110488845783439419067309610721180778495067215320409709755124815709252675315182277763379786484214093205116397434838904234577616747061686799883289372481704498375424890109306324359658338399728921269005862252516340486204936435565500699823520975829410775272567298271085020026430826285752896346152550117780784270129354773280162985328220155763543642575342073899995728308374361156613149585539953924369611144918307204308129559663405572416911089948704293286571553768001494801618094161223503988919020220481565916750268140409427197402443356509671749397026468824357214699383441280059054417834719529946082045916930922178850155020395109602624799083849219429067260636818041606017028630262777720044361065575124577350340368418746412660689948787184555361164615696526290553800656930133406442430082478949231559656442388811956109534822311657177475144191332861406450022962372351496827521453441391968398895511166090064885379846814896723481460352042040194939745587988551439401164552237004947632782198139650134964203772798461124374912693741392587821298798102783870445219378054829504254049881023700422989158141931513866926883509797320085836762437511470317207561380464392805320533559388903668952902494718755197738846049580671131528629868617924738767031908047198634386428905482198968578909225271354075300705919861645646854256578222176238996417311844890089669704271244414174994079791618921486138639566704600316431654014792615570875613612313236805641471642201714430414795209511668158191334477338778798962756077924736523263697617230565468220335107769241569444122467519340173833953818735742391970479881945333310092025497122404063381583361803409273905044421884436191858758882803218580222740229172083177054424978606919137364220338716549426598851123154167555959048071881310677838384746467008670490372517311114784550830905899081967907827057035831496141949562530094904390982639497071668534817302152371066615000814491009654386254352063854379325791493564451588814814800488919781246228315063141929267525665423350106916950842273933342520715115088586451683834168368948794931133457485828725710391450880925809190258429049308155472521500969016323140106785540880266312350823138284534096826152085017002234020711729673493727287483294489204711452765873844021131916601094157931478076990739722693478761245566411414675738661814759086878537269521846888838632689809004962133985691400369818435239577018139209403108888367005206049218218569419693154676973313527714408634215491840204069139344894121488704173004078603397362090292204299347110672252512070210300951870730863004608215283237316766890447104724344938442426326895008594034426075409886123893000874170503892403828828242777511532610431564386383506772018052308975198082152661566291859593493852289864428184097281086202171632834868579504246551836518154214184325476646858548317590727901831830671690476354454814629029520323372235225232411748371424863489951578766774624063927058172884879325801589540439386177004942155739052713188728443952083780787650575311372143940510194461130204107549719182133226222251096756719472260069509152246525309341902552197364206356183185463615048841174508093140353850041289556717528806406348499170041268766617667541239654484829451739866043988572059941372045280700749525633850647887582171370555129886083283994950184996582339801318673299083336538924980940089611234491164989646489771832195348431675353210390376310623007860307177119997986511490268465643788093985612153984281838048219069570318861064776540133742630648862679243368137773349988904002146511771824294007939541463480934780572255464380381101913902050666329676695605408341147060336964543272399026865128169769581834212431053717768718169562924469246404318244788666507737299101914352405696356045217787274073358219722246815376217650917334862668988191255215044189448509062777980726700171227731383974991746611060408067193302556395866338515744820051350931585928876528710350407003488978853034472507719427389810879504807502810759859925376341502935622729369516279053425459364914924675645914204397316806151393855549433329417580272106041873497137201228093352807565285570960296923422269184397341655616820655356072962197100629746147376361648349684079896870510723723710884801975373655196334580716031207120095858466734875302633234040209258571347517570104906631318287419193263299940920283520816792236400566139435551232244523105162420939326383810111701092921246291839177669024605974085139556603940865033610841238011074613329105820263662992589919914324632400341611752183394665672476576107613990262756405794003577294591941225102530155056583202096997971936455396176290411361348906025637760992394573694261546575634668571187761018866779457610023126471925308339153335216536116904559742839282707563604967600949180906610467280881648124400969881304917560808061148264664870962392631007260507480625189216422646079815915641573943104550298546843679833041368600120384154688272381545410833043468927490357867522195665977617842308875615927247929618252060599445571380624974893626556650421962965274925187110295565640550987191309436400728589933517185741008053710428198706109648811910246396996950642384023254995857881033640346056251786321322474714340543279943198026775737060412407143241895188152540032923067588861751162011860200745819943126532669423332055877448367913234858334896511592491877346716114055206618585489897744989869782769622140586788206982114478183884785592973847377831338970245170602437709123409828204514737058367736549576420886591649604274561441011595034600041577695237395669190663701312199375239611410098257773900000790415664633732339497413379158309803804583344749760471563302088757341420230994029088298362049625569076602456155562265310624026482268904981077267239654861991361509282266050096029922399577345585949856540734585766091557634156913779299490951673029252232949710642950306496131274681183501551132254817768291504412307667298351126840906311822133215544553008090616615840728759269778470720396843218509575203437004516836086914606214837477108181078179228355180879408643895828723213620101821642928101194508476750747966656408034189582117500879031406330900313189576745997187256906712122477194211932647441501436609957847658713507709204424863927702624567008745385676290815607565692009665511122953423865389729843283716640639498150924797550699460984410857210025827357067766905070610153870180773730165714669425377943084871816762612018785009604568952343735342714993201625479175706252337689167621716007671676257247934697861600449082858771987873296387684879455508064991984334292086149504592445287692987788094150255027537023670716068726938571514982257366568600907147955045311158827920024706715664211792704891920623715745413811975319187644937647978396214707169992859528656182017226847649269214684748715918073250520495361201193661794016770403801567983175742564389567409196783541381012560073448927933370910144037803282566681049368325553862379981281332289965057834141400347855269499491230089693099570082999607776056096756634944872715962968084547597170575165302529486936308637294266617889196874432747030931641493887856872185670554925274062027123183176029130917801314806027065711925927519964601576966673484815993367165540209948277655038308009578490005922550458386612720257608511993297289485775347583429420096687299764974907518942674326540791047978382179331395706026783466017033065519347777019901341930648502561454251163239386228301522292796491333176458994475091002309780273176905818771756500284263748264151164575355856278952407531066001072116438179449977978674381100908695136912135503033144801704306553629686281213607202680692044666544306979936521141530836596033650832787066884899973792903565791608270049402279535129106121448620978766593742781521633130927354366729719484431269950129157841883721758720830374913737483221320396556097298283349306644643547494838171305564188506939367019265005588909950323146387912884178354297266208469309352207885929325770280930733674461756559092203737821062202129122131895535472193023522191456064335016625753947475665151621398990568442155007860849667743483053723138085569626245048950926585249480113443364996352285527160504037564794635523026063932765702886932813927365281582824720122105604370824633368774689633487434811479163782462267488615067918890283454326459910631162357700245108800146709299302198803669951673343035282918861874670756157889020221497012138256423896793262314903168005013931453673783208991637580841961811684553596634523834204208519171109965777103720672573577553481886299931636367720426942417135144183828971479249668963453272478982415141702377214987314217677535399007544838560089897147424984575445214918664252522066805999337330192107047705457876156345390048920428305053661778201470285458944135129522994326468612235729359285705669693421585103179851885086412190550396859659934716188499539876278231082668348655875129994998313528722544651146646564915160303943462971595261071026436932673461089368490016772244019263531025673539058682335019353383317403773892895900416334614282023927345420913620340937046804278492503761278418386852971672427566598573383089180411285436177521348628837726221822568050602216334490087009802734513530814603904744612619917927661888133449449585329314117482944209695941700899021428535002217889464969974516584177753881862237533905197568802568373500436363167085702665566447251523712809535180188723180402424768139064707748009613965755731056469538882848059447169665621616696480520653280418796674925581212837327468711815468587314487380625236549169675239123775133327197340628983987759427107144884470004444403680497072712926492540781064091342809212922866410312024404217781304055369954764513031039384075144227529854722202286424722942528044164500270852758316760299782743710785601729423769106375954284538392459056503931053103814073626982825814161836431733393563553392661068044636871785755698686671022034409430895935633473208996243208007190276814129229248945137867037206071831484083206591525260205939633901166238462946676932912064330220476225016652997485801366619772953772040778025497995833604565117308935951493637169760539096090590970202250400662026099672488491645254455319870809362628578045682923770427440551132634472693934936800827874828168544317850503973157991294404399249001449418703740462656808931687842885529038467100809505590669304551844595841070560386014221336456690858064710836133802394843178632428228180272233367664155811519783867003792976178691215990896845061680635244280218525906354872365873981747091223629926829188622018347096885454847318330447239289521308041595657576859336629027257946087543810274640769321307201239763600609670424848724032954046659355036798523278892117264135213262118345710382114656427812371472658303171825035745579342431227510108338775598131697680235011832513101836350720965728074963515281684251070508156888977753304716060530078056827446490583371732628720885109926956604253681689776485284818723135787494657509743676600326756475172122340854114104839256034861886817135418168083032778994291428017378463501957555441010290533031756077354202575617517672347365156990347535336045670667071057089949016319476695273624189934959817047776919972946759476354796685616816041670012772681875795096025952815653573276026901460698831254209555473430241256275684439252108443005510917701890486472323561315294935365640998030198180867352121108925994395820204555373219648590821252923060288122485351758695012283536453222835237662600566560443026838378414210053806440464391278928958192568253902720683046496221329428807106390472179278224295014729318008639080275071730983496727182328883117938067261782957545206327411339089354043273579873208787971860842150382210082040770528118303707410017522731668377897284450381086086289857251560564963532703720729555648538151967056302349677465847013736016773412682754467094578718788426049568267743313398046062260863482589444492542962339594182690109546710384198141988638041392428519014394009292093945646282063474721188568996090884160496313465152628265474363107062037642934012711932037861402388883931532872386800604810322271993911977823037894607199482821267912031026110821938244566401529425328615512971143819365345385023770000577942979101984395793738060771253769833122489600737576820040294892817466970844585748903510050734837124837115181781100161541543610045352938773752179765300734479963195255947782029023713664157459976964313312142290350167499079880432868404715866461816281354039740682488055634116109686623092530890378390528919653451166775754101548301304083832302973694863291965366832584132852127661323154986933312068128492744766812509929065851547963040888473787578194832718387460498619651943853289039079760848747940187459208945883466468595147197140968351290668208361970678329559275691253909124108607565224089477732752737429070304350321947316162493089866635205622460951825878415994588860899889449846294208278122267810564160405406062496214379648061646099181291651738289732507213178814570885494733389349397038832949023462506105656096599997584339466365669971221639551895521830367594477661481212082508136143976056346741718320985886639800893536615982596251272244810213450996674351673885783033702043533309820530037761260008425975009327593031013253306623786954298558981919658934228988484756816937979907728741478589476955499043265220628690750422480646474483952093925677158653909637241552558644380879784418565364868988387482014668621591198336511247120604719945676723794796776235380136809658893619440349430593591202538449267555805482466654480991007739346325003437000315535893374404220611925601788339875486108594433323933788834810021431478209160086932680375791745176086981724211972708311925866709352481637886713060472624879021158067318412358526910950960651047225753876296249379861632540326202654077794840196393993401834339247126170041484883810932241272795108677609471021082529055453531139062629483078883728666332424758420974773286967720356241983455766627588507975217558706863950914962579564826160356539420866425077389432395563787927951702977867945180146678622468014450707224422594264052990087337502612768361962228696226910833716407741735827165780231313171760854758089774401754948858216627010110924853581531231176856966298157154582128383718098384879448259297235919555604675193855470699884449594530007030383012155980609476471954055610310140813969650623743440723011791071531651922354591393931909373012858889605256972367847846622859087831981462915315047125951545387450452135500458049221548210106952793422815872967972901698242668199366652360273582303303735796777975603925324760028272873734091792339815317339221037656039360647322100895695480251169227010757466208040567485317654449564667111191387347944696114137357924988439230753547525015960742179550329894685712344251546548039979897412025392462681478393616007185278783716289861587173166139787049247267508641450798581455628874781203643964289882124042778940167465888481851338167639731073995869181910191359616375850058196461780999658999944305073506443711776560358207546837035475309186061193381265993785008400488686466778445356077291020582689091932886817327127455635463032499103280850340135014234390374909614678280409492111639289389951793474980333660191168071104625945753450921240151589292611180667173561519841295508093509616515314896639411691031883051809354104248296968927778770237294029636425739138225668602788143680127607671991678784647798770433217116672697414805145701585385064781519150881080175860814074373261751155639265654895539065302806813833175242218335385721729830637130582704677217962174078086242324550372760587313483307086735315165114738224523650366033544625202505512533711251862872980771597894234960634019184756100080954127773122351120957879174198690699465468870510005480779052767239798010949539772525289547587105929378474394702867823848503490972672454978606984551156840443250093940940277734464450368146935570202911202432299926041032549184667784949605626922119534531702031852614872056148188588273098342581114743016408600524333343682311599696997421345882104392591202123030215802185951346124377638242452083139663658690089943862505617380723795255016310942404795383229011682105310005036406832941596409582101922224586429669723411325609803682120099658961881971638572438345656058878702368881730701067374488586785064723026127475353569272931478476916440467080367613797786316861855354722332953372590158954992501100407106010596783431089537964152764475624237606764588267732167302083589330651491127538402796100724610235263276571408598976845727852100231230475216861617515874159221466638816685747105884476032547020162018854147624776568591865838328411670912578158890959920978529727746938345411758392033915005676650482414927710987855201752978064120338055303173714703632958601718499885721045322678997300983117355211577193343157133451941041156950977911261280928447406685702234947933817823484272027506674340709538245205108991779899081962015865796455451058265154556957280875309865783330529789547607631114931390176828121100505825849439407577272131391083181816751675738707702698437981220443763264598360746324101182576761353617830705334342696113930854360993208306837191485396874131488167026677513726271611244665810699431038687622903273660389036795430793769841781993581064695728278762204331852722652691764723226744207759505896484748305956866544739110503763960284230559593195233527567947174211034980862441202215689891737988632012810196995136066315283830048304279994773506228704084107674155509367004841672283836837505438090066422788857986603984702896444454233827127664082851810567330025362959186762080873081146672939480774701030998996689165556655314195063387380338967513863640629208972962310381104333442420808301053712742398216232934235368707810160633573283674933364937278520509741609076327494174978759412540382367340340194343397297695850414266185857821558713906136550579611800532249939281701908576730001349809409407080214119587594382018759936574726932091955059365804669582116375268351691894830048502810956894562786667585292310669406307950382168512275886110744154921118011345637282065980108149934519464402483790847754980375570373261040397007262391187267433277263040098667213700027204477387167334065174358947210499605715545475337317143112473960946379129483460500496174297296326641156735783774172174852297003826886474644206851448755479681885328224174412517380320853779383911680699984582569752322673297576578436206065870410152402687526105172264029839090777646875976192345591226124025992819332975662689580202729401585561862785849328150150579036057932830384000795895056493429721016283026268610040622563466473778105125207762925911466484547713632850363452819884427294315833545114456468987373949228049932378416115295525786581078007737059023209889757845413711056990073015215182467325980652460370145965106180371836286948100565354333267344494775756847018624291497468633890918487741596269451375961613202557195813596011187641373652622118039173614449781143338637440092106144508159575653024238914017047916254757687934901638167253956775305923105328023809845070107413830928202879848851465246041350376596834072806593752571431560914585245138615670216739916193748872914017658708235502332073996946495612961996970005921511066062953066293474318012499300970557733863918810249303481599182097099362710762949577564436266239734766034998481747824467742715514726174454341236892680727723238141411637665849481518577813701338271389509568440549361348159024446515121354633741734817244863982840862898195810536463711753644505637922474079007537211575162690046265912878373119392244233934428610385997016880118024419894030590378043874590728497691038518614536592108152178637525171020388991184952419815528322659247913482914287197271649330693759456705449571254295936649815391405578166152045299187485503818717857501597747296812506348558610099438171715857384766877048513874128404139432559595631201444687729142116606004688658141379129015870791964717847598527327145361286654410291545105625742364523470809879296804791840162468963861995507419589153904881141898752127698557524840181900531534547008448558830041628300764519197393399850129310058779163237686768964369194199515010583228175463003426039930417597046228103442799569752181807121301679131471378428819620453411491544358521856647821151486877447142129006822893981646795794854233684944535445979216743337232078194065399143182497960555168032546906996265775211728981899392944627696425249871037240150489477912990424611808883017756744551844983373709689561018493178260223535916861347646337795091068492532818772840440918349775229720788376020129768599788099746968849940436246042024703395341622220244203293857337500245425956325874171840502326462072138794273017895495415713806861460585376989171544397368232589468388732214290019973631307965763537098729572809457031488877378353647292994420977830275065983875718286692575101333719587120813641148867648010119920647454049617982129285808430197908162253738801493393682181874907341580165883198413989919154305091277746707622363870072681364174380781809586937747172063025662016027572551052671786960388109992945043999213206978521618303341000069852747071266186020992723526587582003089089001116875412888394611386038985852201831624453779950677023158424438680470630223689406192855818903464529038842616372646070326027541019166542699966568844796169409799812062985158616704579376540100142520298605519812434965550915717663596915348341872708706203170362742012515095129940630854312331298264415658957953097370647379772032450543870483137344402574139554547427125117614018047578350971340935259105335353643950459205659678750534461567621323696180639180973331520728504491344302699547596742600557277607809884780289538962708053819483745906194673339004878461235183458665253151630412454733337287050261281146320381935931385152213841229478104115616891567693422027456942610395316516821418967036699299864707862599969120368097560126491114869360813409354969712656795816735790601276194539002525599247657009903721148607326728382441526431983014080067613098375002763446799915505229598213881709909017268475871361186094160442500244325459305945367459040186749697599937625793832828222984941434220906447686344040910509039957882221872392865458676079913208272463576612853943545818427374365314921100906192316183334266349548229745837120947056100594529713040786545672891898638393065958748760718658763784572963705382551515935328758400874171907105224463682322965153793580546647421751465644043414419994742654680783897385570164180360898523545318271265081700884946034604364059451183583314696608070609263614734325372852402481342579008107720490847639117222691534644588455892968633198158398569906264869072182367931682547334713611677089061386183278987910451095348239780463080920640928456906720381907091207468667389539043199348302704136013797972481853973864642572915223359703342535133252759912147453516109683917294384249873181101276831040744324382776685911439147656463200945005491761738210977466022709283337593840744227910176876669247145315563995617869482923850431019768374176533539085931571121256138208882122967808340868375685805292490089104226134254796714949882327162834459608694189426255456514792561498782307756878166829757249372772133308143662564179385248600018515887051741454519491036269825800377220781550995234972474390456416998558435649615772644972369736996666000080238635704722537325351223156308556598354386068484646588886018722272735568460874575409874438155505202895818524400532888924946690225421924031322556814360422111801765512173276285995742159690896075507206579902343149379181126579729642018908057664107874346533858782816047029275150733014417982689989874769985169374642127557668215937050900966717893524413820683025244010853139126052281425063067480521539532139277529846442704850781001076825863680246179559419279867718660443070597476955180607378523609326530358504271489059110938580651137445031096145352810603626959326441937184582812376906956025226016578287071978647189064586240913438125273041942732165141679100061111072500380513651290345589490516337377063914056086315280304167570263081217157077781934635743841592846956464616489959854020181823595511740834110873921971768769244871885894602716361398440491133648405384765536213604332547847416067787449216163803691619229485469301711798783191166649292489563636725384137898091300688941720622892250831997047227907568160080012567467346950724390873392929381078181911232435776915200757915615374614974811768609225405532561525843345284767003099677041910118212724284590642663958880715889082734084830630209238148010224166276478150091441632933694207602281241528769570489921722751714458447877021733333273392116292621208351724720149725341459133772828719211471273933388850363714495881609562237601303816357718450210465787147182624510024285550536912045206155467640410949288830658237502240914303504293263891125658373179600064078808532639655426358445289598730850410512469695335583081421374934978205006982942128964160196267764489718544480057464175144330943834362813131791464932047838509978924254958706985413640379001568344809452025122981096527975623199899590814217836338596920614187442256241712626399779045306033698001910426521265435903908656972908251962513463046471789685069063205944071235468442371698758647449067874841158861905992192786602744839790633146255196573927528931020514691870280988542170190095263072697096699188138397186161445122718827986977032030733686601724405050979628019580653216401757854318943027890473160674003683498464717590315405740312766036294885728504265019925913386366088517645751789886767495577270248507975005906674021827953309095077804193790026175572482024399538253418028090770599409061019213732244972293422421839258715342863964597953702017951159751681159435414461929952514319888732626915154303178231247868038520150110337405104737118100768268746050135610143241613372422798860864079930524083273491810578163848277842196116746477692124846589169027322080289714833714830206551515327328142453039003418031194662443912040064793377619538690964949122662677646500873172642063377101664315730537674336752132271238685432624077185336014145241825725298054953848392722805604392658027254097275915330890086732255418690096930339085350922877444660748447746145992355954262513878456319660663218032741735524480001332601116056827324700436019325249624129593214676044502753928830607854293995765949657404527532019432806536153645056592913459399592673063571541129771864602493060581149627396663915309493806465832664132661397709618014175495346409637531783074700136300629774597750724499770172621880152903260488537594256023787267728731995029695833399137630371710416750430071110658442207577973589166433347509593687074355266006952797618937045279199701706644857257879610824454702334946296683242667574164891075862655214141117997148189690041179447855312674881450792649758720824909779692912714146769090378121076420359686977747830271234854893840761911995236438831030298876629509251732681643816568707052110724007203175798473991726845537734362098675589483665428268632274754038882761419697490153489002312745705904330458190215647409037184912965897004475466519019857888583594297938609302892330339878966742842129087225742827717991923493666214166246136630581862328188987374815810824324234468518390481099811627890008508822008086085757290267265722201090656172084454442272420678982164814834763140093272951833338035463308679414207619579978718010812188105631858329641372587818917682837748920462995856001128197082061734856749212563241091480493786982477036062302104540279731746737165646326644480356214431654863759989297433891550291543036688756173442579391562977531633355389613384467662155967582777590641496811074327848798082647306973448178861487624474925685830132289851295454150185868313804474984183387149527962160563547379711001900112609829846047500259153229307874603160027948461486407699926076998458746763740013921720042002792083807744383215191488095384868144401352442027843078422790719725969052542248049925752178741111373246151710909790031024203451992990978502563524479574659478080436948401217865198135941539799921102183090708034812816096029419462176134205662633402479293282473371145323231908818843960502895003253882221094250618434296034394416209580991162801423268812012844215867351260287338203285198610117741409979697602842160249680604449669387862589407494402769668079750729309824993992287842737905230016942417614661659835255066651334130628718605578742186617964535369937509779163672568367842429992038307597605743340969285655942837393581388046127886692166278198422603787536333459425672461401209098427396078092718747407940012026467345558487395075594827322475502868949867910879982844725168782076942579616304532882723338464047485268009207351363048458399604396630307368885249510017696194653739647147097894456885957313608376206479309924502277745846882958647906427602422926113082445051667344350884296424221851403783464914037893956610090591719811637680765890514017377754489282994949091029346888674458597538302551406963971471254229414821895785487803518338910896407647484934817476405254799245899718256093740824152241605095645582141351252840244846705999320779281251428528588246867715894794077751921581105051449956551186432753958921327712120079834875940399821745945429516552286219542829075305361898207637518299264803766143006408393441826585589095387091248341322007059021565502104595789846254220481726578257606758696567615229977081510994052664616615726021562686260405710761473251456776127067003470312063049251724568525432577354085510655496674893062529749093894420571561946350404365021964915236917960352524681774713409701445926709352620471421444050072684646379392624456097935277883192743843960811429698721425486837094844241112165597863984384678576755011701281184653366550309705297166283578728705467231023828519534076215933642471875635449036525138646064446033426803842397543661679552287102361383631342309912606252298992056270663677729990497570329483233731797529250636633203917105849859867141742713333961570228387711209595311422093764563038783306867182932695433978548878261662434126681730639100698837612892770788984276515395702356143134182097493358567485037316691016972402811480373457576048408607187644350705821778397952465490351732317742334694719604835130610794033008493399094436490519875297865457299392978776176726324955001261944711429046697894968226902888200187959497875577311415844064195539295168982772940317441294563500246838829227535758464918887514395504422432900018226020864396883226882726815351633064784440677582750952424916054973239366214468272261223069847749515542771648517971643213593060055907017609717862645732585461712033633264172362113604872995202621171406235346375321084518539467097696866557155829580270184117944597163251733537243582577619732528805210717859295323538073175466544648603355417275389700831529329255971434823073899057766878562832150331418460584901744459368816883363234422856735541615733703840806667335985948971915982239982578072415888326264820568901582065281054448243693013882263630326449582754685775561898581933719657822871447545086459019935978186902155559573496034074955853977861455035021337183415395593237070327844712179085177002462286784486689082772008225441770472034386851120459099385944926775015271235324998199146779595714047042965783282610993749565843632690558531280864470299653128258084257546782252576122927427518737144551327941167350490732987088316658713185601168491308858342969762712074966131826859114172896311237291316900844298918135941623891151848942607503327546486753815357080349805400333274161878538788878848724056724405929372818812804150303249613940407916592278306422411546260242998651716142410924616600312386505332135148816601126678904698757187018436380191699180028547828839021031566815474132185912449023512152838577960191513416351140473223661654770455161718351628670778012979846315442083988265966162809091829979268437245237536787104650164305297083052451336994480192063288216783286403732888836231853292007189396526005362006641596669261322897534986767960602919149075521965347410009180784870586233810416641663839009201866110585673590840457935966341832503155237706862066448914101726120613314642126725320266571685298724222924154950959526759624665336774186337634158815203156954005833804697634018962000752987408513650003973150263897272460859897765758741658593374254098688623017145017608876627274230073138775179806976211551078191530375594763586014618671991917695598808308319973719164347825462727899604321566991520900080124079051007234167345831240582151037021815201688601308957243210950088593910007934109668876517026496038037753391207259238878833998143196682046642761118673106791005116884570673233584341403944070195661103557334594229317770399670011139719780420628209724022647596381801524554131638201731385694621603714392695110366755574998390115678404963850576290121212082940162123588528812169598225932908466894194400546760769801902261681351750499326943360484028946966393983436339594968995130144725564910693054919269326033657229595718534450438035426042681211905943816557049603458314162908917342153094339398086569534659570020220025595985728826675236216732346677358349314162734840439823222136731160471068739029313718926364823840694817967606204760069876045705954157828040010179316761906759265509717475057001347773708362157253416584416077784805127894923598179730211338998169278603788688518176983299052075291671612323754116422961608094910550746628149538138948134310516883528576813017837174518317617287081581234423729920204189824778762093828666045794347012849471588097167735920219047296072803639236097035158039924494649413734183959842651164781105830655755665899274235007084461223861843311687744593775555349080412547930681524016321387515111553620385879164769529627094645350699695987148171171153316303620371764283641443497362914019199970228516019530899398929760353044528253570978993378745536749762043480698366674746878071432747570100800624993788651398570946359072397714215417428236388561086862064659865593444135539430714892149984121785877735820944689553205497718401905338485977172559954194181100885383808208573302333876490974211132817969666771821369634098232196163131764005559312276915906957832207481262461089496319414946489335259936003734721845111890496005830686609842793940048617996935394445204343149095117801964554309063437382253124751781104177838731103930963791777067617305487423200397723881261022697986300664633900357197250206051711510272057367041649623609142389860762259499175649142700498056773758658614129946133990434043973387336940810191139414844709285837469620264650122467814712713806061572224060167653428143423555180906075672246495374366261244795336314224372159394477197071675684567569447413699800109992956111077203109279015392153510560729486509088344025255991592926464758657959703507535738597380720459275179240023732038389384891333147786596025572594389929366648991628985326931656997578271107094135031174870919849848415076270331376203890014318618329495186036141919775792973750467543443194779164991736510800174710098306877538051675256823791031545157643107957050997696471889627847151170655283099643781051219284067558767435569179315061227570996306539388390717369928658134445160894337997575401321604599519061155499532931447192301702717877054002109811906073912153076280492162410073607828223336640042986199438035805265331491313145539286888977386054577842355310625593576527372319662362046375348621914287917101551968960397780376514844917354517391410811479146867971939245675058044459642938466253871769506270560019877776064809147744607976757777078945270780529496559936108230813131280186321830177307610447768332398573269226926823257366977032997111700991507719938370420167522926357578109182423136133447965875034182795815264801622816369642666164645424649074842647248533747695093565148510912746663923369744280338625132118247551841536693834774122637442970018292009716040705919401482568023998597469180114827269625081062886280435053881312547347901766103184483471944750290684712854752386247065645498653821364343271631714428545630360760649902907578858176037034148485778938029860384592742580676834997074548246028022102408925287763718341554595985029090285612088883696300009172908543609181845352187134511380546001579253050440019266334331833718016231163611304743406627071627473468252808921029593334237057127538439234870064462773210034908040238057877322980825166752647407973189883992011489148637102057820540028487452520043729971407662965982604973671264406922325087795669416583183514762155659227121372315001665357275908073885470849792124323947304786553955534003213914763976340865897835793331593241854781612211246894057600274834107477411561047191477764609197840518005802699133457941886341178888981010134208526143745969586902260954769330972666352685920919086161889883955789874484815996961129199034573165064018866989704669615047878718164497452423443260259995471135828635833553839209019720584285376319625479398082725447901093400517502739220082862090998637105888341467643085047117697036299349395118346285375732773521554997323579322342528359269319082033808990387757459530258870190751222921414869767044189866861159508483793981167851004802009742353738592545425454168268219796258515436134503481074872801265803355011140576059561077956053319729093910482086398454284580517480738148169336084902527071868825378918697082809781026439997158441282259930778935690531191662958365279041289263663404228212443587116319345972652445306669106091761706858150823533045726272572484095885554596969402619961566501395452754753697416762178664128576383751025002237603686467501721868780704564477604125119892566937341035860668897448069846038183671848155254568128421697013678730060759782809474754387896442005749847120097768613847960528537292709020112003500668441050544238886130576268144442927446195717325968121663134758397369588249844442049552001437471774895310482340099441961917788924357509293414316863980747584629210827560926326358663510356818713828446789550615676949149541192291229079257558473562414070250919295473873881881341912002129784580816832433428176125659296587684332273450201435408884464819100106305209806542184977945093630390157821831423582409817678166072172319433561009375017802651893225509035547597161300572302317129077662036404902229285100767539810742005653397421507927826495228326542917542528225221566049048288780802043266820830158401038787864313826938931971807856397506822205164630435954938476596246185877180785121561326777796482841903997030998634176348967360124288845688850199443549431127779281901984703114688426216534875712966564276731317062118098089605177700427382856938390759709415806041277378835776693602801810087032096018503895915332132048259629900913479270250987126722269989510495446296463546414330137811203365491505238606437470835689580710410637891147913991920361302903773138924412809361704830964434739159252328943543193095428403208677584263830462252436724653449253940167057640913875538255966800599653687285096260226461148934146904877918255811644423549534259108145379712953562888520041896129602790098923705931230348709948986368342103649365020607172338067333026118719599192568868593950261066764238470539050119023810574396742942600650813157687372533681904276057176554186735991622504709285824972501474699991445322259916603007108993268903023386797193377311026573414873625571471878081399937332739182624384982571264706374365921054451690596191169969504257631193581592356012726349781845845979141052631920114856864556138648917726206448909653312478775606255510534949561218184606326407424393153535878961707018372459485363639855551255690523066288786027243856137271843020646797420769005027213553978348139491933563849104734962866521241498831886783695799359622281445376898873272721083600217907626411605834828863765668506750827430416759386947649799357564958660155383609966135785430654907319888416539463039012177176525099249526529216390924975142108838690746825706409347152644401217286856871213098416830169268765134148768276476607644588096791714282292640611645964753249110887782786062906307027023726890280454781732987013834386011507825369182609381016721479996999793419791038604977464917316710014527243967364513020645033389958856630084370789884762853116421460559514830818914618999874132268246319038400662836437890966361174689058853524752308293607245937358431963708603629981878674646782839750162286295617655972949299542223626623398944169102138140220066483245645550780020902054196729398685602710122276518876312426264937365105092716825416135772592955786878030454390777171002698090636204044618791021630343852331321243298026410823805811791375542682178500006442927491602420432409228440058663679509478201507848399760025240762180522894055157403290687223328053045923593712547499027876034680653757380575588716930715258085527332910457090275272911520355381530471530024883203169080332446672020853941060104551319932711332793339453515293383310471408800791888898172143381112101346689223176601552899742029568982998660959089654089621904104527612971597305934489169008933388175035865314194405225870013446471731177953988976305680099767114001801684059910796929710562848422480950259164481311844713965067498901917896012806448774610141927870096330106650072120958369416990729069947309143661542866816888918675507649067558433987617709820084241502209050785923433982927545155085209155401812692665269955789595189631245095206421746065528037335006549816576261108047647014274988570659344063787994918198223416265403474370939755880651044183500317213233046890910124847005804442593627545322654442214584653271107977286651224884887143382766792913912702853845201741260232815111073585641943251923172655936534798553877021752304376770722449651443476546753754418306463971050370635113778980263076669154088896780216104614232018996249825708888309533498909047913650654161682467043798974069542282941475026237474154167392268424285550417064912198745118881700928918351015664586766869822604093338230322919203091071071834160981379879263261320347030610378816698265755916285524117846448080644382700503284033421918555624375145080030787208151238052587638364963595208260191223414367349298078357275321573685652564849924482762546181714247199371452590229278920163031695498999088711476295117113923312311735482962139867640804889937161042049671858591771026937599059518902098673140589238321570782596348430147205041914367769978318485194816584917295446009746485489410489016172017703376926107880077894419628618690413913959745256806547386807755545459272738090380937583080080995804023218845130237436245185840672414995356213257699466480597487659716818378630912567075013142902154551996563589173339677727468602949076332373612350946861746617995677998750949382113600433203122749340719797108490112782962159365856106809603401768390349068119974647214801193994151506556245172414394440164937314528161168979410848288835788519569746456170477643802173862500227248000310544312015774325514327054503078611420289598600835843423809629836947192840751286924093740443314992368402162953480773510792389042943126946020182236934219490210164471086067813114424521484048002337350456154690375823642235347123225526195401564499142306686436376697474440272000151721440724517233309056853934823734849366474759100180522911177029237706939326251735491791737120097851083074332681423195966851673444897319035529473260214826720447698737803223915283710504776734141877031691284902299333220444951091978557845554359456906388234849048549340752395584030877046759779886579511681942391224739278909775711026050178337713709277793638300361132047075401300830354222432619495895863498498839310611668312813840566930066616957906414324734183286147308698463636360966411089564906255033932642670309173858772553498536878435556535640603231466901817918652715487817250130403985764687155652937282864373549916482164004339174275975341526553856484259886778488950561137951952089225978711938298941541374063491692055209268802228989524841105377395221182647200271676495237308116349322977696932367427339727647888560439162483986698416708387462666167209875377030760697177016746549974228736643658442047422222851505677379558136797119407098281498096671813376562591627982658693811874790740278974280447712987228115851348715547763600988671037640385499643192236320479396478102461630666971903191509246325873321658946954582325574715544449873279473553415883918054436854142567587906353902105449975413927441001704996643442280998918588451750641095851561652466392867767313541859760243476910798902453470857025906724885964085673136872857755792478559983787367435081835339202117183766985472311351829661136963290427542943894519785512394290007293053224239542015058519274421639964980566794678735338485523441461625460641140205304907656189659793914572228572419189063682290683468602549807503730554595577204083517955148967582364451796646465481205805747143962039600468959319936353029177117653293468932237299561937396211960468231317362214717479234490841732363110823796609734822987701493454215465228545072996572811929377309310863817506148253483978001096920799009422108938436405730274445260711782449143423145180210850200460039604866903252029295046256966927543058829672938638563493407221486574513787497119572205830990557717243323633094001465529660086505049396411948466881913550771484305133407521945261836580551241458997001496225607775160253195370840287341812875635072912138970382477006304318093550961775262334161224276461113828485826667860103552964095720171020047003093377861671671926828709134134429974269602294067066829554082265541097310462526234847269160435946938989101252427030298306194897465563414593326655166939927254743803315722274593387167094082642453138542222273630074320430404835431072368115442195334676174311511817268265772725655895839754420466021269726945536528194769358704977090140183638161010723015488069072323391719314918075558760896034962808999160146266831255923652423513774930497838036106346690103297061406327817183316249225649091333014798331612857440045532333421573997266674223167792280802526730886004530367959575158429461995041557054749838001127745506687958088349967099726495213002534223208338965606771681741735697528026153898645776495605142610290996439494343122752942818852584822917642037218863531355813232174204583511618390356740936773365262951782663897620628885198783876561596178374907935095758907902222203446951636696786894295996305297982346268914035888184946263423224822934928202529230887890678304907510398041042202549609528699157067009443722085878330280142304217422096212056557162566746750371936263828040025680865767293019393646294687449429158376805432410190177529027096281304397762387377996231700213615187002694547660791417781729207678773536170690591532597039567479073397179430550895142311405034659374258178929484923136463038193935322385264783598252168136213298630646470662748844469635733661634892577542085100536471185560050623814140419782665523508929218167020147336118963864291192232932826014203083935693694311212328340041515378411060204635963996067702392525999340077990693453385519469038269602171914009701108589284855000965738210514297041224736534672288246382919683662915517319448747957413516255957584293352688728320374189020477231571323123195799115805315929993379990671919268145472007388459679690492836995864582280269544121924513574777485833578069157444526076703680483827792635635828106975116020550601079659210462679385082558917399584226459413353277733120929091339599828470006644571183108713498314570159522156032006907901644572638845963849406784638974037262485902166718391959186427841965123966713101963198828826917378033491767293799236331768112153559451535763947669576081780933654039627750525326575808529676780352788495253931508113140562384397712925954405949583575800852093115795383961727329279009099894972838819409778923284792696417653473211057576699867577824262051964772923080884049090211762177480517528152579330037101134765789026782691129721888814902937163172317924988004463152770600973216430638948775801522732742983404008705108080173164548527576216611881940898906926413621424612805176382858155610995149239287703538744860010961954084728011696517542726940022561519817394335074450494298110052010206987879185488183221481444399835107490065557868436572787719619272278003196124697578362712342903758889127887385603159269260532974871227434804826533039995362859162122128567354777186451252580511314136592717626403251347800137309017860213626925290807370455920786343675071839682491000348534307143929395077170648575797370674476491245186952407352438907631134173000860575268279360314814204989474122155655356050647653166166498941836272208820479959284503674777466095457688508737406498497589239625099673932824755579289554684928359471581297197743885383219651612619821010683936535437879439003252874126945470169585770086895960085674820394191344619023871067893281837346476687175714704214778713649684360790187441483374800728887912764215468672173887841631130180056350187563375335450214146133660022177854086865820623615354481324469548953916967778365681927907125172918129295850806839974657504980939973972791316620047210746209982638157274792054777800327999680318912351953184760961391041231804543312226428726356295787659288652555777891040660407092516751998846614421429907360156955706554983607662755654355104288229372734994791853475126308906731997763730740009257637097457668278340021400687189145673411407525408515042286421246767633491099649106858645292844417648222627105160662079172848592708360538805195587619458287512687669778179857296320114531064206140049173358361721094545187396507141357744367853279213486339906900968597714915285214011593871744985830739339982226867967225913946130801208605869861391914428555140857601458732262968605282322194670573887819730606449686758944286653699262359326348437989833441932110950412204846736916294102484208717316106089237629319308023187632404616517908866087706420640856118366576907679120343904530614821798219422061803448852967859018313999149067637315581065179977856402999827908866269890947670585080680851000147010645174875764548270775649450478198978595159412105007423260244487751862595065923600997909584505486133453866083706701376872240088737614590293656844800035090065467289004801081880462810791816181856705332128903251740463122476401980617770024687392160990704266262060805068176017183496800707634987406181328451401944303405231967858251380824036551742358165362610455863720957515420873305765697133593423784893871628319830663973337857911240969650714331057206148618721748010189968957559736890886217066029776869375646267687860265725177020031747037810464869307991166836745243245809645657307186684578466278732301471061296881178547900454677472389851833999747327388314197180059689765414628170590191848736495800808893294059033290021091519012190160978569568777680805721188833029878737257285494770598234693458255233487389163909764486880589788565174070323811737895857006178662991506809861794612960705038392461272851345249392152329708720038241033322191450400121110912848868933465312132620140906857693153268850156634766248356587758889558749010565287101601573571536089627418488376056148438972127750779869699613879523275281202539107863397591733958782227999600946881898635894195634503577851170129814657831363213213956100239758584806082056606709131150956959848362317734470917310290246545103838052815510173702492450875487871809910183190241437068150506030817716679333027109044114994246820664273866999918638027562597810429018499728740476937081687513239278035446282199427939892462451165734260926065329712724794174994158640757368057780512816816020893946813371738628749706192789083486919581723662536177565737265423666617534664891477856092144050182812473001533321333672276711626635355701925851433809854942112361637408356821643645636055546172294889388713035475303933908030698054547324204263157376582287080328763943219806693085434712937712329486602817665761407324668954450681508813643501383301227550968242245172154935410442493041212762600750030034457121895537362657698512276796959744570990542981682667140543765632757308012532476361040345167864810084069905809660346879982676706322328359407928455991549164805468830769494885849864418796366564686687500583151151086759315433279075381221476926589270127689657280284833112717688104431533768934106024957849845721204291309045978353015789347197854568841331057789440535157384851364033548465920346827822929809356102683852182567468078621786019104240166154742962250225274890911211898223676438348386228033263704415249988342816118200598729909627721904878045702944579991326529904473247530057323797631506302019865201808859413947911147880783054122393404670986196613206062352659675915775446362112778055929494375286269416386725469574251773643855396477280073560972732885317585790861312075701025569549162183027276653325443713143863706111373392580361256391434981748932874533113787150426535558476219609733340152752454459013199893147203645387575528066349217534658698729120626704818357576070462743816499335057520798677496520619905223816773589656226498115039395951136811288740524544141818677570828708695909430597695062970296347935389563267090482264296523637283392232247408819485447318431527686235783960015425027472851340534131289822307411940593055681922103935445419751540162433853433892682207841195934872285693021022483986240724649525224970069988796336734623518727085792470783362614434424352070072479332886804558434195529372483456422103036574188033152165111397668689349038061334291263171608070627308620925270516186619465405104848623506465657929464189250941934658862680331848892621513268112137127194522416255202892776654124136456840625637987248623091620661405744901592018172310319487867149204203092576976729336414176165053735752594525407744386332156439284124974896338484414258649433239133456849975128875024614428537953177764096082272403722071696566221550767808007775161274265887030570462690853151513957510669312233402839404457638883979556754066863664496119940403388626364874033876859367298635066699184441101042898422653785813368436387867563249101230474816269276961500081898272432150930939940061062622133477972466006494730631473463416184227472568155974715798905598368355174172390377972454984618567766787770463787663374548224015026121409892603019797976611137959371483577528307296851244995656326215853938206132506314866104046708221274674122744422534397741837504598550035786844242824094337576389573163105256614099722213751566513185989531333038259711620995284140023965310027887234294373450682492738174109663886244188455795233413752676538721525125194753448704035395727863727190659180989694594598300194069061173017097683433374461382083214208999480327144479593047773287984255035992709502574657009200696258651775746411879432784906950006738716020892184881843260763963718211238782173829203834581753227825269238981261986402563346477657789312834184862878653742213357658639000749133244891230469580429605338384518764445564121082622118494681776965428430439777909701637522038149460525153769031041642796170991109295102543386408108313379482284935068441604896986391669585413030858937465238988362593970183986790511254305426343755421206293245419059091022659467850108094330603810844941352200665844274773978588812003057923474026602764225325754904004067473829477254045095108375458966040377584279390436187923186422150496697266086248802828053470159035177768399801518415339239254479971984904301272389847355971146391716681983515906668253144486862551097707802450698176578315185205557820413375681316460934506382645484041392963326516853767614412494917399184785299818847923223674812033207384751169141693513297395199066338370147904142278169254639276031636527954518566838172322682502242024101334538487394577228944901623153055704119301414121734609473799114078340186940777429791233688475863193992855519351045281223945050138076511363877550295921946372599405468678071113697761064822634749551937081696524601562812692701043012513524694038934580423187046604993980355402029183480551409847248807463094534594907060864598981889068897555624636807241112894716885270153445834631312380737192650889950479383956943446942885874030893676683998973417890415625435840730406965096602466303532756684961743477818335696319447162645794564788758307158005763860707084318320954788614318391017371738289070959370823995455079078482938163482595921612009192170898330369904999825087732638544213770947376992293975104535385115744182478175968167428879727944971383949204663290803608559356323870240293765587712306043018416148349452899015454978910767417066599122010883897797003674810570614049339835284332041242578886668770743707885480294547929842636075230928562582544015739217319825462010979611933789957712157501011232088809616182423621981100770292719345060747309198879499502825655122517715854189858712956822034216716743491176392457400826884079230310907198167664969678889636859064700959258197209436101262320793169925396095765008540669837636228191432262971127898485523675497881457116849213403587265914048046493598239145450236563268842354297901346125502894812058855463481509979430652791155039411904836688971214115036262698910072797424652493408955356559847823057644217423343238267709601576918686401635790614341744390145252737612693837250942363640393566167452074288759640556575347366880905221476262027253697478682128848478498327755808221281875487297218301891032698166731556769360052266077902387457253513085923467213317056227025673720743692883073729355907067732016319382360747996123806846762199001425949720228125241225879599585870625641248606689461202383911994193066359994805986239291637648977585292979655155442713704357890586572429923401810231979340768905029429766845916323401435096949538974657834105197573802781745217811904581390615677990452938776992513193589675341974845455631074555630067120992679824992995833153231695630208285872585165578260249397190069633548223976034288060497874192931836571941414519633088921848639424658217858679764611417248751673810426461136190762024029408434935836532740999776814482154184178949692828683087748727934156594157822557023425685932571116436183917834251588330925248450135425683843130930719239013986919757616601470287978535831703669975733290495315290463580681215451422565935486715839102717681155710930171599804498785393919437753186205423742481905147364252978747290151210437926032592233851937594314559211896704649841158605087642002235219445212378461759167212445240990916767204241316923697184512351626933458190335879450326141548080537724120818975995955323130430704546012459673089561611860368054673127080918101578005168973947068845835319549420071110183811311250738083144584409240941461452819381474953906660085220036480389471025212388939314910845007822652616108522495629487020408852984929390464425247394281309254958129568091300703827301482591379168809005672931934273637230786911967024033196329079315892363675533160675962394053913746878035369742050368773517701451819055566513292817606163368281238475093922667694799188308906486922552897886922529222961912797860014296603219434469047485477101025159738485560536002079728059123404365906402456188124103479827721210997585513027266743158790436578352695875401354923445131448217806467851924734652740692649316006099634244970113790204218003296045310607429095093944278419980943923285283171116891192136262048940971502725036812384047900956515327563872606299564562319451697529469735551235172301341690415263485432494367739487800064908379416534776683656931236452607329969329025321902367847118750664095085116456840952675975075401111969310146143734044623427918312932574223984881050304163235616433073882007963017612157306958907679848091145918044493626979078634349671088870310939457154637638277802268744965378822558382871401400697861068273178305154836080116112315870962157613245755533393626003357809970697058907735668686170679435630981947323541634018161146153083041005018935848385568750176191395105900937223548906162230831360917438304508990588161613514034051631767536104427302260493212932114782673396699957092921971140650280287287472239512611281494149184712549616990537301034313679935686911881971816244425159489306511515577083471955417148775670490393545782014140105452893092017538837619050291783806367352795398985063682603374321503632227212660887271958558105506337276061831530494667264488023986401951998955582476534170540096622101449902700015591864482224118151550029061921333465715944560847196013905852641406603451434612322830850707399265100866080446366144372577301623646080445159078589511715417808827189692246142955950753154900438174421088105493529207276221593577359270651842024952850179247309711375602158075399915513478644733799748098524172851880930817771426999685977526768750565620425282727678650185991916055586666125034382968291435104832898717393057433935245799468767947776681817572988535939440326897410823713235263382241643647845654089675224740279612700673804682108422588390574090764293513852653394419775104423684714606748915376849430300694933768770900122813466094649756462140023571801137861115437242925588091785153481692579387706304465405395394870183039263871753626442086112294732040062662944178483087899580923496628999103584417033029323773612115621222007318597641495388099532462340953966565371721277459017413131335901553013070941347479666402788508525838506547149667763954692190027967340152320050227516890561312774059772124228294829871811781311832926176565745836438987421751649740797997713386757392250497251367703942102325956760123378199918459068154853233575000301940372873761995822674145957191281469981108766511872234757610574815474480556915917056639802885836384145202673562438626735992492834314529755594238763277698192981992904496643324946718473657439113004479863672839910401441342750792796373187003110511250892540235471707999420193635950056976954844769039309741738441296526101109795072686506218383355675729721249065780737297337580819974110448213521917556037828151958200869108596917042863694553349392691687428975547076878697143260660435953877288556387131916687971115485766048490211361539502780233208143923482205246428718357992200705049991588304677669591350436535132001873766179238868169945247344943595540185313055004120443487881388152195197070294387502570295479928136390076038001617891335165126923449981966170028726643045306131968640685544621138890078872339585236860293431181877928688658612273144535602607236273714412993256110731844707637182422140869689092846867740949551785348261920972893640849261806798884947413251766397545420711845782884950979609610829361006411836312394910150420429567770939340657761073729671548967019738901381098899637896115573869590748437024189534289111881972141898202921457256753208387328752745005230577726584874516829938858802274832844062274014962546782970278109293245095327697474362575506252623326683152885251072461200094722815366512623231638338793026226503134747395871514528989220712655485394685816582270321761532252728892497907518328031944338941974787030792464208338058719079181476528219815996537885349169323896323378340662132778086518371066049362836659448287112643077098116243563909610646411912082406616119052300898814262493073420018356443361766230151576384188753040803682608828880923092306835012117596247903827514498795645654821259811302018254468613599265681847375818492790046183193878670774307302515381551448111016459132563928186931162147620256714714926102838054744548559422315561745834244664909533244375922342852799309929253095800525132218805138525229778398007127232689061807893450402834914098695146611221940651469996704910603883903120123243775200184230646956191496912710782017789392436960458715930305742159849138536275207039060284093330939100799971875672926084474867863760190379417460156011784579162718083433702423843452291892616281716686087112046056385423910096619797373374267295974999988305754398402746973489674604629819012755131574055452668857473654452388507546179038660339237763729224937128270279305751861763937679349949000044450984126231722069184812878120836681870660749747629112976731445062300093825793125733498671102884569251133287928225162826450227100013933077909516410615824436876632712083212897855668852338961826485576690830237847515010512137410085771619889693312207290397812448862660996411298027954364136081713990306670394905359360740738906201080530695369857268917885732167833434728730308017033019166713900258648791175438443407332353283423009391962421062082128343288615546715074701156352177547501181326004390951136139454109602189494152972621007202532227118231444218695446113227872456733836657578446213774615857682800390162104905695053189386218087656270285616458229059175404202498293758362331253305249094523538988530097539736742464403769964935868475481051115777865717807847150241935841231009523724348207694470249864353604195923646693246860606878435809294444925312898263734783988922675626451542641190495012283104788091873432524559579082174856240939439073145156619155289739004930378025133649346801841734638180987105511667229846703087596449092552054817711166720278407524386940396365526787236590884264777642208734987132631046546199830574086821666031189810423720269333157502697772783993126100465686802352304699590948737882203390727615143760398605811539539429545609676585939580800539503553631205119441200743123307249928202382959167050986313634931086926643227111520439751170898397306901651971558431975940263736288064619831778396373990037483074376892668472643535444464925096991433772651557678254460111697899647861384589717069263249205025067995994434100774167317456185309906703849585698002754558452880275587389983215063499954084177047506355519021207657339999381970702333455819857848110113199870261216649778097658179686399434503680365582250685168878535817489096070748811946927497072259642691385039102843578191488395508275719915856328683720447360133053059416885080734857266909292289393166746575176064278368794959185192750330485504204206231742899500462780255409817227833387402339478917402283740310001034893447073523451778763352435825648389576694514696608964263143160389344530350993311972854890256074077787607603673245501497096382593646241997797705400137737097707231913436451556235929776050259021310120129233995594393869232302464027898492879211243200744044675536091683636025956619005235863556597798820370365259144996123210287476623216787085151321771517006833875080526094084326690059813782244401591106411534291609248328477049146302112874342965561192804376151085516448490057249290750513290721120325376798696506711040102366538494799153559616121824740060299624901752733010244398045402395540086247568057763105492122889089337756965492674139626018660824886687554171999633848776312350048054520916209973416458271366191012721878069018282545727082713477694813632241788976161267301279097795812776746465661932432897910246896443624873128331207340455308682527434975731826024175990750917929931667900098381149177589899354144532065604111485838594526384340178288474359815844145269116968125151061993017092140918425360532541863134210517788000572411439542843019770221444594098409044219917945357575820669318771287040898028449429785817127472608878937209986051458406368275625256894630151699171307548008545963662069558130506700895059233591074512272930528782010781718661942012797636708235610229291807963732380426852643726554179639223685497624956933933318535949812265004440715809045012204188585093049103205029708110240074095608791702275752150534052274755946261234824857350218962801412483340438786966044659152912903802706223042087909296814797591417238878721096604921514101649717122135408893731725337316112707337697446114910476674818641856652421143986978062129394158043730139532764970542633247497554815838060894493622299167219263714039591944706621103040052783371645358991299427886563464639105745185677951115151608534004348295276917563830301607420344940863672977551134702094782610417089998156733829450183403660262089825379097298285930301678197942029825338768132437770195261146149665902813787482299612358267914284451363468176290548185206412077748291884693486427809850175533697735186989346379347716497318500985683839707852155669565469720820676252889264635327892807973243079390220277745490085372191279181995903273310946818891920308462698647132183804621250754980528202632630476908306904583530104311516796384177387438931063585367930140000729995726653615105326364467803301979494480840160669865602544838708846552816698406853718977815299366125267189151924423292984040438011569696167719085986082434773985875592910802473871556277748635090224640440513695411300694555914629699149239238979479265067887343969269120606284073457648163325759287948290665597871346065182737399668374965327230385426897212370064091608583279267237477969602478818763300277582381208766786897159064124927896799634340159142169110692420585613860506920534592523378102816668608998497703358830331808458462409085350985053924879706879788244167739513489899851731139846680206184101141260936458618519877235946381794321545053256748998599891153798574793504254131941579406274564205009003544875314791453901504056694077526659095287713149768921664863678107902212133859827597346669723994526006178572409369085387453198889587020546188346203932483035232122400329081573004861605887562372085833141709831018347615694085488112347591325988581117137787269131138969883509271711280428993252834958598318679492155165568830615148878821189659062068464732550001513407323646346718470516749969723811581240203377061881274942286275337897188132131036950927971251566202002620217859663994231949911335250157085060356436850679953878775577636162620362648409226918957521587998751916285191320835112760055192347413737031239916988229454157370454174694676900331097641534715413890106303344309096789060954495176872655101846934086116921714434377446300211481033144874833340883629912348038154259181344752431156814732619543315022147929837408328336178428871787423391760312784410471404181145041900181734651539184345973297037497601245528589434509355105762472524950496003603213877905646805456599388289731550072987840961797794826576311502694216097390671263774427123554591818901270257452379170537273742825017795797522327342549816605326009856386687501112614105340836520556684143170493454629094097377772770912765521954034882264417697090404741428467980998292799310800445862399268407656077827381600020237084721271485808486651728469295062370092605900509164026421658059665568872075904776024305082487539261183579454691695499211782296908214151702861863268512757573030028252896788864589917956154256957890670626849162254912861356593158051606145251705133982004379682719482088249279365920492539949601854383439584837831144860248973025660319736455984277660751614722436898985579449525653309451838128944962093267226284036141814898311317926826043201818010534838388049893909718904552234814500866255149735809951113372930989779571215500018326697045804467598390319526164279771078894209651786622958708674615737049914240106351169888806056021546081380430225790485005827790304945251274591847781968931860084627085727285338372836700853026572953230951787315899626755900890237990695684734139834784165266512877989258278148868038403554577757069520492713439035567413965753970193857758958946054630289113726271839650067170193356549791078820213872639802798535931960900772566619420798470070864770130139657388849775930847976298838271105342350965312079694685340112616030196897062983119161019929782068101731728562040883359555504970638035513950312340282397427033234531834313162596070110270677852324499246444022720591025308046608282486840879007787695450286976176271869279532867590393305996131659742475855839146498103459418221674694849224182897957962527150227164907396107642909023961079634442661570827064454454627060105702362838291272659953363090428827396426627220277061360242401930936560876324002302725675468627957193611927119736237428459613498378853265723550721805390158928821759947165140349081922633028808123151811711531403588356150245557933562111239451592141879117951816323918825638398937882983990062972530434492595223516653092407490097642837973230983636601697582911541309370329140810544055981498708724525130542972681380110058690109881509824210265231620908280050974970097994423491653187614870562979016628709668146937015753464935924418043216006464865091310513855650236373323619646061962021141038329335199739236678224007635074270487102432165136999780835469713914556947325765735272408298956365472785551048095988008952305137966386296609706175350317554111052140109039561132030064343881352542120911149158677985284094593812220650944295427855726195800530371371248886077851977849178273943000444700239940081121850488499004349228405943533121302854680584384413667668046306370461529661895212144115681115443870455708849480872733204705005557492770746758524190715271984643964404145028688539099505536799519371885248030863537283675314899702413162267933787111427738533578933668831496155843833793145921566300996658508576881856282380952461406272155517107572478142588724408856614672214753577637151617815475514533319212480276196449182039628329577598934463541270916717556223673142349836541792252946117775840466485582163185755213908223849808500686882084839195490556970170117059178827530869728319640552733155070127188229726990989641777904410341963660212660652410368379831257388637476741346575634049710188548749478196063189494329539087162774072549090025542015657540201652936136899796526434047074801562944587969708079637434818583465451209689599664512164166073514504645656314423503350205745562030033087975527852275838885413701319429896143283227402359594269229760516886320626040806737766056395209498824113706390655927974861841733903643691913903281499711069779827330229560157639304828016438655269760466987633115367611844196382373005907537724319860421288186636323128976704153748619645883660526943147276410436624616603385809727735613104123814459836968379726067299534190095931542371039730271650606756027274644062840173196377916668851666810725045829251451143390220791429260224272328779747637985065386998633936180562983536582874873735836980596568573886943891102557502554058172027037676783707132496822626443451790297968791739501512843696604032086528939709094573891591158345228638922502263540947787533328105256487511564345709466887937841108803109578266122773035022243539520143773074441607673959244965156888862784296439348961894839852586548072661605348036722283548057680484896819005256371011758635725532854256525546228538151733856445785172700981465652788211483796132607568441537313869146205438346224123028466627962165198569042841910715696980393039578418078616955808568224975150277859879023823219880995376678679830155287851779247242460792947294716328216695260708784986226758246163094884872326636945796208799810822805218838943389174895585414578976374869809588988415615389960845407904189277361031660149675435956669755329493865090079693332862281595683091737190183142311241078998727537897591196274527472793588187910835824588655412647277247386010471219924993388129753849573378185557547881487957539305595945619240887379876779697472322545536005686630805851950333533841365341094119330092356208862532926755580436799727669284579076084361246760574274910978045278323125777791974682744837985203588515826288897384730069864623279404619978858126849410018542506556282012671885192199968536332694624861108128865177081978404897785880101960390575271594872446918247938830889274385508740755321184704768318178480136836931297037589724503984041303465481412319523525934350934509937362231733713007383661512111252837245040627031212650979877500779295900050182876943681276092030276129926979452841501208074819484099121226192648802431849236320774255685944353026169658547176046539590963826573684634734440411889826008859395094036536674566439058393523643430515246078241120184589449124550390690278229499584523965453153980884462478588878703504128730614063282128073721861577567328713082041962451460086642303108120039169501205645345037076581543082191291206857838270799186383926314715767192673713799524376309794450146166023078862152307909614616827391022975970336841459233163518302141577179936313552589429671416022165949278180772992264561697609185078683375590754115634162305367283758566842053262923165952011230338546944287104037952006482797695505831768703938890238282412111326764691651007024439669499270199526995314508183204067130824668797635037230359955884288583026158676030310213216135279128356711345951885652506644611941938911825527853614831434999590157342057108604923668031366093961870696519588663268027004181241898354596124291856811123440589726651893112039117698299693252703063328208463563203341496900951760180740410862635334936227487159679067996311350709162528706079848961243729281389448500323322161979390130827548983822827497263431529049774184496079377993708095906607719366820363700607959527739389019469083483063065934568299676537376922081828855199896205780140165850900408784801852477087448371673115107625759308456788694572681296478297977176448650350232255717983499103889200821012463051990298204739145132916658293895456891477145576898353366365643697889221688670779159480985239548562996197341699806201984912037408765563962290592619871303265513373783638923420403671187161065012409172791679194456189162914393838414232931297568382033030931140136633662393302893684564447663464618020659191560628158464580926070905164558634828693437717566520959199268556431424461462127651106236510430661850708274698290791258753096330114222050164896059145061125829233422545857486307295130458209401312428439997672719015203462908540052095371498972864858334033233944420536714677794033367435961031768149039287694994667946929340703148252937027497081431350507233582721558668372175218872617674212704630596189220359902564006160960106263553167466376098854238007268938993876271813188138648085843520621559018525103292009512922678284868619400981881682478346865418561020058249227037348602055713344336451981227068482128372402576714548031213805309224343015020671476901280358532937481173185997900365879958486912274725991824629057174843621226596723020135381603341707039988681304301229298829803047117959341031766174015230674857890412991400496309565675447302964378035043862910064003900086456435863810668500476777078653179018146284408062906905407227058548024974796961243592403628310630777620023801972685761516919223856517728292447679365043929049457657759001473451755798851673221361001266130836310452943855293828833182984765266506834455940255192722460408213565515357474328465835494382242584215028256255820613285872208081705837826821546813645345653427558834533503292518842679849445308328746261125474744478330690803952982731687556473004380327836339203164044750964952834322252649481461305514826258022100780090458993788775369351503001580087343566186234515761347654425750157043474664794335547635169171480255072980611267294836939941977324680207637342767796165582863753787455035241068622069290203229135509771379803613261971444795773630526831970862187778218497891574059178633210599903009897118435291470726592164541755163983491479635135947642720982676987854259982690211382005544601503709583543178909609184314230461380718125043598811349189047435884333185048110360595020808328808364399577893843453402785983210710958344745432406421355801718811975067884235963815089765486156555513088002386910397217038606761684643403552564523842601564158698404802947612010332139641119426137536283828072070004310043833520853872547302124767899045338036737474940189548752334371484692009944757041630496090657403956980589704588234453633639377778349885353157765529313969839021106242225636718112601385010818691751670699796139740712480817695140707027024997961915177596571717208005942580070812014864248441125054031509262743760657333863000009921740175162653812363880147727190415095139990698893481868461693775542977704041854606340282951488325315343421854320688134906013908303885176901051381353081258117018689650719765799507556563289469908104648771162369124404340048302264857754259188773779662347828359394342402449876127205547675121877280153046273708893065533780070167848442812274154841096428464684361720505574018422248109231469109357434362690475460914859324238886671564605868618698740492708842051874611166936047689031248311140525566984994052452923485722456829622017400182794506911826671204256830737837683325139951907940612770763097283297521966509445149207173599753132082295148377161662605837142055227797305528356944295074376464379326964627910029079013818152166990493980076094689773532199465747269365866067129818242532719013307607092809937489965950927163754856295713091475246899936973883358114839875514039232050973662668413607719536208790906479691718895231434914180330727859012877610698965991149877794245156377780463372415752040877648667115923461012494134095759892692408270509883083338308902471205771650962186172778694478769326691258943827180568239578030427500168810134263102972340807308774592305519280093715942515021330928692194007893241065859242563463593326183160279658067718769960965419398352810707030011821882885370238585287069880707976548799665796779227009711195348401418702262687634258846657455120469290036872847764577749702833037745029964182122250973360369949673454707402333689293791059087965060409886462301148395544999852026091443427236935935133524366818536976012446435813955827291790578038755401921953238212405558124544426755930673347453334489783559583998083102554378357440662118723205397926156126584741388482548869285405699771845947847607798740475128248441884472005315488830517782843933509708605393410604495058019127942483531165420196433530471906951394722023528010774920775554743795130867388774277491846642420707399970827575065802913472694683103411742371542506628697118719964073258641605421818763440967353082516901646817839440383455012560510800120083921074356140037630949085147651633823065993295943810430848754087421360578918169877128018927468077228042518097168494437120615661703267247414253668884094871803006292602780138543833115739585825937673945190365340977949117809655672027805814497949671731791547846515642127845948784797563837367269116532069990422210774227913767431431675384074934255433931893391260893416397652823261073065404583971268489945223249298266758346866027265770027730079515662570544659011961972886433691214998646059086456512990811915633971925878934296159492911986335763052910863643652231246033853295677833810870428028872476268888413099455597267637858212653070361403654973771194021236938992676549538957785516997282523317790640436358027484991687818090503564564424596898587129669122948077052375071353832487763399576261620666367745323317314094213087638969902277164587930772801145780762647636563600752944001610231686207710699934157703070736696528286770642020368831086412995438098478482978410855354349247393023355790151624177714321418143020465460280132703626049326552677155508724935443527667055178711906617182516222919378681472035393878213806478796453759969123340249755243305763765705384084050619157136045405108871363580691141704465114400963818724527826761589101572227187399129068149421097585903193931539213236742723761359611898525524992670181259017751823934551676362827644064236174296817271201286905698555877593330268324833774195553531452765592773586088775772041140849531497808978786507184312401139938239387466307942749985114781706273816591316155404714571856467400652345384816158216903868881550682577689778642288725840919434328985074869800858978005001872248757595502787969835659578195553248815028108690237046549446458471538428388679619158366541697814888073276691198657250298058199888564634309771737592278195954039664344482328232670168068090770846057850511536842220100016441680808209465272270076004277611818505246632361887250695789102682451924891155474075135163984957865284961293226091738226855823505999518990645679839996905658815465463151284726036053163107720015405661512389431046947836738279844555495935258038641715370386012799827877009894694855070278082080915520806447193243219679911168498993327339200437133651164848853978646829602915140083300283139556592473181517922791499790914534201835456927338921553687079568359946919236355909203871662940801867650703929603278404472493207262838021690669246497290368908464916776690823765233036869680244839921084941366328013601918364152118917766760981198621542025323641704392816516014094516848952055543882610385681283576061214161419001840984016710289536287198799503040883552893630602021618609529863972537439257001033123789450231968990980349481095635779203166935088150777325698672904181643458778851224092078798017535805902882258911805637230345837019893243156142145721538145532888098393022182387545865207752851521435452115611991964722248215488173908807074724225751063352157943073009074553130141970055049805989748946620249694099886738362889385481618020741423440341390175055566693024219615813793467845989094685080407234530271209767726366281436891205231619387221074795099707546888929375327820984461302973923137362157539198663278019737495286976318954270847305806149613776314203607841609382166841528333313044300963851934337191788985951167131594543869180516226101862520810085251660352597368492234412445124139706445286113789274156579001349792586749662351901424912297796755932910642384699967915273237568763751269303713151262648849856178602057801673993575449963962433188972697244228202093359909667979140613006984992154585133490081069311115927904646813146626872571751592007270886078876126836553303076839406626713129218090900817617915905220844279018872524461383061266654493394684641258729664066136827716551137801492282214071830111043251443228054322247572794978537604838006571176028639640654007407647980715335461499143377471513077994013641146633079198113041344520876163361887832163567109936226671117077793842007206569417832360164147405038340797185818714615281583745450956818327464710308523617783952018700557924441841622694076521779761003660184367771423856164046392406898364594742397185144415457975962683902504811661443654514154156533674109603473195113008082952728477262618673160040318624459133221501635861444959973608831156797680317935428297837152115494376624500056248042566549449158338488669571387723758797480511889269348844579084461571130698094099513891859069037305957554134396679565607186901696482500046212316892606364655942283495260823865260351414138950038166739689360064581996027332647076530052394100800005052576359274274903722605383064958796199532292168151073127641720920846624826902368534812181919595140018014264786085965619550698375912661542291188426962013141364925981732065015744791739083970851128978504598550873226477553177262725715413913007067832812139845918465686069785453903377688265663872847377300702114772999017284032032847172555487806877889570100729109568191418321156435919158045531551277260822378919887323591704617143984490104928399536501266823477523172125861851828366582688086110467734791151572781080256930662078633878011011412697120821002788423345374049338277058066716029637277765175338556906721739740164365813986883007765298446836849463740046712961355205250547190931566630359444339321728788204489625670919879489912679667924357553751102663669252307847142557066709900772292011776684657000692445438447204293762309958133772486478090299122075286567850648448962319541788221180031546715423749919422065007129636683267218268875505712581363322423455043673606136949988887705129062451648144053728382313601413790026099364283062259783002468752481471217060178900455602998983540064999435314047262626203162358897335123082714013744457132989820775278168317826590695695060490538453433703624335446146496638846843124044127054416661897423673230072976443833586549252902800704264520726712687251825791301544928614050491107401283609235928075363444003000185285926388672380261730947726773866390517551004167962726513983512346670679831283170138632451331741123607482818609864349477186553293725498825619997441121611258216120882491483341476297952589914035106438760284386253709911656085652414335835151158161436366290323622724151755490748563217364707479822713842927318060639104681240963196391399498995001519293416429195103446958995421751926144563301192954810556044236161146218515029448941225970635605392100715935934759079740594722716923153384054868586235337001134820632775837447325342940330985483813928443387298222310007612830107271136172504709115608798843225178374425831308808353393461328211097877489416862702319014651971094192179906829214760290380620001094380857983498193503975749021562135467257709583947609157500163506471531053307304638659138535949639717432736359661890092955728796740784677211984991933103606307845224817541065378115897955291816987301932791800937770089220988047526060287343902890226660979281967694894001906966920961881518337470406466703355542084919292563687669148928538593264147302360349545610601983332306455826821465019196204118117512923615547556965382591424934186266911250655212462526846307334244862467621854786738865399502510470886502947686558197576540140198355607713652789560620634987376522929933821682733118128452724968678869256801902006861680953475824784068275761789061928342156795342146526648074766221269637186397177843425829971362058838689978442277797391613317606668043438505662784240062745838900398868288736492233339279457810446240824560952820879465743603997907995690554811003563769591601027171951007035351476750689166428712576006505937902516107982466566814377210846064417168540378602706425922623001136303100149641287913101111451263905835569727039210120169568770963990598254393315228255865947397267149725118595300892092792661981959353222054282441615934514060203976000522062321533594663335835969764864896857628982254999416679640060641107884752034919964571742449322888729639110298943530330946244586875056555506805791851161696385938088882975569129113801422797740902902483692265893720925173284189017790621800429873240440884195314696452533026480039778541988356279268395292269470178253182258952213332505422309256399495622937134289501090455659176749130378787128829842246060291737801677486209580427152132015185559521751122596084253400175630637605156942926926238602021394732772697705656974021831866567944610986699084538486168314708078238817233700852737272246418452582808245406463723367382423915998237140719031812035571323620736049434701867567732707267014048827231686017885686914322722439083831434718629826225524165939287529940785987178507129869687260283491876464385808784376666542138003121748822877328566694099172085737135699671742433067640754627732969626339036592059951873216246009868307439105220304381217312384635108641297001961059977762369306341334209229945492517620652383091148168623554339600642472367958982905131862880146724704784491334780387325710934242842740303623070603419020232469870654539758820957665002246177797915370436573518897851654165277003165172541660603494561408894614982335883050578497887124970022561002582435592879560611693106393900102678009984018850994024939933798784287741964274947595394270681609716167894640047048486129311392720615902426495125847543628432912743179053335131433802231032030672829119488489995395268051559716794720545621746237354152328775569006301767740389222618985960648551577440700656741402249576832559886806509747250028816002147645153709411122805700861083546068056589453812758392611227033610814207398734103732552859282064412712674523294042502452891961769057793787383507495447087705330108170501860189794769824962429691411268884376299780132402863674022447671483054295670211045950940508855419621295553544904794353739941051825245139544872825785017370865975920616825119667472739312470521961537577853415615509749301914363437045755479571114100013843210346703634475993991049735807178027224856963859107290490240665271980888955321851233889930901488795979658072602561836574924656003287398379698007114366127946765277635960126110023907523034889906256404183889082019598884201023701030447217244846577923862476729808059699162244251348099087496636215263032637507229390652520774793740682281005994589927409431170670073456932679344840773522531588930863326554036358321249770452070464984632526828477381370185717391904580438081652294095322554207433687503410475966788219834159770517407580886841182855414806020226026019654430737685400569213455322749581964428773937074228561744688762572767372434126845060680504786279058289291380780036144124779957033503349948489510643778883745303077683549891213870818012206590398831990961660977299705245483293924280887178568806117520032259450519027804550709813989416195233819329705465755620131476221802760062576627595513181695681044652429320620348449970815748910502557195287869908702258862962942475321058901593069009305140857673718049130693656408512583339782998032446150392437340922012777652625775136473990748595583989428202918338691058881635314546165548834821054373203790256162610245065137962870532346534258405668583787006423331047573315733558709114254918271418536144591636614899063841011995129363698254856874976400317034837833473631474818326269913488478629252759389374000393362514925160679748837197561140678413823779820875864348491967711908600816945148598854585674095583606918374879298942160368310020046488198909478707732214418592143480471272979625553222901051080383859387687518642671329254242085928554195680945280105170700566270592227260755412381269913191309744908218927572177225092339587956886100349613072703041081869614479038934168612171961607499766759544644993667741057948445133139691177133827597104343296126801360156352363547521769042340239874007300071890733008143013193968914941182126770921359058388841432355811824445007528884658947715232985154589948298358357481370494031195761543933336140108679406264786519262190797357208161325285314621279621860502819074642087310866275164259796774520218735030608626517961882766315857623615007375668741027540076442904893704040512768722647599153776163300639675277896667832174268570344776461293404786175479434611092308975524365589083535119448601802575688783162734503146903597639139187799065881066998949932552100565343846096717732605510124058178179987511332118306908719419180925348497608729074963699581389202480940293372623877497937313577702893197702974604868864618190230857646977938344741187369799475331548001118021063572803969230980804267294268772724633987027867089477848886648697129797920191379624830568768360889723905078619806153859717005453809658815764121902364724881240547699589154824490184246549603466528770983023469422049268956400275569549448279449676083349055090253690824274068492805196062126053600418281131019622492838408499569218928899154260705394632630013408689963186340918558322871655758887867524901068156327118834570994770299568835763388053763257404411068514135853035123605955887629547357537883078761242395970924007426658597944054662090053280518377907995812395228112925040541787478885265112240751206143437949305741366337599344647034749330976130116770688100709502037457110884864983182256374842131031063424922137362101630394127841602449984641263289476355759043840808636923736136938135181254565641311373385077631495566229936088953996109252796251918708415517127894650229519056440919263769472912103439276292924271352195027970520601321065386481455467980497966601347941384727895073781484469715500503622426892725319251518421247594096782744801894153694719561801242977357973245194480876870873283982986391693586473847707871784798139122509019845121685950663052599269301275331663810136197979909893498108332728405089967327951103490053788307265630164464149480537712342857805125680139419769032735810933300961145486985475222042701253325972433758163688646327942379415484362613137594303126146858587349779648309540166457672208770930536428634895539063854550139262961736401165630326380985519987024943778852564153130871857538791553940069466209387668329438445978041817130711816754734722810535882506441640737870120395577228908543516743756870443667641814052771053559099000532201557596607696029429241493979497914077397540039928079842722065761994483809172337116401428784215978784094829110190720518536327539740509577912842924525815578837917576345354637774088662367925041859975577059800185268452668763533431732510931313457231739222282148979559913817373322615363909701135160883612024260417966802676877683332013790876053238833640475855097921010264796247554108930749694493015009342705566226616797496951332745191325671694885959496500044507909392885096375062308795899142360861831339094566543951100427331700907105556792414517000740022750396977515170850238313220490023940648152240731414445835115532067766392281820361638556081358349873689474202093719408760504151273592518480581653701003665940530025915044120293811484877060606278012874720691448476558934566550249735059427723316753417251966139065706073095291612562184988309930863745703769961233937501930075070424251931706335856470421543033680142790085162617145305320121964486947841000433491486127387443779272965821103802854546602222054170103259504950613212254652994484290323964799452506309234986394681683144712101529645840337022208964547556352845476249744767985434194742124078428929827436075689696069069542605412850916596921513154558706322426076484271798966540289559282873082593810424138249173601546745314752769069139777815675887449706696973073032831198213774526216041308281817121392131017419437793290760764142193200595295399411009530733814520431810211946808706300725501468175622270915738863418067628063850319147250522189508834748195380652794704242053476272240853630453220196814079956967812595178112652364318569059083846103380651586764270301265121277957144581423998807567394585421414490158674614191075279070974749703429467940794474548077048662217602634913478959374364577799870180241747354666756975516463844021212413153020010955859501771321137776040402467919716331968797181827806569730390520886534704105681870632683781139384119198689687688740574657809565521155683362317685763042073179944324319983960137130130438157769663658931121234219604323696847959875656827351609562175013913323505164897738310904997927780335337179039558376305351244126289801381567674944094480999783255319346707980270550100659875616639048272619544179419749061008922919139830925538251173952260445375898504730432555281633907162653472651363164147446850740827063650144599447875098994029369837419178362396308203174697149597433558614778784634193588926862009846806616188837625166331458122597199410865313149874476815936175532092637873356687666459437727135293577331626743744582155332605975507761681455680808077438607901187846816640054740916249093650974379004104558188755651266478208637029949194303851738647499217310628365423998728797591216497974763404325015062867908201498103292165441654409445431819141850632234795634569878580204703258043172976848573629443644815839716388839563397390972775979670402302034600438213300262542141029016636534333843278992110116047984825071131220817132441243460859237422962291366874057173946060264443674321953233472551134576787155458326432144110370578262154045747170156070220432095515758233890034843111529543588124260627680375992501585178499543958374743641855046085483221822465281896895694457114834216591468657236816749673448139871509974862201158802960586332082424733084854189243610756024629637049983095811889562936494883260434232592910260598385101169213772681425572220520589677670906747037333019635358935570869477752076634568058359522704192369649832756754636149464332476054308637742235298730864688253603427170166117893724129636389710940962443296622153780864967846072091508801112147807823536397005696682300016773419189563737471544239086694243469233654388344268460829576467858415544746315769865370860960208560468337764647572079443291639710410134551496548170996405397080337550006816054417151389617649283621227292156287010420104413348423410147437352838694865296997601993838629575133836760562414595697231783820593678787231616592146851036582049512835983782990894835523264501917971931157357428057900847721091305815738871864046487244823153035249436195359697304552542507182625662682445858569278580696959423220173372618028521824633896013978732645756777217879448899151058835024921908076867334245652916880031272708136801121861980738829671146751304695878286826931397894544030887823216855210245685776338383484777829527922081149680703870982180451490851249117363924457154509225533431066234437748459138641868213861872847135633703702783591810278606584800332833915992489719136160144826144198990513956766343702003575637854374003579110227537170367001217567173195205383277498176126642865498964328555155943029301465404863078912702507866195427077269175853787385740434955636407173934780555148078799434276235219086346461770501973593721355815864989442835300202084757755488852041730316993064711374274527934934002434682805292760645526520307992509593435396399542310112608256701517040064106828688125332371926434934082788365128902502794294583158424153440201141337317827393511287276451696190360184935024861762736232783891096949270160829603037549626914124325873289331955039090923822351768945977514006179864591384470545378583610234471786171622591699491179166610161388432891717710998251100986122575432108278033071034455285096249110552102868950714543467358108192837704381183048892829580919675243111261289911230634134093862887546083545301861263290765218688799634397236794558562649897150698587205856479110140626626418347374663884623168706682036246291403334765035635551388526277209593035884016303641247036933401058824072848929782570747076251764485406262463329446289274844638512394360881925310852715612798310580007728186359949921070224739573858985387432028391865598366851721654791021243569156616336741474126053112936833902233115824361175468105722435215529404867334825761332649173321474317587907088105030324935438522522335150877955176722838972794660761259025526003231684537624874199201835734014598062533974342416782862408856697330990926630509291556943079918090215631312064442840499231309892859861782670945230357406225154547378367474175499300439548050240379404498032606316434957170972942034590946991553328950796602724594513415561950273880460629343481805733053066370117867446787974514376293032832054587318716955825852708970653613528518560223012376566257134917491262574646393624434742228165392414486300165059589281812568175333987526894891443891622153968369779117179361020143527265646240436289095894083637005194340194441863933325995065458862163384194849490000470243782898446418617974091441336690699540311100993346725706374029595277529897703256878023271869967676802017765253526908824544981025370650230810640018205445622313460831271403969939867563966949120486693017107020019639287587093869900834320225126356304227545624024016504370353212952256533701350917074059740746433052502800083175114994976993018213109985959455926439801041804549146097936544660311717611110794948408046778895972405315934141695376038404578309378386586226957894194396740437116476564085607313209765526140856622904520279100212958108260295651298977981345233844501155080163340845553295062782279799896314593933065634501135201634953611353997183710205470843789108269875422619512542545647726860129888114258197845636691103378937680505705139363067981954377844924591290049445387266907491655467426727704879359445244603932208798068784413728145204344486708321271727326314743531362469698818561315536333520094490491629095399406453667826923369708142696142346526144404486151148636031153177004879333776362684366922184456430464469656413280690960833708470161781859689018111716716856050243171877963458600649660104843276405133945006022068805963145791351210912083520387121867620401906510687583657108944015981561977778912475739454369938435539742001824581496439425623619682414180315968781330458991519494805547373863243139074999855470227636161833352039187738727128307835866880847943560032520085293638079835009596688770284503765097985658822465526974434152177368718128159028741940592155600849867929896769303206883182645051291622777856042411378711717544666101924017027379937119072450968863667171899577419668008766320877555655187195825101514139959053915151350779686119964063657911523813847259887713239764163453695059604406789141083886326324512286364625878739993778814730836726244026524489708437571266768761497874265779512227994997942852176396215126868049282736843335361586537743270109170526997481545490925677207797347876666682221117042723013146002680821580035005935439116390726662015100751313399019972427906094799283808178326919861696641143679386945173223209775850160917680264938575021879850035123677687505198590272108573894388973632195779903863774810118355883247349365317845151158124489209967339626083863752953363460891347527343637265498692120361246838119121943920833227400079837586553047572262826467835574676854637296809926003722619032256603889978552422682183530496785975974488893833145190693848295787148272966625944749234433560959832249571174309244411699297192714707249782775477527176030176591724001299728507170541939322022083748111918252630148930756349669010909077127626866677837942171778295103652109473482518277122681839981843131116342756295370184347495757572338860559148985835010969286702302086164569360030695019800961960447682543854237429030379409214237800982492586067447211042644971401476163540879999683498347547787059832147869924234134529922511943860047142207695631661513039120721037224777369591363655412297482931514116463676541285935226738190798044359031706403825952247907556532998391568197886252368157888932918838567749433004626378570772686516199377159628759868958432331338876363274949762624117228114115487359454313320373075580744676048496824332773989636735910964158441658463080930983437998858553311272643923750983618979510714321917954567759592491179457041060540397448052377242581486568755464406997393879425733515278367152264528276471338216078465467206620383032942395133325120978430621775380107877527609134724086702016352834353343353999283353286680447415022623808394301953775606296166274338942741998968747936107809289769371222507761448607043830383556851292749176177815825670836032321973472318253552886871579516270683248181465197796967164988471371278539401320435407622866706714376899662261576468000956721191572582360487343774791270835910665509200947023593900431762669585012724212719131134966513673450718457625624135210514335073109210209509673272834275037077765043965352829603028464057172440558425778293480939691651979275934373334727556624756483988661195388826437617236263503968484275541014252527336277578749808733649918315540743200434378846807000224964886391781186929239894849716553985618350037992316507553822804637965591539985113613644611948493441865527402806969011018347794859511857559552536215691827218006933769986179776736385615866864935268226517148990244561789432149687110418668826391396608951798519457097876450276187274576675101972542611787069184411416276087469964590920067804998005758985339465149629399958499030506130643229868733006356777451334903841070034231756856686711626752780775536931198305510180917454545829157566360490058730023641526346989142508934125029073821756423224027899790709972911266319647870627747355546193740563769790746262334597767960143398408561254488987308245803326040351592580690735419359930344622121597378110928886460855846385518022047514542049637335459030179812523112708058604318579924851622459991387152735188767845164170231902749523085263781372350673296915119609915647924689274972363999364963601200387366242733081516263272076890917966820596776745382449949898005403083464234598908063165261113631494767079694288976584158392349224000740464695144152916481519409286279632003322164849421380293078152955823152946482008918707081513772067488424899361598683918470818442551837429059414051597133651546727742065969764008456791027374792950644469728873876063637355325269754993932988507047970112697548475364157947961752523131594922746402794538304630032470561423737955503801230650808426139209859608206872561923371910093258273598704336330127673676158072953026117280705305885731370726164125191045219550116544754854077251600112635485886685787456652778791258092470767314133831258761997551985410675252734440916924786253675762454159071871353093467873796310567129245286519451093589868590150424459506213220334176446780146841663975644342252215375145334538403733351148651451824572151339089455672008301034486897851564682278504089263865781648575188087918398910754947974966527043229912768575547071833288137977413850617249758403937400606525784664212328347857216266783966604551218444600438622115111059170504528252730327020489212068100380014822261105432591245909737910476909259184612184742127769506510999355101230613396225353138051714822037454230068966267367767561716934157206441010149095786933004596742161039981173063860239458969051259997326986310683776423863337230626291984162159759468100429117160031179514109480222178706239629966142443734515114014370389974677103795721792956728694906402569491824515672736921533477855810117330327196700312369404286547081527100964845675500750668406310533241037726788163443082420273921057337206824906091012556986727946612802910442191111946884377936439401009075463025059413876147483132528178604051254264797365444106586908609697815971046575307264516162266121825659981275184285305272534324758756481915387990340734961239901288774199441438779798803055516751917938498042089233272924102962742876603085739008250310322152784444524154291434834248524413719616213544689995723500875618530467978968671585212828757976772936509157726644957148386319589977403254272107725116673560986817156642383069592323982211227878416758157507335065369826897295372377367883694668654427706147660737744257935011203535568570053975889289532490725874210294379209476720567467473212448501751058509330307550186176443940493332060532619326729343062760257838402985367888700251823902580017844109578766217889990807389734760714511517484209384054755985327309911911742497867964360438244452260444096986434592417253544987291214675302811279640087715201299123061619040713005280458309524381565428379677230968348282501096653624004208902596189536234875201690068849884615353450972361325615821451265102900504923768164526672971789300904302057237547664139879090543974559648463198332498249201857131599195729356102124028743189655197198213049562637522175909919066304527176391150337801754003289857226406524802398724327996514732706427606428181039548814700407472473081201408569858719417172108152333070776102466479294152520608234805799463578027199360360979140741844060444144060825327216225975679376028985366199641969089007658055975198979223569788915704967498770652508556750479221570824669727027339313162871527944070325855569584516372569270466419615714015606063414283604434849945174921954330802016357007456904006766480338790429714399136303745914418090235884312822251948527327009940591306836575096719138596413210731863562163196970735396710762125064778693562835275651750893372376145679604413365891297751626118823497079484856592151766167637825020183329362414772790106372052005304420106296237516106722620303810515655843046797108794624411467589152475584700989306944490419633349263949796535888167350741973672462003529538387085859303310998821810360064017701469602202933301124645206963378542818279554316746178015929373652186619402759534600880171845790892129263492082110752228288949526290251780896655867226843546483256746310952405404268128805698498195637023892664015711370385165288422754221829044505008177487482685353669759601161377454021463793551250232053580275641683137740091465487289201263236711124432710896303825249805542213470631066277073441055294145509677307403636588809020089650353786849452557310781339818633500872617895678390325023561314754342962916395208677387310133185794369259779164627845635853450919938166975529356557694250872331591623685167439849567780560021268409582477316562471034923149054383641414154533627161512707832935990382949869633033085395914852750352424399512780549064345603735981718801050998651478495487243482979448469696632529764790901861354949782571906709810241693540593232803478438072408516248398880422807098565978290266392105171769191941112111569713034073370595140243045655244279575513042766746713394264135478079797782836743323757476631036757653423581892795692909374457118824109720993215372787640833224986674782878407343473100555074750187515764194065087827485401537122989362955072976092338703695410657378769568049888941090585125448124190026848993567114628632493754397354752011433670104887409271474466103274623389759650666075669920550151349698647089246007852338659531235669652046835219912643782668230819409870080771675922177148096547213444687480540727692372884300782646888542724237122337702579093097033374477377791788003975083873683843554060194505736753990583823429141972657475908373069978797190422522372012284705613723213315194261808476660637643521974658816145611974654021634770291820133251303042381637146746008792013732635839476222247446819198907442657049058955202060361096291335322835811208816741721921436340069021118024944694254004201204034623581215548393369918203048283518157433167201613254512340853182316171194338488431118207241061543830470979204303166720793452299111334092537496770413355484259621599618327731583071360719785581393986103034685239023964137500324776678174697299937356915791636098542224691229900189174609227881123017612349827504763479945030938844120921666739548175949129775491332376160901902600078565185552214062110657615411650828562969593703393032490877522367811654991338244279187146965220489297412859373011776919970315434411669737240639097982712901585511061075233117871275421359949532877493207046002858284457760118810234638339312901948824548837368727027708612367961289214824310509313313797509122296571907221416036896699573460612458220049093582176506664411018288046512557805607058124856239922975971775698671179651182608843355221051391018266082513265979328748527337418937972907885724811080350466200265210095513749238569229462103959634882806614685790537532341167393964673446616210893531472151271291057517074680449367839821638254580367322806633326486698862558578873006816468756404862640280645971119226778720762112471558683659968737988013713702020854888764221481890080783908320175805002874069125186959819695395168547306267819984637927539788381359071648522691549629740126907275047436154106727053688591671189431282023716646567505430236596752982150876094436280195503525581977503617974419658454628850402868625964765129707061435879703209952710273868359454328559388244751199113545486187432606319665615538361033958536653563649326967942853622543428685264045547330220948252023332228608848421770263678935867361602538008880686700578401136003074734261831394627581546004518997619197151206283059399944296986030148140277869797235891926337422776526054587261928951377199714045578432904047371902945477674455017978286959258180411757685721752636105639575281100031371906891933532291875190245784159854007970758306798949446299821403346940885326632143829519055220513323717193305060906855005884235440705279877847622779219025127438192332489144064192212633283876674936663581455535464671930389720614828772904255892958391838738970588423298317430218600698388229681472655837908052393911547576342576028834537131008898163151989235925347839953882804008405085868202166534278320348843791466375606077702240832213653951726076822244361635991546367473369568478272945186355155656109838087526487256602111874343461859015164144494611213585745716098236189078186544069296366122064470939824924055125747416294805431213030338590706229617142531334187426158492699405690492096281226547045092272997070005604551696261469378980531868932646025935137505133994571958248865997580021295530766854772158161148596847584927006947065918753567094246773212034632491061031320433867290079585856907799240472765557892470258776562653093163618623468521748190431530098021033121101930491651499972270907424997039036335038028374619327479347227889355700191022004577656412642928638999568690687940411997906592478144860079832464128575738120654680942919017532752516930196609431977002974190875827848672509826284256654298857746946563430315944408316767338802090859796903163562057456422245874047066247579866135851960285591483600771911350086767098260693121289206049304763992508330590556493116669746034130946314381603987735707783415740245634360759363000833006558708998830757275006470011819086335953574208403528764715716298674535126693080126775568272840149476716768764506726370742905529789910139600521455360261016229825249952293290125574321897520665897128782982983410143629126802485024095050564510157608169408878904361652942422255591773507951656143766662655221523841910375929192936820993541367298049836787310505794929565113577174090270583085318162218760809694566938064956768942111328034746459015835743693425662198331152497499353896129969548313065552917366732826095254362525558343394324224598764145786379783818451201428565246488266693272327747707670750533682371367719680684158122049721735740736036421362171078834396508365244152961826103873398660344341961421860143218053674697514667556672338167849962151968465110589477963536728388673685706329852135613275258513374106964095793409979508863096696494331551036724498535274639805527527863347811776822621971348746531303443897181389184325533015295783543798777751127036569177885743584653303963574645348229273697845062882919334136122231008150721911281995730923213276111541484193640085351476489858623433180857106737172149795256522997244931586628996481208602323454051667835911652048986605811223956378132234803809410697291294014071319615224823885103440276626223596167220431660574407260043766744259673437538751563172824405086430251184972128808988336093668535032744473578826212805090393749695599255882580099788400280768976088406984534913529317642727087419843186594860274287108654468468301148352098260536024489058850060018756528186867307552878140991581872245258743058047429151469650802069218404231678328918765162934721458766712555880901042350427292349434113585558399818052594552399890653364013506641516909580202003292362241569819023836152182980062111007784348021013525463822252895303500504868579199321352736378107130123898569314093692362714905888226454538860321470709780308614742165404489164088982967967736271982135547508454488052863536739665560805295422181241019786949403024091193224927848411169319762706867340185528932918187286377319860646303407675406375713241368753380803863984247059660026877369695620305038671609761293623111473733037930569337789576683007457601038559821723797506539394116166353564779262059464195175539004762513762491629452583109493014692844013468279019532077891150385724513433774888960240576821602975182370871545229869509557541568335073398722859755515148794252761123560199223132526709756312733024668392825986541571929617922738058758543627229605477495724525700364977835950040761215829548530859830898628612429685099289198164981833866276012182239149827284368325370310204969717234903019145409715569820809333717128969718396237802213609734949064337794520452736914597580712017156905265083812933001526872964301477609349713977930070794718576103430887891431328852654357295974500678822186857560388359906999586546289778712109735143834661611885363770584623977624777681258216564382986622161255534601440935790801296541759514747004402756737270380918470359216499179073393727250227069816252707912750678440582126763790883852134880739177649585026419506622521247414849719728357096571003664357317985859769543847147715244227056832717820146041193486429028469612289640268091914063922546799206561383295033209976388312552016142606829568964486879218470273536657936848883343578894667320587913377960138881053410700039585206717509444299361889553060054394591805191756874374813038744968057472041035824689723887791161754450529831543059744476143928028742206389554967585551316425559400310955188754666542817757838575156828738385955547326844258273249105465131512006650998394018835730119517056900936915952823853880415106962952460601538496336829743215418822258839844725847481713600801368453799797399379786871916942104168343807164355019215353451791393051072275052966959120070409342620200031475003453043244526809834200780147134014871492539720851532877711343357563314694385445228328449064099304198299009093649482742558885665709713103675024283207039767880995805508105290374466901309066503862869285865443484026186795511413082182626976180817815333991473065750711057575378259817066974969711891306263507523674983606331175327927931826956903906225987446188740711568184104011854598141346798487197709353886716651850338440305592462464016514065882635172781435939172147677426113264290325785445351115940946866829199357782676867451159719023024967427229338820648142054612715562394878771345177611261754006956739531100889990653661647123862465109161081556958279497989723779788515256417258509813465474364116635067850783027705466090188475968571339796330502031901110478563802608079682199710952856153414872119487018803142505699824968974932518373147255053206934233751751246736432965428740919291043839320282445293075159016152327915050313119296126941578126091610964264135764168200241253017478802783056262907259746604493236568064051917308082294624495551612731199597105702068248557896292998915623950616490580682121775623893453130371248640244933656832015690850920413420790069767940429609328795351139826339591719021512495492843757914463278774746423890086891252271240187280646987678008380426313113605288949638284765064805260194624582364712390846212789019430566446347232733094428532194523316350383908122605289518792443765582050151933106812029960311407706272131259381619649405639700005983533208209716958200484484716834327067455985741084204186449359240124257071026923318009348959610730818755335657317619336720366698087971994500319565154017577247726638246971130829947189582073931830562468308242062826111647639735575020240735360852689719749396288406695240217125926514600630255757317188840630758829536948514499606677880670282201020816958841444185500687788051767872051172335903454620825029136520517756157402562976429164420772637563914843851714705544836947470247276962714228115693543444329222672275604727926439072590139067800272546436531256658563261361315120640050332635336018477220155683103628410064039595363179016046144256755969866260046442347050300181226988935803832424207327735223477112471885486835875200117475386719558105833918860479796526539444304553443385703915103611997443498192475940273548770735455933221920083098583448252858955158227456892143196264390176546769004038369079357710885040152229357556966162453527009176358296364526535617189041749408762458515865273710920867403001959347165132312971187385406749274871623521933252804864618301816293621857266495306422278462464951823945353493366438351797790717631710488292214937954065759834606477376780152036338499270434934750011202775950797218018840204809725861855065252747985854145568938574367515048498412674461760092340907546153742458849373241106929072745072758004680545805830585403006116915258017048538518691520012263671250327178011648413038761934938237800125825653267227233718907253994100341281866047483367306280093518002397316424549341740470684489266865947514753606325791153743695014514655110931029787332057715183844935053478545671378609463142140964909775114014345485806276936705793117924126204796512433518974077166136152378687867815258205727032021565411204203784533011567814609756872025033399250349252039826706415913479587284441531978518687888790970889276074242058341069523984685305532910622074917850945853472309991156859615520474495373190943027114999781087435718896175642803627050589120157593020572847773207129265030084651229832169682643012114484969664985515557075893123760477057628425062741587227440323147267225574004974307471204383402933802795812861370922148862789961675391508416726418471030363572820743627130366792623550455445231133644734638725356920885930400361563501947185769810024718963118448249383185866037460353171466830178714584673340285801434951323681346654875485784810375624822566201897357922907573674429180528578919323298648061817428099448749751772218244945899515575639766592686820714559552882319842664495288647059906665823106151619982784752417199941597903534207987596141266689433623454943076857851609521204907038512355921589504515379236311935515320784390319881252258953347340877156719592634420498505447316010351381642505237021058426561198008638319926353522078677368026310053603023113405871290145860234082004554951767487911536688265139038396834576925333321152895114192350676807865314352295087771218917071825799064242050752468532796347674292260842542805392484031983065024122120793429997982084626107546633776033139070795183376271598666910722700984463657954119125314050555946882154521479569048782288284837120432760590479089962221675630539843419945339017358525502917812808372628154251699936370835604977986257586166996873580896716532363377151311271366152105448319622103843513566284972088701319822293491898293575517188031820751914307894111407414058169482387727441736678527550470296182326662549150082443078699350989489392147684479136401384098888043873655526684987262190729628682809480253160159961075885420375915550483361519862880920676255229011330888736678081075216792694511451786362406842196651764271868021466556229645729502095370433402314551738221598045771872170770886184897881103090248881902063858225685931103621227638666453132429385608492157736171086319095370062031548181004105576873428086488994853498403198837020899965806291013592021462422946813011457525453473414999978507423202222546604089217271589140447671683933444848585512921142431321887389590359467365358147640542193240367586439680729531582418015571549229175996054741849102850686167201354953551297815800980558438482819570544935614879595256745757821793253991575002575094202632426252534470262998522732097548153898712058389468951066378056250468338982044277441849947192883413725362573607996884638079460899061978244101696711968328972627650410049332049034397573373225643209760245610438403051210947251241865060753652339884180059189898174033961453090445185642107909841361648797010800826014527897546062978594376931398553152075413802410151980646376045321138953969884826287667973779344925525159466657862490818264638898502480296410609317767700010358354499029841681756011486751113903543918774999468024845836476484729504883075109162876078057639203182991489459639772065443866583357258661064456799327836931054481933824316377136446474997892386162051255981269242295495789719675700399158733757780625113973737584360918825747749571533186535453832767447891981697154191649523011223743720175292183973989413547630360526545125820092406782450290130157972076396413721554893147432471606758588253332635474069464120465695144268036797109855251663124084840947896897806296752479970805804493409754957948957894572074127456209346646561696966963400934233173988841749052013912007629128555703390413551383444442028414363255615567588644280467230179682491482775787715974458597240346723302766319228392610380946926171191547905386631939003868736756668254785600859926226912696199970771442301717361080615948532260998527394615524500166934344475344267543589237999975415545013612068453816575139056514048378354265953469648282284151649895006041945699890066358298184915915977741819415993410821516449246621740797006458428744521646012864517394070869918968783073431983629018308195840436810390962420409223079631688042425664595467528099192180143524395981155770224139930983513721362055156328593544530168757946847325507200523981980012499880298876457271154991723450716601677919923727486269499792362787912352468826867240415701305321602255737135913010877708401355352786692896798365604431328560090865760083726385561110441444763825552775762197861483632797414174827080536160747962079694007054098400877988121504239331562687575217359352970818551352823372563484026018494716413162978465079979944741770104570618497558084324043104804291633564249505269538070356815943092237037448778954491323164335139086423713868322199613367489242193802401829572492794955766368909638792918691250936861447504254813288457147958032915358436187572718516483381105695850728762455702226893641526717112830781062804948616887779041680850522915636352436202449215869540942764138933745516660256967846755259658020154322328488056277424075131998182136363650509212880146164834270635499395757596747101368708909828293192716307321188031905585498969119847156918394869037355973790581468651669640179543549710300407161440292361427819644909636709073762940589829561545549346822882930392290650326864853546320711468122031254155302168538941647688717033783512110342501493194178598712898355189829435420371452675470622723011303439402798295088835762602950725090887550297128266526493527358915458745856401677583552916582353009990099214287850848508305572332586033619050064810029184166118096419425994499174662318726071468131443272918511637898919893842999199476432648083206307044600098962547230056482044977685347898222309794658375872188971366849233740588742222602618591457964189383897291287247566497123611019181628506091572482576355385866641605746362835314325358515583875354695011635568939829992438894284252157511652400378360467579525729109955378510991372842404713122059692863343800949370074040017928468219293461490084045180181531991113936895045898310121833296515962028475446341509741221662546310440910006634872488856757622430640043208740123261218652575642624384773624620628644599190525368933876000059068723766290730082820548696269837289133975852551306726493924548260416614770266655806920109340733412099023261454189298431407267592963117388390692150683306563213081286021448638363412491850215914156522470573474962476421737542801086510892487704497067846621447336964366638395946937844818863149808697498440054599986135254432470307269045591141645520858507181266717985177802167594153050506159049561806005237610982574242398913369706141869135367991386349514280428048713366105146949105475353901630249866632980783626566728711054207026308710166808578472256311463030542031099992662144336882359955769856466498582232238826898529903762199969250582698276342744333610137664277492863961463818100943466532230983542733339201743556722723832615480782761051428335092480943199529831251811093036057228450666454525336811757620044397859364656255863760411163483361082917633167879122859566984060132668415912957680217888636759478697260247339723667885160426385602026608399577382256055694255308197511275499261510003489584171979592196389683124660768328794049944500511884806103372174489028551294568301359395659454139228330592627696898836455297622066004820221110538213068703261188400792834058784671045042547197457876366482832065687563988640753173045381039239889558788851660845038959153057526367749222793093795710170054708836215689141915997913332351746160405867137471682918873633720245191287672740810246008014367974036037145625233904918662867919662964923108031381685521103649530336069973559154351167266619893077916953433411153025028647119396345316350649636117624240982507565898346942991710357934625213310202773846346776594148424741805022526929805641386937544143802314524824439076787929299457390709519097044336003322656660410427733527684920376330291102132290017952082528528894298368019446744547568360662353222131673175913635651292777876959162493753079719597445201704041032630046061351690260186422142050563787769571842209789253072798836869633157676500330154732960257061740335887053744777442142821420064191271388154692729843969923947262208772288553199252585718617054050353072235967892649402235006431492193824171199851204008804002766234868256400142941453416150871642411930506941538949959187918570503289042533200008196467892904810216150856617080251700561454943735054357244663700096684336166550524615959382851840307297762141792566795883974432572925566998264577582479880030478770556474294897188390111396312557947567599935264892184500557674086259352922233367382577999895944503151757870760828309309242337432229185255748584045780826652624089833298908809605249187658797661625675244092809881380778574585094849284104927630553118930326130343219973691763278325653895054221559812609485038408611048110869672766567525027388730659142451269944879419674323039699812100746528153162900564619078568342360173700295583170564215723910977861236106800714743149619870549759170726307499202512511351922533609705870033221127142386667482372836879262862731916177944928052824641966917520623647217732787469109520269935810489811041304767024210679202294544272405486141958538675546370976420753090557077463323387293833222090926834960972879320877148794817054279573422720088849741997236448142490505341537988850432637880195079408302193696574027780500290995736642972334480572421581240193790872070493231823694071262622222673156603760736250128452681526693478510146079508721267270958962165274510559587004386172354899043561540664657979809778651498367505147273004299975027359525317556922586965831004339914988621471130965617087730982924745364416103059238487092875308698710997250176251631762679508857763602424409690742823935442997612471182842533348545443618840383653870481170399165178066407469875247745192299253249357045334267662238350997982278750844443567643732080037837813394007647097726778826563631281070670081027320718701972748941736195489977798126221067328719609987590865183928541034426507512280894279705102594629654245462749756247846770802885710011019809114881477567168193482829537875245283636586837260257750923428840978578989543654438958969298144079664119561679713463288267896802897623348348810230251318646696772280895563183431987317102776097682734511097939472295187148589564780079834374316380313328630440344903866118632890249913070129857862456295973662597971856585146108353571090278381529466041399038876362826361548952846002693567335802140289757975030268805877651771088730488162403494587451340217917757241828431703897194572482583174832505343572973475305495246134252400875296054932310981561397202975384908910027523045259519570334014745610890771111079743727776857294343150528589769144098296308958319435051402078246673756204524830521993833197770352492897138247344420752637272029070809397046015874341680699061450904749794046632306802458139274525577011962642603453475224637588716330525579816172910677320409616514009849468294527074112838890675186054005288711645802666494140661713188490812488205479508448441724115792815396787033858611677329187496142190673212606009437858265060581367723560528546185691711272468133042185835565321940007927361598832770560623107508372722584050492450237683069210499356273333381855946761393937978437825187870744811359813825200819193344598552247020606914742536390063464821111259774744667028296425762927270419137848259909370421680042029222702503305538428388610964619295880609448650232420685827364103643100677604547734749397361964342476688249924989783453853478953397825081762858038786630546728572224396470083143949979583359371999571371692410043606897560249079250846746790555854982687045276847075824777022277203783828669723071247118833951677956711832411615154941640493015083399423994699420609595594860563504507757578537386119112102949590687410264772854088343209129830561198116818942567791799681580097661502240014329199745910063418797880773481070650473772763954797751855716393721805092449040104300084896320570704521126666648676123825471549985258630654625067957001171431220876669349211009834852429425847151366791481856885820574185693880661222602171487954369401017812711701326114607465219626508095797608486867991588367758141509605984043798243881788761384134404390438135376526072827167625107469838881764081122884730795393310988097808311700013258944373511485382055836029329615857481304609091676348256534127880759187156323687350397918782772209026693406301873979386121130133193995827357819503476581328288711541655444254506412263422664687696917485484630600712645119966677383709879942111725991605097945243555896755525978443947100274879076976488786604888982192464877929368519664073403226575694889797965988751351418074687279933300279234760357220497690400599103500836823262375128208305447942621237530876203873904186481060213221536926357990032285163200758883251966489805311828332835909150466811142323726964250319600443115145772369317702722133965170121600490105594219432345233381320405728587841903779029348746281584154130249954361161482738239483048409819937411959719308813571013318914428485467454342436057946610492349090000201483694137243539324772081958683766642973659640534984370489410347665663390370743448784504983371592637294029989342734092385622993447348592166216118235787415463629057814179848369880845661991347560736498567788679394180289902979459802583509558057315956117908816781384519375134804192183365359253496861333248322910125988787138575274038602940950844345599390006767651980598650820345291806935976439725621787073933255782462941898244507833728311141919242906008484663192830647460419495801530870044259178260863325669529765244966743566032491015829283303298585321530052207428317911285089187639314750115720362080533148457832308464534602845171889743223552337329899603095409351402953924640545996879718372963028587322265033456320141823027282441841750411815884697895374120245142927175759758498463549926743239373872227978084957897045509518877865286788524862242174334778296285310002748662613325686821286057080280576535193501417605690085213993242694364938718136269976809403405478558810604363445466286880718781138212223709041043905853981680411057837862800545574011880916824797347958759520151107002655825423534719237895700118565631103907176696254747457159024581235976572141880014305905688329835681959934177253792201344488057577955542144403229266424138960193530655394258818838081542215684862283717761148927118098359620638059269362066138917072477781294162752356053738590628571930298726388777683691689523948583695964169771869875427772507403344507134782662136026698815903939396846860981774874413667218296339038558127343864440757633645235185868122703051042973870401368401328274721205246963541873212745734197426640960520756159395173930604325931633698644056980404113319238230898482472747132849181743309070586221825254429839491305723203577709881021782636149631122231185715759570679227226010679774911629648806429216665621360866846491113338351999471254924366419731201418868092575610355658846169133844741492025991461519241218815866930916642330014189186950893553699148879489454115642657320186954194898102584559706832315986521828353320031991905190052363161766531142341992657052283397075625893015536565252502677415635130886698095097052965720977419180077383885642165179986475922740046219833913866370940618187933292147537519667087029293630891595188422327117603490559633909883655004689313712455672147841659692921755055763259783505746404503516406937683588417054961711389918196347258720814896554108739212480439960081605433225574488144495289712114087901733079090422453179216340943002751223521925989320225157578553277317575587091137768367468742342944006899443594359338188709206987200091758344618509456918330975895431953943548843055481900982292072606604936411920235249195542767783219489770562329403580569347144220575062886224059692494221040042847423890022973002269344192752153842767759581491680748852472503816440231715804427395587791276221135457193232550331120822095355835641481960119231787518839129357861559198461268817158348883096278579538161476488458349479109722013950833249934130756281412604589825281322608064128035413802148269570074038832600296751474094387333783375965814617941867559924824611333347460048642400152225012968532279447269415302092243074952447206137049140188795675088940995105530363421509764860064341809518095000059756341725217733730002677507651152333750278432266660212932002147745197107774603993191937530224304485060620454182400936481359785192086116429211896643920214325891951681863517096084525031771495302337455625294051231693589005534720362710275262882706231686768258686486570576819041383562567427538644131944952464849626504738295465861270231843281752782620498663426953630515160086060347873948175313857949392652282651836195702462806753049470204621632047753864884207205692199956443299610882260039561207525259759780443054539339627694274745457461962664655428613353607794031160204673238098371516840904651123776265880706272127940223379325853661182519717167301971709199726143009692910012549506319818595144883693346360207246395630906962635330738054754730351973753257128466415404560136715071939263447719929235608660924049122993144898562196511016159181283411577293325184651479876147989972960751069316119409142641158081281431381512108369396737237075701659201156073774315983550894613117813715243943552857607139979862738288479039572127996656506803080676377407514669649601500978912053707805211550616845615151373519870292185441508215335397913321388560859864708488787888267263232014447036728081662203496101107994049788762063630273060388268757231032245836556061969330910780989308312352142542040498101721216857925334173197869661980692975741296982052683993228363180205361040834478289912883951001844385981003318295213979326596785831767423266877818147661731045773125987336172020447319319035672841617873635144604710484555879075217429926665327583004069822879190282918505889273044242796163555980515426237482365643531565828017575207189757120447607230934556030866549415236788254983793857647532978453381973275137412654678667902342469531018638628499370710358743193594883749239885397071425152056089016151200021570784637287341317882364030455540260570982797549997694432569815126469088828256741341767092307491578066617523063855134969158976051463969063994629546232611428789299926268393213482988438490323786204801462428288688521166193112444847398890869057626284350497550663311548641205751269758347866586443873582248634124121153008148863772890014444852056307615015480020939933602119580567887194716313860155970574946423542936588547189757177762040728971547242436016717619725611356544523687035948600066032863180229165812142455468071210954206314582907059965263813521646116225210496717028400526355811414687078387951149718417003048215978517385159874054395075741553391614266816497749318327845953289754094909818847567585577325868250534317674114025737769243163197123975541618519340143772117539885750805008004124806986873307004459212266744057213910064225399785060902947078380063904516148684546780548328485002357416304038753819470878923760041078489490767966123971238415048342938311143609478874715799360179574489634209094829491815459197185233820769583470151076766702808991494463630646426014441620328231417368601745388420482518753648199297050187908737166983680803146425823189241274524934539529776175015490983006704923936668400765399037773126051012499517808947795281018191009164428436768350345945141601994315620888205585344713264579107162570171526819851103460526986647247640598783507519399550113468142126083085716363957581988720940706861218279630958991340049250947189778897625369026338844331027739604594268341107230480850223755535062275848520047941459366125550072851018067163231107223671367868338884625809740812570924552775035346171838975529862066750126859579646848225213794042396451578348987131300968412365707975387387979526887979565282473917493195412646823888346989843327539900457266330601151045809219970996442414054188445438013172135140120760195038040766136362696110637719001545849076734829259894914843392621354032165177542093983472143554043287450703881692629922400168688838387432976917561343980091929133931340002506390975704441925417980506704197722441681579554748559748503518420028992051955143662156658373210793501296266028386559325995200472442465555315396461354220176327209252593089321957541257710676771016650441128111013111147413535329369669317023308391479091230216612927630175884712103321381761333668696413392613790621706863287814253394574864043601045637081427963444083798396529741645551189491819779760816871670142424699538373707542719857360798648225761302700317133254543627502310299332173593426828974175389668052152943502885466992013793919302457982524284003745792631132413828596426635714554112197083111095634273963465727574212525097828295848741841857592582303406302161118929464035165093574842222547052462239625740397676278090526784226740161271891749481209117200956332579264726032661002433142769133003755353187980743959382206387219182444826494264640435288182496450710058891616038047935952578418839276556074701013432609048570048492328894542935629754124504515729230678075327878478817278971167221469080996364340938868196018718596570954742057529484522452347826529530821901878013553164846633217742197916152982469184464593969670276268716900712490712081680233040874524122179415408406134138231936094767204446311718756716707743384847125460429303872121997964059179633695645712464809915145288971387981335296538346812051238540615620895161195569035821628985962371062941483455757413233461300023851271959932991758458472507165635724907223780858178394645814301641036995274863707322442089447081587076066723725374010447293598926888393981357600648924185689956382331824888067325095261781755718236214439140660543262271048933404563456280104377233446949059066775619239648667137025334979696284891681861015253732480126483502378662956784737925721906272692593146583164457022055780158798457212416991330064789532902829882819170640312120391436291668093307480513159065515937023693072246441824430554704142395457560699261970372592140512721788957118337235196463598754024433247488548293368697302198503527013576064392230519681901161080508859258166397113673339374179404386269883839199285129740089833053108207954271842743808723282565998988042094666318881463901237796063704989826635314005369007350813529075059007526370888248351203408086039538166290030217498601896037764960087211908536177320784772038894105595873455146842833305260199975042463210836660459648590862937068062835388489153029040809068369581414668304213691889379485769719433638820632333278097539021040467322887029529387599022441335287071451500227646215661418503419338908213878345586371524428525900971199389951542289115282969132215405557920324291744171280130078436491049917656371540936174277215394919896370853209925048183159156714588350162509800568946800206415271405375232503355346559741108209014188310116722899345129006179503636028785195777003890172236980899227833660027254876599943555750497727555364677353820128805390577503017666482611237742713618136153311220529471425657637194626530646410017420172510713619376338762442734679376118087367432577083449261545578731974796162432295574507827122537012056060916473747074035569626494564091966788878020491317663135279294087015655032674290666487136945641989245916928288634601850711350921118495112764849280438014801000158045969717589988044848556272976657115350911619621241373257931410070295291722189800137273183111017786457091490989054455796063006333748088797394123936149534582119688762915153156875743741819531163969166928542837571068678838309327597372480286138365032852485560107046348637986724660957362561882860365217291675180994586614902994672630122184182943123990037077031121793537044344701706495014436706499953480365562568539528873748076113951112117215900139356889709761836990176153628590206802678313519323452339742730039367275657496070622792649923149345427772522157139319019858680841235713273242257227516260162617355848507581443522696081177409554952829925281719896367223744810265945131537671106623180088318237907352211902409653657710467458429419659503169650890547290942106803099726927462993965200670764378958495677267846461394801336883615170490182197058422260911491035053076455917831627008515595935054894723423387210681737184572028867804712846682499120874110089427198676679927327701137356579405589445194132103493437911955475683984040723784029722115609715895901186054249899223772338157249357959122997504148069161823908732663224712319732451800672146856103727670577562988811982317417640995398989250667578117913609972407468704110820180573765265157627653203433954906409232300983706337558320246328193879759437796189380936161433503746146807843606640992122250325773267495147491557926622910296196293904110753420699323744753377907703939577194785344394641982426311150365080098868693556296588153114873023242032044881430151246728033481152967515157751506963461841270667898925337281650421038417038455266809639944177831847475876374942390279156281335114488544236180244052204758076143378899975070092071238259454350456957601299237127595067535487902613906346004721323902669692750933394913566810193911139936657978958038254976131840183495176331359192043414981255157393829073381397414677898621447235539340553833079889772420723661416432770548868858902929053479392982535559595312909365518495948113885828385844429772919239834344382052430480562745126068480848898834862907034153086660433470993405270034416409766474640342358029586158563853568646414264660082570380123862377365564166412245383031264196325371367855827175800802506570954146723405100090783820686541980302855384964524490247408812710088284148525534106649500425293649380612335854849583361243098620272489621818583492582269522232290220853097633455606133226201607953421709640787211155972337800869199306197056926799098235869676373638715935493427888420856135411600084461230212282678571171880079967596998172249025516773541917865913807914084233906711375833545882563635661253734423915185216806765414326207589657485081472502308129234770777630512581560948026609722086735886445499204386901101017833169723260534045872582187564128452446871748724673044907590201196774696809722546749817098430414247966877888553941078721245364061342454990213880042730720321116173892019931355352596019175411863657339618515082892622379891328719368404278586655540620716083774032788993194124580356713181462617921264397076690977622316625005363718356518780327760617933085369377100000482891425283012161183703653542865468874787706335571316279558834503907860876305282407797616188282156006322118834474682180089490574899133455962041416871977462180886758337710626361668891900331717110919368376453433062724979940781146660239289597431176199395447082042933479317587845300215194962515737342686033889135291964258050420817968779298047510448607759516689396001753794434734314719567513940794623210776499038734079127335536148538098686735343775053287161391548153397724227919345596838552334227456185859359408028240780694220916792335252046432216061989011932620225190777876009462893861780953507935362714437289827942747694692501732316379793875733866889890875943854121486620320914949644827785393419216555405941646391615254032628768622592794664133147962341712923973112792389310075919207082505949035220961325369177296829227787509523740316445408539719653835511928951724839296984260633482237937298803956431135919519434317474026570885730457116236070602340014302801331982514072919323401921230360950298834573990067646059315646759173056109726041234812203911881480553634096765058056407259054237650555668487660762995444657994240128824364870581983237899877010564651545314409285791445714960314392957446793393696229293914603277964692712757558323266710164285366848159892200636439603833608482066886118757244012435779150348189666512571987763877128722135711084257461793818892205199861182262784008228727689087693342260661125441117999724825897053119174332906393717354248605709213403673928951592237272174516002507597059488710687079624423516157238801104333241982177434898009578064967866993426473256904833765427959418754776627208616684114873725412758405082705431592934475760456458679903323374925135746487283705909972091120959861386884894680646182998571017976401229047859599460429088659994960027754202794560684874846059613961147149167716275437350213457555205128320345766791409793752607956023713105283239037794959155163946965993652050118293433150069796781851353004717416943484428582721914022537542041844882487917235611400592899421293795025973878763758852043104457262103376507374168548589680457020563114233052677998526637692389834724543143031972563607996682544669174351151255942783112584189776209348318757226464462273299477570355102250540738702404752134889244795054965653573599058535542763497761547728304520905140725169860515505528578331606115897544353857819112083969424342149706545253057507566499338969434977233210151600569720461530150835442247428916153904602808780754984281537086513098028579542720266715814564855989812509879894298569723802633036725636281567369517754926961549185861601896185546354277205091868836364179414525918812282244859964139781211780656348737952464049531992005077940153917963068923039545889695002067225409468685862432451314112871105413319371331213242440309146393495526718313126536875436397055547056924848377735711253053571211438685263809910403665811498564699838906517625396455351024300096054892369450205392970786983885647251057314628813762488402348817228339895842205726033420117223595979513662785238131830917897617032546040882324646926548564653536206813725554099171713899105804427549977378784939680986374674522777807612073519115743695067335571004638609485303946797657233186911291625203388704322592758971651297445845611594279766605487669085144753590537754237288932090386914758127736309726496356497982148371716701190678673929475918583244030684874892932408243686121388753463641356072009790507229002635242460642343739515352888548584214868221013538866442097434664788266163912186537437045470689006676177869576556233614435611664862350423443217175376087617290921601341930659810196046919376372613094955753451141713902631880541069354888778953116624074997757610602944825216302480137073093238633856246681712944170468206869142850436964538885560955762026713232423452099958083335528788695424666642510569581797206524970832196211373667608370109987747243343674323317524437923655623363315945334236535214855717198113776310559792031492859044253845832068526713372629442039230113478186171332687935136883551308749115945715820342122619076989286118498604804082396832692378401304132993406219718561771647300948289427270152531239501641287192554121657804980750475474374160131475425772377100409257425906856038043375985352255926651035286974297895840143208272257560897353243745730946143651620798364631876735636631148067928672188576269419614167987706127889330558748956431182508953510381070758491119128434819564378582614873212160977464909137798628299619994203359448916705610877105228582602195470303114751007143638953180504060364528181804306529521819812547915711837947740644112588889312537842442622051133265648519825060729521923140587856814641401646119068337110276210488934280820587602716007374562772132915090412611249967145021794713077504671735167949547853582850772413831618579459645670666446384329542900279823398026014299016575417702485556481398741511311040613762935945568083505035951908555595155724886283009636081724821367192166000964680372502750148940401895338310622946271562754150947324045645452988281624979646349342754564057314497737850924344154772259045486416259633930878387984555866833827415728493700834078311881153953980661356242737885140908243243856992322886580609909684822157390190158104924864159639082590830094464106183512714724426751354788747252413429340631613581215916915608360767092962486219312825183551075806153624962588669642681246280568827371572918845884215019108252128159027790592504296461665151530137740291120449043823346157866214121723902490671484207111930588656976732971086971372846152032828889529315544246986593047428912295699775185593033789882274607512041696267103643328963474270700574207033472824130932238536584236040546984728476673074710371755961032208596103416321243914478887158857013128240087010841490347533014749112021136964015514980727944438008794207262625630679026015515029913440164650722027412045125091918290427503608269850451018632097157012425768383064221264023431291012475638145404797840599626403315811682389930871453449379950686222458445897514090575511913963608849205060849227436898245823269096402320508609645585456165424659373576652075470506461083448306726948869053979570698940063608715421609626596490475872465346116702687654043541768490242300109166633560605344784316810509332672851271938747038372039022374408364885197381089501243087341722286241452535407950585355449853836662430610767360356337104487971768948008463739413677051688567212639835586434001151278046248246939620155574124094030669012457060317586170479520781103741094886584813547901794989752868106760249796348521138388926611521375697404832976187266607292496646151956635972926088401732556639497191770433186256198182399106009214048840912606848095465253179317600412727561332796989888675785942847281926894701301820204015273715775174825910719756886628002966235336771582568398521808530849355010226530937789856725210722844627174614966682131514414674692879211330773842133378535491304571205933726204704660877735288588662850618596331707700252006323920069375557920614086659460764721326175046111035501525460709396694413185173409387813752532458840619560589704266328992386992252704850700759791775638249626865350042881221878426155006099830313281217567967340510860977668309077889930157852755740883884045543568121342800568659228521762383211454561546346701714733892127201877349573907629935306375464896596801052248615295890092708307577964536966530839796262927959286973308407223183397905406664977320598019414133131751506482417752222419057790390338725430711379382366585667350132294238559440919185404326578113740599630847019317007928357852331388720283881083641294111105221657254964399369058117607696685220060427303429902844931096679513449362727973635833313794885929837975381125180141208346939939239293770279184883330786095257183962623745480141320809331154485484403986756339719514627927833426918504602079730797062497609244387435979605676007242100872294888542647207602813289342148064686781820309481538214535604168059670535594394082366329630009725782828824938091936503733583350968230912189601209067746779790606388569030013060437774042012992356205408873332015845499976750525239641408657265007552992349800864769832806790662652070069973748180454444728781511518941834267916451794183160753190035454845250721118977969704781273384465263311344903348634020620174394984019254704120813854916789787443446636153490536547332279856952776167013257640582317209114554858865656697772807121693512528427795657121882874722467723591552019568445017789184234639378015045401444406193298143373328412484525950812278406298998081400795902285387500211374084099538564737337223612298145107829309123792978150345190855842163388745256559232413155607096015069749838470893629845920198565694437852284522378805174352604431424046253741970898259954896146334597567119331592123135854578391873189249146299162527954692515083622223913398380780337660643962966864666843289838813959013991652566249947416191689933317293587188325663277135833818875092562456671160869416354879845724657924991345726243527540088950484594441701338078739269752728298054475824788138975822654674211728092155758068342756318178975740645508495418094956041834817383860132395763187944491284097891860962702864501449758286029215742498409618823342531257873133796994585729649026994356851893216243558303567933704622694608220710571718857493445814356849590398818002774372098995157583512782195196422308138704011158771364429563275526918007129601149047826521743825121203215830424579008745928904986457440005507772443086111675032195460483504119406619599765848049682502190697211229898065196662876148774946189949739766403582253319061728842257238383618652555726727292460931198125704961781789389323187030453868238252028576143771579643313972422489002827037233707934552321117732837454940694185224254452122767001421884787475470924549526308911309058029512537153029706008210583171571685275173160581592494209097632778202515248370133116658721813343289574822018858569004836394268964352242585561907955779011758906889273898964984275272210179967541957193080114357859568864992681485488000505953147392398520657752306737202824408784442157618612349303724143630301588114058604221070373701747527280735462846939967742703230150450520557693891397888415088287407777754119442020137130942043396679606476638246016941914226795324867497107527657948209995055231206733628069066221149769993967287572156628648929460687140082996830394587959620568238232083290572041181572231732185681697951879642843953781148462886165367622139705606313524440392644541606660634625061247746221740416352731520781852270100687770462976124086137432860792095377190939079348786192455551672090134140026541413362936613588018525499321958470976284178887035203210523374877750260720752906234557239930295579850773789000500593151454250083260076347325239557809304877077147068602197983714340777461651191021385395692634309210533518564822989962269373210496489948493532085609274522529460166357242789309804000212144803191275683862075237177229125835379918062217208933604536802187842896770652826066830951486657339968352318498160509729559553491251886519468870467489779337881130511715672759679640970143459859408317054520906219364395883441370772367077378498553508312253181589918583260011965677741375912979931844578937544838895770524481970346542237008202675081447813169756028219524788197533335419976083056932527058483168079407622190331197392487195063229954157635645156975159330837357371704523268853638972496848209854957329165092752601200350561857399910802695329719913038961959433424310096288474458303581417773291428292869641491716043702062305262650147317938517732904552568023833357186022892602330001144136477837139276718682637332157129376965163769110290976892922053917336508089616584423140480831993677304323330166196253161860864865319092863859146420417538143830767320023292280673910704480220684688982980230170626435350098829371748094842105274442814341983174944045763390770563597028936449575824501460628597238300535971331935426895677016962665014541224138397517992583533226772177475651955322275615044937277448544972850843749468860116481012468679528577505942039704098274324056624303394167598032009859233040696109869901380105043593940241470446822310376800691961547794368562591304930518233761553714059718124142895781422310321449674558806305013646043592523497553678704498254873389486555709473555090715252856551136431824337149780685377778883388832920034490323763700993323923434509935388497302037124865186402459774787653986723231784778682255068911309485138619334328598922585922259490133003943018096373128293322689507984328378982146186893708770599560198572252575436297218129754654471728440059429586060231372217757068584237727484414037552470474272750006781692537731666638503272099305201548123645502831465653448564740667225238612007011831857981117565162388061087245076040134952534487916796111096891547941515085137270369904901075514486046764430925464863406334724927780370574690592645428126272551149228103144821675661566726708946277585062269467132131470992110876886334077212173901805691392553586529092255397276077158580475847005407028369144688627544164674192310146943025297588813980888246158390080290089456591541841904598544928686987124228243314836704475847391675921728759996608933906628265909803774604132030719624701817610199977178688347205776970835046135014312894148242111793562259519499742741205008474247354341471474958392693432728988451009398994852224766409984264676963555007086982675002565112262382838757714535669209736094017541213978189395178375889956847351706964900038676671014261872467296628073101510434896721379745595646640125324500181253042897015133457584618448406467946778914770231394994611628089612659105831740275372850395013619840454249180564077085286535897279887745987204394909505341708770156896917851691857513446513836829716535325766127792112569582966411980843174258969240357894358778477314813542333175057116732759532912283967689452819802049206516706681967169589962059060317921622089363525980044865525389409511295369332747264246928053644260671854490210123680960751923636450440646173757514748763212857968349894362116811610819404566751309043704010896473832869192192944433308544264161493003050951662290163221460598213764539254068251174298133384581976374415524860914845163977989340891665294075518180110887426533412383451326354465252141443676953467689783286758783814586409590277348084117212095370766480331247418036384470299031350326797520715762098388089383547883328674120976049505452448216027815655903321984062776528733839305259237027229212562664827077086291620172981166725896760771960374724952183406833672559062114818874332046817052412345200461453766725743735754648184460452865430438870184597152114035617072939918799823565980357648282566768799544606156381759524037427903925232951479759122535534075578728771191714991310641359722057335405956813230273630338777710649316629579535126891812546513290755416333218817630821639827239149724935576686353218136793629269736278007770474202273386545066132720318337660774512867456371079761768212786798178170570211245697119396095116833671727654046766128426337577997310901616329397077366584358214275473472901325884065533658241650789181375302220064525972361995130137670287125779452882680256794005183382450264237895572257839189477389136199738310176151923963802253184105976324830220120328917309970321540087213406606872212243181652585222720562336656649597711160969002051389491448575311622719622173042560597106035910277038608439166658577173824527823639424744090267577291101544671023323556482795245602663730541213983293881857892832182158689114550963493200328917239015425958399692741872112623000462470551976497862274229627505357119547656630181148356664335014365762904722156966277731991786717785327183635410134715893817155419600362184003778707397375434436039529279501424984604403709900488290766085399727113420043795499160956192796434260288393561093378511255974711624712704025050431988083335914370983708419820782943784079819108706307761547892120295065098310496951723098380986633570011061830738704761353099228224346501863962665259028652873043644262433907408568865310605695158650026532583897369569688207832884827459310626599511473692294385262732103632313504717339000401480806971801195692382136884005037584810935734098932355344246555640236306669340836590401070798540569902380521148741930863639461182792274710307775609758933890286717807720929329026971218886466174252033930584221465951442834461959382728856604827318043255213877473848344316622184184268732364369427368920845553857847452665074087812417200807495710060266448772982452804920467312209434187028657661908525791884275578765962699528386286513410643621485578039392102337622175351201023802506948546224660577847954676172535923613124696120879965326960387762982120978469377515946090201064727455305095069259272481841313612754288109601881550028763755873957861661505428258806235213000116016451145131318190107372955017867430928465273361862128656173346628276012083226360237550702437364157636397558328939352969458472131952902269945085038146571390735590521491582679902642342586028162728176472335303496881825316830913120192673587636837818945031153943495664199926457939251596545074778698954903004829717796896832011413037823011868963076418042239311518170756858199655178399614186749106507152486923122095778466529985308565818084301047593867368186140605874704954544132700272938103688075286287195465856563824739686460911715008054693439677002385121873252129660619146930034870913888340407022594402245621593930228075580928950272116593190452696414206800826282699838948993511716895371179166437257018439496807101970146135700154776798884816483247850400595089612013120851346246327517059012613854883441749877401690493115114398742020249708641911049737164649495223451297705513595152047291381300385997613088410955857464986822351398613362604282450026275161530843045031918641633460317481394839474097593048799593318394716467241683895753589375523745248087059848895314563550307478245563442208700013246383740332659819491377822696694159765628175355569487588850253098037532329009078199292412753917750152623179444374530332872541047782831963963512976107152757768578631850293883913650140119993462626694431283367039544557138982559432572095316376789108275144261237914079350795815915386474474266209144701029286489571081251220145695276481164610894023352086345420212171750259277151941560370000924375808065640912833539363474387836077890764925056189995246072720419482517398584219105250822985002644652886686729729278034545280474052051574280260716658199555871336117812068395979902674264560490364061380239390719612642049987409126803109069500789070848128861534718610466132065109114475873927588529592883104081072787092357547191300885950805656535110540378557662823001666175503445246061346055867704869201920912026370773192647890874860765659730633908188805036070879822562797917392488782985955569672907320053503990451461277120387575990338952582519289214229670879430739541474321220078396640267758089518078903996672314436506718762221524671178968519346941713831968636370176495279024662345603018018048526847046010422181035662408590568202306224496507644889411988883239457317927341043043590568195740694701091624450439545207839976265601628967653302090314355950519194514550225821174630371265551453689134446119559237392280957705185510319466618947676902651079844852232419744832286769975608219129481201717354596778753776002602120930075960545154116933223203201027539522764869466476727898502240904337541322769399024312772106622756166946200820050224527070413062545060183422342709181776582735657516409377181873665909897017174031714488517859595152429444441626183912777251576232849826351127435294379023454950793815263741394393841824016230089718170103848087482155142403269003769889502253900849417543985159051850620878349240094967185061135362613924569009194612287247865928767609587027088161695801758420777641004517620041917830355292943935864577498746551904159670002768481515161498778401010758695791168647779175915965469664706838593975905382605197898387627549517811374957662812528151649517307786856122916939794188331585025347843184617280961629957743420375151168336168793931883482955814074564273675876961466677344613857215477469293042727137757861252302861099374526973939857908758167466487190711458444323459360955799158028210049547302905903312959282637165731784633935317880831236844040853189825135350852556826334886437064951466502439277613237543160559048123366504346597274411540712066217427442857200262700161042997037081144289454000193291723992976928552190598565349823304294111292222536605144667406152076077687833708597953020371565052412320389775796919310653509656134879107517868871435446748080890873045921309475206672560970998216155611301574355853098130747269587930479605998266219411682511086613335429021487247793101181154239942224962098174318113163319714728392511089190238062104025458078656735565380976041075198638900124144840060731024170864446429236938351442690249351733557846861937249255751073844770247676683806358918150501031863872871650999136972160692930877409811502531967689105544204214215658244720844295694662740601150206970576790803236824059814409234927851162145264248755878654926594254895152865949823951215718683859360068543453112311238243828873008928488363052916391129661071859625591765596666118354022234847097879096717399327875367916762813660403580192887311151577779605295282560359657419559462407937422858550589780165844252684386151195904539703318676297615792739762937694572808329944201946213852400850252629518803627045732506172801174360279285596508412860222762605011423436801963766005234410892470670143260089438943594784895503028317682712447138865030077823711447683301817105698465375441080890615492642497211483727806930911094044343832450552389209122672318775345454205648311714581302440966465315839393465606727230329127511983824433003829352358841943244942270440181535767565519147338355115620737556059412368094426637714177405216944477073032961067606059665773746289793780502489568969872063732596761194668818986666814485764082743855977184156198421434702483720960351562844441744924128774650962240035558455396612800604737664077863023912316733464791310998707700657267392846722683363004253301005746657481495283629317017079009458185343459761472359198472246322104141955874274830763896727715386575753227003080141000833152185887474129914682390194979235829932774364971662387704001720869280822815198540215226625244851634696429834442656803311897277766525518362345151530724278959971916674730485606015580934060302838371509423843306901223822535431272935499897166707122158387327865701357120497812399174311272450448451845713962893578891645776403894691545736698230407568645111068643422461655051780355345617846031372245302774921091295642453344267167453729313594712950335283766665311429354496653864312858953558713615774594702914609338488369312162694720548053287968789740112476359247149194945093664386334216116121038264687529797687680107356605470245181382432852215528018763167290450884064699755368740351756826613852883802880868281491594925383510437111901579930736510891893528434697992862951077756055549534719677834798656385027117071197878407264114429757285957624395596765735497783568730041826329067578563388377728046202260927281936455321627109243719936724777311060642259824045804219359113592884953000234736014681291808624280772622039730674922193329500102942007607544545545767072828575520647966493487319184657199277759556633096030349984275849501330736878423765845950198305095174725314948744582566620767410139300804567125833021209850482330702241298021940383116002420173966558330841189507503661046987044771086728873743047189712857739706137011108514847132179208031628848857843685417503627901025062491437757602021618009589656728973011705053808349352694997035623057751759482736965100553274902160673267520764982656158035980791478170195195696223761262440716693670189759334315018010114240475606740946460337429523951495243132273769000614891586820596293254392240481142369454108624243635469331634022626911922947751341949975515174444755300559113568101432317558063622972097679267386671696714741940251365005020297125852276495890507282796101948411440024347735255545450768061167668792369576544474832656780720701491978722266829489962383606640255830133940939889478228967911167269061160054150986043581591304663469427219773186749757453776428648430935190540157858202489866564214293931530559374124473559863880780145530071031498840619075183355206197945897733747618505616934908101509515279487738210017120100185604686437918708934221700630813064323011392494180405405625507077041570015892183307771886000794846819914376885303803094632806010070738250436953964696254157935905895560108799684346138969031366287872802738914241562100441412699196460496866795956672751578152047887532354338637985200976626316836140460546169121125286545893319302980955550789080456852046695103967985360510736614446069688783297624225918796714527308202794428611600079799249513634366062741500879564253955936071200725941872550091782824820566578525968172161902285024088923523631923261987055734431039631934308397565990121866459104568750113442947762806255834814170234383285770319496940215175512093276225744903725851683255098687879248635683645197531693974045277034798926312284352399025891929432121850431322481440488261781741507228373672304175497344260622167788540752456208612653965141665940211668311954236884838256134919613621758579846522013205292221792058693903208177097671561822111140346437868579042878006386469762895752000993330784782019264282346128928399032935141327509312195423822415219438040215316309896062108904891388739551865043566925355260641737643206959532690504961744838208227277652341362083517927988160450700357659138431932894783057712250285759482402193551923826101326869266654559114668268365617851022834475484801876256181659959187073491354360657860117079827681352245766067620924150692403497672782326289062606623792569251996694570083070226503564947937834375912324813574167055927746299344427595088324285795580289563162317135175893952253964728906536361173769601497974517907523672640911113995736942174228888034143686775855288722134679098650579098319890600706209106515328325919852328449941366936376067739242522298129572632083764158783613168096090329418219622930553452678693492676136265687565338219435305299892030557998520916073940148612112464695578317225277508637243585173599708740245427102866414804080435101260720865547326439989819690550385932684369896545706583749451413674005015794530526629675731560543464604670530127298339978368127653075572637024537477700502084045437877527085027278506523856546844049842272862923617498775874766675789928294496415043078164785503492248829175102936059650346201821191530631047526216794213476989276565776916599646677250444762374804795511302283988838761237356000383555828871365856850831288227370475995578003630959864519938406062428546840850672307050604403425495259495039932013603356205751698122084910624061059626776061302435943912061007758575978464689229269581963135415018028176955845028430389692190700274238952256956196987489908563481947294420018416670050805303960825583007958473490390001388459044711641642509038153641755347130219298347346682001895199219798781683960978900460226367308826783566410756459590651125462545153159930133193481710615687614715626385746052864478735435310641517241277076026359350020188837234695717262074695874543285189134501781317075675443962256893555943280487603602614156367827767271998155230716518988906577289253575623237594702220981590232398941462219542285653547298602225566373451406085331254006050516791026562897026294182679522427644067612836592705806938141610119860633673708297296048277250618157618335603510662174603285741720644300271414802739606711854074491441129463909145335340301820906770665679344133846548432065911022391023865185981807147381399731099026191801235447499202188042347045035844133895175364737392445184082228624038586632146379634086432547112033154951868991106720737226203975593555160347038370741095313728393497354895677823203170089311198721052414627408634973279226414722066406967192175653855269267351123626195172325023197302911953043845558351916993187712419407689897591802468335767612245888114404961730819068612099106489575724361849225056750169643888833319235683367386703760514134488040210742014497654108799122848539945698681746034155276493178411935171372855700542539681560130186363779914138566040100408790008186855920171550274978155435267993679675009447063669147142517940970001437294220042093109017120911358382055350753283400557408067852807872960275656738022817727889239282940737146705474776840012400097707301820907661316862237747916686750057433209554156204294351113049938207251636673144321001107793976272912514660303245208061148975424982502689739713492233027634010477023776545982903700732086959671780221317912289205389091943041371912226208825892764530123940564829427713408209294469873706656035692222323236767202285911304095379903048028005800943145004191461855235035231180681658342027570733069181926066961897011895079776335369600104495972254736731178160741690546574448219924280244331765147186316185210329060292892049075067311007546059005255790704932226001999260668921114052541820133483335047710269421877143211152818936196728312754086792199536675485643011671438424310376029690860158236406340602279542912653598636793717761448805546506830575419443673328900431884060390282187538953126439695948226154505993894341702677192140797341519972378762947934706874643016244759845767979420070480756266092643972648213297874696143386708877526411029191579737634920624003538878598296991337462866408254977655742524342011752595008042767999099631807218674833634489611673707093063317272100934919156607985177303475095547832134145581980689660694651645116744714551672457591465929507176376592571210261130895074126842094902280393017253097786316570932606130664422668485330217238339328403173763928448923674146547898570142896099283776248978665416174214602471891351629349514730111521467209821027024355129960370446689162487049479961637824452924121471742105798259231251566311248590480417310512886254004030945662658923922939206479069225636963022953667746599393271895815781328837038141997363777044292016873696439485992038774742743673848733200643417501935658680702520432843500825090026528482559121824315309214890905034836745585770551572543603214294047347269992567682490254258805925623517742122364653726942127706880516985355207153079730013762114686458581964060355945277183033524372910395418732401191144365394246288804724162207280052744387517875346619620766589131422435762806288031334851061158185094453882332139452797631271375068473504406273128696047461681557797101683634880515675522230727414182658827762312764828950488501516028207396084764794845475435176836191577359341884713094051315967115634377667598583783962702145302344250853345203025722312644399478247906877016081079910176415343793816882588143675317501080010398805106595457403667975697024339008465352237020142338888215391025102965334159707035869388237740805621276832974607892778532510729579435585162227568155579137514543230333175101716170121366438744383243665776050820911636718760378495212763264931766114347655512899990882628309243296928736746090175861743766743920609553986657758503570017075889206333061015051297974091590334569384047844123683296471054595418640862437413481164124448912852720596998856943811169833833190350111967023295542747173721271531537744143598716237031834727386109453325387097057396862986825394825704429797160015816428866678674862396446853726061749303300936304186874115047679282885569979734321521059558803854190631872083038147261261666814109676347731053032510998267647045542198521579664412724340393442441145780140281141458858497141975290816217901473981784050398906835848567661448411181049670779681214970358252264516457914567074500102523936744075403319139488419117640621174821644280318076642615381943412931951778133361821711263007083234925249078794000861999784636124301048865363700794661559943007679897730224339609513993858944137299756600854884916350059590947986674548681581870635395995409948250312650073059413144053590707578948429266907272582040900812732158858876595859074417935215821720221111476135943755790551116060233403186767679159585946174327489161898593750556577108415650426052622852831184319426313056733394953889546577065373666995419032586577139227768428221982295956378085826135546037239080230500521598735202728096662389091014370592683356997249725998109273701087708552172830490728196450285294420175749176301153908594598359997934462914916912930378670535845750584836054496502384455282259247889283719001279972036512765159058069485392191759610213193601467863063861037114817278813595013883215261472102472432958385393944624220635573631179082752329387126764718615004849876393547293238832187172139761056089876778029863920906642433313273001693051980498118872244575701911990424911048274587421875471333692985528205548123129438639239932048710487627431543932330474992814328588544077721686460851073305312283931746184148625600590920615223719096713606511142593141034760150062233590008172978272250881326369405232258455898951959085649564883474970245311262706570505151021345801308179371044693343145073910393443154155446304167077615045101173837305744732753732033602087278662538661769539209056933714308413677561103080026469258768263699018440131294650822939858881827899515267442407536244524003435853428553508498752999852498006078519956523956874428525711277906350248743533331109751289997016303613125382917076697105138816179031304837086480174578153551804889830449667111361362039179498844807744023334843606371313519253329734425013117055378589687698128506867201557575972764144390542161789561717536983827651995708240673217417479660778756091453363917153367764828905871044205800419152161949159314491897457784105120120526088007806400300257797623387740176390575480978223592536854820012899638394158598699815900229182980658005837283677904667107913129554066440729992624180555420789981354906042897152013424770249526191535971684693598143861012285450015914438826637270048714033422239049730805973554626998872503314592209892527303823261950577827600233557281249609317836434078342300316814447141260232398703595503265131423512155604535751726138286553123368042978078018678506481072157892180085057468328244131426410930076531982407841645102957629485979805956104632641729351825831398136584050397520308417133843238740621051201125598883466177311761791163934685438242248305563589277013570401226942463256810523734292013255208956802277693193921639605583728275168025572635060773352414791417986726831320486350739985246814967807993478061088178187826524448512175047094176266048793604911013512954620361603210398181079268691113971920141971244302890399088212652870482775561746150081804672583839197204018817398802487928717449106858501223878309288470481259658240420339677877701892726609984151341326557619970799277430842141044815033182863846273404068438434448262287330510466031972483711733513070136395316086608263362380166053236021735643885482872936204466910082368075490398911892509324997195121397158099733365933879645221975635832965822111568443425729025352361541380162159457355344446587668339751460777438449887153444402000890808629304601583575565895371161601197915106179768388585183701268593180616095260490221305356062164515230785298827825402660248429891925772270502905269607274908258140421858320406048425481079373738426616783759864004747097032269311460504400486079877686106965930712716295761309548926824377828960286481513486883327356542421159535427307962516022589458978669514506918483087228061593130393156864423956529050758289074273776522264509883440986119268343563103640463397692253219792414923221112556479753784206876280645336211049464100059127886191257260085952029478654716281276502497315606354357344011164534577675200997179729074437665845437779642078746550032612380846114616896248677118677518200623375008081098552989310120239977440335995386568176924705901420790987889647920440877264919299351079093884789466121966664014677821923232678117907501026319315439981582518130883067351433478736435604736167978496895985350652353377875584849146572468906097697757107627436420849572966756596702992435566384757447706909728692233700447446615798375706831291848835236527698651503144093728292224041414174630207833854388028967688693693120911958843818493948957286249893187834736370006512467499716335542868017216881138167714242062262646680797222907802446565279408425089806491995152515314913335713862713516534711406188088139088375172699491177471382579321394271940475648046203528996825769504112794039705950498004146738767666239768630390872695955298032128908804622276818674545461503790192396303341632109430940249653748740494062473811030767065414389907070631647947221555708474403056760462219977631655405562453741420687593958432182197216567890130578354394789328198339566514331977964260536313261909308992198952429916537672348942750877112946784149604829481325722940209512322760165466215316527718264356356697930557948918613821444466662300650280252488041124819558087622471165358127824311457262222324581973357092920533177976628100525658675222822385011464180278625792306227531547492378499447970138683542487621037611669659816856951291259920211312252771217837700443458663733519632274564089024580211199233610192654910972817630588223971733432564326907638448445860372515658293246282059892636399301534834332725796362368251532559015858549900763533233004049107687609698906327699295193391013766112361374458856529393753455100155023863027873329897843756034387027092601675802185294959818696007088408990541743576265671288147948760087332677824016816926218295230994561782073560584921766765484768975469963878059139356776387661887481887677394472507953518013091902009812948646994877959653216998574421738419346089630464267230126654377790453629815279456607410901965747099308823275551947095667742456654441250690561716669879010417972766632648993170512369791154406178229117821952102648426203824370620094652097208599188105139474470918630107508268293631750593200827900313625117267507623861017508306873871819701634327977543321421156179166296139605140438564766627276576441458757107242899318529753866845915072722460121763240926216514725137874078149258169493377737795153111045217692945192651064412815433528649473138658722078502612751929640884934336798342985827812796024569443596872011954264864598771819539324712672208835998511215660710842975423236282667138222256146409063929329213443842912432344262650643803219542413961125529344545753939960528147618843200344481497684886144165236838467896345601118678284944704281871885536150040056778723755213953784600197879700440738957798575306275388242697164989963080060207546742674823536530687403344811358728819071718271809871175060244655157161910391702187344701022134380710057506364337540447857256243404904429487580965788415367831992472528946973079053488052437919900138155310302902194942301434358067595735753910647418140100693899277090701832751195120894762428372165893631407623396511349732069022956760391312861590557558658181603056602490491124373109040523112349106659219199917565426552778367284363234822322262697304169069492496674530996222251360503619001228789201452756293809971122388067909538885779182607994710851411779655562331363549004293046668324089719928696982040033614281778143003724500363417104149671160813053207821600700890253396825032000586187462799449877934677667859017407873879443651134267218834224676512805503235603039304055389885828665982260673893226689086726537244759601467908213451506489923354636487087497572004063902613139668805956833548477694110342100629693819988628968634766499559928369118575611709093578181399790822106255856200049714438688095842579495691138816665716813983409830749781909500382798293145920055466318854988861067769956320852820184403180725774477798714632795403218588242235944382069918048509786194064872459875130312141787885609216296461576565681634788807818772970043733159691637192452864113640861385020451701581068331749656758490821331622040191960131025289776416520948127655233381879092998390201202363900212604073734080015179325865437401172595502943367927204645157690624792159231363470410282226345086866594417317426055255156369914680785580186023551731730680512063671136231851933259595918264518478485846777118530236517735115786634723813287821328804157920750303634821835778122192110106144875893263858798803602626811161829597682526816132214044024666124203963188450185141854865238402573412684794694366637689352673402880547633057941429690001959019976778893498563757917029739619216878817049853550351574496755360959844912088068663751688056435910853583196018370602204878979332426578516242583015075010065856026024830993629504456877807926511926887627028518840728459732383738416581937371440379062811116195034459867642777002057549850199759378904153647634791435787969125262371700935894692914617207632642131904500464777704907555658058373579524836993669523296924771956544059587480093088329399277877011329599107983002361413686633296616052406788356937102251083743892284393727787728722392650552420391521668295563404812377700789635618436099086057060905677905249032560929523028972295652737159798548785597550007059694787351637454438651991269392971516019937243463619635292894831604988977043950391877484063529481012331214802820365636706861001820968602062957150581262384479906035544573567480226975450019136165988622868945785550291608177615680211628880440797183383329261853598660023087668712628424721981298290925349194256546708557113795037481999476626203291876919254318723782005483315484266224136872246563981239293543284119292723179319262438704628957340955072064701429743077310295808035918721601996405821283622040760110417091944357876649501487858522184176398333197411198042682846591188964502452561417334259859159229015944590258985484538490073720169841465826331431235669272872788270492928428791981515759852031894706128312133402567418390561991676915687828616072530506021602938967144694956643291952941492729494204698817086255657672102124424302135829335203140281825157361150201484633781583638644991402657093523598469973120176050462291423162440858207983660462010043159921566954249281024865918645621671951146145451878138269120726780439262503978406028239755529826921362772461260827441051882327989189444858511585262373094726938204799572213214582603597202753058023953383632665785847962439711503121872345881069704357507955361687192364635820063745179095914725549985012117130624261781384165218201835962948586438805005336165412427261479497962564638218830274289050738338712512489952317740258492682055299484432166656022183603793268546227962698873592314775361250694700835274942471664383190772605488376557465494697385653237424003492746966845941781663527315163140548710663466982942312176412553408262931183804409401029133812549331236480135209089132899215097390405472465646741012881421713456026586338570005602354712018531848095113406140680179969040872491899736787368131633385997613318372195606337727439303384167228656275704739168162829448443992759655538860422906984807751756415857528645357847682021324015471735900789504365476340477015712152073626888126121340045507844204477747525675392281423475922561377303059200966923907342074398653842156655261685025232557134403127554260728225809860740416597279991075097494392074503292219325057259090460903545734967117116049393677004257270749144630265593205393908324410318203591605855849238772630761124439045797105568783041355138086593743357405196171004976730935084325135069289628781686800083430983750665765458737247811529876836993325291230023076085869721355325526707936600515185129276353042096274452092465105117366556671918248837219296833009943330057242450138491024834801950731655091034991636608570819912135250186727976362843545599118415751885238842001675303709002879759999639013311104667808076503178381618063154945591521990839889502361506881744022227540443962203917976161181993214853717953724704953342062379815469052143017040258258828389440323695669138321422953080151718505704188952569540994817675868428983280168811364649138642269151780322049533332364628541004237011738146598957535854074273255609064833404696045365359054270428681135323548931613698837137408549029192191649773403070629418005003227123179623340448581090366324314429796713133302135883967502805208454759896886088827132602271186071289021459857423950567740975004189516812502862708287308605280248113796464991527956969534041702607570564130650811285311638260092897632041588741103786622380766755898653882309421407333490387315515171089024137586618289468722892327085032933709930692914818211279120014552396476979761896109473104583795048709432103950801437041480505474110821537573957670357761890820138435916786680225023516634561325779237339071462024918577973854202965802637657896868862263000188521599739300902926122822399599283228961376295342981866299008982062043158687814544225064196796040952953284251968100892539379721755373748926624369866212214581332514622158243450235225862860669097904982556242685491578590429168477323469819262981700627644473469650532562717214094942370375871108928245470168041649018911497233587589310453687836152271102240661963938683919387792978352168981643363618347026808001821666447700079892557903030994038932489877876319736907797292541554249285919143048161289547265511393438078924489549493302561554671018070979270474150259838823177535175187012684230751893560775832576295678792432295326297963030429793813878328312533214312761036982709631563614976823158532258644704223103051386212706600480732730540514924713257650347709308232538371008377367677026197528112522176242151994577447201247218506349047993490387450322416140424137404123463758042152020770501262086803103235166489606632189795232696429375493718359710824739444916848538883635443541692963441007033290728501891303441546317015907001799724619767389918341238207533448444002070791883189366387476941792561437176165378171392888218447276801289792370848839789995679293396897965033001500323990271044480553371025097257679621426981708772229900564138558994667835585849540701409135535636789386095463998451473442211736904600010156681066472674692483006880552279839416316196848728982222505029994585049745705392319195401065954419732967567292157894106096700063069812614214612943539306677950778414896362868826295217114067690104879942271859457227488826860599210921573249859199229283529013012493222409044674681444458676638396285963191846802931154672909132588526943050766875575450842115209914830561393891838288181863501777320493333782513669808882746702495822223837007850234029062824855446313666115799515857410088983111084317491915333987669269949324314737483418277945851334569615051223794435564541840707907962456629914232492051704234808697548840820337176133356294985012100249491302160501643141025931892029588136263081938090066478383090226918196146465806438789416755177265554957492177571270330440263313045968094128756908554697367746598123580265854638409323252865560438930826386887134396958756879680047631093705914575580721427888054567706064703683293365831101108543812556754517687957939850757831579308498614315987037818169792283571937686905841063587155940022856402513962428172293649477212247436813110707756978621393777047471383708459513963027106717142329732031922909600392306211616083201860211256228436615210759644763541562720686156483808355469177234237670020513946580265748829159980531737234611552178868159669570653358449705485448538956904665131617919276668264575050130550553259176218302826873566368345199743050401948021728003508561635319057260639680434775933394272209607633251848182837510713911675098659965618341670937690666844186169528207407485129970056108355817658220413992009291730155612614996211799298469737124138193308835588637981736796150168431139553644589003892556753212230817685550803786657231105248052696102568710321197354940748009745320364942329714686452923890012037494062491357822106286716430284643705466127638722906979318114986497701932089046028310475772276335998275415130732355739788710528270433691079108106227204132956917396658102061981409145903095801440702723188334396836986037298364466660455343588668128038104137940574779619186171448551896809695117510324145839813581393921493993090341240547867423946378031391679624830080968666123983981107605195632097585226381020821931594787734635587735769997032635728116440982464077291632504079116428455446570215083101070378753053055216220134365647205938400155253838913420486281407670719326942414638245151675150407515347996347718916532597129097472068491663393398630087301612788720897789366549465030981508139115948539034364935789932155460727992253776098598606765506123351565409239221519960089189023871509312823389174286378111554582644086660236726670198458919474303631141786230605226247624462497614488622441238605505591518941083011502259749584200733985601745670417680222561531062266588291298978517462309506192510831060688190162250025622693305587863011973486133142587719616511594213798163049000267315410146384649548506301572797318343317105270048152790832253484482526036576922494937983586276291590938527429026626098515626814838707185514212529179535471861137224203818801101860549506323299276469498786474662133244269516661343974884529122260217252515789332248110434353931969870512137998490925819236288468916422842782622022448787335005798015448410796988661836427647849755253698183729951254660980303939790738632354912103629334794313192544741937847767549269095280848874680206731004564735683821706942611984167047319971064200099545211081672433335833840736274632808494787084948015833053090504673872516247126757237858912870881848624920731389049128181221964214379819583923165461846477225070282699045548052841685958794487155999306497799047373918219495554925410830099432224978858416953188433688141762384876648300323501312567678797743383127159486000729818840854655216088742873500963296511616935677863835644335126440334058170666047723610971519654672043422169794622631098110024867420115142442569680163306808458081595248983592309004668536598682315406207669747432151943835683750311332342700756927797303959287144547160239782679610757244326838246277334734414284954643573352139917277397910043259524191780588658532425596674384018576196750559130548416886181619273387901755241730351311614279606759586235691337578896138390471339277632711057065657334257484966515938422643743790973795356393501099385164419841582307005346637491618002686689519907814523379869776445744462436367421193725973188455536487860987135252061547829317025934548245033263674216278641656288884141032702625218338831596193553129344710883221473745048704443375317929844916887467419449911977988455893306233304881377873260374998778814886877407265752128745934639933688873768043579779541084671836005336363618043283808996898002500321738302707763083178350728383111492858058275249752422435211166401690716406919604121838309720035756357350833188663364955769464629991133554956936479266759431286051390570380581144093712474663349612934218045582105200656459275997783078672789954366482235503597653975502084804691086469410833648150884844077396895222702496811677879375351319046241332710613601302562512430482616155156165272733445271284184368074524879701077640495371958706646121755301682769977906714131240727101101502787702125448948071543538715809863372511012614334758455450243935742113990755166599583197953564365434944299325496291234353461725618761816184750520933867611929185196126190453484572156352308755440831224382692897983467615921225674461909500988414703483330998115499140371208308572090507861753352425575229109010966287999827073268271896000148465306342862979151880928933558459450435623771225909011793111699653745404257887234339464506195378411078921702816760722672547605619498935389767952216177969930984259836095527490543624202334824702735326291815756715898715428167992983043344635302380856812667762428006882300041696774377723280009525195467233496422770295221106693663059817479722645460111917062566194529074481200712750055561226786227535623269944549386668014611647672791362472573344141931216377054166177261271094756572824010727885462147303019178799082481175697538318163130527169923385625949679715263401545272422257970421647131520881614311129807661334646796719993177706437840773563747075804967373061775669332054294226885576275696708591726476032941073393891825210151862742446541683213122873253617117814300273414817536535079924566220625303203771177299702712432455555742196923397166323291260964059413269030320614202566209158559480026117521247165860960409640076848723018656762966469270571101579969153868188238714877735606549739700815171234983730070530081669140390405872127977627505409989295575188373063167667947361095207326957567420175076659873559524144468672234367394958157188306419465103653367733554224428282550052166827347509668975270394659621372868008044086540320424743063847390799703721370090449427300123633404136110005691152625454450572143777102347972713753683589090045446152799456975572316270526963664736175165021000935056392177457173980029527119834693333897261481269139775329094650148627989698798665619921556279744799614324894332897984785877333487442845180150873340507808402934760827503719018813348423079811299962399105098010257944669132038310532437119201377572927919459487889118120214338529212064818618594616286132483155766403322973114457091913891326516396432630738197529403373364005610607580411898652668650348924480903799038157335887125335136252919047600121763620076193455840149636850250298121616921283382627034481184242055146885238102497387765869121093540330961489038884199398064762384267521065723357150659381120564280485490225385260218410161182977919604752410446118551706244208135322736521262964134242860153155315848829401985296293081489568569066397056895383029657583294995483904619524621512877037691343706939632395461475092712513516259552199056276982205210299553488907552624167746887710432216862825850981908382895375605569407764928883018701049887147159462640031510777576549635464508782824670166989628260342361083328991621052312009688021036381619388253788897535616625827410576789183521484400696739541373619189842965156486033948297249249436634072094085260496246530294136598998294473869189053228624749178901915634854547874465099969101466887093845448336985094737183982468391403622866589343227787379748935745848050203928297781680822206601578746143723895006922155818615515315750758483125368001609402747463498917830221902040496875852153899267917645739886378779646511812746451500005053043411568380898694093080022430261878325272590575890932093639658893582671116681055437819583114472817604256394246433201548915339250544652554121819023431561651866695136707210836154133350204331157105468317163171901881431212003424862763075405319131231259145426823299856414956613892334550566113395878762124247425007226919694622852555434083355188760747760153335454402516132974211518868303859532797773402966104685490880009785410956889147132636703819908350969432405023128173919161889335473957344276220971724778194237184032628114991641112930047398099038957816320950923656221915760822442907347573344297038458313880737257534844116204172441296168405767400446011522882407526476453615813445062457476956668002143322157252149749308656034983400371814772994288638861915952470090832668336987719530224755222190101964179935323722035348700833704797718909448925901180136289001023803361302248551579703557945972744635548216634437991099238608446341852250685450414501770245928401583346954065124071794562640447822668893286501039281037378199846714053343674301884264983809104173432399290164560214028653285100800740220469028414908196768479221069961406939673650443552351771250762713606228105976632955006931001173810161461001737648768801440387803293561155395296801328968200700941668258601456290144142765488578651801064248683227601794840284729972079168281732383389457515678687582919686706276486524311597793042027210084337946106843359137584833112103131004749836790634239131267235475563925969575343579920688536751395566457354260780694021189359036468491292828774911375261188556527206834995238787323270156683909671209053946903824893348435345912848740652684005928808346252453409559897518989255065276580959215458184396253903117837341236627878436976776468670392644764794692334928546043475732935782270710359960899605113741455387252809011379104003639596647169480110990374999580670673207687209515475682485369859154000195450568635598063490821094769877637070290985112139786798505375221889338042558985941284247702834886342124310773125908510079196431655365630971601216474976383351921253323820843337131160394078311311178332433998996680760887389746787320979914773176650928065491192962855519279752606656977187462960985079900248935300143976060928534268631230956457143490792759633778782766093531511447352384612200527893092086253286224992878737663654272309840094267900501994244704348097952617732967045439374014032985074376605050867690003222639558589853225793594175864537290031848252383201376113209045612353430890298939599517233065602350106094397552616797166703587642967734835386057130097539309140126865931513971163304405074840089456898656907534717128139284405801184705639511944422265879624112839682725193558248088614114034454365259857336367322306695589713241870050014143954665874569877420110201607418676385578911600783931408064602575899225527482297168082679370819274843899075026535190687889803824306017477558688349753258072736000917236774854418800064817695228027006014773939362988161195785496161013525936175019052727141414055798784488794345104766513107126728040607969904788092874045554472514114342173126700314746790078853728728863222217930572750785148450548812798739964175789206889273213774781023487115746258568677199816372937525672379267772304890711920491987592420569221689924626605507691821407264700010125678178565756289053450101908472090937960631780580642390566346601353107781045509136052699062988303138320693996684695205574914249131335573748631218123677903589587808836387597610611796372855483227633681395217685796279559766657515366565107177302859606436153309123880841738430938325853904605764838624650260174721180948727865655446389391847003122467011853192926229599223685850163437398893307048713842442069716774575135236864192851827082122950633000770364006360666475356910930111568277399524514130158090591594127940916447203450784844295070508754996551233158454947127168035905705811804591960284500222828920177306395342209339671456742711271420167416904091769849119307861483100107447357535605695911902385210768279642928938588006916866263326745046629317417006436718895102059662635154858728675465100227154235315441912175920141550486816869140230313831001161373890454552105375128314445164578840065205581473525229258330720989861207000983910405876921232877118764581747955406714823150077750417354078766195128296273597231879480896262270978780863545252213661576444823420022515292882497697565873330612693191091203135812250859345966799932203971929464872875389007551990032383231120700813174728583873901450131799325024060377664374111359993048489526424241158626600540914698559843624302740327791621738375780457047899273051454097881524294246705672303804838234975988644244807815312635813551016372216291633432728609644286049811545892233792369278476092065400069844720065861929345775795855330434583735998369711120009552242696702550576964012781137468715751361330131695743594022092056093253444720156643322994039314348431580155720379954791058305692797883819684640142458364359103356116944765742674394733149629997968765239902980391678055314689885820321196744387654246948902681458412995583402686268189494592691435728216895783294518064298000821938243349359906616767306863342493587783736290604648503318072802354791109151609733580001838655927669674290259996694918324316275844237435234447464788465936320899391278700799235752600154090191925443354147959072012473551333049265060189353851781027897463482037603990748521336673098103887792046906548314457667461607066260573850403118212059728829546302358086772992379006213226613863730477803939877289408492251605104438661910845483798405795339575282167361918582851258359300062394880056936286202868186316432818741311485198134446543856405147759618685702148025866283303896526602651522630631521608774631481180126646270919026851594244127416271957426510693097618483672638389017583298036086058720750081910346840505294352574018958000153848479111062215657613494525266394006092696775218504215172793982972811147398316743561556978943633050313140860338708159272703975573902643366923629196797832978097099544180691302422280269074906418899087741052480593994587210698785770775558208086111267535037094437363035487733808133709494523774309388728977378882304655962837927394964007937097890313527813507853312177115960743245294358024019437320784189893482146784436126600168498201174134220012461397908680301375240534731872098663628253698481410966161109803112188960533433176276901631379489989702338158799517722298669901907088237099095840053586783148716634293819154288573464175476317763901093445039377966636866937457686206729153491913978946945473366516734468625310757748482915645019407037800112083460024659652858666185115899434790984155512288309316174832487493126063700149469655844301053526801062305237573512918512821012643038087198309347905779016634104682630838053146999824637374264302198672042687707096980482159688788757208170558167858033706695175813709357081093380408851003236653953614380762017893421658124067231733799981160194111933063473940970553814275251527865977409751222042233030305090107806426397726037513471525823037466142822768249228556618910228965311726754923144998173845667229054084654244305009970264145764955636985586450280846467210928608088881436986747315394355979456742686152984490543648029464005288734039708939654911842797907442587301051150029127923044681456725993441208229341060264527569205537714522019779753857305411805000748325181304888112534352902610361638358657180493503567921752032132874725128043552100496338244201614329759997991881884814846236355431849681791187427734912366490949868540563510907641155158884001718127534476532356687927530969428530299052087984290394916003881777400982298387389987150537970168540000345263897695729189234132450067442681676718694606418957262834232687807387390251037288517721496856679083044030651159851675866843719993691019520873063416042069135113539870792313482900980443244508682430085482797074028788185972012993334358313295385863285869527525473406941979037334254123733102111555599830840135732599007800851230270713803897185866188653649749525270690002981416757506243491985391852670076308974745088505691411176944697506981058274295807430486827184558033960731590792990746872646110475984119260920623103736416421581615192484945183661433643076915701385772989067712913589558028015570756275611228987338661905599828686241343106902351222828652644853321468717831488173059798784298663028358528674411606030804163056291046408564669926202844784811101985718816144105317896294344845868171044618880563012058707855453680931265964020996353874695328308024062468421734337787133097829246819614206521986348284075456911502585491568934527189762792782737293640445175326873134275248670916899281876810635454421733621888514742314132537879828396413525570616457510925073182100815932898144086139942956970251410968275656628464188358890145051167678828879292102319789140946417184394716732851584851330103061053807311474477581343230994011526123985324745866840396060761002791260310366665671569003293334362335972022712730613525883710992640122131172977628904156715075644062219544589115639883040042221018494078060780097651973628746081787132085576529108393270368203220735356444478220336184990910675988419216862796625781304714720256554384613334158244481147322881757922377125388909838008526187856876976856476183656149171082449185885015294492579793931063217673681943467097619423774562318867171601690056968419831796564955574655257067115364884588025134071957006078958211312580265776470448328794166728781336891503237569009195109363704352489818970708871860688058049729608328587009839754129201563924846246791253453651491683858529715084616383551099144724213247712329301720609102283254044982310311440254663110572806390262975364657763041665856189340596269280418067883830824248046784087466702872947866175472584104836963648363199795230059474701727434354109371709652686293077464227961629872813530316741853309908475677076081442771560695806472674632678299905826609346434431636222055248062219059809900758709784427349612121991928187736793076513589504576268945069148668978642806864386132658647524664658543514996456118299164834342099245128739236615223796955872280025275260259267191385158402053432692970544798781819497334220400026279106276506660696529065992450013491498495429320525077764685575565667490564520627213534607207923956746661258964465745953258844065050609815240649906902259477952044086073420079222775167230738465638303895183334835695294694134993784845466739851311336675503096548701534297827559155862973609408993475628579919211683723911200002904472741532705426867441731396982929650204013234275641547315433042672300434129061511039233932400637179494977398897075823711338291963246170958413877902612999033996707723584478491175935790883379312067680763212121975788284680067647266453350784079618018130986723900384294222253664073147550965938523703679186935195930289919943378592758901570037659708924642719211708682753091446858874981001912287838162662519125903375388836413813272412689335721226306982888640725546175013547528997530808510615231756669271250931397523225376377943747240495267389915413047283332916261099554269981374625095976534594034666307555737775823712609576811948665634654377230673870238104433578219034885281834199504885292427326199160014826775165041145657704963119714192280880640047312214837243718613469157596789463929924308840170403967131309822723854498927818493429411402324896556833437135860579434605455387681961845411624201388717655204442001909944647073487026225140778428057039406557834493329589332483157157813743072665450592455162056988635055149674920236598760005319854885030525673319959201847039511484212926981371089201986948384311406945412131785030623490599346105898244424615782417806167562726747543668407117084799730093141300362330516913431777946141297687618708349803432782841584354547721269561647995752221299409102048786866846770235582870187042505949551450367388551741082917714564860005834531219291868849068455014118587036778633559365128952033195326295338918902100930921201693052063549364287362439596381297092109294583027929085828435744105509921442257748754465750169997824627998420743768081530496660398321958317288867519031221189034791343481527647686880643892361141976258808040896664541632679512602770715047474578384917712237452768975514221464447718400052969823214147111313491510190334887604783329505455297926140409919579055211952561001439539635143125691472059807632682125419622745496995690695051396814330628204015278340006359848211800783619884536516912779628441307779165400003389958302481974145450925157954656969486290440598448429035639470162417010121332946647675568269721638603006927350176465166207593816079694237287218030850245802870438795105506834860535569694285180093016343925389369893264307664331925440268661096619093919291875601796891322757071501497351185548722364027220836464714243692757717952449751472204929140167917967401070376742016738063853412585247851079498967817667212768963695551203468920769164785996916952754446851811764080497877493863425429232290669127728692622378682558603399954024198384035405513647730284181102224413081173485170676859629980894846709212541887603819236498129652057329507811219089427100405052289095929965041896295792812273324168462143634669014858487617810570676452188903992974078687320173756758240699180574045455573185996859633142964250490820428900637499041776435770083570479819273315256640294079922279531362071640535658006557608085339328220397357916646941079671828822236342490421963964563217748879826678633007352900176467403683197377488879176777076905546536367756933432475042511765611933108496017406789113543907346638677859198797681978751444669020022780851307310462832357056524802277139782705827637499470633703388309603446132357147692776602652082131662853188362498522816482557575922607272872358120945578323520507305244832322724743620046205162575964659055855735708173621693734192129602026197334200860303217555176904238735575517899626692321765065127509225500405138421707593589357997695573994706974132749742194924663551923385473353818187825648392029568636695546040391856823688749313214039109729172031545643023060530412415547729542939268256534666396781909656889927542934077932829286758097554810904907775388874839608795949910109957476763329768023767609060749290922066398748933037813957455690092374440009524876187020009172956158254316930372494953504180931673079030701487138267835355571046923959732467856019084046834748642742729089020439082797561004797865066533631987546952035660133566753975929694454240984009554414986755771566993656965166409930746380393007901234752547504127168819102632701996126857732300758302632191430338341044765440630420344762867020484099503261610010889169073262379498208177273348323433676565551208308311636713369506177295653703938719475372669384745539437402583785529142947649355583745468370275404035919410411492233783961867983998572989407285260062766585610513452089784417697754416024448435905712064108316786403011160774358380774469771663723008551964654655901368226975984481538543659254365395187472908143950252234699528072216639980753953269011270306241029313462097898122454658130579701893416713853170883734362095466745407374413669793716646395036236855014631036841112566435726656330094366755640425662959741268997334348446547148197149318924238956763044030804382790383807845367280899410082335318001470542316333850453900277576985318776328174910425388429526899883882859054271144190550597761310096476841958933200612475586151545931281641682198701378432759885624034547300325085701480108933141157517899979720853971780727292428100722321249985025591178478171572400147007826333998068918118198971167031858792927206900930589909025547425040262791645523513191640447637730575891802981659089121047934981608546624120102941375513000788566612008499827304423855342450569681739399751417798287306621213420187831900186590511120702675067418419977570521693320673840565406629599658445176400207452360704514799062975634734577746060457817854460849749807646446750352754445618140602353093631673888957564784412992851195391662225070616396609789490561766049746420181739942823670268205455784226754456996882933302283921663388963761577194987909799011280828503616016934174037472998921805298414541268861029337278765185839784568441788781748152732536697726643425637621645703983891096926626124959894212552567460353606376258043277530054248731414327002246849513716558499693708013535640320835592749493186689307242139104752604468277385388790365424455981831234752098832584680791457900142719726245144682304326509299838498305376397014874617744723157594034119030957083446734812872556200456964038686434297468414195178634295381358950852019463491766529158475817335371875011996115807396002181628640973268502217042635264397398008988437668081212389431634619743961586691924753909376441129543706038943456693196123592279515154553400883178700596289388666153883931343016023773637369305077384790261162395704468983181666381500563609890454519706818756501794619504574181271836100968207707279843675178247935197288709666832354363855235218591143533134118593115459522273064820285627218589373310713457899106683966188980171482373426096499210406453386841220849928168255279996039793610778076765360958632042872941316705535263281635698672276978361003559633936633192720799189970950448799125388638554218275720226853372196398899634489526362443466221904908571691964276532886547343353374182269264124386176308910447143482007754472942568505478373039187230379181210398608866264273543419304692114544244092325522740222834918095048732769676484561662369555904852589670109351762675126006404202534984233944537421250828690148847847733236953133249240921985064905318262603897147698690193138775925311387573781682373779289815845155653970452007537798412181373427970920268920915325638529494671315591604556568254992301613471249443961625681921350801061176841716647120698987501439800963259420252260441420638895239156320648704967549687321840420239304076974257347369190076334477264467683937784685564326120717998246909004526171435314958101651994069764906214506739198446643415925599445012092683268305286622508714983071809299576038746223973982318158815150374981050064413041327959345860166591914941169845599054654182548563107718493547399956813386935204679075303572676721761576154976442943476154044299141621207074948739113953196203091378218860512647054001724163973726816471203193043492962334157859544073503400004413834701034354551412291927046119513129133713939720481360168850112364741448791737850021305913805390548542612503544030039153814275669448522738942825777917874201794941883361703950920045376427141386350553034950775087155922839071402732188336827721566511468664454200642882294272032161534036763622396204008040006025255710935922977263928921207551330081880077303213384549396542120210512795197785333811468584220066160556904341196275317656830649512094758382686988593906578317530428334727155699816449720689076710742145205533874271066274139413713237663503858592492486170711923172319851957021726796350922256222480600371260626808838953573309993559812958609583304603118278286097850501154614205309119616152865375693590998283402441062668565527412363220855113476310466106036597991386159208164398560597608147188098711263370531703866376563815138274508819112167098848338751375639490492264902487678726950118832869743632343093557873847641001599607830316482504400425559681800729345984964847176865348755594899024227567933252465172929341753216953690226947941038700047506822332804332866859652174314656240758976219579198087762437206147159655695517337759353630508438209146654323793278502946543098489845395206499644868872814707284857001444707168757353734440159337741994801038844860358947014654340971405741784086109888378321586909199650639151653677802417586920133039172481930765055980761950265879287291107502978517246928055081434676259512125029997635346111772009530845519263798925361695629015593702369571968102684735669447053196660745117818306365900046404508094470039912523025310121281883151284831196061505912000049049758891633934288788065393264264785286685484793951046291306718188508585515586008034626652037697358832542381002094132497867103923728807176499390629245357356371694872162050968512882398110810979281347323689150832290287365662315025946834872098284987555837945635083674827403249584601695985281255276935489435831749379837748878839935078652354574820874095924678486271958189480591112670442453386507984692866040659439189996879714982631026103186238201962171862371487028696990097957593718789178579403758842195450697373969604803110230788443650932864782908256528794726380001685406304197810543487955491416845412128956077672240161040769539691917154505141026505291192935752353290247149288564638398476218100970400286718955303522319989224680981577907704615115083933245598204247756352138225565082066101303202389253296624072216126411783186418586617438538649742146930336289191703438770872807670116732491328957013313083252350064302610649958203828084838757369645167526403752445586950879689200764721792400141560739091771049205843959579721310553714242119523346557934424075655689082032091918968643562681607639624827212075748422411872287168837493411237538014745712006958566058186244113237166218525411529130722376286582875485921966633073017701303678155412577861922720695724160377858139479226808990375926124912076536806488517201807104091238562967117066639358770988204822491396522601614627850627216253736827068421640526573367224213286669386129288689552672251856499741380219776145693145029718885754550718654231802276103729114326043939175024936364956757076087352408432525401728930533833221301514159593053458912235415368448082251400438451161791627941477884010599697083933417921728345868038257241201748374594270980675273660348199944338797896873757887048856684185648648395845135644801694869364388851727545032774874446278491500263912738012814514188368237831974109481936223196714822062491213733425804947703431298959211120359573220435784757036055525309741345522647576171100437308348307268653651242054520283555842032121364177969249933774326730953450126940478559477931012694382143905840431764434933083318835617773142552303524648620035801369121360230867770531073110481555186156004524309538760779554513926705672046139116227637207184779049750657489498042447899427024979047728641372616111407667453101742923912452882741012342754074056756885430181870774942123932488126251522117040375598956496150683374342757198479093481571991648304992827849940966627504352219945943174389250640189281658286504525613335598605307585297827264646963608233721084754007982829607532379982923474574773730867198003286600541446934579357231665020732645940877093208251773575185352983389300780473033879711776817423837222384229272987601411046551007559508267275360121383998628924610749958925371660284565086776023972174113810988484097888017477113614122294138138664635808169887691984926387386438851052591401885248303961782276503817724503098859147775012002468530126603497680832076722050041920584198988982828859309414631937469070751233127252804349074198106519296614787090715536172411795471568680684118020178921137052055969043303477154262703952050132496845920309636161164295014342233526898674020730724994824229278716291366085219546617103127842658636495846175790459725593449034568463125389320415991792656055999232104125415668725486993601366869120802146895278576682927955934800730159262253623318008939088937896015050118727774562075460736175986652866219792206320681546125263413239483431853349494538718577536506072101661921571523486228415698148151992631682192683340596484895722710841479361099191198150807842992585164305192852309679132953352000839829898059181587176540094019607204538093497015505856914782750632405978084147994788364958800170220486482092899293958255543083236033235383418407057448335128433215536678215944999231241532819468391492990586079928005546196528320065871585062740760228364008380702624681617691017073472817837952499991726271547185245478094269077405690763554519267480227537127814885978102697665074296742420829474644486157432188377805033236692468182206392271041629399294516580070005658628692788898700558188540558012024149859800075196744760876351638890424446103786577392700835043556548532668941251926537889850400357836126340030595515628455428873940585784174954980997587125626414204023774098050503426507088695486232447866243336375724673505922477144436045821949222149362829997777120943720310402929120517470889468653210491274843766347806558549875280111173627666225506446220131013227009850677606513849162544555740121554797716760500297810585566926069501325682913180998521240975687063955628362691976128880033333606589467562627745280968640878588263334346098148437497663044743472432270459900569730136033206584609140823153271437283313860080956872603622404880339103737837457248825013213434494573798136545639586093994727570146899640486351453424804928375012147741574130112349363791197467758763000258604336645441744450399923790632657952402953510859402836686728071681017831929253283988824697040517911982137644563932148509957125224916572199358681312354352548146837205913356552648230674880182672646564581804895008016887716335796749618164415936352512518639073449259048881853908754831218958909021907361436849135604942938198026667591100543898904087548249942848884592121417554100074557358378827963955197759745366702409754405970892533487143933428617780947568437696880538017329166278757334422963953850349280842796430591775484040284478009272765164951995186809992272333929054866689018876517075378385559101828529267336197017612280804086363670244768881854757288753140623822442786621634068068446530419833479362716938830775813797578486711784105451411833113548474382936201402181500433658496312624499480345667639574587821107303664039080411224001074865083008183988322525190775519696611600287797830255988376135058995272228940321164461108080070426242033046799194296483225111283954342255123912533021734043338576659608046909815292725256221657195982157689361184370174779941154423074970359032922214104566552391982837956573383464379334747185725695129345263053547720603620095357536276424646010467273656575169844617684628751745036582823255045278128489646028758858550195247764713039127525910919068896337638773327299389945301716723531737065570584622225776948159827379462164512285911441074935162638625351980475485717903537642744858861538600377270214912764121930352488100051915540038459374747959597381114005356221950328034882140884711777526362796417347529960140453983244730501670989640219528259117492034303993431730489033582661159609626103273502261596412985994846996372702710214869410147072353690397217193780463249197224568943357832958235130367247393289771960394669305795883028957095611556325524706821049228266450049318964154064171357238190762513395862825754678583628219130790667799178630896410189334249142995955478085728466018336878004925117513599039006665958517142945875849264331059698227954260299042152888275596831494701310237990451457250466000452903120314324182092037694480999559535407854316167133775288607534527309643837635442667814095633503191211710565674005412540286487453513851060695994627133729415550478635539015337746855585416553193188875704620910850149136313381611426998486392988032862234121826701956064166654734397900166058367111011952791968117618330646270727028788593018442962132825525253317375572182098230655273381975855745621279406061364939194759099501006898765622393581148902637171542199434333857585662229184630524976132179224036454870175398804103329853488948541843578069148723729088628587310941134779886977049450798076875075149637068216098535125846991453965043946306440869515945448709357972550569866028859670237004335659840608055454758724885928210421104459721136277746809117707659333749276955823194859485439546261882473155283924079786519853903356794877676232473893550095394019820515348649928593134801406391358829956971169570284484032219875898737313075143279449838894256409480035145702442303058219448076795999113644678142639109004440610690443334099705552457555598358079878009208088732783688157388707313125070358793521461790098455674979461302539667444628684440295390149478727821734379914874789492208492342557123151444514844923270705717037402428764780865932893453732892229518860103878182355162569424351900523361203143362896434430054832397038857149663180907325168266423640587311228822075251159575551071211166069255013275668798790430001382305575480011978350498285309916786788573107926900039891520488692960208368642675387287280603907271151824097124036481307356426865036797133548499695036579305963409731991789948534839826752588106093853359960921408099411586589454331345430774941865574465404594967243648660015389643590932588074756943785564780242058473995415101186435448255706494481286110816733217318081428526801586838121841938952713826446406960815856478502412201241199619091242319724624550226987391428165949832841014009775160302009121234432694527335445967967041488444402979228901623140480133357918793915565709052866826632779152970723310602810848917066088212007813085267236186503866059795072891105529051478003273634030119533915501630104186797627739028984131000403257968081031246328216191941075404259096443829751019672566963234904076209900294983800684435287315212664741118557279441341328508082257018495365337225989916753478353708116064034939233672680140402352089224874089087394447876491387150162441414540608716073057831957165617671058737455226177900197679019108567633884699179630755437457118048303251043288231725805612127087397077729822337181578524616169264522260808852532609824956198821787311931800462208567106614757272329602017770367268875803526666271327465368971891163076778932769925149485965657148641924716079498670331318907360585706708883644072066252869964383210167475757467222386195179879068564732652535918827073856416906590655479974252388852260288718585618945881279967324154233438330908323505613587504954029123424954108796031639145785217981565597996086133317766896685618668034041945609037434297097244080229718635000529565556906021552130287032303126980647463777225456429283005652443133144600159234828021123493731149156589792343647754041966040571120973996164208396710298332628076209849066241521747913242174913446669097605359964505822964396652731455422779922945863813834920659053658071445936015286844924284682736831111247025662858000539216996329505393443386209056321412386478557750916788523438649890568534593058432067841395811061532856246817155902703490688279539202022973509365730256138724960935771889112363456256903755712577089086652130423475431846291391188789405240622767829572222370092468169547422617979403160520893728624767080921437530461269205139038649301120478686977457013048530073894160337514391641234505052275212754563567141799534070895611520491873098529323823208216411901013528338030625015150602034104260275757286431028874984106333106380502350843227560476140756945159545662843913450337461943249199544744964041900799779468470313400781824776858755830390184619809152628884305681025250343756258114885123122651775282553911178339795185634848126560384075707517193696999715060656145353892401824009715035969942129767425944849682852023497521668316030775664726649545008837331508241875295621805363374437385698264140204507587184674466256249354026882049334374111228082258608580397403386877110754099972910593404152361514481378142706581545171227969086252634474932873303465387737895978883911330366890783733198550269246965854585168261757448877334849111735838061311918001963520559983055346858779357822912908215602652412774917029387583686666720544457888513152803417569968533301168152367396440685495144023197012833463883598442639831832134913285639548930144680879179063845282727703383161803181303746927140143298616768100447967381131157554039305110473263303582983744162772592522254656082791276965580126105349253254291078880308814103031369101178418340158704509917412132491560135868875644970951990178833677033635753452599324971564401427613893794766105621314180048901902074642838437783028589116778634929637232934545972074337870950466642763695288313636695135830339041128087783097867098509670516706050270951403823061490130593321521343190878978833976168399679190003858575952506435764229330230736229031320658768213201238663313055220151165227418543605691008010375881494284928189979483929355902474727741280821265860344242619494233299370639988989979414748835587154017321537688099564669705936711372122633910184601890753770524045730906902368930888807389529594771247920069893719038370582716599412788377005338624202949264173222866577290348486275823716104159244384892439822743714291160694725083129096366389904583566562688968140819073723788526828596719602250636340732575938594302317023068319876514976935827446321767893341439398568606094498303923116370806471354739393391056039403019339580152508826405861975587863669136432842878246734096028192892626469069865763103779201764079420186996016617644466085840386014523924739438839425244402138545292878104725387718197700636887642624590229986021752715728260289944003299701806537694670193147990706591405071924508580418976399387524021873637255343637462594522439168298296712402801780640259752235987636792443186018457243530062551529394311942734094113622981713445495199985966741409153892743161073626573596207465251718714853856297090627777145864794607927685999256556805650043843478215563270737773004204425878039827797877463408477061157639322777326546870498411979567276009501243196864069628040776143171049902633100075524800946281107570040350538552136462429127360500835446431361108302198691507505121412380922425489363205020740335472449987483310752723571126667859322158899959417692374229190830191289230824609279099789384646067364696081099489180349989475641466588806634194024418195021278562990221099653953278391424770794258780702558395108931042981575842370780550343024265302113395049438345458820188831834199994259538342689904666090852197510477200602281037002623627443459112569732394759477853865154583272888692994329101788873974416124446780739928917397612658087472460931914847777619375061631429490200459277516053047903962176007913776645899498068880222444482370573105690613980593442077358755794505767461749428787544842331956774119916529445596289031153827280750773761503064180717371698717932120092073869014425380769683475887247875392830919946899023125268227028118423433416781149395415651661314389826097631457011532854876867670352556405450936143675615837536438405591171325612248527575226464702537601482676076280253431207355858018814347645195301965513695964853163877753713039738129421359210505587493553596099207119232992437299683274170408046170906182847575049778919491806498114059554777139433711426047344374937538045146814759507147088792812056641790951054850216382231026249057424932616843344481173322300494356334943915147950104997962709439360773351814344060940341853752924265448773294080304171066016634829493694917971282801053676469621182457598290327947334527089686786395444817034163621564994523469385522024744896780227249605426991797760303980801635243668147979955284086517583425075316661534528599534270975760146504693172765244267467803815519523133950261328808490090995275282931433061285626673321921229952047143211381890128660720698826679999337914316856767429754968274008230074594056840242947018106718677226924117937869247415530447397089670265457627894956938158597331097444641018038598268793426196956277471516938407547802295278682093593055954350853463624232757869659270702727771853584253272180218154246899369171716863184256987796002280729371018936928147127950096854733317340668396635112545879556171795713415171829895301454792049516823695681524680293087187051167816223427654069686281187263455465735716398718152951889705530027204321314725953330126708952958150168067655495696462915886251013362982254560241466875513778941045223409261107365818949966092089430581345499407545208882176010997275322126337413557209380204692809200699793241427415878348232884256779725591147644587332000961582224903991075611339216961922592367119535544381700629396486830538695613711723411964069036058943502572016049388977573756771309217148250502712026465558069064065173318566075658800668233788523860868013272072035915392799175003762358018712736295694255220055915289842270488147905558642534012208430768576549119467729170758164760136127415036138781636303104335241234963498296198639271987522279660739479573892573539304041123157503637052502662051159774418994551369480589042172136954412373748257120299980149458623323019101990192714017353395959265922276870810367211612750151278306595697935151058080375600941863823096515951723995006506029364111478054389471768575958482611166176755627064855206138513913396069054166953095981420050613884827678235556665217170212483465079224168297221126089787229724500703863566881786578310526618114458798740270837123660194815565573407492734226642905834138338740109199503570522926119858755010980404634257805177989544002146890577598673935676820388796249572493387365834151150774626687457471377239814749595084742410632322277353517674412229472634085747522245867667343224031613853806396416871595387542866291389272395968142436937571472634291966547436459677750452208691614714559658572740452910506296798736538862051489360904378011834090365990447552871105613563363320551410800897973018107526750516055041819839126220548772251388461445606449038177925970566969071799584519404004140851915730383899872546786657114861970787795902591692361638541177077303553927029336811800917492119696516547450288512591280789720263288483536072229006097224340560838565984218756412254182966823648161996037124452790025884066686031608513895527634297518842637475245758325570463708406790245398620324573845144488312346195075310161468180135944745013641541942257918936836834059681660659775296382196791650168166180961703925341615359227373129513545142014085759433758925568446595613617046948336147852643280140867934186050376881194551992022683628296708429586095204622743135875842337557354094462111834290854745790700867871608690720536562846493591415902764487432982336222988204431076942411503727261114399611198564655167519932108503919543526384115595791336434514691054718840543120481125725854674454120261604608938999853277817417223659109385148731597630193849718342080536916326026262098874662703586654722856800798968342008190951425774888532519410213510204253032543132311800911986707519957031302714345644430222444656434019847722210443839082786479445576412649853229548021302552377109443349858266412157442970462502950940474031231639423905384056254301148749319965589685466380939156796056149012735925300261226194016690838832805063066797539572466858886796911451846417741643837471847348071329830569547952181765248724337086507014984842177655236702706417636364779056966386735317714116702196966636708981282907898286856219725917341525284968751457683850082791046931869129802237776770598168110981561246382261008940606514894085762702699261259033688877608090939819939639692954701734468545528934627055838336027399644965931859072105640940509903087680501278763015444764128956168624334095759922532853867598344889651470758508041822262654032988309839098092368289941471943452615182580595537270179111705073520097379929700285356316022143296575272883065865263202682187045001112154710237978403024982953810795052690912095753099157396627987218513835088813383968655395938882635809968393399928725339046498569524818504851814628258768988941994771503921804616296431814447458594664836398266882110683189317294133877315413512898185396928522673785566346169443407634684526806367845853446729613096364934880468831828698403231327562678949930418714594643400197224298825751386994378830955120313500811213491120224082992949520767143943259105305547256076006798077038821837635904229772268846602221229813239496124322915851529957004111874469503591019899163270595381833947849598034359238524593390816445287534208979046343169418664872967843255964565073214818604860360977370078210546176299372607159792401744888822550212909085893521990374051938147022444961896150486353468124262968160801083402704922947848663022583509502057703140639893550599764661027516806366861114153312470552228778581774720569346506398068911272573134618894729109711140017775650236525977325013234169333664786817056565793974980081853313901750287147328284770010645430874302971782218549587834689485020535688494102106911499298357972334332019849621832899499061984434215619924738570200638631588858861651029689854008124240467807764784035663873416105072672913487357380422167919546499565230294683666502452664619024325129677682194198408058250195975702290606455106803441275806606905479404452980120926826900154598165103751085054519609594549293907310969172570402489360262022847328653581332499411511980681994295680209924845854605191999291030302927441920338772960144174200971282000591410701275970268280332762002570789655476303691806265038980316640551374357105120386677683688636177933735892639930503145043535734385034623671352692700758362469946304432764900484746576639595020383290642595129707329646716347902734216385467197479706341243321955937222069850078691958270875152980652034015010043856713841656542245493791022042891137681852972077234607478347887113594917263459246019578680004058304688459288798135442311693123359596679523674383630918314705999869527128343401800406623234096044851514973394779020602424124828284956782262475509969966401208645108363948534239499810818096292351253886884559395780862950482421778988731975187129006141002268881907268256886015373262284758637648097731720920339093627297731739001483571854518414879809782406075118914842294926424524386977214005504184260792546909518835732837453327138186751985751435132873378815209093349682916784877114050135152200070211653292633472187921874424577610976014595411316836809095722924962560206756034073734584347677197179722251364268920389306332183695935776741179004932705038727462689071131290289113984286861725057832195373050083626433117600692603098745130565337193536237475099725220530389857425285966761110460864713061880448706617492653021066159577508737012387782116827276055194952911519889135531921894163805165541222285734749549381166935113764853901579826054116891679055386097678004014013274906839622571587436440972686244647398630762167535875326073561836402450004762406814817745668660012821745236695148453957908302136737932951774183901064127776349110131495311879907395199474573218367166252295761713470342798061962495733087140592504989297320544539461099252503132860638095030927553162169168638581678047390739593153849851350981238674990014890945385382168150164047844961603046849107784427240534938481277671015426372029385244806349458426195522427842831242588794251602107870929753409646216882869736721672680237252763655767946160113977942065869881797648721122850565659063644506364549107271421381528280173755815441889473434935471337761228103672598547431398506470223214163799901484411970978820006639178186825144674368571832932930827268773321658278800586128293548220330328130343878037560440834001967764083515568436415942796260778913023819646440454001508642694312243442600163452269971832581541394364916715962829194537181767790624824581829575135337518134139127699063005129441355476954866889289887079778028620993692316012846584500086058020852592116664339040691407152366510226095743336937693209542134105306898750819526031817099574795314953061658037863923691290665132064044396812452191589580548529240124442762383861040445982275595837026816568388461068544545825382364184586867898563406988816546604596084208879990831660687151297243046489712945575979062360502317715871680950302544566448579132607026054267315503924755060367784602052811605075619949907527337785894508678485114031639070258351102402627956766113140846530497875676860267690574592810383284057851420742944416730109411958062563690912951417399997529075318592267536966677688550896484893562608751496723053193930685812209933739692928220143597866539781600704934773908372479648816232410057733064153527228392928160316686606952672198909174514935997108539469704771423809621032308891412340215534626969825869547290480047094874677572182122668034416737544745341381246552587798052293824607368368895049090276683004650760700042263679486166779877368100083794128456925495063951860321802415203156504300694064435754097309541088376774511990991434369055733068938004460113188860754444807106734313651562227406117623116237386930685069875161689559823725866527772408460540193812406607368518200363339603087467046702276171134001753929190313646084620315991407024008745058450443022917995656501791065082154549117654567931921436228692201958758380901647756490056211128912920617097371856119586069988560966959561455688088451843844577671795811852339217678771157798057265801715540181110138365163741736719029407493933676624054655598918470276707826799505178990476213654158021756619589641009385566016236107651992003426812516641664392228009046725380768014173947537407886098207268284067853545318075354208912019704726244903632079551706965967256786657403880244668360249404876846495007413751067883728098258356763156921541629509716016502692832236781553072576465948670510097740346814095524723136995644587961138492471086165310796878021281400865507069305723033778999211478648796684990824121876213285588468466496949770484243438788924646676399483111595694427081448035294822556331190662554456883748480253320281315896680195679662948848665704255034370959257423552965032971881856129619037865600301524368685423794220331472428517471249221724703927962085295610702319981512341719028837515653844107592792112354493364718567138121882320045986739892719999259263486075331704604610013484928987770863773272813840149878020261195961208693627394750258486037730663286313332628920818790390200976790221718910238774457371882133590806744658524406634657086613584777652568061323446148159252999590448640202580195801146019345169192986961262669433577677105778290122120378589850855239295123754914040940448035564848084060621810477195006002049565055404771609949397463827992423192609272495441585513729861760007785011210168424662167389602221167017454307477299370111249342603666948451518210301899683846341668413304301479568007188372898244799501416407416807895235929510033158602340927971325213974383546160304724648822530644005677997318075783135362749013976270893325018712962592069722137631133921448578068574572087381343564479704348836061385415802889695421889927035594040442902311321992142359246789386619789861344981974711013566352549269334237037320712649249833121301676861516254300521858787156937098417211274507134656809483051097730006146598826676784009562959685036005663977656424598815588033673178925316856286932241580984641968668108075083454676946843309535128811285899270483958103789522750571907614640922046297199805568328105595589543390292231979990017668969575614788007922775151010916172951662671087914488043245522189202152450694460901842582085746242953323825377797913995490922720418013659752355978556903638302108798582244452678335502367189828537671237416537549977902341699128834983940102420782058521143686712957733940404456116915203597146311602163085734658865094282165015078346679333818984694959272418783823670113537524660919381303545591832160127705563832215217673213394706340308806014826529509890610215102749159063157974189976705267426151620110797198131161002745485934276451261752234894086854185954467724127084901212134394567502563640499222645352024128962730068731436327447067309817028031845309117426776228672535406889111762658245140704435841703728536053284078471004096265497531387500920507101189194430298515588155685142944219553110912240486413213097273948345091921015946038815795451072153656746184431255308794925995669768532723533614581206644768650030756543918588307547286274785294030374355813464960317325242373916684564149175385966083616816176358053974148582376016673130693940827214592443920263580081756401079144415364279631214135916250055030798411977666119386192270399802676921140812458497668309310783932591866852042160678892338568344103070465052557622525352132405567581782096892746360219525602213086110734316372084165906423841612372605158517732514144724828165494599015546365223558784476500813233854173105703146244977324012960036629947387826205008307433992061597332649186081997954878516221034800001555197216154516123502675503572983864928830586612569840024530179479480691256689423931542113437301229744911413236812024298958930805484503095399202861296413429529971972984060077903990118744821286018918910868201875108141667923359205288273794780534402046450031517153169881592650428667885291777946532352156824584739169034381678139864907618698284512716040168757479021615334284264591325428862175021155068035065253520076114067998481497350596770018890484546290557597990536347752033367594101791581252702646120457506756626618458082368034877797457717212907804853361607145106615430259228020465506223489952033009439644736772400744477601754835050608177892018081016644262413999085277750936922844607748465490802375146956818811106419647663975233330825567366039883291341139511368996643884024088056205350667304479292883822363206188879504523769499646065157085527427188018185834422790739178091277597492108307927433437509089206521545588156739632344738000948469431463233218606470688831477564949521269973686112918408395245171992347983146978666462347028359887065196844980459533207491596619031304098388782120799037354548805691746004682061511764436885572705556880200408008387659403255900172188686241684631549035183579371132115850164995255925797037371786811721526653780215115369653933196026383360319095447007622410204714381791118301589447600246667195766743585909213254790577508218246091309426820763321113045424678135540748363441418810364058867945074318756533267240116563732256632614595125651844846323103961496711704378417292852966309078101694879579438086131878636433223965167661328381055343757614868309882256942164735851550389169213930815534366122354533220711829252107053873023809141636457433200542544247565247907164377916284300469947724782373534027912076964193593235448341024793329608391058183086425258043986757772728714612895740128365568980381469463241625936164089822765423537723370764666927000662714101987716997812651920453848736345285883239580856768100125358731469804551228089873022759163899300324455427535026950819470422064860794879438475341645981807938254503576604702503162974061917279556104287703203209417153222246136813688915740991156291158887711072374808307034111465877011846602287920369873104386300147817320273606267181278695284632240291388175770161464154714573267729131314536447945237722102947697095882760658219214276928150262946501529322579458573461399145384336148179975068080360823979873085598990061347578422277345735090705378784638462518469334718380871608225639105402862860775710860698094555351593883655008922791935344595204705766794374539242605803894554235865323123212206009531413961761622472745279795695325627340846688931386237930470235828793753422799842461315196967165614143089948569746512095658351457243058254986995339015308654121960079488672071676352964309264399333703492144290841664335008015031800668208889609789642305908085321207226641055296999494233707149548753750446883229868590449085912260879644361661523720648658757319371929480926005885004223680354412008495416320739076916577528866392463756654532579947234495898265944619108135278000376480654216800335864279068078295603514661961519740378965004012031512495354310941509416555172261520948662422030251860544015301520869641919139770444175634446477234440396745780955833835166221291125583165011322723197067166760722153591396704509780175486203448789981673322106012261642807324459666470388070544032854360090349057974433645130597403509153565121042692303103168378408705561955305915525961845051987290229797294294678325971501998470549381164665899098766094956528347107180323739221047803261619370500246260708931351088419099348587857146206452473538629157149153405170866835361631517446027283223535635888191108132501646731680891389251234479739834274629068894961310410552684819405937817178396713648251734301651568501427322040737822356137148319990821100976954405680202082015260371244764605345028231575308727831069905719447339229278338745532717366915354027397705849659768343564904125306059176601024636205107396367427810885985735669132706864329715814895692945658799196183923028394432846668048664285086562125020512301262541292081076511573439606657624782777351002670907729915616679035900490365210844027983710930372037477103259005247397614031290402329185574627412683287281062973111222880545986177983255324727255739018908728328838956725507581235408705583639791124842821479978586012987359367464056120279450315840067512676298879093944070672582937040693863438303137338489950761316513698831840824289090390876167653856094866900658918691135347006976089015359765426544762590619360263113613262790771143206208514823094548678244615646560948334215323327773740141231740792831644527062195844382427849886998880701825306906747058229219095669314344375104288844373296836546423956560015303111600212593792572539055866365381716073776724119888101108750594329383038759841156710272355300455804358909332477976187690362850618724792505061582272641205614803830088527153062221239544795527212107160934560366990083804141187005254653527024335062039127991424106587165089213090798370834969640177310207950136010004457253159878985243501737541494780607220826436336756825065343339684374488059416362357562168933145789178425096639726775996609316055511029105132723500820708281063606225264005769097827742956638595024945879065529213420286655320887347870654741661442575394686817681330685077324051172350145265980485612500029012821210469367543664123145285393599159577596654243756349261694338421182898725499991494300159942720028723376088826485877815472133027608494238441004154209184265689499043752370739906727652962572591911643515931983946155973006517641055523492455377306526067115713920401700138185006184943113128232334307114314958024943140858352444152680568466858864542400692670629866856271474428394289291995837586692378185165375208003112132005607880295624571013874730871529572214294246113424450486854007255739227183587172655360062631565826590825914448807557139167443284514398918769236005134220511311258847467848453858060494796040929855747299357323946202350589369258719405615463146996812011438846876394278792026632890673192593631831097923125833905404594754858722831485855329168316016691224418055178026483778268040413023359715229560718792833445266419186590906162427079791665508616522849760442676170556026297866296223357410922979474575708809635280105765129569363113010843867365079423640475628633435106806677951460203979247925872662126054198504826694269160733302598082546126983235755706829884536810227548439691727484938057423874796243050343064621588756781310108520034853443444857613892550335284792569517359665692405973567795430380594372791484331099095417535620158722944344969210929934278800914166562149704920838088703778612170151112530276880908826272758027141937523835896391071056651092125775895605212303585816357826415033316859670284067456239707778230560099557845490354058640980221834529368400337007276231319432865822931627044956354806440840838610786026833482832202012451214424510869491815522057871934812907551620070348714218886370459795324519918253426882706620487377684117314556516657265520851228271497720318493837302072106485954541210422306114142591349171272359770092065291991977805245504430122690876953403278602878953594818240051495575729127718986827548593648540607283269013034819847897310582558391541265951812393883913480339401710731183594476363472983404309401270129095111576809752644268141758538346259333269047906990378307921587824351601079024407419259094223772578965119428119454516902732878582192038705671288469597580073537591221257449110751370503243606818363045431840180040709771118012977604433097347793457105878601733324026204572611297009732018361514337516158761569254456246975988243655307671168502066139833717175460147266567438851989163159137763196827601863025161795115123873681563414593016559863493411583602527313827887224235195512059274387905168677330236702741942777011164604960229995151906579490025201278048286997840023913424745236319183605801910066910925019310792699234968214127563066344853709441649638278077107144504572796754893646742730820829534422142882733307841617865636016219675863396520477706780084069970499775017824461825336648459770510789094154920008159625096052308578933109313304868149793882919536065694893946974434143873907750123962392820305472346461667786425162276783712346030640622480971030257866133124557319706754702844525506608648325721665724298142118432583091273646051916828805143291783186703859411059484870103270589041392128643721801646726686160481182050188585903435946612788957188482858755363811760510512701820013288226765625790350070389817606078605263959998195739015107029823996729178738997784925763023117586491280183414335585064697174840376867366831576203398087601722101906897971087443708164967448787795485030557040321790848414009113790156776153072706564286466514585659854893340531690218822425169606115580245196454028849611125391268259317989977168723047820734567920241840027581136979567881403093180178441583071010311305391675180956338860335152910576346678472461289814323766680700666549247848308052833909906848814021859526547761057926178463660961094882520831812131527879342920965100996928938787914433911408126048756104011337321098722882859411318783047305620164788040092966595915568139476094081585625935629264074040823188338193130542228096184760012669705242334328435671453296736580723811900486352465520159764064835242181977786849715670236875435072874174341260410665616443608748629330674564663928810245661608081052334514795886575923749644529900747305924432091970630842063463797824338248293176309516692564543149401594310260507942323552135833139974596214585361415402312576461943853923501569217873178289848026683795293095279557332402788557093158987025360995196354464297455164945083248422197961283718685193417207693983820405642134458085554845250154797192811807777153015868550267752581155003725915293510178272143514703112436162786404190851362754613620489621177002869221591689336235802817700317159408988675512612293919972747874647183993820760125780505892823293364645724009042962914503289156688073658861633760472419048005070218770699008746155561282523133771775823373304352184383781730747868773410910373810795025063808048427892441564482807285922095541174920640930744912926406127040433429516732150466338274681326474647801008754637196969375403407416313732508537945324647349727913053366393181950910891652371877285143326367383300352263160008501530651392563025360233816692615174749044334151299137848274105554218645868595127905833510806149800386025045414798208646975495317880442899319956273584771370618015869810136590906876007229109406373363991142990543978609928950021771987386675138856254620061483554108955049930009294625121760047127675998378264040513074907009620252672304323990278064208457200340440795947245543128821989950171198292386001358872998814368398406884976858503746459070928320272027892395572075856200243704734404672343066036288809867320963472731879754052106355911216184864018653567824742652939236966785380288596710868012542790815660870708143376794663143513664572679825640176095655332299177579092675240273375416805736784318445052329487143777952749223220721712436558920996056740396894664817519524658620159023055858256193975257506306218106183452724887154585580558631862568667024937130239037048512482035749977448934239259167352622558514410472829519759344503897441241684468682830429468494498717868324966667613632883976336109207492457467996956151906108513171572564564563300754901559019215028970594387051340451295603267295107461520184286871651145002857641345385507581864574678386047940737988262900788936061870210348334387614067303195132559004467344206136432042069861694652523025488568553329166590871299907201310487761079617861819904909736800356217626975450792864610951613664277283871435074739160394862182423227582923313484938587754079847770804120947659829131873815695977613473961375130126458459975289557174531491018116010318722779679150046020941452981705661029382952851872851744959808264443525863563485032382782568300494032516934981357284353048976377607482359783750352895849190253290175489555417782409243574745418535427348879585210910450075904961448114959184329720394519417329265287276138035652494513065250894153773991824446369502430183450333387239628647220524592312090103932550007025595177703312191623763504425159082338269651689547279926735761617308159452994895549286707135166527417955184170781360050839499222046597275392876247734878782987955015633269313176681465520922334212741840508481818355492925587807656661475365287035390682095257053354232326171653964148220857734544083167116645327487628015123304284752108380245308013404931497440084472074476688944265062986318177839086181342902124677719618435683066106822261449352062178160186611192036042044856039342198073432437076273288072722244455861783031451088692784756554743427200787552159701505955857100447943954275934957518769140392173851659030779249853067306494803044744019192006323817449412117515957139702060321906139888323965146712675348060165904175321055194199399440562903953955617120952624433187089829233516663357740835040319785776792659945663206964812613254442164358331045226027232596984474328390314580151318422659760219973137917679663920826577471589286470666170383788537438489953048225367271790383034980461604997924080462282446551434038004495044443190399283593238013956783675804612977882500869002110486222811814683234371891585534965210785354566724726096733901856269540839389469230468633057114822770550859333048345763452196292222906133368028206489249190690732946943780774020547602683179461129719160219043547214872386753237554560801694445043432735523345712711179302568935751443222814518009183143837018238333212473416051475981582329751023236915482496645781818666197117365647512288109779624401508969249151072965858385812157721323653513660072025764801411388789646638750791866876721059063051866860941991772387725644026958636895739787888468161683883436814795696500819119262354249127296222521450310968719143148573688673219314185650217927021019696975318092248943448240157722040131718590976123136917962090918710815893222262387991766406491260430596736714235250031842276653235826212442651885042589355122253771876781864161137570954070272306112187182384314944717838163693166444821927309881318509006625460993818656148361328008184149746674077841511105643082913248956423965534763550538080096314295631492321758353814032500294014033855778979386760745760430167114308095782089840371467121521588437187151572092003772042815753731662065923078493359565993765281420586464244469281630795959041182504075066103705638399695582922836127167808508364868127472439075913534671469898282553158043356373510190405415424694103596634192725371200546446584285492808186801529713217073574995687424084524187619717765946241791878505135240249616628781231956138754458745875945345908352055659918309391131910402353427780334263184438224764707540793007233284730532405075616169253408780372907848047279776058600086464181627255819494577038487641522192923219684517707278848057357206200076826427752076208522149277333367113205293952981978277596013817297536608429729778984356073656134206335450189984673809179008252167203393063660862282300036060739662702077371321608477846576672455082052102744913139687266404433297658993168044685086661228958238630565824850646342891994600146625682203478266645444492955984953621151501703571878226924409083574964613288095878738398577819353285260332572688682306930107044854295914429842710552709987141931180150389395488247238193519754221118511499211910338544473295141208187895871510899419599115602719231974704807777300108882055906882908955782445348460009212218103377838994235746292639050515728000748076099107095306075288417854920546671978043792530453998496408115631186684305703486599267076185268813767132679755374524906430405618874341386067963211888680615329555041322245168826991074112067486076527102850797896102335370159157383606932858321758629314853645166756908269690271852900047110499754193876819778382868037604167872558156942817313778978584793683687077495173537193039555978508794204465429788571425355780680496321762688708907695363876618676876190694063673144096483819936013981661802383602069191528139851270133683295062337829305441695680370316463677679372043936515992950620369854351275683272962627814139175422406092961443545828565940432703123309329695670704984838597604580644084199597259351451384413230048327638856125818602316825975854900200241749967240110936042358593418235027037631471861623228048830673209174331510763995675979358065208349801792762311014196398696243229838668261295991252173265039285464286668810238719508173712929065565926457505855231432872047885173070145899637968098572691830689033398745570484556351727424832993713745128677403543593145843246341358270349475222871484690604953893050426633001002588690434180733119323545244936294293805036389699123227226700092402351407939965539248281255849797060751277914220198524840956017154902750592912224043723114087303868493699812608055562076457578844227030694976319207270134001468681757787000110502237394666477860724557024371101931772579475455590653693687542791061710512241063589180214366597627004778251565429638346923932786404635741114400615431865466976745862383528814612069506182794511129014688719954751559378067840137457850997429809569748392113342763314751808179999541189419049915651394264339763305985715934802405016905139662938599820316124518624788093695230113706829555474200303778140854998693481815262744292157356237022436468703362388315762425709882226893970536009133856026926098016740620879697953833036397579913242442004111553815004919905367661467621241373474874606061130620797433064101574158238715709498520690594538085036745111164477188763187860511377043035800173067703276358493188544220719299356613221920984137238635340457273780763249757637811024327929399719489300630425901124933443769657973810435230504834189832896649186927608006962031323620259059132477517134397874242980888321908219855144710754945560120169759517317960848493205092958299058582839386927463419974439026291586105346557444645162111690357382104708589459694842620498558284081705116041509403203943435860436979671886818108374105673335018314948607614083277017125846290528180110295085189863320209242984483347127903079838598049305085887255881848151514685674525359805532192259653205827212623414708300595469274010137234281191227544086699772727587725369554998184120643335863542472466498456030049364394641484545396794882991054067774049573873301864481171931159460615618975361163998536731347833484465130672315783941509607685418641684202630768310538566229264962275360700911575312640166499825491988100218655565552896086450593749554728839479578569681855451499973083529467502221746252270510581618556524711836915615246807024508544228333352256436946373283052378980594313549568801595649095426502627766069585842141582980352692590189432454141398838798049605088501866016460400747043798323484799766195398890032621949892544456525497881701095228369081623349577191055960611195587778713402531135172576063178804979502642540948919945088020652804871987584598120993391651164937643332137893465700076928901690550860745980348043128445051701663282216742822285680691759688517601067449788118567594423424167226035633405255059526197400223470908766329305855450461316521702655806045731030783504130654074930938533601495619439559363382543502818875123322057537088315197252553223272806913796123840134067445305516250889231838567863415313192224904795322748880368801647026828128405398851150939603129322543170270762931499129230304806357916022980997016634667445632499949193743486032785198408325275559739122223938811124790812615389189743613642811732154238927337525928495037508468696077516228030803789136290604152677564192749498828792615792511387883731571780374308501745039337087722869072131581946015807605824490810869687078294280607396266700567290409529170687574761338448425206977668324054001177145836923034041678337746889021310154257811689452656913074986910612374394540935457036959657778922231120523757117868432683489172159281969893102021062267358029692714533824786748483976821316035234162515248845999344213637434771502462718532977649815765569310545739881332544129203800045475997234710220405841829013288525007617662171184045627432214543297127173912069144990639698079860501763053949203382967126825632506213381820150609119862539406243442931708714802242010546238120564265432338012681229232746153765685435768766262809747277342259906186834079812721579798315521557488608205369611071823946781003112315886684009380484172832830487100320932046838882881773008293172600944489912446765646606599788881302217076562524951282284214186900054613902780586369499427785814028392485790567110510603271680454390228896391420557106112122359485197080504230771158378086333261915684506587284567697628077111394665492993579828073558749591424465193001594947660534136228108731638641054692846531039757981976955750983801027264277356987088306826064536510368733474911232786875451862415580568754628133525441463520322442408800156913417079418139224004839443559474627833651401930457056279567617971935516411332539882006091013859187546815024579972779377135273009305236690314369569716655712809288744658489675954383485843200126607877200127065649885017574069657890947202824088909483079442210316150272292977189690150093463767833581540034170744268774732126363089071003316769478982383873470643052189959200599937944069752868877643547734459586166671340243793994731445099732582678443589476107056530133374957218474676692502635937147541505844209820277394330341650576775579609322505206790548914388365516570752041057677684361907862007716011411844467696112447096937877252067771496717885967439878217262450651790527489799264609072857987969288539004024848803648540604594572519212972484937387146198110427309725011285285367615533171350756029871219300054039005365041317143403274074718716484254717795810279924942801299451307591302368361385790778802607888936051754439590172907297974329237751503561360103081476689548102565266335665371507283452727064101292956761355956001852003487921746834769841597024089632408865857427433840639202284022647952652332594108418969345155466150221243387528821063331861413646302146426799758374430024219667042096448709154707790864149487583439552345870911279854416087040620177782806125141947588343694747506480748353009903003355093722858905834596708827592877414741060477169953301496882599556057588873144418922365346863584105314158986500239994914652607343196403810497734455513990207173716246090658800807648014587446847213091141274630397691051537847572197387389092320975245913484454077564543309153092278086716057533167887045955954300701793700124197046725928554905031602037312809398165873154964801945016440549100256689572859376650605846095271533548465802304124251245379500672974174767279413556974881637795139774707932963417255211855732752611994424140170429729989195187247489272597804895683055857811684948981975379888005237774929133222339986231707202666177630259929872694064125381193049358410361194734532861890648804054437386362994289296791056401754472752204965833033534002333944230988105328893189591632209866356490559878217115458716428582360919449805459198024326879149702644633026036739407563135763997943839763047207888544324217210792991608452411925187925113122542797190071624568736732457027540345706821035366363258494234486583028251127894323538276230273257027589425558856448996324009840858224138978161806711158967274639099042307094303541999187847502981645086203682398724636468702645261533676741538137107069954085379512577478770276347630011641520086784770468445760551752648812001016385410426442757205782220715215083170654252734280927930064882681362369976433687836734354814684846768464759884274196932299368500004905082555377562513585107917819846663750816972693626059826672717673644799650401325127981953449657453933368581833115156209287040481627180103243026140135228634052992961295870757577226802307421991348952619541865222811545774490797226033076744923745384564080950463581022024560348114081344003932680370444198639765315218187542567551622416589137725776620886574454912812354003818263668403923891840988155724906963676782681369115463987690381630220128048139785778976994097409113623501250187246334520122699619985236318638370161675264191048538689268798173036947636961272451227629047282550073584074138130253133094753638752335442139606235603036843790528632840507945297439821628728571629226674184031455653890196661847016630894667900847482885282944342115709716641949694715027563524213246167919626029121870300552414287234120894649346244060480576536668785539817341759851782424629101958094959590538243431230697267668116137115131956387219021687595692718760229245078017499121696791196352851520541841589454441335008079837462982081873046127701325795544631295070634006188896569912179173307745183773450733051278936574547948093802485097263267871389898304620351380796446109717107998791494698786528623733712902883996246889825197909778442350190382492443110373045012330731167087340876062635848083182278305968817489251798806727832005491516761195286485190939068957863469206286837679456599000650398356825111980709119213213315650654399231252992278371401461322878042272703731665161472778408589572175007895405852113027069407499633118156894543389367737628954095564569431586667718056882908136949021876837473928546138312043579625770901476390870161093646860863820820031712328358365315719189170301374884270061222983305266088831631813631519670494897545475971186637091807721940800565592173841467081920488042939250949024584524146622902388896883413780206597199282402175327273556571726161568697128637869484707099545696291993036653072613218900993133257796762190173984218889742100732337260120739665771269650006898965433977409996004244086535122722589643756589150164491416743564931354008512701937840260581947343429643118623094689250104986041669694807723439764021520020744743835483811928820309329113824846735589809684853181931703228391549995880687076279965539607613598285501175076540722761767932612106978089298115422195002719281053309986168357554738518906962631982649779165037810424699843593447904774255424211870009372243446140766821163628443719869570856437102682923164265138693784438076709127592687995361041246197818376422770646242895614612775153755944296476348063237904103291796491797822171226031409081004884234958400446671304050823886952635870344083930068985007486837062098616092958893920134601120023133435408428239915032726831452823744557899630878746964971149924902386465806721313538247843983872213258439199653402678909306987952177331168685687909986287135814948123264170769847901107135050193548562574122593245857998728332688835674658098275428410290122011401255537543506900295823195967760558079444336715680582853090038377182388837592083727240349813801023787401525105074519353477681406735900205051937205428126267885844691752523640516915541766050778301198029291449932778769405127374501904278929183402542284665346403764210683886478367702029726736822329348938379404905638838841546026324413451730739709162106398294284152477430034762755776642246555633527981350445282198944411504212988606774062438616576582404190848559508937661071336841722210300170846012477289285130849792791716204520648091678428753491935254720860379876383409045356339615639936610954558707853299978534433552094108663516472973833892580349623447773330569924119868844754862618432372382336890444208126660877626776160418016366465706250978033507691225843500728878771964837346308630860041932027715419089464426743131721346889463836204526730251462986445932604183497311890734457548637049381096323776499819562166491307137556695394384008612984363229697847460306671960183998531823193147624771260082228924202424763253260554735186141454419271446903442033482806626593561370979542332549287437358724299352525361778390693135959430829364283658594638973916180468699905922041048591752118525302803778255123117512378234885487428499157724898569877194654019975747156678969291699170504209491669295437553450289940746420024115340812737697911853764201869305163236374312224542396728633378211120149096300634130595770791827487949805801283137031127441183830398466159586649885617496244767038786178233969227832656208960462371054387232535968937053724711991923818058213074004190985821358981500946012170776933085356497719075177195247343324002432937585355214379557573478968535242810434984171325311166726362652234581705461388546423809396705672313224657146990518314830090477357266888470259288639172232172502042201000363185229474704433086612900717238111410367280820299502573341776668652497983517701722116152331622973972612720438596303760907377095180614865232141420733287477062341699462280424118620829024067735485321270657696671246997023200114332714378451196491294441364033621737013974900409932844173427154306581556794349632454064673560466591713650897353189682475592235128389087710199613390222125778186413818538693743121335985677123828264634478868156370657942352013061125617920039097647281396368976283001562061543509321908675045221359618119750013809701646843844549897703132408727022380561256966827675222156403272299977520585366592125003875202886542965832994507221044007946341621847305746847193940600247066730673062218192330577300139485727647658223733299389023336007852078526433037460641392919370375261467748502056273185879892908042338509642054561255143513295215122684892459273971895277159604769807312446527801473034956586066988122417142088982670099512317275663911373449491414586348381830686723637145047105865848848766064120864594507105847358787751058624243446568369441005194410207624058441196278085254001923139750041306115586527027551096839300263823132464627121471673279533206325928533832822475598522087372178357143389142968574772346115239026155032179090685489786894401354073629929562301009211663429829179513006289652037066109810365387718058881816630948321050633449197177324542179101505578860701330266328392519135210947390720247200048289521930114600659878646703434163686904843028084765531534595470598699099551101459182395530300319103444094117182138706969953045922109023081093302771480062922037092323820579406429471570229858439102009997878698490463492219539166944890409587900704887495524457147882075406351630027521059349753667941180786057123844336855497664050900384017539780845043590286101827450649710722039277986718772699661361989355407316521936841276862955890921476419331166747229238524805399379271550545279841892019711770880396004505633412802794109603368512180460923226459459203827219595510595432097570771794363958672314596795300583095034544186959362341796657396685701518867700676727871056879570792428374554549681527735893637132427703025120952833092780212023233165339947628629937614161566451821631160839966160812047588424199259995952509577833791079593722226900665405997006206969361586523507161976254955374104840889493037484828386515392661072297230724388436620515842449201136586385594538892549337494738192405768961134513180319449031402036622936341858526935796814121437030403255509830327885095938650473401043276134327186642478744257568062048644853255127431278780230553613436266670803267547060369062583221135561886562204562663274672099206017285114374343631575832807484362316622694159423859147641360254110486261925985758797627775806161009699058242148121383106496312348285778306664437580732734503819372319773846432609097548618698003139216049374591647542336597427488275179437177471835377672052696858246107069896079501580149511861444568522034807694241873308906553350889165057828103006973166735305518325506867417463247676371175781309566287909247603936792098360392846138998453426573217452347608658000265371734653534384136342004659296383338108751711069243630492976311655938211283407659371738992002913020175989125522984577172479833907169451936458907414749350073057471499927245161083155343253308803780212991736195001515928366516820364210746242130334729567918374554460165395966177399214325036162029882046341401180914383188704955350580887421360344130948334944476050866745579845530456267077344634239278346049240977469427313298251251441823879102061338291727935420675286061709946079196011245928352932338455122916763490991846962493890648860460437759756714148504706809299809937807703603847267031788226292940993056022131172778936731241306286078102899456770339107903909368198329408694883186819755143338523294700919198166926960737793736434555607268715369877621228511941024805097733686494134995155509257904557544987258815187145393757716220978813484922068792747774351145084241850661149397314471482682793708489488395586015616673614953889609352967962163527431752063366190507998147320432698914935448382665778135022343179625133479903992201449509094807796059654689555311181067330626785481605365041250877602011762753420393195155658016863857715039960060185103451867323454090972193877413364603813500898381488875751081095776942035607409458099196930784978485083065741245328950121200216484191430057120484736215853797841299428155567408792370927830997081207586480912401743222118345620396173292449123954474269441668935699943519884855567253018474468127327336980577107443222892556863155380692593729564986162573019304489400306043346270328852274087248936129727020747664995479090703850935672263180892091893610112046509936933985786995659248732029569585102228321162613284137850842564882709451444814501579354581738339009513960089274480812132608181708352119845803780613524713155689419936717242356556720941847643118277437183414665226725131911300119665826238659576767866376826131687514354712042902111286102329680463557903551441587364703073987192937321800160775429753267945834697060131586099600878342001704765119029268723368397544080242282600958678805848362448239706341828171581553596925306929028750694413090501162280119769174452537121715513702265189891035518643877072998579891196729334057510828137244633025797624349604400734244911317700993014639855019939841066256406734210973672286999428084185097038979598159017327863056227042270882466233910947517844640494212701992583828214564456748547745811803892444510628134499656443742139728086191642672230786803398137029810278997280876580944771079418800251020330683240358636816964919618138805903508924632933959251186683853502485834975795046565223272626263348629708007347261062590246067813446146967262658186501455365032457143673989266627325584120266598820044154889385259424316347648216522721181765071059101359946086466524885659750780783764477721025087647373168771981134955109595443758217242358606549817807195109400690751864249120747931501831233552299924895478590719291784843112537864046967822647734968587936221957754348112792164769331507279687032168150395887769561606232139891557231460979198792936570384682941755562675614191591728387218899079679260064589987346396187570747685901432857917363786836894724935663460485837987217673943071600541182476170704033853364525266553264853229738868312547642805241591138439032667320125249949498783426013970102131002918328878995129165399001855104177239970815349613668379005332381301875946219883218539145414054429228847700549712819648981726678257642644701393745326272930466860271032977290498741682825263407008658277599532503418067443416522195568588675162685837008236389897189158245071053231251500504369333521261019690838970562631107805958108879443886323947202184142792902042274897703327306460812024552115070445403926233480794499832257752436176855838592768802827846358019080790010958938675972041557209027566000927614211876103334500203184926051670043807600706318014426730515133661031680411967994961958755917417008925744521135266115997841316923312446100645887487250061777419613464802080035830457631728165985790616317116727907671302257313788245160071862075769242847197946955737144483474307521857719382390561902147200617625275727638751645880983356921871856227512429774472493456133544741629095594269054947232483260443769847004088769069195647894429893447472847166622395026035591456733841229781455217863195461986597177252524929634776445252474709321091110067650626625051855134552602355026915796916183293007230440227561184462990986455567971508853006836274996242244429461414996341591471392794243293930976351086742030871869422960877914782035774301806349759734785573995725652748768185698171721332067407520867742571903809489858804700617892879698432489271658003059455048147476787925119296584678309956026598252782763387103011291998130007151258576425239730364900627658295435095900494971825739879852180867759910163085204397905274794028655111521544666786057638296236902435473225752505270834137341335343379023743425322620651013771278163367741650813747612514269567032407233929843590575182599490630482723053551962063611738328074484793242790447249107714059807903178358637644730763805495013050920951354219650965657828059558688920093784272194177845894060862501977378236590612540615821985116843872649864547752545810180294360322132518130841933858382551408547294649549525867727561982754939526246208284190412484367820126565015830031822370029710285045446589114230332888096021650185524731568753442871541865096555973379611909931275347969986922591503562812371079040778948602001799745297353305767950439194011762328904058225986953823798639022515737179967578869615686477456824078541581798163822122410139521085456768250389749079628332579269273924235224784289764008960664745714278037700516325427663491670909318072504795752759634873431329331780363536000222379047457238492357454614092652606148820472757178257460967654665989075499172604550934175302661927613199870330450605508352047720714344625573029883635617058030553463905613106261399961239292144020137587526792522018667915914878263999611149578164737469998663898379175057561593035405571704486447207876001040659272023703861662287303280380340269694497514583273076771814721690076604719131908047673663197307651175857966429190973748607152802090981868240024378216127681177546488220336245634138952295607893349789031567785006050310833216485759315789685559463398876742230735275977657104581786835295758803783839605869718786579134081932430542472761575934008991845256105368527918644325627759835068155325598197330849073454969074568222862774257400123340227269032443830380263464540227142841598769706494712625464401505024417989643335506275050470828513850680290379247550747365173868132979682271972823741416354417517842489365731523714339665090674624457798444313540083872231462578893433422008149157112022927414891844599069455334466478503378475547226639109167113910574556461908443574827535827156375973351425917659186897937680097113072219450085662855610296949905403985257171198926213047101836079756889060729207311539372478392765875925153886628188906254435362020221297948964017393567249669630509178537605864129668824183445317232947888479166363950703962604039305406682489451085712398272598856684676469479480468299757821840297699320535596739186935977828489083028610370644420183776511986721220035563899456175385040229775993223482038472231232320456102015916184970194522783766839830146359500582534178728438793576103774331227586915066543814518064167243249193111261922420343087214241568282548742000999399665575591722259553109790798442573584535617965216182599079236796796646906710014749083027373723705313072887186505090386461359326206910306628253201354541803130682600636493664475804086839075064470059985561059198603717828553633432884881172146287487515959086733637638521840827635102375068019210271181624587186773394266088608764840541870221725174157719812804800460269764441104439426618036389722009363949196790826447455403994002059624864964195292164608487304562160965588665112248754172206799067089052432408253623630953267018930341925154765552248899932284297007285654451363646433206348804727213639649417801429288948062774064353918819927412251659380700525276108161954860718155766322963546452510039376901708921732501777100343459667843337677941396446939172821540590617269743163940002232458336821463780444014524262380834573756356552228346954756452537953998586295258703574467581359632347114620465164824884938504156348506603447144401985271722884989056287807707655835034574971362086027187367006348828119143466042652452936955007568539147100006101802503753878119721729415861571721517694167230086182518879008429309239672112382343433325449433181304919455009243685411187373446988588813831280215865668327367101133990952167273221683403906354513921115604978410098569951129417482651829363640679293407819576267525311338619666452385026279834445710787759438417850154173018512946886874397006160653593908975854218156900014845407674833635805838086828311236205489597052335950747980961704498901479815985734548039189292774113141506658126785158423394593221540317670134411110257561539982759560759804980557375867865300045051151254056758959446305328264910149738850356975441613285452415138214725465524904957643204602321457673172441843720495012561745084881754730460429132833873732957291895670753149570761314642693703138139500582626432848810495453029252641482767911612800162282961170598293459211233056767801996166093181300853587299205025395921231599809939218755596045404455761697965498831747747861348792767089827927875518872074284623171054895272514685479982885940695249669977317391884683290514139240988370346983707800470432233709368829203251682096721979009336786837662605358689422230240424299287568147801792792446638344955585745987786670963159060155734021621029632960513128231876105662541015955141645727751329519660910924683261536841846238244417327164571994776259193991848448374181219517764979951840898852701753246760942472027033824800385373909124849765701091158605823720943169566672627729027469193505373309421445609766261941245713315819347254001590726165274468707826510150262828779477959047640878321097836664549129332408949344614438196285177400069266525536114493156337249679648518970993367156235293710844214183765732272032082172291501363225219645336453769385341144540340069746836718372040439758497455770562755666176721520531288424183523194157007294661053379100490154013025383749371047847346871510407328109710468054186685895714994292070581536145911358320393445603044176030987277186632118289384750867918160731805809169583215270054248383646203595864747999610203786420254781430796912511703869487625752512731658205434849302115669561145766637121658143355018587554438704661255071098581845888656141926706869539584714693044525553850587430371018086016640376757373796718078613725549964864915094320357017807048913919581936858971422825617386909171203452873196677471244740196330615076728867093486312882272495032454780961968755425170350660544237602263692959353708526711052292911056515878843127160841414044444437713622090447768486380247867025673599570620173723136655024444258885800722786121545331201704260295917576678978741503446109788470864474381515285593955818572454940302707185314345891640990232763016415639139126635188238844350740147059300533873257190178844421685981472673825592811012648707109719820958827489955917068526445176278155131910890231049798046903785029607247212901721116757950369039970990769897317766572826948999504869024052350772023131878321767410626284847448427041559183943010049746478081783541845445469965971430277346229036291604957600700296025865524764163740751356450693856417034986151170717917806811279460484089636513428018530953960931910435145002240247809091525333789750631631757306110728999990876316312057797407040238291131549908769180460714844568317454022567205981577453538067215389836941008858349963552933087311094571581975052668145973786283079680166814949333319010252641735042556846151169520706397994340994183661148469533078614639786339961780130846176464897964553722359664755638288976096782184801946559338473127552325660893919374961010612157424636280808999750903578673143409470449300064835404296731255506056498029516689053582372340179579297079023302437185892059261084047128054037261622325335766431925101427886317686408265389878921195667415718351310775300594151180782597095989623548812514567852540524132236103226818122324896541758465280215783697880842414535804899814686638427112259543073191463241298245095781699221752655855725397220876348514639305089932634129226357950074528418407213273799932491672098684995980135289965416906409085316420904941759127666473416312679335198218059630407968973282129000285103787773209723589484492058248699069914792482251075266951195465806163894512299509902739241176022151158668604166536658051325912261519354445857666054909533655913248286192455469797322668553850638972350076694575823974768665788766744194199733716961220222216668803186751587671741650291727561995568708425343193724295097389039741553171258090040326812434129243391177852320176655952982051683783281834875377638504008300542218993950097583892809688815161992710632835258721361600347424255349945566709521989544332240221941752650113776967740023687709368507458041250664144927055785000651166732756055822369149939852428580649971563556362504080209922924727282206593130938025554575867783968299678862434782484130168941849198100896091137501741649987651254125373214221561243754331581595405796349153836405233595905019251633993751182262256952913052516915998547193311637869280067564199520967015661373653765196447040468826042958842878348305015591259405035791458393908490480096283229466065006246643703247879544680973491499220018002548648339271524694340639511896649575692388425741752449333087194110593739242491672992869568677479312264363240471751696721984539756289238807459825603331583879352303576802259495415929883221463184068337148584413542389366949810768616849611235549565617591537066597712309602875031414988301035285283732144774696313131295375463105292338864794037534955382273569762042593099219062472266657809727194862382349897550838055485671582481679234272017374618604879031124337329893859833747315204636228817890971605724549210840937224501365214592326411647022197892122389454501034392182666430898230296290789342584186740181192045183502094854580444244633654086846255251893301460759328498959423813575892520939785111264568444275945896540214064608371024836954498099202575147105463786623863416439029548681594505227223383289096697877750493797005976586458829335098971740346927169591744378050887730196010357633253121380454792501446266438385917881135040677952309258537691882513612418529502023790840127646051748364681941318056820180336423381557426099239667407016512057249663640866993019890004986108156624624705145346783365067836284903259955591538651301679912628129260749642588057923833578498604740803696985550834109728982260108324836575698680780473805821256384721100769709269537760859612322763771354876568886653731765652039094018438253899584887453862387519478711424468102226494142528211941964186057003148441420572498071284563315757515070630257716999223727191548942897741902579700900847149989777938935074252533550279731843236983658846389340111407939549521084456253367646023461786287877167365931028770188153294756921131535333556546871371146279738386878741806269116084785356616624645213650369717090812076062129792652901013349673647020575966065647141511456480147834694445779062329635673455252496515379249059669873765601077271107508335546423916667369268422952181937608472755101205751160812011522199215623702044957903637767455782094384993259747656588273388935134565005607445158486228821524209098931961472988457238782538609943990897932429448187055261304718881755414894616371044777774551121673654598516049102426686393472850065361329662894828901703481397486589593917099532664955203968546547548137268941678188894600881632933749299343695044332899932795355306012103527311625140721290213715055432442677608083300130813850430617443498509182576737116430697068634978007802009804806412273593580405834668033260130394623009217206707214124208836148237183511010027371086191481975358041571957575782230517603036256367970208350599605802725435782904884376563964067563000863208598449530491823712825868620354136515835352586146065350018519643246954947967886361252903069555088357477792950954403448786460680588178915176088918520108879340128958476654865530844054176122950202290319422218250841766042637193075915585022449956827975041364099797223181056720432251469143998022476157439410222044002013670358356264357416909893077849283722477520378966519724064425868592137628430001997428144384133018500845480269440768012216349159417773166814186859158296813878466331582095391794252449077978437906311890570246291711240073440944353124508809795575835283833755005681967268891876439378400469028662245727002283220527053764565527553587814541266097590069306600775916062546653450056221511758813035922745453189384263784711907814786225557192023127370304588879198332706545230788452944509378335930757854989157257546719230001207204758508434548251224417262115243292779101496413674111367435938344097720489715541101205437361068489509149922949099102322219601894049624741057540083958666871510826120092518499837690816606780149251621951753859629043930636320279895480654068640100005846607558392585990190329443809721909719460382296605327225910776982101845181029393881910411532689606846545907325105622322912847040370473442606826630783074780441054216674727479941769950288394254302859074709878301682273316826216585689911358066370575762204021272168384562450144653104587606709066923536129264355080970427346125282117654508890014617378704982567073917497389575076672586641529990858468049099151395158252993475597683780693751714517601254514002743410689837488262379985859264269219359155228472777706722499212266278049441330915501728554584685762999409575582801469031445391194617865922774207882745792273601840816391608298718740116368401663932306275902856762620068735014549565774650386054781084410524410268778012291094439054558809252484058738130453035930285028439387937310948930724413319764336428081943796054429903962781503548646909750146252678837410590759036215522476743454085848537518432395980055059263653176228894339838525121678044031585315542814660950065001540000891349035701540542918122284472393104535652192968253817765337385365429231368000526769255755819000268846019994352407802338950520510863539928282094179084324427231070314686433341234856770200679582203114067737353894779872966671846570812977979410390882108745071601124374771287482545380305281308844439532239250697618137935739867933527053029156045871393032464590171948622821768465300756675082993211108813882531257319576292704556438744097225399929359671830641616601079203672249041294305683131001606395400614550787759591297727373391374373004800027968824200209046627867230311512483482490461687077739451619088338435669113280240312172929155982321148779692066707865323886619310548184790056358889630650096139396340573484246176412851394025664559752303651472293690595349014640825369758382927092149071011720291112433881994887850679186895755340912937144865507042066536770877793640002919495603285794364799923218013904162769967066157730611376448170520912245297836730547578825723990626125681553545640198550292008225338128202351989987229681755101760956767004830064648416538785232530283360167521768696775498067027757719855618729310380939229004920457146450859940777565252160743325559183164575615602343835415388531168178547548540091466298225420047246984401609203287536054683171782789553760065001968164538887499572609424052666649727416595360605844875529591398443769546351932912725484037769198743884661220637721295953277224610033436038525453078807630077538519763750440603849812505872255037170741012053403432190228946818715683835343923290589012232132439456611822080434511421221080025753109732825069763971849213623097009223065121717439845916024273887387456045295182909526968270310800598831111490212848974061661992162495694137622049863378370811128347449149886496376142581222171302450966157517643358115238291527813673856440145672792473248452842240932214155477701617341830448214669888287974680422884875458711707637550552912709595637247507112209736246995464102719980710906658948856917562140898956608716621650354349628194498455451822372770528619432147766697150882396178867328418493714775804360145132281582008770902280212451021478199668052931028357511034727946638355074069149729841018105398401249607861794138048650468028963296709481986430758999742330327623613574090196636244519403370374180408542537720918009235708285138089256517597363834422461333376339367458278443753270893132230100352375985168376081593570788105688825753300629497082353388293338898426773502704049889618625390806924887962487936856479795305516211596599072577635214961628989431986357871910307073110918186440950405596927694626262005438726340389347642657045831732679311600787414430070412064179114641663882543413296220612132870566959006355104960826084367605701024330953864282024642400722699185770535772878555548800120149198000278037680042983896510328887550440453862672366265439424363063393555133798627549028741669389031806982080789519785574429456103721669304232595574317249627198759065843181598085431702118122396785100852841834578726923110792568646919083784866675286741153187090340588645829822317560399845501870117279620988318608371958983762582320870562539061660519647830912619687809294867996631412906534537306449710244712439337473161581415231924328974012175035279144095267433294155863290493809677453031562827721367124820736249830570690194284065432989761844863036978638249759718952631978033112665918320369156198561838811998991144291922111425196971118269428040681986356028183073134574656917615183088051668646219779077986898864370104172206682358137831548748634166870546018318593736486461927596194458118047213850630157647437868613382884175033703358746612488467424598921115384993647719573355352661027919089213667115071191361095041185500229056903449897725425023402487155664645590265031736778047417801348216590304546251141923322997630830705558948325056895975398253052458416618810620908011298879846394442271130833386416440692325063823825200138797024530740525000745118728704196111988946830800799577763627444281493702566768758297446214530507837798200145832568569718983660903926287350020023654044050557911914635358314818615729937765846309205092833393270367181041618797874333459224806008299378276529449502653559795680343801456342574128364973339724422852514388615465711970712264997514317995007990256817699697696631191089652500395419817471877599050568464443629062954656151545754491773588162266925577334260055051215468297385631971200989860293346381515175961679325628410847425338085431656431368668661621730135087392893012535686500466541166899454226198903854281429410906485218556095965874405185976896972737045994684000161195452632942308125678537401460506118507258282251542914650787768663850659384364228948655860976200464269679995220168509708437234114577570161734799916033356984060389419904818688354729259836780271780897121195511012415583244854769664186725115152919078135782063410402144091446481185250226720613646356042896574459794063436762532136786812159008355471217454539291427743775555461093041865552213646457378391624987104557227763590550154849585712935381822903276493835555867417243241218081275742277014811384677676259947149207813368359018353494356626350939803417661909569526179679104269381737520364017111548561130742261486788371862838869064430758808207135575982912632283461582712371464101787324673044673617930565027135414646041418838119795465710607963500533531036232547032747982202213960758582079096004798675234897647971577728868028281624066909938810616786490025424459268876875791808621109932403398201075139385004975591697639289204006080768644049411496776032573139188084001934610769954483784892549343055256329879388936083413092003722526187245523744579464378040750814244277244508415416619654287664718442873267384055180999946328502133617133093502378873615361014901643373782249138848348026553108037784714649003510476301693586138665365449275791037523572041607144308693785109453208670407438065421843547335153878281646134475747913434779563073534288386432915915810958662143294227027705754093143338293967497560235463688248113048964923092670620797048354843153991423814427349070179061350493278936759358642463256347389696516056661149988645375965504643782310868507465939110699972037199399473431371080320984893907309415782819773601662480806457081948103070518743762269372160408349137037448440954698082368323917171937554860069207968701767082911514854332548690459677025490311812293979548667406084875822685513823420078263861648096221438723506080188284491256282208487037425362405922233894658519057109547326148518626095236995902715775348843344130078091878035562925387897295823183957642728586182610506196990327022132048548510363011552625385127643831562700431899171529593885939123372913903732773697935686328235339486682781141682229514691735825329887636089881739560436963473874882256133018226009609349383584492864986712595002697527435953970146780551424094871247729320693271144076542648249056469791743188663471198802796992405257880808042671350990484022646545015364472863160304772382976988920530121457762411422005931076688930637688728638636246923747699583897479957323554683540504755956351605809917199707805037616570582893378986102767184602650837130455534989041754917018493713966575142478839325114344482573019509088400930013741404799241402080154989967125774140575909612150111163052573930859877259293906212883583403096533787744644227065721640496940514703003819113585124381954328236524519753781021616411055543627249601112918163993823518619951332979328622180608856107806348199847933535606719079442958770155887642401487007298443009286598709845655744795848918711577425487316461230827767525599502582110162447085806732616897839098357433350341363123611400748220333367990542068529224351282616306550941936209014914125661047521312756323681441177435063869532236710429488399777447138085643821985383222549406843185781076830078226997344929534752734655071519716182491348369513811231490229263186563725826222797547752254035185491236724836175705376209929657348738521108880367720101077806771425412589765601514725243005326707172765123044282159806674769492492682708028525397589538573296741882095038369358034910799944195177385845929347197571197557452109964949510604956254597571745050145057953036882885730105583893706285855758249832184168161311939560576418533255947721117933121677926913050788122775326174672199969727428582809325530816704386129433910179909820433036934726146883681809078452879864663839981035668138708153152692155731222034624289166666852675204642108387459741022565846747549451170680082179725260931402811659938480108990795712685412388301955547316794696408687630337411541324652169144354259959897559468020914679368711875474075510311773332997704903169861699288217189637387965312025015536751798649527639033916825123586098958819508347613287316377959340495820887762924059082086411988429506588002356771971021983204613586943702635849823306583429821168192834631457465123403355947947579742901131198574080878974190262120340498251590878840176559369560772257168329284739801784023426439229296867944299495408294983696924847115031516185488877228151494428206176471888606298732306781307144393552634487261178879387196961623699202583372759328336187627242349046141261309412513128884500643870583057298716906484464142752726193436395931857708210072168219666352093661298469110917464092293943561945970288662228898599148553991346088202827137178924764322373574680765590188186311406523706592415542359655216910279658223332853653730674589094054872143387157894305181831283677980471335147680994876343594655384095186299866696496112453536908415127674594512282770601359169249957266556265220355044974978811525595732504871252587415929137379379424223646886406549654523180682684191026462981414665444871393182198735748960620483990203262962515662877934363263007109864540119610010175940809765079665832279929320211486041353932479038931369737837979461875626701143942707214745900690154837437362998840216948713300358972261182494657420120335790722272735342055061018165502335666296429571749390297564952204742419892291064756714173356954986162641811218399224660875907469959203578762110101251857330217620261472165338552292500746167892549963518208057319124047757530899247674958689938485267294662541737516439460310153231499388895758327994621275506287267161799283260662787113351109292338982035849003800440300280829320558695743358165060562295026332517302112575962521937514608355783348849468097477600828614620428112705188808700208022140562176328140996024682523241932519241535165969840411625035347459166454597212367161667197629333963414167997306177494691635708400808224390501825475159683178233551223799730228323957678270173468451094003779568189228399607020298995041632567241506438109489139301071970565395484412630224183182911276763196826068120707234097211651847310235772986475857768128211851082999239826658089820915633743389234646992809151969802823450567942920263379632611128702622923025301138789988365568937395218677581970135942026438879353533932657550289269480313948583955779001380285494645894292833056658498762038317385659873703222128940339232174134782369612642857824087597360841463431967557379915327856015519533426998501651277755148404103589199839663012198972560806495972574830916261206248082724371700638763014281644767145479901668116940938657533313732398189786608877434128271340383654349978129005311003675090547999585956748700178406638265347083953449468020391860966596240673106136205682232861968630469544419403115952143427827944048833588576123603320652889175226640762883002580349914607535520654588399702948289170243655786451373164686108129700515135248528913446298976665500558191736581245143354837100545113542280182234177238242397640968196940265225350258658597197530957730161575653380620086707653674910810242895687990190976881287181471195386478729656218958708745645107664074082131679601792753396299731595078291250828534166588924061185816308329784307670016863712846056853892606953342683322814212442648883851027226522140544060004101721995540169465072418602278617252721059966685872672333611968504009925098740265223770323352594103262305566821667176083292468488325446786257325119875650194990637468200215319387592422043314965016693357606635490366947355645931127694771411387242037185954914101303750170317911775993558216956947056839625868498088321285235826732677980505588444035156308858503980621145393497999591096639494171770399885327410640734693676753819776211817179583718711124525277720922635745922450793671948831669752961339582106070755737389521015164149598343968458605319620447501020937623079045721035941583942497984217873576984613695520217281161408530151438427464703271769218786170885280007031642106271070542411865237581824779665779907392814144190731888212142363958446056109700510807774678849463926399318988139366373665851746182319546284664628458612131454728074663668346629131821315504943347860515936424436826301703162571339031766582504591396393385008818712000425788687856063531947991312007193783685636201180890808883457577784838613663696375629868209989969195870727937105388595738948694519568167946671282190004326436589785709831570854414794333858109299763739372143503202956696724595409650555590286164359165162816815620679375185441228872847647400098545324279118342505659903485559954188311796707377431746491484689574214065188523100482681393371936288076303658493399634081908571814103727917793263612935912248275415090598938581698780934618627805698916870396505490835332851439022131918534810295175665719981372639718092493839154653143141828944696289037899116232406527341503654500688085961587087526197202845063053104715451143848131304238279396814723715908595315635816537930637015159918966540809850492239229590315380754202948303892937889351168430914634118835689176988640517502577682922613651274352732834374843680614138461723133355900148254934477523537937734213900744258447441380810350580281549660695724206868818434311014170168266418964240857206120510571155910185685483148766906083246492815223934531196887329168594214686504927795043885478376167461641547298273736188451911083436194272739471952841299615313702890175758644290364503745974444973052753536830894341086879978141828397494436430311580251202734079958343437469814219309619238835491983794306950232355519104402855398487477757408461999833372901821240872880368822437895815385607420101327421156579953665809895694848776470025280158481756802548943320154437703071679940093776753910141356670093139754671528798868793522359505066516239271736524131053993767065803829741022355256158380540784608899567695301818562784025900427681030380302992977785601625347085029461727780740405731554867767690474912013484089085654359918623200114093005868005127811494381292914195874095847354091037431607004868878769135099547026693701736437080673118455593599045282436956625184611084441429645699407701694495256051245790136024688867572649367829000641230119297623907207642362324317593463081087919268423463356760030566804459000058098229266535994564814418834595421293732526518149626025286889296721227627472805289817251801051869186706997199999771415313900138088761307216450483901007373412618303685665503810263747482723999416696345596720400766080411541172837524542061842388994319250868721646463155421694741080697083173356251224836612329046228759025895637533221337457106898559595773218678108464602505027966980120844006587621568465074433984648422469985523724249388511587293378649619701843373993467746158597049251244495695007497120773590410334253703744198661952024861909660989158485441720403653183902985236548358839765865270853635314949303516410992928785634052205234920237396593734247171039392395609054928451404599057096638811857862904257217405268593859324330938447319150065812145496989502845832515098751782840616071481772952677862867380945712036478278814902690224388362212397509593358022440037606401124274590228373754425010213053982244026612617048818731836345562540846974645257683590499938540405405567463351505699359890314019677358981547190101439649130357715651475944011617766535807457257182035920468728246880454557230473158468190096393828216204917935434946766338264487692602858209440787738220296925968681407127560881807623834708376516948454900150334915250196398173503325307787955593887524573304553625372289898377310163913921657453445777562860858577381526716123730503023264265114848173220230470487046761788122160007777222754123935537418591525809203612518225769749854967217481312855289347097215352240049800287465783844333294636003998271585547971772388424734357237800758624570486012923133081743840354866482042370046104535944051343653306882377583553797138713589848781200979439073329924889483510601548701489794337756605651214502799389681662461405217296250192102967005497729686745951507814012858551092022917526693327686747659339962447130529449926980722816599613957873005602109875400174262733350634369642310323127908398085623866907932682741777933307390439520572279995159622555207724434134163690961734293420069906539840749241061281247111800407073891392646218810573768223334731560297689504648148442620503719057316851388398537293526307728799619302803260289698248760662584048488000077646239960892393276859462015764210868937581124616039634702976757797923752861757773195500362935607285380615439620764782893301783891619732992243084590088016662541961071790395015551013982920044061291435681115110628790179706155183355187690449089379129460464091132708434909532050694678504935120346168109560238642658443658001561199944191283634390329563516773674230424639218484026951156165630809270696904947080085611366920978793473119138447342027166700607197510745105202744458743813596781248313493661549206701970599785841538624065968421896054637001550003450907207821851235702129633727372517425687788986303070320991843120615331730396691202502062232229959671028955219341797638035794290879828419733918117768321263775656265814731250260067467390150185641333919456606927738319558182084829632980848296655984333037681152690291862260973434887134793414417168438037620131845970034273998742428917681387452024410782856941318489996672283965893586796354175694550129371100663756464853727168236954371679646801027021114279805295264397915347890503581735857251659932360758762350526337507005652221027427050748664293902970635156725721722887552971090996781259697670949895101808513218105958620793286095084518331178888036655486649280158330357140441531703866111687190946080930164314114614517215620885334215496388456257361022446597963653941956426586543177138627875252785434636577456309894553701666899061856860767553913385884212961331575606768829891286840009280970718179919314168206334159608130004620940506217553305438123378619444373899517636221421002636544157182096514958658041832246497956340108919013739889653191804048029760083294914477437059290786969145363941524026606574022621161675076664486916783459561303416939017871708317753232261260339059677764475178799784919001918645623623696264545531159770380360958311246543701963760008001138329807782527892218720835136319604648329804513884470530761017914709847793520026803036110567525334586641299611490845454144783547308748921031035981447858608503430197882987163662428620512724590478665629984827233151015292582362502439362699629676788357581723278771616688978273296604480756669940679880039738286234929555038242542596674367688396142219441880021751937316342820283508916178897019394014618398027024481089353788295135231954202944395165198265830728191765123110723630204415552298165816593529912960904016901536009287441338928336885467497626839996154878978438353597589257246769931323691075601768286047779656800845336874392407539919796791976879209168625912628120607752229712542057759836471551952658589180309306680853382040116344035283039781544008613520604722573644248758603830835596069440458948469277910727798197417553793848982735580705446719363828985377969046424820893391632346201970138565666641242177788949078472040993557205000526441258018874359217937340909276266460112772364403771099034655349690865658862416649439325158991614394625098069769217880807949000452646044405945672681755759210040928211934470842558844954851123304721513446986518468315809965239428336831691148449850948650155272663340267190488901377950164896774468442030322984262485026266611626070474221786100569420485617808462552732313521480688823523573933347839168967055525916007880012711435946437200752334679858036363123230938697813438166509631358890007848432804007897049993088706957845292263090556786220347941257612570854974871829284580094568822232122878571736286532151151492475773451432029480305967052898307337936964437312268571557126698849935821665499257825820528864887120772629989575844830640645901117879192102473334850580811453940847622753646639313452798480530334624606415511702393240097498746244618179423113861418108068536663823666330166499355978228575377907746653472656607917360062911545424266752590255788347291571624839041862657378844730753879154937981484627263337730123386076143821194381179597112435508673395439798990017685423999315263126828343529147040315528791981839288854492502201856592137469616439171296091989653711072377013286391240594969567614509941849414774502163189953514290123558443559159892432121342400883747416730131306786496668014254406234679946234404118066543663143987035550262249475538851326789919609060624294836625961574636926854786027416362083038513006584503823618433095886672698156247292427054067487666181998816591700520243916548113287961799468911446720784105604840924524666313417850667451762155939685284807705191784623129812876767399837702595111122306724028415086950613476519297954063467551274627477371053408680431759218374621177487289856068104974104788951470085041356934026635912567396750307164927488893133787637102268436227156889740692554478425207452888291781830662932389222607168223305382505804965973461449236443655714125954423156302046093005252939362693222606913624443282350780772019482434443956582760287366003593925950828706286442372678724645193893277457856306150780751459017849757517262191837895732703574913505897718173563848645472598686219679968097972612590741925724739537869289997059191889287168152555139340348807684276079096724011752102956281025688370011271300929482228662707899969100654331939755848784751042393463376036456959579213120588227388590001203451542944605792163061090885471248384754991303553349552694405380255594313903617442409808582212345071983365232809879305296590298289790173703319205936757237459845502706482702761653037911059101061071888119538046200672256484252960349828013187254942159585532395596098130861052885829744145319032228297101076484314011403918994747128267491255977364394019286833332662340636849126875746174064909367962382570522801300340775114398925392226620610485377973562592158222836437097453609125012304521765323370180924980931645962491006753827669796486493925359412427107100340047724925501749163441068639587688306968765108194405703276272286595943054547792849575036652042534670473594494040775203000663105552898141384616085500345986364428934769560437912893684772189503518954339567930792953900094185706138968917369859632582053307109957157597142244204404053382536495130704486677678307522741992139770701605981572867907689523115173834119309930415795930457693962901633594166140514032131483279397954595174072966456019648947957206457021263463515151525778553577136019150111315415389700001314837373862230418300871020746170482051286769824454248656378913323615346484879340553663458064183380686460118939663974775816442058978562003803030439107583016625815712848693015248890429280506370782564004893590970243967475693759837788464198050791457078079764383851469422492689289543493659565180269523087240710951214886556301836888096469681830688684965512096939520733670828926737501305718161688842377057171489735385023523076978060983850879710666492951158227994542591567512269585316399929133879531157415784025891410932314201307052126473476836682590490771792478583471798490882687815419684087951130173081727617176526082385218143352460287013543400360869559480753067133573789462994147436908569127342885723125092144874095329097155671493612755612304699558710558130809952344038220713251768658694212205163206515152858300586966261810391746180024415523143468487769622815956833854486354522077018790467491552334560669134649187117886547021360593981439363190157134416592146883753498988189574982137080374608227606135652359403248500847694534720024769572037236873475701694258927419779117638446510065879142179965315542958564899055403817906444645014123459757622461943202529319134882245517605391995284958639066983139010101506059277053012516853938231416342892856994296188007860391256348688078237947003643396515109263908241110565357827905888990420946456123278549727205463095558267747840556156543269103753294425860937762652720099319732365327456071550479976833074860680353442398638620156381680485967827698501017350912364965522593940481153175451523576291034413642785586072976260106303593775940660705683872365498679853512542120790968109205806897507909461360674236081296343909448029325938299506863239887197735105163763428027873371973726007501259108429965077789758194661713516805803981410900259674403902374965186029749357649635090580206463099515690714170404399520477290352409487762643770006673535886405417774632177282267558780886252314329490489377476589218173655793934207807691013068269190280617354899840235535836202322717208649108148386482776118569594209224458100587575186330298299730060519429420413622377943417411505019516367073999715225261933298349197178335674098599336095889466134888455278903048445653971376907535961614757247844471362827421176114764351742504673821340692020647417125150110228829498975819544793695634395032544373671178398338299256128571730797630165392030590210928420196848198292271326045000495543732683459158705925573812173618539204474793491804183384892181073931651368272715245062112342994075217683991201779745768054779795073240726316305319110931199069928196933277358326809201240961629409848562147739672292054595708844678063028887373085031802941205033892100404841643419235676952976258215825338793865712954871707617160791889418000578939992773954349165725804975451727483018508108747253386938854192981704262448375525186420987606571272385652471653022937279595229182328734149954794876591010375673032936528090088491459158297165502075929385218173570650247800155040833546682856314684048393934826599931237464965422206075946894323270819743137818867787922381939546967396798234741533143255506502209749892963423438695889777095277004967989518659649886868683575394358613692819996586669844643973078701513562142683807252103956520459853896219753152298034291894891853986455741383175179369475517330883870911466842225227173447506423267687440264686746151125742446377946254548822795842623439059971646180585503816930187407320414491952717424669334011725248565140257117209738710775322011240562644652559311279687744229786466414165742199472088561298734605718658925292066203424149837359814955789966016325990354472975802078520619995788718075938149608352874759148219980234797700256192598657008430662444846694161182786229974676761553947823410011543728021911276172308553195525776453891137633516828161722502974875440110321727985304679171947627735581526778338767448572423542334240944092580452895563327773127019699496183849269417761496664978194007297101862840614850151110757640398738188873269405545740730037501244511875995431946285516549727101799618655974521695510161484688449370454327175026387649984374623215919779112094086141182811959114021653581596583212014998168111590909358791872126129573523318036321502095912438581920822936050452777274101130133691145349708879078678345982706355938416803396662855340116575366764429208463270106173889088505888922527766083799549075800169689874707028861552645037448609191099992175773559264667391433826560218691313155224591910328172318735794434320075685350199809997456983812103430937860067871865774442157876668078216970479721790919881445032939264506846619176228821498536237192216299248545291296347797686888005668409158625065619866301184536491096506708053790350573235538286663524798286197054089678340119127032663251542408985416648986032640202865411841661805987618565670190103696028723038170435226405297460066865868867955137764888071218104656900525293050010549518723917391715989112132043127825109293839539997630618620488274622656021983309093819897072327459561602138101661472712447841491244351997262085195321732075395387732567357153479026489457511997953036133382068494026928922714978964423544142497790189025570989287195066393979785439080688502582949235941583282700861688181798045761298172744777553990268879208041638689576309877689159577130737783413596076946297933501978106083588829303956000245373969326325994892263702511124641685461485428864147975127029497987739503595627615522225641251288526432564598481219070666890714864354058635009417721762857121083752990891870418536451584456902326608891114345296200196305355482105655133777760058077234859633997973756428014547008979165433248314191110620804862043305923776318002222408966227426734864382478527682627520858057055079596629114587441328478809281126385692814564109984200433935764563453038269967033188846843697068023856655642882170088908761921781706220469651120964174645048513411747157217039815644202111981195102315042954705948157491475507366856448017194369308577313453716233392302993316679391418294562426151757802656389828884892837091080442830228000210529216175004439057354194440248169899943627461728539162578170097137676490953133035038271499443430227488041974526674368713660532644194316336725398369415769470558839520540679070301558146660116550763712390958324455634782779542558071037706663356403806921689365374731599945326998866141388450364665342514348541717650398865450699890790389113350724062101938620241953299722092786470209550763518859470962930649920536783132610636047686083264612749726470142669219132185445082967439619099683994110447197252927037266329224676124811878523061829180556674192881420860899631846088371602578617098230762806802795086697000574917447132857395245940165005766152916702300954433054594661549620605719892508147210233973660641862501542580447514846065616969495072748139573938622185356832072154187564501106485200128658938636253154599388874020251868971907879594213887708718291561120600847883151556400878027649166248765306999267057354007883959995671040799797028990157986442405774380161185116757004273602414980354847412239362859252779281826449032441988986681285749667050699458763103092451783884067706863974228366678894617610281683083036571891335025292017174229625924505462456939300044604956785967506492972620102826429892258754991124182438738116831421340926905537909340108990628701291712879025534786421778213380006530628499508291246130137706174465065213997273675843064880607827678899912206376059248825067125065699797475433273328876571219718325961031954350982070195253885634082159397013257148804171410050732183470253209970192134792594001052036308784886600029139779388767279188417780115607972363668433288565324531192668971032611179965867059361649497230904181926924830005095529477102335221716544726605622401798552462643260748081060260928500522057312025050537299013157073507567763792226372670194884226934233056894340296331832858552345535447450223102181972621440921592771897197810457961811296118573860143528442288816020087507019520127164658104192005987616458799691485931097063092168436439774780995418946091769819025934705837822084518680734177510705107084159429925371423387971511530896440561238004472619598222585004769045469602911495670488633197992537235334904807596344469611011977157484123370735847236526632356686761176593643087336664397780981623167332394126207488656682449721463040562937538091307073961871064603017380165835813217398499761224068112497120459856574433499513935706361217968702536321900205141477525697254454988475792965598773528470635197028991019975531924898149195340923306312793951847913764180696711557472824604332200464198457178115787320271072751061951841724712210961936363674576561159421025137984402224049236285372668641376693632788898238797233036726342892300138059160889405189163313751652387741263609752343717514672204307765837612975041681557200297476694620947842552974215341823713421511635633243097016172077396015190512653396984953980237374648400957960984406986075577607951644885006580099468672737844226824504259602327931701322253451482440984425526300823360250906735840671229332230633361485473301705003849137297377484393474775746448718461424999475654616235328704642571684394028925319191072384806402726398976257244710429908850829764980752158230350187285887440069059404252182141839927723076187140558260908512014452486204342696288968211217335440453772522760109995737589486861361812458835329286376955954229026019449913696719808498948822615299402394945938204777516261249622620303043107819514843038553450693455760899795685801368599624962756053740140484136410024986941807384860124580220151061746259295548378379129054476765261111116016519653866797830489692170387746180511402610696249023432117057309573659316706256240417512028574841149307948500145394181732424519599232029214518147044645951736656781689988045564460592911509632098392279771538814970232130495547886488858182048974242883893137768085699071931267506992258383408504503852523186265293146673403446256349524013677861747975851712445183683805846723549062152603599511093902808432085120670940051728551900516863515106337233546642090914389719360863693779578601844590310069784604944449815946719312277320946226000802548130139802242130356429179443475796858014172641789198749602619673420374397667521380874758986908804625974160745830350739109965750023871419453459789008462770153236439521492477800727332320132715575791078496708607162370643972665371287968866503739898933489775142605445698097541774332527953990332121857870830971490988934679220206085563115625683503707640816152993915251532925207911271627147132458385403960379182226519011443889859945222852723152162536349213886944533099877088976230516997897297783295842655165956057857276515229363559769030049098849366955509233896428204505166258906101851075829552835926129216126299945607475347354568708564517418258690236374417802963419182346147906067804019488886450282919690100170481472129123981476677355482535415473208430802694081415147322939264097743434685000338400318222380184926001430977830282580377087597501855887229002534271528884119096163572227955669982944755639017216334474146241462612211706313301966343122303503393250368960924444848382639255463089679486122871044214620479465055976023424570980141696478563591664355442727284774407371283624498667840649364413291299382203640484357538833644633279305722700661383333318798861090951132473462579904932291253279471497000619341030888475425080795838082052852228696624621506870301818757324928863048972961726822259080696395192725394131590294095252316270493459089831990220491278774465096038525921866510187088147579402698822538744694207738944158838305059296589303780276479476305765954403856672700167534942222721324059634874046794151346683817006712946301625001186118177195856179025131490686995191737382029099279934944123519078884207634928396694111721325089786626468040844398867738750482248188084111351076445905542814028058896771795699551302608799432454066930273282372486056390574730489908747089472891310024808715090837857483695514882948410830432983896776990473682954842789863542549295961977659951718095620652500852417241705986065773555138868924697654829515950388290540330071095994685322605013299672628027877608540308949396502525797764973691234521507951593463228395218040166291903300255193855636297956576639686302819292237051452763988717462219526531063708921727962806040710100709676281359853219991894794567090163464910169103306484706555530695120780476496368880580781461306955895854804459559550199238068644744072529461980473285423228122180682464825418643856019498008122754600073466468162836395545498743236303734124994644100847080132423501163430491941664937425033321160902644235905637474850025519448666897332692103442196506521118358331640407277308509119579045249594832870426972960918975408512071987242766105690778421839356843764980371791852619235293449513272353317487483929187944801807604898421480372835813363236335679179457950047410360123016972244572231744590315060863706725607299507340365151391252140555174893046340298179957352704682026772339372362586346967309415289455762715810325059647498437944249534745884580822022375810331054037465762322050010931739479354905999094327379883872666227021350814073940506907320731274663838858191252900023754555987456468806496224652856921605030392851627920922694241283232055553659993053085944407350288628791805082181155961816681161657725372844070850330469142493528154814152969824000757805115906342490575134195127799095410213834691755720023144350893629006913106453302808148046024753531599826581769280585272265609194852720803671156192655323906052465180591755799342750067609730637708317485968487716145367344656843183261224612974937116424035431609367760164187514512880705255178972452069510340494213708087239354149435861498469088292183721294915714814601228469543938573804367722499766415137164115120406854457474346254440815330588829463912384222800609382983279995743600260782820135768215379298645087789515519034605494900507912479171910672755002172782265190103590161753094219487296489782738439663142726024461081822744857200739080358095863987947446299155100115363853017902450279912096285741324209220456673493012831273472830179396096946006353302570554911181955914220330150555172671343811920079536619890294320503839446160282346072696829158363086818788260755173924457288284167131337462293581852366779496592156285073551439621499919826003850684368941365726159818133517917371216478297929835267462964759570155735778234764195804088908769700468190076512097969179886352994512658080303997279983228374232959975810862959459191967392792017766820840710563132463363112498992053830724599915345021821056213192347272481842838556205439066806457887056482793637462508418204124281414452995675250649329601711175365946045730725525605526703781481312908168201399946125338019970728527761567918705575703359113658083649881336554168377089587593081100400447299282390781015986819563365751397599558200010290419971862385854201328654078576861004617927503454349524557609690325351940541288755201851428858581193031437343647150559309203199674675649786297911874989503496765305954953713949883329482573663832977154881726165716150949843078929343961697548852120845873153107209531941380073974970434507457663358944129925643558130843088671769372262485742092078517174651584365247128019308459854418655640843464314085905298480532434791314421423312170589927499386250457117645270387199650822660482712680496169522570509967058328895937333267945108919924184898203051282242371683893501525891948438293401324179966000211897824595485020603900382437755973071558126921722919177216654339408413611975800083477720104582205997886743706330221306778244732430333124357975558120413802363664688240833672077801289874763615169680927095757059104476034048479169439559444160215586976646689252701940143468866183556515132339534365899400409145656670879669364354912690482218618541773989422918452428867697630764170535508647414798611848314440318053877185698680815591942283035692073777591846128145611892227261354474794734638880552434399108720983871490601157749014984791809835470661450868306615327365891192466766300879433275633598003238454183780754181365737872956545471565696957016763146915048805612794439257347377733884047765744789909120763866584129901556688323641566544643747584639586885002315329617610212275293013029359889540684742659399122835356854649717777462760809347381847216794516642275845910536184790599470654741472142791429986936455251831734278932991590696072335063535843177239474549335008686539531995440250684468215969131347536148046253484466700217930390323526926155326476075643305123598502640171938096957774486951275140837327236436051081528414154573794240357710958450334296229917650032619101105911717800133271675857015642517633889058232340316035082292044660505539663002570398568276702442288524698975676889060213313704592302589344289335902952064074326800213305816172462548314025776712277701601329009317755952321267111020290869392570639003846192198092345720241253736491233083896025984719530860302282808130213403832420457909261802812472887445397685616186064617644439754144043796367908413653865353515836237202566979367850436229223433139158531190870524973615195732660411612520264004611559909955572307187078661035885715668511392570589358219702710161517263395397526763906955106353258995104008906949263194147434088410121386215432790251187439894077475703336395474182365833914599754445988607546469850778913857367768457884415402990485979778812616113838687719418172789362860008034798638930624991497763026040763881499989666774772258236562610190828768192309826277079942091881330033165216444312522247530194021528194202600687832485579313179903253254437840737975713323300682885185690885975964827770592340141110501280234430982608849990683195809437350911931081703075091286284100465261429761956305891661918004152757542654037081090444142854993020948951118112750079408090070334047800810309811288169135617444428440847185717287401911570601776048443396495483874934130651180623283270231674193016751049729093875675576222053400117873759346618128425336771975661171243047915298849964099448329528096087853555110387333479579153518732040385644294885776175948288141865880307439452670079973074335269225561058559999951744196197810946076794241020761115084377138525685844181142346805027020180008300977974655755776471355374052945419582136027857975262294964906227087251330504537981817085606378361786418880876030495192322296344743974307243404453372231113773114431775366407780836726213691928710828954318651529304710440763979954725832485257064914164106923188211753309652421927883225993427096752657170271609581313758726642212387260165810343819314314717096696174098132089272181004969336517019255275926557305176877300956886375155597729081075458884390863503538345464964346598308152397188613267890404016021344435292359725881768554866033513316415865828417719424311344362578516781341380375066186265116802315137355929110621847088491063204006313066940889419462429506225876598804635444315454687570296011407559039480924196646052818460286196544035065983744061863041003151594224672096985535070618266965707600112448974479454120962111520195855587875692647375261890040123944836942566485753616548450976447128786664616238885156216782156821951632702430405486151078196528328490827174020484499125178046661248805185402275143069381611031772310649829705727539488053243753900652854748810432956701284684497040118618415507199412085548705693165511188243511218747255191027250666581649652457979942895716127288899015294995986641355565640298343546160583674053863565473212938212461247508666703669431005037308061662398041592623916659345011632817481580010628286117061148622808624661273287753623153553872777243371606503105102813857881027350844538863983787569694769901811240803007832663055061157671567805555545279633002807704033594246417251412499303308450863754764035289053685237674299488421840965897732935968121580899337413254035509831522969974284108934625394296421801375762333461149456620573783724937558449504120561727478955526527325623887002303559816181093020690299307140200576758384518480448361188707754148849499804168756829124005081190148699102099659453279180487424522241423009815327205150686124822924571523696280482383164742095777734592347200764265798626277459615445536224004570004497879127774584620466880465687068186986006931002092133680489959629341976782577860344764217391493747462402210437760281369917134095039404719580044885907288893821429794720855216185525292020157870800668621449255204015142530787253705610555306682327143478707215407689319876428424662865630131450617613259238102786199409866860828503791497846074250927212103787265359642372043529340886627250981768273192690414231148199181194245186500014903093562971227407387797702811578299952298167951007505915063934535272666487579573439506250829646897029865106150502224848956459827763553767595447836369010619333720660424741734354120156021644968449091625092741953054199522233933805861201462010970459418187269692261026761632262489942195304670962436013954385387301039013099141555630599720593867533452926776760364465800351191173226820905242335419290451304198816010418895016415042559290302661264539658717565451316808242073746145698820614458980429857065469572838790882479947612466621339543210869618765819921196190795427859434990326065267045530736654370157482762872299162151901658633526507604749235391460794147117089348320573416485366474612180972313369464404460914468275868872289977309186527381029285291764802154796451271300971551930550168649457182652189666759250527092390020312932415423686359313078158469553966882989840231354833449051861303245010551923683613985640738502335252811516282649067188399044247743479948736610022389908485358604738096256132902054870137582353080028402462641079660744134751736705177213815714780197063406352713788606065827683620784379660552475878936691287572672886578607163499731747207504387432770836850804363176242650896444694165368542064655646863672410646917844291546125063496476704714733536082802908181604241018042722901614058413457224112806247960605287777859501552428764558843147864417805911376580175743442502567887550968682813355419071695034942472427877686205078245647422222016505274986230268942187950864029442765815930342413984424297071742057360473235513147849262612286828215126540999795307098134885483351438636000121026194896256670550782040335548877528608203266269498629566817443847526548244064265447776197253038755168554699996829260707524262917959628430368511882020341286156055413944810179225408957691316010330442839066383677228949066210286695006849993626585234755685082743910516039211298789209806502050040851691764695379209082754690000213873485502970103501973464166287099886469594871538406474996206237427588541880542568663624423145920906409819275392184817927069931984298249599690139827964145623695237964125482064130868332431366714681121940249163738523428293222126119202042487170504085943032659958466596657708868858802712836186811427303069289691072210450197182753925326052148795975457071030678143725553620049197736703007387259135855518787212916111189773923716081408638261252794884562774881604149362982925272628566090462816967160172976739877723784816322032850497906833559873759957918144858280681500447503530632376884814472825395444298407077135015759680924124901632728172203351760599317519465190986863703043665390025251770529100178236030428314705809976673507136046715103590840811820397631510171889800667178246631469009265354392908918793962065399797209829824265436326340132420114931794345378103199385445692211842806646801836429789673157921216939392225472504133643819361885034782882662751586618747291500431474256631553285186683063650699850016215786433600118768081559424046188310001970560663176206245535883688126775562026381392210225976700498505393736289671502496164619428902100979479134054663380374719091614224482972545937622789819688824889455381978085827918399063181570235804242417040015798958834312145312156133295314193979889662113669289902960038546139024898788398961252484146707421929233305973978399116781793712826144779550296516618639217195107114433035882109816662124890726062217479518071963784498873155974220364390089949961643118458699096649909291697128342776038142133237202532235434289391363896538512350144352491612368745686769493501800484756949255839183599724621131939394363343244617063848102418264995527923019364017625915918683729277726327940717768876017315239105530902846018170675729439466644720260773221988314567006595062390604284880344031203529329519155360528307531787521172219137257018319438488372511895336774254017282527624872498803431154997872768997879371314282253002757307971257115689381970676334489051375025170415416749305628747237912593974343468492077014900947781109726419920056121260459496252087260223193526106005500555886638486609966232065322163799421271920915291662079863570616534588365023769949786075240281512243519160939175953803888844652684260675451300030243772062160973106075117120335816839188987811221872336835985925405229265480484497622398135050180236217788702204549402432555778194817540125060332601591184323084987559578777594354534859233932324626595145941351598666820947629858524349952610081820809094830723318597498409023615487155330556021391252421037461922547386744493684103513496987120057007573778683386492915285862225170320494203788258013312071489141750649225555009831814695917667126135349564597205270939702570774145675225006583627769865491898292729524131923853402772136740434438053899986528257508770718388844480236747881384769230213975895887322491522630960349269862188619629625586431691473383983571581621782843866905417833472207081503963635213293695806910019846579094577388891562314968432730297358798484043046432453430055628005290484581281574620782046366223227172319643340945556298395548790457883767052249014259464503348018909547055673745788085562812703838462849818411291475248279083175790963295346321191940722386807627868912662642261300316324288269286039618232046689108515789263334946929105548973611863257442366328969715062238505924944280822278458293015767314459550500242041606434734232546331172601785265584061406441452486283829647412411884390270166891373624358196994717327485916430490271239860050153641818683178002162656503227825847649600036776419184470300977430938877086162712943319132406577229565371606561487789655573265664597434296832798591527576699225502031409087071321208001518919494088512321398552768173958540848456193863900656965166309075554500209050631885139791259217996177059395026148860981132034379910771819295858281413884339551000247147571016408964053116529068619417348817957546448305026459668402934148994504841871278564794257514159504884809816819162630801478777472642520863421236911166760114627410739611071119216351207421707561609769947780088508783935148347615274976598570020704992411170752226397531476321915010448763924842549373227737538441419462263053084404358444067520440044530417573664861416014902360121211556199349642568604348924876364986541524065056820137599696781951696793484066415486570851122327316472745922339148434026247177086211723627261132061991033849545281520417971210130984158859647880141780378887842067903564485709476837429185005713567782822272027031772820443624313423524462150902802139442961156597257628466012367520693709772490752191224173205276580105974566631032773460675121920204525022229241791957308372856851107484664582574341424231058693825627744538658872632692654852644090340822049272770085857163812752569436961722519021394150727194863180775573704040904937624433289466926471284085850071859701091831397430342555829941258841661005061219523430630833036013099948739937213987757023758575655296749822436289510800332992656207356278720073959398079650192249877200393956659375126495177442175540474325419149109376615800381240614864138454785485498677394539300789806090423563995409287850588165383959021463209246288878376325279400492205485632034021895864043455559949602195796999137821060001318115795356200085579822418143971281686479223809446644723428178020835612593264124046411424488295896571403797064039179164920051542897076325880835317307958545160395353984489532467228919845640260638255219644867145471379280475148205619750282732425531411329232104054926201317625834332000334057066623993618570555434219052381809750886996015413882677455849622147828968045773464802776697524462234303894982131455287863529054669557195281629034935031659960936843854277935156007364867880472149146066898375040347987402568954584292118956748912883722814805079016308812622565609448225946083345147616068720664688134344357473849279837724113311242580793079697367483163379748746829543119866323172002177787779919576693785112867453864990054084822516232682220933213924807482941002029018538995652454628790414047401554169919865874252966437979876224260089866127813171161789755745260881935174416469786956864837135784131837612471191688773333078947451155265025377210225679549401283879279775972153075732950746028689584935358684992446388227567085669213341736686628327221496685591105860599415066345297637892307571559767244804557321095525663038403080870176318458747327801155654841310372465679198837945817899457921627587112639627206503570521235286901462134662649528838873720002972853003501959883820231541512626242347550059037208889253366300612329032967448413441651985908273860169175096678914901555163470737516348768517216716540671802376684193802776453291070974208496156795411886490978526773303938585727754485831455674391390709679438632251529662072402154896021292653094869883957955849192808523255424720192563209514872228131616396157506090064547425551224216358363613597216530030454212218949421227326766199784528093172338876714514959215592798050314793677549659576002616244537100739561951413813918592126297988143481420793287441999386768942935545793480533739247461452474679745416815529669977729096247445157414914494236823167174909986450253268107163736192822253504423400661383236064562037737419262934473880156180515129480852179052997196177687384101625369321361278219190255048157308684258797204124327276274990369834808151456035753405316387602498734150090339729520096437915343322859494486371165603951697005150839321198489280846703265379805214514955216844715393438958281517683937844456623607699815142387460487483885668319119919144636000096651904248582743510998127941942687983192020530997383143463742406340629447329712991618477644042725174256230320731416867280658182894400883706025131563700013254102055601682674054759700085055338133489435997560049287834593952331525603869599158391636344428364433799707938358814965434482491054142469087125471496578854513287025589911427700917737354979707421927282943602104101243673592606511647304429297304409361628298414361367358437136762748111603336165844875720422356387120500371890239286461108916498152829704133221959601005695601281200685196475327646420644781513297726556671222810367484180295165086812396877126811911494507615447222201716621743865864619412025643881607997271730191986636059064570063580721541459364816031767442720354380953039033767919546113728839456225716638893346219477705284889429646069661668895800983433812433454408917024665857616606517269884685036640437898794672828048537313719899424398930755184170630544119362756901695586471274098514170814715262599015379113176666651841254440574201025525612318477628637269030074777495356346578494879228530282617810460575660381522306689919507149982474519903948739362534265999440909938224439367668184299475229681117993059874906886822726484968879346695277296070936709273017589875103296142448907228899387357009248802567599307625090396737684296753336209480531593116638006642867711027399971671713719379546579614646356653332692534772292398475469677164287706613300188708425811346008272178013102679657634906690614523031683307035094891658585507002162920932358155936551410279222464193994742934422734699409325737279459246014869094208903214327838412674183140891535281261029119649608930744606717932072378172116075433692730356627660063661945510934290266300026684120000148394991975164268385347417341458478783014061102096699711180493332799832578186098852485688570095621190819442993215157052631828858136051574981405311606622975940521100281448441850077106149716478359798911369125046782436013959091531522621335966345399067329505935967844714170502579484584542895181586949916173243041773432683716578759289896465340984823344309644627445118218508492892874632322835935150448364153691489622078528538406858300820068717623468038429386449687297324611472257933310436997116847058609684610608656001266242349190032241900028737794495705904032226593769437553646193619717666117360007475854290564574001601901767587583196660399144449702292858186467752586888281823063941865618077288090482319474582627233754990253478282906652826238596508200268049399812571339315453067906339038651452999290762131875879506490990209414991459163889035077391327674226453193299038121874637496102960010111933262100098081321106365172179702283134963914929209726287236666041280772967247526385697044620466139153242113579588075542889204932683960304650030668878420394088251074897957658852023183044308755997985308008050740068914094933498671888594146794080315179308342521449650358935225762431140230509514492729823753432461843663530782224483280862742538822668265545127283864823064705938817491627652217273837920218196422207217090994128329127378540298053135415165245262916668923672080613755295897532812230928154155373571725370675433961526690486515136569526289869721766616469850730148478154551381756312142945819029780114414936899613090750487216905280060530825518560291941795959637779847506230049909411726472370965291737982051606560896336809390704717672750169190281795503299162912331274813510139050668186761109133430339410709929222469016294618393957069030109836652328742939285304100063337693384879153437176009949064656947799244440248989224971736663014758474005853251805403180254173761854580897508985262271426804451448725236458092560798536860351362968174812030906889153713787267950656144894257709522605375459282977521776451961129830154822856325475468638806691836661344210723244364026639960931779151128399293831569001303587418487043940677839692102458709727997218675139616850096661477415346490954484046968433753873249848458130284387327741055850266479206126275848363754620382550260923642110032864837885315695012440258879131076315623106959494828220206824400274975269377830817632851815525910475269563881480527868956188924193432387862736137516637098204214040963691123501802005592506274325502747626092176141996097952909655619819960502849796259365649873094368132912621610705078151038643898684347163756803761512986429381071828305051265454905965672714337640686953320047637796778415614777930125463181653716635536475653065626723733934920755015508359371416173681282258318087260539491071720119301502779160827523361311095199439080575342776972015357821418926017392712672689423511030867556876056332013972391047561353743018480575333416547360266287668429799915092117082304665377363619400162898981602024130561705639580317780183683545394600154110009896345648218538537793317069546445516102354879585633088657376160343976573148341416096183835734712838404587614920973036938407895668791949568657286174907245193000549402686927520282094448369623511601184398049940264732891105896336887324504044338339018895459729559810885905910360078174583488144061581758926260307392074810581500887889797569038180444302404975210350438092724049533800482456620155889319490076861895396212858648196341978251361267473655773096258914994405661695672268668111515898447058528174199620465545690263048598956732406880583683493708488776146435279692860608703595750940920291117796188375811221013130934227610351276379379123585224626224441467216951938257961896740434356763519969467795872834694754672911962917545952480341800648791280481314794648891103662993403774385928563371089075107203382266194249453255689347976149151403554282144191765516043417570679658749847907230332728723098705334339359962965563885116305060342721671362129190132465633210661320915837774733926826240914441530666751823499903966574066151032344164047697879523800011914086611325463045606130727221358060602822759530954739872025024162486503332233360173230099925340955274080707270171875931627383294226620472047069728952033651841282551820734232251584322880773638289992651538420791138022124968588487270345839840274086013909946048156954467809593339390467853847981799751641143803616916125088765130885048775729611956989078721656821689651193626081323623187316523828113283715098927259169047876946415096405526709596798919243106031419466311051993955116725963658437613610665772213329603048215219034099942371222687761160825372449982153374131798660505578541499870825612065230936229203536673209939459509262457198128101713058793604433211540998204599661881554456431262214245587229550687408740692925742280470439044523839923075714221502106381373138631944674803039560452858078524014491571069788628916779340159883045012279439559086590973259511356091459733891898685440792084882693965909099589076495907346728280326634826242833540551614390613302242091193258971838150782129540197704889424801223185551785301782350982522255948459274247211882670212878312963360656006349554381659562102944051346763229005857111769448563832186295055490198657653351168898892813822469490639781007795960617217568837251198820548092749999987589239824542551517505582941372588269044035504194152993686433981594148435582914859395001218481604346415964572158896650281611162451791643406829481268571661044880681949676934936782398448605795979791646604480888591035661197629740372543232402351465265105481808531897492820847513814256364164188723480122043669127029497400747243348949575104930080140694824430238636060866850279993907634491897325570118634921435927485864981875331772906061547826296219999705378768940534082860818316775777286166306190850085330769653163465946091355750619247925836361029276637530021379893020104323823405937134647939627509822859913676492112758165225016943912396637928884178422328909073889415932177063154128674901547032578242855491152299187875432667286867927596346023858725644733925842581526612324526731148385728913314329718393760376707511817438540836316289668125122423812740575487583431583895378925409550132286920420121649487664357649273821497521367893546666642496070644294998925423035778308331505251047761374182420491961555925267173221581461867039066568357858854123513676735274445754748069381434553440929893592344614360544337235200429193066181244166467806811837934775942156914654856933436242911021598671689480333004346217403036949043042346055479273462223086297366217806197846943227175729564210679536362687236696435034646765469729561027246946126338244876197955465983755173522239828165300345565212668315063658537761019138232466911379315882194185987320309589090978522549452552046849687091436193891631665020949580724445824846339931207419263786793822037548762913842975558187662400479883276536279029893417266835901208712599179502254530262162997051283583016750883014557880538258492216033657622796514289554491549318223671873910965541226727971190848408341794941227104223644722451776576614140618948991351680857468599107731433087792110518141168409134332273557750308168520613249381846186260683057342583739902640592577265175047047854172715783200955324451067455996921538479750983239637266698322610298567273059577853031063707781744321476554730581565674501446837856688186703468894850450931166546637406618303908367304577938728303313745766605821922132379693565583237413151154607592345520101435085138097826934294705620555756371297527678740574773475961114427332945341437994357829342759397024823748820410824017273668603150707539664965424571860199501324731458261068488597629520051209183466091113378409252696520200595750333178776715424107881005720127987396294624317762883286146781755592520991169354933945301802536329162699560079397099274686911637004854051792903233660225132299125901399483692346237166406295410621125347753955158731328389836697233711039219679564562214065092431395787984491407828149550003757735059533280646475756474858854671462622445765223832540609845416601552709110217992862445227134275607420747253341158902960496289746942904098509815295198195650943831043551588757568463164356044803498284149248515673888959584750910358455305504065936610386425336573315278588581649013173256272516226599139353047158312624430585585889555797252461610358226823404774165141669048490805321473845918977790894167592729050000012917110009099548179679492248289582577106515834039280078633160813399859901204985537130884673383710511461522314947026757301867306104751709275582510531095105931848475884040027054486479436613308037335960536455851829689352549328811789253304258061469261464088634534667608517503431653308339495121981410613524818420259377537668068737151922776276079375069683851107398884813847440389412597395839266502228828315993088067347474115151210752645312907193139030740319779487454604238209935438820358315777750054400807585519654161836244511369694355583661657705142966786071749907514997580140149625836252424698686274432646924667208726560159548675217073816078926288169707563635940646371088284138680227045823055579405977717819701108682954529229446274890365601399357490652354323992905964881273681802470227588013251660920739677434896842239366245435967424974252391674649685513018268427614466031734749172025779737429731727844268096063721103089177659514090284898056337470218088725098039561496093822103832188011171207060306137164293019062823775126100960191023296169540103179737590682096255324705601799148225685278983562031519729932023819416942904010247309069425196260961675002807697386265902322368559473546270053853930461531553995151250541494752169652594806345692855597806712954614658960469977619801758632690841204844418626658924474388193582110417945973488737290309068215100827077565391901346041223341230549963500703103396092197050945900790746427129352405466312062144658231642051825944923500123213451362109706543299598730061273095702376482223428545117181504403776075349544823674968080582227332516581116704572719209406302531393684806241862221699872834140218089277641676388387193628297474720567679089287445297628222344074367522796835125496673044728398626480286627253977150653147823714971966132715270007923041990104936197076195459032984752033383657988044742788172193775532417440661971500141203285176920508774158720221341203153340732520102149737166862701332884743915393945458064596732713248558977645710494979704901106694963150291041942082011057032785674466700584099368675654287092411011859933245663255025828891777133936786845591805959579460032808753846320900209710647540611762764157684488852452539180953372443678993122495269301473719803200077870274873277103970751005064384505374442367585426999333959033642005736167654073984655056699640827289664273630483329955782586116560867025519619225141198553929382992151209096910826338892621152621107678656500779094414201981215540227840286522831493239654593613896787983928892672396425545133620611305764262145753335738833653371650602954788729977660734681267328851984348197539872115875474124443035074089794561672689598489603840052308068282762339986645699416238785984957983727512242672924753956114600702963882178209290250765425765351190232422076594517503478860180073730636397952151913068804840623098159631415101513806119629813178434205342689784279445222067772971687740841985603094569313360175500381842947206858711610461688822380320401055769669926713682439477088948138966366508851422650661721921363027334009632504681344024562549020013904339414645502193818907107800396787204205304297797860679099120978278188146241158234111969578414689122247496603304340521133531489620979331607882832060253840451574679212591291667606802455790431211696492922276883053178829707586566807872748055551442048030051051419801407345550845892560679941792551588355638931991724197093709735434476574220823861421797172192324775915116072047024067828793492345208334528236235239944655343771850575978334953618875715843738715840515539268678256184826989911238877171495595425572014188832896206817068789604465796284608166534347281125981643316176635802900908155848769783768947997503600533276355805111878291409163822833996712024794276887060570289674741021055896021445738303807758337610964027853365678099629600114843469062469214648692765861656556306772667692431734185483504926494435570784937323352546502394323184610045555482697864382803246490633929292953137800117850508007813265903287475748878137513728723039968291615513961689566104445899145872344289219319983593828708379807305496232675728973928543878047765348710822165402596132877345644090500463190405683081824818050094216369934557611257692181313271885023464369826461013292547355066113245552086280714079650096290277658317522291523904811234347302074494087839571229004725709569061989104721277359142977320327280370091892891469347151215494129512219814959508938298334318092480619439941296947365787068671197988949497156786822721195735061864474099808862265650252914483964417580283478520945964337520054628344907209508125153098991190767292432033742228365149676453140627579391759115411740297835314536460353678796460601828747887586726001595082821980936952796980440474617362351873238471171823076235667908311720754341283297145807225491014960307742330896958586131802755053949717697691308901450101497285323938452578564448895684829728800064830042147441876326005139827164607476064201553212202461734436251837625469090160844030012501760917534233074094553928304625833600712386251658305091217325167151289146223508608823408673154074556198710983276126475161091232853190816971467172726417636795158763723230596710796124892810559500387768413459787518440777262607033400585112372060688915438297802631698452962422181119241569416047788642862813776653555045879357880088187240337048171872302481852450600829999459042507972195121654283643078737020905844224366233091083358728906900920667236796021660518354142857776652098573066168160001444065697497919239806061841779054174099949728434752293502129294032228163855596146311168266799352862240169937917465638883058850863757662493228249173896751356389826874602072981134160979845066158613450514454522921071497067609505233963969509976495379041599470361436592378201134068929191706505908367338867415419090534755369608402026993361218896471379988567485715031287452584964930480406021301615947344010431409553109130244596667822935050791568033081893792716348493092321117240072916663905182419721741878072384208261695118909872320881125589128514965473410344823479622484566072102272248377894622555396551964739058098482452501118028573993633096853570531316246005529550246570342721207353207381833503101558515137341873341627180459263515515705737836476964793036235768691382957667599642186160794318124436879616156624033074016314716873556312261420219225306787220416138366744924511584846561303815054623635140751879756466332415012614611599174414526818251983779631175275599479216576793580437055487202280526754917225127935825493425127278235477296698217903540644129470182038217496682412355133133648915180488346173649932163155793409641537048930293990983091528154257085640008066847473654588862476895205495740235827468684606455053587632596701507381469299080089187183396843001240728803766871999084266966093681852714771082059220841056580009483513627353778983345925047343696192684551490101115642566343913163246683565718088500914651087934070599924655903248591992818920510886973421373555784809892081416967903758612582539016977432095105731169043707615631141688881006723244877347611627737955046845715355268592540912330118393366255804494946786237148996546410718247125716083235941472662217066661024687229853711041306413185195971902971867184808016862365090436537979018816781273800774683255959309174820329074968965723360617940251269920293092397130245265061751365923021160955578257570080240734152253517611494673690084632627642675308868419429918160550365626682361813935172154822526456156832773930508657910456722852193825930737889290334244539117376086088636784490340557090226998536494310994120957949415556475987328089950580585694685296006247216983582918561409069061731750465764485537579175059963383277142786244158720010428618681766955328793363388075359573102026291945461602181411038468060649432241656000113774369307630975552973235246916210617474195297181895779721954190361476178729749560479668869365893537066569885191553521238790605509390243746380244442080194835771352081581484775859761294717898321766318768676751540540914031934065203928335095152236470646296657030487226524013183178218997672266160710806801502316660519374245960830636683817350667310638568965173517799522341443374834191252212646478135118772236885008149098516246542848473863575212417399602631783163357790976325895872336507697853091993724631097528899452526610457533091784729713902653140225251240177498558991597981004832611585130181340079382154297295796981938425319944208868133704754192393783469120263368428548612517041536143018297553152859698525240772032540611415504724857068711476537203437558853498677168289648860270662589729606437988956898642852460037447665996686558031141054423016471658604808453842704712195111812137667879670430663406639140482881834038942885390227230040530047953493557009672639384354485730127297466044387376185861673840085927781125083417016159759881958808975433054488480158837665348391033020789853408636081447874429548258791932875592583558563610980835840363159023680724281608389317882692021510918448713593142936634505778561062597996166497217503628684463236887007572731721465526312376305250349917412751597883153707724979075670535740292282891882410981848304652957539030009946850327434871575582544096914033479864962088977194839411308935697748706484350002012329669782170011447894975438685737755850125317127731423891602185396345604660717187926511272335240841142755861636452243669813901762330490103615635714247988800415346620458630745249713435654600298817334271377786061181813422049469131102512864112559283149931227043863189190572934902453484591985033728753722053661272068113159599621898304222816406489136202307015701846703835780702993037617253792817809086227392256421361231448518342341102505752551770416023834771266892022854380267430426212406925691945350170682202721540094599255014100973306780623060347687884765337041449524165039450412790052179899445321969392505264485565011052192780825687546355571984182207889125681017853579868458773588010338966426859141404229397874686949049698721567363509914725014114612761341579161744456852178628605039085577394391698283612823049702829823789479954133083279192897418218960187235448593116125536982962985234626983432427038212807066269527300044548585915670706285720159507346691102848452942286732332723383593693553513536413684700732948262261886223603502006316624062632636287148936859363444681260388402998167438467984228042786514883300507016981294032450426976325231175893664025473472855639722730806579582932091903403506539562775372294075114206261581434295496422509493306731084076942946923810119284376704530897884133387875499987177580863834432336759087828854123801995172666811695129996007715216487977277752346001960442422676857444558411721976291604995781868250835973171284950154789770246546284013833591129386824703570903236593342224096534737895937451043920697579331901293871985514877178287672173777475067102961509897050204378686083897830986073205194345120709191478399784899604608181998654864009967411261174634078790016547327814145465525384894478818846654292480054181847629013433036454650846103045424051396299336918060100166765041637172889819369740097951168355206987295570339167381735521221801595955086645267746818033888827207343602113193554516515213106080236484370978605678287118283943800004724505175530287479966041947336530120254144698102834934143792151119380597409857168906281722425200957623635824985237552918372932227483907044754285327069273144541483914844922169819079295048912981984416105249085363093545287116783424876967241448325309803203816188976352309751961530702412077938892005726889049339783720190792722974373675840669961604132817106248424879607829877510907116755688965487980510719427316613714328909601844978701520329866756196529626390903169745443851513908381993182287487928140725141566152877846040453848502992722781114306308182620718752255595804905375480257080088702367955265858273193734505470338123564765991836272928648681606810893438825652601027705816256307519498819061392906853648644871587596857727311744532676901081732117427769414459107124850426407535078503885230613921530746842455484859864341376429762176649327790068697255461539804248020285844962072842013920448208246452491220293917501058717328082610175683530542428577845334504309707054627219149373644390600780180849586388276636191714365336094441407098416710963616609729131099654602338453792898873142968621593471187265860465096566777948210343247068310085684741657014811075709189686720329077233772715981110346115487645507594715350647379099941289057304848264308128479007729399007787822174751133987715715019241282231125952314640031849048061574127580254824547170207466464740879267222277851287282618538267913765712604982598560747007935610343917220826283987735728253309763355987744220034134641348441487936269993447243983915529476877315295707951950529256628087056048238063667324483698859457185858185340322788146743139082998361405875802555170418766242991258967183362885187966299728175586309570416075999943703862912587385975329500171587038050083099519160739293686699848402836975167592981318389896360312065837287603851075054060049105675137657323885975586257930460942235861642740852087292914668903799127766831807665610582606500875169494625053827559379025244760977543830743041878357890044462255728787997072579843707348755856128175624476330146928596679246731335908877289919768262725004421869613170016564610925386188957494121898528517111015426389617067724779268758358372539316817470244553767683629926266593515445214860610832888372628015667627294546035049495854507389542252192604568629384053428083594437500539494825429416704260844972466370180131601243632824640040047216952683652603013816625268903120378006850598821949655470398611178561982959675156968129565242561933180902910593728383947960145715342118560443362829315406657469133706168884796199367154048868518114871869884298938880874771623767965388452101168354075315219745435730756879680289356283329258099645435230498686075175824008574095609204125468973610077850667455688959629766453863479990444431478094020872329923353372334339114118232468980196018037250708142240109257972614464138106867018972942999855663146670059811909806369421232408112796674631354835046570380934333559824063805088703354908637545779839571421182952984427601674721062581992550460644598375306769770338321280665491056502626147970740031967044452349150825835304671588791425362912803053089253119889140884841052194384438894999632721126563904468213226445242726545538158157333691120214669533540651488715875260902359953592479866586287339661903928362668215378029817659193059190166830167949216795711470359959627360068711416954689003775613784674464397222053445153550854043069527146695585050003952753222893939547907707493189922296393952189635262873835730384636897889798189494651800666260285783200800839558698252612453888702266073189170625352672643057548329609004168129945202537929898608018398864569397155211813337135755039302611184834858730868974675530993466706406238777059572235379974667416300051483639325148355426031897991423439147094226034772747608075317767072991944461114415392762052618909401563002395310941526938448384303777144680346525038466904893044616335598541674876484098727752285410153137470343440766316529194078150853622394579250263073443972098103038737697675557964092050778291580486341337644795248010132015934818094712313137476145101593541722302129857206684170077165470191650302621634702123973784582273650213736589734219051910910928182477738935973751408599412457352508771535416975403141110035916097448660842784459047144327057826127398893497548416935777474740131886953958625702534798379518297168884154579877475411025597139708129972226843332978617715976020193840510026833058101211922524721776010484850605211674458595551164681613590416394113802694759098733727322270756786908146356948725385727576707795136397774887976243454741596200923952502286068579916722339122825351295899505966374145610980504319278440908103101422161873293836934420563011718834295840820480899691453652894433900738198832833488881540320509098524304474664948946474069039981338285288564297861605445655890514344206113613598076031394491795310701066068515863707019242936949674759426916059581024788736334452359519340180513097145758469917454977869155977681335217200226194962104883405713409398173659840960612502095883059639808071975768455697559790987958108445888255456468928366787506995576822812992151788501169954208202558000223788243239598508182430635785628767507274815347416166124991580807026896889145098231579935259943781174812373865677012254767415705948142398053047392798711112816713747597365770062240512495738305064884544704720628246491792869675178862095734732619613976353244668635224024890834265388038343004978422886533612099260115646065777599215464806456698605760798542477006582560067502609707163597500721517610647371953067617076384764710102886604932148567490144787302733101047085703891410533996342290648006517204852508153228690781509818044575815281151087183852699061855429635618079241226990191303086564021798962798909942750761096766981755995658850805258296236355772992778706159468836285508781376730739798437087266989280543777879389963979386284020651949388072277420228662695539431015132683460771409581205806708614235185044226933855953012309684389170086352615992258194190642309342408059718066021220468637419727328933410662302439542840863003281948240737830309574030420260975450336837965350494957961439279177834243238613152663038559843759019509780479652361080932736136956056129840373935930674628468310018078094788700093157941167323173393030310134045618399940094645904853573207610691470548783725390521651202084220482770191201188703922278501246398689916612197279214122740711715928751004998676575250297799560230482008924189408146529106186036264749035060679197249767733671984289646530747172026642422782639745057917390667613262117622933114121856457625492573913885423094335159061105732494952929823994603227471426396369814958391922493695137663215107589771588689496764893833676512335748726133614920912340364019835577037647469888194118313496486260600548781454914296982170087959307809474321508860069541923577195459280412110556674960330937959738938598955209169108063608119157811514187443649229507881805965678982854511272536367570018915046521712023244633296200918388293680589514541175896144116731699252857573975960408712297399149517916441399139076420363142972959956901919295218651367370180657255663012129396240194550724269099821018011442299548022314314981237911548740595947242137102211559325554334736899043080570814925934164035055678005283683911105631388454028849707278599348033353416890259057135054214230260277128446644345458127218649061040150045783039653149757905450168952578477992893626826379269650779224936810076551838426899977071332285107984643788998903631615049129896656734489487590180565055702192307896650645284091814779880138234139251419260247757103972871128367272092826774522466830830278692275653577610501729557584148195649345772642325446752966166364490497373741395138961924669605428950696080440156936339884480701467721837669194424363904200190344022136963455922018798712284817101203369862568590543940260235962689155099776013689365448740669750661871915142640228089509194195514586033009525842587665131443020193831074500373615706091523264242449306810910453995730724711151492392476215646657031168854769282698816102409670392557783457305823148159166276818733484285592389115089132925761466235426019256171518490149040759928285820254982260042421184673987430071801263725683029858894286378296040829736729579371112926664879950118258391145141976873078955298346535857086434227764849829720219190682167082019825966474908790270027208649481964015846390993992888345629001458915966778539361767324632864007808017608525779663385734376276744325486999300562593163468525895197494746974009620262932832527563949089549578315670081755948242212554832833049405346217690195633545722762540214009893253770921425619605667331099337398008314361380346565354602250941539268776838918202719601517130182633854021613538531472668152184784646238083512629241673396477995699656758809527607003835344982404084304770205871715284615025359081386151912500872036227978858709592664694887812429413104884832448084154183466717214477422949141552819870458993281978723044107888812638105263029130529528265184634973328708578177971822110949767881671879262613558252015860742516379330697937686089014388405127902284485463741584217858891016739010136152895758790441311299114232592104335675365957283232392364292581693732134064603139061930464119576194332033198153536116586501302843589865323346189098873391249528652066346370223318628058323480095703175399188723817727624717004170757259444651619295686382907881418266712958060765255192793587117123185629196970903283776898577580680540473564356237462422218762923007779758735011965775148032720542606006542161911865394915726662983787014599407036955495154401265646312152951174115071046833345188933932015906030998784101435500492695275060453849653140747171401348137671388742557505280649914812487967243403000610575730489257657006354168028381172682411381096236320685825085858750600109495301204341110284995578808826856489376206866262387376008262314666440633767339492331322260396272134786289255457622266270855403659083662198214697757326513278240822608591892132124485973435113405655892388837066611398437100986236108871272790798209867999334711166936567122477518980245778268455914567656246929542133892764208868011730249090345685383709896360691307163210479014033432014551426529032260503818383032927594556581405038517830850269836871517666525104854818835051604297109990985600904062847870943943485921046594989166089854498557442483226052941537589884716996699519938306444990413222648726059921957841501243977316307582841874447291176188663014931387239344056533817336106655373332856625428232274725276982719034270489573251042736240713772861022335071186052160856760170470545536144036769555791326415686330877703396118020016613155144238563450769544371240329878217433748413727361582147026825837092277363183923659915934413252658640416814839873710683961618558206504944045766680330695392598311613501066398887240995314088128135895401620732839694987054586347735048515801585029134606535267330067516661201109778979901180901968191737840234417149448879905856332011797763654056512735789351971859918152166349446730379475173800891803050626013230310581398524491213780251538153545644038118470809015389814347771399021851574870664564894151221191244219293056228467901751320412451403368210233347025789388498332165848454823428060977050004149536832178660950992081917577145220331570884642379212172689964561742659453617192111766805660287034923201708776106932045248907828987502993211554822333668660056735341659303851798312477238462185608943362008334557217305167449678163527713486629461775412259522640508871054149369961486326949476365219585109110635549245251713670121340982623503738142783112582498458488571227260333646215826604755731855067348207639881873344320381071414865151003323203408515284889090941550541876497394340018752101925231687390714792162146300550630812081236505296124441662939336975107682161024486871690126919493340424245433817754050588645765766911376596406253099141172689242635524673260721483782120118248297700932576581196335639337293408472990948894618139261584504973710708723459732756099635186868900760070800570823502088757812445105012320764704768101167952550577166538744933193550140757235863021268522014448086080444522162490881330648474333942352232339741309057387580523186258687073514464220989740164821788830002615212698478803273352842621747260929368504785254131082118828698373234685979960512673882174211327242610845373233406968421217073303884733461691383278389724430755590005277380742631268608262646291590642092856995855407837581451125194075821970103627713074423249128919367026731079026073395349298115322527867563859562430152781759932399686464049239019054123885971330353888617635663787821376109966330602754180880659947529578238932801459249705737946241441324828746170422289425244310971590536890234414730358753063495984474527043397405484052888495839668471677925845819859902912301892054422728699586830915416910538477428193107741870848429773619972137252556058645053986071657210571707116259288014799557650664518819206209434687317032226462966533933599629201816001189612359945864490310048233075725642540335325872590845426126865985559846221801212449793489552387518476203977126772203530814171945848593761205601950028728466525478861520149116045581950002147343032944845705088065767530544360677547892180599235614090443148401516496246079660940448182290015510143099118066832693374719642912554609330768264372537498206279170335070875541081992944674692483502036950198743243498036444662477659760711869946963266591613566899658241051496667843232125312547346015796773099520287574559906022806027695722409501096667680485343413741139981595435666625723879741164967939306611092560907505342796255044558885862565815821268557972559652710270436873667551076432734015081764458145982038188809618186909281969109153544728000078157099387962987543438975220900444670996858355891517132454020629411473146026740454913263044212993945301455246068517082435669283766749224200246755261634271181326517830427007697768541587365453609306485022086287473529280911833707362273152207859671683488836784736033575784823800285596522861693369690964177605554147407318161744787649373899487910228088410181348569400809723844444225523433058848322476098051875218496147492344641799998572316126875356402218718144837807792482543722565061856766927186710210982181196453077395328863228543742689792324256738261327828559929899796635552200895700065248721912681416140226613185664556578102348088827842449963231298073884755466286128851881363865336905713928786512588151414123568516795677380340195215449004408709750035695200561173163035592796911473566637681028920141665930621694310275145355473829937719735428539935392521336890547374555974825498213426989476877199124006117747342482721707498002873334518328681527919110964298533798704301619046128418498073900517036678170728484027928763107519767284014004866361775063548398315887797045493607881258233130775332739061284714239148117779028639291614540247425377765610222866320461434372404238255268757309094482076746701233451384819188928570424835231017338350796412870057323042078959778791246919970791741434371574396420665394698714879745485701168748210415239014672254015322303714290387073914064301339887952651285473300235974827039988503992077004147802241371969622364278515033560602410473620822354208263007955618180095571349184994725990395770051563070415901325654209900672240280833431265440412040950220476881879426646221959942783992842898135530677824323655920134088453398917446552908215080455293815216183570585223952156317639461674277829073648283787565021202186010037234604127918568310824972566404982418586941800660574268576774017186447291232980806936085662202607926100628094986195842979662031175839057360321537693208524715243169113553759153130146162714369395964391672195212388239831966916131533781785723599662259873781920137988839215761147737489300041377020654136898792869941417292519095476987318264887731343651792403118648225189037070668657064991484867122219882277241657453836655509809513411271307149925275560480917808046886831513444298233460174472877077426301358590157359614491195496173552500642759576967476054536166044338320023726246896812856985873375113814637019260345635845716454398867213168586219311793285459909098191366481807880898062814346561524489831258663569739809462242734224661173331641215315365710566045956293174675776555837660559603428534759347299729744436157251003195525163321101133403028450980697448585198907284798334528684093269985702004846152177571848670858850369484178132391350009476231855907482563321571979539901078176656841028031904021144842339360952717743528918646910054300798454685650108841263062336298756111178555266871739685643776590911277873376368517968167987191593411081988086831541143941394416667355019210479987218765514005749059363854666411143794900349123261510033573963039733557193806382729411486340494116959176610157507363306298232408615983962585976158424947268211914555727604178908955655561516464742332996583858662612878584835188653337860467109448602932651135153642850301037542995679954779325506102609375454781139285565024749235537533667169266924738567831286359562037875053809998820423265641636597962338432700715916863961582349804952747300697352225201069844033321371153619325317624193844467896696103962247761779037913419590642572733528304584236611320440350294548112264076277299913939174889814146503119688440151177485380562593648483290166919367485107537510364065429639975696074875409154685585827070149945545948239792516922562097350742377310130772014727638368005232305860915521670624061616583035483945854892655335324810886978644123363054880130337215693734869419262327617003538751199878779289165991573314234777565372183825588875949450338245445572778756472199413864953071168520043835616333344662188524574428256619109390399694322608822661176486483183871087912272755893639351778376078127813521775795023253782146921524470843550142251486890666097353533794069062776475123144437893338878777216474039084898496877727177623776952752549298775853707827813220381759050000686531700574852790004964292587084393482784739504791560301964974766750484343115466472699527198898388316961057011019133017547310318187333155847366114154168584291705581395796063408568316403281917305770443920894096309857826841955276712583909430029070480300573100013762741359820787291353534626999629798641367974749692670236761450396421591690239623079884254048023816711549010994717013047961973781011615144061744127454752564022401799316056899946984909758623676509196097435575441741499994434760397724414272207579567883508847624981628869950860847245027986114021701288514259889674256695560416023147836665105048926372050244636542550464561636090628471096076117376920543369343421842381735243119156366917484833676720347608013828612231976813974551968456498355352380829877141112095879085925293421301230188356096911589720302549300194902537450079174830271702259659813674339050821364897111061990877342509510918589950846728704297642964285660276263337493798935959568278291077974735474381765535694794166825571184875227311302367515427746430524128531656259807341292123157772431734634628950781483989578809943004058480368886605054138382756148387853598632746117162135041175544902595092227094563721955424749900281656389702880688618667013475373907735285344841302394525324539792412106072244207495031457226008024831250343536619760279975113627253976153502253814429186896070016941752316878299659572891670691401273784468686873985746137042558225663392896564806798178622610837100829689537618574538653685100686979859698365747262321544723503969217149219662138497837674916850334141109249414902637425448145316335790894074383929357859092100289062711450130618249143910287718007102530071463228950094635013010065286485759908962359440492386967567809614065176269120002219250082857494778346006235596277485251743866329287833290449594257402743422250574462970418128221073644766879237305324909046271512733306161518217742252088944339320103792932872546229354556546857465872531916454921944576408577692404670513030091714766844200676976879272255881330667286908191911120652473758761445500876471186410242092093422887467357794958710280418694365736820628267909216354415172765054000788425228158137834803139058533122494510006067807194085331209093844953488051146748339617206557759739228176009771925677922329725538837100071819618326110959180026515830254821475153164036841376784771641936082698124702339724429094539659424106193366404978899993983917217574191893298189426758431721190232767240133073971566008264648289910307885379692651109130533719069529284372705522237900730770866515272180171528263243055196150698692045401064202784519401693253992329265483137779361244185231004309000324215274029087359821793629385081117574258528952180813189881234598502188396391727186440800584009077049525257435602689800742711153854815604990028829271628199290124929676546519526851527866758213014630796448121784232642321869112456063430651892116068204256623460267027737173222251155709846153556154719291869128702528857211954947475207871838358875232510283044626034010045308987379910464045679422194714448410744582699411010748049016674881419711953651759317822467726574057981978772590325617947849898137963307955731707650895541334396160096993398444029441820607668205454647141619391631933953579423101641205414951948064718343412079876657991437278011260013413031569671257534515817321909210769622839329574618967216300757639960040597443123317812181622393145396141004824296988201471252165277088599949660368841861753295346004096333378278068129217980153566053101680526175387833013764863038721629635783610224615265222390411751111070372152380907012259828542192627785838726482285060796643477421988905733579957475246949424257016905106554292904416603745409072135394767388442937206032472358619553089155083937196074983853251737333513090079803649770216317889018138234828495880339377833897092503224013857924940322168448013627895395359778705927218271074904640800449287031135871595399688423403912463875912545909034261816170293865631592045645265043393335106207944901783085277439228264478501135353032214217632793915136578344880551580365882444228523637353381350201667705002791640425501734203778265946703135500358416206373253112368742538929046055313766380357731317920129854584448123015717574699218206730382216410743727790430562795551626503686621755238845537147218033229287416518283624860266492904591634986741484777835399105596288391521637987691177189852613489898157017758037106726091792146743964699192802348845849258425541671717363779996145632184786182870022918053832246307042823679359658995372018654683598974515922945733916834597576371840537722042972603157699852562120515140284003180594039725493263341987538203844339464632076219898721025950915700681215492806018810905196098734111633787860616288771563869734018945232848311839675841794862274640648237466279609136869602326623543353756718621151307361294570369479889618734706890517452259527438663516745040477720830786994181439326996528552852226314713218721359910546366421676392944348081702474318778843777544025063711418773603196416379057101162590228745409005208819376288599665293224038099266059755115775036713625082977361494402280517467263562231073792005206002068829222361381529969866862024222035990076416496413840777378571673674083258508167784915983074321483095470850051503682999771656733518621478603787182182988745499279968854504080327355244904620762649349899191661092814886643420555232846698024282296315668054283600832924034583414054965183407036289515920921838610937081229897077665121249731244152763574181011070614436764954697815260200630711515334876287452920594179559683738341947915930390622714192938697777723968367030838605165762872317930537171869533248628247346420311860739342261762741396868951632345325543953971716389977765355383177925952174796018511787895028651508362369465516926284782180321487519808801182135762477776742399578257557264569305554383904566795633808384681767457145224535256832301842480158383504897655087848298449036884207659728265937691683792110139715771632265089847464461913399082215353863730216100418502095849730474089854207502423967492946187646465271551351216038258978410652983656229465326930518096132489212561559271426304213290274978188983287201857808951180891168831215740634740072094876133708053959116468598137849674051059167281825106575003151238720442038375958876424715276855487219586699468518481974123606271160151003440062871092856976062760875741491501992463784477985231518846057860195637466239034816801111849435632677732928309207453806048567135349649722112791049935775000880682803900367692399094935123144539450069713820425845448827891545479332932949265479816555555947749655645487009071682673534459369043191612307414756464667584911987340705854998867830331009477537432204652366891501067460064355359419675240842273920626514178309221779261960710433601913187916666629123374268418588584433085660070631139870320377002050163493155772918898550121159562324778173163204450508103896927510226382661211938045163109229398398666689002267153072997618057181425719039551269735449624417672952355528153453624104565363186786297827004314304650821385618057387363405459115005150733606281694336740674019233838976171458534711945612151019849467806062321514431778070463888141150813030249269315714662299859796259195390132007004852755188091058987442338009097366623865669400119859366146056571136354789640863179240224050149418210560499764667418382340005425900876373776416825021476685732214981899541357575725713634825859080241733236355759684904925893239503247324905860166620177832047441054359149204816727898646760499790420689955523501341136689743423322729949899834113568756829271122930390522935182284523359167177977845119080899527646013657023320216932927961210809420062496618002106144886221060441355710001753300029545541961257961089402581711506562583129900596939975082593426388284603134352932349407135814699669489075854532665921333272020963251984363874443318712547610413855570784154395311733826989982686375804857165497558735055018420685011741926172692357686629474233710490136975741295564132188519688600223018915434391014529580129527331356549822085426076274585030601986473620212245507864267627101819534633001757755766274837898309713255311438034678223089862655722195139052539559817481402424171300616770873819138211214766225951310076250386145706152681254045468929703839776231446779191502027975108667597168937355462191557339403311267631434335133549061244973920007978933213526604318032514409088702904041708585761595545982216134717108168599121645522022890058729725961714105484915798797914067996624161459934696486465214025619440906863267757596656307679764355182471919531208527044697136981358261386089011206066341672671119973139159976528926687514318179708784137416799514710530904053277510028029152071518171209920898675022466712883445037763875391072541837755223763151243032863046734853672075198422464183118425731208024807379299973674226774226373830579391953322697980109921205907661100332870043978100939333392951212571699811208037667046236252387881614277509232473192171895191396812629546660771644325106818105754105493356711005379585556034023279999394352073384981597583013858237721539684283172989035075907305899667117887320149256605912127353141160991189630543216787003112104148314108725150836326509211861618583572037108606460200368299717970716934422171035972427309793215865473244961452353232342878570526093994759381365129210285180888050969924037955323355699597885642953359366183611924752740099347107606403394524517473370838366291003863696446280273440473145003796930235459875162076918716122611786036932202416918234813505908205677900730215311736882825394672280828866184240630325297428054963342138466847603681411657219210082317379749357540221199515544947053973076387732942034975280192315333232160896224200544604438921004600064998936829566932165717997670737966145678553494730038642589961483056745758595152394978514267175054100348769400940639530225956889957044051602353668428607693767017768585111433681769338534626517992139076000316341357912720841951506461507232521876793552653973135031477254942763752076609818391028800456333696163563963071273040164750397646133499291952905839126137388594815669113379183034728942372666735924181343570480281454811391455082856132472524577484103968729257558898730973029541041096561989542448242725136686882712030271549847128086212811400378809997451887027433698399643728366458430865827831617949294020982148832956302428627665399390122651767820705113996088174860098347668789372417197208470268947328617590559003011166590241667046450131108247174196551901382564722530092864684151615687781169444599436856738071941337510135186059461508496833338726590743283390894284680985444352511414762186326353738300555897110784332117377190630044339616837428419799212196091066052791803074629271108029365528781100988387912952666613145354043668969803744013455368021511049169439759886642359927761584073277500046555614174390600327735307466804238211148378311175515306873649213687790554298927688980496238317516161532764516695849149784915820593939303790889885571054366227752102185102644335341559856901471145014249044673588575312372175507305328855859307508253262338389037192898081217652404372322339852662281584849551574597801353500529505435793065653310056210811289894394745553641748840362765205075075262862302914167908097132750862349497631650162630949788026267509825742361191910387473083808254111287422769119278824127040038182009391713450260942199630437839098690642656074561080594891041633603829882225885461460241278984971766395698578524444404902826680211994248025835582178217902948783973185577711268088369581167958416577933825857827904273397219875873968946100886135889809349763340985284417725471762044626541835685613808611772228809480407387922628724159840972534806077179947500031404154149674915798380841969081710492110076541104377579791623596878420551028175881879533744240808881566143614747597433677660754090502949653720029928119684061155319660251749217658737549303630065669385491504405584006707869833099845632612672939473010248456348546935031548956260553395557760780329735108200474703804733766357672670405539009334020003917920546409008488740331154026530463314853930415652335255271856946661637476701702849818797531680280668403841864984463978904219859714899094470710180117470882497590435976326539717216811137847489799952842926525538212988394350789879340078334989748962704488053930696772960334676264667857771522141778181421071121908455192721488045211291140905342391268964971424958123642931050948578520502226392798269010083696843689329715247367874274141646896824531594859747623786412992232773974776935775265711196796231708800866580610111249886406163699578566397216689946357049116468716172083647539578884772862045050966280821245726334687354950912305907291504321747016058317343109744907383762049087581590781688622031152532301848170616838719609415981812206199425989955567406336681684882280149604401258908050100875820106021458015115687790588548349791327526112646212101681683279990524919830609675805670385916837965251783321333164273442516632318063701241937320850684421605845142410074867771414508336573549367422872861397941306818065454474825314070289056596907764663548616796818609050710913322314247260857871837508181524592128126051097910586248066405328268573658093836845960376087671642554823711354430993861823898738768221651658788400347445719553166916452350923648062422564583013868045946819679325461747352271066089936354546122230084949243737020917420610495290973750443163068413821375355859381263174108497507690958454162094518376774639860721145504494915254119935778663887506081153809282550847941003825478169372616786471619219174754548859709850693667936534061497519499436694311771771226739206380493761499342247706876911102577997244932930057004543063609988469860007975189880945271657306334605451875644129713206476509653759200353153594999156455403106951088981190466967163650614927411930831915126467315410618151389595746836014116628086939734594673804514986039012760038526763288514199060411668585981662029923630969509310550523084166205678929505417003991407146502741090661035923832612830083417399878429009761709175766402965835549931657294841897627334965284088720374610204915163881163967655807473441527906316461501994607268723328325968772235951283401803456535873497506518390553814889936590912648265255265388587898932347341350651626385914224283233762824464810227263715022086572189482593905922393942964045108762753913832693632344806882134634798200941915665823901844272125672223512226702276246114910874265854241042102600353803173128262261323097260774296175432650563330919287323081704731183621373656633396684516644602320784786299532633884546925080532147529163072763748417180327824890334557462361820361531760455255100332181622006353811478086349647386737104759019103137420861331665880145547395067055236119249989175634095786067502394828408186838644766470236241908953459113126678877353938776730199683335815415391469539604278299788472120836769893562777431076238130173869762617276002879753684884722990196628428414994701655402796952532303248879187616454326634498192127077510832662623545266162316223384783553815773074566346856257691018966138688425610160718937210258504450015308927843002695430134614625011554896421844353210383603024850821694616770774779808227442430841302578255321600980853689654965662870628494116702158285510152974768871943504233594986730289209893232682422142092693580936279494656658598235498002960137895671068092169629929510758446148853573903551585209645780254194735185451042977795926471817709704509721194904977943408330923923504395662999819867989819876263867611929647667546488378582190641617813111581328151859454703105953440153686146385971701579730066182610196896813899073691386791709031088119259708549192298756704403378723295548012493892662861403679274959701359671355413523101768553769871945362732803675855847829862943906847098567911720865459361116180895106325639204830128118582846674698869136479449660847100416827558211034552827409423271500614301538009728537069906446282080093878283029208752012897433901526463806037643161101812213083831611893203098869618244428562760924024738744243614037394403896778869733281623338186227746685782263573710169887924964161522828613898225464819999071187087453146169630627840153702117925740348225491094421866895545569429585978561241963305642340102829114782306045403460921745547604724436187073819222552224072876355219856711698891106356238996655466678145191114354144755504926635623832786251616214595468915671643869702142693504228611592915711209254003523770429392219664729601437184360685689876349123261947938979685273615738955642107842227400447706793670161402602795447571243416257231881850183257624564442960004189962379191762901119120525829188053780047504887830590797619301576520470123768309801728223197526022477514022147607151891258250590308547887510181948729039893616742845033128766375072116309783017997607849620209937939657019347535899863150718491720043979793382783751261193635264249353648079135599049831845200496131498757887748369096600764248210498133620804773457414539923697653331590040083102537764312651337269919101119527332460264367947826840367263467182033743462028601315429180003028493899150936909710481218898552432866611458998672537834219567118665152804016713986510616934176126644490411614537883452178658798785653961214714918063912964573776945478401906621221773317090409060865122146318998401316180351859341556036800437153193859031224053649465690786834912056014673290648190740580880451049996663726058567736643702107313925733890687510834518982394067454668861373091155147959658250216178338995214135117630532964979716672887489767999407855012575407750302745876497140825931779474733095261597731312567848413005760946745547009764378807270669281705882300694146441797646649551016956437460780589013353105450445591851302270224161416566176707687432039834940883814944612465495176728376008212025853276182272865151636774128425695085112318241967250599885852213328027703412262354450317276851217655685034125037625382954745282245474505543590773692500588404029063724443649490570332850891248488615480014110810950677147581421737104353866614293725965524430269962148202721543379471005777926389509428189281140275154754192791141485403846391237077216060337046032619488075632266062153049802521953872568765840932535649198957379889596014314331831514462493516051094722247431242124308185635189927322458774897271340138105427787226985684763537134388533871231170285210832568779286329291212696595051766833420288325342904304258659832101711419490823264971277713414529579708355060417041160211881772311589441907652159124191043349440108490033865700846584474085940346237228175820577714528683437019463069183640913740164774720891991147496013118314395516766215951199368145169056169277821513615654040280827576837958583533106335967348207083413479690438576838960530599132210723140837346048124157771283909644711710022750377404098541398271941938627184823074208942367322967802521873183225877664368127098233847871011892460346582831126669093672876191494534141963277887237628831560036703449978404787717116972555059617433826914985770191621465866608647895532031054811943643420147632865061646313657636517438619931665752998783161880745700002193750283062517770728785809746137829072213411225354518354880302913610022787253105312889712251225887343295528724553511424981940342302024774119723137888308143779231053842167237476263093714950401917493907740137458158337064430051422470272922535715281292361298018162601247511739782943684049664104394921159539060405561507493955534849274679563228633590411289749501913856267835254675097747722475520004005705636326220559799163845412767889752159751021976641254560751716366594722277630628690993622913984413900900470982678975781840158246805067757523098318034443512351165965171431752164381473193799975796689901472150978026976336655179806591603489179576289080789062678945015791249674106430461979952809827573630323947262836145816250427666758896159576826198112221090835573419324396898840799660642254900217091025740889664189059792348846745564746618907601030803012408540943768136323764522896143284983900904278172365597177133137388179704399796414485614841843684681630105911774271712736550271796620135782468002575713924736249953521173241186779282400559815231834191068539751494644743891913741901009414230079982613969519949743545798373437635625310951830623808277909982180078011219126485695238482633339184064557252235054241210584328054473351226292427841185198619971929550680652247185607853920379078368663988862612076315623707758476230218847957392647596298424684832649100993004685123098882941314710238314243906000689675176397009219178226513344672840088743785469797325288972728044837511963851704475345849737978712038793242675267563634157096534782888869041403640602874570549104745663568732586266487061978747020222947746156426745863976450687241432511134973935141591438243214071841012650896109376722092806486143637840157750378161195729556897484201369480106838114745937417003574492828646202518489079504163300048936960707584151147648696870416440753263557929729482523991154567362711200568147807593693018065969488098744401596772514897330722752576991716316849128359863711952418241767656240003315993654528924990223942527732754419648405350752280171577518687925786604099552434325150031683311440669866487134305686389799208748513319423186723197932414758009032952172479631200343349583427268791605554377468754457508062874945476876538782105792737049043951290147324358768177673771649617370453756658136314821177000049426597208115779854793454929765390337705988313061863726365656396068292022874852088395859624999947929758431432225234178334753643527457188142220542646101478497051267295825474618791864333849163267209235473953735843608026190627800813223430980963179188607485620757769029600114914809682389090068219531228655517130919282757816154336025454194485359164375982012082045945709922892484223302030712806911307576809012160200167424533054908781750611442029692012959932762977694939286394176449837593597622413945423328031288191376584869099835818805576801633759670354782499568006580584817417827201807910277777148224213690324878388775307263706340633857050598427152552371738128627413962222467507197125018402805652613214374056119291813396808956989944702990520802856312085563502413294253968919900195891285442465455933787954119452833392423762243663545690996164485043789877103332051788707228238217858632411971742027517198941662858694248149021657837549415357167975042096143100968860903447645953349212200462768335095654692753935919553077937121844756222123569536748059440626374833899567802700023850030337390850810435233270053862952007383140576029107449292366953343484170635160393045382031853140799295842281838272514011861565019441993356661345659124387566309811031486360062834884734605650586956466750904364469019173363505331120314969655777304341954561488700240256465023197914281557610952601052297024525604526274958497294849499076959524040440122269768785521974056099691627377937177405466254610762421966418475493613964382735659240041358663911923103807746190451458429995812491181605250152671918575788396109513517866611400296964469545376849000261753993270648160123917919443798787141550942467732887401904642464360528932542144761820653573218011729421257455021418518078008141299731324574524272388350483888864319851127537580215958551450364867781824168857099735856247583087068324496988320823960903711826523945842399484589905973900246225955406215430107909636742892680349730836062428141842308578899584424825667479711913132470740033465621865966952138533335569963874393335677958154575352978918007159942698423204137409488203217503428890045296397825895515021993467366020922748039078554329649000991867624219539131341483534608260364673889930255751241238247175749241186104277640847764109886004212876448369802865542489072912147588963245271025441126585888807733480583277271964228953083797313140419539612120866599737671462062813836942659495730070507705387441430003936462113531492974751143279815940327454846604762624961122058768979551855005047455674450332475170247878222042097081408222262336153628755979850912146706185528651218833954599559493154457696974473353591021444028951948651406372186518055109702029635293789415347059659142974239678078202991156865874478848543147978691696750711154417152310655539319580463676968297160686721008540049262234993307019222838460925156620802596303598636079556493881906832589805172616010560609500048975098300940817412363355643068786334576209640107538015957398818260453519964622418529247578121105505597852665001358025404580957958772254842144367131746319019403393296202898960797626831278583896221263117329683297815307264908062205587631374413542028341490488920016669514179525951508906374182478213373812405633871352132105939916896625073135743017885025034534919848707636030376916966876935110799797878370229574563494065173321670446003074370968096372148090831777913985536037108327160164104836637935473598350105085912644341286977779227270027045951868743831466434170837660075829653619840558002241226316228377142509803295914905763237224149518830526865767005810918104059114565831010871510369549311968708764095479459193219057180897514129708532523494689218488148996239570265790089779871739607011169099423541393286895229900132400392603756310279649104343193376396606488009316797820333612630085187841028449304234934834173357605568623623604469025726316344907377703882095493965578007286242733943166113030371773221522438648356847413926908010383845490782910041712575573411556074898765537535453051354780837782738092288968804690537973218543899839643231497061688475463476786279986131752888860815139163037325588793837894433388648410278932291257699748936011645138798267295169904451322095199214291389804936352766380314250875940608699068873038160876249201964594492230080261667243817229778453192950770736860852793686658579151783245325902502507150760815078487934226973060931864558634051534775466413816113217152786089912643139653216012929025449128493528001084456397850201623280721645546619931825839603955526381378041843050602858491138543508304302528716292771459185291265589581057297673035948681449047630352148480600179528534558031672852600899576947364686196663210184776556169210945128103280605377171887050417779979318699192419903805082844967338317416826833949634234735314398289026035717512593686114936221997485922378127471238299048036562137242911188642706708471899690115537595062575802508744097529973975262756816657970656167584305599208486462585394759534331542095929984988520710896471690852367364026815983681570276228235135036470587344311726634502152466743293751744184725837732285236615097964947639011927297876201305232005486395916291814532735808066735268149545987606663440562055769549804969713307735700596895809478557272621840943193565457239022060507032181088766091656380550525746631835545119455249346019084971036653586093635701201453830134881162045099734988898037795152113787241044852524402724559101077722760739035295621579859162553544031787396215230404607351654328791189933076329867439813705029973354714685484736401073083106854106036508666733388162064725379690040966150124048866185389394861926987291937902183425325587058162144431387395805927744972545312771409860401434431666984281942284152470612422486036306796038319369903986581557402015303322599956813338071422519771022397924713829478549915935399171412154858706469658392839844026511386937499666313674223735891138557589577291662749695636614414047062003794000834284018237485186994437597807587440058472749689257488818455073638519318186914002605865275314099749452413174998459371405967732724645724523509554181302587204156061984618059220225803462725425553250017347542797301421233367451245093697480388112175788749372155972472146062962938190181735835569542387944767689510584249816659389287605255712237588829457336920277808546896752118725762717340334618628728520092820958512437402847350768311742155391884943216527228370907401597964906179106464246682138881914601113066265047296690599531614352915381450388322634903941188457018182491340528731404177712051268189427613341248927475540828215547428296761304497700902048397663116501442953824500481762438384945148000704550575282003177528420611084901568203849829529017843443708390274986541705566979366163609335636914537258570551524824115960369947991776942396501501820162241379605978118534906901139244193318742266421451953831232457544963367563497669930476288133033609169899612733437882693961478236578225471912538090345126217503435366850652030815428356626870627306020082922921275458625684161376648677030647324829472213802128733383947199783729101081093499770760669339068414784911173827468559378610238195758153732643095136448028412506054965475089814211205993669098164431927108576964344446418705563769429254263357297331932520014439334585518484479910206491219364863582289565876814710260342663869793897992252550939428255352832423468562435763882648645419433827895041767389969549947621275462451206111967068410216535009253711691286298380858216187094961369618592626788346973437529409802738132837362565795138649389535187986776797996720841562957986799858540267549025787607137533258069099002446453227451413956937536555180381962677785571960046348451212253539891381226688098420204367793265631856329168678203391932008710488606963048822741709747069015397679744038827085359763876479239708432253603771263725880085240621536188524826851765075196944013793947616399411170540840148005162215355561341167745500774044854262291515605512004797619996870389492142841165450893137850792251966015805851622049223375236676778167235464385167921071656889957883491058666006704424274773588290475303242543173131850805415595912284937259582832627641327429387780632209049090678954154203887351414723041160715628549353017370036348243759811132854957069960540152007537748410790369340649131807054328132884347752794308113766676527515397013812693191170784742146530156892710901195011717263124178465636461742794714161416547148913579246722157267525259620534851128838988215644673270388990675484594180250251440540526877322998977705028646075579288720465188391437696918693151847526359516966989406760242173176003243872680890550908877594458645110971305893486926180959531148788792353001114906170142257431521012105695829266568648967725827268034967556847303817185013823897459864523513666570473796482480922096549044588891118814138516925091906185684032619847328663016601704497085637933864385490348134842965552219150430538032506598461922947309140555395629463489912751001838208574745782039186437024141981051382947800407348700407883743398870443803090358238481980510673769760394444492004038529695827156624136590285919442171393222607304601861576283122776998685823521976832743262993442117212030171556763394654841617961523767174430648926473726240655703356647614463050632482035585204328653946360404155029914315211825357265016189585616230775447393726030100078160885700916198207603903598826296551007773854969900262317265335452005744853476031745687145716961494199178641030290411240490151850183249818896783808335124411429712272704469291255077564866300733012722523826494168171047067672472480823559963589911405899067154343059828778626995628960669186887529242419661337479285626096495240400961268046330322157509223107056925627027506938980568015449282263116892556670820251076931441137589185966811669537091726307619023941477452134948439500925631995360315734382450074994289194863357906807871075922860128734643546230175140638842623443970131514344752010444479938398613990589948843825505474109544359114109058146358288218978242659168089344301414302266119470800042698626767501334670279704564562984363863628561899098393183474758347005538072861428525528344568632008274549567108149135362565381351516757617838357273099340959999319730252839240128138162566234114363044616253903988893712761448410256561084456133384066542087287129128193054013429434830469542342940947435928505058294630916490464509746324695920225383550244617801248942249093555315966672774792924362721540745976432165540933661120793486503210981757188714358754606462301856087858976544513726780946720128895713947023129106023227065236002718507814001333202231739952064019256059640196226248152689314049424267795851675474656159216551377348635146705189575429098242943735450040006133698604026032865310931230444481196542902244164125675682907667286178239046283808864712123993302798035596505321588765397454622677901095774510232945545536874286815890083561727008505431857699553154115984041423120737262887547982634988390847435377751489413401541806301083624995445738736853920297600181359986581594790368094412894568994643408328979757870386810909307821205358368895807081427727927296932348211846652949808560602184831576491751851771170718763477035895892712297028764993505949799151910790269067084532155349811923456891604238799536877871817262243847582201099046749921407421052305696732429965354304832937201097540207577640285199438367086129039553416507337337553415144520326229654116463981095439628272759982595949888660045691593686736364996955489165374917099729608328788658591414078324035259881463513218766668548989729393163822469549107184001494669225405881541354818707674289488890021767918677850341226879946121395310991060493930261230211318555681719888175501761672819472906647418701877025910009124687160724210754467112972273892139851353598599503015875611720635151760989397716530104723096601577325151388906684514200142460298336055743813815695564047329910331813336329756876498698793536542434934547256182012605960897647912351405221259829343743789994746462639993175969134690192448028689559876241949402206636241166387528729018835546774780383245371216615547827623890262500778950452238195202075743420421540548098785054884400238116598208848816004081560404781401085798221447796176257952398650689322682866606728052864338992443688819942644422494663811149173939282064329567127584447135077053296256071110855251786479258032287010836647985322146352110624793043010564945660971460418231814315656941946367452068934978052292951395829922639280186246082685659148296086651437509340259661707840322343963573837292307886997396157942223499550303528534830635815283829115374064010022049054619491067099251301150070164877216620804976652683940827565797786441493182016341693185611939652923886580067473009341209606606260446959838741780541706725384617579135790549542317704966116682433655960112523860167516462198393828828759903475397642604261692250173580253251568591950884304172422624884005121766548957234169922815303911811947220004073840044091214348493822492652702152434489751498954185437672837049372518800225029376702231265025182540071029772473351637028013150987206493254497019466274347869435451340441226480432929922947228524891289516390142206067039352371801894901125217864327080301221758130999783445659285909809836362737045299657043339324342303153735561753633893557434361284332050533754833243465308084866990754640250147039068974158278617489528621473078710809023331977063090107240259278154596401614650059435829144943704835801696090942156371462130999091116587910569504936056636057114124558000674971366634991341156458786173887377742922610503503324609273825833162812419651634738733057260797862022712293871812537892118241836132849141151986382056050638843272134171107759391153067047104312290405123734961818462811379903419009036580366940719533255056919064161649741569342105652817117937549792966690198094717655554648941487814465378831782609974839741257668157075095244092383995156223613657323984630663472734235489331553585834132155597660844982885079684516831575648144570174196426512607056760083665805875540372290001257872696319210220423308325351880150740906818645199980546826995639523805041488714181007062422046521993177265386496668622325497129499585150371465526713658555260829352385302743603511255836226795769539265870258367139715350543106927952836428155797069270033447616104127316385425854603919223930582486443344236721155704968195749527593750637304677692567446963286789221293314675962511376596351887787023009057850201522492808752842765100936959287281971388736257578934551475910131910671972981045166052800272155011163173322379922996638982265475781895856425574379604169378738370401565747305455119806518161009501895415091757738554965213320377705312804925851634573368893475307326250260290239497983394079040779796293102736688088948544503770357062766714713898598668422981516758842123914946044002562879507738228763566499035511393608702319094052028840720809121182629889810981314808364281180277771839673503814443204069167956893935113038851084408943557600758143250238289542260473686420457315067540093570666210809541765500470964865241179568381418453070793473150485190261141497265286046238013283844475479046153488883843193161788090125204375078184296944014749859891275254435448456809129291358059614839289729871181367683159458661051192523399169359975485550197261317089351064232914903074411126393812165403070081571053035894325577262256858379497818048300915203261611668561116016420316666956701644563148099165666539289252875049884074537065012146511226431923173249192152783484978725001914167738221420388612250322977747070040521400641462804323003005627502783023785148075402572308629002231741834422230163616732752919505767491988860640473734437421884436768989010157116116931582239064398769082964303186091176922963671290905447224837984024693044517609916412956483658403840071309098070334586312850003634138653656014364361403177404082634487783377096535389692211107133389852963505906585577911996148812686822172005519370111974853634634440368485187097789092300616233892770659122280098780664908286327589432687608350038412100585321178661207949930753185797644228951755014065427198996521427798414662683405128821461979462994442945629028360123688349946122106540896945342195260549326237722827844822483404502332770620093786713506104344079490138250795998085272665481532242519847345130916302853426637556409464342366081561211325132367705281828980554408360563708150350828601701809179117850422577581777865996455423956336061591102784946620242385716202503274963023942348299077886902504773581022781824879654497887422644159691393131139978278460810697060949239410511684145999120548683925963466873369015734667127333345710951667747375119427593637498842505803414393816915759541949998918481020554726796007134031658491494733550366796696091795796468025126468361856318041343674190049572962460534661267768715641705147612542410181630870696621321158490971032792649321223831696043451722520544559039051495130655836247051788061692416787896901449557376769359539517079871659998893299125847126331419777184983651763962030331646011121763473945582288437495728599527080428422318043827920021137556957018916187783577848647387239009123149473386610802618391794318257148264166301589763738431410470428308372332867359379125746934899002057271756792614953734315014164000555466207412358517108890661088495425766081260478094388355158894337431941456063881418078328839034800437527231032734394573003532821709726357496450849355433736638846085836426091558413746922415662474199493476516591330987929182148502354834089106138772442814058246644580659774540323696294232870800995786927527916839446134048492789175382888155109308274444798707992982606170420805717092150877186935011392159860383774338453133089955913081687395871828955397333438793189469396754479915862537921588376654626292109618888446494718064155986019098459345272103334534708539673085801350237147234252833253982110757709913155753258509980303519353191477058320736107053237923489346899678845528000242128577350750192807532560619176208390954683928749094126196013046480562950948131388553919277351586616167994784416128031600743209555255008943928728357410501407426388475041440889288996893228894704483892500234749659530979071330863668625089698347604520466593393383351567886685482804431775105782807169066707549760667577353859507606053330631790052301115961539642120733377166394076494334847090435268200584400767503590805897084639781440814841198485744958445028926756804696809426998678733352950366961088603687846235397341711977175954489537521627113078963685027682071019161188974504891797384287302238964452978005693740106079193122363359040077000975156277069348022831351152214822636627647849728844485877525796202589053659503131966777546226139281092756924892850682798665223911694598021739400139031722747990897652224206204932658407232636669544949815944157462029011090942911142413545093343419961335568821009462184961255792480437159047480840285458180857980556788228112381683688053021225625920947987934943938880019501545278186584714337949081509498204323481878741229588835816154291660930822358203848503961610577690270391371946072191488902886331693763149128997665271294916031342707887373796305138986779340914505657890303639828262697844647427502644889586499904513393478046741172050477682005472210269892636981748442732783605208693795545096797162850366692339188141787628685112040340697583763367535198463117825224379747847534099668837332448559330409323439247874572342861704564265484268819245047881916630427526635596902929125152785016849376876145528106388150194053321786081639258973295921829416453724250458963629988587736714142305520474358754569677637982411474437472757448960535414110284398818386520722301694756749540718466192351869954621511423925593066915055195525531911509141121019585809457999220905966222948162958852524890929024352354295685585414476730508409664742352387207288679354464023792918377626265125328422639660672939297214657170905564573288410239314209800691306770422285285541040329482039589452931767486224755232454169036499888114868521354605335842942538162919285026425709063810199366475562020004280521024830169965547513016972340759570662092949117848473338658503897368534600026489176269244801696395038193896999487476901703124724567922554451874938198209459484896975285080835566488627866567559469373006298106275847079358797920018765797618535223503154632086937376436716355090071960395120782337425101387044692338965819559910110971386914834850181196338816718445507973678201806932222481482389429843936341230518813008739036934471200890729535135202398033421757241498317913158925092545891632562857530064943437374236103849183576849047900237362404790793548164328242151671095034983799665477700182966529838464975278291815596706005186679575015975848156745098189933242751826801806670187007298276970941243295920059439292836700424164639424833274413499303590984494988520195810899073278025127685388174654522559763175229285146613240984263726541475567368874659730914186164996097923658051937275016703101628935939622228801539583404707347002715860941613035344964623670118711689167820848795034582643912501403294464193964240716941357248742361938454197984475563523210135997613643826520980630442824544172486003832268249884415791016613207495798880414268036125882386204454512655387853103644942643747270541373955544878652899068483609384751534604590701257479002741039361988395608953152986240147287896025524558783575041664402645506898565416862115543114098498467867601546228128562103635212575924443202773049776560916973547983641681557200810963260962353147218405610238631249627097064514990636361842048836314911183095496439634640557741077471185090804530146415245220631063820212448445698946678351940299278306550871272078894537212248880235284262856244022078867283847837221895448988544807303540924621892627178514926048767388428329888803254403728509749395501515537117333006228389018507451190026642358313566592140131916975596136096197068561483993504277434080921134485257688883609588595026981469760510483539698214161350234339027000357339429531482183858767338341994121829311457642510299206705587770061197049424288005862939888133910653669022589947711267230920866500022672045966438016560984357990411884353844953618543706711206032337885307195938166510509814348983206523388133787254990148956129553713331459078847139862281098470639086351702825178731889007599695931988319531897272455283561215544624771105811640947253341634385067176435792070979007982784487664147948686979649549089471495267992022588605048482222872503722134201927995286439476853961526792391355430300519817088369847224819874557555784534335807514177014973291593113207666736087965340126736371104121468726560610144291812991494391716686061249161688794209798048762946040074114367756252416173501604327682853288811353724481885675949931964164323214642431263964802445351758477231104041363467656422602117372676832389465919358862666293776421940482427409044821038916009995712352085207845352581806099401630601917438528553009065142546396046347756105953034336583886911630656953892370112857773552753848860269174843779064243784897961503513990018043450802453277431575810185761857094183686219282865512335150680974390806802435082064905916993379815359019383859692568678758255573711318476339534284778604828220504069267375120055571786811971278213728705592887897511743836544329737635457744165921245480387926800829269269918258208330789458921594136805222409422413799331392531251576139771861891882822336161995248144744490776653494440324401867987236833225005113726784850652667261541993255429213452795828131684312079243679738051360393152921153821017156698842459256409561975263486734004050157724175673408501639405862231451251761920637080462739954825245513284573401291889964667616175960233816870760354033681225328891966928903708801563151496651979609818454783920509768357766431580321473346072490598449900206255424847257906283857406517969995139080665582752564173222899545149405142545096298517932475393292862951613123622313743059813658835695467204032899252227760717528491294139965471140325380200316352834643302495040226707390575366020541144287862296420805882157237451930491599998753089453009967412360448767002446019787947455069818739238950934357177816213356040254662862771499657999600604614248012565482732943052893029055283998583340674703581264235770486440583688105491827594383753083791624145211368462502650881327864169599555900176902866790964972191510548229654088515496902209194315476913217635486780890689263324658981459600745792314288298854238412922366501092845723629067259927013736100866456445312456827455502767561325511302751957534688906466532385499452972845677334123517755628654943501154869912294505155676954755379772412290798560779356724977871153578293733416334881662321419955298583026299552314554199116397013088411776701029937098809851075190011067642970449850912977365923252555161010126013747547989113109433686400780635575703186993130353422349619735168240871277572492441537504871606206388820800182961494500875356116955099593027707519486043130421002334394361286626140611171810662694423403923913988168581734827633766633133557367188087892343359800430808735651445186267324120903761560082578075312538414139556783925378924492296684827376839308482782093200783390787699554035462528277983949975819169174536030896535949252954975500269725751512050043067243653476415472410784186466539297625082419216865698060766329060382093428500189266505339879565204131886546896401631337693037590574483666950166647376131472193412363083852649288301963475524510204821226723772652063747868533628468811916844480024278701503220457810252518486102770153141180428986678580413112193424347560469221085744727476357925077423459893435657630924439391639169209244956743844958644311572283654055955258386685834218723972579612271874454965750829827838277352991538434169351055078009920420684393230057728516713136279548304607386711024911161934765292234347354925363522146044827649097962247230145393125902319108266638809625667579039239165268307144489536178747937495695385593143784909362356381685689230526746569414143236546528327505621102726243018327679114062646899937873634708457090733393143935519314806949944386960304646161318102263276855298412098083289525234162449907393506149729797221343910240021533679188131041861794783091030783180124701700470561498133332965503062933871935871870618355329433125391908156669499510987949589809241011010213732342851689150004205935195905011307901995170249200603453338180290035595081639934539541123944155437342577522102457276740657495423748301535460022200376432212262786220733373734750089933926499771984837646600821744301458402865999105087532163036978750077101041234672611274432041944421384201956079049630295335357695398644083806206242454620927246224991808534613370677806193394707659982747871625096257053316952360210560568950922188783466978101612930697569185249073748159248400270403195116685230475219938396059887420151501365825368579416946623758234283793681681131299636496613239355802551711931519519294438637321968277422296837755605796584828188244373182270182837564688987634048660674633385692839029871944865448989347417937253257249193756809005671322061935172960775848581545336623343186819070770748435801407557564223215918602528848334175119096011262926522975912412357146879089436355123295190472669942053240924750725175251234640512351393944145111555061064403667992340722633220634644830829869118357313643843193975530513546290175038408993293957598565333580827479443510661805547396318674842298930160270585930801966506880353476360959115402986690223526507218702312969563344185174070287298450211034247760742346718259974506061084601662104281844530267005821360540708928811026517328349908021603537855012952727015936810114543953181554415980445600394672414249405010545731057416515109091787648555727502343453133473497950597417526292696610848270379534423796390850517834352013555605389625303353399564485999852660299511454894721943291642379634662795087876431883257374358452799160868853672966178741364900607863643284149237315517152378117086217382586877493667994220144651897811728469001186580923971056765474649783563442176645812334192062549570838124988416208316139335384700976849122317142805938476629357091540642495667757098896072372068231885434476899361445729245949837249195612025223512295872203751079402076262028451922292291872385967969083957025798367297139353209558883198456770779386792785553514290205291213454635238476730210219557351336723627707425598893134987076344227542117299873810896365338270662475427257956011273133639118932459213996028466950494716687799298775633823057555358121075774674113735008606150474297279048502823932230422943366531765812864102593772898893937278133742343955719627478763089437582143380971826343550416805259675458021677526868983058696367438514150190087565178035202377291796540425702658529095439378723329778223742066227326183964983426737808270163209710216642537643905101484100289128400538810905485830363542807858169673109053357868773256835990918732667668113663793036917742396721082069260901790653679692677268975134985537031645731864181955684292536588599045858121912066119928678707698949007900042144091649169326335162398331384807281212223090044007872579270353558391371128029755730213369960389076990917267035145858899210534067629010641123477555466845268868488979309175311566704420971886678010844155627977037681619059418786376716177388575645233392855095725012954941200093045789020305287950819400530747456645387147379367699706975331708950458989661688121857161608628999415820995783629215864070430863561190130027440355788552136369638076228881944947985251277887747152419066273963947204877722818207395910605039784548714579092879986010729308122493471161975661719896728670555975458171617582264901717111259715777041409320042374236317248990253545654466182565620636566592423321841482053389099494948551602766621661014405470173858921140922375392188437859551709864887838801834823495952302728443421525730232962228166352215631513781386817358841720095729499926191050061638839903647496032748597907847206524848701848803625470113222523476277640827268221198863415975567721466303668771759822265580515159546506836076141399275081171848508718290207296372849446653150641362191102185110256388313494559988570128989201390568803064684010429037413936957056217093403530815921262342239875437803574776944818271226596374390296130047381038187747739874836935048911550364344433262634658846751090306461812168120779240872570485159097055573649917751505069569255500765327917657287155819351780781642334496466141288909418894861816285348799670151946300215728697284891075536332794801737339434785392563665116328944276219746315072320725380357768639490124591353985490652501560486025276593572588509800204579446126045189560688332435399223489871881662958144919463106404808012767736702041120700047893736119942819862591220811762362786082455212486322634812605469197995197921003532297965674416444674457328309507843952800943279945645482218450041096792605005725209467602669980823939834141211624350027975323599161268368892694923409092357256410286027030893348133863972736731926386624835444182346647497777272183445873843941952128997837638746761750860445649729467650683075670834672872996590438425126738545860200680823621639645368999760292439999794179999830210629397923252106335385315095432695094555926006823065757159561778693759412016320480692371547662713217007110629470829230276536431523833405234372492212500742508323733068809830810317339066256388660372601620804317182398639773503577551369679157620000085862198723195931403621714278157194131339231515394028575626176685113981170192815876016138228996951131789815724836846436364826962296894328796443560234091727611774947074295461658504065134143130190061796825609549003057958906862889230587090677262711262652218283700220927503795859393869718138902517450484041526838728028779132919699125312372913317648952894724568643393920303842187192787634047640047503900049520154590601307706541024399168869184895933758943233160171328546893644029476750720499977211120177290605784971791282775202226660651865681962161528849183789884152899786543325375027061031601862234894774836458776235934859087184727017477526150306216843041782868855235355683209751218328460383678796212118760242019154954769792977868215966336178271251629386370603173910513620432756682035998823268088312268670987517999678052109491200025849473676992030006459549455707947833191465926434771811549549747655442723078327078886608014672970421939194400147631200161166496501635816911483203912049322937127601955272672675884253532588474696361419722183855511198896015709092154169596413869649596448600170953169016793601857226110428749126172059731319718683208951615661082867246265299389262867309303143714092735242267406208446471823729971591604556034146610178901634237348701538717489021222627394810001591861272922099452275153792440299780144593457236058360164027033286015368567428534124193155757185170657312000794741502421074384660804659180403689983280944840489405562616743578074739449694549856525754048558044199819587044475145921084105063754894958169353470714535092106999328472120393339692518642938876878591961219722117716342679133397586653236582882773844501652183837738458917113063728967356799589284954220536225265425403085319656532535416312806049066413609625957561048276889393744916309831447403471756279240456189775035697970110829314172264474396579577830631137587072217664527601036281850316022753149223062319266662745057199469633790275590697017438090834307538182262425664911606421984766323453266841796437049344521384504769713040747705227144105739551860283298139790576993797100309175434546049901161233313136368857784229224399995683955067698146963856771244576455574564738698216755634236143191094052234559419981176472627683476858146476701407052178388982060804009348550737798483382630798920853905965911881691336447278788372697086989627915516454307166504761243287690932546531215947312224838841465464550117062408033903374860758297123020777428562766245846977947299082930415252603763333536181094285118104585928998138715991901422507479098688249474764976234724285568531544459010663972735116118450260224960172658778457762899855605167717669658736360891297087668496772587544227704263775263211372078357496722410529966329507090727936373649940433236192770564463484630856365969898756541660494235252726956577793025354783606413383492972484500255740108916582834531509280696737144209422490310658010434697667285170931062320031053585882064265378606277944481427670077628644242113921298791160916472852124940473028581306577547343814421645866820220499571565955453178546324400647714313394817475150315746208180658163447672047691697678323723076019981925254475732627156442931834521760433135361396662583367914060982740657100141288331345791968935543446064382818467922407774350181666806103770653034594415232900450094423488777427424001958765392781156370816023251226026398239498902750140342664035115064053128896477852490441943194398911794483297163808837240195637839366014056956752729923341564283804863835616719587555040149758512102607906148398195452431215249397493870240264510884641912988579530945481032210953606846491067948569121661792133865891358210284698406650466184120602511288780636952184890470958237695882951218558701480375293787604503790158342441520469797013414681814983712836391880512701993883833292524288155646482444478306242994536547368430304928257973223250027076530843334377283306828792636283811420768701231411460191789248467194699090782904948299802659506626314425231301115596018630420766934398394027963356851240201593629371622818752190569087080917602159101207337613589569802681793142746544476497637764457841277927478722809460059845114657243707758064694861662734420170141895763419106848146723375249600294140807972748030430584533834556284449640619290103237399885578493427020660112954662501142951835510872256702505690621190820937183246737069676209061117942999414478998409284104670552637067148360070207280068649973941932785722583985524434387040869251532694777298318490481103461652769567431146631900257842931547362634153305822517417006888586231585142396187251123718155345365734963136595557594132338722615846577305884465048588923191224298495672157986173950766923130879459690441363008942155801952556911468656031842895600080126653163069647545904933884603750784346295278753280317887500040490178128442952397514730324598126981529408964865788645837070715824834717136098255701034284329124795511032454094512166016113966052197000331403287420299292979696607082838212805117392248926048248749830509347492867738310984383675416207994718566411896433482754933796487253761403719049176136436663353272047169587410431458875739344606716884421882531498635071027706357304777750704439743640516330623001905696268223623900838044879558650403021216278430138203136898809553288615888865555189953576709793168176114157314021615327807062914164693257614803103958599283546311886448937877124800008758769358169607822227165414705881813555005793052333344029840370366433433301870182564249775527374055178248226496520751977225481911760644407374809873873803139059482814720469651906905852522740122372700426946846787420790275346701411641933577333626752173245900346262817713236613218474160244689598150757243535226007008410824689944064295165048613748854357376120961139800100374765521984967115225716119296147725484244340782185362232887036769665378043181071371410071218593706650787154813173904806191479623691468177690987840446768200470450022051308203211093150946520171569061042642565382194426216064811602417907098552917038805859502236518098465165122779798314709861760496302350767406569612336203621076955326968309848372490015084282032655852441357236069848562695607451719049986089691928000199190607820188617247398130446050743246169365473503295366452634172121969807093618303442256876662237832997064362638524747092311192537727165811436649099049915215154366397258038570946511096520433515783460091212153404293616816675904179498566020178621238636981964058718558390077206483687960520190667201169504196672477005319378195093373988587760552309912183076963523183024784177068265582815628101838309182659459168406589604444822385808173275296799152378705000781866389949921070350147800976183770181475072148121325374347361620675419938363873434165364209123204783953306213768112950915466718747436438207664775550673757154592200617582560072410731552348112477588411243292732177800666313230266065394209905944831072729112991369579713252086953423782114739462125103501699471536246081866119392690424172956808829285323734236266752707898051838508072071564035894847681003458392281075925491334394501156977237845479985093077588484727486018092376023123657737246812983757314798355403225753277685132477471183553757813581293707590432009737314943112804433695337057186258242858955828079664687128638709088773678563387603047208833650781591627586495412538183190233698581113612711583393796264296818528815268209633037799660628947929902820892114190381624848072261919197935553254071345614778353160751924661106305546777178196856059918028669399423400068196962548127800753434782057224568308913558392241146437761893114172731353376330043303917863486853965849473894781622229612675531114507433215570152710720398295137492979289488946622976239172232195950201168121548209081786378755912296065805696590379524472646613487430006212566995644985834408575654756471082691862987200806173900035848797200532429175045276508955492562013104681068260670460295522198915566959415793677330006892427435768814921598245757224085991070408594420193890349232848862679894937775741586920943071058468581030968866854248061700579314289833473517385355949315389722605015132890415683588435968680784223953055111757098074125715521660449862041668847837264870416576060357988752520677298104839821287026441935379213510273882844817716169011894597615754753644595884156812200988528853969696273148713587774647309169139691592453543285497394501441877288901787458069309087453535775728623029800761589527374002739174448085505194434948078414893491183798378208207497036963676571044839030877831582008345189067213276763736235326627727003114657161491605759283770916051561189476275520974717371408664000058281717498061442325265859791088033894949983991244610434003734447605850421163569479340719550134771841569122919944803185957523148403926206251133031757832609185371732505616829759425491617936605019714568090170311320456393077114385070716035623508986473680694780191495109662180542550409806943729072599538359690369201092062001391091436095897728994542878759385030494808221687050497678036369515293736288058742151540133371415263002378049364203640633763727094580423630388899279250679904620477394818939104946813749824010779680005075175931448069984037582170620698537554449840770764494547163061011502879514889699012336423254047840989467061760289405771317244286872506413216280182776860435463557692431589231368976565856416813820598884901332922743915670843969879798770997989515918307977445047744488378318987562299499507385855052908657141661574904288343255849254148366508204291248008330360211322900124629556657911408837515446213239811925534401580899043044884235412447418338435691990282398784526902775484667170249289877047463288582836677564216582141177813792108462737852385576862008179293308349483179805441378053394795027800971277023089178047997038662043133461440064843621489464627029359233924662150322142930637407652629057423251841767919064118649088487629754446993116190999139269491680120550156228885637881543754223213886357340063734157417480807682991869470275909244409591063709927879269297178653864235102636378756297776561310662287345656449961384930576739021435503264482001414280813390170999662010879902659635238146254331448922577712299501400975948589571890418944836464177122642191742286494498164595199259272157095663924375134516103179978404341327870800597639988145725456376905958428805577762048458276883623800833280487114464720797163501140095210460664010564428724851093340157160933718207311777559542501524787294894131422327521497637946328981929391400921170668878550281642349216633136880790419710570205138022852451377639613369260666212046323676956197035788539546394380829829132314285443815121155566482789831144538082057807048227860186140701852211773823270650969059809134942521474021613706078810440252891002956774467159021611168964466192030626254484912158824849540792675714910491037190115135840590905461743067423424436205458622751791643461724676251713887820856333686182317137981423448472936634368060355676270566140600397223141935367746454124524703217613495616507877027440056080465523108118327712337125912279736543228433311082821209508134108844251573110665547053408447232414966507183591740044679627628983784869937265930895720270310289277731743051261691421980476730587816027966343004859428361311609799014595059854960418401811566440818206198366727543150420010084426476235964530718456496909153821728062541893447770310655912620967772070737894111374611789516648520731532264107984844858962188475625719919464520562488046377353096398475843974846067795002978740255516994338158931801343079165261568025138938390662469988755239931370361779836606821350665569361654098935778006795006095848307724707357277618299840952015126106365606412924339108506862213060940537133235106908872032501981570077005615638968326782613200221807062665450417837019747472904810283284257650463689319124396740169322445969953763352379207929853855929242321611674785980009833538042373662052546672782082782832491249342630263594049027811417211538677709004501148292943121143461009561317498314275844565908469863265155727757944912660984370972476581046363439773402302002657268518578022289714873583530225407772800935926396280929758192576960711210029285785300390364531257832620440552253340367575733911905124184393465790228700254407643069576242764113358255178160375798172314450311095528973840338836607413839422249443371900438151465246549585803464595819198750051235126764840050620773427983715209027154900109126688150114805130211966492085263724501363387914860887545659837638579477045110042924270033748005645547992416323999307069128328167535011783763296752283959897767767923159790541640163317840763273004226355158887936247852579627741707094199397920455281788957943414697335871033763248886875535961053972471010912199443133783772039881835826487353748523297446123791356428349423806882632692426796916464215220846628391520798983356050552172647874079941666180090961350041192145914088848497000935099379332630354819976001302650525270869416085601229111593809070779014021215742502048112958242786934678894544156427962471692211939658080567387866774530353903743569196933419512511021889335233901134280088149143994869024877244243147600484427163272300075686085797961326561667715462374090143996994525660543034310616010890418239139186200173870580334193133257519466062530792500696039418735215909417549759666766627459916489164932896959176741105931720098816775250988676031220032147088547361723302318354287128075611026517753983900788697302327437379135116548168282399418206202858989636927682690646596168897273838562928387060813255482671692583888251461566288226804619977276999179220868430746015063287066578784757160569349733363894038851604736542469071902977865691530911605773551279145427723896145918259458305078856435113391632934967536605262891797077973770021581277012467499695663842503718795858751428444787185301870279411546013003743093623772905927249585258496492499030735950315692665454794494825364076234705046840099571381469021512351281022236357024221866062664325093227901026501004053062736516118068433490701927822390061878713004136100563461601512454368743780396008646581406613259462308051726934076655960231472700032394654078312193786634085611158140620913151821957089191065505060104754092725528860754038486256185770545908157065205252558528355620275002329730847320219911077024327276721498057436952814081724408510261098357980263167608000663940340961477163270036639920062941882099840055456698031206293598893361287871221295240547377908093084985610043760095921615712406055470406894303712637083622082806269852617689356984851758022008759937728324979505136945671214615004725159623032546392759342788542583382666794602172868507644495524635123837333812501249383180547342510547668291280080729074177706827134413372096551305204072220668834282190484151045354795409691059617654464064906052779567231798852579203136899089744385128139203186744527899798416978761205827674356906851093117119078367913678283864127105257228959591209154560738202462233194009666265255824869258732315686619882523210964871069707992334723599880945160988222037416707236379252965822995265353094052030753651856594973747221635810540125149467952463141580174662500039799425838778663559789652169612528222385946615558015621201225225534042878941088687235726514395582774543252735853480566248548467780204584250382342966845391276700800117652622681258680394447900018304261905967222544893782971425053843590531436136278056104526473591827637380027339966752171221105490553010042708988576446726499095139380663498245773853169295409229830135531842231673630501214574754318763087807145081086639395740576106706920963760875595749136544177964323621527432763203329950566954393130783888043590067232303568854238657380249662516889202090831854735328473070902397597969955519547116329764299729736093175998334340735687525382287944469404488986434049072192446253483036386809213906853952801808624296886921760865354661739571812746021807516507239987067021654648550306457166978428604059032901294318750194291400777978792410180259095583085819737971394416457705626472498346723379125658301591916311999540967566792303697402156279651302662683127325904898480905540158153005765881348458427606811411478469635343644759926235995527576495819876255932387732262395961865292928937002577297987825878683062358926635930118528287472255236610328198461167060052765298859513721383505358967186390204233272754546667915065722526718490236979352113798863552746464374373346433297604036253652042530519094809982798802949084545641300032716098865142974002399578719439522516251789929419467509165000046435745128729930594860387057496717373502600959907571843260339722639311591757151790020860293026317284661453803135127866324278350228442323483451901712602992234982986188166143179801965690183035542732267814243026959042046355555128680484563326696383275407050077781020920179901498620142290656564297236714235153985317760501587709772873978732792424184885757885931549505302899915966232653782002948786921183400825141146595968701002772419734534893590700004488876598245210422594209092273197318617388940037958463231754355695699212507860392987946458137595269592732548847900749639691168021200048008531050992206860877565963764296692737028746855696904808756134933897141582224103749081752047756872187855551001273736856019048447061937165093134056432687902937973044804793415126875162719610693183904046057324966407625852983054597866870698111532168138850121584352286185404524054749880998127555005011152737196226587292762864825517784728646232907706126796703540053054785778550553063980758467875079229378613162929074029820376718512582386397863553206859171024277945983012905203276570083724337623095259937329327925063019739798581591077094121178171489598882669391002751410770997021653936609479627401973706942564845735194794106846571080999298203946507779650362496173820483036909029052201822426544090255629549058236524667131548661450983318016332463543828202035898188205135535768683550510793845270767948695273131872295312066638512818750829147747840777042391211485001342269889795699817629454834942505964493481085988506663215912580155117211501302454062011142196047143127355150147477084077953177655053419694791347754794940636146625912546182775106390678781110339311343368650190153025328243845105512633548075228021755643465828953714186664189229974182204302752934160343149378628601794484905239856001061845166109230732219832370011617172226798748623002225350264158425748557116027059650734129062378550940083259550661751119907344012720209744961309492328155689985333105427053747019453852105812136769430305500139528719495118583417180940777623573066734051661569616413689236570450904867276125678870524073424824716722973721324093607727987238164249934218046277577992813013004438939825422294638219434780874919943739797594077521971486327483172382537098832915331017333416686948125737210769537688811986466313995600930475053908142780856998102701077079777568775549155235457954753234054069732436788055230355792076541233764591847562032015974368880884284268290047612124221280473876954847900662045252497281096469159578918393893160067517124547576711615387340534238986466085121660409266260858034650054026210428326387411542075813723681098334178893831608564115456977469574970954320898662600638964489355638313762332708748259396689338471214300813101842157878147677618736135980868853085496015280473319764582184051431590812784510980048408190891568307497992681990305014806678033311442648750890699335967103297354806482725064934363028235803421580904085494854169414588495591887654022965478682810416362017593040175967102599253038219556782654128244453997176465767694430410358150081173257581785464174250525419046169648333760271195485450557347607986830099723131875071326734630052787260787644402254735354955613586585954864088356231276790567742640454741482730508792150306121533794630643530883302496979218865453805322016755579221788649633754704086140532305180923139403036608682630640300673036543498495951234317554261256799341012956056533869175537642472193689873936494537329348326217907265929488468822593211319281433672864655062767672433628740515694182392855639422240047061557515883402255551917296063995852232863636396658277237966317180262994939164563885591621921444546504373017184196875906096946764867035467245371632827804471937263342794620844936895827740072764878673039258657076035054364126552899600184361886008715313676728967321084727702660268020503662035647910540625647549283505302078174487103721568790746014761212075786641805969634893511703064355124966460339497713052114924327496771125517567084270387264291230519447324801484169980552409792651224455691569840625468808500744299644617070146529312980566273476926830318921178310578390992499246535533511681707673910506795878819544314841228956571073770272028262027292177799752291577599857572908500548181653908106585648641453668124168946133639205550228922930642144454565369685901653496177109147177357366410096971977181353031941980014535447577249956662770705545088397143921852590224655754374859706608015295126975330335984800956604405135393030077501512757539624708001761464910720073956109377347665204360771856898074644980979891249227364596439878831032553867791420684905721054460292751298699555499088026677374638423567918349954760499388143799756212154113968931230002737180969805365232964103423091463919713993628981962260451380027741155544515070401230794607718445719830164290554288781214624605048597953465370660043952089323446554796296764854659556757164834940136920502768372423189552416268623198242364347244159762794798506543414217646367838331011108015242238327534331247889368206484490799118933248476115494495760608292727341304085732736103479600160410653988191401347506244401193465733736123536403994797409301317753012901941589578477923429695275945505698925469534976802468820032609552757543512855413609296069096518703081383318351837223515564090835901722959177437645485336680366767519652668990528475842531328975837613341280924956988178311805155447748882776518743911694912808554732565080979802552902687176610854365583580244511107022911305847001214365165078105377767008131887267397775838204750413369600336507449944482850004059070026949088399542583606761265218607413553439426523522326991800337075691010205682337863386329933580633005513401725304711520547233492312128731465601618005585487112211024809823534794287629339851669507427094786946157628869914363596167583589713024583638605548140842927934434417557094201891973588159762578318742772924634901931374048819919333007025741412635161413996909189309225344770723499909499801482757050032958942243251059587712406664866376394093145633733176492836770628205578027180744256035138244224871923310513967851350806213578369145514115100465989744841392577728649115259239003275886033585340766506864033265514461584789419718044012291735417076242466001419325011414785815286728763556120223006825496678945512534493050327073854945836996154543684169322913559816315615712093958584334790756919507228649849343361129286664190790695387930285957849818301794970102603275372035204847410386106320355525187159708367653814343528543748926715993380420604498705566143458052604368242626146767104258007420501278759639958791170357483089297449784215464219260619732657383848080114990005850094760458338266061321840787658581626975538152713119907209121673224176529538501273207526756346886976032337690014052845989809337971889724204763437525846441195136333919209236887053549607388364154418532893032842751713743243074701080399118696600658381658778354146301602824526992520841201491728942786106481524271900984322289034620413820362031809416971309644466534760845054015051369675008318393565338585833111841161242059210159644580549058050154402812674900578222166818092082095670312868504692034590191856717169468222593480014812642712658173165200406268823727282485201056056856079578049137152715873994964055487753135626090925309345677921688918341797199769607822581171034066932595356643659371478639262657856530447641290131208833357381434536563357451017876182747381217247888152681400682873662610350115204098421703825671932040584572177612296930559104737472461603846622453315977668336525947308216756597413327994931832091197600252343663519659289955184126788601215548909624062120006955826122610054708359270215453323085733529617450630856003335683382095997020574414636841557647758237609941452603798928173170539668944962327356929450038580364260007825043209678175707381401655130617626380575184595634910102730969610599457132968319295264683400486430542695985626318838428886874498040701210474478125795897465771456806786964027434316627219361149249115989015204968088782112359617899476584362861085798088783684662765845836739507196243784260610685448293757254339592809241977241698984850865150755168342545426028748152196767208109560740118749981320276806088019793887324549989959875400876424512300041937387814599913573636208338363345702714604074839472347749012954455700539942017375573837254230272419659410901365855495044513614510755061384651613708389454316232329840327943383573018942009458619706303811026423332896491371279585939368338475185823081411389885419762903429138337114979416545252801531643463978258177739117558602145505079383462834867287755616916109094049880187830998612396001357402458010782882948093192663582335927796713769177044304861626252209827762436368244999528782819646360588249343478551064716452131871716278744166073256028572692935492199420123219751105497500084643652799974980216222749638068627749382395394483041150169744554945324392386130114740673209041349998197923086940525722848576905575182312203063645466559431710781001652578124810732006624662408002252700410882276222025832940705300650947391481030339951794267569060928166597786027427375851753770481624174211529660598543120301730851626690566642321208863020032424074324590911256412127893812982344227532377407481976790173166327639331572280110379265904387505887510120129682409462344463246485952689970334328305508639063794625260701042163112384069251410155758542475889677408917677406383652251587128166784338636855320886224924769507196065675991101697689868205937581206972854895226730146861248758554358080100364487646039963182909657761537013222573435267785140391476593894825614566469462630344822991107935832502101111429558700640485905608686176511459758744262300662196686253966715444869798739237808436727166689601641178950386826356554268449038983104887638746208304977042588364508237879411446555892854896747826978894912976256369303620082323032749463758649512098519024408663428706229824448184179661657683171548711144451473569907311632633256785277046566539062680693226436148175990920131112696291275579238771709479298621584962673258021633424694096945314300899885023332083553866200730990577269313032206839988895753575218999363673596774485373839279416601031020703990462651856891397469491839781447140429361499718609945898072241697969342095282192680229191636871120001473486740316467166447904114720839273887786063782055803135816065674395781765200250311866924418209398291249779082091637143581347413265814028797771723584730714168092625268918512388026241828852586886243958292142601163573314199582517873686035266701617648558676668812388071596014374634420588170664866685879779514208655018069371048953850414602990695218231197725110339125880355534897307721516499604141239665587142452505706519878595080710831978589267149447677027281780693669985165715011263805677757645061420990964599988570954591079143342327517916101628935126995037170171598564660223602144718498624604856826856506070075601019725895206847589997382901853787212471700023163253386213062885129868811641447013073919581890208310961009494712399303140303190830431230259847479292895733658553602333134818069733992110574288052505922188096556588990485850299096586734636759554946774228230351009264005509814581228696918856493542026833382581685113244578128630750073227919695833057752218826069758922086774117648733329834385080567999773284137496734964066632562411018169210634579753678991297491000313364513817261750412741307822753377258003588635250435714950639013141429718309382922244408256868538952929453488398515426518203422399767899783006917999511271406359508749064320369155461437935033358152712971124222854344690339695554257105270331877745786724404468217261748022397462192235746931346079870968819916267705932340870757377751266985093449543330208288711987789869704799776421075479014319904844837605919113846727321298995260601471250844979098945288374182220379674241143555753357165463203092614068686662860581204695206325478687547526585552216233632613918134567310333242042078838958380634308002802551009419994309373768389143475512898678286063068138377199727278361381723857742246027163758109181649282364368387054065918235003525151852981693840922808218778018252088224008219412663132888822027581878427196844741446069932026364273396103764996447097961214830073138581075534443162947785178231237698284301376268576127215105381410864347286227927840826189921664207527941675246801358000560730256622495010213356372678354278834772212241074515579846314251063275210963939258536714859012793825448387376284481764105957286775594259258709776033667879201435404739439059141006309041733466720004264994231518093210852522084970371221197203504721941606116099430159200792753014221052050785074703579602117295949227917948545435062338195656794189707281988161313756656501686775859678305710713973358250284237561951316496042903990246143062687751581788445333502490435530434052423124861186828499082455276571164687713565899129494262068925964877117057774503128922296435022347195445028225520060626074358108934258387382730609690146543287110053297015984387478042832226674108102631332271475064328820153644072927276449089239293823189228662603709835290093686655125377086363490196093966852621067611771888644656736363176789999010082855192249508680134239747326222238119009605485706899069683718812165949210604638984858039084138435363816017053617105852731611445799223548076385762932158831481713207018730189950146836352946389144491866809527050977449681999683285781358414435937756341505328824811770411810593155611174857550439512824180011520632330034335797107945105231337997094212416214618840712294818238576483323656157062944323520286046497806396002524451743648637709057750675790965688097912880392302828779648778686495319019868158742712436331692466494543532365103466146253041362049805944532145926704469877125996460516370248121092278086041509891399996667073960921143951751225235022571363431559875222609534804839575142295496057085770775300137176981601445063864833687775154799214642291954572445875442092631558566446967940087614794324958195384779453922839797522541605971799823163033603678337302432219456271175672746632200409233137148117989077886820312449056851609712085625718109552199970239094417029778382590719478424927577393456610207414197346742908150894375092878824910711904845567701971071419725190776517980321234149938858666606396420054342281315021994362657999709791452528886713963213137560553160256451912424431852022723971713003477000596328227241932668881578316983547106225040380066209282013999174489056563206127517030242011117178113604593643683802196047627098921567969982250892889102608151013556781791703196342087257467889073514925457070712196970953834764171337691658058750619509459679703140470316428185401770917633362193154814252309981963064259773435228026805608087380072315317580882705192662162638814386780567788517019871210488316298762463612676602125900005454829505875525525971415020269576150032842561016360005099310151139204761245255266473256278395291729253521120077036614816354434356417287042665982596958349400475700661885962848947596147380695900500472054881306929698401456949791070588845813126610025883554711397449284740925044859767154517068840398616248431977966750542326747006692162042138417501505330224276931406770399121329458083360611409986260228708329962167479678876756579756081504520303072596622620801406093166386184885782031935283447507625242748268437656948098029139005102897121423512174817695288866972592486949394647521990282421057076238823448883248535461434178761138040693976560733468060202558805687190562583505602295544470979480595624539638396779050184113177789050724302658997399467816897835222206752846484203486084771150188551701669754359415233303644193223825313983136139262268574802545781000209263188111805768663488235999296256838135691614062083134806812782366129429327252146247422316665129296320348852648904921036482902957509816199942179373264181647446019041885485169701626964750734325529746731131388417871839097059595733271296317052503054031497602233532333015750807863176876401993013401714741081752843122291268618031227411403591164451165659359239436301069756387673378596728165902667268072697808012864130109644687376969491984535877291009345833865332166057683090371406710415659955362411335247407607287500703577429301711065760504957431051024340205430280695390487380716729438466501744965784585500695223195514246642283799486131378185621502086383365930359772884839159057504507014025512477919593579765467272429648893247566313443128376875091978313342180852189240040470249334522706525689821674612755316738928534695761937883268874907444153927718348159776776733105129858650073782391021953827442112250375368207340497643582076499018662393009834621811646514874502876599475683234682195467499090349459316931478179800683007047552672447292569090794212022716434494787538468646559489641223334599199754711668552133761366621346985225606630915169354953190920290944185572999899701256099206109746326479809509743718367974105468504226662698533853354457720252945853081970285539069981953691861906730285278883091299319699858196814648275653618843489776757668277983764620160442196821372108276444299157355650206937546473560841914853941959378662391434685838399538752376632032009007114505883089627796904449103171008219058039832193457517238479188825180435715424820586225462710779279438540821272296578085912817681614460750829373121040292814761266395876968680204657012688027194413284801104937682638341206550884987543811069632107657092800773691502150267865279409676272419412210616598902275441343924072245078986054857799861857060427157194542635139452566621095480981026551335735607093745915704687113876442836094131874344781819408389230614751480466624789519057859802645551808436564891027673045821617948115797383184187062125630918505060857582434106518825464165570344230887917012509300849619032504527240412056465087086391587366208486575653712498839818935860260377048419194728282970142538695827107051628453575450947780132108493685522212313934558685064007993755414997616744088213856428474489979964942845760117024571257907491612578938605345174333234736412866399178718472171550494958611597879211714247182206693262319559514294391080519997738111244165774058008397344679690619256514053694079287516116138809249711488024231300351618047557472926582746136804193142088521002305172586020561843895688706993365156202426327373585841024445216966304780726292081502984879085924645375288938010814121785530657734071792370758334557317602588264423963253489021058507954161468606391801695321933577431169474426940843899880059815816795240509246722252341609469583141398290375845083298426144693600702578595456355021122903170313911514463629913362727339344458413729419089207800129678698993569449657591449178480391682715505737362593081591944923922736413595522764463402186347634521282303069761115419320719790643976270986489866609070615572495252169684441174656825054739862131943312096584824130619720168981527870061945762245413963376194292054804219287679011316695241098154441557926162997981476116139879856306674215335019190024065348283023798246640723070710788523407080719140366780186065996332929779969734374618714319220200935283623049919946500477760880823816364046187761484002869756327841931093250232747373582886959904580035756322042350167120318848125696690835583649667398746345624996697272039376046098746013310398982590611378149239940974010299238109579490429736062757859747461407420521019551821115347035979479036821308665059223492846811135136821191933260464206138393944122833448146384598882694827500646350954534303972395619237411134108465103947374421985942327809970597599405516705649447950427993334081141587693674798341191609167736772978788646990944523117021891738629558412919468615687941956400676161661057423823187222310039003287646392345516865383036826002207392119123531580092769952385792071320154179142782218288784155805366829534954692104835900283154057270101569528073532288917540018561565430290740916297835623971970048072313128385641743571871157062400495603040081126983696243006286316909586289921995546256128333364819808812113815404350252471633050140469388272129073892077499304293828990558898018822475125089543924455386991623405268845753158366799560678608347662029511582628336650152309785529010830128828660876773974745590981542576035598845716649743906429592928523381176147474030817023091591659321759867180383029250777953400813511588255897168613128207985408587940559455205655168943655697820617159503842337526561819820126574523029986970688836488502679887765303890651370438771580015069459747661109980016144236037199392708193100019611130669776577471213537164352195951468969845501542636844451285124524135010188142064040013767554231075148121346146567378294628364071044175314715906451692372015746464785130632958983061012121721475794793164995034356235161151911741111553711016977346859284190034751740161597528166366006062040792932673250388047333508515849964209481986880766551729991822148478197716963056818233136323996726863535754578717240007960651545035115818892844308081116300939760585038708344182623002491698940546388563161585956962606862022074168429289091068005938559885256444284829618996369064542279216370762829452392630902307944068618460002488130061283250207098210164789178092300947871399933359585373399472565052629941370257652346478685813208834178043201131654349734191291504686268103001580549515356555915175940661926348208870896923935974902764898314064489591993685789583799741681734230051292753352424695816128599596236525941323093793389105299046262021477628129688432299216058403181446646356623577764042079137815545547662723785135992011265416435665711716826278417925019969500417248836988305486906509495601290020505541427888859623327475652905933578011685127480129076966842735270504477048251905755624541144145643674462166388451162466061486807411389219135765136075045065491428904424299564162643685497335618525048264980858586473273070561046118268830151785089366788630710986613386471104371953784760774005102504129619169107102202181819534819022048869068954768926857861002377052167803771730981347903594667577952747977175110936687320591788109666757151694982697922687018000469393860378828849724701776279906086963981925804471957526984729604768575861034536199518052844377303532793331965453179188093788245650959885943359693720648134478962097352978247503589646942651527798440362846407771778449504288423554898042134318035381451183122030920269432322488761992587236307868840020385976634395904814833228804927220646303403460402442790538890159404089679615929647664285397601127262126422567296437373904199409780727520560442351675556527515511171110803469054371716034285861027671205423896893634918185251090998638282529464365234813954822931945823087831587369355248141212444421432720649522366142097166354586100290073562581832691987494602201953610684572578789819423286455175721207909935510764818806446234026066420732819240649435145320771160252349710767815070959776326441320020227031856216659907124067652480479630709995661114079546773919671216239410548761050726835254955934441486725513319537861950803288435603371410408760347351824305830078049791217117277299967843955259283553186384452170781494886505313082915602522466918823265990626912666935515236871971853115491471560203116711239827087481793853274147108161404676148199069966703309627565923599508046843544366852975045611799964252036794664967139342440385937386401705928419523849033423396877819023238442100026515542795602893702059523717317820419298094688180319708680255495000935459152159217072674529458628709430835875568215564014719097655123669195983214517875084391784727083066945827573780726822231590716926386808186055405439778014514154640407453899050342380483412388358749723656090717729804839197054099787658534476164016184469059523769870913414461464686762456515622499484255979045601509588351803873430861672579921594854062246061126334311268780606702454710689117040930677348659344379246834623817930060482112742472262841668836253929293992221863753613735200195788818265953119292730586027052389973640623668669909162318772755500285704866613268676401616240382986638518564763584812615846979406492867929125277821482322326576968067032707153984813919931334908187290319402561224997775763608641899866147371851303783679510668065122904355810225540445503445822198556793167019431963096667938205958645634115650972931705010275811755805542405281509637151448119410397784476787457231437576205471736319182080372931829711859143048707935926655090861847660433238897483695968664949939291549705178015563608972852866570555831964132446412712645791373952561234028332028585891540861790721807658210514086960595832140924113031945371987985560552154762170835410927789009434517704027412584037474176456914353614476787279151306315437273151945382339015382811053524264152700614716277277372505357524593098538384438572976985621537711388169461225804921687808157243691533170700722620737414019214113066562042428102634275896359111232284101487466014801746839087007505695465958784493297439203986004549305149722155154253064564182826527702960781745196445815054806839329471080452077693136024636556556546425961536649039306233346250710377291896553728769031827689023752969131142747695015467745314322602587440706346116916499671048109969428988066063080946448960386468278829961629942625415814529074864108462374297536589973031981341263330539788879844806894511952084617133807655274123133065530424263508466554217596279337086674760571790639283024643387571600799926946686307445637388241941390796682479970474938797390887179456404844284239755516877621950054315990113618080489004301175198419049677085159551485463307541731119424696925034997503259301158852043360697462172613896448563831656023297647366982689262164637357714913117271024542392808983345790869319580917286967382937415103271940843125463172205582935851468570086324025092132738177442628088924641295716931812225681004461334828624446616014875339628066152634340539630783289056653637778843189320794288764006565622526131649512417859596325530111791841203266977187435201743380106837070219461203239845087858497838351371605212055320706878169564649720702553336754004424650469173257709287506774628749282759465176978926508907649885951191523186818045395192781121354571836789162771736996651998508355823206885639696021939563997380094197281357484520629387456204234344878623699494674422147140852960066582303647369358119519882951632846250699868255707873484592668733351022827027851002585766399497674822425014081039293571299339250402572052892531290396891390778651956187973623526192704073235431442900799438371053054802847921380516033332326403162096503641671630781546414786474341971911823646446491270181312418586557267079838694775849757040625398151624326382846461091182011101788281966868914765075910567156452175396504634441340694446455311399345440685563263108885938591990723036592898325671279795818680503017636997491225981125626913190249535368528146121431644108321240265738354241124565819229789210438433703776201787765803979722560736639002375023614962149780648522840763949684226147749754254184646807924976158830146539245294030043164498289631169888007332725109010308330626002383105849039021217307190575907696103288541910014546464156172029890508541293913259019277886059088685367975487419522828899943832382608916986503687332529532247095131821283907757634859036852910618558636899972623983269546426908172491774480943206023927640531235631989581643660789956071480135165476356436712342561108819785728071574027958430052193770429430738165406224412380249630756248745267255864431656870032000727519583390940730889968803587879614245555274599072024604512875782473914550665362886169202721139123829183836167477090130777651297240910127100633019795605852325680805256231869572660950292546152087252030412973906732577907213676498041560730344170412690890789552992261778929263855158217098470237502305343910992300887399400349420570242643893852656983549039695814513806682408346112745418129350149407607031199611132139801300451962125790704942595133160857685845351527002543803766774858759422779835432340288293592605816843573949882069943382699976458315658908878632102152990072708260077849138851395093694116491558701377981147599854215253318201631348125042121429710599779811668866582596433529723748467760796253298528697861602958381141584210775059975109892523477642753027025815866875350711393033015138809299615656029154152484130793060535873099869673502425291036595887600212843306313136430434518495224990246790257497231120877838919008814990968268293089405284241045507763306897574242464369884459090760934693499856541210260113259846220670005778312167875421186613975460187935368998360290912031648083784035498271836810367665956080724360018815226116596738348348238726853748542872610881643782686134647593043718636844423999895079340484272422141529670404951293596991078734296346388126005854897121560608482545800565313796032333039413782777383293831398081199443444773200794675847785337377309123021532545204421263000944777680235118421589898739480965653275587216375308158533793477221772600914975305443550499580757791152878388406061076275930579000583949310878647505734108406909302803593304632007873211684932426391757949255412477076157735608435803426516482240273989482745392879842144345321305056664323793186752667091427053431646633733000502409867052529586360627431021733972636685562747960467571697358325568885438794972531325782142261882684142669267566740936793015192331700669298680980249320590715161361701236456609293269663311217652373019948473410112086758483994377001845193848523793363838486890144014567754882326351774814710067159162266995101437031020285924910910993873999107076410458638045111508808322569029061963262737488076507513979715649170134173249407131725822486858012846459734142649318020812400458584669618675740413563971876751967756835697355922191301489087568631265135120190479185917411889421688244759260620577250552795602335605488779234934088022923205456743285848097580320066707028281062925149246568363524961273276229592096090583694331015193798610708688342378330462442777637120458559442005196084410953865955730946387076898109081076154834878893600352063468043557303878713309455947332981716685381409497296815014825306803248997059761131222089800315155484975585875394805793493012561247794457814087695404105921603132638319862062175992056730121227195609295085131032665823903731161757658663359369955256967679668906304032129293170656726082004953703578428974780646735174163274687714420370224268241938605590016990313864636217289551955674678853617514632662893488940128245402116190940013308052463246526448247019413846954874191731940895767383289822201786787517346044508713545413364901202117012874486524369108354551943727413056583303220809772542839372748006228159647074493381849903792841762902721928238555023480016641501909660541945512217185575040212182659620299813661375314219051336705978578962537010324055037615427270565607965518140903966676520315303974946040224003052611690280189859816741244559808777483464470435110705197813163441525347176289423965466142002737509742289635015980794768861777551987387725536935373059202723651438975011123814917396811266380692050339227488379074523444241288776216556661268184060354639096664228739413969768687719388719474178729960988066953040035082524120298063739187746241698240730549362620502200360321836729312793510039673611506668201409782547229855658928116758611242765741553360842139853086817000647644253794036941751920848235132138424753199283557217931943455673016767130474622013530672199342478046809645685021904262321914645728008896247602412204317057251526548995422900901750546236309841234736161052433423661810093495877931796060928393476631501251877520693806992036977682533827752963063713525473607799654040240041377867239607479559996936384777013896038678955136921630564170346202140672291431576160847845644262652414496153108288263143759884058777058537195076339932754990678495327430273782431977343187951620424509079693727439898614933027649335133719179912720405379860106426410901850833563391659572591976359326807917167696053236183040085001806987824991665980038743495573482224557609287033042151027244123324821271394029409431111869960405962671666355792074202120966982693095062647922030490680438405847123064552672018975569781009717330374477085700860118045898624470577469739093525424451099969908413008331298672435827020201146817537519826989979081040237414959533534565406906275039008582360747469342387167031794834964913203093603130721150530788848972951271177508593326933273061322103074654874616807739089016866967863748014506129053974962130280593110505380109291792090743781080280574231819238106193036864505372412259870213841759020591400100375896657539219037654695805999121062001057166991878265786673522624470471243671441478134560678486188159069086063885278493928183777207728062892304069017719540621225163065325600521793345900050053209780274159583326416923778951885366959488699331059169061098350691223910077611885231274443308198300701159697827337132156604726883367351031508671077636220207129694123962893864396618891292939119394216853018796177703854698336981096911127881908502364925553881942102760607008331600140733325787224841003053910086783348400823416282307003153252880012177950420697138640258039215357057503867984054371977893425415885157347256916511824646888931087673058987411530353527984230738679560942965038392362637740153528048509455354469332596328959101390726876132720684340983131352758752204588055382120450126086776646525476919071085303366523687593667780082275824679055117878698547153906268093941667947115746016875619123432505113878738902313443485801213755144132427160991478981050799344360245205039779847132446281873455108622646347382031454619323499295087577348520519992968541744422641880434054766469443406151902325052107119783933614876581816370015572707830045349020239213300887917364454683120962894596000904746499177997173632513580682295400893330668021363559424734566642404454327971234289076821590882262770855608306821154407447764517545595767710780027708146192586483008114328825522452528763101038642121561865372426816560512871689230930385873678157768115211987991026442461903359456623267555187159268906412363342459875734767324904016487926999329545835262422197740203174455783421147441279407375287289593236953503482634139794106870318606869790965470986613170573224000567931972822347050231444384913454653354853626838025098573608810916246066945131928197019378651484952614667444771546094088437255789608273954436885940648969670428802278007211921424373759194150790383394349542932968982593629150865276728021233083414324336858146965690720740108104134593576001567798077226061420038487909789947167041779072182361618030331477005233191480599996058287892814512093222706981434316090931268859904657901588504931583507299322847505662045047293119104434755417116725479624293555955254558785591957465253607858293441729329384176265085769837642648317182437733605399173581552391679543153626343964150255293660429236075166845189763200039783178858899214011118548738745789237546239701857252597300226119547688715696847564121526740338176672711317422124767675590676965062830645450199049978750911198861146201273963553564165083915792887623719544886235643192703044121220860363089707301121934824324147817788964023121402771397222096370018025516039214844517369053833029210784625887533107325032071088798862438519408292796430450484044237254897583606712585449574183138948957031977706247598113576900970868797853128303384185943807330887324220155282279813401240640421896473962400031942225218621623748089969885456077156929560547458497561977979704896082265832286523419934294044308695339426736227846238619591718470329121276882176265468952277611635655052603550714583954925993566686231466245774785295162958335573055170913895494692980242033667456649218140337684274702862406698016925631795322573453185030384630578124151079239806915296147616202423199565050930196179056429516980141128964691393830283179940947554690382807572566438852841795519659499193857062032775476066613226726011276726793408585490258984717404983340877189433990053547691051602577546301631466562570433988073493388980439228133928787453167703716682200942688646503056273818595842161267505819207179107211553385837563653772253483219824725504973424018336997038547223651050446289739372544757026031332233910369951243642808943440155764570633073130059027836257291024406322636893674757117270962311112103818888597541312882431289915286018116909899259093901678089926552736302696347602475816547546687219048891792166986292898342841956417491239582279439848198724997179482065790632273264924170625087961411178384627430537283080218169376248099499576933958117803005998677036946014491683913620683441043254408295173869131973712844401321063522496303300429878134845591420762643799775392069003184113467527921645676533452722520229569666883580670621819325367006321475931162245849825464884545843084025388811706684621661161713929784376222431035134107736916103509614219255656279668617279835904853562608360878253763943088772754497267915005600174932932546262434249077804208780805521788798373883848417337564190242640746444392932693262257403323660634805726201500894657980189135200083120642633352812257690671606436372661354021750899581009029169141666145153723101869640959046944463388700948717711898101501009997287716654712307304825283721124289377533097840314990335299569758634228866394253004687270861652285601827303932605617784144073172225553733326343272911132921764361909278541439156758529248889518539623172313612003566480817727053767585815013515850564266667656707004226495366265704407592364945632809528946804824075691346982106929201615224864650779727515885453525499686571990110195544115516552980316205186339153417052069140851395445541248366913283865234972366480811296259788646513898333921210440845133543729177590559051995389487881712885006884108079419847174268718046237690454743725754908803639783348925796691896934614182079609816577124634422478477503709599901104223188470644244381824238320306506321148738788999375436910577296547460792230392887524547039589598495829227995750562462083737589778014386513865614910049042682052009792293529139383504493936958512242142740036896248324273487796207710215743079177849935054489786821622748537428657759112028253082632697041867861383987112831082592630271741279079858522071038063439299492136055510560827960247209676057078154100376221182221310631998854049235399608599837820986392365845390820462464577259637804728495120008111440961581125659119925110875584456713859714549714193971980180989807548134008789750506277474275715693368536655714297239641285659645632181906856181607903437431208179827431148110783451967144682455572997842096205416709837555781738042782272620746013500331611438087994085449797449513685415529975069698114706600442213839887988613001414821293013476020198383062600369721181305930456179138312149787114737618689312931617042898431732756396921247498425281108266051789761355091308675673151565426264833873245574061297112104718917748418630086763423289210734502642457841787978677032285217323987510998280366491057265349216355382176312196144769349494106727093793077513451789856255054754525866531477875945796099699203848752171119969059454782560273059094132160942591410211581803979023297507380984031843920931890461989231456075048520422884394978969380601102347660549528192018612676685157588397093425319294163847574398735854994794645951405906665995578489591265698141059138758777213917360558783778010401150283611695541360049357861665700428715979702086857474300357157888506226116013120567352071754242515694474000010806448474576265289225886991303849893594186897337283123402594443119724754387314411495597125628865490613334723230904841556013686893781673790790083165388516930580224119746230605081738497768539839392252133196054379309796367102960079238143889119891762110995351768962658421070930034874614816262923049458169318003386766959179479239664524592400634895042408718524905644360116849717405076587620028703978889217346654090556052137130906914451802360116856407808214508523577004903852506812096613342947447521923645854387567323490869065401862340302511564628368158587024222801458144623407711472741081029229984220171232963242797686728129326002109636313456090335782354350338274821642304603552109946385572830020794099786593521767226219782302181975226252604820172923049340537083301106547259217779587448714597961399833405050701973421605646843259679269875180302519331117588401091182309559483531852207368874593266662071472419051064628962292779374000204459202302639826691922065383632464819975697586639844469563303767859727445135747679709051989825082699841510120724663536511955747958625374368720406193440443540790680271159764753671014755072781471102826467606722279868056906612074257886377250917150898070606345192770385128640508837916346538408643496766376213130899227945640777087116856156785782085377993186814405944929240165364576825809495127867880356988212375857026722073148824904427600030916293818473685352475604672941273566002375488229192369194385075793355175033493626400339766486821178544883329180047971742029261585227734169286959249610659240005678612480294106356103674209544096263298711258188335354563321093959176137662930709012860646548999422118608361231818828569577277729171483859538534412522299414057048788745562849569139611389866786335377442449553272622486087599642688879160208105474703575046961592710504566126017962388844758324236360377621109013064772692170367421159283172790263910335338875569250452627907578356404742196876714594534025649738301955889034705387697834508090979936763942167305856780394118621760393352801408951472821418393313308581902953566867196029026377350104837053721192956639857839923574071552266361111358562447921866374975236737534759986931875283939715565481212996906691406345726033720646165083486993080243755483051716237373133172045178206845605609981706920098805537343205093039905032577352490193736318490979228028623065790533371125630388073561217942965368329773003709214424714123720364775597086598353255104190308777062408965592762596282525499214991110788092383423749710572579640618141711357655181544796505043814824929907946566304906043859630102732998163715749336549951162104397065218900739712572052786903327702852099850593974733199954897494807144760167341436276262051409226822658662588324664498017604896062788548384271255383847975061911734788934805549369348754037678569874906264024095616693720954315188143165017052609591794116176910713625891361699407541171056256135692596771887092078485593583284007963273175821938453258653770152351441939768737420861891307596148521539008083079979244225646218533153765335674226931289813600441051819336273898956787552700810390162202347935880293966740080647694860554131737203942360229172881872368335988795356453756417362114568023911245169375617701578248570239997426112890484697957801695953828472213137163885503969408498312504801254141155378346146047162466108900021636199868189382702256808305368867476293383672096533752626206704747160872901542577442714052825793234402588173929793987316496677226431022085475950315919065264061475620805584135727465834940609571127454081959265001896526864537987232859282508575411561169161672219843154384375150771735855731131693432264008238893865008534806263443187691955745920043840776917773650578411635823403803615491827961796305928656188140574641042964225173060401845122523950169478654894590103302117406049628941686951682474186919415998226468215879236883677583405093547286687103433860247323009667154907730116908431271409876050323170462823171771071329524392856471771699108763131593882499956691216169780637953327135120740463448435362044157463608380438750155290407807949781834456865076978123602272984331831042028634330654210345916031853869858919905008552171405534994888333428982447683602986517629604859153408320970936578934877474153546607864310602245893144305704405359496303715615402403969237370632568352574360860430993347995942878836212471339879985432821728858368267564578174008772771143977360286995714663035634881136608159909864699562154930881296471405046059096636713236063914614665198355864951557119920837744127731961822355261574732146706055942848474077106781000872912862017543551595410008995363555777209355436891522421864861283545072250916011737969449291371384546862531280558300175930694083059763368840593995155770131756671443249128676290885327310740237784109035147029413564599558640962108488354496041041516817961216733534497039582315441936106514641291723611374566841721799779811048993528129085051687444638124907804148594689814239524073270423813238962127386096855749777883149828829045380907191582104359457088509295103618602779983618690599711432687685823936774296120402706789234184023199284979751147794244657501735353614533696288677063167027603236275008382970136017823671447211509579181826003379094877967879520529575542119151061956452631653443065348793270188566170174561840189629562096566544690128191499213980471026540793671391969471121826589450364902244238610432686805527470786344853556753746102317555514233834205270496742298790902903152265898065598025692052240886933874211073302685991672057673968152758991767019201269648174823584988877853653959314721595064925222961347966385685483149741369220955127722913615854360925921593230986965276089414921984583718555302766550274578373726742653248839989668436248557710245297520789741138608746868589349647958736410595171676008476400430918739356556619895093501533107047261349267578507689177383867057886863964522349484184618760535350742819542045235881565640845075577867165662461037287543073612168426241220737167684373281138651351738213989687823268075979227441601285569438102284160305319520164029025454588564689104765458733113138791416017498134299160146606764148919289319231543542797133861306252429480943609377114890825490248840294617634066516140704458160011943832840506993752339889063948850220058850587546925132001033548913755917009044825540317792541439334017672148061227101313459621747099277310838073096780620517793127791218758027209157503369328208374940682224065854012837966698482721446812394282008866444271485361736783924187474574236363833501076499158203926732400528493074161189849827284133418874352866326028491269333808362022497697027152369371162776423944939496803412346227325857858918148619069790233730804423844124816443864216138744591658131656368462290923879947648812050209277419162772628443848095721554297157159123069491171205997462725590349518543232743215796552182473732780474380019358221959177842192931906253209376697039419150600772495380318172788181411202053292461141770110579150272999979909685452975530631371337782725286513455253655632518898208752347064646545612755929383311860656408794164760872694453063417841840319116202889830877522987738025087155475386843292570949640191711208929153422166117754924515216389566420800422934873471053001572624637572020686671245745382840713536759525847368322273288511636011929618633759754924021754339960881989516876018876266963592504207771625594920805768144871139875589629332771806904699066077918799385120868277561867490776867601487708871562854024490185888141094404825749426271704265657415370585060437689595249597893045189403055818911164528407875512039535056655389058112573685276874369924182574740766717479399815923611821827518039785075177530267931304298880440149441088840871597756017252330726338636227593562052208281355115368321244794871737553262868991851653934301461222740953518843081737921303223987858569741776938564235888309866280674842470064655479427105217584991305869267205458948392264507397010509681358892926196713486728306925734056361279009732385990044951207153753348626313569170466432185931145738439307959163124234547160129823152054747569279508173175273340192835633011629531064221698617878840756966797496555172579440246077500621054519479156861529570461042386933824861518472531106399607717104068302952723426942796609338463812133843876331942365632362419856758612620478105671608822251930430125055758207470594909711900111173622564437683053947474764381390213618632551506244311935038599089853092426491839587732443578759126002393489147741298668029414699408028296888401165776639031521173459611756197966128238016321477725588781669168763218790466802773073864871093754870141398794021981590395270275235052072892432962781547288430929383929831831138596964311974970432741635860676657644042734448092892133399365340293128551831841953165182345300271393894682131087451226422255163375070614196735647012880780510951260775065292363320734800882486709950687939434009734682145390927154868400136305428992937271644349675632942015936274545253910630818940588236245760902252725089743067104384666595366623221026058206455972140002619315206720480732138210727092784328859192829990304366169331835409352528576645298482234960816011804609507555152265752537368943550838585596967860909809231177847508614156859939008398521810009127425760899447066406706922829941067729574369295365773516390372099054220000810719824197274662392083113746607957493761501751147663075022687752506313434977722992009612488083589536673736681319871936556802996829696619182644551594218615040848842923972494043510492297202733982279432105427407011110621368337039099174740055322925198759099851560064075858844674151443109555182757119615133486914522924254498554005604922075367238520370444536748180791686319604852566123505516178078057997230121660976391790939289881360340988332375987441829905978539190552284760382081626006618955230220200071992047013257033112286097659998908235631633596418124373378746053554193216726931606753664191097989947516140252730657720744112038672979786248816442348648329485739967231947708900238251699787535964651595871418024864667162708781654770970106627479093618602130233722370835081478561810652162468232194188081045780096305212759923927534010543854858174083650474169012220739772081697113368594706277424956858604929923671281954681789048592245252157936120772643200470258049250377729265703885732731756785257211072803561601008144851267790581357186109682365838676650007630741384046576465380379897251676104163370409282501915491059784442730601149052805902126581530953899886544343517472408000555294443493001591661360173731959029630092446243325243439437117248998341360686730618242069717249676744471617757680655007741203472846037894610899822619368438431417653401452104164097545266022972321393990264704744839267227126778989880444126029902813843036444053882266059324208123431992059066225836163496636598672798025583629614226094238638902627203566843655660170782443786520143868175850383352765476925901304845098793794121641904511244744014957909702700296723679062154303912596047092008641412126912510380787853839668359291615210677007303002693135367472886532184797807480983943519727188806778802617390498463802149692427935732704985321649227078182671098146712859958381958427489740318759294687529522659135712544698339723642837631977724974500393737316242271387745594239848074664269591097024015047961685099423205888695103625948457395698721619576579425685278180688052479310076447928258391609186369890355361960341012910789197668511313124008463717943553947915001242215988142400033352625828925721758208916232825127152244451147790383179602896584554144241178201879115101298225426394235275428851549092134452244928414216502513433089783758223415065250688089837873045572421751316772690517239794785032796481781264168299988414619205567411050989191335356266684785686458462959745034091846309796451330803220375482126746378274568933591108300811169226903736068955347389947518530602275038574394573582426843399234129387281338841039060544382383322997286139106551850454638191875670669549992740867727528831540318845130698272548726914811618543316177712151217632931477342279228084675219090564829275520128942228247701703037403425053437395538770945167516710769607016431947522037885003105057983395990076144119639307544207852617466581779122686100573302423775735021084013362799539731389776191644007658895637949169939582987651031555385193468405048571283033766282256772572066245642105006593324900237518198022268063896510866542620794338897777248999000344004103734563462147848236850831856826075037129445637081991619964378639650923258001985600252951045619054831342378184229217954018999826406356574126802384981806150606127289557528905348760438786580744789496539228819228126552239910973057929009475197712314020668933222746239289263800277062842348546764172893460565309586203421835935692980589205316980543811389009635581882813504355643765336870515705736081093890192795485147989665754603449285671988558945334803557171370266539048927210866203119030573286364511600568075679684903318668515245069133158614104490991710098971235724527143088636238732947848979348042647638214710061145998001391144748027686016688937300551820977303071280642889907888209559845425401944889584972091609861366206942118718839919274921764679432577847896347121027907880841155219598330914470867520443823728766840886486315076422195755593976724047831260085790021528462361063231149517144238994543046720115172159892154150131253744885019494298899940578717762372723249327294929122135978321847127107143820576894465611956647571444835681130008352601581232862966584661855756034881002436371185879992741526427361174529301025373083950929214779681749021580315259432688995112973550687397283699935426675593404567774987170738122267080374258498206420690980304427281226921468049483544503717171296965820077330175292097602087808912039802029918155504282979616960027380642322015186986926529656149289706397218193152207000289768002944002495885846103016730769499099672182704104620889711007477389236915824955756775721308042354490556648899577321866251712188693360486529304940335274914073302600178874459049691273387038212926200953840067393025577411830019901531408017129817948659139420658380673343331129061230994419450195241322682786843697145333904414693468015685835787482585646146524479496624201964456023097884216555996274008601826554798722009315333700076184348718784050500998005073971185852666105029462514086373104890211031555982402815314585828118049879906364034366576600416522430708266310171922178745149813347933320922778572438294176127735886895415694647019771607275259821665074880658842766151560553300341594661523748423315554609622644465342894857318833060398345997822145888573469175926937986377958248406537394235880614443445330829733369204027384722295615590438857929582603759909177829178284812731466502243616791601405233294500969935777703410079839178186494477868376177793369058217036140795942776709385242264228710721355004725847850978585562138724550513062663647231132938290937047255487185834275530421949145372763205651610127135929960178394215375307675863365095514878598652937211894969615432044688468550804298863457763254382815868337107215466893056690865790549717151217119172173081867617399203153798154791661379394988456382812869005151381694922950967199425572974384388031475561208145060728443187000805759144173439212731972625906300202691393129430918092615046674371235278703065748782290078890953760410071784667030565775582497426373968691536708218393303459283106547904746752332129471692130424081270314983077287884779161079566296853049177580230666722825536698426551514351502056461844315467430106448835049817781871876781548375422177461877553765910697283658381228872201702846538722181329283312924950560895094185877353793672182683136677141483663730647232723913798290153028407452424888642439368847449740955189229276329243868274127605021467346301369548482163613150397547217389301140507703449071425507853702700483543536709713649593465105829496043915781676810403368873513446086223690370111816285191683677617093821055570318063221065618409725526534920931588730404614530005902705623460237569115219058712915389115145674451856277206363767235787462512170772720294025157054609898827594155504192099534793674635222381604856922432508936503263282546583595115287598493714435907547197153473889568909180093538619015452743942997486067272683971447984569306761940520928521424959075073583916237440611952160830427203928758142484773505774640297769195162196244632587074655274180823111420880188401932853364761041242469239896947862241921515836346823436815597361754807971787931820553796501105760938563829753980205607537959080955023826478976165788272758997136421146324488198700549782532316177307490319475776909866538161569798458611370257113992972552939044265613945122523378801941391797778991867961840932416919003652288385521858235152588191895323935294209114991773979405783389411251940939121011270596907328887284200356281832661287744453472345171944726132868506750080001799648946809166357074707645450639938691077563887909554521510302627499451322238011404951788151596848259580851573166568093700309476551514920496450825991910664616128794993553390993458228050610653183600759784502425936955062945236914748367683251757149940903677357715412493865191143039389143468976478205657562079098707325682148758519519467899542588149840212279126472150329718892066861856782760796801025629501182222727407216739580216526573194966111467122158380657131811704111645846008394190248891452481505670990834911906962680194495507607496371137431440677909807573849753201150905286995538515848760222126377436008873159832208687369720091552647120204295003139160028582424294399624419356340319969834968403319878300970656013914861907033066301698155107635763483731374366108046439280786512518378710944771486485607533146950443356942077873158779771492213757877420516045435992064091954284513201140698477229964211696921412637500868223116197121472888388756880936737922330985785875252912305785881951541372572066851773973137677921861405844596904102319707387197798290824358922713619564706623408087778658579941454380471211088492014706312940880112752680450669896199021219816754426886677352774069716779560001760610088646439689388700962817030357226497338548750511487914110507482863018727199387001957421462242102419773832462081992724914897608572304788191411831516658476937308981561445033576155628201954181926794238537943579171651130442821271920729825389651397242732230524664837533589725382423726647824898115968216273676621745135825025936036597665839559946561984620120391659666818524764438750968450468460574958290033043398251496993123970197529782954025297146517222357538547708355621778850783462370143605954865375613808226066832193572629983603021927011076936282697190332967833420573922833011829923320003120284172694156270045721846271077851268789705747180250699174702984167158628996364755236554895151620802121746147809052965778494968359158433655546378390664422979185580211886225354977228789672443320652599203615793400412182006669409938396959903211638102812185847687912677644114444631846050479183113666886325844839913573070425637177248284311794423541579631588104614948932450787651128220633551897305956338234710094576606097346069862185207556608075028366983095539739739960321800252674915631720033887021892307652511374916312525972098248807276345243461277331603516654202877365125215313445472772265321240391672759064917828443708568464692887755660469130532944822321464118282728136566600597920102120146552457854359289013555627422836911007483171791592978515517566336993110322355357423175298608838921284272569101780005272824873068705058740848266692646608531021807640468362927442127654892863910076540533331847281120614785172911423188263943437358451592088280368963045772272159797522650713434697354390279656803467625047151796262337797495434574529897665357098613643711877466209120289141051787790626471854930230259796552645694463396072570422178965380805678993104663332228258557283086499330114216914162082944258263195708911625198121418600227602480990787633879702334400343011155141042106352124676302542019814114023767314718905541420391786165931809540034783973667294189406169439704426914992495682287324323765603927079655544716641817806418388196030953053976985320911202907956377628496865993282290127962796449898937223663176143494684403044852056475514810445644782943055077460293153105823611976194377578638020096227073890198421191072989110612821137805042930947746366203886744844131384143993367595103662063562749214244510338767396663492195731424829983111248926701985444235678998673958123483801631531496314110120054769751618385091675759943852450902154068069880067970990152470432078998988971655677365006557132818369157017436526412003143943468346255925680163487618012830592787432261251350377259917733607834982448392526928713982133864556628420016696663286838869300840399163000361553587529836538391895605456590328173228000540475917378533923477033016015219600667166138272038640134313937952066591072345658347686855873685010250280949524798016980764279014306696104097276956493695604036223903917242596861406680368354039126375111672327701444810117937662198335600758498228743171796738535689163403272251780047174009446873057925245958440154092278653693398931034187670338093300504518824505849931850805960989023444235255171821814569892589662867991146530885304333354287767373719752834599388299896815705654405891424290042944523256558498017851318448059706304006493341531573590706797365467694490385880809487227398537251170720027411010175139476346809618661833766314845984340067337668753365573779044763068007074375336993723153448285796641585698470119308171717758255752073115389206581590072169319920226492820233372425448975995744402551008467056207380359887965147615870308035644458551063978852580249355268880642887462822276486349019108008744362027342313785268491237515128562642546974106477092443604454729557269612271123664946042333506223778359758277035509769522731891819928966998396432097234127272092028171791138908615232578575197993414341664092190794191176161462345722129157288798598040994089891509168697606860571563157179348286409389600915084686918195762424456768193676828899153785156285284403423184986928384775646023741022752080529137055406526196298490208824719124386079385892216054257558942212663132932768874758565459425454681690504866038585515085054917587689304137018402504939308673288728062761459574256439628980700979233454012834384797874824028418809615560489978921083362442640236043457052702545919574827872909270517985366542017927220552917905408506199065455470247478748067593483290466038399092422571881456077176212263887229656766051569851267712616110582422360792181781897077178518164953946169581349045531633730497984545298882333110736887712996143941734710434258964405092363758039257889214339804424765953548052755290281360365981720980622917264399882853130144467386364115615255206996880555125989306923180942903642113144767448090158999053279545609110126159069398954199806791161073797401522616590162045017904111163653976765046248277224758484947082968746891604160805536129883610663318243820335137312602185224902688275552457348871818583655761044661227398258900593274105334551411162086857482015518984830429457396161594371383566857788308336121582196315328040198847309534830505571138935487540606395390554607389122358081139473576694310846157284782766801263070763548522049980254963627053918842683287968593944005571762164404726844068051843840378634688891729206095621826207075449834276447467292280319513916316971953881729124694247595491945228195760500132467245715351134383034553400314676623326355612760023354400356541017173370456390977692524663580939450388607164633665611364080611414714817566722912743591741868553807205679097557067775201876670851292506748482209771086578418617593324842511017259994110048886822158558596989789929137040912890101389550524313199998738496188672666963242794262486881339250226681741926198798222008559082532086188956054058911007544234451833877827562790868268516487283799388955687705321434219586554610716563676959319108443393566140154193050700105113263097787011890888056616506787633183689146553535805323604817922337128666561334402303770776662889308981271598867059702818753974037219175200877511692249583593571777949953636955523364477944082543869773024854589897135094648986141578405309228209102334728893566613892331909303359647898219024199158169930467895804488308514801813761921927888012299913321349519165590040699487934576609070841599740739794708192131201253387958795094191655373061338162327558694102006914177892651861716598438321449346280671997231776456726083126148968546406516361540161730480662492255757181828548711998449258883908823368620620955787485984597648750330686875485570437508761635990156877738313645065115145451011222650862969236039782427494096244212919375406643012620700162568653209248491769548591208372668121556935053210309622511617112438475663662061232250185935061475996100031358323202446580501162068639484649505741154365808351621387581149533224280945359466963887417719563531375307629714117958277737598606754805988165873703474900195217239386052998963646304293423769145516984474134844622195320614717351803645675419380116744296359642662246072795552821862511066337802180902325369494298890824366937534069680983744063571896005624054789790006658923708429313791234201386362648003829041025106810172387300972549004435817959892386231152946056187169411695807549927036799376241054712944790923560296081965477546813406259206085202500970221753073573546303287167780989540753731228870775745531403656461825662365719768966084019255123351055145755972819986228067998979729573212070247130707088263145200778284173107374973201747923620812951300408000118077396096343401997040091537753521184875005779433060686859292751919574625074458721768330384200313071785448225501904595918241620372388239735507311019334707422076465515716483463336659297162575311953922902708854676795290304815306628113038327372786730020465395121371441622020451633562019267316621719348846174582039355881971688885005694883003216451710405618105641384918999102765577665360798004735663547771936875584613187390274744804424245674676495204405971725517512037540103370421860298781649168673121509558213692059802529984340574765563672564815074310705906182232553820966999634995825483191476553384513379401755914394303057957259481872074477262965273871947504956783424853158284936132983925262540530349435508381774775304728263252131384268266145706217240235024389567806726018658566359849128699187785708011234695230395980306955446013536122948820770451319189116099592420287839196505335798447588755925239919600263914359300553890177405365897227736593723413509330650223802210468005261188096958858922459035652308590854452092680691367519085183347746133973407196458867492180865002160512880075591436669466938478388177425741890735867779729968271436802929500089524675760736715074940110804997380950573019197181568174094373654417192969390958691827482739025972456732986548695514890155147183235650073110854535179414436483844240149856916445903522110127943400172630431477337460182458799295249825379882424869037724626298867771577096657210883326918841743906719461310537411760650509674736182502917644003334916110071176911617363586984021479528475731102552667773008848758719235722145774683115739731730634073933365189769374661755328811784259791733939040930446511943645162738544753244927765190523539145658725804529966449350384373409928614942718625746905917128661447978828869420280744653937073589527543211855371603016081272115429475575091632984318999518670717481630715324201244066332005371158383610198897265764439597117574818869603420212908618471643346910603873822272099718057560986567681325550540270930344806578594916575510002664300621892762936085649655966087624670922509544678500762662799957657043155178414605473630932304708640497083104226290413511866718646096583002608797831976973666193225459034033705782786207965004143072957765100921721397076024509266976964162230166030530895747143218325162106944714832023419097759115853352161931962251535474359879967779906013149383248653037156598891665595440590871466546560082667485679951707479538851343131539949883747751820967728465832739995047620330562548052382484786299612714886235490238227260098582088693793408759129508153297391808398461444359810594880520005373945124901265553388833192370945493784411170492447460871495764675690823444785987788137540013961269254341510503148352299086530429516332686392482555466836365686147196924147897069660157868471391432866780281025973468819851539751445256697085376668025861354566957486826278086842894557145363157911164306717631887072648677772894249936065509319502889124912135721359265882116379833315168206688303073589112219614641373658026304210575226782026104688761478540652081043248422967714450411236791012132917512734805999591053421952228795859486811428665545361890153072720687606902044332783020605900008554378149061057353601542980107843138762044620408751893747152641056705322997217037106019551465089249942593695013503498431371817188086600445118906829505125589530832987992541456144905659364772229693088000297182074786687567409541469644522068147457061743323104229000247797852820187309523325394620677684154229359309215299041120723510558657564957272963109996544034514805423555193043247759786092785289613432618420691375281242440953140876018685491258527904164246892898462655961156398696159069043991175918001227116471576899797303080820255453236928774215986111715858267942077707180665303435615948076591826160937809168693036117067894297297627285774704879863779467534949862680254207182285620474332527718291395357359564016590098388540634565882153929471186056593706163343830393168572391302440481173188194630413417316948746118041078281836160278112300202612767478714207990986499702757757107233677178360288388265243025212232918214041008402810683658719722747649682708323157378763399179860825727200548561082276714874970947570394218733097218289900745620870822882122156800010937306038808149650565879274003114034473878591516208278056372715514061571448390535581718325546072404845327660240073609755964711573330744699302544277922388378305307469873075021957942995578770911125044825700676975101542348319289707853571577617616665453805041646708181483051926218902070855153975188824563420487359175681376798162428722475112207982491725208976572230812729184534882297529625212835820416263227480499072113925326767543274091118166085712773415712910484230884874542148677494604540111204910830703581461312017372183925033505703145935526904705644413079389965529710773690140233355746777400922341575048985357022701772918289982688165506028247713677631765220888717424801561077355371071915973917908743137612169845664051427904516355175268782613921050431229787807679851012162830585353088653323144030347885018091412708241679234319704577518094505518427170149854204016496743279395325572365927067768192019543064675663703196609602047754368363122642904689622230548730730738552305476519907380127210230194540971697400586284686041313704528289748369323853739129942822187064480495512304848785705692578075292915451421758559686357742254190695231071509518943702840124722853141404684124955096464833666714745441821003149036050884614691628388440541329613875149078639996391186740028351795645305960974575865127731536572561540247903625112977237634968652370880112053792094735323245212703663846205773714384466937785272376450157034721136832259132347067938309871603440787538768454418779025017393674282555466336715545303008967419801215852406524193802568945210301520228471286716390419084740402166879105367173658464696809442443118412530311465930029950589850256321802975942283005894009679531752193793146343955727461579388373747504257459907054795074339952637783839243330840476860898715129206430522518720009848206005741890333160956124706601876705039303246647307901959823627994033625457531718853606472545639628460243903023004396454086373719308680209570012400308266282440746820677466483922463403001961009318124420383732021864431428352847036438215934013695881127760161788552462597758017135172573040282220106957919805224789925296724901713519334362588854265849274815453087934238486444879534173339329328420627073495284320096999992482299473734112167631680855520215556234286412699031179851047690926732417915540930208850720465702821526303038505373897167669782247084129345116421396902962247014609227902954667429134409264513482613205949494862931543848579028742687255282204960112037873023354039183892223957768233718120957303848370309711457159123871713686070526307480079853124221871753349793716211580786875640931959506884527848182862971885192177951366942855092732443564966818588407238748048302215020978238299461572948992089711710259415888537176343330392640651713796005999068202740090257444583770652577649204433947459466718294698678327885518522264226791402371773701138875750746445196957129845594271455152717307109265678606725534618947376109706366354693718593634871182999575190374879606409159280853907861261697238680896242427464230038274829477158475214964589078173627079399037827267990530192484669053628292660364846116012549851405108990086450296245449092477905856842089910114447741998787517940377132213141630393938546561605271556315551854340139766542927370386133069324212068421701680074759179937795973540820129404041722433382944340817790170021310100169953828310356804838410918248519183208635841632835202855693885729345340147297318001924061042106428603087262646700906867548345485107889637945488210647327779474328103275428341136445193840612006449792679275900294434716352188348684289043427597557237690624241744753392591591301510718957648967767254211983537842960308850359594055847870653111106464666067794564148693031734816003296136176191546386478091294873920362014917746082258522422383229541716065861887561016911715527713329999150556397564553090018602159930309837055599969220021463801699576021967657071204165238430574902836082925793070544388735045986201021234476674205354975773172057711079151141449042716430428634149031261721013226662125094295500926260462599204919343346717969606093860709330579878878093448679408124248136748304417896710126217830389728686881314989250294996981089479009155527215644439778441177856983282359389602127117419190074598570062715496204607995627519753527195507309739723259368378602984880468406864697093947717968129941493758117991518890088623341347246470860936370313140687018597536216274320793305920510674021800811420376854518649099501919029331508249011916744331561980401376763108333528030136406379400964583578801847609302718599570824492565155566579571444833643427966728558059884008467532361505693056702596376817152388689207512211613549209117718200411663595686323306578005129972120038266328798460086898886864648785100078946908883099067741206892469934047799054767597886134718890146255817299274428001623177322220393291251977918594888327119294074378783664057597271178134678375409075918901743274187186498232767717213792555811374989974182421199431209894166785454681047747012860732641659807474310276228094718600586406512863078147732082853350307621891264186416712235520795084491610830766360525182237839615662706166385368482446663303063116889292684839855881052717612766610649483081316027242439252979089239313350011551068395789001650955777302317699024053973779007499088223530409366868775748307934924848420689743577792514313340305243058696243986542137261930345006271724502788681433504052841109662147282701357574918308829114596499847478699755318367535753373618466571829322379144588039842648086553924486783538590276803357781291334638821079312547435825468615014948364081164935436680465697553422975318945865121516723898378312982759457174039465437060006180287089421135139083409258951045634269140814761710924483641606920774757698534999747255466172317076756655737207611599220002637949077993734482190396368319873844669622015788640854549878719924184100899493911275702796982396338215056384930582306733985116222844581766164305938099563527085061932875622824050282784312975578363433445248167055241202082572471896542582734164717643665811561297423524991400379768830718462552271163391623334468728458528394546282175558211894297555140258269817036757837617251022192776141083262385010013036508247031243581303216806295873109174873220268284249018672385321492078846563641448498854678408441423125648242457195852534597040920749138835978305634030885848168021807551834271419943061298623297527137064103578589061434914255262524384931793431378748235325258601953140472324801175995933397069268823088774301712354948183415585896539012460007691941930600263360725123069224877478401919146872729057579727023365976369147882692532558895701222566895257014131319685589869877709962290263210953427336351483051722163181400175363808950974791276598353837055500790816241818610294305465585095068264244347443083422958928792705882493975989922332716787418621561410012299759386669465904595782906604639814705799438754598689406924060139815562893751742902994159660020018359147097754663843454028916187921873051110087011951382133849888881505481386785977041388077268634296223847626721490703057224608338946514786191527971235523269543435289710617742175418531984424565418018604396384803426155657090568282240255736613339551118624831843718481683212155721613832210151772452026294512417429528577418590571694462278977340502537559800220230424679625231337250820744270916414506286542798293544642566361978494124291487816965012597283675626463349883597019696089818301823254765426101517521998325594225133979007247430366523261351328358525252672422432945566435909241889546682474738366693162227278095139583778233869178095914993219397056835108305673790488852249410384901117504479393336992636286968067080828989607882066529152985847324638480934819025063198702160048894836140409307932446255175586376197662343301279760008498441537864206257978429786493005797717459392807052186462152344238646166860676049240076382432644202422344530758391038040340475151415075999408856739538213506992856172059226918145260435117028084897630475771443126012006520660218450766914637950763247952976317423889812592167899462525017286489778149390767300364900587342228049072952050784891962776752840844329248128909024212397970123011080912551078843167607433323250770943694464778258751973482055634365383780517286599696620732905688198920627685403374612615478066519109161692363528788332933302026966326505672615581761495834348217333958613774081104475812858171031499786455120909240435908250825109219654969354615727387432820574524430934731140713222038418350267191543383319359855867840005774730411349926831933292488447760861417013080528327406295337292149953222502185236001775007892812272564326319657618015906029673606032684020923580891927746329608980853604747081467482258618545712022639560507810031255038505568062641614781407073698625747302198101273196045201069178401039786218164035464475337404674463192615178018279938177601448409532825784707736864376042920125559732691993987175322479202137172577195120543540365149913706113638167798306098352467622889664886727063755490093340055276089105283368781836243480397584697275085342059231742845728032030674807775089444633552394790672751528876047102824409381788671100237798170861138703936949790997972153520362527486196258620484135162594973222722618401395149201934134945988231464269337091209788149025787254706756367274606941967126543280193097168688785107848640467276151786696986322606632294763871691676910600311763167384165317360030514245433379539363348764542299342608943780012766213576027411972458275118040574187800560271217935908056516033403061515172363469561215375247353925849868450762483259730536019668758182331918956303533070141484989906921749730180506607951341214672681909923221487431837088336918432537440564110349569920154212695143914843610036185650777957872642590406634360465936778366733685254800478098278275399295908908619036231194609796369460445977715663727446837577585763312066078275010323236052202000526159526606049568505713467376178059653011141229983951516613999960993427646161208560197974780189239253562338925530734361815471820013348754819722774678745967590747570839992002246486953239527484313561044751292408978436776747513300044795558945691769819802331165037534328854458528108683720638610141628207832726938118436232927806322306055631409843227747834371889974686247945167376571946697309470463744132788441105035497156025217047973985473116840653802424101895711592023357157198058108314998514621988265147228667132262626488346847184385652880235680085290238236366918370982931426064633750532721031459580314018026940213603562388914392771970298585913899423418410030145372701281388059871786634131824533231013438734065888002374980410113841966677303585312778470740069949924026192272472184542183075145595179545557759315587279009498327208606131461378300835891939837684284741450045733894701138880807608899879325028385648323792991209930998493070320502975659332374025462805536776361254579915991215572241418719396234487663054691740155067292024972703012214350717107321373735453831342879312553529333870776691715065707434904698543534933551566019868452272900704853470377931266362211292691712717281090335955762304821349749531672219246220689713888078746473098631706609212615851333100858659958850160728208597140325464514193312483615180320601396336964227946481738975700045457610222242155680145642807428968542512711195938267237454336731010686229111563975451105235176037996463447180478497213512111992924319524428817177074247552778768246788850262343161832943183434580811158063242097941851567646537678319549400964741491336590141709202505888589693752237348528203385362374743583157447210114420596248263071988187345336297091591275347905317322818610138538555132192987880051595015413434150566573069392920695993652890548925910654601786170955560264877515827837605574456127216333742811624816581234779793135291826990424805365414181597394706433750256930443439535246796133295052973325836648311776902046612274034019534708311680188788294838739852899747584856331376877672919185312335781331864972297189427645644608991243653910160422372050252450490737014288729778889034227083939123353172240253971563118196672670119297723775393794827014065389543514250076156778134927450382637593964163189280431995721256967456416850283733386780551681604068139847962754100649738449701874209446937027481555936356831389011104029844662368983129511956475741624600913215964605812804155987399686691848348965891338513860824438401752254215559504982985205291755610531408003680047492877055641356318057846588947992975015271901906549052484286954262901736224727883260469074805432770501064143011038777976478606305419923008833432425447033860248788033159851287085541059410524785928593176740616890477009587705730427528145326820000911367855859799307463932811634695266444657999052910691355807661447327638180164548861709568790965332900583400339310159841304061058073052934701004269526648452400558108639561711351404712046283428675867164779462310629109669382743467541469552751646800516207690601862801346389531213180710243422862837616669973057783531415525202392806091839870235667587877866248761897151986959313498231102109783267260204986894736761297699728311319039749237477896314803478537864598515523283223518662390363664046924160519425419564280709042042861383851596251578193681928907207627804696094855903843827092770734792589900670686569236904358253378587887435243208666129494837075914999694898424164536806894149636081844470200747642038895770292883557540491496247864173420369171821997847138499792975206847603668407734414000797716213576748332090815350632777250016141371858344940241319768224205142133007763767527133559030328080205531496106345414211086872595004309990747122801448338286190309387697576640682815678477566464856931522201812679338542654267230075070983961963254342148839492121668386269988487717613651396111844438974348539725178416880948616838764112185045425706507789489400501267758148810028282767703499835273502369549361933414526731636174939263536138363591860764244883241357221764937683718506477420412198724865561174928357991816468769213870551050870184293535213895282419377563426046665617243929821405484546775086728944424774572485176852755205713975409173324997833609278378467764345966960368588095485988166415634643868082506912999371971583826152895728878498923380853975082553962328699546652626190140052305580070642898148167779320439066183866117375843802902613296318495613329413585243930896815682507607448370282374859798385099794695661043778282424127555133256813464282669943466966182137665465893468083187475837032066788347137793785306063841647175149869230196130072178970331423463874182628782047737316768591074478838762607960343270929754165605808966689373643313068010799201308789633348286647797757498804314389077860744668523202186354012219296023399919927500989579998732703236183550995095639118698065510334936749349108667847753120502737588805361317207328631910117424758633857540720296265864545526182936472140398213234490480613867539099837260803641884854701261705967199558846100311337842977604841718121137827884282876657218366680423060267193927615677911600659331350018366558853055461290898384076400876902322569929868182472980876676518161644735785622000117281374107316395698054225565604295434685234547197529317227247174509873201058983574868487892424661073360899332233791549557262343472607446516124045542954257281355691041651216993860595463993443683548657082438359218976529176975439503860994330410142378291729661500695173408173261247149150406327066529371220696442805602108523998340040468475590997266749113662113971422103727656663396390968617409899789609521718811299096945240146949096170106581038600617857030816291374869707930026625869846946061817455091719586516848317342131764587660025778643119827549437342862092853991213995701169084777419300319637869288720937880359167455423684880665202757081926351785468238114572429078473650553885550918689469054663914982723377795301056156392592427728871721513620122714287119262417494393657243613729483609563388719060557145446819043949657605000685352404655263565545220025450093745930477475638978421929247786682776243812321891837896986460506338768655945803618320386011286397612864134741446337036551317249991104550291014996262813976640435602919769411678387924828769324387933850591846550237196831573589216597367933658599975685294174223621886692421377716783152238736047466745379932892218076562293339117290029173306626986638340706104583852370522298888177251006710776773945893836895240710383438105002844553823786469296111647680022034686829770064734057675973457853238160916045216375881450037267395299267728450993087854324136820856792235152482918745702217345860628838452819314624327039593932319840757137478002110416168592019245335673221130338612621287269801934850616407123977517209561779933854504622246329682351908290677910718978047084127022982344739401599392968203296506758916356480722599306440163447946080386484343839575764709367032603031631276249876859472814546050226129626493910739877224739388488052153547420841621402489234670898677645489853389561762136029572610531804390967289041563772174964945306944460895513219459528565749414695425034000944864444972810710489339713769274167974241405534576080621771851702270320983587940597877730346024486446276583769407746472179308573110751762238261406905899345760758344131452826052873267600264228471979410335119562652248626549446089122054025138162136352952993532091600201545998262306340532039771525102631569212110986725084359985714820149121426823705506927135437953074981357385552147238257221000136656681718404233512213407041970207536942031086531451438577869741001349231795004989518876461253742620865218769103827990990032962173931672626015651468040285981334462896137423568121268601461344512609173487136207750599902220100806358243714110515511569008776104361717284172567346418635647883156912350800037409739043568650027790646576258019513613076302415632147250284636538842240121675279434709422373778905732020724010296677930626221969658253671353385538556338116930591646499177889797814014936161859319670809486154308600875781519550472926353507496894249300708565162472604648172780375869312077626786195437696724751023882605265407422684639017960532888563251194880979100470937256474345929935011737502915849415788492311603888077784350086416157171263928280475698656398791962270141697547140287723297581404192919140721585678965131546006099130832927277082272590408588387954602441357589962605736174929357990706744224227009887059182803180787587302023793299806945439277031067662856672154388142342637941079695399902198693427256137756930514084000302373391009973047958264857058564856596227938805437844397134666170367869765958618384169452276033676100961827968670770577070482083541492726799264782522020024303658504844991353348969457333999458864322403696204354679185520528640896225120003575600734271127309769895151192057822901095517095564469132369350636733547183018157245987724604129052569137751610558498573661892675072324207458162441961227634295777288848787142262561286534402926531148671078336296182498744612156596700484323592565203364408908680322214254190375029085249450813546603021040571415527986435951584745048261234062824304499588408800884049941453045837131529803947804131810300587920445942443661855239468021572552791811087549521035080565426840767307587833580097367109864627284500412310823282532544384718159209700213403118258890763305038102719617849546912111459972869354062287925299389770555494654413191905453286588333508842322742324537663571061902692255423842189320899729981097642177535664515430354454356685687098328597407085998355924083762457786153348259686451151787041816221228144862647568085462122986953302437038859843056296200828741829278663048126672781008644958215789155916608717236912744245437588565885237295534302928053763148369329739174830629964984180744427289160636758437621700572875533533201842320508592741359049710493537616170649035797479595619353248468180380527757554317722869107003466512473052593708385250259711867795718525305695653775759122059218595620544051914379385858409380977567418176376665876298205753643799907171757090120594173048579108064896338973982414854206186183693222316019360833977305923407366053731675001005035057634587403012059076924331124552910958335133676152767354614854993448708229036959909923022272690036263603348557576033103516976629031094608421734431711323343504371698743530528345767243869507751314658331373333760749921174281454222337935694795618567945284700670220113697998348113891305873599204877347492514322871213141714782747810352467107103074676954610452203174384226404045603107379391012915141053839678303046717516331209364963942042188514202077173874151115073056898039927446605197509031966647161584543490028133318417552321075596884425501121785247462047287677512950908255795962441622524018877018723926936155461055405067852680470945915878942201652119604678146588992712859730885027478207120651821199637506379558099969569855241877429157242924563763125732539869026384395348256444373780643947119633725846969689869461274612600746285734394484337704151285464614214297692144494015544190584836397810513074023237204400842174706775039427168502656867484555559472199402821252674887930282576074797309892515796183310673825958051407199322982308801152242381405470902772150112152449079275147630866817130066103213291497006430352574274354380733382543962721827365775633916537785851836867344822889389886132699238318785401456257600515053880147334093977743149977183750951119486528755603766439541927265902064790401025939000971148496113322079204583271266509317335009377175226790122058281966945971529433306130289851279260144301002293030399070399094036800586866141150253067104356770770966117151097025971146074203308780557596165898980732156722008127831969551390725814775070135566316742287257265664118427183135746091604586181168005051598499414213941857391347490389588279356756325392931203709153360021544136344831262873917312137214161503469719138197324839702606253076131417226535685465292956624226758512641529586943669174381261272980537965560769196220975962305988095107018308136359051791509792423050059097567149607395710121203408407952880252160082331869788620019503969766996490754808425062212341386335878717740007323791634459172422128062323656482190645523225079490625477232075292878001949581449568343787841945106201125386128651612547386933122527014801306742592889050369727205567356272844746869108168680528589162929294782608548687731557684480407687812386496939030518942931519170104752514853813315188289835216072132698793576488888737789039605412140222199723447137880141390052868803076768743799391872143727607210123436396699727453996044242935028384500812179319389167115416079041395822401626119153832234758531131477824678547428791554869739932412097955962114115764808246342296694023589821545366463378918420484039166067064751969757039392635951163548836993397178278840252400923488664712690780166514617032663340831107670398959461973906576059804085669050865620527400963329744096374669402460820378042534846194850345864218005950972785044405896981627891982348664038520486376292802688976532503631655553128890830540951743074332039782721596587177550422433786766483877545845061803982807423142451382000070461930467260255011966436800510098980276611538982906501476736340294264980445478402552580582920300705169061819661579776176113044662472542520190011301073110098375397958132737816517732466613783987103080224084699501599607535157738125927687257332420019550502445765272468798627662615371177313178123667397457059819159608301357800454177556418358532731302453097933783550704646965574243244822040722193452255455512244575160583789327115580420193536760941792198937313708874361479447380822337298037381414589083587743041579986359344488078340487696439254619660522823070081649491150215322414440013536626463159819161041344787831734022324893192327676726919440770641523609702627668039097890244231051432795161305589736677410637228299550130025224425167699295398893989340705753652064245404048913810836162571024834011898572458305886977300506452784377030553412457808564556023226187298466736493461212009469689378706094450587089291794295626035410728964182534938296426776070357773392015551168987959972535019743282301646927573313496331684872923325354958238604764908761922189585028218854004548421103675149310603114029450602231168545734279925546467765097303697442956985003836785174441543253170705566803380234919442533027751949400181042906020666398010441134704720475187450233276890098850235450025123759637793090357064834863831424573316647399067486725315176323278880918094870347896942817266793848503095806469944392896496242425509469700605183704355852702278855845158933623618888116975073643259040572826247007851861703881302722564867183309122148843969042660544444334137425139999726067567353479172801664265046513219552474691648316492437948761033744674819721481266734341361480791736482616003623173923813986306956595116529244507491757380197810372969674702563213113818777365185481914888333405032597367380396004152080131439584807465093047864856116308923635271681058232343768845059111556412496956328842182730211963372977935116806240194144303260934768824808413820438934927662053705952382580482303831241391661978691326584760629077507178011024019258856707056865188067721905318338860452645752529631738809580487018266227170487645630083869068571950646476674508789854671329875271726402032908130525504593284173634898915944825698147269669010299028304564540330205180403219597232687380383016774649987599591134084889282760957751883542736820319463933491864268981942308963380530622676703686382106732930565560306214964592782133310583897429419526431236003418776850477981446627526022126400345238183802402213210900556851870319355118883503238642606119908757602522412571131350766987687078501610242782155379850922585513184531471387484094502680299487282524399070198898123935636019574463074882805079741248707962693408052680922532961191704300735708587848864175234295349614122956757087385504157667540038188639368767064857149423786357793364665049408551836975797870617182007314551100579550330484041134835957117289086196644151690346539400600417186787726305473347228768087990692732948525583158429137914620916184528272808032793938683586298008630365569617413336242878665617966656469434561096896337513854461108247206469228362566679893436835241299612255873536124041428499066508997025564389808069467088679270862962299507387663820880652450143081269925405632341944586365184629090721272684855819465638845319953392197243263439231564000465788584670358218188789560300367456580713230527030832535435171271646588499923585662717445623808047510329136208992111256960420071603063708393788395962515626901474078531558830897457449046242635592364343750968803522262125075370561781460559162384736724641564069932994081402454008219385486925480773999758130848118935845031332648492424607266371341738687776733277174072839153552775959459699238273182959116818321487301040643560199179796763022180988951996284614430863868420549226802973181141093022857035569179433315376490822158149850887480585134821284466409539027304155343500962599128851915964480610622144618187323649202963142162066005726443664787232755146030403992886464637402193524323946965438997600691916410521022840450019202508611544977012935152237314863412067889600859005637998743873787223686478398331764682220126799636970193442076356136227098631263359249186228882385729001886691377840942526556256365920293040275621567344243732308297724096266471292945597900737287215233162953773342583172295011138873884505363389818120954229989315166929803002531162941381262165591144989372310624300862324020962772011058023719742993818370509173086824158667013422013594043646575659189968668521062146109885054171103179957516761504565227657695176406026563759770069604631906788314494215796877999915536250935194044732179796276694362970819743373049433855567020278432704635305236386583686495349014261948702251067309742678450477458865836144564546203126626920517686568238062026404987839243688989502238902833292173660026676467855704033730447808785159918321177467623982912474543578358636873248860765703574199560815263223680266392429243420672812476807069116839085978017800670709021243692657314868574953852091329393517576806148897579714704653687730134528840254553611732098266638111262253876174470102397622565880472664272726535092511853003571091688994705306383738180806942497852760014271329258009332890947233506656087070274499325424209732059746625093260232555730315551501777309872547137747016493930932052123024149865151987583376174573934304895554739361634733837203359473789676379772089684985733165986507717482372335042858076284883852624935636889024094056663768699148382006367495632245166214412635718135879506402753635870972410315804400165412198574686980888708983303887070819003740041584551560728369405705005047847581317067360639814694204385488852853427332424014384864201710106147097778580112351970908912187527669681546916974580518846526886905379083577586533647017804209784950199793403951178787702779474554922791376445218049122118787424066810104138001750476952691559365662462294036631951422255475486102338609209914953072782381772272412181589067059925487462350020179869355095987185981835318028073124599213741962641739272459062531786238794537307048974576193691283122292913327090474117743243903715277333448265388058960187875554258356133120444519655661908461924104992513795207579926440551346902293113888168859726040659433510856787193377993775735042023322393164572918912943047022207818773378325566437365626539165008399876167718821568607708028762918603702198236156907400688055743196820129395314518980228609459230424734316016654675432814428865244698701350432234282277700425439311424163201753160204554145382827132208612086109489628704812823119214260469518321238208695177115622189992928547400857835362626920132310100412837173959451313219297885981100768601871485074521645219148853038781605993329462797513343374680827025561821541218153313302967778757882353162112661760586313700219939878106605915388081003298228320042548377410284807250278713505209845577097783926562580517123201496298899103138516373802914138748575829143775004202018065494877941106908277719156165445019801540635009060560767698887556612398318238998074643145406010759882634088467788563280081337762443020991711816122904938200875874578611328498030386281648134234230181748323797092820297216891963259797810283444109282771264563207296384333642191762032666524567570428290722188242262643773360076565330166846255929460690993840705280055658322799869256499462195788030601321334869534783524587695035164831038557823356982694348350949746545566619250243655111808331224618075679134126884411305408061601828941213691284104852679200583905992951579950904718738286891604529493948190726958677376989915847560615917811989244874032329397456713058091451957703960419288764782263094294400072585796621749431726872544459345298706904152645553728474260890564616112322090748095510264299500854336183896506979757712304666714965824936374839414566684911201762519014395253370559817587555762743827492683631451071997935263641980820349282610337364033927607327332651961744358306269821506074762493389105196257176951767748162909376721669467676856544343659079918729735692787446597913817019758835372148630792071095365092032668009822935896223269769666454155128801859224368671271644499067311158104081921265177651269475429806843086317219521978226078603952041734394199646126425463932210708986830445693702264648088498868156594642594896152733425777098477524228377429761490973107232535798311720795189996782646943276142811730147854881420482013035670746780334408833103672349765274354256328743003214135298641492933311375165190180882535479258010845730313767072905225074210450102542974358793061899507323567095392997245678210554713319854951135851345936367014906770034599271445444025709488223518474235264814912246015290298505551298069919060867775353166101041328608439278600115393187970783851581243325648916713175184368212763892289488436989504847090422739805921234026314034480792622626866560889040594059136456475051627635548128705819726164794779536235555596032276978067676189693512578784785903337599492340337768866804091762842066449888386624570485428043061455888824992928777770612155464921088624889764580331413651260798197271306006493256118952983824124538697428036580434471724913174633394580221289681417133641177086663925031014258497370175440614850830991478385352706751503242615163676753888513301802489608883639657120724354871272596557933399960769827297702907847846175538985001303998766483459721533638375495710829829897904410311347234776127078521607028983415737184728988229000319356121343792419200686864104102738128891093640888599882165197943264731581133401951175430542037181965250477218708464651794456541345039201695765483113574945644798407121121400171196961223404336732473908373168419188329273480538839509726784906095583135983305163795532598111157505137097155133940822300615909628634381847471354388214752334016119604661884257084299402345312216493683192726075609091922083412469077919841928701386015254865228831950251815582384848833880517320320129815498332749146651939490491541336610840470264833328988533731078302252936998586028749626016090924098584917849779113386962617477536256585330570514235255523112419795681777049846999758569875421697257589993365650257540567003521458636388192443600400757300115810741291922980604507607036007194530543510118015611563621075868214183031699319927408583451289170334787226153240013397083366422524498128693232591318896260142334329843656532040833166216492856955632859953756805308032016306694398145722254194828413717491401860079945366206665513084733799586907794281905613938320450617706663816873951254559556287203609066411904797699281725840923793652957848309208978162440311583582749293360177237611632886790204648335731808642617171519729306857206934733729528623970567699616537521814070893353006834936399074904910629575809181442776125373814712961199510766766110346765678842556590843197292542237927848517297488525234092794056919433739275760245222773607370607286261714272447202038601386503916980722590069901359170852721571264115020474778682237217037194697214083483702736250198566556705114376997037466737352590614331097326592872734490256536902949490586189597899847505952348389766485198291064183499127382209606831088443351984933863363985012352748579394080761582675905908304026869102416690858708896515616472587909222717573966751700925334389772894482645859449783865936024855501987892561440953155467293135963897826812662285867887369586402970553831733788755206211655857268206363216743355881714869206049421454272927035722564592337262949573913130300399389011946643022585914419677720951372931679843889416644710713814078360557798529653751038243277210700434753711171924858110079594038281335260946166753079397236803952785462248100741104229737587415661582861704213131801604880569186102386891849886471721082809029899413042401602333990839515610677795230323230131984532774058782865857423470669055957232550463664241402143717089427419751679987389577925469856422789472179163833590137370731909195286659422691982487709242919714508147351456950040677821657176784911926105231337183635627351894128005926392537873111187326318713125993841904881972054034932370984245251249939397907825199536366373114849804143031656053880245423870306416342449303830964616612253724603328860677889634645224237730408765100716931575600826899966031682396888397830500157438298775496260104455549228560866035103129537401630816269303512172939187885053492413926774947428751715085009167941704337479222928065970213891284617944957550155929814467512702772285887679539775263131121410322767517843023624951663015329898519425468829583245543601592886710943064825007711411599295798417355175789932254892478437648789010660173535353690057487428159018055871587239182382753415289191535011291904923879438584179240026667808515597822662761290134698516949891256435673963035756738387733117095926908424880201537257054213509129539828781477996884799099557965036368427440519187587918788873644210629932835019407870788111890186063529754805004747183394221002983873896077990970958386502256082563523901820218890725359944003252816701318878384452345445104012519563411059601000344006295057344906682270966404700679058227971255664997588582225665570543334851004606843341384681135747251626206068978437614897268093257493586408441048922594419565583216326592976304038915568893700677983567208524880066677401935972043506919423525945865840059647865966461892586073723574765103137345402606580378920212673062483472222616945651626569515954452570690096008182857311525709060518918270346649319382554840992385387570106245730643132552092633804497905058771460796017105902393999688063976730291160041924512590209937655565094491057720430006114196455214122080843157449726668164604751830851996758522085406054954917368420325017024552378881111769792496233771173177048126476413755229752454145625424999657623721532886340516021232317678283957739572682564627026025758720517303645936380804700767180608610263729280930469837821367540567663969088091555959498494448414661132218427122278695170442461791593410682238297325717086356157658401348440434929469602764682156442981480699217682427454440428843993148166684107257927927347647916454528185653713376526711349601157434565383433790239480390795182303751356277911973126463257152214023865917276276174803524643018959325924922342750943201911909221478738467446095463208946801411313371958583517448661884396311668139148101578939580943724039359525915914947429499121360961742294989236967242918107945685777658641029330199499760163864745932068065014968136046747143613088515500714634428741898417746578140208064694705561473681258164618929272644654723883155917551942720822688569561246467046090712908272351547628484705906831288102589286650605592118743945056510484500524936174487122352341437365807184793311094867826895046450137503872420846469979903343817625520574021567756393536769444353153766137978210692866841451055315063911739153047969198693492582652666328102851822614933143602193864746879240740741526554831368379844454081915714999794877880934740284405068169332771034286874397241562341787135043508117685082382311627207278380738448113660588890035464042031785098180509811512619019182962237999244681855730957914093916098880492611431782259158351096795936566178951073696851222777042524530263976192357791434460945255950428969247020210905631955778470862356252817650685308076370530454283102807055156046207878472893246250075473074637657034417716967543607285538038684962120309270873638840254599150098854531244039034367424133542031934635635313274947192516852584956787907392252523373494682739630224355379457395709876065410789614381373240863322597425587816874169479420341238801107557598593530083917249813103916455693251196076639842002264007165384248872070576491615720929597935185698569425857928803268448027215789720440767364709599611328628200272868112368401162535537057624125125123386446459183385868170523630341252519109458427363636578475783128438539117781968618194898405802407072114498607076987290353608049730927860719415183720325033391492165833111863261322701639481551218149279153056483311112979772828046860470294839030116028672446796926195273425501812846569548403990204586440201566010233519311695244395368384166165063325808939288050087745626537133727449449039783590334421405701306735534273198898630720830180390005342864385210346294804040800753158439018613167734062550530272564415214777699238119192869196434971229233133776757097106583937192294378221320958906897466179946586984382830776609716507411482986695927577294711157225502246738154687404500472015486906357658533671319216835428823907379779170613363757264231709403164110918173217170629947792166974851149755006525271530561253707888565333389840979205160186181420210765528940178541048210802653196237035931810032488728634220253660958054173902324239741473901540526670951964481527915174816059597165968264666116424878746374233387648937845651903465506774898076148560660441824628847095250797002039007217454235974488285112541408318977165707377284149000245491425523114058795054611580952243942210453549257830736384923097780102383388581478417483363524282535749535506728590283205870610259987120265500037668085954214410740634645171705206274685207593083004267308633836182499604903839742105877873235478500857934610149912924419671033591685582427423709231473211037023369605975411519601523219113320273277107325892391340461377078982611387500466780019138059233184141493692271798235088859080540055968891883453276828483025587230075945297093049738711984823106162678053657853559566292984127967562214943797326560676836292955283675341661384310987462761797747736659162811613425968740074163799907111627120325732737747652498853071935315714200817103088779012652702881094790564372291782928661302317002556009530452939540114389006717955035843907435256699406146629657461772607548495615803968596128121476766684507390908876902948886995679738604423357553764618611218299754492585558263945534462825986046059365012338191978564933283116754211131956029179448568958396762135217450713543386966683637911171941299482527957328651132372258663476812996872425316966713158415857340102098027146312233623647293066005021961216602383255483621639467313098052365525360904205454533910779396700340121195748021963969042907308268591563095801404352379726233565338352849325358427946379200869262643204774605653128296045423116804300067377813057283917896490459136058412465129534619315896200669578994827914726550087666023279525943900419820743447695885536500304463018064137393486447679589952296908612815689197905965403406405858519918958270539119353707495780221837836913553149864370801019448771531246603444153590724089799875304102154239245245446479884590060763353789886188938350462327317600043117624355346182626577803764122684469304879110635867761996313664941290975909820924553567580474090170766914976230451821376185518110960087513314489750941369485575971306495794846423300918080488517300886433722797999841550962941592557729766789209787331117279322367036409049535198044573217203711303199799490588025683066621217636377625563816173589887589949857345617579302813172751974371321683413209368878197433658041011365496898104519758833114970703479377646762559741276152207364510925890425890715651255380005306489527917797372533284812847498698916777789998470298660009891933876000398041959917675307819457598595958046665903853248105375123780133852486740801627978053576560650642671131596280227741499836915815797698894740568329797261223530488789152172966643520521179521160952457264673653098921248561183414100324342268247709174571405248269663974856842665519903823225456421944054784499326298668385908361290142597568516447799199949674805546698895738829086992024151960291802184449913492692751867891078665618054087589037899752871837068334577046819781540661319563427928737893100848029380460222656395096752514984475074127233344921479568650381261533549268601548784947120966342880960848730868594243540525780989026123458003196375006748856395747236538911033880646743428707549468167862580961641371217200607888566434244796675777972779137886681811730250242209336553034183158312890018590119926257351817708602742044107329100192795949231514308658522598579014026264379149931806624484233342982804970081391445779124185554121373097962663101985800909886446242069921034835003485760481255245684502224326815447386373504574331989040612233950358416777305672478588813804439293255132188069299792966220003138192024170252739900668994688343225693076530106709507355304519228680123151366428669844794955603252253533807975149682523617902381710644913250536810579275665662835148561502585770172644345834037062772567394716880379849520984851052126942029556506030712764281309697040682267248324692517981861483441610079121509791343244841510877605994011930522084807522680519480687797471088516648435344539695327795496042381833809432956325455242932192422835260719223515917624715985299730235614787098854748869947148170258568709188649025169959502021012039769597817260069124841731427226129985724291645753706342598275839667724802989180834371136048560564014611169561602101630493908282932488245837637346827343850253260876357263547885046790855679924891958639799409936633345315108663094347157124322519281561207499234612946205126739669949813228611159829217113968448449181205535059575024769013563367278405262951719077091097205971320310754157713709644222149031244953009914258854184804935827929804919575905262139931003424323381747331267551087242052024213475285402276895103568621942928336853191403673109908927162172903864957079218574255136083779835389740896893656574651372136291463321312430826732355835996827883611731415606764280873604484907509740638081306373317085748278863772365182457013563135849752520528784764663861926597927824656145836527831933683865580917337009344987414636165081744669541146333262086025770975253807321395150490215070333338403573155390091007668663377202459809844264771670936307098114073923079251582153266902605281244817416969628161304600994742366293287794443923527934982959999246470123708881681918764743182385927643300781503041053618628181657683478997423566709729173704228812466155305633475180965344257590930528810473643291959460246100255816207186447366378820338643839344029811459878831946880663479662632459618276611187033459217975694407159175608827360090267460260824243334576691796474993047957765825145762762896154658530679883344463165324981616104580678823060813944682351722361489863602871572790490814734928939730325155651960198916082551040839881731858539273671152752808529998109752404237387980776480055278245598760960984298637335563712114137003690013968532754232611728569347987487073719936551137808080039923385337639066004228549696795575727778366915317243526985448119037678724992193842424719775725751209434209670904712335156684853139735775522822637784718919624890904378332351675066947714889943212591081706030253914044194979033676578469383116663624875214396868541037483302486210757810771730349221393338124028516889964854540069137213993618826778502925612325460235300192068414286288787070005921291539670660433826047551280670252270154765618964280304572555352693312160336586323169401304350499331409028822212674603362301590793851134189786976288125511490839158363186413747043592953596065628832624210662203659014178463907393038322298740124638092558704716146857106410890830360729773545098250041352141866504948737587476637726851635100913063577711524036453412891765417213461574612438429094900584069024335131292308508661495393955919565248376993419257690842940717374801179139627890271761954691539437322092039753903519008184595814768552478655808505246459279958631238947674513744659101715882253911313738469958939160058034563679452936470119679277775194722059046282596123117623001226597606256522742246380091906905892159905545932562705770704381685479469167870329475501121973982897655002190664175619024735776389550977538659701397511823237664788714330630912938691906292759179526601235427867202295229881151153236116960298500942721357176290680952339383662838624200285784977323761371796590553358614819884258573057652755290784563765647175040120079665552398402507315398321752819773069466197497638304728852407726674693727047558384117110250323404732086049151468873015270993233164497530146928716773862201092295467286082057247704570706835912294766487157213362300764439688217437620280782832470515568917002886842379236426168057492802111304717013460286096493177809563892830278080371682111550096007222864798178548763141569476692308663256880133478870272462351016397493605140781605090468134002157316267701239359104971838721035508584336464390011876638502606207703594339505999406977403367947545269927911034345765197752809734784670858277905193008023101211328077282317638977060759814908141324660351297401455711509585986187680749368705031125455620295309532984660249858128805336635490669400815987174284087281382539060492272027919508006017147993986532653564633403931418905146369190216668666742554391374712849549644028270423260751975062226305057501771749122246717329763840585497459517556674404071861019586565329967832568109069862346324582270218894239264426091475269644974927047749135390035975602707634422497949158520753680929624745576943909034925250676821858636911945900918581721163416327525460790304673180624201888681403504486276138307521750760069327250778712744384826879212466421556178521072570109690504760983437901923722762620621298139852401929414308713091842057124644745148886293413441193411787606927930810108496947233483403831581595676302077265798473205325290234834530572686294691080507333634346351496472689006318975520294734288386056294216111197321323512238808252604731890319402624650549453771132148821281186326390483736385758041498099259403835880046228086951984345296934486732413458029420773586945730289770837352497309140424212123342221028966619146591980532753459353338134371129525836291928685477599150402401412673575012464151059210568087048404109475196560847398905436438746656321952095692223788003264876409823312022815722946379308756382384382199129495406119306989611787579333033413076297907492287262131945514399913976164279965649398853881924338330665565606320030157707254630328199199435075011903873009896082688250697415524028102701455185195152668217733709288693318050977193886322466329079274455722737221522548930608179945583453544215952224204908051434518953269959705892323564726821646767168849343957701075810361980555610448319721073518570362949154645995903779498093598677024529139734541815440531036997543350201516278323878726483560030756739408149477385065375701608157836930188378734255999668601720284695989440454930406821012807216492426479270325923691249290844152883297709307074230791601509295286402209124530379406506464710039016681154969222036313247781408536603129728290529502443530439243674248127547535832166189826956517877615871212684676257481487512567736422362898261235149185785958253248057854116817792525298129154742876724505048170398960007574563649842192695547359864053906347567807542937443033077167502080415096127317312915723541428860837120619291362879632177929623901693775218665098298838129517133412562127414413497840312176129890033582067603125251263398917546431980463179014460586192620920204379394552765312965850973734045403913287720875414540192404160429715070515910691930560297783270038638988667588132985905769853635392137071330319939096086623236770934298303500936335488464196371521770126555014863442104336781919801908619821454361601845424498023424909735137223971424448506268048830091666711248378542559327616738297564681343133782084102245722230641412103937871171819875511422303378255614626893790760078647834413534535154466815433736310440915042868059265749528322343971829312597703069728195679611225061884987990741177666765639216284534176677915200675166109381474461755537287703094708646390704710897428901302459918483793631789056131384434810505116548466506248864369828794136454730903848798952587182202661765691025957137566145718944445690654923656078425954633366672274422682482591017301725829366373489734931271933456711606506540185048327034611480170392658752322179338125058472397746257371661457206548384670311717339722246974949715535290055697645128917471726595247244507282035570455937697932624688879127911980325253885567268687681180337912907585322968214000442239812740835232807689652880415245465257616799784358975236076369613343661857606376875416346065316927288238882796532888759933443223721489806498191129054679332600320776601454155083637825966685494154558370706679920662036427799178033978473127749427400329285648037886422115073379432394398909094147735857576231859846133699898327252956293201896803317624186964480352808978367198496345999262330220464141974120152238526370848016804520334388398198940640640609910489938077569484098344072459522899648262471258317033744721176903533489677171534889760328674430462634429781537877408361504955947567896922283874231009857208292295380370888321687950468638852248762545855294274811963264561258074791080861223573808917251343825157519379811229736222687239983726152506724045026452379465763954470238113619937065607780704198611388244588214611190987564202939819832002692359888791462821803305348290692310972905085101056484343184832264062147119546451252573898594268265046910528670486442606510753979601150958731836910439884776741198079429404988553442823691018972758535946722731202319432248394736069177700768266705811622945829883069167624841926828789398477399539385860183579885638573146209883361221056748011087698066225415912696914630936009251789208951684302885052609198399901323812294758300895029726045049340165248290990862943026789222868558935301083267041393633001092186945178774580881707714138261975532033139953300021733751813480868469481342570681604989508968970397474711947591411638512468351682718047989048356730033882778839901215267229022322428004272238687613555590546532249916148684934987185081661253923037544411149146503593104878016917866338716490513670958592077273464213241748624037906216484802398570275986638564141939507531313768027738596264453393648379009328953187829570867839645961515512073691266491991263364314864004830583435250983631361289888559856459523623334995060120371718534539009283447542464235565898369376786453565016684260843760559468811562272351494422616530386385665265176380826763724910403291695065896557062763888940723264596291871448432887096866184554833301074943225751156782168098037342107519399923934306590907707079932987253944203428097321335422409561337005165466579297636208284108380737900930331722556084250087824748622541035457400662009923067532127348253521809694115870446317079071885167837002828602970612986538948623311300129318352838165745550530133037356089209108903801645216384440394694219779532434557644176163378603384105219369784624678669382649965937103764731149299811123907917307335905425913323313671594406688909427582339234176167459383479602715475650124448000917246736927462960383752362216630809703806167873565439044681209080384644426784040502959470676700317346948731950010817407198055745506215170065586571028719851659989313247635349779080902787244052484312729144170983979900554728879749136105212360262597638151563982953960141272059640000440810356185168789146205112113262076158850826357644273144558597304038159229969534273085938990107856642649418933911985052290551257661258290901567124916593839272439167340257200172786001781562945118962510189981742490973735375863501146924429828972865054852650802121705447443325073752738312296517911875172738449431256367161850116839019959628595807874596031961040872968677836431444539393420822306213217447366986492679524946410163634221282587989510476825153202524299633943089538656977556452741290287607122004840431827543201802065988120380013146295190447899089354497155448603913108658696322619075696565810688770179587882653611904823895700678193113768830722417485748303093095988488376517774097996566584215642542995479133758704612117060944286943854178401348050781473273431491380599246222636046231086502630678736095373306350979817315047198967037267756087907152445046147542193768824176212487576790791536197197395718467180805060639104846469785930232566888420301616531132394337250476720258405832289804585786606090479501692001230685215869558491057596798339021349584077645652144017832034714166554209491874664185586800527888470406105857369448890726435995890350886735700908070604761810467982583607608104333159644914482578369299502946974133158929103442818113409698422065884703773084786122215152450333962233942667313390760867183228164148033409043519969379141418533669077425861258926838376349956842277576176004864058185131161225800086367034117866739442668140942468745622382804347882309443108697502660909846515066216197484621212165455568814302973373619353397514615500278137078564657798696295900586233613851405445561879529701364054036249270147999645462985897328177799132267503487220642859295850522599873144204556235024283375164620525383133070622894506469083148107851175931882726177911004186361612532075181629495497124472893909695952414962771017868149236061384364999646356974020787258866548911559428061122774773440844755182975031460857922834394969761620798883074100606419477203771114863542505836699891757767548980179903399971424430423020555594228348362563034591481868914711508546994944037211087674084448393158082524135885786197430760426345046979761250113653950214383641094392403240782856700949908897114520259376152754269039583098789602751029025557449337595810654454240127457966322981519513483111804200499586561961018777121318051614457808809259147579734700481523186996904473540385031471179523835913502711906911486696987483122434259931017238345912832479179328912449309024504723506125602465185807865869107603487339767060531169415154465403838839396670335365924646452651223475745914547968027758330925184742741419610506856111296374433244948309257792540920890967694703051631384131897266154792873762183329508051085744707071901806885570090606890909672521469412071288460056343153845250323267694549943705134692042490573159581537655061063899974383079239796314586237789658039326593047863126619826042570437595643048039912719159684971048737484155494452676096752410639510719503489960472794890889363576507333489668072125832961750846161177048918666766229251696140646715481124392967774621689182294831248938772431327419002398655264094277053261630047283806625647850223974343886830928834069795244855073521483105565336513889141324150859250497034202416215859488192599163444864552103425201115996751165166802513884258185532947927485782797912603934603427737927926244831392816041438027329202037017448146902724930028588791256269579220379439779155371489242399461395791560878503047664478968129435618228265182177094657887885429483475226933105967406123612737113658632133527723964785420736851823583930132503844987775185590643990748308353596806311044520029267694644512642102137627631722768620373146776761174993755411803256068418246871485007277258436871259453968188231737496521756537898484791060708937165449095959552505387542186481102689580775549019345240422507782917709404982789934620623427836140787028683439737514995267650774545857064775830720762122294148091783778076241960466444689573745170517720649170914724176153113755536356387393764293168176770215539423024899240728360127162252070211102318415000303684887834188660896022525725747051674201686601524738485046188732013307162338595641218630540083999703251980198682219918386779520307781850812270002127064629084195974520604437396385823337842172523319905458173660038424531924990124622937039231120703749502369147304383025307410210062665812477125371975758561560476789919497559432787502658975431412821594427310874547940218924222850627565305376952379769310697536527649840125985280969570646392028824206131555094891045418746205179674067677058008030475221630067478849591045128462027343330289290200293256645097905828538130713261421208324345493912635312450274493500190862659856362731761518752833551509232886626060174022660209245855646384598419201272176092445554514956212134339311317873604782618105940360607483692557471719416477156725568691586905108930927466667538921947948096731702317055638158698865816977462068245600080440978365575335891196857442709140019193891283560398490745219492632028115161528834578190050432281006674094193147037153115747082246172566346242322715571457830431231705127910100672931369211971844916638885090599331077746195452222691278709110431378874166667973802548088892755403357880313685279823364431937892903524678617648892758533925272730012973641696686229091349338059330158403463602565395863741588151026818277356691800790544523158620818155321320918435355654300615280993184839378290044588078274699832349182031442316096370798845901398667979498013207904130949657308429977955623132705282282289007484325852603902901160662396185711762218004967844778067044241664525548006653585752377709597707225625758258431938731810624438217774810525851600212592262017567376518942866965469097538228619157934462343694477895144389172663227851338243686120112329711537097278303611750607032647747961053273572281679463031382514051909421476018862787747427717876148311176449341187197667879292880031582944380142922403395409658632576438831984979633348789802280212767504589351726232108160955311691098388926174011838406314676818115035223081952956420601412360869219588893406534365909366693762454601165901849309985012539694347490499682646987586256552444883161155605157140527754166245313313964239072997784925578766431862483277368812601064338566879622272375363153387971074821259450649381610174298323790010814364706874685320403825362135212054928464754439663108126074184479597330516813678024211732624009096320683326576532217009693156412039341232948747475729436274090311293200370414296644860046794474572063693520788413330613321262961318964197952659763487743139488820027587106603110101916257543662312228703826634951731607384443225788373638441332543714892465967882817101028666203829799625671276925965174741564680976861220822325065286832047076615041716076323771849632575893390383801746937697158816968384041045074426390449106229789759275512870937108712911866025000033466273281068916582981330191834270155234980725026995412033338814375182757184958129250806360158116122876491597331497981334377764169724442557865325894258436292162013667760361096023837698516404492290419493677630307970527368958626171765694328578905045404109527681133932415990248465358246988210193923913226111324728894557728287902695365463244210496386942436276480841790148495497598215742144025791486252425322548194662728224640879299686323993448995258038561684692896108846170586262505018923616913697867687700522178189550852503587429751119118943371494988428367368600297219252333453383620637331469046257849487853618882338936840808842628632216791811954429825639134496661013474527797575416337065307835232232258922669757548443327567410514808174926272185858326601442102508925756607313126018544446073472083615660417584542351033701059100365896550896759955267123171622801141137057325870912097929525085156503733332353539860082737783581510083513654789812566327100691130394211510364949329013277536889746352988313517419793865811031162980969463481936244369568477340608652681311563896807464888714705442185729426054128329328190189668022157450773006187115780891879820498762892159451721940845000555068397215209868735555848762235144206413500412790352997820171288268627294398841293994461880243242179494448579954838411804796970434120025124225461099018387740420070874533161349648478290748907038660232369899070133731818568104769609838750977582613814212485470287505191642845413937715522010634466966487660810504782713742909079581826945989502735823233838305179596175400704431117567977358595319543121412813049941242093026783593459031689613336450892840300284673614163811271885409574977997076640732033333433380893493799025753114253156878700936722704362122135699371541707462570853847905563078640774281280090078851293797927832237421471854479613875882867571316085774202240408474422915052053487122079577845759040570364849812860092987467068338907939529191010915721061617879029718787289105436993627725188363163125057315460475931114998605374955586165389556474824290311498194312993476145514293478606061409050901293481768412460302158209832986209947710915180039363640743771103675034496646618936842637925052389107940335162361745621779780625212368171510412234680331028113513327014253298206107181137662217980148686760456501162588266866495659516027327930401252914387237855689107759882523791051561920569473999576524655868203979523029501373969421665940248718628954526211423352095436110698021649464599978686974650488583598101576263353046302358492292354011317528938685560257741661099772599654895682683478687386198276922279851434951835704290944168847332345946282595167375750482250556338521773398245700678748357444267297880073165956286748361216019617861632852448795757412200511454823410830525869014960883530998806878723616493413585991835597676193246267767869254331370059138599033702344223308694004981662230283372937556416126858875181247382034336985097717801768206337087265895387985788169002259674263985485700411129091258061197310354476861458025159346062593990423489192878391380956469605369325645214854847393134693007524303264442095411375826268063659440511679132160317786445676107757850653057051873278045373788855169952736415335021292220905605044532199302367712106592515282983511058335407583346229846574936627660160237784531568635106506715571981380230319334478999501689949498165747463127930176011128009098622505718443202916575816747617577647505629909876881871636093212476961747752694513845891327753980280863807502813465415792440133978558229963412492715210304762793240727247409366764271756187287097218567881994766814057661298873627829172871863098032223992490874899426260932300939378473164309017147714942884695367037022296079710562426922943545528155720404972974221137080783432875814619081146900454796233590118211572689052519916776987234574709319308153237243721512520460139285223614568282175514505794892415574493603032666592480725532963733327956052812190805954545210493191417507426972717202024511418152327167631938213899411795885847012479520461557544100891406051151594416050787492296201648324189827691073577314007153181161446323647464765856028350992429836780187491424567575253458354762180277044409570984474493473915754093141065404170968392990684604921062723710025746781853040046278866360864508753130886241716422353310583659780799522963605865756191381124889797505308649418435464619930809184664593581440891280594722460599584282091487670574141527598589631237366177450494740876248490992991638556410201248380449076526826955367314917550851903344688926869656765498221002596253806425558325747051785666435964601390570470422793075486699678851410095404983999708383663163186601753172169560438160210080134915542129516316371835522398051201859907056741006318298456333914248978250398165963540792480111812191656186939979580585233333982639655198678955468475485747999929619780826494604237246781144494329255826259229332885570170054525521267504439220018353783902042809259002906462563245912549242599456495815783176275378670883785549311978727293365259659376212018246270686563015328154264242124626441479431339937644301498128809782534385991393211107280570667999751419492769835113499541144015097767813240353330136144915938236034229880903391352875019368652957341665459540874334041558737523123410586778561603425369993230166760483077165781050408528665794227280679914827336784719800083374888757563859788639698234311116195578997678207608091376150084193197495647308045979374489556668985158593689626176339281275896539557577525766300148875053856377515636595550514575300011549468378282986858359581375161890311878103055157283551068094399979394513249033325505977886926329166033067301291974770911273537821428199712269958352819108163563280857483860688194959655913742058135815593487686593576083014412454386131680053422928087189746053823075559011902006633591594364444598868184470241320364254360459970611551448879966871468269403812670432328957509549538065959343468411365080325607263103646946471506477039103574537294517302791904113538579163428743089542179113504374987899122225482976527758643057932978183316827422241527397079366785773785290041134453691527004793878991019114959560484962213200695264523632350656793931660148223373040968194778672596979174533928644736427110652365682865374116177400840553324227454885821869574179965869146461034188998976875652152609765321709960091190005684073134375588782147201176445630286798824730696589509811617726772217154530988584991338575486989820127716900267040423791084243194482202714833809271619377003858106361325254817450575970874894723370973810622397782482182214522671924310884306065375587866267912040354972442365202734641654973482659273927490344049857284580496214693381174524597604952570747812141483182587644839337524611655890266777061849511891519067880029836882700805633751878051843493491431755144998514755882142854469729372340122657933668161603062797452823547956187703273287204501457751255724940635699708456357444573225039790033228721565409194136901068104019674549169104358666826104274629423640107299619382146050705782172909304262251052057766943957771459358945079582231665218247472877924949707464667966678354167999835280844038920766630741867150025621037977873928851628238322793593101739383505535582956428353222065838919061842893737697461309814312485668580048675537962461566413320150626800933053469013861257483095597470934075580770700778074438860457867766819285627111007559253924249922641294557963354177657669509380524583527250878019269028814163429513090836515963076257258066514162342933254412204650948202461847468264945397173390760863607842467677024134759872990958829041343449805506391322779372874568914724867251611845760893432868242259129616412579292317115229981785353020722459804842435893362558576409190626785734119185453020050046861754528647169447584533928052923172190283500997495493034697724693128685159315182447962519727019803320941834680747686442694356116724482712069396402391016959091532266174757253625151182448731440450046958586058318172385498882875382843107020325158037060550146214537527633435873411978040845986268355126657527873693501184050920365834934052222094860317074007915053827387576592405290483161426051024376782481573976663555584848956127006336842981706255398634021461632342514889180578786889925156643188198282312257896419835033233448998392796575941590381050867227709777973929445052354605734138235019094013729534252354285423624187811270782355601003521077781899368638965220607110701706199751138326455466251479214789665562118067451868041380684913222020805098429208116765162027803612668323291595249284094803821068160531742368322850588237421594223177204202229006623282302261624713955759565946247664413862464409368391347720430237484950949417489635371747969745364674437935623896297648697115226696371126642288668050583651792994906070892279418726422432834503901860630153247579847480498181572062729148718155805723573751123754149020191067485490113972183186922882296952846663824697861890877359795508611398909984456142540170420086723462606087572123012891562032336120581750049655600298047821086760895762166743680875744990904359124187659526065081103891530570861519219268112455551563187798151787312116111248570212992916548512327984157767406952725480188929137146736442112152917105867076599113675600831317285800804437449831590073584466924426563756905856985268124000554827177108001722617094282204654063643410610326956684961124173882825081236868175582483425963772273065273941664125701132970868562429451932396040955783398854661103032054509588624100182578221431234468791250201383169211096585519269638557752753219241120139983133625886957086651518028100308274855428302997516071146408324691147488816010088406289582659861134186846531240048715817716407094159907696783663704058470217781898334914976861656560632943258829623332221344685561270351567008894586728632711957024670859416857768254198821678708750144118758405093429429539262378949347835916391557905080726862892930370139710876718201021004732874904379082466124655256626023442877272660157255018030624067512051847312929985424838681538454707854270846118956706982943154172358550698480227580431119517900224151198740585935833702770873679057998977220208088854393711467478956050079711625324668453697929894756305242205369590124457240332769026833221540315711113048490191410081697747869765363013643233104863666747138937853692594685922981641630886888595989263722430471142480468372225210095925513216503921437952812110809403650110194207483249289131211188502187653765098483674214780792203571240261047603513848712264260429838843720143346131535792041276560113457675235863861071227910305125404507291766892221170000676685579284601280736386724061061382406692510489567238972416339613414997979020825249395241152371249502679541761533153862766410854116314413923948577967148476977898251153460211311728471934652959854655742745597535377165199442188430843571062741876340076128550893048997150817611264542218280562916135920726462874475340171377118278641442501737766144022054880584096869531374847448914683774315004593824349868444467115505000568754456273502231595037961720548033526258196901201694500715329346227404728722052298720425534717447228359984418741328411294382073906145187529650177744923435511523774841965858434791757539356130762518369910285213210571257963586915178096367388918684731660059720613382950117141074799326163522290523878355617784574971238527943013860517946595106412623143046571253279645087986764434770097984011869149056757849343151460044911216684062269999125750468674236068855094330789305264990029752556123569992411501437928792217442674128420644721376089989326326210095270193253301525550970438381683401667801363100615089134181819213315223060015734636606847519507993915810174749707060599221124832364127676396962746643770282408574894701990925896456714273083463619451374102757239192186194963264196384672092077348509159967865440209557999414668992752110588850733233058551313153759441959768396424055201498669283384762942698898400755838412942035877615002192265099499791067010491144781745615360049801328862562663383908233892805358978227121087898661402120338773707545676087037717874869460956834364480669811008815195242122841666923849082547352301481406777421014193759134351126961112534778643576357486489122680248304964090156963154631352167777116704589647230949766178444838578908354582407378020788840539107032843702115028550264151578239489200443227164303218121877800249128952373480264343955755901033689773933198005577931688925196980094626631977768783353959464545767241744287084006596219055574040448983594053252586385371692098112438638170291272997697273202482017727202830832702025806777487753800131912712538658879733084855990670253428832554008742985067232043536628681912264623692208568639814479901548294026253931665885045061670995304563315066104293986155973023538640848925056787581192598092907563377725206738563908180253903157941545178861955689053732404237416898053480891834320277834374646129864915249918605028545551313225190001036374066448117374033741030887982444146789701534116524163676414567937096444763541771570499395632744397388126939121684697101047486822864428314352104745920573115027852953361834482647528126926158019843308831424379605161857780190431886679985682288683860136947358388183029355183843090529707400776969633068847276044108283253074056815745448024532150046915451217563083098472276922295288916830084670621419795395980381524919368523646857238924379495605220614083859706988486798380627222506733079763591576845524409691040563778159220198365820913971472124490449451013106314583277475006354194926779024013618306537193356279950914450673514504262373063523841053665035966845467125009574324811118675345884627404993958771277014817047133472874622271698830258796659765640618332755324212876219823467800565763817041864017406595963954399745779373663292829081984657302828576538395916965835038386480254666282977818049833750588618998427032483538024196533214482182943845154435687888014347106519293845931206686063272089340922698222584696576608576810191878681782451972396714169763137362482696062977710621912326572368210807730839463018282264857499779209963475686739512115589827861184000164160666599149165707393347288512553113607882523428553863318074992696712965692456908514959501552610303018733930150963768774870340349433562293164277347454824483999399022816872766457854010163656426282199677412755595332527929132422923911135377456356546205119591400812099946286377538244292611882429060649617539583700510857702123604717999132990688075040158331690987665092168415273397693595798160174176101262467815109209181849618093819427197549317628745921651083121652841864928878051144231874018786451508597877005095261337104636019336385572819147859211058122164099480811246973080006367298889281912556252136349942284303374038298940705523737156325739544697379351600518869702661265388519167800500952095630559122939385348821962506002403535733657445718630379718130677459741372985458842172483522953787123943551480462108506196672694399815259755471346760391384358830947959641854115671592619898095465976949144582504069216166052644280248091875978436269238032302642717003912946769002222508449904711539099581200300523218029030867900100199997531576357929342644086501529693793241270924699817478846915254878439492243278853929265283004354866993721970865857039875439872636738854586513940080650396935893818254984938404035410852590695188784905695479259602151681039933354020645354005719826833721217371740605945703919517783600554801513503062765409996677702110668080727138316802088721481691641910244477712079272200306446172995028754266009803220449669497101854566278334024834715596668986940379839768059305662335358006632931791203351149387905135120935441940049559889293067962258869889123762240526773568268846733692323317309721258649187840244348685263665712357340573851131475720480623444913761129294033046112318001115972646491193356839424241829496809684062362998406754511443051714573179215370176348493020161700838707539996537606958024951784375187935442472383038104874622936903324352456440237423596088788885148019626996424666318986172413790944774731373320885474631866986221197741067073218730423590672622693411174670015632999637530700789178717107199391196473170070706859650061471283159201211864560520963487103614871851105080005161592398039614697638106765750862721489918837895896793334965350850442196662271459815264038042376484848615305565379593574360479766395754514892276328948718505016604466482979353380976152998169555516040999283224106598690048834739559130999848149266756954358303420228665520410918354677877367502998173612107265415694163919022356703660977856019823522402646731317125449406756459772449535119844668429884106712359667859319904583587388554885325772110233846878171844545534511715184306781567326440298219639828999987078422985391902543918454406710274174199412405628180168929007197221089177706088214998426092539797450504871364228927149565911409552464673489038398514255919998282972011405214142827799240720135837449371153509669117540265974844586763815949915277262898325159227892457371406644846717740330024646745471760081424977007782283433222831617444514683386724375906873047690384386770069862264975196455593143750601023260820878457297971408581990302261322542547256972592237868620914572028124207388185747040375515928742480201919926109559835187025921582210261459253792993745290884283659922902015609143216004221457327345086835159963597310637676874674711750131636137161475101825018413664132259239402753629229606557389932845187340165635538716934574600584811017995157338925340539058944923400825926694785363544800528538373840884025722157765454650356400836474037172414837277323566309728341275260009434293032856107315438008528360178098926294381293895323282214569306811861863367305145131291220990556500759410743648831914584116370121380346819424649907933589698776112036351738945567623897352333144636651945756561846407633059357367946675768650903094829969785894354688072033021819042230743759044661831067827631625783128683832805093976196096154411345104198854641089612889877860053911449797323887466841649180909213055925436340515549921114107627816058466288931734143444519164609782236253126141199185244191038165388191090908516807738342055480129254116810024543214394607810138785886140980531164050052819830205919541447067179817804089883592652799098221538221419145242071229664356680298411338209074471596164838196721082129421589813652670171105011266614701806745909806762745972110125548255890063855852952651792903301825883532892728171387094532784962071723643990639423111625627004403003631445669276954097633297014343092332044023214239362932804466122889857112575425942004643320980487047679406347793946917853336788749534798855164530086106982195798068753064991509968166760672719639596412714303786067317432397892277287784319557458145485447459120043560145969321037821768627408953753043465343828606852906937970440866593707226259653468105883516397870189910200438240190402481886434952321672927184190710969564636721844355318956567684445431991395772495174900240087571594579689608476508264046362516718564953063160789917239627161131002877098661715741431262407878353956885234537690730938670176962713442757491270873443722322059221664902724989821265688448253362456578382798866443022083484211745537382147223027215266145275142227171958280677231979932772673775825908997692922234506656427520709829648409831013859395055789235539789986443358330683188145305014067780720838840785168288216501881240675537442678103582042720839117416180820007138204330273114221406943848338631274116288782937083512060643104103537407225302577367866141033165154117355443329104950765350264163776507973507415567257895317484799442412897326835718263289283602645705805106571572185231514594058881949955374143064303789308822042232922210019987417422917405375578117094171309073883945760746493955499577713341778028673276199535982306653271208264610721247191922295351339994776590878748392638457123005152485023424590923098083440401283662525280259972527003128584095360461407635322118408991030881102695903229743802574779235391459634663885091881853356273808869547773861093560788182918759449827322604728014115250500537509312392255325802813616533660419258415614297581287517222696361131083475838836076945702681741187242472835250635815302743644123359925163157307160262819628826717063522808052787453649857399852370307862697759299594234538478763252170817097671040226357197197061539681385109573454196283837125744696312281876136162543614073760236779710969860083247886117670113687936089280619734745935427399186574262044939358223206318887451890665676375576984954593820045579411495634741352330236074382599494982473791052911697128729265175285326119739357737228474179294324281908441569997792943506336003812518602178251596190167805514341812334930264839513947180205752180990409919354965938999955791210050199558479191824643244671919794707208492016908495202272202205834537651060045549040624449594303916754108944379197183043709994432319059052512631477568314307539954833411100019617621417468085662892704586676396927557142567917454056173920445168776284223545521609215089061531421968879349986503317257070321500268103092977187221523347365273965808535652797104704566191953141381220816988150517499767620690323321744631054113755418840204959946042809420957166693291474665298325354176685114067888910084818888082668800442357350392142288418467661760072399011938671769932297709230273441742817591422232756821012162229086344914635485169653234878824484678337717239709657244934271692834389980541801345432427070543056838566438582994099963757469961019304181706444492853054357472623608948257874688711814306344758142025973637664039437834613731976763685378854673570759201825240591390911861181763826600492008063310147447787538677405352400199954858946151877012495626861652081989782199770432727249321979107389078609601374350160719590478276087426982222834194883309513632062103681054117201210574760969048331675381259914957336311851090961720140444544971040797661438448310510792683202096682013379662142536008820870322834665756178747488358921912462610735415383641092930194162768254844729923578183148796424586142038869662451962228155463926747495861994676104198632754994358270588441970086450837053190717064368493652545361323853207134021534845194757462055700328671214310775227492713332755266573420664460653669683880674569687592297013793815969387153262559549428696459184662308975661365312537451703336533810740285571258249450440831559816424549303690890352325576500271684650976577798003335379504829959632640669096795505975562670416760251262053332393758117196142228533185460203810207115808395706402975753728563889076630633275186783384882055109579739933458028439409083379717879938654888077442903419112279942779922256552848797161117984128148661890921151722511498181801996418593920367364892433561924076140347684592246810494939237345502444060818308453615801639064622448635771225090436832241562101500415663187325672484150654822007808881611537887371982451336199745146963102508007180129089594397929649318103035038303483867181052123545669946117306094657214905346052238936576521276034775208204448497055209204476502622768148379948519809634483506611460044738189006925670386964951111010186856658472964039160063858921401919202919910916559703514197362259018201732499117673609729473601840359836869882030962970238046532414302763210962801188908990855323102887986165873047724246144255816785041602755995330276644931993223289791921411535909354587661635423098489906202623684599672641045613721918126673426439135469895606015909129185029091214362351491355736959563825355517951712302217820110616963399759045662906207885197802443523338867210686904519995132991072392497979160527595522338421883095451113241352209350018992756947129024278632530786409390515493984966171939959164237387999968911887979912012255170585970813475933067961441848523649952323568155196207332925153509597689130676108130428126767991783421256243558714219385448067885617673448585229152070977049405251046890955335802644926487807388300453528710682994524219996207008352391123281736276038216965417431448005801287901231084532638355127331828536174356268053948597114976033643794864652673635193632843405723120369017922137907234943197933713106409840889969056548823181133569152051595112491656576336318650265509045963493620632796156867798695838146721486240625351310912278804722446858076456330320315050227215430257587561233431683004415683263251923970185681605807381831052553117593448325454318267698849130654655959532993776432012931728238376311502158158150790044411482777752824311467538995333177014393650469817321503359204676670933937752576836814673393468186363628066136700792669541473469164286962923169983045197836878647870430171719713874591987147981703595099694751601976771279040970350684213774258607879631084147319208504715211911700005525688289017838928284274435973607712130818385146151417131143756509498411736477576921328791685170832780919929705696140784766294579864651554304941818317910967789411844323783087742742319611633681136583835064132013266489472865496060048002405884213458659803377442625484448496370474950246397038900271225274611008343416028165084125861182722455663907339500385725967178213784424627144088181326623761443528657225810918784489683610045137414903438231462870609959265285204901201238373432461618583437206956202721763625486781763350926268260947684715008245903536726191838159193248078767261290710088147511636371213253893130141873959500754103893510390486398938347975621777321327910854500207790846236908540075627811461989236534592756516426498617058124814562778824038571378567619499757194948592015438935639473533611407592172168551865063831149245502151881547524191001634223123955073993580574482852976697675292511105860380234208589226640196785929562684755857275121368493164421107793231355511596028454748502552321615637177513316755479545048617068441204759755640155891694995291257723909949788762530343005796410324242304590302779279062830173374814961913134733199517451607920135382334567606068968296061714317628612476695869084774160609614084162201902749377269040265191194537940824264719524703171761952221320675224379743307264292972891082642749690916253033127715185287132104204359839733400947752878439006063721318634660664952987320814401237933589147391168727185936005552657391487982977590227539657845585124153011048810763305707451322608120663687828149069705775921550485882250156327305270673046617846842576703371063125936469670518330098939268146430846729406970848495735498080453315473154219369772564462474709747533956198211059717875588284289389585096999826878246217807283403471858633279061804009429424207432418819262752449763881977883569399944716310872307264474330284401498550845508613322734196562167538196503481516168731960338073892034555517863076916201393319425000763677907200340573607630788509758289438440964777387250777332900757762650888060836504307378829493375652715383189068435774282781333404405541355946217072058494798527122741945462432577752198305938508570584941746072686722723289534097705729673134841029673007882802820731717477310797057188631470452048972808023452303728532700385398828729064086385133319992691305748312548014089457443831649157690721326069441294377912053414441177709865529046266867611611808017791400065951543671228172852945521747888583940385337981124120970317185907935397869848584219449535029819898821641742814204217574405498022228649986906729424272122586559744919734044775614895835575787842711811302568211063814886840803979775712522531525355475321802242013976679125868794040147999283544516784870426634110248392586358410910045461272875691054066723030913111974126203940672183930779154436113737095454092366596592331897767542256829098329841786385320247629402900561724770496912302000384407185042494699773600435058278201734777375171309549731566221720573408561428559703108180086331980232703935878926160346377312385461836275430610414230800214825917988569568317276197527402123607241641752523211022341894334072067772886392989197709142835484130806829579835217010709531491011182068431120277327099914699432291914376642293344312319063630350216485498883368692804574785747060872512418070171222745035111288611687740169838982109451587244424379470064174917562265120031379993519456067522818229887815078522573396934077602770816722069197020289309351981380606364223004537557962876632755760067182484378453318974311315438954177919289071434799844216809161341776760532025173141954248522147564154846420054648636920171956039487884046979954586354010576335096046726137455265692279713905578834841942369675329251901118898991894029929053905359959547287617416587882038513204992457939321892815145342072673829224226433315064252944082174093727950915125664172255147335516605450558045219309571000894839752039787294833416091713158558862654370719029288758077598739751716459904154981628555732166024685495709751377275560273693038447996126630785035850236431674203358604800450926057692865753724286429733002899337121243029809643752060713034427766209984241134357127043680067820629504553373873742171113299160556407931084711648513742365163975234491043673435903979288900556738546217468580550951852035479745920723031865424619841786174294911768963941052813805326667182356517069895323438068525108388598530196010562633326502948097494175032159748924958409615827328163073830059750090645403352025199366974427139685600952858699083895984764900506406446780730806831127815714653868077341958164386965502037824179477487956200673009047448542951611233028746516709660046189301625694061520015140061245897891195295761613811637927522365237333009952780168441216641132628518156612288481772791629280139968147900971389892827905532936727604390854437825753367015236326447681335139420850279161153996135485155788777823141368055613393346695223535043937709726806436618854266913386637687559077573779477814535030027579383308578814660135293388372897275013781463618310484352702360073719336438080722233274516418002256340487236724845163819036405804554520100761851215515157625763633390206496444104028471699388465676053535868041238713324878031696055036711370364952526569395819701958613061170351923577326341447016933642248112923360022224007586445296243984253550006637882032281249669986074129393396170612562106289606267597585957352605155075384499100347002676474077176550293225511466048615910480664885759952123640733073617011343481772011173937758528763645201264906267483855004357202874231591754390587679765767183891673330995697215876054265652068514028615519709373581231041449979068210796175603031632278986032261873203905877813335419382036137072100163462780957212741170570061178936367010722864183443081238469777601685417073455261060961320466150881010490770868504173482116050746782113675713933641510734469337885631053994993966041771082905826755766703796292989891586859528591735607999467357877534643703203596236218899882598934374105488618157282994006069444431028482002151388402691090216386554206842047805982125118925870234164589127016094595500702419380410452551309551297031191842751699100304268366191919569039103170638591614693152360973528533033589060555126871597168014613649319259646712013704613483638522944302119981078021398962596127336729920431383352181163099688266317516730283667443760853660100460907498102381443614334859605674054280545041377884119297329564278954572554407925258242699276854224403383828576432792239193400340306898102944396220219551572107286599004479175591921064211776025887578590709074163802457537811885963924052618990741366814882183245541488827393691338161615354602986774097801128226363260810521176973733338686568880604023356332368850480390206956421690891554977875874705997352954050411106501804339690090990222965932880350095166829755973584317903546267376966075469946697228620665972098083621387417439433076622355123792360370556782682826562422760674476134530126727469693906813295504774435021752144992841864634093986326612403509461769689867843951688032053712602460007373580645489454950289869245279330214147241503566807429420960233374233271847153725845752366945709034867820896115558612543896702249083287784900118181677592288660834899459135090020264854442375112513551463163777765625896483675755023423805573055837173156608658814586640165911079590203780427299619795227870052005381205548607872522716906165716991294504384386185076319292072523895382002540057597066249384855546424665113798583336547059946813945084162515931656480683781580459715391913554670621081234565880261670483586603267369273938038202666454957413337608190322279666538351827721912984755649145474841019956019829313379063143369731342046755878669297607551067139967945639872811104380035678341549498153884967272245350947624059132961642734780522903294770195855794705282141321426232282805595530677338779792843367993592119352682525457061883806510988341067654940860914818922783728086857534502895792462850608852264781195201106498379635086093416714728392996054838794150172768089069412904085486027843806522974299600510369654566221609140830604817668009070561331167117127984229121751081718566970780729239462929936737473978145059363693343659654479987256383931129372413502489512858320017317966895260721439114875277340802445306033976804220287271295447284671093800188938674506956390379069666460536005643495155929893093768241460803648734724485967382351080349468369367318737346974981128428270233995568005862275851596799578314688119079028677716106156905491374917480274312975251300474644571084936037061750167900525426698651148236920519306399208383289979265948932158247854906468196764995435543747943879419291991023961885589977839740688702884471484836410124395535586672056971521951105653953548086012900712043397708913911793829971710887419397903737483559169225624144372855504405237792971245005853487480384922027524160010410905248053125940340864037466380028046528407691506138973718773697526025232696992740127283885434099238490154548613666577484308444598480307947610893090453998270138617220851847444693669386661378558680054049947894651453745241188048582394726751053261278299486509201436372458540248227543917715985875451246242725283230892094709009141263540469737211891974131928246005199901277328289364262534920887515263177676021789897337218744949194885185795325291367142414947994563614312003735532776136452349092163652927068516298785211953231091528828773160732604535306664258365311908876716888776874125827473539912930333631245626361882379257437827388946755077441600666015448314196307452025994079848819309829993072823562366649010142009533556146411112621435152028858882557730599263858137413838050241558772413599765690707049224631948178359489497801712784276041719376592416841753891180718363766741011768870455237861579641190922853636744021270063513140869379758464058037706992623150448680428673177472947849511718816982084102038777341861972861523965184926243447423320962963105194775085668842739270106591136987439352734409976262614773763962760400507937956872137144464455941095881132709490957992382437562803317517708881507646612866977735519940832254646550247863866814364543032607707523659405292370109945453076853025237080551254540393033663367868194776541777594899626910809088187159952530918145253411744846851194957689859559720248048929302033129322470125205465398437560116254182786863567715726811616874461499143929332740296546038682782188561501323700747614939998795047362782039291844294147410917847747375871227237587627586856798662012981855848873754565794294448561725621783864397143229091340864417987770064804136677001038468408318067571148004539939533528329067193204660472231095534221322284618298073626049869893926707294812470392515538310323281789369312244295655583963229839327308304526119750755130285406609181696949773637128518058581466618667926101981517123270622274699353265445705635397070593173145205485811538007800864949360839256999239224863204043052309138529088593682244268330012108929804720828086596321085525205013443101320092831922387424927491780802174023223540710989888352888253874012579111551904785808378628793149732360315678495923065819539733984926476034929905634554949452067187187832244716822308048901663919348787197714558739812861990179837933253319446866725249049815440293757024649349982149781305678337725239976006585089720757490214545434511916091290290888845855495016252791431683757755849298714562108904386624510146109701536213498163367078816740849659428691827922163250484036336224341443011932849983469705324820840034957982582967336200897980284472022340720994254073173922017820139992568592103078624496897783993513543264223405525748872264242013399277258179012941438585149950494268903490853737108915664728394127515064906732090006098245092779133490388952057575097688176131809750600451309212914829647474487340275512697151615445408484593126515859629712432173921284154255003883954381304380488976645739544556686339016932187609992495037737238482599510454310237073426903441777923361176547377907420684596098713813711586790965354775784932727317939241905329178699143056007289379382584176259728320498888915365193511897566639964200541158188219104597936584239297580197872291129170375532642483917946135580789760944685449576249731859798582184105658062389482215226598561918432007745795016352986733925166623612719553503344811279403563393522410028357282003597716206201014046079892450000881697342588765117397109510130980540447175906060136776631909799544950332166559479400509770618615345521327676603689701044654485198609715380780093649982236809634219564752700905286997367162199616439002426859438755842116715530721391177098333757851921107668453014206762589135433246375135029433092484925932507882488848320322187005818257448749376108507099130402229295121460795379356153708417597495135511100782349884261564280084333826935755284908757880804048953420660428494922967151079298410429367489623321435308499181553116578922128399679708228631435701970598369525698637578600331432056900167590796439214884725741116290012043621312052444703854407538300865408603037461086584392526126398603805335346584003404030805591586148599811590317655474506429022501388368566787509798838411027666012972546007880541701063318047823868615081097842069971715189028349820166229248104709919480536018870950348757641079706069317463760385598888060717555414054273966463187551580293407059706756510755850956379746907435939991881070788124266415430082784138112045652693389436828982703817467451247161041036566126066680756936384715326287786854263523434129120110913758637746256286247485151184297675884984545493581205628149300572478650041551301709525775974427448733840079586810352130880000180764290541461590791306238609276718246313271719196605595782473490154807237422636155822131441250522705053005342374399722468523551781721373751533888969923675606747244185739765587692889131854538703025832935839913336430936574101474344202411001874927001765560912700460446928318906410690722394666222792506758640520586962300390412223043185581601641242325924217822614391879936343929865514097951824479889139321591767236233236488824770238728457652218309750964476955643271153828522670133482843376997123478249894173415848582014556888837277410848097887525950648600375488473355795425227262087545952867729236091296905652535117044180784935368676980602256535181688292784099959496495314755434442606006798245869228275100596637477131066364329389759584861865567921483334370881274597763150371027503872665601497510739222116855573504353335508080680538620432311624058403076692921903631786158361459190982596880496846940340201177589758850393807551063922612199040939916979587632589162246800450521947008486207733861342014725899588476886196345905270427038622171681834134543423807148650624883433833455004408564775435276414577738971699006157425779906314069252949782133425676412398586419751714635727228350258499473164771175507891505473933345355217243973714823595055980108279295575900880214622138397872235623627266986274164507383642340788740898242147137926196529667136207688713206264220750965277181510709222623089914043322327235075655612213647117555926484667807630127661679744038785685056952507315464624216557373962317651474617464350963368034134004830078551007847894431976540601735597075125247866806477172195365762260922422103724055191442532747364112020220271826710027277416188959006791132251916528787584954607190957547125586861568775510020497521473639432697347687963656799325452690395314815664330535096610384473215443322044036387292526289266945096311980520298045269531154123163859017497972478185656504648109337431286294544517046242671473633921236371971575906021164546088419349358062059710085858941657564123008667022145503344702292939885226837850208683933650615223204428738869962352432485714296457169248667693981078594302426727371604346818306374746990956904696406599651060423483213270919067082584654175921621090676240298577413962777791777047246037933826944495997585349910434573273650531366384969509401272142472003754452128292955971650061439644514977296318767513955378316175946406483718761108743977822001623501388352418221821014238420891832369660339027381556336844698599844026633993807757035483132379343806091063338140159193073805117236407055521138030309232525832738101721870131489836709473079040164506606252344058533081111946709449635964134935359314514632922375830196490983536227711930076237960972135498309036119169093355203100580487967531545069593826455244072913076369042457629386861643427987765441229073251503434589964360200427785311109316856069231269241688926276804727132041481810541914630801831459335782904001102133631677785797421480587349386329515744945988283011133355650215509103238100121050974103310667627744268957112113488783867035398911960700445625855508015326886846845792579715414574151863378559742480040830980880142988654289918785134256617938895136204106028468549678191326389147390244626823741727444860491452681093479062520507877846845432516506641934545333059374060043050521738368639048508351830248566412840989063664462696447246556022820258698450445957654086066526619947893354410835838178126358349095398538338173639706777911001181016434257738431542141640205987274327750329167071977824964737304979018471612745710384495646193059896075051186301943516034875575365452115553393328600905883881691116594865318004427565146304743882410392901806532936863475419580925421038290457819689308204021043669451924789488255112619933803777178557231305413738374088980929108923037471616717368518224116266113362473461124589574268004989965080694967454806249546642781062268490064426439284240242927457158394848113074677974947220636128269497527919784506834068410416560798785405429996031177409514000239740612414335601589055911872115063675278153963836628607497863220701862145402810360954953856073232840828860170884398782608209406625342814921281180567069578292171726534634137502404704980838218638447554371040544587840854834842890282175518164551454090788248085570930276575985225567757397214467057644468237354887691579316811323608980200345282925260752453605804768696073821025542785582232219672589379293506558088553679396535609377712003686099862130451564324027560389886036105308258942617803195155978402474861635296326527871258500849386268209036334807578766592373755103248180790429476080536363077311396154096058022498776634762819218659529146708374264656546471888724340791219536465913200666250194087527939271962706014349638783611919123084317312220474744232477579071361600557391078964780843429259012097380059426607104840668897762113005776450711653989825585446967718268773186892302776432553222051288731168198018739748373776487713754062876484246033856449379953109002072228155500449631377932832672938955487283236210874745762459521489281159529630130979876373171212309849260714912073380404333490750782909014638150123044519981231418659280510752893498151857518230563184320144807492400776302826625621473100899755258839102195587463591102742063232685940692252373021064493651661355389916539215388781499357921340269052697865240836479290673813327968981522359247120740275329405386444522489665597865108577587964147787195306419232558274095844000549922004790323427752822537531922158752686971193419351467591730715043974129413578308413058716939645749408960333044295514438971406576534148885359269961597073114955257806859660388109641048223419908945400870425064631160489760769459784755364155831171714140534937000542663073597939486281820387080951811828308221743971022548238965041377531631444176735672420933737731095532060034639675436564505582421260967769716881544223645487726672876159382264460895751238862271151282218929455082627907376845115583689322659182201466279833789856365915837990948654217574252617846118574480696318219395700200323136261286828683235198382738745282496845736960763737424206892330509666729743649332380766343974617399680826972942066468736479916786298574306568289397332352262588953812598155946217959418717865718820465569635085595913962784617257542514408264641097372066527599512356813766614346500052497866127402445417592002654988678362106873259477311407363427245260531175312820766243830824209840473203999330698817330633178682280979424871641687141772805637890338507200159104279221578866959006970366882117038484065004018236012805018010466231697231181415372544602279158933180763557268545832748941907749412348689530029234057867516680555255898788855938434499257284189494681660885029771431024301110366933449831353905098371822720695199694604695267744636274802237671799596573327537906519113326100023286735780797251599157277488389442408505878448629092836159674000486627343354081655446127399368463808239790187389285355508163412633813501876198437682453331843340728147705702549074570288693506661403034825213380619581758724763477937808711807097640128104920424436103066799688187237077921203277749878262022651428761191863572004454729245822374180228997898033532133116446469936537105615200215927257693770337817981947576228918312366897057609457680676646875285153976429757262284803702445778420769813238528833644802238908380753514663444092680177575903467874404421573551996356921935411552594256316129011067266580800557999011311866687720942266993691127543746820184845360498682593737085733976634729701091251745104123029526574607087463542639671560706509033862587821968519682029132226996359109727218364269845956495604717336277829733527447470669131344513269635327939820128724740945000792261149394479082580370227750909442560505334067715470607694952205145915736239530559480658765572963773295078906167217399685889110982061051444016271932036485894570138306663140812637661959284608058448659433041802099817117222010210457742930648912302225359043658914120221862853050306102167798727740081221706883133410975510160455020190520138632642161987101609773679875843954047611787871546458323815445759078993171611313429385303950892983774970147919143820390765140200560402564865080828288261692039621812585437217233067729964431175747968391467218944567350890318864804851064971934126355376380933414590158625165064675348350989240557762110808335838467015860396137510652900093580233367733294748625715162168890628444390421903185581110080665405160030511037494417751817522428423195047283923255120838702168324831548747103994395887811517983529769615717618529609035401171811556862327144083821174466731727247234837250338986213734497643863417812777916986165661693726293811440431463322620776362046859755032869329636749137097618309878675986627540943319072172234673063575232990562372483911927313230552013813931089515947818074570955381303586846826723413799686238468495259638305675464092468082192171129853141074908956496630080179977435035202933686745426465138555950166506283298050433930986515094001390784619714543650502079001493715586130895271562673846185858079775708651006455060975132913772100746990137803471516479206591636718655316934104964731251426591837284940354313401268275636918617105580775598422900567675829372830577117035004571214693587603511568005897847126871833659395247242681685064522396402605679105752606568442409689091594817250192066350162228810385887210441261908827645417642898887200473570285017593984617648288242210128372091272456337211194391169233175965832400809399349861424562284499922863206724761971195618869798919819778330664826832355444568256971425387515786154661305608878186570467643873708866203760811445911374358788346457479207668993338444181047400818050189842581489558475655911421794526274832423329822032476176913567523734430577980054517460972852581253514032992265898279138001813439104195426969023274180140089143947917858369275761612608503898174897357798118437023665904750901526304483008710733913471827200929951733832796896414279221915053974501801027089268857705763542341655119253851857075617887641414559772237712351266492252506757541702858222105405306255969506083698958930612818165771741051884122968394442601917744776049511799494404372911671605575420417129798628991440185318366518984283560993673290430327195465191828794404616566228841747843687721863347965576834558738803542085005594215485156456828082714012370385231629953978900151411964523045372764632913907898870665183141727128617582136715744824630141947757555270408578718811413139498637446377334476111415132941784444634896515983731525945333835016734323387498947845410929441968631731110997904199791281352971853337327146776339359707098826277516078198110103415944273927824323989207676154972206107758771747715157623837239905360400911158954238293134709641476321174133997626057991313862687612295232888634668087273857328268225517668991715487058970695029276570193447736638689924683902728826547430331041979616743120721602981086965334923287149449785069121486287584782786474556402933179288749194903057127442888010915455902095840877884813483683653805782451981855707455100799042142918953500990907316200477661743291380395278651291807616927142446762611611579541331260326990202307488242992189959664820700313039922612142058901356255738319441101511726120173902667677271701377968100177074887662780236969979115618135671127563880161626338127333882249976637846261285594552394582772923399563858467810984583979109246713553738604525029642506566355283656890722203747910325174159462583720334056664372667649447660728264614352286713745334633812334060292211186182969489978319548147462521227241017290913670961590129784654325504955097036435767989230767148811487072207213863933165657126568351325878029415586263085841731964967649109456565633114720101492454583210082744905312638234227504778384701840913024539837435927245364309223168267972434683521053316237431215878274512828859858812833793852009125330539042626351645775686051194596447275468218246150747252501565590369956272103599532075023489459366170706563525270724934519958746924426541770829488711952295486294443163439321270152790417841495832479511455427522804107998191835638090382299730313884922568086670727999375710069241155491302475721332318014949363709608115502297078135677449186266019840009101895918111345164332053858471198805694730093004188275871990259706158846321344657178448315095120284500115355798823312447016227676705450106675663842345415585875831163482259015714987125986356180761573442162926874036254882717477995172449135534754241160067512000072769154872591009230800472567327512411486842143503015665872619812644727843719175967061232377988120857746298744776736323870114955072699322987536117386606638501879026364134764406377580274801657704604720345981270711775622855281819291101884243546474975466135154796897174419502347486573382266438384824304042808930579799278756211843509564508101793748699170488371855738065999848385293687771478808368184751067831398365333583387001753758406289532976224974496449416263838774917214582880021545059239343646373751913387610158626503647721185073183054791070762595568687199299949192301606776728049445894985657889743347030357297081970647681724261549694481717660704311298351524732416851017665684162476839454876261329180129326837321459924627665206400098256345895612740842978253193344835306545775343196308709296017863770901414178875896221087247859182997632032024031968441043431209180427007431681549719796293882830753454261158790867663914313332935252790200184501693067963849936467302172403904756475000866274183381391865419414862357280977306988791708449387986459990338367287098679229688052976645752694639942310090509406373536684289150833565372055771732569084990431179590791018926783528569874031916235372021196574059806665877690277172501257307038920859748120189465166247903725448770039553030418370207653986887183402063794630603045542967792620835197278378380809890866842765736495622226970845795103905938013780276599452819514264976674425674506187627933618892807826232802511811837598833390612570528116602151247130911765711225792220248672464536646190300454774009962938176838364847658858427044594855624580486461992368069088334177764386314777746573247580402725189549676711442856065239887657381552893273936081477287653457466272965681809882115924249770277611061759451953645445915953495750469455023410432514651482541314931328231043846385596134614186750148434464579080273308293324920825060847477596277348570391783872250902475902230280680740410054876786075588337473127095126674427113252909943899362960265901707215262809900814895195471458198232374910511294065029790296427639130860697909668286525365377373629658292737213114762711561985318345182043908622009908711131369140130809315314865714226985689232116163473997449123104876969878349787103761002517260079668452685425067162397276816177288588412489394922731603338060344908851212208368799944828621720195354399124844033593113686335513246244394639882107059771957413256762519835428113123225509621504008524170050908083084468869770469666926567001781317450584221084996093346446220944735950490251537279092418277448740718724064989221316862471693456490840838562456291441741143222185322305608964752065083072554090933269263868938816194796206631944552136273785003631679865902242113783785310569195383203434954538052819979032660820048285422669124784003884885467567063002996066260358183859275600302703513055435438603340248771863340994358829919113470322865362102300794430785471401605649349317512657798887427074282483763078990514517152726989774670503093149384200726666608111464874060618036636367780424901880778948659962929720985231407344299289673676597487160293284215325412296823533100416591948196617074742770548283310585281103873188073783068434123421602310738108165456820545051199479725847241933806509589626698944241196853193007984565463960158364402335911506737667638709232784495739116069551671339768591650560102060494597635574903901939317955676491181804634797700848306691405321852505331195573867315628146946762570419251400787837017653582627195664423078159257176695203545096782972619402263094188907475251642974248285265150787977280271815970543884114914456820411369229811169745243305264431695017968338077581249582765634630705515367536302793381733585462353124297359946267375967004442776753016234167118612051746961083422134514509582548493501662818001367104144533614345950251125997832731423508609076898262197497734090272698640742548145804937801772337891310266376042525945439296650162924370951813778830365630636715082207917542138722300846351486994930646535277032033447037408273346649593753886100875348544610675939798901414188303724830949582564340747901146267805912309770011393491218578653498487625011739701691103428532620921008600011297111482390182347348695441503893188492023705588556952272361205672138351016799221002823812396693478183761683813387334492491310101319339452307259432264929556386405110676370853074477047522043517400315022763115507692275344492417466141502278066156128059593550049276594262875133599577875835434674636849752774405486744911300570030528077936127226877943230292954267545139718762515195516357932668451975072217950501024755103774199445167606523823161961788079510416989142941004579979448073730668811881350118915140774126933845458400575654907034886461266199021863815182427904897152388542226142464631357546644767134670893287171678188530705097041941423303446220293655743557393758637962521044708369348801767937466430413064975388422954654010640768947156385167782834260888077864969173001998414553565343640092185938051177562669365791759905958601768401671878002327713997041506399631948167508255207960951856190642100518522851331265454980771030490718038351310595097935092961580331055873850233351082247054143467566870225250299997741690834647918799140054075691760860705405721974542744121495086030427553478078821813922564502713987687429026359338389389412456806071367232874024697679312084582585445803519425527284111499421808135284048372722728734582259651637280715716825054197003156530895991578844247643734259776790200951382174519681300509678166045139556398357622518912339727956270302182575332814313224706709093001105742840145172808706691767466810693356878616201059532703775963413597584100826890759349616689593677214144995488558610584370933835493297384805881641744761591813354505774373967788652645802926303622556456473532750511017585566086751857996998146777949428434431407402381147824211784611120071568151183391373861503189379946400937210340508577370989105579896657012462598917641499390330655877463911369977934173487032343924726840648091202246265870082653052819549757750841009741364250120965237626674108398801251690941805548576560175529959382060645051385064813124603706290320941333101111710759405528428665686299918928996835153269449536135829730026214612160914358319873445281870673786270975847552363156930679932131687202248877547642428862469147410373847998265289817832870699918104481797360230973856904699445373871790420430023102533549330531903893278713601322830417583845311413422969776988525667150061114663622818556522391550783780235769314261658754315903143888861730200818676091920999094742206909920463471343363860706638344032042291208969828465478094466256613513029472260714951507198099642999971485457756254064870213713280533343837457643220642317479320887197535886655685325032546619598575709539191043881952820283530914588529219224281135119326435085618463755013893556340805231719526341585343174912654897346811559836567676463213697647494429261324825862387785425633249862547854979825507574338689048794890247914116303583608422193847063255017146907704533332756488907065211781939658428123180651633296009350488202607201554743076837397546790485700632093933547280222165562931008487137299381336637159100933196807866171882111969033212285397311131091220273670387150392219191267495324998469682245162631613085517834351309575860351922545272429945091659126176370803285048789542401254880496037141327482084759613336797986240436081433060034907694058939060542683280071247672932016779801653947181155184846737243861620596062435467680065542893331405607404304022890647088564217644170700259066696912617168094404369585475475144879245394418562705136181128367566279432790157626331658685587598664311165466378469627108278149690296427416277550236494898339027538240530080140086740837934677974429877709395139841349217743817103157907126407347757007265435906096950225859110141308379648669750942700993127550231506325327402546551058211396028782846958614711931354043646037048975426074877106636087789343091378342441611610572451501544602117923076035675849875248851263217688685933352514631931325653590512493583254205901443559028632651677448500150982692173884134850788505013750454690845415501665839060983759557836515025111848489385784210126616801306276937973469544390869268427051065661620807570982368952181285947988496808050880232533513509451865227945322231689378920357250406826890631845631229530030575772984444902740592356821745710424786495437288628355162442885734464310071508178179808204100582259336875536120850376376135755103146531499878601129528375701896198223655213751417578015000297787423867634505808251986837744275755510925088280082433275530765587247602989777416473037306800226711666670427653579725442728638261425080278710676380641677567241926039493910541112377334558916205271493312221959334982007661587419858808177838432738482205950730747568931767502117762715905649898288581333081033595958277708263607533220184818795491667956788488011311723766050843827199467183177678525192949960300149379700694603924587727646510866430279269288994237381716464615979481741978874818138125033737247885973977287376022660956762527156364495466771337059531928259141250133350153856878746889939569204985417430750385193123907587978402634087451342218968179270847671689145870293406925581278404634760842709761002196435617740792515078802387980429717248387707879773636400121631595363257587150954457396062617030257532218676234492780892631863454064055942091837603879567767938142272474900608747027325077611481037605416811396885358952677912148939100368822390610241354042942610801895645188155258862570776712824047693579291879035236806748216993678347583076433297555744646837153426724218908065826321776191548697439319116214413744875689225856815491423551121223502364825324171978475689207503752442754406644787104290412371757925997958512087729771537995980869508412528788731755914405213168914693365830372722647407361360240439449408461452377610594884067954924390071246213651205615675070875525319016726464421741876297621636792855774919834908001116262090058742593422414500440848564885392841016393643237072661863715566630686282585343068192123877627475827857552075593979463270172382270277646785196520029450282580827337713321968106584800083275402849582607843985789795134628937409020144883846856638034869428366488902420511145232795428040136312036808728034290814487030880331871333858169306842896001291870326531294863974963146149729648181524347432011036090937472093164634877144198834429735341919845762732361522392868706446220286239687683717913066072922560930880200328888898026486630373319509713770620774897042459992285343473077377538071287467485138911513437362745807260668087847775255305498702887739194364603306048149984648770275898766678184491947994350527765966395076530838698138008103976439877465918614791407404156004381394489624505956107441401313533512215929530418525609256286100273881913651726783951255635102076317036068315745411129742437164773000334603238759625550870313646334726129093193101315945372911182705463089119480427011091677429129421555973997692655506398627420577726404583578597020937407832832834935018162596787722712721660864408034048583052691734991669698537963842719088642393729514523844845908116861721616397009619922080437777270047414670999091576379979979094194228500158858378869153055802480223201884899615493622370964874058511536844003479121242275185248089579722227458514633720439820820612212677526264113941580433793679020936795306678842027200386194227203526510941716980883064095004190038446635627931899311289954962912791826010959880017890319790908274503712372894768450762308987079622729053476341407470407617661486623684669103654430766380992077826749166432376071639934359416274177016638511611710374794149805960159235763410099366651228864162896092322138405534007711178399171590016248609994590376442177126390281355109102885601754330347891887467425663412018564610129388600130142820398669748055079572169241239957305998837450030422234542949799748085395991727584835626211734705148592495377753540449048164036624342817558729684765880707927435757060392569798594372915859952523383976082003477783172451954258645227003556045486017550896065963928031616038654541591207916956322242842728149931831678998745128932757861772713432858058937335532157206333406005412215722071902699570327486488575260825207573767119613617834001282911233455121446065750073192724394964910251550491147608825295830854860735978762494931087327982129733385200897772161898685482572058903273187706925414334737369975624681324597337484395222135953988927778013890111002024911827784786684476526735994655329621146191161213340579724011940698868506572034826260673912550515116837505324363523782678122759477569413280121773881554702536745448281843146663059608639329786881152155036633102648948991444755003376872109527363094808478114382064842780861026471888695940747732761555920120807752339030917482386510962199653673109417287015810858021167531977215359024931547754954034771499895506223621328729002051342683960400229183620451080603215263395057675147468691350130817321934903729056943510061097254284211256470843226899584744085606785061420847048558081400526410234225405622842895644390794123705933707598412052070436737865685926925729535211547498148673969393512249655463268745055376737026018672394569665207168027478068177396416201286824243295865801325005920792081580334600110225320336060699593596362431776649207174251655363226583981535707468535723579490679158353214084605346598662916260146177536065543849609830884234675744294759340711712603202564277164130112130639982505456773167305416819594264779252232453926803261635467527322092447999557884998508665174537578365277426141727863059420891032593124561416709880378391238019396628509280151024308456863140829855922743015390385217553088272695336696934489664539946389984694951997779347121260456990551879663670816793118867699677103306718730962846962932210139477101626712689361875875743439439330068554143760997526567800517734733201340843402075132228647044230290704436704372879238563147002482832474801296016217051663707967382964835448171591663631982126052863180071176259627237290961082712913233791716712673437092229453724378777567982410516463565699103323959720298758796653128391618398831830945452562941803068051413541654598717640300445248515664646660269169299480893572357257984791253438137925520014420035440162960871988650389071527073708440906869503783662448189122782576379327083408270158782821744232466194097216159439190431387173108526302846901242124818237306514903730304341330365546213579464483877491905525263337171549596381525377809700472182070848356227019624994066228938686178134234979911809690802302772903513962397607515099887099662950771439478515619821159645168713032251633788775646482202417407728933763946584247935568695527613528063193774152715294733991068432998111305147569341894429219154872671820250955366842198504128493359275450178772573165374245398624802809474098985395653109239074233386268577764145984642228462417034506529061749809177060370666480844520496599548006570956832632690122145211264639549809194326839068761481746771271555069364405718883397955373405959514605433706448887006785013353421652200301285701490926602426703815994484759868511941073974068096571867884798338708903469721971795802929428727497488947887071552792195486570085021580249860995710613017694922911930617712745842788172342567691997778722211162735803189238239771460643584170122847739804005691158705241596346614770362621600335874572173550511353366097644171146918875872953986890044554452278083800719284807984861421841530512806260526308457443275653485081939900234856812252798137594102006243405130065738591418034124783000570827637106858137041520641793921480628448666112270322362805010495160609106566540389149723366377216269993393139215472925427049778575706042756295065632430665560644692168781455380422129367104749439506035598981956410697663786472412394646182829043329013805666904774682487407122905388220060499427060148090021663712204537232694396366862315215644907271037894178243030586704289571946968548262490664606722124124788159522424498470034816298526810690086958090799155599034787703037340597364081621755064450363964157000176801344304355743845569632508011938622985778459311315111623025663344198518372975175448137708010868209995264057259920995512023922023700228475815747973245597581955511650359006195448159599684049398204566763348003431326960586708238067288453455050406843845461852048597326835806433212653054119899853224375535055204685081883185392635304934546918227615438656940235909787192701810734257031827469520883144815571296226934656780130850805940487502912193479595199903576745336808751906679575280064875726580131120701723094266297141700262420242318701445356813530717358900277410768675490678898877029309103811136702861382590525464306270565146876528554670286896656387087441883294122093187546870019333572095482155080154422459777375787377125212674685312165085928348364711997228363816706112257352572563407501691389912956921341179187862225866075013066907543205247710543711557160592741945210696418834475101967166845357299245160707932425600890790753524369195252759356391327286432221382557987679301381714683925003308977897386762534601492206560739968088170150182780705499399436474366774575925361879154824132390534040613520776915274830356217704889150410126875402773990745240706660883400925495541049189266156137456296641903614502236818340282803434892034747642693261317093545744776427230994757898017229369049691489728764778573027514785561648213754926084486458769812102991542001785483699589142805803322863130414414673143278528799475503149022373548102401094613604965672498021665292138429717935790949536749524481122381245826143136574156412651026072228046913307382852060979673446753289074492635298789279505942839687663612310889611563959546226618296693450388832901406168039434127296015286031132628183090264214506611883038249136284282083181309999340875368880043386488646381481462938036305583178498031120076254436636354665633390306299998913415594446024265015956418009352720233568385120851855875111346935667273057589245895416672090899332150208172999379836440386620586397394256607005678275019222711698006714241736195091780270254576948973567846022953382531619503790821759348797064237414820830304109951114684274313384070945149186469465857152965242893734446647664388728457358274172765422703842264159899884223417307437175160136250389950817226450113913450690259413973055781556442514654365106671931564659377487799134326423765321795379549757189498207015041047973947176830820012167388818171374262601366807979458100404847439836969528113174552721395260610192955896830772272124911307458558523332527644541174110539450346636780548018978996193584791085893857659802433174297734053981649300963112465083249685743580505933391846068044295798899326539346820675322288265801321325592450993416395736128910324475254997880653123927453834810874295110662697144250497275282797514078862031178036547779626150454689260644034503140604417453926563992455669181272375076385736129898074525831545647195621626756118583198154896429967440637449594163448667262094859648411298714309046819068307824719311413524637219334310657908384428307489195202572022382129264259313533046078913775625631552657395817627462757905930596471788157325318444951567384816810146223673525585560999419907941389046008391822773135825459743190349441687451362236873240612386401949505503667429852978977918117431171831735297895333454918043608843605584321879716981912214004550762215550687126090809401835396003489531433497376776005063512783110023688032421184421398990726405780547700398690863662146864065501675509937635229493126711104520613675689486131724198864569490890780890381409134727844227415474191268130607839232384274506373218745388561424238459836626734585218204975551128081457281924364525160008457039636330094747376337482294244195046127765651264126240641711577734835042960959279994007176766494590024237033492557234146171507669506070717623878271157680617547335493109388483600128630584892590039335021362992884944759478735365572030531541811594728776332770920019351204386963081659121407911081854186003646725333509348759296277049234342476960614070911485890713390992592455954079051075276541093350683761654045423975583396001507965579628080535561079449248820515476955124696992499310870221081792131728231249060192664441756606699219441119583418670684720986646255801648937562253361410308610041600039544163826374056907345949569712785214617792741220322505454137413208818264312141437404671042307200303995873715388448093093394682074437614250425883749541793458178547217498882773311301022219062105791415689394273785084867787431058294503616795854706375724158216317864318418076197341433714599744742191624301094161021270602800752675659014679945702208917417263929864956091112861159179150330697603154464263491079684137580890458834927151200894184279523285601656620521931938453412651702899830659518119830431231761164523988364423047687825901336514964609570314315698400980203377420754248932946815371986517906797144147189554628478148064907247909136853684519447339657405835758313183504240685708035087295775155238661284413600577373935871437327831631317091605375835790974689305909658712591640205880766505476605376505081312763932131637417158807840026354329674954324892731359652787974938910640514851459406663138494619389233429989877882218691900707833917958484994657800594099611165306796220935629676236349220015869457551114747158376729454959609014963470168362542151924530311499037190146073492086291995385812476674678038830235660153445102117723923907100134637095032480478309470588147256822345773824430684384791087623067534354445406571630724509008430246170557512958874571299957406767172602742822159276520613943909472408962118902413232922946376901665727771120815225501793553547346133957130019201201453243204623922970441101836304413144570467899914130649432515155068497712559962099019970195152676676636236954011763720731742048595502466900955975017158136258210631223508110933963335601672434708951204941354049052077420188290994276329686417814916594304150503129485329645540631668315963363635719317128759293559234179614574062682684409338300679016295272160690547142060905283376430550074786823960087423162259533349467232467597238887673054931567342170060126545510593541523053051887635155913515364349421650200658887654221561925291967441794580147712922938861530776331645786413413179415239368931981925975700557637911756770601162375511507414274116706772352710176273750042924715998504346340189358319986252554812178800484569296286991570289341471663865949182800992926087416084708152961840008321511624817763113239271587436102166835787584460576144252907772846633599823903976214791423102687737392390421676596336965989112654245078794468568486801465557920665893578117407650509711404651468993997431144415321011801377094087025182364881700743695418373534036345193752963057657355424183994949604700203238503367214334572013096485759069155284345348664065413807882261544642164702206371883423331108154309446134979514181301088483099150573921358852714157214415635484980717390452037842810263365101031440452635765758224637669919431175660778755096099804403945708087580025893074099008935774639963862712629268586379389471360296100965474477531777470823433282347440216857535004048242599754524640190720466135520056148153860181715951449677305656063172441469252192565630665996368502780815994330749459387274526099419759181414889533862617105120331940227263779702558973205779583254336433548720770056006652504150293858213211062807757231292433399898483927844017954393542916845449330516339530463093980116566450836171952621881180477366927060960395710203263415465093576168080065909460399904140898180282359621899733055332342006163921562433342482989296658848276808683324272931813251426952852726983135663360521848398922576590105499579883405283990569758772701401417837225982612551668472429894997522167037403630433874197140471812759736615592132827332266112232805751720757740128981680786447368081454762671416488367036844613469233665699522108319763014312740046402730228717823427721305616252375919211319070894885879237020738673440080008426380142360832855461911949786246154653886404624877033942393124168440080304569295673552743438161151756566103529605609831565590290834369191036724607656966283454725280982545554842340150439056215098179920647023854139851653008880610528838933691836585439571697589524007042460719553155839359722488959190801243648736707330149311165148798264845970767000510404743646802793643382217080854662280228061510956653283249736625469787025357023553091070144098277339428843775439796139839637285425168382059459626313550105774074762007251086125958605486804187226506110146861878138903031517882899616986134965271158646795668271944234788100113283980632756647653386244775158473309756126370557219713829287251535205168576074555500204624599930337390614178879623427502052455126180710245981382486477183701331100716558590036657548776238405562754753514957802370436396971064451986066775727643704536274596367127770777764237408163862663923195119425783883927050159651551876556380317809954317731824346845554629488370984693918981233207419630868080496087333354431829983068291761276037237303325628243871485912216626112112984862121802594117652976498648585943818159301096611630597578337757992814604049327534298871105985841917673073986130793713504530414662892455484388804080711418055808889192116175507142136666695772661194639734306872637851564417329189678128870667299314319215472537424224552992867041902953704864692578270514211978498842001234144574097008386054030221942116497892120850980947854643920132081851175128151208103433446398767901978146127849770930577230541070772218845078636840552450817362668445755476634479084785634847294458002475570755320890952766824171776834526481598277996917615536953550309967609033075457165838393922825066851203237670493367087326839816498086241137889279559458683028602000389091151236327328657631111975574283490616262846579433608390070375115930939458815156792915392975667886265289218929858976211964366536575454142941656996000870631985464634075066772405659292042576671669760614797172736620511462492830125980240074360805658736347204821681324047542968058212677991444643702412967124955126934465711724202778093960404977772653891985280112753399072561746358981203740089529288538908189194464740550932766326010470274106001076964590223356230547859754739519636108202768889242222005034217356653828268222296650257910896941053165392683338165314756314328867435094368872790018882562851972742527015316325191495106524375512164180011228962636729024062050121876842279685606064146762182291402074440382958058921789561058062761900826217093687932692307629417439335708101656487554775411799545210258456033442203450870991178672693956999521187325570527631112344999321867131611112822907274523018636096151815683379254954519323034038715956411289789752646833802272439786506357352815458924762835615316628536018958322593106926791013277960141230179456961293458457203444810781865272442198043674763030474227091107035421887103427163878374239356903268886838806623617129728827249788039301493994730574190764131424706380533835036459416538961314816333475947506819839290735175188969370942417256968444306286859875584524831898735936112275141286074159186067296273790017116381074379607909783783875683426665264481184116013127975207514716693854310414796526027831244587703465527185044554681832709460746824857847385692178097525078750056878982536661073408982508071353717666433574020600208676515792318989697170357617186669897442186760960456772267268755155511463049877211069603898372165607739906362155045033723491365013602518144058826450925968064999098377818646149330785109841175601855499531525646914210055951527508280276459103473704809892977709914763202372603641140163890550712171354900692466805480065367727262156053026002955739478714806195069406651763441130866757095707676357851986645639655173527047059180360166790842000799068711522927928141407663266765862943211874141662302038280230085168375078773389749434681097290011355285611446186038770861461496117655660987072193527370902307195127143051072181549197410947036744973048629855271100446908306163340784884518079284850174706546022459033956119874378364056805024219037880481412377303453312830625981312460959592199807060607412263074670357060311798229116630185153501953993181788727528905259709626674673596107053147798683137104922763229699857201112673682356536835761454941722704458197944046624839882698608571787508875922543798535158067596229876925339378921262372834643196321882264140561708475306191904211072277334264011473696838700568377170149703800827341971028652657841240848117279372400391911180945290860062722118539124022834336672051084918140742449209521602762278929339681673762501505715796777476818968919067078917853932985573932822740084937855573253811909484009476112148391320574174372984803550349366812434320975917424134065586186196947597319611541594937108078486166784235015793732677396371866108543511890133441415359865267541759884595824285624349351868975628982003067824822801338616265499648901628372075117292674900066595750458209626048301869319291795390854880721653100360025545227349724162387538348392674996664853803450830358006841643116259211984283325723350486221298154825695614247262451717762129354885090002627912721277537486748867930391838254003702037135991657052505666152177808853381330067643144946291228761886251272405817039814965044808471761161643145620623646149740771757021595524659681946618468384799883847235928331030987608442256742209287795999329774548437543560814843295999279081221839067327945142965067398146452907153942986230913096301559059551504805096614569153396290173623216760669812857923075420160298626072897902570469706689332984716401543716345170723128494347267557883723462270016123361808361265506224311413476229788822521239810234917465302644734227411870093473393486268906386749004537485251045136195314224407882462973043710214392029588659642706062324434306503414906582418811174142976427743765238286781600184703423812683898689780044062057329739889887377451084142512861340821720733257571110461333909635090597876419590221394524305049218646325493292278341387629553574953273432894189964823614017645360256540837133950266262885108066538831805323209068924941846185372923593016847042717338639445526681230940731743593760768935616686317112804500385478862783283427001684613536124915077513776938179803765257220086179049259250901101129902388333957000280982830202534118831215757224939401699346321444520224786129753422849190766148293040139953933161280204398031572413640036558855474059285647212942446889186048184325612638072368851501840195342877436712690814446135396520436424711512800752680193371062442673199630165417508490030995816744417249939435386970343509282668726567695090684288713982577914085883574722882403246602374192164690609233866071061087302837115555633190410603981428819521301697947656945323899436605517116445136015019510301612524437512464620220534550811899312528522429501164396789748825535924559338295871049872527005840152864796757402215891568201194291506595892385866473587974145005148469193598808238537761648246125602492222146120561273210892117415516275268456950854842979879680398524073224875351511237184123750274902959632053818236588125721557456520223714018804595501623126292137447125583691377759596417677720181369506989976130703375163089069295543315065047716565614231464209425082428334991480262954286682269721816537796801467331051984674877211439945339643698839593508237637747352117309627089504684217490475022799728512192128533692005562659217836610846679151681506909355885027116644021155090624030851135307501733147447882885102805060098230831084119443506537567093261194836388804551499460045016261557712322405498758402130717492661588737211444446318106657070487595466420569253092633292429027752170256812504721452846454618373725562670470324669201628869699483129462191149873026057902864257519094239197172516846820237399714268600765452444975791119541269503997927768452270144571002167074044825084843182444636405682146292117873652853406866787683116304088380136890552057295664301030901616488735939035565664976803316327575902950263899735980378432702873629169860700610718059373783799699046005009738203178150872212167857202878367130106969644434813031569250621853821733440098013504862460143370807929866543244214566942979605689930385835019652836449764504599876111699109522243247039166515326837281884472585382311247158391132608451326530551412503048387993185349665609539092479399749903974268412901436783144562806568543375169912287666993757377342024970519958204320488069984394142739023118872333450044065365736888397017826551479990650951849045085715008081043902988862060174639080989621877407374843703411460291406440578562358329950199474720282653842592081136346327538142400127747084020184477812057992415590351969855973828683180752502930425063816044246121110268932912758319789011736800486853546429410188601383825988131517400317926023587922520685898888716374858602598714173771775871039777087106241087755067213896542008064816812642387660628392487507629335254834897038457271410443427504983419317707520016785906343930349083630051702998172838570602930231555857076772956338875116273291183467593680476672172064404965671883939162304429895820255091589484575788530878527959691695554154218844490716800517399756353309298209842523964765227116705423615458437179590544342687765429811207435682689258429620820566389932657681610909997578361110286789956867449187533751228136235654617456469997342841507780573361196485936554570091394140972928332036357244462883920922963414741688515503982521270912901947170038072593381472018290147500693021147597798003706596288588426249438963607422513271522424301875012305186712390414871209530611395001429335295044092737446810315224805793050772502887359293411429120782396936777696350149960738897037217103645921334247122602267949545672457612459415944034684172914798156014031738567816291645986731760250130687504420928874607925162524882676889483356949684348317822555161425981667935274725709358157451827485379801574666194517373756334807763531894232395327955638920515966128486773377407726893923226304836625471395211059862474770266408032796626256078399792240964319056945799248910264001162951692464897192969757885735493908797863781962400193142290489533797946663802001957930174519220912528880797765917119325207558935963087215390239735168652493348458326849605535045689029475034909514945782635887187677654368965784983188058440812910074057115305342748752826215642983014569207199259538547314306832745291648800677179852361907158063638834074862968272088216390466822227765710517726659426666507775193572736568359883065651872265944718093308063368729779473887249280048543184406950886889924446376708425900119948739621842953974035229716531773382527024182117062532813412621412346269152227910559710569375525908885682965256441165285879477734504097870136419550155480539029567567753474724732222550234539890108082141142392404081218633955587401950263396216578526295660476678679578180741142864469943233145863713525820687985711479929069208143383557797400718205870062250460229635698935055761554767869531477386907239010930465052191798716233030658917053554369819164529325610546087416756217812613979538811399951774619034347771389023410696505965744563874694861625289882870320715892837421695189294785452761323542082356392644633573867787626287572619774865080752878288113334020310346662584859715797796252167295117302910159996066470057048275170455769676971109950869891275922354109604516902206584792914673794113400436133373700069810421530196038337952752448700267134997045518179377298396278366639001191287528052972173341427980960390166863992652530656153871704283267521181010112974789563423797150870202709136849819763423967952428718396628130695058297283382041103886213465793175827186953978420891863049829199381700007488261301911598727901567011635591594477234303145424962157325335183296064413999989306034171651377714772463311722262338785865578756929640434057083433057011820465730915599839786460336284330154884367741346454674605261207591276799313448646383739341159063319329396342281487059866353022991672393108337575706769648130888481934561526363941562721254808361974470994867355215579514719141691782100217505421848855196846657937086345790707540563900333716605372361413931522446148618158013305064543988562497678565629728805690860780738191200391470368423511769610817605871071315831874254716299192501665738751380097552598286636487378906105116160950029989940054535530830987279577626163503073603433160144579823885246119739220692244150141539939768494699273412735482062172835356832802879869005054791881045002664137181917537730093045787008838965128438863625985877640290717273794403058492521797487908885183120331494187757163485043694863014293916153932157858775139719800594649235670938345031877653163227047294325177585270305521370845154059843091353567868786153165716797676193015794036310493788586231106763759168480966565600848983156561119559559332058252567282413974846345634889035886905206872975277137434483660152338022408639180793707283911100692421198668858500318029077155267324760838361644134833404057261456974838050618595217774708273217816613458067298657806042178767104263780876646091119947401473922161048498692523787071948887074145055417500840997862325605752183493139708692546559085989842410862630038445492929143503585752213911670137304166563428019255912690648902515142955973373018074850779645550152020241724155578611401147583210072121298765485098547373778466818153513556851178153489245904514121366296379772720304520273865311569370673068557221963459032054344696282466900830099910522072070631496519059870572225380360283758558919240531663087740755598201470188821602657945535838155331109760424040031220795731416713018455433719940577740025188068499469265760683318553172532975060801135126484472895443572412179844300634107566515090787867103180138464900637214653659076763106661120050138537784449063156418567617540472577025740957659779270271299295801362234007483459054573204358384567682502672162051496047260712234207876106254340297843854889491795371299695641287697592009726801179680266058135444679023917190419880300368216756819033685294529846379692176603380233228392616245173045540197495825879561323825345140098380165443792011411415478809862109778170743685840183067600560807411753964843369154419844863884196724827170528768770947375492555020792683196221328309233170898839447197166022301472037764489692368967512765995914143456850850383329971965678714844717070736663594764376771077559373776579117599460979373281899139808726257888771648949622961241056513113745728221495947062174229705485069592613294719479281434127208516679326776991814353085239719714481164291091772944010277576105773877410954059994175248249224038750914395496193945249974882903237797504814177811347549517388200422976114945555205461276031474907053352885141087248803734481721557444438889050047583837205492905032326546469921312549644504978802127626819457117993732756348350671535349548996976901960907192084936471737212167684932744358556111014891799966735139496776403981256469863731229719047801495479465194155742907017987369354521702031221572625086426013976767436951983546291718321356908318402088931713654787764359495944299453774603867480521010073472304342669544636068000922488657749430072571991383080229896562248241331044883212715179049184079408521920029337538194378334885197142248970142668888281447122952097854625341276338374633727798383611623808451184571062170242883316398126918067855601374329065351522937859330291490094259280520447769981741709131704795189706704167908659120418533731861466855357469482596823646088432977329673177864240939377937410217287879203323807509405588209170968145185836841829983492002811701611270599406569979149761875759498425932919545053878306201562845636850564531782148298934246759711566608593560969995804003605991168990414552485024199808211429037261432111900084332619214328243103837824914865355962614719970384869607925708331037586365178690503879923417180374328653049927401504546678513125459296998164480760759313302376617092920285802605098945958201225058159311752614516704367034493505958820474215692839741709943305891744029001915017414427496605284985202922810146231403411043041471481388783137822054337207580230972351573124846268239707781796383254688944705277027285321294667495382644387017568090386976632666199546098982885384579157827717168009757474479088071610854233838425483729101255519252371207584128769290190045766923693586638977711476940949210408500015926356125856738217883208323759390692142213512118008144955283582428948379293625578681323220753483268112863654537015865757866908873488669550968893106268843284467815526586828943725340712626421899077403723687340287388846499187957979426756900111809704404591442880530780478907636597123120402753543539079787941058772956622497133891485668681748953894659516368661971489177744922546681329260319395950109004079286357678481985877507118131628965102381780002240200120373116337096326650147560799461602593450394774893989721150125313503751172833534032302084509936290732550051882723477475690518646328199626899081075252791582999713060887906722215228604409812013457438424504207033321159134268420485865255940688425317774677757315326507299799166906964942112420723151599095966399529120841484027740615898971418135740243492403211218152017169306134006432651417639655508642755137902271931819940352052094684734623056736203240213964134357292912104966795135240104358452127329481183601187877666391013457144885269529034648079896009509723354729471505377437169867630875714002001737391391825920345583697169379340023720661859756280583029967207013492348894310809762303286800491972355902787521054875139968688219407643813488319362543523273865597329585434300596928461892572202618819387063048605465236484585068457986308911997043804792901194053844908356246319053037378122882031215524837882962817395366497068197341511706517514177499415404052758845050960919147017369818287962139529401131052406823264509805758881869166568348031677276334234407038770692297033676222752751301022190950702346001485863264974232973189074538846860268516731553916850129850845395858361560991893716296732766318642184099340732610951349671475082630861191272820799539157771519834377970338575780064474570297017675840352101304971242064966165558037538187676433388185364947575091744797013406062923644543276342085778339031414987258701016008706550037424401933408380705635483280623454835793928918749410009307339527898811022537206608842369184302917422719509205516754923817072043402932141909784064299190901558476273773385053029329736319573973253999467701517999304208507819692638314016454823581436030302471461740560753583548058279918260189508547575325564591591053642260542750501480802117281467501974247264860887256923612802370616504850932822431892488916418382264903118057444577834906541543658779890183953741252188241747385013091187462219951381056819634398145762843729527034783572976262220241707730512949857637795396166808793614906467213179279393451241203539487487303444997441812383302333975226741555995608709122122405456127444770352977488952838127462483153012744415249432864424838615289897943075266382339061917160635023652315832089191726523714984774350352503170110225045262510862429801583318045919996670252851418688828660843137095702513678709522043321054704909588574221974065953385690376122414066039991590212933101770415328057230136424313137998811442466675409160354486249817459980668288283801291723312449248770168941703442648757981402346666086126264655155084091286915192795664872028195280342719388092632972992284566281936084565965882819958478796859694578702941657218186812984221082289836966101066737106358219048400666594875334573489468261454181484177726427815467247974014254910191303413058194807308612090909624439912624262676961151082299016915436380121290419021481940414515354157839468025249795378273303507458469148157614325792070284155363854726679486112754062512543099620283808324879686768439310784284112904058996787402756767485869365281809262952879069637493716567640740689465617401707329649036809120306482719711236068101103527032445899605605323007483421374361272274620466485308371563050334818634711750943716299103908082317034015063646767799897819156671202056285957087909421208383884826971944271658877536767920672505531664252781775806540651811047196175748892680373047967514078351455733104133946582406279264989520277470347348613422621717623817928530293195770924903540896939493379098342116793817373371198168326390619651775597843558532841285101278484850862432664132048314976940720482799329210427632708358526121187627867067787489878083263718214185044251980136926077743684042726758914135686987228141747901794970832665121239023719498065908414477102688498688564537467943268169811338544132507872852125907138085293502170101124796589133331374463954697224707222842313522163809348068493153392688732031011098077171817664708287251327043150144285818862307212489839615552604071002803191069252413299083650752300654035899463682962851661495564911755483742824084872991094331095958053189074377472833445511071505929402224549450317637783922668150028232930390791404366766586186701791065023878437226916207153167064486509373485763084132586294976619127931127410735726206614691197981073328984514402369229203430025031528751464504958289565153270207953645351156651032419128304206261823496149601408688066191349788743953747979864212785368100189572071157032700604826023362022975076139786022232644570778126712760168665265226752132443639057636554648427087984169265696690046560887544040693785912604459383724800695757218358239607285289627762253679677760307609158393164620633427779086000822469313143446032741023159636734561546678064897335429690034704273617067345653945286998491574165148460796971573144853280951394271454208462665686349744801457668395417317897791614772857753594970895978102490404806517582295635164006770127268513657695277030358518447868639008282040451461033325932977328731266622454195784166049563073786756257034720319417155469513280430583555721598059165142976441845097236541397816279287503696401405559573865324795932286929357922706549087019055311561231527832215872404369978013711752797061630333404274894843133323016032298969714069632074363478067095673480286689092898329744264700943299501541148996235354252233214813192354681248307297932796007824279426388795744473315523101539777212589610108984704368515416611574086700900369902686633357359383611558186819688551366535943704011763149772572988825182080953497149780870340643837947011145398200737742288925330687712490751480668318013069471802692595049412772397570004449760433446349497957802734343261228025481093654713362108907647623323868001290268226503526835700998637631135657692351116465244763569276363551281277066138091226434401320974547318716887085555487852778467431666944684259911731050180779083555410690743349379900651728163081086587745458365230267494598374650483866460694161170061987762174926708603436509738583471861951336250158748025743302955403517728429111309199589809437653602099506894072655827030535907469847706848877731485212831509818443626961741967568973820898507975671437630139852630202321756605819362989616028620535834113344700118218508359852568673301605062730747727471640711798361685469986343326189083992404086705136646106154666496548283106227988326768444908721254170555777453423572137162562102398202545854819176163029056650438574923161877298253487293575816329744658604245129696975432530033689910779398489481465830808736958894595166341127793573755906697768437799389545348056504247645964317593929813602358971333074988952265233721752679126194731056733475856575872520662075512532834157031018660645551099303113547544740164544751538019492714273579110434424672710796090842415206145445402169546094686933225913771396907764638759560732453475219250637624772229635252071254420162434772326124764526176125919549630816533186869072768440221185631350394387933339731301149728265393737002449108659677408276289973669312222470835218573453661079808137926812069211924151863524914815975100981483226092475250328193285402054112183050260823168352716994619744345487773682445908631491191268396331838846252680728642607772639208222250600621766559407790583882859967633829443368156986199151928544021621260710456546968108816439522285590898289965493321698535516914569094408575213677958752144815950229064425202849586497449425144701115607298030320989474621725344543304857705122927286810458001293856217853569074352546568614485675442148234483754206773379019442709705294385488515152290314658166254283020496766273974667669198838797918200691533903094399905730704353446570006958336752276559294871029978148995462793767280023482051489090955070935881313725939308306482240558791537176863211997314670438167343612161117377750896187049004967598864479075717286718910080494166081572298396854126242689388564034564324349018209530047894641756042754298776572221173702898706538263241470268022263425903729890411392014621799635633355372891403201919110999517151315591723923522306770394172807824101230918234875990186956264637748839374886430306346841568510914349206101464836256660744715320310378903633205198562238897488575634512274180807064145099784310654713955001702008945047745518068723997587198675143453732259107797343642345486307496702471968614843345715060948123841787576779151738074983618617289274069909454496639195434911863282199482690492733302113235382537740925660981004514791421764642343416950004076011529684409022265794474895500170580790634459815108359245054888779941422608934662388903011672687524080160856395678730613114775138420284144261151306154932006029211593510373284469548895827313538328572102430119949517561557933049494458609057561799837070482405024202674247039104410344656524208244359862310730597681164045704828072328302816532366318846617438855045448847819668672644310170730025060633430722291839225823108977048664274549906119204139511579187011449550707092874800253305053761198399865561894518846371118919057173115198266377863842917496005636307821595231451915204934932860344486280847679176742000669368439168763973807202955404426440057968633421349109643701190650914536922620609360689502220400442989960365002092875298881383673345393398854330093406326464404747342872587424628482915193958673406068156884359444192551135139871908363968637287199566786356488013502589459641376202755811426210866905797971855258694933459220850032774222783818911920122069363433974490666448138082141852557093238966067265876190060444354060505809697231265604468334535063580589618396197255101288413342075023868561885584455776003734870701836996217120928675037655219477464208570150839394860061945584473592446202109155610412037362203731083234456278666017584539470831983561507152217317440320864667277145048139834463507708338301721950599676476236680132251125702534654289201234908110579491192571606201761577034260956359550676261551505756100310910343461045225337980837011885710714953051614201327226619705504637971170036749750673387280621658931786876158643320025992202212562573065515105691484506246613371313794511143239612323481488996040523623300422217666102464509199876015380280885208851213454855528243654263112737280841377119662649686324009408819211824822758505823587521568133600194605116046721305396400525918694347287804205090388084203670515968946871910824034628367363891981775630463522545111730026823622693729444313849539900755777630804850497869975484762859152012021703538168991049021686279919000806214143526940691594761431741817502418259347369870426457837093480865268890261174784018043240667529980297126656251001679671840570925318103295947841134482861306822069726810138336206476560962955067724047019471953050624289833154816174597765404868831447771583243068073642650671981404341077527778820030117805845488442450227373271661328355019108533980093703372614424909272802033115261382992690799469077450697038547940020377745692368022711269423268413280801494269630633606164431022308859716932703814414524190005551591369322553488398168618867572071949744085298152860264386793230866626154849835554798528774423593435681200418356867937942501758094445044328197929597356667103363758428101939806448906483902444485882915650959627236547155785824787567242038523249868547190675563915122369774285412496262650228414650548185490609302553265198173049282119241742884154070327638762065764989849084838745235830390318311179421061757531203443737443343224572209213824017144788734238631476919875311593418995957851113403784050782912576368441173693352643409225342123699118152987583274009475325089462692597661085783023745838606755163387047267496131008859908991193705800510767653426578913184668010807672086804177700117002656589928516583464834627075296761292411489199866227354583848214046085223590858378178413264948857767995010782164243858971386666923479866239523267604749532963072226418386326985360386298221454649293606702649813114638047843110852877467366417304537462219481614198910241594011192495549287558756498735091673917727872149569268809122149901868978578783665269290519719763419647524480515375060970704367277319878581128152335482491096251718725400027962879847526089131276632253792210048745078581110338583164185164535574458118509379427064565835897958365911825959133284718426593434441883269826051339022515958604413588091073204094122933221587458146781662407934265206005808435094257501338664951015912418948025223186416436714081520240246510153000710308318916451106252158345869674395973366600403244446078354583823373936993131777254127320831660616037499743810923944141901963259488976441651744257525288385906042287575484240312833716403713817700867376320977150964432570391777982968873813385708325025638967377894358146184346529652573874231822707527497938337313276081868692028698718453496102714418702908415582475679342494545412873284616541183969303663750645333033290525839656677515325199017115371767112914029158408880764634044821024029118892121141245614452772422021045527253686492718373388747588168448467472447952605953170595365507874700198240734836044902900625528499941408057683635023450898420920473003006071972652902406776639707861149919807018584562717382697813072417197734219258233125680759723235231434902793269293030695506390855141965545328592197824114156871237559821565154586374082670954888819761163765624385912531048856697245307882567579952736344228378778826230310851863800616117617068666669067444546907537242208990976608567267078715762975063809535914373896476210347480007107133700348965365625733827996097129299750735419144418378563409141257534580853299395994425487194198501094533991889022000953930013758911316366580629475401231386920692464173943555571862907926529663711038172247618726040000959836246008290498250694687106593620519728484758177607130940733939043322665011649195112450764016547331947511444794161519856310604250502877404960976485990099355390063384836335616896441214314938422125171007502719057902963382624424143610199577940168848272295834926079218427138383595331615660015514812172574867808337913673864697076915795975411029892715571277891814973044752068966029812606732580347952633596751964319958562105121208898996366782630429504334293431052169633175979306998210803064786300056235544052990875736489288292011227991206458723085013236218123237516376288316930245921959696159262856204918925450711024598824076133332386839663082804663566923360487676099695956792811326505518003971937249288983617618300505228363489496381111846313652628625504036870964447162463610059168940353367256653404881876247395638215025331724524586182179213229743608772159367964553743045126135117379241766341660015990604316153109651034151063720929785356223129729211237022573679280812520817450886443747825507285629632138744954948548069287337748652045973729437333664029381484117684997384070559046157866476466776071699284396060611817514686416743941302276242425505925109731747603756238333730286374012083463482466409907867838164393363697525817931547828835485651276088160129384206920354750049004731228522829045116315351041812144164329638407531769129012072397060018766037115451914341796725914258114273527959432021578871405020471902170085429467307930341565645309566149557042018978711413657670634354004346087184719601524182579495961649101665744379933136056095079548645868694170028781851478202725148132038701147592188888222913555070348249961860322518055858203561353198422615942071907904562390929817520989642049338134732879176168106089504152202796981093213308382441369318827881001302600363566114267558663651703250657365212552232248379834314348714275756652772135615188717127320038122580056351056743356364167127344980004469573739051888223554549179963248370515891785923066561050953478647733874239763003568951835295767331966184493972487468064244369914508910563158717494034627308106291888792660224982640502158303996955698332933365874233717261631532167231525511769320316488496475232184058458556726765235466136831250140913215815172351507992318623078939962229718100496298046572388262061771747546936034135868172325220040847575595061962413072826257198705654586828019621517918507070611977711696210350344779143752418325707455456024191510299283153707003279777559621637192928609021388739841524753902587795727711386716584273262137972416026824100804198634760254016415790349282445187947748179150306034559399965252103768373414960465875792057471990639674813218472900678945697423208454635539463882802408260552681519521250657796372387289251883563928623608936354889158911601415055620999095732033973823228474904286796187903535764458937485652621544084548314065845885415143200762338200565517995348845061742930924462465848973709099241795533117201095361444977680837012310330388377033526038387561721596098308362975905629521130254773379750295146563865046402081486214837962303127282478785999820310086546485252572086212384311601737751143731939982314027471006068030479623340713053182688509689976332749204465189755999559343431185567765844351335081126281447893932272095509471252978171593104167150358604502901515139634179968459219843852095105409304270235828742201536936029360150077821663598960664798354957381462488927812952329273455232709197610608554895466574503597369353397224198625419205369061614334779777095143337390685149459112803404006636874880230187261728406242778787264642855986655620953548810203536261061539460674352073906917067504101852583362735483354314507442326256030179226055435458789596373672907252806400834998786648596335450344539701711364111457780339435349104131622130489996166745957177714575693759484271212427831057242132009567677131828241427228220882225634340319749686651527813433752077616238672790243702079343186966143715182750227042317827642675754420935298531615139941433721529033858623209076499407760751343446242873049928443733982931142760180538876824581690903705428880334286768249644489468308567262707329713515063821246239742165755531510609228947114657224118383918918252816530636713310229009773064660894328284907615950861154381444154448173034172195736844936878200895356529696102996203163268245846348211990327109010099288160795024863072075581963926575278067643705300969144251729330756780090232624062048981703198419407121043102697263076975610411507167542981600595119067921838286725931078158037852989243063686378192374109165848061522354711996447625153448874949545742117743907179589513388305197307230942982079497181053767832402712948372097149123276256823327113637998477100843190108300629301722532333983069377721099056771231438487972536847109351149166245167086060178921987368853214781236820876835794072609265175644489086199778810182229619827258352281079336488952429021805453586839793740184515864389768953176316464344672677767156408415041937977519547900562331109965808521043222005124560124730570068646563350366076825059971833251121737651007056154654084560939571138104391042455835851306633786845314235705353093168079054406675860227269510295261507445526099247371257544437290590514014155778259613199940961925270868984757415665515755365207895942086907351592058692586991283761927869062578875438189974302824405239192671235594507554303744016988440904883378877483861025394358971409459492818353603576290437530835283749650827963341687012755447000826374488540660963305181937165855705688459627346754489498119370706078760371065849226916443516604430428573187581844530776690907585524658818324838587531216021012836509763860629995345927559715915922267236791302834457228475180493075076848325779813843080212226924888813036473176542313047350190303954849800854234558991471795297252065462720215538465126800159970375130825782346310529250799001848755041029043378897819611567440946645073010607612073947782729891306961248829994129479921252826576742729912545173708670143974761063795319352603118499512950541858920284544487302904759422066087409802801641459213768959013890781553858268467891707092706866342625022635777635996908611131403085334194208518089609189239525588834972321995949529582566575982211025475308538726459544545121352003377923703505048020690927023103247822303211393077549006037698515100911290892349417545591871531287457221012719139391483752407005485689467450155254763603253423309076380599275599212228879184721197113312057903532611862400337283292750845871787654899287841373411357474682913188414647410630489825004526067290217238198078841067289867320796838002825693288457653199947774706464668937093558249896944395877154465600449812862645382100186039107817011062547720297750652851843487403623330713732430771049717993060862394088765786027221535133847958885975957276136397290862228247032848412222725829877638751035104271076737180779275711536475872555230652814250208655205197039045361673013008093956004457681785930420377985060100714242258389563681979716124914728504802569283748415429311750873772679679929696526004301144202432966920694857185018277013981884029896351538902724418469436987654091341399255594463987092051950980308025157669452546194553025294183789505557865519877711144157485169819077420076872855367394166843751224463908722976808916025809812429729167357575916890590851158498170950819931064791538785137478020659501367863842933281069035311465745172391193636448293489652819073894698679937788254235296748691761423781884852332664774697121529439934524052822012170492960384080174486269430262049186529002626685973921907604095747700199257141806078644335874953608778184776264323334148557447216865664948774493215163759106216286531196890357989578687662195365708953633774656838818190672561796085125111334128804255856040917725825015057024475676159094307470358296298197864235101460662669388400786331623259438468818512162527077385961720062863899955693688994106021094920513291276908306436700764290054305889465140434847855888024850773576698893271674817457400543135521125095086812547434973091573198056652844183568956825183470168824600497455577992173422699583131315503591361159641654158876833791157563932331066512900517224109966551416145523042343783256518928800574988260410461119535934506636045441786648286921844222693925849948714237477861654840443594962223409414043234547231270463647149709257460181948594424450586077797346852643370204632621376591474100877824343770042068021190044779695281810362131395033486493608177081457343745857509821641284501171105682117885470881664222168354882337218779409977068004030383102727759195082014928501328040451908782308123685481979811450670827579900774700975830121237972834466501448321762191321942064717045032676561925807190736473303780605462422208276064856522714838357451153350157635000152368396076079562556711748071730078483419968241981734146378996494083343530438256339567878472948878435746324595639761020971595307215270572740742235995976930422149656516165857143092583384151813476892166732756221351189085469803148607641125027507221522664155337806941224899309043055711821222753396259174279808818412266530817329992314654934212309472510089562968979196879332247189195642475058537614713316648159084647800648063033796211759014740349137526039655070388375754310936326870921961430148649091713433687006262737215579151093879954624882650359517759117236202285842760979391646480477332893982659710767959746007479637781924721334301359540638989118639199410804582733107576892874118465726894269459466305399023725986595884724864204146217369822660749530536465054255727638628038183295925080504113047835764765122625411296442293010929362388206728102688213656200511687070871340058993552440053971337588929734116290538168000368537159232759986347514905811979079092443431463687896514777277347465844326266843177297853777354763107898360396694884505406042648598056766315845392951403121057307382591457504325655622842181354450873959049997843414253597007756797169766687855694633879647810112640074253336038968485118401625653133524176339429530537668568447665644513437622951879212964810656883695866557080532289013598710416274554452398940534978338188008684104012019655816727315077005337455550743082638911979312022116064119032530591353180882410419651241617053235558036074405253970591238401060332570771471453685205221318344720866148483156149938753750203210191641249708476468086057275886587389128514987629068296809961277588595723300726373907824096529491764875903273949867078462849293116581885611761220308918014410562284550881269945729953688174006085640805274250455784483370207212561267612182945922552149226074311071054630111595424954334415538955942699406336400236032472411165205384213977025336743119043798646882934862129266017007706825574002593027267509910433423841742022142288061299971928648609753143890760807826316796035322510007458656559586511121115134157274914009410412809034214790730015985354988593531438574735785703160596830965110740080819152064161049690343103532637578702213496109823370707762991754804265636576258458336472648889730415823805702180516595957020211599809551950679990062019859411519190053901062969699213455335092133502012963543320349910462979952212264769489202447983998151685261328100329824780113363828368475503667204339782373168484454854232698160769279821042020203128274707414993873133961608020362162686116996180651288653620409139259599147631953903161441405621331490918152732924221846173235135237963586430145284068334872412726366787911920376327523720602548551578022323872710580230453489771170918120018676741567844234695845368980707794917735792696212228619382334663559205222358650974325712060830381209837463209375739465140418330122255450953215647764877033967941234335751439485592352126724396546983887552478054783222562417777557810312385726447140122855292838254676391402326467857454025074239568386105494733086365174070939898367484291408018222098711548858614683752770330004251346998414849457082665929775222772140668376711561147684228051522353886695519066822885020318043192206745508324457025742726110023970939509685013305954452646077204977568427806140179515011449172326316426222144962049346735226391250150510311821767666734433958612312987494381233563778212662534192143400159930609645509696678554495822658894993225697506296546170693619869902380460667129611228501761839201061317115690759658496855645482616587837146545490430239242643114188527146470725835956864240152818914720844160332271016220071358388385290127419049010357559428695720664343905307744702606446308008711566406130689726597820963153773700137360659195130441458287354871919317921914538923657154643572039193530884564966605325388445206076868545763515137702763758484790085207853643350238542019738984497765987369084864885439148466770425229401075106095070464645983704827339512762960681413638107976542444814387368016415625896484987825824706197003558561483031893371367738563686434326417649420242893849748667798248914616970377818444395271587947505580753164783871118439623478438184300193608477608472717879275856887879917800071097753722172269973512205499181656213137735673980124291583924783288435430700840699913065671232186684720575964045124454059336506581916660076784058377645802334046263388982994249172409390553922092381818268994029203272402561604646445873068252222394603353073530159325135525001620197494627492335055107551989468952377237178519533425901988705705476791634907618089566996274858588630841114673026353780072188056026305072178683254242430676755088667531707751350746478806800015050867768517202964276538958752539911671714497610197122293373042761629019584462078678696019738444910497119225967081255369537233769386053958034142168711164109605666295726940748785900326855122714587673559182513311809002502771201935767520098510052885092231560703191143459547372287329886634131498347584756160957415629545410706792236317059219901750946722272392507266835928242178008509821296915028623263856486658828198857749736311698701288909250479076737659112512513986437807810037619812101886730939223215920096679703004018181015504341069714616308334842883157255753684118787354846931926507079487336452337269454896896399955851171504278800573882092596199833866810970909831349172373704100120232518634060939343841975138608823239140834473281953103876009437879722860817622134662424947638730367739260519148606165530704801000326962239994060610706002395193174451093520653683173146652575197317409015421969424934826227285480103745810199937115382628292051539516092317771274791530258980469027514932640257190846779228633014861017142545586182781955610942880642365603188815100446136083124088691282516420580601261474413109098460631589348530499747982487973804465488629616979209418142409983805495625545282410375108236324686238053913488133279709963320145724088797997126701271831723544788976855628400207926407718569800437981382243888984583605991665234246660031950123436796764277384579545364638181146398122043763959041553786559997220553949808228309401003974380086104972517972484430545954446473072784742999399762905147735454944574723275979818111108672130798759441549502797319174305047019861506832266084327316629082998884245886247830311026822509862763504428144487660149798235654313021398221741844960795155322839757979749354248746356185231351068303965296663783191773004086000406190727828547793518213968531951990632749443846099261536177254209329971279672098163766645430832187935744992600247130309970470292527212673331341347851199800967129998601128418957996432819248743989577952870187886043306312918752545173772452049987322548885520938181592527748650355761054963562969879078322163793690604503805415892600356460439580233168431276859792737439112670453512619310925627812610263893791461959261135089703193045036523089106893452366634326632001444081608975235508246858601750897738421098755869909260708439367772823500502977426538177395940030328749533501482779528758999688894399306833381359067394942815136559604639037657864633833483876281922729399213427468334281028925004543483764995647557040105521594086059334055627662302513677912851687380147752216001018280796877099615703791106755634106372042156984958308409394953444367426192008998298103319447244231006656097393038523038541859993370305712587766583834434983236330269262417066955408960647386706446517407289551546772503972863881886899036053446199055028926429165086516113716749244375854608288102171549230390426934792542402383831611356203537480604945878988516889328015509135769386033573123570441073330857421022778601978093227825367818422344624264735172915299756758777821678863512378561529751586431348359705974436111716737119153258446452666192739464141587251740661349970627813835010450467905636343870386184935878435032360221768992791490999287727622009298237918441624140943862028967924116759189837030814396973274434111002390811232416831967664720648956773421278518139695249347737535103342657125349890674925414235882785580254672000348183766755156797771877081922632394524324348060465698384143321126054001203716465478050675538119521992517778460034896015586036857178792690525399268612761080830447293335625459511422863738835330328076809890479796456271966506798070230758179892576897656335538821011583406270134270290352545146619244725668377932054435832108756645611002916008778137981674375898302343420161054093818457689306646163518506226029525665693936051062897398304622926771000100393603173921331765085687646377745491970267146958565337390727216794409116465260760173578908520731098245328325425637256282179098415359363641709846968269087491236329183557126446819532497372915750138911874432762861846549517159900167565697977820037473835160623481568160579175269551209354576720600020547864614966074794145254721201821487873929333402618637794359481012335896748925404291066954995877194090030939576326036185184229416469190614883653812888464254261276740500767886695764040618507668379341355767160672659649062697215957132207307885865738278120679873644556850090365697513626880686936577230132647783126105553299509395046994876318730273770689021946402306450063467142352264289993682823055849775893321390881154131358968408100935954263560195048090301789124571112685225139187338685658590353326159228438650353772261001781347150020927226892293390675254280765556454803878557520626231937986778387293588719799755584932046218576322589702029894145549333576783984567845388917451412626791467546732228571816020295805924865327641866509790751775489343153111807478280217477960172833335666471393023225399165071044256222717492079926275522437747343735869354688035121338438451548075625835733380579768694328384252788158645412818907006499967709503903712113840660244526695275318248639027296424866214709993193496267324176935414406076379077790601454938971202703897682547411011617204864850946015779001247096845497336668229855818250995022210273987885954134659196367269164349954883364974417663408747663373610458044330033863728677939488943016627441170566231412895824987619467442925609755556519573729294070615038215361303911208064455476763523584381460228680549570163936357269417017316073582302400188846305839448323476193028536815719361435474158767070702773287117089684484067805152986205064149582118460316054199082467550529261965350192509062989921247631868485050372459380034676292974727525226825048764514996381719077641875718153048020390370407119436859311714303338488830162368804326748422583902164146342083619353701159049324600681126891267250685981444912773143092039452868934610763860753668033602260021292285301397112695108172212700449981567085394656221719327142470903352932914876872480493586347077879937101779743467912420827392487950142001349422370841060436104182270153367382906970823375164868706346864362410866593886953157015623465084601507192261966658263522957528616331863904028443383790833864592081350232762467357998223611772556941344668620975545394666350020238272907294798217377939439003780454705324155140113939033599489326956683861502981579164800976290569497259046275973408917074741224045859198748612258455416391093397895188482007514002655658136215567362692768951474991382596073554446286545670418604388872113204957500575184991094367293062454903763843867783274318322723207523910294660567671894492894968237140952422369992102382639437848984097332344713264058995935796279509478173685010842582650542985483361053532300411289743539142617487141706076421732373909287538654723919809730639362288819671076298224542833543531408457481505458317018576850268675029499335517082248708263813880963578755737327591812677696048614160115232533370910903566209227750258247990535013559309347659121299097808173893207368999637010066677690307781061680848161193884699666922664416014021487955135749879848509189122590991228896606577755997022943004740411477599755910011445360336046096948348214512842488837367559347244973479708080961827152400623038980136776350726185542059584486167700301761751420498847342029388376209834884073229684078636897474772258552228013718892489012150529601067564158429332220163734651090667507053205583371328239114165144615322559203047019980778470302998720127703946592884443856141687590184303674860483439182178957997767297169674105593660457024858761634627798183762837202804531165274804575427190879411493466102598381145608319166122078179808716714788813331623975938735916538174366550723873419894443071725412094407794027798828180546518788288314975179575463054233253299240984633923498464864516005865719846133367773705459115118744388599394579715977620261514848148987556661714447385005057757606006367944453057494434028771391163602364751730530788632596894897861523551799331696917974414421512946902061412120094463019466592966914709836890502445890941931801822982187400919290484660426710188783751939999815306414992925703709114896676112777850986711104094454152087336376083902478459786006326562144855536316770981505879154092216048568888056945406469486231046828619028314091937141804044034707183124987106121227938629286473537278101964613152302285180070823628107048312823951905604830962999091368158256542505155788979894636158542655097782803195055755134404433665030859547418474110879851289210168844876655383757832836720697897148549959540739875254351558808039391807068588620884567647669388824917936146167056397974971260600923980398743082195500207303712772400967192639827643223177395951449647140111381050945713731116074661691177093479906887379165533499591070486016971797541560435403585129311884352726087014224566231032723866368144407643069888679660079624467023844546971265716016876466903441627063611902330776956963524004402537356877061024521740723840083105179591439111510879141127022383249384137402928920292570006963264691808029538760362504326370542504546686933903775666837664525148693784087294061695237081097799020923551575763552306305237538644379493527199650257708132543955829534786736049562205173688773916483924935268912020657999169281560341542465440734579105399037216294423773541835325784820173938136536174928625130841493130565968496242714719133319918267582817759346048456271192902926093123642095504795514214208004509193129103716340830070705227637071414163980319137081288357369492852349800769458909354011456047348200581287254270993359111125452536670700921628154303559340886603517618167290602198116880775580754277015758198832037339391873159143563685867534127270765995469159627087156340080824945865920001159045395950697748811840769142919064605642116703235767132615528019006914414330654335749435165538075775574923818267884740919201721358543995598488489676592473994692937665696847037988469520860696699267134401761647497893514702645459471893446307738339198604316218933833114494019240415153490326161028636869381657012312192352586945096808467524690718287059972240173840228712180866782850754283519217509009080842580820815155488659482145021830599158112801019546901563526389521659900054920030555983762573814947852890447717450191847717912774602766026530690486877476997824400982013802190671994184186333460602260479106237332551972529279855533776116727325386959319090222064971883944227802284318371882614561651991202324180315211243735497615334792408275782376174390911402829306260843529705813515373661075845311781565688224085885098111531815144899259911720511816775874500757986244126548130900987690521270505787234581024398747132281614119840452077713837511892200405032288166033031643567847212930912721073519902512783673465894235903653730798990007138351865460082070423892046253875320691042112908736569620426906036575722245981936212825793643975924561088042033015904893382863691115724011776184445205375959255629330445095952440088398436292359745386127292237010726163155175730033373212594265164328553920344400562378910101375411486525205581078294927702722150327020382454149601869458983830992288093812662895877885789745867810395048432887951894904019080000511130850628478769910737838196039864737298322935605466506680405674608592788765527951917458630959245250556252900024997325689689093476250820779975950316074732930081477194408744506561871219556237126624993696516616071050293479249567752922485315608262981132741780885642473301166012006159811479138288660373259285715568954230421899576628006593864104357891718493725479055102731618548860683069267401180513970543157196255443573736506509250604906232251785177139235575982646114071186856950093469553876059214926170885995388550055059698326321245172430754110563282160348411414938053038618298539337619711560081597034298836232480144886625085950133072372562027747360661702094359899171872632340351977896187876671656072633312441136564554168129505993051157367107066453760910607535294762504149754846935790568585524788151595971935041096823133132835237780118522706868734575976638288472655556681728769195485199060034935268992610129793121874374306967319747327937952306984587702672962238941416560410318919104439575271486847948076483122131347294569364351021815889997610636277963022573419506732503393991398280234222825335898906952570879369373009617462536463659239553000540293014498375413222170628709394894453862212835387586705288654835087808958201247754834754151778109303756334311292110189611623821528648147391573477047818026682789658646627932621617595111880220813987345733893379759158329621426279730451103008314746086184076328885837707907964322888402587213059041356323890738990889942583841022302834306358037817814813933441135773313045457959059182676920387607010026236520300820470745666418990095748423009898240843371723241714632865492747966699518850784069183124895206970637615383938667735561481562316119421910359907729653240747375252576800583645861886769635967539932266941097807758745692267597080865411154951103538226144318681568115036324849679425700690572332916346043955020083320442908679379355083162850618947389836721700705418688468002404588675005106055328273225140251788090192678906405109681686030945379381671090732060230485662608635120543161841798174506981468407776081219196538196323274978518788386071648461020460374366846749994524636682562716983225421595050776424991913193338276142960642296749496770297577195790718626189762049662200266751434007882811769412837506202393652877670665865071344347883519209602043634414752003854083869214686841654762780914018764672537646478190085205147491513825916991971288004893110748951515281750002247502911054449025668297117947448717686525093372044169051107401796314843632796142397871237044456151306217136009707123802455688204687405749927119306666929800775670496530519565982258948956135301899381513252277996680279242027346918449358965287424245318422756458995459056570041940559010715664111595884183947043093700569762837633080846152509998054276317446402156610409702514540771320934054582840921905980803579679142064195204919021821952839244894944607142219994736819581379480571049137662477605071610041532583092958135112466986066780651899843538971545193338723707054432967385684903149423473645149989324480805791726300567477019022301522773677588281600603404832261972486758461293775541953427582426576003474725296033386627976553828533445820329038532496648144794540824179728580171385106567163218934653228866243078926317172368508500696941892420948624314758158970824206276600207301095646045497746588810685496942948140130496512413081485431755073336093970058663791907732824609674807726321618237723747856409680194143410979360139136418520055822821957039546605948558374482294010699862484982150754251193984408714773055675239003197365182668661208436586582891690489759304708172020014954801470439839220555592021531054153641771246842781516514852118036974855346020998647823855338309769742309886062479101662396957514774486201546110579396878191504043162670717522843786013487989114788137912502378847001584846945902014035902579130162278943394403267229130547094863459697126670976053354131697493070414825993051209500039284909669231397262828704185324447900792179826625502961547359007932829803487307213173979818230008202008053995651265811801466055838769535529729957006195703187996003317302124794317828237826998618973886669596911259036695168198646650459979657194048925892515479056802360270197376951376125131174220977595763113982699054952549372202432774108968038240727204885404706151928308998822591416467098395317860097232888138231097877889237487056748169253618664517156819378359856002544271856845905718953071643344065100368977683607772268246579359248096683180751383432948731493241821183821741921478752968576206429355847045121386021466923441531757548477133428725634417981934594610231174537851927888007851366783379940654983597942261930899166305716477328765250963507349722829411392264018690644666570015430628737366213398692492409172380484138256649895351532081409379111880759986352592483241675638392254811797230384974515778291711343347753107922623439755713129090563048110114137701100014349381518496415469612569786103666572768740231290007965954196133155129088309151806161042895848945956239951625736113241729941926313423988898434269697984139944271208884214172693662325550591729414528666365810825380489234293212881815342476643518062338554062017653927708803755632734799897221771490406252692886661232521083126129483155191670632207672380990347385574640926339175790132328782728942882587868077205187971982734262229566515097844303918050443123291882634621261374459211700227349529244575559637477908107629247292362767681305263399958795074931848027160292019295437929340848793923876705758272266344063055897684471220770080631707885978739158745102549332497395499259322015678471623770136162464359753898614097422907413278119445093723462198183923928201908468891095515243150167770942855134621362020260712797307938395588753176372217061912599516657114018723712690977462726861609055291179229086100030967099647918227430613618971555882136666950778116798550992510408533292317987670674296961531851799331189094018289141440409332331093604363359885379253090971552071089463128295200924837063767660844198684577782952366869533540028777808196035855319766888441660436984706764857353251628005558380754179394713015559853689116157884132011918393477892199136051019310733851688512153919412471073863673785389679743283057312669937154475467356205152550450865174300380168540684946182641493126642989982281158814512442625688081126896181383530680415117521953324138627575297818243916787886859425129181206597751646952527088313467402212730312031570030210016894665572995033086496082675334146278851774753207779794461226919029678915919406542211548331969530405607551994390470413946596340432231753516315330494901897117886212174586148171102922681269796679067768057217741420367062404099924860080290257750570338991151254867151203354647125704001141347044409903684502225774196305911884846927983231624525822936447128939772779127029438571511522194519164952474584591310745525270627382007364755209598792766509471736663631364800794147143609320961678325979822679417182612627395597721709378685152455252133327078591771979974822667032088453324722275537886807317898746898585791030199718015116612145349260359485060336728920309067128170674500106558743735991796180536789886169557732564029770347909769904318749522650356965819227761789693860402624452371126352323270123635733668874695865137347471147597895741230459162450841668041585586903504960350359669199731386380585662493057839158783050122864859462872120334318658819451906373509863601474374811679145186676389059705567878714777636955309329304683566590106243349402117147574463996266825223843150079164307958705697277811184483372580938572470948365199516880948212432324482830908396061888127055589313183101432917826335844600330338695394619374267501524656095267885337252948543248429427266372551869007237587057313599585078137833695434305528101010380564433930360890755018269196456945931644952042495830610961214347822024054582094776955596217603030628228088067345043556024711307846146620729509660809338369427293440885051094411564911215063133191384393792546186616243630335548684938454901884313501319512674362339297459090479137837166236457864555243239433641156450737711517886164712664323370285015143689944340268225089325383495792820907636831545467004707442163287041396669591415875737943877334901618580668357805023227918951918299408109236279522171308186099736727205817949542390534203367142922219876939489912018999967962445510900400302939913548667306447551068401823381726508080212782280076890333658120122394172974096242724689464913843163972128369547274988825922786032892573203856125788884071664729706791950294346939652082725238659003132913912460611360008867521934558167089818034638251546156315341091941703664982677552961218408152136685085618420575202845188810202959987113075043398956840142490394096688729802315449958023097546978980470773225402200748867797464184825042550322023648918005942961904989011687841589731925407548859764701255492762370624645898349628377040344899023302291583811642433434757131379192615879853431363236914957119132340646268292346994163696992785968918976189314659210740446553147132358452671760477982365294219889056119292950018884907729563139408572032261020543645024411202701164363758940752914805175278407637984380014797149344078862019229223562748781720902550456213796674759440628531350423927492314913118192248116920406059181588751222146550953947489201484751167163640657560519239146244332909955548105176940188947502039658749936810323008559114140145649096325378665646843008323989964225770066481946664462707786439648627885585836383407218331194760962820579770753100705567260981415083301925835890772395645867015288346683551273110692910795520152808883108288271099800650037466435130920904659716321602424521056396029780029631116830905744745060238460367376821323865002738966006477017074510542342082039362693128748380633312844135059757714379687935545505543295394479867660718016762223678881508123598106090949416785997836188435846051643423278224567219120286432191592495604812239359847675601616998546412947409173488859428224846193721189641141917443265804721329915072760667014561413003213716174518090000069749654422541613440807412818738636383340722826121181720424357855069212278271978940199654876421165475502543435110184203229121032854156972228345190885760242105440535512237194627940690633293510371486053637482766573621147387872272623861188351077426840279728280839187866987512180129421353687733619973461452391107250343732913992873388075131273337348669763872055600394979691197694894956623139555804044550053891135424067739599470552765661582459131830612133281965754003627756803328562419068271550115233091901806464197254919880228319431979112154171282013935577422938019540824990908376510470883723841181649268310797739058409769700982140359788472964799121922633129347283581310506074136183463808233968689738708363460687909881555304165916818633048457652420130711359291182228130658409430724174976877398345182762174251876269307569814263994496139325564754560227040550722331564845220394967436457780121982157351595386643267113521546396235603277516048081470569145440105386983583603263012706617151208794258974563640602700569565920073406964946073351718581644223700132205740919296033938181204400419327283594337856599206662350901099165844738592559165459009356836598710601749414305838042331854117530577352223762511202235794436354676376934777237296185883824896139305273839959897473212867850612832628583657622898783864145345910119952319868028559186515789038367840803438185490551241567084478892377751918659573570113533940243665062837625468318665036394442996514609445054472344622263710431880159714550680235280893043565728396808632890405368267006566741215594321711794865075212588360146106706724421229954847919409139620589292111003514660897679847510200784960754237084823307246554927599458672739970740947834640349276523575021670105059289028980418483123591059937778580749692872791274278275114552588488437120031848079892956883129928358050227567871416618754380493850568933005297965438925349857951577300732320366737160011810327672725517720015864516397365221687102077092232037668152510955761267557508987370416982100727161821899838883657283387846825157833904842881275749034106214214827525943310952129122508071583985727192444803909461954861399319502939416053662865750428371243006724904268723473409479658048429367214022791558099035846874124901556080560226995201882224687358589495939722484468744787174542267344498576010363029825870322727321339252255302929997800184244554010699569620173207040863840542748626754595289763719066948843068750390319523137983208114309395011940765923767751023242762075438864879815295189527945760725476247169811578368663326785001502578876478971908539193534705076905231958332763612350472074908662722733031948269122381333621117857899373702434483634212119463863885643180451564034412441500698650951207171724741266816259643673985842421286883274912086887646712295809712325249828039135696514580804246746014397049004219848852425191297436218856365226471739133289852897181590407251576748516957464662253523574853205840988788337607550685758795614452375807725303099553903149443744143960745408000802928591447218595418522159253617023118262728189917494375531991190328179900825334721792464233447292662455153683443060403998302150428313771489739481925240806845938726117319711459291532199886650360328529025610772319206544253140244924991881789229786888434336132825557304088972475333001467521537708746148486301730328190700014993640844467053612815928681892669903159556810986903259178399732278357565509272407099680391783249431933517172774061015323376318457025986555161061821528703998989648988598375010811846206465349652818546054296800172529606763652290585411698423571525535902728275266763236851699090234926132373538508292540762005363607674726944578724803208292124320218910937257684422782985597485821650914839616971656624865106656459563534708854837717372813434983541527051709715116716197082688567404899457262397014059328985604759340405187592329709241538637142290004530026241581815428558870328408720465671325630510370094094343985694231029878317373729804670131119857468092763586455895850347103123568584567308431232453321606084132370659063567048519115109334816485028134930319028481394366576450876546312490483615230641323151825491377530299881130541105453293482236452619376699099469489307701815057506097306351567231269950943222996637094881465277210843636375115924677503902777579652977914070190677757493432888095620151157428362273899643041081057328472695344658797702235208919752045716076294708828556106803326252957184772210172285477000071796647300726684382871883854051119372724021566860388388732660424501433916962454345742796102141258994378089660220273287837860073693653529669258050178706930128052333612791378317797582593401718738782728841395047793894726227062350575002021690192625985564647421922146537267460660115661241568460653602244180206068736541783630215411737924723222423713924888281695780244820898809335729968507994302779627840307304514269066218949936679583414247728348352406938360922248916878499772600608007222130357475648150743310690367159106478606305536179292164444444936842222660588466959137147334547592435228793978747873525730623849078137197939403831264218663658264660745655339746210730011168727860658843547966183699415747899515190189026367712831050292276168791976911543076243367451055474245666297789916797210926004732928860076954859767711326581752704905217103397221204346241913489612900640841707798516411327082781513543385651931197805627291654786865332072337616738043798245091788669817440666111630844286317829380715435308602074649798202341677729738425321777080993223764765890074675923356368034209747021057489459534668440324092948001224964600706735857989543215037950731112663294888355158915979887518697901746031618181751165933008456887644383441406498835631416059765685959645531799345361742894497172592232979299866058609787594086783287986155029067437727897149294530811492606984632903504043807580176908400797506445075739906755402569027347471860954698936370438365264304720813736979791710301436625132946282450127843817504659074485283045473769687176125923253274575734653887883052495467479620179970103443632728562378504885073679603375634447194558514947544254547969956426913392649405757081111311829968174126189193084147395376767617628781631622306943886286839759729951023548692949895967803733023217607535486498055914647054756083501913184215657149888921415471825068193627441701953814329591487691540659936390363400570586373618009929545737872550710511349521793910168079049482445841736020898104127263189325397542663990872521141132690174810616947320855829965294910508792439865061257328848565043758881781927795777944212174936301574239567604152478293026994189071321135809415241526611649084787186546477634897598067179632174450315608709141470669188097097178690555927481990297264661365615270039062188408924513733315475047955292993907455348314430581077897883383000124301559868644059604570077642447294478510707515808293321781060456422313478563535694859690415903479615819970111412577999969132848883849535539647848196002273652341869568252981582033192673361307304882078277888476703502694937859201787806546373987271103735974271956859296509129216773981456415642582668787175259881061917367021966771862416544584239310371307221315544133467744663925660545352528881821853937285898619371584320487286322120209292943956097842660636888407314254700016025378637287288746207507985870006049878556281733760609811016205520528933320390167832970322783686452573399473284027370368510954673764569357190950446985866372705777629798447438361390647804495621305101158926345968091006929003030599812795569007602051977895106105107439989187846386753984634807625272075014631131671560495015901591434851414457480855825499111905044445925330031198713431946224547348130622964321494533868891440218807897217444349198688822555889732849595122711784328267094391237571643438450031305318427435887107998551329056327941406918976910934256397876614273252725984269685666150582604127962567323422475692206017054934286136080527488364423467750645660830430825705214726521486199786622300137783861313414763671459855207178641597936135885836194826605358298522113365214128701356023002510884241312794265151626857279263612917363152423347657285488946939754994902557256215637482425755079211376641149362323980209404709994070449570416097297341936792286449149683502966973540546617933962963088637810193412710738667584656564417144288491106974566864125885647404392226870873756782306784617800337201439035147145391471020689901824024338552113295758929688620188990425715324990902724059482848111302823944561648801748112585288144054736442475440923961304856187045043952698405431526816452000416906897335270913777868055538059447694581163429764358249925381102170325880221672746942206327018065950949745817979507570097494159412377011156773629224734801802996162130614851059729877574177339624511164722155679859406831335059511690717949856168045950576515221636134779856530548955843777951050924894346798330599514810972183569140427844135211504955176825474238145233166229516951844308447437246381264681442546424882599700374128543149014315087777303135587608550828639749327013977881580676234174506258963374030484462046368720110607306002191481677232101758371147486417925885930817228639234173722216356081654355766831194100098301527520907932773700548205615807489249347591763555969296394622083204560232879455388183667891600004273499029279239962098840626118999885161194705782242174036474241701517152866671783509761649663120750786465937634041258003529486538339565312056706529272351863827955923725289770077475788488192946022901889111179854287480608043915592262163483221096430379331811512181185234042114700774715932295623721998788553571042548237913057541994509451754566886679904262718092120175678705468897768264988377739503231317004347552173509253031343213404336504779271080823305554857836364989224576176595234035022365821194365999740934901047190069342561398045667548530696008133890959173181230766577887421530191842361837938103900285914405373776400662515434126878209597838771528907670418087544533437593231427105712715274900003270321276061026458433532504869801197396889243724199579160672624749805925533535607265012982309945519942009139556380901243702341478885799998705553074204085216515162583343605672676301643474691529993919192691259524875124431303868180019624360540092421825980112802724111333766687150005577409786409883894205503546313972005935156379472270801091724108769891616317937706585471465319363441051398895870367022588359573403746371454647650823975966674306627726578338811398392071010837278398367332534028215316544543427084367626533981870039886797865168271670050512136329536768461212416753177232445976473594782038322269108385701339964674386515663397155991439597058279097617514352621366321298556130887073212647456835514204334324247944691607973092603611511497586616919706577062354980695875975278502596969357055436630489686880925782478038188179638156461930814756087723962813875628211450956988703375719716406654161834327680872419338646475584891707629462993684634892653839043240270054246765964731364796051093753005160786188298409707452601005553291562818586269992448106472032210205191760114409198638003670325806231218657278742515615586910633492657418754686940484158463425655703588781092967317985662484652853942548043551482767794776038393471081758036176327674403483152057640359816053885201118683108949242654724410066937942271082566922290177731376383396592422095043036613817151564907512542848605630188447193814422653133314797969032481508948312466974368322883374107658388036158834634762887307560179014199023776365552610232193219099432982919304456015077590596123297075300181098665667107924986606870021358130617831753280558356692282264443694261666271958641352682814084859178212683789974036930447408452519478500147916094507972322579054986530447526309951603676011367633737841019349330182284085877385000171912148283814149984770719144131893010724642679397728720010731085850093282170542588376852110473397569307233191361605484695401834480772995466472869871032431573438072923301029929444866071733580272758072823400921585145673749129624876209474545163023413096781813893704215133967796242569791140999600389170787227142707316392899520675056230389529845369338740352270277791225189655366769393942486308252727381988060485342070342260712412034256387030826500720526894806220459281820563855485999153224822139638561155476472657969646511255776489397046787637226565251615876425063231584320128916352145895544162500875503531995636599538045099755946517470960991187717322790438543349056800203285013668674726573089585223154670659698003128820702281552101145920946633170978962570030769126234311556093175365657826411739806136012815761005230461059113042255290514731045149248816469161141404653553732806746665133756012820842633216011356490824122879645944268145432194934022856020648679243008599858677154904951869591773350092495787074875985954884187005487382366286993535742028465610270722019735903342162185565377233793417103799180477910694273913768059777237775398994736443854767599794220352368747190788035812006007975701357698477687697384837475318183689182207669212197579022593518778705125955938721784505534314167699394705943112700081747702332897313449104223558368400218222168472649295003015250518835023574070790549379032859695368672056618535580683501885984833671508181514051282823158615487517730905353337912418118757416582155364765963020978993622252330974949758038006856790937752125924764020426858935249858005032895179455083005206346314568366794114294308284611870098117181440725330344755924824179833369594446382488660401707554756292690006867293016632493558848610147240521224076029109141299342913280399202330780099522891316196388030984659508438257914111108530622778865898948924606262236620701158812628989218795827981301241074746293505070122867190629578035894387654013855921443655908304725381146075748952712218432702485180990371548519297605031900093406837004849237599353224877551720666245037568584396817097609029767349836646514159305744080607617103993624505323309974326226945437522536066612837602023991948259776277321592567367420889879204012716853787754563397883219365467615509122519872789194870897748288624029055711912798125037950783947849241173777364079925843020351331562605172704558331561316091853001931300223710751721644159196807585080040524726758020606957042844068682304690232246917828660706501734165669907988588284021386267533863052058678525486702007133600739278396897375874281672355191614498877293362968061374353658461070373997723000757062328872970831497197165244284263558951167033001006422536832205645448546016308514642467903939117884817927097583101057128091157608372194814977796819590702928724275275651749045043715548693636444398573073145937272076277357162402413605724584085236268579114863046359784353833690490504039281210498984072296936189610084314844321394878552302173678515524349966166618864622934655953246457318606615601661422958697770467478563446247895359953346485641279598971743781898789480290100212716165989422989610960768691750894168421808660444829219535638522673906599805405906462908417837433447151622540906973253957145453487585722423685141570197043267602438650650935625103177088333223097905419643175851358140488249295408142321113856408574657259086537623634609504558428262860528429048868210443751761282039125357529363130400302091347429269134377473364982967709815839446003913883567141316221154429842993621819835954276893566453995239260568359834085007226614463377316736532397546781921317340450386503823978178371116243224155855481855206362344706553168145960047442657090226122443733973865414218679743848133620981414011906058879044672402850065237847821257785700110774088593694627790617582506498485398870988480039477992518258004940238067265191263214823931889238443859810620868913359212744022382422631357547047642807513812531688592911154985288265215928128712011103646384168869098012279659211133170795861233278242590685623688398183440659872349335923828010032298789852260022756476576862909236664742840603635017559975641616728436799910441410002085663702698216728828785308594132919640468746577567495123201858905358276925220084838578738593819793199161416648311780235906013065989005763432909564277660453457032658337358035355310316275715610103284418009903841519332921861937623017655511238629192627779989798678263604625356149564945261309647932179991756839940647027861957874025686617755571094798611701057575045604182867550143467037572908202453966637520992627047644015948278535037816216444974097123001853106544066503289227635417884024337669729710050723068033900298231155606842107960254902096307430726120115583876763383030558385693756968722804001578922097306563063968544756671647104549023797193761080016276460091187017694645284558322570015766350386427389266252614105977429197057644312170041077257678586455323825979897065123257119824435142407746687814256675586336146365856605580434127974178506887686117825267809037845829493358760130590436895901231174834868848641934165092748455229687545138062070476375901939137170580499150802970389636225422237366796783861305422936514964562372825066883401727795291302673246097220077565125541603849148477798897768615448363688636587274062006075339479574600819831017136150261856690740057094883152743193358851221983659985677156582990599825825952615075791202246216656126961319737911225740169553899104868219249057662323168188134441084413671369474047214225219436754920076934568818748151276600699964149411843161497980648456348772999722071212947722504793691855648302367975313449213786227264888470110911767769015714644471255193066935178031308963801602459243207228144711029865151947656668868841636111186886432413576573177929453462947056834286620268693597228260565896069993389218774664454725498849746057803476477326392555374909390815060560087561888560781770732459189379551345703445387353038817828334728602510419749273277596655552423471355661112522746072424263638274028478930344828022558590498416083710111252435795998970147154993568519005964511951486994325718541341676878265266385945643346695136044402349980569054910657458586753932137716737968399851171100742469074880242864044302474475265349630664916780596019170349229288329985709108955948396176822031257656612561528346318323412471529700600504979726667135173793718981741325024856673328194163931518040533555154179475010839798517595508346483861233970056280477493861322123252274762033923894737762595445684499328134342389404445989703150301134589766728684100217575128706137310021801194078630338645183111391763698084454333870568958122280331593594794285322624244561444834365422910574427367883010752507410260196395796417367769837003666862630303997792207329010176962300607595102048844047237996587295726220224944989642479985196990086880891990204645333805190487607429993507286803671405767316664214997441494926201914192286862298021053382917144302488607685208350149478965578164481425521425802957129547805148102028312377494814115249675262188172883013378462797602041492749921218935258109754833099884441882722942359196387970914852930737528172502882954891842093819457037597041201019695101369375904087969229456526704342244444395977397532896933907684408556944437166304494124251496614676543897432410861311739770715640945781219119967837533495168876352210792421974975560657774969509430025184817975799499026736816756557261583920667266941807775020355733346574599957915224913580746859884961922550704624379608475166532108108582489245650170256486630789887237670594772480733307792358302491287886183997308280423733272594576487832585172900587086230582991415263408901451211000003560473072274009931241555775248644786540249352495669933276803933879742266421520245903812730421007501887932605660397352695931533758976181908688470200834277335006353107592426114974720367055166425538015704563521989485316212490929220681076816075286483083316116101536775804239443621831757609319722059790216786000146877148254004240112904355163544622193799245778549365781290283476871716485375928572788720838767381048829602096546880595010224040899836487426488283605460654837937554586106494096702073130192963394914053923838582547587820693979567162834995975895166046551077376270487301027849439119414700343881989959287172869320231194772150759210962911592010219344113621085941095881481035664936806869335512719175995924355029566835908909682395621081376614972344042828354677666825988492845835533080664179128272985564106282382896639507388509789351728659354520237448790535518730684305738904171274576151983537783493605796454892653695256507294972255639225099031786902204438620302165006919736796550106956454633434117136700635477547686631625464002851454097986056850487294786726074880748884728347290629339736396792854036986371458201501287941834368078852143468467965162529362656555668696620928981490454896956671600748429908442921628810531352068310675998390240476264527658220665618184030811832032080795470961273379913184100066379554285077599917253102128381538275949668459757317478744922685203774668233746558790923995458930261996365372340348362733268270357834194553792443534064101452205511729423895537293820677424553236597695566387515559534404324024371005493980132371458574288153099811854030690707032925852900982944248882216097558461385814389223731404660225324614576355397003261194516643172950121790729819753671534383759034403355873477121372914150006028542264751759232579774570700511011431823941562753517826833468077922429003874807819146478446313349390517303900150412314796212799794855117600996619075941988172546655944139014258183356163943618677875604977936084010454461796110488132559007565989627054052905080883176098538607334912058090249517993454015559299088396053981565556422537620237454174217153441345747360793468163035195300942694283331590991862485763464724308097498757323079305105873440590636753165923267714736837500938042568016048583444048723342879362478301349883630370293249787647421202759075532329988944876657796950126396672970076000303571649740876602904735200570231868980752397782799785218851053328595092409536377346820291737295748441575286539112277599409318247551856379814562529151071912332548561669895845032950245845130833210455268931039515654106843057622421743522659852186501172509829104274628018573685432789775964379999333212686159303302671178372348724808400564933483802596037724934136407606823050231992189611522212116045331132867083726968671560414838163348377367001733223988137850504956201839029195094817486701859004108831992510189505397989279323831124826605059623332799502051507374106145758728853440283795219710459062090618255724406457749508913358352866368445860994667363794281551918848794899241947073022023376379232428448419044578792334430510121700148032605350612507772325825483299619584023519200102302319746331955520879066418558878521604121347277721533108167113949619882825273573493594852878753304672836019844680501447759590386419983720154164038163267851847052395595010928829839787443429286754000399014753046089412476652914856951179507628620096841324186235359128685900514908705906226616645172764440727271315660466509887366194639672018552323538686204360614364592532594829367681944984655864772683321393993475910633039422196551606835663836828267352562737100899770778520185504712598716892295737615593743494397496603656547063598843116827426354849485698285027962051682719957971748303922350725056755516888917980926360245982308348859541668981103947298795645770189296256516494485313686443611117864848251728755854672323803721125921856939585844685459002635080610095578871137476489738953495169100076842250742278842610066217994994011705853329678043189172686308745323943935048027370018603148772593567868223500666836987066871308099134753841074454471427670627284218004914111018081435757432353929908356265183984116387812752105399580137546612882693707553844156676880432025929583614781565648058883651416888481740253281996287463726132003137345727109071431784315619031909826653018786377433308551390104296684771612573219208520534595597722737946895177780533724408464833824943147283863823255739294749745159060623863261183382679219623089301840811509969967288251630598520724335419385539189523010452500560552160115148768916937409909077523421725103544622455934168472148669014025085747179799913092990280620167530467079549300820460757997839222591314774296636655583028016259749415231889924130084701008947911460315343296965481741716130099175581009171631378390835491841044340671519728787473149697026485946778993353012327094461602644811423833103237792867502058778771912779069086574477411382313858761395072062681892250557305953304495287008247770832883129614998991230717062905028860340829842790049733161941643140066990576348749827332480940440702315685579701546384224724293017310784131402966683175834968343565108669266943488607524594744511524976966761575931106458808334594395205523478449984505746192894133516043140803091227996516451582674797727637763869262182886711449756684826128352706668770616433141003370529814050005316776785720935714256495415688041162502690699868981592634710866552485260595930374354952212191968704590014962174056731331245470779940098914367256667119993242589645715792185518643301029201363998574663551853316776187855065977042389066631130566358270885110999956522450378335056618913966860383757464214167058226669891665733836003296774479781596562672929354374878496069053119730381919878586828485164161559644985669850262570401291671988610807552467585103773446646295724115804046791635790742350975161180919224221717095443277530217977485390272191511390315987353627617712789159756907683422160772039110030934050957680522045800305385013662388542448023988863246932481908959813574112330051570945214187765092188231061486852173855455592344654269026968967729853650998657721068234639563273529717835064946829260059737935801689261954737009553782373745847783512467909361001786023922168817289084067717531927777439169870274517927122440292743046363920160112704299897598956739657189687389586029537478019378049953236943996710748903334269563805531474435411552857214248468690057968412158916393968171208777514490406373277640101412147504032667772482844302188729091606412463916517367736908637876500881024567713326876343959976437991717895175863222452502886629947408996427397089911464862755706169964964053877591659633077655105753505788005858396488388476682165818428356460641746845609802474952195861427160855704801469817392831524607905321935343128502346958078847601983831188826682431032209426324320362083376627180753784883429921414908432614157156374724194780669909589105210275403119230715896761069123642431896956821850195078813234588886744168270513356002234493995366808535720158959640826318967908406669076191816995995933561350146241783525193040385160683983594485067513340233331202571814718293592807934040248317845767620772090349375665983168326674735158931446864619146332429244228028172798704160099807205210379645375786858107011453939957485836651466591612178528806234807510782656593696680086141005955880119468320468641201989891066359065475410126058406754773852432335521609502700203854296501494634371724352902530735189156135421848293185785353980792485420604114538048815704020311855390332029691422116966817307095192782333271282974703955987042113255409728194946929371621490798552391622409322733089790425243931100708036467467260449396722273279912957878762154773760076427798061487225580979440175042419309821402549448291621445673462993679255742248963396037883848133985632745620420069088326306855492973658299425386414196310073766283223743695028915480097096349005143915438602009858277807521722385410222325973538215581323840104848340062733509244811558583172011374403938303374907737323872865452366371140031497557809461716319241035359747181389083351588688983716662145423373892192451090596266670698343500165723151733149317959415925551430051245575711706597387786785646467487779313624731826214707296510311194790708433134120281416485664410223415267306738452397538336675677477275163265014574333277059074085249923558995923077732991452058271427986469323664543811108062216593018120610394450371611488936946625166900999474272081052383647599011326932354044451356031650681225235780863724771068068740033477233096038965823929014471674059445072168115628986722872413046754282013938543257704722917781531290016810552180825227098772194800424934073386076095652049970022735089875429284454575232635106149852909408701473393079460849533085805980702176341654094025269810353140469693998636418534042034100716873405689234061783680683005636623398846813525772498235477611969965440593838866776845372351351289892971065014078759324080839970627071091874709790412951405619747624613698266984304841453588850456385520997580722236322841192608209490539300023369687122913334663443870743673589415374748718952627212286982996276333203148401335800391358599629074196010856208873882345203656014145046835477477538585116595791625700349872550078222393254541354796455230462357674627437689555312951616396033931373820022541921769116590319703992206975269129034385221322108668173520535845037769702119168883469103822495111049556920590760064017081158197974995932000037540813429957023643944245511041868286715663962625894843690626904135340152480240060515781391973193621027220001436523678784179341250538098431481348874624714068384951796771625722434303681470525211513160759766820592793946042524722903860696970250374874495625182041369387769053132723996234255556397285364699038620602454861126400605373756162020614066240231722070620647716131739250536002751895278146777245040825441944086283053151708878210219432308693540694637916775008036760874609385349701958780776749564605341157035400926563644112326121628726954876776863841709957018876706195022808147820351481739748549646733235887546909958727399502619555851239249938584849348990309525567815931343056510283506633680705592832655843777981158202340376042096991894652227864544524549378921367787580397405721252906166210172062310276651183235678878164707947463738737090995905639567024783603326713794460790694768701643647789778946318895555607137827467786845893070008939106673961948479357589654893996805740726289406376609337940187914951291745278393730684231848797026875804338451050556422698591846717001448652290859269723387549788536326669469444535102742043949261281245649276519241281776688917052024990313965758666778061751592268165762153393021676139394459604566602897415463938606461293773607516822414177270273187022549106228032460036394528690289384357092904369928114718295779713947229386693456107325930416660603589404784030263292647850457259201502204813643477044152389796878624464767043801101741012505671670152047579043124835341093213896976049478639009722280677976321803016504044166525637452290855080897417250503198055915875078509367447971400860789646648973703132279117064100481778520805674497110614438918013686101942865475959057869728785856397671249174670972632163382477432260583407658566897556077141259375589323668348089924247312974788740432080606554347932416444843764053999512145186701049933194734230357942107919200624548615289139770827563290422876777103738869835894233914357190611991320875938769340537231801649447176812576932336307873686107194939388070054687836313552296039420819657272334750073218439708592180714631965348008305254457100375178044078183007393701522045943686708564684752175648766580330865223943258820145665561824949490105284939917085077434608609470618038169761404687221818916368490124959029046490793421399898851936172877733174338549688945498296586392377189016046690955461111496208545768814838769433034308553504754126613998212133142994247876517966302199923946289984600996149210733294866384508189242974819629179291187577026391294686665152054467747999388906898234991278091380430270584589199066539099097941802204505123895529413940672425030949754177663102108232842050525166458051423271353971277192522078133201117594682064931743121556906866265451999255062368888958492114582186752335277997669573778740391890589627915518439548878005386565410521697392652551891823630049269440128607838103727862093176583710913279851006374170516392400098288075758927403611651880790464548293700903803705153486068912305495334955829934952066569233324423913816194474964053164779730073866099980238686344040594485775603748939732424543370568612235767509251223682420936604713799116093106298106864884933536019854417550925697354706070696482541459191319697070664462122412733491082935261564810150694076165996859790141154712491996493404377531689711623611384015208454610754130936555723286448757918800585966384197850611615424423151561686758562910741290924856378191644124340368524948921798494503246947196859492988435667104324366642148606576740592883932329830539232810153545561486938482832597272097469270183231512624825646450693432789701201201748546864362763115650383891028760836268206920091066726122221387541710388802261806711834655009414021644116717960967749392668871693468314306780733254825136022804019066922031901634172941557972833326353688379153813833928178810876469035339636834161735231576510228159935560458374339780008751919133237748148868948010631033023794742687628153124955402419384053177271407683321511767201545935358276568224750964906853343205312882385924196802520170925013238783668838374721843299047540801858210367082115525816526325339674914057918363790942423495648593051167087193848685156019762490911782359742708728549206729912339915141435434203260249508959600121100583961064450239255602186992490326616297882665222379079679789972871156525181002197269215109971532534662436228614626674298118490210148343826519119487241363598003513134536636993566254700326782228364398674856311040142474894429831338987526247918839707446270302128796161893977314162145767015163536438700259847589495621630498900501027419319420011096650232238844102442447035400007205303149287674598683330929281721246968155268810871325306265878999454859491637617299699574844125205241786242101237120986790606594570323499675096362402192247469375888867280413732243168859165045287108866547494767478387234637665333944658674607235160080693149140657424228723651909709718381192636224324384514771967511852514988498185910952149433158111144555457296082784114058463293103839094690095505422212102969650002368166243372125416032998657717702112428047430130392417613381936529651491315407763912850340632504907611882348198128459204863646563199089672682103297641494194559213041255516192007413639377354928955155077013015600022087567009679726590002016852769131037519100345468156611017368770901127636239199001059110549182511789177676797787060081192116692668890874639632272469779388241725362687187086471755672841290965373347830443261012836769673799289746894215311636318310053744636864406859589294355028248328071390059663976445483762074351285340780411947520452906092376848297823539068230789567473635513404686521429512743934985389177104971829174768261858355812665730334593104800938414678115328575041266016147944037620373598575689261803687593870698444792455950745326994197907292677010189437049835757115552719756697108422638909013375750207252315883167538119435033991311114235362690661895719032591385938358470479427057200232618650562960706940732337724870410211167490622287600220705490188611177511811015969914369896791609120074885985203205522107753247153014812644558075718381325452272303327736679443930272695049902075552950050449644319385605845583355616579001153211779764576324662568236998941552646889515062767332720821372459746619963407402620743124607708533185936524672435397553465059500841842167293037019942174877524705375539443598398539982524063575817196836098930787471357686742342995950309706473950306736355590724395871970427842751603762637115170638830917633471326549379556166166948566358375509254801873701658811876519740142081004983132402093083015596999999852268663328442947082443272357020546819514443107886853460751634533039350273768939238866583220126653911630826573149524110291477218761064228265833570590191915218801276858793185355970398005370045924810049843517737473720441620969236086436501847905679146269915614586351624055120896939910066063259577255430742180264880265103758002622106048778633439007653889599935589832244202815408469126603250004632553223059554225542811433924968381708858342982300590571244999066281164265255663344705952117527537261015664256605996074895901473040667123520142881154938250022040754779859923188005463406949970953791796310146153707415212423612822417790976021021984957483313318460524359152404625760228509217093887646038659203696754509061858445383252080785681716106386246145057652676869445591769780213911395783368234083639532332053046648410743143913114583062910033311925315282910211581733655971644112656032133603044274135795551520656196724683600757301294241769001513532303257734315627982678306334426092106645890607803044958500193770003913180777189044149709426282125818864410591137859568710785949361835647274659816736615728467860677487770990275391257674684173776485037508139799319154803120765331443009895465891315286886945794679978237334292236715071531550479061465525831146211329584981623071743122679050676016033778127615650206394299871638005998707682719966538081939191502542256590537852601155394825446837599659098213185522837058201854923979289222815885627039845501278278671702028440230587585534396529315771447512145901773014953274398989544528883542869066817593906555497124038784915861976759090946022781490181147282822474052341832456381937716255592476056856888323696617555305107685397452094832572296797740493911328726481353467187956849245871077832700729360239349371207889037193722398739027715107500136206992474625332571482732112900954101997539082794951662312609829173012293523226379274754809539176036794547632460766038949244666787030864730492644632740054609024212035896523327908744153394189019949742983848522011246984137455379781028576094449205065371665463505164815215405701466857449747626767586456600158699741899282809464506189293942263474673901364293620751898221642480205849562697343294093383176211668679348255787065571776491965435766489683712152397227917851557339295973405134745956180291081500595015831009953902476631711220853359348824291201326713093047777047087873201170858508277456482743026954909155081122438543262377428445564796894104610943398912809767845204556202809164503762690343313504430604052586528623521859981824342630030575297208654225026955124479053058375826176952931376605922586259212783352879562576892276428478542321261745004027137901157608291657248666168747577722017863928171394630519365394716056792409879619445544463919453069333935836669513246171370432379848864172601493903659213643622263945354714650854736644984503695455568700568593194097894685036343930150954864895818684810622852290485732835789535541587653743631384764071837554249059688205158005313480228397002961894754264528141745887914614610504284101636083385859793779135027485077890184639279918560551954309965319425361326820894859160962075849158495961902865005934154107041174990968620913970599869715057706247743147902808421994547445992730510170166757868493057701827696802457923938754589409043256762914670749441980934466936190246339764967399919106348361543167780005543791165240435243291117247158079758565480006127342916318223640160513790710470825632837500441411454888227465511881196900250855683282446521221636119162765397593008439055222460693740895533905448062973594661470956068719953607715015578717830309667700765968314067890996652338106186934036226113278108296337497635701861931199868838738059774045582646012632565687826333466702565948144823017094877367159712427423246031642118076199765814429873742188471944289242058206140363854811649684344091234939159554137919559747186701375930539214206980089222980046652035243765864519394737565350220552768320879798158589339579984169180176425434769806484791355828836278513740874571238500145127653658884183993857023684658770254401938707727161037207956470377458052169550401199823772541158105273283331228374100026925514068996105537803710811427991110864318087449714909827077292874292228851757637204924902350422480320714791201638522852791822086978999369373394967262010885510700203696496164479399226646631710727998060168759536490050145625767842872753017778890016053083794651445218752783839578064408242995936878331768301708129908125039023872575063265124205624887255152865048914278025395930409417454400402241994690937821120607559332047101012081246093184121853201339528854173461094319058863777215639172158730424350998056091422832446032316063959445437654142756279685898660575817861768569299995433832893241060678075558684671881281772553568600212980705264445184467579681972090796380144941053910259837040532500309784656427294093154273688164242890559924728386362361458500799536981258195395364725850034700990113709947739910764770584293044979077927357616264994056617776445661499004741632633392732388097547942573684543065337597980819388032008636603409177310208953668520302596113611115694918485525912746023984032031979243732402966268032203368705264366882030591113452295089770050364534838168169691111407575804731974974142243374891890241705966329271503232222904782420047717079684793374283036698890178883100806315950280204345000301543716567475018803042783639453971945859119335200230654700162229406181231315430056251284878384390241582615812387336901757592826191212138872517073461755853008010895260849908735614636391443277316597625199932532188136461406419518978725331730785944817714079108106067276310061706208406987239801745632467758425050111569329935904503383089410188980018196266070781701190991318589487237478683076131835073765620183463855300413302545305405164013097985259069296883283184992199408543742266415160979846195441448512200946198535839056977301484729697401461670706891342948345752698511830185121436151788899710855436318579245576449255472899204020225965494393316288286700525522273526314778380879615728103249855894471451873988196669565899152401544808949492022697003623355812984609219688830076557336947412934854837702116806877872029750474324269010820347975629929598174547742946233474072600153522634935625055364979058422497975186822162248957064374584943319317347231399976280970332336296898989299867576034630324518202418535300948177169344435358758084092073730913578774582663138818768612357102044789254388458543205634679890478952344191030731777764360713789517855791356969130723657845698604997121453685568743017996672958880232842746600335692566239150456744194362968972938046069071250064510890333528356600338994675653904595137285472720852648686225958105027462663207435286257005864851355150979694237881035969146022395925297925806379859737144260570622661520619422704266078471994829113765627997244818847472553753386743448738690469631084163158729494156432019152415488024412102100457502446242516271774545249001045888600168079359585770902448683192887743487892885251755774145058488430496058529433306034786528332955839325456585434722231113808650699205782544767100412249712635504975563980180832280303516249038982434889786483807726995497303348385685798910640748084305518492375373972095758963827174530195553577629236081490672878974490157221047352693240191986634809169278335891359420512324586812236941104061962839651977774885006965458394110061281662704549449854113849238557901301727044424306523273896847223259982695007920103627356480435512375628314573689650175310208560253660439050453376700660357760219591362496300805970544404088686861302265919553119804887118862965669010716460673590258890383247151961750486389011221298210438635713056188129096477870662090826299799074241740073887672312151931765171588332557588718162675621015825267742809924744737371962487333032667203236070459799495481736387223750024941195098027771459276503283323381735736638614911028164967431004434776108700854664132661201127350435487631557244446829817661441392573922421829648201308166726846648941350878876772681769463709126490343840890172990568168546717442042978591706191688935634103215226623374261073021429613389506823018211570602295940322701919240822340158815046000341279604292402637895470069748124952080561018136797567386178478000642985984954748315494385472914419795103620384047812457991021643946988181601422946712551845192630155585818094554675963046828766872189288913044697771452096708605931966603438924790164831565699625699149189797860908892060141425638959334497994093119465993106161739194820019760896914610833868048221875640324152380416024299929618390774791323155980217828699735317356981926253476572759663756654642232373322962502730962089488934663613740387337824960396417761407807635064577488682505834523841140244997543653807307542785451578205794095004683609596147340140874254072085901876124872051841674465269709149152866551721129379886600237940189664536924017702470809216491073249369306789698953176918008352028022362015282978116659409629090519287145400969737901670578846976980059107395160220004288072253128928424255610848626054880306355522421834808621971568906588594185755761611846684821656540557322780960611254644698384651476236196484022911700827425535611555204691096979684159788354408124447802585970276292200911255575609510728507292315762569406604135379193952304385583190755395445525708738635580303176347580134499588455200809041157661435753995478771884364673926597843303072187470432390259640587422196545490593375775263600343189164612996095898372550387452095866935466876358081333970206868941796858192877624487398220778104700559009512453812144619493567059230521800298760982155116991233480923086299516876458340725952134200992573037718958648903707092946194390762995756628947500577733045991907774533736492149987199171621001196628523815187892889002124473436935479570203766593408056895737919704706281313624870178532712269653033543577553585377671407764657161071503342612042173880532251536734805181900367620925202939983696711286218612561908638184124805341025251635404996388978151600149547930539088787411667049509834084101448171697305866711245806678721150583728139349994925261775148651204664264568340872749228212733792712484072361530544668277950606328387496877106191354525065418687457429680268384563627018209138952767946686142015168241507428467653592223966031667206064972819072388686199426841988610738298146858587869905497348270432035664646760468704105849825905077437730023368767748335252867867048494570143326696672576376498985007481538317604780352107351438262728160270733445511514429670724868110052170615489496102887625648746415677484116529381041770317806151537593967321502294153503228391021068584531257238867745018690207384018007873243988435140694237765570937624081223743685780794631621844627146266059742287911308622024508060250611185662485299111704293167244228302376357963398080189963338580419711343797676316951195435671409028308108447989098415564025166621554877994164834691644984419607065861227733029387758338063513377809836592106176250188313630209903175693227862859102120052802407219663745592151981767906146647660275231825054739715270563557623446165688997484044919065295683042441002339755173823691228780774822404291900926078443853578237006825929163295660971261805148836035480207752209799699446778467410351918862169807028952659660877287034388056189964185723805725515191009134744160549927007543607861749025154459038309842993972254302423917823470921799704273023417046840933745767770967357812058701775843476701043499460553013468314161176328570395831097425728136183148436309383172418153420894859256077667901199672771407864663095254473424280272462035540420165276191938343725006701437941973046560832246236592720247008224710679902937574468903077460594492194280954997772873474153125175783769637817317039262522430310635663267172546500498627124517502098932151820170199861922037615347249908712210838883474252920887421971803448185143647989931718397604000596905520717800721297694886605303813677455242542599046565470495484251865735767759165743463674117437795573431699613936843390471791898137658270057734817052473808428109036600328061274534955261978254917737247275300483156195910402424489245888508688070199994402644029827333585303425439137865002034181101394389631399204918934923563746414679074638751316285431116558856344653954489973210594630023844204764015324802108867381519462315356843374314198830602285040810963027538334682890749796841982856255691959673530274942111024266463029185066495528068123357811591404973527406299985073586279456875156137967483197423453929335250740033264158234571453805348878613102261940501147274729510544688593371076306940559904949385325877436799434236504088622089839449576535309487031518392976279708665021034808484064941242288481291865326018322012091977613049796351944605459625267649601029546770536164603795455896443862085605320030398269552499193605177472609875059076123180845792544603837287354003000336514833207719854577450869762672187903844651414600769990012783261995522265753928610231786260934318613255891390687372412777268699423335903138870857721027958963299160498698049373839692672853614138488358602144854608134863715508251674414180270160334111795494629561032561126853138490211544731660014521946282069112690543986987712326731603159776356042897041409958547267813594550884342553025054303252133388892862818138178868030628155225025472860632826954766732709112795497899489408142518914151990472672772243998127715869337446914957212978838780615292759976449208069095758505912642032685505344401076599286374347530609806750361181226306876739193933371193099274282132005696584022030492443540855213983689787916073407830901138733761179513454125643962997394023562684541322804807128532251529639175422869705342592078716532482108509899914336316887369118563286633401122213549618412853649084973128842154988577168103006296697099273663785415316884260480901279356503411664844657712207548509281492906664052503571042639595835118616054810280887906066184879718431778385336366308131928021154793587112750456083620216088323200687204617306940160693212775327837918943750258660132432631502083432838705352980428106686870952148014167578821711066883339466089119192235982906527467839737996033380147495334445497946321716322567406635377519711647141036552154752198619130786305354444466729266452852274586150769446562851522345634010726638455747928360421761921271690135096250778980292582618236525542388462974304762540264006696688386243467671730257003377233537770167558875441650109457664946367842537798570503478236786923435812721714091198033317095561169403900155632952354269507474182178676223900628221153142457587628812980752214009821203021889850229954402165324251765837480834968002122326036832213665604421731628310727209465272275753827850528542155505916406418435750041491675049217415472756239020172807670714831332408662026232076927802524187188140702688852333011986357532522063805074688303815292668005109249668789443102046048794490143239228059927433770169246268409046112042370687255204110975247658057586137047423381996078765624834364645315893625974147582781265405603411747054410782713693327462633130981461198676942657522861998247100948976967780702055074872356209864473116307406787844257449946508566022174493420125263231469616085444560884339399451364199944337261734090860326342735013063596678581288269391241288623927123566939789476046096745404497582721722585525976122813394136624536199922961075231824222287849506528876038493442223955725568298163367961622808834598654852858567924199224715515706231788108065447259848815980179912095881303235878166314273603640957347958267885652371182026774500901627340951770592838753708405912852290856822319034963710709144905961175099533986303492816132228089444924770962335001402979567580449085650095929159940339585267653045912864406483800724890655208788442092522255480055869070145333628396286890170992729980854723201832691818861558441849569174535068950748087741905621641446470393005276040958540288527729216024573576134915136795273198213875623923368485385811617711542160324781850739878189020369230790849398973084149168982830333064487484825665958991132383697014883074604831189938080749197390038980412881541946115135994670390862263203050613816881566940846592983460582716322180608280730382210263608818773007950331077985096908787514438009250553315244616189339407034847230349706339660978739596906111883909383897909972457734117106829374756126563133121708747204979340077978386461441496225090922321279893304195208420488676512996745867451987191073854423348143423358511837261739402945211009109443199445312077552221594080121391805832394794472421414518531059961410485235705432567909782615291723410332698708217005534454103297217506814118908848626241102203054169585205847953762921863208232506156427128179035708361604070076587662157562031107880335163603588057908639673118066719613362253748752113257395400935190277850151705344454519578917786917217741555335115895007405318223594949161920416134038864174909032240167025781681830707656755399497223677172194194984285379867730854752153083358734389721043587867422266359479578942864236936612635502050952451151833466035181651814655964586462131507647131361551742701936408582743730204234736670404330063904660041843752925606545845010610521661873103458354706646259147188042288367867100763270909024127245170588474456708847680559360490198696385302527356630332186124313922946102121438153960409832077645177533359807011904544548006341495299358870415840904303773995466597142203682285483426069153857428501781239235332157325043920355083243765854773291138704887449612746330816986844211664007412794763453873218624939018980520076520517231942395897604067924627353394100889025232444619036142825673623682982507938538694437426128879773496687344379188258982853994339403509911357121792949115434864607598916088991101920410353155595083180001676465355929677775290132406069354658287640301840210420060905677209851430840745209172059424121999965106642049408670752194615019834359913869804970727478990829778611907624725385352716359889587694953941218079838117043445054306722932513312554844341402724763761488751186180400165689590616388698705758333270787869590280478277404658699080748847689631197539010919407919441034442241188672693090058678425009483890469345815818954878935605750788800899274154350972227982296837556079640174449918612129509438524775749503852087180462095018113979254838802254777378029163125548218338032809722618193912769554044050982272101091232626934705754535875617485767786297235845270821709988047253202988370190973221399531104832302506842111789498809793559142032285298894509485504228923080285290957289478267257504124140575718816324710169881507609676829587625148219083576260440298071416830861248590885715959088084898225387289000359184577556362554453360504112647358571592584355186315804620210965198965390076664077521106702305718296239216732677207459046100606147506319931685054328054866672846163020420168084954648901369205948253331800099029727116120765269579950533350787057586800647459957482834999565494917015686290854056063716453511397305198818990792755605789244442284225264240045334798534650024006521993645297052373658371080603410716647377118656368655784088298131544855298657206416860458533594145545398188062952423629789040825869444442826742811858724649753410394122934252659245300276428465129570928830261715776291600486059625361463439975884326107819957423213407699552785063727743332304928195262083386158952275253821969722197268864939295889678820577394518713054640772120596828969026268718593630548749022832630786248838801907068492067838778434785267139584267584497463497043873530048664275895705518984645713213738899855395665774074769607952113971807080896207415677557421629009831819294592122963422178024506992203627585261517634783698390525776252376677206754453397733681221652840337837308148797513987540179100912777417793214558724761804196594573900492057690826207282987507120280481283041274806009701557643069459482016637381290530270056460392456760533411532903870524678534285799171634765205208907094524085261711286731135995094715760518561847044500769588669899610487973235268270985001279898099943271976134859331509216601948060848683161497579063158140665045032769270903174331209939548284122987175895648045704050226215736645988005593670604123735425069519970947433347631884987250549878157615551158406022894919124084855773751775277554299501096572406348425827155876643186171262369064848288463959937384090799273015615620767524999568243921741363574642666556594656868278808127720270925771620693805525133719528555678077889122378101777219987335244294712673474025719428427879874919069251893400457492113908345909989673130857860075887958908826134887359732964740777171257854405776989698169656927789510674153282771074759109616460123884957195827753668100321352148254601359876010035537768560810545725770592095800257055688020009009041398920906706202621009237319741982824868317150420797540298885948163639643561346493660218452304992733998861950061594654626095641114986173253084111754534701106586512197823372046599528994196381928699340999421834698109575433511065566599415605391804179352299248523028498006790039355117773510165295136666453227943506698069275748641915058746734860276038046035397707573063074341448473605589938968248845298723537553477872030298232618184671702911804195255770131732749746159457815662908062058974936499025540364812242792200453135739394588810025995185856015293885831636725486277791557676279750334480013474941275152859835669701861541835277136344469265100687096805858491384286139481556378592337768317980445647439329185893276326402559878889885819303385054071190149863682438159903814052868304178853319280588664276108129724994480972928553879245391678755489674671957777797703856831730799645579919961096230481683012534534946343703785177171988159944916453518841939218965567072084614907148278324451294971962453288829485955378784045284114600639880105580315148401234058332013787697709040867656172673100948374337881668068502325983951193336124110957987557184453275385074110897853917773982070852675909706256550954011846850315753310394838706477728192101982855775348126627967192020052112578982548169456444399710909217701635873275247135313245597125617807101647494819732854728909069488299338520184311396890681645865645930660549423432054809353375674153941078538450881455076940322355791704538032371958627114727051864614782647401216095539744888578704032094017719480608251924038533943601048231352446906035933485860155031377711555013953006099289375855744666641742590231956736390051817757732091743916652151862422962559974034048262199416488639997353061900504861417287394128189307187431918518769469400628188571536051228217789521819844550319807792002375996976365865666070431396200399627375941364412008569860328406776578848408465954841400218067553289314043537346592941419536341834391250585297789803812130987142802789525199648083679974711800596304895965480530577600985896335406340992827110685846859304560482178933084534050931842030420788621998299067031772358391094626999779469827462648369802017215889892382676754341757266536200528318336602813253583769284089178849502710206541854274666764836366127565730565072712697900962252239464850037841386780840658426289813133545179766331855540901814340991093124029324051466971961538217105373136234958239811624845235691294526146334800605823473774592109305531803771028307073618673520734126017824344856253545311689538790886939233141231393707755568366634284299341574897801534408949662223510296102115578562040219831870926566301861316628078838874411823121604993657449714814868247396756783143659631835744995209558838059684512742909600593276186407215558928553315007157644383770278457530352722770587898911455811459942341713750135607225460026575847539603408464231354172160369862717432951225389797881617170666221276864164818644604790571657057561590958189080375870201768746954592523948857906512700770568480932366303781082514408926956566315701541990810081732089038182032423128012102193883057600476056014732223942101826209141114302666244655365358786909778465089554863722570074026440377040999919702336353734307109226429029016635423355422877263428896753712521814987174255205712279144556330589593557960751396820748235463177298986160019266544307471195794059063519966160093658661255480699975785579087417286418986787214475102730964214771147738106041461579537180965826201245464115109160618104388807887162427651874141202600115593051207323816951729278340361328464699251995790746942966374077208511919527843489340441157734271563488431252544135003798630006394610614457756258633963666759604969688803447411100891718720866351490962143481253512419375377595571284715130564637266557068882714693916511165500708938176449867135911915726785698940459565825798329492097681318743913524489971491960732219990928187329589397885467873886128955517635206917159363161383901426536778669783149361317913115818476501565754881359442010457180621203724801450708716021616234395307700164969889446705951761474792930739593399161768578792000063206226132758706511063574645677270916296036409282497673325999482241603297881085259555271958631145078449225129370891817365275090500327577212811836805387420121555383347685029664717539643657627715185555578428549879034199543944002469854706702621794958440669654313192713756106825509441864082787287546705167226041924222172465744888128692421041686340019038577417907896261571714919525512685155256167552680191648491658869946030368471039408514329053799679900282301072032280371223895339375261613773951953311658186841752309916673473931471707806117644324425975495034817630800148705961707630688555953940457495800247931855702709741832450495349288560877783194592964808209408991640052590481336082050847247475205995216575066653924212740115002432117122540476835265301061035216972098463756106750076548030961467700085124860172995623785713924406190789323426024797098235021253884878620380573505199674027005774290574950651124271933106208440067497243741456625631619952095847848417096662495118157410967225169933270287559331046852755707290423996059471074767999365257436649756680004429659058229260881362537963772469654249142666206773597037427298059203633867242360775098896545185641825032844581292253197150057060582394451171350258990620111158719559948581903235596752792965895784037244662538956070499298339265609990629931007825891183899070096435942532647020807448236309970485666597921020678468744411561572821011589114893231058147583685421884195753539113814068097835999837921736546313448047411088522447189377315799127734214551430700417011005681786832140497592015817639700625110046534404595302159511466839351495085639711947452165998972384866364831211571316598031989920862198836055269712165658330526477811740301008303159324724659725026678360232289089176378725130692157518485813837555608117528718529940707790221592782557757583543022093816158304257660294069805580827338223247606552845987015674074088266028253549065478191880627340663452184324013901132062697791618087309839726218278223175814509818176150032069803181045544998564193572979431905232132418912553573959190178661072931926335025534820543373032525116446526201192216994988166659424603419470726571100663513660819849333652990577416026530109669092531536172993533113379870087629638383416370344780091110700928543412781506364228267344875425657409321093177697857408479558786987575580033918940026081639998812336391847702783987784871086187395583966835557522732729894768816988127033606218902861942523569015667943917482200117680607124068633993913103457113644271934812117919809968659526062868226806388342350016120423097894945312750562750834698338305109775232418869653432472657233387544321354472895703816310839321264884162682059050000224692966979508419804254484606226769360989705931244465562436509484486122363987667376534082299523703112462566615495813034888014070895286262717555735543001140207098539248037993047977764434748189468991609107441928834028565489308151187590574037742962411863130387064509339108129201195083978601154857132704564425298314922244747400517039620136167267398615541691823347740898868665568006050396394592705027277515250794993335977661911460529670592125643802826344575616819968354419333163399257756861872077084299109820335384782147868451588545946484766381434787834128951172983996667768222236045209498828593885098579784151434213762948405523861740051723399181647246495189161734439177716986720639315739361102356205221253042353170365534023243200013029909425962144672310791983264338204695713364434539987938513769077905533897471614338620592160202647467426969493458835438713435337660314230306499705356045479671485637017167589576124746943952498361575782197124516979520307089120402866300098801471714463328725997634667852315979907479874325705389300883163106782370745502989576492618432154545938347341618483287556651132599954936534923729624016675232313418463358841333079919844129458641588049462943392466087288690774588463049091819776462715112327780938251206509471061115032683614446554629530733764391590879897301031971632664457136003076489275948403612428007230608335451968488695215491506717366901789084054285851954101451960106097263751802252249502797095444003320146346399809729855609549014601443152465302471795040039036232402281643267209130083683743009624281821954022072309523020930524398739770302560621454251454531396887590552986594931775887624083342795654163729289358896828899870180034069977224577518136608558306312987663551706668267955433890400123878102975650035710436740221350562473787644050518576036503032255666511998239947587290863410024918078691161928050532594719021032646701732508992666735907180939841276453702272174644230196464409455407048690003544963451912015852507157420513519088926678654195549816530207660564716936196081002525670195934712994153849991167826242725159215963450752233329674560912860913270617777755113109381056782139874135182060402763630855129474019727866052423209460309286699831310618856422848864817407328937262432010774054971293371381128277356534502340043916884015481948529780991202545012834549029079741410413104082095116985347660670352120670539280242462724294531490266475673675229449450961301068061589683537492561564793017781452053762944015712663845133499329478765775103476168209728188791931273038380974680658787171477360822068234465513617389672360021848521878197606325185055300654396065960675315333064617278727733919705795472052154339380223649908998097696589268036145835663228912971199242481525917325606565268310326377044729043480203055141540715759521976695255585971511574303587240901662995336147324953710344417535740964548707625995431726529693311926892020847199884427359995829545343845868631822532311340815387528456791427699468695329690920569994329105562243727624278626310041132654312687408300051285292692297083701664532051069599278433308978457628698075044961538387874347168194691043314449154392622420832750141415882809171845231409203068071470230532282335172721752024802666356293439908045030549604787791783501703805067759775812690144889762162734190884087446670162466941261204644752326350051709405292448094317117900001962707865758904144883082370816575308565453247679600389691439909122138422862475413540349086782541972409344136673058486048964707560054975000319167753911071625984815989800816226058805777531397367175561243787012994987717202500980754325092516584998990015292948843292090834838292094567912607956632216817367302830450371217784567751776862035730475502519134661752342014011560605006523917841608305113576341528778990740790488839035796718133342160687410496980233572301142667277774303925882129872835454778229743378274339497969392104715617688255771196943379954529432923128560382672460374196604646028102358241027951225116282085673695766361258475016904520357977079444731082068429670890648228295259737990827834559851280343548367816266826401010911494742529486134781873310096312770776889106467887290860705725989652482823247771149184294738072462016743391392041503806060037556338741201422832781957241291671965683952698308187621918880370544405708187024949019242238498238266172143162101031058471998088209457122745954916559382662571856525900473018656611547590016750316620544612640010415542717807373503907668741595118894252560096474410921028819022058265355573512927507190874236045133007648843492993175548549368301116606625585370672394349384949600500576055444027916843438050323528120309253421268943945734627546594528066380888175715029891444528243440862385399702380021046243280635153894567159815772550124082185406277728544361109627877335131940768126807949804305851534974482864495913972713639076943056872151020090964184011823851450686135035582741210036339329988719442045509536338593702879944668139475254416624086949313588169337955936091965392022754372789883470545189837718411521179365956177603322408337761618845932426178972742664385697782634854290274427316701565621942975946686080867816687700286157284355460080218714731734650977235868139726340538073687233494354430291996168235127744672420883451799866307862777896525336186283630813865498217443825290030543100757072709003069485748547340557220872431484632035255484320643187461040444551973046356708580122214480203103547145002268754631874137543395119487384513890651733939828114452740227408124988785689194161232888480367568637999015752499214347567292879726445173810561177771838094282283893890431510628469298386419141435996273146791226911483174992570470217118044641882857449006955957907103192013392450879663659959617842123118761686211651794421178809208158469802720083668569894931512527499013313908895608121278075075773854368820999303421201719242259426609128477188147816112393378611807502299826929606727877196581021242201088016465731103743647309943061521921623739779005620605489285213547538484785997798543780810208551869859956294016008218550310467494085080122934033777602874477767355889199822521095720272666435484327334458666508092328972269157552707871951759622031226449100650037169411966424003554124759012129233148549798643366964081521210307842627977601385988884438739234364661094123167224615228614735440164578984640210047024991089532454857653859601365385525896791779060676011161439193288043439961336879118870218589741618648833078628377596935851428168656341607404738795410984362903111134130755424028042810297686601015641592550479066360411010423086860240886520762410522299610556198450301793174329096620567409900404029438610414395886162977974124648031279167339456096825620099424984749707609538423012145752197532091766431652666930641219206250116193763877589941578403442900549032755323413911944543617543045580563636241302599302191382866940339127798841061248882562120417358517261879989451443366652807368046631938522974815234625706386733983228730150687692255805614931772150959592957018914839595872586551091358715039993087756749400796862726912190532060379234939060035844997702602591894713386755179719157933322001309725271533744633284735566130918230164417964597964516653201054138210462632204073033503141157592578472497452365024755326985520086832152479641802026897158665354949252471478783278336760541128885837923644374409216376889827324116126315778429698877667637850102152312564024098644492114797406446983257420012398558228565134981985709501358252530123630605786317598469150075238071338971107815531618306744308471961612456915110459431257771989559441465207274450713343136038846533163360046085139262995744608939953397415717879453634349008209205897320112454404180262384679182841263246162141242064405757575928119019865276817105312470996081585812232136591392675269642753101485449923161294234414394019637357843515245679984392395138788681955864682062457947768255553884635251884184083652114500450982066078646625822780039684112764532950760178829100338089232252918897041936476068680753623338706972153662316445309676511936887597060046285166630225389228965118586627224965513349931071600731223486610967325776257503607235445693826722890022691733406911704138265336100647389880564755389200626855412975241435538077021187006765017696917175907972437142025532991507067490113265680730721687372756314663987178701845259435850760086425109980629019376483504660270386179449737185462698346805156417782857093303596601508195992291911857723229927379139629289412298317037680033264713498149398405789168159325671110316233340625698797701788548321728518674882230661285209937671385280519129475131032865060999850554820291747008617952896154622791496046919298543928129213684638325783684024318475754242198104516794467346696483182841249182239688535055892632662785940880119336634004739726528257593490578971581946980109399024657911920425523030160184628627616849564934415219880493465010750876661901510143760168444217544477257634852998914896922524839590166773263579009361184985417538860006740293996730079917782267310575841731882039963122240854851525072826620579562392721141917644838683018234753634552790188391652228416187394883303572130711021443535991634511694078277072234580320130469216338912089288027144352433094920225176127469377361873319699029441315767413290375948374901508538032949251118163786833691445478687430218831958312770926440962842383460370188900258003863318024432679259344315843118564215298842573558550852473300974840787147695387414528640507829484529230256831579696608130021396405980378471805689489364234988156103141131456335953360981430020767451863837488762660489734738762816180062121683818046138602596879660566268299738311949887896546068743072389832460286955339359299446520193720694256934978265894768299995514024586754611061867582103463038109964636728435065732819092770789717216520092383980539076822638721157478219353597531307798521500441090780267256565036815746739313476674249274759873350493753856578534363700186786875259534435980893437967449499368132366829140433118864584252366798968556967191479727768107017968469449431004125432193650706484449569110416537178513717204410281141142172421401729746166391639027119146751678784815634671448920452330458708845136005521749720769935270108026678728214353215777902382870522257398017855387533574258046513819672423579886166875173497523927354505675066317268022379965232678910666474842265666974235572870382494972543496062275068948421884575436428006099179818981284164998061520691102505039361490814613929075897127406545683916566769749840359203394650251828514238241597188871399329656034233479915735419500269029171320698543451429234363108190699994101883345798089549165005631847181950729216312481580686054846972326945577685202403618403527985424456365660813613734860727852405714432118858572703096687285263112319821566689049964259280543711322532071716846687309669376100745676665903716909601935309106112405357348859405365920683108472398849139581550366097326081627638114110191781967727215772910221963929650635384196258519876494527930402971011629768363554319972545504037118861075453695392372513241992990722143634232943773400762382967587280129334493004863946486452472148288887233267677451329752368196653552195964736479070657831687544942421010546172995685871624454098835874736826490411812153870769958085177242003145985514019528710370499844263509468808235728816329277452597825201175974725648863616805008800200267506018991701260341108345716002431697313234477240470829157374230593478947646913208838464224941323061522405680816551387004396888285628359838678643096989168957033055919639620129804156881965106274815064669153834505917051650186480318618387338350652032596615673410064527225441618476817171961192421746952372891661617880055556702510375736034690514249767678122764262419926338419321283818873081734733313276742053911122720850962241146040114703900460658384195762551724032948713212045017706202934528547615414632026989072482678137097967976943048062179221371111561336039641563915206769739316428756033120480453052558520122612191814634635593678055822979110405580821684959744600135376230622428438538475477398689951769199822103171318345014693631177745778028696691646951908957452414318610852305764226893987154099557821058056611357965453054251371675482919503394802782895955478015276889737082464115911209080134216167994141461689692400710797951554305996085944903530493208814712866457097108916825033107374372277060038045624675537932917330758527936777163160697802412658920228218563689794331722315162723944449293822635737919278729636159072346262331989741456101322428170807335133276769348396285481806226401840548760824781332531008499372806912236038474304391983982637110397674907336807965698318661155924500375305349453878970477620431086859373960067874568869344267922611021601240498783277588537909091339615030962254320579924394427649885963550694645112565210130146455109236254930236411035551050653741453074004661853670713081861512625758437138024973299178884528639689626866481640222540288041853532316311590965205876180407217715825653516276520233434276096181890810710205637634699354100492820082546663738792080886137154040837747399558630679376903004119890966922984096690005127536529317700902847236221637635837704405044698878932330511689179675463760099755604720310026285962273155964583975556809172375149938195532550914906406920062259349890685538015429963569749346956080900441054270737006666616650658856788968508729526380588070451523212558072047060284592649834795919909963611245668857225767871699501374352790987944441812961589001748896767451660295645500267751599904069219148769819754137216507881623008141012479486976470382970521716815094937097604542261950301421103656847358127873304386987219776568066454598746600584172384654718621797887454049240216875898203146025827813560838541818214209636432514137974802564655406211702410339856350167818877892756408825913920941972215669973449045895609245905165961020165582912802200781829399352684417605909135748056891632829554427620309365514605579481630971420508248560095484155088639238558246670748129401940679994674080108604382846345043356724084520588959866898337884556486958065572953083667304676454495100556216969561792059008618230933760925645237531475717579507523154756096965215901407579299621337766879458257222851026808612660207330001608475712312618882818598352542639599770636418492219064773346157753447818698967105774322378410377871749401977551780096169914489732453122747185669551779075252520136913320462754852548582088705007419886234761353606680971417858066775679014370207871326338117487461930152949962317049012883173674738975734409284854246790107139330928993836224472895705084845238844255015390345492838293279779833486273700201506961807754439853002829852893540206823414936779427697503551220698225320780333914392241117167468177292877237577492031428506342040511325932579895354400525721349026212680972584100754073794760928144602235668612864523137715388359231929622452684362187407270138755436906540799965469896281536622228109107221259733156304552730560147115525120462601700824879505538367921948724157190705913938739040923577403752143652316949240123171540563080301995519917575637681588686667747858646896248945203349602440578382395166241973555722138416679607032765771156025048735652896815645760972389364947952818380401526513952450220059870036212814256656485367241089408111151258622705798557207565491756575843927636948009931551349820036184991058804644307264353553459690006780301092624614238479413093935647221531725588699241086717992288643462716426493598214356155925630970982568225859930067914263728315974670675540548506188725459292120299417946628668151638161212710750252351483616605152840637326411032939506557792374713553633736688682940414536376564351276203761529459779682565388128503626995335980451268295517531956652480884233589871768612104948832368202518299046679339112569651275319245337393094827864050922908984218110183445493572017989959739448205156072903208580113977932317256995665384034748282599999120812410420500245845893568920057266003051144314913393063708270391919853075882319891584805590352267440105907068163227699723965266535430273096745027207823200946657390769376014142499232532758449285062585052271018366387254447946363252777010189055478000177648191116242861461062979835426592219028585764243896021203983665534321076125257996083786792130230396852684160469517082143013148569044824926631076207527598990801005796494568383179061174128358029149824388670444403146568590223571850558908348408302428993744308382178756491685320635290143441835544747735467987683282892716302723413209931117106302370404030801109776501470619515150102826378675559840263873516278295581330369261028127573486293008734768276414976361752322116881849829193672852062845443294683470817082718027575554250988326391563047001504934067052370047084245018223693279147651656795283725677580536984642248601149773461009356405839054469987351961306944857646448548291605065738529150207872622997699884548829512857956229059970250381911553332529338165861172137566728449023415764784929842840947031088391065863900734067401439499112034845091670857481937193145863534234763238015506299305233030068202718286758959141252660647570694457149619623492735168512377099886905853025151568995587295056688460486656866889924587144391730743652180323488651883548092707412509506673101273896996304547286474063575691199407532273839128046666852927526409047936347969217647785224425482981836935716669675639651001275871078291539080865363811095197451219169631256744315069350643841577101365552451451985905518522967175586085901443732701098991647775366991629457740658005484850472785713973582927641592845294312585097467626115580021917010865681951995206965016168200739273184917941125796825541953291491909558857406408568038430226746610418037794866472871992261878026661132503721860937927162183629063628692920111038370219404613299573107877072594933354871373950859148699421862271689865192262060709381803856816354635308399679865333392841608832602887003454399173326148395783464316207347239667972352416260572944200260026120828183453016555602480836637897076911254402730198384509684339604174748821823632110872166368131088106329009407145333369194736803604714573568424998257044922704081224913838848083356925236629839479511637776866948761984719881344027461175065000195121119611510239752509024897457291212054459245044945158030351394778906904715377696892435138545881669994618263853882173097186886074944145941321004956710735852761124404835988997745749451960062296595960599811794746639927357187598446533175951382422743319324624634202464307966208752166834582063227568341497644099172219145989965021161846659458763181772158915206675621806569152767520832698500665619210592586840498683982835159621488024575530217507558544922574755215639283595053556093663004860380673921831290893400351240851403703136102294781202902035670866381757823180752072549244443823973528534278147669415227885395981571532746656309934355220057210520301505851450448376023702307462089221442658119158121426841766484165177041667216386300263712906453492913795050730931004615033983516349610096369077413588657301748326365242079601316428274946536579315552002834688192283720656726003611193254014939960566511394916206241104489454353239060546401039109129864134103884136466313873740584548852912409346632243926375608957655200822969225709017172293889761138835699033670746088078363959569615239666355194048514242177398716994071229121049885395926950662404651350925107236690877117510050802590393626875038078988605152517783340655006698611660385103230787987497924710840860139302282079798459003974665865212787331449185351469592399871633799530899207817715761144228933043630455452367581949000522202662326331557379295570122572024696226221515105521196831504644377094439280965852366943614152222329138504574320821239797946677780246983933415378029064453238852761908743552501290397409449200619001117773606220587560184520844114729055262386147677477218474000800320959904870709712167055559028909097566539711723454112655067861049329661291339929657563068114901301808953960798726807207129720483656680546501291267365466094465596091358233644031337701927620295948067605246917275586027304898177129673492162539082675004986803175039345512497467192869051362792730326919145305595724775526913283792428635263578398233992438127338811502622622336657258910825258589827942864537351153015434930316861433396547415302936704104129868183767847911842317776566029101874589247397068040584874869211863520895241651415793719880880813254929113141255811100437533417690243740756330643818793804887038961350301390987886977329060640235394835527437575784808433637474908181550850597313120418588700070325425536617880202951099690450427963403344187705017583198459370412891783081328740996523022196318575596133971229540902613668733720484934291737450847715981233171501567846253546857453306988905838764668251018338435974282669833684094814673105925045001171224426504937322856941470889278173868902007719644414990072874648325001980942998043169909034898464406758317519239652634720430627301645069611076519091511733757320047463534080199907967259168572482482141516802869851478671048064589963156751855938937301571721579716127652775748003332863419640171062644936279390826918951233923822146882979303597761167021382941929399280970055049356660094414662200954631455114437330381448487821333275746132723434531775817118770792053165621895768779415234701829747713760189032894595894984558862890241364894598060513386672231390188618177477235649049595719088228733062412166601743027268477180532622427679921898459975214103358560347220436242184160272298406316893886362773243424239935863684650626254017341892309885424716031800607025151938713156576340848876446126204853830637805217562277974690354617450591734086787927590113272688724896209258552046830780554989880022581363770797472247184223650984520391207101490330205036496726058325609281728555656414237928841057075041625037548721043174858080319716459388988236986783541940430992625405405696403082719337837196979729421409232707779273537032220898914782752811428710424988262003923825412409171860233798020978124192025272398553808561512748535662594141854039432395619694357459215034441263051931005898534948042292158314783217279866654989228398475431417109261076652530618069806160464468028012504516049509576500405338980923282457416739954924320683829180548363445712899263617300099611213529064509325758035104432667831549122378362779051153319940785294482642898590008300647918531901358999324050567981885354206571669904369869235990597354819943327642107158511907412460146910677396193042485413448770174897860946895403625836965866412032857271976558360944646747372902674126534586930993614353458132866799895205022393237607286085729382331288972560990475455010538621695641176876268953355649956342152243993547945032689100274216812085843453079779306857840304195792424347150295575284145735615084231034052946235834730306231385754244681342156987914978827412101230106793908023064538231262957848667362945293864457839242090323082504815805194076656974257697934759681410504412028779806631040482717462413495197159260271957166729775045730688649748900664583449046734585645466503054463645830548709349969463307209439499020374833432183533461673095624797654303603921116515556999187818182177201128098849944409683605902100236660246209185921248256563138958576845851597058341222345780102116446644911638598641429605979964261669991159422813959613210431697780557844236092714138159457961420827566795751456010224211944713259918241371813554624019883119332527592119048599545795584397076150927889620198200813278056035921024827394654358674223947754805437165193911982462717399137432664051657435576316359175708633656091727919372671770284247003882248273133420032111845010976516530973841864617119393818333538862179240726208807334298401729859637460569263024498914062341635035723612343213788046852398627670714351005580913099185140567837107858557676244258127676363193159397158491719201660619634629190496431806663794269970109453618555635174760946945114610873855150459617740704585587735495916690218573083088633143540966816597857935387043088048226823502265033976138568731159256530478135859223403219298090048680115408280425651403781798980388751314365068646215283393539000481897443152429959300912032906857697699620661194250973647488353808468708682538465712529903207519848240899951633179053776438033350122182166121916073884449318682593788588071503087572671930991468255091846710785015777337291695065857789277897683027675534243655106221393356664966632128362614821012512787962401466890922814317458290807227405455386523607584524568267038524629467819314124655546819876912348333730484851196755424171941351440895949912310726647243385538231407702544563662715110459290673444579736638613382929030184251752894052009442743564939723625924287043130995461358985756817350516855547212397503303959161737501866265967969454052893573180063178691302065625522674379546052175800324408809469669605269276857952514011803195020499319164093721328154963413482059759012355064744840108240211462230708171367779088516465261493173622061371706492651357856042119260617323829979338186957953726961820766827677956777160103422311995147913917772095726856294477551395394651680528194272206443432647770027629154510893038946876200527934942097922270494093873365508309297506968546669216991197230038928780700609094260364689326709696151161663370155028045560996319920005257238972875342241080467360036559923399624923676985285557551752618576733053291946402415404654490898806794997258980452778130087222034462041182420556929873768943500595001680288801605091105672159230388776115783575207366440122437996380651495078030126544312913675661302562102484962555631546572464362354752298766482274511283984066113849447010833329125318846260532000103162429818121058900317116731295967250275157577874263175441067151016548267280302093541212719180229469627140840222671497118540416788516474120622842272408822811805305826949051473097112240571177404265270124266605001156421165168097051399421506450818825378702156758651815106649909804428275543206706261316841933390210023416891756419618032182153143554754956091295044084700212302763388239008068897564963516798371809401481312235621953309659082785300157280853205427768956188321334233398460105815903389736620176388169802279628847896099530378131639416567659224261822181499397151763021325078591180022894615337556516944180523112606121192404220108612562943189932789499423001699381382138479258070458240317129797478824212028831657348285313468652963899871875435441889049511519199285244602658791487639636136323357734471437056669241973086219140807669619094945247103561866125166827256732398274778869184572452566304464409522435466481499147258895372399024566361409163600442676999196558867336078858813694350143720708461986268499441146079894816278715389673480760170787540522811888085208861286174570018365880131657279870551304995302588386202777666606077056272652681421267948669839559550346591491704494303342264575841438582274226242576720910245119160461093062292571330577694314684303538176571544811037253500057399717167465910716696043172083266585464607531824455834822887965034620113829076243223576388768738091223922682378749907576538952966831502499286270850164813574675792563571570604828960399321945846746725441209244203278325635965069394359046986177952305932059563687834680514173817336758662345982342366094615533405540084975006789968007073604360973334859511710720865772919449084121860824935981174547297298596449161874538360992813086892794611508254052752113808418537778842589782781686499180421920582970844225771957000204380106201161169829831121378842405837874177703000179887373317717957140391822100149518246205503031796051163708322843053004417636797957105742958473405812518608777193256433888429124645767298836679537587577824829850766144278102746982361321618079062387043953787914199309232822588067505451223059055550164703232559316923481021696548775882456748859149093562754121243848165855028111767129929506422651940111427463693990309780379058483698680477942667381814748764112116245874296911385100160634203980302896647453664039213122871378532084720983168054116456054217534757316222371062246625884606807498218483753211942408401552215813055327902505074285017203745541641554264081363752710868595413814215570004409300424066084388968552779013888109241867206793098318866251193763723556008707123307429851109339533178454634271344638205924912913801539582999491925769946221995757372865235679269485805199022589300206897714428191872979384250315289739302238403103197445038122090082136569954000882833318009359168305566517911709664370146007652554319886125415913774456128446203442113994812718549824928107233732651944064821302508027996746394668869398336354185404582665989969616136052804284929613182770720898231854202286879157917850337426019168770448022303245721570996747646777096878991485817527690826870070234523284601765632014448150746835578345917940936669660187302189605808156074333512210718360864835418806926238161365561433505409067183418567338412461873238470293384793035972966773550401311278224454649346813402458116869094940907718230087246454573976234330729858868932907878452076953349935949641957445144670553946292041214435881042001409284411864106784246075973553613315864250977743372654328471032900920080265135854729714421611411203727955519464006826305009025378502155567434479660653163885123383304356386730691085708470905855598814326388069956171830703019292390194358658316782837036595468696561241900223651954581660510196372469798169300740966320100651478133613758387108842011551680402755526022838642848698579185518769655712842555823043389950992173454646904722708404668615397952144087436543278043907828235171368136784839094196502943208496433871365460760067527265519793397903732529128689912603496428343259383595420077084958138490622356153651925564554651660021532380150051177137622788628145453453302776770193013053551428724996425341743856157471718611226542855897142278648049350635083430969815786647062082975585266264600277755908579701963575823311561741703398649764656232540472663353908843390211140469002096958618653898345829182315186715715649625734967505948285938322505263717448323493285804491915786550615935211947373547548091498327355972667487101634984096189007490787140153241716499558782102614326306319174181952815876352541158061918467908689390841226928917416787175892044663219198960364952735109505766390124024059179627405451995136317006868528392594912097048873722892111725540322160992821189345091432654239803404969477931621140554596158743705925338704098978489609788639900794903980688642551494421259532315695264220353890510951859025533327463169935653307169950094195087444846308587782310880296565230570652413187287716767178449140580461706680547481847086995450773678625245450439057290875823094289150836711060677344012854682215179048845434136645462439705265246145335501481268946493412969042601668948305037381108978698982219941543053436344130907395788069670292438686554639956846488460415583554804694349922145233477751022079493626284851742951276883305356022433310032034192950361287911804434338152893626968765261453340251821351850666377560401890741135902801425713806383160018517489683528507683591272206392631845269647793904924233564857537665881862735855877193017410207734827835844352505439476186577566623892414262789827719563320268790929574051015785594413611436147840034154860167742004775057494303681595238520829153163801328236142936068261599874831478527720557203554793182924003950439871564565932518702219694675391819641167615889843533465384835693095154593934404271437549761565121295942541763959311802134628499930915349720035892109795669006639272715061206093749066466181671704580810827995559094989398958660295539929021242776857447710044036213832802152674286346530578827086571437223740812537629439408279692472898243221607606526483450913250706001128344849109175236271105801917498422797567987334912003464294510838987874268226227934430165630910618854954348503998258049586449150107672203332504561424889498208964447056638558650945861798991791540822975595520173403646554885448530784050037002925879480888488453468460634345126208958777888405192156664842803798705669536140689443101031693645210632283309439291987910875117082078103374607884383938432229326871428804017107684492582644599222013152465112448384158991822735115628936170195859333754247861224302792863279052573100639360703473638809234490956379023792300568882131243415146986011153732377035829939384911844175883803186319711659675902106443875546538622735500727995588098228658457323204007770896274126375424120861162679238441327031012542426997176603996324534113331494043504973414552797776319485717164734450726419235083051647509519465739567610568841705427001273060755276799061500513334282435665226365757189343109652443651254128096781124195543246003115268094113479449058198587199874689170696909073267207290859268029526744126752442201048243071704259194025633753577202342227398196992994366593926851185911916836894919022523977468252623118419850601313167384903968614764868172440510339031608083447779868959111751889321689994750444861982892972164884992311352969466118296393730256921978548119481752112030727306364283617212459522581033268976737286011244309914814747323753722640541947552366966937820690770074354979434991584777879232847324845991064214504033783723219132348510069155877938471790214565304573459034636022736119618434241731494009149396365976517758569567235291628598240758900759555571134295194603633788991936868350991415704772230031430209920267003166387434368853066027201535516214271510681719075910128612315493261238574702185492867513897833353274558191327965609339994515050393605458286496797796704191569896159476897802544003355876212950184663632260209700256550552879493232569918463645007431725809843912335702015677939778102340026881302089520811429819222477513893037106818817151116354297955296181267657148041012420868558659607925448328294264186918904268406180427536445009518818205108022157767621609666858634189423070993597507296693679160942798692462137908372005059424597113155558683308002748590383954972212264498480873104288536613741862931985110801383288993640977640049190156999614073465007323048632280661626779442883376720770035266375071917853170135435087586655340961957128890278117962564145377692809514397546594244464569804190263097202042768431162434300561976613786222264970852755495019934328136488142021984036469575007692976958911495944674368659768027527249659419859631654181455071781713072575554015905730902246876961045932820087468305375036593489841720815765916828999172406465645946333134971703981139679262061395803028733082631971821724662548079394052968382769947171222844412732314129189581322297986104895409761591723172996901981963137815588695483624417414742184626347317650929717797921068659401194680411819707716084958941863950512128827183241779853866472802888972653282049968368036825025568115830596067898616359121377476844444562952590170737275843959607380580077962839145049208132965483198609249424635085788983913766900233607610808926670800183543164263448368485662009629556423637738709391465110900593873318206313611192006013296939158802945807954340136610075375614383521340551649979928183453168842664407736085022669995309469389232503671125244410470247997064000552156553863408649431033183429415531613088361473630857277747094674850986721373767161190309424809712465725540240839347038510325998928637734031936346636000492683076532304417701015233520715631766397071706795828874603504324533954828848788432359656702178232145950617570365036011314719341045548423568506976697790266090803017654381321163860822735139109119767882781400350048617930682450120123409294807996517901001092933667349446618087943505020898567970123776295726170717353322223131857893927240917840153055659630306931602018238703779667473882374630236344125844542319016284729724189460404760393598766275144190012906913388804255301156868278828350504487863014849643836047264026749889131348322070697479668873523422416180098453765966320109184543180171193716368544048410222946547618329562659156748359367161731978693526627163125060638922379295652300209930404505867381724866802212042055990694196575118173718432972464410699017046952681948776584938668725871319083775626088401601514465683465182505320110295471265310278121037683083881719388234666706227615146180051744497932658950732195931036978417280772372143858707614459131599980798679326247223415124307294820762019370675973291912047661041637233426229063140074795442450663695599812115873918309500303738101809046711204473236251815467257629284025128174409904636938542879624698685743909823029999603866397909365493015952755304470888206570916732391618151327428387336676109240925714655225652841453268416827014167041862930985506400752962064687721518174359982530405629871742234300533754309171710860851766405564519323527198039493431218732589803239539131951216541796831769684551290296832956689693679528422693430631565749906466497764017642228443644409653282125011131302727662824081929532967588647770931450982901105469723449794227519789572546850899467261466973431688865473248257510325886071192435517392766417714044903344068602243639349740481417701062111991312386123227258518054676835065309164209459832669858398472420402962470737277624938184542194963363294407052271637022995914857387970947135894686246189513900597218754567571872615238964232081737659806476607980353418044197324118710834292871509389187714542646240260925986701268708250048410734266103946338349850825065459215772051428887157723581336807286145181107381677395287671357987613166600442811511315230037636592158524286586654113179513105026633793111913597445019344086808982840508489669301232307904976104251820506946677567589360389077228794160939403382506564480607443877648555194363962653949575249699303201655611246574692815316206397931738581862693272530711328253864846709427613715004095478551368848035566321528157009177254991740318098063443810366800462771674998254717125383971387199462245618679714642113611821974455867753394102698022763649398299087527329303890781797912449130115494422139912050478062631010285814707301539899850008488276743933492108848787845188727554630935727242704404809221565930534000482637012338775218030201520477396510372718434568182807062682225649193803190060856450965582923979337259253941009326032512366509255199252558398154190968002550225483302172172326788822259136737607919054587657423528248703752091210597625832422183841934129283039167623709236811532946113410717078562979081419734270679014404647475415813654410752932305501034467917221746152719644172759215556847959326954164789369346507106231612701633687237604096742652040566529968842854376492370827346401416544522226994333431024879697960945469723818934926261378958677574013184655463719896952488131034823357908527511127320304820458411504001250631524150368399927032942085432940845071163705936913820941106014545618055080217062898822129356402834497833546131614240147851642458334264414476618968484002913347454435710689921494074032759705429044735605101447657370963921701554942216763036700098397512118639081255832031980846108682654341891486554398191950377335715491081612384195791740599059208694355973236169613407696828628814154584209290213786698392005443838730213525887305206618771143513824584716884336028903877057204331369987212500134100595014109894546039034402480036545746656526172850200293016958353275473565746103999786766153608080722219449014669458477754854270209100013701600473702451515984212768152079721547278232559707901160509737117075292314039305543176595941040660467321854291102262118295273173709651475540584030953713500676925705777644621134537495797048501986195054753004050025136235527593198318411655571224018531834502753507772658498145794574629683908582491135363458507763477124766606482820109778322070005548309467944127678415935427400311649585701407376356207976912302029940961994443585117622985878471779238512923148283946470887939231341699960452951355065864527249392386032792566783507340660387506225512369794104077809933610121007059326634862739047129044609727016012363437472694939975261416407048100221025897612610514021783721106542327682968669346374185265280719761800199218733472790614354679087112487058123311345607974956133461276829781242932333597015060222407528192099770645319556134894036425843830031670948822046571719168836656560112848090188436190345639947650839190175587111520255678382338108161257031743089515858802639714946603397829068344490009867019415044908250158652311186430043569463704583415923788309713154945999800355781750638930616674965489605545235372794472865301941179901648231682594000529929526492015215493975294606915851021398409187735979567879750633600007323370722217954455765742785751293126142496791839012006452929337962025241928738450493112796118526149975557727617428527205310235990885110274251624050147311713997654763386717132176026641072908686276631358609636569023186608479757420927842378304079696711056050714192141109690323616694290852258612898000909651462592584650545058274319456566044581955622417316559715771250227320873804986532513548731065560094296000453862908899838364567983502352232563785880509280039722389326792237310343588255311007115571157436450696897365163760971137324562230996411712275088641723831889917248584547970642157100838422960360204552693776145028956890077798102662834200432800112731201036458068076243049967552589188867465097237830898395518006395857721482738198931897958539829772805037733200363372576786821759941783393096900291653830150877709277367127262830458578703061837376354532731749292560740995157506349087349807660905788235072858886720023792228443040824051367336904742451222573136911671649905502935664462526819361193244141190275042792830235525184656203009307696736091293607035327967334240735893545878049818809772922363256371883629312538949102237217367647042016085036655590219474694996859617534168376097082834276824197704205553404946247455026592892844007457403734202515225732574197319938093624023926828433274268142324764145057041174982032407713320734795662688994932549939562778142795894612992032043155430392827176715802894270862866042263334924300274051828834321534999972884529658446054194249434605434474213449690152810112829459877419170038157805150424503659421849089854493426569156746505333573903257949014434589816447392444833843762682082994373672960641401351433940478808699427329859143234781010707782330846499775490959847962565274600209065652145036511169796728274067766088841466859504786312011566486169062733770580131464440635821895262525433237530714198482449842753849547945607591596399173578608378258545316268570961574153072221301009586288224965943373719074502808906063598519764760824277750963333801442927381306832235675461149133161531749967476356868615833296761223201132766660125879412626267351444532999037342500771994676580800113725427901690749188171077146260911395233618477466749905204024964630196898020502563026278234555989543608905741275806419792521239282957786953895444781345659557920910251483423497918416351077408868819606105643115268971958478209869007413337764761253202945553460182320567094042968530667434748325256320338332637811557751303154925818375466246436125269046895137287682051218342491016521525532230982002439097120567367645801319397551461346618779536770135269594860848515140238853701635743954868115942439518428806003468247501093233230660061370558698268543986386326964202772920296892030719751149448630219096526277451681296853530523701602835313374574135394337398833031286288219450379808313124160736313248741450529706860721918488710800423379155377784228590691248257944291499006660049002805863023940249553358502587539854163837954543425988339429040057594543035475213499158330474134106239567411913556937323870772596037191894095051054547627124493550785134846935041564627782800733428383724045564996220826180389658838800714809278059338794687991061377447042153027816814509590112944987403964804768514297984145596205249269760938229315781157465641447646849743852627939735932075573225275209809939422741504808128436649468685313169661383147430500060594647693312724196297086777577532749499899624499123025804958657835553420854291869371355029655541943681319721384026274291276438386914732755113165851002772974081539791007507029515024960123313151715075852088389845516800748998619495009670839551973965133324135695158745096918526432645696680005231452988595226604446346362243525270498650303912663783693175297102634800254091730402574473608692944541983821226872914911560972536862049902739542243561696319588196300240227014069029702860223354464893554923269098985680044254490950409041664908016011589813046251663448347142660491418371115911913671634928488263108897783627889201999904435776993796783344420056278783458967404674864348414795177600163800858094510551568388728891300446162737919546358985260953887449363113860550937295346860366536334344545130288113646095966313174655693704408693864233220395974385324267477910705893160952302630307542873622822889529513968246795916795075974190312343799120609955084320050956705828752481306909997709844057645800057837160881120638436661167323489457767697731782591671501666701666349921533237294389189835777672494294727474805748555735623739829974420599483909926538265939772916072254007046126180514721787019842696673412421566011465430046691795778486860942345331384523590330440286835239845495849352640992609611863713878069591249456162075162642276313008703115330071228419516676512976063512652183671462594927779979650316180645380974685102844708470364748335352248781508158887441083538122365208081808362852735330235673235447803790260940685123067401542601475084948593467758104838626108290658195497122241175296632102393567327987815545157166496857631105581708351621201662695901829512805002158723643755074709307674512120305005543440351575248193863083930912175226213297942121262083116674466918767866651078845739056060997215320389639651737864003142915927388818141294006827910620330128281965657036623045863407618181411973941309663076151143372607620338564369668201312588075652469855309384792214354939144921394995204788630533882303366846695010796768982950821487755219134783486602003778393410659615024627651306457285690546065129975200452044133841767461167402577948704748347624528010215877568165602236363428008779001650956894272273521901518817612281776983053081417946824313355638106578150393026161350348907016430305431690707042137489510698258355489448479207837544371606751340310941979296509429687262292325925888705582640936830887717552905079833691936620150776391300545796637468819077252506970584614395537343817878566459089263324596389757397348710765990846026707658526696640196680963605542351008710465288877760658985837581963314599006494669139581335281952733097526350138982977357839338022079784667466277485476299868066677652865497234954124009131479619790663239330594552426352341324096272526509628459668001907432263202894559286263020732973171624202631953859113625712265370331277641768296384967063270396211756020313267569424031831138820676153535096073562606982659405795612237074677832723037856794960412764127995160816150400292450250297515399270986803582602216492261734469007347256781591258409757787353902281665814947246676381128741439998764013230753926854811386211700826647992482128745469539748106375293471866313844861564856880934122616187742509769586188076013912675792059914445621146986030383676665835704480697431760562669986962331957074293726330700060069258311691203249054571698916005825536193327522481557327655697202914509408568815389741049877870665011882467309449556658675169439189944156042847516375690730277429556528552395125183578165652847381898697845397514409657539942060860912106657040009667997911899991979994259706560023695274922412724221303757875246153404948945673737925643344941003148780123100402508534426660881307301241986068587927161096584032386603932413147488036767134980270763204447101870018313218446870385480932494889439024249548368081176243600929367554696718153886251555791073575687342227507293700779491351439246983242204351917960016167766284517696522525079644162363404415456092091349068804472783288503948435347595012988915573638753970956982655160222808812527422487972784446265209717523359500720642692089807198275226691602312819331474116314104694912485003242035923323395293704667852768959913968062341320806615298979970969133800846446943072271999263431493555283269633056603546065852523266266750233100576432303126017729254753311186462054992160137443734574877666222595629710450237076206437038613652352209452300591306380809557728805881616923850144203175565761382134421082365243528966741222591065457196122455828989388383047592014707282749428680989693537685329501707718669662814982762908800409383164993718432888464921514242563971752210531711747278325592166709740129748948162914074365951823285435866257065517443767360871043530708878559478571085312586900270770596339203392261614031115820625571495730132372792274112904385109415529143478299486467897823052514231095997100146221253689259043991064633063563249720343972891204418256524056758392191853966536077236013526398983049522826811915812602927141442544679468109120238271418346624949781486814638393999609909086975742490265129535896874768794221407813142145887816935069090219184344523504012073979128087056988566596235390713202735770799053461692815637578477417897156399720642460597079724175039619651196051766034636558836860224639306160291557878371229738778450791358763303478912506208818148237597425947772961637490447603686491225068232846752414652839700090229894519721465063322683882909795357849186978242489505472135421849839797465170418188515023316630117917767960068473897117257038702143430798810963848332088875858533724680504284974352455320476347521294300804828044934031578901411218228822685118380630780747139491247146520144836970053379749524218081920439391605642720415320365177686720553776333419037152032734401397875579683835237960713177069082603851448457730321646473229602392654375858937564144167181513257615579965663806812085242767949132731903418468772851596580558749803791770112064896558134231234693158129771098737844217865634253870386987549918900987226125760318908088216098084787904139863610867558770356984219858699518835564564161234872795202936466501557657436708551085871563872871274531239741005083440951130228509592277095519924258309478615284482113847399201375131680552899992395651875707687926184690005310301128369300983955181295638826884506049578519633927836037064421547209527158291380475163536413597559493634149946796273190797836420329599222116555298960013919098651976309151725969650677946475218512806598022911408255553356089115649100609888745437144402825828760951739888165535330288441326852557905546939064147791394490468727615130717614181388185567083789672835968793823335379777580359720949491435886537951601053694530043105077262448990026742489648521655698001932130692145140132058481029721236514277905621035906567408085739116555194662104147876645138094315997025642747363061657928558479123710531908114422533859758803575337756527777205322617449502490419730436253086648748538676548065384393675491380684817793272733190652344198766502709717786177349008094729511928037604358212509996574871516787483581383550333153524135604674712306544259581040977537327203127885477379499453285482924244384226585875383045561934824176860219865204312132228827889044078223786894423764428183669560106726211587709862883726384470782238250592148698891456105030998532510679363043278397312445111540370231150113591952019868344351088079174578547666159355769075320781522176180130305690608955876415938121828879002645022432666766989284385202067735330022107672992625402272777646499942392077455130632916442189892946348497539430337621770263741791062632290570276707289328313062795974547013357474184721249948342687594644896612549196247849148055801414850336328161297391512451386852870051284859023473276097050374783722897588471689413933749119036281291772195066420707649068999202731201119350417244659344707207880077263018514868895779503730761467393374029375378022256926252033356444013249032099145917216809127928578482964404418037520845426931623429433085341185014876632440930321473518897668410985159218320365195338612787344290304188866819438650627549370424056167590377868855084137619831215106825891793002816407418228401796289714332243146919040628102710635741030203728598020729251519145918902962311223391110602839186311876576224127854652117748637788471999693710613389227752801374604768705302505829575355998017980059509320466704685295482548480775122605146595933161713916236263830833703812845478634061104265982128123089665445037980517145144115270847969854263505515172023299974908920790819340002416677565692594904759634736826088808945270063502330671626170324134795842753729858596908051491294260589339727667857770279062430876444220923032513286972448790862925953799625517362984834545746055259325816258695477846085231696089439709314655132835282769745488131503749249156537862085652216450951953671067665643712512709800838482375153621789073548611950802965107205873230558261500193304793533526153306079684640919743829129881815967635936980511624094816040660483364562582728917095180888200930721367985903251308404230106430428808976185437235221098281175418376716032092035985289389473947418437064200790206493642974464902339668568748673446208641602842595111896169592541130787343438669999170464414918407430920669813221346193864821056097665790679956724810393019617962778613828417597903104494937167976377024290874527298548080048125689169668439785795073709149135134070953289607307051369010179350793205178443292269630416113781333987268258271483478661565158340114851093606278358570541467013776704873482608506915990337107422182337212185526847688296608167322917736440167652769163483568194559327509683198060761264994094363510815252793509910888864000917190362728076872068673305007872304908538960410273125797489813979385453198066938426668976326093647009827018152072584900615852004763870992928697191280398914569818798330222910076684941430080085619178658010923466698801394747725412656567734693681026814386881564589830273757997521407133961968101614712342071180186314351935512411857461042675062619967784169622467472812409213838608869616296310832688689695670612211187242108238967988810861044592123547722943305137155422416784023147766863453850463422700343552375568176599997224937795885371885505151701276702723862313847468875443170395864845537913635749464459345466729370873130789677520346690270353354218925539623542804491325333936407450046374075210498409766844456987895103557798588358343346000120540333535547172677926741227938290863236335111320697922869839289019872592525274959703574996624045793334347749089322570814184081497930807192673742932795179338861615869393302513731116601553202199904506007450246278849046758946279508347489357143241788701181130073505766511720576231309612565842763613081475453594981023366169240552495722806701442112491397555184611031624888445916574023375376584888690195546894860875906809262802541164907004244093509371167466919677114527419833651761231281395444185975085179254575236232607773966886608700221723066572121165128606568966333896252602262382175371341882798393425704156628883110473815127134376167128529476558600213257932298882525567441825720393291574123585882732158623426653804379712782180320862808355931296953027599630176084943377025160094972147359698220637275687286692091010983930801526459131717488797491824492164489979780366243075857835565885235823235179208430847726145310157653799329685432183891297259363747724732716135393838004311719374366061313974369968762807668883414111835429715078742865299971063206936022588081941651122857275745125548375571899081182505859383540288758211005220596469936113720336466694789463889965160224920334859382319282327184525753856001941687125235613049812188004773104720456424484077565289928228085777056615244618030046822860463726317948334474903362230809696897843999841467789969922143332422157676335967685490738063499172173348206031385626934956070951219862366710461666003921214148938913087885148075257172196778133191719130963707224948691146482639323987582054292890624289998196922043895327240805048557071170002314713345995625057905529085972057605716763671610625187533535863285027376708685356546517388770388458872860688968249868752351616405388248149009934180171777429801375437947048306172917599357905439622072096495589054614260804486449355025362404294804528379969451060684637079662348394532902231138352070661157338616173388828136567336338461449106654153980179814658971691724166246666577848224422834309727347782782879555644543297331622507786188886570270013895893255873464625582114083746820858542652387367675096788590042302165763398830658866421389796783884005294834772024392106048108630857005665709930638041174415016126626346775890224255896171451524025499692797980659686593839985155286476899842549748891691819171420794092857740082584893697652813880861975590490148362595380889313399990693465099320215116569153384731640053948477082369712625706120745364691121814098483156590001725454852557020991689928969668805128489928436525027147001984212005815688376781062322898226331956108380500020554873784139822350242058545141402147846050284426975069053731501166753026020959746587160177378747054042314580153794611808705165374159652856379290253266906498863080923698286789248608603036601037346732541625901518867607953646303517334603185789743812621320425304573932824159443432360216555442351374298879723329294133253220328619231704427696754541105232542732243006490667389143576672647862374752817256827463958234020362123130778542569298488394479813347936179795910892119687428853659373232284312062831658342449745112922691661520669692477644711743054499168057482099708589808050930988436319524545653817274382293891249994629595516465058447146501879728580412120751233128445065412596382646163631450294676129348012181859070813021855363736539955787718378855511172682505440284446621573153371604125715972428380506436446128531386223103796923423373937047291500873655293821063767383500045571392479157177297541470623615064549508185399895544882530136361051297721140628359568760639096350426877636188088972289750582442648603335365771016986299133401477546875972956995939512427757623958049766959657336646395837000959158329980715893379456863212544534443352816707495914337462920239824666751397648037039273212752512266892418541325769361669176220457802865210336356168869020576488502141122652147771994181758114587189038400776168165217030276017652892410623089559586527306894665372452993062811887330651611612664744869558245799235011494787326791744587643771978524279825785968369737444167068951190255535222567844874243813741215138644582936156243699951611284297077876033848878202365753956560877344725062439137112908049853319977271281321914502276672920910093350752668140298294844668849848501668373365936379944408104319224034698375508735426769270007319201447672127153589193238505672145461630325380312592463587151298199657714169800828562697486339883227023469116850268858262231216319609453221639549046015712505524113476606126779148781076792295922509369036104069224928087455450016291546847699615351094337579034075188454389097569288793712012972055979193687519474452859392123576033453769188153077130870510114848251661106252372599372181894493476078160431957233092785246840292826510321118473992062339508550279320294500591745501257059403250030053583584415436785383273398863536995918699255202727680465968489266867158859811513809215965490794785712127082152629273067195311132735936841120190233772852460816562573212394874686645465416702368046095102838954042281656757702516581414342428871977145277813805665940036664289989390415490839137564879999175432254650572737909194065946321401488848238833951409132621567048341428534043625081319662553549817582824431041198182178316318386599185913495280064048331124501184178701277192874204765395902222837097928341534104256705332981195992084523396469472178159550122249427718849800928538241364823770364785217036974740708418972365744127166940051584968594840610836336556702536106462015484904832633488793403544082190568488898173619364707759566171310487850110261704686027322448964936285630977956010397784190218931562374495476441151021363994291638815105511573611519987659574474283591879613582217297464003499419262297568887251116678878373939534936399884699503901998649697311584457873908149581540225923322050805620683684673195162156315754648300971228140070146833961767370532842036726479824650182029901668373912718099027032915219199356250627462041985254749056808532323165336626883351504028895551609772143295657308401459868858471917715830868106568842480422163671087127260594417484943408854131465773048193362440584831373521542094314071976586323312430691748438325886705159642046350923486483640174132167546178272434281752174885984460740580704504318311163449867722313430725640281457569848348130703248211896354903011841655940064126016339097647901738506182369456533806010655892472320039412846102506095475030984377452874212143208705209991876359121051291889711673608047555700653745346945242452154825988274840237252021760223531486156109947104665195659189395066238478106525098558538129721640251214860708926504476354061143020276249038761400692191839627183896218468224932364248188364475358244427496080187972654277140748109866750527318880806045708655552827742868381704745525837076908164871970213624804406514158221633177010748279019055514332240239431509608670105347415831404763085801294060346098401017806600737282734213374563933956093497920562002709792610138345165384863431790685794095070576203639510651063133860728006765306134476366815107075339660515499809136547513635137320642416629031541507570131895748161848965998269112779653619143596387133987231555608405599110068390756888769105204168099402730700232373897588078290869075644337778807204579941519696551102772501742319686965048602388671288595508465498359291110357828821402765820883943386203234952991149554802326099033213287948104711971510630315639697644336556433745717217715808781783640686733155497907579631200091513102896064687024985233112973696412820650311999809506438042395651047517950710851962596348396832055198013281706655775538231379058415725257259638169014990916189392625700374086349277659619899201563844516494259450465379691576894581396865177091223121778066617924147298988791286893401217464331004389134510357190611191084692525036884150108671058598982863606586021119985332595042898177142732456229307029980935206609616841397303331454246596732931351590315312175762652480418159175093604014548066862207295131690118710273454675288869426891983214029984392180870037314425402755677045756588252415292877971679400490863779542684008928102923065823344971925547301581445480331646558178850875437569423607545394296076888464352116979740893877678954064579465452767890613517328043452212155439528179018899682954656139605476524838577876935560745895758022361540972733876189270612068342999346036470631554393817068960313036019779830936568384749991102831602797281410530836312726532271337427643159357264960061423172925090017630081693322438777547936448023890674905358794085035755842804876739291215502650798799014825499043790305525922469421127409650568951777950328307507220005745594230623535629824119359686458933781020894118978337741134412700224714839625750816456062101662927514160414670305073519419931065506808120678232990593308277230361686234844338734448463176523187253175133645340521890217767513962304786839699862905580419056265253923753676083462410048074156483397595329987382383468467386735061984614364585498224828603303745226247398161616368025605194319508308370766964815221126561111553943151380280647953080049824533528097332406834403807552897587583274790015281512649445967074718375599904155568047335177877261437303429103088540566313329135416996271037107977371540483177103959290765301327908331831198142589361145311681421154163707709289185607447945176352619596022741111575957718302581933252114410697569581960068689809970617761977823879960753177211379795861443059093851758352963626596499033635820111946836434298741399838379317302328646106378956256371841742679392981508851705744594978637035936964379015481571183958531591634880105134918923757109951752131248861031144302966044048295982591251007254101516176194717004342768411839575760486511028507132958655333899504073812281844840772269155275661653656464625137554538692128614985053223960699043776169837321513343134132689207294010113726512058701069615061295430413726853891336678126368602557932162753415642226104144512419574954836883756185366166473498379917587634437992197587297406418178608559490676927910092244675064226179098071624834242642198768470175814000479655456209237174131468953606304474957882659339444238161095670144783188842869349026377041938328744251832343554895041942564162913768648861565587939142454710364619387076692639472327752513874360883944313866090499550881186089581447953544127086482980499653116794179729687840297840898033583572131403938638247163039856296376563961556269513550150059733691058273552542825195223561342325934355725767551227439922260315349136372625248598425880703651603642677405691081829420209995780876605963095812305803620748171305322644463231427850654957395429108795736103178760709313033177280180541755712555678499984255974351269832362371806973065131416088682542237418895782894237935366967574212149780356314449812059159767836789027297563264452009677757688467412471645086817280812179966889315618609788425776695499079222329914270193955656862944004339672946866240880322585378182480936081399573206476654214283797633163601672128343128339602217210939686458745866829543140985905004021624152583792280263244293774998704177660828615999350504391844435700336219457040399365524039178982692152243967485351843570179477128206120496076328913717102274588539583361297157312710176834568337085988078617793982508794966640950033749065657697482407582229163648239612392004913460031929855429528150001579527580285688211221869778988411922503985131613387688124570320075085963236295751043756583090477004675086027615672239667432659075578940035510553684222902445293890138654118491129095835829802210797218623114245886401752297858041580564723495219633353105460916389586576974957097666897689461518415067131305408345296511157471511394737709064240749492600457733001195481239559391310725113512414332747977071957561978902657969556502870852748782286389013837009948531608292668031840845670994699065905427749372869606609767905825170458737194084001594180108146646391189271778888296369270198767035154254589452000399845884542154232067464667179184649363993067122171690473316164772109098283212868974546018035864921252158104187598603919276132027947320437703455048278421089725566407770468172573910426597216187945274587935163154424039089462305359255790671175486936117410768369363837595826365426998036759535392495564513715249056346098439654912610501642203577274302872618988106695156672881755070061400306795493506466973398662291088636115609029422432763182406328031634308413467890639549533830647542099984228415833617413434294042415886731613451205025549727044457622324028780418473438816313627313608719420184332326136602667936608086261073521764683599910052927948858047221572529338076502305211891678180580648072583452242795802101943778916585363706921102292337649591828730444686884776811223406085292480214940970277035466382241873402358140904453061174278482795648248208762074252634588989324170443780710612506510300125543699125978104875046634266267384610386918223301101064189685087791995094091852504551550556361864997087649948920245373027050875309927069066508984511136278883633667158777747018522307592354718980370387081800376791014492722114028409126931888817595791189893879395793768694957890850829124393722528597553582152165127653800241584297564182641039275162429677993169565635961054238212098220880000395908253985953038983397527836890424812456642412105110375470180402209229883089479891509665518584374935599100281942479678918593501913211908869733043650437138738583852992942734960919331414749628303280703764377041042461504832494654480173691347606379512465452656928554244868293671676051474446212740524284516440254067206993280768138611151578022370338039937247263237922142228129286875494273094480061951296227114047490886529346678514059157684072177539013758448110611750262437744935670307565294670077788899652502771428498616723216267219864954817942580921576472159772393223322751689507978066996690890678094208774538320745029824037118147896270392778469104229324113349942320564937865958708071218143805530887613947723742968448955421997684578594142101528265942884803380115579555799302728425816063799586137577147131995914941022363606784672489169803895296937721636689619605312338192779301020299936906026838301132628379925367228135496426533928748487798362209923325371136889698285091979551156049813414740808668588753742128235117394807550229323460164128083957262502778624506865479463386129737470975812343265480642377495768852443282974145913074911965320225575217723911197431465859230956331907572396245291963967857047195546607346890383352798146040270487666195191536292491023142456388184165586977162515001179254525306164382842933987798781323395917722201028195810818814157296642319123219100141409635500967641294447122064692962269705093343634632463511854560403790592248621976112287818252029734645373432182310916197717647966613128907941758049684336384343687622833844844996964181471576395680322666257685392427198605143838349731181385208720527991240595894246840118353487301553171827287373760127577778284689214181725994340627505243901256320627336691291654871306154895552283017030677358931700208229926784221801722426995395538984799873712836732513971993471397892436067530239889737034630352989117112100837915309825491883046837456343377357020074663588937538369595102886578465321543946254102424229170472549664207195115723856501390314263772224177620897156797956539440487616143627931849221518652907147376726839453687527392384980211504515754772717498900447092670153607358386277699562779573870421733816809697261681086041454886201222926355566537719411161104274729332798227641078481741843756805759481438211826535118556282182268386147278553130177767697049715286113638432713775849899562860688539650232787377063822196439893968605064065088357702804411301859627734347778928148513496782893146395321090059145391651135268705587146350661177789714623143673371115076194742659197306608020461156087299511670113087450887295870769422601831830002117152312925097087054114255984397506986807017272176281047335404541159168040643716134825380343274955146548726076032596653401672238190604122434188470993356283577496984514261736001215038220818591872300672228390726475823115716126051407135612672278118706383254794179430327573079416676022411808634649808475332493185132830583472172458468345597909914936271212222233683980546902191044787214438557172407142398220293319516300768850327741356398648749505784067092003839545382850484069580101640996267364710023185815376495566792797663722636525147184896323764641026602596365404008087793226290610269746422879760328825518693704838043479695724339477732192103882072495549512292233888636722499954825558367641663885799769471374706334542554296520798949364346789528454824057295894142020526428473742875140238002696529717143284234655494750603323914451664538994108817704463880768519356781988112046779662589332542536378545369980452380996310071139533863533683052182189953199256112597477561395734566654127161922390828154973610208369819100282645297462762138495140557751338100844195144760609727460970651068788458761261224277391845351917623056411603423201227685134053365118282556105970749656095048190660548956756259662255154322795302436793075317163694057025571152326920675738927598763328984488733422399491248272938894115706751165926630096985404435050397947374228536672119164810076378100594658158128073733190667953395780211712452129662007013926558577851086667567345884892117134934720035254055214833897177710245899666282181113195872942803693281407045296325343366000579622633243175193860867578228401011346588312519788766757846254560635951437649513255539550560926659926608650380194194151370256714380712774030477693050839367472258773272682541862124465848349666059166493764762321532932587674658417751044394492505344704805930998579030755175152935536107328219098451064414256969432233151625960729292413925054521070149480873530647448079537881803888083597888621321996279718272111922612997627029365176309161566658663396208377208954337837511405736060135991964293309560086134950233686636487543274858079903716496237384874915846195613513623529686603190663072141093989044487465650861684252290632342270729272505360944322431685748185106712928449768615668774403991686773053464115054738561272609233184178149327531149043953113695241500402749815822829177711530696889577978376159326167888835365251117147525807532262255151713777350223797231760408904074696369243310634670405725519424661778766863788424519358752961826966396680802970048675971049667973420676199146085737380531955154421986296658968231098004268534069788333122233077960417620095845974968651005951483771893035950033885081880945014181265269167044148258293332176359327211791298540096589476935442064284975704869259852630324960788389681812036638389869363948643034332622676685554942624283702027810964160738462237197271665664162511294742127031874263710440358783808489567030610462956460122471041483491685602619118612978522118040015484204622240545842678169441215708303378046850354566906172328461112973044012668979926683943058875785150321899662599164212107030362539614414014434180595398718164327862781394440667105193643242149557744325250351051095202902085018521050095451721204979607566635328553560025324782049134017951453296612699674656604795302282054480176731597916048948307572733443034548505032297470211356615103950504313379310372583760471826722496456790755896823672059651914066997847294315547583249483844339833195504593571877771651340015936876875016945491167840721227857271921166588747102718710227719830865266232987387177693662600800457361881922450598008270681188843575885943621576054216153345972464628531907307368207685101149259081065315143967631986627626312078126117297220214687349781433143995460412093493178238878251219215092573580860541091556306511425993081948528806081033172224170572750623292571208107976075386246225024420273627775400748496832299433421226992086857482396652137594564059892954704514551734188186278795550736397683099602239440704508035019456061896811953843460085928525810758121607834009125996470784954346051605686588892225897497783521159533334557473539742001856784804873715845855693635379947803438061153603235749543588668333145559095710788595800806124064994203897678406474595038256637108022134376474868848946040898305343552557381567112480274406353020247432865088454312530001605669729416546514131333449104368089751220163159250310119094601093408687332611412888689539915745320468891267765629105351485996753514177458589220529548803612419164556145739146367645689653628490402445915417320483644920194390424011406292821450241492624178955344754990360113932252626016076529397588635336770134105122348233839112099455553594071195060907935874463257279754469624588789301755499665113705515344221374357684786314352969312895552431572672062270296109754857324065660558024247505895221877489140986877761127280174129903296796915023815541771183067820827268136880336461160073631346709218509834889305772596741724087959059025445335908573348427948226638995951457749486476497144844372516533967670712655153210552087426614250109899934500339233869560414366273016619509468537159370216895906006000193258473359990528612667108290602735527842044393841100891141476241616771898396420725947783284616641932849103063127246739696573258038502247037899911241347443156975811037512263303034314542610519487171382133102719625762263042966946688497502296590075969156184249738491307085689317671160899672967751319661447718365432342720281160473144350262063899925071040360580361183331047539660282546693919166196469206581855404250532753692743198667859481999833663265694566631735815613104456672764089303080252287850671638870563310020738256096523998553203580059901552677189778522384344439337127160594048678801946664938765117819599417042163739243635366439998667690819332605417101323319158370044250104100675841443502050818179513487988174364928473140171418108971865276833543945210498436438410913090114106626128246075582551231158047588089600786183842868610474010085815864080263159408613143299177178040869012387609673669660563426763041048862243591343873345638406371678821585216957937005530703474904291586361112714780093193020706393033680972283895334705057233172182218623379879099609762265008659656331933338067779251221881464056853545311774135420080081690441187468770547146474886189613449255840143904998448424376820367522175553854570563238758551964230015074585908334592668906207990864709714456240698501975696198571304106702192370197759057596925332493294906040962574168384125977814790778840295703101096669831248537839683574742974577370288843538269156138614395963033331831894578114820321360928518703897594925312834224322858330645109622229431384967278847605629008414482731577448632862773777447268482287529346574781950921402889852354356012879101056583671292099957940415669216298391247173585932328142319205219530852141803851492480868677397618742624173804321249697714164898007767339871201107775663739601472383701579747228307548854675731963908154261890001307441632997461229813958109526808939889149492867745045995148789009303769732848510773523904811683997335269707722084497404417138058755384933263212781374948742055948612397500562538582305754275269167349486034027620819186868529536962477989802463989370427784421016763243978258854176180717914257228771649667919448268994117561181348630545509808704539242005092886158593285065937542012749769296101063486762580497401858468822452725995697590129383609748640308535742066283871348010182202695667711688449682952601711241623051422219914294777918094752278712758641219122842383629752068974035921079385064344799183402342254602881510626888379652863616651782295412326426594136401918537864016482013910958039617818261503572560007043654754625100909238709512494279355148180575897882536726231972946907634941570983031065894933280423417515960289773128268525254355252332344004602303618318892118371466316712894849636908967515385825498668076514521589631382139583522003643851478327955450137243888443115370909052435129609206428924976421483554007649298534557258572656272831074347616711087155983849881692452947767128450818895923371940891370745086958936019557560005256270069156274290611740566947467754815362303207038838680797060807417891826819756250276904806701423028829522342505489768037340327430341865020437195300815803069971161356952209994647512222515108892115833376296289658539766862634549171163717992688961069252606303945600250027805798868599932238720964107076874349473463556976098002048245137403110374975261182266884319774732271186133408109619177671741535898940298976478675538039883035454116438257483106963848951256316237922619581720235687162370018409759319096731392516951735450176265148589110289625501647479458282774957851124277445783496408189719605436565800230742717379864810321695793218314709840415377668221937405197385696930617644718155425331301047903498093787104407592194202036750484968776118898203813887547894274073799366749480204144632922809012950489828695744063089981356377527537587340060285640060030881148778671700460272232210749403220916954015214860349100228739997867511332066870738220270880304793432514992878621392431794110839517312168638488994324529388462409334910401898789440357357521678169241325107614597459495940622614641450601873815384108759410766999566228015583971701978951291123440933788918731385859074534605113415782343554045130274135131155187366499328465110429703671463830017286134254556838558972375600061599206401884319125003122269887151627543577909529658220768307547416733499413581162267131649534439431977800205130726987368696980135478416271077251451789183365939197931965491227800534038741428565149600957509740110072288304110508610273277868887132456436404261154182926587697602921363376388756234024124989656305923726869488405657059894843440750335061471171744070263940808506838245630368547895805915868568970247515114215035631753465367934745107094674907544930385789715794979513206362869001131516080050077215281335208270831708220258354696832046343957687282486037115864512278519911903674435117977153619435141962779049648636101838338545867089357172531324424724483005494550372984651190023352297816803379259979198904370897828490292387082858124148866876468259588193458593285933305348476628087568278531356027288960308185255891735046151582506198643700196026204728622906801874199779912016787187866171870324360577896169206282980902630118952718205093540767248401016938276656213478446280760111815146407504951547684546834078457675588018415836344832833944305753817861334788140888844038003752532141983649716101927304438655704319903909364772344846632882622542209877779243562393099264200799484771652553484924761321667631734673726462988512954602601110375394274295812455495181348966801817433818072713762662765088423534926971896421603213889771565182331260824896041807610159491023993420369807169065090483286040009403790448137718781104834009878459050846513270954988933675881487849235980693095262935010733017250286554001097099317829807129300442490473198420758057195106354855595818145558907187616169743953124978564753986730801865955013906887918324770002314965717280060147432109753358832173438852556388614336161460916401949449856183653626598209977034148018461329679589568982561160939573194779919157616972085641934707286960823860676734366169501856339023140764454784040186233672448383262939016988429991202507497397854173686105651919243515191658590307476687168031202735341610439237554157058453566425292736653866352667735178794593650363475543401501245512900725936884138704510360828181228025748049867329591596499831929116128710907739033129908669558230166230399577977584513861897492686181854643657592000993976740366683328237782795032359340024112266476966136960076590391776484528631280761084211807442444780985036595267018334838919884410659627188803394876242632433949967565745998622644393184243328075622791226122091888181489945683057458567479483133622511449834876575782786068490151767382326638436183550722024558877879112098517178871831408884585931345989287044358638622720762125125271173107414244441646765286946470886362094896802778511745145544829405661689271738492440349776061270508000465185932273017278389735318552975212136792157530606910020222072795814504988415197253640368910369763897333241599706099341538631236615549035921021053053275334478632478058363760330628882141139497291327683736868744994505943729068726044021975545982194002554232431787121718248346344618217691708570324168685720713614054182425987947133427389788069177168689450699329617826199064789958435585926049531900007739767286149015623830906229297064061356597049235516261641385115201649877216666476759380690755471204747301462000437335791906538832037700778192511911934427652852540627949658772529719471357061431123528650270863445157203832483636597235336191898665568189074354257769114939826030742970035186867648549041103045016809917542625323870263813916099310347059063196605993164704004008985392839713269150188368535293682463459661055403980531115525791169096415592977779015231958678153901877743667717743316268590519931610456012650191995159819792081236313735259913377959590013258096129394555023568383346802288458779656781759645890263905125856236820964926224032065494925004565406066190717470666910706510278632964605463099690522287854791686574015967690058593511302872612626749585396866128614773006101332456995723883018573082185534975941525660492183978065078432844697007616780713396656976547211981241954808237561784424524691533753784348602230995861092359617434997770581441400156939151410861580147211989751407958925832079520467276945659890985856869898881584200114439412881646298442064251690029420972821835058346331446649988473153674456549445111200965255344169751278778699839599734420814675884869560630899908160705494212455612440365349730123114062193089737230573732260966225041329470272940072204455069236763483942502821291305200578034063574278465028906526588581838742105036664877991656496679464980443597813607846517111111873017950111534117623459800498251621538675298432503122898010117020767819647751358844269518562519854996539550289884434823206281066080408181788436646098372654297037799138072594986034770711628169018026406626632638500921591342782647111674888841427370624782198596997083352614069075110410151645457963979886914106809238873956646029975759291390571926128741019683021645936769315209301203188698209139506776565730486936606228116688814479194406101901809931082506984887286072863405660286788480235931696724595845785453735799887934357451026135135923937248065455328873655786686501049813877032805059980405766910649418210107985408985621902548422055852280826537936458139442963815294385006390284399265624085215360576600111936657059959681083837695466882600286267392229218949265296172642209326552016472705913522255537085934715987365051686284450047748158180914998490653939977922947500648710542540433274902851468501691597966909896779505509352572104238778994353005786544455587275237564342060689042570955397723485251790860306470432332089418663854127204621770550093019648623898239097165805460648860641872401472853939498501799103110984946973430208611267994979568342235588191266875189107548462170926596399302105401082399253046658684474275949676426511974476897764986389954298888889740204406144255838105087529859708337055800315917412534041188259371395709098158279947739425727580156760219520389508025492950871501174805281830298906736885489361199168774708162052637922585406380561645292271512234906336057325279650262202768011861729334058883413372071915108329833955549327326257279656209635809451980925807443959388832764164524992355372630452741714705277697584440949488809585801316074423535611303988737476267150048698156141767398517000001916120230545419333220442113530478850440602952145159929911571956814769142440234887861181813178514275348659926660148763915839630320522540518254323064002851996741133916788801560128684274708433687700214691675247723719383239505633482521156454682971942714017601131162833768385454681252300799165900440397551537638389263103753820475383527384878506932913112878656971812471966127720422515768468694962466547114348084429915568521285007791531016540383034941565175115704063507367943128163131913146558238098658325328753921611809944950524051564027617818673926955618495765561969834365991493623083661350690762087634918550700433992254582309080089571212451720334906083435025691401801548779005853649098221298771408751787657275476571323531107893040169032338336487045943299241446839316265022787630751167324448981207772642462131759783246938081220318564885487028534532222757507613450734823089511381556103886731477267268515243231665745864103840321387322544445506675809986308316316531045682052150286229856334603540633835803305457145900713119738772673046900424041591692353921605032984867640708006129932248411280791863626521919350977525939016374575769295827998357760455572405073659460216289967098046973274983905282898281435404014120599432140656400530263558440730581973583008483356840669693505358913801590452821468058357295730431473917426345451457747285487842612991277720567370170147519332090520825283030859933432421082592762584700467714670870822629954759762282276574989973770584650447374124114556675164150737418728037510376127817146566612200632865576355734710645891641383639714491656310565830504293333684630993893821086669259771769049688030712549953928965189706957422030386399229560622740575894601595851930365025250815754579785900496581108373870065466116187609247276588889404908254821434217147049142920250629057118668034965781181091070450788148078232413157297788352628946755695322164117585263965649670786923162401345040197908711188350845296449087899612032591171431100711182446556233096983207531169059187192717269146407838822901624870820618989484242826039769803606640283342588321227604333274437874978462707300213357327143323564634810890275785706350976977321658811758020238103153010415946771583338803084586333059080004148088830947563828761161737874150475560321895734853393575702157541860354613697146113754905237015450975686572912531562223601327381594406039039184081321503907071159657159714065952809963430479871805572080806114141414416128619569034257022828350514494029616411600792785599352565605612675906445700459383513412681075069182409691014342106520149413617073213123215155075497915370551932815356825993294776286215543802436253488957243114652101251832977551286526104433159424612025459443506070301490625996885077910291554891777470412166311339466113786225508605361929057685883421174556261172533264926318446449911782040969885633898216687813100729571776853749132730287410854976456429045147075398999935629290846791234621878280943824570720392051325553340075532347970872192134496108580201910239271339434976845706596725913014642614677724237358626465970640319877732344363967330339930394143896158454948618016509226502175203440646969280080950384683886034535844570002223537858574396982360208746742014194096286644396013283137034186782006502786471317303222687179821873734761542060528883058754673962113988467656010716286676485863043509222733260218817055315578836628558447978020051034586354191603094186981081244283767586307779308599355638001799609391143615933024865466175186860418958972517467243162126210646276351384434261147782187898915232393286973328774692483937747376431438480999850601564341187455602963811923085789900134926135119628129073102757573481286894274068705741586934902896247274550768785153200938059486063765817698203433151257288967613966853926078956800052391464141168159825390763588504630513739402842118658929654214877653667182178836895355965888567751538767211798941964228199860266698515696480860562944031751136957363786031427581268289126138167201339790430054857297944953178581360982564134095720320068810276567716807302123229466391132411884681154790686822783579707926669081222115557671588410014341010145697959749107672691015882315215829442924048888473997246392903203244305755546774206291443884866848887997655058689478631776455380243835660052883733782536578173227768735730074948450072832813113425523297366674519034828981026984850741663712703641554261018265731222733619032719534436672639187608107580382937580018977908770998528028948085415958673697798608717010229045814340051243609456294685900495830701824075946853545084460894683042000491338285171739975453070121204205442961085220811240560323134972467063621639442059363998844819545724994137029244056707023807407628420841148962620722672932980951812732891294666718230881228645048400226225623061152867102412854822411742138059793816407560787215045098050168610189811263845355401814244666933848497064592102595542670864089962717466236252317319957824253266812506930276669945728054289978963183277444567742425888093951957090522915619834765027559296879089974591779875047720010075367645434753493999477451362743173530296412008316956332779608559466427369520795873834705120634945498578198581479415883358449958803390032522373043091750369035254198780933143167469128644335491619137032923727051783994459573162365081062647365962416774849312659366328510521833010153248693979787090856138914046745838399907504167913048821201021346550844135432513852846645868221312343315869615465401210082644304249076804272165372342561516857560920191256675364576527648353383777254776103116096692038023878312413196288969126780232005225267656664854688185587190790614696055504017202106494539493435224616103025880881182719580941171820759313924771264743301760709917825850442354090625566963027600614990090166381784601933956662534451263153542758585617270422574917588990047373020357413447881695441401134926605174039871111246199573430728762313762410955030971725719406046339496120214015152692842573646758032966024728000281222608011524835851820100595687287031394085962303624175106971622263789859106124526749236564106306568567649896932570615574676659042665199410080806075780519849195086547254813176194411394851527006081423665290419300052139082518021538895722004227345208814645284282208887593532512888833074171752804935353123416356134286698127395461162104395285835049847298939729380848267324856874740358798798002704735761176592519057096419413962058138209684919065971321447103284356904736013815803967602754282983022473299188166975605457086383443256192425694542639753362097917999064259315822730542112619221988756836085494251844720908218389113331753319344267638040495570732152706074698679145838253861764304966809600001507935965458120285805274375506203282285366635762930989365622586095698599486067949340132333346144482560299802054146420772856639733709082330332600737107388563251601418341728931702561487987870233216476056366895359928126952933337437236774027338369166378377339540479708948586962799333573511715247091131345845497979201399391550423018068630483945562667230147465435350680620601500045157847804920525911055461261558237844186033984213154873160578488974492063993248580863330314740991514160710097329359665393899039491348822798054538035529859847117815046373005612099101040589491826207390951365842843485829594848375332902583036055950257496614279999567024512706578240658551464686542769069248176643521231895003594083361818875000157531543210869779101714804355792335975858209343390538647018387478771501483230508002478586572637172307581923544494589450150408416243457493335965387064701684049140662168943123370410422211741629899804532122325898752052383651903366689092494557168662630199479546636223804274675491974622155481785446449364325161147550029219644910687145118870841942445846753383180250330196549865856198517331880978098684171715455455365338682261017640079346240332373288561771303104181750920870054898939240017429976540378076133572281970024919983195872324680778469817404448764127155353496784295497799980654061888969406694709026732755996492719562335416701838322276894964402092567142772770980290974780806909146826632154085857776177256253601452847075015268210279486122713964430290505774362321412781694722811940264439294631633119504197714874129935888518812552128837525186513081889620598644072992968493433193157366934880736325374491479019403110355938534844748769407685413424821030762114865776483006301268706139187699729202647838743316129770861594770602361321050764654587582457628167297289692767615383084302368450296616362330667179584529977787347463506045006405275525584802849371411159049608105759652098527046799358882363985790726331611332554594392672648133643796688416430470262005243961176411835122425451598047267926253637471097523671795933498511433734514546586301213896525725398109425754341376410495455298346985578904904738294556585152345281247251457364554101274779223790661013451824639553788547400985802100039686995816698321232591161229963490915854341749756816377688313909672353612781743442649893347084100073774473278739592659762389127348951845335337070925950699637854183450370150321636211998089413026782997524812342283476600053322952923452897884226578735934601961351138146042076970654939838467645820311337521265953396976150425226399458622320120384683357237634156638325276650835485455902427802287441564584786635277476788542984954444590085996476222233356798796245660389510484964758587548305131822257916122891342617967395729010369347844455688156199507590650446865918903978388429632442262055994136929202971332566143350763905470724586058695471550339129406466190774102176643636630853914013456341747362238902892168705567269281732795400699117873523078554259862352619194980246065227660945624671188187478981955145428197505218136846521448002393871014828537976188534455374786504419824649112906635870269878604883158601587008638637731342588443550149398938152793006373722178555133062244087028672793298870601620912654927364718299355237932562114343484177932019652817258232519526129935330124120614119466679137824163282284431062597570934895553779988630682575733493896590653679664653134712014167932091575179482163294756225370174974838333848339663827900997331959284141195878154945076266148991283938977112850863133446920052222107535849335177467263718186523236829495388752918959453243888425871700151882933842955550843596696699727127516018424092727399299307437682836504063539591224917075156671397551763485380243245555521613276486574537208413950763869303550792081972566832146661808375721963488458065559876785750849325280579852352588280354660783288170458704200563113797685865816483101751111260506858279604155541986083940203366134394634169393631267807464170439980883036207119856370386109262247402808015945776254091849547549815292972326567779309314815819982078387381151068964752355656175301812577208371530030042511140628124634659113423076582976456922796877860390050642642526311208632552617928938003227210525965048978155257606306253163703362990396718163347865732493797089987048795344635875522811667296889345151613190858050694301407435765868727861947258829249185142197011860185550232234513141790189102915509624871895028729895162500840339267254149586112847804868200964552821442504221001779919484437616970118878022321383425841216437718311219554827248844201264649985945820063561462543001054733728646389078271171381453725631473793759822564849117523153908899631277721345766088851660876995651243856420494240529871448977639025543292556055971386829216908296744924132603207979499557905551475992362485499128036570094873066267124036499330419962012222383444603647093392732034409082689605482542747725288102261788637033119010928362149579192192488406357798089832217971125706776645481161904541965014720811263328369942573659393486364123162244296774070597808487183448175152480104123937228328235071123170691200500050252327513473109717046829904758881835403955136691385200625899094849927641568214939683398559143333556909268754327168951428746428740156293660231711048285453109923107892162557483778875137321519946165708055322343818402390482339287872257202767567363430179692609276662181003248655931795872912492268055821183253264143056175810176079243966811591607796649171764028251209613031949417581832150798142976880043197210629302741378385712432068667248010568286802321033749154566392827655186163837927515882915826450667676620673362307085587810954741290115377306272373190503098982245162312516524487013077419196569731308118221254797481507558042845960363573925547858143734566726033186903164420911488000824839711749367977026390408353726710472368246197730063538937057015961634869490100413543408476589483332004907918437647955922926165293173135100596209432703492332793527303378851355182271306586231335559305296620680768912200371218665567241803205430793189663944656325153773133130714022912434310461220207608833021266257640295734876209351574751500976850116901217425746763445162656237846283796231055308892722122454701754507397845359834801931577721261017709978673932280241925518190260491129277897358872972655297334109079251941413415243659317279389061204547267079600810434936951506668887982484123423477645033408851944341334815978200045900212145117019312617712274239296271782651638131102320418424321443954871580599989415313284385634316286430346102491178310315169807057920699279483313510409831704905105612457192337375322809904254923951697322349348682323046889030595587220778224701853030856930230211663076700538253068391491806670373400840159302412632641100668651846952360729661237055894838323249111114234141043757465233779108179501019858002745054003550505604191311389263766395396460919349111729435532119748130594870879946883734862183515089766826746722127966956925689423237738908607844540209945261013360375104532849057925496062401291046373927529962268251376478603571979064241269185932638538131574593859298530086735511413091988790149306506615575607068968306197875490934791623531673056216671428502167846837494430278599587773796781715049932432688132938691148806135649732429645331580011346609352854037006289578171414551249411673315452374282265889467580005328417608460486832721559645055154697297988612708364389036129972004942227882391776133471055885618323228599217331578892820018061507846709072866704335482302495470451514442990620960670244125852512718019681055083732956873890925269100463193522530178269593507691552429936974424634277019498960793120486347574453716750322919049000247181338256714841434659959003872824977771405993336841103742186132753245774000808303959173083441868983238446351812399313267657086179258270145931117731432895919614052080490336790480013784106867878406753041450684823919777386808706641925077904610840725784832679004764665381759348992475850808121314869320619592470566294688276814834520183148735789732097398758863159819895732120130778395987856736704987468472327256604309362509848448512304266870453068011181936451535436751579903911622754280730010983327688411722034589891598149381071977370851456081659131271597639402873215485547833765642454684074167074765265848051360931356544713444260188561229072067969692988691831298136317348706301281935027484433831796343612121180912830712055955340101437495163557042528805205281074784494043126786140580076389977498781012114297512575668346430276923022732648844169702819549857816636507878085873046552065314253108286052010587126651735474848625624746034422942920204027564769348914725505462386212559368523325149143771531741027614223938882109698173150916154204851641982580002278437386220379301792348849862717917354925199372011974755410447163901682094221312973524655117481467136302121076578673802191554129197665439958306344005353690314898292855512283998855650215128419859804318307688574242266975273708882210024857263194268220812207446470301091690279806537666459316774626746965846289850233451175426679523489560946526785880505667923841348177003264028588539414592905322816345471006799666734505582495768673423137019984328374355807965153830003141658512884392024836043660379988162625236863174137264428331080951548699032147387641031094766424022474685323598581383125083719279091368757744342391457520673709042044868694871516943382615657714856510579826567347153711891376571589657846126805894133531623680994738051027214209449462931812520945428967880755232581254201129186948665546618459108887999305301821666595997467481183950917006908611402634136320993886441561896019326011427404981935897950616645567691500987871338626875164942313198652377477653763218783234222784374587458051670993158680946653125996161086982107394147019950704628731336874794335676395795857974465563327587279504985639444751581029387147734238432494070298036947855563609572547627051300198393190737778462500797509937809554805069310037204484962767159246283784882196928482251293639211439162202293020947503921243633278291988494231474266632002791863079500946258602645186432536051433762339888355480363770121255455615334815619464995645823862926462854512475070646118898366803525157643941635258588467508636410998908802886746937405452507562902174228460294204074338253180773685085013907598182594610680310663705947424420684535599667667896810399283158261943407744859215313023920389186934946987496756603782233889658103175626151620770646695203454738373483873207246907479734984427255584977107371127339044935276126756211653594661116330258506831654634010549635593203433547054103965999323741340565500395944319727662379026705739580117819192405230398692095514481505014766190406109465239859208453876777002109041151282318396571139197355441731744266359784400581858953606030656920774758758603246039467798521215983761093844704082006982256939614940642503073766904953030174644264316802784237642718657280869073766172708415166200213268180724733064924781363657595923494882521541371205125025764211503959365132185385683295821391203452806480870069798526887440231249338060142636781144277556807884787193598866074165881291426374059279982836368894448786277374034089807512979793152734080982014152011854220993347351392226979392779510835326457220414766652907770981783491393443656579250759598530115941256950867491897647568146796955487053582063979686736783495300833648059917107923675303587212671090888346940229837748063205912302104802703025197922119245491214342905285287922787747749791080752174549153975452697487067929760530902749703904271004594341687941735505820093754331423631629243178687413550752722127305128632081703623257952730416907195840349568370461431452227692652851296326158587336144099813674270825503916044205362393243008399198707044122986909748328833834234999350111383593089980807946189154896228100888476366006693183814652150383375386156284320209953025750108804611748416777373276911879131333306669756852061448872245122783498275607956413026327745925654053400198181039116622540514606346470556423203598815968968632077372187831836167011541702617164305122197534796837393317621686061951864303637620601506712735936500196321522864163262738868890725605698471436093714277659136604128523702320885827102647020484835347009648133258703302876723597370378717443913423026885440224998591258245690695051385418922365738113509172198505271772066012182472927234371185659662550801472704440941929903272948662244679922422889741664532267640513109704419077531440324324887503464258273642595235707800271401583245907252919984685776028033461601613879106026144510763676573354004906040486321766870879333100351539289712611892905393075917562240311402072890823456343833101305627530778885765458807928519049289552661037464677980361010629191384806948070402763438872231886038829751487230691388597300455746897290205112575335801550519649132618299778607266626850591227020589075695551725969113134185624120312829844868894598606406689212360097491309583442490486229184323879740626875415946117109626452154317761497816963904374060318675847451190329272165416122256458415810321192352717505854594337818850219846213738926564249151385175781781840834481069348047313616560297228687390957557029547106123875345713081569543151775020409982688963010957034964015395875196606235100566541380328169131436906219051856684258104314523918974550679559425672078703334470275129692415675011210708546694029493724541575927119914086166761323946191647616319661113651242164894639988741499906504352030124683753030219188396012095094087934694042122100615574381743404832910461459613932310672000595408623557496172927635220209366619062210570675400618305721171838290968334713532464935730926580076408053676488070416733431353531371513282985769856794890406136311867055215755019346560843883674464124973779697341591927949545014429827800218734968635244611592471816865223729925976345252909164312189961302702452539761835577935225149859518394403921770028942687590649852907228273335862370272235953024155659008258671524264944915253386807801830713401659552924178377539198771243902167607730241156056226280868591228782708484338834637527938931122514530660182518535053371233975017475404995365560735599752463769097475437790900484038485002775135624338440493888121974403941646263175215277350751090731827180291585888117898854611406969046566966576554440257395287578219928661593918708481713751279589522495042505198500987489315779367632865439245841565702931192815647909774668889458349320293689244093017581259284040729130250702269919335340129242460113140987597974439145919070611378447840570047732449594383939585688090474427422397072767672341988552952196155391803449194215318195905215278376661752688095166103518570680613805666933865857328173881362744058376885827173490698704888154381314729365188511104374291292319570919028552363430804408020773617544259762409227852796991146451894563749292778906045543530554057398094940961828751233387125111338813734451593107494634504302434741754276929964632636557493803621907048209068708976858426012528709619328609447472690137338195772359021941464371514591340048814689963586229982870030799280741215150845507701437485927464485435288514863068675579186827139175428881548302467181583689000443846756017572398798197088788176268053629278085324768800318040437243353074374994198824678509178211209339431265118458294476875459616849083527867356372329318279922763352307754115554393037834991863209407591191337759532811689400460656025425785932226516375679821042279581060220477436850401339623302941821584159894668769968755960210145662124162980412280348076459075088359322277844661075450830627848286117969286707954883444582656252675535065260892744517889748721497064294776966467012290716125250324553815235459002332044047144417524213762427051984473888538392655926505268283058687828877115163083524617414263754274559190672791372743461084832561200124117590972624670129797050518459631484664420007813090180165101297652132320180498812722952018830005213021358705343507925242627125979717740617053836949548674040670252034732847248693356364155204439245723808033316432194852728402315618559377439293979497144252486474477831715256087814266203372707508594677739226163185919170553800948933284062253992920179294755441958150432653512659958715536629410051462525315938071180802225511525619436908079701283923609134498846172031471429621302857566259740181158320180214611150344573503170482957396488795414377620193412154404770756034905396174921970524839352436223624933894590413568760707544111185290514105311608644032074462751309877389406111790704964253555805325012354924438953780230187086361236770727979790511624511387698884341386014073295218795268276594745561041053310286800562646526925083756977762087886409223468776685659445738647496402273780704909925710529063973663862603990897411429969506988397696952230652091521639022419869381688523001135416503984195892414332112121712601519251191101639096327014545583584337977276559173058377613550272443024370833245302560245343783651126678879933364301091911601076947586505617476329222695432316297754081491733529099412306786826714439381158946128490361695456266608563322107878272901732018949480495620695353444149277982351037219220938118295738914805090800469318094040571164269282506534628462956220544948118694907203497841816142667837101727705541639711761980575684662007500721709237285161050882793785547552198120125594092335580235900358318998987059993986715432306050300298238838252461621847167695839029399281316183394222405341812968812777056699796167097040624237295860416323914750340388346149073169786939615389476078516062111151168422527961350436264539569716757463432752998422937225837923665132584181993107180096813192929642562043336354827882314314317515271075722268142719169877309739269203388310059513309650556566021761418975042505852767599684957778355763015638127415830546391534674974432397215269078739990026449826825523375927443056360603461921654060256618494423931308887538745559568078318978841904043058593648263660028829982027141645251024439877178282978275967285654931517687607376799158226755939408581271107258976226063004073002285190535391104789277550611918701771432742482826469802282478652962887471553313387445559926823934601243038218658915152828305860935983565963405431256220643564883157825602083848984726615016723971656758337975632379375599325847977576605488186294294411168659089158844972850588660886378558300573681130696462262118971621060475811543533909789929675585761312325621627028824620090199371038993628315999848057617098509593723474495414126658766246022417048509214474319267590431619885668057041206261331606493169371205237998737477809352431797400397188078135581616825867101481607228551960602587501562213971120924716831427112557350131595862230829986828766012528017613907852972152061875812428791543440696921702652784771392249895725286910331080431227494588072499811749834519710517239992406735869075262723472950343798061415219543869599834430914512944866239138635388531427412278904682821498000931183026888569421995314589862348877714722464166463758320325297841248274683849491075721619717257945808076485607814823721671691918752333496370192201413521966252612969100559441641774192140850098663733386159808706035376598121923386754855323732164106921183964443487392197716237964592418291107521048955522539187519784090903611254344767004832014631696339528198100634866454087790842360432089188227096170070226356563582252319597587375982330870290387325457226667394365280431410751220858253331357111259709500427159132651681403232995048334261236461801590940680203499558054427691359550562793181843965779166134974370863664957082522171755441180562905521570766628837949192353935285193933701599383184341306718247332456502156816924038995521842232040330810513738597943581844265237969872775387630600464561228772117147774831731210867546122178425954529682326999340185035635469049668792887676960419184498210182776605204949458715108789301006029546642392529706370979912078847369231319953435774111752664362931832678896249622477997046756932675599975704236234153207088280223889033019966670884389961829436477051935187640573869663724173083631279468701161528492146116784807063085053601345781084390383499424665987268275812552897848619397303222837030162104366523124570094881245916947703243820298896547034402485389679211081475145057051682410833731005337159303624194973422409155538485511217678678804605806940264075827256773703019837875593863575701144035893182994999410510523809703204197786732387432597490175780812866259587964059413380150109160058023149404409025376837165952954183670452759545256524539508298810136273297338181500294286020886183670761724695721081454842034691169404089188432554604989565482251060162838438414727385482146088856435045174957456735023202364559210227054389966902530257864389862150823787662226960040467376354488436627015366033909900721019710840258152828660396691464598066649935712365652868460279785484089333585274964561274402792151519638671084598269211192396558432181935490552212817089841066675750834281154724984511658972884222214934640679397596543424009014610892000266120659562403221319477454500963192654162115926599666140138349012758614283170144144824913020737790104935648015093593530907288113186805111427008445733615531936998144694040554531550556821884850015275657569330673217609836452429354949309579500429848367622922237460245850227724007748262679491430235900519873472268658973717436932524087659486169530748573852097414742455453844852690406672905058852181248211326951948085722234234479982018169644956533030470802252126829711561015894719414967792728475086818418108362397942991045703344908295438801628276206557240714271188549229436938613626420625612045064864984028450102766846534075110681751478674260426818346267212192951016938391573871730520033148117928766742539412895072159358531260095617762578236291721554053890578518600478287987550312773164943540098407989901300065875419391055708648352304841115540000823543835421490415980171160876959184601751966204091216607826934274483625744576788366542914469159440898176079600436995703545561256528064452222290684779952407001943082229934859890195671298481913818821922331614289824112590153173974069787120776910880122552584914547500878469317855575459280941112655554187530604960660386254150648889899017459804643786147007576919992916896620268123803948172890224751588294386802390325020086292447256707249693343912317554065110893896529571277617273692958834421919117243990916331783390117552316117183550638517989257019937627571541546519319687824096122810488812474671679683199642927472563174191847267150085165204811313500674407300220482302100065698902963788268536625667293166430175216617539713293874163895423328995033339858765558824171112798979810527200331649436632064747372167364575146417756451916098930844515725210300297893845035636920432135538090163788201671601309626850126017276192878031537099791634763451319224437050564240304710544679946698553882848595380586078075484322071615341199312242902786306365202743432218315391257087258165253601512093676568594217371083910309060349395421264922174702596611701830515550976099297358861726811427708042909667348521607832240519770686122497515959256827107238484042481185610688419480336237719236123924471326794799880274433528289405948165746393199809737853020888836041945611869972994194862542013710198736004571087938971855730758500164225769917187515319564070271371409230024028467346448461126626081777629515445327231080852000967965696774457319337553009796519711907187436878284446834575142220701151996430267804920415698651166417975764280316827925198786902555333611984736742545231353021984911684113679454879779897597684348232462169974418790101125034705314120785309477611079813299210414841877019368536000239960035762446036129034249797937355254613329727674123284877872422346099886275448559003575597608208409693120450857470088515572587658891378885797553026983676819793064681263934357475210119106700628243056495238277438893175304878596734064730527629993161712193206901596084067835233469665469739269866414786006909299285422328962881076599089015537771784129614635101324553279768771736064266071623931237403991230243311419149961449911090634488585926620583300953223414043487191944510057910829151600977755727889016052498212904668045357835488082350689862646989432406720917033167893751161187121342961578285336935275679468688831923022318673652309269476281924887928157036579607000098015848537012044741584189951562510828346148216366922274593287261725115848916684175054143303509110072763751514642020219213561624139250551566515581754309059797726094644219138257322699987441481192586671615670728144350276122370585577434089723292298358191109705319761863879870918673636180260789398504991490046955539249340015356416861390938521583824348212088381521110847762044391088379582135263024208194991925187565313258941362558192148627886288382266470851503876891663234462847661835797505890209386184131487219241193645043221361681242016330127019663328825289507716342470637790689660576750688860231966907309351209935192335372356318661812487799691603118008664212973368586341899266628636655001166366549722747153765355186685203703548481989896960929419856396869233310843234492901892486699244809744439825185127595826417097499027678766917045479632049754723799464069474955907843711233092978974617427906189128813437467236566164185933933999189792039651819522927571750905600686993602009884726195583824131431477795455885567193616288241998610952153713410866844571474352231823380932837503174420421519739344688083525734136905971238002354450253113121103669138685965413861247093063973519767968276525587172246279892608696610680941892889885929345193557298953442766451586054721439340590779565347087507392495260061900154821911665703675860974603009569326869321636953599523523709312130035374268095652259309133657786159940148415134689380147461821474519771306330701252703529378750946097529958208130347545010247938186374847768228718503163316129466621059949405290512073706334750397203293935433145824799417213733984370289584893111004473925723888939966726662907148720484601426259906215471377636334359247336047089632950520029327119688093420269721697276580446097524734457706699346834359253419628053829200786963017771631093447282449416965698450558094008585558069405133036662543531030461248034597074904842970993317884852417965950080192892742700148798269002964177917245623942117908672197472145161199689074695254033420739612364869957334070186152220634295736602274187920576041621484229402714832524769186821948015589420396634554600370351806316195608334195687959503150936194458361315814817720292581509318533779431837995344031623644283584250042787144791795993893747221089603206710544369571361352350506706142542155574470023845569493032851063659677399517788937348672937874595809013640311306164677155827416244802565280652016524611203564254455636319876444585832007125649688391997404379647964244749985920642602495050663209037183814756271441292513468431433774928015262763069850060664245425397111963839333564293254495749074904231117880788696202872487955841142446048894041008977924694023254814640417877996893373113110919177875640214449838012144826357433111847373329750972543566932178543265268094176235334040290749103496620696600158708971847130288559872378249058466744287543652664209614259434920693839610969755165234909343701927376194515474095889500007946144262526193727489718827300087660065322876526279380605383668185867402249024940199336351538807864672759278632014768988348202103091011558471781701534022754120173257623111836216718311462851345702136579147256849773080660500096958987487691126892783371051942472356638166150821313557305295900060379975715098136202014937572197304352905371456078790227274482891296549084077249446715278064506090665344522196500770856577018659814799945317402430681574462028265332824545648804206921466998950185850286945099408717622191260841723054029451697570750337337967726502739787219408858104517727360782958199854646303009784951341367632688679076958047636682478789272454541969125616866425480683493631159291775887414100799331745462335702154364766909445408500652237556796515918433493345088446045577763504330015418606192129007752262991492754903353957056930816786884084172213219433118589568651899984494343192391197836551686711319264592721719015287973502503854673997218728241312687165105963188931750535708361657140770670359631279624544469065934987907208129138475273446552450148733569178320876014685584877395187028031739433834729576932791318450808484776617714782536333682941149601747241438599489254774457711726224158099989949364759019466613160788031595593379796023230640992356363065272790043033130394222338944032608458861163427927838886925426017923608668738361656940915772655915444742826802748856243822566662777005469627070996188910223349855869646242114971003001227929275982396955291279815110575621765457075552122027002092573528295060227182885633628252616161138784235778104752298872099620376602910246343650193724443648091750402434493365582364900448722730277191433645979504303093370202073148442213687523629571613879160436332203334946466528030579553149239149474900875835189804454277616466496546494361861273842725812307561023673750360971345619544165080135066239579617236386289217940030781150898260377027250226437070650868618467629923470799240131320629746357044631932308639309961717630661416044169361644716404258835302875766145633036525025879273531119564122077978678129575800837886525732388545315873421711508458327588299903178783687159067915911427370922777165252996614684649628751376886484600057090007410927127989417632181730404045805091890751633830688582241259460961605050491458931647683067712024611274373846125186570601405218765875973947813410620963583424812277362569826650899855087565504068503152547976730455793913433081821697101285226733280893505750595938749269127110361448833841303947961645293817801671621571542492232744885542163110916142447486871771290106470584140346981857841849393642983544800694246297676061884528201492527514462775850403162206205664657227576783060351075559217998899358754539709481764630970301119425877625464870319834080023465354259232227269472198488479096310026125029709092629274134009355079395267534530392548502479946105664084747571664737863322075587089142476238013142586826083314799386111914886627178472289792374538270639741540790731553107386406037206504370526622093711199363210472509337411889430911416083023599293308138706380614238797290437119103019109757810954106163079610671501080950301839010135355185229161909809304931039138918121579222141805366316817127569392420373818962736328213196785742565437280135095356077803599309859399357690408804537855802057037944531118120582426258979391039571514093168500725612433521359357724056855412441414523523988986095887154880225527021922031572213520247591344062138490407341558872586490534677448120365350347975781701907990439890851759515940131155527412480794126860204158269998971149132931283386605403964757723332039334246858607043667343746675262770703974088937852276174078939777083186918669008153871126437991045842638426521927338724870842148882238519128783133902782774842155093574748041650010300819038310132544931274842248674798714097611169370320886887337555756029251896482057928198316041668209090633842361699264231052546217140206808212556707625023318534902044958841724493202720768946115207611775076872641218875158905086886031279885024269155174406527244525649911675913696529958760799347715154851723118835632718988759554889871557775320214018305898587741536709727351397019327890960139022145156629483782632719171974936860914367942716198192093263028533315477141006345860236953883042344164475108156867699457924874917960740482152035104403142801286378268582556060354199576138354928712991341093577349793976236166448811978515605324552423092689343829126325319885428059752362810645160066939460705941223086654798950498266299929081534494872415523174050170069259192417780297511270918605791711229526603440747862544467554920504749043413692571034517175580812318616006922423481959058096296556690271099771260849580817839282662140079580398097795155427267742184733646623969407137158673818896354269291349547298142913310557295068543507895463440337852539767040458051165443143765497490226200512350406003388253466042705734023624630043818737481687156009133818486390008073611756986092403430103483080447190464140978417111550225457074717654347064446191078871000701561181580214606100036970542732762198500458816956921643406767523323050222409159886785264199354136752115292745383485073137848037758729982405867722891056738126552109404749940638326022582378520419381233034755584385422479320611568404917049444342776615328825434807375519363250183605744126365573008002463788490741386918545810600342896810742143362965611238768948696652303443721968458849971112230547951302611058428621478302644337131114851869755248560217317970983278934582110992371323648625879175607772727241951929277883817473157059049067587094272239820054460862007687397359084209162542264757824886806837987836262345060635277072873066787838374357363863654604949000875529371010171924282784092574522253965271694930592611256206397282041765934756387368587041394441682166005160192997317890563669030732329079398786948672285103757455707874104167144213058611298933757070875701121301638565705984700773151927048964589676139174084050867359753263740703024777415076565671356076493208023145161787831839525098356821732611988367439784399047222249037155083556683825667881102608578910337403371075503578108304671430293011977152419538096971493028524399789910517957417403371315732085370723791318387980189069316060240589951662437581628992070536915186529852327491890541569772407817885539866823175990412622523220439465411941403897912235526036733063270908920352761086855873852482026993715099623689811873909376119969090399858528729816894938358105719700990204210967089182542078593358383164059372577343896558642594415721551881597647862103273920521211719050240764604157826884691175849991557548580568473307437074603317326948793763684737774121425896474779590101881792906515128596856649367665187220280389157854910822132821422976422561847471106510037604657764154340609719447708221774373092957613065583250113289078705848035566116838899862336208928516803700455656146817468480081928306669579020356665196970059588966737037695576059949131038698654316884867002958953229003437487578142203749026467266249433072624958674294453190030094770822587400355084114751469765480931682857468235463571968940129758907905792373434747522526517622535645743451709561238647616349739040652842335718470400150838238983810211820576198686448216090590561100127687703047614567638447754248639358746578033791982851515977855121168590859659313741547377179498715041858659255511574837830196841813466689380116346043502491988812035738808671040595326382200261353162076325917469619391859287671915124799887859287451953778767577027050774128351786943156516491177765351514644325484021935450342155621959156177741247623144839208229508516947060094944264417734823765395470289927217910160295461566969874499219832501196011725559426041592338645984734439123981429717620381508020205435535041461942899603109939950779098846334928528119293143843056102459355499020222574019879344776913013341776061024285682585377120997309748030471637623393496428250180050626492463797869190330611866599321457704537526227011489863041573690677594254417528231795791163777328675482961830385319960319059656216779478182945795523440545221566913381679533242305998885743003647748154011587823598568646476890576037306370139729966738416627567239832139707803965578546821712182327396066994267732565097935334505744535833009014263819507044691830059130229312079958316266550290686394096782244797172240163368942468170857800029239608903547106926236956870301681009051497894272122531061180838309941365087472518510379262071385698109130193467310335479439971425243393489501097706103726841799244361073110323241940286114768976205747009471024563886320973578947489098629255987307820406569462625407667281984945291627495998111392674643617265136520154925046407150728165124171893820583058607368464618046238897406456254513706590464097747377956218153782183993762297478676237280785945882135436037260992631917353953607939552275356975331753229015380125435061028936192316621978618732809400375478466309575473044003590619022051444912807257522315092963892582256181533603434255125431181306512174922068237750117511592250216683893425123387516458409956023726088867929988537266430247139813227952173733739522156589276206781131781742517628493425123007717336143852904750251974781412777976751326530690460213185703417845051762205270176699406238602942043306197476192676390620950830208041809267906519327916889958251300446002375668523890437094570408862277668051265438765505985186326547311153311401672050407983522475307887104579369817366479049862712052817559524836644034456578532754631948570764169223538147083138157527014804834215491418415740770978166397785777351325228342102454123263420493523203860949186082641943470808838642461886538283165312243044069779840521763740299853624395498371132013963640567475025398861556209247085678276894054402236989279177744319237956993189625071416971091558678014703399047032177560728709761713995065934596263465304863877297708559437041185912134931709724804829380270109269172934726490809527927532406168568183879018398753159931670834314086776515300364997320270356993086928075790809529978947495104706210459598659961557437195256300455338480318214773921552962702536609329982625715298100398603282792136991879209868107569642648031784196506803160159869482102041954952900106813331876791087949836656200764112396192297970180168376815682418328932861801871956799883765269844222342169568474249905549679690453726096040718920444910604956882159874110858449075852313219556529360309172632870773519948837893285088479591967668127306994940830072223155568161835964872030403467052896529748447647281404313938534071400908996046368931180913044359688353059692997753266485923168917651329041738387722003769305193348890514226347486112438898190739484675414561426086404598368482819649084253214523423262193990945325446442273744641315865090095521091877651611570892337462818947541291213144773702234812952022678578664621801662895584534611680159131544124840184182618221864976649177988850538807502563768352307564683669565288726283130247029326085176279602953871303550887098308210059954702473714618411142760858385040828848761776816996243009846250438678447601365499460418642306533309269099386612702434804853674258680082407443534588661723335904287915216079562863152315016809894026447930076517175520679474220446501399934939455071740541256074730197117996080807341709551641074248287179988818721519597763882135507251335732769302215990383637334080955194049642185827435399338327113598905335722514444014792273448934486492422498324834276695257268236801845631226925409100478511553937093486416446862922286731915194025277350514773456205215390747982518913018709417946657578715030841101732470813690829860287936902838450568538507269832251274591061626704752281186743373427320283362130336220596412857208642608392398598907126350283706503717410103402254756714415661783624052265546765824270037635930092414719769824229702629903227209254157196822148925089848659473778485809193523255771316788825857856199910212150003846304399169469481466271717925666591500707434837958330149706599735263765212103014236139237563279082245322453487058541996824739808755590487803824409000537517343362685684366356224303777240959410679593954191159048524437888325765101649253042379174172490049135372740615127868892096070648249711562410349834584069200560889649312263128548440876968901874972086372916698770245928937591278313544496531671180311262059225577422710893024483839768004625278924177587232445528619670596336217244068224222325417389039675713182277965252657437144620986655414126049830482667956332529453522931689733888437530035505046312311444738958490763761680500568268707767343042661234923842266298248583882665605586740122071357299834824379932141044436613589166080080159657805381901754476622384627631912859960951476810998333355515461122682015260147344888881815456424262557679320965952216021919618935583779049656618283489289048180068588902906585425719668120406258648304202207666495234560614499886075013956264214888221244055203806763251984921780348826834273208744015972408611595153620629732796944386574113836135055943974104971812002045732558734174344330887043883252560772680257357939035373974023359577390152750125818040582239522554324385097164508419945851963292007691823536409735354248537697311818698099497812368880121972799455083495163324205788319209379600844435972873630015282247425444105517617445705631190981525182014054541557770349111467851243949815985783852552329143436421999060467479817711085011742819534450958930840669626349263989179951044342330312400655575194408408548953126905212765269730922883114759618403205376979949232348895358690396106090379566099929685466676981078854220041918640197959966516412691304928122351763141555928099061633493561411001463690009131610650569275472883627607230609446011248174071199513643623651010464802420416026635306138959165186437532685701307739271758881605369503731332026539238354035371077650003499283003216739628034562561515041105001003699129036259005542610522576277185532576559764569996507748574805142384377894508300195894206658554788870971217274363661382408801361598385592757296212272267372844603322224894017281969187021009298338286872927294042207168238010734125109764597103870137083384251115917168597818082260310834079967771454410665760509972373492216981182977124831268459044264681368199908147453295210041282112701007113719643095007680098191368176525972071623265858047647905653693402059397284489308012106399021988293877900550841660042822438435366061312348070306004033625860507105682630570818108552557287687399524833199012662955651485748664782068883693444729629147018923533861230572188786899583028222542683347352566888851392738602380882064450472944228163934448280053309314695550717937339562477750816742599606443495419416673625591711972840970508839653364798143640119372786896176255818146458208656342214090962174592194586023153761735690696859601701190306402180335169470319116555571851566409074247024985110066475795905712259838198258667944360890675019703823654450638424166599513519015187627671299673142678524680515190052471026245876477224342416416561623553516700728142842604823105489018579315642100004911011631989651792106249946850907461799084695098424978171648086850857453244870548418131924231446261952201886538769986280274252947464491354995036178196821464848282874106346057379931840197379014795130730252779531679347603830958497801590901611044839825788512960406398482823821151726925295196896347381989717205071535489776034653515684527261839983947551356141569393263810421743795469695281215416359535089156198696622602438225166714154099346742695123542571784540505860750918121230866760761745981340671700956019101104673429715637748660825339541498639154018324082664891054851782413477592342811891954491783874236856824871685040375527217250303778801408731720022573444025410663247302500081133570703204330367624458298028846695316461171989467086504009295380999645905697908495661964089811584857556732148610754830754864572803573110075783498303462037158281141499789966323960438754513851298408680679461195169066299644566762555400257173698815135516366144586700766991679400450852161922661723264849749088490818448308788412286264495942582152382747780016456687746427902738743485533065477492634734357801373265668821368038435394611213635562545357169863436916000359719202371645008326073249331146403110133658804329686842199515437335722450877317168886520129498568327637657216775898592420401690787088493014416431083527923985953724304579469122733783233571806992291208650153457893938396016515599514943706151728045235977254345836563335404225904597072403136211825704108926425967485427245268638848522664678201015182763048105627238196556106457987863423868105936160892002145893134121035479105657380330373616822198688098055101918265614355053957381475018057763260342272434507689177051718787790183315663436054891184982907902887835071285512451892764932414952614250481401265432366101093781540415560892009437851886095135520465762657008174762591438792297729852113773450191837201032175295113926393244348269276222792336510263836255139104261424505193705155743563982522145458954661895343758161199122183281614475031169886979321042294338050982842230605868829523957548856342165625204259637548917887163232865653323108981346260999336039178583098882483031085205081262401054357963081290381357866586434622551586873309647910867392808568235084856996205114450798751547161761103639487389441051845987193553468777797836697819681454415815628900574409946162371904003911045117871920921743141206729274472721083578396371940133223852830638706606506515028425416863673349478240896247854788762534225176299352214727040146554987663612657055306319742800801489999279177516982194356088099255854006066749470972072064460353492120431993370602079424074647730274087940336226166911565060970686058681802078428828073561781277836267715819882928389532729694660306869076351482322096892830870088047350448830088361097506132668169253362799295188658230099663810726076281502005672894454013794519939305684814138305541640951485260910034028955103064725209516499351756296928964953317438274966812467895030444066130255768521174460829073838459111229963905609439322082739902443642685356121738165949420021808997431580633918047069000110685922978837801613085850335023627073288076561807020561394568450183515960938674017774485524483271965292167950336902430059355386645837297763785372268020888640234643136871403073222910751160997452333446129130266168487860909976787692038305880027887122084460049351672862441684536886626187052655851853950628440465634456028102642404489661599805341082202321065623902522230189679884934238064995636649825914530319756956435924129588356569582340987776694643129294962773729160916658017249696514050490653741756679135717214610461015416241826645682996872462285656500903057557120492078239988852339246640502932966186765206344790444391381255027765602380523956127129350959239553209824590784057060843641860477720418027406743046393898467835851543194652644523908399629319515622228489893665956607961763778571939706949052650591070320623921638446309305019682547847929749124398401898458249832539352642273370289654629221216751108638980475583785349852010492566094591087424347390583201199422924932847082621098978253299391176200958160626857695458006480764358788516096697527778921629390248649050274186776878788346980284639867830066045965359090417790675368943474888843348149921842676366960301277205652939696205860461860892080377064926682420430192645351462825097131262588734428047653470078936543353358000607816353951724757643610385170169589828000598214846709180700548320765326876687754054614284308632719851558400076347428454409159717787108875212770218241879338154925647683788333397706580739261547588220586963090357505851874952487170452207011286411814826756770019420735792022324936486783721767700660889391391670523950942184456304035093259601419870780633727192282189103391134799292853976628387587519492101228267146809089419149714972132148472753748016338715650073945900341103927868413451122924438820929088862237225091068452582590827366122858824845441924449430496097196161573629559777764588761004799035553408143098640170403111786897891498398441588909160415819435191442099188423243119798424635038239971018423896468107483759290038153270295989885804072920345759870505094503978346229654788569797961689207170261110185251116694709452822372165427903033446868641813358228714929192997868766644015637347047235319503097831247160918724803029018732049165115773388335845673999724979068743510269506185391330024931709004303043202410255818737179134992931039839606679081197906060190051542171671526541777145161631314583664263894059462178970337861825234381408029140928059617738511782573223120667790998420773614744045162358143536911185547723099588294846439708955796069481455540376660504474835100573806470607556333867592594186616587166950247418535538437937657074933624874072281863405908526735682244751509212260063158573663170702399637697540480025563180964342004992961137581460267517930387206879159525172196135727944712407448188965936469371416575024423952368317094899383105403533848263136333223297845006422420151802439279793543193905231234607478468959710848400407549611454991338042398163041729798082377151466455153410070395647581178162369121216718694931855781036916837146998718540181632424079915145726452328450511325276592130851027460803433835239204106254653174868458106105819456395422102401147876653239343651405242416692891563189798214802384777669163947372840072830528919448522575698954208621989641277384245718763272756163873267274995269282961690446513190172312836647646120283245050402566170567976825242680835120746549435360898528242839383480364200526482007792741035047452031662972063380056193204765292282269438844016929551524776938231608221862275892304202637664410686308796714387115735475369628968408547978985186781832388756909238920086413950865984798806920919516621760550745272954147386160472763226852152896732036596505149546626924338791769114990327672143090167147696734710665456091298289303665446277312864767883563477002667982264423549207721828027331611928149216099398270092794448282792542356958805764449462042045279224427747988816770765364499133421729396822451794983212304278977237890470371838162850562728813067394437092463618388179217331069716999138025570110262961227142269863111311196260040443104933811184087959897810051677333661672604233348949872097434291031098958841506056321095171317222657649208508139304895262624672727756486560901486442150344562746295578587861521710857362509867752844901950713378860727105138528324952617993267410003622848635454397621415177516069193348224650398040983482579550571668833013803023741913848544130057007234176129334299157953899848286635621383160581650164863506468882651095434247264576405318992169475070463048846157446557337679020508790695064708960207423654961054118289584879228097732650554409427270942883313693862366029819200684168809344412039375951748894205243420395721362225658641025956103506949785325295425123410598043387171184193221389277003223916767198998453443310395232567948610309124663679412351485520590265699672286953143667098264208868917482944654962330110437824553944442149230219465071279087054933631199341812111168545347177689178581789649723123639696908858597180100757271184009123702091799957265567898034834311755001809855090844653912131148711761783410249689117703475845326615238134028701102472843761926169125586598886364187803589327886976596900591378499811309906599254722441164574137472582515971754386070987934286788059061520871437602929048489883745667117020040479182078492156246778009996584759286585766033879782995622617433578837214378744930705882488892561128013639306514446837899059547046612572975590646226510262205376984839869123433535067226213762140601958847307173957219928104325419322001165079946304644798594293499035705319703624427207732682243948987126131457809247658468071205649894976935186394351094998801398302104519254690942740742890384145668090342209646455134314751072769793324725740482805253498196733841518716261748041092234023032948258122487460821081746228322540677159353351117494452156294837070266016532435266152043160055191756717211439424191697243073372992803639737994553066094692088338185255399517050634431466976938764328335021232170452284009761073776461953732233416776429418506232923408902961166515438609783536286834817086904060963875294893029888257606959324496377683415637882901036194985916864794235501188062403571957568469568045662805826108727600472420916100068038767238646292052054360483463694219066743922008844086329936990731391055545411667620139721438022614266016598120938987102065700541123071282729098889435395360077571781965013183716278099203288052396348320791019921913482957917572352587797674639850387913289500171505145696859805268056896709352802438311601868799217130089559023066999757990679984563868484163658479752067578690897448428605963162657171469729616274875494606575013477411899793079969287745847990736915499019043023382693138727072902596263764959341205079062140890955984394635990176528301081154421896586203957722697473144514946974723765006422991519433955671720126198143560398745993895354094675319673541434593485418647250456371065357409451696999271117928870868640941014295203115361885162010717755937128477892511384324033311691466867201236964542405127304950774074866987788796071574025975630305019327751470663942083258885783338617265884495276048683096232360489983974887613012121466192654852893029639251629623351177617037862575421004214157637823664573785088280897750781257810840299635063179178648729507899532747833965694170385547544237553574947785723728181475589450528678635079794493067392214947507899424312389671594228417186590728587947131413321020601063145369932345429481782361337946875919662261276200349721133903765890174899083155872893140523442732224806462176608868292530180714464267638534614666684904297748142973664763568702452565878827923618431856594941787512238086973272283187855110668771210040000099330539775026346795969749055335991312188799896614193728861584770187486532651141244334623541115807182708208917086440474218830925173512800829935980685630912199389619870261560402468480325296134457590959464041981404790928071736120851379702933342099978140595317218520985347400878521603320468965521933975656938237519409668723963980594613397013400505949758997472088589095305252662138673778738232398635102990563661031660308015572900898913047331826045344931044842154050949899482968420353990715216427092230354740791702105997248288506180166449580170468033526703356443838379334507030216343960346125519048936862773736390604259258858967667569087451713596462176699697392118105181022301364402049128787548189087254699023795573288282071156039956469023657548549715656309174893430226758157623799930423769337530106377423979809395410222255432654402684969762419182067836527169363046765960239692455529009609909114906992328613265338205397431297782272339700454413660920584186909761256516192709371668698797539474855840086216559815169619241594550601971661587461178293025795313594402979971317573237415075563056949413752338056789920713853759373291789305956241787646709178699038260143348064787865885543069103590672881959912122416352315320129422803481220264149406911735425266020271004798811734616702316754554227629954035435966281186205372600006058434342515475972711231414745038468742200996432625263955428829589875610312279618177182101915127383105100129996598703280191778059428275587259400585161229304738161677101453523555523561514154618144211701939530283949031360476325385599289681197502034300165658983351564494177637061812251768191776557583459506092845020337553150691388612938475495947981812434435156780638407507593542361223136344697691221453061964680384366127917471227316614252106890451697884784712709248026191663871897986441614570134698933858711298881118902101392552267891361453924346032232968137337194595877455846619599723357997706845184022496385527293540339569334425188152536681432397587854488270745158059970833311464621725915006499096242316239972942581989025893017977550066317713286095571099432586693647542721513433969776661352503943711597622491147637304102850045265071064851558495811737387464055178875227254680287786245257273801920640699093238802037720002629757628442856045891719979575987054425194539405665716177296232359808437008018481443971826093401718223092715622616197807645061117946125578752201471563881848000580225654380966258740728631237869679573797032653982435437096350169260270263211923542180042848644947109352828048612700215934158645954053676782867344702613869280178015171713188706192367435798486967024836428435277599586750603797356039967593165408064137442340887982054120840024769582453041312101654500511254452919318844374163232917440779197932365635118873548316919510560660981403758031481887252832555524731861480376067895236571948622121184804861078114549769725586217240239730575815930438713034063721083321372720139966866654857992167684076725144545212163337678127412855314205212810614067317911450318497915313280982045225646894064552970723125935377637709865278515615838768274899298279876726913240766113419062317514609672051618764003687138809490232822474385003657050579185650220079820485606712866145565679536415853447683152784634434743337135474933623999732548540474401854265510307123112527304010417486450900398775239713905108028583778702657874997074028055727387196219544962954118258773010948953178025961634492251199141398443323666495797451092418340214787583265647176977633834524442510375848510542297625326081518408214908137109733519660098794448486036307099297075108635493343472186718694881109956369699542949756011635887480771820359312071227928342104770771230892994735297364648817486131151295995145852864922155605165335662805718271036803833993184260607066142079209767549336204748824201936393267934137706758239886223414840160751589379771452983399494819026161404541802739416811902896897586687637287442211408505508751653518546013117017305175540204777777865583105742157995362104025714855262211569944365358313139109988263714903707996749809890016414701855604242388576967970662701543434813465713806844014607663611288418800028519431984441703409830956974149190042850545884876731606172845321169966050777748782361935434488746524448388544518444411496180904581638855401929666957043096874322793099217783860016537504873799586664325379274068896481594875752729761738081727178809031501677001776095569110998262969060386261445270477034180644104676392154552773184986192881768501530357966280230031432839196796222159925556568986753391806999705667397117220974152872279802263315667389616282336969047048370980553512283567350021516000246929342256193179006219918132274183360924863220592207289957291377663152386516204206187730388381842548711908521573069173439105873318030626012053651120192804617937034587388297700152306773659019896257678850718857632511399520191105695201358680603729792505988313062080120328540432087789251043772724145359170026241268968431727181315583521488983508642553158148770227318479607223978931904321946018981202931709108181572656502591920272202666396026843101244503479971088964937023920320472407315251161041893628635211860147932837037385807968182227451522971806349093167062923026341419443733541725417388000905324789921715126079491137315801852909066294534508701008814883777140790739906932745157266311634950716028818423628620665554230320884030005407477997360400930991010367975765194919866758707752850868662948679861025015490623079867015244068090149062427278530223767166865939943008725696135333725694060694529281222568005821660225972846698332209336922197060423828874317995029065944903746706604403046233939110599575205696031058271079586613234484104504859447602099713778883502115655504731931297713427126171068908293516377005322224516776926562440346855866014426651199549603792079790172587732407221943589783021634746407415245533352855958091300396152565721013199876089054223755056301974177945946141214390898080183569199821468124491941270460267551924875623435039893998354277264586509521953653315264522291870531380471447131579443768239380920563034103588832946883387019192454921371841459242252538797166467674445872199409468357330936351345605155062414728999001461983865648625766643991974500795273068706894504598882841481012768968738080343997056444486733362227270077888764963008357239444308261401659424596694646759090043967279054208973205799400899330933926123394127633384298667217281828284677175831051048773739370542860889694329280474047911040459935040219949544213797753000488301240759217906231814538341073680172457105041329081667575527969530581917194275158671839216751740875059651332854507075250653085289705512641666527814132216595474677943444550928576609129590451359926968241353482387483602336706020720560463514489557283006171024626644648067494999307930958229987280660853526293733108479641165416733492748765193134144554538101120894430897075295648997283512025699552586792481084753684927500368946603635145757878938824489037099030709436297228635436210263163418014798414764177085489695514933954116878490261951684514470704269764294815229595819993903733760191255839010605503790538163821584601278875112230652712955128270660490513525575407691788602909551833725006904159006011006543997046798988868544292061289786270674870329097628378240112270567341166225301133548333766920101350199233330445157965797495594678064125305274284800753175254400045438508787187624175250419451992126750373379020374936056518850236997295311462013696158552771821702187800778975424468307121552418654094281638591347865308469048874298127534104093398325716994303469364231453998574494891415466139180074016826638874597892667919572233155617936441093804984843083498212277057465015689497658316734730440054247306246215936352951182036666569145149777932119455669758142984313346251291198499708432412832264515041053553386744739645688226771618294058755753880877406051998523748204060124758705823031782272010820277560033661603115379566965439582696069659061547549970731683882385421115471389799554356096554753486328199746879775781822561723884042304791433136395763967791396175188537356463299273471082119040679693759790940284177583353944121082460710300849979175721406075495756903448957063759726469062324472359634861268143270954661375061767596828860728228418425568275646866541826649548381137727459223047172481803735320681923485682073085736471177411157841950340967163423776727193891677263256528568210808266530962387235474356000628205814372054525076916274941938902230185680386610371727857806323542370633608423162126484385745864392902914585725017164149998742383479588748804772964705887412158690342399449280031023769566438715769414564813696782285803311826345142911513692584285675731818893364020643746853310899247890674546616898004210247717529529605102377813054120779048255281736015471510898927353368400166911261012546021407529673211022465981512563549824435046011604584155930153643818728746932289358549172177807922583621948856730878405254649181716442980723928495452417816336865497093030444425147799191846489736712121922531645326244068221091659604937997129796156819498122811379664366640140890818454365427394523308624333273321479707887979245358453788983907876356758253525714203506502587094541594445857116067821185978219393342654124353472284083045575881205847650938325805636593113127485628619215513750437655795276201482775290751758939713172745073744223064024338578832364825868487591827812086341206569204168673252343289114098993253938233377344139419348264726947683463910237221054667310371907545494383754320108494912250084265283348732105666465236857163182343450820664792391077747190577547183550855952234612449180446932534438972318844265096269463595693272014200785590705845202513655347747629879263305830694816340927229036026095173140171585535880466003191371261214613033071987236087893300148678877057802728748500405707922433742670004284745687205343867531532889615140018256613584711513583917002797575942737634089731732615320220992012233117509136622816430815191791470713472297383345837679332379305781076345104402876177307980034829493059606870475718651244527954313364969988493816378914952917144602579731278987156420070717552573831663384220668553512757254067957271071518121238268828131591843493546257244570711338906343960137044130831776247328403236653182766506560828581773763926145751855868121250932339227640814592006144755246375970145833102632136675818923318347488709713593437415182169384721090332425334141455205988338540413737078333565632493106952904064831407102917604471171816347591544779144188657087313990738744552441342523680240057944323184143354673544427458487077767356184738079235526786681791230290055862993078263865912536682447751911602495723243131438189331229498987941896414577033710821551406666662804290261735426824236979657390255911407728148871737314769333105700475387325867265328953036586518430565012260654233440852692778327040129246944915666648393777045437173337917283989190413483168469931764402226181765871244693147329879273087321736023473966716754629728306105348986957369027412746386091219586935145962171123707216227944543503210057449897715188615853047043852518441754245078920338167050710249841414303746498901128120238766988201798966133395221992644043732945402906864330661216993225471719131785422652848163045863411200003953503877334701972149825899405239970268197478358652357500354611535819632297068342971724025363574674692355420094457365789576545732861700721767923156875649612471139478113802810356983704872315843538981877526350985935300976516037318268519498692270018212128426831372511887895680308166746782097206940302818075261357490839431021840501214460416611546940474698562214467399782307302270087402020320452386134518678247173705261542647763216116850623822922338266008730181916844152841110127886514645702668922907402728868225095692634731221561159386699102166516054940595801343746780952632693274049062402620521778605322987690167797206402678304409099848298374692831279915864996341866939597385041084272708853697860719941529395408645957547652045184103536936388670582416522808781202776063365467719132331035171760322303316510573973249137461844391082208443210665091900935325932401200432933378552206559062428173501833484272732967074597178466814053002500363884877849835024495465221497640887861214769725746910450813680230109115827252259743332837070775678635808277771643115245635856712160524653004498018091770826250351336176022526571027347947522143755831464955142544977575584699668185514759051775683125693554315676061041137589910114923644483273031248790364869893465011501553543015627679994956898433023324782347542965653950807529602467362189388087660257021880747795968841367974553271172176667828613349343024421412077341568904238979425051745820453965531814873322248668108340934172808437923333083766947129890441795367862460568190517087962264695736838767037942129153095997448096742506532554746441293849959737215171964409853506355314632364542899985359058461356589144295421880238632534466670078944443540542196612452570494899525760247142988198979966949547721475710125180287863017602796814111870079637360410018376999463262436809637085224116589141001340798982956594966202875173650707400024402713638726097174055952284298290822608297280521844657839080256136790932852868687505242430022963078076606110750643914127732002408070308576802608026159025837818723375756353282194690555669912035576830968955246286795674924312704030419744738623360930882383373325015124467671195554194681858736438942337272819620743805708036493523493894738672539772338262220853895688304414500907080845351145859243424238907611850828299029364740670023076042592187968283317455867317644205615391547371534428797519485649977983423644659390215917123870536462370171130749687244265379017268279986839269795766097310610442049938535380817759411440828546389715419317156850899731271833386072064300576326194287367257395303303309104750972578069122147933356390699286533635105624114000002746372518840520531122994228335796528706107765876550892422927618826320339214088079555073738393576198266246993502095925900232041399088642242763869590846663305142851424493313206449535618769704969724028563849526936753752040335595978437370574225293947921744212175340522799843435093800139920648663891082918300860508451768273584776432546066796193047444774116452364489327266684308417845803144570411126045061522311204700866326775450865572506554889532686628996193110494092978207193050986098665274499338416324084214417378774785185287984076319311599204026289574696485587063535290008014257693809067043922713636403195523610047761963422355375395760885552100616851330723255410779886535350225621512793174274450490374067361332245435561150288608445010673613576101481293742762449298037475600818178760580043576712389395449174874659906856474025298262259212967013007180819990357102712466551814806034906198172233336251977248545585428953218802326533729465654826622627694287398515143347810098504874434769957971585952049269332482835246006241652766253449435728375733318304337019220220447314845212610350378270400609448716165249205609948193620870419176299134103928546504603009120996096704807162928350450439985065060664009734075244048349675707181744233121896762632577504333724593585296347171889450362809863865321618707760959646866442459052443103166223394584461680857235068252532933999005002106649307150554508359154297215626594526686292842016180221746413077340280119191776278725495873016491700653272947086702430735879183787810294202015233230654024234070674603614482578423137214993093551368282715256543641675396182138871456894693454553806675948633470580015883220806662857526290338931594189975822224430360842767081340213035494122724483305676199454295010459898460328329767987141512028283080515216893609053130636848095190292430423267820760782011989570227457946326464329072870163983047651696259042837086738404765852246736660017670713339913041224338750192404115820748157427318059582777676548409607200607988116579784032399735050690884617299180776616818257534016976561082770049769939565552066976296685071495967745652147341100188174932390805438425843802012018062916708093599541256407423154958584931026419185308306196978471285003031354008625680105569626554762786488912403261543460440311837193009795923437728687246632801058922851764625760622186195314747928531564791895927999977326104079705398112539238359531077094061789392752104797384563928533449707537321303546063410845589840372629586192403985009451025514228702064753378951769332596709976682969395410764427059806621235842389518861985206448939799433828003135656414932843348030454522314501427919133937532530109574945480175367721433976947322813127329801116194116913369556526296889845518873337285514033682528959050535523113514530223577935910703637557842004149855208270801797734690492192550229413126742638909187468901836050328176589011911441234220366236779841782679830233600672844280182213034053483384574054844618231464019131300073195931928019185270688986798940598388646367383360992488365879872551697161159358235255570845714624655947726254825493152004691716995569591206554213650809603463348529190796018582188292867256695169835719386968795799761235443792652630905636310919206585210417002734807809791664998638278014563797543425834379846926535971290387201502034046937603149063399465459039305348575461774043507537818286730220857180652208336387568405972779934738547103728214155900881970106935005687227000480609130552687023075338858327832863051548535584442635539819480967486040357091886516148143071483647463210287977901967627541284039870057381308104843706495342357196953599012450806787036603880450198437497945327221251446368708348998231169057574062969053616095024009976683688931963639519727157099678364965103363300393342654956526897177103038902815340676409536715465120186721360064475842220938811271592536555331977629120620342653168400956124335025384898740342063377752014366237362737144904781360166520838148923586839042089780591627782236158861136696022932738830132954229905404885330515753431998324275114865021623356883587224061204528806574659513972941347535798830728854827678154901364416066979783797028442697458876355407182705080412885339693689131041487057255539742430019822401842768046975331718089494138014848580709473679825195202054380550112114476784614283476485544888899260912023706335510967764209021217479271760453857111313918100580262620323654489263190879000932051620101515686568130221640862831443292029804451540246769437733589083466464680663239365543034893831274523836365564128912338104134617425673736663012966838963813119285843203305195901158592565878653310249630966939319254539364250480063818176755711791770166038423630340673512495971819783507094498242054405429237365828999395404726805103923788279410847738345191314047496559854920169096392444681319511654947505546738090298584950960910591334841888163877584360006459666401263281172422407579817267943236685895777714561382067328436743058618493599162813574806263554833318178762239087718790479975579379240360747464776398591557507752221340756328075391749994499790633290164789260854352258017769501434139124779776663636623072673829104560091642956533259726786747002297532428151791103327601436456858311965902942472723794332175339629233876642407105196342101052758579236475782415868524876219659940044842359297372264486900417380652277314076977110698259037566082800957394676936683323919227929821052483519080212119374658218912587483556263712697060232593269454947342786034396900247425545991014060816863453455394115888774613805655456388740715827016414799164156714786033008189301183327162193562922161868398047552689171830337438625235169585624480736701822881358388195368577598378542008726247936511979718278251877287860029183396395107029134639005005138719581938786098355760811361111217363133531727149869604731199491116545568266956870233391771771519194706280301941135811748281162405124505506370414803554804109355115562619452655783442528407243443176460810598173259684566984823893402533969187807305444575491730729462885718842898421016635582404203199618668851871450190300796717678419354249076114713285803839472304793281477408189054409935767427443732717074000113553146416329450346717246314091629077291416114439651688868324490506429904218133696038221158489128684283844394050394442415288810990996850321875577697047603268465609955187403598366606620839259331741264636230696244874097200580325207332592906064301821585098445076308713169757831900725916726893808269756667627741658564929591425225911629112574332306761813461297671411455831979383921165780136600330844259510475696080302555681332755812191619683043153291066833798308344240807739567794461036920889151659528920022852019081471337115360375917430601197293277062354826762516993495782429515267098513987392646678143133494288356265501066868838325530083891422394934568354532244531761156239136889707957313106137008005668198721033345809330153574498471227449106415434103196671688172565409725755720545137257914599009318779692807215596353118040433351894696715040770508648669570268969015880718015165856863659963940344199464127973497192640521962578582958859517410138869568136703498250786183325001073494881973223920111751039733436309633594459690202340468069447009849296390508134110335011153848467759271546395503219700267235303086455917808578722570900126825488684360348823232248014445065971086418265106731241006178842725188939381699333468370026330957411108576867629595355883738656139080606382650323263915259819162093331321548595573755869629918812721419210532291903996371103021692068805339406834032958008514989952304599801240100855758498894586128876314454183721549498124803083847610484140646206918935881246032682817017837052091914475994961308640096796813380383429019128704978664590068891761080061802257264307033284950164449189142344033635853033687134012183984622581037710425195025768584559034819877087133740227471928424965638957793401147118848241541750914602692048941731769021785024278612716904075721337920029161617342543755292252723988468176952563919327690078037853960405588683926021632272030338115468525414723764893014230391823233711113450328120527485557573388109341761978868622134929079836531929946879389625050319407602391188287456025788048883856227985478449573340320938899011876106809198998979096455402741231216919496262764901399357972912188701869382317739103662850892021654752354002353030980813424709631854139152223362697912506386654539739913081434847711670700697668054049834814512210454662323651367079712450626770787639730845150653282489392629832532491335706092768607706794282932420237882020295162419514153083402131458981989027792983810195393336740549376151941943212778171095124018157740871373390345330904280248177575093553426306702472244150969696895381301607464939510018416060898657554120700312355767224520407204559776631675388302545175028485320627117833015640045115914764262195447843228791287878773879762504086291889148774762397811776298858189839885378024612840314317752016441063389102051838988341016332507548329567226904399857122310430275106786638874765974260471584146003347181751672748003955152486319861144908428316950087290047465527667179890697115942556500935278496071988323551500016014355963297458376900163568859863495103769130166130355585697455772765436562781352624995075427244594843811567702429752110267969949161522788492074726360639914496808940120420941397015759574786077673415914877221156242947733462619621139603015141658002271806476450407484466215609630347296939411461088153147878364789983878062286539421136991189204165264638066953974969221921244356163878298605063283173910640673036221546304417706839616201373779077359751719602353090183739955621989020610548077675215704310806523708437072347371170129702316951211525582947492407988319497398522775913671754982304438161252986298711634985208377222032951767189219782233808250219852216461163475487882638650040052265946427859754214330521275234533871326193654541135234038747900192202681473501342450372645270996792184845705701788743807173895049652897149890243347222085799406844490375118311861581459127422977606995775789810475050564289569484676510970279618303740686151134731514832949300840118206144732050486135436225123477129344398491656710492365421379972599788463474794774135594776293938883805412950634245195831536040907057031468647858144539163988446930848118143735132566112030075467158026839642092878637305877052397934266266575128619604284796476428812339774264005864575666185312442085586321234939926866346458014668039707622808762890561626886811043280350724423652375608282654717226463029254694184183385390965586174492450948308879291327209156564784259285920346153359077074972301248161920574147401991022772363535048676470829117295426780529685115072134480421287198980902080109477775223608401950450674714096167599375293481894286558937478436133406442197843635678083957174705980054549565395213879183756588288487449261972500285934468470933986427985682100302217567923955867170966041108923271025421824318621387264523805907080725760342180813310656445458845441881422035043748358607957968022826867931384568798355862594994889760455262989339957517658067983496083235485829510276988850225398455543028430567497360470483500966975256389094750652035412709831164333520050632297309073815252007923221307913174649030321120635740014094704499779522319515578471725023628258953683519433738357427329374917589785167223468591685657305706982381252648062419564240228359730748666530482090097726298317496665063610620520081650797934834161772117570288883140220333272813664637072996911059838379223143259947609372611137768518893399465316152110058445980551139930689505886229039416277038753161842265190244100110712373636929734368686820360182024595571313975417737885996497961157396367738656810806111305362484497213271849286349517871194314649032496575660529384288653705977547330079408843633461337041637235153424281337687676755748757787285436505476368166724148116550137013865270077801217167084299874310586186717896092703693921318553253002942518992623900236126661118034548125839047706538939073767306893252628130799274413710113119634389810792651803426028287374302553904145796400485059901663586095564455404805494091642789846382052909286362028634835315717626402076858271349248806053770011998284796308506081545470931733965980872013355977484100201282648982133308669701981438660377010645552046977537554750501760859914231864021327410687067211879928291490893529626845431761253102119216613552535319334733209912260226987503595514887037013282513175636082006789703972338333048995321441920837696612587128957042261357542830316119248273816978293518944116115510117689036337181820306607432197029258981707445779896635355028382779269437750749720118495210450172935612305783211874318895232250810241747291057608016865406860647874824667477654645251007900676856005527677183447503341915466043069664181576094788254339137182176151120752522311188100049101941421354828259244002374127818616981014199008627563276032749826131313522924426270195345854331592091730591228075551786161357324149814252055411623093331535228253751093843179032332467523983796289794724229285491982238426689216229115109296701909590544354284408658833160186977435121105812898914145903704325887474575687723000590993663353012513138451959209830673718502925792734096517701217172901857022314893648261554036806699592866325932420051389664853665059835665640604812539723788634085682686149606494325804581263037258826522737718630147828846076625519069628310264963934845882178358066573786264213925462709546682952145517471193825200910459535452575411056690627482592032752262285950190134094530774642254639438344055495046045535279860085138119733221065924151724779097502499105985233020009091913358084881608209740560516083419675486236554961083739054917273489391553730195560631949423496750059538064326128498261662246105750758087135687431822963422204323543945570551790115728391311150210669948616935932438220930869614459590159754558206620262571653098747690210963435577428487201991963939370783000897620044031534164726864723819428691739076338058526605348744859100678430490768777501201153047754333169455305846316193539235707609750422792619276380740636580512170447689503528146942793795832340393790980380229304066198217305593362214119960110509043131715522253846263295468218765123924480625851938321517003230517269040325607855372779900898150522983394194594773689716314623576234278898944589103036122676760300434107184277860088307262999847666921164457930809311644268619582449680763050617616699957421152023424506843550863383873837111821875519051363627123386578766016799647254299782014687461316405030389388704899283496962155822071009326369243346534513584805142387386914463558527159654290888100459673843312509233768113499196823197648375215886625797669334962754509534593108054256680209544748558338008472336667767456851131661231821636987295717918913718565735600676349473907189556234540906204924275551841917279038446742628786093452152670898061581963318336143607847678844328548791471002636820784244772990301511209173026974163648964544118275567347582521028481957857949280034100623959032209748325857823698892103093982524856486441078045355064414281805889659539316127663551041463149932281126964800144881948257222537821618082751864857704124693163056082242753784449982812525460690437652425947330177137595847046702775028654504869253346755029664756357888735756815347959866070418367393643095268092043385281291231321046273560286154215130002216025315951685863342838039657481000624089692170840428218490231404749161467500721065817577277271404305099650388338068907473137972881602326991781127963292505120931449240483348057146676058411863004479824776553591973706368554239033726071980488650748728220405331819324779530321496660220953800442992081043223417203642423367777045515511636546959208072054944633353279714120376107922942122281049556131386539040966875300584100657287076459369519223788208867585086762361664632485489084573351471126829499562967360370993542979624165368168623831560957287073847405292492843104771488013306531065846410031744851292920043345261515895649793937322468655351622675940635707053703139107580104676551349646628082218543013410192947983467922221360105563999372997268500737062547631913560280491777553102769318187090049559220898409590244999566578578236403934202517765998649641858412152562941854587809339321428239413882546618173022370244471927210960299345363440534054845760058158697085153830760039331537505346090252917506595386756925285339786361279283809474045425598742090855989811350929414500059710203732819866176549962560997818947518160919902592818724664702030256644733782268942894491234347760201912934946520061238928951948063830300961283951621911002693528755709571832169663366192573310328223139883536169379257140440987052877721927709495382496187953204450003436104410441689091500340470476195994556846726391961077790835817621330256930387793514462059245685045508856093535827450162058986850470183324454858287475093495786497386535634570727319144914391317835852444483370154137376997511350290166618543696477110858562982233976370101351806304096932902376730396638157023197961523279585799083923005049497902399757929846887348237214235801876575460149926280897684420424916377999473964427098652304434012189181679645894377208302586500568693489728738475912939660878340133766551702365542804292251746474720690176835735231421268135190717868344844158097405988524228815004572059177556497273659931869264535624885602474164723904806951246273430579105983946182638702006404401970087463350649951296430251332070543190292927829361938772411132852049956580133462815035688544264237346090281473768444194472463452618231065336523352889688928867366176857973781704917194608314910664091827496984326456091071782578230806004427300626565588153753483321809199473077457044567369624483920936751720856488898630479392938941055502681070458083382339881802469659140960265037529683778294302451984097475079453075712606472016858090562358760221294034551501062574843040849714243600927666442830708292436676601729090159344673429154530793688433316940629259136210229394561080339542868367483993187852048315062452165556822056865171657613137141096039461443995062167021759862543153784799140946570904397679200967416981177412710842555288497150196481492558315459538257301470639856673333042217483606376504833188687420251618019979371930572213151429592387730983211988598846725646219413035429749314438040002238915827167228896806563423316901687961902938283113933705901715952955056550873323733636949120542602222354160299822336465926639038027005484108722729619195195512891619604204979399774150299047615428093504274240319009205764184657471694242805856937976121347080692964970304961948326095231627661526738105806847513342654170661292326101711057208114256717962927222635286625903182119905414250153047110723992959356596866446516972208403843012536233918666564677598450102910350771042396301331070077649955701560037789012455997346902079491314439089999668780183470827048225784509669859352292937112260683314430812393649864998879696634712509543252424345651847350175122571140584337753293791148752076649744568848841144330340916580500480371038291355861332881421424367788287143762169931389294853673544072084877470905989605386638226549452876730395639611024922510404844690980151669587508192648975037918279447765885545284145684869844052709664550916842432188259471782517755366073272586095027482522055998979041921585706817487717215177934718546914625799916723254001073402980732954319183340630357368370236839880107828996972472153280355350168075886773256263723855544998468163912725888075025757550740452008649593233818319194298798900251673629806056080327297543577357886522246252254514506133388686314837418641711455466743892096343226150988942537414672027526973252375808046678463685293087652706379996985541859037603637345968215221674089554649793125479690264400793404703827570376260540828783307300563637580790683351423100102520477928922911333222522288894141242745521726627422519313085182159149217463811356346809192239334748087675937768930239510716164558819554623602463924163177562127737200186436114793875031932614908284446301838503870365536096953764771765931625866200050948227687892321284812583043730456641117269628643579206773690115433980151519092293938355304411409638369251972537413131438892064681170609918611242403430194929093651736086069377669193342579989128767158044970603851072667980253372482913196274656889414227018589872241927992004665174016721925093406178878222762697498818070901593188028542794589144365501519927468747451007779882091578515549458440919331087883060964999463957029076267010399030144503895642995487824769426912876286433064448375631685091019615788302425991089428748258590064871667456509263203028109896610437705221221365870288771501143786858100051380109463842349540128501368745933465360355047138663260101259857922432873078040962734826371379970257414640756744814039245318104999458366627722587531631158927303131526855678631741647075775457257093692555616380778207843692644576545168110511134201552982141820171638852042899442020524340066114965136098238578013848314930545783872898888016488906118016853335200320816501872511510316086246980054518096808401939498749745271352580601278319469972124281064471737837423344751333832478427363733491320171566421846684192180754071875125886442565914567208670766983962322018420019343542413454869758203126316146691160985887064259181866228535895933533340669984305512231899458010364438061337722731129057366313701818331920552482721300670089424393577389550008218261768954617754640188855914726435573819462239562440382944765524519044680796287471980547040652231527902768781966636561248157708471958376876802887542912194529484560989885673635753366001912840891600073943349132131753101639674635917465535536823019768201056203325351271150840763754924590590062702862856347022080735533709843219148103831153155554278460421207879223429162256183886339861307280695196754169285594915476701866679216963699684368917434070547836843815184162983679189511198209904643265093249646863231954492307144249921852965743646957576583858873624460677862367512506487251336750928605988014154488256513231451141539071724461763044950899062188106130989724282337322484597095517718707308181810742755546967270583876130330003079878604012454075279471336247538907172777387281819790874846364408646811166816160895009279292580451706309298742535918229688204713508795682734103052496314303025287072284416407603890924829638851722258569890040335780595817458034631459865792386889253264950771111598581604556585184520401908982357334344919304778265724439411413143385831576164658985430407410432510721101929394474066729397848773742745902526163043062821966006651370018078291094943358512071270408768771941231873370642564426760735963396247078637111470122325602502317528592802626180606133353748892678330865388690682900342386911710132307249332145490238086807642354517830290449104012787892862463519781642187458436704432675347488605435585402432210630662810180880269699449844109234519677260467009607880868056744425644645188816288115353546157097532596534762691669377459340168947861549644317140033753420355152782610997877382765536093070078355802345761001390478681874477595964560388350945561980455893267678576994623707283631500029736718292795336786675591056310764569587843483385131890248742308727973240056389649154011585859769410248273702263225149274433533952617951515623026375481253312460390123675967464752941999562146024975359414317577490691014639261741646595304923041760174754025778254040045379138231220630157203551286369618781436455214548107028137847843102269932591525421686361278785866339330957567706201395091632487081395214369493736043537983387292307345825468548387122923941431924101376419803636776431285950855593338914020193243451219180855963803798528033836441860484073161293793535638876791195502748307651239830655820865336196095434750563606661519835348471922842901547734288800609412505561387244436599047307068493688661979065260431498896174738421694695097209411415890071638131590401997168325443669312156990100585887381858643006916007151975964839794514183708717012690522279955305621627786230079829513366089460158642808997442293389425663864279796684311845991687211603792485222386500655434069519180535568019434961580842463418870893457673075276192441781900615736184504607512875521480198208721584232945624936919569630814160708013540652639388209427666618111369884810613004533785357330780480174566719548236585952409369385520123862733069301215748883189812620903494408040236871937015808167793657667869164513685793696829524841779371040876929782862366304649773983630657471310464155621581530542701595270341147591531980327596961312737103815551882020156158757906116613959577711996020742608031027393933377110131931258576074458719798825260825229842830553924780353187860708572530303885692668655546490308003380897521613562557199217330999818993243686967102054642772404311361719528096394262322366611400910867507921587833886648381602296142773280870493308793548932322393028411289965953786984768930559849337783350512255287183338221905816801017177818956047131101320341388479900119854348081699896311075261049353992453933285212750462439809848998061849813589721709226966957555057335024393889558464288470504282628715480566205716759159132968080775562294024587358400330041746199947558920539023339953257111094909426571103053084307770230985884355266078405898773334006348138478789475233399603238154481583925708032435839870274596309112432944067187429316118723529256750564973220176146233172749853880873020292137837693014177752647616173643515113564472864283496827624586312012045481611091462175281249391354769895991709606236428577913804564122783792771594088510054886547558498352240507655475979444591722632984204718142255771363701584490561709852708749494276638442503822809405648994146364422498776471645818529685129829089049105436684026853474648182798804337397268919415551305761586948367135747843218173195203907472675992199454659427088983165896953331703612531676619810954016982609666665160303438360728574088341076820862027131063486446163187027178698805009659380838338152706891095399009516196169465890837062749264789049494316697454041675041495216480597604307461476954191636313539511576174569852883480320410370286311411910548540213641177236722081096889569024369493533811113565649203342737528499587202560143171888767024066855013698722578223907747576153590125590540786894763958615522330916244082792547186198420412468586877046135355720761647875823186805798114875263625993265626970396047904830912394092533740431901893369082042475308305282149593379410325137645732560431215874786873536482454685031674765675536069638378753401641928580269844537896291535989840478476765811314267999012125666047297262357140206527038454228795295858138095057598216666124521405777096934913609893753608423643609301784705833320349145813226571696791335067050612312747979850332565741939014434759361433542421131525767852895029412143176998469853483075748502476451969975731394034352599203991085926885933200316190484691802980789717415944486252797432103696682363715900344385970787727123106021970357487156789040277267574391993297735854312096231805597694969422919711983049537601132963856818245845381449752050514093979227060898164341233505745688440802449623467395869835094239348108430713541469991446165615476997563421216726616409789035123302165241325397911324508416912078792833132258667592186851090698085899601916230333458639427587549941214131884423528300486801894353482324465844203269369666810814725307623713443926568368902922592422849336372443602013837766313560516617120858157084798359628517979015845058769283347144880610972272953399157401618778455407967311413835232101783488775573946064004683767266831958934438376435008131097965749830728950116990322543777501747698017440243630438054366151298256959787441063225162647443329927177507426213875786394626651850583185563734798862715107666249249417032829665599607208343022595649319146559703262590005619114794163150722084080581990023670933667629216399535301091839450127283134540509351334083019366657640713786618624154692390745739807918837850899046698505656382026898332685959932552996886948672323696180397100903816343074379991907560960847865544632970580566345869035993183931483093867766249075568654809104358154000131887202405309528702849671364272020812308563665702502454881199113149587754521047218747766762361305352717604933096227022606705910749372847307121152685434746953517789186445766824151989332177713783136754924410776477897068178354071857692879353929849181392738529783722876198690314430639849397578439524008361146464203093211062969370945463658007378560868967132171217673522516568152373669654562951477048085454299576566408968937529392330269801689076859455314988674296851025855963471527739368769009739950781534540427168834690720789713208304557440350844316608123983588836301599050318978804707454897707774493848905232989209756402006412409675772855399691733275391593140576332087726823526026536174948337774466185774309499197875117332937116179729223438096758728016329982607694299969190553201328077824920740410201991666040464778058513578152263539925761874923745823275809323507283838096176122039612062833656274257031251668048482800617371792406343188807341191900340990201274320782928209850397780178095027243270534764483108358845207447420089114722370735920268653200070913722864827531258335444632773952037297019446506478349003466410933592136121916867100766364575375835344604968776083101119985733550618973221868182721307003993791433300338075645590319226008882129025580588375637863909490949153970841071966414734089437484197394957105805484223480017215996938915634024263623285714447558556841394333689697774857643293872623391457732983204905169237384092619656397313746528193315896839461056997999603673011444679434485210884086817641675229859988893633720375723849742991366347133179535207121305461515686302381929231560941837967913055794986703157528964773224365109918249304623021131293367118200301102459541635402298418680775704894939901516131940797960918588117391157995350380156924073412553109319404777567668174397585762900195901910505200795665004325206409183593675716637190800027505879129051377074677351325027058883656730528401666601021742083590111703183533734917158760377045933246190013005998980658436160605617647847567064739393124631162911117800282281006869250397196392472303021370667943274329087000247053193337371444902058249270389470649424576709460976557860630196984744128107124722035386511221155445904598856297325556602710122912101129965433479987258143875667775639374454497830399882507175075595035643517253027351466055238769979852890077896876357614045662195075193001584480323951137137943205340337147481876932634077125403272162042140708611650496697561857872361520017366111147735678658025769847866959742929246985527597115304058586453401248113152231740031011532558605323410563540347884682000521471786826185536435082928418148806384758881191339178037804032412433010691325356622509876845634010351587967853185720898262662446337328890132721299578976775745790776749947582957623241449550614837155066587636717804366032322323309539710105268834566263823301380246618515551791640439563511691387924674780999722177021568854154514048694135600940962677639100040869334273317490264495385365526324098945801649269203820329695429610879377040401794193668041511435014063225426554658737345507240588835221623672696770106221625658686869421314328571936649386145491631951583229552741705813962731769104236133808795432814068917073387190247842985088962922102847700963834173782795849428524528244257584557258438331297198185475954138938872371220130535253562997340119157798648294505449429706630246406258726017632266487342670934229222602474421058494390707605402436930437902011131934452784668150447716174784142678673936631509253653113325136544628285762175840810456941805695297558622451671950574154731519274210311518595051144225523150040135722407029744508964202249863006628310126607325947742808481575759630945450973548702537546288152417296643477460008402271717817177202867598580950880774768683354116808022756707069216033315637328557984782884611175125139887255348929105223229385997906935085293303019126432368655915685325402742549813800283402026880671695321777593273615851924590048064811964007666285814002089924549197329038107008388304334073062746506592219492823055391606468896922396274572840840396488020395503876807829249683756844892169827026689670959147919665553122396911892811825208436991200051193975826110511991737067928748460538364619068967211841561089680728158767148774129434923884069138188890778526063125373521052185054786981535018449748754915791066590205628828245474246849337368411198132199701440049360895486047646055091906230064137290541603055984115247346417240263122581137540519025061488396419886299845883876002618942073590520807953724261468616242893508200558669582493085197774203242365580010004671646952327272603233117192119458458798107869539641492601320140290803991041588164334599159585101700615765677192614080113474231405785835653576475716073066957555512839935373686179058396064859304949281658118134094714167898121756189632593119055213716443405323141543209920867300859899402947041147093574058427060292669839856018858362798248712654851918242669795709185774431723086594745820702539050995015132527501002253007655076699702124922648560383710847971583442864504192441198850346838840358740744017808415773836642120614895542068563291408515343070788479592366102861817928383534368435676896914769738237356079564717628708402169810173527907498965433053231221761142746560725218206266461651355985459490298252711873939611275247434185389856316974947609290035163865871667246732158473693989766301374580679001258325454443149503407837701504834246658953198073616598841774206712304580428632992807912587687651275302007180794619156147686333716856374215277065410964812418783985487562034672206188413456852462588938645330594633327162481307981913687952784740966095213313229272115413337466704418765497096720667069332799013853019984528691296793715021540455445602938020927088920784930051229022024009655588766896065344126517487049041123676684237621718481333890343587495072906166249057234191949017005093368561055173089161937497332736525471362734873279241787790702396076128599481145177995558003271896901093491805158617008367714040883981632322582496988481983389418402704098968760222528735802637208968031702304220673799854696325677681275604308889801682802407499923056678909772011462788334562381488550635556904212306789320290173229127379775559141627875427840684175521707761433419859046897407941685971203145417888943798864414171785193092349068744888420749832953279241526515520814905221653847993822432974368841479829705573179030382629826710590290813274195920604181004586006725859673447271976307003218623451368224934570523409425538172149077457742486770980093177152160444652644677905167009585299182131144794174603575725088148591987413488821132645536901948416002935118734644796488748994546773097999572433529664029400356878833319628652281233963604116533724903292945420355049087376553520492903022931956004625161690047700968578506956982777177015060403727959176183012669115284195830800523140552191788082985763724040868817193491629493737931338645685108957050121952875784766550075420909499371714570702146910388424154734887407238060903671258281414542140261684564166442026535511799345363289595626443001988524251898797851162116670680480370014451843715541727220687197642351941379335119381297692281685390980489945322079694938270102354612150954952806909537399456987926548154580462105998771028312763555711253562773099850683163835406309735130127305111318994262047525502275352022788774219375683061408130197492574537520670328023032797833260648477995041124808863105328857919018033451423478715043183063583663653731925777462401748151590994807112988186234003177818225772437992767148989380465688976213726231043765543258543760837786006061355760765883317507404900264803726219261420641147486263946689529317865053138743080226140499310220371747992148342721887305293801283118855328644143893087098819433751103058127162099349487058490954266952431631873833587105259740444978049187958965448709322503318116574961455585585284341260514900472648339280602169223304266282922670376287020583847740062498591248603036802092799368009288641794451881234696694840288868753600047532068033502567802764307211639641576099055323636055033808559421690527579954389931374293218081502981537178763305996155781556873831166202431267584184441177440468874082599818095489839194610425291853860932085492421431924255493808066715056475197497398848625018602828457609684809162742336965293662565253925628987228535706166651709323886811211007087345779191103753558456490713828391571601199190869626919358843731874425081849482813916511159362574356419377004201221020493214679557727087907350683540590645790497660413404294026157703306290272874069671349878440131243420702803293335077558417329648282272907931555911226674684761705022969045729935815508712780056551838088630173700342198341878247643832433366201461125069639342051795584002978592007584742620210925577239818566747391647295928926778846653721828146312484710802906402605460272598150615668814176443199656422221528800783081846874047931043228429025614492452024948041875753399975191976204883776514537697153451304972984821040087979291431276690643373007984064472887493595025270744552214044222301962726164805863157333488189925782456943065039603612387436562534506369516005170107619615788416759804977766021941617856117042700350371128793052219767077935452534020924650115618293194689331644776811078049338884622902251375181749635618052503078448600024130350505702268320552551539838927331406842217563988910941645098747696239778166368041369142417633352654657928178896700752564139976688845506129947739345918516908869738747919448411087147543085276132724837848640389644218033319266487145399725329568354553096802366949934121494202887271682523051047723779624275126802397529217565711429063009240032327081821088453088107720577173744242980693684001402324292548858154605649526287823333243604366714411334122747247437045595319922876077667755260673293655258915589777525449233179902389485326545956750951860386448236717693717921727255010470163367399515252148472951684927871243221789769482678625799673586035594194117873808106225542174012520958378986308008955107484015721571127764399862838763776883043949048279828963296192265146020982413021202662206952016696753129209291602419715970289481101320731258334496479144769874694285402586777112908667640964275498542777664020554794611426407590552792803607551316202264773837428537108570027630908626083771618322031499787024649047212639559355623984929217066278551842337762622504327890340108275487300591999583193977811596643268048665555907270670233385745367826410587507425209572235534912312397463652887526594108172522200906884721262463889895134130712490254238674148392435863544118818552277813694949785377464705607292112047932123867132338647917484531086073097085017250623722355274398267762629018400808925255358819586378232228569409463685301257976187971368566111001910149970396417919023691182323920189640312213676343109279083051806630589564097862424141793993838426123524269574473995615477842250612405984576956679346283819689418977252311804560599186773225336721824898123361462365223008999532434529715288382938728356437275724804991807873425486625709092787461878008665503292969621898517619481889048741476455044324697084468506105210729137692620063616800231131723800131824400650140851808738050843711583786674919521506759657929004049260372863705733082903765506883149874053255375327950410785713964307855595820622680541421467873892448328909292339170344305155651522455252422307593658245321515880857474743773095506646830869300464614093856857047942646591526039212713328222827529329617013376551293085917768658498721748921206902641592116058033819493616569377639809300160401921938087553654214834266283997447733166449317936882868738013887656802585942416911011896122933892387466723567941225646650806800210469034488800152478666736501329729440619283059244606833749034909554655167829064377865522763112731616910054034574402712137156229188347978350862576339109180748790520746796927227041197016193373545383433981076940483472458625123406970254290901239612636294510774148237296177301918118484727158446154830703615742962557976335731847568013871382363158121179644483927910719902050021920282175297415727460265144424828760190323716555179830707831492242233978187751569077722944721652712468696241996039553941001263667306826543730266143738904141983763415119654103288452552275776184549420491293472687153313090336774284832902053049254706160406016772583357073023624212648057281711648414891411018002683520280619146668160626100399566840764271096621822919219805951447621173451398038313967458496042875776288016304669051984695017327217447865525083811608111975855434350004463799032176534695099201313410698637617041772057558032880647857555392363633686416224517984256901676652830675544007223743532284607444453242728825043794871799609350771197708158039723185738426061657447583103603847139835433516505890179544338163207162070037056643425630683767257842368826900099408591861201514567383109623666420025070894182294987028388125178707660838405007864189606989686322424980854812288769461459013054306515886086540237852922212849702370395869847977532951331636970786250629233140104694277204407112307687012443468666076317974827731819502469019207016575997662183723757766292279629420425358247381741826767330014261632912375409021420174801809157675144573910833184022660346178866887812979918921502908795331234452650705167763721549322984247776531776619803219030452617929172812006792571309651501706470133733524484289981799052148032875306656611675674016102673320584231431205336562217013369381158729404660409247707893089611577290088678268421344296077091894213668381769469961442196747054112217829234880620854563738509889567291571802792042754448573696537687615655957497245666424288242347526677463442970605936312950683178438388683312398205551421047708570995400824072292092648863727561771896856123473963613805029550131106685242230180204906934158276863807728073099054097940306481846182194290296287577339106750804813161303237963725320012838107958272636087218310382677242909247062715146113492100680754912379954308459661275014117343758608443980537240851959544677180488327810097558829674176125228727807072574015570379852219124866622218243020065671411964996454354706453988926180126237605492443859191362730617064834367270201636494955724279031961274984333222611438990575320033395894813738201559437611539533585408312024397738713212680051030990551299447558377118339299022192080251029017722486768871747096664786217353799433143031481290610176495983336078545379686947626915481844337692400266725188522475913942396774470932147814200383425228149349677591678677131376111402708313436513436361644889166674529742808053731380996890653277251650564404299361424114172941916938721742577655555895773952843803498959230603397502375440999237607164645669001325690139673941919442409992538651438502451020615184849216013102872734334470524072258201552504469112129627883442436059871383879437992960399999788254118725792918271601944254314824682944860572880617465738383617265333213695463523678563905348479688682281043574430507433620130089079154464224181500022719860809969546176775788918867877498554295487071262470996553032295790708664226917381943068495553042683484410709943636086543752710945956577482076420011418773766540905456642133765168898432804342395913379297526923770965521634441226244834929091479845229000531451313849484373700992748755591874041683226755695113218915213463953616646373160702752680089030046879373582092814469428461364499067703863058389537340149035724689069493763591787278168327918624284356778980706312781676599589983126057156258302333440003518959501466172012468693356204727242659794219058091897069319192192855029126279748385935333747220405284580190520026582201987790252010897285499642417088057980543974141935373402256004418860065915638823205326254915552413007678759790319616741527444342520870639569701713063970963824077527096125598587717087231048052159585868170459889637775059060372802538921659620057059467058930623204066444310846300108430363684114869917803649274528240056024521937117355169175629808505204070127155763015304551455100433155020602052665201672721175422373644280421871881936575392256325011187219783477463577937200735863262492740531434767096950066293926428914767324995039974082088461502698399333816377668923696076798317371046677192148100230478230088984824475251782082090706800152310889141863733204059694259520775114525419067804563751492052622165784138333793207419688672882896127711091738039126707034675636669548918442152422471437870558912065237933921974534966441416709943244545007123042964340848500355362383694149580570222512965341322615046785546940927899319609861269067208429837595100245079036612701406070631985327333787661708270347154320438094145056897211724838948669761627830448136607416068342028258312293923012589958938704151920816957106932065844128750460089447172783780082817700929991099826342696804137619235258612094868749585598117354133335887720506184802297674724896771698899897035588897095947674387773401162637702348160339971384169694492050911466139481725990481992362275928783372766586403780685216849224136078096782037529214157967756508853570569284534114045806743793898413160846441142910089699374763560390115817300172486644071507013856926726668905706062138313764433007172543012886299325489252477363403421193812587578698968938034218474285607300567698000789450472443222535660507439636846099095556307051007041473883750976066164865409015510088998269115222449958733915512739451211939308962067284877753337322205842964774769236066311961237477614497480225517636978196233869372007663672365442430198369551020740779667865782489883367243595521477891031648751840993797046256564062102334516438916917849363481179100639992095257609996341370222672334065261153735199260530061534128422948085085743736447579739834348597905832264869768877163551398196326661109180389237268545884300667720994888787466060340620072312465285219997333944387734623098403161279441859945536774249203480675220848436839610637682831534373404470787219893157371632000704444027450897497091257027464427668158018341258744625461089538680884847440429698985928966789199677803724239330660992800404320655555734047676835998763219199382695973070860008781035088349262626997836951847636029564847762216263658797243687924752753750560965894387234722173186799998623914567289911864743340976600868951900329921167880617322242890165830044263807630687627543135214073078962632140842753692512880696295070683469311419169973311564713355553980488412769490030978764662364918572805433516262150619813436194001734532301071080992617531476078696909365229778949481400234044378159580605525729614559873859562135069364813200524697960929925274352903908225634379802405465667083431263083577987811719290744517150299040128325609364624391600063153375750991645941045780859960699927321206354431824898056774620265601043996911866468713807437397016711816113196922780488832059773882031135055379924598649144289664173865524733137953945599796444715761034767983403766569258770716160155383143610608291303207837523687049379823600771331745410454676180548395700547016104479017914486956560645110239984252059870087779151582954681745997526705543799256171980395944458538430079539032088104920340194188165874637781993614506023488896268756870239680234021525548554319504467808000959174822534005568167749899921636923236406751840218611617750236866521659268062364517663168831905552475905977650252017186559645747482912088720095645909809790334705898552490499841481357281144562811916701247630313566874927722789887772197826099219611111640425221927843420097275365360380978137838401632509871243610128616116825244229396790218837107359774159037285622752532868987231023658727131427024872101944044295941865679816680937261797799135727453631356044313999923829020383516885610248613639363563535429141652408856167432000978526339632178943365580527605772257872230727628385883994424215056447371523513996852008085442797148584574462221889812716934607279626505905638089001272991513609600519294194377714513054499196879856170592587142895293746536196914999932700585405454469263476394613802962814941966402307333546540697000543676254336347849425509938687635264678212196454013522296393622621086542017230053166109334503911424316868682553319665667867489915565438609269226239172156123092284552760505475121057301025647870961052946335685695716899967332704054917167714353477502711812181152141842680595727004063459818229290143515403105358205487936953587268710221558684713187379731435363783256976992483122883171254949119564872730761797648263199986497893331936379670020762219660600004833770070569587733284157432179096141820240337639735883159674600198592211688979823775113332853819449286959031769492989064390746388562388674871507337016534117018008792961087983601015628653993196573539071175623616079907454868749085905844624054502979439596747804344270800597875986507787790102314973196425295881353526946769579077552941518304278746601277895800436253890639481732627089035787170818299143380976279437516627523230171772484687764447975243476110986933440816119092805695409749730969237857963134846757839638652222596345499102205080531215118203868542852173214790507199860236364350175996699482238910481105683415451554300746646060074355661864104853983115662445994343394119951177683195216192978127737561786718764940073786220795849327990708040089728619898413392880848561713761126853510722294022035026802580354106227172493292453110640028463936884806024274646485298169065980138396046182178388040630960648478063978503111681529879134890204741278057858836550903174463760685877363618679773345760359462296654838495137747556187699051008419979904160265311953724373377844118524236770112982932757524859816227330062165659381679084840629536248849890029687906651790563279196292203991339995411444930380157915624979205124268604914462711012326570502883881496529340240713350396373196693172098887795751764811226477347909771300031046045182332395241668354572202508175138600473141195726738567076170421619045128125957231675908238731304685325569960168373368135376119413613662026224482444235484727018167422721692810043057681464870193182996986970428729576357208733553636502986845527077623320254032871288832904913096016889540958498149501348243364604406967542337059490441976440260262590185359122066576452528055525809380492151992401526908980544964322999162870285401073056471956519094978746119198365746852007776616830490704366750320251765140700618663968042222687521927379439573534592098853811890423767242342700004414622364972032792028526857324232947556654081467799043022963512629578516374953918944894630629017274700032250269097170522840452020176405553365047941975981720610442308721017645507134984176354908844627380763340822625416701822903128160641182648497864043269845952221417172701546784154183977253272856217832352853000969079247816142958203189958666511636140586291984899915176365563587765624708405152361541931702648016561931204250677258457229686588016114958632670593745390193524723003543786980627301513102775234691101683629635091183825276644940129469240474962640272087597983508233134390836811916559289239926807338133578699817848033382578265272570303018802186461465940761392228022599436398247000231080610745084170492065960375610728229837257481240168371252496027657414414483990138224357616574325356574161543570774239719497584720534899023780661001630999177063074360282566185528599733830967006673766974619419966047950495572794953877903963551099176197641446079647113783727568821060164564241533567764454030114807638984930020739947951852968282277944236261271753968430899011641870111008592902223928890700666565408063979504591844979416246476262159923352035710388665676804863981076340729774646630946909868409674637057349952122452250200897072408976308112230315431423901331888092041739835749705480588750996959505802754509515405673308546655853254392480134679819617562079581578999986191261040589362035949211887377042943482882187842298435364861744666467416265392607875419072148040710138985672015438094908614588108639825565658553019541135705178203160680072324437055331863652205408127138659698913024763769663263198284722200315177857500908124341175950050503031535363489960024266337775087727165083050453700477223754878749388329122724767224568792141537160209049535278044233660481713190868875483246406081093061951470383260604284000758482312456999670505998408293375324941556320213195498383874606714453325980882563401635617603472499999503816646552426107217001053414983038695317414302123209447319378196380088246289769271203174653748973931697821885852817029371323843425131952769567628759186518610513375862605691654559847796981848260696265736260148291699530130866089583727364577276022140558443133060356398841961953248816750380051458077002121071098353194029029215045599942179855873994026777778115111173194786222714359246226507721797215116176856240923837837548344885521859480072599658389383356335605291788717976868729155477938158001679653877430211624039797828618193601667438682311549585734889351487273870655743130096585977861905688346843697625410458662464672256724938622200351938070980924664410195377940186135431028742946727924650844102603912806514809983475782751224273239675008536317171286528668383781064385885778135488827741495535924233866529079567930189238785961611962961042310762112406541788468572274234674616978167617105801469961953347112543035008556757262077095122904334865141331508048658821302007961942929006258168610095897071377906757710957602831386093265264294151352556605968277775409192132371266462540035315236563767186590535924833856177961883050811880421560587602759468186474085026238058661772880448216557335802745235728567794997965076952669476856567824364671743329033399257559030636350392417454706456442030755718130988088460236475069713974894593030928640267536512843261035688007655922707546551068616585875490908328363454706591496861570143157263435835249906472345108003341507175074303345839004717231453279632279275052011387122101685163610444079956679684174301123532118674724741298390679905916529226149907539449004274167963994254161944936128182849893186148271196486383323888116358318158559327176301325199406967590956873733945712151032621827846001186621822136053435279911070791742838984538335919583862203555989474752502785122990220728816947513705088960433463247795338069747062282510558829145731314485237873927697592009766759384875286844102226513371277782002339458074822747773083815144961183306022883620579561620391592075039507373547149181744025985448893589269425077091701335342809561358543421122321055243495105998989547078136542991344601082282087925631056831261798189665930054186643305152422223575296936007851134900484675435343223008947257909444797476146138643071541310439983694875927359870601401065180060063329140324423579852612674356120091039208871697261948819707521994906196789668579383926755400700875630003699679849099813134791594962847162464713900671134944725718958810458950458023950523572756240407853752064027028121849651629905694486235582838438302803670492606187681181014011524282059406698972886329443475424181084928389595439830152570564009079911292336225258640618863290561207853820581961725019827669851684199826081142502537657545622072130338587095264916742827897532095066362651954221563430397660922945165481790920104973213558678762673833785551834512565752201938945706439483923425151654729499611771429354379192237962628364273977115200871186612981796153448710174063771227469306279913122569940881002177516555645619966355558797184759293999814077213606962619443086095891230691210987151660196060942781053015383885935512034536326330364858944588281802383454612046546507433746651203991469633099425502642273993120696361806756691666757883703853337976499189315657560282030942956418607951498797097058801591377889287646733062887987324987024612366464783668905730023901971342968494508748629130850615836041376834707437304601680905584418265155329974670482663450972311952492510087691066915877293806385592044846582435032408312247924152875871248438331913986024356974530652723164474308779824029363728201144679166941335969334454523503802427377764527822527096538153244866319890871087089517728583310687625602280416318803449394958570062932892931619491330978247037168717755029997179004748594976964885078119989861910262012124292939758458964830313647426899810329647098411961667827920977012879835931092061236934260006672981145820305747511964318276563670341517076211040348960670716358228515617107659989008412385916374156775872004607953993932512784995816037741566333955835351199087266386655200584351325743008976077238824649062322724972678808074648865925557338425129045413417323763164797654382114623393353210767841089789336890524290445979699068883880160480613903318062921011400774951830486424903666473048712117790935050862419398178489134739968599488608182788004349504829167311447493845844705881269670228707835888215979781785232768044148329743455000638339136918776213516007543175911980088831736045312652649525218338686904228357773283474197594697505529555094421067661632309569481133382800870464152877652745462613081644334693619839904107643283681161554855041423768869583844461389944503939334108926969494385101562734182107090272045814913102521822247061744805150932524188882400298664847720787868490224914760852662541156109411116968102309609801089535237551339139247525777998667542152616954451510759429378398346383557799165835352864212955746751939926544816785544426267607804103077535614323746014537731234719618945880481215251985991557092916151630744686394539912666034994850919933945684494046387114358025413633125340547150065774358854818024770121469364814188037495290021551110234869171664704085027057140321247301515048123957529815781190078794611091835284577568313668385378906268154857272406115365839980545094086738882037707618216601654937168622575926224995953563273771126272550604937036361112309095459024161201150433690924944472582361035185479074394070846010378979993610516602080802417258048615473051986962269676772341243292445674063312800109367394819483994160523026098653522125175644455227405887946220500828270795571343112799689205422006955726088923164133404118556214596084421887697368112027115705830700325646420510978546284829907405207386480304977824635660907491262732716696115018319954993915967477342287001127491253777937562738654962098275074996214732046152492219096960295225756078904118777092770184272803534328551454834441092059000946217988976174923942381784652085833248236719682231494820031759134850486352640221390872536476240568729680841637208664376586220002937425734400294721378209437135764986219406808329273357207401756072809539476005475547326566492126471106514457161288494313299245624171143933435387876788756637630360369994438693085627968361385265308847469975682036810465716744833371902838051522749265659268102628240484829057662266859836963887289481354320200680783084899163027326954364790704075523192152468546858763629519524908641957345757564866805254115649980941194318221171656544367175706539731150562545171018341745545579907676979761539453123220363636872591656707000216760549297627220112820546451375314244400611070167071223309986807147960775832385866633198418877875605681858044921004644290862355866329208185236349879048812471481580466324948558559609264778437102229544026253217917419389727448340477965161007112224508257434208303355228449032806843053252784259578766104972306745960874268690773885616959629648906860157920043214625925507788121038168099603926892458428560837573757800406388177082364123322802986995042849380519662122681515423901083592445061318790851679754219140727835794328596819007180183777242628843295657519384316919580181411043693478989086876929099032269088424290120384425447575778448661218470593516329391413938850289340553953727636309096687592257892393845113443500713318119095693099230609386316678410265945134432598869244774970140681649959084137925135793895285929274242176298620491945708175816173240445034206012705904718383988162735888184517196873291500924189776516978894533264120343985966017339625972360381442294626128804345139623721016110302068871781080516324930528556670706251424151598712394302313183006956933752514820176206512717420304318812413169269354458236951256849684321363627376329640100370460037770760210915982139692213072681937418793511432455618174929022094592315313379797475786166058583521553254258646153404096519023753785171934508929999986479621307625900001436164165493511987735466643744712671678812888048574545998912892806593094941187699073440308088243086880390882203773868191545425116745623183274054981381251236590517491017241161265761009873548129434045794371305668750536880126630101043994928455231656201059580850731732939207137627743640499299714548822562023471241460396452010521609176697951853084317225151579754064686718995858865504613267784102208343005394756111366651407927884630799703988892951425459490882958410586850780791616092409683298271402425010731597033861346602493002267168947710401095345122461378102810161560453204384722577435803370527811617429604029462800001004491410456290408723268075332803008909219357994675531855025534524618068313018439186981582393363784607328099393622435323767211173520948740711787914803653639369219893335195088308704414557652525424117640775354961700539809671003370989349626872920459821401494807458430361934329753711445330376921526932894914684924775229248452437504796994625044828046149822484607456774655231640941295583380744511886176066837639466079168964035304845482929144907195127826235361268005005886488257552485608628743023081270064728396854375126042948003099683341063891048301947636481120706681631725217283184177289574812451996833128309978755382965560305576365385753925118230292049653429237094894888718600047754300631555511423690577123757162354751235783842057497926382119360198103744173319191201974204982672745029245064089536200638844117006359180061777107669259296497713936602837408064079968171933344801616113528224012655000481473607413410724908336935308293371897218955370527488031826803642438462167227854701522190565078714132805175333099887672656454715454198345153517727026503364932790867744323949275525828532130559534113140487436454109074958772381654526844657780506126587073203356461583638315393482428608252820322169397715793182413763469812087743579085490715071970458445271185671963973990551173457856126504458613720849860848853712819118466425093202747436614872664685828829138330248227763218256753266896111240443244926554577984969402296535118956236389259029524594213626339893443457892315855223952519507343027665046460957371521821619509444706924933112511187809106338574344971445555791623627546440808091700686233072898412379259108849168426984844573550777711319218069231345147224618056060350346967755244681385449916363720275591251403538471789799555926260575745058157060582876412596223483708297008932391492443556750529805063554883678644456979626205074947447495284295165443041626879234914812412994785986276554756629052874392721259079862880912148037862247596690289181370071410202541699261402739098047190046174100103733593768477384048625900720035632418070836390245992720703600378660555231149438338914964845447236157951308100873515603413504254137167221468372553643576512488865408918132694969270273554912264803483710331930561477570490508277292363600820194496634526094773480934536496493475784456784723108781113699142561395291391944478221095488814118054629373206465012385193462914770651025639247734675046978753957212409735716183308775177159521720163201685126567732892500208722246419181300576723791761977552601907550259741365971971860041721043481024358118688607738761716438720562668449238765366436913344072088239516866830568260499218585011508633822330050757448028631492297247185829035838490796440164271399523990698860500727027106059044107561841837096995196536447226684703001396006386042800294214748555041981637787135368688580167645226981678176046883706068928773958761582490422688336639871368221177000259338667219126622152466210108463867281233066375965086011587357084282531385523179107237625994990872552188968791120598688721457013859668920640584290341467463160702196163584950382163630084917236962695876795891795503656388007454896664479552113447850710135768338517516127560620618088202429512859298004341322060808143066952213249420068828514661730007322090888343319906316955121748622566926313104309655626614046769663017259810545994405906313184649791346637696083245503752046200847766298474811392553682544684158147240409112058308560844372938208106578050054648520153224171918759561554857593905454362836369713017952184999016958189149229385954802324951171298123554020308000523090127004825274248545083246791709866184277087133935506948661299205131362964276982595028905339615657377452807433013418903845309156241502025793109272786131908737128761835347748128522042215510792440445848645640466620086486360063357214969650958599738796270706210502063595193329529897271245969243157874905665810469269295930341918942300131147185495066300357688255929122548732647819169447001245316538606857335120820962959303163577521057501843919100417507048351482814355120744630106725576222441644538705790704011681515505801424875858565921410090613420368267935403763785401294810523628594026241131898614331586766864329629775325039544372501186803760933344100225005521279720062708597437884192541726713442935702032779196275489174711129959680001052090264510192724768669995499225833517931715563851536909583848352669996215877900969059464589566172352873974979355558267033077306157342210104468146605061137208159695904824388022280452521766867796067007157345121225404194291521428213837774161744152618042571760262310396254517267997571959816876806476889390786327820614324240454808427828617812874833512843378821307385744790884133928829128333047564949768853997451950289372563903220096795747341671504861980745718298461356945859989390830861173959430429132591686857628868274199781828276698469022665450996684151504763134196859561433188288530860802661109956486328718645503530270146777278485714057538039319826750357678374017984650486434857346789133353843652167508266440236791526907479242361182076408348589030537764705441072115213653303243852981594326815118103284856761183758417882072018893630293670935240028466619289967967710335449892282777040653009311451804326179319612383408519595556475942343216691621048823008139650077987405808212591807216795132435250238640696867711763740381778147306975874859841775421693512589569795599787291923401985054628534714961976626061642838999520758066506234219223359989799990618403254287713643155353923266284916278943853889933604891918582527258167463109272619511033389517258741120844062268195596113257573326371458356713875384892364373864013556684806662350189799996307361530985711065856466290301518046169558662506393480348835475975794806160883053684640140271694953361662366946527777451423333828758383306133043413599533264092138289808418662134351412364820400663392760517644850175699893036458579474508542563456618595626583957910814351915885455492231937723379642700076164142598102981037029031459766213208676447263497776260063580029408019352816848622668705120721161886985662019071081640473783378406275505729679357614276330233356094165648940385581702864224943652468050963148537904485595467571523980087474460467732612003723909012048310260921374283681220834923035899560727209376882803939242110434737268194252996810860969956678707369577189174884241599484577717007647827269549855030588822249251027189082061701462235904912539645766600625897582085815589875422376111213126502584496043904572225223613225150635129576675900754526717328221871321140260331399953605949594185703511969436089187256591966898878101736304823005480709629370486402587899962426472855347107771840133296845436402556411634202983073678686405157411150370025764504980113877502362192880120357943119359850903019197495243127688338745359874882262309396371653402671666685005360939913292138654231712518700399518194612487132749918170921181985467398459557088809532208361116366817310735495083528275554385012253693997596609157791400319314785274989520176586000124793496498453363638406284095367214598888998159730703695519086921576432280626061868240331022784468631474792732279191614025412285831393229776285953019297556307394150468550305345826759761560093145396355084285963277384437643497563281624689773453978246249253421955110528375972585001278398179897901944456639318853879504961191210908564609014222929705553587854513012907684067954026288174101100095357642764367641143672325338703902407508986380519872206088290320743002134171227415209603021526998857591046850053199233814257223755457998682515722854045680546040555027478637876811667217469822218867751423226186770655444756250846274508967265883454855653788439001074948919095460880123051704102155348196914153688499756294032948727252643566101133366864089385786973609587545114753229615749159993959739398299826926733037955524512046692912707087741190199779451539324350210731097112097820312266315269587073037840138005509277500535869350808560602439588371314356126643213856080566788088014776481221707767498969641680010391590743003117117249208654662917552095868217845753864376183121204486865301596087436746495587376726342447729323321379800244815601227585956256532819724835430501046203079141540303390617016910861204027251432730109792519646596703536870197326111930712023810844450196317668161961286202742418684685494233483442487809944820548617496902511055267782196301678458113925667031339959827393082087785922916652700324616498631070508599251475267685054448748762591608213909908116064781173668309845462397773300041593781116651562810345705487737222281645188638574554026204548591755727913822628102609924858853803730839320230111490991532335293753647984115117573813521692826541359732322300671843699160047574477913036613883270104600935871020125276571775113033018353666529298937412112707459589303824355097969822096153384633481535220734467530525042438767789125547697200409836906416426645198114253224970717889755914732234298454957849976673074997454751259741514305639107814867854820734393995289650102560510626800865625113168984913014864965566135547442924817166816621801223232556701577056064157510378142462939485541805008470524927556377239632654306309989403022107658829663449803468046553265806621224998747675316882476575812485218111626929718603053701632213760258380115996280025829571509748747092013724121562157841882475636674865008550535917932512491413259017227628726742209624050445999200230077318567148503144018226415446056897807035414058114998329842540675365436397906495546315565409738318717762113595433180260280331871084493689607681833920465713574083597440163095336327547882006221969372787411207288422274297115981804480345400467673844546416425437175829934365077631374264452361386576330707885152892473431699163289362382729589014777203032554045811700944678430600372956522065309233790393532383827183371858227714559129814637806815819309458191225247143557085321148659676482819028589627344603743413899390203912616558029068329930135566825982273997340490674393933702227215524616803182900923448690784018581064470686020778046250301675934936707313477176912339389709395014429624112559546281604565514033238470565769109834905636871592327100237035652588149497417123049532554752125392692510796853536422761386327213170881480857808525666939758443352200712327461769055837992481735694440411076457560631754548808721129255981479913548374591134546204639746809469708083519557073071427162038155987273959554827955515431521206701029837480870741044426711535781111936697821267590194208651781252100950557051500125453144087455995242209904666388908226234377770584313043615162307442679838357673791516747581960745045330281654971576402415134939870023027117024074385205874682652886818120228813490708432933315354319986584377840200266819284484549943038132952647638359954670476648168177115643149901538391996258507578212056397153778220946640246513635751505467016245702466454487783952017524331458163075405305578899379586859965510913589147391164137190724186163331090033673956555348977805856387142176312711442422678926752151131990224663190860255713463552010535399959167384089166269999842754393791425546610107109261798207824438273399273107937306159191554295415188204185386199563543071908633082611955522717017683590827435496948184110820384947089443775192636572869184139060320811605685449599422458603955638362574804213600222097302071281206264939747231353801718788942610140243420704885353249906441471038896113709914112115752202051089237151939136010901502563299308794798171139505527553117487920882743973972420373521649649371962215299964103308621796711482123399507011522906973555951787759344189356158426315560110071587873354556293391899472386988433559326564466732244740291564370449504452300655158961931432524219672428578742523436741006116514765676896176316887244672966853526732491621856643042723546848854474578765920763609105101780128740094780981310858314395342275574759888945220218661597505202085773126746249049206678431725728601203433218533416201140882486787803180381103730068497709293590654798685004151243304127588335057101269898909854604204440102071418744107253150825466876261887967726890909200641398373764553163831035334543698272810013866672856350935572459835294235836686659014659136205312556190682654431709126037968317144584353649338118855727253716439693564516352351266454959981072568725923056793735932921919631028725717395381869955770321726917046555885344615477299990687309019755553598360633663244186220002057999117635014717516803581431008099072585036158317483568236996422887561987817712961978132076715805731480658054329629641705622065906078451608838394008680190610111011550145323160969753744421564221462269583057443752464347058494704750953986877917020810052321541381024144938766902148352885553401903417160818578577472940623035316774777535156108086134875652044217988160942553155058064201014686630591177636650471932695228227927250175591877836447144441825952778281115565453192151294621489716765750157466457373178848002648977081256597979958133183241553388727005686627413794802046076217419727837739843964752550230581394031612977743695838056970865056259702657117041106793878166999188458828287529526344933374876923026072776883503084273700056842526746537022798052093417652644389867723589686624193473139026920670898500996835485511657192037088774679777990076340581842277246461820534323504907604428292259676542744677330724055277641088160877401417097676774909566680109456580260470819437623542450774945333898274451287925535491163395673075104850454407591732062674317592694696818415574229673004297433340925526181568354904388007419988924987135201945092154240844650922384134072611005877756104687867024683655888582819701623527128561225673270845388077159379776388393386552194308993582809790942511281636870157381280838891722808742456103456487840847938257421156464955580844295776874096155444922240850682372908912813075592961137472148914825058538848620507286777907854680500298680229909220433753494171401565893721359557936507831536149452317586780558770754868782690839052020439700320705351740872093759101488514364343531270686793802513270854875593832909574842378053959666131024025152128723255085414629334743301491045128596560442801152714601150924922133684884832077319986533042812643427329460761526594970321418852886895998861584048404346017955982247505666145539144613911831803977311430414475723799064589835102939355981356938808355793260469940197302605988874014564804351672215975750269101784001823785062146991352705590516390219586446607332618600062584204062550313541094706436359265002847264945427942829835900127986132245590636040329313391993152245665447278585127680579639810848427497568630438144713414727166543421913733731691933314536671124015806110419383433137517222242424537998356458163199633292785052138123173361799647539616447302864303193591427414020965668494456158172263968110230289076009278576640865901276916798544531519124510214031059766161779067213494194397940015558850206852640819484799257814824349287012333879065581845046577407121716915264889335604696545011593096505448061438298555148597888421170516647736552929226949393005808285909313856848429787717048258400811932776926392376150878785169338142625479327315277122188864713145037579123324305893368377014256093860688406765097676973312890831268055764386945771586290427404033451086172774496771027728199489475924045469275248807083528806290442282684979729669691014478982626812541526270984587379626637794585920391291155052748618536093574323063544634448904635196549823926831383704381088301485197802152958667292982169425242804031408969967503762294461121259010228625758863531612700348575467289214776642531941715975801490375327195625409992118861275856887902571815885491172808612735951423692402868723584428704119072020197687555713090108841375524314023597038930477960213771200118918961578509461877433634885923799558387056854555964540089230455156460752103363305651423145042559021457991664430935208589448810397783937742083239062464785437308725938977725045360165520134799285071806595568961344575814825733924837402791213376669822561642323772645415076536799948413020086315405222701503486702248903568469194018149747042972656758755572223659347286453317193426621439481387947323309331764272619465829873638641579291281262256730790259064758944303601370094717145629285945435880094550583076725974767062295772802518441157064654784943559305599884410232717107821246082707813937606382638397560206736309677834016766511458772000547123776272902791143034756362620288875395226229818661817494223895032406226614052832240356348548005516146478741852678400197655314530282483877945159057134208359872150616166819813334510653711740273485911701687120406006685323970155536434200482001010204126622813247154687195139360836188216355678854967174867321315635129472940517172808999968209627929682639214770117188407912969987356895832460547983524190986185242304100232506063622192792981815615612119725481748765747132415461380436845670591439793409701688430535160245938800021567761893458408885683980177549000185620900178150475441700126192772507265675205526315797677021672523468701967257136715723692789566727060878700622198381542345297501873283807612291167718884207565549318984834411183269014917053543302666518743736180169400201993597785620945301222572813867368053023155992122673230724277925687517054931407597923392104386197444918036134293196197150053523465765286406546174639387270248219338039785789098074853283489651974094159148007108062213878637746650679392315276328948825325912917893900287580628560198180817207366952774210252692807126720479009591141501562931527046145584438684627489087843820799315192371706320700287970166921253162054329460105776183724456103251171462407531964904906640963880401216401810208153892538093523865119293212114619828382345243188697403252989061999094084734075673073434889773189091794185196941963467668314836719185289172602644952580717792611543060214119660755514932237320480409593049340178571256316611821721900720955053380812622071317251114549956716139789515042166594530047787518903190980615938247975384134924890466961897668431541871080843573109153840320089799747163325786696478539946317267071969593373364154530524118667814036304630083801570656643394698443903878243773888280842549311640056630715089071276329593884744482178383960158635830451125759307628358928102638029939669581520322029590109468369253673350932934642746697131874377850144860754609799170082111828992567588541711636204119334834299725006235604767164352780550693389166113208553351873885381899940062590275918116727971260479826982456827946020169971986936979659717376513791937385497909740646295270009211180059546289431658458994844564521869770825262677961692853776738182848610043061964292088033779730890651506981811174389034464923970656650140997330137586403211423044939885215501895648106092120661232445545028726902134479464835418260665413391741109927775660935428492349346893728891249878132860084100861695431741978094441455459589654544479246461234349163518761934634779451556337017277408418306007652544578365376421393979588155240634723399930880160651787662456413270897677667512951199198060446986441586367583907502319544225892614156331381181425548799323469729873721488064209949910733306781283808297532725140160510590267579512640966913795734037578799796398409311285719981328644346593356263571413999198237022424280627464379475259987420597545941728829846242193910102739947518916285262609038781550671934903598754027281828353288072302465526665177325279071965937597588703480394940945687870233608133045397485088928820235924655362133203521869236561233229396410309618508737490225773392862240246309110241834637677902227209189350637549710699779630250001732141033387447473738034250238142873703110086239721673435930146683249837678788885876087622589101177487278029856142916856572889406918526828275607025888292708772882693560151931853152193143470176477575938795719748187265452843925378051918429463947875742315357026311766200581392558702712165770325636051377615637117639713106458200894805778075903276380837869962494884623776248267816071045440312146805409311031913250261328436089561793538951818475166459210950016062162041829556034948055853224440325558023208646100208726467563209369445828124780824753346247449474829416552007678685391141234812118429223308065726796234931898739480930779701873798780661092228276068298518361500430918318966098134071742675189131180544104382541267900292951318911241445034980550943938325153916938321443163059994021975129699793736471005032239770813407528977470379216017282397421192528662214893539921415337914643444250961387509536315382240268984854079978854396257970595071177483171603922754974773707299085086230679019433535833761370573136744564804322326363118566793520125410453079062089277525954690500536946743666902691848839618993438892315846779861744856880581543851741051690754901103463029513021783496650439013722445330026026791421694641251705054676056002745847721103228656055772064406828440727643060612154395696979952322495434149666094085590114991927871798860018517449732021736608774531390391887091441413335120930253673479586726509025760835693387886305059941681183905319322407566333155419971600487721638662887805102012286902711356685144055347060514075904315858899318740707702037069901800716143880527534610512446062460463622917281420242943085982729123293624435010135858644457805693550721454265051029580031089215806585015277299469106069670112408101464693612457254548010100430760212597696935853094126490507583349509190589892350446327416564534116442407592012801800872152845497361654357063707241508092075673142771513218498516736642776757112027481840161771814717913245196832030444400595240087937493183450089224956983924586238091362459006703579683556002878926868657019765012988065410554619153443267965582261132155005596956602564049781451805510774053569177064830933827812393082865799658626594575012650697826307957083783075358894869505789916074540640010913148417745081870099910214941950965105547708865574521996374405745600413143078340670467331435201829822982372619271030359442434095898783099338990268538531828793605079612465746847466872947560329070852379597535855070572362598966155933007257525459812435510910944872702715889114886791044661895162468082667827630359879820805468340386528119475211342367261828783352403758713428708839733347759843616518977041162110691252217767222903237219479437205398778503473357403224742211059164322624316559734520737227621967145769963064735723005947903964228881449442074589378586098054823901782886993918914662278135738111150823546216896816072400011597908027282258931094148971985092054385171936983339358293555090170475131044593040828286541951922473689432668005881495329048260798735868436505379661859073431304119941709822503815022807889797059594450413975507140339760019250957392474205236552999389529795897361588387233324303681955476737895975277545892479356471722944191239510741184395950965561355336232223791262217125643431947970068552192316221298910150437162955033238652805154679672743839074104436868579743065697921246247324325676897617270408581125628941296657609753242809925450621800250773141478161331229031134850906222226821048566498560220133962391855398577636281138562993018113899508278565449781439215373101773211208660423680386539351220469266610900884608309874596003462744230570184991296681235748216757821155728583031569502520554476834680953874381818154063974967416567330470512927559887089752275932897921348419184229659602961416337933315622723850588006383604040899122607827929545983479479367736667179654033488100627529866495188437846446148748793052959108762153112095628740557356026829510022143877681888014358476993026014971198653789081209139658456016764153461416855329318428487186839184472899289463555904514248170185185848950367840150083355285884434537058020267294112808896358340017273705929366059474382463215289630369766719664534340330414692734008418867948830001740818464408197868995816600059015923754821777467979594171068835884545035244763571109557589342700869926168704276845021357829106318984979573896269856485039241083281275560127042763496075657008415040536231522017674662236357051212244267564854247750713065685153020834822971382334850474690719059764550187161215819157259836135257027028587554590111474936290020062079198124787240383968177623782592338955777972512398324301782667110930294322566071803644345136088200629656467234090434273634664404197001362885524908404212747890188177188596106078443748428992952875334042685083626345526727732085233775959696861755839495528429737325537232935631231624522448147668491319783765336511145451172435757441707931218161215138272256091640317734603409013767956632920831127147189911273264265194995611385903012256542763354609635092941578917272746476629445695167301287845233782625428972681630903869205577520451332800714818092676998596894419287657325351239590870112869938681553928179616192925773763601415375689141538991378922625289999863690194401222896714431862420328998515239309045123324206528385862508038480387264048344143049308449263467145808239454008023149322218419455448601714635568150075591705483164891823993659318737742672342030810647572572416210572358663316707106639329705212916810323537063297391232098621260782613326406256774304041513196081875686154205119324617501884809286563131717953412354446906307856204323601974200716434525489542459578568932972694103047703666262158634230195199400420855794981485811783271286171483326470455025474351526135986016635012870784378744012665425698328193220550790035595048025675538233183979544056414884963150408191595246289139779455715680687644877467549950466338027024230099212390417217207556762920232305081433902275110730525293076653326849697709296445364141926815625823737419214156194203038896660933779423007090135554727640222474461254007734668830947005273787119655347266071278578081741635526635118608971686616372550452844766378382706575312207320770279378027360571487760850056748766924929643209086290348549204892200947017118829336955541935067247177601616986407932529837008404830443084182343073550521750369540650510386032821556694700450084412608608608533541742225889843788197839989561307665488957252156254152752879203652480300577756225552707196287209662255893364463721524380447176521943502316965281853521708642203198774905416105303568464807493070610997692406072848346104736923561078294845821917195989103865217180314821288769769788246358283316339942680079593827798363475916603137529411358935707438840594530553466957907134334312903153939210810241930049178247560326565658524195493727093148190240629304153434411831278297384773419557824601066489408742469531897480499119570456278950331356801988334900130705786687033588658493221381377097924575027159310745898903851995774540104200266478415364861523772518564846985979017355570338905965143868650827737873862541047172725152114598159561191367593702189016928113210914104632807364554950390413167913282107667082244766838579760649881961128579936202573231199748027946656014821762761494932872389802386875521186220211876556704434678646594736203181598878523244607515996041378541140455905187754749524440158176222093439729192633821861900414100219064274314439982739917673639920855251747751840661592211207812409482618447510606348869920178607842943582508248384992423415319920956761362069050034683301901447896078647962569962964055476509043258002138905249943168880070404045540213438242877910197559953834806592975405170109539561428082939707934645624312725541410994035052868269939748958336243541289741535991124491171165808038845405196587165552022751823413212265796735020845681701546302433936729383479854742612272157097113009179682537678896577268890705463425764656209644505126684163667077637145939602141429797694408714861679270214124453378632118888875181681389863558140499158082382974723639515425187699852516353027094520119434090609686877791061058043425907524992955646222736263461698544343286712618897301578273989359718804211182676980760913562641037731382519140720142628281418476533450695070919236926608641742410899591440980255605108372121332420849415871823447380068480270842705222605570635808947757147496271704885734508347995324996132625525340002000356344624178962483501098328868720854716835479751817179174893500384735512932042826359125888843413450103681335597884092325752632115600359936246796541364338710339909393910100312584008799932686389910597150670587375270651464682609233603278239380646589961895001678266567839921372073197018991543338371672358378234886268999416907743627782037484238743883064336395944373509299488913341087575351718095149036573424133750756504408820828323911184807555401807134418209889647218751902210486021987317634352247910216307273091127700925927699910980178115864669706837135198059250471621480626094340181876338794358548346494245032884395502069302105269056827564013427676631198234729195716145942841338047294352500190834487099834395153248867121138839465323452296496394018319921930255846058436561838127712887662796729699479231673879662597800102718166861286688767472344639070776372708146052074379764705669871149537050239120754793291182443143145339334500741092661172480617068324480470481654161370614670303393566905894964850731273176601268813578733000980173067097974278392026358640137079726094407142246678442070006982014643900028127499616444979291237252693785416731045249729012312592517025335724848347250691903091619763854838869850834135592111488299259995300801937833017141514452629794284617431016421340631641407495174802557385182861280965799849261387999693822787390724381549924480925889360287127417168418677388354962505035265272894669696388732966122744791453573199437587985806433193998075775501881712745141501526561468539278712263370683802327117013921831139971533609364629128203663707275874304664880963335985394924188250175976229514592550900863433566299590131557623213077631736284860868488418019748627789495826648147733215736590230760510144146650460963311007088743818264082782160437280443808023032491413613715355322872729347711225954030125326007221050426835953042364541659272996758650507535106987436192068938196669712453531063990267365575264897746164615454325210680920578395402262797220521032398106937480254292612587967671801123592342141798470650989042048249621495253158892803740976389923984297832054836619065395545921043824083221872615693075262658241134293693729933916413002605806336164567149191277568772243473640461354317286695136273701602670901590807345734740823397410625179393586230018923844392860675778597585990527419739065374803997996696395533500980936894450982610210719870305404190091928811403246115559433028101787383671379018071330905215358409697572324112774830601122672888493953932456146398519296763137362035185147343638704977616774618649050495746718302515656738016849021561889344385481873932667837410175668742598084939403749292841127862245484770240318953590057499745602560192724835283707550024067880106010016432714360893360404038970136000829397162652537821535472017501222502738314050740612558499460563597917501722981701927662229670906373520795717268831281819533636251862367110460647128458358469807007825236605582621031153366472759905694671332382890166221944389487380904683229008979678976471457237974675512966079616911149666638410595814472182566897717588415296173358432747139051233385205353934826767067313928141826401415984374543425039481049059800271127972119705064184402462091269969028979730457251152725007738799554467111137020725787164147986927884938056741924853790840111811504199008245411347390699807899226708666252245796352598293329344197380700663174145775333817178868105370908476380630306990143006156303749780340891091801359696708022090384305721743853602784419531132144473014798474894362986807725152316650420631659040580794031593587799813534606393055611570378891817690128169600957882215713119013636003781932968049257346559834109427304079338813582299848782742716301607398492814481510174703590063962311763830367824844545169604859062523249462248242743581754085370444245941868701844446261266744479204405853948968167876235012457210773513416020766439771012734355643406570328057754631798607651058367709076442073574551671543056833920270477893563356365361132510629810266379639955782962145739125933707479074576217747708963370136138886306514633227981078737686943459819062727833117087916826761052751405476493661482279884120407127671485357583023615687830059099304172631725884062071888185746278638004102135782975776363505745017105683060948994394368367375410361489658435257911275807292968174626996235250099495219421635766792348440046302743398157216106376371806406516087454156353503484513042926446654881685545193450424930383624436491966473096226788121164865773391555475174652933309762767401484510767598227841793004326314803330015986206956546230209241848482736836859996659309740187375806046908483870503854461656037887599103220668964702472585784234772816333986370965875721293318277028374914488347144193935249731967383512029640996592153615014292003231970625636138866130632342410051184496573037579558474085862662201144971886681190334745107203036073951376815649967532800685701285686523446016444410136998940813504121781766935942889147818192351752285430528678343390142678784370800074321366199270916141804080675766279973735932350781088029597284097732600478712318281713416965852233118170498899358286210607905905321552626023769528780032504635026077470729965309895818586308112168939663570491277467730714486626646735842576684512826215243736220647010114795174391134309462870290187752044010171149611152747655048530730524402601911752155805456160572414043344379729196992085450015299187539569810558268378513568607861601008991158781634529140893218239484681837491193790789718784205326846179067274123075974403257474825444894213140225700112197176427739797842399004868133276292154643076996504630197796476746237255531624213500151187243529154175637567004119421025844154098537732613322400550611056878414667148431775720835750984582788084170399122214306433218958170711019403335034786457081947850430620597794950238691042927572182908393983767208008705245402271312918584917347244949813975973872554875594269254277794513984523849353439585883895772324790549889578215637240405155602319346935584769619583499986003782297097209889511665038452853032383458210485264410642454361701530861552042834117200751740313401364269774044671170853873499161004802044914426485346264106134548239117387554429122265057988276024189904135466849822074758045635255478967943629840018750684705941039252774012374774235632085548544638194926765918238592619529618091672292779402644779893518123412283170750275561350911263605797187757803211602549082816553764830847075166322776344167919708997656378785196266602286873057158222891428603395253026017052130609468255167283395926864509711914692951020569181939383035119387771929010117006443602730721950235589329082565976216883742248294923189032597066542003417572903514460552006558203655186898339562779265317799774052602278325622934138775926904381558941581479025692677433688641415999102839447733074226239244997302010814670597194689680606736509952733706229976192627255742270489288614146253921548424421822829685861902740992251579004464708337424718908321123579383219742184452727222934608096051539481817133758261697929827059324447431739125642006190652281231209423209685159709803103784980896458746292691278968679892227924072263371912361651426415660735294907970578443811991960280183217067393293272206219865189627288735739811064131223302422687900631197622736345836041377838201636745406560296374733997285939845591363548158017615241427158262936203394142336728926612674864204391202374759826213483126345617709579963837840412476103079270515663006626133820989997872544138995352785064610935461397667178308044431971559034027365953701700620496662882247733807326938789380927361772607227242607348871063214518845013791965031838998498110781078372268025543938508572711869515223872420076875057255930358051234784321829830335999060890623895272862127642175364122370746333100861903146273505636214225286700564496142496292714191638524763330169185570787264819996745763070814092240278027228503722433832281764040109563999407984533023181315239782842545616905046362694413730246136685160033892637903961636195728891972640963036463647497361288448783635177777735813516419108951763438353551676880593420348017416145489922869053671363385740828991035162536296246750379518206122496162958241756384732480939557250580124441923270368185970436418667627884057264217079762699585804071148989297913140606534874437511876558822771728439333832333564079052225452190560681943077708814700864548994246341967250267425316472998420306204089286378006051495513769473521263277678662829378362469225818632989845463253186848950594978429644663276173753531572907993043685074914225920750852608565068404592798124756801002632566751668916555846312753933156413773908676440256559472934079625822091112193313389946743996888398792753496974172846065685910218845527096934026865886505146917190240025163707692147181193243061554704238263369663685901316621728835250582770160066058715695382878302130743730181071563778532986172680325306651597405307609175958772219942353285761105112158451144039992205002153497828183808562037964483800553615482364637282071479134472583444197434763526888066489589039435051586114069555376095487070415995299864918405244425976638999980251925994264871909684563716440312121335100319219958683258889843839284611527944133647964580396989911603942115670030795680425984576976769485805291536432600218128848396286892543516233843968824059017997260621979549409190917618738679113365256363856693373874045250412886015243843259692705555455975636866838127475994825420504976756018464367156477260617815963552666949602170092836180575028231157362476488559759782460022451324522301965222166183942837150096984940829846515884194841834156215478513880977963756503030183271847363528063285677550646375129711978534328940905150709535057785438701287763817460899703165913971723491925365146588568235191740243375052230065666450289353631732360780610346597340254544810513203285902791754326812674052797141622784462235718969473307507508906493142731506155251339811910470239046703930807416906930461366686375001559431614793322249557405663170206601810119812565107826110986820540053877902348925455753482188046245909630747380341756340427881328543052456996406839281471680303902524496361455943533369450243696991231790483361662414134439699112999976125331762913863070194919481858526932147255629896830364440165829484794543439214380723161738877892801898051087128083614284524889744524569140249781192566830657323818096752566506491750444195596858070127604604619713487875978485209525354199316411382971654303927639209938767677117091038608742277038301618937056588020627814689293929972059791130481842469196992759275367374095660872862066940582891242648738021232807696409856868777164681564478757826179539263453894254460197834448678102565461761929514131544715661645599331254961294738976845544121106388227436537401175173588948065534490648482048380935314480181389683386930127324536098083746487905212565306014187804566936630078009407209183506156212168877311552887253685275004402438957269177027871094721694520408910662634741303781650208330418213514425567312735770959308667098015494183128584048056470160741080859467196359661604411937254142451208931662157093776122654880148909485602027962243880884891150413167454596080036522774083162810433337093634806282946360254812951406179457149572220420871909186728290819952797878942536667159387165443269161586414522592694450781210819768071515828435652538743534473128143174442240043370884253506684537701789371081388491232518936503873307085550923815955581111096635788219885703900324891362828880231209838038500707237549943787008482055252784931792134285635250156865886681272875930840271832054347248240587754737709942975249214079705577368873439483292304442364742455776095676815351660658118630831016234921184778004181359844242414002239186099031103469505551667557683526855790553220394358033469272656714162896216874765273687784341793137408157161593545710080227386816153254158708621607689774701110193775295602294047672798819826879168083811814304087511291442685575864221218171480113488275721338498136810522664359493099355197840013233333482837476004381582433879772417025583635371789214565725344321336951178271986076952412213949041120214993695258498912959485285875082211761504877252347521455092642279911239602973692261842671582523702043710133171508787667158264021441954720490334495818120529605662619144155147104848411601342470455347021625810544715311662232200899359017266874651846607397840471392430411128442930614612531733858879135687938185867176877011704733512078035292540374677375283709766054874293146400614315503988512386865447988479468722169170597341434351184131708377974350127511455268624160328290065407694667905526270435955764391772322703618567776937779663230833465910439153456812920755933271821521681234933948738369979662126521384576676563680639731116703555259515915308268314980968324583257573845588858964713316645266950074108611085798416837234107390188156000141599564558945639967198176989443856119483794687956876068037533908494426743255301083491867023197556321787585836968422037740356278869949393062650048083058145894528955879969928103482719190361177909330626763325358338464410725121225345190668203877484205965603881950643243642218560144395796554220586944385984839371501360709101071477513248610498584808031107739711034841801867150099227711800999274603023283404978510275122569748825418369863876289512512000039061296960873209442120928262657522040136594132312161164774924939395631757687942963541810655135871046137305620951684259418108782591939437807477650808850175946069543746900729723223641724172405094599583838322590239893683973214352912263146311933431462161307402612680099951689709619252391737152859583301609255195937783534653695512228353213262059913582594319323431195072406058555204417203532466381572646189806723029362884998697418168679329180449320297730618918833139919180025996602130141963730366399562072286382239479655035355877499488405886823938428425186989951095456512577544752596499170530065810158767795225777264965586533141294677727710333261803110886004727401109604458508976935048838456105237858842769016781344358094977098468443257007613215691063165105143358548984009879449621970951446040264401558935330106938233628739538351921337224863351996149584339113322020441016919906539779906621225346732234707396500743265810416239416113087853173775300924425132207632867292072053959364474290405525350478839434271177619664346556943386457083792545174109925338504740093521042518362087944357324837004507347505269199003933449736484346402374166726243518939690768888457688457601206409485146731362740618977983464683869015782952591513331222880203622662315309954134658374350049242325611284659752522966869250939068400481979354128318423884692278529576777168558082413103590578705100464559581004683333765790097277549318162993330833127227671580174230781784542507168981051866162302732475581402703331506049355216645618133554766942428696862940860025183692609815444301487427226500279201360966095027734362036218736791713675127643429746699212296272472247869534511331561766832654484723166965349149828518102239348003504467837415698577040315676044604007559776267467584152415635207062841855772209239172089414896518527346554171465160890117304489169118205791064133014925066396340251372066060825389346231567335931686580256283299016965024949396998051309286178770848593997665418402053630150968111592466879792773567160955784680858027636298271939078263979468813976489158139965720782053229626304342054050549108093067648280911614229351634410896426412574155774680415058820590928885554315721361498358907977570085987094555464738107039448992258668847409935961547015610584601057888513791134195987824582202452205457782240658765422561633471457099126528271126513214955018103212024156882078172466307084734085296479086965717826374752190614963096703529847008531224637787353371144815653863903340484976132514373673283299807706781692084847140701374103785549374346404607155502742278584374106203066625203085662905432196256635592258302599822165601781195878590147745945397372954950241422472398205364892372103562740773184234304346418888898462963303327278632885920748932910636772559905927127966337635240022846073082311524649540874300678967067013579970112474826871178861538006654423239986580009863031302766816067810282302706097319352150389941718232679701279640352913783283733861728339762466677006584813915483498580815252335210178922443306246750453175603031291189722763095405605866662027600394603252080947149939505928740457519613768500422204813493344784144525468786207341638144658859303428014080967909063616469370652406884152726551815199903333683219701508820927752323473947679178779891616343034744211152400421405521083601415644879525319439297810892032497861571925489521996899788915368601323555473341780504218058498191570660599796026231354421592882293906009701733795094062578178797866197848395241824945919973131746891365615705017471067859506220182660980804412258411154737930314960136079662691642414418050408159782405770337142455389787378574659209746559098299392779788317701225910282757500276159732271025365671251599123703449438608552878069787515820731510844846480592298202007405079327643792730984038272941890075345863497432279810825819260831800899638164131724433354773742041556017695935047310735526992743533878829902439255581416298352777489202677716837303973786818744726504641443495476860633514366079623168675011502661985378007867178464766130980192887523909788629038022627327066257997981674983389083375178190882963781720484662699031764880053932008219567453189036073830037609134210805216805809171843439365476829589522144360639738498309412626995071586954921666646615808724327486955774919699669367602244782262774291472952633724273587175828010812562045755045040011050281964678304173071987977173648286776165252237325447769301719064549697745049113599959289625247851000572643283958338881998844317751175126085264421619366139126102865850687799444124996336616698566294942829643900846771248502226888513058821116379307554611744496211685920695236447128634147242291976671078320694585251210538052384659492675517766165834733988989199249040139401851700194982860963145106892425049713014066325624887023320572795073504408745254532725359452801875753382087425951407404463139751676654531722170183644719523227725790028048029808832745982259838742113399067050779267107627332587197846514317844784742890031941764470134667675815639347085983299276784357961200193297318705573265515594567806044478738882821940078628180917239026159350781094504155217494186308313027551837420526331437701943706782093826576769377506333358455305183497227356067076537751202019578814852793841242753647110269997277603933135559912469732206156721186593417567452855540122206358882363168804785175640631031896210821395466264883198543449009007651009622200470275206232816700430630854015591909922475259510708802947410183103702459287766783105148151747495245669942278724736771207463954913242041357249104671561187811440480724537984860566225690739405678238251903225203253578346074382446630659880075730625202120870619873015161415704950354573246249025121327991602711174853746613805846259443881401718506124596404765014741308684355782654378688205970917607530241009803937483721243824390211015360478683862491072987481773211310583568616263230770283981708151348971152603919972913464654750219645325507810456648029998797023857474547689748517143502862102534981239538608652805294024256253652664173436225779187906803950632447347114410156070660392744819711548442534736119440158517593663850474769582350111677876091292288806788130257009713413863191009965363561156586715961847617887802202230977064971873322362897466903462508224561224702576384194315790631668066602410486651215444841999067304305101533450239327395351743812768888619656876400338264268569574504136977066274648882431336674848005245407305930892398206428864417412479650249366534327447074077930855375024988020328070761335772098050302323104887496036267545483638429517378047838139290829671057871044237365120413546546489527395223813883189303342498180465108351490653886239313375242000375380755278980275271768874841839424736654984931098868462454158922574776201847669177692229251639903518635151579369107490055213563527110949526811935329949075061776617718592335560946224432323208247825802981886604614004361838466158874750320503788807718944936913408953116818698291815124403986311075890046830621804334774981172630960623317220833711440264637719244375486387461885735927573176570916208621895778163540468407569285191394692269493043385274786735899426181010804569257215584657034813206916721969003705588233330780998343297650268644279830267881965722404644628571961869648572719132686432321093951972427338994803487237174963204953051342843121179731489581352222803863090099737760029101474783220461002536573657798046757505998437098899500134540170919582449841798993850001330494205116367958287206670108807972011798703992525511675480869468538122759645591586422481414205252342557520471009714067879631376599187890137619920767053058174370888107042337204471308859063109458249751492891483116256669130675475162909235401468058481453610465242388419335852671424344648618844645694999948473284720223953608231867454646499842685764983101455366152026471016826634036157264022682378411714371826741811154266267755853384350438713212407886524244356404846270002656167559369960182863521584399272745796303784685264411031553705019392519112498542038212585198518724233447767212053894529870665478135514371782254421638795359676911952145602370254462119428190693454319021074468534655321450342351454288837963514627454733634679725309886916607602135264180345424771096952422463124618944509765762219679455198556696941158020022000367898022850613082149757552880882607881950999707061212386801664025279908553231794108228289929317356147195271290627438294453404559833173303567322430793795154681102142293334004676895090141009217581122534608442037988532855509262844963764842556808282109877549834072308602561539141113809491519024530621646397929966803209428038670816318736817162434097255389253471347236121711640122243189733572042437802295327124928154498143375115561406694582653184545292057571074642175927913632894251564339915325640271842459532490070768031935041689611280262223942108037400801069599194637578694507068258339567020166773345989540385098911073301307986279704201413267760742282118716653507492964752960053015287299481389869263399653795484548391805849275602827109855625068695276214102773431762733398085740454150778363650865105704458549878765671218436837838210613930069415988409884697920094755698836634200199342370823969863282858408959206498828894901995937530827883886436852485108408644002141556274802090297780080168384906657468070168952449886202387534486773598076886322937732048111097681551306307915079896363480312203290214333505680650122597175831132235651898434891847588045141863514456843609530677343092195595009724784856797392440182676461571326534032094063877794389324411233800364700879176122333337963557976867406100016810035814214735038572556773134572878378894928396678148421386258201899510537048748245545324593570765168655072995398551736863115413532696599637794182026482083186856705548498086720990007575297935633241554401797228404316812370860967080924824666162586204800257229199276272674370454421923356982756360740002178062439866351194182464995171834269677636923893510618082297988243735918826282093954361843794514163492829942495138302011033256526632691390042656817654511910049715315895291565220169316665624350627000188893633402159135481816264054954778594730403708421284041656876110615503396887504153919337006021338746221234668386128361601488939398859097702716292984667163082191424713328271651177647768442242144380607270899692902347572638417005702513220377626846197226403870852016824240972051093907280548712052736166622444435545130621280900215199963496020000308867489582155416001497226659617394697707283855872561342543669043629991823542943085938544698236364255389049154785882214411814822575732440022107408521500799751483602121754125216201896219212104301986475514821968484768430037945909817202125130320239230707073427185981218886197011780497032532062599773726129368569639758601236723969292357231119075053030949805447019433362437802446635819013489604696954823295131241720815194627748303835130196507901591609503286887065098956464875951823731332193001904276813109412278010595054922267850404293317075729075841041001583821718553226769338790395625030043335728514440344909758134230466015294951982490458142247128385360084302347495417991812467216841918087720156162463672541162507438887657925452152905876678772845661907647203013570544225998717282978748828327061257054019013614540250051369466324755023303734960965449076361333670614994905353701419588051526373376872243747433557253531382894078103836019423695324898026930592697833903493892747244192681919664155174108412278739954451095611779196334268722823619903701821947823575370967541639396092996698683752093164310585871205947807133939133777277135603651062711135558287441656792715886054786711315736755158767667530087670394544027283491325521029811003256932703981056061918421832865407271141875516315740920204207440933645841348505430838425475930341479919511958542150836784214160574532102894425748328905862986157039506498799233225459407845310985043212927762938883632690125720495246077615973300428645061065595742060130782764538760734532186471968706270882107982860689081869013677887609709099068107994640887959963880264052933908601949820648867852750962295784281133399537065396448515127329565636560604425233274133761046393709387938425445574891222692138477453652225376768174580995803319710971509032087642189997050379602593824370295738734609360475495185064816514720864966311886176710703951679254551048100077244436808660649783754977633849161974591525058687638460655704576880928571115161251884082156710793854138882956604247146107904895674938627946263506157056978740780379721440195161645921565623668985343957114004284682632341260992679202145900355544548842370202330442415706838971533435923177821672304271645024899994871268860929732461686170866067124061010655484808193834913782515161003771730498963769886183136725564964404938832864674349950506808428591740045702430164122867815716491174387878998748780923584920480655298652702748717777476913524592158002658239677964701424605830887296080714137592394911426464196104926064086202051294091994742643669791024023868219828808948408658933124217574980496187026053593134125807743568621958806618422549259197852493585734034115105614551404212010507586967079254916494577774912721743272892585112001475890309473887151324863603947821664045939153437025835068228304128201312022777408583496527797645420359749163432441145814821014241326237220557755519116591166043101773049150186273030537863698924201717714343044150924091923011632812345261571792012294901177614478175150449436782051471693911022367569032376030468438332120756998723652794134361517360820144775514521672614263812568989805091226250287874286812956368612349354456112254262799852043036922836062862784747893107306792815544068500732678107670723182561492839349653405195441673495818217495440836376466719510342787230165688368852081290947760142481653003267267146296501419220684294155754206836620932015455771084266035156230575970385406587096513880100446618082523910202730060629378861055661171166567484223438670757597712776287878711353264572956919461822427841985578989298446992517782954512630517978323206201467258092429684950077950540187950696488965533783182455935241587237750175066115309181555013556296161457774344728725337958018156349301567536064618950142820982924808066773271198950268491209429471850713978117985575465292920667435163676625001411822319280888330406356696972343775104185140130635499580085203124466387295647156753962810274070936233875872891840655787970454255423673916698243181540092026217928092655328119814447003215917657149802602310333101298120835785925392432488891213720943966853717777898100426703070037333981615182883229910687483087175686219019230330701230961011331206733616239988490226055800284130563204275994705513679490053847631499239550033811247882935420355218667090669114220577959944274216446155659919005596844826654339475355033924736160546669879882446914925530166899898523865957917748427516545143076625365343377031755850472792599717022269170044467714675175965688622157940654042039498809741613445302323775281483624526520229602884082386300822393020863140086206313519713861513110398085894740768527683895852475986029767200275932482895672162295437496890593283349686260595624859469197920196089259934655930826192664456474132071685234193010168458565214309479650630285764575552241930204584757559336882247143883801306431103591429711054693329267674071897250584892522209291929703112779225105388627501967344775963793415820926414527657166343464662957771163189343197751395097714252790955395698829180933387040552926695826838411809366468323476166183816970624949751760176342589185462194710175662442080251515500523985030928423386058523917781660516171909036445096978552586204184819156772719181442015451142979465652367031209202373612684996073938220174253251270828274768388497497394662671172506094098848083132135448731181152979991755455086317379976053304149210380215031672793006712091157880411135393546463637722642879933201792436261426957229035643648253520018216182064241373097087126465635884395848963992382533615344834559659670487079140181579759696182216704729785369029942323630299613063578442818822338806152517151679833153185615369222558111351594834474828187635149640172437128814435574848323415824861764295764814503247298892969787685660632730164851686341979703138329336366284110273125618360637767806816583650880909833718706904383706197345604757108733329160535338990348844855337088735882472031946463599256109564091943256378193855859076434964602459564298005522218048631879783589934453363638189678744014364706215366296024234243363232572369766458848307791669517425121704630595641802497974158898439722094020375227921259328890505464540754669889518869687678008927256428712987147147613177703885397590552561471467268945760373916358806979088882226011670365053195691008700021345879461614133952227756720105490636334238784021011078297890787445119100479265980510902316709811698354337154838713105888840317782736386110466641142017240482849668385488407599521437270660850335418402003340528369446615842701697840621015004952030197947741782079559696505527657036357614711558235666633954657486668010818988880032428191552944799183006285663272350591791570074809072830150365755901277522048826319830799375471310231840839815522876537987393010278348571666466929325387725501815844801379765823743647874886453505047960116943240814208978839889391975512335807358856894018115129324427074280074337069599159108646480597169896645162888213795090105425488821956602724843108774217850868398490866491074496186138320420230933909243626232273453092733514565117548929293731309752882333076152895443607180411954346100560913467390842919943711659789820948384313705412675602070467124412949754192700910801220031222714866150447196384280750935190339007651134565842513608472963741660615915362123496629890194786335971188395330359037540191936048135097925700410853685614979840448661240890829169453199819206729027468947554877663309195711311604424053534282818221170768749152134967770902034841686238871853008404323987923603483937451771127021097718370684483051813792215999106061780379229718064054070640145455647087991442812895337096577110931646275241977305390147463050428310998679383556228220632844246341499592307758510852430651709137516067181526294808111431312199244360469644772898202904886027654182264217644883584901103312520117484710914139048928195016662056993221337861159083954289619940259635226561152590667182614190110936817161548500780684958462475816337726715458472319935214779243166953349128476480697310746519888412248857527417541896702860281873204905796945245933588443101533625415519415057456068763710011835294704437180118249366927196296483738028402627362284208843630815339199067459047637125496810941302979940155066580990878201789410371843311782425651323427353054521804081608230319201829817887555965351010539874520658921090094852804611141381316580633066379997757997831483597289245911169778565246251908797840228673912613439532701175683475102129505208573456500970294282573809441201167043088628475035976397301254993301971174417788437039886558525897111561173143283548461941493341534013081088629009966125019915587783421585996741870836919333330257499083446141952490819211544211831930620344031212603563499353027162002661862127221261300361296057216583593895539681706793649194363249380008319792062382996964556667823031831620714214645247866862984382798511247592795472632719205170388326419592017943204825392112986918426065712399630545853137848181085612048317985573986931247525085246176182511496155723479531212904634487958049304293845010350026517721504749615449883650573830292023352423678552664860261124315061986652275552121510986741833680458378607301602631849816504565838207134732271888600085497991755441612577836089138232006201317162632534986187248597235867659608789423138582432296814511554311876537952409962133161471315914293440460553003133962547004405099101668644434948483703037171512799237991616939872731884834632509466077691311848173109111159479359956543022781550396935573507174037290983701411213553658966542107339649784018032796978429365958302298020511254782487927531218508104681545941194269950782655764532683452951283197533774973020600767734738965961010378423862364062435553168266729609644753775050342536265034277612217143922563776613516873251359194828862257248576971811881218918066126406505643562978261457032749282347252214745736118475028173684217945194793599678891802407003347854842363392225114538882630827010312286104668456360452537251958447756605702810416295825279918706317189524429523129463731418277140085107528777403844898967611459205893820946745716682066178717317356059121284184274521752545544350295563840024119441787347824869808807155828127090206418429906732197765879814910179962501331376646136064943159956816380671325502464176235394278636515513225373903987730194541169715306308191741817797337646702153750468090920268242703995660246999264436142578530262309289474397528064584069792009603159682461690787489709313750565893491131568257016680357792573190784143013457488203410322337814362822516201361231219503264073801729072021985265149239331454285724177335359537931211367580182603522374777531775956368147182399370605888392150452915308674503402308754766444585730258837609392242017755590949741017737639282349767217372923368151002219873298987818288139929534463943476774460666107139618305273036274380993725214450433707773148211901040577765195543565907003984023743200566986360369499420268718716623598490884180836471070372611645995234307123198634671772743130897712912275640506980307527748999928739996442424766591233847529120105198182703296775673631605929818820506747099184849557317345606026792108370916390399388612548080955010998488423873206720781001154992537576302278303226478274736876416412930634486945192195373557904931998926240703952160017289555879100404595195842967680976645407426750434978106999140253648113045172408881767643522525794916147714193463232013044046426462887055085435513878018658254480977230247935994650896056261606797621609764336847119453440830860484881155099635093443763309058276887998560003679975872524450533073727126916691795239697925641825858958140197054577564766323744164465641134045692055066395074776713406104012041300925384355927592422449328070373546148908291397328652558404849801310348305638918675764001890081638666825304113210642058716579989359279384203871753419401243839689482990830175114264196706868889506520492850779395673945042356237735280965766430165589909094653333845619251503326970137534256739556866273563293296082620331324395486541186513067641807995171958758489308110436788259326627725779221379061221332104543099895073375473446804469422651843093446301320987001819899652809966005753091876284121651560060561822769314510114449594391429553980370147648066226679956980583019864394170049552772416378260627253035469244547789857354886274897608341191016144759757038777103168015539982553986500195497115727803072733302717463310277119676011965199108268159892804386339799986612878619702692246884406446917174744109352806884248888021472568767889916388890000153153489313555277345470935586003539850196300898355107946066815546566755901176801127962414539133688302646178115168064906332409213665686425057016453956024882556145996490072627643213895094589123413169625291484574224944013693423500348795151826009082907304781552610805943087948123645928535617951509190854101987678826392257564294464804415613227474907237491471032376549740702717422247388278709097679707328681499577249797459824262063876048454656197870699832766184260979843233755327564721152251017004463809670967943645105936036677428915103062910384216188676025751136298088904670546847992930442841674308772034553346165469982151101367717291555302489093211281051280204955436765795400530170682010228656207462115789994291892723107037214634228943957097156701087709282516695362338591265849798770953264960488910564359359529035256612201694047478356471730591037669804767937473521731586037707001029330672281840347474328289089304486229789812152660639369233881522248775384376256194591934340272757195955155945140839777455749375700082038594862914083601106281710000877650712248271308933846557510649687643919263975794672805664539934887980266216107006691526055378038733840131227103316693920508514716155869308893680015761687659114342979862041077141609455386498993359933749004782504126801908022399443254540593947262684706426889145409967230423110012074451114923202275160800432485070366241582860298367899658798606504648484919070812691460333651921696405977735612449936898718614000381328002871654474233772168909671695674677959787282422227533907390860575445175644997281917171778591651007495280424166588443449287529343567104144423908885546631560189314964967849402001330899166253943030867071556557720537790693284013316799021237649476297176325675337128557759974901126569927658388063540313463782138732784642165425951661536947177891342665737096639881785045806401811664128127429543853761550897465114560558467005565603890537091320545252075494637943588800922757510860862583349995061663124724840068702799626690204495990957000502936472149678178594887943085595591500864920930843822221992700756831450861718783569454182316964159369686115062697178427997175368152239918182817390150529432280557818442326937811869308648554799025562368285640318830945434677386655907591190097749270821033489314377517809093910398030528930976792795815008029728496168455061086822512167049848344990840851543726720135996421834649631326885126008790454680433747898434945977349166567095675460480174334052672804794212318716008535710164645106185407999353079645587155585540333297488804481584510170259950328601255819378154901241063854890224534411586370177375981699580907904816563977256063604920486418126784143706101412875570808909973040478077755885376436794295168761988724808034936281896785460706981116831322445329752952675272668299359122147257936809767436374815623264438110911927812919505806245994381835463556157293515937189587879871030920215503432588543126703883922227000511120623125183024976676289789122955092565008361951961021223981549766577071600329339328257355386850270876734460963805120476691385663840987314622949039629903938384570438847904082162385456644970988554270211041794297600469860323225613570491934880553590690925741300296113303310064180147157070888923762026342176008298397647576789546900528696273165730355438018902333264946360937652993330785951434315961930276770814596724505331049468599335300991345367581551948794203958687757985088925455478522090875956043638854620313407346985906645643873249782671582894145102205176055600764633086474707576574880033158703910112389829780067767302560782900231376194154284643189489150354423932395271986266537510459341980271290921811768480521953038489834916626205748033562741545729696436736182069773049737672594287743558737923709982460322532883210983462083195654882248287263611896165119494096433788577603198742924801567620406880586392956559023143000701711115307966607203945136236505836763832701932539655553220009740792493330829658175673140742268958682869186218390891237349355923804327341302563153233978763527287217451759723576280604608815271976072902705640477108390067086063200104548003010177073091571891187874212064831712960965473299631793526818449960111531528596901559306138082292949009641376523304236106579088282324001675409409014224171338412507756067405543765166179144208954648887120818069171202359741602349490776541629657628199040447716082165223857330144958836014148504865733932629164830450407765466469017211321543751974726251809889144564745096152320704232904471870332915051849235222111862739024174633253235194424716773553304697973142954399750131648694169717682247077424374958101436425997663477013551052959762909605959839284243120595012829143783263724164623205204053029724887416999538357595202207593553950659125223364683708242723301894293781349066268987776010756827005228665642941884409937552484322602896561484141941052279491703142707778138082268942993038516664123805427072639333327313377238818007987526112569799896917306838123527105180829142651350919033902385576854555182281327754177598684995540317024654021396658870717394093921036866776626331615174631701618745038417202001779145148481184613189691207201044402620964941493976848539630194800809196227863279243178638909200038481451629321502786832561882822272336425907673249012495476032283613071726800322518271040856683505105892389847664905770071747564811193275416633915350166927756093822940553077937987270491809469656480937703115654644319833451475207320921169039114576023415877499983538075697117479992066602547837743876445593405107816387517131477790860559995012111160733375352439153949098579136724498285664365223602201733554245304363928122731183689341169194347292306322697155121785845493730850927360061391451774721545926527886410762424895421550685458986192894773528461247053586772394200784206875008236101634084010389679153748434779235901313659615232754073738926637964640772974054072835784469371527804295177825202506692551028978254886629463994737316291138238048135900208160673625392691713759972936083040524055491367950307292012729551784507033264096364499036651646249522548756192379958323299386742489715838712809633318214557385773691735006551288916280497441554992494295344414107971729015090380336219514738480585922348941107415010825891181128961672625071081261587234492428757386113923759570694891639462538972791928359622965738647487487381848950893985973835716249529304654412482500099951655870153003751475033990390578478179457647534870373721624393966450062157034530640023221456169062196303386656479248559635770045761458728305377320116952511491663100739155128436503707685932440348971567434949447857769241442322035699656470863947461442531453222194439173141187318436245228466634709158444825667395827300616886496277443420752918550128277723205953862738132390375812773793384586432866830335287379284036779492663945648007480578926346853750028555013211356919937392611192764962435239457882885121273596638138207782504127675677994990823658497366430515824395796444190366579786516427238743187067087456344424764147049110929969367117640460149610552872293868095460190508022226972865690374401721760587085825482601861096436389801831027102533205332847007051270245899492467664848194570962438909649736724499987566009013733969320738442764775751384064951779538787053131337052776913133378589161513394935569874363768854881723560037095760247360060212661160782026265267181980792874899244781437187698496844566639251462931802890344684816658494181919239151371409159914980537455773844223185404539167345216782356327656309996635110675951440929133021628071821519576525775717660839003085041059783508140717851910433635714843972698857982405691462685431946972694410368366276928473088736383855588224295367277669531253352649621362689128592972093448345475843740523184982356111823452813423430989474125583831679417815702310154615468393376038276136334638661306178210159085147803608742664292266838359731195695937464277795719414478571074045263460169963138802950397805710194403158490374851360780147360063884334636343196134559066883318441771438446158133837611837068200399438398809838615124417619162926648280730766416214353660752321340148296726326805106596239190143958753518485299004022421135457160519573045497901806909086851456540618784600312785794786711680231738470638433134454054866162420096540372289124068186620376340433563989259434886852768017844745255308746458616759658377872452462609888298780334774657120157857641897924628900005107136562579914612476225369721083772361539911501321557436667839201678609085905703615733077013168843163504666124065117174662607087528394809354046328136988927237258948568776839706620013149332122169054926951222114691130514567163137840380117420455632806369928089908252575665415437313210392398756880876023825584037542392451751312044561036500822897606135299084342313999746801623844304750345033183774682471727135851811443068831322817578203067004635981129041003694570184504830999087318450847572165174336998238422782809783086003546894296697127437896614537012102018778892059063125701418739899314225957668956059507518902505459783930645614321380482568756763660712826514887758185129365526523944456065491766114397077912778857975278847049613345082113434265328471096811609143874614047966764705974204016848562568764895343704670751014990279227671556827928971279086121120546919434715149101521303867139779940975654132466252534772263642908251648055332584992041245517299289156340793938697375162592469426116320201396292834192082604269579086630835196010274587370983237052886861117814317366908284546046650667119034488834367308214030828358702615205647773717195106090447875792622991443431988447676614772627561736872181125278750139929739191566975738628660911492101871214294783934713543597095746487433997523596517005990534909030558826904402123706969991410497472212506884855258531888013452148743521249680681556902433129997398775141753283703770454527649889580049181479494259645845200416673442721874321442566646562132844821740487979330146068017176138868441506194067627000490069558206633083051379890632109355501633179350454300778547993456131443711094147360240998167254779650976472745989608411060496420021274565058684742090927817710435583879636553479758496048285366272868085009444178744736476268838106173913799143566211033486261548342652792817874440159493518302143832419367272288344461005589244395113688226211198770386880039420745757187828196663622504191577204585606539796832325460959686868074910276803209819228747838317036614626377051506590897575685090641502309885461071817549957002202264521629522894389732867303286840163576540576899864323061170053930325100074156600405143658035014753388942063901340975946739793707551544931578746113491317688332390399347092381274110000083767338854168726571258878996824277117512841069536801487032521621409392981600671097977406338954046975509810663798832730463384292524893191063341720849433863834713902183444027111381334901723108287172516441110473511119058311313067395744916409895898078290699238793253004429089389925691573290985136288625384374252814451404878487544021071780901257199338753902710981827646757312190537948153749345736626573795666307824529688737999072998787951721644268866939325122894053617490285244894746971022390319916238141289485066963117661195856330674356391166350605443442284968076822116053909020702833411536993457584935692964680946212101036304753900892453109970609824760598260652431264776187777642552007332185278433144449221714798978246572472851341987396163972477999257280395386962532751330499099490379143038633635765863047854285003256022885755242387492815638494497554770623099315532869940662529761269508535600673763303441570705014133283855691693309696507900239761705993881217901103040736550399691147066243423791156099682559198315330212118224076608445558070461696614577183766710655245738312670793412343590206220482824388899422826024302393978916556993084408202314083808211309224720891243646885602489521369067972596267766781408047917532738897151051326938727860791755391048560184684347495810422404683214225788132739307451725386433827112813848622548955780172861025922921590272876758327261074409769471149521913929953076063543948118265512850850226657002097207853754240761222424174085132226810533834873365749126629342758714270522192658443411241082679260705937868735210967095059592821213648892230982905840583731936774408683486518299188569348712367246371611467207043825494912835341028315178090158828384496105244332108589358919204146386854077308861662150658451342277198055362524443239484828357717287025323426765037704333294735035066412826102723762160615957777131629253010771046870155272902469928632419036071266280981751921903072641731072952589639410707221464458572396362756517554254408143558655336129774929113498450311805848261442186974177677485303840538491917467516015233568698489938754631352030747720001760850040799187464734865606294618375921800383026639842061719817425443141945590522838405701045023538722313563991436786188664254489967526183995901721636579906622424788381952149793102409657795016902573530539533310698822209619017960837336836028462439027346698598226832038971978463655830021664266381291750356600233939984469090250370502464771371269991138137100745537438312224814240059991057043249643240305542035994190549623142616278181220116628179928860652308882398421904442512306627488268126101878614796852253365429146769766536929616181400590932691004823894087480427540647272820116301362569762342955993596286557325902655652997641995407692694212520032705934301892938390067987589141961330889010476082210486022636973245102278901230323673471061446565957619276996843498730570312006908202763833749538347053429131104954591987519074093867835305934909133901963569035050566415588672321485996386142466280488587962717860494881600625432612847346189640935488336025507415553821508764357226246223358504642976194511252977005214216827984526713287816912606796810817017488926606039733044155944724751644910152855599732303274965979910218088916417308774259851205210275485016274496142127997549729213746988843062992602688088440173546223205889766478691878128567503423355041944811421147082587802554948659337819547299931101692081348036686491091091272068054048461426678371211383941967953545630831861204588281553310012932206687770900718123692787580279890298686009639674361368616744855409052964275840854320866782506733972555522424301647947112094249913415016604790119666862829435480051985351940043721297060195204680970547623794366564985814666097542558444134889510282928405402334908410931186599412973124131068087140485869940666338703657648792218747024475808087927406282997303900460986795934821759457693142524802211657445628668259883871490180500429518859338500470564514589708253560537483467757922925379664410528872460165999947915702406244156251173417160386861905088183337936414058159510737130886610511209618124658762091741265927505285305386208966060192640561355202941760488995167977106771635790068720757787685594035795546444445435979638972036672775980844364667119249200388872438354223632061638059540021919263863416443558180348930901656729150566152548805182897528899830742635151739381739239935559859637795551234569649426582079845675674060543045147625094830918883813264348080892492652137868926620379977235476530278422207234517570064560130153142987483508747733486765970958650922153738483681419506033867715833306240390906667974622833314057554435440889970542122880477886026539000050016025947170252180625836297150281465766724299499268435906750533386780232943916432886758345211791805445772815150543397753822507895998096276968526637692718992542886828718316624499483411691796513358654799451603904401463778820764253275675511995931115812203622508435050786289318461049448675488683724901214516226316601532170972608165685019413256327253211650638148690132706502372230904333426711909571811326293612659228840036868508465610236023355674467164810490033418770191618235742416173692853876131071568672003392296817431573345965432882937756476666389210109897414140206128929551283367404765430142950177725595034323235890514081767859286879690890351921687356579539335774369141015353758969638762713062568550591611996773797439259058232798902743289930591658787740384184651750458742758749977174893366872976696377376794623443194153705412215952817533389004415860400688798225388738766496280795634692446908939687396101347283703807489622165967216422472531366065833630176131898527703705261223535450960594092766388715917982822105533730382104161499168907946642986861045958225088198771987769641971662402030705550989116652841909959956127456266986468409815265134235439362795561435022553146824179155127654104793337754900805649636831185955269980090941844150063227630362317720129981531218257793170595140147840770317588192449997072382270694118884211602964900765480523666719704185812153271732451351235673875492629983672123298823256655590339822433990024804923960803603384451557263225279070091397066916943209031369612327615907151635162212605175184039600940014047979497362119635113888907622629352057240689563395835190098980827346199886539181403027139731487105964716340074019628520825724155467673571801224184717987149806096487212093242374291984220593294494366561392885173971774056776944048792197736467963739455634517074851150353420167596411612303424131489923391268141130923451816843740173899724053468343470967915920639374205426323760392158248826536076661088133098165084975674530037143493989524461955289785770863690325771261090404779633996798050816841225221891628831729089351539377617023110569869244069968268290360718972888654979472350310139137356461021638007778399093638492566242629910592307943284535430025569636259360382092925873405565907160272498797521517287801106177262286822965220165186716775732493398696967774870628414428275202917288101847410511471397185425005564484650824507287842926829334021921209912182055737567903790144545467108954506666336219662927335716938712741264694570463781907975973983655265880065648665855936462725556102467455465132682518234517174945092744559586132430692720650059194420035975246529012626162870326444102550331119078629513779321773075299461736064034041630604212919097657697351893224889930053157127500363195476673403499304456817288459844278060226584413985279651810847408995285643245795401672831672763977032413430933833103315865664207782067326095930115297793969774081998847528151581735224519490033359701107949289769941231250381493215044135328729188652796509879911656195787664619890124146466078383030822526290631987724735101287342079434978569099077199834303022900510656181309884714802465848550471852680351078083456219094732715903577498271612600170815556468949494613994177567445547046243611009014235777277371864308485948284929084771626648587583547639905734889733991996224980436423046163833699156651956088804970871728191189977941377390863627538681417248194691442135724758128872911312006571990407497735525652189357761737650967026729277734870922331353479873005060055511613936909512371282123072244126699972237434197694281165373122489148987625084315595956711163839130815462951593911833062432822355462013047169179547243864905461148039011681114705987422188368974523709088656931121862779874014993433739095804410629800007785545646302462966380973820882119527104617828182474076713797793906559590072844203877528150891445453753755059595026969909085422962559047664722506279674473659440857381789196724041831969693950736142032895360426675207095264930818119049272118256033685957482197380966705457432503066959284981385745357869095055789394280878903959826245698255610632635453422365489915355366181188576145371613548015700764231197662875771336852628197615298313163644999673782826110763640723444470075859140966464006357146875638850856712474768772346236560809338736297498959045122822264459337111349688093005813561695978095347156587960722244553414368987392074506443732841836219739919394886418236471961758890042699305843637911021073469046823278488678434660806695460424020124516718688657462383590030194514778791795058418566048929487161016648929568171885274275171533978570167475056299757687737137672398010599888883166221542307695454705808777475748889575608159342035428743266888604675737291479264056641887190666080122544802921555414252969743861724926944575046690669276051922407726727256594575238157323566522196801356041301727168967785036534040695244991675359563199579348834589224302854501559834382847706719792792719988013938071486060771042346178019133073817453163944160547833387814608787415637145778996291220330338062831563816381998409549631242390082392744733779709351839820523816746185327339547427947396970017833033255072523241163281706055680737337584114404540501920850478495091809977039752206453485365170057020039469875395535333935687545009804533424504622142295698280611161018443450202295337009514705094906597842453436032533435123847173727573034406855238771999154675180163750626960327551689775628095868743784950347676567590783745061844934200219818132737141899248534351784795822162387215956156358759159268628817449891367095983860752712191904566034499796341005693315022973362059486731354804772810290865911164430078566014478182914954872106843407311536308976616723538940946458168237464791247191774136269842171137348667121675422147002294423864309825346706582813754118662736958954912519490494497813757433908658102093999987652598072916855087980569515007317141118473212502868901467378373369314860148575072067339369903705735262072723690487508268807462109371526139678883191521840818731815321924242248966108074382148915494828607230239683665788265044275960331788374142497484690153941673828763739354751721822524149714713195472653086105228703128381104203936952307153642285658934333137831057118414161877623143284303468950838622892387438319625631365994700415925353210511984485125486780527748672408197275831181555657380995126356794584162034432161215058090751780498661268125692771600025869358387542695550934353089126190953421282274335026974514226641337860115683811130651252446099854853730905784910705532279382556575145000198619367849927361753774931152689909146663977154308393139311110366902610326245830318515971307298864768977269218100257775217710743955587187334061081517032551893853157290706705020178304016679928676399503904905145515700473052472190376062693878819053210282769887256857579541890310094647437361357528428649759027108742214178760248541733322731255425343103015665254062732794111575824697484713410357355653843526468171708834634370164814674631662730368069677869344997025238128220067912562515696003850286887557929811890346059205300119695032762852839518436508579259304835646852954083703610885807857331372003452466808777233231614626010617314945573006116891539033858034431135963653784958857795915569749940045200497823896004758560646249730283361197609290618049220704142892477062708766684645795905913672528401796858983276998662464497487546885783104566415905096298104308543608943601122961486399276559069095327488481475642716280138375629635314652031183841375499061125833802262995181160894381721504226855167085940760698214757199909612794579234408045879871260424364507179233449485407127881656110976900252422611217312155045400564366120154976395066341299701073673599657710945814295682590307729919125310506923710597971218100245541424069425494240040146924446534099238369013082212793927482224293136191568903613100104706615366782867805733391299522486742949316778690745083054889727811579897489059278848694030831946498215022968693550785399648257444472772070235924361504017298687402838983844996691275938370784235061784333223811131185957682107225653663907927046308202922183752558945941669971441241255278200074209725685174993719464730891115150261966663947918524872986809292788364940144519387823627696738078180782687546964794648171431726523041047639134321439069972780973898964001604280825154469251939824691838136081389793566550671654256198713011135992990274846108962029102408870910530747165270851988964835533110949079388977364226064834016633437241089745532856563858151310288231758147680682105369754676745141494850421180720191994151563996943254669679235961300226904016739139507601254369507469877285794758584220889936943519085702442143173630292703918843798171529169806240336082224951447345910343102758034576806607016365402820563061591813078705041766764266832079552698625941503101936333497795411295282125906221342599258062240286901180407462473339182645985546009250998046853023135589706974842527531327994420175104773391244062888750253484889665147654804515630766498512670579632211226940621931750609779521909678267774871563746892676141526817750120175742904953825127634166081579087408569766968747557162017772069900486587513908839474890759232991440202557440001492448858444150770003561308996971363532233450004741492882594568378953284361078093914250892578835560071324359691038227331411857618648413838421650097230309509419704321173653885866464680248693019950909664588802298823620821975605278266823813228918544563590186322637120882613361681850428512100498245228199684810146909618857599658675932059341645493239267453257811624148747340590553236095256688752010583011888370821884549019857377294777898411881117492190140577182938748326192840321111354532686840036957034796641887799950321615505824278319264176693850546144006705618123645868614256647295540333211312850611898338307774488675305869902206085713288993479785947895519235576590813682302411627875276498551272344253992019887868033674829727211912010469120361101375370361423991190890295191948210691348946305815571584200460754722141586517970338820428867865275157942074957050791824754791413663793959043937341241155332597301065727648606388848279916590033875002963742539889864639743277279937595302762919625070873975100270323617135671210779488003797344911865723742441498115399083690207712484583788732032770421186625666407080099037305557876430855212584087855665373526212941726531728791646187949238123801356944036772981569884952518683609558590884802202709842623417748045816356742016182024948889119687656693696959271673201894882662726259314045119550075844756450752864736017095766281780986041414243814477554589512167243323872691647505904188652290014812666078270896675769007431862097973429728081260526601623152667125623181351453524813127454348925556624782821563145436524380387771063393021907741964560601115407925647476454019593063193331411396803621530128656111006459926234152581475168505865533120741437991631055887003404954861309676138757103230332900997978237658654050285839116292120358777757062534911469184212127884128393985125375419703452607806661596693411072415658590307664780126321016364235085520158314902933221110034933128259907848862581153840581310243178566315922082133456585872805981122674593349602494915062888679543827747558424364815697732645494285051451033871353129125618159549494764443873293071542617585300992698296346895280155646414057545657583409725046426992736713717622873449087692759714249857086493777384996127678334060953180652426481236589894627360815949129774295033890487600220353116360230944430701210330377531651865877971853323367133516024039682039013894995749463502993649373261790714794977004340938073802019202037731349541256667051576953312363471135716187851111286708060587082497036434562254208547788068502942237205024558966587438023272692967505846409336217734905238357359234595363271581010687097380724471599550875567745482224075348378666340705995946418104751220747017052434803780913263158703246381855990609913759598556210686739045253422286529080556356193828740951160079946102379678098878347235305154478764051319537017371611056223766091960030526967155794093436388043201579525280177079708768227543440822402154235983887744463474967176864084608370909713658082489194743198691031000975118516923185989044843780156319600571892544479367158603089276045359415811809805952309894071964404867059699067130590482085066016623716301943269759828424971081954692580819529318335579772255971943696871426573516770142799730775113124965579124405345978069269361223600099199430191551145831460439345431027088498840892057239644644304380386905175928608503648953000612269762102080201652414693301655853843375020310957396285229444102444124613942006183014563653892237839782337823285062805578645447548072760687552469810697595059045057859756518749326495351656086749385856805676673003010469372853016261235552146266069636489920305059456037461889834446492599242886548733761610674502173664241100880967786487766451128854270506176409338279145906797161585361156539089751402213406738386431061251425104425056648491992053642567471145099682219130645324485531136189566222824977215278592846329772870525889910596937663823260799887948351387085220945686615951145253155313169084102944122407331006449365074025123113741566090155364605648673635456826463588673889783244124430964056605859946828560488307824194452720815802021084761305366876549644228253346956596573092900731727450541359456876360516583980826832268933670014261179437760682707641546646518715752368996258021890925539104786118746866013746916674923052174812760147236386281499455375660028988293639804746577562710556590400429663381123598430774448817026772016566527020342390403832975902940324677499361607680419072888118214680533081378402961010353647511373433869726662200528788065496976524758958970382520605382505148642308534380245993835771127388486536198312808012111484113499019980940435546556245526859085272071731551958044440677389531351446452532048174006216504078179640288723510407184733383712671340739684151617972575043673210618152576419598643617866995234509658360908856424888306554903311864822075632575926971510956913972377750704027011126146685975637353393290304194673626522747802498185780060524091665279172260249949418046908208266428236346784321116093166462622503011898093419236458069915615282957456117689787023031798612854289923189161571472117140618473547775217221590697096703108109859452621787769119107249001879841804882095843794913106264706671616192953409708449196804649595361356943843693923983634236241162997413769975659877256193774022814630198488209296824020768414248161866828836759023876562570670322125401822688107486250598612890888295334190778590180784647495185202149709243098622367399688264718615357561553902682787007065458655876021271998497832775705004593059094201348451539429677764232984078645588267552104217825939114334091196693950123960810909769381011058376176851485860907622414143168143827994854078775484285431331511639324815120194924054764300120189279212479961259390069209470204208787236150880691789237639542871019076875531520757530649459434647239580291069334217660221892066136838589167335379078374182317324999764167599224463465396754727231830278146725007728966868105631227744362461196742731265972795456110248635116637357458616425139621568174875269349442106594932239127995881064068469445848660615761508270524795776292861790217455968587315620755293255103102065032173250813690810706388986898973894229196558293447525847634358374542956785812238748842885413288895390641882438743599324550167836755789877281143096966686762583843067759750982182309390504456401093892985202819915275129020281548599418458608305837085991832531320685175638669287087868604400035583536585985754890216779140758060385143441937169913147361552737861805926141015211352400164894806561526527441626827627695773009050656575333822517013724352117507497147823366827744816023965138089082048138572499872184833813630338875719667054552604222705001630975891011032577264882844812898708599993239069389480877452515887839125465840746705917000268340691702650013023564236675673691644055178525790933250290009048761303325058265565085005826453678165207640234080417057702637486875739117227803627178698113085502142893981370455325012745260822719980867675293159482854073869567078312699572313622518694598914157987802455136494267086678280200560232017522320121352154269637992977668946103601034603010367376138482828843759379532470919505694132900844277003220209292459639940864877876679686414304392197436151565090761925519841047423232105686047525571750950250897489124681027878276548265457526776593103136880881674405754110614302330582939759671907744648448350728613952377010269227775145270110631285998798942982823093859272066538833286659531073609927295021824234285586612816188529138588127905079138700497820600581976756602335430442302818275219278556365444731040104277806970517598460049872622402501590306531718524738297782575373591580149232234341181005547855818106907832025352496417825679713623943556508171144321745086449627074335038023632527346691511185562089643205825927083148732398589293401505596669424079960180536604903799977311361076547136570425425564802918733022217159835316805921890776713653613177380686542343664582948526413926649269680124444885368786983489523399451226399997615635142878293854453788504121112680414369727394760515061589123780431761848209237762543111078520638942919612302106559846162209143228889262984094613833296435381070817886902119815275555323705598601737204990031356616868653075443456572857189571011625139258922800395158744536823195604962387506594830631271794654809544088896762064001882730919316271097173999111843474882462899486851459138275972671059580028145130334493499225538244115882331366058849806201783723895404624488547009244297702704196409466865125022395148967152987620690355882870359502252757452438438630261387937740798173205856644388758019140574298327692424072932771960318096181333613285303769267438545596978048322653494965870680740386540489951190905393025129878809937081268872143645559386643598031809441952489983349457698987530115295306884916823837389804242019584557457373099058023045817878178254542226521278689992535622464917844368204574167861607470757562347487316616777762094837088906819666184425633938872674077684811329570690520518078370432034426145555515261668412866850004542367402609296907786771367568335753112392737625930655460239964560107144809893596005600893001977510014208113610607418298735083921755450871404544770981328341102571666422175172769744440955281580881871122830600087217051302610332739630543612335827159681630306568368159447881288829208551580609318581336902909364663454046944396744796528792663712779294267479957403954063365824295989177531350286768517076778748801934220575443138334011372148357823284223369476487398315756749748775454232527026907301673883278163833644266998910103322207477862860516476758506643550794430593800929286723182245846957223309892055653235636999714855090197821269865772555395610625832443564124197185260019848182441542078311957201168880022474334235972851157491334848153228575472419899112052889372065514098144712937511474122812492627783738363887521740263772325046914006188102105864904701012691113298943007564116495980226758617493566162215899934924014562962231940568810543863232443528105341476837580460061079030389271551335717263417662246233471341980038569208641330784020808302618204376365041006845976975980009379597637777538404811067014752286415845778051707769799418629821416045714436090993647838023725398795991981399946503301607745452268715449117785250878072401780757749831372118873804926766416079518073028246570347350674133178633164525620080846178762590152853562279306853454468602054210593639750163200219402378197271144100565748588188029200315972964112772984758868917577115817564041714786759619511841892278992622434476324359551902689907943870995888992737918934766346120021887304241037015878997014618712328199988627749904517075229426619729245485878819922704624542316003801461511093094656044654874522957740824596901057031259721829262304611320129011184735672160010959732697137021819941648913623773772417577929174086230138667442807779438398840521257311835688356416341353976497477766176998072220498137392109431690003216872827564013617387011964468622322072845795968508474213495070806193953878690934302884008483024653946814644408597903636391623175705409816956943968476172216532552887206213753911694542345301286956596612999225657949404091434001754187544737187163390698517601503965979838933465330414075834985026780479087287318455419721879311269734598415602752799070122297029007278586222097749653298430663674878188090050044207859547854002996006064875023034553475484500659920032164949468500009511111069325461602908589367003441212662984161656740651078546489250735647074682316096040834551585190925463201516319705322776295790510221250189134611330615032892647682403125175818081871223845430821928902416342299682453927626973795303718584930793425465253708794515237136784368586347235419175783692756662891894842426676091056913160493196727034287517273399277109784952578025280252677146234241683577791016963048824529186945743995279300669917487211117335136350257418007374350307008427961565348738254163865286368550378176908348096080542703883684678487577806569034744006957721911080290886669546893191248646885553749055916298494989165392591342503600703632778782082560103104754472894272172928196373092420700041883200573538485667085147191167163593056803792443201731205520475638650033607773670038810189046363423109625390139073763263328944850214799405485800108129654155275974086387211215808030626359121225552569831691192158468526005139845934151900548871547359836616388552238213529680451206900294883608542190063073332795405052444722494647995649158685882944799507208724359366342173343694782991523815767014769466218548345337410611815665193392429641910953417088799998155542711421877915487823353176032058478003817538926749705480430688512128748589426114518197377362310295622498309874988884844674182328376602470197226508334161623081058078337246534254224579357641556478154596558432899508944037579444843550284301134342323733980669434219548133193550366909033375637018246484146533094552806291615241244480337393165126243652718254608117088513161758098457235081266628931544163713564628777021492421815535357828201600563935020690905610061151687197679531347349499801154052214560023649943570643353857387538729275323048131319104139340757675832195412650790797386711706794874061838118135829706293838778013936897978647256633417117069527456249480575966574661539211929477179995399689641484024684966165118947336640971270020867821680971815621339279429745813811770935198237701240616755449100461831516614069080984748960267630738679423222545756009746956627998164652194587656392437594512404930796450180291532740515805091349891368816798150587360766153209606210408063600944464098812919046626269097263383803053044379876694996747274375495139615170377930076545829905199795777427392917690113835531268708447227140949103456303856460069651608391991688445132086316978194039689468435608096045826946491218681732566264479414382451477318599074087579857912173845226258825425353593669286403001701213173507305549837314882477862937545102193391878398671768356872232427413578782479253128374804769831571983977351390213855388977351182981652672308197824767963252447942303636275988809184222554285351672649782604440925456803954290402775714488633721659047456968423669148623499681266542597856281184794052617037904159689125115680587947701482426318970138502334796419600497065583211303293115528282733958364549228852685016080891477297943983245231418632636509404962350905013132663466515288389657100517012343236287656589346691244892571429805174174997680370004973744232074957568787678414031634060817259188270218037696959352869993679139737693564885192666890239613563485272739057125998883486646876792512167418344989493907320530504892849156616846181045455473918355830229785080607342046701745328153261234129729090266266884905797596197439371028355037860400586243878023560336828280878182127515627552794836057963839932142289008933500288546474558172185935569437163821582676599989825316772291598213284491106051679746008039477912170963275385968898916094364867035206838753173635851697042136582677371377892183451182140639075110217693027811194455062771392082448149516810435652189594589138259808040345768984760910607641326121048508631879263727711003836702217664114880516364125118110515948027211514222564597118244820379601171043791747593178756946560170060387011528597795380888264156302086895168243043424958050559085876309415172628377736169762446562601839660917081691159289046899533154868126495279060833365505087929433521221181260175431537111035942847763946120648641235029121725575432459936617330935821006008510954931447478992627756420254608725374067034478221899356441215649783668455427461716214538000547275595207742089042784191947335988611450846889412627468439724584630998250822633125741994597761125138831080293456772507573229786298108436430093777047331083709039360869899999853729975992020683874030326520652801426631003186955372699855881738322730004000538258525773858363238087923142534537407762709848463981418464166034392726124328107293223498474715132338063227335070068663825795075937072107891654560941830508299270416490185237973724825014243353384076934178272823044108238392663695699151876798798986963511822555109214198074935159964845363180705633601751570996606639405724466812105993890824945137268446234261629183690361311133787461742421271462222958699199635592559229291918693750522529958322873720063638510255392916206345288481770881044296192724072850033084023389101219353612544014422913212301611361815864592441205732069126256237848894037158271528382610564725689417611441446592314107957792635163456088553946837289808761872219447846554787526268071300391415101381738809868854163948184466886879511313221554207664305703614364332106059706740705567958036634547173107749838310859121480955898423629575551079473494832222573801901189393634814880634294413211737221311652139908809600460370774407506993183177167178111480089111770960848018342723838768754868960871160593269673174707786671757391253437381390067319509705016983552200699505767129824375895598404985933189438029038831620486584074694916526398518856482306992945796473392355153082753328005865931631852969341175781369822806675345737098187724040836892668968675501408072900993899957116295795418706552300449549837233397716372430076037939615862334624944640274212691492092291861187622744426567657180614903982578799286262315887056219960388343962335445259476430891847455411530881068567113910498863033589216452278347262043487129857027310912814790304107540274824319860265920861169383461327098027710246738254341986725708135400826053020591140983357771322824877202173772785501893316204152542935150103047153900678442515304582503865121319007940863095067423221947871688586170594318902582674851893744793674201631025027727319082610617753878220084475724488866107565207637281962897257318500777644627408791446668587665898039870602806368134211517182291207410072091441866106409216208753749209622971985881070429035674553621161015364081410722240301646419664428570337556144054682178395095026687347925247838029641570471479052751903530128418675702838818527386150483451896047388495593227710156067047138964754871820358954009917353704747098515161713147799825162045744702860964000100175666745596576678108540303961079024746747413586833788904514308238725657869069770755896789153216076773059507625854346122764471215997658658651735427886558536227227472245259704881736472327353801317444759340271828917532694272984326503873109138109747288043806152551685256047715191531736855985759144695394669196595749648864668102890210837662058350185575906194558188542376791904495933987356531549462047647545799533913055123711839542506841723721016684791785793314399243918254288263143665039271069299203146718637225544995041695624150106086321143730336868366600943080605374237768073960640890747098886769969642443289710116397108845311750473888772879507867663088095448016521024519572012967625780977984998709999885814003020689985611675994201628932915870298108941722919800916063945889724084742174165080953278637741641986753290335369929823269159098584677297033128347353175911852803085576780277746532883911021138893913508511272544865502781182145926385381399804159548323597375959242645033877939291131543534345290385931006131599921317061111000030158459310682761122580155983077279948653574392801566068559135926597449281975627863881631733355330721304892915325849599354528797301381686953233030427247508759446139544673026580754029199847711962776906861248585235530194648292323229759911029282979244000236158138335610476826368258436962330545192996892998907800767222509240162016601360893156687191592003063365867737330221171225478849647283377155329896383638657684817883507996297918466517468466258255705975851420194427781446400464175903512607552742555437362528332501675927184908651274260601442222430423309655558877495031351419168010280845525934404235764586780561328595929949439756276518837933746844723726730636881985155814062989109324112339615383622769655329980428589488466213662081046252601644066240190843745675235446132089937808407584202306127947864114629520729247058732851393767184452574854047524019409977555795402037366375531689335276604991501493862747437344282875924474358721706880739095189161657064306094545371058946346375525967083217560839113168112717776803688648476508645796229059327148757218495573195686242582774938843284629227272662093612040295329353582044955604636829543757516285742053228069045689236668463715394388756439513523851047899424471382372259212501654939464705312186572994670929681398390162706775619412628008867827261117169935207145062772831932630150381327890022587957783780216155790404308505941581343861898610721097232763056913538299564023704584252693749123158959438417965823559689462668052027052459258790448996967122262687454809427612747358358442768366437223666690708829899388637155905011583691108973999945621348011055140746396817026841151710272084019750703971777302414681105932773327328558795790723798069359521923050238750315069966239429239245992226854892693139588470561478683160192766448928377059622252431979371651101729666323086792520406066787791903700829799656848858063766275834983756544484072757351454026921363957493647250294628341181029642050592860883238040775024469459483031750414897478204805003588093747726373042531998346045843621045334817695014467109232119798056311977197217394969096837585292983931109591236795877970777060098924152166015807114549275944533733234305795422856049330675960394513856084280967442951438194928691487798753856736560136765090088606845139801835488289840362140251049361056533109567175805323056977949910671808359319969520457867277485041232654818983562658465843443057722591412075494079381564830213619736379546007678427987344394927579018302358458163724473222856039755087218781290709982131468847164264777880390077672956871014563910889868648733535438836216687855608415847197797071114634920150480338885953064899717528400053467963254418409104892026636926806222952952391208036345146376308415365053935090211078162657530751904899929808291514995243742677314967098861209121748570770373338354319716840941023040129132331501064377429083701959414234861943369366518648898404611087191759113316575073518386556989092981565794030970696627823895209300586783283399267912675168387435091434704995671937672033850353992228745083411056997772829215745215392647836198182705174979943984763351874546594795575384781825467649198217997068473601987095492816474299549296659558264317046903586591329333444491528523944372479516683719378142553405095958281754679897577301771207045031000993176058954804807553499641724629175389644516247439270930936929515194337118462503682051785529101068244278100452020929985693599887498503716560658728025191991059562254230738166577843030888716308316298295085663770933509814027553618337717432666052344342936157359368345351262286450142779452689444884148554728330348683465597040618005152549912803982683073692141889398289714973994944571478747686701167646616174642776881575428458856832726751622133812255070702816745919002969356747013458105551461041570990162851939341652125302967303249622982231869395091096326247953681640253980613749548355934058294279448761990631684942623709027744605475570740791772895909677971976168004517721511689254761419650235316518433339118546404501501545592228490738418469285455283512979168401726501857506496104234258509440251611279641679104637425040144140018237895318723740740519995323768534966573238014064575500613570083364801540100782959562062503290450179586001002592809179741371510141942762218143297893919864586711384471415810612569418510482564079197967824120989596452706508846791757168427396435786417828517664411135954141221859856996589126741697174478654338880763529813930966552256385394081083230783907310805877467400812689644922969354935826602450715694504196740933049934752464749808979656185025420860596512329110173855812236596847900374183270681797455511296849654498075508841325319644625502450418486911898412160860343853656230325300198534513228417731290788018335587154867975970863938940324919199817472797107392886937533696774853292801850837431168390652181679876598227256445943766903929992811707576560213418922563276946823911712368122250894137666111736566896313109390903406536167500787891603099445639637350634658857417891972281497457269488279968574257742995594515886529459481922871237298263610662611412978464674619502813833681719407770150562370026590228069619996345049804650070798375814456565279737781424355474530287323804306203525620137928823649333964912276594156648509053997335962699559496847217216465688673268477219523338605877447939163082763691894390873849361985798154586049688191289152031380244760972389013454937356193467633716608991754148023090007598218830341614257661073685741934143926423744908255208513846130049941284554503129569477007664577288785562550569523789267190205819156090462251469768483841300837067333886751868284910169345076108498551764484897627970209390949669067690224917135512737130374654456687085415344393867325017931187413728512427515820072988798420548818945862696811314240389869209998353985614212525020612432244014189856616142850167109592032781235256871156603104689041198330331079653835767147806938288784285333392075443948735056459741903146242971127587569989643452808765987139745675327528593368396338227841729359602313851594439494194398242114076043381208599852954152838327221273850324754244597700579293670859999451293600973376729078537896710257411784860695083286499519348526592314919016064148556944210742228165405923397762287165979032133591780404064523983818576898094044549107108335575439431636119518806722006820160205606216552972618782216993668427651062146311547522681464176690880886434884662238938816038694476747878381728594089984905748411992721140436132573415928093328679713137297305571151690254964350881957390273374411594133728290707636207318001615615012393258501039948706540903916173110278922028839563789676864164982109966623257803683601697896203648942152831021765952274796085285646702949068839320450935948392182141596734123489158870110641951019757405897380757773708568473391376019939040005093720356047975682401220788797440352567721537619224099284859268231558237646175576806061991004932148628124068344872399798748226055421510283640819980429159564046151520926592264393143337319861066762072016411594398383076496903233074941440625954736450839732024832950942374832532923721367068754373969914335687040295162239031832085296202965156686975037177918107688821374387122987233814954064210185593852268404295181657702511117412913651085260556250117282967046879001892904458161755088286486777731518503151283145267370109114735243495083639161859128427861148455191494575698542150928229525511133848030154771013152100104381532633862945465563070179309813874242313486922854423491550042658764292259125800721433423062443908674422322865117146732208919403410636518568270099326152627861615128850104864427121091844590593848494360986059916035221372958203182894230187621749159439283361412732787417200108514516828217591096382968333607650917959095224874803911499211307578503858976524578567531891649497468238199017144598195803223408534399263887495177360995680571759265758235828268018621845125216226262856427559523165400907786737964546295905354948430216439553069680176434435984628892207883682422858021908514248153134609766140723866982242952179108135634181246780576821783510481693822086959068858702411317521817899147584579812571978234369393351101443576740900946426187003825499984982382858321403845512336590389887525385523371102223326104779121496670117678461575437960776901084928915688123020416127406547188425051401408561927981686970853094729725207072877019327160396596032010523115649220965072956202437988875917774733552985824855825872007642120325795393919557849789334724974341741470351286764028978425455744318228210684736991545342027994189396771914775729348378369384217989398383026063330165521219705838403945455081402747026888766178494959795381270072912885597709000744456790843908347697463702190757817604884563576189190647684458416661636709112350051122751249072775092233529910287986830581114655011516645574275957587677295817288783244699501031006735890432950153878002094947422455224594672726618419114280569258794583619102956694989816550559632523600531507162537218731138331639495636974960008030610397385786508661475231945341017491167575797195806800359033443142613919649941084506781884761933505921392929864912096254868814791868710615350713217854922249406309287310928427907057744875323666733247021615090258857933919802700981836553989301675500418461886025601536456605030791736261775313357768475185599825783430872320918508626169308892150314488296675416226450682463315285007672168974109177013105147645068901279309779618055755722756636253350497354193881007173695508341888675913612775730133432088478353799243733810231743349876552714398088958222801584012309673760971353308573296117977818549579136893418398950936013517425734495540751227912855887585008118947233738339628784574365688881893358978314859908655216523514551769161445586602251999892600844239511661620207910157094246238076942624992624582275570102624655413712453713253647214920851277400488066451148585356867357124271182872261358417668034131927286832949528646208186015512221350316957486216344144024510231911331112888858807798694408311758736531834428413015429048337037126376141660911038823074349538579957922686760194798372170460696303320953084354678142239108862388786305932563823225980110757369491768716904919207841250904981181645936847014028541173965277432629843042928321802518901756702444659146305291115964993778382527573643785711416116553953481372380908776077789923349511713997653147434861356685849608972945516906667841156221481924252337466950565654282532181731663935096639341596309775794617611006531845257238132657719832104094922142394255774975902566426955239548441393649245166310403745895230380624875504756859028697121020971362186607626079343911681057117667059357169748008388628508580796321074471730053711401421781328656573326827631002087987065576303214461267213710977382883329370032681305070493018570504345575746986189321377233657223855395509253428636336315075669654048033779688564207436337739769130998015629589489336008335607532323518851935694732816569143018499755983694798766625279567593311531330570563448130878684531059562738587366104588480695961223807832990827577166489964615280526696087747589037424747692486720949192611177250666179254519523485995536482313937846967847981590649429598844055562752526797619172319282648624867829895815011238498146327104939338924605010731806515819773351315541535306465931367755348754350750602319343604342205745190771363828507953240625801857893584117473932329994905719715389643459164279650201214537448378844291244126261889333360363070292880897147376331584465547597835812355042775142001177738713426571798191826142397481293059509972276268563934477381209527768064206086227988320899151609158019590169895169659254804532388249355729823636678999682299788184838567394990259514288105267526440446610363027297125550403773999175751861685780089828662161819691454968990397299659207563911069109763331817159411388775214204225467549416109830436423834979662091027233883387421390195755703075536008070658282116828600349769908303015698749429543118114185149679162901829097189721760996420675148204982457603405840081074932488611748495309321642488749231586497856326225241929937072818460172257551013338778591284135732943667939076088440070517790488805010689272401092254600235898743805220432909146954763019178408436798314324784810699503719794513833091090883273315894718170242754691621417241792948377596300013931706087022582502359054739090434761436956363669531722365771850775894003912794675182345463881519154076732089329448527916596814150291202994531539243980599640629790928221091508032678951513108842163834427481152001502321741474415913422174262967863915807129021849083686601551163157445142000300420836822057878539652691155694479519557874128664117078254130009694844626379687881910387984772333656027767315726426538089551641903615686741750082022168143389564817962021030236002793131914284633500139134026975737644729485501262397050435411667017682360107855045559513238599240902308579066329986236340403860856308868150284589379112880312457681269026814194815352258928054427492005167812686476799209589094422360515232553887074997920567061820951989747777374541706901697588545203485345281846933666562480440822600486124588792728279312955937940896811421594357355826135739050599898886540167448260697181379926293594294585141653013621900430293494707357769332591232262741137453597212668677753752557312894014618269649466135132645022123839564595511486045461052711540745077246545568684177647216787134648538201514678923607190721740675740699186554918142175239090412089058536873195485256084547552368950146251641751332021737852427243171387016975708279935301635336198492092486824126248606669224734280932292853201912417049469554479632290064163848288213483750958443175016530883522228988740023807781207621449814044073082607012502564679585831607290639383561518523126406479131944271617563985255228852522982211141238954423222946771638648233678142562332073933203341884986078582236153701833644231527482086131263439089022363085067854218129351380946934187523458689346712657421914407734220070692581279211646279063547537341875274712251921091721542704226178608287354892022837034172083078477556682436188772231322158317699654739237511369350363848535417083947651139274445252463085459372232379018352676092751421845850905555871228167558859247870924139000713151106656896186951874762310102412529461641190087775062208803136534358206768072502971249583213708303096425605161393218781430345825299376667126752216530919473068951309701373224070308911173059727732326634400491450464687272874135244879568894865979137913741244329120718790658746933658741512028622719045545149711475685463536428521336948913854073857693066649091833205468550183389255117482687467441984794470761173617632444712730262196850739490209792403660502690304529948220164520571205189267655702353925423399953329078789592098344703531787524142911261842002707181671274240636190620868847891031942273694955158595633933760750236593810928292332467651150416758702445560119682000776531778151080784880206826413123154339610055644455782635642499969166309344891921716257624150927886960933528846372360626139636744299980901969715460440504423299714260393847034057765571412832225038714850712685194285796044738925453273271775179898241082458583228243498190954006006618973436156013872430010153833862468760570371794671777657282403414487441989624824173312484515927137654422408548962268958394414321103274275060056322666219369619997911285289845956529446042646750825209432504690489201086630019444834599382395598046882724394325824893709728904901636805193798953425464546601331861855733147920192500938744801045690526729107745061148588644192622246954940808263332020596695244344962947757023789654913164239524844078438028142640384641167884101525486956094318054144225247360559099895949298388679553206779719911320129285348588908244920783282259312411088161411543902323004974311694075773178729853358534754258284554299613202051047605520656473435327715693269341482202267635316289922263428153928882331464940092273131306308633029149231866658399330139483745743991830432218832443982561617526131185851374764945346008551304384701832040747047910418522481238791353561702749555204531664250515621875158352748798896696327358517597246692265041225510346254389422079800433334869203758568800164269569813780679857878749565568518179707583626367972117624808160713485017784094639045273512728774561220127463457671907973176895228312421302096283608572947640445447573231757369215945305039793404549020854419456465439408579279910491145429740134999367249993733822584951374811104789743565724917795135819073172523481863829084841789873962777133148617037652479397114892939995861151616151408857988667373504039590650609259680669676295468283748707649794631374591665113143336665596137942860273736614554692972155145189082755333580879825128552176010948520791729950321212633784478792355762707566956913920768874738391873665852692584582955464893188065038968754534786730466451933227884927169983654627839755789430850131243266173813462434205498380093342388386343912233949771695499810848374191012007700452058789675845577843689435462764248630512175731741141058682434826805532013181597247204048095853382305565970429306076590477202956837995607176336060349846168820210824330302170563043927210284547059555918868402905590874869556958434871498355638390040316332546132727662650490538582239980996826972232043010666101608657043873110510740104681873649585798714059589692747616960819792694565956252223195586773550425901530478695965255967340377519112387653079271074412212195826983397110184694489284125635895742280288504231450551629886517737119743550697845388053881808450506884108477696117041931385579586332315288254981542537805852321311908855104501217644090335361198328568396362738503743177682385982872732769279322833181705113731772126736812646938695861597200659835601026156626976892519635528146899520423747103000433700731832301292593644994406915658146482216266001794212226830149314392885735410372646831196409725195716930956612597790216795186819004270724457000482548862001458735747854896857345205182219831840029724211406646707437764090471264114025795795799209118238181315355673815142386151322935928934914063134868295099047489531984676895141781031463028034954616433324391691310206863717002892683232178217104773587006869740841648955018426779804699655812382234925105041135445197482810820551508249804041743837876148138855658491539260639921999150482503162010551740568263128750357750984083946497230263125789565572655348963461223188743180207982836047927866189202588343318382427718172837332023512298332522826152795895077814172908831644843280077710776716941743340681618331247792622609349531557557635019227385074542611339270679723190004637916071054605356441648485871309210834426390385820273508789944497331980492879676859505321196300061388322781905312244478935576751028410257324549490307420270684737867522225363858551586190054115654870089325382015580097035321502911962987573374535002852063181151101301624864210505878375397407942166960736556698248170910950466484660631906745572117050414698933926002154338940813178726780382398557151403109189242480939276042072964610027436531968112316981342970431407512983444414724706398901815742548853923703384545570988013155794079121356697438810821264372886376284572967207594741039316086518205408547472028383869208325719074069080558042414580899382877134565182576647250410574746452183488084331696297897712499686557063274320325418664117675556986452163041231336172445776330119138703356814087207970273334029663992700564690220316280803632363614749546651160627246151930257773132477095146519502346335620296473674910001054043043785666105934609985979401273998920130009328244571278324295605792911587653300627735825560776328522188698686543066079998521808762445061071553543151810418748701311625947218999584018767446822087541598524346191368566966368307472431334549518606532284092850151248366566537537948056795693091343914381796373744850368425209643101075565916425490597619663696764278923305388171088032703141375444241893338150002009919083773864629825819737615735798232504314919655902795219439525993207206434495724515485282774533025707193012006452414109949850158622832191289616266983972361857644984746383707363621496851678426772880962904881065268687316473561331022514457773411975317597568898342305221020875633648682294123224563911124671946700162581020202873049632537649636424874744801353178156694958986668197464515744623604334849638642784997579768607091735877780763308610030596455867153001713479025141397672082953938678153548998948456091247560739374029165976242857480341771138870177302644485922794425024790211125698172595213837249898530655537287555777888110889033962157467033540391832549879578108369388580645761937346509785227872881477563782183940932788006901959683217750673614483891321213998090137125378937449195928978818055403929728375464002846757095840888683162052503408932563642954952583840705871009851285906548251183489253215227895794897089062831055057946037874709278060280930681574699375065677369972454336309425522869623288627320826796015421642896149650415307279593188007931847274584561627358868949028141451911041912313685366628714220558339869891166388254673275483118740516180330732259489393911819404796096357963768066849839875655625313395298947252348725320630115160473717886148735146274701752853059870957543540548883098683243192388204164650312976498822745500009962285115184787819524300358962553356218796192341702373266656558895456501473337738782840453612974926638440420755235142953810592968492227853233279599827854513593577424463102379540464809140430954351166983728338356415861018390625422794969032852572191520270407044022843617112023235940887814155236781708863317452307068892103770686770142206467416389786540972455153651659645779569334259099391580959654071473178558455866426152011862584842160703108209325302491663077969790121031529185435458169777114969608763492682704781414731724539818610768925858600076147442843472137047390971374335214699765891016138029612382199349580181623120725069394026287791148662698016462257888758512358488255580222872686619738122391107701224158362405891652743471771701353378941737425735189571672823179400509632966485278635392714051477299868847769984564445777160626514890163312687588480013412932595123095881253272491412374580020711002766715122323789323131853979697602062561067891867817574939830856877407672110698992039858694910914933394718604973208160326249011838252317314125523908881401876720391145848075996566909822574689110344612588539580155878922320236151537903724987752533520968370959311376171743677241204026369618660955091153602265426862328713062756990662053534363200503304661300966224912528006323659871924041989275713024680027676730420889180599107074237967840137209425411479740616804593917037868449708894112680550697120655239632989734257672448597602696669035499689068288640218186238189894760823469717244981427297495846306071629528353832025906166799239676407979435991159667302227691800503379479070733365697878525142177173689686211934825083521046200036701203049009838969733650154644439021448684975605786375133934434314240416488946209160740103568947718907935381052931411082691189599062758341385463685991338886285191273371868206541504835926485662545383229469061911382352330809133056436193714863776047294492573851704319552266047273138363765714030500243718142217583224992675172873784436469603176290770789859160365212884881045903630392191054060442583030067334293449103666854266959154533208251123995338944173211477570731011220275958476067711003054057765354274990549046026243533798141367689695434291999641095360179178876043533780951700546659982656451818056161986481537822878116232011746273764660072349590284451137406493672553283549485022877539888335344514146294147504855410401314272073467407625021051852009067012902841068290322187590713340119293905834923514031551651987520081439889685625643624968327174990447646806056682146560590928511908538124646380481787969925199165982784928799866048656495195793953699604521141664349517641120654850442137305440523765136462476920081249194127424623621731087850386037318807449778879499558217832164123940111246665353823683708792302030977210250519953504450060796789744529247078849050421019682032994163384751669797662215037562777777521943825440723344982030372091348445132067041335580559777820283593590905047723407155553736751774333189246573413754371793301157941814168632299767342034774864353388254472443243529572831143810081082654876890060712714961164223617156392164453637400914173191818986100382671512924832632226545563319715061800495119230988314513329459340055535157652866484840697886138900101686682712213171326461166963207980263661534918899073523416882143936111765318081460874023703612125090513622954540156775914207685068236576640637703390012400217007246218240889757724413057015343762790947662567148155350898730645132168172348531937310018305641779118333425758272401790161095811016256714584448200205778113425194379286742970961663056442064957420595474019768907703170739985572674979958366454460834474558621179224961221451365175256545813904953543842395375492804503834758072351790471535353014524204579457083014968454765919802924228095170620403999085765807007094585069797517646300077256682733402197614410625092615050214767777448486421386834552545805740417230857948855561762653071532847436258707849963035879251679046655260341804672013266302654925328333527401076959402500724154533825371861865878806844477969672111157333255757561350940402661426132431196706326191875563456376785515775763175969275728586639061710601028613080401975102939173253607015850396215217017410217014022577434062830465519335257586603604396253226908121209034513301909962116674243203516609035389642719809751458382066048802509654596387183285914351099955317538129909847347502408221073497046511339992979193862734504873168574467647351555820210090988773841523211611517753884123472481584646385390772477224571923055555055143194551906579717322869612584015069116295426666973032814192184505848204906442268952186901346737167108082221051917405780343621664437896692236703315940697678207712450551164774607942824683673435401712799045306821767971440993622684840626806957080052027629730930394990613602445211436352396996556969873464685389004674751472340337824828666269777623318123530393336072908324048117120869155461455559748492910517644536131264590950189533785941024145771460718353078039161597787205760905102059803522394973980421163735715167121571998148239578790346370640268915664421634678044392552837116790973627427469600222324432310728436254633295479490022097373716297565715680524041307713757597452249956879272594377664896928121546434236030882749603554854960015905786668197756057320954506081489086880242965297288950893859641047349882598945899624783029770511778509328070660380672180288100207350577046987877169470393520786037625440372620508904295109671306920295290655621451759792766184102558373499471669785503147260981413455172909713057406728951131503317346316892796685311341875142475309432990555887513274045702915356476156239987460572931618148546292836029345926570819698517038932138321069944869710823859736291929983704872560760766625253843374485973889844208851609049399520416573873425806983379590379544483637400163596820562441749470711871120294390760637231551726838712876051982317592007891310323944298183046754086802134007469255301913704056389047051674009250128675708176036335141831861004261014624775615312603305877671757858596920567084871036065309264634056651157282807151558941945918499748893428898139998197585078386840404786643487966446842212658057681018346696365258122365281486685387503545840648366125998088796425449253511049257101828033945699142555981560798379622053887036675365592067526110837344920269999563337143854458637739700050541045913144318515242506281330154640779359571193194223713924463002831819463381408241439708567803476408072906461413842885572848669535149513265778293036218354729371833706173355075890530557790898878678762803761146482936074094446140337431892544439669486662923157472683672297380357133789317543930015873315546239858733678449821948382483464750932598983654355939583615775961142597943841159368439056237193380255292388072210439682381528897627054659760274863145842802602932289585790450423202301970742437897976096052690356430288616276281406322533044112454247012484179659622038040599597588649626587177923205512075651211124012312509079920510409792074113329713603977976145142242037419338508427875985116406553382006275420678942915088942062567015357381260670767812486498511017507919039460378193406011777134551573130887990919202310813446492180906179295645401545300053906421566507233387865997424739273588100043234016406510152153711577562483543781836325108514413102591454792488356240380370537588467895633040726889557997188993300434611415844590598037754131225629855350968163819201231857384956970430537637162217390014972015478855565236892883314965339737756384659446670391781760604694462027000752338059941123086351193032974154162152467392377568906257343896154901932690531848170176565126271086101135609566144721954326696552852882575243785537298737197036422467548933702024625388066888940877217511488033010339645957108369983246426751434320370333089416002397065276592929543838471451755829287179801318187661050706661389930741244211542630715081545359615380322467655925099422955360530375808829175623638577667116981439280607292867209086769863617280902255587958894959264130786681000452123125595779434076459352855266647334348672254607085682889504293348203312664955032914123711522562089510344967561441366409125436508444614194524348453823723585481566723348459508388965452660629069617425687817750730040222331532876762637437195761575446489189885812983685131189586203542743633429614492360806158962579459279271083593588980297528616044732832863158687872225344850351662365504283823785323143650056860391305059194819062446909570238665906147337076796502940628641681388251223135465240203582394806504406105232694834039757898756060043181190927595459235352801290755090421213272342716461310888547775698812967410896417464200040836662342491398875267584074181349726264996595103877664106960954366536986609254625624347435521210368397366362471429306759887908862327973692819381224979836658688947531335881192526000721951434057682718385508983400127175088608156732092835490309316472957990695892084641225090026419000415129653620789234573555356126149395100773619065365641298897328579360205873272133605221101728840607584617553693240409973381283214022353801875639253488670409030331940867463439659915975990137724018213183923343667721897288149623581245313478874401106364895305193971318753734815683237975694616959556377696778526237555984954565818689407845325175687485857289507305575687106810332626081185430137536688689841088917706478051649777838508147005253366237478600829877473425758875902452590784972454854544600730730576059635854172538519114396337957860105948795355229271964265325110408571545962877696477156009484573206718583605965504704851512854817361485109251846207550847752968052569027157451419213460131128836285843308152948702917097045569741811767454443676009729365658994979690129194437200046699944875747233730930531291578947618515436748980126222583196919846341514089190247266315681139043083319993749771154736338725168386755057089290260731402119015907859799164017197727397978381563503126328264379384404371598127083553954819594789216783426154699964422844788780084551687065357579851517485864285734066904578513501626836667681025771429131183899371050282321237105867568929689322893434540536614927804857991029928271667251715268019129892249981032165048697747606086972163321677637363478479313852655992511123371291362624296507840225436193687613175085078087127363186843318042184030335218185012642983382164875652767916656051198729637577655278771262353851572578133277125580911077685993754758268906941161320368744452649062486642023922943683991812761402113465298692875033109275121220610641219509708361252628771274327497741569948410315430714535234514313084104685937533011491974966355139593664423575016379559100485756454303906136851613809033168931993445379737801299312525727929822974235177017071797275213885854027222737788757725433156698250405600578045819149409941772044596744662914410680016038711404684978687973241046653930924998839273809698202161832789999583051147657356338177644241401845535494059623039972648268370589570017297584469432878884472246195935644088967114142066702298327656594413033909674832713330887317051461557853084192964107771101963406116164550028548256080854241390194928797055327922927252389194405929629033345650911596970077654453271211742755930910515190483387072192074410709550740859029467859446662862633564482776005565287357924654268135053856268554350206338228138362395706996907405390126021974580063942391950732184938587382538255524530708941473544421516698660230343500189198422293639069138369595172411892065160589797283622159029518747071544782336718523808167922417095628062847899049413917132298803182899314289554847273477730074607180099910487527444938621704518071940681253612018166781978298453941247062293188556718143415908237480871096095783462765374304196008519243479641704454828554886023320977424269217066399299770171179543271886949119746124252283386403872906516692561752143181125003983667619595060022503357066880390544271844024110663959737318683261003460570862059851847812205674645142007192528069038805752301700734802865254510330982002050155542706052989201909690062269570207275006279963493286690767035417622142315641712552448383592878823561360590528909873788502696536232639079406776245564941780526309304657424081975654929492316827419779268479814981909418170396697170541451442823106500539954582851570308497189117321802734472216976431218143365228545597945732652571301906387273000247313931982577149027755829116457289464695789449373614093191958614855137730045272859290825110145895305237449764387941115299514098400647051384384264623933652623438143437263291181102693714736442666580758048672959157835150369690961211251579287028176752584060995189173934425951746617939074206898395653886176754681918846268314115499753321564161836781874200359715181661323079107025610744601742166756470120308482445479132724124323237332402293681188775065510569868803605962184827663130436620774395157653083451131537882148065160909692449965084195861187057169667282179853739935769296433641050413743574596651099898736164598703863783428054680028671895908094839207872103631784808003711546045994638322495862080148736630437047566445325568852564861705575671044891265005649085839207730848924668774298930063749202404252849516373906042951712849929947292964035554196969899241315656690266921489553673522807492570030066010725081576854259281462235249686553129138462411220590594102300927791358421141352302915341895998575029238965194742576919035578874690579274309190249431076823665747669408148822783961542393654744980059185900073532158122562597614797010868761793013386575388580908574358656841477646169843826187908034373917488740341616789704915708162117173318127034230811879251535791786841736724725227421937498023283923778152128550280070260324970139367529939841313195645902141893659671211562710376930281099245547361987313964586592104591645523685307032912789692168221221933112058601191569272831862789920354626532770882678826341185081405822659435666191644885269213955081596221169440360768412911568229502423638959864225607728653786878686840784133013481480909315407178879931202239050157911472542239262703850340278160899027903272518536162874981600581418996967590391443016952625578225591355025530607346521007075636347952290320421861372498843997260335406155243383604901739511599693222793826902595725758377682265644797597248341418410602149395162705878229060947137956933129889140533899898536087821396592880054938018854664631935125377877901151666815880817192512336928722771616695682306656405791025776992196011701305401226827598969921124330311524672922743778799053195017740518505802728910757296850783342639500217690921018742081959614202996636541875311357046440909479898164475702084251536699550533165393118232087168029649897343494299975247720925527519816013428191019918329812168452173117195695938134773657062974104162961959765135000131267636991573033220227670114810507559649442988605570540356936449106447463198550736367607526549410155083128832474838255867038209963717033245173776271417424238625036709256590774013553140873514065457852983817152204074093342356817536813955763458247461173150228128777825758704485859804541119228721251096874419687496522277881817881207046674965634549215491288988583011471524489360295706535810827277580254879520433207614260726738847646576329081022924706876387875336585464855407060544327056428406339968520837639003262938405983583156197346629444019158644230462100765408443557951738937759568863006968171302726765985924961241099537387106128554674360687331018569562653450313042338988526357346971161348130427292365072776043947484826552031124675466076980521697282572013338348926831369785483669637508397641425230538776302410036920645130687653154907568818920735746005464105414120134662725678605144756452608435636117450680821968449838274097812736601084433215933320563110434378896530124237175964810683873624920923712002037748251589317281463705854473332559084006350095073734209395490303444917958127148351085870743729371001987567247335154674912987885574932877936429438428501464263584365372581521860763111624519250848020811572407036142982131301124589018828893610876489163938487881979986967242868251528196725809701860465528769112909866823341307526236851259558568334710144302281297503069310243037031047415236187551945165686966658094663476077499511129186341560569730286885071200847967420099033724196605241780993933450618306220898367721872541697857856454345350489693944681507204498371737499884501889590754642113126052343367364186963286985463759878464349649862279631700881539615874223990127536587804308505522592891321246945864231865842163816534261135469301720461141041136075633451258762518267841584411033110569861125209177494972483102590335181143618767107470754589678993125118149223314481711892114640900646932982287283975152628781028641103866855921070222560664833523791215275029530462006253892976713066956494743478031062136644315789512015334700835596218663776572924876517790389758543774065637650876290925476407042527518404900799548138884783574800916979626355843741365173866157733914686382146911821624809774512725246937099078739059492869855477132042678429980807976984320180219215408798194081747304930970583468523564811882841620334851036938598030992794809460214152819280209412679323441917815022275489941394395447168055486670494925498007797848706718938821288373533341924952006161678840292536369197622591495698268029163562404868527152242176459648550050558162511289887146074681640468589454462694806403763811009438019064260379163342971088785123318307139410030952432068241717772543830029556659934781705259000810044566494742479050038642943195627631135452525190477687194124942682573358445952541564324782190077681855619333027164799781059591702963450489821001502209121281872119367177066987654979876850377102239708700942595216109925142291188344380836162013426619611957838988227640596916951891431353230906355256583495046921901004394280080883304374824137123472645787570649348660541121289706069980116446439548516555758883151049305831185866679533460856392088975459313852984649268582193126027563452905848767131504039780807352939998861788595163912109863055381282780184526027681995472737842843072608658769545066680775031691753207156599278392229066899115947234041514096889624513936207292927569273617506237775379371070974928586162640197286430673887298091688903109523256846442032954564200818730065151226563237517388788127041175131667221536094520809934196371544884789371490172906885699031168567231397032898746340443912949145757346609051310063951715160753354710560942315087176436598561084725854305776154441799116549056169029106750074561694515259864860152910413973288050492101677515133604747258724197931494529473271496618797558578139764968859816279108861960031559937389341953412821380609401549658849402612451245934264514787823580844153886084958144783542323425882003564124656507202879698025961548189578251697717081566604851968575148462073397252185651923594148403658435481964901204513134345890471503437439402969775537906731442832553658376034735909613634163036462610845014174187486549090790624910920394568635546072448996554724919525415801587694505404087333236285652339263284469054522430500594731499144802593209475874446508697105426565419140726490421816466219591457624825554955588626059144185564353624039165890918438884208128871004606806614016959153107275961344979383919003359871194865329242808233077577691207006037616945307702620300723280411706317610823423314927912206860321262126630340631382908565254849218130294167999551860551745662666310662900084452215035430150374709709552003405904283707579680414535209926106565701982330228393590601271145076036082161284764323742589730316457233375692752042045609034656196444306379788427189664668053198572312697439718629461692322443140459582926017281333349601288582053611864469036401954666707989661758959622667918334218533713316212428691340531173981347308533264599032426211107688201676063864313181499464103011535491613601097099932604075798692185867113741468718369934690289667760592815171356638835469706856022461191202253896282611045504086301602386465697686436325840070079402309572921346296836942650982801781951252875933068361192423465538914337469832760827449616710629947910729768388245964855437364252403783574816545915148435120561209220653531721971369034263500810552569370764239972622541330170327738376072466118533357787884585307492694618779791991953610099612763945046348999628381350593792452040806854090711833154133950407575436762426537494936298838690437701511504933253164301515431823074865053667146825071966778727746157492802614213294928680768217573239457160109352419789960662809771242854484919560431213506181650687608311756874035830735660066250583370062844626374195950736881733685341813391326708214608003419277818860820986071072287501530469630271462322400813003160035276505387274042956796206342655825366885767527834328981114054024927124757462306690168709428755978583393911162078267697074105599612103433630394530078400717497076037206712185685959937661547530201901323793586890702794701844231694350576619374816018262814167502846012359470179483450223904143898235769066038616037014537949334264043381251991538166157865675191661755796942133609419150514667616966686191126702933097236851444645350973256820304879690623381244443454586215873303384683747483336354990387143163818817323931852280764799939803196415175751309780519049420306412414639667895455574324998480101482531667892288850660812529663466831835190319822175941053703713049112979694025190608764798773339889939174600391967507763923899534569758993699829147693799648161112923940758608340858423328483695091849068617502025774278065788975639997244938413701610535366756120867548151425846971662933111438215552672194893827347164995761578015024574978185882063959007113941726465350892779865889535232807425159498585242864180150589225351054371101265109007973465045991475656413661329634963440579532373577001317248213655745183014127535583791745747981542222595469983604173874519931079159526520938730839975855523794277712044892173919257772840621760038767088590803812093488539184099009882361377738856822495519752968566427099952360228873670878743920612490593696334210428284923529909873109259624233500577185219564909457632753343274693423596258503547854264750528974732822172269979559969342702156792842524699245040979142571237624541876707267307098289661427274606134469187060694678730844643362895089510058051901108861119642372806198165617476828635219838481642910681868367110651223497888245698100643204736762304380140623069619412356459878125643929352817541671931708578168415304608669751265061868833077802685404172522813517030961146989792135990866400936372930219853743870151606547632042347380665972222197459530805698606621190687940060852094972515024009586097497417695994275059314845456242402903060089726216255094949384810634317089148291023100459471794464602016634171189147785588764533396412674893965170387133462248822925452215531307964827417070010838220410484266060672687379930709893599873705376100816143324192419653622861488898616314068905057983697750947998618048899667106572267259650787831813389963729146680371479778325340698275582733832175968433563273362783505317136320394713864023427963923599437386224944483415117057128368971207038969752087803155633748205021177601746048187727090366435673297107653154216182513158529099602972774547009055825414386113306041846312030812395375059653141077895038765931585356304126765307218988767230534823635188365859631783835111839573605990905478691158306861303983114679038458289356224782594356790780955955046969843289907228606637161007747830995895322229673370876336610146706560770075510252662460968485567318128183266317912007604688307740567471151963275807087933239282032135826665557348915011744020088892830658090808447823367470399584087122300200129355830704003762849189533461404397107646499083807706977455236478307310573392242099784215989587108050472273953190018501209565927068889984945923635664375255381467465967598133864109275813979310019727994106904557710627129752859833701183351372863376828837418830463522439490172461130353347153474608112022609083426349074449443455391006471891572975026662777608307379119661599672099815141332668718749189170404938991060763108301505512414804044523705941192486942341285947258888205618533569181555683263640255544809927760714685505448948776810656529811267183860086217281905969019732105154809179413398677113219931537932688401871208893923915862059597727471560425943817388823224792473303133283445295084413301048650458912111516584228128335682179646959017308303454808166480810255539452344264182969684908124755927306670563428314641993523730497063292336970015582295389164376301798731328897970336398660291134298302508963103222201496694306838257235237608232615238692281848745157684184752565474269179209730957694854268479164929034064115268378265308171365605364514705390438855152580872649498927882309419067484637307477440582675846132829345575954480530928318938782280049078938546347486408438300680186917939654447809235411762267719464744090183554515243303671048964811615840365248166451028123265463484024368423386380316264272174034840258963532159959308202761896502808475849802772383241355262294542685391654430823478311715016456875128166724223646593994876547450836828253671694227433354480369946500400154537637500174514884407255075066955494935420323975594987740211513647123966689543954947614800643402829508862099052183788861265846047466566933872632357025870900391528730246181459835615145910502745475167978482549083867664688996014164670671085511497638720068365643692416811653060207004852052946047118808308787437768344386465551441843971169549763428571465914305668844342525106622706673288982885500659358830915718339776647502423049037381074398127265685923858963276300648415248872901328927949439439656699015587189398030412801809922849470389382167311660465022415816086425565384947386243109127667516864803257549068977779313009160896252877491158562984412533899212847496463782690546645962824072264225854956024173525964739486870387876782587715374768356118617073571789999978561826469193217130992060233208716563140681825552598594534742519959346875330916975914165615938728797251036378027732936830527869374981680710817883889806012447138494323810391495663986817824723854176308932194084373219893549995670104237198123890057671570801673727055415753788899586338927119769853312957405516997817058704103687493267798565621743712450932685119871604243015926135516860358010255676010098800131832138212044063315617838200440217995244853681278420157114116290303448647711327938853312783375827001921205492953115968958896040877814095610724042156809492871294584305572235079172162807517953992465126575558622779708001879870873071385283535244864628476778186882528521588535166942535606595744288813222504375659787435088165294925833183729961860910520259603673758722564692493520048388493920828093023511396815961057154741882216076056682134091797935339013648975605424042765779126161765129045587065764650868094918479392374284604870020420930943845624635539121283239315839230653627589957903730243327848949342757164585266064134622726074238845755704839557687809372960739210747673197631075824000943682184216198457302068674729988633189900657062980875980537933854706677894880844635109432831769371955364179869343199480678443471086791042156218860209050940725851464795591029297459888129333004963493909926163088590687873349299079468836489774319774442431065453964316055561910683229842374493348364336460217880624248263069719387030958867950309107619506803293371321375891622470299739635811959420393624239472395159532329376265626178369686815448422887029692190383455012959248992504516285921358301873745771831522996234403703620738559896357084073942122638092001803854774819628732192963688945093049233059047452241151007751559221276182415769551836375766431698704129788770150746425225833648596488268648190516609950870815345682261628990880668547158289190022827350423674348484350629234828769087405447881799277282086877699236457805171410125577064442206109817589637116312072376705957688890626355950233610584069763804518843473530170903422948691575258345617519060855926647829702703171016041592453535533076386620417867862298217066288132280380809422206416400725010904305505383296853794947094736170235766515060187180186045856257431167893841107848364778034699551419980467817815460145758177085544577426002219001296901742179712715628027003867890593238780573238675592875677164723537493940496163615076729442379470081947429912280781610521846111980241663837308948960327751799546393271025921517106281490421953280480178172239181746071657813937711261393486216164507793253668320701383479966939667631338837115591062987752196006409272202476134055783662415823172801932277749617786418297032085223339517199908257018664393366266362833279825587042969069900563148431509648809514533617017514929479753987416707503829403418311336293735855298342643426377098812088855619596613822286864898683521984982087883017013466495027184743664997445483139961293193712059133939115087596653512350238396367480690833039274110865617220229540891129326487619302968449935481368559859337746011651818399467168584475938378755562497496990798543689811295002417039678312061885672365098386508665930267895687250003200169604828017441348455342856090902248826565443731239769315496243964116489357214640702209891345434224615311074084727833167125970511585911521436711585524448611899424704907435505123521053019900583795015348140184995707043584567360643226600177976851292430143409367583177214521700823454970800399714126180504966394744332219001400302874630712934989301089516475365715319172828743058734945228366241736157215965432513697215537314129880812743537814645236641523893459557997121181385151645031278447976620847267324157289612054280051850595930852135931082423875500250824233712934860686408872611111061806437945054375219297205486949386306110261936501033226368248387715938916699886293793211509485107635503266487237721794630830952446303144393088581182620638056266169841046244714890498467893532593994212832499525224353374052655091225858309223250354683701390133114076953238133976017846525192152877956670893404710235526786884239718636748675028328042945232587366516671916922299929250978632345990688230552062205012808094319813925212212040046779549372961269384253919228821148923068154721878400062387358743661880293392959964323494942423278024402231554289930757622988023981754229995357679794898713619801649262295566550152769217680605907682041863860489544981010549805157866372911596906124311932074777051030944516058976440718979311694876643268767775919113892318655116217776337926290074871364049509894058978147482893921997641521559967780655975788227909889697862141089918778759602737315919543830968590389156413125183944483903426817694364779376653678629654861417229668381454064156701259791652817254723998909585787620333854684156963933425777996481622097841348150552227835521482769883861603738657529772079055249574052323956859585794722986875475000384193466133677342360318469556347164544243201216041504917456668027495610328624111676707227778193950702512604259053930029582525046925166099788055149275012404490243039125305456284108441918644649872462392131234717538667500035792422906314018021870924241326224236346443684954749376929767925884401302361341642502625105570080272331060633132518738257255746537829846966042742242001528960886647533653910918921317403952962615038024082250659935959687212474689955136987213239928795257383349535942823075769001847397050090614492824772616579964561463484399200124589020895623628378944459397244040716503806274080396827545407626674205307876097101674597106099344893094910830093825846919780908805854154685665461380764546789300574972164878863343644373287244170622776934613287245619416293930357188413343211683016800784944770149925513679895061462045401904514987298165499994413252193808625197231597446029119551428611739495856467767433963779288908352827718761306977639935953130643010138555196672624917007183996154534276590161348832567717579535602765967746436513173534645099352689393894058214862188402905735693221130716870292739281480184132913815582078633631918194736956557670667657408288139010923620280745327112208966228983782773742134217155621608385603393988419809331603053903700156888608684532624620621818209466746466391841886159983141331125895212173290852232183532012108268985731438204871974315836064487698953340206168164458842421397558298358752781197564458793451492748580932517177744183082216575741071070287460416943774257283511216774370089340308387026056771033143460144384148417146696226800186906247128109484041813244257986366577602840438939935482733236335940129567462959370595606685848130351880593197010408049044215098732529908414999102878081301773460144483915773580961521547729475072759503652694174152927143906837249344088827361252348981384707423006045658313329342428146371510920198629225552629737243381030557256047306305343927661921888069781314048354848822963423601420567766649000375064738538681150467525429765220538311071356520723459588889059980851858303857567369175622982508167575243137868003640413413004905233253115552240359654680387395649991555831857527812825658369603397746301604113577486723579668703352117729810672209927379699066320292079257273755974432022996486955466890583190415067762753879107957240770085826958620974704202914259709689693269374328927520687568348798006534424173878979642833442243125694140808358575234031018429084695334939541758651735581212607896694956773190805335420939907592952798172443801658765829464312658333512897030019137877854811933443046576145095077401910082598506357319793483858740910384681832358688560871107287033470416489178492335458275561643408657585231217805095765461700962636870562249553718322824564579305065710749176817186573632966746657196457858374719747455197439913612594319425099915344753339969659069343880344576844437227513630445264816404971748083672478397318980315970951057654795915434180311497010732955009194940824628601230338546987144511097281998698261399609488352404479878512465193766028800459148367879709371961704688785930068566399367240927441481820497173805071699318057464050918862717728445704290362015332747553365598864715639702219709218413141874684088893067484066706072977704988082957020768716078690434657254642172069136211099379961336248123179096609611995980692709125743516049207231724657688387264129575363915564505318967600710979968443606621084856807377360831501564152721574057794648263453514467142484424776503085554711393490759839033346933737161736777326593144318757617153003291971385010276701182440723878198075621720781513030537438066367783446293969060194822345178433333179842858129301201075417205453610000451590900590470523356776920899389525990278388717526600718440302267434876582492060678907856669119951283882044523581527411877910212994315427188837232006409134757383403514602489956516702426856229412719191497123075358923148263810062455316575612762141669005635838071837451758412274475877987619961652112976854642639211119317361870748036855928289866526359699880688307038455114414311632028574674437078400568964155130371965236342603321503053567623614764229920055940107462770489685644732452226129760610859409578685294949264308869995186401776393193213855847975775311712539370313150540130605398221521296304462350354970482659761262217673281279695206044455611495274688647927901304815858862146192154415308180711129976077991466242256282078972796885548439965156852267952342454882628744843568426468525434218967171164975520818278393517581734182495093137590489948690481943032683939423627493809465816414309719599592642384668859928543220283980009847058489460827761648661669299362711134972565572914410002326105630349994550689921688350116074652895796484461809889108069435367076010904781589274115558012590388794163869429963678301820620840594530492571958323204128051434900793699026636932985333832619861575978526368300071657330440068938220160841072757049329776209142567753476051830169817544105149436584669415404269425552749788861628341956156928767606716123827058347860559560835422115032111437624235982668084816929630315724427537270114407100755174463301495083764131320861298660693413123144760987195343416942049055410495934637873664603573309267957359986657749887885248455600953894308270761215737941733243958199628942414589940310122830305478129160518580598070104297958365321814094727577632175018682246306948797881904177042022679766082092909908227080204685011351160447627382265363831201817795115774134821825153676767874232544378301962416040955695825395429646235776069323567927379767776959922668416462850497663880767048011288552077458277490617711568813955512361617431274215534012522402639611318116980375136163843868770891826097975254786016449079225977170445084648663448582706158592678753438048651922222600195375424682489170241615555513752920206950532456917326256624459013031303805092201362049249116987484071786960643608871263697869329252945897253924770776245950426310731900165999622961691853350814156617607844113332075128440168153030099960099454565781631821691213437600971089667220213569884946534878660524641419372636290001565514091517026876741824652140907767575197732698281145662048054866278298426358546779894225195130679896930121252193453764103917822315200934999399044941625620308477267295478649387682422311312869900829893402655904165435876724691085917322351555380825527595239296522229865884327713879947938750579730901630466619750322010465747421254459479338583659249955348165433014197722708703154057211460531032837923362363759696895062864212056127776919511840656169859287760021670982541859642209864181963445644626395760223203162695551910965932773656751220375011888705516745106754014671083365734348217011859403196774326806418809805817460878576366369759522091719370604414203957303200509803023822347014902972899136369070518797622001798241172870230289413387745779615247809451855260761427354465717858977920144436901880025902243691806077673388647556198778132743510076843400625369271451445857021673673552592465866003828497555463327863810508134681477161628747697104575627107154715903316262664591335836325138278205159102459947571587659970768444903515178132487507989750845855132408361205766599487526314955739813898858295033204579472443325092365759537850439985985888718419303401628812640358102344259517173301669134937803113083330991439857595172464753163696005869171408488415798998971965562694190206775354577738770281144881281555704048683940924415942033659807900164135766036779407195235923016432047605812045395775802018776105470410197290492059449694584337065412884338274232964341952531572294164618797732534018366771344400355561912506229967455227460916513102064908506153349008068335767512429666678977596329769971789386116783995905681061898047484829376203919227907243477907537130889252357499231963253853996478651532147628996218051615277004362905434197582851133442571993800972575504627177314867781930731091165318064955819754743740267183523751877915202143191600542040609242073805496717177817875089594430983433228352715561851584266965549048488494728593693267770787516248939781743238206961151537125729390101553875165297187481021211371772429288333955180900358336706196777865970751020113577339715505793459417603187929867063152741170646825516534193691737306525813452768541734788868297865969531055236198719346880543177294974695705990017535116210526379880601224322190692939582724675640098575200230418974619829994316206542569159213142359037512402003340357930280918851449592085968255073081308648164734996122531864185046569931943747122841613669259101971908246101539472522018642410799404039858991665513799224791104692121853840760006542499546583281886408395442309566613558086829233695212412923548594349903226896938134695874968627543334810328903964866655575409094201832992429554457248197211648332721249544951234943148514766370023616370685273960389923258433502588310786938313280124337338371222420658807893055337406978143755268401567812412257646763187795950654798980627716010803785925695363550628538163386567252398748230033998782014715116155614266000915031798378581548522523529248275260991055392748339739111435646246287197117294913576260439356823546083040765723978722741252250927294405658216898309096770378659797063954547307858351921229113439201293522788984191609862619282029544709654594281284324298734364318616200941994629512678845673816555931132763880860636750147706390635471158446861331379914123638543257895395013650803776524845405011370551567478349192840893091036139351771260209451075030805488982328988864674482453662823902289804210574954311412609291701681550304536833946610497829110348121968805714402654537563419564665081235293544413636070952314351435823738599207805344414642785240432215233840498069859936061785605448752946765870358713410328676089314841245454910809141038991194845666209732726212983731586025752338885863727733996721577485790012575558780751115271723415342116188885353149859380036183933275078203147296043070284611473708508295565428041706645211152051336019696100054620597833432564585403195463576219250242262406457872173526062313095951296765693430913392208439495047959692538070298202679977541260431353289354201646503088614060641487053509001826648740837771737319991386393447249604492616356950337115918948044805515642483911002608674145714249009017124334152752330313033151823528491263058426073559651813871963573547991848669167752648697086682512462122362710305952108337600305975196355379944650234552957194620459937411297071445748198951747945964548684237762967226876381789128076862874928087777016566883291564447982473241320471666904088469384458289955818240378537194396670044035835147579510963644514972521150956094761423635705138401791419155761297236267255517840704582461981736982170286038545199878971654728150310189770876974173355598441243736743113318773008895473412601033153164760829646748827801273369289965205636930226610988367115859475161097940113057544012385624863600251855540893577105949068768413859689828522059052478140641168615471783730391021821824433001215452687536892700006044034421149345009772159402335679767337846484300159031790396025707099256479870560000034867070012577522190607878391992628316139154976949824673148253427372276920492634190668002930261698667439759884561442025330473116847039823982368221163372636871033824551037728701319553228291088336337209632413877929377980535760662599854970280718948926991787598110766534431929782620290735123972250444102848301396925854025403057315345015057150421469794614904192036953130352901268280005395150822200324324605461953628181297117149195836008347284204664243343851710884660722977512013653202676486358410481135583328164862186542189073772877461691938339716242232251118640785486814624698972189261921191906609894468565394785514149842977900758674450997216039566882432141114100060708310104917575961839440868173126122395908844527034403490527519933931037773388336604271611121068155826304041937194650000852876379835886613631831231088767358762375724506625930332214302000158730029724152171200622287002494531973402155126983111053794110860698993880134396932202751503832451492258929618567709412738758263234177094826156782845161934690841429394254395444187101704085673760824561422673265552997182384901779628455358290954968944973576361917321438858961785106640046837118534355752703608106997286463555961606473895394940842545222594499565476463692917363911622071283297973139906990159831632206241487010781299830984480942642797963740009695562343364869111841420829845402466091159846429093618682994838050052488563191284351647093137336620040841350891316184325269505192471223012983906763391635125718595981949139800866932649890734739951172969539817262567353453656919248227511537681676234457118735848394599672032139754695097773285967675643969135497991573533362221834495793687436955869881800524462502303987021277840079338615484510514672248259519851266329371342197429302316755421177614122655240034853799537333301748243366881222195702122657284155076026642589983190691587134354669321642510343228596469954078756081028362610251688139612796286616243501394304710478992059640083640014870949019987715024359904860348760094266678433718675167636752128200108354418222867666529570349671651443735740161723204280355152187296768676835327139756710420613627394808100797549896080609012920261033126239770345055260389204772663252974772349933808013783626859647725151675848117419489326159883294650315791655461341134942658869033340022795257851001498650691635183714664828457110724894300031720582791003358028280075829922770645993235091626247414561164220077439815177399164978344157896234796316363074576702609506169759236922953082402470679345476136566692489132412228401926756135487113150836058138857776029884237620831053189089692296190993101821917613769346513635739115534465070541233335313550330283273610208094018909385384486055882091095674364058802682906910290986136433391545909150286903615093624987651665562116880197035365599093995014629405821078448522997827040444287661979345953525127106451983896859523087120209603334274832359794035459485220497153259051988867082846526191836866735364242569904942608650255371940158251074377824302155991558097679426110674546589792184665617745191484614762238423533200341528510784535215223199445184860459824470304975988477253998117279111418724521870486697613544045142342293589387720098795998516396370622531556635523883559204444612518782827357359058752145961163848951322094637553141851975626099993537653749809308171135270976914855050202989731430990752007776167901257178804017986524113164832539523341182258400065589373557069987696025065041390253853477368636504007450176301696396548264100040383566008948901576464639701330688326651006867156644222300452314827742610244391181154010534411922606465099581679481341175802356161548292024327161031662553796824872712385740586984207575409304460429562834817107721143989101327660302077558305884233509384676996635497376730632400898830247949950198895315534220598629767419719257776244165294715206848812624664837047215150074588634553663628034365241974061825761055265354534762273653198402212988767263990676525078689572140302039623367142433787121967550924178816587940548072727207595084300083151362626940155338281440752866133038636683245161539835913326047682087551231326542744350498641042154023487727156284983324161236220063333139559146830864160796094170097990791114780770369247984108946285316245857209414246053493123947761440323275515204356408469560495897760157599899948156818642848160553809653814874753620441305290257723441038556887215952459513983106107910408701608116405461779127376901881992669864150317667544275229167341501742484012655382729376353498292369674408450575134708119204095476397910878606206010334733939837944841250852974261886570912626437364996898166686694249083844316937103284562918651734231218534739554238842110780892586742176639314887653927269376739058657338648877899204665360573461862212325692737124917710412904869433383497376218232615335205174885625953374286053031519544368352895283832588846617687138284331522527307600045285921034370774223059224995034594719110049263116756994950937082961678457521093483732564460760549228028937037049781763000458655461518967705660559694188085032987385797688463510842524462109611871340812059476772926340310964912675341671147214096150826285219056380336396061155875538461985968727138698827500246486055886333526158299381888723149146394402834433069351993538266795416889134957046891474599149243889210970932413976607945423490758952296671927444818583570039155569782199493825718982572933281782605275135162318149658539448178075401693041776801553856996698798175259668350619029021859755284300145326297035109345005827394548368867331536931930836872055162553299817214402542750246084346039867590617325696333981168028240770031960825158508179243615796747398963957552660370854755256055104160408109143031050616438722080013205822957950910765523250870230877461773675711934867599862974390028914545187260497676390926012470249471425901035403060277615418313502446009901192967168551825154466132631313355032332283995495353964850130192560590599857062457568098454062465817288924304378544047273597794146962848412898654006315846066013542390124143631006893413606267756092214889601784397461326834212729071436026324757857616678245217697245354788452913096697875506713925295179899145524045849585749968512889447271408412979701544635732059208607533159690190786380620700080801739844604173312628979699743850510558266666143633924092482688448316715323490057324083596881837448432493857724019241862638108021198853717770232557554435455996436008366993549789470734161880842535461676477164544362206954618137908846777205905865544838918231982039452566649258080990894830335097632462848132915322638091201397532084205564261932689333179668401083474081159083452245309360799393286094668713536680704770957204133471740284581428758118991900373205256457185450923990969884512231890702784858227378859045022862583108479237896262141368188040933280387619799491101425419474213751405354258605426050986752518585180678712351085614622501801320125315886679286625238330027013486581918197285630768775922055203066330577446296368059123107516891915494632552988017874933192992600854627214318137818653167747817355100399119673476252427337588906503304779629577442905192911014103427368857849745832833561658718072930893861151610343450277496097728188913757822547810081805496882507537994752866663220347869047450938963538249909766968042297624890057471790154763084921783525075474207490548963827770539973323330376692566885176071401653371727664029453337388849365278650548364829583168633199038587601883635268005042085025233231020091745282987375088586621668358387774773128937894018084565490692480688282418922008240670452792735053000912109931770542602690770081081158674346461868060711593022769486828412431733664213877550303812272382764590934110915616556333312313662684644152083895342007695479632740335796845367458363337830353846725031102046746158651144748477921336286333005980829062148844798061601273924375067869125575800702766596602312672382634336236222474142899325789238755643044458497992943826498206239495331412138000707956084941512310421322745347085213003134969137145478099809443631040155035611562399549357426476306709927657193106809879285177696984856304708904334866072948703421749572993789688038887606897136959129461040094924785732193787187215340702622378630145268570206958670585611158427115756507319849661992932703211078911751091739612687191754671189528833545759836925473674842117293614430994400785461165231265187136117490020234505019416502037545368839763281683682705344378279803854718477042073245401277376094071077365623427826600667975837252173546599230512299651002479607793552050709045824121349761736418970389440319088678447903819367585732030759265405277920636196731227926717536457504726754889940610877184982480611589404192627234210737606714078661358279192716681685626989978241037281071270754883304736985431192662843633880570198150134909972686664245039211019716886073509939476445000784024415316556509245552965139046839153461217828148705886913374556387211828571114341006829017176133588330028527949506860708029693522520694357781689557984705096782519270556837098977869897393683991621379512413649925221507424526672503031286465232309082115345414200944567523095806060172850658520793766479596133263286969916063898718634826118857193261931973713905473912495598148755065701895393546281496152045152604909175840024874925277354177743066094255358003853159995051365119137242356941643947540446765687019150417584186959193960104959450768079633554505256568376446120809573907324070548085294880482391981381111208498862440769029842932841701916969689883118768496012032841871509937270985846492710147663957692204537224824192529138649286722274695906700217709775261744996077501069955403864547047329506205210337535273669857233249648181232597388819085636014349176518205031942061221990081354300544172626783360276923507293629666404529184180352673613282029434726519033158231470168470951156364016646907945543376918347031185076469110996639364190512000509206750353967179860075003509684214010815824731742434124273807972477892849636930389076576541889139402001168479411916249301645342811531321718853993570820829420707411271434810218401374722993309857918565708783032580774345493303409926520103544270074692981672877634382358010561627471974720711427777023312443306070870942115529237001886380043297632259159730143339116579818224545588665306859921350529409896755206691683037785569349952532144319929452726205722270008831028831161105566783498184444522147606091768286782263662312225842728494717648548229167463134713538860159760626485214818475978318327886742748871497467962997196157208906274044324038761417635510153898396575492249898344003033967945341245137863057282056645120775752665759361389240027683138617489732974865085177371305019767982248182304500525418444397329200365766373068840683992188926230949666274034219423324240750271775999091673423520339742430627939845758250921217542104228635370779408180965767168307980431476227179250271468457784780235390723843304154141980968489857761964383473426934298599208639560359969781628322167557590101475863090631136802827470640293602938010457589764511541241378571803631101440712052444430807536048974469230312841743816001317464649455029290999502713647386224788985202002619342828313593932938445998096101244376778236798775903918869493753224148538760818687826660412194288669499160063355084931938917653554913367244465223658225520551195496481384829386119181650578888969814232152225719929384187201670238973812540778541341704585518825298213999993569759114069616849818495152484146045825817602198308150615759744432414332147128309804233645350477932830850205366413306539231193537646024005969993717113994557683827415323985212289087245444947596199892004873583535163477283292319282355304434132090730360297811827272155334233651150619702441811254521300567282339436838850774093496745418702875810990487177172975801936163958175730809095490774092870578148621589621478885065417671414880468769974892899987018342988759640490661983583400767558244075120466447820717493196598728316835464510491387736229242509832780429468270562751659654879321113461919269037465938864253696976522561619738874338628794309388427741679039023260087752743877901929637587225390554007947863390838121207529039401653188600915800452585748071701657560466357980712642703693157397579322703155438218876943393283455258153124536479251817973561672281777494851195228757279215631946283134613474202122731635852562139990696143717852758511435519724499693753492355350101145366778183443993541625944666287163183730264087930547712233632069650933934069542930735839543919678856797669542653571507814741343022985902667689693147458197343337831511212008662987465792994219613768787085441641578034027952472183817044159060063888164060339188631107357839808019740834787061009006847770250410969026881213866356454350745962213818709019890224274691522330714384925512765725167301086417492677965403950378449168673381238764814811773586662055232040892893623044082831101205173561205721931982662714423384673379997798479512325217682619334132346891671804719184481322346651924240220190342585843681747488708334946862160890658742981689115188262765174848560816834495723627769078450568330544173205280512405878436962026454187876094264659503559482293525020888103451750511947071776354451069371868931610223526295328829456439005402623440812328470008612473700459239817033655323004801406319045510516884834007356122512084311667781697655375518695098321640040341124631057451491726778874034386059018255089965629633658078068100471346724249659511040121138619563840271921442189039506121056448731910192624674032484219367397579770224531728778573756633701235654237508993695926096913403461455079228500202092344061856211355198467346607458206982993928718172877204632342629317762608974166065411520933374363818207906538101147385459387843957981983743591622509035136551951515917728529160122026021843660257725632393208426034685669053552395170310993348453265225198052769443324219771429366866537364488538875162689248713095530073416920760136298468866400732931286091844700681283379381067834090663181501299121284198469179199440386336087088117181237069090717823109986691492523065579920779062825872191674657719503989593560899572561285781732014053839782874175879499321055421972254245202605497174660691519531440671124282231986962746033717992152734708748657100400927718845027047370361545497875845183244834710770444542909944104680779405786648101586540937636545036611290403395312549726102326024203055260963482822737679146956250448198953814016815455034496014092088751450494852993020744247348995131104793104524115565468274995396405999496943948085401614811419790211050351829844998638245681070423627220130499622948241178745906508016399686611767838150066628437467985638678954900097107582318606542989809307047437317969268573338682667592254565654989534685935141021123148014449116382953151983392921061371929431338111876306768139930078925441852008448759540249073156779422831065675680169017109215543576474607867255684441676695641940302426174702513451423103575757658124354699568087077606143191670872689960746211438830081925575655850622243821742273287816903572362479156068042799925483654896462690757608131579855107184663634099655696956988810011467026115790643361138810713970129018769256976441157737276429795081164501414477404840518986052573002750341932279107419596125600574876231907595758735348368930181567070672356720133619114208472120538510935776675225454193878869816460790523723568288538290912390650174344658086599720667800373599736848928964939663478109767981745702291676461432074334872760864688070397214480271903291920636453430047974277735969657254701822534156271028274832848688854985452978007405446326386095972910482506272662710673390325841950169947955160825730848215150192026730667747940144893179724804785881989619554984635360082974309502135697665114540794738935819828821387292758008126329738105453559625755718599084106194643739582201509554166003330687424997959261957817629345945454762754873497797327763483086105273206368002532145266084845814657728158053716444053446712905837582621295837310493228798603908843244198150746568585481175971888288151446734523101155812995024788091852035189836932466876728647909724026998284978201637786101931314496915028363443963338679217322398380574906611242356433856180626559221903517536199830344287163811990877100881095994097520128595472721919612616671569184151273901224913540704341325285628341185607635356039577398426485139502710099873275366093386058253206436219775384123226191719568646823402044011846528930199977801865432960099228527672406001703410640260780894458739198470228882895804073444213775901161914673655709112266126701573423721633382161451145399824691714978348523618789561524058767765839707410846398076179003415292452406514280621451069708778195413154082210358350669592383612506023989305609607005680830876454407993559749529497661713466353712578873415484019109211339423562185323894443854565296553461731258834096387010438870746999821638541529217902112122647363109543076706258156839461907904353692716759201880026217436652901442834437941535827475477102128661305140589170241831949270937264744034326971323926605785542862026764191407383079225833772996273252792649349908482006666655730372653177649488229797362639935519389040752760988980803888769604303944467709966869069506791809564862041792240528320870447386174695481882256604768834825195127864538861628436513504150710319094905979136020645107145442583942867371035249794280920717095739286235103960578135284703680753947085793266273064382198354218210739244621166854171452400600971977747259726792365517712354282882848092940897807093015508386434891749290289622260330062802652451382631447776636602320323464105942901736818933277090419758287481664268126528613532128946107812709720223947896427005031775985619868158342573607132664167835769828620636300516706049206827104281784472455722108442850804942385820997792948235485790865891616845658134651118890155980200806180830781112818370809152542965457998462903703459941077750806804509476542559280840173777873033766238191926357335896703979631508768911105830905143439852836223362694894056920139400264357183838578198046577413495788016692417570216792553243403967864208885876050882655391203809244329965780296769484708287718758461675713583888770269602594435824902819003186718196249056577540545530060039517198635275987359565634319743810660769799192019394148147655783886084185666548226845082079639733925160173112517549719115319150203543596943738280712878714380785354030604565265210385880483049645338248826828906169652271742767490010471407284330751838948562699995021090471838990208168688382924761103517094601934276179255714013044514032519619219728256401469982650434464966168489507930101127985047624521449963064337532322045006668106177229512927674033513933618006947540968500764423413289943445504835738753170464578092280896714986062881892164764187899737436649607025513565275441415316003103523550967122957063710217194433938200047116028019434570557287463920970671139865631771488229249541687739638162059110958830762503711513358675458127601570387424132140629180119993443005466288825087509103420416518856909424772764374498403839620835619018245710700119673415460184724723259792015987972737761697736060036589731540323197126283681285388226518388143452205602305933533205778640547651328117557620401228905981527419405412523421409652097922140283781097864341212500023371361259865550349329456170127092791703511517695086608669040435295301996279606217661237834038013068770982291395737628431989826373211551415305711874826936917314534722339072891440836740043391652704873464833196595932394946107121277214670847202625563357297834145712007552099930019106895893340244370930182297883362646524708150381300172597238551570673179400827576976707016479226605132734532815608449863993679759183469046761040399289780255926526549689880307660828883509614619364637696177437922008686344454395501339265592609622083871805334159131561488917165758579879731800910351142383108487700576795903975351699705796413444484138621537042877659359613165558238301050924480237993281105150839843388489416199864385257955577832803025346249991139398167917434077720935986932694735666568786201755896380777741751920839685618150878661748146433158656767825675646215742383425680659515062333620584703788012301272651957944903414289196733059523069328971729941964645198135684717071454953199307074058266884451546461908213923899644622134516286574884514300548737352084851897057566952559349316691556381196001339399751297534875831901293374995939210441392371299034865004979172926519762688620629076801716058639318540534254308134100333771956338708628206992206459838219371150352444594332025901718450464080205343068959769382089623935801049093961631964565631340166974680879480079659040338031786141567124318859677653882997330282140419276948839416073292180092337778785965437917511225157727943529373976212292260408723275511270682042508138555675803894432470297824029278902936090424403847419560036771398983463236815004369755622374508804599082496997707736352515955884484925151091761605435517887498015007557785910709436607171569558886187472479618346300273782015431618733056384637274208728418090491156753947744756787707029682386720854895426205682881843813976744735022487898596205047237964488852054664251433838705044238805562198545609888695250634444099901146341019856726065138316643939851077565889298894338437738536999500597091785499077568894356705753292185750900898539179601287121174570590604282590614161733557850970702670695884617784786161803089772860243082420267276178624559395870928465943987968143145907706345526348408883913399998393744756443006217336620504587788879639806810227114764574494897530893165555532761435485412200632763534320042515236890296647804207330494064141468725526061923179262844276744800429893025188304959762617872780079497367806829500759339325037493751110780262155111304060237507650515842543726699153229957849618293100799674504497009539129700217699146487628644575138537125977354343211622677111081924669569625577561099513456320652022997501862533499649441452026606944157982449393453004025391812891791444387603788242561928724720796439593075784922177984951177016110382332535737886506761667990424754518351708330451701644384002109441368001985958437261945153890515191323722158838591676295584368819115478942241373780553582387637265290975445507622715647597340822447611415260891470773570416916497826532648222366415484670336941197688237251393796447815578640215696646921952943637708399595907161772208737499285402649708199247530172585395684252839180471735907813368766903753916629434475383383616653806933285066537747225231133093575979612091373738770319071526566607842259027044177705858802397179031430128652462679246830093131801328904983348587658751585170282740051137133773123610278069319767126987658242413770888504762241424684460020141803374423804204939198423510952471126633748256245819986523097914304813735519145875056310882401534872729022076680504504398661394040841478231846111793174220492235707432467785923248936174750612336301099629123962936088288807329233637998772718186145633477249577165855393455786673427981503154344466180330334178719514051359798687503097442656083362210154886163621915150597790865472300962039437260049704338236687767840927478137531970418813821223116735546560758750105583862030079246872685534308732819771288822492265179201008002886183392527278602989538375769796560836936601282990049016153289531772972781823736146320591766504650262058369957374795130515136781666186557573339409936019094294822410212145055015567489299125607664952376017839224963611296111382377886668520157865273929509033393894805112475435859223828662545435234408380600949971917851987546954173905384873331698135547395912107467223086811570296957031268966861983976173477711583724269728452114780895779876805786005564072126528208391323596386947646396765586876021789247249438809811638144667882716662601342284023507838394058209017369537897888201528231236572811588721626464381726264087015000686007876067061662226066748668875383137772146588168415000061583294575324740978137968329038315553347785184343841019503653492393598034635677996197881196396369278353804922317443657653329616782751399690059917028065024556792828830222461943675044991035492565557061349671366225842373274647572500256783907025425617800219377051326165211237564775306268800672966545747307623137222386363484170633189393368821821447921155870673361054996740070145875803078309981048364970146192559459403678932553548134974157881525361563045862029920062067379648830146880796512432203101912601180167570450303771958556980535379693856113370374319881279566480825148982068982375599135320919882837282422073401275955251598867306891820120361656898460672600470576927994646113324263265780657316631310150326722513755811538533269811711081253028573634900792067316258808057303485239027736909227205619339051684047432541012064581017820370964203204753627381836607814451312249062807954472011082031475655750959564740918961142669833799792030679113957735688895815669654823149739954698611887618716199832232677255567532608031901681983549522955188824852125337836183872913285494306665949055775467074085791151137976780149928174357718900094288617991751965314060816605624348458943863881781814237856005001936514066050932230251908599254016778455224856305014903982836562231764284818951139552095956210772144372579844309994188125162271838308850187285364361653874595362132413919492015824296173363596853777935094253712953584245944735672548433587707650557004128943287921325149531745364557558288566551960505552711354451045311055512943432475700363812681626884050705045052447987923492532368788781835941398294006666000727431550930515265564567368826213217832245974854595751435023262423163075171633731757554341260345921055601726497503261049314140102983366551681648384228046491912801577922349915136646131132534418053735042216351119538699838728208423565685519428882739394191276791308149010157281988498901117798127031841761363941491661390762158406398620604681834838224213614731815063319105761687774365088418484988654513537311686858114492526328967502713120548409270195699759989136596102324527852918109242278157210690918308554128797575233954257452062885754248376075411233040818649065048565171754016762635011487202683524087304637461212990180019315832203063145991539472615162817145947132132218109404068238424114300045592690486339945688665217913112249005027579352573274766032642498289814146829786151328671583420546555830692298019306796184988823299060513967603526177218595385783156938499826607702833711456379547686527419543936825027403829170824006461514689817798810940303585575201783313382261153189380644968286034154806330571159559753827894767454935176687293663611182160897037649794504570604576879210521903206619085190970190863809056699154283913424983257724020016329600610913360566241607833323474615710690876222898658303893917123403394647114206996768281495258909419460282808456361502424302974684064585778118974095743184605582261441783098260118637491251230143940364046714337026694671715313076922609983038858292998043474281110787201221322677371423268010901464646031380101284991972375202498400750653832248292378246993136534010043579947975340910794255319725452681878191093233283687179621120658487558624200862494430607780592502846394840267927528636260335338388502260729737709405117395534526040571181632157361454963951697571569696854979681693157570471423161237823723887484174181720376079712206979373279179171811565759996406438531547720392055129354635380703783754087191668732991522872814454438683196249005465668785862989520391409586110412916581784827905785475612400656801636304005297051707188926703384887837704993968777505245334658908915064728378981780226688827401408512941997833159409431919631725659820410758566904566460139266588863514050244294494276680664013547373108402634063719841185906247875662390730695705817164151394781205183442636889023183768040172538481884464463737665713464094476513292765856376256174115626424149877950058658487557636586174454734159422169884977791326779643511293129171546803076399510579296957256535804581303202347446663388829597562476103636790577102566849723787429939606739939365231395417837911516794214024504478983837257185947403414686655022497540949029121131002920821647375044980933173684791681149658510068342262146475902756471775603377223623838058323524992761146351984792801549508762963561804939629887623098103345126047940663218010819531632370413401220263234788908905800835525597563157015609819870345315302472684463813119207505208996930807999015658693831921144523931167378199644736185944306292507707190669993828400385932126405413200369944975250652957152933141589621563529102311973151405123084197614291498127738557588499114974494883698847815068526431414093011423209936967309576347596124643457748789947682880628910914013968326116050043622701523245494277080675378783728945727429186141203837544541906491477668425245089959701738614401735405226579592916146159657521440607466730817593685018583404332508177604213714222449512829556932802013293158640594479475740880624396467608859538355134800795406568451009739736264539003437091233044936454046476466400555693383581631424887532229475025612368216969349693752703142310868042609679831501699495060622595165845540485102169619700989060835422981187390740404582704409957097076370857225728089579283604708000054030088715072650445977878058175767940427412546401153130380824505621442492482815884494434140930675627656280162720550536628451903776608534852169072191017475854776087182900045517888258933885686854655383642256682302747027715054904630992502323596133446278560336845660510415340751946720956318518734290109374806514710162900961854181523324193685531979344665877939322221440663894306463972420110329772834251688460451745058520166012249979362567918883126612096976277345300454084165048048460749063957116634357593686736652348456763129521529917722099054372943128527824118015836403768655513303943238959137871325516254238473523512166954635928609690620649262611335595057499723252075834391251646310555347780264366254351680588748268754374924892186256913408030172611438711496066252394544205020259698663647935265385802987940199264287463669442239485378902106645446783035202454244084177886394189171342249344236582270356064944010741792008687569056746815038150752018723286798174848944725566446183758437677378947500843066428291953108357155484904144583658651788723652285752884069615573719545695019475550228373242031860592586523900077729633174591799825626363508923790437184791138206972056930656058485048341697129540513792544852521923629948812212567502084251953578155317636076272404011153313293210851865183512302728900381250785936294578692633423280833947320856909529957463897250959347641846221813233168252386912733740654142079005872273885830827475961243070582163804603069832792077381897595497029029768423243143504895982376301147347205705564306005420875403276040426350890388067947382034627780113760250718715949496933600775043306256120525349738930944792570789360945694674009349599634517544137625369650835249010999491260346943447044478385383023834750579746608595773780614841002055439593115428495814009425401735148562096441480955587708035119698055338300577131339657761652813424713430456338415239106553104909291436331837846072569576532153483143418338182771516964316853192011313959838307863069601566631252720801030129382911152588372835316793936296402040517412849890527113624128691496043709837820825950361631352844397784712982795625098762080435373471737467623178365876504044954133875517883312909427203052510288491785066126401261140929309298003392833705469617270257601996996790674569864501821712174318165876292950020935076725400124336538195463015441542932444031606077927122583628190619699847710408936284316469847395170260510188276400401026576773740160810674051312455086923298781789185269902548755957967465953738012813592897947607043454017159385337057837207287509125994204084189516241235570052498635169611912500717038629837973830824160054105024345949650421870883799069256827794212110582371553864651073172013243825004149055302276710306204661617351600780910816064997116692824466644128061845508002981197895023618246615617210883781386146572128678427864537955638766682278112907532594334189027368733177191763121049616907905158526321025373843600353645009415255122264428554238380062867838986409067102435388029177889194847211108557748683846718104847913707708348665327234195633195305757061888042619934994348565783022407794218249038730272410721272398301516796468660633408329602311243584953447588875215242476580260070518340061955128994105909197798833403384201289626788080113518363011532578571779928992476594275859441506995237556618001138688135479126272625678525977416845987900816470740816892976205156634849067698633764561155382772281608366846398465471440999866322145614391406070750607279025405335997871669804256808964418318186831304505954711730556898619352193798515289634160114358747117564442285152599431580689100703679415305614351326947730489408824170276753554122823374431547461644074424057912149022502196686691377648755697636426769800127514334987662281379953429119039406030214663270310929463372536991003316694234266471158147796931776031477843514206688444817230241331978624557628526914274095042268086294481275057529312253791476461992099105461839694929134410502018564329837594797088707709883487332123994411892050813404430437195577492041760868073787621765276465210424762849349469794118009890325418539509532907052002740901712362827493530722266955804182674427117581975580821467236978642499649125318116767980983789442577071979416975800186562563766455670520138393802881415693062271344243772209466375526530089860586574795209461359811264909581535995770594419249648670085949449442359306873601948105845031071503036603259879268175154381028168828854472505035834392722265038275664106716731125048786907514449322328465204164614896416894832887467202100908608019060380411783060349552534945706775267562570401734327487916138711813067058678875006053887037216671093354304588340915753037031377955909732376616037432402781591345800493701864827294345540275687702961278386803184072321412105692866440900666571790473866422600309506045297789217079307433719357599462790262455243097737264671166530791088464465934062524521123675258491808427005895311980153985103195402902045997297978916005038455526650743673244227697578412624349705367583022149470488496288910305719753927848126448573528140143390453353659185626742044639794235290801192526359649851518917699749438844151086911605580132762444010477049900919357926283064968585237968273616268966648541024196108005201736352933034206512975924411179651052554689589344353708984360391230856466642394485774368175238537718470974044071154425106720625474437234040152395239933910956875518080068006266703719629156667912771198289356769017094325335053259006912459703602734136265199840578419999518724430715069499256955928963763711263057883068271042887262821080649477079915902756430968287927035279185477457436899121738582402988362780900572732388008892963498383966063249824883021956976216479873037270954694197259552599734329939988024626063245568016069998551670306082870347602687140701157550485475927914182954001590509550587613791267165493490963533053350023234896418861895602548008832323546737269572212384748384555058322538514720876977762036577735677666483033798337688651823483983853914214425775281692015013549495247927161794482895952443349293363109799632534171824351306615467702997819843562102672582020581003897979073507255499964593739062048859077991045724135763916858017614372321714355484983420963519934741972360686346845781698850662719394589240050160936845438528240684395641371899959476753661468801768560304559232959545057692628496756016086920818490799425230529943298623123546824716496582822705011513029841107738808507889446331117314628519302210573541905798604918254174219393480598228439678074393404518938739706762106499116518304170127421486022335119921039460490863501253662544538864391173084703549345973418730766546332224522852153168528652869354899186099671175939711997008126767070734665732314790875425691838468631677400276193025429127388984104546193025274686102664884439362761210748467307684688163756119611257824811729090012891170422339633885767315124388873256094915416372114267238129949308485568207459290791368322866928032065433925645644072972718836748908088534056480883804827262224143398263704433439558193102521730597517045541831967807978252580959214239901947121873984154122562966607361901187042013290510046050604988565695751755473033939251153688970983837745644826652205510405491297213898992536725896913091747995205119138454852046625651875757202102967196472990353842858103404263013495122860025984064696803611685648681384551659533378072354865168636797076149142231122658185498161714662605615929836360608682169696518876590408796942409486645458208679883698651771589128931712933059362786351551828868787631253324791773255854910780910767692019056695252508284747809749116688744673392945784475495740865048505145848569505026066231787534480097831967204111512460441353415036330420735655418122201939514865589217431823610262769940638893995914987748702590319256037527496390383747382587339385035206664385700257567784069865251027973695937979682231584311990755395824367612153366815410855671089552358830861129168560854921854458367283385891502177084943337538596947019085722262998358577577749279936237911610172348696364366827938625078796805374301271989306476555551329779349976945852616563328322815924743304361274722301604716185424008777484137636958626165774906320736811733603848782405388835293296808653679664467797801551863399427124472844971855716677782926025055810477486753360503277813058639229518963362554518389424681196229441831588157994101781663057530696752752773392502501497733103918704880701193688922923214925636511353923784187814766975171820970292062922138911868764179405393991657722007597313168911161335574105059474862665505577829560686073460125510132394353449052004656473172497205360127726770463980975864731252669194981550661790738146956779578784593736454600492802916617737040058623205166935541672306249066645787432129847835503342786546470174776979362134453575096999390151664735767805657850039682242574426574791799206922852521602692697346940319302633873161680014444763079927623757901049880589200340124921580946956442936190299360485745534543906262061767969543891321222547660609230656007867300173323547713963006228980253207308930138697976564549539376776916217512027748377223049053093658573312009805285694906709831206965770582003206241096387789670515730123038278231855005950065730655057444625085353720114391220503602893974216342037106210051548643834723051330650040869562220237394623300391744760708665349382009053913493480502614835184258137091211428995760891084774451666929886355098515365384546371081475590908588152285254117420323704466788484100463028949471068914483688949322499665215687560179691980016002304184279285207337593020610679613657288856019774605764360209073440096499320772777780295139339971494794717005114915392564080297489638406776578964928649609492914867131017922808817993058621997540197017598969169639370608761419256935163491567677030063909007204072789990361968718663548903547100957153779648391099180558393295116234884532043441296249079916013196365109221137141239886394727619137803108962175061531836857657105473998953298475875270964246541539602324040874139725983911799285845046463284302932854730334536957481508811563277769967512042522147469176461154941731882806564900332885009505079287253333206353978885504118073425216550422611920695618617681507893458344563446395918362982291985003297901441707277988039396925869692491978003016018351125853789060324538104001386950203986670834054628601889103160243533547859247703311371058083466047281399413985733510070842778253067090492427925266772568646875669828446585423046991693990940465953924196855280310552168555863436399439544745690218122789199045315182802807102549008364175947803643936165921639166755322135935106954426355440322751235981799529764887532445685218826492107488772352164196385382700927208622522712164407269405930217465190386767678808865466532680785833619126302859500729629089631680711696762791469208124183601062842823673975685864212087019334304928003420119217412054509657544213430287480841331093315230043550573938484856346368469069037070718293337976097696147668470629367948913858119608742566847566873997869041911566413227696261353391952380607196255044496395702925329406962160203364219031696936263230948311433084778954987907400762640890482278125337686595609140953276802601838727133804453981621868588947596985234876478269364400016161053734342697847726428384269291213964244117091128370188223608543620312597145183744109245368311966424826604774963056653646451578739655489450334106681975658223065545520969617452174426140685227380697310304331185057864457038227777337760187075042372089668835061259561884412940895930008644058795575834085868335586005288098143995611507216666812464330388880565272284284248895366174014206341095318556420427878108722223631526881022056875738627509224377024148292641358352913047545782327657378106642843693386427968222162758822507163441476509088683459932755334475250452412351805718450127918846638662390642933401200929247424802010100792019555338548333874135336901628090157460686296266808641222460838362455796308797343801112897725228633173734584593550426942085367316877366355487423785108401006783100667653928887232745636094590075932285625910416127946309103154811472795263741796527354090568105376729235354876596067301034029354938357041130302550088700044152899297363273880878480770279103069131695558621153424973161104565735879111510136548645287921731680376481361231817684687615067831768040058170989619875760639488027653178770432502581320778926732909661402063591356325256313552060877696803592714950387935687283897241625890052776616050737024503269744376973899228519035100475782512798826931515480173025276367199998550211562144559913248119507072768412876620446606393897782901491408644731907825726216248133355039772799490909635055356836014373318634922064164715474771820265476040545877407384231076987778784600106964946970488506674358718830629787895269564636050020464683332151457182560384456599406292620215638660446033500269702027323329393759549539540032105662048630802197273968801383310434102090892001039857213301266683134933862281945096346861756765026981957382017192431815241232427187936785766676249451204885642218691262971696674032670462813846081589252417748467805368569958774876888962536585502863375909414067608360087945839459899061081651366629907698262074931854441346122929044477525435560208855070519261583490600802235373798492446281813552640463363452613442442032912122804064229976444852504277078016717017308614049577646279712646687909816779902538844364464589237548502328806071559603205340446335018793632041165066103413607523908932674845408075713258481285592131221517418290078575411877679718893164303333958842133927747716519419690325230958148786007813417402006607669375357398512538843768488421819244182475996197282404167108001119813038320420173016721219112249583177573914636372735582035802823315266823090739732299522525054639327387104464412118378691526462882747049450231444120608542953283567595093835983002432587074710553696208098801516254152006462567857879654342453969584519552451886956501290845570674988106542267624471769663152821668164650227623169088626789246354765739657438376105869146569657691336358993611414455199914040342198734334890287529938747784984329754344773993964651655273878536723973300534309863569520890743776073798538710224579887173417652292214435935712275153138713939983696677300882325855414699872357283524864678091098235018939616890533133555921182322499360804792952086890025980053327038682360536176417520232967047041243587686595707044516398149043527367631127136981674351483980294946079604550494331009094455914163377172754520872448895293451339306030316587186739542835348879255411919017381722672418784572591800032130854753101229123797581968011757796591606967037669167510050132696379523293610201388382910363407249900234297603634648888595908020179982004117606227598291208799023296717863570474742259504214663998298914892218302897255324754490278375941884554726551651328795646292893735160022873886475138227414210504575811238225355772511175617330025383197250984832982952576266782702153582791730247883819509668457856475078219793207043569110277100108155719433219413996890419024396645000067782974769452805468116837819034072556531539186129200408482711063762105223808966431759370715312925361587324165672175353102629039888004906260981916739897296296899853254382083412689522589380978708375342438091330709059887379194700111347258933735950553505239947713880242503293676037708347180134782585522906981150895054999975368061589208746665229131196100587995166599936059422260501935292465573406623972307911654158157101453691856917469318074896517137201138134150329602003624078547009376386429655643657314815489737886765325706534889292407150968278352622403771724474662678431724236953242247916218860044221423280373213705242080162789840237998115642399148890210071602028551024974074940334214257179602775646206991836613236266325038273262162556099839076332678548312361107073047684553256176467549365155753414464787824461720980390066083025655435812406692880201041112400040916111192421943869088670171621115314391979661790346751968083376433938694421766896475320147090119188085249710118232463820220913143183814714592469234311267714038453178612483525856427310525085083272192156037397692412305987966985498628255643766516670443710896843940093485284936987896584677022713391181331034541600665807681325203887454620259274576729516764838138671424648720542101190444919294293422949498350510325343210211385974390444328751613227924078025506755941079614787789516055854887171784342497942794898656549677679404532257844130579056935829034858806328312891863761874706010889972127511501686130315382216442325306492088879785835699673818854546336829863726662340048601273975332830878938445610341340629581314161399996114243746873913824154581562047547951858216836752025361842265879861675674705811272273855682659025394949010598100827483184788263179214404221060651119844512313964025794708269736191313383546903125527643021710452324907918120045838978909665143746545132511767761456536379184397871516865873522831788508680501158508502553579619240672380468487890236441088660097897456934678415018807683559540242817994815580776466864004038906191149656879161544145455445401264557055595122919386385169402526561119363770146678792763583462647116381301877767447156026196822832156851447934694844608927570687076890888149792864752057436065044058667198994439126971702545789758008741291748426824827490073708984113949848181100398360889244942955523979301310640230112152672484657506257175111968880405698398629277773359965656599730863716797608118901205729828129574698684896550873136406369968986660238697400072813115684411072917279650940520061072722714050825934572592147758157304779926060865554593944946590450804078461749667990134182434059954590717036153114892349572392703158179988316737700041291732339098628332543851005812836222499208274812452654464588306184677579679565431204545905165897107437364327188820690700293650982154160392465697188112443186474433072553312437248515529307477329060823440404590947114211162440873523661795693778837801432287892571954759084417775528955994196686899703321258336150998153913295044002965828462607343191667696224086146346228667059059197499176345841839703967477020327998802045500710543865935353955958838464422312893487829553806810815238011855014565334052534793734749301591697817962040530326865809186168842473548999535634167921464688517697712267856929467801051560579896662820272546315611118934007730920092044795425476247079332836116646077161979931117152245737038296742437997277615183890968814855483596462253688314879006922526669188948647360958331887864939423049758127407694866270499892983452593930076603871015636960224494946881031029183889073087181884622297401237069863594063013373648380137626382163381839199522641873807932556515894398388309141414695832296797430609825345310587978110825971292111921510095172833766308261947293513107431919677208955276344746656821621758700999117209180878891067637719657162578202151469742633657118321657047465531990727926410746904161179139755754789901726279423608992626476135357596512602431050620943673882664175908821594829212686197147439739862150618396311779317997047034674516027452804134616224406095082627379865620326597617966935953212996440767228504458883322460974791482073970074339997233066708207369617190810751571195725477769298999278991129297018349916788775714282048877687644654434216877865150314798643622541320033658861932931969752699002514647431650135261020742345551950666884328518887476186258500090540569019256781636041828767622551352063558990546273074836408753138041950871398145866197397102642522563270785837518221668980152700177216713097216396288163359779792688754757159992429089386508018425964192639000340236172325027769627283269062858276164856968206474826696392805532729792811603418514301574488769185653669564623043616639336865543085372491498669962902178233411139490042308160417710655255682701310450231704223617850957944383450314748356722413780104773839155611660549048642066543717254530888801295569432766017465769249318077600497710023852688172264909237755200946310588956703310340674003038131545672884506442678484651408161076435578719572119748335053909422728975185014662896622266794845616222625652302021504355331854865680866085680638240077667593352118525292752649551461139431470714568617749011090567718109480572006960917849659255700382581752488629216935291740794922643898119270276190898317261461783804002697152783474874081375085612437928647697543158942436283615918257809000289066457291488448750524825679691420581709815456111857351565443393555245835989118268610258044523765856060705856945332150731463009846619876024730481232543396338106755774901774284404889777460065111672660035135130672349349198074701287751704307038880896698695392569920056859612189756771090637390103752286640114985554370350690047003427305001653069387587234397186553513490474664575348509028800664903651422765338997484082503845444651800151115771634264257634941531645350698759522702049539157422012949075033308876210955518379102898242922073544506624185361826647586834268722169592192272505327872465892242132525437708399404049489123250778147632108409027473840668083663832150237499389592849169975189027827883170689598796488746532613172736127261085181750391868653328329465593928760082528055636873271266443807249699652016596101410432858748785674704828682178679534299759825492225502744803361865615111874912390911929199815347106880030013599587610257002385883701357112094394040330659421178548230583053660140242795924633950417767005154588587796626798650702211048523037659006364722404689233590941922288721233980893916849616335422392492038431479208040416971779005277752103729154240655382942443359868888594518587350091268905929271706349434800366224290760337647692187404670914485476169515095859109144344856012919480629475161536280936266223377032475654849901004809374787931406187521110669862815893754246678613371972433062956437811515037369701344701196708840094289120074672720735923119143823818689132294702512275242981670142423361659180013518211434681993859305647566427037533252786773896427224768851900402240183785776029879181599317158601240450520060629053697970595280426975711302060911997875980285970209300392271004380689719112665871171537324323208537500406626879879074361309839517062905443101978394467944085933711114845381450112328811750365826208701748839036781361764177578290438131249720598773278815725143632569936502003483707027425013684938697392385530617331293502728278359934126427869677739211185554131169739958156356455881934444604812260909007125929248461353490460555693045708357134673186219000018339514400423102043401984903073338968375773294859967057418906970079210955593891792539511953242135302264839743927635730330332935406455828879790158924456012396769524322917221202874545371654229733455577052375271126670200588388098999406279065831071419223579422316299260213207288322385429563226742550134996331411429834223755864743902997936883312610781398627104508030713805601618865419978137297396469408310484280499625374203968336047479428844682438744141875452317670705664963656304501882788804932428796975220748819106946103991247775922535800521071471301833013053337844975928548103994494342805958141711412298821215886391217426867638242739001928357977220169242574149696642834928679940528897609772912649639090081820860096904943288450791534492307436259903230982292539621351877567170052922000994045030169862401325894525709551997671715005257130549448960659478584528090793499313156403601262197557905195350806455047884173701322474488856092274122200490547994779955638040660670191806393062353546786448683784127903459226399202214604101756202102414147802378423429955434594665554745083514657848727787328576078259051031790909483051187947887084583032458663894969857177933862769166305759645813311609810614481037181161369748229291024458515833730458245905639816876283387179903978599359946575605535241741663502186622707487619479060430126008114621679116366533477283629840049166220768430417348364572121023117214470311392106083865520379441693765485446943869250113752684392210989238430736290012923049251127811085355646576959256935231008702459747084782907325058304486700026089282688075141157763170665455562859990819979878793199420381430261586264956638215695403969402789476659708281600671685235005342626323824456589538408627004356830714668243521121333144672778314223568149437709129945743796287514892130222830720199717010530985658481154453443087283262013130060194457392384455122253898138364213531398131020467764734613754754593350617496309909923837090126243948597078820975411926224140403221687023264119749514954846909156959159927941523697389200844876648050026514873493116432463010379107360741186502763777870289659091137780778840681334898378996058294437409357150902589904552732282206486273794272849045075897205090040598814557780767091478741390986726765497962185387582320218081592671506519912954189370067069083409629309968752349899363472596110700073453154353304278730260323244169605855819090202823141832087619163899116393333933410839497134504141082903762998104453938756040864201876841307573587089327931652484703185702387740824946825700638214613994379125159545810902629771421091947918926454139163054745081961161630417433983332418517787714270102014083646578482201077223676780443468206367149876294978188980364986070203424259998783311696899875063982042793191497748989679040724820309120557762809929529156388453345608376369355717924471660578531438309451711674335995445498383447810953953984587932193270355446694197964847907845497710865192283523940048381307626876965462169110173291845668310157284395277865634809147753975191114775510168860685397407442374299946686137856131635424742171027664186939859471596877500285251233161459861946155105255632619602594521224817668237693751275587029060475207441304806753051919755887726833489072453802155033625895167791757475697831847238216238043801608040720730068522990574769648796090198049058542126506652354232007253874782713686837484953808339765002024069671779869467717799901995355556529223469009966073902889494520506209121945971885627993797369376433751416007463683994869018492885738154706677769476361663669646147291975084333708432515152889730293950053214372640539456224936033087594528041227389277263726247926951031282961807921222052814197062308546020864556844434691665315830026322631917943404280395655436653559595491251289716156669982184414704257211637568504855911170180327746354468294914832038662199064937664109954871794680706478901886271565379861807967176194862685998248818934721154054166741574881644812461736606510542510039809331835029998522279649897083176965163942729785822531875232617280924637424725353126975817415857845280413127933578368253113700565894796079932574936182059314948771007695617088073457793662450182269418019066472405996161616166744755977983486027128124055443818860726593278517322507073565458030673239068930106034020250696086974889246491490776893942932161925538340110693101694765511363157045856634462206437733547234945228183568643409950596607342673884193600168437072779066373142598788740034498619965984771838731113380678629435049201997107118520336611698922842882093469451061000758641325060643886351341513896927543254757775130755214781643666384681683912306243480615441356177412365554725074735925947095819107178076895899814592107506448943085070376195089230020824526449823538953240778016648868225678938190002638154361328233828699138333256033618501847095566573841725212492259455866080734036762220363120114938319151686613660357961588810937835980099486817698747901038565039501616052546721860976907241854236569981466675701482316351157915130532353877068854867844459454429983391629637999184222037032569054563587993002166406842327232634372058773237346683687809889693642691412136702775236894911891394219772599873430432960059289064330677701792321840961879030465109700292336680616692092525863567957910199298235322197674866189790248569158546168039468202274779040600078107730229807700780406194909594120178363831125424315598577594756461704024904773428437341423172169201020667502921467858112795461308792915780265580256061578422979180371200899151814872656698332312828801483085525818035622955513042194324723902555135088024235048252071277514492122893702080305870499389563974631877223964259241893118550954514176653120103030198108149216747816117138747154833466809658886186295816589399757919361199786058946005388994640181032631653366996374332148842786206958505266921773758477881111293068388165153670197152171689267184979441054743516886347603586058103846910826814221498998887498303095046583842822632835634792591495762007678516954546315943194073742836675262467665318893519777627318574420069463815601979627270861103211368434214090735703502018766449714245216043787371462449609779000768270294515301097548816165887193089958257948082378235024173744893061480045474732887933337244855299031069324267758071056097048902244639215282677148774668583150058243028081215487207328372549248880766639231273503572607463540461385253620674156505341467443500916020310598966253711023903428313700656518850894831263207761796286028858745285823668959056020729022965688912520226637159221988226486777443703969225403133623026998847906634287605711048764976598068374566320845198825093074690272745851184427111637067328813273463414062166691739815742641538308743125844692019636810113330293554634986776024097261744411814221310800754099268651697279356889691741908668074573124622856756689980483314907377725972520726528029539618210026469131714271728980098167923849400518102950365398938767303749774230133319822388287073149977999980264676701378861818898108237689626251699391796644278248742025691426016460866750665232819378311806203178149992279370377719632363527714991421647061366499039313108354182576542374803404827068709419276742473783853428434384391323027926742430107443972922675650642780731276307336307246321209154725365070419085986536728662975376274431502166752505424436668870973708446642757896705477058583110302547672641508630134499688578580945597623934908070111219936598418153971993173719315057975372453674232592272418187931813940368415875720953524246617097037154246253132890754860406104222052108538610844127884116564775672119478999957966298257201095189127753276828200731146837045391540251709555772952873740479932055112005735314793150468510293598257520078765316134895864294697524892433823774058034866098002865721786045108189957617683023591848575119080045977876789452391220996423835886903155348605067998994535226722094651990537006238086826938967224286528930374176630307312518635171360661303043411694554681458549010924280205275069946144410543095423479125119238321126079029955380180721258943369498476623966876324391934063736766914685975157223435809392624821203791587948176776004433421837131706000247902115802236013781838281401218887572005810355001695088185264134391425110912011271603306484766635699227251576364470751626819077567526294079379721463763828588771497434410747730640555559616850625172131049692945262067962316438050821178432266647214597707777845764049462688805175224489571436733567487053470422219328152485240752402956406014845879182740616097755635648235010114115294733658589916830393185789723770504272726708910214286207170251174850343676812105622778795558541266665760808572828660933221187713478447034561414150876748250485616665737237136228599011200838757968073226776410090222813335728212174636990676010836182500471332229968030780310525536757422756036805979891883905073507709375816899994790026256254430553045561407363837200112197766640654844998439419968499291949889006743070630721970266652775261026569756822217544792261617001205774789443432741135153633526964799510818351061481288462087602729361079306279162240851391751397251878932161924099725741720919562496236219538750325968733707065264445175153189874336566644144083113939854626313518438091767844224001685972211202567174885229642475126474478072192019862118689206951587279441648090942003671365066690262661877827548228867760416482022336502243674776918955506617477132456408500618900409627631582371727349934699704370489392957923612027495776500582571373381210263731526535232690633106392714311350053779682619893960119209403904607377489408072920245858333312122194836042136203655142520139168699145354654986380914000022786390379792213724078969126348480275691855869863817433376961958486690914883781582381966188162531633645576087538824772789720401458680601463047654565388418990250847315598030554533643623191966769518630153437983462454117617621433991178085814847116386323926090873427947321345092509248632361867187197194566823207812448022444273262554865264922797736669378932067410898610171329930420736425449732639805602202377531298764303011992192349390580202594050955839152681873064522628353841991218347168433867298672361855800616166000267958401582410677338012514385200846076532336094687898525679723557172706344512824315189246794684573320234611407974757598586305825805906231546230664919024530516331334011080085972626616925079841590656495880799410633102437041264913433405766604191319547602836413051214021658204607516052944783122185013048345919466474224838910936252374231315376779744512880095009045724816334895274401169053301054886021255984363517439587790712431553508150660738724357241253244447876808645344910774499475174374494003574026502848851612921720376355170855791119525399689418473268259742125146387978756330106884590729469931116379792921166539407671666576625004468733953215342071697518294586925680151536141732782504540206481085638882842663168444334097288875000206672394960249922625728584575000397551369276600784991357316907021829300163765839348065858619223093580323362551053343184325243269365904902720343896730571017869179080100344489206836437593844390811872252726139065370685888935361935673911459561559650210893770329156154568736209887979468377922514408549275819639132936502339288368868476728140635771595538058337150463106024527612018428235285369376893137553196561376570960478448783840297654373869372994875522247344494246825248749815151482498655992559563637928906213547657820996888510673717721015487380857135364622404804731351714963375624945387247475089693435465479974175833209443158165578917144282262117623374969437405052493645286815400282301672023353698381742461040963016496125576465593910025192737990646043349759777190889668896328929651408636228838783765363069273541780918259572858166341973521579858441733888948325308279920697502959790466591342661677493984774443586413920041688569804519919052258641365200014977965232990757796281331479719366723901946226360417738283624392357745284140461924196017839659289648553338764173277996531471377350592777790942424432573208601146934507446843065820652910043761312506711780319854842346617660207282227074243338745874884704863570886608138755513623292692902079549822372641733496949436709958418631491055082017599261364615409695573561549540595785581253098308474781233877383366801237719365675280622435607851505626187722428628052420686909755444339656126393202641432590929241209111953949305349556625177865291837151452054264471009280400643675074084864223338879009146477999358367791640470680647224095371007788974488547226480085256894192618982699971275885552457594256033036744459296815563449603019179578356534801884661451302982331463329250388660163807864342716869345717809494049010085686422167388461777325012823128988400970102068459615301548895868025788358574074837833842486215445274505034184010986635872131935961137923415035383919329859472278083633400788190434851429458002773571765472511094138420979850011272320326579726390330863143083621412678416819011598661406380716374076061309532380908737529478832259545292506639450099720216883219678221065026869241140012226440033163909617351924222955498986804741556694607712111804121935255117960403125421567553537078022802588499816875321758600286259958419251555536725450721208974263368833888349112851944128354747965486685492861517408349612630963337411212464382692308222105404331278888887464427437219564111417710802830738064300402604634987087155183161953999606506858511934447299707920232673276171463755520835102807998800326239635499344232010848285714238241904109571499004980234648088861864622702381847198201770800170651351691911272346666804311022406275918703474874679967022987781196274289265711436509880770472619613451475570424134969590107586429277886025335782900287533915558184174213910386906045397036769852643656562319173648113077199344633558251398405518221093612842774031420908830087980959517946361932968674975765183791277657944386210491098540653657702072924930223396821680068051129939509066378706613314287959051298401068962303301000452913654766483342445097603020026794227873470320613679941581861758719643689827144742147915235767082429104653178139994784146586327632676665044212892990975290402676212915075658849147590066825524174284905285286860770922157543481510056219106286379535187533820120431105087418287850148374258563310155595130196929990349868528453238232411545695787738384346589845862459558417961249545386777617057069225762212461010812064441294638034603429268212213354035663252200728599109250664554462873751491426346757668828189055939679464261378777311313262867358101228907618040168168085062083331486394814899337106630348155151098516524276763062886252967427132508264505433623961175334109975479856738607800267560132116517035423419320690064362896262860100652043249304087235114472708606574270119963154024293849720755574725396260994675354782859355106934265977931557505135046760353688339019876906883099354418167067865917241643358772167122746323462303859274908083783186564323715061769124538758260061250379869117691005905026577634421417001223712485130361157956041783754766704373799565903594073236978043436039141553486001762450568515957871999597541374592725223783570621902927998344442666206523214748466985039667568608090245796945335874632465548676387011696382462548804758904256029527598761533715354381314061301511864189120153360215044141918350836939484363705590010766930854496257990311930694146797807773029926505933572837126274084549897145321509629378011496519356306095383709216521782494975079598123756839009169341097938531298026888076228460264428722460483674572526385719396445502510872596767576926111882987887791683015153909593156654011800315439812315405626080044869790407682949419586112455110527902459598651906007848946950956939205325924242808800871972411031179949452833676463603240568081869538053189074150300058323419829230949406554838453552366728815378485696438162824431633048403266644014443976490849975689212616016475470328547923073541652329127856421143031605442173923789372164598431247119550146574378071310626584378428323914548358380960200842227379992156524029255737623568930263067119045227792573306823606859892750555220442218346292730989179474246632773741646120381775088902314156517251785876676842462187434821125379965048043247911665365260928817008886357406828292086934996420487654530551807311763291598193634734430149366964181935175166549113051249344835293956870214443401582517684585330071109335338897387538692763480524559357392945782710361063200309587235201697297506686096258872794919061565256792275560853405531012480051528858187529402678283872895359785411022061810843165719532237668470481068046540327383575408602762588901857214174592901240278929334697356188546949605309755854180960540874742284002301830723963691337501927768281046717064066742017765491873570485636827737542982062282136681895663397502490287559117727982649258227976505627330489751740384422137668886951772057945746457792063814890957123640930636664575832815386588359913340563346643798629194797386519887926074200556720773902267480055590090861083190272138918653816331275417312332120789986979304370583826065822129400563578701351595539850667953990811249500932787913843811025973365593869481177268419691186913669825855884995261430968768399947775108296048116277048785397047285232211948287743745998829143209334561394166472437230087220883378059744303439327037001389288913703673386705228395568056829640518365695927832641611978203204312171099920639402098538628364533731479476610749729121073099619833561653779390596510863205552119576451035059300995158616543663466096836364925059130890155833503816457376868080526157677094003101693679353850568699715847331142050458461432943405445272142137766543730925493978247551601072631068788086552918961790740231016029011520400976426981639684166923296247410181067918919645555607817502629029273459294188303482867852448094028823789704483112544724304116374713413262912005171993793721626477113421741159718862696842974439248405894804548378365444765278638424753190543997635916085649665163032218820345520389861572006729692532950256927548496907572907990493582169082352242385620893093271236166680978831806310017656891782334105924191770035424747476862721669551756884190203284501923071799552270831559709884390781129496930500673248147795076835342010584505812752835969390956770873015117031180407919089530413560650423947015046009035307792210801059508084305821212350235932141104120033623325186285359363160144460164245524367340299433362871801596630809567969240272324627205580136177930786166081188077280073588332589907921649798322748710470139236022914794967109168910012913694246005636836698650742529899053976797358502918939477399369783097732098110555624455386523616902135778139153772109515738446908875973582287972081253983129507559616839798335922588697208321176621188492564529680605324967094050848567843849506601441530488309711864132605564322857017082973409617405019519916157300450170406694797992887972420623475768294365080676371678188924589565627243847440034851837380251347724808534149236572213715141710957060470111141618440582012782620780417148748752308524453245792569315798806663258612632819661783096100424988772081422241548118934562393401980899769679297726314635880885547856923762904816745348202322870966387928953028155671338828882374504341569244582527644921744478835066463859012759817110509413153907315492191843798491405082661070461980576529556229177465895028150356505805840390870543044364272224631947338347714265333462907721474463775664429140397687531183446109299888842465001478279751621774536765155127012185523886596959882378168361907204414868247430519642283938037719595218306703712548996099244427820485701278694379628396818106741320543991683588791523356745045407409633505875535540397920287100170637815640177118078400396440732216549497138935929610249764611387805114923174598293786066538027236193199789349064250661530390029412133424672291622884015782498494699415563039512951509729242101904005600985097506303169536606561116963776416616647346914215544390895827807210374987175986288547482551608703711360702044296036324782968767251586034015449670165525836806525832729086713707499845602217832519958928327768297580196973489603032714061835927893860965315754483246419136308021409944376669041676524257487086954413119699551206864011704713678163834083390024132127708838426883288273108058335404940842980729192017841645248369582237589989777786273784497280868458621443019007651742938905778125563637521143944582906094399894824580268741633313046955736923330821205180187653202079628864566403851943850834386573705980099839786092863430306810022528807073811222926471310329189726212378173314372030437472733862766817959029280609114921192079643279228322232649065311917828540843554878028678679710536896687669835178209362323598032637477599702211791896776307736927878060892651347898825156317977189523038462699705424830567847883400434370285345341738874280180781431875434548581269710793526474483079573428675455585265359075803064762449154671629491946203670962671781417427733578470489447790597431485149890534088022934092235998047508633129934938861996366324370138173394756818623244643194728533613856770044578824106020685036587957320602045116192388032990234679003482881901625162416855915938320587604380585460683964419543425050990809315949429549263323799747136550579674627797378490604193823881956099234966107107113050051167174653764167811902141296493079731824921901893414701626681115305013491460136279534089129583796849965288094341035364524167159913180719605707263537941541359086739167741234895998856152963464575215651595457821554022741542692643004560476674291104843730225247234814684577855864351543184791488012686704923047275578475535848546452893478878971883727381903292293672824087281492252299640374632194746838613555472597715588443912036670766758607199469892176255672874526349034103460425721049786166731760902346054998984497443444932176340733907561772808606182625168751757909703111441385366097615070149979503149838702667930498558091558697504774982856684584073597817876957620716152464373058617868945273131566638204536709082350438473759014273834655601341720194620010099110243263686208151602345867580176929437613281619034669611990991546773552004319726116394452039508401114424499604881874570515853281332279032128298564995716561012972710739206344015240801561439067293168486855065287609511023408643684495497819248791972999843042720624513917966432290847093727764703915281020578001371223852323459236579671742646343104900897432077983793313503501402743124433419982758684100720543335710373971443690990673737178481707124546100523736927947019051209895653792693764430446640040670653423838443367006686795391051940318763399538178662569648264201548875111900533559676081906229423224398161331642025220780537931885495293087297961644253561247318845778319593340706851084091972475670161670293180935428706214477707701630302848148131266002512185299085355432415801691217500368869953112471748019323807222680654028975945029574727493888387679164555852732505113440928872581729178537359994402495393436205518790623633131824020042995940452720193242816228072887118616346132413000828756016112009665124439477260192334184002227082369765222066971493252519851586767340392262142098806417307557729378054933389067548489508333624732342809046735175737538764983537384046357204957256880395034885043174186040005535768415791787847611249092722600487199553134512728465553330684852637634854181977676994789722736143543938027367415916177124899582432521080244075998883605793772044473044776239931336895015782440760350450786644928733318460709107911548586359143479438496091903393100127436713515528464969729045263647245208394014673777044843298681760031697226120642241860811019875351427419227585888137302066450900375803131137607611743226789720116537949906648837023279030652044824885728845484828168516574459953463659820558867297430280739873669170920331298417330423600537094025819072778303874846419342039305262102102987439940471179081037497637478460403419489599905911896637392355964275391747883025537644718266181723457928434786046823092810501403769182257000089584411800746016695701860895442527840614240972111529193539265352481640945110154365765578760959912619937184661790345177031087126578778670269035360693165337881865507953020208377375427642228701432283060217074044080137544429608216897880199655137291828174340232164511284107387876912577939548019153656038553427616217715895507966461699047367701902236308571726167623391510697048819517115127324752951669027497623770999756989784405107506152698541055890940092341601975503973626232400345444869510542732559873199361557589992982126331821552061025667849885702712356615326308714457197798333562076120837995015285490948222063209313640319431671069041632198071823035451573021401125699651127705134843999049515080580322034792067202715969437404526275733986238196106354703277854732525513812379894165967387872650983343995779147830701638759017099783047239665576733714747727698107939250414483043692914533336029370765773423767019911091455148878200730179367524354577152662856384975555503961277408068569028512815555339391889935536347509594041035659631848882698916511513935371388822168735369468456396619028294765511804990142902414714407112825627756564504296428787911515383977607636496385265958546825148563591747014180992173118534800148844419298370961924400698718414059023182912829247284343558654126458988833721421384690121965095413795468545919970511046292682462784068395519305114418916783156787055968244741272343380348681853265696019680179798569286766943492861592905312521067904098183760361888055357680594993056232520477411746544556637031621684619351971487122397207524027291097390635611228780964879952458225468427408012454890347065504066384987405714785872134693008627997029775418143899594597554371952904661484502583915058221111318556391689984422482936746579177857307952431962067028924907459948294186310603751264713240079680464926237591512025983082470940930416721632449370873780697727947488256277008914017012874907069161072755769247936680524846950891168880494119791474360501657295655058504868378681654059683390513375521175482856737033737146919173768019361145900008635334407175570795031445302616499445171849145273632917954826679093844906592372885894087296965832346664644466339130713710703203926636168267795793711682736383498539816895585375182665315129213125973476743029618041916317996778736000885891596522824693784232328210515067444838349166639783657660373960259545818062465522787583107395508446381059016756653317296760539044568790928151755049469633058667439469249603016691689074876195218275866204691815409669614731846027947290362029851557899497624411531982284322128657429993929556389031382114998037023216017491821338330452006937654292673763628266975802246492422751266715846207119002421290333498852531592749210605604815254693384738243742404079399592298690014010736106219046167442241969308427655624539963170200869550240420527563321635704228271963768894963064987593452689040469065788096390169673533241729084436245708238654805483622854480508580192625300710145300298868662629290993474126469525257792379295305373314979048933084547663292199596560968868990139873380602295400885478590241937289740414349261949311391128474282738614454264647892591924053784850727814613288338175283723311673375363939796510498806861660246241456601187613701787407226080231314515929745221740779031936425947266747890609566900650747440616432636800371438070488375290984291551755722182851598972266802782076317072502091440866471961316324382557619392840029683254634750043074527215844262799630481744440223623564904684749917999225997850368257050429155630646572961650370151044382413961972108654686003064510568670143682374778749549786324367674614533048543657881263484557323155462613603785247844686147920904400406268604899307112684775940077187632743779582634043207470308091583897819859740555841706302749820818712561886338989110431174859193418657241634721582848053585338181392178207637002040383738333993779814086826143461914171881563992320983563854525846447514924500346550589185295094464107912477613721763496544729977070872070656846675413948981695897145268201942969958026462516930198355902681826927072106753433739566155939653679798511469998329696055325302075359630388625981276309465409102928418383513443592232896259701901762893980282361872333995775121090198834488129089285568373473060672346137014181877917432927357992484861086195342286508097513251405985843568335865612582275431921444519143777823960681136752209696602053558656393111364754545235458959073188243704531916274843395320370312299071603476051568423195664798424595567602728290491510233706002361959521370314834584910295386864114806001115138499150303341865361140492638105594956161625981648468731579714445508193360854962301802605876397193496879348187753077021195265474432755611632192955313898393279222348161459569245694970386547589197239944739354175717272107961597898511471237073010159897140617386568165831353251555057120667505708161051651475629910902994691696599764948455176946196918396538748411984500123320640234609573251054646769562539909866820857516013740394327398916983510608039508368788237379556389986837213482886025587445007911651080392375717723198731309533779003345793484840163006692334307264866617893463979699283154865051543881175962013912217911072659767918238405170122929352900012318012787681501936412812165173809263072624608200686528505853639012714661070674282017477653837629860775900215019160411610934016879681304923727895602796864871058445170330562965499437779729405837627613597525113831437427239303622206538536394094195826576400459478672930073942357923064657216504507001866641574952035645890562230228167111762114751269347536155622390618717033647020003616332999774039385204885566453478780387220076046598557507588988386925345041227654306096816989978880626629239739720633149685481026982052777965341837076088122766347077817029760270639117210833471463850359854643004855015080228911278686279332088187783982913515922345785187268286108848165925151843138545403510605052241477685644054705182125042894327188652742819871119348824423913823307951538876941216026126334648670966398844766887142361149786796158569805152286686327426581740287181900145977404597821891304424164646585798957509266911262310025745025549672215792844939460636085517559853576248708955635731975261124412344094012710803714254321389866553104178110689699446114496050758996811237581324775401450812912404050848425455327082528414126532833168878703750504769045367982489634746418433547430215920642558800217341138246772177559365833411911561454859422662744575941396387776505991083005709776732848333202435925303268731181967263692871583918509004852225579071427037017029538484385292129984553620912985239881616966395053642824164439585869380895635567732470988671325484650849392372687154326728215024012099132974876258882716305458825913089657333758500555209135021546514853362282251478510564176986608443992209060802713270517897853836100208430471547712045065618260897372461107683657185123494348758738937228762059730336488471997647583443471433801394050983210882415654905871152467120181499877031796989637321865118600413674455374282731884172360131096562912860904987748189141498657545750970734859126623797082384857261701832601194739127295721415498247877219545555195035978315351695354027499253855349349171482191715315223391268359763266696058157883423115057563527516914645961211244868573805058981524590260056212107142233662818474977747611001081545695568854106154616721045375092789587429454856378813795230601151506712532676155618015089936759323929338154537107929197476107092520837834917098181890911785299207085462395381963549470961019000459740275613005650165443957833221717300919241816809773108070984796313013418597685455497616068927478995487280391494977805389875489921935764885147626712782300742848646649123837260651061009983557625346362076739786480846352375703629577085028179147880762831771627731431453712524404103213353202075737840277822123163451194116468010637527837683909227156174331452269818416061777880451737445494155447655642515731609501600671729559054670302960056622241773779860062587799000006375503116812992170585942811260622313603722720822614567124565014640062349800924581325020347623102678839945655480491913712762118984720412556009787225842473337430973506424859108542270476159334007841805911825374846236396167881412800928995335563887215690043761113845387993165737319508023063290101985247534860815616532659101955524955888473662479220235995319543533600143321248452450614910839318898123450146449567368345258094149634924996987590393063392589844267172991592106542315245891990711168225005961931117696680877914287022574050818181430126620589908279819225352809266859502207374789246016862911787226926948984619146604738569659030805678692764204496313956871348061097897072628169825034328369512823932179309236684824831899140354440356293975207827240957343950234501607866388151672479779452961424635794678554244311697928353244890497538625088059648662510935476520593159175467368276451335838812491324799076093716015818461893981535958857696219029553471672099855897155571864552335640131991973103595080997825599443930140074244937647454762220486898620340002479355623262148957165771632003470919661921557762822755589482988372546118247296793836912055827835659300751845966432542173266241838413938395091216486742729454869577787752370229720988283682076294770788601415055943965709900540068699150804922480364235078344129686504834986994091806469031835934232905312229864976608174101321383736323214802584153376063267186923263634671223469298987813579244190919797409227807687748086892864452240966348621224590515881444965443038326105315984683986945074507072817431553947514954850591212559225536765335001611458715586927368067476085521304085051609649236727117516178684040912788777093799919066185947894926435514060951558393410653620708898813812316143406029584287465722603936544216831363099786902763012958965983175357151606491845887041436934496895296473066172778027496836734915169653885672930096040181071177806330774585216883042155687861135193395708207482919962770109060189356171846247185005488099713758360444328305120964075255725486958055437703864162475214650661348053296978633801234998373085007821353609496560365126810882369236071265474502924012816071037169870842905832462011154422049603484966137800389787231103972412947458944667001407743266886690665580944118719157506100802436397149950836562642940987054510463892530222200945533839443481690374354586982313604256868963776624914682652436830085527389366877995956558549118841517272104480424233726502602611655662089165852656814884059308235185772436200557837633993517043722755410794008587511455272726043666389716419482882958219658926482985106054312980967024639139278545702036249145932985417863001760502211221732410686617670013154648557958620338382489574168278455100427938843987227424118337027341930339181366841499230664090181263329137845834455806827749696325189343398355693072129123069324302432278282443208846624254977344245386033898807852021597517732085802132856139694846395478331464852029122463683948195509353427136441650821345252556602200642142156633976983264726257123632785656734182794723888246531513057724239778998625979658217601291770450809148928626987485107382246729135023155865511315138943558181093549225293250259759342789516205856276414383726785883859282761936896659856369247950660692875740505477907412014715842318054101818514376280067855031026839452585715544699591047324538101634990814517463054111481352916779907344865566831895231174992488605287434200792032021658700760775516106482409203415287946057217059732052218524741719665924629186168476399100857029668744123022215610284388460932772859693610927541739860118856303629485607113580810251306022078622919818218042845662424426762309528657433990522964050922251956476981625738852369813801769322444707373283087658143621844282965102183096397355465040184716892276148083742225755669122305831907962818928874445211450685437332603312383014937007122609955597000238306716813269785858972305830863801933403524046453122840538768278552883858149302041521412437611838428182938423202728064113890097832111269538057046426360111051310959275289130590841807363200446154826018204196939886617736286898034325352516127822886689070726391555368690060395399335183106513347587792186226343827188465435218111703390497823051023209754047296349943043737184485259672006990994470385684100734597014296601848956386114501685498295109442854644164164972506608275918192715878186924001734286253317871350860825377274756488951377198773679018981249269244826060703723125891950034514125118395705432147504259123253291809110160360112760282696456758421514316965889412097147662313464698465189467804060446598338299466365032591533532147664254554776323013530472044538669248872526064587413922296317230706371521182939449404867042069899816838841665184599785316323195250525531437290701651783721310840729628588276357109035216922987152625363592692842983095001689631775505275225132797914279255322663459989559568640123624515690759639742001228963523345540766065988601913448316539273433828748200356422981391046067964558270680895619942988839494305111082141208670391078048294014922397136913422105044297995715529874384108727562437081613089252551940260488810990948912057509838553734258464791176394969966893776272384851146865001761394843257316467109936386436752653300533507454896365005548229947882644145486692025472299426227903394009787162800399311933001731650901860421091607056722858783710416908844705886523575372515064753149613415697452993803752781613298891139723612501308356031902094159000729136491910793048332085442340194293994292536413967969888417206545397887296651689763558567490470262253538689889124975960076612723765863057243681329777506811872964312834491928092361368835451591380001191355750387816409371870323145769268139468298393109943748723897506341172784552672530818654704530279461388834621200108221818921742125525962061489140117840120062045829353571873267054735470491049042698054111290801356743428698032609305048715217119560128357084556218837029656529091295169551121466426148103214982469502218031946229783913181889950183872844568189100944216538105099267263132146254761746090737593562413508374244778100985859211107895071873744051115612398412291318736826608069985467819953728228596162394681948536312141407563336429759067851027415011043002734534031233868972335281234496137482494910941096452264585729462135773355841190219763417213753077516150936121780095572731048891036871624041093425988707136196945738260134866724849445770379511116557937097954892393881560886962286474962040596823347986609565122441854793265431042365383599597143618122201988136953807713536690354443037960331991592312653385521227255277562482153904625293911686683359572908974128609973104736385775162006346753675236405366506907938725792134516134783820728889666850232991684626178282173911639041849011460869355215849873250177868857718638072528999495041861452926876284167872000579604972709082882617822208384380237976577873667099781729992247244947386939950077676662294706534441977727252092277006400811067069147587278638672188592708780385615617200252261979188235430529979309173712237315864344510170908951463529470018391502689456552537160475614511779140419652196991254013733570530688065434594130798505115253683908040171213544764315200349978796993608456579475871619017328720163868508335374518964577211510543152696627411930256343976737937772107995071350368894336393394655613922255942196241373872935530593054046210109811858219879048922721963178755610339263201219134986531701838311761300166564002146913275537875285266369157431460995722294393590741840597323187773161844093528098938721084908844738492827679985594733033059921282737701689461196421744738400129797460076805589419149193717739904342210349775452986183354022795187860072163594522860522077467144137168278718343506498121878939432265920976513414793206439426992910971062083043450367565497437866876018396540478604299834098987340955492153903094841162910827380407198903745910529353874898769164280920937116460667865925030617002130661063703727896710103636052664316532661097699495026533225505316766575249845296548759285724958633936936351679655355416709741015289166550328708509795789767644132267900227884311470663260811168217081568767687217557412725203762813563073533316261387537189863177332047766454728219964353664471457916784856135522527076338078811705972774405939819785731866792700913683573745196850713507980264429877987091825344865471756035314203842836125419070137652164173689636511943364897109744594712418815260857486688884468107545564245500999831784228476329388494946868785500002305508952931128433756234506247410278790939724610591728377888996309813597327799150961668011828240762814227672691809915828111584789158634205478493154755532468066159599196648655351452569360197828632152033890761925083692901122922043752402710670390308853598535256761114868838641722090997260081950576205992701241585838561213786328922039646349673297460692839177063942462855551732343861151142180464619524261042062346245461487463188891105784428491532266091580057788243932886955509774264916733416860925512749009369853404707539698508011339227360876180208172236798446017724058434102020753767930959675073511125418749647217735785787755575217708868574091574790636921940625342978752825756014038130191157564367928455075995931324567104268949174149871734718885907888380085106206522570013125575454219124896833175931644158610806594563471974734088720508093869645746643525652085901286142484417583150349999074745886490185436782691802120233882319366347660175396374277460656962475765293362773742000343010093785989886861353969965926590393220264160885061035436751873947585236301784545025163765481632873886734450122751036689808725524484756953327932832628218940394205518550698590225391009613981864519708580619256903972802353539067651456020908185087870951372680732473837542046975142925742849421482713997417597916789579093913820793433486393617674156676843401291034276673740712445265913267548535616582941866887898784349587611692585020502749286956001610660376945083149979878600730274506794954322555869291680890362008368019799239614563269633906860795076618773557058628758235819711149963205193036391967037445705463253273967023889737173329316922076975706858744157847087759057814305927858206587522018886592728900227536307365629186344787779670858181288424837616807952399414898687267277246081103758237915287815294298491218975944482585458975786837773443046143133284003841679104313917864152853754278453291126378207635862951964612799545326223530547680261913699494630442388221827803398701855695082886754356534204218914665816712542988784805696818912601944360441183898967604086477777033173595942203235811268355178154012635392091897836965357068059497627294970866360732176042169847806026230066760625910652054286370353934876996951474253225876231084998260148562705647440026002593514129793963269761564108318582299826318677310509659118031862585658994006449666972669603749763423268803654931116869175133669110297882431453793149757624511639529621077767145413529076294325327427418942982128245077015417490308626530872832923461163085226339249140255132911187661412653754626463256887789271407064665061878084970704047624616414110377311551549243860034076476082984632546974964312452910653171914708003068306751932112966956128105112052351804524350703722407992057044481896989316405895131947320044777143229852346658712262080553488632461714848660333593187899423450273880141448483562595901698196907320427215979985845494135446805132787282235472489456303050158252220660735151651277471098905343506837299642721469265279698567965188862377548209890406861198039140765834951579488258251036460949371321764571392729448918293581568449800948207602392262295300088092073151106323418653921454506886700638564365192803981163416820322749643378058731551884754186066628030719365555958887275119107126391687355820720319638504870382180572194468552267837650574560922297189180251129395015189164964461288671631711104320922865934431199545596819667157438032184794632154052830425228007022189164107545735248522891068278008918436147039484658667847035837531216032053267413761375796402785097459509026484438976917248997988953350452895111009288408699035391215343130212309427944378031354393769693242303688802745690612733509876291337264188517280274502777501577342018927468899347870197880097602472733339508443605518198384767880797743610248548765022094682001811694827644280486523810959633754150976504023390565908547984224682538382099789544158127580639069439546851651372633423412711911908967589537965275327115614899917686970732646579977430782757066721333116141979550170275244634495483731812164831438441540088204340512878841920091854783561635389892878247681782866119675435051308354185898094505133018888960480172660652786415550774680730697956696830986202011102066904835403655843755472913273771765033069804744951710148806384422485259887276965499080777001103360117677310476811490241152572938336450530811327628574520970279030885190834581203417182161165639986791631791841609388341552695577440603957835236287299628066122921541546057997627235255547483992185472433835696833456136509300164287717708654947848177517959098216191501784747884462370374194500623111029903512739718400615577558896354704887708885860833425462892504709218739145464905283081948024370396533186621304557312256783551327535231017214265881174038093350657652783333682154951873916909535130580386179578922878914636895150088105951841044722397283689474401500979716889327654599515039690490669134390495043168933038238853174763393751205151828361399286264779258686693877059556177772333637377736291165232522237578056704223186499573693912338047781226009872393861204185016608389628185761609819741152582584765277768548133244615389983585689038268213843607753051247557091954674314057027083430645950652283561641417504844640823986668618936631201100403939304299185245778879181957082619820911577456331106386537358774647181845222395864075444673767000789932032904256508477491305940651967300470534334683316536380407592288568378582419262849518692999064293821008277021523133410554204791014402535033103079077846588067071872737768553981871557070970523703706691502905596204177065198275001950124124707778763581739832714988784675390626374825032530628324791823981576366624935366491230570173346849642338420428153560916097696161386429269512981518784162518425230067809350189642979278197814731253221451896107510232967697765166435176816289906692925348368272524587234752629113268498423220352745205510919471241947582140158251140304606684534958721325803563254523161033226104594444807070331694340853859700688632176184798583744231476365055974588660179090166968649668213652117327553153692538461667572644921540991475236005072680827391898190644145876529694511170578035066172723612219936532836301935069377003388551443086141948810279608950370476398751906259611314868367030195078825997710140678373841852197729221725516878212699423526969627794239070682057138419296223009897069571179103234929160693496178264151608253750808841342529433892325501449029646290258635124469403286084355859513415418847921476645915166818437887883152430299426387107161368314204151533183722904355922158888007591395491392115202788661885231424981508121566303925816220382120480409472411791875114052159443586865726522321096332107468764678066162424886497212888391599262704392271259640906782327846603606711784658059081880302814346410331896028440250602031612715172609742709974026431455593830135926769207703387653331824724512389712660709569958947662350730570775034008621896371504955026996108541501642211698752271844084250250163790890446363320155146855182176079218015105110420239533320729183410902837119534197604001506294362211345292629815395900728897257915600264720390282613500397126578894991336416937957515726614204757499789316023675907823745386973249674659844645064758908004101097021043612057471614901710303720870081604098587189877846481695946803040335984353554346738742842083516071005059528808311220155229420724688231218019537061714402105541470510587102495517474928297613723704663723856875944793063338310054784673156505052489634041748835780022095020515666503179678218168408618446983017693693600283645075153257193247382098698813684374790628879316596008297678379662026393092729131143629924199599996817601699871122819240587869684859743906491515233863660766389509484675354084694528182769031693206268686925567547237665544320455113591705670448185969803215341035504841033843750294183518691043785661210225313526538434298917982872863749864302532837838552384676732207945464913961282657531971839969250298444413044064633064955285890669980079790336856507385625556410921639041108247020216260890521085154813452057942615747610160064756121785982074213810798025753876262530170501483097109210799574883216009406128615977262194344877386359987600013324475001245912980132149194168123075129347782300262971667839046401405885695042562487971741293176972511749343757165047535854772586736553008121490730028996847759676431137491176662578104664230681195408879120006030510209929324984651372804941490485986692204379959804227578097961952152687241232862000335021338578613108717679254131450863869347938748693648749173113757816817763187829771465915146788087100986946810347085648799127234460852444052892704053383343194386879708717448275357906168944057286267230991843352386891619530982383358864750854989373011043603472350728731319617010595567824583756346875079090210254266494407390806026325464117601460372332509399897272670017441428447699764795187512360845782936749230250358714364349670625028355750315672724085516801975235276175395316910224247643479022392711211350496960780289042083618608137915850246926483693633571222220455945706924646160707697920104708599491780013349623538649095033892208136620392799505768660827196163785287851507537806788254518903269572135950720926346035349516756981344374735788819046432412382167895143804148106942706612485750348401294677646027048455588183728784654681361015379484295879118446916643188592419083214658055134313712877385948745149755574423601275843583619796518191788436425752832953415519376643930866574059874353969191499338750856126154219785572088271557974310705330395410520175528520617171214443390652795188361236767460710785785219001670650156567414429055826658222881306793802697099956409584293455116334874625840013353108964735306181884951428593128874482891436817522561118311797176141686868073558288988463177512197557643690645966399945686464254873970891183436281882495878240505285554765164860250395305584718897716151620320428862673251404253634837688635684233862085086032986166411554034140203563811546819970154923098171335515955817653105326627542226324144444003873207208239393932236752662417635130571291600499581507922569093754234797713496024297337758438791235645344133089438666110301828378618581512724514724842537098055291602725408885509852081409115361294127543708568305889992581902004522589076517440181698669164563335197010474812406102831722287107257605650594733645027555751303130427752991519229258488509126991188308398986835809031011585222595772893244151011430849066395424727436230278294400119216356252954123682447780241281552294741630748623825332820739333847757272361864923702468574759785308994005535282470710955363201752639996844330417572875771389957612904506741815223173008469777062969050484300394768328866292677110033500509280930445617241768495226780076868273237101913792623031187792659701712015186096672349088636966000193422399757201470786668925680392594903990910190606082951110572545751825768838724277903775645431983136985226795900465988788927557334784435594390179736503552226161986847688600324079436000737101717274098951244159999612437351130822347100791601333773204120801960667529306666242252750986554268415939402457744793213095522556026936172787478493253195866125574066003461377898722966086632851325597292208148955177873672829376499225033384315046166681956168309285876640132678792681519086306252592669902958923878850423378127631653194635754188043909460375475997630987192465211316991245366469046195429095730422252673136928822465274111748311876946322787192394717660855378893219249844547972856863359240256647446570562647049239814990994406787463055849878569984930231727417655742926913303137092271834966331382086936078823338261206775660432489776721974286838915937356720629455623493037307097417125967722071270937224576702690519526631168079131342199040470629601375101951346983022653622485518042918065249060616221588261353014542532524319164125143015813152525502433044410142785802862645482339735340313266355138968587525968245491297177456452427655564787986321011506210614332446302779174087825124840979623009128902286928190887081890620557146552362591854610023595887548214350202732313081489320110629678912839631599728530328989750528880579383939045224995637051631415885645961050397692500791059319937152652501909778987625901233640082687238327745873434439280048803934509047207250356855060163016419948732786345407037216357329239334376054753083470091222709600609624196815598497409272262350701714245763519170343192263843663314033200435747935129215614573653883449572824314542378412548931922696384155795871326816156130743207430777624039098173116137078796499920032127112841262171655021070576299599268643173418517140790797522068369592782104471814716036998114357115440454700988616193777596164669699857086999639042227711262325384428598110041897671579752877902226554194663918043181379199220888882146647277449880792388327509982755059388498643002362709422378927052677675775451823141540145052939646157363387099668845569912422713144658452926876633208745294275519432516983559982602488469410509115337219687524403550314310897082082857071817635543397865024437461760296479941203225374764115766004264164104031550975933554168834137452420350793432725469907440976074659960414869553010786160488050116058147421365885693511094044960988862663300761069061419458668437704019673635417196363038914295144252741998697345065675491555598153590904485053138475436870211000705752912227254727813711252008026255408776801772419797739793161144357538297293357344485356786434700049196175441531907544154033852733334944549998543976667188806794215601214161013390200397562855263607046443825839884055302826057848592237503843054003440327486253710523756690087395174165501853223067586524852524212411467723159107979029939537948371865134872415262806678007284156441207828574228091788732862143112363454144298008989333602956782668010384242847714238220291353804581058483240936512754810780376992571743022868631333342631842816124683315478072363059884761678206883120343312111639961766713856971376451110925832249468915864677444036871079985412375718968452660713055852148752022710015098477197120607596732170739953956084238277371318375987791754576896761269745133912521627060199372327928639937798385903076229621712838662041244845275063966418433596591806256058363964501638548884356125534373019021838215537876436117089866267789059760684965848934040355710921912338950914474038380839399560553536990373621505657165275356936406154782355022364831189813218833412165621783435258694294606974024483173363942831023446046619382589508379230267527507611061041890610582359243531451905654292894650411449567102270944200626459617022932878912578885661694062344308231375546968513071841218944012394541169330265072611268732683789306009649856331637616864272118453541451600899622175915109694393078368115190445665214405882591321955515962077771418706393669400048805059568367850901782530716099178622983727909809219362767598900378553338934687907602010478043870200307519982177309629823164440434706053743329987944856956446821436124167610402030882115631108115610563063909108025291216884583813100334147326081892087103518220659409416116104396205801850929965301162701438334329123253059522054321909599500757480190760072530698033130744742913690188318447187089102438295213273672201833804578395732354055313481638232267584178616125914230681391334666640559612266684946848151404728000855439208696629405153504133088276848862595659088860791993458166833976495702987502734954738160226038172030061577321393147225829866782007486694510953803592626026406543987264267113049912898655968583640350362175887075607651232453885068720242914522333694506922871098934760830465040090843649338608477292364363345732042286054452022876993000513919599796489667663299062317990406646037518682252297782496068616437739084409908136446260836318044068818642158538217420732048033369357073217271404054933375433324288564944753906079347538756379894036418732732316216943393031176014392575047128350365472272955853655639723689910317303796232011065223549626347924728704652506853609518148948334502878570425120413473791347878543481970600810457198371309432167988483251182590246513754560904948790254710983309924812715757633461174722450078850186267914146688569415803765215834131983317195717491228287619890171965797028382875602818008844329204953418033836379830320126997525888674474135161957186810666170397774415664468617553280459825158165882830796941244475118568386940898657658464288696646856014762178818295373269687891020488480649769220921922796875538865233937662010587447424890244313323154113043324489802503792062485830507954398410127812422229794436787746673059955280226288729771493305418164140459497049718231855430564821575911764731726226734912157548649267594957015334656060328097572056205049672913687663373685077209630722587723245870369578451689328912137989522672448658237772734285174568551135061480845280572506540287278181684665980191600748125627140409658903516841410232861039648793666826606238731367933564963957220380892583288971702534949655775653713735949926285614027585659195113493052977021457227299146319284422298063544905603186613137405969800722243782122400757112797181076389213795862243850641591569255524480277981476289464960617890169080199967192243628687534571763371362948822211457440104538895997193732315178649327536376058631850892705399382240922117378561590401907367931061396075694800263570651029926176056542024813842291933214210117560970546240552976998590162817819710442726492195796634366941250654897716088523815026462894367856400897095811463647863370514440587771381386376264414032262635417933978576160830324687961257914257960136371255360403707201790476971390365741375349436823090313521133029080283658695805447408215769314979365394426888690661500909114971169997663081477143055842675582826875200882759927259414108116134910184176342479543262481951958882422542776513358438307907145859138793966523581722983746649213484800997204749904343616681842648765153550351556440311442357842509854826645677752881177308464658351649705337919916382359537413461511288372211176298510016342451296550387212701393763811530988074790585500109071582726795097991730155954837192740332696434873645982396116252121411481516350512909097821702525609600745524037457926125602702900863613676489411269485723357410346221279434177102808161427479944510451036912241043285021000555715357364549961291186864431663933352015079227438726018891475600406980444338341815179237318766340439011923480326253622696827656465944832962331843667587634995601201509600381092720561066504851772075054504267287815609317963444248176561573266295392685427692653427859256439933572302603655783503529641629525249220149686399924543253148840364673369873418307637296081432264441875942117318533418200592628487346208357666790613374994889323519737378876508377941991075579216793265956398025792208954747579578665697427571142608453415326072980436826478596300169266452158888151675954948460889838365777376424496064742963499935100287038749227115092692971993878450108470685553705724508147856843398908334052468209989528257463005165142327719701919305176356576780219055063124939655906439048193618448867195819957382113621566893893724357033788190106107296789554033094808887182342422828694424895230391250536905862521094664099104084057696931439571817886891312973430834397686408390781904982839129992610090295478366145624081445491679342235439736849062763365689961154022022650402090734949833742122177473637878965315638614436569779815602952989797202536702127794920807315260289162834052809917403058009473951045228889770382723078250104684432630768354258471764811522388236966314932643537068552542726553467166391036235493404666207191361646320578829575963040587732912824095900777957046730854328210763483638877828142238608425986744874589694242296718269910595273428736965473653200597351590192442532849515185555770239895846674527317885116261955671362711270036847005103444557185644145586763653892730374011035007731201746137668273591821008280560723067517359540004959052965152352567212688038068974386121803362337410204912974186076766940247535470166667349875727096031647047554921537271283622639537115541802135592811628524421689649209589909306194883842649550307684706626991190222279225354682989506299350758185336334425650682603903561688232542207466800621341640964414392622031718001794507370287030108451202619860358306473595858042932441981015154499944896797220210166084979118069294371167122069201457054513876011264159107478114903619707532429362446660875591804206734108250499760766675957995015349218306550798920174497378423552782925596609889762671082532911042858643559295366978677067128852769223369541830169002821985098044750531772483603450648041300037558336425496884249998390418672988869595084436456374357234837930439289312859362212817446424785824936470553571205914847561245754514575642405966943721925891445353964156758402947673572111825682166084891652292698136428131165819653860206917182912719303102496235246090062766556342276775972084886534609402040585599081583120385835058476003013913811242304148557525974810702432934837512447640157250690558652972418794567356927907962642293217855141800601671341087352440095278288412111203148101164930392474708322561463038682664816481945228905677073713970232611716152072498268576705364791037535983949730926444640294622860251346046839194332809132020643240333236635677135913612488133352991472142776776307842961973105114416888143357170542169713721423035353304472141114018726974159997198562660828943979119330737312710587857783510256915601401178422681272394987747325272794914808208225339270225508808763684139890271300785451599582491808366329626516481296978724978233513748965256484418742134918627966093117891340179988537574415722497329176748064353080747525668152318701662568310778027931298293268765273614129925496837920959297655742089564775822911200995432107985041648515822324794102947130033552669807454126177732354030616930356146937002868247232139920038709892347228514455995996904169714253868241081649826533775933628120018166665983583503379559675881764688788365027131933230729608213484199335878301972249964925725166984206154032456729680198864319398661131654198538227262269227795316552827693442487390287458686395105664737280971988596685692422444069313987282880481974032823887555226286351107276579384650909660499787691842887823395101778340470538816620850101246153595213079636733641472263422779002969295584472593697375643309271814111793428490842839535925780944614563115439046418175265247180403965557075532208477488746714930123500341670730391107470654393411025634270159405126093356705184845825035552091319069155349103054180014294515717224527400253168511995105782234696282442841029788605884103639289510358484212222267217745068152707900902562212618267291563422205566047640681919674519195042357898443812512735521971545915248699787411496694252823341337698162090062466086154274573068496619460231000284101721616206804069683390264909513677115864253762665612196343873396605012099366524629134802171838210098748730129627885272649841674979937454685277733792831094249568206275573330905608708815598732113767211995958968808033531176025321885982700572026507420555612435839234341255278112935162255364611397157187474128352457315506171345276095416425555986822722289199359576954991376334378949016597293276736533742959913105393345043712112752540496993555411621054384372127653549917350189002837184608685315262259996270932873879836266022190794728820805586887010916928587073024468973916858360550430805004461974604806190935328631715139817269263973619513214646024616363764356448253039633245816472859516284573229523477479041925167281930882006923649920739419005500724728225495688660177550976853657414841841547668231341617800889019584793067540086226670910529557243390629519468714285356133976236652052013050348951713737099431875758757115499949198747357879523299539981672728558002215675518845163428471893001373523067596092107973558731027533178302732353926043407745645260488953129187481397873670054401134847896872557548924821085997425617350331117286640890076935348398608582480292108925678980615378267027092158749245181431631459633506008732855125686666310472575123299562188600986244059840550273881804349566231720704887559222596674984795632645142956544499870921725396410917112616953429102062533724933509041830680308166141712723555597787418308878169997829850574561532792180235508072191057635143820757736682162093211550180311128075460240152855094004063709234757781866135527121424266306995718026841948009556753730737314346759031825205866957806109904289103956506040208715976322237647418884920083456277068514656114895213941415499593497337662173006064675420661002067659052694775954873249407600747023288588898731531307653170645704791683353794417706577141052395065544942724651995384670800618964936419920705652851618781974435574484770200699912890834162240443653743414869519279992085302937562085242586650520277125312648966324374502866086772303305548628773586618112554187754476934472155023647930781358284354807324958321823152867578009023973796111144940250200791843591637754515226348625451302617271805204384607170010406823046881481381970576960896967208301899881724528878290261609216180478140424406886973816461823419916841955514462348516680973303117483498507005437142929568651359378846045473015655482493531796474466643702943629010432462567820914026674636664413914482938433930647364894626765787600174485632070888282105845133020282158116483728103099877714059843711087843834971498256652591084088746477461840156990220438315884250530506711038872230599935056570167750922585801388817981242429909678515479220673000593290639646303650478471014273903779671821030611126272650383873633083582348848267194501676752983523785912871408463272983464950422656227123165087741066246098712617140985290134813184533520575019506934919547073628368458180886847437918392143327321835134888008519850280566392894978331855713728457867758880099528876097297872799328701992483177599499713586935113944167488397700067524712876780278841852596459822113537240579898918570487217528131645189551924039927393477835929443647461801938495893409834522085595701861323867809987195731442406178535029140129575469131944552112088844161765168329292164283741885458194768506009531298840972745426319652679033618060898153343994356719951375409761795629962696499886124547145913434539469466083948058505099891122129363570022177638592908429596540687142048793838103666562397199404642155907216456652374210793043471990763490796121771472036847858150560420787890119015999095573568732693539702629521978869440483117377847343292337587666775010582454602534236747205351943358180825667527264525843381714956308617754734016578080408626300478699719884897224759175005828993845886067154456323088884698459780200249751689929641651108212163151243628791137422981898073935624204985365482136986257906493139978226871239160982223117822838171199389766340670373871801792841866394619928076649996302502372772914108393445078786539293738405529568829302473445057604854690728992925012151082175593588670333330006785952719568381020439207036330709469578732071816657542308380450752844424968053444291916612552684771625111979763013796013470438763499109531649307794064034396291045977266551251644004954782055865606757281217832202189855451966542038085902972687837882966506800805315015726031235325868164153866287849330417655298507343225571330213189345247000519939338365064470880903462246357178316930250927256935372579051281398476258514125991885766638724546456010530581846381216594333498002115562398591733741473557363705816281851757021944649800421651883355394041995387856126019816842420595080051897917947882923659904357259664900280481008733461041693291818196500108880868499511600527143294711445583231555724295731639497331189115030049702580682110165211840274956475439589052401244676319401841238594746027833687113734514574597339542588882367840105027259181649165278088495711201660960123434862723626322283914587384567499013582456575894360206139699081998938261014821909654451874857230160422624306043402246648247062055846539390725012386012328318415960779248751277953184479807506553951431524485102540744811069926519120975603472301344272526175218482915344674781607977113853249319437630758833677958971718172683899208184059609451997553193417239007811811003404385241079030024173995412883636226924841668821005911215209730233555683962231567925275126878105585334453599070546066844089020415224559926818954658622467896468425224646927877537534208784179517925891145380105399873549064880723486486385185694220910816771027142651145029338450562170123888155590251403661429484970767594917666414250387855123852787942633582196248751617819458162943316582802350442098500550212175614741546890437874636247101698832247666779171755518134087443096461732838055599592789005079293332953974055518300125024038843145287076529617952249252903930459466992232755047898601520684780841336185184574992166700905352815471567877693108647524222301901522552569806835456796816136002142484782336920625233716323352668292556018712915276038461198376740059516519359552955245093487666008601235837844879013666350742638105463183385091691371457714790904005141163517253358191182258676657252344887632358979639152579063919957379893501965746144739373145626175231922897030150064806724343907228890665383337790450470122816535559173764786975467779531387841392355480498577316280292956121613547318443105217291006099010774396696338042044839486198485348821631004339599023054583291485286110141980825278523647801037188779917501092597370002061330749997945599100981678975633113656084521709871019905418208734396171152999381073675322590834844800270428463914992244595628140319186289372444610846094664864864335754779233717076540485203760643696266376219949610166055524225041482546075030364729556280767523182847737543721270143635450048055724679547609551400439560654939144682985070947379190057175632178027317366113633004217310418685172123532524983854345504517767863367112405892768318090108021590085639953590284205435692861524167297698836547021222893442395087079155925674407771883363097368235907378279145750746003597504633914548602980379965042173099384705598342683452419215046834119241855212441096341430720370318224292215340767909061744905777736428951584658642466582029768670354647557795064964946288528677548521992496456853421591046399670312154066857919002846359583641263662375930601798004542993844222498329798029580026319713570831411883505586656100705088069342894491037006346721421404706145095380494287220755492926134105957061916862281160778972080531569685907781592005912342496683344179211538014520151969562762145144432748150548085246589369120655890851790421928848835633315874702497106619759747573987986264444832254464125039347201573737763437017594307351956612833430058477577171879448671872008068192129929859419308319842916294097899325457796615735351233930203184763302988952236822596839667136967609091224046606980240938761029301000936383580758499069635290851003428857264635751999482673289840496461192023401665048869008893452718827021187290217922388585818193432084920847268684145427565545221208998617806710607383446127773263992349898939097371864926004990505369921392593772291686508980228126608892750025536315188905801407615597517898792391126931095141550891733500943638011050635023607006457078558850829335859281299779025521875821247759763771370043773509345091746986710318586538969781103332730158365145204398596320437178773477092629448094640557800480086572990828027235709605657111922787803681019912407313998770654926492328741514548481503686540893767174949801628332960569556135109589659467071462477548319300332046895303653371250987564460677028760351283802321171244096348145323300678625299839357686586020230761846893955588414778643737470451462010584456308237826212446608786549897654352416832269183922699020907100112496074766589322642734892060441642344442180871676889981406140197963826600603314070010458062685707790092011198878649712822892212365069685893945341593488434048841602415281048233453429666751089110505677823401959436983002025054675689177655265687591197348387388079494155417843354655187452521079271512256017959684696052141259976199206511657371306840585751838175846366389609174192002741789551651206982707903943436557734329841654738905371664384076863529682027281637052439830239403772708043393640381206038756655429092591803289403310891516692211736799696664698654647021042544294250163118896836472039045704933137926071844490603804359346500045845375244047807752284878249500627976623234685292849619162364263634985662381972546172449106896453334888074101283812354292644374974637849891007277637749925487788594877027717752501628516654760554862902928925323905598027557245559818499667939932195636400582280515006619465632908217604729298405775419568234332694609181872640082918259392986865044854923867672169340493829106062913386570654712578353018165597647873822037192456375045757381442556067374715658824912162994172445321799780798384916327165953499392534358251575192539373655506310377556738552992611756824409784097537516361367683744412880598885768999749510834925570885607689332250084343626019978360619137329603598743627700683468527111588074455285280612467004795843455453842773782167877302518713300185295905523990692629482317060727282953018572307494496057901553398795650687347689779667242011050646424197837364393626653331142590231379158523784869887452619250560825563915614695792217477253065899511310941296959923866811751386054329075364285910553997651204729667031630211846776825942864855634102612273664851052809949230177136623135722473417250325308402034050614320443624833936886225588502162401097315982529199690756418353759860476497536684623622351249912065557880361159347950872399370527714976186714305716263846833237526699648032749166048677347337033127507784269210021151153298218029036296580981221419561628939351873077775678800482382729886263680617452911434135922772349329500670948227104556004602381769744508296930017424291227519389824751453245981766428401072126079513866600919455361947369077719186920015248251779336350642997426644198348736974111083806294555047303844010578408856141362495877956484172144098561663996787706461847564566839246244201827223137429232562013743588238979970767982166281317322122350711060288384942001176521979741804736765924141565038849210110318833024930410957888063947854478699476501510259158980109947383408036482377709823670196502794511373323509846652419930691125517075322493355154997791023464386098343281103397148636332776802808410687731590248845514778824941479421557484449563870571563439063328642995059193256475254175335150610717526606852153068735842313282217903362711921627476346344759667504240817847127531632704623452509190902610242621489108726541223006857425605891843259265986592869688157860293288358985761217146062635307564009330563693741321236141646233826141757286854803776653056144360106405223016534317446601678143255944523056487260103889649686033025586863069730503723681876316137455522086714094721627292733058606613841856000802188260002932938671287724208568856579429714411285112174227247135606187943405333320742475963927982791985636309545161462159345104898688686579065744305821868237822962228198863517944038950589600190515214117043672685014156621097527936933035662916084480591304358507214888749325720948228138079530270243417638990197101249108348205637190155435553188575187818512296393168324070757069346313325191124524539696763127855517157561396783260866010632974196166998266488327776595181429792048857671110571262017476254998153541927016411615612534580408304506693743945755639307910443586548241789997399784487898909250183156502826233866351186494889212175734388243776368566325529983891274349818595711793516041386621871405680701851350218168455680786400415392304893385822179741192704175552030730925563381458975948490018731051725299574211703155212457816876964225694424022971403058180371253228708101063850116372892648985118070139052240149027108255757599185783499264500592858103562812138261508804423756291358152013913505283820529585482862082473750051252536403454015911997124654031672934048704506779393976820400588104562752541335674244000365156343022610229592017396412271990457716764136897440677182973992341962026054547377964153829750940759252138179668561054299865287380706787437937951803650758819867100763465579753423714951997322714085011511528698026015049711604929216520354693776481863200375148044067957259285290901537900292107011268369930272675068321297449226402363760505311839482416794025474805451264131914205330333055104118767223843215311832945347586459160527227436340274565297562224496252669992258175984311058774022038571399945119907974416601076125859016195024888601366747095711907150629297668232696578059501921423128030587535299004447883496678103138691807433659917658174402197139494357527228079934298416322525807489760528899075818969390593136326036502520627527670104490584257819680813766531392941444824500439261890728935020574318926086683370134895988800458982031165023028834466268707402916698640011827268572024653850003744905499331309604200584037301047080128376867755131796067373364283072225773691350148801522109001251007305390483292569003886609856009165250495113936509557516697028418084476551293908660884087337702510432884140707763848597878770363907868046901043002012866510549307387006480591921709604569194412837779480376261623945752750924027417532050475566750777499230223885789802446327333434364447630987837261570014615621740121668760073746866912952033966293635983132298456781606860304503020822697227784060128934780418870146947409645940922484797430015381399687512065387803422848269351411389785659024230327368634621936408472541567172329284633091739235535520619322352371590727947257291131516300991124764662741259479115957192791208644910208811029580249193883953287188325916442239165897738166686963906525591929978691313882504911676984857646029967221606194975012859473498992290295089837219564009042187821396416093228371373860828855147585584725486262865832298023193392431284788290586687351964236865066331361330349279345131657125629179045557979267323512148781261835179047266658326532279027303124880922002166500382982068608801947293870603281427454894535169086652687594068744267426134363988565991336871871822741754783785405747456270610437779900027015680532452081076728902718291279636295717341470663869616580454564059275502154343993072597474030181123737619849173783785518264690980522990222509760298122095468758157646591437375317968065232413185177626722933309863274058637880963742706565913267619666747523148175756229970794538308203986940583183284437741695825365847007118793957748555384743434888164615223983678362163543184738274207540373221166081563818363238821653359332330927950533087086060296715724167905455754286678671427388862141444744129779036088907341513104996474197561898880307716957553060447077738085106823335833547656640799405664800517362147285970730318111053790874605917964040225859192213526769320397148890377416205910845006797129622126997129679192836889664748805389983312773563463314842668628019513095378618855494643896983563794490633429213110033779944710364423544294097824768739986691383976629849543743476342075394765647397065952688074739825288464254909216367957992475062496493480274169748732871569816419459131740415051302877395460298287059957154925198892704819304973223093362503341690258563529986450719668637273532112940522498329677164454281406358886478594864433443914608496884558349689007491144306928904404181745466575076092807141135778518795302212342771566491520805620106389990645270965553035729719985972342907204696690664461048877395735874434244566211039578239677737509249202936815027981322647336450446610060586686289881437553627642173641023188078080366834009492505682967135831578875096992282409271494321841080295338342162730451344021951120209571167151062440844466852039938870826535806630132366384209914566867654764146417063304667852032700560149865658125623990872184408079911242623978758771934742808880292312508328311736249998276001261788748799551750199610455953625346649364559722443045616383064059472393633301741819791988763336717634545927167462336081143459219457089477294723030733323522140444937399361612912111505798989276973271543172759261224152904874146112853153904903459541119155670706757114038293557422804269503010562121017919369565371683715841339044244430161727403997408662022986624278294841998205109559605162202355995270137148521203012597043769079500312332255642699093377978398178022637228290646757904101103129257625584712871616782691708198980853268429431917538347151313997119852026002728782109832033032226133960057636365779667782892852260842680732111693406055236452228252679099907173994472597309230491215846770649531421395145036883111595987258356018877905763773402379721433269783378358719365248339552083500817723697066414732357384961482894135196346306018065622181669357513866761664927686001830207641937326607520293355854953125108710520499181491694895580887563623051975703142616994995389078358744202146498929647225743847739785148657453998718274885468985558546512612996753278661442138350543745511379736547855145149630732575198809429197092379516116191458422699763431937879584155870141914880503040567694684808944871298811704833960311145592545104730549693339363976870010911691891161705790468506242449072101474298920375805310904729694478441024026621488950333791186966620419858570845418079958738930673300062110585984053997357969982983292432403468283260114547835564501271747509930619565648578020542021924249710710290174843570879286062634814755512359814194758438988376981082885438976176158923555053752801378277173501519692328678184382214872763023456234066015399048292645635206053193413267816676411474996536710074652291332835815421990076748848036554188899091593790192705146862197711537221290998613602583123801456735812985208148158529015221290420600899089465601983452490453857890720291600986264744524205586024154136698363749029118158745969399508770591112990464719385251027881134013281390556804039704418387772168739968144263929598500163737543955299650335197962749496111129609067835922952482448443146901274058427280869385419855699634427119837041861924282782931096882335819914128521422502681122388116988078839280769094212624228437005730414075645033471533335698071772769370076541890610623015534541003397011993310917602185097038409118729072504322078942158956958157569418712729233455008238756829772176025176205346064540145782436698607026400301666459509174757729205517361670569519338242092300077938884248820993676603097302857877826173235269018294707521783567749269425909277959404993401311973212028434327603141479752120851806573377623845905150120669272302513360680090480043122283640685972137907804140396177676619446122679643644898422297161742835621547875015576888466746833804196222008118503324021099406650041919827426348706722230156456475758827159573020929155833785831105998762975937406386149854757098172235886854471982968501435856281492156934831732035103439937850826363368314773079357770257315555659552718601729292615892708764114366957712271693007088693733063564385507412720526707688904986006540887856149581176005863267124083025133217877845168089253320031771753238548265441474643189096928035721846707846428280960271996129815094703435305356173894708616107296243123548904896708869052542726455803095840413297830866467891568073948177644780125625297182070880573613095818993202631025400896274828418149558914139137018888059519018140502383008876982407874058260705247792848169044122399805001990614428198831743428741350711516309137006599014436487358711938726829279632308166294401263894943534494461430058070985415960056350756902118491469082669301614033676693783930740383755011032222938910787750766803379525724353251089677282398008338459033956916015695930186214746697079980299957457390314486837241018814566727604293778850649838285166049886156151027969843978402963329031641418758767363785666387501102283619827199890056584667462650522340978816550575796442903310133775617520529792343315411288651223660367588719979823231826307444176646434857150517250069352383621740351752662002956590137448293569532994179227309756922032927701152380250270419250101710984483713682148375844806448746455287754569602877400404829707122866031401986522782319685991781701830364781338456068698698141291833646800238560891821863041732763611355999255049610532532901928758694859562851674878376382113376549417846135681091233404659953852365090249829282186377756510955003587982222583146706236272682839238798509762450278997189771146820698178410097896288462698724463618164702742169770507190475416040930762463010941240536069793312889191143953150548719574063307747544187518639302508507684371625334034190426936196746013388374835103608262383698928087864486676185530500638934375854014055665520498826826650611969711732384324952343309558674199994502216454350815555665184224569843328075368952696902165263530036179035351365664404662454271618680864773981048666832246340258021317519454305906499562253177183905668014626436973771989426225377625727116186402686543866145753609129589361379376526464015350172601642713067731701671794482879480581384292385612057455047072875410886044451414983247365571644464088079387495928655449826928884718982459298646823977095521874958418795068097558162728685820217005766772961857776576714181003175389779132428211817318817635725720104632879152500952804454612177871997230075116802455364002041622314977016163529389738002852857956805171759832201415511929771825703567839831264409746396262338682327083338635538227063730321030547507695774521067317337193744514311321081389538794208934983715183007440724890427756286911659925263532124976848611960779598641706485217528111787516099014387598341396398572176530860242091886880072914561174829054413960542935093416692002259469590884293123906928897518561728251289557842748719615091716046659026375614150448951567584372924754493348167548130108168873838861026393721119116108946918549274033315157626184114869203198635353224330745384605112875676591481244341422715325910031095317328288868552399095639943238365601943578205085035900286160313500153658476390763093416526925342535677045193813669669493142603266137486462133049332209945342231793494311164923823239174755080023383014745250640464705141568576537107035629948023158013156168636018845981460137717542724973167477927817764634699283519150457203925947469012013559639844988728516531596277088779566946329447113229333290658670871969530763964656721706632562414780434120858131034246516673267340201587387850140385489324761956957336259164617737277903874363120228613936851632490569748088548673567585565856674301405641260174100694634678700469587168293919089486989591993081346149447429728952891620536165771382463629189738978683290692452179481731236372119794968979912810391467954635894673956841053732697700210905750853922345239784938097268490600483793527033251039314534842402324877776337105149769789023886047643848524089981566891295021628005303175741600583625127560496981614330420970614059098834070656067335470743976944209883043267507796304840128380136528012654892241493270796501335538400864438735653723331163134722618051941797362276090630037651357975000481102649953388528151003736021090821915901436962451142736789716693961399599930391596947031921787647364359509949613144611400535278518641881683441681433687515006443049919333529542424362005114472736489931996422228773836397046884928494393504442466456916734216798262501995708523882242959842986949874615373164131595376874668354740236780690507463262507933686245169537740363854770699989984503457465543223016667603974589425574451322917748228555735305241441304181787750018075005997190954793047770630890460206871522717956636480050259238851086566288724201704488094015707007669878125858280458390241584902153166374998117876776917593556880098842893261415200983048015532369404902251289277515782825920308615651440274697112272997522563530845630753486072883743943469100823793945419194011897153739099545117838402041643428185428229590937828130895173640236399899828791687596728296820253343771179694528715944660638949070841825588120521164457585476837811471267824594886617359656671609440504009084566010043053797612221097616924976367634176564624942616372591774386112634245096727188726071852560570320437753811691064048573957758880530834039232759351192711373131842784016356801586616511745940521351584889444402529807704054010745549599991008412995293023214392087116276660986114569543158625259298021203736954691331424543864127405180795576358571044142955733410844526411946866362153211831393032510182240527020531215896298679594402945893727502178352287226009110853504761621802458178193967905457266460920556421903293004344551142902735631966925178114787838135143816293056457819695076832328748407645825381004595973608350618353821619555343079353742916329076727433178360390140154520532144219840317050643421118013285930930908146048921813530930315630295537781204231972421468412762761156554157812807068483383264016400476540483401151007410064072804724198923004930244400378360356446254445407885277559048658730446664090404911293120526484290947377089763617622665303418035721825149622097172989830935355553204806679473726530401046105672978992132834329870383354537590404710365226222135309244302307185496214951548716167248632110408942395093020712955737161306096048197675600751933288195439308954726511939564073320847959527126537069846072447802949937721429750299433639572902945582402018316209452137675405170163224644042481656434549201497926081692949514998099481083852802775081169667006461622182391848453825395335739986464529125199803564280937300721171319343512042844493439740848700462386457704777087662578077377630461027154949898586694750782616879372368642699652148820665414213397112634410982459588772426632738769184610907318025264064467443812101466767448652606582060771381666588604952007285416152960746818993251461332637794960712210315088973531947771720598703362078646456843385033204509570244386412858505277643438823713803750748454744476367769258857046625505546831663167922433273819552415695184252697123111311285000170141818672764798396247365282462767937109438366074272578675765077042350450082337404045600554460992939515135048518103911160029913931906622479657017214933193736146837751801560196779889980410866023034760682446963313601804060981861920330851964775571880135677040926573769750407819921183844253859235727036630504612218426006443496504357029318316994393153920649746713321466680868941162650403166391001119455527136889063310163039788853168508956043285356359370779952195143431829672291580756492914063452749666945756154352636304436303024297331754198784859630948155471584840984550363703891543533067488552716562848368822777549796578952884170388421817786069790356824602888019868614141503732582566792980048170621410522336772697426201222012341669718981389180141850760196467155303574328314155772289919124953568200193402265056070825178778293431265070939097489577060619651435181025944879533009673552779514938383769857708348710792239945017930128972178986047150951632864258577077204053370691519803176248079082161629646086540163921580326073781055160240477826912369421491601993416206758115557831217507230152289121888069445366149846858724554414540773997027868134493360928654006016301731369027865406324885519428856390154029236793093611162689092804680943602166174134823791059683879422130368659171124696814765139392267810226499213294062269458583189364380559964444121320874255876073455925899720397071088933746360344254937290805391485009943338035310135677164198321408563605445029893842107872606299096714440718682834552434943207613667840229043980502179145019253433252376014735669280829873001510191550929102877487740713199343263995305749135850735781130921236990833421612813945090754748705351385872634992008783917587798422802891091163821785553383742271850348103384647450287649566103212043348885795163988405454312585677788764611160343557986078194447426655996318956404353958592491715688567825032789140185584477020512064097809807888436718948505038197254515652148989439284339754497502113971214012272835769726502327758852990824195511017726608601113123080877709623821342350183512301496002437782296701333371395326189180926365169731107352093316784586086526884461545591295975464350133817779449642748178302449115164061748408847550116185610269587544963895047489625677867999402962750504676623160326596677302867176008462948407327625538865690675509371123451423833560236532386841522417062664318795563228549141683273493154936216400883669672695316194367698251483411865998226495885996931569958530291305083957816900491601019566060901236888103286875864286330635115493412662325198472695359084986057664232166733946606810431411807579681472339302946875195292962708533859897053165286320700056798353271318553941070831631615741554171645313522685384678138418816571011694664678540242160290717272828300306827063672900580107349760269330416749522997779803021795740370597445052337519228594193992944048873391163013956131813719739461515239238958693233595940570052944527166376002523451134651835964372019221147810199552983332018840721285278328579766354115462708426567866249611277584477956702571727754092424045152468336073169099247505488755464595870597815369615605267794567089805322598401530366824081059181975059121842192875375628797226685388653439905844536282503839675856468174272853808631770250639580179157354897218511803927984212606210244013657699674266634048182430291841121054655063037454931022926904308933301421580706022448731509806830203593719703990050677347154218052527199406658816601633948199021075734350031168729463745844691485228120794417665866646201921703290439048695665802330856742145167516106917989831266304321664496477114533033525736340462585099372268367470164849222499208011111895006678177950269779380169589404538382487472798071261252093481177598626005860312665062488159596855833398759151840378250903618737369936848607282855408180176769099640652980303806119206208966907351012949678562522224253695014574110425259677994272246739394691107660919972334856523672266959296298586125094470960430791496538527876136969540885812659157422419031987335244018153946162564080142602121697414500918955310272575857667698060304123671386651291094396288624297976235116418844733665278420881056578573011179078272276998240868030837904400808373957173969038851871239954987143905762704144616141359952916050870209981993012278501949665297588205903140671184435881610167884372788561302598838418734653428558050143881088462299816540271972601244253774573200908915774030478769892378620637858347966713482961568005478478033316553149652954534320057211230374086731775090274315201089366539170852364689817660230525399162578547594329852630378483374236449653644255847469948692654166752080772347503819663588338517241927765261956097202859910274689108412848207705980629561283258407431344918678837607676510230205915137845299561694222093748494041735830602066174302672560403941349332944385237207901366480770443523645641807734082336488281958509327552265698030257479884518699353795133168226030648535697657670860176484678140393467945973839216282841876553738314577729452825048086897174535165308191617883610075112470976750364509533436627498595172156652676019429970429054191258212678827262709346243236137685069464365272899052906653297663614156705319724047418559382676005236647684080916607230633940686247295440863903275884596670001394230511765413551666558185068404555098279450787309945998139090538788679873445031513059482587267821816095799450731967209290438982808750323399650476147651351167216361083709303369948659057795570810580526085271962337763801583818375786218772935988521874160351375741573132799045613702005930504174376229362286988526215488830912661316896087736195018314021532539754258257839305950654122129560813721118696327008515602953403564551307666618173737918582686277016619362375719880952995858093037208953170426630464002502642690976502479666544435211819869969897512420227101639891921669369592635786135629803854700028006270417643004497854030443538840334664240909194366084415474928749120026860380694146099871146440308300858435824113276009338268784765489855067654173242119313532286145042820907543270742038226051619079731575966121648822113005635160684295707477287113001548305145644328593488982127128554538264557472286601361282851647942133559477438514414397779950470899077072383729019060646060544356719435508981205353495566216827130630038081172539505507860158789117326562062810354006065795956687129641115108175188545825876661018947770901446625805665281985475794348711056261202481594719909538185177676956175634173887475111503581584539374973584359721295802002861660772578425289251512329256703213111001513677252844183093082565148091764035252706601642220496120091675511526928853037379303346688549633267140924231213909770660995343154847577237193512461420183228693415730599829485128612129069437877316412986187634342967310435093383781492785713592731201146347103427215232774724749468513341986429293991186000010739661542816212297564966015175736217074238132071804843776932453895756030652283383125510857522338637178938409903612831356720484757635505919689437534036960542142560044074217599939403240584184789402648285568105778050637223020326731079121145013316332912804944494886199121998187787073610025409120321799186706861118431295054242668631068673406737252963316783620960042024125806337622276229082733256054676948640207062567157533108179873927242562206526066308547979566371712731564855172545709607677220904005722701740069241343261737937591425781178193174714794500395115747936710507843246111890682335610777916774254205975021119230368059984014273553550718345458334060468340686531139599834221478503477072693534228503486418032743056225525078089832566944110132264000778627326983341790528684701190156254234756350428743018391266704759552309137565016767511347362609000183745732137483556471504643772226105273871311566991305445841541400232650590736923932944100561705562037017659212574751848112639700770036460938787990251977921401704176585576174571086650214751885293568427519979485882831344667947909292987907006338111974698440040488076531060128834503864004698317726308158914777771772720761195398322084268102213909228058838245240454667350224646673726939544884375519391249422121352298645558394737801410162920892325604233318884060966674069695303700881645108019778012950697131561813629024046298033496972966286818165072925613062025608612509812791437068570715494964871207336250127765937247816589815154017205588996881589520328337630773102347947069487191958362163314824526283855895275462509054666964600586713673432701127419592051173769877940868515008893659458544772064229798809138468070887313209574821873093024519632721074155503588255825367559911826222933864725220759396603877476514207680376663078047225165567690030023915243422518389524068043642628205683548130227654131334770468413106072624147934160967163374515779420534985272913987422428006111083139130514471392551864280532570904461474672698876012405331285879714558298169400922447021407170032233928831590817085567304616754874584198750775499625746810509018245868941560005417339143113258509294412422495566941013652074918144638152452993739412436502419173465599362194473194957376189606882450182217012018109406622102428775604796631355787680454830980227426280435072630233972539405678872935755780796846143277374659150689895066185599658060192026835954181801208877566683043100516275214922064458172372615253868985773305424332844777795401354812282305242182664730745359438202188229278099281266398767772630811455735648556614710072213856024581475162198061763521352318282326541712975166314747643343901903182113996363555503060471088117429078978084896827572651412176778889076539137727080476777760525072669883472238145457614070812641933546340568214113564780632648213473304852323061835075917019278916259018699955596494263029742211770180569343879703080673565264067275816017829926701103269480188356122532792839239496288029115409559178276360440514347528821098600135762108399609040700503387374235129858375145651463027469795902027422251134056404200294741990673302857819811640573123997942624545946077926287983402810251752863458845612023077286096890742961182156312559262043517100622779340018067201166105587532380411307839872704440108108721378498442222570843265919963485214482751622178295228109498526618249261450552449978399622484776020092552710124716966293101663950403989628235911185450683132591382922298494097494264465894208701572724842919732608647994646667852277311498591268728473102241759798309431301552252510260949692980041634498079724982975503008051569620061177092496874092885336176220395968083544118427299379391158847708803517764984647165176586830658001508772071796844176892983206308306251385511476783014437363834186509153197160187742537427221909564249883050784298543853457606792725233677340108474585011323895963254586867742140020261005741795941404000279810897081329036132885749549794069906372518577406216550329647043373479381636850691779077555414988329809351697502790183255603881030226823093604207474515862725142665710779768280530164682681208392446932447281638298229781306979036903555448658200189314244999954010957541391024217425623683296062326770220564271436480702009823719283437071638370514345091316786829776137345452999983271198127941427129885155412539970952597768375387468205082263990498134627248956185705452753341376562929277792658534241440468618545106626946006564573735802150835225556166160169748185218892549474211062660542886539353933838034415268361234587349790266381520536378843538609167833318180303905447183213401249129207552540010094031136638268724024291228125549789607042109289209561982059874728845710414654096109539411081058848382012192265778735338927811490942723023865843934659262164211674675549642334170892626480619191284848774672500216490986303848383204668175842283360267830936141007824819578665313305864061840808461805416986536647643362162803913756735291830021025558775709241555577025405353975771186518338183780030558824435696085298727113753243403889080771743979783046823248290356427271047126136677294325990301471262086390317325997768561146595776887132306614473075629488605209718874878424057884176270616709859334265466408643549270094109630685903233237520738554500547399537432844253704888711477639323213401464705066559676288095704782441071356220101163601475288661135350940116641207360489468907546669173975086811310039391956522351861642221619128115957951086144624279848659662548902102488544964062486433235900963692651797284410892737151652751923078344012441746327785727801126256872519175365987491729890029050247148992420279982103980941772108849215859985080489508019897545922599877070631585955903756039506003811541973035623812925583335427945890786403163284787145673602682237804615386328428602154102672554299870416998276616251434426162348467225685613396560299022953286331761946636595300367134538630380938508056202056413040516005750734680220220326356209483598483185250451922305247920820940855896784783744903646599690549625976195178993331306865273330284888268199080964351286689120257514678817016768050093021188709758872431866081841762448217186212803087806248520289491870604740813794978350438392168698548743681791647956376396620978452536112264782436554340402074467743838896631823470026949782559987560286741046202200386982326863366971240155690230432462212703512675750749828821106790609256788260656647606497273015049058150357990449597719697983257382924348178344638671187017476102889182083532686375697606710181156976462591042437959747647708295598589178146712527090054619703693535675550046384900412043852366815921581887369676195704095311709308531698116262750785352381128089311457431601575042399756042306855716463359257585876880424819561024359963405244697527615508416186463237871639999300432659109660928607885887299807940787690416636384372192100161581587347424445508427473392530401463276361656975296706228134707523643896575697951553659602201173879258930161919749225374853016929206659480396035674049621959143374683930219155209956018457449420476077512026605732661426630420878619310057921110047508969557283582093668222404936168971648241718438427418968617737264971703949064686955915531514829856132550710987287897786527469550997551542952503028234821007226421456509126065396297015138189030899540109289786003619297193516560895411543842570751134186154119625273027541553618817674882121162554388857484251618038654847686394336308679611664791426783374313203384409355501453617948097286205379656180140782681718846879197957101228613925982572981793906115862515700047120733081377765969859331055011297092979518659450919483605534426513063175984880109564443956569172313906921952910646264764355404429789891877378824558461770403636395751127710692851489693798189794441810069549344430672172199681929750346574477102361351843595479937794865797152768158744451955842978036364710798482744307854528072957829814612801915613657428499921566794893275142524760195993494637307389473921747041285902755739475650203815747769259400809361692749675372341909936316433547100453715106209317727744147583150430058647406536071671158990377675958170811949198246274937753505158599365041977542970452473227405088209257569269617856227974334766410435538433326701514810258208603627687238396901627703552198548476835463856140474124826926698791146614104904154502935453772065991856089281104054724035816813731310777620649534810845365607818005099286849884889102589051135937038667334452860421714367863542585105704345772216666814956087136857383431500844548475733050053977844202933767784875429850715655371745511981202584531039169400924479689484065221189786199576730639319200087936285743467075182503106816203293438217871260809972908496701008005563849492629142415319091053190324734590223172144263143731756162522656188532374801665620765760089537672131052314899033060906701593498714059760640952828254133601583699853073604690487680551912934233427153908591478844804351274008092036221877171766046023431288194511623758082456970891551348630413053455793791196282433020828797286431637822808175633622741299090311529056223959680907511303656930639122656681881897497827447670965516078533052918289301193072851115304951860299065448311573150295939850979506205548432753275996196342077742970539848399794451633750041215924846285743198587048016362857071776174039726310605638340057374285570704130169904385654199941721223079359414721850026229995061920029160248449848325559182508244843263103416053142307234762639624144124614653981333186651791028568911398715240552706513042568817618141734726239124765312701854020649250449733307875615046207071470317030637848993535324222593581884463299573979752354705233158754788425406671851666864126206436908056043997105175634971667205773019332651605148497086052211609789051416509481251238468829441404935447111192392666317128073109619847792295434989195451027504920800062688022390148281039002814954296416920804087349579832508732907342302013770454438529772310257594823994892045979625646564409869267167190309333417417199965707024930740871758985730354779428762613575935884058341283493017681198040952575936894851788564548063877636508882402218926685597752046435693939041027625544202187200497580623663607695006876471751515679868821140584284507706597738157528664488151404374509186625736781341242311775992992122794772885031167552721708091513976206431140785495948162359292394069467035549343679184052251904721838435182451749274614346019217603519423992707316095845190471302605788416358190323889816803050176892189900913526265877055838811180276654381425595459766043633918350549356043600810741357779264120177943846082435985890361625257476052611023140023614987482206120913158867069794058149462194721245895667425180330948889896584948013457523323203656806982538569278218581431554550304938625873006108768204125947197476744020323545533370531639926658860752988646194277418024946702414398786489738953743607442142087527738347186219398202470792749744205820241725882537298835721434976175768422699209638298591903286980417946570551180480150812583313186384153365833801398124819834271864491789295975705822189065103877817246091988353812294728178790552255306634615063245538308893919266124905473105124634087817697345281248652147594692117564100410552798545281266342964766752938008762514003744997426389735171745326811272771308276606863158704190731156738278723991587204701293071398003603397783197748400330334730711163142274176490883332302103631023077573600097964545783302571783730652791392364966152987165109460226622043123497125670961612245735437983654550122577722494678903482939113028710879229029373238083352455139321464745872175223632949236869619442046039021375117048098614071308164293232361556038695895309850757126111249894422531769668037185488928357762096413170585636326945706339168126007981160338893397715894359123979372386542926694914399050918647335490658002326212745960278847929799345829813433156906379832240163396880432773522240403354284152869506120796560054997207840923866886633298678568060942855580584773538844204811371372958514884970063076941007137875818651966806370004738847922349035240223458866833853802781518016309987827347226825970285229542822761378078784301580574565294855397426587374279861252495348109328161060710421916732518438055759716854071943481180640559540749027404935973348813805812454213941299982758060902567909241856949672436560220363293004120313753620000589531051561902109205308133625854497307335267254297175946459965511271660026708400287461000327657700956964817769340465521716938589444874789794872244822025396779485778205514839752404547160753610411389845752529704814213100664852479316161992807684569623676716564660857734007324343506836872235184634561942424930213092225332766634022151621706428906212000571485884656642525775639933555298714275803500928257176606578395890587042533525449968797846570739727681337389947281234761279267156562902158530992510555524744906276624935055324180507121290440291345650129296918508082839819594161792180838379278008978747455759635449851796162127282346047705132833692116829131961809695642447214816392236443523123689729321929020725347282278213126021392363349823265614584344840078561581201404182452615316418768113236704496575193774916560664069237736927341500992360823180787280666358666072771654224670109624970481130826082663785027988806641490703275628870279131802839542189955939642365731444170129286176990752106192011342405076240631564443383615345508103324013956379831735513565357895405589363001596652120893451204749777415656252345784145360733675271649208266124212717326303818988267515854272336239518075237019105943757054262859643829832809079303811306283054080694486883558715992466175545341609893780704702669654915983686296887047877672987723340471127988519025089169567031725449342230635842238215442856576089156140289642154571439163644463607840509902487409492904950170623368942906947732901228959293519730103118478662309402535250130680405759850296131892765023393911069157159909281898419041297906873278026288908851904811573250913150177219683606021234963129802662483898021614481944147497858762645557517669149895094863200199842507884336904505896853550636106273969848692441761985995791386751434178008693281769386304506503102412393722340190030058683683812216483562226804625054369524515508085194187249290671069319502746208796052606508223625994827917523435782182336436020034700243644261456580436063552707664045140960894796381109173356922350443996761867183678262630227002382213231253510450466045292859278413188405817344800728299295388157034902497251878569696757704405923926575170465070451224803490449475683803167984269268067091878347150701845629878285816637507645688449832568412721787529772346151444588253110078980966727309217704258114474004842035104863136658632834560751426726950343482318806729117032213585404211794413728141049456673404646558926474537474995064473334904173014572858092290901137803194741270656477855228523793444011320432896076997458785030156310688676910682743614920151152670520404779733520109445340513152383573015659711217663713613428611004525005946038281953230629569002670145012147134555159950203656065276241006537800785155125886962745425019131657629150169661667526252367575091688715339647427368581390550727006418304555875154389777100206260847207447915695702135656579521506075233345691851816295361131865805546864998514623527696787143343302411436663932912075191067764120483487169725666399417451216499792404435956689476375772395522639606865340436893132408824946338968260331308576638010692933075554567253707731744761080987972469238963419701743524962163499167951462318181775579195329576430216257878423745095186395975914967602637594126000888645112329909234874182165945108555482290483073024276891385367054706091008724236550117685751030374705170979151850660566446658909549575450311773109996233556480417403878550856561068411846750483252685932459073941270738238883620393737065080404106018520677827978237269152261461463999091293247585979490488914109496297019351834515474322728079301376607491517591727002364272963610143940831720791349449008975792401083334507587230818451051799448781213318335606764046326789454942517118625563097209490301713810580521644902790514389424986085107537577192382000943396539730291253611710455070761240859884919869361459318903785614822513451732108060352347375825597911937278241178511689205305828007673136382550109846838529889884117055062395235135168217560998421103377773814675233873704075562049603994217332943933740353396806706178548715254264332802441861774017860936895106173473977860873161681687375208857092870573195685231167835377242604639236299917977970382357433008700631399718283109057355434989285732333684692868449974296038259965362013026356365846481824459188438830749400478961714133363632020904759182106248299078808155119055198053125146359975926056854604499128204564528487960233615017277254591572541158891479882952025042897388217509623154824811296954942586281479250783705941030764098185013265131521854101923455204478773917064381252600895598855505115546430741269155969114321503925815241884241857520620967375278711118291202993607603714859917468767595299712626928743527949220131314618237313243142016488844836727849928838208775578357088611713818631204849726711060157393543415230463530536250832005223893331349912472192747491947304725318393542029842799983393598218957641067786356813321503052634113753040719794461300950499799975884102972948512201333626375638764967819217297058083095028817176531241280250542482765022948484620817074450756360339360595113104778680346157997330488256465473283683958674171806718922065515118299881802399374294555026821816524024202960164071750378552788682103128082373604424264438049336752013145838969477382794435921330208520417842891478003516101169811537163583063289749606793121191960842818022453737002372569883516906806467709854024448309239928300061269990397612610301392976698467627655917282824009282426694491688877553818793850871800943151948321943811920810484769365326046876952989271938901222527927032465193856764935098499980707210613552142076010086448154068403124643984670833082413082124528821925426656751738721479841623833234529723629706739551137818479423076852977618539100912335803918355836063287601309903890401256473438012529746907320188692523377429270212562803604954993594628105042511821771186444016685827421726346679766867751037174172852992729610285534665820340289455236516881899961940991818211274317856314599193750258683560126829896528200094286944830322172147483450718103174728566503547550701228522133982983347943140254410313969827172048323562483375245474112506382913583574586699116151217029838273574941778426010953741988790397513052153468979734806602811933111322273140544370451837312804651096630078280257133610505709801458457637668124784294952577862545130379207546520297606196147561965699287031383070563049757683937801083181089919724490007455995733080122444094014080851610424018730603790449905363033111244275039095549754346206719455239559795258694998221362295137746462913172710521265179142917463733586921473153925814561742378731980394229756160275118830859312625148131135587608156525335643125987400858064712750109972350859573383268267067284072436886455869087246557484220682682287068479466508125170397312085469357463399153609976117281541186467083543702529795933493781128848208403182669173636955882377578565102858543842866098061748731085162835379842991572142567547273362136865696055590019688390462946091607524255398572719328394079669651879800739268430275676395186121088672478047277302042152343809667019276768139643323542897038729937611217357194509133078985238800260764365703591170284607673963533467707742314895900335044559116430339653200389671661567296609466987760972215554223535383903101240046770786176679476354720556607127873635755292387079097724741914252658254123901522452315781918049573176510037363613494630360267277499320721666851269960117436209284637564846459397248715978758865226289548366918239502531475776690176086095936241161505497125335932239481885699688018586801672585233078110317746831581546681629618443939284679563577722996542816898393672792502233197269143068579661656262072409757489517667527369534019048333201383431684383869289263519030386822428770403411477023698661393319790324266734356886328132053588259867536731110057221049270678765256761228050921408648859139153531672784526898426167286732317103507265677291498540381116973116125383667898852376696755953478489244813432020674366448797215563229225879411369403300710175486186487120145770378729300915127544902446961650242919260732816988124984561581870921969292647394482309427913712702269782912137109817802128164530944828136638514883121386195907154706166171747033684218910382504033099455890750638431260187512381974773695284126854917922478535608318560134289427094159602668703697415302319530298334143202852651577845244097738296894672714583445282076398337528454020539311919635501608789622470456512548200708248231679736817451441230955659931336811667304116842221845477994280309619550332437147200049322659849119453639652595544975488055854696976543084403823955291021450059268216011192826022381933699587084797601898607954553792436283558377889138685031453051434950828974303068640480131629760872898932126512517838736928257031851526239498221320488982112102445517310264254512807290346382433228243682672067400490016968932656994856824272096805523961426773859874891316999291637063995755758523798019780555505290985999198997308922127698857498464776151613660557671908362594556184769425934945320962242028354250981688532912692190350118270018069184520996935942783753746184215606506551012160621390124468096511062269862210532503333412333735425206943633379967663386136392043910126055363350058397521020950752383106796955411346642316072898813518028327792343846333134031816106267955123803605153643762045374067948314947601635487343375252985878611339075552181101616836327040954155218876713765904573756504481425617663003478130178773955664386386655824528785014564048615524862717614180236311107315257218482139203112011667727276988951295256250752872016266304545802072375342428647203640361221629846200462694956614984963426495188762268498760380376132776600397597302279630075533089904815412353443327898357921444020723770885992844886410993376595780030433105831315906226574404493360119740034120281461886464017975094056073732289057206051167495675401764117537638152376101452322719291540375165156576711411446137214902890323534125448828121164684590650769192635789367767110915351838291763908308954356932966271712812093648285526101795526938151948411952997807963427616875427585698213367027731915088236310085548703312131569611627230620661621746169644078714038015406481018805220487369040110264746106259173745726040099756440422301878944736850573868507826190506291748016311837125594320818340761428590608978523647005133960061442494785963330432268867432562212371353424900160704454921232737237877614892095367291406920470260202032354477673802061394029594889548524908741652601609035462176115130310568280089780648309291631615274092717709228164986197307119113628364962778660362070717753923176761142087340405126191403574326927339984657304284491244324906915118276339771211977033679912398623530780568261669994584658115535906348511259347726430244755610149314104555355892339169059004516290908060971191315802919173204321415115606156628247450004517122332710010399798247946623337047817282673859825973162887977900036093405352656425972907346307105797299763471167079568540193106059445101343340545516187312941317962907088879252933928459517709203470873945433205615190548538045016769945991019667174846383885377616438829481744845112492879236821180295133878276191000703063146342594746005254151694104538198941853638667061085959333963932445294285602273560669768643951751811472281048646220604881022167841866782812202405448282981322572229394636844100668882145574486679060251556875568815423920281748672459450231981054021816449777197999692687753937768320914295611058609973335035654634097046178247845168104641890679614001097182454289243277579605197285326100742081136566657632923334834070341652457667792325416521171753912494972610163843797454114455980810423241496136728916978990480717540752689089149975237826730756742066709707746609605012040710408364523598149233009869311772764102795603812342844808084043408297333324924849584627082165499375283842413085838422548632166781129937400451869317135682833793776338922728047624716575234415255864725346763335156074566677017347917907697843126756585732132762454107044628732740509567701476447360050964338719599275426059579296882993910829413609919035338782402835345987213249883116826830286669727628526771789366691307922680050131803576770442198608578424776371416225065301167821656894960287839096900370040767708360642430521161895283039173897569405614608673954121598635072374385100627609056756123911426318101765345324581995257126349844278941012797840048449080674499854577301905583076764516420436317414985434284220051674558679987342812922506277241858145641199287207407778147270636775391128976533554515559659767206292581740993814197038893286877291852576513485764263274425647563505253664616557231037116437254974519337162344198471206290914270748375234972725569053451636464711695676538103884562747608441653601194682033202436788680361239348423915100666888258154989683826501024466809604977570218441453819823921702270012798806301061879532236316484992670530294364291670905222327170562488787905727465078461998942277967703010653852219200137470224693511730795378845111536330665612434749858355810732711149434758832209287831276514391202284824179180521505294293580575630547812925462597293038515327034982877910467201692359165859757400666656521964013932694235376720706883302199700599451375833797950595658732581953258775142296812843896882640377249093878284029794990488553651554222674863716538253303299775165327723892343417608697320034655795283476393904852486455249502536542976598709900256714432499405388514544020301880892333687531276073829446347630032726692692244477386064793435793409329561144725521534227178393281622887536218083550538988997503066197459385709450422985919101400748557885176794344124432342148677428198709851137223997270243747874616636716083270712173450756379985409173695348871818211431954141871582712581741540339640776708664800863442361747163122911321969010858774746277683007666838631392338135468223118746284956575812986483229342589747583804573802873827154011000217802089904729537991491873250829754424308378932814135218172924498857915273605234550358381622009367836194947899566595371353436501768337158687983093350439715148211195613065650415241054354608397118785102045729420617986033857156181373564331295789228576419526489356062888696267367046359081408030866314266962608577471617508618395345223826240178793691528248285885899885812041770233721169243509575586646337719594679128411651448000906497614460447774884005820284831046796416672715592929252385037865775456967979921951671739510558693202695238386010384847029654837025707501637660160306477924482819643012540881985859452380175288633482353026827773273483937804841216207685891723959405479309537957767774972174156484337110742908864434077436246008188772536290771988651290142678003597339111202824310450014347818602133201742317083186387089610719142278644249886683816271662703397621476834120290122209631126494071318241467885127889301388361228411621303863200255578713112576522821652003020838004221920974585404414243543212666255588368186437966295473618619286996543050303872303593652307223326012445974093560870558063692926165492394320770127456003411513131690212054459383245665772654823803464489618983145513783959505116410818181434056881050584655969914949794911957419793747677654727620433712856023438675637417193572196350408583740326079214475999249702858213852970904605105800956618533257012144927457428824658096367344409790235101396413958669866043180195029477542899338968754431996880282916732038035553095534121986324092173562604067047192032653202162004251794328094970599681543641569608854123770076785993135684616845345095623863296725475559789039015760170537694235264100299183407994638984603531663375343034124765663716568324128742740124152580943329461603525498613303157317722946944700146341728655445716114564379075644235242378646299065391698137557091055608061808165777799290085648499630642348708887275426798387513119162909921569179534108966797018454424026243460889589830839943460713572081478442408457820743569957190369898778295694431075167235687543014010931058652703689629763262383537952683679614951946863532611671480195771855334974402237594647929102318183429098583749261421846107334026091393516616971419662256151785591820113298520501955072281349894356181929685960780672652341119432156630826104293604405733862430067606842692123600747738419208372733469594404262704322567501707722577474936005248251065147873771366502655283400449694916617671375048562513342448543106014827963975139023256663254970604337695632462211171648385497307673657280690176618379375905824311469889696193845372048938482501325152128369588343951200391164447057571704706131652961903577641179045210630008856189633717146361164114906963676802096680161506148097960233261806693260202476815495621418865331028884598996190443976278534864813494856985659007337840073135841035416557290549294382480376825407579553236618550809906400248863257792612582136322353143294934677943363886402154850902613846594455101213117204464378060835798689733364617592327114336753548898879389168283289204520366689017934673048584773868322187147745031414112554026289006488677544319325930932710989960975358558690743797335566918958149577400459884697788346401707519112344525861920918476547366904339961587247934288307675822686744756319101775023911870783610476263704015180709364863179302597760972657373461075323545508266579448318134511166676308706427027712139078519673683253894748606772221208920511871404767736811127801752648671844344822548846448763248152335437202795099488750555681915257957630333980272502757657362176815932427901041640265609988535224591613814689638346767511688708174772224217346523807239422016102429465994815046186733024110961754504967253680723900475397739404674407465840756890355661635412904388004454976438774006497815084437773770355454918720350346007534377330751856366477837124265566038363701186348792123058726226526340469079287533918620505410539314683722221453855808532307023769796142094176423237719507160335250876460433758673423800780874067496319040342675234210545615066667561371547996761255533912262646233786667852035368167199834131173414752752854765577923271680231076071011471372498126157339466477497848827186177777486058202801280843617591485542696552193289749485118824338212105860888827792068180717008937276047591981299771876560988338077780915067626263363655150773460088677588331944990657307408156163573778588662278040532976152960573117604254389715392230600914585608751235871026561021097833811389877806061147424544505656564795129808294529629556362764571405351410016958646826531763670184704867372568905063184893289135472446896180190429526350888161792462678000479380703777786921109285653870815101187452042961060776812794081498264217080637930826502755898421289871485872395591736849341147456548543691833535287688477704372469765342567843081258833872243029391655473522932015816774953555880067734064980742237441348733493269765971635933910696817030454984127339962836549028694526789089810049262141690153216383101384746925251126255798269548186328729744577626546036814380367109210930640594319396730983265120379500568528425052365913249397156611816171142207892063553658980441090393592263457475506118659933703439158336772883199699690229774577732052508413106303055896678915271798678283921165252867329192290643234536944925446594667301960168960353451361352952580140376469275932897799052413976335006434528800655032405034852450849982396561490159689790475608671556168486795684058861216050136528789421348046362212790497750898136137543901235601283402334594068583094889929421810823315511522061742343933873194032551495403978628242975081933707114199719291479430687840485958552541246250438384327698862221684888024172355351364770167826576144548553468556283109599624159328830301151031069342118878745983866255023877795577814430007755449655641739898434759020572881560974493830800273009509816818191652933020620740578138537133331711369648989661617225492614794093346704909881099993273894387368696636136881353428529091308969080712805404923144191866335569543742879867451861225501053816962860434027933814424674219006812382509393179856267676184046463130612118769912691779169986446347553201948837489962718700528787604864423265875521966538667037508750210183991944251648726076991036859595607599776439671388127877099025331901410463241065857831164763119770270037797972104689309164484424792700385408357521635452277812974970517825651173197349232863251758681143301951588464845089777269386168508481237523273586610226133424133304297669527755254420499503996506255522567720767421518318642643550829020761235890658322142856251512886692798481023545890252672571449568438690506896170323223231549010429562382245077471456355815088427646505596954775052121252146878254631787462451481330750468823126123023785762468992162563809548894132853018065128684595604836748851816530433271843660776115526981525441752133457801728312278826905066411226763781499835778452261843347066468371553869195934418943103868443780722103331741230395808114461938695389427428898164943004649739297572371430846967733979595970746701928535412146673666891767779787908647104138600379102603659437892460369752530869909178881352897513092093301031682004267605534247552808563882672586919805383108668074491813358537641351514368080322122008145204066198999094125875345221025381805860954008719967537361179626646191997316944000926803603180784371583227599915440465813307925100571242098146848109352977204608988381766775957163029620904499792454145192702787259051927960936417075786150162713949819049098424294685977540806014277427792671161372933993520180023033402182677235162697529052609048147899175336273380783074958574047447456446165824505247033179638399670543688900757501362587073722457366320499891000693217154336952714226959233274844372447026795190647313839937523684175511522102781474165365040498661306634166356384398690461615290220955728640579459858642688970552720639028840422815888287011839736506225791399016017481342328603829737731501298418628312742791187175558583204225212712163293458699786300150710579411154625495023275231203864631995842021908369600721340109707981661997527984771413897372088519442561790913462037540727099557026450092834021417480954594199303905014794491024064186110009778382748518353644632414731525564138718120065014450192174450399132875286651978149078526800834801217896751380076715350122437529556948335023979301197255893958821697617758881810559067095410658166606549076755168978811994699090468152065209780236166843811470398295218622352442819389458781554054698213451957951817252242503031166305146513141797297988703504000847006962382120916924298790689631102224006718187742218336400604591038152344118264660593645494466606321242270537273572312893131177169706154640742545527328639753809617362592824079348725266595420326473989343733287071041019994355276496688860124868406068032968733355896603796429374376959773166329279285304171751987105870115859115757882992232080183923237369580279781211556901196408158311928726275671003488165866185913576757473967179576573449675971408162701365157869580412349115624230411597785534965706597659788020939119700078813975695887814736905829168384089431987814251161340480003982905451635968420211913403317841261962276802768178972959478594203255747825087907304329487193826354155219426036414920866043919859118460656886163123352639014345144428822470620830875749422823749389541588997541739167688595456875809958289900900009416248627660674872520987830926293507165585831473550728640245429613074583938319450382322865116231608947896046735847775657903100478268912914208505763656301116902309379192406060513312634501971371270047897958992582633723053753575347901709286683815455626568658156113667605122850681205514604240885279079617404134248835979694476614052060820985236970018958781268563673772249406141758846750411590666058782720590836459756467806240171709259066754737484779395180999111759012499914728070704167403132315061391721709145790291449640926841305827262506825064863538701377985841732353012103103035075007196026047899300792295825964955109577753197535094027766737047751046012230507744899641862369170321796820235444907869604069965173982230136006190659263198735397358190796597302869232677661064373844456292716295232172298751215157920871632991370523691009975117812289424028336098338081317976744127051971721885723757132137512082653702421818620289850652308991176912249248638633193789976351272833050800249151190749771116696989246553791009500227746453585602671246542839615165337330786672550650362220799997703507109290904392190291134378993682639183379544082344220286550032931389030568905028061249995699440778256371576347484970511958722624161778135205131744936686866756217466125478915869893445708196776220313163674351832836686874387004682420226731648780194144808601747037833962312968309330683049090374083070497896345009415285139950352496402556709140140153766368410891109308379224094603247898645006491556612107338739021850584654642681429143466688526953310130723880473769150263902343838770898637071983000646564088195121576057886307237915428157814228890788805093588661263934678594614770211664420070734608851261685183256270571916952282732658799675342377369852496059356838292974144106402634017531676352813992836197518493728122522576809666460360106067777373577833506466422926128330986481933772915946605524336744999714149450247474544002158848351265308190294617822507341437962348810492256036478225185584232295562205989158123777975612443355633500561455194332052157562059339730313545495236587629302287400167535376215841617752869189083939458851173992622227579237078684920446306403087578424328373183497932499040859251631945537090424217003580425762153278244225195421786396845493889519775517345200342246613239832679425516072435573048313172836049506146595256215032336571050921053302867340164215228333829138884535235448510799634758049787687129300910801173158391663716248457522586913219958360812738391763828498158155054327873434130287753400199712453595685471091372060340580218494052709691878320408316232335081428552097691522171840571797293905464518595821959805104525677991318106266957832226251615563874733519188722130054801590547567484912023731628160779636217255003701925604370218787496922045646694590642659600939384295498678397910769634269527402240097281094004913142135460913312144877379387791073114396553771809424930685651487702968956056446467067811908534538018642078680384934400191712496585609977839843989980934196265499889508770605949797392536319596562238332413195308593205347046241935252814587398156504266678355343262843408847678983828607219559910777171911091286208209289581092886620342343186403414525003951285447908384528197490732388867958318265512988974828076233690254865744705103443771052104479472258975991136756624242005783646466173922726171636779664639380535493294453418854481267627455035673380184934600918874369187220599926358799820576233874249240033795052958858658929291874246876229668406640589456834837926285466831481727976254755869924291423163546499922199594812632859685141952560298080552560911614075257713557926806179628001495862661665512018963249092882306587573385682155668471188790876891615385621668082524279995881630871502397429005535654958149108147668581473596217923787198404856138028619227476045899696838872882152791925589919283866926211326373452638603407433207325100751972315247761230536575045546070535703406851107994335471267876571356189887133752852448934017118324205955920138567132641769135603090602195814395249664573141292302289113277807513176346493703882476636534889704170117077064903610564071722595397832933261994840459422144438463595929554238454589053322783680104434503817968398244808175687841071067156811099156370809349980858407912846303367879716944010802039393281614013780831284994107045256308274812633162545459246726220206973115860490415082771222431533540667191812013655776722500225944801558133513863524677289399376006750675724774174988035181250433969142448867560207636082834611497416213350412031759391526009890333768492608059363118668541173959195579823931922279528654890109685918391471932907475352864169652313343886056291279200591913596086453350581862090717656405267026558747290257520900858267355691487805005048936151891307329512815673007035238405727544762449820395269971076493136194446922760462818925336811011112597240586854911730159635694799211370894205384072801706778237172507330951522391531510679923404309389396670070449769039374492578534155467365752639612338241289317126129394999758356258475953395685041962036257826561241888649121559044725617248155242573289984017859707472063008866848142371069806557133349092594013215378045327902951388630056450949953920210034005955292012466714939085189650870571733490214983137239934832927233953985255873418679886081275453664726800034640036464240789445660540175605287850161148029711564878276084643894935940717508284975363906761431477647887619045988355713480224608906536752209175269728765133801058511002167236875624900116647483465194593871439526157749543760463491661616474210995664892332521183290201234178807901007814381590833669092486027057619594428355959044460837850938234687157396154832959871194123723114614717045665300620487538385962965446295875336663103850326188395353239766632683535988358621650099187542604055625303549285625276745250491420125173519353116087347124283945745357949020727947056375708526448337539380709339270101142964095637769440978610814613621435553649551385161467308454098762422159118459476709939339172209044349750919285928102175625701434111127276007710250571762908818559549493360130377257214807418564339010236341892260668157668466642964783844089849462190811670843390140100867372365027191170294714300924782468072226290830314793681795066361029469894112345920309268290588039893972391345215618495929105655668685886866899045350103932790825102950720329173507755227445332721818348705007166651995578734245266405536539341246734681066241955405254398978668543398752493396984514275831483768130650676462957822360008984671464192182479955047584622805971782829895927966999809507116960869901838017701146546394413425815749413442040916572561209498278862480203770970574801299290497321986812595980536152231474520324131147601066380432472117404513999537159163923261763395272282557880488776479959256893817606952975510786637998710228211783232009795332605486135855963368411126177772832793151173951352145881685639323685365424518089399746229723823198145288527465021582714251720017215025078209279407001612976281052511173791789405421636499408184676835138242361833597348327432005236757346155482087342653482071428152505457238821453994331133311489957527556067877406081951911962352777335707425959587273935385502370912537026055547508813395776109855741603750129733884156661886281282605834570461486724026994775826924093074766127013102722910990552570660405769419645094772486399782767604267631776324041691742583165897028941637020521865350015206050843226445534221856067475826410329465893477464742445454893841167501135105493538654173251462423631232380156363003256932838567433994154455398863146860929982526789026294881000338173400905964734542892699189131899201097626417679743913414112578689915872908957700771890521437748582374594489100772363149326582724748521054334858374009108963556040336408579873841023648409670808747268930211659155923810614276682195221535008585473632541560716010250737722687534651013037255672688345923663868424485662847129320744447531334258459132955575937783206738978842144144324120017370306719656656646754498746914926839464274605093417731649787822647388075883871684498022346893981499539001176725410464265625840283661521569300077981590286458451167810185183541288629405673594873277810679722338960703827895426359700062925727761528250297441176331513237822724458132991956453131153582414502952934323620011255855462906391203373216757519390057630305466250940458804548949752416398556042500908186610873171799625072783475370412755314774806589469061484397109686489486092753575884207204602170428642664481445581185369565358578741106994523210022043414917734360074255999728250042756563407651510149409873546998334363606186808571258520917523388624332939562585447175122291570747308914234921520123425124053047427089440280676567766398518179884207466778024515085770403484198962712517356340341690533906700816818014416422453180538746122370201850076402043853648970113196171970496898285985402855800550793386186744363630851446498716419714314390141082959264670992146440993204143264202755204042802893593896868427882445543531772225902545818879285761441286655771765607184034977208173050416468382146797610522454849826537762233511156239116464737679287677118475177784003592076649870397598588667278231226452553140422488970408275384683486440877289687484259060174634045347454493032044046075567421928458882374970233844088156870620018644594179841359432239260983799565032913927991774695526018329191621252854277103348543525672457359303314873081510363960545887255094215853252015161629293516016274370923814556433184189913186113026811175675283037852682510621428512080375951947365566114035916688785021052704978237482756908593339621275248519008935307068091958479043584466366984914681829492376375277687340037025291841217891052324620422235232552207808434189292158837667446707402230983781552327830926560316039387573386212565004492258968369610395279410340065349023781061789507101869125192024640753559056870992478239067926852310449412580580794599101918389185712889565448808687087669149132614244891193638643866058512529397296243108677052435413208458746253334249831947826039268491403125584695655565336736064321122298319880033098329077771241599772349322352668010938119065737724516874617558043633762827396116788575036851551667661082000217223495333755270411822193169911186182676523439705292077604025939900009563265234064679904758845775119138494160322887526763388062564617834743742243540595235681245664361020189430650413817026130809491217740144501542456569405006804170078571406762014487071354266929598232490349377893973938733554142881247452578599762717008865046708017639898403732556107660343180710386376270516750635685435844948431079366395489010136458580821276087316929191078183213479702049773815621742692024101381782417029080042669397149610945953075929908140400277033722870106558611560935956911486195564874086786753064214800242924512701135727060395041571967313918460363053403965203857136366337862435281213747323960937023398427883112462118956180471879123066364459291874179411543460883755743293010105628647395793642063921870740453863713716629724856293043115331871132391389649503796456693364429219169574847801260438785198352583125314861910147006921991094691947155047112928059606088907975894783459007415863403331552231922048173722340907157943024165142458858569846241461323417078369142615775554425218327598680784766773977534623831710017860002557853361811713539819619164448344721396750053450445938310865815831063120239169844130098816500835203101957555856003121314566223019114668557469861561184290996857816763992480671509801560412428679416748750171796146080987771300446474470987546813231935158487513353538812867506278447202492529977722700622845097595695585401364231913057632830536732680474050561477021487920557463357239261770993720446601050265227009486652107094919949456547537407341445597027521693975964964117698035389087570236819278917291996689566436590775245488912639149640800184228074629287712545468660561747679460206743746287839471152165162622700828478417833080360294510013085103287883295386860950251483928971236121602938643368719232604344667865411481472468940614234947749504366308383921164809127894527555064695689191820114973742166932761298736935967710634598125052405498704265119802093303136266544133003391906023055613462129599329796855245736255815777005068151041110652713722886478346172814099791992849968299810983960951616100082310928441834175349632724916861427701889952618350536235385315256210843410372568104773964262100167834885230318543502086106442683900153629200104299428509777717467946613212500427362324882127450286595500908477016251040315256415728278547188860111157091502196281575276269400114879857952716525391297093716308539438437418033745068257117120611585550446355074592327950138092990948002802208017361161523212633038167796421229410477929227025409092382613203433272175495398430543104036233762126917533280613549048755039778832306549965260500875763338198963482786117244861096118837389091059413191787291389167733671886403437764928746418147799780031518546194585110377610529458559902163151718753904505865979777684777669505171988271683194641257269118654956401729523053846172668878743325334720372947803010657819391987272183551919484007498390076051713183322966262336205169380641997631773958661244379978757306344863068652856910097114782546699792477746176597173371561543108008116270060268653319831706518793653697891799825017936174278478018128966603035282790094163951216482325515556273728587309936787854482018009453886922423702215939390597828943900316444167734925356269702094221080490086172839539571669510643161570088142633752950222757091146243155481087693483085835351014665710001365600524713996692439770959406335462997620696835628040621478323432055673970167133181755563679923778910996251859467315861023303190873421510927568270669444325264512635081868238468968760563363576356861894219011109565378402299339316763322370342817842595661148060752360432117709473850234857861495201280415098891404714495679060712582948555192039908616630581323103625492178373325241162125915954556841685718158773114646768212634471336665889715104999529324583152783046875709436596274712351906067360289155327061262834555436147228093486590016137708687716960685787584542306825967603289261333726052367184685575068359354856719818172846603605601339585728899226634300526014477114610353273098776901076840544188440978107585015610459789688011799602619315040986580109281066395054563825803477207872470595292293289035519785974792952974886480947081077022716678023234409665231242476593643866526809138164653082131984448957439951647779627525853527594857820977156617199545660817511921478420851424399500691409560009641369003651588713822115262100487251094159128346812766266758601602105581162381211169358757921111610176255277313799094870091216622597673185628417321807521833179231340690027249065974505792357327978783919357126447921137586851237184249116522241050487114827437985736882100901527918057306381793164281199989350888626930711594748792189576248756154405780104900161649230306808044035855108082056724002307165655147721058856249475592577927798425583474211748040753796701172558602536273759675879287984151748316259072846661114085939813078099669493188837838981281634135909209138931917581609526703215430190940132304546863693789668096211792949183955742489138381864276435426981348562147345091163453274275791799185614656426800178525635232905477068465461982715918510961261618523030230109820413456634489184649144699134470892841636214848756500360402370091925253504305423706763600704014829139691490547737866507756963524177536101968880609590255685063042253268114883547342826556298936870954929658381788143345812583817370384208988336102804928742975410997925480647555459990302726586225756982153813411175350591625884570521786423778722581210304368275260361238016012081629675970267001956269281176550958903274421881748343894041905993431516792998966803687623351298258615705335138571366130724410404961545005734918525410782888531846960349508865484245309688091668754984272628800851373282156510899235216883024209554072208485426378342722969482105128485720157344366385032972080814502147702775970682262241276124681973974193415344351191435767863947024142373557051321533708056312795873058304003157552769864263842822834196467037535877047296807056889059479811559403228393051195238285267220802852354227041637192993465518604281939833552878866192428277861250993647003160035885788784332775633897497153390722715536695984933669583615587974912867070375639713206580322806913465176472062469026868640473321557259865036673631730100447790137474259327898682224969756906667582492562227861274312893979917419688104280026047957274983696332276234341550327336363991700494361927849509159870755048676676669996498930835717605469534395640777491013630613145208994509993843334318811996213626769134779857397823014405737654971877351090774147875605145878554139923280090949327086519589599318860501919630917462274738983396663740002018986818550334960318944904043595721091776900726651779356285292798968884293422642236184338664440546508443104755622252092204149474855566520854521558721199680233782971756111704793782490574319952586082376223149547094493248319665391519398584305464749222956241518669433048498243835489118184260889270501707600194939233949038875676876564473515191644766765570833877590377729214976090947871540268635602473066316628103179528453396018845601914185672244794762533978657418654680561945415171513448463440635235942566530152357808666760449059545660278838316408996339078503518159817488658654725216845537890533218718416693339331183955447712374985194601312112051219495537326091511604500661698167047468500660833836772406121718368045755147891445491183024304529255651143181601798663773449208193146389140146759460940006728305645043773860715321436059501772231475856093530025954278926442800875827894220498059916436099560002095467906210611729225822325370874865347411871919552398427269053159030602956286665113260340866711902473054943248283103870858296526062180514760054431283884786422776145665864399962407758170291125151088628476856993053064296115529359681972139019535331244397582726162312558736804091048514505398349629121690163864483897401456861557213632710778659236851462379618683558583346752939532405441500670497389746631618874722243260234378806729866688466958486922985898638588561824704918977272463658368419968078503078872303123083425108882433689265119949960294378203411061394276180955150919027295314952770583155096642276284310256551500737358110278020774431980627938008159535675890695773618836988492512788074505255889249498406583560977397874091092105114106079907947998027446130240594899457292900625925272934633757537295044335722455065037243521889099126442184944991839953078914263899281134808120709302315435032846336619418118296075653722449500619591745452351352910459360588280508436456138065263292017067095211405700357976922784112948134075424414089700552514534638352731551770161212491504680195877609155037671620541250811878784785661651853722581476061245617009624187200409328539443550544465057238624133136178473753050961237225371290980601470524935197840473419634220876927869582955879484999302136918830653644374221510543430832871842862207169210212878215811479690456565040983271016993990002865930511977748333356964314248783294741638649694584510942920080576450323143127754273239472893940920883066455179263847973516901787323166871556948538408549496592192872075532685780306164052869813344386218985713305725645813326816423942594211015207125704466088540936352088878317880583965775645060220876667909114848376359274637621046859490568658824432277919503394053808149172345239050081395203834840075623563449694212722520423854534165797776479755886885448323784174162062733955333376418916134722688595393571836336135646281905951693389496185092210413844264544864103591541809758334473309335101478003619556773671696407191188476016855507732106910047797604916311352899718576212510479832374661519857231158466361376593016851529580472171497391744134876439937675359242149755335887707653288978027975229521193597771950821871591800785997261226121818057920301769893838394393632881211059067382871625966538956786309078718571804067628017655797296830382110553983774336612262058374903720222515041518615209771763963244055966620084496718590795916187423977631302738351284688626384422018904253549426732855324403203213766889859215416911824923387515986667217060355852990739231887883000224458359297961821452485575976131505016735268028683902127935829477913720825257558727021891568159636997466602863963471711445067445488681662747064748820458046978559090151028283828767706908217766436831351300375496347488648276982100039108822816131829501777581909352779791073349264629255597616086712884334247230600075125745412010160984184244022421377996895014411035703520013878497266012734393112169753567900137298271450313879446407504230426642686879527026381413068048254624802220726852423403711546673980262012178728233650379840377181249847195549396994513436139170815878983691840207952027763377288914233159236462868614237326631200374967221543202026833858466363880010900694037226841559832430018331886981438041403862082510122726752602735106991247030885238208718230753443063892704456157086983228038686943342755219693378598667039263791574253998295515839943550806073648227126484804038754080487671398107054141927271627908733751522968275980282833234391689382084125369339535602998819491334714338909522865959519365919055566178748720605403988525616742234733157680990627126581516544568474206148307020377434562285029858256602405516806360911308138077540598529804661420193636008194475398703670837297488347489515873551599732764221086551182395374465624678685158841126617834824308077321839734987739510169211656013180160697186256170117220159843805891004831019873788283117297288945930385876245596311204513505849440161008609201193014994038051865115337245056448849555747560236602001185548173728341686777854094727356534672019913296168489305726688204513730679457837998955698754453848082993638572355440502203448732542731293454053235203376045531234786219164178156887147133347973638624408339378690447182213615337162461665003074129337824395185334935592925322374316447396245104167168235543384807999845791748891685099044583352658765288158976508451616719340517323205015095125809066692049286044579920020353828943691161232948232673874279375294522589838201293644065923577947409580038030113810514670240724995367485800940249783748812187156890257945971019578560913076730412875392678754192580408173026796281435588707666833180349100094767086929686982270014676936854272492723615405685687937618683150810544579043075605220476693080379134579878636470094764406377242997870851782933683064794618749473426693972186640036049528866714053313136819915151268944513294063419958939774356937064844648098205163375174688453607253325764351685926236674173522587270703078365886702160255067080026525833000682051320943532983701789875922181811866636288649333698720115805867576950555443996216902098399668229293307296286959346409455816655935664079164079052348498972778292446285115369714266705483751518279405023241661725079024858470300711145554108628240494202396544954810150921846342207093604760677517783007057179278151905775278552392603357921472740604240524630942019197822301053162465153628673233425539969976001588568592104228877614038515920072051914656280835986774635173457230304436655636222873207251102163413887425708716466282516509785327542510177663218875371379055646102957910466936287224032040457667725774863349660908452189463616410736139552173179898853192304231569080398537204496099129878673117683082823373483704413901809550007503237514532059196504592057992485184274589162939954653099385027840114444655907963024942764461134277311665594986093163543708068764256626598278757243970729006238522995113323493731272350414251282762640485068995872315541878565248343152954220835982996607004259336179798350290940538402863692311555690960222704066862609395104541648104135878477948517556120625454017875378759832671070307134625119198248030324631046211794817977696859453178554032310702046216654918043122285138556618895771164736432193899063557488487804390346980673797375378746060103541155109617221333565681447523354821007526149096628425566558508966990097243545807025085303454679409992359232275084223433317669107786106823076381687980915137731846015761167217181099461324643073107070558070485870584984357179480727032662205570157305930522127362228606086884872539540614039467362070436320958611192405604098210889353505050889496545255914251047758474376221029503305063878004238165087843870298465447216608222348846251144629415577175846360649291934151840192505353617452633947290507001121911174893490775472890353078797621018509078928980511660713296567917493080478031766499820479636352944463555088950591660399999342835369536587474766352555677600107403182198777576791286516120386666724174156977513856142013785048330854729271320879373820370501294619005896953507325489088819082900274793897192229389622284388281852369571051479650459431342358927484946158081880449423422550493467281970015763610509203840510235291351707254358317859600401224870783067154173214089416267997703652687217112974321513972359064864212202545968089729186058123867298389827617503601627228277057840413344481975359575066813693830232370199295636412546941562337513879002051222311198500834069770912001794463143821793822812744509153572995801654205019921576730517849311272635003184288194250397546706875650861306846535518456813534599376282328954271403695951545250479499788536278909493071633337120430086170887207074023510048304598866337884311872940714123324362957953685086825055378949695663472193167296219695279565092769351307350330343024450927719749249623542072435605157190677165249965319067946598752741082356406193322594561442533499777783059570924852148761421014028585121182678299353206315555105299105075085928533333871222044678614183369776181052583338145359123341886604970644576748175490858643072183975152810868042060540634435942641357175159794734308066278366310755308916008223844092140462060767372380877011662604869484120020047409186881443324909912461194601611165007309733297678772025378708813479448340061201765146478897636642022932525418047689548799439269280613682887489129419711555184480037540331766500556991717306534493292996431319559396775203854069136873682897372367062232201460386900118839653879553726973584873628759500637507974490851241672916318414361713854821431485606870459778890634622290080753741019028663300898878240530081422264002503656571236481074413651153090252375208100324471103215180406327791850762008627947274705796821459865033608834798013318222621374296903117858355056829206923836575030896410572698830443266066380646067525162435304347569413208276704671820317102680014459808874143817084045932399385384883780893619660646106895488964399739865695040992536166468218650425095550729799470868781145598714887304554662678321812452032435488046393366652285540491269385918094233166080554679964776611897163001703887750016283434172977404834344810266625370207527873900235578239757300474756440191698244510185649226869006645807422650837549343414909439565624853075860022794234613580350390931224268991238118106668054786512086915386975531183596934290173285877669983606944177474432769641305169279924511453581036339113037488918952036946858586877376590818405455637850977776076629601968959285298823853498173933774350868431324974141653844769698842866240760885897966663845936119231481321603051576408110963286392302361248687016755094359901108680086304531308222657840837714183671759679700458766164433314018307338493959266000672702416793572935200755647211755200882851154189021505897345286593718420740288655861939001724622337460336137017414796325835673772579975070537024518285683692034501020783064633072799439910370895006954837140569532561280916409691215373037520595570442022971147435723339246783611538062042194087128998412174303606041168688798200341311899924523929167568662187535217138929703832085369905608830331747600223781577637120500376973951369672078313765981321208169869411162161310751261068309555546390740530186053285249127409992939069831659915066089882230555764511423744307625887957241627608170490059481620456254633180518191703441343753520502673612079506014893884833910151588712768072187234296351419328722690306495003037967908892432592024155642003807146493336973878068062491633820707102694411834304963200755340300833740465617126878441386640204098508194599291720485458643238026843402070263682371183014298013011343449926219836867890882674117410322171883618927432264188034960553008515957322392983471525506833715750577697788771204883919961235181909842504930600845671720487126138929396760892232096839858346827796064456481411933662811422120127386962086708579167958099245111753288002665234333631461983021946729004581704874209075833012516174209225360968079408559891905598771030899121215750768587005198827308697971732389769062643180666972444991324103940479538158950412442507439162437464932335519009130580286294819962861555625814013688647631220815638416870925266194548355797734297633819218235870251428944276877971134601160016595083104533599515624963000515603563553844323844687262986756356169239435220441866974604738969788836198018807354923691453920827078509774799204619071951429898368388274125504318402167970150696666214715681844349533954437246481852851432186061698530930865575415945530462087454549894277951073419829773193226021955651068564619431433565483024739911753266460877006337576966094975051665563118396738625409496125146671218993995913405594881066955882677711479009854777973071158599119373958079862994829800461800385176344254498764473577695393926600414633075319963452058315935035495148073085464637748686225037300050789695263407819416709264374874188837900430813169054845603829340682926366429829161947276846704945527831144713681148802762590623271583004899525217074976751569243083695287261167956841980014538954089918735953109016176425577602343609942342493319260923702385728229838063285080361030540007431165772253760106570059986594302987492168371723417437878838068241109292667738169667400679393473922814654830075468526185236767887845435158880069852744462071313949434106159240187609491019783780280656597666628502721612039776552524528683131440050874174701498428603069619849205386871728936763021335967188098264101317998289652628909754317610988239108191743322199523288291741812884235224469231694075186861766229008262366719444072618693057042255928673481792263357292421991589765900852458376380622912873936676021764791717975424346677218013114559637965234693434087295604428190584401638974024525904442789349590316781581996301961590070515720538337796660049404040447245603810097021617509181721155384436418236155456321504826023991953792711836461234876230328027093218370774558441408003732715703715676286578208304925751321057077623372858978485462258193394551223118604473134156791174316065707183384074669742445003037385228467202301053021820760107364667314174680432200481652007174652348233547155173024686210232648872156613487059554282003046846854052110717849544643530217496299122930494920846366831324568299791282547306262727175528705904109160697189669954447330841373409517197369982408170716128976069931697769072273923483686823476162311562323853721227826655769246466843894928582470673880392007278288360230947236749944527628241154698637950006806579523515020395810126211107013661870388899589409182687889046606580122986999858837767339529530828437629632571284277144831717280228455481813098747269691233509818193732791686308983411656132739406496494117459527118998230174275036322734046502466790750323574598195522648530004557694648221575902951388176927255511200271320708525966307424859803323607951523941982583924871501334814898433534444419667134577382115672807612217569273597878896078633731938987592995928227774941383396371262724740532313878579219668520063212322241554873955305979709652080081235158465385316677889791042993524390825611212326593805596850540514609053114419752590474029571323487595391249884659944939926240363507768889673258202097982999487540233147653027361251308402448844684462259560982839550117902751682161000698999639872422648984850252961256407483780103335882413368490970150491295606490806238502214328592596354861335474831790444116329044448610851473738952480361133049268344712066791000266398455414452781353646776836982965209873284912406011793281185137337873960684883549174196932318235001800659136098147037949236209282221926323496644144747941314083969241349636152167590658429333019821046472718510511416554959161818866823313699735738653152658159663710580299028702079674175911581293428474019524650271514389127182603624096642763529156014034440103909016068007193365903839466511058498690977229144828992731242825153264264102226808963252223395080065792126412653843357625653463186538470209729513088032395638459951025730684040609395115470261226773373550780768853389159162636841271057308782009043649622948270324979403215290664016422669151970706920485647170413577237174247853805142005152692762147156915528974215261589429517060418280876908426638828391747206194842432846207796421741209248921994095845383251456026844091718041285520393219181010248897142272292426563817683451128735788580110663901750414619015439665549081825736603933623277415343304667926738295002071878462432031141913090224962480427140102339011729688201686875462873590599892848483883761316133149158339144599837152895244242152119834807776027948860266989228134588383622960405327448205467024329990219002109492536738367755484621983865885092732944176628951450016185286638934780018671449752253877528248212766544187853218101604482096946483132985420386319054548699192328453960569992862424534037339177373314268631358735482918900321309473067355834837349595078155055847856261206055559753326632990669186328561774412516862428182719228013306674708026906776355724907528424023075859046451819463350540912239132604501190529982405120000054136744376797642338405904068905464746405814846123548932128274348266368069625927517070900002755911034964269142558894623227773635967572974742773942406449310377814088735364529505087140525210542965300055055974565582294807705310822999523595125736790072396295988751154539684641936959811432875172174784901971369047529069291519375647864647940469205217650351607774243026167585852708148459314793200309833322013375259550265902069637530828392319004536876799169692038930384856031911352085427823503030739921121779211918628605834585317173559919508022527975649664503429691084413100772198970308799113523635695768741362349860266848846863151288305855196426968130757760128332539812630502933024824754707210279363847171318081227867318420428727429544950091568688827377627926472942838003502711422719875146719514071083857276521593661760109456125202052681265180690278521307218480353947519056161227247495841492818304650707023816703843628702834647610742464235296964956592803164038819288145552275432797245197497756571522501858073215021098886643861055253555239269571929594938909590996861728397013758703849700941918165355199951908684297476320472660775177700414346727584918154654989742583737087193743797345167490183556187492762331566121202282590083974424671295388327979956489119758413454243808580387031637572627971670777550729806444785900033726313984606296668196507315115018073978221536366347155434296529299534733850213211600305371144932501457678373668271485709901154124381688994834123439563237904250987253125401066949357492039162970287991997733483505694798608828950520081727971781824300011448127825656657372150030564833122457502807697084152750305674279292376353548195954899843797375182179696570323464314867461507560995891007382920213203516386837220476997120732957142645682092010471271101790273742212033441483444669406861607166001087987850185657117145844183023175259046908062056448082787701524086447530520564129082712496061167518002449184192896930215882026086572976157122778004201750867267110401584832635320200670748728424272490842698867273530287172290615370758557344722657549337013176844702645326649639144327427453215507758147661379133610946639077626533129377818203196834757700008031000167796617740843820620187684969802741733769103854323232089495150651609751469589863928676731642374705874076520109307048986239913917697117155349941649614782678534754353029586961010837350933945944906746791367894377794038159280319703730964600829089034107997722862348721617808760194147443423730891668430981838667941706686366861166603532511609513467964121926874294188906169380867663377983287436934233545154833466987824706187284050043737058834757746450719864754737436015633462225118286139883509626578223856183815006015171618116474864691839060360138548821746843171727272675740565935899452707016536718416885451484956216444833147350537683154969280746955952336578285102612069979907859981084664860958787755860542175438437414444666734531014411565113055482041863642820482140562174321053415811794516069003050015594167737248647452178457659165070451316754063442684980270177327621101978642418415688059532458029110637295607252513260226897339429305777909661128467751643027666198389618022518576164407765834326952492452228655777316641019399657016252397467441214211517191966051344224845635566823982531691976113750148216406860867967187348430609271613570628392201494796171215832311075685260828800777878411429928748486704258862322595465850364623974630680096567289345527319869585798804867446214556622889551482502094974896528246750404936574009243399511641967167782363079233646538405643014494927469484079499503394502454132146207272744223980834668197663169163295223530785849002259906812579857093384602759816433907995427969655988604505968445087358967092707801784535118208362826207435335545677295888352579574535544933558981938998935309483677712883319955816942167786026556021476110709131117611533325237228541085471079895172496807852804300176144847796525468790022484981778483674884702534707247599690894122386960143305716872603102837819202372609778704932495580780048010639138738610697370729327746226105109338459106340250702428709904418330037746113325852839816575055029877631878926463243707807226371993573236148712636882173897488728357870681961964727789029443366830882736613211881585609752455236050460020157576512366523866515402109302949548430327198618939431897135020307939752259308165431073077509919908313310261078244670445201577217279301837483742286023376426482166565917652396410867701623914931254857288471341546028779389217115226625496316188049097407403295213406894372488724798177606518507192452442397934620066634904402866284334082318253541120942668109520931123808239447585002929150600290466467947764389261273326265919756971738034513755202159591160078609969351963422359300212809178079399847724154830259043895155788906232395541984484540764605313816005649267596834816335748726386928278725297270473148034221672703162635800229842540691035593829557895136111127717583996256266754622260289904452251026583687993531988347966240556159753915365060892216662284811335089304067516089281423974776009035034937014107893911809748009977384361730335792500194438268978442595725301828758486512717342365294016858380195267697381279791174351515251512309744782582980376040879802408624366919442668732802498894407659884878064734929242219693920251941799642292229611589811972228605456930399549362623349713495578158985293516353893077114528688929310231434329246354366055931044859324001392680305123816507932665100463154845822410270172467345755629407240208677408744994584667448927478916534140212815815431011278801718357926331570070659130381115205623610411876498056675207705061281483499069911094513379933356264131366416435548934448091827411026144257394370545638857102389396151776238866492397615405457551775187288423453032740822887454681180010920768804014899003376923143522563096791057858704123830030009216271622987197746257395257689127157602453846489323734773422898891441244770432218976401646224398200912497680292804169974644896872676517867517622383756888377239772566231719959390533565916825830068836189784817380747580191621942947153788758335402565238816408650328665293687690809739673464002017105159719456240116449772429050413896876387716048975445042807932985017493580177088990281944263693272592374239931725205360207389195395075953571522259885030490401484028259394859426023195489083442144851759095574370044541802737163688122406837427614848652602670552194056790867765713880692636735497443721169871007784632156338162840513733438529048032103362878979686450589345967771860017911102875062183852903328747096164669894874627843191374267774729915266796339349336223826345395126310062461203188785619257772322048343244936993588156400671977731401151501449376556256496518943256350393533316866718941565001821661178953999159090258222154499627914226141331455961777515065942453779818733513645269723520146014407184347358679277223271468215115932703412637401368709781612787696896553290734437244350796566620068059167355895060909885310633186134390777454150800763660721507773910162188831074677073894753136384873370584032550687312208839097026489856991468681909259448363629622495563705939867255803943541633766026386675511123262902590186677910218408357252376678482383172057894297195955287168877899624219213735593595611577989467600133499188224142889632930126403956769582356622506688411451347969265590494922658514586845529879440919410791663371962644377666086027522548817988627611911040296340576214296752827709569506190574093556034787095563041118999471265793745531601096726688163129899961268495994513255531239730239024062793111759764241923893703476518146021067094168812988243352411246965113964163811534231555416605240392099173057341809446671599490912947090802152120233700588029627140136942969259896838749426965628613761443632425727482496352560311012611060876915636168837988685756040898946124449537231719543824382745241520235478149927401660763800385667234920730498618201080158189021486694620925602978076759975595148364860307992155117696497620545305754456075414919627648344551043495365045274857481431826668309153606079740425125003732702062693641675962405303276977422110337733906811835131386388093362963383686571904641862759347836966915136292108504895940836627753987196132250785263710836007687889508920941007467383047764095226770321697209866657828718822530775159936805050745347817581724875083202629532510751440947131650544385789061261432583169167290103267712015215035398469846709493232191743028411141657463316261670078763630063128047130566170517660989916748521823687954130965541690853554196166106791936541324986066831023841805321663387703026521526560372267191253247921991171688055095390159498118454955189252587050931409760843588909760499697186710697976537741181735435803291668246006411171117265441124331014364381891161622990848761779727215385938026470396579912641409436507998852343909544283012235911521404443423773336892312111333777558158177873026806907728251677423460758182124567677462351661846519188514556978940085150098812242038777732396238203513215498849815390549229133862732289663813677409136232173052990522069454627826954950190068651748054364469659938383715317902998116922959830942871072626074215879766758847311353167704000754098446291079550279061060435418506347512735258967201566930307834047785515689940888778611354979128062009499218755820961570293488924168029528924577198614050813195479586578375212169591698035032668403806868029281726923636785733731638655277376108151929580044838489843482625390797816790253805644573197021861763603832838148757580786874215870546108933352557368639170380167895766393118642772684536934897632759452778647628736704407847649495211819063214296984970629398396679622058074113852768250582396833901637910550305514450896932101357604544868714002516030813748979464064428310432089572929593793380229412142534680250647540747970750900380804580008021854308290567439461746671302525739757781680172157799880824765251120345392269972088260411707483593022337976412043948968306919858868272839190849745676879724203503640635123594722461389446268112424551767466916485594934770489051908927962564442643777008520395949526441062539845711834544046882815235668259558444360384729015844400420399083658262276931293139904680621158935551325907779481571323488756600193386986388083018138095980848278764500487591118564516573683743092502318666694478365027893530693985402675400063498747774769161999221042962016644505737616347428590383467542144066727576545964003395109669890601673070753511419980612427064016517643037601357946148422144952958322318058474654865405587663204651083004680498384337507454975566174516481226088319080258799100069976601425096098021816749704224847308897168120756213952740480864515729722711507218607292608653391445022447114851339512961488242220109960783076228626311566471826090057177454507277940854517866622056208658113986697281575412442076265882139925011955192459714172472424049550940866641933033107517266679718609502723662155829138321237305664812556637479721860107227170637414421065718165669235825606750581664711012943153821367895814302366900983697628335307123113275985260182647729824471060796429409868143277062775518898338042861025479284471563355064524713393371404903016521124155394218096364066104497868376842994680344608424233702552742125691756402948577970337625425792887670960649364930402270614128385254290138234702546055420311575594684546013292595135029444844796015868283096520900075342822666383405935933303586892850500266991810895766635583338085518530451483385964443299690174912798970643764702153789134073661336285461645156231291335996772826564472938133783539408697365456391532639448186909119145145592983861565502381516249723971607922382456787675335424226592410702447365168306259282951890005128012246411692244955187101731983246921900431499629253908224690598202231937176117885170648693717645148884863199131833802296638334447545839675148841058034501385722452728132575299927837149168302846585282373685677258931038450619505130771176223302346560926994044910709452067345936998070131360621800540701167142707393290736982528737460686305534674392342750961801480290377780584232232489725775503005890100259837392860884724905807115980517138508641147015402029696394718879451829729046605179026102474320371177491931746117976260158342503260812325954229976805671457490098537483620777691488190978105996583380023393423422953509089846032188013354236188925004606432046612621294883102652275821622653812311830880920168268002657258833184183111276674002079697905115288559202434243308657194333561729478668939809340834326073740368494422265710948655760912169539950291020257605911371466722081659871627614821024418521466409633131282890801348627516397218202447901069513815204071154159985147984426479504536015131849332158014375712970245089937361912912414101256862514241589013071396650347368490544049688947428179830462627972797547487712070325865317183194981700466507959682790060616429432928966274739386811877118084876906341837826836145144263258795090979203160288219409664520001127418277550693640245349707444256553676665746119069301062893671367501301545834285709446340063563088952389114512227371889207896442293190854555576174545107485980315422530843237451859165647369750976927573098384776318589921071414604122672320953653934206258197770846877501499892380553702591735456959103562600975654143952763429263558921491903680256079784940903081541414163986349767617483609695993263713217135509017273751760310043879564499982767794302013581494289328777511022839205095211341985380765805476231122171179065276527910112670243624092390240950817086772583081645017132146202851890673753637070669249778605348701282902062170952072344017046611440646412183489434196005993922994829350936080269697828243986983468072337308733500774711762562641843792645763075152495259641794554830290719631480696576289526021038887432090960166165022856247187941292924543796883567739403327158096046759793310132413208570531230848624572000486794279489078774390002934296772959042959696541531295409985703975798726162515104632528178156699551614503331392706920250962676755103004793533409152673171150894078399737933595807977308969410096019134581553099043616640249596103457721095458245649111633061058134042068199173861639070084628185252963247981880903552737086168919690589238081410891329526373105896351754698359562471022414585021420218562914304423697626312304399201001802960307406484835735210259144520795052666355421107490935992152336104328729564495956457004974929871997911124224043752852187376126675975562595218326188456867083575615886113942452942164802313553208841943249408625101656058254309653549856676695293951193571888592336752161289811657487975769813249797909163837362616300673762577507597091090147528625243552372922809128477208944444764095414809804398025015811316279658221067423566606264047200492273703876041798180120312567250981832609698778517315266310741186146805559303258349184154363747791537856245226450867862663842043078264744682975848003854979567263023466359445334408993684090391152705584772938275971563889150129246626689758830502525163559487841166260320863081991931108888582062645516497216989019911711541732474133313763580552723611855116714640382860687273487787989683994298196221852575011556627589060478193845805988757777352473671933188573642238084238587508305969247824373725764729257052787822432749648477973349963298993917969711951120209568210270244876804331996547388500185682692846741894532853838223516681010164514868146006729175892212146949454018515634129721235630965890399037097946952166048000466331504577391256539153680264193622913259223607015211492467724452441469045264479136702526586630168499247251391264632145290284540279623040904213650580329418716210990268119495998461632450950901488351006685697386316865407732286412972388000250748213678382742972263581451453909175213296248696856081861995214008544649626648473315144069691547861685733264809063291423259218198497012496754042429259556588527836542304903143043596841692646943818966262885946567487726564715796444348226598740467096177936877844435155654137577148351497892455927298232415430299742458596106090123336354585932190221627145781435992747384071889973387698389902460040963851218604223262874871394943719703538485431166420404353297976303464901493030302875255602236102277125863587678791903155167137480870254633908835870881085444748319927315674841898971804510352273764370519090391098345168979959898303860030374381197441471270510466949918456133026784987508541031382381560061482927736855220183093726126084875758812457696012420984958890175893430192871013062859904172214378146431393796184439927931879886911491802375382823260563549839741112408635701045567784268503306117898090036344848125154958729587541636205699756061358999074210780502589839884673289636760989017429006237383703634371602988237076158712448095783913236341912877878683575217912887537908916795051637853581899026693895922696473347450185852120173534914182934147530693255570420382805120620857030916433764355822014106659359893019312503980527358454719252973460820550894115673131026174667684540839802947505997621215731825823528553846113798185005789419179661603067485562840074218199344301497758980940045340871118708603656739243369041972315532370366257123565782836987422735808375142212606378432964751613101767801147610935163141746073964837457663295535565044626661743316338134355816224655154919677821756855133302954871302764279238280722447974896376079844246070308017233722837732922532624204743113327486906876539498577559416183048557516418314311759584719142783787538607083577995481143898429394447609875461985456038545312125250634577276519726514159065190967701967470607098354849024518320161556825411687389018464238068286638520956983544971553975523233136960560996439887229824386631392202414533292724555653667221855125657446207475159294142227312289767424047080347410205447833251087024718212014372045488212136118176779835099063294470388367792394858060946707853410468562360696241089399489455005748740024302079943030690500415600686992955424025465566473830813089256387077646291041124472390130257791037932075239930438760298545143316281486090348174274347013656425135277881994699787264888811035779934369458655332456639135644441269664687226800356527898501178640539713766481852645168964960160902730219294816994808334640426797065913443192736146435172660216900768679547044918118167706817786870482920819885650233570621081671296011087517835403699549908007470795295182151171134946265516032792753403880915560003876676044092256350498291992703743474376222783984862982929411613699227986088598743617753271409891253560036801541922175338417076683862915065510034317654090054363083014509380479980014209089489319352326795566298344954364354430394193419938551989189976149832396666222898274181138873165473736282712370676981479453159091044893487427760533379594295267106079420555750458488842662195509266801339481598554574404552147821858501427494711983796647744052263339579472492855338185708660499607320342464179116973310954498407203427885313080785599965415174415905190550314004489323787324352791982714837910900730430347383505310383629936071916209863408975907319725343599081672424522521534876128504235247020014814753620444449887487378759549388556940458590141096949207369234539459683300942267321256844897266421750202029676068113336579159839827910911898677877381025448193982810065926792653811305431113374914373093397203149894839104512186965688247479941230626261234900965026310181044770350933816259340724716390844859230038698652148082194000423067629067073447403623445742279900436999458555185576247950605384128264161804301044910315977870860100345343356880971925269052075196059747789607673462360576362747708190798395773122732474612882128854890733049132604945743059154845125380397957674171456574456193422621898291097885914024229082845840310094401310714435039633476864140471040432801778624995679911146066884150957804052863494219206595406314495082045285793568200721084050419781898170372897489268176551178548293083407813155203374589280114959519343217721771240284920360100944953228292924510747714742439552302148175280470929817605660028536166390613586359576043676546663830821217728889786594938655356979254601767525469734759328477628587137694451186741856036263997281531811973803655639458651180362378792226368785668723149749093347268593501024231958542650359929017673533851112583688908484530455811605045319434934721914463561170519038207006303892101394151857962521555019608559129924906352929328679799263439332701752099409964112687881736420167207556707076535161321049527102766262004235033719275255673009427627372738224109287793516553852213344650360378079060244297825718235722707569990589849663135167461759196151883376025411727959049180932580940065775018861848238904568456987070679366230357212967883641553694762556316755547608213154002031999919582107565082678624798862800522248416740801913040972295318220568016744306949001935985022577014655316375592632916577753201806212084542565646300134107800741693261285881507869836106351626154944628621691085558620054632380492194655644952550684928963607483501534045359767850924537268157261426647140559253666457271436856302896012535155869107597924280377080629350516146804010585426371182489853902838587169845932089096294696841612989136158329291140633637755008192983786869876707181632335330488891923447528337035788258161483053461011822452678760548881783226706819850321619203812116663150246974529729023266361284988164918545619380816458722830440688893641913045472157047147801471121120785977511524209300282147006142047915000759363829035822643672808325581403410665949311942033156677527236703840971506804108876566829772938328291758308211719820488827027338109783365571406694041517180773531936897795918624010403476871054198310020421473362714637384055511708660741652360457796256940611916829231654525181756983781780644508828312385038316017131568799648603975215818345866706871098443183857409183268435660548777393675502722353007077169345537670199899946211827260209844605554687742223030974484126903793010629791680920229483467699415829502016114731672497265258678396626658497051651539258557943605722328227601021445176605455780816926380237282878278467029367840206650075923171857623589880438726110253789670973785232854045288632821702747108010508262726319392750202418676120880053702754148782809923602214940138595495043289734336000601045631059150623235668288769303516836939799931406382355494056171460879944364394454984837731384501522962291499614837491600763548176911692147403287922058171435364641562972707618268385067540639308108128515105355973703612467011910704381150465873780543280442273797083754975240617488394343659604559935710081076147278707267615924133904751452195603868085935373622130220277372031364794223790265239479566979469598714753084841919889673110401479660358191634015863132587573737708769022509892301553000906474037350833623680167704230884032528034830776098237771786798780215290023799860445998999408751950406429005470699557392695207561673172888421283309052268726398322104299166367788930056441214799444111222510642753782322416253509750172223199951743988780719547657697797705450793719635207497879930402944904707828130365447611429575696512228219281272816587597445520842031539296400481608532233500644286533375445799066232169446036075115767624593846371041429601058092395140612295989528472257151230171778463710619564602704065794084987746183776925642546379820315348223524339656189911463380736707659192573740386634536760860351224078041463155482081945231681000513183257083424420660134012076999705824299891620950698723548330701149920980952356982179951693868507182253360905051008720744260834562460351128388894211779337693069978474676001639196313234340300227478679354325391645372069757812972958040181110638092621281648887116184931820328070059086727595980884236752216071546684949864195233331662042187096574553625855632790357511306499518799765249732600069893108080871840167302472690288826390506543147860743735971481311412014137436778440694494686145130134748350797011492406971831666268651387731040865696425855527105674687474109189175571245218143845132998154810003841245870392001912940711157714319510500977468948995203232727764335766988881301190005882744543636374533907923063902945426173362499602866026108042862639697849690951533172710828412374193948443198233343115200778947600380452982484123356100532859232656789614105202415040987085195536514549411208154994165634982321267504159998030506952334644746348290241797799410961484859985319070764550227035640816487432991796502875410417913687886461817303148799924724807926586635731021963712461208504159631660985418593513328048073564799466306242337410759550381921678522790085355557503343690421576689883726321775035087630401038967912358780128415619120352248219064659017530517343940400355888527325528845193191393038660070425694027938387978912048328525762960356130942696600470709519001351984080725530248269379071357667632941274998734398637182715810358113623429571242972458493285072956777779165855772635649506919086276003899500005690785788199914414558399511441966432148440577511762637768372150106432973145123701841210319771194643145258953981371900934285100716771993066747735485614894312243957081273836953840019731238382386553385293450302899434203996073339141840030797507000215185760091316273729221805589532950564078253886083926089149386053724727224948634053295432480705000544178703323198163140225550190096647613248871207108679664093593495383581893856629349593813739600864131395614398873004955923452169760230999028289280649912155117774428326230750665688675698162811805072730146472387653151312184037773090654582539841041773347689985279091507608473610931628327416909358855199427867300939775359088512883889954716459402648333101806813937506007794354897814921972772806983972535258621402953032075213650998511675712573492212576529740058312743737935355111312282615297480167132524463548761048475532405555330887782061541433331220320794869959068985182690774178470870124397577013093844632405767103680574714531405294995920388010787815908860875098512957115821475856894435245271363147946759714486455615518630706196201226979338877593709412574891297313838084343981056774512465214101465809724316353914563803592954478477796367158783711468394733525059153355462601368574579577187983886351546025136136291207488426603055818610960980983242938855833657692434100935223960662934041114751873746361502513895574708093156038396536990755001405622818106309699704913191459457671144121328285964810222254536290114570687877390467516279682485047256699883961760634366696973104681592195938216888859614214240880251192061337746318630155600791093159091134135648245349025105660595910077406015198719892996400123480398832009364353644569936372015775879640928688236424470963379390282634142431018622145076555864517110590418753190552838117081456132439841479392289713695593363517216817728554225872931401145512605502113812379080865118418679802338006589602193092021818443420093670256625213150278171797523294266129914655320582770740809601723669453720221876443488262997644024197616190905905031527888841327739191675302489086862157122458259946227485886577539200568701134042910054081922089141385679297411218845507148977528148651783035155232127928048645209235243802196469199151251444547036132777434331613173585231089962668532051453971844124367831085655570322791122050269850917588366911313124008510925986172831042852597646369545712211429054440812674949461222798254253282128505757090640100279051162269226603067719588262703098153705822622138770114855378825142412614214929247135942225317702411161710656501139372820004674714904555816905601058382135006759886770539939051380837932775958705190039824771621192245455708578361724007231358473070406485122832005928074786887810763200190818607053302086406972988023513265134345101586708143730202642165055932810195331899405552640694865800857897043076531354949955540616344640477654789868809831188140464718795913303825180190451920867729612597653466768602869679654796008464122808661264025382150028758230782122832491224430511834958568644021886358327894710412036727488730139246868465838346522750890167963289285518865262066232281842992860806671706562442792739046228159274817664265734156544092734397884215649348622394665664152967746044675404988526002490183976929821623343112110502581241535334294379737533502264876050558329606493089414773236662391766323624070194673232366497997982008904004832449439731527536698023044079156164598493191596666186482704659655898612747072968100554097977644335442791557131742067771374545691124070747866188026703028215960457295164878428785482021387864187158160527291789271851808447878468613734585618945591179492037036028607869841631624797790510037443725418369178145748238644815360769843288428959181315989240288760157942431119009178575664748934370756674796942322800275881189660560444032431824782037727442753011043002679178264482956026726829471202338469122983620750411523043003709309808629575380300441583161806487343426937405319590644836146330109311255223454662063788118788528749136026045229122969167739252193068640616563938086231389089742747010429196554690712415260298031116593860551903541386911374700534128914032326656875046621644214011563201327370158721920979369164771159997719532096070225473776867744504957709083842307726098811894737008583001661524922070761466410954345573637561230200506687802507207643175443248638144602301325795082332104616575714535997564455928364017708482344928643972919915533688047796910908154557214502389468646654591292015752321535017294710582046148820373014634760693778125260470121276109126231982257023071991388892956386654432406336850372976750891158972964712962172899508739921298444435226877501479816101485912315350158707447980221254911289453834735084508560626292683267673019105455656931311419709966417411293606691925813659032481594648695850859125807911117442216387464148476398996483712555565638761722905108714140866725285310291976571077945880518753155776757033963761578244433486072856212342661744284335798532004424077426472557724995411542156661284931225563597387214487784161669536859513721527285358326489644373255202622022275947873624330765094840424785547475012245351510413210438656287428308599307464238095235596176473767934795818168689185674378170254234127013502245460548740701569296863764961038368945988686676470866628072888790349284656729461434346881278970249089735821431989168320681310666130088091706250766479478176889268789787675313667693640140439417062985681360980054740433203617735466948006571377902431555459855167134539608587432021622638616734242772351715322666927529390984913949056961363007767323601583921450686724546556910673656161993956713965734813192876889136115804415155058229284147224736108419182659970761490791116148167641848534704766375217123952503667816891084797251218055892529785567988392734779603517230203104650659555536098631292509352423571601303654454740617289555863290886700337104959141478055789485932368715245953523768605230549941680228977063910001149135405968642555349680523530643111308832512602861110736297780537949195068684755628582599438817846260793315875091399841776919745745020396581858842173437626410203571018225010605722063386077970822133970342317820838270199355647838515598434288779629064217612256389758394674573885498334258144368742587456431224519834333555754435890943170851702262262215373646315609588670008220918911636986429706235602308282369162023959909460430588535245435691809818142466099418619709655548933490743591170882083247260817704425643964490497880793862392684548342209553955889831506077091183525049659624427346743953761724949337523135674858519921223691078825817547937046285242765602493870292512716304958297675941860734997394630481237250656988787157538884319799522470541592704374878202460832326508991096682835719109590191090381078644933797933383520772621046231048956996672307889644758409547616936483591404737921358086972191959958440741450886145163149590674137013049454350513924663065908687374019178530699645515481506877876666172258562280913774174730930392174321401305698324457555602784284877883220259483616792046888941191097099389430483521699839196850474712817510794576596761924080652322192322938263407096469910721194825344830606620294267060462100202051024079974252636033590765527408209178819209954849295313755550151836619930488132964189010748152510119921114425731523079835246238141692205363817277585602764034242280241805361939261016538213163250494387649433103330597669379568939140349083766259088487862506993337159504589977564695211059492129563339623279883955456331149723750100203004321256759151920635906927290300561871064511558623141905034201130675242201371878366283804010650280597582838524064911201349479312196349024494982626682035016895403298512711567588290387452366043035880649644351628245456040481376459674329010658896313735001138446201308109573026754977388873211159414805494304800371238424571026984084300693837650728616160570796868704872474673757858735171117689712451827679190349064735241716279861489212574544577428976354217188188631018681777738309731301574432021040721303677323814787944145778927761578202902607136948109031733179761654353000362824764398258052815020822452126472202514107530139153721227101857991119683181998654660615361327266693753754946873280150960747515379742185223621515021765398343230737243244937209299372563627680029710910436627351311511600790921668591880755023374859923168789882504262653005467792474516164463759740279416373385915162611002867213359420807010800742003242512170247105439120768242755736581747079855788306475890938676307213402408332784057902017286661902215284572673542215360290597352020487346378728947028046960028919815088592341496678705745831374646105258534677165949096155772125833750112895381031933280311028181351767587098700686430731336517870583893101809500118878135507321474723676246093261392351193715055758205001444172852916779502939282167429006515114452903358553877824716320536901771376147309194903352031809344266495603452653963011601909321505256986866631039774313267822532455766078819062464799385207059473735031688581789044030940123803040006023565787412193124077782112292987194542652071509416760927350080169193271474280112081662407372313582613253813559719385587693240943940604253463157176804894368409599261892382152301547502706425437967670223864352266238886835465843809015954020601907625633240149632439643698699510529249680397189971436796444883903712423508614054566060361279683871486241236405098154401804544077159640969039338779346550222683299977492597157061271135059893111027943022713077534872450649001177183576947119170981972165434176893987187939020446934833066681218136742277313865411050231920994438585512513887133628893057445789594350417513365205999500175807932135061861123336140350468373737581247525760987692369306445975659441530768682846534280163525562255317990719558268406831702650506341580596294224385941300555582380954582694057420585973921664109182332272216134389873686642019024338587635322738129532234312251457461019461218829110227619688843456501106607618542790004943573449856399778366895552011231383481813428277730818164050415510168177689076174267060742881262585054899242021169663016050615645702198974738775668483108470681867749340926292116099488274734440481618610956210336865469139452992828369238078779710864029694185468237653712794493004448320733562130518247676616272260942452054820414934921973567424827811375120430461719485457969960634425826949256630302467125421342934377361292886245597611178136363595899966124524089162520172565089866245693172805926312844600676980095278182119856599953928350716903376124553296522751472712896616682355608685983079764828922521957196852030996215687834644548945822808881894050961637431114099339911673857052555028578368884465493999082796404350742965244791400183014288988381654952725186254488272004689679984127493887196476229851983847020273300052252378489305417429548440547831941047190941929962197413816571570830508378671131270072032532592030659535297194389358798228623049753646486729638934934937478530857846580518998581714280261949089801772484526289651666181304131837475900750368389027953568769943253311314786414365276708149084570298246227138700562066784174969025644849960783803916565379511960265013970048192280978325872253415736914056024886898412829708506004460667740517902146331897130954387884228288194132619987235659840358213493967353604820673206095441001418275704126165111472214905561975586145912536432866338538569905284389742775445315819042322050243828728995571453732582955541959560411193224745601206672336371163992611375688431332427568143931769077830807812487126617761600138146015500702389235405011570431545454147216967501955655886824028100110538222992319990938965598143614828407527774226726824807761435461706242012889938171083346725241047978404443543576066620793791043160879118664612585641738528063843029786421948855429277730044948470777588354242884710578244829726620660273528560619034077892775071681688869627406194641303598011491813125959074484707937486770706766339314851414457942077050392804385046576978646790673864865414187926083177031899550697305089688282779530543557529256052419867488021788243703843594905797762599050658193062215103859965102767150026204101172155969216170917505278919250936146864687013842536261208707809322137617417283589885823594497018820429162954127779629035540727901951788643201424157944026951018533724755047314355526338759219992041971998203441671313283060936192617136640910976954822838357422808119793438485610142456896186061065675698129452354920177617952977959366331292896125815620799143696690295426794701459261052891321871806466942266432172947710164824836326540490443899981689570656801858718305215016509558962061141976031587913835509689726722261102686936260232546129388130920469261060216489357721958599674356056907148121861504522762098464621414621932040182738647301184640462481291497179855906199407735170268841110353700567878137578208254696755233446918165402198932880805510037668468631287772881195987057408971291635814731057035484827432731099566513706290685461221310288208191963118805271633162196060660164440363038232700120691885791755526501963461938135022753570918289153150917434559553152923698508182844661773247359016668175506383701251724999312749290717811507143330977629743802156515953172643235228381024679469142589278250264786283499869524914950524238624865017055521582519547662844066506042768851739082799201461083490498060555477098393983489481999793893146521773190449171548883082827375758131600612485387493248249979418162873516080448769137271101131741179756586212444189119680513761648436769187984431255720458379107899526175984084269640398372900920433213329057938829249834708687882786016411179450426230034773676745203300664850198243020807397814449943160097637806492819414177903924870302449220779401682169488666656394012035482663398600485417432728967276169403269489811465462004428937362167724544838407379816706977713175471374644969186132367741074478645194574326796800263090265516879144209885200494714969942684940633927109468626724384212415836774484645790359894160916856658327647831155240019167917860804900746042696331737092413348225106343757474339130148024567211072059861598869257157807477209379980106335783726689754961810259830248851502189637848101817217841992787251646173992696144829949195840702167872898688760945086465125691122751605443293406469170275364959664591192510365150319340238986811581262133594800769654234893270762846653956959614493521770773115331701488371225135626484831879891134339731613651393909091425124449118522495642143146057807004627610075695291254275751459663277495288801452531672261752548730561647320667018590243138418084697417741235755894439054625725747972356218832346748156286395550332333246198230027161815454433335772845082252901104929318679462574520562184726299426268145120391129233865868989819537230455523102123730963729083555596670934439250924783905708089756182141003471357788591743303027500928632523898604391634602187212971791486445766892238993188329327368825775020370041099434418401788614784698355461625823833876817571975402599537110619944766943624048635148176443401673945575699176944468995806865083584282008141903105643533537494641628661099689113388753569109025698058546689013308157913464518281051182718674169236493992481757023815688282059492774956956926337314077615896190481182656979958666014864567585320508763045196866679280090296605774932861823153681446680795943509411071087464670690916643952424093849207578900228427871208301810879398350667871036560486305653446018408687514266179183483716962333424187877291480234875856161807273281409860881151355563608078460126811102936802819234676283440869266137903028714986823314554112547689896261551652806329258601522754375490737274185308829367276823471924096374394836875485505306308109334707275285821996246364193719091208098095627026479136397215587867296142265765287053977708856051644959755425176819140732500753206524608949379314517050574654154660235126611912422344969057253951108433071900161854030836261884712568607038446462985940987257136348387166724714936623990470691662607878475438942048873073431684193550939792689630403398661333845214513972506130573324672550318644987947183590715204047151425251526533350950124778146306946850107565344926832500787380826678189511568728970179779557361243823756567115071517034891992954131232536116532759121509611015893939966585720051906939574103628699210472427431837118938173574974034525435460829942933565850671908962002143939313609925054241387123657992761067993585264303209566558643118847909752822435431015962778759125131668943167270252204528861559132620054302628734201021161077524946178227940191087310154048291604500137595001618212672743976405331366685105627396329899407068411067051392863032957884412918849060505118156029024513656386582241987676517543429088853604854488930645784026633014221038215796290312663015012115249582366467891994092261261737159070838570153318107418206428915389309398166628491583020621063635371377329645173100838965353225151047159451361889619534822985034972454823874158040102956446563931215509899382494898050107726976860504697516011016017214276548430418232875177877136601014510134668801124090701266857021902279563825674881300973453127414610322908294426147677310322818818487836704469282268218117098515523636256140400940501610078841946305024110241246067823432751800928630408567120726801807268520338836828604663981365311466397829729866615023059527222775854805518078764852572656089163278602162343009562597866167278552196870246297201806576889865275775229940134582764114198532229736445181103580722356760645477031880336424129500385240508414098367981285172876943709470083612126856212459177452542608490819157257562844017492131143164317351998205136430634441728330826788006797956595099748924595343942854108397932944889487795455114960799698659496826220985124294634083788999883365281156431713280659594023023574892308090970301528228252242218631955107008502669877671538451974676447158042870262781384490659105220628185450863606725729225812774474230084663739622049229039837981299058333955130686089962643626919893959921880828409687096495413431275451194510920787798436304732827479283678281258175914004605083833568324935586472955231028742492922675298460559213122067400719024504594230926214686876437619403028471968414388635343408825323007449748647665317698955478382552193549047010368920752596912457399372890895191644377240135032692205021448125084324794575029074742336962475299967961967476070018097715491463544712630792788293820079632699099861516147053505940178865058885788474609914088452879487820110239483873691575354789556787526408989790576415472908667496740662718207004311055516566723236306040632211313822298560463166192293353281296923683233188227113137374633137143531447587320508921772912844217288844696804493047518806628101773007993855293010814576227718567970150564062103959218584925567065026471007741055610136759343856644525935011465597205083715505688232296143902160095243777987585533929513681653410259441073836629258740186117409975978795075214329423417445783368899832321610427301580724664010973354544129353351337853854501349500421672534839738521428237105621160103766293001697144179142275779423103197570433037984831580732675592911432791655156689311301320619201557998371206478877695434589728511920945340421799759923626628860679475863296530822045425007660479536177654965871090395545842215820506384504682182762010012385883053938965263624969846001722122961504704594891258065422311565157174927703043505402732233284115182860852051727328179766912374088940397833475690262692738836685006355010185640039362072214828158331587067501698021185955476229338636023195425275718059897217422583308672335250461971476365854028209694457851947360149559025261096401422732646236723331835859202229695281534988452725227449699240620403934924972812195233927204919519769091708953650216870059714551126740688073210757469860187579296019870142323625166691354787534448651608814118517830781384669354849327782186648990125942857811321570530484558877226357633581647821462208431496697077039891465149251052590478711528423952103818187382922394261171178019839648635638190568246329106802649288000353162290547325574937075391929834411069144451628995955073462418019498690433931114219261234098681677055618944934614719470747076975556248460063113813631670191823072242002894513174735724650401167357348968494858972040244244599951761025700540667095102892216459409169152966566422691554429436477314905581320940295692390536291143299493767484201305000678979912833713712084271456169197202083323379757607789943003434369214651042501681942749013350579890006941330975698399897025739681465810862827605106007478420313080303715353492109704156368109005495422488154097982558874954001125257217851367518888554803100663644774476135595738657974185043330886560660512718571191396420351107211291737147771038309563762287254034988743179719966823823992125665058908981454560205063611178911736122439908490446405025939579022792783424725867115903617651957424144478181291899775698572663462978614387126084631778502921239910219093454939310388710549259328725053737501891019348984495377345674611013837090018426237707472009730461514001587215884490314219332168518518501835086822779208300292953686842328807347471252169739526850878159210543721092998986988745648339696497601044982340223524446635974742291015742026889989234116923380493713096318407300815370843315165598584518874627791464438106638243382020134650431303983813359784884455394946272606117631163019816375467182504456076893882299533933653076169101282685088686102644617851742468141409617848391708077458867043286373474383421380316907735447522429049883689061542668635867353383289655021485768240745033197558812232838032624399716506308803555105414556691115703015149973409072464268206265528415488917412597078257914047441330700012676457611406528718586210955712227457148683457939490581808413735375762412360230465065240393910343664239717364616288355968902084832878769739682650181455277023610927321867343387830209393329833517089828325079108927723287056314900362649151769484992727626000276778624910372197578905821085001920039083909637627767275668459759024107043103898340629299476809003427579297415803140430888114703658657928720227456469566576578862208180735828277846740619619075529436849182560228183700288478671861624689858985947342630066414074922863711022831450455470943103106794866183465024132640905802360517233452869632496518343310767848312507532040402668283595934208807639541430806379162769611562593265528661327364237089746736766164930977634106826652426807108920589912645692281783227903070728841245475182097297583517753814127118128917449180306682305006827390488947588678362832437437667819979591784083748270540672136421408178160449457873274271526314405972474596930037002609762289955421311156796678961307006678776179828141435124724115899766299491486630682217069172083430179021189314138345366311459142359415995135090820453438809434278469718350645210562359852417402347257461414391388052245956393664579584177168920221498328799529480554410090788481613833653136751088832315231333297388456472175635296844193362314488428803725991638148579113975213588075747919304770771416137851548787424448080533260442084652510262433940970106787939538232307045935357891621738773117720272688784513037325871706345014075899638120193471966837948800300789548023164371791995132574989233701544476764969339693963033740847522686334923766167008213102884224159378164669712827552591394390922690836723371935551018589565110537892109992522694234075518257437968925397161398762530611943274079470835864273194437914221990284703732318730107702417949402140895696578416086487577995592450881618848232137865919684537856560526015807041700884991483659340754663937853259043516595332639912333529805988460985546877084916833029749069346029769079090718936770157832502006092524526741823976716490966358498396143165965213919669472329513348630832304733550825779246310524269320631915201334504631131665818652977667345671352822208412284719111209348041405110361233734189957789057888864265752295797773606946995554130513109667410959824156220105677924917018976569460614998762645503257143196600082247128957566457450526645495644468284135584217665383084562899638145032423801906448195928131393950304462125087049207136575989278227116278557595771534331550906671302867818409049412282582157429760507797052244884570571851502789816024761442705396930546592696110552241251914618550602231256797876690240979359672307156992427121431881981602302916294367901227819367815526077440866954343732409201829573915858422613323363527359037264222222599554449183077502282607575415678492495367248713498156674261424162381121494456476001058910079219639096038872460254839143945234685287388088965533595276639863590060991721495222769012170477531787332745868652750929135844288713438874054397490754387519184065620105447420890520676540656310800605308998435486978930378615781027195554427043052234923736930434014067169924726877218124117619139892696657632176339219901249674619402604541751097359852069087208103315352432188837103762719980264824933931259121635785743735456820712420939462528338923875656408846960897125861697071026975891389460221798077347027527491667083776034181644078358334827287822413779905179204644924788960359402140824603647764740929145611657320050173458043885275640874656770848458443938457525832750623709431048956035573937041159802946691038816392865767075923449794418309818774956896272072781747213924321781512059084789646813011381940478398681243539496524427300128628455214559495430801421335734643797316318662896841856345892197558236224602399665796083159502810019740896372049598759629396499705211077872412129247463469870924787292292534935347279547400464395702786907182070417641568034427105862617750277738970050156417387778806950508249738786161512048479572698797551880464960025809180374926238697166813089780007018456727761484132395806107510144392270908303019016606045269628968435905457516125659717141214170793037804362165785074751150742080545481028258739039660638051135603739830751589625931961913033227166211603664505243983193430748890604782094440838237284004052329985314986966806983409589184384328869395698839724921429897280665183368324284774658773464201378386272028865459223800076938297593514959843928525515203146176152475125798820386159062234403456770446136171007410137983301141444281231788723691951802767831119125714453213490355584515413941077012769039390205824540847131978413396259260992116252800862929067261775861808516061538050016638853549419319604132275057106219923997699184989008200949621494605584828859792762689525752412415859936228706862354263608865654760626131880022626176905498806217426487417743230720559077177245006503577225594807694488414375032722885480888583849067661060067063420966276032205683895135748182890213358492798024747412667575282939582169156786692376914471382144710788539082485840088450280467692598089773743779919005428106286646372360703345321862992489432777439268044783212171709453512216495370981459692458833597063867397609076987720271490794903433268206522278749168964049065391923334466334569610794792770015297730772844270564980685454997360331863893279439885947078331368443334836509263926245285916009797458610868782073443753866819243553902132529201896157926167893406797405538083257805390573381302290442815808517134406636770303136824263436792147468764613374566168685960234291063201782739098686726709450988495210652740084258978689125160860887650773203637177339339731697610936699553644925266212405374405494758272186385988310823749358572919986893480019032859229697713986126743705880300100781225260298268976149678795539632985922483786919917329633480488893303972201800280805060502550750737034650557988989291317434137152755171940089047685280422884452246702879689046618038160212801543207720538194862404191724849676698380672590600759747068941378769063311928969317893887093997389827709616829913617695313241408700330057211695209713779707886604803084105256402656544708178569564907809674452932974045228892760441670801997891868787445532110151624478307314521636233748995595981797412270583959225864071284612173139152736045213975224859442232034169714557492107811269630897469025987866047274003846842627614416520467684351064879026986417912339154240334568240051672233353921780297158571909773880224284815510675611387634998343433087921247424194254147675128943104746132504760132947396753755290412227509318246000757822180354787303896795457560860141243384028961166840111798087462479807717855733868512104931526448828586124721421753898602906394963058481736222440116724972992472150998548622547473103106886424437112672077416422584035004186141654479262295679447340965917526456808338931351469375069686871370008575913659650466467066744910059530092748193229479010989085065634200033057048714573726704923493063281688545738898388528096686815049193495415123416376270336710843504920904319047704196583852911684099008389038667116298803950662370338147372834721235594260765607163793272212282963769813759113656914894593938926834085534837541741505993749294022308237081923996488712183566737880039197219420168738610465512221681868893891167741400169835031771808952149319468265954697086849860739288479992700909393904654423843337753943711361495765939512136660424850383633368715865306482718063993498246538057091777411252789935611337454208363057930307687987140566361203591332926208373018539083544525593112524864298933731962825085309197846000691937114216534395899263285159057649506019015435278606918879747284970531251853696275094081930926676409929780701034728394328642263799530257091116919416032879951895252304727485708036126425387706908023253269639339786261366497961876535600047579418336485604926939563493872068264596572546476763217142803888493599553569657974761351859325438551741587783140513482952061663555024064782030631042147370660584502013448322688651678771389331776884257984896260344307628889505240978773112257359332630795510571600639798832426210141122250848716058405976538914995035375033025402337877743638596454565527590303827736234836624383961911058246006922305993260397440327322537353763584768936267407529159279287420111172440043789638277709306147938496935105659773015423929302582208218426327161092084558170442391464332698829306411978761239571858468383274354063577412610688190810829978409346342363076452898951321631852892932972253067348624579765513644578876088178670912560278696795054237176118013464582545622420245394910337822446501620368187584608580657639344604177993212413620189445820730249015907852129846569453632015422181199763790528899177951222376712149624021170109941272464186943057639016957060581689302668209448437490882236932727412754459968829535353144625561084560390331026082267733970628966977793585050580023904667382537213837458505231542575198439526163278000928834822294467760265658251570146205039488456138320042442007283599848331943780192743746578504173978799088853169612864456677798309711261234713733477657603753773641945691947008972847266492428028986399414592409216256031507144784120742672980962471590753434069626458888035530928079802450499655217081751176649076593761744176869487313241225991604116089795069349691684148256352913894700186692268156553642728879823861195964763423664909637227463109419272959410588194089003504398920404151950360503445686502245809914297309167771941064667125735369009450239362736121914080527604615344747636371473161983656977230799813060074581647360799528128581003237334160039986609565898465064140352822723636132172121714250540987544724488316466335321282493669553509243584176603001602622334888834212418139679941360285281269113943003902263627421800403605106660724484181860583913800618661945825926575507153473436605750480682942436105721375216211121082038312486358292408621522376700663578658860756144014323741653826243913708154028413392798394784806695431713420590514603182371244558286409371450985410688510190368300047032970262069010214279712958028785676059048468987545734061062541647515857366215196173692107542771681930141942908998280004424772799961269679402473139414584773195355246948611306434398517798660060810653259042944832813248917389244839745383567018060112132695157521029591880485498090836834143996823889547487933547742262953173477616396871748247310418451672920784198051955368049176309154852701814666272553790274889949106526120489565766990020568602205580409885228225135546624349052597580759576100845068608772201041528708411726362871141966382253983247082785527931535827169652112985042799734664484590803607747985698276538814710326053680248505890984041904846778226876677979739973556825547634645047884992846658531480285607874408495487831357237292753300253694685242761502664006244373214475166951549892333381309143761998470478506245692627603053722751076624549367662568769417962231104929108113045238528777106460845744826959027174453515001884363258574866344444714766492300903579020916844137701433673474575273914671781428464898975961954820866614284511740626272354675268753441480937449704671789296571386563895128659950717776632443917339281923263742061524847355557227139680491391507015099209008717706814592325222619743839227850363730238305695602728870189383971959979409026997308789261304599411309639403333044354442824229279729383254581935357405305652500909303592181277087690885470559555655694431414496018826012368074486939472977282152033014120959164350323675756891249003573538341191229184322632889503295611928385086347927420176012373225576215101145935653217822093968928069826253563634803723871049463682940065128062667722208863161026132406733955581314841296874295414907078511359983333330751477027550373230721629152962513492207533695174900891877810316058707071122627522219346123939860131783587703239047276857185167746527480607068163571760354447401001465649617336647079848590698988523630884817726866504114432317771425798077050054590250667085529362075374089890533006669414816992384852896684868691833734046449327484580024098737484186259789528830621356925407963032726461216226327529165648384904906040078225496423717618593771185102112769706656521503680262792310314571569111271703705871664286848776891901931188909792247989844528173698893812360383036802848032691934070189115082399123370814846426013753390969740937897880398543829244032467374300328069036963259633818085587403085940975527724046485744731218843147826254689731138748744255606346744137817936080096521233729279285343321391611553406350363397019848973213595915996461358953167813811924364677012979323617626498256368888870750783662916691255558375785604783605396681544672208484068976262101535245107477409642280218553859195673751991568516364517751132427831773886609407289855814423217803055935256747419031447093467207293832932813550966884482685923007133119968032285300834346760827857829604791188745741047084515504570100321515710871136836670612270582199614711898166655727066071164031680915048611587867878584562171112995002730071586679635195199406517761976187687077887998733743346655125596578995901494831956992199163071044144406745466439670952878041164520930243927179181315004692401582289366498795172198829461574931044492142915961303150414203086966233009024925672518344526039871220827605073806278539741651683479624477808984888298498722004501486252527682716621038583217244424638432552824522637643894638760886795084678330041976964232017972294440019031957202419079427883181591408207057302385805784346041639095505714038104088384453619195723614004733357604529445816690958737808923041939032004996960761892586303895788782681022931311793934522935512310605290836567558877517066704217688843812234342762336869841267953309972559107928733362465884006557097659860661039655058367082954173701486962939901459462934673463405229904059027572050314545854828797530446241605395239287448658437061290187713857812208927661122209529268720131605850296372872013992686228125788061195347774373654344552312038614637938605796573613477719816881647242799798278325188443129733259436795799659533821443593031431006540786760072381137979007235998451102012826878958919433687705678014643065995490651545401108372045162786398050059227888093765430882612852077010065531268243069616655630459544832237394644314056023749108804764725765240821124074537819842143686545445026789122199510189082044635891883544977842214499350764828340132743701395378249828222800545040049517207538687120126967308692995667071106969271900581209298105534689336892614264393900611798845221686576132221630658229729411129577968282703195510880478187427260932919850465338778204206197216177250307060679247851395484699653501353881509667074039665970976492239906900486116015320926760737380253758845115807615288908862235401416826092578087760156404023308022923114104386804147699478209629692138265331251018289830964035648816667441192058115873532441546941669194040457259533046116111071074987506294138642096402162239294156497720127857125002133637282275235240443722231451699976330314031996430846191892337462028098718122096278734395981896637794868447466751303152129325370463066528339784546606087254810912091825746310355547370991595266594585821132792308836498977156885598646201577560357449725705310414560612410283068960603449462902149372604391928176571269049482421671894477498263342652587585852341465925546176300148968128007623429964358635557833692501495111298940471454723262054180698631290099470919581178250104076150363620270137477362834168339044247855712552487360563892191238449796611632809110685327093374788240950731773924174989426308989039023461549332693735215774406086183315231628572240127518926529154610392155467535161813265247890755450659900498588327533246368166612005090166380255022686845673065374980592116664003319326398902294211380713436619873347500794372766391795647581473086428001963257307820913069229257564643511681203798527314702211742870090219039364075255177055723382594063146492172293870253728395463297775258159405532206728123279252418795468459837708009368342565625119920800394921830804406034204680722080821745087659371016001476691272076802329025893981645711324894336326039506845341970652063887455389483365667296837632309267186412036203267043906203462355128037693652520204349883660784060328505151618108378124442712963129972162734648161664947341811343106364270356830593777900340092160355188174376177728677705062073916545161423718628052015538533536303650876374724094178660099348205812069650159308257304227287273223253918186029090122826301274134708187345079931071405074371420367495391349430729457580169533666731508481480066271088719603007635285061816463411766055456695205214906502209095877293837876135114667791129488259846016178482296609099981489798727156212052881524901061820128345235063300488051427165645230301561506667630933905893748125185212847152494523130798193385934617091190268439647936529500912915847903440733790929442212859562297873770475405708260013517555706222618025799318885381517326145098970536710391154829640404332819910422504619839792682190261559171299110691101614780151584030602004168472775090007243708746197331288424181550501055980352191563592072485019403838145029218151460307933716745465586979867426939273214919417421501136444586327926213342283058005174585912346673497218483964105495618939981214631499319137191818651877054347127685148749536984678515726022774152814584549337111071878083072233659500872541817874601158162302721009698550159598756824318672067633124031742531209882428726315955952614140994544951927707441381937627172786059677502345529028149577709904364764090404665820450806592700276473762831372002017737072515951627836522693622145549835355480507999866225616603096044609289516567942915370332844679458214211438757177345373427051624372266339900179948960081863883611211264097881926096288664475067855829562026880321746141984351823913913789132515280803119858336658886591543917731901143485797028338455220290162476964782772776412474721395263605386228246507213159783014007257153880738417643227550086021317949250209148599752649040825230018814837066274789360391574997812898261202576065356486779753030311390601275471412514725530033730571741239684410513598083782145257448777153017847882410993735271376140852581798631718209658568372952036547926858346233253439703756870155442285135488289264373798363627390824353390494888700726209286380381900945188625677074070110576080400635495828539992510726751002602270667462435120738531002974485314091180099077692712353989730496429167163258503990026700368235826334640265527632523979344394944727544228983650708928899943120925441427859200599674190103839452045081831101094872752875608169451408914922184130902090396827153824056487564267413344475737040018311182729946976856278716457724875630785121310625187766640990551866205454345276943722918612181002383688588801865215502298259608129975331750404796576289910035923093661771938286722584340024238178334633689687553972745588734682119354725392197669296918141449451054239341652313245821626422578981126643571073962680500690965328239775685729049446598425950180466745189500107720668582344057001709378456348268787597781390142384185847166799039838677569099908102612232048396760833230249152430005198810149958777046634360719565510356777264410421882283698665589367695118040763241922001387454918845948710128861054768438540159657127019232958752009338431779117479697877577359729849500037738542808489032364655547209876083498909024569387816913766076916460070654656055697812705843132800085568353383459920473894574851049592415460251034535450233674897057127622399793471662726833090321529497008771948043052222184620386791419771705405932585355159982879005326839949206215582235767564538645589369492133526850702560504009218637173793467027197518242146188844949207126350960823342009489414585369300268893748355617091234796512675811673042402467953031988362101445955799108360220430279464045322990256829088584162449950879592896776438879686857161326984207059599002462381137782675456488580252939272132697137806633847042837940787344074710632495389525792137195009238257571278497610316756315023299793340768683380925575211186589628706975252868013398806855383430433025417903981448946385721302570414402681432246766568918862615495938071120652331144100062523183846685767836206475377130028545034682431273713311047298146312693931802667898739752376984133953331911011777520295596053341360879415004307600324332685887511962557492497524728109498721022149426277673807423821287309794341542190171308674791973897499590070795261609607272606629444116733375395185977337472220410591757838712098162031034857267198144036211979453510450005620818524702647601355415503670055495550647378903497733235555659070784202038613159044086924769052614936374280694078995171049775935232354137395453177267213255793289500473610642234326509525623656071618633276934168809065194476421671541431838113534985712877425632316009664630714866435400989127249849613425668331989265530818801461127449626412547679175199654015124569342358669899008770701757343800487700686771367073567354770229089317095567992721672459824093619202278007055503617058068105956995017856079015962594325856739614838669791203086698681245720813873325086575160839459929449831740535966361840801592948012556303011823956512059888541750515800036257269063581796069246105622488526039628304960440952252351386476965638009854968717289195906095023297227922430972873775630402044687153349842321054475437953952807603039203620399568437910525976921926436368065342691179262871682575303040891708700797944006299637276535531288537392544969311633338363027270260685849603786703710692786986964872548569692201214730934292315907936684840445101021309397219103582229972626852288070781042240281223766192789776996752615371335830280141451901546166952449094277552795254348066619768927393584863021218538206223671379574000889129899063998323245609384137317130889670589961072954681247058444663714304491904900901291136829811435420922834214132670021029944165685485222104298808912993027950130684339062715579082289486581505874025937192377213417613271696601377266349011332485846377169317033052857105899783402274117587493865374729553728575624324536917166667305035952228520102380632861585199114459672502189771313025829408023183511137247624400927524670823891891548990132243982791399068828287208886427659023762791384796618449460185154137610603141010295263758596983648876088336647373939859407688388796599716622332030984701391490305063524019112447166314199079169361256297517929105630584963712733964198412801233523011470351343243589521814749863560601963518898157217906039120128594665728138341173914094578682078001129117275942589749093551412795236495751751677023409537625713285156676501994213176627179895759408111945802645225613810865715902295527332417556327016639631147951825565011185278128855863602256187549148251017110966453944771185751312201526079381268941155491820059361708739078562243211089832514428685122328779119884827417512718035816885524763838271741278014960344140272771907006891303382653963991567473549766288070766130994656494523180768614917346727333927829634817565742399694107060234431615570890575905584840137594911611750951108336799250899069146186177315250551490373427141961477729842328318323117402481126254420146698444516669745027498268137551945926634535996372886615980428211352742456079953269709060733855578775157300194395871488539142317475815212068344479919064288762672773991105419482801088809045437558766695658785242081425798101689690121439991514072363447867757685779604976496251884538741936940924350966263686175810314530730577836825140099381140248386507911440707442942917623481584386131728653813958509631130797816715925429611547685601358434225907836061632041651821832624428641100555143747376543734220115470332217839616354077941986957475933144662188089027667948752971780109946418096430522838903749159127262058119978324578846556041654578880412582212871783123151658031248936651675398979153210512580610514500625369117607586833164618710229483069880120641475644693753380088216579162316737185466791529124488463378908278967657747234941541292090885069155495613979526682812742773703767620247429569481896708231424828173892195113516077425259043900641675022609827782530688282449385042114870849071483747436047962263372119362287441366288336180857781396531312090244456373310716637857006058111542484628531551622712796792083288028981061415174984332094189486148623419067668989743572152635432532474551008536581435542910570931797563740908142333787849261432040822486417541840241157352813472932584262435005543276375702419343791245669892980277684227464204479323289624935231316446715187228656435238190660746633939972237170664563522814560700216914282410952002759293662489795241621151920031363998283090317766363894442085321797231855065047547473232108633357481508052423850827832524384229606662596093028046145586725640717557589187122058757313509037133969562510975898164891467848128303595074191442805911618939770744664880278069131361163063453726564439030724597523684807302386177988258175388162098307282354295701822448904825684371076257864384514857953031087983797570143801769643521233465001362879944891437872718692633338777806281256967236372341540888445139396526120625596429058731086739868621269406057727751726287543257474445426319867717180328393097878165701882388901326786526256653883471438781947453508292464811571732245421992765609842687131646553122500711921366343400048163877219410056099555532914816537996824690810224556115945832389720115242103009924867031560871708045007410081140836843036270957719541013582337046630724928901238218500213902455785697012105488648027891598942701738162282342127083890437327212350687995272536782851889165090305926865621306973029994592530338904548288876909021859279544176998333444304325402169215008186673074536029050809718866840775965137768671717775293376905355565410352365182874974611849963504307975791707963288305727285229197974887251196574105257139895868802159029704915533513409257078763199860168863010212817556424281456254259860786944611826542909595167009293284323708721630864816854549099265302837056688880456762253527981712486274976974418754704027713822095433778505816176364051640880566174321769339904019813538882564617775856733138327214271207292480898278444977692867815043434595429742172396698202669752509781175605021811657465956649835279613473492669639441160182293266379544880510338885737426805722785155018773629772359564841808543351684901440175990155009598158647813202446483348002774391081215606940067754549601127795203716905312183448432199883796459953915183212569477446127564560594889321302440113453454691271675431594910957941309062206692516532869496241518629605820073531895956803896771715174866355797598200572165982234035738868319384815568008337523219105877254853964440248607116741455551936991254087767305672298232431971201778957560231839196461680438159201310967243117868673309464387800227200209621244021880145648732797941929846291144207758628009379023721030475010513028397071842681805733952993266505288582894732317201223646989536689358042177308616991372807224568574183819026403597066667873931319706809888494801938185882417672598734778139542089856819479631295052625899125606299063524595141006156404403625943240075424033152324886819892637928980489796291584182474689075450525649487867601931152505689529088654273041812529297611906061855083486012675328252885134723546607649526866215721988996369882086460284600686370424989932503867124559502105552376313814015724495827324094302853283092011424270085286940569515905505424434062639658990027812717069778206397568493516148972786448483923343974004503904306249411531465500875824246562907620257301888237623702319397741330622125392313328741891040221716552379298732348593576882116203472999605151175270070060037433385573692128934049877605181761436578653008719163137216611305157056691309802331678714570626734672298835475432501522400564055953832071688028521737182321221331342322546178012475785974037403112503281929094226518824716911953105925836748047887375355489122469777453845845772135362361048961706929625492607032847168295158309503399899504441256704036592402413943019088059152014661375867858586462827135087947304760425109422225535596029844557629508478919345990868081841242020071295236203604690715010748334452200978132271560035729314787247565115263661587164567486454881387516742937668609884202337124657000958129121694595399035235989960688329340993170051362988994523808324900810775030658506381727537279364195222061047086999989155033481554034775220443834267575437603622291230025338745551509714839659142304410064456775145895284147685020242291107275491840411900011192401764780030344765067850646518572052423155627431391355434393281603030335167706058174471102691477443396384747166040860726356697907003940911395215360294667974463675211750474546569577598516000119398187334495718386556671757869051648741268747106997931368805156316631104610975968532769996661780597167170579240092731462240197043189758348108218119648442268804694804812931290337823117320774191323887486312856960106318802462335671442715616337383607330845000225550150627687100099438245032891908130320018645562668113636636888001428782342779985865300020299078060611142354601087664980657408825123755985797495765118888251776695957623575542462532071426627742015294934973854420074330756743462671783291113917321443840491809478751741361010083841174111020757516563763451333757002919275792213177244590106405546478428120605915973648453279367015338154472737182348215854895517561684851481242461784642756345690288553235342180721173681502813540241599585800752509697377993159635813613493758073026955367186949635149675571104899942866115287461526364251785305630906668778412325289366970067568216091123639636013825837417486700476410837067122750949930668394988753563290150132616242734661973267176099478142830931026894288136749581630846369752558677334791296881938741664237035702563187851607265131665366448867182345000678100537064218375884570183101831461309657505771824716580507741823098349426941811769941502056038546411353188620989618786077534460661328820289376328502772603284589183514791825991752663020252819000372052268914193024055213295948638705318895817484371325804895032676194885927588578723335615743648074635761475096276591625331469490161259709530316842067582474749388687911974686835557440659273455255269939119923012429314083209371385934909604146129100856945586859915075170041408922532201045283892551697353510013746299853862803987105638722586306015026131140960558500374362082491256593035038492404145267996959048069728243297184368260763536300820605471217707298089087739664177540571221934842501664723153322743715739127499929972931575854339092438756819407974961377427503423961725607350762434171098164383899425767842583637171924032458786452662592703689265906762736319831139057239050504200888020476583348357791049309740346508428532782795667796197908228634269646658748745249517884200111224574046590081251238886285522653393063441992285048255570812012066112963721164482530651365895316193137077815639059613235308591557814630679702417364342439060289843554055187982712138031429828978741471993546486057764337813036900329149304595571430731441689291168420867230393493921562821366475422543754758505069694611644717952843659924504027206572301578307201802167279464851591857687669661429794766984090131279396922639002792784080379969653427712846296156932374270842237630144901758132387187213222991913630957496518355052397402206154065634417167919898949992622481787935208292260509866742569305739736420133321507706660705193690950481697864048613474930136275457264577546848175708954624644713016528083982078043564061487685118617984109194161138616221665138463406034668908127707536789005280940793640107435150544072401074604791873643229801346800145486060512359446692746433086044026635743048656793512153899422399327066336633524325397521965556382049223511374294687826322101830960063182817052056408683637676303605950393320080672579939149609676665415855197385426240151545375443853898507525240663078855645982510498910446384334977872614280088619028246312122869520257879182847529053118632563198918681572595109990867933629068840719906702475125519008159997021913526438463876408329807415048683411988807379106342586082706778753761984326732744970766862853790300292806935460050424745637971241453274625978683817305284962454129408408114961217976084487909049969388186993766706008443988589970000837599087045583083751423998027911416633089327994850208209238432121212213339619965198096506690388634467516919226128755940174553825117122314095459282491481658551213307785359304060429575376894481794963500842449235714190274208997145514760463377107797744002781687419780348154480976152494407530859767353929456018661786116808862718139484376034519676185851196574971400102796013510367407515068266904736494782212427874406542458380998660088477992298834012724244219712357258585781996584114919250027926896125128543977314906616603517666842909523221888133218818139456983222760018079899083158632552253774168766298157152871276903729974370644689151907725558604115069297465770299779746740686577758491639059535156996280013413185200590919393461569499864568358792241877651904034252904494651725596491854496883361413117443762019028534912073898081202431252800001116571241707034973916282951961293348002456005167878128784181931169842164248982971805135881547976656271992861017924179848163398502883650093575852687512903626238713112580984893242243190585447389890837246388532853471634972532956404335599460340995560132374871185759053466251881695859731175325490571768716554697289464414277653770000675924820076922040300376326971384301059730763239221161762114120754476391182452897064582585211888877784501820268150688882928714384434452360879767704362844283969971778746403926362365620320108533444611513033205437784003473549396960769571565665585299299639513811743581816266459747412981882909679586284162961530945460313298762573910193675439538910173902848191240010669348014465936278112998768771409511057850390901150047023849074404821222961228760804948605655571712029291745042111377821678119158715755477344189257698705024381824663947134235626735291619282699284117377507323553817308035093848795621289127166007995761500322479925782601926597405859477908684675195071454169731058721595868916343434977802172489075847987895056881806611482200937639185320535735432549217691990639670455670817919553535921445663733390767478753523141657331921548875881552051370190226679251222795604940762765699197173646816784405486905745788901683847012069649865068629212410278110307703646899562616417900706279407690774073010350357800832394111176090948532925061476291670746322987146499952646341458227852583364544109340704539401097657787318851492325025799525739646774098436753157674839154941069212347859745361076903597349202117142055908063751050711392894600922107176744651884219498806385454362626228399300011718906623670786568193847723598373521579820944931154671091971089410573778425871274642011676021561355532137571830370417737640584114389959093954717985045874876282457520395170445548231989527635259510489310374149857844703365264043048990504624466469855448520598378934161005907548375149481405819258182618166916615713216175509842750703982683541069143189974587695611452106462208864906288556228117341346666136600853684102226024207401439105917397058501034800633092169045163095183508954255915437436296438586109163949738569320361034525202531937863683113671049683404672697385297695952520161105142235422681415962211452626842547969069342117456226383656060776268739288331719844610301426701659406848483196368583787436860329390987634642882672705948805233696271943714702004812937604690057503498369421089505766539691670959158207840883903966728031190953078587359656788949198504658311020893443660947429703213150772280163363212211546870618458028362700291107063652082611751800258769556331104571827644343080988479554898922690501252419135918838441768477415846804883993095208246928126942402783750662412712344232552217773297265411657351666915616784129761346133396391403249379981783799379832246978528150999316400558062972392487300139165410064313555726273504702983149638606192286919406677912310934469641208460738262709728445113298131803505858147898365537361433550045922487136425558690195263392804375269923384102203078872491792426089250347475872337628322635389872737494619965338250463489594648980216439057906502693110105155817165005079268614183660574788724304216311182710802253759813977067854912076110451017006291937157498654382555707353627122691054459082484852823554341544807290574536524920673408034208502171939488505981186065765754793122570172388071442834232817834860666186790707586436068636002698007309785472462893778714367450333014600688782033056199222351371714182393071076441161737010858159404753287602581953706750157232547180673038682979029985531070817015997010738041092057813015806976321116886928911406526415664476435967400514145441874044414855234417040020500430608186910578565451198842246663260667741715110351635663647781199347968546741625552926780158496471926816290101167661809664909170607981864856997850023028811447376741794028306881075350707568176080299377585629293459930960800877024579658273615993873536327460391629824924578081232121252560158636529343332016667873049605901790800817545660524000013895753673741694491961201264970712635601963790496445332466103740340805681649291856411736074784973337127408877129544318613243769380320139077773647578200183513147428795609895200450583070962624361455180659864719588177124675236448959061552961213450663092895844068183142185069129299948314357042227952380920960335989782240451282580911970724161481948184370515842469964762581639328147876079008693523309086288985637939693155713925377955214009019428443534104606317612460027413118627830130886620088975714965526095151378707344928881888660003479019445695746532416172001730649678072478733986738995762497336552200448100462020351359708824960577138733730537859851337801927269393971396817300669921659671019160987927614819483946953595146473546922211451288398129482605985088564525466570314318277216479875337806342920710692514313899208572695152347314946104238003595570292082986402470768005653705841738214200965038016058499810971729057056990297276245288943783663997774645357414709105173446988082174518375499841273991320782416278284637860853051546081378680807263020190885604062259310648930585384758185941092648273269580117220575273737949900379517484926397864975951763694340952501988213852341329845909508472650166263678478798240949494278310169616038191337744614183999222259129370437728108645878904686617605513834397465325652117184567293127701633879677092560714552183718304790041535387776247329847597430799902702746578761012360941544148647816723615399267335146658681800692943204899353294347482783485499754578268846344621537750253780606399331770836105433543687561667495358093980368885296514330979058600358117245040598508305422054590782260235704358238312359008095040448628824769042672815696855927786636192129800857669316016899516055852857886055056248197788913153959119444285601812238979508431644605112702465688478485309242519516764400944766774233077655623602783323996535732512828531376551680740471336985248075244826602614166970655610372369973312517726984049167541133052280066096074056813532117519758670951025201224143780776065574355035021100230951744732419801053825723836878700939874646873567046547881410245705725340872404388564607658235902214911729343513081805336295253302004044543032174957486021789581197528444652295022322071641043696923042898801896483411087312473725524887409112250891460913195487766680849195127631227759542422151578271111482431330921596306469794191836349936485707212158328951286632279530412392872889502194571133297322416201693464002374537852851227920492771009117282222004229565443669419276030415512721872095956171220508655054817080691429838131107538907106822089180842345502331202432740847356409240066882849977850884715243001355838869829325529630394800012173474214781133580732557625647523239114026259354738676391251503772932303918859643430258335306131109618875680272272176527568949185688681540351869038828024563082987810660297145790238726440645337817434740235176645764668331089837728378986835809257868929711447353256495132627101697375066993204362405263019965269823997693003991389163458140583866801097305586495627968659371913673165364580522874081373825919949573826165088944042640002801512501202450155575147752994187213050760541615071934565165041661211603058838987902983407180228664430954975425077407857677309565279396968536794158686420251616851910186332322434636048498543986198821306355799198493736732920695151956267613024982520593337906462409352097656909244074037343602531115566195338983482137516872589583097695913719875000048508298956027954283067249924014260054122556132566433539527938861407605087652104737248400092248180365402518541147126765305246504499463969088523968183192962835607422090394222919837503658948964213950967914273145253230530416783560569764425269452887589574122399226304224179053427517497428270142183707575947183882796615955754311135508370234529355419581614860317521599804119483440760348666302759916229029094698274081540090775860138009478403891462675562667002118475154805505829855909552627881889741471993911239965812959531112076061706232540297030759577993015888826200758048035454133687335684345431422561150381394694555086320927440720060735439990499512938954711462465963059930472961944879880018030502158018172329650232923622813694880751841491704982581945474030684732405600430522199339180914344311441220842465279081771692600918999306428356125000407591529774940387705710536851789054109891426718791073427984595439248032062524577054375356989401114061013438605684923895837012996488571985691418708864385553794501350548144947704594597289642396278325506999347740871731865243189108778807586902081828292560620572123246857222785859291507080817609674904443939257798211026669868367024664306187452910067527865019522019761978940659289273254971390818269347696064638396492090443302796035100329782862407867121345844018727346385841286903385609177537191404155146270163391968210046203424360501882727283221139690763903088386157208684760431609437708259053633081587635375236200585284911061554142386309709655093371825212692525037187785628983561016013824748358312362129360282950464397033484793622221267838376692396556874252642099507316002876670264084891251261064929708484002393340066749803343168478192146858434961162627494995749569640983835803462601122497325463204357969835724656350533017457561966412997768889266218697889566889849905353968014520215041223702018170501764337337372382354596297133764462334377214510945911685828055311890118408288879193696602158414505483103748282399889609193337879647874678823378862624716293313957694491124640861630283903369568102235119858046905513458237737505214498510676395701084873265186088767215430810699142758848700764000796904325618176781154581865675743112010880058488545911242076424518132090606065592169163446448301040914550270926436339198786150777990345390640701588325551700518097894856896271462402842616538372850272954184279005841713308097219765777449962567229752898063430395968333025205035533939158647607279431181504568005372883895863961021391721072468879909930354423353506841489819043917882596909947586452619578133415815965957712272811373224182113629116330828797309078963263824986697246238267486378895369676661997188046507237885987300200285517574714863925594138005885123317758213911337634237526049623016055078338875702347399320720859773480102923696427417407733749620280480761334034995459143506091206761117569128781091670153604023114542326155454390356670906508934393932463120536982895075769346133313068107895212706214862621744379878316823999726275573437768533386695486424089521085091025804863584904123932470958544691323088340366669624590062411589960537708743542571256344256531425626149582277497811037442155278279155435760912733725116748709559781508882455771008156553039063995012422862544777462251649859077647595695813512344983360159608373606991548053857487000666763521933979062563452678425274638929989785363250750795505590058771166467235181887811833135066818934075677090176539305261101050063374635124004467639881583991520655158206653126119268901245797031294291115233890733453269506892701799159399745953756034257190973706876365810026074609760844296224890365395004317818583238830053661119978851400029608863617785516047568671646502712099403491841077626654438164594313326053949556757087873287857987554360480210898702006079494409758882472602348995552062910862857757949568652308024568533070055706458052234833646809569090041991115508204254578578035529885171295049303978433036516831592431711378983250390297209243772088227513570554601191278859095734639698157128188027159506177315546387875902770932466063980720166735406391499896019957639485527468900348775667430156836393070445440124048071985532818880805661956037784217381797497102249971142172412409389397949068810668104217070160268381442992833650795116268195518366687549332655910645364994077890509531822441377782771609186753314134914980396931983629422030213181130964110522385782570972902758097796774689413422033940624302054315300366067360054856480584414661932677784006249018901611401229883955928402408220885045634045010901715943157189105183554925243188120618415271000630083695467002065771472300237398927360127407751645041062458102119650237133533572060383871830627994766079928354624249125909933557815443589674722919210038515223287618035813513689532432161392037706533258317821608092657769733180565013092817189362402687179345714394587605493481573899879039957994846795109701707552305497191201758076314054998128276663861534227266113686032243214231479670795160426248445881229704527591623171021669367293273883145620137179561235452744914785167757935699435822880632278921576549453551317224922436519509330150948148561646775014089682736139729152776425142153971221086907658388877782830983145679012218721800227995732668307132608167971936466171053048750704833032486936393398679888561907667505334199012521847951540519253547952460710076806027332962795711530364028517653750789660619707418238601042274257625477697779747567885285895655558706723275053312485729846582457089846764597667812221204699756588450942667335066200536937059754613298237633094912512525068880909259923803435821749407829051858579118151119652878083739706285356120783086454091160689139825466319232820489263299527512617547297366532594978036371483716063929736395475079507737432948560854254164237269846237250015188184615561049289559299029670272916675802393462741175433094119042961005794355043578677902486684225705173532090065217312281997901546131734825961528655277429761453536623209931051383328584663181004512305980740919786607444334729354045531193800215455825062847771396914929537494213332421255278224293596363979436477831871713179742300229529923044268471827723136480190375039390384947810762839437373650416224615954239336168019199030147687250491731435950703786744611098956651596258821788347750101090746365149207577926753295371466823877133859403437589124557735864016430549049018373462186775790905749101819700338369383064733598410786831121073158212392982295874114903007579044210721351612613015244476314872231034021156111326080573091805332771298782854457476042933571780304586763039317728362156867853937994558358669873493813362209139866118816025940100114536396304037863054850438939322088940715037250717648547793921109854400666788751321506172404273128292870415172920953864874464518376363392643650249757515077876182220750239292020603130403630837125970752924197120453429471721105381955382775845648237330093167862984068596222743524655769978104787504229742492601896833960505111587763418380961311909148212455855230356094673432936931871981327669966310624026065845727918463376997871883249270588806390499155970005581898695541771570715053506714000191287524301327204151390812183860258324647190664827673169794265438961822251997825667712862942698352740416139313796017781387823154097851639724629700767475208566097575482263177958753435175265145203204963379049747427413258728881447496540825449472200908570836462795102090250064972207062819096101324021914784459571147717561497342393377096725527323831877088137029011741288276976542516686757396573407188395467958054518588139626168959250478673330386031839772732341976496642248798310661323030851993861139460631834005709263949478554686753841008818244320969440836243309756439875595003755690058302327083824582338293428525094411393545884758120796721328081213332306577594481201070419283198490376323101525128201567867430613659324311757620563593638871806584791223564103237584857865888214516887424913215576940053232629922766229856814624807166576380083620933086812383999445822786807272782987818429544506880731209206268818194260105445699772948514036640088318548027382410339765300328550901635171036246801869706512901443614634269090952227670485961167030613654713397817057653682555835149157880923013005798237588934459339939202519100441224279744396781075799318546565158870530645087066213878494848857843715645932502419898722376428983014472486827018271833691552287527476915198755383910862213735957786220540498516392401298918635608729980869294443741287820635175850631886274479355352200961284429504171084680773965430411552230162089359256929824504166329821733846956621876104893248596517357930682103775557204566538167211850965157253322889921494852846034896841300130754484619558390056647331536074459125886472640663774545521580336171313179146122808043502948153707042529365963852624901586612071439163934319299495686901631233329780220877559391610294938597072889227206545469039117650139610276656085552638779353502061868241965739130596047996861726258172818532179232134991204242320168551080929119423488804493955016617046044573183758124140374121506626744434417618176183410334660295709787646260264570764162244334883318086643392787072140846555146391469796967811148212025150372128044351818936913690213304973089701831039744502220942008154745379040576892530142121067263976993909449268382154267996656182918515527533220201121200691307677689650620310684034679940197499897875544019462440617389211878840130359376451660274576532673998132149880447508662087827985392936165178624715718101801908315242550753968654810691462760409047596002866070684068069761197173131476871858025657370963947392794710082034694425749240159320692798405652092315688182271410559939701847682233593280394520389781299647896822663488335126124876388584639717825053743168781056876893154840367241570774725681324135518772025377561831294105192578982572535813424317003142731845609094083519844498806719446023802404786263550895175781003133933719933337568983257313917500579679214515344005863872610588452729492903019805443338146726862332561496392080051825508435969504914196685618412026126177949467731864398130724518686602098620349087975130296765215566126006968607468864031747113477971658764931827192394798116865030965345376127106737983347796107691854515618962435063817480781559518445920063474863120702707099724450692088947315816426327517043556971298355270322106322178561696425949162139269660125881616912305772768744572083642451240362315572857874193025065246015000880532879021088476821775495927801116187688669052535593141665176469172990544377000078995916122274189971087805277832765771197700622181174900417139831427597387346959467260314065849550641993496320676121787648678893963262823702182426378570680900078314293937111155789707295621225433128311137978292754927147546236016466320242887238610587013597264259908829552076877528716523167485846876903180674260152443883780738781162653235891735834246986660386209129143973749610124229780992961107655836042476294345949528539490404427620456950481044135162472701749937341541928026159425657365672398231928166920584320874223543826645280250443063355081113110028581418054629149805021977313290921703241320107912362032785680684193836146875615244517793201207594940734900192353969080414709993613054330199244658022831647199521386061060208942649936005370212990308315310972323053431314575717783565787661710256231331383082985542409412977692243918886163526629841602970860849319889558986484135993060914683201266197002267224154017087172392999679156285962692412376327582017900274113610721128742840962103520180040011069462207033264081872999605764431965329100117324170898603729996912530960531976919010867938664779471045537021170280606478429169790995839800363030004382068782317749505429983161893000826500197017345300941914204976897465201658817635973983265961159504195311095244402096380499588184187606284742151715088335389393236969010525228701269180664479602004060141360889834348243947884823972217295582413618215688488371886715802272287997781648716933196423844923895690783354190820485973619609874879236152296919163073902259913929607118710804633236447258156046894250088132615578676425632334284632899384579635020538576808801506169835806743300621493615245863471982090813268684253722200245037915532011899389296256067645745836603098137006626769332402360266275602114136738695552497177960866607700488051309911605930616862397849444463508271079411924956942518267784225633495472468594206981596744420331971537102743007113714299513603966355431039582163341768037542975015745392477829372479419852956044668247290583299630827606739504065838236292629054375746023548482464778777655276481518770562250719241304841718146266334559203498953722841965052516468220238889936889849064351148857795629370206712119219989283574591497633659965362470129396161670044172609019925045269091407932231685119622827322494632134466815536323481657543604931873609860027665727164777434549677233554150348943292184745594576561138765440772552167620888792605785890970821646304853916437886310095675002804559101635493683754338024567011839618751424637953418356346404706965030592032573486943133687623875958424702760090133385005904090511602023895396187249904299226759676102646778516449969363156349244517127967331620019810644327595034379018626551093028501403627408086749104252002958175260539579722187653467770172794660979556679871276952145114007456337154861325832510428431960167915277736468487117414136159622089212896232354262932925734693499380557663422725676680692757436739437631682122907933784334180558107806144705852925172596246730557607802922932836234888508829327280641875405948228133764273148537008056829132153215398442767602222286339819347623462850827213569786265180646925447336814555294293928607271763297647374979286698300088040579699246889034824912425057324320727456943435607674414777272379979920876216671218663143283497922453802730841895308651476802520525547110978646565872544114023440870835859651501929208970553792217294535595210674978647188713028433400926728135761846684828524555501819528703024228239302408934786145450939121803151495854260948279783167760346890658844531162982005499284625516680620584419873341517169989863208654917388504187066088015100611411866885284528703295417412264837788557635459158148324260992681216352927529575266790771804589578474602195882882172576504577852928720699580588022917360756041025626937528980698145122745908142517834393493712908843637718856227936518699103246726462830927440885218335975150104730195093712703538973042702175068609273667788432077367474874669017303674244722268656200467513286360781708873769848775044561014068956238276065264614515571783121256177866590276333298513448650751099413338235946197790697371624088285604666124847520627149811292928832158536473885001184180172133502039089712983291104031792409195856426727138590331107890780883821942606113065073564637389506883237750737878290229140281189206629735248875598376361694096355359231863223012253946793600247953331602568522928838325503495414413890516447420755368718144165505132420902109880567217357646375074048173415278265135930031843321154752441539650442533624903351791165234757475113512630723559619104758544547029156848313919551522439690986147360551196857778250104503366645023693337478706758267336713464198221949005174339414456803806410868624056620242430877371739118919118989174876490471474390113576433080436255115968638053569008276386368011885255521489626191995561707622376359874846625595115601263947209187452322280307206106683580505973487163027630045623882734433979527976859811960543642674994123961787216265637616736382248984979053166899058098280391233820202534672440966847977663974691025335574584129218139109955710278670923209573498580085032028590557613358651827944986534518644040700786163325701581063490953193229308134480208517387458750910955742585868211400009828162270281419672438836853239601178998060884355506761942155611907074478439986174815624827766165392919680733644447371967455412314694656140311816441828476253995412766439604996050802940471837681973892589611256682818428752211481174653110871157259723989343737661514936946426221664727681343458007087934987913970742216157162566827456140194691569774601327635123650235844796958386528468491384589344644055505230516851980249789322230539557469281516621551628633771993664956164069807181451311089075541522369415653004240336704184991880140618422335020191568715802821418949931782487369382461243461337753831323737923514549387274153471614621228630945000836698966822668528652407198752951065371647592976163921224378584699314892773181346928769999500258103216342935678181131310820191984885213764963092877197141911627760128552670687208603437226445086509176981365496404203764614873512645052737164440995805480143513673326539289089579821533267951397025505454070443610063858485211900825155242333164725034555476418666120466231719300101317332788637340377543692072206738231259075100847282628880007433772786602163647781822018614279309211412969000706438433248198618212692293998871765611365905332438087469506076422524238102115731784766225761667609895689676096751017375335947903903829799705875234252733302114583204048647296384137347389264686417077041306674798548895818324781389044094790345257340878605692573855990468534336541692680476862523202305227539749341383796427976191281671864125879409963518704545551818781945563393777477238121219180726843315337838517371605086200634118228026997576339967754082770191862924521393906016892614560629596133998955729810774964767320705694092069456139748320973149478633881502549290435303034331457956916850251375939946232855100317468763512049642861250393896871489379958047356915786321297684968964774456672877052841662883035454483525535853453539983391588388751485638275759558693558169268392961296457471960231776852369027729411488928927557869800232006380454847847173460366397135980601483060693472287015895489470087323874964549953106677676515359241185515587453724338268572568340894955033326641233492188226293037930607351279022445284654986316456421853153629212674057322682949368247106181182546782757186294949803489539835461699745289134941749297103860612192904901077993533294330485499127834834813631693806274940001163722564107976141732725731936423009703364465785111602199786619156965937835072141571728821646536288699661337317367665735526394388105838561654308214705489202160138322685468621797532877784630885812642696542470798066858678576132919046309856118493587022815539334602016917844121222457783482290908589571226888053495693776169769823594896814842791246065660356326399757625224741584339475318571174911410188086730995484655032130068334349616415841253188331178664187128511123601420727756799867791067929508411446509176505312258319189424577159198834643796363565844260883322809872984744077346388695728972930021854222113133721187937436667512772918796364223367701545659566170635861189570271681812657287055676661183687580432053984053889978736687892193994529458978718338032920788434580111700181210114044844408082108329641990825719141781295983153007097160176301612138757768062095159410223507515150895451290653051397195432567881856770631342505847832690306492858311473906706152212765571686577288878127309612633961934454693871297128705888596392375526071583865378614587376000503240141169368822823306226085611962651830970229169476255127293510017013686854167397873826006626904022051235859992320331039308502050123886788981685172453422109170006961479699466150119489742773191267718194324723488998124609552079359026017184324435074250959967972198402932009242857607948543946518652194144706562283086788283980713071250597420246180930310026341791249683878727235470228075095937441713145267447362619295795207037305445451391845012543380071022380853204702082767592753981706194203662494548327294167914540148654888458308558815953633304993015188593828729372593080789420032492040096068893299411243003665856383139073608755864696937365834345478074200728555581950964760515871020810196354966882211782109380406041145766386519601372180263813688496170244530272405696353434884041339167782616128357369353961796049964564388575054045452863120178459248064649297862144598662507812480145275224994420001841700982498893440783346937147299887018288252432779299677273024902040806066418542035313123953843400207058395375177506993291398932420981771187900464465180447646374045350263469448310312383240137201060440138241622409335947110153551507757871470907776452667454813340738170407729950229849416641486926803138858760635329239833900586155123185166617472111428809396337962998374935541460124756160608555308309274481055026170791392054166740074014264066281720644981811499714590976553239978338697486812208525842447285626312972666076531477001634568362235608390883432223483494559861063701800532498786554981837885287006612887950489728268994369642788467797759491729272654278021630448479302931708234161581358399893862015079754625156180944354356243244467764297322137753625610999702689508073212815121592304015199501306111092452587409153821529151202915898046974978762603630922611822238254813338934735454898842176081932745341804845007291299523368719830488429474222363927409004281782395538054334566976655512314026557989213446329219242122166637390858426052583198911709032496398162616842814296831117145870480217098117046854118733095994694825693973033837466335462993013569182556197671263717015077287105714778254289121859362518304822744035931607769525421446643059134128380521181237870133040290625213860933356684078151853677190162204175954625779791620622912346224916381238364029167961832743290595434020166793612994424088987912774544092256623642405673812751780511479852719987482872484830202004806068613155997692940463403742302358867827795731186477663107700409811286920073453772552886957578817971620437496006097692203838061587021154162343665386490115477797899945895953911009266452117141749240928016336876420729434985364582958255618300567306409280405965023427459571555920298588848160967732527592465053017334957996930023837166907786181992702125132306057903421839690431105701003860774541306124111507930838742962981249130202985299082206825143926122175866682018718929366987394507759308514528793707221742344575948246418092600804386629912879198016383039195564169369423417308939286842506765688444817526460632045766791868925716080769119472846916366945713225898296526703625449170942431498178107961677109301827649057731598858002353595447282686510848199041866597298674703577952784698198980962254166217387610839010109402520713445261566845681561538364071464302243042464907726220849077410497100993475309092471612097633274226247405202958652932868932001421220018792056237615847354420789472752532360900928470761154677120083081092695154530271195903738987598335068223597220232774360320959452338280261298848961730738859402478906478765209740914015913912549471744954609358679827679946397843493926833798684912565825275173479505430640345371905080796679284201755997597402474841700942982406582662257892661036786694128606138704673721165543089946092387442750750952944469411690628568523520191883554524933897373222243384755925242019075877976933907791370151708369689437100663043435696204570805511455350085180095316586934665792243847112817499192831417622844419752687938466334217522250938802037161073014693950513079287209228502642017177887470711209555208451382299255707095408109775585829265805040807303529223938212087535534065259230859073937805706573700494039620775098189872839237299714625781613725074629913161197477726261234008940308902503094052310100968555082244080726990008238225377699484864921720291902368968050417797729660101468579719950471360095393704446852918713479403544035976042361555752447490606304626236417809746277336583006881317650750626893584958387974666398699572506217164336070852810036272737913729016582728076694759611847558376934098503758054363695411795778511852026773453366160377664900490450346441931584302627112558017335440213368945121796298722663019927540507063299390317876009596059376867350192047703171095656899139638462993070970307739874882415030527973424612383495667507082083049203740560415086661863619734504364233121087657952379626509254783934833844374273311426410060107107575486159033610951350990084878401870509742312672663300195524409523149192159866792995799216721078525125649850315871637490923558524407609619391894524206377384542143851588622147880717325565224451151502647019682020609431240261634804187523268384273258009793586866063237054744120538667062835869002896905152094037318648057424193830216357595044781517377535498294710460054210384928631821706066795291326551788870030384645746967730333325982076078036747396251440650285232634914679154764700938988254157903899721452113767208398319528705900827802482064487558757429611974917410402389172009586514391624853788914638653536333865146962307209912802429202295924773628031890027008923433348382181661024219285647912065110846973975702496409643163873894874720717623386882385708888030688247492567316903172008041107610847623248101532898478670544260012037258847096523978812939892755067395244029190369941166303116809836794736127129442184849882424088308485479553951400544372003275916227693747988265904962007326311494734212943001097160266029752410579798803548642518940497650549228877816627301800276529996410878916265424591912057697469925466218309167861763891287704536155205221113575345427593338069368925237625327635943789163331721900395553628829514654896630445515543927215271953816347685608345975609513872463530323258939395034509274617788329041020302855067022901471377162025464271182010000094028805237024467995179614334841764035618797535308048297574862436320509563173061393040246931541900147284495972800604678833835589944736615542933883693579562546267322242496866879875120439550052352332264794223302456194956442404408294324601512630186431883051321097481089900574327512112586131675837365150437302817746117046911750897304599912747746384061748610813123456619347772874215228520893378255088649067132287772047862130311500582137209277712800278453741342638055328364614822272943203284471428238442792342619825388080032807355944858094388262493230225968069214847562174514093245690729313790592020946163055478273223007039867981928459273574528552991844926888814546545794536062476227293220253678576157229734912376178586974652369786858544901601741354303965579833681777845414019371860448262567951917914146041836824489279080301413826387897116019560031602578205014861622821377126447480642649692782282415778869363690606723748629940041397965602261841876882701411479135823229115784492317118079054334722111761755903804923518838041600059532310586009436086627153973414823862851013537514607507404896858009902842058278727350184928034880725219312966011032792138082344562289478241602214900784929076855702421110996340525220117812804506247828026396619410176795780114631672517403543144628328735430859487004127834458867337567858121108589743905036198170902619968319377417282629799450735621374128204940048253924766261851706886776929681002555968525325440635252767656048323353498550725353544128238732876357404679272837457589545751795767836674236850984552726175853429646680043438444258717646022476710316066576155563953114013466592266709935824869927087437515831526727814428653199275967288241235664785022959390112789823580075338560424976040485951747554098232701559138801912776182787609203230865483206548827967185701706048436192240447097817195165632343388619385155331650667702246440520592006046956410263997023992999469001224675736075098693617762179297916511724550827155089701269388671456638641942944098740324660995426880749342281145954709119773164880571117449080644131368062187698405231128776748829051268101824503939085595009368149014044374999869424663633361504926929398589598396329041623910193587980719144435248803905389144634920544680615902641107652509984308452183790694216265031964280053969731021988064747947217881434129211408085647246464773347995973444845640922523069645571496563963988844038260055611941759826270902551698318589879685107434833381486864984618657821820141135428476928922881376812436014946530072275668330656936477062900313210410025187624226869867298404906011908539837758478878581916906666087345826108381880484477262384901529036738928365838483217414591859782864575879458379263292724106960912455621893979286911671074269005797163784634809998003977444981227600795666993501837127613466994319903267970532708961743861293565924156926706911565055045021221170988395265316902626211172388529155972726810830366405143036924248812761553284594002952875946631057207969069538577599626621103118374487018519073721513274350529995101686051706103990580964613960863139752142546812296601757166356160345337128370744224727625246800162572984972990535821639328674357692033600097782564672111050274120811464065469849868784263505371015990364590131843702893504754507835003555782370894984132153831152976570938207130409332897444333780289516104696548049991636849287896692133279408029350884282477883803552314272733901143971089049132518329432296399904610203853742254247283477686965910208511091048009868177067711698134052203066801838419087300348620156741204211461565424939354282245398344096697372649367165433644362726962283966846636953054964126753046959442461844822436725194337293786080434724716389995853099562894619481051313411590023038965299958329798943610980335949334599381203253756962348774217568338400482946368153348263695598436441816666245512076570751519110300016481916417906939788505395612739955476791468004379608085742509800204165308688650044677896560221301867100251773246248088694047865930357449364461072682753889008571929897964545311183796657883635346225545210011290123058315960249176044869207694634119037660271378233896541856157182360956614109095079735780934790949356822862393933409590262458006802408591771931382667064289488293522363998219649575952375148145023954751836280061736920346923585694290990155625867229645793405398897067192255009668054182551296463218753709353068677534175237365257872745701744891849020469641236494121273672462193815927454031278122187448980902326252776222251410817003353706985895943843389770804097135888266735130315109616832020595697842906940290863705308321422379358229638473634765991330124073623908893767747309787347584083917632414761395171247783537684724074860364599083733408758707167698519033512009941658347520189963698677527171328660688454149562723966884888147647482707722825838400898752962361386050173081159682926567073296991463026989474552234958636872895603395783557011063874375678062891828376607954059769062424429150184890414345809825664855896979349438364102743176053683590487498400403752758886459105950840931411551702766229252321508048870121296871399904346746285975085736227647235810695654178030015378699425152828189421945050801317500812636018269563625360691245240641267925936598523336723945289099100265106858919207877595015471392892189754264947205081864285380751106176469202915516405292173783933600265311542427629316935124413461995297833039906163322060308933805746242070646166317608914102255627746538484454685333779460718778218979628802591916824046498536800264711168058366983958594397748521126428210581294473098477690007051136706957180685816721771881630129283499820529166264802526674306557227455762265120667608390008988663878251390907215089534368340699679674089939181534875397667669411961273468778652819500232504531245816165856550317646166212733382863641317906232349992325662252571055452249278085720174481660712367799820802518952116641066450924870612892393531345489291114167721817949439929992692246957639226057547735315946045974228984759047729181246644269617212579636050883676846079147108929203421999542542183748320464960950944347408948019931245343300117273530017421280978140061422377772018946162882206929433804185268437283005365504036755930999971507429699308490728250088979304948648826666415758277695858624106402472847339354292276001682721830188320108541976039906351646495961832449388779030597246995990712858328774259541439993759754531876079048209315221193879860121249862732581843094585155407549759220605445288366398189070059270996992000718316831539872531685701884578083686236575848516803512964388402493474506369776352421309753004409249526263182108187817935151987653465027779118180565569629363475487544700005055857364929988369224712108725694781825814938647681122653451759265507417107251539823984058495982358385310424289827690524629330545243566426729360488952302693874410038718831080616509978803700977900082684634987651575875502141498080016035784235052062218984097863760441733371547851902887173455664472660599951613530594486515642558511433296243873898360626962622253912369672731786384173484368431726933897971338980247535434793742408756765633290691550578050699665156003951447512521363382986875297980865267589884708560345319488187965994478895735290925227287447725497823267562362127803579956749738825560486701621352754682827973584278385762889814357601534810282655701827517019513847790450733745619896118057744678303440333014453343364842282803715074505650724931224075812206193296436381810265724406553198037784638194963502744059726475904326893232011341341249395425729736204623065164411792447771205491048009802122499920778821114549657353553098804157880790700893237591111125016783661119309471449816094600976014331524844459118698273583248124741963820436732909000568608156300722534240277872795234502574915594683502677689149289025875454167147888074711108829554604759869169063919387551238301200369413058692634436776120091480191560675732420744495493539207215624645030226608691488246945310445757287514569887481238646011422429530912861820764148512085349815030616156256012977929834604102249451868047483420360060737495966155363397081991900966476601227256541727172816143009437374292086179548330441186696322019778977630075119622646670958033231617517083344602852110616183904105255356664349905344672817303700817496434055166861845214257638838851654924256802099343939111622153603955770248805857010263458119783358460416110957638190245898695020709322303647723387185584652004126295006938937563694792128612106294237845114591790652799200450676414752173198264360033784223194668278316868961841362783534042024427714664056677101346297563849730382974204162996112428342239650006940502468425893603262637905402617074440003967686255626832672496094352301690083159375949274064110510499354209873971592815029759248621717583427949240020869134116855422811848832411467737633935082481614385284038335909203796707199247378645446654920930401842028694962735776575565355183781409864666174046453401970146746098306558572361762451785746201828205710634073937879559981898322548649148582274422624968136332258931981771655982848646612863544074458167837341358981996517675240583294055176864305538808382255881745106934119592795047210245331686485522497193409103035711590743325307584526069201287311722697952607934564385190105387477265957819865072850157762460365040107312423437199983406360468606125906385870760613806193362090949205798532825039251811313020000549009610323952778636051423605824660349541730226703360100680629962382507610392404851012959731732275054587534690754526699073830604314784064210465447320738080098540458900190047225227111235200694342001440091114769071434278549929666517913378792318611472471817354452521846896965291024623320200253441651323411282395455688478653087162432590386500078802088234624146222816312188063081934883376320645182735597381719330527666606704994681233826401933721673055927199470239292502938915442424464557334606421844560819087154181273370021370444440986971060475870974710949711335834313131647567981163625884535696309674213535615916419888066722660109975074846011588234781162925707277268014055141422906649220004940019080958465133254365998070260933722596784748244738282045726592863866845831479050194944337112941920025016936886218471525869828081121960379989850935047925428678157705194931292540475952599330976791285846347320126951047649578353777946391521862110115895177567126281813444260439332674686533698559708715458630381960106195471353605099091732088353097886734352937881223582095837571214247110587220131217086386848471899789534514336425462711594040063428017883690408516118483599932060449390439997459021023910028882428604830513741174845239091391816531884722260532839545483075716387648401473880506282915385376639593764303123239690675724456020290455891641556325000543181846534679059402762009028635311001832019199977380439857330237242894753690769472277879614637509886436867114386673692712428582936510797694264236013352363371745710820975892330674717374258767191997849024316755749491120667651658560045634813277188338945339064176799540257591690414284825973369199093600680687602765562294711506280224002724959311060366074321489847149433123009037930100487448170956869063342263073727218091700895736622271395930833087030630883149680305981166521668427932229419745425107277973351711843477045056912945434741446931483312958873002598927860305501982450127638867775707452784749203354623976546150624494198200022459776020143994542065772213862515925968603169485347725121328869199956399531636829032061771176067551306436753221126210396957019587174095067433234363105830545057270342401868431239002395133522344848235405757320963219946540826949923650785122944213462934602174018719914400604444421040400791399892050321903781786661005195826749613882003947550383313816283605681734472880074943740462032164057947222389449771762233812094150607838633278525736264419824670247281976966425888061881350515195313546174505612543059071201938170271875922290055017825593138296014706550719044070878979516197687100849495617486607205208637988523053953156524702872179292586531825828595739427295105551853081740714386822420846924154753556624031111381755692518539701508984442267647171856210407860666688745633394168956577261415994631513236965431443484749958706445019922564560094304830006920571023109771115032192161222830817747709736634968327276833821963338363702361335653676640660989877441924286252837306503936872757529489834817313468812115960837611782839404081738830147355320818756980253637964313444516113561401384104250766677902394892241731683117132387744943541376697019260847446173350298878035588122288674781434352566106316844608682386452678970256343722495398028935985086009924805847333279102706275855850719991069758834015992702283165382366369131201544733868951794210315575839096933496433137640364817985450715539799890515781293332274865442008099544794041309056208134782724264869438080983744893808837109652145971122081939125258466739920690051154871976895945417844922062257212880111045691474653071506160659950607117641011464642232250548909501990646891188994298454895465294205682509294451020304362758243102325764458713668309299217181174185568150921882949434917081507333839492024278932415114776390689434219208072288796112843379565232874763099468539736032741374204365939506251336802336200571029482044533370037022727787686672874284717550705614492644769703006533106144348645306109568540545332999104507283995978935214773491047260488644262474529163343178227844476615503188473693181327642920697457391585505585975788118848253177140664415696750325517612908857303071376849733877008470757887817622858702288874896525885681597051794319254943861404921161329198704311539274744364488213587587011870357566508723595994111230424152880612598864901613383708583147357528334579379207271185544941114572901300280302912341497398774626540114160790209891944767713599096207888269449777300909249448402106822774210534043153555559056793160299418827353906089316985295758819777097471486050065823739108203962725960395894561949162947764664607055843971285820569766857683606445368408962922672902751931050440254337210836369904471221375147905835150333394605271760290401171834463303605415972352976294614303241020443580388847020808397227915811442905217304834648014174409777967195741480566804477863264567429460457199231016819516936853411178285755046866494628802873793319179664209818113580978721862158681099207451680961464390041642368939895509484160044835580352810514129090286113657881041485046974453158998435756401966997696453968775057589878990207302928411132154254184524302457848207888832700854872964141332917765340218194092804567793352542232685041053337867320028079913881534120197318668255068536678828198758463914556725704244237537674707499053293570113833257568008535991611646636369379539930792654330923815847247156613030873766201781274679585925717371749148006282983389525571808819718569292466790399607310914039090672196903275667641043178599339143055769676103388619882507447454105614438179767427168403958575418331733092191544487368601147226427663555880638907446784515894940288653021194675703242653489193313623544855142723769468965492441155690488420304258957605943437485318792219749509164767893991055132025097737317748739519340245596809485711958488991695726121358205461107198190817886141691589791873296216631879722180010598047307179261407805982242369511801458497488861359324634342030176867681597926160959244041165139049321431807344444263406077872029045930298539148804347321551485250447641659677381642816577677629785325001995791056431539853544783878217885757739334763581631406111050237860728213278325383923304488900308690115688699600234439416122893469974986053160804181577773286419778272550188689276672710051265714947872420202016183750852038158649052381690145555422380176369257705738288621207033728678820158862136452727123875586277526897680786274334309783667279029129874268823803877544778979227501891942812863008631506404750448608751798242323570868490430541714284483711711700844167348706634235573556258053487137831080074138306184494111160254479656218879985488923350174445353822787198572033191869998411959478776737627280874891284490967853667775659611508869558307821686260527916828946135816839650705777034994732137306729545164302951163527244574053554380307050702467815021563297133879128457814038604155961527512568006984376775785662779322468717729583226393531633052239387439786749609936050590023379536117875673970637733839051359279908123145639403552333170041854171984761879657438353905441073697242127153035364532095429334021667706104031312281761632436652555938505117638379200605967850780299399074683155524563419786699376903789510641988795656878408210737499750570925924938786065717920346718851161574999183148473531972866581335798831481012321823521704016999436716615680649890412433557197876108203593336351109883191072883893488789173950637798889917341995300636040436505676825136495245127661792518541816110018984632309355552755682880157404313418754181213221797746350359325745874124448660306132624741023187834144708411036386731667921518100165825873496400659716152508482392437000259193886387962340381148532662027196698198456316075162042973627755430255608917639021797104765483442857449624503002469030530008707980886934413086591518130561401025116173291966462983854389115034901463975503906943090717162866683130203643945247847610893745027917163326135100407818731033097552672243673136433440641465312007432725909348634274768983719532456726159660253993324411976397779246478420156947119647800413668868528373410458615981382901675392379332142477544673928732752718067703668417378921004704879352774135453769541857682414630193904635580003940676358423646408193795870964063167431234944523725970837281757754417596103484435721825999399459266726194804497338330418012041962980457499975104190361233688921071396565863760745092131317466146302799261515636550574556562253025939976704332353742680592633408749402176538829046806259204090793248414378058588396599904226308468840766627907767096159273760670588973716278481348795280219255193328514087481718056065102749819488024003279847519287699277631766123221717504131293039140848895430597979968684913325242946273069227247486180300112486661896347827373427762062798341905473963403321111445825156436526551934378891386199994313236615854766437621487410056539236643218009858356571465600858853262767899552830827528450095760933866296442552882192225236406342348220501098511327165520307525019729525070631441039191191619098766285241826139062968216473020897196456394368891423433660167622338358248102086993094252841564340598925124176868543708703215140130463116563089782907065268227687583377640677494612348383054083853019536060730215770727616874688217584970751563250063117109285692979518386612686904293563371952033200254652849089004467857477922752788790226040923109709207533313047552732829881650585471699543021326135575895084761118403561774251850748399790307467494985259789050651561564766208802497919663995583312576308118305747028195091710058256100210190765960933645178798675735578425643667310387066944079946693370322074466643782548109307480412885588499285392263263395600872534619097953619262043896699738970365981051372434179356162068617539369206896300925585751273688355555779625073763864132592597572216524826688470698520133035830026240100070710549631548323978275353342073106171410322460428914922267176759029913018452665381974440710906015271715003745847786689311071360675230553093522622392852818937987652505376382783411685691524850399687079478837266916804765595715191574879081982092455502666239204088931880025256244405833843620936368365364375101659240271587320484214289707860149780307729767689861138546771309020949746593796250387097079155997752915182946577725765044867101310045464356893198355164850515911257574181275980533946621795881078843490074743175614928750435879058690273936025335678875943469046400737696175598926469096041179325464307579992294993853593084315527106094546454959022964076418868981546629473435857718246209839585696595558968894761303176853217137139287598429906849423911805621890857772769648763196106592177929621822966183621837992700707220583597265000592600389530227361121343238574810347662456579377296117101944217921136183955949624702995868451720227581666733596208527606307257774770553343258095808708703490855060646156765936459510443253151974170260160891406096079518877313110481761786533848384416646596545595827212402917533542102576484540523757024018402029200983102148246830554533575421968460009684122030890846430074104542840065429526299464529333595664759873781864228686402328561110066196539159879247487566651554027108428556232622261762780336486953514215102335297246310067812367420736543729258993766368025433664783998585003816614500363697209677787082077532434976592823505834274640690341510637715414756794425609595024363273620775732213720180420854905099933318476913123720544652446790603435014052384019109834922450265020143724813922373712739290566096121956394561337584496091421126905325000050913688525112606436752983274383813070459268929455426344153506430545189811816205232162397719401657090439073159947099063195833095285358991171091454869707899966262553489965499047122268454382288124412636456032382947965621686711444424345224014560573426589890002001501922730747492418807461798961802043581321279899904211365329536166415522337381774268679441278454123027575869356353603132918386688772923775244851714597318582982323025405424974337251944363117760679995825374582821589857000705210244424077357715915915548970420273582025778682208220469288470490939962242910271548447015687330827744332788092891063374954013699628158270108535089844507080048138348905558717090674726342602998386750729677567191763291508200298495083470490019950837021687992580587128249301853782021901440301757347746599854237663940573139120472225217252520530228559143999937293304911391066986807518567714256222694570378974574503466270085653258599518342698017446911437459642714540699718030940398174264545910480602318572916472226040030180536853655078733653325495039786067921053326964664684922069673846727312115778800520250571527556896374628756180303511662490634881546859679558262155143800138368772821474232426311142412829007562105266846450082478385236106196748306977258237328037611034865916987112028709971597206194675611909533870545326851632751426164275285454462366590117924500737073223211698573142683464250381399381923350296569505282173719231420565054128070607976715868216219732736601457136965733482387771747675581263809592328748564622485762688571311219306604206286865270014957127261674008882893345118416571496057282928777405870009940541663740523958447751130588961714762945874797018239042617751407432132452426044785059806459193261734138113272273368741513853252573323399450393329023738044465521231305650921875085451146664071917139397755366763518763621468188230165169416602873307105842551490228388535006788756546086769001546952640024275265463913548966966843568745822153926136847014091849816357861977676598825557254880891749694687665919960312214197978153361000902549890103671508979367659743496964839800600948938450925769498501122698259539010550117163633227228762428652447850361356539762821610466833415556038556442999520264942347175564834718427879721355343421908465500241296259772746040980554765908405945806166220702537709408386573871886092232247758666942502169794093437275364303295003632013782025920224508252240717420555967777382417729105752659796776960602001844886016628237219131616524878932851766753456018589664777281067962783804946332737757436223056297485512602235522335741967915701228757678870121918702848405449728893527868071876622886335769915441942322511602089940532213327838064898756478399692466500751953382777757023473161416603485094547778596159101254262072959064219284821573991899581117055857562874864597577959006365041346652915396054705793618485110888299105625386988235748086841550291621612134262208656310153910270335801406150118032595045468521641053396108376674919798013148238510161492412390722476257941686653755062083202793159475342301973368298824919918743142867176542497548160220366422440484359312295108300963746457814638626985822773195705605961911551830863033909623280977701458924956043203173209309439830479086012969367451504795640105212582809171394019582869531524599135277785223987491084219940797736650033309491847155935282486722246932115884181868690397491189766506679439316350684240313692648159620972981615879020057655221759537532370068435916314410037968723151239627478388197935698192791635109105338051055138825319590886108382603579860798201807151646468596893081700959384892603732013741167732399669247819964122898724552798630902164573840406379579111731422603364523231562801849706483541848116485733833491961779517965820287496188037051096092155167499823018481164474549456338545646373143761402923916669083322492321090141033360369270770682566943389735594444982174303822896500388952646700373203504099391045571491883110811789909962039645934193212166925700854643875682363260403851441123462582418590951526417035817704977948297307412279005776302097238347280003046703223596429856870837631951905460636998376112011952805683448308891646356843753697204129780285717525515336427695688475250878772395638396126606571565985093088386952076477844265409974012438395938330177495713029963920188757484053469042690300436600715581734492111413392644217234193697480304716570746706488998094591879218130311633480496092840940375511460338302089003121333388991310817356830950896047916606332430469084783562394336339888939431954604911360778697663412121831785879526423128306660284586821182531842292864946983392550221547123845357817821245419897760828444213262830170443679740496035286241569261666423071146221799779401738450303769706725624548203817938516874860460564547782629366453365453021811405123092375431103342552814486202854160870838565745274820740184115308746293845686410236137046412343211124955542940356153336519195307647983924297741652427482688036732577337651492999943358175129312229702166344614644154215314131148947344183578616627887575804066198292677964507207153705105848789703769584353910199043155320962740392086543459112119316536963002597047550487710375616081252652797708154603514837683043312309992545863545764461153048731482161514479382895610939129974724285084243296422551899863682154405410445059209479584216242616309725995910244617966390397043517885782197913641482133794279946592087741525022137119992348323125571475991466713495076863561677607958291212301382050499521042077921565008900985998983842505658415782560517636115534349725950960061997496785944810604537905956305382355266288460668494805445471411788408248539115933788736790676340985660817597721172422702884819981760018671837251282624462458866441810154930664831633162425392863051504410569548501272816873156616408450822266686455547033595473309886051396889900528934024688518928002710003463593328214348502204237699772827264930714476639847016212721239509097159528043155373549505390051808027299624184111976661192721580690685349129707699086284783025085778836562955744233560089514213953181224161050765575280904055932025593392888291184614311874234959730855274200723352219450861675116978734418689201364424789812700334607961938758189681953144813819047517279147823440667426040119424033840865681496856249936328672314912417693978994451668974642918316381779965665266670166543118837480648505233765080743062123887551955897387725230494636849351529617419124800103369392457055434615305736328064566361804476214319950028530481192583700805224641184713610041265177971884810252544689377396179143096039426644896497254430966569456093088790428272832718316006265997637149479430461959267475077894598764954143307528617930326521369087991639080264985219318209059544396685128552139178174053135119221952763401308680384905681466946385422440037575048105629531206197034642196691743245666448135429086605711275041262735658687428712935925004005604848358689065347631090628199905575745340619251578526180832226305160291292542066339188908715391143073961492683505791692543594246047365367367918036639716783075116389627285377913131278052785113590731633408256753658058647308084094530171314310254875917420512170567232739052156504867947512461446580661920510779811014735011461737884031934646592688044731530954042461913601318962951781333857070664669625082362332948864657934799283005319367515510865220356914127069116443097653229463141840830980363427272908250033766543116373703077559093666905602347890383641736379479154036251101148213156816521066514252053944919450506182695754560289840568173702586262110122707834935976171262051872036796069603200932628006661265772158589748252779822663885253805645593650736234198696756728405840944191066654724919695267411579385776843108598595292037312060342437709692098744075804463247054471347493397388386969832804451932755958584421082748863164274566983411381427608449646752689588638674779394024905271343980219651018334216500513651760849812689267795739317636370943168277677934671237928787751019345332160462966218070051230789665915498065453914726888385902447605989110801488334373167789702757039480611439014911154424590538312861791500461300203704520439683162924358548901342465880866384295945496547486102140064786469727480717962124521063355410505949484540113586760186842985480824227471365008933835187674496225064829551065618045962638104955165609000325088062496281464122769451806894036911885462433903184389778452784121602885464326254899878186837750464457900884447780340715826445093099934452715369128451260942334326282133549696187649816739590396824444797672716366670526720141371950132941318398531063269485217603058493284077980919133407239822588606555488904220337096321845214196534641743348189523328237248977602297555753831081187561684070791645167583312627474650997012124281460158005997567878545646476750300190354250948156278819818877105849943871921630786361981736099139543398110121798039781060637209179527191757878641351207279634231984678790569455506019487326833493168326833998995607884569476243532350846056983230430987952868084793011197499057493726064035311184742267592261437733361446939915125636653220688645517304353071174271474444758497279321776315881811479393998248607502674987477239267700793895927441772384608583908257243235506222944122264002985621088999237015239868734593145419806533008170721529283193551710735807147546316268200213823261362039709429365085741094483786343662773022476775980959522670395241328323766392258687758784991023998249091730236698328613677274581044830385653210401709913990171903668278319708983196407259308796023213646348857301057219433620295442984491378505530258036323986867644742700092152707559742546865114945647225513733363403704729953900951447200674410490724390031591984704379429191019574694400013872820517392754719490001233890228880445411706826305786372328882495466152120856679484695036622559192596232576834759215846938379051735061129480903437802653053179802557035236558132578788392775016292021328115503516983427073767373056957407604716527435131340736634998570895889382358951338149593753851642503387548142666366256921772790317465880214101487364142887735927897377870662669135836530455952067017293408343172872643160563198306694536477128060483126513668097442154371726328302267720536844474307676735506572707068966634943945002327781500016161491575156482939791500623248892091100769113994085577947613057088792836809254341074489924072512989513817536576044243348362609211187780358560413739276844936895229211490922959695428216668399437500490174509934382399976511478009662324873417123349662988691649540106446331966696446645549006994095082696026643637442667049645016463691879250838655949369413853764630897100585227425279628649032154268464196548360268357744613706250623825966017676947654978774851585883150822757107697754004446408108375589721236788086198018010053469657710849787506240000510909075314314451833352991721350183783707702447336665430891105461325592796584140543793483569446102158392529668980689434187293239066602890630963173392096173336925453535560622928567702170274330979224209469418478719811120711871474940681743273376216403506973061674267870514561062304810741780891690635904861184782203277637213926332334484577592305452254528745778629622576915475971692983320325859233680123700953603276270182575115253353686621344364111452345269281877322316302542963528608409601854813574449210356459958380611175261288515594930419565162541032874842345548250523661142451940109594385247490273660889013109448172874573563765358751641708856830234395079684674879170789545914836199105089277606063273837556917063974708807170228694274946358332729523033091233980349062076469758285358728858487034873515838487582221936408598278651542368195130555084934992816530300902151158476768389464105648179405447097840666095867456338706074246201543454013030301278360329735776587596057507718353866359555257947400844000488902792645771726021130377684379493831325665974342166292172828293429222571168571032624380620284771499434511064153251532271299181683391521131950772963260421785342845328974124040321381739938522323529465409799819238124831688173717101134137131241708792474373125238203615318058897723191582289168853831424085247899689685707497226725542798579505739743105263785549638051267006878226746689088925040793375503668796143062835941263999950462634134126755047951560339337663975816835921527214108626305482817173502595622379031754886465233884610455284258644924515004671354279707806486474760712728455054543266880844989432195090796889820453621261526480500337207296516855140230908224151515997051005420405678366471830469470071482611289755953101200625559084437241243575505492695020586663951670029154941075206046651574707753578243490717426647502800669437026808059702868129567534491582044094028970258859861661568833227044448854097640033084589812022260404264683119326519180600723588789096596667576338600645980578592590944472680221874868477598897020300324058512947804767366337667376501906676975611250452579102793542039519124878629354509281849243596892007824934242402500122440959562978068560556891571731138254066332789364454631001160812001883623026996777193875291367333679129001443869957089318546250146309204674117692741729542536636996224167915982734225629528537333655760058341955221844956784193047306440638297562758244431037630784914711981857961924364742585825789069644026333619634031757992999778376329703620306001449540823437492972701027724648909568587737175665642375621120743871491639217040895391601577330050594357993172345101045020530722235081645408326933926821585297716068575742916687240645617226433157581036136037368332530080703584022096546130445706765646903834290876353261719546940969622405110720936083478891729534750516359629613888910937284676810364394671694963158462554855841905760764364253728423878219015173339544064253320003835718318386460593214259663174637566476584836870215089924566236524494343738193979405715074096311180439736103116937253366838984526548389557035972642200440577845274176506977284087909694953607028515678198545446891646522974202336103741803998203171070061910833619574764995386135306279127342126206607582894403842781602950135394138167580490638529200290972862833793393372195748658561596456913397814130092481556798713694987098736342447322307059866519423328541033837053788728403926284675953296745275431460551462293535199072982812084116207108643263862293501671706660112942783097649255603122290047482980193377154044015963631395912817131878201671361291182197376496965572267310865647742859258642431338294973864813802282269553897442452785640995004904978463992400982384385874571811052218373789016469149475973766349202183127926880176080257425315994717737191351635059567975557606820359454179608828517518191943471788485170146950578177522277547277284377221780685683838635744171355539573449457272102547239868679552652954412964516194309517603715084794148158869099541032584378249688594497009345834570827704039271439910219962198175194463949383469593893356913371900821141686981859365460308018013094114303875600327918080688156298602789752322802506374187355295689758072143848120689848775765209506103701403838907823193857903662074204286580491103906147694132046543926109984013487341420011263243030058000852153650613071752034986198816533128754849726490693142990102795930592720981757635850242284577204148552288995239219398009745882157717251353545145361032359413847596702510647052515104516988339143729763172343627722277355832851266457231993571721915402927407572199525479921510521582830571570166275464373897821432551347722353067711110801256080664629512907142641366955543766143578901112180313319370878099851536868998855429923089055238485871096488251162871788977857025373952902680030797067796024184480098116553089903091088400916277054977956807470161911698699754892745435201788362982621846704269881649194973499274349164657944709337350635774855537961548610871886566212215712671849666690478153174703255183688726270084753141635521101982903845625244632897564948800305329186491973973927602425877825697845956648643203265095109756366597660433949216312474089539353452883556047170748980914626495239548465822192495152275050449943578117340518759302733062972104291526571317882245821120342922547005193633824226263516588130554480667855495543855026814191556990342472815926213226579472605361377129647711487952823671452542733380956729410703496429771652302664370574134632532239864154821121079075674076783523779046561809257110807372458053209590288312728574652713545407585975784664618172990143604561008694571067153313708193153683290620356128520622256087480964827788991258157842548521649356891179741066802069472434560166578052872643980630304467482233023031714589914680186584237099623813918507695898309475392644943163653432353272573470584580537519837080156840611210996135185866578763390375382133511467757563338932087308169989696095755953223348903065562984889849673194652311495359471886054959749493331318901662707107511863548646596789404450142836672568092906998177620135201980653441359804790468605026723901088922924853369467064710307606024213089475693001592576570365818353297129475456643854605494040696301190577359711387790436886752459263915169676359847008610141343030141292385182003052892665801840944469904095180659446261043624991614074204381683323126813639359563170736293183038601036122759308164432501494936964514490593418510980908183832151491301475089089011590210107341983615885403028250992086913446910061614460446978903720019418382580985357538578381444539940630306733820820713101310557568395248423862008465514408447606750725888798656902051874765629574775701090121504382995275223893859748539921875076402094697151048680619424267867880788094646243370422861369507686939620679265881816962930259986940685944894160531650171714574181749947861332454235987128769385942540752361502790609622929191534458049920733479739892641679093257219331344239185435560546530157889669122442890704423810822231234368871419048032265662385463376595817112190830834007515492681243469168994645659608730135448355647153723594596649596208777357796466281270040915262511666641793787779500561145170288413985802602663082963102999809546788884996528501005191809851176791929054682794150265609488855641669292838991799283489505374076010975108952273811938302047278261714585284339867344201526340230901611657818488330169869193010040882419377263011208916057970812333808745254311549426683261997595964300963704033984463668457497423578470201160029638661795102298181201540564793831315604246339907293122254222336088861233766490920627415970929822172415880928216004451660121410542119359732781782956006627887525424188041274381075322279394233543400231173779931247559478662391127730230985204137819570547142792251719134167894045250871449843355876223225460974949773778471906891991841977767866517240987485724567232102878203350200297906455119423248803353518776487034908583179902841694784351776993967173492870203174975408354954221827689566613034194664598431725318812511367049091753906627181887706544734995295446161433360688887449925183818255893013815351899410115925811638988036583548358422303827185637858125780279056764691338697994458342973762963219222652276344240354793088347085615777760579812348453753943395084173483817448724423577195575522912955319483430811157783585792551457718342948005606645483748065313755265239097547856486731123242527878525497487454803575042160182309993877506180980847421345624827524983804783061187855739999087210634262221397572344433430511563517888847335837958628957166484921279895622094675855553681827719471608767172126275724064832405081038875322583273406208176344207171753260461673852655603569220130119741236828085607523546165810126679502353989387260708684363386308459336640186456121415119915216759294484459905792164417519676943800440824081578883102712184078053163479783279534107872808316038291384618051660338511312608642582166323296802277772879718892775763506826319648451063519828077021537414525414833303842973834375101424332238587198598064287530097784526232869891908712272905341296767716726477492265946104899918355964870823301378000569644136580317924938486643527971364286004940659442733975070870476711588886657629304803380621628288774199428781908919444073156924157704707187480201630244884549522936582309626659885077609848994709249599950010479961158285870102327402349949387850152162750247309306261112134898343323837008098513129223979809834320420294506753852198999948542909444590634663871064349820562286852867593126024400213255628356268889727122487503524257554265544120005244907389981539005454316119445692630228553748971676446071926371247216369092099918564666698492980648790410267595548408572962987123590627592222340867216274282727146691167689922931336336936426314069779676227000796012473365992685486589384838622951194849000057931417685314070549379806608986396898364967332877396768346794661656434400495976716791185268266769380294103148359625266611176611926223013891012262053223599102261358520014706047422694663957058279506703843483679683964552715085279458713663703032077474107732157660172095411486958173290315388084422268098233527996330868469832993346466222762331850333351938358067297886256249458622927030364109551498153570680455033892180389004004233289572724806153313715077287968477280160507842258454791803683477991967839718139172124040113951514872129982784488368315109764972814197155202750132987013236545929411948042437005001720812230975966741495353576826186989144254704458607066316329673870648772130290267469580550859693711328181469099038710170348295424324283597841261200567687468882094048044030608153642347601255803428780246337033205962795228812878467415212804700086133514984983194289512977615653039375568519104076030119344172877250538082716013693613017674314644680876593259012007734783457597977081570973086591836302815166599913690384332156414518378879346707615896248063629020549249113574725493332849930878045400532927526374358241785672065128448919731895694688981667901234840219407062112599444199062879131137243055577403949442369032387548221548931605067049927499972067081707192404929432633800312025958474210114442711303963460211322563363358871752052982957604933081081409077830736221459840894179902989415570509766253396345628796786914829105107413435205545972927319884644514652340441280441223082786013179577533947680877071339227328239817831612570299886313545877879401896117443073832768245699144291452506162166790434027144155979335533340878630837178051587838280329769734804517498039244457709324347952136747130923662597468713054653472347370247261847679735274703566177578203182259205166453466584179948340051746368216411606355782603024231577602427865024213311598090819455569872271103498285738271053000354271429372017327996672382184870730827570777646572236922621166712524420474521266303567512971753858045455875344384633695286718072374603499051339219591336937933284317211280495258103123378948754652023982994561722229901819214530288558483376208358050364703151069263792573023158407535711013804361833668387382519831142328779164315453456968550878509035884579692916556907667145409555566649945532364623129709756556404349046075756372771472566131427883650134123358625711616071983089134178757976628622274424643483751469734725469288985792793695167699475080507189193616081742718561145567101454048764857352619137097924041700765678010215780907970738762489527631348279312995317141669899535521368588562032626646423072334340079799859718467943135327476571969466198175034492341084492056794264087538269372249237984993104007125435169034305167218303860424756004801907480352821069101208866046851374707382925557385379294124066228946215247850335387005954071039136052690832630067781724107009127357462446508211021444013840850438689537686283743614494173830831702366355232046846459922208010458873262465800002625409377099834602998072463746376672363147918298900148794672246776346327647907641656746811315001201242648010715047799015511536064475978889999000887531185764165429548638811746454027870732942940345871024052836804312405405086923281594012199858055841035860250624206209624978019503307259785087317817662056697975677487027224928323449892904754232014943348285371324232452698902055697350530257456425736006424568628020944410904633388056450666204782406799292759135502455964793577394089605843674370968232323432758174497085477933138040598355091460213837188111079632089941388107824416231954183636357324192924230245836115372527916481987672687628036969602861826965634772582801266071846705406737678378147194236670841479795934843046047094253277067875327067621672623588885561940497476831742862573919616185770416906243918716606725488728408463088790495798764729333108806332622020227432703924339278159082988924800797475797062702592832094014294695796908607057284865202035738953947477068071389160587635758385821718661635089171533644119888952960409507641429848555477277092578196693454120631049287604646186525900474244518224717121621977886476617907070107100240055146304627157369932029165342457505750084105406931804369729861534137675890974981058671572962574865319227595691351041534740926786001749380274454561501183615706880693986272222294234354505346616677394313590966819974613969559622915096063265357939932901590615608106628923526829534435533617583736552179183000684111518380971973732593671287801372799829566444753601831191535854672893114912555049350315388399908207534550358260658174959161324572084158231128279779104557226590038019481448140438927964986845642704954984985926794798266894343047855057353716707252071048809173143848656700048704928961390398584172735652905551737052299895773589204454738172360051075350115882134652027276956307372794340150359228301228515664529749138832436873470724545187197835690908125135552279466594786853658105048395896246783869872803960047433019578117109236785879515308160090491961924915705498007856701202329325254535587735763575597310517655903905977107230002912171824111963716161771619491841810685666869632895577472564334347568570555051970261598566370115328200034979806937628402706296542634078335602607682736750982687034627372763075951013359133807444727476300308925094735314501944869976087660287397260111432211691339139243800106419318086660183936390843099773657259688184448516895453773847636320479096249195403746036392816070310552134728533410570657189081343566825864641809477583967933185109268403979612552989041746925477431000044395149696219143128383203456952032850410250169820720793627370995283559088743584776642016475837936283042003896619037103772890119146256270080283812656765189265784097513551521845477660292151274667618387957135336960876535377396805144279451063318801605649828261622271949261007580204515585996524538587738500681920466956786299977284216720516855997025675296402644141751443165708877487274258314138104485713246911880219974745197789309924666807645648368205335709810802925451467565243511501433176202964126213692560234787304567235681916340892414657370111308221663475247527812532073890420145466264983198069640077987477910078186413506097411086087589723729246291678041052164943328918998000017632460964077803000485627972972731331682063794029275092330036916378784909426305022138844048613226216010553321348714138535169416849735819973464083614460794870006307861261724243924832896020239186397817648654077510760464138388971213654026760055907743301550802898231754645035238146375222487192706717922794811536399945915619728028899222068168525126836233692951911729027194665198206857086370553205948833112002167883952984761836425697543544896638135825381367964641613679083841247654610987025088778968522000644631927117307218790007216563794926717310137667017266976173707448173357013483025040791571557923105251354372123609596940928018326288057796403658118506229123908434532887848720454660887408774136081409505416471380586154512835515623889759330818349090667080575360668972964353418739747841534711335709263438313497195108367520210535350853603389515425002529029048440493406433487352977504412708445945531855475794172037437512233630075373107275284272054074610694314970434016684963706650374441124488053417776123028764518669084179391109956496556578498008100242687627667743852949504520036959337650375202275188319604980787011499748266420895444152661254205823501982989474026993108074825538326988599887493276433193562970615991029132579028980738807481066536163299927927378265531219910820183883712588248803696479514586573325175120766394866980680648151592474855953350813567830683769517376944707401944079864875707251250791186102875388500955393335490379460914867554891384792592592516543906881484165641231126503378551556088604640309184717850706836189275533410149021790016511410187546230192807557298313527903499283686927079387096397003648636907657792861625280764321452287141276232215988921949161416073769290641351576739308386637402570925989944058971957060775274129170553932933719126717037053481537807619588938533850847926252215977946401770134701846899323983468290591514497527826032531547506481884444758556861191994841776911669861594092504383429981721751835877917239255315313200537365266725576370029887751337773840838869791823437710666878574801401464803465632621663568642904845059507324064559629292212128540524121281026297517526679745272784557805187650195782264802134448663019217913275524487927959243847954236490692374177524567067390725623511770953415577873658150508215623747657465785359027533814834794964040991403275455636216654507498535210826071611922397174686563698550302258981037909428111777535398877241790590678087890925064810632284288824831895878708941593357809059361444955357616648155670556757984520688850707581652849829586346053870961758140978874042708001677743503289929256418899649555768379514060686290518975366516594142299696862273637153433075348498925498514028665799033620279902959554587378008304102635986053872706163799206908979677900916106220845980898144221207452275650030120722851962734871478594117666775101146601377193781320044032685765289257253956891302450384410318344313803677090512568713852051915006154970562866314529019708137843739813413908460661301940983202308176819904849889870639360514257089385020822292294218808826598676681653095131953979240650787205394189727126467169655209414930691174129366510483778542668133859891923735303550607977269248708683900982789258419810860242077543661304419998704357010371678709200380411839868301866658971050260236161082041715183540604182357963296018531066885009335203037145686452175494739658916195268621699350452617298460491183538163437602566801889209884471151154407484273018089343237176657365066049968894279262611702306368190397939334963905657472471644312572671104648227682347690443592468278106452402135400349512884199302486104348090379290093904236390139757574603545484943267553081068938757422202567263586263664551486629790242206446823744731888504878315363676626017915296985598511013440301296128882754028471826271725263433101000290606037478274039678470851652948565257658474235325872267462204322979137882370906256056737014074132762081045618321715128479581480465080638844438815430203102115492784524165570936740593037464978677783604537090594896027659458926402354178946348605410053478905322892372533814869417362599697376382945323807781139842237497764700681429610763669106249670856373379572980484695860333266126374670741633897258488312310847532142585463033918370520230532020595091631026176015594169854002462711322821259477652121921606286447467061288870368135059462093591027744580863045893052039421973896972914797055768182714299854469380524709609154925825310050372559104868565579238173278700017116744136592383828271650083125692526513616900487590544894815662898997083519830701400707398249368935825020058681759903263901948311859736871358216283768884227322827936713805454931504553546841813592232672715001383555290321226734731505444237919195739398372354493198335538454099068208420178721728164376289876972120276928529565083680174825470519152830515421734158025563172123337777618816092593274898602018608652384060878210362784384251014838288228834960949058562009203745311914097455121190055218610337383938146528961191991727526438495044350635290759557576884959108812684564000885470897647875330115052610130025478010468687887230190921613734365665940881975512103020080212817308729751130136723117665986568316995761611328416311561990551557631456746537749080196690231827313183983570781007484960466443870632054875943793115958398350975592531893927435081499006596809751885389647704249579764572786645574852764692317482291232751207882850180881780928298048608503260866323522903558213588193779733488624730624349268028256915055330458982055030442550214522344940144820043623938691904240044028000351212009392645405624775639330449113469218126266920976008096270504998646861029518306440064450311645441787903625938287903611595555934173264454897733198006419774240480202592036330580952166885476186153933791433218244875664888697065707205787887814924130013921764834573259099516064559477952997782278078845614680030653929061345770641767916020116470312294966925534588847420735644445324670970241476794704790905447621345214119469744050654190012111881134262070751877855922753851942904692571134606380372651114701744718653809526472686181521633514505328925274436842309212836674432287678205861349874533148481602479304860191356594482109168376040286652594562424958186921569984606386610086836480610818516482137377867829909737710233636886930712477258602461801430239388852777802857393302192303925799481972499317120780141567681471273734472382618830262495440809847606854246139351470910241401639183291001643556278499087314358345871881580415304331546756299366644725918906415639266364193468905639867923049442265422772790521705580752351601594150263075167767012353994118857845548666584682838889799408034527523221309769662173948686958659412448624814574179767855642661316171660852927224538187876493555380313480914917958809036706892324515491255825171636149943111589011270538635000858123779516811866525742694094646656063406483784682983437443404138245296902715208921223568254338186986325171796761024880678004972288526544643113165955691338405384052031133855571161141768542586382128558843028318064952435285643707946634328328848308749811297725348211587555422942058622845090680433130028938750025406634928049190645525033201660713670061448857074899644160631708106531076929037644282439584704561088973727174139606744565972283505847914235261878077542295477099555347729107759046848320217343791543338952760620243106376200550384643155197084515424762265992965730408983904315232418328572649849129740476379920422646302865102321434415432462442038538532981594892161040530760217639540199875303689711664878288126708648233860091611774632871820571345537923344992858723250604377542208576592367806179273920995711576192943146643735186404505664971175253472535565273403034597345656190000573667074037773366647027760511519939612420002674383365904200251343368747623016618231849453342452924169924712995292446633956222705446601289452911504951254445652306629596382484803259059203131877476347878564071969297052932603016700477231893187043616163944524383824334859896847977205482601769391935188040007704078149058575331089952221804232174465612666813595667266068039789296329373542673370898504190447901262444230235217710355351668385367235787854609336601572254538410432698596794807402706540954408406974984565042601223253784515133239200312409128224245277087786408249193278654304886710879791498851932477782201771991024990949080723957637595842246790547994362459143859622911239117759112735675730520262947145349612693779762289840716873761487228619546491131938578395652502160004963640620862388796908054260878945492915397094175142877965051916813078624604191413982106563956830354594768983088422037589579286236664726699060966899266354647258009436692786058686686896804419296660718484378995680579072675036613382208304355872367067214543328620436377477011305785302281401451652142225550874678395343436835296939046603022008472521350651128623386234321089567170936385890284323723601030811585651668804747830261815503522575467449958052074480886563008257065147051157392908247356228654326974706518669471858874847326439007109478146106024332225139866251042330986312907678951039006382158029454281052411396057440276094697981842678096191090320729584166938589360544732741672909257998361791287335350676402019053957725497939080529174818961673997069460479388853578902813946845140132065050745573085075459368777340818016678528240615910247423824043885798885125741678236310815823785311364750111170566612249316642376410810003019238942083290680943350378170883494215173733911297589173356478298305514346485194246735709365468961663015440003134978071141970876595467887546323928149018525011696766698740735895365715493521407599073873783643384551541500186010519433270752002039126706750906447638527065551308002660088733466280012156711961519696053069759416039009669291024244747491406878802013596026334397224768540865738927859459939751857585657930724040818973423986838618906517204929888858352736922611649257485089380152273649162258477135081987186222345109816927328804182102227123180698335437489700803052709719252840403589111934987074517274567234073320205973962331069731085506549638737377097326430892554949972379133975429521854101619928623352141147282184247720589915693767418079744885338987183356340301588381813399536732363592184000972417148326059350287114303300936909518883429643882631618645766663939948886706436052012775000728154990729300418360591533047698682520867677518960566682780597095019474018778658081836860202656659274539812072584118877871216584710016980304437536995831254466708366092012514902072212508581969502854852458721178660765070551654430615735704290499515122894401424438505991056354710763649389979514700598105409485226160561905638470040827621379832812741112044991074912360268723934681528055597629084602270385008229191030787267018186128172532088898090308622543344690763913103835912038948822743692840985423630481013935065488329743062969932597293775718433147559035747758685451646515179488377605413372219967351776013199270276247781819692957948243205741716614925990396094235426653186527185461310121365204082766313198653605554122604752382741423534628428715788132670721249964364522184604845664124400049872438489943363488933891065728727858146221522414555897888678539155834159728945886638732218835264112714671829131483634757076623081957480048562422735041452196910649299822111777322769300729829745348007856632103286451895728672375734366883523991013331290394740872666940770700551607790870011062997088954394154634798398424721760615754763650365046946511827572522091931672222924261379731931601346143535031709455663987353150431152546062457828374822992241409890430147400847762391327015549881774831704378106980221765961617868417620035952301485875833801182457930555135138458825632166580181584272712635307875558952947153640952878123959941227426345122997210327883372958150130755821051982464933591106324450489392655515592385642639567307885307159390798734373194987090245525415992120145793844942211552843397376333186089090344806858952988452029335064339880944056884879113313643472436607632182334692911794504237064395240537129411651019840127168514290808745420689820960258233755596051564088926873041511637770333399601042232959815140454409630984674734362412301023770334179367023064386482948785922115316321455088284095904328342944134036245548571255628052307822861387047344641089391518159405408084689784591339978882184026225978062010287332994593095109004642666922593270175380820149838359798869629170660411668437951000107641233543764317625303515572640619308281869656080094572325159154199456528676153562325233174026783704726272836899816580863980784140145232171278257904792464741917162726558009777020359093235606987225816735296200650394447683127678753697152194600399129084260965443091437595658629370084001350616696751303723941673076683815411439919383414280240142884838530938524871384179341935730973187731586464051082182865855005112247183462266077874933622427984548691489688734851936722822878120258668902378590165911193657366058595963706676553634108384905306963944600372653155275775127435964460686323514450862681240796118614843419013212329478261486642599467124457964292943293568638512847628426095070681680145144187203709933499015797018985368420843656989709616351781443436903636047413990376778253351824452145399502732887229765794278377174214912346347456574199522417091277986228285643981674410194241556366435955509428875168199932765322297428857780255089624781871916150415434903720226029864770133008271595287537090025700269413322497702379817655351043045076358554757073397684950697890389882595872716880220329433437501915767226202179147989554000393432640927342227599663672012663975623684849568791380175307758205209185370571014177282458316335044351023278736068238195209218049566065564723265841018017003678140677491660666763959235998263193124301213614058075724185833414490135650026453184167658631921209165063132708295972637912191329314825934473738378127723059779937371345649421477520897416570976973739410669245506186140680021598639112270878143680691724651635634151223246382040730703844917355771992418910523883278150584252659844143643304668442578833940747422229126537167988593315601640757381529427217478640393447888749801323232460732813604346505229768521483304080984543739776025918244768877016575715528557970485040655230629325917816888436633754311703473629647009042802568177458733174681308202559545729602477837997074553148199144871676254266348734055741878719208528514244260315367097606866957657189359749164103887480077161619761362836180008244234335958351931890516025517900812615299347570470273779747014432211694456286002344864594301017441253289669366729254685267225133911005379560180102450785513446749979629588643532864428441862808205439052002823963097191310694991867495872341062219306202278897048643559010069730164041249827772061061170415759928575760508377075573744766181326733045722196676929197707130576640844086594888303666683219841546802725502529051501327502668291384172645238687694011291791320781818154469216974593018688323852864787878038230023145240458827047645913203831067839226422252723888590121792608936911344292941981320116687745570682300877800731400309365975235531996981951301488426538342330902365081981780582221178077611459262585963100177956698964358411680050234973166992837276504203238597695768218188810130503457272114715294614385564169836048902300886874577578678517560022700460654254940911412839264394013908147813507555206240722044023129441222173866068753210781014010733837722324711008354169035611377605072537782006303842227558099275129626446910613549577738207526623934883717766290763363446812800957737143841912951505107280317908944325817715880433104447152436832030451177241358338188429704365710668548155315076524531230018261827352252952964174500192964809100102547975278868808929583103549980245622817941834124309512160600567814054589201063060492022371760349496712647029190945413354263625613013985840228176352365620008402867889321579801639901022054336184138849950730641187084289338324815799206514317504532288010370405721996114832302548018802375396414329113040808957586087138781906926219155955243793849063047736937131358155186579459006929421085378432941910038429718611254590662229979442748349388402087480693102268053978224129422026351364698209886557674827951648819776532253242788812361998411104130000832297445081221495390318879881937608377765866505967655323137436016819886104754720617589586186834087559585604476711662187700341491250381399579079255880257105296703373786758009173903880797402672079290113654965488441924065953988055279698427326880444971666541191238691827510918857633469237210146368148544334944223451117728995638284392531698360431811160915430214588307294579609408261703850808861323130736091984202845177749260726320016557043671768547200961313685949084489481010298697866702047156123438149541568543552826962430437926344635197696361849050509671284772376735156703454259850514217313120941860785917914069943161787979609551032379623755078387968465723309933695421765610460593163894165267537128301054449336558136271932264265750894455237430921014141042026408119508540928368702695587949264850885610703429296189942190123321046371839004982180365552384452104714040692486899145401851639924199469039043920526250765034686679864743332966031421374961707767011735031304488617419714975727496261557642517339655512516883195920732074154340911793826115454180334947602832581885253226883884146064095203714865687589026303163002730062210704367161285808467659064847551480072743383327393010682904320166467945502878592510168547356267372910104951354809146282901343877758151367898087554046491131293978302870156281436462343831499822713031034379005381055795030927091696595578435439059668463961525735106784010262561364055598600162049734775454784186127467497566641210528133615172229388581227672059932292393572750672752375353933569557140672288144154904340493898618600789023607044054821099978751179730717154651162904740289763348391542750599798177365378618079913302735863824507038346092205528185530179058038404253141429539133463028149828764521897134970625247299535257567109048484855530606349044982967687300883366674738928210311633283418270416834162170741651579011456671226952147584872494832005932542170770751997830065968007753306013059361596917870665695140155807725775791105581822515698646243319780005223012294383903773003646345027651350715511509574849547176974002265688566932006347741142478331087509805877217097966016424413038566912500153139744013908663189520440193045765769391763888930972020389936696674893688298845163465289405928224472902788024254065677383984105382689943760708168320001689269575642338686264538964514628904617477076957884627449806343288876740304939499615083563077255791708874759241534178644449621431498360999286662303992178246642665503699432071697080180026403057972677608359364649892506913898332082252914324070546613188303533874643550533399674111419382069852971026633048423061400138796342099519773365876874855941042308969204796599058264364121094440810403618719019361254215535503155049878772480899790428523319908497642607159169946709931754246061087668964885096124793409029523380152112385782349025672108623943847470370596417139937033881041308989940414668442398880962360918515675124324111198797410883346703306332050183618151839723135749822655106399006553020858300546511947955741682300512799262769021302139162428937521116707141199551687426821779264103332877110162495832386399062206231101187997642812914053631851265990906924343153613691233075655653674542179163295968619769345176501892877605668130699182063321242010188341710224869715100498510496368076853826022407998367541086346990421982034376284967071699071713549131464806724619331224059092678211506455378186160515230298377168681274767240819260274472610577348309682409269776216826676172706283492379637025812006046829716538768231347890813282510179183065142688276857883089923358413794863007515570269189093361396288162344086017261324058965166055903330188174344336849234609739010859665500963218668034012015381037539134245757196592925922507741474593364797109952666147906922974411978016707425340364690670684986958022237859393001492996926241456660548398992966634074015192960530194476115173391562246890070749781125967431294541501901033040956599365058576371399673534160073369523535241160625162989223702418802216833144030595713249774635351871645287387271600108954893171715540486030807452043417499917599094662427806297021573096889281267265609671572063815272826969933196813919555902101444692915208910007950149130249202980430388503698663570480703837141388155415652499262976280119780699932936192056116248190783884444246784349682460773316329912245146629615529440880292319849169757195379276076998450451057010517952262942508961512692707908427834089472142422925200210797615328967547852075925201679840588145556424834094701326524395294096453006656162718487120678244621619545303827267667284064045981907911186855016595671847798393600570366132551891805859322850665980398172840057951919517390890378492712581287943734201705914953429531670903579461184210390170901349132866795000244324201913313222384252501790490537700101873638438693041260165343855543563768411567355983994902470408276887044826433700853975452136555220178974068561462550980455284322987398143361130493721025492904851368973094110290175185078066543373247225542387903620566004580447850752417114148454534313550898130005218286966753972510782598040284218028337465719040795218689812457525553575348860004208823196407734702576155624698901765760196199635624870033056827956820014014066088436078637045339866528854937113761483032659807724644745306825246555320736514763002242226257110227462743499220617050262175253040368131113620760999278987239725266138571202895495184699275007493818663586020195838965270649173029438799395498931710632715795824108069348835665676222298099581603620190469008585036736892549900736069689650855858203922876158164792882482645344228418467197528185622589929937257295780774997277706603106100861091978226470866918054754233170314921139693718747051243319632386201307174504853605469626860494016923068834067626296401178206406747440428218374812556481032652087060848516930130534819103523702194835437763281522157364631452837256032305043090661411849333534074200614766526733202450659397021876115378803564596521769532942888474239028950310273659930892725965948418534508882996220673242520189187509517269379895462262712216223391443525421110089338182914874386511654314752462607789830130616648505311624878043136496217888448900871847247791138023015877526786675946224704190527023222863276025583579038977637792510756668737923350327588256516486020065357270136883901822683945542134578315682730633978363210007532994208142495353632451374095032402474988929027826713516124816491728813692624914624743149271180112681168620230952517957144250691354921509755831731480906083193001461863355639446506984671651192467838402146709502924180271336968555846273589372980941222815304933630735409906667338649173761945434737849126538513765202074316486885333889995088069838064406054957310412862354572093303564839258470264863837335735883010907178220633554414420493729747677165575931697466895738167884501797169906832443850562765573100312359711836032081920433823150375966782675089860550736238119190199359495689874742484666373050256963867548272208885176004343221178786169979308821672277570159149113989789176374817165792740371434996565780952769211750671338809971711087549086188825431835751074094523487706671871365523574487250897484442809668320702479525683518709776731357596199710728197136045942234243714239720362768608589742140240434331867413494299252725510015560124187374351075750425425862378960158127784017513917162430854251342780634458017815106675878955727452710926572636364154745010587338619751850425404182139272554798895979747617519195650040677451443446772641684176184240653165018452629463908925851501708366144880688064869248354320604094980020610692584543874112347771687773094480941281155120149862454005729648084944933578188877228641726163313555663421990704702530478860105570693595503826167700411027715418985841271392491361806212969548042441854331090080299078136051788079756637005938125484743197847326592346823795404763319334641030665822679643799672761681686109656965889165825129037330867726609078574469861633789283730956142938055203875865852012756829765434916056040661765473381000597749176167500644865232544774534374296801167023402241601607933323080167601353568317389249398118399231598442569833485629020600290574010485861318996190868712965908772783624599839124913689196917177788910262993229643171047572712211317191519934092385713280488067070547313806755817606502521799100151420389920974916234906453410984269367393658610566804671447576553129852373328070856724924379960335116197104125219488186388233890171250339138072578764732135909129425306811119945321773733505016751839305697806887350662917129243044993289959168894561317052638903086199205881278328050474972450764233854732221287726901968347739894559848562786695939335765331488838193496081334132256913829023239072622338287671447864705647138357483556719648690746182052777063571470019696559220281738698249496481701691635268251805498921581703654180230866678412209586098349967278900159515693169880047150907993204179287859763562272823226919354554958654273915935212408601917282568723758919492770547491568873254763360505039954118591020486241493668162105077700759672169657229530275629586686060728224177538729727955947057647729678253813124632364110572112385616939448418522662099663963200624530352468304238321931071106916172624147365255623992599567443784309328730230425536103000422789843389816495811822475052110507700479720278825870669057092938146543928925323260045461976874950208904836129335747192114853280111831229354833041905364212209401034821414772658169167042724771289348149623349673276044323084635030625130830724696193956080726038380072088276313883197325542416613816503612292213247634617003335061813607152500189268796556907754381588210602518845342997398586437989425435858702591102318796777204664319303511236147995820908639259143732953509053759045584715135400597676575884236886441905532325843184011520419890995959545746636342207710452432919952209639570946851877004455495232501858676323838113992276274451498823667134003331253555874285325375839853359396521930109666990427767158376151183235655955277578677753356303690598155166072475274060618966441229644656541862386058120399559766007664764142905809164810582995047546939958729274169757191379733128820474625456528777294927799007256674772002581410989979851911488892640954862126562566137512337873420503656915112060181104947860381663584430120240783265925576060993308753668541392659632686267585445086732698453308972616528914871670032578546316436675569952318585625961291592946874208700027449920165197049957141368401516847935060502443159481833064193067219230681203398306208796859408824316581182703161147821257816689636182656508392336111825190598014155766745070726659425620552068310701865624420171702565753352551666899144906755271536767318993445629473608629489118602018535705798288920330003784759166705531643189368852348551097209982424737490901126219025946689638645232906106736764907888683609026888204909055974120223749810023091574516506732443720430584409835541029237659665471366572468629502484739304011092348198937402860908573799203434492782245528408314639641593719635720133466708884489219965651853362850072766903802664538272749822349476497909268629525666015730332960066241716108881407688060323914747926825329500924819531608976414590465475271063173366126481191017942102772784913970548109075149227735283241763111441325807336016061104304922819900853411303406886899767419272811198321400035496439575626319453269548835714253897625164000955134209053850104641924611406885374670832303536654972182250982128741372917377259119646320696300984090592324228402771670624761148004015647631340462679436843654932502566153894096688817638380295445193089208515141068904759469738439585317097925896440923465860457288619219361547484689737408886976461700976211823676092201150113777882958125281829717638689494423024105872300507394448022458883357928648479748259143839688257506587894915639487709043968696986159740247928571392553910758149452040890124551521690028844646115807179327368683428280716814143842792660858275105032153253595435296623596358242671533548370923705935818073220184349039861411044498071999629959649501679384444442379285147453550177308746468318736909460142364181051756336980792460243332127107030901750747504625282340840052351453773014816015016660780779232989838405038039332375593032608541029410180038185676410918860939477682003750388511943622776177874394035050822281142993333852828845286120663398250142283388323254032579214282500000226004294666763950985026661273739719371082049240330647718646114479892743415717993619133838051037558540584024755721966141513636091392816311521829313384802265714855982207962521417246270574777233392701350150535553466426953487573548233104408499548767640261260276234385986936362936142357555070577251390383482412097281392119233317003663329024874737448684664060373157951620509112234538521667868429590014236281867653372754996972319915607923770598194629382246766968560095735743381414092464158564226129503329134265693329554683120912635801055449172573093038059901655973664936558128933118846565973775426385414482925929735454369348721143461208212191990557123143812845315838335263411073256316833363412729975356171096931881101765594536586645449502837411897998433089241581329469757465495737885195687845363758366292904637372462573187425324285316195156175446855144465241106468663481254412632603674394561294531682125892725192847202427324771304949758062309959293390701773000274414632124576040151400574439824560028997769769547314246385048559487459770315937126519749184685767676565100089887417622189320897380787771068487730581537170451866153609059103397549913696315640579108166574437624909621064710113353488764067353325090911241880000602573399262533648798351655680125745596967936467163329480039130508637067776514241038914327384829769947439908899689323534721884171546169904316041365954901380149665118661651833471360111763210591133933142872678557800388349239402182385050834883100855823788855360746894709449254090400620760026680696521227611037430866806208291791923109358614180611592677395237807513980523835442508263138566919899144113170950159327492547726614911861846752432554013628841398569464713203347557543357867757764035929747815890950417075300250256690878067833917682294082491706571083845157495542749894849757395761591253665943757029178918775036622988415346639741561145039088754603423617874023536110622405347859898663645585816830496776684082288254393766949975098664370188472160414287861003729206975435222516693767462295242523085199998375493126762093685477376645347785010450651614918734342318867927560490547881690843679792962371763579331839170868760075319074449033680091620567847325018573521284575444411591989228278587345594088632162555431327358330645495980759137789260624622377612527236985335968918856085287213404171312802453543460375867658391684382638283747025925820928720247726828173021451475813980116611491450240703060208368765080383197946696434650900207915609776509568445327330671678220159723144459805422303753969031355506496612086298645772871841947793067547556945831836852999735568441896661856520315512621364670550335084548008344285770182005328816633288706323625321926336855665278345667321043165607534692679880182564096440651712806331953577012499622492917469802470196199418005650552523558595720643091726730942778391811688828667107631812864295569079231415502399743331179466663729917380761379304951798432901177998555161717035036036802227320783768925749248789517707690227297253225357107101190482084754644157436338329696489939647910708242008585133845475946041586473691835925400441980405864677554132420955369077806799764982235088597710319008583609359009415431434648594575683488620269503698567068531144709902952496184984392490590431565590691924338846205037577476390536778377367080670999914097989935965399859339837403744457272976132290302100372357076419702460494214307977229262347868879880082063913535576050483026637790225289039660000906848180299271378864970525420019037753991810915252450612175646605162406375925663618040854527973064270246307530799264177900567341764286218251547960346503919316264705074211764643430968999794559740737751661690367829346151877064353234636755324206179040272821432717579147217919190940265237334939557411142057814250066048303497003710239111545114395005698689370441099260986644978214100538460874948512686154425326622927941675084103427341641660654143561570333182280375432484049978828384663460107709660134795314359408137057156422822487474785506204610477261255050683184718084603596376198070788051008426606889283362338281194357535559315018948870285723136510069043529089335089965818632461147809881057324164950325479010422785885054870468169533629461412290078797091144472410409610537491451111257668863048743937727003936828663343128633256632334030161859515720826804837841621993218385703372903469126439013955222812967257590375733886665120218274658212429283643312980029549383519886690538168879381610144341888172177669664003555610566391712117314412789380589592027597922878536994465970057341614271844682447016497379844651592639280770759673410891282779069221281454728932866158046113779346475189727340622859398159974002260807968906842704046586887552436659480861635343126040435608424977384176083431157576113457337647011376091804045220498430849518194114159573053899495471602851046974325901919375234567796088438132654346883617143269887450301670050903156424460652464579168314374800172237184292998536329805335820324120754659500794896081572592760787425769813378446293880639551658913421292040533521305837866497208501651066534540665291313904839038451544162518372754858482628727268464885722401883075955271902832210180892285838139079749252170828912307326516411963049718867913628675773581837869959642501650850630697149043198785164225252796737129537627810473578520546139227993342651861032186418001375376442854249573280939702392677402622431919912151424903944502859081163921399313410601091687472110525171880108503440686537127238796611057298691915730918896899679185877988395033879148570860588638644977278497904161734780991258028203281620544350770676189126569853141843798539298759294757153700756014270192782390506232395210344720420451648700216237187344825260491444957628139754142876082568855368840385562207378806684711591130470690290657529881492829163895112483389531790489502291759451901822089127012933846143914645572173443479326179850060034142673772035059979801255133285279004616204731282346468012103889101667071723602619437658596906049151895395698696446673891054284274932675924424923124458700112704960943519507602624829588054597068019484917174942755461588341358466996149859004807871326242905326818931226892645979531535726068393982662403031570560725808940331156873967551638275376487854305425836685250112055527469297550545612481717024187118410232841207732902012421985686219607903991845968311413682578194933620445659437482550676783669040957326684295671108786562581956395063225315743845613834207411593186130482658616098663621359588774105391887715957344479851439563147205917443484313202240333874231526006556595752483765146879787325572682668825376703536689286680040115826975898844107033469292093565260772810900603056501895674973842716626365052424965199013976395148964414442769578964054010158667266355641229974368513518500223240640919555750699656575046934128152796846305078671245508470251805733096219605641798123379096594382946732635120245196450655225737691990490505711066020759919206169081299395691382174740252692724793782306161530490664856941567133302774779585795677665146843991425289205740313517456298179577989061030104110038274142687762403853533652257747366088227356116910017978639523420401513107171869279649474840277228320110617920991717267221550489027430605870773296014359645784678835269854700244906006210887042695473584121380108219861253588955138994323300694800706663643576805089507775686584172528586326423971171219868183866157006828977638140769410351716104681280670994723109532589071444786014626069283603815472879495808159240583465571423513919101692453004390621011370492537222271979400020200599647585086640688953747407929656302003385877281319331635538169445647882911169817341882476053471263608984147575243091859221140139725091777774420244910643100235261025094075110836882864847930601757586338131857423566120736753374686217749068501029973547234946039985592716368037526771362105114904950447634175376186356129900568991399345414240113809830108662990405606291855468770791906688740287110458163510568736504480040499284286969373839266887840163137950663684253191953375783755872989226932738304238319111064243445197913945052114156278781220950319091257263213811894116595668635478964321157255470145902106560090507053179718482361339569177833973039764870966135983479652965736019772925932592338838955753563815598726974339359017986163103699088187252977693457260737149560412396820292234113155287571831307886333813884578517145485975483955185893824556963770262099199719604701254287483473768199323097545973165633519483836766574242268441958097592151961785814874562502168673819464568821298497403056826642417756305845244940948481999194627537307117187055008025750590251538462174421144609040512841113741854228744898456222964864175809545863395365098068242477134387086860350108225852868131361657396379695365428728361432112525964117541475233237482391343585686904783564599291072824921918287504794128838090200749083454521077200717657317127830284423804777748990505787340913072452318471155048657258237962171230601950777945234293708741454808074850566089051370829214632652627946500115552823611443885416084169162371908430196554548537977049399190020075666035098244249322214681130761623141560658171674451156675522181367700623923676965608520257474076380971146322858886963630867054759241210345845793042192751006934373734908349133557084353187802600441031344791063072146597363064443514758864312158286553775686672830412897766607797831448406836019292448292921175728937420199478660215392386301740743133526736196544238484354010465178755764958408060713715719533709695813754003391853701973246671121832457159595641871128192392297228682540662651221417960066896857269635498036918502420687298328083027711816467876623172123088062552016111417748199484049036043280020727101426559583273099349809158351161790556029325413611126486648259888962996107188675154948297196574092520400091401625917884811514363776415816166272415315191767118662349363844768907593782191573041399391813637060164710320644922373406148429316690589769923907749390000879705611143864064539809603077786843203056412061702079189071390167080093128841047345301474014231021823701767391545218882587655402159221452041345886877627257980934703571270111362733910865618862206086106761470467276809415256177964201213099710606698236612138280296885634223983084536119595846359553917349285873126332039985018119250721695191449965623545407668312332308231442155645868130455634367149862700643030152292908331570978748998505091929629528557409591893693758847515189990979271971873382180922250543325463582051078020048596411680822561624376709821525708037384793205602000527129388144678649663714500521518828497366021644011849131960754536021148192300092433205003799083469051491196530485123639023639505851131871189941853805600795411173561517458208766648291592243862197837210047390957469291762039473898527614799091466836375543777731824479580590203556441435740666850288729288840198894844617983354302007669222838556028866127277482019035444708635409803428804564378426549100086942280747309934393640396838923411309541240057336414155814298492996941709961394838601630361592915833674635605229829778627259267753228988065755477805740242445190407235081932077778153615838683018383603272971920667643831144459683349671769522538043322371472548652398350107779889871438594985248839142956899417947736749850154201660819891174029201242925906883275976665107216551193723847490452748322925319703798234088326755123341105787786761619483879788101816004102610977532126318757027937929977492024188497679543481157232702866954383860701843819102071296668986077672004424018113326005564662029479624442740549345793117079528684919649693468864718803621904151649549406781832127849900513103097595810240279246968623969381914777107459930763600833948193925370923641030658090409396346368400060398891890172277834292918791124201496739027187388053757028391602813755333754348463040014904420234218099065085668640766455915522556422909648353008922159514279171714087149383474232459744122307120102182421821420683190025960837206786966790759171652029235446713399135827001644641480247074826941148400613540313242841412224134960226985588045845389803792367529917571268438111982679598959512962954509112400825497523188736169913801858215094450510766138341311054561680908296423202742531987975419412767901758877924905827415399265532370835979636848639663396019809919041408873319534231475950598913615778475248249938037884335931950473242596601327039880470369848091768590330446413829146277379806503766912016763254131868398353618122153426315149658193823191868128342910103975406739010536693169421794286810711143130747970564958906861319012158613169653727217620001552174914430849749895918341404579136757147353087761046849494689387385864625132216805388956483917760350592649690149681833252494418620069813477241110476589955881878836279124307090567412352725950921247009695287656467368507737201578511049001235159272751120559303659953602524663280686815899620551571013298087594322347274011886344565716949698788013625720445827289750548268477947663125780363075300982320894304539553383764106484503553843519050008402184702550746914146178908173286541590775239711664716327579418857683806584876166522441140533711035690402039541744539008234439460517152083389942592001357059229590957044272799031177985026136279262370571494865232058860219462484713692229265815315899255601698264549085676369101563984962043181057149734117109695884106279163247504620609168794523402567882167962056217865427105335304925675912974085497944731830893662558126004306002424156181957615834998712207055944721213888311296930428354455023510949379944009838666549399355315185377955374979187707251697146414751489444400716520380561298450920186993704194005511702642239548053750692180396746372599856892550808614923524665855990671913951832036156970109700111627441080436256363865347478274221745559178399960662502706708337573976563597321507812583521028257321208094041532456598537637440658615416571734927612385759640565890314424051421852572606323365587904533473755107369344651516590444819490276569433101459016550229728538228726647836655257682656414741582465055051460885237537751817074621399932510119232814964307188601751765291026575439956527693923428485393896899990658494731904716101309641359775739210498220018460512036827297957037492075866189331009938337752482338858360714870025926972786939410061042426562134113839318127609253236562640658788942413005314423973523144266141383923722964303451805800327429758065469743802761706949489488407720288253889119973820320342667689736470253623194915418337416743796376122608097424101903932067763199333143255401198243448885580219404226043968573861333053985818747807718824036142650504665056276612039233506471734819174928218784362351801532477091264848666696918393924995057091775021912877885724465508223096154357308396045787054804125128584467557326745156872377088957625622935832028399072888846858772964818678652592051478891293662214572247481643391405418809542505559109766496203901242138110727905348874463718368708455515434180659743043359344540723138628836287315795912629011968012102845353647807290788792902427740270769400298174541187521626880986784265519653240785693240760008071963058579967765689647302912729823186708487654781200975082054371196506035156417667467384365840834436592829406181640056361705050281901681675557771885128832290835472951103527384100538651380275355804439415553558763576705299108621477715367839166461005411632001588074877900165777246827901755019977242839569273724902780834326884559126871176376096193271126818174471865750257735641936780064413363490658884228388890853210821650346981367218105354736055959744925615770914019663966609331441917922501986719994805587544335965739895530836566621820992037116822999970433956809333127782078531381071712121878939799381523749083415126249012751938198309592295102634156219174300484956290688486322710972852240574603763401660344946625878226289090271992764063550921470111763395412953957549586498871735760354942030496233079146791340879012703005271932220350546983678099251867308331067872260868454165959153788166878743575884823094595597775135757663876167861797137299587535498208768825997878877771803978194240988594956042169223984894321675752871924941781533260147807409697721299377650531060640110823687906783844339678050098341985577278583403385012810682391686820889247052031648516306176733987306100983443434877175292185253870889316854525019744941600842474599325763694112657260235056190342796947954351443845690396166206121325488070462047699226227710253131602006939547747627739786544408224966539268292546832734800428750525262541229054351886943268183660552572334934971800237524698076931205035910887609992187775470274873276406517067349767760387888472201325750363545116280404241494990822639825741923003729073825413622558998299492338598652037470870123971714963764214080184506819286222989779936763595835890529437973834278427550586557739153985448426783802070949015226034284522499549281030471796656732178637796875076504553106242649229041360833663941993885140446005712863531520328904896032245950357300646211820618054630082586286272203969146177127362179594257170125930484596226429984700839396803002861402784424928555547672419779300439725339432432761492888313559644426605392456081672270371240108062306981906695607646073584341552168194376956711196673361944813314416857529033153559968441444698641456035374600453620122701754213325858324896967992856355568426256630837859346895337626401000821360149735394084085303685549294320027332232836812880407642851678067072292276267637947125880645443555047617557380189901566847795132443181478838354867090671360003081543762138482987153556120619721375809645355483815639574652651179615985983703865480671566988065281203763811437735434127322501658427909406331281186962844547083495084266064223143100851448688793792252847227512906567194212987004903101818149409217781902280453573381458675927613645145753430163159043999842128277312380750361869156395776954989384850413418508198839531210972719512762903115738316899482560313369949284644509034619951960229565585439578284703416367016398532339405278370901763263509925454368932566452740733179069634487324251338035142972607196739196874100675592069217551243495843270888170521908109908744989633860345463657393162954679687733793821919493854188128239006075313475715839212229190547639643737309491437515307889608245242723578957680642977186243450115126984385608742565985590885022017409887745696201743938344472920957498970054492087367907393412736588393453182591105317193418808436185122718927734832219908030575085848509202651109229056482711101137679892496061364979667928915913086341781353540133999696852179581246976442333045592779973509454449140012639176799947444822601103427485319593392864725672347093735742406962515390463158015119003214777496975754221831760499802029503746998779737510421701236125417570692723230720396515928663399646120715672192579159506871140857756313382052050752443354426257130720883018999912751556551230943464527206518140548536050954040469350822122884020900761988258288670213688553275438125913951139850630225240933094904691986548215132233726151460112917187135342520658050694340059450313378027576859718870454648415164332495738339838530025057787446451788352129292407752845504914334288195913242698635922703905029406585957423055797211799201604059729468246042828104091630514943008523076787599278135682827441684958055291858574045795151770329485052020820379673528578677932261709884938959951508402412038200076833250275068003754996782705650648875192451660880462407809499042610520785482414011549486329980942477885705119313844949563508330427662017085863099669588250455766045037908615998110480109343309651520118436120714197947520482302871585891412258016874827890593052752832299023428556536066394741263750718148953422237174760212384277866398300485908300845873582449165000827440625657896125139345485437686448978431941079818136547345402818084772064933477569165071821432850448803303131092757653653125156033124016074753689328895334433235927768395214250399843211309199633956734480375475643510106620258561696918465252249057306371145009773877236527041400828276007407096002526525427655548864752526307583314029255375951458443283319220495565979378424891408676617918092110889973398716872206609445870075405482998385779493151381891142810721918751501790073053678770237435373926740961283551194393017256136984534742438394781456799561793924539371928589642296388398934123419725664213371042174836069045992901684068236021701713750333760295413421298553678864658478366403549595620223073190998891157784285754756163619785957725975674548945416629229249753225787047332232067455178002423256303946030961490745671918472749691779688800897735770467904906851405178609741324603476179399805523460092359200289932283525813280874331388469789198443283377687974988573803059755530794901883060938679696418794203187190460334661354873780575845928005336490416805646557639818625241208644042493665242297150319897730238351302349414093815568203266707986209451865866110690690277969996920748070411596340169323560432261074840915765571004020230267333840724954065800595867906932289394387975370739583704235834346743637976249580486875997829216005782492902052050202597906180828392213750449587276956462987249062238403096726622941427035971997517152536206443776254237859370986840543841289342809789543428922302562118340308700736315444239785776481951644985316946449525175086960299943635267190619719353580333331546378377612940697339425394419286111738643450762493864220698940288168796027616842377491883746229759134843184789754197497259196598364981498920450437856565803663832988018996415920527713195901510262687800600656602937647830635055490090083685646466970703253952637040930368508748288739816448889100984050015435604738231697816059612076087187125109149034737102448282534911870791962795227159408729661270242756201218975591910823801293897334406424526069288247838020268311894511573842227089894414644593923270418104890944860325831931833752604906867510339831880927698653577740898288910888885490531625864689439972425921654775541800602711981433615733941284329038166255323659046767606410212776776331194494808069803702388977807005079805017102917269072692197984047064738151091210700077829224859155799323427421855738286969619012736846093302118708308019926949094924123874028223900490706627333057207198141128055531005455723713349564130556888688382695085414876510780661386610699862083619197062788046648380160634271817530106916816998078840004996516625168633171258324506781185555131629813791896087614940510089350637947200907059378023434071261080426503694036296053803189944576659450884168360016602053231428696861919319779205951567475533434000002456344078888924002923608789461682321847541690772876400616828552733879663218484189856980711090985838561399718593378238587606239005229116976155152949550293622152352090464289476290625387929052055542218994817765837605079078938705591076092893025724027490825674590739088149300073389559615102030714547528012473674923325176828254783593774306781694868489737849336484388842196504352694786547436034749538362424955036283840445124909625231228681598539112066686763538767197640174606310937805627756028053832440195915002132612554326012280094419593089660186948734152065117642393690696711116316994228771486452672854217117150190173054593932678306348094024738129179186179995062535358478227590342114959838119762240866851024881594616374440979101758238153959616457349570514073782621930028813088939440102699615673042672835585790990302230026024340116510071868751396944186329888157945244832488635612301406287103333804338898220175371738087443997258189460253065893212902966271895126410760091718642168931472914674043072014282746239028592613491034928579585912096963893310005124757260319252647350875043143735902235449222881571241264129462107831705142113368059686206234006448241156560938292829122065756546336248094175914485098010305836059248654320573645543627033966198759912101122101830782630982179826198453231943501915562514029829174843740679546306652919240140097038173301251979688519152322946183135736349934481124509814332848010540860920670087900081317452696618278423792926424790925249678565250410242723648044291547179787885589878427580476528951253716972821969606565695400623121841832944275292613448479535042287785941023289366166045855203009079385595158763423266942828620573297121705489037489260082436508868885175092097615283942056075062951244546610285253031372707284433676596590598610567912827501283392721253699685377666690767234963746126707052486679313027994289422312380495994976286207343376267007584797930043353330232591959914342427591992426073611603391073869785316683977601882478403302753608982464335369187471389860135951542816771375480182806753012561093108287082366511592440691441219979157656439674928843782916614012081389611551738499681108558472865926949544744335358395516038418049640022487629856916904283290717071228839537202704722793241231485766073656556069665749066807460536701139374309748250670841706781752981830930333777450058412204597593722304913668952050696270023469192484138550128071001075015304462570801662099417313114641107235435979184038188468287403170309892152359369708713598168531672747011338428443991322225571958557014410165756399515362504947281989625588948935744351582055669579103599720581374109863075080358411750251605753943001509345595766091971195800360933655695649790719594888427707657077217304285959419617003616885525131372878838002489752436241874035637044450351205517752396614804550336254238358330305828038032787896040692130208074525608947083777853435813212492653661802395884300321831450852409651033495947048130024868522108345182018473017319405965771131215075244499000477671273196717006218146902736948934300899489734320653642810275040390840292924084018353531544695836436601884349932951962655892811840405824909229018474418097293130849011895618034796447003201134153866740702998729539931447046617133108704128334354257424508672864794476180886130320271177791330390628946503446297309710938080842089798318761310926499342306743021918932491984709632802872432671730438566872754497098523938855804518751680223541117183193547035547953981589701633597563719991026629746073552113378362465556155732582689664490778326140714500603004938281047555432566564432752908492643193597181610493432937568115535373872792410857480189324635807755040548174147835717570927943046073278075103767307097300779054018649106077673356321949580694698257858008573194470446331925988981749718070101611231148094861264937382370012741817106910152472095937447062768085183275570700698088553253812285068158583077699504333938113902075127835287908213466402414151461074873014917078578139490657161740567350687665815269318871353629426361484749026709087822358658131367513396054830576957294924688735565751884649515951689454057026950256688277298505595520549866855817749805403056346152662275583128615570178573587822398559545028877929463219869525692539750453979375544319867200791438509792677604320164880167573921607311202652652612769552543036570881784841875906752487003635562890184575128715804776275552337403816830989581908277987488889999581236385540173663037946715389723675887579598062337516688731806480945303495872550086319058686929714341816294890611087396695669505542535183217761637992886619005624668290629241303246598520152749526420381503308763433014541470959976153217562344662969360968499470861197092446791164491446661202901792261591512589599470151029263621389443011687807196600929637660455398868991991535913520585560680241965884913164177043925375016182366303872521389283888474018600324286087258237161228991885013957187501925717354950478335153775590575753764783393295803715337262283227077234583941282072153297553867279969834512261114521648605741221756087145126382935299885234340225959529244024700451235837152196682607714452797908500673791349449683989762350613458871880384562551720814309134524795690584646281713203499013046927112380680661137036832630297648507468479948823809660157321126667010059504605973350348849770119033326784995065461865222875955685684213749587739956910562908498194571337028270744374927345251754017762500469997965664313732975536980340796711110047755266625521393023361771791492035222854093358241189671753541800428191693687990121632425828520167635716568432143049097590263110774006115695314357865659653210976325431480144275608791517716717746004345193152669596656854350036242963105077612374241512292004275597320386906857352851041910074590566871504005743911606165346805477642358768307143904809164549050525959185435918233146178272854368695020933994616660973202815408683145963601716188817667871924018336431598843956352273430426238215335167710146124455626639044319709390444782675447791599073300653433581615458967695322327108153145698883454459364980876200085702380745710250808637900730592207265079275037041859356303242131174722652475127927666515575889902822914482194140554047986606002223697144430416466403789438732175598495403148999749593571823930372217461635882884468303628158967598253247002661061285985249165013691587119868056596348306501043172848591654878991290107475411339107426724247540391377393951699017272078082416781503041481596333879748710479528652605921845719921045928215882139684122905611747525077157894719388227639029950138199261557230278924851256410586264024064738640997558665136864362695900909008527121169662934316793334695900617226457391367708256197274891402760628802102818170338289961933133231445923411386483468902211551755204340109150915498593038869068255844490832466571955274068250185420064722119603018759585344441912551432070734072727874884848392613367651255514448206317199359616018669658909856595100174714259021072657263671350541339476243099580840594294726457522611166531485627238588104235682507985053241400912323850660833576822905091303536796300748880689953530871319271688567086413074986881215671634236532040785591041215868392078790069946529632840693249435310552205801023779108214169229589984091258014896467611641589300125436481834518083195229360841195474900364879577503722222262385659035488871656746300765675149238354235677917740858941815211074453484029667920995234530054729424495080365804338962814594430008381769280145575420578801247032520846831390896174430102554794664309902128775166739719474284124561004645657118371086593558518161172769788563534154247306035874194223610864580646033762220154640929796573992845307293224011770971290355106315948815904251306172047505638354420348227176492903558596044233262406111489014661916169628741436729174805894065642103324733469802227545078516356824271504348189150007323934737777958095374698599377593502974577064679951305039513109238316699961795752413131644424864183824693914253029547106396047613306398990781416571469095566627237687297723502149315168461605711887571239799208988310051191107134866886880718260280939210984681772278242489827960314657832639190383690942110899177370273933662386882860138694904114504759098915822536615926415853140041060361454828970338261470222821450031651839953901095970562726379191988699387064635298763285792868977132970750297131972718174925247523035448818227488158034086500371114380122852658294783617413064188372779951218849810307650823814538777745241949944458052639126674011544685803382324254684510451174919101695009367764244314286273610694331758347735495828972470637650749264841241824075832091957745129753435071306061243394267986313243327022624877059397755843138258746981378183365840503384067502712196508268882017600544476074192448089349975504424330869827948683300940497641703118541113008412098103089183580941796051687609180093267181053653034520447771795243112544343012001392880603320349759895069249770007405837972991173471994387976708624841861072935574974341841266150513489838326260210797016673708931613558951898353945712692103111805522795000396941429422816552780991958238872934745463848581908758724066801240495119096984418002023723160683199171793635004587470287286839971892332330722453211158555887118618661996278008390411209539097964091359604349919468478031076085918236782464239961234453587340110760113934778682648706207451742060343084178993441219996491467388772741093472088304596867707334311962566866396673806459704284498130030372670283987086497246491566564825966893827236242181500438570714513441673943542006543293962337924882903969114196565314906838751329124271412397434051219998216477537936209358439789180883926334167390037058016899126414684858580597787753376420201369171997983621581878801834867130458259013789647664765688222186261464966176922631810483367843985575043153963879395503702793553671184418750009856692256873809076988759588384054378680097060135236775867741368495948185942307514413801495212021141710902413399867995283355021010427596735142378907815938131922077814935340208477769539251976281397256641713669066127745935866110944211843935650700155075813356862231965836642060538699802006368611670895801754668479692761544203339452345386817174629973708797465819067215792124267913187288191917309246609123282434499791961718380351268095570182830074495922298993492402861130736629438821069509671644375185174953002782871435849740810975755001893764329550687286230155423188140233383886656835489383956912016390610585523662361675430845629454574993900991870658298852902380467980710773457910246178415409901556876928667944247722895509654046645096690386726643029473249897659037674089479079170836863823772045581265737258037126954580350198595581700053355563479200879294206402232063645367183707354486795973418689050033665920028058255993273834669105712268255321184517942395992215391336479212858669451494826212406785455044909490488070052562901811645682814415472538398930270441891494178084734578495512335115243088411594832508656196006443500366064765041647327844036226575319877315966198024048390282532045689413246452191947068495805208644821442407319214236279623794684935502827122608151531215996153609796402944304673785557604046037794028158985582652738317170827823122020886545427381330388518477974526904596278519497151753295661353259111856080896457940270012933375478868714648618792191215179100643892839490108842026284461670137896791059923876825765394308067733415578824028436059117173142159592398972806957564071654137610489591354288629748159503337691010358886794615962278123077670582881565088452196375970146315419018695398677317335450945602300165291639820441825715738252353071894599409008620194412152038079293244212349679272389732396672206643451671295777268900737016927061830051684282793307077647514071016050965548185704710764500543934306235595628498372323861670304061657648092756987423494671562361834853196972591643659826667857573103416515148538794374509986244879050642825454129617631139650525094867949613224384734031753799349550135775366975208231076317526119024152707245822897398559055738439324552889000755261043490803861426990962010985586173525525549282106959334882753715597500645364311048179254241148565382400720122714942105243989211584584754127883178553228808866646299920565582148851107223237624799883630564597522832265383287566208469594060644641973529858835227354167534556810253606302190460468689386247581219851036355931339470910792396078418918935582450253659980582473450623866587708726567367006304070335702662579580981957042864449054957925394828056402893803673842524848663242280666909851475737170816975620082874303139171540702320349073940156488066535590403024942738179118171267795035709374525717126455449398047882253820581169358591883627317802997075552566464011914341468570036447496376618990477166042439558405609780483725352907437606640427788613343670220571976532005271525277661933803530209742365436879271222918017811530702551080971779772337563291567644359230827914117266758161334448584267806942748547290707529070221229653814059105067362274963029275562689237346921595336102737009020452025509727710205516789709313224149827194942970241806033822002544353026784399923549393660471762429658793000192793302626432699361046778753188279048242079529849258117375881770592250675385824221904581299581695183623970091405086768922286948495210525123533511558817117786823602975039716016981737056143359288268762621056849895815624357893726536886157194896158150518616788265503875310130738945631788108030844997027721738294994595145959081043529587904138423254707176018006497785685370208694106032415823934298711064702046141459124123700205333737308687423922104537430349764374818338526003785102246998904099362758052542821169608804456456140477782784140128097723164525800844724614862291766437052416006623022441850493638578394303731186595504711143211161655763571466364886683044227551462635944341257184685791233872109399448659175860031753175693875826697910905069491417681241498043390208530291912215751126294014926484093724250388953516294880400652230646096607104762008132935794002195574499595247029603330801221661516313944307948360563517439371959759245364473439612897697735643096864802740937384744364517264606591460992468685413536307172904290632320967843434833305924097134926112325143990238453004126360874289849737950314150805008149777338625389412137498685996197687515055326250897439805604202766306544919892737553230863036660032913445519614637097992422969552117525990237866340100992700249753131102907613879737651674855997383363598228148294751593610564045769741207082458224277987796082743232436658310346302893150250328946566406794347694179944105379100518335034676773354135730271915899115167627800269194395860663008628549789458165946443370657118669788964563605657160153460091735063160386505938114222080233014690507367056672756680171519968855422164179705119865063682453576983226891803304202978851361325447167050786842612143713601031663882529043807255933277182661391482019591171351107758799218284139483773338063542919250344321134416384700354689107520148688481916967545004106848683520232985483843312897354563907362751951337989954570826331770115444443991280463502682026148158410988276213247442800749155321638595810744124567570280932258390645249387860464931149641950002271208104200346425750483463709479618341448518759900471574548120681793103270450422142914562813258748875374237489094071672288646372603216069663318692317396929840244100032872660190650862648812482292225902003112142409041840261821661570279010313902831044538945346362691704177884732523199115802267613873521858358000008330820905030535245451237242830280794214107589070409288032694878420768291411008136587102675874802704320666403368370351094616690060557700838013267802447809227521978178106506575392581537912380092850344415345464650622386231489184258979338511625897419115826883298541643026772142758064882288566853276502486059137394989941894658142417628351283552207057534604004483167750985912285908818751900601219926959002932750899874058745086948188323402772067324727396806703682860505710421590557076229844570295561522623301105156102494832248979554171137000792159591412697647854854702917907314489637482733337357859681877771654605936718424775615709355217681085398935053458374024387890914909241814434015929960229656416801205804145617379210458696565012155126251127365058529532977936978992742515561679832138957662693518935627266844637826251667596814260569999062035034732647951867821557418497283499675258321757632008141402890655722900890620358600638453332952803202988452834926480094585668347838649700447871397940365574494927984728377641286682409283322787392769044729577122411692681670832946768150220129278803216249477469395839963930746881960767114215570228412298148424963357691651178307357164459940372999517808511478399250741817371113879955278587684088961301241082079314709618456738147092986376131695803956713428877561241887399728593294991223930047759343526777853347970536866190878223145064530921605931593405967137114876410028530543966980627153615849278951955266430336420931600624012151102283864397954771324369282627903286230282287088287662095410736354551203690532448847750482877774545321293923814522206081914102244509823086650963528512833575305191376727136416608174490253648121599151173309230262405120341698482154350069642366723093614056311638380990442526542257864901192749292335390624396297480926946928883106445869991582674420439042440301395466314628209265158966663553209198330236864232779337170197290811051319291991503464461075589208626516849525367403541777530922263055735595789495519062673971592104074665523464515598313198714845114596717940703029423059358528172392880312028209815643050150910718813464003884122944380104274254898325360433297195440995352943902713285941052230261316830417542096465736985911152509099069396559805308764463655588059971683452375821055608052681279721348589009488924643963254422310400926196749708584082657300031478927720869337341948567345927491093815617294496774691836221953021862585610160114833672710500768739472475085163770108477391427494922218774796177589477453502422067479558587461408689931374284454338139208980435575146196244067550785641928208341151046711229727146236591591061396845896942245558955862670563002880532091508601822747275898599565867791264520386045282843557781866745981229497827345402287914197246393840288556824527130279027250942453748846201150275366394774838286355522851028140185274181082782111902512473629680648899804318513720773616882796359201685870236067053887282042837197704202066314056772088571402796941969845607548175199379322943081227240361793593639790179815747035400175451526854077599033050056616640341976480716567954941020048094703745592714287056865608141387390198460800112932615328770603773907466225681092708567599138783095125643053241864081985856730013084240393075223805768310054589225319389774373958001453486925611244767582890692447404518689676227848644756036153185978151622981140389758697379416070993814275007683364927025844923796523998079382817578504433398295168232280377131809802255299224295078451729451137129077866219375989549603151364413423862956110536739190831263498478438495501511657870744892492960472212794323194358566325371184278158572785042699260353714449180602726894261331202105361668612279169191349107606970115215119892023758430602818924641631759273594315911558322317882953967105401857231922116781108266298310013607419071860754134467726632944765161462839723643068430551490080798562557237767065602863207641313722418808994001928520768235766787543971041459291090349504370867403759917781150524561712281454080837858932973471255415510996766081688167661909263561065947510283723188167403987918762207002219461727475630585751182140568884016841367004239637235843391893225189139322078776628831055813524588628104454098084844304301140972681364598755945604459223403463306629531421906631738215743587175011799490855483262726310214578432887957535033937595223613059862888863633499759114847032168538457953317834097566672945734016583262648307098328440200119568409868796410940312290735886162049000499755211676354092319482461004601030857734959332927901367675817785152216760783620192590420031192386525788073559788755649782988486199531243272428472430579563110606007112936209420950234338664555255892388386474716915691545529475373175585229300897369729843232476708820956262256233397744182980693549083652622974215079252374032668225017802788391633284663622415353038397766678994288391762130125260744271081448253310587909342322784997100695347650600177154071652508777182577809851731254344310867956869842481131255918711251367952650480052565156634332735811781711611894372985465146545046458674316283133041741827400091806247799380199769453575338233409512144234147701014531561123750981759062120958317246222498584753426292643682642800895587963492272493589335197114117214807451394918514012553002494404198339248648842981300301788486389989336635388848983591425471908675933451989300046171009923683785572421767792666924650033219639531817965021128183538114880761154496056573226879243345279453142819972618898388606019360440598208230763911681501678938281289347148213939292962343563765496144101173645799306440378801341839541026334795101541277122171465538429533813850108017674288708014642510384695858840954687275338091762156190011592854568874429184778073324890266778990513250617235989657851567318078167018880889248033208423383863576745280167282953220578274061516596193689450812224199792157584840008654166719652898690298447705494793534367805969878308553564026903391330410383027728423347870903370421982944286517263426818750941567373123437716256166903938190202415345801182217003116534874395649686688243213999351102625926008176112897186228267693021048293282487742540272902111746147833355537594679122847397466062671650091343771829809012697117258362506235944205821405987727544008392859736176018731120006044567679259292401596557517561624927965866967051914637734354276045450339958442183754727707337062448683313416677972460046512816750133128928447931696742233981611686392406732159076447441865848854874323241784308969372159010588241642291275965183002849256702037799976348163626332360056073271977552381452880599016241836923003703774578309820457307872741772441205828910397667145032592958159667748989916986415792024350553009528876421447348770647579296108929077850937943080826078887428861565528266894140691695621656407142923782518807319987866168691593946343284831488143990876213174477453210849179162131668905402020292637946377994489000644428796213961521554006937274549189576851467319016251553019311252871958697307028915063579378498926074274678180039307989475084493573935468417948182044247205544966063944576817548663353356583129601880490769868014553486711632970860399740586627573112660673097063167137830037111668570693646019159186021012936831139164980127200694848812136736229275296835578529761252687062983305941621949277362819264957414792930251480731646357644152642427219391883771666880236621027921208410704524760717185701763457438224734267156438768603356228416028354142055447106053723393142442083540952672006058849773503128182554373976997694924432927408110192819387423610075593353554028631450607458567266930837063926450782042231783816811690738584688936477707143702065586482756596962167021965531987519411501136902460177660838150958857475646690032429743825203655213847249438029621835915956720696462528846997872085741924496796051881773767711595527341993278585635749223244799887963273334027669112338349206732574940377902564654603464839335809683702317724204867097145858126004431763986912512771198100208516353903955434108640821397734053280864527866251632507973120728151756703244774438896626291122643235138992554775153275737028160556508304355442482154379147480750978760879596009946468631235259568545297884075730261010888608354847387796682201353552218517017337247194223365472033495848178410554751705533774224882259821498304940796129853263763301346679274738881587503174035066330896523803800187743152771746440146293552165684762298651940362447683518226562121992459755572696461600439546996300600172862383791730764855417212293060392460190845284022468754945089700602652477323769653027419886846904034177862651296983343834559427360951364050132940566407396585021146950876898598237864247662449195396105286633333042216124303938840579166041280466382226660155803139227246205766924601328222013652500476929568308782677841162722387922154621134393607840924141475055953300409268832249377928025205480232487317242660551866859587156038077120099094533233284179608243533897698403944442001483056541040160243689976441351523380623498264721808711887642020193297306744425851108376366856884885558250074983321170790462328466857543660930208308120411562065529166812461086413920543903522719640448206982436893962685649749927052466539726089241819058631519133625328351788878624896920611916282946897121121316202998681176365095735660183354381384976053089656138756801578366475009802605290851987225285329257068581345113453747207860781236033216347228519046953420092627384506722457998826373618911137626641179480065208894744558300942808749484235161515935047977635093872107375324148768914897181083245634260481319255855343934228462177583482662232397713447618347671960245264615110852702633171711761603533785943443706153861529648025768935986621709571344185033717259627015894965747656672680626495334397623618603153338917351164804932425760682989795345233904193215864474218129567870575410317900940257050685389651024916669849468242545543544476745478138226935793979952208356778178086350509989920594784017869522760058368949237165532280102482577355656668738259285281598544155944119112601478833451190093319837413171281248362540644180000312003821972834971760931912705442101138115831316660056925575714211464711372786771983367836955126979988381891909789555945804940075907934919643299917974075192816192728327426259409354542586056657991272525801871062090332739617076491945853251422063287488121705061778631995298194003444943812679752442832716453153301422233011045429052305724499238980716750972661574323486138834034360081663084775448114577719360625531717051159890649178814727974079847295357019490080642178195652087197876476648945651251359671048080867711650663368181865283010346108080475551427502659664055506581797930199906393695741496330337926232588585679961691295711793029356755773942988698674089902390795154152848514136360410748035586312068673120015572749887600392181215166878345995158426043120526266291211611467054558891859271884315946663232794917108442161457113609125259337390396519067773987127762611905742766520917022971209452697761940601277974411286127793814381859131239617820966298607880795138400517845420529811001493508161113941600697107329625215137278403852991267037861371956961155745698035868682787491895998022991298840441473592664454317000748611827978852309694888483774054322836770214445480236976827186574211336720633943849229163386091920249133468467790686805373220439606993719430978387370379552814692875247553305112476096680119773474029365605928901401190764611251889950735973175100165489795143637402715514375835358711589899307111478442682245192377898172520780240930005650572518682994166010600377343157687166023128162086902152516861507942473415499219371111365951460763039155384490995920798502655716301391893825670009237436904200112466983775819986286165215297610440692224113542296653489195459447792472189028007147844927877702188274271591392693675517431990810071197991863036528995093387964188214842844759110222173130069192940561282130861695061169857343356699501086986002346458296202276982244109534553596225814410945401343162827418780532056930802216262377452822963734165023866526356360638831675645603399911562556445660545602491654280059044011653752611906250708330251904171261593798766913193985295629563688043098091083157344256421867799176542676427656993796887357931745851511363046905740414086599129799950532136670347517500861206478745564761239978414793539256036522657264861401776954324914414867153516912541761608489991679383478216430187909321385970911755825720278602549411787583656111983846700371697161291554202583338300175077975420143556343031974782145839241684064879031772109637323258997441458002458941725945630603744243975379541674341505087881486125320564511798476290395304920827906170608685551302745423323383260266883624931431703740254061390939428919107762528560985750134468103601306236918244214397595431737464576475240013583395559922862797134979199670036662192661834732454316986826238551603715975367151983977864766574733758617969246279818624074389188717594489888872853099255855303275171124540276406926386168059505691236614583754574088875118026264430199305333522780760265762426287238386244727559256711871893751542360886790707910355569213195879567258978012791242600867195905965340216782008739322470314906868716473174059838218679462690307059145193876749932946712128016300585636746845831471889266328844920333810122189513728887282321473788256178375289333150329095513573980701211639652071381127391726562341246835239742310109423568413635008236569175576537093279858161944007524127182538109838979322320086213106447556012153313744855643807591657959345302469467357563945687323937637370278974778300931544773354694527062774648031163113552758960647865312130774392496126656113852328951371959528040151113578045872101363416222986551050942454738000889459375823621034910604936037032644817634140163413595393592824527541434333802589842425077877454825658593968808794773579714791197737621463909081954833897464497588075403712424956951528910658617591486531624356660324091634735635180085505339195734166998642159078610139047570522799423663690167344799867288924719579425215271745072502570540155831242852783646150606546646369897146626116299069746734422129277048140426897352693437576252758116780707931095044395715159372312535034074570447351474967921788016905508733899677869375544219944669722628160188083559538608963862447221575076156144339228820323685422172872198628259986002833271321273758108422177490336168916765569966544862241946081306776168571501554352603903429989255070415565772335644893294915120204038086216214167423781585297131221509643788324005124106383061660699027186216754334436070500047224395956041342965403654988555332648203942137977447075890845879333963173638235559648223256628900227087079137989352058325089602419076268378413225085756351839237253557391926153658878279555470263657104759922982157438636304853544494207426357787204164471358001246776733192404174346153054027612355823239367025681854169512897490755780038655722104545057624545503270637807342669786076175973005734278974455089551823979991935665782129890838510564170717596837156889821952309613847979196871335680030025918012742320593669373641686243523103049743771535001251816943175813872059349929485863577074124005262195713502296120266623926238806244371099709889804299445391524752678106022424165418997248776082954065163255036930222826607566644502925613741547969759929190584757773269929410275716908962123854083106768071209928481505811769100090025800639843383295957287726446519288481661243783224154462107530992878646196702251368148881126933001539942744454383477349627569185656865587536067520811193677025079618509207376232522646383032437987711379700726742121781444123693425287314980840323928554474958219091349291010425319015674411109823176620063197752108860639696651705808795639813549880463862642191132931002947020531202523398819214438637118564626642671582628171912140391958274458054297013274638642514245107985746199711159289816463658684744192970090712324877154673370083816589095108500249630282517495264498546412377370587193062447467687541525215066290137481694241259839510099307134573457210062188669187880533608254579444406644925457842784660573782353480451442317672106677237968623968770828220594127152872182821673268752986017263577132429326453775835676924994714547603720450641326406714635219622364318123051516370147664178818228894430549696063270770095607378604518015243082730673060182428860509698040029123873363688932627065057304473134130156994206780055932579668513350673340013165599407891759819640782375901748856089423877981634549788111349917726510413861721453237999033401516900322626928568000680220021200237702867066089653969940175825999397109178779179018531400280794273803834314152707334487595248574388941015609832670046775373295754341292396354188627623746912285118001849145579959737311506653825446129602740944438995400157968999306091714914636900868512510483788501676018403161296025744644713893620019346330114713321479531657470585619366410169433128254360191367623119065205527077574142956743190542981664490834249406845966374731056072314526709344190055383658066078801633102370707485877273878297366582934276018607874017916067817931561793908432605599017451135624718523439427576281478807555290744243038303510462198658462042007967685060954961107049310960944850874309416828307894594604792859272182430027650305571217713982092931446755029031910078377971236961661685837101281180398587148181798087935297875385405430746480471652174690285645070848393010134118220472794739405363723488346827857783003560863687611717348125679186632974527340038865129560479308817714852140428489337226257589556593032000974721426248149765155614604037616174286515054625123928521078463069809051867820018854834108656954506320919191154571993160925335761274439772112520809664571114722407208045824346554987783071139092540895493769867808858643699041173900748744793850995075925226185804047931182102058323548223377929867583143439045172800495787315635181834512814054755659448467447915354271945424284538634987890863579662559758037188450766710386707112732038815643457720523370727275949174713136036521468481888905553888387078689069850887075342547939786945835531102049280904955716316695241443818496261919712040882077801665693384567177096755889947926298848847300270625146195258246343902736722538004890722383671544702927066660868507751507968346298080152606951592896655965796123838594459682115892733564916970581981038720590882054228721006395101054703156531331516881455293693160961606043696496701792956456553234696545183392428698087340995104722183194017966641790919064309499757880062984851129171082253358922642965682723380113028027849394646086135252739497651622655925949084246042050384574409600612764811772640700322901878650950754873921215349389579228225047913250430311176271578100250243296756104077951564185973544184061337235436226582429117553822557150346074564247828164901682791886373187536861652868571160722552949692832392801795482406414071047567016814901161894074208824767859883837437705722157045663448078929187899893580610497420460452148729020291923525788197707375958513329869879206170681109127625718347384366811651824635702175832563625209154785358256242539019851154747066663590799917414022017324896657089232903492676804208693232103028580025358518931626969092011040014456229964038952024400274630490840731889148953354271786278107585891300683166447971410021663447993941718185181085588868329529569129452455082011487663765628731968372583302894905166370905389869725943097787110515147698907554672511178216892804456695481140582915463612812563980247521081281447593568947862142183282645198944187193990625085990124489592397470286483708881694460403789577439888005742725138868308257072756394984852234091221910269236785791493862868314622791039180614654538048315781238716760246927810464427601690308791557352423763139641196317739954977492242420717475840494289745060581447432323384432020639256102578462472222722680779953575833773046437274614620706042504721588674216562584070998693469879360191308022473630651652245515484706324110891506122831930925996598729630070706468562728320099505595663325363620426747678237388516286376601072923973014990328033817715903244802861624880660207144058214310304210675931927461581024713513612777674971114349511181715961031853497148881318004822440509546222074605130732521107213639171986439595817115663390003663574295824295686106717580466740892644815804708580542139043828850741324115859599705951713569069915758417608515684764412464838539616947530321919058919371479535946179345754525928375182608545919727906715456498529469420246803410588866494075929408073412736614213059771136641536548953885073258822074812714319644576219619915449195569362757642469801897672929033887372034849563595867275491986538714422144889734675434036043592778372462005703087850520139854694041463347592076558416975264339054377635536755770872937970520222825781254974470287322169950629869673657080332077775312141606576245286956792791432952044771400515530442870993943171921509290187787571654505340878743363251884795905275382732519863277818035887110291377976477396242403777142344319450140871762281862470200810912896665570382781905532208589421411096555792581023637810898501452907021173135592596943589908105427936152933822975514236849716966926469686217042015595071251438216195804373570031367566393992122731659285901645950031257881976451284604603114683040847348516128366483764523709627564727762072288625281410875295521389427376338245838436226530847486279947983577720519883995014985279687648543741083373492535291531022965385752093135130269425109378252836305371370259334870217193995472446085842977054408387476128601841641005162318914463790275374268436529847822593810155214315734546108344687423649758184710782920674733388965491583951304393812181848126195770821499162943576121124925099247952666270332527777794253506127842781305119632384887446835466949131637765982531878800522062102545414350446486120788532406897479067765798592644578314737646153499712322295932674954600899276542216504148999598359790566952450483390448683921838249914273084272447893453924276335016676726437211600047131421432555341758254252526157799393836205052292875393755612011700015535575654403384751416581584375513907397745373441977596957725110007613189181167434306905772792495626462154094608783127704461771919249678395441693096991995855299713350771755544972117624992548923531700341732646688262517344650531481187290511935670461483816532331905023825789437675295397752010642908239925171021901356063733396084828602870521766528457187918961986193381326609579887407161179010252446956337505649819040225036603612705617705908259821289847713662270768802938485936616284160079227540456831251832223203017163755948954324807496452976734848847272261633533276405076383196831599456917311835333307548216200301201215236994725189151575133764836139348338393427478136540265808797011318647094495271461873819779152085155574395187755727338303048572799826407525260985308252711857349671202346121781573133181386837548241773462123629371035258389216749739466313047657573190829179499451046568761247857991162917996166642927959231381793513896221163446399667046303251500468296148156708504189690979489662961496989862390033062271078262554020449368989115596930645635131790331236820254258580652610621821930650593783476633433728615461703378867632471056113582859172003605745576878541783298635245089452917850179976514892919328556364806350778845460354302486503483404731487871546860934129491336276888781790507990144031093199836521962313268071895357317513352535125113653412466254226928585253623783023234580528003762569688060784950733391984920375863598376988182061427358170491659830215864475855476628484262913706146049135584283012417228455325236353706163890442686515553543470701234128277370482525766988493932731249503823512803787552569161581233723050923574823222729033274845492007466658217971190944050896822891595045293595950744155298861667427081087288918587543666005489876217179041737541355923230854087283914973384768741911768115062111266352323231215084475329861393883548196694671302408219931259851589297069356998556883935556486102112269123534297130333347774850009878688797898222523175917245463096699919552838384364412270303848441476634181754295837952562596107651435721875767841042780547512751005648397600659905120285778946298718355520823199519175427719271171732224261648685580785156272734488943202765924516110304412048687446319106936091757552442733109268475474715812466867435454303914609906528010549725056380260470310962192502581798358282534679757966526087179142317436403454539666369164847156192711444859496261998962142754955073043967194496140465637143727109245561338156449277860896620459345980901142324834146685448103089184690995285766317248157498210527624392740122416373497929364840356682828125767925774482725409105509348257742967049453299491577654051751091904866192654291792609243996982241783612758654299831364195175304544760394805307508688574983325329328589797309161683495008748328548214660799508237768373769138719432910229517494105535358693400865847167997932027195633537683143146323019829171615467536733380402905573537862127767129839275907381244605281052131688671674309861933891930574113270921915480403779937823222767400681479774908777039363135845892363695621517220108404890824367741514303813434988296817083231031481338430066280769846364144591328906188208038711797567399164231299547198223156065306962641818454813532466757242069976118591472538310741481681419191840703732720770115505238886510678956389767596763489455302425252330846561517737465846916398377436669547447121556757612280677081606297514504181859769067052039527294551875790076860677767682179505628808712134472947121005287950128948104089045900181380050804779119938060809045444258641287498499652002806705706200673947988193878471288595065139044927350091079109360496364973689665708306293295441537219505928779063199837304576861230620033092183944341010274183454571614313338371695487130394122431555572123421029905975626911419155056753737732904374721281747734154250343060076997833058662157265026834566753436074768471142004359500714211395314630314857794999972119014126643000591587290565035755860299147136975676714923585721125170129286707967368560186168981580264398233987192951989631889245158268736435334093880499248291579800256527010712959349333067711345777687513124558420729991919141170754188062977064969924707377450855527350931022727262689829052411026288487724772294753448010177200143905534641969775500167539544298420622034957018421730468499271706139304616793356631759596804512016867937110712852910455920680412617403745758737874989368737079942739853910648964202609343146276959103184912366972394021684332460328901221422837521083984407799734481148005865425471831153393276300420220301231850223440888571019117807082953287897974688334911771810694878273635628286762048343890931248724578513532940527048521883305555604863337323811355787134854966105283484771463422405158122036477564423071579325640221744293214424270948951629241920938306811926888912664157235327664839924366424535642389829975969232121921426982044761180929314187106684250883350426729376554370282878764814987029531547123038707229166366678276557188137060860517918007201507406036703156548274627678843707569085869354615536378550507504256629267124526841481871716130970133557890458923307607365839745068882813602941680064798005217828118238422042615955572452679611471022928141723957198580381617850833023743494882241840700138245891474879822793921377348374383494322015531707176989928502037308938688441710289380212720689932171680076749989399451921788649593360919427475080669617817229317584169231849487096232504443486526748936956814540550743661978593007070804910886308038204708758575584444423478911289142311253338592353575241162473460315425249341843000038623388671436808701431915078098794097998013523039246991710897650522796035486206184211754148759549831452576621672634189034352814174398186670339086596395465443268875976784049298458364159267111202935727408553859270030777450144452814043713035538882883096117487938430242184475161737170604388138689955475228759941305633821654150034957425113374597737891909329410264559922359273747657407681979438786544027724512058626807137671092172459569494942845571144732899512974011889611962881264179680187963875329049045928660276508438688253670005318048244228540624496945115601272947291375307709153241563180914082518281329839339963400394239024858979108672705844243516811774891480055065270433348114716256975393443220264805122685295559369546606801168147545317469961075980202149475194211612203160442470160218731710836382545403892299279038127492524548684477014682951098982507482077721573021530048640575024417977414967239416040333249888125486723271424098973696328608492121845792870817900941294905533386546403114482982223775094284828940415488098941616568703084804372030862527571595621191812657173675040478132313754672789225373207078985947439489300997371048104848241581185246475409518871633651512997502963022741144521541457384926441572790674373964263865720991336440550770718348291358215231697686888621671189956776915192433358905762785916832574170791562354294312681861502631430345349404926620430876015610597659711465867210643777382904844754352295394323167690182061520063400231705129147771648940549720881136134375935291549434963290662787473571074155896328507412978872894928052714480424195111162148264675427311175956935468364610473550437722374911247400577456681887865949963331654683397282626472947781416856259710508018049738635032769582497608336674694875009767321359027498047586663008445701070317053943451218994887221199315676330137644230795438282709866449664256673570831100474777832120026630572888389266105671032509450749290615297145229613187993434748100041460001717585659022424531026096832073978032844399933939383887548350296255917747858472192544294840764353521227252230830788347203987656153242912761480585761083719272214637898841086483152587470850163881628327381534970050449576263422827262361077041641132185193346558578615370336098629664901836831681911267541888351549692675581168523187593656079706191490632494001531162531388858837753424519450167097177538939100615693301547357232682059305219610013857739146810268157025261154304464616403422725790183418944955300188296302788558678158974496481398514399882143343052550870656993850883262639817437036951007210695859605438525848495414356631563623039340545663219853292584801945940401793792854177629011091814439012822754343955318033157151358007327158172074983371789910714194040354639641422243767531479817460418465630318587080641037758484631237007409774975643029019409904366185670997015546703535595391617001542141815858929552060440947537106269703979844914786362614396605409573244531355563041132525504530270223345137186547450224952365800621563437608871783919248879792560582392267148753606662645242404671205220125349307881423815229551289998859264030800665556485155844651281642910723952092091755834187521583212106269568189664831053804991986746114037658573575815119231351223231878131376709060511849115782216433929505035358974798113830402181285680205936697498063119732917389286289807240763602388613606017658556235852044839669496900837817716002400382309989001295541816604607433134946829653231640727164114633427795174668557059347007820985848416507588797000585811012405421720766860529897013628121974500365721679045777711398477181257526280337463193561965165343414781676642852830552931394054874867521705459992813248327770251202398879468775379931014046939988055739819921464139587125268765378687653902366689515879246885291442508187518101600350916415720146958522691271992966268047973035308977676461468933524923928604927150467548325419711078693254795942718001331118183790064116231573517067324265481813662731717433431937843082953762156195465362036257616533483178374399943516943909117531773399548941338250491535828289518755315794730450070934703586076387008092188546283479134256813153337386325587139878818313508030152151776543708821496016984072787850248695544257854208882028071897331820952298843571230756597879448144024553845338578714165816770235803674510274113433469088877985481030979913968419879295013199710541522691759268685593064187640205469315212296842943209923856318675599477680956748117666686046862675901530592954479828866886826767988865940743117113803466126067708491821198528991206799595286748824382581127628306063013443966121429634252547504441367992784626400358625154867291235574235775318174046835429611948517219693281869954171246265833174388912862856769370497389418908395978325080624753710725240940994721713644789641362412377080353859730964420270351661982476752143965887288349449565837024398293988561090804154284340406798827718328173036195253058361120468974766300573015241592947005336202134830525751664301995178634837007198183937906690014267908804505162577168466685319668936680302140989368379620320126794630586683669554926716400950818022030400376086244930847996532187532168531474270511126800550427127076467588059741312744094471856845291097039679085056014242687564193116330401317696836212575302613107343619627926343840304876257572236674745054339780560777384586204714001307081285519682785424821983176011484983926017670462125484506762912082428607370186525508372370246216180692887036079495788515446355504205783585756450413148368933660610436612555578816549873681523334603967704404869095479835591190546171941570378078427440831460622093570035641426597573676744476777574054703885397984104770485892356429096601662431464961628663016747556370931110334928503779086146576135223634770132901319315075782031994084337055313657966666423472183611690626900578978028386557690796553899909047855183951402139986921678852320961834623093565329796882385695132481582400443833552764543894842785931486686554050914627456626594657105331494330667911926412449375573724255447481735739077983813414105737757482717619280673921074360636282743134400978587948520275231032830459704318240673571961698095916590956211291576476319469357093446580004782872589797662387950180330833464726038787274964722024804554741801295871834355515156100633455002299192996692375234724596924606209488878642834212529263967834008707036223960851913725260430510128993555029505326871503838605390165820616533930410095970728552412502105924655491591605852018856705190951321006779762753435288896929647973887046253681202687211918169756337689124585886609691039426276708970090760364976569792470701907139372273417377305650167991375596786341563545405154910313049947821695837448029796755781117611081540994707350585287000777997500787793312015732862116307599245509580210747874374446381947454307045512351434239779718530940129990146899657352980742295643173749409796219562717670978846739155865027861011532904244664451879785818603422762650623916641250515675630332029469076068336209550605306438184421692766076069668723859146299329375327165709736405283731942406132485881580980084941401531885618804926728075113277586552626064396924870112541720444088417468301036813346468421916418710046592341715201628701419152636121128117189962454506776429850475074046461671427043320844240595141310947669646600831282825968821708832755472191916800373313531638472579504944232934815280267071561558674234304624727178864458320477933642455135676913315941454727752517391456607099162902061453751216336884807867418399873525272573795343657596985784992301005452621180614366877904958872089856426983050459248035177734009046015426549170700828071123559933031492083981009102615905883219973956606771633053505474877195728441757516605419620778660314858775138500108033808068844986176976165430933864797761931368252077342624840519592503836440120449581180916724112488742184016156685365407151727156717908637156441106651355356792305382700797676733538133602044545087159909008099615566732325860266257810212340126215065321957800081409556306834883753921283762909586412983947400757644152498222793921087365726017323495376279601439807931184520019311452348264121583439185068093259970560470351200620563057173598345086344006070219510944726455491470892156440601181231405014765627959748245642134234040870651515453354722564273679300446888817457263778514935494071298654306343906844832007219856920542899787410069968964505236481308284975896852306057926875471922277032221834070167757807700604138868153993051119369786656569948190444868980597702985147196863513657026158041777059353568088401305973078525108913156309642595398571796350888748293954165734604817057490695941309533430843270859716692753238262060140085053942092373796572476697545731396422556924989397220251133520833913899698207359870580732124662564256716049234719865207908428495495976354581588711364383333450399711722738144300110673768111788862389586640191066458633201934507714367997527913609349761845967396633130494155059585872802986555257756238119803509525442859099735776094744205366781611852233582658441060804334692741593455240466727621469229524892783689576727811143012817920246542668787044935172775176369228896848763369452041114771091216308318408772223995970510946078542644114507444703282741810294493589149792277747199487633639580775053997927325543905332083544271100933556334284871224836772924764806159030694073667256089990915461364478297551797401174655253619048647841793491827367962845105963885188821579107449085880466071560665990854741936024542637204814547086025971559041248395584139071183093920365761492205971089098098989173337258634510844480380085502818414971151447267848368377279758578404143810315865357189443380982449393322189533320508267642473959644271033488060160465938157849611713539810960707627509878229280519373420986751363529925120746971275568874217417126719465269544943670000196862116786665638169296886067377474422785237118343145662032083748373164931679074072143823914446715869437271631078104630411782702717216255396585114836653018175191279008744582436934653124836712260969632003594373870825683734571446262903965040236404919617462856350533204807094619162240146119561014397986714735306392029316340929452432795147382201509459532164535896160522328511839431083829189802650668243105417782915959771545957649052301142541588605261116375300226948069299244451673712001403391428916472448278282206648047903842455773615824296247871794598650592035749158320250803047145263710332763255576078968077689715465786797670512426499397924094244292712589338203001431623062020404511356555300875771595779042032492721471920527050180315142531523815079503805263191623670680608149758832825438339918815993383663841722772598566700828044574271213809664690459431023064839870563005241538587484432392492623475331818938335397702557470509149232601279203596793773227955340858718167672394150129785650229856211767099070389869838151532223950746330162035698455688627730712525088394817233452061373692569630460289498058656107707838871852049590921125728924539665142548818393493368675978154690064436445547157689784649015499267525072911937023299037961524221481096135410158464953427181839449976056120255630600788843304787499178762186474410586501257592665489189858086678129610454422817933645665882695883304987836331945419103219718174105368518653359516494105870311899958203047050905299017487283080369511380917426513240016764594951042656908328490880363635172312302998723704865092737995578045488196694611932434107411351652933201065961201312525554959399825005513797232477920172705821582428590187164891950764507594100829661223158073985579914517410505980886363171819464675433510779532496084366482096523728624031591951730460025186523963211531707908230816569293830245804957366291648827552615886842461666841107488498080742122192509335216726648585056111803569819336879669163265183515108890268970998200404991810154597562693388327161466071808918923190701516390646044171962051850199484330641981672287886894123571948236641666098696262968299870766706998270421563101068449983158561888209139826431638270138576454412879633555503271272247301576109059124888145096466463539536601412335720166341145390070940898987115039581698814278216299838842311126188192716070587847666476330836858525087026893062174871007168707500174461407009081026771441093810399427685869767508800002002214838039502752212410574190862749255130815513433668177706202117074265489232448441848192137388105468656511661158678695337512029513071793952860930431086741381104033776369494034034632542047887634411970633824644575223611745161401349341633466803577831923731980888821486261713639764499388347788939867621417064655807391528256097279951512645445853596884068877797941535482535516095739947775011841306174451710150132716327858983849272713250931692183036949800504470948943735204809383469195815612046502745394883799113884323310371663567080568521270394959153663301348784816970217451782983080007854032108925089729780943627627235801182879063407537922628710951524178209727119893215547716257443932989578204939228637773209514946599317984304928772142755663930953647700812649300969639739406088616267895579698627794087256836749149079630790715757737700011891301008582114859799525956433212863311525731807792369209343492677943014074863199924764545834682085781243326687589112554305954755599213037986440705001588132257142863035517385876494313844150522251635933493576054992620917468276090656087260614360319749126357604389186896037861357143093724452627849134377912833658285995729798527708870334754168249485112425346963205595766953722637445036815320069083777671469634427844790585229978758196588508347982827451440988325335509157329310878600348655960906215833324726292015549875974364922758803231335171412999697581652976512640513268744968169655086427539962039774401346746068648467511485607606579144763817928059269701497478957224804389902503340217607936782493178335924066879878053800472563133270681893808328730812887570195163726303060909208065702107600112877230358447233854687203146475937289550395367877271429131838961006754631273458992717661081522065745881860454348703396960171952591578223085204665898572177908284068282249328211160723391901759019067824698836373691201573746918886149282163692012199886505956856638954093870617900826577298947130111657869801312486238147606529243062608941984149482597247484332231358800721563171618946936055173650133611405437782120146336725297169654627742063512765602551372342422125455531089903821083022480809788976592972663011384931579103112565945897829028278761480608321021061572537295697564872471903111054717923172212906934940412788843331853371794267631952327921713287720694753824537413854444130527527567267904804339711132089060515378401412827841558730040159060228085416937973508584370097503212029776930581754691210724098055292739806164388805905590771289782052422947516386370671872919629676367680135224069799133425194556120978797831778319075494599417036709425982625748979987214070038808870037871876944339200246465332171236515267156875180061651029659788483891306118589057982620871135658409945374704529846400756674381003903970047675206914075115980481201975434130441042253888136599698044511452454022697773300701401832646252804537093351674664354298302353882330036951288591669670593765059447384983439234513442013810116202870509565005015674800494227132447703976209557994836125418741363208178494207039292724522477053829578048548513821428465223320683898439104721219508857001413919275340525580100134600740943204409717800180553697430312590950728057482057830876343879012547091520368489718645565142916753684553773375048060367378091621391655502092689628389425838120747129512350006847248205085687953493173878504091303917446741521787074001838707063494972378823794937391239842134314471847621517909313103795707164275095942036247909353587424159533495561678063498734176244856023209161013976968072523336885815178813969046551358503035897974516687804467931381467368168646841695120310648675594556458474178144546201914658086414385196600033532292904296757846908967888026381190158556509651418978136830931805156742463219323611493138276366978387655072638155472777073859685732273718147635898573367651671884687168634710963840991093446244955402834143665407546816874599274176040894428071030161906533311941021466550000422038129650268228731592846997369870295262304975345003807915253427784514948212590957381702605433564572315623420734697021001933024856920276898166406162676795223598327427220877022106236545522606481556302312371781550344999958863086698372709309976204177823998043571346705187940131681947416312970828931815829142538395880450052008962521513162797697231433371875255291809856113148458163918405838174593108817795315433655883580744704940344812696045693301698403590086192146759003218975686738757367341917505308746898260029603632169432706714278084309263029925547854849245139704905232397681243313347871575712849984162687673567438325962166166955736478984624167394780535680280955756826894245573997644386739339998340716891545756790267092078216497454981606678269880987049440464996725420498605571209184808025510531212001380511630946178509680581019798123915900378603618398653604831408556773736779689385659391925963665701923860452448674434505981465966632345983157488303590593423627816997719096701258381067846255960641835848950054334660524391593524011693150240376199016531076956396677335051299731609414219610422520704769687046372440938500860189734277462963409743989511776851184488938906090551436936322946337458550848145753858099233373087424703077515652829376217538052212672583710319512769429069626214608563237666084475066238923426629392969033215064092310510089237523938285505003845949851852357668595400806575142007964302859453653513390696221004932835362196558244931419560836125960445906195364676968397752511282601078381071345276089357111146034188504946061861311772096748205955742422119389708162536123959903233770018316946584594342784089680267969550384269435056168264602736580705223237329509580897341543970613044988546096604771612057164955083387234483649309813859157280046729637033421470289070264439635641290295419592615013332268953150078150688299297701332740063286088145541829984049368498372278837114825047205371435364992601760404429399813272990970128396521287762967882599096340005914478868265047601566884648544852354795795814553612174156838756069840266408497117462694620684942792394091449317677083204390203090523860686618652982074208899563988471083884253797384472787292203424201065087974870914374679757528629730453846019865279662016127990751773832449598792410298719656262401885267217204337846221621047209337328664343439244197984505546633272875609746968819745446432553968012594699215158961295907812636566095820740275086503273569382543463849393575089424031460797359604942742802799340902792611757128209214193999540030774525248786842338945200478834728062511460801958292715451988777990674004124487307902836098604903809506275193896657388068589846341508742976514589473395006996790951497736682263222661587581647291920706165230990477315332670970410674694537523309382238200074575212477468550486374403628926750995707267864454375324486603940942379044473692793495886128263972209020211440018524160320897928905132155143563635212964967608307651257864734763663863963238498033870341333570118194703975367111925289525016210929344853572352915988203262348808459863023842848653494934785237243906303520079481252639864213254388833550508223983736604536626947382302886022233328778844079996431639822016858858947040748003326105913111772810857496368549805076212273543190721252136246523384758060704591507827809094526611395285973822341886362124656771828158581543683005997083885132225247211505171937623314151013485361798733854686021661514695570132599203960016859782510362755350796475055599874531740528580970342834545183253792911660954685636331159887421963131524843949647218241912046556916005623668335262174490868473556052311348743785532969238941213092178770857810995233728075166228177673823933323724458342719480464297210682696633454809125568308168066084326188500121588998845475773410168342789712853899452476770219995195654832424968331788195007761890198143288655514453486963234645754514644265077471107554626688154959525490828595720090131696063092726369059279236024896966704558845188554448882404187790019890299807999970519680608992435396443429189500307014330624472308876158323093545003839016344277630070266199100837276313563592285286016566362817092091377730588402855570683787385303219065827748821804354085293547191411310748155282205001701448620276516168682880699031280898099077093682723155189054248277012460720155924487345606314224530628255854973966225028788950580949604822977950158910273256863634683123525603224456013499833692889633636766458592184085012291196679743377641188630094864013358237019966384517309410880975752130208442514910756299557297518312157940204051184724393440872855661706068718384029785133471055098891908863299814555396139247256636209518422602889736504986712014823836299819656991861698849671961677383939216101122948596354016394932697933550971189170826521381382292926259315793767868036157036241320479137398360637599608094234836446669063656528557378338610282338931157209286443099648374615225261108338667829800123828754172094412009101808596770832626162179743056405726173318677893960497778952920074484480257417316594578429998585591885522803051061142477978688313973736801799415724070566458755394328141882177800512266719523386076889997300510886598678671580949833576417586850497368938188243779650028712341738588193773413566063121228968336928324480742220434953182742184039335026570609640505756389696766920148570964625254265992963076170418777018650543633340943036843059789232930414934140933137784808397819658537080169536828945653179212108256937489524406218064974508958864888925278190597051700972113355566176366172428096910335851442210759415203653373117203121001506173667327121178900528913571509735621088276662225593372302970584029663054784436557287072969503718829763870074285303162498662258517777708852906343779089516120315753590132621422745418816623261837834670415031483570696442856642382063094706766297366690487051011060767078941192903860130840041447497969247370836566146093119923400401894524884529364526138069870191376949431216050004417823636227694605998965896473532039997451525230476827631432143282379340717242709069170155315077623424414461227183585969555021884583284791169578444543142791358050666535930780064934685116774542097911125000700217982093411104897373492077727896834331423603154826169723821714429045598163165047969169729311966303020256703695289149859393169512517738537097648275378163140067123872124416934526935534700991522963937724597481115515631204098724123921689879716573706468065867044771104627716483713359666928725732904836920286912719875770247474108776881930905836420360626016113890217467827047037509061730570162858903945531535892181618071933155204305308812995574438784331467021009986663540291420578431712687496118128536821196802118693496318129934027140872239499013283529178148504367606240093487302001755604443562296028521284061667832663054186433696651850567180073304561490331172130566871472393702427873565332780656759923381191054909098918216077467420328307939413915063203289931423110947101499791211213504869302922868175666655928682609689416170642472361185516689790555709654787994017554349497270952977254057742291718202344874385084548152251860167144486292671679679285223028667813770684983046000125169614166840019866106937242239089286611230869406195234787850490247719500044875659207414679428770369620825227766265078356837349778170327711851114403349185572842587727745488654228931939468042637603439094530982060783479084606851217780337493796429390748241518733244252848930777680945431907748738362744635919254200035020285298860340732470754164610014730967200406154678683757790120552235579987690169528025726239328941633616262175315617519244067542568865986236036330165726643914177553473965743301113261752305369219655158492300377336784080603217887420084322443205441480152751183222146570698246734957955920255821668517848402853845823682186949211134159197011862202654684702348730187484462946068042248499163714770238076011076496439551133968947082328072045834824419384757922860362512311800660818398537120603839703911478874029723595297041136712416158010911206291939690233849660899467348403911297674526039835957587797265709477429871954470258763518853319726896978847200880696237223020930294429467385117591928030032461972244295706209553157362072741934818578615472288524757035830583319137023738393349776144586051134964446143489404239853529463733598067319511342750695565016739924175413676502781465512196585988736431563206686326643871294424889814911463389472242958996487055385291020571931043305378060101253848170947852563156059755810432932075583557589618936794350314328919362168299458970681183141815655120787565500956414492463545377032515872063721234582978258663323107918142019310196639167903756843537646810375322177275608441279205113872122239709959517265461620165159589980946463532490848892629494021932407297240990132049923840828594226236958964699581793356077677490358609045175203404638369437579526232925978029172491520685003602367653653629624721753791123997529468358135800631944323915693351904477920389388141018388947519124949629031012049410343529692616718249441507827977104197126652608737552899898718449976475646246883381919523142418004186149981738081135122314020654826203460906689201598510117526093259703731836930051124770352353864906176570515508002146161621750553834690238071302565898687058901296668387931746569385211934173955410058665663727893974935918538490226970926584866934181299706678774720397636666230651528878132274886677617736121996807572214067153463755025398417136929862851291161427940590337235433688540267939049844067803617851639993096361561508159930860743918129304436146078686602309190951665975725525965835344613698595573073900899229822898795235151437520796676058390579958193716236008407733791056949058589962030882874930946467853701617659535315414906184133240421874391507579444377191175096484796903323217815864046007220080922378796072553423275575835063163238294956440191659811104557271772520322344326410600715839345273227791615502539774185164513894495654668620873264188388790099191417636514023399746937601101901379298749146690485503988979909875829231583978094367010142844975882910277363818635697401908689156977372071532841432826755039751737970838644126212874130064300543583970340356659425836135328482897793808540124831406158405891602625105958758241415683095495375456140377769611226821579283434149324406386587042008793796306509711014611418387126726387607823673790541391797240495525602943265563125500531836979322621027390383059620184728962537558201231870165795826851084184276948008393235793062000179306692804270373243168856009827543971819526031152186319462479780603783528316838972384089899738299987179706875530095634410961511186734035279495658969662154533568960429503054444432580468262917244840815686541169959554432414187603151838620701727460329796712417251095128040290841031248860374396454131339825296512631391844437467917510861494677575244862089133275325904365879516151609908886915340457575871960469020755884064511061861945884647124652077564596447226318387608780916977492817524369590425844261199911783152541893173553813846906557705790054863937888109846954634132972707320957664553666389669794190924221436684174292500049725676350399149825474417817773905464197382294486337353068955667985006534977090309236854492468995480043246668305960752197995587310348253164248238529676539161329027637668879549372265932083299697110220024542825643931529045982435169875288193777812663556678994338347423182197093804990934510760481800013360807610829498342792332487729369300656549442981017466842939279482168691303112933982942421140808833481853684958655638836320590852800396014655818831160439602555426166264481873501237918240342678024852532281650091602555149389489161042778625664706870695581531841708116940928457685364598233143550427842360383786203840865559971472922939076362184032571017513485996562419389381624988559767643786763222730878088109859870880030436933681505382364487937159790156833127366077184472319963332868493964475625684604567397399201012284503258587425919992955890339870179713188206968769402533480967205955474550253785014757786499020621597811832632634392734085102229243793571096600720277560509679786289880899813852552201716217233616221781895189026624665516287966077903703736706995335157224584351148646215660415632230927104278158151013407991182366176234223277995648631948358599783260859916237019926696990798137548981232293716318175609014730233573388056075482740991119092001796161450495777537145966080089555001641517245756721014355193770502013034372422709807716256893685391486011037787654070600332746285672544318110141900929632415968011667118127062283937897648737741546257075282053086935892724410875838516635013808015881912025497978198889252976946970659246109931503463353179367970871792948725173392204831994585827838596894049184546182090455341805529965724760324567410068341592208742879527069353811515320657593696880716244715857973371173599840523594812063361464529819514801884499345437795915436708845954698215447387672734385318547165289084407357813532089129461207733350084116532330601240448934236720855147844959794269235005031404584288797152678257973779766279215488953031950355347401302543953009057100108267854647898000589037064095874588821555459903561739364606803340396821963039089421964191276285546711045772343483343069383197367418472242178171034281890291548893932775317013906655304907670069292025943312389991679022938216436956567036921995066503617442134676125282964584719283921676478217238497032645714551672000918532011864368225532231985013854822147079992411651934687096947649580471584009077462858084660777440854672073618247664696351727040982533830462118834251882046544545774077229039145959835041547563164955546184309012670858591585726999850357966194738794468443516000974981324089567795049529971006329761306162956445896533749614115475820670922829004820067856679176189724853134625568305343450452116653457642670388920392143006603367086396788077889074988525370473833917485009517343810108836138194358289974935090927065753939761433433478828982955912121085495387176604359049860192283025909902611223231853657620572895513372665107792295462088125901647396907546264412657197848740276261841631827585890383141409012247617390032402650975981701885864714474530150535125036441833035077876270965446169458074653637350678373214180049646540957293767959201606259582803030142434903892247143940028404059633582449963770923983750863408824864141975759397852141121436151370579157346614122878187493952359771645208703823348337265853417295052780152780309862469060628990948416112444589706121498298849341755378857834808757569448518206894007147544957343909551902349691851567613271846575246093257663342788102521415082566223764857257959778038176945041859260109617015312828358304904293883410304488439019977811067491680315340052747001669807304349861164322086162967168551506510758073978226453695115722052373735050966224988320028268245806804786401411510286552040605149428181657795246527505694913986727938899271201905220506131658437893005930617065171336803357967568135076643350081605228461148796813202271076660943533544010365013834671467486778359460752502492560120866046040501051219236272016731558999519831577192177332042480366202386597051441786266726666384050553628417215777525444495580849194993205974791182919603339559383193797112997594632837627847826836289639346289485655885537140573198230528593096839966632126638814742013307966755591911714794835732800341826746898973210734443687465102522036504654749350409743487262651920973046749770758405179004390039362915100143422411426329601732774844277990814721518384821083027311400003844524016849257922254516403621826465337392114692670646721388303640344567524339791132425041915159239917459672202853537812830308819784305052078154818018209385437503927597432098674986903239196106987735397440049699740393322950857785101108296988205990292193933773233909983104582222428814345670565127496632179352901669685113370288677615125423204930260495042519435053166278952582346254203040127774278071200979762894664033084697444676004296066991782710561393386686083825550219419452958785663712416756821201322662453305035431529890555448819944201601018642683843847979136132649155139676419961191605221787271036620884104491936046626292302437973715865282555484885117461926798030693102725174795193810409530472818801206628752877217745317545188765651789890306606548907659631615283191593216283717356391896895842976336815577336492718104722050330882475440700136778200610854985069326941339536750446597436270856021148765995664724227201160046489904637398633387597469523824509176669937699686447718522283139919139907945261567331916975589038360232003956469519059654384782720779955187959526717961614366693882237106892397555366971663099624964169581672742965494681043252087987380750671951720129088126078843185302527827859930677549432270286045956395527987125137915086884292664861199942301528889294241846661257986369853945127323635835867610929392842583540415690287217252244654122019215687856395190822610270719838056503696545508310212085439930845779195371884787862249889230974859391864872892112070055147709761345332308586430232986566265118950867865742007418023007041831355741267577625740982854947342442596298889638245260600032174742853040347062017972324797582599825763712346065099826732187628302574176424243591879548237370248015739347840216451354752108252131417763119776007055677284008318648673769270218996028656809861920993935093390335070314078648324536415903602233921831290633166559590600444073650109847934275101235182071439081773267902786121160334181048144997363848243964597357103613620929404132554687926614105458075553218196697100603650058248339563679542746912579191516650903592693968494431860382140417313169479341021682629686685095138544366822246473370100752980345454221652628512640174979037384305367369717993424132351121453521407675866680808919252390640912403490254136340218291249796504882010726672720960653058635470007310764853708053906247661360187800957781592689744700399455932636622195977250696539425706395573113176986386892054757693792826383053982398920942592857480787347320704701881013934603943364422961409306993436518763059809710825004283796660581805058872525075209984255014924179190717183411371298049022333331649443893430883679768218477662497091640379972208599561556029396136417680562582513589658748086914208770815082424347971813822567249611951152992952756680931421724741286582189234350209517541415694726181921774047904738510810256822256650450034300524986888944162377615536896716651818910269415924656676089329926201175440159175066600356063674014513936675880329599235524345857055274020428901848958895493743055426855542764982184918835481258641014100521299973493191720908702237539400161419358612077431947830639812498121590549828605907556715099626490927326919444577814143799414729706307001858314153767923553567021620070836969643645551525330198381003115635090401966984318190264403303787100877067505048106381620089820167943728977411589071419214892671200074555718609356202118074767660736750571369115202916314534307726556819616431204284650038076534504035207833604155230636491624268872746103802187377620966206686804784029080055152481483241442320671526661965258523527176760838381961232377942907340940400523720729554326172455422420365745284454194326271156629006633220149843606214544560321517981724257012316737003984779998172018280092125009138438395776505306463610920620301739794474426459261997194010178006592307327586578295932676372696702374185625852256696949499288690642522661077735374817961955736111447646156989317742644938256547563126783357901940728687349033569493137929413566126141891643639975445156794309842099036924258308627958970079399524837069355776812268752041360447221035051357937359148033717542422144017753733560624237840804530520390239846620650039565304399117107604406636133881181791863422328124116235295961748952959796880115692312520970786572092588773799860086174851469971342575432493676971764245778613167176554805381656284646423540070182089648035699727177931421144551810306634681906938890783223820994662104240389047703059945403866906521652153700049566958615311695815292534033353178412230175082877579744870621640863484967708766486920320302513599008527643308097600637014598089576712073106704488938231163079695305008817396546319398621859227872776070910691906513648403611286126571631836262766399346756468038358944730311964652509186430127751471941483225090468732299961840721001655916084678849962337554578108085042319299256809725172411764713040045953539689997100119520183489618511913726762761753642028683526148917370893192770200610752215556156649808564015235066793748958422758196334378769043489036174114891135560414722960220846318448858202411244140105811013012452312364368349759878096526965180315124607598523171673437840103241086032215872194778546788808993998705533546245742667217856136027835291576557098091663866502805012578859020747864660790730942380830148935830637642260595614908836546004594388153808694686791717590565921423953761901510875793730523568079261895556845903199420521267922834014484422656367200896811256761701384203120033417539582452179485510687446853889087970966942148480853479719262209675487469438849240913836034791050721093045745713764337271497381328569881413918045109374960681628021963239525914473539807643035567686489339226317105519622614889497642081341171789344739445324651798718110509876466967172712795722079225291429291053973197017264752653112010873297841494184343134725746021138003967013238997104030858642789250097614562179077126646299285661088670195873697304334084145955580650893196080557293950693121742331439134383883803591976926642198480282957450949465634977412822005652233825824358430746471352923208545201672318775938768477670043433081595420076774338365735728010282333340667230119984250574720771460413574814345115266813287682712482898238475675633712487446974461588740665315670959716788770747474692731909041641029729995336135722447541510136058493074378313861034409069781747924264310667708608082305579656831959338674585989893517360527310341522778992110887232748226767498374428261970339090268745127849000772534554521937433635663321834462289527558965407567842174968925056845384198609793179522119809316848784121213565836932536175464978308375751724167341142947544160114687060940895730169532998235351215073181856505083243128683327586507824319182363519304417434181876519236647121715722351362633389925838528613997790406148330892826513207614542967521821019902900040058781599943679646345185422896379793876014226442186964816495702636938554258504214655111765857251713280278391729823911079995195834503651215351163193118547958326875250160547648676800623456954987647698350144649983412647542967683641559976530757941777754580639643854174360717181048427385682920617216305512652132553676194820300469065192283070165705412884284779507325879656681202643544973120199033137284015379070936803251104662051745869855831289601106943259547378254340357679501956555114519485053204624562097733607281506990301249746580280444772523987373812426072893660475471793620444969492787667827307811750670626202330467840915708846397557541298827956131944988233701378364863898617252314070441307899815353044823632409959612705739113082655417965340745890158810100603902383409205577589110548122158546815519816231011638468840142629136380007208700619743413512407805403318587177616736089541176457317268039802728996662965139035164270613054929776974370462988591018203345528293299069946724905716443787479511420884123220038238784980819151798269315284183087006037238957234821639880393740144481738052333823715114784438812482708833247260703706233966643815972242545084323549346688702160725716711821718326289273509712250600362251927884412012047656076740292126365105366364211298654965241679340927343688493795813282876188910280585349886630679170958006296951332786867500290581057654125380055005319447045308220873492978368057555338874468284920390744701388249204891367422829949451559620437414514901916773482868775055747178024919536724601781534723469634682672104723176745084891999200977253342818315944752305247835871009600627010873253866401605470335634778410642521049815985828731882310830160801219758661086561507175259315073741250855839627989022225373009314862492905216211988643596639132775987211845370345735503172164887033094063494380308367910955824197516984281201093933579537411130602170726329234523396719567487692816949640020754708794452339538294720152846144856002236577479160704982777295924098621319694408176249995965970013845824381464085836766326615303915182355900474201290720331145962723522207870750779258456092741623605884211039315048223967254018669344445134162071486895777247435790106293520293549973461422076078937162227626283777995838561024815522371162609697879704542482995627893862235470677012355035573492616416011313024430670909500997893251691729546700280838108498296296413446184762282942407752815045640587786809829689039105375427156812277784655703038277194265754954330516828277385361993031747948167735956736355345651202714173922864455951372077610743011689844614827721584129827200826998175730517369735421039995250759480318492766208077367726950359616365304244523254976777327394538265177716607348950957759477882924016369413153724764408445661405005815853064197766304144627081562160972758020325446130745991922743118746619935686095344271446639360499510059220342930799229285401351745585992040357564959625227169802020570532734192146078984933978579470624489146027917843714131344760825429261242784266671339346794070527384438297608717224341864713057574377300348027776793848791706933752134781472028603095256149491462029666088670766133283493591819879680134238190431514654241039487701734148290972772698370580585577196004225380831188764765000238476261259443162891433511041359729262513350591622676021510873132024467859790702450459713807672973723982457362518243374873582806084429802719682554968784760315886977932162693845600885379823058076261265303345521820689442632362089625226091591036487877464138123661452219175950144230828278899455307694769835217102862682032327388963593117256064260122164414100635926159324697424241430554103523149346710971109881599527155728546586541693706141876697635281169808406656357000946190370426037157310751909023022718143985102406105456266720584111304029641468590475460431660837680280388514388768736659096404688005011498045371374864648973387576102688799463865838443688251086799334900972328009594557482515906827434881416320702477628330759479738303337169288048186796355732080088011784144066988496384396086503076214815084519640690896759575763005268757352655194085019815993754822745135327933160468786043040968332542716236350122551292563091378659885583916905841289677994306210900745946155072071643284271713813869336222633873304415485392223390417454997534468071823234914881706197516996892898897233715485089361592381103922979353832158003607402314932270508490257094369461777456236680675921707157271049328986893001695691743698626516151389100426934376456203201328511753408225725640634977899430667605132004349736339593139845453366445045288058259976597750645768311252542897870761408496605661551278782274214291558085181430535078883480585921035208075530518746861439228246554557833204358360644453675283150723818895576631424601406044024729209330740981535598314050308636572146340222496369782876191406063364542888176317895908255348742607620354062585811138338664517448815452195360959608702186670642617908530336780767044576619555873900068715461272322436289837620125827902208076211946360360763551876451621745241043381260416905847342655491129260075929455923989136067123865625463646704511118158588531184911007280949058541548090237944604341286266040195570769508284739924805212474807582264556477737467325315596156425333444238703679079620698372009061025554673625742282041632997588180312267221006932816179155109501780272546793110565976428347451938919517479222777892997978118973296053152169677387699932784177170370131942017241770609988471057158440590549612684166527547278799866650519352293744906849223939862905828212182186477196571362722256404416937688609243106479357167755166069480232484514222129219645266362548633789617170165393569843549270161499341664396631152328164612247286427490654394767133972303399471259912586240410178244324728670038563206093377161125028112250437056497377701468145395326084303374804984994107594478949740673974501777267383451608598467225663278895684758209611802651140466900675861108002076990540698526550030062871054649347743393948203249841307519785541484569880830245391042092844765166566297159760822865638570956993278904248822938397913007856626864863979938558849804598190437216574877716742370775927935496818197086787331556377313707559491019974124464212267363622622623052142604081695180948626276625563151931449652675129636601075405199040499011375275080266298245165229157053071625028735317461544650118469441036697610384858249292723604201196250159178779275096548344026600732063799926924955962457612335081951061001756537648429973816880160478065180791612931603498551983373565936597806793268066195409088685498340683836713819241967862537917355822806622499123875746544390058645192583851892970452927478949467091102150187116510852807778044288432274206934682602427333976398108272665568768355598867979980609477569448823948862856619327930738971284448903764294104339914855152980622257049175814148950410698677011746477675446098804855801557331089637876158565862351331318386898953751171838135612853833570109312949857720217288826489126946382407787534228780490067527479308360531016788366964347565767258315459215459822243437318858144501751887239829645931472045081600344926861183830476703974241278569257178685827494359924562971116293367409307638887432753792950657488036469727744091956698226540145409216540370758124307233911995205497992376323878428849291779571399797317873926036175315187380463402859509487413074372600614823690555253960297236792877246094635181134125680405673087586077678568846711606464801586772786663038663901595243383823454236338128034709170160446894647936297710870255472924600581281686084027226814009895826716550515837075085557625065444141387889579800611386261677206475806839986259836114420347389151578440874085573450599000027847738134822349757223822483801240177323666164637717174785929498586382362877707960099765950820440688552773278301084186573342962909488888685287270245765298015156852391441578039130295486495373711073888524161240624010873543616834432327635205443681435301626993820440252277146373096135649514919760052294794153882506440939039433362291307425998580300579139437969291624175435862778635087283127707488603029963441242384045718876746009114262797646629560241525507714796090333179039040323339713242153300949387838939020651927879522649039031539796383742250412410989391531187848556227978071704943923227431425989675693990039092334036397537767570622415521309279037891287500330378228664673302631127241691456533929839969879979307534341173551764978500792007695269658233908074425931395887237442851309281990370456561730356588145942535582300995979402804081630549374913955420749669196895968982972870166917100871264244388137468430568620961061449211814657636744090647988491902847270978268311918134023887973069568753496504096323445125473376158104466599947342885826943448611287250584812246183089827563297379536370439008756532711079465212479935157169699092211607451869212554120625790273974032305193664985666848134299095763928943248909852463648108368253386902826906207078946216011646813311178028640240694169005192556641787075434149330389110669858188165491551957757826829694284602165812289898364477435141380668379411782708022380716767661515928173592172026794843101959702437911376421735625996601169109112264116014221590379638019053618695139886605346366834770922328073205537296909291773436663174466743483465704852551456174377443885594126968200234901110244675913599895842463019933066084411722439066077809344740764203973673737996422320041071217266379647464711577510327033340399406912985334486087535819509399738149774843504122890489532387484713427214591840303422377450429940292276907050571197317810038367693471944647818176946201740212231540420715904335630632355647610178410910804452677449304747613437638658152040376043462817734175738672552789034695445157737512304172061717453482212552173233591709169465602498899938971963246308956315608146713254849692584860803176231946510891408538923889623376752437624009472661578882921607358184513958019208439239591244728347823803996263359187371752987067979082147743828691696367228049031336830835310672446216866396302470550864306141552882934515295829493263856954383951954912488739602850746207312754600633188269399704319699790675351050427665407655479491298081749581748577909012616035427719602743582552401447254980927813227054869213608806583477661275651056336008779894639175310540542501452474342129964565334477515574931643661219027123687468415516685459344395224996531234381197042839038982489523298615704725095679748564686032896338767812777495640874749658582765280814780077010574120001972157541893846675359416245086503322335911310425190064022839789954577269552935870033105454732815795601488477850575310937422903031999930288596650030942855112639626756115058543405574688192214509347718781755229780283318019609374538135385514052703552077127141313427201869443785204960924209916570202016634521708455359910660255500155768560975361184000782694267902857584838834207503611793526344432115558783319041182952179397845892825096969243987470059319549175004059528805137399560511313685070420251595182649971801747481295561852058044737638878658150193665714568163059589439339497074472644749454549990669649910695784820379430120852121746911332707745519515037788538723643223509492845425286577559034193348516516824711490660711639613174545198097415674770312993329548215267942204573244283051902698844573958605968627025132486291021109212131099232778153836396970736677878373395317649895231743011112519307070919730465170109958941254293191077039916894780356276951001398674587269360857239582975559297545790064390896330655744047859775469666213057932561942952363792610649025022726437265663449052864713147769641960868655354913482388338148017838790013984104309717546110998021677696995460118229604021701501623938534499120674250770930816748174791457790875188779257845143208131502881855695342074233914971894774249264159141868776556487204772628349722200887549836894319107286288903550672149111989899262750911983198273013676070968759508769467400344077975096343445327373515765834702256136931835551884675699507899341762246416373716263287453595477544654184888546399308620907096431965807039357081725101419496074555154066377296712491749122230392741278737775354932068998436029546372000147173265569802645390620143552144272637739682629630991256454989490552973171425084043433978048781823332751587125208171840345842932553524721884656139132137307663115455612630242375188439480876826072711236072356356065489827408024066713695609652343394715527054787168956485122334376858573649813155286751199877549454013782218759535733128301512696352718742575799857729631276530228624056072561988408354159268404656519036047371305973799412065569930148852445684408834762827472420408203670194560031589507996237586531792373535637058109443022685173329739408096708513463505503732594824455520680775479971193614228694612018862920929716368439056635761468399764909609845416892718170271313823552479049334292614541529779226645536694243939842008937467605551777888800208101303223160374087347488302359340442078278631461051996326698853372509955038897160374563823348067419848510382827613421404385621296992763644576526933553487355330184913821961198256595436130238270103207645442681323624042520784617266865024868445672320721587035284131539773008524320465089642916323605822557752021797718489944953701793163613314792430244796510261377445218175085863856854082347314848993445614716427355868351814445510185178191482597198295682749212047218012985216294538259092312186567811633075027460180568856448054452698632224323959195440005492138229183906062076264178914999254970408849961026965576749646202955479364972610669366796723145179570528430714603134786990512951712587288336623397057446218014155177842757707153451612309215000997510242584700345952701302252442546298953428432241792396406523014532473387715888939871150650156522982128086567596525457181695521485024213088380830598679253281969751839151678618018364990751199268388280315560213519129679310812609324688275040005650640883949035719137634026598970971187424058838030157865092134830461034354874424571221001231396015452203481027856872303506582310671464418111205447212240370031054375864765372154055967222012658502444759357449111756547390642904855147623299901918092522697500642106599843065498986365073589869679048421172866822423464953905458784047693359477556291584163769836797384747635356490322741072636842933401305759556576255164510807020671852891315954555112037060092503129771729326226083612550339816084049840601676289053811290411666647485653222797454561946175577703959401922541814603115775171655067018882842000317418986441343730010073572113090293256443330105230105868318149994566030473237831226099926800289454014990494748934712729238475011728026944038856565342668165732731718079227496182152755347094689929066340995812194134392535329551467289121613499885123139326806268110259552597438781518758477739067806828577371726753322493622843519320076790812275250459869496657208045836794363602017053371664544471526485540927615435740527530315196953714778017670282605659881279034932625187599264526064138435155062866494427271079169155670902205060240845503473212640451472295948765698552258623962663663708063635489854280091406080538333956806115617324922098567502050532445482410465296760865446479093860777225007310107968424274301022351818711413995432494461068354217702089898720454868878470029584163418515641584337138872355408340721304259704204680510615390790079881856423031189197205872722082605977301265897940378894413627367081403625440841875141026326822336341155900378699836417647057064919242134907033129776954303136772860332606481798383962004232396179400554482921861501526375169300825496662777848296157896019241968085567018315338363421167013675538107471602227879626961525471276571199067452072467275504087445704247481081203938103942785980001827848566466237190820934697168269861495625170636017970054507685607638708679483471821470573583612152548334778403409587821960716459336252968768540381445154452445221930174244904884128558288098114050671112194598698676078070543713720575909191436287763255508001840758795951985351230875750353527896039712792351180222329871962706066089385689941342541320562691598631555748639159869199891845972906890401529388208441057828713204217378584866969708943401481759955828884400443648957571947593080665371975093020794227614086223915695363873433444279430165858480775789725401033688013914638895985372909250889519648549646777222578739634339028279816238384254419752641420434378251737669038807309311298302948192252708823048085836038211201824160027403571639551670418401813916926698592608013606956627708993311439155041511812690009820258591346250090466372783559740963651596400668531589749974931383869659305456814585047278815983142282286212873503872587257251887498081592848489521211874971938114259723229236312727577444598620820393912495503198832499684282431335901443528170674998699284396592997769638188893647026985746793963687080846234933388311144609992216272335002849586613260453431579714680099380449902113836323493232554918810573012045373405381785336869682062193910103588184609196788423854715560124818052394567178273012271992074707736210276134068861671635567507871967054303682270394061889464810742327443303870282761053228631748372773131996387680223529696472825978648783510358658364719003171159098024381413682803285197114448512408925118925279040926049191964209586157040061683501297156288609614111977228535703937866534629218793850509424005440894640633023522225210298079057057465484708559708636813943316544871984022837727565954572504206922422950283172565000908758955076001215199709423764729636758696166677497446531387137050486382481316734035010014421751173620575401173183730485168720258931386449331355325602016608197988927529035144181455030246440057125058168885525368334482345078199874081354216807106645649319717229047619541710589669790660940622063528870035844042783761056085920202152318959508322562283659381656534244837294399518264874880104402853971107019356536548332985769087625017599623165593914538818894860087133543472401977726428328328208056735746040997661173810329450829885205793888953936334598031576346725036596738677957497053168175568869474744144937722841083037847285460115080619578936373318713382605478640167174878080197719228355169044675018595165055666636371524810693987549619103133725257118761781469712302180986204804519657655340072332311789156795236109242446695612391755101312541951010334311903214232722370238358648701907926024120007978850151483889374395217184025023684693041913658153068126708615869960530021981472122179310770367664539257110223721901431247884284619054746555747500699136390953491443693403404747215518683972326393682177067780493268717101203051336788247009196486654481839200919121906439502359381780298670834397093320242959536116111874674825929186785180731214103719713748900783958182807127114582324839538471593108986420918996064976895613428203930374733912643655070040899558704960043245426202775598555430365164822861852906232957237292855604496428328016025118038565851514510872004017536113425944230934912671996211842471431628145457978188320060678178412590034744321242694446374902980235734255472758859874955537375517377669136325630048936867312886709954462799964408902040501724102096194519404632944282741398271917091191348571836401749167887210404498016837425838563367682964555033676206633629190471314716196620496788013049929869390906743461838596734415718438568949720503130490155977141377422327092799565729849199144668371277147647239562202405815586825516341367821997622395920498592167408601032186707488428008259716802906629214387493018282832987657892306866102085966965337119499024616750317865580336591939585282652787050220509575148348778635195016506947130968726405397008799096343114184231948492732365914464577565366968369639656934699526612241974415755800517798841881407409947420597914309693813362770007034636573680630310924293153633858864436699206247862036706116194688693117762490212910496773317559725485809349359578863748512792213598180906415014841309309578669367169527755693934918631246474219516708725787337555304781944165806439169736471578113515820152650831319554875636797044577325013535682834142370577981469889900920820527672613743384806303334961249317516726377317100874457948737077507986566082926268705665229080360601951295802897020384523153120711014499455912594628395776152228068815949960664054641381875357902480503434749824012300487437693128418145789141552952668461558515097126908010065277188238938198655628617652168848933810403840125125957074025411501827432815867914055218345233947186346846006086035490035257663625257561638657775993446246486866128634669300610946430135438941164816785783908683249021276032665923335141764540100032565479452284652321703536758729879459841410428448421041225846366421985288723577275737398352696957085276067324268927343931154453364758086029206586074183108789274856143066902144522930590902970228658099807646405192365502394243602548426537092919292517552538448659680665312616973825223272495811020011636983717560033260404189320016625610662322794752026045746033486286303734260688288280894839227706289958220399982788908838201494238982825398794099901774103645282907185013389387496112604285426357591037369134619314472251120534784185159331761414730142111851551094500935878275044071102989583896159353809047098027182872141665531392583653611729714091057592390501487012146818118385529523016868827093606460528150594191516289587877851912260119842256185965243022640247532417700269885610153737916040669070088833355110517748031295215790241300446754061549075188926923149212224107358131216558000797005288152356352236641107431664430075616433938088966014987393220061008660480104528711776285121067180418133023073487904871232498274846988829394458695491532820429891803479025781879741128726404188126559767394215848401583386780275442237082900022176430223351704794485470462089503734023692885053924026784067954404243736217268714657303093960192366388641714384986818487946646725154952577428327360542935567833707316639218677886693720542795009174587309380253838113419980780052778878329492446117417767357547071403014261098967312137789563550168651883880092694734588241036484017067786000568600051446487691558774268652956942920509749606402599945523946873207423184376480977227799330675446138458861795869741570891605654625706852425227558823345051349547282905820595466354921057794240655575305573454611118222604934608443691264122050074238883207802437041256389223666407899879181892842573684539125152636389854329283954949950779578636037661023736141816300946219884580442370822895092669702035036865702598889915861746726188226888994846672880732142105060174126935700883563250359588550273120000787299679515225869067247113529419016405863404457887892081793918141445122783322596100674798308433838971503292440128823660238451233719377676816768423252124679638827275697021933681639164497275836189291656461165665953395751013088476895070950608851200721128183154287450520656442754340932066472967101138456079459703176826746321869090045459881199968942313302837032247741028719467795701034381765069388203039129761913750398127388495879005336907479340558997242699010278097410816315423404072817793138814480534365916982103744340636115172842331320453346539142394874961272499465227390740871260742396569322083525481938696326465671039499070301243484102278977946493384104566580200286072104667239946972416374468551396825165720124455544244371572300986770382297073978445403090885295719188311051944419297102363674702281467450657477321411411444444367364486687981379715546779157193327795922305118221358607378909067518599707932718512520307557633519803164609696247885700494583321667097593880856384483586005109446414135703079224931384037941082856399113018922752618815642173990643659563107860230247132949189175920642814992554689421477814767396179867448734534901472216407936927691481343861996591224114045866771635360339036191803278426623413411115255258537892417440928899401405680595561204785955630898897583727206205893937636979365783047521213002697063021839102335400959906348690040405403175750361083035296915054599281102709441108208218197916835021295154352789159374625883833007555935471919724325413110737795418077738292430950744113117795798803278765535409108821469270218968301961310498000843941413060563243112405385491032829852589874574101249758602682620329353144720409317825211429551723459538020804729889618963836355106579230965164493441584164238367933045887522338287284077820321226849079692510916317155534619816650411520007089075295134602447208194365528304844552533798517963622075105534018219995168355650173130202259810943447299491714762630506835456323934699410654084458799516549314265358510689841350957802852353132040891595823279963299729710909075687114138241847621972731187373354987169149366333826515096779500113276421479872886360823251430768542872050459010022057636134184101618403661709732306999872654652948382495222474235743760462748340056076506960398253868056084039807277067573052781232110774714578346407922399958794359804190038577334306741696706307856949052459454575067817507364430502229782729590779598674755348509167918754463431394663178856041929012699761056013353872172034005389241315457670749813360534692844190566598003888726471636339216765406387784826770449271741339261829564803321955851614292744869522358260662154552323818539804007976566673796529216800013287179779905891906640678833976365407153068118850174119842714485621029999126928181709913614372244542511238401474778621581720105665779522738624629060201008489258154465713275717021439101264199848291682464670996772543186635481099484404932973549777480482279669051071867393547389434343254714405084814406021853246663698739154395329217316116420219833785034750462441948602179044950309143220594584521778384313059224479378960467961900069687704640905489170097982425670376328620542317285026573777477695660825251318867179454555128109679411218273052936735548630843458749474860136611736472003294778777309464465476154103036916640740728959168975361471815928558865681724893821954027724124443182196258025217184363215123900608949140020963544062627791236826368274287471477512682174525157119650031635925884127636272688865906066382296783822549661913783639718478567944188469332962579275421645405509070683106945363934372504189411905597137282158649579279528061041711465929458516770075971065213733341951853782573367807065480236490285858284345149260258623371179828109352126729013677401509724683959586984860182246688520971421408777145852290536974713703659140044292817257220020441375962370432906598448167099261158676500093998018324401785012386351354907858707336304580113787836267919173570526463509025037359585908274494149219747534868573670234762231346407560655150935409600873340946886446073316636164944307285749543041195128466222889784786007635860776967784667347881216098975032014476699385883063585810956138570470813570564708871561715091747922823977221360737073077788010416469764649441168344230583163706343940839754804774862297143273053858854572914513218022431728104780117198606848938908540436898784103670100543238009304829291534704786361342750007065510494589497888378780163152326165361493931185538190126064777101876027588176408185734265278889074328307128360086734786470167408065431063037013229633464187309205925832490062947855653727037703962137909570079592961833594819497942768829640302703316123903690910044298764306300281459933239096392265084872499017844653346960469882065893103230747699916974313760202853247635533999487766878310454830362604069178745773137754401070566586880420752685160968833980307309239745929105436064827195633623311839995974252669034089798546758662431134533269412402693850719682007868983383069156053346346784863809613856575808316731334796410696922985613005506222876291339407225252573588120557201890535500720093496374826634430769864771559931257532365987813161576959282461724596343077415832950350663919949729181995693535291867884318981190626429824305666948275001823663999993280531352660893723404711786074245478920140713901652605555858737621283171230273322718153811778121482756957599029974770158010354013642531216898846911934431936084382436929013919351048381119779154346637658732825115685880039732058307903000071603906637190876546409761491671906852022453645409729394729969728924805507778451913818492882166145546690686204386321459046551894999459561679804463545013102306869283543891084636766032332211905210720191938765431518686153377568073590160860027706080792458653120373376252186452159758617085364177420631531501109125037394410078621566364863549748059091400748990087785878539579802693894373417247495448412688452007018677043916708820232715667689719999114298930556375805814194362508988281616317860940540472205083198328827298547550342023215373508608675968536123267060415403493972748812252857507851507351427724168213751724354864913817323222131764194891849469299017014194995678508491674262400352800613717690723002933773568426170277836217324809654020868460336770512580675960085358428283656115306753190151788105023794225799430009700419321149180434387125172841022366348265653816848175745115475662658370376857908119536200273048407564103681522474819622540211084164445114089399702229841450803691468021145668635272986430594890046359558720414624608375831706400294797079106495075011164979140664881498182041464342428091827309959608383150477511467282426195261314068574409039472714406286755477754485417643521285322320635524962770479595435622280112489283775166985297821754093573534998636547068048290415661066268109961942424505056678839724632601226132092925249152909861335788697000836935335853536025127210621168823452597540089343624231853179090950563167627276029526663977146397073334398945175916738321065733766785537667985964323379780853559995961519557148246059676902561394177578768477657031358697211845032837701893700554814844308887311239950916711933065723387881529723631714013251892712078655913445692807633137791328839304856398450699689427961871252945865872478983283750993694909016891083344188464457633737831520838001882236366412478770329856390099963039869775991691208502918244157979283703164597886631480197164314557587196105037168483697990607942076771994714131106621205639542885116122415930128344257726983794094053032599182367458632838066331528980825218032154774051345329095347434518671722896982241220758191242736104339051749505574592135220045692249977514261690294040025416257732938503955368689710926033891103252686892453047055475833433450847002775415465664823483410747724464631015840859217566943493478966622102755418183958176084522130443379407622786177350628378973735123112496209452258678438014652872271924898939379475156557782274649620806746450880650424713656528332030433542790053573108950525339937117956126308170245711459531996278248760547243482931115320681721241728162687887371791340374185354507216272942101166468511507892632603377076660106010344244573166613300239985852158452839334615106859510251773607508392082005194859140496622104917786173646808878499794401172110327747151949764667260724416520919740527622032576112729708390101990428195374279311435225153397693832375205300692345271968528219619580480307058758838191166859970883103265320109665540305342696932658218834637612099140716067097705972868247556389038224967341675014737131785240017806245910887217587442161056805556256619373640236984025093953074372443697147507412598968415055978584627794869362594806049595403421923659135569607891884282045710915080788898697445609883436992702494987912670257523157884056964747033782692657673585265765535199776393199459059730072887703198955039945928228016071871152024864226908467931715567176931880846869368891071365688486578078659053274915260615373980259971774113294286233021394880654015239971515088531120645908855185237001492995001215747846322463276017835243845114695855551890834971262754193777857433145601449861884110560724675625519636924256162764210364579567862573413410614726110351269955116612562937959274455850774879167298194301257854408777586248455193959748181379703423746234244986953171048374029470537806522676598913950223727290742773305985970259617695776723682018694679419915233832469296188454603236383492887718167182055769683616389566898683793566150037606679779763200590029939726100407261111699418537476651335146230481628463383822813489305713732023753654225108070462276207700687946287111065847459920661058736776454102072119801597417781523596071634702129431918417516274847488787997828506176548524710813779140178957079070655782764670229801837052684066782642056146295236253597298824441379464026025608484664069459900871988810275850520788592958473781967832586815620332527741985964099112071204535410344370486130969101466718151015253051822911832479784004651790553567943183116118666389278266172480120972234912714713094865075929002144190522595007237373610468456521494792804194713913526875089563486451501407218192370765763704783173177328239518443665774781870877239933298201995597450583654672130031091497387093853375582099968009006193156051781170805662668875945257567092842792153387342299300172599694244136676024350945817345618221000684702877120787201147396548780565015164051046413334278678408631093050169589204470480525857905433962608988085852167134790796132031049811945618204615037869217184908136576993878987600559158696576875910860362862124849323651464392113623018797723651794707294511130769919278120939497959974362509050456753340219399757666363850369188070375523147175093413287844508930106765505005632905849004547740863397689929313794532465154698777005955984026348206226021420918895720248772031088901572133021060194885649595198806249279546944263191299564126383122164593613283408790767604776694391880672133316623359869845574491447585004664635448246335503898047965514598925658912215292791821973602296621227510751079726394471168539071809354269864091871471881557207920412485196544558934425480578747413667832829175956190169541708889493211889439914655937094554408817183522699892201765416787167420011728010077623293647686223498502708223419339980448002051471138401723335008986081176535361873200281181924095500610714733247056957530158224319329642217938457364045671275428484584639958412757348379442674896693680062689331863162622286688304391337134655068486561404802601728176441105143832044284581754470023124772460795513228372064020906791738927214192158276798509715810191849053643052343285129067329034593456306243307794651207166576990763166535145730085490165430480377048633252506817252520588978035841563208681526006045940067591101313085553948100177595748982880113113581441037651954194332802379197493266750484215096690666444433893866737016771983236352302322615554459227431839712727632707301458479853489019509696745987940387988245944129244414281451127384176211024383998107828765833094209475415276745556947701764262942436509223994152637852468041997327265600457054511213641530627121239645763855394315560595496140350894639735188804977068073563800367861039127859245969697595165154463444560236247189439665426708896074604547601913021697082778408702457151898442193721059224888513609343090625403383439828030236127108051321849847552211382515701748088553954815960884083982547679883914988555064495960554081203515551723883822185119137893415667168461736235423447530509065753512390459488896116355913352822826147484022583485824172160832725538005283155027078671319299037072005121765751386130753105648917493380301420708051401301858376433969140715639799178943754466036799566387774123616137249842173136115564483360544581023150628394195960348083743820529042079894455960486071371302190144505981272805498012907946669764964238901414978783431356200028375722138680559585735226943933320151327649673539779720114690655339777882082289296725538586784402579754800463898145983583093611778412604999001610194868739434898336400139804830420027630204550563637882668968363611469272885231925475306198188590526213701916050235953548300998970144398404596482120021920899998282380172945500355675273622115602321783040398589762647172250045373017409530691829822790982882847601972472947766288671889133834316581233998721523003914121418749328808457285231085350517602492873582933472636721499863476299733786231055943089207656369045319859534527737799724963813032546675513530474175802498421226025474119149051987148894303313029262593211838902935512557798442412826074107244626679251949211115858618466396128140610235223177429712323880134379170690090876638153538500058926913864888598201470304020326949408501431811303318587529465908416178675097311401923702198325386561030570833916739351408970869625078455300888657349298487284072037293279757773674253399013411885905070220082378882995263284680181185473691974033756876337648741947490166238744346564330899785599488648478724822071515416635650329895694132206741505587166448978606959079916204163113183905163100891684120714570438920954318539805508204444478158084713396797202649877099872336249111746878201729231145695231262383071051588626824576557169893310727380869200535912197040449388164515795239437424238535237248400627821680887307839843191986702894535122170354224920229562111342682165487774094468087488263774667910755448472887127560548129174242210722558884037476771312369959756684491313792150069771271579755552038292644259169801058786327016352337274399282599227741516591970795699569769951987092932327113965349344481386553842494824971406226789679124757484763177839958804419115744869885900285288827165911079240493287676531242819148726350139805937615425774342368451485917570903467898168580900550078818863860149798393877655328455181564149678489833903109741252678133283626089837032908810234838655677050098008578061841807247351861475962102402036720090969246832340547076698074942421038971882204027500666290526152934784132411750210415053038688465497657445208653576955857354035712163579468176524758932522636987606024726772603620322065453811225466863268293659235392988466937545898795992136903137392298419376687279464017520449944729742081592778128054995143939280043584436950412971017000173695783816157456311824608274647524288166508068269455150906508018464542864782401793530802220193552886020259676376846035168508030705245467818065711168305083140399580081718449980339633567182814270059646168879187283078817807460999115867057189329042885239329291974123305005234532477062141995170787847682591462871568935465588703517284014438940624719902486576140970395737741160899854202812557053678513051080704941493632112546951585816663672133735414852843882047133971942954875698120571101949768133742393471817075895111099721826898898979072644053994588301292285367723373590196674439451462771073783331585910156638385759851958254199678597243023485560088295610133289869789788185508737561676123434613062178964213093828785229030525950184825345119442854571678924038189649502490197162266462909180550216223912311893609163588660663882653038253129906158441296162110158123217839723923831300619803470280586962346441148423991630590824862661939100946345435872592461680366415160916308163824959577170950048952024730630699452710726472593996329539402395480609453858011888101252333729764065888972869813112415108786732644680462886854389444697851690172526246540860504375273586239850946505610760391946491910122184649890358976579566191550062993330780039264751173862176183677171909957982194899339247070379430891985760602691278620701847114640751692065370338405893349175295259679466698419205633568645472593946960843430185105468068828504044977510084048257272037262601138175182723478636133849126399930852608165750357498944880413420548040634434092348686094947905398466160986169402567021094499648397835098068227945169183331559241003397478523370137109460712750060275907484309108557296190672115708585866772697502637816764289238415397843490939071291323229874865565233564747182512526245818229720438023660389222713510729027876009512861062620588066418924864135833215732463122901376874450169403284845669726994747210653955055985283393848395266669482943793244619832160218267672648212982578553337720137672708576459946419990776161244706263509256919228978702749562186252143464106999322194429885815715179749872435165522838029836983813703424665295956466761836712530773293066494457430517193609468589280206092756014814774966216583393020373178180882601573230106820859518307676737509353100281872550278595007895265134433553040111463231287074656356725982396296878152414588917005262979308320112678535821958785130916503102395671988318642533052333287785439180888882979253009425999458949456677276706244193489373821945776642318930819300495280162111736950230429801034827796988805283377787594919619382186643356470684145404830517206267316372434650466253717777044316626741222013653810379534324221238311682542076608129776262230682815465593087713200335678322528896999557478981969043992092490758798922528515063966030355601646697064259674544554207386884882262799792476458122090037014906527070392861085984953148756212400606141838906288319144901764619277177350594598917755154204755654537576542592064661583189069441507395492009624602793988074439225700717825733697349642948981827137345034669006489039054363772336314068529266319058845825493145210156750563278753743647816324566338099627818484734632996568157720141935448912872826321863850787144764730686578965325498803980525932027789810619384196211378261693692778268758626794389766301391116367347792407242771156481802647394165837361805020150366613319870045850763435043935389959259480060356129075794975276355941298739053578506005554653225279490057030133695754352525192844466503317909645926407692138664665671370178708414070349256938436773977390942993867401739948048407607519764904494315416697282346026016656436236034672952387075503451889480022473768259683205168070445967477122711373685386704181205639163461662590142163910175494707496689585224076227413048036905271179019043610264013742278905435716042531649160325283454258188196734496099180159621268287871423741399315499069869236923862108806218091831073146775160529870124899069869842123941968671736498145155703911017291742283590944438913934359824118775373593610321788356051454379343037171786634307654981276412281436519327728887744059002978441169765406523297580635814620475714911831429221215092650451383464208829291261653678540988580352217832576373199659330048080702460278966899985348904200128484988076340138620755417751709884671850058888147774261160049086031611636392492554238678643664552989334648924473411327971506106137840001518408142184910444377596226405609767627642423410856840338732867239553353588372417315033639265992751607828621350128234919957819066023849894742909691952605110001105271646382524101709304013176654291194159796900304202193371235726526265504457209493246795779207121190387529281954815247590006894484591205525528822767971357072445784894885530791356601704009958605345458214066941830666304581829934295139681466837050248896682352500174339223286871623465693030351560260175715978693083125075293806737301025923364972329702139533118544261595376892975822432417328992399124392739554120868518357407000883331410388482977239882581837715040289016098058144248450511807355486368407415678489692101281021935380957570484779874161273809187564635583751968035897329308811124889333927855819299211973054559884394913900367245932211764717539845522606273101927308665534050763866218431637855973701755567354614828061081263914143211240984562117263835281155298242949461667379096407833771438503864107910199920126254113284600932057009978321268439746798374348521528356433825254609966234999560715887687161015854558531185698806193693730050420687616460945122135161534330133597748456587334860589002037268149974676076046516590583114046249487855634306916917780400204054509220270614477058989835360148398047216542563735241188118915004703450152263688969764700484243395408791856249361302543312865116694305164590067041678710338148620796484652903450274185351570309435266786340690715980414950136416676110657717414097518149253124608685700849150225091777361074312043652388368749489310230249628678937277690756092987110718323242309627312815417163932218902270989303878829815615900395104537767190382427186617309983734324226901287565844937849235380282511502533551795895533550824758501052978014229491901562329577952696916827538627207428973417638906399693573528546847660766460025797173047098184579861075471763567264672937277275446879860283272775212665175116104604777824106900044925511221537294254486043340762056121705496493968710460415155867862547536650339397609810057097058154019990134665305463262245489737646838965461703917828239049848631793892958339097241582482185345884238326789180353486993049689873638539566241351012836474646594689747389961408368203439509155838822851265760832636851198282271588609868840170235187847564490714496817444561681985944209216659607412530138350578377822016317845752388445891283965135621519140039786830849318701092364571753893049932654401478730333547011231929805117658379168680773578452284356750700820960980155854090643785383847244422056645482516456232406587428761621688937386733337162757200827819304090615831514543667110300280185566660998716875924100480354884554787506044108893902607133036134438215070661648947341122699492676833132056731167964255506048585863100745589704489014189195116868473590699526425208910112662928813316265297405882012429754787858852621067702697873952018467455004638843515208140433777759985925754546525199951903425718373826273367111355095523798002254377644729440503465842689290979073401473621176000253990164089927120690779484229811632256113334242117002584649243392758595280209017850707423467749025505892656948318357176779910697179843398497708572677447976656709894580789733991619480480162462179379771987945625949972957573824921775188266820076750542847409640905085331081498304643889809125662937929915167380437510898564119274475581173559628715096372988470161761752186006697268543743602204577743890349023524583005336129413345988920878862709998397443934412799811566324069918370966038670868323889081502555732729351043899750683096744472708221324758366460012527116088798206063204198839393951177701671170539539656620542172898449888673726421922337026226554464866832426025210331859103041222128573044330009410857576835579701877521987768880284942936897143743882887521227553158075433885755453934555609127793201944721350518520243362272658765929490762799778232761105367608118712660169665083211052510079021072983629963722918036940489960692524616469339229337187452644591059490394130252275529995547407547316088540428676060652309393074749712217075310088310029072007031267341937549150601993418987874599572900240127176786671207127343435339105216319971608909707607359768980046704783594028882522929914683963086354210588354586234315518761872310932964450655618127022975303580486023246069151099041060463653506878492241059212820782401662505519381571897824730100085643216330293457759044720808291317737808339215109987617052653035240211576360110299953384116421931143566905766149810094918093802155185148097601153202638079753661130998090152849923202201806559371432918509235597892809595480639107199492301119625517749925967697030446356424518088952143158349841273896379004868511002877665228133778579801630016564429676712444139854229915939675111133233872253122226527720067851969457851917703236550368672308797237050896511401066094562598029250861732237709527532081106799795900057417527478103354143980030438739276182935214499822615708616551447393051746327150102611971978822166422145593095148306171550971817282876720218919525722442836551217049648525685470174879425589751231582472573605829123652336457332601881966392798247977896028935969111703953337208916764816001040440570787112971833366902049784574873540011130446565090436525214366125632542155060442730475132870589088791955206407117081257210084914850063077656577365180083518943089065036361172636527573123157496212420736206409575510819988833263711490292751448356581009079097544187224713601570865656998721710596163128574485752043559966485787789449725194677000957012764932894641452488857254063268155698081638329225854030383090339749371695640008112614186550051649877646269681000861108782177071819062118942964571613294557122141026802479128932879167698732842846735306063585579289995796016497874141316035736496077410408866791284058201804968871634377148222362038629406443429425853819327201934029848005306113257033505022287059091867791376617489355343378725568555907805447114606091266644448909224107107789168149699357506653131183527151663642659201540448188629388289101086725966570105642331260789058309699561822517522230488290425803284137483671430476420624030643339955035364278344716097882616362451620730314380943891787908635555433883479847582652021323050890692180177948238290310603334123667002130151402750234267908824674490877857826386431650721629306668324674845404389851036193231548636876127129619426531763369674590870262812436438798955935339041401147843362135538991782658125584423128307165375093440149984306936271744293265110169023747847058346932486927679732529144560263674809929374604090337292048732105441188110847440547642358394168365750476905984952251178814933201672184540021776854360929606735660289407723185010263538347817687099599434266095408202340421504187405379588363184729873036413008880475468257513997566900165881394878481565109347638287005702416498358965878644365875886289448889323089293415136748122494818354584911572364085973403298592908685078154949565796667495799648127213846300082291427362300599156141443439016027259361333869024591642524797901823488138700962162260265861177637657506035945989192314577912328614380868828142760807676185121473527170313999077815985982443821496212524029910947155356463121797406709315913944821515238117140876604499854529283137974205683097775143696284447467126681391368328194900153379077119245632813018331222700092329006766863032821574717723923450121562353784897444854955346336416043037055739808457816047647529097623547357956801899890325489511924454118739923791227489737349871982778961506118381734889714639787550128398633981772527591705818505240962812827080904389961733225455966497125614976096042047312882756305005492888007796702477748045861113191582408457266812944774861072315026395769126166294288169904664861447538232348242167394766922145248701008616754245366837354607082800392098144277716752421637023201674167187614374114059436835843001663053976659911074858681673482802611237980721283468820954084856902275828848938402374326049979330821919282655735058173230835665561815056848887157734516683752594155607537736465337344881616657529015671608062043528945232445071596339448422985320062809891586631285885200075073727537675435769594168490975681873465393863139120019868663979332037580094378827217086630976075845756456842672281949179382427140376669070175898329352393964103918182682853661460674499568799805592718551148429473433351010440757688089450930047975756815081716108893200912809221442148836984294291393711819805867847169823716162148883647928609231010868111086749938161867582512020953396525009383694510717925282974754243013691365494617941389081823560927773666865777963422391833387768097470848336884360806344861683600856395196023770750554154373343867297866760075724487827744380397001734687232844023861711681552118306488560635543531651222787692276063844685536403950049317477894937499963199620233841995613285390616255312157095782123470813105959709662085130100901417503912940880708260241221641113505018150176234686959579112287168781408617940617059021847679970551674116351622334570761451676826502252315266611252876853489419936000044370567047297595632126726636971706001569874619781720286684271932820581689108793970812876931487213699650718781028608483736310180891016326694142078174693632409019106651158542115590106448550150644099941182743287680637970201887679850749972176568704187941886716504188221620579594252237158481837674556790079091797721380427546703932054549485570187447319771613775715586989971598298278726204111365596826339945651971228835140229626250856407865007275241764336516183367835919807108834551062215338563048414788458390304985457881999008105281393564919224414893207878027974241160460958931470039464975750080836965143251276203565942257860082088548862510490180944760170521678597201933818118770035534330488709149368511672315821276559424136964024170995071269391137635049028991054256403997400055474820954744818492639892541061683106500349033959236885576238848914248500241788950405391789121079647522995103962199463689315040437451911714385539414557543828110793626050592502966577757205118391904501934641718059125161144809835928599205165421348061342113533877477481990856377758714135685163287195039247037536903415249607036910496469125475218517020900864890348067756096340809524076233224796770284953565602478256650098056307728960612303920523061606980450419477750740677677554797268960543048053912386739288284520081205705634525452662925987420503889232321927267856108630506120967451416352120835701331186652027102701891535552989166501898613352485736832654644459617278678141812844430259345181741447811232851991257596300632741834020120598687384429100749142798638290410630340526274782004890004948007394533192048417020268905419297932907536408092322221107276577860357730047980647606235515282742200317072722607402065549529615769786545149674090422607514575815747743132520051950637170649286437052565090137801954260727287678491655997778381122022827284727609915371458729739826705831702380792119159226925215546610949607322411691413584730687415764629099809177896354708191601366676049841702245519470795085580363452122045230950320449226366368326042420830386106069418357444034003814290905319081830753635670853864177379510851890861872899522836565575192725258243782580514573804559682670155642267596100503051354628548270982573651196747841099717699999404801664719448607006480598140144918930154296801272036363971546221423862917854711181009088822266737506591730255043557416594488436573933823490714259507452803111731675782217565699166626864381409219420153198697782529213578205590679917944118222147409665042300629986430043865866380709102275860546790727449566650397665104451508071652384630255312139873989761584116625084559879007627806382313642156908216596795954591150616756349107789708737710489038312153092137471002226076769119524373594010176831004464968494424445703044858163486730067998276443803109300333240064550133279335925359349914847227163747493087114111574745340076395873724153158520087305037749810023012173648742433501357414720493209746138396586762011485328803005809526172329342623715610189705616866729984236628508505592112521052969999288973687134633914857697905442777335046143398407639096464474516487193581837231728316694508652322485825570607944798998056983433760432067170655662183127071398235079840343783530357425793721879866788725523632162179826074290924490079486074397653786697035969102286492290985249441092103128838569675020767111508457250790762491177345474094682524683309357367759497808261783247339225015400658214660028129081054678610174498862550511878187560617883476208553910946220656031476304594975497409192095233668259763619437373078126856137013783717375339720288316076683141482693886895826179432488615235386776733813471015219720298970880033234437739722425780667126327879962623578547256926755611308867924890353474149147386326495575933049834708022806296945898236098800849302423520155431779064848917238116609745625746604316961938578772344882729413307024075942133684134694387130996456488379929931993253115548037396301519743205197764241613640917470883736510216692057019317859284884248754345679460088608979123100703257944694765853962624263161854890067827417702446575238457925676986547958077276482254945941103355009178720933334268045425512012268078540839125170583464064960845644420985433523831134722541548852582589093532091333612079675102935114041863472369938275396574175098081823269026172942908162559719378086886814715389235515048507103846712342273383236617234838551758694453892428135986218136650592051812450633156971070852026682874399264315668238178962135777242203008764182686263986656471578513222964146748578912099976089541003957870225206885118810252238335215127544968166477556919060994377457659786560779335894160823768244768582485986577103759683307315627738949256553579656905392300650659473323517984497072718314370810168171089098435202985241810138327022078871251106235421411112734079371536395461160746583154454268303811107875150293942969376946295939797875759593679085652128779654350597873265827908121377473286054692923354351615971321407029719158611129982612529083346447124194838642240505611404617782700494155851612313863438380424002568256183004805593728029735412273088189661842058755620734653856512929048750420138482539791914701236570772428133690197781461334357450415572748722212775964614797302634332281349490703249339353369935415359489436647123165329903900411107131250023991142721691879638749625618275298773971885181739176387423017209522742543069656271590414851580839035566642172742357026076304069942722653471937731737973040812381529687123027280830285853404756492773023173122287348056302301609776775263136710110428394291480504820954111632947586249217919128051447505974911035225050486454703804012641803230725319438958984045369073137755094985511217848808514150797386858426463714511550696110059972098761035362545595018906268764317680209707985773573351631817813649219039691948643279552087890460615861726609984403829560128347932968722314519142231659111292092165417472597658175113511352365646755289059896093052975706976033247659529187582122193988592580965938691174866429740872657875981878183629476686488378865869512510212049620929948440678319657412689001981820710232996207663996630638071402244828134437201401006871529110179000722417794541922228035224688410167337965498409387672554864194890321099364500465927430958163919666261778754858397653681665433830708669112184422667059459775347144181373671375670432117223863402078552118484079417902608306597629321528588715230693798211453933309928736536876253397462796399504989062203812348161718323005063225776194699898965726043317131385791296195262074026378301353003927454354083869965965627422090292105048904262811921532979783789545660305153085465756493772422449204222165598719777975581651314260231084354348007528548683551198433750616100326506827188521255081180938564753520481404826003788478777905051828315108073884736281107589418242404299078050715282763727345126498972355649971087777694289997870682021037156607444343087897145974508963481162148826535389640821748863664756889582364160406814477055664731794677025122287564543421474238926927437051961467547015074724954790503268558278141697732695346725800172965372049710612987369613299196492413554585355900676981847222961989718178552783543449127687640056318952117481508738952637097417483746685112453838302540557176654105724219022475104362075199152493905261906840702224578706243506945556041952266266932167509626316812457547349908092492653047858352256351365421522104069102220991793626260707660107167850741139157679473511637389296811917176172523178110607225857361039047010777631511956997352648821033511685873434890336844600308285253883008934179559107617228309958203070825605123307006967779286936789057802093688974058757689765746979558953950302704706736587823960211653086332532116074496155383410596342467715949764311114921714410561850545764136571655017038111604530415243789659117187460608295681620446284983113340738342072918350412996414135128644426739472708318126448787080517085005707034119821751261099555525285829427942131405611640216334846681183246582200616068056512097226391065417609056356277773080013217512101370686065360944423653114757367201959998808915363653691381488105745026546936843668707585029061423342912840985888753495215507170060823394442175345433134408910606277545825192447796707559707375951708091414929596487526114720538289053832835315829813062608694824455740423202697571533756070805714001091547386909677342757949383501521159763833478942509740503041905613329122231333598130546943057404388124532183930626384480608710526295054910942566211414987614013478665805389835777624044385316428216050814996384565951546909813898457430959031239057994730988540716390935462163248413478578607645654646173355403350870301678686991012888789072378503421651464401032040060457541617252147749136955006608503604849341018795311347496973369929143840391686299888564539888993016548505111775499342871907994232990511535983023588959141291767252887285619942953844094349137755000357247835059104102113114869559183942638678059236479319988612447677262626101957973154606486393264691230052077973662177709647279136958874669405262277771114016429137662860518203762027667502504336632714294100967621570259069185242481416660450573383250174428894552513210184343414862516910426310492952716560451064616320236589930910564113215729950830844766565596101726593390163687170072860870834567099897639435953770848030890385969707528197101129170507468013262208864601967006106017126247663256525695070186383362536518443557416338391785962454439408824869349914568786529030820049346795039134871620123191569655912278730745573696061789808170060416523760162108485690843564747486156130897303929466369310398634708453119393768123819428820433477469592900829590685726256322441588537066977421791238536669522014124013153161870262661385495077716107503586210408429674270244514555226727060159463342987555911251280507471853364564345294430851321731861339857719714747042061956933762160492060635670006650405155337654196364034641694642990755460691644122602265901401430504605604316859910075389612838212178036955500514134440171132627197218413565323350674169316603385030306843242696564808595933010771115547400594008791401820584656071420195832748990367591120636202168316390788945112872814131710866947049382462591534530035378311585244802201151586278875603075164439129131068729749718355243403984975965308233874382566062173356886185190481461993844108273816373919270692663414660507007295438392864731017521375080613160675380318958984693017927275989452343183349053749193931608498721706872954088158899374354789797475692110180615510252880269142212768513706489712952419217739329447696138929957193729934680726978383727991706122993692133466100479689543519624041255465418632314229867318981417822081309069301565931751345575022945692317750985500272990490865869078357859992649751684221422337991731239474415593144358697697366100005879610623649294058695064987220350916741939275725889961667258149556532394018639828633368497857400339905992364318958808961842074172653717011970322316941131403694966810603486089914064735377288366712421997876066070920865507161705483153360115716379347519872227182075534034797470561020122442241142997026759310426998261697234479160407107390795404169604894062445953258527224019242985677454215056384925570656986713534673018444593754790827560553376106956039275946355103829369122676143527417069773127115063818308267432996619242605862020447315849869134893987074741632328276282098023794397104032429773304078689055222987201661531246974323837057226395304695983360173325239868071260048490548084129547253696601757430313584550725241670170509569387067089789955894058703821065322293471601128594662469321608069584008073872561282280113364534413991861871135411727842025467016214193584025397776477806670128368090641079231200291072044094105910419125403458015905270168621254432966640150219969445764519637481888256520661004497166332091393319572566213098503682244563475072648659606123067417164866671310922778821989011957608080368353405920629973539870095743704815543322591948085684227757261561712408094967787376434019086967341805195751671057736623847284763310654600640822336351980983984597102167524214750350069582553060890567757424950711939156522770217749964219498451214706112184719750345059596044413609093170557726302813835131952614392584648795764689931674766286668560463504247869676544354379215454755206747751460418914319068124132069031557158671801803618085451739202365424515795154197339866487396730132015157008220917927567984549628767214902341145760326044261069237254234679042784623272458366959178937069450990610089996566277966689226076800709148908282055855072791890845813537042969519495046461809908443688801268870693118061463012876195530892049041682616482247245263165502407543834202912936498872547019076876455631275947845615935077551174756118308957575457268359964793493307394925531653291014856599285114132563794257959749253838276348938697451223212186183895839421377819209896427432698988104855168591098862833676262256167948489348975376511480081663012748839770170322695458002594741223230593008446800210726982759076872641255525416997240226779114480175818000434359457061160646775241113791586491138871604366592855924501178594967102236256154900084993351315431579655559223255314994593517854748909944905697161235389544683488981357308316200404548669406416367234827923965193032076741306404773544382578968626506348011301191324127900250603112553550950463962273337188161916316039463579077567398642206726268387988463652586877686621638151935573624120612251380974160745280935789732725920137090625220095239035870557661296530252127397259085844656893188094455149597353365957769789646994772822030080162885352607608602371157615862366500252645769623128972479971709052635563742301882191197511627281199299700904544914048347411971674472079340748758879505047961775514611431154445719328605431722572227192050757534868952027335979319973336603763735838725929726824471483689815162839824874294677957581673501748792679152005423470223163156142253369056661815379710761987107605837414972228963820885668973366527497405676581474586957404937986354511911330589565430398657330750823268485916233191615069437605389728887608518537835825528805059462123906747419060722787707222095801300130181072045303103576430006964625099760790983442330090376040540853504404309676715313001910776314696567828709109766319281136374559805133555709379099522708494500330888925581316266853425345760898231966645918838156657614277521908916048955934142072807928221023986682122823465719657747130822515263805913806415681354856585952295945718340739825894543268670467965852246382908780540927753924664944522783388437811328631361423119636444418907550217270983192086767672548858099697594475582228189327794125069437008723903195089614748110278483428124078030386697668101607568436576152494725180958982394704784310586501531438501553983855172360010407498328500727664086970599410163402382993455991782967696656826133359203949798332866913623461704841772580081436582094970810689832963416701761796230847100694729371359645725713772643117415890656652388624702017684868911789242735953294712398393264057579529757585994362789135653844333595212099306573625212983394359808459877837890428710574416364336946898056911961479840321085192133829484070799594359931973252567055268249178634313011933537915217383901658371535573920863579224034930543837097280131281669309447185653724867634662566455902268719099978257889756809955767447104102332914885452535850228475285934655600522081043170076485805161034750646017001783767650232128992874760707828662533702060244192535504815334280565476789497991786543645886616428372629644884067021807793188937088042144917683903728650905222951442102821630164414915949725935738663793059554017927689951432759069609714533385010219507175193941617188261046964314444636279186298844507760377056058189974749543946711442930889288749660294421887762706846901562405692449851895947013173460464416288054004015124241836799554731368739579302076785461075339897169708944296822943922608795601497844678567122140216018527993779933955546054797874966483637167527246861071001920326896363104991162572554613626976882266124629744278141495671823859165022318522487893908596315833401430580583641484076560813477933380365871166842402386950504399970859459257630707218291703170701618649042556129962367108269790318978165228549035764938108942718593856819288464918772742340264737749579596429752412529752648685988408009243296718780829877704700276168872935074678808519504712753878835693816663932361977545357907008018877270916042417967989285077658374619000835280538102708746836973994824850258388043732996992909492434610427937641802669297836664686280221621244569085035488219679516056210140774884944848152652131213000263584300058582341750201651863357297450298388701448711389306499860241310999438700400748935858123468489567987715585522194325348040094587864606053000450334483533454321249534393243001188676070739541468598746763434762210261553892227691657582811505356769928644091878125293341867257938535420280205427428457340475179564068088225348910607778277961835362756294484543097583434066623576379239836567342870682697434557418671022966697660752054458535434893504177447558883593667765355525986460528666025198481020080951943801143514431998418006821868024651856388896779279770372505455684112038231336391589890756167232686151700815137121627849726112856698720593225841887148663085390716998169705664794480133686114492297331937200361789475731525584584819369099088477819892825863318996803350453084639749949198388272055015335492879674489370235882719971203606046652771677428365822146567330008333083718688411663670122546016436564473227944997418647458597521140734326137591406749966680351055991662158946315743845209820070204169158927884224423448985961070499154913337660092620972278765781090123738890917289803577446415036631285977541448577988888865242612622057898961439805478694240485816317074323967483725927791311453689884256966849338753311254887718703003285888732965440939733379894206674647870633243558464690951069984576389832387771233383119891490158560945741819037090459057752991666531807097860826770461545169529454037197981794755790304692955526084700360172566545716411122031145230831225493219178675663117187997056591013840660544088501750684885418001025006574120562024372562402379435722722948655359174831504166837581311487282621931325497022785977852320071431752121114706191689312352327557467915092885947948339228579752834226241250733596569218692585604760031368648065317700593475291153383909442401711113807187308257860410690915075126514108933620294951276632006989290332177638698020919071397875692366371575434550176000755636138754654140651748213237632622510513699736265426595030123170897044039726686131599097578877614344916592471382658117447349447006701635712712451201903127169944250664158858613677403599809277201958950531135018246205102369615779926347112501519345223180123733848300618800591693404781760428457771785964994233237705849470139263910440067137857751565946211018003508805642569414590574189137949666683151738656785165701087122896714160990137762159910189238972279435108901426242833595254483240202401545873412033227197041023182581725226480589489246374401939937252316373542148346553910017031846003746727055773007620546415180953243535229261302317972493813994057752640960321217677216142451552984110966948261180206405539399050040925185650880912501071754490019077536891231982904781022890622315288390599369658557539191172471156782887130106804498173759420548099799918249372275618174573244511457600267115967726187221545068947567716130349393550355620858422244229907082239666653552211833314182987719798574648132422127091023057729949554406527700011895815542470221136018231864978411417974561356525421310658626487807737048334926646143891656045521739903832890490208033382304849004436090603971615555107182506662979822395197711463987484447983952831525146851229082764668039549550264412688466096932386639111758925193024889907557453774130952225587630001103552967755031192919821785767299783506878567982020374872227400987154494997704824649712528760800925680084006187835268652212138184206971083931835430544501169038597828418309879582917986543735976964405505769355362271450192875450822317644596302256243917490031728392738892972016418717636435474808439801945665310746981082930688428603402533619653969421813876193286153524950536695028113685104521926070157918198013190373758536668743313550394059827099494072898681270897896857552670036780383625376247110745924210260257305774674254003250911708644819993240825550129054534967084127249224302465233636321913215797484167447859083906683819829696432038728490496568649957842042267860173136044265617532740667528432477538878831496054070109873239680402423426276581459435456823576158561102116047307416822913112559810831601575697057420140414456243769759897374944649389692673396176051430127234205970075221028493708110896601041754483735069396576380624750220977323374280641367270099244198189041172750807993018621936928711046549696906391429858924875912735028490203884818137334750406470605324710979909856677949476189364875583219115087338549063454417500440806556040193450280351571211823535717808828880232195184794540402672916218881813203489899856074654453330517272302862132263967141573650123246343208271674993855994952445207478798903675888205821535163959120172965728696360167245071207676277614572280227664915407956842125789125195522700930352641900249183567138160500282721073191923616713234541674448036891409275406952712584133213364472141889561454247358457243481586275484613317897313755005688587575767351242046147199577431237965299071852179640394354706065125729100483000124167799977765515296743590260259836034471724137307924111343035076986271453382556332300238147564204737896277036563627764232856387302037997768422867863543135938357658461398923625680446882670644373877147424627283577338860203713738917780927783874940927313201907134014754420911936928869044210571469156125938597699730027944288496090033863070251625906395600334593594249881744200749076348083600313949798635315757059517315122902501079512514939406462602688645842392251957783313173829431033467754095460537702987517910963880726632834511016985874973568043147370496749674188522905366264889951435772133424682188402072851702559568832041510922675084626348688250548357483178087390022407851575693689645130905338016159812563401917908709087091035202894968994237865013097552306823189568885574535487889719622097897075958838661974936802328568400136082451483368110591620297242629110484965394407336361356724097704568117688323991184959302454971384875418846581578431016248212995110349040652365872160451810883352014983231034856285739459915218119067924537325395802171482109385174032296732142535607622549625413418166363324236909715159714728103892015873019476980920610209952802620006943983201936056708077327974000352423497419146095990187236224075607295956224360198720708330507708219728632861465503695001819372828145869383428043553904195456918758047795231406324788481520972621688426614678031928463087033645903568312875136224983600951061530288246625689799903266430000036110796793127315420603678440311711035227921267703262979442967155626375212965453915936580134799178226668244791320136867667640597993849318066398398603473765650604657161753861877306727075435150041355550372292997718141964035170752745170292018642698657543734043617168235572525817651932176160104569931360262199856011305284440667755335007739108800824551913381116220129468495925701802161382554750687952317825692971618068854134779055666024466549490403567663647176019389085587416583822544382447655015093478757240542758903536358747552493808713497695204418850953314429957952831997181481477590734464735150492770632023452952882131398163174739271725851013577750624269627107403030039779371362714776060714462010203353147781871154273228258705041468679115438727310649874418380690214829858906053510994626446961620554153567656284488818128832393449226825521637973005271375805517090923708634376099150921473390745668659960855657178579174270876595922508079797165782806177625364727376990462130968436991666947403335709938562165585735239960818136443153867719839868390029924818839326323167566485846787368602533329302100495506095387964324290747441498155179135563051633478638131590141589577373416094974633086660471542308927992235660690698444790851330066070667781195910315649789908395813540664049885049635387131282995753994249926209552961438321119843773434975965748713306919068320664826986295324084287271386969003919664974395463689944790827042980963585586393317143848741271167492496385670111912767330732547057564363602761635237759095161990116605165558008474404469576227274121205088282596602307279386460705833416021498676606546827143138438860567519888518580774430807849961676786578987414487985074808140011269995803724964252636288407883777229650952442352778062382865614541973809919947585836594398968771397073979684464905987594066292717221713806565151570341716912514319028853706666971770136765140639182310720898359769378763597852551096647432719645310660008978941081402405586742035946540427834511344252750703369097281389350660363894521770362650853797688651484466745128977618306558362098187264656011332963741623150736454739776584762524366619861673795194108009432867750864961360016306694136211204662066498197754885850487751836498678981933329211312916147494826041996256455499663150508445612350179639533297979894543573016482222239158784995300221734541137761954616189662375859992599561097100592960566052734630969554918453819124785615140589498709119516635312006662583620944312849939708190955207576795083489246541488649378619385527579863906661160958397594167359129675085096925934822663429904464549396992456871153560256407825951025894684271904769729168034905542551345046145353960610558527034755850367860221233605661954028519336151398564819442788220470495813616824901259786405828246613047439581728578947156833158544187453580423212555479296127989103363749863399281685403917965715485745135833139690261919335940099954840211421293170130400833717283320723507441663731646327122556380715423197473756783106692273534541587099355520123527947696165467781094443319066167476086254711107623437141908941441716995738954972017128496042325084888777717717189989548144552846463677759907051308065277982323118812019133321316544886916053081097315859292152661238299964318387343153167941184630286542758805542998773111257473964286315150149334293953990505409847718477379778175992364189947770194041951242890928075728427759079348009072806806365267747773973401780829624942962203334135188305489929581094279095567438879064006471039084243031430727209805554488305723427524953617556648844859134152663581849867904591571373486134830938990839652373868496832188765773245226204757035497781494176756672617026590463169934349915730268141569722984702166993694051752302376824755964505804214436884009024948105801353005139373580584378317504270547872429352145703035770396108550978651941433652032791727632080397671312174495133739718293359377601409653092496697561325629360562548289548113374653054420284458781583301198022354104049722027578146469573942644999433654683569143036008367219752861007702833126080849687411773703045216553394776759991306655795810053297209108936224761943978563032708698234186510727693195913875775127601268379767234009579747275009231139983032888994051888741903264897513860483151385107898217364253518248482371644127464004792101634012688257099122061777841152650051075425165099009473647250559723013498968667628951514877730089236983489784865766228992916826287390727743052004804619170489210674855454903079563842074572524906705337616585905174977978259985458227764251279339917439070491081709025900678524152678950708508702491791029298216291199430966396497682716376357615056017506593238106488509893997647354743505838318550929944213524298577470839112803892131129565625164438634841327487241539675649645387939275326678425132479061030687704303274027060247757707219713866106729563997445532232830071015299413469374453774653173413774743356827708324349117900805956555164549211649387820309988687644557655684669220201347720536701401441675368074751094313888953479190653294694740814325095320397659664808796269194580423350670557298015335845251763225402043766771208736637380561509726056480032649910722091595307928301695273003856793890156976525058701199831946817757634577538607754895193123390739573245934459725701037951143502332295459023810192223149694366385640016240188111747348210693186846456350275669261068186692948711539707678821044110557922820072495453693967375348952061007347310848089579179185670054944587646836900692040535751832515399033912721754703053807603749654835552822056943572202456028650124467433178899394472701630715449741501557732307746445812934094095741839227568121716169124815198779229084409111884654915717945882378155862385079654242456984898291351082865613696921663630588690272258031085328858797962831261780908885406657988175703693746690244721958427223392468258818187071484359367060902944102168690978518411598752508967870978270621157081232542407037192892514407844955505713566399908681164242487715755809650502590593623800460723536621435669203649590889814752518626733632694685005814279096052788131035995411478935703437288206720164042602695572539250513929976263109938250192276397976736349788999031759376511229638424595044660006402813896005213134624187694551394604093899662488316389762891725315358488953632952335749516436362916622322343320619646953206119070993211199794020846701667188804594732411804804841653294410647188941740143093961279705511901325265749821597678770755648777848600906450512531533788704202217490334457061785635582362884610892485598196670487531100113862886425114913406952194932857882481494515574962362550318464455335911111305528466586727289364421155370560945261144725516451671867601128179198991573662967749783781917023723421962686860859394524378196830575655123731874643128572505451109715777574028186767456373756892900857895759628820865365965758986845317263038762890817111042965424648990758199320614120716857242799512485631928440379443986473603426971340672145587897436142555460772836723820240127943697186026122425514603643293555099781450197553751270247329956999966712635098648864708812759452673655019871595345930013344547989139426019486818380916231184049243048857763649515342960280669152707749903581522371031760450229784782597050608676140367024743667812530771105184576157589898761618553884143245884720911288309860822933984696468141345653210403245213289605707812308966779766512794386939087494156023743739152156194426493821549672722036134000380106007086381180409289031097472667019418791815027329544809841001387379581367555804460360393204653043411021614167659513266371060688823236465273142937752740587119711537572991766804848081842311555875669603081074099595263497593292773823435505966443429515343772170151780351300873302242006875632660852572775432951199641852874956583431488687599556157692007128855091412050232372192511657553778396695716453848277080118610829048810167748823121961064019860087157749128666485106650086541706547868279267681011864539213223995126895050634926157381184481041443546159293635364261233116707977531017129753205219480573000104058647014076777799746931948448572198682708311810364755513459106022011423933208238323102125288521210625930186452079596893687757736901709642572573568635940392562526260237470618779012260412136022508360342400581394643935369337969815853854204411379989542476214333274053816860118376372361046608297443709680102687256944049743864403103812576333156875652005649589578590858654164255224340955817353609157582823380599300543491799466148421011159506764348439026368417993021961746034894926791867164653381058875237097811206897855937709081912630408819250306157015767755263176435885399672998765270009912409549577023363238660280886862889615212951216110223963853670400602019092564907650604080995104339218534189807010814625595690662604038616439427682780571372590948537402063495882776339174325280207979651341098086601874767149378853953210774844318134168698720775089272772947572567871614298176572164662356581748801266919336916646720071698985017532299577424007126685010921571609216977962058889340217071885055525817695567411739097012114955111343203551136091631073647631454495876636064973997981341096706380420205307338685185874428997714962799363720388096744273053253809410272834718081719490699172159843424299205987135648118551311121040743927640711712469246179569788270284114606017270962357496848331905397164522574323113141351032369517606849002946214108659707758058770917458819967288682919604290042851528078051418376408629718095873359606156484961764691855519671699900705592156445758614775885988961203208644324960639010289564098476825760480218737893320216748440579196321691258600556779202784669580290004166740296004714894285865002378023150402239300367930390234653981676655018484665886620351880593233350827628407238741689951824255411348767719771486518086348423056134779526640280156679932553955650373048728079773495734449687942779985342172243029887575265774302870434402905062692546723982676698812911053148095738148610322439778133230207633256513250781280622145375088624030171433454077979247008249125448844958396797475316182813675038981031372083013944255970587550371433539142045044502831132184006869594102274596462528796863790963431972072779962058143149751742752439573105824247829939982885599000291242872007488026196884287493224142277842338375308990044157332635672024224630974337963780625057945700988088074916727541618252513765891142723858358294098612706581537838391920495267443258123147070780769223079506032287430777568902190614126097742338406468005401140322104616605725612097635436139648723948492992026146439029921117377262818839478877440139741411978822277791005002875787998256592199634129441995555627193705957623201358079344726754931686018811576771626943722833581601537959606512360779821494957195999807158728530105712697008135334690801475212013541114783652157623460240884135528961302645124481032056860542109035730518651168393387472859624762597702563281566885670500143840113573723082114272166267514136956490815791801848327122830574507387148998287584105973079437409836260172035935275428820609317504893961364883222495415972615309716204517584848451090745113301192035188246961430111473758389755177586360779567777847421965972729348347352095287358381186231776990483694187814305450549962707030814849728389316742249016089139242176952859446130030171945473570882182268053114842786075520342911213926303657777359082108271506931963866699770586915514352598853578109086701828653513538898266595051320352272983466560566122627390068096572404290066717644757377578123720983230271990900676858420078474990948150276771089390719635946496371155705845104051491492325724428625488067726775126356813752491179752643252973446397059305871283648891089456433040313302398537696141625716448276898314767622347482236499088597137873902607019511318556698991424058598148100556122905210463459224070417543879949332687935545518964707343985715755832170189164946273304142034395958949707865293133199535187664414798258927352777199396903044273955573925573915483194690425484397656014675227079099788829595940669073828274935201103475892203682714090099427056478526649937828282892523968215014184548439527562179218691826296554090384956530302670543827604822347738224918397038413214371775692660219081955783799504067580473169967541692827976058928251639447531061211707390479817394584235878662108022557552492531583217498027719649859275064255712249319495499981270053964211035147945488487288723729461840069805355346158786210368421819772226112221410284105944597447635097705149401423544457163936423441482472181330125778769493246399259254629199455644544025844904381922862577048464074848984874701666576386156695413084922400822126821527907499402866393286259847082976762237179202773803811998321396765932803967136628990785159479600212873469770196169624814557900979733813158037688853937484231191543286575130735719160938397522908510934656297513207953971620107412458542628824589642472969914819588948670642278901455301807030295955973111078223337614116313655813161583847625641288403091086952787502395692236878610021965519826504007663219117442381205592552111420053246889543703608622156221945240127626107987610844569990685957985833655734541668237202029711268199340613014058662580504144114345976091422038474957506422666145824974300033752655444147963988476263439575306370306176407374024420285720571187052866668652228012440957849139827897305584262206126189179934382083042878847317234903629950658368502537733735316481605753129570796793230389890555910425241868386745456097523449886045805657524579277904607712914612054455687481531373424640953767160136267746872470768789685621989407661877336717539121476164377146413343636553407138069125173788958692827740548996283004127371157894622763917304254598430752244500102840963675007870839980893827533502066473241280361575764063114574886077269250560649013853147129163173488033651462932690966097038106757192090741729073701159738672187647175088056508554991108595221899577551948495388664168942998709164606718102049600991695421056824200948780632806339616790656282766583705299044686113030899324961690984540976114241197873861097889413379316102179754623238542857437218848648666241427486007900756508697436156488131223012606589514831098649318673883198170344018287388235489827792550966420056873698554658487555229044676025533399705552124579035082773232511376257369746393697940667056472974576886277447952225060160646344776264136478101793173765144282079518171389378773360491835594851688816882466079233816592255699494613841059824812086971736593077021229626205199067580040310997180269229577862253302069977266052439196098790478485883576517293669009214475517550831488272260440812464576399956660789496539890145148023300905252350543715434871096705274316372627875835041055879140290220437774207732069584682269375390720982594545364675331086295962101350217140050798088559383486020336093989739439832295766439328240895479865608324818240337996890934452987828797372465939157222040823906316875823357352559912681622504911824719328457169104246761346197998181871718167956750631322904248417238834403236771910573251342989787495826927810726534009803668881938659439242395972664597804687487716085207994811228425006167983515909454645491758644855565786769121609667699807818342845784624400783918876892277017646062846934075197814548944969331275524078258440950606411687361965801113733551164645896083371711225651891157959861362079745181339644550218404029257500225226339113680156052857000005818699932423432687983353248629499604120738643201269448176879996990416489845000433999357708093500504021229125836583731184991024289048597860930571700729558005708513843159503623498092105584185514927024037091538529514014901982414676862319766863674633459004179139989423611628152406687678105466341941880218315835126846522901111327781398815204846757189286405699921010811313738034648200294515246963377287532210370819460320537418970124045565465086319423288077151417315053037359627456753885304078884076173686745894236310906416602028252918445459444205817986364701247028511658416825928473925449087557464619978047557463492659303439826192437470423154578569790399244524702813055434273802571638714378013461317399225481334734831438157737558459327832165828261588800529977134517095888393197251275365673281535243661019760376645752450058132975192163824467475346976409182820865888812025681888347483371428521366332835178123031172414323781798548692257879484066723597489342668231158322587826095379332588349541989612187310261624807150796891928639728947539229266475286549436458574796685653436646487550672412120113444281683935638770363525378197831435802163166225247547540922705427565239322121016860666224342893995084270648035079751089526789503503481407704849693508564225660350784279782691517293914592298031301782609591701191280164267473098146063428866632398332529331701541205341308148903089630085669758045202854860146273546347692571626804226111845706477909793943664537617616110370556394024859437479854559838009199991079389731699173430888811873863711098289118341086344657609160016430023395420980744991344636182058263238537870423607899473550737314529538200062807665143936059753386848785882717830421343336789648836226126217946452232433190552427980895744558951268458113754681931725592491433615936771984521323561082588283036212283041829349131828141570330380981124508203500717058140393998950727559287124938399779514730380257772379141264065897770853980238565506401798928179470152667026193835947026366618855046751131800951645033191276633210432733041504019896550618994427609570439138273227092002943529805386330212717511072771203138703491685435762533124226455171120949958645008047879684796164949380616831663793340889150800866016515151906055525011928519616054400536492253703806122766377701882872930340643054672931106495045715572314545001519559458778022605150206042484383657993898701847981844482736517429001104921346361866795758903736368611955833042434544405435641023736471110673263236593436143707282586580885381333387184469530597692784791673678587084870911081253696387139300233053727976077480629712555215690041013520947502440011917491315057200166188814654729516899431707668632541020735439079114335676495525973346547218329081064961354656480429436680410005188429595038240508875205398651830678614858346109615090658007582483387986683979573310327253776178398627258781486154279500184951155916016072086235971226371686033067590958729944687174437077293709421976739989513059826614203155743096398006701885049420961520304652449361088712698705957670792084550428911219190860321608197301241975644166465583189924114226273823842736486272249457442203078242318654372204595407210414452803539462404808621403233292997919399417377196422465442325439541199863733011073712299411319104752370992504758852866745148583707681614693392382482687314347409275286432647051358444692083816079541077106617174814459418885497238123242963605116863407071643566352619266678889990979864910417522767755214188456195866189446374648926891158404488371060560323302840285243657248618753198440218952501344619965977022249958919605072284840821264896307931376580606386714705751540817999040416048035970966335003251036470523466922235651612074176631607996974110349135507059621755020856546121622170907954117062825048352266036998851266638569437816350985005196620208349006146674384508969614662100378080083268214718955467191614036211698906802242016234907703887491735371407714353991691770829821547532689420873867163281637227812188046096005625909005322887858489612424843114333965460974472742652764788921799639791481917085498502022769666827024236594518395946939014544423204012059179839562663238652506400311578368850205479195718117372055897498402474622738343325718447383577654016153011713787964299689989270246617809889444929432359756688694321408755624863659866778812801916998672656683304082001187901475983996807229391099259100586803944486799407248528842975879878239024457064902831130412794409630342153925328905768402336063623299926256664562586182030180722466020873064857017569456157295448164873887588365058299402391218598561816476786002528340495249494366867610444554601480657358211544921725001833283608686711111894215222525790019967146183992346999690717332935293099874132128510246345943867778173958215023292171586159705342214808133369263119536332279752879497111592373545494976229832481802403992632732278760773734284173237199387342667227743922425034245341167338677275163881883203278813671767249171376260496838948887418663360211499691072883105562918178651569895100558593329194928755900608883208305535003411389691567934498411109538336680680363588272966145313686462542453680682893634479422935236429090676272641176672867598393292716633656623430695884258776194252414355381222370663437867320486453117207065196393872774170478126877630594760512217230099664633135776816457090054243178699979432710940976303272036661701851225588756055395558811092861423748920380706090620662567834804553152407738643079190452696628543892352293211057337401143165154276571195214219966843428184163548927055189384104905802711905437679382148087575911618363669436622988703139840344584647808278141110076306147983874928154849989330802314226361310340852349448222803956202234576514647831028033338876149621954842255503577321088152463872170076942386851828225376247214749728582235315013483534860367520395353340639207736841637285043557646915329340328988699672646212908967833552007495545134831806856175803780295197388738737109875717887406335686749583317995627486880584644721520816611928534861243679323998013316083062468569071850802202396812314118051806916885623136171292314542837181695826781405807487379374299496116868945362312420283512052593529636299059398804250650122146367654262627221207287777135479146154615289998003176856293511549947778587878891825759631350641397214029166820895571182358874880705731771975439872931886606043177771039972530360087846358337371516305708557517037543353322608733292436459669503580452063752535343665632382490506008031737866050807784429570086161259893169322986148320792056116742411465896027328924641483304133579955964298537257429862934721765237382016879198828995927162024397686714317243555484364850142746793598318642444046413809128121425297754008074348309758362862983321773709100955175961233922217502279659535599055353388641315798905179794940241412078078668944125551297364048533548481679573667820698014558675204235471940133159794527088116553062124425380350617987422723027272466389369077530817796426221487591376410327246468620591543559150505692970767683769313657703969484605503405949088103692900201542203583818110877921322145712501333951440241720935414003311250624645535972743558716443183623163363963184349063987587607473127722886919499694757231696531027157701891239489549223422381714755410316228184676565064187623820371660828033865827604595359908739042282921020158888628616901345528465965717304622561734677481649443535209855440765931765110551792141057713213375531428182045558227556113309489599793325040520951000973437524638235526032886086091454467358080591370177567119263478945459671097357276767778505896364460135949217914716737436706215490652546114555037173538049105983867969014942832023764511675808560245120683655479689154682037416484139396874758601308767225788708576360705656386514247341897478280278480704447776508542070365942289349496737266833609442700231966179897981752152738807716787947264968748910069506774917111198605643260373307910892978183215483367703890384184598477509039623821428306051080274950598139471399808687529376671822696121306955393698380703823086328109201082445434589649087741059008799797960009125110497729758779749246530824601485088714637486257115765253938558066108164569694650274836934166650775319786102083379936856005623867649833559549903011116096003593109132040482830428681773087458667319540301192982761392782360281113779843240500191726222719497405896473438377153325211848656049273875225311863548499108539301884457407624972855477044287738144311601550633478930141686191465482749529610504358352413486608285168760732773134489092140995522553188189883735612050568298804470997243487058403907031964031391847794100561498790024327561854625870443586555036539580091109672694436347368273608730659788018150358197570073498124882777631507353336546286153656717387185097416258042180563899762584833069082855935563051933225995783906047465906264052950370022656733884300724499096975519150902304041173130326446119882874044409111056658161349564760243778196070423112155014610786347402173075104973982997920168808625442998790430212843271783000461345697496041461636654947539157798032787648739855149416460541142788654987642843891766363918114907594447480772880792407172631178163542352736003269192871724573954907940851442092012216218181174553385835201442577803180824602092103071667127768991273329064353119099745118187653164795363968967469986266094467373390854697920420843199976663083766018067807658096534537888704152085239996168026780598765689863241348336290405975789362841114348079743055255476151219295051349702847292707023756146341377142287422833177183214414620133854263607993290867556626497590800058999666357544300292816043415970156212175564816454359430155871016065064710956655536228652045852113378430013120302604280713708950836747863985679951710011364460883126134699043237579605235181569200152418757263656839745685193701435435127817436718327943798036730045143172198195974001644622878383586735064037208250371624145920037143110573800955934323324936625779240914901592257858564859212194795858880040175109262119277817884275125029559875139964034771479499637223235990558108708624235792471739782282321497300577428870664698727680483125109598645138389649739762954527469571862359258162511920873545956662591301496330431535372200087164447538909269003195309832312010226120122220634120767213687915879430247750239457240298384186393771197618504231853647642447652532600195879777300917459565444471582486181970778794159026093516695175911234040531182631561247413243253450042312700627569941910732022545580493402399193502716379655911852081561093789369691375474281910762865027558928663776315891170812636461506444587744967788493889356443741718059237484334475909301701923222080285565884998163051053737274130390895010190593956370340953086822746917048682389020641004708519704034580664471945126194913259214013717894627445155208764504881065356209965971712283921538031622592815045742040774353084144584918575214636670568051211968673034902564269576886857807323743892577819167731972705640529964287750829605412224689299563746325903693355863189401786863925732465485013414327333962578978672945070273651266781808727147994942546656802893157292999179406711426878426080369229699551071939412608122683075143045060462949788182547743938706815437107300535353271686222461276845118535954407050304906710246278771158155370549358850364493935265006336109683004859891483515055473366419721577846732164648683878516596590173679444886548374874637407583464335121847517637160684772731239691050157471909539564136041675077077973372010212193323372615263989723171665343318725430856034851426426047378302143967545431147490560504779830292630826646451604819197970963052110917041648846503128072753992506390631672118572837387225184857705317787517751881777074017517986190665868886955525501831354178271577567737450719210560024530451451539634893725000674063185792864020186247950730082667354835966324550930177993925261717036909946269472967540215646395513665854031305148320815765182998386036596125053665981444016349551070975064687587952255113091468975929833176569764410934173673336431975765688122268930572909956269096573269740867842820932149604648746631312747259836842835464779325053362691297386860030169523697886110022833113453428149180742564420023814055303384883026759657259438450815939989505190071239612600774619017024297022656638814189672973336279780089140819987005629460951936667851701365658929597866526352910129197205418375566511617048639017982611657406301629711869021164146194163855281689130424486832675701625919639736205142761210786906660996056665138228107604840933847812349373132952887554510956259113286956732464514455861805208037300949699535524589354696329147148352807761241664708529189124809300892342405774360371397183157531011109773010438168019670731699964976931192804132164989725456107418580880300396878390444922384399448911718620227687050705477537458785677129528778888786054744415688933774116427474391131592484083504993274005592760527247706384033085551754778614050874450185060672960617625852972823713166381517353014575215837667004496677037479626012379047063696567397627163140549083676298290407683545853458519267331816531903474509244728689770177888069234781388575952987185954051057306892062330795312313553346337876031358503189711411860675850410584520393516563958104902929425912426905312684934683282706590736683190199388451076532050159962632708999240521462590651416006764152651007305232133431473690907575381810173289396016386653435519694740589364802257947479033538437454215106040487730111628242250298478921998534314778879783509105999469233860721942747530872423600662474581118603245020757021382000898645192616296309739550357503674032022618451928866012333090943126821121168786282947547359735600931784530052348494792569477435828422657226930614034633963555203086480182599399608999259329177076160208012034408647880770411463510036256704221768685198383383662833789656908841780749486375602244518532442977027717918040185692773618945129820091312674193205366329908206426603278048264189144542642385591038921128204099135896225675020276239481217763097604392294063710280500263350939643906047237448655142947692787913299133762203591404396206785832315533924767779869694310695234686931444166080809497457061904880477849815470972960440899375821456001053093621537987527672024829061833883042149293710086537876482875216856396863194736727460676258821366842504350437163684957683694429267706254330204673563016797831126615199643109256584915823116898181697074040110103744149895332192158428899528373347747558789420681893906138516603363123585154072659644510742223379624996787489769574814881254896281723764085658507154654015766587896472773095296801169346558247673560970202124761505348874038349931922222869511332144647751507630461967176046961296580645191069371895371354721188852711140951481923750717098704627356122396176421439569657784413247142398252338113621540787692317804379377908153013335793199558391340193523230444808528336434797211646286226620113943412190306029284625526146079840735517554113496039759358813916422890928417048611018529428510777545670150382322725380739021379528004003287223094040988455477231518517024458267321293846409304322267078590696246537121261539862666574256487817496440020642657737023826252737629311716741811418530017598595733970088965262086112614103913371848867874251528105138360852033285991487479127549997194066939889849769780201238431004384919241639225150650402688674094356153813778193738218607971188050061349895128265765589304080156331948615234071014611401305693027317290162189506267713274993222472000675033130463514011885499297181656449279297250093287986630431207598982532183000196570932406706843154548399720838319765552418596582133169362551509397065270565719701034916157100093316894931017877611205713630568379435039301065991388857515198558816634182282735809882975918414519884497684335150438167697491512539819240159808938954631036180079777413389407814394753864717265829811433381039997563947878241495383384045692412013669105911009165219753379045293460634870622277548370478442117964814324284042576222580224671472683403835147108931192953858049039848188665809794539101308041970873470990501127499289422010518095544086035909329557901202417941988890038889874298429086436360517258655094124197467502574732123214115419073479618443363432986987366224796151359607692659570903574339170831618488514518578581711743101055985590580303702726500966672706357521945439624745181219011230945997299577985094257181284761177025091257267048500727542099932617495629787310950485470498018189627897178810471727554025862188040476088194345764716402004064543537489284163030999974591993602490178330246810636628414791408929368406024171609377817035245146612057106881575462894020724749232606349759906742761283448249257618721405184490101447259753128638386965154586539670999850389153225155555921942757218978157811067492275150210769146195281623258169408300498360792774691827564136389321370069755421146442213215809109234302819170420265504670007722640222804620885234531401698711551557250605355227931408538233830359555726278409480290490456034709804636194468210292393878030337481816398867366442691468097226162102524400133118999806582122588347026708389690997975719315825188472672743738637394142765859987161721733558979797825416982042259536702624666002902076684135750352819454545933925699982016536009485379807222133784093598515733377099327278353822876960945436167718452364662977764848368361975384275716164409955742192402934850492460496533383452821338388394956229941052613498783401107493738578626232685600062283609250045184852392145784377315596383497170104864505584057355763182789449456274331645439017083942418586170534921276902294931092728313961043757950711429418587784086115343253434642559994019591251583175299537063109777798410090702266304304919348763728107552050288100130767428455417739348192718091986078284901968137146250440377408608211675265116456431216117089117893660551137955173086206424685421057810974378111992174700672990492743180407806515410092137679314554245142365757668352757064685306200023772393177084538385973130917976049074622427874332534186017348202452516929805780243591244140432182255619240832329215499671356257173792699599933670492934431328765832677568677520824643698967988142425882811373890176977601016519346293887250976050810366855172347917206838758142703521500340024206271553691210242360397687248106705485976483819286849007140668029104868785595273590720510132243423887806941615729583596357249536903635276734366055786486952640186595489229559719305702380064833312632708217738210612183104973989254993324725963874866584128226039198184721347853733022795053628721497121807692443354237079123414748270386765740369460597385451331494887467509411629963534339531634070343363072911464415295822204798616082420427635901042847109600152998887643899549447296962918199087238597893501919147148566958144091018696254407980218977081939769301603546266923633532311393344322415482974800214337859976191269908530448293648710679959248786432084033630913594927514941108278157080354970726469155436612341128318028164538458067033983971939816933956375327990007548509385100416182595950314765914255343753018982917782775747986831851187059806803110447791841984093770859595660454975629084272506089840124323917101711453255825479310048932541651065529149398754165511948795308070206486852753508113126828127254452850063759858477683662617644617403624533872003301453869308838436890666673675931816315188926294499069540266723445725931649585028992261813744387550254578594093363358457762119671575148254371755318274715289010227593437857216069802808160840309679155997005231510110236620096096351236769553142195814038419292605949627340078327507336295668904992041437463340713425894032214223311119081645446389672261729867770921256604051761223484502106382937063617428226162735691122242486815267490638740961846215387083509331429404615439513710938467613075316266126083618420275101160035190418087417376937728842007413764975249813763489543906465190356047507294370830796852235554848244139369890316471869237164515620083402578742298521579512904137000581094133245895851025087066977449573197083689191865912435204763727681057562299686342959667061845298917718614223445486610700204331921022437358426092473813629489799602429843631016040498575450597219222257442258752857978201229690012761820381576977460591087168193497564790153056803026864900476218766924045882861586979081772600782569741177806669992879745068902558176195251655671861578602414261156215601772794287368947082052396607354415657971207565577242938152058428924313843721315481522375056740198153406462536051066570939357355059748640041972657889221894339664900845364714754713102050321153346171182520710701524026225711023584149775354114274977976013479719635987788906995725753378193101073238298235050643317995144213074484324031643450800453822862089836914018950547607173621826661296404897521663203011690927652204864459639514267062499393046282101952204329574361366694938216513572361804213127896610786239683627867449335753965239894657786848368581566664498251160622559773784529657706912811349954247217051884954371729048119806263999742320065033632970704338717851847359181663867486577397459222062357020757059393219924229749655831381826834828715689356683661040641398091311552610955106369206183522566088677883484645121026559766872242532685120098043192991558732186841767975741074050458093604949394701099510982858105651065975668455798186103430820119180732919681781964649551181896657899139912024644567906292877337949392168739073066956205229029430118377401129966384658799725177847223434252513792004530515988205554449918454499394817156367240076417776000216004573520648913301449487643553381388339814998899862200218843400644999526895478170058158628895923871925195977805187797362833758453393319489120227296931139939622783296678848515718246459756038369453391861151706029059911806109949381062952073159243617334549764352903774370235613607788019279781942424803791663866027682785583175381946920414897885502605268214636802068713040233752391260117067261450018116695008325459596803741615640659135072455711366878311387985201160767318087749584989190612209938773835873710181894465574392694579308690577669907424477884252665665436542247400510394047013868318979989502687935581889969713919254411449873683197750801872569458018289950766202232715420048978906949175632735194048196069535044523920064189233083347982767720415314158589721017175058273631937482785783561707788108151080944738902471379950115937314173318282945246765270482790239148173930906493041351223264509906197399165416170847191734489328259193493367921114642699526852350029951907377532252401046492844893542541075710659479252269927198023138544657354381800535452023519305645446322359346067319929448948639629387391253109290769148431625426476964118348768268447365430035851120194444378164132137844836799596723767546392298963652712425849697055106136389095500386247910782325928289758959215039953500543947502864038383009957048279414392478226455574344607849135679911153643782107847385827182440659483453756938125519423401615017296618141902569463724050216601403876780110108768421463791215355522678041871087448150520105178430828046940795333489679736090320566830506551223063457175122314899754478320171586037963843779837382840148945400441228018813176749174874137193689026549769498301380725488613198628829116083901509713884112115293469535994836013246868949285927866924601217147070513640834890199644172861761923104950289075774488642048167146849734602711825719466052303624833393753739721308420629082650902677351047000540222658628997014793804128352174648850508502355615948742549694176518531759098347330760058220818886904380492733713031493373662839701176658620548281690031908858994784229191377276221707524766436348253240640639664102922874408089408398352729480355073060658537235757100704080247675062982333418702564619113862864338584451257545462815318992399793360137994377901350024983137382276256043879368382393085036282669745502535958656412460947884932120411055452849373793158901890757394724312302686185793843553113072225023322834659317518712205779714763947815706159527423372281459505337764981297274657648804826868541978250344694435586838955204456037062128979724540768432410656933328891431723963805516141785713650328189068894347771032688531825872836011030452049180193601451673077193799105344252885139081654260678994795528820511702529899606173175934667913903245451637305038891637231234986634221263455336520561858586938301988010846954954830131197402286215523743217587033585069761002552261410511665583884730357042046983196635882743187006778442550651189036048137227314427099431418129736096753007311034212741744782256962719572044224915238286624171097934717333831057589102339614329508178989739862540323515560478809898426871367703000422503434872839538630012651077455592692923729388277983022787836893679636487903475570065718707230159552761804289865380941953491477129707450735970003849560892963730380400333129327064371187880148016350385312255787892051251299412635520171212651420402325218840885324592543595871806301628586464112798401543758714260258596752750514595547971962431033969647448677635328192904886680116459746468637129981236365741917262493906715781368187356410601090498792905011916642054556838947461951353934143101577684782838724491822644579992013693010873895730916017576767145040255558759609683649492555954920997654113210478974116393889044463824384549797874077534934931170913475163175885713826570566146488578724729248179958581549312713088545997694408306871406002121315268941856245963320058822091713192433385171076853405249638090675151767027478035989756641032666436582294928181945248913106533593453163353350833806597974590191426634291808148489761432278376653337968161585591204410067594751131339146106036902225847792433317552534478150910008701116153614346285920890151761714102170137731692383608410302520361588861991076534230322113633375812608393982087010137567258623696976657520095094948997256274365303322479955693905731254870513365860972083671568572903411282988251003609688388892382044605570453787305118131626400983373964701272247481150846569582955568069649596135167307520308200697689388765356316504673942165287431356327972002909765961126957505494711995621198160773851858830054330224926501856796806381515434480509677330681763495450672619665685258912910673201276128505602649622160128047410151521531735701764981811881125693107241617112304030347645134150252346148472910845015479536999975479056300717577258893736477658999306771240127430537132326595907691518775636497604642627769061413388293034828623319099851685279936514328367704259710705629852003756804093300775573296228309304464414058994334468570993435570578012868593967259856563743946089668674535410692480684924687955931732350617471893431964225499175250287909860228633883591525543140882403845972146923131925683473936987581036082969966487449822109332527007116832779399839433453179749474915008448667311848984522244222888029473913362782909230544438506982614309308316018182563713354602148577816309972370891787762242631685309505079744960996468096410284855114011833299136371216763490985309443920210921213249433496788997629528869618182949207210926876475531349701789878276544971333796874394424286890130505880844295743939328385194173426178233717597258016367288075615080137439496569859942007917586377791457682528306545060320214908199295811783427136863534814946038363465713237832125218053690838818669139329552455092321718744850060869632713065387195998203047749330910848913067002896442840166008106562900706208679901260460546219997796510577713310873816438404293263348937970899798288897391842834272267364865149150283830955693662682419500128176502908026771308656921655511469014256466351088576235640782185869473920521077046532302442978503102342922860268167269201361144947521408671959754650786919312591346410600072076971553412816137063492283028313125228791342702879261681261482092779909363423084929026728654672145106823658412279249755875108432927847107301442672006541867746900058256450739394524725245101435008481961605616020529529499391154826184242641383150942468939896110815188331638262822786322436459266438287898636028240134839299736679536640888542031745983563513819912834211911161020109465968648930732281118238662688568522675495973084811248578502148172487074337029885664860748419601697152630300051126318169331921251159293040945597074102037477893539894561291566791495368732233898455706108835112778508373834151523292822756405749803713128720442801558579454634427767044353882121257834962662825315823639806733472610268112107621593163249151619819273314209129916422263977335442628501072047020723536570550150866225846746232328644755260377066348731093677448821040901847968036521391044880833969039588856788826304816240185847291942509654067266463124149777263262463747019146461494451563320189231608032432396894039066033858542020786441851238193250080416778407920754930781184797866464913779134057747567989367531535933955327044260572018965486671534439858198634698280351253799612873644133934300550704290917333898308537346493744106746399134747938984242599327213248596826900388242171727290370308382850988084321775839486250989123168540053425259608637125193759314165162962817205167025764238805110730644916486762932170177758448587018496776901368854343982148824469976930564230916358883301062039854837719415678517097219258672886565448407530601043585879287755700440057766441187538712206345671434009551260640165157042336735452921016963033001823452302710099981976849078067272592460793761882754148020141126223207850975526869174943970723646592289929914381213137967846505982223579743959064264355883745801411550250125186182421120788380476054591118393587025797452162091864917177618051878568508768353921338778509345620893810243694652424815012230775263378670767166011921315614755484335654768465002347735861824093382802892068073250671826747450841001720175403345194324589975180837055895077787572431160361456461196432770594082947883686546285076658745634690571520402581758904897582713224874601740266675948323738480171811896811847929765011954767338192051884482983598722727421561351843059659959818212921952430619457236355570201577072974282734654569440110858617111883147251135314267077338199272815397913612799928893720402931440026053130351505638469824336087853700776017051348382280318037250104079771910646002254342210499579495655786024816482528229906616556214213489369040395286886597998902482281975191324556406014011490050842323039188267895801091852411384104929613318952389547954176317591863555557088542207191860807788265982184168552827011903343126387244479849855240780905595928196081176454615650495941835783817959693463032520213440256202907911963893288135183845735850541913901011316138220361690453107259611956352262126187904761349012986511180770980745944801314737403651333793699708504068931161430275213056542445884852563344207472577594177598712056585830344452423222622085483841218871397604437565529413235747350725426958106140893940442798326025476232406105874262028285130982770990236599813911222950057248184164655600074109098671200754237500972551597533177084654045615956042885364854764692368681745462348248870765190987770861010745857870683887483557665277014627039107108597121030644164004223344499804971854933693415134563659946800142299333982024630807476805272385690584439444234057442962578288368939625594013821816698741373644227097101213464827049652222307955943447233564369853608122700779796701546050736134804433474759222582925981915711100653249162766657901350574073949293756661907170096941364732670281519552705628427286835274144396241379070181507136313342008591830903232816729762421325845668329526153064077266807966129364297646675433256435400435953903678512995226812006133575418851609727823236828870293726786724714348244252378482498289401879840772794742476213380228572671628894879096464007041989206502265396809794638192548855974420776568286699019986286439428762915155237391830950459457384572806280392242554139492065093802365295773897274521107595057987815725015027339575282583287982978381950079032175841129002798453150288858657676846075819925118916886161734384323468201191845648867292660751222446805083469160567061697192189297053047591831074112132210860792121975464499406876895085137831023349880019750191896457651923867820109642223041171460117143627836671859213927276157698127654575094317330422352076458454136153928322560474412295923083346739550160579417355979879209214181344077514039520839180288938040263455343863184762400422878087369237813418131630241159412812838179069065877020399830214766411179695651701380341084518178425415306409137641955580624904150936506998226724192729097818351809714101231016682801330110967575549561317446581002176078518378889366647012483970360012828884312035789934353335845529652513241175604734776159562805568156052032332218403208901057153479293644273303635600828689170154572678509427945881542948091713905859165339449152253977562125083983403576071574487266147258876522371928835364036855489646840553094289275444191242020319077686275071335453931035895495737333959034644221078799524429516014863590425456399425665533874145884535884695456308552545854893761070868768775851568956279927844514016000388601505519609319629640409817309326166042337817236296733683490497005088434363707863326613985033474615065904340984533308561172763993210474779348419582152915336367881555523150742908265309791136805758678883439305322794370046729045948663884682656163611172970209401770618397178242986731872883711890680140915358507248392799917673635871910738193059794344791627511440340285980449492036187588261781517414612824813876963076117504163313649000640359645925744845521797472616854700545097263428158209608532536297867807306250877416642425108778421434281031185133740857514168858528892026453047383465162106243464734880391004787511869013142685613707126196432037923068060738084894490285655081899673213889088014298126055783607138740678752013324855235640971156088479078877494477513034220760744856118194049983537795626983387080517387506585693766544723375935069205021172489504295245480251479965373456821379736759155442273072165055956739109632885036827346343035178536952576216936429385668071281891984451630766168410797654482098309620963318094639435888211748392566409023320766869481442027476627317062618615784953793583143050032180527269687186405847796662645051244643249746960162445191434797307640236563977769983984301301567110161342024755591932059042225588102572728292413323864010572479059599955709156605598188719483288738484401116254713509618880997772499085666350613527198749389416536972884714164400115995464616976065381239599799452487921280342308859608193937511445193612349802195958195419100595812566238529242679784773724006682666036928201181566981139366202593672628014658002797144827998733544068296228429518305685445397339193245082533921272124323149541287097689698967257053131798049838838934680749529653508329728684851708430437477495758495423205137098895140822992636347064830392032556994338701801707211344847636144421305771498060802878152988533556544954265931481532442504705850744621564236420058321617288181394734536439192456669728324228891392372230635196390876687332077841503827504756548613929403466168012683113749460541569363122615985386328568004039199895108580995387134288649860675653105008891737059691346884594259430633391763528260349424668927680580514684303943204479386882660663911440802742241705898095125125408110678216861396467875196652122903729834442300224833204713033060451186208372425668016349847076427993020393410328478670875583026466180751585797616685563550097248604181928518782220807671115999920907320565660489208438521686500564971765353685699945230671795197793323405145541694793145064510114892285037415660524171821015898264462186763508080370638513098536444848662744099752719005443355419441987454465559141135457895340012351401877123675206830242995979346886552760219582933036008858907048217594146266571701788467218442600518857399707526379256084335302995198444400848577435628788254252871593245701400485727108924313165040272911992722309365464042716478368373050929745604337209272945678577040649714637468076551695395116453783386629088565323456166633135508641963082999803574849607298053338947461193599174083738965934908966933615720406665771592016669679146631656437433172577242580347513478010920962241726946989424027820688561136324522611056546943904055409565513062194117287727009176168911594504795459880452240332683141405474125145858838220823288287688122855493439533754665958520314250176373014772992107196058365054333138894082268119332804489628303592159294812420149475352588196537360401690351450341435434941312375326181063140934334966130136501894443282607969387697604785114735544076876093350504016043174560759081547279928632706993911532414807457780912758755506592849921256059397283925415121454974801050423748526956045791010980876918456108557725318810457802920054029636659082102184540251056098477892108348612831482502058189171980376747711458733460631288192261077016057988703775076761118096124093418571378447255727023144617525146479528296999614203236695606177523610022057590319079179699732532580910019362262593749522580749079856618605463331086322279011833557041398085986457974307327944034247974296042373314315968318537831634250125453796119049610870310222201339468681965514354979324158010153040584363999181279580075632075232215707587244024323854451364984493993449805508044082141739280489374192758990461494570721591089768290712588449685136408372209133158974166952021242745190259873945614547112909217532972929527963156797793542822246916436876982856691026868956543523845121595535869899924032761803241409744670098886086069650389086531337469851180774028576713698988226874773651519627146486076061498756685183129908823930584435683304286033222457841510865353818022746755652504704513502406645065978919681144210712611268151383483303425131039922636091150832310687332168739153946637226955323450935688064434512209180843771623911682685321994821221999332504024042690700107701183548973794645159842316380387506940304314557965104663710247232650515249248684092495022047583229811394960724712183109981942486313050486118346964046182066729037069802968162579087583180005170305091450017419787218826079747828127531746130323576932777897668698538169483099414531054425600837204072852473317687857700911323945605554243368682065333227573402896956992474924791333204777256232398431402608319776329627351725184917877776263727032232241603855922739847181690865240319325537957150715436615619687149689411493298437457636518136897031700250116608029504244221935630030693863615027182812018607709647477823829324354587375122128008879541855128087289443827739196534967699376003466849392807167979129534046135294815282504773738386795748555189235937765564908116974038294617300032319773691820032313917719876021604580247010255243975683232756236409561553816585553449716401127975940293410060049136924339516781484418633989924575302880478080423254348258541765094552505922661091288059580167818983140614105390018803044526657894717547662776086465296606616121340287753939395863400245294202304230310003858136209889776062336132293932057789266681526391413609582875749045959859773558077931026765441892269072118617082628719311675782355483434958093192402255156486770331275284518297540128873651107070409013283110543575696214082544838354708955125519824675948070847304251216730375047213385061448517529872285804035800820432094673558745672062146769856481833854128386374222672441351557013026756584370727448009971532584026089037322206276485347870551690179320782044551754547690105284914002810313177611651616909977582532537332954706613743449319126140866917112497607387072961751955079232049411591967746653278487327264836275817832511363595166310272540207859103536921711547321200712531088162162538025255015119961041742288546224586583588118467146382994032011436091967438809770163341647357252430946894659353893616377764261814802833396336494816254243451045285344124963632321228558149773152334542267039832032826168997855080171878796356040976426723810680021922425678962786951120272897472193964700084140118753175430171478443861290580387700124716503890126386373370377501412493083598194574376945852422438365625105147562032914812108246769515417452091117110026876796276896336993963769244348283100953602201657004146382362193739391384337712031986942956358818302767676319094226677382867967779247876231011839778089465385799608470850039831485433476821511213204585085072106385503330629552971397720815908594723794966275414994274732269753079741584362083950170038783915497241152853712872181609312470768057487265132369545567349359050255816996986964489710976647925074073279961157970799381126076424580952586239160659065039886489315530181331115929189801370702996466596203522633451183737082741209462288867705497563316500815186938167021667771233418556356515456899379505861642861614723567256502351239933718842473189981405238800612894166474811624123700871871229551643436023217611557196234006503218576939953645246180996973858063254354515759688276059337507217378848473221278835369546519514819035739873437024102815574841186026708697328524838234246726294860671455661821669139842459895749640637121743929670235303063522858536118719841332794895429073598780326736945888783767244909636818553069329373640566121728108176621214289064087455415065341278687517159661042798029004696890933109241685693426331323033967602538838680923440294452551710701881268770793755047583651142631181970973077811705717864618763839196967284104935621977048502636805172702003537413435356296799227654599941462528140438865766554273435753455887309586744929478839040298013836529234796971634698488496027502211586089795563196612678633453327574505906832334972649736746797608837891129721678491035387546053226744971322489384469395933361397555450979923039235140995061524169357460696535504683450303081460836967394726117940906948968560458464009292917648918121190043354915401036498317801966716963717008454264201234915713219238797873352069665612657655070473056551090929170696213927169724431172759346338861644827878106151779285828235552515255278854965344756237562946706807124175041650097272927026083419090271643172437894261492421360133225745332309686133217586623398862953143464585053903675851821170949225559064767846340641178826249938459939813402347881262832519455252038860764085643949011343763410202246270280254890471727107269239662517550180589515291299363151471369762317286082378764754894412967285487150642193926913654086793672396111066854598265445161017844501148647791509107792809635419086438593158133615598099749037144161307929257576943870351966618516017468359823681427982369783896691651505442770444569468355320294241393545408464777956954421078161570276593613348388022601209698063881199154023081346430754839544322796176464173524334190502017400238655580258978157529778283607607512004829943438056980737886999767107037103960650579479811300161267130340344074021411925294283823430753118054175439910211033725883650727406203634301968874521789192931176192060724664796237997982110911441449994074440697375893394085470822389859750134677149282543587351508108196911407606943316380751381976714174939721451800809578164474563665975081796248179659912020883252069754232166508478721641521756848430813760161722493947648657144294344229522445787225951292315822317047599627505243426676995030302746307573719548762337044284407495667532906676929968852641918272833374299518352405216829733259284985890291449316832112954856915475784565069129376965673420983222906307952599673435043187728612694626329980639070733430747026610607041693095758505473737299964003783366272360597790031413410914928423475983875773226948742858715178629504153787284605517934418111373027784594475961912854216898866727180122213248736406176089948784680304491118388206070837408985045561471883128371608642321132891465719256447830652409482670285082573718013721687361737952608526425680955668943713935386834881883015100542714169074231587047780642572561082723694168726304116101923427969308420230823873900818873128115621748377186848708946943943436114909390657745467481506186258255385530544600376888221928928037071220249385982787653172281328972875263515642422108290443156477244476126761094138798621296782328446959859461574353360857062822881897597135695444870310804104212596432891456944090098370334370934233500473521711282217878579166636707634082417295684585210857762946313095598270246434487454263217692858368262030293062647165736283581534127955408307531632550261359250493765742155976559294327641448973232267353483010559094632410163237531804859797496942626023982340825781563664471205266943072589427565373689653267069468004924171933895669948459245032533537775067157687145051437573421874884256092478503371391274567746620287430738592489021005714546453168152091688847755863735177983251175496224317229566899612557040355035263814813588511974124785499418894322058103329306740861745475823795637206023429923040552551621512785601212971682786967342562283414941421924812739133525730211616759510735242880700735017536232441752961707573784778484023305037827276811645833373971253572773611288364887215641652565871342609890682866514008497261151531761193377490930583013009675826963488109206274058463867339641698056634011333637606774614948080928015441569821699517749111888401334536251245383331230972901539444886385704917642448077896606030772684051181777116323103864283115929063432545961784866839568146980317925393848136530877778968574111872242642778350592999998230786935149059322462772981958845592418444765940691676112173152963966690595030915386228087355215968901908668564790033512643992005796391383286949690890246270610441497360472679139182008349199399428604142733176336310958839775280848515312875861314855904266144540886687132707638906655777129586428881894098042432361969274618536703425042721566944430917830810630732504319899527615844155465378577808656528259590372262209943801878155512917550438495964899498347328560373758815917867155078844384365580355813476021166838858016083001301005414380049080329548483039778332801536646857519277247460308388737936955518509342911339566051611901437888616934001783585751454709853290887960152248029760609209563019545120393971181052352848850188285047994650286618247876245087402937733605474254877234157546488511154635882901242223346149860276530378967732447564158154120386110566447519234569997449114021838271392100415656997696262197388904793044255372800125063580787908494659685300502651385601331014203262475153696357312608036145224759962180324492118872170384709435277267400228006989493123615899788311920352654788483607121419473914042403857563582299467041414438211904953919818069130371903343506615719185623239446198723305456591943406633535402429358126156735322693265991602769982609717285521052676560794590502281736639174247231721539241925975386181160416221441148856423022928038656889800390123856062487636118808589305705990580993499319617563654059482510278001959247795238708564927419720123115442270070166334452133323092567920202030134676971045827518093099254163060025465368969918216557585716548166779129221213355480636323982988494603193443760185420836086329654649502645105918645844880059992638393808166026504392563998467973975185520284920806485817625015760605922449279827915776849328494054046584024914079156442303733202805211465634617153765279677548576434145107147015389479535664769280010786696172286305048892626445681022449544214715176483879492588216056195338865478934320951947561524413345368221513316243186572038427669139764387166048537130019928583874361257351636416317446568037934787081974765481525528065395734817781007988298620351615859487540338046125034352722998612076807523320950823614475769169293800400466696798818757180568309379353730396171385979458712374736367199155845450477071210587183455676244809265520190484908821062537503802514684895828719356941297614395943593525007857998255649580229469190584878371331291307343521979358670090432674166764296420307356683464000786176621812949274400039259885460537182996966202508674734626253133257827042394058044625960250222099248068020493801692540924314137033985523282389218530124627303031782876189617514252160472786629885550607970384117115114165351066412156373417470121385131469134183996505149125540263413731650480792706355458765812910173300328198030375734936088063355785325639041233496715114007521258745804344955810069723498132112388423507317341783545125483683516391878281254412795271958837401287563480845213218201760106481540806725938912918057276509944778616515758161529932822714698614918401378337953801431764415048246690844236210977727646541146283267445307554966796331700620445655473400501383412365742233677455717216929292110558219293980885717911879674310486861644267033186745369816517362636349753642067651284591971418740809745451812799327836947940898732351573547085198785691191977923544555285586822239302039403305837213055287259187503271635740477170198766586616411594278963581310692214115888789367041028066278214783986034892354095866685088158383326288879036428691380620344985281110727575313153787998440752603608248347323764424995556799750937997201957730315214683529030039551115314773050931395053392339566547573856645062691792702892412309722728729778722924700907656574974943093388224529058011199640344850102007901178215178632686416011522484137944262561110287170855835823854338611941269340799228365098363164128333502356177063980339760211444190449059998138764640003144734652511183748520634105640734399570961686596609719290799457214595029341486084653320057852941429551972233847528780808538066624671863770515203615312051565364829245530957361872118623475410397594715101430942090558029566023757373987030529516431200920108693061807359530399725646216145077037070409168273522350103818156176641706954285600284378959569767253098474735775281887156864684467585695069237885701442365189575907466669198053401145218687723129692819476656074274257902439028091232547121971692984441289909841302070549866858087606537277340894139768415368859544545522016056963362942597891514275308405156942247956963160166367572806008598447865215580139518609778872674062589735329103243145375163972363743620092837374066093263803346759966816153803676522631596048026721291646037343071450214451972643606567584510230896541881042580031339696753242610437653664360620845017415396687401032829041710069973858805783345877109305665770347634447048020942749571652331058575599845401811949996109878923150825076384203834041760672785627416411358313927879100444593483680857801849886129165921785897392692262071392205032428264085199314510811269124499361156580239815764400324876543823545257099971055023998724942517710233219069830949507934979595901989867707200117233855788105285338923069424277122853743493125488378996239592887309956858946709560295502707767145875211619515422707590515301415655705233147566068192263464976572518646935024506136501900449269221845452521501937208292564024186395781655069230926822195338115074674095606348552447843823991352485916446115147422078715559218824508238502795456527097988520287931900367379326080715469203729657269049443282600384850571939585179206311437598538097398189801973292451218089794993029362605100842910466289230130546121244563017589642617536552609943228011790686778710191386444896582199191003372458616479469444494288469946028042278126305007771993551774564712648424308611470629468928150315922711150187502232955804553020585231659217495918325611309924009967044962203607838626371540008458063972095511025079058037571811335259014071563573205403358724009701699504226981009275762321923779454302744819199925705824103557355237123620235066653518470091411383099933471752986408847228280987319424424088070161674290748242558705200561535194285929248958758791109803183040951598756221873438119139998094938618116366496631091066114771129451913652221286210680515374491185457109117450104196968894178891281363927569363878974418154165017202078927399007657507456129083727688988534404832289111174629175587822013969594124492774294692953596805821849392259810524443119904892671285842055061554706972752265998702628017283684126859935297934442824917958496936503903090333269876861929191606377821866064920465521368345993234160094618874451974297494213669138418285982112495518011108982409245961315161101334607539647483438415643088281731132557578606451423207804739634839977380216185793583708175741268359269612737055768871385370747751157904505019287483967461227473511347767262148438412671507076326451263740418907722067909507593708836670530837322662171389637631003236602637957384668676214663794652366258055500751931748592307344263456021070000352440927293237432566595923435445583529558746784195843255738756080330811742983678206524279375881722536576790495769509878098809275862438929378965227299975488699305994692729192002774395843755874141137221186946662468115118542543195904032863496958284610412060126910422132231607084175468332370020411243813681124552621827052720670268767635693403932382727084417208505651211165879617932975016013009305568150786576806260315110011670612106871462413923992451166368369311024012192868057165467882335148210316811357832136648420818937229624849775033672838609265698954870951230523063508270359912735238890412280724925441446062826630839224185201850156530506159663809200117103350656285520444351222095255577238944872117058868935561288865743855577528824442980977796971497540871663202900255675830602021175896556504896048603183920237437356374920016200525917398383612864656187458237128605667674918666203097118823893687739884644727241418607348895065244376024282233187547853305108959575831680909231137341751471808233873328049591432796710618455118943746435347964168483380188626805492456356042199505299078114425892350404997456674965453204570570286301692258349027622879202531667667967349987074125062492985622907837836954036595238140653533338843328999404241354268694323399270422250051468065532980239045280157295222872416938119411034876293764199663756012850819262053510022132136453419006624866813581631497746623348693673929414629893068457004797683590390998445695077774980507380480848649386056162440309082144208921122618104973257578627394128445990421657764802103640447543508185485801212768397734875424670260344260117045687187909199674947647813606926314675434844925500464442229152495794495029477542687830256950946734062848192628103834663226075077435954567106143700336221767467749744355531577335995840740782986134362615296745717334641394374765270496106946439659083052913266814391006950397835384892015186620015704817883773301683117028592621626598039815079550947424980809475057472937721959166054658344304865618789674348386274555360980357731582234565082417167874811167524841710151446389340561023516019980620348295689141342620945033041194679859752809166594798673809199278831654557113146722982194687375358481821697707417164918497003397724032789047042861732236915024798173765383232457354449242299914439565952753638226431116222821262545847466861716968316102983106981477377511580225112863558293655560558745149465631102182217734736633428884106877633307023396906690335618444395305624511723619646261258938256708197109623577498580928588641052003545303796705792109660616911072702176844115783265644281738010321862335376270947051423265211610056493314599004849592148833211129998930041766681202659193396775097588929688631268308920530406794120391885916353713543199152433866440440041663760299315909247365389699832371026845510941203222575806864801091510050979100779607864688164549781435773988461162729175821929860225892117402752409754837424399400566524281652725666249228101956898927422872192896851050089447219665152218201034776619960973101107026546952667937956307372616131343923524395734172794058975149279734836906209033139868467789710523809514110584202085512945015008369552949858325738396179905164948579895245532902905529091940150982294948131207555441325397236844384796545296157273113943368130007001135210138303058053487082617569661192873149160310282070730586759204146622185959829777140157382096884789530756468339155375252959320600767387456275629137974248604281102204232508878499711265034275021137790961638822696141888452367665252067472181479164586636216942797479823417037806712558009957597742193960779884926782135540618476603848704488104449685659523133912881683088832925047837445799481674205156648913033808876382191076248036185460745228167490874356197408245824984746830942826138749874086354414786278038655702641377627888032809576803987090901185901081226607696987803241453578374123559285785439189069405271408397856972914957138343614540191187378651684337478196237727494465358480483046504324426851402859345109253976232542619761660762127750339323451630147481079740135461411257811679991426783796571902841405382691458517056792542394807316104330063055938477259613195463771240324639842025332254240594093400133975001701142726433143797878157726741923438308263297991711835913718206947922161099198003366976911661072818238211597861887442122719089787004227417771801428726613143775396164798299110798955555742263060161975657735423039848724207928380865094092082773622073122202703727646954929846474062972747058870346213529609943834570044519162447593855224005059994837727732162693883346004934564283147201995102511729727262902911657032692691702146323292493844852388454000566955917169762150845427230109939677662018402896267693836982127584465328897928135659945506811664283478687515000270791165448374809809407116801059435399946739241471160856823681436267133052668397383486704622844793716796801661364536124155445850922269484023750650802985963574849223888178389406369439157036609774013794228337078173783626687375028243737760006309162165853338210243072227477268265972066525041080914919999750795784657514337252020744936798582605933066918580884708522676750774754604902546218992805510580791040293366686756949755145141836686831763590387036846678785169354856149371882994787522220424225143288913963280354594920979453201163815258610968378302885363029642595159847578224499966805267420414916185836164450292152591755899625169443944588697616710980510836327011514316958189578231127426395361936077934200028552970535879314881580388117989179756011845579513612788093318367773783792862932256543647742418178430293957401076575395315363152315248713363209036021445681337970214345103292214081702942549647219407770559155105314832011988588156344072755866412795806451917803440020610215597480269437315677928168362688907633711989887887789817717917794113665985194936843369203601834380860805232356174234803494192452324066337977765934657684310633526117449046767256003601425866788111438746020185928844161956814688456279209505919381895562098817340851130331549305005381327769953666615403464910502912118590131854589486213635515138710836366394878588515666364062354224479224637701551381605112919242191549272213674640535089096613544427744868598717517368901043195456205305263952641034835235058010570612370725727741142984994669261355352346485365587058667655387747497573318713586270027446805202474399815139706064291737254514010484688060298378879747219119976474971283795789399801782145278657065558837010218319727523516890216204008962061983883667697783665455847445466244277368021127592630432969218661733301556093959096523932178469267212140224364255441470970898206627857540473277798224168179703221001779540200420122331573194036090153348395053663180245106702018819562776727346545488874643367762146984254156230474596609316950439342572083579628661829705972752940866752394418959773647645286556534316492836906915538883494285817377295461303121087937714050136471783773091812353736008017844316673900015514344612674352975333473186861253995415930238133815524796729979953205284778128098945971137309618143304793080627885619345677463961989508635197735208232110717709238480675571785282529716257832695436304779591667813966021698517927589008725701303975985386370467623635416570283857816820933896466004165580945909248630476218365412293921585940669329506186623163896687194889260948638382679267627818706485246392276498075718753190218210991081505752029146572158283292689238511937088578319587269051549855386675542545023768573554926777796519877362576617332664575263817309223140438204192038412257026039507795387048446150605845389820094728011683659075354171582153020538698548113379900380311653685675422211834761405206997147729254515927722128523554634155133157464346561199507543581701763464398495871242361453786498986586873801570064616149395204578514312891777150650180341546685611674874586337783840671396269336739252802706923595300081181479298459238412622872066397823209886141621307964061105305570793563747851935654347303126628346892713415237799332552401320365997102306855408766226616976662096781306241739968101648789306524960778176755093837378943091046403034213122975635308987113295910611235305754052255799851235302896790375755000220800771701038286756858429340250914372037171652493648194484294637629663795887232218141877929762650072478757334968168156096762562816840007772257660460777334903320036552286706974356152081742976635754570680741252365204894109368789575585460967890720461689036753056349097831959946025072912653671235045542471184221477397286876009711377361127456767123762335367596395477332399480425007643705828943854728719793350716265828430215609176345635004784791798665827644015457257207538678321911246540506512641297620068642758270646490443630073053084372386404783902066727774666925355143571290549345720109664751630332917206607794403189652421019582751962092798982960449213778778958622674508337233972367257157672110072739818084654826057543971437557165177429202761157066933809373191636214073873374708381094764681277775006282783839293208175703560953176607367458199701872930656757161873327523149770795664265913626865537664729027926821973649231814482182064996178595402496999036678357547814642294763238893984056104383830601956727755901361864927175709215025390406929010560470774638771629763015805487965124267959687766496979733856258534407470197775696652080942319983228667195032797802093376726642197907116432407391182715199187614219995594967300094495504425241767664403928874195107465595900286997808079743121742168122040576793231806932489439317097901417701587339959592368088669771496591579760016526236642704911211882430094882763482040593594556242770065797187004936991496113897765673917263847784614562739859365865251365566795498909335840177979702188064488641930705657893669455385533683523647045804417073750577260559177216856879445867342974219325759784526573391749328232480121187721431120344585160841170290577271831463326160106439061241797497360931610718513295595720433965614766550708145121396186432938076032035005727780973104174163704623637163417706629214902599832432015115671557087118683802554023780736717165588570898456597625056007650896489775424970031354699985223738636360261845353751823142973519636245634218977612990855741290244565807248712148243876974877290485549991106181526852413270926439906775085655411925374611165774318471714388129648849945577458018616514301362413141338829644967384132528881746585889503537850106087281349818384644228250260681706371210150585357010484411227964457999798483162195698775316122632470596240732659913753531729171318243989288145686255563787962215632178549813399088534366155861978156934509069814030490146081252334319464315487093810781727610555699474326261355532840567467855869510594142667223196129276733750071352589681496623103396287725820435763271649998275026849057937184901921152237514865570196387634892388687526849489334770923613286060052768183488561074564616570434850511024355792063529010136281579780265799913420405917697478275746295097812853864846425644999450805379239819842524905182101619527873296012459398703365274230127764365460112101937156796037468092400416968373823913289757175963050739397016186617414446899008882735235814018641155866342506019581323318754713944168436659906053409629136052033119186442884313780793412295458126071337155345639782088955561031026086573343715991707616688150867572144992484201432700974405496277552176427136835754181295552008000212436996845212602603748248260156662188385433454520478039265859540203030613826210036893849754256128686668199970485281256410005085545864536428670122139660818324093536904501525564253800921094658792060175261324117117304246745857610900825710192239132330979774288077671966849354377457738383404860916338543918131695333481380087171227058221125682057464569936255658127300906190062697046815474452825554727067985931384147185249147386857152024579506583683222539706154897227456056987456690671654546107411151105857766601337895337073106489225001875893976505670461843160699601526955912665046755928402958028861278773733340284447590751516342789981899085059909658427243326855762304050102757347673009704958013724128537588854547944565389927815091897522443749512704407390930648292592689714352157922520467516901893956551908190350837436288544295755209730348537797808290355756395551797670440657213840647211811739551293021757936462906861160615278941067641297958615865527203033442431318140513239813409233594733178828676003921965178037722037351345370744872952959822918523210993630807519697477198561471228179468057204902622579229776360387773338156354126776661389190468641364253503522708962049285220504548091112780578215076372947072419705806312254944381592331126071740486815935862453909265262867483488225555573900745325962326112920760339718139096099156520615721974025596667609313608228478809506370922831967587956120969152617685330134019884079105232775039094912249813136644458284388399071867712706944454872627544029565128273249838009749493841918904291710021001868849536279439392298003618508366065567776272659806956026144387358251420400817947277168859442583227260682695114144663012674298622169533320145061100618449351404146932961997676414243950076455326170302164322570902927401891267255945160815609140048613700528366279779138359790583871424053866136607150594375876445445681390028693816508880354801471290203667501584449977346786767260760004664587106917606985353092594172664089195503728389459110857431469235707338227376613052858218632481747791300664330637106957700804723324889975949129783804497776870923499648825804057394034449368882165087528339983479558540099428448568910983948102842787301311326376932387185281146153805886631467254717404443522781208097681688479249349130593352888745690175786435788270719429648449525944825815718978367669865775734699343060581886923786081464812349877216692213217697189128757103505151024205058343643146899028780180559049353913119783340319430619933405488701527174660931662164222324113055513388886405693911989964000518857394419885417676462503108893041270542155774316713571809679180672704549614226115786624694987547029253794486882004568335494228571579750259024080510847614823661877591702800255683320314423821108412335205073871982615280037894148200277594713792609570545446453141508783872208108578783810959131898404497850325019549770958117884982347501014531429781742253641819252042406334712669541345617889346127522679367350279794657982405100604845227224818093633447432590345862031006024604375560353955915758758241784297567832380640119930016011232079616090297051304957073883126267727587272973812011782661088633835480062806481598898079428631875785673583551197091865094404527600563088939951174893979033386577566488251711087461884958610409387725688744157066176750802521843076956586942762210753269937707276076489419533434305446585306218324237182507883906985801863375042411007632828273597397053948573380325595826133955693693646749530873553555510069944653009969343241998054103695320032913909823663818735509231399215361258337262014767641277757497979097439160964861296161339224823963152068750232151319189663555328753868896675350581701874821104580351034420059082480689266185903256611321520154050986351810504957615458880068557619374516329371900625905763251145608807057080595802372656363217064076194971268265094392433312173474315402551408995957793832816476199049187521777710355273242611780767924552943386945155863024289459417705577774496051780653413769692384241888262293248684184204090801875370780543123657238618066097945045145927121576762871277659667266099338182173394818777304798791114017629885394592985816690180021702732011017005253796152050066411473473134030324107810951426882483928956089191147102502584018824575577080746302501770490710499697556606548266990311507953211235361345994636075052377000690988253515334850985856523871062727744867892603305577805870104313310738693893033395468124684295848907049821788609925132626229742033797920112978678679185959738767650677273300133794174661622614663646802925436263645307853004889716268542009544000485741870311650326573854352231319070387655960829933693859354041522849221710227475117384719583722056080053750168662091380774661473524047523509931430112666450760037894437936375321893227380402829590370992911741986956425794996491760658267632491362242208272661961572313840144003390580518561867732725248823425836173142728793941719083886079611187921948634686080765698111170529234025243324642933851259222113395803966689214134909465365087824040865594424925833626852813214504887750011178044224143308683072103970346612664916124474626639593022356683500947177068636107933206120093058215309853382727894390827040861554619650452538233146977952564467311441987566422396326614488706966778751814184888978155012975562354367550889131083136551473523855719712960731893531139728756155056250242383556001674733334602241668117873587001389120886911881163824823518677052469364707714645762926221465274395890118656669920031599856012036347817890666860262974689310782083380856339945801306626505190240526168907413171278671969321546909030520534095234055944950399912063820479130819448691778683270247401411710678794074446574975115046875774158414423823354341759536946643817974409524866465870049718345741267287764416919050323472526604720391925065177367207587695646850431346090258310132234157118141976759032276098207150682338928579499520605621381838409422973488994458923392682392921740514142958225620806126320559530859390613132960516272034204280637139139628842439291154152368201619108725773837102057989946869526119174481197295629441177754147185106766434100279088056499807451319229391473271371009139319283950833632908015188479857592742112418331840826003116984370809544416477126835574103972184924624454097512756440158175630822336570875377910484362490582988751069388887940626093271106736054655007822950908040130457949556593822936235601081979481698859360849426476463294743703578470232856260167240890583276673412643963003840933625462449785168794270107859603706313327212813010217280257182315385802121185284765343468785310011760714306964212461614427848743612690118376626072905078229788657845418572409080733733785217810331400886621027576190985185289632746539544862467028869594313360623333082918112760450666450534499886720487979384415599321303714924373986334517869321758961328216885710205949277579896035214709242945586424620995659715114870752060873799402122283547588161635245071848488213715058760756973179046558939961984156710353683043529544113663614051472618391625380898487048451394788192423404034700799343385374409855051148956012932111465710228529902882017192229323488658174381051011321711947605186967164698654209357530519198015801139029411562322409869373516979547771187434975510692177032389371980173240660302262265712593114031592424670922225295069942662290392853748071770833789588235154005298407122859089393987751771312107249397312390024343772050326186959069212831370985124529686523590613519815285215104014113986007465881820561492615929781158788283684332981143484028370236248778190461366075106546967994593251624608046915822729571669286454024054237783564674054577897358332921589201966180890118947506196081302459840968892344296866059143326382933245587965748831013142044453253530221767089726511565399373990506992641159231765228680194438830703006619756882043083257761410264725075253862915827327188886868969351328569975165901946224156356481734920600528924297700602089428399841324951266809507121378129815574158734139997519119509159675648272501646268599573854567619221056614172031373464879849929324541125828488093482629674092068224738023664917800357410684731668602723392152728632025442321916107341278705359981251462322032961130399682432924213267966388189876651250045485659318280681979264764826766004554473971448471648607602983924184850014242927186317352435054788601450098593266562990429292559621198366030904840042016886756808612182361681681322522897995367178624263558411155357812383203945003993678746112107045347267937103122135337291842667198924785287420376566535220538421211183848789096133675009103699542438072820137176294046495039671244053295410426492906304247718195323530638854873707988494033504729671692158533763662647304330711799496931882956899607123276653394793752011914622005774603155843057525504947983536609954450574095100344413637300595134614601370913253987111786500381737542071324535124448817440798988531187445866687739439153387187088614468414637517291436512613380082183279544977911858925368341835478859199224875622378053872534436604867477800915352536593835869257231604371046413574373887647283691543106017511135501198853226402169438665454248265123363200484109227950143718949759636233218539202946248321410628818979549590789295246619546994013572335484712707995223598337487887840877366386585255095915801699398835105750747885459093631748811529124773622653983338897368156257549467518417299219817978632386608777793592218194458504820967596120077871410559384430180528841760148394980851688210120700472560303199456774913618415205366855160783908712896470333870518860843523148058683473548609089137468678235543680805190181904827761799518449275783286904631565390321303844961533443661298986718173249573518057280801895700565069638551057437945394944476637983166750360916300159803485551230018537574757172802747226263952646173924866806988037311047888509308812357575400124954084325140958560947388804772074691015499779168101501385433440171912381863029921168240477364090512264069597838513780208278201413363519255247686054016107050546281490566368129159057417532771514262429336802636421388066721856813109551887261271128229423545587458890999843717251382164313548214416112516985725505596077204420205109899822122457181775589612732207469862188408553826095046657572881469401882893410940407964389274402181721852254955108685805306337726061002885590820647302483866189139639722507318994104646622964678491343478753313606780726895102143548808954911686162452869474224302069805504404148756758975458911568930294258327768071962863934151230502450508687580041212972548850118165386646511952510801239988827982688354916346827469871487774877559433645894156059497369252112622992124082313343739159940799104787437245307215030570814733170386407977884942496705867438853218411109858458209357439007324870577828065986987368555982847255602935655162839782008608215941951232860784959443421816553790341925348873317561827792108400177660025814785079809621345584962119368900865659879435250813490784750120897791414938626178222857630890472470481477830061747149583334182739094904745232952984827705836136248730514519624932387181968696126289802105668718566429980790645455892359741826915800586683770546334404782323566582646918807564320078744729788185626383791191925459063930591653879748171087750610100524090761694677284731039840273286885964334189049351255231849725161720026452542070184534385734726404726287021095496244388063946669768865787739836659090580539816083807464642444398270422581113898050026712881789367227511349905654064053247753514145563101606185165957584254132558577334389245465423745861708403281362967834938171068581521184539682001254024680883180812669086860714921991290422897944224983076711127182250728838077609348586908425885295989340202000367886271749664500622175634660291309857400632613694071181319895431159806245315784059047635822266578214394855289998591864559474183069521974990921247883333788949661216946168360415710700209348071150215590284702191502564519542183702444711824593009093645075629985612147407655795798482425540255422519139364601706480900357382071291057417273265791933547170871294890344028608292492893802845917720954710946700139814022729563980244125225245553862784556083143350044921604163592771994586764479175937136356212352008528769390832166279044441577912891832514942965421181259582096991959537207094878688801632214972054169908804447458552283743181113804854087847921474742651335449171819139727256186576728826973941965970823812750511350230450142302945708073929626076771261923870619964946587046617545679053293582899617957271017842227756537874848533250552679714125903906426553260038986109149955310964272349467893544453367804086392118412064977624001976505575973162621935382623430867053068215655079083055254000781145543975681115468510081726164981828387967810402153587321789415410927900192419587293415045769854849737285994575992836207801897794164677854371584325040099080949771114496442668859518547153513124906137146037490277330484407017297103129981904372083210074031540177453665783981108654729298278828446864360163486600579616654710489014622849150500013650020693397622595724063147845459395386512770829565467662063780581034671955417008736739859309706270582382838536273907740383389874300167651334463349764961469325169043751500253904774663257295900646102914056317540008489249953691736025257478766861167623153828061337441812902247167313607684925568965930535597253007494687082613887464512294289656642927312465921582363543483478636499422408237361209210003951909315313563817228307899598823003987523008012865060726023784900106969594990886372095092081811432302945171709394170864100012705562460058534487683032162626971106932955600825494734652155206143978784833603488097406526285956810975841837601761133825105677725950584380872056935387981985446223839350747199497354690180564658832648824420004905394538000451681823773573698063082823395514350269685570977828102716545051143589608859712936384120814117450624884319502378616720894666753446537327613232056200351118998126703060092285994245431805180456651330614263147962104126502343037212986172829434042715337774196664138404263703593015393059296014616380643373251936234780172175703913525513850365188756667128050426322296155733967705096680616250266395852209244963752380355922911159147857548858108904458406001661318746995044891521421709198025047463144565942712053355938426146371664665652274127440412364316122416923250876368767085606704857146948396738267713063572797386577441483759305953917636196960307903800347823026384012575062705357346815859978800316562317750634366731417539211815063104962683321648620525347405067496859760807070535372469847298057328801184190310973174509560820119227666671705696238261387666586982570177947279065314168935674737588185674443071644956139794072519041064230079914299640742218431820090638603624749539918583697060220744589374471755235726284896944216897540715368893169598844824395114834216741108913326565159636923325784359963990178350621190180777610090005851398250893182703686607328525284228808420649612247747033069375744172341370955312099372504658578691530275065899868488395080131844946187989886669900362807362127239559602782729370187816893167356706783509749481887302282983831107848489695254182204298351119874190915334248376432944887589027303407797438323022230952613053167873770855269930298979783909615547254000235482008334861531941396623124445483686601203183333151913502948323763659764356063515760938710181969819104230995169556894634131707946845124674831629675058850987462243590473045595394102198175553211894924485454285361950222278832242021742015043968545504802416125174523747578249950434389910737198074652103255792332358944732794464076167362218993969860084395021432526752997103925962792354440711487507050618433092228180449467658710338548088795813234560499477176954127719976124422082618495386584217578476292107139970495047062721791521845862420545147381064020535423246209394439135262814777644245389300505949271786632129470802008048157559863372572760886951347671376639550750948153542808200787290502182312413173601435478605964692550306705149150797944444460950560354990960954017506067713622750160899151499299900511199643070904109385297233906896106865818146584746251602457093124466641076117160215809355317913257908440084327143051333610582782534035817964680603603161410532136962492895803278109494201450122241454456715243911655738477928412402947431607305248668014190773150226859565331207691494553815335444250492896408481180810189550149817036162067083090694453579448432156769196294069150141859602219807939021965399425174928783694648627451958007667165138944882800240349327033604969396491522827915628231122402368403139741890390064676341102321264185435775710100989953686705452151090125887865409296144371043285539943117250430531419445844850506225089643585217222398028756491673199469536670331860048063431952062158799053678438786627926733282847500322645877719129066204524014834792489475715161048754616380918394979408049305036351006362964775409884101019515045936904383021254741373328840780714528091089513371955195491595301493789632791959125827294595491689914588091161032334242445465747489874072774342851183401505865484326056415075820519801376398710122072542262985357005379468851305547112385443403113154977539967032033812858225247463818661087473694301723903275386582013022787137236733006384398289178790478143145559009032637581818195969267432562537582693654001677926080112282160831596445614195060677095299297859280376142143534362173944739920653883147268195582895621311244810181271781587305574280515145324626511103190747606268577453558126172104871132034662707105973996672732749822635997835096877103379588083185551252459794204018023750790056799982629240298447476420399880215637187174771540648288173356560196503248845732073354546292586233186053943974494517268163975834450219746633648602897610072585699422466758038203040853406383843941076844786205969739807655198048484032824394804000620114419768325573214561476068048761386044036721609493486605957757574379567555031668746670243773199254350492880062914715176208628286834687699484911124561447067333510003087104301927863860475309799685469991047425773251014115794055485673814992292076175344374215028787839618287561180334233177675400727170643172881313054404114255680968752630508180744051841509603833643434516855609951314592434201287476459020284050787843836829219630363912852013915976238911306043235738356400167881627397051907660617471030726610307307408376966156727722555830282758756933066474345325475080043191684313590487549827573436998936345539791594503223886778516075762146263282840889297714876260143118368926547137144542716292532338586384091148017565383090879031712105619676590747501307948801255426326916309846410124274269914504906352111834226595093881387935334853354139610598562406271285352358679211411761412447141444919582019841715299728235299543020591774195631871034851916781141337030931794610979866921811921795064042449855328448949388522742739793459240175662536244217639326839917410612696155170530729787535783738050373500916327620528655693346527768316449351260400355999437529400108795844295946070985100833560224982029166543214746841184641895561158430393240454573901065458238600890940982405455067234176548667543684048969192042886928202484743992819140343729440470938413393512832184138041474904510262073743607330853389277251725485823168023572355403743663197522143868315532491981124372551319734449499200438817724680502669661640912292552933892339115888738293752363323428292536290607783650010946977890561104307994815400971645980684447537789795600696309799522705707089031407852664475806493446930885257397058475411831571602407994726978586956942894047341801614369090048292123777867907782322514810489671125672442615363334001946296040708126880368522313527928818427139284350540879522262988876224553772511555841557048351433922550529089165049250137827175234234732656696663785902497051748293304445480714340618024228188686748948219673058622975942113246499332970889675122920095599554684849449591216160127675431012001194690233080659043086900452796039882772361988195741979801734374815273961992495620179142242405930243966684832829738649114333073177358464582171422014273825965596021171672145191557350817079237112426619415701078947572298463841299653874178242703156920841425465710511784585677634518467999240861350963053499281162817446848907412766047156897156776294768955050292025773498948856250391307747885016958602170150722537162555510581507912955290834713832192827006226495459082332457966773963977605416169174008347567044910833538600641361668810200351430913877586893340305893914985081724508533223541279189122824327593107422529330957640574632748359455150779264621486549551509904197478221988877583714672812564566155662067884391834770989800465651950275920243644374991042758134551098161812390045651018552388698965509629510079778248893654816521778983530916770192282209288166815900589316536589393714250531434793804571289344441559076291232592387478807012714497878540212258661941375493793976505826285027270526326882094376661578953031178980157064218371916221388868750739942248501214029295842667320248317513185168368655471943169861760609445910525261814949108716496201239734122410058958417496996688528402141711703841738053124289634615602856110521866258932295602223208354227940651192230955115082621523532209918448418344438326144424082890206855242450802764025996045780359106567572644593336282088921492714879837260870772081381974568761495044185708963360188997514278951312179782190184583734614337866619835781134191575964841156089488251167402070393992546889958934821696251410568283410300496281258063580844347507616688958372166165952932036600099028091327017836316383930542904367499166776173646298592963658848169495908082406162489330703887820670496119312670373267353307048833565492182930008077671429644909499058978406405987958393199436768803864752332561043304011405349785709268952464497993152458591369715274616902471281254268481175585442906902540962163130604728369266333682635341918201332884388011937712639770529161574622862943658106177887659367638275530570444596236793457891157228055027519331852364715648335050555716134006121413091420000223826114094154055533402820404992509297802206806269122239199819502645934690615706026271853673039181159695623395706148595986186397621103919661701137823647789454898804845616840455560051676273259326602438543510614472093950098629676302827061438255213060101147508876501592277468813874629354975536168757701812060134137083363637565236953313344193619581151286286602033466688386630492097818250257865497767645375443558598391180805796879307079834935837175055755273007959923648271290465150879438044495177876238186876785706598336341652037386858763588368677112623930020434054704694020011809367134602058703516842191630643376738579421636774270323493161498800579191415617589855012702287314479694256550409595905193338474824497797379121914916467793527532949313622391582234308051213893072122338748133201061979042883435042876894898462900398232052033481588176570856371523423908272848658446503666198372438623941426063422396620700232511002266615313545513521696955343485495330758053313347084550868507568447881792195051528301177864019277048411969837867903320088687154600476442921753983563775094242972031654806371608959241992501503020179878120277963082334661603662487104056509868276296429521117075480318249528160469601271601760360734157319653238553426830875177516614957344459858478171526678484599966672924689917661516439603750204482861662135917603873051323245507020361387773751362093947363915956152288099007670148242984215893691333574879792092473962228738732562785890149443039611951377948757793344497847631237873545283458538459363462164736647634414525115632111863890570855669963101076709696688209854459361288608466025321963293795719753672219273741480140994131087495157727169768685755710798621793778586396433740357532643326121397573071019658135372976171569751553777837600702360235118515654593797366039199177049637716121275182596860072089295307236475262496779689932651084826857714305578714795907893246131462328440063568673530402280481097024220215178566514474636498522209648308745647889050287986912996378411696487642165646243293070433878465116500987821338316104257147431206834692019384307031814788539321819676322546098502630307770980221224268970999631736971536348160773936879633723639152201740618184754158241418059688358096274767931529811253956201419510428760741342891400720596715580741376291169888291771699587903492819426847305972013910489747531412765323801706381059738889316064879372135919880319663752511157385348150241440789653657021815174096686792458772645268590921892847045001454111181926561769012554688880758178281601467719578937740736405092905647047291754935523317731519087269690552268132408047501557375553014654053393435797232572867360224366254623148988704031011931138622869543430145238690262525711386924719082731856280407627203139397538913316346217204985964031278210983089262906575671705215412703415857981213880100412908130415480816906661024205501089737869871400499327420838587768736770217488294262940485082758933849472175731783061866357672021311223521118068241660689421634305881929167710765124383984600590188874088640567458419450701133430290890365164308195459319321244044013714206990253390606435957344204844492052901589236104132917964451246250865126920328465533910503225869732537589634880204915207255635651103063248673466079519477902738655254307920619291784588847042347109877121138344800374401804570754559437200259680886763422854003367072022972455770556473597246257219279106778137064342919959752436970505579800828467487732764319489901325385518811094639534857686982357587176223305230790538860772053172011327396509972134558788077543772014178787795714493208757263361298635501491857756457782935050341147779395786766128812079017343801638868647451151638948692832321836220729285590728544917834193909147009357332031995684543930654907217108430536265233108497296042501542083728303980520140064831636725031997572698030264611486909025042530756764747448153846166193096958335234474125862708185271763680152854197619780912249644403947776971896787209995954070100623041416280083954504985226216305615165357685011876587682200662451075515250710430259135151582142483717310163648499206695292764864298576699359415669362255024560330610138579092460643298758247854211179190621505344574811891969140932889413213169233573507264699854458122800380822000055197787916450469433656916958103641078225846254622935139717101646309426036518288820763487669164362804061367391725451073374068359412033164479576591851993287743777466632153197900863990038774170850617056189166513023966320732229784737666618167319439958715727224435355554138594374862416223962435385017535226528861858697230619351312379303605692766351428100446495480487202254336925408247604052984306647492289927315525881202825108172843175837191709953196756084044134715377824376947661703165373232658512686478993556825429918647504040789193584043801169247200204671036151587043039907164792623270345835073532314209932312140002791367566539544572108834827094858701883103076268505203779079562746457982616675459302404573920129122684598738406926945589429803505283556468689369299569840762030483495575177687696706526348536597509465310459857622439593395709677751628627791534475633949199143144393047648501405481042682863619869965518140183511576357385064826456434816605028808768802266006009303289656644912944816518974511504680584243892701992057012466843719601499382007058676019260442877878921306987056945155976566702271063787565934546996490752766041120426352067092219643876347758110380255003061916784131536462318511871180064511792909224302303892726007976537951937777932040623623491219367468025660874165965537052400672217418009794594191333502856317875098285813391119558465388654965219867845585674448651229020878278483650739547318253953936615218362509499245428446853245024956927529981778459816363279462145639305088989744379997936567771997195203526077984070184975923316672559021440724364231026739039689085775559565864821082900605435692025239700799012468987731505674289266997319518337481805169054300388443521422999332076480240943573145535133071441956919828273248818497859834279139323747555959601196192882635832074855427790458765504815889350953847623693920480272494059387748889112123553236204706126672408972543867579670954639294819029827023310670785369605404634887136880411264575506780898605734001481527476303878433689883437821894644836527599516945811857482345731866491940910013758774679908757189336468761671313245710967394001748238769115153615362561602342974659304684749937204175703095612602250042463021724345766729594494906194088865277014718711453411884990399052259681299807292666684606574754361984811048406637924484987377182006966999092140630315113046720557971931604121198623209364786304740323664338206446293576491549880466785707202123863385169533904075286605009716378371649941253610152788368322668838948324111109995819537245635743645399500618098780783875598272633430270457706489827783736012947640993158221359596014054279481187464141896402721070211575916198267122538437119607383285721300579296454880645576838413182058935583620873756713798432738735454383676320435801607390040760939933409140786256269006391972467430318449691059135684088581039976198572632033477346555665843507356254060084680456991472926299419457883851262717723426543993048195179319493427272404239284714005364403431163225569174239588131694857362393753027288446031168554360715575765697328416181766842155033577954081761035059113005585073373964287089978966194884928206690616352009530173052952698869613856499811827095524788978584218786349081447221041637204330921925706387942647862027026211946993579655296791535457653819616308706153694206073063187803428750413002962169055254129969852942205046579331490097043600199276126102113678033219515969254118657353561269874619925566047891895622369893883092776684634351168022902017498787471403038484768618148851609674432519093606590556617808714653237124346342106266880657720540742345072228817760288622373730328474860785101910803644115126583895996950256240821137618243988649946034153437113684838076276655793211582190757296180369589528429782958953430214252529405733300158929349986680629900393299600085775497462865152221297655868380860640879919523300784304066351843991198404495792326175824618161654952223653363487978897773456007919479643166407424243749265836812418333796715724915246964160782802914601751953231697479003864637814443232400807012725809457100587836171178008956373616070282496875549727573707479028300508356455982558918890703557149815034621317764238410525300713003414667613724779498220512502731008131153995640107521788678481663592002929738122315468225172514369101966217926057221199174372978011036387110312567139938941721796239949265959520453171653820683789602247339194345594561457220528094339627196076322577904171460518478999850407541291686838199042493844886336925518318632525662403276988497626008368836648439210535174579747209812921650777728405249047969332748626521173318751042581084229291836942242036607525154654467665861710217565199821402567178109304984137108539851794782722056978933433589903978555412990724038683875862720862374316452621967322860524498063282974791633226072398488571096262069112635847605478220070515553207822634052925291157886303650430213663812356330997706308745770745434510609071821392229970661835373397262406770442840128576215226825120129588440030090991171448663446886449443990879004258371903022183597382270180735653713950455310615382668781671562406487436287008699492055040044507216271928956136728258157141150256094547424943072375518665300803511472371853186073625597819962846486674532584032149637708514898413711550221950152032725196502013502262918095937079741404248777973345199320583524028116118272912349110069330485692212525151465531336946946636399452384081948777539354501616841431568920979823972257123841527545488535175576306645517183255282049273893459711134465434068257759665012056714616060221583776881471757487280277658071726566711428157436182554431116237248424774560142651738272278174896359979796719567238300038496792618009838156986584488998347273854297593174673249758223167607961579617616208933447082431787396029269911626919603796295626475278634706964156382932078478525902011321768557568877847843784212568909607743673314927352850718039240991359169021665042492439200548321655342481708717532253400936384295457377720208462003502506430864433247778506602570717109707322633774226616933524938426087095721800787506386106399202280623423971442048380752169791094830661308567207130917661488496459811734847622345592556060853193007738178179746490516997941859667764461605608298362196053998908333839334461482667855384554287935759109845770767382478649496974757960864827733173969536748135091818054379507037934486872242201555560802257025586225766062298763739711387685697997813539583547728090104842505396239985729749297014687684718333543292552124641082340608259618389391919060840809254765989001615834624233323103265233300283153934223982866555445341838600460336181029652466982230611642309110962286517804990595065331600270138574084248761473218282546453525731168737920040665639565069693649891271628305112756832158136308441924670693518055738956257551328483404551527373157942761359339560884222208941698183015601568896011064369049517338786490820422544160886586034284296792413684325515382908627995744149439316730212384449219857635642545801107139481539054618650228837559249999484684326086888144103355274880784711599561773905507759896584319450546672585839382309501742969011945385440102709977270808286966234483606977660647719911802267697173692016497186358696088361018311387646037413999418395524638264400815251336027410748776086769913912305256797646533643629900752061231682197828175328778880533660365893815391855163600569582664551465292920455481467132806932628507497947802745357790167068871449688675272067245101566715375577323816338314062856456212014613735975846284567836064574987278718138098610527374211636765039639474178477362490789857036446016334050646690547458018972854634404198002559681913001411294181265626452672005304285398498615549776492861611030646084713222115309640176245446273628223433963009516534059185887468780969178734025158272062487802159449313807867472878406405179620040383794216892935005408552564158115331638221463138985988452870658462712905338179508184132750833000607610511188040017363883125749666302271800855110884090628408371611623328313621655650340887407880750983855911692127084164969400351163505883522834722540570484602535726251609485727328248517498317974410980127611603970484522706742452108101302704161331543397870766489328227911231000104789796321376019574779594713209896899182778547083587770949560204237457958729577803064205703864122426706942746705759771713817125895377477997835658733838346124237690067614795565086032278904334874304612879973893249584769960866737496066738045749965102957608693888161608530269615796697775312134573208128433658523645371555661567889534699374229172445855521131169987650969847788519182874269577803391218653552738024390133538040482566541960861898666881864364255193683820184325958402888109921269749825038857105692031539586311094761001490302398572773094346718633136644930391161583332572626990894525796723153732488200599195056712427382579220295814493857943388156809462680571087175733229976353154721232758853871419494736424372993575822594711958168419550189362168981135604593613641492075381752989150964865702182592912655406582881303641917054586687748884897460357610156911624636495201376923578785875855193010760624244382930343342934115102702164687110231479650924616045398110968652593948553752652290527990994036497916506420706632325239832992424938206361985929807267233175044814512302970482313827657591332657983170119186602212777579115912643556160412353669723988045039366750952650905330997898568711656981379138159723263569927192308200775471995175527872780843890218623049156679633340007433960361801357074675373401442950233324587789602058802230378360148467276063961862367547682692560990169219112267286047986949082932889372503776010386439386168503598176666382222927919712375265113577515764170123714921949798645577714549938874937153367104079611448755600885308773965813487461994323264860081921291256677865675382306520091814108544101935862912689323846435093731195410659006359136742831672082701028229138990571900311883834153343279794030552979574698380446369194620082038982897440303319751126130369379554372706488388640984638430436282488903548468371789126061783271706054732937489619326767367409998402979221585802984979351145150359581625249794554419537959407911203325015839324724366175378933280509363557993267280582939654072340885311336986388317658989617544095549529786664559628725717010427509206491644079630870515202250749833603634990757810253506696932426236311762110301894735435812118247113534569503874377470868036491430499687190318578339995659932268759830465363520408822326784064062469987428756913546820633919718418521091355078618239718937038547133021764444042573356363415661821269923270401631795796466913910903777112182544325936263855912110034765115868718148594867887140016959286536369141494501353924124979207223458386127147942293941242348827214164063022169795620977943349491103274657952538894583677793265688163330919070491268343747913905384366370620477349898709111332786302365261787147944780709707746826609083319709797934689451551180452293573855683718302401050265172814757313790520407547702386699350677779370538820443388595138861568666167898481671772843866496735409194623384037506598677291683593210348197826490728225435072631081135404655876719893924251291446118311797745090690322366690184631189805456003932005965483377047179071660673555349916046778409826518618435193005679439710353997040836577728659580634162868165257094996887609656183035815435518969497931879473196169141897876783714182406984713049576701652109663613654585453776576346542909602361805604797775210456637817549183345330196207135704522098393608643293334741265408878104644865763094106051221066623966291640741993069889316510112456439790327349600354366071232126210996029738205929105972729961384515118244232636247988125148619767128813293425092484948916006085153663881240937517499786829142670648553942746307334601877468411803499008002177993248985980416938532123429165514638032022754183615684214176417568148153905828281803294165204880180605850620008554009895141648461467421401360245934258329343503411252505894142436989176720894812675803640558641611004354075262234250163892922498930591842589732409571514974187378792577048172680076653785889300132111483117805885691618467328296604901533967325818031987174540527273805307409516252559405591826690761805995049360480681900028530882862991730238423923454038973776047113584318919216379666976444084770520845260498629954342698783205845648160711706005218547225956601639017390139533479401614131957749556333806564307505660283157524722622227726851668434188721931079951441391390880738206517877554861240743865773921734609355283428336594784211018756585934849148918224713280641295642937124694715014816266911097658313525529209300849793685875559233245330475081775717629800092799150852703949468796077749374413060698443000489025755601254971624620752957526520687499124687254242786983553322804816743492163077247162403565112846503493088035161015458075325088709883444555005936177755598089920900257692834764355208170800900516742704885022327111426540763179253782922961339654460071852467016654440760280165367872179662732154263254520956758104928419839688476216433591179484717536689717872561735105263800039679296200884725599156284121965496385797632503117236491680429325654771879835954005387490261185040277910436821307403654621423469285109519392613607444474934557152433514078404078113485173485817569621003534361335483885970182148846697081002383228642734973677010858314857763530621051251607967493853333016741886959231553918740944396530179477710762324135931990841633917479247474826576558499669677951231902919815428648330567445290399957928884255499074254672754371811116026175728803563145166003688406401045956052907140011813119281225177669314788772256945481439495267813385106078521425111049080136012042546449688835688659715917868317017597493090889591597109688530401066351191796760106997460848543434614965005190528682129126823994853570721881121906651563393356642038778472446045813929548877433480990501533670082169991963207365754019608731135168441274409742198621395381746061164453929544679880847940009669540227552904366273512745832695871810899557901223886415891272781259879726906650731445962016019716086441996025444591350580161826242744011377284346455329550035572226686970186578196819600818521807130633902919099176516395923732029703435436847329360189732897329714640493558964441341287805555215980149836365547707473933789716349053628912929246003004714803571766046328069252591470851230617869008810234900968822949170585037597686017523795708719035495669223041345282921877216499116296297080043515516059453530665699141236338955094097184492518526515080210428276306067461706317246651901616102544204437069417773423208886187801582795633793389199919811958436175215331504834100341938237983463973899087874765964496544777713674527892487016480303266757348946797844995449571162806024621507360064390224677366413523798069895742776399306621667646194050266187153765994703089621802931844030103625604329269273014226484517566015724467652401351360156842877846259770208244462686000786195798549154636482411378184278851113697619692150505470029744535139338744131703713972009576795597034458765394737465186544843936896533395283438054289938988571904440538740379289493438679774267782350436937992211328413318925396209442467131546946136300362337128696905090028239204745866266855999603512670670831643513489676233947886938156207396690267505829190782941258319125068099694260268966556913431756402387001279767895106608234675817797613426579742105989732813037021142654895868041834312369777998596669791667027516625910559841405140052285694547223237260701699723711618063610226832498149849290954819337631572699734038491963397434491572766622922313152994936552873060172873234598140055926555247609392469122534810882423273161338195703055226455629047689779506879053514388495048098787473883956369857765729861086208363338552880696314990637509644463225883132459417625750096523562810349503676670587904095594916125405094276725355246771153280600641691075558621219048064280037012363931149408539468349969749477678172612292555899215579998364929132577561634430200159911320359368068345894443931348254955266817624443840101216492316029577421625198091097340015940834269449596274756053112992100430549692496671696672953977740034552176149502135264374224355684627906951636362074812549674161178108607455818482602727255075606696146769662773561101895195315097452309769285656006096494909089258192600051204502149339337880922672506784582022467540893845399197311662684352933221816718552291973961196892896554424982353029095802774552150130078578340900560614424910629845328129102422194919065447814419183756386704019998049494430571723447457804788819445544230260984090773820999945133233145442378429495756554129858893436259034594039217147071056207081485056236269124684142528551842896364534791947602673138843738722175222482579319787303678311220854693745330154797903903846343486513117032188762703424415566582587863867139678416970784840271743330654006403020026830830739602085066326004025837392332623678277045162691111661766946123051620070376933095540943530251526644266480492807711546721817778676678581374214922255210165566917356512883806009296914536261901614754802364383741207969677454861247728946161950291144815024704647429372760505165685788587597788411751863613506629225300487364606118104396798094565673086671921247896800166250137812528943281768241065644673893112532377780878769158451752456913267995252524527147327939805335977441852505649991966540113251779418943004736478319048564195471252087658976503416729829466494510470176031610646396674405813987190446177167030347020039479175786368800219770557245070878406280120569241435699414160875982805937793526877562648859779467816165162098574418252359006481060833527817734228855104817208896259806847855172204185129159569232407342220536719505343791461321500114773968163257217729094957867695069878226781290346513836037986102784917195598265289529619785507042306885400889926368365617904847650484946841445767795374227716746525461195766504012948140088731091982818974946222818402666514488580411977274648429195577924228400858862910725737358399228691420269842507558709834772314110777111615030505236971118380651198867174621566771256524148439011566549489262343657206465554734924474352643438468893495977765480181235739307470499147936264936360820813973128871488882113132961445474739312901886910586524975546247268811607735749386720513715484823927661655060270436893398587545396621391042153009905321778873445302942744990284526705949137574785380021489603869912450785883534724674550571835527544195281456548479564821394236957935496523238498585364471422110053394578615922780728931167010501704480190740952515688391479084443609389887908513536793243924382992526204120246060077567070189138608911611072288631088032174394689809656861300495185606686900010308302743922499350143505271446790520913578913330855496022269148914132229452303333262718820247688468586565373163314125017085205087937429862847612094453661435387059476574334465707231892281601438870775718247551377987631168348233680123982758915490607860996182943513047977082501169851387679097523644935868678680060393981685857290340390102341825668985873426869080099306088443710956199412960196376352152540847920973394207409754248269554763737149612239056696861130510850831491890900001906787460360641451603154862567813166652528987268357552255091337211722983196646754152493538494751441557634828757797574010625374342755774142863083071378911951957475079817219210598941080308375096583669288692583993635884896236525513832180324309826029215571103022437437280497294843272046915226498695507740469512470496392071394354994329854930271668819826352986623589315476867206723656342989959258612810683355856562333001375541268274248751690989106909613453756926205003148525285190298568496046750081642989590652647880382122164200103529797319194842044215022497876300881129770131670575310837473330440231003164714877676118015839507248141812787173150453393973175871420580773683638943839575000642595069164113792796875338013962993996789458226331519346510527655703984591044222012271054805899452058366138755465331054399453822814196449671318640605413810049762457249575849215641587253813922949541785280284786875019844918453573299049557117414415761861465192355726284502277340758825268700766687582894591741524125834131208798706688912172557166224141063747475175048590470478830774984766706060893176763533784021571969018571085307838468533950266974572355086706614780681960334006818118796218067226966409185825194174493267213178964821344876685249425255029636944987885990363645737590906534963696391332675156584211632584059411810445846908230800867520174818901473359142689874243177113413079350046557944369100305112590142350486730782341185890291121191370327217561354702553822243484170118068076112071515460001225681519091583069905232584523322623014242690558208354503939819490719857225966066344536339588948933789209157969412758075199147284532550118464517619226687226704092711185795644456646386708741285532439083895364455597124269930842726960899457744519857436770236869100382228425188638715841640014538572875036760747360887231611526262827758066111787439451303055320976234408160873206055686127066256947982080131424220401270672563367511365584332150626462276345363712453797982933865559067825953244753139074542066541047968158215817640596903814158373557713798680216051302128754791416714962235367499291628520119983858638157794004752710629748438836364245438269904607662677983704930104115340654691970654813625988373104275755860759186815005673835881693738361180268518580883944198985490591025501721548271082508834749746846158815073870138802036884826101297104736013824662802155783198189615626989828100325066949580518959576327232591902940706867383467426302331801177391632298530597501102358704839498341053262006513379513975434839387381009955419281561504663028380024038694421143893613399171759586012271594830583257872799861139046504984209568461970626696938410652337961748980284275275928996484377598155310842173273355434399879050228093785685632114763829843242557293353434943097009719731291042061496029895708554827632077713566937273431975176282384303073917255101682009767117002582243937052169411821072994801199884695498830632735129855162553481395087543467879507794528375813451528136849118937800556406406255130881497104589857438089837940124901538807463114878707315406988829097167986680140129295501942782457013916619306314903354481309528792568436992975400905491783694607879665630856659950147391416686650526474642362116980790117734312506493696480463333990106044183245297163815241092720989469472324758570489174298047982975526419509891154464611375831368954217486396793429434597771641556015363591066618760816576785118251371381871376203416703580444650456998949196964399266212777742026761874596017579609409679446049323833257938429451145784427984441542258287649858344879016597974416024024592428448479152042817115518594033527579145200606270326832923694367864932133811264012397940118166734577589792896814701707539147359686403453680997921213863284854553998037758602984369930488008992254913300412184093248622098483866152821136174985972885063067079538750898432329317043915661111010447163384350215034928102150571726308285879648524358821709943772549841961633344886473993753027181494352257485490301467448615411931665779451477461502612071479100458349956881760914967039133287164907069033338714722257475728836770994063688421137372227423789056291405910789708812788914077797972327726242983798354180450543750278928074309955554125098609340108595836936082618726241064575870690830726739199540090654684821310487288786042712579095518937042442997656749318014773233220323127038779028344563571091216809980585094649916694562297604228758902013257021833493154562784490752076020253792909090151736927810930527116962726072799884071506719978220656296644801824552015996371108570297506875784745130992178508067516387786612227796461276057971036286216054569180015477012790955821304943750987762808943842751322540540352957104226548898520390779093411381056765775806921740350163521561060194869076195891350981524922177459576581273611898732456736298047618327897011016401255762404708141042265391283054844928658827432327331943558956759774605262688701275996492761062550621631640658577600944873722754924887630751160349449932768712550570907435714287077864161754060619937363948230085303201917455116788156642723443337991844611324966038263308056663764810136805471831496665900839770431299686306108847711822586052211418330947074801597844907752745336057749287509930203981758657684704712899907071859079009754418941811928552069265607236938809324032070800168035869767710523133784955523676676532474863676128919942706321091891436071945326153221590901202148585240452312559341441927440226698209513725936087844778899167505291046152076426674610264385302397813627693229616250098234370625005065809507707503183955673443546608348892869678094404372260909853477766285367441042196320786521147794781909174125895269077393033703919577576084633334356050177910006479225376800013437639964781306707448278414501699659446760506162235162428882237302299816451665769819635755286090389219237317096790792216285347277966506881930971931396011505777850466659956059372802975393393538098228418605827794180774916806142389142635942029354300472092364388431092530204508982423425804165127712669955544186864214442391893248703598789463927349078526018016337152027386314438737890483645202750139614803540309104307612569746558166093579156742409929790559963632394648814379210416859894548448298106766948198041152072797673819854298207486647356771520974071606738704390827124200248704478713732526920644255896481277547590239776216733506844302028460944001426313707195090449136605245724973041374070695741421519977503148353149267031840223427103241400685452154948896156960485296226419445881346657751668015650907799224527459313829276978524658815936121810765399861042770697139153272501250621114168171252927563859625834837225546180731741599198776479434500605425394605785820641096692718753712115341980950092738371738536906270274014775702319115437442057609436552720952546626668185373585928053627991281827930870088049391898559869001025162186776355683627558782100340246710729093035128832319717340049904984154837951639988893969238974115204223873056712302551256195280722184021966632755580499308954901803884145149032822211610767679074343377970748269197081620865893428998162364549580324800171561578761303697215276807513340993578305468726417234206574037566318233326652821992483750143494064435109345924869853460721818912465051860937110945584410029620133537558432063638752015256235207141853689985660418305151164458866267433346213933752789330558422031154306918196329105301569771109432276124539090713368099862500621212408317660582904646385406021265744123035153493276073664376367867072891130195135472865169199159842627211015474000522441583085127286906721947140073328538316098719548372364471758514124096045403693374112546573581489490088986923618196755231966779379084642065898772809802005196220564921458182386424969108730467936101332503843682862157032807575082517310409654812805145265602568335443043080485708434087236166971039254405643049580191123511705685420329178081178841938235244746286430457681141571652572982258976595749373996245677732202724036783513707608935078950701804517454713951825273001411979549553822627800257141224659318812603567006822783143965691881910571614441666216975816769873071386838609735277858292087550705421018291341017609848840139702224760569034273843942941839320883210239366145430996922130760459136290514116915244529941149281834328398877250699063297744242820405753044895557150506279727534757892682683210132663243874339986789421747647801177203144414490638333148368445674685013695984967680728780301274087200567809220882266949785543198195521048313380150790831299055758275522737924188985520093661514422111521970513081926188552522634688941274938209499839256181544190189082662353321352956025997688323675787182579375202802509277503176576692308779061388253313467553702456890543695282768231355473917261721689227336454953814615166597604831376294156142078427612484406962722362077379482455497454021903279618089746838271908250991809935432069340916309648935323547706576979282981863191686594040859257909154273274577260407451566474715612056554625574102242282710987040771166791794511760881983367450777072826289866081367825179507244913640303902314225503647274053815546923867113031032416844368992404074982755735585935308512533798158032766721738301365570166509472636912902729363297616313724809954570677350389880611694881192162620561301848694927676021888668676667880205977271118774450993355150166760923888540271650448656996023574583653077563528870546583991316616717209433799381039350183970212551801199903281357146375230705020395222316053958190937808122811183556891487981313698458517149606583035870863635082915640399969375180458180271297857330991926195614007777100038072978220800632755834941882194470614726435525965432808753841695406652732845942959431800367741551663026985429693565626588236806818570232654681024323392510636532199902359480493329417407575770970140700593341206977535224504860842371035336346277303852208432255117118684971938360681786498004541529601607641087005565669140473743086895722003899507154893345264907495509984031078387428896706219588925454037204814670681303038337331069721920443493708973068038028404372378404513777097277068888108888682555644176383154449913221191939714391927111915754544804998443655496579501501406943305211107548621029279235846457867101927730028759676247499738533507518601493951373557569687246905824120287274251956519143258012836299127346558559771979927915957836854103799481683170421012422257769618278432043782015390544014347418875590288347214989671562421668685984711500209497593120103017156091188199269365689271361769669804552218234308265288894633502123062300728354593279863450982344548444656106455604129084260341965142465456406190628635039779647686979482299529355004048720740725976127285236752822852606997800719160571801364523810238776005669298688261479774760604416845830503470402722791542923636852423291601065131196054121768570239197019261389128298360081961765862629488947709631251299128887285731410232246974184283267461196866597000600784165070300745535191232973850821659186446980771160054417392210072532477322624259358303292663098625206230025271811579910368464135301107162002181478735425842688745459986891631304668262102455131479156220389648145669276901619813618618742357081035692941630365288215726471060882429713017843918362559108022873902675623420654092954301521380355634748855186287247480617386483047200173215692984532067849090567890066399787883265631358592368902480263896454833750142142224143642657446374459126375604886970359175463640504035310198606535381303208352100249545459040943332931956116118103134144690720372639076853738448624535511296041735033415820803319317981644503389576019111784254584519264216972562853958299505118369353337636376434130796720617654545623622560647236101877857862220996993310053192658254613835467894718674492803292393288751049155213415158215971444811903295751309166854045291806646811994505341392271631906267684088823278550682371167331181807925384377834803530411496776804276170105574740373792176472839964103904988276582103276542288147791965143952566508584481255635611329543004456606887914493389920264277410646497380541346206446537979173844490128060198370001795175684618908758459466548337440985349781037714508397172451335925312847178476024820945671869651363469610873576175708116373183251570899874199798383892833980889110943271793918479868268153994929304162982065697514964333541326046269513065609638035492604734996354696562740871626759775338289007696482205333744289397264447016535604858423577972598822770476004994541538971999712981314937402334139264492333437884186507113662458705358806372789552007718405689728935539038077376633332959934956130617163562696552989315025338540940682796558557434245169369115108396301236749365609112402395556762404296601964102840737429260064036557326744801639065046829942695206215802850505006957880859929947700373872373732126388923613059286147394829158268416013976597808937916477175231464306049452334799420229618130516819850417537887158597374018556035189683918770289247089484605983667172106046292562438989848259815249647798281118759589783345008800885838624748920022840469115736570590863032406716650104121802011348737201498915080355439082529697214805144463425166583487244909172339031792770274389763487734103121294509752958824321310846664800173148633070178731049372374566649079388129942252512576941294512426054314036622084582374997045024701304502987661544150074782753117461819570444471646294342373493605826229656278292371480361133465377697212721956766329738339694230997352442295494304126167656298404925394954592062425915860300662168899749654756960219904282946421724366965988807563771249976378471307931368091542809576027507503962428532903779908033289588501167232121979658804894640099955196070408587076366251301349304287523737417302485707124131781599722553636556892558444679193987007939943681109685321818415743816102539363582345958657017297389513532588899739305489429802597875109849773656821499617788545379546746210898479490173167033590886520141325522842879477945385181283465326718085802608737336294415473158584645295535245807810272697075364401617914972647085830685415646313087161202253805804920114191999789716005717750590787982089310534466564762083688914829655573414333336659787076160025100839831717038043089950370945877133800539372996303689603313995601757431466128629977791871407970293115583435244277978508252784340644694010516669166949332170738825553626621189866085111621961626195470150932423612220576622723363226002107408157774338683844942795152365109729424727219350012908183502779947382040030760096713500679033815703266085646797234452119151480984751323821053948969754893522329453965799331945557381488082300841963628230079582475806352578518211529613593233397538077987868623933311757109409083993333581413114920218579341820743335712932184201228831668596243171612357504157802277230692824416209555674348185855215570247435190258120728760582043235822348034031305213651340727167206382749804765696708728081543637871642954225663999068568506196903708040942211779470179347525321796181599724293198787994668785330732287261462389329810521643861527367693145709978310547314608777285660431691960658735715501529498848535458787183602045700513903487617320457460990517754589153901291845232085190105109892655656108381020407016746748573782191786633574677195804225620515090548325354624771474692509342728012993220155314039586882559982337858142249704418318702641745310879083364572298347474928052607977558740374713340778308051178041726425434043509135807941678685020435147862199097053702173809191925731377401738225353755408872967115635076286138550932516327215878648252972120703941953128369030221762248122126676915245950179375734151176513049663414720551204837389288426308820245648099191504402796027790642642611583416349465613386573623922168928440629554186171736476975690487061688562610428979390778891341931080343240831539700582550042791495866245350678286144620708394693397500372432898670457300818401322767682262187769614005145652640106841531773035338486004573935652814451885341466799979676462214898716714527742135350255172236833717637909348913078942901512287902966857109738414076593296390925870961783107623272065898821666069721479435751626502046077673035838496336621775608354005502687770141973355463393578978022669244958658926730315032491298228614976472927236148509766575710368089218422482178737898109862098514936799089617278789503049215149417195958144006368425680748393085574336735247471728984507155515353487720084201586752478330177189866827782394796161254382852803694931856855800010056082301410212259790017233452266471983610485030924933965333627479866817972925119793392221237137746207868648386470877557935078121839161588201619056112829443489616403854578653158177486040669704621573899711141493686299760141019875642329586925550227734621411353493521365287663572245705180087890983544780863953027838579323239751247062340077411861136055492160420610471418009031032969214210237234459309824524643061189850211721640614814645930206962837730229652163580600665440976243667379201053735342906655498415049837247238081427318994728251076651987934577927449168985392998943540841657806808010911533020359080476358517762529892839207792204479433726066013275674535597910977025057467580483812624599211210683480948262691480878842005787982126890754748644400059040198831230726772178436148896723926817379652772161091267766220140997692170617753365386240548670299117013765223190873613476028115863667056691451376011013484953694214531359768105591345208385343660942275707436559509298608502803175848961748098170792660984007697406919010971042013514579308746940689808432625002191742432589151110127614356848035359536746474042878012213646173405293121611221745950094727601848862519134221475479576204403642949987565310285275613470310256083660068131756410793382913382907818759972804384566943919955725726792153306638323506224418726437051093576181307745479140119013830551390379684630676948528659625793353330476373679713139404494261645393283220585437929705037146508066919714074031057736948756520764836893961475798040666942840110850680864104140776041469793256759587963103039984846662872613953834419047433569105947030848428994836845157878933028906064300458122654604820859398748340302228596052070333986877842438307408974730929140566813950156661383301958148940700398602460440309272666961995211053378697156191852780934821033238827216987214159510798078795062972453666840170747078586296799215381827407812382601773355084948559891049485373270795203654077932209098670866097238521234000623469099505778978544892026090638574986900889522351133634723528688216358360950030384408857557464861829243457122110105739596217851399091059233230352945403938834816067004648642536317382665223318322951581348800320746357652827054669071465087973885829333346367990480150487203266801433641108791775271068557648458307474417517966745719417372858887508703019303201226208131189324853440329458517980468060423893585391037314652476261312905678062311415119314422576211263820117965680551172150873065939030155677723663118298753991598241551533627132137610851074971662432421033058694382545879506464549533992027750849231904575685037601253259253389775780528458580192263805953906951072739668112672252506774104782534230086168167861401843210666866874346609611169986617081954975986551922127277327034369325217980113704556996335823216132367311242081540547052181784145169663467472975395146849016973212279190064625492706450685990011285132453882421675456553260653029747961480446457197223652052568626084036790592513506449879408001902354898492176751384653471665370621959679169474323988973421796131785945254404700987015259832158883092553924720949517833611639356865839313756691415507243152066493671808872093544975687351382791395102776874887872526275841942745015502575716331177924903692280564333718415178630748884787941182514477083408624393955445375908925001315600538590610636574593977535415457527699384485528288456492355799282061913442943264083005358977362035895245257105905984022747936326207424538073453001251137592707453878308036478935940022460198441751398188044650926820610271648466021817979618864985629866283610652887995837529643795642752194705305943682139093805904700675338337423074740900360339542789426007358899180811554076351217362431167987193311725408479005609016889432701142885429940423068723222569903778689573055968406103943439022740844485230292161315817476785470039891801462554543667024275038527595119204707770563759870295306991319731575123969932281446456964521332574999927107607050237026189405693894191578579653661217088127057751279585907031391525378834328804819196767449634509697845468067746028427605131436268664366185564420607472021640917823067000461877385555675358428348176336031427179316399081933590145153406760592245424557382388946682073410239950598704704508625066268824154394850537947393766473827029473839948460273284256784105949363611263666750057680862458723737829646587265761118417891686542260036094209795344606557020656411596478504462650383927184953628712476811056322659858212121586431220080634028578521851016859079681212769156336189632626370098250937819193959957023607873096490353956104995829636241209438098241313615304272683297372773110422371973778852374787431077843666266029223094144857946221735900478446592988395709461744448490117297068999892629954361015369839190612008563980068394544967617876533804394138523660395444793940185034992335693592310946668345851027782469698656463531052045310232438217052878223113615354340699872417935221104786146236784203429548986181194862012641403774089193678797538243804678802067840882861253454371975796811892485858233174657305882240115981803543999608267195617998555472664624970162189093579748571642923883349647925726288538216538757662765990619414718094786210660876016660192634181117072684285426432384889773913483651564255242919748393854740319996477215143069608094873921848011606617612346232405321294487601448344457027128032280050127879250259240245525541925604010675186818036915898581466938459858414736176404161300259190392579809447996775085833008625876738363868799462328361503571789944105072836817076863137665035792840345674267097394031722410864852167938138910520824995460681821744104114058249586173765080350193662130198051953503009719281231752364348037929096238161473667647330861584665056167497460676433864797928087421222499906209210822094699137593625127463298941577460047222715724990787883813175598448556818218739944618783967554378968581830715248942883540842877078252345360435523064016806346606479395123539052984485580159536601834512073730928089361285152332549764784451739905745922582467643526015702240051712808644595166651620525910255887896203634052314522551639065958878277022844111894911306811903336460757340151946457992032641222992195623536573077557269046246099647637131416820481135868541929517878888433304193187438843121714635885695752901368070008820509200182267906208293378086629876920999792063669774559870016390761319367100837754065322098492722596874718852486898645133572353874367281915863673784496134327218387256572676430599295659316357107493113264286869236695601249660136882153448062544731368649251923392879575091637309759131991027936122868744957869042803171381598253392704802994402189034847096215373109680294253276981665390435668945556971092808096743223633212663219345997486019914214716242746206260148302546041154193710495977292440716287997301068845854770820305526575929253272362612572950920901090475543926609481006935319385398493795896525280032064371712833519783891332093846757828835398917653541617063321133161301960138892461765036272235151963043263455908681796967102696758103495816387700511175796273822665957645847165869688297133626710318594646592261596902643631191751322577449698561302726624837741305566330061948377341575361207906928974564249906417744321819601600908221809490050364021421669221676545991076601580914965072256693382148472962233975774292782802299718947875621592981879932090452527417941268372658589372864379402415021810136063213701946981240590271800408049675762982106990647241251000915914119383581622256537858510655237922994845783605847930210532960751635084629541448308310131029264300908789529997041063009371585967824832095555335881922315801406854830528501845862527228802326064883944903707103518747749097902414946376307641105439215018953915366276453944272069205751949580977981340598037470659577069552585786554176304009801161843413759977231445896372117530239591957311507326045872356962616640947698301784099319170937141643356639288125652551892471826065506785512445763805973860483419545456466459950002813656146138095319304897945191544431843647087063138376652421956802548218205199585082920813939808246849537015279739332630135859879951593348392807285738399253265917913232233642717518683096657148903985290022862040452530833625847507579924248458144862296283174458408288394039963599975896994912655115333414784481745968428004800112246411601628757567153753258619669483099587632663082275938894878884197959772568925732627498838911583459905396970875558973467573702936645675859592170147557128801494461873996561108725149633596442321139349275293231043056488812342881429386062493728274346666196621113518127607565009908670903095949763629772075928837616753018145353748395989214711554385672206078582290193467608008743175959831056320535480475725816553937155032270974609424233042048253309986484780610025418435942154896322310573677092495784324739212474073067398892291497198112084797068108667033571762119287292230959801454035443764736751630265066262770040831583366851930519621864887143499443732957347719202627806273778501748390701273547353816757044816703085521073060713888833127114948256294321362772350094515030777125706672221257345983396599909412051072739261781669331926042173918968530359252298022637282129835531636304609456973828119778761853427567319264178055284100932293502895368831579122689791634102078947132207840133926395744352041348116356861116511611532933323153610353066550891650704826479637191125638211787867625966508082723024000013492418464778102936619839707739186642017289465026094058840443213719698332617882681155581088782560645209601972965931574993998395265793787719039940230930301986661464211337810411113664179476981612701882555438533511112740723606161557599321798313830094803189707105011176463703406383563092913660655633958871030460083038952173730270317919367865316607225656949098073517994452322184395420440149381923671057669064292841830259505433011247622256862462939181200954065308799362370970120893692034481785351754417939978900166587832772672094413132279373304056915168301267946298863200628119605607961364850950034721420256511153591483658661463942955181631710633663572430029140935162894771685367080082545114028343967105158309893380809573618760249988177178318942886802116186981015676426970973786500217383839492711375863897171358041312889382905446738595647930338706628522180165640311120564038032518801194053350751358908428287033633768512330531615754475126771422647123886791941952567114438214705841879544111697487503204176248306674774785565509718758101180074544226255552089803954996513487996690847678127182381758034741360666523617245608768412793202372668979403808122808846878134205210710980712605441240537277637230085725259337031878257455329983451628951359779715649240694112872202000007096333494095054072344274596260078146071541502758213924637217380760876482442272813696525013898381069327943024549861999516071818267955756373298069427405980069104031717350658703289881632083326506774310306592390386228273816541714408617640201331522623068154153470002430757377703864322173238637462214353350423228052396269171946849894734579069943645810494915113997793372131077911440639367592641954062701476818048056404777083739116972581884245631136058682043554312468387866087662145603356737653258349191183398387751976440563814618587881770388312691714353663084946330685107289145095647491613116882546050463400770754298722737293098552108064440776520549734346282222185081760278949863212771919071123579350001319769794567370537306841521208050813782332415142680360195046603645092530788187694108768800179045889144508869282112260240030343336236352985999444648997225396990045381081544177612575272775008543089593245472843646686664634731702405897236619224145045380277929948601879432084450056205286924306852866827043587817028568076265079039388908854711002020752277946917029856928190607232041363859694149812448524415719884155420801595701337791002283204433670036189483897985430125190222914724188919543466728428670496085657240915972315012315430851175885223056821535308302695901683041285808120243541304115750931833853123700348983542891879463640214074389300962457799880477280806726504102164078618544326694538962382089749731902286381478576546670293137341050871897782148181930478343320073158251414521165133172167591693521294677557593072413698899008335120929247764060378272560000993419181730222820309637608784696263693043634624431601198834339312095205973256419146231023547083178963453829139779822257245051503944733999518338322364852437593665410338017688871668854889976524050811919617345183021295619888265554560820733875942690784714731910093356475085040798875466404049755001580344237484813950020593648714552388818931141539800862980671219198677706878293440640895971637108185172192731956769465534517951824378531710695832893567699066519644505238515239847409031418923257748216835268656976209387787098222862269983274763437051788597993493265200071806269233083076244156380637701649775462574512132800472886222626276734282705040922078652493282059609019372484216163193673439368705844059422540454594726396531641645568358265897678765563700887900161799119316407209411372866066165396752427145146190590847230641275783115481263752338479335993334135001432375089742809324252503410994391907163034158684908963407022970375736923349135772026345997184732500984547643299070371471055671800981850447757782165975693689646993411497362266915208118787967419695169533772862689140693528516194415273944991220094183950078481431648989959729112670997339714315244778052887025304328246854669623777732096315728444288273377215211177042732024403456162397990772580852302310261799481355792890244733905027227866043355740679718176532275529132431077300271372575736468406746044683254815743516401851757693940978612907292159548222833864133267776346457859475252956096322096872091408592701571923059822083369568526333700356890538304213569260210864389793246820591254884937504132885377326924227263162635764552239161913339689586721852843071703618316792847171171709219426758303289645479676880030062793642298076811763627952824759185956738473415205199898463758354438498200310242131002852032172208085237190866730001048729431930893562459341804859342881745726673802671198006383189536926372344825635027289869647729748185179490486136453277738912289684593328691238149576464988704330796047104954947447819376985284026001922357091957486582950499274062119642508849939616613091084176986913761019608498247323890832873050865876194706726547464745971664023810812353113020805351173341481505747508127988516321544599265963994862510973563597905311994924358949703888958730566625306394383056961537678493280471695706041292848594850862428965696227153357803700932430716120737861760135859965080422195916732033339551271116389192177431169862198035273009728065650356614924318845647311481868505482934243112573480503284209273557393356063617693765021575623442507483523833490837639479090323236513105306265334898366727538652708461374901481353014104085677765598933626374511976675977252408566746457231621943700560800713778509698441501095520264146464818730085493406041100190546029287892966888479755579822063747819894072617562989648722242548284955540929802097686275010153295134514768304164721643098442409186369341409994056562382551768857409773567089692166677760808262969385192713059092189938282625837371946406689972305434632707646921849569108775855404902542931942110372595735174819022086587522657306098460283439110592918970136870793425509357252187677934613239540005257601829751977924841485334262449164879052662834751170096696176891682886135226266685836249256216741265883672453693012880279562058579492363270458424469178884006770931138423742319482063495021706242231158189389729970574155770395721250592141185203187201264637965775955250833006849921277094171791387925984447886813931116815813817674568452667828400108317733176848268256808118331501533372400069476882908029200946499945048651840312219222973830694812113199008013451932547192503391648131721632674221322738895793230431380913878141496005427653725883696921970681581132064069216020666316889906968249069082582700726237597391544575184141508158937788955434829010499969872981987395930697845398603255855933652118849938921290377449728682863909877836981778642261425395531369436806118579077155422425112879213809614253023781903093754147754556737222667360048937912280595849020729483375799420614848026749633533690894082320678567612867607185964929879907897178408385338795096737574887919187728168123341931340899435009658435553965824635816457239974280659217150641266557158974561083336676371041856296239658081277836818299775021031440064681447499690173195460075272448820132046226484721429888289713627324286708147089136598603041107415313746495865902611663999527409196154157396046649442660777414024171396508117686788191049622739392831676714553471827660535538159424351146427233692126371981811324878410244424015909213162558384302307340258389413656682442629114070988050550596647999097675997462391926336580965529559058183714650954619861713626248714569098198222314591602711517886291924884797116443018167562465990043155340996668910137201529685090781045310014138959626625225751891419114526526746308867160411978763398140495804960467402911452362382565197850831253842789823709200984389203046611006928399054574160206293432963743797088307422088038731343453753647382868145224611853714262883055748708144806886317140177125597743004062064165165789244304395662308396035267210040215629034022319021998363679204098880217479129051898702431714563323462580337321624931417402093183733546805921717218858326868677270863946657908227922758861142341632293504574152840797075099708312143492523905668026936160766074818241472349981756866570659569901341893050100209880798050248601961696783087689893672236614278998227193718025606698449900151079538516618763773702912205279831908176768609488155543144058264287653068837206021020653770827761324907651122899401241960634819903308115661236196477151791630642209061790278398102175529764971383723993037554018588502317159844384700434257060574060279941617356885000900664876179512086637441845060111346294205007912058738003585628461209024101631606151312018248847281250734703829964638228472240858024518609303291796702008078595110092552225978806519943156564248794695657112682538339129704107659994450892942633357726087242722440172486541142942133275143022639284385117198524832806857682249854575243832894340722321502208213698252980773315153506651249028606711488477499660579047800443758352170374102251373952469464839601019468941867217062639061534075152982277837894932973126411915352127543472702581510514054958458979891368558518308188792063251197596522881557609539036696657835877398420547246721594835787776668536273247317013799407776665360930243285903521057937307360404462492199022459763005313060461768201064296172774411480543575808802886786865843375388553798273578489788322921913187339021027520250887472070459094008957762602717385643001879861022021896891357768236824962917382586359749681284315726934180469686412559376079212237062629494000938427671786127647627785871786740473035596417187658426213319648248600651011425892206073131590095973683491926850982905461226657556809101804642945631111051596821866827660278692061826166995244668704722681716732033531792784290348147266605858255750828269222977753544981864448057818247889366193559248638644253604675714874857682731196053617482368679276525123819393771427732111565849572722163514036395502641956251168947522696403167140782096319341877010505394631699160957829613725871926270106390514048767059750863200191608011009535333327987027506154174988180225767116729101710389074381329482693922941421117937266728725306329713030093955909741416881731463314287823597857397013930730929434146519021862918944384724822427830240678788490517560513032454979441082159182892824658717424786076805074296831018526617735583202443871133671107695305034311278830163834724489516990017518632005658375589595678309438973026590175069006033272601168273733671734240571111408520838174566844534950131950975154446345773414475628704939271981009698983328585833053794372825830022359662026918205404254876907598434891538794337031861276138633682940277156438996595012161565098779409136820698043346047499613723968312831105911457691599456068455036136088434715638202395079774690327301228129836278000608122525001513254557180464148869449853712829981500010252365615892191048067346461643588666639741747868714590810474882100549002658642260653231656062633586475251876932792863517919290028757481166455108219854638363868963041394293428749657247707136646432832230390818726306807426429800493159439231547118528623930159956394929513609327083183250520422563047902428670315307632570565532921555997548152514893060003198181208059744926677952457435828523895697416524257363468712897513125462257942853182500240401522035688576177158602000983300510339607909910298078781408423505514266933893781231874105949156382737712709930407560829903877049975235540753394984843490577235219014976551319299357563435773029317489224953652755987386467548754317270299273571931759739437184563904331796314561069747514823971635952684564276589407698482860245140217140856412936422989947376314909384528089679629888105263152069742448298549655534735450183437914164741229677104172528470046831231217927246687928225988554517101897927085436608835286711962278835474908175171487841906795899010527634928763348527026345220726719973644914176294474008168533130667469393096929521556844082577075669326225477282560914112635903395085228631716715398163769892740275833783015984887004417426023266960858661778452697578886446893374753528316288794829084994759648029131271290509762554452278657893596487313235133436358214849419688287026724650942350272034445327413738511064693668259829157084426019556925651787849902260307189300182886846620559037173679522810105342638930610044701316186569915914095312268949796116441885283371002805741180259697856636157575563966812851311002809487495214034711099678534680291378179606228597770763233532520700570245585791314620351500976589248238591659358142925442727663750133273657557524821231030164774206492000025431183509012537396772056809886353247675068464020246459447129667345784705416757529809077907611041298247219114312370960889649635618083372077661164506204277746906698455161171385132059078890797951576081675293350639434856844346568824036264794201731819421033674983440712501522955950300534926269917776710168462864995980952643712620221994203965178450919121035433337954535658932591263958573649984656873260276943144385689935034226172436399935292276282582570818656777063626090141668260186067832297882196421846656222389198630401131524441655835857316243485836814714306217039029184921908499526522158731950343877519453007075220692433612046874224779139929657537723673769975264421124773144362906617015793069486679150183029997527386405987432426218369508012643285181062715605501013428747225362039684332809062669688820485937442622248321447013361751032174898489820962427264463358511364925386014959343353075959152596534636626254390306469508939274561113088279106400368064776188974567402308809732472636416437530720295675648700814866879780348333405602400940672096376508788089746291413177003553472835673294301713630940572215503812716955294124817234835819776077892560288138299519804860494302482547736750475386774179841930242325168101615288817037361634070725006142701820595403494546609488551079918323695437281483383811403031740750114183908170116633090433827231406670527558250855289232237625080443448957194141954132864746240737322776666389498516255848740524832069394522322865034992970227063071519892060939251964777331517519298149973459526971507148528660180328815561194570113189665626699206806962066021941338370926792527565008961441152130093425588724202405425426983981675901001384119505879754794824096202978343903377637449547581825661578292203772450186004598304040424917156158302918658818355560903079534306033825158610903181120655184721274232715566433430028381422834445278992750079123979286884507028642649160924824456798358209438133731866986818095092414169733637325454455259428552294858573246700325190391039307363727770171194447452068088640398378465461647162077665126465137586967496853624688375958856168980925419817958918860992074809336773769052763382322776298626906369469934104765500255696396597157132819042316912553338794322524758759509890500475186586959083646819247811699633552553720476109424103244897217223223835897234031604751333438082779798747913595426462622079041691329295972119843696450576169440949513094679236464443834340282687222356575672032760512979966528036256989860020340003367332391755826574238882018785195299240878675788421171311312039853220312905668352505068103743770120406981826860397991217343269766506473495941378635488043314441418428486378580628369810960064897093269583674992867241012409188016798427289502404853210076072119293989322559980417160448306881319969862241768036312206578810477837452329131401227543114848778766188727248552556688712788973099596969188033448149841890693866720165229781510705874755681786235195326869698673807915182587229340937060539499199885455572307899256512320984256602318165350008058902286003444272546928319083257957017341308744664039479528873993273034926606185823087199683467941248170097487756732453530801303623265804486157703347644238175774528994904198953127426648906851002605100783876561582233742958809518428000738116081695106691293491402550957762093198300481286386367544561282584364080501800433986949759732384474147361954517432939105637193354880792693406001262499457188949665197170592951681422055592550865368599874154102426783367999540381922003126503884416826967716639705094825946700672516486670510158717783326250622989689655627308230770766477434391163860703321229703642124348776452786213455710411710575218069662455147060311498957270058025279493449818598052052292336337213039800536438836143494846056763066200495689629091585608256152680776477026172415433818121903427640996577764004306810387382919589209602333516181857761679192910470697644123939847972589853021314813550525614251219497104825204633090903967727641348868314852004011428898235968573437280090021946323209468110100210117300342037273762307316893278278529986874866184622246337686459148814914406085712826900271620356853104903023946080198515975445461956558912323905638321208249143050885569491889634031058511130579804970346705855655840748608634635380396360227302254513518216987557269608211366199735362286783374329251524749551316348465649857626009612748216007982035412484774240615563782635815203673558995311602640546506153842695352870907064938961840546539672673273389782598552174210603633957834238101962150922999441208533727763242515134083511717678762123221341815183569660884321130047845275097971008673375843743327654248980227791923272086187334914144959207572274553923929362733020417408964001692087866304158439774131760935802928776354074605514518861359207344300619360565514411033958623256606385380108238992642785389643969623137914856740228169869782528584055645557431091999216534315485253532515216670603900067967511196246675816014713103208448056999604101660321176978029659095794300230791204622511910251076052477845285594372230918258800981020479809691029382845772306995168470849145525015448186520918602562870519708784971218385657206679479658838505078789705865325593997175337702913621524539332087093866132003592786196499487732043710053398937016771171596507085170017686623752061009337677334767534582505683017883279665437191951117930021194092503616813079156536637745916682254664222132286334243961981154951721299606033393529797189442511488226801252138451973145253949581239805106404709417882199841476453010390461195573099853410478313821413644173917486290401236415437143651342707385589939238380962044806950170395056104383058845051512858553551141168602626701598212203571827746517136610429406048936290818911414339053445761083688995503206202976008127740050655421155913448490225826575025239165558814238124734224134344748222218144800431300908819125246445463290177042700108984553171691031182498325257478262357142925343140151136816198464957434181987517086319382408496296481368579645454806630929820735707797460267192550753881137510430911747634160028636738347176974083298416679978703476923074664659069212740917203803588300441535433330495909515954531599458622953663593712981262724182219808505106168114041329390559882325174178103556942031619384909974734574966160328579336626843117424195152206432587625285395447234068006511270688967129218975796027759764565113450594373768705067215467959594104405326865067738301534033127698554685933234779030851531226156987399074176973764162919008782167752184561683056582005567968688403804605742415717685388450600136180274922381271435271119969430499836819980986518913757536153148464124335011900730703656624210343619322982555998180928786345497407397549146287373929219856838712484402888787940181886591664875664359553531988841431003528883845581784127463707613381361562747783736302687177542354179670313744918736539365386780247826197042516452836198212186597496072912161220014624779471812950764591584971584402224404174169787778006452849277250336660791740982260915548349903847617807190882597872222984969544309193082869412120599870429469872048325797172772635617150955029544739612939909950870666726902743120622127853510270114383873458418417068157843980005709650897035812615397693149733004655658103672134273308080655402462706058900237745784366120154005525436534615022437725006460958179612353227770306938336033080209795324485850365130214772880145649696670129161029530338287536775422472935575819323392489204413111623757231502094214781107928683857081296879587198160262406837689270339619370618949664023137201304950211193503400356925604174577292914462030119961383077048398784545144876256576628977788471484641673155785240750749104420916503943226322006315284005047075844458327176230469727520210633592199502302981685982107398664609480288071447787171310100496580516896768127320852975366663513570000354237403242644510816207795287353849140249366184894645925526697798428972303202830043684820889975660681177510591814381795957801066476337944165581919328339291408190194544903484705265954205641060944577715909680624147859597611147891087665298003042800057927413012913274368671074644615061601253194209106173626159677114878371859904343044058842062457117669876831259005574414349055484365132206835991085945630797794567646080850082820807945900671341862170907942418829959613644511143389603403780137322514482400009938764188638466680280486149043779749481107869904218080397325985279608694484711036690615492318202813618163271753109830675808674150642459746083833738274889216963623175954179764387098940682916368524239346484972199534850812086362084172253510667082864427371351455955394745080250747256541292229180266017165773898680095328944477476844393364096460375890727025364598927685490993542028488637287442321417966168023291773315569224144573702046802420465819940615900074972354647718886362809589613877733765518592205424064116888913714573169620502876287291495861186220986575724907402434281503494255678627690573034383299078445338612313205977252253056650765284320267357926110259982694361770163922559194556464550899888125076070683417561626741759124048129138515563813385968289391923349916895800139938179322648931093790406699936455972752793384540269725978909054631786527620359857942109976462010550299405966586890209916107349323113817884760896964193962980926309154019109798127230124779374539828014388848604641641098061566863637314631932493521594030110733994544172489092589768811994025190039409851518411313576358507032674994419974145396360337780555565687002346949285926764417842570631277081478110649680133156674958902300668347418640050308190401656804220377913352899828154591629179157393267895884230611459187322453086817400135102936122394775251137146557999548675576880716987316852370124274258749281443350402012944869050340340405152923263866016134643376371783084948303661726269075453021288550403517184802617232248207396092347193875143619615984449909950618844590115459980014777123266732191943475092303826342840443672011137302924356956531142207795018981934533744748502126514263635185788905518875679959730765350709032398524788170712910194947429154086562319685881640249495890807414278554756113497644648567660657638380034648480359254182177736054232796954616787162836217557321349812501809747582268305135929009201349864585349017129375128450589004519236786906846497197520738330355530523538199086927302850603594564931491382728755285458432047264931369190325733716615436529276809280818753976576137955898096355603762897842719280075752158868489176434771028175965901376880654924372859948273786408380574492207015054159593156897114314816104233976842898204291513173536611566114489070158316526380820706579711776007167808330918613441319365213503367246037215402968682842712297736718385003293558015171984221041832940060320761005968620242316185814163225500243853259526040901720164736582251331699199560997707747216405325542090136250239700511859501587701614964410075946471068471045594229458534584611322311742757072055216398756505933090838049637681388205398191102218810215311581063956563855508613042086086829109605678330091309891972706374064796431861509618133335316539026719962418318967550506866521048894947227636795810418588036850559082215509477955362552595228370730922255429735611710421369637627263406143338694388787075177385091014597388434901474396772623021931033750694848342494193311594626002631569206611159795866847741533560450823360353502874402189125549323244920182952952868975172435133674342675199311971409858817229868815937623176109710842896268041897515655839641769754077317647756931616078060677389398821684634611226321485788509684256126688528882361552318255387657951897284253523280906559977839596413927829259997428000936561975451758827609863167456167077994982424148609895429494040274957318741394701393868837301779227310685971824859200923029365222142055860274364099599937769969347528825499642257587730662893341877848283666775486351720262785050821274626586187441986940844413296125751894554889729200726562975907559193884941726852531525042417638757362146508570613787310047825353664362665192797650747407036272247092381535861242602087839451227429004399949838282367888724444592643807106392502564501927998922811752082470891720684519945838631553042363574678574356041848912337366915041109524477312193613223395384292845739537816793633380266215511213329116235681277988695030994588338674736441160233772290402293227856354792364951951250023001387036414416100333738337288103883308402543626187332124879850212624334936383645151543149541345366211508616044864810583421986674359561263980966498049688333702661039901088397638728242724608797575570016866149374092266802582718925840681826347275881242157489704483691892145800287736641590373187897542803687350724610986350885865306823852918422913860177609128378722216763144063055594499855085090683259188525599413303224447290982565058548264994833765996765385697618632459104872485648261550576574356404434250556642552198947864060332478095615211567558209738360824685381018401600294398354557771652200933146958333163096851709930924815043957103224282858159030391253946240039328967426944034962309512480720746267111610641120713989105646380912965605346108674765661639993306964749081900320205322639252213010137603161183238389268599103352936165021826262776251514547629812598446319423376560247237894205801045256082589018833480360084231549184032258695781321825078534530283506466030363906415605374152946579092041924574110796732817934037773936924376983275690922829867249525062113266159474879229853603617741106230921832937678236353914557730201701877535499862506906800865696777436673782604628844298176896863914538350495593747690831181083755098363743746957498071311941074910496766996347477180974130906322770226933550676717726952885231308599071499488085495897010636240045646652391978464131266781981282730543204460913258239813436570775474077326393185498034197389391329400931740972883153673056245147672192800645282427766678427959509436843609981395755133029445434468140347642255655353177079836075904702792789411124010027514716160295951823729187347371237853322980211790487725612139411172674498016731395180597306478110671766345196974912380149550135768909530973241446940861782902686144421083176932720818078063378263309407049764018797252205451544020822320626735522898770650747970411436479209658052666029490507989330509145570658640871405260124102626674905559175656227742220118083544313544417977896206067412069783685977507607330450447039703258627537810890011532637816884003502373505951430359198843792329448952051346623236736630118069591640431465012569641997068889103578685511270929060694873337994760476833123994731372236420241316592971557086190583969775097501217177531850097173591956276911628550611202231912204463621509142655388076747878715626216874302418503121830940975379247467828378321682165182433580455936497483151872228604630497232724957813672906771639645773380439910923595799131103239967789470968745709731257407012477170113186422602493064329852857697449098343323524087306004946010334974648122443909891837371939893202281874353368700555706920019330994158652904096973936263517464918460533615373475082389266909372497932850440305500002669992760055990985496387369128598840057693426675151237476659435986715807506635116168683261272160501121870189249996910636188644824243319901601550728695539054827019585362264021203519912050253794950121091475606694702732970223867947995431852418218355107390616464533891320777578605962441780310254101849845792462479557749653797920639950891396803241802361772269931920654574401364385426216239891105669615282077307668819451126763731872714096706316675812908116423699330076798256576083659806136029197539762354306535188215522287252683814680442126575631972570491429475406355094032558702782863960260598097411802589298063450808597868712167754983865165941639483632771951518829272038105083811937718514971094408564315704594708310799012741197151071504825498269943297436668178794279245292760213574871876415896873733095219944674347757389246194911909718991458004237913748978411929555501447604416850537813166626996012042158662641817345446669246141821791163995005435873135265491039389170976077414879973476768313150055179231965045774048066130627192514310188327762931092358678301133318853332591256033572375394711078953629894422163556017239832191711137528384059098467774660006769026445305257507997947267837849785321496747938584504940020542427371802330811540624326499414564792956034561578997733230159797432442981793342823247801407434214424437535418176961725451425675499108316065309826352352962305707248954799220510801257818563257241909883915679278307936781892286785091510669933827853058857980623730208897395799193000113809013605428373269828464627177582802900385037732001890858036937232874680001892012822936861603953599208312475951885589452683007500777468580960154284817994798041028213517480326721583694982122246915529713589452001348030611857552987721258929033980691442794294415448070800593893700058460771339090401814883834621385182408065326801439767420683475366896413718698882735165887723005941346268092977448205550116663423288810944763069962508367947778584165407640921349477146477416903707629153960605060041514341779921083676798824059446210151242545172380196140188473528881728008466212966312740341426173023100254840903718811017390376133077344388544141263620816288313532437849232787954485481136682764785923784435714868251570482930925686572335651001602934420093065805334775968070297825408174697374154420374348979309634435706466958219420397588397720499348949026322418905526614830508400561288712730256896597016068999187748134010237341523996833030645120250979616543522078407019041937497067389434132966711402518375437087965258306762666130488918072237990928980963511505276077730604017898703906787478417678501149192338478757446677883525084211618757996297645146402732405074429363692370358691610115960130818162854205514829047978766506221710814395277047063060298722270927821118824409773791733670353878023568281956410371499907769974970403447786440230400405292922329730600405182175386372382014820554150288816814467555221970833162129623810967527805823445093216717362068167978926592009516042340316379349789011140385686009042317124168271893342599348097516861584117948589297522448041707043977464734702192885502947602643434730845796661563174753238732100984061539360968237554990474435252437982498191777699610921567266219593914261973976954813651296940338571176663987935594714244620254203497610516246937854370832049625871114743167319596032432277434808060846661639653804827619438024101417025766857094680539385128049218896228347983295040616348514532611578656410179221558518278814592408163431546005372727190084875073970674500010027663578755879133637756407518524183936462850537140556489449947588596333260868732650703934332268013664875627105922965336218991720510770657158994027151595347749356963719630712972457394668203917559999050830698754760950830948190330980696993821124649392369667445574417329283723458533855504498989169020588095764417168382783642173869655416928009435627835069162495273173026139225959310904472981077168484732275290241279957709445461155469166017324929880650032049280320492580788983968235077945410498312694064506543869690412723586783147233026780720826924149174720124322598817557885122097852660239282839229729810129662488917920608350046388590509000205914389492703710901605096975797692143482466715893390155862178760761870228013312633206929808580674936812470225315926155203460318227226940559758711988243786788744325596133788171564895544277951281468042790088087881399954837738460353285130864280961173662410311745022082017826600575484102434238173848930072783738085069414592508252930211461220251053452020606855171133532110950288419386274000718301415581267793908590625583239130358418823827238844325904679592906301228003419930475103098758952175440414194008070814491329421890945126366079706375733644690472960593207457541465411255286595303549877357932223072912905170734284071471304656678744732732527114336431858996127463058991043750574035555386764913426786170421007702969866363480614999189858960657519337291421679585192846174104917642232388023538618995880165382259292927991632311269841164513190823901302373036986433556190356274789824201886217842819864128381420257684393863527836997198341234279705810979591753272108826532118853584061391926123091450402473861499290978826112335358713892293396584651208288925357148596352299994250423665275674520001065101372247461480314883308403683639993650376002046137722251496405572842869473950943648493184559036172404598639114555775918911205958770995131345163421625441006870199106736073451276755177744329230345647480198723394796969734932832462067995685663337126270156549072381117844267730076322632005273725272712632130450767598747921747524718475678863781780915340350336017484011712180797729142180242633744946679273737988479063175876487690250222773272554023789416811319216300108214936383643918899842467620060336299540419171217876803669408901815172100591044258747200790868780069452012394457383946472917448516036624079075742395856021446667971642414579327188049569702686362811600138262556749471399515620071898396578186650695264344108529798617796856051842764182706924195974947972365004675678163629002251208834334079042708335332186720792653666657318220729332133977407269851944537169729522009824439988178747896380606375064134872874856138905130107809625727492267656732247052458198138576421773303284701414395263753091923321224704053308336998357119775950341870826058576854936767881233340682559885512880446841527650121627165539817925237811476527069452825094648328935167341809016477840872861264995679542439992255992659957475360627478700769257641419238500830132514248462743513876974638689513063385016596305309966982467342633099277474277088470610761208160988693960495910432907780286294178797929291721151888630137308929178874660075151032182346869598649251602239845795556340706568936675550429136157312891416641533547356225246321271101933929663344448658788759898772171134503404591136674934079803302299986850887722931272667371111489049469201629829148454314634473145484379187872349967438800920036486859214233427378742585839327870751079079641667401843777895767579402693995461976588327227671739763607403197031841243992915300327309683344667867132847765619603428944798298656770539622613649687242890201483722003957945196842657976644719358043222627321419683244664366797175280502490069342728218383131122112147526563679351301524551652991301906460951144296426383421609344514817523826911210400374985499760153605013958557810962337708302558763072463856875724070184572317412194271094308183238930761161523309849905649047587636815160745088901283831596350230284436639450512797348684288218349799997452334835617718913636148052571357413654493621006864182326603159135427676064700876147217211922142369780024117410400882737969191397191075388167491510400786957100102022697600472772186531936838131312518163875915440823947707468879120998763575915878016024700776771544708896733159203925198430724599781650812309496377552671161160976336293429015326416499630390340359835767791299950711196171420502919950568699407694704783992968401203580821179006069405766488936066673397143269516928993858788748871186064292260441314312719889175880810588757169037202962986253535169667777713508381164964773576134194421315512828654140100909987479982557897992302954231493063894968607894123626572670142034252981458412760416593132849760245544938415242152764588391767176239605809960663179386873580086364524577337557049273537508400234699883620961358245120925586233276666107973005041889375867372626898853867241576926364210509994501848378489346493347440822130555068264564296107258774406629458372109766419276036617866406018563902322186208683642393197291744410228275454401305381945881679442942320180297695603238925990764560888500508598450761519455145674740719825973365358404645504767767042927781780879495317403095049114636825721536939751802748536614155166752071644919701505061969103133762319778349736541190455001130916910962853535008040480480295417110428686245247765651939943659658896120592069325970929296042452058568395637794097535578829977197403947794133931833990870209024398998960385318451014624783657982678248743676528349491632665620507041845306460060069626399704165744147306401662384758315079907757351648486830071277383481264509449552982191239430085805408946702125491370246437294782018882494230035268420748938602795882602554044328634953859410268505887385500280555629437653313551538305612474644199264305963774728517363733779797403494542560875783380760363045041107821758955823538911280201437160211495125534261469380376534046293143842245981281563247808324514499591703893988453813991576375733075859928290158244571593843214121378099036956408495015967630643080010291144231741781584465546807963221776940051073051039966942319084570633512221009674281065779256649751937658015803655405101689621614536668292096386895399474867566635165118741639745751255533875167843663329370999895805443289054931962337357365056635307221988288114066002619033651335087777414321496031188630126603878282417252507713377181605469281431024454007560230219287720124131784208965777910873865746177375218798864195529485715186659087215050725209699463481098961809306929904092710701874848401412426691441859317652307411022681461302393493820358230137835428534544309983336739762591845281067022881486667963060453989144376673450476638678902898849292736640377662312110216898253430810515204381110814491040862241672729994960342054856272685458602496479590721585173303936782420557539816000975768305043011319670502715832027496969013292128113349259287943218588497456606251897708932686930072567406507154784164128629034308220270909867970514421907880274801091450008265158301977727339558879640019789888776806197636076820056120920799612739408291183229468864058829115849042452342341917535592078605911787932296342129179280008604857109240134390021431041234231289237959858391357640879279994624668162498833838182840640180748655251199242500538351509095689032358642365722737809358269863751096355735459948280466975011875051327197832981167645709766871957815589610411043064874636812664916283248124417956338211072042859543530783458600063607454763643106757150371625484491525204354149014143299489722677271157598726076132501103538207960586387143654693735236517133275956447399265042136810711364200582634488226669668307403566065426918407302828558300228578027942257097384466594749468301318760026647792413189670293257951338846708588201816914116696631188755665480926425373036199220837258197228946121146532683155114268126438732988301655895309302421951720602719419441492064866647544081305845574034673038635667451617402868481151049886298552637931217359920006429554898674504224050125394464647743982398903659018206322350587319046502267963730446861875787257188574316885062954843111637932443123944911447602787277783396385252636312289428600202797199795802076377659383331630647322890104847648999978698978212660132104717043541985171407080560693460475887112136550821497950054143794728632081253652829660448855527521171281257889647903933693033324964126208051455286525936799766159430899148420284491024512075230716517439028123546218188810257904665631206441731607246398722528985020054178668828855824100393726775728743116557345150707022517319842894415284315433069869356706806356464162809941052141694416587260719906543038045373226957244128802856306298204857212294786047740862365119940744180011332103771564350729968140762172304773291081234259323037675131411251988026774908785488727863637285132849634612478471749894377153806436891090839565016973339889814408164871657271950067570871282068750240812027343015947806243453206624785634364730190798153602038199618155062392129535597913214514048124608904273027872833058711934969060436793530012636813247705168046373606555261242044169148493855244203079424521711426274229673507259073637178263367404059209767665776716124688843604645231191773331005166298543250111541753461142126387861163846053228618838657162006112267314277126557630635610930061193994082172365338440622641117045667346162040508262966881775643656458286423923318732845366350160276234159297982350537097225146717014778623353619461943583606423061357525505609487685748441572784990681414396773826410404202537128813826704058177454613010525507433265720603284064930003957928872476023732652969253289736489705385613683641237495299320961784080612050853016714133788728689903189466128150524362912542530181412087626605195732974319769609544121296293664226976381167209511462035729021173514027911769545076350132471854000348405113068841146261169617155677058913260556300268382749204739703499724988785771640707944067410937150590138674120194354188304821712540475783558733733527132255678623167245082064924871908152144892959236858279427545294841991783647124944953241883939966330055202265789176482995813522442888351962717582868851267953775359104704147654495780026023365881633196622389050616540632193549711201476814618379973493579598959379792244968811203357385049728158241368448570727133800355835590800161622798239354950395966558083445128551107531174289504595675572526396557236171115734969072708589269355363785912338373695732987247489353007752910948581505078275783558619268532159032135104733673623274260843344883201843722016216354594735947629627579513588729168277577124711035356928287052547229519119156466873452600762340706926697529955278125421132078494307119173623636745077011712362274203462772074740677698637330644720751117081782773324276561068456258464574577468982301026738094254154293955650538434331508078977747034874105441857482470585050107141174683948502911242190310280204492543914255554794445282604084651196258754125669387015134824723777450134414817505435288608076334396165623387008822686449908716243240056965303021317137799327895828559685782490287405706347113551675705306399657953240537530109838930443838498326952616604726515884835162801878324867789852704684623961858462496781189068397365451272149811087623086721051443555332031063436167284425849756567991867762776703227471501045651610434194524650878047905906536295201148108882025100524037873293779639042186440476419330558455235188776971445248121849081193019653297230712345851325523826901966207021650023295410137580390174123988383150168622503007239533978740418480726944698063023493795698700788254417639107511579730542897186058078487158896254011002936752528788520929162393093451307290608135703399928872586841026096503069476697852604734960509533353352875506841981001976783529553734110563679736006273353851282065911569749463376982434031303609548287196191485101904536550532952214590410273565363717967809204096084340015787635662193244267908297734270034850202867165049302765746151999544622161733694240396632249548498170177827907761157626273487247672670412229164229471777176144483473243000527614242404876322731973575619864594347056507045562593749131395223331175193171343568069068561949291500330652086722748411271183581722452910490215835027100979709536014727426242647251622012292571450376436281006986175511305393292863850320709071697118241006191924855583595754956849753198402463416413318233283636083689281695985777334307864664621732287661183167463372367383042412456489181133356687317593331901236632065545371745407748981230589679279933845020099043741426531535707322795342288144957499915701080003882489568816991390469958802537374583515348949979583966553330865275754239050036769262927167167124367648060929569563872289725314163618117266600709746581959099195235048546962054596346459442456365445561917046964172650422309834203019685860762208201993882797483652283373874307495458145445137533297863561428095510607943122247647415644655368126755718369665647977100741317001271660848962867925122276419708919206542506010966156667382908288248724704450333726943421856375105163945818741382041552167601249763706963559813945470120782224053445971906280050602340303841831295825648715422459019135811253852931859054716268434521342121064844060405056227883221878995012947516736591933536979347920369230843739800228928444983281814916640588362688823792672354830387350278322049452636283117652402199947880511086334862144680532826132365118785666921419138327513713954147312720918884185274106909572405767960571376941887555683637561761375536216369212175109654675579340613011326699120783567600680770702263739921971528603965473958677601552760424529263092895444637834048631604092051985706785237083253244952724091861893050493513712967130680862687132970012339705354110556835498193876265311614445987308092684674611679632522224240600491174408047595152126940022235832991161720470217878734592643841951658008725031132720134871261539901967607308621151130071696561103120775534973033004024178055560376368879028166339394714918917807957166329722193231454035725208101010654934910414854038750392989270024925992225271874272939081425414888593677392738233294839838775706571999961806983033511931366669830301664116519414205000357953599900137466066614655415661788985958347209523033575117471019130893218530754788663295380892239187318054511224272444684268486007208592828643061068028134188239907368220663941410287485167557042722376530569262737214846599129543351487054592069718161778123403332046141995703528386749321549308498737750523497369373104729148213931193010956621995336379089859265716585323471104912543370742008563342248307364543882281814540254228192406339333818216771586561549064130042663614019564638712085961667997544720558931411093348718823138044592911330433696157932670970699139650116256871978668091834747228290618086742674824800428534466097942433227386536992790213847534482311852688671610111749405863450361368177587727974707741521698494888512977740255423750856486348399589938579208132582053883820857022922216554761030486681742883770496215491872047107002454952457732556652109448247727929680294585028794904278517278505371181714716540736198799551645253493038347061162437524691082010166791864003226188712275071960389177811479663790916262746735195411745837033391255002542536104008944338774242375258705290272728394764562463710403780903583426137057474077943345132852511792272488529333398928427460630401496952708760295546573269553550043566426958042471340850119425924219287856998852353057480935347356252879357077960192936314220069957198360363127360371756216864932381831225042675865261282441022526311420909239192772738303325327922758793964700463182812857312781681220394766041888019322715236945881842212061087232675397722772557513726840264579321979503939767529044715760312688194895234731788479007336577216466736510616646745392558180466041300182299724996819867789113263520590733783343077041534698649712443457754705275972950656786729174179835129132152367534091156170068037223562907906737129522754404509149199375394737325104168639989954277304332081803956935699081776570782090251961453891848713822308942947428102105235386810643670182077496005148878195790095695721328821554718513890172032447829770533417687163956306867709646999146343328892972264772600796312679567577631489895230969269567867247102090108043060510480431441704991301144263814967517853066985639700885208569525158783271173818780682644285532509322404981751856735569168946668314821135803667070014477422117184237904229164239829820711792613079292297325358450207334025405118426261663617490311274006228324016691916061887653510045469504482198010762233783124681963067072422316571089734476842227361694929309798211587956454915911058170147459001650305042045116147799277519319948043917522803870086378066102396941692083603988607730943701268740965046492162989286639047503755397132058357219541960225021313493147647118840143988215568657682892244453725143500302975635947861565860056671744486224169580372000155286704433873402107249623341165532363795934064952260190393378889506803828102182673663958673852627454859556688105317990903645807611417404784290274758895495340074457240579684489057117235107542357884078041231394051827340425424488355721070388032785341309583605311801623086236013452572220645052071847823639652439206118187269051196544012774404553489732746217650985392025228200517684087958951079312559537354015768646966069946418986292452569053572917757152114628393920580747359257565483420667624229912074706329568198664119465842109344847002129512672046907655344177179559982152904123464922653121610021411127993871855502145425764592698868347954142758673609505548037999450804240214834630947844128875829887827504838464009494624184108765667503189181556916914798229701873255377996424766444607438758241115786877102778719762170500832572976740210256035388624882088777673301299173834847922202766880502992365395455204943059518257841726015108450507569240702331094467472559025955521217570085190137787366563846609107706407291717796949642086242398591547987598131824824004009142123121312559447865860299395208015351526856101426084529256536760259689244380067685436217264583549430845624517176272748126269670928724726620310071349302027245126356551711332628518162032187826222825727382841890099027763193260669776656142071073520262867570308123733033553956774295885440018284634298796943228917762903880644667808571036496960602772984768985869196723562402589375105135991262875782007134456250120904694333346903558774411551219793002821795443306074430543652359225317817892727484127111242694961226289312523861054155171277240700427936387277007523562884039656431410398726277469711481523319816438789043990331636170446959130308667786816488787085734879738452873122499084004191403858342970598963141018166526981399279790721984512240912355907916254147337965930662762081951826506066083353904776462892195157913232369849294288193903513700429093975376995941160443000007847293355264102734713715824784364480375435362229764572615766843435039982411104341402906027553702251453717480305048146205929672516277310688763913145177876499786375197592113402202565356068613647897543977815044299433550090645295891417360062853024662053261736752310695172114549546808050267856044828547021715377926928436346757060850317180803390301951143533089445457066098243681532585719633821756715812029776975918201003241003456024237178784698619943233143065727297763691950113770130119599536978889583463230416536808556664846056649978205679353549779776936482082744264435972717234174525804235146145151521407203615260608205400419946926522802604946022869927988254014503925595715197896877698585364292765474909575372376063013905206186162725864466696156557642900320865301951847067548175246313397370249695499256736047559956466400130547955066390204209791505447033421849178741527293418296317008258638817113483767329237017157986390811589290888786648984469680057989527677711378250021328989256356106863428011360189582464419212953317347437638773173645541771994613994909740850643036833289088079308949523972525753754384879910920247884706412106071921857011616880985824005677900748264536292027502941060790230211909320169986746980886126599238947398308518169623267984249076012169962046259054516493842531202186317695720978006333949998931767386206235986575110571172770534610646057530090445899373406391494116115352477768335684370188554897721311771533506660070107505565425135596354258912159808666251470551681705366513407261088431955044314359995597345228269391286790634870563746748065484312858424951214811178221137709765456932362523023823711656105498886956050093758875016617160480052504553021045705073522209735321927523609081307513698037914012184033283801978234867999386717321122358021427617555097243837360897327290532068037110889495238474343696558854004183606898615308211862982044977174456586080053220483709352798207472543180348444222598238611796712026327375206478658938730023140696584718002370726774147023351533668897436572884503253124176362730169148471651319002794592450193044081164633978849560903877668588968596966950792169340187371869194360703275125367158284513743956555371027585631622695172956509296172606575386454581213482258557619635023175467276766219006599262615782428001782487544432469382493980586196228935772025672099042881629180235254422409128303131500713024553666200867320316436507798418002081777867392139554795972051685440849722645849661217499785821494066356772588716621329814382408798807232288124639865688106597394865125938148906955714116038710479791600782464307820784691011601963674936200361039413475968304457685487791709230897654278774108995133770051113563567662289259785733965781953714483478180717807109786478004826746844878429205789625109666283190575619554485506200055549509242950372676186531203294013383543799265440076888578588987747472735444498268894456824596574370027262180709492270669001947212809446954815012813645862987536229219632912516924194265307257892800387258748987110014279092246133220423396024206412375224607392815288369967545434454384806729054551147022311304996993611846248420609045373655436957304980515456144535544526948342009645968165808715287772461562364062042073564639898394546100140232575500059320209932001064845674836313960031864099698769663155893849410726821771196506332666554604724758720977122411961088171305442070921980245196131488140983625562223181578469449275819091863296894330942836838535012544352819421927587873712475507814192719062673691944784837935513923430581165293417999287846500073882170551284976318551824283835358648843342771768105500733481841242417071023116252890169411685810822971376249247193777569986202534232220830034471295755407940773020777299469686214532199126195942572351172183317579391277590995126583452372569540405197463527083273743960649424254568539294773212652625989873772664559544678310542822471166476220857961899131165847342773872179837379107758557010078105283336788299689641626192152416828578574069268880458513776984756459751053294696406890310822309034474178953298915276213182015411545923138780164391730657471327635263437740065221417837487084546314326149731055889478311943382299177369467181072821750673661847087088204174232120722241933810177950357959308789617180249456408825179966707155967795435136872363396700101501861974741648304236119032479976745917294901850237898251770753043093834500142593492349686182469195153391369863750356566847716054389455950087565356498693372349332415645753230937508092774952863683104555959021367852477961515653763318347016476490051017868655632007826049459442187112229874657364690555128053219219400504026177555016915188421568468022827656215230815977266200759861831713742962124830153184991277398554677991461970618810773248272684045092082833047648901329371309037118655309582262915343945527547780100520859630921450964977477701765153019327914485673870124092762582673026077117548760896057069693750125958563815605534028670381110676887293806811347214657168377476090651497333278576803336563848670514731328409613324397041272911927488635498277995599255082670038524604702217716634441933251241492452056470868724815760599541828721734460053227213603242936782258150971212890515371201389549094763449695005178285919481661636887360685132283466032139967395612470450974896995576242491653418283966156269004663707663210096913810543034539705677446643054757308971244230121085993288390884543025774490156600712514471712935119650600594775725964565596193284755939724893326955074279312224216643790519989290188033815409748620024762843418462017520199800785020766803524318673477375297980534367468589464560283204276479558775243815196213839622663149301016709625399553565953388835659278453344913696388379488001530860094783846715703855050850256367704050761150143605635239338369284197898621719534511264412603495869410688116281801822800903476677765855865827979069226852252780936618408861123707612532175109422595953292808101565276160379449900608094705700037579716347131516989087749997392536133495492550445377520337100096584342999977961480828870987810991834725983901570702499114012526658418925056969192231555178821023946325396567610951550235268676153836856151332868473642478962562396470114405279198529771748778274332094629584532315844588289762614556942360951657863225823004939358092876740163673075408472375574694696986949730583788634907549629092699144256969341751441988350820114615251995384731053291073517702939130591862603967617992448728492688670478497751491734713211045452481117207741637803460634488872090781718688029487838182337384132070062182598781338285040247749359862425158036873638272581394434860492301770070990898710800852276876788078480171395883264085234249946337194371504507709941025178286381512796745771500291080847213216777248977341767682205448962251271095066892090869739500843170763676148752703059264168751787064756315498221183846312734699959856791907322737628938833636337696895501990544810785067503301232006336818464701803207258552495873429336440897512328949562795134260689288016189291223798402746200200929084472000769160285224223788793694323381276842236283444271139373851649334626354096187331981624103853001139092846357097035296066426376826083781608571344379201293276307436174584572001219031125462696694457254367752082881152396482086417683585276965588902522692055539086958864795238604152434931455175615840542648225672339903629747136423893227435062837465603514802129695453654377880305622060681947886926752580192463125225125170854658052075841554559930559599759451487933106203808370770300101251399041199353384621007523928558386805291813363962488408299238056426657433394472986914754880370842083879981861955489744904686802945370855230073156105490641129803969644351531196530855494668172702852624960570346095850709451269503940813415001278159129317227186025901940952265735314739268785349575239870312493053745855464779702141413766372859796948832892296820238310084126033849349379331469339020210642680890213981589262136078682832897172966436305799842764996637096623600910428309647654021293176259120973046040364033783424129755022115836189029745222087440440159972511997833914548197730782549566399324060603873687756614097763196191431701691176667968643941492372853642957855079514896151292422116462171310836678437655405330071279254718456544011871258784862088181209270754459798957202476463157824501483509918715795479101408593337320601852193155395184427888601507580901299368440251388279480813182785464134709923524087174566624880416724830783675047750613544014513143141141659674555790341349728903639749543738727166796277942331179202905789702973314987020206214653606667294389510081852420910773697853744049523051910451363541643304871960006360299355067411978252873233798947051795675567100462000812011478871867428468040034026347125547969373823377364004567759967086141050714246558228952536997078946523987813381202220555474377332482994765214755117626189637658421686800264328776628040028116153617360222571744636825501832886667314909459912924880857309786549811753641604527331145656215041762711005805960282549150911184882358442873789052946822427392386314142435714377666123466243267702893195478742249981147604901350536536583419583467258041341509732253355379049161583324465179109885875910314922299463488124573064223693667649951188730918703390858023142268583202346166050427301188081754698140773732818129166278884062670291429370808342289592590997493164400586841324753751532448521246053211039356939964045584690623314697117017485338388649205135315433476553262387754771651127654636637292590838672414403833057819093337268157696024865594514547090313220364024949975886231443858701023352259850386699124012834662516794199095853047420173229539770720939160984416829976467366721996686038669314864529579054589266200512115143022429525863604177266222961887292836017206559174035018167976503475517514261278336738944707103070157107608258504765378958371413684413923155661670762430263549426681432829161315391983762238995773684499905515192407375456271089145364274094820142021003953731060057936321682923481010931566221428949725622851444075492897967200069701025807480075716010599669773390314412333864710074608454562930621032605157221934516122572297082526386170801980098848308845526560830200481928668174653727158695039979618791426052117689501064200195556337754169381137777560971867055439452969006410496789205514042226380106915321577349187451137815850221728317942851246697910781059881450151942272232544931680864844600859415129438222580217865793296007451987797015953840213762371299012258147282937945158460766049942990378904771080718333754322866908500330939803801600780441846139787365003741051888285252354840792191581475276623127730600253171572682113218488509832288515694026769409849369071534630524803987155008342845004186599466651849789823832936165194056981636696414898176058767434344847294578335321988723974432757065331977244973205748982868877449678505160186857406354219374502567696242242339014900984357730750311859679228770324398002167624723350944360741915502729841390963453232325668475957528882338704224414119221824400378876363202560327738236287914969068199799836571682346600910414335229109304026043900549653946554801790817809672005126649706370834920775800109501558093717816113121039960043279889973068127135381924562891793422276869385501011688176399296807408920303809592674469011407342420689081035096517703291280283797822749590614459039188135605399606050059240690120474600454776801878944844998202169375695159535511953471399408612187289040852931192183050922222892378581359139991234503482929320604881306469041923338284513673485898200280234792684835117938372086893311224740306386097182230883261050802836558263172650119815353907681737327864912116296594058074739773988682878663948440340065558428286309607880850667790646364441582295635130558343113185296166356531680307988880429837386855157603123112403868803558680833204327235709878853896567969111159614758666136773674969158327193254218454786489728739273091862422726242386114146785308964566354065127820248868161076472605962517046627027820237373434856000756645428052730861012178023368579151789035391711643494530473232336591044057370423303605011295900539572784079431894243781211164765339320554934892593161949497087381941861302181722811818431940668019331664846478182909296995380516146048211148852651205145482269872452402198941925579216531627932099177998219394081207116623490299095603433515400515821941375379398631110980431895935089948001759241840832224950804536087999537059972106380706316477397158268590561381476716013091667435319640855179146744882245400147441255444249052163979039631364997181205748836675584406642866225242648194628003411902907221377944241646000305125714931372986856848258299333367503493266430006786535694766764349996923567006973012682761451329031275889522200734977404453384716451411128035198327280330470164713034279315971867511595330093120269734836474663873845970458597811306654678003558733467813102813547886859124043303883806994727607252242916543630602833854141124222786686569657647115773780238369589785536444899613352537682657689941444535213353222663935918469185664771928688569303664519643512746265289155834335550292331294239072835479676493464299170455888499999091963596559693630391295108147467496090310531086958723220281714358134746048363164970957426773224547738837582512568359366449255555754347470232736992841967114302502392017545037414326132461372308837488676605895757635100916399960820457742592274857369860907865064850784460200860563797594108120710971353837170039849052459884739777824270038201801595312127794254648760259283418710537355327895944292594733124092811738120046944035188560798202768056923303466667350075604718407662927835635340002943254079273263938626264244784507669656137087058947623678323079208357437720799630375679698606044842173238214575329295255671762071680744556209878266766251721424461255035483919956872904298574594038297498164328137995904385539433263725652306074827345741904356404330570490763651226185705114092848787976478417810886209210720054927168883542136911830285910219948630082343745369540315462860132547293210725571618747561099346572935993568968347085129230412665646804374847501999219079454848005586970484510483166320309581584678703317270429351110724680214126859148260234939279149828858487308483428248710831939037340398207408135163677999514254241775313378441345164038589631939676346965025519766644413786131689120631201161242770690274004083088189845582517778078219848960577429402439960334945003215998387447106356774803901825275820400407873033331064033297587191434086917659127195258423549413038880100619139369339069154852225447896026103890691485682812006949559301190089839205361072555973622307450916250521340634237481430747472510264974173451976129819782251062402039388030426200515153802957008272173572599480328006401589599810404664080525591218135896694572622464947718841391463871835057673595300226630267286224274046735302321993297210065821756558754200558454398163416476410146256290220857261347123142392780507412798376019129055633112911285614055955327024441617069107382254458687675749179080589769538734778360422897643101562670640286165282867939789913170449553295794540594787019101306793873968982834855000721154611937880395223984430606033886608238863434055733148742357064159218465479084546320322212969355796450371985612234187528969932757582703694193543614683903475058475475706291210128847197406717366263481412943417743957291587312836789636822773512523341409717308202490252218641943105609182339109918164625330258438769775502148018076698804463736196589464524300145938932181432815971414883359133709809427869088855442807075482934716284633420031187064027820851451481094734004699498566344663318189592356978204718863032223984623381813883173874573050781108409163014797046991396091162689287328981588978136832844005186590142394215469619373573898699203901251001988122290968719346594828642082169559590918257522205533202565772133084949966387048272467201915995564101706902043354941332157037131327544855509072240251078377288211657871084035622382968555871479407966938868259891948872266620727883117957749103597350936180942938168913863503847200785174920983954783745821920861643112419033820329854690322624052439446679395837341827010186356051500177849191164035380700239464189120575183150719538927904392194457176943331842612071657522313568436465751228292869526797824864793685666524856526755182746545627121720329180260240822994932187022778836827045246139011149237254223177522029460076350312606520559177602691904933664364280595606918817848361537742129697511136405666451516255212213805776497026957972696048724906308109990062731593104759693906659410334453758371803158798890879968078377129337456373717917329303773298861775065883131680743572784002813984365151343945357844930967602610549310581345154739323956400144328306463886903614501203935914594368077042926600293596914255375200012004232006026468887213577270851498515498159222766670559427596563031724596625362334497480738584268621888115948367996821973880811850300451701061607910009513480866408866646161050646168156903174541947713545388515685582794466532414087817726834972660332506727801800391039249994820796063843894344674656477725901287812699016667408589868132988094292691233999798699720634212579493031789088243830042013820972725232634254759070660585268305454774795344893276237954761311167074597047375805734119142717870959092994935975336785502146390244183240348809266187003579626090297125386651853963867883714138195447203069009978877897000666374727178441954622184963779976141452909415895806545181060551842606088549294823574122287763644402892993438488230835653381948206984473092094488319354747328379006283048755202898567906253354695936636499366061700004884459050359545936689485572976733768777288462461571145263935442489321893423510970393681991294557458450919130585464069616867969655322829250090018121960421304897706079818333859645041991384292545864129197561116344830533400795390629685898985236705798552937928047703526837414966240609488439165480409057644771644500408507333850795261039561109292919758606767047360268123349663029188916711488238888578679829309641572376312956542496140903548872367981673785824727842960127520586215261504969537457260850747987638708582969751115529997166355474128771484502647652949059130826595913283316369167965440784988581501792043335750550584360905665020066102771256162112231651034179592537069960969065519270026793569714394839823371136129317617155489471275457999071276246251780773635725522254074122444558313510994705771206592356610349394222704217955005297286766757059162110349147606574505603337653016858623581154239913438817907397796147452960879153888198443035061567155452489270300347162794811305355991081198605203833026458940386510292803503847069225731931131600468253176864704980886898837733605898064330104752179691817151368014480225239119400014252011726647709124762526466000225095362019650952440919328081599938419049862758419994190388253076809555616726637031878977940854029332090865093768534196328946587642804416939246412602127031054828918288202694087195568058744025757963171816309455346378084940531536524900028679554839416758449872534245373437678375108086538446132174835306099492629874188918134566656068312478365031952429162187311602234496701467588598171929391588059947850371855923030098046412735555960145107219615965722205442597925903760331605412834980893920289180528905469669567486890020436081603735901126095852966330133680887694848225020654329450861068129978258473927211820753204677043251273767847051882211179647332266342310025622726874091291136694970696465240124059092649595927479265684923057455474324874498648108163100749331104057310819006413140711008587044533318283466340013468964035755009585176761499056626833600422757294613045573051022053159105459489982016325589753512989032741271273650680827271711522050639691542786263871282851459385723940560042358764985401087720717995387318675855984967798955211161137273117771380598324996200419800053278788889275342511146268013576921257448895697140738776592581517465130648638270190884703536438288967150879101578525706764829968466662044359378325039581335296571779466014563852355910836983401282419303492793404641199117199427412900696406729313536210596383757310614765695966766905803380139985469946028330683726697133627918744137527233212687774328620203013107686082190512263162734726258118951390072967312770877279180511067853396333835470273619146007494844382884260149023141747012699136519351411963205281506949777442975348154942780169869661658624773674168412011753103617183462323690237897357958834896045094953272308050507469854168140434424285499033384484370574012238680421402197117496213517409540573765228947601345224861066421816868629269887409695075066400304461262246101189951149535234615892047889000783446950214294014680010811389992500311926706430470603237891968440112782431130039446005433053558000900115379644618059233219298472158714378111784720940408760709845483373110492675814972794145734550561679297063844235628992190341810578963974231585706450995109435674455356792338237709298694501206302265425349654766586857586414013601154573660233048214855052079201309688859581224331013087146967151450893177236806661376953946742995301720480007830716192140111813412349117594147981757169851835363721014143484391477810515700280897316809920789186199422368630901459333325279757164868227349053823473389730922856012408781237622394953566365944659781363152297203694732837187211294766490313510231159348776470057955721260249917561862346209139527036929195381541742368297225235918680817199154388938545216769016595885924870662119915307687416277944111240873216764659037643772016301158101752769795880224558323390149265884585530064481208302952012701048107728079760991303222940027748123227429845966398314172225978695751125523041673853427072263843146429436502976393879923768907870273330946221273611000222646705043688727380520226791678506744719698099683376823003140240315875171999026123787493180307644522794738556828113170341714361664581923561726174628841422265112873557898424603178192362127039719068179221012223322952509050302242983863842518706361726421097852778937894757366076181800231961141838897286848215963176835985412880675574717334242784121583182796320822915286545193748645914948373545419054614449632793067400712003884892227035944431960381873332573987861598689995583760790727391583236437684655082570451621055824039722689476992033894482826053377152927955325600915203915799412123290613770457883554785697117762362727462100996645243143423359256391434949234451455010973068398472329049891997873376251785665625236995127391850431387101302383503974921565143784377362443685448525451851825884181413742089277889146034955298854778392388401868481782752248910003422772084481318532700806296047746930184740463548538118300754881349810404477686546116079619109691289874429807018283247173583612481535336650000867328587564921177425523855547680049512151541146168269215697668295499900950796518062176315346535498535138345105236329096285842023089255556878409052001619691882777802560515364871073902270602573031503822922156631760529567972813712289302607356119947647803541889186347056009003810150482800500076347926984204991859662010654178691634754072907162970446323022333970274935833180121395034021347194644050348079705096713620468678083548459760471299503540631119455063266774150235808844141770187241934848299736737876274942298832578810508908601017731870390830547158728452425354296653448994398584531542431480143091289703840943912743688904078901216747977787149418386267962259451061374215205679126818132048601469075112767852743601010506712570801872468921713963249629794503419599277684816338709679250901732551392601860683677363585807862011569267253972625631110546543149090503946859256132819361812696931821373140161384180573497885429818821404358810260533571726227084036963518680032167712479777672977102502800749874619159388747271723875173651656222180228572717642794724199793875524477678711235950944437275886980240149292091343184953923888633785675844276626408979668731257823943874447174690191144342436921605111097445693431644803026900787745462299728766059247493430491730298112496861719632584843366141226048772445252738849874138098740507644793580242532900069109060794545621551798125177836716735775759043534135556565500268571248857768144679328081312956313148292096109337629247402641245443536730964203476409317390460526393087310451320026650254625128376919312922755920850696783768578422696353514456374160220959361230604971296692773599798078069857769743347720442422835303880214845150746146886920970295414459457486720314398847274852053014499908797390397303662519835354126837037028080398019737542434357004972430696281278262699209422255152868625752593907604260816077761423190108387959969146540670644422793558184935174823675337016927809236700052914941169262070864005469616261278217433864319560550415933725253922646051751935837528444278199545730326579274211772730700261267781869495473068493637932303778672194034151904602878070382084586271635176231228790695345183524363576811939241531607449820227971495006533005392603364875806183941561819059116110394336492716594509709705397636694062454476604301473281091670451389982901371968974509355436095505334457145188404550994090590534363717142441859826907262905574656226811753456635966198960628010987372066700483441305657168091131703844230681727688410399911080990105499679675287296959094082119718511752232661293466054006181927736255795759198347736003836998771373987160388085835090437195654526154394599634837886900679011455357389517560592877742418594988685631503547118406266514577157044299547202204316687791152482454069827843877465125976490518933560582706547369417930786693395341502327931311737498809402092293977070051749089410387350170710055894474978426451453859035127693471359296020035488556984199642283711872647029529052567289440481478044832615609001155991430451001876738028685098589674502205069389293985862805521679429559241010994706483870257145044737887715658930449501139632950619240326526530632585455399705337860491791012039979658878531015659855241220063228737849573201245771099886075604072987560545580734620959635760314623944084104144643400617513755795581004256440628219554631702346467107746394041611304896631182819270820186094643340354470003804922677296511436243386942138119821474240998397022468006541228522840770989764452136840346485377353542276125341689627772726010883305994158194013000003216686666238117433168493721451449168984713265858348560305504913973715079402980807344964519227808738057292115144731267381794503389978088033415258542009955935229952593740604558485053027001105753543901260349843650629773375030507823582386373811551837500457867281230980076642433740121575238128650591703929602224315113537304986760303370766823778791174648115468590636005558853862060185405813677144916884822335222174254337479099252041944846313005949760520535685942529392829056022529650383296178629540845715038907582906177157774003856017643667323041537423940160883947871442232732611440405192528230404276424935319777050172342803464352431269189389479973032812429456949740489396540265185625822928132892196763387386732461515316494138707966384414465304409862645509106223812422650285097399111845285630792808495199988264522910691601987870038360466142698561234697695508122585585194481673830330631069121494520682920362678156286269694722846553260095490002964525557808783926031202613863472498088984732491441669301914695628512777330277070347822022173610139115396946507318262489152354508427628820842911005823070860164447339778715100384294620990379756326226281330663914765778839302341398615346315299345219853631824765768724649216641702339242918227328360064481542329636537497488912485440008765213523157224854172622136890222733926878280074921224583836010891542900143699080623751864090040699048851286727251718515019595090785957425049412250532175035117507777111296903960634155372385070869658047321580089758801270498861611940065162146764743138694645219153258547017307215304703729429344193940689522083206414909177556896252974555988285494974417459749138174478912957115672581802584336838937239468609702485787335072255615842114537492043206909900524990961367513262154912881033229889204143672318837800180146314064786983167638155861798879030959568205072589782226822406013574628680667971786625593965684787573774286577004106484452384615093929733327516367298512550544358756487975689967560859128012411521298136532450578315578992267273557711722945610696942322312131780085415141365977001303952400958572765408640274485162573807480425065593861279433740192723168986066499928487150704273575659195069910419244376414929013963291172832899448688576906776385939947986737119188897340445078447492980844544634954879014703252439439177940702467707669504098043303113310783710346676242956282891329115734376252709461820145369479517285922868033010615307531177473203471536075137207237124156822401280678151143011165147696998612606607201588000849209324348024035622606059132639963880157684219780019246228550043234545535691098244750466449693720378750633338050303466569865433321681717409293197407870038676898252383752138235366292521016854013650096512453706564195037976021391769114463038413327864688697462633956388680724724705545542964170222242988362434203163383305932554660627771270366803919727170616835107390838285258632712156304370535623460415552037782419091673882062830277171976411587337789214235956081671184060155957612302060160581739814297609913219223976577136561324654482824640965354329404248077817604739912665007094003828983717588026082058123472755722391392282226482572159160760823044895975424014582990340911247119996950728907915979131889647340007470794263320768625250652316703694827439381404564809609649734960126171671582033109106498520855324468485064681957544372747492463535367634116560023988676977278117776273714121685861986585468366829230501328586441760216626553121126389133345726857460014800819988140200604333871803085980834602150216455861104361484184398541631498093655655394727009730861592053819854395103279765644271663458639977230939999006821052434028963803354489603639936523448714560686668907974964210111092537876803152974746180874893827554233653692987757245223704824245085541812417409774418260293604161273719589730340244352552257742144683546353174891712284955737574556069664615669219983342887796085130895767535807610783910924891665482694219220806557527948332527848535369091364031150175738885343933158703210575582713656921015960024281032530464688593397372755142805461087674468455540514046736626927131817637357371107115686906898360841115190134486033676230373815171273163274300042122193898434309818984443383000973059113104992575988665678369803594126945638588804303651683381531911820836969480199351984550554808082147659839903584772761303319152576667822830924489329955632088673453098071673615839827533132375706250892984241671400856888864383080463703849456971257291221654645062762352877957480564010540325379645611676875907373157230998451612826270209124869965178519924151473072707980964959883479512659461799813091570856204052944022512637480692823078146352304514750394651124651428795170060828687560570389683301150544994672742046065741091067497498090351646113346862327001635203423880396559516076248443113011509512531505934949717396067329908660885795932533054393554271508949824449314223853220313085880580569030667441312918633045805067414384724148917066047072679222089984692262835214514131681250988599122146498973888482002534546415131638753549213865850650201660122759277603060703722678130658605266631623532936960070031132180656755761051248360444198813732700829682329382271751520507979540322659923179436241320387441119429240860439059900754253034033105353638945607565836324157281520713378532961830072953447602240510027008033225911484028628162672735772780841566397992897450355131905042729366775766134863783629833877418065850844461057948099853087382120053827205959830564339453962845512701815296938510498374994357299429252464499861695321676894521903347984508974456648238729943351821677861165273192899045526812597432463305263278114955671551849435660341400512853208616939399732825147556438124282237869115737062083616892838829992404652695930185559429208339665977868701517362138451650662699639676072803620825284474279213685770630238576753429751549422465405405816174464944461842301567998397956196971190059309183688398612405617538233148604236237912050844082166613957593435735266998503413528409591104182399035646766651567507505572972828217332858843380220149369524083089650118006428916962712449678874838306910088812326364054665598515480176655472986155542520362182451015399310403372304739591559972255900129218867296788981440090367774752578869924309190943176280345432537020670180010669417936320685442799013793557317012447212903174131903397830239936491753195517570046582775903602310514518596354418596403007982110912459294784684904595342966829227810833706669442414618106458371334175616896662277924280721650046625767135236975553148359737559549639115013275278939877021755117779313350055830702702176293557969225840339317781108516299026474164192981281434464488494775084595329129256996647925676584364096578058859895381044581491795209561899460969278900147877622364958022746998753972953881849913310611342212553323157101196836544704463795142624778307941605811446315608218049131142569356833554598440154521042137875252340499177585645914443118979417190864491282098405201249734018048524268113951691473112610136833878160760334843963767816798183808137866014124769118013994093128633410776293766867471415098408903508780751982010143494546049261883861005197490979128092475494559504963507665134053547558997405981546406515244027460513612452839997908122744385798616811867596137442501383027289144231472888608259685788008579874939331495909065973406469523277584642229840343845674304893631649878732866365622497548428607787596071300320755047885338728437372137639350497382531314323624552623436031209521547031060841918467887702167113563259117992321455770351632161150281394974766313610897673750603665671127569677270086273821890101845466209277698298987121353088805285527423999619447737795656187974197483663670054242893342529772338753410202809946293660660354873374921966366981558807154250768070853282028443650797771468546489032668463186915277927691284974731254618551372482437821749353021592087953584781518146740686266904188105228437437630550549198932527220570724090346760730937838789840966696342793253402703913571752719540690934873137115690502807123866967272945448418301312393012649145682523467102473302439439196040698869196338204734861192060327523505712411407404449238248945566411662014413808315570870008867346218523784816802842830776879854877606810919473714088851412209112661298075128550565720438090075244048309898521877236172716976931336818818687863520513186125848587188666784214253058151067474924121565496041017139016670213724165382555215544673363629394092404178119577494077056329065564368343069836945018018693254372904865013613196516950106218868115357189222325454598541878815131091091966630583097854356876489338177869884925906227787944876581818196811523439673975328333818385018076249795252813605836969279288005611033712230059162117931753062103110071753666707496108993536013945511549580684413901777653908045242737777297165789522066028590111223333331442693620878409854909042557870670313866255155015698422617268491859967413095842164371609499350182394033478370259755704599099172809863706136616262327612131614251927954643638014730244601795534725910014278120122938504491517983458583164908633905901728251696652620415431043969215203292187810359231995588131985667947518077188049008783594391317687531436683087518766747418403232649375048378436398211170370413909382519470338610925412599624833103393278328791118580039646465906984079389277099288196778700698010771638515024636941272728952202843426336160164713399905955587305337701582353312274570039238590486651265671462269149733657061319324644828401522204564383657479611480802917228313753760932786054127300150058858832952745105981837483463416569997960281685760233892387894071593785282693103638984436843404769804808122615083967616991042285673932556240658912176200744499328167229152788278248847139595212938796496338429884420781672179039048629998413527057798247721326181210259213682590824750934802578018746072826470671775581407593260849373849429025441236467271030949654429036145318069990320046193092750912108643489486782066656965555800601493756281763437678986434326397175467761039975460344483233065747565486844451025699179752731142011805852847819391626150551881428252770165883475662389874920296137636489616675664487801811557299913334750622921489421793896235341110740393962533126360532148255966182952968544359531826439374153396484558811689623167821766029228438772176566408535152431439564034497260110335969433336414869449072988201144904677559917017634093716209824465344486529814710025612234334243923897472068193235996239349142372684356885512913854427008052515890429796784362339050600823574869076442640434966866887485185899690264591995895095526201190611577516531192222812978429781342399333919541390142845801125496616654482382196858910635503383366251555389031026819957765711656883207187868439285639305122215349669055384443746549093478769762361045084400253570465768369158299659845965975427381488368447245493355942846492350278491986240892007407269731393170528085653968409567943354894018353916971693698263178858979204557525972359395000360395436188049548228510235583175227137151988190781899213215592699979132658347375081717402552976632527481491546135431129865556004035367702495058367542988147239892706708617656635476795973046483484034004349971118424596667060040406917544372419175007192129526502205495764151169621905373868439056319191589165515181118167614840313906324014917431589317407413157796608287203050398784489647159714290557536994389824262859543913474010584286595612166522839248987465022112288428476079139017149889490430799486043625809434026697489969310284749008798114533351169629919854100070814351059044482453840164971670054069834889974201311804084031436907464463439463548307534741015291289664311873031454632695599940120596576572575789394322797667981247825820691601799584804464600510607920191125108204978284892223921411988668080788635107355990074483906515767578635387730821606754570066563486039046180945386597260966090924297285839784368806171860816270206501729481738287465888997735599215496925692782602717310581086713159923091949413599794169385805999983631368442519160423788677180514391330101624803026207665549939659685627603019416604741345215954166456750329446631348342569759961888780307063295409852950265168522196498965634830550492658646741649671108576722971659302852504030783350852625447502383644925264283804241524400297557960060283062359096365110818889551839017373201455097550237245850793957055209921671059005471499970768879102126997441990603981653832814372964538828056154003474251213285373516334166042371676452187676589465507858478737411437405587864042939672851052885621436529881979487629155484713607583944618073032181064465282666975648660335037176814247474464785124118207009462543941338682552634811989124056627037185253365209690544147467733886005713107634984597530166577603281466532160664468559924262769836973512971558521612043266251797175506677954322581338637960245220959916927001145331905347545888095030504023672140148617963912027681009420747887440939449094885269629469567867139674444372871943024488871946439513479821833308478370203019952589161978551392019911858612549627651026133905583465868469439793650210613161415691802721895469488726465002618286532979395596955096221009652797271356863106911933535914396700055942826181410195867621103490957152640411115018043089714571468271889334922525639833490514522140268217862608621877527971772511221881462943545518648631319927698928899409783512306064978458817033424501766695909853553531150050235756937573265725709435237932368159664006657247106872178023440030455999316836548735997970346399045409270793450785994927495456550115154062569558386998183840466267387663202910731909484575414876784128459078651259745692451051141293149331955359498021257365017223695569045826272569495085278182055288776209391740903522141400937636224107370829863266501988462961869110654201762879829608675065210892774610213269141506656091269326076854955068551769822738425126185701588154887561431297644564088321518645091232294809848711810987974699548765703696149935621745977382906616502889477054844637938659599094305846602419928190219993427300792715781833820201280710920557883703818512500202212092110918050697580697555262827446253674078453875449488430086016040463580420653993499364636683734512511878309128980454282912001573874075421489171421784555053049637034984249974837335394587992494775008644244068211101620966284502486466864365936671926798400006886918948731497709962849327483697475643189513785874073615438126831480660723634896686664957819531257726062641770566668753373398350746959169164354130890936785712622833929350484799742274724691313975060933380183099865288501393666288433940858654700024956712441754339403253271571853847887419663300983112722838137698637405045180955988245983410120159950653679707986764389946329481659296576875769367759465490946970985962864570914920832715247933567522986338460059389000258102522081074176793772011095947499536202971183168695819436764275560588990342565883378308225900892366322738920487170708942772342263047165779682590732048355736455696892038962183078578943894570878860249764529910174887394195995221336375473304702487219966743311998197720792665598568356451442780591920152915564504153607873550523153109641041421411835886596980758183471384451892044286907155176745706868170944614930456075607130878914380989305652959649179453983931277307122048917500673029425464480111799209966834038283333001883890880744547775261382148315387099535502522862034517113713093646761329899822801202062704309309792515417551757342256994205497815200647677320892900573653933656953244293421293157599804647855937481660676186515088347799737706288607160340108339469850308106684715860733736209567341875017303512358868836761230340370096963036106802760663418247869990954752565891938811766816405249391264321584064149293772572795414408846406177490241176482661944987894275707935331607069877753843090852224323872923194699500801497502471549917374965790625136882544083751765779917582604333473434963125420929894854575072328786514018552861589793939727243549244864848472747084873948090540455066076869433207798461715944614131776019479407557232771263696840356200118606623318039772307353420858607792235862314265885724513885446518791913581359162709181250786340488295283687866463233547084433689005826487615992361940398269123089997140908592456353329716788290150176509732670167959620278668054660120319780239764975022648291833181384765365614241693742382452383650012867839084931875858846852736608093854351971607656080745080788118434424588607669419824977428847803379981630474870751026373824252881850869897799762784896283110277977436940611493227653772865815230129248298579679594476966513646461352723845227915642322894084658562402852403641604903834789103441371827408205781727819928029920057547481122299313034911146563958018683116641160839153201508546295298849705944366338538639563424282791561046981841066603989048664571781537064584263037833761329826576383854938736619134367845560674775460165627291317840890228694443190108999429122251515655190158029885012071290544462142121080383262802783748902270634696750057070314591942670513108997756770067008754677317569625668859335664306802756763529416709150961365102618970811373114106284457720730912774759520721924047373977657123632416443860640342050109130183409347782682713153781571606100229465696207701474367437118263532483955592622697662887164574882061796881393992905746715565356477428712135030773497321859139006587069396962726745976958521481342170618792006748344213210326339777156841843308328738327511592196296526315550517385754926545073168726924312911925264774970705897880741623796757823723054974091885089963059951052939476688960207445512095958286287535972125988581890105771944958051663590530497026781639030185903272429619258589358484860658586083911915930853799484462280263278589946940698143290205427770825136986015783571262796074410511416991159044762762145844941322267724759815894234162911460079101536254635337424737483407989212652257302183422063351725240949053671503973901730776794162053871147870801361860333784671878740997100044088939498646231216851162538299199800863889665580355343683460196848548486801346003286873595644622455655225750978361928224438224167110590497389433578549489669866498053967417438084794125720869500431200190139409173678747989378654704666465851064180369037009581150216386180354767348272001376021019400581261665954345361523225997479540634992147575609952101038158991725571738194247488950490509935086365321125895974668006458438875509791409130690121431971999042217310437136980513983561256334628904794427590866279374102074254395375961770066383569397993402484648928129762639550412619748018798066023875466848093871883328747274316259658714588420540864489723652696757146985588608692190078018879327993121476383425588777834386218668698281027538113466966096642040101735528891325196428128802219800776566305498795847079451370541190500739161900293695558162339618182775430297025198530827189139263013070138896264856980089383693505918549154789750025659373572665425024136750547358172076702940980569197502593620037147325491546495120650653051653841417539189678243167621955937455820815976871881366849524454291602450855038563122006332001314998724744671094846559070247190402523744203124726418853438383205790658442762912844212745852189023699171737092007259411729601422459169259249090903188223437506311690390227544374348702931844239709227418517263042790267263790173040321800571613872933149526900949611737702981437626161312070260957453197690015115472491574373248257956702407003895169452814388383243785777590139851894866374450714614450137472838516737389180131200883843858626335791020377873096731586809301982517028869147282228951181926901560754901477152179823312571000376376798062490937488096093846859944170277068539572605815617287365285594856912922355697323124570281487026884926303620245731860535408529043272483885999520468381598780028248625190681957368436670180102751467895172687756683499591048376704137164424975458149808688380857793710437047441770519370920740813844143789894081199618806422518488502853899059879393406559279997603397867170188467777689464340616067350373484921270967426414084821703600675566560316558891805921966895106167539962979718194557286618371454598200571397941396359598293811702842407045578443939876333337963055372627068888251905267320778937153670443442428568297248596298523596583320511745667211119749163940056663285170703838860676768137231880237326325096322704915991473993111545092492617681836827299747600491859732231737506348231601666086213834430671412213330679417534960071667968139089783192406573032285536440967091786328297580074622213548161025765001925997802339798104361420299033729401605463222731435421427995312969670992868540667312353708614780998582111376637894584850280907173876323481601857701064840501540260865583672833142710483384461903495491097951740602406254875514057224356265558133081621536303017341761433512704387395402463053222994422599923840442940526033253379408936084027076047550322145760932336297397232132041394218984288077803699937330563228724169842814203935085463834918972521779832503634142464363203218449062659595453228222711519026137567152097836845431814152096294531786235010700435841593871847321645819318244142118948079125615517144809669669773319214691453607975981163195226030526610125428255646609770775691266813854114566341195313598510029364226062505361177629354125484235061857312144893960840888395895668070499795981137797686993571712724533812145467287832706303571975636449625032438673116450740963797862946541923048208783158261935901606379896464660765507267532922680029104056156786960404816093283258962221808572819057796177958260704417701835490254554224962609240236113499021606127860194842986517944463023866411728114049278612028800413367214901083148816800169531133615774921234615972880594133588775051312783237786097538485843466026340759867517398067747118061766139226321748101851870431825320378899856740512227157684312014911922404577154234482701120267741491269607791770142423102014934999071147764362279861146044026756818896660146273172228137767075667611674220983901302061525527311941262381267580194330682671474576234516821088242916650668887030246435481958364894417770279710697149599958690345921489553549014463571522623454864951440413415460884661389961104375904863404442272277583333368550519912242808684115739766801780061731061067967462723659230459576776373546305053168988057665847624419640748988978837224818707437252554091197280198509068184021625876918445883373670542617635855920543656060270923511384331127385157442425027998392774492475610360867679868181501035709246395110490860018969798876590275225993786018581378872288948194894232818498467338052078343040291145010273023519621046336683000261471715067730916615486597023359285374486774684403851644224148679106291334927070145405580851040140404470009348806974890390255238212842821334585985610747329682472397211085372991431635690539865660240648542206966754390952486924242729527895591532907548176852828415106712053921810753843205661317078187574296057230036413661728569672280700196449750865781712760052910668565535781455968627826131868431066110761309853417561963964163295828902127372134396294469967037631277136059102528911868821775987216021223024631242762047626393716506104741487714388305344101798058606708885408324792599909388726120991368753383374852338838048573524989336419809617450953304526745091413940117859296622888287350197932791312054894266099101046254748888701981713902292557135249923003006358835241919721637440055775383253080262126893287414189041096458469460474274213445561869585982179234433121533342754449219486772230599202795717261390382939030604249217181856113864907111171338921238718130040954946794402309104978138554549176882289557741023150430573551373794412754890909262516688945963226798364281424768905754748109382499163757829953777272034263639403370676972310532174396220608009703430007413241603756662811889515995425325313663977475564559428813261633793232590763079214840129907459247197708701782900828350763331479283786534061519967128860101989951593716508021004001759249520643867166713607135889303200432093261553226060556774854809127120378446316130637618179488649731502563200183196785490636312467662176389426707692506895509814247289887334850885738266755471666859076399942673909479523755422017049294104375479446365972869007764236367018591557092256302051143882514922006765444200993514833223045568319841002844470440698688519990484298918818135520346155924936408952478248340246775001984901332490631408941804447940922763259720276569909421860364132843235306557964954938496509832754261445911605228645049313722314895342002056771110982197830406035574074542438213867073794540690516502154366400379087527258552823891540301084305820172537920351129675175702654973655475829774169994491525543016795652107304531540659866157829248617899361061871357252062008855366214865618582515245400227184480679829259656563589066450833603670640921706284428744444971746578756286393649720800930265198078772571371401037046085494541610934238680759421338427017538288374874257627461016932659466056149626789105002177010210719067870234379414740301906907344697086203839653371908605652646723736990647395295218648280588648040068192988030781499131878535051698799346451983924175359331293114522988326354324730481923051927531867072076173900027120556351439550104875869640337318875313470473170903565857673709841875452990897549257473940530554149192704062769545953240879416097458258136317637156627980301289630535207144300879478024488688490089504046567975106323232388895084520918234247023645049452048913789342494565598408882076635761007129052527874087250642363385878059815881289660034702921003971090767979492095604782758930882000119900535903812832484317368512956372812952192247267463049791931128930397642285425778618594146467122400206426224644863244988289387172623627908356152357200005893642184819136777935773707146018288359214726355828870941339700060282822129514868411045780383543908890071953675012439520185112188136317838492847436690505721401458433840893005342757830960574779853620710371207191313602890355022261381455540691184968571579251303832970580345767633964725487812143471560741914717121372307208961072838461896190948556733274609359614940577339847647902731921571224039211462517795351822535835412040309221180153283854763105295830995899474666755249797639133920437510686288921647666388086874716118120834425630950320496331795378439253834558363695200091574714303827137510253736253593353869920437585322903315945475707056993372425956836312008411847065117143992917647481494109885044129208956778836391745302198930869737831560217265490494880712592777155832308133779912105339376404168680439994844495534632424667085799105943256028994327103128536529664995282474809160773921707663241904326851433045871480085071242905924935611888954739651985243467632106464029696549137459346871541702735199137694873736838348570561309793591445769028930507178601007254091871727906210978526057347819685012557924642676152315273638751523026178549952916634735395620011229409210716273490143130488160731445360876538851537443865078706901564431725020073394377356503085886970151316617336454873789552286173161804565727620840302262564440581343795973956705974605495283972753383252038721352778105987398623283302165044948818887035429738731509739339024186942303262712439588167236647598951399079242874674244037794961988595797053204005082461910491414442263452199012777856186274452447706489885159862867138853438140785186300999617560917018066171647775600973905857815034733698645791522116434209949827659390689267686719724025995799236347696514179927444899350569354611394017159114181487130757278634989157487418132821837471144736118741569074092053617729373249803117951127128550516983103051893250120955591585794777054882775072702750943160422807951336918157362162146180597474577536687290399397684890735914106450599704006376442595288621120049426338293862126387229099648665701395377906865982785588303272419547734659666689576990795163593833440758807220387614546646018795917293226602271082331988221451275401523271201115412402735957522131006340017214525387935676242329143058075062099064464106922501828793211137634090011797090379063223816847634430352076225382471776456482348393898573481330170043440627222786252669230801564507363221949772724514144399165362358141293424942948779550072394853532049197726119408937083783286949892731443404850458170181896243546535035697375617697820372377179139368314182876512279059873188122637157933450821562314201799003797105269970553309894678678620105481895122586391580281540787568838900267520669187795628326083427717396743003237429804384373307851681758698256109807377330261427482237814236553552647849421203778730175705929517502337815666671671983110196096883827736283717283155528600369379163530396006973619646840945887891665799595889089088073851732539878616658874156543147471022165990719086160786940650617424760552495706653679746868638127716856384568186334986879769457131754336994846121796066741576963712600855845115292990078545918403567967099856255154852305951456293369443700149794253706637834003274286625568326975185010774997782005062009575514734355733852772661432843475778568719938427278638994679226771372715976231417004072687305543657007308112035724645394577585476487270250232292265088414114485210752353473664639736678060172889272783853038606100277449484059083431566912188212181093096044011118807728535300291227508500652286307740830903201416648397462549783775298453880717876248717596398589856639168447429957378762833531189620438772318372761138068048341800330160981909601192329902708658085563476314471021107533507771248648725363608356083307398493390897998685606064525643911125706718299426408932826991091924063964170361598613521641553797644517559264754265289258729587771303596512055169563554222395011112110616594074251678199929658304950652490510734660795572694988184843538127790939177847986291556533257660955144760713531480182646157951192591634122315441445302251636763108736208491926605624692191961923533844838064694251259192355758107890542203834565914130919747631087854597219270352973049157749355395726954607782296565575362473800897619213682601846098880478605903981082812834765958151013989358674075772923595099830790328909414917278503941226315693286484179985351966177784807172027113358451570421182292154622591253348753085160609091414665202932684514719223207651262341561779323797551934775729930103109672437004708206331118917295405684283582988022500135325032191916563173006021294900905859981110959878177333012469927833475094407147773007051276701423874286453602063364502833347571038154697641959244115591374437363479739734474717432802610481891095066436935463649017779693059256595466537047836422047650640512197036645774610672098093237282751746511081985622658461283621854383854135495807871022122760073385714139009278454099859959506141082303702783719448671547173432602733109401084525681043220541224874393093503106427722543708201677582585405998276762353644747452432317980055954692734713094703009049289952789957047695389921773571912278382784883333651635836996177062922037746037386907073958284315549503941778452733836683330525622533183476125862339295171997137402454742463329163208790172427628180371137111971493108870102686340642101338069593220249854944075253040507173764373874616975590708664368285406507033201669899587868526687189631101824739665880052284537634477360671016058642136904799286896601623552487443187979193140755515295634746473216387138159180309006725946724767939533419251945664596595150256301805732983794603996350399940182446653883474457961936640167933631768080860784725636391339574141286739961539662883244001220926654831437021813962319679480833923067533291090412995561905199524711220021743072290053426521843091409021993500602600671130875329745631581146600850266524944258515979555332306263376282068894094607339897916366189862984737076855713717742639920134685303431286376218616561095880499757297655598189429260920549659613277834317926134662493438667489811459587494249314924496267013062102582315376797623352068570654070153497192812234037370055434646495910365153215710007307661561150376823224938418639684302104824475110019271238417898810220898055373852545484773193279211260991947634015581866120524804817752703224538552907350430367291361111330580281532973547706215842287085634527557962333753875777965183323523202996670877952226706744114959724038972915872342528565146223345766438185810313169179244365837671048188290259108735804893472951970573676453812429732191474911406824762215887973651064786732419586132924497008237107763910643867092164486050050036462449662031591081503466245368119327115150799187755969293118247311861959991593727430313381439057855265609990681728487625957418912772796486372744617893214847882962939779919920625247402820939132069120646228305219276264317811285979903287438884403509758347454960829772578716122148679774732818351410945865267745856017860914646703751950070762476414071195171865348310454069902495845253423971007153749244258539246077404506621822903123096559607171365041484410813789375118996326907315606852155516765965640172806640812226367383613967145986469718873479431330983274539348315023549291871396858956610385387247930246915259506545138007123573062787674892460897755905941865416420385770589759154918472081096376693146015576144322416598339944601140705254004890856694798589136578679569717161493229484288496740926604942476168176520225554043862226446741302755844436050447598259563413819902060957595209708375750166523724004764876412502668027103544292743827209526244766320205259710361358748022024403883550486642021440204768070997219494564206407082828035070860978535951851399896672731844965909595853848039582428416021356397050767769213420389240395905190716476622360221749130998137472506026412279449513586931215005865990823167952603592132355672796169035779842457308182171290999545211063440271199128644401737008065802849546266874165525245659996003058376019264695507496489597043366232214996407484666741764440935120893203386319378048933803898425037323709113245481183832503488405268601101543294751494188998541252193091498845026682576739867897539395035927077621946760742389723239931610661249735578568868394530162972745344614833740443791152280840604617603352146795491597329016441492488252565295853977200302144816491056847095122704188128786541299236405170948286996461795716842268175177743825307487297204032828987348009737083585753603150644914577295802237109226884758824140393270806537174387250701981204731298087138206130131036909329276865383546643853169233414226575121483922945686668312042194585849986158922206012936079576868914735084493128509471307330543493663039896326182865836019433050075343032597051775088775612642121328659513340641041659153594198172598162845924772889271084280990452325950223060428463589469168070243514458193652665650483807694443540043822831215098863491606787561008206549477418569514470697020950114284851985259024571969824401024786159949846241715407973957216578458126238555268628104636437407271415769896403671796506961553041729136988515915840000447671845178654278717173785976008241238237178763314845770859826928355987830416702477178416281724872096966096296589182394013881486714789133243767139314729594115780213027673065827273265734327611854479807468317629657112804078815521220857377245801302183456073224908199949488525660409876715043829967269890917290133831164566916209789566026090830291324122952339909827729258619138758901974784250932991735337398451817229595003722735887148540281068093988090383599869611110259406992511191924422446895263426858066156691460331828744417849379348222421006812686625309918772793349652540587469482926267946414112527964553388083666112362420662540885965806696556342324027333491554172522219657846524081873416705735350743123218082141839484991048021326976858401027035809427673413911104286633461780097256636137649962880872207859434850784880345892627768707526780847521511984637484847783677585158061735087363050262241566596749656930313488594371342438533439879080333598122919748636984898044978403801952173444478571827416306758105675184917820609853777384150126307681363281898839392654857403030342775710174108383030021551100014556115927769447382759051804777825325196813024996143496639329348677871110548623339663564473254272709055042050697824434158296145411910858577411871732524530681498321067267575079038796152732949786627990684402093260618381064869698166510367817609960558051756325723857638448240145754810428532912424997161928340180693865384035540206787345932398960521219370359518766787616486159321733197833640800229475487363557032205580466399247887803645405478268430389071020340826265408242381603034891930493214781973356399598053250997473500467939769389814500451711573173501054048060585575283856725081918388503329975567778529036992464247247475047292345759239061686598536283402425223437628876684673121388170825176226824889997199235646386696683331881877403299756999103388832065190759756938155543298733684237617589015756182778717549320656610821363569966181738012997236298799491018883994867396305398569312313346580396673319643535424256767536077879514290708656436250655402774771380652909860866757352436429709101948516657386946169254931359376574699105719752183291634921627478984575513695681502885269517066845124484227956003689098088804287665703510660305206452622228169626429048885695805729506391751864142017042716992769526439468736377145914633875207345722011368900940734527671044746674570835649160671670965967154266279360094139736228221660588491531445137510055762867142442284667995129294142366745598751967228438355034892325090971528749341090216595471519065967257278362201599911420534104960013003524987437869677974080632726972676461109632404465076637796236125668195856749731063740030762667464409044671626908439862705733916292504181456708854046307375112726810225635869850845630610074657345425154065922465534789503359683491526001815741941971243918323601767179379738906214212432220128770345591473246613855542872017314601922177061729452200134016007838352533510573948254081175392340524545587299577071244101483935430907829598033028138617782652061767851499869877484589001014097097098141519653181895283197329588599621659108345287449264836127675457896043024877657836551209416305984524928224989364823178778228815971981548205446289482162919679750275638357888464606664436822136522277201812561874711075877475882908607419040738298918744607767411761875474553730102798053500184352037071560569661007414475063865884066918349133435866255521722462448344420490886798650261172982000680454672135627973778679203835304958145848252829982656029703315896388963255107857920095293863927231474363746063589410765050488516232688485360913292591242347110168955543212400087627531463677746597653123825487555499826248017395719245053471539736319760436144889352617484743928392487917592080314600716890797215870253572685281831500242894846668964587536824130480099116630749683713245598325136216202181042581795812275505714736088827323695114458523579542784336564381205362838707912430545443744352209788021199692991439687611327753190996672038619030484309316555617005609076628722898560256906454246658862614495940854954727110062526810954842165036456039136357785469858355402363010294133188258388792517344923531271975095431905977791093897054225264494385953445334599355416700748594125934323448309314087238318224170419552609406957083180295851108625086465343465504607090099225083625340578001767259046592656375369621028991516814388784217787003564736541015385293666744585794258458868489582569776044481184548234796588181548621652825083731385873947407275741440509180578904045883389839361996232994450529374822977583788027423705164251705881052734467020972400660017847980986127910451088484001468314199722701101178251112010997732620275397604406051600299424599145958082728406358803960583714515345288219013831653292557982409525315922996725366154085081829119213461863460720742553514574293926361466825833937510191369758237317172765345339775004256515648765146965573883725854677610349324581731217579400814423108519693121870276443707499088186761629422836237876463205159472630707170610718483419122690284002745137765280302742305819769244009218346614506940700314268563639686887807330131829437170330971570732267588486450046687266013054043495049866744174088747918119444296686238396058005399867403052937693000835555377011673168641119470551458235310012839141615438336198266091216266500384690339728295186792285298150991709202326263073439409056487893086935755234765327398150530102445908033458039520447489580256693515033253722038062684980282692217951976895770228380298394700918155041572273807954804118893679147328963819343613361300675150406960500986223880931104264993674266311672473041261004692289805626878817760557302521022190195913516234259663382690242633121369677135641290951672243372011457245391949734667493416987966875319990159116344102934826471447525313356418336411443916464471222625108943582268848527604790832899737578093110463533444243736931557341003631015139800013263879096925245706946539094501707132693932502332544947848058823780683500916194943281490064339475586888580699988534397654140793392531809203922205338592647591161805831490605058955856058428828123331345798869983264056356029159231699664053727653184088322079050985623214543549457259754657654702675229590671835788598291233746324328577745638111445458150661286556297026507435962126634091607122048028917051841538142686958974063464283153563544242097045480009484074304815179717661628729267230303013657714905098164794822007377261551104084244088156475222197251134242716810944028057446337030197473799467894551005780627699481401554670742288851926832271291449633060247404233696443208204002285847144109543484107286721572735774684709686696824508686490392581058266878270185735359816456697623253678152089793788930350192751351717207513229025577527787375057350394800894955937932994896932385838871476997763581744309305189163255789285153611674679014374870271222903426763594229661117049174840590386342257777944235992208474961080634344770208714274720384296132020766586717380815634215486149414333664570851928789360922366156736782747293919945104849683519668216175020184629251030666339429236111327123794800422935536151319629715693239096109972774537192825240177804287001668467273447123614108057034080570950790359100369417938299955629712593461037981457421686461413011029655412221995169716261891589765491423413330881253061650118237315409761948359477499322614464421981543235039731858057261468805025825367363794424928590875469973902533413305811271513732612006933074007473866618698917455671942748841740618019261384492431918077925236157101505825211637043745074308085062456278646350228795575766031299941828203176038515606839022329733479608397770701609043672011762108196599437298295943065699032417093579692957027608522690828371210221730163541144021869914135533322761781467939188007131513274950671412891676422301426988543892940151533293996707077058169779067410548092593923574296202329782610724062900000909813834020940071609369444631102026868188321883644479855474989708310305607656758874611546439472601492920147289631530718678499426234873353646695865817911295267607206763707883538864860989969063070860147187629106739444771672616498264869008437253989782183338222204958821771316422824293083043785571010047914423913972319710626958389227765586447322268605228250936545375182544005164994769274551397229155813730512028655211018402053816729582532033690679011826622350589383011803439290717662817197293386938936799705359678673707361178379323610799554311826098370112084296283820186794383502981958592363684685138184134954865955428024922610573295855586642580321527658787831212320495032852716639445951720956403996340453331915255644372290562098697956272335546368383040002841519881185880026844762324143667177520710941035595327792779129083438662843608571562924812181062188716598217525445331253382192648142096144941401262165818604383237522639788659781501310495389590325486576640330570787389207847960194079842858844210701966284343841111017306510200420159556299725161426288154095807951146441329972116354711505738792255406237703028731269280920852036747538564094907787844398772736651641978147293094018996270558513189988857993583849031897200536194491378557910506186367857672688129264125871472947655443536179239067538893135109485372862606831829224653561122756844531574906263932385663355136515798783316084969262765124607872730084901210807268660524272843154415573533814518549722635574454449307581379148268448129893380126849053521074196277882516153134648329274895781210118412676801902092108564531198766684391609469996638331324723753502016492804221053767121179592224013596669164963447883078055977700317537740446187093395340179046792985478494418379858547285699174823729827174268369208229993776759008774862890909141349615416700081700241102619686741747884844984184177921853961348112862969620230954667852459377497636242757431478435491389519052450377558337206997831517188461348318156725999378597999522996487789549115475175096434911936537474393226972140572423003009514340119385186329553609248860346649780775961604279873390843454869246943746017605488165062139310160464772361012644566820673328735553560137961085300975840506584660661918474063226413048059318588033801531550931567038987560671162466256636371066177728620385395000854651752989464928044902572147559278193618941445359800725859504711541898575282289498601723108264684448162717510955925653377472447129147272610917625716198600078745077416071255102474421766928124602878365183136285248641357891762188788900649061079194101796648378808270732792263638503451721061493370306737452648248714120387904376154051424893068408644891858332895712479710712501905475280932544743744209066870609127153346521917953668583922230463777331575767905018796282134271699364852470148395902773638488066876976799219546119658083365652664087292580295485305801265542445752604457483286279502314565860152774928653447757141571126973329889857466929208041020220267510218463849060225392985217674872998544194143285897025548505622374264866816276662477823779448058705230962859101972930552091924483124233837061655965808656018738003200048791777967897358934076357711338430204193337177399676010842793810677091691248255409839079820290635661819822358060254123744473446707452673066318395278878718116899600870564165861706196923078458561334056914855967282872688162016842796732708610806675015785245570132235038823926834138011261875222463291214610827610567126378550656638250962964168844430248816468778235481109335487995004412206600808355243200029342514907706739572247925582940561807129244187699771178134656090999816747917952065130709016444782207680221191236883374796038503736671666951657151068440251556334425885672799582756269403018438892485871173965511718408468035765075006128962199583110994141109243061710808827085989437629894419583518768623252507980833341625680873719105377072281145125999555610580524050269877916333254597562257860023117661135434010908307687460158228859161459010729919279926232065823139662109877373896758926752784393967585692155964185382935295300725708328642072438047439508265460076921303288803056502973695252301666627466676512450478435375693112279627347595873614081363175512502001839796822295416881652678890025629935358837026239435413634320843483984111625450642183002964143446452078547450412393984342513580869078428384400167092468161208469479327245363987997037826694071901942693466750282590948289043090777016341001594285400506836464150840156929093726610518725383182854242487280209406421384736376334403475778867930822655128737516237153027862072792753359449807563234390956865372487754459422953527623403857629991499144513002271181370299514272927714643929825285927509580358409073145748376118229405828421249940501883088726325327444097601700108930966226242613862798286904811692667000742693421920344455294040363480976843924943354924130128072734558680008948467522212795321595596272329620659356807564299337456132565500848477911892154269287215543697901008954584280220436596531455429593684345405733983536014127236322812400901531018449525846611662741480513094664068420404802975353369341435660480603996128315637218007249212570208398239154637741407142546457315141569164180394839951339393515676639628219247592911690027387388986572501956353275430075292857219191376892646944062275436917265498817146975585758362683029266769463288693169931412890828700567424060548489663425320640935236212858009927637282207291123552274271682898590189241915150575649472188553739750061773786735610478009587508196561873304766735141923853554693881072584273895583240301240125908485338991300535097450787433038102324874631123532778443166175095659368305588813205836023095418664550695370252356115700200219011220248152246157998216176975468018548495782512353041601971904747352122101144745862044529860376348828548075129677089973527190457561985981902437995567944066461681701542783292740634207869041467658849834454800580852527497592783466387014540333396587660826154106072278623572167374266229355679183340067447985994842521446733054168445967338387905063698473871425963426691748767826770592847798496092723979345868841913946357829470257191559484023521785358993158087196042381498765761812285125708770193039838915970325498348854958558127594669325546949520891608012993963305647399740447142420048312748791676205191264262194832312885492448081613415266804501757735629729594038900571759203855474891782792780332460484976921448522423571547049346634733150631631942379072959010272667213957090088105595746643572233987762427604149585796566751522371573263150637762393839767747786048229229870666872296136893415211388883023164684185946818137120009552361667101862731387253216604651531775620978681457016406105924692555805932137764835185422053322818244314858741581310291854341254890217611292486258483143727776654825688924811242115730584812553388563742211369443311447458953027623960738400156210918624630347865709782640393098572619320393201782699713579920121503727838151092332128617681916709180426959714726048509702036748368591640573294899206029292057294152120678107384460714105843194098414584540067280145111059316526949837714484973932555554205596975855117319351925066587392116498342961837819851043850337240043223378481470826598989683860371116195949465247292854604303834374325323848827324630595544451250552453294589204138637173495600807242240801368199519899137791076254490156088792146241312879233968160621849640898842564093365468533842764531655325542494506337997995242797839656093809552202876289089109081877088920798181586608216724203215500029554661957509188485609788878105948300941388233550525122811371534623285147047512750655232369234251877317803785089138589698316057161106962982414495852567503540844824443472597324965307585822715912225569529957655994214536857586351512305018889350613246950909128769233161464131918186408962810391973582662360595578239955390050993750706226253654648817264010318565498922193547309594310635279556079476074970960408741402171801585367620604295855062161342562769594314258484227628749971349676057252791271794790256345127854789488457388623046367520848393592943946245513972815618650606053654953993633419185136662753417621831112939428262587296798518302529148551647699459644488546159672599727315705236956974898289647577853730588097795031985635552852934967988664041461763424238815884637467853779246473924967785629966301984099455183269667129279755466517051486670840472141754510882808860473086386415020947159392706060628319406248242997703439856359533255510909855275388491304976909417144342311129142851821526088612841262025885569534927032188268878987476281120787834258923510078512364123939441934054095644258956737296703564446650958472799457897315284833009907341940546564653182658508274681041066207555901686409403747699083101583566492295003195989703441863608801143235485524551007893158838992890693438063631557753174049080062469840251064217774835821931249294414514540015561969501771732733365229887526249809829933320092400413704826631923618917299543285791669603313424076219012566272397461348593663747763113045257510913433982788411858348423002202274478027729264937028423596361577542494900623277988548142172428069401839406447262698335455855582998538048928084387587712598128449304894764240542820975505685266309197674802126494475062171375842581894680641689904138571643354668161792312606668835306328448606523017049234672788649620448669324305034887300420019495947147468120904780016023822563573847495134871848884885466528557943731429774205565302558139654842072341004301537836711926813531273499416675436652316810456769960345574095158604305790342987113894223159762012342679582514687620307992437639728375629782140961446700910518030741277039349818044054244713430948589789009659355080400533049961653745814619975270348651967320089503950743783664616772804205017407131160571710198890681917021718294496210183214828808670222516256265407947876925338142305068532935042486648218610146398362610348161580775977554550574442836484161401150640552745161487562551860866699509612012117080892932787207500082160976291332708673540682391126812300689688411174870611579203432576638663020314998810025959522729867324464448101596428583228406261850310700555059357950782858536912122784587587002172424269387602448387735123264273106995527492368403070022318890171604604649811054527680942457740948871799430659946324264700253889332576216286527606610008649946326188212562636119249613899017840111119944761136298393131363774464509037986848605052259210647934369073065739972351819705351774006878752505154505669010373747394424771194219019374334550934186606960077906540899577782508050497896586911652463537639885630440731478244886405048281975777060085255475317248570523246816779731078403194266146777749999438083973289448375077043811149891199649894850949375901536101821163374430698834798951050388817840144970288642936522637157374155932171031309012951506026922647304835006178500123507501630068366623145547331652757180449206988102443437179904262691136908117972764956714171363238280705008368355388220616359603708112621681852103846693405467790637735477661172997088931732205356181247687882506557691292675778935554030986238644100807007030040955494219891646442290020453287048206708259948446668446134060408834346278218272211371819846103479337212723011043439799457870417200521695355120748687662597760059357872407711958175183949548504137233578662575622707865414001293353532329913269556996898560021964988883213225230977331686726687870294393410626247831018273972552739769215131239059348617190735015068286738810186908697033478787104700998300363461948647809003654752260746010893455683682744255714261645953514209571939029001184827926842320998078338534736290468727957280355623397574811485478512950503417524465211785332622198170610328184043824188997790154061108136260279923392825292124695651416357887011922778561467331188763914500854836846226198604486248785582389535881498860630009806120312928991529335287708357780222846638571755642118652104595354308663507683061049097755035732620576917436694442408268460125203942779169884628920135356278145898601719972330255791863518932450879974412213864466132404970495455288078094668081372314395934636171312044662273077952432028227674471841337537604999678127419291553552670922891937045909591237531496139043855512586065533692551959832693962716908606158458490271839845672431806924100874425483604772507734470013955593093723517236512412190288878961823221516629316355315986774164542455031677167299701917138650970949182115239867449907308246715933215456752775614605473007594340558435037754638338209586608803656840186952908820555785395093567031397527386881903261898086217820987056366998939940294287061639675871003987048969991084878890050661634700102584945643330306798507813499215512170724795164702471931444994136015881489145603211517548435317518683728117424279212539279797376251786854933491852703240925455774325336086264574367481272291728694622550020295667384700227932337267270080313979145732617645507546689173680172903627473762531272620146978347795823497444176594217659009341751055945400087009524797665762576182180717531162281421047670931994887664492932266181927769934705189768107215834449557679082301959276603236340723899212838837956841851720140049139575449760031039105683995057596682800183858725296328857527147366240319828714312232507021377396184389257577266772389797885979840420430815869279682843805805248926644130791536528304311254521873581451985704263633249701073444056957858999093148938236143962353683408838783002944946551357597764679471040468815194904131312251534917466467971692812538503963923327259115478466022781623144607951129387499697015719650028359133752318808340192735810084748118389224554861368871620034661967969804737342380000435326056187988151580445399192659489686604777123788465250389324816745360548573865339520471144020558943141084067788803917199749091403033475287260654128641166053370870021423083594572705371658391098167320887535472979046447428701950428306576863109300514741453737836965881718560098954408795369481979823011786659349598718020970094910975923775048873628665268124356378032538130718667019129373846633568349498097877525737106429977766508032053800144648479289458580869688328756235042797412114453679738609192406981217081406417497369239371682191784369077014968139798071084804421070893396818629371531106771868247690191919666911400438092399484357414601523259824389553209423579007863058861667820217445693142558361232735954714506256552070065780021797926542414140349776126273859429024641546726326752738617763000244052826400571214107299334949770357484055104579464637604802429738268609828059257316207104780083762475099646816690407355547466519419538556317673381704016140985114367478971287874368508932875683830724933147390119728016513590822295151518935996814410316105562486315186467269295467776727246290456026237791489793455367132926280422056291294525887715784541485617876435642910020295067396077089573134373648267865453019697897081396089264402820710050526752073309920371609288201873643997006471570486182021111522655944209789102325066226145918210377559660580852763716893394036074335142138155784744879154133212631720577536809540191194153974659089835416503428010503674665877985215753888108082527638264275897028168972873607710572659353570004450141315142295986812821612955692349024282856169621881901758846610647551142307577220250558959014528208598728245070066596315394181527258677419612703746375507029041254364447227188014737294586335448137164294573812444414091531448287921905419655030222076135969099483964740401635004248628396739617818019532572209154578432058073155361163828991244116715161066956492491069070293129243991803894487952475669012980536161580989874956082890767273743168569661069335885545687096113173723762631291121908288522410833764518778773405055828970853886628174435177007583584026233107432896478260735588103838370086191471979496377668609183506002079182248248901561165577972914109659871637500587374602897059199570821574956975288154320066075108168868002894227053291441879160808955879271105303756912092673722110318800986978172230253680758903325822844567973837271788906647297796740707152419293882027081111193648685809333652116456425759414877855524784749372369867379559684184531053513658414175016206172038637161005860601436150706548296330925793979962510629782341760481882887994384529718918445335507102157603826229348713668123465301563715451529841316750784464032523940154768785564796787942062101651974640345828740412747770446739252173792756806274945036415143564451840586847108675044222982192125424921171081586034304721680163657845065874116694058735372318353065217090965328212775501975573435928431382231367880268693256612065734943485363810062794135504468294267982382646051949238164608815893662728324599449302324859391370394245930387429364997845990213307328839216608121740000449341272026225719591962848481675846696991569195855221548863326357558054450491686164098291373163671585668649849222471875926717952832995946641677102945907058285423234024501753743815944448551314874963993420910920240807053111498922068806084851566607248697002959595961087417327011901453909154149249293799519496958081495929964784436703806343934803403639108815637603088901088655821235373216158937374040390488386230347580013710907774044502200642778467455540517492072114901450640745193381976530719226129339744057325254163078802898282089236563029815987047186089436561916532257866942048731153422508807332880267729855870004551586820430224475198012032496120570496887834585469096711687501839680167693795115340656621862959745745397578355929709746777017404411530025220783863682870717462092354046453161749177984550083430582417351987121162048498281531692879902747588352645001218021826355786327548284111549458988168474227119692219598007762759658569969507917968352722751192590262048012221900996595127731707131572847885888636748324237470147370044370894846692041851494686623922897057062140728098700966801530824826438482480138593200198012195807406252041751069411367004738798788621504454000769027848736804940449320586493392028525811605610417713798404860432555554967307001203242321970562237492553003883225369588299043427693416057636278145540594129022124859723374276573015663291778142510178924029346207654250247594884836096296881106641738167369173038637713372592454153146943640674851285280981877850400469166818455316161789206700335892936270321068326074872957079418574280484996093316909901913331460548802817301977031345580031054610117501309716277938689114154978452749678741351244975977119253974870841878569236196738845833335227879606857672598289620827414509301503753214963571161056790401325586033099688783532139424481910469759070292698742567012523278792272447764003106088683778841968559105218876889739450474720138653454071575007372961383792166205852518384543810318839883567517947348572924964874192593017516508235522029846231453675129571402026052760094194032267052530520224153067796096000177673920051660024070777750781667180142031128021414719697518751174759096347465994902233017913372515579727261471859821278871479204600886935360602400263498442891606401904851739629358274469790995984980567860847261247282172612414217698644262686045929570607294069517345686384841972664025511934552390474354177318917178009854336284400282035288358106073492297507382569281388657785897075847756965734570288309915792506647594516923617682902772491813608337540171938422137044817585002506105233474023294163314708988545518735250013394341253770529227310434696198246469473266881498410215796690914935235133209060954078532840852686788555935876555909217862566395790192401308092954908604552291789451443154718262390166669803205834924825834508758499685478635125914280547021125210662546830014522689279213768536219762274755776400676681640406219601298006017015865224276353007220203667610261619033639305969315021816658574291847192945454505023418704390356082781556596360266653579171108272205796038932296710449952707397711177480619504602696107712570668434844868708045805924962313199265031575648065947234869762388578659169296148647883178856250027219503932215638025499917960069546542190789228366040838656971196053684897239788139155737703064481793860859045258776912139257913285977099801079503655917638753386525023968509710510538559291568493640890626374189224930946653733014526298877029313635548450580712192621167547712565363688327190405179131252903441364087598711680124224586244766440860649017327850533472919216279600435150243830066584130349298050463995956893221126182046341594383861215841420388467947668693887666872025702179605129705267673385156247826912123721728014153368721303924646320979947653908458601901096478579814920152731188982441734160308696391544348841466563939831320344867666277767797194257700732021895894924063481580658108274462682868186572186938416467717411659690546894275469984597264305278282695167389891026278347996425345172700635063578828599950435385083377298550087586269859627053299355608685299580394667574867720461646350832340401646316177838911507853398731345607461720769939503116793096429997836185498611551164361925825975637766810994805820873509568268067104524854227856814061653513744918179203562969764415349358620667663992028208431299510364149925036996927219689274105334469622541717497823641477478861109241519326662934591725412299791541485794805473519757311469193013108341300295346804306841939941983582085017994998192314463895762761118647914426076276886413927404172621905981312361272222274698382624910150443620836583386402291209310205241217940815817093601201779735428206028819627903837863407992554575107113645267499415667940001246861674836466552684483755893110006126390654493356073273081402513787245853716025070402241733842325621653130886570883439133612659620517490926517804102180456201665187008381133339161276146162146581862156948459903032294147084917297987877629148817607170209970076007260238907953408161176664551485943087146337788235876167080037020043315093205690739738000778965963633252132500924904182039844214905241736744480849735725278718329558382483578240202512930146527298270900370761288658621099136841808637428205462256495338026556410651612317777407961221816200301613012776731791009439676730683601359358712263983582494804526495492048894060257318539593560560981862204225906522775836765842025958222253194271323031291864791803356747011941458101845019911945827635111803052789904374994314230106021123957504034293354976795821471140160084609864884225299732014286414405322036760067102007361572601189036270080675843435735029651894027993617660477411149942126801154236804967802171601944505290374171738128689321575242293449287845467255748015441129479207816335526923661760069302985777449629945318063143412470816764789383092841505856052774788437298188222666916153800851480628122699219747927147307737331926770324465159979035357954885801533300646489488873876804275872646059449477947782661608791400324186519855560903185345717614592912795691749974667485392327817380305148307583960816537700325053330064120174460348710333221860715696906607321453693263769210918462850655336181986765603298289294521564285516669539527940213949714394541332026504473987061243464989597466423234149313689731269383596570282496217673596951999885393598474294352553279520557599431829652465021629878916627471792388166201870965725247147591487071705306711995695631057919807424554194590853885482951147795629900908831136928876960917625291127482135991964968413140631357660496979969849000023924466435256616826336408735535431989261622893044572588468094202943424083460878566289147168455092992178406543342109891631419502680570802821271813856599616761561974350031025959205344153909705347041675801806441710028479049698710664915374461600155769096089681603196714469226749765973659524353683702624849260928414835887600485336599181352394064351115723038262427563526124751370948700178348285307369687882206701482444200905993126792433830809192103066205480614135566832468529082783352127335821918991768695052799205358188530657266861642532661475127494712759792946533766435402649743275518497210861472302309096301028499888346393786779866934381405731800166610916942693272583568280026233248768136763591032877845416870586625724525027257985550639612587116195262723185237300196281180729926546709645224757657881013892730855060938088062670334428443171893133227025858813065688975445555561203524179061469339065654691784605276710721482148480137974437400999519657896299996624315860504212296296321873453588289967337265889167439198083226055130681414744019590674526637605655076624269293876944901967117131592861676252044306650495011927657203217642037444522380632492045851744130002107615910218028344860413981527173348323813943276405561031113128956472819460617734835379354471902978667264390233462895404889020701108358364916811781161725026349069303018121060869659944892984345540804934093119087263974100307217462960749641206990547928148097788307421392688653816419081644067409363968842302413888592219832688609904511292823604999324420917555240412401342372101311074780483810075312367567934948280700051188275969133211653051472320664175005703420475243585711093657145055601127614517981101479504727283884652554666190390697169613570694896358951050411895994575882186999285181431906907189740855802269107221697916171649999864177720556037956381305863089495063121739695516318393313799345305694249577163592224758878601319177702558198096041935801501004631312607064895148636900365702552269455094096717916405472044939749313420234285642188364450318512775784364480576854461054989277974018254592045434816554915179176566500955702731116806652219771961172741279829956955395302092670272722927099012587203352222344015094005697109147877733922502288352414226298640237495326938336193464716915651960566977533121289549088929090097528321939277515810181602764779754158153175497631977113199706055680597173936295752521332990146703596753973622978208304150022197099866316299620036234888303660317594421643391877872699886540030103912825193693580300172303886227643296231388377549882440117045277284132456608209574703452668427458316019609127521496166394469297669981455663604430700944939235888945965270135601446204547041578602856242763382995343054101301368976150716482880155743219860903712172445735601508864205339755003842460700655937553156709438266182800098352525019626727244476204705021646817444219582236666511507493228875619872641900831706093403823542220155156082443358558305737120575369855492128451656085423022872618310633270497262444300178248996169716049468422434298361850199971196680286139973411929701055069482434138470551666855295867893254846583857061044777661773854256233184050476103614941214377685289289270933775107063779123485029336101175297838434782365251733170319005260712312483549388024418159721385762872607089724465158965555215276506925343207668468493608770161329046545197956263171896754780963752690087334343772190806274455172184997565199541764056193529778292816380063397352636298036865003807867335317527822167096078736885579719475198726302885748460662506283113581110192275742752481232682102988122806478005570452901256906406486693581486365667444198473323939165120625573443119274971288699470143356371735055616283797776385228843413992273955997796923406918237283612806924359209171294173382391390293014104695919380890863383209809326578587361685675402563484243737531920726514262752201880993786828712873693165116470826361610656872289414659066379837696172142575522183917025869255896778344851722601319266760415983762067380735123150217986013319799775326296153749100364109775047441101258572675869468275510881031607758835454200814187063977599910750208005018186377440992204320713045699350947577907898387840410123849744642909513038918374861052520898914878379235668838849651917371113091201592048733391593596119525813392968193859066117239607417007500365993968979019398502941780108138436687538089871998206636020184940132701869684520706403685266112729950600480625669950293998379679093261562249002169484029725626974923729009522358255651927117185422431012595694786290757062483839385187838589040785429733277715933412381052032061137059631902406947531560880514315326153430708128723541999892711449484910474045948990301930577322105605560540003060655691367406842224633914237831778995703100756900837273606326195397472587444475017331499761953731913161704092940431012524607671089602521523387730321490639066915888550515997813405980284641059279017026553995446706495792182001570432899303939959554049984887096471749743335917313311348208649558038964728381645821782691670653131892986010509924794301958859709949286501837035963224886866224881340140311976583986947918834216725929520018982056506326078086014780655059219586612939668380598297128466377957532676166502652062908180937745160926059927842940895687493408199908327944576904123255326928115081052653045550933103915348041361573631653303755184152785931885549700844253842360346192649717655025145705902123210564048981497206021266618501695578694845337529472880802282482340425472958139410073364933708974360566782081076682432636660006953299815975566251650864363903124201912617015192902011352809344070667711942675227179128201701255381943848895265116670668657923919834119840691115508952380179253126037783481527904980289864683060817043862297969681428858454915436270632296627815507204392966985840352516642418692534721687708184781706303028886476702421051772695563109661999927655084640613743902851679499766477026035420498350884080383503261020037164176096183899441330726805993052090351901830740828074719450226364170471100346179041329770385526668478563532500115252720183765416997602619475694631237498603015122273202943520347324880099734188307453688449283747884456860096149981882535217129436094180606794439373551659462597831666158767355943160149370800687166267207797033448960427280037114714050552304654474231113556716035906136654987570837720901587538297100100711079842957982057570837688062737129430333734457697649625203425511923835018106788923359913701290378701689591218858531060833485185459727084880249723431222699482448980260565121828065159393918132290726291627663028972682864452479862937937255921940560784898728177672407516676356713738197989341111316692729155463442534518660445573898456899397582670618857770955877218061819412622195183937168677534153754032981372448498766291054023849894833944309891825924487473620708379568118932491602589400223379481543933707505276276829664392742491173458490339673312357951757621861513132075274345173932371409604361932013530289169202260355260567709465933336258094337625680336729323500764486666480616019860918414966566988668016663390412050406306167152150062258979054224249474575209295636532147425203762283443570318530778287694075372233169150381621810667189500232416357531223910755901616452263354808117575482288585234870150908748978312548199710094022926578524415260640456921159924960963072880273280439524747069962264699765244680830641168779892232899703613148765563412356423353037967583392057580996127336388172014250470800211967087568582450600206700550270040504948249993818067505494284943953886198909617343586701418437031149473281122220095348521480228863081990644977919300483155505987396524339702849856325998405070196892159700314460033253830405496230300635440510799338333084950540338146051255063763058814085275084344831062565876226780439154347815908277948669792431074096367474365212411544818621165657848111124036336510347006945031807586889877702238466140189067605055302425844899632478103763795043566550227323637201933326785071850164491046374536876756882444245147931978255303316156910195221517646745148886175601923311816229221654487374427811610979338276175352603433392280275635862263367938704930637645685101584866755286257071519373022137947036674208112004969854454477366893312852370404246827410374215649238620399319494551749185416281579797454587822091053141218727152398409468637602342639323834762710369858381983206087862852451869964871066304717134707777209539431322737698275590758173941367728423546893875396205066767726948338650308922395418882008869219181295678515447610759402465111544723816757154075499381163230961037875215955878951271398364725224271640970992895747595044616416265908298589701353327999641329637923729680620045856693153570231779354460043479267132311170042151831108120243841986170081506451008865106197797557776392868313856928867574971119162459724406398873609052596802278420847082268540491271645776779378489285137431500181299736713915648132238153904490749780215306135521891961150669899579065493993446823663695635306962477582380386354500741905126925175771701667787848423091182144779595784765020390140010816331158012094796457068138186670034718537309023144692471871204113286159901791852266609284284832741073258938499708315388981626524326503969651743682767833869045686443505269131102512546737351451871066366569633005814591680351864879766790454860945500450625969999767511695018650749947313615802453340807721818034143440118211909283137659993417008645326237730705623251626927038682984954597603766970211302307465416444820808503085888893181302418410417357014813022231607474403602063466656918898493765442370318081102851065658187681974652417712715415619526149415459496699767144937535973923321451555911593213281319082674031931829151417586651673588836296566606571877237773088810783728553425444116181251345347012350737429223806784946852730063355014331156092051858653393293578046442768175354006309735714628052918229175529635064485915309743452946917958129097169083845166663554317467478810293656302800394150708079985045827724842030167970192531322695589372025667044941425316401822792881166119514418025107988215628027053648636454445003467804616791940415437591765663721225298523086942134217788868529212684326848130908736860604526483823517009342703689461596776905595444408260257696850257996122946607976296364146584495873763597121399880707296393542068340084229977215318763664914158834276011805021989403389587713059979042321123266238999614870109385180244316906609918109132437923480210230459816014604472587762890045137546379886873078808436814972000048347093385604582678985402901378293002691068529210664882087460777335982840041834986527516862493126524355416929383344464183540843858151868615650912160640990754531547782609151295674598413166485210647954338087434561667351357069552028832701336521625395241144695659944695261805436670017485609247655107950362367817279726016833637543812408611627531157550678549744387351051197248387516928124795592021207204938088320614086223809042461458407529839476238976395616947242651236329692027165291491568279277797806591221545315020394377324256580529854698979588501538113478945769156608938532847390474994541694260178661007479186430198391467448559098222829935093578040283258745574717071481745016871469809933839078018430440626723338007552852336860397682107777018656555284179088768237338840966595221554163337857235741285378570787317122871139012490604640290723031585544863614957195026875373282576908173173614881479683422236896473737638865647840930275376601117635521851759677568840589639282372533994813109795218986240112887909021800822052137994164938408426857857422370700699746819860284003468959008168881367417234035687931196151043826386899677019051478755236910232096374890698904083226229530097904466338297145253672857429871158300999533134250632070206105631680440736663530018297419953183963179375358073752619089299146370330195645041554452908668528379751364919858911603054169434126844663768918743943478451332547599004886357581772043817342149188177533190862450385300314925687321494407847824838516974188278808496416919162138603134745368969586952910993758042000401283711285629425494026913505253179501668936831306405757938125461557001770088990171280690790982115273077405345830904060051580910225004159412126896021180056560316450455510645512673486739245655490647431218021222076807353423510345901945414598598473188978975665311293921368470313699846119759228109462546183292406086826500908382429913241376739943628461122718248620736235877641674741325138260308506150332416561895137162628119568103110182284251111169830011138453843716296771002281489819665666377949358756715892331910060745134778808201819389885026247396715366427719680888993499740546439720915504439685064742855066139429173323233886212297738650275773003131770326718236730047064944360320204504728554619509968425114041131794995173285910850319890553340466405924535391973531893273297328646827774239262614799941665928003898628900719569140923058545600263630518651906497191925532567568921801878050089519041200133813634597978832627446462177129987951433251114344090804690384280366326526927103980581404545950131905846196815690885357252296264075382053333137566778860478848769829069097254282638144991941441396159913101044190696243141538519041112110465181147115973986002822307986547955886023696127775398611541282224140794998669659073067994695897289918529649841339983072763896344995689414205993115347604250847232138438661352727960579702075634950421884259726280040530728243269800045725593895376633589563280661741680986852920356441183709945440825396015605165645952496588238732500874395808438385433887508373485619574993699100752055288343889349441962293534188254082077608672506626641201563112235406165997437881232310539744686236818458393231492536188308552197432655766441584757572033426649156642568816972593028966784425254527387127314083457945167786509120632130627145223315300767177133444773272731307338682851176299688876270380858403541569743314499512069048563121085688059863826640695820835904440325512512269703903465169598230181865970982699566106428358012424937876233215812596170599562864105467556812831323034464205015688647621475663074721926238411662656781762056532273200752081625134014233604223458282367835460431752787613109928358361694107495420105008964667315947979087610571741686559449799774091057376975873909019768088217046985169419663600971752669989238912789338271559795883968902268730173125596698439579475355207646166629844586010415927316051938846224536455330642776342588627197600676392597821278872705761364239096033159720388390874482495976998750153955048605580771270873705867623467154468242782587734068037591590631390139665457099635980108523910605040902620376554728572777431957648045822678211906625331185655124362651958100031352950494821648542129829231411666751792482411864692731379582988267762402079873581765460737783936779816683879070688621421576152541033780055392953302759782086986417489702566082036200843759361756591586581900056634847844140025850857833765184130943938303545778972460630527570345543598177754092173140762320036038801393978550541793558023120366455084094542372469323004051313213080643499294859232829731224240445510090032970507850012721585965041622918054462334922379159393535755279090943646708468513904867599841088577386796108641351066385592313203253478412795864726717354378193342258085841312447904346816648764161350331805605452947150437893926863075487548092778076355900098240599414734469101899596751097728704176302350837695022774384892995285433660237809916932207972248563542061481018536984222885171149545733765251780532949111736378029921996208615650282041395293172051278634538439364360341499898398310765830775549887372548548926873430516651117310355572522967562179463918056002341016363541361508109444934602376266005528292103323316153162272657245229591930233601334936760838610840215565132913787757746210216397139509513379779067085551270442865969128582637763780770386886268553657328688910022760309538696989258252533397616380531886115484480496095721076740070411729318857614549984745821991174694279365707297185544295563121387481894700864566390337797031186587689843439102231471952193551760991748855966359743776261631995360852191848740843455701013447600001911807737358258207639899483241406075945423475817610566312133160731367230613433226411416215305514013823276207026629231933277975610867419725405499225585655168963708271241916129329732773309572202591754492686256767778433650405336163830312732259857788775565611882943584998721241255282744604669718225341873893793844196453115574569705505040429860492409072292556714222587687788956755113953588024578364054461479521263619265441965813125931687218228928203748080779407880096392205342429684572726861259184508921546533371297178665945974610751873397851798908654146567714806784316522045346190866932588693571253500946831701669664727521294098051118092607380978900041307982953811237862283772743499496114577614741965044797930616357749974008774153705357280425831402932201067942803031579396226704943461152614026031760491196684174132939149447899123614228164081047535993087522719429943193100230849422380913934082675866436620978201578322728072426444400308258891631338500005033316299049013075417330233563010376274127187351327010449538555328191756434341532358914818201653716368552586988518565758135524232821892466019589489093874994065687298865999848639417760268229083226278682959232279556344489620931609221483078160356218816267978505439727079883753673729938078116576119650971737603611523921680390971741883957024047517306676154409200844197498397079386666890830868952013985103548026400768946091342696833684693516971152141189885060469182904761086469364317295701940240720087528568870662136103288898971978785211292251655551421452928405624082752092576171699373628375435376146292649665760108289423788672932666271944097992771831830763650544263388812910347500602116683708267181124795213732238060147292296807754597444021942083020587781118677421565744901288532776360985505533785588014179061044293339030906171671281062440932298087738983514065764433497632371963564680668311960978203883177289676975656211131863212361842025718637802525001351714325526502401696790933761465534741587794982948189775535611668897806910573363723078356047174586343384645786154762704249978814658821583731455228198216681837751051727087383311200853022076867886612644624328211313658421552497697921746394598904602673595549428235578497874126356219575982203161694232859001253633142229485271112879627647729564861050466905902954016806721348064560025422298036182433218669720083222733853275221438224925570280432408212297706777736632547570585071336508978184045624137546909788245328059710002435604944752313983869995757281514186915493503747235559352993204628492648592155381626643133461831351946657212865391375108657284472479396275743191041040190376498731564131439189989374977070359318355495600380767997829711455091694429184400006611014379964996705205614193667861963869156513008097375788470255041074760135201634370371910717732081361037581609214861998050466279950504001317771988167448958843668039210337286727217518531496013758082259828620045403733926211631440874716447001304385891386849954676090497375641145701694914898375722567383003006450562450308328635583687749996090990164685227901534917245631459845212354498576828085760856747681650988688919793523048130708477557150718415227669151537481212216317726445428754377758472298482857947766996058569102821365544610413444753746585320234025029272827942000833478238849539162991351077751978947418119908492023646890647850226258641293531759859598401237355612283910957453250543713026895182791406169095445708903762613276395542802040423045428420523606425920391306902659170525878929210483664128997485611343359655898903478110275646111112375922737564292089101088339681913486470840369064432175498794023137696795669294332639433042994844110972679529877988229627781183757955174145200109435423592902404650663664214176392893246025836444497659097874323018589601862304160677330328499630788486592751527242436848104955428604219371666201538195303312671537656362866117795733537121123627885906833955241768019986580926257363463205847277448728918033968083980481126580494158087648236427183478053986285466883104239342083736960402314889995029363752872210779850119240118390819313591192583391985573950912383830550815858153122593477973068652955185883496543765879857029020433324917553054152539644149899590285520680224197695467884990899293748046695286265586834175840168054756467251976038906067385059882481936320706438295704141847812177309002987921237276685764406852710592015383233454959894601285172347326441262166756732110455163507152152394146577678930233642223394752749300613836424803972996427875222936920990034479138274180591242148448495992380045324936199619540930685776102456464741433712534991665381170916564975121460812681267392030543097655910585882740768715021990828657775914489677733377027497321495886922235116206055222626321098728829772182508102838266267330000051791865800644270410689130909702479741646303473897774208725658351936364886036480234284046605767947844928058730578461692244907761935749184464271726957952853855130322548351221995947344363874116423436744090235766961908620809650484275897192662990608067056754147165936990323222052293888361885263236689568375022784071467859607056852826634023904745316736137726917375676564910727810653905931528652419416010307204833592400774539980188762753359098410169746760953064713607592509238260448393941251374678648379737655391027486723421224315664652913461424438808964375793720474044450490783800045639050575885045893576893211069162157045093663865450894167938817326537393126655015978364094643563008889354527040847585718425271673492099274431106038975762687578397002416030146724418726409176245672629250745679808809337536294956447758754651885072977071575136546968482885549827352786189879782276435404245693253656709990065867229695915087679140775356015407711490845750527434485085761327758436541266831771929152961641104546937927436201862088880329117327765186027314846053718612259190898524627610908778082091131318122480765005275147276473923633171199484208788296041792924860938641782582610183163666757812530266862116122867847052648304325813388412442477642812270310360779259073231346931981013624641344510176375745676211506200524009616277230480428581925962322988596278421215376364543394719852833904491681893769212310089568105019082069910108384144880772425919255359830997159255974298072361633998824746709192560245969145865714991894185612655462038494741864696714277375038671756904381536517934673035141860187009246683245226616993949562757596259154110155516635270084958297321150689366154061180371484922415519043096342948474565084071762319245432794259254050285043321420162445026673739189494771650029853201520030229617222940169251226080210641868899295929657533720892319535541054407967552211625472814066518952251691842360484656008556770626372493406006993133869261474991398121140307256203534931952698339260154934344208239524490808339422726818751171884838767670771189242174396139653389471015862718467663043268745040511000784081186485458793083034113478210506723723470623274695236692129946434245758082320113866682103975127120746962217241252014787744966254433586414947778847705905262468761520884675262136810096155087924107062380511944325046580987830366901283478443833273924982040371015442129233956011180443327813440372461551710496816961822402539283862209763661599197505021027929339226773953195360190021309828797121253679884362764315650393840469026095824305580010048656897906591760614180134827968679601733918176167971722227625218658272023939487153441259384617467470060057730863280816508859293899955059506589460150214516912496434467019863924310117762950604522695551884964168238904763456121149234852260401348581642559380690431614948002272696218986714019332878849712834332898625927978116960506767264102251955101354311724343589291959932612548861926029265239739220384064056101071329171876881312676373857695855141459965106588769472120459166521057243607026441205299141760895493085294048693794465089116617656568429569030253542382674452685722736967281460087712364217758279959540061340570422517685189541806608418151375340008644411954855834124528871465347464181628471524822632181099450557804212489643789413601779610487646367736980443081158175580323670584638039352441633067000260923040211907353410227133583013882622075139125365303367667714587329389895320062188686026319593894066807565821736644772967218246019668218376510219273341365488459262208761474683388644595463249804147507388880408381212948648297766148030395878397733841075797043393198062944790345909930713438575082782198319347592390253326763816926708729789906384613198863413982068636966067999324001740891061612107890483628012557748687282883790273488465503035526427086065483780033435097011971424434337712957547436302198176224430034302404520321178605670198888275431586528617776936807769978943448959045056747180372448046181169090575732438965257278469045423109940891602893419040365457011125515080001939610407394822505345735721320639431808834232563414240811779655541828258204202439565401696073747372040231601809411037600301192745655113582195221224756736614131160911745660833089296187509493024797400018389477838711856124076668635951998422220577796126271184384865277036613933722381165110081626806539948412558442200286817131190491354154481266381349263602708038110882792826158770656999125878388266249659484418438487786901785951950755716714667593941173555217804911650659650351036809401106846911946142668663583540536240775404575576014520167607610798484682471865157650221985106767699038096299357782709862740392608366146771098998882009459348471698599653571414567892286439338675427129900589911289608057280470030187961417038582649178486993799763926396052479757960390524147146927901418813306570480824812078826375572583456064451576481773364098310497252637401803919215270876021452093298669909406387905183586406029955507697707485938618021784347145074659138686181457366478767727793171085075007568136209845309432860700068685946016592708355474545165169118991729689141330714253794388935262398503971115691602553391760941007857814819185540909057564500375693191127208447293770728309845834474285450988631529957421536058675902803423349070568321319235543385532195920179375579898901970589756797664315250478557041354348520173257275574587369120155501420825086403375271250278524835605549093425789201203766421713268525624028826855833213498126164928536970660147181481787152928373902597332452364624162076882467826112988437960183551949967601083511093735216970313991297734316734393226301497270655872685487217264443494505777681995169838336650441334384599902429610642961842048688222876245445777801491857010970758270838800235622415460049582828844848783079676691968341088065188882242121295150022281968929453582969945279553943835515302726255363169084940500639368052368551610996281159527702279219166206507509904880928516212155787036669443847000255775230162294167719884644952125366876189242622889907745966742831682128785061671795594005495402366173984453317572112987745275466217455598710918323472122867085922878654491519322464454221699926949912229243964723967387364579781838719094048877756152255063880897886495200525390823808252310201291283544446333362071379988344990586656598250817661394318166730573363828969209531132685044029694309719790274096951120991911200470956500528868237276312931159982935918879934161300313501983152302276754598487399563508304871870251877003299660714528943642915000306751355768066708264966362266942264006394406775328578803811973728692143883562083892012888549792715429643203043234979016227088436523231160027002909468640672577030196080860027209899743896533584366095129837389214698186614503806136804328175927738164486126843880158269277124178258511653036760472935039345535969622465968267812166051062361960316810087901005924069804601968018230892662121642032799776535375107828713867337962673688909714719154548257672185500014757875695387772198646117581628742927975538771744018021932372651253468014692121847417656884257438347240669653965259212789936921377393963537750368078576415176173208381856303863607218797164037897531425992106674289905267929799433224972051882382915598483549671763841711193793954459384314639784798443033798533086851701530028224456633021129320645498906557194181077881908304721746083861627774593011868722110057562157287731645309268077540604318161030227756997325138383697906002403368593245113800845871941104317834640412633054244085894557283786799674789060329274470514383673191879851212703792487039998042543034343914978966658343241188482873978614078814938435595311063892980676974874824320657362244657600469528770569508896962870869450951970168913965347908992216709058144425399032585047172854788807123078363164881801359406566402585062076372458625942000107299022349525534355902625124412805382300427740247237524069213693430284422899652728625723492619684220889255328011335196854296944257035162397805403043173732871321621912874142548819990472999552044828616908838954691490784551851560617860022106991997708492535775045900149732536790374187401043635459471408950712028067597466807958504692802568563098646189608045984225181142623468035424418478315517258172075223015607904737022559462854162055943680247030480950552703840408930712300563339785395671960215778722428562095736886824248871944508506026428422202246644744720373201026183409935850901253289176561302024684661088243806270671742356280692924959593791574923036024822563221447381423274461181657632928466468954115461097475750623127631685782552753831000109778220341730312502153379819507661275011605918424278719388350057123235166402032481408181471108609868059264576313818490419473868663700495058627245151343562481404406877952474285386732054477186284213503097861254555999814939611991996408443658219970489667121444856966443800960483866086819992043743089140133591185186508864982505484981286971818229712681896914559237612175576716139393513179643698357667316825217239823249280181044902136505746848970198922841988061584044343908151246444862472254071219585753728170906930633180830207278706541399738438199282418706051625622853438192342930258965777358022182998530261644766987678964861784885103819014338794131223964176926254971717297521337431163793300008608976950349143130591870959330328432185214264733310622749769470388585585803274026228805000707115827543760491409374297774394244675480076600593022718091601580169419215564646688845737339308812903281028642400040989988435091428278962963263651897740271476612986444330196397622899707045219921695559537698458464733713086667598987130247436439293255003915519111295043960927618246343121002220970225765097047700822321055626219710220312656970381947067060234657609145749506872383505999856362764981894692827768211147059405120578954551309691749263371618116624489205468073617416327959589932171970879218702390130023897689067616145577101876556315040748183400985742546325071427939332059658109749276231076031740864443847786795653618594055000908689577973038067507484561800104171819987479683604476710131405468824560906985672372340411997454708793836530559623583985958624506880659501304974018795003003445512184251925041958004879632962149107738850986144177401523193818918327418100068696410443545174684586380733776485773077946482642062209785548611837003198625477044957872810715649984776635066762107694797570236989410225525675670219709249011077177509839057121674958091851933506710184857581609773360004935344532101113797796669212518451261417948415036834989531985957970251391941117025277253923264104208935216634130272133737355067957684653165841681280127690169021620162003205828251022642992217073160489331457800640703859290199629245927561214101582193481739119280994161711378457160776105276973424000804663466906632984371850014958529064749334402739514569097475584123894698732928086561946019944124583921064198171708044466376708975085605008131229332168671080900782437534470238424142681157387378866239390938277404564058207551476739619385106864305419861668923256531129157989739019647950810446315369759771050545184089175580161703980647914087299424409961110579838834908335459830291632038507231317521518146959130543922998970613356627089837203725933367676772407893386486958085179860547604634394917132047121630880975424191338319830700142339149202132034844455371082997022811998098311630743082321839850595143165484368056551105899322192999385528135249975592279274766203582384154669270244987830071628546713855547929637601978119375943756927865551741036047457362438286567480831893342692037954951856747228690662727702673662786203156002384375906307002690521270157708458940621640686647835336256183755078900856558431797547902757448238800857360576242522986682588689188209283000822882752400593689001930752253627903520061615635851850683999559927384430874102764340003703649652119001899365717709929454531453902851360419685041009223303052985093134905510378449213509790416395737271358489584759271608727642166986632262213145936530855751973026203277332692547270066099891307057987209451306222029176012722245671162705259371626071385660347746355651099590034460084902873084189137447523092988890992754799646872640529961091913847272698275133998419712889962740790203815762576841034593502731509216468338737344581491314055736567323042270518689404461368323555230612592166550086518286219246351777191038731861430663401135709059873180849539373105832784248009803890375678879466501090454064022287293640043215317219789190981824647378290203609142278618129578879069185794309880076811392506972076573998885005146477367062873492414460495619356362677151960762496156206426311746498101481364116409727276450467256146348707436197286059500430415299721317511558745308259190460720465518898024928156365995722001019618087390595326227922445582064010459086558854446090323934403400633107876969456871472048050815276240035765687477868229032488673309104297959465292123521205134565001536064223703566434591903490131695010907294133468642351506683406536112185889952494560024675979054527144118848702758939959631976779288141043455498808165398411032989299839718398193406519547478000489063296032960752209142035369994881299084785355312773551362399479606040245112244175010529955642384851550196058443913001467092200255201829331144922166373033143955747180860596435883255702171401256189731951950887980417406661410684738260515952538946106186602692405580807861117408240938938243670552871026235755730510172377191145422444000593082645448539270087944400042935900821406500378471713229646830365479280004338736256959332100868956104302277477826972762405433336336266949400933195283950265317047570262192928465377370101099421148328066754525923072581480399241832915197469618203973099889813382920562600756103009655772656728550803374433164291203550495595657726766408056077518263630640685332586698608891913979035131042548213359221912057908109931764398612762459102561681645595846517262803852988840453276108244103556298074796861872870033314540191081943070971053832480108724172808463082693928414438232370534652308048446681827721597075553517317316153324589926623444852661527828215670754999602903751475641117124943787654411937954642145042043469170814706953839598526312601172478124384956196196440672328080646179587363062717356339705813834496533086114709247151815873539205735474108885460651682715837603054301691450087562361381636344699137249930098140074389575860649806426285851775802944123330804346626967150521824933839482379916536287508519892670253763013997300158839060342414021418178079888564117793868700575137295795650187880149718370476300823131632703322494924406664214532133587458564893029259133329241057057898252811263536244250016428655901331937689351069469504861953217128451697252921683120393386888115068851230449428219352621272696864049662399443309654664686112386106976583904602544909839700503691688956339349343953466719323486671619680580791524343801098447078108619124259979609004691060501217088390261482190566988915011490899539511819352466993433197949395173607609428087202867889763846632495662122172002694739421319266462058928383625780982996732781138300982454239872258635009411812049579660593543373128790756770087311369863689316001078493500793552406070220603743936050461333742696716782130808971362479793161762414012307454349595230174792968926035923491686350054791094721849820142271355372357893259197540268169810358209852877906877897908065607069165140503178811791931902531661802826214176560622781465295787676644350576164597963958897500145058787829457687476786202539688267476772887405492063142928837165314487637503671579331463423584253280141518846370764195636664885439284614116976816671461791287332380252314159219675895832313500711852950038070108958707901754356069436875572538806736565122119441642978898658644550250693809157805829379343893481721860546122756527222879448643747568162594479014224777678981283056712581535490270856783250997626815884258976162873067298041001795723989992120848288393663021570075216006628146276069473435128254083771802483653687100375617610218727470577540997506821208753044874423102652059055191170709177940063644444985363906583506684093736593119319860712327334081426408840761458817156909269439599906471638039286061709978574687840407975746177530862704513328498707732720693781593400038867955305390363560381664640484535696735239131137189203344367122574414405531506584244775207270283228774425408641167875752880505472648126036013371318772082690217730374010554306746394757276988396305001961300325975215992046009840784150341683634130740656469670253249207061464249911045572480948237262814359406813429523380889186489305080945603654344343461146278643004561978468662259792004647845236956827027989119135753381013594565668280975036846481398941991377592623285377017883281440905198672372627842330094614153847619348050207457661796319188999125140423869068463237993291853907653580241695422974262454385782055041139558328489311711031755981793242589998146312481497810187036842244220980280474441699512966853348959447852603433674452982591937057622846215739850656222743165476762201400740767499872086658847504482856321240850376192397580481326843024714710288264299862915604561717557142681931900036788753489413931771466273458496000659071609584976539639068911544515405745478386889302003573835497157752544251781088148954871144266316360882906382579756626753819094963794976663511155942663520651727274154658243624123829596883128772904661133667948958809937443683987967126451955793524140636777591316860050987788087943209547696881477204473551041568645299125986139969405912740875774239095626930297259155889895974882065956833087987288587096779285795776453631020020003520883777604742318921143663474370698830886562818594137073738584208124397219327453662143363167840260865121272636027968589316635159487697284795922924615809723366236256351033959239019328394662344459575955330495729031245443067617274624044878992780797916702408072984068828902200814869465833600061810162941256105534763318132148383367663794079880292965139333649943887266884729363033226927975475918197270199815079264167199626259278534687894608086791819654290970450573213570449750060390875140712977320595630016196268295295591620579031161057386498995705254179834655000188170318956128205197718061697317061742846487639665975954931557521487753547845916931510208698299591068319029814506156105807009221498863409595071242104081809065433655847809982160393345771798430062100276443797294462556076995052196862176806477586997788333102524257446328139145966687418816516705690292522774529375396870922352150556643516367372251764606940824084611288068251692313955167339135219221077431240320721544026243995757270996124537907180180749655230653425622458340398783840182727379385965843548134980496772797768675125785137489031052151795192370777598348622552997182135679537044793718622514265595164750666480790888484557802179710387818957611392166417492904353992952848801418550277382560211149541363202877270189188109822759671185547053459694115436245117740072008952785723252412480010155647089498833442571790080537636531689620869525262062220530158662272975297588328649398137672264110810588042345489930323871827940141839502717643073743255852055640017099171646238697103155180644130648130797092625424871120541093952935220754301959675951937364642283657491813398197564533107981928624396589068350091921141536561455339478608141944118703598744787016889723097038859500185721243860678837300022454034258507605701660179124442212447731226748571834083874375244842867836878532097067180437669012513791269631075432664245427572984242624036826190704622905706933499197144328053590023307523530632980100869462922833840703396851560162859378367502358258285994194300139950640661592592841602104748641475423945154775661517131913226465098532128125359893562243607645994896435401040036006689034225733514101180170316227557004652421240275680405223475869681092844448763187526345694181889691413936907614921820361041395405330862732351779822614544100440973273798786933658569244127185631855444703446166126186850843796993828585936744685693289452463844601321993993659500604188518465552396906655364062092898998289347722957130426612422414742908144790310077022805480092703698658476681926692346508397628380544354492773401346769985914010591947013601002775768615650255813105091649694456214695965111154026797452487362492121431395376887167598340752852031895442216666313362879795272142244961784007885893505922489671924623615921121544038209862207629977458976693661349199291677324429917018034838372152276704094976366611266454563534994056078476269579238487310439184589742104988384723674998049806216577170368173496626844010184671787344584607070355325365678868603380501847178639174654673749255850847810765432365969520150209974875552809349173224417551282044009418820844742519608783205615472785577549229496943986416062646020395248082472967003773751208991784319459771256461618751232937385712763764295146945948632613367386994920079907931760532248123887317760622099654382282186586696748534585981428244920577344149044426873693082704881703945437775672514465372317397399201350704126842351044966640956591155882346153243331742932509049608862657247512365372563031248743798391591886778376269884188275672756751746253716041438819516596886643521214753883767059424082581774365304962275272197986730141077051336888915035116064130825037716677286103016652837478429510135902078671734782469492532133802846174681800629711820698424069210332155694368274459032242993698620458263253085341162207832239650809641520887561820689016582903976142411199196944392665081849610386039168495521038305536150751712267090936729391416961689312964164967281803792414576345977141390544302367976020708096990781757391965347128715712435576460124978899810993493172733119045963545294895416498735893551741860750318077728898842072328657146361931134422381991729150018711159140754237064414446852137511983478554667292282218111539221174954856809234810827844496959368027994170930057575413189332004202454839499724382845245647573131971936790244379590146446252279347494457696768475427030477075013603846900360229109891911147263913609040590355139928084856094862250877880247771269153757922842065942964228738021216983859878602643910642734276487873310023239948273272551428857945826209074545240607273911157524794490528047979388084934361364530869275216245134957951701959354118293934407229311052399995476414183762089277304666880905451609295328516949778371392801811828931542262542685857907565671942607423363532325997847024357793916936770289148603449276084968495141217042655310578261634838618400407645200730586121905647874499514804910963692857514658081340620964901449941671611343816907077025429920343775956616488270588064520713079064861131284469736231821759560920387525217801271751288630456818420376827884235545927352820128660956296992798899365560991130714882596959245090759964742191576838000335898789847776271363641691718152100385503824360773107159603598478702215533554984659661570950754641305744856188933893228287247879868447391175046934058438872991250909152165786522211595780799228453356113696704519759715717427413470510117623368782717587889380301895907587970464326747127224160167216671845329691717831537832578881736421761425671659871697415117251492229526529250122445261820531140455801704204710174290022008507583397644888226087124435593070601758741266155160701531471832232691860999405313042149147165803629979789457780004555180378017770043574897805348332432372991156235880951414420044802729143630822442958588343414971083256649073096286767942348952781517884273910248903846145851556857317543769832598911849261760197826314437187313808178004187458324848311551104838616089989055833423425421851755050362053396037687027030843204923915511278951080568516069182711742155045771378085855697967853119477441187692599399470201534002246403138730885578440491447047646916536515112044458935086879298272620137113764297392111605326273278904607690197636278420200658634321655659121400695752625757439367291874518913557821913390151559954337780370920561777365207854857897478828069675268807186349354452399370481727401827759900610314057273231437728174833509882477004941894851158798483182173480920978966731977692797791922090208069777484273983480998316916340147477322169435971294368940747735569904739118765810281867365436138870463765068991913538943743873826943651924394493815756967365640403672957959729984012252566857165951377535266216436480137453757889185243365727130316727630168398554341826682526481894786239718921305804159229997748185641863208102308875165525903189938335206105610893368636944530465714514881855546830127545109423607318551049928182919653485263587614142177467057270896277245701804850076079985558681386173076384508326862459106877522284680054751855603122840526245193380147535728800850699381820506599118874551703847896297061447591287606075228384351683193676790302120231897272898364328758567369527136045455977775042007177379499939469440404513101486625551853366125526026668081257777283493896127696398464761548457657465812509787273422149400735566927476440563954206409536591745690035716527345434402353382504439210284798959521105394125612282397904792740005239497567602374888095732740523474819837766767837598759851249917348346718719310738539234296134479495488185523283064234983532253292068508763144692853349907579809140997201947769371914274948000303763862902520487943768147170205627912496152238138996933758098953310680098427678482395146257949827098803060235023063362953140690460451712680142634284424211891520367101191053874004186735684396614369134619025467431055030839595977989332798681675967534186314940983475455104833082916755234226777394062236189611301198686895033155395135762462850938466757469042618703690150398457742931826219488196161710753387599990569157684751207943539576315543217873130352592978263917761368445220313138614924469239829988061687867348833890086551074393050841918222220318060047025877695241998411787976113085577436307764105077279647407081561159408971309659981831803243598644379620947440899703925450318871657144613624258180973577139551078251317104470188694167640878405110107816041702043356500471571361294648844854877161336486452715245656608291494686208307917940576674988536693080065160836839356245084147407857225538917197267182108034120737810966996455471001645301368132387135841522111117055516495140739637138560239338156573618149937115094677117136686483639571164470925805768337151880083160373248090570799605560195248367944435946082923617153226212067901897312688911381733007832113753503289593088417246428438526573026366763630746737756148301313888667382993931822322792612498675192311093931337003058578109441152024372072279702363905465172608759674188990656674236603425597988985427883415436459654493605145996560927508816625423938240769118112561045179458737183886829938214500733471489935596972265650604997042641659250444605546745975654322842691123677834767288771465849674708065423559396162690099343736669950693925180759712981164170293746989052172106332358354603183974583292753280846310515385521832147861907670134420361536642067771500243497051100177056006580775745862399454928852240260072154197721603978004405051873620673774734290643670082301958875582314532689982169716543557864977784704105539010239807474478862296509598849563801626884285029521500807340416751414119345444242088292421949469551774128437287238617394771136194868422715976922240185817108667046612841090897111616660073673164797076939685032559032326398662666154643881214171954263867536629653636145076459664959557957009891560380935252822071304799083002128606806003624410398940698227302544849774532553200050032458940265886838713962251749854050133621673252030960702194734481943737699774807125913300452670255840053514078490629730591391678619777924193918536588890450812217825264372422323811881158018940965360754281799883900053260718289816708497661710672421132210404975595731966958791626028423711596185323054958757497895988074035644969484006787493033759065186389826275934418848914686790106425443150920453531901703861186028016320072675256355875898785652273636509300587765240215191038042785377630218291812350090369349699451483353745406969236043902262964470238739748490429015826854564034037993468866688027336791977804791156763305711206287957572953133355258192890451372716817743052115328108998733392863856035206981434212871536920463317645330080501783329426951763895707139455793905161756846058134663447213720636223333680823181327696636752448398834587611988230793936383896090812335508086438449608021278379824148409059185051943821807546932706601865336239579698413030131540824660538792128944676717443231511381761252007273272542656430896544288776371958651228990869865234122062454509393098774190859148890706248203324344912567113190363028179725891336983583678297145019436836099250729408721622788328955424608994799769728744647462340765458661486836269769302017714710057174674747443957029531716151717948126649744951750841119964997049151551405580482442991533567149184295098811038456863962014664649925313245034513383567884664159915344063498975321678967236171797299328747466695000050277635764115872802195554102015909995693790850994735925715519801586722026523635169986418831651200221044873160465613116177137880492496269653977054595343917532071914527830872524018813951614850293025731345535880283655713921743678683379297744541917361488326738959033375577354762170110618356512849419213308169494791027420585569697793172934101999127133633167969190663375115455648180490236847663164499931710797086945079632119225242554435119127856996899671382528800350411946586052722074236846712471878154002763947785449586269301469210409340886247432578235590340811456003523553822659110137129374626747664007896774379738107658949654372645444834998177984278089065322735525821739309202697140510499810509325467642972545940191517926705731786363337924427634212374256307415612862749945763102490442017111258473816253449662086231648377479309706597925340689040713559266473889787032066035522509321462136033187182432689927799144733000786292411880635977292266004727253185825216388585947929682968718479473676222424733528166935579966924574563551908651781170579136732589493055887267448052770253689456488398235800339474707197627213918468396571151849819476304378480434866441136184131318652369007268407528859617309311772784697170076548173762272759990950417570991912022223926111293569969332253465735530945053303902224274820499330033863622821381463098424999553979079431347379747756259725829218397576388374715792412613528456025388559147428875602825487748246027971124760543007690618563726222486538920180490300099717674152193280065154769125008175996599874156841419991008723062187266881900312722578470156814497390413695505452873176254103987165512740805822410647741553667012329928912319002592308011465831029502865425455365913687496644365210485519389745936134996085137507417096161575682971443660761015247736562814648183681660782580013175433678232600290294658347661188786169858781674268747444244456301988813864673954878792582356239372954693535046805387813161647095835711247657315674676289028485484769388919199036603618041695940419353623569838245858572917857331815190481719822907590686035684695098448353317201645030006541384489525091821215901039408206567924044461862225920829810105592602558446081781771230201066592038673523352912020629543746789066146742382005478693578563423184622268651775255093960297492706082335735434213293251962681862800052864535841517247506629873818390939103277205044630171357020404850656388445218239142066388319492429450123660928235823355884068695898714313644575868639257261353521692393077924751313774363018630987510518159764800841685150938286543321573621331328067790869728146519648076513843611618046239701914217182455044606134183515591333207859443176914384231559866387697703608592804174426522072393784796265849448933780628557586814845607577818206568781593253025396334689197291659031122643972845714102291017221089345717272675564505295021459119788184367270405449390189674125200358745782385561902874427312746267207258610071928436132109345100630935291681894911751529276858131364637409751297999911445179884722966698856678497806642414160310687512080336107378970467247207649001072959640706899020024230810454455170699756231971755830004632010456537401997752049661925051254691460343524877172838024581259016888190295667819122065159683182640572515337899186590036355384659369452208215279196916787918372657835446943690744040077540617316132809029238488326022423613678038410463063979697306252030337568578683562730461951997329532955716066220664078592121489045534532714624657287661104350331101840132404482019249647986725243377175276206543892713767796415779698876319290510906429567605128292206884557223592301042907026092863350453756846872113538256122290254166706905060164912100459926720767162795096185768803232577664205813913453813717796647921921162173302802266297785094269470733553457290010275495753233082401248484713041344716427521776667158390826455417329643936925834043909975798509162392959040817094378232536960903444187583735122644905880151835232199297373366918528374652870160255332089408571039507543351237252677329298633824436159125898542252684753351140974059187136274118735394202021657066989329432297125169240772187055660115397593633902638603508188215946032605851908663911504292208713430258121707829919086219167523671143554289725245757987157972496785000915931046635855252991308373821728563495016878557048159007290630552146494723859142344235567388728218999425343740235226426478451765752375533515577833799326374613075016119000361295139514310160426916743662600228843827676501185800355121591887411754590458504735205240476067948990232966191226811243657182833540127221950613850515384654093339286696128587855847668024370659662168014089979377470839818361054505648633104928965734237020902588139611950908376595418278203915072547446944103853048856428883678783383719917860230927003006229452815567423548120536374016440442981192428838354523164644623202453515487297865584711057209492896655725118927029994981917732230630969697689000236845068125932362624852763573124580472588037285999541524060522449105925519751372095093434499678762922324011392538617698251251695976616881275196263235714587050131710385317625865201116673722623309952509949556010725498717123404650268203169327842981133172241482308342800839427620792199382042897647741536715196400996428467796006387137449468364676257243669360765872905244951844097546098633180690577045583131686101124404103136353362278853776575374956708707589556423074619330135835624891049858906168531310313202991093857805644769470648821345685889129638994266414934234128366967514768944255947078454298636853413774848153207697221821871137242422793653781810516785869560362250606917706395947886688587829079799222785751885540727030577692890724406772079015112750453571067172603854828741030664465405230944783194568152574961797320955928816537768193164690070094086077238891688615547657607942128018734685959544417497046091831131263325373534356573785031316839756736069195463643012079804832184430087312057365340359362631343791539640851941882268396384544799227802454793381514030400595417713842664977205016995082332345271598176563908589753688309331151989902452290221337210730522656835660911913466735763645668313374621533817773968004273386971114945825981770231153239896354898512811608368538992349740196488093036655672008936314406540560523544045926657770943963146807541580822519218487772538296472031725461658271816540229139483398346384534096933970978222929758890164970273049410770078863421761117606789745766076016681945155884614574168525679877628774478777882405446627386051456508635994531432030105817540493067952699673679366245171623298941966143195166008616674616661383963544710665337393294359365100444126948831483702965783929359481459077620153167341564202296297169403732328697195971970512526462224484841374112456233891196638066957517216248362349024198412899211978536703247183327946329104223555045343595018754088998316091457284775091535334033241237548091820039297218533253956056655650855704031207994174319229096502266235949358679293996888514947578175276671540835105036730226698984427796425280588782295604992107815791619341602428876019518032923280954664673699534357018477706143484440655166321560090824413110053835287761018317125459197299081280479396341064995864096510815042117903187700344336706760650645858141557073758483963026220479607768767314325037801845926062345488060465179198352322416638578143838299674648450079795741165483648842448269244703769829932949067850800960381665567682465111044994281094837068671692790184175277526798368598295330854514480363487392894124839771333621447724666575172522316342245016742762517608864068894210171620766255442739154745900280214149201726963278649232103910110057907341520777378005494399146558109429005362184108531354239493686342837492780643822208132552249635568039888290162462499875553111939076579809290249117269496289881458335067702193718325387834117705029377362370560262473051711538159409425220500532142134683463118114918187218359891331466277000828104661035881694897599748998981491765805829697713404034002206264000755610341485296976941603460307659648773422319539496361007709116454959882576091153747575761643993816542174295848274500412834976507375948087562069629885712453659391618585576653500576925537501971132336276217517212741386898952340211538568943426278513983316033787451953336796847862847782875062977835461860393654887355092326303190097352939429232377387172479199142054216569184187612311076442668751258798108112853680486645663236696186382731015371614469418086665718248333557010611621371533212144794288930859608928360383680234727539693853824973215292804585721282473934889144805698019143751406251326422450744287364851235920173370096789205104703009026803086054299830437440479417679229203763362099312992649937973981434590502288153228624310277758070542449115187669913305075176363288887091546423222173915240422042235066710952977315011589702410874819508323785512371742181877043005987391979522422864718686045743857376972255037537922684645995292425591864917191406828983115830127528267988657253626181826266325470848710143805551283737043710913874612589079683524747965264609205577752412206125803173273745076859391565315867171430575219924385567404124905341697742366546550599011806963511950168450692694217379421644416338641375574785009401827649478383808044237656727862993145773453118048694025642302897274533817245254088640847120883531363528683911454904822516669658155471748055321410967033071027068501176730253660737002953792378702108555123433561216490729919754921167996030648273452759806713882357815089429339848647335292660399555875030566180297886980699648530796042578365063295636305129988975249272740638862656027525515736418765046319566287787472506520526202534315863812710341020043246608289680439257636116847769091753215502375194366856985755229413544991410264231456320327879331138395012264457210997458012310176724590642336451194856403893894870570781242792223945956485538305462167864620121554645190884994647086840290179028049825713370476848985253358653690749895822356381731028733003224185486720193796705565004178491593036378723711927650569962412639478971813337642935824848123705975484760347612155780168480906902069146998222861021926154394181802313716251551998195088493238827039668991152148315099153112857707665251642867933999796054919477745043571450284800319488810872708654187306667423352052503890961387594276937279578501190455197740095890247826903643747631790987263024465090247518895423473981651430107210710596300846297196211039983800854645893068261175566724422233864531445071699591759134148812199211309591441062593762846905376888337287026460055695492769973321741394984034686420380513120232560002663472901848250365538883497722025523368380719932562410662115255521272491475029662573969799493205336740262506175178913305652856072662564628867773057072881415948549794413710251612345243137346184065115547038152654554989711010434926358279195064396261775387725497018392850581699918438533709487152002777493112426133547951498545065954765229528311272947485179730091873751913606448844331145691325154003026298325970606245747120938999662585429698390491523559431366976400082522802430898601669573166244699795524736906189054604769792796849606431085758561819697939573405520648145061510303883677990754596979521398207086811103495978331707144230657355428439279775019682554539790879329079133728805347874307359462138280724625795058615575577248417106615603156767799078974082265898388565708112979516691890979178643324551440098910354515619464819330953959091032866733373014210073019622404758250770241534037046592745342698750883079886093376004226988948456574528054362527259527076227452716301286461907155113302340872069410028970342448752666408819002975376159712306935841672622950037693367263996067667387812458789273478615874287035607264547263762869635062526694253825435226951424915216373248903833292804474404334730909854997960389737770245384408977029529658185587061873269198189525416767148123658481905796680565422154378077673502345002610053599982799855447834959142712175727696855511025265536303455994853592234518724182558510189133716303247324697944502484225847891620842576021888655983416790757215564220411623387946719427524511261872776373964080976612638981841247436134411784553724019438298226360652751854227376599582410525028975397476942930402749996263204518111960651501194837833438559459680888890274002407043107743404575646541349009256488848912729999224101899896323605369796183591826448034289626919340404201502612378806364909542077255672812702439902810375578010896764171469880569749664330251765857046276962407817392096939970201710456468840408331608972011794557166447808232447559960141459744147262085778058395290322034609463522976073190796520812719755687842369578102691149963551945234281072734889787662278278233379057811366196998494588493674785399548309889169643223216702046967327821292277912630009538192628704837745052981223479492562131393892175823949422475750652058308842068013619837207586705513893909937558540736389846680825575469103984462802829942362242877857468412108172296275022026803523850680684487263193671707914414444140053955151291661585764970561019296065710856282047611731416091531102449923562493651461367733401353677773517560632410696320587052810491551221878253158796969902315998273698375506276110881151928358727410888738736195521941785457967493630587557075333722149194227686449082000840411378108586941394420325806668624216148866318740999455509796270022169028150111455693316829646150695622384811933996365107213689949561884989335072687114374868649735630167768797903235098769206091606983874035325712573483548031235972129524520939541861219956107161133020672982634351387117210735622617112644006938023658236700427831902707040649947861184909628667088973665492434787618292932181646428797109970419786358485599978970490586438179198582152093410812654890630699229395127921883849542371115786008035064621701360682941146273240425289305585578059906700174872406144813273230961358200320154295850438962972595181997221373476580238948549202688833789028573858936112010471802948931199700711987207782560257408626574428907981276445474504153518929718908299016454894783550863233363696320300071657039692838050502887969200286331487241259076028139927210237521163876953240991332750381263042795648649594873402989844443628515608589880591342872024099092065240518721163082502988244873838612212395449061111182074949614268794634251041817293050869070978519970811892902529417158376695867562862068701835426016064470608269750191184367406968907021684028136740058254959811841819433617973874309106935959230339439443718256310799342409127098242455920316658946383165291662542123821178945491800611828225476231081086582415174603671794261369420678047074247415401964605076175962535419710692742949629810386721945375987338322693947570615883102045159060503001081517729481692183684643403259787668522036246586866668570327526524839610039801136992786828189461796775590690221767621662717312125498192426814438581943723358228147892842448034110825955462925675831006494170435507893128775837857071618142165224615972575489351806778744583632756670492373129044863610615690769989735666753170445993660381322241098006796597347593667651890633156219878707280707053955358061708011367479609249898999027985868937514444291860348363810195563934356492527654056467470884808676813609980951088304506434091531797310638784866383336475699703399526831727765741169260936780685126846393174585634240033213003452148080012504770273022179739350393392784458680255423411216330609015879649004710363441889511603679766141529289855260004218328469843167301892195548230595722358240986102423716657622213573854911325975344348692123924219274442078093177229032684355961301024108869375956426166653420335208086127320893378779652078436820962249108508407618768645021046352887300310075234239876607137158958848045562376423004636572904408572664281065888551445657892938177690523456209768548235349102184390958319449977096851851387312041321591163770434146303416501843950749471306774008914100721993278163012925890715816470609430493360134531982309935782110696710545314551214042168552067213569574162036180408393659153884030499153760034794550953501868763704612257732847308254525463712205988973989202101498736793653060116463201651228648485170391588251001741342917156143140191702690008494429556425719749354748112144773531763390053348232566092710320936089769071750501859431847842260740039795986400658146673239973062430262564199358564456817629941458994324123275162997148735358403342889833466670609548451250652828715543131842415236602474186587551961774805300953848842547462075924954291506301579772682559227499348099652543745459559561478687000437875202067993830133796707229254080817962263686666379173225443222618131693669938686213351033928034182749723387024629487728825314354860254931330699043309128673557760806115239030960167470776335824240198377043260327889298348325726214333526071315466345032795355227981594027754702818628020170591028453384992804000543787797651611595567170046147951146820996594233913062947020430943170776049760677714243680836375100494488190975837202684966560287725584298226004966583100773818726499657413934967608015647381389729303908979891281630108421823659565712724820269842511428454377526965685579842308803762204185460192437761327811702478390789597295257059935125526289449696659730064149534817682870711525484436191325080053068324933988696800597605975064302575144338768838010333083572511670461301216901199300810155279352792645411700872564664827708504136482098286123536811259084590125486905846352898022459372524877945879895522126927703544773993432712370878469778595838697782269596289222588047606240062390652231276796594834007054058321353852864154539165901706952478491736781965321034387273115427500780657792962710713456037741996671821754802936464614683964359423943517251936518159237881205176732733530683789823563454505281013069251533685050027300293543987239035518154156326426793641292508763058685901074956905166400017102331197953383979883344752492838921868633301728335087918334064336962445888404822297887904409019935032351022138988815412709491297099173870642628850259594359136883136219107512829873304682823284488899341394105194494890213857711742826924584246219555420362552270545529513585417796463458643777138743397006655566983036229830835239938120384422062939373354904792547189858848630971715670818982931518360339075451713629234901614007290291090453535963727689897632819588185171437142317538946057553481245836130837565345150046415773469305299151658084736546795256834822167565499773856275462673860578816809086481201896306193257201197300363547272176980856995608755234995242294178863568613394128448765606551432412749090405540818543177223724420829374789954382814626113096183175770376964961564069828265033609463913280699488178596987703471381289202788608492909679866958708247333169340790243158023400906583038531377244106828435237483047094810307161447323971417604895024750749115491469850201387255314076105269268483844903478142218880498010205996214756442062257216143144905995958661763591688949277814502314398701932601347520995848442694752458980367589700708564870601636845987881836776004627425141949639647145850855431399648149715607860832588632813335199134533708785279093964151033942721097626195153127441393927456305715190609514835553891679361713365425338615056277075109267409198181317233552551066944174276332383742575121373624814892802731179880037845010170763696349289856505466303380296400935086717064837044325881161819499864760836323259426454936092204411189124343244014603618651124226463183345163767068286801589063689089269629041314443932917131991821087372006813761711957120696939935978384660278460922864446499687707678914221714985012216868245968758542505936479233444712501443281650023629792283808308387602561451873174233129201148305434769357911018861837101717232997447055557844283957777239459517678127200046129756675051103990515267218800765674788141789383258680806693462719731387857999319692207998005845709170253722275577728007456254649992457056333828262403752784471958668045708663301884270033139748475412921529489270001365654261327537260582377434543228435225473568089925505140957952235854737927984045100208231578759853193231472098415937560234923993291316852877051957587200335763959747020650225806056852715969245736541519281497514753984148528002536351193257800511614738795726542402727589670896277478514215320757499147868855906494391253985021152227602970002240232443940631682390495496245713322556224080373754260407562448363045711314717388166028258268998245894250281400677530891738676695230340900070930331382440322233111203271010155304479434358890455060138788891899300440880226640273775093986192216880921769219651539648001462203394372853109251274011794021345102758499734530684887035326448029824414195976931709502876230346084842647640367939470833183983230076330568823073897659372010659638563218983478420666832884569716093766842497872013233261774975951270852889745299950505700278674780752658220405519517660402488325496376068817444335277224069113662358132778412818269554762473783831274892777662461261690655069568454301956798595192500790674728952068018125833366592074565098708522239117241322913034483608092787362738674735709274676378228578847372941967522811995133897477467451117946448049371861440129697873517609760843033034838507640802160013115946067673456626294143792219215616317248732680508970954831320248962313710148816870149834327427340987765271798662257438503642380651636994678384285393691181015873827691441397881838833543922044984198000477840445162382273567943790295001457885145246523941576816205693340501191081383825529335379167666584393527910268302884324877349266997123062371727847749713269999639814056225913552171040596460959387271622048186052534124620281687588710179228788126174579340998113082728435364829449103825164165425786402725672030315603719425859021883799961923081440662231484293958663667747290715744778561114129322390515791710838135991047860694336058768783021319751223437457357724397511930340505795255366213040503761378253960561522503060753193841542395093316191607855024681252188856611343605529622576188241477107833141868830185722460570510697522663012403690827921670751430242964084484644436754585665103141609461338239056931698521278270871952529720886707423584924293257454676387757757889291863351809862349392256116329772912421905877228258738400145497870132335816428262482098808773466859595706986057647155204066742984655355214276664281656839548147538712789951521217494605867117524280555644895650335077170902040383380749434237103159480183787007165373979180905837433895893252355390798810714864481158368916578581131085395370426131494177063221190638104656857124541010202454913921104598868819042237877191287056767024927918272076256501242197484955489292276499243659798690579098367227900811330451548583430332022764137341601392803661072193345879759773849741918868416669013742286732776726798287268222842736354649867328257919507821169410771788274407339132135913206405393669526482500420878744301827959106785632813431230316356945855557434196110820334267910512416914031829764787679661068205728687015882859323057918295742994021809119260019495834095167150927751597965275318755714440848388277155392986150439919216645339195322320089836572226433927648292595612933060787745449898306513065750031324785376491801322241177090101329298050287919065235015645255004584449448195389567098534578505602212237385182059846800613593064128820333793433444508187233604508046433064939574266531455944427304921536049142605669109043952307172541635087420451675004386223217988265200202843783396775755379550096536643829939938292421089792168222574676206674526288976566630352334907155712847089870718897077294992506349830191770761932341643052250350505979864667429509398138520065110460184460614816189622034163705446849545196960963641997448899213254884893037201036292404230029748015617546396194187118598712709960452088590461287118216590979030803230948962795809787876167561256968859827152073388181352695767721247248770462563768731462229743655341284976422727488653231833666152279852738888492722970073108446246878821317901199873235984274854645492905377633732660313251887931707453875654509556344524600258083123155734054913453708630315406419565484218888766703219725304008038470054136306237070759281385308686064532741138753225028299031660703135825478079536216718729571551678042579231721759597022497061604526768718532176050651516781511757422068269018763990148987628364165273079502075458928160727483180430387504315137826630193974649498832593000380381097004377193489563614113740384069623659007840191518671103040142363659523857180067131779564515605644912625130472997718497133122299877454586766325643285060367040908896950494565938929117992082313344336724122542375289792104991244449923818110708092633532803105595755332114768400136063932452696421068925486480063650067360575283403721482313288189429755960914172882327373951333968583048495272008653769480056610552800828299068354150947635758248650362723114670623082421549577763275656528782480542851054891800549500693658120934175002667873535871947283066489109471848884153989055870611677336116111842233609062902484524822072469312490708272243480351506877328085011965149145421587773378677942692591706786686786246191954211026719758215208179283020528070958248149796292352475965748625165660236847859284909800316434315864979809598794483734343733778868376716234298273071706867563993301371269033389435307389792064635767598168915748230438340989791859238447340647143961886069390899240758340463264816171775369773801374242409299783291860156284842661625381458939204523486788465958626783179357690930759567825629360594359547231391178887730979435781386136225614086751851865542390574951759729565230007712250604192349950907972152839170894531883195102765605632858690398940322352413667685831296361363820582422683151583844906904875404860516882481476589835493210046108174095993983865204456228353897412294942348530829887006439206965139735695678664777191063204111559161210542136661301407383798031397807892514282473350376566767166968815364934025208303585776948969524042605180374923773406156973334207723121238994757682665655474958765879315983775178719438822463834915362680079608079813804696110772652943437297288292380428905228269462891359038224153964432387239724178183041500013764762391743524326692816583269819363854482153216907101571862473606136439261887753907647538812731746803666348820711885872352750916993706598280559040860889178449071646669726466173174418372316617085948569106510839625792136322205631432823554083003935692958748074030620466029026068121029883349750592431049253056752974896173659671048238610115563249516873850742653791118262134117244353319029753591125935225721244424021428593200873535153795161342359910653200187648260162086259387401713917108545709681125633168743581833786286748967121393971864588600316111364743723205353198859757902749473501836662514438836979219286278891521778089645437366747831228289777729638757778095881266288275176967083632508972345985722023383223047496417739524864736105313043680640449523665493042561173514392027464223511866675537260806214709455257204306326871182404035351808008204082162198260840323916918705355207025468490092739183310328731741822143112853132837716976370038414994974195545624887902368168075286649731075463207476809215747155679802330035270418115053213910491679312271847686027409957219193180979099921343259067246612207346618461290489054046728970874391417452223514047098357269994669974149479174588152654876649835090513844941585840776902393405119811143436727214704918888770421825327709463285637707814095541161914186072925393752120792277059205481839032685836868247887595640061866512243260835681238144493876064961843576602829789260652241330553689478064400088375317550781643464150236394798331985507484110448184199444207861767419041297648080779370220419909291584580909390485987071455073661190324017535509667596633197320441597767901795000719436645746532807983824275531916997671174305482458009626626903676294347826022572623242387116502212017493785874511049142772266337263461409933446858470528983859579033536071216451394560410529329125432549572370032391543567597815938619828923098625317190437310547335401456564958795127391909187332167176073510894738115947220266093120664653562383057748171599509329241865973840624564448850260666218455951522672471841626193295866430646529374986702661279048699703877436456045610040492450889512927562738594651085403391577880096242440934421729644514340564160537267051018969731999958580529738237698411611943708014618280014954416807094286020023884585514633130481387258207969178059690430741132261550321362280050518106374838257383789500496743267381430413148830173969868071368405204268274267697273188219521167435809490245560195116872209299737646555143600709642230502896217070403735880617966987657325301713401718716637330321030638144887239303935744333549586321397138314690844505686258389356449650216060172150325607062804868820288829576957298449161350682425675502294380944433775481771235720789235876041374410643792879288982059723432146268868540778622599740931954234754129949171006246058666730773561828703141157805299832680101377993175628186810070715451491885968425354440846559076884116332368015361820643800650166646742278946479889960718371524343849410676473524415437986054372969369144172881448598615474709721079764069592847628880859404825292962304840330916914534287150112986372640602536756035711411137536524397306190488215018319065654079008905304133214481645285512876501348769877954972980122607486301584816639098152731699199162466583162983011747666952112574204946439599225498821633929083882305032083007024624268218740497559394785591985640398488112681207731311234495865796672633841796001907351093393771332295221270496258162571372537350982587613912060295700784748515759716223885660398775776883793825236126419102846332832782616709530583223594879735479344423102728538111165011123491606940887374191073619284464180032237963744308120642085195793092354598840963290703490858879563904084740510392535146383504396520563555956093217386075933212893984719398060326583705373392134543340652756179887116524966908455436118392826106433154502701875144991118483472748571350947898663456126666536267008649215159420487731415407748150521256931932199755581996553790830198559856783821979720348605682887812458868677818067364627397471613076220327525261728701030616912702086624596516740991468875961495793033179648952590170820819577983338848852939617044398031925069134335431030976292237793188914789539927563686996806575800566924384882056758014462997910705198515719268663571162482718202754452314449477187806576865369133367414196232125098067596557145787242886860824710341842592569706898995982267173034513882309828484005379049181275039681735122289192382948673616332233103275478191601189441575405051654131395016056241933765640459875664500006048137969216808762231890439449594530021034582679151479922644107740082556826229425873596827594642986372108270748466731895005922928484979915169449024000475241707144548375259160855175715522821720129187967300677861001318553676783917140421802323790867250254769218946340307566877219968524762544067959570033013264070933294645857988244269056676914772198624175256050087385544694168624531545048071601162901454414135232594340066374825518021201201269484047331821633653763362693008205141777203676225751813749857714599017190509308664899563124903007181005207756851484289085168247109330217122753863896546499522996638100427811436351878141131222494654246673328351025654604114021143824950221784814899624266530165536533666189303796133966351661250980499564441403461033301871908130269145565421384091046661839000227965044924262278796648410999442869345729992202415468640228316107349724990354442980129889054883297463557647645538759872263128253613335578722091950044200927712733422007198507119858954773995068663052737645789363607449729355025347351028384433920716424437679526167765099328036429584424504885352686615151467241090084238267236378970479430494219139251633844753886963563091798826524691047912420763755963260742079784388843371164345353725143281609437682254553466911128917211993671932225171064828276827557485143635308088810120295438568056771874443162519730161001638490616419876999120012139645030458184760918268954728067852323301682634335080721820043778391351551918144361382829072940397465298160810564753356111497504608721780874184930506893635264031574643151161128028353452803307512424734870585131917212991206673274211542463447151493123155817113412844940582751306202076984521988856595026483319963659392212078932024461387285344679284079004894808284515434927498063295322853014832853370139453257379395646521230924606874212904303792138169444397743720006782404987346538203088186834189111673663255674674566472916562108107202770635250297836868071790731457239777924035620382900578015796393030528728582084884643355496564888933700129786747683016792469794073177018026881181025795468077085143015155455108908493048029322586397098411335706017891029482398938613598850572123440740802987252948585060681736818188856392462651620428887619630675511368130995314509227914778905797721994438719456202943827556961885332564916040075603274283867844263206107559012617708854783763346690064830416664369535833963541815359691004706366549758198546673318025509961812470315008154090783868639310911350797977277930313865818568079240145781950085691003379034251139802950623797164070304415615429311028012255938469391052754934721604580099274624747638427673013847845480205884875682178074325049144444899147767395571103886731911441062977826989844886227446058253955979795443980235358889776646557961838875393141720277294059129419483598788856535694974545242116922986022034521993996166378140429574012316016134867937385627480435506985403886830550303591374101417498087097200675077796769479497322100072994150543673033571573147013805796071233385974221117993114822400027040131634877533236735806314496327322071072526073373682238870324989041070732748831283794102354356786502784975814211881361150944543596074998734258921490125207076920814179450251347562876914712282528529024366183486081091314599307819568578957899283165715069512168176756350866451875165568208173283435860040882700429511091781740531948836881346412572445489800886600375174435847838737650924318577580151618624615523262244483787824007642285257884916956635560243504268910409868204411040478729191769464327279725046106838535203068864120885623354465742712482928682935076858064940241905113486326565176093951217839418994940049775349507161217243043075004258094080340202243150286402196872531709403670990425749548658517517591270547056603147066920890504768597131369363204360108653812543924095488736698573159444830056442989799090916342643737886192548098460199243157999215556972366178657618045775866716810477784541077188516653258030302212355559948214242633581435538970223406528411105038217666227710896932971209475879889651649615014598305623957514095526659117534133124355326392006032743425154967161595715605997060129220830784580080835682753816390373869089792526426886603635041610262513814182912303769110984453257866024052936076437405679960624640329703294281965205905045171498930845927760655097856872402653651425553019571559408280575827321119516945008808671356007578445324042140840564943825070461567849998538815902552179809320905037429367677461673669750117103612541684253709493758118592958852633582240034364703621889177593626634412619036915404377835822790147876357675306235966819126142926025248699083898780876596127452315781998837925285080677084388176457601266368741711326532065357770166499176739703042182745478465148048551775285294632839948073940087902776591838462882530532607633420082861570528233687778621638397736007347846327968590372312066983086061858024543034226314061829253009018228484770351426787626913317217361322005445365469915778736966048679740671421610836877635571710158121689785975719097317700050819963013143165614179880013518416406163842592388119637257852715756409801611793664458200247395310635075946631383841378507586386158865453250947332849709105190431458473806695389796897496879338926716620120797610306370904452722771607343100714786618272235299053463234524112495602510297382434733780428227144905046120644161743477154432533326478539884318203825099869834531949262344536729297686558673557537580042741308076039334523244447515422329378716810860435479437467705168336767398843888305322472681084027113990037552725161400465394426499465884724847210578465575390864529063430515308855002600072582746770538898876667505983778095732182154597121224842571567216713632205737238348300031502093523819500084925140681170888193455719821175408084252863996436356819667875764401502930543876757423322704361384929389050479283096841434398548844759955766749382579103853044042576611993630628348445308032036027949867404257248772277118507132995798582359093971766653906857316022543323610731696323291015852671528158380974889091732140210270702914606633090082073243996402999233443552750566548318076723582030728794416340989496479260425235624847966279646828379758159130524268695343933633812947899235579683272638323355255725985023312992107051349533671119713253890610097212954572528148559457895802249237638247930955475122748875828954403812781444862191195594322672076559034098430492058945772623816040418347677446912081470265838281942086008615559238642636546530176317673282928772390449844062380200408919874227593274084125132797261306766747364969332736071734551678449836309052478029599532794368799429744295997134741980786558196404714872072095271730907923660787790538993399295082609684610275091553381843562016999336454420651407203436486307645994262230662092209627535127944169832178185690506804384884282222773830906869805688894753913830441087280675389189874408254908073149375150095311956311337762904951754452620219756113317053390911352543482759482876471762486844580280743958575151200992370160492359206891904349470951213338504304376392985891572314329225345353889098985568022697811523261175391577044222387441048044623455528363049239806903574986651161568576830228128639334150890887255704574411524714915319699465837978398050907466097598138912164277457805441591764731062660580202291808992258034589177710485052679078767698249973569108885665695546993232622500728590366636783138570370151597144826793912894486294661051768093130375549868499268741858517563089797618962678706267050362598794514513796911363899421945196414496740103868428887042603266182842561693539819806385084732074163254289472681429921383666538081348713933546126300026220982546773781899510635004407806653005014887330981575715817512486429959729633907341561259700098027178359273508048071375785724151341417175515081239208268450419548260684606606988003434719320731651024972909160686888959528206255064820360979610265012498059913214509964105922535431582275376467315708608117508848414404705327897554938923032821914906370104147310354318522489967540290780431793749187402724934153943384445597493829370882377529345341668063042653321596640184989336426176955309750474711414241025376882622113386220120943470489133974203349670031620066499305981177744342434370220872393638732482256122870280299544036785700791339036174605212705284293398899670509145744110136286046980866421614050370155769869922461374803193625721049692601346667519724611561097060234973357377386187223469361020599500376607297351754791650255873182463925796930132969595208125541569339156095929162368538228276513212521841045159984399378698251621667239202171968759680367687170498174506277825136689995271632435575797235669848841788745174003788465762081948800085294174601157850036666537077001599894628688417624914791290412766510312253872447375244414631354216215977981167124186007074739235067038075651211126666034918845956513951754080224272837307185760634191224355638717430152191636286901717681158620464157350180691504815297574327954855386777368533895090469446248646995775335578971512117929117574273404878875568854639740508943711678390122424573198655742427027253664272492644780830005571966699069653694843601859483724545164736739301880460872986763263286565192455438511199368569147313623312022259952255830705216838371735801557195310721733197709600749228773540791971964248749937765309337794824454514642009303678638646212420143613697853633312963519769091831702806991928914989207581829278080242655593475502898522586282590177668958353621666354688031527541433653944148470187513030637777543469288166464532246645523940947972853639650334576404816765063933951346935295204690938132285814003282979652104387839892466885015145755315455432971778553412937395256759625708804035876681472265266295989516223118598795800996412226810184746203792296860200085231313212008289006708301910731397343284788910436748792712019286101935845512608807871257880179953516036620833245512810087516648325523980603622090273427730552851041721675942431067863334200935532839510162986355906855919866040475639005089819402462080161360768159821953302598451910652889401883386524874940815537175088033373673390038990830600808819708838053028817146153987663100765397968884180258551680035092113040400915098796477237342773732276432023035059603851981828067786382436696927678757354874810503791678646267325987173710684212659297446884275056307019491396845777359395302686308812639888178991868759065011950303969644186844382482992154548491486922314753755621387454554788368860938715258050161699407645090351399860807936823734385605954451032818617642982053320311874601497041355345265964221374146667216210254120867643331063249905246438396521559235915781113445188095016867871423996174600662155316646632718877675146011675495861305977679455633366881062733425054344093001007086619221511299085379170685024915498416855901585084169738867978116280519847896559915260542542392561881140738632668812156781678035284769822561650642519669136014735529987682592034828888478632715196367059409692810677346376740539350037568541893013159096819921841284690716063029749786915980144032291360099515037209460758776739628689183465023591094465764952585575691012346615716573392195023290928179561605755249231685174542689847429299766425142816575762185652916539122945761227156240080226583379848398071805959779778937097613116858487893752309781188772108550230411750394290016511765910794830003383927040241852586899356508609055849041672903317258476341014564556668797042592660741851345163000544992622717638075793415165473281827229647166171520211336579722631296298965165668629375500555219495435331738757983898858921752760699305614931611463857345874347677533852476765922513841810974493249630976312532787424240520149657232281928671991759127755286022295638345883583286812093998572370615100615444460872907965278575585624672833916528321218769501309813639107644887638873664437578563648571564082096543961742089553650403442962452935213856508234313152048320942148495453428878179380913797330064730216482585665230647760207485563101949937182784720779070872514824017172278557806105529870086730893590678641590605025020875659315707367775367527078128664666432705089934369935409031842946636726790309582244428398709662488399959201717768505407212789607025919295988724543338602936494460254392521261815746699069162158030002405163753247504871589275140324524835196836210228896416449677266191553254661509390859090914831975615745638407747685585832806456918303508806632445515286905757157246682635775309581186227337586030798260653786407460974428484813023496626018837275032901725989517652703128536933095996812530717642291131775571454679121485928928847686953679021351969835692563382978746202221348151178410903579731367071825510079452990230748272937654586625422983752038845875004905330333002041934492911850050705636426880783564007712638976548171479454530708955400772500574432059998350150482772698310069769391097092991395406783115930418120928334999786423833411657128578604705739860966203849468362884999072721314127004637173894092627787105708794158611424440950789759228003782791081545048405721910779154129005625517600268261220820520088570274779724316883907941821589375058797515000398896739590376711146783560025647345204606165555894697024500370488903573735401833835681023343219659469552889940384059238326502207494461879888609416719690935534412329822810164532045902827722886816588138786034679022985074759387752987014943314538836888804285250275612072836463334008059551101044755491726445311045967324665015515310553292894247971659401933728077343583960344358193639439860800157723945959371257458336405633538808481619614915629571701826068497281919328264665856573770905062845114707444107215677925888932295220833269015130199603112947039719245885746700174954369309209585149053089397170118117841447784400857909973908573545563924234990727327205431578551592716505115668304276364722035585292060370960993847558506394915137777063582065535287934952855389958108131143276567169775127216690415019773908472688427026219575031674673585306031149143493609670021682127890864916699438249180598184429156542400064527468049004145270219849538993990964742906572119506333380398411610072346177025736213867901875867980717370083487169589867629152722281485140741851037941055217622457101827625581272651423035968303615359951185231673578291898979590491211327540818036301647439911235525822762574371793128928770589942593615838864175397030537984470145715771835863962299719726876669624673055729278105959852737156041614193092758981947652221192856748865386706209301377969638198853118556233876946394306583788566320619819220654440611616391360623225793872399172434153192000103127139694058365656331157023678310886934976649181577877543715311602376196784082925572327133196920615256946955261821804258493684358419655559165143932114730344097762695838669502544728116146400432144735522991030975237565228600854404862478443573639220237794554126691486998543307330502070009512787964454632844846562911891799685035266114833515020278341457619279993131460893794851789927126021473846817688134132656540703711140498853925823275734554280998109976005663299226386336780126151502281463914486278418358469096217588138828142684417702643410248841535354597673856353256306176281317383555257634159262737914811271062600205784395904897311654641073797725313883273255692065208153116885144394942055712006815130438358838471799993435925429640715617755054261439276347461934857423590115659033008442535346615715488563466283634159666151701233026313806953433447966926504344472405544689864395736276354091072390317262334741303220537396117666732856383914779977165345672410767305686409353521458435717995634246215810791573511430232050207287524953003641396008346107428925916676010755333670370715847472126499574439347982491281054941754968323885267454082526462434016624541080306311026811110899097098185590615274282300388020915517312211330299771020789516643898627832957204285603526623142736185202533528303900059219819091822595086506671080624375968027451806209211288453330882766053007020318632856964894398869496671006107374793697117090738904199710426779927123689748199580653727275497376966100753736619017166971800785722371589059443832727476586799220632994608860563630648094495222940224383941554485698255366983189983081022378028405360984069767176630883708969685525299299274926930704642698032724993654227845344192747935123550387037013772955702576244197356466724960613490545781502406685307981547771617915107274624751876106500438915778613437457028761389444586815381864807487629261698822024299014872689618001833562264540798897192931003791135300193452939396084266374941973500652389994416430713527232702639763700880072684579522611451551550920772453466023792869437647956511791652988836543973266487289906926874585166542326545373095200341291305553318201374205559440045379407861804070770743581540551798051500017805218162967610662614548075752846060630231936515563001812244533763917093098908242162264582042882262964805248262081321189448276042600928999961746764804515635779155664179028967439619243953659874075879551844186867498841776247073536489729280263625344818121392854333766498692676941774334316849374252873436583476692173624797537406491926397853110083579896273442370847551168993435220042979726575231201561805169923140980264229865812288573616728736740923813805789397758568612047341454113895104423065865383731749659553140282278107694752394825531495240584862797619296592153572406667022967599741587054442660426272118503342755619087263692572387122166404590197834879844046608814526590268768102192591020978978229761333784881316912962817502054445367504361133140109625044743933549279556368148675369635093058185782043598477825115645096971324034584974968016162636752328751783871798304462592052886511288087284656827146738975353406277593701957406691180953867935460877686172094131923345714442510864966653990614730335592938892234071423651241633809416150515532225957302468624955626759950435016256313165853745320725915171267692301362693725592686946881903669754430520776716462925858842700707488849009741383827791795009292620355563573482823997226432825503893673123864638977410572763736076412972780110786335797698606736325418719092999537900703589751635293960152499493361942254421436623616490381065068058168066733047890279393725431209352245387819897886722646969703620106282332388035876356943540971721282310328710807900487341111973013000247134663006781136255308723270976503563701839307069516814186186415824209602966323027199326755837356016707763877692383855668505065128984288802189861064387753303252039482842273728986181965680024855887490739816505970241039836006295979104380184032615700066744796072995958861744507960483990424943172504517007681042229303432447013020511385468639745907804099109046839718607617470792451895400294640596303376262708578189960220255297335904595806949246006745536169549572561124053969722629146247569320567095037794829179174173976311553304772560720692438160313588580161047088855254605780150601523180597078880859975795212253195326026894748412270416918802703079885522087673426100134417355454113311731899535095744970651671389157524780313689280247780857526250325141284709284598069292984405177068379896201189451840884466918823089752395007192554280077853389507016057876711948746326347726517142419714422221680636945824200579822161838465491954296110759207496197207414077259155223936243421052865916011813063071004193725063143331840346979925739842344424400189959258381324037587827769023236004267142926268897229386139661187238811802463566049763816694113037703433144855904778079418582826811069068219790526921572072701158580162446417697316635909204355021378354044506657862598705263413282362810875467093551904502494676963807521298054309544692319594125057922155839233729149671683843448958631117937656119481248152858632371903376997749473098283048467253493136763538593297741441408937021914530571785458667697986567697098203213226132532844486140870930337201748669008314181958788425097341277365005047585535567325478039028370328059014708541588969674252561942941851256005045619720928252781341003087738562330453360776710345690199992376114483776947232357380389755615191106201337840822420467537520655932469917490831324878664218271880790070656263856950164569934088081570692319400092428868138593752822008192925739466000989455095076519983973778721805991473418678142837458254072481167705186389215256896358977130402687331865166196707977063193923613320363110051595138764553283957714708559326282497305853546338565524288976176122702382997381222668173339803234412477092745561800705680248704920973585690219461818330160377149216515670733239644170226880946976002835625415505994011494911103726378343014122638443352572126786594608619897609267786509014050522231578443286893750308757581673097408236601005569136019181185033795747264149330521431010382274633285192241966868176225855472530732212432930746769235650103505940629800353796730127637002756992062810012264830244782815141942365509028675175735719796584326108420787171312620865136114672928723558449766879137145570381678107296752949403234693544578536114597555527077860739112697878674838051954397028144427282375432710712345563127292568005180454468857715614052271185883499515927184648323397339042813881255643894799896148655115137456318229424068325544777006527855545638679987449454733615043813020691990717277490646374795650981597504864959483650518133664489232688365242480122007796998616333765276675014719228553906817184674159321716014472044270189539083835869404939637060732283836456237629552149256071673905719461873447468609256353410633598265569523958208044760838525884223172660209068734963135633963709240673307549339125598041995381847433243189147145420644595352454761927885533089411639726923945804599990895241858369887256837466055639079911405972877544882475474137638708907841716601175940495119070561130951860004597918933572608268492224913328704620926963873417224186171808791610549238654844294235775837445157874807447458793773635092985098314038135762733307321014318343126367150957264255548619421942039817384174344493159443153762919365648643115443986538670738971125907642867282323445379807525411993423981452721213957788559943392842986938296888210939251962913278560310045843140586496994687554868510244314966105776814358626582428802508043811535687011111555047083384564276085182548113330012959581475460278971334394257593580248302720212719803309565385772498190433927269687616133442119033385531033785249582752996910586900845399659643693346981320970137438370380902888038607000808351630801541131703872009197565948893871275523249542067506900688077130534810739967978891425337283387344288144096496258914559724142124291827309680081756488938596955507482000847743883718847412308886476466389674000176200021699336857550502434371507263878799523741048059320370826014181042896621853105109491613126767039329083044218199114400143931886007342435000394496377377944781464193109798222836798419719578835939148578679238579653869476041415275884675056554887747325143367070338796972669965530646199134338733953791477629239485888859438924739899792269024215250304672508987488091111957365757142682949220111715588371020800411547505069831204520354150182101155061086034742633589800629443191981909598986051187661759737380041823760101308032993117680178766909528158018631658755626844343804358890526259049553048826401360813792017222266817429449422467587070937383305607544686482207414857010443520557892436512986793587940552576122862054525971344421657186786311251261911260504132163648207516191605342368026224892133880766165944265208438194218482277855115015630399338702856685354368592971691125507087809519647778829445906008330848517671218881432873677705086860331107761211423375239526952231818419027134634327898777836626963353408396427839322457836026049633547618648726698530479975358115691991616083942897025447781219452452665949103264826071317696992981283524637748212573349983892027824168973239509567861161196681724576148854755051983030989606918267582357139748355386111427185894841965485642167842989497456663988339649041538236311259394618980062750000231647890553820908212713957306576153767708589870078645383782145099774748377606237434120720360112440622421680942231302313661069211378212057051185140564418437165830466220469479015381956035727079703031154177676123042494771344643286100620532701805593801912324112047471164107052430535338369311905233900117613186250030835940380903100046540219261146266238206689817526043745675008838150735354994602748759019475785136161154937964231758292705124383801212847130385958266565934878453036091278784011151515919449351875845777193094711953730877293013537603815400406445239693582371913638438642983307550895294767745415928658172549061038367542808432430615012515313379076887440851414735319216983807371784441558815926590645109172874209625912754786210395254747369465894982404161308163114689964443535320762586859467530421135524823414996973792644153011364483753448760536176764155361588515173427843530868568475089606095800990308949576129625879095683448364882697706910445654797088466605504634254161068221831544402333888577002674244576864874671126273452249050644528414907965151985291164128033456793730708397709906408484668859838383250187447564248581360910368449418047414189578888307944234114718359654078769669853548690428708853504891123800845048848258366229487157014031764345644183911600162874154267860546773465673734878090035327708049565949832762864386315462651129126621050754001506713342994232806642308898237880083618915918794653610377261896811720067226059001558186113299308318057395142211525717526930338939192678877781509956422170895916651573789807483175168842842017019336271496698600631164883731465461550993134709008362677469028564181871489967605055347663154440235237240615582296556724717565650182766553928722452824780854225859984856496844133898188386026714621723938484924063177861907038153489977753665366551678361580846990723489475212339599283406082461588304638950142239094060264653782568726161516908618585311331420223038996825553593078183977376178340519125794220556432047310120866395675523612164795320694519405635549318778601111636165877374777658330448604452359834825833785031837728489868498184892346461160258900402589663187731107971935705816508810433834182819064738271506994148920233413991776881596153046197463094645308812499766611835996311566657487693054798201152488889261870662414775926217166251071979952543926882963636307129620932723918741569202028866859894608565023742154051980968605578830917525800264618228368513293364144493252107847948256919170987059963917898665558608719039160200777849313898454462204919762540449715239669611738733221455075677958216461408625637860726240624056264529834226333070056356247248798119728768807549792615183290040538941262663360526410323898789714056947386447608174774774045187504911147476227488567360655097970557712560120136146898630977187816315717212544749617567957232920076975970263940141282883377726631066319702118144259747509706840015799825516247973156120183198067819632809763669727203591026718506585623832039347303460064085853781817127405545386545139088025804070709156043231681556834441029688862149721264374006145202098090160394558316844661721991210118773366274680491244818204404691919237172226781305568544912831948931189950232114700330909472512102406956311414311182317108942517178165894227760784800063808279731559877128777335146192245404793506208203709674356256568539649534618134215184332261678877079258888024438924709281514005839711376030571673326333387636345631541111680880166614120695894764957832559013663439329037364474494576267308383982868636072869083062813211541279196303830982336142936065710811966895647294725666278209698709329863869655094922716428871913429748132214802160776610270368620000077806852828766145456510894721702856507515406911071856945203725507633383603499532062249608390106669868863568805130139889937159029442447322620952987356935817569980203763591531401162559384202923230614500609868295128101728273435075637462925837397253077935970723023395451400268521983498529879922917414248928938377543186588320293923610016215413447994589226903823372289049094181345808653407172515801350308281059040740419002531209987494149270724633635818896598447985154296258851257781414254951387660658868396275574794726260318103686319943220896208412372535125589331304746642108621320714150759672747066853956831633229683507680778033196145259267263218840184154203676752423262438344388138537009921430579663047323808317340295367715859223349272556087191014583177818952336001670201000421741109741604757214603954695649467342195328363800008461842050156202683851701464270060074822497756425084457238944785575691693738063990121843091678847683757045393334234298862362083112996399190701685482538852735229439034788731578888450060857311963212069123343999680671653183587704678011797082007566717178356055765732282810112382324410793993734692450969035786607937257153327917459111827786008691159785213227129768025592724215969271702108602680310291547621829653367873213034974041323323881839274506095638681610572529954745816216346973258090092977683784728785408589725550155304950701365143973032441146739990605924316525634285749878666769852402270638843826366621220848797177150189915766813384284816189215731584737193952643117036104007062061215747620814679105414978185516932156042681045735102318200555756479096033808919068157463876500392946392242347633168141229659929010844003966720465068053082504088008719418596692237637413610986752081715266840955915004504569366695538091291599822055394260620151450916072369244977987712325627739961902047431910259750660668615252732618140941536189091744007209568475497652517135714464475889329683136651861622440713788054897193738608060456905527309652555967872216494714889540552128927167103841577671494630585354498734446234342943335998301435928033383327748163923536216939775566430615252817309830786762168672597931994095146015336561495486388725686089515477366768100047943529024769000631926555853580178253652065676145077740660899226166391561959081968061033911987310034409857052408553731829283080700699255070524781829524501470072874688021452483187267165850485672726696041637342723938248596243533609210201088723312505791178534464319558705623034036864262442348763338994851633223019694653034145139234220548034642401974009750872965803419983267547476507926867598887809716644113444794177736045953217133433055513547181616584944603011021486452310429387676660242325893809340141007732281738898352823255769183723152455169388283866747585298128961710587578150089541650851946445306024094947924046782283350377139339087074929895843333217844696764658821593214977998395739925629065540839807274006580300231083570189838675334306881981214438611070842973919295416448896503118565850455566060273240753302521466681494847470519708716569282435865098093652968299836940016652293165346029464804236340414751673476077570859523218247481825380388600035449703796431358347719549971136209205446160303902095598279501186073974327118718114834089666300205263222946845160719585642561605576325937363591416007912126375888821946070881142668769570590263712685353963170910593992965304511440295631477624327057258175509853965777212706222171884962400584772675756934579445773008286752709040144199144404867115767931478679926110904400505791763458693415102845756640240361612511641805199553556762392980194899675412844339013003639887204244145820465301038825737408555712514490184098373836594893905251129532658988356054576741338571257817743648323628929279705002602058032890279652336634574129935653060364238840238674633022689716135524315009720977500276735336837730563999424151708439562687764229009661018056332918348902610595606523037653031614414498668919379549012030247666236042619248208426917055032567608994973903981896239508869854316943788636819737968208852098336293128375622498380098314778917370710104795306831473593045213528970091310347217840801644013155571101431925588088176280958860978205685118767656685473686573624739310269106945076706665224042650622716680547600321428981705636472437864383430734697796991261696978825114942035273341024751862644501499131624730439107965477083539571089591481516136302897644740482783544916528206464914630661766876407824564176072055434708076625307619896099200432580845832338680690812824153702567028867064813902258768315523416419684278098902445439842166529699454916846820741059577048677228188490467749593511036690926231522885416535781312558731469557497242797880289903828874404624735164496450166212156749092700814809259313811124543502825391323432632082952451861459087981191699539613647079921064531873274762960174979035255906926404609359702652420768237937661396493186241762709267599700997792456722893809859358364327493663374572294222064373553205741834144347783585386034354867164232412247656338679692775146526306441560344172849863183945031582092218761703233409886973471430656718193778909423746931748819306168035003797971127679357994841665054864496060593164896011589986591640028534562970594261381313957992346160440797997225740186318337748801965857181395886719309905393344379428127756573319711196016365942373925753728360618893924865509831511138024224051459359321807432670875178675520519382508492571545721427935002121727743920565171877207032888421734351460957133149157339368010603750096628448677200943881383999746929573074599539572050090422584621123891285979687213337394542351212359689235554783923612571481444985810333508436431245922175593906048539273672652882182471500817373631642612577638803659716160779405498457470076796673514338639372547473580170481327086688479695711006190220672653513674428538850920820861731692889489191676087121385492206470214982698228207596153706619434087333039818352170251184691162679648457969312893742666192131193812175316683139875399517797896995173819541474088835797204002463515363116831963859280594838143400908818360957504371067087741979553191249236608675413877439213667766811418167961106598170215288513823940488961239167023521937812530373637700750838704478806886637446557975233475281638379620696445932722234629490848639910504744383946678976535669378700517325672940827131792112350432782309502557758645559605549825342585360954540666471050205939897303874305350318751457924037701506983954736224066397365628733949483490263680716736620636616574146052093042837124570901419728352322552764823771024499469926716012196230618906070406753053891915197605565307231523319878772426248208565177811003723382633305137253086476482361848029215323604081353921303470114195658118637169169778406639207891160428100367992361017987790431167372856137723275518449258023515739475147895164848975358650258637736298087315930139088340785634461272626131312637312262734291282761917273586322997667953243075486807612395851033799221379292592412453392304133427460122487649053955893048415918739070909572783005022945968937907276344410823799038847686595120155791451630486524946971213146064296307720247630111120948846291535328828813111077208569083757410874056085685865441346262190580323301648403352345845187059105623924737623331756558041679750644539863256225460137709841142992990967746498857854221636576458380615061464822205680263574692581990472859039705899063243848089959169347260978092306043986184027128394203407334075832733940181263308076450049796493184919468955785389137318078360861593420035598606019652068432607471707086510973196844585332277655236331575513869784056910790018033748818129533533190736603232199038378060530715623559361415057029338742201226921732133252052102129147723606951913952503012375236197801598809236647981148527168538760064985053731662511497184050237596585452006151659807361855619690133383272645230374339514506294719109002569064762291829048300283051221775459165529088113555798251333834817311960859273892205291937956203397012590287475155105766886303145436345342842632412333247019909184597934712482408158505579328067803254962993258496544337856380792275152642700780220919019630726235647267198828840432675206977655759367937011173062849385933789938092202049617221784130855426275899730377123656674999426343246850922433054003620740907689749976598042270176158813961028245077921691683219486484924501455817996583984560048024302735793505291243461659001495850265411634692983680472530197581334957141109562775632168104062424732979095060581347200698793247048817831528674678031283178928256170269803214974607128623039914953162107894793766989830353947608803175095255518470927029915029297249099426569413082008183745081543323601349944382213377490805674111332755922868604518038145404679154970794105899786644543451652927443307663519828034610339008582259018928422207750586780456455854001147771090869374211602016855920422538609792263159874606723079030485175590281003763804191851665442727198677494235040149699560281784908111010938567550492320927971656216484599302834551464678221383767141969991389299644114448195539623793407722699748720023276222955412666693539468265571367202403563926687006862646918314114919473077076430273489102265144114436566813852652610607026014203087148127735266580941386700826092314722755149641652049425999781876438889416386961431252902282027022017252167083188027931680499154411945277096260084818630002483225789375835620716712153343343825768168506343689784961823989230347776904875304626839735267222311310369322226757699139368186598076015438070550858010013553623487795925367717676053073530114605319071117961176972922099253161579822917637804959046158762225996535738592656736600225611874464255262080717234636224853488275395256763768474105743993517058947469492680571235700883195695864196691918599550590624545794672763222121906004077599705131131477751798643493492544835361083888203780800864928051113953593172732298075516645607884852427551006443446078700264565883366952567778296602336539726335917947382739533612647048135472910549504424045144890676283212933223643093580699145857661609995608656960804448019912981654447259705115259354689117088380322224549633677749419525350396292082098926863946773284431939363151170646624201047465575794970230720576351918956326766353792017248698263852859369730073023282987325005156664252966030980129838935923948316102682302008722692242257928286425779695081449731519704455318494711724242948643757601028032018374125732560934395632540812157640238883867300187677015889634345054303934304668658414035904995697132660067801417405576654701027282282807097301992001162565944405481917569724262628311145612222983677910602914754166103992988012074630333151782306793658680892127827194736962687355265220471414745969716700382521581936477356472086153314182742408001754094990434772103846648218270424937959129989293646661011815071951655866378655132874724699270418223417148448163490533809601623476609364298544913470659366361654065263797079377152624995225148036382184563215781838154209950850577697356944984916850135908812039650202018589389966708719481448355745395690621600501559784904693906282367483048967522885678968533736670883191707695387423730800072606568120846299515373449913336627535056077392457068533168277295438108970886926727150357341566405147232122972316695381772113258906700488590489044713774501395184190397353560715315285192160778903466708672334715875837330376135502820646210051774484380658714144115158620256950508950905200464143159730382449942546216011217594521712044477135756427259724352534030949704519885112971847576060111077491514357296017432313557656342544237812993261041620442450837652244598594620081114321891726933767981414394505537223694297124859847360101755651502356794448432679946352893871562605512551344076546424105268339409146319284329972261097877809329655384799463154710066187763675926380643910893248962323597463947968453515226898196853671022656317313578168049359233041448401957209949404107758974946828398190205892264403652524587086588749896670253788372800181885034761866467224307568926587262391371752464080718864264120586020234769865649143516852008736066207889431067600770639149168935488194075054406179032743399025342444663199255474250014642264598471990906090554894810127175764358748890969422096109082186503592531585003874999938410001794396563226980153821632133365521940570249702167378945833163987907912932961376440837599353822933821147890535534448228271894414889887140816934640168275657924640407691793572305284859220932375867176800598002274747274734979451883831649172589510408345928634312342714308051109085728800152691194952842810741149724051764365941503620878975378407071147422422423560536768958240445950090628940138564644600010733796995322178372070901907245214686063432369934204312762527608559061814087165545869217873127636524753844334785227392172444989431351622033610273453644117341768034910926501785663237698710716636993415302222192326448202329692962149227733480176215776458633652711002886246856291368287063271072605547218551974650586844415024790959140598220912993745709493526266762173253339480962349328212848588683728594489505987843426642725860421945989715737545700799692832762877843480952056047694111583899174633753701783446523894553101763530020889556220071190042278195282641955689417420366246550471914032148798415618545520768427325110435015561182785688931599741640380962353164724551301962848371931179526436220039523392336729173377151754542675183215120348254516735275479440764698195814915806191416484453111504340382407968103932547272699597036587046717556682964371973829448033512123875828627127069664192964777811177454228596005580086742562067930403281596315844168390213240949600139545446779066809457509551315679998907532342405465126214606082740720205164205775196907318314582894237398388988014523758902906084162300771885405782788524959213790349725409594032917049358243072155129288856004912485044528201542549137911815058827721090529142034490873658709282663278395559020078044196237466605813264016217774042571440715245138663960890629784766249085739291674248578986096064008137466822217713452091769145986790842242498499543880286596961680185429165051935054806101873200483689946088696311206307588175785233146285616924732257550482057449676577301358856416008214846988995266321364958457027131356877795155455706278416225824969644404098896233513571495591739871478805117989262102641476377688617384746422305248147310770064695952633478497378683354413985884439998666758484540989158037808804686477808265944672411885411289788575987745466651927395001484959248660455157812952114988319815084102089317009997149910899285156140400009825231484829096987471617509262816815244115391210911337192062839835096360008696437747213661676346678421345338668274691747774877050480129896374318673096381757394371317436321452383731716236090551934719041969558795859675049162693520333015575310994829313858284048983778723440145123174233825701626465033266222675592610116897500031862665858568767261376284984894856545194342356941534893016119443544098487835947007686014304797790103429672561818005947702915506622876386810750720183948727522233910905861782941339217687460064773379682090927237989386773752310298806545029474305543660096954095977635398973311240982169139651662314419456735031015316802098577635111909448783402533248494361511549966420692679163712078607150629199818197130059596266253036513377956707963798309511832882675671760221054929533972639706295124681891759332599248653268976198334647185883251069055988357945445478255639546317060710914499350900445247140509003329763088504830136363972973579493247647805029312905167840608038315834258571318468705809736562945516495087631032122760008878967003668905946847022248797788475469870745705048461751060528056206059899244164922760154560945015397686784313282729757628420774123879075611833766843897253372543826059013195013441019258826993968738581671051620190431683382235579691161631689098579564839262341987515503858199767073758696844410662061144203714282321500212100486730693433259234621071735804774693828807399631564863949023952541659884551292272173607432834322363457887400284612266025476694283383215778780056308943432947545751296683954938006320934960632784397624965957965731236165231532265844027345283761941857604570916363443759396790439407377569154141686224710223875956434165551845575104215917761141509822197055597517696679480352611545762803289109968010594929855717048956720052618237196901182492301851872123691804322950254532363757563699628868683602118714780963572790804444879615740408931239933594031437455896180801275248073030005212605691338039365096167776732889469976300090170875570098615916002330331994810279071934188364369709403741061935538756176521861077041534850264373724749802108767502627712266342293740732100965147790486934780543330003891693615244073345437685737069632895822738869665875390544786114518047087251139076981746223034385906876023524864263087437155380822128695152938083539008438906677206270528730219569217512302516275617782426339722226764137902519768874270762099498160299729434973621349934316376784456660048020954941362864232738476403933833130165453740652653001407442083166070218204239243956911163052915250941232650259074740459263807078735559346824099247409212565930335826989945046236064945522155547052670468367864851012412223707946635307968130670912701774536159196373580403644713149635403273153830560717380885971256960041927789000447918115488707639593570480248623888180155516241380673332627894927473023363288783981460718928342831583026956015876027072283062179068359055808566839905936298390179539021776161668749257781720807422207288318673433223362164328673495914388677827009791862562087812340005535038832666178635510619741296338965820628128663867233022127923524483345056339699654759839238280339823885597319883964550599463906489156867142484441379291768102944271841226712997659543939842667189172011149182999156659811779771785191581800616193387846523275719256801227104308862960757927599606643802345138124900865847972759653831441553669957348828845545539754696163137123192827341009996576236274132737157664925380190728251473557216894335899901651172058657922595980525994479228844175105655277357584930952644869581483377455465433002774390457744954572971653667349144535228303620377890141653985089640562087723726800165138016932483624071254667163179972141026733224174515416005454017980708454033800809342624996910540798048581986219546711332375416753006543427890276852623553297348972532479139873057671530525269541050011539427469657651860143518886408217308377039303457982312598425580379131508574060926159165109218955955076726844015148699358112701301286421796028502438788805967247487211487440068764664039852105457553519351920850235189227500973306112538386554034624068800266364486660856017301759265306302813764405462471517816790482952477007800383952829280535225606652543303609149341657374488363452473649108082460020087145958254913355493761518411546593953047946625339161866793895218373491865284472380156239854278668124350603024019555864720149542377474244210958677378672061612601412463276111953830187226197753806549663906296328571588595245871812670111358129248401726483808282098474186157013060700453678041004309950689477953704202590977571984290908405767535961886568607432740319154309048047435068492242736173908888772369223701348547360619934541645092673982917953470813530913270715377469463754585022541288226999538579555013326421965097663762403560582534132850729439792875121256852771890084030489828025545697505762538893683492148949145356649259562342546581428397440815177598732123853240273566547351917881478170206673219223311860405598381975428263397704335356698989634820023039140563338224265714229034808127862926335067755371029343952353591767405933791410479610203801236269221074405530136651427562495323896171612111868568741673450611885358682058232246141759368220573102741004336534145539600187028518623873750619426751692291113504326541804413619557805089580764696894393159383090717487299881007964031270001363702460948096300634789428129363678023956365158780245774787997882287583741162859844314395264414838000699858696619968247556243548873021200204960502288322945394162024544300733066154480016461660435982396233261647707033920803795185324085057245156683522013100003230759593884268872216255201333236167060250366782532746760093649303243205855049761038289924784340396799660662151069629079704166460380570415569697981792954417472734155276860565075581163197502812153402914923143521040601974283576411966253124946439181980525833842114613046527402174064835969900269625547215406473445178980582517206803308046565225949169338142561863107436066968500429153933822506643917316982139615028281852044687777693070959383882238643023791339145658552184271473491438573196858671414566478630584540778753387702653491139045928398170756239984776878192836157148552012572826149512970179478155049666652033046489049102796410284880771972622745575858889135900116123572478211843296204463983972223457582360437008266330571459514928216528260659119344692413324616406134607698978437738577673638042709660217103792536344994107151383023488595339342171435359070204360993098597296612570381815513265750647339231570010132369693837873949002973558907840817575318704145760651739278777993941246652156755834223074739578668226325356776129723634440119486139925036498568210351449097591673368284227844402995194859928477437483804710786238902842553426717236061605457300429324813453309435081286378637561583838948251621911580360004928068390993507415612377276186343606632967219927359996566271086290742555432263729804331402756647071543603625184857145132275806928763921743731037678760386172663454063773775137653433864434383734069369466478488405258654261493991308514043695020766729593456333846073096694551756997921258815925197417132802896689571292540352190591317024747295185724533055216626561357872435481523104641746979791248970538709679559775607610681417990969235105224063569510047807789871636139762626616713620379848413308650460827285863288985419115304741338072879064708681266760483234021593083611058765927744309379093715928163063354865786627373442453630865288522441538399153450681243456312850802538660787028454338231216756866932032452074808339908109190753329602809631397511658795833621114866078656127365257486349138180106781490497874074405217025458896945596194853911257486488657902860681951238700663922159740222410187104048439841693666150338084506061545692681696978612399456029424738641794345590267605076912888770263891847303371784177298144005547066610756951351447420649303626523013511016904918352180159876683527912815425413160259196205678122531819649084887021977382583958510593946958796535385519375153211061772077018255618217044451818536263416876700463720382077044986773359727324963425003341787475793585253284047683756786800405358988619534966698253462762125890183167500451488179675280945340090345406926633253599438747776135297961264211345389380189954406084450033454476430952452502954074410743153051076796222176962154451050964327609385981578616835097923843845338736440109464008883471115625469297788253348231399723291898698089627326342933376305394577602591465206103823004797358468774068634865436986566448686969058153665954220162004071232646154150899697487452043399593599193364505496713635769464696501938693634676076961174721427677649480894195536433983860624073249791308011952605300406219257996912848508210068067102157852117565083785275573507463503831684627560790347780305783977347377381088632401294901166477698479433872761209038143460571991424627250826376542588619735479390891585338112863031887299104642813319726333443841001742028371639619182971515580327293179817712319143261996652289184339301298863769930170912255674977759015444657261109039248797500045445437942198071609531705755843629316111814128125716241741208108312894177622438514435691079478983237766615886683982080724807164525056029712016054472144699603103770770864668429906513043039324957386761438927637782498479871343470869644380822711019511265633779242778347674263706214562481741345119435390656812516369249256189985518573448597568146977741023127501417105826170330467165715826761075960186454188728868414677027408409285759280482896194547410942691456020197803347528268982459858021119460329293436838711878227193292431241036089877280523983337210345984548873335277184720159401127858464276579034744787635390204153957247961012965413138577364804952094644488719563133133419065922652902562879505930912575468497048219403249888833937371791170277732423593198664080389119455313024508533015184001971609381875600071319831029222738600984855651215839631369488076910710173923033531707195786345024150817504052051048608986823158631658946236639110306370561632159847786510002045490259386467135951592836811853479889600022546200599642320548515138052949835708718112222404598154799493086100916692225099198604445242473567061297724338502811800317754241726752270438642044890106856299182971666253425803352705138613666532911804440476807471653016121343515955197631134935555251293249934138941716332153229060556247686139292524691986583958544403268251957738053707492487992670685799680104761277581595111408825663288677409603490375276119623322485673753548660567106637176700999103488240410248247429523565850001641559911975313067044422069582553603042916525502303754272455960714725385775863794048598461127603738917867051024751882207180661174128256259332739039122947035985293334555212747291710330550239887703470035239010786896654179632484919947375813177725976023587845985821841942301824913756605564583104911222984974456692580426965141152438869677686835034548696878644581789248074409559614054915792729547149099701257345410732236119527165073872247873989828220068814874120558208930094611365167224430853996902709722998292993512402853819315885527222123105794032500740930824719535521398461833346795994542975430261086201344141762777397052842297058485505934290188276436860571194422718707615844841175397874748305699706133238957891407524121774164698967952412646502529623079271904273482842466412207126700422058980737500635545627143140408804341407200236033406296532200035900221846746859546502511738041339343941361562658412195662084286316651272667608631220453941105263668078643703526838322501409036684611369612017058551053791909103971797570177713449667780700642142751326628725399088887300090501551578707278085640352740554405540631720191689050068896863532841787932638892564514159628299460648883099464678511389891099000577305222426127409118449884085966641829739973104104465896833395305121039658716148708459659300857837075872037878602053182298288129917687538211301123919960066925679417000393360515490695253578957534283153783724188816509078648296348109541252561423335595750512501444008001834799658827362225419536159675220711678681350361828244788117027082582245432144428879539304949063471861629434531844162666460927853957536323006197124332262320369434515768886380741585307227932084821965270771643796133032687047406229828151708604663919822051240091258963397065722787079851738609906713033280942975809924557964281180838095884727281751375792474109714637197473994787488796587336687476556424839375356963171555314694009119977634422918198684720084738237761083002992290920096603073286911727758794138461535080352050942431105698580354071957434179700731395627997893512332187647020886859856157773529021570261837598854146269932013508309666543939149370576917798639226926499871632409296545413717407287387574440608138568096791613317503835807552150406797559341086229097210240059890642136111570495255560105891415848309989780114429017990244173290971962069875407783376945809787608989244411069781596809069981574079613366762801728303103675363828485419845644237349171507224236179506620710005140531995566035775039134027592427127456469382793607552922207021310038508041525533436562269787912151849676478085938331009855775402868683273060450106254156826235298589338071018119585265344494541858251522953991724330771933915073268270860630248087232849651548102335619945321124430651553808743398003742502852091342498904877340538392572923503622683116679986994702898031099093294923512296081297768691402849412049377489946437536675802300366020626392361040240256515922775167058596153437635317783584123277312914055249921578077183583288889177204070773006437987846684487423490127532906125428822179867131986942616821621887288418645046145768142412116594855807170596934938099687480728355009442831883792838113955069579019668297157439262761789043096356095754657845485000688172130599117113886889858883146503094564482001027695894122806710843521497926338800362188869837175948524555799349046639218209898955435422638782719911823078924904878943824062401345847827860831537476857937929279360797270353678896311628977212901146710491168178021704659983189983342992520896305099103976206985917531708756649174532409959258570938656598367420139838522209201482012010160002131277494535689594257289706802059584488627766884628285413758653063956918354047529121596390647534669836057916297886113158483184547699695326970753276158723159293150944372693668771452965777920095715964851768896310898032501459882972211342759510139299750243282951270769323312140915739517376322975039199474058087085145748739868613081146169052647503477563572431232742790441854249074954974791911884761104912606545126331515828786540895132105897708846978060187501627844283219077067009970481942143954542004461374787071128866317814861784119237703402458818247501185746399715754453674749216244453503544309512332348963610100440252733002276829111308982266104214022550393919134050673559712331778268192504053096959000869453948181078284064319084043180933990512287390447796127701999543368204423990734297224579726513906534740935612460585275430667484822927196419722956261089680324548112232082514144596859810079320100014230847060449587855561733362471243078913653062817084431605475695342653936795886592936488737270984633619274706562596751931579019927347400750998958589712640571844843794371470080382898345438346827593760746285076943486461190432167359859562943338073131426444828214329047534819878513893500810999143785036755333704654263528909189271472049984306234878534819378877131224807635460216363459712946698347552548958135979522918101520609516220574537015786965417129112852534650637870407880109860021263033770651548347908152360432104064036934699569558048473136312751626934609035973183668376957995009747056960897919207790977064914334775358925780171450222283956432815348626693246323759559928626224706585843272550289939321614783543206629204867117786112658354679654880349790697246944830840360235123673780377352646048993180973369045811255429839638758707054042723947990648531539304660290147731691558324762061593919128610116417079403221132011812230485155373868972006542627786686826882208344541147149755177797153625069035217944944767305657161639215581643152462405092995539083048858259766431632510278509780726325389689111775446799004890592409535824336294920701172241176159332776694716593216991882717866434674477889077020356619090850652261621037610264746779558460637993915676168039040135887601970671870871690135819350704198952325665669560514245077882529340590057248841618883408704778762216960820536112905891491059906422285626069528050361232699116535141833849937292046767016837294488440264609564349111615549479008388337802573432965814162856021400108928293363609084905796658140535877983077512247607064544105409525254165879431340455590835258762829039180282670042943230512877653197510619770459034748581370083311314172536489020027754135172858801910001707060407890075672990672610417703096493881561294369080396190358377281038921825078576295952765567562943176825112516252746042472743467570397311505236763714862898359399664986230270738792119607637847984508778727732875225404584480953742115943475079501954381254382462520511085405138924003234657325858246721575289586271323299106228164213323634789391224928191091894520705734676629447960578456346752731658373107030023638440080795409078586038875742509095516367056431769077786862256009013438383515281532584104004031968902352485616561163222082490354968144942305974097127390098391556358853859482263477423470069796597268146699385797841796860921914907592283341301005451621879103943437444163129988319037373209930534979842983464053351503497517869113545378555488783815810221452544809005502952604483143577355145096138486386036904319926384828997508282057575797327076477366344791231327647768745238323773334233944061527435923131801774982310868905240342839315033190839106994009813186761244596606931150130441400991304786062450142041920098492724622487493178803352511342728288199951670923472349046651484652587677424573263643592339947360044750876193176942449677534861002712488970130059993455410193324573054050512848218201163949846611225746705560111807029842589360592149821264544616322840153463601816945317812074343046859717886477046537240558742399790822922134146069040465743346884817051935797803760057633377917443874405830018172301434839887003628675100451030764715483616521763408288028874512618990556565851391890426619645313484637001398563514992871210324102841848429637928801853207370796392683433501404971319455910396157433546646286098466915012155754532253029920646504584770216038322352750148655317545544166135320353718268462636110683386625168048517749601176519760722659712174940397592547710716800448739270719856291752990138752027256590834752928843578667474146024448142881865617337121328120609476379143595200639469319680166488427162610386302394475667165526803371912252727841078359830641621897266316380864471083745605813473210384680643032182384647108112052014719110074053365734468524684389343736116639519822218107699007287281042268307365397138900802657813703930429875289907072095871967980567387508241545439984167852960749929065833405003918951174860270332881047253537222337756418650780061603324225271559084987171266042545837012854470820389365643858896059575073736199733449437153211418858491728372685105644089575397479244081286261641905381631477782115207493442433366890146791564462635771947936872857210560519258378522033592159831541035831474006866136689852675268944773065680880927867762436824807332643985085057997061589814762412991081019813811568514935416217451758628208251488334115233474989569021299889951018827350119362377429706599600776936146544056650513300640560247058878972019504851990698841776863556938495977157737947216157892520523482441184031552639526865954569900378933992063272159409677364108979024849326789213014625506575735549318766120621264179236418032969196292910329184995138955031101803532219341232481690126701846135449290423848749095600969777732887517452442300144229851093132103232899272576135595628210179104701691451572337182858368305939234999720668912160601119960267600487353833495346697789124389311066560048236304249333886277351217606565666767959393176099238343543158889643854200750584037163707880011626141018928408058780344644468007371049947106539989613733178911750210124812626327668630221147503022295004466256494287743104560674917479370019458180833260191208390805282679523892475093299136631847937028944463453766519172127876139348073119453733653017656520085717890903896746249638382446543548431942790183735748549781037088682716239076011661897182445993539162865802558361618804678395145543467311334350533720545704505371955808923627752646198999991286986276907037731456932579920402272376377386022717686952220849432564897716215941816215284408819661684297960350469782979011332930425384764555532776157845313991447805316097414847249693782178089277651471085392446256999513050568462199255990183472075169729549428507981182439500631859358273763768135525187564938384626461173636030924355117803097393043061444337380671085798367859525475594332348811723494827681795813888079024778885050230827833346230217842058703846249617030983092062306514811702477072155021159570121059235576607599048245683759238996026534552336549377707956717202956724235658541361182455761379673108635380006157592593235444578816626293799105524423921726747318302131135953579694991548183849968577101544660836830562453042297305219893091448440082191906828151502644980025439677803824123477088762264055507015405872405633407090129953016696194248160478070815700501200288333270703790600939737674845877358443418241548977123084781686361795948300704473303291494256811361604432394160970710784834423982993395748317901470040031817106232318872379100821000759883988859902516121317066854631343475135593858906987678288129952555431222852838135077989385205546786542769786129488645576102456125515043492530435833696827909748298930752154109278519532838527782096430752978922380840951640265977304723646349105567322349056632857646778644460667993445884935190484558745961411034925471875887428163294079751074686465450064188240981260765587590252835105805385762065838018944502615175872664045772572231577810440783344436854716687017857385484200638983156825480065860812130479643963630847303826754037707682404964868310469223901556032911078899514172676560366720676876923197244488224205327504862901435400664925839285923456925276249973801973785658953819208528925269604532854154224588721210820935723590438945470604503501397671120921404533553274947839727627127365251507849291444648192670780974539338698197803672128964426991879423647026347430639444442990665265857403966761341678797320796557838708066882156181123055751230512331877269716125392993069114065116996098491356391945464262526837128618352400669140527922390568696295668730302206063465630399756240547289718539950309654953054849886193017397512589586593177607227597033990194484801857336133065376966431032128728831024693167517468840733925057523882850293468432230407084172376110154953194634718364152369134963783047034527813048737714729708082429932043429534646074990039437719425275239363835849621699736247055586964713029642394631164658561845792739540303318094742378585190428548106989356051892465473845202957591935818148998430458100574575629521284260634700526320318915960684251514757783839235384002659179579617497448322883514784176606412666962356731920089184745849148408640150939658393405701153920183463493869469312385753539128243832324180725019055349965953835879224153735754965988357352524924994768282823949255749986484803674573028714379213158137713329541709727931824577083009487981841301117780847949820695893630795209459611107849370436331242244861539222887306986397437263412783674150052992843466290467602019741790776018193756058915722809728257938261084951276734159767584238741921436848902226906095619903912087244368677556266321454563697960241374440894138316582959768860497799061315183724182530378326006580333523888742102491108239905775037241263495963379435832809671954508849588745020523853631299223119100567842808934409092072780006444079142080221015410354553777768821702047704302698914293533473531963229223295681399535092940202227791669141436575961280996784418020910300404099791698964855063739710729527082540600535834630084624839360963946041222249568256561982393078243614478748330930277059753871140344011028259464959546339517354008176232142671786361235362789502379995077687419877633564646153394603472425134279633757121237732349103879333966504290136881549220946467284972804629941388638521224584394410925826681171329891352044622165187760759591281391761836354722839035081435224549624596148739029077115078018605172970405746152732945786136540454841196597143433632026034706272609217090446801848256424180115171424670469318696584150127053221184304108826485193477458679551861572328978183623377784725023184113765951146910697712306200619672969478879820217682895727996095997502180741788675002667258733614858778878243358581897575764266669616203206368055036344911948558107867367807862380461960982258681110807720895111335061821705935609288978702936655210522547656210873964102073928493735343923413841787655841244627426508548045584420350070692117280380678449646845095264197056887956336740863480630558263631839372014330457428651513654681544522435824582357985697769153810364335569172943008347192460338261896247129729889917097024050955304526301104816626432549109202055820559542135071032651772928188197954390656495430018018185428473034369930162025415048598096524354747006904683113405570407947105904514690658608912969736274876410358961966682271298845682090156494508604250703756155563376597649694111973807732635845901317353353117896090451711033022041925065177981027558210930460418390310925305620395296123581610141328709375769256260191258582805370342953234982311882959982377345639259299849064739643451592189127898228645145906152277277447196938497644193226117191104474752011938246924732361547902082294199028708884546130336882400508641661728201934782740640876494422191702082293127569820334622629291896019992646853076710998602930289665574876549784014134022624145989700960047473416180311086380337401995275972541412593559801752677282664969213410104356788489345152386342448445726900513571599159932806528198078633638535277622174172351732286545561477607223637078893761844437927184660647143122670512531473912239510492559922946140057379307903737106672115677558166100324211143630940346359446357999551353702136995404085970090475920504044749241952851558473355503591884832677160264472466252663835388013307737474295695115356284107594589977652419100502556719610404242602626562084868233652606176972010573081230862222646489486999186927362866200704666411224776993975779230716385822528525408986449868581492185840193507158001390051087377282425065741196673576165495533571753566710619625863500528539170125884615751770695964429100549557441837654647453794938770335692776115190431965249927925651367385178876028783873067037716767161144999067302677164471112070525337075756974756465537394175740102979010708458167477829741891955878208449061956249137388338009657715836795866258607568890806857983075675923893690307200658302631007399242946087944170698928744764518430720854176061447258510742970651554970603757997256894489829121688642147378562372582313237032792630664266732294875557156681183440627487756332998438090758799425592284259608247104426219796498648009395178225276567123684520812690477772899374187185355999079600048528541364716383556559274879661520261893423459467802545137999453902534837520852886622408208305346374985154156785266829308705233567020977849193315448773311238114742699559090433080120970166057057405451587270602223115555566299389050179922466064884853878305336564176944067914230396436759296008805664583264047900596732861357622149436336598073390199027036871592505725740864327881280392339343082103880406796788603568722138979923313727285059415703047542260727407380194942643766257778231707815290226856011622448517227323693593463204137307365042510724049225032664291885874930670834629116447667766269719696107307512235477544048621730733213455084163322379660129163495999119406870804547243286980748172632571748161129791366364746126590939091306411837117281103672778551189357888910450588317964527009084932586673562047056028745962310550216139284845482820200275989310929073915585566035852309979132544202469108587427039069648068399918758530044420522951419055946396474352314098887863924577801115092004367003697275632716966531651584170827465235667445034466070493684672632479097273572180629618471365641513755502584655858169012767017133177555592205247554616932835411179260763305724387325711922893840374191670417966054534010432170619329417377680158479909211334428387280716046296454335226477142599364630691536830263420357947882722839154824497284462340365664731450804612728463100184233002165544941282019234621781072500249623477967418672895108687826860484471320710575970394082990398025416254252767214876497315049152468579493479259217394474090490757228717331935495903159936585528749133043153887086382159504806204774294975022277756980425193887158062611759519823380611037693579106674137069963339187336318531792707731921136592465530077903351484950491996177267543553038321266336828831674049248381201945185364190720757612539058142811637773337142285893084137528479427919063712860916040036648075882014258132986874724564319463993975976438128087554253216356392416843205455317449620244152290878655751310637899642346417630594858210432453922292865196785777094313149654365755550260765493916886674849693343956267747087568123611873189336123644158021116222183210177939009858300450029519701844762117334782233017032958144216829035843307796141514153514825585113510998558345192849768730932620711744673065443000297904575362820206129704240249703138459916205443779487945594217496125014555102825104877925977587474118100142116021985591290899224805228005295992658350630086462219589978438559837930253950227125745158728093257058945856042113796504807037175147784529563690718583613823183042613857407867484571916966242612696183855102525396022936729964693378912835584929936941557869277704110394280682492359974390692598644453264442371238430204054286518901223876330859012383149295161204691970701994665851443333125855979154247699032110609914928923857065679420711975403028515494414503397420065957081576004514367911530803409123258664506097548514458972569365730290915933755406578564086923603052464351652323739128346428945037397253454307965360335259883093414714991724458262368021390179341880994854824029761516774141492500083855651548743999493729247512444550670320972297613207796168593396944478268145497045953794890478067345570435822483049496353044152609350141715938841308666480051589174121487281076675006326997616852375195537789810070264577793244177597045000380760579104485007702983086365423723467328785781857913999949405067791929937565745760050003602524920051769325403083552591163441921596141570554559286039433271893628298057015736790106197014554576198984280580521172816342259614419349211271224184668107781478957414526864512201868124966302297731734801939505312892374848948130169466021778142154250294942132869328903330639945605650668139681440426242703180010350385724287304742659504010781258993297572380474179109115353883510802361562756933322585605034918432681268142309624570920587136973834532954994639992648265160064374426991520761738328412985968855605150740200906782744838320812616394224276298620608065826148968605205415827654324912224266264480299716358256469867806704289423512669576120120299549493332151816258163533456376467701786313723569127488433920554413218762723187424017205023778554406868610948871515269430189934473076226841115685036600103051048992311400998102697371909049284562993228665167264209612465218412574063544001596713294626767226296996540353068972429943199181243449957504817660653773339835431988250420539318289295701560793949845939694769385676497192390913988466909694676662197156262132805521219731712670838445153392016192067753996559089807752950352608411432682811278953708034151253465360350251376235660151031240430932250458891370558984941463844092547124944589917225170539074598531692717994280925580698017200362708449178401000406622434815490849146731776015983632022967031326549698989329645285114310912904649711844881964769373813143791518694355564380311177025618548743472359556015751294456190986847542644479474754350341188374851330932000907363764425531787527059313825577566493706924349810714730248985748946237139645068474623556130389894975797296088906167772188225526886428271435388514155414840667561715633546341170237980010346398430744860752429487520259211305100255152141603223617093291556217375147613026476849913016750746969236017798395763928388158947330458002129129867705405038660615186504768289186095517916798250697791770197156197391187631566196260572518044588524810567166862240743133583285171974064718945210778194447274062641501072984627607696707855716106907276727088780837709339890217622825274526188349312430645127197944419817943445147226186703455089689944472013382994647645653242418259567384004475140409143480292970566143190729883753013001566442181707985181790347778651000764571620616296138051652818835927171397466380373811636049125946196857020844371763990315121409474168045140685499898672727021391178076924259866367020001390397539238192163535698687696057064914818643730596093951494047760325130882386111681942553018828330851596464858409946525098429244129085766306139766602618133540405855598592535642779408433317898034251152377809087217221004449065869544381874196678525923548122382588960752287554677412328603033416805194858439758678172200949329993485983176125247516157358413854065219524089509730808442503867886938911606255496632283366528296111966987381714656331877271037648133361642870261891676420697259348011300349218184809081392054456574599549760014873690605735377831018019788761928032508938824459590946246629143131497472114811331995159589253545122942283493262572722106989709535568758319998193233469561126779490538240222959958598716596111548181109951062688249551789705730389625041278674960176080274135987025855496557461262238955944941264324646708220944521766765887197136090426071548689955004465468504938690874684617395884321343392838538716902929770552633315692089066972611348709426523213875619294622692550242655110023723042329547665930513717100649977782754408052141762257026235153497500325202823512672351308843056209928935359460148676437335176723958569925493099363852527013196887174615196833332795225893945008893159598770001488044536899912513862773550103097888824829440271668599168642397919488253565876630234345738311453881284638688032956007574174627030076612269859935967996516013924159470717140898711908383531678747430880579184254549567334267576125682196585698338271718073670214481660541000028387235661839768874847811941263191956670138405688589459067743223832321088276318567357367254844485890008280518284134748481862700027653960904360003642959956176238535011892895637623614303401142102242752733325431620362250364710890571404321200430811074284751288942243824865703994349392740465791412555432388268166141753980225199113636634426327804355107559470687911976069762290776817511321761943432211757122095325030503575835424189189673835761272395825922420403664566871096158795187640569708246891687829337776007000981791671186353907707831381193078409211477160835322568042356997228145469033334576958977805307864999514358306145534975666186565657740572265801204815261667035585613697498741158090528953155025628800488620110827667486964688975167230579476957928006738473170328704021932976345980604109755182040458980213566894241499099849698579325467517944441437995636944739489043171642184627557911221422201793043463796772058444874760474934223036799439916951875326897579327474443435581882946551883803150943889998666907574790634690941282642802146596573568612383611543252083984179815951401431575312977752684531667433426032557222739253539451593833891917174246304412280131473528205595485808822467352672447250596858925484280869845966440347677389196516822647415386713711871208416095338277552644466843179339666646646268153253944470631958220392869543659841032466359230692064589132217804859169924443500452514158091068817051777257168100990179606664135169637634157308819240470077337450963050401741965622535264879721457634653008547124715021512340460360560020442299727731327111317036656004637009045969803560225070757202937444673897027871002011878259286331713606270309447868080152655147453675901477094534601448251249634259139964550775984591472592757055964609091738361061596592915659033032409395494788989956925989614797583031612160494450934392808755359010485596595687936183715874257401603115773944054678298862105559518165218718571140880245757242799794370173825651873861554746143299901821408188376297717859086952673476175383278576049654401091011805651612068205952302437421414280920463692548855927160148609001749702591926118372035289871712760380187473826609753864501882335745065475928731233619075891606720762706119388487299831572734542996917893094883605538211645011411621105446754198012928681908356190848849139638690537072378926009080486504506458482259944549858700252172075062957950292198717372553016054256569235230908271894726836917429563699544313295333236436654820139238294801537622194844431761802858597428645731219009089714657914903221933346801265402965633323107622924558172876216074905571842053614776823231877351357612631935568998374971365008819956759481157526490960565894379936686294183057291144419821800179915806681182655429324471500337189907427153531448403269379543461639068317588348067410726074846434066679571591625648254878323583892554193793862986341748740119118893785556326915062020915116303759879642798892158852864793861960281954775284812097142152328030891051319728982533232007244591724553584952188176162225509228499079411991900367108095290952852298700457120515784060341156283905616210871630422978347102679020874445315545746490473124250415829667078732391624232660769380448342578369465402084676959710333395145099687131259812183231972173273220253044561972219796783051828913458647980789259022684405147191841488517008103699351402962608994612361538853742386567856070245382901325163177079638880410294106171399058862330348704481907075171379212248014635868186338421540183141031320134710721520195897753635738610858777248692896102632777169583947465110635422594928744321027182862227475896761111576038221207991389499360627078826526743095719735377658154140691902626484130209263226455440502925225818965836688188568172370476380065768552016029274927290583875471642554038046940117133219580587756364098255321807807174537261925038147411900866047791825290329050999639828910470150087391727052573054025900779353978871294873884574958172542706492356126673728548271195062708564659622028091503164394472826016010838810636717714745734360796462999800128168901204001461668503530005851237537444929407181711479094424408981487252555001836853304478025926029142311898950559756311512970714420550354723864586620215192227768477620602146255097930111051342780544177669235781759191741691030616509149390107162357692918196662149523054224889755260758439073029336986938353990695066188562201757203666805306999380963762417099001602125511490167895325998565849256663949025237318926762758854741269044402102734873801704616636650689649996958771396074664201373822205961694720033945591826059931259069000983607671029441803222948315160858105288436294463176789051980111745292920510078835886965594253647006979639311499485992913621269209221778652012401653445915883714040840845123857480905320692091532224932353854432619831360415808509307355793645228234611119103498021671195009040821498741089496368143346387901955461824195535444068481537050388407984040739556999087830795186404933474405624684773919506919770386628343721491329712833733038535064273602242469326931572946289696290364246439492173556065707032400240135938591523805539454193935106520279744894229281792421500030944625140947058700841074866677089333426437650021669075255250162684083013325459236568997394678572112929994595743366279088655002761287021619562843305764083889916973286405453726991718717416176220369333602267194383869385070559296274861222454698729233954153011901842666698011778265901161719777557908725243813742287988471418239341840818542959118755463886017177522399931837632314258085509037543437068133746321119037358419985944219819952913410389533763500396179277155462959369041459508101766842609833453775214334226059959428898540504122260496023067094568362281572334135658673502763423698847829628901037089617622709124916175737893224562705901109341447257562065387506585750815546553479559688882494863561919660068782360730645294056086094794246559685313671451535335288987559163992016711307773927158259871152975653299174791484844808921115461084371315620494286004470222222199578213032757530186186730390399918340849066079289632894076052436403615848696545912922413939751769310607616666052226942526197545006899093578442712815619369760321318484101206595005259619189118909514705715333257284026350887375659305616048616767355119067201979801163754550545900257838764474907607249201185453376734830038783704396520607627199768434871149499519887185255064963865302250122852028628206661007461776662307435415866275439519664409019560412164866163550008083765704099459396942573498162177741417126117441951794530025562220575832476301071269725158117428955256596793114370152601736388605266775459234558518209146017690764105313663259396974936760400816608106832091460920504591403739091060108770342812556185762247606083197110255327657628563349982866428955958715869317713331857744654566532692525395983909822275283742121806473519134929531339200726180659104732328752659597457100550793171779315458271950337436976762361077861009551151051301312274802189965013028922923717927284364335999946676499247648565768419873857006002926572082417101692600537881924964577493472325263268919504195951123087802079140998892541548390428497818669874656298486002023386864058264796454479509527347957837752688370350601424322895039188674252504612725329387476679730159282619864524146967323864165788028338271527712841518567907800473359531199919120161533684453880970404870345192407015538630401757379620932763702050822918122241765650302963787144987805674883591789741150030700902553682071210332495241130866261259054676850428695771656575813363440561109292765851528230872165753702802297734077728384257998021629627851825082753984760465207318637125057336232000769740705252113234261763097524172741661031646772590011406619447732688426403800885436334945241678541547933687131532228463133150653000344217618075882020328026307662880127044636542392995830561123397432155991000346281363327613579905428367089974616550761577658837122540579314685553885498269693516220026468865009983583204514555970614923532074171608761971234398698320973062686375364367317052551304607399986652257129592375325500447655072905956934503917566809313338103673942814639371012446755545465327555211543163802917436306629285143344502601874310337244798896831805579269845140713528093678784865416061683847001289236037831313965453198799454387984270198062746978699715375955784599007893168149094807986335330931647845574559781580269727624803514179911925761504526188430404748607760472529145978664607569873474382703842990471248492316629630483638084926694799438452573225487829244767934998081686578588346488519424044737528894611486868440701502708103865888448168371394551580235759279945055747728436108918696491638696783203347447586594752954223655701295450401376287757734030007798099765867786230706222716555023811752129352914867218228887186454188072647575482849143342665809690112686618411948590388240023057351364747029831301993572858397691856938134007942191047290646257505137668336877515896104788637208809659622048602879154225452831223762905688325760685228904846648391290857189090994997199839396312806831864333952162975896489573017583171535014469067824258820867191667746726871395567213789992908126107894659776306481786973592630663448098382773603073397166627338669299279911813875882084596134421020936442307018785683123925718582948881406487964000793225270935912097358345809271583599182161048180288221973698935028692752578530793896409394893635306194957194095750017394238672955772601933307042822916378626030269886192354096788870515126056849693286928059668974359058748579597761071417995809093301728478243857234286296782219321033094469051474999127469052247409042939184348044699828086109715266842136841565471909501051314879017752885373427965541629079574898965073679478761311759165748316945202214192061763495288330217212752530832304248287580016467004773655751005330978459399501735597818712499405475420906308974172934346034161222029730920082371778199349978099694896297184890439388100480189716464900177791437333368656351689325408065355859935927235379332867045075908711593406570091988626285890273843368828918298938273455204844116059941514433023927775801679306779061421113771925654753313634770364935711500115312822055369425036915648417090860658942401588562118267194981010458076102248676703767720040479791037284140639913990500456299298999721144551210312316952606727161339663312684732821192632368838962796052908260279914224065151898185924118604717048232016316509398627280849537052092268046472333115137341819013521043381265203039318812614134417254537334636323537258168832616355474904648570613900582341371100802619031791823514434571361748364494551033235627402621279838605688137259607005634178799293109663746213673267592285925265251139662904422297224080328582760148204084904684132167836685510475543975728818796969771943165684117090237843016864581105035123542089092070329738798751520720213597137408405596392523749543327257349193923209001588810527234928429822263842638058716440513527929780887291492313634786363982207025495534213621912850052008924369464592220858361263303638199782240619275411632806225671720285434872840266678179313751097384294186557279346162826962787975753719128843254834994965795880951184536324574603091893610629875973663815635417165075160582901897496338550282636955945983742914725041713154878373937977185933847768227751837998579606200034326167563380839060315023438572686896876149866173553170535176932834152659558336613766553681076577410717513930123550507386952819390696594050382374853450228035190848590216014513264803838405008066286175100459511131817125803058740217102516870863765958597357333052679102101239212526826318604750608514231998331394204639868331142289231956850597163163622823687829367254579322798123612770184243956245283600835656747105928882554060271977376353229248493871136783233853650207196548757373300419030312303614776203916920877754432787316456804172119320975742757733995751578365391594266183058905301352764646638424887835158210033155873139202810598533739457133071106204642648625129038730810150721461762718749738474912751526602784183808679324307279053007617136940331837408511914367889851014289019601839898400127836637444064510772537953753629180228657731811157390099050558066572952560060204433123465422764266673532002787613577576249416461675023955363935109481963225483935432381119852568292159479002408125851920334520944150033402810023042496880277498568975655995355118983266963863707327787061212475383662864041729737761881514712422176315106501302939048986134973880734843635502663159178978694050750739095002129818404696333833091251721418437859750723204777868193939668885950817935504625742100043056874952181622239208056440620858924580619494623002037483875803923805199432537111357318468635620671447205704239757807387102561511107020555613275386160981794693333289199618586287203013050385279030423936197162328258655332323542619346584352541944976909277576808330509123679166643522660157788609061504917165170721509107512657918650236861935917907312789550444543819520109611757520341440165598410633188993594467373720996152732104954541976020465150588427481407026193955957352548337051508767903700009432562407235283341008643890987778009643822010210603666784939049196901698907187870586044231056947797502190125796968108843048619354691094459430875769918504565649034180116113240550187681170130188669664632854704828816406600944139579143532645223971556962769022039305884390422687289750072348353741833535423915945262248319780475620191655567376976459754198432197602167364459608501341008378924442923311027712133536377480741712499690736898473423314336304192525007457679507275412942241294790567099465303661126024262468297208190681949915294606472227220108099326786819366128624296407801719653373081171794910843527298113095133985277644062591996242348419601722487995808047041947292367882264490982876583115558969316605771930597986768813626805480837910821956755929298459487510435477764197091154559558130018093301394570748566552983957663404643051832547461911768181941654660979108011218979758061700763621987390880108049402087710310373009213004819325975266463661699479581010463103228765640496801475721563951729510530050409000868987591398201350914469984469715000211205547025130220000681728018639296863032394569231553221017614618363390918855587949058447463656008214585109700806308030526248977693130494448741189152549553531368714332054262582526699336846858460909845540132092069954251930814601315274744321473163771392644148534518032237193978343641569930087639351615737549882392635872943742456291995420923874269041558906354448009731527712799248527051864873424078954273625272355937691963949851679619489913083449051372329677599688607916088166206469523018127868498991487462267542287269553722057648946507416483223835517345408564047130518036204682462114197621208590665784922619403406243126023338638999979560130512178759490827574706460923442794847821870637022386744306030193578087190755038788818652372583574455523929282949387860917908801196513622043706213984190156577447869459040973516493782731456837602344174779076881014567707354999172866207552447195232148564838639171608878126927617724947663737351393181154275831690352772790212274666347302280339541682759373557330809332154922630214676644582582951848234133491235682150494645165975267133143539887649306477179093993263849872361480644901400185596030551855934056834594064204141187279596838173262270322889608933158955485557647683636010670566897135707127611357557543354628315583467006613965687800464489115759870744837614629315268508915557801657727394420431940693393620215825486373958704295898187069224091301827205288138728779333058970125565259329622497255264065908910149661853364248424981532766322298648454035275268215851959846919013214125553967885178218293662942664665440213261404858365830986409556109299659498627904283723946957024841670842161873643209639248020733071538848156831012753040578808285372210684734319717162137295743391953535080443116898870954897715943075302886063603905215877224316803561106850494640374837582197786385853172211024992370672067079491469365009613372720681118090082006403555487167180404817357388472499057799487234653930653995360557542847406637801927253572356803768238218230612626762141560374672384439759842320698895268718935508160664048969996062231594226273062507467063036614612414604356476340542434991763182612403037775647962310642523972254446355615048056373262970855304041795817048291397628537031338721660528756248533291247953028182535910996059419997493400474498851468462073659197938008207617289995572066690666754936032485688478945202614577040896264876245949208325845879772053163734303059480704839739971096089298445644047888115071911255551382184408357261245642161617327630437887416888579005707057519183646545477325830456108134763612792935502881446721187748287397548300821037479393185858856044813073379847126498821080919251582078016180192475249129593952923353654729639646345133691239595679252681872887944675296333072884234719605174090179509559707502639663899817433406899094669944157328557060801146557365443867921650592408699133754192618796266232380676353707694042848786737680010237104226637956395944210908275796762168007556176036188503701246712402729045419649754716809735023394965151927579268113081590543045594997274187207406014324212963090868542856017902057590301468063629547566661765013111674307324886152788995309419464966413642191352787274898575886702502094958618961865154519368373346388471615004603679514435676373708354746574068192494454329955902454537057905976271214114570051850831920941458884279352289782222743773508690341637203104337969374283832931855758576087687854509263574997450200472670318638888544412057265485091999195181421598909004783768892190596306327344436537164549593058359510238812756679723514673958332284902518490785262324159730017585020499645514115430463214506479199756902306653322568453304395980934221155091733965826462341008657478766670510151031092853014855026796951699476922759915482536398237633380483873780313768806248068619935270539979392205014505439463335968739200219240631349444705547266351425036087242177985740951362562262588766013080285041551561051639948715909860442570662892152665541348193464902708624758372101078054539469185576288718272220265311561698955582123654884594168158155491926619805491493001507951321665146550155517666080971641121032310646800301347050194970059471481490129567928402437275512762622258402529180017367702949651463509380448052498014683452130090817915784396939279779760747808498961617346702514466045837623878431514186780395208342306997316838854361382258433853906723220836229066782467981925833377638938368790441152976419428969265390803000120648820756428834410043180801840870114177616626970777248748117153359717647467103538383718766414570890683063213254036750670263566002060770452467459488794028962414184234148673767825166222312356547352023569633099913172228418531909684885326298252758883977550981383713978899426644143281655501498745695717824510184783823983613532886695112355691153463444932829880877571131236701955911082424484223812786488422013620873352303406065598799294918073117286314219917091371581816082120117745288263570897671445767744899040765355976078067766005047306285274094881662878746291583754124544193739406526819045680495057401358663651675999473309349677684687998089077561147280515102565479221833835581443941016762673171754322205284435713621126893005363203275695908860269926351584771121566775221863744871449891433897469795731062701528460346136877411057390754342420146701745639813507016496876233076569855962590571986470261370237577485827444760922717044914785876057611218986748529277305007397539483287324949661820807279964300632597298462576063078604275395534078569275977677003513739263381628070300313266999154560617599168031313737365265458024017612465937911422495691302025326794961373364372775717744638974466995589812578515501982447824414149415705727496349611172109057125760152723422175284869102044913204925820729646794554794105290787616556806023458213927302429529663624819572468519908478796439818559569080571888102533405595927663173077834596429646154583672913322517129022895047919857761854418229504077147159034104548815205303455977383591218500906890715199103885347219859103802454122748177866274358179126600584061254190457028174397190664908658830802379179163582331807377030368962199950196819569367579557564456888305033668564027130163216272100214624028438420733062030984110970561504518927026580398398322175048996855537998872384897146385677144201042751860946446694644856843191478131248085729627691436190326848013072346300567018219606163684229968077678227123667029978049093612434205536549142607494639482694586802738246354859685933174345932949613329579973797524734744955728516627704479501167805363117766594186422572942144216500446935697890479370145750826511929489779491275198793924732199638913470078250888684714717879702039384671269632835523265990077706766442272279872739637424703884033539505178524663903757112672410522998038154079677823780024605066971169997124298125198546107016643421919190020340108455401047807463483482529674586036569338796731600663439911426152126145881206692317115980717944489387760343200883291937280512935048586267234066169346889828922871657886773104006572128647106758419887579197370560019263616767961852545124468802622744809892256675891183067197635229363147215622900248098571405402178125650562237480929456271123049195035562552951025567689961570585639431487909903637261484564364414888302651083529442673256644640001380158714782151921402868078144660007368472385428964133867378499637880402332132669925578128303086718547380763127772640016960490080066490062710801693128258442995665403498288177235288064940896691375448899279981125261780002640909148475798394511074114093672266555981094400184287576606237924913211670365841316669448177207516324984056757020464607773588581126954588908905010229616956447740496971716439729943645318076109543787965224186305053928493623806622280645840398397443139193494541836852065193447498239593868831045885898994363899435246104188033532653594098710618845606116154237003643166723971195124482451971555477141796142161595237595806066723049452664941269544825549010396494828444921698540621903905931298070831477500148291888362880194918286916563741808944735278023439379910161696467036983704698628069600861675131375269415892400838791144461435818400311392146146289312848667368552595929017448041526774279398606537265326130965170316682136043955995396280912527140519525943029186303924006036639808666252849288581836112265686058888410729884750643826813518495582716266345019902600882119631604099370449781622528803626904039619178798480188408392243929125819909984719986572090631733421435312830481342716981665916473887503005172940019172663914902812480276069534908236783492132111464139400384655223185028364305264973187185504462816449515361193888165135047941913590733940222621401541733237632976728119865086654925883734570997306450199989892505896576028287621347557750516747794379409723812977638657863975503185228017910162876497578150673739067607594601320401657002577140031291131388720195766346222259766848593367255629125617940361566631325946920392864863644308655580975637313468371869723509683176973039005098075284122042029999196177104013798634552823671588424333227798474695140026397990993296082697477369872360685874331965567282254427376302187220008551943055349039579205499649367626648608671618291773860145860910314652749406373710759652509765823393158932636057088688249264609992056820185747081942864880238334976457196984080728545284978639999623777525178966907270732788203362166692382619703197703551569192619913571912270905367722102629247907672845104616759521522089829753595965178357713579449024198017715818625822106324405888869772890254392741341391132355788921791796155005708501904524185816036226962557299725045001779846951359186451735155090560069762334911862943910711399544229612811518729849182557635681060902310962574479504089572540060019357437811509254287185925452090341683077163663551929993891167422970272510076940551420869032670659837196118871655647660002007360564652708138183333000882745014892369109548221438882120040164836488458994721243187042966271255986272574316712530739042269834021572091007282132009598458381812490228423576382698293140147156007754697851554940865225574765718199878055619488706825078678647082983470492653326498122104681807517617255331798323068483867675824552034784255441728303161863262951547598831619094834761427989050703787443603756078422822385141112890389306140880679090105007424083147636836243129129269542085419719380156108044180641748558250008245652588207611073442322502847817346828594590217477806404473301763175155917958153842878948434526754444441871927342188963637171074547004572253354292390372570655249130948876758801374849026421224688718587429053395158045862433039202086693027583548765684123506355907475739503358168838795371205518173545538341247623719171890274718238571856241688086839424918622427034055774200291790512420170871277154811886675593379949366919332234056319556691355321102033857990789809115967099378792860442342002331126430996140706462767246998866758469185404631909983314832518616868698686951062100373456807520682387447306290829314074907983792666077976276378956700750693695348413544180700583415599149341103011774580217074547875981571331929998773566324978755795037039598687994926890671409762545828282131811908986445099779834290200444078210688718267921958268049911731518868998467455766030756854832710656269200393141340091960123665744609609328018163199822708116280261867942495487828393181434367426874998613276924886027946969402874449721916166095531451853319344602495970937094258855435685195454485331063405879054296709638267991165959809542243735156207979616589103981915486579637643628361974021227944479417926813451811486937727942619387359746835224429372334159307906318657161784834302808322038877280261489109678213713221816116007545389192550382481004233514552166914564411504286386791911985237997719078228198124179044681011455739859363185292688936545286833474958066634010754248362107998878969112215287664732285471835194079063817907586080288232343854186765214864668993914933401593884771043710120263064621324689247561382074179015953007414638295410334728040749356076336673001099388024326093772709372803427315314590519119066054706994240752052306389982083738420510789350526588115374363861597941558873796178253840339217435940802492840214372957659982983150261023057173968284594483765142236410880470867632425921270068082380707870250073561554089442836884050581230833314337188955030598000983517565370678084590560632621049493940437937020436387152416113595970560660371941176970212584996497542833606581961583156708689965149051189110252600092890584807127649839008164905486083809519102135072977584451931227845120789966200055197188506487664291471741884009634046700218656162126477893644818514957960595428462973818381435138552425459547519725773999113950145705319212121292713808870584305728620026003314223286802150506512238484689411943004714444667835809343440965818586994486139445289645101476987235659804827857850081529847242327616827895969520388290665363653115621009085503090715873775817435079654717707700038834716312940449059488153132280676787594236919557990058373527121690364972816136823857933014903217493495910394389907710158766393970482164674280498364053346567600847582197955186274069981347215275463118469920741374650801957911587048089325115645657117528611639392467490715469800187697129097796825896857812124084110740532933124545971609262105040918179168921963748252085006475098767334130523448239613890029581522517893223916346112999005676197224197236819646521882411998915922928146823641566240802354260948516118870614860099521766862401949393242207463253312265332477218658570761086719103235369922112888706808423279983175536984369427170009126392107421294841934709957129616044245293701057229817650311146744853371689969298754285060772998800322633500057264407749392720733196709966781002294444367925820611579055758050842508829192323792056178178734464953886069594222991503903399288313931587721845430612593325068890777815395181461377785546926766975031000425649361785708182043019760239408300530096019033956351141715017124732748367745732042788870552988925970193139877553034370134104567535452900311086538224597262993431065084337117243651899001827839863077039845798167276913115844988280973135125634171244054034312890796488899039728407197175405431344920227213418790849372957145602307591303132197374782879640672781497777164773270675230604845609887164004382805415067219551238548693780076981077891383352863334637033503618812265797436492312878633579035599699463102552597701992565714345792475689421175657326619558616974414292000697780430344701559727706524685195632810910965134404541156246755045060284747623163075590410977539623376382405293796143559352927732137482402490360984406202313052535425921641994703949802944153776963238637579890485244680680594236015274608463408010066743194913434948196473104269641509843832483412234331462570442150740000497799285170811922691005453946617072891857153246571764612204899849557612582602021026352169022415458196812479474582142339568787681379381527672424434050864505556835684574322958257659891841440611859434792828720340236251254916987377946753514515063271255163245048341856121058017947022427798052279975129766226701625254587871129359937750715376816315637109494416885507469001676821638727032564878465391120263141651051264386422421543783094923823618850850897195592852585672298037823112240086414462895422403376369498154333884947267040406178995422341188830524109436318245439034525730045570165405197052383107416932104149244062757035872907802813054582563358487047786289381630492209374025497252672685932152982099739575135450369946626333492890486513620459230431608175433852636045835060732631958439003594251072754075421525584450220845554771137066473140081581803932237697477445537698469348916096344179184878715919562896022282759768647217370181108410935165531809217552438271714274940212503582859332672989515830630680043804826548435227303196637480443310878140177034197776441209191948600808325021149788567590865658065581548366575039510039384316605986117763916676234513742995661935988749690969621569622529090738531963255631299331951557859734261846419538809273739414128555606769122912886145245151052226658650312369359760797304691704178776181712122974944734428929831993648098415252157515027960212187404740264298623503399318928822037548702945443798246113026467038400454172662257344047928732013606965915610506542863902634503586104287975165321454512337427676164181703843840719819171005578934187254464867073121888971152477123478879979305907229633495897334932927170156230143307946314990659850512293046969815680736509796429705542251334681009327602700936235609927408379443232220057221334151010482040947276795280086413876076366164547530005567134798991049416098072291374785664290051649724903695746838897247204789316012081260073643518855345875890691796127583487573533452029444994935782690244948129774740268326332149786365613181675530692056717314621589629050014383191902893658459031843365198863203026470918167862670593902942774208300479899395598795464192545551345754666537819574991596493942270060033942183200469406278360816791178022288353301190561744994366293329053331622135421972341491140460511601701217652064936631935225193985835059662688276718858949033250496065783047660843488303975586674119733546348437764281414453928720533266456225036619307816028015280744831930498300341781886602002865343600938583926959674600979358593897133594578206946096908726975947286248844854984870869437307905140656760687737896062621528607227872484665214430991958576501713535068461430217771032411334002928442771258702039613571540650683209350151645679838713807619095900627004395335976736699075015503463830241416995417936320045770177226663156392833885265057923208376585572994653505798809778179685522087391015758777682976438132110737207243702050511359669561346493617068412097729019106918737893991211550147718215333908388228964777336676642458384848827536559108956259845166634718861062093305891419171746296304293126321107318143439190463594537610078242604213275994781233543176689136213972728352096608390863511936963538855128225650012779932086222439742942096279590135262646751219934450914947392584784828741879146559848291031018812231195148816527020547498156988666993714741447325956180044254898000962921637432618596822815817606160702515130449984636627119712853423002650807285960286666963760795006082445422091594001920451505974359300347886858197172305250871140070675215327062533806694879055062678513995383936629754773469310490628987339021072083423003269143793200461765566293733884088875426955481626609384684663095593926357119184035701354838303914633682841292950752657129776924135909071180020114033280413042100774318219389184142512358580774813796912134308612924847881726473544259754628326914042314188295699152267970960721017650956755001675819174864358599128488472389879566467684639855153067968580039934117488047354476487561840760636533333803593390502330001289242187209870056171493607112383738704142372101683765335504256891894820589026100415318212754889846360643036869930943869849284213219548418871905958484178724649424281475363231641644630543335273123335529811819668408772288111757691540989890600249074776522670785155834353524660624803437935238323690194681857057257914972972143389772292120156837517821115001567441232158323724994659989564343347399246148104055174341386394220758247505872156597008887037509838989931651144223686131674269936285751922542176253926903950490276919670345533797619324340467898783806437597981458808436647505542018840267004723330682873721820243999484645115739653599503699553755771083755774749929539392719782958905445033966721724775873220476121467404152450996766909038909556179260150017738321620510247417648662894285017887678963744529584615895449264464100190056533994053074753076931127089811611103616593441080795181569016992172912928996033760778754665561963044524171274967638388471904945912026055199984721750035951807033852727661930984405113411793887434784248902030771167159999946288601683958183615331060488374376258294062733947182699996795149276094261438834976649807124590262070091933847573504504306344025965510339270481834858263349913104762166880227872783598457054352732040226529904212012796869537806101223809732266024239545146963305189521066030694856108280957890043956887685132771057084465339666898680214217610438975830982208784521889273362752845168090814047645835021902070925348211365088672215758209174821033827826538535174407662086746239054689045829646696072272140530537619935591564669676612392225431759859589943197464016387377533039012657539318628852431711263698528776822348936110801493482026713374373133150349634922224240515040226993248496446867170080268522333546133384438877504863003740905939955636601647904901469733280860813804666324438745443704990560586533280347384711126625521366533560869772208051017573048683711054587543360712378488549422244431286512073593813643910157443102621498921621250905082918178154746710072232698087005051980170271376406121387489612615461552510396716218731379147932808102439960263305274022626453722805089537795569550621298186573014850799997545790784476840522533612092726846551192232255638551573294814895993620620195863991288351138341907290651702528551724683593021064202714582175185788557576672488003521734847762196115430416075328926108940363538276671724176717621907792174834641205479102822278716340005774055036873755082048002243626339342543600284842957405334756787846520985813734518945764656174614275752263108175348904021230731703144837508674376891438623409361361159660729698068981184378251352636217754867205415903718703353020661843434393027843040268764642208239530567474278564221267241972963667057519594281811769155559299074866503913542882573125837998803730737462501105329693038994382047282098347359891566501258036420617015447458709796481413582219985968265406587097024792876149714139715647895293146797510529589268979098489313741986538378603019059992594526244283183116887715162855540020712466510580645758727680822688937016321309624519929375227539794579050849665639876294356566727134760224578367911823644414746549765636502873081874493329846751746831189269546379900894602435240714151078686995077119703503837933364119332277296906245983042161864416743568904267750559335792569466603555010200430354335162318507684962972139576754593287610211405349582374155487251945069548990156487768266766459143460839186595513480596338950324440330924302932514024852706151891534707190636578611234959523946287748044120768118258458342944987668080094893685368660228627253568613550889644439682617610957516553811020722087345607443409162095401524350452854254419626968995084169695003553438999576279670658215037343023811277267265928498461633551921130376928238512198156809603326932190425981253923308704754633912115676743130909774737398739176509545216366734537338920558860617179903642240480129706412854578500180401885677680958771565759102454840511487982391972896717607835160621015776625061945488735224674845391443375701336600466117693305559939147085782755775582085619998631045492881386975595602501944168802473624715393971651423605682867341628190330014029602024844843499622595844619628311430630409185686383884960710336115253987029380088955150980032290013162681931948144650603042616642998056252262962770345644438242316421807827647320790230677058255117072783315632169721311111953612833025395017406701324258417053124352709372646016805796741615776086552155153334765733491356818981294123795374528822341033488151788263597480354952631471520768763186419078783613205778514868323144263708426502399106706037733657933790593095789980963762753712146392543503046895237054450645235340764707782162798590607178215383245708892798777689990299382403633088858096557771733491927940778046583626164895421239379027623933934068517028349833256225418733965909821169973160379264609172660319262956978986100819660282546710853010687821141321994885264127013442726476341131481675466138583430335042261300636635950947421571425473719469392645945012070120188813173723525859581782097226718797158436651442113326721143717990472757900934220043785979709828554990569890020403814118225318938928500052648931639655784561594924030632866934151317772800400496847981641204036972374395410410398767952989215678856158849215828510197016960452762400648479026300674622926067712744352510660515209545367125009369533555120691595693638464923232822911471434895700143980012012320702102218085822787615367232011612519019037366976821056406753905757305685070567693934928169473543059700637934679377979707271564598983939336253948157566167707477584394151760379537547014078682656592317272458593468806080717564181218738184739453773017522826059106240285667076095894924782127578222996961244692422614682346800463197633879622900549638062138996687950028497392589236846838571947543280091334184596376430087382101804046446414520857951033156788078262356125195071992719295116784832627510223366065044753141458216367100870404130857773055857524396513384881723238166539898367558685645142584302464118897811069805947828235641651028861128106972944457092730131545949716392037635371908417243199384561012210767748503533457421489948036308968058645737506270103938471997703208731877409379881366759777156771391945664176594790791037781851631437613380394712888370912023822252841371082298400452581799384777729865127307065403202496542086032940402108076535706868797135389716887724970978234009720024125327822872843135808613880278566258458977824949887467840846185117280263928029819221940032573882116717192711741825190288852491686537765124127890599162105267907448427018450597631456728280777813066754683167481452479090748149824130071297338711098618111188791292858039331350731409990715121399259588812937187913554218657920918724758669973728265438602733374184934962122466758054891413962951281803206744398785194732133234606459188362471601349147353767205937216879219767624490178547796865195426900860470002953173697543551960070038744346174349237744091586565774009904255534651566691148589694994632931193973309283719060416256338643157935305686322254639204449970896269971827563492449888832349996406661260219210643588371892596544489958321982794959161302549982244615375718265518850188930066238044122931900340105007853995185703524108798621250275303626503831427733558375903618335082749065232560788335688654262584660510133755247399321985404394829735073676405471483613375448759059818940417289896180434304170871504762077953967433777364711271674100008244838241721079851126053783199696229733822853530540737807051828852222370298096516057727383258513597163178647546847092507536952455637472936376723718253548134790434743648582902436278691086671767011628031250663568985382595608409303228081145537198889016715056304807142740093245407291003763004700042308395085482440075709480961952829661574722449911579180324423111191555605379033044040931716096765291526699836860299941641616171124626562909690105611275446143568897354897902831810212380822364089037950934323174857343307107699972026275171898007941964734702868129288392293377019164653919179027284368776695451736402691501052995152432217888506989331315285882570567694414414717797374508148556430035167124377820011414924926125490444726562794181216568395314572592086328871561299735949326815489579724448818907079580627724399002550270240736522138853693575367845283170891024910352707217663679172761986593294245030291604144877785090798395280429320024694044394410413017211713539189483268464170365091981720367656950299152607398165690644601442009664203477019304387974118299454444994954078817977254784835882227009750763334664795654248466438644754663790142707447587426125782057485524290242133272776957831061060290770787559114024864468647320729382478447344654767595356672401677133782024247561261827224887746203098908273563111252008602228519495612051616459334300549328092772356404112187530669111497016395359348768815902227523261565114399850738182333028584062325416463843232303823059990940623340099433474180362316848100841430335943975590104443145205767048224950733217996253904703878828354064983940662060425636180025762056699318606531641599722178034318615697268841856725903879394070682910994162070663501006799439344570878290248225691187929701280334930256083727872577259856368316367667103713182382226500253158229960032567748590587262601814370645078733564206010003596834062808800993271270313031237716626011138772229475574453905721336845923055321487995882649413907845374580449315865419557292825113214507242687729830835578466121059487738112915782765772521123201925254631635098532976114589973894426940804303128278938941787863323926677382306907593178834513945504830408373970043791776126664433912845382514476627102960267209966989151622984763967695790054708383671565448301272989756877234332832319640003951297060425740917566960363398524373752736274778546022634313168970165155039800654829553823873802745645996482189241651186371084796065905444641853235683592741271927826885663448236793525659780705565480374583595118386001175635981971199397195357672858887239997035611989902757339437537832092268228059886881171095053599282128027039973521956657047747166800665139816449406282647658243758287040113687216244169407844955800199122117684444860124042403781484050782671487080724696508086102488408136654001009564801269755630522100770383993465671815005254778681786289813075482594797302875160521261482859965657613231108569757641426808770294928559117671579052225405011357399459752677029109802842955441771879714977560822068158833908435846408709103974518542880917218576805449090268853506643913045038519249673491765771638982103727162708061276112640886804708686020985530837041916588934039066775627352503848932668782525176391995226137332717925750274759655730944283118242538009085907621429969468061791693780239374197806598156639177578953396658759293602569091929609846814074344598855759145026652776329925785804388212467843690514769179219152992123340932080672788232009984959981919151493783875052356313639721435632569854770515319585908160970774261720035361941582172757948104431108368146670128697921003582215569750524725417539664519294267078170232603558074710686771907125489984117493925737234388649712775515665995926281648184229994964679704423080416400877820813335513545858179283326071470829532218535469452588211062345233706106267102558800822295459580494832808116715212645440999497075776973123173847906506598756288139992647410106402263307819808247477966563458984715645764990136411775735633447935215967977079089952948941659132920464621120161095039965371716608637150259959424821477011589519631780279147536223323065510513997530422845502990555571098680955758624982520920199991670266483354686169664253132516420733168446755719361033391896799683381714038123572932545256622714652184836317813188815908083306678837493104197819315466238553168750649660472844823408954206841990424627813689781070515575806864770094405498021519153668201208186689562850830558699579209232802355150904096299085083160797093399166898945838284744860670191302207022091713088022706137465138820643613262807371135759584770868304203697297463357628575354390931083141875680755183369497644174971696914148803876757001663307149074663854343135691582094966697350748104207681256866188690499093952073900307141758189275718948979311832626864045648437605178330930943130084957582663076417183382897273241490399552119094692707441803010465335817276392181418802465752879534531496146888972700889143234227247450135781471511578828985489065950148017025295118480535169793158360312887619445166347660229119696656412455039239427209737610966902813346321610425651931119397785316532828587171485303455266438129154340074117263710159739471821234181543866137540327703736880180852357850954867652978030127189641299047226356379543124887865439816989865907752176384167821952590532183587641081212910396920442826224202077743591572164137947442553975603374990487976099722030653622482220840535796581080800255922699997243779046570402165391287626493761027725690152176437305457816099962292577310551705417498511304360711019758261802582759332506367591325796335095600352970770514429449206829650819321618953004138211890509970471235235205781000551103726723962638588682545129104191838538107517598919505407732504749233003582979400361755451749391907185617999736890815305612545206849446960412386495445680889247137547144391788329569284564970528966252353797199256928182832458492128743241348228536409474270634259537093505229717570992497796016623072726084139798853598833503915033869129029460548517859324383053104374952508271064040598619143474684576142714538233072476457781198584066320402784150175047205085946199279855769539601257865025920289098422037880358391891482732132414658371791054193796156435933636053601128223395480594761695206602287029743841159257808371151437808618537201488546018299596560232244123285418778620354704309669688219320136217608084935775263418360360849863390865484961083531468551429507866500522148858618938250265133213882945883430005402408848893863178444299549838508712907615999238930425756911871253849324150934565312096796890162085318243525993375904254022384215642766342743761187187394875844485525984168019510672937693532537891203336475826134143732823023708446006003320006087458314210245533405329138117720738780757587437055282808977812610240260210614208127508931202434911255327238606091815320666787823244966921944254321694572388104752438262755649187638900062563134252730751299249688000202962067749883441197782103191295366408028789712554738941058097635587729842259193070205796034327977222382302734613184975233544409638653180112384475668661236424802593261354256082137716639000137123457512726490899684111783046159248592132216494100290619300808331807838226565559297551461759237062355752762905432992230251180425777763754786641450073324916835536242706080103586099399461960295056922597033784186470894021875345936046663578172675933447052268955779698118577592446536253230515487811699333258483991458471659141554787346517450921760320118832543334763420737244269814166931556428868737001856797496947100882015865114738151745667278053028377672807667463913664989894058190611067792351273311852231171663507258186762685929553327128782569414749927380141865218789444610553093922478245370466923121200531009031094970696859405190642093343133157930658213577860546851691449709142926809490235824507225368012217212736164846995084872129117845634038867163782727203310457727283095936999226028136131482550637147139882051774987292645196514977741265221278579880093861460168777345556673571926074835286816791970463605580233262860132880391020695900262054239395256478576252507244890282256109624317048786056867914736037979177125352966265236199808589166728383003811943102871477067028610259880058190461595856884873598936684498668982038829317295774178517463132253809383488913731131303127871153888615971784528109512279464483895809458885418885671767824865187516594132956352326360020816941060631619925491936586232445310531665144490851579166119413916758682873417132950747484828557130205164085018327748664700958976337258662556869705548900156945548597229446425384708052626073579744546703217856026368756317126173088922889349338548261597103884621570808505553363237895525550029509726531681971367600363534430709440919830887835259103075636714441136154849005206467855159549722817606545588558842238680649662360972393662346876703299711419061694081095786323465467985427229662057062208144706824989705320056056451887407461164457959433755522643551221317406682107059834227507099128517707212685559718875461633428047685402979840332118953749181458068279349771034703947442253479231679996805069833117943510595882346309215524322552275463782679365944809070864505404248531167206430337067092223839740165082002688873539642392917865075675099108137792652627456334332112792179702379512090576240857583853147675784363375865489173002551288636449739516809813327009809341175922381272191310872547209012236359732168493086467354255432207708745934364586071547544979646196265010410721106176993051128270648789690885018906155254081113680074630739397450276897270636756899167536715477664949412323814700126210156990714289425739809345142454338256803927095762541131206990688250173739311094536816840783692317235117219786424451313513794735762569140361792766933975415473041985335903538064937259875478279445616618465573959891498530455874543539551653311576789264480119941523850570401586745161340719986605161645083276209048858800878433802598908635583220182915394122532015179114093410917736766819965528224402390805220301853240835222741501400197038499643333583888478673313734986760752105217417133226067358819949213846590238711124495441854947931672215743844328149603346690795297334218161326563074706808097520909545504117985499072638653226556895210504402209340256532843227737210869247986348319534476549155947957253528739097767689680321023672566509218658472195118067441662033921545331504710046981426173602231531104221996737558379291685025126497147212099953559602867238256203108491237514742596197269944969152849481371875585568068470946127548858101170201661799554880967921176275637289323499123488828389144724300566506688212366253047800626758775209941759293236089044531600643399525011458290012475410279574399627739769657524773169589144816210906210476500718228499864620217232898024557721093876691364872812218414480521020973716977478292645578330849227840534146098852537028332913598516965292763978946977727291195365487953624763020437010499720371671497839053706458708977679742469698882011888106415642741280311014787640578654702792892579743659424673104747859239537927687712538834370843336697483737659865095330557408464443853741550804086206489422804828594701045436518395951604629928144567056436419588518631229448940300553648899244010264492451503467535223580291319813542232174800879116064514943612246234121444328802799025887085819263890574764266488672779628667038906006356307263170372428681393110135562333006404876298780730124329363811404914615052378158177524522017230159002787793162448963968690786898024267247378565722502975706315009929828299757024387849321613716283583913836898255666087250393497623705325070125184880245558436484944622512692431063050989074212139716911167493931368223424163209073023811622564143610202609851730965236081689214658384510206031216975748050967423870842068644779733340146552708114807428064206613966246332354550532815752029164719149022367963660067214019481615208955984254960916034201474352399957715104007559074396502861234697615996671152293656326078030987260304358908260983802129907866460608129198449099616141856801828244194899155263022078021860725753537344604557798632241948240645161077658640855382403274985410079273048188149081531395050856548522473847401453620871563776075615902962569787093425623895884269299910558019720558514191277294455581247898660830797698873969613160762633112900554278989860170431503946455521657484811538353402965733449852367099679063016898788193613697160775760032887666891804030296771320733563448011922589874119790923078478847677750782006576347084868269433961743011535605433850575466517421883786279586849524298751199440424447224003712881070405894608023793424839690681691037453648174623548166202215931351907328017474165388012216071131440444270124827597761482491335057508445674521819747163792648122376350599088145608054883417759217069363125493112184451313410292401482940174037689494995123038733761004504791671224336267970265915139699593083388110930710690145665873583910228922536195125882063366858051353207883768066064736230634290102786675277101324138698644291330561223107861912567720978188452373859030179029237225941626103839095155483292337178323818860435597116416871797466649332366161902729322141591879586678821546633896136285618463355879225943680175938201044614701501454581437553144303385798331297616254523840875596227060685040858430458938359899320439915001632862546744980013999036950774629626237316588272952400308052628405358205545457274892808188665379551325550067678638331069796091056620632148259442636684630623658570158254156361220204837296149961551617708161933824508160860127482943636653842388465517875786787920225235303560215950618966362798034748389243578324888162024083202183735237894070622920102096779268564121433442802153724174252268789509272683002219276086133908753693285947742286633746452847529323863237728288958723359621273690596831627825692636132663251888196140591472823144307638679683157991415837360797758897817349675395226548975017001687184744202251212104853861410677789319869543305713662153493089338119766622257373081539894860930530406408814632457957244481634294621299853470191024498701186948054005654583953231740695048650336391450829207336499371128197218228243959959318147178066359358402545473969383493649880848701127511118546328295270054088252732644698166983094937501693189898170359739887332357595356461691128914976764096154700257674197782071327389196130865412034570351107054404142564478895276283793731008913675997928865453792634851646072206070812103582875201870581852325008571351708698625719470104186131560455903456632157044795039351741553145955873356450460170706954954379531691234928402195468947651149145576023156142101686219430727129873119181403814279699419259410261792646199007373645791916314569575685237346357177688989255051267531122582402789212145176015444541133665264972473249078070655417331849171080061907223399202098966753995174597232786052720128642500574916104242143053744478398735790668361469961955027914684612101075745085794853652569095613627204806390565717167467234424678455170405625510751179732066606618117566372731051807716379866654735002370743226445598257852714955234362947078716701969612327539573731733027174220749766627533770553525023857345030176460832375344250491591727561933165665300369184323075975000441989780161168473039409666785852974815341801209022272499760979863881256668433295600982055542538453942108105116634209684678392137572163233529301089879019629585356810545657099425101546237379800708443575057884387209231780315124138703271198284454992750529528227342855210469441117900055913224047394213270851825492474714215895760233911157499248538039274839454143701696552447737759882489102100448621999161628388611252743946100799843720070832348459123139753370042835264793356900824558366399866549533968428222867806693313533404717439422568490405915413216735313251744890891138714579541287664971354056074457195312043674240731490707162130672803326167492354834281560005870343994875636420881130183762087434235577450682468089777311288715797994100210421610572732423781290954336537785938464245077530959445034082404039850927898767637420697738021001782189345578963789286274975812885952669253180807121582826716257959084205063467502014066814335828748138843996186988623201775434098322929001527654452703212710137010067827716795768481502518636071221808574992537001604236543558096784152102845040460883800027112105052779343643390884453216518148665618180288760783423165479547277539108994518568097836528462164483487376674505745049957139893769139730816600179942973337550063321761860522750783026544619330122716327238338663720098325537504020571235676549908842992367106125597449720458863690415651276459808291574954720518003327024772167920191377057134699408420972122295285231314065298350187478881009197220347110600502592298452749645073073127828930333088982386805065766173058607706954529848817747855889180290667552517078126233034822452906477805501661284623975050063593334401223353284476104047459507517565382804115554969255376856726490384637540391544951850685868961558708078295561652376284090485604737096944572587037629221183817609567549270589469146645585364356030370350290099844875589884801679135127504660326005113763559355320489212507866859910287445400549348464126775138865587459412187340240167615171228736004130695689300751671597360008201562864150657398449397533758886876960284237652062243755409098295492107891627089739974673881998183189604944226154136116667968754914362468520185712232723396246862358132041657658429957417112018021130438435403643665853759771395018588383133001325535849844927545488987834421685568999265136579290421442812111446270008232157793958767926967985342102971611198267335196734529129165081267820891399666243621137653111468993272158389194905706061367666059914644296284770442632822190818700393564280118684509650701935439576934071451036868804281030725701648280138149032095972213844657597503865493107347646121762169212478306910633567147589781348895914792491529362374260667543697357080885939973499346175837318864269502212522792634307787357585544980774570054997061359707369240109807022953235551178420950532620458309261908876262671903501322666827944205229831444827689188114762167144151174280187323202783497524382911848271919753031655866053341553636625223978657090229309404278128121463222837069238545589811862649740501013850194529510406720265431247193212005505529245874953453892860928635529223026321776525207500030823325928302447662341185600782449589509897830119473785207845151847624977328774779649269958739705801881727800006392490889108803939956357276442570092089787761907501083505051687707776443874310390208137112499735438356216727494808508067959154054804146781317206787190235153333114391959779030427705730352585779155227469688782397757624549412238727951159400925642788142489749935449666880778910656722677493997855195564079729399854304864202987651776598233627587267967000703153707253811630349071492517188070329722696552253937361048040600885684866847794207341008678523103265869091234026602561160547833084225697514493069011828992222712780256941540265862044946071297792279156257731571709714475656137077336871243438688344215163763367790347498732205850263392396948411750304628717042500029811301414267129801022704040297920583097298674112999747648632047694218782473583429955377529041859611257671242034735836070124185302985000272757730848795902409431568565760209234408381655751367655913906816472130105675462261520703197003138896798910683878961491048714459306330076954095998252318516430972164740806497893665359621378609879481552678591565918018319557777603723561182348303149366591582847997251454939564289911813900674961302064007798008914133300676648555928977125162475989121805573957422415587118807941145043800629592584690372580251636042327276478718557666290464870858245649170461975812926721935355149507636149542758358411966470563423617364181426963460968577159766369991574629537543135318005026410518513854275355479319458140033925872767543331743753893209033379754868267595542226352930808405070068752475963465106976121317738522606855608354498903412070824584526969199782171358403368829044059438423147391365002629807541981761845154134994792384990706018039098078244400826489192038287245960825988104793898093199426704511482030822118847449313012854115602817906188809439055634146276065395606775215328257380009677417516768917105239739381005035699813456208050915127375489071631289877023722995728693066533447762366443319482701776841415547850873251554943534933710602381913613828796873550361137158690053532285098844406447709873470407426383304452888908071669565993811429057488039472199381703506045935000209606894605896816853090746154752476090598795272301798880161831638112746787568759192777736686758237581248820224432165598212479072267181187292580522296863818798999059646513835183486268695902525355403211469574307304193192326360347071068026306234795923434705975497914886509278712250068397127397833910070409948049033657634299105225659568504614395616241573764515828422690939359126073496422049252683551716306073873916998478719676103569473125065432988051542942557302134178349802480831134079787912108755472759117929846559983899664519273581621437622518844910302838353102436855465343404913800030763878271826286901270138065996683186378919023037757658379930680234923173511708731725603392301590513481213749070980218938370042715638303480793269938653968885971491907099628061676030728842523049229231000615686460576659523889296432425071149678488866980510967964064710804582723430175927375961266115851151611822405301774172023116157536578433478473108691423222769325221466233103209396403052527030346260166509985337022551131400294221050869906464739339445776913628305131793230368636940391342446469240125548279886415255157950881875060202442561266715925240152934632232683888384807353989473073919174999274075660777587785376455284883411931721848160405552135906488699555888035949765257208559529922898520589391615613044368357277057275362611574820295924354090765996078427695023146803350933253939801625188726008818279914983115349363316003629058675633635741131662529354278548775647102352235163190678394110836325789944350464786083540815373778839870285022741827688678514738313011539072849978021258229751249906147475033703299449172105751545585903950396787776825900241150747090632647201701955805666736630851768653974491876036305517904588764370221467673735353673821461468726333433888634714007675659269335827344608508594384615362725698543903598267775606584374333044291506937100711155685856291981660301262473414165273667820439343177819818836504461226468694467581016479621035511950589551838277961602287085257919299890001076787820497003161408782533611506967639717275177802989714406610057628956971071613385319598483110062564187539634076823989114637504241979083099802642708812373731980694924763273126285141329847870626633029395349220548485196394813007609739133850082248154555721952282830697527787500670540025694666202287602240585245616018323498959337712289549044656766719038008769325177828265353338413354654470857975680603899769261481185983076561796126652475472550908233290035225532902130082089396888532992519010649311865203340874134775528250433136529964498144900248965895506624514085027261645276574021576798767032124222838007376921297994344346301221543039836370777288234468900436742725048256213404682116258734421452759276382867312857697565616528817862042366514483665190626127241481479319733767350305350188487944479904134884570148143954244290803677607955386095111385482615677139674836318446668202742144433361116603652348141601984533752359836799203141025352829488414435272474950453412084337418797770059104585072296829842185731420740726740510575154133821903535662423751045422103085352471963846707154397836965752986428718691917213399358097501761603955147748309258448989062250250716777521398521189112077850751286202749609725768731118065904034437695890721797883124960156094009116229077736521155286563925480080763740403177610985127628802556117051629725997683469594595762441718460552902334375044525923367998253168524107506860835059417953841580795424168677902730510031586980061736512294020213814551858011880396122098518592110311919442686371826205421799850944861230923867866464998974447861322419430034918393832382944946167834199680375886469777572499964902761400277517406985378317236392884284757139758911902434539240578175299381378462466446401200670891496314051816471235257895850461005337752241205247762193250559158992743058840489818459457084702694657162733896113971002029686665013148303365862283661902212007796892275829865389063298959221449243543845373109197694466181303481835618523589273604577090693197363386248308793102066800607131214453948227155026878071924613884875991328983896920763407954380791601166805198542247565890114432499508748528856694649430113436313454929266704401041909761546833746353284556541636086548565201918016173231113246793880817757868132923751378975133478324153095645281115273421580374517576150966862129157222344306548187242247456642422319026405352778827848251487033269872219289131606736261406290913883684456217683272662932231384953043122729123507935656101694962226124296479315926382713402438423753789506043633002495175104930383582031573717034336750326961950943005928507953589981870057391211232038707545187780121783871966774950294562497352522700616955329512880082279121020349514490928773488701672238384192744017676871459948909304479253722060434520703946856673040525182282690975955888231641262899786564039138042631810709936909948561484312044453865748660507735738298526072161259519307849486625032956809213184674952638281268512685018467054046393998335320506269921314719862808013292153930702269351874339231137057870160557191982548144916256357615971267598713964063502041249542854892121930397908538143037051615421809565173211294209625406607815311255954974842918547520709088921670599291779253071000802199799162251888697644698811891055677763249313148169627412129867851735424266316405370159018660969213495068587745675549969367479551641473332354284331499645016381880169389621645988076967264242270207029301394733607459163332981570457422571042745761560976812803590139567047604005548569803226964468976941510111946214779010291360407000853358920371783415783400833967085054586860566885652009855165983393588754262986077183741644772352445188924320865358461351338119337979313896498031421867245968777005188404296038445454094873549409884971349564634753488231907180827909327766576190915006372048756912737221015720732978265030606914314679285715425666930604667419769776054223273829818639506786200536411512935602549461976280123224658512740942965827736571394125145518544345735697981944053611233467670334554804206995832554608312568733296017368296849088329156466444356545343418106935871171558484278505441155465798367533207348051212137513983549675261592053967750959960378388988874248381876138421716290038087494297585839339569953266937404766850725562065439789467838845747515752277182676482681434221587032039858071200825342446103414390022106792446768043626783443063077857743224883000637965116977154613790738230198033593469031276583799405373043767113244897433790643169257703259360396449812330577276315271928261964417612570141211698530376029513650485948080478685682649224542360086612261304464530307933644678655956390339715320902000765436643102082576589282916856970848207458903735875659832650926463636986312418202732847357714253854213582470870447141255390439750749571037929178868770508655252119101858238194088426697570868874519550614064156855966534010365047238461156623306092093893363807112381701433408418545108341821836630712062791870468812607958705155451732129305419874005457149298187768770308963619927422436660334886548170730053245350695166320675613450720964263718868673522515153012482930663064825922916432030861002519266699135365925947595978426160899534128835720522417097260853794964598151469748437937752494591612727822085328649470234932105977467073063281184917408711823898319841568831196467546493962492328376895256782959232046526823387449115222326679066959706129954893566262001042583931281898461531172160335276347636492955571230809614679085015476641562993202981644182720851102150387998918995746296178586613256758815139721332067755789313653386585014053768580833146956441833638537038842364632408564339264810572937758067366082298435807449008866485516582746849070059706557683045382475198513155620420283152796651198255450737682113264154321614375562553878920150683059591102934036557629632894597808226428347314932422410607886640495595418643444705769464138288647266357941871641794895542114950356384705692927152361664912164073789425114091534958343111485457517352899502911129259884115119325373843785598867392487428654115426360504418095300849476629053098964292703932502338733687376020861921649817401786847137278583297791448579172737889367577297376096505995647248207348686816853985001214087478545140033102749166005139221685741718448916602302353274161835843631396871101843037665466063693636890273940755273713416200597293189421480173064806873061764245687732291964859896675528268375986410211574043543709318480437307673340865268062573853446343934246993226418141722789958713633602436165682576064865515723218396549907093897602632555247351461298103085830918510509312364578090767195657192199994061693112943698147135875793670218376268993901511253604310141817692717773522067812666474263412211313838847816435616640117736746634185259282442712541755662486178695104957787353234471283507294718065796843043079823246229481007393336773282799023561317965159017468721354941316072035046643520163149489849787064031750339046685823760554483800866039299659631933363658586040596627888881148059674214630088197625326914748977716770389855436178411134229364740613952696882481761216736629216716994438376794911488618436235086398417544250307120181297436610465181117659173470423668576576311548387351286646833104767630014417265583847124608309390759560167073905108089467695318980287931170833247094181981487044253777592215738118573207758193901955447573960392828183229174031044543266833615884326218793667730965919220714234771882152338457441481813563989311799652486375183176929386767168670922411874206860323169670026028202931994722007473165233496603333301990613808398115819062786377179556698379766268133606849835730571585316512754898340434161726955481661439068374223864665866269687897481650805549911409619273340465841511453677295839115958577001012824585264888966054465182007967793155945936753148980204161157309627112473368423429004194600200466834291356646619293331508408595674272644227498816863070948720968503959030100497102141893768077613241527813441320567713408622712914385055778044201953286275986023343414964817005550356524436910172822339754426728320178151438912726960785681978973083735650268771684360398881402290232379287896172208115251042224437158860807083276649357860330840278210658220845542716204486172193913510246666537973400574162540275658887674612545274611989779012853893673702250012504453564493561112685034010642997316226526459139160688309410441125802533508717848659601625202987368878874514088550216606894159707689552376736957113397035049102625412135433019878655970261874142920316375900300754278630035982391984270273870525450923360441898408710293585940046991642891599700911832724801212769253674751151001031083285843479388986578568043439671980696809720557700841419031324534838390372333586136720857253337223002257657359721427783666509430649582738630972790469925286498006860443843981462934684057742781151745779433779238157766446168448477165547453253178633891199302429477535681596855449432786752461583902001877919876621910281594085870638517102111266183519948198761257408332377253625873440628013781021589738697502740460707568758164215458412458649092018762587150298797229309815153872275565622917892061744751813064196101266566310631679798967686499636979133012616520667568066344280537447490411137734849537934741860873912027995465357303704336033988148387636849926593981738257073307933891758503681375986345292705600642613527124979120045753399602801989568384074278678666431090059005977427542502675691741152162855363789565048725004676502614898069522853075708929555824802712753397450551933812497537779673681232110839584301272860233119217265787192695624995412327877707158837844555327628733017075210991011815461186119116748045981596725746956284204430221389317515942541009841323721941095726833550145200254247683864850795396800182223273241410360355555790348885362282527817241986700778825066319404092498070218438016524000132261210371578995535916588016513550729924439686352707616177270571959466867479556450958280355384632891451865596052293163793849265467230090237796973496196182750979444302236314196757157772956472177300064471610544433138032527473667858406259077889153599065995499975367599948378894655397192491557653039245986124951174593192459503586489811332083279160437279352522988326659709178385333135199131362801280893402195392967871457664399173633047054100780067948528846769318931951225677093809230410903227920500592336048375703231707581982220871125908302642780301312852898441104049157973692380474809891916774598082669005235025658687777300537265540553507323962626902526640923316756564610375493879951857522878061095136193256935682162880669954220399314491266714620459298918187173383779291499164830726544092107780783855238563464395422813686792094974742336533043348811111489320851022920860013374639083014701067275169973934077996865673758004759770098526805453822147364445250576195499685657747392985285699374556120148596280656141271739202136317283903398262525490790629541953663901945639754355474697701325665078002794195707312660914735704260697743231015274120612958019057875957496466921747103132934916460843401996829792279953574391439098811656645430548478202909415206967266734999246253961164689557045073685505938870116716294075701245697574021679615263716687858085440866924111571762189679045401513768334752474119503613543481033611850318198681950817914318436607361589757723264141040339781088580858748356524479635853172363852328115998360187255394959620974907024448810118216439057442513963803370195906761105657853952137025061327194889348835907767719450917396739402747791213296110269611561931058396006911639428155458225583875684795659346037906057475373314578282090372647667223959157238443836971603498795548625945659998018838509848873512434043477454888477470425917038238989954622165174515157142848173571362935755080877921973076127742812905285206279041245290085050208328254268464491189378508628021059076486574902168714093319405158487410608540901154777822965124045879122329329184224442499745916078232308978464696855316054289036312105447928863426305667601527939971564917606086694386721361661227216993942246080922149533988777401628987739894318625550110631744085616521091888553889658718141937192130304562597420810305557617166923617057891730636919901817881272434666277712995650004156326122578626896986836064258106328811410210385976879121072311461993654259729677382120324160668185523863809800324837131373927062313591543607751370780449153202405181141431957530281333381264486756298246970541827023767500275313282460209866512436942144836748139538493199831857187526801111415584410610997883666012943014979760657861451771883031941002724822712243462789331502174641143447138906626273940441013178479358566224556010017343158970360309689694600542797879821476545070667444543030239396214832179031806543001811143026092494014089076696819833041105440659288535050332398351384967475765564980710802223428377138712361152726161212337128832937887686085919710343481535067054439196536594597415891160533157133517543873210158742016897704302441794523650022254525354337356126738093872117713605202042411805646343130327743365851741367571943074892526616848972683490970754112971873000043400001676597474504566265497344769178622445275047623214422578679165599052208241958684851147328328231502322647920376158796398747294156931698205984415042549323070443742746976585534615775435470956562868805680821718535151913260773028233058542553135102174008467528829768344955211736993297866888834031771176335952962576715351328208174963549664455852238712021351822028056788404864397968795132243084341118285106354374750338983139588452000197431801483570309638663440525376919809643898227449625055284089583051897993408299207561156057187140056381825425663921295897950336438159637355868739914227407336162608564613939395423013963787651377687114609322774114720757340992420131171008209865283621773223595175825469936893052903119645526661846454511158291085783363281765523048092872036682455605126557003413622407246965885554894929261526002699406199565046891795333753724826221906063468140713951762426824092676344157225165082891380580739236665708463101620529928638727755640507935828803614752720164821614008385982021021817028832447921174421231920254927419024992134683402254405265203556394953915623876549207531178102178620718960698097868864015663644254196079563119034143956566077962148499011880231291162342486688295981594785045024459496580650594293174342817849999239020446941446198699149756778201269653128221247579246669777013253670588720720229252913044010207684471377504820327239047443833677963599274933952095755264213135968417300450649912500707577436357080574466220207498446931987816873059394417786875930683743460176327750807632893147472896043312975864129694126676364223779733012240498300804627807401263630716059427198517612842991343017262987408383475582716419275609352099682206798818964405618846652248453519900688264217532546760603585376392015073326698875034355225030308243122741364880396007216450483550920457246790638683548951720561332481567319055273166739223790309370900495789478129074459545134719613546810243580712165639151653394446018499850679947184511008926922261225939254722217453763082901175937791194584605361096879088820183424941064110210408985698701739459067899301000434380884258650981196317300175503339316323960270200503057211842221486795579325005423654920812995640042341507866742865037984783085055608447093724319803469429846299549754892916511537273930550866262931090693788240339327992181996136598963201279692675729561036911167353720022636279653290509057120813221551034148999910652750515373771375824409871589035277463780935783824155320793968125718887153245267536714256459346750695839218580887360230437896789863534516485469782986345264343251907634080475463105855858813421627728709783953946438606124801266942444345258431870826868099505803826220431586465975117436299791156796244825167141742201726675598767824267884398606688583293279872531066146263240319432088478066927449978687652188494902268128110513294073382770806351155253645225897481119385673724982653010143806723617055689311747433298248695067163632595630960573576785176174344515020607287898923291617296727829185157275377564351930907375521014788880010329404808939283578628605323076581619406168030794691535042647808621206631708125985191853958487827284884132469134749418899167835625606433126386580350417626693816606088762163330714909694485392940178731716373205381307455626427887673708399768828146829384251996912629117304925960582491184309422639831552683116155612081427686178999865853530395811078040099815630892140351213379624774571087623264376163730245702168017033161369636310401540872889052207972358594566658327850181733675993463587744329666220675091440111162149755347517699952643437992870657965714889199937977101877531817673750139615894936387130446238505599734433764358081947657498928307277197499219476866455541633933655065087002524006410082277223844753092015017953260498834027738034270328019432948216929373016998143577666440745054196849794605766732954344586302459475370999654852281614662875664715832493778119518955132192760767105475337239268436495681147388015815383368158977350462194556170896486702121539302165590633462141302223520266619951647153034933311344601851545952795694109275293205668202643543496023256454369594508822118387542685531113110941886211939945898785006043868325391907916466935710456411584143857531124405838445907582969717459367334502066165985803229987618041989664094620826126525722753392274324768046430846118746898686632649665772938472702023551188933666600989977672066618995665016092147437858389827279085980290838041191542897288605782157306065589664068495340578376155851201472456483522562772210214074228163678481610182277067935809109676163842404800485864808322408516732620148677583666660330872911519568178907262751394950452284874259360645578946754459436714849964415857127605862360398269840095503043804701136922162536912567108125225302668323283531186332335125753270536519122784929004429488750620423289986754159900528839611494780041029786221444284564602679504362950173276405264159072129121473408983803252295441299756846445414868385700996888806199490506995755195464297121094000967709961933754571557083073649099605687719215297089710195770257413991404294585995519647028087266291475824643595507824938617822221251224405520166854178893112154125001257400808779215167739268761092376203017330260165939024048669171440514224279805302645553125181802142909811708489640629911888215697264285602368871500290786052252103542206841945127119852836182094567549426461696321886202611550856700695465101489939877767870505391964245420634639251973229094191582388625797366259340688019158307596712915375437295224078596737834590136203523839953799974298824861501671488659261712782414191109301560893874681094704345810616848616657872942959899840642921900093568890988440138972780864304630944801738191587610503520055061413873252971640143539807648342624420006635185936511724937763235457711310787831863812633385775711860135053668281022938809792849101925557685099674264616170104735319765098570684402247545033209712427612373648091610073253831187287363070639576181758557419376629712311993068535146501757043844330418861319463917357636029973525533696715138137428901715022469884453431155936985544843162129914067740125975307807109768688650536271373529205284811397490735093583040049697540224785430452862045698935134193421701455037061326798464825117713349976970540200674405525813060087804020014967363552211921349373812893656546675769660811090756576408763284927030393800990979511392986993993952972662646718474663791346396100092763808916924721310417068157310289542463189451043396638394088715871900193809979686933283146136722409594598555573676015869914221160749022804490121783945917154653974497631581960809713680315773571433679998655254313944920961151065811842990524617415930666279648570597405523112470805592845910169578154418028124719651771859008720516024374072748585311791853245946206458591935532439067042707658455849063772121179651544245596094814362268610166345967444331205659246370524887447824340815359337171403316895049262460893801906688831754086165106765100134548781020613831877120854974619663806022342014704934118719929693005215138218275784161729213990175618205769530527765150158157719648660202709314418550576648652152821105295984829700302684791747959522783732690778063795174516480447401400332473313779531120660087275469118174964971633662069237714945042265182727724997712334954369590470321260300703022397639676916541419713285217681142267019099819357854583214455064022397820715643828837604933288858805166261262099124749439741697727551336173704536628280887333033250228386645964145336116470006201967287686213077335257617025619030673715541947087206107156158533281072058982911469854680800166794325049638283580132885596215738185999379928026429311259126777601970694052282157644183492270965785477582344419839717652265900841612935145070100210355328408977354236255870525201884851252451190176666941861418726290182266507119500685478739786122548318685731062362154919527724975077712222443755920430520781868517289655689914309913135676368205849617113429496343487556533558034286382714570848351968210465159634574698422806390408590551272423547175908552069383814916235199440057625391179471499637723807196244433719824560981870048473267622967238434606430059543754123052063656373795257471653574446874897881340379722820995204527541319915739655203561492869807333541366141910458241669513438514209891307420516453693758618333582364131725498238796641194359947766729643776499914365655799776317845805859784087865419721179259041078773229330811611967319020684686096371367937697210077934569469053082137704166492258627483686879915090730730832575650116420108483849880416996776117058054026790095217864418097965808732410668997803532578590116019646593413578430586244822422186127532178711732970797608558663526196535417775613695484321946363102791845312569272781721840731801775756851242863763814623149041896668084865164466395470025268003144247924611298151857785225632770952083395465834184318076839602306665624906994823238987400080787274197212378157873628007406032975076546645759399914045970162446596533067201201328122052447377063480234715972789347976458954337371145865592362409305604436731666213190158224710993145533532050133580055786185222836504661771981332167343843108519341132917091896148679270313872579975661502425038848222212292931960197157225935370647193957712146074712059749352575714488716739926556993624221412081259184203996083073987129730983312186090791089777239574423883218515664774826594788956878207464125124166535170227541274908042029828218480079236038368574569463856652882641200086808687439951710361261434226801375612601050531192903027722667320430335278214341387822781598713223380703417624070271119911376673757658512414235630338308361419872997901056389061027736978772381483032801544550138923423532783338635231907293305243132436238164176955065904028607457370303324438669805121414909640924547094132339149483820169278557803043324957991055488408259997086720735465936448376600678252098894067675585677045548129181789182043496150224138727382826520593739379850655335070997798266352248931078671830989988145046617762486191901981198292829106515317858481484347365392320545004971399184830784651569345970493090000082775974337541890247172609907197005869888617519626210095400046884115085538383318893739812152611295226031113597784339297019079050116133757380304608122944571236762295779699238270436115820709873107253657623324821082250778985746690912071128019664608523148549844507550491215453559363290534115779192138818053605059649344217297713727473693617669455491348706216966984677079781162222123734770624212530364841523270746020957474954256548241263879462514997305090320230949490719115929030554081440441225619901625930154687461408554290255784611339354222174405604962656556491824804261796782824683565230265309474921703678876968106201557639841219166088826234496532147214856545302540628525520667601105712606051995944457146310324277941906988663503782411159015996472264809428441094833781524366463046943395020856601429541045940924455483471570443652596344630516186920811252990140975587051811430891038161666181810214130632014726158274139888914540987883726832822509780179020862316745967427561174693846840358973499003604256861565666889919421449801016669053814439556242907158461039974713896225423568240664782235218846686849400364339049017540245066099443588257753110903196072647395761580592393324204005341375412504142890759074914788432546448735675876636067701249223028152497186921212867473305801482038017371970528845037735925824317210449864050595421775420262817446440435594374465068735176580647653574925627697398268687722116429819219324328729928128922923805116202444039986800579307252246124805879176705524404917095485980557094989915657368958740739690170698695975382961258525587177237246452186713596135688935958938835898719321727416977546421259591201483059161662388986344149035625303543212732483904174049305278756202225078453438722006832730079317885155196224436982476180558064323687574990509722392464775446679358079357860775453360422616534717243351497546349182383082052696236659699214425441210425452492045740370283459127708946692909862727102721601957531310968309182472498936713665648649565587765219147398559971833771335328133293423561857373455986315329850220248637299433918866137110426216596238196204398947503909330295178769914946737690808744779856977219088447855037923167319765594910404793745661976855753485372607146738000021652552381738106798994241045285741135974460091639738701904979669810453791249825415291635866826305895832367318856294216515274868257533497619034805793576215605715231060792212098637553960181340253255334590851281515019441132050274916103511100162590805664502247188313145446053134489442139605997742646445506731507334455191820051069942465286358439623861638115764194012215938368327784605564156404019494113581913247149909254846782337889146421540677458990358320955621889025967894474040674633926528064273234745611199488957170795523773233263142895946198935407378655461016655632529849288767216093041460379889112649866086116674253762821790031481870329113768677751719704654174698315976445037361110729555245937068911904331787501201877539719207934632988859402119229185248008928341751930041809509015495015241909060874299467399051935868733988477286364508976103461516701714420382882551139888692691400208958420301574285481964996545823226851848363531837111113991136402665527637719134857514817965125600418659004116304967364870514086893729646785769079546490156453493106579196360496864336465568185592945056311506756920883967282368733173384870664720882212811507687940353556433964169144517276154866718375947622601179244342764185103424372299620790062653508317783401267817233148033800691046220912173169837119703713868581111028238780471098073428808470625152770949503938874339889292758315496328956852116356278670579317706784756254506485416244430816454708352223226384101989093161046382510104149149069112906760879382723689345966831388259140284251377950577318791476624814270014749231224991440754130403601627687357293246643348999050016339124556393421983761972729381616251705369712039152740484018999226409328066452246610623271727359382972053656449315176359823784632948924568056091916487061840628833117908856391078433017747511795493062458069869598461609831776405052945382590124678508286977356702825430961506031578086087216971657001275732176004425719340710103676902900322358680462172783777824672019517800710741669855439199494861692453201443273050855423600984761366543574284612490639908313165053841489587241938145626389159464063765618593522451109174543799582966534322939215102795870500164610790753097800795265289803638582904845844414831574184793923786709374165787987828207217123932425391873996494892513969051612256524085550125825692580699734771426123722132608034791972837372440562676221387477639606860244389478664103248665170104388484078189616661609779274663360230122003123132383647695535914227169256624089418843645615966916326948464513483823961136145330902137062390104728789200039044702867057670229996438975004533511136063309248952552066551455497205646222294106007268224522491358746890670810292058476365265592567200645743562949942421371728587729943280879327806353915785053314683680388922035998418234382570775579511551413008614297273353278119903667176610275028034566430137037307674842518199511003399749648427701972622170060233150362930672385965035413332962910565109413540132765107194009891484181915694684583267803386368960304897000896913481631652378546677077872569040404943361089413094571116982727351829513370010827848342130845076844420242882417581596776581505273775389458488054800124778161934640921143098196842522213234243059203859466313777510818939000567076161816050432594364083325365575659847134389303098644400425757263197663124566492915556754230935341707800270247721977623701090113791743622759760674317905484884418552194931694291893743584100240711552739445932846271535450511502594587163785979446414254757090733772175343190766930104945249725601121086676931452773727586058791171019591040412309822985214098688603557591571590366753598113781502072369916921973727803155978051112950543467241722891787376408938735460229630604791903905098260217351251246541816655177402558408337420907540193766281634422279452951357419438716022187569084981300817294649975706381073494448532901617548065330657518656499543632923055260641016514965247801181938634388812752632721385676563799804812130428486122420024932171927853294678960950008227242141941217361503131369987137069036014461616446877121490071691500068163443875836386951544155666858184099362364256603437930240398617857566711702986401087379565046457837425508775447678150197350857108712664564398860145726662129160657465123709370202174902096447982838697352997299018665404738781119187762410595274697885962785079725481372906199289461404495641396538599227994305451230546781023410656076804608463539008895573462802532066765416659467245065445446796845070309268367819646591030196685007861160678799552509296542844445835279080087587701696344053927184707710659059682483862209119378834791787072887038535482931876454174826627078531590089171329538089672869365832700308811409559605569223240381665666789368048687493546397534966467626079511191277679140597473979334448241707274025602554998385177547862236705456353381957408954302528309897042415868018405457370599906918441220006464993960753176587090437611903719864436011743894026364624064800776101448345640891751785658032458452688363877207307610586138970262226526944247642407198101325177781165707501596584650431548099025517488418039331793673136349613881231692883165556886348399788027670636566533106733371044132551203576790865057848763648537607162580886989888080248738854805968860817678985397750796815827035749634498601822380258543251512235344813118386969850099464889916909313550926132529035871497024295080444819479684516836404589653003612928314089637538102269407967145643680178030258110113285779715521845922843643629967981100142106564458441218139381299976810458137928055565298677816455319711538077300791533917991988366820470073072148243602449519548418284136356254506042774906907175612512362226702837032569162613519422324200112756943557758930374023260297742225114640306528008232424939714267728360047145998188635824113276595509169136083123454366587605281850808042143651032019140623509898811415136246801426542767878138727449225052733760862883114468511699419298776883285665159329657654077900959382403956361194348247354699253745249549911789204128166320582650356022394364029696574925052622944344137090015852500887290777686820649708862630474339517442580136772512138187506580997405610362331621609877390710728838194925200627163971200205302699550134558281775364969991677720866718996032720676329341393782867605114618653018658902779723016631508214188743009019901941415216573166688249701616819796625385997918207657784827746654391835886838265356868454921176447437904647111974583586985112871136862266533788573405735007663525747462442798610509419978576448745474438672302502943182337282189050621007073771441467097731295159445830268812710232740552655062043183617503523734855261544529742036018237885482605200345742530815574983097795608544481828744702347636750984778870208856446382165797763669916294672088998194183138862233245137064867889326388339667939000607188517541580564953863780756428040023295945329756224013746273599398386675482142720728549536549878743984856940035102315644407411365300568979621928319141144876341802251391619762803296827160302376546756181987184346415977830113626242754187687405502871758471093250771015188973441989282201090842694643789764581275354163252118283976125215189929060316267501573885861223955586676082095882329875338260661752911991157229887039092608413163796505629659515036586836044727469444373360892645295538607840775886902629053019572844833237240624355382895304148151382803335682983679193145773089852151020282667143129832825504578193835262512840327155159959825433996166704495578734902962305274929861246982285815273695545761591306625263342678063643294631408599323336277210892426784464160860894109982486624843996735344938482315192479668497364547468165793282441050937568486239615037189504889325636878401211035485338657266969887462095296516281512427487399609577048920485852434180543368318158021734171548118449906888901320026488773968077733224947411859164013275427926194292288128317899114058531356169666252786272882762541701794694578626903630605918713220584162047960872102715235473580989626973746338474576389239846641512587426337032631366671472574930481380942881884094604870041576523849341030279528767535168810755794050578718832173936946901998592966233601135627001542554739758170520461526799607196706362997188997092627279767100062369656544110783550224578073578536498490864500774527029117326958817152967688396077268939745555029517564182410944067672540300529310402464797512268090129417440117244408452316444850045254998234098993286052550242223121495097646722018850474781531846441686884452141763533733830931165239393890946350917681138401070616794590330140325424524759370322417206958356421274823108582985319755013316192500683253843975348209829806954752227529425659058557041008011805799836366332954475664525594520984709650290560778464955868673207837533295154495977684567755174863841670787634693470556385443863311625990923531490402808975634898291757726871604132412594226087646727230796640766352721722363867512964540225090135060381512797088845474625805509436015839219426896203237492283425895947550732919030003347009809785824600791731378415048012805865792689401765917062377130877095800409695746437320928259171577147079701119591851356595143409576809674554337065409611542117971202240698747892237335909650610468523379232541575533253907026579503054901746428600457420613055319580232526176018258919754210787763650543617774434617689735227410826783720837503928023481588976508127964861537045437487746116100051859727172487109102880338003955907976171909190650780203657037875620257729160309864579355525348131832769795023324481344074418926065291489954248919155729846809410522913629308010094859212637016903195052087961214128978258725805241375575104337800021400912870290115583335071071802841464422884358613313326103656916406899974548843102098343897520314287329990474672956304864145613095693572564872413606931594670219057172001819499003674440959813132986694136100335941585818435068989054773573394335274004109226119193274637192142793160147156615581658503002978408304857923369633492629918932820603175207151532310868179463321167478096033236172874418413159972945758327185627917510293734198298515130260897204605107145256920506097016429476768109335858829571320626165492243714202333244138418309694738697563054058255502289350003116337634586680586785252726076446596256918411773352669896471411052380821846565154796713824691677227832193533205984199965086702206189183547113186202520606663698435065522956741484296946269081424630396217989247140895266204886255099309088121765303248754808118448014562494910215468697411829167203515263522378423458676306910218384288103404350524449095648518690447740521515983546943995273636830058250438739676332123555291832418266174376123391420255639987938111464857518129821310569008544860785941217440816811232525347025746825813158000504317761700116499130209809771185950027951589656290043847041872023546256086867848998473211286345710257724626836282952077267963161765696146182640326061423941639501434515095213551222545762500995910712609498946632520923135897175771512204864820755702268916760608695054302287559127557407360581881907321090014848815211542271338361757912109714111664918660071923777124732746265256140269565748163974674778369937997799291266154794690129227285980706639913899954981977953402327737041711010443517412103741996389521340577268724172754263951586371344915765138698616042088073952763901294869557321187761230322680591414347123485813664373889922641696842880215170298323680043732194664646309640799930461035220808641971109961995533063848669599980181885110078743002198389883812003760132109498392543854085450357183876472391497861530014023009231849177090740911516258130663842575070046368036918528698348808604360559308072585146168000735723009578112742496537001217103756569589280922587664995096401834918879824505611198348903849364362762583028700827962925541032633595925901441126763227885504548811330978086988600977836493190558912697362273185526613484856128701424892582773479039104184938681932106667818265729871430869576513357757402389141159406424122715430643045819035327836587582226210908882459205283290201608072206090067489233601294938010721976018485814523609013432427842993468582998286463754743335846914191528822389000123108278536350687444296873614452103056150369512082592629775902649044646268840456828514953016195870572225557737153078103777011186262108559531752236833757055960414857549445658871008792603331899815655574536889870124939406482516792703616375857769542048893023948296174046706893989905229729005794156489186947179068122588078311890218331806137144064294752958030412973886630640195352604412922770480008079075393796873069204196104889539182014982954863310978593984404157472489531166428972685351635675637542722265222939165157090926889079043737000408966696648466906237433126525994154222282967924268545763054072927475634868202074430314867626635958648811045886168654162423953991306215250461703495154938900188889131254807818615726415871917393662243193816910144783318962991354086516825144846394275689767420664046911159295260092587307470875357915536365758077128862330448173187304322942218259326594000088913986860213040922920678009533356413245260678662027700926535052163990816988700645919614906224308746555310798960543013025820929752648954383704773305314496424746245648912578902231335491735279555656799876377345033024732020371283848339517067435102975048593459406576190616346866672947035999328734757709049579955098057756693304124730745313743747393711928284904775004011840150330908601470776479543746524481898894532733132605573627993195580852667342214028471720464109572981241708708053414847648246049049710207757697735134996450132719975765448104939574602222023637311021489640406430350567731454550190396877345106388441190310490469760517110333149025061512770639411547676087035819461374274939176334143446211865908737474493395409986590079389748014999067305238852453909372587331006031732768441593054719734767240227035989501649651689843009416687753329853622332576951726329819868915750923397055992768708502656771360749912027222451329199213069525375671040164701644034683315008469059348112989199403686961743808277951772228870302920325552314717828609714044043030514071016893892522632543255434113323462342976709657189179622904600761028064061552928154402154526574703739002329812022794305312825409725081568795073494814248768241596447943387580179216162807578690545205494750992573198665630300297077393747772436001812497073804092991828847101777275313058705908140366608378066119918276963799593162229304410421145501220278264328836497965781827459438091461332709481224431358098942718743652605722370586589096191113241027211585715229285537166718327424100702240029400022322117836776345009077439959887809124429308992578520834603584878510285942801323139517734047077097243359759152506176643671098504027527498069479035569970326386711830127702896693911366604310079642286939517308283746718093836755953378766532196470981941240930544720728693978755153059048915675106221232329186023861994939707992369636251425396402169395455934369995937931184464543073567375008267125874208791067680398045332804656500361656941212399123185931909913252251369599225437501480578496222132019863040684263925477117357931034127291657805383001963944430668853640926036985232251458038351706503299722816888643949545723116492905013142226632693699010635032925577485334530819656698992009856770161760883664746889993157229315485959635743977246109399202892893799237941095517416367309842334824641740542014516563330120904618878717510075025273259138044499295861627690807806835971970991648621936295628388023790670785145526387175046047650046947279401256975563535447452466010939384732476296824087189892030720254578988479001105036276663528323336121589515637429679178890045770089581686873905404624308370479305504926610458285157705892128789785547427709348978196276871942082828140707477395707247131946639545713189748333282465518816207023128911473399068779819239863604177468904062532825220018792315216971666729984757616536207412511842894388353669711694717155416007406832343391534286575327442558044818451431628867721533570814257147627184698872860685261147136837787617655896153940444956251770426092170041162467877986437416254869294636587645587002267982326188612915884055097468932779479066176761128230450875310666499741446270223259868818924313801616045284556333583950784861566820584619902999657622604740313367155219832682700152529120153796246636330178989277694001523431120553924604570050260090312455322815539521387100346082708627394783530966093554016789564874711090753671466795064097492563105137054506847138109418724614097185578447211655235953182737556281186722198080960344716214059493045544140338567264471095785561788024279174989636710302918577086394553979222889642210029549394232683795988855230833786716995237863660231331039892237854158317801740510677203210966452638378965251453132692411924861759505289522541336836601976657946115344737412100390367592111009227534171253715100215719097175472738316241745724309248968933506812319414471879553688356814358971625479577277538062674597054915459438088238786522618558679152163344356509666484899568200536954422414513199524370507330597857043555643488706120764743901902415028618807117092971418110770392755601548097809386806822182583696237474990321789593252422125623609289160826781021713469718918771226858416504357084859169933898042286850424322154450555139929997361006022975750905258263728230387069152795654391449821522229060904289108377927352910802076939595335709543593137654340621820082011636510734802819226860848847637668550493010866688355584400074042640562972707218259370812680095891345982436263303920163531448466774199433550194144705059648799828246428776729256748783293995667196246827531954820977278777182173075034246007356189670921480123574739324085344226494526218500496863702195994379939120697535333160560606487972152193684485872367893112524997744126892895646857474225603222124101045377439369884584430940858472698319405798683730000158757894871707452694241476158383647885569110491974435397878784522519396541475776414715664835318716360958582354440539939032549208995780914633409001128347346645024557751332535388151703940992804155269233106165116740552108743773170293200025708955442540296529864037879200488369516906340767279086009536305457949372120906256350493291940560301264045902343468782073533092404254815182780853795756980105240200197755026010505786666486306549635323083940026844835706921453821266678141667325121873456770800716647149053243048775971115061720547924844768048359694283265672737531373348906039915588118352126146153735415825550963765373435235748629744492131289937535189956441333549677987925707716162818854111852474662490937530578734954858778371414601677100738310718561671104450267981947180230330858688101946732861552131090685971070296812742207826847243637522803646097994102965486209028280091484565849710347592159291135013051157068629560201718875332483040117212199627914076216559560912889559158296649997293667994765176517472311766341197001495933090847259392007323032644894501877483098256775849485374572063895482501136316587090091121029473739156383939128957421188894313311335803504924716118519296473198950839414568109854492908663477972549029263993246808653087789086518217174708161688583246169934860943988755936178378509291924976287806633728983830227327987546056702171971791518937553562851387348849494100674672205996814504897303526609803568783007588760342247044166938762958709051803957356335839835353758989471641950066514718401602539939625740037101603686426470765967064833234757495792084135335522782508423242921246389539146164231385847493874231155091848621504238024236216691036479110589513415531709173674880129019010558802449986306576707996017207768489941749828566773167121138658634644400725671885427397208539496433695307232288447181602325924869348763375418650354572159767804973885537903522713992294325255498775058849775098207771205081750986700142408555301415609183214076167785561497335495559821643969043552010598830007792955715869698468182185338150911607830985315823254634782869427785068586220953229506831761799761559576688856486265899707407429459478066472715272956224159237975167242641998269898318535344230608073034788712105655954213732549251279435385816573756339111144904300169474291940499273404006590346338324474515427575536361820446882133993801858001316519446753582998596635034734849458829597384692572453351989915928938056290104048492924156761048488503754303631900226912322623029391905352457444967051529261192213075496098715639251899599110935410180243371399989230663700071722470102858433606522056220808650554876849648294956854914201399463430134239604947300275537527391397278544493981520399222272724638344781273953666367325075413132285290463370130996540608961074086621284824639902258572028207929231723802617905317197630593204044647832029542364191509679942267905855327861303519091299218813066660306295752887130103352388064798450473296217237556438318611234918131903765171142101160170291881670856201062455246812745730667046096054346736942965574807716226331219778246195577477909653024198385378582533256551508408935958455993861853364158309363476398719358237769943226301358931944870493297582702143066512985892253066256807299577017176779773219383743645977387288302878855281000810528509211067692621707015980799390189861912289048847941202142760633783987707801313306371998367199827921861147702827614259546764808964883555791027227630895110106999120356176050246514049694522052402960278491257057948727410181566119827805574689946385542970257859423459819675948961533930483386216145347936557865957905565413126273878609148195730694505546440589954145143297863949509433761076484603650855493975478916192934485472514255066782498704346765664518735432551270630967714762583753784047488953061717547556813148390008352032037450885106181652483231395094691177637377150478144307851455087154914119903985091847468552777608946344966928536229130661289848213998209016283707603816012832418816110940087148960777738333514225124376753190113572280650266476266023414327185701166074254309761088119654874941855230412435453849480531604333360735779182246467060983416617119571949589547897239796516266148610967884982652346331518026254883724059397595310701377111259147434391617969832742982312428968202391995923380882356618158322007151112967589619150976193439653917698858178538125993313500459499189748784482204463644101483237104961148059121869881132732547585969464079655247297778789593789067722218765470572943923525381477834285210173501938184570534192348378202245023261063753103826187776748627772744517311337610901806348374743606060320355078774175540607808892324943674614085775933788937690384822472052447778405061691799327791388507092398522111033125819767287835863974757165583379601531341333188994492347246098856655236093638891660295468499088184136462965223267701633505162294831697043343342923713125812942013554518860610141511408140867953578099329711157796365857092171830304413516866921579019915656628941142370385539712914367438049633168886527959013360114155703363727601295199197737225005208641318970671195148056927237437800853627431257137281041409713864738863696268339963712683696423685152333433555821874961365186076263438394620572685985787746507683467169907884827299212205793852192120883567230064228012219817845336355261294772267818800382088568488558041838212921292731103294843461429165454348103292099879585535130861170808273884251789541113438702227269970069625879920887386267888742926077016647137909680520290698745468384589159488982999450163928109433989173958440900240370102719451396463808643137833978511842354766446416106277484667249721983069360727432947729869866351738290207003213955978683552698468374479162859400216508129901785636655185609064351939546046135007024993508701133566900527458082777075102924615724487315875040279433902791367292429197246437920770273914034114113699285604150603359616355620369604645324043825222158549345634787403195674819016108865408167772903261668096607282988025263177577520901869706442218056703824058727536053581734479635304645983137128360054725089495521215966233074821429466895937882649841584823135269307252473072228492060878068971698291341768052698627168525022993736932816667909215385333529480092033843061345966549671107043751731247361267684974638201990271755653649645351765217819225208926885795538938981526664837019112534711433068579287247737517006367839858923421180526696274275811974659890903627594350041482223595838184224977141656041239939200886841908987166281335180408194136807874308564114910493079201969637330953974862220876234861961762867870478565527115206944433248939860276068618690901313372187039365494721958116123008162164063356566853800439197961884691408493138045170690166926557575063894700916941753319678479021711940485430846123940844250032790514950903509248499457673438417141215529114062972951717561907003442391014499359842152780274545412016606857007399277383486241121555107459646172285080605338036582129832738962210125316812187474442539067375345754544896971394025391641960989554782070291709168920147209411107012661726725520823218549339523670235573472242866366300326373908799120776114604918059397198593264154652688054709462143527475900106633791548965773363846219060384812184881139803304536522013658780386835302230028843236902270431258623456887570530983312427559240510599168228412040585919753088055921856956217761602636378740718591250974702823055367019437590637906624286494716522652005625096448566810706627795413726721288266329677026024657793623683802617355875621957414493190886060142883841071480439123902150441749291425951985641616099004186002755337465670325771476940884186873640095615110711107060844352299397962534575959457843784190824597777512639582116116983850206870110762021174476982659417432703403290001805468687155532930554733053479386132413225880142737103696327290745355497734363541780131415216455852982275221767518616602071202134084743831060271383358975651346227357627423379898734114719797486528554538674182689474074644390748980855516123009908067354080618114527677634760783620783347923163711110295871299463247283739698219755815034483152454523484938804850402482591265107563050944732931029138674286287754747562786153323937353922970661917723450536352395570838560552087401488982951265973453951286291752472057860684772308303092004158975720418789222660038072740138355379657154486841053024289843167848218995323645272313368217814630172183954269264971989996604206521059427952478849227675272499197504813081433030370653346371677984109395282334163987071474480563381827292183549015050716507259048555675995383060614166840840559848117580037098830560800033002098435686604944259031489618494471332369386585616766579809628809346842126440246200212786099415628602762903113477817842309119096520364848989207485221088574297884017876407229290171696703149918343810228408147253603515464677636772759767154195843924945903911537911879430360613449080057905048756815565707285089105498685815085040460711830230561123729982498789763164129846631514738544405699435418077202523475891174809055138180099869393977571060100194012584431381624728909124335385974366006751113509449386531158983791289686998955753650425264636831699102472809846079464964100909097608953221115366610865361345726070081521054976515274899767840275862499358672553084353315191008432902974699753377404985489130753399680949026831865111409164948913062220248462976071126519198887530543017385321276273244860956727873742673110504982038947519890245154119828952527389231313287775083696591819771438955138056966094915480924658222611565894998035387205669186321939248568259852330488896669477549525093076798185204698025768770174686515253243200522079921031164790736528134420315712973386292765372226407840492429058583074265184620973986954636030359361414217950821990804122578184384647637260055444380116607708825569375525207227057183071723270470139812912715790531116604508072662095867240799232191232252939853659960917812928154266611291357882475836378828272779418539128789295343057025838165459568438576414583075938426517585064163263298391853804346526787535211215160228391982542471353490190497207560942270484739773688105665709914608800351204028263600263472729255703015107391412139759423233037885866186612031771719706190554635316410106311568238947371078551984941192827601767375536465256218388696859854870887651754875837776185793567772837319535011672555682888386043810621984748558218418805160190698784538963888897731286561133394922222767727353389449963400413005418523032566632757592240430001407497018600701471008718432303325573501243323150055219438472726597409504162390725386774727697603941948720206711096204460164928318736532877978876806616671010436187674876786664649766543471391720974026069247762957590380300611603967854377019144522216180639851416133947676211681908884189120773483663750389300581455413160971550644412506348071045584983847056092108792153563976914255607895548173431941200664502982426422611907587998298078801437021480799310547475039012122423023104541447415039000484330197898439719341333584666512565512132674214757156103436625630269971978559994921135873569582953702744816264049349585330886469703710414216682619323928384947311646900084297908466789773875606010698427345301662403467505144445140963631255409331926292152520336598147386147983164697344250315245266807699976594213785307037836082933863550379772505884232541620075505261096436387886318072319232582410900665632850228526883989304300308906805736736644969927223319242246133700925778494965055441368671538189414695913124237321285117928483872981109778470671175632410024483525232034281945108699412786083973529807087768021630839495283463197252969887365376450652300935982159003618135438370275684619681885455220285133811784724704574097571151705151984668829434289162453644306324481139532962415189892914215190976858803015886535454811601722515762909110380149027927073662709747747016918358824490280525847143644388691046193651229224801134615775453861356951188219049446767395449654402326540599417900158702645919896430192854430510263458336792542482956534605833916264746339909818008603030949216346660600752926017237166175855368547712519658508460885099242845900145931760707995332087173839730209635241803465835501489943689701586755967145164720963365859939730019098311512538190459338095651305431440302866277765044786231995565393108101829670654521085427897703147581107307194085154175834548588214792245750150999760091086769524537680490157156985230585450679691210270812649151499986052157435073882005515568166470573378552880680927652079863195585690780432789903581561076163732833891667500425284660893844431764670675325087336076120086341870846042817827634718848968512177952510330213712954927844906596712162007348445667614497737469767505134834285854122140096128036507889998395120046197961811170231876311971490789297216170880217345701297286198079095013753118299811123884483725490655662050082413688778176362371788110137113467375549135233455102788410295418143208561498508424489701334161840620558007250164419467672718462787862845433021803654220366463459278610750625487993306929928440447929052840789394575243516928045237255786882438844918462043654962680377225140031588244090653635632833967048992821504300152483586172653224171018655120357399190399586252049516302380359414251121754489905870093607019482420880127310171550375880242806533140105319953270818470737560715778133425909611381739335346608231141234265724652579496357673412071823910381535999998342134994735041507926279107053192118376859253847936751917582719500738552328878936445621303097881795571651445370642336178148564572890489340279729058169217514339176774392446120605126126925966250930885485532177043405435002841563923955506495905782947963800823387180845621732474358354029409923444832597496828550074524232788734038218451196599309664234605981587969882159189253070445541830964618490041495503127659456108207191573354509300495349239607537029447127986586380844628124166369031289076546346134358903997382023250409862164080516346277990537204919018584589368194762800352027806480617247650585966782097505101866480506417082997189679272018060931706070202589871632577014549198713786881580168654162911046344474060393238436036200169750945376861611808051315335086302077858601617572662334771905339503082531198906846963731442535340937837083714211051052782620580961363972811131373347209060406073260307661831404977154203663362010725551808245395814998063832091909702596760266900494037827979340375684676099126489430912931919191088558712729502388197397109249480635134207172768795373210000875309959910600813216217389552753997440531110700326084244800678668782932619827478079808269383298394871319418309637686257258851322708161880250212776303054385790174331098657979593533805316417908351534771781795865355123470272712039159732302631158926161281828339577020105379924022149424891967913144849139925443750802668709430363921980896772974246504776160999149672211436072255521674253271982399198296187555785677211264883973927888565996495308234152461890665534928434998335274592928702998189534844037949334378275200370693315090191597663131414204624306005143327588133382312092538772252530250924447811016788932574987068681170096304372922270372775560272851407036075284826599902610546605025548235434739382045800587669709037197563270887439662385744312796629318230320182742119949940604062671097012750919987600709449891326398013778481542955241026299010319755221725585475424645202540013060348028980549940008985688473331365623233805693412218898355609591025929452515909584253421994962322854257362396219099054947388123259006396422692346163487766366564899633720625685456949718392434628352945079145356693410752172749439914721116702669703709385749612987785487793868540278121670233671524578033615850874007306925946717761378900643703332332184919138464914189173892816416260250341219945366642927448956814602591124356905385789749445192464809968205474828768537306717585448626028196753467228937315736600130537516638165181174996003906803894614410006739048015789068736283593841040316041102281333480229333826323738226009513522177768360337578363647162245195487594128743490232064522447252933120685814079543592136276282924453079135341844821522349990049200625144358236536651102342067984563145677981133491156393636786889486668111697187895600328121796041150726736513129365249838223899853242962755834930308153860127811283796805978433822936081870236550499352822214302128929526658570937363879229610484165556808940379866136130763627937600917967100897672559648331710750771375028607682666039138829780278442428780732283314850239413130457431277753559349887842742436564934004356608126109995016672943808598281012439565554169738900904167065913544629844351676829281477236291659783125678370680427124802498626112010663074432574339824534936423513476860743333685634255522962640333990173919490166405903875452466956437258879209401711659769418418169864260086008905308834754956829173910921733906335976534433156422084967327304324510104028036052568949845974851957564086456633047795047615250301854403190377718824246096781097840548755129716007351018847679680654444391330457150404740438681933652201884127481996362630132573372542778226503721278288184373966076466901059374760931288546755723365745598485267880547666370196009725186982590353911120533730139695373581464264794446888766041000357016612977342801898728870593812853870135823965118587084658592689515143429724703154017044453653728780364262700036110972949793334938152344440913021055640087957102420485640933384887072465628396432746011582920689270615761583060000063264886221425577066728656771722546090119601368686484921405664717848891321361678003370923903270584598289140470309754262614381542488097834937095388598951699750097844299850804260227503789843382036689119441498923314288244190976848072210999888046211264887731932855097239485040916355110684288960319787245793963247539423762150400460118213277528482061228651848451974329053202805782598005296890695317773558770984274865185491139916844171954454388772540953365727309391273612346392311772656227407205725083738345393978130962165010150035459807522121695787833643735554240110901640329031796816231576158286692244941436976073549277717148778769115043029520272199530504425717141620732882786419507651868764646353912451456596471870755983593093068474640416155746977836174506167355513490891906068437324469004006268904122091965764240688582985054975414475973675516208181497185732036974731099306194273168356192104441130983950500248068682813020616127158089439801352911520843028803890309789985519243081785934119337297119423768318074731514392015412964282131161890475877239859714025006546035675563035637014779516365345819695835734069693325945752130038514146254047553201047290848019680300845853814869253066663768463894159264759705059462451543816056102854805954552994287852874494364220884272255765292996653856380846850543525456373366068423215774136688624340819882115768131369244399826137567815278844228068679566916059948736125045387984988429256379448221779609540241958552873613105108087751486057440119507186278953360405928180565716417362406359210890196419507311567141136891015428971829620551896605754907698391331547440662874565011633559289353430852508858514845123710139468909060566237346205762913482241578506840273712030439111418029230318595126437862001020841980858653722554697104545225856538968644645445410517949574066057131486458456794962596394211973281587658057714672841790812281278683486942568884850128090034895344564654776043231860151468350039714685371141060649991426553343160599515518111248519772620692285731205444388946639214440663210641064567027199725986308837941495659706617559157539923514705294649639404690334287082873421119581371664030033387545730967014212968598205072623036812766113336498199310401985030425848912081226628402611499403791634468297490034434389584003500584501546442787763528967896289133509756545491084634544922115062527908257229928711954152605022359038240220772620180333494714410054543673335492019565966841109046252575660961751114611238952033460181209734951836562448166287998640734608769757955650171616876853671599187740544628297018532290869395412797627224042411386279979279851930877302602757574466189736898636453798975489265003305187691188961970095429905783473287213933772697221560109293325975995011690925312316275902698772550994938696429454849158819110106057607838604453369432112391416336785111301487650850193673058416812849645914195374871408213679287543650870877405051010091051179632580168084099180678714408989645878618527481629442463222671076427028078973278886120726178881217425159253805505651604880255431182753528388091679554536011890573134681151879471077752912051355174451075383840849027391838549422276500167949446253171087069589721196802258370720282590749880341399799510571609242072032611442735387846141043867969400530548748020361020821673397014763220860064060479684259235025727471958800223434269514295730542301484797754562603454756165171438574780254639029258899376043343465255430851549262883366695956108154289672241929383460643929821073595885382276342808217889409303556896874534987461405773395490451660118797789338590179850330066261767848868910937532756782091192137256221842540114321690806918644549848441555020958123007382037447026560631646747548909811838119628131932368350178426390193520766432525299783235098794208144508662696161961575547858911974300263223935642561481828484664210328936932766718160513187973753285756013868296730875349476370590500703351721800497969921055342522751650413044598603537133258517781514251416686538368387142227707831513134916405686689488312374737507404821898772275717266294931272208596610083399600324990097160687759915594981530971113994404515869948599198680335419564466716659203644942731483913562447375191070475024919175298302653203531672944972097714685835744564215791767058438524655284157559270587594996809637808605192434882212796521072980887161925857035541935052685373428830021600043409820295685528421948959876239804576333355827092146603741842172033847367827467145910194621775932268912195569493939693414120230952155317248655133940857402622371413528212945314366365590690884153635473700337224021994157398149104905910892475312225309721964264624970896149426722631055572356687062489469634763687144890768673999408643901847361029280100447725040372236435141034188533093392752297185629140792805777814130882877984588447896819058131248956434073553118429427677569614932458662911360764069628262324770576203636933599905196579240931737744977201674637121821232297588128112492554086260263611609629750156598250568952191750656117654772392895235375674870242246057649659955016176629610196757663864719850478607377289172723612772909028938086144189250606383453997255539160813368936384451839223428845098531110689929043247347207198353239244793601105645073970575689850004208649043588697640352320562186500574155583054471735755395291484136567171670012887136106182032955287245780360417076833901321516952897800393240090141100715838106858128723434440596400995687947897332247788560904908521102657282083254022504572855341243395604663676695290205974577932596140984244297023430557785788965975878659788851247098671448976943662124581924035259641343480146762378097829786435475945957908590940588537385468541332193421080892404701841567073165849082176854746232385877358509177010880569011236507082276326165356096788717361212349094008706715619928104748999465593229092783812972022249760356142932567621776759660136732884678968222369077899743824287663600787825861932743147352450658468691971666456093761168729796776697546360700690821867743747701211303826911335262551466429942934350282782515846854304973543890333760919238891663789614104716263207613304626652203525669068408761459183709995650585997384256861202855198176484655856781300108934045970781379453545264883081714460955410557006626654639633840951062556540554875658543611081976625667144915275187919174022573330266311017507721466616252938084667161659588586321821762532757077633286237240610855122482434686374262675868304377290287053061384553708257014855568608121507364197924795813923431250127669322418835943790877807651639466778841477958634053111503632769111789731025801850709243210207170028627676718472776418062555302672899426499582887862208231420881321988538922914545075388604431145759696051587381170083934655439754511694579852750862359929730338987000565324062707975952299164411749071187277010625960100867248100463005875454760905726856218133634265866108241357963063764874738504147728075623107158619441379557832718479889861940125514682251354242435077996644300958849465747513036694843588943607488867049790691811445829668876235894379881096005572248882531294004809571860199120374762128346322318402590318914941648989501308831772187575853772468515426763785194478073295063495649362804381552264809255558666181814895250961939476637152013261477800747101837976504855445986887222289390887269299623119913729732862358678464233330196706269582332902490773966907081804493238296358461417870291401567184960512097812948827489414676687674836854102039260936171584209801357710533818531046519850994070580830266459725313873319811574027070352600165333685294518531953201957106018303085979438341156133935156315878097311733850576253889874896818378886500913186582654798519060222245463268835057057043219912296875903022036247764724009261942497116132050656393225481983073482887878300077021966099003099456973775018864764866798533115435168127732973962792320370018063416080443983820857674855202993189712977604602631330695980023223997781804036714283711808251120083951773520078173643294789967346779623888431033562279846938438665316639814387809486949398798689948187764740928445322444440552497158983215074478214036793133292300909270072568540559588966863765688146745804841511057373638445417412607012417587859639678884991268917802125994812608277272157852169125597984014915684830415825002168612685304552888400106141663904286893859335868781206376939617769794241949692920649129952002781907354156013414919443335501842961002970280747205498160549249508193231305272256384152567074977920017606786986905392810421585412773367943708096266152644277112570776975398731829385777698495309368208230576990236834601501346119008695917644927008840292030481172245314094163132665602348070941521521043321683834997342901032287533557293474417752008861670250510760213336877655498148525022391188022134899614201670791372522997977538574640039578125946105335321778617083631379995735723992568338521422117188590906589774366530906839724795892301374342451580043672193557879792928769285549652699746901236820204505197874992285330489428988830707547506836756646664074700359291071058457417505906434977179349868981258172977576735145084066769994719446581042034894025256123420360878392297103717382919028754621799514645954362966270026920965171048988935813460386951688806531307963172278194988909692281664583082972181216161601867218452440373717182195409264636909309301725743729528505270910300398427579881311836097936674213365324318692446186759489466693898722249392104596400783094149981130627952555463613571746574357375370576004761868248481296798261857417415022085906217436123124826198683242782088389067488833969611041208015187225200354614931274991312232381822844131249253867591388071366138311267672143029778997388809174869629514145728998089600635762498858178627241163597722565831520500360715541174481954534790499482357249313711814766022525539596894985498548166980652022144123071990824593821378694948752841741005011968976206619689896876084788863663145345649241964223180397708670979975137702143518861441476934967422765850144538204173431125093426548715562280207618420413287827526428292286264995756575905824869339703341271543833953628612515610338962425145126349517326108950378918416140206885656701205750055865344648110346002126063390930199889020750836877192207990978457957006549334025417067024202030318820383232607095681240269126823322007621896217386927282911033990128864542261110613733810648430061436539821741165194299770408542722882906815240230207698364821856942038826898304194399128678462170370780696837006836995550082889514610836037693182344771076194295913516436485165692072740516158433500892841168224290492675128865153246584861992663469182707443724458852523195144205607002164640334200238794558926972187529873680246332878779431314041670662437572180834689195874329051273180067579127458086739075359538696744259992619271194832676798203628073118160346055912460772302633867817139181612945777356890907821847076035043944164349019626568303907684798054001200550046652595915635370845097345380867204019541298898620173603263783397137755524360016033426707914421448846101255977363879466579703559698973703801950280480364996022661820718034030460598245489033208944763312230595682300325083424450841111605243297859937077821802501812400846203074460599794457212243255412837772089334076823076320926622418301242049744451432832856386058014318496256924938435957476045181475346181926532044786486875743616037936808227731837942354631852226013116796858834992412811515464597601988859725170873865142234680371707128815466611958696675071176641166940497865166621099083106244830679285873195751021993596390022179116091488094968051015234665539731149647034239039471877299808424486772929882521826695471962882110366517012833723742485011630525997669908979933575056925069549487019732916624380185179120649474716264887675337200971920091119745019003572225574779807041200950723917032163180977724771973095570075334055976631356874355777223096261435115933355832696142730702182055373199685887479026369750781567909704250016472937296727908542106486318954710460399059906412176281393433593434045769495613440013456048858168886608386045572002017389973250336685187162157829147162182789648315643872460197070958543944836762158516594009573451119687451422778360248768174118733195040970498366479224030090603193691732331883353680419554046831534232707428216598829200784055091690823608956312039148517931381330961820780831103933286492261018090828213652721731222587933516111709092871833618579470555368491724076960136778496596478041423207801793983423741554874176853128842847918684269132903567846568056923737093088568268653153673441454920002755887158989702423596119658207348477783542213203065429191636189739333523004501413221582215460276535130253812780084022673887669792114423505786275163196772703291297934742460503424107554103905701240134101484110472468358881504494087581660845628854875904594917681649645005617312764457968531170154858652213015734952710574464045896096589730544567445637696680149217351497259445398614753908905756588778516465479260135766197621576270936228283794152077101902853711752974556217274567126142216803695896878581095622061520893724163433061516813015754459666441041587987653621150678296386846131477409807499414491594197509223740507163195266915484382403903085024439182564533189950436787404146851326557518866833648656214564650633155056746075288111295447426756846506172655873381046150714464918119600105611219828004125220075655035637768183195100222047102153215999787034940333646061344409463742019471409784132583940784609883501070102728399354768283090502762357828763257769916539654059350287512892249339673407038919861116330976539634975189535834882303079933908835382845918835269413662801565080411071873176049360637570449083110967897256183569094870543032050284263232394215821108371124151593062357013343497582787201097643448403530038902562849548422482805133822319344173363282772510651633067693323260807948045333424518289153347541253910134348224693114933503299771042984139401757666438406496366548154046515924073536044688648570276020162129623809753708397035678453484280898457856240491194185011213428231583167350847454122746455360734518152399827330762944726965445481566985947204927143892067399516667769643340139297945973229239093853929105673199227773877659410136974458001294308801405116432612383287133359975113012252617900223140264772493037033819813847445201662741167422662725710910671895163739309964326290810801808394845254998491907623608326241543388208016525723632299424696441043945455425557209850742222378809208116331708217524891472099998773426232335250342966548589879410107534127630953577039917955885153099254813741401370092779894917463782510234240869585553676324453975770086341397572130093073108486205633649106417369366951553215599099951078290799797554475630553855948501649445843985731214403734063988409498065379793555199690227950360454449300474184530527462089804730594857458318352447988773840468783586660047705341705730980759529468412391144168546815545119979897722059237876532616875289693488733202166982456617910252575898775624020527919095531065527343938985442862427668372422916057791823639510880836355071747988186807670431212679560011711987674862190622106676799514611831739658527284798972766597251672861375366624339927862034492504303868166363021998791861025100746507830706584302896553053958855823586789028056364757734432654388835402174580984913514518891390811968667196577434574131460130822172627681114429773094996017767814205971651639577044909942056903784124729693328815127021353028176539329802841385847048299013720437891694024116536511126728968514889076989518447849547377547107419152524559147108994796804094304610608967000376720243474556744508725660009923277570267747388501851099466727144637955075704763693590754944256502399237130539976333801020154295710143722781127290270837853805242267045443698774535452864000618856964112201719210009316758196561019499457608289475033165154782326904509209275420881233346845810170936699949883270613213700547887034215362417598868245700244412427480964343221589418096160221311870376320597191167271193200877331723951513409261129018510253330736659391849394139756449099640297342985426158675478033064665569416061454921343248692206193888949644628244350858884896640476269733758815166428811024559195451625951163330755094960347405748976014483523059504196422742618282991109441817066474636351227047058131807298721273387715837495060745028836573937920186507870660035201548144078879210312066896630051201374537098762848320805983019390319488085366138881594636985212793991035924473651269961664779694458770615273709177739258850145738963784780082095406928658561255315877001056146238423551451483090355500009817224703502689801036969454598709076970001058536427345673853120326802633346110108267283356038340637450471005102254524323575282316511143192188630022673552767227666114619652581305369068556061957572241792584403204517330618468511894244310594157651231383857934799100300878871716468829797441890716634788005875670295363935082314646332622184646694712290009866311094091379889382319298821840778745064612050926868531552558014630775755491107910919264003248037967896426806977878074933166813067581148482358311392744465688979463012321956280069919120048383410968054509775893184820019961376494201527451396842325776458170887755061252987420009117924651988404510208455887339928972191856872094270874887438229879905861757614419263032495735874246598170398222086188900959977440522491452358911365696734808385233278489429399492535228543002755379439572226339092267136567953169579390910175502803674959556017893576853663258592152590288533991056927978057836219612179330012557153364610227939969938814039300398783408427812849760954120142910517292332431940205313222688991200813531024398710491542426079270874569264759392748584555414874440639599687750739371890145232621386376660792500390684844187220673279840806948133360711078667619321512979821789918403597267157317764875693582451185145401432433099542486069127346541566651826319018287892913774747721435539102125526911915021485240453730453757658154955838381608513116205200004673750251426899865215847792867935547102646796065128635877140175509641357407730061974744463994561080502430737709323633375098101434776740541745849259938063690530209009471192194523666121728673398737291866644677745521548858743746424491138653922511805033386536737374438425818638400129098084945859164200857699823668975936957275641326902275246615273142122664034295126870811070722806369862642277405339179420556949421699313887625308536351386676727437223878396133713093996739573200197442123261194946744851369053376683574391319658789505309073786184220215113306086976726303534308408043150871339982912008704922354813420376066023640309469229143449154814241148128253144334422699973732657143875591244814728539883196135748140743995629830565886916290207512585078835539177338081165225767640465383792093568071872082089159634479455796081510858164768742687547888802655341853446503719662402316008765240265814169701179389325632446994621681380234217171207878428392439390768626531852528093512270951527270776575246521447831166870959385891039095191113386109152229024029785197899100998478197514012019018341528899331576385276131759167481372678182287966619132463208479620005593825860495447817478858268074198971955224929986531587288062973395329465055647611116616016885597524574233092147802001503516972625430526396647249916454890470614921120129296915737439549079186659612550708639596974274117610538657205201605292837610307471224803102218384646131668293148323261265698259724061918394838380006531516417822020549343534437109498513217295644646196298454853684183202993611853092705970119813558151043078832133666843322778409315345913512031812736898511239557836589835444676315765757859398151279740445203532975154360966939349614532799163446425400923606344047231926878771648916050982224636786448200863848711801794530661178643360021685937698287077956980731410481432278833880421633419443353606006198551369321871662939450446718821358136229601814024323602700382601878110675758551021516628123955336982163179509328598602152822220603405189065317444984262394283763792410003325661198553263617880355306030555051007074710350107126231959705091938615910167758048112605144507105838113410337156174321035954496584153783001584393455812769864298084494381986143493464763579202466355787696848124478225202042473078541162355158297844450495690490869421237351463707095584223062176241328765652962312323416208350837347228524269818178579882829958437435902599385147219562999607508112561074849657480197551942001058168218024588521339501821314653355779927514424971075073245913272619488933898495794632325259151750036453505625174526542122700507009087948907081723712146208476831747039182693164422504387996673746078445580336954836070193608776916846327490207678932834564303424522253059070267402187012839471960616399990214772484827696978341221920744586919551351906933989967673857154759972993063034587047025093311206874850583362566403281378598789253389127270839900119558506098460146226572189177844989931180643045466707020613136351208552520445603898651528300781180715132061801234274826685047715236930031959479008398690556965557521117775137490431065106019777327747172802829461755127038886320307152892402880450987143676156864058586592955636553284374641602152045666285686028616900848839279352661460148037465036673236156391621577715752390872099910729553417090329808417492046811990238880593244269555473006084466626591874959208896220041550775418904057926706006931374036052715832713240407950483299419660544584597037685631005639471648956880242461301682502937697779180134805059567598616979476716043954479110701889333427156973869810024821100954915024327996986429191577069655393056178270918151417240820784524225174505426482420924972873498707723092530297564932984492405517420808057547076592774069792849088678296183057803279199320141315566095088038519354081662128272468335033969127882077629949553646879353739950366576005182180104366213745617742709768369808499436116930776615671096506616150507664777818853585428716866795351812234618900951601575970559853056985587028422836216746353427998501018650994264804652877910285091975018106684152932583990843647661657953340084688983795609946855236642953008299165483805373170658358666166193847048042116086589295761268895269775095066194508963160700449602069992312351656540662771358417384916605290822491644178900442930271892493892437181055597894749786373732262740884640895883359183327907371836368479392239239211319554071057706388143397393774941696894191826125733949756779746439945303385871660669979890002016869027554329049977260257479229329936371666970554909379115560924493595821800965970880180755302081776738860341412659711593819258124985254997593596944790320634727533253458389140257267000455915481361893436667345821011781592445722705021729409025613476269825511488008599566772151598507805014737670079842831990306931944800386223876018565366517637401266848363523883921547385903298385183295151652703735677005836465182733564906875035564309437582902457283174193090176148175745134603502059355241346199659819126137662428326937751737057644204130970497274855708154432288307785706975517829498239524945656914164658824433681557162743576129429295906716977036979148260275553300328792519747522431750514600910177547312931987129091763993258430964586777136232399188139790270335156303259861192225109948166558627998358668997178604721573861582506274779481375872588771416403201021519935545958919835079324770422618577914915134738578825261585175284111425163491185343500427865162963028735309739818643085155054106383174347630241959556893668373923731386036867501581120450357921625203038421661344254590754538340100237634879169389660095948643762419475835092913115528051561389110977353242141170687190175269038407237665104679185355435790596335507535914197576470031564407050769846454802832456505043811294343834348464048090232624594068347256039299977638299679464218300236033424629793651192392400097511393132093889186605629962490159547891799096539481268668691196503481511031896732145233847598121248587145557205365959741033274544616709936479933286251151479035020711190822365746237746573661116573467938852729580903323999917278896053252513968873723532959971282010844093789109556661070106784839346706959254299901743240115147344940756789124008607084553042507683933755707085385475646038846278067158980972416652339675716064124335076519733400599776684014870866358970720806657858694711794760234164534660394701948390622064850207547595742095436147846937726778761258496557178808572930974638846162862631490439167836083777799133334744557467248513775944922616093304621517796714365449172260499707790108208268559645072041491164199444224796445144927046039996166243215042362975882168639580193082106251139205758037983524454365436022526926922832636132215021457167133669547158565933062792624990784795359051125171975673060288983340267431143810064787974743174513185750715510666293470459744537717950177299129051406864516613207742229518880912232899809984692660325635379079543584864212837487496515889368393803175982668138965152809970740677984071115237007356661996923777726055268497765431144895979790082643989165922252257493614466965172783988207788605386215012560850166583403273431195186913107122956553944339220673710602489441619515540982537176664355904914451548901245561745601266474516082169922323704645109024117416587983658740650954907185151787147167348159922333373770058782585140090723102476293309696454413431111113641487723342150289336316934581532276917106812865308636586130934913091931423263286570459085026213770371704317850704734163323418948655356489950624238893045916796473499637888096303675806224487343221226411629054076433291072152505559715927757230721873083519122692936355589827322323352814150477174780225537858684049554110194179215217629619375778784534554373374394090906796749725192371403749349133099820639844787800169592084351859621246816770647711104870721072716459703354827044873551093334574988508948819198402746000580722633567197108356198712172150410730502293425684041504083024379726358459832913143956601256134956658813143436774099205330238701852337731564196934339366230696060515145619518727901656330956374027535652442261946253214606662822751058982455798520067617132930848043859257816409614707097584275865273287315595645978440047708653628609147957625580715795259827889935917907896372594355559416295692200929256403642947667779957950131607546579845668466597470163497737717498182446090494237531916904237305730467856923258425905877692157590556272298982667404427762974447136637321087396023684366094373567119230574752460827507353519827823450446373180203046317354868818127567783550541160624200005641814583065377977735552934157765806904423453200813775690787555698939131328017814421195010756797561267538886851718307196663290936424597180081987126968604670015069971966923970426808347427094286298567219863943898933870763108944311951594959664056363840221048093277585895767503565351482601617928310537083507618742441918064787472517022201752761231176706903323645228331479066137403705608184363772995278848469661710804515165306963335744367358323984809999046259017703605531178405160194272964997950829216862246628174424201489362630821362376697688819357524484241133505748083170644171463547015892027246017476269409162397497965044546545318734608485433286606312958879234426549946414905947358644341653587981989551956750841133481422468594694233830114133803981484974083324939923740814538383088395558367127421202438200230838730774914554249803214301430324259149389445876145599954912409124629051706382161404188464816728758812298240055346430552195170004505140090664194805389871437830027780150485251765610540377440614052295631185705830850975074406360563646446632939488797120307274433319442309162040902870524417104839149098552170067330863644290649930620087857713889814877791887629358702219439554949286032738584386964257273766657432995796133221160012160859518641705029371148959296050795084643806360847639342046437942328313991486597820444858269440514335423390329482896114894025945963249070151721281345725316397542110228564936265829464221425800324953263242935390099463537826117551886751455312874002831188503717498083387132670877908839758469511037211535497166758802208637725020387998250112547351510488202623728355110315846766949770101362200344064103052102185407665006715054056998525678932767874751671011425041178754847790766221375090385194223372383543527942826586052452108338791796792224312342272481800528016170963447102714190419248381340568613275913057368362489109947634408172286003055994386954781039728756346736852241227830488774157048146988322503238893226460732744489718241203777000870596474550349669879833863708327521208528264539408847346664802517525434678504575974283048274155783150502231974923083991410863423543160589741612502300452415621580104092523543938493870217341393347450115786845950738217773653425170347801302494335814943493430657717059376145537827430301553260004008195699109411763900924283306709898541826270943403874802068053307602380537770395180784321915139635731498051029883393036337027104599676662071493113930759112610870820733250676653268993783568372196003624463256686049654654105346118648967450941759807041911842688945266120517718889514676923371375847162334893603457623602390416632646631687101853979106617835994480862836931039881896961096793995284680783680810661175090599920985937583020253121899919417147208007497339790969980440174735023519707131377053755889285595805217076612759993470568815888559425505970035474154938473781720650839766013674232253191785717814981354293525699371447277549096390340601931065358020083260744134572734335163235442968033212852168213462108294648422796412103117161022057868790756623005096537332792056967735958726485868832625843820391095468658805808007214701681733121074489603712491426713113546223926870482512423132829013827444553332286401330544757354252148320015212244239985549640168618722454947538550115289242581653556342400007031566292696369471986195430818259932542354222291703833577983079662363931197255473213661483718061174055540821936941227614427439410614848838793553564619506743475971637168474533829374916014291482191237042657805426840464559002004350059217643450272946097067207094687714282006170828644002370693422498975953490534647304563565200000648908318205813659588941336742767592752134824743512843083508136993401593403383115633427668838825109844996820610715169845067437412452973779835462725565202280392843600969448964214180585105386874536727988087969420961512855596980562939153918819718542373804538487929038651885248277353879208946232892966897643663034286270557496835113764967843615557624661047504108086960790673204264310815166880553184475061825568430984181884722869290880751219849757156079291480345227538910061018848872819885225377213828916941296711125174095257146626927679361354760784336834340796648654017616098613591400484692835290930692563336448074141360005289685660763285057879893879449010850097076030932608837805829220893998515441635123933876071158155279864455640781360436208343046671595117388459990444452003688701773125436586215630164933964429760374517462478330056083283939933966388914754314811021651215043001585431956657555533109467848308321043503527520000101969648004588561609524964637351548463468003389297496027986170897396161320185625793283325553947085578607462141514486757951714579582607199150744279915581678212737546163969601086115062183079305490402942797612813440896569219815700416699124453452949530353847878721510648481651480443750819031665497519581957552667632554632266381220021025498950841312674210178110899604859219532708111841938299958916135142343181560413188000517691364308604080860098936634913893245349487557014130650499386497892021631988789184511590435510619489121336825079283482632718050068932814139242963213401515131546796697048211214742939072884719555401954895369671188669810014493467856440993055237206990015192592030321141180247586064021332322091208713901079462283334757839159615249206144471876756673028293245361694416793772758111053242441243603713083127732038117522725698417101950063237735803794102922012803950928641386313845231757132914747210797943362146151194392561758258547993183988116879889488870204174377516156492983797138802187926076426872552221778040911082250942938452959083016074491517671879297653252266896523443890525834324173945979164426405706273772285352673896745270517150343179452340531660317021616587129120717831148474496341143050387309384231361206711166416113599440831157216899938480250048564674473941295099457554998725745083175329231286548862961758845494934406749573305212754639928989541842591756420661576791135966286385231319078295974565847679676299855826671233361814940616378933674204266838643161243527091051440364945810863933952004535477423309606424892589325516174892114048302368665339020474130620330346251775348994872112767957032627574583618914602035069919073599710557530178302229072994410745324181035915024931644271035459195128399630482853821028751758570579381011875001157741984934812324991068069881105395483298850231042212176532679084009580072857465191157855290048596436027141798859605497414214666416509487533951178418668745769808120060139846924316881991121082323816146569865779097919362855197019274015574407169221337862197188630183447285274211434998173229101529862186295554390846556845622876804866342859319263738777651128528763309291790195568191618162393242690303662982820113182736987631383253906167551312663765973894056102997835787690611513455275566707475629882610437296548916369210322320155630026919205263972478464880404099951914363646751617694935931223133055536060466388544519575886154386487239726100243156896306077224570301663908204898130564041226961628856072867936193541024972688217748413000252120845422446636203621332811307935726971604168079946717181639027106006989063802066102780345194545970117111103570855106495370737219199961645245014033282154139512242356413319588208854045508264216432947456568822908688745391037504765102220068870385643799534232241118413197321189837425840265547368749394268073684992691993762570301738781861218371043708452348684844207808413416018408768312183153275154121832762564892848897707082780346728510075113348401288227389196024846268363848944112803161483632954997982164362467009227997261197090211222799386526505851487149601666769282295806190694735008145365387406228180002654098067325501718733625191957118856017021524362969349282242542779226001566950579608387435165499655187692038979065477599709487930244806453129661168274539430377264161718686610271996674514407754037710070468601164233358551820588668171320200494770956633566718587447900972918466410824544697199521132478738039294066829593416499889272294844671046273070797114464882203942076529615577200772801307361686592124884014469477714600978161928973556057876190663239700434368855787081451583739262641888757173321298116417711641639559674806911408666414989177472350884044914900421125755428516295477550590887811727133444537623424578005979404883193306261454177130989874311190020926459212709365208926872471296768116454943328977285850041015916848533127593781766911516902298278479875009572943612685960408535174452949650709564031704243843346102088591793194572278858602299863821751920752770796042770601464498292553012398378947004133421914086952511674979813508215180009429284017435939930571052644627940382481558965998674663561822592053672038989408631225008334083913812838281078694718915870820369798858504792121085170729689831450243431556195311062238998451329920931112112654870096753486293043203368360274410918993633065301643847849243797323452542405087696226027933442241997446846928325483173306998310074512930816325552262990658721685866974869155046152245856526088049186953946654680696213721889855353049183576839210276227369280454916953185630888845463131079340305447874886384091228981846188045791341540353302500384908482421232130286321874304779912292440690624304482737340495366110625800219109338338588349286729212970208923531479240013431240299073193987627483241629099168095655476727907177331054761278208299137570989793577130518800284886481015705917761574923684588856405685987310243776708353100578147442856743693779549889374356256416536917881602454620601277165225159617767233487064599956842379913640430531781581715260729895137340329106974320935978485555580124720461344010780854551801870709058544736058496996954295225358173947805538974105407527260573385431758247087210302132792895020173177142955768047336924656742085233183613410540346592920584615531599821965812092204139944082874247396585304079847624590755802808534687780795083133910789911510149846550155251339335519366561977048824698354657815533673869292734924156665054165776790403543364793074067343637184560373473790155225893868097879822444674669574300382099367763496900461762518022763779386474670265101157479117517962270954584506821231886230429702166420655042916950385025194510942766316084172685999804611609579549167438737519090858029159661091395886712333138219539595371788903256762619661759270470936586294963703104834628812403705637784766740865966958144130676228936651512359864158723829600687897146003942180435199593315782482393073086456565598012626355878073201335071168154797863140499212834237701235534069907542276441427246867857360564608595915030197840050627141794221967241752329004600740161076818643442444050045885108992878593272644346495188050660054288249887965625556861869166574230318417302836121694404981462400347713801404288174091548260496797498511413251816463917586171783731692724393824359706531845391326486777947785809176489845400003840195464650411050573308245650568823662152230832308009778142094216264641606116930954914764266897229788170913965486651608996755958233269988312691809169492352395457570253850766649396295765674344344478857355266999069031653504832779188246586350132406096644162766898020209992747018848068283759660867524118766415418285524470052186532287047742411612355177256419338470659213471675812025365883517046996558494773444495262401114269817764994482349342095659182429168982910627093628635523056129705535588961972637973838100148189014040115236303630495435506441862797483573561209165180672588203784913425090601216416475077770910317692749425666501177386394539029702651167906690076503605697726174740158224761435896009022729610581552500446909032938972619323613078416989038904963833937126279992133634678295252277684569960361449112070084611121636563557705054748828659241626837791551452778303721180164510582636427865436030867946313607231378053822008399364646261656840586803762934890706627001631965606908322578098405828291852415041497248651753798621979207831895605320558988953238735056783809735988640465027968302401131719291825505274938220989426321791212994604877496797403773136710668173855705280655151663039976623071238777992754329333190613942916997019449790436009771026825387941415208941169352997479806781423496348687221078368945133038021967593198679926120765503540557026528533851418168474345416929445588129631722261606041981190668023403256844118481224822320820868446874350450254985245176191106458713494818837084499594038109698113451862553037619311487518928268186307423032952319935460441985128317155440536944129495051417016061903981920189075355212343012119145725384153276999083332348923198179273318604530473791983829335137885441070935157277302622748010179936124011018105691681986373940316286016178192417504201715915159959026606277062384614246528005629107857402369886069735247041759274925039478257655671620487329512809284310113945030341736883513907809430635340062246066511045252824508114734166640116225748291207612892608726956915808980283542061651588897415645035971474404512231885456135907601373846911695539788199050854944142425832979358322778976122304298602472783336316473440884380218638330962865414644081627931582452450674701181394699420513612476806194988437316224904039376396250087125648353714142446061872262472652508327844530350943824139586466626580361857285556416723063907495054296579255177043451267231591509324797393809135056289790159262186780546143663868005471379403861661944192264756139654126829730856508876996545015127299584848262255242752972373696770858429212024649420221628956039126888333465508243903065986304986606627153972940188961900871614165262547628223552939621132342727897348251220341737714067928654400515024462738680231209602624389597679829298730300041471238768286947053108672198488965586451545342898082281927220485995328372161477666144675650128316116572414400104767434363280818653068113708620620601981125578265190774738995219975532196815140980191114505087507590193512793922774916470032710355072325186133957637586455243552374104672434612680733387159925929542791194852699171176087094804491502662632762407460880868529421554388991822220714306637466819654503745479106757782127416352533069179155802979201247902218067178307785066784387912057980937002325281334656785533029935526658653668137101166660717023291128024754182834569732986094715281776192432186216018678310415245587460788960369089905914161816768639843832724995613129478562502682330888744173040435660190352570196692894448851500775009399370603767277173007347171700160989836317850167842472028604614595849959001756212555104730137086588558956568598670349864307418163322259602695127575415959871477001292357757005540722488159457330436655428326115714828964651530995340402680759432647344890246064996199578840081110969430919419929794688139877767824897106595068450235947680156819318386176428671870281098133404874192819581391118843646347379268418058208405571492902479638127671929564585381838338377516057316399782862773822250585187276072851515287137984596601408696348862983134390205284600431123898261731574727233084881525989804445900587685521781174983646958856113212213887997609696527213790204554301300635944030680123379157575265938676811650231267187572989821907344620149204985824531561162158785029525725979697104039694911128433306415813343233856951233602429525107720109631730014354979189376148045263046572732899778982310643478087024997550671664324377384919381996699820592445341713940521818561044057551067850504883258052205856483892084958863443732701420840306220823262806682347734835170682967278759696059427152726164114107672542533309955923916897164348865451131103369331457106708722812807528322820666857043520242852386968119740110079387912669510372806743506726590487276173628092685697289528128398681001702418536593302779196051844289586244049789330490696690623646275321619684244875532862147734534433789017606534964927358723378601792566162336559983842674796953956045606677226164374849663505047236289224186087196549002408648605522861724251790537390223731198926505448956265503876131873330695633965699129457425760154116373360067953970587861652487786043516375143148678456902014796384629054590410192332540464441341599984654546446681583404648821265539204859975516835483163402884201821637501294506911507088510186004439592112445629530155924474882100377868260321901334083025166482971385789484422828798653197446266580193983474451726146433460096584426420595487166793393287194345416870498252402515924071247126243343645600071799611578997308238610899231672731755119899587101737485136532265497015736279685094330204850876386810817800576743360384012907091872467477374751124163027470364007527431115278708401072759622067384108369352094018439695337925576910770962930446675162948052011759430916234531944181401581718886250217291636540235742916179282096607618198470650671164946035089387856056143083072858647385574416290987761489829475159045020618490568591159497903015634341224470150973240046122818962275131957709145765832242855268011091775500953357525063367291070851348625513908374628489653602449418907079783163847833827353008667213165296058343240390296961319825473210662283655967598037964164312637573507780574518613478006485220092435604737754413818661359887483784979464744518900364541552576932200714515202114646436379170644554774639389316557857005338651071104827407857548203237056978411644900818358210468271785399677372284238952717616361190193355598046069816287731553433558920970548222789809246793818194081507574833193325363542032753605647416927487971016585731368397798650399564836997116804930053416492204466656762007103385582841575552677287268801110305121602857307671359578921966490616008109813293350469083678115316925826907768605237854125161104319108564675322045252297653378107381728344584454782611693041709053666780692105231650619951928854810511735336607791126267683628835729595804504019880620276096938296991717695832248697882147281416392313370164576591386617427213012493651451624087687008099315417356325161391311821353593573403442397217680385806472298607684757549856149732246781345801457519503258120351237788999749932798683407278964959034752219613178584289673739592781693214750305622613806302786235160134097009569121562381322001825015794753246638215761744900961832951767162728014995831019014447620584734780383811063793160784619069057141088596989881296762173390855333288517232690977154416363662516888363640242686367440117654419406536996406746063959829046043923762078865908550370523190639309195305385547406692907013405368982053058687861363740050764253899870763235819334719335053680306116356295381488249087899249241647389260177020874582147257942055458431623899745990265424571298577459687693972012935310226596369809680801928454248144680205305876228126536918668757881107543252603646809194119056632245962740613259149350205086858007611442534777514136075564509998533427650770465522224420428628278333304046743965397789180896859998120749762121483008897720435943210676180723911233041825604035240025028017412806431784953268509129504649343954049846556232892573996356907419682673882726246143497538513755534941101299422324862151911623720510570759446319839575529813920203595787249475571676852730900262262361873564505794628871119132199426127566948302278232074391869560938525106752205774869808797934141693524313206705506772916413199502661914761852343058627185932741305383612578387533885990450199703034184743324388969930930067057948983426991389841064298608220775013867841546534230681061544034351054671499368174322482631573491285373732684153388946101399383091786885999742544962138866854602691094317064411871257874683481534309703277696599379229160739263128499226155438247616134460181724221257266784849441894464191087928533912947054577410712852967131309947548058653358919782870408340784312724502731772852515729405587961135624589697072261977936926639929981294558848002197439803577412355534261338872638284784913519653306620325709406802093979349697933885156374497754960139965992276057076747666286875039544574258584890407765048423763799639954153252943874459693878494244830954787934812148021414856471655371138696304156992845766888084239052701421818002944396545312519003361474223890282125453839915745701046306145841974126813491157376210154504479006282302820042834897911137787188660432104947961349706481877316537350176919470104792522561532656114887230362245652226649277136167221447349546371675198478764032226029273675865815635386647053268922480183007064926315021664848962097193972677200971406126205895682272922301091945393419124684194222007975911645371408603356919038162998286726804502424787658949110654170416834979376191560841963311788347926168198432364373231148255994410349407446575326041780797950138601250827115376475760860379034469491848537081869896346163941081401522407748125440675871692640552924268873835617895983025060953052544215087729799141884307766022378914178643084386355475602938682923846885867141935584106202654433311787855181561040921861734071224135963921513253707587041580534576306200507644556962498135292860163735748399899898160450550091668525371091496199214750558544398941872693585665212879094506187178546062755513933406845700992814348556462024844121262413880513099736585173690335477306008171521832391859821981699766570431799486933234258064265762491757797416208831395981824530471686137528765275979297989498380034556877361333896289871003575160187344890531890595396184677941442881174802948661044529551864886642302234562694100217462263570363000836120924018935070625600753338139958678025837013486863098868797263007442680118723498375911239772006327370023710576345809528086306212493316034659923868886158151431165076249742800590975099953299339830284107731549325037135041572143192456329268849213114069617369412702360879377416888594840875855661355069743433434993980913017011071626196315120504297051724092566092749296150135387582531420842986945082253454954864950335791598592745730619257233573455350623143236991262458392968724652795221084439929876945827398113875652693126827208869242373140387670159359716683769702476295050935038125821836677087991818644761512129008793755975663888673793990743437598382286065049983829649504941473869126746344316614824030881924272044301712046887342381496768120811098871912289106840884312857990230662136760554849066743624754115876048066236134754013006753660302349901670633784129942208947666740654046152940804499922509673022697483479087812834156374696176981565544750725925465441675329090203704305867514356425117066139000995751673634337299366461216273144884218057996404083677095403343348607489563874713210237763919181433543499972356622166760706068093036431675960256801040855859264798644186733994778990510469612285672461916239335514788632004649587252556468680877346472319311196037142504918398291029487705165506926043324026689160117056021642848218928618645260569400331977326335892881465487214704598412864384282213511277416289220919024037748165071620662616706065403601755060894750331898345159577640254783298780670123178244217630770106241172202542102987849131790613261665086301425191917223753768071223385050774840309712718036601416502033247341676522422298296527945271195591841695166638832890703048512757097303745318296496283045880306514552116747122781537637293108356932386282924036079855141692543981700374357119459517020337456109666595280759390807202879363233322616482980033026418199851021080245152795265300390878761394328036567387898884176720387692011238253826736397656943868983839289413235168392769600524552115271782646715908819808132289678623973554710826794595707296295863919758431961250218429364979605176196207772115397468399361184564948556226025534645284762411187052735844509741500688092836323508537243001046416020550381662400727103892806012125272889185155069134702270427137530407913183995594189762934130936734570561968293721058126074262571633916038340890436581849674500935396126036552245990502724707353392715996823476209068607088092746205274061007384209206290928480836606343688663157833716843524166101391498363339544060490905255462140016704366995801714415334911773836713057580427168056103807171244072695603501691996833457100546922471095423747232995115147878997343762032163291815622223807254472047434601280626750689667253788526189067182999629162787107849118447734510951697921561228485015640339754052416468280826932755148397961227347513257843875036234794235907172359956406296268260904957424709195637415813419705271538290513006022450315788675185097713538790616434412087739797732860676042876031591782921753133339066163001163913784113722924845912247143556071690540145977808494106821417171836421629753285860408929305870797675991904042432547824618459306393403723617969646815672169233169888712692414903454562767493595661644617941150206302647088652559941022010009131703949262128352615959383107522982567558436947759711169914284170046169024214917633384122355889195140713026667724835640960051340860378213041065107792345091337424068208313376743116323788200337343993268775855230724486281420360580756831199618154131063179626916514101722130668299281660090116253620901867745331632945708579650580026070582244567725727998515023244666601253443915657349669642318975776315944346177044826371862304062446183195175289846773628474162537159512441031809787901971601918014898323522848000875973552976015595745075184445094216086265170022366937141891444986407110089300649008084321264127031727925044307870435399048726131246990216916679940531589281761736278689354259676430167817253631597939483802230622086462132577125544287668549880351958471065715006251148018077724630675456054379958489145387097854304167063911139519057874346438672903127176224338737341257328838393872163621125878700304971163660537137755519197557071631567148070470974570169075193992813741272546076560841348793324431691281261727256698191331600935597651851513736790819469385158055528111580113348309399957006145291947581844509604027053028010748295839805998646564702526377192076400464477723738468825778727223505146986573564190800967914894248774490630254295846406450096816942471560376651795156808503986920549441836783743835918642720175363226676949036785203795416402447906513602221775599968270360693323333774706518842647867490606677808562294869009408426694556573682811988860247679693467314665647105391474049654043697755255451337452873593207045109051874343976246635124843044109940290169009265316678906220749390245015572251016349022456911330096059222285114510079120651821370439271205486417011650474971074754554336433771130448045734392746107272238286208755729924180013695124501743863630472881569608183899827793009420017648897540151496460672631346721553455113529643985323054412568668831828116659239868590886208898576635974493657190247817263181562208879707539054949446116631638222236073978059981636601650618812064665519000331974872754263687271427045965632824861728158098953530725684400405538769807025802066147570324259821219710386152747622277817095838763970732691182318967899198250317472609396704034010429452305990877243182836225314173051779414676186060698929049380005350485835378111539206567399238600555270657798620815322510005145982298294750961910160160288240446386496204021125058427862925053350409151653090088323164927821298905975546510180300994609481223367210720118894761915190809455905834736289928495248605681714848746741130652002584564971778331146788237441974127620644468915742976949730703373040061925018414018843816149235499911334490723396716351643641146896666484527431495852117476571002888445888792353511458784654491118251534366669559618002785265848376852141768091291097584682160599175934004444672838679676861231295989733077092084240963788362754722772031111401433094492606654540281973423445239923263358975763979617898981379772022870081149805687879807366676026954634603212847390032445269795688131671273950810411812815181554174031032102990099581357414859068359051438979965490281307257356879931273390881832261101151939995432918476787570657361257609142904326818308846058147936886784653554613086128504543729285454505126380675653567005742551474097974523507843577325999555159252389381784278843374926882100513536843743830623756053375632261844330121812963321174639981641820412292072066253330530530324074144278852374782147984964769152469785928684295657064938921968800713691345255771439075203429715551143197685421638052592630108251937236011190575728545576711242377759038751084705628657980592165434076357587596703929798380486449549112989508331221303688730061042833373805395561193267925865091094484441103180087331763652298847241222122729604444676720776011349737081852779917559841796039048710257324578877064350374127285959005095831387141452223699174040716708676378920946989472996662702371574368710151698645148207445012574069162139647171115505570851625183015104924073219481877938725072735188426206855795981081559006285640418006499842590815242327977531808631768579671966597301897293591550675497205129819164470142331292054672916891505018285870428350995275786432553915324504464356142395428309062819315986087565661547494803236705047728340095411103671001380168989870476933483251874717283322722643470645404224452545250886094608543619152393896365758560501092495103180769288297316652359304664264915185634301406318814569898010098184554773562147107597480720632595583142022678257299097508592383688581647220295219138196877103127586580920740622852112836434728343866063377630457507240685653775886495013032372892356972943878004857182491792878917191636130898091970629522810072339772384489543059813683860090831847811259220511760843369747478548445169972338510631333323532805228576624705291276303621537963876299945740843300176529704661393050323915076280091740883980949742323561606585918918026988661612050137191330827741914330265299466119778254660542184733038428545170823836639728714500852228771469848785000520653274796110288707455605579954490310051886992059704256865305117188803243183894207897401287342794551137583454525577880523652047232096827837887037454893268640562865879596369333269653631667875980478660706357434546537777229618798721953904041847327813099371615811035804358376885776620693611872202024565455521125922571034739593731878381429199745631514704741201391162977807510454585702711606634661163612637954083356381833734442818111276070637283260672899402988037731964460156781028677291700903897785599594356236716481407535314353142035795203644686825806631740126611032574622533617181959840299181553147194515814679176305594988454228481880584800192084161399117195545180250688305213252683118713159708820114688379502737203049726625746222788242477525303302675442233634088246883154508962849929410842772852483739906026633537227416432687180131572556930195239410927552563428663718091720521676277288591867375060275479275840147148353113639758917323736642241579191997941475344162109947359843933267195505374354241543410642213027561066056526691034627814022736250627989423118003034077494460710600691132399239622618427297983788918936003077933616871444848630676439643795406056983347747168737815766182767873136394142648704667596120388829516910147519451873429734863072081631249374196116482828056456356345696198410605939994473615475455563932518037763221255237401235279629857032616647040859109475537585599013759733733324390980665536352475855445329583813750916366441652574317676238887792249627578838215084443324064092745917674745195745207352653057093654496542664585370632218992538719866439647314188112694513743235818419302223747788587706278438938173746815904683042051378532404907470438359299699294784096971678066453655567867978024400860196101420472376017953781030762412412843723312098062874801705823960391076209031090490802194055393092882902813993598159240020449150819593809573055896447966518384438254565436951260212115303255005840734399110554268600962346705837705945203594800456871569343829282542666714827781628609056832797518210704028027726818438822917118576343470950463813601448023743402903256137460342686705008046877744306687677696254827634038890566867685532140664405900749312072535485443937828847354220989925807205523771340912533495142872245137400515430004660674625953569206746337447274112090637029944427371612368592572351068874009489041252397154318024805882731789077520837340998407205559150188913183136753277177948545350626711725932417303109055120225691128367773989183115147752200401877320172013987442203846190671289315939182815051094922042541679213938509654447653928145073768796697610723487411796287167405302819524611448556449613925420006466840166518786997101920058976509421627022500898212049172903038804792874455473133818243350882264988750414193355398281062269845390279531445158064266460003898044898088642056156626326133008330727695820071156268493972179240575549595542723829436908966796053167202802610554465323637666999857449082617826958011975183582012313905072802081406138039419492838206567995153465785625189613754757949304867426069252689117512942265890111500833012228945081228140524926439982263454114592383277284403661724493501481382764858029795582595446503533464584749377939265921072684821207433936457508471186205950224155320724006217008471501836633916407299421072522179370571243396621457761016024801899716163517810974181542392023580915612737373105188578500329145287130541735071297159398163932563459616448971650497282187712234707152855416110867214874767525847732643446279997325458329346911421367795360283095356979891841846943372624032721705179639078481223135523414341954578240659901846688042098540615519769499894929682516592749770593440236471675276033063095564746441068727903790755534272190279180770503113811158651474663557561125296123450502262328664627993680663491914737168138799818541406689954589661767778715899112128366579637678319232820777085375666710763715489466003471462733439844339407564266892183568669989640183942833939678062041542538952806266715607220019019080096680239470882530407577344670152038283073276278732714008880097651930532107048236047253567171772623670383398160131200245590243862375852363195607546828340672281119177438951940742429213961415766076049316316216773326254783421845063866576261660612443049722835332403487619515096871108943113752945768095050401545006219135013157005861846385748099411545359217502000366586313693282983245061194272915294186080021586623281583207282630877746168010169237528290283756538181895302530136412124172379240541850411942318453797298688559956972153609716751892537224644355472441237930603965523308804058075964428243035975038123373789747496835128482167979586203200862476246511747802607970885693188550603493125973610231157490560356920056959036754666643511396912780286228221893082097867792177539958358226162254675851345907297438784326207320806498314132960245082533701897500778820845069114037975412247787046600681264500827941493063152095496511670050463441909161660110568038304012618135411975799474092462155619578455701513268735033831471486371620354228367009353856505426990177805110059661014262567443173421140625526083915354719603896194136831136319036953509217575941961058840552813375425533122465775171964923536171731502839819403420941644721975198240500142030981421732822311336012334837676760299734739966492960877092625863875486072262868470560953489526986928529305610609198134598794647113015107930019133335491955354089061326322241007009293995106685767523822884269579245792152785813581380377288926406010251108928310356967257750728777579784719223763286635430409624339113027606413813503633216381308457679410954706576442722491304533319812638775936384346019332480642151665011834463345955330375161318254120031760363589355741094026813954567694265027327418232022092003778354822470730952887882514215228161970246990274711571113176558723887919506475098070478575338421292421800784695035650606680698326066596966740129333975679682700031432165367691257243454100268318723113595984181370263550013955148672498931291232244463443958070157326604656701120874098199208621340790396955916954042817657317922967163763838626166090634039877697634136894673786048731613492671897393949417259593517224077162646131972726438371843666343361407368946684781509997761999208314693777083543554277586230969921050211050380297884082918668844887568007665027251318239065048267448198764089699592964357775683816634133795949241175833604237007506796574076006780388457988097388327444541269645255556749301339890119430218835694880256799937440071396658590058095291613675727035453711789688698717413006728352010928739194046898857799052687547503980206868268096883918964034954527046666748359349960762723757214236548256545295238318267245500203247609360863235542457695290090503089615881618327554955454294434020919727454533811036466616950973291091874945136306537142494296495708906017845630071743577868788086067229057211019760334889483362495240394954646133195704491055788179082441890692976727821491963194130870076731204573525805915720454079465422265756979820828513998510556651398552867097837813595511619902845455713618951604173950555930414430400856503247990497389802436357125412200452942531808665421835250962537183433916038487448115144424455728612781568507319756843584755510196906034646661908055549806584620174616489076322514791520274881042660947084162122719594346542127712329145112089836232584258522059209387337789727651273155159157610210142584353547475047538983914289084134661403410131963386819742778738099693359199973036386765471792513227061642988284079299001341365080409472064637956596460471311852315487299570185779045927129892146028463746588632338329995783857177630487946210265132559134305939416789546425026014968226580027448430626502984179106845133167903973354034909397806530314905143136924997470102384662989046518717631051183113773044225297856959053023183824670939048051764407235699109536113699618158201554971985368567831281548386151217964052275882839615492780366736365571238529769962789046868239785057599616749709737811667911540066779316412175547425703123231107734554356113609253086201709597495137014548149132198966053745031398739577118832737924705633068774687741692085070311057324970377253069606851487238060172788950922911271746242205782537574960088000397592636232708399928921928556856150843391492002971848109802183132745451290636996512042332809645612044580284137249459229709616662596467203460713067399211756446343214829734789456074389960791158865840002138641205402624810523981118272248521767583417946618173461604799609186419696406963616656572552649719474898232940374539176740232667060176674076800376091984770576679539276934366864691194264871946250480378292763358941425343047636369006073837113881053678034992381719052868945182783719068029587477192544025856491370651751814399094949996932591582548253057970650596277739189552780073714377471965719684278776551033829458312808768218548585224424158039541513743424368468342405934412667857408042479254354672805567913822480267882314756177523561923576778328500059009806885160813977109163716704375278648913788350957130029899494869956556713056358989185509579657139246153693972964112034175606223891504829328953838904418001957791840997065532106810720613971113127856279793722371656018070547831166620338244417923875210783975336798823525549595047307858171440371010360777108346802130672359800195279098261640980335604487969705049333561312146494584340974870761245349706081144084906274712988610801115936931292940474156108781028678909157109056154588907818649541701766827581427124734296767363602441200351987727644561130143133016923271557219290277132727934516544073910086691369846280734294501159037361982288489810715475623101693682470102732474792300497852700736528813860718328127403650425267285353768339055776382877825686263566533145918014970800979274041373039577465502543356197621227734403692116016783327721045192806102677195086909267177203646420894011876644189988749966279166988936004769641512967088086846883064246053375603089244170468596584625292245446770358879101212322907129260086237295405360964424844657328980539044303382727932396753276176691114540807861615016104864636030199771391059981222103755050930656564133072100232179776927926855291193759171246259915866349411122353026158140626207491819412157894173376459854785212997944216360668988492368321845179012748499704192687224394800065115726889814026373414493307636444679546121278055921604075801069710604470857648086908529706581076773689122085320477444210752698268448137242067576793483720859456409342856946456505920464027755674586416911325557209123545697747221531034117119638474450578500133623829482918305211617296797645997915941567860249281097660659621787430301412902738923300270173978516193369995810104633512899827954019035363624303494465199229790178433837521302839457837683803652903985739256789838684764948342834026558520631915366122081137254987583641052339603498524542739716966968280102757799790098914297963829668588402904288301094295353794000606374681758292530789607931326702978485520082832585568248258790092558067245536480447975636799544304734212546235342089842277472135086643854252407445446038622413730803160974548673724348315988046799875602542894281791720990151546921249566861406893764569297630996502640451738825723069933116227500904341287346776315943747717402191298119549393864350692913662317521750164550228252427000876649564920971837866842305177535171703889032804020149639842180998565287490008089523645240957609059425582463381971987320682826892478607126384163452390497827601417191964906317452368740960082268412216800308040721465010561316228969748662165170440379303243418959236358664165259105192403827313624565680454873730800477043061656492346660083445506454262975732256757617928760492999993896938810617486102384034844869403886461269186564214169561780528025951038502570806412894794301498350616107259088991206552433375727105750637950464660908723709288923560267380073874570036833711574917313556582558698735948973704406966863988903777683202482161435726734887365057399671341129005725099927012007239599595454388880151840853946382392214680548327241885208773085275526813895455753371165621489059230103581080293452970394086362652979193578870337722292378512784655596609560602275178371415891135959898348951594516941285850122755084866781155256604684732039163762575817642837752907167167399831841058413080314986358276691589866763081899724879836467360569584591330439638180534422109903933020240111369907469038766806355430769993853332528491687074315128402601210170859432440701538458360527828181192059564115385105064407399412806044245155048113699172522103739610666435506131129312849601737379242228846950964165265758433620928980551932112402193474481122129369475728654855770550467280289686428024933995634789419119554022379003813319420538164281046151138040809354351808281620329056865596895975782299843688959404192895688530528663712983990076926453089038449617088013312178289472542992904423171376621351712994504070315124222213404774782839906835471001486159518723928992256526441958968950707829672296571873985549258017207885497370340056749057072973667006000352403776248719987628389880765479106487496236845536192097843171474264244750783521909833548652515518495155842664459572606240576130904322033963654706329477390502386612234272984615894202964376019430588604229572874877786725201664022558934762167935751730971604071750948061613493429487215085112420335612389277320112517065114824808194502679640705733138289746270923044650024669029194432212769999929291318662009283192407215119703593899851227769445039843282470176553069043407945882659338188454967840350590536060801528369768035089194657305918778110724825307170611337543310544222275018534100201903427735130950086765181341469166242897264257638930917747387331550737268508770855623112275157832889464070209459303763077054954387959635617387957619337555112947743025442542646389234725692558699257901142919561541589049707719367198295032221373561041899633569710636269669522727686601876892109936818970915784324529374445570338570854208159911534202691021589102279479137157475077839654197418858645724279285060754374506019825109148908432400229107931258926456362430146934791055955846972209922250794595585729941631396227770408028895840549031227465051995173963869655302749935971077298054926971581849051160014238772510666317623951167928593439486317795525428905032200155059050051248959189547184007810631820517882334712003428286242054804999432203176639320640372891409576135631206512881980897672456573522123574942672376559103307995192997628088468497369211157345008865854142183585555760827266572080960015796749325159502576477382049396140185686678288022207519438242778838421074916577666631140344818799811345315647823972564187647068362022180005300683964474875607482395415732685615933686591308361207687775167901795645672177654196744564175233219138612334369154714848486109313937649567071780338681904863470738028814646708728973827191867108917451620168272854047024767347509785752113214381778031381129276125452453812049930807710797043778611520242708806953581978399907758481847684778931531089950532126472836261925055965438386088748761302318084431098077104915648499770804810052697476648544132916555195398696620002148358686734582840256310582816032178752221623425106187961008589391627415418114144578763163665783931459372753725107342494624304054314467954092132780710795426231774697449260699639164879204565616563422113707432559755840751033039374225878190490923772648825760133910560221166918883469213643144517971963557720732031064051754850224267003103874655407178698551456912980601062318513588253773503004669687177545738169595663280090140746470198753409105432857467748590263355875252033455331986551168173267032819714199569755822826024977611671320789399228651948310852371434005995036419178937648846097036903953310763278098930004281008771900356798347873433855018369856829725540457858394889863601575837977496001540401505835959392323635458249924446446609060344831266654851200553484658218008469391898317521417458210379909862062053296311015889679266390684295448074715509072002845221230143631450045794951726768787857512366509218683735264421392313252341128175283146966943316214019332751239068338280150382786906658821566576987367978651849724373658904346752676640454207063164036727404636807631081282887065618331694352875308761222127222251283118866359959439570330772945735538023873133355460851516003558416525438215982210384892434365963977309567363101611214669136270849027579432663388418943605530706724211548209603450179616295275036182071811539304238555266831846309817514704206728175350895777489002866981332044533765125491870209222140149327118251947056681326520279537113632918341578995965972437279215776711253808344920042406454003875920559115022332743525628319223546043918355337000159909037802778081294851033887020899506656638310248260339911322063271234504030693588671399425576975276857990351742696182259998464140533931082885689708882146249555744895906575813711954889191230663749252593776820704248714981280111300530690211359701526325700363112347712540474354573366245452291420143695398744472062396045395137918429154230424773646238281309985396841018981331246231201593237018713184179472601785019908586598223951305560984811047558287136231735801871840420394163180112950422758620123233645360667839556026008985772458983452352235448462415604782400917048714019961834517488192970799297477499842232654733629524631973034790975191422758598732067820144463083308188274771031056109075877343747769486815571780614792590987231778104554186231607411247783035578538604085327272930590188095757570887410750192855177010827529890505157317475828461992196866848808865589315841596950258847719831629022981665306421709985781073171606262737307013703405376017735381551122621313495956809555093784632033508114254661792766738898208273140241279257170992932918843152527683336443103397019758734399250934068583079499155720590951357823798802645934166633616291703697123579397307436772377837314664049602492907403303393744262958559928980003606294328256493168353677219238536844001598798071095884771579684177723198040125003747744508775081612548463744645375825696248151113525981099961423539942455197256146462542538598331686920922710606929817926285405960129695795007424488477885928504049568396221970220596054829142900669213153006900337895937418690417498886655396806535264753657114443181875124123668406444332117310689320565275841249413113576350061570853563999190368727602022904581270589471365766591461660170711676143412355395265685408832818230421888102964151390835946626418862625260764937394200481911516980745960817253824300868513883104783919030387203039211698157521920290586077101728760124820130728590295460911014002995783828838704001423870974449707148314546297522899020989128002857630402403555774142921150447803471282157081361970808505584877035625694766317261993831851204457501348369410836246470446802515122717837758945992099255596289447139108258076991035394235510928946623234456525126868579287514962614575343121255958967308357055940540733173775894594194292432693859041758653138208435206468479631661772172730386440030016426514216466534174897023088714913251781700075820963763479861943864863749013350932282194268812580502072835556263448098918083643304743057316982816771837298083011666217038968081835939565108785074523245036364057570992386993995640643720915720901742232918880587850833760769690335783446150653144806203317058047833837398183907862833383980524577819713545543702647716605359671606276549903144581777271485611990036736648568658147701886857224466606536702188558600735071198664745798003331931861699581869980307890416180578393669759454552993921427948270947086066666601530753465080387071320115360834518371674131242162277929654766438850664586087691137480297224091297018212249269403272469844995779983550616711812501410848735273298605275399866269147408488669107064743704545601727612766145622539552481473772216454323800363819653468847035840420957694230434665518377483190206150989929558125525037440580395884755068710445944420275404851560874332612895949031747467773669158735042398931368624253645127166145331378305120836993131081508464427882916036015315574178346036110521180241334336782969449561720396337530988821962253028622353451815890448893808716783042713902339309955047293048425076290943272319085924640451110742818771549422637319630831986365830392467435244248444552030880065253361630800602731286995955832174890608396869553667453257593350344033652711772863804476266258001111899776064954472027991939927496816087952811061124688047678362372856854071510906208650353107398111453702013100882446261877563796383624539344645330067481805075468634953315177853632928949748452104910411147129212631624010170224044235777937094127492309583211038490038390464700967815384020320836381629287410113344833946366971963449563955415515231216905228627078015976155459077294595535998485082720428287887166764908308112667642291562462236200579816321457468250718688562741422441147700740051297098968679679696071791238200291703907325138175532937101802424833024314569049346211390564316567838987453152988806497623464354005115166892997087470054397641410818693064775750418488495543967660221706836837543681574127544357409005015860747655271031430747075432562853545633855015839057627904168578894828959783229521883528505086518247406242378595622427592264923621257067939591491965750551093987244555542912295357154805193746874170239618344092944851309694804464322940537425858718843891394243638809504636104713284102893042173808575170119039454909789759172953025392208554908120695912835588992857843371046395661054230848917229172470556324787853735521461437969072931070964911025979847057342841488878280139937213171036969879087839648507545189351158448462865823993616765820146091867524124758805735149199335312338017975577807474788017556577868526395315938735888085957110871290140462517270289813014972746373952957971207897343266833895662095418942710928907963308480847272863816244022637601408203083776749468043682433183449783616051033181777042133698811760867286865220208009444241975435256400338136703988539751413998011237544827620299366769556340448221289303577102319281774911440208349605695736885721579687468648123685826026160461852028878703501021540027497032478955820554256830463827016832416427315041678594892980658825566852602362719398753316333356325965102252736086347252800069810465959782656041520567214556899084590329646467501345325426274936880264822243121637698547872230215916566775097136401486978085641275826192631020675681033312443442726379105022690964393628609652190871068906191408347680393907099072408240759515205241806723760298301603483454240493437546037924822792566975031485543185376548833564258175305554220160728005770356312780761753123475503394998638735921015380124852675392537395634342793711027503170889017797716584516517945391034932909715209565459686392506900592759276460249303186797306615821345720658783349409872756050283691452730151278410280800609813681905520497253638221387005087463856260246495304853342566798737310795111252256297974078506153291808428868757847141971376380019213434968220709272529008196798684768168656038344634432131703718362637937017051765606431781083997001230963588110590474271204300693913958515111564266579945017152811288759051161701359192459365317796433964473862993166535147465971490319787878555959869341178214549595142561745711348882184938924358341163698845348471746207103968783672076319426502551123135655040553199589846391801394328954988666766664399586861969426966512907165166824546917182284715825242022596094192857652141703883782423542083030403847975925630071631162774469462420179324334840422887796627692877724037692750947955132295222214963512457903540740414734086453775785063049513534276257332694320111267284840246285978825819217724839071180042227758177109418903479351218639779329576241494301527990888529659821758989016167163881464602506269047067582082066234109842107921450384705877910468111668161060739675970189779271830106061674546215840018599258901211894032723311504636912719817499147971015527806579755796871767790931122587037621036087340644389093866227917848827935152313659515576331389365273707923736310353041060786758902326717633896687391565121258738990091157091316186042149636441279309247475739064661404092824116769371679569151155494431332070773778046747733441360687173427175661942320858237855171870433978037053059364702088720927625227880991989710207851265823373735209815868585671652970244776772934461774805415917527992588105310161880515988500787377922812204713514457018129082418872718092996778220988736017509767819254842124326532094740527258368079872617167589807277552347361817940977388793492953091422713953445052452307223732703293228637840705751198033606673075823345940536149165234153161872428121001740061801808777436098591825093689817220248229101002560189565609060624782684198953078264101878271694654289051905522865545266834264656757431785665849125268972600660085696867530664538107315144762046330924306243254580204503475974164492437490640695099121862452471427199037579139350226605370121955493722687151585762624482191183805787460005723544282308822960799263715838887476936652070212773373037375016581446065057992427815775595703245354585195228036777767505073112238928005358331381680717899937896701492388188523666876083517450373684244584664647572797852520279338465968506635207361749123991388446707982036256755642776173637223081030743544701673729134992598710258448646081695539692600487992268898516351448580858033626371404926198632871249839391180257206747033478500045578129221542323780033242128836041148288211615559708319057430758601556389516483402949045807363908025616305483846523633385073612662924892960419767684567326016334535579589146698001295687110879456317275452365015943131692621077706075228187547024211864263497479253338110647347894930163003830566183931366949188545656901286500076392358714209947245808154656328878291707162551525347385627461031765602010485034622469454566634001880279144459207302675565360170070289665157910195962840745957011947225608610731831734330656592084670585104724387191556698574349324819737846905294368772031863414432305286140514271865254556664995086015512203689370209092475939311230159690970052896679457331645849814265551322282318065895973042600196157775032233917533826863941978906925397167656182516933269731869273491753955137315682994457782268143246431031410891037025771783270510363510101223515867477381143962231627570525832879753937477421725020840670740893584207314184526365990892632865897929092917356652198645325531854877129718997097034319176848595988514687079808513113855604371556262850158804508512005764392209709808951329511065037431272660014256752738915515269497718340742165043435618324273911254828087389478809800927486127144826623302304939573216596978845842246650761268134176566249246176240555403164199601029567004096022111298886049024431070517438989786862199712973401578538809495175403623894453308088871008264574951258193101616868331642801029833639745585424723055169622041480573721332090697955749632313607135032795080521627369083071294019264356034628707116470335525440818034834291279898968210314604318121438246222134567208896376270982126264973072764816299027881335897820626314601062424319786766294488679983466340458023740296729407449163054294952850304045183449460692402413979081580420795895579882757172093208699121782404532497419501927996906709438868809009254921648647463615613166779046317717903721259507333250529688691092233024550324367778903543569130098761960312575974252582503533365112850199089190426874933265351287028415945839612431502298955190433613583654299099593584426684261475917408684601894505458196470490769548614866173344011124080956911486756263381202144207394954386383590591867144639512868513070989542926729692384738830278965398247233220531056630954808935568664423625831833811484554006502801923457141330525981309711846303213188947223774995892366156093021450123144451965588527650403004846671542845545261528447278242437971078206196174854805774925945464411399761584964457520323388263650707007481526075353312554953905008403188624291229397871855661065325783947497795934118866161538822841583633360475449090104112844121550795308140479277359906365674230042103557728434387627436175106767857541864363508095262133258290431193447317054614695056821854176462722367350097030116043909245036275304460425019928299133752632887387764969047689560288193681454993099247473275480434456128536108780117673382421055082379495736391360489526216129743692366258766990141870175302384420147400907551556072200430278795274622078796041041397834091420758748633834705182298152988732252872326509586971786970213792962085431723641549497309103859441964763944345195267600408038144101576899847999372346390559157589321614517954839071444640472276034515510010143988300288596730712716536828395489880650959684168563981178411135523479048701964623337243260034615820258297911077951549540451387904628303470418621445470723598503027409648796262209096554250811598940193518306865065827292198941255216340224361062870712048950400760932806178384037693313215377582247646236542228579642230760615069715978212109733054421132687941562135509393493647916542116874029232797858954269172609496468332149441682471481268290477693988053449964465743520231048797390208251204089830156606101364333764983431394375994601674477630556575494437825774256016059586977427917850218411013822101458988171259599136391695572064739418855307749040318242787377031087132838918465281994976431343928303087101641070582447737171482783288374259974466175684864625789500420931150751740024238457825353170607746494974242861592932320543043053473903373786264263294524930819109295923477232289818016491260372352444867485242693929695348383204834032126137594716076475946581783568987470133178716248584564629473541217004399901489776033590908891822834880631816075175877565420669973702317695273273076896009489258321298684006061678550384690206319621127112818254812105784452391768716905266558771073881092289701555671602196342671004394143170080264383182524332826777517472123542398136803227119958629566315786870398314192705668087643832350426935913450234378384571186820526082824675222682579311801729399330987748266572928098249882783628208105036476302536134414197668222912300643541393123375930638967402902383430582788779522770903940896824577246013382710747270856984336010219092895592314307110890801914746222202634791555094054571276533285165338648164455672007187578234180784003266267427581040062953734065245016664862989255744926280503236432766293657077548554809641628387522776643393939652866732729207994917320197213178624758285503699212996588596284574797227093263815743083692584953085270497054374979103953172063571698589531522039598227967926617252086654204872166930874541624465335160222767401531863894025172228663638769947398798870843492522281873101240274053003954727294610089151895458887256294032754769164418028901435114500351646691602491461759127974954680179917826809443503416339528823005089388186498868882371148491007625754117286861235633978028776268011690686957742224019451203301054071655039759174129588773916046995335732924189847222272020050824956201751149054738277196258599467930166042579623547250449693775033218041710069355294690665723232929894464255734646126968177697920826016351270143077838390221022305311483858317181542736893609206131108790007350463534735820136379693733912647007151649038069283907970245982999379283778105162891849376260379000465095635912662374390859461335811175290195326813966129563776853083996632351008744594061046580589068100659073191467087066455266854187064785196824750914063991835827294446464577568559937387261643533133343033953446543789886842556130566741297476284923614399389663410264274769688004910907991804531560767333255441870350503137981542398595039375572692480476696825988429235692104410481585780929772245849257838269538260090485829285847585062420872222895259466242905614179494155951518737457791730712389046463271810632612757540324220591397761584232944865046661961524272493528526996459015298883075754162604836525509321872984543233621452827241041825159205724728007739522829380802600677747687882585194166590856121834275426959149591533005785781574103088283148549226118564704478860112725099347727554988424834114719459746599866718570121081113213169077957440088256286933606103405626763068224412211502396261388161304449259425338050990171492251446616237477129653037697238072256759624433197120577022787579301213527665582764079803503836300371446130610691615592081824957754367907255526872432648275097183749415818123955709740971285857755361257907017600548951536788451624454985043650778624592997649628234311492683633421343440889615104488506216230037392856263122247358221595805130033407429430337697838258345695169208720110295725329729986650185371186203448400386095514553320840295459183158722460696637009554219668887652150238092092590867635003749025095152843644181613721966491546099161295644375312815220330597230049227698927749810892259597260065523600842950075121369425380174931462216818713151843364574087351767044334976364967595568503802626585860109718347116201004316128255751853651096817337481704642496687004017614833200517198569616637269765791203535378131825798576607302672809374519507487511560059552443190405694781560694242670959396115016398307308156509147419538734400938717505625476994545248116314563317136088761335238140012227721642358784283621229938856327565929995123870745510683300357313419342175073189895500294403733199987087293979334007782188358231934718784851039085306670601218265935919164569919307161909792462510565198822494614681652055145181895318657830929571948442987909448189349999297501422595666932825293462537847083319823117210218545651278370778505894029527192259868480550252475462563210133529087773123197440552340289748277664139061078679619618381480250066875908652010003548262626840738516118513206645372007712636223178739658147056092172355608795458530124024000114882341182930547189026545662832283748866262469329135389204517074864834893591415662855451929498811420678850334842249763609252370201506589393786032146867128374410412923732605648858421435966354049546206973206052010196658222539990810032450626516913484421914581009227204270123174290950203557466739288925665183340110773110326568453618774437400626100570811984010242227756397684923060548249508237312003179480653419068428815271548225039530542993845032642430696832181166731506688384995195058082555579805537527936213425750267413623286490248099502073432147943836636574660664757228526098655317863657814092247758870686209140591711214365201556945806678811720698254603551900923461786716737517988282064672097813582424038476130795384996808771810974074406053423352568452973984507489793582478694643385078486486976259911897178302365841370475729354048590477798606107050882909344641695632044126410066843318454860135692820669294331657983997274949843757105184415931624243124857224516219270859033332203511336567446216396269019570595760814721046327351964524897319636506555597549015197306975673984543978280375798846747595395738139040912726705335030337440564438391734513137190685127425744479323524178775910244279837591972244161203840318548203106791096699052965772901582240803906020493540452717557890336918206879408665585776687045862812653144732699987819671563167663214041342609202234437563434577956379166288094850464356815696073044745570182876019909460115396769599988831196895114678213373654005593523028734008916877039861864476863752255293799110571045134136008374870104362904142162924855827126916377906564256547661324681135138788826273639970668538089244523987000252018352020151729658926029800845273732054589615264925396729035077105706866404655235739498322400177078217086612492396139705993029087971790366114547033940699521581472866946313039270524204677467904482706952676241244970042102498449350722900374972595972474034707720267266156625220801199813920209560745842120236480041939579768972101723219928798525166365671382125703018942073258433913154736835383222071581839596418673864795208723594586506087423228383023358725485346074462774271425310304351510553916406142849212784146278196266502635981361900272337306865803989334536425529074186807964703744143969685145884145120302202264507342873431257092564565855001798559701774936409563394441623194097508027309894428858273282229904180440944884283031803067666566080389679345956847074218263869147924353415486688759406332359225315206658250549253810711530338115972219945284804386471170703831833007443660037988442682808832755424871768712639332805331554178125747772503828432446415015444863919757416088708750481248125282955879283658423082022903420866413164712651523948198185736914377938223979311621192915788306788577647760387148648481011505358059719947819030975032929780687214530720085662647450764735208756672953520009948165307509818147687396314392541275308949384782449207781240019993274353841653764048333349645797945847267276588441723693527055651599264460740254110028481781262841067360145720035449243342866295252219245775990674562410319673138292831491655435811592333043883873650646946780431989370192285169024604302307441130777665985869089794489785858808442085102182372705849878499731066143347688494395045307585694475984920839157812412463932578961042098216664598463015357872241816077915833918332711015331228811984841470123577854744282002180409023262874120280184278171036123067338895177630110064993360442546139250951885785534436096916709996605116777426393159707137527872263441185713221949746492265292751128497896767456713649767180540628112438924249871128424990481199640817056005644594493063434048046326028417905322282504973085621890836203873965372501657692597344637276742123821555550889596716917341226071784329923056743994611299974064439317615714591252664411941051541439677498656330606987955784291662823301090539614414013302716483051496972791934295518017296567047274430461981752017302668501324399866488821375180408773240369043958168510854447275481056583661104684661208202223224668457195083431754590594266108157438656900852543224979977700485421879052958152928141855312934608721417506656065374021952959783804429002239188516901968092022737647967412060670465339057721926274475341970226268146564665960016657094165634067804950891376607071095154547405108789846547938267145834957540703335930304595581105911400577206085412228636919556196836312189611776084729879280576414103493991715325238601009164489857767273073568876379183598265575500686631465156238709584375840601544134463935941061987189808790150300925356206528292714888563940208513722281396727148998032723299641708981106470620837634697435489551766967650780995925239564391558187653445720027124949973602996126590394368142727755752438445391335448935632396392477444174847031948737235723940687455232899895866673984903499698033637165799357025969329347475453874204581037011681655877422423177408638978042532161078760333765708846316771296605296592851788431608166810715469355903022467147731358327362810576761620989582999169202867380994462181232787670863094304749062651735672560938823720221666877972165869071642669922428487680499305548924087726194262015519461139487916078194316214409953110340774644307958656071836114254867286859746651240498887578441714984506905992807966946932163674780974927395070892570575358759266684178853176140542061090190308204470995247008145643817993487558086782848460606119075200777217490410443547599536644572717540562920080277590888509081257954035742602156496569844822839614700371194088297578203324929634842630857936453198038552053805842500106891435448584463270418912921908050886993296341701790931124886412551441804477741000219194670841870545441577795875972541179234984606201603544848069551166321324891199183035504260902713341934313497960050455703213746916375826177172625469125666672953132251249811089487221622249224176236485689815953274630815855452696628306929110241166043879525993417146651157958318627510045824564327710633911123186867699819461697614444731897683993242419777987325597131058886210468461108487074645609617328156179960613126830997148015800930682660908270053297437457151084094070864171438939670769642078225604814524622282193176356600860303005528891999945015174875884716565683350048717783833773783157868752396382954755339199773656924441588059986329321923332923425804361228056247388577454495634409657010874417863468714320737162399289158479449536227987017633875810637916094923800352134095300654897973584520575612064066902326316967156329038864217854165967615345373144603660035885417553214362142979334765692132095262655087695144599274397871481015123149260255141449724458664208707884304077716169095158293798143610831062742652452296208898436646592535479784969974432812489691810695653682552616136568101717723506291792577144223120379086822819835369680154414339425239085021970390671455236274169915303329304149344649558063635995497109054752908150721231141818050889932320324456588615469095538003732045872846432162023130693996381609655036702825308753092123423034090402017373923510875041217606303408094888009005986272262346433923611137327426662692314203133351568606424598534284262355012373771917315094312451663414964321738785083487706993625164384382201916077602353766582055280805192274768444500798336166059025633951539077426010633986562224696696360069023179187794511973356484940848042312627959114769367683319589185005417128888998824559461344695463120977685856084173577840688311917969578700377672965269420943976648343447100567269923081098385619934884482571776892431344462154578925395511024941770146304861576138961889104570478744371432172054825954895878375785451406562174185559169481290687439628127602140173678638068019673991789110345390520239918453374897248219516397904407155103892001040507559761061717524661426361732748020335232736882149910199795233655047376001707941238235512255667633114981129768617126056990854119499442339526276353933598305349442943418226543277620645546764372856834123800506149312801027465097814862173814220952078327963668889921302628708992898308063772112993352071825548123454545463552331761597831859278418760739136756200385221919193135430430209704075735458168190287238340950346283235995863102060306137676702207481743866933431766330962784516395902111461541428151417522010514047909590145285807266168248469554259844697485577461260911594286629819528261480488287953494831586767543615274291068565918607813015292851114987512892677731214275196666360335192052022752692506072196317415251683847819638224344223860818942278768167998042611981734363319703789722086286540414424267469045284615519674743120556866204909979519205587333462976640353967989025804121506643751058740630553433087376500151471626833679927934345028124803250889486588660446267677193124552344140321915122742600460009419986583171304704121185918813074905207918471182209097455374564496445056814385606548438341878107125810298355506370022229880748134584514040992676747526914748062396819342111751046286560733776547409950416833224579732225401088274593068639047366139733179541186826726232250369733115720244823714349917119117269194189837345480722689409054365802197354095045283292180769761802819284872110571440951066392513082993494152324475643242519699023722150983244256544167750057868325600357279022662029995647575880569873079996457653333071959182379316831529506996525007209469891097175236067834975889109949370497077853202140746894433961443289681602921106647189804607826837014862514331329672661637755823881696759754285758598910152004755448475434211571675293112179983401758171248121618721152103020081831078923778393106325382332420406892921672110598407066162590785272057348895221954465772696484130727701240345237552136803190582976390587826215283809161824623896143059755363861719667216336106350506931883165516394685589044726715677179714776687015929195475630016387210256115713989252685089357590562321031530771704911070506182420264229573864112598386520405600801984535208479058349837649615328661817867837458315670832534819643473405185204976437739584915003022496491282308274421999448164182800676624816579340574072587845736814523717322952646631873780394011995739331511703174305813164139208843357106760804893297311590679370490449874334173317895220526026178429035613698047321605019067630758593838476065110336269706320114997221904822029118507222213608079015972906726733444199785055405969808633712659583124861158796426925454986108515727306945156546410927326336598744177152355801562822864167110389024801493173198774686486100069534260954895195418867812369992370148260109925747019153000027957780989294856290009632776347361562716822353174198226629715414726688224402978278917313447384231293370830526285870949781724994911484749215460404855557742771025639395614759549943876642075644422657113316749082216056416269823504330636062994849219093059654065152040714181272554957052704616680997169813528037975157890073251796526650967476896391366821922326028737895921514224301143286581792367677727772015924385361936609161148396410431141680773210845712829628909924497331401196419320800786200260027071606086397778009396311398646910009538437517439594049152555277102585094302643002971550966238907937314671614425967282921101233098463142439376682388963503174464891652106055802711113682358447522620335083513128193825553649573261462562078487333962018491414097426574038918816933587963581208184474508130178102917791926220251454428629935007144144213032370562590080034392983993871396942896152313201497898029434772295680721769188275039919395432427818114552961089802604323466563423235535992968596146691780184903990961715345486616960110370374830987326921551249344239417652328828689883516933171951807737079228120959122120137064256920152022374375491374824841491652703789953577896022928811962978761179384561921340398191473550533590949985683692210371553647699709308893781638899267459474040360171779988422759945312936778436012738559738748489777779075928217940339224485382589769655653162192998722657265524640226016010089497711849071043915664623510289634730156765800546235905677615116342642692385887816946074743754779513899610570044427749962809762197869273678344159907947259269312236588756951629820102990754948823977414851502955330637881481166447198983447033362757843141097955836423598286850134145794781283207033875041325651515444833701423636400307963253508240539696603945881238091811028394554710985222941528100267667024944114074363002582106857546818968460572358953285484355514428451341364691738638377260015543875406267212311265564019678924668393637255126820019633637047626755830675032987642771403240180234899281676567204697839378886783927382738397452006791696580309995038235880511914574349384616603539658378536246557604729782642480711700411815987829625782924859353555800509963099230858432151404882764646513207208817035536387392884090022907646296303512481289328307801846493681532245965342407744380753623881723295431148689420155570211092282158903405850336973596597276209024438592816749577465045792499133499021233187113828870534300964984376713611331409477112836087735241880792747804591226094684060497612150868816238635037868130153487101733784934887560417597598861014425089096307391846752239373840607018575854073170385761116996558444730372613924782424871806135973867375519750692853729303548936895945366360053646309314643612397527116591471646466447382026479349668491401057656369817342231052833790048946735625575326745145317370621910232225769592988932698717995789835922344213924431927748026953117591494264274421745252011801424500887199856333415707112933532418525008769040053408608690995925988545359394360927594875683459930764951581870278552327627891968613260776459645047338926026760674338975057656966214080361903865790574724637114227658948499361313652506998657927357825415016828637942903056621553753475647422216118703869460457499267804067484354273468516101542130611533274765045948900433108182634983680888788361520089698890445499582000941869463224364380559562736007374284752250421380121469989666837060070153911137956146429293510224104166697373503513043209475408594332051818449825165247518224966444568050477075651083603973831468739109728590327405599444672688319427510439090178512233501839592080984840238706669318839197327430229043228994309787081463084402437229125950961377185776614975042443938893115009444973795582705992614043881265744771489813578665056027545932848495275351432950517858525042275130759295109097312267487541689180164230570512427044971625188133066583846221922944550245427279938619101168245527963182256979520792976304483172538591674345437593153385073010598390655492220524741224245235985355638383868182490264036409147556989014050811146264734963686498281716901675453026768389566258970705678185409915378856405938604352934002356391781338190642351212618573591927061682487607022781987164015843947499051180243569164967890518527875082320840183009666370313355506140406623906705070218049192406488091205283092729430210094467826589936331325753804711330889812270331428467099462654399868255711296627829402532166063408870978403216345987780709112104455226626721483323984597789120433808771068544422345398086583352815554854103958369953978686472944325423135037005353751352660338108224858877238480610202674083660930142179240910122861721128786368607894630791141262708912436422010962471944380442699163266978527722521931376029009906350714788884136432573243052138372725829732139959410220329152189526181914179722588196947859206902199347232075014350156189361077489347090685208753894507402620151065095165043847867262084374989146420349164015051218145867331265745644386617220075269532381799156739996021907730021393692127598962946946236081081295454707891164997080966172584987596242302033876130148193078584441207731749935500734762491141311524888326646335453339459814673374232960325835247708494488198327878002408150510032725201639453730680493331050588867735032813030451582909876019924900383623598608871481946348756825649265003858173175938018412766569486221934650446024290024676360112196842319318700604572387265037631309963653659304069102217179923806316936821526240348631075740973801643616313373723657804445729627647403759902779096912528485755572066312726144168474774059583159270753524195110782342045207468624747045705942250354930966321059216711674618398794054744902256360168598314264110256843031898930055098324078823023755691455067734986311464529593285887458281771154894999332833984132228807810642957033937227642430525081334260092958301088284714363760102658856116559063897488170059929403777980561566121267863706355167808768200548361070286643630440632093748149611705403097508530688914929619729836073170711584050540801565945348858475142435048222549057016755986764797793088209794959880621953988299223500555124378180903344875736372714649216892498157401847702755134353282928624706814021979725323419231445580213683316546599612680980649627532536567167008095463012180127950009179465832451450670230804684310136885211054605650000603920734997451336427318679516955050194003816929584145392875450737091100608227968760311713774653330438249423517993244333652838131404841520628736525237606210984439245340652312172511900586926426566209646839742736253584254545079925676315957325538689813458401124027384961228460449007920694668592560868130541168921283938519259518039121539481278722542903007956609725801733480157875701352285919209182210038789659873362928328168495397906754204944233356493928479567453439730875694592362889270718888717734530031827380249454882154612975082726796122879088425507416587769006161214579736018507772648024134090106313958144458162246831608590448375164032673882129888704702542083032195845580242260772699024161496125589497585948299696265714921568589942819787746425167572608544593126510982071634539823576121338391756850546984293938894036042272086431248450773895759103852580277671269563634494653052068613663030800297920607426904155965987491793091500377490051061756302961606515616511002733903841856347508658103376280442138703557740043671814647020542009361611747966901333182251161908873760424539655478405165788820662238636902980657492733719379890198330348410991488063824489927922564336372441880740221665452695650366503039533379698727579392843423782004415227253738739067005266125547310246170815154058754964234904378536613686729535267338184544861811361832820485015122783920136470156478554820854420987485861204551778912803998435373582836622388003041254938247259842245309665396746796897187496291319156905120602405256377372582621488874536395019235953408546074505239824944199531259025576976543824315276223051151108739448173906773483366717092213595202416194632510739328388198527058366516691164902442180285545628939780845006338312874237330075723188522383546563154308429950574450330933827835525255467524606019766291974560670153938701754879396680045861403244370646589058694720005003648131446472459125264066182259044484540977530845979931285698400138054100674797766942825428671045905966585456009292505535444931718680539302045152629195227697729591272577268668830803601502795688248103732828143923471659369654051899503113426743719500918329830518786657647879400749355721125474201456278352023066183444489684855927515163449079222308742403118146317523769674689299636325521147276650103760115401374669302186291773765964973148265753384393485271800125256130787717144218349506949395058866457249295814745155370617237921262623757442435138594349626924092005838818719012821933183183598557162871553908580910706757969230411557912965980203412927284700311516365613480734770642750086042239785512898692009888231979634909701809840135487140926056100014168701191876679902971237278857256044508223551437696206610969338427897381130099765149840032988973851245887434791659979711114432186576072484060013870968466532601712382326185932384227472008146955233956332145636351230352070475918225503504489366851615601418194148728067834647102137689876541383335343793422562579344535164808394811363594570254354271897887209736399410964512896696777074155463865201657766122906396747276319435576285661663870251525442895933057422329412180230373039086093046034769197852510057142731603801207933485696564259816928135740509701058567203765542267853278241436096639319712990448286093192076086306216540226686753399913917504687918289338816362021298281501081153543359911137622948932818107597464475025129470185809492106934249601349951108554661974706396506532166941254047051524918781064771875444084244669378395790621474425249646500119814695926919749916389926434487327455037486504678153140624798491234426977279876532032734863066704037878971930005239734011423644905777690245573308175857078540256558260123627142244846881330488358447421701651571675900985497421977192830717713427511101500890468455594529244961859453464900395013811492393146708838053492421081709334437786302840474062952807236202903871302259688002235306102932577153140838427834309264632366408290799449349741189928111502859402707550293086673755895402681884901921075607153669874390932426968863564296710153636548377469371568383112451066557560393462232747388712267813848002976716179837892767447748055299273003584375644615262756505356134993244575242749790288909216811104495867072674129725613918131745309134104641948091950467187477292327784522002036795232595783505326368737700369119859900643130847631350380410397709680688402883666772756422391401694317918556764878403953210610217781327040892232741126614066907547220489193745958962391892312863247666456807064452857131243669093073204133458157184835188452094560856830956393245106288480055539149761047338786351828559745682277608465552973868101691955514954508834769216305707303113881215229274357560052767080311191662915542491845678209340020496250518804214446496739750286252802996388579667920839283713277980692185074949759424833309523450886149883987875911496396298406852295978157662330416578151058309329637946919441644145004955581981156546447548094348959426741291389813600911624097232691009062371891828543525074486017927638589201082555774563077304896803920618102743029493654706899505474228997969638596711312795402687621362593733763568192283163741347703038358823383061006993038766055714683499073109916933430023963564456174677385224181639884073370992114344749470820200339927848215437506247381881543767739003315433481674362486795242583665366362336341095851837496847240543944190024996764524443321049285111174497895772980719103987443837208843833204178454490003008914520012312483085740853463862973570386239575180144364858467880601661611257101046161534715016921335438644449833363967690356000645169892449021986835725881380728344228212519029090262535458302961363152747499202930555058225936480950786031098919488664822394786318286672381109107424789415636351287060426120959423130706403469342961764376595642506597655072706855933027922569050127780273997406457710026327253364485944980391040776522001204110457213096180150075120516120436863131095971121387646877203765200958922668426386378220478428625292913036925778368795030650216034332615524184904292746828798134664402078366444799128948660399077453032689440787999636480380511120102139748277638435528900139722996327877133875944118366005622380215379904149658855558742992708110296291467221209911612026311746568368293974194601786258108567588753260097288114634975239951924947972320266273360282668521005195985868025177600082093121113638167028127579540174719860352398087684478840659614501825727817144415993521362526098108998134739550788607205123954250330686733072714804311028365085842929701040852787752207242971902633392186541865426475986516280566207531731466996141471027501998747442683849065127169022389727243882909843898505937984873385162012526001695374631771643582889675125894954569900896351699433889903390047490814985088308348398418498879504094501045924197595707944436315489260353716074460201157837241608009714322828755685308305068159335945096847458520279964928357263641762183679702834510164264162648260985563695783031192003307661386968915919457366113438310107164917116068962926245913722741135675284739281991418038835059706549989521884169734848019160697630986669951730600040129629101385824996592058661518359126383306579822290125637977712661459117869140069309190750594191697785939571758773186626232729647365965058248958973210625678839581532520213328310637321853839485034987457306876851540070012637863848388424741494087013170658751183792013338828301476158746693163529830829102567624365535567388967570059298546008281613447163890066799346676719986213341678359414681069583090782660386421679506817318964609426186338143849008525127446009280662703624334653199367631052586497510192010697886649957998329910316347458342015874885418266774481315895254109339123687991394907059450321440534612898962599711137509230929043183499057777283434574987120883191435662671845571632994882942178029679428352284601404091691565323248139635864502215640674020014552892903556651735503868170518398353138798339494569845607769957765988682071762545069080132849790545646411735444573397639035454684130945583027989811407542746414466153954888115850089304910709957066242987005214895078506301757959660464896382887396952514254212451031882678441232079405626404738410668467483937055994253724117126737742640972648275382046900929874131056722741521509241295444695429261657331033522689432071021206783934751961148292315151676464595968335728970516489656432787896920232829062821091909254382293745613583102442344132808127683997789888750746986652905854745020976598069042850632977516040801829234443876313608914434683949511497310239178378832131734579555199476643987472602247884345373285855152760786796559379996238266256574870766816427472766520279126206235826518416005696921170276220535361277951199716114155493253962952931455293766837602317492382479642750959359296490164684489506506021711669632309691018860286782166740035219987126840249376774829837964334142578313287763426309115362724316076479679677066515124497337800347470145086036837137766107308046597435165906036702000609665367983177626516116616247278002218450963252860723998568059875238264374164850890541677062320363731941670817004798952685108745405699829023749214590312175346229206912630192913333488493191031062354901539993450286309762907991513583019470560103172522659531189796024718281152074888245126492942807011493338121721257017297966231012073670809780804318877511710421379320405107245076180996160556664022997231754838156995227706103478639966648210242871847357361845384216351872552342991550404050213073751222956887057324186723339655110404777384654786187576221324204649423023785909794045883568577148794574206652027232802698162322058721287383460347288961480909250352550210656861472682052630768995585800763988488606370305762134773065529896134039981365368776839896539928193981436584521610663927970046298387204355631742257764963375817836612110316528814701437122962481754832281912140105227231992295361667533415312007225590209926242143339712817825129325072141835414557511546510796910023311097413234162032598581050153408332858616516018300825328820421374140297991385952380079939699301934213507356450762353678875461622629936693409960572230154509824065642529832648188977722087692930907427071482062757765608371551076952374554440013517202118893602096180792915487054775026015554463788741778543013199553206345981257380511804497428032559061317893965342859236505688748059485834932261609327312040975362733526548287272211434179555882328148478951247215893862750035082577939246130139908004104701293415829461342652476614523447710193095027872213878436534544236678810395213553521226687545206442701258164045113990655963397046631782342387127745288006205556386671035684876202877392952116774865177509316745012519777952473228834026893304165650892908890350126324857246497196632674358129743620686715638420158599039841870752284681516370120981056416686595928263504279356165144307356948331219056588714081607759697485309885653307086648132073834884872811630256714355394939218098399237697692746584420231009948384111846389399396361186287767552854655567024824856690861051009023112709323891554355108727734882771096310054899964463313678043063437600842734150828647102244195667204606968249367835936740445407596417621571541798474441781507762516330844227996414561957009037464600127350462707522017857078091859854793205290369100636534561571465507056416207716046799206023827693045627704778925782816922049726698506483450971223160269885321238013895018667778962475008056260160413790072003369471151162707256337473904723928566450748906587892567427047841297837657774196521378130896288448379108878269407709718406246480064498644166617096856135068986291356499375824640959033361343248523297434399894786666479830787691881846929519929774251356699174436373758602794080862369622443459435034657101631331660411199283051199588315748959702887839249665665133123874320605660806731921594504017607470663152081779398888736362900641676112712563606919733024229389325580336333569508534345380090464512109297736542895545354632275286886991931216336197987305389298130579689697709016861079953647939971821777599769749092384049196410820789883159803116715520544328641106548865723329635485849523689233864203748157987006171370722598329107341700988454544116234451229467237551117147541665840446621901522255193770699628312019273197382053912537056391504237107744448631167816470108030897480477463286995927207660999185803767232341675172933679548461977677321782707976921422490444868088809550003459044949523036179670105316033351740951759127461089064865113706493420147574741183087682270440631835714533053043676338424868349349590851478864433574312683324766444553258291601624994792474343070089598779554776125094284882901013022180252164725384637620343673457020007021856064670873481114414547161990771002864644465653190926979567807957840435614740317473071843499730817795649578108980033524528568896511379636239207723710769584298681013569371100036292256963126713554579168595294762298871703557047960203026611162240723577204166720126151898801956626286041738992211453149073238268703407426881764336232758816618931699793965466898988246839378517012690816901213290298322215881855782631231078849826930723602686734663095903093810794682850930234020483279268033540206621869797853962107383159983186560282961183460556775280026582248060061311797351460795461858717880070097165257349312164999713891644987887070906660364365816556401661935474523391891958091251422925549809687902041982663573911514772673779600725535638617061551265762645656688683368739794685939662180862385971922809414362142294903920476394219347075537396142796754624917715811875427224162502428483008031881317054827452570989496178845565148904419270315496020798589849649223555009506028314160001059892278335505118666985915312246600326245010567964726155785593066104325727269672190187283308683718811103769835796670759733058996222343911346681492386005807472609242880946967731031505035087796567954782568498244114902483053804759022339005612667691664724012971153794619621674671613152483188353368458610123865218217217505481238073578397115088935185606247497418956839439410486421618348725560714939355887684251845390499481375402544372542845478422057140442442563730795720668698378976009108601075947573183450604709399237007051229053293220473836225822554112839282911195377433130856956453647345127703006338831130528726504410005577729292088694650613794401339884316891628326656351465036548247791706114081023945449706485141695002671566382545649471838412118992589412248811287047601120597434937152938194909765148953630693395549477823820273599478654184489602054074260279372536855841494676991796428903941192242395616676982713526696037548424277178311304946040393815203801178526515690270777676600001639388112701894145298585190288488331202954630354448422660820754233394687177953953188221262420380231319137932541138998280025713514404917704496746651516727437442848969663405206884040238085848928156992009932191812195145229579685930869936088219480410113970278833828043620969030632980410888728902498117392221877703273888851451266108736239347416184699912892167212152449364715198645502831530456350784585295546137299603469799524936102840365093787711269832188109814312447571647919959998924093385622500247521887240419438537955021412654431623126337383857191673542229953559217074441755837559086125552137919592202054655421611408189746542941563006288741599391397740501845905841945536373560571882988739777640576069804621162487856862166095136537404756710151187079915977300468932367326023783783815323014218666695307810570392773392607501722693072501694946096810175543909517519241349963823140631153506644443252835547634738636984316827924894114656753031922991661471833865611048965969707659677064336334787418005835327296682954810544558720756667430470870784965074518865868863995190450310608715351894233322367719129230410963617445472851958296903302439231081343811672167318675690250721679933483057285758926696468379125312964809425960905531840944966199407162769889579004355984159011166003004703762209318898267388040344033243954669442470084959272455181587185060128669101116320816875116334856195889764141744107331177607440495865535640196226373977922763404376661366530011532798546745947067334875665387720096574030705066232864731406263537424507220046387749084337877570734324485150809161678220043374716088078755105073509924331027989788461711317279342471032378975760522788142345351976271437266406179093851571070682898787255624916798544558481950848516180713669968583092327402932962014041906463594055203917355692036482525289942709741362625199414962524196727219083304166574273747896220116281889988881572845435113566064511939768014061475970483091763096822193470669085889953344715286041822228500070884496878231308350908804603658057660740197790942551376782693395342255864270550384917907635464933697373931637108207426924991542788059229295371550688958086446941326111360778835006678552224829080543339515755724684726363266659625905343168316585276667256973552478679787365692159215616762509421535078314341418770821751622059229422403508622236340494257967118408710606274406452486122215751025482604883513318597963427526107405210238828860235001415921486975638793159164090819044444564116432187809487900510339538327749278982346024654318728056651989029107707408322319781797618226815401180327607514826732168375044891916281041793125329019148750263703772923913237564758000610736853062294477065597877057711272691505871524660428565940031798734102934890821923299412347100411244104142205113826338686375491180371876824729689763088392526203167482614992397092836586108924505169142845601272048002709235724373935914256791732988885251613391773635212461181984896595345903622959801458597896098805871853017256451992050693301911227632302587905692693560715259577472298704368418490519046342383668365035654553772245999828791364796466946810927355216639819884521500166238856315056339673300837326397066942769947299602928022471050067124383044666819105761791265277365909944525222018558525696006473882413837688591087084171615342235301996258163572168791700854103888978322405042775745747365812994038942610012139967369524949522584389916241828832822670123853509334337161926501224530914002858079122112575059196950462071520897422583567705453383494052192802228402010658209831545667215798888211586158824967701833875469240524464778891578032070544901289580077286236806157295623572922154571621559493443171291377475958513001953545220245560621081172503788289046063825976981496334925955615372463460681551664519086036765020737860182531126884533138651612050942160407659182320379748950859902461610504348592786565895277813582273463198317099216275823244113349104066860309235396812325181583541694837583385470605744654857462395695442067302950003800961397210522972658024695164088332644405824430067756954382856040379560800364718055988745324499562385838784746635931157378313203820942105478566478775597683549735336584485352137285488167177429419468482111908181899508505911104488562356397608343136683548772469772489371234006350916537016476785589207491682379190261056790511461696108101893902968515439363938214894191969969892130676468921453278089674087796635508000272404002088770363091527909539623960548041775432608838524768709068533401896703644784976188281354960107622314087608378554793904739953110134187601027397052112825967219871643217609106195843770860522192674811635733902980670531442393584206560213721600436572723211141542642794904715689004024932741941026765259686383249313431797755594749562186088242997754202615996298168445113240078806149352958393315255550100430763215149419036390015072383547821088917325325460465162925744557340957030333507427677857227449756729575510617749856984884328289581841032381030851102940778854126628785005615498109014295641666885280342430708828223475936707604594479654738417498313319289625114413731081300562446403240817266225944232262814916792391259480369096428394285355004169325956421060114170339758967704344365542974965456132317852854520958688153071616798590150461495800585466649171658955217019003906149220191716794625119583733357690835853836251433897962395077373566213923277362943085587470288044333302220023871904178667686122862265803748348858761068428386028843502577542142565422404572814681168532794839032643268102446952519946084249175249605841224727693743848194332450501168684875883616263654275099027595038662397835087871883223039413161063590524181317199106900817388617809618143952901449078493403422160235301079296182602676145841165471136825953364582494836138010065749064157258235729576659030714009640481313451801503232389595788435195125985766178170523462368347337519683699574465909124662698547746222954497338469391769806280448187071231268548181891461398727689462923927235380906022381193715197659449379266003850765139176188912530341871579679132623345495773886324093160540973388633459837405781444528541413095479810588785560841085434389534180897013899162464538088704261994370049613558989835861184237887050722953235720376822030975861212520204922335319177610235551378629673035301069151066972870181594207309267071061053870709098164158549795023876401991264646240120477620587750390580025031739473631568436927175896418592347806594743247069148393351311647672191422923984215997324593889226129774431345707190770341878572834383717692752568333268300698312146439348332325897953387375808020560423827627057959090498780226133691217426387675461723318095452274734622347742877711496843168033678390227068967717011994779839826020820048659558751937264646819725258083828038889294455565314309058832501878725278836816818167820624316884239080242965007306851098940810871326380770363440463815745890045004755809478192560707283049185452295817270898435985224280355988584562677072936943848342624950083349216658540412975173039674031442035865163107547373088717071889758839072432167116860840914013422601552363666869189198388628009659634745916749158592729314669429278626894226579793180750121078499570071527055258151206884709720868430898495929442038901018141260612909636724606950895941889862959294426938059976926699645691369566905317728094151589278843429599197807720964685842969698877570523432161626465452969564801422065675847367130962531131958477230901675138335501109525051501296817844082211754379847850447876569262188590260747411527384864344587639833513915157559728678005506684524127984024130821974822160434283802555614709389320466224791957608871417742202971512379805261020143680256670941100720002454088306303773928263042335988898502388253110669375620426607219326824448020991183825945579482157243342922950889297280477764076579454729051544857648387447895167286247364007160899929884214898852311860118725519575383791383970250283126193695677398273430201970112397179227696002732379652734061694453219571135879796340102698563260650989641089083936311182808609619034660861105528760101977630416078324432902208762441670669955534660528807600418476205303346157865684150371541171285606842016946853942458730421380919415447830203733824461164893995462324612574921962483126569464090182750571805247782763443901839814577007237290811996284777951288863912055696272969769662602339352778600908525104160796289761983716229257964757655939569112993733217789589694535915853296497891025862038023287892595756080923049944522180537292854266526726325011383804570196396859665341257100074000570050363529404298280786466111922841299209142567424025397517413552870275876025794975562615682345398201717399024410661225415610004597403311698961786773951376482003386046309444673013288089042327592044335376361196469314498436866339963690439222601396678520895641593012119303928386179269423030110084799033224637289001801609726225009394890219914207941788891771058378352264344394004606803861903592486720019066725791847598493566251320054338606067067661362176103343400522681174766768456139433963233452829053601373555198900676730264547558473403326239984574106649032736784233593480292545999864766102128163857806365687290495715684802458727059618687548722038531822152453446525700822312479260180289199044882516225143120333639196542221461091488523479303619699851171187797892119435122410758762467958696706431643357391203533447191840339110775339381847882175485428745216486577681984477859714410006056920925349155521524807075443988746234321117700622979640130505975419491604655329665031669392246715913120352794484175925837385016402990295745646574994369914550524140111242904073575236991937355139976323578261499427382836487304319912876494856122794751835773678166713740732427289273603115304044574383730290930000315792528245797583978640801664047374087340910711007688389658807251167622951183787920218221459258485268032485072099071476840539838593229670745469779624980166183476450293451323973005870814035383452744492160507963197819502672144992022078715158661384056778883702419969585910571936529442290959730272283729438956272326091645302515345923986737847808934217562148709482050197055439129139703436586047224628404425082811354775189044629229845792819961933100219778748712977293262778448314557504903759157978126699062276077031268183053936069888398534749185024520229792380575703915808203746791103233254596875440771933337452555428923895368056884392363911944008166428743388087302444309093802321008220631079561489725504567868971314053471328749069794635536946804532911976203250338614388290268050047953692721513720490674659402968814155935331179951712162141929889501003183050359771478138205273391431986296205091953498076159123575229634272198990354609404612499451941546586280591930641915872406131941510908549328978019078755579661716615854507673180581854566243267947908642933120336178466401509696333600911582579139086026597772131430018451571756467618109689924360307729063213225157668367343970639791676439001827525341140086893603230983248977085409791930865660857508274713183226212179448835927162273370639016738105764421005091854320373042200167654279910006432868350058030041468014436018160653950259829998756388297206580039149664213155732764164529787327013273115460478072745218964429318263779807366390442957319809501807776309613484888807846857477610537675470095128038746629423128323065893848696288610099017279368426405046656283864936802834312244354049940162087536412598049736135038324997232046358098234985769596491364951996617954973980363285215598568752964660027150637339925242749196314234041982039624028267563235486101509759453418567780732140351717811236280977835888869959202978973633494823355592448223089508712399909438362167987106009154235589478903360183218577327110820743279019956739756098633778362465932575314943636320824318218154314573593867101214262894213048977056727045058056330139066425884951635630481818658053842144469842745187863071679705294592644445986733205680101124248886218140527026696526561632893688044043527855943352512050129810151020120007739884948187832238041466812615247459285447914438482754710733604760254733287171672548651267991433642535553212766787576352043598856622657688190318085166146818678026260523714772544593277701508910212560041612457520976994214902890331251699849898331089126175335732655879767585291205748923420183416934665423799729683807812052630637818370880936068172329076202186697355191290158860129651865376955814616026493674018989839875921112688559185196407980039233247572879406054032886351343268517506661351517605406556340930426437436246338290161228678365814900666267398914341728235738804492713497016452477288610450798064875108168395154561050144371397821524280347935877992711981670190032253035918998854719973756471710790283132761756777941109827761723347145694413149292417631300506733307793895404059286300166691032748543049284944575358251318871739425193805062628050523196669358018012304424150448966951117363195277418772786528630708937919927259293143980784655892115152005096970799077835916699201531204584636288184365564336011995797137773560866389388484402097850714903674735651329372427782443072482052847278007011349948901626906116299079477293253570286697262327092075595840053992938612111682408277177699744436012975377088522378147229937419586262385784950434536086502559844383090366617271497721896433558062175962942032475275993329682144113003961755484172558546112231084106453029297253957081906712830659654889075873086093585469149484162215387778320670218610540263445287373625668455387308313094999791378450188958233143866306296756581703208583999894420664909756941297601275087395636336135426386836790330467119360814853763945096122670374011528556878007424909921564931228474488682190498213024565609436605561509989190170043771302090765574460091079902223303713332666062368539480947431641158751549666943633572420122918060189147279177235989232414070346928973654702867441376191722327994607935733700707849421103966987824849594833727077359154688628817440300291066427900345955416188625429523228992038350122898391313036065645795839311782870556326471812657536265431751136797864447103428620954592429357537102333778694375814754473474283510587956579067018031980333112911179664119669319385593887871141805532562317573727855207799992446314463215829456382272389348631350481216905370157809730169276723968085770192764710618760401804835368601450838742087513927425610894893482829121201083590195385380512577237228434926892209923254972169370965398715192237528670844963351064996516247006863768047972288285754701445736164724050764745612174782904540406925266103414043841567141450997237876594019347687053745145354281586931347588385673847494576997560243214290724713631487914822162657568532321594086715808377665954766256941848582920321957631608950741508526096729319700505429720845595111399201434528100665470401568317588071796171335749734401257666953660028890780692911900477615177217668555292004512325051326369876797034314345267890861104023810215696435353787262430764128683847306579939816202323176409430396952976116094651791439782116732129052913804742232632870995124983047149214620598405653499203403362887133997080641626594741695726172218085508954942258044549642504942952613997412741564977213152640671278847633940909986987272275926895291108652825509190138002049058925451423313319745156858066332873770014580923601497815013946109709726151212008065180380912126635939732335090103686991368542932791049720239517059626761387977848558489857134034613108426013520620766371507008414598984389373019028744958581920266816161523351021087358212130162906903091712334906033005066371471803722398159692579624194204474524620277978997519516225507523285170655848936130192981386788532746497899453047418372322449365596866352756293233208630169946149450757188603071595975317930005807456523270283552137019476249233408015714372901136754411872346304156909326700284898705344159651148357915781835017095157988342484995258858412029425540811690856362618346945852201575280702340283592143059799793848119162821120437516594683165091413097157379958628285484768373707733241509791838407074154277975695147788160119307412029059986008340743858409913186475412923534604699239428818754566249726560291851402159452272157125318768255415090706758687752201311826437799470305738256899037137367458428065369272281934304108801518678487823938134943323837260735401585782137439993925049410495321441640677160222859962169508192822109715071866620598789302694765555753259102541444074081184595508538023153513659294624407755526062312111515049474985029186774015707157958470840205296819525533690086713718127143957996831648028210102958980767546072002636765443138751256934814674582193492651185334515499059950523206667135086397119570643898823762921341967315073226243522363815951863989700774934537675584758485498156300688445454302108907377625894708900023805427999379644636394907662370727059665254411572416950331965437257041777945075968731111793505018975161954274849108634603750288301986188664605224133619899877803019055907865909054691252920340471237783881509704909593939477737576749259839911788071723917413330363904437886966044461182914856660454943553867340251430853898139643778698679862228768024966921032902527093079671255000220316632790140141469737646325001189313842048079253188883326798402241782916771864750607573950023341009028510323177746222144078063645675562816046855408571055875690603620819763704982878353176109282072493043674931298119288891774728986175290847265712237859814271692050746004770488632227759425612471888837569210828642427456940782281660083365235906086691274587518285273681389923685033027660795162614736171336237628168118909280698926662990656124631279637545074826648032081213711550481103040379242247289255175332586698819863383039605884751607253723934095859345908004337884645165517258210088887773590660697718523031950621197474955002083700887069198462413854749561660336603336636763857591221115364146653878297995551320058455250879991989861142202077609455497577244353881844313988614687918221573486238886941101012795440414838032254057001683049782787535247328519534980294685598843138093375012055058128658936701379853131390938710529092201203560623171987585994143824735900768903547476896122022720523602142459522637205298713680491596256156887009966602391511438229504347143481557747801377667286017730183395999491755669900997680451435644562206008609648996095174021744718442604499838970929296021466659350131620157506238008407711442712460506893049004182884042564797037020264191275792255851225169959685506933725110186902405956312286386853829026529936553818645318662040087091763031365193315392575726828839086110173023573039557868159394215476801009458651702874425609565829801364553572162752901797468366098156827790791950036543487460925270691897487396298561728183100554865031286713688602756727778820866653755905550617730424297334908263882918654210419996199337968246242198505588242395467705069310834510575570261566386722193663475820088731811360586112983264671776048454835632855176838881529819760527499045914407013259240440718307013962770307846897672035778625363429281217717542889231716361575869831528504328892919030651840401767270591977522849736019798580556883768266341383858202976464628664082379758827418856015176303289882465646204632388849825176147408613468921994258721676844057536965022395117836089182507094597244296041877064983544973671430154531269074643818593353093470275255019647815153472800316810508562640603988771518956731876968371108705737508796010261822414150392821555659917657894907002829541301019631979929368520341893705737453634963659771660425664440134082277759645609681596182950106463578785237158411037837425695437982755179778689745945484263893189843412787821907155633247896184623798965645282093375592682993944284506546712747919880082035164905292987301236246743973376165868825792747037601636132252645090481081549787719783822509695349051125778619930299241461042855404903487693214318518891453830186810650153864144739303781322329684922687388825310998943902050839968482773529450912343905440747830225302106030485870499473918493349826473788625204582379848199183728175008959729382108661608625965098513793500812078302718713515721602106704714584410190643317196108833254321122582331159318739813584351582539764556979648021828716448169965733340671078961208063544704190082046325919713651266848386843367012097272653547492889731599505267076525937048732496249446662952507834254893888780177599956845110642934695044205210963162998468393781941577665300081485583672921989541714910664659837609382206887874218588084341422842774288538321095167212064399181503057141809439704572098231794475956575318272449843804252304003613706079443052665990098816747918073122070302073121133138136506844506329315943686640231294253115931571125623653570325756390220510958101861326633066582448360697766362275315845560724894249759608897158464806266017523273654357927674940725710173400320632877666805528057106068405890786344923326544823893106746470633500906364375505911850400725356166442086269418794101081163545448315613852338048994066685827220219162691619783977904876278903009005639276250894405487360621288656716567801532076376198623675627950600105869682799113095171982449934514964354117661917975326440624204943933097798519064147920738005123773424641986302980841742889416043085215096994698330856043572652269356355640754169382941037007175799646857826095841147701641774065879183725716811222070091785790435738370921389044306713364318808645096249280076380969838334564131495952592049547222430741030829395302389435956602934780412374468830496589712513284602221961187835228913261647917199795639368975720342080692725578741283738693537697737526966056520312711263826315830671868428758943273518288361912757334986266123444955264633876638800124613451488642879416456047104804609626988976832164394082092491459727830727575990379287044593922173109146724409640879366445962969083913365531841630719210703438130265748043402851435501562092787547239192918565291839564950742512784186211053971964612030083849031574830917535048682664289645535097204595645054252619012713880760934790312900296167883780478711428482273953590621438910055814539594737050580514656861218627105350308008564138673253059041999911171887448298499332050665110058174386183818125039473402443135461346363924888397554933333952728513414899447518941363867859106572493817469410783944738554737506925863239711902539568182394155872817723394762071855411878856037462756310696065484053683140577320762009282116387777482876616871652552520639971294258562866661879406167369964114321513793923456296377942051935365260598012603898949929514574655153625083559994347961946280965171368720701347971597813058317127241411240723363093289773677414738264831611033720717664539130436235751893045264272065591773145034704800294670244411176872087940857103448681616321976319201461743650908982210881062219587052296295168614588984936661289290589308598189043917785674245720036108994398565517381675258922062851429747304223952526078777415599306391291021209704132465930395229302696528773373271424618302680228261910760293727687973040527941943340685847645629881939214650261924605304867835435167725824366563088285196601768760727311070692796929882264343366971341302267490769956524089624588708652097154699033149937181335471526168083707432007029971852582535831483010020752836996907089455638553139276740470002233356886532336057517563914264737693325455496561086185259725712340961236791326927391313261458352877241488966427432997249235417083510519472576962104799354886562541145640088244477774495766957410238074376719317502081594846476475069434246463393568613945989451298287887658900761211912598919049353278314005081555686398846341427849989814617563063385811548241423811010191164191938010016330167643871303581947289538693759776154284379013463540610590691799957278273492989779491532891577651496573957126636861294557036819493964696196996119769356469017609649813221836276794719376996793156948084737260953849716776211198933249426548830020193359536283432206072101898104750866651331389808977522112747282149449110391550669792781344719328345628474203678631733857038223659576388299314781838975109095306883205001311459661935189961669489598481071944259229568391550812680325188353369838888026445682325421372836101116038909585306145815323712243132775848671499308604700619726730951813965874643254643329523922096575565821645511345741845570015989810018562376849496082067945782415480558618232193718007709625212161264734034652148589085110958053989289235274498353181892974328547558357057862553259314868661568046985552747016869492856966277974409160989867304163196024635448606802349388326317699817836968076440192275692182745593516131163995438197811844011052160091725823406299183239969834680407607164481042932854019024186188234898553250261274000476135149629523614021843871120830113275128225178492048949941685240772981552082398839789913560754450228308743411617298553213542427746300818131955153260517808768452271859939258684630676958760228191947843488288333038441927595303408729644133404144885714168324206801788183696555387439911690966866198586663162094856934290449613420172761844298720600608624311653579497706959381692642334752065408709880451360389811734440068247037408237766166679424749634604304069765032730860428902630860697633425624266798361086765260757247078295766747871026431697315843008309135252841380215000955852982642990787030947925910860056994839814927746900092901232472066324117637935899693154550276299227362751232885100055760223138790113709756700495421250911041623008680472427548560466087592969309402275941683357203464917805476592239763692791708926600807867038769875856213877360843853950037055765437137030522293304034051100246795215986343415779671173674420527136595097108555018884742636358736892192419760532065206970547310443863828907991565716269183402496080225304291966667006187197806399679579780239150247072219128555961897181834663165540827340047151980047595036852186826582083390725341764531017185024442095316206655256818292575249473744918960389375729901708059288800939524429492337388449676737297836917586351766281212266101167693195842583961881820707165685019915826135053490686679051515516384263452623242142618025522720105251374128846940828404698823428847508895183070404392447541072901265067488741312644373478638394850684346519763182456117722470491582527613020257190714919218132173659790071895120602847647629862237300749501579484628720181622091039040149023659147880164176495457789294026827137209368601903539130067616940950926158530530873218247041033454343630809532397336738875864619048696131639803022795487578510907515850732750473340329890681552017674535650118851017336605231838872871029643442132294811443324027623641899963899837593083935666805059301524699940565233769401898226882135610214870067641118031567270681561983635678052707282397917932746927884606899912760229403948533014371773464123842973694574667360881519299024403159285543480899355468572011504659546371509551907473531923069460980185749766917920707062604612531876568573805719977848519733227957486363388933410478447916686218706895521198499040207637658875546013352029434936687357213191958902373893515043739909961057185593930982060991692820859855149041641961916166873760233963626750888383622776601269407279417798250396435301815329939856595586280445675276731199977665473986188435493480900379376878546748277907983574813267903223290434618468734527142406918852500004038279302027615481071373794838710051703276358394389717629155151202651430928128680327017017318739034393864253368258278930895580299886815221143448842176265492246083479211338953489211761997760105038319468896825392572104141632554925866183265465632908087859269049159507220476882660379984939950555502892852474418253506191097373189460045473994305996593974222623582767082513827851027640695372032136643631440926636770652236627613111443224572305741708771433204231268227057040216761815179615038878002471236027949151886114665035175001963775881441656339675660162129566399638352784809430655908733577730173500458273099371307043353731862467284461126322207123714231727887012013839512579242043080379757163435966084214632072243482596768763095232545306341113018740257454764979980194566342941150023436009562916174883360690210739322686386126792358827326980810089829575166903277953039039792782752811471859427400882738262398682930877888935010475229634424723003331430137908041640333921620340987760077130671464721448787125673976579525312885978231502535799203848736704922135560512878359725618282752258874416496966247117670056100207102088207066493947120339939163133890959360332827957908180474420475939886839604559554857038383120702042927263207207729074238230732109355503607985130160065974866676248472537873405035862772339907171221279816404152522595823640343053256299882282742342730578312622242297629185626806640462101763705216880858833286783458802151289688007699797153738521374382221457814722691322787292800836436815361738314929249498734182352175005410420786299329129152723268464416345731976772041034059003853923436724725611895381232756320393983621782064332212722573814942058953764511603798781851863042236470469265223487473615964535245169449446142945512306987089044701126117070975007677393057017104088635035681840533946184356443710931722912036432061697408629783001159579010908303590215665217209277645264270050352860411894347099065243440814055504233092085137816238867659615554791716667561940067923083892935938366838670794552203805438833551562114161197130871703288165860319068954836986622442569689384497734809798329326342118115823573730459369862071085578194500162255086902838135328343147198273065856736201272950405636024815150110479223479181689450178245135379737343369624736780107795211112212059483607965284168805959320205043707862156633101812554416468459723275779629718916899338652633173611751614246836014601794328658150190202320540561810625468661254289429567499588526465444118501179805443130973986797567698371464006464522002278258650160429357090060449968494465499081175720486776331776005207049851319586821374620339038877023858847292843022851473963903971115761060290299852148700974454183176405613589653208904748293217407958277309513907750325561260239950182378723148595336474642020212712409908994332475677617371632904089786624679721069075787505517628141895436115779535163827760133339145877049162874822783481863801458717858095345218626433072254853927078262797621264385843720769302140686318328614391510800967630633623394529195648968174780424439566449699825293688008400580149861430381733044214904862557338604806603694010151599406891013194422027090009046346665694688808156993148878776380829406898831148574915742597084507635599321639713050317419570232971189764698421802131186052022136152389925771649209451506154717336227792622475302059841162257086185791799332770046327552146362159041784529085407493567279343788777492149514245195737991133149029117117433120105703969393252447285550574938863141834369300600386586115935365784278055874911042260041690384049760006976643433731434735881645573955660217462804476531185603109591146706858071537850932458778512951052157063204259404588975512828033064383575869038995885523390444879494214999056763124820844901864750735914814695522239784438774711612455994322994248883922312290599573462843401073081842901268409839381881171300115771548675073648161693635014905729739284309922877132760667677831227417450560711774903540400625104039675175997316989774179272247834442666935475716399693183055874183511849971282422794216090738775186819438560775013116689965952144904164569375763966698665978646496982042392440243140931581251442881132182726744928385041812753347703443644110936826616630726435487212429502147010544556155585953820202903820768864349734533576017783929621413006601656062674271562926255068032110553393201285171880369091908776241935212163249591887019119774749692550068436761052481675491083722770013873066075555288081520722266753351121378494298977421252763447521758714256553032302175834097901319672020000512168796687521258746410413520842049569824448920665736799444896881126826748626525506658270666913188413717832750578317359776731584660202568087735680936099944343954215742698900149347834364137137209840785303307651290656344322963945724627005531785954498759735799671099516514467126980571298942393321715643810498806372298953940457081921072456352777699955221533587760417623001309934858338164570841963940862719064509168218257352058812647728582900674056711904073957107381908845920697120080224756496576904802982092804744301874182641162737816094567177037303243367419101512107597774550446309925562650443605481988953388313392292951916994138424736325769164473545745446442912146106319410304388316290176920658929311800279053918523805911978212833959179593973809598979327347322859721776504625583044565960443461782490776428472679556501176337943033327050064698322054255151480950741139438698347521137854602142794058808755146490808443187001036031590378791117784906197509126511715542820669056016348990099965285669863216393275714176950689366905466279955297543499882373117977465868722046140726816819117315399446363823769041661558363664820009776448370397074584997696658800407547674961301053732992545645080164526291582847530996556485985721852514612925357523648067389922571722443797491487029009391456470329869407947488535229429916585028516348164545469406994422382878025353070716696584244450409121553799389790319204551588533771386092299496037671972370826539195900064992396882011111581687308004306219783303313872308854834269146514392948633895704587141749225442217826096517754218212457314516630773914051580700852540205811683868983661396829804385429101480410695481509435702736192645023031925707589542939111797214559472408844282510603516440113918580438237678978948568058819498850687817154812918654339277629959422499745444398424773059364395679844595879029069553465603253115578527492127481266935283398029792935812602993085668601990077175841396559838254584880798575547995662838297949963896326140753324002851295966576575518848258002890000437625881639106107198662504458971519414937349076397914339499476354350866750775453329066225236011680021250208883756004105061125264987787904513289335142933852896427268909122166563681802996208926902259841012113154145687844374275551249520093529629722136576169754348282811607327261647853295961394655077727128942746994347035903951531575478262946190277363698614407240962530152950369908245545773515941985760891187706841930221000427131587098114047082639103778606865119770751447387085399963931474607220220930956701492798129376492911198025778293134165338688390129143065279469810825567887135416882270315116584745600401944241687526428127975164130359797734197888180887294233728494414488308765657942017640651412015636479425790270966442869404226210628350186971538520043172460260780543526468065515032464733269135648190212211006425931347541863660616719577693918362425189694894337654757060437423449156323348749497468469178396443480415249158834758578776127650402670161792853792596862978851943087621340211149164801740249535599726961489279536786728311863310280935463444660133392031055263063903208691930436307397333673895837230939401217461498606525461621179262622310028299056409044229769009242918638584762103787918235516337254304436207490388108383757595258872609329033290583518213436073376589334022300439252393979349521091672199316686825959514132685254107418901816331221689193314986392619445900786899167614775219098570295659313814969508572668028784379776111999916557876529902127362537302150498721985938924346344388316134229860135559520586161018588156629268166331742032560401896330687388655488331084422066489461154426398469038052488414409427708447676135816614263999753445824903964915823303122613094815114760727083761735301745872299373674243861757169727868973458724724192975561362264326798414074803413123497369863013810508552392005089763970712123125422693064897097490983942774960706851722690455403296827992867869426043158839720160419074661308253433813184803256945395417682377770187511595184061611607439286143785210505673351554281730970842680341501746566730277173465601695457236998216675531731357914646866983448234710487233441184831325343824545273298511240780052824858855692955650851896235223357536804241647547498219086570701934559307169698851770989754687444813312161098519192361658263345489879974539140786290186071142953820244746232112259218765033551009324084618949182888881858738758993089397780037053089613978938741958545489489306055733442725185984966534487885577045801040986442434017803611263110591748566821147201244475482891518235701732868835750477529729419241266610524122328554206739046101105288309193294606731880030135995715851761250039797087198941087498477413638723340892739232389068907773856369035290153797531995928256306088247349082707131888016919286863886588729449991611646333657393632087462256600387929760262883062451413632255798337144142583265519789545726583365652961245248886350161706642030560903870162420682345250195414056370415616649389879923007736534203713960096708179921284059214072609434220225776040839695208612179081359393676464661945743718526401644310148839927687960132742461035330376651864152355719178831055464635994178272205324622322826330382153444663433448233426681594145609482201265570013128837568339590809497356375938496348300956029264620658651113130288248280310376520682024753331081968581348396153037879873335224050428546927200056639070580199747816390501394215571991307382470613239043909901793575120877851907399204773937150438812121933190246104311030303964411740954675216987607929167768563115245590346101192845016998574583609714276278616881625418015802976847168443822944323665921353882809204192632688510714000687902441291737797246770650025657980818833602486531886211908728974791010567668554786299377496337064567251321902519122186812224853080478367036808408710867717090889586046982660453994876640538033678943255599708546254072618015433035434213374698600431225858435391072530259060646504809262496198415127515349958431669642148408595879199577667807456758405160849208350050580849485384285581915946418250995665921579770627922267233325004361862927594424352913951036238406496074512573484732932754822001005382881782648350218786108043832905570005691383381779229425823486586091917929051387044925040483538705077638553185134255516983957204210885561312457808642511456295227010769822076603425728911463915408219165923776229551582239857706783041020679925314240534776373961033032940654501683056501993861834797962608073063665204358170750731915337247730273944615821604732292601330239338199164280404259715047600760229296080401108871828256244435156780607532511968823440510419974227828573586537603459065876547197636811208070121727921121591006006314246964582002529305641582632984689711540648088705096857757496143452671109937261995956476886039267010352624855419552100865870126766192945124573459671966935961956891272098382178804199188765109909712364334900632682972621628996114379401541476272416286395082774739442963235640582513057091129907347409093196637966940454734040748115530883784633884718154345982775302547843436085600399533848169728337377537652853498677646744840068659959727406486816052322010142591795791817412835723058321667345236175940200329920557138662081244180262409662085510436792267043717305137485326242457010176316066350824418613351905330806790330218864967304397699365611885494790605318762168278876583970979946761576872004425413601566586692305395053027318662374337378920538601775254687573819206014914308609431626953120683059645911627202997021894019394481779062125280009689603240096805367354089274316395222976010283293154066352719739052978300646720385096070855260841088720445200517734157567595704532900745731073314900812777687780798331341130981954947509552072130883220730714417622402104821680857648550446814178890354794216017724393102535336488226981941878071839130611628223425615058077614175828280526158177783035902321147986655965260745954033207316715278186095776952229250894111655188424345764047669130056728319841704668076177607367107976500491280381052829093798189851092011152024073790950174185682430688746806344252358649924600093953967714215185571191329945535727924773020627554027741876847666066188760570537910486862070909835016722458393492210774928384387442400560153695559094408713980318795867509116133814362424948755883390914526556925658370108778531069358631494224535856221129132162307160590270340805240031926133528366155077410261175162778894343972603409305733243769423043488355542042686191977164134743285742520313961899642086340486173526444586850884199534893257618988194971271956784514194106599745184084845884294114574220136350704711566635438321547247676599275181344611471792838353869807540890316084563899681850404514304443709163514574633553219285264728003078801334148520909888260687032100395165996180818703532085335579903745579357933267716419722671232561504542937475649285235390202062073555074860604260403523876829326269084749741023317932297548975921868477787308477062989313555718943360582063189046156523222428966776151291094753421056769855055597831869918675426428280281205830514053786367638443437776279182624084610486352914131910209664659100612684007818009232789518212671203409053877476278496157488739321578418225969646238532437452998552809911283461517656434451088635571859449860540090243821387988131309977172288244174325389935975664735765204194357176823223197380997910391893226027995795388313316453282020903987785153216741925541746618746119801571181283092973656762661628494149727335811139706486838767065421055414483089098192630037556736185463963215400746875051660523382821038945634107876510043254988817781061464926358899293602453551260491778968343137755342715387256368912225689273261946376271595801414309920954623031774116398556325622337837391921947879947026135839093462102041430020991284502135379346736374182143079867198249186175038706220849174667543494503863442942499137586894497183754292830753093222418270537187030288398179107075311021506561289333951959518211331934788199021297074098127618711788415896765959770258167235098123764861797695424076412967136033759708940246007890249845836211871058048529954265294552345754504385671599415250353169397460571013727930646265531695933537697518282394150994763146316973776168604248222184988093421840173396005695295550066935585954287677729758183314308920305191677861268488238544272163168988478440824102309688924601956511891187349456954693550138852438133902979042483989579632460340258475295610876830661131521990077552622279367261312076047923240993252675957773710233038767226793282806767944576451149116804881567662217058639184093964935133283611117218597272957871429516210973241457351663533134985828463218797446742535931317268227450509092665334667224150335892627430284771906765191260932260405295111433365178117279651527095869842984340778158393971523658767174099616159182085151424849726213520002652420718499657212599200442345495020983061863163528999864368438407226394065392753297883918647674750343625699079135664493749359733114266105630262009407094307341746058861328446431771805185311536056980938707746297476186417779325968555813181958249308186791542707217415068696079958471431711441625161392046351726191080359447836830575548692750539208117744188141753805577928797288482513045870757472569874449900739933645696073757036269974206041751833964207711559531735820416425764610930592750298720631113543613816133090504399144222617354469067749610619386548800791418931231602070654687230437601698794517317568814532031272443897734481607851603292836715491287155853136252079704117238765067261556711733254901733371413565387599869657190144945416091411297734084658525439235791463734991908300135801084116335330590988972122541300636153553450102970611972075016212917788733334914440736952988522579063910046175652013687368049947350480315482578683346000533282232925903010990814452966941530176521035915809643915901549704979748065678952261943304921342974214205601390002895900434962321203627602254617038818426600138743380075808268773434988304633553011608122735651916508558685876030494005274075776165054469771469289657397770414562532719400226138530561824416881598839669661952485127879482602315057244287446610811787664711151204078212344089224222026032658607059852569526406043540734074800525315820652663950163608648071327438346562182792665726817033875957854456785484970592540325477564655976255204544517691193923450999802853570863919334275177922457419372295200327184016207192053107476079699743313842208304191524011883900292902559179360407058275889323098802889852680963811738194508801093602400370317160073472041266135867062373406401875821059001891290775965886773571581106329895655990180258581964903440809285581584435676948748143478126989071062511901212970418902594473695017880363336895618038082025733321605178746434813310606177707666785785937199656906639411067738372485600364377167236753476235437111031707354597918128059641076406606500063395641334725565063264122479817773995387734572966098563512023347716332927057464645115433244719711389558813861515842937048459607262822664205227583304535092465198727661300027539006573861597695394630447428803444247011454476108047832005673984077666174393307023033902535724668498180394369493819172067868094882547563538803669500385628584987072332738586406322505765109111233682914673944052360262003756257036821481346484127658578255280432412414486505115078553230403581888968800131687610056570534833312510805950766076172526020343110692632541724240983129323812169730112910545679510437262692375166010618559109665775573853320621698146123246529889131668590391728351595651215807410603082002073313214057924575851040000681698936215483925837416589952586754766785322318776194925387325710795163161312198579264432032380292966779170064167888917174480053129234966876055248639447924189112030903874459945679033130398168825336669211805405048179079959094582493998548626925882441626668033488528601903587769068746140167258204476332253639948353710764450777094893641072286638481989212247666107398024338504272987334285081340998574211812363405174813937960979546210716153757652015253455397854055676615107404739844856976405603248309772923856704746085729894577311558945627475094129519583504365324229713668860571982672344496646958744836280834451565655683430040285196776047352312170982788092438896819356086300614943978190588806250416227719647365006052870224229306739765520041892513395426648381365676286372760713613202105402200680848187786602971034273299060740275084784731906363374826124781254651802600002225462708533705293102548438258435691012919616644618047190589655532665707947801748429177912419076205232159002978023903101325395345650109061208845799891870611245508988343530429105054142414430095665234862631373293594152988378673396469911740671068672429955319272612763320833311990828148707231540062830618331041807814764169256697580105320157594559452048582118519267709846477694010150403789791484578892967613235254865824537210541966686462579814748316615963280920594545085475543442781881044236247645576896896205190864135544261461087286613353966779327098772604519731268144967284989348892417923952091823794009750151892626685556190551323153018044580751313151871822561398581975293107762539595469212521739378869737624697016365594861552416394339711328311662099967074053071302396733100542369754025753003888142433368820009492431476569994057961174797857469019460573981627390468402054129796893670390972985199177201271076926116629652614422891068532274810314867757078113197216027041165160001658028049799371111328428642349288436797645468407222185892058472938639693309454294746996067251788489506315528406049850262955835859963369467675200455439457439141507322954844720209176860335907692296246918339864381640355385758387245595100723659959041459863241942529404896559074606366235661994514182217477612453536550550240384612641793898459214618943546692362575961078583489221518406533105772274784386515218828484274337569969201095918850968111515836261242770949531546879052512559557329477599470619843042856172752113705727365167131205510450329772216383233694026647710170671507960534487689826320611233022390691205057895347698610295978784026242253752647611887363496976479847902531953912569728011750678320401083352576169956930282653307567652601838831777259570081438370787423133862518852851662148365535553102950501077820035544027571200804704427581351485550859344480832281583618847889039436927897433250987596756896769781174181019701099098834514038311818717230335348837715638038863999934789686611543435649249914518617853018285360608724585311789704073305428908590818177184499652713700194922112806415529683997761899714705542256941563777634222615158301642597394034237957375671832434390573096494426304402629876527703570192827099804409423714020862077654114894151308611308966238241477851764023351707669545636576884083821175583308666695757762030874276355653401038769182505905309428045226421778767014746131455172885888194101753561077954400633798259824521234721149523477177175271622492532826703966866593997067989286101158122885234771195889845600380483779508906128746796942900126365844864275831205811550783268731669264351602492411255585369623009391899448426655385432424935629486016490433457586472717818883249264364518076638863922254087225389421205876584633524289775955523133676624715297246299569646046745992445189301589905952330034154774415195661463638607830247249792934535986872510084284013525556590981477118300738877826753213166903830418106638103559441231101707416230843093769467573998824988787593031115995659809886132488834133251659704790206372958365713291805514151075490200873500816573256215142075876834111412138095223448067632422483479308981586887226435924882280593311424997702409107202501763042850387334293398072765869738151232169866578605704031385913909490827950078617848949672816087535649580979569348615614675565764662466349922100474810523298401276930073269195361317969765258927888475997141077657432864002882818247583130434883512111542577801510810161500658841483476507778396941133150969188642268776148551685632892031782244525981704786636266845066194834924744029438027636223027231041606670054030518772279741609618967061033920771450002527463188382626556113205752360970520833079469409574069578764650926995045242068780466725645566218388151538923551471229581462418181496216127681835977022873371994616962684383009901007811631386006605784645258856614653167368270860901381292630167339362289394904036986167508494489406771041108658179674241261201781417206562959766457478698906469699374061894334525210651762976448360889049170994081611638109507651965842017767144598473829686919749722573402657557179870934712861219694318355329705824514121322698218386704829705085073603715428644239230449088604742889194684178682018768386841723276849755429744835221823378010373137522540938762799436098381469271063039258333650589139450536262459954053895021702886098027365610353497293312782831308677359239604563543437981458504037066270575291668264864152606757506675176026572370816899455301870195738241360270283422518026802578186850895158501899028989879939051489645261233792415136211560471332528108152722671372339601100655015216469555916508498909022529147524406989070416417230300642551673875564153022046487333478605940805171521529032829430310468853820237524573156021980518139310241113587527914938332160382710159584780380240138694832543367172975351336286809240836712972187116209269001185542989836697931494068694832494842278769196221255672308356263503402276866115025497690362155649770795043578498843349621429513410523187882434688869436584525574428701315572120468851515772395653754548714999081309618218902610876973310124721741838110887984353203290429878981556329460582423028241092695443783233408682700393807350293300133638007793539156663952275557481670628380426275766407474779141182738134756738898465272510171511127459894120303291383815079191471813496734886743394938082003256888502829557205402945896689162877883827041351860643996903977841012424021371204528784143389482371086202770141647233182370103094981663625079029271072362625646467808789472089483736723054720135205616492231737413776209966990081984733888017908270399717203724098922102619464098511909523087357064488047196815984438004018763745844666282083611318045292098334669356381820589509397811746624138694071157733162990543793992026938538305168166522773783418173667553146991194473904478269130203659881711689729651508470931304272264070084207655573884158558381725266262381904695167417396259499841272861732483560030830125694728532274287486457753410909413081284659380037643489903795057825138233463832205242296652075359399705729052498748374717625323434297794391447932055193058586534175507570788528569563629704385344165910583791845693205258260305900789224644742164065166802120512068615414901814694299506129905607906279618982671734660809518706352580412681751743684775318908657015889847609815131974782806571133349625407534266942266594276392425644427934856693792581575725592199257079468245474547981650931136017860986235931667253844164270164279115310725049629919657559307091617790959601058171630224290886865355655552153212654397632004330355652886576199011653974555380952516847611606978130377655142701001381221457424769206194806271619084439976177399462324277481825052582975284719454654180834407455455686703990696725531496495622170936555932724830126864383851417163729103548087737478838277874333373205247623178105609465499387279241841643910450964105374908432598389192368448980420989271786046739025836712168144404436721518360170051920968762294366403524110258432739113269553818445183869919342818090991118122099643180457921133753381348452875957086804975794654936089461165983828224733068200761293865034481017742240856030473399715649264594709735547957587206285999202044983347234210140723678144766371614112599578060314413991770056572775546026514107479221841085826650929121994767816648055826284958605654721518530307877307990755963292199522136758594930101792604775343179694423381294760453814233111523142742344373999017473928559639804482717583978117560357174790275032183150606426060654271227252560436381467472298010521914484307173104784100122486727537146671672515660172272658140066191644615556011226280265505308069348039825142747652279664627833289666653186549093525414611036877443741287023706894440055791087532255191991487981202224313801935768223338082692243734377516162165977958832646357030554597591069068254662407783974948832471497522793243901902249176111335959985240919577417996358048569125353040343254534638135496792567572531168833544081290573441110915544635978582044627722697096595839282881547391463168508502588178315791885849343357257309070004530812150243402131077956533428236030244942863056848003344434540454661279465505710971434471293014695283272403205092587637710420847361155308799975697576797198982060884255375960499908461032306286826205381127498753929870156761092676438354608770539714595680493603305300368128574707628179680465516009454051298979452666400121650506644170128207350512322096914766343510454253867861489118200660254958894813048833121854725976482640297818108808931249940130507125734440099372266400122404424447999306889069212136831157374394966443966921581669218228668125299315536917985548129345876871611745018933911605341602980156216163051960946620309091664434724083960809548928158890409075095347873125800137990227239429945234413660764795153028676211400385463779057824089666581371544762039113660607565454857014216176348808951258804541272679098363187530868308734340944345609811498791670899460258377150505990288504638931165554544474971642254983392314184547254557101702015901612191210495393160969586929450404237055635518582603991935181488272971655432874485486478483357811611460083362205089396435051479068301608086716810070046303759530617621074718071954784571409016878525613104825406830838994324900634876951615499540160339516738180138102196944649513588603201141683483973753352307577953316828129891605074842056668973656954383308904999908594967347141164614449798664040376636798252437301473042307286983813507925241782780748754134672209309205867730687790025943708778523807989664439222827753762233581043762342324121862177958516228453305552546708490416047602869590677672780678886450664185533576637101404513489961961944881449348825629121829261690513036906062562836223919795891509934162593957470962678256846384689647778830716657163386611365607430659018530580456859057950894910121836699563528860885017512587520098402445394399552808484011533522895453370283960795115109076390461544695798139384698168188477466801921173151082090357813235386268795820575859817171373777511523154953299692935749291040624061721874554845976321519164075244182012540325534670328506544082662710509558964070620185648229648770862342077196715873512585257983137403698456586032717366643825350292277960729116786734513940477008745927868053358447339559793647602439324082754289404188493737014381556123045660495909035764613284434019530020305976760176120625729710126490879047971271611175439120607191075178301057893623181558864067027427835719957923888608939702254717673310563749857027848414586580243820269338947443680977114532916302026233966790217346807145544951188579990039858979268077369441199116706785157195541437579817003111392518048359991240361708906660334684683439439795811011409089241524954987878819470722925797293781072453895627635170763023367470551285694423472632721257375638896319500594500530745227663519087337342342101936242445451055363340341507469944619687986246228933905658802639989564862023786797319810244010948892899978304508207741541025302477265116002971033112126270020427682272091733847746789354963881043338756918404526600686861283769630199364058792899638985531303643630804602690212413830190817006334967088746798515198609899586090652871489867995506346594086168887590478888000769294063467175817030121869400596327137273619089595091595503009665049855496467424378396590164279483721076430532235586220249623777144141996255140455895951503199108652712862019828563908811799350354219602149974477856280573922142651809932243749098655089341778887563229223298105720614083792599406306101391134639512738835276288406039722943046826410817110508801453338774692012263259787832002068152198845894244073144654684341290678381944194817841154746695279698783658182176571307238571646433434750758884419583610171461562560185531919136874507538466908652593535960267033281238717425349073563973921444016065986586932108446330455232128806562683951159682101590666628428053975906295371256594635583707523822799621698798878952822121010273172659752581438236329672961894284752368968232121073159232208355592556147669277891894211185413176989225207609115668447790592841203815795065295210528835852527234401334220143248002156898277253678290387385716832724203077427921202815845001840541041068436054346131295760692225020411483897408445995793262068750338000634582368332165573657273168039609102980361839755948004865681015884509148486102525229903762880641925980741543136932169404442418066019457170759011786663516069731515618968162014468946240556065391330391313481740145411669718886085597067092140322907074913568152279415105899196493411445174905620043846147352765115062304790184707736749767422435604111835454154355353916837944861582395494639529919423198603442058864607623606170391717249112946868646350632458609827416526605705614177371661203588540112642716051458071181126907259292323228957277932705574496932389789921317986471371550029673602002640175216570638096585428575597185406073978499244254887854286885440975735245285245772369263122295220928438831450036387056593875693841758293777030975514268344506461009263614520660754623102337721855664942057694134981942368531849862930313699870350923216041492194028621765950093555039240102145385374099975704984294653190468557678068796393480922761634747757236304654725241673950030763156327091391108943479721248209842702756745270878639288561697421226936144908041841308575455237957164882888439700671197751422189533122947945826616322178132291814931673006276363556788790127530349189283268705910551444109332975825986944259924470739048550502600183614860062630939118538206099336546495011168120418302693205733883225330657644368271101735807821502745576751102066945469391551202149775436787490649851323151764493633185349523952869137973415084729539038132218893916311379096160286651931410219132992049870617896577080569895246950245841186636465013936781019088512059702425628783136716766409834172814384472380160218260226655006970155612749354455606182310626179498830824168267607848463108390149733468147480545111727691938674896072120735470956610843913979364845383642256484299885780648579136337689542804845579357069058353501783507553936055485686217348872887783887433806384958259032541654986296975831924486776850069468264040763294867702741391259206294129064263618519610701641296050126212939685758577150943052436580234743563039231028326087117075122258349948032492856696417904894408194392551918016304550963255407240942137595158092323211780998909122417260284713384363974475200922610594671577721781639316280180953201801394285831156328164239843518420364462790788620009231473469041846571489005105945171878709708986824019877238309860653473293811505153893880096003957586269907247582280687588331545740378953559652556654384248510358584030439585190419888430670678916235934662405749413620642410525729212003231578011897228181395158240417588738764041742041518200093031957723919119152201501696965693093976961552563620786570894533665002726835816798452720516526809518818824200961644148062362678961894664500765348846067278993525731091637926085466090561010379175139469894881741557679872426931648718838165867946560283113263941033656277356521325328500524004430867077555809976397083142809480661626953883605301120866349733070843237723607855967964542572113238392436408654152285782342817401164302725001425066325694454597807831944236497078722541616727819877380215467940174666744774781159546905655131373541040927618314330560311528095279815633014303750901541372324020522360410133038711800273818939660444921809428695259838045271874977996945700049012973195329562614906690879515844519287972253144811282605764557557646948338313750266898000127030596004354614393527159807824787127814036369557799090637815255573083516910914795733277778378379902643509416981406737596911144904959562959794440901259635155792101503587720562066313242819447304201058828092818808161089098534651468215905488430553594472376724912630342950422660795282482077270780753097355527850980920178033326260749179619437805269672416338040697413489106715143672579197532052129709796271700819509999747758534885728520390757588728935280125619909044544934712724985890664615221947190122173981916327347636175495211648893543203777927542446701323557941081987464950852099125211175265642039302666431329995957501200037872309207229789374952887965683150511061214735512508797686815934224886510934415353323061352999134869825202197150075465930373405486703948746864198129869062694649505445051081670331315932508129639165462063207920785882512061444412383462249014997378057781817290178263691100350794211049777835659609106468741788375202589951449524468146856956829605562832818360935173738734964323498759047664543443821577519145854559845059617862435517915826566632278786494242123992701797280238230653089037518045682936770856188178047068212191906586630221991826764219458934188034409739093445512954844308474897644848885265157929092810815816447691508680666371166628187808961416907062196948917736417684023152286512464349595201753535681488541810170152161467322846387923025646802729656867107668173546029425717135609299354517728023586699499862433178815944394137378276939765867930944953207514515621622515836897575142656259437676236079431166121698641838405694200832612470810893910017251825623694037504042348051814102146617185978414987088495517925047619537352804017562226908193639812633285004838645061003929478656847863444815889487075188747214677122858160846232400600386297320499746813432872763174035341065229437214983157695262327604183932972869140940202371625777358181511977651088012396850065616488743225781441531032870203309163400003061630202540122118276751641223094875892968640220906344229732904457432508478875883528991482715318154864567423217752269431102490431586376874053131667159590123504145933587017535185329899362281696672351089426483577282276190732060673053077110529382434029885115506022787119931664749203589260051195641536942779029311018448096429711879911479682302354597916337732737698630059412989592031399123901270629529474714377153180347573010416040392763013003461778352318157423809562653024811061228369830416258626165765425964437533154001074488288199022122650654806770047901625815527260054582368635657013339870777758166026008233572746366641241420119111357554891646415030018600904397231561474878181694914937864879042459935022657365133973162791883435580757289193521751964554759496571338472906345953315855416938180705659061516773950730714149596760086559789970836279679386940037904132424610225169133660339097135756615181949585726796716541757513024629206674626064668877117545306231469506036584244159528048395612375446142746797756941298533876299570513237538414738478748193780518130030755091447927876115116941536648702275492947542998810171647586452045992144629840194068460639860428933049065622802935766492432507251889323061984628445441256527333983892784321277232655448154281688714583786854556016631877268402913047248247110063627051840833479831232951538754251110026706393644553025097078867316398573613946985223786928323234453994641230636218943190011952812612185405014507713035146332229920593779268359441483466902058465203421710694909925329923388582975707613391503360942484273583793763297848176331905077363380905999946727905774841147934383080999865789821859138784634949091683559141124759510663834087105325364825326588629931808338366778225419736273409882915987550002474818342243416138056201595463807998237656249721690394694264207383204268543243755529791371891399768664403102589516774323753838261078790457603169261351695176527895439750857533428791989967640936365978325749571210831904187190338463291146088483689538588501891079328496027523118006776644316171711477219031774136223366582304204836219817626654318784300011821057096598912122815058862054887660227764624767019132588854828675959808287763291127975676457851330462000023698789807576051135408021856142699475990779248823556304764394511546351137273557508086203340145780686094278072550928535777814205090337223110444511507130593228213960363035498934841807654548677628873427706797968336689039718520132810005696584183215202534544013606443551894631423299410259888668852695531959405815217145193499977657860137880115054671554523854479194262316789923401597524867531120634347992006979239535571938086763165969147411739269789304099493651223367545724892371221142728690373442120199750488897152152765692901970113219017741283633272349128106771743913108768255804828305865709586250692681489188212538342368425418137876349878148350151423814661928402952641810073763051794925272772503263628299374958571277631926005474154868656022723041104187374928293634198294034559525173376875608826145804178169613309575909097545069857408826359853974157635318225655786410836167984140537084523774372407041809850525541659620083280121348158437361590121485991950740458133411657946515103496122841994564996040191215822711912592859112552375827791651093557725483035914382572424999365666704262509895816195705730422925438635452627777696897273558414809284447448507254061866019406392254177081866347351601735850269667222540247874759481055872258739039082482036517319164287033662737744467644247618498261827185309960095937167150847303829771791114905960416048246151487225144001242217346085656692812838517844393755468810377731850212642813248138011534066977381980709032192437659239176875253776655603887367047196839397974411196508211669778944784229051113708226307107850582972205062697916370411362147219922110947720894713424661634663271239665739557263490646705864154879760671658288257998733110065794875671817559009630821368670672411714125331643079488515041845149950062166462185222175803172373603180800974722917992298942844542441584388284347561152273446986529065505741369480234766632291337224101783755404862603938883982538133343277450254493477457734819084304967326255757482062520415794487337771048883825869773342315728220556675299935656672948450470158392840925261139993141321191663004513848542329339969820716416344685928990192060851280193967131297820930147988902777228672242710080189036067687465393507242828405145076726745716064391426240513969613709442297233594887506738033024896023315850093503670607890109287865221872670474409751407192197067854692210100979126586923469341467994401389096633715945257711548773627758044991798624125850633345568665913817995937311105965488837131795998869782224605503514811892395036386352488332285719573793930481459980104786283965521934967224205820399467949480319446957866809986543803526848887334019066914285699681404707130638764712622889060451051007104190455125634162147069289906784550560069510467577472787950393715017136841509115103521331959036161865399924572245597901338263800609970604340925397660923456648362341148321122557987186584052128959175804728907705210348383978414968676851441807668485627910860118676394445849370735758531101873726586240184196080623754445966099817182953107379567544169796716578018695884099121124569934691800794169477299038549945473479044563842100102393971561860469491687710191697232715459618351247373021984709432283115964443687418319298365292001711909669650282099650386594429990583718979959318099833706721336018015626999704409940823109784566681285155221893104227744458022328922695900402801340359884826282924212236651390793080976877577003062394116607314961878256856797049492386440468933244654917351962121911134821189333377161718986069706391222384461740105400622635860074937044306295083385467997732576784261041287719637695419899425712974720219257944796207996014831354293381721088633577263645660606664585950632286385883284274807147351550272235806111240379374284381494494355463047519975327880223357999550616597339684837592161887176886223802732831602925798248148152363337964234576479268907496806020853515501138803791493579635469156237382101473081255234509398434369456734030784318675168924306650335778011232246600925571113779588090526847384940718937717890367761280806477974642489205398388034244954885005739551959692268245059303162272787361477049524136840332013130083521663300403011120526994700404500295601685483280669313467789552346176444870386232734325133726636115623252548411050030867322514125256619197710434866585028936485094968317128341832349088042354088655216601345029716766085440772722236364602208715831665786362983647531910268282524198780479976753131140318664009261035549932835335894414844606993333100414019096175889279175631891625123904058546082935734897749515133282707944491629900869950081900416293001743438127482150297157965202212154169040230777621811748176020787416576764304301425320055758631478495083384640888357159796136578949068646655192734587211821941554017359929694434082700392841230836664081442171887809597993768060195575993805351474228491034950455838039589929166151222544615600098442181297991589501918004149755600598748818963862467502187563092451085481390013751943426147553554669794613825918155665344717391571847529403968965769188702764873345633322632196445965616219634531312869183582176397524178721319439203674117289821472626548288746631859194612517659895816964096340483488273716174207041600700096381143719746426988017248754703197576478521327508078773825918913266180516324888672180092766021093755666863544141518919081581397509679070151006873451319460580843793115868866007082966292107069411645128872879521565397706069550803318181703624698775066060235789254917029735217709729536355256579693871923906067860190761019077969169339628456580092813006544215286976274840457915487444468312952744281320095008747063918919465099485896079054838502380947307539320568428475590873703298623009492443078341408616997663712200870413684754714322375938753562486822849603972776804721893803916865301118695790315634852558497502067432821728282193880742443767432697491586172799244732954930253384480670700286816741015632303651271207378761509452489231250257670001682001144557545240383145368957311122272473697894263551698616526171639687856650962573628224941867279665941109545288998235356054894953714238760378320244959052896403330583302179505532717228536123314988731055068417450201315720124483959881007834455894226986982123440831654800820061077960450312061307196938640114694010874485508767074501244043263842311554546769071442280139513123323924484570247065309264045639393051832873747466910116706897352230496718243422447983871656298877292267021306600814122264791511396413559732727102399955983078710591805627960398222986967472620293999212922523281578024567836526958020814828038011594187454104310572313466566468352437539988447019168772309226395751670705906465276223109850413351870205451620409375068139030907911422174831792665357077738326950669881405855999507931737541791682544906619938223491284665106983596250689886558721054800979275047642852476928316146653845636990122637136410735928229841211633745452229278956956962438180029540276228072481374917925128634683124420694693279116739366706398592248744677828499803713465716991390464332340973429945183836715260719898893768815290465033799147526165383229564693214716785277226557483219461782907109425784845596027809737510132825619564582929008416239413274548366866242868891061421271352729190628617283064797096208226779226756483441711299999990457356279317764676494557524474895516927221138799046139783189351424314760089812426147566932741678239992650324816848454114591379716032647884439128136101256971195322840890413679357749232007095245922559960944126776195386739941339331708248493612258225812875340954172810517503171196290425850614215796899277422068053438055544729168581949095260501501791593007106680936636201153594724359245993238752639067502661121410819770344000645878137685895238284415525155282977038169969477266420897277464505045185896924952135638249684093319412561783592809708328881976349968865535183574121714851075093004521813242217718116167477979151742304495019920288369895838635904276085769376270325581870319727126434582484987433558328315481242936429430999343761784065409592952354707339931681707147322867668266968265480076439410620080261492655505424409214072752404468598037841382659736486201544323447039825972044275204997758036556701148029591019943521721540842373378204740716212849543275215005363433283241695343473571144175142788008632770087647393737797550043147946295246576004617084559899962011032282832745555190603983890335596404054757891604785996736458503777640604393846492688629423211518351139605177256123551225389690453429815384188419052636501251033095949675869529762787819601907175295911169722326898577516601821762973565658541325249832054037434766019556867782368614952741766327609339657109092209388841689756602925204486303627763079748261649865609875598600940186317382458454952540950024423238687798689265322458157552067594730316994238553131268818520728882386678059502046051212551220618956278479385678344007519789439559781932963605972364446975170750594557788447310739630134681367174049012680246068717186685688211972860963422165144589363338241182063996571052889742869639556976185963403175298389831650919139597737857303112453082974736182213984622015403623405025793145938093058896114756294416978333731906731521533319375329815264213710213292705269368829295138581735227196540196517811521079165657289065262514920558188134178838145376118656502828567144481978437764414995671878231610450214249071720429169347284521124239273844133719079063614052948248923039926047387268962700324322088926543537121962926401660626681294330712398089429255332421463647099635626208395747501888709551717201893821672715632811573329236259166783798766644767753997315587587708914697607695691011217801261403770762065897701975854393154540485450316181801109564545984824757386114930080352843674803725887319054119656142018740416601597192904463929105847319474526735929497423384679706441719233243474672173237646986141232665936376525987484807691306649049264860330211009503348326880626624442461592504394959486506981183686239377810732342007693626492626379323553860072214166423005446166027555939528531046989372101867181119091008062669827442699523533513045545529278989442940854438001563715553810879764897972537831417820178140744737829376584168611047334563563497710353096264957659345866665766236992594949018779691793965166580500165658485004158952372277645443691946914280208332517755842732055341075378199025504118552200627990218669981371497822014736307597697486870549554477816789588787317705892045244642185807709687189055338985250452884177762651000304277640644528212679755386688515467364108743731584337310593392697518252619101151932156827586676853255709487657577028384747992891720604179313953847592163991252879072254052293921637129930021413309370463167056210618377613212741977246882646512826144832921541383074474880633246818039894762707744078917047118216015845775275898185625969610832905408712219792044124806248359869229406919555150227747472296113170562184088783457367544780615522436195391437864373725846404751312712406265000880173375764887548745854078791965947962258818449271394082605948180388177753859791067480695412301320035575842304450708847629108154157359561551613063398830462953879309259949328215014013093635912630554037476778552358659832421601127870088470727535851787840684777909901847505097991858981526992201212415737199174523031724266339615855864125118723316746743334574565600994158047805022609287322225355557480014917543539105653571720110460232201107385878931913002396750572906270683936220474645482417954403085833958795177324994971760516827046023541563991704505974746102953778938495867523883088250606983697323011394627213527685825898776437918357033335235797533611752313344981832417533969673209931356745442940000815234216404898513750646939850120252928723649902695683462102584741147737525267973812853721183699143615634776625385542288091862234922788805333756362359981708312909531084093112836563595631164000486058540221025141693095389184608208186853929775514039653462900074729143095809466120656530393874393160122389380983860157876421257789582048861674376342893898660161562149929719407313478153964541222719481405260742013463052130761428636479832988678432285183009130979896204801466449435134042178863613819729654588726421559371777926319009427088328500733640515014582966343331774786136597631343617403792324799817511689646637614304293455630203479948807150627853030178043859879396248463114691301957030725434781651536123604548738453895070868409607873342983184669713313883972624227334929224776197707252315298099786393110314326407378883267225096092524667464833652210519565515340704997783856215220966025359825904237781916824600008624102326399581594964011569838783831357756741884465295155369154901643303101352227671477757294440451500782268534585297102920127357104785825077247183510454928111248022333774006980981517176062194282271673067256783824060228536311980558767494498385123697036681942767666688008146268150294602407941469067406665864630854113133331794649811782057613644051345870607034036552954689950858994062163961032427229111100814210637759397848840712989720463198782392277207450254090182402245862267592104016180967626267364064116274945477666178032231609351718741100050230016599186445560370886827398726280140497429950764460961071395257578493496257969516098169658959937199666823050590304966657180685924373258454676610701541786325670957961302188207381772993416546563393665606487601055677035874157222232774556444750239534713068571664891274865102140504109584537848483340945190835711896949997257137023913506842593756655800406325151561672436861153402298064781557494424736792608139417589276788112041386767541900357322535262356512631011448155266762230400581424382564456495648519671460247188735028208335342281945636377989391298240891118629888511745639116811313659658159835865692958625809692205953207321549864691955316306380629661043386919987592979416406038650435613184326204484521417825904312408895189290784606852999796304444561195361939017282499871470797171858235563228667050642177011732780042057762441104475240851306669614781252067372620820145909637260224398949702122130830963044043094014273633243636770598160417925160317963000746141937815913398896676440444702381585511823277614889507851887312239335379097013568061691819064684475580841353318714638502759193716017732190935584806575318217178643412069379828939434519889474862802467198885562722940963919596840710411897191035966996235780587167259799586777492564798859958299270159328244933697264927114913960626919834127312857594654976518223316916655529657842320409039638569631206359805729680968137068774532066098337650310763245215222130022285955025768951969336201647333686016521884453222097865124580352775855685191454579285411637262858130131665304228677037706001084302347821445056683862320318002032648679662321193976096511403591616236046577368679586303550649510304483622424128011775712626122923131665633825060678110775838024103854016401868490981097890191745165190844053829723817046857286036190036171802731805691142026373338958658574952013075149506380654761153257039304909497470462636539469466869926095336323820247542020471187870409302078169523682524148006752123294898586152695604991442530841608804657312158703742779490653165951303358043644165514782436259335799352002200073838513386006441248934915345319521563567513655432499490748749297704122108007042702569838269243055739740329769238413569187231634149344937545985814029427450837791809720711245390411660698943412047362867667787650496187239546864440697140726188048995190430468907153658258596660383181451255817405648967790323611999169876703893435572631349935630851548629857332069810488757287954720864782770742044231932725458530163258904903033666272199702342200708703856031035865180916280286406009462125049043458951307315834354011182253260177050397022166383877444289694904412428422322664461819473834778736198134005811297030024657830056538516511364870613128538372854565170053872533791373898957242464755424610931960493147563684984123074752705850859239830381061996881677166389655564289325324301820203381223754902933461663870535597215713532805403751148876181891146252220340289036457477231864596813452606416741111737202126148837187079112734255599018092340166679802657519953436453490795604310878918226193387513027008093929259145909408060266923809745678553433435308293743940048834134898024610301696495481703398624594718396641392725842104548146901330804614102861473527795480693167943332868904177333386209722696790899726580415487861804503772263020621265591707447939591938085645333560575173917425280055776231184846858311387986791167973799430528967106373931276327944429623415688035978832017342775333265847160632491141659606610700087646744689369646969824886021410016275468498970001835591701349132584065953863337100661918915622066754196316106942664630934953047009844206191720556125433139097103639652875829115448672008021521383651162437760753844211549851145930317336954933928952704626782319034294812023371940815139262530664653164528016405003784916109108961050524709400614064322744143476614152670487190800811897027189812018958133592473963968251606926671014685316245266474870219531391761537950876069160484989052510011173969942256272473509575444431849378693537168345725974617869024869954329515017167767874845906711768671340274344278931290562241050028947146768614114035893836546499248687763589491815692372563791361612357218677567241789819837679177843982281705040119088572682141662462717335479526292466661567228757068975560414020429181099643041828767982801651772201119670712114357424026625077713086786632170554210129713413211364586565398497801990320902220703584485914501785145148395671422507117804192012403836214573604414229888340758913871684640928773259166189871916407024818677466148952672779635921746025341467081689685235745530996821609983459865383163738014860395005985984100880454165310158579191050994305402625075827894333385566625083682634261039362936379807177770039634489927814413058017074890537761774904082744231651905208346244673025051674022896330792148175210737867793656228346267693609182064079823017991720974323932749864826742702575478807951088379744812670429656262901594043274640665892526333979612572505630203566281391838559231616580391608225126153475384491410305052975682546153451773004427226843307760588315723172182192885868999928986091580004364282390072874631528955137806581222692052029985876449308559529003768695381879310862518884259624811988512931407719982262818322585937527585706392805761852998797216814753280699660045941654493554917055415307055240183087904457324657840578208521574679419822637094031871335202697799113669708440516077197420005445927819112828383206083944806811505264226641757303170884259494208232369100325002562130082727094907408257373910598376337402039768666314046688717297612062546719116250329230383834314980196576700197343863840730392959025176451022964072572868034338948928513168773434815684577608886465798029496004542898366154048733102212688828852536857695593353636405959182678026580434698732718159951200663518040658783259588823484106975266891011800425624561888547652212078398350678367998722953551064119969422477806268860810730367869822766717808435538314099209510189904381644294041652642801560546710128339400713210312474311581416007381018154409572427249792463850444708468764448049110567293814899977104808117458724454065458429935768818423481955835106375521592492716118923560958967099061960538983003869002469729024143117213229046041234296340769825653597697917478895648782897521250276700147896184470227664340346120839487469645864078558653145338414788506580189756236863765204298252439726038299820430865153305336629091440811189096861083982932089923490568972799304213873040744112658574539231834983001293843729291301537109825874868653392851683200526469606702017221178009207619920407574320269540252741924929004173742073793443455913653241348719339807123595259164180638257484050545583972420745049797961197259004536935276538390283188182800649397585653437599739050498707873549903775656970256438420095775608423745731752240925380301138785821255225751354164181474453153695613884991884293154758750874621663202458434858796026037017766649763701760579012770837148795586875634808345536705090227253556660181529820255415456907387884648980817058668350098163077160811987093632489101273474719170850129020075317600886557657433640591634957853058831069991217509678650973656984706291805201377895081428625612747495916203522034837867302844796550610796875648803640000414076233034393401699697351668314692711697099642627787733078803165115371270279490325653081138909797169216116248998271189274303323336428394042066627748966557150197002467878190109543819990246897481012986189692671878380420954416164510385746771978676098792258855143076066724941070377564444465933809506105244924450924518129513046248508922167751160881724200628648387392203118379735125450895511769533007369341083820390379168251987043056008113240943021668232485127260011702924389742628804460238934599970874637189898611121508265013218625134488328546501219241343952977865733284815968547989367585095511669877634821177082183691141310925368479285186577996955921681936721884665442767009016180631976999390068080033796509174567438693216295879696940760162864430757227281757654431295601256614535733453848270725510007643001208928277654208707375690791852402353220124528393895820074961538256185203419905589558138978354542333403147912883428677911538992425105666697705777729494882605028806136625546980406009624654897009173931438632622461492908383505664082850954084956881485723030849917953492023660345758564928415002873899124971059992786449469725870315464959481064560040629928606179893727759556090156863761539415049533352806309298289224688772513273133512303443792147557283803120999165983784691105683583786429632626772794885716423190131638353780308475305017364492706113945148394674034236747940618839746004367215274579714682098917265693165891782056504165793209526920133034587540998278997206298858715936141470148667285204712881929228981474313510508262363378343824197077953651876649932610215920563020366524651486117258869446273624518509323223334372278107747086511233175273990882474853747777521907306762636832943996224463211197915742027897901155898186994205603402195822991794129137128416026398100454889305007051671067257394070235169289741167185012196689803892479935565190164586389078905959082939970829364089755528711816254653937113468323454792944675658807976758798643092434528715823170962706615251512011624113920428170626313238616845826634108351548393575762816295134118626180115048910265687170156945828993495953377241485365860063454687227230760184003861792703685541626061319469017766744785099141656649077350518512256776002138024506045624270378171271363988112530979664914291744516456025833360599280355080072001228751666532290008279594464169936656187093608488576286937776346748288139230335914042862659011740536653510380648239178024684498610861405645433711328477856793476014391893400210521999464496776151918548340721266320523733900815331351782267236228813688741743109959736993295404812351667687232885317296238091059024112766869617151561266582679703888805734660963856614024629526473022565319749624107737337331436443854595790160765045201691386489526045826118888327411827930130108323943711255654542374600763703691515689593783769456406153433885754641283470030459912659803586992954341109427254067688850255694270314533217531468018020392470446254033906061444495197499778403392442673662567957270153377827670176384987446176450486527268554340479764489109002646071574750877239581643337259458975508220916388353875273734272341517681864426658228268717666594989897039230798675486447701236725652944484220318604442102148146977632425097664504020627063820453728448397112614335446437203040336129476428631067981829907916560713833908540719925841593354612309850662509157407052588964412835088198840133787602306908665553880937066365764540859830040879601721861362447113488031866870156049065514972760145567242169164514861421239213823775195397789382173348390560296035590784122175923759444191996888165774994459211364221470870301070993202114343076545841990559350373439941863741998585447689388916894716121394996548520303156617725932363890184311069513327739785232800883504287642320668404023037700023263280827409638411163292905515715972562846410987919399791011892039063450805783715670545568212173203811129487292144806170004409775554811890274700957693088758999381240779231314913883421660591830260692906906530414878753204115522945455966486537482846986730617251049170453054966326858461578586955823291004260557726140130401935378329423153569517699629263594777999762260667401282853252378048974512138101186748026686330070234543036385074942376221676008950384133235924728741344157380631990631834577430209275425426374778376464490479942285456280440610798901509324211170260377216580985295184958608121402684485759670135408990309266728514753664596438195011313686159166217215349202644954100117598268958242671123289621662592385660845600986518980382379092459262075026851070963082091995072657315118869960672197611752927883014223347758652932918986545362155754529935827859413880420194792263726651857797993262554185815168281800971644079484472545106814126960280234590889024454360570271478717137576531185526211583950221511545938775202062017679409147074495353195664773838951440438204920243857482908127286736889641954419132461130683444803209592643310792300205365704828112238716917859448035006443782085897446037688971668050303265502284998929244997727140027254930247238629604739721138398357935898625342234308639052124741980359137885583786423000250164256309682740076580967656503022290593769145554884687320729085928716010145938351560181293890325769701896757637490416522350867075303609259694452922752167207513526910294228910775744378824329611802327621666256822957635144820723998740534016905231019449426736878926219898025001729844493924550554588539934897679730205862753976975107360003683730569505733696391683912492234956927577273041680325693258923912009833026964771109958452881466670054775484388326927514322762370772435203687541582858795167389961537268675652165421802853526531712022452622323560297256359158881505965774455963131010913590747650209094648648940258156798980008581949155145129684320513043576589220273658842786697226355379440460319631991071767590321019765326496604855109620015261124799531903148951808669208000532761466162155933481450919546785306767620499206859131130003698288164399753586893847699343863285725598547747999773945493511696934361737589748174132223627819225426354623214562224040392851001374972387358935446264183211133131003907139238400552652366069520746619349123646086833728356935104324039099300342620104416151359056644949262944070788357070979157062024643561721266093676043123107358614519124947648996524197999314133932305651593145017781804580160575358102742518638587315137777774735494182041821381032823191164201569851114577806657534467213491389052097878534161330252970555224377166480619849640787758319831122992497666407210278593038401693424865055516749481531478167973955799713082344726689300352765975711423878576060083844738896811722118197937189843169160069293903916782132743298098006878616559363792114152931886241661095444908417459931972438924438981210995772400439282721124852039308514769087565354604533822420288426484132127339941300516213756536807042326937000454264254784483537791142637696531288982298111744539032909374581427175208773958294925363654276407276986703728002703482205011656627558880042949970461818296479374912432368078621912791816926678827163672010793750295221073911010568914277483671894122283952807388112631617567622030323895403860440429176431271655579095160840164980495829745590083351591696023929763237784560477168178170917155214920949292381746934492367301951553313933367353777638603965670409914327264475237585714028376623452985849575717829680701069282310732762983085194050560749632007834717567604128729899975069815778355073703389483498260684231218048303263069067588648416735304280772677222031018740590765444639576946371666609690005707995617380959166480994843188120337035707302715605706674787752172272771895077403762930469042015807234012196260843524353867609270314156955609543058344743342205895873842454714870984938204757775975910597641264904958096392225732751883583616084491062322796327669432477886980494688977586789265835911424742014626685324567897578309888617895664009596097614320667969851532485441946786112440879801882359066044469608272373199994118849157713546565836122353157556030637899033368196354654998983724265658642367124795133409164226514011530097791480648255481637086344387446358236631151180095003400004638703922589310612108666302288302628856998475509673898052427318060703374195318873509685632545408250875762722613634655810387032395454826651925369441141676724270025439323093891863894967830350761424116171942144316601685558189737715327931951023330910660410280624678577484589654701277255391500563708228505574029286747758560701378196106493142363485484443013043916965428494264882378028193354070593792581168806510715479078197676584793094868418495081785120393357774886159535623476398952586969425800171281517093505847009305382739733725547301340686289400250014173394174462044334663562324905121254599464023447204881971770718836162430349668994351832793761693145148740689157947816668382215277520788379109448733476808723873126939948115456688151479958781122056413352195142481930392086704812864494165317194816027679164187066845725476997722333866606856336633925367223954660363711105433142019937345991617942695164048932056516563921373862330718985316389331229422537068489230269688033620691021355555204461415841210339946137009236667816707086920195296480322291506337862676567373575147167244979134495460933763936239095400982539393625998074472338921724033163810809971529585983681008676580536871594748126160328270876471237319999580095089157753497640086561004940418517544142821226627728313213457243716379985597772039446507324371144084363617210517263074776418498257206903446844003737134190615789263707278999501944889266042287836211577646186729001923896380183922763881518967790104300638754354990064685876744550731474066224033756883147471563728962870592770522148500810458277558672677686584072926217491809402762643316206449320223084390988806279723510459102135665155727466617265336671025806329870380132220951989946806028486970728921046401692136279531407634553711993417581368886100951486355533471194415236251912291276913615996245536914338712234809585656411683071624335459097375299278444568516145095119675016078782627227821684613746765599754380390026248020817345631647555378183771003872370980378460713179317813294781403310427024892054461037993194782177140676389843228461549786479317312425540534750727989240907041653608509377776523674632291580409520351833244692497913452633558517287439753229847719973609962790924485161957997157207215309047260826115630857183415622648360079965059132369537627072854861953472672744807994165679274594837825218426464807596321699861066945467403766204048708336544086540606271102834388990840944801414972220206269526671635767797207366437338668063493821818831029719395434133802447565238284013314235684869705641196755080952193514593563098006372850288596299395495205615088165311497840301543526561010640010782898441035750002132575444249630533700217877201332736412729947269509864702100998938499641834530721062789444636670859392882602379489363979249286743697142443096573722136774500178260267835749185062737212511480632351002939232319728658429302550154423747258400390657347375592502121025755503962834075360726786227066462613860377979247183450717140904973294182288265071465114575544477954372125526061472684100048115351767212386297909796971600493593078697880273631056758376785456322203323586639422790975904794609219408856934192541834878191454435874121718269976181864708451199567581732535701984962225492866209370708664493782192132670557382386272865748641467217710877134758337782784757211503833697444335516325760400121457733773429933889302771224192392701999676634251797775790948326278361304054466233383536494907551115553697330342036997150798341847731223191783090146449435837032552440491780921074606469568885192303167449426064729448145647181542139500265955367459611827958512989272154900344222503429332608348724408897907546003789835956920269205782394751663275442679326883126843680748930822582246781359360634422719827358678824564131721515995103978985827888953922630109138245186023756516672237453145098404296294649596956381884912356740686893061239737226432209092674291878063885046371148858830988487458949756618382533335260068715514106339062243204557814611927638831585596162786693411210063429077780688749355381796838026518403374260639825397584636756504507790125260195911840350406022607768051739330044924264634419452381075212255766422808329637923840320676459959050890630499347827005864542118510794040862145773682266544336487425920477633886897852796152674296099669332773190833305059763619052940385542414289276688811316147162303542147396141477924655501035583778258879100340960970343076092642569312883701871900827619583473248103513997266443503487797801015088343087157778025349608066828875478869422786330286831632968638945029660905015078837851790625769396173387321626318204209825883394996852993375048236064811623987292833748520464317095816187324924823717281960642019944754270822175615469147051099245252715297323465757947949587088225474525176902699948707762613746171709188101112530307053864240207965141046739485743352736362602727649382496554919587686037557845567264019999955083910791933686443472145237204018134291096860350676907359693213430229605655447843171811505901327529004528598460545134471738444512239903210614851123954744202551070806690025943974202463549201745254996169900867932388343636216113020052901564818516295537741224984083958765935424611044347282262051436771486799958535964317731730115371865690450566619028837514350519976664308291169751564186176724882225087478843423601067719719371837557992528513226611932377938534911692456875720886216945948351362291077184361456720938293108240376567935370491778624465235201141739359993101533058037776638876217221950475837254987099205054704242541587256239558208529243639391700929032253818888092375860923904493469282796555606088790860046598122803548177679913460383973664067083020390812355677821621870360790121515103725020913305430078051516662801576913468549449938523062370362627619590708166939912603087151787400095212271604680346120606021686552894503728367606928616318692875721662428719777878848788779277144227309577528586027457777067689789379523278922100103574162332147469166673956096784704052505250099497722431511676688834700995270437772247909849023087640438068328052364300076324244895279152258399002625962453012331483751311580630091837814994657615762040472182179104148833660912313755774451050394136406167360985774716317190458078423583466624260699302665251572915687065830505484638100698962119238939659756360776503608604443862266781499534110107913354158086662882763040434806804129256051629805011349340150728963302342763546583255618153766623096513137574610988349462404103784112861489460249322595065510043722758961466224352140864021122576885509904211713004098126777629809708923375884086170655100600386054663619978698593673738621205216441235694969840299077810569784473722304333255476970072889950391851780952260838395337526325699570379408490440355762106686952099841527573485403456699554800222142991334356203313641995989236407641084906278910660399456901871539935897171713234858880072795569522777633014099354542936407357035451197101916643390001799352979681253856174619648356465858267137974685847157396453923326716627931981537779856320728794756480640084958043250955495398267401050993209311710180736749506426795458134870018721958883112793338552216231928841954060877910751449840953443610297425135711404087085626804096622504820967824457832207352723179554494766569976208349089291029700886556596850962002270495303371400150985135913181297016383688756018442558690380405554524532484207542557371934884007603857153190409057404972260674067642320552293829269770652439415373735115957877304855321442778971494503487350717132626254319688301815150631766565036695953698000401191898767367576528905687451200141810273376094992187267415324255010584310759682404982309562218486120488572710749050165738676367194189744110195746883430473942940792241451607280382567681374303385864127129274288645048777019530806575305149841859434631763508977582459825693822040839213960237854151390979988902645517524800756522664042875138516907227531174640887423687262091513092651705272046588354816951464202704969144515082029883024360168249611593411007277529016137761724961638304107824040785563668376049106042462599134822062634184030141574800950693923244611528908753503604834502626685298401227597220845176454825331996758504037439450193982317836916919551126192380757185341804973299068696919230780965282641860002855457626215007320274656728828476848232840074148772421628039545033853452222772693783611829278034347378650955825446920149171532518673592405874113435711253235518604383073316915203817862774637224059754948098320372982370292774115867647675534761792685154552041257580787578755175862286850040904787529600153616240662898002765646626377136512607795427195442035234658023946175957641114936092174587066120770841100442481884684897264570817236592806386172443381594596806042976686114454422621644111635440513614072164956280851492227874542279141941238628668729512366990213492537057170633783449463950617563998822779588625894991804052686895018232561793166224197034316198783882314827294150849630039867793016072489368373870537209834250381373096802175617475291298707934258031953603129118999040566553702336503000317491999820085987554103564456816055834317354444889261024851248092158459831564727221463401083609587580490749635927714009240786360918941561905348320833853881058132292661435065065184942439800634005060224717573728711819629715828063730250992306511956876312960116429473262812556800988038868591351770805253012239120270441348843295543808304082588535946871708126860334902246486835274319072249554518903554403557055003655891088319720448057176243031729113212290804280778829891466592910534025085965421046937381475846858333550060582404777563603481595602005923047170398589080040273587976147481569906524947014752500581099654374926202106941565981973307191576371685418856903556455845213980721412004332999030575469754839130819478409616167099510986918546276650547839564883781944546593922506818185142037003425296831784935521835411660058038499356902780912082203164946941536454962578841511650912801947453538357336344155903390824020840957588315849806269430766346778309207959735352852687646646068851053275691609917658431598332691661533036255724181664388430062233718494190297223406145204484915702841570910021749539820950352859377162139906015509815518530651174386642473809881852173284370668597756137328923916189135944348978010495931915347214670531106722872888973360161967658910204165784627571664001614349989044416370843738218975031490277201299614819806711221052991389583174916192626705956188717764978260776146523936422558694992641037519469624088394280045781220566736352817807713763336002097786592234193420621019466425175910323227233078818887588509923596364125014987334629336025616776083060703665308924826478888103187552982545156235346470036571140148814872977342661106062318044842366825343127102926763050550951499540534239947220498734819790453443115992812140756004499474021768783589090533732556468685171896510529086884096850848206549301512273882411530838374263076457188200564063601603667197462503835381844808396804376034544685241413599441122607393588159553034809496054941563546033044437519664031215808145776691166446740481443748649237896685211072586917346142520329367097759672665068404173997296912033000404912832164641414636069119747606564999050884967410515500493960151100533780559917110446976190693497283742347917929251643419727781400555592096303541196346934104686536301023676635270305592192304130404788434894605785497246333798614899597149108225780804641971751221265213814269135907444304034722040553030194339880368873815123445681328657328906390504245061369529070863435699798707497301807428746910717694681607403419117466744142263978014783685548890359282687743326043422097078189161106039320978522958577323291417355404901608030841337443173436860178714119927092402154147993765398754486741013922002146678918981589737471306890643411777970708527030997535356459593313824338271988517454636212575674540952158525855981316438862467582162780699179626980565962746050209062565397078357328688981382185700509749572099560869276996090723781014398840165937350417028356857233183295638038627841833273491199675084824139148404598783561997055341990971896316950384909636970300174343141547757034456578640606717901372983447478003095210902555717422739508662907332035913418125480897453650200964448708370212316086347101537373749448247927948812588419313723637914429639889276063371963883484547092817443271465854369892299806179597088123343645258204410486413985437912171869968272064892478182589100441954891459184699092077773175006162598436377503473252576571083036844324761620828245320207964202257454574051031062335267714014063743087844654813704350824258151694931847787189755407018971782909029419036737073607747091030170282943729522368525979562294656799576979653284913721145756715592324507445544088095560269278425890379708215923326137480440486509220654561622372180384211040434639224174376246906704506778010507277644371701468190989903026685917495823735332324521637637001793381776857563527737546750747914629480364548536394486658184613300317462175075059498139212315047356007308514452738167529807681716194340684380735795197389514507750459049695502057014127694719590245039113277214048027937689452905714213466635954269902180193141243891821369504348613617933180575435479655913585790967994147901233023092397584318977504662188211292047561388708203670439259574458756328298522094475019588798305599146606614445134728031399913362062533221889385747630189440137145940841456010507706695627966711693596780146062937813719206771708067591892855428850980813177297206800198893629474479712893797508378202484049013887008865502650654862073727867547267060206977222142821924806726852463469001155564151233040945287628760876663091657913574680109240636073428694844655127923837660676632774671171756293906314786791935121664527205225203189891029953541981310295943244276176440297074476890172626926625907551742971524062036899561352472344570655668357021849866566025207544773911069876678268099230683045544499088290154186541310906248406066696070427327654516857191256567910940403021757621133748114523897320119812815259875934149531361866994390770924090461169424554539872031456934620089209807794878252421008118030026027593488172152643607093779132091314398874619309506134891615768025423451232078872513978039133658168550085407520292573758757560881198375226199159666056465796641465097094302110397168338947335997619839767979021683608835151380767851146025283945652771787454765951789669428931445911835647007454336229786911329838022216027797932728546457051432124511292657561049695429892341414054536672505456280403280003796787565322774666645956752087280552236372902724365649777906094236084264449037792293601331292079148148071049757711383662783140509671998444549496248702567595959414476774262354898287167772105412136561883197949233295202898630767431917741136018039328888536985517459122792467149456941300300646616541061679564577312538805434739326784774769933583413881205832686873740020276696278045664058648205862451148706745871764295725642465289240549102407121185795323321531484675026372043277183392434924519220771213880049843758471524616439872197149510169362989727370196096406805007695156927038008552254316910026484789399497919984564949309572532955199870489452607076089643428877003125568588183501469593486473632543642881332599656507231898135480766559229195724656081004980169439479111721171876535698670366376017820267298633101596629509024848941156302078689798709286613487603938616337977517930629551275060679311824430557070774484267833412099965406688067349956617972057267980255699926490665978725334727662699489798799570117366990567068804983662077048196131880029416511080124086612041706392525515920223089837253097984791323884184583961034132944216100328837142412258725376523588630697695887674334667976560017449807201168924326475638216718566863416361492482508290305902923364013048636206244356853960238656274199010918088714186124285417248413740316638243134299557145408890886938877714451476295347049070842847874194910353184096666876573364044243250416251588899859015950256573286208204937717173681956824761458286341033428599584266425365981692218701356201822537741138893025894012361929440635853481993190989095379142105121529485431526130126201883207159038638957101824044587737811225331077211958050412577038050325689497153446765463092766110188376661646428921334612337226806310025105047373963108388298191933506372012019124945765567815716048184949812456434655720290783873735381187724028837793362467750819178985568496826145903901308367576278455149254265778917503797189937391336629819656634549490540186187719710450040162793509540945071527240126394797405004143446385026181153663114669512502750352739082569379414314692245184767377654276696971919241113081434090221063735873962281673634928838683977527791877310428727520973763051121573477161606632975026194028953036654653266711993373405880198640013522171562141427926046988814016076333571767778924399827440998557012300905334392350373097027049660499059664119495209868074623002741276248035848862295903064466283092850616754473125047277228457876794375383817400365546857418266454494728915825516974622469721047075316160210309473856346379461172806424106587735478914006523130113302677847705682114296090839003791820707555229515431728586514123161943192229353994188315815960730138806663273816990873045363861915113724395447614138912849101531517741706571525904302340354056267663346505808736639699482980342605371896822243686576325359480250803040639937858061964459525801302691435266655425083563104289035884531671219655411765809634632562169091113764365669011831682627010170270772437263900640849653707688906314053770932095846884664266169788346484832140518993792354160880756545880154348948934560874283301082833496270394475114634042748865662696604441811191484523993088493916617465950482097986817282211366486832983064470881538042137885264059982051959263299855953183579241679975662403768454446261871662472278560436303480286642103271441284639117000490737897172236433533435114951975415047006616387713534206051821316969000178291206203322909755263270605144316960236491505096313870265389029531176484538812965537197701751725673551678522521849208375043997266905046286359948978809502773916628163427345949229579116790079865771246743331872924166328036437711769773189578662499072994070015802231068006314356011449748845366298853419954487598947733407875110056586413662928700215344456125494747491379806265334220232586596897048553085706201671716729370504292336697177759556275546422288625080965216408908270590540906838827908998474484407317961018014626437525424386758873276033256504619074680548001641583009752563092523711008646027963772727818351661985745444544189473362786084301238498175897142347786304677775490147097866374952374308950733411140967726039000024225475953166318043796702351065245065472737718199641917665961624249635488531519276203013828410871098728262705812823286711892912313262796075054973616215983821260422236917550458459782628249849548245253783231597774203530473349248245576630258460696523042843532876675667511087038029688548273746143391215939771322366446197107069939447800559421657207413878238829233985284106092056156916331410327069992922456171263915822337871184996915023062365110017518925362467972893439643837777144450242737135148197742467694367579075405071893257741799151411044905999965429872093489933238647536013045067984002673102715158524733490242431218585442685386157974260040197443377442895449878239308102721819890650692763749152366822083641081147334387562284523679391869389176367324506590515668527852437938024963464996549228947999452339205148627406945370981414842297264513416556872165446887267437466516293172080597158657510268877071745810850928907278788823064044323307551711265436111197146739345092510916184296402016957264052059179162307982716142217312054407698191301968896448770532917043424136225298475321165266057723420851594101387437774688904340660794147208289102060729556231442917336314557873936647767634654124507634424416015177618234277063812878624839819162488770985794535401957331647671142809353128468283043210502674310584165078713684355456065590261734197883458954793806422670516596086566156859689121145693660718640535224281275106239302719117156049997982618114288208197128919005419364853940354927390914914943919612077069995896801345607154883453647822591867256685073907845688923132164736679917403649665279248773351748875083238812648767199150570000186413053326900872503650948605249419186811816525376914654549562680253736813594265129118538424700988050481170262711664045549986147964899605087663718545586678691440770818903588861364885991665454804759350211806888858200922199594018660767070824808828064620903696150903255521810265208703403227532909415479186349441013656833551104634537872033979984500215813146301498540583508046823511115898815743444895875998306541992394827004834730696116583621871969143413021396089691183505752683025752773239423784366246073966776905672686499218335876877621169530847493198606501828687710892707421474574165304443334624414961212891582850480376704367220892944066422053588288922868868309418426787109985457430590297746117225608555875988679053265679361014554876908790310328902584647647678068593404912703132289589203083734710148626426716160836276065928471508711691645887851868371128469281936079369693630919922003173040625609230338496285607928852397815813300334526829937077235926300772691367792921462394004307481396961298162935761177257047912292690562180385595039024861571751053442105584252583490495713888428782194516905174128232764264857888143334451502472839628604644442858177890857191237213864822667238384659155547104021985965037460105034045252891644066254937760150941311432927700548838524916789707921129310199750438356017433422109969138415203113092447824810570177710758551146697346707473863934644180919056893270819875190021696251489849057997920618659619121778706261755456639567671270789753560307694523040301694780752915372304561392631225228146767862117796227636820022351986173147779440926397063392060921837770884452090756017348869511149947127110023877920624615978517576992135402272595616601692923679234281305583617479734202643244746153517889108393649243307982964019953477950012863783857223352409920120034343912294731221035991421801438386923070885895817017383977044253369805595873372862873662326921452062099151014815244214244799705675093989932587835573026395408339346177914380251569444310110059997340370391220788984853810371735889095925029535095039200607062049666093908625208050563710850084333240944898541642746643221305179273120093643072843283053618136869668848503432715303203156689854362095705965855187276501211022600860007806278973943886097072588083186257693112046936244166214778309860457550623152717310909552106469117006577360339829628719578561871385567344621559941943835379658752413784065908241360698048915417222006016199291788497749301860607765006023937000040793833107415458072278315904200704709420397385003371055162454576736388855287326673920978484585206489842169670466479759198379401440614357569667612465692332204211146032866719615605976213255516294295037166011768803140876638819810888463946761414531029077036257215731096375609207263692094233678865805132210752748831035350818669407345000690730473251755439702231298986682849046524854743361938478295676638092616997821458874181822936929932576916480327385959846208034961387888615352621657206616215374959939254635171387031844499703558782681099971355802872160921658246912014396397886678641995656626087317430261750075199840795843735078275154055393653113387741366236318736554422156706299527839943338322945890878748699222425410625703629631137745257409002320712059184907243813181848540124358430772409954114070989464337237639473611813788426536567427441126320446552656447122067470252950225413364911530057107647099264482458955175515709502993602565027799397241061974102837240453085065696443548654064678665176559982684510006211863290564380433217049362018980420784194830901508348484176725009413235901049108953698668810171038792550512134325884515975189971833615863815024410376868845615086258160811978357909781249329750603501983510024064776545061309467119786055489118102258657930222072522280952801376871834857143227639653898395212581973572912634987831530062472346285931332939585704570124774940499310959545170482791500925647780358639848136595813571703746877271648612598229777796820398036725023165277615163114157638715250902535023915424693446125045252796826204039564763935629086570772863553507816018549190161809504439652738786279812357327686938172721695937475873538582274147309027322626441035824083262841186742270218967440857264110458087766148603728399656781368253220790028504951140704900927009319182587845824975039729482778364881596394051819803275574230899136520653227441590333454166744677147549104798907791907110142152178179691425592052470330562747473400261437275532161560077917955550710050736990727106884399092518655097671721460632047386403943126025365936709544043081047399245339813032710440655517489034700279175166431534922838449633283280536419887542993650824584777503476278193642145115811196651335830271331487956223573912051909566443714282168008402416155481961569739912989983242428790503269585485869350598908720421492880419248439275874101818314303211110205159686378608279450814904102120285325752379118404080121002121978618000256942029129772155977139337642345148054617132116167990668218611672551287433590749771885739994318241585169212085877787242260960301840701611318263331121230684981816665465898723352025502265835386063070699586691807105684725935033658751195185617817601181030551070464839847654073245917412463131539195494185435598617409924033023610043224560855259187544222276527729301708709718499628662209339893384532356885466850430236533227369473534591894636848346067377609768469940354367647382512460807921470744590316547538715081434199406386304630613684893452048565398790971011304672388021207763731553545003878119657010483771055403264987864086503963222752540766033162969054620344097414251847791785395480261867298499797075496490504297531963337338485349800518106084999007457237902779189391401971940455781828864995489042723129543586620406828361311540914152613992099274984624945553633777548202137790427800394470301381231747468933142316917123070043465476884298685832631901279390388359081906961613021783216901360101371276706477838465829267507376658963531286277690793195014829423165439253195264303181273851499162695778975606268447705794151499983469193030733632522122794753845002787976043952104368864713087665196280938168525671563918095115036404233270525715584169956649029064403751305103312864584173882199756645484273374972938778605392556910687436233670684513707374531400303292770224963942706632297837916953226815891772178355876636831482401803912849037537977308074017334467836445787187708194655237889695612313911382231838469864869386239672207030540959247971284033505003213288378081826593394633384666771024192236925086672678032429272145898925033912025361665382541048049766940876166890519017351847118701539442497752986685338560914362194165280931781508799665818965440707929125920014160015709117369847352070196094183762379577715093200188811441884155561164043232795331503584004546907756631174758841510288973290550222646604156123128517260073856794972623453439993395992689037389881125344134251368558899515142104670290171025896380717465336306880885568218219632170285621507700440515088805732378598251257890147405791311280548512759537519362796234337188334083126234619765937253962355254789084596744494325354906782712349559000947188158106797188979475836589030433798258149954244553821981888487671633946529480975505909787145110863215054179153882456538697696925638032359078567728725446177522021338127962131183114526051774942050077112422263940736052169093316028967267527106351417410996324430921933022178952570424760389118891982893012866088361545999639550965576920421451258941304039510882535896397315094087699727961994071932142494952757246909728834662118189903634921030392677161727445337414158897249576828714073528514840833134391816442896124405922675550464863779908938690875008061488274187491985567306966749266349106293968742610563014300969958041263280046818991671050070109587741916554901885874143963895758176424163270512565666814333454578112702573911540712282853162626758241674348035102252848023788034994620574372619995910092483922084964622354053832218929130915841018381941468868888461130809694889096180476671006251545806967016791481550713044415490165673080020914826102867445480112626762679993304352159174848241119575255603513317971587882907861190441461404849379748617743788401702935916915078370903090709519937789857590123623815916802064202766481824468853764524283643384026011502861175582188117154024724385654179218732951612345892871992059535715508672629183426297414963436398195819484329031283248541454954148935159229613524334495447117027161362219424200239208701426382576565008463038734446132562455908144793974963717198717507542248153032576717003704513883629187392336755099302728399810585564679272105469118182663290073889710448306534135834381619128756492451159539855110346563477140655636025589322056189133585226169044436640725211988064226396316489584269343808842270385169014847307744710640632484132221936897663343388058744675131194771371108836167873519835385769945111751276083472351322896547382837068546916312617026117305806612519633653620500177201028088089150571818495371027772465178793360448441050910873786996758005556201843728041015412618916791440907251965822115372252449280723820111140042775375722743408534843645177580089979883509305636409231715475655612473367128883741199239185276416038598104768162823844558329256895450163414512037502587816378351001498300765350940621342445460562617203017156581659891984969217065947275519526960320251708727734114813538371818948997029769917364023194102509248949203655683101417840438336408336921969374171227195145483586639365852343147552681698265915858460405813289055184910091527208099039413110538430622217484816049035652534088939797979099415246203278167803734454027947792870566644813848820417771417573099132884415968913299414366447442569688548294910674129160650289103278802379606767692060821815017434750559108525958816215573607604795513799610056729435929273684471147415576079149986136553066927797930056529766209497605752285754317189584907037584556911543986669434808529303392810154881051983891489354900775355989314611828414428344612576979025087597824077466790205050983586527002778750496804176869316222107365980968500866742391995371498831983255524379329958255588098512666106758637569978602592529785790605262673551016365983009233049488723712416664079756731068499802206721718057507080200219206160179261258372367217695715999861253072918416651900495470856048408859178604160743397946595389213824271299208066447251123795802555108100923543947392758045173930184725435807249582381014430824572951149086050795429732319897898156359949361880819081940520901913627337743816640090576052220943911866610740708206747760286829563363085841240604578165203401504879584783224319250337676490538464583864929383031391711444379068119552678773196924805753087278244456104780901392134523007175891981981161120512129345151127190676403519747113501405618903714716288485243637293949232970909538780629106682090312872605888181548567159503812232101482436582031997814023795400118953674334852388442903329191490694066734146692084651741201713362337754581611557056205724247631174458109002136750084221626799825909732945887149495523091808300239155705069236822678650171134516277489973210910780098022139385777532491687847913807433209282202273801109766497909009997887384122318363297282369563795405946708167561121869286460124715818184845113817546942377865851814047165451409101387254767899881678276396583994538815726678923322668061255125132912896593383716125643318522607610185525180874094116036931113245060185914182958633771604176745108667373425932597716388659528457912293959116178099374050080363612304429983800534455323870908255480953692266505475373393322622166630978861179420320753690190137671966484463161027150939853587404816647464655407794369363497836569170715225903932326383519380676409556200829131881386795339315090603914610165065144991187405423747511693071208340720581757438815291172378224039316494984547356683964809495894553835354131724564597541945030504409429068105355247131931930848156836223573903234596517195562827459693837817409752561452596961667128408091843428635244926302673066656208149972425313268360375089973023085334549154153221460793401119180187434059040472382032302838107348862168034125016460984449815108799779518125465308706543989244290715641808173090976217846652211974204266978641504942727317807556757567585984560318056088022425268856915936340745795348650181467797815042453163471123910075353326435539496041927923028311679902860302256898003909769209811157206228099721564757131111333869613928180413116915310728305443843867931091540554412581428280033853964124065927082833951833018771865463524096648836592579358302262455177739778642877606386341533211781339118846378991917166234949364388307263813922730527039467916986645264586359492582217543842814110224504871422072611589193264670042863667157627864578077094145400976312806601735408806672029009339810114651470862662730731555042576088215826242978521226568300492678513904536672321831233861476900512805027020693911844646057834993247228348274050954113599664331652850431148747528424236597306854765408569842808354176192490868531310331707078789432563478448889805174730465896509852295016945822637069623373052031785939076135544760286961233030288473826927570624183002113380551402027244929465453760729532166487953418850527988790749705283779873410170336632974934946728151116888707709878812624308438215764496051157855877819897265757783218226875681518742610324464228170890302284570526147571882044912072435846793301414076177871741535715699740832496643340391294497599262561588314727855097130577983293206353885073803520511116390386106558864647822827802025435538001687608716028131505546781897371562343761740742313414912076161751577500666914641342238876477215648839971234840395172159809073078742820154239000506235389620627163171348578114087389657345344483062553629836341091299567577594402458747602682757985755942742306355299634055305462979297775653967271259341156025637092850029576183703241283749158266935821215631496598069883326634709230247926199524877628915600450273225800894816437925851632771899282234546783425828753816262401010747078169487131888343229561146817693735559414704999428277263500622978099565496118490467054125079776293377200411624876795388699943230994301001992243043370112968996284579928304139218407196561002059516316298073292835849995012023099154977218360684599795977173137943656861558440579961018462584112602482618646970971517284067553254210037019064707619666164891402881619078457386528266811188653047355881669572490902599791606130265213446611610257130559527145520463984606715022093984643083985140532660536198123134477768848111146515465172715885663160729854033732904406255684339179572470302131758360180184140419961905114248373940929012677238126342905621122912225984564794689963288081935500199882733230838958605867740659310204190762439153851303591893684727668605831370225800072205079203810855818229457143798676589747041927402769410533355524245291001664765170650228001382347225775031457553131963254845057818335010675315897875249824449429088049651162295801757738176715219420517886542546881829616625569926691319225374845140778173029923302362803565117004628162523973574790915874192618138038627684515594340483869694513775090223762527147874619487066374919436181137706142624701817578441993839787449411222210361775823961685740542190007761815803690665567037210849427999539922418554850811215634821117829121002858545891017923348136776760653799744399393665035890249208826775229869714758086555182286918768495103374607851311742138771970923184797313141069456730828044072045479039959945834852102188838306630078494214079880861181413702923555777889910717179538695595225691850894765803273455325074641578455644197733673539255143316644027927170936148848332056486141453277930042542433004061939029254140605446287293856581287762911723940656900694619210817112379578011279769627627808301896446600538609418301808203674432809293435111796816660291507791492520861932756645501132889607692343313605261545696776581062539035375844023676722470452604376279326910913449294152724830671185699723122253914409126873475389850994793882452885844269817745204419527501926860619627038776434286384755059585127705095537659494836740255782997089763871384543648541622658893998673412802858842375953948248882813766408832422850767850734930119835032203035687731883055273025098670313178584729829272336967803415250189977054026836787154733221811042150985523401294256544926602586495566793645218498889819450999933297340804862563397392889241791493097321736378497881220758734245164980183882781578776872562206340922659838327902469908388109690584820847958679381743927248966608733910375784090963481987006900471662374963235413401198299041606249845367359665886410270920027820585777753677185800126988631057323612571939009693560240279385255044975272189466926864376824608401374048098481149452403554029746153563599118137139188830170885966716019757452153011406902558938151129981897974111839241540431220447688893093074091592845497788268571198111602188680309046226077033563963522092329254589122558855172130107677925724079025502323272489339567239427884260414925456342791262761918825045107705526188664356939269755582750800553104076677665054378693151097438969781594963749953865039408609020559735843345303800245985138465049446881894085353111805998304244527556847221792835271134013885778259178691653504751459520705915100974917519462051622912957294682022870978487264905571493562794868844463880596366376282067365037900738528165485971558527297361129797504645573536022693338725406041103617357096018815579282843138320684231999590630659114222551257846105102079494053691111506633608187618450995970592506231161654288540474804903007980640143581394257309921324373686148595575593113573501900080276092445894634684431202648303790365751202048578433337967518481529267668712806215022125724283254768858999339324758285908420253713025793683875085501345006147123112413635080891485966651042786246500589653262011874560055259782391912454430578556273416996664759707102257391780530163874480578775083722477365357174135695670740411449333856072547934728606654215334321874675282824040852960535385665461079147963073873360351324480162464583269578496704397849038836226999871191140943946565042242257540594762950045685665082976185089442835728209725917024886898419754239635723251116475434679492302352872896983522169637617749849043525863155945850794858265607573515272841382241911796436281599335302181946081853182105216954973209687189766595167119500115195496997857522387886397369255544300017877014923315747993633432212827371100782296749813778396584964907460811021111229864508622339488890212420557042920607052580394053432910004567867235631044289113672461753921688361865280922844861272965439893555478485109414671927031167977788160781784525396434866439046789299315900487352132078907630253833109746549598583181462094770222400528984960294283112504294292525695559453915593480253972262443132330136735643326697787458243251444890047665348323024219585900177120738131544752188904581687971282450569718478313697629957181858454307475186600931662242536648290211625510619277233204524326652662342363908565884932272768115297834833704975926337236838581610228755875147781619585496171418837632383901777313427105147841053528256090526651858469690511574801138378214482592359086080235114040046204472712134916087481689387855024305905136369410404730039279653614156395900764387075363719620107372007360003808044266146153279873421670704416876299844133222278338041102530326709041011989606206959349442131650731938450601432566634142434402755160174810523930576305762155116592032411074751731370612977950891119463065144666259465356617750554749995803430500337773220766556707936586743435417256679475889752260805025919078542614584907522430367103568934306557001947582939777799800945519138289835779090356137807435977564701037312772274830561375785350893348407942855359408282775340379219025971414973691172101532020222752814100309276092552284257092953317081511777003155696288512506287772602796730683507415296817816170106264313241565018066547485834255937894904937660838508831051127911199310534814690281812452750912637133190937248980727327173897452199773222568716597491774794467347963352671880493900442228430349602525164467927740892684976798125622329338181216132315810073706827242928745258614864860056457236909534367886058966841388037987308097188476228634047192993483587471057280715242633050679255077815320673474823836485620580966599198431164617769753805991107354471168145892410652479152965116103284511578317009745415526508199712848442341914409483240069006396688483085612745491867856002902284200686758736193941440007675684043390941102967272018266882908844236674339803779605686719912596866616153085531787441358112417270476233922457110196144758538777247506378838848059120867305118584074173995456151722683765774704309505369477462933887677011300866922315762331881375867659411160756858666341080779408876419691722614292843105976439038680545452827308811279475213704836105766280886425957653796325137461023398104050221855259245347338680130698521762363556940948660992347757186364967673982320955500041394053884907067217001112378107227675754215722604195582435097708744662229015841303548708413908928220538833153772800945031932103744187932813877787228514686406183512487601333644626437173097262996452743366307566202240009473442517940581324825816051797264028480429197597502442933150870207157576151211760423079328939431976146449942262197165704646056803800606576716755493423279135303867643072115446634138516013106317794972191759568979842554091606053382576554065764885662523843279708894565809735997975228249379582631356591907183314631157130859393820538275721089467497976263976231669797549632317855695915706221489488134442884897459509449235877293286680674654689168449466790322820919323792926561181883204430988807406974508754560410524584476390114624705593709841466167230453734312252521424980559615541493911872974981315071575356918979336165096738437700124454843495194978844646088890468785386489705562214010198633596177959262780246312197472847885031433171165422576738409947581227252298742725525870398034278091312108691993200358147203070951213525294778854735276952104146574990337592382068442956610767617875046782613819592203878798683574781002757851808645887651377347364297545475430535562390900375293196996102703978494542526484658549795701763297521053856384636582269385340454325136964174638564568895304563770820564926648402883283301113022078952737943530163893497453759189521894831922667451856163226845689047308003732320303847433306710359124324363721252157481544989634412607812175399314802693339751084771149738227136734265414559891597019410396634024893903720078240332616455747263428205281263437120313949126184592897981531080585518182408916736058593372506794418415189344560909573670223285392713425961367795476077380857039057482543235612729272053800951392465334978545537534940761962281571560553369187260234503877641390077255045626294317079127036210595737712366554081525152350078531222662240309877080562927656719783617878658111851931246870147119828560589900333486838091158713158264909844006790826414531986727629697346549220503991941192188272432062444975970386405560734406078466928744366526489385241875737907965777342568123877591270603532785973697716941177294470581900972071804555884709916803303867507597390760314592138104534065492708181888597013802070341222313839193362042746600406918997209531680181289638452708676391720559801554573048067001009932557508651015746824689029866756346590283986607880263310429060597568921536138842963117682593511639615038881069863308270859703238778223882786761841799076435914072998065957359552300065634800472650749381018376283910345218792147947397209821582791184373706476662425558835871703138217468587229499701453013615812769011863786593287608516349410186213898685536872407812531535755852466729197878672950265988454988699944415996490086631840391437226807065258714422989074858742689331812170811298061050924653470740527376915767606912246840246485051839186118491169142533289991262184117936984398037315648236416145701250384299972739286722951933336916804196341312964074993055518574102441688517078715474251313476686692802954932267325090423293605852179595727641574672288285127357699094005875266787270351651952023267394905117102189551669872292541977741078981591474599841962411756977984943058207935281430397788689963642456851963929355631027394286643643633658497560648587342332524430947214436908667790383624094839846233688215416253934503707431214641331640524502203541146428265783716809372525322388509746569601849471459988132194972436322819097805127163727177973953350416752965126121403804225879771779435932242285128629689757144295971563931587103472149815775187836089898306523050427168625342083000382746151974890330429655808817134094995612779309000762960930139476227718443639827119983959018191541863868099772788875318518008477536481608407810349278537709208123546635219187093505382400817582711789483376903008698245344012485761489446351717687615204781016154746188262300333875735025179777602138731732880685399575331655929392212173247767041200648614943837408056694640803342146897160406409726682447269100882544882253459892961462785228436010080170028760759862905230902558114231510144992933247421940009269759317493112466373040230371717675723221768325766887018322534166795675208823890487661503057033795535114895317367907868542128904989463103856681924431992258993753266046330096068530564216555550857388002308240208877341806923593944013124242099719682613198472030666263166907466325117180280679280064112065219522104911939922526548305404886496983944113046313929357277143873980580707526098940605480604601375239422848563662682959480714418782946521513588847741435535200764668675272459162481969294924378072976597544344837834766359911787548974485559249307478059390781035021423947719746416352333870329591196304580802677529208067670111086393580893529470182790961965101303637764944236967217032961759970716540106772980770815167069870909788651657990047488733309631152018748121898077282878262824938856522272677808790039125448647853979617157078176470650760522220192646059771200181848602791703929297200187329733756108754893823251124422116985537011546647637941981630445864178003725931270436784323311393057586467814260500843720630032173937085732089286513512203746408764977862582680002300244067779766013567054333311942542864010269033269847735892676234201952649935355555518695435626979615480763560302217859866043091352797326182402454886637794398861400468868652510127794541159800185948311293916469760383041151915504569731734638183138645815285487021102861577714132987496101050210360458784070473872261913853775758208508235532189995501911767686346848838301988936288822009157186217540438026980992456948973171261321256017492739580049098075044472340407230281084921302675109096793775839071957076383131163203203416821983236310541423839134898647523372172919506375901060751566029738868933122599773088310145315480483368203240567981454188016037536340418966485692319796828300485015988759881417227059457785345364388147234415844391417977575157644175040213481396584027224466341573585889580900156543636506559582293117924391356992515487635925728515123505009209231310608805607908305718910300010001389996391749828488301958056394541639067995983966256342011196804504295875013719042680485467752807960204124485566470903010897386488472987098788463093693269669349496409499523847693908885900419345736524830069047846241966913863747123018366125078555989470446864880976436806843852648004411575700943656810709660900755286263781795378680368063111215229946932708853855650531156536087221355016575392780796893316882226736755131886071689975454051514971646648871772789906219718928593544882519916875972943410491317120446827212609084513657025617657071499797410409727593322687865370242250728423471719360823615012473231050528384085657582652795036690984903602704974958909491643238426535126760770085147855489279036436195892716432272140708988871120971116647655783650810743023349031730424289145037008926751269212780823805053806309719506020594620044238680207518388967140281315253169854725545856085877359386536038499055923684305439386970193979798818873368667811096612718523753471350101884113377630513035190288650770554931465097466336388042626092059222360351405182361215114342337200381815674626418485929072078983185091229985165376982825222493178967714617119097987529583567476613532817417218984025360626486494148358491745334502063237695221141398472252664430509245674641490019011178122906585608100851069743412483230902365134135979673505543605526175726545875073625221830708338473114444499362504355062234545952766486612818281754417802072266727085025193088958588703992465715980099368635578979036250087550689788108126046865249825504808369326700246884719073558649879583985930744687965636783259434693750736377956397927681892180323509699113093731285038215897547213788928342369993181281709496891901082652451484950227736510313193574032425998788432988663579157148502788148415813050844170923714585127498553782331949098663136779945959014897488705812042825178312127589494547498162028372436384045598734534214334600370229639072096082973243121163697410009905811335304668760894035252620759474514471523399149146907258681074947271171827356956924207855613292060716233097993613140550542384206496861888146193288696432152631196177739368721700093070744478460460212442108796692973784141799226295155684774799566061837684075458639174517977488564917575062817700271934145695178112243057297179745790667262559589482703575002451054100103423982201858006637287176084156842952197769020598560559309082343928850549480933556774926377848801207897484055503497749994247800742748037109020304380410236173601169307530057209509168658395868846905490571514298397674948062264273674707213852349699107812358623467459812859992661408146464734861864435838111721534183573515776979819139570940830238422630984432151998677304714102066233405490378350961926790610859460159710150276942218879904102586849366602167171715668194197525722552654167307438684355911650307581158703749415060918378894001932945193923019058337893667273760284730280994303138825970542087668881250882922140561305983392903789729053229186851735399960026406928592439495626617266103589162752787378722666367014759748929298399018030870527342759997119179631988615905043870899121872529553905552020194478210822728021900017112374177472328499949418362309504880627365561741649024644465917719806119155723882299070152855336550845285172840637054016962040350363170123799291959327042466319754916075058266624746958104643589666765805864341843075299016368353556903192865386329896450786012334771222705838573661719983180395527108134558550217001800775331233120896778615063189278475954754841537299224120622534501533327153977325250496275071820370015302828937053744094446847851921620598327677103320136628781571805288502707709459374332243738412446774748025167825159124237448057654921396420332150993958172043490347620876106911105873860767165132655411414560045378146234139300115118657661639090102570404569539673856325680809868153790375833738554368857224323302785810477111543358415964560209690788438778641211666658273858423339293140651379573941830913002105416527159234805453088417303392571211470135827741862568204867821489051530602797660252740056096365826059379729426158563005998261577076803078542249647072368536919752122325612441331092973193341427386026307914418132317822256896045275803210347064675777382186817979152299495723294721274285347061044247434937870769156252143838610174789285715643575416298362833944598250696677917376859460911464340397362266307798673562774711432410591382516703103220235764395565817186371466503956545403717848529247246772420448835503486632174353449295483263950972118025872303066931900080065137244467314162936960526000218483925503004613959885862132619671364713050183076603872483372731403329740188107012549180217356221388962094398590739219423718120682369568938710885775892156559493375071277363789432713819618401688089177614413590237744094011633109229773979316876398060775946237658240482116090934660269026835765612026593494584073131692373698398632207952764025130335610613599319752079632494297161441103700204020590671288523683755086683884528085613300815211294600606638249689337879629179613157239939509865162724223500850694379083499755323936994904231323831803567345046804028918795017455095963846002772053767358892911258746333154744615961907129274073495865794393419505557274698638834125847266526500881577815062145166085943040274365058268786006309291703347112063562385957766858543412653452337516782840133777185112870714811190078730878947075766749097955978265638933135531094391111258140300454631993530519779995443862769872371942559429067665698195984939789343102642581754751606665183669767464072545916433013249255000256417404833537656392883861410973807150472953436117017720201895493329464138802027437081468915506907974498880108340703251356135150043389513889421301811963516112173016422467826852999665079011930901973567646402763032420101812883055628785265225299595732097450882266566492336237274071144386237494253708194182222491116006518250570926924329002370860907643072705799793458639818898632666448787218315580524260211831262669731396677770326068409493950688915781032619138139794107190739392981393038902800749951119403333067995192864076424287168217745982415727651290651363331445898269104774414369122474736393781411230759734107905490381238868796184905385155110909333842286168675460084977076140963848021253932227827209746454082679300589110492241912083723213496806419409564056701494535008758214739268764876548446647918859989099939491622780750764286475026711007288030828182572425653480565132206515356097800020609835883333080079995933998720557194575237186740152529072839706461095213886182000800616766447416853975140761572323789327127194940820702908111654521040545147573620689512298202601383176365063863340492337067321897909490566608516402968162430739804743881392035101585339893142209551931818893945290655696075675345426048663138429966840096305906864271625023346223026319716813205945971310478434525245718441885550197028452694042140048155373768283975051121434395001592081941628094785872351756607678549365393170579460433980898668471559754665248223189525495913096841705668858197559977540069412292620383619752579105116910891220762625513240196123873388653308956453876706807181910740741288911340750811378657799176471973287790215975016903987395448358306444326875622727150121675211128167737021020299024121171528436226521431439405652807742977066743070219601716354311843729814788724414289294711623465597597922812317677683559270063835851848427464968592152658559262537814945820339335506563237888460746883182460774488813363004600008725730252781324743602056499039276485447999122287183047388854898785614760595995296717614748046427723507112084385634902175920647868180362951081702919968879307648872862751867355872872214713381904443237504096353941397805056173392936135664149227350879440545587343278635361377376262081106884750770097548826866877364357456958335735315328499817096170857364150283510898896161095389644640026608106313925912828379434072047663827073620375069450249105789589830302865003497468144447791963411299056856414905219170848369733835344204409713483590542559956712859066475924619011987821819923276384612291627239782902895798541157683497229918602436485679450947435862671379501514373755483201791716014505309299924453013981029704263739415273711319627007506152917566816417200730145698835527802297201318781144807784927115659970104905653473173790126401652597130358554693981096002920122445342593928449798531534610446828574402951157073905125509602899049816196623571758675624654565498619812579813413416175824132047631076934750930528323705003024813465112436109299293380183157689700064985124801668428202748884871901140685506264761808059069576143558933814958367256129689770861971196111909471545754649075123069032566886190393921528300958391701193087171119535368044937823575229408488996943703444488704919406410383393578725452159573871843811571349966780213095329187152312570243455344524376704357920591814471191880308838964254210335997113822244890974666623330708999162917447759746287632120884768852010430519744443453103648819919428109409811560495798856500206344229413842009133651140740861576008792938802089174021391975727057148563310329277662699781826232736130367993705998894114177213001385811614702031254405411347634486470213589530808942805444852616569434629726806045712405289676645135266861428627340071812959471342534061805529419726962839271190115437163483776114408482712625664435502693275477339950591243833841977396500342229835419100123106975315437124422953533643314920297308998806455160016141953221465724175086213626276772645682464208122124940947980666558787992978687656875840874695826990964749962927319919885378951960611701474501378033800238668702030128875444499815361692055060422557189246408613260839688086267898700143803852192444586347679865644587969905195156165888206135793793859269056970644656360539947529927127147098780288252010018181806670012190333555775350701873424429840343706215573639244431137227169093049602547365138767717458848787547613843777890599877963321180915108736950050407651218190906150887194510234335176710578188913269371754224028601387838095153737715306484618723637325947144834507054340989568267814549836300265844460094035584790881301187842052200127004660338693338181567061232877337256757955810280103288355293997141851695100538127473505301707895091908864442396299550337435906124126442387812085848405344945715583756134436047809428303154782160799900847677234608389342647435149222410697492240392784769159160215295507857447900398495575763177235600410354801985762482265388222063921034681035883672287188404834963720376372571188527638870908064197057620610778491880449658254035783403917580850188119361185762790717562054937226861738234487923232927010285845049654867505807627553604824579910066350608244930486942738733503164133411018367172664563266367578651329091147847125651945037160194124771333680716372691831260051942868990867274630798835807853348770929647030116370020514681946521388815665584442185195397753100344644789260296283224773199503018297163984789029052526208489374621100544898667276888468365320154805995767796388947049985326605543975767380705750518881289561334279492365658422992276950595101929295972610867294155700806873954441658739391090098694657678363849498456638329544335441836295915632756947654658211736262732789532050487031779904773080329950070928949665888128001860942139994176857334187220294505575001285155173846122620743341428006877135233464434848722414933726666769755975957479374084212241964726581222863248141779484211505079914317719795625261033556272907926301729166852352662189359820771909136274765757585689410608138652122178709178807578166421907444775305292450527772473932585418530077859912832056657371769957738922947890888770757048193139687982501104087488268415110793773657773078510230011772111677999357893020231269423439704560710614220854656975978276842357124674476829471989508336090951326080362163738183062582076348934080011244927262170136048996111192698217248623302044285842137944699685434173594732301224431195271084523022387912325482128919837130494892148166656326499190770917971145410315166214663745029486912121346432045112399886565761351579889502492721655905665130915875698177750896315964892068460859200547906578785128586252991365573219636938382786067098108831082170320758236623208699463700926950651932207110282070579095107279369330658764727650808670373361023983352765989783304361502277931373329654539329245659018097798424112381589025439443848549345946076816252590449229792216030111294608644128657194118288065752296228557691184305702002770780214352171510033558674570677386404458427312372783179153902847677917434765155820292206733259031790978966199246312385180655192669866268743786480973050667120481651063340467377219657249353403768989701219373795806558977115062285583007008617479743130054829021736705238540025575751497006644005514297278768842416852061500709603793862474313550102137219875497841903033412631249441272051127754714610234742494499416952686685670857637532441480417755659326391296915406250681119651999578257512856804549263823765273337884195248499787527473962457620037164655551252607712246971611602806298673712373026431591154956774997088114619522337484057017938122956563665283312743932733007044951036944433104299662631458778499238479311605645674909914609956506579432802442942895465448840401788356057390737521214183211664761919113988291970365326135601196334675702857742316693984411203075511465216331467160979767897703765048061157968624693994169847535741450898711368460410231166920878410859996034563786092413525272398718619648670101516062719346360449546038429359474400356568858887593919556771017925491952100598011747776546403017158192763215185670595488093326508352771983467936887252956092625277681816622313068993497509413167132543046689044646860045457579385814773725435567292891098013363136036941131782789804568430241855998973950833599490403998971370747035396343986902782817491381024166595097394294956705811658874271094205432573277513713158437510201269324193261512708398157974490054337722466348256694039393708915478809194351803034507350092464059970994382150675983888736414192645872058900712092532876896938894407340560076639159630837755492225885327372558613254920939214818416797605129768674303610194151144727275886875180867698954651787391269196631290288115008655707103025074156044774213759019005197326051237207273537771808836473691696181959955196270512654727649029296085694312722319937944729268919681669465140778092316110557880142872361158932186615293741153465433817603114455445078135635426033975795920217671581904806822087108377353055708368975757201273491179960659870318140203488857077442824088475437638896106715290180133092705911139946006221895018980584896722482689040663440941202364270882672745938070228534225617381428700565396395885605828271382054455713639963143526579193976804481518631409194270974718734382294193412281250099089849235382621437768912101646598650413193465938018017355366543469478030902919206269953493556976511980874999320241666118925483145417863888997019888138851405798578569547056087614618563682236707293130162866460155579243706977687380268938116328996235876804677018678255611273827076304718285952325921768623439485922123515683533511093185376416010602730750271929977591925139453146733817137007471159646341532708611738265287572620712979771354477468388440720116895532427062668748649553890779139270163072004459901437181662134590684961070815258467592490529311869376950793110676031892799105001326507567477740886184310358758067762903879291667938389592974653750919428864684279100343309050553562136148569344680731959330229838346966322686604229354880721854173716297316681872618928195630130735669782191612604431688161099573089932715336735680902915336336865814314229953962891938311338492703969244962552848405713135512053531455718827311208509451873924366267775456979247899183217741751566095708369434920180858051365980432584450728849606393225358310421769573301597215020864747128690880969849813505213990058828135984122249781621352491802076701595170432325658440742435117673410868543923133702930424091565692930882507703142648121971455356833812600382153086985121940496023283903565815584420351744392112119443610888466150814104449339597686857384064757198668303223163637855291454121566910350992294739393525947537439158053548922073403223287163477264408301367135769714015629120994222522419702926092436288061523448331499790332421853594754639512180419120225255668209931198056646171349297838627561305440189202872761729163170459157924964835101370548302090403304699300855930077567231165829818880499536960120707804897773996935898276251717767584225946946653746006963708075078875202072220279826901960272594948785715287711362033022259584163258682956323792747882399392216299307355338656498874113284845939442745222263300032980433052611369789466736173283105243832866571134270861813366314233973417206410846832426136776930759516682134810045108576898274942470402614644832374131452101473833594668105389372065759094119268085778484647390590791440151128576556860880773002236415401550644936741062807534753589492121294098696873553700081338986043151824484657407510722820538234318487345879748500947755327079976490851034310313994158879919410126928268871075621127004772015464075596356197061583628483480092224163550061499610183869586345713016197258914352075726040351719890473488986795764534336590074848370325836084719025634599700227800354877186669971181304258525902488587710820176950334377364702173464367677311400981579347488284506970306500538032335137108314224578805658440693977518665662581285618913500478403113110310001692363242121814653923464465769903279051081696951511356439393691959843334890438456816096644246355702122073922153364611669642066280728327572650220517900453631386620424145337795551514895599468994416321443301362522052867545190328410442759109756578150541071913584060420113863061990412347385148847678609679598481783971197257091505386966323802328512083413458768934777639571055863317250970088376251893411609391192014843001176154511272307833840468874893946248593705802610057557144456171059046230917842741833226057180769192433404454958417087521582889312365668364801220049806809259968453718747685185515933080046814790479139327530466810908993607655400260399008725505007553896497715110850339255944426237884123050391043839293539567652962125405417328055594270433437389712625640676538787065211424292754996907830661482983558744721197406719466763253498974537031972900919764982081542613906909821411831107786444428801839920592804086382859886983649335961899916473119494851233888776036407977096684414732653988379178151526644268070048752213366998864950942082625392110822221119177165967474052841660065610816121809829617766645840618340723447707760063876078300901362326221629647274201740478747409941021953450058209257481379938126869090447388066862985793845216460487347063014181088701463649502625971554441665263264571795161865077140520799140262131649044162826310421900298372619242899217402752338412302699560487502414806317228823486355676390363520228713876141951842067761711504052890800792808703560464562417016738983129423671844420390736101090854026791825777320461276453774794081999000905702389746008484269330066563552388598368450272046802117021248427252931017308219927762750190209843532702204172670185200863134806565300169642932223324518404490931846647576346346841795889314503377445823177445874874444878649047082794632176230220452264744666524545844970317729539202936891601275902410513900662089007555756544388250798916608925418408006642213356352474175414517222534661087080391337892245830800222577909319936393215033119070226881945161085947850912938091602981725116733553669654909585897143424019058575466356550898321290750638598909532564176888551336781358813496205407516485049179097758505722416690401965547644617495015447697087943887533856728910551542829910479203013150221553002871894617836541211360707111035204633806745643280830033060506696913301197186514253075538157213576344622138736284460335548936348516004936780963431995752730876614692317124488495866836169976233579650072746936864195218752297489379192544739211051395171618320488705981466270003378879973385170298943535676740681965975061115957922874547356985164269471085662145892464657937519883955511052030522535926204742475912293054062196089994597130330151776967730390178829775388201342693085465804527416727907659841479049371395886408203745065274543825394254082891618072551639645946540218494870417862665004166828312067919318029826325476392138329595598174240878455065057137322713999086101946212757382408251573209558547761571260991507689745413912162785319533310009028986201114803491200297930298924167399150649438424521281216876039316844824570184816303518246166873649133995000952027453587710627054098150829923977544143334004080852624921707153976527085369643949189057863764381423760146531925116921783629828780704204772956767696113010881788188782556977308608634180776837091085526762818066374849985242161982628703629946591366230455803653033352457063766300634106957943829992694329698521254763406421952533011079949389453709904604379806705652233911726589787809582977793923307305023104361124842226809424071377217939714886389505005420267141229003914415688257958474776446866848887997115202841220370763758660331643123934208916451430063462105283226414723704482441810672770478337493462545064903215262183738865196988237885457038123969760792497597087756429304515272660522117999302807612031443612470612947758152643488045445906440066121935298993968256530041692070686786718987666825785292137893508845327783355960306805732097009281046868116704588771416364358635821740342799484310113818083925840587499976903608242984828865929915696175042669200170966676103255565234788461905236834602896322598649083737413304618607629724631072349365810903771739954394345401397137940574237537548049659339104266130584448628332549876174849508095033336478012848615777828554640436187240774628260647700850137214289928132283783716650909423791205475820195501628202765949601927833045136096315529035536015354877100945096537605686523203264851920664668459381144590700271206735148528636927000834439974522569078696561153064948238960160178165075452098578049716846205580054635514912809718343126464147258163701165555321114984321946969892915096512412180417635308944642242329288168365991606184504613792984654173963658750918486064508682432142224119811850090506223123013831705789193279004969714888236418520542502779063756860269567102469474160375626705306472018023839499421521507818036621870245903095472578541526787592958216534924125863346874710146461744214323337581462124827636325660871663234733556606324432296815567971929316982884788915562421452432871960326430468506706339613350803863006803639497269393913993574015269359854230266288678511013182920567181732317966064266771438519915377707612919174254491537094747656062664822579983277117987346380137267993338846670483496200830354588138764454445980890220964024150762486233006894317892089814915673018139277340523123742745858093999780474541237523968231555219947897476590340688585153202512860997771885823584988660627662544784585089128110414499030441275533642926967767639284214499882595082724181336943907909474384653704473631766476559904118064447143850732455623387454066616641473818244605544641965897228535488302495812892923994764978786046503365345795789264356380997722303680831824018189735776564237734218675293108118003962437401516258973532272913232094293321020877841170102548910021364369970628227344497674642053751480647502934787598694379369760056192651474809730693004505823104085239586832041354419162445442164810867709869011996291159930181502690897809807313384489020804530701721362187989502323168853281693073021090729151471935050173443334601995092450513488603709439915338040322861908846420303125956945872440315711865538877951920220569054852225680809899857901798341575116923399975965305303219167517060687502814419043218858394252840325369698025169026935010527251190755944955966262067279857380915564589813002341118922279185671865495337769014692070087536992904837306730816818192456027812150685799413146686111202709398078883701507080639267559028485225250522014625383970029326103358775552834478293613904149130661005945930195435504299563815636578234446534949607396308409883772051991081247540546744427224908534195756472125907577923671187868533091590588264530297247376267582871445151427514148381833010801605535360318818637017417722723863326280560210476126244525204293386759155475326425197281633733368394945784038598005067692114705775644669087038254050648949788252824075214023423110892273384565894978809181047223273275545988364665057144087546668037607607633320340689616282603382958169122633768938562065077349212348556262861430850854787148050616904104936186303554453975924067883794186468644257775694326441618209216597235545732987773373807985742543543291687391708764430003567275372539292987037208436728113333748071707495761843433338371695318523251339412653959256865520517312581703577969407052259722598997673754537254071942759813464188143046732563058860648811911577602649318584624721830220793927815271641269304866046655488918376700503899597545322045697708132403185960025428179014686208565783006331020221840106479093162754030589161722603457969999942375240436796246152888096452915536042479016360274941901086041651218893891921381154946854491543131309109358162087463990752247319637248831469276258701963408008127039929434778197613606770787710513117791144008381494942688080252239821946887581520364925625340520058880402595797544465431962616258196407348996332932262345284106167581149944257571179410313520915999941675604158473802049423938445225432707983710931368588905257105676991579274827946201015086237692560021588617863220896305606153321586115088661530729422193441978839000815747738370858771893176434969917822752249511180854895375872520015210360664900297783160596779985536350135144279093524807172558375528726992152698161632153470323613933389242095294672536030198548506996921892469823748404285883091406587325507152233392145314633564174692853771825313841117496836029696842477086224848834351476634275924288390854866115898292762622348504375661633619228479834770924927049421498013558034221388382084237853528329481682544342554095351943972770163970394867109794036052993292997736052343277313969977450040158791285829972938198722165127121325269959546931112422172021710792821251649459236488643413515054512688496726915889962515114554562723559880035323098618458064179302039367494934476256494866210488181950660771829799537721410346895204542554323625918667237803346272754426286699752887592150318035104946265731747839686567264904717459504369585776198510728346248721093457302081716572303663108878959276861643562146094939695506666857075530939143448838149645211939734963463642566944026037000255253875676034380723365399988188422833668309739578734605950334536898258856192072003699831098664800048635737636606406110686566006448088734900471327290151703949834674318687273003589601726428833353372641591404290937021675223172234926800381919764366018002840303207334828160624056869929055444654106937215920237897415908279848262315429794552578571475844134143537159815644259702872157447128689583818267792205091763630069064598071637616987639904530943570628524113829404945343593696790940220824497053823599375698944341113591432620618775101009765487308400444015296429262775850907419179331765061085525090939656319237061800136743797764916275018925509319149176343201411590705812203629409308484694361649151062350847442471803706618615803515328650610291299174962074443797455242366402535784441650020871705719909392660392255156736590569633849122231851578758104841106272350405594925428515636034088671524819903741268675246182272122285158948737778609716147920308728441265788493826811014802065203825962838763575528352640436701689352931646220356848158423039152765922999474568067200769697508834455066299554614580176899237779723658930293816893099927216288432138679089962818838371470972519111715952477990850884833169272468191822757834418939857437394965462018732016107204617037737727478257638290586790416476746344751697349289677773958435833625169228932954587353992534211720436719363064423278955584584748758767188936169036564259642183395242344121760812935620747263357566856667011527795673447752656561102981937117044127789396611814715704370289774703334472784354448002384379589873361278223248309721936127351811405546629967444081227637214393512778962009359792438133137673781989847159963860050891503925519269488529514556292156444200777552610460425507548577473716760576085320633719569854141915027387290475814652773474960122970228327675892445806360753627170065922855800672716740310871214293041612043671885522844179787647804813535882151387126078487856944847757230720374828902421105274866156357240107142424693735520879604374382391194079634726281894650437137071412739377151464356033475235048056252108743441787651815242456721129584280090024461383983476691803242837242207627982837886171507153302671156304884808669610721606370411309021356633600427475648913934089649383726095414652068562325276991342666722182557865677914613889832572456984387780905528495220801144605602491784582267670360315610082900462170058016971510667002802204980606258301275403168720722895149919625066062874013116819572524771258105270873249812610964434271787717025374527549464207751612106095987942098621453694820809688082704576565852527284615906277072224740199369748115090467692582679266699560761146105490084008075212886550686177870316051829712199657386255115660327808999594471618926687846473653432360569051379153775962508764641626227634787788441852223475489800783452089346836675890675148721976242046352430563082983455332070403205702558487792738104678050414967121980288130745419310882673676376996432266054363577347065995492818014997867104608348846223806774910524747463801968810744984695283802138293043919963565337759119316972050603603380779556318169823247113464508854730577868348225277889025087130303589346760360945595337637517500618958771967536607250723093413841506534100185492487296858521464952389094403201099792420324260433544738432487485111762627303610075974599452652386176419645851673334648843327931825744941896095865913773299051621571850773549219211288296420910044837185058947920423472537335816832764833763805305198142228483095799654051315906207259322512837735287046246232103540871060259610486587317413563519743039297539893450899962415121404252546546785764253109401557717214981621011359854878576498676101457376400487500655045895094927249986524107060799542389363585086459679390036386170143017900712494349032470331052486890761709382518825099965651773623242309414516299467437247358966762244972080053815809812638183930415258724006261413389253225821524762945640686512140811036911988580574415632610626729250407994339984618399148801930211666011153390216698332212130471502085008814029792152695808165876001887400305305328512290769126892844440821898247135850738578840925831977473435454189643967114256992183781599999629198056732696436378284766059493348755262989636701931677439786385340805687865217489614281535238200946731338926326349606685669863383322759393828542743776207491035444453564828183824207651732399107484999535487091014411778384313929464150906675187550504647025022208152434981612315919780011827678888168054851307310889786091418252159906512040815533829171205781291390412057261098878706462153098554153390942449428499186625745070155084124398518202872653792542282228923172792242951996011067551853510724296325251599049589258210848368924675791899241208127813547546826153542356476980736921173097774793130833510393050442802356385636633861924764175614259643540555505204295740721514895659513578758253677412443728565275575239155546591958642701022048860631045276018903989846497908466581764117839801585176929036188460098425307960620704142632414078122574312805725882406661862192764366520229357170234889220598941541071453049302987039977527127264135135958411210809327473700490958149347522318304411643387973328260400739324288176700889050921772175292434726551814670299784789856165587661333884643923696673886294042066632052531979620674671102350456462585871913745457986729060987579995997694613233757410012449652350276359667100290404061765610182731660539708891986036165157418886482130254520764050209523600298128940443200388269532376081283083339811968240567753247458533511433947982840988390376264818834925953786336094978147798580890201800516515501585067053674007047691679363627774678506241710555201387315652639580827086899131000839516095548834132229683758289853364697774430528829151347084522312395232619709021775950641515589802325121355194556586033124491838818925587845503173838416851647822540839341692800187365113414585307885878461334237781238954220176031484411167751817209136926192084507876272231874231028691615974391734554433229067680098765169577950649440774716957858040967413998633310627845739826626018576447486515644000721447909154253736098134303949636254535544298309637992932469223801919265968423386736643100727947156443156533242644561282999411387829962029864290889577989057312571436957564356680656789835927235585834098467841394855658062700114376935145110050036499620108857970539932236581864426493879396932916099042253000210069246129745694554276622174560016680215267718528021053516113697373160736625041586621632879357771897805435353924763296831549691955787087227504828803285464610054933253358628462374497691114975713991108878925372091632347716293105998625043944965975323894200245273921679851341736055684330863799110648477812235109061961733532659728663488577310316099615232344711037779582050315210035624236790791312314501175805291467794375281465272162666674218835431482126404419740278817675475964412795615768214613781792048614564037171121925763117606161726778935920852530133434832599992546804092276870087359620574523316419540971205952028065249171758021936542727245480807812321918548372476964515314237523702874372071065328383347526034472935150158688254290940481506677282901418362386190314883093981641383671689622499793070972201951582993722563058911819822931425045344490531365634347168286861438227470141730246858927655207058827602108301657966147809313695056809121154924731127098623530754960821163069883423938162599433050945078529429889983894094600805145109258292356639838850504764167757489833496680647145630407868922799139264279959733276466660668696260943280177463678769445697458440566378394597177042429255697772155093714227059897248446733133120268482400541982545072284952628703848246088561369416817346760685838418353682861137836124908801759727237616315777244438523419953779282985290143412680118133801207414478449433092291963848715792336979449018460423259760602479403890228126192676804588605317647289117137984791829710583344080606841265319075903444940811240714534497713775870793264887698024707175531483668721376679351087987489638292602412665218690373602767317519087586738111488706009149826542373143763932999395613584806632892902321198366074921022462652881267747183920999457798124252429506733583294438473419242596898192509223783003980060183190470647364868181457766239948424977889928559189611809450119504417562712690747847640066577536818402794772189581924745633354185137615824196632341818627930109305460580834985637691353611352366027515143094437458641560308617700851714648293749516852649833139437075544369266241379576893581573741510422187059630899962930410131890409604889194258488491334226677242612831304757354084164519266832145833729773990874306712590216578410246107683883807491818590831379767351633434061500785381298078421051101101377634393737546390531483618566518887268213527589266825878796315363927781898942098092975015576774597096605162975089677928190608631244510184800415220164349145572906675717247775455190623645148655028518867699178864909221496429224642659563807238277914654926933110508219410810051288129720724862875323308124717702265310914661427613808784880639219462916744577350425337410012168260668824971741133017302764337472406246873660348073177277732981617677174400657088789958450260883493688119383712137728052705249243852383696901658147658240833992022752870916725036281799788757309486729628767546775956419838148765515982093284349861527088959831398658032750596716542233968005916597892671514596488510163674835373231288624845414137690212221470124845364523699068370217316980270683441994620876763495672932504583432293075149672425177189398402090074571745320026278785454460913188705050050971123864380229142544003846397424523700419659333024569425000381119808861763299614568322283514736560029812228353263361504046737059482812483608021463605665643194188913469852149419717564337913338759989795358318616883846371775475295786251439578725985844056545451294113803034814321843729240360536741910460735691350354446516407808841493654184116380585645356414069704683374062976259552605488188397630706211950644139899307430836536854245359363774597688197860570407999591263305317919679430343660232559374681608422275548768049408808150804955104035801084374213534676149569860427456428446976723487991252816641878583679294560102551542964069144245417208465829236361767658756971380621039112331910817440744302097605932288939726925067616458952849112317236451453650915738291707247854052361955778663004085629239583229819608784910657487145187375203267635335054353590651039910941698707840963667419257461324891644594264252973703484079140660117198564127190631058121469772137808906086802906597024638611448566119947327484035405051983709255891987630019135997018728323748236694584726695823960145892925359425224178346888969885840931997921881034502191777877673075074586739372618680189061594753593427900591016185184429248250041037339474486967575159699737005148071054243515112551093199791643570748416643473447224049850591178240176287925770622152860164013907046880506580581579875521055001359191900654779023816282749886220699963918059092744593709116143885048998424553685242075546446950196209917898463040452397954159991906645482987294447449141187321046915133629292324482868967245470983270544814156785123695891924513641992947718152131403190383873279080855719790267119654090472950143274158733489690709387097162140097774466030901533186586344989426083813491789373116844778712125187318550762203622264590999309167099625842926422762446208462925368188792658937601896004388402419750237367675616876131260492077304702473162890380329249101221972522597608989808338018950774371456834158317185798892433479533355410031091460063788706368017025006074274471646549986706911549533051684609097012014496708689957016169148228759998305600159031162047869788485063386223385671580330555213839173001435578907149815230688392166957163135904176544739910108612320435257988178762306396813408085357754091111326986201614427670206872578618634047822782682486334320420550345407574723335905140042800639677844683141568474375389856826965246710617610251987328910380956583803607737292615215718899991247772263869857040591343340785602042489018743138078576293924657093517968778440060680346185733294361777595950920686050701486610528222563935649080813541669624731495485899224523022117295363136603791570168211452866824227947991588179401528778826556609845362768966384279801919572826121340505303362409552070247728415675989317202792108511714665248113845944546240479567803203638507471203340704200821831686261967479213649230805412068799792016601678951950897428986888993888667042026756204358801725641239643110312587804008332504580600949181288080668339638777455390537983620781368531825316703384919035552248539338030923987329085344112615949567315158307295188075566886120833033957670264258833184986682759425960876730164024245118617343981383990010809510918614720302572988480863529212000954776431614949798900023377703694146445479966568613831016424862727022762926840564646018617703420164891769996844231651075423033050763511567138067965115792371976657187010096179037563073554887887590200839002891515579895301030642630765726865382383558602550780980441272596511185643498657802460195023641959453153663358171953720133572185968370615990240910985173777025502463416307701364750376239853231299995299536762863778745713050755470697513975287747794332877022827226462031763572310248315886819311548542915848810661755346986172894689501212396467391215657529711618680711620776993577368625068187170805723289068997027797406690522420925524956771822252021277155498807554575922495174986118781404235522896720185569785318084708942635583714980129233148863213293006207393975751130306435194891310997726473615472197648649698703849861787013854045479642534640325897448050656574465220239701833585370686407513955072434347468035668119268672399368514098688808995594206208281972487105436177618826520718756315093223169862868120238118782584383981678841019899818291411734934144286151086155447469753978960420016503369061471937920388275348469971321156417017487228241129509625388379142808884043619767922645467324629785999016061624674529236762524014481658982088357605047646364039171228880854591667800705093486965683369140315959157895781535605535476465042769559734292046236562364585740213372752182522534910421546721272969875716071566455631742971567739456521028108288408394806798015975840499253871060228119591589218713085499703450200006730582555935394857124193394851306501213851841565397100244548639497059239397505390080112098131489084141056264310078513933177114104566347845618157585421929332148589486030658361744684959570441721971073732725213707079334872810352570122997235084409152782125611206075046858869342770850516076239169159466232366082947650872741964907100746306297242032878145265495535073864544891037247145863172336433700473697678172721256508175296723679616850322012950609988627214181229830655968370546427690350406350948714867910789362220326641507414150768966619534793320822277739236188276352932257208343842314956564873180759123413464192983837393323353096712508603851246818890146686752250441224006144280159334272665781464854541673623382942646376539207522681825023843759977486917122161335699481530816972420826574230699799060203937814158267522439698880559204411355927485315862188066598736118121901209973546359392164445904886640454885409403016527792034061691301267229885505100186053931776928709708194754328995753146943532087200347675020345378841428980514100987934455430617114996642260924838241799759177483396220511886804753496722711674977374721513042479714968182707774006066374248027136017797334514738813058499298273405698350959189360652058028971541120081585616937828492510286300896985164097338085333475960696477660697911920815490014396168677837260442058427978761496984047513425402043657146486076039343269275221339196531585522437803472658931432653547692535289556894315970876634418397260799679871818805097113210787812607353042014909727895201259973271278860210098769785214285951197186178647792779871733567393597713604003111709370594748718796646114236456314892626717517072986249518788614970501981038678517849760589091714353887694325024328158404072024442788678591799881375230588836729959286265343785058315601151744193136664258748336861630765057479914132080168529705734028041595160740922740283946154822404413863130587723881587220864351335923324833923373770000159946867682176565073044492278554396909257858988615638566567798808065238523221052798986948400074039335613525269300974949688598935937437196528203208632769614484056590690158988800987698419920995569986275963736817829767214316019398487885221867386737717756950201524344050368038688063330720221808976450081254956252996585834279884230931009772265883572704468122956989955734051388767521205706829835567503691382320738612200087415079877820772406442718095531835370718217878287881811696192989974731682058345969461402838063871596354839689361564651324612743673135810209889629174178932499761528649941907788544561070959595659560142187684090333454711547716166824223072714998829026584244403038891657880522464876718886747279686558298704351937665634306044819871427226508277552389948152932863541618864150180504782551224840260881159974752713823228640207949716033736384338427276914515347782836363261373851053471497738302684816198204681585792660697446886802323520090118216324855604486314736993558397839084334884091655504061804097466448425929285749580532723450635981362869580060185325481615278503340912236634795448171894545807821690217175244618802563376104566205270644679989190190233468221428992681239732276520662751188991767589737735608766615061956920199773217775820544933019152464767240317353175561804332211130654801117164525775807259038314722827485379352905177359743491892743784315773737926749792486315177958035979193405823691443519463574746917448919173423631168420629773561905493606160119972237325939047804654816327411219855552723649603517538243136350694018598864106503104674297791806971443231507284098454996780290693831455120513259227769793918614230340140260702640975026744779364102476267721328907757891557359815512086605369540379899589088970743700387172291449737536848009505570019605036931961593356756694379648443479691147712180387686928012098119080132905178109436232161889106409537466182343141692192250531589989721734415978882058128878396323333558825573783121632149572030811902540133987830896506122937007016504001002744339779824508135147244118167892072515919694585850082207981132923880612458450055449793733649175424658224855530688219113534661227493192632928868889880167939888949688279418021516512078940875117236350074240359805387430312931281775012210303914093034611722067483923503213882206893799530713389603345561193397967488736076048329085644927339778907359584615425795944770756163697072975427066245093689317553210131919943120872089525336906175331999931495212051296959628203845235310396777019849601505486936408106821998732332702134364828193721815251000449638765009706113999531701796353777365356303656546967521845108645547050270852175594769643797548094503260103610113367033263911688536811131771905767091414873058743564748399061110418966029063880167406327889441555449246814501725244793263910251370293677619152829175488791691905387442311519973896802368415057643068105019784248394798155508779984219039496362071843583859694598850267663181643165875304321265211749990501745753130013917121725606138198499569883627131173659702760304031880895740216953844000856015452188821188155589733247921686830144939372173442111782786678725534102171037911615348365239458037342708394027745932060344016781191946405990382645406564025770276963243521114626200359114102776523312104747865282287260041572487306954743687851434528882174984515493647946835578188608985471885290879652234829494635416902164297925304597292689509938946405958281109083922782158775930725000331879748049543596898222829517163924975796464589163166789339951372421031427711687839853824758202775446638034545992483246993942510397507695982393416776188847422655057368554503749942052945998171537595768748038839610411280388059196028595606019088862337950225779741364350082494376066890345628932885264946031819328804056378891210217161727223805122885426176095128687082002872963877395106012067146628292181903887895673349860827934466012805524594900174086087894195757179952804905802837260190942067080126545146765012019385504809744234504189178545597759090577895355258240767659459213866748665703895561106614099690509059928233837534805508850919110231552795000373521464103532506980380264420351210909808382827184314126783844315311697207154580136092740343003156191092470254650130662855406816381649704119764777179176887613383016027386171213963077625364087531145580602063011519191439298954103491234635685514558151968845719359753524790299926219263736095978828471446623733121748690822637731553192351254209985156469648946958836713134813652110486593677650180550386625173942931625785049325411594153562533138710950546075067468760731351444723397521341007318652915702242722309590883810461596529916752075865714522793840646257722747007817908271295515868331053761674386461634382760372200385925599894710562763974851794779576865164803103806670130214960608460567934826404079648836274583438353803605289029833549575198678590761567838122715434464429365326228202580298651312185283439462712542472050736658604363717903033821531527165833718507000917875730756684315266138582438422846845849470827190067357885978610118779280174162921575426707588084798867839897753500661260041935879047308374731482821068152634688395891080477125773354921628579894196279944921809483469248520135498526576521017644123308618649111664789016518314190791282725800421005022262505622794587032833982062785341638172150488929265955744833697634996471540806924124936386190813901118166921884589228691267801739149502393318651449246855799841680170918017249223337403735676770250082855861071556933510341796806959254803132599079759640755672584223438109128227348440715037088508793124957723539008446682117102077726535073238841588787453010062785604744799936535333976649753207080878697370646688809516083976032333526402963504553688995752323190869903825237163438307956892976916510467454770834919139271023517204232851841484895535271020185595320302911036288172800836735365456476695066290809067281054790048133576075670925459201391349232391773423013661893856635162205904342336733468362335447354435360794189860309941361548307732903929100048274686635946512854063812169719714947005827337670056191989946737936443614657153613342315953520827043800694083930844046699697681037302816892800050356311342607338453677613505595576916117018429659486691813467744469836519463834914896042039834131353663505185441633725830081138041509811423892835476307515457097976869099317024498419206744460902641716897155083400200316088539313355174393901710569948110419329358006191395465985291751512502771924146584452627571465077787915097095609098066067536080620682416084175470880075146048428064662170912820529382388989187459636021836583531831660523736370655940178911159631099045220876160868048140553755795332663923260822326156825508936820722889372903389986487862000558161999621574027509897292423091857542042835189914878705940469375857038223429019325798397987601197358740886313825312796291805650023882461287837800975969105952032616494729535893674873702366500663890763680646982312122181455881655160170245983196790834695530705976593246615947811837164688793799164855142727793363232467973458841917361197301459739582615538164160948454974068777072295993981676087335574922984385866729623732438580910244794782493795813523930670931213940521965914635125544869515673917385741228310983173182237376853390581118097055618331802877964636441231558172744183389437983110147733090490810556480685744726250453784955879965831509948721436155101882303411579663236839300661763908418455535470001187473812747967468670524805110389348870428830033155545721014966102009076272437386672461836313950785080991502738433272708304881530156090637901374500416468250367836406339029989612883424055631689386100097171430769861066820195758212579955751708875380482766825207888199596181413207915525810642860196419407642110018371676981876233981123446654131091767370574931782518587092208867427043663939142426916155648054199813835495679492349624021753444615685935021200163662344343722634030605633570383907030819237320566533171752627627615362242465930783755437426822762123396752883290477403579815068893590510076989453137465201553189297399363137562030952448076629309871883890448261378015948151074145962977282046149961609127627542502483480080985122892227288162575130008907178445176982323571885406891715350995645889835959553757882837335922343392755039880954079514660812184704321677789328338660187303332542069723886317290061731180675885299999510108132729139202292943842803997482368793686978680447611607086930224523496898358542346558946550312097985400078050774864399699307849520107137160372719625905281398822006964752465075788888808981012816436735467373639592238002783051262647749424783353557378712972850333835516269756527047868987061872558944422052971248684868276341748417568648553845738890294447752314804379997222008553403613259534381473532539142101987151211267033956794854540218583004836788501104634585743182402858127754623684268564920077193050491026350367782667249669997399791329722176712547626579698087198932196708515942902827498297276623226913441350457887245519897635059579083067902665487660271228316265204397877188294323758103693074590810976742981000966384727449427339185679805919797873036996620528824610295066591188401778108383512265244146609219141133253259827663575338345423904062320654731856997641591293854667014810676315741105140300742741604113600838191585693616508925996978992372264365058800124289897895562033063201841861760972772155170486048810483929499038261456573721546801253403283852273763422525765328881739311272758022545666251091793344240078900872103525807057876426608454514505274765516148720953184600238810416393539755326021074984404482696732878727414201371656661168189241150713098229489955839395791101579549899876871246751543614905292282441986038654247946099091798622590966236445084377356343808591349579272730646118866278638898118921276152513156547193762796457640050960852523796622537238398826456612725198471217526466258952081525719856519638638633773048491611205056374676564981700478198030927846509189627984915000995396787761105638538507576782266831520072030446698824452741291127819092608315916788915304244223214205392892775312249891620186718836701556999233155590653966956859747737176470147370836491122031100997809695269027463161360051019350639644181234168312733633140598213262824481698440867825009633414061706125241207990527806412835569659803828330694228312563272704109367088870658989184721746026515888228060534934265776487512979573405208167095156850080874708309696516185817948911374132419063010428238683258401532671913648408800565643797084760157616611496155585730062408536902119745773961004436105192246733236719712539708968264445963117919798164559762443860435792290742213682418577602865602770548525734558096535419593249323827083101466575239964111579061845790317557840234112971664787194737716840382688582065857340205706859297931291996398368741425578475944594992248217511197685339931229383677205155196143457406214515875365098634708904293174182875069330299991327441677144836569516642592835323906780252234410411331813514945451540440137820507288664710366893527819749642213060511431062649369895377070991690798135907274417303408974521594685541416029301150371061898097798500850535469630166353265429611133159601340146282965579334518350038013848740619262659073841534187008395426249604465223446382725409447899110439527448508919782651951644452766589063905089641120972761938621851540763835183173336113324317105561391724103969538049144932758152950587590650161384132468667534387459115889942093677171661186037935267959843804651126239325246264499515852206690179265729724429854129187632224987617777452056534147710508616770061214854526565905569453693685055592100900750098235621994378438915117312625939390004763950560751072648471355617349353551406876421533514418482051597921804043592340775298107437291628047190922732955193188276523098866777453531296076923354334631348027519572852447049990219995303634810722553045143636503410439107994210209599718645387017634672059001722156237864664816467757578997482386210721082549565380840684480521862580492381727909718921084228309720963443284739787856333232255282135710044691527936847192868379574113918719954068780934694936867850663683293129940265222744344027149702442745152754087128944603397543059324752288881666486731902609718355197545158249761999510466998931310292394317614354316849055694125061359554065473403786979812101560188405077401962379883147372243902326943654921722050935146562270557591364229507547150138642006816359963307685857406543088337296918690717502494169674567202660361957278032898948356569532495534821533761129181164014057913462014396914860699686756279053911634847289064768343401669804353455064614556666573716140197558127628465974368784562259406096874485948449310777308166220488109217933411218082809848726856040994158005379970480361844448137319120034146480839866909738638790208374734362743006191365364455805719176341233749243218867561028252169419015458827693348581139221945363180548909533043124762098625054562453284616513757852885194699533635730824177037380225062269027899365371317527853755640751344624426234349579618311476836218445126963657279051562885565214630547155883064179243416197606677661265259069065807306122520931574225282326790290771436118728518951732856413992418808870755201712231357231750662483191886578007373846718495218185741332544023229247181639369059640657880680287695564413054397057654381366911619458184472119486640803533299815913493509156063637076826635313733184043413324413042562008923670718718651481560547605544932830357877881471692127730203533561245781180028954381252059083236472301704195176101648517170149461719585657519238325409292905781855106367347787477514211550418544480795516926441144378068735400938962006733583737709201856350914062243021071485734656545110935510175555226418449202345677165608183161148612560480423581425311869235394126793151928860428873395908793760044700062399049364568143145718526833720164102632401090523553593607759896392266613865300745469975789209877174144928838283306433784400632164230045087774191328947291649264639182735687530894586001942868482901172405426660774002022000784187084363269368598937482128793003023916305089369257238726448539874564155307366766699560035553357108714913895970459671586447235323190547163052046508690029653763381019391567774418182146495470860682199156143638115724694228135150107446583022502477477779159112584628295695612541039511623590893490824690993637638359515935047970766713663398300245542458713224439778489717667305351255233303318178848971801950220074675879362119890379134343541582168189202589849026639027842239383330835203915177078591610078743952681301346994100792939359339987931066087051613236631943251485515095938820022347017247192426252320561297019556417206037488313454001930620912131993689849377484550205738474430138913289702188639876530297001262836776523888763548310799659209647214425089034487650581985880907858644808282380053381462286933908270471877838275875770538451285558783274382661023939469686857150786104867418511347243224855166081949145078628325400107002881744862223698337296140579027516998722038188860509176116565111844925112373474294249061572906049237194270179779064806703424906443889900082524333383459058937401317299155490730410672214184364705730956800995230818388470981136892390064524345027732831142421258810672529955480267347949231065757315654837341915971650237712294612986765523869453712158861544674940116869036740903241129777411920179049184744510538854485768068006423061460503062404028716173116684526087302929829602341999497328744708226492266183067300773694228465613664204015996779318459502386645648201997486700178152030136544216758412715913263691153773681067720097009353342126205317878332874139885823148168047866050277434423604835735376235179490315886524202231187505435669233575531087581440611982980656148268777349587917512290740060189135405083422442267682199555842301975497594139345006371306549683634064327728321730165107940725205472569938701626303298822034638562168116717225488777279346273200743715239901311079599465939290008974994943521131119128767689579342188617293315972379353118108648370257548407231833449376594281277511839785385484813831247128540837972427352798290320975907348601212125690391103913412237258536190349812146108632471612215724893536107020461862347016124759111740969967797324215908084515061574946856642040116849227346500217918326244704949966188995159446671007232634673057910996478858455201732235893289905199848387301844328110099087348069636432975365983854550339053971104275240430638452373331451415092924441996849017151513627959369795547102209858837403614693039751119821736125984173600808804520372522704757782247924408240360712596173133655638200904392556290818639880574692775756224423714009419021745009431111058014491227389761640038571216436728605006181036083027488227941392848484047397005850868308340692141817585628165560431602582635202468265966635316929270170151172411168977268250749468457772318361855604832760666239982619756909081734421713604497643814202194617762630468869291081849670255666217122892369626647481720665960418181058565891315776818835640344178202751738869034083192516398305882968317091208106228608741074871520911304528929769963359755978727122670589809313871813318570304547838153806508208485494212435579083816180181548951593742076067250749027132818712831666879230255741190080249973515630100566725071926267274088422551711103846757751023697665156209471054989537234162638826898250661166457158231091207449138263939481364401365963894380821024608079784494118426716810642604116456054677540633560950633436154195648956669389783205712319834277165634067546949926294637865835406811820072878875843475871872076168955070349566422113778049877825097392514520485419629908535637330844225798484183193119586278510411688645297423918516710436594046752492272054451363109196340524959334627196880261784136780252159899776268499568358686685117734473752615601757931287870978946471467993319455560400783024609928635551346834056997996139037760313751330658533197252962166663962882748755358821778441449923239413649216931100193082005537819759363727950769233555658825231576108812174560978075966288766688071991889141285533402427990984290976350775554723282415731647613003457662578368037231181511049030273253115598149952408051071916116970292552837852477758364762608565309560142140531744450398898783320092208969593560678528611467266675218475195063989972530552700566722301451869037807640732828257293994535049234722992133709387070504404050986610844585451668687290569148223358070378519223136767376322830573073005200336708235070703573785223734357704747973039088904902354900733739881701360291147888214399457480550058829532172551613729774477597150539699872554113379041975678017591708259267599894467955858401007443207522115876975134727945958304814765170008447388945466468523082600588673718955393021612411966386812999856473275976796897222769565279954216500836611167712442908875936941812211458133785791292313474449733081497883576493728733684910083192974745290103551472702295414166719587233332213724001808752863184795806661191541138893929639414708275950550112488850776136632684759772796972308082034532545828626130435434615433723374626699800821794880460601881371533327541624616581152295547827286671954847391584177146434714282386906027156768411460573365202218480880571868019309237989479760276718265475529825144466036530101934974022498839951370354097738423763953335708900937511947392294925513412633103618451668761105603423991209082092933537866472747624808712934891574517371076076615998400676828834050492852406920731355486534946448117215619044359037928777226745258106186620327810190680138166998951262149288723855094524348854530005908217643841955467966655611114911096279429599101150702755681819383765973652480418765547554658019484426618819661771484799284326269393771041849392743016545121017753269285190010062692317689193330219990391626815783667444594869975327772858983434423031182570602294977192695602722508248980213123527726416141776718233984417366998712543603231915963603415378335092650779493701717308822912440644692408472761952412182551537802773068239199071325427994752362987760307648519056030774016953610035672491690535560549154917654833505031168307209097142238902147417657310207367989916757470849574121248584476424462183726039647709025012525787867527382991629466400513436592101140957905110564860491213223240284637126888449579129477629195854672435576639982505778128351289271809912858184758834632115184472522371545203536703643662110878215768391338730708497384449487478766290863061106439901012062141228882877852928116674311813014341634157542159114216344490374005746759666320318709341648550850362878306431640515050183354429608588043106405484636448464788757095694584494463266898085890371925483331790037039541907153774071111411988426120534324470175902559125212403276999216975966519286304876679305453138570895814487818593255217932335763406548949241173928357051217274908983494520595487661676813731510178757723344924095117438654113479087619522362295191515369143098076664716534377626316234009572722019177998311880916662655413832548696359071885258514682755069279386351940918246119659447357712657078634852965539641768647599496708819939940755414059027162171876523207151523802989039831092770800892266980954006422969612007843318946651400322572486695227863355429522761139529418737337497052604363855525128665923649451345704539990265859985991547875631298044475310125828392882170228200708099997159652872778794524152522777309862405520193001414172778194884028144809837097214899675587955345859785512799808949107969134398316017450396591966385834144079407818474111243148426616540896180293813262793381505593922020580808829458947867795534035087761939471416203810804576254235326633170561296296517454666277953608643393220185404293536580198514411892588546660961812814063806820473762032953034571967024624648908695435351167655842042102330913562961851776104044616606823446355871267082812162481853324245844701057531292887316829886513921202284182862626267865063902179858829174978050134548750930350160605628707457997912294468188258442754213750177062056370599700102314698592768021954591616168770253250402183140510982778663072913257163076210682573867703230662957264332834644736556527968478094158733734393188601863185232721291663630038705757689809184212432842784078841203092640889186794196274678821569738388509865616473687011203807003636662879061927432257180181961243616687668516594622516163341605335545745364928287313085904457089160160366130520895821832503028122182904274881224516284928269222324831618248585646525139828052679996637258939194996095673502586500117164504361179933085299615195839665162056418302798078353032433014574329957612294429536428904060903416505206217540992033041939291665512941167489768837831887029084157122948018141512382689790143114914860004742209653078670782035063029862906172364784135255844662518359938175013568354263001740240706787031203205370352820079315996523095949602634380355434662853235428244170151794550769925024879844273368325122603000789604633944079169810382354356882460119103282973035487503937846187311926437648185475607493366357878228980005123357844925004760620680382716537212841465131243016792710382197182183023096579621174872093151830055988217522613562448533821168112894510536159235278428030349738634417788916981463329641531323487186814376827849004662179570762561049714464099903545907582516323663987910691052520772738780492302523792114045075700391195523648164991621694830458680248908015638669276947739560975683072132662963249466812297769230951017403111280449876744061495569356044442904406879066861475351624529717837951759080118882240725599683333024883934840852778749091375903413580970197148974853166649985975929001700581335854061888826546346499622934099973210848933753810887645236052648306525125709634163849789986781341161454254276590259691544870600557554558742837367470367150844107096716818602467047772525387228932614252451698352575019677824492202623241073123198254289909818533260029766493954706079393611035053339227580987704497134750706047278781671796081444017220787931421570967569267061655519672870367785480258115401646689476228471840928546849252428462716068296166046665694203284699882066422006033908002752672501814124929146552632970368253526142032679550169897808867881098352364149206793886172745074716826410437796530224148709491724548951561749944616697335077997658912583587877481470998845421227600753852574492563481758919882084483985049790709819730372739801247156482290071122271834534022258189773854433436926997709407485747873059518367724107775992383208062807969080812194090130427404611761898163972418555028543540339198281511573080949934216257907281615756811545818636481799486896203660559529846683933745186350824190594852995310792990548021926938695025730452326607152253689811147276623383967721396581482258654772232491592713722404658211527119737787240430196448463912259591526653345845557963385580012630209160726423489100279952982943260827106146219712830158606466761625973922889895274952358002851974509185159901405374254884875743423435003295602194678062509229027259148901175495508373321353685435487922066652730549709190714477596983033057305422738695269395746964025439676732766062452769012642845734495045128866962289054707719319278533816095062935479192851403823390547023809677759491863795943360386737220175063964436852422125218739146795040786438556574450602040279885790984376333222716920230127406238313387183186470519281393915747763834497138724692072181531285495948137939798178943021737545601038286158976761328661743685556718129276908561131539546352228663789553538165700417440420844831382614834524491265445079654313562083078332202758116646262373995061331947907855016583384000048866225526042204382298604144076484148460302941673149943326125776020430452913294947311108295355467372654124250424464466350124868945186448436307720835829479488943688470276497552984158978040148753513979965106066840947865187066284444625280111551679261912098223179405442281517216226897889149228466097185325430517989744759935017120889786875528110901918584486062175550282916758318866332966931498758459933073459069718293575476147841791144109293257916638421811546958453480745343502403579337894433943401275551392583361343152687428634858298388689048404358355947409432970975700925565479807294136970523633039731456830392632482353305727226842932276273197947635434852033148580166612103259763388446447389607063352750504486967152171965778351326470385398938907241032019588035858169856275738979385663507516454669538402630549311706640474437626331140424393964828594711008792794333459188011328172742780835120895668752112965652020689448797322324794862629030470666738896452975928192500631947324947343407765686525981724159671617316173735423619246287267869149820442538978881558176604751567310414249540960082017603749688519232316742046310984568685277743659275690021643778819663726198556201484223276240246740263430126470952945585239811350593899900811979540687238899766085693227798453058694332601806294660213648305463677615474322160367413823615321613070328939262771765488538484687335751667128938337799974083207341926635141680602965467348573693245280822732805481820617414098278296015525898014222646284018824900943149175474178043800487424579338439473289115492955417388898790441258396966773896639934874920720729280371266975893430717290627120208501779708371694609625482881055275934956607840934820046770824886272878986817590112740981365924451377020691388207213278791981415745196209998410861936031664164518299018115251085834130351812485094738166444819108524453341611661876147105357653607654154324413475668025034290614675247072888027128182688220365258903393360783785406136691155663927923796812849687130964988627831256616667842107176114528575898866142389851261131900475146052552426473457604959769783942732898834520108148570747163362665963340304600131704964161458395412994271809377384641071316503831162834113438028830324009485177412062397743233053848355980860187401244741690151240144653508557311188573913260830179563957131753462011376533407471225725074416100099277531360336442835659982091052210220585779179177828896758077899882939092556667139800202746932792024358678231979994534672368310171498873965861925300813826832037142199567468330542637454967435720665699350985180359197769974313505991339207971619829538523323490535295282107404688445860664381666630817040603677283411541700917808447449703651258446401513250374339994486811851804383200596777523093716429113051809127810086405128378394747903257017828118759170892781058964743219561881392819131966215090267882217707362629546069352857640002098523156315959341103408626554217750881826539233626115736664001049486789518990645278928564283137946064167766712630808355115211272154069094632021171703062890231560495020091892531117146212954911561859108305795432208288782145100088414616715722377552810107131906629870722476965007116809363156885455267575721060687453799210175481902749084240846360516027453417585971288954831856029456386814292054000145991059391010044439335490040752152967392663796118890440708897017370892204748676911443920764404438885225611199518503900315334426858097378224703994459401244107806303638113046436504150171771157909134536692499028827478835704488367563800600299871396278127645908511742663635438217083596730624185195123807360641880007316966998197400476066334928647125607992687691686251190962125510495029800602749600121804246583465552164581289397252660158304071857044678944194414815047048718198580663241219146684394581458607446268933875277614956922969159798349449841336743656376422394710938098601169747950037025746697397568601778622473720248952285219433095678124658482403667492830532555943377040359476325960157857355635757316199402480682926019763703812696691565594973959587415645626239218343794445114218142026134056986101358092012233111496904301635035720717966049668163536500185545708548805587496296070373751401653476553615024222032122836148355760330724237572436173430650019193634442801963765421668222936662217387501597757004689528710164364528173314638488119437164510330848696578915647095449947997093520842336848666060921616384777492237545612474415236291433314411022653622115889447907903131325220983500739302782832222126736961545888951269802642616101140092215440605669923712926264283307940917749888973906537776380163996329469912712021480804556732553743477110364720695237425858487395897485057388128436366566952805968623559446568601066531207928705479358184022480066695069490118825028128415124064337884677846803297553083882921602500200072512532327969864206688623208166683418408269289376382645039144778637451936717142328449647535752924217586229115581888961108842719472583890352804973291038309587559786395991372062615126010712766269143661156657393707176655485216090094855684236065832647772916722473698626131004545821023039224943471033321898777501136054497451494771035911360149062234637010806029703508183792681538674707352360450285283769653670789406533910734089247994801628979194779110405271592888774175745731650813437215135879555165758763039984533998390042398695028028852212204826559445962446225486677882467256842847681714226521687044526333463105374530512055208873696388361802276442892021994040237392009658358811757315310554846550778383764649354152157970611215668477499727942813318111653129661121386347475851934738287862758883414855600920606306582228119131524744841907083869599855106587883523336303041035452938029962451792204418582889179981573478669236901182161783617829439720397244529589473183856651838059271265116266007724460472547295626850655466249529071702517426800800916296073585968106787434924404945729320668753498743139260776490010016356188522889162183396814726860938411005225060028143284907042912336227550467792964570919640756847293497517083873092703201648794833698684987702882629871900477636975359624981908420752228098098493470675647412275490608376493349284840057071940790963257108136592880370130863463142387889796932659058097558976651721952467684050319461358943096949517823057957696912082968848802658012937497048209579078865548434770665671584700982181683288605661248515514291717790586948529948338068007371221241201721241965765508856073381459038716357600252080709293553094788363233126002048975138554528707969105672172879108849022952640083248434234162555016004435810345190265960512175397604286573812237805836462590664698741337222167222484818335748644150215298631376923118484043176478673023444711074694709136113062772284864880490676156401176330380697872484638256881598341397412687744372273346673268071328138769772560398609794052838883342545450115187269558075725836997739822928873709414632701243003566149754373526290954931539474543743453828539430221015999207288225788964018810063154654529602120448094864345387888718135207904159193800872161644388762226024746712725836431339567358671557635977420873286701048507199537815515819135036888524067958966355177226252446091798566551386570369117808700117340082014203102537202875495035725007203960687763705581903008634389006714903993964094225352720585093956293470827150045160561448045869724718325851835631146132916884367394876622165022458142274935094720112799245778274110281680875297994522231020133292545329304904593832117633131907826141658039419878006717214193523050943391376443204328216414900807776628332635183713248571006523067605579133773295854112752743072863050729196660934339474396737361979049313409454335868108895711215497690759770724812863918422607952704285952730956045524711780364029082280145503161206691940137384394119901074149495273580611431769227402027288810289624635011487814153432023424431678503556939238898649136671876414918683264230726433998184235349681024031744270435186592848245803877900719522424812336744452377894803199638332705580619783367004883605491142218732892572509810967287083404923613408388328729711811474114582423033454989058259433857178193631585633579387427559648262871046462144414347805702107856187418300464768401050915913733757750448419871471468545489566755834089536751827845086231985717315622212830199757197236553104564443479127736186449802375490818369593180414003319150265192726556216567586549355526206774297940985661644568642869322468011475464627220389496039043876843158397978324623843789290128667945856880921307155936249525785119268094390632303115572328915600351191307722769005319745721042304102065031735748004440078068913198411731474237014563946162785073703421755265112142176118779213937366922692433130883563647216761177655564219743945967045828336638620914820649540853388421231743126232723002858784954289263194727557736344676778608848907978722004877244255928154842339039775905273189417121634490444337064626880496198984849174163505835108932750321972601109438286577845378028361259095345722451009033681067431432033236053765650969882299451476741384424727957416741135667221564958343437372259538393335345714209105293941813406030901100264153159299734473810044656203213162141422717953245829246516798421122367892489509398488563645739876466180876891361497860306922898357136332843445355522388874172637901262369632583905057142681627677800322736477591940127371665873236324610843992718239607202659284043642626174525296845756588631250109912354504158415290198283826995428066312443504294669625179366499659611369286322938454117294176609563276086395254508793168020919083401431522334021805422562398443851211685336272970870291141291656922619761180447799220094665491124621080957128354701935123806346711375286660546099456467074714311352069795464189639134215664872492563242347813566531778670708361156112408004240748878881474471266422503619212951374581757500625289132475780429357124550006052666830264190817624475615192941722997448713739917840717088248328463960474702701579655486260624954072574025793810947939712831878203229969770742612799254537980944248133097573459255106876432915839094974649284145567758512832899666803668389373135227815830727517019913915599104100823052556344483520510362536630633542239809315326103713863722282988889335927119817770355915990402905788331626937544180798644842662352251947183722774965134904508346081817148476647014669396080042756449478252890334423853593149718392936310785975267121433709436763023082399374857302254569834336095046851442866431240467047941614760380254277847570041315599019795977572483379831639564002764439803140214069536610405689081466662488675620491338987244616706843800066931605602822333409759949543327366198104362114105575390360322908092726709093875308763544346530361700374433566743177163019497567865500081931640970433813834310270030732289392346586953341544516449910893090168681922960344335293829139911344586554575655145681339069242374293850768696204153579212056633744628486676156055680663807548607444468234499809501629840189183201406698714300841498538168194944642582977157138057885096423820305522187865610130981431918803040647794001335259513799211730395298972908090000465302898878017924275737115982897371255260406311256912136675487543745111681721944269515671809471066376238590339919275793383751259575583069303269703977989092716537794980437359602301088415045317926879870055091097772184466409467800216147173885243310781810741713351861027872926376576966217384920455646090500685954956646332978546610644468009709659842505642474597070564699607783781518612960997701527644835491877760431902621072825436447502898550166620800471076872856458269072768727323322234569768294122095969670875122808306326767938835410916504280844707736352274018511604491570657119916488900264998240184203668887184144550731477078294795641701031408508421702804046143127651760709117444840580613093262969854956196215619929756340117040936632044072372994723155683831609718873088026211267340384841702108290978504924304284253006969625017123691352757904785526329766285860714783052040978808539392953030287319595887061000033817005961747588231167103245600133514108138960147313831521855572372475734266986774295652280791855953183973943778479528923406748594922450746039330723497584239359733831104267132978068247148930259530121809588911965351600752741001245304742725554502903210809414178153705253930923315687850471953487725543938079172531403212064027281265723210268781739171318664261807489734226824526608595280630539846186115718975898436191457764001154388721334799527407314572358762962605954581661072549977119986621733049952689748789284344874478870858739401792574620064305386504827180971497348350652940276585129138248601095777320286089724087850766807048918614529687627926345988494261308672255711216162773847328291900646195642174987914176637532648455213265022570067003192415719034861994014095313511793344749513155777867912184093021475076852281784410235256990500219689260051866312473697849603647663514004011967253707959764529801214114727462982418154186957863464714017261148502290751597485093894180709704576238108379084533630085739325437265737968597257878773591713807000290901247745710018479039829394680133500998422773375036253278750436960027297439403632498619328391303890891348403564409787086222438276416520249533826673805895058758571153177112831845824607270162166255940306397169293606657910309736351273224812638194812113000806195287969625335737325370168149089800246836951102426632648759575638908787810869126850631134535203669122991852218738862398698318881071806184905579147681303331396380637370879533461689846222679709293135120654235880203557157799024301768315036798654824348300468303409801972730830370744168571693577424867288399086828861065205449225288337816132160230578752687226518611595872272623835080699121046610611643878836848628503467875181372485055961958929265049780997351563329887321768197332004428473194103439863973763667440283701949604559354914103392786604699082548926826179055211271557441125554065874601145003607363637993916315919012421419303805222782895339754828884767456495656161429126236163582377555329126482638577204493274334784913542949988906978516092635126547573407223662132358005741435465398793528067678415286269413647234973488389083946473222700683367152798266408356303244591988488196675528807301441289604160694894234869758837861204462237121407212643281236068032591914421588095073392158980564513483565092025416750693026355067941645762178423009345878790273831857721154907260392799940419606744746830328846633406537968830328077698173047844934545819451806414378882569963287128909213661407512219267182086250911341724538334289913656117088415720611446492077374272540392978937678000755359951353048145711032877505130613965114124873109010133326649268622477651394954401409250163164687740208910320394469642583755891779244831249672210426221828918437068469490000339658831078133753568041505352891374079549589596419379287364598007072869242462444039033161347728307885125114122399432653837164795094529421217899664253837734685811572781429579302441888703380540282786800186954909844235689925071888749487995625786937978785606983748452836604732253589612076280929184757432633170631323255002883948786714110161797625269715291740107782035655206818088266352114800700112639660139996906689316936045077921764824810589084299487815796626464250185244730042036218956732494259798338092808580730377341958430661526280073555140850759907127841597063831726849826824353995523588120745799827933342973261166536337463745670857433917547437323345111345639831194186485026071430937600856647700271556649594134510031057917567204370827845135098310991816161165757684855466568034736775452766166116809903266819612217582251094312666803483102057539138492361503963331833247304549850024785493733133262682643891883057944146548272060473663979415222233649438422873479243238953960030632847750010296423914726752856771993824429046337459250446427619784348426909440683168511746082430402799253755476675615216880850383120207034970601495376337091054410141898804325427321208294337370964434546868233323354257457190427694339290435705531080973122330057781718277599413934914523490451073285053420501741569323179968004892178082232637404113572037521253299182043867875387238260516429127594681567823216387224867869731716211987580143409693145240763597650074685915543165922937580237383341688226926818465387507995829853214985819703288805619014182834649062382036201171168496432059358443052918139759836808776317927020634841140878634664026354717512830300251015217733795318473575498242998514454916779910934968548465572602643794453184949550979947652899959106064207723190726910876539602054096093189681669637231323427197499143558285236154235704286127725040989385230698672544283724147348206498072697183905707452899717533926580615612947452213183929925871928155512277632731181735955292176236781234646471626568446911690319256754776009047269305015430713084810777252054838246199435125366146428184223580963238586717607953900992540357717300522883116479398411542306154617058640057685442241690690296917300195961135903504644154705010687752800822077038669522418658501778553680383730296596187240481965867076512866695351096575082329562056778862914996570708352156072466405617265116665076172730955545431374768318747273737323897073731292212371379445252746975488703149497970846534567519769351487707339055131387176420244567056191675535555760740624250972536603106684046184684945133023159277771950290377224301140793516179365030240234277820435654954433178055187466418482830313315211251069856871031726161159007802664080755571943070933755298926018913013539018600384891600583634291321861583955963127365939930101586928298626614422874027585216488476306249485246852521921446880066771861458665525751084541622582617198624777815244568530981076504031379773154354071827744736190773851287330247533683263535991790728053137219331389641119741866211821617356946495642220547245409087587106847865395176085510436925102752163628944151407099024155975123157795031536796843030315315814567389389866488539974345414104875476712881913761393350139101457632993512773026001478473157498517592135056392449374635207129197864815571541811711161584687342193515961948877407773412736615386012867528765062442319032056187523350796273988124137663489586634156732904749742393099605262182112218010616358727810458641229494304988379950397039113655955576680706939744368790595896647530606864041988797766730929754844740942158849996107969370709075220021994192093034202295222632063056884229258045187314613113191107217288966966440031819887594905102919445306556876715749005705093926328762618637054928669188961788762776634643531488489084945960108387393324516298438055572478158438522644794534805084005979456310569059884084231578721780754447308793733473071356287328712255468448008521481438300261155615695520223708098447993464198436871710119635304185663505599940259082830106524079007958842733402555833263360234002051039204227773991522036976301147468561559392414959070301310234072269847275117308297605130221715136275306784742094694320880927683724536296788053703492198715739999520328836878338075748097641438412743123285822052441821559836362016636693390959458710953167830117244341596188750046548229618041636290501544565230496796107443361679294674315096674391013473123250257640392573909179243403361321068800312403385140003756565038514399553407680665308910177212579925377844679891667218835930243159388296011671957851968191927560061788189236549161739473226570750608467632787469522053927785946354342813331098808305807643783980357931014292798956403404201082624594975195080872673457446590431587292544109792475850403193469355216573085677622106222752369924182451845572886394824240088788788244042165369082797854937560516220007558459613841176688687560730906084354491642262987121459572893298582463525033131922319907842647693568311080935181933685752730823081128995139465541740027929794670184996606801971385128067386358288684932248560310716044248238200874840573493627150533653042576691592713485061612674528321479633549334336241527373539696391879445781314842239997507166601126795359116380173109480939256304586284628793394990355458504678266321783215135575982786648180471286228706430115518389278354341173129785415478990415037600485659519899834654291078669534802218527655082160880318429423386381536504215455276641754729194834865387705287917054763312151637888817200616947022348236210941008747625071486210948914551034443003658763562703495479931950770403207893828201122622909078328046878083243725919564789166415049874343223625202998990326950316930658344983717327148319042882889705944928444784296183717592865514070115837913130903236220398790510766311279450497068171184455303306606366752989091807305750044416053572076568937013641621637361785170811432940353825515699135663926347347383464259939660489437877237740653883171577637974848426288307392693386699901985691653593216691054186053778584009033398527740264319239363597678156516591492945614334172217993953834061228655144757875722773036311214031497785879678358811953049751404664397339254789730754252547428651962252799509511838968520440594528501609228892597379466960624919061297420548725957003135011102508128880485246465228078412141873791447757138812508036487768558829315209818807613748344469278739856455824704050084701441245045598235700531143678993101262850404431600951948972921724245809929047637949606703024686673797855214633752224495839184246710843710607863411391290054734484560026472297975376601365202864969377974813539923844170145610005653603591019166138308537214098914162250885865314771811250006608974016919615406305965781912640317150537780896828969790776116344564061865782581719311611298671320271950733391282094139006035904937442421473243215804832993624663670927907496574230113029866134956239224212236655737839219067914923413972730350285631688048416480516614492884224889397309690596000442217450329324110685146302123009279163968597477931795462786517504499734441145914847357582347865722187053878490805758322273404012134088507957496670976141285089067157084884587496244692206735283251511759403367219391272196358095356530996466592400378485440387938130957515922716631021644122195685249182726052740017734656368776996479728562634149432514654758973004183901889921301123782229362301385451734438604195429677781565843406866374229829892727165989974493218805785960040132273813884763855529159090156428589103866300744604575734223582185453429882129992900098291368279753269986932200426861447760450175474747657122954540938373494311832868398661685904366795834214266959380157646266920944170716218445629710395072532846573900819278796885430073432633672086178900126347491337233740673475055526836140634054015770740929638287537262315237451726710433821814738514867759405483013984565501181397614314394559282961434075289772182955469808165841092036728324056625969388718351831229952184079324001853126407304886554754239879353905845457366432497215584219733299523096708636245520023278404948460882524581073532150940846708584628937737412480370159270324140578302270937872082945566680165220230093133883442778335670006910309935416477674187760003965808754004990327337077024040691200286369877453712963163232646393674562482601614805912128531115046513073456946716626179561904903330185905737461346184922859188845382278280592363988503527501215272896313880762704099679104556033017329152467830449330404116653416503414855383318434633589881139464427169086937990700373723178557648094895713906378676919252986314895148857520529544293526773974526805888088003062535218440494116796995400074444028382056689185642281081504263961835282237119579144183176765011442749017796819326724936349387737154276274404840542133396557297566410357097023361777646609001961446188827007805429816655761071420889915808521112907322753594306062163833419358498211058956338498923153696612157902825106914525937987392706973053074997700310711245644885738852104367880624859776201939703346190989673308509068739203696432510862577306769898037234144615575805879395695524346206997477045895407715635992836918110252681675899154475074985659684944037157390143408916176319334442610771037862557132180064368468318560243184926260848970124891766141646318462910424878353936059671189458736336280415259326887607832206116061631904967891635648059621108314304875837383655470473109867185234682048784639109791399786450297315693394284191182293939219046723599708334512728129985164899776357851794384009823812237232638762516172753077568825212433703563330733039396938014589104743757372361209122367141438738044875281725331424641023789917552199547512738289032478524590026724471352456118897916196753091502248880466005403721669539054609011725993417505190566993996809113777413001144420931984613615713622981284983459821782845975966171052294933023682821714228630635554331151855829046903425836900243720990785297650210217331776377263727740220762503571293275940269556166836522599831294826408920236234085975689467880071018693388187357831455805660462584389939093370219407797386706726207115127456365161835980358807915375642541864277032132327818418677564908046320858295856093605821660012260118352540705526515216490914198957114041756246362409236468387526021420789928277284995109442715599909821357778698914116446443440418018011171115588599230408775767047482996380251133750113219316149718269183716849632200542038035485605660098532429215285358997918564480682184942095776132364808413183326062220152934310680997622431890967140502415478520633508262676169543240476076812831370297109920048567255525664403669028856841162646931836817829819440342300498392898602734757139804381074627206905805751530362683127287605093583155555023772072282051084085503879283726535508437013280931502353402593868455045101301616651708433013664735873936018383053541686385496989197833843609240801311024913981645803425784371887329506624312722807590183775670909107597547973007741172921982648595729683864012190885101473983863348461807246846390525797587811535817390774094927126914680345684282093271966939804801193396943355829970686080121493041126799523484770484456868209215461513353659586453526712480899730438320411582309261713065691455950572568179329440415304811023778433247131188204628927748552031560754834383774509205820985822947222980128976793482853445332662693045254646126854486417119873884739556003007712515418506084214575809405424399497177125495819227213099960145413614066059651732212012140483432486254735884197300248879392296677721748358161573024819855975176032818763437016431243994487347714657263884685353709545156060807227288235116143537809344688355994182851126519450577812610289834879671072961217888582018237625263864450272653591704164343863227182823523172605895255360784348587703776551239417024791542625006060366613677266071832236895414652497721008270829079924531179392561724194506840507187302737637113038420275951879498331252191465286576316944238579520644652706537028392698778040976179770797421159991812912149221862783433600812944249607621483001183673654991623060267598770959171672074682725994437510102376391909301598986935328229987322822980675073842936728906752634668269929063620577853331256924318982242342244479882406943138146679723677753550362762091708353233867032173396001976386029786726179130546761370966902785863685582959472262676296009316055691456275019954299396702266989644709733928306136485685652537689695938327854251727108684467414692514744541087468885925778548272510940445235815115315839655002014800858385985704676989767657340217185244004816582125915873057721713550885903278220198025547036940146898473606213957405760055493765233101695248081752453716371725976513916580651097962186035967714037571781327198596294019789008417021059141068175053553950206182736396879696083370232028282162124650512417313774815112626134922713924691348689695162640394302649588355132494889225450844583749382765875945026814778762383819151700253390590756798012433364440969507233348574327964794530330500426084597575032732488628843112250341940575286690168024322139625314913298043350230392366208242599624948920625439416416495057481432569279774235521366608681030472335883401125771463537124667455310024391780064918840621720371043491074903851712380943158248284977059835447146436856757113907932693754950313495174115487412762879482202136647618750026346188298119099255738037458151588588729078624363735395595460046796509448189387050807798800265265225125409850141172044681965633081145577374598789346725528230521935464735484312551853617951201034457881279026985496199201571153167641869584998849857560003608042442382525056926516852038183495313143092947371217546827919950064456213222141233717633781247464237451471596160984305951014277517031694194914008416682798679983903495559409446692747320840353289893679080066267816361683490591528105267934270268939485882883074788136917912608066862843863259532235179505912389453162161378186734055893376312252445392752451660866636201997529616813323818081785125234324935655255628408716754746369823387915092862735519200758039121697296788489503455420017660082090215452827539338931180396542645061886414529340169664094553670679640189390879078848913969668416540407637497404025024975110113221242697683329192061540719345169760676261595431285121674760760469990460945543552102152793362651638543098473430173041544364995963231435600105982943947770083117006875291925628498140445852927191970644441040817342762502453671475363545724707253977844849727599837045395070116024566408558098501104144507105555258558618054733736637924800749765806376937044927162616196165246644180079616900686961103320132863885325149695072817925292410695170932803005959307178201426100597579740127805144281538079779103295997122615143350350908040995515830761040011515477729910397093099184386861000027935775918878488530806540855053345163055675612562744704335197788448617520836924461191191193436194766986066377351612806764533095689806501404560780790513450535904750513770548899835123694367333767474910468845961349229330455624728337838751521846066226341879333151459051851249130585700643319068905526922218060495058216596785393244947122844171467254780153627190259879559786473237995265815614692811814804761150741935882644515109598459765339922970945182525678898952897858951690055506882487106267585088051634209360615282456249911548179586848971872100866377389535477414471661918341923289770910546667998374737469561028311399394409181175677153896857811856633367125227309626449353023197757964355681757647660762429877793251820831304702709151509602804045340449722659677077213862985083487628233718363431308638299132420290199968347541633483740933075924168041773532933496354112221019588729409178234401687541125950381320333755400000170343210916566352781740996223207729260550519205932809586068421179397927902093124090381162188929823555519648980446422596627334007665834577569924945541991565116628052916747300409327699442086210279110398088291719492882351814681792462480161869854712189650936324683301827645220992605371680361422192262144228708766328067538398084662360844944420008571844905991350497086675531597400747320994375043016509636368891712289113133649158804284972153299143674264884597048053336010148176623742363844329947798648713654039297839790873999244774930220738338613652065570754625353591222616487561868267765956020422069983871342916980933883781109432940699507147688583385862795423548543617343503779656005432508911225084887380089576281279576038373732850222140511018824081329829267319611020305482986958051746325382974738027895745616896822229402671111667526790589144697294537102439661556099385463446476598303078349262810107894767973953603298641905695166517102267716713286760103765593266123592344889357535646249697378938952448908739593849626672481951111066733044883219934871035860524880492613965415995633397376108111923993495368650013423254066540553969318019538919281345546854603325355905843488059787641949486712552424914644009238241453497482999867842618105482850103497008976054178305453091012513339469244055130445363608582211945694209576789042144114746175942300217965957305040479897792228588768556456382386738630567120207531099345540036090355312624106190564334227440643017641103784153704352519081673916822383413381495584943595286989618446588239719545711262793832005217156755553780176998181991102909008156009172939170563818526051836613586288601164074596910513258048537175502450142473629715672098837207536098191845899199094191549756598436020975176681258856068166887002715962831439886409246998910441938746380837755744056478060394379750182114047128525687575922558086293267862930398874140168487438800578478090680239763109534079646470134100191478535246077325038641508222119584127440389876480071055570811131444159595066738020306118780949331005976143187013768297877226879296843584130369276370667384819175793609412181353987704709403489758108351419840965420554906288816606183281416392316265703779888143399658080236259514355486618465817321266279026997552553178281953677456551452655147390282707005896789897971622989434482635178024241538530531491412421098283303362280798360784514187531172375088376873296367794450597777076340199082120333220112101491012964447937452453461415548295973809127935216219046440475330159268223191329559068298661630395492209819271220277319685280665659210195137701233640246648652735687700423006781605282046554847402249437505136539250069920434948582843602010212427048743804198106305079775643914235372992629202825156663846321451528334851504055265945994788428119983267161579896733001135749392261425657888694207111846839542816217396896078914678424300005032483790050785649421030409602242704055954715635172080528524322050555230280322167903215138246691726151845825143818597441277928147971850988024222411570505874914952900451311351817679297949461073867071037163698746603170885083687844036703505631336614267094290305722935373078703972001434879455372303281577213741040194270492657674086945718510502546202297155403942139733874378329958979043047063442474805925247901386653726168271884922425478108385083062784235903175092947083056751818466309051624038481939300316472692392280301913038990168456283253017318286953683826129803871565466468770690782193030577699381888021644258884156673122537588671007470004276522724982855844547511479444282536774919787201551901191432913150182236166253635893904477673845085562974153203551693487154131562518506845288343046565076590661930396232073384081325914234664732601890789775956393314487435076257456694040701992442677946707904131592765516787473178920214054828314076087999908819052487915413193671716480343040944110308120775818863493766295650667729681177601177723255859579032541762010939319907309779914820195725354204407403937526878595208603159460589983067185901650182983282174597402793895837115987988804074559352461440919234643218503578136577111595348573145042380596705771197858680459066865386345017426360605861473408791172494241754538413213093567946243512844815042695787423959414671054451032511484529794482102172630906303547375965331458258576656384940597206997376277661070944481928090394655782905809097941226783859581235437122513781264107527097784159761364942798323665616664947127066640132354757787101983402996901201150847694603754837289748621588662425571078164884966117130127280619123916707491764955100199454279831802090969498312746557196532996247809563028948770613565991389442748067631549040766869480682094577966604898129487938733489082442099170583094847868793966498799996706745627479931887506223463570024015357359615491718824459843038567053787331217075675981147743116715818705476396545013005071614916236677220091368322066512493211129957717465787906762673777673944960124538099825004072847230659152249664513152213679063308260136904887096156871623736538781248216884121587716730763834409463137349311875180641916017076160350508785122936380355754849090748173074797323555152116867902139401315557774477189447657708995410506006014667441349216972907101732129411210837860713511620492544424534032616036967961517691188663183226712187870591025146340440139677028201862384786205215452231487902227840971456675135101965913298740027017362532346637163033542294371809833522562940965353659445529888091267416439863939466762317837535041100666874390026728422913865558939652169149105605212145939734375105444080189304044316406323634888331031732889403037568223953814966195233985459599332297408834562600972549204872737120373544080980379340861939661713982822115732102758767532218592623011794934437730223635838328103089461496301364141446883062442471618153078292007451347910293230413080209961025244867493767997659480663571388288563506277532078526448023306518054267139607822546563407364987808336547262448734086598453325246531436722607077694557059263344341166079751735299579585878741922669616937945011690561751504130232809250291150332622697818913989268087714155877398844044396842541335800206204949507137619352425044869603472596824558706680822369204194515728604826748074579823928617474431451645785554145284307724856664849151856257879049942840711866882758885813457967564820180193093812592803496568002120380820007501645572706786259529301179710320705530581758271285469156224599523864841908822965729180148820098107844655461121288197908399537333388153114830199594200911215007287216965763626896224522509472878386590762006663835503205076558114597673635243812706448349183631116812140319098035191623149982422809409436437158358233879446234845822649294487074695878628152911398534074245946901728686674982806793981705132225992335223485756360641819044877058191901251363868005038294570853291540105550829987821051139931758401787740096116921445766946826212487357543949064039715350765796426970377600486175889844780454126243722010803966356785326427434792692299425972241065593979458215559117700833968692011738218471615369781825216466286532417323413682914705897535935347434422900714264423181504562206984173733352567140075513792337315771504415697016023312475441751635542850081110125828011208500168758486514264686054123419511307611767060897109030617810164640318979046847578388583921692744952928629517148994265851721970711370325901156432539037269527919428868119460336458636930578129192340880539530357714952760811377495585714977350864800127807106224160780970775137917022622706296462213312070780569261281322118678100400797098284942535497810781131798991265351848910273635792909996308714379381625175202341445814856905461317173734586376448379234393672776749130800335267321246928085326746818770618440575010750524582419831344672491299944948717649850117853814896462481161431468735075194252040981876695455029521303629493664339026917690527328468610670534494373438260125605309024189281758852573454132859446718427526099412185893945860643226324422843411904608624884803933938011874835052454350680953373145748063200029295266499160089070351786146743599943410909153570404884972957483555067046374050711088543759732726027298207599756041337829714224544276040475735235363445133178391231794394103895242054427120490948261656265997716867700863395743333505098666764015693734065729209915206911453524212373154773588394733557796821270194470827113126080814767530508539183481097555560518446292701094905005778970138836577075753448217744490166325344576708696236162223696531681949428472876334944197010752223194346125666931738182855901482694152220110075940159438865434465552734708489312940932344476698455659303016242165769542978752547682178841125362125116155505061406406205015548118860424133236997263676938370003959832755446062262083963589764477384683722989577048847433633331829466055201779593581970081655097498323301789505424436848516754580835922421414208777597392990089583053036132391839536375042657907445713703403341488659098988658878882035855786361139321302476482701502862761247971101138389199535310379720065257241812366521962847417467038403381359629325034853079535293975993524052354775977448137075776244992235307641857671646526969828160276579157880285193215654960630120414623228277379712636495870437194793408379791652626207906329418288347010075126513088170915356274606053736940078952655957752782267559529335694781931920948225075863216434315690762471422220400265453654626649657676947475391173995172818888671522195601409048893827509634528849666734155408588570301463254816847553234103926335670150993179568434375826633148278272786674002645128908313278485091481427366210801988505791563619696588643123853559681267203088400090560365375150028340012504692759538385361752195305645760588121612764483144432477115217581576682616689643819572769135129630479857480190888790906508442106834290348897550509681679432455034346078274833453553445272485808627387016741978030311260760798527010382498868600869023158378096011922848541379414578162201908162706398110636108331534959398254203173892830584367690946797594885010757995992255763144296729729553023146470851261960484253566761015462988196444959501792089924667450707202234162974265477577423452810373896534076174192154851998836191470222260487181522500832615990415108030467861846564601018129480950309542687587839012175824717276995825613334342345330536556060529818232378963290625277563542471476103155892474875957477218001805674710637198828717641484171987911729014108892959205520652137146371047094963251196363880477373704653742602903291937710135850978478273991381596528982962870510628526669433683200141884982503289093129427972547375415685999983414688712531681801688973752998059964768183438301742851336748629119728664134376258194067365466175846294599811606197795440603556064464648022091519898952555426226297284243919655161803604303790009017922486010906608359327062340935891428816661330197938151185127290373578560435335537092444919496268396352715156540732272613389024565451357082270619020755580824065222452120145607111458759444261728287377220626978749611250952700646753952611259675173281012439668215259803687147398618183366288326763201575609186821036781944572274902654249460293609853937396276669073984064138411112873373567738701525512564347284946872802222628809143606710893284528997271430893933852776582696875891933679019251739902298501257339012837693952406107927846972216614640255587769352132638748331639818820805449495564388206086388260955593216710314381581375856432777759739772197926260626915564570168918821574170760037394125643509429532129923820522983046034356960608114111558743219040870612806955577886050614366542212564912940579473198551071661131331689855133000646269759064325471384201360736391086868219611620354747306687454219628898981910284189571619338033059970471966170859140502540426153020316812994919182993333890986378279033796167745926240802792065036775525801309656446837465461990391057009817703221314350110402077368786314724293735846699184925495152434060421172087102806074617975024624030110428438427346638254298442084349038801120351844167630850109875892047830954437984044951712508044179137733554799661560741547276688949662179638665447820880690677643264337316695538616959293786099803477359996306288736349760370484572437423133505379694993862052607392551330815735508854792618726586122496537417549769508432365394950076856441340060370215632585453212688427991018134819870737295949040105994772016545509201346615529319891012590636691040835490696803489301556260268525421323596596905899953025633065140327729598732084242738819877780473046322074569064403587364677504021348529958616786878900187609848938567698242402762225339280988644436786295924763621375154820322029455881314125816398038980815282175311686885676162472124333315561748545041697499631403314309118531358178471586973739727065272145139655795991171261219144833184159531614043837298632858042836637039002606752903011943573926186992202511798278985939317664164011037320105135311267791779113159046349936894251894880842562678447549148630644319306779258226825421744860109986961156126241160005474739026721909728659088041144282653673046822233095556095943882944189981531311018378494845015179232197054630501649709201271767495156698379109578062134474865689904047390765862047480444710311807013740457427200730223485669291476416540078712444994122569581294944979361166931130819735934109097700270238241154321983788154227427716963685797474525924165022355255520281571827905109517338964702973453591531341665428443341785929693830101145954340988483907181590785414430686034565852591595449464266197496183577275898364795984983646003950840481965291341458706091236609581167357351656266091997875809228707598381644629311321132375368399622990878366221624953541925716502639607488616715472052722153574920610901769406645074127871588134694289443050942229543647940816115366666638059027211741153329881261428747823064200816237007499196754768706127239377503525676813445395342089399621007204164153594306330230016421999716494906590262606322670399354871683135864992260073444429126625211202515768365459031198800306102351049127042708320118901374078292620888960567145151171224075348402934888149490002133494635088105098965138622230416033981914478208793235687790428546039080643549481251298003037716979534900369580719470940887383024979025217852029976052458431073184898460655527317779802826959268894741757318952672430233285546777921560127072479095627137002244914452016993357326298109390826017760424974739529383881058556272315140865568121016753920539357191739601449571571724398508932466217454388081738398886362921954142290489116218038097279975213491303093178905536503713823225979598236185970499102404118460877467582393717967827036600237900951862824829422342102240334951574755740807841554269552944393987931440598513050258768702524485220462686183470232748312888711223747945066088092031548151136177277220382847000899823582815486154763297858995576854833235494846947364007804282092591121868559927439497341697351704993943723020951064074222583073649756244796811546770801229638870566313521193742387047428715779898074504312712763117983212416843493495813113944859775173763099194229204536400332389413741176778901191770447980092317396450053489936443969735687325689337508366588714680275814745378424720918683148222950923406722412603728835872070043583417625878982782609826012321308131606729032927304348917040454106868996105124215631021940039226337426678100083405057691016712340846233337470407665049442134296484219091801507661042293841625047992097542916948030286145474838631961608662141242079770234808483379732224673769233234580139687018165261806338964487382255652694055213593625381304936904513445473555723377994264605605112097036173439140311840458504751601263886227606381883140267547612626768999576099128330582403440333646195134671295919268557747641460368657283906176354008595203008300677778518728153727468830313074309164007009222250982192762578816926292265053207151327806633673617323739072915404557863653880552264216341584842809579224997993803042215102568666659152268119319190994477577819912637397306104298267019835694669528879272131133992249290407403705214864153320584441582584452857158541181059688889124562802206857955996249598976032048464389201112080111047887136585625779597104963084968945617440281563894598593927066070101320338493024402667836396922382952237909191579981556980495100314956576163522563765777455350818612750069314482403694443183725208307164188161781048659929054498681368439641033707863633862143006799034973728690203882055417141076470136203411580281775869166131978311882931774776146374277863617321167235045478634462486168575088579939928798755974058642888543629885904217614461072018443445939985389113623187707679190671927889503261678186095714189129295514717423736619555750776469797481879677942640635729310709645743095559456997191290763398743120988219095948774137446261745711734748456430609193026254122354591914088978787749814036191113785634358969227077186622769000853255058202010217015847516122503328588013980941830686397368532958279840411812063871716859562364922049874064617032613217576285864347086855433733271944590847635315909991503033030242471832576530567641200664090472587325813731863259841909372052766139469493855914542765463931277339500390280884390101970990008965039026863919058542818248373066079551560759166821460958471340577374508225794305621016220052864494090213784077177970426994113865548039737251873627196203016277476663505495821783302230166427780961275787540400038146059682605516645297544122203447991625680660051224055784862420967583231229779265365821311890320522900724712030206639435120514017179042507554266582003817424801234532321207158238581190076170583889557441924350973486777159993678060221826314750803586716489773240108958164742866713079610768896300345773345541267948439024361539708494529270592884229437414270159422629290753729861809843152323046805937477392259528641992238397556581351311394704450105443708722763346565894650182639012379795651368923114535712082709890281155755708574965522508025638632190500024150333658800705396094650598163364844700120684697829389318295574711304310707489575560238377462543522020251611610418200070496122270883900322108452260826693571397166225574868548827343981010632591807837099551609005710047990872895573734675450804450188111484076302461196158006089453172702708287675822334297007019522119080960388344878057016485162149292534513729138517431042803076790498740220637337224036312975760539551069385274207329864334754647681146193653644183159179546105580302831746513233872167563548470806625103511685366006709862891587408115752846356650282760361045733662613557380637833773671321194393969861897519349921209173187678052905111079061652742009463786540030731974341560695195917266259170185359559691618483645873579011437325520388973075800932875519732034424142352361787184604092281128770146201552707549473002221562378770000395216610010397856825523239772363657662654306452634084102053155430277649982341379869747364985935967964853618211914890026580550954940225495259712938842332800431172005804848508278119727063543256188212654323966590683755062275020322648507473198470447854146572499048196526117601973098738616651719164727270322506044137960346965572244992209828651509100744565486082909976950432348733337730693036508824460117312922555732563370517455955515725662755809905055946575986728345278961790826145835879382241180588613553255589298312945285303224204214877203100815402912997241460207349137972884620694078997407496132849672784720152100809229886840839001737665347605304476786443018788133881292075582975482222157919682429380547965765341941573245195145648546720676055725765005049019847089105238828065069237834222127559859202654583491856495199768624130713167717485743329841973839102548086209893592549393286129418490979818368760705813129306750878599112768657923509356347795226866930405991120523970596354596008783153162613794072600052773060763749178994899751555312401545379228302209993265294442144181084472667373137603255034346359626827089204295834705760081756398854769668710538910521013290668698381107884137759398858829505762035855736603817953844892420359543164868382592083729158407853070429798603211096718523191741361717753413938446320351984159081967912594580761850742520372242334288308121775470105236339643408815357328912998012790208048172725697906267913951077510385029978842625340066960336705970557407598630961254625021256334342328059350575515804934059695789687620653796621182168572364066459745707134717046953229189394334482327187626192979192601917404101797954519932023401430582246043890110467703666311539424784387538121279423919074085027813546075417622576603390979636700956626846948842031517598018123238572440954302206959007259740844436842183125692472414433120562208616533774484950279970515408996445437959511548473758263531904331152484488952595499558640713060671211754948251783391131222316876232738213596735640976011735193723317809136530347914628717990481111169987457437746203567730948155100393519728250155542223727453284690770189587651878233779825419543283246731801650942570066308387909191943858572023032147547552419075330236032087837977568897045329849689239800917421651471963021744762824509275875837513503477877379231884310670233421807334806428782643110994461611559230212083415060575266908064883784122437758761860233786420559373989767738862454087994174638489851581938433176953377045076610588748201836038322802548209434539955089191617497874807080636575136834983260597428068854463250049953399564339825815443765854464448510136946875668550363793462495487291709494045857699211505929932295796118625822083613284155887114158462018492964369652533920510963884526346269246676519294376229190838167031114178577310087826559652935219627684083015627154087393632377312956165243962104327998790297668885796268922234942700138976141233151827159926956294887461012185840685600499857327588136197617886673790171473164205221594807925515796436871710808051846891905391825593935102432134518116452346487258495998740154039923231227059502242782665439151127851720052967875915664091977958501759588988531783397861892844603170629354941126208598283112346346521571177269920195543486223409944421833926246361007707988566675672766122572294034510723957052369891469882095252249907000170916278144879003193397065203763750979221080137071845511659927514515968602566866232962916554666065365698837625198503459214024398807761079276976702063926243242768699102684760188805531559184750209568169455640966226303451862325182136444494537356302084715230602404938588869134176614889446084124644527043834287866232906388042774922159552763605860327209648304479244923701511887056497439113797917530005550895570696744180474882203791073254425703413416640453030998694767559840450330275753782929370301188495574429972235339989194665691188680879174462356160833273934745736188344380450734767281231037148774059235396282493776317103662121554054635693698113728986079626827356772482139281230493243143293687648830782729803616133875878875457805217248570994833537419569078035500751224091079267174629068111510138074422669710601160424967854383640154799068937722477594471432193884298956376851786027882501536269171449975915310819512067058745078810300177863846897836010163700851814341907894225171969194137200969508130292408280191841745033099210351341011704674155308462033031111600008969105290185430314507205093134374588290852341338485524906369013889761795954404005341527099372250703285509770008381150905791181660607054039921554578188618802983770929775082450148344996358410324329126531164573788062460618860251168864025559861826046814659715823273654588336101303909622661988889497762871912280889329585205068145010858175059145280935492074067442494589028247194627823455075324076640419276105772950885120562789806659642733414091791358751531674898684793382748640722239230479664057021324838022194417816069838970871760244596399047715336335400196896777083674613441044122455279508847257849005286902927642516785598713651015110760834176589824006703546723963386454974922691244999862008616232984661623456934515767299957397853464903843240911389888933411017078671287287323380705602613435030365235268277334063081519606107392070347493699769900435006349181526486226986867461458141539226087977872677014564809488326171852520637076643968536415325935934800963265783622249351529211057235836744610645589050426926588761803332105946032964157665395198032711696478024952656376630041940269148270785817067527086966955961163015027086106586660504533298945951785057013509938498535434699951385460801893212131405400899880220322347629653418683089392071673733223381255755773245772042413002771161089664020646669659735888927733806489759742318508494187468779093715261848038398569255645618978409289210003809429765235981455641038340653207174390207982518065258740603342718459860276065914196034373738226796292571297232152221393432908480857978324579157798959654994061195662224511436671376687571159193947861429816148352015812504841598565851698106731619092115001666616941949110709226817061539929075674619209327336827463972956461696056212466393906322509192532529847446125149309551010192425212361527598246057838410935959080988520761482050650030329061551294216914742504758637962247842537508509728208971123006031197124384957708691530544073719466487764835549836667937268841623125176367342805382002035233842577738143339063908328685503328137506919801043372895912869566344462021771420607417308962621432499586789609526121905608724089169644810821779037601176330239095727795130371000308994166012404070442872626023811769601096741130726951635854141366225168244638252080686204802939441718593780091518957752612898357365140936115650914302249302781112710342663074562735759734118298038664996746697604291030804953519679191099891104205192827440550118331564712878558555526958284105209230794359278255512902764626635223423519872236732802674537802000247736317054959433142064852451538780011270493402103609901593542690977915982531244156840255936693988659011140311376305438240548920426498838578916570013304998035347423509608033427346561342614967559704338107612488124941382235706478844964824909141746573900897687941684436716723189829692675272677035498636823493301812238766103942049352927385184780644844040208203270480403320421931683005925265723129003127869691594710451247348238584011769039194105475988327793701865242470992866373605641913385804435437837244081585792337020209915222548205698940553960402001888354906293837123984347092474409388639258598053429203039345365626829908054305275900048506226515331825955598833379577144289210651831636139435856188539235117070622325797292723046908298038051265235766242440666018711777136516622299521207708132849227872320295493008423898918073435229659038807301758659697977862995335983217348016780732480897951081274630377499253250287062938985986467343749373574142345276131855949023323018246024796508198669901287653859181327323838166480251581773224745017260300793829772246481125914078240454024605442845739528531703150444021040948079725803939886394522098717202386145568849813947014264092245273739824882830434849623514471055643206943153921463881399360184166743580862346272094577332838702158702842744079288897578209271258520459162686824013999084975228476575710372339865229991803977317722803732043446936767423433887574385967251288263247655509418317018445580091687155121341299248345590756219619390543716100511272897062160033762120212910908382441608258652174643193412633028185162376549185714470953069257918818366575398123848137642539659885588446023581931983715710598350124990970518552934706592285241395176876414355805325340399121261142780341297454714567724333004452929205268311404322013418400423228377151409527969012157415883970764991827674004221324684609349327151655093461703106320042733539602944887992483958033853645672283494619568541990687015601388802423705439816907598805773209070674111895435866673330471359498429273055231628037862328643883930180819631029136362862516857180589556470419154761251720791821585033019270073506969623845561931530757235887085943095461556231508698800038622749732777097149636206989972245363344916009036320963563279858817413536741380717344271698012598235814691862925803424296158271737582214502250510273545967107357685788743736773855487976761105722056929365040466493755233925668805531978144816400431315728910004611424981966068531712693551108707238538003323102871912885242454647925068834157101997126744378586743965606369614662171969930182376697553614662076143575392911338823119419844086490776003839090112568385388466616294986911745174545108804720515041232617361519107404407407365753167494607084800142149140711939647521723099642180376558703825434989228253573928661620007082486985353847370884254203831421284952275773929019059345000909168450099942162682170396416081321819241776860170116922700229083059401919167182527323605685069595377378261080464267611036818715797494160105822404747240759729833091384760800285514274958834654567008299489549326205792001229352300892224530927291719720560678268601446778832979800745613377334976634326585154983870130075275947266359970875385374226832285294160375310657658822511791131524681281589597426469552001836656548252380317003403996016726961565718478863483640905398593706260129209397058809853497840452882240970052726509779070061355932741108323975405594777492118803222134840162006100746718541161400088665735019091314189952331017740109637125788779059010545392712652004622713062061469582116243181268199192257080003076412098477905497493085936909463490052668779648202262041712168892231065586593438867132500777498802865256182236373706918732869904927308959511232174759380903824504655282248602942407474144000249403309813576001730496880857057278904449075826984005428922481137878056954361621013920222957891418188159694129494182967400401242745298199207251594870658491342101979805314491367009738915366660975197180473282506182006517715773332893926568229546902769446811692175653120765560584860301265169818602261693245008695582110336874112945265665351038893585663724737265819780137510513639383300372436439325501887652349366782172725104150404051847586397326281279395617781880808831758120560120406947176584226956921734491315829056066407953638603022388569368671351801407360365137181715153265904485544430744379656342915332624494337482733344225167707793753380259232685414596256536835934544800678418398599591099493622963667649001744553333248887382444843886544493742144798639691561629817998411667041750209080084117176847672057981488784068437525335541144438826974452675398422854629041704785246233286464648586586578395507336221335193883240317379087094467624764517680601652118582788209395904691615274260798680189598738351133650521276570286230519346440222086443799864793708580865671557317937091242544827017516136346761245841715905943578506120887907046093316567217811075517933854563292494850402066254341390954020087860262870246515337469175930473022999766362742434880793379226253767445223265646804386073155534650965902326512462677342946708115547705164280402489214751011034102433838604492977845476556399211756091049650148939311437860048447252448655377403944087792969146450048538680097876430274862615761047876608598685949893354159578260347302805255173878278614221787252269170757929533187108484901571437662911445652693443765558533922028438337564548737023560269780133084050460037599119241386785263190986974548692462701968064935159598636792536488593932546046025850068972559821641420701388646852994543681276349018090715921224504446304849694229467697933871724938541961414361423536506707908555198898558701071873774063904046304952952794896371332808019475595460134771381533914415297014365887642672709395973544488300906411855667671094607861460100308110711232075553539053996436017820003853916394473501911884091219285077401930272757560695849393923393597555394975395941281178932740317604560314488277821967052296067873154749552045778702595509034266198674170986145699934564135241465346777843186317482498509123401050844485563070295509763224521250582547645678518184308859370290167515554320285475808444580379689863442817833975950892655254791776986310209160322363236601953980007475276965212248078594536241491549810721387021336950660123741448761454256264514520130830012138415963135007058359246613337212985709241169678001351977190575577504251189246174270653847645699456781563912556483264640102342611461670915985375681670245005990202211185853656978507825228507187561383472998794569699204048525468409679913132123763403256281252998015523980001873651165407679837395066777073374437735291771459031976223393649138370677471811049280216825369096829813335818240138407238332604679848962757047608753041864561445495953586328034327245986342346298632377525584379531648184032928549277647517682947836328422839907000350186836775267757897128715051273611188391196410228288423834438583119184972281666900103023570435239584033475036603025082831834756289078898767563646367823473325794340936015208228431364229106960377738642770199233797181879389502862569604419961878272398302454216978405412778049025179358594443260386176053277028529824262903351154624772971888615948987457581941767398376398607839300463855683918918181333390052011418794830464990599552702282820034604069582087191779703665471277156087082638299574558951080929898678995582935361364216003326730475089269926813955830787972505712935393249782238767471450916601188778181455808999765778129317597515573638592966013786830534590740223028711575327772748183318165908044242312436786257510866236218374044192600585621649351623402516515994406337114333690060229017687177350361319128052815717781108100159006360450379096795341067583626951727896303205194319240415163724809691285041172552082220405223134793285511440775705037650125056479770259890202935098720853794789961534181985308309517752931160813920441724751707091565341447500751502247655753981497830773163277694033926560082413133657983598156183266315882182991038294151953540949082399997440755356510731079983665082266337503253203440403164571012236900815808834205978078252411864866969427673902638722295317648732966958096647437703955007829790512694837711623282977839519011347066718094402246047086287474870121051175492545907938962729477451922973101086840481548907734279807484013485402442120433162087351433634927272998210787391658520636644028661411269831774716125137932703978676886031848444551821575594157604316622146959425493294012260775026737210137463441288782912448080844046222525916068951674937111536778270139287597720222026388324124180546236621252681373779473202058082373050482865735441210181679218489266434441376577945347415630537513212531294558302195560460475573971239318593088009986977220782550285363366248723966077865905954063586679166864886995113342969643189492227970496107356233957256165328568479374693569384314899321635984754617150525552284256217151624992110397873817139739457576331781648667137307277209523391599182117157471642989056695394372959367563734856857615819230257089202046551789696564684537897210856823187378964903349295301892006066497571925004650593189247733247739741239954211615721030654480021679659584632669218595154285903054076751207724540888394114801275797803902324405990224649713847300398219476702102344961538871420750401915712722749630802932248875096853139571890753056384704605231631667302946648141909785671279762310418463733237221241536585543245135333275481223212934838295029800042269103995279862831374516156905980390217280512029982213199060082559786801407511924845693966080175406098630458806429349308742664612547397431713719476155717083882032049945821326522365100892743795934776778390640330559474323316440415380526166188324049693026781784398120773577728754624879219440204080709293346885894551091006797801717968550095814523131464046760870314884600022815804964015476489254798190631861146767579576668297679066336123329205088876545144165346500691963219014825084584352791619175551785535135306989466731049148869552023725567514222547813913398299049869133452295263936175833212872307424644255653806385949896343661890264128530243567214649593071633127380017934322135348602571304958833806462126496691944097610932696419001313444190119322038331708845243995803976548471713280534131212877260193982715962178925122191210210296927881819202397935326562751609245446497142440126724276750308463637728799070009019543386443214245520702971407089657921113589248374995951925079867115770323192321142885177478325586789051080728042619074290439488061210668111188204323755448273195352588238490353407112195885905827567856669723846773294528879503046970005338145433606206050536833214581645087052515177059814163909846740975404082446889289212247709605235125959680602660071137369472750356266300470230970286357286664553166219002541288707877759324086368240773498755514006356869877064908182292179868298134837736780831744281555084046686331325698177573173766921416996011916540753791435057183090845350892232634206251150890126135234472387554250477843097358049384014985340607759683006168819616289796777518348544300316802062415293609884302269130854113551898492510544915851313917330713243874550947760715639580082964491719908716599016516896143690390503074483428962420350859501794955995802135586883987344949897971462026236437658228509325110174302596912622099959255606392215050907899716421509964474912217624831958415129952506805736233691978300784042973057386275887428932885321163175879213830668124148878812078480493415672346254712269506884785009199152129021680908470992436748472376668663308496007303917565710613907323198702798223087870884849563991834239341659149820757748733116245808696186380339997208199395443992114797304208975459671799341722868702457151278299013286105402700251958807123479724434291969692306773200726808296999545751821069386379133163325325271580092228273608916970004257139471049904599600082500009883170597339557871523804339135949711742268188515174605561397589146914587852362657307517574276471692772039810060745766386332448344024766033141995735762782377885584259488645721058919906146702098613444243089882808014981734591598329948203428555279562820509348068647906280031326184601213924506209498659535804949545036304430867474449852656225833278843618280700739982993593541607728562829973277505225251102843529534358865075388397855791508929471891829867065729831097258611382475604664362020085397568477538303331037102845570623996448220792770211910625540332580357866100578523859060082842622755028306136374910803050239977903339864042751771413400812563160303796900393607301652340334912270732504876987589586497034810166289742750496130031813287627351027060477168329414262967665994328854716008236313021305511000835817640854799612763856912760964924798313208542053989259060372649102553863074034957822696965768754180423424330863632482436027234530458933044205987212336473280704558190782150330802259612572209601619602120768980096257597159535816453331385946644185261885443395428016062415458065898392521676878435023219580350183392400041020188102334342264588192023675740774251942553486479617282737370856668991519387434895513689902984601011679544333558762258348047745095969552201559811203667366517181397653927418990845492780348930687237656068071147175109617505061487107166725843973678897047927862883260813793630823907859585365227029676339804977071689807236528955129808691523117860843676710545906149527952309534897617992072577585575130728183881449208180992642515533142822731452379877595226390831243219861117672098112980890595700646641771591114519634231654808350460662870944894206178428513643702951974343901366160943833226158724123456626258786587597828181142714862860736564387990790556239007262461363648093116625372950525679036522229872001191295176152124320412821940616236882732941025444913895804185333506011140409933103044253267570871318126611066491657499656179153602483958409165902083709521812614402790071614227167654519714649995353146210183249807384787277884413270601419882241983470943096076469056832715188857477072537743982345166883893188214568839305588536892363663975210594028498436844637332588244095990046181168057460030089971291363123233776123730386603312322636615722719575038161469872102152179910391764202154817008774181918097379684585874457657481397915294935758990306294494084770699617604496438729573050198856398781555304826577389374035605921139621846222944055758960637643119957216116735803571411223421342087597933641553281519644057357792302167403261814662472893955812393660153827167028433492578881724288393070014940638901838653633137529876789815103843058241396606678301616034428361830137145456439322824279717378558296866379821967625472682614113073540865342181735399112526123007260208594229354355939341451013127521140740391223453198428445531636567556314010746570042770610053825195981249198644803417083255212899517697888865703404238683697775646438629077476106293935615417381456507167882203161045230482945673097235806179145006066998183075205358507430165260690861574258832080467663234591827695721476212456586932796958583136498560311816047478335741638001249117613660228807305786435313607260415520980091079318922556023698449842968158917668978186040422126620147887676951722346140990416883320998921622318760197383214555400838583165125080002232657602563881351928607839227028004817494298552938755360130034437339114410559068419465279320747469690659228156642569826470906846901448246303928613157870381126919436072980785682172593785468157761477259167885099615687386498234828129167733425510990283566368626398070077479125428855077235441366332585132745407050858225542970345401903467432842667594886493910890729381790005827751535569124617724139616922751540363047389377840656780239937191977769920025129547516427612431953751259003326005737884787508597551134837628345279935755670637244641706641279591081711573976629117862156402224916781605030090157580844770822045691057598939180031703765020630321895837571576155585844746914539204629475388529790618743859114068616488632381746164351431801459222077934948344023831292201816844755274020178283310720559122474513389985503119526126155067820622595048694434410541835068923364678373463720883151030000627481960753288369782635768912930001579570832065771165342598129581512793620124435220264584595614924833900969588960057421120207686875805495150307171782955567063906458200101430619930233609360888558064356020207943247518879689238827099241584873055890036808276332017306975296293570605320164614497814344322720070801255597534459103729043553770137589684425501345204361429863095723817315975996964176180518322022798829350123023375376211659945829958655484879362934609046359214794039823352207849744452963873876746254286288092628956564993350550694356693045325742177807181498079564235849554124067651341504255796919283819463924511861985974712869892466855465877034993449498495051980499513682591295216698005450570039434892665093145999029704885383392700029178588719988487510241038227744498980838572947843126200440358128646698866354237420980811490953934752899519254625066272345643021546817660420913657970972922774734607871629676476076612321783300516570277926344297928415819453378646050144039344165286979485265385466902720347295367048037511577486340618844031128526595275991214207177230129506344605977587462212643475678175856932343936603293218694129631094527440517132043381769379231763948715202799590023500217385292072945139802619430245583409429871083618631569773260956826770179465693726419308256412322608333231059857284077039042867411285337113676713341555409989523203986557931585961804302038607824779633886769106038404749788419931523802942872103132797457391671762736689600241449030072232591971260913118884660919314252020897581810345895566062272130026325765489664170617647983615485518358365003924722002086457816345062958974187427727853209538182759090666614664957598145290569747724088413388561582153954050417771363702585264203546789552712102122310269138696080979221846143426501947866695197097936871187683374056476669071895868472784362668832044157631787473220754392748671592351136881579650276285168058619944576454264893084377109962221967428720574532024735764578716197417295863321189510252573318648744785809649480510665927819967968499374989245300451191579490663848558906800721595631315962166016787159473087753080256281637488619760449752386810379087214221262913145740224555000706855600370170190994452061242912588624803963950246592659108169797438182414475591469138086446241373445816364242907302403019748923067914027829552396259160515463044533409527285507601587485397354528771590556119631932218531396858325847751576895872349402894544075271237330038407724963263849073705496369305100904431049624139015365237416950056436681955738711841833356177728440715386908835286705367209591308136383683914835760539419393779873020357458397960626190647184453094210564548689184645654893523930636517724994786379648116031873547202924169436615608596779300536524735896878891156724142854249388084010557269970757972374793760213573188394623013730578302854229625380451409478352786564807385246751430264401610766343150612926963740950618700196009156457460627575760046885312769185989440914106090607847893548784010989371001349843200039616606892285811802518521398638626167633009426184252655102232798012167630921795051796773872629109118049253412809027269382452496719506277011393100092617809609424874730738150222687497395977983318317132231420439369360935325681077967402757084238303670869329439682130502436307827860620711198952227154343959190813973984360491274260602320307842098131149979291166922553587160653747681449165050912439081085349106799132377259349080255184927403636676605835328704642158665358835291419018352944689763667551194878802438287776871233541772845059622815862118376452600006202000603091613184258782912171852590496249704483730612967602564318628561599883092039255889181243344830659790563794838368632882196270116940033695939651441979044109944345247626047740078394377504452127712347271444900726867622277259489727430794502066900647358099207689496301539902668935745125779316193882392078679417769742863908379551843004013940485954310300147426428238521686779012063231282716271405392535693220984584224533147974936909367574757084817779202479937444246428346734550763930513120385570233583478719244733494922408812462406136894624578937549863246040649741066969624019165214116194570060591461459164508524234254562412047768741182907046205474150765500137543986568669162751627064132720788509764313514871873015774068845948077426382801420059512377303384902602928901885628057972783954755751080788589865898605055671637151147529837234603104197693456148498124849743032489039594226317631771663031582214135032900942094200644523857436683604600636311981626094973640553232960528974054206468495058068867663194121588706348449325824963708673757359504250712981542422851679978031953279993984887696809700228868818544596069496748987955192074482190044434763547245414980222271382880092109501042210186795746159770032458168895475681810534731194177229320250620836962052278623319126688831972903535369185597114455529758163584911765429380501481489616063117843009438541130470149009041719276001394241102148980901355295045622424588522707371136370108424627524998609806332554629961159392899070917402311147099486312824830763816528505605502805260895042506299706700849477355770762558472839700004733781458162933506655543864110703844435927171633768055767590549187598759140428899151989100935050379473900345357000373444194105356144022034967839699177797107925431968356057606886335700417092361360987413792437953698890118576670308234501217945659639426393147109179883848243929533849252321727774677593552378426878321652135393964259268602180841489622569466282000091792962081496382304268567495605851700003141827202403068331765261817446566338657346788638964693701232598771474444081998038735644807970188966264648536075601017554523407647605434280363604831889538900494420115777001306405919240570209384762403384503644212707517099558209714410650867913577431015292649570646637629863121158483280208966836822939950919663046276286538720326165305343800585109375281324483862799288309724206762848173980301930662189577079920190911579315248280375648552391969118162608547231626651289054542457613362624239228565419975675828295681832770230790427079694468306950663823485553266495108987477731016511026565742324918404453041021647947295168009893875924028648641741431303326856015452711929122980190711207881878376950242352930565780357816448974098730980892568011675522520351548365238685069605241076532694962204241389924390180785289021125352367025715355080405083394619047152519511545143345907281321256134393511973503347451437413070228506131658344125985001126668252240781983663921932156147751343542937799540528855499071611059170219678956050682238615924036658900005855760724521785955380614413386959293654729937771957567861171516481713255995465264125738423776392535765827049713732642103849363651685492089856284640832229813571831651468118045499591399042856104324101399855750302898132269976920814310899932915083141956076390446622539391251163175849366131920173388647345999661058178599374217266884253801429648117935529421177310108758811059144870165875596388370343631843020947041701850051217894662541069903364045459045304620270284536588309026878905744574105241788997747486051666669415447646507132879509495750891674437949466053955877705676980171365004758104437188233291967829869635201689294550613007971032565056087532045393632392963642473420779713560046610500898035615755078436967272671780549961376565919163975688287023925707445234176283253887140952058335886272192948304048072562565961345915513515426636550063346154118537483510950786390627252954699237924964737800185562241125292893617752449866079661445737363462328852720631107060895698708983921674193662605815906012269513016549315442696934341377489089321745948142655032704515860581871556841390612174945011585657076150835363801400917292585282090825699582325939213315042189797005321643827408793791348983512172166001106123343064496431056690026858625217201618611940872145715903693597953314741350081831057385976301755453202023614271153317380625457641438730155954340454892529114967669994683113743340248286977414823592155221441372455104822388148094597666415066611172838243798906835035605033731825178725084893930731507173487686295441613219070311903451266249219233284978460787666111643516685163229124762611388543817798072348617162128082680427902538690759946101840704212436098393309186888568004845123229986454444045014605492814932258447136092988023057427835751907156965656861272209557520429332853726315402550368342557524098728866911911740816611394602821087201151606542830682549675708367983862133350847256025526325471593607087991757613604328340458089894089394592518846051387274056580257484583927560236996110814155832603432064616216405908101246319187615827776118423130799566980188181844981760860010957131084025619082287554302226728497946687513163904371721570029846480887409860778996193415898611999968768455225221103701922545970525727841067869047753261459252094409640271125851804086592622941088054296790092123351682085801343176840258829536611271301788508331272081593037901841711997033257277542348121402483899564170742338198441505566404489854727067923244113525615335252820147579418572437295499838725562570659185036395815039048573600925917816432205172057385511985952286256752351340661757993895739397070586067255972956681407389652072673527286420951510913849657723776502978654722967919671628493973180837519002728130720996178241342903076695215596566017377480661250318550571325344965885116351800103171220983627441896585525923105324671372625586142559256996456199784015222248678330378345053500952934850653565201595893106179365790603181063289940679796055336922804914125093334485672048996086462693367755770268602441246567856900776417032367747118631414365895156500339983641857425147261487379092241906378966463162036518503626604826982906646309936846842823604002833221086759895553791498989265666902442191690354055763206064046493120429473000791020447294780065913820668298064763447398989580827126425571177519232785579756146262940853586748723824228416864675879503868635945959909315693676600010475931296193139986064891231242536913803232869933371152446354349986301147731184517142534771485646437284820413706758677047427338841137414297151083599967590024224136309144249561662458053937301815922812532320284486441238746435765111053222504475834687063617330559733803333495940528561351750773057184919111431902267161198252140617784704635338597345562659542975298536011073200039081652174779882049722971577188533058990358723021501310063182414378464997967569858393452217858036546898985181843260568090792399663214630099443781428668765792905505258387614731655153449453985681051523524295989183566214183940862774074406885064258523255875300368345295151183910586108081786962011166693442205452064406368537794703108152746210374618860523705241846572542055532923389270975395276630365163653568803415178409388660611745241254542373878117098190741489674593877267405182794236868758911743591772044298589887407861154569462730458505631806304173558904281931786394356487880825532320877559007557773870815199336131750782954063162693066345875739072384966506098257954446328034248419087539142646943866141984415114400632435706751192306052019651067375300098898331777372606474766387062362750790894676324927375520537932859600893745232101739714454274605618054134260174162131240182593412215512721020021819183803765667596806237391480255419527525335488691209329896698865562628614707688788734979758432916613264753587811257372032716882151446422843890058497338946019963246749712196535819089450271091820926704857952727464577188596650246673664091113473376011733535433196754244877748970652898853007088742838609622409675418679957776077575281143134604146510197153554129164634823740913810120769935102355991020959489101359445609550411057428529363574517586631326340124683066073769902655513474771446139585563633194399715292502213012639126261617792348753057060722386287017972611178096348528001903461096659105799040837051852308383428956575655630472969629342360916291300473086819761920744367650349078076274207946790006101296438183484861436532280046458285823277396084902443121792019589274083888944526478087624664739304744860253436508414714049765687692134998083751478179231076323320022837989338281239821542676535001164862616599209739315638061905598912248972864122038445846012356761632076435059453493073111794436145828284556507392721501654039179776408310042699513062015336061770957820958792188705053299981141625923090806986162772259069895626191082789472189008677324888309032563416068911751528567967256477206715847337473317329596086684429161832377303913950206399708701602674130599317099970424532252064859378903969615674231930047525523276384972496806273977707931506357485572787183578562423931488911233787757273473513957078575537379500264308701963513292283436987827180334546566100218433216013901460346907428177119517952695969910215430521490916900873189912245559612398030497069990192575125327373111855552067270565182632200758483129182894310676661231115741655949069509142326873571562039611396161772806482894172962403963474183999937247858533366183882618317815772111346897240050236182814010056117164975115763828929353356043203730929627759794565848227797628079684011576636294580841788202105509464305696003205623059488419003970886713387824185005458081254785375122278629189796896125250334261748494209716391442090762035318459926616882981841321856915941938795631472255662853437042815011095098271661466316738497585163905073478954262032079016949309882181089210916871454343964620737402133114220190579375628165715076641124820625819893822792294119192741534516409857785723943558959192652494166294348827760832017720606569929029106408556538280729949402376176090803321158294896939507910849695886110129404725161759256513892186253215213901456010001800030502785619099577831102387563319695920885228527740231855569427603529708401100233253794042123003734965657282870681984465829863518264871655593504573164961607181855774723029241332115817085496067403415322795095373180880850460986780273305003241289332751235247858099760945772672410605912046774683537935860718446842045009544433786020069177100612144542087482149558632328445635877447274102174207509500225162217767602667219913239211188591814798719319889814915962253304717405693778488750225896870107791770042864059229488427884412034585852788099548984082974653654991585123595612730137168385156648694311648297479844866131259525838892515967361350156091820590027373892189371228276852787051198497066457848051167127252589956326723491453865881434360942221290772950416053736211576524850251800309329869261465411716900215768253856548510028760329458105817592849721945498255903597739740208982728862278278914371606994196311254692862047377337159974602252447395798207003436175639112082850423215480706182189758428499069419938758284934088502516861934825003211810956375646117454702723774002134672940024246880835679876825693390495492182090137900311627195988480820785692921534136139447387092430312738467789657431546213092826642058350031113697336614186331180057163762021874314309840041686213451569029032422022364837282361221188692324242678156817509683719848976258745139260376041965295799439912111191799698882656338018857431817672388489700966776222114840117320148982649798320405810356885901280026239125807441048476386231088605858797547629577533737242225308776763895087835381685733669992442540884947945323780357352840478790720301378007340570914474971875721334195179609754871746725414582219941275008511682282946668254475645432635847943971151952705497462394326127001021041745474969435176849364126165967678158529449168407233096435247866658278840882084045447990402845087623494810133574620662780904756126482564270378199642100266985867436523684529720127936252237026461786115696876756292123954571064819619057453258655778441143015409183890810009881819643879780493343033659887708336365975710581763104433432228427059635359248955524349418828429694021956113091222212896835213050618578245056096858648116827299878279704748921648530324119872500403266654906381182806157835682642657539310668663429304528109674030591748264683738388416615943994005723777774327701235130562636550731036255212692203290558901348978717247701952274204635589003658052183056403220320113471153127135155338157697640279692019137701167231505682116837050182837809399413491724792431036614720344268977534888750883208561034755363865798804685531210661380279615877986803238351377291791521022756105159310858336907507598079120679999515371538337619789700135999931100886329062472752612290869964968620167364048115665429370811551106899020383889624757847235715762114702951682997130435164284328961508140578469708706427362898574760010534730637096405976497380107986235150008113582487787143453624099072012374673613172245104193408810329385077851963228551081506861332503796509413507318046284032609246805780931542590260857405256850197237083916330239743156143360773266260446649173351273987102307117792216756646608056623270715120920107843236422304356897617003569630930366862733303278579739988402259490302724480952100742996813806222321786544690103419276013944638686618072980233283125270979194150327882513133047907244582134985098635661796861656050021848978562600972548840041074395531825983287472389791020857851917972032547384035032661886659263330900563911160408120938840977223117291161632388044680832804872448129841015456426834766697479904789898790461630850818430933515498704199296122798403522426714482484142395123872157857477028778165163559485011002825222422479137736209441609302468163035065551501406453222991938903813878994380380547627297739992412354849062680870007328603767444413724203291776745250622139098282405736677485030603323145211453343090816346112049806290046734089584544506603144573927936076792536293330764959616784320417275386546839561383628209773874784870053385018159407279157933249664528834384776625657030153709440036599836299672856981330400128395959339666550850155476119701803532795269168208584500445697813155232923264549739558492916509856919653499212450022526228288318909051764114432711515921852177675604816827761009687779238202882451395679935601948403231673394133787647680602634306260118856276642772440094033492775587878376794409897927059021225269669021019814068028087323868765753683079631707013639741824020171324694416588256814431316686282440102008130675485010726472945796365537183591672602997029557940889575692672081432763443450993780525744724557638676061393542862575237059232253516029336264724772665956820481455884534598616308117967113722725155407363672825824901722251917492304673223499643210906530852947891443151029852711884924671986480526256764865627412102095176164449503407834189573573591069098375788327053792364683054620753710397380072253414657614444267457493900000407668231257515472542214258580424439331656559450662633874606901026821361414391919882637452190244388097710903400773869099382969437419792303372823290065222011245024789252873331833593096670716950563128276571777069944999192506628734592708047026875461005574778755612266709355142722327238593759570446187661147295669112315697271806222596878323029276569804514080773994722494093414714009450619926606839917388772637521311086923156891345294994319807499749896702826260106882189500801850133891359356112538662351856267280216680775409969254735315124357449346643026022493025452760845221772245815368369211882451234405009737500034746037842972858282282025959842654062758298819838450067290485391807988062603610469608269538030305514371369438599738758091450603809698046827852335380414904721382599438054559329655456732090798499795475460694919518158748495303296287570900992375431522550689614681179651529290078001327049607799252999073622909770743249793470498273679812941346707313436726468412886205930392905428961983588335730925572178733148907539109690100155113950601314222561740661356342065620988205499977022049993350117191012162266278630027260996728767885564641650405687949913951792058383234553801314551412874374339920296459814793209867326347341819543188349600957484551654955344040428490527478717588644283725317810530935387314519389181960197039248777951929668448904931660863274060338137823469336842444330270688891896245791739228771228279755082013794242962069129833067395421250606700139464622612334577336562759789254413622042764499770662965924397226145018026188601142021541397509790638642365094936224651140378921910074475518056171009587740565529098124928731177056833694116459189721303075622360587258461997862945039951150902830993383860305942080024558658743902670115788619934634700539567886813526244868664593583726009716565158392403294258622474501304205477557454178371034815555023612219321308124539694840019283282957544521303828902342972512925650113153058872320960292694767766987516262355237385115056969485816644473136296302384471939495574019047630395760934685949232867703731619103098209734557208489405463650931370492058356440447891559241555110140621931123330187022877563962130035503007763166173606947541997876165903888031703788248570159452456797187590648480600477290096084293273074197359248118237141415118955569081437007175537246990246766697572935783021082900417736873613456144822824477086743619392412683281616881780994012128062926079314935246946613900358277363457375064915154916600579406995048597747196814968713913882852117714651306521358709166702145465508056665363831666461332812694843530273798429527731498118215900269397495024402041292141963366583050911519246727955832573501620666164901959582480244792999865205392509076118541398181189443656966705627808482546304624055333799816712554054679755693785869310081784709488189975926415825587586586098494366498022314930862086133222528152065733560587816099105398460847381608370744183793911926012314319615505174239395397569356047517406134649736601301101491590907165203950209790097006713766070452387970614280882152275229253790920690138985742478738531454693998313810857093508423503437798918278761718812405630386236288103800921334727392386343305010330925894116270791511873081056828569451696028802274024252402385087984123565609862660597531213057570350319490328294195165843347921270721986298233569899719416684456248990000701610466716860663725704830571875631543082385909625051124532924572234120727003867355162986172650957920990675355721229574349059664193268223279857773996867603477552275287317474458499747117728981078358318176094019947964842674842183538428730009833567985241601794287781733724628767724519300642542768685661192478606908773617428941212369985838387422254910572716404135859680228537539564022823696435392348008415704216543690158449561849641002227118240069690196746373109760489272985193879865435146194586436174799862954494369118327711924668187835473587476468408753288748781710063211293596054512507951824118039083672651836107561610397023128238471595093038161504526463345961581371331352388365847876525726376636212853456692222619120329223284004889684655502468957406123687499638572705022572742986773923580298034752766286839076479549072615361536107737138712572989815663339793645185480737006207901539434947756610630887225563780176880591640844348517289408514360409262293608658101881486757223566599820474759561163774530796592282386335329203455502820125094650449956617357896243756420355047627118822561946326142772880473406728082819368790315477781543800328953632465299149936843686973575039191417179134626291006009082391685117919948536279677672006460427667566555017202059631962906348065630817054128993083399580066490557845195333115744640566597637323358151914774057500336838082092618623987043431920059200499048075218614599345906892533091866903900309386236786132165010955182783595287932409647257440020082754584302190436322211837119839245380741131421023547568221656293598829915998887608562106137917697072228936307576710591328975220263759482789952229280455066093593606532574580562738924375984857198585762446117862900133904705176036277621226714955893803856060420346960875602760447711161481511324553677373999296549986345506547948298526919584640440626038982013937940603977616979634925603000921103196159086555421618628177525783203309707429420003595710300546193534469324855836906934891528301839762961743845761441608011773957874851226785287865587798387257865391827934253966616158673977997994760121121107878910396597533210968050339627288156589926392780478776086187363710037813292658355919792004114547475873129261928781227511002899020745488160722967912502130671048855245605988458539824343141289885553286584259846521889895284628307455702428710575600942270134966604172592589752194731225210113204675296002335400622321008453060725890498805593216708386335433120750658926612302454528613482256579240776277256417082355846057573290044588384422988534645170787488497288596781685730419110875594235365561634015504279609886446945871852049070511185033957458471424987014429937012822273800308985041493911809424025499307401516695946486592386922481201045127327473168336586905213090028811353733253377571854503953724966688596572929318220511793721286264656711412062377693436471130952832791835149939574276103918430931084361061059720196594862732939700809529754531051638499926337360134931048117610151260713688450218001527478570670707181189640539657571052065952788747221036686502473935865040289637493919142142050686299640321879582718427941540605444084409629910630198701738995798513262803368076969701344669465325312019054385156331312632683435019044673315880945391630238536831258632082993482852391357524695959192810298672365054645362362937252354910332085848489227961803176494813163363005586409246853158059667336382865758144753945684328411542593436949826891472955817903512456010339042636999021558773349839918752901090877228805109627577153512180180266113804017652943999507008638774906130920227545101248348376232972133364561784349968959914122505876478066037869314653910510182845319448816189387461968949891377221206628350982970642352633242572782017155036155418523276715757791062545082736915308868746630413759512489484624051702113736276414190221907040629908409833816387069605870012143104696798748357345236353945310038284528352036063707115090450844955967812363765013763276054831270461471312751039901572009411191169177058444520744393801730924878916917564390286206314649297547827946734650016696587774131367190696861252569881636129006192665359464560497432919452314900818452481027255293412931862096075706162269396882122759244814123146985708230232852353639696889415772962309420706560995721750957106577907679837045062710316535082950527234703007968720894668286243023285645046961491142487314146409863756590702237253046430525830605513108004716657469957322983315917864248941154388720684246931460537991549556876965118121323967616179762442197779700476072488447913788664526122245310234437260906406588966755526634788954170375517740689818749285310619988321762111728346275641556697974297494647978280468039648240281071733857056339804050250610258027958314098032721105123901780632335942617838643750979214789809397970258110569614141965829559749147929711195281289103480245520926461335191823537476852791997721069570207761349605935672747737812630312723953908822553522351788719570102032769039344805236136872023692717473771565843177226377331004369033992844656503719627712037873920905228387492319209355841904143415467431338055525262927587426267743588750194968444790360154358534287396051228247843167048487269607981171032346314174416543032305518650424625040881206062276313871924093105569746382453524795828048341863565973009761690232825734328973303554269233372544266259673023334035952462158699444420009188619980089977717334658958215042063427987263937574830046959162765875752008885929734337281748932546500802511535965174776182085418980164410621957122673838709296833181795168393512955454642536708325663472493877339278994601233612994844296282783617012847142167743044878780050804761882610637128863329213466360810230645880467531543177709089395326635023431615119067684528675833691244221602635814575246443509950268302657519677694082802665488898257347222511483790272703566951638256801462648565350608147963058260905673463852386012807915901702052920090556648145815395751259503787019761192972430709620824378713630289239641552612554617848046012789162536913773860713304813680575491791269059854585539771874173523187676013333598054915087831276820142347937522354524844015674041034292264730446781708716852998848067006136317638715378294434805378839776814285215656087488204277040706507110547728432297704538862402659465024058382727353000407902560975232733011955751737425294596822388856953466839500194329260633672887415690542950488494557533597017343815850714903886532358967420285521133171913895346032388463561478488027213240199216128216139162437798359652099296443652650722006714167772208331441534052981035568995414110510409199339344105914354123587392246350740975954392523611681433101624556853245581002565406367637936970855429953739880482280855820606258964100772852163600253910048587980110857006173420044543782210255297982575306480509563041660933968858733076889146203080289085165452237784899992075728166199226442954582560790109567255121008986630292973890129807896286070929067984592444459537462286372063417670338729461271055169648666000920415401911673495337956095811970576224497958901607549829621961281070485286648716530702159442603635654459102405729953654871317045683599342543177696480948632098378239534205315317898050006805023780917011833703418661858070547130746907690060108445075957860154213732310819839376387574326698765668716763437210458106759444229379498540816051250056077418288409787414861518109639508852121059500110826235039132394815440360219388755184933999078217940242601146583172950029446372585567119994021954445599731832246985686423843194141165258683439367692176322380663716766416063863332123232007935323764481283053680563416210428040327370473908920919798799658185421529698666930187937278379652348066733624337172275207835057339309199450098687952178038579204810968943020950688273011869421384905459595309469257956535346892363681637564870295733796124582515511147326691753559924102586110230464031788099231971346162851772967768025815836474595149626883787406028047924643145865008586271947433208781710497831057754460220449958000055783013924224523064896119751677336693267570006257469009464226734146346753858274031824016475165025378161881108507687505177109491836534065603390873285177762857468127833692974513871127890126863164648860006961147622532902153636280419688582192862323975018271265121860020663309882324720876028522827179142358181735109984702547094887045693626459491608501839907316318388491327759433519630091883808097086039010069485866552691659647873360503082057629163054503828210556052637868359853918157896354950914094302554537250322191047259332059418578428750568107054961256123857275488615640775991518674698213163010705082910618875989814759729964500091758049744919528324686053155985294767653365002044361237330963972456982383921177436121948112159176391874305140018011217040281615233883552163164345277312144496003191127181456667589903211790397050551410915049794634383559142734775077741795574549875743626453668656012603621378942631672744527016842450897955158125044752449301211343999068110468867136187477206095241766981697404004185884395976088586474744584948998258688584227472624178999705712368120043642902393732800904572599016865428933771198990961722077893943422071924134050204946037743390180027359466437778760047998978158144126659467241761090047417577660427307692425170376236933351234131993584648874631475418040137900695127481179381712150638898058117209014503047223536939527991769772158132265420366978823534408583328201056397415360335874265399591820828114286012133140810203562189852521327923760351601492734825418479753387521854675090231292086893997901007789276898741500728588470342908938372519534666267405663189416364546704231649102038220836993025757477366883074836075158300143473425712118653598365070648292575637737674351065833390890954937025093051770774201470469103823110383203521807048431947166241422477974226292841664113062810544859373509456009099999324356738574915201117241563808247534227855433346554554600002058265388546358841926682028754807834617477123459387774657829743247432105353611121232103594316710749766189538178715596596581944893807690697634120790384205335329485954988956340793989121372340984187816731017601614813369862946289265095556436563803101922800049956552489388358051987800620926200769861080215129669115852586148704333886437530847590120048805353232377230958264429003805726738824287168763158686156997997115361979886358816201844763225889777343813697636667357236830845560479901168011851296861541467954854538064361597374680241546804174591142246890582428492044513110944318671236505875098385333940170832916682319302002923986037558551010462566142451950497557660993750569090382997647023177645301611663652655062269867904268825930848993982973353811781519142471896165132918685649513763933622274775406075464090184956919374261790141327545884104929714578982619905814141082037491353779739893152085607261463468092605988142562516619939803921553675031608067422632967545198480714355759015486240471558875666608017061460652699931492868024306077987833995354133290314534882403057808155887215418462204743937656845642274513106728886164911137034006120184104945192779796984329569576225140626030560487188961012740191112973737560290159622407232566737791320766302238267899949093221190430400552081193105450160958829952756765021092081431119399464029476106282733896381410099062028305305379165336612632484548901052203903264840750601427636512918780087941658089585758849363338798672865474704871903158505746055622815902902746826865534665229202432923096998180526219195926875236855611064637337647483352516877361714077217180869983756498084546949266257829012311746921428804468270691889828106191530462900944232770854644364209263110426923571201508507190871239119381250953857780249035540673413406017212925110013777639972687847126953482103006952573138195575961553357421236302231448527996573816445796959246044063490619107646849647360841830092937942424177362619664776533904203534993609234991363511509969166545718281936840947777103566436074629564477078292058603241437128670768683345550240378353805008738153497547108630496955540616283489486236588130270701588248374354879374551479237463914640494012688700278393927177749813482422072716601988713422466214518508950876052944518196369064639289074465039338139923971775898522776187118708707058203873810125149351795715660508311874811530724976305652405393688678518654234149595985386813510269316802677948074271240618044835000876382947260008389630768481212380374272755005942982129936818752297004799024236925057854130620827431535410656667244043077600728537438611890301645223250106684022343425379232891236649886032583724269090594145824831682962782204350055493069884150235824364298153877798898870156655532748312967296375656602914812562121565343198246366428988818234269883808922844083822546840236827561040054444623078336091467633171331766436745542831197539520986376379125140327500872117578047502735071291197469936692686993855618512072875266822590314818822961314059416465055327182249339053096881686127938127411057649063116499490832973773685211525428833672152423853352591920652930240622110422300600867355248574582763882115906186887293956856427392276903607499071518108344326471641448757109108227443627750725563997565845316841108080780545355362806382584406241688435698432159484326361399641121924098068938532120396076557723482054774572880629415092680205867966141080839407285574459841859176927981504392141346701377771120355533428075503993272644971073162729919453065092731912558071325153835579289922868372690525730383294604708618063871482572359255369371707561552125000885515409336150061473554407317109857733889622758396887645056075364053578190894388312271469011989632464997965611953246598775191853373050198594559988778651303515716629319053015581957361836935994215955330670360812458563148110691608676392115004435173552682379987741435058785361181752771237444596372634269595687881779955938476472567110695323484320492321903235146235157605678981306074832682419092679332896621883118205357932315826766920768782606016438215552697638054979867514795185828132708984560313010916860465768189368639563991324629794573828492332398089242431680746467538892695548386010691967687286040841976230134599045354506746341857865851015308592307468511583877442377417653091324684836034629709264332311946419783578676073730415299494731305921902289403253855441132427420342945075391652920655505920272514530207499501811420640814225221514703040370837664388876323663603701214723514202931455036623460868623222480164888520064092538690226430861202693968207993150210510404101751472346692728425131135246372183976635190486651821984361277853078195678810433247620596909749595017044676572165209840282123086743303873750453269300610950086265774775198525180019876662579803136190950484771926446827594369358250628776052892206077419318709220214856895645649244894257709292409025087224908482875096076583083387378201064838155330559455865840971348737267085874605302846008769281247328632590768312458264683166862786846811319589066080598652421581987977402738981928546039098986325863798234860281450658087135338775080108706205043654198261502689048191548245260732502247346614630615072062210878999565957713986673323075333866779813827140966807772221927169936258177238077090106337421269152015833331474598999211025451775841489680323324409650495718366421506294475586717373427884837859868406983056819053337331928177152894119364324728148593225685419903457677482517736190065264172855889422903510704411208249811092017642416281097767615321830701837833564674714924815330840575063359453058235229134903744063102793522781599723306141498436832392002392421665106717201928328931236848951455780493856929732918550528520164112114320723451174782833709051681299662557775072025374559943295498011304717774462385345773178543530852631936005887766923185828840422909002329584239234430955573177548272914870331829086724400093211628334155558834452984529613799241258341516492353465563268494145542084007337828058114269025132219094278476953914213319970716131376736318714082798548272409463987603057464470259493433048972811626959601917145072601005930345598208738383781070076221899978319137477180039397257323580957616381615994736772698178558425792998957552209687724195984996821449267598521570294233604509742536835130316366725724441158044479131435669105856999433137519215636619808524579011182179621612134754309033089934445598684177648778334757542256574077086428501830481930223710609558548856637593470892905137321840828394652259906082125939099722620784433771605716227445130180315045726095311395686732694698795352895310972080652391861315843216474376835052158849829181476456009333965141242344906883774417386173822557106502217614641586034280046364414949958896881615278348198873113721540011579574793985476630440708050590024267798818901126606738119663627269077022185948567748883041451464192359849213724331948495089082813755186815306383172536862870274722108194972451364959268050493743704693485282159754890825037715464168476279755359696230330925513780556686467867057797364603667865816615561552734975483556765674345289094413118446981656128359652761755955765192297031677170951144396323974759209308312251454264229383446248577105982551849812130489882058038837543968923126200965608980150857671313583848897211198005334599518257506826078711728755077234341032155763037532375896561350087302819752007268125745889910783931097128636678018690509956714544365732407632178783999908666255570525670102612367353575989383431220992288473943594141003029134091696360182929245150040330503562719810177891792827271584189620059091925872198683018878762152266842542597173164645296868888390940779025335398677817190993336325716030757192830069235363737288248807601611879217122700683252755119044675288971806299889624760682270378166482499993582344079457929937756969115445405275354016260182365487800964683435891707131872288580444585378869519619604624011724010086892000464854444512013178048257089465065085293560521098969273846014153814605182939939460574533339985282789079153531519168041720779176324933450365891748857862716318495068324826338358921361072887235007161389875233162368081325247634380483341576600183312556650098824909691600309764681690560735649327126308450567246030477280342122436890921981455565660493516573370402244625197372485073712749036726914841050412809417596303151412076981372910835671439706195735651977530744782366990713823349846337071802565731523634076378961484716877843262005656617169431830545916540799429139262677030337729413127486041139489311571601100701747206008465070147222165478646387017025704819604375491345370477428721053511082059492641143297617272241647209966081764735927427073312226533179707182914353020912822898561032351391082200311283153150742352099292427201950025257483985865512327487411532953298223648156352280371848398676897112970712559563624975671108953402694829172401709560735575229463002032572071306574453049453747638889436936132779343290373719824115858924354992578507294564731662891808907458594889626637562600930058342959589027759378154653714642810296768996744481248607810009012115146377872302578154151272708728419593253655122245409244369658092672424853240508239214667442452061775035237118763144483821729584902776089943401826661088893592219718447994148377649821092902319725782068964085118709557549091853606161754127961476316546639602517809201365105014194377183047691698651955732151147489020972780699468957151180054929464823694869052428524835875836213637737322631331403842186389261496167974558966849730466515418907577097947822596836892861003312460321373608866849950718247880510900140741562719519031035652438443044780334629715615976243124561867169301324491479435916741437687042505407296798148125001386774995230694253128802837027879356584296139578226591277622546978059891144891270284979112408520648801972140668829183118867656705853750289655162620951681435772814290309446583748299168972097020590942733666000796348958406070088701985501274593713723755438863198786974606730510268046480978509864568128967692175613828534998235388655108758756081335753104297853029981053419684949873024516240552747282878342481823424279306172498200162610294348937497587623737303039378650530382844323737339103765985684079496278741680170883631381354859622876644614034307391117093388339920041198646799081368405915170203624148409657021994642072540773340644628119923888438353501448518940957752188683085548555669040739921246156520943078167525423857427744740752232227128832114783018820764550801569134627055975922488938705817397397238926220405303752031786627852367931061056962104252415549222717375469187637431434343998714016215259674890893340221278051553755611119521928690896726668838607210199031637271783075477368948396854656850124983784395848620290908474359883993364714982713618058339499078566669006961099561334895192735294860212281615307285123870608480070828679171634982066851198851963960078443783188571366912593954176430242331484635941227938987235924877848858858815166445138068763423728255274460895690304054229057762853738794293520058693401757519492188375018387720992097027740440945926200045049632601492274196676904207026938969933012128110475700496538788013606221125890716311361595171196787285671799020231323018620252397427736100886888290125927191466623508681711926258039029100780521136525438937414040248182281694893085404031002035058326324269154196529035497545645931071936048357967180678419854250162675158933326656077103115461691027642305685861758772663034917427488483364571619461775114620896177531099662414612453806124143895061336208706069174891822388525677135100352012238144032389799017898767203656418259088109993062122511828255353338192491247858092187502732965038578698368039685617600582452445347061472746645024414896173610596411885832506403918185220291737042636965701903373909942043413005995456653524269322361202739714280113941720866588292406048162945018770783998106194017777919967609261693403510618510105494781327864222330596385409148071656634210013990314101474616630442418558278037713413548209459673552675236167477213880237923384335248472917613381017120550497987435327232096530154770829841596100013532967863507161434815611195315527576983192111373829557236814887211417091504040729745458609604100722988612632961815520125228815788712328087873522388191354945353744838455058658479029237835260179783755448413023130054348609955218492433768977316956429094466206146778149185547510693008557631079795049456384253974303133393671592656141619753571998455662702743952715623914937149351774521086641538395397206467550559184706996332085575889126040409280160465133095251334853814738265790816745808540336552444535286979862829090624634713278715224343704227506876898323506943698113478759375075236417814467270124488357782483380437962789308799056149191730618477607460699498671271735776178226761571400748882838018109915266647086109688148960916282952266014972187035949934441412715915987381410717505714619438803340890957695072187940652645622057423805293367526543944726020058223656841179787220704075929531000465036431108208044997348049113951481207523511518125596640463415153986763330236734275035288225670189681975808012298958126634080769305211389427346576529066410745196388209770730924683361893592032526216105171044891146980704946979050104861873501005825171701327005437234915908160015170130100345922231178254047900969014646107848793620468457475495079337509457523010370394506700045329734814125511303137608558653308338816041126186471207500233992190531775433895240238681250906797371644133523003058174852092777200943133753975727646772055735773255084339471312247319011424628135712953498026369668628942692490532791825454207097795206487725850435078183872741501345129079626557899733075536014290863760379297810090887130768674549379335474517946878035158975900521795476888543164480058707043737281610441819893677360030591978313664292083371277930855076991708505665196050189329398515723657292753610588746102033708430409636278050715327749641431584351783818747973028667845631864864651759288785445589182465003745678644370352391099526831106249648645644931824655240507177333853757741334841602498899911206311249478712148279824622761443162206373024446879165443479366718514629382580609522954873289579022375382321502301165503502244681130574163163076843588498130401683593547848182313493672502153464846855271626991868953814143870296604414184952604043350179570450579976553282667919975577479282796758664130088128400022416903296714570294985134418568258648374227749834499373516045311055970154887903092534765489076732849065105918845310569446450745664714106025448849639428559305568647996183301063526790485301482047063599678208521280631684493977092823363897283218611675353690635415274777861425662354224623296574554546506860509346023216140735953759845234045089722125711483059778847294675954839489383331817653452256775008193506256629559729059462342979633535204129140734196490077768282514896048588951574137148238350480033964302669237212864429330811798575394181331471299708252858837874225070302828555150421246895398102246735787327390209662172343367358810538897033591606833193629638690810822439917082456702139388838341129008534868557308071879335656407905696867237919670059823886760351657359402745334657328260157583862693580700944665921690295976785562583329670386258526323891288488861378621783957081335922961755687800195685992802428642944723617526205536322447639096250765230570144834230809331724176937678465619680016756647277728237721133827352760473360786837015699691366469003025996567605029412126073725455504893398643615757597537787471476224549055773734161606610360836958600091147150789794698233883527868003711379912047696425994224416777269685523093732462906145015550801601448279184826770746551537927995534689588962560531380031781304675907487774611976386627628053572613277268475351544991182639048152873879140675155896881831962196648862436831492321731441236598091886089517381993201440578775851917974086407043191639453254247160548668830307870305259369391827848283960159742739769565579107956549495316981135249016025725705967333842205818104354867040913692109303138103599198721142922525031684045871452742920118197763130630662809489173683876651618484091949677989372518621645409380397061505702037891575552983657857965819163251459149634117900206748262387524922894282010625601836892764457913287614402579442766912017455719366301182967366520631910517976887463925095894511612839680600664676695297638706118120745115021534817440138194147447844564137263975549517541517683833011555066059183983621614941025984776026372082487527535162950445903358343188806111134430575113093289130210496874011094336077683832276660711586317404183395865030662217635977470853532124217816871967890729181304093749358300672217920371929814149013859770960471229106988641362545658122695227103246238617889766304875186971647150913642699215325357027003717127159847793404382229472026871890856704156427880810835372073761327770425691827227202567786743363510907070231880029513539868198290378158870510525980180550877412157599658013668451662886026547401541344093024149585934338894941969525897366350301784577795059949160653903765184390446125545807704665568466066705417272362885305242058652795855576738345091509649758545445090032495077323088296295042023569847490980365322759202771750731590775844422578528355650297002955506181159345367456222386093274272446182408631508762038091835361748933632497781683213193813299507908660342935684117993502775869194571786178398289299274161518685941503606349323942297954932441572247826486377851869703420601006475609880411978701754515014837186862090554655873978139538067418592933936357943072833172377046182209254417122473263761064443088823113463277432580457436869546259762041695414921087817700391446811282116923500443794384554318876608208752291784460799828224722037410652565171246341336166210950916750333901066902551171904631002417237841580412661480624298471838015869671491877979136590545864055731746508673664027446287308082093441272862218158187952083563798713812965674199164003629610423521717616369136719809677549031093622119958503979293401347776837416806717079232917344155353245969599879367343352020332324668210206940242068848557325424814303753709653001244571837027845701061802369274212463597334351168021460781061051817710697452680921584040167338873161983379423841012895924376806196139449047988660889991123075314455989797896641451538147064225321332665519150122149554729878778356205311335528501942689277116941140433931040910856563989685766099680520357435168448607336388291847873410340659950663995048608200640736152580196615797984722801749774178820023124586065714099642640260862278923896950928359469072464000746143635060952322386476483712368355291925086855537385554371340232928781976997509263611218217099687655468622292676174847614214220999264092069613465719173339408142185500002916216783464829115903986438269071842332234169553762130790251410005615090015497671415696462688465106958500821807492385073790256218659324697835172784064984088393127382321361646137055228980627230074997775697107315809502101176882681680745108458059983967982130327107762264598287832945738818466868818896799087273072643640647812483976355982725161370830901124181332622763222873598067039532666047992815757666336445229014810117184820693364798089241225783804022624200350766683324002193283746709462607239200365957956811354561813397523539360580827256367727264120789198516997883431656536560950402635368401532162991897690817081453227686443028873439476089452993853375895058955949435117018566851397616050366643825329329197303870788376918878531628714564369917378043601567226724613977893959445213983702104635181429271136813137010485609767022344857595979275445418529532374737194043072927677864962826766794748573607140770661120962636439627874248588678691752813876724209747310910093187659961621759851732771235526153715103105958346976203498917818995860993350783952101738518654401820031162820690182146979027781728821189967614489040224723355706063099658779190431799101376757091955018454987781302886347709515986847535461238962683725862688826429618567169737809938256014472718650475821946454533109601593409465687559906534151327260320670918647116247879638793697841777055658916116074081539475219649974693323656567721123855554197357444363329026940268143165133503996586062748870130099480283440576389935879535056707847808923773986867758848183467501989409610303895598089691359531375868653736625405603906099415101986507296838729485261555313450803784435524155996744130152945374644049515795883029950473023190397004921666378355928388729793397298672998404184764692674913233292741942760719529729793943784748880968547140893030835569965651648147179308607368350047155112074885458432331581271839266879213933416920554098726318003152565363143384795445520630427906487982326228367330015582674795314063607228949770261211553316029638452606096789807737130866488445991235195518065971010323735212401954889464775850258609926315793752725007137407759314642197895018093240816678098009349205154736164378926474780869739105022235093653672657986483504917242414965279406023709075090136711391300722919384437548247678135604888008428150956221985614871489442403894054871712846101649759171621060023681839902973173046350381866442545715450629546505583797277469561796606887842701623454293038924850009876207819690725578902582187380774939782216155010349431412062156068632393913043299296708455328161038805936294039232801628127391979695769110454218228673195807502805987254116244999581915097573495033088070306109516092828736247589162142256521668311399009430417552479724868351047585912941186779412339179988715235931140017567503055360356624289047508371339414999344575715369297595617784254195842941973784852031980989980471848885033203002752011830785365511489406878921717131654743406778765439111520056578398886458019739642148746484104533927953178958860391315429204406621868850546572198385666562996834864882622722474480965302619501230011855376109002413021563019646764761752527629488611535290969849874770832321607939870262042976540895098506294869473253023350093063188066440157983375238172836165500493810806047125170339566156885197538819221011886679876352300780203466778999841567848028371778523746161327603791618365155236737966381565396875812218918636146148868171232913435631101567153952032134476742449699262605310539462497363295403512036407475290036802003180713121381552872286038990144484098371361674251979298764840986912476743999911788558209858472531015133304811224510623862156139259445966636965584167817328959828840840250409176429947867316140539576024430498462727731433637524717338150999999951240264030091894533495395717755653208163116652868711159003604810685156683880799526094333274153886315304991068741956715329157692515482315341824035291976700216622578418262988811651714601057691483373594292872366890096449009039679672914085362082492515002578084060298769627244099098685396693587869941192430224865980407949151164173348148427513400470103079749013632776027948488698705204227454846022935451748394968020278205038035307985706795774026281084810919137366021177813135679372626248873205411494861231680184468136198873177143327425024247556378613598643689315141129291902854948939831783039258371576757369614205638172238849043587716664960046332945814608712217288311159785039743899157574592783856052377365607020229250626367230961529698512532602981847479902233027646370495407401956681950406203975117411421399490441923527284117152673398831603172932126194425956301390585265581894366724192801624634625660054601543419513359451325085059778078611636814814958896564316166656595677044745945241090513165840009667843341805324602684260340497105640366901526709665275977927612554560688905613850635594417103615567751587424356683469396764060152373830828119869275656122713779473705111339152162949697868005923113697182702718046095258461397393094584851068717052728968907432735114823883874214190522373363387494166862689497970358696706353577326667416960614930342531428369848739770190895262067565960734877198149481084011195606804644183953781223047070535073264338028823765883226809351312615989484797252964420558698985179804222760093810312500027568249542112587148172238969558606425247545688787023336964046502265897366945399043282103185778530718969125341964557445992147496208227028591383224573511313234591375410721989263731188708709141671692333854165708731663341118467863094895363629231969513723794698936154241454703825720944452866628987138174201650884763551161649475405446004220673718887722694021633806046032036427154478222799739227390859474654729176342847597417219768584437974297616522517307245377057782256466078832413566608513860208212420007895297221589686938200801914896932662641511342385004028241999953488336490429644369802725458159946097078493940987915195465935346700674956124138973546691915831335866782630736399157625808395736593153983453273889077853423314065576880045088842411051060314995391382515685630725084378059545377291154067228518471967155631803360702201760666779348689941574584435559867629801713926547080432185236544754766445798349635699334311884867229288530344104514720706808330728046642748515657980556505008575724269933117939488843790744601914310585135575487783467307318306891917724089601134293671046816577098674628907138705986628224996772793543633384539850832242203629162004118016527553778619933767456181655975151680176720681158331633336558899811353689812867616628374710841355418771035529615713614842525155727213925168865172675492736340050527998685778954588813731991746542624019431121855751595433016824542810135131913318220052240675306210944576034048986482114958180594871087417614750125235608425684408328864212870309673574361513886896690522912251892320649256549052213255519902723078144876464045350227124776924491043550706253153479122933440709744463789482339776208909246404218125828718767858019614193505252172029861234380358109903731062475400292439637074121454255936735864603886005781900554396779380415657345765448189134012447579754702894361210405765881400123702258974933005918126562238282753729088289884198310832973101078560835089526542051259686015925624848295004021118677197042455497117245533692234927599363772604042388008888956019852466363186364729641329789049498502905277557949726533236538600209446925896901506112739896893727930935430841123249524097100430966283213161155632812084482563911483872553329199430720550297167491785803976775206043477815246714053059418532172516077133761634829797634486078151516590462487358125373392444133329774060182500772706509386479992101413495403800926006515974883015492087266035812031249911289717560743879894291761012045089196862354437934971945060277159445077306014037880651925424093850025414107246703383053950009064219886072856477632831468742945664825688385929898673544114769375755533135603455880075334027199494188611888444040965929690230201355070457694332612950224254806970527326017940340622843692207928358363961578956776966792691535226613270406096659435674780443645158816549660821738123712928564438968984764315345855230576255173669440712710201363057101685814313682744808406182829947207588368398552143971053324558127916420175869998897192359159406188871006610329672247239284571876296419354955704247674103535210485313833863584461955178918692215820490260531652267306426379368610680564996146576063820084814001535572238665765114011865288095085120544133737743571564635560509377167974547912257029904239720351002584549893284322992536012236191293759813481731961273452642664257064310363634351106074943144909978333783857603520857746660725259649586474491805796169017918785201739940491007248894014697928793556448358166113746063212713270304398170191485338143675274553957510086211626458444232908585368129152655351296243599588023196490269871172053643379963967087312158761853130340967179039490708517918513904874950102415830484407175527682686532147758541528988285521046049514366134988704865180439030200934273143090015733895109127092557210755145364828530563619467644820871659467661253011742708208977978362012863563321959170615387342983013787053763630656887255477699249803158922480126644893387132977228153381890238053975182882546819230981632523901191025081473793721264170771924234191184110079486867051743619710963216788578597643507187443979906531255837781080361843650529714802002621450907795361161943602556611863362454923586430679716595971335050377927934162945104678091835943692123491210483895877910551004472485145534651884328630426625491324832709179379297218994948799313732901073226184756011012808391843898963478281101096592283155921977946186114290623310494613648928945793977845904689226054435821299128047088271898516085029002287665165351249437309427104311169836605298749550551911026981230123899506893575301397537891865445892374647998784520808085621267165033240821263433146834192744618169290775528957781474005092248740145429743300380525601007916618604258354934670497934976541944246567472664740213719925223070975434249460513737557347526512582671863617149596770733982414660814361951000943681728049595377821495258840477474489549884694329444068317275427329617502144123221840975095515641585537385581897402068866478226212745854932511262977281700995326732540552043039921434813995806759245575730624755547760986578621362891563953446509169828749672571499667271413490543172788103067974063946007384861801124922520445358848026727907151678518229606723159103857133435245564605619502498793871201230507428013756993855807843600403653168715990574040264512038542777355357186983586131636381327207094503609902437897518151469534719508217016085219634354160843374996639267364790770101969912840724839230915032022127429098107280346237848801639517721478750079507335719278514604966174539803603277903361568810897073852701635945891282232961173776324400895861363006170796149141822616043663417004601246995189413274858424511209197751657661969863694609603141902958984312687874172770677564447997216238923571419145815629438685172224096371158419537926989233462527242034115494279686035186555613816398139649082991589383004469620272604029518388869232619151596209669816789350558391079093802467996309033751114900532455449055752412840076672325959821703720471919291302690795200679248061397633400197942458867353791063392676959210387087322099115898316165873399087041028257490979044376751020340345066742770084066846722762323098284477511434546050497965473159293623993686441089357614266472609125641931144009065030554851832114199550029622835143844871086069071194788367694975448037626761377382366062895127608157889854315775240448060530810803781648875574154492923355748857279732858007651544023251810429463781579416778203317172286334145688950569905881787205340265138799340976817339815071157189141504897297120416268328169095437008754530066425354587070686658527831620827418882886777039901399630801309360099346364626074543166611682966250542380845903836240128213560647966662933148515496020408078610996844898962764410254630895392101530191233291941133751396881194846515740606597509965497625687495852356116799105795977580204153825180745948750826007534809301510844278582084182050451200991744280042954038198930689276059850636175379796407046142823456286876317740835729709333320752026512069557902837241967817397027277138026171463018746225074581299650672647883944377719728894781422876674589241875575005683320399208875552056565926414494157205126859382267273703553671140660629256480469196308969158225819214170995963880972957952791071652027415563150587626376377738724316489200740209149683594424996434523184121539727291125201388484499320964898690442090009047654314643427455844419539829087359465352974819935061691626598330682630383464623580119071934968626472302578817996397814589676176380468719909094655191076373379669425932444060424363666174313685875186396554963478485711229314326884198619633085038219238222422907402089329182394301635760911248936657428439907837403960719127778743094573244045313553820442075542976928527287473372438431626990943283938300686172067427028259442927610079743356706253185574317919914654245823589292878946749850538756252696095339806290626185907371035505287826989590192175300943433473926551192679538491258238548403779641722495067652367476457041948916325981130874181110336224331406103613025373356050532721116253156074898627943524447634066837083989129990330355780711020397607870367666798535063103248681338884110106243565718410765546230903722712176258132333424181576332542563121256250104410347661171310469031858454912211947537557631895226184493212771955541101645165655520490975454154930266032864009657784623872821457457987134479347193507781167509980603819108132544686877965107666564198593938683200702851447843787778983309073327482032735233851392308400057744362429305674357197921570582701766076746391404781363248773179720718408498433064275595334538979388408632468045421622222903291165123146803087095848537556826309955406006286695704441086208147739224116536142258289194131991426090340848495024182813426514765865240364334571332723007005129623735414581282980334596314043715381032433680566354158218638153318901052135318259799621832922490995841385554273445217765384202037266362053918868004351738424716468853596708312078597379845575181619717440751064842460304058807946706011814031396634839961586501541479601212294102113846347434413047971961716449419990684921062145578778400452583226987168379467676044770810624417617741438632235175693471250049395416502243399941814461986666933409537205235098081442715487576943090031180599898750769288606310300996348756023060398076389746150864766798870724110956031742877806693841434954093864757168039564919355874635618787045917049362297066502814106195470030575642447905019230264067481355650747858574263084730666721287012322467561202872136532423649540932463598710256432664619210383502543346911703303856145634905953316661611726272340227846159358778944063454924042279771042597942306823435698984686491926423181513119750290672296288307066033926353739526694810081638660291577947411902888836443376430670891619805742071702448565315504314995098354002528126503473990983306186082301927968889235227931975440521898573680633439544315839480941186706826091790078964974584175841367577067063427618561028764452928221915746102715230182196401024728839659907234333885886872618035150109661644689731528988912176777661177049491743161942007476865729297335752344644494942345630644688671181401229622975836830470085202305102930939609469378597533710575673276254429731144755848912522720242422578150381377852912849027741894064686128397808223452727660215481076034855005442176962020666315716329607708696219387657276324786040408504969167530491414942761193437521748680382180795508579246684616889145930619608562482842835841157836168307646172300331573521149040834168992744410485192727439264502856933259874145482988990140791581203150714930398595911186806971310313876210414907325353978806338736425869345806986300340335362612913463577664329257378925793873015185879960660360101885678652847092786333725844280821631900016991721863001150663581593226148524210207271317622344072034062108897432348089575585959528745980244317595212910498342485525540432850306664679700042273723672246069305588227912499068141801946171984391153111809958473060169494943536132291947485451264008593333092875976707752125598333459700804084076703869956950950979618862787101625274421948823255293532590569693266323894947226356670973439630510534604799416574149628138633945555684404806001892930598105458038062976032363507082288316588620898006644663600313460965090387708629389794389438630863105614999368788444137845468112167877632133576354370378734079752036415005595409849949989659690545927248513912300409187218979789260426090235266340317967940452539907086502243326891617011912483000746612369597083460374482540249132263838135331377822677601429883556951532096921765606844559089117229636601318547419407159003084322097596205626457461418397012008895286100472111917570704566914422548385236295332987884399279755175141706857447726759746596693869409473877998102189891428986378289301151605668630305563946241524012804826189706151967160459301232350264927590451654416575059736082636624998130954639419889675377563058066204302938478142622975152379206270542481625872807205100812760451044852006357591709586074300533622624362360091569424789154683212799209044742523943115675533962172116845205847248789324669219183790367372737026212836877249107678560558459053550644616757952397506501473850067183151881894836946101164936054742515227812344078992393589592772936970207406011914296417762950426665877955002948558265911539862231701442591892340956825345093985362266278595565309210750115985041066326270065088169501454844894468133583528838774320206225539421011756357719915181522759664619643654417971743069573584772433828623207452162576588068843652903826203138898350360224569872885854968849947791920002827569158897656628585654946597232713613930168370948520137476783330527865504995853279657581791089472594988419392710948404339229133128162213491559527300870481620779135712657507787217387438251843386172565507477750639526308280522721725004726653935399117058989949347500902947994278890423322892220791382831344705502015936421776553117731280108234187759785782169959413775304677832756251760063138594971032188799985534415932845181793507867139257318891025014566736928756383475348888912422554091620664633624282363810872140620934380096960266710735057203924742926219556431346344170675594547233299361677830595461933658998586981721477370283743213141507971279861060187250651295729264663416015149246520290570901611225986328038270662000048644851837636973900498083958123216542921155446418967502145106303314185053419815629746468122659402786521061054864916669375629519384137566118524606009994161104793498412616190317900597144983498604144608668284799214985904857293282138280005430762965565192780468672731398687063972388076829211439859984143575571402384847889451185266394047351721774014556798264752518300945060997388498947862328746600702161215713596798828777029753532396711825406214888691137380759583959557353682394681886074398061800410633920839832664385721700909144633661676094511693150313626073845171009353004821195394429728857239269620893845468544335896341985287249499943943490373240834674032500512355303544431764995527734063223420487673887051789856628504080628058658353934614381531468336056169994554772541617366803982241743386756724776654725254768144950241069874981437462841608476957413910929556195672284374224031701008298468069562109774910264134476879555392468130257011960451567719300474715615579065373485929618505852186124056218645656997907592286762490642694670641004351068186508429757707282604013052806434317525211231565842739344378027114934117127137511207255857744042957546553463690538576358403165891016869495314853649318123623444869647422987177275495067768078829794051476702265206611143624888477886676653357748777620453583776365564203966205976835946113602493050973166923432161376608002161067360419357196779349318455239748224731265913846096370440039379082518525692672857736647198850501033393155592775976477051012456367174732920874692183006890311162523864706022540871361111420597516084213922912664995496251573014106348290874169836938413454519765157917633718465439814565160633961547085155436149140621531827742602639870218493745589358921009448933957156060166444353664834809012266317277201501931697559848664821374194418223926927346170226523031465690249489780684748138746699450350345550534006513098018709847770973101613157326754795375893819605028148002916776579286769667123355486786654164306807187052875313486413605381969132360147617576996872284750416005664006253160128458952565040935573540201889049247752122344677556322775307034436333531690157920511628303528790940318294440637535205666660416958840103500929128498625375263242430419004473820761337728922261399310217165027393474516746824755699072556183155728262047332486911308230687425169894785551655855632785366793019846716581052382735636802143941227520686023366153774705698399164180109418066123185301073129800190126923517628995398013779714752726779236358804437575742585122193677930308879272265928983641201089207832647640498291853499989843568487331418400997524426440651720627881604855135512538708572419688910963344351815974878226894433839732326889464331669923879761863247577543432648234427162020173358656547231854667834203814972418331455762682063528878550112914706703844668731085726053373352488090166255363148157449574264857083091574475178033951838114137006741663837559629989827966936569700635201481292956836343906163449224326786407991082315238915492972635525787446471368979702010066074189724484098928582562273550041204378485866704932143034393858374031860839649851105935104511488150218478582585380273128396510751581681051340745151962632911004215332283365515715305450132575804749804072744294763495780785775472891352925265386657525972460719862187861326857271284096097110575380286991265872478772306440606788209752239309550967322311821666016407950421257246680748046647967703606757768011966840913647035108809012251254012621733304547582926290484630569393669152640914869976724456031387481495623586500491270448759996043247784577081358958482025139841728705593663294280119712233728451621470623619013695538860036898196246044824838022600117134910780940070723003115675100737259019277577445820512003981353392334517108530064232083937418678623739619692705448442337273464554469706364766010505253419860907443139651511122601009798565611547455095595272747862649441889161642358538291242967346239920920587967983764307431459984821123095966702321315070108326741401367861702370518951959445203710574335323666272875009979582229240923601381459411678318799141361523833982905785693610097406106235587310832935363617256808903336795288599732669301076775789130434843281502198835766974066336379045906744208189983560809287065404230763098274120273947706017850989814218575365170749853630633225553918410916515243122377161416737761366325224465124349453353857828592548316321622366854386986212704788747886256430449553193473506645770842297791758838812698001764957106719303618279190745658572126722927418995346883134032694185830926609910892658911702428881652611731606532079656985255292897485853618074154196313257490973511687119215363530786923004596305100523499340430350462716585872531233776485897430429598046348984708712168259451169392324119193247956407440072898646566122091345145736847348744946060854042031857054973558597576343443823899133304964051289302523713332900624968266814650458275110380169872211619606413844947226949399015749983711745863652471916062844445399037089251792859117379102542513937586676685535458472726889091799662776776969212449714991850073942386808285448146640404188191378444290405266568725001836833062825857348871960456677592117766904506919428405689639749701737620106384879488659976494771849845858611742540530777680926673875553964097151777595846638235166076084983056691003841547606654535636987416107582376125395885093268078677837579775081859648461186357124651485228140333101424894516514715370169121515459586485195165353349923342417705403029392694673334917794177664664287440610384122227226065146516683210892204081997301099305858770128061718029861027354170899925558496387598285540062792950661418724035956163608576651939765168111339172896716364970181814433832713776666223324735701445795954535307435899552798383866315230009111906803718432819887073118931500570464317423606378069738358450184535825732897798910892715949097395578975808385234930161867970684900961085652555661143556727903733220209359706791149609435423102623457795207229566289681925490307025172953090062129228656749488074380131008746899553335642829943444854626966819430196608193208449217658784744475485557607688796860252297723969422407175511974057680768239373486177445616261971907008060688936957051716563510907031201086350975948694575556546334616161202912883932800225292527780437127942465082887781717911008143204397622263236921171556049826886749251408065177024236945453799122836583286369385612459451362862287217868352199177128946480547305167730266289935154989621470970332751803547150750068574467331049172282304499882171456209740948834378231345425696115022555878884025313484314589105145623195063962921328719733223641537639357774867765888491398236845556850749737020620378579755439304222282215995782185736077453832343780628240477289545684009164162001287573944219799874870650277821713975193399544677723263149737150496387619310865240490494517832858442002321899184290507961001722491685239430713499447851364751915484951407955796867295018401984060671007647930281717045237160297340527514950815701895164956195619087256078868380930905513039833616716583086519835513348565895776806491991946656872928145266475934371862823934179932908314526499302680088085874391876860836648284406192703093050635910041129715526064643563467037423168442888431656903054672522049774038755744674353291683895232621624163462764770969552820048533524990346220639170657295347059782473519961104293794414807350847744057160057824866875851283747922087231704153036217358831446460537810616259772689972915156747764797990749236894218538108941062151368105356585262135206585243130984333744573804949533193530822307439170223981551764425543783339796897862565092425176341366763149888982821626772733730944389972536874678540688448924884705147893923477369355634584558142621432862437450814298743167878851633560418929956287794113455992895726844401671548429015353666461740420471385639562658939301133761653541462367792694831426784147922239547083610680339030274418901724210527507314148177289952494038920431153048740348807970792060953433333992499518096087721910835119479691763042926882960911953160745752991200378864359019031704753856485560881846357911831286389850107554871772977493570973290071954757522119122223796661493645053630152514024586320865261025589257951967391142309360035311332412177019552771815478664783107919520486224690646073538050011329876149004965102866993340768530689340052836109482727947947262186545713883742735181273009362950249604273895375220118193548180888146029263465816196181524355722092942857394416125455469811967165635005397454292823035505565574650258492702169925194680275056529302496907800212481931787930992383589030749489375138717870088814769429340080295387968952037637614827874691238669459754026238557486082342827824345740203744682059677339929249029582318321284047572138803199779192768725837720323174535769957244425206462824585231857922432822022447741620717529318920824693516279762674278378047149398946867826971890328151821717707614971626329220214593618216849761380895129779004237402008552580174365039765943617067197324468884727619902550113499379724255627101753061789954600459986142622678912699305048091918143391380260189967521043149168249778519605823939546663615207419473227574257830159578888927272447024447768467125360208193696131684465067215646136682444125733804012561567106251160102583094932005394759219110310540294463910910961765038863763442792580322722682364817655880334741682798674289820358465530091902647897075010256227906903188694723316465813600880337186310633717977759163631914694400197002343107472277819477675970539800487349015985178014055581506459322166182120520497270456827100248662858255479247936868513478024982179909599864080274971269077427953334397950772049441091474060942737015646883866072382283265488609368082537089785852607465935929469081409199339605102775242463114079707666688527995302389567293969191227090025766330735574300690677325337104583074262925147052981033507067869649145230505496674533521661313239286524545874128665305424912792836895919010854461010106409842438972750531388417574577498539288544367861323270315636997989793974851265615905581342533814682899150284979602161309374814162818496116368060979020102126227662851160331772107237208122811035464167026402884821605953703642510221116103708975205240828252260644767063023989705937776419124897988473230895556545896985888122471864918482073606795775011208778601936314106991012592056748548895025845797081072806560837708827606201846177114811958409823524666475275483672391362332804543440302853868320883165166250660650119600811884757611294777830975073355634794089751057275224946799516343488441907791539322592993480201340493599346308447790815850717555467082869982608278804917599992458446782934090895698901410123538467169820688188801471289688772897484411222650027340855399339390156835268592183132859496555145444789199494047314921162734684045447579732505160624818049584548565346277726175083956773354205602379743258941960006669595070795070150300715689149920242380923392177165152353462975845880738392578394941879651903166888816032798934790503116447325920673328985657536416070571589848861710176492701263653685320275952072576193096572897773288685533062833562980031884245600291430399530055764362012732194942834615086656362726286836299964645628641033913366439663424810162223695422949263602068562915659931357297903019570133233125721503851228626160432320452952291810368027038111712602648124090437151562962199216125211427961060430309583430807344657164146516852228564781353791986533511820296402345471490784968982017405855688489817649552563727222354857703794012829726111432465133840726932253508745691697175196804764767227232439555460743303242294240462063446047683756141821997296456048975719461183692537898866980210687635804543246245808568072151497597419707357174172021467816480293618993722010208794680225200718741235010641785502923326971933114273689551797733073530282025782237874569806026590352279162467022773358211780492299366100920677758430852195152007920585279967617404865493954884826214949662338550906124733464312634038183124042410478479734815440071228534380669448301594000967478640450665131401212846587162659090849890340407575393586720281445696747153258694509352311176917634070036711403122870803830595501508029246290480697121630034200914980194471063520940640595827494627081131188953913919223773755640723681846720059250579275096772265733690258532207821623613308017811130792326744565673704156593865275952176394972746619213659123458120788303282409358348143688901731121893634595745681828449411233076172458027493359928330271198713637586786717600103237080093903033567863692150889617775469434067119436422108239203994331158746667019349106442679139528656407398381695492978501231242001161789840969939862504118909659797758529992124039890448303768221047504507141407005201885142029017183357152185678886779811365930746261519694957431667125891955678648630371315665659198684877993507670717425103470634748029383725087441645129989286080681844381580228566645839989548262335932226739981416507892107550093250362887081284301509461145248565990699337453292472404670231754349768522613966492625859436907846621210652242868060001477134601582039070234988230410608354685163074323234882264473012076689494219939680835410826133385201128312235438380176344168797318483712883321545702253154499986461302937042113842048136936002430374390533904297474653485736209463018031407174940226775964690267563086057762907133555120162529813610494220694689496400938318906163012828909930315402047747913915881238308822869202739573421949996213701187430905007106670554871887210382432809130842598775901645557186438180677137638441978092572302157126244468971950392624022986863387181478087732886786106819319640988798844457468538782688681951376188521171707317145646595684235765412899722443096832202489470665142802347273500864354424358918234353827205188805941613492836592679107012169173611345080542130372546554525810541357190261427014617762919926731841742492415333440964921153887121328690321794122464056081235851121542852775180309887876377008070417203348044518617617963771032553298643185818845146428314998725486333364981296081169968575448696397047233593143685315941885519155036988621816518817455287236616377589783501980330709441171988654048760824049039857772387947205613288646556219886679999456292764438013786150522284570881317108692786379350925623457910176876477282091210704376903350669557906136484961043077954763299161130151511461083936556138033115823973915320294182264364107253052114965854738630458438015912176467281026502654114669820980168852465847935682899141822993060626628426210874870807140954194198082975309159426453520671478179877621762149195637351189799689397774063092245244648682334053773607580960049456227467258412327884156664442839138091201029828171010258973746777689748723098163744784975772294941163575061015331953388601742063645466215094340841078793273369709868444296142800994366993056285390833091976528277827908083843670602165845237790666082053818455165539896260620879951280546995602135220933030179974171895394444182347470701285535806213332268655171049446267350399152393388844945028267285807324077489692026533042200749696013763332181323704919859059037947259454894194601328293546859280924353489390368025982417292332341521399720601066263200995810714743894727949742237243637114723705184796647897457980821788253110253039191414960438791350395403414414375626521145794547247175218665502593033232929017100440616310822164137340531194491535802495990776549135440624812731178372884250993211158614518988291057519350242780465528224291425580513710892275707138547154411700954028189828127716406202924554993063834549659930492229196453546829844813489663694996393041543017211100613761927502482999140528818046625122265588926573897881353255924479226296139010840358257744568149327615498946131539182937561717875686042180899964251689903564141077721483132329311010069693687159773823418679682452963954386672325047176348829044359879194535282103649914291220689326878079633708714864166822500959384025972150211828104174832518580182129863602973975762925522672770609765655990493347273892899962215509115485195959397953140851712768540871523504902553956907205837183075566130072689970299746603945763953765986513273960681889271739510564951547811441638428645921802039625079378015182787132186272078345856956292308820999238557504723544031680702563316687599263757838461926434463177497905681187032680411880210762195739199975420230563715982628112206174176489377233526244436810292358116129314769010400587782258580417357981170228442500819111491219585491742569230584323049312660011375705025401068550375973388786764110252252898424507897317109575658893386346363948534294265844320081002534064652323450165884207310982270137912118820109955946793894002283231407039111389094565277239090372096840415725260426149324773501178540948074084467249124054478296802621150904774783176876165332436236471568931453871943041675766206972847064663579416095589780359771653151318108828648125438728930342811599800472702475597699485970763861255329626712708883226529976453313486800468634960759714081139857550008371462931270904906172476283839757690703256737739676912500726266965388404766789485151926540451091618506279470576622802687567716929483513233545003385822807622354529870940704580987362933750898470577220297269196537654246556302948515731076759913758105832666616519798522800408342375125112637330121647171301090042558718897803656518590247259477710102041400863948098484953684638100960223929433397932884185231162310649904082675217438131796346053491752463408645047305193967498385553900193492191937243765141652056934286231489776964494514068279546735154857277941088756609596957515351449776246922649879416308002789493456376944210718325105756154815789659819361396242561620285544476890947963451227254538035122878546047659061899238802113129652699676328885314361807709604252165318072332924724806491727649416064584579186249730541782917202620616203342223274605047726954626358999681310410259778043411768166627718432063982616799808788119552311523080456295023651032188793988729546342729364923919490195847248786908456435716272991432867292642898733198609042925040695035275845537465046394894550024610574912151617968746741622027787344631315044838492107686038632519287997811210091570643040923581254466063380256523129788836092429568984283723803061397317640144092077546155548778699376446845877095838813289321801295834483932036881326719357999592671186231120110401816518886214191450996267940177946415237559937096727364075633386072035607777622738741361012782853537539978656981751906073384537563321704367434082253744837898877005317613632955748532019410102370710008505827368255330362642723257831585858928303304057080416101820294374140858856442592597412823895095905598313236457133778225467274276993139902652469620572971040359963526837577606656478269603503075887547802354417969080120241996849751842011730981233952965817606885516967404113234851162582803742085754491274146930123286209141372308489547887427173417237337204039194481349455660448121057137886171583757533383536405455421613747436378498063101407202903095960128446924578641748211634712524593086018876973452995956288635532579290671471319410113684620975420970343712370893486210524017435174268799889192564965260058726675364666245469038470699616790463779612141945936608621936964736500395687020989659376158291103406825839427911873753336396941213718498546690108016722813442276708321451553795136632029696070479532233957032620778036486372631479477953568678623006125709268007129577192442124949019774216998037640987855465185934037768187930370323534200689845131906438179007294224812002973124271590503666021257370829122338911201863538795248115639814262101232096749477175142280569177866896903386975112566321568216671925811634945655758937881342590838568055282706010021019251133956641004159490197662456662846187040317148123203053955487224557722179563250596858557431489586829111959308760949324869147194092524612726430916304741746586969762086529420095319684977169737821712395087965749047967805885994091090715153194825045148999975475700071685624864770420831957947625217499782015096817360369823780955973169567602819693882108199725832626890744186600076079413340668232172786047840787295883484454876392383509440932176884404759602404028373746347574353072760236766586912436582722721170368968343249326789361999617105431199591573268843007749134083591288451760614113454105536639196981148220723584474329910409688779238070585296553342345253559269157088914054028060035222501318166854634287725205048393295135811005805717834165744871819751893729827549724815842367373473003254851599935560450763917446156194302431690333656806680494589095430678716627479819092464480691456053672009530457588776288384770561611626761916059239982270248137835390398518630811214195292463676627548583833130642483708153115180925046371872393123864959045168143749832701950405681107014733840569468502202839685468304783633569340403912017756421652829225643551883535109394666673914419776003301581026620417974724902523323657591664399252823475142696696768130546078932445842099277106008927002633829544225561929260741369576970208334922590528179323079317662855896237810585239469349369393068129268064799056185756136530145511008207803824761951272322847031642640743915924090892576241133778930537051584299016246578711151412686837506679786145375700163805656534065998209125128743657127131727698172248133620820877543383111767586643644318780542255563703285445641765029438449683114558630205464668953025397899160141560111341214925334835477587694170902765065614839935429938574448293412661968823670336760037754942103515060049163427697441926502492402283315197949041562685613723690168509551970869293102251738544139436945789259032778115612833884591119178283515872351958845932885205602486781669199740669495254420379127323462748329115541897883534059695849316585474194222690900209383563863287584520065097845348535040656501081582612529154427427362263724360466162472731090157617418899878312414247353649419121394719010151794079596429732475891272449554346886770815810331449914272144408868786862876019838095924444027929740565847863076083999088940614627594810061288826396985132334088701149629515659026276154176598435861195676706102965940557860878462000839021317940024346823342018375948937770094456032079085844103143865043809463800547338790280857698079170017731205805263025517246963051973206938815407274928663642200030393333465689586610494270992103793906648177104604012973324832809192189020618316796085981737252371734598045867797644626496085217944441447359473019999922442902168928335761140899977590410122070529268234438960527416991662356408625312554505134992400421452417547568592101677060670771674110695582423976849642928095312038790152456213098240358130526777254317859465484532993217119352965547041397767436546469299426547573932754326303060688563368309443490559780943312440763115900061811385311088317954712002202435069027911982556260345254151876686264756938310050260429777206203848132616181779556889679507154302981206084757636036202597865456280675601697001634553186258245732145465458408858844621044183579535818499951791190121249040347752735866891002881328891839905256557941533636021620266844292344099400266598775814415773118147784096411500966215687245636817942826550954960802036053961006789665945614746173646026393281130037867490538427642780544116736453572591082963021312665794623558925191092458539845861935799932578862373152444667984451656887319014333401930349633642416058943479741316135252932672996665877153732602760688336482044345228015762327949289001978290423094215751645020971035256794120381989487757042752775241055687574419962169487031921511868661280026244980698972070098956548997106477131157265267878879896958699337463297205070643106908836335640759870344554905690658204774257914165915305388145278198232577881751594147638806310462680697056563173797103451678592076736388947730439534227356457669060694201755259661416044172355791800851206619550385834740941126590405781035218384030388708322967949437163763629390143312030406791505391069065869638917233210528652551049480834607994095366201358334894039377021881385236158717284372624919198432622435074079235792874959568306533532323739495770743104798471160338013890553880876914596455390149645690274071121869155063557300880463444238172444982959080750331674348462046253489918652177931242735133923416122030771077502031870104377412599919712039657059164296785661721288666070846796043148508667900799632681868743553325681827528429768975604268732780311106762836368989385826843401000543951361388840873057280950571294441024661795902824615980835020429052692063145346177312323857811898419851726401256880853835369295243092743065726148480656620383705503388179526246965835775184273563170729984370492182093596710720076535779914247418073821355122892751618497020277086564955411016374406095978730891806058263308698062131083416148208353139040652637254969838553181209073437860986984015979101058949410393355093457040922571795224600027952219913917460123867161221996956921604608874714533275916941467926164667511455427660791010613770348118019164345737318414623296602891300457956669177845887107651929244052314692835519091313867632197036742064701346472348345375169435081658723097676954218821747641591865844127276407218747808630590707851876794047451295957631179913061178074266231345969215112351500638705014461637008567882619920215142433918347036827292673045038289128467404311604784423101366786562691201888988488388444377594042689143787966528274891653237254848089924904169751109465800176522574845583522601813016381057925512678652726438749579305634752927807466908765004410746772366633179137744291492943928802330948376839435724745491230467126318575640942985825798727358050435355236614496375448645626152454590781545188140276505135652029584549975533048515637494254975533162033226883912438440996506923602506641256610041807559173736645620698046413931549542438499233614620879996814639839490350218479305648192628013391873568250577596048090020737543160865987309621478395253563393630569626398922388501616895001172124533138371138836379014132569592272691353270619638519418824668388285504334945868739134660028572943375120142767565064069000317764948301460601917197269590134383679398090474285377817418345936403137472572758807239768784171995015821633084400296415628700576630024977180595885062161348812977531750059756271437607247129295376598658917243835949663877310182987220759212769186318101683422849160343069796347660664091819890120792142748982947123528308122313288690436423882539034945189468736450033362258303108959375861819686064677491412885973843979079600975787161428814397075541102248219194940769700580251338838809830730399118103993661458535396399475384267734900868562410587748926380068460875389457439264761948809461005417660465319424105404849247248019520872483132947289318743742331567792769953006110949947000342841367228437692722901036763839602563656210280668350778760981470359324962737645015142791017416377372881643459123379343966180053499928145827925662230494487460383716605038209901361450368574638770032913891583462914386545104432354309176126995095993641640295408954719908448893623530151853644284469416275514464600174500992198189345842370441530597645901734048253042254090241826778540283195630714122258572805919245854639665412787070604132950305779015296554482741268596230695841359845030210030401067900260616829952043360904569048099660365606797113040192989590754476009999443792609371303390665202110863175350052426557179997111054996168983189896789588382618676615252879097240732849826962846005913950190343698258926432080882187893033638564609777100228230840406291571226975622802089505475175522652177453367423108819130122203968121395423314108751300327515352271932333276777049131429634107848318731422214801168906760455773056216565494399940306290335974796318432708890804374573288934989552127015936765537552755646629410695195837212973379998523114647617496914957257063718561830926617160880415814284671447991558730795835774461773033621223009998484171516454535613438977850302352658340991673223505353827335595497002101082357245424365761354768251326328809898182853866039159442934406503735049179333346366168134717080974268337738638803398239454035027125477264831364175166973758465439748085709616808273947590176854654388312138270632358292784155237985713245352378748713672565671304484815416216370819014171629148654653691725000228621141331293079970275142664775965419328600703092682720527893952722646793375541352947728054510099943346483708137596903033907320496881552872004724502232106139602304577400923195381931911207716001629129961235421843681872497144176981433772703819573079585479931444009096275019634425556464916976063017687592162091738713344793673390911863772582730695742845989398364237817683816706528847831595939611529279756754364605235704884932626672193204654245954404837279950451742592044692246877354798250972183099879267318566859881206138941357506640317971318511049750546559834612829047094425584728867752595485718630018899643117616469794955504747764666597022644834530875221054385636563100540994729669643683246249121354925909386164130705963464062952744962826069135820400823784699605360772376444620864431628533333996192826201276594335991722124417640617703517652695157235589347657580728521635150378099366998854868507100873021065655365383753287506518498835086565435536219370605862754979046849592511033314705640942631686891046929880622883075262175951692351291439935562186321412224600756055442355392202965686293736156290901924892192803223513498413450865310360025982296024813358020958549617165141132245145902323618420297169253369298477860586156372449680109792620572407232678282499622506633054762942801832287579823202201196672803729251641690911744561595683431471812481320367433017047903210232385433805989224436199960495128589856645975119840299153718613225821539736638250238790606805949644470712758798647129076719591484904519640327510405466161806431340066852131530987808805650993533600618488130690563075456760373836785988032800630649118554562123086936647489299236701565902891539948293969279044154447228594526041631242828935249122078696543543359560045602547037838699135779575703508148939061447958168780769706813322730597709459433443833907079590336181198926499667123557377669628719966323416109561686745712638024865165401459084721800144859597070698598255457213505015953432512110336860293504152557723984985035874108239200580736779741094860626363533187718863996314056471478921481018437226694161277415297731587208228735657555334739649916104596735218029778046245411334817219220533721218659736274029459608263341761483036860080755063806820223688344133939667039321589610737873192649419685303261141734558595188786494372822304950817201826494439960464380606078499600864556492043138998497970286850438881159894016494722507904167603239961923148728863606500851012162479186387194879226456496667701257895589872961734969717551508663662982398182580527866801353808071221447851837654321849256659716088044333082883923960613555251987738215426654817634267094768791105656219604856954264056403895885132227197282950275640121133958053313704451297188454434978077176218349198777967255493554061055619930988110369452334339608973289187777691262282334559825295687426877086521202626629389090663825033785867089932551649195861315608551365254579791122902578671133692414471618321011376186031562576223843489653030584075371159093868723514268816066851422721219653771685304985043175758891104092573926959019400545223523375384507904175499357664972356362750674203009669875616059347742318650975392976347959489856189169108700100078002479119440499164373291764677121712043980217088494862625856937105409031782307248775426272838725808822732055253188510508782542865158947814915477882281141336009022763982939963563851867383505407610187716166460374336641378032521774842382690559765136531854837370947306553146988596970955027888267109236759778212034810707593067780941166578891730421871602746565910890931932307679485178738251394432558026850640170583340768427503780795234929010763197612456609506089344548311758740215404379996066359282458715291816322424021236905629599356677975309800691992780742193938218466484184562342667591296167653268063632975769553360473103454999103642177046954565416047812639298513132396353758568920975304763363426378209233533153462753981674462100324530990605882336356171570179099642729391004940310821269934152740008989817206455122681792913340971821239017617989513315198049380664471361104984593627241671338963127151628162177428005410831237184219192238456245172239037184649305953982694324209881695405230186025531034213778763196257558143420424269196726398902531655166755870839812403098069338622082178600990755561821220732977074956708390403695677856268028475341881901148629006691334101594160658551643547692103661978831622090952745809517678388979733620454902320413663604921518609829341336700404500438501526672190434084967420150516112739916631214046604649441704840001967931994275775338566196371706149493647076821170001661934483613137288487508408958836024074327045259515875847165363687146843116375444471553187904811454209243994263011568923375006355409598534245043355633366732233075850317273351381193475144180489354505057231376733951686439943399808675860384327118277468145402525841834862010781759447489417530996185608816160428541705245542012657736494601482592491091132468117033450417121966462849689024241936475231119717952389746488584707750850658215111461644516121922028901799300688866750660525208050069847695386157384171426176954379340712241822706158667276870235936785465654049340599088605878370921219166474381597824616647609905367835298301821362354924417540304113627597136289460896091092879764008708202910248191615091805731708442613833135807281554729628855543496155938767827501213611711273600609007545036802091298224914114049794040960949811707430795487796119111861167003751370401918242859608509790178358622837897773328927557144981823642030936539658125937118658436547782527457861235928339248734845008512344316228268437736302504733645668680708393631044374810738413396763409321463238607461795008250683523945897753977282892216946598576513808826251083004347538803946636096437411402618440577813584631115331993038407633880947083496977784931360595322269708089351747551189784485186160980569091416576025340285488960705916985278316630986418721571696390087172146230584320810069149311224023581753877058948181538847436974117100388399127488010303634331047221969133472937431598282260616876059130270842621655149245890945596039919995547623525483597028883419042511250252967110957117180685973074479979230782826113951461828428322822820555298530071331695704607146863231231735459622732755697692410092189529882307970908133229651073708815888369672177602251824732464575834807719318129774953397572352759387886109842390359296292556179927449830915464144213338817956392145402066850616969545294668819436787857603914207762362850049867726445128718869968499391912363228243061811660147951924600804354041045522089129741709745564818431939265989210923111511511273706441331504770212945051237734071095288677845401743578475094296021766322930994657077572837450476914122513533747631851424817429600355706488691145744643721916909244960118660533384864227434809368994044318292414399180039373371525576905193114524641941726352020065761719219841201047154330573732549831392301240050485013933470186608624472162369901299229815910583137157295047711533175160612492290757875202460884714049864538213926117650753090870195316926724502340339196547240157264436310119551393112314085085782511482552212001071572936146529043816387352814918244188853270278488995115429659641454429488995212150043721769909422345659640422631101925020033643544020449993058317185702999908500062986597082834850088565618697425034114346119689908541624641170662173770916343971908230399838651994824618828781084172363057969812520308383955781554870282954971959114657576990884752697612942560155768949061713414088194282008823735132067741074391603238829717041077989640435939853574848273667904480508819540963710056956297815328280376042659802866128775578630904988825581321086217559093011639184570748619365657807532567564704704690301267617291315646748661015769651987906721373545994691100872654760409735427260434735407703919559910283662715538690197753485154242291082474715434895015633647482108364960000719261038566409213190129610682295257370978207492420712979159369899110482432401762732157854938944322581339613999020986040343204943409534129373240809970062184177115376094611395331216296744443800850901466739261683724660507487579846120978489235617034029551711522355183242342241720446559353051589613683235361349344315499396444241130050261243758989692199011715847046457699830347815909343850035447012176301705076412070424905971080275570085352461049496032503072161460977411787949485779957853044521472869465635784543874773386201334172671896163160956734466068099525201488823563396093982126026154502115567318259570439102944269982981944473565733483121906606280896044942451550481269332387411407179552991458757585653332091669801180164089077921026752345089101150992662655245753403182809637825467056109877812135396015115565948368712448745266101343299546648128855455830607676546103507674193024297229355058073812831772491031683618818781021374865445810481726929213821176509453040485384034903312508301193313406741385860622456423052298919142428705822987337970028696758113138154405192991616837125883071601220921799314436736143592134574765926166708509225625377528005058536968761348322058479366417873752676652802411418830695429987244091160496450424884358544467386396711494273811902698303479487149298135064409002882152239150658241272303556319651691205225054264547702000568304141039794363398909047492550663295412248501261168057108733383277519621204560729461577096321711446271588880246750684459019920638342838829715445371044590041390907188681537506317041989021700663368325941891307773085247471802053019791728225799034901904448287509359066083358111027853112185970023377981362604571439245668722385045593144265729728162514271390461656480685126744177735919427454659771547750899970674138898771085019835966575460531869313109906730483747382676163677354279450558902931714017066813177901376147153773440676247780594505000801266972307957121519173311644870636939932826566054396522280947579813629623853191681702094601015352593457848462758632217411074769070899091678962259459411777503218335405034522732373499785923576943151535650513903968620638745027341986861635591861889661784718195468877115837358211642717692943158949243079023237637992539075441180465162732966364489025431321460605404058407520429469315286296014304760270807072358446961037600620879695535295418782435218733107380655715740862228727559682575585106830992323616276012904525592412517206257763297661832445668576387815628803855949682396777229199271929411141141861618935650784954580276804323290869372212173064684391650362964699264339579330224635570300561496281812535988645993670467257566469072625765171297067023734418944078109610169638270985606395328017156421810230967975015870058390161599567865809806477512241620052445111097582293102835149165089166249934238011803225838644711732088207392481613200644596887237865632172903690848178972079579656779035587781036082794881747176430793466132388173431560032554175616515350513794494358446144435573559782032499421007426190895968973600873440586897006133253454813082856083504824059707610318508039348094102623004623483922652818286738822750332995063520916751620683679270834555729576308395183282711563638599620748324315702186665103225495963929151032449502104537300063217466524523703540083109870437587006360565362751934118929617813882624462147837884391000781245896696631649561070416517125083030809802148950606794108612534881596783709777251173697602710715826004762398940359618045036077953449611159421431660655937998965629798889146256900056548944403039543195075156482395383392712467608844164493239868325788621118682916570430457863687959944636907318137775240131839410499854841739627404465583768708594561436221874176558219165698565086279994865934866422942960705018791206653500848725354554196202798899598008499280552855479708420205455345070199719480735610284536491497603350799334595178762212803135024859267457898830153390681376915542681655285416713228867738497884559179950087749681519122118288455019682555124914289297276760957727620751408445427673029758222137645041843715126696271989601253258562011943273204600868568180440540011637146110865137834366972345735153593843991483997556538153802305326401905134849530268861630872769376279456549091007892002198796452180976611500464388811479438304475003512767236384435936983949268059934836714751752504517625745735020830111508646731092569747068234561937355888264781042823888321803068164909369602038810832278085118233255981690276744449905518934282775035404768342158002196289987284837608018537336913717345498356968060833161433012272708657049931148665608022106974964340099128886113697121615317400811344709416310484765382401749252745659710058604307175165513812913760959126629829217349168561236118781993672127488663119199600184508634373548259385868378455055515791081377768458959798065796376559325284529249409342356031697486461116483517965987528546304477330322522440458901225720693122450627319771468913001456969297302244524433604923904143106889778838996977379939268275615555322761764463852438951228852498783117966661100031549685525070497648828332413110034832703520375430391376063147888120126624480119850526989818474059180516965540544912598335098034859970436323562798032134875629314779764597073826467056830944497885703860263929413002505456900520450872029116279108653416489874914052827658616596496392740322657776273218628895193139466318118810135771689565903926974711039942696159936718675159377437591887392125633513042007793815514350697566793082831161730179753108064134483796909806194835994943564447094879076764082016996597000711675775910929485609036943766847762448835166585290581078783923945986379454601108231231447672446283255610645681259408168646181991651463464636295965987734286613617599875911865309280194034288270448773526486805522832939669840470682543046629979859995902494105524436493662170660336379743927560828834312575446482607398966555163408611368630332289212341660704875930187005735986532724995140621130126133608189942087013444561700233485319676345661518401983983302340790350805871405882815769802794815047110938251452197884077217347229167185155222791681490024168198112522080935643371585835570275494362701065392601829968417384311359044401829750162347989453719244636493210737237080730563365026812288062060529260516585832177003037983612054093732867916558483011705646032684516509996684005883282413264855651297429338129628945854411826959977905249151543614960611964299394293404089725606117773013262542615029507104526134934683591631123916391416263506005422814588337226435496662349195173253709951292604738293336776803715520152609801465430551615321519489137991395135654889560367375622894336477755431591077988558188288512271072693915459975983915259889811230373843382842254694711241864019826120948996901916165059227149372070890400621879959100274828298515495918239132925304827305632748132856543856476846573454265326987300764868699993502394792713929338990861639344645391179171808633706781177519386048233087784059960567851004604363921855993217228482741404585175858733772825158377318439340023234057244981265109708001457731055568586597491648826011784311902178402291245532929108222922430004922139930152171079430598700833729518840894182257041206547710118064446671270860790109633168441945312361503855812642705539118071671823615246725501721138282329946441723859254622946645669298707163787529226329660695913445103830680747375514435809100391621361381830069451662141830227325085133832165944284731342528582225140501452474073152425590238714071807366393967320122083298638893607745998917894484077234660398489072712306356804518663934388141805035766981615191296847975066820142031704886291724307049595072210618915662553260787293107389700547079709818471147611568544584569940544213433429744429286879226430551548649687538613099249865998134031523472760279739207691636138652653396243074478040999812179601213808927809131006101111089108060398049805204858520048588827506665440318520828124489091936384950349404944791152608470688902805507856993815146620198849314291634966848126207609324685369569439499105144909252027144911953840768190596701006221072087155820293723755434150635276150102251156044649241346995195166027824909538052513917812827885907699967832374214595378616358019763698924469228176746216615579389882884135360641964535143483618776798677220442062491228784371608626228435218528667052603741711681018122301866023689052713407840204853003780469468361856137693519441638741474240061511779735129819144912580066117971147213089655797340902739708745023416989345335843572099363558597784515580838934386016653843732808080391561708809736978232508150212204290319213909561553537648822300592004733312112199640790894687867975492576858699622570709864620870932999765511394252138787893989670632837151974078576245896992638079557731178886834229530657196019772740960496865672459196404328515902189830865748866698222073315443433052098979520553205674172447985095290959979922922087549237530874238922738936167067929858439560231760216723183494753874682382248231205602215952667403479527493609447365063884260849940484246518258076782576973191437849821094409175499818314939937148896099442247814419243408233031165101588876500158573062023621432633292681293391040054865927513314697708325465281325290122548742590398338350571433622573665545169907297126320503999940209341724842503018964402670652189757088965102310080934372320233504206537740669050910336322254420568783929491355083893329465967143832680461743841905801840075820786133864477560394486794386755966627159358568601837783639458612242868940442285453626983291802711445810761013202161045407551472871822298103473313735587127698114002107372367801333683397368095855553590333434062399567816851287058659490376752880751781293580636802598622722089426908305854609908035730454730892593581390106436828294041290330034867847397046029159204980496357898502675966425463347649886743785179811104015593359023404620882951146367988979727903889724044505614554312883228817990411111819289705030126705469767392703340225660079335940719804921121525150258194477706680362853485014703155841696086284622504253905764549638073438963684657731252779244466931872685631263366948538784136360731487464730607252603411095645703517869736269374062100482537505515977401208810712623450122379773402784332727415571990753630445053970114741664127759659495067452462620692399949362560222473359240580248916140452708064893519446636965724556497155673753375475660849072427727481384240732598140925719610973211764753704394739496137123350156107697390457529111598587471010782219245044616602942662964965791284548515587441401339396314250124366690289332604089954276451561763704875059821218623273822310213889476523588519947999381287318530436231252588760056866626488058862428959570448744988560116118362075494209883898911640900502955012335340708541666487667067740219413718421933277436924202681722026132277033331861110850917495733158795861089022063415790989530452292932840657597570862962678992744286566143542694431300586598002837657044295956495993331564128856937367051470053906286247449265603668593698913218177003929852605074383643289506434151960026945170668447953137585552498898845939099474275822836349471477500304932127218107835390359778408819584762889010464948900365512719479104415594942661539317412735742174928908892934789047891804965778922200939948922192950979263991402005104172967944024964852903945507730040105324761910272289938409257138988454345041373900622840440693349096141873433698109307039636662540219255080284973806725497246468044835468694102838642879158122355008536664628774607350950415556778913402185273312448095886458957385437484000571109946762105912441750494434403141003766465802270786526249322635800237833227306914447959317018890968939401319505209328862620652995168355782733224282892756815021761599219995681901694279145226303619794261968608577088492009074892810808440824720126206062915078714608160275720886630164671057017203473163589669752422257101973897607255059205066620319167152168072186162732139806408237612925582699989557309831649409383308545389635986770313806471135135604185977924396720531875937754351587129581816173240420930376479401358486776660508927253548416262988540693974995663726825681442428835096248618654840295473409945302177086626092372778105088853258724931153933504796566925997577470045230993333590811599005293097506296159467494589797558165236562230539336402184392187098844836440700027774978305138053766528696488637607456201264910924693252490476012069854906968683609613371386185549933778960951535510656050108816041290955419624571904508055120141992702312223169127911617703448220370824319979760807462333294770989642564886357604185686944493862254662762379693684232675011429945443542376282099666160782407221561686793138231897207073235861916728573800003986388127415808619551442031232863199444924243409398173547776511897168567645009284334032987623611086066829133879118140442010932505510265375572271216325004722407049064387691956301687859451555253589660434198601508226619810565421736581150692994824598185207990373955488954430572413798653361551612136885501980198287448499751181929015206336098356738144864339772197688545775585872260066591835242566151908973067739352279537409411859836731889147319636550328239373530358679882030499559374853901915031823037581240002952188450570146148442522071582491398039353604330823304317851731853305190718123133405175745350895357726008403559017935489588503432118178876201736705947826293463910421954201710375137281744373395221958828262731256166826597202889800448035244073073992511949514294610589093868640759757088390723100826728318274354616281817328886865594271539342448924301601481975061064928084648171208559283682044401338746514442018431685322920419447589418077821519449727465791134712653917836779796520310227499172730209610224565847873515788190004824631629958877774514662503848308360924710534751769125700064316350956934999231413137471604617194282706272706411559734192253844934896038823307953281728761448528786995104869918749180792073485481494489979215134176458727167622465637089213834972167175190440203872274918978714054797488732339186718850017111569450687960109203985532202604606342077535553541729131945077688102349335529688918308073046659942310253344671538240390012787639667591966353128306251588243159807971277285118024483160610241377540131191226438779890746019313598591187368394283684795633267310466313354989285438186250624940537344579901571313030817922900980697399249499373517298157589967494387596706356114088117489026965797966430594627844061737275802059618509172120542569930351761484766956399400500628096859542885701907961714788368685170784012445043018240440974716965918539066476912608433788909848502682141284356910869811094605185168194055822601236327838537899557325639220639921572120698912647013667585741025710823376952547987032506644755760832933937390776495677996033516481918019488829026322751342270638946922641179954749869416563646307092035164900448535359524699857523219618136942210741167610976415247743310594834196138756027683515234534946862205512220424158270469983134673375019320880843627816165085799266348004233034964858660063145735745047597289413252391704534653866722939901535146409522538291231987922508887768044012070885193958645669315350949143806820355243276246864043111680567265088860131381686468024118933887518877740958496362325539705046333805635234427347171987527647580759665536995353119293493526563467114398038195328245058881588908363359588180451135398386601472471204902427338466804302581262904544572195875678748658996534321149503658979018838476385956997082084972605903094410056624241704926609072258955923001392313953382020114260613191269200133025990982529675958978223701156080129100210128366347145896747125300826285756845883299588378719339379415020229372701495969528350895485666228483444683579045444231282488175010363993261564917928202184532146001206707084921827075991456206842896328284676831025830635646206286784737050056996696527370797302603540003238904321816857951144469065752498144655763329470166902547557415343862970773586881756974564866853188472853341237383486626409046698863681464508115664039751516179231592782067905965166692236280616089866854695924813540504054735914643637774543993400767681725257469271353433402976658856136267859583742838230490440387150969690938362967774225818883470566099340487371162665463075540002539929176745119502858292611517594847261068267534582846181467986107079766543773192008227005765069781837838156082181426736808390696581692624769054580185317942428250073743224017941056302711520374974991942211039033271149111276897320921849227502065812977379721884797780684858576885508635978159945379348546100829803306676192265443770461826135256410728636630845221204161341846999208756533098313193256578455946944959853898482265533763747011272850542447053961955266200003968086487436418487982588447279909267473323539960706374137148970357165604117956567503371829916569295907133452517958702332817230799324847555532723331153380040669946057927023462919523744232855651934553105824618523220749847815030790228133406332178456983662743371336427866232146978734361857463797863922483964521673432969487060901413468024293434190185585378226058264026852216323828212042213141931255199956374820664657230127905173047479381172630702090061559151163866099367840497593685454993080686654103835399109824937041787148297463296523404389103109334293601894865035782352444171146163411544487113529810229648186293377398674839952858482409956142619901862365130908557561694081650441064654838078122588139395315055826846930412549195751317409575035462012284712022271287927634069444980301906698040597464185086817743638567260538170716582658342162106390612689317208093704909937021270500385134679538038740157696304521691140991788689404937887202494189862710524434114206705249473076313667298189808416521139076543970650914600914800671803964157026200705066782545424704731651071966288568062238562756987845601875409066961554005773755889915577965494385557546083860377900198586330786557447744292832800241785971406576844670834516454077246581706987168123462445696642026797754626472539658538001807151334440075016875361864012920637496077461914265529059057968144359127070213051380660563654907217679187021363929091399220592669599002262569252892377563628371585413815558463420598346647272388569070891871561982247758337984789807842426696116112944240992226705212083280798048793948118407021246836292366887679765295391376712859529607359792265646640329336294073267722156173768958771204428036218523167711831202233551530896542764691436457135359680410499636045630562159601752598515778563493111962489782516052053451188680950968073305074909834703130234786384900549907375995081642276083854925194613454243217153770766492787976669338947311305879531628841685730238485475367038202006764698802402954760279307278727847975273462438093403328232333106277018328027977152722691443225477183689469540233817061326108014261956073026574933627560763753724588638824830660118972617676708664473748529249614227081680819062330102864918645118245340812426711488627472897730436355012184784004655828973537423230348362052232892266633364535940843712480699580913099847840232303984028461978989550700267405361894989732093592231808279381772412106023165690310260650434365373554116605279418717999347587108562232174010927209880809354757308381032208576566543613379465200829028839943065223574121209247656542668910524159790706677203536591671068950258366131708071113611853502980133534015559494583330993950539033706660813443657090947212658915972297650548280958434012975888829510986608835499388476501139615621142541350116148812540936839843585289548333834724914342829539080307535753881926534296867390508122903729630787773084703050768283683357377333729508975125415567584778386646699277755111118409633832849986237338963969922622436990188670214258713210032532886657889532834881669890857133405505080520372799372328943786480121038703987306325384269579188604483543383638855873604239759879814754234014475080322467669184861050189041661226460027354202899808563852489071526054520389633353521086441253429817900416831790599034956248401784239240634459020649285507365720057744648183052302481339600510167417811047432263187086911124837906279735022907245127492482796580794335585937783972393448128501028834995310644685218829605699037698561031969950803490411476204341153046414165427888098645124490679442116002757031504068214675476726606375603868354425024823999276475314453859985763452606228447623582625549571830441494754364912239677580702963057775228255551802983272976884986704137337425878676379985498126165617369283081517113564052610763575444398770480754865795814228776451476638302401710520231224588895984881443607093073167664842000102525084235370095642631189369958365489218136790690244985649294707158437593895391520883207939075274475894181024808481608705778471652624880293016784554799916067555061114779300709419584171472205157678989732631462009381145804317744329466411919918670939831744535361919485953948822177112913944592804145237643636362535308058953662519537964633543195006133090545273408065260669455616990803846868412141831368737816984298493757883311185886846676774345646149233076228114859197113939353648191590878886764320119483047479546374277429736096263168000498513812373677169100369360057049318931348686292673529868919828155846405919714133832261486264647401937183129248628896253239857240474117340582447686945569402458046000729252746347529654241470712310982546739506770523938653672228341379215518075132326508823706353891504790052151470292340349483031339339849263724782740391162759331366874937653611247387137779226954197717374432549293156806269168717094235326640109311626330519994784546346890540721503895834721703922305092319158034096871319128910096996952698353496863548116924085648849097005913750593414821935292768669519323570287561987300440078397516720790717230155537424455282447718236808872543692059119567301166531605595250143600968974439043904124762575583974048505162608226244325093599423512761950612193668174981905713677662742049083719405518033591926256380793340330303258214749680922126944516490395764252276373432450132475650043535048698538118345232537438230216535094258272434413020256933132213758814489863062083964206076417832665159616299322234200637722355757826666234344140691850258407512620541552976451855624114057240390824880093296236602649476826010218599506950872279002579999782103786459812420325954088613471313863992523328705532861792125876041522323573649252573869310133618370106337386375930574143599922533043206111205015950844550840359593270535293564846664189059328851332850551511898578528986138821987617633295477552261154765958418252300939104659110921296353483004745703954273481458447907283367597174697843210820105077652679798743255381667680254578161998643407380238900692855024444371233467798623707077267046028352588097366449338870687400762813822102997557806709338350558444845518805141778208910108486278778393793119709783003098959581764144096175013548630955264672967716972307495275684320591321603330342044088077961645491734823520321135276651935851312405724201346508438998045727689594127769593391110088141572798003481260171967365457644307824042252563125106358853829116194188013671321846670618107921459055480106996307116093715151279022295587553588767167446142353424463773504048187878323802995874434536064503618959035141142889290437753747996809832281519966953461356782290005208832059202441356546829384367691696041976689589562853994827449307113311655301009032788273302933133641666057364049993542590229702000359938517636059145611548357319603693925966790481290686178432676636626452830808157561667322486078468134253444669765779285213959378537471891141551943090806673319024342602596009898056137420081024366977485387462032841872795034449559387332959559189322475877324728882474332498092479784498731159168289169704525315446198253785496054827934448943973471252116452266445192022641428927121096382151398899123506956175042862645789765462750254190728026776744898087433771054744881264323570984302794544999424730548569653638054045026415599088765392633115744339637036632143311160106162090304567880422315534999630382027525630763941030544888090588361704738941976985293791596355536835900193724788201675669309459043503327719549635470705870473039325997141904433913326606254728642490649421805029842119958782663282247352606685468497858220330902834563938341856459237452937325220751789045321688382882850564649111949746643846548300164927560964575237809860716683938030559952387346810778295552549025629639481461736540843668331682626315775909063157033892785953940138799235181641756960145263046665912492154431860848043202367859613164272912234397425916141713739556773020620223483630417713309586093443956933146239097294988427091971128476504178949319680879148530176353883108812704224982155616576437503281724814232994858400164527259326806951402244605581053826956131209671995585885173036548844734849788628204459729015685951611131605206033305644172811610096767376193740307253675080657457597778018586187383729555838335539263202377640750044808264513836857149364720300074089509383614655982014657989962715177582720873254074946930839114500840513143615193427776004861679090968201094424719190601287768271992426368691376213768399252871208888898151783094242242248555297398624356025182526415766642519455419478372159341548408755715317986033493156047487182744814959153788465436010188748424076270225408560825558348023978722921847366747740071787281211066163374346217672065988096398132314705633088034040883033745776484394192651460589458152381728472199921808975951845180888433788472643596929021413278681606094093617314637815944628941881415518153280442117678998901565583315378490964213591067620095833107110551795148886691037755084757591009715655271293822910478769055247899385675524238632359549648903219839241227712089581037797699814834955742970201692881662259414726968275514972906483098776371455276782470569469093975810992646244460554333547213470690119691816260769475884445202769265474940899221559349615523580672670774811142825560979619719155758089979077818785462796186819598664740045051033393384165132502724978564613717404416435819045416619466628341205879845666050911285243996781619651751496752659013397032605171662868143102363348949397300295752485187933023532021358199564449993882536887364103376621003368806298258870207011815572836077776875467741563008903966741914811324186403312478728241992079358237369784209960802650112675722120677831657145367057926181456389540546174373336381161424633919198739637702377720001994787890941180300970016350415094656302976301753712104274334122055567336857688959554267919593885232691103174029153964771938224007901174690144769708028174088420293741688542953254130571196633540812501581236627310961534609667411334861203184784175160675213358638720356325963228484356670014508798397261954567057347383209723948843747995206892266747997625661751069103934921252452784702956500175879562146113178542071116537115057009219273970129842401056097985036208808699720385208231549189767849157573001461757346300413228122909145102204883751652681574247405529260713600560389793508416043405520117943300787311682270497962063214949364904701636359106967722099086667612367476304185592093260781021850934656201160301482212835831694453354053265810320193801120383967893655926213018330985766805968990531160987097604295008316970002571752653413475078744963720275821063668605772805911986699462918459082187121183199263564572358242990035237204003796311766627048858848006127536860991400241787121951970844606957157497873104179515877267191623768376118871336663160225476920550158703583875831401666445269034774923006611781550436323723367709618190484844045785117794727191708113694994621710933629841650071326982810152092781867920273668290013730156642393028203050500038675506971917005623341511635517807757406519425347544679309852631136684950003180204284808200894442404712178449674627453538166350168121917541723839966721376073316517243373657158536417133244224734145696301573533735479125300485969618884288544667079460286868813041102630519108673142545296685434483022273358042807806282466999285466127637376955363645993286046313590612851867159372420200233828297899210985219883589670705196271739762169423357268444880206349575226490425990891740168805600018237950586637970573767491536738887682247275284568013599501523642101575068747964462456809994918682666101911193589844353552049949918895788795918472171525607704280508637307108195601023091208977297233381297639656984306041958648507069703532915953485730522623751432113588478177026590069455233005139485477642220923308205338595400372962337545067381451100702168370625557227369046579287702050380907137264726601174709260517454222669756100417864982907074157759186819374603628023537321735822762330685037124310113763086222645280369052532678193668019358865498083424404663601793587152546898143033167704148541056346913029599809091281839373347919592418361860470581718733284034383653748333026905944657557359126759021252790658500125794499900516951605197694805693089918518603174499385961494222392371398480050596732561009322274511779887688090473124825452946021117831191139389581407341235484695178723894269517220381282068731234322391935495947025941489548841487491113502470868225811809289180961505911079685810496063926503249216982750908767965156528899161770133156380232362899224481271850497264606298031034532657600704033230143029485816076709476794527995659073862850188439007391408658959950147274251925457226793335293076448651373678394447728244683293048184697133905458085865191514879337111265003881614324837985180083199039361345782372892274222913596589176169567545253229868963742023263460990995180949241575041046382171382067966989688186471515575028904818424807303878903282089162377888377505022339006521280253298485072465949736119127473820575443719786805011287197610765335982484719057689206828154088058301602388489468073765971320834885675993133682254198657987122003943269357741184814303371966595116511939943315365250429865351182976739152743286967223865032778489099275581889619320217684107217089476817234833626873025810062318962734841389726224383179604981368764702021918487980244152884804713651199474786269589986817268963435555969979769513908955237130498479892426996390862015567658063323882357547331135611482244139634679731004833198013749825580678143277418491100600060312977180820156457678393791476520338642405121524618535843579825069781209118365830767354727403821478990449965210225036224208118089283783698501502160325748898320083150658430695820262017178572523274025009822170873285657145690757554565641441347114904176974770533639877856561265957179257531230259242383227116492392615066750111366366837684995608702164392535080654117882019082437773887602587027430496046199602735754702208624141403622784304396043515411158239826181535279011239082479601675212586512966672051505972033181532416069291493317953781361549961884735081949401747584439677129259892124463125906744136205153828218325953478217583075995259273216400022561388509554174561460850517412007356078631081521279052956214380225843762445808856360292186121444710061146937356834011118442856097627276287095196448031521441748560855449040022579174493933522565850888669307506772143167068606949373842709471642082443728882846900914474260854918113360141103813656199941352404837593897189935356418945153019955342769854539728662266904021160887249487193611727885258731711643468415796406233138576885337323641068628586216997907417726566567430723982248285750775019699759488099515336285534149675562173132117801365649137764553261643941000984777955040290381230382769111891638726740239224644565527444447226156017533236838294391153948033861474135396411547369919397911458146596956614015711596170908450044044916570067502186719074340922660877359683033244004876006635260155599782614759738080050444402002449388460337301231989963995827036910613679779483310385861456184925529603286195120030905124430526800408524848301391233849313487915953845774691083292889414471528158165208783679117165972508354047589444678457860755176408922844938821067635422362698945093326772384903568367986662508440833316290141639232353102868449655890980382410130754300220905964304569598810526665174458630776842876046547623401616982736845445453887014797937229164718250377076183560959581077058907491599567866580042141825809430250846554785090879206446271068408415408699674843203083494889725355121454904682098038537936614793675983384603405640017976584688837222154511618485404230062288347024571278931892140835438606564618404501876110324274341043975672955589056138996554810867813774927406072094258786688749671367922997171792821708489754610906483199044604010938038790996405991059929229819075062251241288868564451345802787037815754986587644880664097972264666741220684500509481436716372529785159600702634759754965869614117813299097998810204878012822812445234686628918897682512826882341468167698102177245878948336995293999339166477752987975799119339032854167941199531004108235041989159627723854200453575534764948452216868730925839583116462315774147641967999207851724411518310815918107562337721358321530182409521062859884949288874246184744126668090251500468650792865832551437683757903545431662351045353821692850681029098267628527685864380693031031945752910454419398041330126553684255426954715005908498211341204367980921392185204530105040211324217748191923532362659875353723561655455291675288092507839803914626362042193600192170098663087077056851248041158525602741649456933138339083694720276559849456926158367909517886549132076202912734532843147691832516059449777462081861392781486313725691254485083218186220151780869050726450411785232880129431332463984650540621240941412695005581041170954961676740124022400578867630295936541853533684255585326354663270921382713386822100570666336159577073533622488950157132431501805479289007952002897737159729151682627382839714253097405807140764376186701916609791452633295633237976432840801617436036230840498494249031490144687942427715217467982154344552591507447127023292905906851456830776623092048512133469331758965743306271646554316252003792332957230994298990976416320854712851093060834007504098426981666551358362248390079674940053215478560346138066312203621421238134673311776768968372091099737961457231194405159205020934180897005072954025274024866470169801619898308390492696881414488472379707787575333548972041781573278114251472338869087035056855398061054128398963244066100319471841663717656195041510272846301597404507134488965468463934018505963312321862349280769144599010499381939762165117734868197055409340624578377297703768201010292741560363135255671175371410869283364877385264441763349048146982594955050701470445682702881993805127999163699931557786462621958510554245828308996714622551777434411604549011470210774546653746375697322120052795822669168346940107212726704354334357870880344241269464528240120170531676719428076305051142801581170354775143693170971456505920600148702150509476526366797403149128292060297621377851818561564742060836963851288535146254633879718399543950623780574514103785632526816336515902475424483610490805517098800470256216592086266862900036753829769921947971158806211219394105332955420817098477939172143237256751022829110668034383716019182854603889850369074216695654832992349823442701492332889452047173565813299700675432548459926125173977535998008568649117028517432037923419964349510265507553779103341181346487229652191246850348637968198905830030924615246868226225766733719423873282707422057255297124268936762609039432479618637683753430567363490841723399676051816333741786961053921602294416401956368804685184433679872217628366867829397838853270452710806554781726768269837382016375931382917269307975173568739679245080788523333990377393265080388506933390104911053871820630059608795341736475268522903379628501599732805169922217159479540902577428708405695464219997741871922227068785059256770039576059347762289921838108589416668756863992604036297115802533759092205070739331690166040210511232282423883185250315756519178507111441426096078106187392186691341573677233206766021346467051617124955963989553221058172462545082129668387927024719628601448041911907670743417636169667638074205709403969034375419483475324289568013815170047216964361131100553376869402219762863809311532465149398625444848429159508045732774386744512415543580711354147532923013852195265243104478299200050668815463397404292968735151426657017184415826876423630224525175921900544741194213676847723656784470027863190067516201146638589431926582166182397183736027199724154029339105322424005221794245668085123599911943094852570756886345859209271632080664819559062123672687370767009337663236334560393463673987188999889469057876094646688544159886723337405342087265222644617917106218357141358543294144074382577448190466251455362182530517072377949223751544951106980654419398776118637648258679986770043800772712554117213621489397845433624473215869564121961256745989588977314300580260517715465162964692534118793758222472290871849492516847813650529437760255302828314379617164070423934544456258000524641083046021548795667798832275676563173084715955601405060165058765298427592083898158634074755005309077830918504272315409238875500555301575431955139732802375150909979789046317813687196071162486953443210388836859489797265792024317622623975267263633675517698870772657542938516740598629438599579440022769166462446430317973986302139523414505858401997172147601964050475327079923974576915794874424050904028980653568334750825687282245416142069723049957808336766113046985606842375131970707134025953956158422594545147246746531758307587251745123061873217709996687811889350725918699433212001567119567751972324180591914727316165033640418526516362676652342755561410283030484040361097450295097070823068803051294902320539864226981071615656826057115794664255220410259661042324212235494996036636710021729339495491898078214721897143060951338004636083551902387555680042425962452600436972218347944699300302967056239592175132360445595264968063942706747291836994221991263932191807040145199987607053636290668661239330259882758055751027976141340264669477118924853017906252866341615570670796905801896738640472004559536052696085434203203539597797767643235697264976465273351777881388547276224132254943252709614163378683566034912425148288981646162317094063571997747515900748226442448804868540096278000061191505908222225271555773066056138274801333044848906365036159150901502769841002941733422322852755962118453560057229677826158615710032283337999810963997227655615400670662687176157643454784364093518065396425300921960297516575833017816057849435255343129179737194204604434335028579601261940652391668206112054789944748755246578585875338321643644544396683078700975562265142573235208500116891333894942118637254058910512592618430392190662721313175513925462549378359947986348901837287389470106314860975550394649183499612336130566220717876949277778134741031072465527724332468867581076092050556328455983223984248837912868847504509885715822904360263034895135432837404914920482939781454150903895036461020853697904801408845815125727372159436656673301815396656861267787068396287016830412810172660413278284741806603404732034762347202065202152138471304233068793991732553234929441890252828885911018612558723732017436211311422186847960907303988667718657743791588957882364797623813310822520629241873999726918518296090888302967607330304335092590850048606297160911456981751872993586096268735819848601062577722311370036737299910666383806285758907757686423741694974278853224820042864821649097242648296314632995606116937968320641494792912829256580690581623633980054233942859071986867124223104841281294857728495323896817276519005869935624217487130463526685054754622115065536666757559180838978559673602726096501269420702833238428727887514540222291294841047940208274130418043262589588241826082990017240586812126992345510974289392753911571473854481765950890643306647051313348348597842575202787057793194637634645237170773470673998058347241113002199707220358995100908466967005250410442818484634626870335966409027461176398729214794150393127004691845217501886522922572418043093055245812376385233082972450669376425109502958214770138178265023714124316057710603233121923082833655557184961443548406411895197974787512816956784681467813375448099262944003229359640043167028337233321880683841890858024365653470681072156812927624702267290769784437940546892538238680763202953806726652689515097652819815496507748207893823461680103823300963820851104941311613077268936781497738554667441728043268595063938127254629226429713627543780859787288146668379138702619035055529732313236642654730048351199010008641635033977107797837971214418958195753284804294161263467156702896408468048497263657082430138969716645271341546717247850411647908787179644723627807547545644450795731573846100898775742813138345432301116455993380456331958769936894117236023426706490907968013971349666200042372831682175469933461079550070765024500838842881821471412526612331036798982266919344179385520435169490057255192875888939022644479646569992149754357153445854257923323666448084314591296742973272182239104719461977695333641236645461532194815743474689012104189142364517167032905480319389329863671504913949745111844883929977502850876510625742934794480212499554222001464604560990574928520781617270862406347103251509344088287832348889071937929997400195833998749118307975189018739043516054454641771918252938886320232024244227143840353722946689550225857122753949448196187814221473294965956841059123447590551061779792876245378563786861517223794645911533755423253510797861633934550163321621818023216055831707698200028914921278855253340239071286652220233254644708329883093069124175039793582200494335857037495014160862689011362500864968711972911161326621803838866566076346662193755086137992846372926014139161569819610498177643143873119582950538805249812966468133823658875871797040439130796840408206076404285595376577128662373501985717791673000567721974580136323365278041838786271417439045175293632773788839300862958234490522100654128137621676127359836044488115980087259985564319030923999413363620664105192287471048563135133947624304386657929734495002891692973333885126179167205416653248827087545259737519249689868440331318507710870927111667038459499159240420347132964958593676532686563219592842446527610907555827971841905026185021293676495907066175447203314568489740077806259635006861866360908762448295907619108205925627118787873684453792682515352663791801204791809334542993111656864028863891334266428155811061036334167404009420037058234775755007404261967265251753607353163231130401928898483497711886590740698158543452033052263017711024834381595205561848571494892469183760718730769969550038885843014042358787055890657139910726732444484489840458428049410906425355949406519130839548712170025110350415373922525085568555721220596606399147986598372996119031101836442615242873647734152727717407578859096213003581234527240165986633107808328171723660813081135866412417448927454811874132967878964521954997801492593824952340957538967869356903142789479377528643490790463825088104761883934817893260515589787956554580898715233676382274022862295254724266164716151711706551008273393230978745006556976750826445220568022045075910650578150968493534931731425532372552355737620922846706341579115417434152662381919231759350295455312712509878307199856739806258434023209836563225550606419562526003662697162213855174140381739353711409151639431449546278777140570544723169724988552494816738733824093355868523784095315162046805193931893675650294912865841873592271149357429819341893346968984632686564115918800171701610747542868708865868731042101868143393888701166693858238159435390065350479490044049190060224822569738480845596046941425588797798239208867808278527957877940043401539005726564153110564799457905090732201318111540658585369440140902217683990260412000641719996315845625708237669249790263427595216357084931158928041435609412745424201390356457742714604230255951962010508726907563184685466772812995977878309956783354106683126949434183229243742492927416876564594168545662842344402505632664563907637190271373560893700237999557781972057410976337964701495335405761727154685568319910477925114297977924160500676294216104310813583621651271039065527663442231558707019881783539724412564354461694259642165578159881120926308646077985956749874963434675474210789046209202479651004541036987489804335571958772809696013508657604590020568931518190370977858332582725758847160754745320972479301108629545493271189600571340965774593088261507705115028034961943529443531575491533436429447572553816678329133483127839183864949391374845293283266509977965501564568825258211591353810889247438813617351289789520200067695158620281861768260869297906321543678072487127333266192147516228162742547133711697566240837108292954951127200933586987366375579585172702152363463005672050265568571852221680851955647539409861580831987816662315042471818250376658344598690865570539096240310816621841837657646754503557077331100240228684883673985755714574133807101510059090721069764736403655657218835900431923817495328077674610604828699999586028217483561134926743952939547689828213735434378939049624496453948040668362937351945357060982640393873262981965841701794452928698588131031749506168055649506557443439721276885194501967716224679475114652789013663750852787406514886037774894090992549977436542052720964684707018203751090314972500024422344417653670759179964202525806966755155498670186995411939344779920467828556769329725017683696787834905218755610439474874455300724240241551609078062824002286963458684835267244866757536650515558657970954224028217643565621968671577632039331263816778210984615558267490470595769204359222747474422749875943023919769052332543154257202534374378767325473279462353881042158257784622510079768651769498265073050457692092229134611798931791810262462771590912064868377819701407974017028120533703008291169670493429514098037550729757540714336556359060802358226871478385921798203983054364981444642202567970885141950928702691855245103566241905338469358569820926920797833423817793714338470964910501058729212572193055344495144766610579444206473303405826636407015238073006623736093681141594144427770914982526803735266573657514584523222521438428753410703807825812985323277024972459554745031235085337966793840670953184240390581045913151795868542911112919050129977854998431349648830240783052141247455845227963928889393655038273051386585080837477785617491787041112532553672514324214036058825247459422003296423739632468040207965300548888051303751826209218254277747454403690536485771228293486018740625897540860720042399066717207245416514269565162671641832588196280759523013158785844010274348028185906295426469523795898949900577870608076745211076763933699833260127522311577797148223899162955472443934301048683028493578285212792764139383099384694446428480984977271744790790167322123471006502593487746128778666644309061022772095991291387467057952416825451487645260999746539653617743580982842334147358378900594540203163233237286168630380668209407058769853217931042497992587533230456704106505827453554371589866274030707489390640893346465161202486812367120064328437062575788845978382850766534050619021437193276294453680237063875958649419427083178109488384500071639184471220883852465281392714225017212906416539351154683528222332124723197188416135193595234332103862004701755621936853528872620943207824876865716562677324893263689131308885079787428870329818649714511281462947539622551345911768855011811961402902234265686821262853537688257444532422203723587189850350198145082879976058885714289194799552722611171314557429747181514433764076110500242979955213331462203293717680863138026186257944366417397339229124765942900058641984912399528688296922695769783141120926612407300833168559412332400952202979530909280335043474929054832291098244003270597878549282236071970371162118185362917030420634865321838194025626103618456963609063034574774059741808552892633755774971824304475889247215194798344368379180983459948463314386292310407743319809995159469283847236262625038535247623030900283950650804624894689388227723129464361390479163414079100501025100488714719899732097926156242023507810305965121184318173873943517896018026656309615227554326145651060813349565349800174727007634062881082285841133397332146444422167454669878317014920771385719569051063182294410120537716438939324969263591417048131200002108090096208436113438586906300386274989534057126991481798030112236059845614948815248961308511348586092483623810987727339151376491057290955032560281326925508635271959753371724337355246637254074376569234008662890509316431212717198882018620947169239851809788781096349169937917247657089983945085010574337189198154529935532143719943181160425174039572128593395104371427580655594127279764349733712253050245578548431563880440751717195777185789505939278460616203015838340771398244644738069713533655590006711498192461532515611085604471665023623410483548047284505599975265383011023683023299020406652247777360341805055586639687689903859749248826328783076287931757444484119970770975522000051418825583355559597553684594229970891986935820239404046290084211662531474895614588212731363011751245188730012819183428320999828459047209605370706525667146857574520985815194868388145582433953349945732740305662100100361818905826840662835928075946756452131262056566006436038272813370944407853584127865526928365669621672429190596195709074692532627704408415986773692156709502031928933615907448510455820318056011746761985373398996327524164757300045936039016597513138340235939085478030539152750222671547019752822805329185149069152010403039015744462480577353243628304923757005113533288040778432028039680252391851942405917857047637332729287735643087814781491661541942999204333288941691663285287937502904174168279806075544760048640679785805900968529212322445441076065450889749756222511489402582523112238372682411672844340595731143285280945182166368317940987418132985325252975157005247772657029428485195286525798482280439660293312228445158174352538247870729832377019992418234900435009111673620810263914309528584063039765647047182934307541234496121047209210881195661960879095827964495200380240819508627284945907978532022999486265666016392199867118248534426514809237734024995608153927909385405483592070722363535940736435021873292896699148423677068426393387458602698414364773614101857958991219945719697458582488097341220531495358518127294273296149137871212599549904286219681818293242295600841157849153970800531765139416468391516017378728977558057137299990157383826945832078316426236266664553513111264898746140850005283838306608525359241481150859637055216356822251298374471511340490080465798160838233067090252286208016226845562334218937645010499409941306564926849534178967319353613310222545801529859187898671708588438146553812675226505440531268492105725470332332258250326818602602184056000188063064268927953297097293583244244615459591136874761199950198591676267579071023520550958813014978455408835589872918012874947956366344375388159929519511759695910780313127078820615592989021919299837269413162696366241063393489519021896256481499316895564984495128066486107546883944250985662512744211831488372005266396480101223245731031909464593362547178679729548954415066772562681204934526697323699794620357710822888266076446921251217350233293741720148855693024747846546377170504889648849407418683126339998486253011879067728670041514894041874050926191249653810181733415607696640703592383330622386894812212671313458999875164957504254922175791908773171003238667583113012041903663899029403911083445707749973599951558104647803894779146600908433289165033393036515958462856608086470407023966503597969338581779916712947749629150204306261348024739980496488814713847140419275372658280551884677017969335389979061780615110452637207785104078382377239996762682138778157474464686181460398432414949497070613623763024168214505899776918102384767318645791698570905248761587645850598058638497136404221178626805600361232796851541764134526341421707924106394618044050459676093308010798316523897940343267158903600094685108877702477996032704782532467844704627385220799698911915458317373324240967632583090711049160161573949338323253171177231894392757741667933606947874432017288205226586869610491290685132673181372043025614557560589881733368135401258840809150207678818960487557034461225054325227248765395739438130348864397754286570735532607619265085026008267963143971859239634457224951125417578171700882979278449793087066344464274137846675636742574002494596898448445351722997611697772295815117661318043722261148257477056289888256330047499596947595708145426616137457657821610444856688259802488194639810924119506234036631565773859409170733621622048805708236286392330534774628461275909102888021037238904903113075267036320107663872705593373406858250227066787148130480394231095092507634920479502596010783049535233346708953936043962738071747851956714675284650958145513850882301012925285795771931903365473338617781856666079752227940509138197725326990086154549437043386048661189927376422287896197063934443547967326246144701686934861174857757282483029068928008010826338506010753047726870279352206613540782866609499632564246145674339943723443768973304790932320894919573101061043521395280235668838440754748504461299844531928496242072603418633134667620431534915863260850763620472353356268549265560465146815184928490861208703953856075436887977934029316121837507633991610763729680415388495259057104830988929189195550743143321813712490009486396752401577545690959953974907930079181003697580398723360496601310054868430967935562346536448817408604874108614030823117130142816221784644903562724418651411964783704930392726237701532226901470726290045900255143891108610310953580135908293883660002893569171826722118351805535228781366731553726336347022915946068090309508101238222040158657617052244631238192865277589735914067293503860595998131533862670752820382123958209575197556549645517540738667848465207669004742858931310665359745967388621070021260838966284330455223325206825802465443304555517963559467968714120844139808453464937114849770769862007678640330670377159406410550330927753902598837753117612464898739824279638888544544648671945991607828761710773191555099470500333669170714943468112559884266476499562938864994941074681088594079228894591289588799370583720738848080156746095398854563064026568113718255957911697689370229718283840788620391065925033909108586922806721538927823756744766547396517724391814370091997129064121156283252758840580462908584340064178724311099418423718701612564667887472823555092902948699424044307532066199772273034168789503377128612262713937618324852118377817434933849341121188936206148727186734059095493413792101380797723433815884238378629258268045685811231705184797652096714605854952794735123006049203033193639558245338015502474414626911542851734750408145324445196591360881429503403180020049498528539309177240696138535090079920134920768606793677195846861755200098194915372228332110182629353350676268835509616513777085164356758626609272904332283859395044667489110850064340082304893918385601455488925327130174611493391928268431665755146490619388480428313217433282700945272672240479463133243179494626879402109616896703102335228370671748662293587745171496903579651261117789979042001936597201742908854143796436736764255623024369023297243726577541348738244769677650511625879906668314397620081630063174794376267404574903494256324312769839789266983140735881128181258617009492383699580569949818755223939432470934046058780602695474340360349157946541298476756329008454473898685416919163586043047729195780335617814413278323907819363196453737575113725041040696876562316349478117210781259845656288939273830183777283532881403674855221303890334498825734124484400193712510888857173169442223577892145334155937815975652993692906556783474917508420642100667947395117823619227816276920536957255419653215216992104664463926791899910470776360860648993467351747519714859115503766073806734185749938504491941886646892115778953573392492194080810990049146557951679505272421793525391214715978806233634413860890770498264705550363288544492859551369566667310370657339216485858626453304997191128763339368206573007495329477171147688726490209298892848187002421016053248444835057244567099679146138059944267166278988310498823251779170627967930774655073155986203519470394786737590501524383579924237655826209665598164727381164076173407163128041128122878827715346809232069932174353810878427473814546392779458304665449547208199316735477204887861677198047450114863847960838983339268384185848248786536964338294651840999271155808953433269597381324104443706497537112919207783322925083186620668473743521247816337916344934407704706780218240594411934407675230196597774768877607692901927282345634066874013077700471950523649716769343924247370682454494511241991073341355936616722776467631362968783629796694566824033705125872656440796602194783673154715307255911436670189895643486651579753503098502819486140147952341807471932006578913182932519465089142569212924741354485620572204746060771447383135549243520224717838111799785844982206985182211583984691588184896415918416047841951618460230723140235221996961669040770021012756482806127975268885259067783252157356002337297600718772137219806596053886515081286100818072651844908805314479849191545849495424262881677851348496451649961501683170601813380239422009664105072479733774415964901837430549356011767049090490933027704103955679083012367737446994365269768911646048060672390960721728804603818890062366321277802365181842305495221208664890828867136607684027221636382606761729770521488395673990922893068830791020948591145812287486680370807218645697108146424628807898468212707891102718307814503956820346567491995976638502525985522148798751486792193121737998646632099482025497622334921109328083041054750296571963020164797537154099848762511835146841123982796184210738321289795669356599413966168727752699473650638039664035437427336076830750781400856164869611636229498587014305043574873141760567818425038623117642522165374158315349087185916066729100936069170462017017835806840665525086621792205015878406088389632626845088866212695296045314185378336525693626787848192992059975631112991286014941978308527801677714766712431396077580930345593853637394706444475183888578322409321595597723925602291341140076947675283471216263389311170697826465420786292656849103106067216065202594016101178524966340658570143128475033021601308844648852091048666800101392751583301545416120805090723661760278641004722035786622401787286412053661108803488001935070944954929557140361578567884867879682711751486281776700165295722916876194541628583472923653902276482588719528392636304788390895745913065560553551824221244721383453286967078541523398796145566023465514608879628089326072721648471477557007439940511070895521597546805390071254742724350844449397882236343001924796320895464389147151596961849410035452723426154642114612744373439782300773180751838135515583008447781805591573301837222602519037387168113863927822175326996195324494632195379939714547716747784428702308491270166176630570895439108558119071937231990128006410928268616669501077656236317427515566967654668162065851164309523211399019768610499578063131620596899365234781065149127334127149862962795746143792263015158102678180586458580016978874247497696320792281383586279310990893394793385457033718020618958447424239276959063393435876679823806176069130852766115099353727049721223801656159146611900028296299057017218737209227604720858323396941909176248727680586323631460635538108478080116800307488655574066326767946121085556459640260531168033530930982000858622501494439882988686953231741188312949820090006527362253580732229201532501124681117108931726395239094603207111886780967573308648915340236531068974941837886617551569995388412094276554073877137899293484005144493400311874337671838041790362703610929315485287346708510751914595691822730562716369207453977503406304855008140542697068224173121442170213175770088110778411871299371159270366278730800150156984258590667661278530018628805285586702565051149331772037966681194133497577522546061023504148217092643081514754284560180880637689611904089660667475754507555823163169354201025338748595294930016943950246919191932832842546386979615404581689484307324728506655022779445863880096058665065408692252483888786775653811982285547791981136903866324370668556044751774095561106552253896630562957392615232576446069181096668183555550822088932551623417764585779728678445396632477918341198986540840079684065781378461090044076969036867579147861517762666551310573142611403786194992057817375883458731809292949720515699946577209742514264172386384673077513183117302274702829527794413823489721346073035665335346302138265673207788386468467242816424977512524696359892098572251283241522039538431687249661588858780255903720315807273961077312824731551388470148525247818708703474904696139642922601933952050241560393432231536328981695597686937945379837871918791632227546784189832632123652880304629861213329699987705945321367620047982884097750592553332403240755665193433016199621392630010475362863581170457120425628405709016472194202862570811601583469804489216793121841946219490304435438185891311826576170078048327667207623113913407756940489919373084821956944844966145677975144681089892937025719703258605686075110962164611347213063474711122328990260594700792636866046365383228270480960682893957810101443176713282867499801802204186476152986899305340586539958508559698979845784445541022059312064305908784698913714910937410884135720958265536441689531453450493870645406415089713371688597355678752767044905691478277755557086792225355560049705310367677769006681446930453493095770561188565422824811195037994853417673489065082925521477998617748737432699569503667773908640761469493293948968890809827237566316347110373784365519935060839566221137996538849628220502698478326664119648246473671015145653748655130409047588859904322879454088973636528312337908260671686319561869640659074706604051336597121522698494156185002226446370893506923396849616388537730655251809500959888789187212583248557785126781558504991440163550395956188137624407418648048335302478691449513320623465415676224246376706464817976837965490824355698961361264199526552866571277441826578078311693263133116529736287300693590722953313947922478237436875885737342672021424258260192407700670396223725590613817936789469941266726111597434356507216751260693114050601082975029245413778495685794776118063401225968275072336828439396213232444973533055788037671988517635438532944602495350936603175930891191222637959052361413662320220957604417697314856224309033488529339343895119972072486438768026281058680956587299597017413940653709884222575212091999257034170198510937484702064729610071672217720924837242386056620211660212823323931074255236087688921809771705473328666421319356986671466893240347278129911521183814751286332655517426860907456194197724890602551796069818678557454181041356813949565774981191183116313264153543891732156624850131614149135204637200050240275465451515618717271647602490736302279681376371874330714661208964141495373047990877404767303659586302358204313583276823416501764272829600077408446803552989360732343005295801458297696529299076694687826084716533914133209595179992364794823825905197437004622413453404608345562399545234561007792935985705676959650191924746389054713176744334366806519548579272409253561785181706947207059326708570489788122503469985347868994688102647494674744849906978059638158436570909332711093462836595013208241636122884776450653661527183668385630278109953985785700236273474996470038642969614570600617644298320157114748916977820302213081293582241440868221050418933560179005220208840636281154359126991895338911869347167897901650645277758269351509084218336886157272599901726658456596962061499433376222686823164741303574057124388022194159950955950422541308730615394298985611523601232689147310483075729903076771959491403127021487757944936479359547259282928629871076966660448595225322472106034619451012096297764857981309245935952011932116000227845522231367219524893799248589207462788555800775746505766845960697237136821479842088277922580964709943829952573233917790733233323085212594891865153244665790454056600648931795162045516331760732492006979741393750269177294502563411464388588884739254549023799796093875182237385590119497816183129787579077387181541794522381805738553219797806099666832133700706184885010464013868550788660437066678374516123851609801903772779581762054453349400423571676811608358972861738971703832910733118469268066097587736893970461286147549545769401482658359312094521623169148283231078849112028956049188952322293936099948543981448832519581734228951813344976915618083544513254827421620889169245664070677964475478503209088027739406131903230633365435420871467784226798892001184477545730257963633690295462829518559490854688364932497890488364430178837278603234348339167202976604240925587000985934590683754987282666739888168953632098852523440211585724061767122733183721112735163441426728355998177602642282360215730078788049016262658760536635577709371874871707961650886311386476563327715034488579640385970759848426367481334247336174770822806620288157785685912203607992633531878407554041083695850870839024284691782953892950090758276025713437931089003223167506443848050893338325305115158894757159809733386517121210149615577392981006371507881589484972049660920312760950984224593874032203302412972290642735532865201286388145258030852826853608525777268442990181838077118384543405438222623952500331555262485619391751098079844396359517987958232270001478831716062247966120259634668112491524925514670327192569986540402822317090983111274944093083640547894563194101456394587079895246153100557655256103260957344514272245581464127853397313859648716815091947678702137364770532677483755101025255381657098608976064750892939187762064045467063488018796061646635472303661104616702530521324007288728113489923529240876311339316678780989783270483165791701610817592963618565498343004378464538358570349635079486688426716529865726759721447095666953939954724721347575364294895189500980281662840397471572954274839708885997797107253490297030244132906401287038809643407561836243949297016105729845508729104229638687505100878678182052747259735292321457674505377875311227755504004429340734405849979606136770026499714238348517833889779153124381550657976717706719608720512061171958720919278613893257766054749930039067020704665558799964799759186283810271538925917515445725991152857194003967287891794203575840393701353287059219998687111994233455697922868872709167927606396815286042819909009267329425065319797137859705229958114337025841860106138130042238236637693888447452259948210701363537721283366614311996919948303913820871687151946887003941049253600143811888604718561353330171632850776598422284186974385466242634991329389331159866147708811911063472291346619269450801118247662508090490204936150275058032614231637687752275892413045216766422652048611607793599595399047862238871245103371838012941559450521319367612890807824546939615940638090893897637297922630256487830768370617627449483132695822376965354992365815362885298359265915245361904302820890255645335305278484524384305215782557402034816426167733283550812141640130406731705566634224496142871260063159114595923885475200415974147188513431392379857128702294877074884753482283389380600057355287024564441342129394789366504353470146233427281661405913931225260586475689615807834014976681683809398567792432763831294877039614837571739872804705585043257762854338316789663104164502609880189843624053094614141234333764382837651280684722716569653773517940014325798099864619348392531350972185649301415747470525121990237516171985080092746114308835299077529665768308847479297144949392382071162798352585563951944802886174120874428943225672372844863093123528319800430029229112750922068137560147333456234321602678256575281546283642525738993626670490171439401617845152704878631164036230163375936434493356693385335598157400138397369265116346548672625433464722522512638393578897493513568953586385391972295598184755841138576015831246459495249237662619674069321371224135642441384632490836436688016242429901495649203012682249007451960588548269516582475827831409835005146490269335921282307225001897159571713233287999730368233426012998890668882607995694832908638553868282505682584752358206256786015214364809335239721969857728861715391794723530050637978238445998153024195130397487620532377304037984723133266517429976700376171288597073833356398033565600065046891199792169605284061694589023238015222598362619159699979905467485189800624390725406493978507811786138184386110719634930185931170134224338440095068565544169836646732868249414989393515157911541603513991496731318552424572776593431028947706385329300872159572226916637845566051944700861046130164629027851587078346786456672277270573288834590982570136501637502592622340170089385007772210848892716416031951553799896950921053065061270620053590736826627459005852989293075332307266216918340488208401465861708802425258932543170106103293693754925659335845517905607865091178147430965977391959339333754079663932181669570353482394202417279852167270091972581560364378141768763762620522494334126951473861366788657814413238444347842567390179829283439787180207659220703378141459146217170543799140027668035280620997618529432871936935837481355439241910630569105786189634629080568028598198072782718931797955818180745947305826879547958576177069989865658010629217089805858443887761307037344537004945092602520699258084246901184692018127461801137886554167217727411040569119694297124142204808124594900801091418364315517534011322707095111617499784491008225452485587123150441249062894140246820127943445953692381858971064756615434950768619185146709947338174680272908641840928134991747760543591580546825009636302417331145046756275725180896905816821305725230681776276908166846542621525986341349670198413604269856158126266944795382995821929503577780690809687988165955944475097145529190038730364910812855914716187738661327921626212970393325328471059310078419344595559324824423856297245491636578829408848182543024207106486349466135183015347840245225075421914638737467006148267945960464195024273546449664285789563730987413418385643147778218409690956960434326725451587367479837474241018897767121378120920881114874048058895366559050199887881473100986813962815216202618558928257700943554482041711245731563497768424653152776558822596130670848163885436310787098726994289140453757966642882405046019735050772844919881023034017032260098158469467924855460430342537129239220057727941476408393361595428724333094770085076201764731630871403248802641758629857618693452465524693371579714417594677127853721517882607712898894182987100188194263485608648540232599419776080938683492582794443068204424371103499101829989732019829308074037740830003834488885824672993461004676650996876010226357883834761213394731433901024401024020066695587386829876174673686808054620167852007873661341764243973484004057926721976244346801103907917904166155904773252457952733837272585865585269719592857100877204241772419494803984074824805487960004321946499575713321739082427767106855327727097849526200867212967237343709143939595990490421800365907598884557069476489591801697016619674806411361444852302882320572664129638231011870408295948534790666121124934649027800821804039853393423465886846227038101842831147578077410713664556941292447880558547434953936495699861799055721110956499425035146241454268432557021436944688703266815259183228046691048204514648755869693495063424221884709178481604367813558042053986052428598010957738420128416742457708228863439847556125117632188679331452419701939244768902438817699920865766761112591872540026095819177756140195956853159782078458041639153409466089635846843860483750852910721755120672147779807800805110901804435966668716717691713572369268029030153433496426776797212837024273894116936513948002821333076161227171924571376138939995647629663440420177927848782634619423781357912076876580889412659013904702429720877341514324852668471480548671008185346202004880761622096920217649365807545597410369611235665258526424475058895531669332352109880326909428254378575136627007356364569370204877438258828641502400532281922920378684519980456167688469116366156968266789499251247331055758241738278523696226922262756260794517607407414748291338538731180840958924001630823994880845167855791150144585913861791227492851611828609283179626395581452656471426474176145517495763443070878610937266397710404216463656245526831003929845739946024801874743531230253738248668578424745179396886985844440770938039400000786799873904867317547352578492041716385177747897059834570346326763771094779323563447452952947222998919961840751049075530904649545085583168985940418200705444006640886588690519153636430527512765572555003430359614311922497813485674270097857928412676050218077798370811496882637955260115650308414345529242120939489360265356752137852092573122232925855659010843088574196617437611050070165800915606075865305188319752042877329962496861266965790695543773497459346918054252314584711383373187783386419969228040304061913119996562000430124846353499473779905485465269653078610832509002260901973151809109467174700585284708501860442164274663236741571280410166829889040131946252754543021957244815452418271778245245719617318537023647761133209812941158475322019758953247453960066594787223672031195460380863317822843849270065709809726289420314782025544820609369068462528626928119363475720844113127356827097635557858045006745645808127935618444190148257428582418923912773357375509498318709510929909300089719861244933443030741200102866573810362440014777979123232302204323507999178344301350611698687590296822373028705906983026400430591565591544054406029639750887747946601461330631569674022545537426260111484996733823062229651689809724179806845951445004047368632022860389409462783158353550369940642869152494879360830664522188231511157198593801014509120298977888867254795372230088643735749258537369132734220331470894236934668236676335197660095750818490483567955910073676289712447654820011572208580347932753121018676508181172656915782210101131127336725824528181850672198202365081060651074826054628151257281385277961675542944633791012623468878686513826945150945402779775512951322280831382426670014868859934263905245304057995206657782731611122248747358199776008074091417686759493317267163101004112461419804971546181612436593482110436263108026513087630490499460902246194217349392144647612428489388508308108229040085345346174342735261731456708246874115908476461897083811742125118881417825347087502818644991083760266186048913658669396327854544575454799062278140174406718876426581928201928086512011049006326938589189413097453854265643496640875302448867999854158994453068852029357716315743097585455935781708665462118669862260935165268997381242952372656737689858113774017646241973296981361368260154828268261522947363140223826360424145422358271775522182289806989573073940173701072851094028857217134100453866139087720257867857076491566724493830888958042385692508619514397113672629487226360745965581187121698595995758273399676075761369381664583432120274485458747595982398271695924515288052394634536875243807272787219221545199592620543030803069244320158633576328341687176398372763994316208973573755993206577560089838309495477625133767949107983686910727906333928918928311593811397114487785111266513541298460897732673063437719332397166332663775173204599413545278365722711113090904694934461147458041451883149081337412893287927583705795418339145957433933289639447231477085772023560658584265800307331677857388613197738288116777035142950203687865043303193627724358868588751755085640447193679134008164988247667009420801936339897786726881477958610785147990886988685632249919777744890660927790621493441741862719927992852111794935179590782440590480301621916231323972966978175603759161327055817495848519416115615769649822274690565581653876102533468563124099612456007248940741810011135544213168868132885317013237394806919337478748025056068961174375384558359992213787511579848336736192560604356291065413504062377601918464739233150086692242649061312082386766372530492519027727055142049468858424215684083316265008186919267126576087286301058983665923065549402547586857322548537365853302153219206223289203784666373041032760305814793614139017735940425724248853700288174702129255282241207697014465742733647047580491988057655974920531873020727411078828579408679795185362690031020844218230155766408446963711193027249567551797464749509345500493930915511922772293202248754551318915231975241091217278251776849733059537571654433608320960876643555687302705362592847198163043325874247134681835932441343703404207194073369360255423289923564764822852605266986037297225537227891276858480379952993038412718553468355870430720089518147890799089155541671270912979204733072882488205833779203561044090466983529477149660746942556593615530269181047695110777326435905968496664624106825606693316827216758634239919379285101963054659579256187581546225363945897392712574265106357486384035866936438943309815392177469924162439906791510676540020364281883027249366301821464692605201561420036588681360716305155815602457185934929913492556751212612262566956271042409341149327233598634563865070591090127791098282413841190391652884204445731147354448798744970786179006563464975560304769790431402428462365659996849296155566458575147112029052481108453877042387343277992807088725434340135436701640178195206500177517620899749758618115214073077181808159350489044069761333449499775712223528616397914968645799123936411126618431368476434367131623039816079274127960254970689621299494671510692780618891123641577122053835043115083416430009011175557466797658596735305140007775774562104116225819838044442827005467166328489584963711612467214513869289180731893071569284132145364855467300570912358266475450643088540279886734184862653972484910026034312446179873485746984329551945773867813130769090137171426222174367840327215652170828300097982350587917317716785765667690904548149012704407773484639093067453216872496791918907905574037355640622098008486743798077215268839036754908567840982945296962206434689767278339832405089953632562902178530261764543990558027137137255413778493563498067560029064699878223035289013304712486322890958000345964829294423706658190884979677468274912285542321161593129152117619708963038883760333276578674873440391969858321836999006730828455746652886944061778192596676802144228561684081119100436358460539863392984406159243154970385400168527025995781139439637863155270019957451611497774465234740569855618039037016614353850279656344586359271602559266898355045766863815050797281122693802794956488208429092367383677026819314275442040443352382185358139565046843663566275746088584217838260661241803284590153301151929693324566663257674506210093470202819666557212702447597957452014342676540056869171780769681469919442903388335441436145216259560306960756084164847403481048576296726389686695190399086227743809296314769921675350751659809115865905947392946980231423599408363196305462320655040256312018696184223372270555940231772509978508019774468918026141009617518995860202095550845680902939344738680097772604987871284898996079142389494282575379554911711955366992247840814810675601321328716559342549895425426407829956810711831721903006744290861037666573736698042886577226659892197236256894063683671318856742332467710063221158162943185394993659091987394685328848562466850530182149415600404781892519066041598617258940565007512748584451464069841601270800888079259667307205848491436329001590636422255597622135884487653173211674565362378932895902490592021344757901826067907644249233126314512829358648272774254891526550415076296348234076115864480258687592301371473328250337556075577336287644756788425722243372793508644469031104435372135953582611352115330043543978341570650258045857569537199425758631571723379380524827079688121057721063316912639167181564028631868660097301124051646058176570328511754633098870609044571140978797293394934827540866512039437477956630640448627052603676260858497167100626395019890714166448196314518238616306490903961990555019502957241877030294863523714025428430363445383760411870047190991490450409627297890166954185816794133078589682981536856461145895215200774284713304916122771043263802320988224986370957474216558508840605755464084833410639731612989973270228551041865856811690400277392514877595157722873078612679214451272781804089513479071174488642408205272259540898445307827419023638967849460480273634143418325093989580540729197126038451918206623640552598909065043246211571853384037589333696941189970458455752919262457193714034336219667721180997940511447238487269356354066161636209483428083820059010814949600546003636194301327101473796485453481187806917585047157411868730978001008348836509189364488830164023562852259543238232234561909859353126642019744328000329745450281329562354092252807275515145166961126770215353196223216298395591771473022420873177212198176625727148304057413547790724620081248501741765901330709596174516893957860096127592313564925282167790165819937107439915375481556005521368326642543806774789941040078171431374914746462500256856834810058654668843074773777038983015793837631021721611716860187659924160499438020071765098774482164574922425745683302278619698170275517541439780120857857053702247262812346082759543005043580866702006070415335593063052496939657331164536517991423464400270720918278809636653574183606130991080336662055768447499390541049630781469021825384209500038943072150925571852879983524326919269526050916226388501371060849818319277977560888415413584123099178505941863905299772771958826473176362448081434696705875463442880232382728532840187567341576480200067651266243124362616795890578620134472539908076641621505611727705256983326167756328157005878783456570773114722306963160409943106804191773606992372338823222771447152588236926417501936054227794969485477216614193579782701355666435495349768877522020522595201408139321935446635479651441768654035393280643791225547765095538282072127701474523544635390058618225489452474513316025313363979838240001843423872930711064310921158917641157871672222441352467867998412071001433472694443519490731994743809241003882704775300787826757920863183588577822577852866830864052918751154823916388617803019965121255591655625971441240968695541690167373107643090817896660332747515288881237737190681443713396057095625094886985744245606370853966971144785982587106225534987794541379315193225191375096938512948554357968180389235642682169065396191897120363401664867484348107482635379150063990752116545797341531415784016697072904017669329117829023427130318561499686439945510250644037641105709086395341413319482521032803973045318533299073946283304408948691977532981090016261588753208157601511601069160046967098940668383212239069236307994203582681197907749173066917014480334832241364727839113919361733319228639743616039687553413421829163771304196680328902657713035206555606505963292875791750696551175141008767509007381673873495944250027758139586757013539347705560658556734201814583668498786161613791697782564436500206435677735856488480404957730054224838071189699481526739644435866026800342014249718767846739436725403415597014413457319793206711246210523638311980492830081903412505657367453709964976939112809330694880640334595482508224618357531586155716558708250120338617970592055652113235285017529542042475164005606696245674534727643984960316058880228647131012450322505338436977350608898316705338330063068755985100592086389887268789164548871081112182681049793597677345959095141635792419703779074168517447893132619532017827765635305228471932384921636958910059784597648514494731909944035954860823534549599091796513803852886473142108832380493617540270204487726251459806300253427754943095001358216556222519341572999234760339653327248871712520928144704193646359688601677697373253224825997707081837570266784847672554604124217867395932013973035059625448805158425363645300594102477201240074266504024649470524280120531903838854212235988631151190623428125899605640626875166634629979408050209943369730999014471479533814684875173016136483463854746647341944613318882434688641187577404529051370786946513492379227638570500767494231238949714592033933683416361295711338851947726142085697503714607676197880861834820440077908850352424318232230679752045128400378959330921137398015360339489584213463494296803610162958592392232709316456106878739329133336654075037194433391269143829021442001914932883132601321280038557413351439678455611927975752675852054542274067923309590489051480532117990630384523262300624522990106906349652821924126590646132531673132965192136962479544189037741026297557733426039193871328552779480152321252611098437847610822514718695291093166536891876108645318994591679409610086621734867484922071734507640605022892093589920141333517910429608209103487502640319215353227506731617393230636552024658387427907469296201933147503593200991451408647268401412148974259794985268751712960737387894443985376268378019108475512594034751064301088706534916140412802668202024957813025190112029054814107774187449435183432462426632472893082012231440324295134480915990991923855058267459633357559954808776871424757485288552824962474013085684091683431191766400837476231400732563315577223278335525442569302111008724891811229750043812735060583701844939886598730893634980593174815992349996708730033144575481960059870563917041377219372958596616718488004396454258819000139311608352565681960037500634669949003279235091412832018290242446274950705664525704313281442086354680134805258516133194323906527109954884038314368814022907428541165319850528029324837780992278983867419342894654693520762963745278220840199092448534573256232982177152714513082187452007460161721789811385271764960142305504605497127847112737624878576935272364048603363201007108266531710165190117760416238798267295396511503646871763245151869987067457690012510286993896099417347229867311018124828761810085495004632266149408333108734752596174787207470325192833272746347026806943197057115764085023896003078868992560505522157529102103649929814522969703065796271571233882138080415804240411823741094412247128203650892517362935045571252868474405922097322777277911445644878584571616575451417320659128221663691315630848839818538526287534098095113557405474946282071460019092499583432180735894551962571655098720059587345006409051914860573218369050629350657727705598530903298093691066983789531027110055835770031749723494596888333487531797609568059475285811811759925233615235581506595477778339335479478113979857176908896846727883654047889810042081963297632764969034110226104241953680164596646921992634896298437166145540984581970807293565515627028272725629117320488924684107831370481591126198152071673615488397789087735526788378283104771397530537851733042190012855391143233603021699030309850717656013999667606749021648244456230503387756252954275937794201048744068853484453357603548888582261366706491093321539716254319403958815263944656724554458178526325780653245020854943459145245832086261514630214275387317956652306771715737781013940861840434731666652355207330338600760865040511296645556655990442455666995349971401015849064373906992566811592446403146309340885051881915515977084931917568152994300704557196411109240935699708871498099150238512354831540932093271902463371670788453051323247371387531514234864474248695718873356457620713793579879940189959810765482889205826272500211174728385031272715018145449003274877667513258935379163393416098329586305541569726637791835559245751824125325902009295090198987704328095887512085214173357305936484244448812381654824284752261743021262331265090908908534422696869337715499678039982355044819906322701386161270676262767971621691331469804542675519927004243365373729068020580238496318014236847134087416971655507728442631567806469677495722029923370873005677108886589980391756421904094971701004848796867873525874039988570849881563275042836279594944511762682969869200888527688799134728868852443134294316140535004837407595832921984368766179636703725577988734882031883510033689668509436291030161782814848901257582775194665187034581761745846072680597574861456218556851855765269456783912649653298390912823190202497118541081963596021226355292317241136358008047813825345588852444161340110612161168428118555664994382864703425148703233882292796100438411911751083474374440059940327477578905007774120258409199600966489023931564212108795800239331254695184005973503851865302090029612840042696580048404005889993713871338607287988739857634502716979781054134393919473185351527685734906597578604539939940395354222615694477609219490499356791899104219891858619834205323921121772480960841634373897655634066335384090729415384609744110616435941738565587065689594277099420682825367837584868284830475601562863512848391817250564822317160895740423275190147127996060335835740560522496093797543243592751785002058815173121119831121048189614495315006303382764479703445544222457433816570498544125087890448267050764130549022112063763060942563420158830238454300050249932704639931676978036953546031387024092323894201167743355459067559088563101043714991924469691306739110549667893329460697638504908105045932770955734361456798602952040487697619456099866111519533614135083196651588150752772655612140165128616044456961233255117923401049517717501527101450709845319668555288881591562871544307149771019422670169573058302905470147353485643203278602845048871987822939622544998498194002300343509938254792928240557092466876479392575247307303770467616090892262586398004779273930500490315820021832595704705561069131393886906632264911985488843104182544246398427717761613359861814936145521556717660889705841482918610126579142984118360006363051891499205678872116197933930743689754271791972206436451686370695208246763984807591033918598467020696017655104179261282824282803738638921093218121501844070054341004257925536563004562136958662292784013120015643707706654021746665780139648898796888420317920564811836472574041046343968494840271567965198667019175068992314001074319372643582716199901076815109553778394182632502983430818255353489865491445010921298521218803198785319558245950935529548626936723789331186522070954068592017010250315098806789569447108763139658010044342195733475446636622033908043925476521099567341534737136361701506167475966895163981294457116104214431935423070156603589278691320437056053373321109862858119017607827645159955289419054258506901203929050916667101139383603746286223233657141400170679396194146615459010425701238471413127568985552365328286966616139975940708568024106251563239540628561803814437533847128540444076084778551903354772113331305527417744584188647147598111803045362911894548270581080047607947270271331259910608032683377210165329635189962906175704385328121259017612866226191936872202843190028912407440459438758239206725354667159624832155821969196794369829965812806382487181944583740321504283201265656035300000190364430817483655355009981365389872286275231609198789689661824030895031916668870758560300969542240898224644233067732421245590954061513521463673204720688733078626078960692874232003569871884332635781443932178053362799913442391943436133497391286467228706107161542295993913104995274645324237860326068594099346432357630778295278937614575109204893238055371472538276387220727388457706275916877181290175030092479638140156957924369698292715440978807108200081561516052673603461628588233797754721648473236066656943730525728559341040665960804508041903849822166071809174127834838785561120299284866721149340599547899103794215067591599869494494186225820931212966600510988923540197447128918919384592051799328042827900596139781794006352904232345582439718201745028310728884315297633989628912385804782959148316913653804157835684267134462705502476256135724930640490028859874786205741025591911288337896792668463842338295742041031687737459662754643833226548224100237296170706821625757127280385553432539224220759761209013411556760161782531197561608036176241504733179273426426079842282489803601397667766791686646383252890534221421091941660003444245965410172906737094747416266005511926977031447030860326023686178486178319604349596427790606719356586496566247171721033454598474705961450028636373576775869346258370002548238427630695163741059577867410999294108931857999951298030992432259859162213649772718117164359409711433019902525828878663863430052095907256011009734135387448470831678699271405227660165988220390104413622142990216190918242653653403130000801478578156061946086680170474188386665698250098767342841107041354848629672387843672783684862850615386702064081290370930149174336794965653200799075113584419642870164955950822444154346981801762431409559666551474553027880639529392469549510547010821920446754027979546574178744876285328195479221057152097249413046939063709979343489400712788395475405922179129730654122733351821399717088749695882743586403398220720374028256966235998412509580094900766068305584862202831893577531813316410981386141437588838273992956974963637784220265928152798858729901778924099293143399072015769435524367473349002142218880515918738938051247171360715092846385982397655475106792620106800057143370629892895741561416455293176695975071577550035308583357953041823847589360140466078191305531712378503913719502368364790207523259507403927974865364028739378648330624288551153226999404487393862843747194997014018278040138536295577438713522319794929868427795825561645256033692173675021621543440626788225471103178162104657108191378881492771511331048540355423777565418842476925899788456972104170374408409134020090796305834393785993133521681595440847425156518018714778445093436938722059192263334853810325447564986675791045817100803997253848083693624572890624911375239225379224012465069849527992660581596245139339433388347324182289118818189493119782640246984279149005891780281648871048173719597659742363408717007863160146112945453600164071612248242086718144200055221203698341167628385372734348393645561029353600735125202762485712927619069383121747649403424617208319359212111491077126890818862386546139424277880100010168472324433004348837405844647521609691326527548435462995854654406554650435085794844665163747968779639371613506094547477765161578455052083483993240508538003812767636987328841200861523893712288019092388015255692349425421439021264113904924142519521257394031315848423109386972084649839951566832935383666726380807880877069823649699827974159287271390806180597211362647990706253808787847119464900425343869975313795509580106332825786222603670237617983292870689581737923698750922891708798618024593770587965813968693066094983115120860598746192356104204780627645637112957712345891984435816532053511757626878862149111745412435153639075332621444982113925217892688052702039049375826985521100267482904303865415006026605643705936145002834657949067541400236346896773129160251701490385078005984882489352908579393609350544433908398260191958717004533125241097160684595020665098398577089085268790724680893649611827852514444937512277080892001936028647651804904708644424501442097870626764843194482803763821383347432665838097917366654134752971911296759429089063447505885447349121710676043419857994820747309010612357002404889767638202522863416773610725129160094124071987910880019994741281993937410827905042547841883932004912538299483787548897088579126075604401071739360651313291046410432984074888210215601778323372053461858035459693033856879594765616258647755897623084870425247260769656037104811388800490793487132816716004495600636980317868336149648310359818742909358086204611108767202420734354790945900745911084382292113778274199963287659875179629803086974308796497229865874840618415080530811852622038828875208658400789553532458594500090737789283226992286668286142322597032070887659340664204625176335502859508768467092533175521035253122781784201096019526268490206667668687270915734943760625004213067368302305988180103722521950179410162003156859000641458932729209611241900956734105653985850723540785262065160973498497577590268530707773536853211486817864209142560112173358487004212607115836773999024540284420125320909578888329637135383189145203250706529269369827869904440480358264473237649792269213586089439536449270201968620536316803998696065116590574407950833388169885137478107479499819582511908829727340567675802883606117567519591507188129716546973102261403259624243501596987186209672908112826905179403695471092928498063317367273911835287711361323580940625684742736570633881315094577555107073219101760148715098260487866468443285703113271835075483266965690762837310053717351159738497607450955674452630991865811487449186842340557330780043248767248186771634978410922672429915278095813772190808183868526473041058132050187748986477657622127377918725341180151383308286882154118341294027687486258388246065113175108697783796677467114623399688191724908702737509255276130242615376479024388054642173977581502798863403630479497648644495903216374482613945328778142823665943046780441948074516786115727118647153463975210267799028151401737795485544323205737938628716611250240695878035271664336939546520199505391566216703022357663447706781340543832335598576833160673593472679972175330531497429057584461583968129342810054470659144934768640770615051246583873815177598988992947703893705680369711812258135125702265545078684652329847042582520497236774094737533010018164776472678547293617160121898174617854790231034218709569865719626351003475697204847548283420234914961078628926362892263747278657361219993956894080008093760160417467791104376129942844516636630758840321549367920013102196855752123629786467219252570088972786693754713620611692139404823685833622327640061693523848528799601612857103914608600852575472726024086977931174664396240247624373199126031212356024823889153642390789572453708096743357518137761539543015046302940565042303528851236563255984656541584689396301131212049226721021444698231730495648529719742383969223061699190921871869462353025572951446185110622834513820151863608976815905713490537870301600003420724098047263504470614890379842261331131818237909680088765479388880632520602845087146247385208104205571219449682651297999960206097684663644585471005575146174462617997206087110125244227887188383157169191684075569409540339392233964224942370286251218208653648583938704840520168481825944112191182679562450230808607139274909130574654759209778322437232252220883791868642237158965631424222077231035399967398356931541547483028147428379433427332625118098482400495957478474207095789226838650081518345701054420026428832716042088606469939890148149571639129607407943719756912161100476074871719356016816911629399408850225208248861116877837410338404527257650112953290255005307664130777002477828306897025238183945032260685023235181747949064627081010128229312605634365068287352566242094909028292303107821199765544272901792478423393757229174316079686334450806552716169389947643682019813865605355464709264254773398204872279821063666286379367066538329937684901451448780059670371006571908225800814152057336485066369520154337948006292397541656383750216997832143623279865482007696060022360793572912551357145546103043076319194207972254632801604732951838899914923828692188028148961558434200046024756763347440757694965039984250344147637447055569401987505161401640167356270012600752798040093333007026114659725800457319341913389131007583561363127313041846597533815800212578160114587701945064118990519925281596175506633232415411585912232023294167476210033488097866469190533478259885488028863917927916977300353088536095001136426182271563596025928086245580245620978594939810310060782761771718623758527922112059390977642395163596239792436563830159877638780574422852135262095730903220524182007681890743733093063291173618461554099296280851137510591584875864086109102456261163793186915164268047237632211605801151772304524681723428633349949557084266798664776767190872611265925655808567774956600867011031845773933129524054570709807944139733413982427143471295766484980590805744472775582693719031260761173386777490288861245952076675654679197367905577620148235248583295849526274528783847684647130565336796878019824298854488445716074767825919567956571516105458376875048027232471048735277137773489147337987695631347909925612993449541228607514421652841189298995551092593715907058095732468203878902586297468013250286881119794011373027182646711355474518817347082848305215774729003604864346894066229859762214395669817385441936252237630597838953306186220167164008867122747058414450218813718487957759368772149849648829278027615427785972735499294370057985935798277741322120365741254944355083816664146092966193318261441497815342736424647412116582820229438703764285194383303562116275082388653915528749858911360157457005816111455247365353440126031905857248009088178101964926653112440712653357302529375756586643451416489410178604141547721877101179153551502538659637574751414057372169326911338087062710097685860416787510891890344799819508455243912697157353174479850823871872647276217229431861213154481168893625608505954893613651090890088497710907061378699172285006390750945745161484525327355298452154808483436732009756967778463941180093929717340263195019778677409717476282899816772338025510705343358160960831692139157178842637876709979435145131815589062394190264697635931876747124804469554613395425498956289086800850994168537955184357108049000613002557197126135225205138793290609365110986443904926700712313279510014416758836329460544615368214462963915668752075227594157126124601144248932648116034017189899239656665243483641985770679712222214064319772449667376463229029345835517527577526926173523489023035561171838018245074487125967860718965966798607633649700680539793243716831292693951783698039598458547546361269929056542591044682711686397251738971977592228344411830183592135852267068487265524287495556471315877148891088867605806449312482910724539955466388919024999581120577630211944890408753370419368886794777876825446076308544090807075076522869567237039451199589704667686056018351546412837399951464793498744100080150876560085459020498791478152209534546454415397092261738010930004579868710573933471124061115750999605566719339154102053660415054517050338111642572106208945946018267391141266517399724900809771847039022940197828878532993179448615351247487861915643810465969616057894644991624660964635105051686537897470559628993968308016685421849414366175366529176801637582901480838497637557195699817363714682249279216737836464078800353110983454603719187826301385389954139931602518183241368311077990886907335056823120414525847886877785067363674728199552313883811337082313802557750924132872121277748271324327355246857176692069247467303239553241073318833825729463831667093131312914533754571494177118072522843260483402667744042311463777548451174389604673696494630776057010180778980650973333088708034863451389308422208223972278854808658986764621191728052745604519121222038260277138273895766791428002717643630715625128683175882129293485137489501016630018041016495104982559577016091201021575132187830416239908214778247280181407704760302308141643614115274997468935643857775414086885464049102258002556346546672689754282975597868947930965381530238461607195204821800972794517075219149286254650744114823751676622426390409760986496921645061298859125875272437107907094812495967476568984158875705716809306592171663102184721684046707134308571250267541559888837929389367742017114531835437447622335120217856212288525948197875420577182419777190307759627667098186117799477581769116751090655705869033512431316326394200256608886448547498647932276592442375795318193710854375539204844335924913929160483759613118167898993428344128644129882454161234180098041296275134975069208171917763497762225593205805559385274396094985698526219997167858664840950304814499798422211792557898294270757226536324167746434769995681202213385469019936734269365331137802550588405804287211355477218059399596219784655479895716318894471045829470672034205086528127621861014365557457831735409978675528561360032793504945975921834351020582212000675228256343103645009219835896219027236162742734387686836568488323773754989741886168030133217453491816252274132921665157103649618086546810902611274110965315193616363075309431337136795840551624349928957063512590229651658805397486500667674251846326763610303267467578324512043924558455675010669947127484483115790733635970964700644279725050588329644955745344632060678088142482446935322963579498248082221034864844279440193430351082680903817319577176966523527709845383010959889960074646265429664805912097868331507877260596218588656233221875852344930235528269431335025010774204323034996976581917881748541509237949357661371179238169495470020575605413288331734401757921751896753282829852987153861232584971390241787573547556046188108595207301154321203733715245027616766630928621789853827344344560928372818310486908681344957626558600126305751215641091603492252986453724884477055951893881849327205634781498016602379572954426686328526839726606513127184480284111231649671207107787338829493206531556514223236936295058187857282618122300236125117895081660577019165968215287592527671654300958420442911218014796064696392800814124381179951324835805531941480098571070516623163322992077739833429753898990200322131635375640554074174704417345524658549068761659227898408602256546722885633432591363226250658775314953568845013952693167467806563493528594432729640312330769504727750886903995118887762799256294368130674782953959803546755950241747365174719872170972733186186889141632128144337246723038907593559155659384505402601408561267878681054596725087306676281327372629413900804578416418290990178807576279417607609899861296729901890204356916698535497386202737086781738923024439232607705261132514025929636498707478532354136104819145423451025216309506454066815739381381927470034787159852155969378260357481676370512009110192103089738054630282571819677374011008029418320429428357440081732511486083127806605432992965864599910265871365448296208938518902912088793056196736163642110084282485178104161514588068796363538372484487533966731634421766692333446900909418593517103636622105600132383399618238956560088604244246628821545845394765965121847871314925212318822426464609897405595025197180161839805707792715605421834957964440649842220538063007760474848985363781026383663029622690887708931595697940226770945146197897769127485407016846020669800104925975497924003770077137207220213483485247849383592058929448823490314359133263959526842306820835546321427365409814518128958189730063665960352045259677212496391779698738261387785174132362649931642031846656636592275699939916745414646873959162735893416842358663954511733953677519969799416368935897863811003153961143911944076527874878194108889489781954040461569044348698848488048656228303154558417103364051839132411661914095922915859935049136705668972588109151662519050944688330408109759714844277182613783748911775433813191004993194456453125364372234856647382867793362090084789724179937980037373307307042643388833848538672736850851157935107503998678910648044909042311552127916661594312633980415156679809745620999623213248306873565695069463359332296189310195173542768061987537519243840095269012858936826445461708001775973300902441920730806014001054360013050362075840823864072117750006472058212537927257414855696356117972206219404700230781693698186761078817104985080675738906410891255331630683523567467711828762992477956929085726009925831121086360039327554838734226109829368510013857776559931305546415802675340298982329904023997447876071758401988906331197310832905275966768417425040480669851568920777142967991698893701264397654739149579537013503074907063269834355491777451397077204307557952856740725626741305501046302795594148703420613809982525474336824189041198928510789364091229837148892235296542319312443209353875028572769345585909299281092412386255466415898173409184336900299023132273458770448137550150310785962320115951656279134434914186674856660326205916164422549496852463014362795641932097874766600768038700870531948293771326927897249036122264979540377198463176620957117052986311645607648646876850949540423830019757203406899178159867784055424020418636442196163315316901615929455611463236499555709003752272054020029027821668313097751374351089241844261955976847610422081415825500907563923870011154180235204978341484111491532437837156881967510113484321338423635932445067418167674454247119891765339249175040365610958274912642930257873490259129317478452696674798165207187762998963861772979298549378647912913437944785487218325590501025908739393045431950698600029916497766035311870041477783514025504439479936000371893409856157606881094474646143345599046874226115102407054470254302472815008235868539234089707031355366366393703661259743765397051597743073444460159077934126749784560456577868172924596856269340395787858094151062680215665485507951571511831839436686033323712644823488866727456541263225577371968443268824129100432775907604785283137274981446649946748993155642594990953416946200921701916898053643001264857170460069529423316197752795270507210192474315647427691886213585113150666558360618292566472870786680689543357929997496974595893959466140746512703023005283805875728435129354972881167615274784213828163937727015270729229021701046567852420220025045326287106400118039746618988754146673099308435825774655701483263325837309014225251441720471497477792859801631723885750198587764971655832454296981751250649756067081351279699982531706950355800645616096312355477590739144715146096111333496962204363421213771665358904245547323011358884951172395175506709987394700276261537061488880327117433382487743328909381945179424218577252427887487000069849025523142184295098876135021855923943165964521470655302973421383506461480077102637997850907054344735676771956405596005856659991449963608087157136729999935210645282320240158115354306451241523876951749046461839524587531595891467357942195107363842896174954606190708304424975108109763063492649198694885884509990807866593579323763630821506574478633396891704745585090688631179410390803664520330201277394234229980016885584437412931224649902687036919410213508160975350556652872332110628545102176482096393962315547714106813194547044697791346290269519508269678563490957205604243415118103422204593287338879052942958568488707019848683454081136662065970164263766550237454694621999965597782984355886414382481616363788773799234837836749700883573430931746949243831568970004117777463018550078338547714563382792739915736695330976671546902787880341042314240482226395385033540342033737237775180807234596306204809778213723082199064684275641442349052717169238497498398534985351322161585840614009403895665923337089331260118118001682919624622283102609056853253092306112968105147871567697172718120920601615197637776482833459411492608230890337092207300452485323573729079680115114775026820343841715685577428463220500411224258578453751297547265924554149916106982755800922364520328564141061278011719678519117478360525699144375882266003301626070248148386345558218113093725544482919848453251130377321565657625446908722513839117091100774956580742711854233952502759911621139605442138740676970329522502365590533817413172564350972913527985199057896635704967920900264976073784428589274938474892121229305513680184759767423270698977722123423105594620140703781242409754433469754773957965660242211212730364141547518086294177322138944673461943443287165125507442806160790518921496089108159079507521305484500842387909799692737919254062253649663019182413957591512684334482085105001190820001260107336567389442867888852935708507978138663285758376544102194408852432298606125519982233266917170395478002697550155242237021784266773362378119537820859077493516157300468339195695143869957835100678238328381289939746197750357551689565379795483513060240435588504930311065306761060320921538470441516963427958329407655296201380472155061387221661954295544799381765979610254146231182507911504299866225610138399176692169406681914521178549106880277699007892317201604610804887309622653047177466665897186004213377317489586167892089368652401252035200504383358584150302276311466844775992069235629215506676531197347827672242290306996858169784774063912899257454745343902448986915259697999431241351124059117790722774503414076229373177598902657743888856224764020882442532101760704519684246637733280470227554358159383404057353389720732492154116135076037265938119946751049645701877531977286347660844450822099347890699500528015743029872883193259767331923194759147586922812380181847651576530794417407474679971318722333786697585783583907852584745073377130146864450327942525730478805822357408735090923410000582300656189868099120514098619429744280310182685838550575744560273095136684206929756778272361932439435156633692769666137710033380153961939755506227663344361672744396652501091211494115870371362010057287656462231555702459110446555405446578001129871764171480927060672380291434371594126475950348166176615146876517611224028500974554033575365316522962595638621213734543953734863972057863986686811331138839708103227720000332782493225116773004424695864309624505338723432620823241173289065923284203779546233388689157291972082234021566541429017093821627309431888734647623207030294468687832620002122471718676805168090969864249483389046586852756250742572609869859285054034985012815697205643235928188358427598553344157348155339719152418221548707824117877302624322423864020821551920582138548339409017207312701647864383093077984492944192118136665032972423516950524045244006100868175281757803204511344553105380040236300643168167145625709507400181219548402742222909462846477006044248745809509581022503858978450513812666020553173483628047774487292740664694704749043724375086396979642049481940468960569821738375701327046657889665180554043268051372157650063701443095389355133713542495656804874426814895434456462975094089022084283813669989930035550413038979924671611800930164453674707128899555501814498992527309278858236225950642390479660688646546455533024369639998695565789827014079269074536825171906963534692311525202851541094739736944254691615622629353723967679260705694636823616197506450830883069502173681478691523355364795161956279408450430381764813475636951766367566780733914535400584683722251905118375019720073736209705929150313338403725031727517885917981866970554967392433345232832997973443812300272686340264919200916401913827969608610470277682911702000526025815290459662602509682019200493303731719116642580544718775980682634485770207772468052109619487704833046587892763194961378094490720084662156113775641654123307278799153816757148686566444628624580994957427008686784012753352565458463253127845854613094308015240166939850692298711619611855290452897532581786170466189100425967274551301379116089510341923152337220401116088306849574278466222209068615423377922855754976251902456676340493356753832339001028249619190621402928928917719167023372925982714220937982908124464687206286176532096230446297165446711398043888426736292528077318884161053106232751009976646494525665240607231681246052706201809334613460207139968875226578981778130438599749700401857851969847446720024234204732745308617677948977835110598778574058768346787551969582444350094192519224622020859381261995689573925541811798692623971507048773284261097370435879421961781145500004776559552266354825112089232765964786950461267445269098563708031557539348660774901990218125854717209087593408648879955492668477400116349996147599054626189719123860712093362353726328405201047176042574095083774203359582784075123488995952019066457469568380194674111940882757328064098221769866166496007644694770163015988337767941490648428253890661659114708541926518068873345388196289811897962406742181810344956200318369657075667573731237670251672649570191214588263237075803148400504303039143938470260529198788928877391723933722466827088578052895827012071563457128560229214666886744293265210307474354195302704241832312013531805828144668902052583883441182655224580006031074998955272411464971248164681877054354634494513703642206652341786249186746051872887542730654584275423161867929112744337108507251781298195035348847714412602914838081840733592817489833789506438960840231736484795018771007431850705344422983030794758360665583170136348500038997279719661911688922482048706431645626276931224836241100073137689962358529664754094978858989996624432114549475345023361377636839831574987603420490996178047727424544105408728113728891957514867218179099604397971563088593059308180664510688729466679950624512416630570694256434593680542464315830090521188371728173041790070276670471818289222448263008180294082906087938261664437441836914885915255099446906720933234994408866794340547968371507045001959043189948360454903164319330732092074250593458430071312021695779772592460574149171406399309005444526332326240132372024882393678842574553757539749081102529761022623127196509938614364586802962754349117473158307673941381284210209394869482984130499744783059635713791654806735509887248551822910266868286688838640592080658594625518028542279930129662395214723482337255463251215828094326470491129822572429893343920020985988271463794941868814394266846442299955593264335710039808514572740691165081996323356763441277965840351473823712698470831923287890012480914305294064224588145835795873726513005253093559097662973201560822852205824600090988590689618804123902828228616297151038487499391295951600185096939065610948903857796020071997469979510384203339743778702886037719111031154860553418108918737810082773933192826651066880208882614231880977246470839726753175570403485364151331145563578618852543802510852384669321615746853155434208707014217647651580437158707951358085442714691680200876818025291076123211616090378741790912519737476149328432065491352766535258496825636335579308505311278737692246957451388904854435026482449295564820294070441521873449046700523405406274893177027988076442412500240637331580384526602536319490019001710342441156657153909232142677291058686398562120572656227876458658228142280258674454799088019822302074679743615414742565875718589957263155362555965629456709255362339419119166357405800392308621516029441830754260277784411939401043661149743240950279423341477612397742889531033095541686844501280549157345147603411936413732451394219710400682961904306313395785978039220571691281747094941639511575289505267078725743148692165710995270739419161838638983902819007636136223257083692810296577219889375405840637359196951292044728810439430482578141886866258054936653867523421796381174980410799909066699402775169965067020780522833440794899802219775719729814348525223969247523760932014054292898828255279305155955416842760833521447167474007899543558548919008003930427111536294831105176566139257133012216532535660564343050699345874453576615307094197123247815479499047433818144550375143737386437257981210826788908514040654995426190708848502580393165421574955994165021146268954767978533431493213784362578823608263294299446527980840636969607165754640605415362205290280369888899438007989822974652369295410007140535346918322092804947050199499963335264994392860346257320845814590145173753552778365643061158432921015469724239371009136286548033762650158399904032895833262667973738315287075624109796562042919857990393376410345958872748556577353613821504502095391180183173031292832279753715123935114945494242412095666242137180058541771008938003882632537704358395854067592316251692094769679413198600235471878063142992559175610984917390555737583431596600322389004877029210915164634725878626337583546832717780722077330325022319185921555785897241224725068738048883495104907427717595096091285644270483875659604447825957656930521749086766462858006286214952436904015316565283845964305518581013260707939101546570692874729447427788115611102054629707295393983994274728319947184620133757568531696212754310439892630129055780685122247376434617954686048628945999681125313850488140599131159227116133951709027374571937244106396817107850141059661000878996847838034227253568083903385835059157663814880975179733527222597197683499556027141028504387961971899615222184799915271848538983557542957105321541202112736054330179439655330832838752429301922387499838523946024837704726527422068804928495629683317252623313715834742523415959381696929873374731396516205227923132899176558248971669579733003909572867600541515676151852044433947248872956170638496789177815966520620799921959734304476025605798559062574413722925434849460119837035276166397251617075194158736922046577949718736612617714507794485649363325879223148679827871236338656226492002355315320904709615903478201763357056982411192346335220952998410442514176631596927443810245647933768743607187355874206236235819160466131580066716133390590574579367844606541421603042068917984527854649337915951254529248980435916192043089815485177917917186639102921463025446391707722425260123709369244433269728781457715394631636886383290598401463089485749267570201210087819828113370165992205984873999728821843689397747054400359003754262976159909967852489600166559896131338883687796519342718193992044729352922987129649464870718213656488822676764543948112129060311827971098751872270698238724896246982259889532992418083352671992779188454818575970777233291504746166166324257245324713719501412809069587294665084559290241575778657401171260996216804829196571064849492604011789635799150528876935245100353082107983662879725445601846281473755885192794712440250362072024043841631054310646818789293775215368924340869863045515763801216128050158530923457758538564540415876704373653232694994376359963925035926896218659382239102014231201944153316775486795632275226281104516883187658261287270249445647109244114223673121785890990095285281103585274431871517376493662559003329448578732427372109021536153895582656975913168288228038533620966666943888530037883477669823134982204424789759979524585976925180245755232093112641476105485046277089348910458223122153558294061362851644289536647286966715711977456002143712337064749347488801040270820294631910892773498806823041966782767089196852749501429628275191262922575543276627669997238120929056329952194701053588460786269613049999587928580161632102179769295225061116956651127988154950884137943780266415782583382305762507952315772671414086597641086923743818406754960047952643270908569727335172438313149989180815332813102972415022145810964927024369259316647344276405646196540729483956884984422115021345423980984815380009538007297892555034578180882123050089059186029839170566778151104712607411423629161647500787731853681319795491427492430997676877370295435492390255719259755695214578431063849497939183931901189816127197154942564523731090279066346739167179950698311349399814036738792733938430968489206342838980393318202604848401615277662406895948588107385002085786523235526900023128888362538591015159536780844814925286245281796760352231715876279546173041202422665652283380184329289153824940158859269953218417484064632902916753940716186048920101032859250940055986773692362744927805875639782783006743393381586608479798196333912291893906954255217315639539239483364648317022229732345099145201801654399325461058599099604218785270129204691861767330723694029955787894305751472416010456083888999596570210417333917476783976683297620750514651823403908364418398048347903273102053079032973349030094952201654665921896293565990829928590692508118180903505977976860649516297887638295892542448091384674304952499984771177825137666139440263079856923879218351414605760008102807333796943695954933025356704527526142165313656746197064988452912666999706279979045994220054191781821627491573488192470005790898946533196384310180557284304690643075848894727551358150805443556069470795811933355259716962045796927135008920878657376553333372681693262308599372302464698062644803218856123651175527779717289945608547287503277623078118290162002440796321341490601062248304984043920251317471792001223437274100435399198701581945405320032077394287663630629487170722909982200798683915871354357673750745884369852416928383263873764279733826049001721097144184894747314925678836166824030077226560170419033718973052636706211298169059769323470858475661664122919086820418227315468078094700555277189622799893422678172493618304832086243436423639842515150749193815356648643287518573034338444341671701517770474508659064525635483352114756526611076148768155783792399145241788675607938393104946385344904882303146565601786285102778369233348761355773835367590005807964012675872045245871848745981788592479242804304084131690506961020775247847005255926017123584162660070547873652279172025370683825344295384715092179021391732409859280163670429029530349062078219403879295137486404858189710003336480326419069635657290338975935215166489707795308400631486944539219576308765196259289746255982105956415605822270881171306095235009017348738263756089787452165675842506382736945800233883533582141742040851562463404325829742993779441434019656975385455006838025525685680099923863249773357456076308432973971608026608544702962072745433193116590368390779404239731112128577276799549541172675608892096471427676694855802759388977089980352006334623388934027904538097990608199794498136997666377598439007017249041969399553105151069063842418951994529271782234067570461961239001485255847479858620472086519880994776122350516744213459813739307940231594400840208523050762415241034068000504333287084073439280177624357210337641482433703530840834106488547501386090447404192644281836612689167192522350225305532796399541902410746122168074952698630296953011800697560159899850439549427081249553914917270348149773350395534334197207809409642416788276934818232456163057745532087494423295787070882434198470474460161729562266483727883318893161006863330068735428693867109626044837796485971994443643286084547295468336137176042612077659405237396348288948811522933221763270826918109933389380303175847580629855756421662387284803885735062279506425982273207693064732650165389404757299776154821486496204616395985476580520432296950294514114842620701337613343627075828478899629955259902642007445949452735916786641896632756765004301163368349427363780562028478355436064649376315753093943039370004617331989841651552577547965191304325862200838394099646657273304190432597219350333981226922862356211640376638790515921306195764958950232719188585963183777704185005835209497229139836298926997943783877446154753541388381838842305546270527455116067412895361981417666605602927807257601438752026255325138402954079652656147902934484204199570761712354453053313339682971850475241994881193566543427796719753686133345294802041574197200933867823718266888527845090583267595747735468673412043453251941208230013894631122694154230480082409178993674784527816826893027280103258140258444985443169829226234485653763666059534866861841592282891881344580863246080140615356988570881112249738013020458972047152948248043131496968286684114109969551423663058977424872915990721490978505719301464288809649744275424612600699428633099600248069782141743842529657335500295290725740231086880573131628967431956794862408675417607392036041397759288365369017303868314344405129311532870551837374031181030334329757763002364289513879374262130220783365797218291554897899424902792059889457969297114781109921504205173179004993253914360698374442802665560530953585713607575578679636966012786765514656739115626049875727714437346655529381537231387063863048856495003151624490741847353165785391577017746853054734218527529241569240301739010611192358785162383048640080595524088820127963386082789807182027080128585285651753778605233371215581430892743343226203700768669424220432611668170929909895181337501200594217173142278498253511496900253303317813210690281516679699584564173687918243681047288119419968609282388433355941297479237844762876689871212263417556253480667856508258355507382785645282340192515310440672134086233294754339592629960138574237245761610505173874167176593667162418152843658774948637147228117433110776553548045228674234087406632833967653952475761457544741835383775255103006073960358069082932878362125122613444077818898094455408474567129542189370364369336978001630010245963950855060205010723920998363484072339670542626593658875183263973066656565812889200045854483997954230722482346520052707090574055999975445203697796290410784971493904597391353315942218654273839065795612296340443085803038579886758992780227004154338982232767338029822756922933321729551541448078652852908211652030142545636109142977661186990732229621826519700872573427857796229915021755317157949397290844706582993969440491532414115394934576356925455696936934095037590109188562134973239020278711551825888982103356746445081136212006503491711440408291535814022881868744227016887529444001913904627202366991470665738869819172222302667361766933504434595192454432749472729478010804988472724816948952482293913534649240569473882094149030028014955833706617629294085659717982887623880014153201518521450675999536893944315977049374812722512417247539191947342597884703884428833654084997369533775987711965626054515788074785650301868116190916429591563545781469911446513945850038614485590314627574603412010570060141749955552247046725240938049371189184871652070885580241674324392474197065294063666424143045379517801646828018393249004021952957602108079917311464467113570183662231327721761469259999998793966911510309407253687398328420002397300067256060508085478050784725469152225284448445341225653868387270218066311096786549447662143666575137061159517153131525095879986887323020706009872987253833628219313250258949698930114800515954098579140804620361927000049572682984050848983864507229570047960013751687597690854198607055395455831746993538237629897730820064091853459675148691144968607606605581327755426823848059960030657396743850746340053857686527729078808708117710904169305630719240776559695441658481192264497405324478595674210539613887464456480202023048250087490364774058084685793537285997997608081058845798146059490899660996143623753303365434190177853011086122665054817312535967960685729951164598633658179106225822025934953498299495700670062261078487837474545712804262681113137007505086720596841561640958578579446362896358741948505424740450337973931197725215033602156802680709869421293019540924083688009724198104804670836058339598912149444770483916374031353554100475413439111924076124672123288179878659240992882021125857988416170409044578127966849177602149290305044652988408777199016230620315417779404765650690022560642082534388732466251445346409755286532888462508578557339199654674311896625054807490159392852275034707788000373991514944968177421449037296721456876793036988567185800261987474591027305907881976940955301404860018935359631650430071137590949711369018707714389821467183850170387405736032734155482881553901681942802610280562675410497843678964517537868240486079545147376374521694877927714155595706054376089997955412781770176472860430764162565197577918976275696244176598608684030441496936691448979921113626618638654426306899398479362412591328161426167793210418297820080076394346842050324429798242659615337084382984834472581240263689383523150876663393280524498693889955429550203391594529075852514638089068990917890252433585036922235540789256364946773878751519315337523655301780407714378595497479529290993945577055406770816721493845335707525365778581034168089448490498775998537126105734959671582269330459176931248440951613666049187429481747174285385415443490410789013228483322616459494640585682748079245245013742456454824087326422910789169669124832606202436424148297482350794138240512438101228393075666370954931776421779356776883628213914800117734081731115776993786367330398376337091854659414125753868575991699325036464163396860364583897645030329322725402775761493129180464430538530699455599684076127499853617362797327729901664236155412897515399879040991493761216384469557506305052636115596493489766851635450977208090121341135248670145637936546177872646948830883205107466415081566734916562404667802046159596400766454406647368153751333238881528594695141874987364603487728644787537657135360190682727953706288790543265498290248840815297700438947850216257184933784113540874487959912431256465439766203527200342375284898648606105050890547936150066697438911751969199837205807439314736692422351706297352038167964718611647416990853203866969242118233438816167390190070262378490161924467758145569320358617758067373475065574135896371659733994713845605775899098776379063408437174972383826630113627227994489599523658384732030343358385262662949868361634182195762212781746781713864266885514180854892340973324088791003999699872462280061653840204567901604774278987886684422826937974155276718234032054178039418929940927152310687076814393517187689215775549930520681161877489766102452717466666297873734164877327558659276409749590965283176865806413553729804573899341606995423934394388728090855985365152484923662486043103397275555554084280883258208106116028382320651732765412627085071410285435794204377301462955494554948097101293781941719687323516979125636977170538876194551749135559164819232371456874662278028937817939614054596732003682730224180783612736014904773456980058511964185623468997421508299710772923566763686973865104946007103612882418755670339979848343696435489109747873642930240515702449888702348957332007511518219007888414298091717783520817742051493488923441392681358147323550283878784649813030816354723954852003310158302146739782996784952214817701483773882145114913811173727381022836021248391921666017803626518224772034483209239593004777881963062086596597877938668924524397408505337717274537121444212792987816685871165689059370286704974801321807540840540068339204545840607542534400811062148529498603678688575831289031992374842273475060910101258195134157985404579029135206360124551894775039718838011613406528507410842983733082622868624533827565798307117721363936541767573240122137793340828753942701923761283353728984055870387509487426981994812586530632199342233458099004538856798452208450150624663299313397315462151913049068806848240083930074462233520424675636292338276010239339983028178658055881615582128588678251346836535272678575625627122612630341608726175131841030376376891834910298916707470976623851893173083478768811109618297315999173545956604153122079468325548302093656392340703722467599235556435844275620499023373721685115196507713416964528546568584612593873270654090557435000963189657893908405268967899268119505602132423050038113123096628045249445147730520809140076878353520823378615255548958604337387958681694208981280737116914743012485776733935094193909743725321998260101199207578004464739460990755594680052683314148128566673050858666221514279664295271156668946674658714751334870577331176130114457303567415223106774206670804512450577948612516692824253160240726301241074386410282085590718724422609844985637366905324955850371430658405549000902015057945829910860219150819746758667393615971008163168412656256792296249801555161636339445511650733255721143962579370671415674513225465040779603212128875802558679875530039292919931114029863100237284650422679970990992285921407370177817319747493001112881792981301655636887110873201159119380938122683757096839403094415420704786757188623903663748737267786616022918438642058967439724563279794199370033980863538959487415405358696468153721855302035909203902106780445376975705763615777938970823801063428374811602038997157797050663332897995213191589634200635660709609275611824245183109586485147272255078456586021705922080798860410834685993156922246792254896699703456905205982684092964185801186093985832722312989533435277585267725924945313720165826706419708422161043797881576204520066028120386881244334245165882570631788979903297465214763072877592447260905178905281128916735760875920311173523602893878101168313513758822574067449133061175371213145680023380704744086441061557785225720477797146491518938558849554988982776777695397092240907660193806358955438514087850223448389096890977991713759390236983113168988115559625058280428883693423460688871198901793390590806407491756947992478175966132130188952663189004214882290149497050290845518055914624439614341919956339769378054519217359651882695604421085570670439436454914147166290715574036808650102789475567255315478381994974040983667029830892986397647426213184328395537812664476645240942311275923820232283361677970374272139253851694422483580486863327395044661197203968291259062111002241285861068395860264043319116626975856408080025820687921900639809828958572597610638321982740380673434089861549735620240898489625527358227857179467498625094803240806492247270826456316383394831816464857470956804320143750030683494252990584023455407364505480428204751365698431282609976318671322139262288100842336416241265031724586852684255488507296398031208977507329085146430064645423909241936127704308242269471837088932667973137052419134768736494626510501797455806905496962766003717634453848764592343674751598875801898338839664472448434817717712002745839598958510820656902088635827947165185328528651843787456881138782317359678333146442284229717619752188195445162436295713360985387510922913440590533576700904885612699787650163728217343270727157884087138267376671244676715655554905933627758037112917858295958701441009662403807357509125913127656384200913056734081242861063893907186027320959852879425655931443729407818088703459517693627211776296105442854674326051894802367386740323014035040738106449950741840482214856338977899381330626098670356331278240035842183324646581701809780575828952240945617371730559362011711286920705951176666580962448251121783249926175554983775699685316351105997197872319420007227427732573086431936524512546390896716944487375220683235093934410546370113300816942984263967469426685859700695432614150539364253389111369018354201288430902188830538332801988086321883602522376632293713102876642421978978298087060627342571942083216785583288974702045873942855965521294002173612730334683620837367042978030865777299571696623400089161720909582643570641734301482174792008287859775860763517121123723094897219150059430421084382014302796947613566487832653292349614903147006789677673938601792734245258013899583261670241897519957713187802389830193756274840263443801170595237805780298719073972417319420181789863295898399626744578137603940521990001297686023047579108723108996217962246051769118561454165501267466925458844032385206757411260523288833994024188295897412081661471300495973044370326710930239509102544620687422075090194986118062678245019035828626223191766522437097598212851884929887917667867345531639868171157608786364370000619852747307679263138143201283680026123997540877581662263906159948483080159742244125748601816087423825422464643282769430431296062297893246444180602289542692878619532139878751770748918363483553256154169639458488287912559751841553290299083871901776702014404623270452314721968116477779965435404398550541312166016392113184930316843936093914336565648044194130306723800396602812921406876859923352403850154316531407798134391093842165652321395412966610823268749902392400781894520078107426992774012126559630777040524883405461971035167185343760549790794527089891204633885397315158439685544955684608557238868409988631552227685763219247766150729598451480720527661288382188595882039367976382032276030881436809447594418912312410597851062992510746691698426167187387816832081548601430512967822090560668497037345864982226154116320029726377315136082053171054156591453147691604314189643249308707139561138841751245950984502362831533424160388643396477260105254214651501323851573443885653721516982935463601610297936411253667723068901320646317581620393398564941504288084779072316948339226987945842246166606917251457755504866807207263744523628301640996786338832704870857942181833229620460639194598383494697967193132372887302208540336704474432820605124221493075225531358817343544578413627090152488726030559232661552646276167937865218379548288882539418538321529014411774935679568318635943761066826955531942642487671545605629045650720795080841850203519653948117563256921192024032450653773058834960499797199434088370429963145610372747912099223933432768276714423447276768891631033699462549885363883604163068615193861405695039201846250931978619780173265617781703129446426968542459910830026937446673646862503771673968528986610051037114963299051162591203866505608735042620329138352035272588019395487582702430659336135128106696520672858305732612672108700167058474611215366306211437959523595133693303889979747601610478997258230380983935475656215122977881011139784229714128297996544553929545317348301630215478820391089358388530806433703335588375202337607200544139362243697735200473083962423717991321247718444824031440542349562673473386143830824919391181855139545033257236144120338966307759219560739254617396234906125195269139979730675304221319236933754659145872791879520982223365153812921219876603431354844062473402538451205295013293834136683382160780736379507040813203443453930243143612705276541228565276214590928370266358256883843642347269528466327050241269867530056908485200549472122095411563039851737890309884999378711915667698222051699744118810930589506676570521358898816467962355206689144548645929203681924295584094003499547238639421163853927509701600674564866765300249706857419268059730028838185530818766465440668732206005738714246846572978811524210504174071599174576847486436393797557212871063828802487979771486250756703912259268464720011544995122563244203764976267243870968720204617375374075929756726795206571248435804418624073851367760686761660956442643808090527010349766009324887545363760646024027046026549857954270788927156596228774667439400083316679309865453090650457282178695350547061156521594079275179319403036535410319167127108189223378643330407602793267689218904285769210970407708770483251064823525317372276648972991796850924669810895295074375647976425238954524363578424232877785347586823180835948970977458331756874677501879670874064144500304346804117860184719461741755368901139486694283475069135099151053830020321798603062959927812895373343919387908686651637177192430346811742080563230540627926213908698370938052794779640089903546426623527884227569819081250009076287959430276813961085562152298992039105195719299449539937982770609770128126452516082438137740988812497649163279738276605964591066391148005088346727289818745336802535237764086977706713456987493273440523466989733630064145248748787919001688499617610877710819049873965813939256579956654411301459715466328786141226655224869724999169232232787773138226448866720558386786588598393389645052869584108476394745936940754255082992795510775743001924672871576686783736485761436188426497906352721709853680607965360764581206891164003871675309598971712933555593142454238603791081722073860832066614765676719016557219181390411858188952987522144183269656898511812964203596615622438052700518990913696427122525922080847237800131800999768629634670101214727032041498792203594227543792639111676641194089387888904180994053140173153457773421063432890132977913796769603178774406005994002513816193307310919762044320864915710513658995292628350894839302797481800482154888436786523620593411991278772769192900297063838862333973147646112737432640699413001080568989138910276365389756963379721134926433277721415733042785724433591035926593170916925413794995040563744246749878948739447217378508447882220401118884054873258602850993298263479135906476606097025345027495717944249923765372739931023664035712008976951269104863662150102246126897310011132813494816137213914470555488686751061725687830800496268803709243393762200572284883561070505500706295449642221848881845223419864164734891862343049755571994126790301649610784406202367858400557452221902339705408824070034599396698843534593460827769503874052989193372659201924966843340073023133416937349098220569391794831785769534568500163400485264579035798141213298775290323657024032431553204102844915968777717350274300253060182677449041462567053120602042650770953135347140504456308631384168067251374203637492876490183384356603065836960052995028614229889010035388462161270793636396591159573246591245166451419758266275386015537775373965174712984689234745949602261726265431634732690997993876983572675382969378980963360586691210949407933278162576933469518010314007586702242139898834315960922348444768536016891073622240256780833706935429469418805207684722665465464048734161507122751764633491479900733782110127838065366999230135850939287056366015651134745022351670013014517943649632316568141368272423326676307192961458847314792834411758474370115120468121952578633559756210139420025030335142688645912761621796517224270824225789290342585430505216092479757523535461125291359405505529322899303388527600424265335890927995564355674413196666744125480567961177882301760174974050100771813470374149102842455761735113405324204435231321310367962943594317127065995251840010677139474843940982351756466140176528370678131225788087711052766586927675571380810998543222967121828558190584755855621505478511591121196607538989880696649783185718050542766631129083357219781535035481868931536853123730199131447741920123605634085331661472258130825941546570731350479890156822119260377859923844037526117720695043239912821242511456473554996593140845409513453982720370717385134107378028291316902559408729069363516005748023791686254396402299962858744821513647952788173983209212458770589772140863433607375171644537692020376457919039206846910613312362926752073610267294156173391768792192364835999308534683059895419285619483635827691190049211000181630209227134186209134252606175771860667989151094858424335088744736762334079400226652487984524971805774423642816702613710409498149091839134508409668896974549189414011523122081783683985756399401885031859754225029526200818837955422864587442274208657277904396135027572477704738255881353711557339857542384630502543949427554962169031370294082607827854643980487483855086806148387486370106131696542414822318548214436873032729774982772126540374409558174320748214112424267523931398148038976385626617713161418658431599012019249137001330164836595736381099705998909293255885081430607711290984621883247692283202179511859449086848226341130079050662755625271714323543547885917566054281863749811805974720607172022279047508467767688397139460210670660708708195474706089320653258701967262558678537134881542038942295933917366628916605084523270658836604918897260684592062266514934232468070059908410699756790198350610329185311635172215367435387786663658477252640990370567206942909174002077200893518388548216639331652428033048520147363419677835399782467701224058936096999098722958547350647728916217839747178498463411705728843819758418492272804096948869370437041953280038314637166061159338664985161472255229069077248788121820966048649990021167368213652619139536401633854198757199931814916595917309306992949877459345953590368336975407733029385880172750231150374834362903681747322167638356365395201757462767360704019794252953274481067396060928622942634246463399883347225403920655102917729437504290024390608520774991161764655409852783307482251342405258834014248137388081971331956976904214886409973065829893233713291962943183903471019559578810172873528532053560997274933327549015221402575600983037308881955517479855637244679954932574601106230993259959940899850249052099517517961920423087073372728097544406261581031420290550602780314003153017754139915719504735772166383781810190133746119098812935324258274633967289524887856702525698249572325192329962955772981911558900819757433130648331614779267558616650831542978543123959556509059991194350809450834515336656003757281208214436829414951021796275683891493337352435447015112784524335383701157946922347964015996698072063882711582581951786750596332095869363779143113154432768493449374748001236217326035179250325512655415459643168412512615805467368230264050576975089542786062494195108350229257017217593891864575710366706218059237851241600379870878141348519107506401857692260108016391722406411368787409751537075592421048138140506965715383927896036307979808196238832714304980733143954064252581367998607139411653906566090273245434403619522523187860424616690804316135899549565222790295659962853132986483241133122368938848849317892667306512034621479477220872399739835759619424889841788147137392086179640434886490262652050667889325476062280939250607116658003802656295063379442846497362212255849726865730443077025044575762678718993389297723564568767972308265505618286033991469359589349660068979187510605317614209619557652231985936848862746345917693680917456827017889982189810719596341608704596423491151542460467585832573438029430675288374054098484954814130316292971183513422739867919416661990820691080713469319608714956204722874839969270158294112919791509329639453812434739652181247715311607940930338800104172995812783339527014311547362412979609849972772603613507447203756836164253098648872148727859952367560737668994430331662247902174744215995686467325917742487317698486199006844186630954518311415187958037226424302448768425807934742327482704295065259570969594443100643982912231165990937001652478239730926008840152420611061441665683489763160925732395850720629232115902014724645271517895266340094806432936778296910682372352737706379595765806271314223934487288482266214277622563462906165057802403622167911889240777487994393413215382392318015470697583220348265235330121353695236063904078463317693998329025601224984384891189022073131538438660252916715867667694606603531844907554376702691364643952265590695207013053633012494661201104205993473620907813440045853033867681866431596205362675257139801446868544073059120440174209981153406879692050474912614529098467205229566220893878630363502863474507157430840423732431315858772596973916880048571706563382086023295085206853339875358991838938183837156868347356731321080792354826601747614081958155160329623512460283672419321530114277940276274818892331509190200063215801580817467773343533538109570114210221664829403478248803362740138611187891486454859611802915863247935836423206373154478888082101546024279883814073080982422092528489524893661443597481703689939047091009642494934412961631279609013173618077481033076482194237001885533277236635401520293067797984516137981896339327291321260990972276622941434157485934542647807928496213877552215796986856109426739750014417789953328682758133072327837141733064021496693860030097976112067106578282663882377573266083969907077522685451464196673547427083742754969197373288302192720949807637413968756993863730680839386385336315363404300495054090132173544377296220249134851344479268062138070973542156202595463142823027601022483746317749275527704044157394828100918266978018027200168293922588539252526132615164313186230809455251489249234108468487461601383326103056194072045401640499608038756934904233586246100363586021742534285698767343159749283511610499415456516433552872307964532488180188098930868561585228814207931091240302805727339641296263038307718219946155498989959430132365420139759787591340830943224391863651961997903702951214511374207755047229759192459327033379759123444429007818627222089977854648869367085846712029053809547353718468753918137901794056419707080974695997042397947307916095991080199300165809362060260734774282463078495470184731678661257892955780978343399812525912091300351285668590105981133682984040609508882950495920008171538368089579281380484278714704084506079410917550303831364006271442808072817943412130332525982500425275093749831445472703957943467397337368628984991842613627601589037880096864212967448747834709506080505141212504677027986725405830274068173442343235222124984779000548861539548065590779883296924430471526546365455249642862576173759733095143799284949473163468423796548126871302803280473325254204633365783013267622578749931775233608138107862848860164951975914949661246422241219312866828388012901619721810523974078497628145659408435132789376498185324523891819740247646511011788613382661142673771875369222450274993902768320160300917085592136979236146713986922686419791038617914577695225409588655637369910755820531818489503695867280248430248404247250461362889910140614536906861704872517612163255449196711486624572648997303285661037280675266382825538028887585372619945892668573546535767621452348562034451572689632943685836518416063759820976662434850306924696107906730662371606992731894691974784324813646712546969542856383000905408035606881877034914207524806484336456391863072359551303378457243140604568875146506065023630395470049015308862740880928993851296278488854953177401854177541915110395328588423683507866139989370227456545090755611998073713635556710466479993992808279439598690073371440956063150468820664148673229652328853704524199128129314804018786696416527660399154303275313021896013888513369432173295347294908312106925649716484025501615597512001999335913077745966435921555539875687868600502428275364619092466468851205635606641945939912332753362455183292443983612355506379289055435901573772634039367815000097829525270429074500731164250950729157852925824522007399292814917259647353164252104395558862793264307022142910402789578512844126996269193216833876944436712913081765899457707077373103334201967560155028179857306891421573713246164809143061301382663789843034576265052607024609224202724041780069032081598308891742421512828316680915044242704383524084377892287934723693650264245605468985698964995786112292715341860823349548417299705879152707771516475902552716604793672683986108532572281886027862621760932094906003605272246728454907405498688177032650322544152940654433223333601900058365491239467552415131752000464195700375271088480520556641889117561712409459674141718172869227461436110946948663417075799683752201290983623551868213945541037240286618708807485939876505919960100753007916904011818645655137143496389762187166574279482573692371443860965745401828809056509310438038886360923202471502203995321143930628068521242853278140047568390115920846537074543145218852647674236851485700578931843766257325481715647654542667607534686895098217263632105255358462965593521731614314793393417360132042814185974795355223851632954002993623646952841700212703723189251311978144895193332578268769195294678007212825838424147766791752926040930626098187283798433878618377498931967398187249240444600599880875253244819388893381552065292973080541162355759319301215133262580136797279171477951954471516999208295399593388365700675130734492495012807950383742250548892766192853562408035849415134058787036123479617691178535115747517011825705962094496333790612584367576655822327883380949599230417580905197628307465328350456306514986448969711880872702596918506890252155800617838707288087253238760407262757596681596633267489439626115168526738800482405455832530243059610826381349967801958717402649267789499949398662818871494498395820224461273310153803661907124421805087784388723484834519009197333589860735299818975797841691724759191665089220716646732389843988014870003004202029770719026452232944224146487309017470307931904239717620416597549249410359332201853555768219710640264037267774914972006480794762331131768296887001471551838908637653062659703532137096863835469866277739780526744208270330934254673682103129121749066561821848140265530236391444139168580697140422008193167769490443943198419185850174457578254194908499039167470422916364045733448510945039623006722742065661276663481185401625217975213955998614754961949815250505978616764196012655264615403546617983208107068574199470145207395178483648057042235269243352972648361611105450193266778304099725641671326258763424167537651583038593351948670777253482077692861791657175734012212426932767272798663548158889420250585948943025088587649923749570086610790182509407899381097772754729567868482782204268782139871687564490819381140088552146019176664654119316137068376481945197310646819492379208854897115691217919071694607879799405709622146164709620590323492484573295929340316348464895719946118325648992276675843148400930128360392835986051213153504577278388595738792209446624547261001237851391413680637917497448284987089927227467746373554818571031211966776781558987701734377831331846710842494560811062247307062802819239156256875159834503635074492527060237155319804959810284431389556814522664011092513149941545306614039503997633164030862653345012932313051581590193482834938299043351256591966828100052495922124924284717736812505622085280436837169675518929605514034373956014496743314062567345880667473835320318900347425714191899963967876931847606883783400323620458683939397223589695880254318737362497436600148532768155051898837214741346951478564509230522117571002444741547764776284432594223972160708534132784939431615611046611925837371387328203015426081402386543734439604032788648844208286387886330329753950405674201815787096325849343742538414446331631334485539519783765919905327866139651227976760160952242388566988732452420742034077276777700229468642614301708716839427662355121211781566037349051601470314224915918780251309407054760836605927599050500419562475843513922200629571640195751810101690310837859119745657663729486882966322510369811578043777964461166203421433446421016067733787809999561703531496574293274224505275010082137558403331309283171745038883528868008264794544562833648721949604311978931645084464464707333013012823442928112815999068163605251649166502313766379767104077727680156510153502565713667531099250046746499648335330211156662086628692707782441792430124756974180658063014333595362213697007736763328250017173136876460943506865901785172235189819754897843264161801306357119204833151016253508677885391780140609936344359150349437736439885658992495245694284481828812237177166191255486900142917012677615249164284591940539804105894054078585442930400001745713823932971232829807347432160475564249151426312710242756860259017746351047719511430438932642809964776770852757675931450933761642791989120125900535354100941874107730577941893514925552805508784276519510608335615437351687878223838035354758235261666962303431419899897089233456106219617319671792692668920499039960725039112297878753187863859914772361340697959148790786050902166540370441365473575084417488119678844798045545456990789965804469501633601634601537001932788608278880590357370595315374748827969698457224842861985929522048593502270365358893715650901499023731018156088600111914351561271926339180419936698324803054409073162254218215306883881873049009134090180949005213495935229983755218729841217588833023444575859688694212719582118003529780633914923266512322172129505067443945953928125803878281870787518632276615391651064129313350091682442015072682902976135730614008473884368915704908435413175763226253267978000171925210335529932895982966836577295631680782705650890741185561812859815539488467631992844795955361846513565694163009952022969911997428856257104558612604420480734872552231819507357295840843028080479300701365620676258099633804114124851213322503474619740091527069045201248388918734368821822797129368474935015683117899843963718926234808250291432248339388457289897319655942886488070344095637155629221695495999213925679735356592835702077291946920077314471605981722979156822675162928059274081309080432688963702809345671369068224515254942738789420180452973941023323269510704712357518421788231055105373593004330647111662240840949480529285782705239623824507458682471083385578288958191058854587073822684077994228031346904268554951598106841450901185294021552124433668667827239015085452155591747145185686202494225197677206658945799132372894522110353131725638528299791880677283489411883446468500693167351009398028696693020368827069949700536054455006159399964019025700474395155537858305704920094457980820536818040151018334671730787468671735716834055029686140746617674163257940474638114680402974691511085631921006546747095556860636508172167099539177884846105527800533627929816409708620105795185734163306477700285040745270072651209206568109823919461777855693711768260036670160270922572139347673699770576666502725084589900711487380642900146868244645633458777356346781217193497163133631319176977740823432030947400384464219779744277341214406709153752445231337115944386703681644238930707214668440291769623603947341627803017672380475700859304934314098094973204084429643899218320649151245025781315596544011244810860117628972222055918981689663961695643677384976987216786507072660395478461981048552685856692509765138630884011427524269235816285725180634543673587155798019209959386034582630696079674407029519968921849000612830535417213883349108131424769934290801834365013801911555218681338786776315969337861277397960749004325180587262486131247021410478033078294286846558823473875997481510761230139810768847280615421051423956766918457722620835694094965601055165186464629103295767335395232222321020680527079000406462825770857736274169244910228074739350435438289919131136270572931465368722066552867495849192393759486639178255452028374083535632492798431854721180102139545875948993661185971562657120795585664629131082450754565364322519791498337568108494502480301931934521032960400673984901131513731168141782622205133901361996575365505516622183515863414806054683937911720535621533665342817518253148998862374426299419857244511507248936483754412647981326382128984445040392267143217092912234784031483790622675740903972427471934442788389837031093518905112694387915258026501060693949838912948913464454536083792229720997924692779467212172811007173108709493382975425504243533517866673024233551081055038417846059413062693572098844058132303950162743377230227937710679974277312655666541747370705806867401912077182643628317206532310823602668908666783073815653065818123296479670356462902390974992446867114565882821903139280301919647440053638027854150813642319950641813478656660701260081667413728364026879254916763756410723488820472769025145734910933900516954666974870287471792352616649680453323399832143453802354177320149426165217229032256372540052881885998431851912711985978225476444442216736851086747448523065728164195571323012906691026040112762651939668379597392104094625386964464805040671368889678610458803731260093992431250506164102391928446819481715997790694976101013905834273996489452789384638665898393465988033387379064879648442193090802983907636085304923160749606851007810270427625382375133038623320863723225348384276977140820059946019037838278668750360804762944031351805265185497675886615303787083318766969207732682181650599151049096581137910286192965754109018138000595814716435602524551394244423601875512915171795264310540468728264234367806894638547526991883524446363543787131471838371456569626487550488350654570998088685860744695866571397149396431195049966394036810655194040807665901518613147494916090758487784449303100959901189041407600403507774306019534268878396271145127509503326562671995539667163410394356939523557465348978795332758654872426614205317300588255956711111774623006184804745681553412212887128159592114507862517254982205631012278334070650190391692016294893326866046032707613394134799350594502864236097766507909824765204159411436833727233932287921275218307431813176018445135106465567881151838383618150816668304194475602504761137785507804691483977839951993745963805967249849576789199910265294801825995928337237070340933308205498438035811294000302243258442856012504104349786208749351021499338492572522026251136915368145898535937955853507937547702726102121814311782032170911388590268137381831058625664721539609167698708502914318579238574197696256250311049909440707411079399343048616125436289251735096822812639814047409504804189167802527373766374959947761647173626715418135704154758358183718561782713608520085113112386845115051541721296231238595411638966796771870931138458260325694477206076013964530041280218292029023056823449114178203494548494693537298098342336365740426435912136976656216403744936710041597311473405018103678738480591490221826409829436999770192714576719963315222068436496369570577533106871221503965298980538734937507601256600153573866975075478031585356539541118065739317755120375932783868953308343648090134108225645072072694673580488732013696725516190723911355476079313717583286525599396127641694321960791728468595458745024026533551174905585731225740172708108895572115981615411772929667268234482876715631584350972927518897152730026953510818130288857554573287270918034904416428741620026990220230063172618513306974473238975107172195989962090671514535587410739572065497567373429092863515398927598151042777819181961074832370562045670918272814886498169208497198272285534765166150739717061961988160676904827235130821089067523130141090699652648603364910457409323126670679893801342470533112462973773697493553353329637024130277100260328299691218336062443231835990320901466186361667522374291615456056668330511066283630547520056795515807611281238854608650442594089625404430072394145210977132495182513728157004747602779739089555185539461396375878107257368884760753587888884764015300369739575154964397929082608267502608239999993148725348583414612631388852910916340171209698429340323265243906819040567679350423244066476941046638574992506907480420972444007935162827430950670289060868159899283927366785475450733547706070224891090524962718993925623026499560327680189963985785640567143438328080370103959262948221264877078515267882767937324269818408293651079369986246491376356365361278071642581496440330263153308343222497591190524832779439325448396936777908506040801790300549934148485902124070280681387785563795153596051131510268766380612234329519800185030903288340436101043931802243058312326694451459457423122513147801065035038447451150997246046214030899366718523937796194962599815812279008317584482641367040397950446354827455905352202564636694501614632480544856578649180815105559174746185402106668704912597626164512533970186247986061724860527172876544238579652917752010056450775768148559666154092385022351091754756398656492219625947804093573134496765425693401990280174979687511838709523928857165262008756673825440741288480877107128195218825587453757432228525568413929109826316558322584951349220018868418581740593256060114511372708391471945592775947906038282353610149033543111342466407832511113299018259659260364625641225333600213487323323265060540730795662496405621488606467734624271033259078100602671389489891576455189339873464711509540381410195959574743882155564769794980338682152660624094166330876981603290054945424529265495712477434373642001403057270619142062879918992083854142160092165737964943110177603613794438872957134017032680999903706868679005418487420161969014174828265911024928927131726547138678105744111024877487579251674260918992859253456162812507272842218006481406360857673134966602364889035202922907900365984125509727995224799409555175041345591358290087083068880225589784743572510401588311728382886821394569964572503580175679291636469861691994998454287370002386723285402990038528022568030777345332840880038353561130830859981627665886159624360489068015060641536295414236442165864494059903664725120553580918348949881157785831638867729839622350309708832138252773841702697269173014583441415101720963474682817699985557024741815398847385269343376882023227095634701939743968748645162334579350939033919832844639144539616201287640574469519040993647488597620114127868665222358780161152759384194262283997165456754854995625898410527665989133796803430983922928400034025336626212083541932148735559620211736420356261289035597365628789752904838582237627210343593687518715364371987829994464650610112727892616678188182861809067423247663561517667844394526342719238540196376317623943759434741966619477929878210954608402505091955142962172364573843002745034057364505153086699245283279942015962202671046816707631436713414061954008681268614949270031138163507388117637919192766340614314158066583865570651811941910246383011265354905223502836049903912218429024062200654045276397454304995080310980026456180774149693870673487388826133340341997929307585014513460294652006233568678641797419366487026079949605588942462151707705128224986526444510861725879311424549385778032795485618396975840032047155430072079067373126910029383110848353104754283319489093460008600401797761221376758320098363173487622141188385982463596152346624319864106089238143082480084861891183951102814855906942330832239099187121628292984286396862775917433705737264688984665508332108508475388853780326707498446097531192300480320655686740552953972675560998963682662036301153391234135439839672327811133794948219937995032435351708843805169846372580121004584831463074068534578360699985043698902564913240742442822430438836098987812089907652968148443924399504126257849835749337652631586553881978538699294503554502386315647272996997714520901219581466574807762067447318421008503065156059438767107057781484393240727899692857528057551858371684888151811197715773543667992636288423873214985459404093314783905865743341132687424175104489304046730567542416859936851415023946436904663218913587118831239449951428206032399219059632741660181525638288595937258477486268494414319482294589526527583056354307675084658164857096926921791699289732407127928595722705775018623389346539125383683958117877286562860920451316740176777239799490337935807380941857757565355993463677962409730394556853175593806536343259010774055294813269535314925239580531596088539997184989462254241204830288102753395421530984906767865410776784594361568381897151006014036715625516806743699505515418922828692215568991430257683161318180271782019632753598866166943711175117504126325389447443272484576938358699291525762807103566635896620883196838602570079851374555785651599195473472319886894303076634759602571831940713002494686926185627828966891753341004303739627570560504258549496036691893663890132251796895994192156298832374400873301280998130435040567278626651870970645558622776989069544166816293612237981143789971118258190622751847034529799116273416311466966542791728160868469650495860313938230098313841672530806406318301549588298946396138276415419891113851956730840929506489685079941493516984074561491155559427853391664158239313652868811932123211175173196634100435686448000486000348553013472321977917287218950053595243246084869246534282878506874008101048985313959153691447874347935033920255019907307693516831207441209147081251952126140592368680583942830408859855070357192777768584846454583367731164250995432601019047509830167016143526270754174693354992222023121008546858044784303542300906369078080549349906140006410773953504265849368541322454855725481250805980669233421002025949414291962245128327135711371748649668168721483061258621940515663806061474700906927965835303155281369770363917827684181214635290616681659519509226880778656797334903756504079870681624242648585473801476941040720714925978287800166006371992542786434838265843058805486701508778408944491692611491134736219378264649255169633996460880931926550813163213703932724982515734841732009286379579344041983421798484993280106424497660741011718186923678271301918422500973131257059460147664020498504363415835783196165878720692313237348745400460267354257891496764990488376149638670394041192237593836024910524971484139252163203454151094429353789585643510075223887507265361743512648165043766399449189330202448096249095338987619233453791163408290735641354652744339828039651515323846681754464959283835575164120475038945740743975454343673252198996298471625563672415264742205341020716316806336674015577014536718327294920507776435283137900053991208008270295280558061645601247950027502137482697705443244619068331105180222864385381766305037652989778191583883601348319671400806032294080013174116351811723189557611781980079133547994608490916838655197935243994787258202301011058631704622289944053163436238365752869893956324895541210303725209611808518785443255788349407457725215615326223632724522879766954584508781041671927537750943425626856086052690037084606820499231167327168822689504791474476873314705168953911967370410918338867151481888587892257679717256453399832560031244308315282182459393297790213340531978487180178391482401644226596403904142935896379619592168858110253023848803191485966067770625603061363202393108175569167226309784501730403258472424657208232611631120262023991626325524670473927557524823889714873251644914736583008111174868957543106361168636545701933231639761132392388142013621522146981070827713756889288102378789442917749137302910068243564760189803261177842866706161739017322921164250092446531924261046743467417613267335440082993848166362629655187575087706692706928847288103476144308634320652692188588007933668058151489815217771102107987463543644851203001497209418764227576707971577279457303639039786791676721339060750354096322349540292743821810663340038429473672750690460746930794500579774919235469996790134698540361405942210727334670478394711981656953908950506644956931858719497160110829341988586058028606332607986222009271629663662962585986918294491191686041684318361834964685023223107800577742141774375256119460243294214159670802631634279934593486889430748876433237263345903416155067090813180226840126363114864399243777410287584430248432531804007316271036278620324321570282462053346907961282575733705910905707843757546043719740012294634412893535456260020493048090150902084477933867153013172338517858884634799503687174759575086991755335775332249804403984310118296970118788243585810076010173600620987861809134893214251948113183234376512814584345580586897321749659653311538093272110809082724803647479000573618680237029225993838291538094061895600380607406158451223497291063796463752861143405748127245009228037472912330951002708297080679588722699564253814272143057641759120039992236039314281652408057271816237054117786448329176744632967404147205848501212852130507749777742901525469980549981442478298044967478518773816142973789593297487022524432054182744372952734349419054822390801636107192292879241832070070139003742710864852961476204118886595674083176997288357279286585943476986853315102847816336430583065178005964940556910290305849010781836611448409681193193068198063549204673363409216142790215143129805348110961580289109634704231752384263601045903413299936327339313410356055335997571590313287075034445977337188932719968524868692437174463420476310319195720888322751230984315400601180326446857637325210947297313946759611876689486146285922088410066985649417974041162910350777552591778671597906417998612311120132255039978498868214459067092151259249508173867128353113336755600020843888413394673075624086101804656065820196009215343784913631934532137873101250215177589372464375846167670417423162177636874044236044607754137400801619485078347015673677773437169928029234385789110122678609391697698173828127326506360945505046414772449568268116117562644795096153982453624853511526219279050660560682523022025367733783367962342623691849645689716644798646302936693032464299729291090212351180291657957632876807573914281593748491274997115691279194115658829537500656316554725369290745198181245699663395086526005793405091009266043498378863759349190941353086307370290427885845725275923189275469610825796336987807663524021266311117417377865118811876621067884508137625318160444753417885191549242719264824631862245344885202804801652879449551218752182278075905769917864871216759667773552852018121290064944078746376574714187108089927179213031580940113871648284113999323314635854015995018785520577049701251978777762587347159428830776689741879158978485322833864490940145099716934320646058863407480264753517233883875149834505259892555743088072948042254538224843372750926870645553118490282365727072559044579900776838883574751481340688206360108610153902424579738582717938800429040511002185676499039416757256454802918334731858343931275321913878436566076123372452271999933209026558601737431046584551574702856005723949517971463829689292371594854065295130816107567858739714621752395573501527457145297672665902416641989651284920061158623019125853096691401782953855792541583410893171427015847688406968857435961878430167535749029559990316366448009925982103125596968089854440015817924526525077073999886278624618381616380497373983914442838731313676960719141991762898168543250378510830389235825655337957871715910891450262953835152806390987970015453952244105294784450199249199885062649796553772125549189207266966211284254279187997823553248594264262270286232022813228078996470075246776489767066946162760871484321456907059164204598432756589080599847942308187474420882889079286403997649143969701467910259651985736337797229346734244162884924747511277750686613802248341289528144005174267907622828814485085190553119397068509420618205625005140676578268786185947436587715388307509666071873102451635883826060365515212431183919981801720539736709321782169502456506459271816198630849716707341864870504099556007082561764368849136983804999723075736994869724340942383643021321984585824787463402389272789753882974158580929307979328097254699964686437957206336231475260792806003655786081401689109570815627029035683631550137287460428099173604321987846790420888733489735773858001213341562095084571426993949278409369224714599414469885112577502757882257335855151468711433024455688441106737665666501791749681487018958099138505474335490236108274497528617530332761444703340658725010539600872499538418358602651708906756125153795891697474924917999838069252508269338043631473941440062620136938715495194561534949399033590238599032231572899882162797914080585887169812979343592226086554230538192619757705524178356086305006170542861406094296612678957142040318204881697600823934273382309077928144101779468576666395871899798455091992243158892413241789922351076171212713848317125948608791455085399273434670712794677977677745143607481889996980717306807690103044899760566618963509124388369822782047216609854701086152944268089285663530297968780432534808783437268983445527448283902996248768588186754882643001579370593794226575513531141379013413591031307515989426529121772714605118848378749697279515037917967695985918515133846071288689424688697327788196496597824604865739127708553017542553913031324211763421902058976108007688962959894129687810679810128706764226187419770887511719585755043070717807687959404847766131241031224660088121950610011653061858805936765268234508413352508275626238508078219613272329638205078017506053220923835053364561074578560252235628275097652309784389658686174241147642352150596518422381784974937841598705709758755727151615407972726595372235604508325582542705256151236857516949269063787619699355461400403107970299763881462360162928887330435535807706703132517749096479482851985709062106397171451254904901062897228594242879059789718939901991364231835299183340178107624701180874926719898414337858482753337919602432454762954494867240361467273866882587389442326636956857951830780042653769329673353669194064338981469258004304606630261296810301265988509595410576165108438102122277039977611741774449589204279483526266577716219745182115661064671533575039251855626387496225607533612134607172309275536507388911296505127339280337723323245979947674963181456278407814604390453102426438700428346076033277701258786852106609233785272601850064324544020395483351588796636574492613459047809269039931611116190546478432996583933317850140501900414247275749990488296146274065337723449761049609275333476170842299398578425639439313948523380077218815721582179667156886294026543461147439960193716926083608568408280283878242262780684342650284726551978555022914339979743218638831973302595524172367464465635957579233732255498421026976797282678159366699127108232799475657599527547397566230362119408369524730423588407245031494867792076750376795495496122926298737602436981694051326410448400679982029916175590871821976117513209997911783081922471150928357252996885799999330488850012427476510537023599875082224088542175441751693471516294355789104379071747959020659747109209709652617459009102077088096376081369833398376657211426793029235952419625593998606964926344578704512220907477511381599250785844508492296614270650924377131854063854028112011197062256883957118536690154634320070877526145932928992921835635881852326352302574746058226743671271291730154601497075908488846980069070407183316147360856562327818921702909728678584924533678197393646500071156483039917048041223016504156395327721809792344933271849018152158817517840002855687556184067139933185233044209017756043527413827249871829114684734064037332185936104637370170686150543299642541868987975445918000934149294506814976592841632307399487512666557118196921081740422145333666414035072964117555688321390839028957867083741425681921438461554063330386659864873808767155698642017937235480339359522932805787758072608591013194795676378815486164116567254137278390682012498789154264929957674693681720552355943392817793286879580284062945352008860990262863841720278083098706319684447652075496470372423254246144752803211694700754540187175679385378625204671194038313401917842323823000548921197410017352847329013063737470541818336746715824652256496747687273379090381626980696737390253489046933414573880448915758413087178087534255415567170729434623376030712130325090350032796306436056539340278612692229563650732527851272106663276656826756092645931961484090736150279898691391410507292130156201891141313917423399009331610851308546697891487909196272619370642101270278889758411631820642459250902870655191329433615490912645492052027521886709413829213337425501041692584164763635692622964291998912876073123089420177354194873011389727518239985358389190598217326812106645034830013971997184425098044156599786912308535283367444842540151626552202720026363175691103930026331563005876869021963585855589014633135422231356430192794939325314678165058157550683332474341131895663737059429915592966358499701045880491140045679903809754037309818219634441429555570174821984344360748740907917696761100317766250271557884473200169437747653615690669363267693146518803139913892524134547405576850266037606050678378172370998214001731213845824366685014360136471753100079633707267622549106227381650731466310754557305465187629705128049072127312091034256289288736502911633962990699979618174877001575058976467584285643211548401814278108970285962608306748609005745596454791763741883420966503297252569688649830249684405648408449192526689823703480949573419327461762034008006934365974399373805916508496856185748358940782301278422028180025706901342997726895335402827487592180074885122076132854345052632493232925741300664291197379103832933914653955995343124949265721190604057470432800176619237782409500223192452075755348936033550732306379434856080694079485513093343674963109062187438174745159334863876703510772242302491184000881473112789386281727822520056717598121508295469692329170298160637973904361686001713328190595473228195107296106969119087695579069854474929952006477759107080046091958759353754939867834019003919093239244455203605669661931056458914006970681597483644707280237186471604695750082546669713393870340926483230488563750490695334591002142821596260358419736746666321362701714509015698348735087878048139934261303458541189610461879006425201003610633677029720340831896413780883961588997572751306694388113459171992356899709291996989957639819251560216069798721177082179572216652192468731443654937146459901208393007430138055247289935569362139351955992506780305989526653364281327320822891432761829187994373977582627622251847440494176754753786964648119757104296889744735492662340527493898219470277013021047842291099947255631461231316819105782316348641145967857713328625145857747630796091598518608538391600063193326217128191286389899225613316975739026869542142971964326701280221886723082516826353050642397287738801314825870482045685962039868306217749056314974556127819367045903772456059850899215144949358683995116334392584352728219595240665979148295109357785543977390481896133828528924369855743509588044688966930520184826009912868539649547363778604882994862264629764806657277028347056081494691564896856102939326580692795392741529304429490390501216460067376216007609650069636947314357860744829414121813038919321419632233419351982329380158690668882818382074292315668588970602477850923090259799873722074225384455154234021808341958843038743317628065847668657400994563214511393033612906306101302926805638109056585992671004547527388573697222875886585955770575802305189878705815313331104379486211302784865502665653686180727441373042122789839140890556758086710911371148528872088621580990298440441798766333648235807329561511708434592049074723536424375536621535597796640706988814813320389376684660846466007565563729604333736271712041717616516869270611626964952444860310888323747571918793971482182045913516793978100776405531575702864072079872107912192775587476718995930245106341688264191310886298305543111532017147555943342913250669173129293529026745749506910472212363429647358232394831379557244382892054914186831659483300914475750937344036986105858403047852418192528153937097322995886258579165203017672867421625417722848142458427197180679078305934706951201852907388121248025861709753978930175113375544819183237986235605758128725128540352500143614916501898715529709567874125545084503023241189185196050318607457534506341126695350888797480877818061723156756685544489348387826650003859783377918105877357472615595492506225786478149558001913766349703578188117642018939445728330727369923932944927654389693354165561680002783943047633187917790710891652645185255561742158304350335599024408392261618614361879814380017162946209410347726569216132330187544222012362029331371355494840240467292869902112557961891249834979061518461407147031416930203583639395141940437144131584912087203746469750580105540844841091052779073329321907301223419629303580355609374083016768798619380236118145469003231924625299757538898770550317784641587539958270971673960791569345279735699309827554646231161794160592440285045938414828594401447241341697015970743047391154885337139235875156197991048370478474046618275607480138849330920568735828518186098221630266313884012448775033322965990086777748562103938138796346622291841370596366665125908577394235604253251151534506873192525167517565295402232843708812687725974584550138608932913445259807647741987541993857608032633577600031057531212596081241904996531917599353552989531271714025763737829489727636549385742018747217961323672272776487556308839452104916539784127578811828826296155869313486804659260823015295602525387055507956130244354035589041614871750669511665433176521078977722932006033642303804123414414553094692217037341672633452089892596463574599577541843536068525068532283180256939064028100273131910973549280083243678816160195912778215269548472010525536513093634655558726917739040545454538165018805996158481596377470267486387895185166572043405683984274796383745546188395254022901033525154058651921114951154402961245755097726927301533198833243329756340478825343232331016889537908890479513011546017728408720270245467465462853849573007397377146639876346487994144833288143045284796187438368415424116360780436381539746854753691964457433992247942390868247504484023039182455495577373008784139483222385694130746125090704764250981615971692838887382016344641882639941332026517999975911717640142899670433918252143774459133071718816776890455090209751880436975438422443285044685440638152173806765925651657677659348298148370216316475928901916523018874436675025377653978535775652814537468637916827036405668513615067396102882328723209134839268639137101762619679810860479896874052695131587259925315303300050426949513909704462307899233751546155782707445959441565500198403919939892176751893676743670217366057172188802202595297997202053089549171963372528667326986442385134431690193016794980197712091324061058922006437927727054206497784340621458978857258421521589296553085512774815898191997123549508844789220470426408040624935996425461633933658217263515139549538461506334202659251645249941190597497744723452154822617401722814505382209985646566617556408569373964236667946739674240589722530335893167537153818781738461014480532252481284486988013527310149655674784498347199621409974684038245357514995282929998333128644092089072706713219226713602905412897119965134733097188690960919443385453119225919116748684813281155654837352323563174032938040712402316774417579645555505509961580052224205724420671447279144826068921345450503031951514828060296442864625209248808100607220376583872980418730068078152740241619570923247401351476059515178336946550594310683406960359629705306376396401899806185555132300973220725410860583912706647637039046112779778046949240559566182323393044476364713045475631875588971591019696377285841910817916436108016073419636997206585874171317469927712437890219996316952929545061893769346785632294726197433899204490199427550740584407664827790823978440856565147634727314647474268668962478197671414926716271715730080246100439296972515505107188706838440353746983950016851188306567836044426529727361103534837315062776540340269010101179009093806411744585074048667505771639373880347279690339031541876648321960652177313049959859879888867220473404227330218211816704148314277129645551416149046247462556590229243119790871680479013327471870626453511357165426784652887362526733883787346533357137860718025088902785213938443395338017045682002544853048893750737101267759359994840539437682797802697646610825203243272291664089036559793242147760186036498307120450254224821703910748451867703310707925582801166804976577483828617293784164181200727545546289707209869864868140793301279759364888896646282336775079567353425090449854528109756199018970590873971395711432290420041078659673434151580940930665655207395845069712247922338687080524566847004111813051069922388980492886548266569163236811384700982904453735910436447285309653415173469869172128471474579089525770105859893158353580742137136099555135746517100605308825369908119096181172994325719783397170541624006986348459352246342909730166784222070387103962170469920141349220404720384115177925766014145609236154774078870689451487745210972491449817626627549162296846456043433932384332071771777969513611044824354324436848108832515622081295218084090229164842613029508652761390545916421093879095465323590895560674619406723201138007998248127820685136170236753394704364630956580127521668668379392262770733912369867439435129157945250652725747307466270925898686018000482645063504939495630191234438738670837939410553519317379206242587428003250706894371882525875726430662726627606209597667195927433600616729775543137508685942844465732380509569087874799589170624214308989199021055948715303020428249133055494233129712063147841348076704010679608746513095862739248989924869742148386939993822521097016202353003665497719643886401463599785431521680586100302333610950552348036208971477958457155303083865061485530426298958832040217574089476452100127153496916919613369457505736260316798205621253422964136614696338029859432033967133907748155128731562152383059697944381977081981286019619588793886091951417619294258765532240611451296136125021917798810893843393081959477668255556796167637417207037599365809132770739528017952331886202285197354825518549519712603021717472854436762468687708692014622647513306067985031099689505520405371227388606329007818551758353756396301616238393282155153067966147100647118425128510489519956344033109325703769605315226491818041968751465758860578131529945179317268696874820219537279588268868297202489027782849027739550465800596883115766340957947989149759594457744465239343191718640681947402583437338942803514897555016191957402671840765286704739382117755625093484163476691766716045067590001638186794935743570866466107697804420916635783243709808825523364063316492256161579628183078181086772868963264843337700895129080018032829910517719215113549738199667737703292262650753229459068881162343563297361773989522885321057403726998516695104877949994656525034367469543972581770507950416060062923939239178725297565374490943356557139110656222104460116224669463175079705596134495998607006343478450664508031877820816091775644281770696591915913163262476389523484338827850057630771288445660033276598422103331844352262263384032366418005395861011864051965338082244700284597853320665671901035820332404422744447570580803606138248851723767029597288529373464955875516261027002098958547440055281966469517414647571064611188443611252374132102914201077347401205504488028904755582903979303663578583203344785544246651316862354986970876280106667203128945049720687034014603755707937302083016162588337450656625469327121644071438826199484618666968544233380201746373199922449558903084623655578374681093678202980242312196142426339578803902031742642636670305639613951197922729052641103271715921635534420206211419270125265805384073066612754166687782077200003710332817618162196515647000385517502457890814588417385897303341482936932673034942187791495505892941768018225298217824955931996579916260324856121863289390095722016199103953072316880922213804363009187746522421837054383743982241202613653732295070056099545087766263797212975035171239508067383920781129224510555232452958328304761931051318829503600453840213527247046257248140578374329485641536514448946470984675535672240652561922242260145638055416127747675727125776330605152038007382560209536217213280498923063282378682840710594998578231919850697268323785239642530760821219769231206188531499004359470814396264569530719818940768797392215254113539562038531196452819259741855014272311016595879856991635924306816295827450613358952142740515592854285613647945089676938222131732140637162870834380287517366397029902487680633418040587877176811730253192220099593013292351547725493087649061847267721010500654203479142921569452402229279544895436659146727190877882673505125898589475875567466868552115335232953080813550680001990828586817722051325461452878313347260719827793976501763155764001882747587800400469128315781114637735178496800529470062318108405215896982371182553550106015429950454951377758101933539360787753973951030070669891469442550587440703364494995533898428815120301807813728664130869354023449133820232270049371292973985888162691505802158605217362141849692714600545198481896647429062177915979405454622774833892093822369530627278298415076917315810744669861414586299411935760152672707058693930818952818388480326226348512332880357553279887189540097988525348713832860307871946025384154771463646493208774359338783889291790069000049018544203157014723907477639215413582046343571003061997281460667367611165996496524949853083118805689926412524909735184196581911712073368350263700372505100078378834128419539142137995401972838726713140439371430106356901275211673252300705718366747755217454768018794754148429754048930286689642988871098862659059550371292578035381112145171661032700974568573450971515996815715349480940519605867147259815371447881525657335874746256400618075905959194393460838299900807399259974488794502729514901435406643748818051006264214596801279050159684034470553981088409783081673862342611496763452336927120008060596076338372183823923640281585088550465190731810904599763530050368953999599717277538292311099236205170945329936900776781505401795615320640891445587198490033807505656738930273388155236835293558713405614035007754945515832557716163200178862531473744195380932910824425602304643323546808659474758653778842330453912037760511084717166903445432975152138406123453601944242003387330427085357399294038511403251736558559637925895235070231768217270854342550588722070775379830332056425232016218075660534789214019679172953669527756308257203663451986886677354735382077345199482403450220176301140166644480416475288665257161527690719406372219679402102935783383343936453731936326299868710898944543424148764051057164644651962732822368102611369202756788426840089385160536890937259971532646358587840559068181285494283189673379624242091682609944412810352606600434434585101929318571279206238221819156773784494795317929495359418428666026940209873726111547522376834979350194089142375104319589103528724393849263274367297566852744122891768704345837846761926708299343152242888457763711408051957373994197633867767949350311549407328771274180775728151177924413846392583108098535941330098332851655635437977194396268292207834190674086162789173068539701470999803885393870784948066181409555564919547922837175202622929296385659469422399078380419946178742712976034633674228102474751553920580163852533840935915456051671762046527626082114904519843869375188122760543796659466881917851437749937292618750555709603615347369916911926291598887722090140702420485398001637795970510375651188404629923736924966410076250293932895221428273435699897715796194695104573129929429335411146054551623532576299642105142283456704474407018953744338929185177644842794579762063604933293249267269803093218993447534550543864672739477030825626337811154341977278274788205970023876308004007882217131479916703105023594212114824413615646013829918279805077598190144854344726378649671973098587540212915210264590904576026190429371244908441432851060727647190131087925211870804703891408195384128874241446072590444864341168433781294012816453586436772184121061362291976063937490032487204839765829620247078135477102235623363319207616351695400554210474803142757511326980759301869780521902876802938347505444204505900400076523887109929389087961697119552566429123820630870158387026687531292157704882639238888765416624898869458347637853924055264978861521966009816011660366693192280408317078950172512033246626571207398077574396696531146240843874803493799794857268465794083522204391118728834460359784376379098188321993732258026386038337914811921571813411050958208195181110646937576997159424160136133262054145631571237937805925365482745924421340619765094782994901203201178841406521237395689367021244892659557826388862295164007575209849743578264237210342223606278984849691283992657734230013217245028350651031015025968669504069341060467552357989512726853715546390244285449417118759551567597736459322636146531122834312469203590089259208784106280244625568028372907043151577714500832756638868782831274690830028505676848104920026913336602876668643830807139353795295171305189687942533015847241873658381782761029754111655382455191984162275058726594743340208895839556199364363083660453784341780826150763263503899329374373516632597039173607067158720426281478375767521546299099763445793305671360319174120504710235714957978650197384094193814057539234168464743087639353482692053050512543238306752135742948447120155281703518877917123575554868699320732672412826754533666113540898524619168688871315326588301665243838406024738670849804096031337922558340508453551430101524565861172370459849202662086395339155547306841179483601803684182691656803728935242273817939464404889748256825654732286377568967367665996607511868068443034320217175554914696716161744895327891998793954237056067494671807891400946019821902928906240020926805382646428951159747190928051582420038334751241472204272812446295067800632488113092979053094430747642182962450319884764378310736360821486082267732510631593596464550255462316815942743245751311908289287874937366585553341565407349583452102698574876236831844596348687149116242806882149929983997318841659559583014624282248775676724620965829768938437373752248863989307881069746888492418255776716413492719897886438605740097342266228979912594236464464488160456774354107901980308404317471456938846517652450043629205097522445801615632807516670992993939185089019174527196297740940323982685629455405206190493719447919505781380641049222747432270699653249721352120732998917935575438408130279203015838247603756368077258329574500541225675231433462138815193364187936466041070217190610954981552057335208222519535218096970173662306695910565760425461776088293427274765563734334922767043938510230680582562567973867348925207725496742607863678008297869803218054697406223307076578477077010534402543355698264697252908941170459543381054159989473541074614920581615673255784983672272985267674709098723843182946179013505997247645272599032314473212516009309643723377700180511338465818494060032914418773843643058929866489218005214793379242442437467625837494024947859310997843969729765719714355386473663345122744031208861139086187026188918730489977879639991245122035144699161924036035440373752301868000559956937090555172325122145659032493620177250702455256570934828874088702724899212592965474682980652964398207523213604682273828097429980317465807445365985797407459260889621850026924910856043473594827550064030109419180177384364259923307708733521144610208941650560558755232385860165578106905343675605173784081237705656267677095408135827438172090784107867031059463878771126421174184906612258356635727776213958721720378941945513161233322971060111346844253680803156359755535999108765952747695514944346432236410444739901689883389104011658880101821882118268473165681196374390699076986880208880524224152685576821988922615746268933903247732396594119979787284571161896724155228626986170543633997610618760111100117253893891186388778082829798346360053370589382503849461766483008416652421725205000974906219978411592470355255861680665886181679839887861475159349065625737419884912584597400661402277119607224620188952520503343326788875896959628174181383295403153364635554183907512604261375543679451275663265023884814241994828927839301580654190743544287684505909556939251098223654204459843953393942341563019066298189153837139524921862381166683780655889613729429580371415315234186170052682095267626596697993601272849842377731570624268085613651432559493443641059469123737715023946974883500528807560451408608636939820712496913706587266571035935178067083234009963125262065024965690322833991628432132978011784324026473092984420050595540999171927955266789775781561414869926524676634005488568027254889638935400437550182970120063684647554106614403211230192019061284652409482642975340104970214766259017235273862067377258215580351187052404610115614618019801901557338324653120236732749980128238249433465614526208071440139402908771069138129862151538854224961885131514786645139032378584852462809842643292834054546196181420020238275351193008918459767033914939140762883659488866408522851660676550432987631891170471737694466100386075612414824444800510752727667828461458973863270600532061843106775927507161960639489854916078893059893630587354130653845726263086083285236611507066319148176135524281748130713927669339712645305416256276947220160967121384694687504802763727135416430337384995363514031031627544781921271470884308282394863374114456962522735934013349387109720303024625112999540771588855448801737886636714984709303099794072128778361198961456471788153026779741727270966474481588679114398439574752111679645849941863399207429125289016145023536224176698273180315201224421843848481354993988953288206794682060630812345247300908159214486013172140745342527335981780629968077422817957573343938178857534765226768230290211245989849990242825021420758047537066247806350519248578753765964686346643688641436344397367846095882833008449816063596456472224613405570455155603876017274883380198090354852797668694725680422712198157742235683938132639066889220031094219514987371371753287404963891904362946266046024995821540393637108290974800437227106468626219259106490741784032669632661242580714464654644318899426492146266891306964576968563090818095110422081983676418975952654813604709892055048894774262166079720436736666337053118577368757300444987356104734642722774655526890138846557258410337030514754138956058737403946314574279124967442923106275646668197019212677173955404956756069737912149228427719456606966529709641540438584131022111049967245824642686576387960365135139293860055217231612700697963457608775400445599018132145771538713251180571735293507797479565756146835902145686975763480683634014856074759062883258029475958533183936818531683419332280149700650265761858383024280439135372032171581851200798783160731318000583875236405635366635163467499770810506103403504820912136977797882564263979467004360830815567021299856610635174665243563727168170518130992429268849301146451753049852972795972735699387939620094030980803793264793052077956143450270145655072181087130741905518451341976406831997232398036411588006070937750279826870566553964409765556047450715999239719902157941528188247218925635408052684888577734968079354884698323483748726502037667909686637434991202026860590528204679242124590096079646551635519924398798928646314151345656993981374397684313230531864184429423356513678829202223399794439783374055943637286397833940692661245924254361306506699378835793564344435057502861612579253589114560228951602881554291327819088493681990928267673227391443336332042747195875946367330108879917533837222519226422999723408615719607665287125806523538351531795867487824959123356039802548457763328600985782108212711015049501267056289064441819529731110023864777796487635838889430034906926119751914683737666409228717421127828705015321426790516779211341204287702298168485624222382665378589735025900411701588186751614319134760999606076251104420996939740030748168050008410706654736134624875787259658795620283358963773649338414929701123574656354424430202701404666207638169653298475323537322853250113382734104518027275182440858329015863724975255840403590788808378153206217094250317162055178728150616357275555567600593745168139843140118820076130463061867461101262821778426117468514515626845848380875722024936388646232028464284428548619702373144749132362322232632957268253346304116207843609293949716703556705790442338406046636757231718352508944847741492402590669944538436757762082516255585095141839257063995493745655188902379307125387680926675517117014685010997727858770799623165161322258615212149684419848668645167606660262394413010919431811831552304395483694327730145540839264940007455647582387791853558096156951242465125464416106871071996474002782010910920386630655509168361344383784938534593468004905638389875793713081589023502153272150903674520522810072048241175948571564344148340976015901435790070918417230017580711073256034403470873313706490238352345461094750781358444133679848226420995312753400634949255901540408777030361994680553427568328339917457242150889413938393542587578219453648556536933395785833420236906773151663715046279445073035765941975796532899085027766677167834210152806598346666941556320484396502550397248554557703307389225262966043391812064960197024384106859319568441844806555100357549919117300997662484951627365639643029445101868552239204185674002133079259995733153901521073124655733209998236502625030726618641618305051906088057487860985742947814543721869405041817053323261809312672539354454490228255013295034657952750559779414012619844669740233672097818588476486390177289628319964342632144973318140064717526942045600275713246077313962213459553128577572922538529013185270428726674480319730292615976661510936149544851142542362734712914540287521416297904231676737692155122127743929125644420780904516660001594067757520756644902028553332342571457307207810864434064453575326851089412116230597669617373716476044985998497200094923353726333564780661026461388342796883675089626876182108523355049950143109988465861488298626213973995704472916031479083401536803640061349166662216611203271030800238990459750088496990107863979707766293075661889629504555206507855800090539116064114414121458577379874126768443263495138575186246174802998606172908736838938588739829856407891424020140569538658091709850335023691220661672502370842153047609805557708848678850587977384049486266344441065325936288300877567240381358544884331526520686982494982865916588944135982109350490861495603721950178890443013373040235219544427072198532295320340530449031191343141103030263053934854002219690562867600394223418193264020197094532908374671439668764623521674144235558275022135339606450937548066302163862911492705484211468080403245595382191677528407454365706081326974713573700105422526401024630558521555999718973795506967040034250554086662452291925654224876032881986301494555362205021620485057304688101524569308418326403016374392586071347558335644338056726024551593380428193355297002576439063535106462674738402502699318617916425724526708668333466439631111165219418628991879660543356976287041034282723211762703468487604115075274946950094803757318760049411872597870739634537742636770255365006347868941888532541816719852586957126665951275434511003250376380489368440903504461577594761335792196120708942652133383567708324792463553613793143014035235033236550422870700494470937726586667861590119896841533788952224632621654112021977277656660549429479180542527481503888479857087401115807761561036706746729064624923725729147038124827236074188493895583789106064043669741189810072574203545649429416303079876497541087903247881892686619322817824294762338291132228257903433550572150788582498225609129229725158040981922516022807971650484337736083163350050451963605313638509965108686721856171260271376020084275036759974932029202824633713009094026724231946454526764519866295451600024376512373452326333145487702608570894419470303154118391995462708621409571644317813943600202506485117218303040445401185425078328628502375572541142145118489522275709308866162058976982705116638514940014917660395060453435485751729775768297311369525405124613506082510763000582255715970636041210664364779724782197169187674653099413754465474101566598377249652029087723379020141299595497732369686845832274898832074107843500636322932911689010481173744854967175683895690240011278033845704850463316085934616442222508723371778587593832491200043705494893005274499314683531959322471666430903632762541370683290962932001689611364930788904894865233176741990413703912437926245427826514942246234680560307505414670656603629272526662986460710805586507343296353180054188323921294411161151263344782404745530006085121666180425107701193639609066162268793789164441837048478405314478437147716371332140232152987932621313365882052365852008131190921953876018711462725256855043560363815039797908849991811455725850546181949443981720280669731258095386508120426869953921384501085743718867816297593409564101209524736751302625337830192355265376975646307432375523935557925730744722288624858120530935069766216885248179917938681281967076237279260285205703126603322552613492813933508284595879403457416739237459194602106449580087121190907265424571809237934459147733506491750973609903449600155265409432134831983823443561842596105792492385640555963009419622628486000871370791260768296834941715769216052011371978317381048254887596351796947185573791275381819026916375347211259698113662924904561115859258361968913058753629109507481624281399848521673233005377724951847611357416310896095914588154176510973282364241745267543088363693877419675882599260305942726210832860064217379530421439405780106134914037132024605368107341227684808179724821039702988990773623969946591434701610955496880384864093796349234957211547152033346550484388564611158866779709386937283605946181428417567959740024716188422357136312165909545558218283880358167178919925229934443580107512685864149382107445952178159143154179514592229944707121757964884454174701477853017569680900846906789931624950739138988534252804691074206388541264237788316469884695646224469029285141355416977319569338320566027932222538493565008150479762136942682854191647703723322310561284577002856836370559975708880496647326184129660826738080546599537314046659751113637935645942724524803032817052748474130200485390693076285680946455024086283785823852069919522973267355146585907283812240553533465211993987189182958771462535229999815991585199669404801852340857920178318683979434564816089914511873927336932717932959077129592911414603397670670603581573947717024617546431896529015275332743542384841376903362356218698042005444147903946678816902750958917605976740842594921705350494396728584626595786907718544862847530429431703685890939088247009124242445829520486255951834632711018905053240185410868278800015061479113523082660932612450295700274655920488242846368794170465489204294883060513257639917307387698127641706607175777175430016190505535407104899879586965008770446107092062147299479772383264334935360771978330797538794436749717663766217626439090040966268657312720305150704918404254812752865537770425243471931430390117493307430356098904873791989225809919693696811129353024515294622273769104573308839433605026600558641554907215326056776093060957980419967450278512536052028798124356939804064005252036978342772221337515442897749922763729718956223653805627153054704473132637375416497670268525053332253213214676123300657564393274398860531169680093780640293312617173596804012425255440283164146283319768954704981978789528141536180916940517045620813354488224362756361051788788299623735987782066596550629311377533891121756006826519903686971912287275443409238523009355032468047153938562678538913289917315136994128327444106293489885903800507956762427160911031703265134660600487138882038139645892780929422889842549448573304257407223899924633610958721030579141996047517801029493017006276286796138152214997214028629215743708131057152539177387124527311792470476201129427372260570482628053226365899478597497216975386830573551919178059443315964411166562045984427857093571540495158645956332753705346784329178020845911998506573366624391767135313546601959995761825652738044497603028529157901609245381048389813816755887523643044632666478955406002451733064669516040397094180473147241322469422924042071325333879568156734199561879027183471642973423752109843554487210013035510908575753156853611737679063196737011993701570514788851080521154205580331698936693425451937364960367576529186912717700366233085282155902104601017905488371161638257515314889982821247399777758483756635607818664002107425972459066599910550037725721448761205330749159468173493962542530206349383294204220946736097288134448435430825772488644940151287191636784563789167704408477403310660049042687684330824626870669630277813518144198663563690696799106350599058606595512317409261121936976392577441539289243365482178053582462154457406061154525606142550821696456228266887403953230548082971973718480311654893493018670963181981524972844357364277629097177619696318857797290227175979104777619739366454612686957199787855445158970227388150018596951946098175608916448493566349355996171100306327264918338780487755125275925676535908502785760674150991101745142453251185557414592493979563789080381128468498605337349555288772638839076178574247656374439975037164612788973928312099822341645194462798974748735696823552711297054938595446033822760774226049892815614460224429223016282412565489923003210630245454369982705261600849932328363755479916308041177592049218938396119412449938910452122688721198327036391223275216130319125947467033263229820842145740477214224460311761041052879185527469243713505254377870956937775072406376296639554681193121966936033306568349746424789478457146349614284846680230234217935011422930347693357689403988867371591225738213201698546289267756261687263161471960662085691598230969959497878304754518081761410283362789496088926505027000975073479481187438937267895291787258104749361846946809817239802664305863569661536347286463111101336587952104911608007963192024576829419685999647870506993588609307886131654608978830303007809220430746974183930196878191386066541399845386156780729565319174177440565506915092305333489404969120167567093894750272336452714943461460556709944129777955153051324926891757346147360995230921122995235928428919686225707066936800279782479834845388207864369263766990588165118835894921472311241460191455215147839159874180475789716686447733589614331082257877469083108503954345666306877872122264172416940785960974498587071962050310193290265602163898979779297141733395695264630531713984304043043907348971156443916513289590900266689906078802226025653222938100795459892259340561280411487610363697156595734970959565307126960868932284459899801638844445302685353676752833298516092230291246783297370453440004337895332582834228086083516822465247677306973480370929123178244233680846283487635426714970498180486076393551863706252086465285041295392193528583194458459402397344022733864384586787155861084636990509859418461112143553670299909465666346758835055522736225017332340167072333829457044395581110071680174704414280568915894264861560837749100565064873988984782784249606049627776299003620887686945500579351880892728201970655592150466331560336240383395353785606920295951386929397033328649559423236958715785891159991000195520784753503579953514258323716039191774999682843484907153470499041179690400729009103125824742408653708535688988515790811125735366869823112224330996398506049885406537283241552661094965431713194868053045719166262290818453479929701328580984634834411236953662959845826260364365825430753856272730193516285867720815154514912392582893413516136860557755664438601377351962089578793671449765953333120357611395362417147504595994267560373596925952148280776750349165131227838131563876417593995041174230422307466475866166191979898442832841747996783180164597410650921040853720526632055140453398825183661791847611574010347101559631522574986268791924119757298285007553849347797994717199192861255409638413007875077185350162779021223955392069056268399793926581197072792573764554435775635647275698111790302665103815625391069145670416578537223111116843063752423762143307219030028161704093559919717261502819952672782124273548606685975330658142866574891141306996095552363294615067929607581779177413611597124220065757696141183636791703887117010064185508331601718419072734772461483936664953674951272026639412956485825886532336792067699858438644628846365532366819362433200579254908930597972931595737133983751840588721923345689683946141269283628481771809934097408256938431483114093077308274068568056157905993308630057076462015797828992173843582814635093831257842248693957471349972497924004199424216487915868638812086092551918060393529736684142770798160683678540179871909810087347445153730048749640864516320349320492499978992306992044644963581608969540312735932167850689691751479266624868926726901696899527168272693417409611281516544192776554226833397933756879260060784198807038976113747552714870944120084917076745946167821966333331045501408540398756145406340731273671397673365390497068501763572093303379891566674832500500877642822377535102549421589776183340540605198684085175871128238251575951040246073215896328231864491771733566196228598473468109768148310416208350875304429808868544631548336938043196821042111115826634327783299356933388977983931949589797806755574885137568283574874077195092522457099647788230601588669067176165784473537596249265489538712636040183579308560561267596288566897136941598560106679536306318473210984127723480243679396276792046431175431280506243581863712833254062259486539911261688921508964820226839240460646124344890058768881558124353465127369535620603355617414910288206000922064867572019197581107238348483267176838838602136040793182007864905034491197102114334405437449398164496132896256513857285401548934041361280714181437208585456248218199364393500724683711825882013981319818108430247454119517707191142750905252508366672181305934509555112198856980402353274724133918667084063592614084566720563365133075609412300722544050207945404085968112833552788511148459656751985155893411566701860585121547170620150592911947924782545395330997779500273620038932132534474602098198538889834806747577807121505689105898815090471775201969555861166934530502755366379666001744816210114116798608158212427081540149503561101493107152044712881111299814805078522800550012536880369629684365914302667067997616971927229360766625060985923527873801756103367847269610393487951279687815469982212877402290066601012355008895931193763378541351308715966876494334188499521060214680756770568995924255075846381539817660133626239564177559845345893462826657569106756534414384073858542241038060883777521260157928820398927210675301338653908166196077582483431062435589554550792491871003636054717186139053895636769223956399389637861958260665669878105896490775874706290378158985152951974632219054435226364635970633556844746771974184562852234034134741792307180032447279971678641201920916950067148108834563612179663927924658396541722444882299284338312343284452418323225632381360486663967587453125298964173244445398977199333194716166205190727312447300714094752727103541954059513438598048418691378406285876062672331135037771206806985694316498713584689708273401686017662740412559062536177788192081648345912053345130974492053148592516365157491147788900237626732475458030675808683634158302179666029484398426595909097600137414692539154281511641241982346839445399676377289575808414033947431917278450540931429305844425436004755441709057177233163742954311770775322327745933393490348307869379178585248783611993135266698171687284960922119258294184706793689933623937285733314742887989801305199097210209384728055225094537103529911552606625746066976179914684516988133014626534402719986170423571346210316460767068004423359466678652246144950716717542194999822075624953016924749510558936888920812099639682577247767492978911570123322132298353616725533074311268690643215004777465801338817556784737738088813180939042587781800020005830444583614142368626671781799792413655190201069069748984532510294145508475132959450275664297960795603123192171305229618295275801167348366297016389972522248854845092076548009978202647133439085218568458353234798102099343230829455673550576534718223005684442631483701812776627982817523341069081307149305740360451202766891484709625748638359380777820412419354119835812192157678722586344598742667280304201262914160447843451851351790768535695339110141787592155023187503221154127387992706363965448952546993695045537592594751592785840537630817084643787602408408646193904285253747579167220717234891483788423496520481216227196681629731311338959115023878462418640287311818819213766406464927798388822750494417071370580477404271594800398380448316248557145525952095706333440596265120853559153399609762222241946521508113325923365860042351967976251540860295028066827191454739187692455611265445864599498122494216331630352452892201570346553263111112860170526683173120706320750422660519669845782613535116142250863737352095972765563264798189523099975284039963885668796302605159937883036849161789827984437639806063948156799855527986997102889532186519371558172538793422916903596113481475273227128924033844476299660808252883909178136295769964024931199686365819025137609891453774573087136532324991198681538404967261007296144711451441121013777156827254207240642254216880954673147520031953720108406105546229013467466365908642655658710669719203078633276513873370807060706154967763146430362231542788255319516783446877334901779682888914994548733850916342557289831907109785346925661316556685627927636643156476797205202949078414971778422788812966280913692124396503144858064259495417010684966430129165863012500582040473226265987295560010353965413787234924112639963898283692179343709203774818866868270849132836472907504542569901971743370398128170727255084017452756578908329493615642025339206205908352988036954748656025127634366254052511204099100951262589537396358055344063240872894940450062071605120847232649914708925422355036276826917625177044973721953684843458623126295225219474473571266262307769878550265720460766368603801345177056773352835180445892227888542037198470474279219411980930540019415000419551266972603659919162196876337296175747686455250753977291440869979342292935010010741328831461949192011641631222696680179579235996669429240962183112428554241467510080121076325093040617092828439164829563845228803317716181455105410189887709173563768554603589644516092580911634493003137284291711264346551874332253884971207807678918808786966838774244436816158974573317177868739863456392836605010249112549612647250534047091935999127759272730361520463739757879512388790496376731558839686830684855114408825963235108551465636096235112596412319628238058191173967821270838486113039758690404616007339471131115850430624940992666607656957177471306280779825460058569820125193807563930369365190811226555544489180617246839742451320904408750481678229546835251517323813149313239283241097147801581131359713287546074227839993405369112604713019294963778084223224196339075372711432684795226334940200804725029731889753061873502799985745238580640588638938086454026060784555399218351258249043706090436463292971895435765755406340569933980015341996860750589583442273603773042880937989485555465637367685118109240534144237033785534524631146069716924356000262975317872738005509355855730068779473909515549561410380391804899368931659037693131036811049023612755910915383042427585439231257112387310640525456128195320484353771850299706448954838336018895490005398415714790216670214406565663031770356292899763382077352605095507680077310211579757896792314084000890768253022199335332442339130407887833095791427074765711879899907209453643314240134526057281671831219046876528653966239625145327960160860808287060448034374830615881660296436240309719644480137964706791320091563098064133891855515359170735675943011461054452942942566312402084211169221288817460674640672624426952980294385233748931831878844309640422705998109633021486501605483051698842561111799880654419330982630901065800157884436048939080930554085068718471180223486569185108086608971797249938851292375623167728495738906415426483793902656374831796878998270467752146887419534490764085044045793475640301530939752878086622950010859452821332953964544171235437287154177140698948500694214623742816141684532113973937884473927527142663450020367873884240054904900522273140400606269236438577475068404439121729438243043019522338911244840209571229007527106120535498456821802062309900269246188440861583564876029903055976951407439867138819845671481104557702327003817209960184716004875899564727643491830879774334819427749935127145312939894852299885905068189951170484200248411880362509900973263776921177162353872771797420906498568666736718502901649783700901930025302229112009373728045639510828536701710033126396041849509414468750299349080158144847512286408945243415529754773343038052157029932298507338403540625039413632404920945151820499467646772262664903177786455083091321787989835212118295115957989872005079129994719529220719984205794578668418842587201346238281138362827122085527466262965042836056109655867158978456510507673274855212938209507483248499526655841495415850894442395757826469243427137049101177354311396496655413921983820057470928974215231071927529831552684445422966636205982961594800521672030082153102216369238422581839827885849318742117316531415359664385269259843126224161132280601582830974464132482876512930103041080664060915355381919808699702913985312136929634902467055081253380746006242354283835019247097710668947736039972374304302760055339498601873139440973197788108310201082400725016122842579979024578639185070240814925395351410485963433043484480206999966642214265113525576094508242280432384878285470360463227888297176436294552397839281813524884565134753258156190985628877300136031124430899416088265090382443554941553213874697594395008925629951631267939496627671409745226957350943551271746533560547607927038093851451161595581930001551955782407280858500605733620872775233179432518143224694346596579560832691982891949362334023995281170780983602562093485670512843248677231317880536615639783603312872604332248891555446760497463422851332272123197279739226333068159992365238034275600510799438565481560977459761148704525065101494601002772895209654819338015280430353747318518539231283782943195059651988214021973231596923408327874293898897953241129839320452865997379276612047522930670232368084373234085178120780721874822267113180999662558829540004121121045698031927139701821828919438641564281064615091053068964687650545004648568251352488308312129329305212536844864582771184751680497815072082674066704847410730287303984518927100051730706599506867364393462184241343721286875144632906521559203396207923398441078421975498920996041288033572825969682315978908122663273543028257329446350846286717296189001854632246783472145619458411043093297454859662337422647178575710669649833101438272872611506232508860837297646506538965746996107637333349289387812460594877909637643734586609263515864716291068630227189221712126868381796938441573421781845239422271820318738185974515618825114507474971187025720583002494401315027992649363314989538858430273370491048524893993233087549397083013691849023105275555499839021088265167139513644700480517893850760969006382266538091100606911528996676500132598502175100630567362158334995642566623703417162070980634217576923637750647635087332366050480080067295347486855235630354457014456552605215289338109098828997197523347569947751941289376833004789137528400374331669039141482655655826908422525695204858648910250659220823095867621226559968239258692940780868827307695800147347499290610984231163619840239670512608120364765341923786903495457973137737969032821381319639858286224892982450828736043167824806885996375050472475224032931189450634222830550562687896622323428270050946193255671332381418178589791624077168750160298990877166275932489406091147417131537830565808937985396256768688491967253066855722861583821753836215592826917201849364244259927462741378598821822789286158402486836526378021603675801032863839347778634183505338325557413379602224357812327084454677724063409287504215178056074177935310541770771287053226244599689801262591829733908677228185215483653253769249146522434647400160765500255090388812041178638589445666799209960223770159606169621580725548015743292189840556204698486995967590827214034733564836715449913354613733027125353118342234037184143316869688093807198832367106625750797857708147930838820655425402004893611731088812737680257095623166182170815697524337317878487348866421355484189610006596921213525662014557522628475385662323165648427361950276570836257442174329967752758387520117772823188725941813757471069904262213485101108877995696752328627517107462074467298677921950680810698791582587780258207364079308611948069696779110428959982414921795545576107920481673559112903320735566252202710363211849945563834176769103073360768472776839796462497758178127132636434952499539896410242845804192114235485238929529534837159885495814989049377509189708862628910674132490106823948598664939231028746575717818750358263129742551633432910166924958227838533305039366574434286647862957485732626464223944866567560483252722776824739413574522849583022003942647002874945032692984519824666047586639164029599183040843466058183059832245838298258093727861365644564733332048815151118637856630338212363450229928426691956462691360434184601065396484035282417951730081756180893770006181130114720962615361603410297519953264512616439542599315271464227590224010089934624073524237010564274700499589821592747549206052059632481069755098300460518729487370156184094140247146178930286772567060423934556050501609406603594145030252943727285095963151060916048400104901832929927607361808288915987145095925198968294169085087981899979511536159738203062886716286153874995839309439869987050977726784814056262125443767328373800105895195408285570645993393028176861613970772200845426916456850425068176779239511740763015007676621677455997953819190911889292050349892015182637547236719444119065804024148287059479323038151090321376398084747673930593374292559009576742591718413952989450352567639136777370291025275760566188835826635730361702989300856447992019526517460895214021441065699450369923389509662856630024291626077155867786301753269096076078642450252460751172944417983973536867752869529564809232050596651626519442870368745832816938757414720421586531438552904932678042760750506661092021575158389011913905159314962029538294631415299047573332858584819882071604929846194681073577059912580436368043811666495214339540723819566106071482896138941493702053697181940557155462319794212606834421518537644625429154461091595514539590892528238989906663863681580299438477430710520923510949305174085015660351305387476002199061213615426423151199455914014128070049581202105952079605828957621312496474441190566898279120823184748927665476813110706211457149441208347891275358168578855199340695937898947059867904850946655073593130828398740659145446433679518068314418415242356125305200758540996768978470070161115373416593179668154344262098839170131723181890211050087718357407379548542534086287075103128929710714338683444850990935891402614115035080491687861631072067164982692523401752817464538371545572054569917348729556048652192294320204609968023087251129834633772072420742695586560526771706893425871123192678825465589977279040741467519300474187900469291287424237029143019109305489022224650522212141548390677960253662392417148518099445573510571637223320273085608112981778264480777891244519423505640336438420119407279212331354114820313399002767980673394421910227909830956994846339692169956512350419013023357690995748172059639041219617448899213648602198664566883563873955374667915210856118715452664229477475737633655356114353197309767179734740997487407194038657804122464353180025634121053894092588956786681586861022879748140696025692314435886260031554746958051519999243571706023549801890384618192742653008747470840246309921305974260671621700401728052152305359813960209078298958903837097887400288331804669476250173303789908358337906892657553285138404301448428001109480368791920119814593470872883426292075533444880771637938442958052051004228708139782947820845432078255476721227505674037195275133200316346932355389912939723708205405911277434606543833868213485686315771542537042379493030330393287018059006424714502783182166990307352000452573459614059259435954843174581532301583905143396671597682853078196051488268076402159693414126126297547801279932079288367938995191720099329254077556459553751057226915749600889405480156176331960532688533942066721439028961016274764190398232405006042368951553468269636598121600097268753598555663740691708915190718470081385427409690095890095008395838243587443818867618763540894384846948036229242641429135353401550028903433513229085090993158853356846098519951782009999749001930310720041546892072973686085482302665079565740960926884980146709415925452084444253190016523477169652672287617158146755729133500311694156959808425719097130342788201463543483616074209470593230486787168650025110643833251483660687923466988424180426281817744229986492711482967722602742453744593522096234078009079005116877484986515806321788135762504107670920910136516953886272265644424399681224954060408480739674459065543830694722990061889948912755487430445205377013984267297308911548972682293616453760697567383341638062907721782749530000655454297640618533431890276324941044327789157776450485697122223712963835272455547677464413175158519965115933423891670771861543306097655800034940177243896922830771646612283743782376812058127851907132897211512855023941177963816218067216842344775206721253768714432330456054417494586975550799812459617021915956730620151685827370254250542932436154331956104020866653159912035516839681586867898669941053040764419707103913919150106959253351498132804103643398658452735168337606219076562790511637461975431325243887544327316183745761842577000740015726358107793574327464967373219175267245851701809572224745147875611766053730213190768020572709529753672813515618828460334333876011119088104206130870941640922553291602944361224654979992176318034966883820099090942112091741227429730725840453271815548786785340732137745575850892074890031059259228583910712901861822696382115025428289349682452536315723931136616155142922435101669591841776101228260930495259065346268141059035948774920634557367641310893686560618256606893554107364471640632649244861425185908272257499958740089736709166347328900599656695466889957879941311163389813767012495940314444006795873494756336013665527156773792338709009986550699861747245063046722265945039609374103138031159455130988602040849162592800917502654094613528367479532633652152605232058689874242400751165793648962359810381284554783152950529385394752312008642266984113721758957736967623894410000499440138891989807326397305321936425364302073699496695442569258963936796449806951835511719334665657560559433788454098226703821046419587568559036375287047411890679865308304277891429059783529356640719498409936057071483810352608994530659882426615720415058883479442069293022492080673305201816078347906527557657705026741615324810435862117483352369920333538831679474360598221662241465680172956554011951746536737363970699864263358861603412984518371443449280870151353288573693979806794019679279573738974597406426102933153736769371088277101872917060579084359271478274556737345496295550069283916221917654067197319893211469059617371352868304867547038271689028383006821372478582846085099287209320304329273537098073113588300259329259935719908653061835777635338561372808176444801595931435387157274658727914365603453104834580100288044030553912681723087614251237508490806919590037714011922325355577899166069168119654119203056078645272987121666850406689906548993809285820730175728869778119361071444128976409105137346492654359499326083826419905019593567392321773669645226179605667676844393170043593615587525474120788670605761348414551745039259894313371960505203273817679112379850472449014629804226779975031675488262121513692992736772286116240848456862613432917189971532742801864544075571084225445022218848489729912348137780970919523523891871233926032701995850848027024133831960568893447325868880840159262937548094227616970442854967330475470635631706833004836414151966894561937012967001698333388128735948810678469581981202587154079943726218890070471281856714334092670932737230534165217217333708090412098743632383053661266807056311366912976037467308625166676848462656057342230258935889642609999850656756329583577489856868951746342525278300085176399769719450343513123495294897624614074490893239765021910364150827422176568382590370641796062883119259549302762563186251968544706893169445812040654597350137791055139909854328189506038214696887502151935761189304424983834108701601751770762602651218070956240070560627651266910205997981757664132239445465958658181997709056409371041757012413126397899753349026871683568871944532023915926513599381705219334458889159999084713579122679678252931659620536113701456027955887109572882118082779228290871265511744587970210977841823769996107882528251177731476755064119596924247152243698869701765688941122050222821012388757364139723732189293775063774400376649064581557750280474594509138942868516141027389385503684905443006927223651076262097250245925875362923826190616239659509696590728154945663882834241309852649367864741445926960161682916570600543043663871809086303316368354263667341890813760968170292639476539212479276859043567035579661830070332572148789652560742924118684528475041694675463733351876695044567222628453449755052040319224682622606695627328155759157861848058311683846149552181323601933870602840722067623247909852064345081452486728959361212143242716134456481938721037577901316948253411146186763280550766745543465484716499149337023146172702215049447755781968577036519810206646203879900240272042321239916102635509236139815828813157485349621883490807683453184624684797729069511561659947438791745012139810812743704456819439290459126609045247625098174232979055674757014556990373961000534284972892260827905602598266795184319366424312316071037417530090485827817874048133407651088680471472692238107707704714047038505808371022094217744274721110212739759856004810477555248232970391820730736091411782435694101856722796909579048782505483380087801500786398439609389034719307715962199756505436049019872957142722009072943151196421052300453752695564652655796722532013104272709852032956383907253366700175565504405532271872050402887328751805560927431241144682625528440759418480088756153591288926802345229395225970658819010810468681337113995787702079124454649038874257378152164446000833168009634747584778484255007381317279402656559375795758431335384095434863048331903454205198222351842551839946411933084688475234568608029774124988529300362916269949152254903498251901598945482379028993600737317305716459287042477567651468149417399702513351486667215026614136037425928372673708332307880894321557980620154655092314862051120303817502347013474981876543106075895343985333002660590813652303140000302692129518872332998758339323805218059807972508072297628213328283865629665475613749660178845704438654145441312931017538209966622660939855506108788322650096275542223144328906759825255525004004552352863817672796653448935311629535750017829286514775096980028043561637341696122158435658377945533887525011922128647767911977059981072424905925681963352904679836990871523696951223957756848585504487783473485507882884560237569288174834044599863447557185406008125350206448831592910964062261041014435497523654669393408001699820465700597495771498551760376975254513917083911659918984255565224481351013518642183468747464190103517301724814364143297978199261865180295966855418904872949152792811261854145030884226917801781734624844971218282043927483405334935584889522537783262463294318953865280193117869303922661295045649848234566211495455923711552535750604436284652961152414412932304716826956680779317972056740212823160773584358413048221196934385088328572589284680200340077627197065760679231817931374037112950588024333592135272706495418555092377558155963447093478267633480965601305508844104294053189936725272499048483871719801990393102075039522598785407824241774341099580159150304124681146933734545952818202897169429664598215737971500669071675267649977194190228594315030548187509133385827101579619079716967734729073358437202633521945182880655386849700800387243176373391558476745686226808416776211853743044344589588286123390077112302041004180924186738298812052933887235505343193065540347100487145286108317952763929002774961240544627945791552870641934154896550613368887579231661811576183427497144993353381338271974851821804261207579378647603271141073762910954234026222624980615294165388772377369041778325117600097940068242693398554704428856999190328914961067090188288181875668250549411410450037899306996261778676718969011037150402644186681988479294688588049769485823864057430230747297220339728895273421926398622139779960935604236521224441198146041768192884921369558074921307023786344010426749145934847348634738261321494129178247044176410634453123912016828772213766446611291127742051810489065992735524362757595862889008004099438380391975720422180655986653221847557243541920212771219921414932722149858112528579882958409303070310453055198448595547164136546836767411104976872985436960490243308569435357017340180999750854326201768663209712715622946244617933039226047416947989775670708534609724541647875199741390879329200099170259081258116205657254807185723885748588224921748352555973704951646004345216625053040861236517875614460327767787498478060949781286520401532701155404728510433993821452577329241399822352315575518534712678733209814366641098160882155754885921325894449564395753535289690930012862428611388183927535741641993485921638792010663280130355938262897621259175101236902316855881983851103494272846682701843246908890063586568544981187690066661908122251062958877297776255119048909643846389265108578160179678594877198314865460065518553311387429480455553385190942780500374380060707128006171780653525305267898134817447142550608319328720329917499177010016569695893190814724717133065047836336151762937685360258522964034935163470860076137332481938247096893371162917645695141372052814283005679067458066994477889183354913549998388602866024615391197682017290474649176615723340860527393770726085445656957722189712334454509070332241815034706838614407301573882332871504039427752757854762178010131904622130736525281222619182998372969929916838198051370848297306962028892623695858131224682946282219684820211339558849091466224887316260362771369776674800065991495955200007280077333174658887763022430096792612635838027896360740602127841161978546872718232905230097292050004882515822338960271648255813666813916276873105457449437954712664964861644121092196563137644052024186972437986595226296837121068711643602889926325394962379357905757961378845492320120942426782618453449586349890942076564856487374077551256222829119995428680162070258067587176247539822694262893517334408418482709322333542116357235399236215471131533437897087753880237222369719714491649011925470801360220794427371092416815613146994726938452276836325130957097919331706621630990530330176564541193575210018201375633903038118411075729888387293419008931339505303614176703465369821658566801795924670943621821276591840062867845847059987542734877157235333312087977713575624171844763390126276813031313067021828259292790218774290902734343114069781996041388549370528528758645771614552565293056154805406903449231464191422769864883553768339808675584682825181234806666184546618811120355824178013304693508494266066114656608316117138544251684178745167496526420927221660470043026691797169991152793360849714202954700346787680990009073265806542592650337034463820846204921083445272444823830670216807839504726581958081069267716832955369642752409409806806625385171436651382632195495248375841295495520046151660050795331824233727191076876728844270559823373246226167740608869034650095604891613142524338999959155102816696101445415492551734076907108965921478256433331845782106300604291619548780622831406522332097238216548277376298868106484423884149960287463576857989984847458642810859409138913945283109837010649283488469849386808460859162368727622930977022598334473747563909464466128748862157393612524013306586210406948938474827617132141495152116128670087289999437241717445905894947747789961908135584074221596202723468373010724968654454435871081186002982157388876922670118320663012757378961384469665217083242084877282790282580284632458710427137059758705260685010690839856612876431664223357282462828993863219671106016060616681008284174485758847280647462542250118741097397967712593046116793655452972597792695841373992291079205161361657798777388720317405142687552086149163706183385838293042229844118160884266408908782457790762645944796272738153846212125130712928689980514132449860675868628240990631964516957927695315859830400060115647594629792112384649564799445081154101797242292890857035176136957092111928745567928953113800262015219554458736147805326669603967287335536388212810274649553751115912891821701384495155747298983658968865035449512158788748025149792082475757469623776321991389736901616486256350415050877243408716806290425603909049856204442802274026925243962112429782999649750134185198165172467439264812535945011902032101367215858085445649070389192955356611090048288542809149120596480393089856674746401377952300877770795816547789364350747451695905767397168959344108749566350380155377067518411694974927546820691420279550005908087346235551541129234094152057983863463875957790301550569578564088789147579375929280265637441278165502468785933515719724729553081374234347569964597495187478351027026714789994074035771838060414515862124750142909448325145291687095354938059401550157345929992541869699689520481780928253912287997330255698536699899936562422414605707776792580183687054964254067259388568203414680144900516393793169425809737452588632059538994557533889411663490934074696496008357353070930609376129406980040319466201914678686149096677361072849680634649016477366475372408192404742019800937179568281200029806235062409271356090498665915034373952976876285699485269032470583030028479466162199730857801043261133880243331501153163687807145322893070318791106309227178969954503281729362313860825796609306704023697949455959848816488944388843428208843358961768666700431280955255512636801053329605479527487644203706986388549711673699849348173379287400824680063176095095379518528780977275524974370269896292005401671766198751073930631961043812197842642425587522351530956254765782520253342112333138106384743218244276732977431891085394398934015766249506955001163189504671903472031064408498545128794074656821746321595681838778169145719963394635884222398746417484330094383268939738742232691974329995873044802706144927772215097570706086554985249477203706349844909403022147015326050427962067208900945884875917398759258405048802156926684979438647878262883588676826850800704267916686529147147759019693182624254357394535258169006386289494027168277710778699913453793784019707594327807914650709749853218967666496288185726048942883276013177058937338009427568463669403256227665952303045018191108370281093989800085869194422089503119886591549165516062500603108138475924900804219355962034866945653533753807854683425949051131296452321744354618193412358998138506407914320340642323637663526680852564451738139417052085783246765820940019103628102800715883879958220005517296202345350491250348345546134512019542251279096259115094622724868921232907731908460499474575399114286786611115738435458756874539365970945232672670635836200212560494291588343953887842394588665880281648521780222023313716004283419087898263761567587507207242649591009231507446993711981375188069579609496666479096586100138072138750372701175855553665707948477135448498202364402826775598568956496828544366398582382002436486356559501234329371905141491138802561028902375542993033386092877037275597244536890764804557154639697479643955685092114219032729645048701613329676567848382810264463078020469969851648430260525232123912970096199219166708063573420171918494352041369546055556091621695425882691111259489058803260672595494793961427053532457935790449925159750780212704920491902005518204508671423368348697901924123156407277036571415122076939782160752673251560654953429603124655834146329843204904767913668247856206372714394328201394379193311344053724091538098441694693013576539032279325549908162453600814361146982191345972701768372669672892059792258949117287012335001880077010000310335774609406665469681050380924446545292355841933269185290267254053649354155786370198368052266583809637226193031345426086172592517121500709816074068147824026755108151618317199988736584931981692218198340555016085160900920971199172955621736087997770278619692649188000713619752264388759316937545014259430399647891226664797120906609826309408607958030604673062807056011868070753385614559701680898842856884022317236543722800001646712693532461865120801116398375875368300775052659379288139615493962252410338250923242099842266500837413566721816763183230276146319399059050108301164085708620711991338919997137399501145701034279074657436845799457765761187744822386704549909698680466438475026819423421530028592944991224505458815818793457996016002201124763178846453704660273954439170155056100523698224260877177272057109922848001672188959218015423293945262035389243463518219398581324792812657688512193844487458601136412718384381609948087680731922959790022294553030850037569581252931427505835319057333082385739665624345437582257025695586105248609386529709114382078683625425839152312019292687672223847181857233410283945344105694167212921594296519289132194491116828103781627733491974304346884915049051452977469130673693747679554229206433799513350377840176305658898886423905753083227857695089487311332221513139974308041190504431399491859476544522434761150731315204485796346652767640258861515474260783737738024545202177378734863103930590928463304658121073490999989882749418028602054232766748971115296104363276974088762141307780194125799720151541997335325210619478243533499247756189448514792327543390166024683137246748848913210750122016065866351968553975944128321531627985830703482741858365030364514413567186753898381140199489497400209052355797465040443765698418832598507611126238313075588509186439984605384894043211973404828390371171696624753869919157741541904829452986831142123946565501717248624958612872948995580230005562486213745885442889012030089867951550385610250946399629393421925855703477302195329448600847744458518859408189347268133743491187846065867743076175869821861276801095975949515013066866021940610411284169452974564324061637976406848535905550425157839320286290996165465998480540546507200352552203787706837480677732078001593458390625323017632961918726986383442416914443514667434275913443280634815947656343550935219610836090018471540660669746400806933015308684530387285829874042340282870284660461259630429949870773387838669400852621803212567287943339945464566312415549044478462665346093675948416522063488589592850546998001356309342991669429307371317910922742335806490383149086344546385206824794808071375531053356752764519384741514515496106558980764482533976796211601057892620137548359936889387427086327814721435490363855772847772613380300510603659622085925807509386184012711513380911649566293160153381104538724749991310018593809072490884480013487566172261256380007655027972781849762547141054108569104696152056301152668380292556226179694216774783124800416451759660880584615722951092254628918758072074920127526319129460507934377619276794413567284584714553912923872053970339718775809733492814089787418048936957884237271676729449925197663512642125217021458338641456551075304808102742693941353686165238782103502917851621764222006513619388710655237978590337719839940842206865056648091270338807985265654543722517314931005565197676400649070135501404210119636612543123594012641556985023883339045875836171426477234578152066176695473478487435252744987622703669090241210041522440250118997249642310777538099567582633481190292424976518326614011222204109586841329030163493343029229854175594288649706022377676662662683501782263866698622698373917293308244547470586848553440400854493373377288016441959549565896550648141212301484109633180875863163928310611842839952425996927836556327301831945394067788021276101892962798220180116828809202011538565256857725152623822191093710838869604471939192531294174161068158446212407258581131672368625303216207438916231409727493025010104044669496575610647546843240860638544984724665119369084048781207028599650429834729390848273199693087447487844550328336870075444884836690825766861445492743916477785317821513056517707148468022362522777935424838690677327455493663009483373330679477338328038905750019712283222276620157674867502077236144405056162220352428937208105641920666586338508084108096029799736592903419814406713988923015589563814736300002325352205273839210015876855928097184103029733907476510461580640571592664570862208010672224401221389332066251357628296818745384138942753825463792481250226891409153218704319586223969978656226555820727398285510062024849054771548841509950553236863248171337049307276248827626797473907032206781915430782216553102217079662197120328146777831278472520187432822729045233626581471731668719028536116744578005055897814202792660293865647950841585627136518186831007601780597495392374334244402431823411888548947001758304494546738236121567476762915885818032313466117644982472469529694099381231943500279110684387564597669483345265470260975788664648105149222193033425684098687129799369623509978012788523957187129142383901459224886542531895896999623644738346481666520832318996809673500509712781381824625605622847084684241803831654129416796358908491293785508017086517348741924499936109565035294790397524371237348944342468802435053130800359594408534076157045557077353798926404037320164395697762340044052884308582125024219145625477375222215911937772191553436009412757697472581387317054560607943335104517024115895805770258529168045514301090633576257031789413396283434660813859874929968927240450294227185264537614079755800556177888455354876940728792348392993737625296099374273638274779618631311018497173479271720616107484711844112338455077320053816030749586929862275259338336841512547405412210186921247279836073182332352781638780517416527576578101464151648204264434285740490279073172857106110751419458863190617127197273275126068935855704547538710565181713179476022275471187722744330296139531339189539076730992009067618404847342971163623624765537306332249199450524526099958423662105744655050585808623364969194707037903349501554838411299614732709313940459756448866747006673497679000576387073922950600053029317100341076589923659848687149300539506235588206732545969105310346484463397559253757399515859126797563145193439134774666740391822153923425034263893900135484126638287881976715327079381960362626608953296929007567207577665497999444969304991773457895533526048377554739467548751463312089504455862289292697053869842769984578909011578661043022656225473195237383552604977670190138755837366317130758155730413256295918002410088876303960669066764526550040112293736574992768469816450971738536923279118667686161007177517317445663801151224419508335217276839813627111013066278473366171007357673530657911560027817645350789463933145947326330066893532149857220794289174222148272624492041396121819968316966581249373617430587691236151657100354662380176132112280972635168534974432142728750804840698945194375794971084329761247494372205355796289153552617562097601763113218254399120044703326797266853764266936616757791838534644086695498259305358428837068444947388607479639150200200733324858592069677567380566348063654654183680988788922176784825647231570270722087730639956303982994033999781529741678684287098997745576522042033566379452208205946995939990085979936342846567950953077784249470161847896686744154751961503910913757822763419835802721534432988336258381436089892994140314580593819270364400567606235364417259026865314637259706070689901572807481061799318345989583194835386220880548092623306634997994510092765793160309758950495548588373822224361165113737690012375126939496025256097207394007655362367653102905858305290127905053118034991847445551592309320054965256316629354411527204964289279988729134675104907145448308545451291092046081172914796364220233615253790906931146438249962425970923287911001825527679891433156157558277082093916995753369218332962567315143142918160009807564447192412126744226003379735903606761174037259852451665173277989549642775287974134524182792627699735483737877458895367212480402534427638053168138943011241219447086695976055524225335200794764981331518742940387876549956336912614108962729689672348086860234525699325222768805874290856595251827195137999996492839925645608023030594772603011896971049617163999783333345610244733611210259363563994389771356821607913926184386111993387616494297815266328505574541888767796134422936963654650284927736644628309015870479468444562001944646990754661026944241859496008160094772517288689269498637845504823427130266420308036446057034527358099694823138938457496485609784450563741441844365825071634390204909970209580962142412091553219876602894855511360702904566655441817736228277994556020822306087755618966035185385471409243038684376875622381253389599930497838659368242819195929534016631845957355101358059735327840101621779995472423572702906049764324881068540846255949181604215174750896211347488677790357531390719066741030698008320659194567356081435940082290543847234849554180447938305371497403103634051788990463151952677497534719468470128835958451390689311310269659664846350203830523048646178669217394674594609023647601697093598897781394299412545407679363132040459429728085931662208402158205956093041965513921819336526233880076903713312696310094004702042398285475380486045559353253365124693790463829544970101275568724375191088603032817276835894844723681172373785091145809060600262548508577978488590279927255251972248095049248572374463677374208108898695571608110181045619416803479257883184885998297099853373141348208657025288253953831207365835665712109725180602444944276185263792215561527178134255240779876116955647363132409066425097035284442969892550538964403410555296442876347069478167973484438943445892307053190999532175018801334149954806487849815613263645931649707180310292053852395142500956954036182350773448163506291224773030400039766676456403329201102390975777921126981663012954082196114036552763665847539642653476628584742747128244742169220357693252280785308728005592719707672148769157057054444470939427117151210775081865178898701584048557048934652430262099289823952532640421791262316953468146794299512133413115290439063284772395638778271481404635112064889151380526879529232814323326200248193450512660714163394904153195276311634323235883158718399430185054335715642011031688105363520532437637058039991389068203878517402614809993616118198452748691514472302364018474697688303061514532930811336423336913048458949599779502771041328193091746927480741393040331707025520882834527063959592839276107240987765294785717801622846554655636412608042257802225708125433644581215370740810235433607509838041165030763728284429522636873045766057155606350810537697898374209450770566986353494114539005075852666986417485504624866688232196568377564057241280709682613735418177204430216238345062231774545493421523623469255599072755146303637974539033269652072048021342951594240543106667576198773769744359161563301711941559299106661419273853341077583794667364201405759590235390781694256114514853593493512551195394086007140249751659369821586735529614463187113805529758250907697823096385346180879246722261677215214641160936208014769596425463170125931959077100265398341864160350677167664240104959624011522595131069808230159687590067796963373965017319188678453667747919313252747473105993326119976714051448809484725834151110997860904531054544698539731827216760464264050294483502980871045746829499301503710371530650492173504039745156869901602088088207185124552767815146632521678970155461611897060806086944732834208068200587184835095692057100054055993546876077911067877895362647807872498069584363617644280263783441421981741716038963761639529081059924945408240239772037989835545530781884801413097952541134531166503754539402902260549867045686144830243244471808943328490975518775024487223399149132109666316487578827485771029174951242321192843563276557728245618068426986447519095009711394375042649879070462413478347648497738007943944311420858650361255964244989942884720989579090134691250419091512242556367698073656783865963464436789196333807913269467416986290491498424823845963688688399565591439502410193456117769229291767162123669050295839581541872753896381341586135961548294719357236114255505679867453153617387894231557849234749234969808723967585390513856559244651013731274695378626835945214097427928491564682850051446222994225060224814744607639642765891312580777173062185117861395653169422170260844446205670920928406887872479961741507500195378031942134325765482908217040592967002204577754682389391166071931585978463060631349276236631907275632545748458403718999266317439424286971504025130440329391508901442115833738008011800958067676633468296339114153610048034805036224873353484567443551729542359246211009793835573675642139484747915949616121277607873002722379946067995276436588866998482480882812775168300361993623619892466151610222497259023155157308719978616246249102034220352181763720545341910829614094191080770701531401950176598472136260049168257786487847825549401522776180811528374589693282141526739191029389991317945302709616505670095096259538628843689038745085071873352421974386200673482710244406150984031562328459940667562141536363487907109944341711511712295108429377828461567152457195490869597707634875249443583864442250224843785058652301924627135866003363545220981776959746122178230259533764872123127237816345616087564183257505234307639040796860458473310741363021121523696660427065798345256930557597161300726595800003643805963467223586172712520641486539644891007100261454962780790055215000905763637489279547886594535964577133143149452917156156893606625579395467529234490110545435434821111768225017325896282170185677345751291495503867723581612679745834345445605002303691192807906090314443536349867132273278787311554463477949914645330588896290049749284076437831961197260251573951185830687636831562668357383362391970546372939167554929331718318524467120397603333135843324856312210485636361300880086570793365349202599626693858276303611180361636637238743682895127103741299417474918721489125541241390975602749983574752170504421460230732943408107815893135539037555434172456293971197902311671458335558507669875434457208316032947376111837968391976358900300750136842657240044051566398239122976734639597269257104282191390869350003235582884134772808198925261596157652783834110809698803723247411268566458787813384386267917451392205569965417039967616762596305061816152514645430805851291987542651172442207855715125784626658508997260241301187165362576478264291454241831370813008308715126657936533025223371644792963288000729030114069478173177107593123363295251820627674723077015882014078788681107704084061124474242453647302079494539827867248504045218076908209908294255200950884520776129717316877246712983674500020423620176948043546294920671657877069155917181254032019088551558193794593374295380296295050353226492135919725252864161989931417212528834726375362246388470281878793347660388347507261819697184818293650475843471901361145133482104595448379719862345281871126463721436552821829436274689716332174277242857646049082583019094139084961262441792840002100084414418478010851572575698657966650765645400838883764967504106965028084678315666944601218754891581583067756635895945580625372307342499058190149962975663103753562904327696956797385905539285274376532054987879224026494145690136943477919574381323893911681875380849988550337001150011600457304249599767324807971890444024534442367997264371698740391972329174619072211537986038429051835979627480434098399404804538507258179502535522339434390883086279601673645376419074101369672436642148392889310647661865332701642755063314987623593708130103391890522061999361412955945051250496348767610003648486612529456335548176407049373799219985909223695077830562977358116364797611506173021631079270358076112357521068484654942423329747991068525809509992171411293623647938113494418613420001565382708397749130447639353064831252198191474951724041820648342677919297771838401731318473782608998845306088778818156965376368572626410384302655753966516221276539678894802164939889507207714962600765330739431101563855577596554718129278582200148971220080729184943633826626801552529635000088617763585507791518971276360458275069773163482734383265834957732195034231176644839491125874610838778053948991233854431206361286144722196030251966954812949122778276291554838629099654116050396218386619696954831706504653234952743194076218721249489680562022866858751801903529127238097770314238404501723515061057987491597515129856857028312331278876624634759336424427908345513624371202701566230791534003570547666474501483481529336822055626752664112470568120170818191760804096144573987239257381358973747701665646352186218028851780080285855904529303563577049001266120670261995242379675533753906966726638217082189070074258451890912592700611420325491021713871024341999125706309106689200449938002797800786461744708176931053927941859668158671846350501748421505660448060016684312137524653293111226044896327189181721087017191543258360352434387659535531266569199356938288747209441595577080930470632345110281714952158016592185634258556474536545845341432510791350474005526514896463887340252565733740144119196987254393033978013287277225812863233201639720385109084503629059718650686176379755597898177048622952099288885237023275931619674627759075866456675822980276053186715238145533175499073839828359811981104946758305389328308586004009469299032927773907883374892347847820782544150475238943880642462655989873376668223319974332376472047488075756326103968134414036086768048525727021997556849017010031141355938956029809673053123203889722425066377528772253944854928680391807355000023996394201629471010446472975556231621827143319767210136562698635232347154383859132344271765685056972181957758435476305425739297236090198337292365190265726031896291916999493941489422817636363494409768799413975822076330780674018625936416192279060624075033232088634821475721547188833986149664062473081732444784119111279986444973720359190607200916684345877306377111582932254330109222803326050028020250263997070730646923485560424491155215889853928466887157719376347770483788846052646050145117619484771431102839880453121061057203715651990862810901926266784799213157131241009178197494065651578714524440058448896960824240054254501812803145778057578008655105585146475537964443013973019942484568338047546647541398636117402289126936065253559580408162999352671036701270069540963219205019336076515139984225879749056519263619520697628586312446970765739755826010752998245712994135356364886107039500217937650499701129579942285742519553102241551089091792363421870361602243893210656836305488755585032028886530121355427808289030056287307657464492522589605350890131551424519645275405001297252697569810763232723732687351116267165375225039934342142407467064717607514700137105055817414399896546710646126095764869313858263359089388250198584154438886838517503994170824567879279882954902159078967997881681749091370445928196453848981769975798303378605565788230585027539618542557468668334199986432344020753634891407594200364273610839995492627707898313376964329875534838123196042261653786593577798157360246217835204211635314059473040700961261740800008599199548620615938501236849733836301194441600965175920026653369869096601525675328265478693684951990527950004556667585909914426272010979154499302457610880246612987323663272311603456780179272467671190940121025728555301536413182832036387729762737927368326610389398753936023725407447335823661101471176132942704150727075574482640506180406203461131344263563429113304356999118031324752138912336361130716621845546121727819232665559280091530326098196817944438336865967623822318671607525496893271128603468705800596207272876695756785533021097134726244893610370080471515585503166827568997934741079185424268637117339430739690638376057107488215466351855514119110375290021349722961509129298667107394555664479589823754513776448843268881961587512438562093133645631227656671689408080558938790192375084159415819954023351698251908400878809520601239264464471471336767299601416134941031888763695735932199000133783988749420156330299421886325517866993986131459308131127636058527575219996363147654958386864123284149155282914605525027700302919110385187961356162614042175827828671442569781708519493093242784340024642225474999505506461978591830304290874123899734581199525121060867904484181933699107370400744422241349603886313444953542617801526642370910815686636664082699459122917203778868544506903540264532001641071648299635272993950415158740673225691797129000237182506229229884004089595482702537722629593686722747307367443145173046437910234050229569363526545267239125236334114144603944922005234266921989890012722030718525138746633132045439533192459176381990204365710795187594925262253650946115667541278495756909597344442515362172752905303528318613789300048250957076414544024210055897516689293229733972181125910633310822017967626646927491739311558191772626141771576515844389782738286905980713411879512648492298575454008737419656827629848573821017560637639364009405524448499537853760255225590535642929301208772767835846531810338537905360643036389497957701924730083587080314819912924319602515524924847050236594572318065917493160783026572186903582479138171165106996687371309048331821438168454866948634640035260778138343467482472364910703521586750346741191987870193500335806193363189647344895778323456426425723880309501802327048870512731791278233283699255622230095815266572938005455187291686049540833808528208167915924274018440219599545019182018583949885334552499078158531968846331247588688970851152621165364738913430812014910868565829366447960793053151614087383522882920920476622544766733218884433129205304295540646956539104847639011930510428381946690986441252626191301125100679029924879030994139058526521224654177850110955833178971156419637767743793207385278424078993961066007264515231631375577798108053789888002516642794430822297281749427204739573729506320931921845176746537911302230475700686247298118743964284468289881417360869184730563511702540414997141474194747870478603174201422647415882965053829904487986982331149815430462595012679968746183878899664127895203768619052412852349722026798502601060074077123745837518887427371055522918224657999085971350717562904191314570109679913205676882264929104829292316509358394831566756545492402393338420247093509502740354977515368625780290249985892826957032580404115397280868808099977815224017790322336709867448319925407750529280466810772641708774041600444373810927200594504612719554566439590352148513520195363474632806882589827016236707683309182507408708843862337199993883781097129706187381960320810291812770459731920647834328759698669541687063445819772448656445971701445418144930826117563311358959802653777483931817021478095293787983243378133076433353221468350110774467184240860104208646978259812967138576203150493877113067755528901046705935774106618551595104020997086620968302824960026169663163549708219750491485900277973462646828922823014179631188549922189127092980482044681275296524603112648920622189312692549796571353382833952465262717422854835856006470968581683779497551258724238132969453503491114937827062149467060732795384420763594129004494437814504411207034272307564363345135429661656200479864906389941555720267639419478937322959946553683106842898126868039898090205422596541801350741371102609488173043578972700946338485973781798468165357669612129698750496879841674662108467755269349432945152982420094666164088966676159632495858075370998402985043162316443796712167773440695501604295638335276943264310252296014335346064510344748128554381677889739866307501186658427294830064985829714235711068885921261557564745006872988031951387605094120819916566835172327344956608733773157811067078983375065165708407298493105091758910340293628443839359248435466149392482968948187295420297444693069762488133440911028360301794040182065341198343209117146889366028878052345681260720454066799989133399980681028466355993043967722567817618446616059576556895219388425714794219226559793588101267999693388276372477313402639111376410550093028395257592052369995203891784837950890424992067310885649245264562668569046201105038701477035946404382215101449533075502060930843739188148250372134751992909018084684295173264142227824141672611814438714330936278132779073886269447150176918406979851580656647116936184939994814748572946555003906580546123008465062127620795333285740416896995778099498370476446116978301612504683094014997684910920626693042886773743681546732863062286888045941724172509119577646633450309160575188576460690098572432503418398338173387843184663045753188513206716686870373181735705511606932476489575064377727673469113287288275734590079211792230294760931522542044769198612285580311936876236405681876289356237634015174923688154448497053766708188418385222838765872955230824845691146301196911428045335621201295794441370086062625045780052469797271689521324361819563366621636148992813015623132569680063685166005414406490203545046545489666577171100058697646963870501560616232060178799342021511503825328523392227087490989440831892361147425130381879755564484027082249301153195663793061050953136946600695650003778957892919479972910396554408784530705172801248834223845417080975000890581320035425361052724398011317310413486469420810920357864021959307154654503957555369985613556116584597285434131152328472417832281557345470059146120580857953964981280737057207728537137330922828737785118100680540848676246294944327777292424020278723323963431548214036896909530333840557623917960982454237332509555305724191895322318760184887013936748181977844659898327951026476457649377970845956109908082239569443771097210076257047048596006822201234267347227139200565693622783701523822363221638195063369020187311735268202561350923155184838831607078444396315290070297523430986451966216555204583720957868859447924777084647678629047418836149189643608783368415690606235203991334750116695435158128082247269484549531945835438416893938791049769747795572133348692137815368995349580057266188690589337959001990259954380913461104786596286954341034268214098731762960148753884421690028343336241237066408308297451177496820542706198928494949052200681534395893557404906551888657032589272195060050286983746964946733751205449533391653995256111417206627139227860863148201828522021198329306495942600481582211064032105747561486956533360661520715988149656490966231749869947647155220947351409956470877825184547817843994290622736313010082185348880347107793591095639827958486200855987085446128550076953007644139098965874366308685215894178961285426616885478347393921788261951650581545363915549404603884197486868418627007485015024315761084568012249141046323104358704848221515793287391892325881751955849768854133358179962182506814444160107971437487410971043578798775023112857216815411765962810383701772369982825599918280337399905884157176562803052059472542907284623514624521660370480930948531419323950565441661576007773290988604305952381524919231053233096389937487651840750226340554889351668535573927035188017151543826607954604640142599299366616149521243575663240610631941095781820076349466474526789313091592504236075995778097384829479786711386107081560118089321246090472375781115892249908988133912298553970334610232423628860463258138289100557021953676928716005459858452220887242082867807908856561010873625636667867486967587553057505257822794551822037357405360737399873682538573823093375416400802910289850978507967985053633384097849542763857102465509924340959039556908679835545179057571343066964034888639981353023356940255797205770676776308270249998422289505666798058830739377404728637783990384697940767403016726185064206447411181136204755710065049514325310045444228021740165208973330151624116149862366678091754942977928062320392184786124411566588594010799228012165450675559347904388333739209976562930156540317054559722845041473703682017235053371152816021068806399888267491154339117954592092081419954235311362417294312371101178915922919981933594654125549609927354621533985210655460169885976257668955970882928695391429716169679715416261682477181658028435362420004274083001974146869969214696962320962208330879227111360303157686070683326073015712441837449285955117213600933438271772366283252489568648828302453686398779148366805375203758374331088345469617495273278999835623205058574019185510823431990009690536018631206077201625670397344056392852024925091678755616456020192874703439295447785727685791751804767363003559444111186219128995276442778023051752399934853115270438612386480305361538580328955422880721203154931027190145475785224370648424520500228202470511257550957584785020199813210029758993903858210945484288886950036787860125015082438108047307917566023135843000004937062423119207689768817081428666371481172664585745389294578304099107745990303905181211457624678076764896789662758102559441394867098014093130916170259522322973660988634910148031868309931262090160167888750242179348154860236648982527658820264873743851271209376677363087108315976953172345463747060652478519389626235526364805261417713528927245610255534854500127536484993269946295431598004236029968409263975075870125510393519570955006044438074608221319964657742315924841988107581250889983925541632429037448054429108037911343793197722724172715735236841359262608649856023025733036474586740380336781999785414603022306297864964317870899405327118361822642185091469455532423029898281746019659541668369840986441496706553716149488461269289951725954027753529224364904848392494363235046708181166332541181414320344169184971298576772528640793060568373307130155755366789723797797330493533736250719001920506509365687594678586052821413189496911292244075558273085174398989326962126659347032241993895178894418595239238600519358715539445311459320802297503663493771735820818098505127632541761152456979064408271279262228451995895184341281532878857736530453485484051330681944847558537393335133919856223335605468743661054045011469081160638668362754784792627951038796601494145233918056941426887399487421597907481450843907039566177565972427785659934720987407714927267830181911915298908555869792907592214211620587344383200034019864915427397632169396499832093207277552396447865227979986056113760854670822721510632379359415452405830218351524737578176426856657394143436659484152973038627547416147581798012259593606878098440020341281888947830425564509241341696806798225421672914700894517892568254644487659003432599298696597935038777206650402975770818899412077907042685840611617680934867058102769047251314975221683139997291603096026129259542418921411016628154260636038789284929057645505139200769801429482929224436146510662998017950604812178417918010229670430521198482134101331555261977182348351186931616062810556827067732594741249798562119448159140387667573423809010182222972370409796746964691609984063530595642756693747123937123579899878015927554110656928899710290129862471291358406994372244385261065742168201808217331643219013900013189121254257016096147701929646390673365272501447596401721378479353764705383796150032809780302444361326207875306707010759738318600444806460769975639073795413501546601917554742749530330336374132049729078429777977220411523005939764065846735981677312038974828255327929671299396786682363414879840272426225398125521756410955494615720097702187816465696311464514676174747512254555861936872275010766350700987748090828718226546578647855515555400596967981700820750520381058536327809450738351391630740312200915149236078495727781275373151853127136978175423111316595885576481678594266395463955397941609685326974449514937143296189947446508048172005830410804304108313695216310890198270024005850372223166994695814312710997950604944509447887017248671551240682161499318246994708849914689558922661619921379274979928417311808871910323032573857270552109760553551385440036463187357995911830723009340753261130600337446466279339957945624554793269268265694498960783485349328918553699286244364927067278284785425480079049284670745660164534718103989040189220504639376686463349480422712459008463128119373458594266657183602899006380415506447707990120658950461564874479547147584908915335568745334183617518849383014090251416004169050031208980184904509106523431259057998620611063767322646303788553970693860327454173969130318338494116425677647176992389409181892036659984229422647982175916136405594817502779369854919565252678915723547845531823546316826000179440684822889853369058151003755089746937903489008482761098151326523658838766037058119470207138239556648320851081500306772368738883371667389824525454680973948420448558949862830064952697105117954376860392856515190766365800348996959187083653209014706187304865669996296035392903848914058487153210280174003215343514087206991283244553699805037421312985182351478438713422519146071317276491105691242429720555716098801913221167347966637618951596914337528440717879412143208636455745767034872917500007282567681842526787032810262804285792689329983261512528268021897519383029555479771484863626277938968050040368339231346572034372175731972768429102805714748167649608896910555779077186814859464784408293613832367561045392486091984814956921062880004217630827299991896457948149525854708837571234380250625045709574426032556571160409421758161154441578806035794202306422987471881967670446105670729424431075376748036734522378538758825052449208111101735465664691544478103895150169791091320856138917648383362669597736516633908296889588746557874071308615888195254640938015047716454670437901863617777972400784474882190246762923947669412769821597928063087465888270740574242066872716828588751171832878890330820971941647382056159451258374625134247297314163362342976058683010198532262486802712381664508150133153935180750474688049637340232835858116780485111443794223755280233109227400936403590340739788500736150401520623471063878713256187307841415061523445176677474014758964287775313432312615167109115700535221164815452238179861056149287748873809358290560010094191330945023536806618449195252296145825859463672815611013513992105836964764403292584673110405018329539836070373665077563603989189665231984483842145325960401547726361996728184343082974729078885118787920298909186139720769342546217684087012158731367913242345931917367831030249792675986857193591082109757561374161457168047327171452085069870404722517566663564700155561835689701297952210956288493600566889250097692079834449161513055269469096685636717507169755608263064708703269914477058461593399993913797575883556491281020741846310216947451205382115229088887817048959121438151462558782034035498593863634881566977218467340261730685370618849286466956954397098507802741727613459687388970908852063325052966547575689277870656805347542061839053393490232606643327845491408550089547481020108952722735956834128448168713698491615159695717381480396266481159466999738100884119382751879728535168467576391287043786049589621814539757647308015079288778694201841348520195802135169736865215893759237066603911881656927755971214242584306278891598444663148732565292814061638868688789598302385091758891584907314731190553316832612855946528323703804851458632115797803222086085541575327359340957626032136563616132149725991169125907595235986402356225996797699155384350897512397008224472145326396041069219820056522931718016799042858824074732462550590932215937055351520849017957163428642137645460701403860557287097560063057146486476598383778238868740984694100375061023944169576494211641170536344906190997074470181621310355738976740382610742978408784957890544097234057928707196435582244239715118557368139071576045520034641277156815656418505908025889835542744720473348912834282965208128761887468185698263228211641420190660919070022676257156134810855157722142604736600283036184933157170519015815496967418373597094332771296320520689678806709873981118589086163776734237534538005448517722255412054483102214854933208163437190793543933194485630347342252620216716361279654618877284586999207022221771013537024988488709237719652414971914331383100124947547397228419258960447735209355717111304034955701159651174826770030093832665693776437890811939630062341896078518367707755407235998707245474458028724832853174249281115208834886068285213951941035914869928494336026930342263684463064157443984484824838357693548127921979419914565352955129185565502542610659477680879275001713999281829430649166846701807545329404392544550617174073793327442899285808576980494695172316090260957576431762295955776467363998162488060949062314519222101767337970827534044061089743014467003717054259665429471147787223271687258901921065499641150931053085009778890650126559286294047201276419157757485915291710479560919557856008102278309553959333489536512870876440875042069709072960604371050698267854632710202873487514745597783702437211639437968177451589104665167415072762696110481879938545572121836672535741124925604115460824077378793981569191278670515615652665694654010471978249063546069062024920670808557785099009420854434307092934727520557293894776581638327036112036985202233523755207196972793557751674462281654408703918258305410502168501087210743401775359238099619202029842699690073352534020609990179358552051587118916285744923839458130867824889663737147557006618282857577401476873925837779253217505740226017871831009855523787294252813606661117329541750384695129923146440074923925623249788615294234176684592326307960497380649219758116400374880246185359315473950064111463381102600815847334829915054418356515097822190142315483336955468136835191241887410305700956686405394350108165741464021343383054550913092562231434710642526506325808845854790883407124116791335691091874862935819749518688531470921835267637819477268275522208024995797267796039912405812985073507932368566731535472493386489654221686088354217262665740847362247929917304068235229646340041407747138611905830640406451142809258671252197320679897161664614477478117346632512235845523628917415752675521111096889349136263328034496098195775992250023208147612115254391483330515068957129490760266696821307579671395770639137679566003166509129984061064711072869191017739993072797558480089382071905174404830199812155815110287561359599359318419592948941517662762204345740184453378105843883523273629983325997325222545071989089827261040271967928495513713207290723227705214013948342883641951261734173045135373876583077580001210823532746991040797864145591813134153676791009085774321245286936391016547890797258957791048892319228690966415632197268624023585862381275903974753679121080924423247141235918851165224873980697685999926537305337145258142531454238068402722427551282714812260131336479508255632147384029093609721100300629560338339215352283250664610384310519991475970722123844947717275259519149934373285312755103426177311319238115691145508143933070816040475539917791181654341050649134185611669969525725769262417748785097188038329895161279551733164767729028204730906027336448098447912925228577306034088896914434824273568695365965786404936034998453314373437099639673338063250548368267303956848631754101842185793516010774322331655101848990857608148715797104835180432555971757854881356880415201474678444146453882089016789724210228540768012106154600166869235253887921649652536425040109867556204081854621890467376430115372767253278946929618051895509594582176489615360461836034187823566759519642838051222931432802646870597622956944642066405337123911056795315053184173151833946798776219033597708584877743824632510132964851375874352013307742569935551013246904466496954964790923913033912973284690315855448334993154399947005282401754882421333282458200207937000055318255993056926217677684092490573322825047877045139708497700419017547495687406016285357141803759844153493013655998241559356485323176660235700703001248266178388756965862895416650676087161637519518776004906346394488003983353172932716674518421582598492765415871945304828220900595244110031658542171309442606400499049597370488460950728298390449580790237732774049276404768659528036304432397483931512632032184644336777734757156367080061788410813286683580811079895846036986141573073900569591858440843849250159754498313230490674355498898065803923356399941111565016299118047956190711420517616520709657048839299848462298601744961378013348379267864911138641158979966978392905917127254254882312054322094192807826562069069050272715809147232078883689904176001391512573978711263718925478750228888803908342265958575992276760424900700629049382332339330836513090695786652559174728888463080177864903834673553619779842685350698704673870725867791744832174800242416936767862711103992702280481567335910922454983565766144619314748076063520918764143259194744867014575279540740572246794194992860593064799015975959110004366059044079505197340685838017759250274116499051379398643852383440147707256164822148599811459246262228254426341604602933769378492645158969108253640472491295121640781745913033916386934330234615291838872562761959702404889193852358583587025105262138829494898411442342448129046398191925992766197506717293481179655413750584894549549586027824032088164720453926077075380889263678590572190994131293308986680898292654025542096381084901468337110778276895209178242701856960845144903642384061712076062796332665544992822820926256696783104849494728676736681648662376389123042025964829526112011997450764564900630310716315168304285823861304403054133952708890997935900703020045924245361862426164741933291218057111920889266366369325437370517030977257408400233447341391993313266956956027897082894305119807140347237348386906979570037525305001019696043195089645116193007662475985301614970934414782718498387359128854700665601173298255667467117376015610143014672127055922723818784067100066500487311331619525531379411429507474556256849400463094630935272443351341730362877487723007920637627083242321575377857417700219322838415793462118762735653978711773975051188613924883860514489474913977947863598459256990111453392133887914085823677801690392087782494546519181000401021405912774852643260086598569693937394634079587018712071496723222540726797515658863259064737070218912591030250474727872129326664779499918497554874244317427915830612172497537554679843681085026779127725907348651142634491974386152447500351852474430953126731249312812008358959511708347436396121314687756109206681676627372827508031105357917662369954061187069555203615743292563558974435059045705233006625199948666398384052754095124259803580117006404059317392427942674916008814960260723843629906617494803840774907328567054272755919356468656457662768004622658067114776402301583039237156778586877236891016444733982939254568234187271691991612668409526488079372310126686300613535723070527817619347073121083086669413308378351318348046767900728189080764128799934282407776330915123927624624289502592368203103215560966216635152857405600172450386444385744342655675918124389690414465549817048857735520182596226492195447088649392222848595484233318176022117762888265783770451694770691575089313431879172276746934920070360054582694647320711444395751243380796976225697266286141541930792010455583275517780428823123536413951408403278258938760178830269451165580906078321065055676171006621706108006884319154368145294930676433162243230816714919538566475119636158617862769164620610229269931328374750637722880961612387756462138802065325116232965454248188174996168474692955471826404544600193776786438526756313772662944420422800798240077126442720247860355475785273911413231549010261364664531938865293495748247641932600837488474220407026893206986582935809413730964793403825760355455139707163058468788010749491212621778027660430185853606035397678168973966167308889959830246644429369450044532143558191092560028875529638834112736242610864626088637151012366726916288742141918795262898994197925236800123667015216119695821977687571200090204377416819438657096939992938988975399443323454906425903842604736724864281679371501252751885024999502845604372150441909804092619030175867264675336755585142798699662832757757476034821851144620061522927943744622654543002250455878680456287166693120867721892006635522674738522436001527172824357171336192524334142748261723886730502228998797303799728961093774717710723574293536530557817592512019347168228750765968105195843066816712562063827067149379268996511713924314335063030097978634808657325488298684638267700130311554248117312696150314856315931316231410204469066368504510709996931243555655677777648749896632290243845109946751676074048470043530121251909275319515263451255939071578140609952459983943321409985029474869701454694009383379064368464935513051845584528238982113109909151520770085469314903438243689148771978175639445765563595915860156009594246729823421757080596710610182353214287821053390421456628993588516748120522188976527008133626811505642555416521784749879846940907650361172272401646754195622318285504777530137539775883205113340948719214043668866056645784451280967015066710330848591986449185957552687825725207497219688886718519573904678351147669058026009952179293816102836662712871408231041269429208041874729862529064281317543756274243762677969178876846445073731741545994414466269457138107045068666936905225684687126782664450144550052128521432249849136322872315424941158428347055465814505396917452171245901236879152348902126800990426572195078439560590592397808269465197649260377059637900605557598627492180959029461136594163284606855408483851061052094517393494002298959983449796950616341840593764271480653317163596423803066574333709150702488390580023497057179871857688124938290198964441835247899641220166787137423231953868353881054867868681326995840015940549355285412109094689001944003001907769099269337552458010762347144218382296386826415148828459595744457289639378838547523969751791750051404724494990632016884736979661560055324357407103678168062093346888875769127505099419263098040453957290415533438967933291786013935970386766349018607762391206184364751765959201427524133371516613042424398252574702380890068194777708387311000057698519530742250924138726507534714592870295680727945504513823550821980482219676454166209069317573636338991162829900322622308658650864559570736659117266019416584037444315505049576899818895176725020315469089493467827491468450022308686465854617711475175759475909711570527460240024912240856128774388193641917522341441191779018895936849426279317072179880290484534537091408841872495115285948314303185151873791858172106771166160544786164437662209608250788102241201834914843963797541006171861613310052532174940231456368148457801530595824320244116814251948302006910171176584383267235151641308441320225627464014081918135033471278912910947345871111802221904102999467726547697330793327518388292145261493803431660403202318102228851487465851945935342778314033863496835963367444788110384354508547794137857403821374967023758750542962510781719433435615556404364422447729988462291621518158251465793461870667825393445239544839233999123454218660824437785284668002880284183678700747394775668679949307439069383973750787940007913804094178020143764209603878491400044655792025055649646403845628884968611179633682850009338884704134089546422990848272718679088020813004191506861672704586213007233364564563702960305222878703809737638680288996718428789610390866380042986950539758742801518674194567437723822447396608157176987603034389902634913516002646246517533461635128140196878094394814586341143463795594705585184539695515555548677925623479951275933656834393574380348795376618701420684231964424227349849108682789498059184023984998635042473319094272640606817090779174623883868534616109971767283402348533563723678728881027411674343578605687630612630664649350522698939131618781763046894138812760741932976973739987155990943978005067012993765609037970156523496871708300220177515482176089586825532693830784907633197304057898939029708361037428668544769181821417039653330118665373913571621861008539739338786728599411258202642841628835719017054967389859870049224245745829133839866517129683432162751962597237317976180095732733288650515533073315763996987582411428564765334895073953219516724237904232463101190126926004618703373418104133908165569456516424048313210735686666008169037444307843042865505340487487905391021549607062447231010836713829415711554412178593673239056684289171218472004309353753543837016635481392483258928588153127117380907277153512910866153247642293023255913471951451174439872747185868243464432571786054231344464930555387179054479408788805397027825786197712236449386991203523015075360534093637903372822297116991034931132705941251071554676974034452109463102172626998883495403454663110376039626867821963177732456443532060541529252071388441766379867409794987939087713801911012396820679124420471368336452520032200087292339600266496420498235028241934063032611645478361951813985798391653249262673365665178636670558211822382011264209234027120141558640867773939435219047153963756384455618510389080400296245038482181639245352210549665335957064877956363032904848143125166043071208083525948233125531957699572199784421288609226403527601870874739278862959105585365408711351981052377124702750967702953546388463986270516023546669776957071399342374864726974608582565166733167911959720667670664768730444266898480965782822875247575943576254929866975413335128689271224854154931546499656253555602365146312307925456325478522387729949138554768925237140730904342954573800000256023072189103329669217206829560560494386369629600675642174705526886750575487011041270902634704518008326438734742717827911434485837699407446698145289430830895120721270302074422383828247064786067786950576763698952929049071732124909507093243804599622110030410075191685222167653615197832598814570594243116881484912464586742778834464645354609150177337151016870023175765590144721792795729378464717986528287341980625235882085688928359866525840963691474783083347462333580019208761084682401098636387945448054798415394713918819157715813599722731600677285013496396045595556339404932476618515863920986535380634246179074926287630229275305831657396412693346018632041367575522200858876793139320564634915127415960474882031624465238475720643956628021368934654156933527007548379218046432271543043607650547155937088951002737083891923183889846119946443200411095886742517762796413370610288837764377315542359275808116884470170583144532510760232261532757908323931838703798215139049404382323704894768599443650483081433873246182976305758836695483780954028482190302066735083223060630602182605283615905343107871853119384784284552087839211662379295114771153758707254171621711129722964515110091509288620854715832095093583792884240980642135619568307363906645827298109565322935098874861783501863029475862157516181328568791952127751197754935390067247958018705531303747141734067453294425627735578144343337084847204381445155939872520995718004825239017912639809121658779699360051297816586587431495910588562079428680738725159658431111995676938382885986175588251876997376599027176491582709584183059460091474658067599845504120975605340949981733462079285970474404787902508998491461687778404179666330073241977667246439217049192343864329538552257030793896418515689739008017523779974053988518038787736080281825136354062064810718781105060892545648891739916883544738032070947082710414435543417021382427384925944225735994478868537968937866687606953437618741992725408567408371188342165386682390683375987063636642270133940894506914811854832076076942057094189827922889339221359471530374482569717571920706830646520200712509560391626342887127578343873692042543817927148541617206382567407563925425832963766594641847815861830021213634276505306668770661188857000326422231855952556457812556999605754147562020105291280114922528170428681862938289867144429432081322492516197810899987664776378428533543256489599700747341865416923092160528954907158483744414646424983919747805616518360108576099565556587247445714907029130790351307122337975980941674633124784316583098969071090482443226011169141872961265037893031211448384955810023899914941669916798502475258494930735868323467264937446416134846356533091517137915180154733056618921885783619031519409262911972948602264898623470518139036681464262982998505191642319237564969255880042748991379781482692253946725003098189203820755587065637663081282167069652530399860712348240481799821232175014759244776773541073387553551606130782901562675854198152242804482261110010381735577331792323173578250774324015743676340459695885587229909278327333023790617565360941598387407673381716372982113621252540194014775667279619037272567288209948236430252278090951066966543237249458015419001262225554649199737724321012625801239009574045940697883006563331922365161879095557624739600446976351999730138278504007310301650770726837250278715326461340003302496449642522161643682360380681074920138705325372564178058138853532040605340508233046239034429117931241007873548603734599931530106932579817953962218554885813071229974710727378904650638837214593914471924816974514793406253656664819127463536829855901430092706106488921494435745639901833156932472979301840598756729890056962199810757360556910961908571551976961761566786915479299422350726641964235258797600385829796205760367077849138476301144551990016836562606798892183596786328839739709383000867702971193390810710578604871102315191577644128325259462621170937380415763859319943864876752769083697800972966036677798553950783343017676579055642516847690998118392933940445152979059862505804106986930102964903805394781572793036148698153140339511118193236298611270602916861827908575704316141652644760290245964437817768210317707146491414664120336769266640318830673784664761077018514078682565891279985178609005743111877991342081480866352263911285000774699561544474213766759536239993849209249846328912232668776891948636798959055632251326861951983164373098251561565247103882992562295480873917383568493149959541298846960760190509612995604690567731839210316991876374122186262820371870772905601223301106514571888797458030087545735809975679247184221065124336247935481924239659569872212217055063124285524606086583735164927155573758051502863093972147142245770210264991298025859268284443323601472799564348807911841102881522289404815348105974366610611279474543303587635006074376893729902576037617296757565754272077507007126263738206828512783307932897482916413236472829038134469526833676890475127022682839960754695092916179171159163114414977206052550600764814013670582068405405818244355380007290541744659493228640897687064355638562555300786469726199238789893655106372445003642231417780248540654872141717716139484120335513962631159729280078539555442833800131699976980296735364466190015255900336803926614532835821558973080708042918036637759297558167749902629558057870294343096933471619087519332976873383001995873483961492023177871471108708364871172395614970544170324553186716903963268088444979833423744255176071251187509254174441866432759297645661701534632130445552636509768017585486657005395735203928753003418464762546872276454304960959277751944999645628402232441098535613198455813907004861420403232651775598802912493958240207364807382081718142178902938447818466427893533840954725668523659111837809513567699693052172183615182156052685200759758510119308549362277808935274780528255829459384027171451509450051578446773232536606882990612333453135957572385641325695077216451226788171782661172060381968066459208502859899764948648948247083209891329084604611111088140593866625406868191884580563425747161240903238611523805533644763890198956205780574991766030461181423765374154622947565360419487359264777904051105149143172214245781755020876623710839620448386104992710685856841504361851646288801140662143267847640462819983210313449542165665409824028750364140785375719398376180999956773780320817369570712058815598325306240390574272888149909060153220710747700735063054728240452288824717436127321926219863115493162267276557099053750936382979402586475299673311919244869780399896286967435556794115288777781531952262469376292460575430682465232012655195053767752662655607975080305721202122808433546228765820815105843027150674867158002910765944686422879894510127613528165615057124390224216308484787897587056283899726917850226343426744598767678521563019445499908911881337013725414562783043014347163318234379847543629432550800532930160675178661771657294771242617245733039674569837009121531241419366380527186435360505112700542997464807800263099037666492276071378905745466939787557997575155275766556264090270004232011288410999978348299629609144992761247937542449372865099826367402652924254077907221053269157407548825716290750889894406471724975477053906328789659956315322891395082251226128289242502659789315876861260698706014086914274353036987404977237306577599881416128045941665782100102445886125300837258041888733188646823996052441099139306097946071931534130877493445552679053558278404664628891463595182336413172912927608140333106388949551575491128002377448233347678767590196935113048666391812329235892118293926424770215428324327018683275798697248311271589312706134923595407408193568277460847140620771599029129210348410820340595207607744228653127237664772355850700152704904076544638778076754370363350158011507551482971936737666954695264591849386061972314395512554025944292342285086352846197761454488348912316417808962577636130573332932224672757581429435841500205712653668780057078555080078570136276758034505210944558885352322507454373446385110676601978326624894699886682618874919487715623214578918672769416432468313362881672634542387635693876050861097454245986547345979482937183293908065382467190198787375316870013823417585682136952606773986015319002508864638863383003299846653000568110980798983641149716139604231166528238049861023177201102027230761911892780174263310654791819856047682034153092511404748087019930718387048422946180855582298575281906373338447103219617867498254534121521275700428620655658622632743659804204654033211485357027041133213386890591063107218345825361963143528063917568436824490085027352551958831804007373300104702466800690837108675034574000691886288248097665530276866723679515300942930471365863218728444890046286993911363701966823612566043716823477179814961964295527703183268375358093661484311744290925366245172716989789231337786636649367721744602752147116878256840912418888782206976828734233220938341167734863645100302162303058981477642818166993649498766889127891205859549574574665118982444505316222170962319113411809626505381506941955771379059006597464484383715931871621593236058278567648710597229294790577397163080235578697016388774728385270734182708570052736719108628096881894713174172153565555278559629136628920781915681351088970660781655894475558788998821640101386605707798626613846693299561501594364771905846509142790654000205873815379596108222167714309969913634254924585766049814492098589362754433606107381427259210383554699483597889936159099628020759244886086593292869337967221273957135920551515160571215966478254195191768092712880393398611522397492872380823733535559504706980111193337359617157554571604709013474042218180856654542941442337157442721282170041738652394677260683519061626577728164118702930992421954697854487016922566334030127054171088166883782159651152259214293067462410614922914325208934899840681676697159970847059918592440262196587987200638057306283638665669530234864029192534400051079512869954287218962215780673267348509976236421031153330631988797531538046615022682672249682964655556194633050169774529104806894583190468225729300083165584569129336567562210394947282284685608131478138626628040909603263061666898249855014041052342019413499602236289732943451260462914773659205753967629957138141880682321221507059611240305550731947026753641573812763357618958846699393044242296307689839848944256066983165584341311562817985291495691222682779690942448294416820956816460698879198172344839898462698439177712722933984982544726220034936142448992763316747969910286019736129534445747909151947693890069109767616869775178824136423623124205655428317778995596324018532511311836598801461661997816987483301772655295853476210851699288213771451562917779996600669589382256631442821012951122941653255286490089488058556198027483082863715330168540827677002675712196071505135620519371593498343004086711069124925743094254944537718700650760097583874249131616338282811292641384842956219570498764822309261196191827362244828068778312175524250450446630985986271544093171755906594085267340602818767318737979465520315844393673818691205247854368736179986711263831360124611133443947343481356124998706102255378422652013027275376544399417605850297277589044039654567726062496905908571568592327945089645068666680323283921554589830683973237789167153711779015142379976936571744045190515064189190912217323460442770749771643550207433729506650946921154615249606675481358362052734434529788339511718555058393601829762017305674275528033086961126310484997448970890684593570986811860513467845007780353020914665581580138056794440948481964668542582641712525622986478241366776172671532311699829604908380546459025060950679151967947466602854655954884077183713400372740516907915825498847604538942786302405795521992899403888641769367018789281005119112334709844465236850741197305919903299903358952685428901320410765432640593401730289217785242365110442845741826880516934724191281268654600366856858298256335703817724547658647196499885770038899785122775994860676825817511658139394895725085977491396700628025579971352463347408037868588656665470302980458579337124271653234603977919020443854506902999219928890173440372398422585960270865476237952486000991538310355066767262599342018451361207891823456895503121561587297255768585056706433616473099575505911475807328774631712429582980271562749685369223618170159003550797393291809457687659033263486880166754570737166350180173241507605718862379758223863237703627293665337006713519850875670853511785686618685838760844019404267652492355035678617923592881009466640725156556720201060021608704884735432648155219825204510084384014312225766022021906673523742124533288453482818885702284298233094243491071633467430637277060166060001920600681418306247433538460408732864217476159374035665371835262358573100897590618499275798992705439636181335204788119316784403439522106859333102701129540651791762156677481779096670207618142128598207004418556828643787536761859366768630960158857725241447729118630913126870066103190785569300464563105218665153285247574483133850454263726919549444077768401326436700062394090323761391730618512231761021543661682215393923517217897194398153660807895251359814120820016907207450775640366358942495875125707122035959688192095416148488449259144837179708583702280522244819580803185112907305382291995744105819620688672726138252985372436579597931766079418291744260046910512145713067559302552547661411268731447963575315734652303654928887971173698051908675462120415652580057504104243734857283786363379838628778538420480197266704297304042252102825338007684350327527428542255284911318270317500337959414396826678944763027926824190482662749871623425872156712944601437427451609889674045773962163374219628493272799691275686867483781973461233180492947014123713937102141703456246825886342066313742337433938958675826838951933179243162394170025771957429280499017889558462131192602971290504554235762839381973586938733765845190027473247838362820933019749912734700530182787312090923461511635890674152010059305030871252713671866533972129560086032211627275869347511610248919459959166407056753936551343216433422081919602281728092603363989083990506909169160853168835162118355970243141426448216647489223091991692179452925092093708938699512600157985356336103937775214813472552625352124691786891237827499495206012066771537251970296623205422814226765345872200703228462207305278545483658184851022515100662208206987336677242390126947366458781113671286387662414390724149194273311927358140362576195847814605435696378961025904967549766947846367804952624213055536301992215186192265640086322229339086150019193882869361617187337808680509000635999966818036014438747504078101820699393243921910804078408521448236817455621057090879258110166570757088571555558125060246057490258052549060825103003509788394469447254639242070292175823439393550621349809209148358537744903484279363453154774063378352063595375595837006272211131608054943111881121687483829898600416921337391662787807781137684020263756706361355144484118423256592279367925836959589491891676531717261768969554000252748827909652410766991785708208638748402610373906042854012409280484040857392978894044196738911343897954506590441069281513475550207061781576799114265045277131855455865113447247792937590263767930924180138685548054929820899512342485186519916908527556314499265079679050199015598712588144522249308185256212439137004119769419693301268938194713124667115491562517618349316605810302537605509336249232233074323572608888625131831974609288373250309892557269144598249208395966857331975010348816874207651699902561755403912094027760193291233846727934454478674328531075995254968700080390739610357201896565305846220196033799842156063540709534268961205372159824247736387112982920037700612659689380258243245184773510247653056145206770435481256706736879277450107575657733797506711105630340389729035106297815270273642311746548062342483160454765332099178494272568848552431918032818715487012771652169139619802224989237707285372233451939303210491939074593308981526380713253345179725926811197001790401249475781016617383035930813240905939009305686593079162818509498613943300828767585357148610521223856163264571335552359804952461929959676075440899306820339864046187697636889995773841655998583291473067397403946754916881654523890517665511257652544497430232164116384793627792725764081322238803322429955835007018767774855397483559733594583129265773063175821731162509803313802756027616709745023123369963778044879024582241163736116634138350117167926434296805184955192395352681601510719252257746271804875274423654140578368164479106193604045680111533436111637807483331757433424447921733885031578229187516920207048244942704922519771864802504616272639025982681679372624671818342786638839196166599143528894644970564919873922804435545450346783184571176592246490010944774106139791805185367485718321092373656907478128913697424360258922164538967663522580294842550449322019770291188329522654590165965769002709512693403941235384606719489259297192814516328858465383891792673869233123254011907094568004381716922612339830790175226218294683612557302999246440676306221099013471204458195055476970498754228509541894233145066038414972668798739139658834050779022671979560360944979006771252050675975631441120151805713063660621499382882091533873197902115557253101963752882746390584334053306994126642096292141284255691827722392606195193407957515701970055466447728651389415492406391556783395258864161063213835576484453761946191037823363592305241908552930787024662478118935445784469685565866888315002992467995284834729287522005653665343749051460269622184160415654214202030539822424816502656988181454448451649264444901788967561100494775578920733356893734311190656308184466622891760347970912397540764119176643507180927916927064911687531739406082484719849000852323907448872548706328149454108889827330251075697089732678599958555169906331097208855817099865760173517925751984690968883698553339870770082882560630203448671610495808856603197327313036960993427368376755687079176817011299305736685613705300012813589736985497199178347098200241643645873077160068607694988146796799380408411686454812572766364464503255842342720602756825476584032960175418778386712002680050435576289640786803062233707650827431792311904693889156309613939148054343579814539039035479468205976172326071245817459087762979247535242698435354508397059134403622390122321543749891208439524566352787770603023332056944865492380686905497996520269138387681121139564629402873850693605935099935415550957853380944976253374036614723309245950007366590649893925140551571974135571680645968922098873440958272913492258471436544518118521447741920068382096861036145068562137359049873466044860409490120374560014785164329883546137712432874585933587652865858796234399232459765333959153311534976663535028170014897319357180855952460917040902536800578835973204203938560063959670339180040392154501812835427718130794817132199792091321405939908159369954956098599464530222200306500535549608508434373892532331030642675040333416875356815290916682608134295442361628995419193121327632323591137708609791567421341189968815720316778333398977183346093554042123552618185392162168278536092848038333539039912842669580155844199790603844721033260338385590484318876067051535811347820442230593207210470900877075488440361137626216190998122750581378148654619576184344556919257773084815362281445757633991722660651586442204657929117238772374167697487468398109593975092363109263000820592281501696711800719629004447255179712635022086008576647025818131168710420182249866723627943857723132535809299089592530172277413457476249956898334941480694470855554252394289645839182602295980549251510869834608302931139828629074448070881817917578543056705138057495857994609356885532516192911203154640555214745745472384957064637654854322753524431075370283053209077705459419273129396538963235208737984838024636883896722506224928250066766486430933199722163584006409873481151975352703808280401681671564012720433909001255931505337039875114980604368211243838488576429023881905473098150512492113164517888171572732150396267971582593582625301553387746570894272279618031593315186020601581494486255894708067280711233868368049716985144918448440933513334355277309890193947157957989974850083577598251896508966461446338728017304363964514867256960261177586061441313502193212942727687900484671918002302946877051197007217126730851401187605915800187632506748727921464575468131604334201141972851051375251876631204260009045758889515211446440526184123088352767493076945013344847155575936412803362512576802142664864482880233510266177842182055188775354052836582469988144787800671094970588155942680999365970281533227742341186786353675740995022420556439477583099141566398952851693716780771210691831633814786280275760681234250015092254856506949117516954472823119573557483072617678098920452972947152822734143698559659737381326206000493976874022615682796130957147973231527479212370358016190359314528307916147441023598739673149631844387258988533416032079778896083038966526525303083502246351191065712793101333171457949258531745643263650570843578248940935272953820302800647983837714424225519150470524545573427161884075469048428581389759028036966440577077256487811467906339209242549759425302540150068485788608888042113350343567882591077672180291090262312203187238461802619359713226420457062021502441721278701472076950842287936788416756331947031386690571027780978679037406693598947228429481670145595021681522442315187897831282491211424431079070340192453006493338890022760894861685645218550422219283423732830030964342000768777959803190202787526535775870702222821833813388249084738408288859646107407031772312314389145934705788065506362094809913788401518744053969707263115759152594335017942771094560134323809706048727555627572318886351817377850069262472397989585765150721238154357239654247751074313569891868640646344213882579839330632216098445791794403901151636532076596204741757134172967849495371843665162200998679767016465651190990878270779903554559587623711513340419879817392015914015603584794870895830521571219308339503042695999026969051571924005002395220222123415536340745636262241318648439207051628121945383810159281677658010960895948207930965017481984546935584420032029497623219898888015739331428364560008249972697408382331195800911062094776630108619027043105037269861644926157171348614935600539956646010054505248606026332025056244891827911212868984279085984870294591699295663251039255716924904695165009579882287139903185735064717835388695292430204247200011554188967114950471961947402191300368410998406350626433819880089418498714979670115288181433411369133679137086189293838873055777168867174384651835718333369666476501883523550658690018950003467410112275603574216654007975641651047291792474886351037270582568191026259311079413799388707527294011755567936228595570133846930472892736654183050631659412330449111884865611408159144148970361317216745293606330023752608720819810804111472804353808913421452505741710350322200146749305887063499271169629807624341713217017517374318682110367981155527853674995641537018318793800051220186398591059708471693656323762419556205784597120776784749314226901142807599752462883237843472506565625787718373807479392745674705921406537197230553486142459030807237370141985180001915754704419108522296753017154441692418747210240487769886879605202759317703561768307265161672207017708899931652983107706762517127653847586244339147706316728437071052405728758624434455790577544039700734106280557785403014830059097706607214096696848353781182324925250780045120625734800070122736809612459031474557798514274998302486328602758402668987186474105757525907549801344896683370109587723060376071143043000930021381538018739282931015419435740015642262989359377340737855512136504055415836804979709114244515526451873524650351389792827053711960347423741320816684909369000058040589810228703575888481315755800600113261815170109444529406549348552236289125955744908265393388238531005387940383065166833648842569732147409501061462996270393500740714443465839545431149353911397994094088991574266033624487539333211345350392545932025327483983049208741333750274069012575583543878369721815636023009514127284282544018987427985719869171952218440771078516807672850260128975839977309494098081475792012015648665159706015388415648529566380888067622011477536958005033409813153923664417765739257943327228806779956005734505752385824927492343309209268646891075618523559312312603824938050792668732277721572910710962613971795707760676980825882162165928076074306203219530849737292484661621935787809855664716723444639000216178191045597306611751787249500223144610186711917276399500866249984566555282216508024720030133337122814145375669336876343165106841515781617149940836426521037953882917489165891545385619892306110224394605594855341303737421089323220661194293072506472127019867680929986516346903446935660835560621246653439513207554851986171534412924392069307867123321180044469510788819152355656984166802771031078902031354077022599166062962451358478375233070619984022548254329013995322225868747447770278073397777372482178158908053413447568006343906473737288669592311219494964178612383892821239269451266962050712753296792359830866818290471336877444446845714146149640134318125302160971061935016451142284041319361172448917628963418284131326368882448201498168530868241147646376457420916242584660918145069029709900676913101287274725734227817238972585989684426657580903177589658035971650468983110623898673793317034672270983298011418688545289083561832598132155471590141685045819867576113704212075510143195001253530898662172550620143850256685466955694668924508040873590906879727013214002624452613104457168591071385853692054658936925720313929477771182739989868995204527960348046952594850982027724578956304616948698032709860757624470469043733482905994469061692792240474062773844917589843333094401702999981513089129840867775126705714923833297417582033147166187880754082318692756510030946059901946263954886303888285878649636118852492686252939636451574432961114638267792038308495337780364846809781501644260840246376889170507033055026527718957996711897491957607019029696374381041383567908665005645008204033259237080813788087136796643571005982192318149169038245763630775926275040597708828540196260042796071899720600324543951912694981089845928960767547160007923730819774396954130148896568389494934495715315742566378403902883000641926418003240534370803244598370737428495864585350305570355500961679013965475954657174082376869878787289629512874932293230577225623077073604556832263318882330888616243353168677090701311379085035960049283231520635787913788333453137250532562310629479149201659438632132410243407220024728306959407913960867588199914507030281179512424865423485388722148987107254402558903789456791563389853690564439971582939080527850344773553057837558494123827978849814047281108778443562143975740021003606724622297849687588531804573007305584834925561727139808838932285144297699245550330795124144236946464627154310310930123574034195095246022211585063707095045829646314781602196356960283067580539206596603567730002687091683061074587320345783255714418175267005136663710861463012897170872808655710566475994944538757572352644929108592140064681769368408939725199693660832178605537898696369644379154094888496148307087915306414062239630355621554896281310974474092424115450537898696892641130997201168826089870697824980990259807767022583591341132571314272010538928485728935819473119431797703718536708667463560441557018611703437375997858580259983773940669730819955373100346964438583695112350705576416383101925441596877680880468663270562530726524404297522458658474768635698844791962197647286073957338081979294804285353646007258386832116303107425895933651168846591241085379269607434237754051504895297928584282486195174288852893540136205225422403021331287388939943987973281243966302660201005678971302741643667042454939619023012726365867756639456446614688923001809902825908744143229973756054937164991795231142086404169722134580621928078018786112098797546483560385324984313444524989847150122726471604552747650733129808932809562163053643473974768752899472057244669856155898485993912462150403319720386458326468512225955909894056452531227807919798355183510910715480803691706131108906190172583766055064928705265944955055609405283689767767941331789315991258182917075709396892852419090300692706860295764001104181457074740357346289116987390413221688037065544589649380569985990119133838522085253224934911015644013022893147612918827272220202814842101290438170650277132676232602327024807151896503633134677669947900533780357965952583417588882815109907782847697354098925182811848724336341169287787781647359147072974775176135250690197174659854507849619005268542555669473698099514566099586066293381096958875293997848880484446256517074396155857427568676319293519155002701936057085258833537673746028996214850045330788456052392277590603368621588930266699508752937563686962366777595981881656304827309593603460061952532928566727327601932228924216250408978387425426951792147701444897313337730923613466012317552411858090629262487335030459609188715520448262649480710905315440509848064559933217433076573793634170273889298145128954712347920508772562750675984608608638189373106199472328520857629213430507916077594944523600033686663238350793634899057306534641403455630218329144191414215048640674542894903406154568827353643827575069318152597542757651846537809048593057378159543009308216532986382674063509106088849938164682393670314855739857307865246277132233967326934738444256243144909052865729020914536168103115413189342574159019845801559083844236606390762406806085672097553679199549000445724844510178463140506988521001247113673864444527025343913728416179505210799590133443996033144850584007016579105049989670281420524777314272931437157358778043052980511529087715997724310939799089224620792302300241840522612590295150470159883614582356425969000342297252666439871907815296310891333016310225615538799701374356522636934811707330676164315500296496937983764119685120798212277170727831030867366589084495546173496650792459350415434377960181693313754389907875044323588833046524498715827219647667533328960657651521566874083143429449012346280939040498806024567570794758356108880226545269382893036975964018492558060927840459504548961390142804896710222738169034061412706651702496087886543295718465601390467576274571832645000863778941909009965132200561414176535183894988409211148780333483199004678783729803486997055738756013714343863771786519931042513385952295325422625782959965847354308773826499143953085267007983978552340188799723480485119385714346255948171284856313358584630566986124750406101854573213634777045522019624414458369204693660088261863722991885935714106339010196314248924148602089297201505697059153045122398643142796465155640831586014832018266559980377385098096198605885741139344126694550983428642100620691660677014546254390752289623201470462557661132978935175712176894855560292308394025300621354767660760077790788141937787991248517697519661245765008554250838169855985787544305644371584066434361470034423553431686187889087890213641766754740702849557975118102268982802725177733538826901527782146952211107278195754243425011860035771747711759656165621629805839066221964645591706302944448626174573536765361758386166496459816326592995621051219630836020674137416940191689010537130630103469010388873056297449278962700965559230499044831518594609734229510489945700010046712717425081922676484856542342401191633604975106944062587058983935801572695521335260517053120619264543915809445666070886186130559252145178123105941078289130790556532419414049542974002690080111982988051356004399051622452260865013530987066126424042933187218890167644879479502027667081452670476164673992631079332225218761230029851599474005264622707081678075027107693599691239456459899547738310419776662895366896542477088277493787176510574144508444253471236715708135341456663347858415841926487660615267003050080994377087123274013977257984951714733086278240025422158061764088247805111599959794538122306409848185328066494242378798958498367456554916970289017541297674024330888932886643493777469145085553137960983790584485689323609820101642751931890192474822514715617555940385434770824743838252257016298214233807308122974131212297786270898915459166662129069416285787811366805049296820314265306671351273611933377614119112311313788920263548486010273995050498941461721538206334730933828952614247749485870800742834345944125118210003460871071674484395967947699282104152729931042293064899151616160543679793510347522331571456459265725130449482701113962560071381680736117762074425785025238718343696738133894293244938275352235340038404521120083690910939867955902390729972818926251368654911523445662583983022202544016152937191436440496076323365315254879845903458408388151711342867336070383286373444554821235781742821693550953683815022025763458582151052347688042570775764727721973390210423667828540081594474548050109667238026048565351186382561969864009687651177997625753309211891019725493585131805837262607149156902068899041695690976866565125618250050775347024686721804810656724578330225296994045055016891411944528932439143272795146569293990809484290063587866446356334251995190901050071187624766701466454221528256971233081660976921594144989484953896943783859716905806800236785584148123100698370152074671024937407301623748923638676161227127460512261837111757800572106556242823897583900999662234595138094603154968403989014274358327216232316588074538500486366795355510190652359444733458763855986139866853328089901241063228415284894087169299085592775474613956109980108584930448782248978174174015071798609747590439553546931407262624110531280872829261460670995984168589753455780187822528981769489804533489534133359995514771716053982524047705263365821978802287297466832510997248608097982365973327736309020078179394602474185447823229863578985130958451764397312816490198076942379920614976344497430008545005479563418321225871504385490247419628047061095217158895033544876633714825440746996965674910096413225852455754972348548113083793510383448971564367677655478469343630521451793837058623061340152901848959534269949088723786369047513494301690042982407045664859302821035831117683607487728783057080137825369197587890160631082700870271588533093384878950041865497021512083537106012404713828808433854275229727659742320430401959186759736788227597793464153673194909590051075533452028922512690271095380954037751199999265735791327126558111938799668189318934042286944794662206422499181234372023186206941525843612779925275475863767449738397221573459557033742537893097941099140796845210401611976430414734314993871579473882622124973973506554396090496947656639417831974117592400707344612961455559054550462520411032085089985471622233620183620754334126548329962115951322609204199377354695782551179610600287342707182911316351105677350426471690883464511980986373827243073782551563017794228072660248989585936747290740511736008926976100888020704694802403149691679644018328979824933168395241045465315545966555529167806578822168151812939230484831658163621204575404053078726734587549596449418063420127917550019539278498325775934649646322900441660741688309783988859020815039846767890061023690449085349114741626260069984533110899456079951934075375945408942478251101237430871435909680938797269551928962212327408165969135341351932667635344024796327560000841416639191915923861162893623300175277676032488981261528165604435151304853262207360223621038925689128454648422190298690861578468649208640499276356219729394926160643830171766967190956785152471666815718393744693492352478499409038410145047467432187157004883315437313903026280365922905088987218653184286100509040488872237987226128111668014947413834638969954770539670975089666306897795127065779508089709286671490725861196970080589615817090263762457571582898344053862078519814659317349091091652587710252834519956517963857001835500329628709823681635963916416034547253280666263181870587990814167684391667369181938602436357230442686525835305321433022640872156087962950023082296092278592799133189937649902144304586378546297306020323023680067124304971496584254005618107691639854444312978318651223199567825802082131018966808220912954194883861286472623033236152528358232080799654095604640526708212815446351093554943422354329011267037008053689606361468587897414881820659429419624840400869686920509232298774681360514946047944476369289882724597144842628695805597181386034888458463014437432884308056793727016438120009784217539186107948297090554687952570031491753362961005682005015014405911362524654270984686533114804366204193483618980729571062026058876326452760548038557590269606849015677061636541442539908925105070698209207595002054044622444200183489456637252012221367713380393738425424859111193138091594989622748447011462267941495511098641127953910057942477422849404311317607356315301231440243434600582295812554651073804753257167617407680740082059822824652210257795710864974476738976113498443710821882372632790257354234352694571308634424641110824036082053094962172193381609769704176575368327279847128931223914370590065486887247091522085788762148903761334460686521412903960113598739230331401839387754963852161362466521848229897244261086972200976195026617450553681919721232286766104375341257868438495617224473165273648332018722619493965928497555680024692457783399322336079255484658231046273276379929199908329927822000816890054982111365706271194549544085808859219196403333422323930462913018674867064193338190119997053285976536812416589016004605621382752773849796236952716989728268450158951839430895082433958838562925830378168312215850380940895190761068046301591260774681794995102763268652280930820689320499696401423161100518117676731157873244107000732297658494932314371277464458806158636059802462546296968241590481485922325696299092786837340938046088425087568038817909132930968403511809853583887612403507190102020918554207845947882143421514919733949050369147247599163535115568179583992770502317232258005211588823831744791428205786511582899389466184415309015152849249741382487858589289772742782067382363153508758382047804864084207628448329243013858637640552756352966253721951176187863637142551830540392803037928898684033238833945048480197739530752422082143811295785839141717668922154119631219614830941874885054237668799208945855141700713727925229001462138038836841806619339409444912818755307384970770225151973787150087880546068043862191047000365295278055380008827460804801015006739568030569391945273908149408263165500666812782698635848878459766891370890098619244091980778219512610212456402742594555274042638420456653216585945928312913480975327150537601030828793596032774304179228652897944315560531113414122825280716906184566929754936586998801359659642787665837179272764405657026166057515938810923985874873432806255368535408568403328186907498260414967687417834367677858970386680936763492250165175494648645319802418983373380361347047824597064950887190826823138038468568947192940791341554556443321948785235738121448580407440610140874395170631593338008662211211883420200459179833709018253138557224928329036988355987563276198247564053422088445219016861996888321257966729434451179418635350266168083098776646745701488575378578802359947771268693975297551885645017624715687617302429466298038297643544134097245313014693978000957671000256412625229166722074097215686272141691240184059043677205691506358846986092295061473948916737107019297421628945953309886319291926825226616275756577189851693706679877856988672320388243152358308524705343121794472517686320962297569399406655178179644891261755686421250219968812155894080326300109494762029715058418413621489385778553238034881157768338767758936784555396554412969349024500758298933597248327665860519925042103086902138963605969726044798566129607984120369354905211581875055727080852736351384089577039230334981277096361245250787676476663616547790134014902046038470356109115737469914376265996471010718102159007165454631453311475756433373872451115040705570253458060286622221520852962281562120613359341600448411583213414691256102877667239066247556115063456476344662275564072451331618730648099708951813907757522574250947355497949718387016250910710446901149374869360633974223463696098149467500180361943590498278346547330291668771959506253698065670546021121688865084553976040193416680896335007246484751032374665931065570394966444009788270156296828954641449615548406902879322406291484296221991161773679907399426293485809649090652633570543384212633654491236359691007195029661002957080004807224814823642999976208982972438162581206416560776744809925645180841731760370856939426922430014590068182900613144338269641624538610062290494464063327753867531885868643396515860615961924651048363710012256075450067812305835006708508974911060196590147345365627223091234677413242383924883602144494974582634510256827061180682295125936283037399596735464695971036045125091340153580659728161389446384273839937383502199147255466165087636136387886163231728236845080459477180369432445303393139795279822540771828680684626366493919817827547703047487407078909655473863989455952251693507112698401586266387799422002956544883940469070733258154999435701878918520971198835669315120096512498229196799144475978109594487724457418320380324181760710576196226754904187470298844908526340461152186717899524676266952001907813086231258388036356961284575873389944469961616377119607920066109593937015003049004717339764818454724899144928045388847487077772790302481734157630852638382744754913855546527042883307605274224643835059776736792377980238931473422790819689103664837843416441837879250279421797272990637525281933039253919972665729584181083381937130070525053736994276444073324178623880622721266604143493326037747397293017726198939582655387409688081987340129687778186014907021876283233998838342445666646778046485520301235510532654339310182901188220953128267677006748153274359981271189188894428108567963624380246917468421434896741391420582770009857535183830106152891823686704989580811779608620473500459314664351251290323182260092988763515673256696590154610120046379137059212632019231915458074577094794508688783929652854020175551324356171052488881320606655318977654238134861456173473429539367747985082153661306750939504829289376191867994075266348475846881283057524549303302319243754480044157265544279032970190257227238437261630018237915657252073734640816115265525985857519523333776927468846503996463161232589681300178041182435224286767817383982170055083079383119454986327785898868365679580944258220815322066859712326745477182211684156494425261158001023398837861381531711927685526377139525730860526173371109169753392468132112774324377108930297585830485985904728165116442550911104686782131019787895051883659007842236378376472050210795768333944003749773782660967508048848047904994691164296012098183913586069230187737030691525995018972722093736564938991935784942339986316013984426877403927185394908435244969466545523584043273272934630936041625195395770873116705865653177192544234846233527167747412037983424509852573062695043316360738044717356360232258186032282034597166383299560951962320752993589189332368327051850125024716341460051364409645225765861350992870798350859599000146022780573457137240867946938512104840252023783834550058148805290650526761835450263895900949790016673484069904939707237083429639053213984697172744900968894373758877602853984087813157168940125764489301835431695926209010617061746524329766391396595887454217287696181498448916386584595335985583051891370487922153219033241397769886126964034898779025982308423748938168197381218013673995878745155664051355091156315714490268414723604761869731714012121429511419867314946851634628647195569278324017535178525398942235172484066782256894333173777341753946333608619170656158862409822252380809154338714179193807761711866773840973199974340657472548541602533744818742332193513822221262323148277135020650080042267676442809446031011594922665742577999239651343108821835850538670529383945065287347056758790435037822516678186966704520152234740994550475827939449475306708900696524369973561758348164384662268150284856589660256225324547535587638091301277011666082373295880477482875890311297670601089892487287235534008913611973264050522636363054800034358482413440341491015577054586520421944334003509464054864888285434768035239814518039156229478118517361598320892603760373239414945762377638222710234262876744372532064124049576916848661077560756284152244110292558829436362037788996567832760687120751116858192764682034645768363041148439596443467234554558497675189371831934770282959822854066637021375939561602927353892212347885437637706997362741755989542129174445434376951300949194691555253221519923219361555434428740026535270642081820287864657979259078192785030722125494472569317814777243144402968103665510643109009114220001309706424799621836012931792416808064458403680839507434871547377394036039097295372146407578624393736678134528901272323535731443992666876764677977779564582553866704350432533108653587328617106575154230007146470241130428134055137724638625737269013951880325019955016231946818395645806493790405271536352975129492654836050290469826897335357689179555897817143075178814153499127014463462665388059370679764611697370041126190272986593720242357429792318935464013176818873485325997113694143079602965171246836904571055320707088580493562135991116067062509591918888644700574898510366145034034967376537403554338571731421444721302257953121957666851299721459071399703309724409819422010746317451627391980325380356807775644829144910172996738809761001457673025687350198363961461985873708584188454388633791021241701971136640551846416152329211617088993971211900452781282360935246436151512423711114361754261399610256654132693091718837277751267852719502143994914360148566795968157309223422100812375305110820746985308623196790322432516422937673584389944654136652209603304185789862178484328444303133884692132642713081362275693564482041473039379732850349072661021841319154382947515381712375346320663225440729628085596883136627279290726314719847136431904158754626792760519745472449072354903555321415722135028432369280391932070972800753553736600009119345154613786417649489062100409885076603581125407342964681567657951223135011735159774341442478184517757880361814114909310739601373862690057301480628929830994036471634162372903866380095493485711540501521261553621136401345370899844309877261584191326406286050261083099916631525409364647554379876247813323330162449170048261109388350437292826310348522115701904374692028050797283473715776997786370818359239136683663304588694154608165259192370308256164399672281491355217869853540845509196385288403524195388623558410577788600238379964442882109567776776233765179842571498495343977388847600737195066501716682952217511742841887250679737841741106340153245050780169610122014751788094480972376490418862590304082398918293361288212127582051322628829786569479948615504631640076482896286325887975949611337267798057666966530480056988481271691267016980524501460800001651858698628790699900754965904126368700670136280685713078071287450252476661263299171840672756658735641816022847649922550013631734723866653132394484481345116051375924509447860572468439050178979215242155169378922126396210631868302381335114874193839492709443676279937373525508323622720994596693979395415236073605220799314195827233935570029577835262108068412354679673659862950404978205290703611386722065222187709595971535701004080383506936629874144449692606040498095051430598973942912736547070827995350427563531178355849815295658152955903521633511060598812170607249082458173496052943053201670207939371366003372881731365223300915705262689008962759174384149055834819629002438635376982003373516264522949262104002827456683224377815934929737006011023584588119933296843506953392059658042608215448323238336018241733885915314530984890568534522067795885448406611704227129764879105613735526158794394575044781297438906381564965253938625716088405189743025984098636267302383404198863657199785409112575991862832224694152847332741156127827411886917077601881303029161270396605667218841916134542618282017295346146772514733513186963573585341563813597105150293605114702705193271686941744560085868302237375898950712789910173128425134434852054116428083076479168845983356684442243883239899149205823144712396491684940196559549908898313830035886236248582237980407891695023471706633129570644115893227258530787655839460309249814015736386555503016495882672905331979113902632413036079787440838841333037734912077273086633884002608043704427320617657094797562270887789572972963295193901437819826336512693582700312284002432441766414972759678504165651518596069408962539140740055517339053741765278756061566089770121618479041143674611921333407163735313266153334006580087900082330083486461960945012277732247223040387669690389149202159416450878533256408455732900954863486804889127567167551296122570778891489969208978800653723829103473431699480631429966214072743887820012710874000547213339995476767765419854297874211845678810944092366555251937688079081381778795882172882067933445629065833295566467733665374301730879147894809683805907276917462983914809158857205005393769210789124534121627863509304556810940235969104292582064332046841875223282528865450223833928318119427550605214294311624414857367509518032877152350782621629796284644571357131985509304851916993967894505554460571088479328134823602694497342463180300329106718546911501663931930217108300290583528186951459680752369773761726190828373733724377949350861233156230132449734772927972339256018207711360892306613019943941066057741821400033039487845683474438165471997540311534085123791714931915744055552203096313600214569697579475196250254323173530344558575359369285124752283751635629486274404778404157494414854930275085256857680959769529195004993627328103417033407837301309149647520419584268364276262495463009544938556627284418242824426327620262585266330332114367752163373596959874685306068574339370737930768732069138105595101517102415858068859510762069132404605222360607703375298127800130327128227640242175550521244860333162889420815404750517332275173733052781790813393576346678628188377974189184304456850864927361246900460387131856532636617804015581871924521904051326586554596512504416006571476208212197090376150503207534105708664639136857269781598404946871993983955386436186233694199371174008317798023644433919528557734268085958932217188827052679140771208369736403707925284990938379488239011240503197272473757595967211103516420369920207789633228789326009641979200624600388027989970144017732853034024687243136373092532254905910665180414883777253910961049480400551823842865893308654110022142098812418420741276980395766538822305606830784288900489250006070319404029024728762922430417237124353915757431859656872654238813251827891403795772568330586878855847360451227365550131190219274331054465555561354092452144087689923837457263810956691102108648129398849535458720093439910851118318032825344709169668306690326640237592294707948152240421996808052112529524724055767784235418547307988595556958433763073255121665798953102871654840957075974232155658216447666406805339093396978767116058118670225975134802818064812326497895730036654302661251012360832699917013327463896309712249165024763553070843588437430351278157295797212756029795855818172544601292526774294767565493765033834215223120112644525200336303064746702523060006658465642775850067321421091151630696617476203649076684362155975620959599474966465142575128240164589230938668940636249542961556455672902687521528135961659886827434975915142513137266198434803726940759379097441249552865614200923347131791562958334842400737793178200923031007433706476357013052756148052279880686896772871121440942746638441146693772400182543565315119904051957482078156644994930415642702384014687446178470803774318936475573434133145058970463046163446138644422862011961079315277466881051484563793369815004225820569324315274862470495367353178356366522763109362988922536955527213640243124297675492241069811453952701456417401987818370189565129884506464010168217350473683121159814748146028942749639366173118658386586275597946980507417316927250361266868937076095219892838856145779179589336613800432368900963085070218493347585952915854324735169688529875945595242742767640670581504950762402801206372201646564903811469052219314748455572082690521680645576801055169150438168941607893081025690177759790948742989053530669456838657889167021705788387670100589105672225143569205459212393808002824494886891142171377898324853264979506119465933054556954004160604133780370376892866261670805651776587548290670582893992417901805652555289002491620571033257608225714477265280461549771676655391346980386771266773972545351181117783450485320488092273109554530245141026927016128148738505220513394641292217938061290352158642425804121994841889473633186389976548471809676126191869501149276191780078355049407502287936107728636895896773460335289858307564164451815366705259077780376510461069165312157671969037182382562353680350579423639844808302096410723050480307756523140993917637614301980809815995637463765446525595057043586083750569127570616261892950076995572171347649644705939575013968708943096528410766940045573207504563216979619666865200307899272499773158585255192767386912934412063278972047238415793265268801851266654646920991040210255987475818555476688217063882475781466062864419591315024591372756653870660824517738123564125358136197867136041215021393966382798930543053646534101776546869692514570164645142102716830220170536347504383460335334485431497071439631483473368656525267562783192302618231279985161084892909278662853473567882786724903054713434415556934492390090552897631163681576534268183012625426641993738001953799447522022989410800267497893310595331421224926236325695712825800310937881940845277126306650631238895680716378722830919715127311024459977204837145018474818841915324075108151741646171580133743547818811560011870457209552491066783835219167634099179949679845506350856005199251057290801355841859022688562737692452199915581046446223720376723195559805334277252224735337314864142468928183123790333661904419267901939486088155199890183136354553075064285595986710413128807041036282733496732815316152076081957486716977947664009666217890902567770949113176656109439574686806845998951632141266303650505170545489544847642767990014887696874982004627940505638360423435695742792714159227183927143212656005353678980244217151320640135489319519844304609211990911709020064537428879643091598178539180711461850910011082851794137994258721841636715243618430910425282225499732241877718087565401938681744918986779776735351267756070977601637850727961540787393823239984077628813250600379639378496039339147030622793679027441914683073610397616404302416774160825732683674807002252257437345489288288262448278285462221611620318431255478107736449041098671693494505243395657810203900456403589156158543224545307893533547124400337131660733470626461731593226746452278001645161688930771425845572042987715381625761063399460481116361463706019921213099064512515342926428902140456669073320533471580778512553144402867151170364694700742320180997227621823734972950862663458292432259249133100772626691741527866061811108613959925176950712947181051995771600645717628695773933595524885518087927597961090699346756187219374477746486200092262497285800548272835765272116590954845906165911303241895645131297809587059716908648960129233853005739628043100830956379430961052490907291317541456887121101819562101632459682499325137876451731698637850361026750014424892806548540846842395536391733745297225263839578995944491032513190642680376133114644697162317659039520851024080242044115266985045583186198805277535978010391119297146418473483937476568070819742356572261875939034531574731509133694506189110853995991320095626011755144020674387966476165373868199223121027884056287482444494732725190566319773168404447030513515089916855926794189058543201459337488527096925744131697434975259125209903917537429093460610746070964324465122072296139662260018335742060908667991733134493283927497038823895082788678254044006860114649183303288304686401744824194999013948832982737415162606848276244341062974275644362144703238576904429122459916705527996629015690347850069656290951169369792822861633753641643506030118471943626701999236497385519820415913201824954354039484427702106783748631264579384864307851905797168385632522583495664581531165547974190266754666448858654556068636360325806127475259646298323530307839944310585083108203471647533101509109896857055320630281573095982516511170378038849340222638614176418451740033172133025389274345912703263705319917387873400899581600536050608465725497375877284367701502498725517170162326770565503707976153954472394075176102807399940791212206701107952824521168614997134384045388827551317154691793198830711437361195580131401843178460017410873957133605484079973320947136098528681734206780833428373763762970584304713141933807729843124542477070964895194859509503713239914956336107932078796167721925394091788921969457510678495954835260943141856664501886892986719321042107555195108480546138342618777789834173441800684318372835183189536741142277415602099955767202523384716562838747771371155053198544141706578805291725376839280256585600479908034144285395872740716412807606956426125500694528539319402336610458903565747334307589173844930607807306344913022320018503152034669674939781541448595807387145195297916569453653660351575455966952144435939877097729466942074213266538425772362691793616675450421744071658075818651314319625034419365704140662600809307605290797724627254076479326995567841955961103242303174136626218825432810162945527610001839562553988844313559681147786724757987539507007188316774231747556923952922108146112828027184618458143160381776805617185171633881830582718779937588137754944556461509653110286016196818914198719611613366790344475896276575576726717477377297962882153189424767707925353403150131912026999910417930598015655044174011329477256467986571952171971500260032311367679192870618259882613190317316227738735118923795592778774924642615365204937789503581962060396547780926747669957618242754575579864491081763972466357574181559865611633292707985402177760211135889897203065337934330550479904400637141508432969741496082196198726500083877509368696113932037080687695943223760915655491898855172562376600385738356860212556749902302560566135537376660520494125301225758800028066976306973467471972095238322663757519496185200305650526926482322776392388217908100886629307870256999552265093317620813383104808261920122476210292700792815705561986499891070774633242731044885525506614506872529425489523195221334678332471096401791096173490411084150810088895983931884443306703578830398732610113080635748274173458747553748084191675586400537770381136534911644629800425487264550086243630213624479714350508473696355741294051606476160433316345259938143929207760845415710588352237034401661268794868139489809692263863390307923883801483481942020191434326849167728168009539676595658762648838019797064280183486365508978360054898899049541999331223119051183880648108996339198599616840827389439572264695446081001461420874653794515045711351776746482397705107023692079883949034728632182662511846423696383330016587443833147376461543408901229102851849444291308367187740178339326650823501143259249086959765577603375813821877657637866903950604215310601210720927962594935548800056506785108390827962490024996597014332510578879928831307577284532559679020790846032071572980659045281636749268017718939857345635441068325046423600325457326946475146860156856786972060834439292547957771746151123085259325731178829767792958840287464419650150641444347472441981681665940155084813228691042432515811793560851352223693069534589114204038778060288757151805597062621851855731469575851067919005444236155237256769983993853088091741057014652269153975632724198465298493247286757012062592508517217287962992390551651521012368581816798964912563417771215012303458667835919696666936306523201462973434143040647089000176536212852943708340429747853492830836337728545733290035494238101962117929476782963165596605751739395527440005028169668394976131643422971249440966329538383660985709157284393375362845453439057176068475181953826019859481001479363524622987567330853246970003058996634851610386336856464994041078502413731059164223103450031158866583240043359066808324587592012205270494422017619134855223501721395508148686668905906373931795517304979290512504942557879297665488100945904070723060693574563826557631853739000578534153884076060502618827287268857106529776744716256678931518590203494640517801334846559377360752937307829493451181186137475153910712937714804941486091270353033238293167137816164265520191550131110992906949666569401832217257970462720261553604978900169934431814934872143673925061085157833887536855994864824866844627541802251076814268515103221448924821226449776682871571237318453930637557755369770070468035568917043264152957526716219380138842074227591196849433363859588580455123723626428967955027478323427547925796834288307247705087594411722248456269030850184662343242806997617178187012628128949997477896175275231588994853482714330351403365534335562954995235641035277050341599841988770224626356564947822363084896513914463844326719345595973392448098647195941365376247579993182513280335121242701175860164246391357098416044449062201930391343458942313452104771065922163666068767528754641333392879329936131607786483321517789254445042110653523132131144127403815536616494435196563734449763465272460242009757696649728230176924168743044944953841990983262552806217075366216493816457424406448716423532889535306142313440672457243901048013853848379211611348497391949312375480242611030929573919468409546588640364557272817790883796573133173522683487019206361209922400750715041483812680311610142261808232199313177134783057577084594477570934054849281529822099356705447843392362173194035638919005602432540428898901459421570338928571648195624548477125224327907624034535980005912785579499739690676649227627899854529845155840398831486243225794912221581834001279838071139766048543421559424366087240871275740156320171548835247884981520895698970392733444284787713286251655588830658767277404366013067912230017537370080012509525766394754020346231832172394055526008932177125172062307353834658992923136562212834372460757237503575422885365281835171393616016119450279043727704452452249586863637437451918655883492503998017196056723622600043371865716741868445386993619077013438439790738001247148242267520935504889186395997918242104537761433545981766742564687537475461041876404840347258328551488316885515535251140658898575410102643981097107780441131473192575956756102865274972276470939859415153701800968056421071650599275424686222724430161993665997499712050942577703816338791099818451875192771051952222609447154224798969670343263897474970200397576096873240653656691636208472088386512093312519052092771803523411074320222851513179869545047258684653031601006561046591695468946506163022130864965372507603316054280749289683314694433907746122235432389492829429786588940742814782724813023509181669719500242430667338923431309932399186361647144494779470135247454225603109521213447023586053433510080011335618019235459552955537915246721550737809527657924754926635756977855261875947688930823961185094895243380609769580061904207219600694818535399757796548251093558180237370439877507945175595279811669118249393305746317546636286368241536053413602313562709287803014103982998748027427880723340870753459440844577279925957574332797030453345971648678464345415457949821373235915155888830752280990606567821072927702296257171163894024128405899584174833568933733720929250589167064674102165159544130520572691961080370139619289293929384610793045270635858397247437206930402647130179750445846827497070452430424274228912290300828741802548654451926843536790733572821825928642848284354463661805246188349927761667173490546302932759971186781350795830471358728558902816545866057380767848147006568007344008997760274379084133314828786440844509892543624231547201160737607197193693439081895389647818363017704920868772271524647944066273750394539427916581864020160432155334620225893966252054092497872543983951335473898807655826455138247064687491237219350255832429954907192435826161423638777154345147031439796606961149835609927043272194616884592899572063078406845391315068044227760419245077827967973201069262164419318076640420487678813620716259731207030456983803321346972759876056714038263686774483866891734383451702509466012792023062329844354398139297649039241141610077756484287004305130411910614480286294424916916766176245005360449294041331393714755534770853225281832558976575340870199546362605217621078131251638077899881010612251680276722343381243684359945114732635990009875329988377002830649518438676592207145265723260541845321856693749530398242491588781167817463096164488383032131556360641695848646411137021708925495232703524564469662843317028149604787241662673424285082054252765245079302170346801959714776088082382110383275396565728144358018519895486789025782505219906249863404167241227808878423324695984471979766499028378746493821147086113476036072044868468552593992124409943946628342500806318362013654719958122636359276077604317615376208465157863288758612133481350660806514904388268025708448883681546061208566178604768782946832959967065129304080359456608274970742236625101090389185488508801432781164669239454601497143469331390877645527748053694624514976964644838401181068777569299802099681933866452738271537883322694970143212139517037514228525309045502248918651115287970234254542887825086009208409071542331701298746333219499338875091137181093544856105028892845531680495772555603860922385788568183417574963582357758551155005316255483525078307665946564315327109002878968376584902033996231210164512907246625400240537380327470702398109804767431191276680168667303233727516495393962097864944949740882805721279825293783327199066329881835314291965385587369893302825463970271497355949183290731314475699004409369810155007093517113169045819211538069785568451781492647265600000758219446973877727197017696549333702280186997134874123722945642965119019085585686866439321311617644363522422152827613460663912390363725886138104542511752366399379641476198903555882108789606776044307309034327747994842406896411754914112806458108201185290502466167725167295738848860010844855717289634068364091603493462454389711893005025794065137670416861899091089898946190472878831675585618179379772664964811481166294971348055266640625686840132295514355034523326439328420699376813817953335125841616670064963524219321812254587277514870673189833873889974293906967847942392309101927708650290656586188491099699091086704775811107567995704605196534680308088650371285398949013458252478440182627363967200910149485751513405672134135302277472904969076993930929797193562751193483433561725208962092042494618888355592048130262991484622317813266625128146966390964145143318782894584442818946747852184423474830505665038025005823197262711203425316807426686849773057316603031932833154032677709112176506463268069543664831409920083320399544830068591529593569170430160992788625574191242612320298961782659243311584055650037148386246160990490378356020604221767945814469360336342726084081947000909439515858859215361537513470320381210798193308015616938651392075106577743601572784798441223845363188229454173378313140546733440261595290946039798609349756645505251440910368188508112490609879014594571405095506217495451631001725135969773431013644689144236790130323749115972512324625153138744857054068965387927181647234472000098282119188047386888154170691289210047376603888951609258015936550024886345925369466347993667528743486252282372290478036040030433808873188210607192910008084243444649018825677913833843954559365409164054647851299436764774455167391878364258228430505424920773409444158558457640564970958598881496971584388448522030142387202690257469428054025982651580757688023795728276042430909292188230339944030624148740735145291601817925106628945533830974342460928536586170754429542610404143572135487140692623599689275432173607854482599284435452000097596407116879457269825799433199896369149239117503336607889207390022068004726551272384899851336034439534014068519281235655408378768435926071252497855156706547803101942147213574382530981076521760936272930551770442953638143835205855966088010753540335986844762288498544183130562715446869794537682139881317728534211477721566996711772662571500459065388594002982341335367470920392458486852978759912209680016837860072578751845533708341938879278526035542176096717822825132609573702414872172884206411053801374025281632174834323525033067561656284872669697402118519374244163804429615860602091619557909527023057136625714452024561081641998680702538885705959436268443718369830563391007827845414117675332977197857097674497950098508173636823958138337745091916609281384329418533910692451150915984018209465049639433417973017701226333497225906730107132029383265991046084183670770145581396476996145302290870063729790734378425270798851915381812951866330748857894389760098499010393675437959318753840776801305664923755650742684541871501866503702433448757452318879099016259953898454162280019911674269698587927062946713495262065809054123424338932020288272171618088111302565569875165541672986689742081264478800524889112065062030589577426471859070887377096975942277514981371315757655428943662801031113357777523641484488279995909055268202177885687367892370864213172592716629033270038550329388499938573436205941509461137805103506459147762535692643460087614092730390796346733308538043710200254633482492884696325338387614184440363182828185159310662096291279668748360140555683922545726245119738425957683262130788396413823963227891363342815356809786242157985006097361999316978973203441934495543736287785004199391142831753833641334991793689946832225928124489981036560279434640686586263161374711033090697484535248713705134274404715572999372469960304355258070527184684622025817995050410375555481803596710974670097011501024800127688420041024663320105999821174164643783089370066670363704127492865908669984462769358660721703458534161447175172080872228654513850328633972322714468732812774492513844854399563437275042931380381896045770425580360688901766036131582446751947110529882800766870389010555371959871112328283129893758443796041736440277256762466495069241240394881494646510294495362217224861265985215552380974508258054936595487907815682493672873645446559908593806626925410160912849912372590892602124291263305287864373548421362850114894943107935344017411438255956290693292997174101400625245212153567800144287894283596569881845173066714595898198222633252820883298774624408852297614948824723447047411848391468684167706385775415984688093600930850356331343547680958477807689450008932752408444410743846367403335847411108146851565020484124503750480569217017794416053100661638832593242200869971096044249078504496606460653326674430530691469371551739870790665702807403706748198250804241172359902107487971083863696560452044723547050153467360328286266057849788489003853667879953464025891874445322529002687954243092781768066371321571519840552403369540611649268870804574396044791725176250548300403353774146591220963090399171321499205278459507205479809892620166726076705428566077039074531922136477722672921585578177233620956449683429185462724384381351363322189742411673817764757125417345125773785944715129809259555297766508206555490181762579510460326727596895977827944710561765970632722036197768680044727895973103038844149154293241518447649140896467446433374502429160027293957317174731081721903081514128491868615228206149050559976896751956077389876728571727458299534633826201901673764605189128412006732732772000551238264855674065474554963748345774328771760330994139784844483209763209951657824285917102400570601616616621320404800545355448477480466631767869810719918807764582062964625128999427301633755002197454850239279819917660940427765994543779329933519999635376978838472380164645690593247147686748330205316313270329955476301574881769895194614885756214294073264606245356937124099456148461359344410459346100695824563697318810274155975979413558322296324474665618656558988302540165982677222162936149375592514991989382810678226853463977857767791696309932483556966099930391357678723002604820073676883244848103375905335080300405365938249779520241825178346823524384280986589551714291333497273865516307599168832931889660926917376068477704533274880204362340244120512015665970963885279618167863097423568582888344647446781456083346392592969772860015259083090238124834522158153697674356429130378592738019691759046494098114235074720773477667187372971076492639054337243608289932082344887492076073445691340921654492380849312665031241945055931066014092441708371081599284096518019604491052515961260512206192755852083629460649111868018348936757519448119488356269176474645725491322705633407595866229167762862207075034957847620984816861957721427126168905418473031030974826911314340291544754789956017356729957917251042743374167198068208165921157551800848046844738611794313420230131619118685001692233106204296693861736836515837947992024055848282118291082314401084089928315228028676755958560849336828018650768737121217696779134839990808452518093979792873609475878782231157924039372352870505485681514431343980334178700619871014119772318073861336695214314790231626018783037248709475165191505281584495060882723930518049436546577703737522824804066081979199406882769741785521121215567570984298415481136336810659051151638415416042899475384765655640558737434116468201827466944789664179132575196090136901432484620453562031916095427550753886207465204726658985483121117434493996722957502737888364557400430034320094458487236019122956523961523004486882494845948541385704839929294745955721091342392105614001496179275598475814848043101483620743968688172607685290274870012305500890313913393833728276415519183552881313447990341084659198596345461276534398143634236069092493672131069954237389206531560434488817212870588659767845384937525216455516259841020141186193318251287914216779594304603859997501395815825230855730900328500438449196919903435325050540326317920802094255818444542911916180640161410480436741754612394443990130310999584824742225925135833260058547488110459454689796619148306777485270292884193124275770311772180371641540613621010668729632417119072803292770863443584188841384434815604222598972469623005789693792361136673744013110442778976010331357940153880187798002797125686845458069761261466756738054175067722234162102960675693759999846893177408768949730926007141465089846044191363221126060727022751234750964739825792411644723227944870982904418907508079274074203247880444076162383428313319688637617454874173742156712614080999126254586999536008544130188080491941366871958508934782038026911285793236909455799859137847570309990523263080074612203526024285030165135468474485284330529615637163809074999502083290601990375232026644194398809349575192042864128792007325466712069738241482376819255532056795121854507569982352429172512585523648630455039403995912231528157058285698245262483702481220350072042400970851868203836362718672251643543653799978401354539678204160870933497099377412602885563051428753017039432668322535213977746419841494545594367846653066857178562517486335778903224627610026665892592522600644335063927000667131197093014019068117887225034849885595188158175357301330088994220343451882177586429202529117107704792093511465397058351009206964053116006127899064240098687303399069663261694478775498563012343255771663931677788200760730773000975193273997923040745333547264600957029653111199163806847312918128293549464762646458005020722687166682941312609799847618177803591518595972113350335831642850088543256046966665334900245298053784015485098336753854474110929822261277497324763259976384985813143231491354902520980927737437478613732393596202473853847579278405935447479398082449001432306893267290254670133129271224741161780554672780770188967646825291579802031864906814568852103758091978672775496063271330891522075249039207422124643306460018574125097711127668859660499033169191295619168628808065904125403761239531194433888998033036903652825239702393378046859339370352650520646407240363756661673786886627679923311869740833335263939280064094266461893301413074592400196559532504419527568549480124982196756730401244370720406320385608995307103958136235761937087318776330008646711374301398087180510599595871454008582119167134863785889970218233879607538777868095885734499964160186184854334780633445643689620096778943214107164004968254182631254314472407904675581758951444113505338443421766657784256991539271887554312547993959053895129007522616207731386915892255531191306759471879411079027323643779338339134224748835552547911069960448278086444371549087777939741023604862091560251715307968573658725434363689295865312118484385202173195070508132696872316181906082500409094144219466454011951517576384311396671621613477008353385441608197501896320164349349795672085206616122347289986713725136081820867785898262560107792810424847020015051869298728569135997961707124071526636127977217790262691065948182605383694380268691653837088991455677081921129111126169606720218357420734848421873568337118377586700043685597586807769637563963715198126836360541701505875787450931664827029752733116489978257522070039825398009506186816732474894531276994687289889189947310924329167068696635190823778585194525858766978324390177539435457456717803599716791942501707259822067633489909344618041853951994998624137650469250616024948303494587394141649676851325281170237186025864561337509513633422449804526168686668266717227578491723192805565575034262761056991036298985866556800445620361526149694995059168485947028681670722166569486781789370401769536161787268827686463832097491529983760554790702465922554520764685613085848863943312733333803373305849660323262154870433658889116546523737475278614576346809555534790456747956425183391260543446010990946667877447527750743214700059716109061449370903595035484869279989370109006629011011847416480880524802360364846937976292330498853604635051672270748748827911637121934943355341624493052226497881462748114873084782336487327673191287375635238310861048528070298584943739968866706967788094284748796687072671562806667223657484303181205771842578488897883432056771097537542636169336182951676965074703560289999383706062908130713168690704201552352039566920113922812637801076729739552621074958337928740306812777429149772024743207886535566342707768225794174793632241239897418514805770461339075084491094097549844193899989037290995116009239470851401327392426809027400211162225953396171533467745546066898134507952219856961438631938643180068684711091167941330682825632000943413518156567850127236748370448843854815078509213717076796825690165407842722977859646003609392687878007663426289866114357581808681788768051791619123251226533600111523843983391595026172872211835006620286564139887159650010621913207946066223867254471862538080548874082172615089627431990165112697971890657150038850776980390819914669174050231387695005496316911096154026577961075796792310142224917463913448573552232373058149334253146805409261665113123428850574784618179148153535635039294266917625707518916778339683477873611415826138391030682231017541619129746765759870481810525324889304623384382231179304018573899484544369723084803388594473320125887804377154746195495564708802419775905124036696676750282402397444956331944478983344692436726490158586605779984513583751393972737201232396862528089299022567381729912131868525763320316170193526269352226705616913232636540213861747577963000396639359624679870864340742387788770717065069252381894093918272752606228157474198048057098532336119455529002265985815331186548588437433599333264800667287192548469140529157106617129849965993257727654737612518348984434134638869234470635066374281923104881147413348685494777805406790573695717817757720407013283046011916125583739022630082039055076137974203814312776860683748532248356519652657196226711672367159961197416607621353838287603016124588060532883169959995800359570825256441946001169810961993252011416578454131166832270403451409419868132312562305371826768316449819526739166358124815208478520403066912042616079505171190747951779703587051804134330854725307197425112470171264146127918394215785953995444781517849587257189955947463400564848461994136080074300110179167307087082352249725596877919047898914233115305128763587770133128302649395413404923794952790588080273767513392208867348706259024397621180504597108213776711516102503998151184477180710602083676161897996458275955350740060318553384265121053278373610233248667389765054667218980542019911574367755176142601415264089318829466643580668743863946743385025137474898121282943153840153495701818283278613322668087617383169287991304585288531552647124703132860405564271090750467979973283479341388671561779675208889525308154174128293580953560524969618778878885646855228149504605058412865242835601838879023647459217090485024151868486720410048252184755828350446226753643446610282286757309218209292140886982692903168477502047401890129862430809189498313441464768101744643416162886768716721932195926053868665386456993379377783902765319305792530266426507598092075872935201565516449899520511508071084135624291664497391163439872259853177291710083301203342654492984728269960094052404461418872188852920302413530277036937544235905354257618585669377761107199664011323542074263125750750543050345940791895092564655724163953460103654680810814395005945057280909988433535126219033071119755826720521865554438688949925732463019629698025371885313786035576877188646692583097272653731095081807600910180780486171575160679632701836454922195625305194951375522393682525137488471880924274213040804209053565925287202031510484466108310065186890828847097068574666623692015327563180080585314185562291198234036276202494564224660037502000302840872055921941872185598927700210667616044382762675619780940495440318052451873659754240139056933370304854043722731813839077261690216252299574609587073522971550032726150857608813884078917171598633730583971633216446535130490107625244036203014932991470411892824581630716931020692151498385786739280483893516603936269116686295094943028882388573540240234037053559756224101439791483398256490185582091263637158790528465169240255637469794200849993024909553198427534215125879112075891414136465031066812886482406348629461545408951024599148984535388954744420510940945878372600492284739115001339330697541664008154244654551861709263348750840660050022617407382658326856734884277228784530212327164118799434249342863095630832516439292456251694321631636375088392353048842513893565940093016699387089770579703240297816468859465634227740929058085514666506355821318592860068258197690508927497339089760082910197711762905760768210987972710300310304423058663960944219696416594647745322462127393736580377786525818004670506588941774314134852651454794831265098470580284259254560873022694438808833313020375231995121182641421713485012957663655337571177217363722197470007196018727503945186852092415511066074930345201419244513048478254459032217764187715341582141556773144283058466605120404786462073424263508466439255630940720150451855918803801585988703506466953058599559729971328877983308948790663305139206670618041073630309709148023723294761716516134864053711409390318126741661209967056940084089561458136818305525487457335220397332224539312602684648045664375432319128352828536145362171110670590976158081096646022876913902908561425031182452211520656578487814016916233790443948203304022689461509694137573495432132410006485877083234145520754231574910124197043180061865950594051727616757284607392864899722540346138021394701543568321341216848875971605801017972957488226429451002148339564312797820111822632961230592225688792716507297562617359842254794790602288773414466382211338031949058891036097448795993677199334521381402325060059216473734015407406294416054212674487975916146637170702366302965085920657508879056843590625599982652656779633092043404715158866109565065713988104211651555859793052408747150065306295309811924714924612187312926642348557027520947593332545368593243382369206028429739504280574733859979941667939346949342359798642899577247015068069529094155487682588171000926835738980811443982133000782112790093149849376920798552954335397086763466930413330582960385162945690796577452998741341747064644291365541866820198674651385274443354955241028759174640866694804695933652729544612282580398970462365240115597852552519795723465779884317699633902438706311066745207860517724763359802333455702966007550084932368865998686507754109035341188243138839364625440123184150311672110271120754191562826704215531899565836604315078933397591175133707336989003695115727811294897898648596649266252567738219202392342204219316622915119774340355454770283892084039200849002951048966729756953358388056269520622992541374815214269787932230086347968376027806498800817933058988483491049648614595653825097078016466418656754552108517760110285675504273171488788885955777758094063623590206959815542500141698985614436658536820420862171766869159193704822715918674109393159331274136016932866540697031826206017734995261977765654214250369031915331112976580547360186555261780633740798781148627959606548083826229253624508475093104537680614381299055688773020600417271222356691929563546491670812470881628943814416503052971903194454359626474087030208570881081303339649260039005742967858236935770151491631548599699852256940664610308390343916045885530248241599228779471244423931269450254062554896092444715728865270384452248796183185442629639504333059098445039684186121165505217976872130489714192331634019841852236428823420198117383465072485927274743426778377927041176334627973362435859267577603589073806787851410600162792505899525945897518885662150204145295594913332489653553128039065626231176135663173083587418552173815888629524822481870149356015852917611785596851899515765340661291779343868927870016565851148544339759256367226919895301197173115166884009329385776254597513095394561537397879992731152785588946901168869530517758274620965685977152806250865349972033996691075902481879908952758189884539848211629075539901165827913024101639667175831454063525654302608400847150134655826758388595268933809728917168050238760956625907851450389988458030137556106244577102181437027449586309747762741271862376811200736965228734633003034258482743599036495640718106928031412592136516114977783809238165010601769587583951425860573854306794531770706549112871312818628842692590858217929362347684357980139543984392797010699334010975791562228096830239965809760644077893898024170137640331543236042914148133070678035990344521783917628187254591760067770590906027721178793227819444422253365541360897614676399458117238279896725651768421230885922391752454841261770793409703542334757218742137066410755031952795706941713003699665650333181406633517965149581308741339300596106784304725372499865322510768010845954464938666796669853589263683313798014101826938059005341520272261824335636310840446208669692358648647252589295749501789619065770600051606428577086922686970328893890386956580821250529597976991352173736688679069022342959362945482790316316949594838415112008055691483543707399250919286642556372594271937478478825885879534086783118392362031325456337121836673353686227516032005187403593560047079051654876116825530443128126716756590818353941898428365364200470629988242589097394516416700296337344368692465506091553199428022377953475021103557416009270185438668349847135040110257908324269472724888367853643242756974041512454075532694662573640841937640134711639974693441729342157276415034291609116496202010898632031613394943947745152878505685473959014600633139705907794809443465666380295599820858175745922173690039482517358315195349030412550897985436414327213010823405825656427867606894568622261939960419120971829085747652916920990188260489697582904525392814280625657587765783049230757522939398963225523767384389729351899179509288662843308217393067983734450385589754671819329109715407045812588726482268147694699783600117803554927073748333798198170015357300251341677519996907743960822570299054253620149140716448945122337993305203062086180786026919940105309983984554069683865509803653172126473478705819286412419107685946328778967719467855538816188565831826518698335602571302897030633098227785710640944891453329063902376083565984321481051442942032218252101715885749033344349615461639812450103549111591426114285676626427675235813879238525602003520574666786433569068949210644146661055873032682996823931481958892234117583418137516558088886881252358973315979894383367657619165784685996715265610674100385226259700539278646719946331593221017962973341895142162027951517647539628579503098618646233359891084315868939743338254884263235458397122219971620802847020668438104207661821721771849435587794075876168914940929333645921687649582721895661153873831504500022090272649336706339771208318467027017559176415754571609435361591936511347346869995312631269639331155141345182516488321535167871587996134611337737260378881988205612367231495535058153310994832657548924170775600683592470934948772310082248113412901445446742882825292985119380770089636870616097911137454990257178743769594910320557811123708075759012281788121988256619386118586394025615252529235932504319443380718437166471061703753162223542474322873387030806105891509651343082774279364556751507534666861274131171539074565503515541521017541707590053549745229187965767897778207474402710954201076737776570373647042822199899430679508169841137709653821297764640922873227187965917788488293858544872165285743298276658612058044879323352845546334702976775425212136939392990319179703697108805870777302926639277626857605645241048418505991739734228278064089271525980006494940903924954227893269245058596687616477100680641530774684508356326348404644229793064897971674224068924598271139629881431448358327572793986956882483887188449159652083227948720679440695742685290597164113354607953846553732630733874452009797615619057231115248201848633183135906762504668197219184821980202185541093911827378244302976160914831450619525746524263794807551206805321155877909127446767652459075592255255470727820773363346321475759394699565815179616405733908063312853863574855480922047026984861240725391491717985094380870569510579875634011487693147847622428896847102520245018460968834334434391789419508457070301488410290651034632014996269488989700467594848779198256699571507862518355467921021177386152103242416901046725645539842007406632587203028559427942111836655233990320632761132654543289151918208219604077173496588366155497844629708082666102458006924539347279207673906535377774488975108761867317560258231541067117781652429874180554411440233168752880194840455360385271772562356062369778411026364769766967448060500425986846254063964615818087749024947594326783545060285563518550127212932606250038159205859511848331647169818042267236366899064066430183235787525640389826260191736082087091404270428055000581124092179314470154882213044613496267706038504559859093813983346144315912566051120739288423047489510416137257731039314990909675875183999533486976603391529447050224616106334063687654872147066687951803048520235164452833658532161600894118077484936228191309993734416449099299491706862521880566593937087492922469115120677765883385027110199537664198279851621880375657485241415703546640170976901419330901394438889136934389774864797680817708545395541937216339984614930429706820559329199246023370867718671537286811917010729826926502272917514309063197217919081601220875336846684712105470587100765547071655620291391305721245013284216962318787496229350720319254984618013124798366192011263637220711165983390097519826099035139035149771051625834387019906847676114305159930119373912397254386729455067758576617847101373579134678349698430814973364815508848971793554102018142188641224167277767225339795924825697078577855871895911161266806669938938870923951301028094590564652364156888570688621942361846129564417106899475913836356064524384555171762343075457506533604089403284824529100110869815601857165365270377263751184439438554703164171051142557288259231271552723676869673626359161388498979187354329438358247690742524562186645783911275305090413749474489551426573179796086060961394943013411838359481653738290567865698299176758200918775230031012792531870518665640549568637090220008166819137965365690338163325463003970450347677125237191152662153768679883554167721097159157016732848338865534321406210382987720082169999662381566657929516529047859450903303501734486747987550838002855079797124273401473937528642696120484007654795917911285690508120209760373265534134747888500708959997199573777685137511966223993113410157813041161195327575017881951568614712229013600518145772997765816951473938530247175239225233990116065768785508142591620931673334144814595888837409875563516129254487133362443185330871648606342946935174865501011174230739655384022261773227234041701230072672358084609288242873192957689338022460021115812534790256262832628161602375987737189491089227038278144454411860245445562127228953788688292897231253713128439111232405336415570473670738189902897566069659403950933188580351692700704623989368900900661942721314818738836900840218644751302108274104710263230980337147048685592992127115399020274002297033651582385940031802033740360650638947190641698685458912000293845859889835084648140062978202415199020209251072047200687159921816371738035629301996845224263909370127348560472298520184260785958705373985300911563308696359307458311479924175641491006570973708829296629907164772752460344219757964725939337965426372824622510511880359428471200325532240697597420118527904564137282276582373664256346511752905250967458083519131416896241389308193232132176110268852336910559515203206585303681665645130820680583818272752167907169718085559698311739290931863508809488668814338464101922768587026214512552506669244044719040519857588983204243135397421782057042261401400677927814048574814968699266349210677256783259710002112309068340113780150366548741523124283459126944367263099603913750773591327712031222160011411407384228730505481652933703134307937904247556573441258430570900669988975233480895038450933987814765653336559852177608718534162715266570912787723396613891549369037735771087968783918354715838219712420358475753719286680264469586797137338808942333306154860763399062793902718251755472732120037546248051900093855559960339185808706906775523643842624820616958654324072919797505191662078569128192355419682851034148659947897631227609077129389535090732433696082599524435429457259592180049859634394318587685206634774600709121400604619510055694657605499192073358063508884986846195226304398092892775398866595016107752181436749714827102505102476011788965518691449654241869535717687616559761880868033984689628082744418803650144993489173867541743317070404022149451639141964395451292067213883979509123663807525347451215998694289970412380424418120729971146122244398651406224227880085252164065547674948473141334880549045957402202036081748569806961256989141276659480829271725133626838342382540354390286093670334393650192451154397099392575586318059256258540724320879997275608278975301540955730490444504056280750447271778539484947588422132665387183393921321877480524591758468152483603094034208664882539630671794604698724679486729878820687112962384061468844183274299495779662398120071659493520955775585925292282546120663061442084815884568671780340612211190557963618956910039963357668649655140443227559952268024214322829983667019058588995550976676351484433990885158687779066516522317656521445700425496832185501528431865215284043328865372810613093938950963588272635628164770073928362437612677255173971624642804845634756898907271679641621218313234315011517366398589591640814325767374474069542873982402472116126518637781768037948598063965115851796622520203330973094745809236154913210459305181198728744817293054646973898477349066486085656921490775191365578359476419412495976000555841007006547502491619679092767939760698296304167863903375735801122498281709773393029889525077685361895884817810485473125699848661601989256533044919251126083755730309949910349135618969790369615970999712372774971192684324843173225446841555439290674581019435158605733163257287861007369342036708911634527905925060287553837051714779213149624165765248457687354075606197881024489233362345009939613821584852026587211028967011538987261876757250002559259146092083499056985903715028371109906781932016869110244552307857595153432592716341225827658902671918673808395623882603025346360091198900067628106356317546899697563996873398620214299667311011541818634243703448776345612288962933699949361332866875243768755504600633700836666368288227979604197127478008064768074334143042168894050185901637256720177187971822246284844447730278406922504473670476050241484384525784574742267829118767784082139667442513478354521060729257442530342825588204329824040369528919503190745698466210774454098514228381143558375649932038143845411122659392372170856850977866716151743174508736349812864760884434368581209843794008159340903698799272469329910483338784462016940196654178461235042838528656853457469662888713388270903495046585969857403188772988555991949837057037398998472554045169578612125109879313203820263548896182979419028995043239987900289151227373007783436949671062372148333492527130593039250034627029840425277319220851159577021516898718341444932898491394269879384915779479737794348272158522916093250118842372076597963654743504836384386411150042959835632926915999959973956510163577311171663825506153177033844083601531851206740986883175095493254637491314837969377298110579287033063969728355440081745020386060223229525484395786809192750422375202051475271918239922974464515180241928094230991559170036097074870479527424716185041931177752424638606808532702638498263809009630671659168200457355386380972829477802450250207635791157012720277372491216135856740149067505511102625545721362922352802902471203362130432331281965240014166038061574590874835496820688486248120200233939828827114977202846083700723483210842882423926523148255276081671250422326141448761188986424696985705134007802248109074115626669300823811469978534665962297695128865934214953873785934931823785657385618258701295226273361449780859523602846281431831467469159780811972877664439692469835596399493899854011937550264201119719874861294654292162320866271159231069897092617196994958801135449892165653297394543453587661916213972809676536208674154143326671106900045455606878082773787133920490454208081393284611660274718003354963520402945626649563867080929137256843730645420084736327579987666043052541587308859287455921240457678255542827434945740301283274535579564847960075946804507013092439320428598854240902354291709196420718672139576893296523766657425091375886872404752468839748240351423739223920137529966829467180449912521091977556601610005450121910254668998019622988936924507766100068458257240684192473873947358506127562366901977792185519131201147318377312334589717138488038632182931942452507129817587977813457010330367689718755492102485973589640106747768750703573651634745814519130310272276704149356785984554626679528708238193686133400615964593206405883141824297774144884251572031418117695433262930658641948559644620554779681551080600360463837152289667682282154429605937202542459603178777313437514978313587718819636041189153343876915279702432798088877151907459471901093304827085410201247037151930891559334816067106716428270894854699486659141219970742371272357934734086484741561675140426672828257429305688916002284170822166696471447342204378949886409946926932719852002625886798019307309500196375208795301997938675796700098777587645397834305954650458652896827118190277079715064078462629968006934739376525261814563151916466679326548677645997138207866402869798596136493913671718096255450998571354222685006903969254166335325721503340176680286766688380834727207926289914547657431069557727569953359660003320741590641125344307471048059752703923446083722329863306268696140035093921087487329956991707624439102720454432859413858772343122237543239659405592386257951428811224375650926399556552176719169298807888986161522568612668686873975766819065042931478883506962743080974228845083641179862583735263042744293382066033209665138811164346181273405605950549943180172955454962527910662704676547962009827454363562770149435965185658103213008369630584903891799195246197058041939671483215205508016958310446579069342814378430057344292126878289924775952978274872461960466932362661471889243697453965436172800572305979098197072167107477479391714355443531463127688643198576570443064916610809960883868131178338946453541100934544998529067592153921709843684730006095069755322942230993052666651540281679020049255664156034329807220907465733925511130967174224378631780367747556372594167855097731657407708188678432751434325045457512604526185713925227319287032407856040069933867731965896007116687920249588387395571631675895381746017926490755975478886832151743523724140635994335057074925669647871050138708073277613264823536113444003342269992246067577636189497700943660568504605738834439845737115281699915909975833688037727973967402642463957088299762733679023574243253068525463193938513726746016580816743190705825673732381806805961781436873798505347284283160986105408047988931817106150179136941683420008251239013135885012072485664903750974478251715554582725426148702898223343840215555527610754734371265554812230833751241979280716977082882538927624011125683071997247566219798442174580815673815736977420771360599327170580997929461702942015279109034598835283231680604167045385692149981986221310945444251418157784476488821250065114845132396605921798912017723540111988132078483967761310313798525255657732690045903551125762054245115324986629562904374905422081617101989089428914473550446412070007800445011440617612251633237136123472723568436159871524035525721323003064690353285665314713757301031247858145265829943936082275141841993352446764865969685540025685389160286744061817140967843027925455317674611397362405861303545605976877088120579606813563250682928158885458009238845140476061246844951962746904646015841312940997199755278347818059683943155016137083958941737149033053048759940968623924964164965375455726333999670681237830559802809415864872742384015360648013112748451465100643057789661480562789975717639546564355351211039400896744755576665213984058941691757270120049495522154242731135553915727509918979918517567836602677113593676690711371543408307718554867066700509573317348781225354607598616671807298433114364948129322101749470690567538811430692323535586292203784265224302440401541152037279655145259519215757115236972352612212951164213390177403846602490838011097475602723064225005954453341046836606828406883547168770680226136038770922408029916908407604077997999082912614555442687692304294588251981931023125702617035923537989331255959591923065409102098590648047578416894457012645927045992664646887048382581419556550409226023031965683074218900998194103564807430285206990249628286059927366356218530390967023884301056370482206705416833252187959251572240396658627114991197562584611427474523319535835190963815824587753590023067043570158942598622996429501247073630868443006556484590441111710897349441347997175077706668984629411262991681061626160844650220497525520933424153436729149805235562335169701281001120292000604768849244761747307768662110379962713156271006068591793823144272308507885723326604917190148269453216966188238796760676487451139079709090787545122161691675712827185404372493568305518090822925454985707359719852112855913579583102322956953720376985235272496800246399501949311041647170642465402553697362320614125178864729770861646735276243940627735900067770543438893749499511224430384813466954706594167265865363852523854322942460428719669698984368461061572175895658326312965249081506799550700673633374450259580955769506915137069964062743763168903200519250988009896678618762884812868217320864890726853371195326080000971281597448587224653667735134981257581694032670777707402663128192243387744976153915282323720465109758691337104903557237076907012283139878924805607489311432135607268607562829280026849225099882732970819605072341808346812099543929793695324474504985200533892104639622920105064569720024305283194649910683231877745455383638390845720291323191206529220467302291360580591818398733779000551138830053542957168631418419218479943220103293564617086884710247536748403469449627827522366553062205677408388324532960605344980595372385933391151105382306578240047815686696809502054681895299623448355367788120135842875243128781555948680348829469606051562720104544776259333270564022227937047203275208628404610268813652177695482813862725186702560793193903633025416760080229758530024752425141520413578319808222195842946814439139126051086088642638479869901382231687994933203844023023159451525595720308941651165892803850340512819471591057371289694919753470367460181997743025403650161731006824551745385988409086712240467504112875676589545869329495699484660094181603283044464253376642810574073258157945556886844824741262911964696879216197935462145538885774277667303311008355030358970798610425683973781042993442193514041313584096397404403988991447533538227375205730524485932704343682682849584275320706526758572352233031452652415968276977657936326012745830590263159901679001434679484628226120549127053536490112974811203468981523902077981128133055651577717025512367533652700378737009742264788940249335960147196034363837607228161490517679756902247863935136487740479240415403618490489704965053064402985664611519764655197784553543286624095352222325848757083356875937181903286557570256855406898942764098743337070228214335302986374168188769287435247943136212818761171061436435917893852915849435152842147279520480998710399472651990786118160981097477076127190252668541189637163615316230504094747425507327034767276882652308321833256393717627701789398152035198427948558126916538604732958322316646888569376822682530575453249600986762990896658596727792329556685235711859253339670889680077813402944956750800274826072999445119333600295266897518000267094716624162278637375787974838521573668437501148946242240059949731746846208723881684584695406563348940585092935412814290077630403469407266125822435616562126938991127273789483910028384110821582079716885140529962835853726150475253153421733250712105268364464755968024753947903660272084405475633057255932872660497761144184779878885497108522173092240328167958199598116484866249809935517917644863336424143233616468387674796600778906251193939375544462248542124433583566080849319294371428036133035326012149333879001094103993108966270641377027370661121956846973882075866290957107664314717492018373153170873812997917848405416149097466238172506068209386490809718365707776288526508976672209938446208572721999983140920883089400542739293368244197883502905008680009699364685948207006036059399363420788635078062964176930323463514194347838979593847037155166190477503303648494524384190775628280381110773973149428017887244478629010153546913615801183767561143800351199921625476310134397790780852250712055091067705400396036565726121235160718669276122538064857494287099834032575617203035741075922454643106611587615756976682388584461072714849928735036546666652591372165193179268834600991030397193663661084353906961953514391873274518681101526195408290920990703810340278281227954468437162364936524351384720292504802530331762045024790241690643180371260595676036643983716476893535453150704358405610264713461666240744316998882354782487520265415108794528327988086323960655077541761255002430606437947840642892674404097580329035900636243320391327178731680309814567446787788608821080720285996673015930037543881549198690189533680782208359360480171107096528838445839664832772588419581356462045508513510832449783679086635787606147178641353550280158171432726959532004726167337213331099693226205278267889791467209014668880110570483751132193779292172279679535824717542759537202781657957597736083800408152348937488643446731101102337064770141272797999344988022469644308281037628299137478037775087120814744220641538431177776325126262840767069154016910118133882908403595089890547093527268659329648919630828933056586040126552030203561414544081235967054462077633878132201550755021725379663017333186283788823087242329369731617051242696388776219384042421185702505063716864454340149518559478344654657701947854617795101008199971315619776941326406131836174984612876527727104380952158732223849417782892807362680905494096256610999290984705581169974165014671937140742064989381107137058702893482929348116206901689993522421781855000658634127132513464511810358409368314043122016880106659542711663192427236609048359870013651502541272949368668259969691155447507280726619965082270792045243391978423297005233028132701304778673064650590973112664164330098722009570403810208365566824475541396978159635815563376911965119775480616848261697788281598939878955102381076065114396245356691799753295376074083040658276766340788034492538582423667708790090250056066899449502248255343299429274500847472516965445652431822108483202730898259263363491066190070624313775152002164629795593720755622864543398413276572912984477389946188425319821622978823748278178525993612509672669281973474117551304651929005607853305493982250615393836797431894286850047564749115597885006430197892531775168664288595477452550148794346003115886294222390174770820148222106654348865151369614692276623435144105094464815063755773149620119049020553196965688081532392376687431262243297295948191513889993924244278865860765372714506489907901470407199433428614980987898376476130400635323939915904055320856706373655574881140462870267907368647008487257030043437368072517976664771300461515889606196495850120710601361866230240765207799557869797664961503626141746009744583571673574053659862393771318907867097533342816111886792266631017085805632253241878320074640490836858152206260317607181301963597243368896477067700589906877564409744123671484961450726896365934755477638489891739332723774746085788207772119854002933400278493173013156252597320628660023972801857142691444981689244073039961640445745728864016395338745918927321601691935619156939707024622493497307429898157504343866414939114762054789611468553962421458920013619061518092701210293519111971288333355898552717270963609954903917717135256288504211047924316832186052078103066240214173385172099764626467884695581546600804362740736360687152221536857138826088876826941587415090705933829255765040182226154561771688592767230943355377038880176380398679041415092304359927795966138588668087458811378074560263083058674118545614763109253760351010842786799850636693647468426297867126574346593635054439728889113880435120972764446407984160638798759791038097713731514928653809076488260009110204922775309946566106735460739639830403112651019862449703736760927667826428456226517653657419916496470901915689511216315636215474801707347197310034062713511088821828908297025244775225464644044247806046312726702520453988604271020204061080545104240123656263388402644572598579407621483892597925511128029959650180772528152078649750295814984237768608118359859401545820667315679998758853629202249035997959413643076454080514689789237742028731852569076279498666105231742651721243073959190239639252460334703713904964141264331020371928720922521973786597730505593266945189115056174285207212388479637218183182613302760914866629032363498574160376963703193264418104106962490678255366039244242782712230066523562404293799936169343491129117456675633668436816594813000615201548878778953983223310394845880298868109957815780486034816665276672878002943294925488773134973330292327168586313700538880616527477065622856362903561852316289058725848543589499015543651122091413934905678012385325166278013871095435676758273006781767910692817684846120521279222581890527969786051269145986879585429386657432544116724181826975494347410641120124253854019989632466738830091664155654843337861974195566292871155997714254553314199018050841762406344254135284570123235502467952607198727035848973219524710248448683491207797851445162742790627127897991403064763326722035823857485753469333395877478793452321160887886801555002626516564212297937565229897203248832068958576670430367882190073494287314334328063448446475563471572100587109899876106612363371009833017682755576034653745290213133982502926252453121842913628663102458033680585454645021001919625191015422912989137058559138846050987397889533082002742477174601732375978499493218745948736543695698271277186466384544100775010774023705122735942301006437633305067512933217138112224591526222370296525257201885110170760194298087692063573213760288813474607672308814162460058069520103644007020722601185722512389257105053088172816859173391031384334625046047379674080273510984990147207863342142097344868891286439799423907639566093363785146528569614880676658850539657024930524116453582993053720246476093539897686176526529451688812954336559789800997610343435799006319078176374353016213933909838913770369645432695468558729423949471739824404457602859889972621690257031014236673765058689589752586095013986204905828988537498586156837967087793997449764428173418377452876645303545498184873787152926214325238083601459351978984858069799920477941185759158497801127342896852687855732059199649312593000185133785656943253481648490818430825298284626492613721880375865779954261391307435679137710917041970553560525631036549651972941131103778195629076447591405729657071899268624047599436095746907267732770974122580304167502902290819141414183903069361888858410947017443521197252991885054078667116208540532790675602247327617716655633269207798307562415127248290448060468258506978825150708870781641893566061870951598123893314233855972613353977985580070297051928752113596513815462712673974784153857967126998037691317603987529876449736387386730838389329975993528045056254236722673543801469001927607178303179418054734598270159023037100149344982103329437212717728754831607950235311931440172125776499730352985014443642700128734053154968484363061001548072863212335946388724867136902876678830640849611308417312795153486452521141116003052704661922167368478263386573586924532232535857782726275818763140701056141015476655108739143638732892236341140223788524923276904465728545144187711197506987931309748099771090703930913106875348549426931499419767531028416427144824408986204936539153352645501681822035595191635621331301745797147149234009531681766636807485247465165255318803186339449203898438579065960794246720500075934792016642916125188878103743132782292336607898916217033408112606310085423881678639695854822123569549092705268388259017830415294598055890402809672825315312410722985164300520849456442204153530897422345635779811306532690187917209918081030851975801803042908696305542549465528106792081483524153750701708865321726448891073398188946354965068777743035041149101832103112848506132095377954776187402919436588578829828685798536788218530398481551388522479895566044814342003851333696739754761629999331839274630684020062324726183033009136819576418990547085306964902645668985690679062964259872553368438543757545491637549634606793172104523713926436019229370204603360444633297628629921436375583985202398475268228152086022548695430742826671545401202655751462164761979704666923896539088389611283788165469374638938279674129231592234187566693280343055347442958966976490482539328038618533794606034137816528231689153555159056587228624265409926208105262701128080468102150973451405679643184936256549134739799960844078640849509206380150262619652438671323560903874394826669256034150224092030529752636351435592725204611006048377947557603160113279523453270976728912943765029339072047038888768587399468381286202393265368482353706876873755281200645440309981582983185215041212382009691047180368753038104061888641438102457266986323417315617429512854817599606390290746920090587668801744667058167389912111592436628945941678762739412887260237311772694167600078892966268047812214262483360016482314383703774368513259898976270449834113375820320204666072028402196595326132414088844141453916626464811341914263607253853040843207783738649522385177762405796588102228986590041587071068461801315548240728670789528828128346357880932816791311451894464517055339864153084777617489680721078294192930977546438109721833032439356471868844460356610126198437001684043523369730471767145766864041852942937328596633007860921989230740698348993406873625265827634607393347568691178326343166029296841721911889434672572965433166394398677979231070487603327799043687862203896212850397392405528919849172252381660806510613263151953186221446293624897775222942497988869783326666468435233564774717406469223634791283688121207645641128591273459687391047640577069873122370580197780781610709036931483777842107929646731977588646288903303369816749997790642491532282218039711792864685695911590925844695505237126022979279656359819453075610887675333621662957136247820587355635975045534570468356565031557818032173080098637544997899942436528248865551309550614841578459351817150685478362609606500566788448589329199901927427718929681759663456819997933697991325114493242527463759890557870311024739732589334002644811644600042801021960725720018639186679047095987855454581070064238905349467511526515018268392620398117465739975431369995666200981697960181800493158189886669035158649969796151595953464338378746324632018993406229774674316434826869933753664835281648839219894101721668385756256018287427245439575893744631980328226892120154765883447638122256851086879385052204833670044993872787092699635930683847955610375252099513612886291834921749824603590813822414244569329744135713910120095368614823254131240913915085037393582762222254111144191885473364258692848472902021056866382595342664406695641504740274052387063175871407445217346937359224724879185057757188738485172039414574502378978814090676406341706663037800191826847909949590286713452126900440734386160113111556254082866906893623387112758046786278902956974286189424823222189172484794123738739598978048049683288719229692063973517969577707309039801072182229779339925379577204187178571101574314508603850744395784861166471849570097644579747050375772250368602485187150508753495906162349918288836935679438385791136609508947835393229041125161511137653293340043515304146839699298075604286116724198006916376889685908087900598386753887185239624808985371437181049531963408132656626317705677741125541079592091964766760876848099366121019530481462263575355354831089996939045498533435612455308712341781309458582494791403287557179210393551002557609292810944283448506331296133109598340504998227064601593699729307082365706501984691130395755333163388891650073015664665703104194341200329850087330478754367862051093513321249573243973393938363780007876434722120787493619627973522557551321118682749604497619232253279278907137492067812571135838585706477767271607710352116168477943290032264530183847555241718825498768100674550909120746685333389094305612326689989878507162433314324609017195521652946237275146875890669628052714404300822864354391145347807425820636738269795304094462602112870070835496969285563058509126026554652954699841853817487840109865566195626415960810972763897723510440303746772345147490894982224589273984511694726139111602688157159024662381362003249586197793222440097492420045807468430404741232540529253113097576563763609274279806540448652622955055968286723630211122657155596387845697613967019217760976366062520454058649227579063335220613066297674579304909597940769999370031343503366237898617313334906838256688962997335971710149134808034945086008725696503888892764713453806785270275984475038521144028375132780604656423275333959637440892776765844063928439196611418625769456405333177300977406818944630118309139282866523032541184702013986712129579104957544856354112350428159670015838432349971383716516746715777414499457348164353478470167578500447111255246987490969143520261354281533446007531001775997570911533854195978622299998573086317429495046913845311623751332636679618533591379412013637840963771760490391764462544139445071924640681411419350715821745434365835802289159121752220548509911043239100006152955572928350346205055354725814245521359969167401644277809322801943956492974595698453539697013436031111906226850972740150805228696624910357730799392710267656913020604677821254641991459708899559500009596111221801296905524371809998623035765416490143893693340314012477020793099710186628202469648939535895406073339884996243858370757436815941994183951857492998889039455546637085263237375437690150585447023664443078984081601190671419415856607799915459064625389593978697943818908712807109524087768663459339374973219161484446010827672845587847428383798840647233305913456645207516413429380279559128247641444362896449165182148752861183603085650943713297919546437413746383165318809450141513753750640039945437031043985900784532455886529292112109424730731170834970440828208804329575439148859361002305574604710505233867928789684280256346776534130943618475812510452416389389018396579141874304656493205389826965949816382720856430788246405328783108338789997844793890547748188630620484146966913055697424602229507672088341360382430788079623292573699713055827640299100290698269014967017023185283828166331385840693311673198274114991754231619799576873317751302866169412494658575069186009304766936652673326888172156875080766675715256217326337579067931911681065386748276612398774097155394823656769800315097041374938900580293294960183186088641765817874417254796376285402235284450939480718775693106992588553109269664721870350623452732399649655147561880567472056631112422803757509073604830794380440882146920813543276841560398564588267449955614361488564312446728604230910556569590859566738880903002906230933401429858532127753927555320762101335740301793734826554213268700375929913254196218351122794814163049031330801695701561187618739160002862796627432676071104140291395280305873643884329353341661943259008441269369405352456014384263441955599162716683015619012648682166507026213360506175218352870394669906172753113783592105855741182420753470041686672196226358297144159886801209863575945912333118671839397850116489106105569774701749498118336393859211780060143981448597816946739306616966057373212799895163253711440876951451705391092976119969168166730299157505534073355199028928753264797762939770335775207322558224571038205948496333486514946765577075153676956400292942246752352175313341586154268664226843667888469312288346595721205000212946802731378963971857134339028211028555654702994384055184449909165200389922158446815156962176087244002844182025162866012494682377094569053253494409569362154722263042371218220740765209260499368877974210733729303073958736370478646938117807059129454766664331748286203213571224729469915095522897197300906956928136541943628577270710992682474365859031694224720289061254263561113890179740821983526922970753076543620930485333400882943216277773549121461149500799897074571928681607668020694798579039574488580383112034044243614246292926015524869863194420915856808696570810008056769613602699692546075281518851191425355874085127460677345300408901605936851708389601847876758254960605881883581732007113811875192433723072065667478854506459118005090589173063792773124762407274290668863670077448114429773479205188740798981150521423255976802065983145690722880022629339830008567623354913029051265525044022142848029589283146818008481830891426832254475478320787438048222964258644163903620397402187122954301451001000580843608394327032408626643298197617489134109195672698189877596101584597624061370418398065321952929776464715994939273656776761520710413516564517482160164952623374462338939538730170193864970130015621252686738024817284836410639411519225634998577457490331327717888794419765060544983131705708587300664146591398906688749973072585928144753323667900109120816563158148536588119598927785687927405987093144490864713112602913071517000765162770852444959444307795291072007333935910066431474887233949263600370064666171820795823213027622291944163852020493904800936793739370438492868880502227219314605122322727200385470106374654338595816451653957588135185325113193275053125769469314201304067998647691678118312272379832337759375949170889143887422506816154604179907943504815297357555806899249865905150148154138710235659192209330656579986233047051262636666259820795789895763094450817347716434080211181396114842920106461055917958909536856139239555273010066283348623189920961390152042722678934500101842309305685648825744690750865052948394647614568990607704250942300549698975875559166742533286643730994136784763037340450433681419616414774888532966852963800790992171493980458705218590279455830503847978533721263008856929703273699787097946665878870542659165286168999279783934596335771598512009365486752922005481754650123158671444228115052929182852480845085907528866374039569352830475808286649635804837636269015407077269820776402896738042965213679570665698520994383110634970399622034764822220239526548506144900718978213548669045959611535463388175500516605655434633092713974586432380364079908172970374130451744346639882300395334194354028757180689397752515278722082097215515296899276674386618924332712924461700719680632479969492605751401528346638693841741612342750354333052422361841753629747277881537578105820396248711217819370927212648357120621935314770958708607840852817580215755703141258506355324551523669889808395867609137567040219761526234791810495512174548554948959097331281432068850019095361458208636568808860398732166740447738533071584431991524085625095598890462725452077277009204817276524075459720011693460175295682716340679165838216432933805343190016113291970758817125383785374381788125835009334266286914517087809173154738811697606270103379744648087093573511296155791592595250416381436739962383303034997724372919823294960242650886640598526090142701923963455647914710726260837863780354609921821031424363925214500097717231471716100602729926554958748936511973195672008612552456357423772162477420296290746340479371359283591725910144053506138198873226903893321805433729744560314297897778717170376536632028418323133208738028641797292066762932140817313580466986344860727098760606068245578236501943780474977269313451045594619574257842301880017880043205948647544532668211249030507404427822107712352923732360578239446189549609248715037742113758497681927814221974828381200518169206582961284500316382248682755859553587133550599208380538982935269118526350560818468404219131117073567826479276489283497889859976158467279010255774151548526914474807392663395279701056239112640450791274860678596274568234815486510449942268864605912982771678928542899866758753919081962023137647574840046369528089147190044192489456182731545812531920068818684710146298264080656816051773136954136037283022813571485568405049301949031005094485786176262043357640635200306661572291910573843509701096527755095215368513031562884238890636475147072242967927135596869631403190989002505734554173555893282317891770165031090328362976351618317934479705483423784613752142487669601614164619503162598104242880124117210778950956091279134376517714078607782486879886710375128366899892147067304265755005229047396246864177508109085788652799885889373205546017080904620272240302869692427431636636458575372136103671205506400090778933590676260341059324540931399609906227969170846703321966620964268185847454494977129672460628833860790888316355783872117928238382000162859343951745456706152258432164646047389838814593064463857809302926771316403584517717106648778060166738181322551250360944215279508786892248745462992066609087476164982073688331461612615347333175669068209114717975510242189418571707271257181165623143085408501814293159941847619455059955418908769626373649720243091205473212298780198668928902048485609175999147278456255346551304768209274749677264694978166447716356132574678116192509015778060326911907745177668994310937074975873043803890649350144695215525225830687162340587897384568945259763690306999788499488191168056613718943451269604792362103946623920104380539276189604403217709429475640732294977123808011429413861192783863540245188266813103446625301669564275307985706149411285375468102143432591427625423744073642867805679490860747300656064004872227188413884243755035576245429482649887507343569688540810381944468906113897425560063173669456932006888791761955327157527534251879223147800348526313093414257008371439963898507538949142491812239014943113685547997703476538821934197116762103736076980427712584941200311558971399063405467066224378558849976619322346443898188834238242145427515494469553247200800388285774077134680749722999155813767549184610401043894890401471556585973294039031999853532995751314297729020867134811390053844492410140125189279794868633124360157673697806112759238921292346811265280635784202418026763829532253470920462690018463761113863034405465123424753748556047680816006711321373642666008333108327064657274669299427760100931175408185638223328972498651304850048784472570820408086143782695270569336269786905117871497848665951153154133876360581663475486544614949856966366390622807530206085148938319795393235707787029093571933339641550880025673227836578931768106634104020472934087471289435051284574167256881277739085243077838719985945074912806324313217774023103494821383241226443795575132021279538397917040764107258092451806979072964918698943975656761099025529991825357609801785610928434274806744151432850071426728668754111312562531241174301600370194456700902165438384874436732792384265262091123627006895701821159725693540493311087953605042777329103777220662386678726475557432206731936106189470275452268630727196646741022820556222370041787747462647526572371887266606674248907625782744926262564209715454740466974171965668415403563929168216305469040914698476816503387352758171218170186247523340915305720256679225336635406258642338689059976102063947116240115925276022503323190141886552021760483750875625462549805363044440469359290506078064751890836320358305676002359798881006337109743157211683344574724704720954679462473240865063615866970615511524229991605176933428564459444954085459226183251344625614233053565112801156403842357686060452810398865202788957150108051410568465803181199956760597239671366585340993235564423124789160868117868156545435821350541519468020672424130752442440398875301562082446170587337131223016022863260318527414633092774008146657854948105158918652360849950286074049379222236871621970609512454611421642446859793675783685261127502517660426900991814946393359651822298128107806388336355450602503868343656573252536705626985766806888862334233872172461020486191411101660513462336660964482547898905109934339149533459472707422643096629968479688724022166681027278763561809815369778200280457139540991991936712448948170577187978351953007020096780682262794126609187101567322960902824796420137396321785127151959103894261993868268651169057825519737953916768835017056491999270827192619820931541674785338058914204257217058227805192513957333680405118985762969251667241923411701106476481223632745119977874256212952113210294055895315988677585818411868928696655725180852793281046319143922048317104480382414198592106218085684569340987267212988019473101507156048841461703211170070300886685198023020812697577980434667067972890416118152014660485529860462280581754672901467551514175901833389043335538845309290590303985905825016179717359912394978234664328130999989041593153741630947252797970232718219117465426350631678039407232211005456719718574499874972296049827887324112589554613211039951218341811454533288673523708388953696593805362935979346849285743247370713511633871450551141668818018884067334310244799356377181254882778344542883869574993747429636208229680052457700533846409348483649529617971999499292636172683326733833801602348383834990635188121339143361549160958406296549797240832655005940445919487053063687340916786250964163672126382734762110273928378721011973277857327059890684285591018981269764696620512356791866576106354355394882543058207514564994478556556187623065724838481167001839550610167440059452943741065343274053860202120171428213925570848402529924550818712798373434930241210295182940417007429748970350135860550226133602893976788852716864823552039688442748437096083688885954175647731977114073819749991763868931598647494546067915225495033001328192182182586140734049033478071144768831624018888560315200818838233878890629285287448096667673721132234893987093199476903302621011355166151002427878215713817475447289596728171809820160992964226546946733788093983901473437365703598880831599933608856898213237784994921188055515863042313152003427251317055475225977019294238115125477944855359997494298472430126388666270809301527670357574764952191747271391317450437307933593392806054550536394343840337866455510063507698292095387824287603148019317359382357056776596846594477078976259480259867356660274169304592491469902278865829103536329572603415384965041517754640882373356392804389194922850147937389873844618409062356521029558529692639731987244926926901623119467130676842183889146206056076841889779415221382784473601867926774128823549834919914519938176362787509076719130069743721661022740083206789359577129377526505106874514329641974305123895760020359710107036108999997727086209267433694492340969489753401961814490649175433740474386923130838726523312916870154888272501430684802336299945200489843038303714096922128298110203956322948868815536548695563960165712040353068518629653722654797388445390180946651158322393493020759291628934660147101400462790052912888338709266993771663403684869610039062009163496397081209270444901452974278046451956308050874596195980585488334871116593434562742207290343940854253917168443649186966713806205047043633836678236280155996445151676203139898073729842812099468828894598272318006858469519304002353201892286760822369885354065469202936461711596551302251449562346927896150113604189347296011708652024993598741463855754349703498383958285251248249402246423310799507912805000820531428500233715195016546551364328760762695366374568690788795153853205370949436789365001577302298678449439931179808791383547982378677583994384869053395313366206524037737850465048805304554224265709796624056623325300608316361330880570853411447932143963469424660777534499516159188497725427695675285010329850481079055724419601848170089669863513099174725854757344676418071938289898975879932990150241659590954327138964418863435650004762427960246926127849946780656103588188219082518050069174639252419889285409564295314532567027820244079311963694638720518737282875573747730514380213207107547219051684496730978182035540874368018407795077759233156379230302321121399466089465066273308599442068123263525277044500170061215923397945334201215305287859192351159162196660379924341171059577866714945715713475153881618359849645171672452922646862946427391031519417744928601714582000772295101671896433113824043911123480480525738379966727871337674853515677354571920220859682557281835497610828999854159658724368814342100559731036746577866448879392433093049626577630173974505387843810056231547311656635961398953064781109991943349654667439307437368463463361061784618131235209395873803806560125515211026206501763504144225822749283145567761554598200107706141972553624335171841505636571975211523731135762181928413498677997257642205540742841129217647520912038812320834190377814240358686489486242867281803559653782562352812030150262068469924077672480456145921457981968782432256821044685602578112980361236754636008239296372752620542844142429592946840258887378967362791488618890030731022692991176914572944604284506111477527643859183877892080058108368396015702153423912715956264328777476522970532001541544388027358606839537595614302301176649225784953948456240981861802945885398903316778059384770074340460693779609530882714165184402950049443541273493259464651679537784705870399087257861880673024998681327862924288615039469578488539652358983161467142792145285250403108651991817492565408541132691515746068895668993998091793152930617907678057452688748248584814616231697222487857162430722493899901936079814081706129407943333689006589165964476607262986820352546114232188883404168688246704138746032709992344079410702671569230250370321476453438445179309260693930514667024424466905293276732584139088159300860778281007923089993119703640135485662283615710849669977229043984545651724633150566337113481424403670377577648184567239948864546614423471831892234039751796247817850747623426795370191667847531531747838396025403918811557689831170237656187881586319835724824066032766868411231401476100175352765820763287889586757801773775541888878017507559470093701177445036914005540224821489818752036313871994481565613587254573706054016646786562636626118899901051693425991025069743418432758643416894708544989496780959275243903037078667620208087941235794740858882426988169796190699848391940061945908722095387963904949730884211722596634261875308289612733002268083531087499156087929947173338187079985503800732219779904831878829566708543230071845534533779686181334573055710394613251749599638667248567411933941708916683068919547227762468765777649971639774084983738556237848797850867809202560960698751143664059784954309887520524766428574730360889447328381407040207853465885668382830143226286842028213432588349280775565302159559170140760069500303921264027768663990274582057670132306486925752749121391179822484516118461326188562769102310825533006404234153750033639798518358820341196586449748721361907632733529409626043906524066353137877379134693288206949368873204339796470874767058711653606658007360840872805223947589176813792290054737970248000856442954696341862637364579048272556738477290579372753773532167276813990299031746414455368297256738529899250220815266484206340301846231986093624661340190348715375129937335928339237472825470420718546553824672175971089187905970710563528489452860956745690969276201400735616388627169241607617712649276568977712132853722741779022535645607144231786369530341166364510286898848292827208256846005196346689359085956886181306606141267676325461449836119754717449090836676842752694069569719177818017309685096573574829761450820107068936314726359072313492070339690339042012139034764816136234120940978321718206609258066375892144544723181716500192843256709363185414492710223555259920207466232774340340100098045966880237398128187051340471744628925460561247023137705338951243201944739816476408938351008773190663997599039903478701337630787427241721123842622670118664585875432189016081951242163722407811432959752903485335458186357891694370185039420725361442371367072963861169568392759070766769878765397370008700674277527722131831611574744578964652318572753390220536334584135245164559237256447037539590580546063675234509263480915708300124090386969526274373699167187646516307027971463351534176044580599819402010247224936044299223910839597199258490008150515080401206194457965969254198765000551925699518495377707474131823404983267563444234759304527027298621929759241726559438773886452719122601190124050120529585476506928267231762732782334505720169782237984326969853651896712619099279434058576321230559747806406540564908912712814143845471158928198393433947106607130567871058559261423253140043265368547870521462786349751540356964338170201337130917340735184858646751431173068734255659339895360209955099676342201585009070331048196973543480698718395854685025127774268809406537182480390166064489006718979176874200232453718830398145039813389809208145944739872849774609774952089424935285798416752859442250765840256235141287697714943751350931819529163363004700324245285942528209534260288003907790914046905947274115909262190299813067397595026474563966783870257689045754715911403499392866679085479397141322849660941732932611215101787330382786391070887764369213719840825969381343339582869101514969956228608223104801020842273460755512942574678537231657963719093560271167281136571229273425034378046977362170290597942623074485695133140018734398656026778764316139345328112764563911959072948044372868872264845334845474913595104545564283265026594235398875509727925674720487490524081514025093569511207534973018920940939069907056628491407678871600546533976681547088381795298277424914755898492844442914750497791767595505157442058414929435774578724798177550927574606960231856795879769162740863740766846568440228089560239116077003915131257574780602638561253524493546846662781548127363686119679308148638124556862550508640834963133988143801473280108046354114237466600642342514219260725283660723196949965636180496252026163739740260024094709752639655339336382231859523717148407933729924209383980434576763789003038221642257318975992517115864296060345903175244936280826513808094895726545856340311564136700221771913947559736336485150639329925499781679942917283059115424733819115327551573369725470590265360899853424290683415938439606138052320061099251523181751331493261329714210797085196066374008157984181547554852937131448148634866734696880263490915559179128617169650620265586647512762753487821151099389874344687136496699187742965565417960990775237031587211336759270111507482025620536451904185896097702041819898171189824837773993223415106236642733473586512897401783442234306240687200832006501663887097157259989582899669401521171819639124745228062478210776486326742826841527743303598368620565695673402734264194263369285443204834388211103983053894293473098412764296673621572707878497508724070060462481993206415873885144396398163167966862992074334896154013832275594233314962431331168601516075871081052405985387156489464538879112657550291514855222964652512245375119223622690716647737320465160228104993026163945729835147347345926735793194673002966671989309183354774723766160825802778442299910624718161192988359396383598083790064687183280977152538414812110794889650729478417290875102106611123265030240796295234883676629132048740208887198159505135754636624433296805035378263881658056341528119082962603170929642616474716180226874857973750504606984162341298480190060791267156381375663550061289900768252278053980446301130781655957396037763007694943902812113505116679041764457907466100364450661118125007958908811769582227823399838201012200051009091799290935427554840270606746594500091581095963964213489688342999353622912792604450228034072051368920929315510654058195355848893086121527917517498615111856535142623462604919836895080259774618179368200370420231727728116851885089366193079173391317409658799198238822406044705247249356771302267989364845768632658524362170915077652915380227243263285803127281585308546979080380065001799274299879632823086035302573975293509481635222366360817034407116466808544950769659067730213771598016028106525980000948255029912055143691297660043964135899721350123255101341057935314287218286100080917477824347891206123899237661639014834842763306480943118320522974723528455721374126946165331182295206995366202272340619940595185240309652076846497360949495577498970169561348292176299463775106444597145936074964197113849600552185399187552912646097730820657080218517001414957462939340827380110535006264080822660639836541906136446421152719270272085951401485282866410138817732571378698252993614883128604810754299570068288261792308801715754218062065375944406896681749007293604649024178937851149487120314215791192556704953688988439733111382051932905621052323631838470329941050079335821078425266119068556236921988280555556122188909847280801828536027355346763840823571256354678553914009972578164292578853100696012146169320769624755188197524702284455733430527634481843447127348834588254353190058311300872787403418562502164327854473138302950698066435930057779234902818116425933082134230033637261530285066871117921550841540031535049160748111167974776640407974655474072657960943790113096545445441855705221587817160382346002765196062339480905584629963006725782834662891962045667903407085882078138877220215400366236615875804906025744656028475949257389248242636410792034850820955355673674069220929326000699585077867730148236807944546366048740783538338743542906192044532455608034483541378372039660382300512308720165904858220926745452225805459351290560288554318836710791504090329939951103102593362197187894192750523993488317868231591717066716969787695794028924494420280877680930970323386270125970566109433816339537476998563575303401739927974527533366107617422736917383535022901098429955679429013079151987311156929423743961063675183258821681151981673671415207380766831447047163882379576643449565911743305573594179069828086145762282229497454669122878169508905370149754071657495243105951047693333147069985773375053093909040227225209554368320026377572314136597282798781455260593879225200215228126572211619734425903519321454933467286261272073537422108769274255928677699802275778004014357033997010090602306976654438068729785037865662666531693292093000671938507010450497679611732324397688426500911180888283177997240753183007344270313766061687551947162541605239728289376101920675669299231976561733772660320317658500583716779876608155740687420838199162949256379874642369401279313092581028379417374132113966895884473464257280405726382431958603523384698109522364276393319496632527457983867356580524174584238191908206701743095624189542195700534616796540650648677060992886254604437836166051340593653566109896577989073594450411418730385561202175202037390858084702726863635951893883382299225106911901717301743270883402839764846170560584171695896092609161762910343473873908817908883381310582982318546240444307996555171103614876719885987550057387078102474392135383443071652390215182492582146931319066348508234948118320007724636125739623338792894496674425031617928537483960315481791291310666351796616876653964270864324640691049326243967286105131303801953294843667071740873086285546303336794722303633862665677696123118467935403015586466738202743388179843076152479633794871458044299964560904418349961318673750883733616645057989584350131722515543393765199553821992223450073615700915035950395417444059725515425010444522715668166479969859268520115312638597864110860675908894829976228104365422434063730228820727270506382338768636106524849606802125516589686150965815093728135677848215888011547424071424202483605032637473792969668592281470480506591490019476984683986612646717424127266747058247321464089304570221735439592596106689202943676918534325114670364324257414522618748923762870160107923133647234762529385725024557600940898003050752770949706438645682294835966746781492035078703915346849705377730567744918839545378052105235266410012319805505963509894969004098947088872377646889084451248830992776725764703123898268794222410454066136579100251288278726728213251055846303987013648275823288803125983072241775321792882753853427539999970988917021433412342232494630367679626726758007030415640637236112213123822497422232702981267623715751442934543413588254003186847713028807247797973080577252297556120608372263516704887960415422693900496895318595932189081380561773528640140549104861302612238624988950725619895851366547825594915105961885818610567847022669402298260139031573200358661575518778913723465738126718050409697610947942041317360225293391869869273099519123418716758895756453963045269658789966502856421078231504819890985496020267384640280177305225699163775656496981644344194110021017219095227836262299983189490012647600666482002141377198024056456633105840280099865666237552142032980144220451373490052201262882027103618276184167217646972726361277065291786757903784856655945917692104402487316493571426835385036554055971984779347616866841893914278917571166636317814906109075102264154147154796402178594776300210466040915601278720521678937755194090375053108708341312111793624825969835203995314170436397155538125131650258460450305381896527309174141851090090984993521723556000712252739407691386099344753811940857452852328788541533917555775036326395581578291922164260902969310270544038036139772105367525763703690001926198365043481238162436658120783369816733999544726522033780629316206177845723009788782778093885997968698553223188326328373002931016818468496798581843366495544346324261571896964377193593362190233329444363018520079750975229695234599784119105846523645070028110414925023586664194015058287814410781305323531307939474077934287058995425246858085875483510648418477439277974609629608168963558288213635637705439801512524685642105666809534241220579457185580895207096625095084441765820614224223263864810680458213149818395139066037721394852049767742310143794819822968394873122732311930714875234641082012698544510514860012218425754208082980967505914865625260311223323899637613410890826451672571028955848261242892238490277283665890019341001987077088025973021132662637731091229261242802836186510987025053125346140244490795844506860058701461424096327507004102064556394398642063871009057192366895950279363595782051899292509394876008971370268250571716583569005619927127611691807299807572742885334490565755084203453729323231185900776224485122890178084551834015005876022684703386064886983152112882057885538602375630557646568834363025033666326640535025023545557372981176474218757680901401757940005084207965664775354000578537940892523226046348206323176843274398185610411478424162873017861838332718676699635113694670996544450906793704406008880896158616785400785110354135693902932807707597858595530581513376989795690969272744415437591365132238303263567620524187062779659801187055601198531687277088110580870036340327510637190789469913991706963595944748500152989451058616913140312320484718512695793097647184955796741465897995663613494717600193422419166405651870478478639474732604481012252414809725494722979812736662656136567239335968883704661218224924997764337372743404612062825451193549163272456783114788815871019265632208552313185495198432250400805591640172578640311912332010570191327244188853348505872627913135869066352173212951072295134390227964323023438264915626769769919110232624727671517456905195950634997946394892158186469654787830943698256999215732667445521860336086967271049540805072323468252077815343743170319586454359587225590501481166310676596940272729763158076520802518696011646677901147947251071065813319333736822061039279763886840401815953702056425449981627872907075631911753717133132915666521762896663536350519759273896350781536035759774906826242160547853081979368794960313855440800141844921105524696385884915465660137632241794451872249730978961036375037339976568862998885850165436530657424339048376866358441415480485378932201225114989684459626844227879255627686784351002223380813664617188762193029896418834393789619699362967996429963188535363256313121454989601210828747846856931488506176588131188263426879404571977579995578407069562438854657912660285488748816442929623090409806029925568464337562022858037769005141925587750362363503692546586014280649100241596573313562922768959865369297434983227981148020069544342250393678687536268532971508405651820733761236768174325749192311223475423544711464745424732191255805251845216973634638881162972633586593587851790193825138722553194655157356971926870365502722072269430276589780993153033517452747854948650938640203022270289606415977861264893999171677132027629973087946919698504212673832643638108745382637576219248720007785781258921291768418621969356917555573438594385475855491584630874066430217072912859425908745418533315299536195450098658436716482164989651815985809162979402356417438407760956193196401357613067533378507523982044432651773238772411525917897005722996894826709534925270793812567476041072476089676594765659934306481513360215501576874083604560153343610370298688989241995452077770090736623947066765750442625792767819197704468897761596018538435084728243427123946267454573677903853671589479874379904713985082535736203864268454521080161553184978901893105386776434459780219466445372205519328224933562975323580742636254361869475775446906945978697218696510683734220372873672365031232873186188047687042713758736230859503206194003841355258495642151633796092152806625833185974663907429927383130518080731143525514261315806559018264742482541502084243150586785245915448481525069927334867690699042824725517983821632960265377084123175873912792151159383028008760757558562808452178496498894171753839878445568744587031570896456352176727464769799868965977552803404633974873203158567824875397860782425341484630145857294825093538077593880127616501131077592964246336875419418364635847478645451720651702084245478007902290069369516924450259632598079508118307452360468572753127048302574556966352612159376294437878603745965622151172474639820507516631998612017561167327646330104007356979848899212932331880336248600779678301024220342320604420533257361597974619293427140795548441849662208913863410031882056126760472099099134809746192813650918768696655459685188777760337605133498661591577778744122406405165854310837086157538638106714147866037286513585960511041924293688657820384537206037394233863011323521755116308349154720029720681361842774034355237230838441322965364383698777318137011557965334919122909888782134639863807355601240236237705852089963788622686241177799494612842121296716238680517023525424496204784233375189952444040141002232567248709884194983775900970082184902073724695324158586214249029111784268042051423118739031442505176875699553203181742107573278295767732986328143744588070056565363823309957162044677749596657810810004849908992611535117540902056480336558543923667307545677342244369018265976763293647806090123606056121163207779452831080372062772568557050762523632467997485257730166875628976269221191416121295568370063455723690537454694787510528055581299740325748063332392477489108547765549083384028977081221878531742126686019747873397482825675523174374638469321371853158246432429398614382876600696168692807176920264515355973546534078147135059405004342403313402042664373304836408654578397970807450276170639564940323509362929161620396370686342140832902754847176409670037716586913731985978443660870888410805812045078365900409026353508673071292410577071808263048152473514287140104885958331252671155710165612234349495523091249713926222792384246105624542035882961914609243863180955357928685724499795741951863028961814624724672662800464221351884995665993008276331465319813994896182469482781760054248790422903632005793484876589004313149721137220778358882527549846863841629931870443187924267847261409655902020934733775936392585688755417563919619375572573890706243495657285556323608368656941785528010643868492950928134067134519699926242753896324707852628598929700636232428163892098729955413263850322263523536827863929552014658283614787974480304319427706202373227273361907088885563813978169316464086547861614152193238228341376762498207153253898153784862840305664624055379677072472056890489724027886809145199215231030926735995981102664153889429861977780924935488187981118621493258106636695347501002451466168429426145275385051448229854738920783812156016894739853778760811203572842498914991429121926994648220333447617724114843701499225018837962123989692372484505156808751208340390162461582259377596363353429880042147085818720485947987634357402118982940177410076546354863304468398000006395324504053667769599701138835821152587484025290260619320247063448996656458808055978717836023596833848134653723695024946813126970050578270320222222820373175260948335700158344908497222902497849128284481221548059127731525577289936799238519698363169637008121084061577951271500890890167022029286622625448979796754488290777827899372521917795245419455486338867016082785218733938327018549440597243298391816568150145280564092784157783532724654400075891484064946303278086407362175631584471927926980241064932481757787047332283937543946254684869505620575017016811035043366604640034679912707311824496210954111097365277452864701029391032970969502846528863235807992774718370672933495048904878350530057612562306645170681052790234956727335931547360959065773543504436386458523730524882167768011375996034176703925759608370747703565958036045344811636828650925104715115947222192487545698927853773092793464613143193684947618428755391590779045912239456205959397523951605481940564746693510916145459735566945678213546820422359003270641548534499733016214493598932889539175999929098256676458354557713491714018005993934511362019259925875177401664568249613251376538422256491599299155611200293634908276224483030575816840585248856060851702814364990159626450680400786721459465911221411846024466394906665566944923094818348537240299713584338615794203647677251890602308130042143434353309241523571812021090120272571961907988768669933976715178499035114848647384466563717253185763177336069380717774348832333505193712690914867388535270384703952370549347013373134033392729895469567125476704596503628556216192365741827842424020210417368539963770765050857701902602943616838069263002767841439499296481537631995834044154448506567020002518124325065077855625717917674434353432096965460402062102065328433734182616563502560451768329653148670592287719939734669286070841357213970509490147401250189611562494001891214914757196066614497271255954685517835886811350694574296293106123199092912382380134646511827225483910165650497527962963553188108055581910770251452542654830962257372196769914020563876995290809200248656721295468900266972849038871283485733279076401998447458939430313016716926366095988422085154782584510005489939224679812036561537615818436253411431846160109530951824441740216646764092306488838170833175881757331779195271555067819537713971032581507518391580770346311002132418433772074047146423967171212614850930230645200836269582976591544070066146855292990051184423143107592350568502848293676925938609282401514102426794619047540367986406495492527726681433568823856178148860069872489138972980975557124618832252191399463565050853528633979251384256553700333711191706831720566957356867416659841890520903831360050010640985145549260797991724753515736809702688055594900037858358015615119129679224847816410936807985772329759804173063538865451842539654887245806792011644185005530793148906128815438467495960832432881396160274203032292414374374503425225700621467564243247931087741111034641005618502455813510514998145569856490195778528222133348653983052894187025842498541064795088412085423893795308560816289554659807557718265877280514702446268826195344947048451572968146155883888357510794923856256413045791215764323196880264246946427485046329312477302205942062340682039346792512121795053421577655914850561941857563759876306935556767432010886130892745964802754868119804713514013066810739389321238084739514291570244016537004892428048103558770512849660080545460347100484674222244712587629274044465217415634178104660326596285604377220613221991046009704139271826328209400792816457622539153706828331948172717026558175943752152233835975870694224308070045756425749477155078736317247892905592361255437090373359413621716768646500069064071528924579346735137521787040652791189589143591170415796890896634768800469589196920234068586062757528615775357168027569864462051408062760232967292584603341259185187303224384534964848542859878552388083557445416405770286017387826285590791456017669655020508437008844609549990111075543586233392286871234845662290194062094287279402154936299837381387284313079165492009671668497998325292511952414369220929241883420863332069460555882814317517473698322827892255101377692457064819244390564442673531226017774855550892622073614808943467833224716771317694256715260565142709127774406589446908160677706568596633387126091420647368580622361937955551217191139219073215213576270987777250423931830792465043970992049854736052973915716978473645344181070737840230291891986290981038926597664981072449120662365289565112879520789044152879010901157411431817748580432640069123793117941698072469441446598101800459008888598969379307977050355030808599188872304687951156364254665435367849459722857010305826308068670793536781928756216533884623631656939588215588558048307109814331642103479186227264022181355716151461763860162720184150545456122026603308267438255661575866744865214893014404795143298187037260526383071319082753383819631941235301441674530612732818196315304225555117870061249472041011537218509115980669418097856164959900479632396221298238134099041602264961227518844239269340777149618500879212099363306798035655857991384624181274845989651572041961331512713040807655204251263918249571714374542986636100966597581263096584498180579658337210701363891674021001272795799147451552729067944758749209179204501255517252561368705047758829463981374320690463022936840048355550309549794194575219155265490285509205494430153839106221700032837564914843229748697928262161979058800089147889490996286733020005717070117216822791202031625510694469313810464513815197870302714804763181004734013871690279654140869515862492661369253261220464192876855989289951604787665086960649613319217474959399703115528862098348114718888298625809948269389337993206216297389111375491044883322898320663791360471572034031060295619855445932790258611759462532540501935211024713317949139881912873635298995350846071742148659757518308234392418082792324788197441040447733555341796407552809464077582414063357033635877690640787344757072358128108806347115184377047875708028385570416038313897314604564515397482309749701277429629280037010917257915998506970508794072286412806487597779376119833270620687893033506996220421810351096855642171389766240260328976418862787559541525788560824460691198108937307561655881658452558828936798595541122976494580915192278581585034363109225076848922370544261193907819632651916533385321332234209660277354003708704943443366847981556502011125164125762654711345797105679464404617058095699542252406420930643249354918116455317298880883316578195641532719227597158747471216853349686705191951549436728275924288144309925780593444062439772393760650208740478946165083840742108258900034773029634023541063889218291919553403876750887150411352794044497833563612515983126633341315433403003209457590103434734454306613576976014984968368486940216142489896118203070746409473654104067925410258346076276299415919330297317293305111168082581833477553016268791528615774347894832924116197060163660148389644263447082273889742760751582641365763606024933392957873330383453196019434567839949335198598291446463663659986499435002865963107619573502602583807137920796585957570671200880865256255181195438593582198052352595104618868831625441571081606420232082037740988458471118453255804757125029962802502678784086480525788715850453558018648832279989689707428659106098099557949371058110528380769763160594661572789610910099386224701383829919481312257828432872918875067375748666549362434505282210891258565801458545935722994895142820270481215153260924870812539182842404256726354163130966500867323296554905139825614030776887300050773466571059803229455452584441894659586667874991153761723398871497347605291445216178944429930403373960734329079147309030398020016454267592322822677308989940186880942938719807115807172698106096974784935009774874823328398225150718694344665625589073377094218158791334627454889873262320610660044262418652858388187023547247736514514872079239862639080572051278440563796508159392406138308304757993600604614080908416163192725804554853616605636895054709609866383035052256351726224194487399877901140547386625784490077038899345907497972373987595075735893978113711861019099741426174985465901105759581291908427251558147954732586633279935142772655190947218395415819284015660063728529705706009233981958191951202268356243368015548416812318108482566881417388189710808183927002996630839055886199395173589738817703908042593269593853614992837005839366579292951799011024301554885234964627608240968755331016722187201236239709747097419527585893744477489285127125111397296286994887249849069442491942827138847742793837692271113918037701973778154184883089389409396212541397888532663029879475203333848998702810253954495494932620081743616357485165741967110464422822456862836530928767426593840655902237063654574552593353131672780933005624410340345025429834052590841342926791133596114706106277214921739186078717813192068601226432969357712427119525378646319274363311140783549466971323011723206545658907631740879093166627441676720498952375941148979789352780755843545021255699353399079938703286100472180520804929932954499935166526511186892753677572747675914536880546000660728202013633816615430303600841943344132921475644135172651408072506783388841817578182278620410198716297692581540460362609343256117664115859962716985128826956203147519455719635137874637726611951582860762241679313926949880964179445162500920380463324004785747831170688083637399697191312518633767866942194336613652161612928432607571445846135441968059044117178418360058104196502126616621264766418695402365619948912075408203263607470071512562230039239466786574006289803002402654736928229360168724666442452990461525068194236634756203907838777060212687955590917094993309584757377616810384045528696025984565464342523819173966717346920741717958885355360964072024735073282285715190130430414907637603899347103752580289591250867775495075204193784892077780320580738946399372769333961211514879405296360571425046713360105671569050534959674947492953387767490886325298757862995439788749104207034352501924689608790508336421862330858277817338386347726923382643370416212291544161752763275631857424768579708712515133454052847297873563192007142980245091556727466096345142285761602964539259457940011608455211128110235228471505544892055948982932513914053689727188577291742534713135847506264528397014062296527748266038321073289407643730439339491575949911631580382275516470802869815974091290025648230025321343836827188284314269321259217427172557222169575647741118300645840531745109134108477110041813279815279404476986609835643108525010263446179083358203134769767837991921855452812359421801044985041949885139930002329339074700741056948555738727839732362846495653911260010794482648399197280012465027807145163169315481035413745839712803571334146471759679292627665335499396166510759494643380090685235000837663947974946594430810502562201099215533564071743751536143577828596796679696713491224983277702076587536460494408200426764264493331967575232899559935304297443598972636669039815401981788859385421775963376539180507991175717997105983533261032297197535591161869784865289430220164507036741048141114111997433803155314956398431641110652577955028415516971121763054568317412047096906570521369974068364519541151711758205701372417063759243528081937675695184457859906929610935336755933944224608399124900253204314099898194207462944180594095728318176819499032578163569922232281413165899095455432949782394786262535387852598500641905447731025430244752131695976134471915996173148519299959901303961541465290347186228677796308743110669782171929507383972476052077539985878688032145993543565639608541605935103210484722283473589946675965556259411766411627210128890055829381146198232745090439274679367572670850300124583528430175118295636367689610824789668196499341476145682822498100829878453866619265705551705246251166192556955421730010545137853709287378921185926594696752448498369993912897036248835206549462888970112163833996155832654682495389616541863459486204269952265080765740307829234625524390068003261633167332579950898806975047314083555922340573874680484324290455589627161549457743114328965487670079015723787226083664304899388257347645125599436070866014432660555561264021342788757851734971912394308668901951903392691259960647023222191257861328034049576687844652934335166972576240721101209511874920442305958110511516974386432726944927009800872909263027989807090964390396782685631376158588934767548490266180583321039512398159119144037149353793658515485790344728205346879219615855735088663529386481815974917396185039434454627939443833324707431141667608598516974483539155353476803691709941868984431107577212078691065758866124422624531487278234254744019332897566617562058996683649196917755264409984681831772422519677735844024847292571738432794160868905617332586824886783881096072581309683818011808489025185130259700463177371567042689148093903892812987579938139578032804567201976859363007031074470714532733914147305641718401892455944302796816272384324941202412738131576059789413200172172503149048614798717740506405170200534311164170340093330382949860782579935866377781769916084068553343724008269759974215292571120527628314229779481483276564205894501160147914061632739856463772924163922177600901490207616209128234755288019058910862141189921972342486425793196125672170029175345709331258407480933749195957308301458446344635774358943065164356000469637997884962350583210847357568925415952130873057186891918740503829377105859865935584268766910617836786762533035991335880141065646626888695020484585818740145379969711077148705480778256275597741612719302789061120196211946472337842159530418417463419658100000172952736044614249532779900073218776716571596000400940750194924144168957242132653918726820281390453698360401373884913968134794378800579619205483686384462506750575454220634984107900268910770778616417688857919908442774960591224069564903783389662280432435338429254518276752445433473248234741945178060517814399675387215126418210590790054651914996704495963082122537661283290289077326435313796648691304720616883586482065786729712723086432467512091083327861538073214311218641672544198504322310471140429178407484597731007061809918509260706526298371079528238018080411799081023615718461551676997220927306132817445000907024978767314269868139511238007250759366980793425009896395838673300847266918221324960121426224650797390263311734293018349234457139108027557131588487802698397095512934422482965134086866459188183641172500237708390720837622834988057997383385701982959981488690918683421009611940852107894512617340143040233990870773933582266934582514704448035231352451266161565056603070916787178802476513265409445402518678500815200756026451855123957851374250070115922077468671475380448833330764977720340323168380040756860819215823654731744784445331886708400411366240217512709514343484588900448274299667025496668455082324390685586491162595454608829328087856487323752359753744464131223254456643242664978109378538992283780113809861371034469136292114373765765866040436629498209559072196182505205855775617768049806516088831418938109668091369062556321784232583424277026250899924151427325987398290811909929355104240787385877903521782401622775177209920184183352590856944541041437199157285836528181494882933839042795008896082384349077279207229337107859494800075524801536041020963014660036005498764603683307333297788551199724416956353144043956889990352387774512989867418656773628169121375213802538810200794526091740049683750402345788073056195933069885765903085993171928723111868262454622442055568812876004439482704223049181734456846039444771706810248516711656612449679574918116145143900371661752900160818422741547934689485163934026415686648054031418505936559094140630305925474802089907265048015530002108893460408888713535602183818824809290165744009703852622288054501260543107157269233362143684577474417391986365470993870302394346535492552749301514215818885109645961562140162727963659125329496196572405200642980933589836578200707627300376330886221662426542258852899454919562046951912892948281816099963721595391911245656464189106588597862429028942388458970780975310265814029733163388035475150705383088584655487184076950669132428377769814249277483868518045334986876620206137691839166756507380620761477771745318960792682275425516594352423361932747653398452138586760452473723109562380397429774657443953768503623652506640852039637623317145740921202514145124582113958816066294571434148825766710786903753894460990876057789966642130145619527778819310710133506999474308055141073911532130703288874727691647258523933645160847975512063582422626856787326365676038632429594182953972294800395394381887495905247178916502125251386021575549298357932547628726966839606597804162554430837977763038899533846040813602263267607882655042408530723958781391806030027652677903123367827281685719608885809538398580136219172025909828877650143241104648808865602451459954328298859482003375805418550171709150083895172647722547305092849676953400441766273716643251011106279339681271635442278745378279517825683387852123402070526259339552347535174116659437952950369621655044373543759970046623761528778983954999233072599533555067453070266394309381063594586300191705746958091397458333467655627188094710732477907476423262386724798156011987779151991372904302835232675256004266769369011772804888663170775086375907185616236510026538722446122655058066323081326503791879390858190204821083109901109306966133239688433623088052901458368530234362990106483740835531367963912433212150250113616110959905143486663956095827561766892953485323401359633291853947383552181996054397266240056869873193838976880821961795404357952491485130635722172543777946676984676029219215424282901939364766834163559303743974207984536465905909941198638951160512113118904640870146925998850323390756042747158424716628525518235451824844506206987496717626283980623898720524541933066692131082868044399205478649406954941265963849088293964091370211766540818354599033942293490938019234943159121446472912183942534897239609184300142902409672728489443232892425659222445072803118102063661123759335999351785415693823956768642024485660173926903879322526393860273061184515217829884026262079175209758375878387119137575979508397915951294896694133530913489834645521127003043406165766296898661123254404701520144418144707906476049861202947654348226489598599142958533838648347844795513256863331850802900168440197876727128554132809444799648642123261242476718929858811409195976785815434820724611962962757670744178010813765906092065607910210943419846049079967212650572147729533330566721066269724732714560222769499920422975482711449879757484071442987483998323615087893557435298841250514801064548285177764161956468849025788152647428456293849419160195251386905837710907607111442709133366492450738419463191119653140095925302157347826487993799966421228944029231297191014507603173458858556124162085660902404520455770241890890767841181477596237765647761386306942484511975235076146710488221159133701420972474688413707715840945296496643069852482441542550652085741767603945780004607866316053059145192407645949586102734573014196919859006498906257951617024859615069779014635261261899851040078253543835731462548105719380864200464190897215821357350678591896437076564918353011727648830712226479389298828527600840734526489918478754706686342660477658473461354622353109601992977698646139509328010841976506390249240977271430842038771371497434899529054718070054948834715241335379678936903334453379618835273610358491729992179683139033183293021943799885407057909340101539750030824636748948072978968788533079959675081341857996956696003502501821227770816667199765268144489976715239302411291478692981746829892431565912233638204143793401318716744677549558879636205541778268171726840196517425152256404930291454522196793075760742896034938650383886002928434485324692072544672502167238740093563197221460733489856324016730718763024340792506034242943815086346482658921803424662600980837499055135081971004455738269685059447361954821322603043848765951895942104946268368110107145719087252045549649949153560037942344901060569203534882898327548315699322630560199410114408362865242790377859848742672794437456822921419602676398435196047101427755662127111043989630352990187768327323508874630264966460100449654606293431977502018193882316271821659531524358917376125859682199828513264002418179227630052277817806180131096775757281288174630600845515211830474531542804705013312513691643301535973161886212394141167621360470255076844804819433875901567725382966501387545069421002482217082697244516342273099403133351278219971787122444469456457801413922280304908251886134273123282706417320638061758436554994106396739497263185437243535934702838446096788610960433787916565128682539006239426211034620262365535708997592875107539309404658402899920853100515715756448922155339692074558800358701421388883106161086665287406555930909681640136845116101119227485226012803180884712440762431095294269199443917863464803505023083986689285894525284734015996360661512894513648963714373882999649318563557857961534534118537341124653527027136455308893695634535782423981509695156079676502575153922619384694560373950763220592140746050273760757613854686905602896169267602039521679814175920142825907571423143306666412239162160084304216189890197597983538910843569676102970420572321915374361309601865718661757662756271254132334050580653848410484461055637462700422319584925440471871179448759446070350300166681218787475134789864006253998694469450962246918896486167131208625177292834794401044106514298430663508548109507689227276811360496860656409537515798722509836151835279571515616500955918306620314575579203175558289237855842373332996129991613438483946571945074125390491810554519032995860246600431152002396381199618722448297476978831193210543722790044876217030231803544190186304884970540205945605245381093046604438743212552061903908176134389163831372047949179652226500174646198248743660564315589594140390167932812321313660068500155859771320407357223629272712542498328990552096173984914002082773256556828267422139172929391883156533229405474069196385909139466820672478021252143358607057585248015585414866460098120799831835481721149115616548685886737401522872693117738574147415523030789155507012315960180401205110014671861100356431676158303442245835211880769555378634602675030810480752994798019792550079604147100174209278716149314810382662374328133849746181171648461145744441704669148958745534074775174587412820634769696199186077999665213680661170733651165773079361388982625799940580241554905143440164819060602940700810963713836390503208909757846602596696608727215505050763335693877482259286832073891098823665909943958739046370650112355585464881570402076398123712091876774744194153452538679175125520359788593455589257654614274130748196184658377011305933633928359804175591022796919487173373749717859106655002912280315263629138823179293394094711016628334246278972886071818039615255291107019961574395209765004435453539062924138703262493240390313816798944893194419894314460028833592078055270419990330024466145422719437050729391350806610979356757899333237419757655871166162285949426991507382883721304679887806080672161853551126258075069103111187613566169312356788399513633016384328627388531826056320703222819830644951428281290714765030957451662887202241502352799542152203007506182685472626147831714341567245173550986117246098001753566602965274105559659512330472994374782875580632214014151674663182013303430395876423559216553554528179298414652765253557218818272670685102862583602917951367245342419504178816318454173036990441438414397878337226006402315547865111484733789879503493128507777276757996958990493685793798830720138412134951843493656768592599173397345800274202886933774097534561211001708042794473274993715531829064013334043091824686834235798179946456936334945786506307437878041459084895069310847795890643600620081912296167511906950184909646750257453709092778388952609217024582483666798084137933293968367091762459564492220127154622437742783846235638972899077354768352395473626165683034262325604230683653742822226578367889290210389044519043179335085778726634034846892307734494763362066916720989837650088788764722754471887541773695963543745271228101401079880716716860904840214747216621553372713178529795936869653380831368812493278127047197076085149765964458844983778240366992631639315759931292074111680963151363601509533090712268167721577504135025107326721638472419863983828036222109723952265332922372267593615041272976851001508910150217734851418008031388560852707121690347180219802374751963781946814501219866667427975075876562635361766432528648953448380172250568792382186133318487500263851697128641163115153894716207612918321192527227792631379121439771285606953698722124586548850185139994473270213640656774258810800384862490795914904137100793862528062278846123995813704219907597136527886516219878913640156180919146137630194697636054216559913589427827059543985209165465202809036921467971628373861060297538152953420597605915071693327511423708515838225942226848765111359144110737136488984416822085886629126644619121188316195345909649564159332670646310873750472063307568282020707956024349722047901390117938275154244643607333726706870009772305507198251992497140944724935320559731449699925028936214118249386644437612208373725557535483642919884169821775757462140260618704570174157605706857366441736285072742950497046298391175375515915328783446493987572897618498394869381731255245423562204708700335116369197706204143342061708052069216424815284443176096243988613248926752526397051579142821886016568966970909085414274700726757309436442754931469284672346723735058118381389337633168710887469305351597653982943945796541401443355325399783441559177914848897368247993613413204405270505477698900115594900767362491567990795674802430196773645487164007600409645035879148774383458440602230943789074725722832074635547732615429158267871202528060416350634097025797738847453100977761854354881355803692170553132075011585864792681687186132030049410488197015482501304882065373918604870304334362313619435975071080779753298702414600707008189979426124965390639568492972597997366938552626745135129809110778336230696171085810012672005059705898432940998378905630796466183819090737904998373754112065731622995095131349648442420806901245263056063113420931677575678514795503254369136231514852554303828142395319632161507238200185951075747346616021906154461601848998996934631097923068972209112333309073658754994616788947509244822610128952904939672394910328445259601467741262172615867509576491307806125855296856833602525415421360230541513285781112796619892197005993601116711154073562820912214978186129375022415492725551424364754822076907392043262619285643625785104061476250173340645939278178111556607882944978044592380853489614160564459015130287363793179155521006104165358686718958708497175361085145800953515957494724274174122033758110757913319859183500116681649322119553113795399141745683733553350367723362704457694880550533945994168450591354760277141959447006621328839807434590489592957501826202009879188355626210183576184290457843669575565538930079120382941255361127514050237901496610337097846303693972993929183025549178143465545516906971669882380701153141811440285931861249765096577692053454856154518124453006979280742207473915568425955148756027114461804711350126216374638925768789034124014180801893462459655962555395257493005621662325591393778520494228558984457331392536719960045274195354536462158923381499647301803442111135392671811581500539884629779104335801285726610523520318866907101943243920073052636017474307489219986540288141181390777314761719161418714791320657040423265558029687542696572139716420131194301859898329052045971252905460740767533210973403611877073543977985875384574683000205006370690551202658444600984691202405295832409454033676356631297629819078957548469157528707147023004528452219056015294361107350610352600259330948742344046192722761817676580538253624219452110469103384513958257458416279781686108957786271045313643145544052921496256105236472448918903988186947258073958210536861455723135545393462533830436117499200860477266731332930102999860654382163470974955649565849314488938993879466063072367968603438586816900880701933306910979124227443257229090884589639320005614746363248641613967059348496465734643361878008836374834266220833645511139868765042549064900055021548792821454817934721871394475203563930187023626471631538215313594726580001807267938652786349695174994143278279152125350440255570997855476798885905645764429277054335217055351845644787520833008049701257835456698678472059240098499385264679039366597819312874822865032629311187199802336545113460055753776155093393830843950469717856883090427458840224464241398484541979311570748466811371551188794741770635667907919997397516153474085296316088119154478418958149222663423021053679361128440942325274494781357383637205781688628019239942900014060332172826851641902232023147568758006382574064768940566585246867141013295207936210403135971181632515866144707054529154876721600301755701611074751332667575061844079492000126502414200688471872179674460177244346318303348482423013654487596662447906012673392752969215030425749931236968198706276920865761582225309831846864479296180132668078793817330474153152742845878743202580213344152258237281182830754062131839737371567259570239839577657296081072840498813401547494470404105717488525451218591717380977536686906638396374658232395686432395736451544625785480146085416223068903218398609044346709551413261078606004629107893719154814589552140213880663527886655207027586894025847855734975075259999787065572458253181164065364400522893645857063322928740762762887519114224471202483148594381868860458422406560537698581487887391970089145501744966445206171042512729223563038496337439577607210672624365572452054887629272786097217857838253404163328591062952679737843109200586037091829232668571779790216019273048549323657181069212090172763964162543519942941794470817739314539331359075169179296893469376507118534584944618664423570312712297226356701566397936047785373250026690120865385295952946036654711099602857400976693908838451775101536798592214374843829838046165599707631484655818595294884959647737187902518888773129803669992137024005804526008225845349168038669300855804243716361508601390568776994598216303064025425205524338972990446842264898935708554278833357751322726812733909039761586340556040294459139452068846248083607486193022109760952281268569260474067820275905744364504821175439810831026165738682994052061396018960168100555913667336101695870609130044799372115287212235718853597986822797761384684098221416216452020338516993758441510536348015179959574492771399975153442157595841551759198164804053447422776235173645476804353355083056769742188075295622169517420500963053446974610816290355758565442724238823928905933922100953712974598581431894368878514656497292619776039468396915913026865554186218008364170601282085185774067925046652796253364247061578488970026757286785907707638350995677698626541667844258945714410370744153085616844145887787728136103870409921766584831921619882902455006714583711219979256312846189851509873307165365884406598872146920737888719376507791723734284405935544584325553239546210696748839765060302768435725234363203010234705121301451096041616934399619761035594223286095684506615674474811278807932158267440087499893407272647336569245812102163554220380698221826840110086940548123237003049211662977169438308806714902841100184309230359871433037323368894670095654211000626347663612389821178155620682726587586796892335281127923252874438157565060834790415595509218009792469217114585160049517101141170752852115523054568294301007975395698423361932359759916287494755766573973432968156823893900443146063392019769838864029575212404792774356840613977480351250186837670339027087638471202386943938928477567343274729310080001308074346899235201972276827640610438919553917957629039027621619556748107030013855146211065411795690953765290618142517732496303356645691546408700275720501302328613350285444889770949572249355830282990595030757336330501125412415174702341584672355364155514676221395802875240933793275790940299881887868665181450910301562842617570311485176856408639448192769340847740723576861487687680248898084354902580902087847613429707821188285932440521452591207840747267494048258051517125066844919057359442173803474945749913366691566841636631664970927569769800719700719398857970195082920412221991423376728125780628751809377123466333675435718707157529911495227125752691158943813694217624181160503565575459746214134277505955622072569748261207979444931940781979787091498066982510617951151138848165967809824061488368243966946403375561864222210391780526118029172272271273889020200147762599767808179094231484065395367524700476711088111726267242988479508965186723937063964760113297832871144930253239899565228306309487040531578515493111549175213762955183707449980405617531718055903241184470087703619875226421847522304566431565070221036324250043195866446043354878620336759435365430474513246325315540219777243242375284437976660528905661112872619175888530772912273354612968685403754523592704059183167704806950717391554497579867266545654845021147686436334733905528020925013248625860626919750440086759453992006867213407663908391826081906022285796539163318306195021653806969881711425628351984572811851860521947799803858019322030971830501370244646114286607509068697160014118981525848425019832252217250514073005337764762130317727571916107070333675609114567009742713882660520298178529880734193813012168672277089372002909771690574354874224413702982226210049091218367356860073080339782202076906042802991871447623277154313035399618873257027542487917067108875095620369549222208517308345910386749079204013647924441228632208771067325511807780304588068872240158098898037570989045887791790251552323536482730492792129688263053044384572145486656774076739708776658023940317101363033733931700275794625874972177435631697764748490710460878544879684121645138197565936904297741134939073974952007771093086254809383575319433768377643855911003051152523325495015484307536305140539607611895377951665342696688917204742516890227771770665883618285150079881178341035615556122195345213612269500670266774847236070995695811335659501319497825931708561946414403784302665303118436900473490043394513348772077086733230751135421609063296534345057196273468658695657404612339238332491866512704932978102329699148069865209723307852674324322672364138956198911143159349282742647849414845776739619082950385193864218205681579311189786903993332493030018437864534145908699300327686995097964629427829125021127179044074055642902015370776987064733623057206032854088760381472851477930393550906284368565302903882528869833982388034427169229159790713087406229673145282186908268334816182382838700471910031654568733018528468562781531577278446052994564684326740979996737163398804621438588859235551723515233400369984995733794507519761217950825775754174142237815530099320955782410200756309473761727307643362217335731613627976185428591082784890162063168736040268539346216982511238264768418218738579605956217262915515415456661019962826215212314194543073386123661468948066881924364923369548719800894061989926474321529326781266651526195487286525223205580678478430544259640724475488623299324152417847293764897968817281913358988993899187051972703623186401113292755274165960064717810853665552582206004402255646676739129208125289302663887270884519831626412025734520788515924187012832460060785021507756449275458146449792401228349748724042758281617510797518000622141879789829406847453510348906915590372067896593850170409688485044071704786335449869140862846579847660502311910203034165754341588407561034642718076684735615139707375675660939599095299575119123225016347617505271698922424286051879288776466474046231304399093503581449243047088414340526280482945487118149707191968531949175476277661778143309027070165432067971354875469042270374329834275534097026983886700981678634294684437436288707640526453976812616335904190149942098531310816435114194966750211238131227701652277704244742220669803732235110180011418648819219077467317124462273605757963972126527892655673618585405238200852933484397015226119577694855864419652205720200483546617367948812198000705030334869546330569119491122221101519331351167561374178432781113077690076379605919359944542661251990546266787832089149410414748315609355523758226013640878419854433539081318614133389709933514717132757515240503013376374872409831412621222385032885207028897049947272507769038338893544667410394910866020144018635470948241312218686189055447191167358472177159229029798694432066908096985958769128862913841240013777165514181139406338254919391433830852443941951512619057476012025150116357684878262177378866439766906681416036630015474263646241211846795215870049967791528058698763092391192296925146168260939892672072538336283435771369276654674406025663368270539040411416118458048735277223663306731057952425354878418100709876666189627014519384469777367122722621001320919684793333995219589092310855885915585105261662309908867234327525327493824356083253604304301504716164109925483191638947409411189451868447026950531849015113541743671696005697350463712250588157899448477176731881708171988781877128508217964169842462483999169717147082695011463016220622645921762481956425369220742934318772800057047205049764346253204373778229225744957060573416794888984358818858916146366172511284525439898462038316168487664348363881967159245373936785939365348498690928866579321784794912391834149872347707578285557101634243398990883091187025290434595109063067614343616083794393783766410330293246446101739894082449582447282878400122123402796259154154316745047234788723740924631294835552074264543767865582711860267387349656439626193291034267798897306796290529226554545600020689955423221167492336380385957061895015954067717625063728133614570302412581754547322738205381683797000656006857204788182799110640095633327731900503128953371659484095047144082139933357613243213504935773576654698623380819243658298158789839620749634524496635974350266736551393027823541676201388507452784031616239994669358806094556403123857566006822021112171534939134273037541810926847174995117405630930181432807891602165002685948505088302485304717340740718585557663106267178319969445865869078721934742808206607567820740728720803483611600017598978590955984626204243974950325096914045254417443193380137550116255344609332619922601474065535738791288908749537041401468221659295493429667198906742058676170168250204912273477483369407381065997425573156122562738342245310184940620869507687996951954305959609676051597559376146056651043312125608682301154019341477356553939406937802994639366763798241286868897821240190718836319247376156474151299435193504238013490748330899860523552488162653865053046164642823740042974460234948084382267012675707828789777512131197560683885017779023231280780007401065912825455417378859056150514757685243827211720304316659316836686196578360575989629010547088472817856486163352318490102185793409656816892068988550442889516807463259589906032155051845227535686681561806164437999369994197736236854583927323032267055324586165807229997544446808593529305156851136200201628831790356677141950129382265035072431793775310058139710652444477711135507921357915890601239350694228496639704688068128767068356828875555002418479935719648217225678742100675369434782701931073904909466211925685383580772718805460328739951885213403414638384131951386767193770441890301033923519467787099734410914709169075365823152662576315902905174667273444036205733500467393070160688574213159643205245877396107624945210850617038202410359051030283616377207896676732028354702455725459576967947120085887962911600309177471467595455499796199681698346717884160459425604371696817172097234894073282118086846892298474487219427762478565935154481976676922122231482358064650560733800154199551647828321415631288816441779317138768499686507876245249817929705174470718506019638663881804202664005023690544540455224913447007928781371964990481938452553667715404935377263030348172562371198998236938364085887626186435509757791416468899473792904245360395975738425013709241445189945088340187173443658512941435559664534263541474922686911268363969531052059611069366259438631614056991384994500627296649383169617806414750535513688596456101223226538722651394225062663915411943181567681857124293933248722050148381643122144608252209390594327433277284908231015958709692618017756464552534229889274377328122620040314147541124413276902658708875668618956776797683270824669341773808367835554823566489027215281547392380510975361969768381645735854866490511875036485937174039564591199602873087096545367634623802420508298606106662883037860884028254863071645282601511908336002593482322063128839577950756029916364710558903394780740218870169408344732063452416490358041863347969850822334245058701588219660505514411335631102761451670899269627504342774231010319503781428624526558259033224526292710452775847363346161901604928985486968313369261852113720191114145428294524296608138525794541532671851189436134932309782658752023182849977609264543705981596747722189700112026851774484010054753987637404262899161898581726547645461081962369331663416528090537548209770578647160995082279271893562703350131628566936655786613161779686933175725135344997677009695160387732176463007393204277768117071189186164362470227019101135876518745594780288023782110297238285018093690241823006409131005063858965332361111308129982125646811049694437065459038361905902659226193432311412097110510801991112089961367402769030848031025971922958473564743543874813319906230593660481349945805975875383698758231627169642693723327483151295552129859462547579247588435790785128567543948215214044961320216033696194867344476410195162248803444169530333897663199661118694769539271852736574653752881486116001704937981023715829815635095250674693958227380638952526019355676218511736358801162484341058603314669345234053658519340695245171205157778668237717527481592179996290743445811216707706144491701359540168981350967757204973114515440680548899887724136714173859284625456042514439273133075732836590613158050940049836543589847126097042585473485849746215786011172245235377722554374352366602740674209108889238219200984040050891341766143963020581666559469840679361238303644506245389427394331206417243087438334474682103032203708191314287673249413020993130852731045815505897917728109342301492402225518440045602062057617486707804157464499938029138269519006748495413779686736970014272442451379196468808778955065834370169891587868488908189122600961248857641584846518423933620855944450144923738305232990328549896876196344238311112297915151736312907550252989970655280210350169638609136548611912092554351492256134221268007505575826501056064948092387455171291005909612915070364808895649179038286379342557544187477500655544805273902615809334124777045483430589517332833146853068286258784940552262031578858267686016828295063825129681094009551300074500628059396330643672809600984238180551364598246315547456681011931124225268296295474290479976105449566171796154014074247547924951443228559996814077644873135365146418882298440805038360208502847307774131882151051866341794499978421913676486401948459045558555733797108986123671021169244527495316926346788597249811694906702567342508328281340052786632506785315025845188055195999429512354847417628919422838181534119777118321060787422706969844936239262086181605912506488043743653140894657646250553569320000983555097115274402423482695331256131239713652551838720295797406625165195673311004904870074974011439793422406382827242423478292130715472003798246078847571335116320123811243145752374594454254198686543522125119099946421317711602062993814636568065191380764770355973063561166078073089506631311037053814657589398171933946147793911092459173757738717143929473392408336699161969223096293515837320421399199338895095980358234880534954984426572531005224989216612456858066103576925698492035255003420203551343076988343329271534772643073432840224516504998757954773989891327822235678258837141467609088537914245063537442705446691735089306393855140904614619537911551196975008433966534221957653351861932410150815891403171840902014879655021906820826262744650356643319526051128985291346596210184620002032216076336812485425488325577160328598639034634424557410709217593979464590284641052039752606817979369196907530558620020668717361842369767002032527529918961391500179397743092443742786844995636033930800115400261575807654830772022393333441897588383853122825690129053790101501049464168158422580730362142713832058882584835931565825390152779641981221495275608006804793513840658089004000946420889259174021849173303356778745276737789998677678491322618638868649362682022715621009973940239438496157795385305520876545548318780514993472532579084701696607904655608130658457112947325815075854038175808517189026241686803056229324305949918548842293113844949109846516682013723898320336620942653718731648425375029694782615544346612752711013293089640900486199988761049404009199122319853753022369626266422127321565503851008407713079463519139845307473365858237847038258717678106491143781529793149466692781613460337999836720749472202152803448267813903774361543553009300271712444873441874997280922013150306122747532630499243145943645711575799219450502430812822695587156157347124089059440277565587747914832923007726557150766558068666724045217757932794014286255164225653768968959109133093032055709315837085843943527521903644329551760093090278383974245737245852166878889895161316031446119852562212087720119028198358462538613936409608010657129930551912078929922084322510166666789499654695540773489031572116919898533892373070978946454915360915290882135989344456099912945410297477929926815762333251281992851033621029765829142040689430309130007846264050386765925169112738279617749701560811747708106115334903666660633871336595352450530873630672530037777844526505438226248467697663555207904542322840195874544698491678824519362068245043980839642689857647538791027788122904566495714890072216514221460874550314882527173390995505461585879525474850922865896638486897716904632706635181492635893985595905663522937895383857253501189317870197355837181446770689833834778447819064181471619668626025208065128683519022842663681519743988090123184204423500928833834487672772410584174288064203513509996492336602056802381238624129743592129676586954390585629291553474765236843380609643439366008869037612636253818933474620696257282554972924351583508882588511626373056630568840042107727280375936248863526188085647739513232787474468669862330550553296672661194580679913618914827982863271278718559569158576140425073885914975717766513878854711003112333653866615750059636492657763511772788066588070946457649609057690631568837815671028221270515456717963089810954274833858018771270404383454875418358092061827044598629035930126276760517839248410966713874602425431030989221730861548105793140272816207008334022176141909574743858917827948414704379540107277250498342323848460861218271203044180034713130242549177485927048706477894999018395451870946058426648019918975693702229525020925422375895173056253070381020462419473355355483008912320377811160129566484625561876549565887756599053547647283263529147218930973917261635338077812227973136139869562904431775235644125887624521421502202785659963053248710700385283796007179222656050151504386346236409923874675714436294228933969023040830522637051883448809079012488331928856294320042325573844929434764163813122663643815886949409688651580277182841930270936829788435077199552714656616830306211988758131686368242192420728088277440312606104863139532553268939991934993302897822600336471084413387386237722569143949732084200308849107827368004076017938634449171863182067028622694022513108201260689182360482497586030299256084276072294414452974083039008873201362884050170890849956459713153680754703787303775886877151802092808067964659384196682281826400366985669880287492333010075640412807050209932650818931560981477756205266179916046464501777820031090757695529906187235306298472323068338157200995290410232136342226632959547602134276258333044326950364862436155933534098499625135819751821920706070319402276377089636943786251350084267843097673681079035818500232771846184142721154168834610326228040108243373566126247153388191659502117415965784856807537355599162634230544106507820584311584736903405757651070186941356151103534157662146750262849262644372433424492818251154603389188880417387237759558154482572992259922276199907751751265327274057623653349953933953014217913923739629469782776030092251515202758145565410789980315458599715057067612748698552111969404041772185499958833168855762270007131670037932707149350226970348567179417214074919182090394375017599407408291687220627336785057583936205923763405115949101606306151744237132501731715423404996709642567223700069150629710238672209271469459283014074259225892944876770603430249398605514135715954071290432777350492253470972599947914888050309084531254086277531849955872429225642823341089127615258215684826851100553450974871021404394631739162831684450344860572348393870709064523671419722624502441074486096613202921680053333719764812986663536635762720806669983886228876877563635603840293873237582598429284806418161079632918567865554909429306540021998692572371995684305812618501346748445197690635886012199820588855589219952742653301513931445538786245960466305471465125139728847885986482478373823065868303033503195872190311490416337680476092527103633275765504962297076873227303379028983428270178410514129583678017074015057380986814598335000376911032631956602667260958461469762879220269988008207116630475165329524693214341485268559643291055986018415857737097022568324225332047959021098578221435540412697845835357542826284648523410372752049161759336261432848744547881898594779289741725250918360999943353155605648560824385136595921111231472437617975026569786246731832864338759270050989026842739616908747316791014165287048349772520690432984435297407555876706745910257259480130212708922688515192421597824034733923596294779696979842925723711872712963759423633454264364121203423969029729946603032035135507844424410597610442271808238465306770664676754040388819857231318196776827319748198535742107879849597970772262473027987784701212815038412946277392290200928893196121731849271291928636191575248124614517316999326403764946235022369837175859771606480280983856578420939708423456481570674875941157109438647123879363315297560574732315794214917079097661374397517521209406266068907767413067952390422204811287512210165188369485006137461849583261738863390595463363490240990796697936030126280710538813700959658471652468127604541775239793046943522195758882152294006090823934463667175331229942083726621532855962681321345181256427225937870487997259324426067174319695091838086228853734648788335089660598897625450692516471801681879150555065043473437395841883128347021453557210622863725479503472538268362731812405420275175697504186444834652538834030315457786301691747814068815201177810363734453467737326145754063201913396039774194995384534277658170921990968464017170396235083235900599951722099561678242523927369642444956119154160109595862925043020000081789316289379606049408518297128297723070740510713848206606097228105578169200381524452945591388092396379800850360226749347306297510589090016360221354451254957546196542054526436122480454664375331958294666367347169046945204821563695906790259282271221427287128716615388544464398363265055654326132353774256380937547773123155003087916721071330805797317880042775682962281619341614039424489472822778653699075489192870399275897299288844953953008515385610610912942744812203064555007618516626661557684139396918744988179241526327937338610272562968617571954641124243082284297784671626972083186586673667627718265414050592978655557397316901864790306341576848441869952292407939105098222382599586883178336409150251450282930638992697982760088049933623110511103357947041044733328060124852644969403843345052296528786927625718303271660964490513908204960434335339539787944462200304732630140088104518731407786627153659476546784668023922220872120490725178198790660543657389566659205644888226636587820816761727702144421714254859673319231096790534181150633538440826765072477182303639280557016299317574241468023668208794539960256099006836881587395327334806627521342120262627780566859990874412178448442571090814382260314125350076809799661082639148252584330329241048247432850285421493969226351373356481094168299618445871670171773874445987048093745488014918478397438188614671669260138811359147614634281729555145074757188345575977464487270596643294143293623961019263970591981329090891889716549767055971379563891753640859502692423428331860498332697097443196468208023744192082698693180429894594033427898683796033708340231186390645710878609631571887029052473504851567879374587092771377497079761129186377010710994732845164998477267705111941887735125427464158160253870067958976903482344034679347692900104359035573041903922936758913349236754904480691658357199069289780551373879511310620850005421247606167999289446227606846206368026790131437796430461981059787324110991970488349629011080395547625862705079094800696512360868560844112213183863739410527263891679352073659844051976106434333984047480521884558224380607582645923357478267958071470196051199091440523338358459872327406590054398731182007145887636201956820823761258876708295942290655188101775546863490596493762056980543087678324852627627154983349036543843858285537425937369572632327377825045815297911966234425988488021796249338845560448810875821740931947767777322774485463335138796838175869901837604503115875685351196538282706810695219976044746175529712467439723178281766220363956893919975086933474669951224483930004293737501621535491589791459039368077352889222753043162156131400904620623686530504853632425998196776316209687185593670542575230661670883755340749891179767024520215859567637746709010725620181581747405872881281807710689499486187133164886277280357695857847304424367898876344571031036581221335319420298339326756571042702729749917247582007147059524572887828482273359599194449477749691140520166602094355063376732056905652687428912672569252306692334693977689028587531352184335077073087195415906477259872876669844909428254260069050282031387685139519093853611650468723002157782858534406570719906159466084246360165571536265894271607075606619589519151738857809096224230106005714025192432425109636918830215033949480553488594165455885845189455249881872410284821901832595149355637082572461094811749029960979775592897589377387409132877657228883501944007174470080580180629081725347808613596216968623060065426849223417914374614585924210372632547206239288634018420159547062303817737690868701587370838265072093637199532176435825784308130460145916818324426899162268018625369099939378993532786538068554210849710669510782673117561875286361851037920039486272563224933013618719708591491530048221610793558775648480454913664491806011136247350001001406749361568483169521727526278373689132038574495818521532348308589926690562053244665726323616508507558830798384718683935593766177337940430155907618703093523188073332284138834740073586243767951116523635441345975243136997224869513850795002154539058762924119968591906357932323557568717730053927739296375074652928652538333466714439138583381324287387258415762325600604789465968864734777956673529489255076926887662950645866168019130999337507512661135340468526086183055398593217753307154531023211033038248604916500183757196585445203630389333799215049315627534878520515568064418909895228826288620734565856200263313083374854834654221614095506053196579495059257526604571223692041026440183321200838069783760929237537587090532614106717725648848056742780536699795554249660308307663940304768126268337643939023257992855349675339440139618400283874210565098094450401209543667897538845305742549008649774762969110704530581302277660994086504253452870772409783419399987076877839472865327858617475254399825137799684513720378840693956328185645913340369844054432515132312960515726150456620921902252727333604377988407400814328345731727583641107908826300142162917250998825600661626671917276856453835072344782672478038367986461305786182345174153489865850129706465191949264613040666027180786459928400607732309172929724071844364937873243565210000631228872900742605958433402291024404125455037250444243255628288600910060291921070709928531963798589195152847224071958415195793611649619455699252178464932444292934723724610382675460085618856621619941918402883846582683463957695831168114732628212349324746035019398361639607258365768970790661788407665800058480717116384202991642413739158651730857752919043916095950894999623423127945745402799768992498344537117776189822882624524382902292970409046882281282025283569414914039450486060505210725076995350407002209382219947878793148655410081692095442433720982149546126711713144927150650393328849267850278450579856164155469722353164186804870630350256914981406183502668659257421207334621693063562063248853940459582655120878830595711125700475327555375502815251104396286663340350580087313099338959732009644907839892177214598260169389027580681613819123135635629924126175494810721402654872406890427250684224939809875283071017424627404146229173037206298098575168691545841086802757323478913388883887233570832760988458963154929523934315124084783344008363542105179789736582541118922540697145328682789730249944855324436224273324629758648408986410784087865360761657960276594921404123987812788615619516552550397926466467149122118640929225247445359438144602653953086449140982503855206900934734675321359793273907448525948597839141541860706706405194493274199437946483990994249128978860635699785556902360084362062831204671859643523672665433885328714855575386407192736635618327774532596633670073810157877592252444560791945041348374948504561273913905668536805708344812750397665722949692070826119657004080950587966389946825126636965037750566943481899181049866725679765796882604044832233348928498946541610923325912148573711645076756695721269299863087695408977409211185848876002888632651380714610017796894156980002860606766278295540769392515925928228441378033663286046690245546372559357335952248706187858858527850597403588295220372366776515264855672657282239439742419575159488815719164473055975895443532317411764297534883653176660935357371180500159473458838231131826018854046542510308493649162574307322790576779341609972918530363567066623302935762657893797551210385655274494482263732751132356844730626870294217362780734810240170187068622459604211420143635763996827681016097240340500151212411820999843798904614367686334155246779953451482575994789987194364887456367818585378727205713585548601126769102205342416165416870821479594481373030389572649216869349636019864281551616553726073023818145978689526268112106009488202441069743686939931173354323854744509417495807663986209058095684750920082267756996576038534456178238209705721107009581008756115906059520197169175634722966943302541546266408615737343839986704110783162596759160886636570680803463468019666888208952606162909547893770646229230816597954702297918227551330640846180362672581787441064127562185551444336429165436042393872404666424544118198242853077995308658852326574605662986963825524557098851939510088743306295024797181600165927455817361437580676339092888597607385093708610313974776773455009436522289344245935754985539363554981719868695138703221828780735038204530075621196474093988231157515897531187957544944389709758794459625762375751107131705525507459055140443181548968747622236221648211197341131031235539013140408423459942129032704791065947583056481541825894292605676251517394520411123094233038430598898392665722653894981481951348325295292816287948006221233236478515355756847520601927261561486782989832432182882963706100602330800335995481760802986718941458013618788387592684893517943039885889890044006857590423246569436165561372270758473481972675233336008185691466446481417531785073329902299145572915999767278650484394456530333199510360285211373670852307525794780109533379908355593547497447492498505474515581512890005254681523467354197188275966203510520846645375233514410505132013904104400603752823547649447941591135830346913697177082579636332701684982093730944391724580693420597124354443354797138107095164574246269159216727431373306957774956103586446326707067980395698374648146898183131563219980820741106122500465790285901869631601620382819825065705474749989430387445226072561469578546274933989585802315960253114115397660580356134618599364213134500155339615707846746833228485342611398003237808080358047382089747198460340768819243754951949553844277049019820261677157790923627604593302814812875356571716532973362701233683128734488661961659541827670071236963305333443935221929467690549241899791358343254737612673437004481468310445761532119241087963935380174473131001917287001283230272215907436196011681550920786130252951460252824673808759827312773335394433548486975967847576538328700593390971627546925267480620636021619920322592000853068431795077959268766485560600038403753771413997311775155243191302393160607779014988065111932258935244511985585757688162735230628749987359194680468004006812648972540783643639452902074850453946546892142113347756303223277196277544875468027673826266521915308838673319066177071705251332952163623775444941954351346099420495930185642725886926792927857102153778940996257214776417412354262691053690872265060785559796382150642452885847246359740644648635692917783022589154472713159642801474322828407758120227137307199090434193443688877149275896974130229120058207103165221843072393146755456536187858086735426267965151155242418221255750769655054968494724735543068600533501425726058999891203450401267430085972472123649119051379191089240656112709725992072915540520330095377830319675817716742008991675691614169078074224704776178090784331117871699511634200362444291160760838197210270983117885201891062716204590237005217936250334947841966736601777179416706644724615565484316861540605409323709283879449142523991126580970368863751397431527132152428400008762993450262457958462301034128966390359759300609401239583038760452184747245073979490993089552271021866344284989834066686323887135764662451960958309338337764360112197417825264957479398517182952553317712931211868165981562504733504266409644266158592067104977433227401008036279073276715172720640390221966782950917975155547974322021933652138259588685415170915107353132867976314592015863009273630301668758670629752791466032156232985298986699097700136331718530206837933469772853237455684964932065594343499530309431899021722418282784614610727224027824439236179577163976118665981120094432430338099254017279184176871483592600372371431486446703604773068293302048470470006963961005832821804418521009322426622610058715716654949234896709801567859172634068556712447997373466143185162542905971079310073079815243716992281734242822439129356448231139707796424819615828351234685468192441436642719423148935175740469973780855246142403917694865856470479766014146925722014047376641376759042782343604396688268854134670102328159413583607556456093972586519095163309132323653606587141025812774513836856788172185937759955761667358813961001118015175998255131661382556125694821031777639954365893323167277111665528799886170556076778988601871456794679519728275676480403321972861979745376718817953541736255018690348636844413025683199640460157877409449579990450105530454255641402024775650067521346681206339097428207910069599175240092822821169760132027725435154910919918890624049201595554764555591755252596226641862393992480493711149564704285749465620067512741554288997993005065453100220170797063767307697054313366490545939752699211055186379498167201159264563517667081765748000668215519829278766905748400482575624309201643480821393601339725541327538903508717920684483385806577818226340377057537856034865997715728970459816767353122709938068347318121052382578042528046582112927759615738080662475067677826444407915950215159608761038310193065103350371452657344606357977832261714768774803963300878163455193709059120086564345137776412892440196115356668828198388891989256565836506292260973808877552490047863707213850408480827416359789208336152015307735714329826340558204722925133031866445277959632685910138553980078930381935565730662875761192616594535080627956016275734233902829320704524518585234606102271441166034919467678127751260695491894101974290129555389039626701584442438233913078497367569288220205319787316105266769886717074144663913653721333234552923411530827769071891913711048478909618724891199790554403863270002755348347795725891839841380727983191104890177771710358303089264724818174697709955354078374363848669689232577924229555574369280219856589064525725159678418059500419436982104028191764485321169566160931917563954996078582825905084147507331364145321017837061796268219366355286338915544689413196574032900665173877544131200222992898428119380357365217464325182254027695406818556857630057674922211090075678175234977555717651248350484744856642120405119369688878946080203092550318870638892053512977474689216113585226247548715918952096180827320831664006384982675491493935156282829380293201914595479632494196185034536946708135485339687005644160869682243978072459793446376508781581513927066917676618324654006806030771372269186468940388560680024395100488751213824564501189574758189713240119548425503718673494058320177286196805305322476234720486883962870469534316013159693382410124897601731952973767778042721598571293520388011542826302211221632451384554745283113470400520793211964542214741489626366376840580196147908916094331391280256864910226340426755920462283117035938914874127040757690673757567686427744806197301007714006552868888186838738426860604170569880194216001598177066727747988381806774662235553371066885145146299962196982733128581992211971841379071085142382183947225977367758914325770644061939765148976415998270130839468845234179340017633857997331393104059985067848511660553339554585820382518150791616441254112633793149761059148045010444433311710179105057355176284639941974897267420290577757770757821324964902487726463930704864735185475099172302597772081181287643543712163135371574348413761591184726837834985132886459806535860812337830972368002581671744721704865651071598808857664196116045241469519024097646491523645301639599231215149643701533816306092979786754573976961840959632270136102190302454166251074195542986305091161860454397670605159326713945032690036924007400952418823215747135966338990830994965790316963990762978838645438571360628959372715282325221849077647252244513064075962941330120400916349912957270116944213041534480900334716944697044424874680354182301542287956829539690715828173395082209637974330022838778200214997813578339627311832501505078420642311201677167796672570154298741882152928731990078332537044812902079667832579503960022415553979756571695035603036780643142951936726339195881738974134999713667389634821110929770866037104646408436797533324742523340218177835503403816700248223227965234396969397731565031163123794496920191738641205539962422010359640943809979718878163167767366417095791797690663109119560439709786286734543304648211966484718103237123334653693570337172134153851296182583668007851439554832137979836289246973348143678534200788463051383584196887463626609112312712202034957471420976315417890486347444722066243840649640981246871352434204320861098434353950472307052297232917239833147379131142704336830953402922241929679148970356450860795608351603192622490812054372875060224656019527246469485138480605927589054405300163432048652073441458300361376334436514375515848205924730839509869810016712172401126654511743108133354047148720588329096544220855579224443556312855484585628926560678343973046012955296016225316923843502519699465475523525289005676240440779562380478170106367094603962154228546648091940537254043569337883167620863140912013027415448029925147323748104947018692652713422564962974447706945227514365732616924612700173099040418056767257682129480160579660407428588155889575239303630947481597302023354323050628845453768877644758608282161146104609487558132278475806209861064673709000030204023957853940187558331569010666991232065382662712753319648612075713829941356370663703408350520932643008817585039956428653230801523059267579044661386864270251983540664550241511510513890365595380106347519564782877986768753418967942468629143317547799164404174306033801207691194690543365106677690957906640914047563110308754462493486048752697511017585077025361393029563221390046235392294279531410476604067655235097376380504042833959631161980850577453574649182467239352172264350747346507205038857831393785342828825744094095187091158383128873608515535340818927162387283760818504631294556616410287277956245578312498427505617053330066093400313595940095778474265538821902661102297741082751953554567139593363485530370771467036553397326119897956202798259415772620372257617220049530293661993672874458090227466579047148447907247425458352757781616346756067087125583599975077449678869924521140720970545047682828231512546554854650089735679165313270511776486825852551840621007027436593520750631616612542889503410379933842567050460943458127897067155425353594811173894324321276220343155407158268090908928950650139732139782378757276041477355908914659615082225627496934745709273575206826182367429719679397877002858090265645409090977650881711225716150431395867370838339221695806089954873159409423607362830628877155419619561469043384154391242735008512519236588594808824641621623687680183754599295204233511585240132608977527392727949418605731257402055349120238298164725622478170645255012155427840464779874233782396745143494255161595537095729176697643094531007816894834399840045623170440909073572302407418884672235827104022755298916708690393475609443986168293644034309777660315070906881971507838545787917772705084880387686943577782689716204908785963044234741359325847577834364478783340959092545449732725791980269021619601860886731922049922409112123987489930853939682361041787309485888861955986076975276295715364885706736858354539742164954576007154803296259087611760690688142684188824305146283217467510608476733696311187593771481251288639826900813813280077144692057342798572476355392735320095017868876383329795808948461334733990788922208846596711131175293855365899181162339177679150466466322270283105967658883827834596489741108903802957480193032118949882961661360271497979283525984811037535018660219559853487860041380432049566863346371034304396463171825637417948816456688939979587076732767697247624762315947845822031321135291849233859601384272746259663060017920391230453274600466419961873043267642482330317832786422570754880628422866163545964538607401095687613209666856665726219996438331286913197021021385115529356960220531984521493355140762033961341329069866358043475460309407616591337018841015954070465389923320593725712016536531022917802633160889445932511778651072340219658636358482706820721189643609987701526541567539295876203705674221779207351935288553104913549085716435330003038878825951770992547271290026851447248844629598577208159452775223718498074703065964985848697783589478733520430807584441783742539394379303101104703473221728577966048195591080352332533278564076938072490478324769395341873563012209046787194509721688719828715225998207275272926989624573535616700755423978548581476125218015411486295108934026276565793450271930940975549656611526161009042230807154913766117520951516192758463878153852177565919213586596287931576666045498788324908126702283529269113951921407731541603920611242828873256020911429963485013972872690005303013723090694490695794666802708650332316227597764209819886875713947104931424173841310990433095519135597121566609518505219374200674801507692963774836034182870828297959172654972710924080012493996796272313443422570347838994522956032435976570361570653778141578011272447167320485738555631569198073430036714567414512497619814340102463817467117882762805364991412246191589154877546902968769369063416595650153692434907142984070665847990733211450137778644492088002932804954824429419423099361967228260019005972715735431687907947237655401966251319012716832095428525063127402625268092664907682578225220621777119048010828780641041347671204440160571693790991241512221187435203970301918978865113012753530360947612542182775752144690077344788494740668248010414779786833506113144405396808061043367901053450751016802794757333470182836021679128621687208545818686661848922325078226336680729842366141041991040835493214634708909060828031055586037643110495200342088577645354654608970841281106229147504800755142111096968095430378092676200721719866366691120854636445600698097539726010389635547887220455973458388357795691276302086886363426751248446348409419316102441583932524562911291704303130899373585687891887296181194907653342029290978639958132468880414978115932202258409506584723218253852683808123052226872117262364160004591653619937878277400993739403107541238360586800084330016758980266167790007058419349689426240546782651142221575050109917436094392657964025182945246104898412292862751325091441939398057240709384015879295309986994861765454188466319866562385338817118660445619146181772118321555324009885712627383473358897968007248794038820717349272371154870799272183753389614153590569656635946590051713053598221524047662307825903123592203818369431413940627995994827040509283635898622738952660990656638831032871941729062169661228887389944517990734330404257189958271428369063437405688407668925011236454144403409736890279272269818591750783000413938213702587899420487256955086542041048007361951063520981001083076463763026649321293586701684959041095204444146707100071722308813528774237963994958707782968777102951257544226861018658164543082752824281640672803180874485555396663205741966099761726866363922564421508162929104927680292268566922302899432987814647528938790894601454994575334409814355317302881713002586584822850896702180117338341937584496179943096661065828806261659371608876976998752900057210537963770149856234884132864105158905793973574170254487853218134881724404437332328251322052641101573424039655136760522700599776627330982966363839669163242379504819040828556975370904959471020004967112531895658201744181881313247250129244950182363828278178886918211490444408477461063866695675686113425088605883827839881187506137370379137263281158081626997544191229912612131961229761964543295393084028994712850272345300645895801911994382165240155241888699109049201484039470930598173142123465059879410164479935247642639853534215443544018345200552026611383643380292553739559543934698651850192373314007806789320201070160508986631583303889456692108355130605162566856635101880093717330109855217422293781923312057928315624487996303573224478387443797157447747487219068910213534199436500202450692441262875936253838843252061724759720907775220960534516708013883606342025442169526119926212625092523763608191334081765336050921437205987176890010426480804016568814553564309714792904232878732080993861059831453460165543906462322327728353097150561445421488444966544569200386385451573070502991811299342955432555797401206699222341515443134700761430616221324743870098691165221494633775994543405487017512334089678473965117478524289817459349814593620006961655155970996306881103510428873124754327871095568888307655597655735194109791192427717686860874352501775221275593181861470395028903919818730478284227222223996778580096049077029408430209399098381802132478522032757721266003292972852206520652815710038130536232432133378465558287376118090345633478295368468643111787447369196534503444444701428502930289710445323781239985530495275585657779139780643397549944616697623625248335961933828463749658903739007917758171549656936313477989995348387306233784270014429863494899002533173243739650967394745737692316518645761932492219186299628663112680161179363743187770450315021989678602834140151148897549298658378648154430351997107387626109646437366875044485340280176709311638509350663967028804429440125159109992982002300401327778787377015835116512340410394858725087430763658819012727383217146540407813557867320929756930802583348448688393764844337297408344354776269428989855927247777181517469981002712894345459208562480817093208143227764258656504347353250150144677515826736783746929763501940321412946671637721209736448926858390367171495578851410958724243083728221857203280781749264800667347626961499260777158916096203726016578699664569442666930848485423294298470080920130921313626056495739349474831989142695062357426984143359419131147771823586804448968752354343823993483949354909831619251179499327691510386363839932314503046475910080312942077158873890287744095690777401494030295952376839497309354265387052020099886026784223066930636572196204638219094066755415872320278282330077988608794068627451893969833027574894255350389389916229017433859779812052713278400036531507483194133307274982174554321707440294657020576322663413663391171643740099186537926928162268882666937801103756906250409459892253024146366815302592104957480093386207784573835444827953210138942401401021924418741636039730328252050163447823747000200840893590214225435853898563667035823088573396833621309793263790562151465819513566316124768314271858613065186089435508131820185503563080221797846649857740229310466702434217057173156567788179085373964343803615365838959730531302737090286585640494163395265386569078216736252838291314646303532148423403000335459576878710556119145750785188085241660153651668216725830781986859167638032584209299712912005900596911736648593264779839259728890519144571205074335361208797628770891712644694181591555542418628264440052489454120871292081952015677375094324010217195855686073165953493641567424137806624895098914472009086365980010242790610230833222356625750276388555155335405756757460129122178673393066347285934469286430610780412343964971135051706114622586407756008140677700509741784462372421104470971881689541322945112182102432926847727908840449180848032571370392223216200271463467189085557551664357058336324536183418848301980104210216234110687224707260562921767383632262879257538363203978926875864766780492834291706175776238395761015168441421977066324298371336032649365646846395101979808507500274772334509669634429986285838053866289366370742114517853511639684814527033464030278631549509724721960238581321719643709012102135189476042377697792090985835758123907558534086056349426563975861370519509708624779701626296119205384153156149070009591705508589207934901805866020895589167260805903615371083110419780530795561288335386001045034478536959199810284318511723178281009468844364470990627927624395796851779316256851596042276205988002630844905024299244314986621285426199421896703256578233324176888917143120234110085371543999105868093231795444846715721995944126421340690418800466511039935903273147567063814685140838111003513416010213146554384043431282432048796955894513077662595574947542033367883239538620877659631466649205958694470706244614037304139058088326216878172448170946378618272317365184629553656868190476762374386958217669221698240746142614644896504215552157786882193436784375952820116821061532927047874337083880400012816757798178058755501807393992771281331264141637242675260926238372753203257229330247900136432697878394203379555300602121654321364862362735488364509620098581736501594184735459483086315068325892168831800913582705376361384909060326689535746017406888781373804679539090874623473925427148940962511851759169281119640453431449816224757943087647208152222564524720164943284929420150611348583359664657470461527865414849733087516098858571187910124574353303681079830877453872921818410103687484255896951736677980232038374131489072134349182040884475842027500939535114487253163033912577339924116136962272235487586652807126257360883643943660398847041543259219567642039756967398378730759426713854306832964163264822748745346033056419389328989781711040970168801310743878136917456425809489924365111016584009472696051906708358742462444364711673739247789440951553177641172307768217523077172172129448408030509841101867559697313668369487936818655244761600920630325108133452933185707039396341277995039524653224040593884302335144284437069698952220265105742885298583450816557115089464345224599386336782394526459901962582290479897277250995302090362092504818785358274965918887149307795127935379036718170809235551004537117759520395365459966832663849204395032273572241290924461061430766438344698445552884952630646756162694686686390564232687582973618878385269861049447148921419404563752598201027479355874580605908339331410508724199995442743621143742559020352009103520706620004804821371669122622892829361160402238495687614599551944345069629599254401328186146058132332699788731401608127519824287331436993716746892906016291280582255896926574855555146303410811480700201962907853850673108916470605511158228646301690258685958255135107176951273141942476787922433857794285427473863002968701108028515239222854338562201877636470472259495682252891498047501013796860956418621453492739377646194398060835029569561141608625077013587052815000854596945963979525381501271866935809188469499814975673653748817611837134561779045563127466789052243874367820502125572119895736414505374990334683801356363529202867341172800477557619358805289239709598689847739253552910024079230219546654321657060979618619577406273596960747475258486188204669278979148591439105220326738122738348215203882867540703306088058493342591206310988325435846176118469836806396673118459814125655455180268241330699544032563409542748511919268911314781553566730153582624949343750957969107747089223221394844429271692910391334024273440099232351605984098633430750024329107680289924248748527954288748659146345666442882868771509233827511061607969958156242822665759445419357941484623756994160319241577509579249294454853702140054789580705645354798423492178869327346421159259665811734646255197895862743793421127805184786266080073861925440668835184540443935029861444879199088808239837117061729709482747558969150868365819418527713408629035668849053338820378175663092778238900407775846956597201941608982773103687949049425117743188427241010737030540776211509679420448839084196159472606780797783821164165245813199916299657855646742773204541938865991000006748157768992699918145803602881707542860981145553906417085232925780683648506916707710105100754304143937256136184708558443140480427219165103811171118565924914201663957714626454308908387008707757888039215282486345906421326321694835692546126759241773677397349221769009985043775397255348984820386782865007696361198230866564848488089925321356949725832790971725692129567867845779892208411193886085400551616722770415166030078830482117323981708508647072878244568004436845752257026111616838872970793445989876401518867959078354855610119623118752826238961266784555597754884560033066323486155631057982333977333752108081916225974576343562544750728398990432081150465967402320487974508641140657562737012629971339247719324251214286714016303347353838741995534222046329900921244215387729066177702392831881402670065128030944368652068771122824167790801299791674426791572270974220023300963239866701000043171838250311515631155406787110623882613636004855748866982043849592008215765716107233887152823132027286618645762785626837269849660229942253760094954705930562461884794760080198604245048967404244727624800371809357340450704208550796353911479754902281499969370656523829680243979252902478104644053069182783890905020294196331531197818242600508098766187108738034926554154410446776087997238935856985979822071700356780768345794066795293172152712998091406279405903383328794929332386392781524856152993926939173708364412767121539757689710024752112000697310161210499593740325213099860127078255410379271018280707359438785732451945811761788322095004702644883561516155728195830500794576592608183722669615681356735975624101942154432136449476259563022254421286461828063355097430631865635833755888259660698322938526062215832523066290557060004416741632397602774171949476002146838691911028387775520367714555074456559137376120430687727823204718355668989634579777526393348140543550595487733881484985376287885372704517325861607203620101018909553366429619515400157675747779838578450075684926169386787528551457852035308402682685550620391411258571424983454789195247365466870533058023478377217232110244651104280078793481009506336711785115959194441414462123816474741320088083094631661226959541786124869636533664774050923491509812794833102180730374054748155483573286233608183445723728276814186514867426643062307288562065579498992401894354965371957168965116506701817144409478693073726996260808869341939941202002144985212202871041084497433403727353130085465505567118717871722696680463380131102289165473511349353888441641280245026969794893050024233807874372994278916693661634129380776596253608779614599418499466372811405125351680716768778635949346367763690370737539732514855112809159271975053348087016908052096675634838063343139169979031743604861700095106712485036731866776865425847300975879380818949660086135036557035968354131024289633384952473926981706225321915334612537559293936546245312161582358897359737395039375809730044201051059679234212685277373899181099277943525517220716489005651021084988567455093062710552050635008282965888618196932020124700403647354066316165818704252472341263656935004422301646814348906644447733045748364830479379008096839970649973856798005159591324469713332186804015093240831095358095281863213701267118024426357278373334572683255163340684772437312328571313274875329381449962951713851040358227431733762133603920957408001884809551848675518036004837701020131661730293755333508103693744609848504119505809675966430835867146514496405616372465211294660215596329713990086349261774218020124639531562205423434251301624937728548014597144712227183191101744588455346822086897422008750841070694109953236157091033379495836727295678153592931508781982449387609681921025865946747811571175757046034744828815820109825976750015621728129357636827674350777448422333887634683115599122508210740063863612281648657437436824825311721515926611551201890591405587368139817576188819668727566481548565012842889640483488229115403053788013534918528368728219654741337122077304001409511797956925872703566277652891619970705012472865566353339927467694475133429663946961461037658145795239659239027180296611170555591621420423029718240783113894512492554642995403536643053805368490268045461813416268587449044981651705477336356998563529056176127813949040751809204616936778744047752300497317203971589292142733459506429548080873476163674782929920713562545370511068546505333926057551548132652089212612713094385436405333000351482295347154723580302857536594334721754816134280764543060960915898167228858088434924638946154901210407247830557552129842261576881147290635467085808857082581415868237507284301621786265401250834241442757502090796921671604280451257845753164255634336500773476178373776685516058979758292502883341508659230495272157333686501024512391232690371590219897098875902176526008160403036597454205810790646943062057871299262726940262497306493486082889791695103762788528412699493932225347838900689402210254185207801780828608390640289278290784307612684593422151721133181202440689771832307271931814580117507185856429765994808810893214598666555656155745060664746856115445484116196056310383571758647670247994627132284376390343399891177540639866997219168396189128858678802729512574042263217574728483148836675452887235519319036907566618259144123039350609939945536679135591309064724070782049328717485357408800802243974313669851511710148662764043077964148888130125752625829086133830437572266708445255549649337818047450095068884707499720919314266508869349328651592080255350111680383885238218597378061015653963684350519465663203453564556667454497227976361456553633010680016027433847430897110510829972533880243894033255913835261393655893244970588792914243489280133207267062153093394416051316582776632359215724704394042483646074019614986086239166431362676616878005962983133819261679804932433754007368072340053813255441922296451157309234445645233250202207543385766620575768807135405670833895132080024329171266203663618799055693236756229970748666385531903137355020115201550217405709414692511697399660626126356785738914354900599257962699814085093683798984023459434973682479400073927583622230244506274394085814537417295841797179625466297849969196839636889972548748990831702389542935554098902102827627751589959012321671684673312076960178278600539957231257242190220776597886101890392547092011901709094310821590234328012554618850937568256221075305048634924998903149568864050399593997952512535631309504504124901817680840722946304080638367215255834846082080735289367937465644046660683124485763407798241200398452176746488846034634501541733278616069275259059518964420915992058195598582139512891024048919463604822530183936330460064084841752462129165125102331146216501818685768665489713918127836440644942178177695153199404105967391022201577800422817424569298623120686242343591877647603693009121942023404023530537122008426465028373359114632808397655593659831520174170349694597990284212996194459887641212021905851408625482280454881139505988043267500109584926468669695518016608167125392981993254112154368752316038927367571126195803690915024294085214324267290458558230022967985064689822954811444195259740729845204781878041649697326135366881725570037683993083663561659234600096149886649570363910928535716700130838386503466054468849236750694477295413689010356378950074457238701671377210833893696290612328037493962950748237079501045492711572494584958443820717688586243979660249886647507183299437486497512912746760042513092934792963457349994514792093238185220208376485887268105003475189070444446263564590815170341294535894451103481448647742466835187393634832404165376319365030568739147540754949171393772526768120607287840307101866048776939019308343480994779209376578292652216877791910347297101476365691431365993930410539075676646455084130602539494933161470662742458104959687016791225769591974058662617020771960615108865394651778088862336288494704792664013794190627723472989438042843872290018061457689006830021208753698619269045016504158118838487044641999265191042011933135633911217968546295637119168686058189747832021994257760632198660154657511411041678017974698663875921439210590903558652771681425181704369889840251954290265601017873231978765643906524083795676030984371266016432239596544487362239692488221455764347667379205538772986503318010466682374179191612627592270192994654235262665586769269982300166444027761083039371853914964957971256370486742845165188997439830881171032203644540585674807154412661989616551900631772946654647327066139876034190088178595999194365847112147792316164923001140934848318399524309529435316030185037732020771411548595261930841297218361066544262569239044881989872446345651414089063120922023973580594491225447204345423218844433412594498602113459756985009157349115638375361578333210128482841676367578777102463523975801424926061689794661911450495746247893898930614351735602677315467637963570558763047237194877691507322556551347993131149250684872025946393557709488486702798087750787475045072098547037680903805580867043147429871437003399362647717773486178589791282973670840671354275076565248945402976463061516664143986528805121173173863770025573585490046863754295635458312063326312544568206979205010191147935431401033879130797600907156282657039406482703222844046561447074845182009982610035601883972150399047471637931742703047789179451310714233332526618442816529213806148661829163937496995486251667750044353665192205680277764467475148894984083320598342548068235406017458036084993580711700382522926223195174961273732421274255354873725840386595617184158791392901019837909439443576500113423874433248563919676064783669005749953583018862682556428113788211380083001503370347253208176859193274504241577721053543366780863884315806081694848582939673033214759997038852818171590822831797528042181684361685533604147803707378495572843128252508079301840003367544445862366787944042902120381791049950848308547860313631177615867299489615730707773034207343417744327464219316059999295489641149060964746861355893227409422984272049948327466060747382731189388008433078340566615226240039119517239707305888215242451585541626415442510926450372101912284140647805959240021409952661533002557625499725326495009587991545367771288149948024020678309567037687813143258775113768872511590362366496026669562826802595444162568067947073230224413177691628095502623073728527293426143048127847310150067333098843763828075758809745352674063903353920895518155834829649433079365002623609823795597419366623578937488665218208441696708906402167529610481514025538945143275084969100996106931059925899331130024285963908336729711286283323315955059271615052418964205618925757023687503354549567295462501729008904787083324581254581063196121805873320629523057715384189343834537867344511056496022510031688477362842380021583010770392249963113223938029573563586045759749386371664034468863396540198057311027260014587944725397194478742227413290102750931168562379279540693385398801320561646194868395911023181759800728411171233877423248112548033530434035518461563606575045309911321593755291710694965308057985345680066180344740883004003055509537234954356187149057465711933730072856060995354754443702049367217385470484478081287107210066038083654390110066860777259569390575576510031525169398125883820437619511680032290171465591487387436052981790298590078051568415413003800653359184806808756695517382248756086186891529140534458565674011116212984153576350721298336193497805766462526839287070802725415274688873975817387428501316464164487358937822589288014248322384781349863257107447127808786670379788990674143760592475432523803531651822711664758418833127409089965088364232320378929736478416841220071435224235735387125961167457665379558521332762755940103142254663925119398676308900016652004706329529396607147892039651302439444726175820799813316141592642415306459257286747658111338629488571758684892409788560059194888643824616074557203861941964492325499563136282861780185036626159790966948646628839150097110786452027698214335115954706265117053110314992694849511717069834713284684711224534349938820553858132174134713169022302334041833558086263382227074313876538404803536149415011835949473067540510490037692481220212295443649729327871729691127512484404274417886289010614017007922343700976694554385509230819556120502530059964357550763312645984689808100441767873765942903909913996832788472979527730964443089009791317012163603711799027666765716678444543171616256333120290957360194246313444130614174897958110002875092625484329122847038958646346565071864802642591250597711704468370372841405508846836978837366049193540460074457518220648702913015052361397581589613461764705694282085413153638016599268268186713491403859512101642824970412428792769277650862604626607875211771510215733161510508643331380600153490169597933405648967280991759069127361365870930424480825496966064282873583793372454565863964114825821980159975094479568865938043388278612285877009304771266610833709509222441880704029771099108415667537931239004310672785345746333052283651159051730023273489365099977832232798220981500116456852744944079099256052581600259439044777267842041007280570976659141859894293497178218810778811565740998463408785657463671443575047057765298390846577244819711768788879978666820240213119358216586357077991437935527328285795655445503234677159133771310960258483975538033239721716353705049498472884270275194605980844470290982183912804041108034412950534171437942230870425916376684848388878036914919889341003400381423590441042187803134965380506916147956007110180782395625283203242105037788725765343983547444865816423998295762921227515532551363540356881306323317471524985317334638573077279388347486935310772939063893792710306527011848484431465057054253377748850658637155981382777508078755717723395213077884913914757183864733441699838123272238208184743957913628826725282930705685417690482193920930775773087066996370804352480580812537562616478091297470550943936789530058687036609700157480035683389129061487043486667971903795559196205926996700629013800532715096527278707023838636964470185595591492601167986397264750480051105743872224246636077299974013884619069994886233597741697611553393613083054197607253503751669888172003819697231407648228175015360850188937298809233117838024318914406382516678187270781861503485704654251453326346592465532985527884967140183396430713348674473129526658549749174659056659989477312479792677074920840413041030933639542183864567024878400486294820889160082558406461782953517245742144102325829420683532919217877508872144297763282469975661354384747433483730091246259072026957791048551359834697416914118924779456168184214608885842975607035978271874459666078077359742646251606137669440318110584343224554446056676265537141576152652681703941748099991083291591328863147611746899029953402230090684497353119778797482218611826623837706039417287079523424745271060023671600780613614247823741402974889438642663073167837070664082155518001625120020398976638928081537842933771998372321508813256330689580721749487903379856397253130273349151777420803938599802236550463512339537835706417034606627462872929849129679256982855586723266883211304288117986826682477949843738579292747733970646704085678586726581617147304600731867741481170642449700155850962290191693120050688430348122817957558195314328962017678158408998126875132493815014129898331293809186434310216660697476892801279655069575773767287330146933927648467585132086404447693641599143318844154216983418725897635021348416698887959064540962603513798864106546411677461856534138377350971514049158889786268444002688946699573148706504874577093264708383669992630815224470635803188192538490519035639868105126047338761188184327745415126033631259477007527399814564239290015903918077369690291341956725252672540844865131174757585162637592916486004837288667877682512356242797534338632412457022271299729789199651395421802737052717542059046072277056574523072152594853566812095791680131679188431702964694512715099843829115522875481510526725666784294669176086416826688066613313567687288739521892954002169292999517144598817861471903844404626186814033344790790845756650135304226568878482819183451912824742145720196050353100723756697904717423925535151244725032827657254452470219629518001187956930122593996052901632902405333592988723007338375588332667189082083464683851063042106710657922050084407960951923416308030406826157717918209537535882343786553890050521984748793008464449560112213556742315788531968711432196426490640682692083606948351704637183947939316408722569788390875731349857281023451038280339671581836297166079959902764628748788548058441987997640964668349260577541048256257368551441094984658159852087539909100802897815138518095471711523726011832111277282234430114976903625943714753676655299033819451745050338641032201543549878590129907089842094126014083157504339236163949899828429488983898982658473541175434038433612026399870995933766150971407233228472432057440879230129423658595097768993187565382785230776985019979345558421632794696724977999999937079261838917929536834109768947603018978607704541699121982541566808411985451473166074736598879414408325447442190397549994855266460478436893221952171846613689153590314727064741997035875440697344072700925971666215976000022530867382759229222309426393487242080201535145908109172447027888198200561361068970027950667169567125111185339739222384582619238923702619129753476844299299456627544485979311377986841991947234805089223996333052756603200654261932718703133141815073722973217887844417189870096964328037173587624916198598791690493834150522434284457945429166137368579342978966794926795600820566277514322038598521742611746883294276455775531150792462260435050549429429597401322232090261399422233166952503207128691846549256257975987948724313905326444389286065327846057406855310183694749298893909302144713529387489031124736889596375858386876485038936874892347872591512163116663404348017301376161418125353924499255613366039571704910240476122954963914779868082293420912655411059355658080818285900175753498888962435592817143570297945711091227159147538804332359739361414004263395077584436284587624090965472347310509793987213519445361901208956587269916798729846012767704182641437941957636867952318769387324527939660701174949409700007499493402137898979608323903438222220906109332859320014332583229891227477567553196790812231241403892016500739296600701523604727658670855943807309901806651972411899849705771115658968630291755150500171207540852150375934961191307949122078405522230525690739836542573689910574516162924671684137645318545840120050366745923128659185755967673436661053733159738243008898382446358811267762282921892106790515471166426836174006107031879848988775974081831324924339752302612100819876658416421502293374736066748373799371218729517427653589152646261936954506609124211576536622749553558066318356523334554443717076369276418588520349424100303144207159281454917713162370509645123112920853121284394622138569105424940897203107235386193059551577962174010973756654600771191862511736718744090617622113759049537956533034123287467418113066675153385955403380325356963009579165322068280887664209239443162998737215301412954095509399981803263626822769766830374373161180482647793566870278640885945211449997509505719792811323180289831529710102404837887130476555854456930913270814851387441283198776853921873471291473926979051552889959311026834336131795564300554844281833997420661118256244817070263485685333267512477261243793728424608694494407141488944302205439051665514315313625510141798871433726275565249169901441508346290277717697465932156371763288915268507190167586709891551273198286477121511021212176433434702276055360686002357972380524280485199181948519437053580489849245470100957697161127973048256612470386629686147145113215898080261424499075528730543743223756287263532051871545301130817495533288787005635920345408797102951806908732904240091468308848134927992696547264997135036880327853828075106758088670266746045048552749286611798533534558748230066391920329829704334208196331038650808696025416073883246051699129304685694279401858533164416068607802053291285380975472749048530807008027864386209809216036655995186255662447775497113613782576509392069269269541984638508466654075530513276645659940886885116561996573263734208969712718332928267649897015249532052029306952718125141138986354483572171764447338154617492688436831976315201339415650993528373505136292497298507533163240086540366298024063561643870174964143229596471099448573789421096180290626528264202915833009686948280568821688423895408957712227367457080589844712217609058620404748029142640572862988715327353064480281843518936758081645832875202597261423072286180927945218130178841808621436958495132796142263279896849375904398350661949468256424388554076399165561159956984044277400308560340286592495031575885983138276858455081345891902064769417669028745956694859253726102313033755507759613381041078719823966275793022953629631069955250905329149693375962980282455305450883479278181344850076181389698280307897804256156708063303383095982193573416213543826746546365387248998753005310893588364458076152372815707248678022530617726705143360859410781962866785487048111384064191944203018004741988443031855656500127943349245273620460747707834175574703504944877423581662195752052388438977342598105442008901685304571822043957728819528819951640982924655689440607031028207531856072454359200314448929972687530551647422375923825172444423703800495854495005414135647542637798017343921220190392702149628895303962522316873265725897543761359352645312721274468935811090555736045894536589644846901284890339773609911904977765006017225172462504603413157284258546830988770524980095319138748972991688915230907133558568543909169943864691565161049822862354354213401354848605627270656038581385233745860179945109279563350493015034450473502024671138316535122868480859386980484729514344526319369123197654766486959192510624275950960711914255476306503742538804983560736188019899244246844510291953313532418576487792483667050563095813080076236751853051403159324628669858238015544777583372935983984410891193997844914611899387169619771650005127341065921340721956887122379609649245990833411226180149290367861621225647542524051655734130684943256669685343076041755991374233740982472803745958539592873918914858822542086558717704559533341245776165883786133956201951667529947727148414561588811337445155020398693165839371474729269620310369499349246898661098257065166048772698909042962430228310885451482235034802877724788222985979625541799571123050490223085259035633741864667799228943551352719152991558393909440861520735040560125920145724689250846050917510456401219316123278970340716055863191182509661998661981152790887923262665801864951305338926441270997160261951372864825718625223221877681728345396317115084589495151728805943044422821167464438466566209144200694127744379913055954056659370910725546568207550068354085045691665525998214110342032986221429425370464081818582731555662529572439734432403015424647735066729018155651365983463587678037968767807203479615942652783665052249030852382872887899130473394357221010211307555268714215218465444461255845331633247663047040528065514099168287407560353758885691893839817292174517516902569185422637809850044634892376746719481502149228723237919429841489877612830653144507333287664439873899887888462582614522474735470874370542061679708422602382668258324558794991688810358542458240165984459962376182598686138024286733872245530671355252277279552084722458959990132239989889469777243184946308067891187463248920968049785832904858644446575432004493220814541771203125092999531508564078731530460408603433948444828565672243123170811112657486809151183569245009063488845109340878934872878559845362539487614573251649518338548041034063510288706749892023754311925742734753777971954878526336752396967621380357981629497519804369931107939288923995313389386366779155112668898090070620527966792944863558723613385873780672276699006552100469446291642522666648400969959590081816215038351144745805042626809364624453665740210032826167132485710949075203434081338620056233387921507720821622782737272776726212242807790864712934185372906165823223812906524149676413855166394488071360042452117821439628365278774716292698756229298345616492155832110052465705417607141237482044611820248071691061592498635678206570995373263974516944237979346246659073366482200143465193532038670975324371028337613859223779399467190133313909992348757424579162873469472013281533688820005838438003235121052379436850772878194193778173821127706358126035420704675285295315011738624746812522005395185244380514000560918059631498367002797429921338472984957380610505310912228585319610700953928247643834195317046522978017699729016079702643408200047565143314238393505498619043407263791037902740014363551056973718509465020577252737573536229564401877916045743489521609012179563237707819540198317937128992636887237340702560916872178619099610567964606996720750347017195795530666099224597481425060864175111538489102710105383091285689271968689323763345736821638485974822595467860691871036759980852631974208383293742288883010708793445184734233189474433252435137805896678722386290060077193092342352849456215046696176534687886831166237966360769011368371838964242232368677011836018275763021068992534145904031150136555433587623680237888557558943877421629306924727852147355065797910872623752154708993603788436220548422849123574260904710744103891326522533426612483791164001837990937906102316443674886339560402143809684271569842864866889753632195749307314258538010583214424905512706953063096173776896385871533517685424015600015193115008536346310681265753436981462482085822021208096997459850085077831470191036663382997983160156782155585109498775250545135523697951672626132851586562433537464529514676497259348279945895402034726322913122233180197637984206146377106728677720752272206841292352233508480026621667270513319883043801067891378535021759311091150231515393361298652897580401883588203369546719531122328840246405508359713834746343443529240806002834679597141125351671621767270797214572402061030960907028797210092488809866981536407644230580055359666316356648607198566978847821544841808265231140790433208083557146285132805107640838371437453007943811638262530743405532574024710399761153962371178296312538396852394115703239960080561785767900729786395021604028765717346224189565875593056923643626144944006663039771774276990458089271740411724060326585184020735542619820666779873091349151262333299761360774997855628217575383099360951750539434789169013707052506852739416239252894953684447148687930919566628575784544667473966400329501080588816126679949316218898153596910274652671837441765090767483101398208602372271821695295251061792598048773387720933842217781435861459634014329196537793287900740889352850683184327977299015533839072284969641137889907380331972610163779696673942290111044751360523690122243041720673825307275315882608954767862205457686180747919412028257653149582318086835571511929527826761179412022751722790911598793061099938632420234473230224852424510049326833745703726314305518251042849723739008785296605964703643394982554408864703891352090111257181736032722223181305317168370481470572716111040394959907265867531264743523490608394864952684671855621102576957183795991853354387052360131543876395348722367315638763691533935172133139191382377325495477428889615859534346172706594781415655134661720713194831315669957831373610397383390075043397200891887143058207668581973359100500062864710104915525978333535346821216578383953122120244634232629244999745079278055292785024356704025864507267080787586797099814084079419114137508551069786243397541219898889226280711655013035569363508480134230131733316974043590682894747057356959821222400476128735789119003607587248635381745160456666602382809628673313286826915961575106459898091494353786322810118389829663629144078163875829843755456392081548862133733628698855524378125870964441294907375759747630913614129444249297561617060712111282872377885746373731458683291265789913330958715772153485662221064754359202696829259118027394967946095656796874783910852686479674472266911314351515289591517253451676838526600889852755584902594097507587240958588553129935982295936677328272922595096272220429923000819494781780126920452919650301177691379125121460822749369961274533925606555073682590190112348249601886182885046189882131474952515501974966578413811714221575370896268499708076160164862171519738464443797530752230546474893838196359119383058269300228212291348127343052958929835185679199806328706047460867875709491715629692230759705809619305543184951813689334133219381573092551645735731852556160658594331205219950257290900286249820676287085795857399513415258997065421714067391596709285782016613333812334314985461495319324710750343123778026362621961522812221148629061125409505087739811299927971440134502091929618654236759928660736298842234058807868668305694145683789813065036056968583082844174838094801339312235407591030271552490654989610015587761619395619500623728766265879986986548539870934447004838029596021509259503586979848673289391378829636275690789253044936638582706064849495890971019836786182333367496885237708126051649946350539787173526573508238361335240129806737098018705957444977855258255486487635020633021013814676413115717389485293245124722900963350221084027427871552891858745672735449365911110828701826137481290313387655955579245241199325587124742963887182792986464306890973805035998425930534631463473014199707080106098936685831139411066838840472834429003770146928048965918035402298295950642739899450999761845045791190117302888150264844742971517419601978828390891741622653109775391559631217091711624468892457210635298933922922504916076014152484222227346225547336491767966866507790727572840789178341095453438785228673151627007274234507343605119629166003414434687818937873351310188176300370003332105921004511054889021174840361108891161929197749775950659436566322328484549467098108014944488863175399122392135348295261353268378358958188783541771489726833267675112526711191252701825587706984498947428277786748365269361095117456779412677113061878746539765003216387386608848953386142716887692357755936721093426327305229860785610266445240603106615577845695029904282783741095484199351417294595975788459208654622732654029165038042987236046264636159434466645190773433398453325222112284972824290270063183989852553039369127419788449700305426400365776333638642736750862158299566400808020588533724321655269915944373739846498539783156088531819935118027392067592472599611370710110302318932395403334958278729931856136842934915649004529123963680894959124822497399572337077925269050479840550582981627553262529170483498611496030131954290090478616009499103651791729034282608699273198163605672959585963001812921308794257896305777758214859080210855948163935722705427118542974517715559283762895579791130935025215254245648649266685727052905739034897163647157624724323570562191181285247550273943718429437055830645800181302262684607855499367251344887656148160428548924080313622038254663816701459006693343786449142337768297481151971111691660655369247873839392147687512180696457187579676952900599534010627175390118670819472429847593608508233813394784805701253838235782230430930184534426571707138183861415239903729783783775181855569167950609871622535125087521036844257584019841175064475566708786864104137261468742388557977568723324211137037500432187352703115687645474822763149274724138225702521327591210026669770107421942765373701784905737043516563343028738527880969381220183750810250428382597030042103796084342634109639995310532056736500506226242504254692063412028220222209349262746616797982820295992424132207886195906290783132217688961056168564618818067800413732011409168676598221564017585718092577231567656319697516640759677382141915100285059838884738250282486598810429837421894464610539145314402784499721359297868831834763868874082201958923371992321747995265748837623597011678461501738831259347710381885657434377769888232856651103694228357110936437707676197605233565853689786116951297640312462741362612073310721219351617769746558334218871680044536373794243495991671242606457061183223140194452479389201686825361405740384913092695532403719429268874519079856840714877910447398749610524784294089960057835406203150191784164757417685558730587284897824387745681818114968140395762917321478983568342512384493357885142804310266548559875449776354018832406237675952278939125276159106225682512043999459154597407523031695235384052984638312177639382188242731990365429142422491113402377474690285364421262228895820884868709223873865475770150770289306232487291262891909253806822729263245587334432968314499002582421051005461602990751471298777352497613516393903165115062879270133213797032647879610630064125389591458115121237363957402955140817405787418637096475037087473359937603880769767728680583640396454073746330677690344479770074210405154951628756201068437846235641471825100457271981336256875877140897015443968971555457618479485151178408762572621781863920572063644110050887515645411180247458726492729534248625454057919724771474004665350750633286981073107557420855536231710125862112161127119548580350337879682562596866479555794934480784701725625227392822786212800245585482473148383903231394575466593669950836208080261377331910601837123794986564965947198270362137341796737704449572166374015490622128162899412010100867737637776999440514583161173760923202708051342802043827558907209027415247320316890468383553565899495564130583829827193756946768786022506922044270263604089760368137976347802817566432228593566504584670210144394851292828509087424201537057838248291645391132611817087176517861778365898700550083684846497862378399234523809853512289503973713943670726112141065858603347786930724304615746811881857287440654604099012533272942058154427247334715410833077413597710357381067512651820602579565607912711081256561701073959175309317059224273357759750628813452775953481571645107678048997170353839829899776090800806461498376169186539445128968482693920864051814491381941048119720422648877441037309833233447850616733606093094836168581260063056892923752330515975340287379375444355325054668228747890483143944103567691398162597163918811389078022066885960929804190771053451365905016916568993025306443557597521798268731091551673061965072211932174012519309126488906413402758268896736590612945882534283710174420991056650721003393825753001607149208752631568764574335817620956845144642845696423375222215089923498583311303032589732203788031326829441027101538755248096139212463010898908964195935188109070367740963098732634018913180387814275026922241788086533361408636244996137502340538949634282536904340725031019930753018707816229042461367411265770562948983145370621148780819908334704085100028100852976634105191590459388910610514479016142636330129859069790235163757975205452859869702200833375348212286593543752728397312754200973829750730359778878545543520312993020903422939122953784610837019030897616866310721696012109417450847977518291816569890542537737324228559959919742974972880802925458529855018521421625910145667296378393788863451893630145115259092739553757350143269336029523020895690996221792043379987838496134894979376915952297803492336312693565197970555345090749162172924011225957488154111163893744567506681257212095822680904585305629921892529953068993810583196158042849660809444173134787160822747289879716344337864660561166238938089415397901786379757062396021151322381984889378265864500846846784471345967177312912111021456077672175904423077976381334548401272139848899310490060098824833376949074871036539014781727627257625331110077836786786407494568275151201270394345849061317601733674340741355885425045746615730134319849708292863577396164406195646599995745615122854381271047979805467503550131721538225055448097515868353002702125861018822630073380986596351425419888861641918925774662130773680855834501537506286306536581734461086261803309717852785714955853125854453224278213875547000013161884772058488429685458842658504882865509402371436138161427043107159237647971230108465126707709843845003331751119896384132732980550351002905613983921433051704734728610436816299778709887428109042107980335482249979880895452258477489171652009626877670345095918044474348276042348230510516615454416574886571030478058572287117096260417689266928969613057044335132401809335154305688632828258149603020345130600535501964685064756038024579685966998341506184178383716899699702440469447723783452418091140625019728127328973372443673283334239666448713491766716295230709932609279372207188608495130110286129258006719903412808693375601273298401589638556779758296743212875904966823373045759534096092937539910516312360646548109701442494517155952188262003420040506749723755656197576307372572056607593515722043701120098644357582338396225513029453190863340572924691410289595998947845567833291189110680918711614991470720967646228792463619557716960388127825671004663323062787688490949545830583387754761804833658287773002377988288159425522936636178611827950544528823429528791022168308937031256257333136244189345839289343715370387391441182065146972716254343142941563433272480766639593042513618707826682560249303992515869064103490939740509011279752994267679990936882791426508248197571328624640735529410423974087723759520927761366355449854316088283693008693839071796690786661109930637608364006370989950287002498577187790173476369318261764857404229238138514668987484131696526775238609628609568516005190132030033052458908019765745057735639975358555730056914157461527401032532246101940374581904482000007517014309144022131560077897958310565981426312587237385702058062941816176617835566555756357477174222407065592624091295580507633292778392413305902157694752132641027475680635439215525926240004124671388606142916935176236413246340221537767462996440756236919150538378761598147127654508470419276682322672919659254831671800833703015876540400801556918933360176601553046842157508282312756343726362687960468965574315339971622802751871364008953664952536228738053459940464608293542734579011257934293030262572436016433118861379957630093382548953474683019595047376974981450628432605014044111881483950469481681498905605900396299933452426300138144652931788264723218802755771280506524466262159540766948256200124110569310388416524827316231330388347108734800627154188748064296335845513571309866266404554573228510575300026155408710808355416119802469488169817261280516508716598044421085387061195075709296009086984074597278161159471272384699878572306092674695357710239717258470737546609385635567861527259344571575483286011736046701094046339703493437484790847021240750431636227225379566903145942902324198482820418278173494500415940026776691931721438530433642743554096473215806746205561970756107021850244476203483564582793970464755792340441281386539635345065658238113308050337247048878658953314410569635869686468373606446526902016455740497839771898607934887894821475408491015507632477525310646797732437596285210433507012139990637497745477916405904260480561224680473200636956134291165086495742113322281662955185300324545276326303931699495833471816243597245656795935437033630125721667133662627310970514967107423217579000734858350322754044235004524817387801764214662077015352599872836709046913729324337522255611035742488819782780456650351876665939376532039021773735362288585812620166888297390488056452095689212426266547792745127126163667826373802424201455635079660690466219082872838407002167192893973972341180134508774926632542162952845894942302850603666345546165932707017846370111620511352035982800538110572144860137254535086295388633765907999147612966588917637873928793495010899450691074558429735868744353138666193962661598024106709575817145148820078893729671417918536394826834456704953400856612439647165494910117782290163730517987182983337777751629166546219806713098268957471067120629967544726954545096732747294262527489039047662853173875664305685029708838988026383436585269802675704094702514949876817741487991809967446904455511125384088769904441098105289574995835624693499613697822469730915911569022603854312794758276179322120317513594393357342905451477505394632095345905538074739752857702757894148297158886028593234198777805637175232740286011697229405376396179122216783066592086463200959870945387557958664074072793286811251864274850144250339418146240109605862326996619459626997422087612750279693819712056320827995431290316112981661721845059843117674616455012475827781595709748326546642567117371595802295281127787400940427845562790710835077063723997884538254732839561800641861279774854682292761855992732634141013902477471828662367850961027132157101592685058562590806060874322503039967769671733208400795766101658887093745697174175769308599653148342935699851566708603265832169172521025032132976534207385630889007390154582139631531206477791059153393020745960933619607063189204719788393837824210197326871678843645746439910453056136447305666638704274827229378026462456737272666737851771257933601409056487152384812842415324134245236757483717801361054125458836293596458789022187306119345860738179293761407616916962009535926922143796387736472880982187932971936528830152734644805963963779094864612166789792328831014769977117347722819468180628011449349610638545627776274146160868446156035728411273680532409729252258459270402324403435659696100276437280286700640933787839467976100813766636556046214512586332263152746358285859417030922178081793938150271931482464730228547716787307769538944923636277569011579526503272211848584933958794357581124202066250431707301854611582096812657711536915891589816992179220721760145800024259209266135104886764658584727955915675038751629688348670372969257093595624650549619219812506815662628034191096574457727109844508283176952208687451144350348010097207955479370920764351447728857173354391129042165482338115346101393617184394147095245700985682379742596537420529979449907521862497264801038772788047746938632319354999983431200202830655169237243400154234523952762240362807230428403385091467070376473256167926864185558780186223483811955765253400269515331787647388095475109013325741811339692694224053368901012147421457036899183483677653282556142713468020099775541150887391632809998982577451774064457116863102674443384849821093577202521776617381701846857222397228575997634906391366889157429208648652584739866265963988020817428118436305409208512609994789116713966451054417453561831573169776511423523307353056323722553403819237853102715447150039593261813998080972217682271391592142378911307287606931702581702367948188602794300382050963844854244128955751175919975844384635926729325710057294277523155764355198707722516485761374970167150347046963051882811941921762442999503567301334214054364628846067688131157840860941709619242744922580128315551040702221281327084812804884023329111853036109582948367233299436909723545716019405886446241633587368049945868205325131530180631658716661921888752093025063967784556564176201782110383570560150676055499688947420826039387924284272688147043492309924693438364491565260874488290773959429280708199787518322117616409173906602069702147493674545400852965610931303094464591887846643897395331235195521766776476792102206038684010055467395196134651088717528548587787221330306030203001693806804531963088554974185126298491742593573960570825557104874105352275993045642559119028446175151151595610687889578296279609093855682230751735321833296025242461799338840267001821776127598340068278672736072133813925371418533162891377052638900828921547550387504921722902017631355963019605433445146957182240299737519798968747860469728375571190903441633124782445080987630653567791878396113787584247174026975858000091266147132969870016989113263938949357873236967666400562003240511931855947687170351862314944553613710080683001594918605186940063310350622358974830437789854431822848786969234714519452020939252742466522828973165436067744482096931039745416735092265349105442025920505978161515490110564904976975199686271987813282118007839174942799572887643609745100085947214986332456778368560435532331578522457826077058443505884749805543334970968832711634798248935569215936248031647160009538574465365372143107174395481801546016952474937782066039109799741434827845136141738499794499486762559624309373098077961509998342182152661034941901590104010424393397735565914367427026039246645034432595138328777516051063109643477296451715424355079848391535266275204509347514096947509472789915198819744250695195924945525907774761730481311837853601617088170892956104707857914190413517245547010079622064574756775969454436693689417736859540869549339759630504436634960245641381353719192414897255479038561426147715006550385157227023846032293182462076581630196838271175927252910353311842483004415049000552422799397134441398435527770720970025328103875568173330088254366457111211311879262774249222104618003783583847244803531786030913126249054226167793515878591018865786911152031791668620490820157546266068386555758545181801318252033473972453303387726284124131276764160180658815404197815116855248765782030140097678706478076532668747643870569814488766563731596786785726428573903272793591837744651024182482079248487448512501425183399907256365648382523897392642685451837238839705113079748771939637875744735060504256075729205863842681240757232540884466714501211521734859325261407848178136201173000758838966436018591222821065773492562973227511432002154117160275248043822186464849958881834748883722345893997745330484811072485743242862019880474969248730019508629234308595300334795860244362180618691058097941130811770613212832980787708092071449875809772143990727563807071591307453076268481505611220498400763536901542718438167641755820156924100034133565464909860639223354000648843899577423778802634282868913897208394502237000611315900505296329529783766653630491194779386857774178147156355593156834621637641875230568811328561765560116635343232499248470934461165354052467485763818401819322565861290845971272193359899564669550835324290862616029915354058891582612033503284886352313771588287740107746722180081968655796538757205861807673894032206931564265709930495432473985702246982478638194914437748204060201715214346827668576715753286869521514819645811643501188384581716005676152290689579112298774096079013480454544889207642368084601525151580516924133714828794227371654503819783136500318255816030512455738834904133200448430383800330839940131159254611072332605367265731839579046182911000082380703787446507986522927725254839509069022427257303708531881290811217528237143234497989883743505180088264190877170511851672574548364770268874803594481134722661254288574346612608093567177555071779117107119731878283485036112777849655322600363105312799082396905165669043382481402698953597426464838483137280350115221611996399253948081355202484462670330009638502016529348159188875015116297602276302535418071526599519534809351259262133119932069198543355092918986006814055412226864709415039843484676488691125769812239147326452083252016289653105744059203715911822380815625709972112881836503790226821662212386882873441668542444609484360573867457058063502461451994361759478594479088229596928427731860092907618374805660572560766152020470182693843052479365153467243831925931899411643307790150323624319121445314495724236112733791007289234710977299746196605001538517567902198078060411019090868047272621621908961597969054812628556694985909580930595384012356704351650816041474444076704792569310602250538769711678328724440513561797772393474880540576368810871871706627880706746588985948351224203502072048662433667242020328234759456934730127411610563592127436898734614411504006482922234258834493430017111891890040313170571917261156546278778593482600579081831875537883444589823366815334226908119591292983821918173179675820952095195714585626081907673678107655360378953103378164764038664665396557811067094527733238263612820094182749470063494398563297105687690082411058642010405258348278417373004665245696627514541150864725407940397307050616005820156036958847596376601355102240598605472590993436677056044936005286294322911836855993678366021162042957933787432315369155415742097833823132629237433627058263106498541396199997808221744982503540072248849886901973214842190398912057919825427572261983735265273286512321278102809556801661822049560930860703677295766081278710055226924141866457895254637076279275928812539617087535237766376393243180564652650313032536859745173341953147145360807894076175980170579320783039293407583680578566458503860061766775945044222351073689066885960317521451290732228134885227242856720343534733179299749141509662573622754742914778498547844633020157340003572523464351307259558603181957188789927263687438243377538835145426449105967260188829498399916084159502028802313023403842724840124412523827139184240895034628483079878906827380363204799014397525689864156550972261599922966814207791902785759624291701003071621344560217336629875344160292368181812388942484829006833727612273852168070873614864580251051336636450211257209589689313650634665213370655821295599543018065250207958266419501559588581419179010301563249328986773271748201575413439954385881301457835988621688517328266981554115394916035172810911137881662314861258349937522385916531206322044320022728540959009622939440628788213301090573978116692445317735150504010141238266994189320852378227802554426231814921866563622036864033022622874296131186430633494828797896872111370224454053544702090739763817769285397407958472034265578468834985851573724839676704743081766363221889635090784052821058397742280698741605704641614796586718036044928863457496762354328036294364453797132584804301438396358331977966789621763362865530516027700665832176016039782492332856765685758754356657119054975112607766905904842822623695180257197781921341384356071705992938893342876770210518708318933823806465280996904732920111310650633608209097898171654652456209316756508834408033814356583450173724669738488087770133059055360180736774319704052731841068880297536115081019948784476916370893499756095296428852140578148964859577824014835294365586669772751249882258269806937542213327585469257358102575051095391159738437313384315330695466084906659998146493310509347654570672380828984948057153785464065756989783555308706725709578305580296024153275114211830025293994459958299754090445111142284080069358193211694957926114131070849623511615205286645397622529608819524350367167168153907638209563183242956974089226282423326384827874474917899990055798221620635241460169285587505738318082959076472041288499116139288782305703054527176416783418124480615828820884582094450683418927978750434354496299274506764429532532583772920829862502708932721704471178148234692365999673560969672727391458854751922287100005803203957592515629652907190098296637274359960075883369265868726840378858231422225579258603685198482916381522905729878046178125839966329006799560536241956941078594426993107033617863834983990134305466210118865963025039066953672997980587862560863116330843188702806604910529077764912622866723114584025629335510329629135257210641600753896862679442253708079855708406478855113401127818166283776858496085327975393360765621039785569353973405887927712682114167299798481112446388114710997074978226228673753544670750884278790078748850068958588968904276410170372768532802861665052230275367333245646976284032167005470034545683878646973350961734615896460074178808033650543444794650579906448392778394646909389736181460569114780522227377353239405511057018228440189467741186716600104344376891110116542902514402030404901906471370542141127666754177545730752675083355430285441292801977067221169820694717909442030919041955888873170372260540872623078539389805634480859349243669602485387495350989919066597115137216918853014500848926873444809530024865720243416276408520904313122440713957037513194712914400126235192191053416616959598440339298464219078349853042613366975150951008394720973868249331366611368558577844449942579793803100366976298001148691191274584225622225156646540401798864021462137009252640523454315815828206140337951366210509708713451565816169524234248119224429629317516521904327414226131794597097962330544854256120424375375554806091243195596513977278692378874437987632482508671890880673981973753383949264937141529600842707829751004757580821550557745478357738783625649642670126480662470049760100424546091087230705786830138940000559530009291618545040471076614294499870990216423334895544613045483860677353121882008659168350916136550578387740921829510031830667529248356433723592882956749286174918291939990363132929660696593047558916978731740207624568235259459678584579915694870650369484683677591340896389148016509184030766819763420853902300930870794784313719649618451597472853031481804903410811261475591958275185627478194829035264610937972181027769516697353957347560040316397088068222261936470573317739095647516069715481311164685195197493511890396265569499246351696556349194580678224888987239465200318797689526632697258821806147699587778348700773435774558503511857221490892463261999205589287283611266412088760058592692940959440916464286393106915117300100622699711824837582288130935036469776932404666793903233228093269235239902687090928003659379054443512264723736372219178277628109224223084078912614605404940896574694597958904585523480160124159540976926297330528087705791925124458696826216732165847513001796998523924578452240263843190216244649700931211496949542674562204527015427174733356032771881655523109186364593223114924201712440830748085125864395558063817998825085501797753977232277120147616475098120282732160743496225765417218844243033134806692854039362076714569325450838213989622614832119647775033248564655382834014061577877857341853044663375147656200510310306140811623861317639702282064440575874376053493293063314544328675663502983643521824427532321526692305522953218697182680585079908600230187853207666073433862850364459197352166597354885171634413299271654813241673085121959774757404243800782763123607038805434908450429365128478245427181017076766446893758364932397854848902736315808409877196091280561311175769903326170892530967694719649957398955351265051282866149312877977946987555901757462946809391846943992241415915485539144643085920836575837299088984701705440584371913267241943823544978578749741632223970688075166348084150951888851370618299579666657037198284361992206980297796699254878119896050665179649203391503669144445758805908374562957308062350883025330539483511019715397400570777148096401687583247765663014391892017015636909645876089489683371671209402764951267348513878240756479219728991576561967027197683484130519960276353261693565256585759994237135641066562125894924464838131047649867694907824522734513090949489031621451979920660541033188136292938750889780959283112263670202975962813949651947072815541379060817462857838602912103542129869848777946688641651161763986728691088282327966376744768252475763826451289921629415692232637181310043122399410142665237869336854583944991798245852369292426295002575012818273080318873288893474209987313872327626860101395842953688773406500079239108774479866840330817462841610541483264915423196522826752769962116646367905916975394409965623994151562535342062200972681117201412173599144399633689889677024863732600372647128325461994165556333699842590339610426559459453440145348944161169401714615872656883438998764688985821603040793564817684297984963649224612707414631608206695450418346673447422055708412837015803081907442290614554837283222821203021375423493283972022206270450614970537881356900360188195077571042009653300223472812933590332991115113849522666927318185440837157695027268328182849379599884294827084513468244937679870823517041543065448397640337052709987056145899956250020444576550054803484140088022251863365739327930061129542916405358930020638196685964047775845334493901545007092176171400069754913038383823895588894757807612529599899028954390399953791101441492600904550733623404591094835749538274616705864078387680575478925974592097568033805758209686922155066057363244617596284795278251160657207587836393740742554059931291689579989971500247387252300762045963277308989455389875142510083748777778729084511951967694668547089953026389130122316573766727613496910127308654890196447540353474088557084076008287158379461181917009143965888786377063175345982264883302202759621773281769403048124037395244657918589878424687210871595632207674514876634356500855359285236006908004216530558409978544169332508261922381935533807469684813933715631844339813262259405210267342623251886126449519118162767361766661527679785147587045273758331025653594057726524982210901858034090473650692031118378827648103786901139135850186025927266410938289857047545614205020387608783007533484072337485262463300500835313446641552760112302512266812128740687113547958452584509983146554320532188750283882379173724862294170949516615019174185220646712067717564958891388127229494614010476468064633724256113414900990283933720072399024904142490489676965901131143975012955505096333410849809838070175963832855836221541610788507832877118749410818338066202532128626650640372454633127635600285544350635699556800421743050078478802493444915490046896376788914907447561625748610114919447420963842373801849212460842076981330598265122213567827866547726074470340367326726919652678090044025193008255617372344665262439385340372501605173824139542366827005009524965674601147391256611962555734514439079586289007630236951336716107738843752059944859638195990169444091758889890987598037189130309014923993226465813850905575285792865130841191645002735812235535179547487130554488340040905657723012359242138548003561756471824972123841009122328011186762865185173859058596410297118107850473406364641853513319542916604441480825071255670116402374404634915895486039384568030894359125878384917532950176543021931161899305971272030666210118309753128568496625549852676188131239089330985931328388001393152114552161102424474388172429201978465716751192319165306056510337076047809430638166642800509419557385471681521334945744961789746618660455224599195071203976184243750386255096261906594345401310349581092386902375751462071621669800297330841867462700459971585976025790083460728116487979364999467626741040308282729208000258498339354577405908823862066010378251688148148693228430197882798136638001111747248067560701402398838312498561683175596511072275858269569553150768658848645986312372026394826082684715139116234305503302370920306880941000136264738858199433301074359351552012351272889510070567917623135925407441210042069609870387137896965570295415860369974651474807609624001311112112492626041458228546586548446533615800794473508096861803059410095415075943524228991406633235238017912963967901500148270208392636319756866489254788784633696541172259532415617552179495918934346444706439309408140905620918111584431095071532460489850039466585575046794177396989908337849879781567941356247875203431843728297907005143320485399825203324561634071294557577067877607476998170781990959905095834946967712852157823557126650498897016464626345067551976404410104529569494778541373895823631480410120302703997237684361587044851863743449427986030209517806163109110726237900426630941694310880286051446956100093961848423446027635707508813312031535870991388300810466225163662262522042586227112763623803179059141947628410233080930773056288751924176350884426328338028352587858220790085479774429949305162102909912163719828790447398628900164723910139049740760433183415404207655133126331657168156258951280133032378105865618575549957315867177587769568464451408831379949314607376634437390044654069675780454813423841669441512128120038785875825728307379069679905465881236267797525102631559191297835982374095560559033291177017343331115383796822537320462691280355690979138386813585303010071405524762999582080535200162975815867830926975350438996714936515240185804790933392671691610085978317122329139536882807917581876476361708017393308795000163746665451000950448753619593369078711659286363939158447043779564807706584283412627769297869355120187883825854501641455333177621214822381469281714939581463745621924030850127982043980506689271417754570660953404378679433564061629912524875360881417671055418803426618564119090274467038148846004375664190606798829655745697990989869074430268741473012793193268361064727518459403944234313979931810034434789242066095870291459695031155358747340215045598477471877170277305385047699188714022578991297958698019193964634376266590933557754698682194437653478870651849571609802457260428692897608204876545122435765832098165240750116351830472727920529992436113932901070454100302870383379682238679309351632711640360837057443473093221330357991079571198612408738001069828752158519273312344164322106943841603070941618668297952510499475618892422149412959152716560135777683320417975117292498928970741996671453726969593682050889246404445435158973222632620335420298878150732244848069121421385680744455622776119628815557228373991151895818448618302224306924753923035852478317217383851510536165867202142134580442709887006916991730356632358589442339469014894877113668943854067135699769620357469287489814460814497527628785444365844638712481153718759184695419409905985322787904562496267384795230300555129447600745867690465746255954374062676470157348059348333979022670134815378166102751248050410702427569341713340314114073562214863203055552695518198853528011674819872647896931966940091055722670467858392225716888802661914548326974727759310540019312971127835326297672412214207838959977113137854521064047183965217045599006812507134519683407843033641136334081581912926531083697546880153996535553004361745606623812689108417774173781476932276208197029884763113627905901274838499866911541741991072253723056812060025560547775730581825886882076799382938737792158994897698689503622727385508956314327379241708191573818617056460923348973678653548669600377121356040309870767356279132994988862821838012405450732712492287987333735333658537349964755300329931444494011107675276963695038612938086577898048585601691254113149589431623392495522935932422582148506596941715518277012008286872755133833870140596531055954087480348591907526854966924411338443392662549560624760776397693545314467764032207015039476757916969074112367624619951792251331536070016676626776100578140471822985104060637453548415950997701225442631728000633738109139171372767352793112987509122950214482159732218589332083491316039159275219849008392801682557626064481418848541225032562710150445994083065147262647117762640377346218106605567551770362989950010120780506761903631800959462588763609494596910530621353808372086199582549891570969182326931761227538203323000587147577523259881864078475994768959079931698208322261550633549737788215220578368673517319833064262056922224183562680236121462633502417432982053311864039146287669122996076944518507221101220574016512060479797314398029156049590309476678354639079787158924441518252835747864479194319385282233629291224352216328908740968002242673030441025072180518152323514411145299116286087075654881906370739285884180574024320622317585577271789148862586592963028788782662875235060134776610647645459231893009889711678815101734125799697085467923874516764754942245041856476038213772601855369447748299613568326164112948361703303550064411224181448627805243348766647730700963243519293714670244138873207385897252064707898542523158767027309867693187432951282530866309052672506367025628339637143149002581730760718961543952377172247323164437980493433330772803422283565195931804108582988013511714549064147138422640766411060568874720405009528834472743453066240159898137258449294876088005654526872081477155707070435616787242176132755882817603488075615378530050969688854224740013385519531278644043074677012729076133144534939251677117689071068152001381352432539724056821717649751487981372491488511350494110957131519122866832647548174310705161878003550894356478340035986409873508231310464603388683393961292748130453501668885248104359028523893577146755148734134279303007408862898895999703458818866487656474179782577278853684519747384836805341428938571160502569654026040427739994573759282595543213248842154210029890719430008697314622079409134067148885141450185522409305961541666785475876415153969517678586558324474172229966668659446180273637882076821274124189263385433200024789831068588396571164320468090093336621399557573812549652808499480730223326846428253810041907009850341208376042701279692517877332807531666465969057963821469296755854355625390848447978745261523465446831352013534575171647557115515372450448488322489055020304090101236495296402750131959547245799570466241985290389923018609861186932439691008674126621080608330611549720156612933081995186648800448007564402270662917078889875041212722492494429342612070473699460533995069267084480942865873139349471627163234103407300716231151737724139851115463139369589143270038824955889187940619949494559074731876792214183855247120547381259691736178918751545339408053288667472400310910885358944218517576272058370951989020905151066816799111219602069662309491970184572205997997207288321580799568332257679199018882947832383855653280034529732598026767875019936511447724565861477916659056698677393170607137872307207778493481708483902749283675188403989484515269948601805097591830276890409983819947719091834798549210846929182850269075254164963978878728642017678537908752687832899930297600216115341964702373226713576889676213434041040257657172574578893998641482909374990855846575921961140164260453123075748844294264713053663708228191913382286625456757272177559223193219882023167356328581804949707135272314102459366898553226689949138746729487443668073932029530210265585028785051186175815898583226222002538510292369589603298401682420922045017073653671569511267645676095968140574382436363031255434491994111142200892037607057477569519697723325427788657733918219795195253230092648173961176868216742430321972253754035911305116363786243282040362095730006193503436396905092088668115919800444755668037943739995803655036759063506775010402607331126615139011595750644159712541613152059159111279604467940416626347825940814335670128373435030768945599671173746841958149758930928489362171193251961968114398547812062838429017549339999053559973611246865103860718388441590875584180767007785841124895409877773069795137566062869775513007036876357729229807099270005021184124236859364507637123618386614764752138521584872095271044334174104363282912643993283305031969881433549602258300549076427038082061726005038122561244033020670672900308435939054539101718189367970232038845399858966194295229382798755171410875543810717760111470150387289622083797144709838721438331524154645360519371043246462548507439001047297075270112571476302530433039111920857253864792005267550281054522181000722407677873049695087630499924918608061965977644855798858800989278806619257348770876189256129155202916724012241690942867247569729190237614483622818523151093508563484722378763286635261610956162875704224791102536189660288418415189346993400381613129758783278042693778203769113115773276363017006237776323425452167945799110518250125680768248547852804428905760072745599849374858058701016557117404777160815056341411047389919763335679826471720851566294637660512036100029428505376935390467868382230361388870948440144910779338666566679610129570877946657370003892970322246299653882419188078494471411581628419417344048999704627959075276841642153006436334586849841750082857226369465847672668933208033015070328361877679322981820989225517149307397511372506954551364401326671347981147321922789217511424907533855599245720938278578758755633507490268324731103105108846127782533935333027274392912305011028512635267455292911958338527052507146398855214678777916955297389611801437482175028765408182081494535873031596234218920286449057022640754345010686114033168355928756968449230719200869972765355408480102305532770082852703515123177867034302650994888718615506932187639595850501228822695333236716741062850641239562992033172453991508260569547124466864837027952561910719779538908274381093263650533062654730885206456793526908986664495893127853159387825850078366512269147252644213001479921028344387537013349331327653684345284561144968630554149333973852612731833687843683808505935800868604791291622856969227573533289027031375152870405886543142708985844790398493955954263106789593084160465544115973386821038159368743323127793284661528298721816686025332309172532227943878088423871779265937528103228043177109807323462653736853687958523124393232153992826668362082534380388685810422480545437750273106103608543548319932843641383246160356053918881420111859307767458103417102074352176873045477640148593614783778373848187020925622969879471638601494422397774762691722981875211816086334575312037540865334414706637531863472760436234492639068699751658284289393041076638045207471333089146249727606452378149171939520636195790722253290096229416489345729783789815987814176787674587724818407265309583256091160110945860688358597091953721473247638464832929204016502757272860159179243048227809418432486903830921046885075198039388112557937887279807142004900899431483473829718782591774645322459727845384462707895303423783931989274380224304307731090057381797462797136372339608895386452456708775404787913805984987767192889564905915101460277899818934479722691701854101207032792721437196891758828445103517618004473084789583124321552090931358175551934326658075136414976188636160865634753861461147964588323023694161895805598861209036691087396562256524875908060714391024376808352912150487556370191214299269362891074299504691118239158366249036795372207501696003502354609174488561466532912940578474322269972957869542973904929278657698696060132860321234178926205027116224488157319798446443472048909749931172991676771457456814296680549010351970834609515378523752309755006499505900813142211229361757445822884420247937214749581271604164175314669808707194740675084154238334021573947467194868207977641387630874437694464044143841785064626695809974856592222562006030732187985108540635686793826052310962766235947143298815509326031830170901121796215855479091658945367194348108166686652430229802496592386342894647516326537582113260663715112675050356249777070440848392527177455192905161909152098729223699714578310410292913056361280977930268842412952764634438211891984844976948266367641375885772287324996694326802765054693395538432486375599317510162833107340851303297502433820796879729154341614258327970144802764786882298985050561681658601794819029259422044799648092147171663691122623171280899869250527067294201729033260600247941486409066227557710497548399214626270563243927706576699805599641644481214784228347334935010022608273983690267782272401841950046871470954692684284972217367037269242513616153745006899716845864398064114544820993812252611617315902113691377807275391239955433354866666122937477772921167818761540734934125523824121035323197487878270302623464885307688963098755462029149423098005102296975396289987662478692820991367955548608865520098446443557036141944434496957596700782598778006549642669271692198415138997465341612332466979914490038586808515394955522678819815007312022659914393448809925924554641674758149480207440015687875299925205868203754388458392735764452421370833155089725088585842696362588550602436212655169186018635517069589469286425176246304654920882799535801553496077847972521203825075922709906178275359717936836447648216570279336666278945520572413759754898549506835782564538800599129628330646905785527810672777879747341694451139940654774933224505915234677551686298980630213240564675800125186156201071405705280757586310802552736469509161759962167861413786473238385963124171472015549993591844422838575612894881900054804986888964136838680391887390201999984201658971156796766715598700190943302459504545088859821295528461163511639732647366780670591608161441217974184992242464302485481909721290578842186656272494069374931150231289715084735687570932577021313491861481649971910789754324654110256211471119579336860657789359742758019571583681689416733114290145608167859012117074981584063708688832387776702671148135412998534699492773201720215357800587489779847179814957672475971660725066187952768718291503409587431373297368789908532737351623920416796983369494361281571008332212432322855996600123851294040814632256619309309733805368674827494845761059083548677765277932221479304118367019096753007121201335389686295514471764087022561940823649001636540683521225785066588579476833946335462157988044258377573515432407839292215606200487465987079756193556777288836292374110076033417237190936652191305553288522610138639679926503564834210968584811162247914432093033923781791585880951425644849772101342078281978454094223334798177225057449004210969754075938375035480149086464988007293724111349415543297193966266663907987166231602032703531957698317526604910412289166302102619236138723652350998881210258507501856128137547183456944275454598597453285664865309573372115971825701591650008274477670421784382474337598966016003089571206516926413593303432141259295989264424016179784474101800942915643288036623589689617050589383619177929434934364204974595666881563397755165423376126329763624987646428307724351273252681841637388625917521895451668514972924466114782329202068426836823479753307958004065802882385649417069791227903969462099687731472090515048754514359118656307929195924403164289323160057171709955216381055140980465013668042102526792050539288025131944454702339856194114191640844193182400664521876846280217582866394648463162417437705550162621141247150451488999249510483521783848471049695283842970361765622145725556628686136295701705714078981907685908278814856733865724575810856294853203308685044732556725025005258868425272391502745074258014976206481289138484235040917719204085455241524663662040531842686961748249368045231510474609811790881415807473293672379657697873371554089255866079119966541091404517272523023933616291416888941215084678466216507846331528234830900904808811237008196840301585506916613006613752434457913158680080554272875705925860769453181967958442098419151998513058540428701618803853025630104752072572342004817777220195325293217453794387400190853622411948665972635670742061838792757711678399588528180791374922235409607790560930756760974247275318367670925511190528059642568389618433326642540891807122973266143202109940859268196881298584664812494110096612661834473409499631106255937948471158964307728143180658053454706784063705291723348418473912394755669975811538278795770212241733087604421147491073930139634325117908409712312575138815262458403340891594960715056031410127121838999801663393237391614336244427306459212716711366527084490579255959552785181035165557921887562049349453206743091067053448255108924504956806518642203693250175774748359083350014330300968635560802502460016201745377396326513331919779790938545377302949910713535780731787511325140195844726430351450208725200545607957218143586987067276268467768421368114493149439056840390043750904221725329451685652181653222595216132096599111889738601464608664216813453339217968182005639882644260401643209858582928519721410166975972670662464416790970127344981827723701002170913136578817006108899560279532210123428772397885450355869661743396392029826641124716588043141633377670776277599161776872856827469878390843324096997011980616322334739405320728208186668047794863164524157345175573489012506671048388037863074643462806824310684894230054322529910170832054198448832439998654413298545162255962017945220546278923279333171704451144722825212632618509032358103202360385846742375483897848998530155515355718450441293079146493940413944635721290972187612543565779437546748972841560512032175379760578431323098195877964739170572104312302645114379545524551249203382882418842658855732781209975440924004018250193766100610502437775077573412108864799532385468089608349037928928613536530777223512949546141244000823330944349893026850514311941917916638067944562894739211277608258869257001580521955187188562207516910067057858224015624029958021625590197988718335471508681546797419984921195661546507753203573999710370901603121886827083129959804346484063897013814555497900539156751286719857352913875963968008737152774001720161982643533918792386337196538912312941617800744635956054273879302246165085943335134603320169439716837344792158687115187054670830505123468309312345691473658679897527183198321402617236694957625924217828284365947661323848107711881998752330772775280116713735266963948752657878617867239638678348621982351031337415754280023182327181966979205636843655534658374493666593708822053954710204713021958986304330312566269966958877280820562294815727631353805356549132475381644914616290200404513424883556636006342025594641419308706583428153448751907490255985714528648215802360170699477489526509873787819562526888922664946265277281470481366819232159051586895397978264676800016226075278040759463910877462622010341495864611512166859692460276286306247988528286700206315567053158795488489365309074650203538613061548411363653478016355791726322407013263083726132009515107545083585534997541280595048753271972267492484192771226371656075539642493386813555455096332221137805042195589589407335103081951899015594422032870821739157913102834222552542306177774793101782543443242217927046593476226639745006720920532386947558857155715766028520360530321347391429637722537700651743890266373745381273558425915580132830973502196465636879019281633948616968869656430261466602414909694173247219000285675941484214497441271055435185630468569969999092334024046558776397949081649213749575820418312420970734785777087889441156418548515315198408950389377571668488648666074927204374773271560698125369785022045475620730515355785560879824886383798054569819816264891989119550739554464962228390860685005549517766563589101594484068338612725778656408844594062638554044943079970753814485894752636066102392676350829539824342939380531801286285052405226270725310184003623374378388095926435550460347831657126939502654105809684464813179148501863675731659157553498300630807678750092827676649176454852004570954019751557765728132754263220312204914618739928846800185297585070702956239087945166821302097286966317153803158410734234473940672384970274656021913908349806977053594367577991309036483912178573179976749222218264588131242934489677856722733867836366652753320152101388214235239893566730124041294811451848682457009178740478127740074095615730023769885962842582265777702716133138040466024904812603734231993908493650659598834182604433117316702312034983521341335176725979252589100807846857369168340896236377220677555273339016339801799230935916432161251353325462940495481619992066070891769293900545604229283356693247329733208312392861848519269531403643793222428941920049152755210181430740555984949473813915538753577244245499115868768707380771094555921567254243172809449499927642161481946574080321124379347087451832418469651736505880911630425653620942831629108578163663002402264663842378166543877055964036634348083920220691393059348250937357703400275152052665494953264155303201723709521248596109981844688695177623790731584153446482932748485264979195107730757866569677300445525092397972100511828669258554812533958402875142129138937785720564661311974038544798695013514340548262417162551544710133707807256334607336699960031831248169123811024917238658485101415150075804397374315501618677048272411139691955395417218609057087312233432887002500705456585650084733368578522638497747344252207470408912189498976152257345131232681526910929813285949266415348281369621233309010021065705197551745686790428700158192919698388280110998587828803561753852535185365840111479709957758854263182334739726490456034327501083977138653215856715086539032150616793732245835298542660049630949449491556992909445183861465654369499276801728310187992311583113317738908940313611797462511602928949945095888414100134692419303110026758939618858698043467649989085219299469403175187842791340015108442333231245063086801362881627151302340861675800444289392572347509967051438974681893171749658603361468345017593348690554166585876697356281467036052464257820654860614742327650021397811716153616153686849915368220252858965836619793207590871321608938125624535788852846885249374452459348356534399785271870143237856707044433671673745293592611990396796502687871055674489001475498983938217660136347029637822667542913953617995494277736267729901377955248078353000608666509383274350569870408320946184582503172460154828398083423104712176092372145207457133211411063778266970191286772914575723706317393909012005433207937933834408490922359766795672556811308698340461263365584031708572650319423260199650921350463845026489617946144132115973808293103000170983194600930301343167549175055791577181728249472414185540261980374966010255688334611039494720571697748262590512635839927164066313565350274434118151906345089042869355740387687999539536261951767062083556542610615186112236366132953125662232337742469351237645464753920813878318443632022812853747994222099832878867397933048843567364566004289213854662390207985380205740597704779156285271002798381490849779146992014480436147470262607545034556970032250253873379384407291926950281827592861731573488243100119310486401665373761397999347892129843433335960115925939522294361138119237872928988226513201306714656767961022691287750235629493730129377199494960089672104658052007659586860578253571337688925219324070433546583225500965967972378275705606681282455251913103809256634655333241346994998913754741797476951973155121551777654672452430639348168805906745254743160131646243170650947717003387809670409557595142420574675835454338183402330196080086305501082970735129322557192553843787050476785544030874188659627377529470889807536343696277054932805222939249183179661681505357247883269783273501631825444947318181580975723444773518362172603012853470312190685485396883703634970025872412030820075720549163622754910899786734178245524700914096429533969776906709739338513444987222846136415489906938389836031202421031116131613773050584314197063785771294929738506789902178122323429787430302017406710536004930397273988167746711121563871630843010203435357316840052915448328756965554845730512879226791822637278345537018698832098860903398254664191488923572084974157459126784498194571539377563972784940014326318474216085009622586427009747767346205020938769348448234511415431158829135848230138059465671729391355488838965335127352688886517553266759144229611959460958673025363286663139233956492840952649013544666101867020328232359869626246760246776209423270126736629994578182074363754191063684208238337489725850428340007186211661962075821744787076042700946712227846566618364491153053558138352587780888265585167083732514087433332739194847868620849352708828414758862199904421253022594160703262625157405304814093790609965926645293542354730929435317900896823306791181811454910152455596308337831121228255535578613297357876069161646951500770209238559886583006886666810582898545859499723127333952939679599299631947084226843256851245499524568529412203861315890084842446745661758713744042056653939786627079922545539899240926796570609009536707102795253014739787196061681043121850268984369589080264277746800354084275889949155330677945221474263458700705321147716966361714902238613297918993499188024476044561226131800770933879469936136288435030825241380135512959321553715483324663140525259311744124108288085286786163480815634006832987790180185134304758897144732680193317604096118242423170204481345212156671087704667806630209960163425293186528621201091775112627792064093486749008094339536673639900095019199688764878169921253390764342158411994955344560400844672762465901465861980776286171263634584163632547593804537321038833579994011234148149755912497342416426191861114389240932483606798521964825681912143078794307713752369820997022840049826387159780847909866466045086691971430394093244623187823064369975912726553635135821047447371352802512632253399022863601037611701095810064015605683998448718429631439999809584201046734866295621240573738491494834543994151262889222093537236035606412152535204887842009734868182255650155577464834514996768412209037582146130166003469980136759864397871087220415249479081231310992245234928172684371492567053483735032402404563868332770526596959621946147087774101381911355993721283479821159984056388469640035168204404442030660586471873843317248252571305641256771797251004790916276638484447473839767594188273092722253381672088146303282598397892824347023600188810689902109940326368643990470196694441778378630675919756089709071662224386894219511762723688010881989998818446063089187665211451175091629197253938726255349492526275304285757015758734554955401493303935136762822670583288092109357327961189099831984559911434169144606459043984212166235965079902701793135183146239328891534716420921259650536983852652668425969336320827410187996356715291352663295304871169787164929735131209539640782741123014008286637538100805127526348670076498149422340481546040937980308432863287168967618517356834300506049746610930709379474372648889332004054893909712711481699812226997348426352571381290646608301861631623747115117124071484589572552740124437729554067374192903278810954668816923789631680474488548424440150087780669121278037845402332103808788697756642319998439028373565102986035200420254922276919432357623665006756614420729231706610686043779255980445703754078313173649787306059768564838788888909719898418333072099336695150877063612896689698982575853418035916732587556335164726321043930922788019907775696887414028753856083434083301592969779508238120422738671728329958975244426191409979555164471044235723143456686146009242773317153732342136233215195458891730430680774534167074510435704512156191172599489609232437219264801831852312367677716214907978096553805876585402758347175507089630908157146191600383563926870001831270145907808320416560181892294694005558496523149878950806626051722093888271726520663779003940811931260754811450497802642459449202581862968419175234651584696382129404746623748490734016564241324377260362659020693279864847555839421953084587685822164070022324394464370883131428105432006581391041099847793872478321426666777066181659371647419314965413396057075920827078556559289657997587935908331321232210577977706596100117323203774131962472933824136313829190763347584828451982141399971321037966118093001811126618594192506268838328640229214498186964476674572857265918597693329725517216278959339368645909351723249747842089422247328384143659340584552225927608305257061051873686992404721347234790404540463491261935443158702063018771673997421997244868663803149482230283181392817724357512197269877612092553868500354165946840981036878126234499044937883657641272275122382156580212864442230178013664902585085988968214570102107566407809703286017870791059499938051697749898998565877008530401878330975132358989777148897631086597095855307997557536086604172317093733883077579159255979875250675675747473503417373565382243669510863217774992361955752042016344721707035427633590717863072865547164744504936026475979932454303914025172059757154080111843755859606359798163277274094694054726237376347692159018852517770005803732884110893193356627927313669401585139614871410536334910367972052994969963570906567301071228024780583274114630591656321360934993382872936016641806914833715476736647120770893059507136591253404161179830271045085778927955785148680031816155132641007400226869788712089370197237572135952689042694202467450773524787874813260622531025264721188609332007385209974765231701067340751223889103411869340334881500068055524628054194152006533252437153486155527885625240039243729706906395892532060975596485661732988770399017058114591758233203672477622310350211728786274346338851765307393379286806511622572081877000222602247365956768174995152417146441828407569696801342967345076616265934139647101478339921721098433531568944846490684793122579605951043906305642865330836314178046475509470562796377616245485291370459884186010872225588295364554221105285607176699168743469780398371198715665566560277503073998318867075488627592436124326555700048084937308106876784618475769611526226468543289123584058668094563455077791809688560088493239488680916970962107207445834082028135341893688497057468760573204249691258166772959896735237717948004838604301452048401203371127539262600687631074040157455461830715903208406230582243266214547480083165199342071093386436347208158887921776520625426681864655112816769891484833907337248284464820178327092954637520948295494995420141514221801477310729600795091267433486556790502600483211171654950440653411258119796088049340613803075373313287817842953844166680856914665618015165468207438972182777115977395838042452081970504134496083959000890667200682305924839476315013045984384942701369955238521346314706616335938246370337734935521758144783203933014499608393444764325091094988713686195850986599648109430476665748450328605738989423919612416269929227375159374249774281519095734900979128883164709384980302204295702913032992255339164294712563802168654117810168634880915557234247548511799874846538793592035673164397136138179082884826145072124154390362622121362315713946361014982111131928332965344252060401380614525366895636185360645693985983030868196144132078612546944109723257177961693523482230438628295560575746236308626907838144969748633358340322925495154578393514323568742508927977306772675253767994268455868049873869864597367267296680823932558846984231587957223511896561598081098282355153159612310543842890807244101990633631909798378981865710702511954106316016811740873177529031587412416705846586191349265339141725287190052883802381206251837263470005245965018005005909993248619503078691764443756366904951996787989412966163669523646141081865385766277579814606696981623405562730412510295566835445032742165680110706344921770069278563283377695945155148743593989569009294760425683585998327140079072539736470574604955869555171642176069440326446467091782362116658976405138602934652162857927555526076965618368574284076080750251864898378557289213765871209178300518099022577515964046023802925485539657318098182263974181504856220282881784453580192942807125825249167152977587656741481081668882235654487419211985895285345786715054012038059974025413024027007674674717205718978462501178425861437809777656805749447598434496803452195040046552245097285393033437666725333754541561279859174680302469220853219056062682760147150190396470737537873324690808571728092957456453574719627742833630831773014531789388371001528684233365002023719926522602976735910398448929246027596332317001504716725636661857523688771671624670519531723777944861665154930578087574026877597345969319703985617415539042498075628705789807025222182608044711685373894720483364235159586651761161745265995348519711973005809304679587587684577123733091801589865441390886316646254651251314662422338393572044692227442158981041475295711724498773479643469958773502757242531388091417458348782379905608768250572491973201095693118704103015983123046656048083189485211991611188489660093221691649578696781313736692313092041168321447404889207363816104767173500444151207696765031450889981573030101012168921646687545917810276668504535958848652540394875732350926730510201801468235293395391421634397679065578451993387652603084339732180505462360686794647536812900242153453812265092683800863351719311139249705631280873404854129181057852132640987028788568984103540346331967503062795214913956018130201217954256308256685240687741022785729695380111720913440211787695579311216322104200289808759023015273999540361834357212311826001791453634801605070856861188540087703340611575390446390491364153930311091065463397859670029016967220310126224352219814075227496832436554848836453165788586537438157734350714784189382830960473502854284762617885752759194114725332622323323846358781996217232428430441817802336302678924796151694868282917562051958833019940416028629705228978371857076383282162764671158580126496079930087923446881514450358222887309742429914366466711376585718340811342949062670834683426660621598910330686964168581635250756237782701657519579827099606876400652482913163381963391153006026725052181742240705211732464439441468364013788023031314594283857822031900734276972464735384972131286305209756579793865303956890262938902212193611302981598942688244881680990443216057264354128432157077446463589929748549922826416399555799885903334933539476639040168306677792425886331866497725895832816029901334511302324359012484392681917961922572767316428795062460369010553180047228776886586818147998341977388421543281745990060867194341951308754131572747209476059304233951289820733893812452498030825547698264977405957806248017526240034896453771685921397210344810825412080541756698548343880389646328079121591435606351945578597370084567506466143659904429009808822966639559064681788889881261912380910457861086127049028651222638932982003985329363147108658461940424138888407985213374277167608221374593200508924542824309231355780536216142647154677172030108346755055315402496947373659128166459237007001946399785223994518038594842084206254390069772254721034793993594250327447837508893361264622505499694491055308119968217898624657616043555147192084417960154937873582828421422212444266944246383602580435013788142446357850942749088806495810374685463530887266450501625190502176000661218813935100542036480911354363063048105707312039275910566003116008815464665910045289550591343032800331154473394322282316795765404430983953657586467790477082495065739866919415627529256679553648284750894795914690434686033556748266755208086654732742914740079526465358206922116428934467218285233124759381350463651613263947093228944880134863268399809519075576460505287609518776217632218575392571472384900103563392233955906962720053950778192790903081843066916277098143290458818977572140719200861038557765605283034903487617586082683574015225242879979706306152834465452437554789456125315668222195456553257326271158496174195303902419803054803577709523436427861909552532648035708338449651910376707831122647266122203019190831938866879400730751559520541968707606232279752253982110724528635430126954320039083193120630164518919688640798214336299166276613376779275366440583543192747905062028874762248525109822847363421016459095535951387462713216652529237556625070028728937755090037505162582473474350445626113852229976085148964297173935811798848135381840517248283156634103855059762461045048387661953990866490808660527561768050956507277369403718943579903835506765978435662172340410460343282849789890550450064709974059049760319334351016290728459179261871277363800345926494166445080417471790446588960893639384113855542322333481602284514414631619922380658723426564910696900007541135425791134786307461793646705052782021489075617581037042498928060982875391364185503442201560119818519774979406086888208299431622261185270849330890214020248236519798279556276340267072995306566134995261699773102401072130457771861920810862975912090173427035029081265361779576734502016949303932334659349383988800979282105805991592020485963963755976649345530389477829463940776848750534705891787822971422386400376698622988830914539442277635108352571408341640558133734391378295275512810124978608111425252726623298273493294196628287164978309358793648610809593031230769346368517365965176838019189991378536509196565675329599010887349441377640972979702011678334214275655227577712587213183070224739518508293108935298037719543247409337328453133202390007201668491880260328513533651836728123656397365719093062285577068611744221204455717257758247076578173311804996603561309481840025542195860551305699510761510335890449055635306792202977311146429902557553665080724586117539202728799271718791013259223819686547918886920874109848976662154112427835181529742936425341636613132906652134156558624066386470107278698017916521739791829579584182111281996625920131493919415287020803789832893797229682472863153847676153178171896242142245502811744166176736425570118166865244737601876841878017835291370818184231695753594654437646867162694463230623347231973942978258490244474993313750636129892873338022756524208577945325498340185415331922685291453288147830088140030550908420762764406267900083255116511952870256898312304988274313863992465858225516343472509845328314884225699416376449305612434844254258414513135724008121381364379378140792761913143684320477498167837595040181923968527378358877196089108462072800299992711378032633743185694212860394850493535695595797668548514832142194494179031379371361047076436383293326173543991278664481537592137125455354044127860164306890025574759228974144475424377201709834923317008933650877468198324908347117281780302133399311581856055277172577490153037250351346642057881497435422458219140941781353932458343353220321188194748125944740344702313193345151165975274509584364102990706467049400861947236926804732376632717924809200168215444632357884385956523387023663886096337014897095789119422124308195985714480984905312158383293104722030675191753893523455496047116267640118940443435918366205652752658710479221342257184344513872836380840864304670870472288723185124092020776261958618484770187249885594156307790235953903891611110936522430488015367143166300210740274616030995711806591419826511232616506499966364495671197050580166224924559591509973295689637386890336309461812225672900821725198449962409263426083432620906801662931366824329135461981439506806581279301838983784705704699506278445332218896097238268817642285800735055545294631788935253493253072101759898164888437979134869883269702158781317895890322120931769894314709347951639080925545886562600418850376459632360491189945238719158460754314978130541192592701615449591719074200076790466394899310153660453224759720248279281925308310868365698334112749318798246567117862074886125168213094999908277766042600762219859788437169235678194049751280846779849845474562297205522681922513994180038765232213064395721109236055125682209214613122268007207835011617880046609063059769406887682343588492490817956814267568064712469692400675002206740352747551177761395433285136562907771715767148546795073338660683078449972025941184554953576031118660018504728946398583183207375907519914717366657421481717234248258615042602306222368508247366435184401341853602166717454009810471027900220249942111147199915957318471167704924476238431730049007945879056302121964574561444321694840793243135113575502927736223914407434140999796554352421738171169750361046886213621573727820533126294812342286394298504183841191196455599979643211380086833065209787910538438168422058601728607211126837770050403841886134250961450232896593255121773434632994149148291950769517484205019706627248620686060379702010286172638178303081927122346878981003720929594507004903784899385402221303221409985102839933441026890158973862859804117869397286240171109666105485402037751948585232409662712992259413012229935986529504111960617101669761909661350509498531879996678952827125291550203012863072933264305738748735532914195770677519418174936249027806639064137325261695602837218664979994898354196740198980546025421066771415493101071009866731612332641850506932641131957836637774674366282515143925531564990211990719369890434890104113646416411723019687614454406118416772226265960715272012554349073281221270545317605509316856075872326152347997745446222907902422314841745428354175594953611783684329611045895271202064551187826279785452150366062558527853078179756033265748742220759804243987041223115496932778613391622696703874116131235395830538845602889772620653458515552174191586191925915700485321015991635629483294417237394928690973596363854151478492641984931773646193732629974656993519721674405502847934005262963069862909359379417520963060540243560174281540912143368150855418447586603074055970560257335414686369735679070363835730060804983657210003245677646650417923379501474705881115394578305351454330199331646062971035256354632455621373775268752046312300796075676381848353294313666606986766937814369285436494206519864034897912922760373255529279606069231106660378052514826143500526974430750889143718291372756990664459318108760269356403483106093737568817527518032138844108229726883823294536274465804470031697282092238502351148018979097848186519991739510506626208985983608833464288473450108622878198660195373210202378917921154849383917848324559229931895962942656920463017934801218844786587771282625868207321831210907488058224863380542744127363427518538229300775514305039749129316942366824131515435205803344727464120747652275664419930658053505968474443648841119851628240190412087722619799275953813208370289204742935710621256236336264930913498604656334006763037866815285790461730031851170927697239305545059563097126838952293776392779168478668479998163813825553868987836543368220597069152418015096484946887274969717446013795361446318645914323297254405266502993349478777102215592038136795951767263997546484017114986064318424277037152471707387119868020492968586399998117720072520565801747772757915931009846559776236934852845783031991457046960590571692679106544824277046363862828019251482984594958839908809306922738042490097497003068659748719624181622464001318763528511608910016606216860756325623301909316338901281804184962734551741529438917518087224715803096208333303940128842686996012301363752221524721512707292724536303999825484117364338778931234753421053337047985925537030321743391931924184358550681023719045959383982474461010776944335774156793478656446705697120189072486320289016637432302135639266664723846049731950748875150068118922068331151401252675596649938770866518784998709777955472516014290549191294788214674730060583063893467838664336771040183262442738986316560380224601629412519156519370333192064100208738778326104427278734259110472245244327036730919897352916200518328445870667394584858873590088270562718027012698164120278128604555129035107569420729023923225383277531565697891278700023714375529755890172728524012911550121575765277052528370845609298467013306384731494480475920671727964108611707261293770181047382427377617616032074957573369334085434422909210816672712427118186907421544816716431837730075020183491720549801028855640681762968925725956515399708219659459068972521343018832627607001792892690726652923247994397180730260764676018424050278703086345592100898665131251589111090695700015477898272388026711909113214098762471779761965450750630858823420574706352749560946584384828265641276178040105528958777046998951198466425984717090473713639641029379857235218469490675744568117624825994822625817248453531539370228588636240024102424937728491307035980048808992083983283523997558154782318258665561561912542320385124357162883839949707796478899841448438610249476994025447063196448660453594554487559081099566730944227026169619353852191967937555299115666203968568257312663767578118826155610503219256420929839530930764137980316380973552835323824404515059471905296121484592317813279727355680522510730669828886814431258412936422035327813054226873794695785840861742054833049723183858696493121837127416189893673932575377106731409208748597197014376156944077461065919140352734628842042941714057019765522569269181102810959542751810993608522597986018146286879903824796337673222013253060013071553463880226554532595947782796143032101520327724457148209608300574692203231592772862090607020601376990920045711142333936600429831556818067319524147062914737081635508242695911215399990594843220565322324845264832423081720568392798247775180007865503483442442571135759958925630384252665093706643890823087112376854859162583982274302273196080622977797152133847362617849691278960237013554532939417544630874519359826707277522503077178502739820178554139326914666739984940478644137082216695858829652828947191252502240555968120235567298324915309356434891884560299133386064485031380453751747314960243656460211172685582897947169073408095745308285031466978188586179967681157914819703687006175563090379595640894433121353531261897431930635227210568981470806447139923043444955603544949416301169458601123200835832220638631144627481011109704662386756887799809739817752637083342851536786244733781737006219254350129878337766952779828440160951916690202890755131796532743998922579169168091139506362259294456633904001169065745758470198728333970089405044768177174353579593486054282456446369611346800636810224274585753788203666916826917387590170532682424696204562873871685729682354228309493912236531217784725652174083056380820332953984135098153588745932055752606414351272215006929527012604475555078721020042631822279777904808087518311254535694246973623621297092769003476285472413615477170404158694026892135169984761945379849632785302982015167512693318629635517513363415861640004454705582738386328880904230004037027209636062207830578207532337367052552485471378280561710065487362827377695545918539653181133351313514069052431892077632370448673272921213475778962845036510097935482405534095715805227663084699855575345153782926826273143394441375361147744320653353248840416609632510814816062279056349464117248777243009368055036038060552407606406761651616952878750703303130807991199473563314886753355044478219814292619918801500318070004231249417595050954047593972429716220463318990337116166658345067239814529851347262612434438295327483606453723586232210121108221205821282041412833409657838694307556220442083461873292175146228041375066687444245916602073534753702433643398271918034503168611431403015513613384029578965897815648186348799824893567858032450627609095803435757967306712466988126307971784812801243003682710403933859109470492183653170921535476077417703573468334677690091559491445210766680590890111506372534986679273838945338660857582146952570376557546554443530690275975778277163943349164308282957019872805297719951653097487719732357766075650088436255815569697373439442217882120497605246741515582780353102579728821420596164460266763321417448302751098406050673585600474543956533797324156441678140648496108226122173186393269735307115589746129584399702624266658126971249314582641204395592459523764065126511173507089924073471529125628281591304682547378467817544786193944835159300314009587468946960648115287410224383231869065609913800000922404514893719887086563593947151904353186172282245316061675241059981847408634913480089737562490470321758269988065257054888829811854356165435708039833964664384346160623542241784511662134790850021992356208789301953019099057095923428884133346231546874595983960377222768872126347652799392822254126946270269007710382251701544591808754078435539402482494192969976303903304757643210677605230514708202510888953053773471754395536950511736094622058619142149450529781245317305126756921837488947972198921519477979421651167093226132003412695085707841317274079966094134397205480015984456368251315125963362822460531381603981996782483139300989996078447216186528348498531780281249822762636144706528782417811307432172224497038673947906564391935159486025876472854310400714618191709332147121305074849239985599883821310047933265053571780791319202712873510643773206693541694804351890841222058366412168707110438615371046871054483018817384660182354351069075892506918379667840690165370014532175490038617734210744972976935807405100943230535381047664882618549235772893774987751149720989012027398138930186292760754489972562898165725584226031171883229990240693475856257572889574101658788592971979594789663341975345005346480354280644762793545698998240459390289057432788799113020725612413981964293451058880799272790418393645554512037145886032743378195464057336635233983912409504589370829311473340701060451877694923817439130051448480428294064969160073964848868898661260379694488042666243540473052465086304990247739892275289353439329832755103967214754507909607896887474756968067120072941974422328283466810746259068947329969812706448365132910767934058321549158609148216552272361651273891518706808908460924964533298332774730663326910051287114205932035586015977597129356223376551076281767830103443107895481281171001564332463421417157742186203208997903700128096401532618664540080964556934346898625432329019877418450999613002042690377571930834915325924978236260570203230432720000925074665976233525734302666063318782655778511309422396301885256590005926204594197707088881942156598129462760139361087495522347117871733655044837502899676530840515476068022163982983625416973523507653488652645832133351339018254636053944935002491608261683650628201753265701241253058458744473018576548733396418893345721023533835092169389341414091767813752863124287305940653104869526388444170126094972679044773493598318811406942201158203725570428750080782922632078999323714531263851956784958468785395605185530214470249598597400377534397830393326227519582866549367860041030966948332766853613411744127879856232342090147083763157008511640140087992054003980994462438000571774567985442410097630606674302203596351982858602071177950020892533276539544176008931634215475022551213955855259121691929984861872270454018379737166680136173644133547938286055849264552147774208741386883252862586926349704393309619261526150464034522975248289390266790965843125035817087697438150298248373579966577981226356569443162150360970490041102202666892352814743298354284122577715257691426083019634653663112401576422044684882085076533254408811906459178854242212747486435185784557263980155840221388984473070944667013891633144386358738392195979307194974043145036420244388392342892960962337901842900107362359095156444131179154819693384634012840520251847643338844142089268671666397624001948758289065768984917071376042728599714437930088248436718117994248383715566918693138684796515985278082805697617194146953083682558235950263305418080652670714020221161371070428038476439455550757415997740858380436605233621502162242968386112478967263313389420447110160647551592959460195730916919374825563881856289347108192266727338601231946827089338222151717034891439765920303096500901183441999098044071264132371528377956599359861930180881283243892775624928909746177683738364396819274762518569817824372969695505400842285451004664783441592941033121208425339438828037740829356074032092775085621436417969633134090493663883899498176154655723190575488010099667949113638677556719033797856872727778926294538634962655047339431221891449685975178229083047597018089790710183639247185524685116824930294080401606060390055573673950749665682839179381299446754689757139742195436624181258497340657921404203500635732152529937130166311044311677190184507066985275003373463740505805769801055186602827252506695526815260058014078946197312798233594410741651229298603601073355215991192239942193912432925241635563924734879695435789766628990602131726463729443337445344374586557037545399771885536670721233484313054227632744457141661326695089256573366160023033205565984127016768624069732649859219473218018768774938778696548949398138350244349221284729554965338574539098949260255707467683403052608511594117075092461582881810933479179330316002575806341270038528608333396852751957325076109269271969568238222377617673908578357024454982757154125818886663456602889452046703493435639675609992656587993853083739039559779436687334343674938753106891820964533662860049585139700277840073064951052864098919452778530625528447508851564710067872261122967552987321870273204807002480571089565323936612519873525083853515469210744487573597393124006384826858277549944554859635248879807890981897287958888456296607531762774620582551296771432370819692635450911039937054433681192925591272658673889213666741058319338463337429815751109818951709892183388780969436545856650425222677892709283141331865926112220855679327916483177924651937690081465224672982354808748108069383951631125006129010457403251245489092100264468599015655151494514856761413488224504796100109666742723242911635514622544415970626277521056804332825209141346522759876965632079142684840781644075523736846169263390141562260445845876489433714309880914520879741655889799597728299945590401669691473016046009374455396823309632133961154232175307707346999186123775822575851181876939335894987912814795006647832017233953725449277782580753750242498061021273645559503611218222068050024013208663248938097953045476229048809011360581373948596908435759548388041339238380103815757227047001357124041832773798264978971977033371762785094153137610076131003990803835121776025575319656589835229860133465833119933324244691083728903800426999336186773218612610783054304798744668283713908849508563680593114314584368314032559116731267401282016776155819182501351774413981590149032574872806872566525366251699563342654967634422501025347611178385454322577735194052147292300094789776379771583579748929219732541837101152759868260840346149829412625274693829723254070136297395205180429815899815328553653092735885685273915062861050028719650830696057039912694158657562393110418093378578018723031635747795970500436289489902612132773857611946272529151032772008872359575855111375957869584613464017755280377912030781220893829153819706223854934698670261481688109348073257381170098838990592689128171409528588746113869612078149273070769538877776561767302763335482555107004528866352305097624996466818184938041237824955505438517663036610601579680852414504993885706847981504241087525231835835061247424406771834962481334724596481236558564976387737786981287003141935759623564320178842594814505435573908489782762701139589439200177093734980588911396291321125549002214981355431542157374004766282287952275149683845427105605425809831124876657206116234131382375333044404254049843564286298307614087284880964181591055511663144940704680445759955478741434802563210574970063071310848947310673664278372161100057845819778508203631968009934885100829266693899591914277180651359389981950086421963906078278414428102731780111325722025350125001940921200073917996125544061468477905128174487983481822864514601599680059372514324996724091964488328653386766137171291720875689659425188441204996075277824440890868209187082494007732538172267316565097161273832516903508482799959015600112409340990918450259666556303521754206422708042445301646704192014490199021770598521713628555763272987565905835420951047355171456099691318311474833721183403499474674090503192648789084184423719608909639759376334721036961609718251241745287160882322190488976761989991034762118047492256661425624683517990414171806262526840763572299292595219914214068827756638099129922972950299030150985705307836534342607612716409099685039792093472235318177007807593164542965687912869583179558973120144710387046695689537394162129440691069600188927771782359907186950864449396560651668182285833002158446922029001403003594325642218445247207072243552621064242293613213875390546671452926866478894430325235332789370312612114098382441717532205094025362104254914823926696706062987749643952212284975874785659463786769873075650206213308258834146188849019581852450274169328187987107511124865309447885695895745115181720305578012650672562453122168047746719292880481720479682515746748822237383092942384236359275357089403065190896009721916239663144761838568440584976028569042467125692508950636011117681743759362471732801907004762044038282271868969408637178299495953025962909418523827059713037360027049463714996333939513977170237688224672196537314614747672435673912090221324155227200328031590985172957222941333160263293909046724618973310858239111322747059844312160145244942015737789022090613196388213360457698953450198484638526419767538796451251805745852750429409169854601715062049687213253056529916082332218719419550248748091115331239341579692234473262344405162260887365399159539382134474656685479625849626025187590993506543639820236720416277426931646579613759117915613134961775635585136834879085507052472774329734661351951249900992991687444520969854840956659969262819312501457201575549902598110303107090071021545791449935471859770790857172200624839824977866506288116925111243163469642411317706670557878619828221227098518694567144247232279323490533180092356411971953039671624738901397641677848523067425587257183847717796213741263734052653485741219184889913880593650509147630565775020247811542385456845454190006487498726725620114439999743159941488368230759004007960945547377472613144078476454604643785929577455493902998196233550130054737189683598270104704669888460587850352628365761739467732483314814487535916843607464437679657159974980725917345160438734387249598019884456658059059700402003105139587010712187643528714047736922539653021900358446896363712960171365906188509858156131604972081532216865578860359968770804769075417128845073681358616796274619498445102400596950315618251489723378069173691204328765525907832573117291250230539727058555618048518713728681717737507459159118157583048137595879101601581715357622690719798007779068114650603856992595958797973937920904816881439627124301110924019698421111362080223269306208901734465517396677704190537150394672365592736373722050725743448599498900605829045348213010189039425861639136552348385075229085794159737979920153965631930192048546518283358257844346675515879359991067278149401547024801115794648647771141883769037597148389216283997035777792263256424928755746080353335452408863063886532747095953458276165290236503543932397101740784196523783192205766193056247213405060342376418583280331014584256791079922791930152074783663414951661693153068138362457396311313794474457014535738092850018749198898576343222760676228420522075783105262144750527729835384354270564720564639968637380119320997789061418527896620763085728612800540054144882200951881749919700594290430533706917162664493648626193223517397916589729019183937770337349503538018400145798106142010522097742949021562128050506310433684902085054496330751908049626841393992678506028420628902897175481419726616369172798898787657049967661000665501566509457974942586256972526471249577654401645786877159007766857713460134541180950230577352384706631150716985130657986931677450786185225498419149386191091261430071488980388258226475067424383072289759532186398869540805069579466488018292931698577787781869234055799868556254200783634913524063748942861890234562886507753743959920853859439317656670922235000255063360961098399189804874622541287589928358571382876839953928545281117634780648115558432336086717712955482872990593617616745639467875651316454175078360145481702089795954498901676385890485667041854049284125093541636426065590449411519443034340456778203110203177676992011411347863056661420770951524815874824474201811949713313359922180986273112482233310664087125806469176535352267511278970765974596283418523180355191100822166476913615375947833109937274167310912583938552334241712176883531237915209243756803085240768234057848669280791916729619079213099090011421602122474177290679689658812682695942996918410208500718782519497542421719140280231200643730940955363449727691524981218188632764171779881964410216971683156641969438608890432658011467072622271066672939846084655922645235697416975538361906338920187444230790137020130824078326364171237247519861997711949150277403534452317676274140128094373643867234876079481356676219790620494103987712954432648735309605126963366445813731744608187338096821235189414285247627868520624537488176780941768617536904722877875278583894199282303370259476855495056422495196288375500989120723950110091524564398577433691651204479745591512370914952914286799552001520412727622727524259725457426389976521740315712947717762788847989032683422149162560296139983363087361185348903201864541825469371620194940775712391829296716469927946748974569882632923089555299822811733224259454189933231207854548345752426420658972314865494549995851689382493916717329577763235281589744143553782899746800264005504137172282635166174174061325668315055451700883467210348807144575286062765790154827292459970894412260699622602481831251832453268317153944491568536696515499773296066311827469093591842299678860271794314509068183686424532047669278123859095487486829590599849966255609524225526369227368179404563541749888973524626236368776583817008939911634842550276629682284731233151140171914751762026343155220488240779429523347065505206916861176343302910275285415169904479624390928380173666980138806156693972204738156041812742591819067043960200919663102148502255630809265397691880625815664606153006072715699443983557282398088007169683726115329299540516868687944122535745915801577899637540114279789535817081392259129730636199545501426729751485685392612633196269616803978179091588751761450422203951124630621758006673300739697624099305260853642414994620695995651584067813219050609385559275542556872003503894574133453729427622282825229848155090204557729031033158486906068128457403403422891569994671776411476376272350392089850773828668269359656592571523958253320301935548386721726464120349622980278217056925098827420665910274666859317614062856369399941620088735296862199111662603548409260211742164227612831438621708351058823737039581603934783945674959774852575696077874835708948786496712830399158688632016481126941641190038671390839057519843679029993291154477432833592175502055942445789229019283952097974015062695449958379797618061148887742081704657072317696665972426029934083056455986736505537181762822188362709201994672541274936287910845526637079692658889912779912481471463380352802671029639935804890682047664224456315464569019382150072262264986655862907335065836062488501177976750981638799034794711085366534114129358042400943253720384585382950295034025978388486258470638611800260563629446860709818890825648764152179871246519062066010339555067814394963080462993551091441725809113754052056421882664777713738353290000337673107029212560255418585554792182139887212414380731672182135595890045924850521884386442563496063665108462136430144032178022136194153634609120571160557432949489668826827483357531064706622684365279496529338897758523809441094937638513730175237781501469020068213665489364917187965912604816589375970928236537941533752330692580735004634840556351319435429177380678598620161367334470164240296482459128712379117628436817155987550033348881530211659157765816825038867114753733377828408450373799964441888952966824120332483265087647312090502889549398061401326353632855201915627669409239256364028831072996785289184600523941640658642021364216959248107570470376468270621486702918938143550105435896398927924707524061235324565225936487944656855807001076967576980300302287077452135487021152395777752200471761338807357132552659697281329116671754360560124662663506896953579172800751757786838041382477617384164591793031757132002208833224095663243124088197932092293199123551760859491191324616073375423755697649569280516370407385057085646852046418934127398611653634137951097718840629108283308742490668939379483742723130339074051034573293902200288130543717322849593253300571787949616456164460354070756370854478553786432419221161292467432626771803475571054373241968192589919888776057539264113564847315453119946070832020016398522297644915156049056762687754428795182093231905874652632286626146862692359181682505472493911872890921660307781976290009850579431650013503202448709378328407674562927250068819991957088553532481342423755574220867104771532870918849269314289908469558058926353053560462031083748418054945490475534441352374354046610511333642276591759419878518555036928863292153970455237930093049529378438942410475881516616317008463324227423401395282362918425099555621148784691498272530777670080346696781673214533704058407734154838933358243515750219416994276370493546266364623398329977254430005117796114626635414943568655058277092211383309926238698977913572329685798327331228952421117447010737098467069586282444070286849530662440053590807544504395461840907313128977567842625927103095529689677265026879696081666103947815479150250068985501223294404832295363602753407433322951357190743611504938910149275740475835403989133433164023122626777386921076338583129176372674728739329296246384658226331299794993251834880593641505527530110344777678472942771614159881724142698052689892974938202549809976076823114243972130965423634301656479746905411735691167012172297654432534920012314101717218089623161705684011856862448141455096766481476366931897495461404224699723958380190865487706174382121681471902842632149224687276007737725031013100877369088350581507930188639054773128704790068096211357285411010784476521454302893834009527733006689223281190075315909989732793294478245263636034777521219826521491701092624234256552203313924712618447097456386664130610790255227505547768874944885620417963592337600604973514508250124254222986948419180021825833703319069865565174345937433744477680849968272245690325955673133354850427835282501133245306469670071066558106229751352181558010208335416659402132475801081141735603099139530210365822777237257004705072436019237349431725981279143597133283264432391706015804868639189440155787417597706873996608865841119264936045894312237801306937884501674041409751508630325331661551334529163590884129059424396777857383856908225937901143011225266187892753313057178488966683776700936943577603520079365947712316431006260149727435382848630928065627515855782895483836809557650340328742346230018485167332917211328618559871702017759143816341293425041635114580446172217471763797814969380689584419085458686929339077481939276036348655332649267436575148988723251636266761699841997815948169262808277623932369577670747393023316657925173539744411529071751730940642013062837517740286175254250769139881377081120988151996154035854799519359675998189643289663422505150750213582128653478863260794244387381095404473232208267062134536482106275536579106732559924639434395694315752427633036765874296794902066482892624682469351159110638624607482421088239244154995547693678682370307140929541580830087410985945223072438680021877115611994141308382230345510724658811556022735873989461404194151923433303871068287503173475849456752673010996855029082612166287764575695483205574162832169535287081903225239525545889728353464153034646143184723667680604643706357458603774571654280782695109847664601561949171125264643214586999867851055710804953218816469674981581624684875706444697200769266989224690577817284202332515601307711555992967500022736085496291032315084786670176793070455250040857816806575275188452819759365766056693522876420594744572651999602120113166878488232570766649512242653732532244777741754531058450480888940618589741376604295311187121391622429869465937959617355651225924968415334979253732574836571686640205395036605035405044042592618999056229963711021452980817358154650576578417242159546937767003584623390338946263509703831882134339296582968862131822978185937871294002481994785297670079193986109767878600822127825513006071027865691531343650772540316611443926190091382729379718537962670860182127313335383412472856349845698840156987013999485901105103017726850008351970832542947538673988740891274501422072419877003920109670562976759873923471911772441080894684039214790129755138779313007316928021323138753515648898026210429573632783453097094838004192089199798729028852846612439268675574181369678342629108926463977674156788282272781285718906736094882863351993088629106644261165513022313532874066811753000533963363974802382575100995297714811785240904638737324705226354534336213976870445034326565316738157862438999038788604685336570355875628964682655339809141448912906963853161133677923472974183607289254049857845441491757832543191465516982344892717280610661278503030908203485105687726371066618489018403283919562997222246742461977568738276942201752764686558240740270645376346126715610106019104840673244986583736999971840446635705262487480781046153106030906043733784008601988753602417670382147275683192466695115397736466210901537212840919380290097473063000673793673857605201147931407655262075851014757325799024717252138315768152529479607455106435612006035155643918636447757834968229954545181908105277784589078935537841903606471918193803833073582334675622545293301502355134839769156167602354115811550013339897505290476544276844485644895153987311248223703031160347643384951509619266860680411266274487828800125443807566309746993726411830366947030070898338457325626732752251851374020484821509739431336207098047996053297216986566251671007418209685240097089501794810244098461973456388069370913115239788598385368162562044182826549520450209729897063127724526850270109380469754097042461728116119761113709835133295541173544415529352474554106439019770002412320927611426964219253175800378149361294774016489358847561069902494233188687168307003267145651535882477574183346769741287555728853521455404384935201829716489868426586043372972697581904114857114264140684104778239977682500520376516598119461824879892934170633822757992292744787223290820365380142066688707009481577973754474372175900787040047432797977803710902526426440011318091340309885469886550335379259589733990963758766303549699597969471478064102022287004358321047901228611098477587484583186567859234416660284018831609693161785459035264973631575080354896679454937524904968032324493117758395656848635564915472217956441979522452901948360966936095204221015061876965466430948148892023858037917351367423238152087098617327349692059299454154271968975085940614944590766656480451325451097041096667300892212917281996171949479481638928192729332627583155646778952471649470097942591079785225184544611235593373404153776203853004335415393119218606699753893789033778774784920392113377004508383832610337031703086870535254940300434309095260706679740462935603268688794226263539688913750724721261905055992365731368307612253840403058580447626540549027667982265052063728431822931908765213721365391850702986148515684012013710256368441619004258632377612881295434797975243191979240555009729929967258162102647551794006313934935581801514258504651640115149262939179603492481604744686161011897863900845443505818049303825346603421119433948201000026359838438504346031343085080607478931271168846815964272811984339756699673135538431702168222368118584468425694878051857049655425304805733305594718309541741009474483132863913519730271982812963983097949438632072225498440775885908922678504760407391863370584112390967529039188043730446793082177812396677098856307611491633073512455258965164451940334105490370026064121627140665788232186083992678125899662243730390781282262636321779920194115913125948834822045287741488895008250020161142882441534360884603363118459921467906305114454406433895911357925370811774870128853436670636842376057261471470743184502228295177273627205124523551192819852886633870557435390785776025812341296730030508614281604742477466194505310108497870686929290016749185015266783355621789238942761161491840239016158157686019415821934850892184702380917078890501183396852941372092268859741203931725313934971803075390025065048271130275285416447825636568012450188517220159528335564683126750371698179441155967737221991181265619593304562508153287554068806511064046118661956247706411859624164948306757551500191318320749674712265326107663710287958357039197005220550898349949193849437202348523781563301158870083729087074294796554842569207910779630095363459725224177765663185750381123100860533209815369602068109121185813034212177823871138681548766994042443554819419111720403005258912639232042390699021188269033633366480848791755925312115151969496853630905254953785592138541733494970062332745746480262627639558704282498448789893444866297302078764030328740637516425542396286834729487200589097264468443976002963606051492133386124462988190819560924127167596346904721264507051773217001999954860067880884420583694661611107124201342296339495589830024900563660128278582580148411828932790396905173949047723248895626284334337597709127640378927734562580796636201409001156785771670375829444877135336864256614469991886464019218893820723820105913711094792443382244037915933670014924393018320635354051389067315271137435737244292265586719331827697199550822523959618605210772271275863029079500872822804643605256776913913130339508545418871053625957772877037819286960698056215196302025553113100029684879643652852704085027631744354347993799757623910844607886079394831849180881758195023290587857943971667223868585312812838203125303430426436842860147484236099093334826917576663741313622727551783909760545734956674596866521045925702188220954087469706548722642542562530419644234638046848989163138975149441753253899697244672708350632953049740623156300940272141741991058107206036783878292549688891522430385706341143090646625709378005407940797080041529524927796366856027968139091154337797807170403843545362887583187405778020369164553929242468205699265926811195808585989034449852583700827522813127711887090631063970375543187600016828301039930620866778340375176458904037232827141664241044680280730049033705710194118850205029479632559376740389157245204143224490351039817654689150213978661692753182434524522025322088485364091929545607509356885202326593393029620136967832651553208239608705727824491185318286983451292102961255960186773614645688483991197947854942087202887742573727443930367532651083440575330943447289414763251314290451254068329238938367109251756935131964660650150786620680917158171659747547926136187969412829738101085892936154363755124435912307113519352414099589039904783111866675170452433155918453463694993743096310893429733665853679259335981511888738126001146937265738012882746699362947140013101922510709725036427702094651197083060815398343108686111601239001617080717591585584717378659839741275210956768796435784353398135941581615457552484255700826246547481352055275332820847870663497530986105214214512107043955432523957687338215974742390614707648524552113815249598765750908118648775353608057626523824436077034492844367054335875353641947102308213480032707782746863148639027464007548134746396414943157271628891729716401435258026738367757357915085471923179468965986833258615980349844613439800860256996652557674684732263950735071839950187456373282030104726776754211654257004028507492313845518485299730706674430850276943311846796926442418606503356753937556054478829465663097667629367615577345446139625821330344925356206755268769195180227071305697554109044788892406370888315924256116432685537607036679397535683377153279989243362988629159091858228137299313557068097072765872940471143308931647631437286466146797137517722964567194739085016495520198933882797770922288556933977220308701121204745235787372534574326474098976081691377162740366050680954849452241831268063251424514670378291251363699281510101373836630270016312181945816202925060514162674296176870214091069361558709068085431311877577981107055105352763575393209044480750843080950781201511580468866527158850469393447263668544588360407733950409554330453750276163599211061341547452575564293516938428786448023513542322806388080283933012968146081936100401284213683740326954061917302947790515573604191638829548566459777882432323174395047326619585738860694464940774729517374545316074646342876540078920467251067192562623313993055961071955202680387844059797630820998611062562273923131491954959761463017394620197217100262228844437862942567666240620125196711159486415707611470156978733437064584832546487212358878779342711092740772389931299457531002950196268044722496902873983815604112797831393479836897509596225303554324962857994898981238109808672183065678058852522790067059155263721131298656704472968957998402110405703568147744820172033614081075716392051432582636178410689079812047733040036352770925722355524973463634618519589763905592514127392065096971458008480022731391061562126919672513392869063407414426134067516948868341770495825943305273087483956196423510091733788259694576398195962408759045485208385184451901512619023106225948561118158949609038649102406173830573217342926749357904441307219038368262418617543280529932889281210305919982879989087334594822299721632631931774748892630575043479179992832736698055494243645464820433305610538881081004355603761916706827476220493769494140785872519809812523120228166496779343423552729235367913209516171029776177951062502120881984046623615834851927587492088279435103843287284744985001895192474397524151775412509506044142108572155540417886634449900788442592076003079745968629455044682653009221264020393644225245315008835820243210146224790473263574549368404478244207345633151914167509940449255243732145203076439145434087097032982596485018579694753475355164122832146095251889107669782761346505815278147154016864505652871990360387879016082072657284979897847438844021040706970878480837582559904648376433724193187258621871149350339554974387628045488814350233961161693344046211494398770803594794962899303913097236022136353637481047950933963790613072050701486074359681617605094801672472719010606272492845789687938804522933244894797417073835143342771666834050168053400303102180155163923667531057154457651114128814691024382530760705530027214241123237545094728197173707667940161392299284374911390971024519740008917034529231576889917803243196601171128563789166034976225955103015967381207903329636185498155178106091869721291654403950971748684765474508494792574085621880051745452580149216871221618666742207109013000482502978845342515873927435334245395361124260445462376212982147923474915872495644891272291319246360141401439422280607423150011716101216946549826715438578751194771689290303860375512135859500984479875461739474620357899579026675969504527640872969664232647246123021719298360647677834294937514125886934096234048840389650337965893182500177962392781802123664804728871642697891405905534161934573365983888612842258222847294917567561101954403383141603103001127084251716372456612056965362409994422077334232411405030432531695121757329451739685501875787268453319955855364049756491006156561305050930883746873917878730226565931129464481028445721106323152472981167615823711479646245184935744725856320101949660640906628778212620810237181305439040638337208627299012696658858661120555548598601829663777577013438128940680224560811185485355879529686601298438220444175722027476011138279344089263744750700390211430937256749062649040855041653425480057721547189080373854980328498657850157935429212713457467560994093597753300753813135824318507567238055310543734006913871974916139723352219198765431654979524356044309628873358643972578475010927391070478656107269286641763105401622674290958411700921670222040225151265849244438077513091898781991619210871016801927072114026540989672956397426957032750815040056129784375076047563887392228395358741704152184549602677679353425196000913460646626222039282151520556673273351194556645899118129602250823787563595254583064300836514315760403199693169147367609346644423764297568728747782478111860720690629443798064773689620696879657479137009131565801566934058872111357713994358935690916856421769709838460819289888647469529680688843835879008460003188962426268722713121023953797604261728252381177465440112916431563815617961254325091479262567572197160869777713883432715547787221819332293917515601594480702021167982382822718366390935636041704321321442981901203210381172030832400073845914885684195733962228318733400946040489446756895524353137343238907789758626298729819976017661858775091277794379928310607169672149351543007646202697420943491939290110701694163048803660515453078115472962431563974709333576875664932841608280065730958850424710823837561286361776421878040512607912507100796812769915785844620686132272527281609682885185125299400815041004569778913416430903209194386609304095899633577774716230136777507401501125841908962530214670085142441161640799998270056179989834939025085752282778462194919609591859215529539053973812438376212935180566531851644125189677981582784854455441689761122748032519941908372348337941490085885861264003480833939715106874946438933883406155280647614886157830119633268036395650695388210242607080671808708547468639786145833577677094890936576589844277879058898179894025895131027037057649127083086371297774340973362638870129240656680545394816484678230220431006861918124513616808497477509210213894516696139658361070736944466663646567580859856408957098050023932359197484196376443333172627635728086858883626798694885536767422800382222157086498469543661002566083265988358026579125887476285958436610777944750752587871610195200113056866145287571540024658383727654950075387044493642851526537023037441546318839894613415225698136136423586257567131312301613837976470256837284442611125641338642350527451745923516112560263322190889606819270170874403458102526243932045586696399617930989591495173274098855278680768409327662944660884657459236486149192141469222950096642987600071460137246459621991523139817719829449183849082792333654085544377680688602299330158799350794000331470582886832279417086945017975418550760263040942008860248617966883737067458718991953143400493581753482178135249670037347777351750012496171461870184561744672057229398602779130123272425698511895976091321801173435848960066990632252205726476178475244917480057046864477564619242948498082214830782631664545986205290526383061358358218695503139924766356189687423175339494357005338286754406233572861264145710251976009029906147234951639374845583716132086043526279789965698490105003294260287142832577936843023980953883083780705274560829379194895030551234179298251077398274477601398588082406283150396526757320973079149820641491348773128531865161385819598443378260945687898785726674681280956119513038964436477288093419171689391828623862354623325284972619105753576152647157578098341226914125994323406394180902454737803664505395641232898479659294596323774028724047511281211054358178806677716446293283845213244953110807018835287359581393141800992967309528263735084942353277321539889668373117758058486066655890600690011435841663056200618888132853538934239883144149535794007681334849789683085398153090057683251564768563547771525130341586118713308924548666096221648015336639215069102315689711778188560497945296297984613610948456763540459157787714778076937230996603956014437493010883837398997999960393616645070826237922877336630698588245142292360962957421998284314825368171108337376353006212324304954999253501063906056413545671736364310611688273707024595110158073229308792799895225934676391881836479847795375978546184514359958115830449262660013612974233883304673829239019747692433693618236379930881630504054314265951192469016125408321858380213604457610660193298711674200221349836587524710025745569913537634249617688622686288648721582482987093480856501893944762500151962508793536457960219360917368452009233491048466317843548037868203232702759274328161423286785349208142302708445643120080455152095397122643079565120597207393172086334816327507370525674077914645239680778293485127603078379330098493203632571762491241600002371386521817330274798646921075147358779950987372432185155846075500376278341334782741389809696440031975098305456795516140848518133831405464110027383082300414824393591327256646735253167284482490834260300832415658488748484431239921058527033333464703105557310123832707208490424289142978966095175872205092407360065549924420730763213944449946157466284223793714050250116504319973809202877731902394712841694148104854455695792196776157760260476672073740924459998452018358433197079171902995113295670215223341049639019575061191339908688623581486068803800233117324446834508890574353157935963607438510284352301016161888972516713659135383515298839985714249730795128516713732368906782849001757869025443977488215937128836197243019831540615025163815739683265246327846750306578618069882156043502471066473490176334691100169764283665714462534720830705238108093500012276857928919308217035969722403059226762928827803273087649255321031227461845318219493990147345760492815510683385897810596336056484707861509054466965304240894825790766750191308136151184365983987580330290405359673086756262697862723959981835714758800958428745446803159319045147206030797217692584527676779071586463165687560591831865298881947947491123205704759503841038277125659585104361962507847968895500160762078653374085930362052297010368345003165960398770142175156588093136554215097572423953572220822535167448131086746813573371930554128086058205754655769818663448331479886762368141426688489746432955753910316842930896277239145878682319560922401262435945694911271959912186503718646695839702052970794404691203535097487650197870080695075774647539528560673086289528372063457652050385760205103642844691051818679148155873080231052435557934403398611525032625859987013750173739864335031015645990365750318891917384990093790937207672905479965062261472103624074103008825895193687409967848217764091255433016246178001607600280830657136617471248314097049663267819280320374586179556952798239201015064205482416988038313853859766755160825728309572449130936457450721768770557970093612469674069757470604467578752967432985495462211830884156532077196156076048181153537566224507889073015933879524343118709132240627649703446115695621490785567973930188577463183964865735048216726281654476324095334079771377876359607030239923387042274316917337606826626266072708822913469993342800955403908476145186309551593018196959005502604792833205549090357269943081712700854550750828418668506898119212758919524027351848681283448637616310545683258174208537048943284760991785844248083459804135652466178392985639356336178096716746197788603250685685870252726315751660028610242073239279054297218398567604941400333269801551527265438233866942848745347181988924337509246652280683171896997307633789284331743363694921078988755742614431990108296323703940607477505266363391742661615182588373332385280342996681655095358240382760767240947285838517389727943283795753834130705907512550758325806736155952552855831167928524061991517651421669586527951841025354088195365282034803387814348659751611339978070771323085120440109653468052582181965810638022124225573654219663948998691420430694793694901909019082156794841916018937940338214637580497723090790029821461127681964853688272534569798969009498836873408296137970526401318369606662415149174540351297148454805208880726817287387468885966466078856461145856766160307405949072225040499465665051377567248831210148250231135586023838383670973040553697342440407326764135017468625676605097419955759717356697314818342876024656558047278861284431483893436775460736752532932972448191112055134871012227214122335051864200977207470210788022217120414460797178632488082911692980484534106361718622465992691574043228960931166439420382013669598687115985716620514338420951236767552044801352757824932491988153975558526819322374627180006803865429544653191767189009705914992693527694906773737745924797787185356944776785251182120635671270238852698484268387046689257595555624379717701911375717910125489712426194074722588369367342374475444284733861732906975665907696879122481304317247496283190367895628094209740459756534955344491758418955929401286932446306740964999346534474162448248493726552237593053169962005133921831640947624337318115114353435391366421602652488881609526667706504365435993699966356240821306112789297526694463004169776996098074790077997925041310160823382299432058808229333619156634408938565914572926038550979438252856484845051172165943472014383877865770836037347790046559544991671845805033406689290201498974360522315770968218591628326888643549433038065752093577701843218748975184928230945151471914623579998973784136064620114966435489477227448769592295858500194660883522247879535158055203641300676981172368969612742627854358515604063130489278230754128261912586538223826826984445425555931427013218903323291435907290967351280889987926303784453472415109699997148945600055999976393534578462848287861028795405353433101154634692686338163294719128325006132615016873576685332700467945975532992299238421268961879289657511649933585891960781184243336436980692806667393552811298948091402264102289164632290297685994695636133666435173863566796871394689231153511085894641763890353848099501449543805737738567383648943255089407055704993173050140596973045386202784355318818574700735974829959429214405064832980005868953084789501454148510608498391978831380332237662302561210426492498725888464864865784461248517090716698244071850291599372108192305186503078511303119076422406941900193962675892066534776297569491857968299287247192752286789205593458942348474558546012959366631133094455631358603068316244075880963167796417333494882743457697103321212231138453178352064176143942983416465842820981553453505313028536767099344161244147878524003183034337536616074612288022758004192617372224875474525982867466118200025568320132229532142827712480092585538924364319870626311767745145729615322699571578285863888317217170261576427293743869806433332088779499591559392590493419449635657068162253737262431246562508787117972394115261706197963916779332162380001334743368397154043805704015239474705743826865904858475735934886268510129890199000641990055079635417011170436972129111309509068307137010733516712319911835648690825171973872381047854617402690528213984180981155879355280278201344753732615611504638997174003457913991873911234058097110540396245996294056633204488644595416257600970416760829984196132082019918913141119965630223577522660712521283121762682924653367351544374142678396127467219280606606981009401083399191358281268556857574239508344612815428480623093481192544601785755463058151205820003449009212235618712327892924641503524054310592961050957206463926591481645248639795455367950459358612731892676032901457301796947263221464617819543669768198787584725219134858097752325006710634143930989442072835101242073811103872147600793100992187368407470203597461596658581930769488437752274277288120123070828901186338794884293721121296542639266831535204356545253201959943266568767872791798556690611041886784481569020029860331697465717833385120721973567247603600801650606361517179553535180520150023173107870580657274285687716928768543560231856395119027651353184288881090010101675437856492416932819537411896377056386867185499536735783277519776462589585229077353056313697483861110591687989259986792792578544520671621475931562511966737201513923964926747509359260378613302901938836095181840342804187981354036860785320757828296757464266896425433593876919499574129321290285142943126928283175593141656246317276205637649697263297967075354583809107333518684486297192793578278525111261779490482839727455009985054187800430890511743624693880347179916373885625390104780163744378220604363450519903640073996977877084593835026801599418372644217261001085874603330611444800152089779349665876691748279534956377857209831041164515620823901563876771169672441099497433167340993837530590501930869093989278078523670937295859427369614363527336928608845257635881032332187933718195913177945989833876044659075800601329296686619556908237901324707798911955793039008796901981857414471327600622070672646699657108880237457331490066574689750880086407706580275055660844035442745246858069126181820193201392865810405286097860477515099675067837079911516553601904239372539069643400404765478643698202285793725829327677265744576862039942710408900647023815246352903521774135140116642468117576953964659540012202159163572245206907142736699160956126618804026526573765508440509048751506639520312118317492677992953814593555117610063030926105020671236292447395607204858983904807554951137199026302403058698019983137277304860049177627054248191594133062699647754497018897633401328702481886385649019424677905350045945963499618893751867152904827283097614915862794327668669078077371383656070647389605842681497439522288097877762563985070175536687380605630378002224129179825902556378766970466630406206428348042440142642041794542435428991206342627198676767722146153341948328226370375763007923340321575502670358644877557890668073480504976778256052282989772067932475633550540247298304192304984337425601336159684000650499392390389704065614798845024934859410560379902147142270478816934819195953283645693344819799663936388742010524609622750092517423015914757716144448583212008143361097514123915978049530522757642522082378609804642761634797901824660813774910255381149084543516160848496194509173489729899406906947372123206329717426517429114507419537073260504975162736704410459271699106642239194024041013506913558191959460999113613011999861279186286681842184765946609426968759034977506491502861020353906673623017633025561798831292848423745614988038971490138046231659240042763624063543204176120392094702095409439541280274118987380314415249759836724752426590012039075990466480129333246003836777602402389421742725976840058116004502572690761543234685094175575567381023724732031796108289821969537105311411709916630769344133123974073864109156362071638921028221412302645194241182072166294625250762659006378181133643804233007595994476305513823508480184824836923289852049087448862999107912988717620561452435529219901988507776945135071604136993817595722713347078372681216545526757737148404256519700819269382945669476121666110494155528394417770561670277609024589288336571248240988994126571135038635104963080067096427277307217179157780318833141667257198098550296390690869117856059742062066417885508363518813465500286306681418881759955468343598698922811860349694573073978928626118414048751087234414218673639738860708414330322706492820360134744934576156363053656204804441088060037454460473678092414422357154903282505900507071090868795157667506900213702580508156797017907923689249668577605121481188343703484454698340834097602167194897801529269397908310987249462212289870573396825747054644947834809912216830544161630942280037202597105996473495216185736086299493224362351524328985746304610332758543743181464275597149233679184357837337546751783518790347564528918307830230115452153508972480235701841606439919780286893775966405844727043204109925209676515823639501386142048804871022426404076224840513408995417112965312085348422880453297709090562779544319126980203463292224130029739702815830372585302594343705764823352522792117036299557350677462582300702753132947261027481856337262465415822894022158492378843719338839860815849796354783794747554150456527813202597501762838997682617802288539200632759728025140520106305051744021783210166521878551063133617346205602763154467198711264692153038193324277781433253445492415671069880378348357109547032969627866677837822525099890011033864269200504725361520527772211561451317459894689446432474829044457610835498615384198126425283966366800189901529839348754690323516037224258272121690201327960042910383845167917918599167347327118827942747601686247432962244297447566623659123464195717922058007836979579581500853643977042331635713302042673216096285076249210106280462466133391654730900109586657673717982388821211245751274629253336407114680194572502178163698455617264102704809888425939340870374304674267109601419881005682350132606526754991115413851004899416652119322945944068235116777137715254439470876372763200665546503854993081864516333304262552330438184892926636210959761392403746654227552602044674597970425187128539505515192653581179495069183474381731335378306359172894989038111830943223030452931021204351532493309951978444290002725570076678310719544775023396333960282603746500221250654515496947320081928863246419068745521256455193842913436022809425200477886254025243433615901994169292059225185966222172882234916143597040163972675005545199962035116873108443673192708331678876180766506144120998033825931739023302953759737438638476173687375408177014154659210669887154232774487846574265379787788614288452429559113806149931791219794170660836160245070473792676771336496866918693262229810645260813504600655086097324959731870148033046693658425460176089749738584441714969685505971211531214347822052415706869886663809191906048386658035106438243743056960221894553653087808879855771219963228845112649294538639285347665478306658836697836031817275993625976255512600856706120577576481595123899248576433875720934437268955505067266028410934343906158376629958586807379651632474950209465169690651869672297039655725493926683299152724324727363733540792109501770520861473860287058674863855289101724420917576851166575093519148788271577215473741300693975168725231858013007581741369982348860722566285963712598830980955910980226160104706798175074864132317045365805102437130144329516932002118308788727339676830181519895865519890928913423996884913164988184669320808968284466940758609431784790221796244975910286441917231329482354162134177676615560037000078375244993879541284031075851769392680376556856701769789660816193526329683397764339004086371071466934688534781663707615593718962303079003217878824297810035208764269056950516983210325247781096044434667260013133771536641038230374193505076487449122884112148444773676491633904739107010674970735109007258477219008545738392693523085999430376552576439709545911842679321555227980403117204604197417881133414831903896286532318940204609827140592510315580345393656324531265151658306058473627539524404022005490642729504519571899138355527480320291797660836269894365119479109700211321450484497914235414434417690788149287876670035505240403578550506204186809287174623979123472021895211361300952018310348971084469592203136786338884961060280762878729935173399791798439297427781271780075108046987643014063169159433617614592339627566997599855142483638154284240464254224634919045817707783339571804832896954256182297993409674488986985336495149460910264033431653989902280890919972203676800949702476560907108363552116638787130350357191481894156762422608301304619303981743491964478498817586200743058794666738007252439941454665433622711013332035085969329750243967460107673790323938232725019518438257728089263826288606091473168136536760333018536367550825583625946302176167950310228806902767205869364083794981773091428849498730621159788781538473445259037959840939319230658219465807524440839293864719143202442963020433026042744864807087665127161653245368888242522508239796189770927988168858717980663928535389945740848768283493526274463915412080800375743675012545856607403757893072838230654021649271489475583365513889784385434691483434045551064983162967152399482498588445545886826070819632545915305598577543363654801165834016550741885143231885881735040723033772662754454669283802313561209405760900524125443911350382881705921493506842319850194931271020543660527638553267651240211574197825764394451319487264290587557245601788083285758533208526167449312550392649559598462696231910804048823832726238898770653810822465392419643740048859615134908180903819304445778972854846737447533894900374586682054285716507453653578739243743474560890925342101927615344096592776921637685858033953998946790778081094268846840915773825981885511941980022949545030358597329544599633695287358851336900851624756267456770036122091828663772932099322578826149712939444575420643022347059197630565841615684387141740502665983901644953071783174666258665024081030402372553304529051847511976310299676129877932581400052596576784084306076537116043954908323754936850755617134293941058032622537813487564076801898038461147098419114348460441810827389285732376757045266696883699604330010752485636210836423070775342890903023065046217727570075397226155733501311728600085978582721804006669999285897686011010121397373163083749292000015432940785660165997473106442872458792186081339195582024859535602168663917032405146644169064296567315242097065010393605465878719551523407367288657261767674698358621674007649080424985831263261342565240124757964779466042023582759051946743838752064079545124053331382594578411633009980585557177929590239335490608857075564350651700116983858401263859959080435885528261232153888422083249456064408174114507179356085168890140863600999360752081980559482395019890825813124510770535198813781060888952576631421952529815559790147420092876894486361366826776078768186729719416743519357588322743585398663991404538773353176766821098571870937718142762704994642124246655039085848367610031480800453458670659852807981565025888026792225920328054301469593434894453749039520882754856342274040980678577102654766095318498587229098425179635732621599670283599213024562019076939254306520706801354214067515904255897896519726719186281663396310053070333116944817016574324332147727740512318975812661814102439397618746613422629639048204941916223087826300399365214326533267882293105867794066775789103285681622393256906500122265177242768382026095083290615462532031911546365674370891586797005761066039162700850914416114640328913524820429316584620199772822710192692475728649603759323332130837954821802701833387192075824081822656396183885017953666757507911388604781306195153845143317546709036064623569195356243037774824721432572443924878447748774559403006161930689984257044265607857177090863702835957361545729682078941914016082322949804240109132442860475482703169542652981151010403449724926702580263933617052065762587949430798853260947073752342321678795094736795120618450923900497707940625640852411876768749789022171975227711059451485846651321281819261897811595572132690212412379910903835886829400788899528018099146069046192486724888724384012397244633834344808208071855352237415388467370636466501769128114318633343338908346410809426210201800957142490274976128998707006535464308831980932221723575551805528734032178155106689204141060308885640163670254702168520254315680166247050907551520315546756096656447858997073066176719666116218345079871510884702179659491062500654709724201703956980699553368534037434991704101909671824378411192695754675118138214779061416432231521674695490588373815237383078829759684463264725831102323209377798749560935904630365851822430527372178859335888573844715281223794085963597322144224882368430957682619494510118843835373435448519850487042814671821381062901602423068025789893985464154336660402989695266809382168145368889397648038195096598231697869333980673904593467541695955031570183779029066339386941669596048675351060292597644846202209030066467192042335983773606733856117390554435766261467302203405330686099477836193825544139635650921442514723989542921743009395299036182913659602220051651781687003777365936110745109328551063622325381990786230726399760313555477444339657966557401949607022126396317637142656246170073931331637231301733663411593851918575766492200369209944117002536328509774328949422462635544017178871475469460853675340219594893485497844071053113739632118409000945866284038404286352321323740871662526965869440384095454311327008039173508975739231594559584087722526858143247021806026729237677232475472311357090808779215243897288653495693469456684708786898567016253530589048666329152679392136533173166132299885724480940586869152856442926865293401405483049271110122419089315943174749295120048687328058822544694167656377850446444282306133206139142021923356826798309218310915600415769416246305659863539321638727689379071085345775057110261618911225473772159602211114610853714856664732767124918786736428442074073498937882400862206728824081156848724495141510073321524032824520310398595200177133325304591543416619099732944918777337956460508353826716873854870543143630830332276502208995172258156414086861290328122414137848795433194994413278905653096682584617142948755241853908030372990500767084450755951983682823382743766949959503166565219933500285711246728982616661158162558639085425442394681746037930334181633283394786525474224866646781535494233542628765937548371553343060539824109077132719318750717069617085829833874648999046490992234627219484280271041602629146470146695843960015707975347445900290523725798389659962122184253551672014950169849114253521019320399401824393174320738024754679972839861360819025573696281325733640988601944085975352588223877600353409076482153716956832729095775341444285113575459362024356993907499554507466470299636001948358528287206790709675496417699066831970140798321540377227971487200795514140060877949496770952841228795533050407792431409479179202909721193322757021999946233384558614932267380282250179712738157495471221205049052332074396368406659835911740930097315100475417305735535317887270280145098341114496867965733258229661265184790175877129883844925315071517555345424029371429281944547406867604813910767313050698967490623792109153359953018116332345464403517304389432041070595106948793546271324541101430760711267248794499132803687743309954718448975395992074256160876810763343201919058068871958629242650542584666246689337720133107143535745040063404636685355288700024853892399071710088494304382968868050407232557783590121620605562946876412383156903943352068353599283374498341474836562819239208283643193631777022065919375776526893341242407635709187459071633050188138948697188466743602955225175822474849323811236688778868777591225122825995581988557737596286820691176311657755820747390023900303957474599798448364749320320258793647081853213351872127345181527799288398785836210613376824500256261277718093002930193254247460962516125707397275991449358926395369519901489593745979510573353157026207206946404956215634999373968984990537629229364891743301987211482310463461047652866450766409534327456613656071647757322887542380591792381844802550358823319657351882261013824215491081604869930740167175029784738746071157546290305662821341239009920907090670100048477474243741496767609750645645740375059897441269768996483415506465409368240186734654761642580932348023937873052947208131878061400194502996738701925944954645575585115878577548235864154804868814826919277815473114706338400727189807540273536092795379809997350107830694272441139484009226634679031625560035131821936092066966632411026167698370443624904568938099528194024863838401476208026521596120932027752785102138026798055842623784462118837729069868679782584858988527247189078086854385669894050934733135928194309599618611929455695334587326330478479221657718850068985450929538229273552547970696157566196014048491703596381741595331493470581532445509504565143335664110309326528870046507235018738467245390750730606482151921790951168439424551115643024748186529786408438470795527398676477090440025801079868994529739607899895789056155667767431365860610794777921953437229878067258118063234308166430184077000289768348140488857965678599359960527218878726963693413576046387686213847263492295186307485477971013978971955272935839019866667117273351979014949204751722639336314411523948929625081262133968802218555158938273477769318645318910704748899543454862657061813506338273591388634973119172234682320928257131300910486660645767023859069182489866321200429442272120735936355559121379100726791618251237562980621476610955185836347915946342330133529423794251023615711157507576789980325342945309747408976415385044366301305587117819062194325333424055753570027138143372078549804610696329743473854846524051439246374701802176490710719170768775696282281278277043176247562537772630348040187198276970437914663492683015339669778021369662890558130777439629814738040841791482751494928932159780730991183756703811804402115658043816447106616087703040373751315634858844866628918755707497300440316097526026087948694035814095285180239614962830469308497943064909018042429596608113352665201565823002563337577974992162258542450788527267362544988481850690120291763098044118573173741115673716225624938819627427250715282441426864341852135782125722050306782873270494945812737481679059322715544604715740964977413601022757581364128299103548207548951039738455210401314570680438508265891786143652802117939927913205742180575759188298290031462896892381151448116432623539437469414604387329984526196027187240843975741647619084948265822623628284260851696495813622705615829476876452587819083094981529933508818793888649238413368461434356410644507039534964832041442163167718448773210632873840534581541734602741878408110649316502564010456470838374602742493974900397773074673544438325591486367277147487486029883801610672165951054766118315184469529622964520882781463577145485325841437360897057268573668101018397008649124392360651830312666940601243231271566251759520447177637434706065311389890350979810872765288901000531660119731692756276014293206277901256491589675899915091689243735050768874509529047296267401055822286256865979387034414525603925959803097834827856862281556190164351725830785126967357343909481359935966408605289394313711286030177040298519407641188024858405622931215350360109981573629670024634939767044580362117678087698626157715133748608369776850027778409633524123919447756084600723966191202337164868894709029671010707232048089917796512916652529184444116778682203170609477493722583515544627428992520537584820767355853531069764305892378272131720395136396614643765709156370571508531829755392664420463707546012901700581538078417185081013145979118478188403925773372456246040267000614888475802565804630323415804562240347368862564212950630014747965728115341855781981869559559297975830611390093655908712026236328933565162965802297682509244738468596942054037105508412249454314673093007485322649700976278219590109851612535693556633522440889095198000981908593676169781541368800129089788595749789347938731506393060117151577204186196470270195267891950367812807424956762538636753877252319086588271463729937521074733103486998711426352859169481394874265490606869361560250948415125335159837988730006908615080377674149405141293736134475508683010042577996299009390739034082404477370549200292993713731368618792750464996123577893849956705710883237566833385249659415241368239784931437053719199612112770302669760144503721757587382712952867089104727446402040771729418661451194009706830911283940090309696991043111579702429435598758068296221800229278173028956583010019564704890699953124066921479616324540015082208176008854139478082242007596572350442757058346979172987719878621571579330226281433364775118020749037060826932279801313954715351440025997306940595107652182975143026103138520247883310807459641707916260903472101169472780859668134389704006387097569044078754835621600162435873826372900962420153747408343265175970424073943239819853479935764512004578575538373077575603113905072187671099891278285936427665390083695804983507037009437323376348744627159800333736811451180828416265729270019544271034407271548068278277126976188039591403810465886304961170824558775377201411253532403085960148414834700220699256346384106927873398567680035543929665101187046920587826560880397620305974555023323887114134913176882970521440323890740903990298840233520076077795485276992263159928358006394007586469530985214839476202496589192864988984731113967352361729341697944612270695136315022533518348191535968813190726358206218723577803797561077895980351300698404293186727038222660729341363057036396026557110435224166002537699167482568214561987285848459856248568974036942825075504155323593776758642035840595245193005876379328397388781127754296515973837272402931755193158035989374792092015567915278213739168292877073040197718046165922552442935309227984667294001259131100988948560849668230957505384817079277354691390906087959960421014171948370391684041339345352663385761050602854360263420039592145150799214296303967484221752137065448502570982141202950244211565478595374859509648296277055216955877594915843882728778172557264714856251122923644033177316804149476211524191043409052489933807373938120262441194550471245553140821691333641269814115389099895307081460125402546731591341064310154758792876218008160911156700506005746985755224397387777035465255073376129355206130290631686696422341389743157550067845247348240579162575039082256156396955333168733420186360947461909347099285788700634563041530437451897386542022730602900023939173228348699857639757645639607345055800190410569418456125633417526200127882663931722865714621222379025436597542066736325981273560994947128515223353522556390613668641155978958221471362809320180627408075542478527389477946797816488472294577927619958612548970276682056212383818629476475502197544647352608473670155374890709024502090271146540132165771936637087992688120027393502412383309317225240190160134678611639163004926281344953612856332259023238454508419969181639535705051624585642633107235970534336518077177128326930740048714219778207229952634517006662590673825148149192409712247013400107613575523887288040138442659278795279980707122277883658321759223134504158136283162622996457533798778158294116469310988925640112981469736896493998700643972323868453500763305927295474793313410194933098966696282409680735425235034634277251396562030694127334395120832894481543116955369105606990349313588083781232232636708027924574974193212236599381256775961707583974023858714007747954805447862816358236537229198061417845016068748046162804513669878096928780924665805097579888135308454136882504404058223416071217400068558987645608761696358468242866046259739323351236326031432576838463022561129606162024891096718577403562400221255662105096267535858784796657081900848064589300802835219219666519114314810742960164543567661526313290476438065062492593779968420992719552929914467682490447639382978692576869657187643269391775638423467511340994001897278056866735700074278987603196086093209048080987809210388748460553764591646158825582903212756435466352188549794839217575856967474550928220100889989662859723070156567221533106737199924186300385269860191697401693832090447550597173765604020885126506127480242439811279852504676617339185143829274189072533056925620182292023547348600694742937616247852417318878445778032027232246711517930388238967330710646198143857825632305513504941190357327817175240008453619050021332587785511722130112578135136626578631040228345537321443927100151814688748981773638043366884566837302464167635954218519087615002586859102605914266262678086790562409090461085483693618675298054656331691185629216641612915483244499714032609739560260639033481927243459153848588552232484817418228370210080213753738360944197932357840965738421036215170546962691452506072218655240893536241929541235622306917866547509893457378426574916725724187502932447511405643735721275218942612174218595709946288892952660192165723882961018581556369831652289539916725307148735062729626044351061115589478870648479254948253563244924352470485035207140360953920342083814846809359578738073527504377287830242958922754301993027466730502326048051364790748448070979971719999374238057359411595451755125495789102064462786540830222161646207575518109332985014028655188810503101237879957232723255478307999977474653543673036422004466229184925942337771476963677156598423263546092496475232146108200474295666927836535300439404179417102777738330328355555256507313230641081604531124958219171880971852152168753891716979847260478557526640861331687807847452936755881504914159821860994809977543606402190210306302158594143642252240913070592506129038637084573941400563826033393638495960171106484845107959127792835286072799520197074620955662618792483979839182479925060266511315976551217440902530096092019816585794925014324695732031393109636674208347988099928472712681330353048119282981089075074545599518363412594469932213744923054433131970544219462436177403767044875517870786238105089977235655487005771554039328226144068851774233800655819709100855414663114951213321612319610218401155911163138313167776695494812134646263969502189682906966714969052369985556220096374403279816136513774599822386312230780507971395369799583932033855317508621515273624481857433069200567876603822100645986307634283234671302390039115856378849545484537821128926205341384533807003434139818557608915730874767716242791476459312397207598015482452128859142018116033090627086092045558828836898111198253177129761944125693709766879399010841548991957374649639905846507932558212716937837813063373684838201608509043762947970570450700490313990487546810475918412162602056360436216896916212990358781013101195040348744833752524873589925227371180271943353918722133875854772734047716652593815894798138709046071552674576309147041819379044078208980958634444709935014092775351803654370747897769445112173791241869162221469444598126790438092742686118901519043033273209508581299154397517541807063990508013635658712428123961283017545772050575240430460473581341105722465198114335348498124404404677969233060793374233772790538955399252993788096493396177840658466102573347260600904270457932984514541689250842065982281086121334473415061894965542349099727729790935590969344901000172502818963379872690795261881574134184408968970904458498714753195228554583316280080129898289820834730198473227255212260290077577084423214451136675241129039737761844203602206441886358879355029547097646947404319850233261937865579546469710613648409447390838183270936714859797936088411441594293357281398899977054286204769050003873746229826902804060543982487241117615181186258137767491156580992688809651684090263006256572605331190003601101929928107467673909249244323496448039370003259994846490068402075528942825268015841158473186215559223096354177340444927601835257120919425700555005455958442954731743861666413211104642517963716191208825472957850738924309910809854473453162903235040314317708002253001856217087336395983279430753196842131162955149187938104313059405190388447938681806558597947365215205121166808433561036329996242703852935338102642129696947115490641704644062953809571367591698236912428547411771582151998077311803772665088385688409212768760380452419908666802539697466393366001535999419995865475651983019781641988514595263062634268933048382425613393769474083469177629487969802904988971500592533700736231035125752083893529585261387443347746494654207554454158912016768432935218104530051719468724020137492961123018639937323844951029346442432378713360993647928268423618240916973594434462645713162683551301659574966303891742763534327955914869672687595990426606606833309735493148275898777649658053417121473079074931116646711862568419768156229981377606901529114235102882868733725113172940853604826370409408100228007183288179997848642649890419531389721048099458266854713460927651650573349316157226791914077550079655406480104558646843814588311825387993837525546787830052789948898911844183612672957715904972711210115026091477611612245949066771496773979637454095378168465373743816712249445921359211339818875062112895088719197209632632222178575583498366255599966353710357988055086305898597664455582293012230848187666693272073147118586993771277953706345090795322712121820600328571623133911960157723498690353414843092974456258285516764707734923368300814795658961317407629740571217329802572480981075815528361067234301788613911587055952205927646995598037619825973214167903337261964020313004471488029373359242194454126870083749110402026677298470254427029614985376009057174993958931528240800252452875579916741538951059343737250095342393751263668928802694341431854623355013214568389192665240532434811960211200781235455828866575067974699785119009716654913319633708614992262762813648996895494810607381006497283812180212582450390110644620783346073647799290331529046808958962247485165577018210241028954268149176404633087698651117861548123756793228538735764755547527114855641309687098540090747411949291610357369871602779045695580333113077642276565855517049874188322858183849328131779102869376924569935296464233814199694424156379472333797556588034156993943066381375479751640809807129810359750564295141932617941246758469568966316479231086774006211160911954183954637624352170449018485655200797734892569664130021749050001619227754272676748122306114074522205230518513488224007778018617511891482264353033230810313675615514754595852150515792091058410118634283725800180738261974387349812021683247170398495020870017227974485130688838435438848085497940223629834073214431615175161571600979993809555129335332539756964002209974780312368213288743005291665266503410630790697462353904140289502903445461418600139980029291970430642698826066250274219739711716608911248846143687434627734282637114108088247542813683309203805808428389377011826065291779203665853729609172699553659291048935516644121133002856998510649314593339435928555610312031274803602531807582148332270606250684301966286222685423178399115479150859075398261071093678711567376674955091164682465047602890838189270712231559330503430860617501238220615934301321112706107848192340992653214393301894269160862181129371919112561770761409469102827966866865374561592087266173430883433534507617206755486445211710788401046753217017445360579375089014447872799361156909951096211320150645191947369154273317229929570905421521155645292761935015014998443784598390208053466894649029565160788434160492616743824698073959015011563356372738563464307243014873750264153954604054724596928403167086334327228352331821136087263284007608521511977934509922758848975312384796031421534216603655213764503059046641327147566820655343586347540051493251137690491642555992798435688710034689209786445473859678237567350607612928047355042597356966904718346074827108102889304614438000377734299355856348635558619772291609587174252532238477643008495488189777691213290676559027735012587679720095107182857515278197050153123297672781707607200439124609213506220513812685533570609194290955756113909676047298030913563923687611282456152995453661617505202582503391145281932453288008234314640673441575075951405750591862481430401629959196967936600257617765212484551433482451310209354296818864790613560239822371699168127532807590347349906866441633972731254848627263197595314016622602963763392741211338894259695832144469047886563152387294202771908058332204189428492443596606446512659833318036079298791566281523791684964609428298646039564623026384203663678447175343354379526268973900324280227723370885199554520538402822452978553611766618561509171643499347666138784895124394050968864873800629207174397973513875024496252718615719307269813774968271092079876572575021542845029275800258028071122880233488850741721565963680433516222147043867389950576999296759758457031508257865689271867923183668611724992547781835257502803777212304930144523644742528331699474309647427115703898629473298143853586107445272382746168167176636082043009223348584452481863232656808004361963891295802805449512229241772065572426955573617839444057750331436680427947586173152714829718814347091528236476157186023846418636614215764985253982896877218535699950696241470483223969493814704095221678313487667458293859688757965120584060525259473895663129578308878148855007055359265954134510925664734014102941738575496263075174145191192507436255451040085700556962735470563110108279784181112709912039274586621877495245876404901334018156439118544544241844580801419198746076374493491813676626685143723365247804536248085297863593367274036752312936432623365810329776735596941354160438350128235854004699614411453484599778441207610233888847381238940088059831758219976847003709165953441340853339847118529642315036022585079889096434653862942445942537805586192375581634386026918530804815700523853233993736182960771904810346711537284281417002218465019968305723956286775465267164816134235117424486320456393281320373663386990251647981450189170003918324579283636804350655106233204600892095028387668625408021724859080002996847877795183259622366624517216811220679872549410197880630038914796075603602263925115009628518053881341123388248398638288961908119005081564457884881395294490278473714910264303760357513838381834577254390774427325483687739414762286153643486842453731354879491028048697114209188561508297792317192582455898473323432188341390727446098433906581332345182576104173333401660424672082769803289205505827694007187550774533374726896269615360444521924351093034904543230448350948337372959394215598706682238942356937227958290521479753736769035105008889121971926968682715085223756447910649390934501007240099528732452822191123342825178032105380348067612106951896823272851413522085343144099038141257431703667047149030845342670783562824475650913604988959928712108134858403231540379070822027962335088830704749081873456916672284244451932481384590080839082094446551373197045932127473528488955988552576088674265056394393008415085048326996896484629995979177286436729115992981660580621031631408341168623393039360938318173089391164530316154171303786378885788395523685946737856420852984311092596563074020631973186268658506881703515432704476887736406443604828553162313702390970729214578228926492289690666456938419040626042924886940497133865438924844756935797954489174023588263255885462878431247207351667696174106382811372472301018729898515293806670807984940938743127627408854202231376809511392385021662042724078374412151662185268661508358436610289318454055672421895442763015623944918591626953937314794093959558212625164263134944981926710500944385539903531280154531382703434289884234487082314666288002696974942339043422845382289574425084832907428158337993182445377377503665673291780854722872406911944119398159892391916632208952830431753236917574442553536476518401247710187125713746230209962359856712225762975539171417505348171978520221446504814201372145728465737199410285403830888810789008082695236267622079097179823989561755370380743115698394624901272115260502361235870120621880551251962789853128103585562158455380029391895344381724040231311002347760166593377950676382699138921575283020534167133951223736811321231594112263031100004852128991381323756039792787928597577107391429960642070765708079726423045276579043337998191420581544350387428010888523458767823084255867239394396621963607648937571758120654626770830846541761552971409495410549097710126836423471959907072382004324965683709185049875460025651110865547085075809531963848508207538094280170944094904195624830556697185165517140333264770753418639987504017112547641867303706628166431894985202105061715252376398506312915511949483232828268904732691911533775882800876389319451028254406341751187968175199847701193001393926947055390215401237731404015259553873301363925920172777953682738275145914037269068158495360895220734318729710636892304257447542905186312466614955267225172215236481963573897618808104100280293539978197091619619469219740850013314728232179683146694092579391692084530981003437463321059684199869621531554420464478275528768890642412622214791009519607760027887453602167318161604111410696389501153364687767457796900928336981117322305657573540194431252217078322359219970270049354979612877619650907911807831957906337342993970982745047701172078881561011773182123163484808198114705489868665163931595699962812965548453341455065071492106376913589625857057233068544249820252037501886422329609901242420044664167130481754014358939170299865773376083905021075795005733273939854058678636831307280110516884573775788429794816809106494460949630346705347133541427577882747035656842515042129857958735013212270180419985200752372423877667530851967125087199644859652292469787469828581184858833523847602360626648969777195356167699439206067605749410112885253537122739133939287601904234332976960690165538887232131317625502247189519370745499699597093427642941070974975839573285264845175581553813052838651375155224508605544436189498361347729324578637723817123525437376087135941514672865801472456662281956448022033733740608889869548651048376452840979644344131330282856868160423064706383801206816269056826740263020169364188877750267423992495356517394178486393572799426230794991138070579881369581758662750679782277100959115169156883040037726662467862303956959678731841131295806541771965872702637209708000345513021457570566154481604266549934540020389430595731910929850864170074464785879580385959529265371853317836109444198076521724850342404322021296046302248139218016896529794982436973195062828147278882686383892191714270867095238744968386598956257762722040869162243063434822584373930695598250771777251541780060020374954275439210077347006613224443541754767109039118279126624730320501073729736064850255761950562502171294524017416202940362365992993414905917376755704759318464712313922629404190656445172112741631807903823565722347197475787750009685760305523511912097307853888697759452857305722997560700697751180715208264780005071201837434390331754771507333412140829835487267213240985122911632189972880849331624985685150116243385671274707438047166745879627825924639372723788311622352535258833526332917467079681053219725345948270801263121407465187352885469592436425556183446731274122964905442398294327874820759721063280627927198046650194243914719431036124715674162824415065033169516709390126579578222979689562805845888329527337868590269024714669201900008686523821067697938037450899981690886118585968037099716337869416818393529020710814886486432357344021404166285237162621881730326904913257187234188589388697160273923189979386088601155332416304918398808994436597217405042554756111421625491908964580549473662060551922250842889702450960297890253625366658948418008622347929767328290461304205499241017767947372529144540559727793371667798960522627361191824279359661506445101781918990399462813857411874656163834985096056280225712833314784548762179451500797120052415676503702135419589307466009195815410724370960316863087483212142085743416364388159321435569697416237846890802178409437920353604338260321292409795803676311234277390817613182013140686541371973839517372503609290702081803668769704765047472727074548284555060401813820796128261358718654448946070175403205010111272204575985646462599254701358923192886082047700261075007093324318600594609291889687394801573257580310374030993852374032698285467670334231551394926861447471846842631904022186904216575868085707900671239469509893597822573537801346457389159191375759964178926132059805028927611279598480409485414374950619101643911363646612010085946685425750003513524981464369412737692275287030233606541739652850858347343148063061961797006726612972969420021031284606266967667655565910315926404353932763114821525114118262003517285067967987180963658472878505895853913934745083220541224271367934158700559318725733566833677431313655962925480503422839117095161519115661937793694596566175328129991102337588944518024419735471737507276830084675776615202246767550017692008504008875874529973790135155645653124607846883956292533139377281891554961603918222482329598247795037997970368708611813468451757565899939289152618377931940607051887097577612147315259372497304318876884919675772961595397601471493187207895722174988986849558581649195160442048303828343693706865848978740137283469483614470158900412582193359474443148469242735483163427571497604404722678311760325098743629120364311762424892305933531206199143991784789760337609337844031916976557188536089465361888213017441665656362263555537792428107916446564370239823747209209872858748433924895998048039922602327020617096833167388892308200397060156697325615275285280950935426309323025226447032671565824671376156728144110770552354080718037975324168818834586038518256498179483039271349485223358183491386061082077079454611074607803360784741545167774024157368054262925953169107338866161649346212292523252200464367092723462677402206061503683393058162488459116002437891655196133076364662368327982368334125026879975831655573261407953493162159874530535561710447694592339846139912428485185426404883358523268718726940448799172527317473190831962647124577933137013621075529670960987536804878121672336474487587633517348934839307505929078821361075584003282809169282048549907696298897177812835371186730631745789727488101391484326368489901913205777516389743425722510592407071293406236415106815232167873026384600265022364004529868725342747133892248056288728682817251440736446722976706509493717759857609408045001025791402452008520970568117725010217458308959110963662712830567875315516733456551358569533711083499465954913088816343511867050113316042395639279318323431398415359749684767227130094588069909977783144987273488779099825611547209643642082746120077733619429781678617511904656162357129873811342971994241759895171575977030343952834329659992266167798374373897649718962688422891394376705137805816296471821892383946455863875451035055942669597852219692280072663661496809713475885016659784377403134336558804301044088484160890474764798125510626672312159963781162469904270430624178146862511147428849964472071555665903199884440745164900080781331021885491908542621572214049577333621621565639886341086295817130501120324506341777987340587440846370651564971708169087149375674951773147733587653120692315288366171774909017789565422717048019074599553160850337775972822659035478524184340990983945864192022539962861636798344246978978394001028380069040654217128775287838197972024345832175898413679328037305720113931451264117248634122556184678243850904533642568741171266538024944846742055989225348229506603459028703153531330754046312158525572709711438361125977488566326703457397400922361091616733379491934487413803297899736071831271170944086204524825535265480819280764371894569112862269872371995148548479237790804574988097822690800693773471739413243150716006710310454773758694699631989549301969197079387679145471872220464862237519534525197827233574023915110576017006697902374861056815318701576426865537267835265685872704334249569698881295939207466010416064738639914849017891230988118217276196140886471543080707606604955691283653387378198691602312512292315251588434022582005498876653246710099065712892460180597473237296394927747014758341910623326705699828248720402167825839003428118520451679997488892888082630800323557406468384957185473491410291567976591620396595289235406782324605967717314351999939101732250687915771025612704332453259369563577625018150214646353473469746341206629994175298753697845121078786708500143309251193685678641766321382149744524718000818167582863370138986309768626612890500485945828657291574532998679637241544679797469999735811746551991520959514141853968981863464224150492789005934333752230331302427749658720956873391144454016946616833665572993123447873443012939215440730421504351752103878542927847170250752516861417192127128560137407230918241836452220683428378475814155412002991334119491501028355848547298118599259194468689896296333777895489368859973772515718821011853540317538402513161369737784919060757541370978696389685287376469451842461643838211671558420870756786483453475851064959952480594102495818301893272867667299592259404550823235930363691746812354711092135965648762554791833954555178231389098234165101496128735153239626210241348350683170789398466003147637352070828942074824613108320693485406227470421164937708942016863913021321229596746332955507688486716211856807703365945908355951105270062279809991212157067889644957992543970917697068150128230381430813048374380523183016834105611985430462713137507402049782271646529358771010700112052358716051500096551819562967202685433689502860594830704670476328085451869455490817526957909028155041487409633003914083672449567063991789946335236958965225585034549816529002422036533642353900965183619774150718293969756258213800264908053009669769268412609116973255679210823699727815708907018618069118719016926974652499998753736697156800938176412205530494530061399089382607858990487474506497093340679111513083093705420946881446438045569070290711999443872000342212389239608099377167298550286727226822642251276169018684776832244372761835658379233040371333992042023470383234271727209227702212195004581484366482923714560977128342513008371119886319543645699528364231994551253090983412146086923684845200202768978490165148444317818668721016833797298928705117672432777083612902363277186701062284421822209352484318061612171384779048680013937391650444992046300192400472626742195268448535263439370764898461167885419187709605043643859143196100865437122882116479818559543479927776638230525150645302762639807703013254259837274648129875099229060838869396417791357033676138868720370447849546507285135674826100086938146806974416943065533667349151408992145927669898531794367230908173119840348316218094708970578138132783674078660870592516281508608264385314683015784803431980500221560144481617797876331546773481176220396840538968823436036925128087642402566018423234238963004995903438832859846579583118538750956075025000081901448201078110290588009478003859557827004076321873619866007381080476824021712325151814528367990691533655610209432673238202044016869715606587299018171596013716303923067233127546910774217294985621540745616435238095188680688494425597286787860481424032428730850511279953522614211231819450752066763195424556560651665381244377129500331770916241312803671775001040839304838581467263557546356044964924082437615643931746175587697247355311727763050211644791955808386067991514875669402629318455192099413567766245076031356704532075026201911046549031681318291683307128922729304885658927812853350814868758206248109207563801203589363210760563491912122229537113562330236962170616302151929996532858068808514439223018710912557691970517998905632650169169065369414872213070851428084089681730948688292464890058634076449061050636954220354545114231863592442158043631583947082073438158873154738290282017699881907493375069671328297689818239888982600785984377978852201077677499837820138144817701736519833620709497097733997588666351007600425730464440946049407502412849169631629998557754921506038932042402855733349516888077870574409223452989044562955660888554811436616510570039378202014928960239961353369090781192613007699260682097719197526391203067771751557249288946491486784313534901749800774942043843070610026319607219794746578704218404962720741288528116641286896501826041181910062556810326134758583639927711726710030829795085215664883436837780224967008044537437503117247147053960089221199716987920507746312904794201535324876443393399474728778749957307018864753706099234732174023725246643377501529141280786369394573198000119134660054557933422124764875261565851950202902717352149497260023664884793042795896645269720154206386508183906938932165998119089384303855349955726504889664818078039575329128539904437977237058726487502786182576570102323435727537132395637739423952923473846344697184035317374615632577511345267826041587280776261568430877353453889871313790944008245019482623979471548470870402530048012950605874691413336137881102303111710725937821153419999281022013624139146333924611452655955826044197592573959502362345421204562733496297413783754756399029925436751619918523937538656320132606721397384622434216455151805184571019637697310433986375388368069357885753792678612053372995280393570348007452039159761352537953172431076247071705044972245481900565238917415359904418971716208391412368112601350266973439250681881460454180445893099255367942167487879627667768130116634990929171325184681137035154435026356812035337847839845035156568789911681359088729482711777733310535280936001159397573583117869074708026519565722577565814184247047065360713760950265593089111538619641365324243639040141512968821628857234487095682038713161839620080623679155018849907440435283333223759728233526882451365622267585240426693195719159648114300354878374095193374105564382912537240615945484707889905471802071183824998352249328500467031440266683080702746462348621905743867003158492912625423405596773042315290333551598517030930962056691504797967722180430911555980696781264388797924066616753122518268636444128697228324838526054772714417092748318030405185456894441543585136865799114367213958336640956251863992835378553078218503994687898151453055108703782416924604221342572614854372874926719413882439395846704223833206447101170471646534067968679024316939197352017407117187506035154416317300297948800020106453073120917907526335639270704840656437276359921409306988443961115050977147705990677202877239025225432216274095250735347339580367416623239477636171949364287708587953703283293444966437706779127715356024580267413373934835553028355591380668265654536519787378975202305655350149413227441414608635371378301112669397237202711983910159347312131814052008170715620896261632681637657637719100383894844747647662214839394929621866715497366835609860283053321675354200889765141460042980172723301728005125699858553898635151196582623686853542789651323291620722604599325556848854401177954068113484451584643317001736556530786918666207587011764026550485158549625814576651490881535491415627251506872848010010359261143651611041475683480759747362389108903213471925789732562704104850624979334097846692319826474814925671101641813999858709063844760995459440435089007034445088678084822979524681714133427132953707972372191118224216000403943868858985910180571684022334602465016049402303833534678004237077168382686384976406189450903479901320346158720882684167894746858211544970888831418573412888814877379127775110056795628639717747990566575898032366312441214568683751992300726472789995738222198663786107239605637020503292280955686763483032429343090043782883991160649122201147692894801844468526706715888783957809171471378099086593387914024317329223683112803259617309929684125764276138460079360838384183636953469549488759591703465226732097415066504993017261115205768294754954631613836353860887917947865312084319549841701210643739544793912578904541689732162246588792888324832286180499950247490117412743868659103325939223464005164390833336371833458173129285372087220679806349516988818667770433462481829298126520146798240072748682122624312179032433607218701018879234638537422830803161225275446983645910188000649084429998217024648865224180398662318509932699077318839405909884753127888654863294292465756427698760599783832949599898993437333154200662964914535508005719064709001313458717240897104404594403148462100788367211250957472233284702253352419831143133675004288370503485353119081292397032646672517459224616979881389120377603953459752084662048215738536026583810133243020933552395407445852815700941591431266991986668745959257491664241410514690407128632707468737591622846532671594690332623869312814995879789295527568214098128455726211987043701486053201709497771122844153015712815236457148074540090164184665118517669926638918426315123688453796692255094278869023429241204367440828905545829297531154610283825584887387995788262159649784000018728074233260234962833972088241463136993587220387601013117312681942227664017784541993710350365621034501191864334270910033029630682518529040754200620317675682340057406487807432264075960175138131816901745485776329113620122909244097829085099534427513599672357590528969488756311407739381521963985472796595681156269604318294399608482577815465439699936900176071714899086860835323250860735492372269906277589904383053541015371046610097280571799241136917770852680381955923578986235548230530198912753612949016350782317090630083536160524682190116252492268879414125312509554926789711567181133945377018077832487278694741902487554851805645732099301452589811557448478862002372012636048515341059577307812997638710083579754700336811844769919834849099252085183331570978939586679596044023248746297940900603443202747162960183263567388683613324397497208647641664765887619462144759281696456856596985188577395520700445878285674764213811526713994805819257230791026563475598733698151264194527400693824278702054441980393436636186244040283290026566651474439913020940136737079626764316402640685010616627218562393418070921843684216481851736503658059200567725802517263782247334996885148304948308921064489616021718150387325891092828349068391456279665803361715348986450764545088260094149831981008464704399850991228315999074825405890227478303278140499908287697877162918532812350643002301493050027301072569764203716369203168598086869651067296638048069468917673287928248427033222245839307095254137789295917772152615919778508391373765344043362785242509610623984037828891155806457784494044999935128609971212480481002948736393041502742814015391427205104745339920103208998450048935946547368875491582867076012893559398430472461132409152998040108738576956782847978526259109034019161945852391937123488077022561419847499707248954095087326742301064730702245153805666137616861190688147256274564440855048338859715451340567939844167560801486806205733555192301153572017355192350085934438684610592619834545112199669733769661146481246552976754974975218626055087832969913843928316658198510824986357110033148755028546032310989746202894151394004207479840414786530823878449121125561508570389060669293659195665459973222082021828444917862315003879305950043677271599974372787251344890661658861245336587561159495178450996484964319190386576864161273056720972395574692711646763036238950168831236082093062306613933638066103315560415799729490266620569909018485398629198444878287620626018680552777069532928619984014481374110469676060950381029655614608769724808488379367027010036591352823710538137171671350237094492936805028103049483646085020119259159980748228316629640002179063687000272739127355204535213397541803676931027824817601798118099139291097587267079683670079995235896014621653005635145246857142952383129989336073027705674107268434496748087616910286580802244165126385431290990694202472403661363874593734117638818664612173789435947928065032103662145343687307745203150849683334735093595726871838757127763959543391185706256356487212553150949199393885989690759817681242476321319771552019448322252197636904905038193352554785934698575244594267029099267220121346692118399292974729327507214969680968076187384499979698699943364858358155226897947391369723741013745590898047580271697369128268447587817659614511877908474711631972850924313089283234653690991973840204792903654634436789675506368386445875155548917908329038005933570037461106596155374751058314691238915582638298378036798667189510744319455945022795310162563698723398434237781509196701511235246851402374482625213596591959932870459314874449011055785883122400619493893787915461098387653991378656091082479095255070613979525801919120362280933626377387408997836206849523548113037490051166542399385688982029400686791269167055787621226729913616180518234721003677990669617159515999995046097584675139054113966129514856600493554871559334099758377499920051332901745515697564442955882087838797026844475674773762034719383538287622721947561397294724715460386583908972737493306763113447302738857197317245806705320865987291392436765069963638593971231561350251908297790568622908803115517332109827736198635841209571886526078112990583180080974437927983733252477464816158085702587908486175683674186833651185162642446145222447577084878961869284665820960991363234345437083207388652619786861241588052576835631830826987287725352887405699588022036755827363847323738092604649911505745418376791750324348772107896891194055002189603216868132155846723136989199535948032184429464864958500360991870015260047162451440130944036610610673418682752105685004021899394111883901936380878147177455366699011477844903706385875976129147442506809891118394965895057015324084388187388969523897202292562964083717078142257239801312609302565437393041971234496372271668944512240142137853252507016189840128954259577835442727091070264170650915401981272740280248489002497134620877260203753337246918046708124163621880093450475416675780896236262611417405955234200277359291595264405010591003640103255440149352278943232943496076816959776457621195129680436742724500113860568790224102614079442275935050858175016128369327963760932139974915188306156215103658816314717881724686865851382302280533997877369603015183138591851176429597698064363574788638604846330338044215091055179295936137567468360031683137368767510529577086127047080692411782958437208489964380399878732885248839302564974049671406215957856896328582420297233465091115666514956013549392886535836128339602993276005373059202429258928271110267410066390166682030132197046488072048207404866603613662005083732604310940562820560583824230488487219655510319497048468802452938533837895837172680995650820834114010830675994734309686958471846670252808325736175866212376525154488858856253486714460055516072537677339790012709886430541894118164322658204476969045402949917389175236323552463965071187300594250565061388980409407640368446475109479838325532563255231517938148697070001483098929068156302422572797501366056117490542755766378281752854744877393069386019455599824103290839982930878911970885025174484295580097167700499771752822457769322782629506910228550737563265415233222909200950928728036745678326158286471300472176384900775971319850239300050668652385466394049230868113419931823229497467876832864190644712289492682781812111701581968584685150801851845288171474335750813141575096177647351654271169947754921010430300827600701609016011111836651281839086827815146898062479734245798139993592190248754103565659449717824814426827016203992212147906257596663410026668064662075893195613685893251726088990666994034145939807592480051382406443977276399406617180283007685155964884919910950242947346682330247498132292145356089305684631796007343222501365981689620725346286977732123609684894400171103352401833727976050296076376111164776102581993041301584286874442855874052193216249826839272607490318877669649242550996477331490297636515951626736888892309350356884475018156104746682319911660640489175608105986121733191822875704401034237959341206674687941456441023729990129905327604789423790280390802984905185896165400331789121883178628246277476297411329409674499953635653714812308820181973464539950189484846095405956355118793344848687750899933813940895031457690986048206748941609254209333486653757210785558630269778070230960275833383308802307178035059261699573407116763343972665141143654836904040434200624645467312318402941743237870913028015549826870289416282838903717770630699615048127823818088796450465459390558842796421743709590913933694249577018204223966937355153327636086031441237929775971518048197556572638262000555476904819097257659809689217908399055687879757343175367571967372614799635282122881322770346998865871158313717035415965160098510452571889112361211083226101579548858930032773723166966528904948287906424720024924216578016249352688083412543403986925892736176887758972959039229776700749371373854711282607993751205137037745286941757872741656692222860427824174480814678600841053813921808374063164714697726210203347024412313954234046544828856674016707930155711260032423085002158949945766706890502408388912424064359615192433168591002119621485732171916508465177186549086037467410709414888452572728851655896296112021511821904026366738366533360704191875303785469857849565371297916688636745363614042880860001919348894132856450885751550501367584683233600928285939200413461794106804600799152900681521585918529639045272030036423332033477157537581328560914162412411008738010515225911174402060372223491636338688170347442440448410068943658992737456737770751345354121486839143466349368520083884140422285219800632039688932266317600787593665912575866945430769166809907553047146392390000247082111582450836309792016598419078975635542763888292231382340944202814457291731162681264518663569216794460813697821009741383945656603693727099359671166876114442728911830476002608104267265701583890728087333590622836092889673180759158432649688953722632146404500436181616470401642684696985487668336597025528854422259990716420766956890543273263647051485053873208389463304377084031376816365430288338053053148184273546003031728326889943717854613376143269533228825052344409913828689644846521772217245482259905824982262129328452747028167417179768015108917206599655238140766163914895668895510807977614561499168270941984437081591363199163589526463024691645965703947965168713918419090416353562158140416775387450227874145558187975412175312787002191389582468010475116535895609898355730115732922937182062559797920069008828426178081052139106014562158381396426065038381875493456756640800014603864967247534773986422558314492798836687541734407758528912663854642262059925506849460858774940101517653470373188378065767960255921539913488053578897745883749360114437427662665643042336657002210534917069364639766037477623469835169109693642422228672827377577665969058020668025231828296144179819777161832173407574354511029833933814283609870423641799117595902552368529128430042920513323974024215626860506319547375508207657663877250230733410237425309311477973848213346435663194613580712266221319917389440884171865988841385323311576839466568649565485166148112233080206324650376438453294396258547453672745491970832133127766605027501280791358944671693554257492861244534752558738923943769576650110587387989348885845289302654777478226121061239057818630951187344753118063818583304592452721616716887818513121224704797775583078846276104710881913407496771410843672803649485730928729637852493355049741858422862171072486988732178259017863197082656087590820424030041647255590769939042113355015786718552039617359523577601307703113494461007480534618466020372166730342007364687729203568318414327745181156496905345264712224189764365117382033724424805159863178101664941714211189228050420721846126994960113383887127702055312481264046218757044629001855260542364574265158037799970604375564318542522408358678330036054701405237563366710106630709618528194390665895500000816088744764737038813900176499206488990406876382708544239875525420153230056487422751600027797673202484774646724175116951467744294718669790441855813414326127737407541951734676683734615700255235724933885835114397434790824415425038949945915021352322352793295506081886885518196974275257264060449447303773489444211506376032484852763852326109483074302143565995316715910415833653208287781971631021461569385483695706911123307085865312112582373417881020044286590128123862437694869090293760329532025286747460755281818535877402557951470099313153524363512423293904766478895081538352260813660079679087766873595429724700004312425881908383683912935650342060075790365852092010287179406618594570104468740389935752859648828503634700623765718417277915168835133790566610154306170114443960369415702416319855232837945521638551305547784422809252598226477223867931513480991541922638292281188061809159920049148579567740858498426220763500116146221204959060400602080475551369134436085257433336244626644726922170868413378852728255764302996210517923103562649016933507030384050436117161574137330845273780858175002417065984369884295295902753512852339296188116703423752902075862060574704948007319090992331862653936675101603812825283196009184506146708329663954961593665632251273205310826071879802759940463537480953142156974856453461095225793447478530194481033529855552493718872658553340963551474189097280611935171465391009720736700102949193293402486260720273206939062423879129304432494763413938613809168692829805785836402899223278408236615711576807944068950051751736721518101824638893250611407204369078942328487193039313616407456467245968086177168237392748029082228087123153340981546483061247098847535102892478427473348728907884965979293611627607377540529667669040123181011840255342122560122798866477591922697655393335366274208539938152282184939295696358371812985836968469806260438029493020476844438657285047954303823828000445681450648818674965401905198550262173767062348373661288923474691430249189239400871716088879948917535139431462636255914904205258213367348268004083051385888637510307235345121677048036184256469413671764750930711979489718628365694004297496498832949530404492580262711220530915611420869713355254727503230964886216277302693797953796543536419774138403997297916429786994012626925587817234581380664080305504052043062745505260389773642796475800147523926868390295303410266141703290209458834045275907267782131861701916691123392267415391467399513714961859669847006599253524046078581486561507603375904841846161653615781462426071155210377015942745652989491968598410652670878445337899314479588846113004167204981836819273416186212792764294590384421212047412700543583289586645634706503916685133237633296112688879944107588763297968752230176866246067876025196668060500052127179304642490291384635665450800225616651278208010795713016723099891391458127209683533064118839294401703292396031171608584494664060868753350658896161874241622070114990090385636876197011770833483128807490945675223144568206331387610071230862532548922553263778274546961576856438245886991445891085945492446745396988717629042783154619844995262445689527559956247740952911656811123424418082148337422905327536946579629274509854615273987492811839366882324424919533602832232326673796027418104981390790495688181807129866015946922453832353276500759993393788864538530102701400629308264023258394783720504207531938164026974440676135359361175197616484951407487021170537056702700642503697755125695490113152085859182178628717213267347618449472185013079692931865356918252232968600478081750332690892392249380316452610129165981063774367183394758689300983801522598217499861709327063664302111469548765289775543960729892169937657027433722966641353716474294954575052601761719084861784983368767005313916038420318860214567369424845232442511435203987208763151619699588397895417808572584126621178228215842480380040455014613917696740186061878517375339533841398016711244416199214618010982168457697927051351819858633166537989244849484774635395363818420103224275064611982511499383649624251547434190638681528116051876630381945049038986137936298220699301725580078097074483585834549414744416698971616025596203279761878744856298417733866361668424929861457213049001650781378550008153495497014089398067681305337155724624934243134087777258139294708013559104828226815096973336290502425125031677791364788113374103100838162728672927676526614685472260371798672275587589432737741657751630989844204293679939477201913180384897664575725366829557286783748207890555562602295086060946259548798763968130854728623793822352449963830485298649025570962053991881356094866853980705779658850512715618097990623508906444448008811558955124596475933684736239861138279804658080244836122360020707653282522369305177152406949364969690934531454291220993809280345776634062144054902861858484956035193042815944742434871674303399478825323691787500282944151172758170568924770977092402788814835860957890776549351714087181235860923498356040753489520754709820942418498948590018660531556579594072729284809486565330384200121842315515401821555845775201225598385514886045543919443787860895833470472966642651008614589252485060525260329598095475970353162063787406176634285564565110537277745062504851673539432422906689435982259734071786905595769346882606445631543594810149405428445028297706785043757082600769590732839471336580935057846301047943732050046412757108451217722423647357407869104389345570278160513584110628650161683115031505313281449927056289146644318604103865364926222231320479408785929495266343420371121375283268712503179300481562969215141601596117616293218241115123494012291211962105582217326188979564891176230353582440821424417188001331648867074192651776566564327512474160031913178948201891873997860727167180029209679603108885583162862204154457069171377700197543654536534973276034978343446044183658079406284401316518269797840434562073159762547519256015653481086894208989033484828240775706969818064876275705333401896484368626017033160864966081437822535775224875162804684941655748396314788815553226920407907945547339684291311595130415050774939762089848187356968682739386542727920616869963003057503744303735701428284097030952789241901111977505534192476768523633082175263625136659748000542063255206699067524250008151151577560458605265124707272457604517592844379471314776333314594736376012868033176696549505427393849992394520525197293276331664320122476414491680843203883324682928068133239054633082459308162518844967043767424091744437841750946181840595454343758911356619584258038128282059936469423689478498137103363763245030862420411947488891840036132336860662425205144334451752963891568942974844251175240350588493767061014240004330345426413094597257805595464027356927673784294280417793580642142355446912920828076793198118499427528169526720574487524938621940122648411152161567943729578057092560582848982696840607330158772726558679379405890349177111884646818581920518100792252694949554741032655963136440387966293216131116562804883845609136175115248936899756021225021638319583643147361667292327817996125615494418135573980502670554848421300989395098394633415220793798322861929997480776109374919065907074495200067455311438298309582115081034264173161863485709922489277728935025121178932481530371650893332391310683862214872514548179488047111634917390713169371400254357346434122891537950137676985669549544295114270244303172458073791758797571980027523741775490956282014744307634860640916597125022411435886160273427818368267183926074095327196071619854096308029146167077312969823075277086378864554839209039940951847396279280677301584048984213409437130970243536168419761770734282628133455387970375823800468713437260546165395277895882282900616297090284478195012643792883371627126908228881713623794396247633279319297141462194209650909826825464371313943446379477647932010056791871613676999249369581040853000489196479697272789166330340056292770628392483917582088305830141408263230478690445496906204365459812655291126810146786409736904948884277999441495428452917383286187985477256634848775837414819972542078730312211995205011865398140431826053833741103511117836003055003409908259119857183163495653686802127132276661780509859786091185122635371890449327813740353990628666250741026456464328794730535438428833349753582516684368864393211404593418252049625695982658681917246808258044970280280950821127499765763962513033377491329843393630244519959242843819474508273129916430466788885561283753975315632000437943935193980091687362759856241948856985972171767647131618678012123939688429041675996117271090397085264090292645563119703691872791160019425662497611878644674058078363564435999330455922511311433459203569276617902526644726376648370892918831046350047262401313178006822698389822439751130770520979450805692789663861867893072089941676872124010142885152369974626951850016646914143093789982731326001404329354934435832660333059922968760994464069449593137395790570628008953344099989245655017240795366863956264249560420469482709879180624579957704355022409108472929243344784870356210965040056528601872719081595981186748033111650165113968178833803998678593392807523499959092327340213223029107039477686986834788852344313846846261108513734154771659027884075053480442787910142942752875171217377429002441194053518579552340013189716403179227780951610715215828573091156392956700730543715448261628463631888070596102138655540662600421229441481272904894726879247437347934203359635111888399864247816707852810981026680236024427578856892949204000345003292169204179586623989166167973434901672597311129613210637856304450508526466109411640524973568270402639357393145058656341832901613630517912520817325878145910946900437882080307666222333198369724584480854196213848627593321185255196448298590941347765739129355389879627106745226233085813445496451677989007416267384292694873076288074500650883405115348774938874764452048183882485780749465726279685446362177695723650720972697737294741780411601112980176958316352508865933514211711425324817217849193269045967984284350477522663728244922461788215041607588833820594960868897724608002665736369556710483557242247616313433898010321102369771051998331688126693701673770283335171644426292791486152501060774005221792863103458984212068089644976773818769097449350295962979538706646231717143018585871524614356283423993996100846722909652256892532794522053088238255096505022181282999337058983276993210159176276244225117107314945608279045563065593010061545141647524675135693602278787383951936570472520225226822503243772632222080016112807486088991496075583506499324690484878777982661911372110828813403386207013227610367242483488471798282271928179799912898670735401360721084879445762761045131696739448939086254895854809515328605427581676817860064926783486498295465846284674104929212723477306255399955040802112854649737899151081169537708286742917150989352464508532353189681334595732363796516109715108858949548811086552297053706347266239899938671275411354666094734008820205351300002000461645521271264916583416061778742811997904330204625012399569854173069673858809074884625107293214936230386933093616235673034281482641477889014595822606897076466426719999430885744704887467768437077822484493801906375755188370830009095068165642012016033278586820508662759722354714536133040976542933779200635532873039515228646047842495941063629802417458638301405863140368156256111103666278295415875710703229279433358104343704193124928193140311845413140933886621795149812696396227842051088706510575983863527653692791306950262043673000730819593307255982530254721089779122605370816738703432578757029151808469595253346917089150851925214045446060208509891318679884666363702656274370903986862515064313557926885701908340028129429232513777940326235825118922909367826077550550704068516617992803911818089664472598937414012095107537925733769394736524860334362878376216837518441136053708450767272833373133819407686000623140256412745897519761138927979679639260040249386743363647456757627974566568509907490819796144410734677804702863933552197531912922523988215718238193205088846086427242194038287546673493479760007165091760889357248198335229404663701846335219764977198187983001594257068549749977182337819240872539196727419025884996959425519951377085595427342922522919435763743698051566647722640527528670525961267803416379119569198674438136383428301971817345334801575164309378558234653674269123688212629087350230249198599567209134136979595071823665968650629370868100329250514445825981076630054169915023167021583818082516042616073612544544935772688908573065780107350913467047964355594639680199227304392759464835785050247177782773228556687156935079549133066297853580072582608905757158301629137321049159787943696583980444970735040341406038244112919205414214110026372112201117006739824863171114755636633653249815290373480654628833204315833075793057667662533413960283981554479964037985980837122477209177195161521908395672926109671140926752621687756262304430747016838678260547986273735930986573456556537673031034194988621317715758250457018746030042701193931240193051925557286096392722564722462740011709768249625669022553143892773783852190802139748658446495381406507799568755040482896673784846172899106384850890737061640796083245999587732306199636149296070164928484085601861315801932025137926176552426156935070972239588380848261456394494297212754731351800468545677803735637882331732608827259611808599146740344113249422810222604249268684156333998602275293730864643330902457625605815688325784883708643400539825505039219841235703906225906622968466611525268697273584224049605007578043297283027692269343670876528635507491312488328219867842315833928467387875202693800806037535284372127414719942592351413163889864772261381999326437928506914767187519180682577761566904266500537124751821105748699486796511440915969047304392202163807833674703120597535899726808073794014312975330110270819481762170856381513340337650531970090370944770551168815796774921781458745290369124064794065246216154640172409818165319357860926075140084294818856351692831475015655223929726124029792068296917393638197614751292147655204858979187719575103280624243082824692299289471567672395966446825075164718794007400907725072753221915915307844506667206557828817700035360796949580043895456216237950176643435361333326451851282326461681796294048847562011224566842717899296692891646777440417576220731072958654407245599700122641548327424607796767341525496909055483191599543419095357053886135385411263504821447023899463942819618398361010409406673382759251706344331142099354434679871383498766400140758609317819658913496936539504260859165284713293130506015444072756987999621228154028216923960863396602062120121633633854298352108736988027950150381503242801131304776193424488436541424407568263339261863010736090738602993424994877567523172040977914677470166236301513316361820697065429827328216882117610667229802518956459111845232527596333196676026765855202324869509308656835641638213933760903619616693087008140986400601841381495607530387933612886030647543044443235110686803466736844354102652216148218593442680353998563703091697883997982604421443024573868010541287505050671037751333505645501272697609342708650951978672107470308389926587899846057982540030131433483377147785174999845093646489431875848585149936092283798253432580499627300341706580538839975904531000961003918802435733907297300699021038981007410281793366145439744919783434364714777466665449325709024062504006724948364575862478202480584361007273978929649287475571424209031030035724006372213365157954859778004994837638944172202656971993664845290471580570855970664353741770839011673576653163146313692693447351257274623058633351495764202163217370064617565274252910750507006219910666230827194446086498747281060620704116741773512632353982156489865707421121221366270429867040519066452487697037333064042121520742456276790875082882292844684803702367493193653733742846100504796974693039885575650348179921081112706587448287825224527885915294357862662327945648315109952597178824928662813462878242944504329078472670049474916350568777713120074193799971368939742836884286600342265875552289780495028862950760308886062451623448956839429226128239717435563403419266319345751502739028450887569101435241358573713994357050299544982374654013820108846295421165361886940374853764911434087288578600668231473899164022895880879079510879926718067365101714657351770441249110052070790411835231866724487065659929510732484040666117435370864366281621124999837289172358279933553709973677643761060956378748622400752371445150720570697904719716552281283143065726980844594980985715666838904661779857472154628777061780763900288033821165501162244531109207291164759894266743690372855220164202858265094976289173593578141358771069151587522794941652565047905967897050280180467039481336427355942871983510613305811303038761265635525881681691059436645350601865488170148088976970188018284614407485756062856111155171190836346588366546063149673323781215386181101195059047907473561430370203919287220430237580292615355548992697540822073236070457777915957462605133866506193668764560937931637531179188279974893125620906550023303498278229380237666172852229088031978938944890542908156951788696663055113592127060161555204775496592457585066250334182476398950924931468457544213631730261253063832223856989429335805398866357701334175232257214456097028754611708139341683575384336811400912596022752373831210868621954348224286020848774709922858362375959398478493120627763231694718897215507644154586567987749134574678935551750533507852213159447039575404923105635081933770223260594464001551816571251290679490555772114143820433111406773536065743886242089583835780795696163939688860248280601312333594030732183121853517327126278091006580182527656506820408114821789624955786818101762261608199093192990093854528821348717883621735435007993362770618037445271719915501803152430542894240901335577519182750687391637894817413218803485281155668046742520147896921743389539917661987486001549727634035605749233343492780608597301378644068626606297046472862271109690507702582318170992663569918620982350789270517538175398788050493139995122560725142345112868527740978239693794910704540511263693762926475857873788589263617028359957907198683680807052861413567945993904176086389707754113706586684439670344203355507025854451512492728305544328959281611695634103971831404744711361006038488285681444930987480084199995141848116536227644533177604532375024324659709140152754812319348349721871567733742798028055415134296565394435870276436664584226279019172456859896106955937880490346559702722293770892345112053000096831592960786634917777685872412060859498075494294954074478011178195511503785892807831424144733974211511251795896438735451944908087215207668177851424294632757371950424982922812831222348359682032828561540846800445590355856735339781287725446837446984615813523893312746954543525862238071069938050749228462763935584992941798212007390682051987948562497334076819135407898872905697877051106930510936636245565316805650355919410009896485440302757727399937455715046406017552270960202051453772081373178588875858257909307980530317260817549628668904931201547159730903464298225866983879764714186072853343217593206936972691618143305316620732063190508223474667120085013968706938401893901258470681486053914240562733656120180964941012977243150127204110054471761071878743494389059583749388351075433750311004331164714574784113848956324916711809115496445537779738880042962174158358132744830610921461831985842718010308589098965598734463589222326299608439321428352587922546371620765434229818812791641323460415984071855001429430399279808657850244559905456376255664547489780463141846952797994879039650316073861258438118889981385985364090803542354743175347689079941490824800430035160486182413412012082671047350058027483845476620688888471511341280487096361504268334960411072284444074113841011801527285745025658218106411459885229065060809590029319036971372182651821966343063388209239834897228629688950447200502678385429513185564045569348419898441381642879685066811001421290313571003067918970646517186162156099468366585579825560826987011578620359991394060981013271315966535444834817703101259618554547273685520974994861277939170306751559198564809036897871905921503751633611459658908692501908771037528273747246996749095310482763617666165466040898123409057036227620610265720943266022573574490639714941513907763913104526884581163330743849261492980516430472327305049661191285306119010984453848833059002305308088982990423122876215292431335541898046462291329765064176944201567987320493050830509050154522048219591009573839363781197626204359126254407364992964140704191620719442753432302830578368917878692200116953895743607069261138223707006233131651823315609717756353696846585013167629873896681682208106367671753946657264796631430324987490565350810481401396677087321038200103210469263744643841975938438651297349508661341541982553771443471329710862206801158307462672820746352858759191257803584535315980636106444678587287376255498401757051033187129153776826117575344034094687831103072831752127493391628657989614939936941823293944590531609966106276070803230633260936402831802419538853574043578203879110862548146732837943766901951322221893604567605265570332501356151113151102905213591459951170612957234278216383922949778062585020010181081925922323768357045826340828054013099664132663795850492732792866929972120459233163465818906623046307045367056994479260743924089414761762193394817577384290228432228957524269001756530534583731396476202124580484622490712836346985066845102578658834695136245743616444301314263254685923059747383697958862834205859072582272640468365709788497731861334336734291132464891116929460804445476282166294349574342212614059513157516033611808283950754368546542389708025756358201887654589084728120903391389097820960704331581593455500666113576247169238118296506372470482842550764156413049712768383020203014102417425794457676136087821544116632832844046620775618806629272835971174253592368588080381418841198394015593979299723338509937399464700710676335789309055308730009786017515382935123037404774759654052895155011751649324067062279586062214719126546373198304362549886816766015017867459771955807980681552756420179075774673848579290233341646577555570964667740366768039655184169506093151081141467119980553095224993232729067858362311164465604592174578130961743219420124116546269192289624499689975755447627531788058764787639929215722570075723439722755396699426042465675024422257396295508719469167826059394194884398247379608373407741656871726790480531036141860969483601463956437244388899155782451798327980636753205703520300384511603340833587539205015094465554908752321637874985239545230368466945301577759988665870588439853217389541455968337102991642766569724275257307496083441023065874499200710374049813116904078741377601565009677354912626877690255780346109279983006515434765644460464357191917731076518490176125426746976019964573001030743514128698999143841110423520941718825188710562756373789765499166113665026713463548678684253755703611228786433863097424312057187497655581524282784237261148030425652631247824333460682795958610389229834251288360539303961985511676327696730756635982788050034269070167955235408103151645957609218763177820372525261964770672505400119803883486890308881513905276031554734334449108802855182351208646224971246101262926251075987247373419198352274167098149383881605399488954723651024708059024195291893609017700404187859793497797041726471646828281726420184917489666512294833040941632493525318512968870210213313277176732313353116897457299970073389823246545843826002507549493504854490102078475243373146561808616898880257064992400565219011958365393368210735689169996142810516617686378258775984943504461990998635962888387898853414499014771336922595549933904386643393772032289965441511390706097594314380789669261589271363767885892205337103892209688506275860260526669903864730562043923216340232878392896027108995005202314395325718138250062416126708421796493011242256893398517341524052718345783317063958471977046369855597986590424650729017868926325897023286437632677148505665212300707713580452414809644693466395704145781928013922682763423517568277858919402229710553171209502525974319211371720057330360242776711242721036474393077546114913027950238819931131619109104343102537187403212778554416159145479619408144203664215644629371664653738228345248352646929510434239931566204800782518803601726636281537341819650044581941148534705590163130578359822578687852593697353042735877399102414166345184108303112311054458330029536100539436991539918351261764485550778488107364898322362917453119421770019547603851231199731844584428689609121003234857590732808081565044993254293110379628911872041046605156985695459741964535784892182620378927906430833266818154152042877679274582900541251869873776324561093316070177770533589593477695967585814869403435094207656420804705532691006840262039684681346342313703598711196641776327198047115885011381239910541098620795325082643596123752796889684930631589989509524787378822831093775413683625713337623322888610797960134125066115664497426045359192097854713618643194575623838118312528407424585505008738461315067357043844581410507382063141307275488180579585872540696685769704974252698966755450783714807137672002216102605767411923677625870568147854685704201160493303834588645931724936404214908188196326311413210665882928761716713683606717816951726111168090195676906958436368805495113039105984099364171380782640651256817282705601658925976316079705432718274986955123804630913753922659905947705887711684560481843299257744854172172446863266688808505946019553116425829423294330950733192071902539690775663551055909203194964050600425924347276208404636948306493406044616693185670693347145339105667957730898958978992327636596098467917359520846102507017888908731047250787713369220828236047198279281591968403396201541550457087983921745750937918015966949481992544181960354251014241023220694376052512570759272323508785801323336499577055310428340613974640217474080113735324790838489928036161416152722859814392270178406417361493801794350228503298073964932631203113148822481787396055378418355059667646869294860080472086592389463604314620392325456222469542777092010897722136994442276845188458146969605950106751540290269292320418831657590601137311178190320664722545559416569455343494582088338713475466499512748020912253607183254103468167838989030936327796242490684704396778302729297398527253691997072109742203864497368693610198261986591374581167294478003321695235496962357700510747792059199781219617740028663929084982571340433058515011939900280190826024068076319235388366212618889497799032577371032433322618006404993627112960349117641512684115537419535379053914268171790771801525113383561707388823773640875260421356004183697852466685008105081867624321342463072274122527687046636930258761367335171071461942911646331487314711389518043691467729790708690846294047813614810382180948335236127606543556842322654688821140874581572167456862370089853896214733101830468152328869745998836812395588736648667176339632156975820722057105284754645835330975967167428570094913854309965930680479589318108703317614233012808325842331156919548477640002188974664198415436327560804081515570595206363580642631537494235887201713959207767811957920825359224340340343959726561071614255196054146972496605012428347245908846165698296149061402482545967685277519011700302343994750834474178859747818464279755388863265972603107605688930053931010305471282480789788015553906563539004002786672876898936143563641788793528102819321334610846585106509850941821596641170957721778604302580756386884233483451399152163260454590429164627635754143329282745913296471802504391124947868464963283738420785935324367619790070358553785490316417871137062987593328399727909607410619496596117129075666302572072011227332079232706159422767394386045508700378612720355340132231075230088871412883963726865100764268475862007189986496765678631007206216348403815131047343517392768294794540832843501685067194159708953356932114331486210999228915942689325184522262895801973069769648541781148913859423483661608325621436443956677236833166966853282920559865039964749328819794431618196956832261008056775545205530542807924509149799637894551188451732013582121300780122757906436559723289886144936444869853050761214726332464113295722963953262667407743651438728540646789358626441803685750392416289910124350741121438152082143258296036709485894510962497207529511695440313955029181961238885940538775590659934815549558803566309795646314280804876927797049702640118308926742127396919154446627837001475498191687076951222836682829343366874097822504492535290678307011437570956330803684255717801626962288496839808583619106719784990637864431790086873003679681374450555569714318026673887261333534856259254597862614137799062894637990866655472576715346174445968352944562658779184530303468685800181591938439917590291861142060890904919549171815184373185045366217240550914258095057464314569520681532375008814482058578942178588429283903552754611707178406123967685454441208866066262666307298475324193114117547446993846440416919378851170694604963369321848707708410834010375786484788662901004212972582831146981161493812266438040848982262968038866302723907033150417722408235527731711559242778119143761158568331956535825556912824132086320404149877351731802589358682109682554178311314463742743277156400400680707242256935834918470489551681811425705402826549481010913397347565669060051311624767568854281985556143279519190747580466243578981571406596876349903784384697236096094292518056579124135838512757149169843798083737496144012444038272872476510001220103197725034661263822820961978556719160772293612678513265304132448519415266002160888882787357445964969082459631586921089181461317569533351515123480908703398880815348997015748448658332901034182187683128480445530106925040537249845128592937614000545779711384614588694459203148767626403038449577242248195104925176402486086487181131840733357081037598915173514838311726466100585788135011457188733764533122621139374028801291567130716683361018362968985952497647535560918071860179069767568025058300463650087083188183163138161793685876063154881052681626409947777088454571773888137099696546759259466976351020994312618203645083661442999051285825188728475428134640354718171908557317277180300798131151154035414130873553307359851874636129230589627751804765655976002677432572173217954009016137546394151666695760662071390174092631218686639759132775819839769700276759063434493485276263974219764389752827682327363437077394433815186394101132975314750385338649150912360189139614017815977013624453596597174040099260273798392880471494971724635221179371403368148170083556903080343421739436259607052693695851266283317775559329544096349337897883056138329662692848791534375247724772531987477706445968769120476083109277648478012058941099705677540744306748253744839184119171897390575068675670177624608339710048850300832022669421019770672159936375400891697758505414986553812994387911586008114840401196257649761606490336955238130267513187391491341837465078006068480108045651570938442604302767313724142190611437568090359407026278086715059795236496483422023004771282542466316333376525627933139146805604867761712819556970135892776811784829713957211715113734732109981432367887356536874688467905471449371746428014377573926346006276089855116221419017507946414908332379298890605485593568959826023625319286327086101450836757438076158373111359685893919161253693165016056895225405235287997601379931786137563725088592553880246753249257434309258694363591213580781490737073497815557837878932554803663096366070492801922148741820098262891567449827746668951062533633658460721837777623435478553785979620622326558540080413782007464593497944613529762229129376724557536822727642403460199019659711076194231211109436303721372679865023967595280491044291563126491201209282405605355791218129842803853482410869915772306700257817192769429020151530080167178167315866287270565518034835436808495737657743530951191434114022826895726677974189948717075445012813449723064989442540943963212796959923614981037315727250398260035971412796237795053155139694223991221946706942833334481675604358839948218164150191123171463353008934404436684363119031561740577206109460983047539038831034963801548462651933449594136785474531128275424666554117160253031480772479620162893320889580645404300343570314881952501197464438199943110869517569589592009939981525008305879170141063972726617867080084275496633303735884648972992118638613467520251946363607728331223083515987079973127070291405151815275224988020583489542136733055516259560734857332173446162101918776769324613857231947801515170849810115675214825294246823934718808545386443841774756934817244771735489420722200317010036032921681799089346891929764954171745111614966849812453578998653481609702027996323329589266421334268015139349658521678148078360499372648654162071610442236377036408496660656448174779695369977981520891090628331840239950432865704117735932851455166600738775234462701460305752866873450121359354980500726006315884282244436549782896868045165060012306099614159307811752988636293696696904626055832644385970887528870903089096429684504065831160237245837890048925275006396681288454801448129882152075922542121055671247001234638494390958636354594517780647450740444173336189116522607430009194178721931976654169524418176796521761280903586858187781032650685534751805071646860303427838084783788761449366844267379871589962811128820051891723557485249621285306146115185890955632143180751671219660924729065674559911855335272637852234591281791489379205335428663102673810999831176903339645221672850638620594872337984269182420946258570743916762645626059509293342628663707211489651929691196643302103499642454157327197870224949509724373288310720088341840683041252858870833434997864192161922348802189936694971612920777372738549906209504667478255067244636527184369921769678274379655236424621667359288355366464104602840429821595685346428667386093954489148199868841205144818730001943579683572825157727325288996640333061755944200103839042312420930707547772065390913557478221441827042311562838913791609586503445602698146212760722731136563565326574177450264076353756809014637895429287390653991341964457315755032019026598182715694146734983287464491731687685132748705761811786192783083388975288433191445087936304367183074418456251353091704447007055182513550303463397632876994448583468338119422044546203781653543793958508185604829621846157186129974181675583572604426836815634944050614713516523176044809618023885865273614878810438645894975716742877214328968604638279385862166211049980690650519203399814550423848530057805347240990897248902600656785965982178667028147822935654114888129999182175136456558388263864077736417250681488798262406981163399329759735354244935170874079599306132684070314993356358315047375931989178891624949640696983698369122318382736861253399400148162975273571444405030847573539745724645738989135700683943344145738190893653773038786950164767403252631894899114172033076991588173026664974124153346934489798924216670844774618498399251549789060789936902615244676058636156342537956169148236776473787666626727283697541324174883379645627118302960914628834243270580443573086734886888783302622153076083097897877242849845791158343541017194850814834626160600664980706965154758860846037541136435181193531977014306350627139906687277179839274640644018631100669634005582260620549979070803356204409385483595446079235684094979897514093034181828117886019280857723871164098737441301374809276727107818943493535907127517815023437119622864624699819200627208006269138268982589264759389751769693357170168494126551052275876785702384122702721045294773239933816273603716298656493608423193194386264608520669489036379182835409735852605526821967662392880773419316958294910702059510238463185784959587439672539510615831347880507198342181900808471116065669253568177132122472536225749358800806204657666965400719810176641005262169318156536721344363576503684268794382798207574025907761860822462624614545704814053813499563040643017598188414369047915688899177676925643181494770626339205062661139627713714269970493208415884124412572738426751851947599761725325181366626161490590636068229409665530602363353690498758400828324803799395468200152057388315688402934982080725309695256078154700647510008320375934075711055638758133827646473146734561268436592675135549809500651210906335632623493596101495132816030447382986899267169055785177790790912834293491950458930494199542580273081869061615578019413101611233129645175698793109462834629377834235645457819487575297519019298339388629747968587136240390714816996085223537353124258125685460337818453750429514124289210844150676726001813503866375595559310325663178475649958073662493075601776178081310548584521011060605666748637893192344898620524671646581732444371161113086033892234398393106760012443479906715318986322147177277682633855569369882929559708289138105011333312195442453596443813740683847341014295046647287710727289155797996203006260038652238077663761958239087838940368605500912603072398351370821499615070470928402419493287248522876525680188707818074651317423663398494587142657012738285993656797631897082536950600613719903540516665424265595239854401456979957843952273298276577936001147778212553090827621128926224514348618517866210115152257311308472661131307626376221054857253486826667364837476802377262370308047766720594022730079047321877324347045669779123728029541335877814589569311810069657159875014851235256936315123863358158057455915265648394408047599490722165809406936996494114941330041287089121458875435892439154614818221949844049996071174891094670356705099933854029813574606188488784603711942934340837917725000580011870039447761271441668400199972354101317682947189564643562347811089076567572511645415626105850426868426500816349630475747511644879879498692215567281961846623736392267501449306470866068973765458629346304812267632999850128699125438703851012118881141537508207507548789013791159083041592391358147817960742274735855160005029144979628960085621638269471839153293523552707023654229859207611337098045673213162184433972933016082126519222213447338271599524317441900663351425712755054519306060912418882634230883265666320897951519851641269694132481070616674291941004359069319774049783619233999525348491862929451943435919300020294226181306100076420524046032064999702526321718450001074731106870289544499285468116108021261034868408508343145263363736938275325409451889890596093558894066362571848223251050924802764130644349631244358132389686892559942027057552909969165397854203737883685920997320106677661574642200133501277667376927539953892233176372098813473617236446472519194359034957406511800213370993423868954033134046278209297277476160926308242078808980755067334728848086259279583218752635170090397814577802766189529360526665962080710371178269182664413893280925080935180367565653641959515007011534269050909279978891941169324917255343300600331776378460966285207460542774935528323259232876478500831556862807489688238583884295023129233198376011345995359082001374998893582265944941248703469126712789373075426105202107044537306273310457096446107525031876137459429326691015741158816673091223304199639940734758700968890900318721464559726845360758314334603043053542022602256061422804956904198835273254152357349554027276596595459824547955533699864947852505430046336634782051557541976169825984427761421961897089311227153164048771363430260711361290974835715242378754555658542006207121131972092298802590044155393815179224408209047221904298841394263353712037686654418865732107315649935822251321678992007622592443462642986879245988310298821573959929473292238223491917293356528848209597018259378535761445186787627353254534323856124606413594878733646441253787108424134805924611105815080150771369092049930534637055651130221314739082591527959750322140912402313592733267370383482065361226526015916159876680476864990020625960679555619537321165045821362045554959760874412088135102810795008127987423618061847681059521408730487206837645603515888242484998865268067136950858346232548300977447070574773261164851274465962306942235677749415769701926920427074411765639893099274834636509858085911963560940803540525003880732682178188186188715930151069408884947244075629911004120820847954619792679177921591576569834777880289535821802040945087526255031657786061517189586074438753526134086326333037916657318515871898398913092570485846273297432253337289385671119439389309979605270544490228562747397093600645680690757700816183640431442488769188874475055657104887394441770370413594139586969606955981320724927998123624555602075636251454956712384421571626479144028330344358267984745926425749805092186249910136854741404948810309959355350466144041199850870916798868890002453474009659063028449723573348051376664633852291179291553361565351937466380331630890952804400342306546299002601061145201293470965565224768136706938280368061041968215160325397151152286952190977190822225596551832600959911898553940786399493936068472182144389374169260477939434380888703856098164416229737112309468945684797641325917717452045960748287395099729263919187830681043319666090644548296951771978863634372939929322505942490839447924119600740177767188188508492441862718913721540136946445936968017639301298329783896174730715066834846998795585280928601690669980787539093082830171210737494553849159446356094356727119370198311537473262292746524683030800914601383567040368757388259947616477201936535730440072906922438886488920467115779277794440777500328247527795632142698498243400283155801574716152117651397757329952486253766193167073559131869544299934840481614642498508613449042503211477450346783427016508140697285902334330090440779318177747866994576989069181565836541320352603729387677323867873742215036280433484585391045537050294729888125465062753702637288258125565822275115283111286624350437637401808293142317766523134069028941966900593280476112325881807164911690101336554343741330593890074066747990955787279328031588524789323015203334251817797610345214251423727168253638621468675321495898390699917740963984178830035785477256964306116253474767478475217439475008121172288747000540400200417487741044891065029770480093143503296169662195730478287443549519292261253442751349847652743049336886541854052771092486818593857291258387341399820465972736183668688662881514915044201081244883945947383806154384087777014000832964572491869670103599195867709546616194658026455042402468857808656078595409390473741891476252868978042894626400265863867570508081170342983405147978694865492271394053033149399988907899737839808179585841886121827034596167149553098726273052699710248508715664796334244893104390517078302306327565021818392898265758699661517314397280652552801564166052031616849026662129462841011924444515125334202388493155899548992422588527202900798500972336096146862377926670855418343725496728040779169363296791307315810805250408674084200580757167256178923896491554720916173501245640447129196766289559295715774354038632765545817775793572372437998158322549078767022184749975670657173309653224109984666164525214554887565056958501571605120033833559566440493758307006503611436503615149537192156328893253834479187266037828366118650580831872558279076364318634399849496924311439880044811862203184014951878850117884076099822683650359934652852449901774976271245916290128020815336451493953710545905602828369706549721807548327464661993596027739066314223999382932402555022398601743728538668284262389682235455178935780751952464425788598588533063180709696412953938831214373546502056827275260591730838758659217850683052936261588170878415169773704923767639573374869019709160526559228845861709688682046272762864474233434113357172338024980015889091099881055467759964148844165776839746711083398530286991965159161879444467649291632058319285723975959871186959512915041659575932549800092505670594548261235644165614538447687510827954163126944105463292967333504244242639630368644337162925644031842494587483935480312670328295670411743278608809448906142320293148110758556864865937824002060875383920804537402165492849425552739493264974264894904797156717333307506877549693224552259639550725259287280708240452004546373641092388998257840057492974562695312508065917315153476688389590422005120121460849459870552236658747353650177570286896425112278579546130805272083736156542947273484341361849576575781104535182530023441192199254023239097119173481347001740561083783247417327998003823909210369039258040705965169320820924704628982354167112069764794989993787990503136410337206296954603181141081618704150448753661318147303650604315663226779040341699940298299872167134172468057244443271960116792894202742299851496416895599138335930188394495261389583706111981524369324590423410758558119115341483375352539734805547707773669132962654800223144294224099439334574817077515384246448132885072834131586757953129150676779590507163377789806562294924433771219810981225479459196323180781222166592105136916802527979873683168618107131240658957852918654510547114070387904957479626361881318665659952032728210591492718281727974333314089267941784744927800155321881837813182489780237833828169373837276037332763927307012301710303403729890259987099526733555816102995000134519878334017280383924507527991914428242285442591255028055568776947942816899985480768700590285738462042059324313806099247262147443312770527984167096999561162101919095181358026556487032350197852519464255113540362453015339364870182864699776670933878573127600816880613520391904638618781261640787488890940829488095291808386355842952754727830007271838455599338792888620242051274292230233054591678417206360780570432869872258233457746967795301658009685327461923695027428698970198612855211804762837490436705293207483428680056183072494697595406276191770219786978731498908523565584968678997118216587104987515988254958960654476603235332167807961162437431766789788451826013324515189786018744106268337926858446306304056947983569419859925166799857719724699878589707633789026114695955343349040281502824601775329625124372942634228534131483196426255339682196757495317727390814121159264251225584989835467675383652890290933346193013992963364594574843298658797488441975111416131267305573455860752404328498401528554434931155665327499097783123327847165087595400760914874723440818847331599236463571190301274537670835221595208988613499130346928575057962668062100742317043076701014851722985460066874133976385320836534126029954365720253678968001100926365849948611532596785725229045266518827652611413451291144856959853134201351165660754081940914338496510669639831069118862882975149812937666311776482996678972424722296084046761545608667650851233113733230384461216222610237144036602300449797963765764912478844753981249248769876862183177617579025918820662046026764716229993547133829627550129179637671578843745039675699389311063341021053117591325066655675865975399281179330129377241867419821011048353209634839361439155959931780364320107116622833388453957845595828646678192404027618643302778108935507963708705038304146405036500318055842888136278036728771026773175263332109043484121291903956475527621430396428685853653265179566580548435811736940993481873779477474886743848792858321090253917275965211105437566787339165697489937881063340738539427426919192960171631757817052466622226083974747031456647783827753473503407208115270710913288667266261066113287074908002914507569340302620303454297645998649493032961009676735330657962095333127486451833599319522425316653498206129619920334945751919160606797110032660873221899277430946636807638355554642542911859870513401180808884774839371929535871335933329026081362093575887484676040203055057628010673076865572933579586312388066495045692898481938298957626227342434182460965847436635362301325037152489186388384971999542488604525305576527076665873024884433903471689745662384880522642781408542267836691045143169109806568019768436494622859134670017233766109595584200419536650262985300626518025760452448583184584981439860457868390723401370061690633188759639874544005542554767228031288523375401608733470750952183334443489158702498668691784398586907013587657402341747675875891225869610078754958021646610367968348758410989357547407930229957669106102396607213172570538005726773328568693955667660717262985411056729283958654987077492965949907339691576243863820928202352768977332934429593010770574417841391363009382464457393176905869206476864848815580267591256120430870258871219768090721414464456455449136961235086503757560190985680078970375754573562884667782839344905083836897352253123313371128443809246016302167664494322410889221328718608356427679069353716402409352879557482704084009278996531904486052288940483561310705417780676584175961717478089440254590330121362338162860582338852778248870346312820292031315522367440377700899417727247811718896418761263114869344673470783866790664996319329677862268198483801397938601197493628899811101360754601305171647799351230689226765816701746562170894640689618385707757850630089867261591314382161148691289931836524785183964499618902282309745615250800597182643276691702673868328335209388632965271930475614446875114935758591015118793418728950479752835184786834128557605559751866437999830978441575139369917984557525529524521110219962685605212133112643832146065842530559588044195606510216855849165245170878558355394169405907141415723407566819569909227872846860079814728430511033176767939704274284064365254896401917729446188567011295522801644283937297111150688674488294212803569696732500356800236656639527203013828816137916879252106274421715679731135467436104818814847316220545057859516534236173562090366315796967846258440563944961300590406847991490110842577215011694224454836615184607897561326695040768164341122372661583416736138000596410578590235572379922311304119413072053301367271123307725553048964420219100119107584464342718153176692335257876181077651709727294435303835422381206898167809939701000544626255284801148416919415208494135045666437099042601851175488077954843903434406384565802241871698024481171358521527012051616263856322458199977921584722198573834651823109435822848231040863096171039808589192558147677884792940914776760448382632064469786825338367886651623951214002597168805007586962589229443430780498376989159553235038617809582418202668395388442050818880309206152477702619619764582494274630940312483575948819327813016578112766332400906971444432076205464640860132878400646377404276483884645645050833417142491483553016087023117026685635734622929067514067889163921405099102863308778081052643297303027368580501964270169728973149944438441843583695655358310711231029170331602446629141440762139507704142664421559418589197550554407789110361641624381471944307463230443695096575936130775300665219110180408469893644115119460203504547912315362434289480333489091888157829089158074675712020242599724370287473292883579534882572012836742699708680304349695037502594381751229582778099520811756581480277674795342828169382576488147863013359374879550050212560987041276420778395926559555552250594132877094346932873754127521859305287745092464962721207971180029761651607123167415032383256577128836189089273426862651121553190987636529546403305111686907406594960947274788784615297529266501834144268101469777940197329673951251286342985964478883110927712029019290674372133462468337962922686802044828904989138253001039468636551772760948296638115308392461995927251348202925737652989074247888170576217325167760441544950476162082951343564025342873077986242319074866264236508916411614700961370393641328803133910900704154225617837965819361334266111110360214531237169038698958164894941942471467416760394417309030296020123963150045515001164031990460038024572384874519031858211732383549642387887172013965244697233122862185889087294519528207135920182216255624112287824487617220998101001778095750171044527638613082113894540874103610627160125092133681075812276162658470523380271294421817074613790983515062124986831576077402557645906918824269204500884522452202887942125677351095969333014817291771975662772130206662407259096505367469096114529354146025989393904177223578499739474035373070225402026355396528926083074344664782705662566848438472209651287447844924752760451283843547816414941239549835463072042595257389930752418568535245884844442051094990637748399818508843660756117683628019559185429022901806941734238379186776918643282369247889000137219096919526726665845166722573337785157446453975177737276864727595742403460720924063439749111498433967198425927078886975349368398290960003928622661183896680274578693444005128582016577280740233422072776233927849796845062191613407258935346902630008090063712773031873357444476756729732301518399029268892562045229175352268544667613309191954046828911317777530687879283594920046194390734461985114437301006605458479652076130583337987287280503057278200725215519836904729825014262440274631660697843884179606318580971417453254071960313508513740959077028059583247661847357915797357573456955097252646148429751836993924026147780180464570739226897398364883523410027469179910124991398628059912919248450296371980000341716923407587058722643435570913495326663967453764632411449855771375304400244111246185537071044845032024928677242150279805675420422584748765313660753213134262743918931908656464298098766409711260212815815530072775413819797170825225913123921703738253893336759783174741525965185219688393507243887183639186941903935190836486342686902260114984958436434457891155676652632357117075926235962349114253034097466960977020626585961190818441783163412468929173628125724243892180075700566695300740774373615977646485129580117376915026322766361065247737774516410696726184189142641680761905444456610526753640542551133575358502996612280201707319656851607508820585071085517369465118460312412072381565486733927037388430670596571848142940995329097141092991748062421425731525067181604250873941218339964968267845237556491129098997509487279458943233248900572625383782598981849384013182601494545516050577262405839642714791968331085211096021246809144945542364416879725544813902629661372643940924409016271015623096823164154707252204687050922517964020790469208863044372803151868243882389738501012478205574741028814101622606473345071154176623070617920895343539735959267402514148398263771304197425864872658263274022374636940623430769239230603889673391045474614557028817519886012600983081760529030994204032572284509317430635670146861011439451230232110031321220827946201066226083058866822627063409064375735400842432479355572569970060819853289582519952373244298545940800666501914877427822926417381356820185233291013094925594444055506716014668509926607155573860154806501774283629909451931854382010853950048496835205899553024579501719396069201301463201527378266783259486155325965029235960520740275415698641224320429846629987336705202248062565010012654896067056907200690525577216605249635941440485696965404687206553568128549249950413272595067385804601367129843906045606380312555042353745696017659905455122436431849413673790634132016248244183467703617660787581368475126017253992317608362931732988578306435384340592751698325616291314471145176939786947598457666007017708813449504253316199920513685772016550152200638727587484951421580867003468146703282119409684797146866156430168814695624397933019979038398635549761893576033962278754411237254830611507970787021847167711592103189071881945396314132636017161133793488011246195208334687165448908246353651445316523439026368850563315802309489889802809003841855172681982739515758695543356782172609824560066396450628218490166639837635659785758717994443073281873266386913910977697571841547488819129713215556352918063087017651175563424270044187891651689999503791486052007612871507314761550000659181901239193871708691997885690668653304774562722661426295914192349029221729618930334095392880756768702449211897311852403427607718418890527430460523333379620266735932705562413529501711738361369713265667586668662032161874424163681064027728414118159302501851800613488512899146699872976044059277295791009903625426848345953055131335170397182187621426456685719487463631817256154527918763172181220668865754494341682650024316390667117472742651957764842557447564003898477136700013343457311677495115273879373570829513478572700588192986747183653963831843471867325121830599646713457672736529445591972231155294932026578487217526880453105966277412191711546925999344327802687950672379623588089881965918315966626343835665909463084744449058424117519973579552660614269872603550399758808006627432690892969568847122484111231308652546111399665304012045149763991745467768290133978785306389438795950734194528847120773906292731459554286371317710721290453634396236319563588685120635712668737627258538967548508307361927421993938964661874320111094662740774945089173937352901245216689328376473286848097489497311971810241710249369792654659335785973812518883749320391828570750902504897604367806467711111350099605915222143462651530389555627271207225739237299799779982465388779380492394377206330931578569699087961343999719756041890160103276794209253931999943416264555077806950419224441413131889536793294875765572447722565174693772995883291814065714988501542682793052949393211381336234338469074283611477443414585767805691311365448457111686661812842023927980935876168303676523136972823801160135900767590256099333931053401112409778120039033326987276063716476440945467538929861158461527088439560521433621549346931380334523144179462930599239431383887431323764717475673209269933346784910374340694624941715877085199791563433731107127328085463177266383400280220119977546174816305265231450310904370834486013229269982724140146805705297595270568450571254976844280742342336317165647651056771239782009141144755352133515293027702353598523354279722326704938738360663361599276988977880641517764862023165794562529437684453393879135297125807675431513354107156621460422427433386731373964235082319661290191753583594923026256295233922624039747506573536121176719136717359220543596026913454013692890331076778981947880506991157946922497772431280715135563408765076192427681695016195113315516334493185150256475535643813055389033581585103965142472069162238627019210191593975439035568721509629735492300501291500183058427681739976407581181721435015912741165643278556688384895917979392057700083343177833834558306483651485948224288835990292990418188676910785953815640838252982712097685466027461526781450163159545926254581952102044039805230980684208716513563003503256742841483648039771928522617511437031887825102427944407828999386754214216585979549950354017388229547536319184324349258674294681074515861985647484982829291828152135417719194310339612914138144088700992946766147078637117062434156236684934628553908345037906666733730351004317061716306109565391593526179200566325872752626735215168620527550861107127531786494305111566799745503132668727795905031109804787793008903275043793803675988952646927637432640687046879677527290408542088751594736421353195108574745676344097834957266078296325604640597063219160318762570269364017562533522750830489715999947439154334023463396585517452826513569867090292115010461854344867522016596436865409595025801226489452013819259267407771071693388317060123409597467099396706089403769103688568495959320718446872803810923533901091711996579365234067920602603484365483022901683962671292720243998841045678019257297273968261053809350353880396757479501428955654309757435274919469289425544836766543355835173270734511427376817718361080301037061527156644852410419002405102247066778317896838077161330313082567660187761727180806329140390918160210194504712305266930635331485887487404578505715611912934923140627309937905861724519122963312516008554823069523028530213590961232736125835749578375617232964380558939274584552275291136908249485376421950935037877586047146923392596772158479253674329069496456640070071577759142189456721389130640350636998448081905477562950095146457960257962372426095974502472929879360138189025189841141841526966054354834945633954234197777595471180385960198480095945049960893149281513540865143076729765726415306573169226915367046228496542587906578811933281216564806408415137694894058892061636729205573137569684130475439338671294699076083239924678029640417274747243658589432706206152660470828451817783015173857607718095092448041640538099692589037065881726312274171025395095916791787227191401860260550239821600589354896593743794084711888580534502763648004781792033443684652423421043860143704834932810415766714757149138442789072889678021483160373928127622485545342601560637304518118502470537210422976150482816044323941740006461137610808566774633062007894887048652842963006658773706387016212747945443128279916249984751773959756593284398997997442447760499447534080420949093732117807598936979039782928534138631021475497816633594092871242537078916686904245218965285213774445406422039432727882066838564406815424304520233300961749621840792725130333010117109318272111358406248522625565405355915327407359115633286339033734123646542052466667523564862865288592653768313287761652316385421838123335365585596158076749520359437631572512532288273787562363930522247672610998519233414290850402334091485587590390583305653681980282512521002315573671328740514325292301025809612479658692069459193687703751058430846352526007782969573366089571970285755731595147640699099695110070096662196727406790225541631891830106491771194041825061337435134365741646561509388956444091867836483744383039012773148357438943753647642477808070213395793236774041920841914098832963398858597465989304920958991129950496081880626827084506805967121487297068759252109277386699930976987881360078040744222781100418755039173661901192111141824951758940795329822518234863095184525590371257573753297295686629315597618548112756815772013155866389326653334801104333727547466475026279490959642662583095473491751136576811686259265249310549173868495473212121557755025075491668320433754703783999693890293852636208738974208454512769124208451315050596636064123550795593437490786774384083737777897211098533308480549228374707204989382670008714436471335422080587564857383523123220738751208106264781984735623347570333031457853720634277320110519549392905429139032718771711273765020162181907049731332540469954708400758595847429756239746316298088526819674700352725076776782473609224610167860987445206852649068755542517642053026970761146962474703706069919738487912385532462534248019324878917032529682550231494888703360837182414198656623577737982402228520122896352893685710777510022128544696066576791648021023931161385008773698931377630016453210079034292738442262566954761239354147834796190792812206039695000761407040792758250910767350178810315146819975370406015081886977627067368914991688671296915761673718201239931632925525424962189501823505236700023367944186325421297777176798926606409283116777313984350439783168680419048223789483503300609891207925878227349948426711092622083207370376698344266674595090882516663320538326394057999939239399683222449311284761082984131738587332113480434766376129956848523887109384648166254966944860026058840170623897722796405989307384161912980091482184208101345364472611446678873624217686339874425123887022257449908514953865646564900799289520587191329051687387386522934351618291365358972545769755765909637977937640198599154689349870969994535822768185755061222590376838613124443255456557882096476458228026556630621452615042834499359490432692406228800515388355314928955926071953249916849884822999517467323387089856229327279197073236201268854005792806130206448449437120473699682488687790144289357541137094946314428145334596767405070875408262370182222572434463602619128837726869896132496301276337730850833223449925661485225097183212568382775525621655623945959341478372504091458004602585262466826797298144673519657566672982094099167358024955230932518563191241366381381842284039421617580337395771767282655684014731061095831608090642972530204933350646641306690640106782302524641419634346680750832931111226109212542090889956001798707196258916142664186348307663392195694291022567539401695255075517814119992734168757324911189704703843211959507541805152798958134924842181103788820609696191996440943440692490468443764945785923268543542462043590328344163958024844937410682217006314384317008098458397473289906559031359404921782327335005799482846507919317771414313148946344819930963760842287869893169393628010855344187569923245560730143927181036620790023557929492815223033702809628993297487836304204137808378739774906771410537599539518766726540119781521601120978096199182816427063453898165890620772128602594999688565904431941465445305234145048243454628649113219867913780611268714736624721058717253427026611628042632601085593424764508606671010094444636345367446860439122904520567912754174021723813250360505899638101007751249065257178677385057416410908853329328505095824682770251012402710741459952483907554481440984385127966010358011813298718233038356267920882040559066194845677214402289916976960340402642382449541684044776863145430226373571436431939238748058382493655580772381290514764336641652809373072008374089390959956289335284716196873182666596908470667049489281561243681876891555948498046030974895629205643429180321547232132014196647539739645327988553795888325959860290344548820946607998895814323224529005781474197779883655320503097010088822027332165129456796267769548753696862543543301199731391011950852096891528326357728367190994849047729600987113506838963589840294675522793023523975690943099016724608030482712725650805938826039424032800531133953960063890037722248816574075231986035826774947937070627394985958258237302786100927266024876093763533393984231997058374290527163487239974302205014520864820933755039370297837190559651659560917465844149682013931418115486935512044899698402182904292463766944967650495158977787805189516989851441429644867851385785331612490535916236383006067414403635380603720147224483014821984295948726799166830242142747191394869192761707791982423361726163512927899185324443131504459426343245366198066049179897356320930676849899228799686016221323435005114395557470530588158368785573627332779777818818518843739778715886898309154708150232626007525273543562713776484584805647380126259571655081710654479533117976973739920354030547554401576738325192079866523235996690349949115291116044741689359951301878278817442741373663501032496721904704980996414786833108892787516942324243338527498581165764295841291821194325169279755691778169624564908991626918572241657520142635786714537750794229359631240372637121569283616767432957354312185057845141347809623841180442885493047487563396149931330249571681588474939705675146309902292128843054049963919073355761744889812782419427191259261575711598924688933239593360732945825939367825264895023933702543414083044047187796477406567298789683185441414414266809077932560437033850366051068315172727770238786546775945334587174493174535787768139364258079506843230455886128833340210190918436192197307963399555897835731637975306580016318569467477448507114496636969328988061740822266240541436356890325772927196272242387997473067291673940411923449278717638468113719826612944663076275150142292592483413330922194613962951553021630450127455951888208411493880775194224573554410678407646050119875863000019769037817537271338050970231212423161775073440776799492550233435502788822631159278165216008653611327409396474947261492145594770942304447561998997565925033899422668404091023710910937933100234231558708944481305811021526066543517808704182399703246698931813475594370370976053856143986965592864020138473658203811001729556930121080568782093790892725310010037681360313925750490576820051717340101497827298531893438388942568681289679568674269661694376537772652353597965103382127550224387089249099324860503121695810847882114491051581250294771882426274633269689015394462707285141365459780828447267111474025317502752727252894658699508287716029583388262824746396630346220796156602580024922242566724680495012843758200074882275435627131171008536487726514488676980349585726194469387398077203734803430081407884687460915385785253527660845090499406624815764364367354180144443110529011376069468925702733557378224614387096210315337819846080504658344538191703484586071387750986592872430376099261270306941195825793084869573615180518845903341058470454822837037322678859820267461722170699019198109593296070973457516011545412141387143013960979162222082149789359648213016154527845579566722474182796101911287830064453714933767697957136054049237920903158747567158943546371339293900216378210499616391444755193276355656031563234394287245240389271267138537212554502309817442695957057211009457621167317382771140647604625862832135114902058313465656116242844643831281557289973322727189736443978884078120229214563183614824169464025630827185061021450474100596033878357050566772970083360506717139606094379013244289859800452501588339019210795245058293806218507815703246339208446278734490204615471823960049894106059205047660547051732179367908167514085397362927343998384635174669761890312596843571207198270878658431359597173659706866154185554631154944837826873776223925342405066928293538758673302947997323355502664793667578769024875518465643107416727896059435644128389874490250996753399161701140618264644414337261542921364252597600686597200866915486144262704655324568255585676664044949531571289762143957895109192515543878694338548664527029032494806646017081074771896774730202447570872544233389942916503999909352728432211812845499962707522780155610340976649395597556744470999881484172028984306481390922222816725842530897408180693846304519211358699131784709967748587224252069527503051628042399945795735595829737997262657674362962561469361785735802546646772767362173213877696757353316299004706576181023500984846768655722168644788950867626269135094851652211198532162467422075102858000868180936806094547636966444915396755564268590676677001098281428906590150140194859996544531432910748177451654692457615622463131821942423956074408352892967655140611049857960309224397453703477733195333906796505675512408788360730856611039198098615062761697991478533756294306566286572687711260195026831245364966631700030980020274541810329323437565211232307081267117429793312646861624756298126078767386447356791491479531301890004926992775927613994783521717950392563261775716475803999671824727540669817411153464600358009518194680023828980409398194669190077005148968553464499844703028490858440396798461823667197638858086676493214396618004617047673917654096479829734903326772800725202536103760505253413999789045211263493234597028582146655066071478805997543213330086421542309917843497477363316842433297211680972947796401415933086928907936118962899286141015972794156505450695330472967994136439292865674690916295873154036105016502674277612317323493427139841228437997688030271278863201372432606803564125612612377542607591395811945656654115968723632054485734070124417644336016361111213503269781376914433291079442624010323789092658835635322918871669137895875605959999442758964786523735585216959283878789884785926290261892277378486614527840438854129046998376060207543677654739370925779438950238057209398479959496528932765751010078188211221260460908792312380234156562849836569508528607178171494098905600435502022846963995222463248915264684788892198549122656380405523271342540208523802015769841166941541999255615836995097248761687483069199145009265597827692365900877542035692635107072303413448709304716385213731273484829817808429699438296784447391189546286596842355016900895650266630920947295045914012718543117394572362050558368319289528418766871365919398331786083639963087475487100349358288853435965679566757637063376677551863473249992431529861314041931949977267828927481300161709788152376092873119600489080143599016185792514664368391123615621929809611449092813426461387192751728874220435246448106597330573510084033851072682428847090218709617613428930541742713308930125686346244763527223984819603834266363303177110399864324877766231518040958365912945307383964908072354221447756370609201941574062599589998323749569050099593900486766107671815400915121613310827903319437632995319475111614191318329768991021483747388682565004752136383804195243082021834823609131162277811816770207230953274195673408837921840741909659518178850802600082376074801399663313541804279851243973869739415428825304580341305409464013416525127961552395543065877863717964776381991733206906072891559171964963749151233920883474082432073673030242504001307580276416263678676329600612297582694891375720355673841830777679418545886071361860612669272480588288194561753230484382507809788196342637177187545293647979070071240610150679601651972182510139386087329597920361591097579680103661308518528178447367904194250680293392720018174437176287944364739085165872396782718525990018865504889634732683864884570056309784075985989951701561111450943267059781746599211748026135527993274993869218573722987469834967023511004757543760957025103697673241692353979898832939527918320761681650070471973186975666089124650838028501320718359160952710255521153948030676835440412412559003960343554476732229919370013688536046785417791037158389670005901169571208557328589990206764272937948607102974353805044267153033192004263039502655142293117816639326683575014007776050571116421659425281456693668424637753154192411966513563417002690223349372911261743400918496570058500684123037143314958424001979241001826165545915812322455358505072528843294839466705102401647398304586251763273853476612400394954397265087253613453789620248342323044276614536817448376968056789759689106713935922495057295904384566633776480872762194300216132072643637632866696289297396066248768277066395971835500875459373982628987158646386450320794990142336998793244019679964725807654290679811317099937774132151385373846533530615934845776458752509496775880111129003379593372648900373948953946877186913803621484729099860397852238214813525521225654297530772946569838832716894056853550844535837657882067579740691234440625165505407659111461316548887175382385674280513497926616587863557149520286755825808824324138172074987220434796983731055544160265841729656400047674649660888878270602576375075461936839303928938194024353361820884328893351541662946390541774290852293114668973694572050470529733215842631120398908040308075741309647008391285561983705854495251040133481690802176246596109882217279520153992864880698539264783012246691349921918456852576262154929052372638170487883193607355095551086349905853156293669036080191614683604826940483540445306049668836602119386730108229628631789051342380540730609958248135236450731592786142469515437473454569335203105278738564069779992750721754946032690700856965503346962088067684799909366347273009720610038289407019869275869003995162552915485363504580932665774466326582068629991792424746565649311136717021115786933577416960733213172346424298639950692545201433836008746323951387797784714963263057731093268955118894706241245480013650822734426950164101070065441274960106457318077608439229435617316487221234168580947378612552395710994354800633725465234649363776118029332166400488127914269483975059755421397489959476942572078933661853823744134535790415013769132358720739533723877075496715911767552475886979723569626637156228429521642932289971862304512009437811000668125760046764440431161544837696271087121674539941577937203172796153239694594599145476479065244695549015554123383359507533463226740899757207904770460644948193108922353838005277112296896485855185496301083071651535193387381874711345480690781661779647304695829217154815055470643197800385504440044201135115454541245673087068618240171475762779062551356042374737630977693266549265277309821056662435588622183933598038402285195647426010852798387626235631485575385118889711897927442313035275004247612370885296705025396134143026974361221777672638674828700221828590377227052706835799925447798361004062184931352986907499009086629124929661263459532406842951160639064456148603165866827991130472932083139272790936096705609772329166563749581623838042826374565361652107051233208045924224948080643270325212821247203307126346158951117835383907920315301789049494823096724768447076874777847159674496724008341627955195808398277231084070294101689005829946703698087215968907102451890608445579344227967607717421068939971992152270987533074680933551699325749183809960817973184867992142600222016987981289319336736808604996887098422446954075390615473348129002953264759501779297446327254966363400292695600651684550704140164474159811008260238573767110807676189051890238436351182028432617150411731407396598460779770898164674353890200757433150689767826595425050836494015965665863847946418976117671369533440162000968535136100295225707947836869719389811307480881188144293987418008146104886553697292220624041881153141214065245353703780137754061771393849905761307464747557343209284575824624188068452741176929437350153408821926569542355775518427759206128298324366386927828533510272291689555691651320882499599485777004490769288925353837096184474811868324765761125631301897546249010080130313521709219296602632574963848030581133255684684787829135869819439265203410070418349993906193784463748425273505244184316782297434523839438233936608853347270398136692439024957107884014612705272381198724232084100735472489790513401597187583538941479873285351686496937405064139707219101642323932637577376390042552160123555029516315839419170174964196769571698431147931583908726244124459380428488745648052804292069378753212143897859264511117159493127236682141065876856487509630586893864984182902352643228451905856481114217383284738046601545973907824897761554970459361090499247002855042841820426305223841609815250213758794420080841734578477133194775721903837265096897968676875411055401445725564220850212158310591289367430369122055000488775840154550695843933095432769726224818328617105207512831502884418525890208362126736472536617214645451098579121819218624346816614980026320814704334609797025931011848542824842823605670609656717457370364640028650020255039399594882429962945879562885587456547364082905036581734226714448730213290106663781049938890249975785165986408397936268239464182446839668182232061626523931099900431153313951945217148079955029580030421227869830383979587757201045451712895593609718434749613891319595858829821410909665136995783776766505757742726941367102164410102140913493903075201193552488675320688525435360105476890924216000751430792722949028394989371302406065184679103177724560050735926230919257890086998210622723478574939140195510078491808636732670656940010082906844555262297648404297249223820815168368961614425792478748859403116240955508087131698914908483310823396275559962170594816874677427856970836480875321076714022579358495381987417159512153573222963463574617989738148889781917987766918484118534953317526702680796273449020623247283229097357427789902748956122022023661488442587320361062957883398981069213311131708591948623253323279593510411969773716943518162444950288923228058140482471803589508443997492735902391738396696076713576426330687979319411547418167679868339423549736691208289744777540614052883732870620235439177817782817218351574813326188977187709671660910578992570324166734346527949031440593273159398610735559491368974591496294476797290730488230325412587971055868288131213962451338366163339466539392219264163197869872449274359775836896949403125436252762786176348613724938943557191105328718554929009348734061832856437151096190499323641044338517043210215952244890852413044899102711782014258528510286129165959162438336732794895001945800831251371296170354688969824225244581532146772569813738507895898153717423088608115579522956020383207904872767369406054011151913362298146493861752109061021608225382708722041640377072640957458675131423895866623011575636639783371815346766316513392627681012001566676137833657898060103000189473918986631913194093836225483292524025163405997355480994472911737693494343458686407765197135797115392830325113011546176847552576958742572355778960585304452617944286573370597361864796496460081037599965362231414900785354161279188560753315062128490081182936620667473034916590448008666877179694048552059803734527614654515312409371897756077674377928794437805423152524754337590808675739494869771600408527307087481597172247789578478937202163247027743493071297653376816124489953597128166494854794088731375379464076177335384248369871545523194422203712776167315569802363471734159612778660522967374741725072604200552454463234636766630745966280410302629854438405956493965413902627622095118942307199589775831974302340389534681748411904814376772171175706332719286891554175392697080703302540646022557442139349467460855426728283163016787988677884249502380848210748716864006691149084012059297482869972949196119266659499419530987907269595889475915191519248432580542254646043369653570006443318558633151948184062779206812337634616155607170210803435795974069224770204150750976424198418151520898237987394046526161805130448111686434908333576799466308772468624637440832607232768166955398998931288101544766836368631869874391531129156297143719216956038652720799732902243047500137233846201259266033253316460346399551693379738012538677615557131551087697293457656239700393099502508862263821704181584248621972828089511826911950380485411760952822907203217866035543760874539073650324286871271350514667245128674064236774342478825168049615463663033796933230590766033837618460286849595517981239341069315096358952859041116779065088097455100677278332365768244962925282806744366981742348786885696880589383531022867714634575682052241231511512958503499906160762530034444082480060826462119770117764315967172087858786070901806326606988977369725158156283647073302711250031615265748082296295472210512369888719153625120391030117014808962244253161194654665323170980383800834475859412727165250086802703678395384421610813038533693102544629828413818932029869744349268282265549385540508048008977313068492726261710048792335904534997581449595409864167810082850806879542129003683937132647798456261011768662869494574363443532273713394203646402990503411834727373380611932625674880642507551239837090766822028889279503959319454784487347334821748262118861304537738317029392739398038835123000766575503308004521361608253672127875634674519459145792600994399060923209997757719930881242461306446901339396342520734953753684397674877508474231755068006410102324519525831771882104140760137702064377820148480757095854657596436235660689259539727170900689014707126390019945852092827307305178378029779025712901562941626038342662353093325554303178525747084668515696603948800708184366899235407212825737398935422265379435817609100857356467988123634283138589816415161270413011969022414142369830758446084879971672172872406765745274995540968209240140306961955404201890165868448926386967420072346577709398711597551729242880092658064558155557370664534500707822629539906110808560277344600483311277821057103986436747741216828905348230919220799035391168249533706748711312498692518814214559448069126321166090531813780648701357392673952992881146326495944591187617625452701259074983384108535750016210057474652724070134461469558030338891524321521343631058429888313041884584517870137505507766471523357425273741521723734242011425086052771041299711531547700045075731690365443078728784553476837071516911577557945389349863624421470596567633401235867002717229237189230731342704933489439364302013378216661689668426081256772236636226393463258420990072152902301081912825317133675390264013351144583074855354433632972857492536748994412786026659080376059705425179250429935550495087001497456213807607128365506546383439519079470588579715679202291362649550876800422150981524637123664296559336249446654002003038271849212526264521017279504646192644414390073553894240540535205663918881968528378036741782439265737347208324624087139554341914812807195703933728198205991676854478618239132294892338147990330456429103732334037233817497860258227627087151545900947540232003411841435369741987073469842262532271952279824207143186557649287941339528238921273710026968817145390614386584571154310152555941552765205866214745062235993626243336788767732885952862255105441043849205629319072914730658716560197649239589453235414361678116975145613858273947440266259134432620364259502964109831554279021304611712594553396993830192447258538895298583278920336982564898388968627364149323688721446405883511708451629573203475928420826994791863998803350822818773401541156332808660450104502270165901767207299380600992345227811273033617291413651363848562547817116105258960096010480044324841368615600516550115600546963224197828559761570465367229314479960400464312908916096503249829471119836909867975813836675344673877317088671669110646072161603367076498510002007307156223711614603024735958190615112346383760061346943767259315915644425609838204076005407920741485311740804301507145656436987583419468575167520616783718141573928017591416725507050883072712324545875008455019214231455257536416397068983167202378734157399272079317450053068797865181314775245095977859726530199217051904483609398805824843959272258444201515418215033401800108016565120724981340621274654457045836120519903417275745434996845544144821956668340559798171838319500339925187329613018000552365954845761975901475658785489437499530419805087279584900090039880250220375322120666128183779835818636031388500391740015401091136050758630321368148141791068732243888467470676527202607321840153741026893219236771338515462746517785904057015305617469622066874318513438461942586379788903560527721334258374122402091589416782154650920336826438764764628837147646594032821316158976467991995716383352423275657808698138249146662838972865204021758067147605120995015746880463356526063496758816024642565181730920174885203404923349142888771143024587101837284236932336944905737081838711892692852832880691776169521842228541262273524583808331444241372955108885226015583634053246870980259580239911298727243620767731921278759104296417256113997914996648157684017412766790430027074297845817508589538916768317411748272620132337120959496774794804085533811373307332910086158247131560137635716448265388229850943709344511755883776318545721521106223844180963695994776099990853820304490325942034254159420589527838585955029770822325782240342742743500753426528912341092373911949001325233738892014297381008126270369001119486184159332553130929023597115192331327532796019156285653242008010800595212009310124243189223487600996482606406138908097763311967793535601645522765555262353452868526447656149799675809633708503865396791152819505599938925816740299157691140441115855721362094696660140964256495821187803233003610533519668865615868013530306836018325756498379704530364262486093091448989204389276175947707822449167791443284247307381202333554500263397767371146131411706812807352926076009064273856617484329803080818601127469966919964781699310548076226778796646275326154566472388206001926141218557704989900140496608069558752288154004118413249357288427589143658184833337243529640148682621430512670201870996137388840220763872180509394094752948728075721664355134329337305872129956723162391548616727467340605189091728101114226883136849064429625985743305293971485364558208158252512526813620980722690699198387906109904575091024701093388354048137469990878770810810670960519633933531297184825468152450186435875240770470419429893654755432282341022914629275925335409888153791357657245740683444643060038673086811511987104798327772075672142496421944680194806973299268555698199662885698026349989943335688913163506647704404403457251950211564660320738657459141048408986453351571282376100822113159562113555346797299233662066848421742956899888438364729095303169536854068709359330141385247221520198465754783215880104762698475599375850414654238958968227702826570675707476566122771714993935095684966198863440352939044024616992542396016262541565167806717772928428292615604527316731584865540067837759137404890695232214566504752913441480106265012069435370444280989621654514633515549203866300267377790869796557769106063104937517444894148708515548168926020904905452390099333834820002590028084356601247512980969606263511290213218467369783472524896160667599361812517376588036326266949251405849127275322342884069890278700935607691690695870106923434161706084440149537463253147544528613759343361123470429053054592754178644476131622199470750865006300744043154116055498134603092393327617257960600879298927851174250993952973951636544909346133225257335973477117139076807201379083652194703724486756547920638828682053489012377303742700681587575564134132169083214167355744636334136085711751945112891866787322748747253866034763265889871094134350430762049494982276512600263037415647227609293641355105481560087235918606884454486521528551934690372567964714704196550417248120305510351064918873339198144009450892493862972960959365904132533147748217297337344893039031744776382987435132056014819014712482666218499680571013933894671847018390007693110235732891975848138104784638512167307597942996370558419001262476799431165116296554511747427007014232157928328332034717833229712159011142463711228175205648061724823233982946600259355425477000964677040775980512059147866900484568458277938753716241649753311148812420531875272964508820771520821744888833840978184358547806804886386292899918347010942031647939388806005216646288022309485375333729292013658171400681828301009332520578388228476186811987562013822663306806355666287998716734166953889805831506798431173652102413401889426708898612482919008648958656054782005834084852108774132539105568520467178342878344541870706377431488133901378076544355122043072955312642339989763428530871222538549826564530621570282541831830873655900171299114615569782542792097261071655651046956630651429323552304753693648381227034162484218676495825115879740707386206553504854429206542300162902546976328547743933199437935265321949550750923743864594773552805128623858433027340761924959991799407410972030393918248326411061261184920119240377151933771505931056745920976744195117029192106944926648225726344787635464619699241818579022325736428901111346710867892212699630476553093543628872283562234482096000142802764564204456080470160313621610771889314512484784631108899732114090474988985803664327627558702634737640928804591282914405716602186779139583541984813935028405616161885216136390054974824722940932780463553172343071961617898429883184983385062406441757587155473841311469879943643533840804418116686118844166128897005399076448660198972868075354078265771881431460464576579031193048787364444197048734572080130702717478389008059678921397870364031506466092772725900413475690329644650606354514894802260184113248176338225677165325788428916750228392451042528894813299635194523253302934502847319055206231141130568238611942907307577624316640525357746274347002096798148131599978164669602685576195026828322457520670613703023021707387015533456869648935442379540149606361290884765153338839602562744904534368110979307039093898996235534875527651428842374774507732438872719047121432643428068992990918547580320466728046325326297435038397626777334308515857204173423587840579216409815705503680656398191063720169751033743471302506389833328735896655477459127822524433347345040357318727535183993071206621162850358038823468520682798008767460797970677581299083073186369057768351540722072299855519343240949607756487800202475866308067437284827199681341738732811233193895030055171910400116604107646942507887782086057916671729182733822928565621995112727978451693440696083713371404593038898925754255731668245100879097678425840029880237233637379857230852800048266061100493667436749303259445393208202933529158559867367759757140890905754577083013443928641603686400976803057728928102507828576014560387620489104587696115450274653219519554715431960920650893123680802910911544223664665801618043361464352544544575461300828135714676202578432339894681491951646558828995584327791001303273245356302623422966970571636688022737020884138338722148667396524593295740644903452067312937447372153630290230940878585574967810069471278086787683754815216474647182977460717592984407314782909657411945632211585324675749577961481932940381787751268057772973350037116405422934861420114373964302505654314738274178295533962188638009054691312730516192896530935126607574295152276929897565964943036283866289979222706920370482055431924091251792216423279736411770834220675547929412974815500606662198317760389816497288736375717626443823247701863487893390501788083973812919390480361810047028875271968770112810792537174238675227360241708545397137255677397028265425692985291812756202729592421473188521932309149309187469747894335718707448399235474324018848190109703055355934425532308162594862190932468734775527951142263860245950341877424672560289931024189584252497654038546178198750372005225825917942019357292092637297400216184880783561502436718220591397838088695090682165514458418687917926402817815651954036853529095763103863403262934683342352443666782402253575582750647861342063273963551607535426682626398269704718113522511920272342938448732527475810613790529063874065741040093251530054932472522142533658345364997922421569663334429338779633070635256374381281757432213681794008466827562527106743804320746774113394897920208212178099112181482643653327177419233685002382968368586537829417521960756105948061446402599913689962408189837935929179329346810578110397329785337645171124794967822794759869430437046014699521404038235409721891062694553698313197785089916798820140258555199254425537715860914346237176397828203793338155405780665845373715769914837757259670644693740372132263413839542555698912869576448329745332666057018738072642951874637209416653638828359453906701634694348030536295971966320964088498072276989112013671829821167655801905868071631897878910409973249375462590832659767447924485753853802356609909220632074144673667650210185117011176304372449650810423670117977199632359916641136510530526430745243224200431603083567333903377153210589037370267492864954944674201664018784244508530982835415822180096792494785407000351812568094385876253878992343905969267476487201430826256895418173101990960855065797832523739490241151609644537958423610548169008571962360983740877192067306191707251726024688161154898277903473046314924439748569708004881387318297147518181539236592148365156316542468167163962895758546065556463015532711404652260512143588518895180008055022322866047615535826223573866190983474971202404744649719156364443903465983787332512099232399182232638953500941809998387652535994730075363579189944066367251177629502530308664419448508042217231542443935466037132262591130180795117134702142776375223626876395003691061311728621848907238411608804304651753090464400572370992502570619356624425676211611479402920529591968404380116536347779668275254360369353988639784257352874030379580617140232260537321944737564187914725482890653637796571001387540058902679382739270073966376925093458183916937396929610457071587164105596480578604684688431525487957771698435410045187875580737329354295320733103233767317178474518256700162694977486412952588109742492818291883260416644039764691653297066948553991205572943957519821566506374375064711089029100511120681599176259545873043622381231365903315242874812312415121930345929042596713394574782089671139890918724453845276254747217479892759339520843002921510663099428266820399500041056869934435999001779869841597387010654301191314631108992749002545341210267195732305175939252035034532994096636002745154618471872075966382884707541255259045083589603205714038564979888640051724106693453542537209816116348600046519273457854936731391953592224356885026519280160761650378799336822907548872868982940532174693064419403017402322062272994414697047409790965660835806477686678173450353037109100046756184703562417657273713263478569766615302219262822547375514883048467195764333240061020480884890674207567052121843869925112639705418228641945241035228353673630742980526772901902432304044147388790096278677161797685093246384832152465616615617678343908605446481687135101936474893377553582405121109413262895049925927478636804805670143248425536310994730047214410456142383575345050237858659560098757025404541725313373110125313361304613107742900469023745239314647978482920141782854909881770785445317682339793446386482518114890820758359270249890528524060022822025552553686051724782063333860586494734628573541091625654119237554890190025548180518112226706026071714452061445386988361925531192601387941689630445156737904641033554972882897470146716070598229256814381403935616110900356780982057910174993405828279409962786405659352255778090821053610560886183084558308778881302668026225693822860357920985876696629393223664963817014492935030785325642177363240340756659946211720902102727669222971476194106375601802403685864591721896397129070683325362467981043790959465024540512915362857650257143736098800033504297051583614589976885370688791617500408158151330126300565467997115993048345303696093894501541066706290735039846737823120017142742718893432682550101565859666607503887815503721948980507863774951898972903816423045689368812663638941789361726127150616995074402807932898071282237992514234522399437867835088048973064773216986140857657463111993161895975060524825464906387866059587477060323043659080441202307500754799787625781449695773601415803855750709117234669904543806269325528094820706023277649686303806462747688864991362771755679316035447560384204148107089620523730607869122762864019117047168794446099705091976104572094150115420763529773369798094865908636064466639663987828796404760209380445001857260398963649727657257497190893874947880576880810795332849523674535025942535293042714233329895937402191864452436260134072100074839613463088347481690331342176941757516114272537097238846167508890464327886681483296826018177086147486478822970214783503296248509479448595576438901490457514761587330422953549783172845653796925371069466016902897123171023881562906724517285119626186990344622678927412511535002859348194545327055344957563654575126948897314124096144823821067230747368213190478255307446213214544692404611984206625847534828297285838097480438526464703072095677301565280592375945857327196644644639731945724247575788024069667474535380759472121843469496909636653489743962003401487411367646329062229885408355106317011533957727079790156910850275320573588661011313593098963061437964029576598847889958007547819452948935511403831041773548063415715635603579961378821451601706535630412091319103787158017313628703548361533564184527747235101078793340091426340529659319162156362023954615982799317190755269417678883094271746777423753750349131940153830274946622666399372044280046851782427540016305843845665445701908557181538133083452907864650533571775572422403722285091974000601887996829999778961546989865187312125879766974677171115368183972761014954001039972933379819087295103417926013197193812114792941343326255909808795549451673194982699567032530009503860544841277359996101229231383209723858925607189996010533697092463160624144870897318535432544300638078915640797002216091264916087494629293380748743961390043513613679322095450894476038803303664577703489082089497830303372041536705191903106121349055178685760824857575529614434551275229233766169580497890100108342200984287788682228545084949461604047040202334167626270235002435955216169100903066046972439680030778413656835671541677080533980702710150356503372871772292998969688901267718246812407395244551897711423409070956547222443929526714908004295387009170869627154160141000817820182085175315265535502916697667201433056774269834118476967149618877319678435099768060307687243165854025433657775837787530436254523732939182173635416748462577313217604500341191642683531984938745987862931039857072585709890786426332863212614729952719433648691224747196647556552713832542564527541627092103149399782337501560309656955271583659509531162048790082285083773551732325222294113877863332926742363864461724378911454227682829123741658641479092644259441481597151864028982787981968288989014835313598721774338249178244471897478564262190974316278892898507129917721120406920207206205201897722013870432353168417487677584151947714363373706566273354210451688268918505982748413853979648467814188042586945879965274733343061848044940352204921177230629467493682990476196926861009134740262181084307371010039185021595282226651456112150516470421345050436653278388000949248114205822387005291450544600943110819233662114649939025604510109235553818616410687724732024132299394494990458099925714936182841687418141138325409626723449771975911405076186190502024342287774228372691737330517823213297264146092818996262231526506167807559631208261903292212081235015567361239275938354762434243133009967708309655772336034316020538495588363177117928809940965476851704958626779317732204956586123479061722155270924556367596328447618251370576532276274668435642212881841194093983154771318571186264886724934137613235654678337416150275609082712516911324258637759232632535060854075222055119637630297640708651780825025854115455258826419158131161777575396694128117933185353351819172596321512328868671382281433581869414494119255751427428140771965852992327580737947857202369907071378079753696642892928768124103486400830778282322830977665645015100202795821364842305654747107701797057974738830001551501430023878987041501275381756365284620182091798628561760396086287219948156969172740006130711999159762887465067931876373582610074650019916281726423898438763263626869723464553176362221133187163090597587696937371039983391207056941312038267338340452395597329886131655883108919022477314083955274879214278503793667703307949449049543178267900141699324152336401183826624362963379077263725734442140175514962540054826743316764665218855058226287824130927559001954183323387846375548693772931548647825804667377371457122130393340824355033400671116529887026867984892736945917231001503175463631616475003178865636382404135494189211773688794933311154676360967310922997431028673020122665357717323566264693721982847458307332294662835024339113051352890444268908508986273443885866946064998188217335018241073676346356371922333308579150907437654524088919852094456068995635124374320592820230617042964193596308405858851574293683372698488521928981975679902625826520527811060805878928852020228917649457118973666441718712348317827729829043069979761531064197379270715605551302711061388641758193980571555024635013806553458887098110910812616829323031176925322740504174122178239547381968355175137748315528464761736990849241355779306476077386832679357569548189545416969464015412986533666179866146388027016993596126597829980228471762011972347720488990444691027983276803666790964637947559675666586639961286332560463493926051688603967866655165726395040747560520938949065181139518713149235693538648411287977613222202324122040128045011723129196279402421840870668416140701864202377252475790172818959905123028527077221263381919774970601572735876649268686711780987996447140608427317962771475715229223259500406864645049685091578239071699514904292803668533774948601177434602031168268683154878119999525748866542339744245280739379260463524007708692971748638478014945980296871782197289189035080805576041587372020843522015694718397978925395055398080550143167832021879513326853308769650308978044861345258427513727465603382761808340775584435016549079975276245985063308355808808881586337734054229594147503771722767937241879988007953990051642331927139968698903275344330548487914096679177000066604750873625225893647699486521850223915759019914826056367884137197601508967498187336106048279682760980331016496569596846387065784563290635756854305096255470681593452941677738034392795369861858094162492867660678935195680528814876521024656076992620317466485947663383026818948205867395913395789232050543150191556600641285394926262720108319495693083696670087638633129097269184161347512070277539821688215626639337703864678694463022886694036422720525183191335462777866735084610734394904838221202236886952279640251640825872533518328074215460994107171958686738883629679054529417967834649795593637417002506489355336872779873790893431870101705192396492054896651976849552841203351317103107946516192228564462360591546251409846058371987718652042013386942471465537648043179829146249404037966928392742684221134865765404737796338141624653485986803521169267202846058153643019285534734144824487596057789025547946461855821349592270306289160621704162995207803708670411785782397929634350283618116090731351056616756832561602161285848051949634856011562316347013957246494031724536833063690602854409385231803646542049858514881919275360605603224147537870269996247119653424502155925696412170437766841751589729453729773336352290536792399493565399363930265398418777779390923151406373005594210898599809164112227842579212186908046782758440106271684647166794099933666664687339092388442521782647991682461415119423326867837053731728445806972814080457593449089822801739532160300136392152104669516606429725656417167667816588421122772562630926748680800485676460129283834778709898238207034276565554522724014137943976968182274385207702266750258903376859971045806791416443800423767549410544305207630455497185168635149679258156007754010763732586649844785773860120939173494289166243392161150102498336974758952847051145904732669734503403778133039027428955398757978685879825484940895216081546254860355063605153293761724683356069280653140441343400587997288810771999357187540545382605151544233589116670759080396984521674362327461333059217519942735230987401990920746474114618726934037189624753414558956553859045646454300293531635384308018144885337846349516205249196495364705523191528410921062209437733495931075487059851345590523763932314502386824586955968277431738762279161226364811675822826714414923590479932430060578731821775694879645235365180903286516832536978474199127139642264010624971982236106327813398204510744734677150547657882721246709247046439654402599590183591585634081798223412282450786332525430436810354058758333079030648893760484929107297223464545579051422224899836668018104579284790255985117181252333894382126078276261099634446146649735517329355898068101509348808387269818067401186123945771312317057479055552904308474317320407571445624212903951607864469709940053479171703587681596952052412532350824211508615213733473068587301975697232743748315397442379747905790297158807101778942238895189454404675524535950206558669093346466953535267856707825792565365222165652751820288288865589431406464400554709660391264675263897079894145509440097013632475015224624395582828615156285693048417086961013843758689671155901774977082765275103424464663951733116977198486292125603196520662704136113689753608163279381182998005173958310992825830973283669934505623403872712801914083462702540906025565190636883456945273976433581902825395787624474581496936001457327811031377133439046457528436525607052653506075210115426152701003170968611936169412381467954626840573873135101843587878120152554126367435567688496326867063976830280796468048953529275822746435905857837236284381267665007773610551910339439549096562159034683521988605006519123711551863519625130532631043223110090102451609402685688844209603681735958195943871500291965287932237663642682039224369654586913650540826140919029189851303967965726667782828544482510581099890261904551824584788461288415411522793971485537975935984994206677127774831539555761941600313572698999172801557259278873389072355617838395286758551498380273894935549970991686732166214795874107920904167870089394334504561372301778387816528911209102391611932681276433723350936523075407940816292900112069477193331728613024180351740355652685429871888536054240697334439210970950007639686359611628502710725198400996847731144047662905531915609169383731130848497361391785737437394430643518095449599727535215349056080419223089607081980389150484718302068207073272375494436822219434778007853063814795661907001300770334612571167885947070703911913052216613223148420227438432416251464078184239949086026995828509138958170617824582479534484349417059396431054353557556311014487537335835763300703321990617468911070482013438173308210543201495283277964533259701387436514640162306397500557350841223476741103656322577321030673935481303868013783824727463172356042082548161857528308399476246541067953533981361259082017000418368669024326172270914485340940590228534529249194794076945441289819878697137323536709775642075833307162381863104710834717935128360673652073993996884763044067459344461521791308921448150297530615557324579241441889497767794696999281545183473724855845075103138714134298986407336322103928236037127903790789741395606299037837924991617550741206979488970427128674163787834134335910506811850292475240544674963486615378898260002313236107668085501430761193841086996484256897673475110699052887103061315627321222953308288444765593106479791550390007098397800713662560615560409164012457002023134489268616212783532298991172726173185019304111461311071664441058242092257827521604779225364241423401847325088138717144370462008935076663976810761764318316291544026563382492287877254840500078290011698235061388170999303212775504693614534329475425073363406627331884156776969695966662008133261182084518251394468429046147383608262139157647827016297625548303278975902828721845930925548215606882227831236667352411481818736982683416484160235904618467349985140399210592267986325710533387296340729444631960526761716126599762867106227444764449361025970226589146570733860570993837693362006437629790068372260636100100550589294115774730299460794970282197550113316438712891641712041179631167915941770492865746001649233147847237018531656110324340687796297302760265266397751431180355217378491655331622869987471876903670156827216545215840098340229082182097212562871578972610518390266248780822367138687375676155146276897271716886280787481236341135879441719402039147292708207129415257558772000382132318097654278538296406551229605060967344500636745774665754277734993670013586742839314580535333993981971813553082666191611066156741212967192010857145758014375339539987336573694425530265498236642178048034026754586137368627237055828266532448776413123498373818931856031723747346800059043516150363747824978972935194459372991996525777282005731770345341608259152395770030126575468457443699042461135211341459390186859990619208650956707572696633800571740547682114702166569822204386186557783097404491998460119163639417291799181735073779943368657992314348879316457334008191119955975329872282713275211104185557771632959103187103836091041515954131866611810606472631446501829074005746786626063726926374937472329435937953820363750688719763991039418141859399896039417522176372296586390778509662626975424556978296002948834174291921060657735262465570698490267378462298217167880162673485417529731576339921133752364118994094561384372632388134315396188736115931399127102314999927151796208959636835539078769438780317450081622956743183355448310435303904785065750695874762725879397178089607803189672338954182751565157279865942096412390866495558118204277743754949552019997877461776438509904707146629051329712179687861537874924774123554478217585458981312108617460230744035742023685841701842761237753974896014346312124316790455888202120043508922241815884307722507608833939876348965639082544606321109181585712107470049288448526979545828982101912731714088074693634491948921187786353479786420571577907449423510598356511475234254420372403676841402405319309393440855465581803719462158971566660036153352649764617615403947493437363069897018868788432766167088378468908953621600575571862090309019154133881830540226693983634329104028349015143646193221009574925515486909816543890797068452840936254324559972860389729421292981952647692869389413463090566374202577690448591495255271366784599855780139852096208844092032547710556597226629672172091862907896184535374996272044084347153720797737769135045035287421272023613419997615966070409705823961294933784144664005570869327459740782058171707956319685486177290641378246305646821873740679848442005505774530744783933488020766642853536488980142488790832237898277318983679801183410232929577056042942773308265511889757287102908113395635734131486486009885293054289336644451701814564883400605530195043824450005539049987140892043729160076657444215082431362545549926475657798561712083130426418455255216088430558637007216097780220375887899650058360654949112196946816833876677970239576028316788065276826252655352067314174401721432563408098754100268232251199233391944773664292988465430350006370087577410315255599776685272651828902084330832497475440199856806303075852783816274534384843793467370850178217478374670931547443363210728856759050924363884860837153406041553738357794788535938043483412866021028037057174168666555839034773216616188476771688384295151688808825516507753773355370462621817450021318013691801461092979443728679532429414657468458394666624386351985345555989475147704848193553680632889934825685663429350391257076961323442201246336123910839294968513919199471291087206349896486990577772815083027185467959017579823315679696563119603001114215205427380321799259068338420296753175230539971324772441041762286509720064188819745315022897269455438914765427083436014500233584225807605787067206545083667380794283763644594753274100674135441007628988034642234543074852851070196298911036408292170100042624191698910115941792966220781644352379289949324600004435613479719243244494790686744527822781454015378590638286460402139176794026731635339457596445339043741010534460482862205309318769424192474773730814537393725024929743789626012398171931169963078742169484570258131046862356284532732964531247492843521220550114406940386968522043919217435146905016999814221531330394550922009400309119128961757781108329847271319644913284765865183063115766043368448296779396233798973803938208078145794188665541050130623039632571216730878406332007176746528195026207493420758948047538692587139561042213992191560523594441204515466450977487810276668022813877120382309544471730259433499910620915258303210287658739540292459197272467731262884179916306609890501835683288862411933301365423962490463951236935116970159459644920539158912147903199116641018277590914860615044938004521668603146040358567943860051447214646991050356058028852352662465522005683573329907815339943340360216766897790593459395269327269624318831266250336003466103776994241103247052979925568969281825106222099010982325017383689135653526657102534682759092455052344818240435792152425500396210112095597862333685988318113940272115271798175506029189721315802253262353244612928116022881272434884915078663577639143206382888817939132808487529417572406917956023256018744869539743490114073051093868955251914753733527597967518157404894897067628392159297199502749715988553283192598624359439899946753985945484699691966195866313617611456504075935791129260871947300851671963502875128740697749964980419645128541895155731768214283319257144210662340127074503929815811236742292667079757058923967281134545071453711521248728554779244026804912210291735460120780869523569381208150704807092893610638783451463976860132537019450978492978067939296339633710921637780030242952280244476219790119230141867152374072707701000018435418794413415591012001189649874630987988463864966477108165590186172613632898891792164527818401580081730833324496796438758058286632031950557507335524663186632985650881662615984204801884878820725282397777676475490079006116598470246158417905840327294725941867974227556569377743387967046520810249696816104949360094419072899232829719195702444254395842698779112695778323911407736468284004936922684375805721119695515631023958271237957510096590526549226618676359089459249739074317562358931263569928517108780412100002855562937120848981884551907757069868492691241706927398137528516805906093392317665892767362789402745786358888257916296472402648580430769884760047034905890419012913638578223648779304211122426974686426521476859413614942828025420893917814301230266079238709376082143399890840167536911642803563760955300187390618623622370530121750162440844760232063496864944588629451431613697718513287013785345357454404144711957170081247609656104258391241029607199482979333595881686562019637232016780641432222719654356245163332360880209369192095930051004417042020363846418600758310170694699217133494850827966395363460215513087596254318363795446778776454684212888669827876243060062648328682759669137228741182460425311344070951127078595092834961403841525323901271550609754242110563700091590481047496036159439986019570304348549268737943306425472175804827278852704913272500633737546068811856819711080622175666829745872986894634741869941663964771127495737796198867161522047454587523399229871227977033738918473870231793480196452904277996555322867677355796200840257998684872578559847567648591777340248570005552733954810650868381746798634535811653589457271581850806931771430624211355898993497318123241300903889417506815046280340490277061968380009498044950190229267499426260710251329470918624974067598181267200321035516468615148357361963876973966397865564794610782380649592672030879622558427296169499473416695898959783348573175746059343628817761105338392772765681604841579631038227628026985626717199038713032223532424905760482582739338516948344356493312375055993655628593996028109715042160628547928353051508191304596914930533238678345997573461913492982371010259908122284390679499267573784120463147337859680504814405206118320058098474428250006167193221258615390001963854036721819264491669769056224919672482071329436268637735987150557974332387419471299919974308428526013904144885613843459817812794629314837365598813352276242374554550063507096412768104656287526747058679009599193183018233935695722961138317192227264982963423845673867850848166131769650144759810025231296423227434335736520005733488821906097804524727570182221437847692451984306736850353046978869620401373241961326127459195602067538060450697963819856372222055413283838178080139346046438911201103509035058949767606927446445480616833076744888594521713765535244527548480161270715768879185082295204213753052909570529700827430708634643201675536560261676875729347878550221780169335617152923189692744519050706979887069338264357295161827172606354591929625049468984378406161288333939965393604336756977623687387404157855566696170568129009358681830490992911672402400427847002877596726599691944262541870562762699635080925647555031983381731456888177326856364073936428974991422945137658070819736319873867697806746700237553920120143828223389485264998491982531749084300100031211653581920028215746715504358114863138007255571621961500095910431245109075051297138974506543325930002831388151515134690736227087671904009956665338726769616316835337058151499125230572702172073952033988635745529857338143393713878318243038492867256002066693729316608088425388280584529978736365859639345571203622004610166126925370426677847795964399776080046875070731491894097644501470956592617279431654682962466461556826956442716673701477582841393672240321990658951163850502558915755009804014603252854613068078570216894907963595827036231046430802636257475111727625810437743172162223153030577100292138521008737481321322951029112334959075103236577420051678654091858612644828665028397449016556475027878440758365159083878047315929780201269775882551933077347761968643776062039353624743147483745361760560074635046371497009585631977681625337890436208398198065307608239865638032426777819944425336588559804582515453321345331212529348754089625932605379620634214536854988795496207952847215445945441975996248758439201143920902418384705459839357659676475079361756706259207621998008296589882509797394602215418213345089477539952228132727674632979945796425372077849674985971687396483515629208477942788408089346401770982002863243174121448965224098289924451507526774197651583984954002884427727808210929378341965402880758832226066555552138610169768680898800641412162938028479589617277851698761339363347320387598584147917176083835321976590399678139316754509387830767041679168111760137163411750525972813451812328651243264998646833941537147990849655164612622858785931203812197782207914662455728263213894188188749902170961536662621190834549769735375809014974773176784750217795512942811379768152932605469502224123374525800991735050196702216434344533581172523044888052685363149389630745023434616880117320574147969508474056052445886350629710453242381616713878925915412124149506313676647705079937048629017317396681988632347964459885868678821722720810504754090578541123725967829053999196852866356929449177105420342874543660408714071939673192873284018955218698333142185839991428505004443690766131605651998041815587348647369408604404714150076459798041494710387099272974640630364482608603904550428730022008148264046768145443582583102369285589278462260181414262447748069227704755958379746997510707653837444162952648107953752135172983027701617747766351349459802587727756058823658627396681929469397020940876234894170708496864181811928621228682229629114326882476899478060722207773718694506289637815547934882019695726577284240140469779102324653630471070413718361782468544089710689124067963361126423340812366013650313884344644683153120584862024829306013834678390525554651381339933074965654097201558097803677570158196417166325867330492798420825916979422202481950172868612478163337917248396756347242641963232154399854776205211284826464696884370846722136889556549791360753031198682811078540452732010634888368944381217341141634955844336383549730644864726470886409869450164232750801719473398300062909906728551198593205909094266487410959358634331703197023464361166398580435924857421204278167262282017301999916069086321901469788786333699598840410094446013893734380737267820807161312653180666986154387276423941015261503573465532623662122696930430164558777634434341774247913820428523412679229327660434276657847866004166947122499572573132610419624511547656575574612499815536173090837583383829793250253954589871301954034018852015072560729957950420864079594756848268537070178156276205015110405843955855324063019295888247200240065392391210652551233672471761750437708078581511581383319020861649091428422718530881709693312626376944906537363525597733248074356432152640925513888512755236374260404095230256921123265959947683290086729442542965400718323598191367859105154392234545278855451310521483429023955601990319053068843933788664103618333013174052951756965482185024981219647963783360056775661464388751741909062068292868729902521191550764370654624663610426122888167181478289784244552216052446843003312980309610991878714259789082422367775184275101568857873670528050724734958579045725080822450232126091712514685390649714298266886924631231707783168065087197670276038965394147596196505138166959817997156023366158298120967401906620629840217443433696441299254929412201722139857445696016147034757346182360496997318821419054144728806675603957449341535287139765264989277032890745654386985519321964365660018485018935804990699082541695656309163978167679042619489114285981093899532329728302591122286423802283826866096621835410258383716528711747994074573292239150255553820303107170715666615043874129873005428764976474535353665269012490820102280916684894631048780704668768817881523622203532780020991901691778644330216576268238037936127967021450258898314906268038277688698742674353131645051653977729398509380244067031841183393134476092116169705117813446863527999536937486288762494670083711580306376008773342079132069248406935122074201856051526649903078039641349684369400274595400070027435633222826416397649527431648939017180717483716325668661207378292366511651190612530206146854825606718718217904671020953731416829987062418053538046528980593266381221832024974034012206642045623591447676148662183747890929142718672764784993211844978669049715354850471461055454257012649073968283449410424189221142351301313080420982752369729366381886574047271445175980156882393024231070009725872344863702400079127160200616090202201828888062527029769836264411317917017345688107029490089702416794971903311939269139183809955686323121756699731326593151701907941551706299360234406435422764741864691794510240228797371051852619737287187977787329981513994265867619559982959627836762151702946101065210160536706554591190453504775810919352595384869187361595007327878863003317361616678914181114498179054030684192731181628272903211343952131321611516742935142624980957856856231721993588773082335376626494533235848571012584370938132491910867655713221982958014036944237586656369584085393738552871151200338642808634318758978424699233222108015823224807592190140906002611102623236460279557202383663805896049750129357026144742672021100706604829860175486047674646217729213221124364493177904235971894201768438410581546537239089008401365938089376331680547614174585267555754997571350029050010071762460070777684544722353183075104073782691157341574928693637007857785489498903025043107297995448589841071515869658225136389932260351094642697617146003214769932281841626757340685973143697111969536845733748721120998490838152115330015115302395405457234607401850270833973269658442281778099646624489439091792385821324394141784120178710982522735326609588565865456284050156442352809780037065617157715028194143338899257342033528981576147787178223124476122086712684158928790721831631317740633263429473052535800795640703767309760657059845092629020744330003439347679903721402233519179689742427060612223763635103754999232535531110085167010518883521782401747660615881772895496519385363810039446583985641155598676466301610657262535702198760954749170056520496221847757484607898071694355093110193854082642241487572834362704347114828192669211138240518830310771901969804676247567687613670218742582236688141393733677149691611373385226789278386712031106973223238292774803543570143714810118585823707628081597545672736179563556515012336119359366801735701476623706095165850435379448740573468404928254384227636728830569771499766519183472413581461022921234152793295161508878997772070594305797414371786781950239716187324901537980927791394836583161904932571336234235080492311090927241837729902831389478246903896625462916632982633249511580197236331347598966460809365064088197814892211120430536310644748710264442942003164275998818091071569497418137897692239888804554554038757878882735306524565491174734423903256532008980630362866639177923202309087866895019342983668381581825081387933455811484800011568587826399413987407279226921474574089222036853077701975584003980844119271477942684814419989100485659401930671246645650985437746322554247606751967606238637780219913199922894873854267898885719258060781491717876088009748367519873606023974720149894483732973331187638255363171756866862158761878660005383105382616183380706676942347415833883364076397188354645162727395920367652065669355695481604713906265338833763824124375435120727638143762048819731917543650983795937758369507712688902207936458605990352467646272439130350006445952995029221569157048934061516852020509427998163482627980419317313516958195723578268561199587761143421673804269443279194884013034048392206363176899299132633132014333717663128125385690271695879213151392253449161999978767511648480562201530979530991665783627293856482192216466942130259438291640423532127516367351105687158627293502204658761700603697804808642211712997670245964971853112026027209590321805587186589854056378589078777969683065741383874244695276195069858114138221581366405589109582620583302899534605071238440853587186971470952869957041609693992590089875588377197832508257571622523191561731443764309794308463541858756064447496095689647346815582967969097049674449540878679866138763930814792512938135680842449306474901527218419126332715134548420082042700686059583416059869866754630258719526060835332978913476781219130034128207296500617486273358387410089974342130167305070887567496663672755166884542677823079102881783988978383094373290407453727281527131160071390825902278501487398153599041002609229023377295522074039361073089587963605534381951756553020081251107119896313196447557845319530113136432644064121422384539441614965678862113863394145827596425336447817824334276411503782649384265949191528696589877673713861570059209872390874266347816999178762166447086243367312937368500410177974762981005656622018310836982977365100412446456837083253902668292211739699901968414323975858665008590296997040718538121000042902896938047974467048623621788890915191509227460697344120873607572719478715255533880394484549127576744508079870668796390269571481393074725802097264653038367331147303964558472818067273086274202392800505150970982571511036369743959650858000509732388686390581124349089021578583046702513019712482627998883241649902221865808231543901178871468436308671959401889220230412370740069279354689240574667765667624919559308693459218264341221582232724513235654020770610700246298516467632733135826535521692421108710570659915504144238225860941850562477017492845885830858181795928123281124109627662788863782950466098243259330139267588072254485148559682784127492770231411881407733561579967489284454475830252913841290767926972715024882696857730849737078784704882080653410936291374334838655570394916107434722979237200172723300244166824834815610588358737629037776754791718791650628155004902216081027629038354953921150674384763310795464860750995153114035214011087722471032041975339290045904794998579194227684255582091763116919603299084178852748753021390996186223587876686357816451906964009361037469644935122384346180298712298320725904032132729744525352170979227981798297318750639100828631495265693925610232448643182590369200479128699519077090713056855796111343251280686428511039887201701591362597544048039266851984986041700964290743622996031067248329210682418173390410078546110636485267706937347733594009103746939988920196542684252484422206296918586534613614845141015523884434562565258509908451836430109958327906000509497056189862434005780992951249095245976636079130091521907762827729690327878370764105889154960796387019514851192538091766001110260397838278304145268008822937513714872961950336818872038832406280463265104321735554193829710612524096834759138014391816403074592967872011340917483794506836656621927723142208520046781510759882926003965210365068760596425248829996839003644058103106120598494672405115810966294198506110619212442753817410025471044828324372489183424895733466098032604906439328249032645409988122331831629161116797583350532811765942090096884414495988581554473100595280898593286364708110701596334887172692168036093761540626186814006834276042469740050256755959614424813532779889589495528995166115604535951518229118921963162325927405196161519292205861489546580379376827993970149916625953112910651573284587735492885340520357778784037660729307803395391429151504719891250110154190371319302549671113656410555128486663483766451368777088983559573782012022594762099793497063139052769498102994838096907688991271042785906399499998153760555644797520628885409482729420251181849151270957692320498338193006854243651232338821675479420841117120583903238550923576023011966282200740960739882566431204726294469885871428752776041045586360001793469542242750860916910627062352955811114998269904371113627510256000618781764437222471727069332296947652434830910533001482156425310233204950918215613879045185933685617393475173059803410856536184405777179757256706706289838146364837279313373678572023818346271314396853094024087089226688995417572273516398819457129282727048451169825038189257280682730833138792251276870266051619814725116663157895931149122267406379916246050996810468171549839645979282302796298064477867010285936669127836606132175456334089075350725971838828628565089787590304915864375042754393721810334133713875650409191463671163126226358777432444903238614496484697779910356911145332996158446806094937918634271782770556634355631084455287367352843408067436494230859796602909457149006817374519433942393089678837420261380730491086411116551550357072774542863407733557604403655064118421608437578839108655215847272433487265819820042712382544924908501593577370334457848725539347733750410680339879243574360218201168007530444699902557199107945198568892354239829597574573956164954737889286150842714316784511309858164769209885027758120097364711167316136363193077334776238262053698570816205751359624671398784704469481500912614921597679794374975829123733269874932191065485691340187157475015524540155563035253407467367867533674058605556816214937366905304526939829661588311033417161734124697252779793792731331590730933586886793509627139617667244821517321780534192904184607441536825948570084096701308688994858422380200057465750596396801231552392505051325273647332003296311191114838024023205438781098974752299857152459214557698706964596635097856402130302740487940348155356421939260269248585572194920234748947087948496574326357863793285489644138650260845576368534211343081674865707530392189972550810713201816594634879807111241158357528773721076395230089928978536673594496860915966261191355119865184394657583589084623638565696979278370348379830749907698397878153859391338041555508845307142184769189928922668342987544371849020300679637951676198672546072928624931301588692741137312047832770635058590935155900484471713267614047280425422009734024828674111394639693547856544050427979444301670103060101037790435810396116541689526885847474116745814800243331310147746991290202884986206141006964373467313898699686437010181679561518815955896884905939620264077999554940062293084770639835918995169779711068560161246598571751274271667267270465709544615723018368017856108605654524630168964922809532120180891053416618701662983696316248510300917463531220893696615999549614297123846199415102821742156098523526336554644942870282625577809563298889192091595305527377018196931959565514966932984338337463055643730786958196414007520403240414013348226906701665834164745445165034539260268857231984004190011968104098659462005940873209699245167736022273787706131110226817011871383790408648252479978027800763671582301727919869992457332308006996030350413773311539072059877863089669032839950780487026821052793788496223213532646238634856077650386489713668435863492068224628013151634999808665522418134100511976999718874590479164406465384328498576055430011885860750908554359616422248709910897873475975666871628157511096038873655448195390995144828793364942523314708822358813377974201556965772183577519714409920673424694152480773842442579971915293176293014286419719229347870659260615374675033145123486099152313656899696471658104248326486628046261319087164068555983585086946030893569908549529093469406708162659368039951260219783117597699892880934812143099593403179872238338605326946010031307565977353245282634874109526344465468371622504425692652079757284982130191807134385593532358432069193332325678296457635501807116682858982705386895938582947669416879351545882482039073702272721497237597586689739764099607876302857930363476581051675950265378039111316552097435346311761244831796120114148245798794280734276101059808047925672933027823397790372586450612280404230753169689397443338452923032138723316036354468775534358251018740120571113889296764809701263095222214919788355259044914576140067844601317375716246154918290626981115835341656006332639901301206734184132916045306915699015606946661810337792015294623907378903040207555981137141304655896083770093165026380391538553005605295448465592822734486575551932184798880590170980612807782731804566008344519346322771826958310993597119688618900523029422596447721786803420262121592710814506870821537727608905935803625829472552823936556937493311099845870486838952428274687715467824888459176335213367963319153596783200225712874600920088167535607808795259683688190426609935941533696475290043400374145303148919204761279485132507742916696570519379743542959205213773395518427094714762630401828198128757688381829470068676648358203836079226300807310594950354343611317644572138633090225190852574861050479765229043460038666178981958204964085812369359337770685416932972952512147037719112832528215772908419837006434386302548915350577707378058385675585674751229397259308437026595608684342792505579800352882605340949179302479560858504325923729264777369851964163536900014140380366414023534426580408592344825577426520688381400462963767396989834321724987474323237157539462775168940603153184385946415299780931181825980178127133915747457794699209462189528443456352542179046763608880970334740598250041392927063973546687608534050722341067897283227916057883169043540402540195356107788253300914365794525760986031990720902335252868134333833098890588634080650073806861689052452109250947893883245650741075390457496244915478821643354491635829766884193067312328675104159967843746625059098367721923343468493407030100953899112641908554493691399987143185436203012900914195678784071474322704631683914209496577515283447732659916805931193757334084786092967577305447226043013861736964925231607076601483953774054166045461945737601692362868831793633516803666500541640142128468842121545821122251551653930495273587430619952517920919045774602584463741776376532600690386641584086800238274515442447247694864739411533023966107261590110314615468910767724764069420108557511892711367601035692798310943197258565847397010541714307502795264760447029283955341919132728943175630146356891391356428848072284565150147145756974755506971697086576115735132707847642333846995218136801130552984094572061314881744786321668850026208274646050393484978776520600624234450367079092335098025076190250384097368657984592658542500531426550271280508258443065824897072702151940315547465057592798347520305073106412592906958174881739715653643074404168711762834352907118189651938073039849266818527744983918296884366950075834470496231963287052602177686920767492327506390765126299201766980483332408877482351800577123516590578628704670215848632587821126144349571668534226852259570646875361475231260040409044537103649867430498218920520807064508547034349251977609771149723779674248918561210009139522897988867437418542841509709104017912097509509077351266562879973895095109656994934031637620323610047005196579804911060994477888343637545579055207805574099994640910378163259097849622088314514146647982327987823939872272583061996631325905816074559836837797933148450713275587842068592319175265815077503431389683456945151378275199660532028020478620989301678949356199236777850988881741821166710333297449462594955357320059225566212809258361319610042170730618304172856621808165637792723950886124955319261498781361953103903752968103238006994681396957428838094048160309704663322030438662227970161790530536617071774623954595797632164180820607845114071619218343312593784888950022436386813748378095974736913191809669649984289948977343160845905238762269993799860687097116384142207227360982886521466564716557919871691787616390093536175034224462169545383083581643472322333177197197068034636501663034922267579070476916507157887477357734981863516488732774124458470655724000428493232021199556184746031931128719575417973372332292240104199220612831043320306104090910053855477172437400426308150398797367793717886804208201021714006001943661980984600483098780718875179838257009174491299272637338735472990532433378143774512869425667040102025629766367785489954453915219415234213296288472781902732805848108029134580049507234766262991181356653092811321447516112804181998674866782722031815737520552104941397565242507207661207228515488815880457493297642693646746246517184870591836056915134323483825684444168022102731020135472659428912344456476196658176458419254082815472511576282131734229061303691370420658453495887025980078651313304941408661215500212989673450411376299275671219760456213659319685565926128882620928093667235708784571749883842886478669468800574261064064765545134507326106854161610102768867134262426989610197518102760129110845581548651703416686772352968449597974610859557774617710759584009647669044192048776135672970901494896882496828001452258246237624856552205676467363959894218104470745510349467307952518986853352006017728921646740045177482685351539988627980279553526821321127627748492267569153540893489539887404713590883517413557087140204202538049794045297311442279290983261567217851206528253734317170351750515843467387525144755173208699725640326778873151492653555945726908898100852975051170013938812553620954917262161973053024989216638317607431854005871200624265946309756192976171034314863518346305652071276030543333548328459526313176096921638865692378765811471772835998087462168997632857184523096899458913666113413163859700415869321054942072790524694055144299199318211481090492045765197823085744110340645110262894317713052833361498435820210901630087801067385059587208629716847403836062932822234841279320270637932962190779714007101373156828054684182946458603194830783554810725725223252106702337481567726425148895499708426862590749937495192880449458279360407192294496465317236830415714870876897631455137936895522361579727478462403487306628899765975154782216946027617822690436754462963646601126507138063507107081866994922058304598832143674962645085115900231712520065942089591951516326879974763933658778500928253757846636731625309083330013087213682190103766800840636600453838104150834396763557760918992858146623826239452330540722425098399916590344497518735529914608696302062570195767842902700934252309551122784960945585456730960796517953172945176639648825931314169585103447231252903845037226361247677533215614160488104840117269128887703432971074492805209254512394882581313292277973011222994081790709593933126526781845070676824237430864862313862441225307585378554366498861827478826297276892025307807284428708258542961654410214262216951327998953883744295188881783142653539115317140764413246640284542890015695511913479424526966744312569622882140110980715258691308772201289724194895483490373629458311635912497960158251912807197376827477677068475357759978835934746248914572998516850471045259225295693956236395662272483651001405424568947130734257265466745798415630536781121766686660193967524993412268401317730705106517550450126859975872675408916136805677779178361308724454071642159523253749929961221265888873957826695652466509017299772800466160770394534015779749550618358250067524522704518399625515767153113985418070754369170307117460185726902116839269883187792644710504415274066172208400272932121764586748783262337073139060675945485569435897304147985179077630810405251785412637673647447321512141109120107679498005003686983325259220376171699473697467991284148332846493326376558772539558041721241758003623784940492426024894385250362173971219353079197812986686969715015590089585292218189251790868896100088098099340824412132290416768060386520891074000417433421029078155400140131061342535263498670316647065998702308133715336985169695138801436930614794283650929970584682677655231981105877989990663635100788148842178351833260960545243302907319473021000218966758132142950510635011727259048297919903434578994065466433983321615080706176848760123014352126530658174087143958876400141799797400779838993298257133120328909602518967476627850407182099938447833129409052003376828692763701538543218922467038354673853811629652838701598537688453197421667272790987836052537481184039355004661453479506314561441466356711644283004520956462110151165807701817224709729037507421549055355783761615779469537324403541272298365465937730126987718708135058293442045653795766527819795471704368580687712980817320328752686813751422533644669196045316761882920193839207190204501370756990400380354897896014088847998607129382454195222747234802529085933207052916004313127567520063402399336270667134385892044100132528908338328118155177488947711099110319891380168157116194289683339777309673082788072669150028187689097958797309587276265593223055196943297765267538616344397034632603862111177044497991386018853369988150937167947158370031176454067067551337829614305475704309597554856876945689027193403405775934810671865403837430012169898226460602787571877173226610159523227840726403761129817615132688841497503204715253108385200422578944483554020204197141103643075493648474783980648646492874774644561830377126106438371561924194572442906074366065829972018006393058834492638720508238256255418747210707527912149991280499559596978329977992424057077614658559355544991489416019795714886073007242500197275908330390616239726653685704836443729235539387566675629452163615332906871520283030436184612861677515487030166724845822750900146630898787231650514991466272752866587955253589696940552394161332982782449342470052764897616979471834566011991156132115018270829013812664709943268592172456625656668089100146420605811207127026188745168331680411521763896488254169427716556234871700831048990922777388507299390857814586202917837086272414519633903779349094850838900868186934966289270485930298698560735425873117782130880740290417907051159558610648382783935705942765202929498894044934664185935507187446664706228440224752575978463858498620361262333118565150369870860312614273449971291409081120569300965260212529825616004609942887979997198857364624240651249728503322213429539295378315084659442737967305658528584702643685656659969598648953241055631338193827057943923088990889383886931363914741019340515748505262785118718568644819579601732957971833691115034660629199286585542209204147697462564768713517694229283167094564501256851736534709498370434719343876880174845974127654548056843638085871314738321800256238065450388337215121189502095032016525638592526879294491237789067867688740249005846261631164970867004527761028455245756071327324421657596661932063006086490494035809230396335032830096296072325159118942828493216981461032489615497469976603456239075292336035139131420953481348820353987729599660934290419250681320733031608846309674967062834198622588075344421292593006064265071669814696322381432322350175122164454685226556908936281139232580570476826951839395832008991953850198445171434235724676038396394628452086155215981341170010572087304358144972954297220465323020338421669480667504173973929236920896717758887235013500929768636791695657934362655429063166762842213998247376386647244252605296081123304489663794176497650804187796416436526265431866338798905696937129381397744219747336546918741613440677294624760094776628397312081878243969612455621166864560561867780263227309986136932566366014614140746288312529995355417576416609653210716937680096898520931312276321221828761917382724724927205076264340015703417920569802791920008598070213750067502010087038598807938825147720272409859781707345184685098222014734030872697852710554137249236081113201490697709235090473347930631426232824326602861190343420213709125832327209028888621260712295045306839843533477999936566352810961098056266067691860877095598638091091907533424738573642038392144460250983984439308059549134146883447474460866189215928845991500788889880396620640807984166769972832948161164190202200947199025650058961683788908166579223774910897929300467960575299382190211153748574313146967221101254992482831160381775317675460775653609561499457130332157463178906943924848795398622364190969752618872878641707950534957114808473183883532080865548574227738003021402092496034840010254847264888749258867627425248379688316847266232729396464962239016140110593486580711156738991205292517047341473088160388321746297154944467579724737559746548480452389591560894646942559129449175997504192285557958942401113593349850270322298737723886182762935609198669656569537172961685264389005683822625892276384100955201071171232791761447640276812883872872308680862670554791596760606281686070358773174363927687631840271267537904054609212585640988557774142890973291157920104308531921657100997672534296750077339584812748942624411837775119538120330661102424892235574035436388431429159083202169682685388692200000463592577896331431298613395002132844042354177455960533081362517257426569722179902711046380526440944335041031372031324085542002597827868024574123445536237535115514893656172842978283804579982320468935657260934412209438289090207281860336550471513107482230060818699768217060552926637759703369958719544068042610770553910557891748572689675890252827619188977615962571192812777146044816999943023095253994110521458752793935292761370293899546510837100601437260806717485425909383895401895606950532541005215009283017131550656420145244867935256721444440508415905087802753520135389528873586705027186463915162022274285567683753131257893502377730393635183432476694899370062946288603574938968537655349576214920658798339253939867036971927302974154191656943712520800031952154518914522575308342585229218690610246456901351835615980667800514287952576468011523405997350606790206998143620955118436265086264543427178674917353855834832399105396684918420151944057833829066600605246818520844892151439290604475800501693194377507235079891177407274403795635828395667485061688964778028182788899319569015787770697167242815061619671552581602121845074938484805681427539828631982936372021830790308888628753865804393989138288909390467964981502964353886322880690154174397956602585003727851630934371356456655003580065209863113934669177421749513908966669005340437925607644360338665781493199897017416516636912148710600618114595831504758292505968429965877713738692717784213336161601398902252688773524160132190934789691622554548893242951392241849752792753747863035007449828947222384133155413174704140558561551019774960798923522604201909187677682855417623836603099177422802713431988993903873039140881932995288949338354843354331478856565014592713911170917708377554336257339603424044827304220049443964435866179961101417732255718277795355217868029398320330899728579461636845494832104604782863219080455981448496511105397948609197649735054225239653704730189616873508163388106223670647885520965666931988913780838507477460347351589410722089674679715584372300879115967928464020255840965028560597825981398020019244859046925076433900026525926771305130411744579982490229233269702373652700837420024485432956104278340705379778920455806686927225905776517833822937542549369095412534432086135054863380749155671343410899144499169205966163388922010891757898139831809098372866343346445903066224532613559510259499281289992556301846459179313445401729526504272182561379948236204532299814449077355911452395800793219791677369242401519220426761414956011279853183565563506337894382451659490504289830648215483314311377353160414360100999785394733155103265826080570427531672318941365722970670840718890617767783328185849336751779244758596343450318542579040173181767163514853443516287419273963204182210269479874623037542699561325720516943314024893097590197320636776007323785341707376520995992857955312926227419431216718301290753255532811434024061100675213323257899833489129172063472791117787026186283086987443830922874826303938189333012112620103255118377001152666208374786996116329798585084570175916099396132909469193870686216348948224863970687610513074950088055415405769943506116402028854695247709157448806476890546509680227400671399399974359280085509090968652685269843143955150504227498294145882871654033536651924403097560184057194156634164999110023187263668092758663469160836376464936087857492594889188321669160605506848440276216024310656844538763418535268852244176405269452122689890559806041409524415597477577165076392640507884675934015239848905023430232406188797080366522983140449039451979427194135468890138909084450780866965596592986605648614182810779655795703031011136715002598653944452637712609691571539801755439477607596671309261882131590877100013218866611732819024720626107774594211554837469336470556276380305217386488068547668236781445488168134181730478317403310365402066392771343351873286704012807474132599693680709420622523935941969627950241365112811944750872268074826896325601864940838395124345321598866143257212544161159447555399717762311143786235346794261080898517852705144762620453687969540734110529995398795691417557127778302366904401527874106088945765856405043680576613004758090489472651258822462843062910593916945540754398111275723206951735241429621946570846894470010900213783852699483764883013313151898329312249404569681332746063173890669963421861907252539929324467456849691446895211033790577140657487485730702625796572782140111372496811088820861364618186824077583050451277313400648837080978478315929161907134026073228228588970323330756698347687284203475128950196255589659749269951481282919807963356721388566810137469708968057655361103142788232407146342213089147755193997743534034200624655505710639095748058529726197170482361974251499537623398836864749276374330147560897208681448488307730928239822415450452366722242208973402773376820897803996366298146961862997153536670977191673856244212274419398764618164035490838213432722025688282363124078237989022476757396255893976917265913890898075627171218732784340117348137146320592156664545540871975315700917919137254110668300717438781935047708304770096945721101088163542116292263958200260887479100198859289824022470570947035057313649868936116724335626427141659889920825362892120238696636009068177414517771544573180081333426307417964863925901706656020156947128725876919629591175868167045810721156682782881694870023977229605302253285839857779448255239486213056782744596354626090802621695176094474309747249350347847620160039501323892614092512017505967517707503209958801994922027849591037059710989250309585292241606912612324554243526266255419273383024288007307385258695789478477101706583079712829971868726640215377927336195856907294611394820702790821992259624660079510987583582519969742735016248054977450398576235500296441694653598358923867433081651403388871458394024148691023263191085141501972963861513982547530820873022024511483950144514755357756960533847628905435280286421232337898300596601126815001689234800079905335788318268230250561911213693971002599258664792773111871034933244487859190383290703107335618169098245654574511536712839508008901879675116409930622382259973036412157552891099216251928116496236863060331729521898522708675943698178022520943774134345008581672471973050137222951405516082915301599344425557312686693615453553904989097400602586182904133935175115862548561112365526739764731764459806339865706708067351411915678422071379089003112792690440971985464865006432644516340426563217303736097453086834232518505240691313207262689193123692643544190758380837669739432999222306313361061863107547714499315031990108016440119825793007111953540286201136424285434772805621355838098891449335316649270167849164133857072397451233512139794546255949468410533589595408620566815333316285503100093130196260789850584140862563353908989284530610159712586705245578503653227084418797824939515259019446416910844376293728798393261187997378519198286182745499156064451803194466067374418194822428031735933298484607356820966447893117786492260060914924985655867969977359078752809462424411366316921017896624675802385185703297885328392958989969912809201314064659685820858843506720661525665997948230717295421256656090419747827672420523782409891048772436256549298869706599318339406980700003337838237673375707311331078813508103480762411639786953282727973840788767862718055770356097947932410623183121025306208688374125921719844546518989788395650159531938562002046604198037958607004503560525422128972944982553277593399628122137695446935094042837783636788493476435381465045106567630827216149566843509219834488109838621023862017552722193479001487457320916209346100348744238147096047890748977171590626110588959205904142042172240777129121963549910532607401196457445998750803491030297615060023864341907184712770509956125552381187064394579462578217167457244645154946390271265689307539691282108241679004879778028591092101233493534349242526730761058636165402541926767148862929773461807689810558046958051288707462443358894375506063902505919122442679830354285483066167212428884424713374551958422293792877136478868683169726596806295448636705475291922590006103310159975535860758139922722481790491515680702712822448778372331541153169935831651913854621436116605783639295114044956962793455510261322856376293259721924181136330510365561504016723802844345072904578896013961000372779265875659747523983879890259028153320322098900611363110294524799331012010584675620110096978204236996287675183841536771809509564406166451740867297882452604712800587852324232824063400822714391298093237763476771859087085605968155245161673871133528296070513538086594746121744445671637020116247713382573067577061308598561821236776343622821860779951795555910868755131161544301565291600481879202935717019281423184118956552800899941459518848277110078237928613760134059782799717526579105655680898140960778555337584659177562207441912513443183747448453128343563338772035690928879477568626001167645065200823047667084505561793889420615033803517193523543099337184079867622967777704472076898217407250343406149550728651200428000172585291362809708696288825616458266699559491838690191640823646652530842027325054573884260582114219780892474828093998251185958837755262459098428069074714339731981161504405429012251348104584706876072423504800013862877560398764948028467598950249167717461547857253882227611756852053024133684486539221832469768453455082768404353449858079024206613839008242867125220981154267853464509440531442779496919601182281638653904938203600064491868122173666913043984114529436831390050627219933986819151759305219944501461177864089941610213492359892061326984154379782091687244634960646635546310580376550139356350918593466346069957211220218796728697695040406529906204785471622652743187610622597919313988302398220667401221310116920072174846514164061755282290718846843784503490874485074643695605559002979294496383476787503083262380506379115571373568614200335525361417698707977203415483427370932918533674010768097979150822286458910307023685656616384867838138675690289946745586978076916422756045097501280084335563934984266091710928538051206047035785899807038004261306898457246705730644919173663508674392052310818161456390968823826808996669473987414443776216846007658311861894312855718840195494735827396818013094354088575031969038628484565790440382378356154100235171126959262811349775572636071870480071724962874963214077516215771655893445526683974303796256119322736550900827820150011550012100254070097474221140196242583162687710274172100880545217011365366450546976859789431001357212659969597676779079652198501479851428187768791378874914286253480677675347351153933067809184204631861975540892913468121167536914910291034493706672506339088040944325089199671445799329708360337007826283164011027340289805715958537002987568621885687124956289974538637853162202381997118924712697237519660969403110553428844022227508308771478820593388886577444972513208675186484184968984998866135707169576160197546021286872052401239998702107388691794322967190680177461976770400068703864301566300876087632540087075500417200334334749590313625291127797720550780745077715148023790524883817707715106658167279834456503435295329531735190896044930774919039067894823330759173456348908011293657585695774516562767028419967263244992345695946906263563879063301043910464771670639679667725938578027613272753141455889434515620460067790415145890625941448619923766922231564680030185212475551125286107336260891239311750809483365670185245957571990230080804315603212705741170716157050310268839682463461526302522102841875554978263492304307639561903713906820296983585060356469808125540804454102544124506164687149559230036754394018414605411733327075351038289440624842170200434159941440141616597669235753430095064267537376105311942907928665194447254988961349460937949773664458256179349630841485270299993962365325669789261057199672473721933043629246015850931405754177180723074292105051791530835497454510306563025315533965796094415784428140685994535991401531422023856027290239625631004551697962554210493021319819544455926435449930643383866543937406662337527562374300564792236434614395683877377849425299265244759834301740187148886529182202210494060868403696348200223336663563256298334229724285927801846153047920720212512967918360651211930938388998747489024280080358537448072508428650862394589211745069567193725748138708064216436472761090479257123317371332267023216209807903674642286543898087860567959698970586787691817075923265094402310687665936266286014038584650868250375356569554736592893634565873032843429731191318390123930449799864708743917805853086363787274745781590797552045922065473195193586802057389340348642432495577396103966827272021154487680932676230945323968349525468442553372799909788218766574163945371832381483139025394785592447649740620867097231212760596729014709424981894807649455051638505129599643200274095478658968525571886348461457960897291373998708010016943629492574263462512585212030511770959287481444201396338124810698342408068911408937871756862995311433318371691722525727316203965706122931283266698979905919560967313033762763841351383329450526242432105557443284347221155707660260354216685504767800988628030941931247449992236242392358281565417437519617433552283865052983527302769472770650802645647972307824628657894191662727768414257306551872773389141845575993103840816916850698390684090386856340489809041140314141784100556840475120109379832432431512244447561686943504174949878688873083945616702173928021997616941622293994111374940369561769812541615831376040582408454241071664270405620506007118754220399484077800030706055440897043285694062078510738970491553342024454535991308876989782427656530000787100963132646453942640152134743719135731985284353508934618574530398823806175160280670104168792901612029032017594985025840687338024448421151069044237233824874555213506945525975854519007261717344386262341451276260098342604738576357200366336031344737880484412032360522335477548572061651385665243619013219350492604358218434443119703286203941360773176640043496523487941911345535416894318018126044528698131568200243044735553152723730851330696860031714088151990494441013361550268600833856667290802989558647856589376459913500063121252146661275181497702579376849703059995902360282707591562709673417257463473199319215486973012741545564267926174173404329291594305829095073589503718140393636249623162804951711473352559739694089646905892285314813631226484545084921737766165164985490368817591502864575765104324123730019603317162658760893107283525934140194384935837994507190496666782004805303616361856189118864796186291797259828454945360692658422947425785149021700647186611995801462263154905021859193743172298076251454215706504268865867105729457451201884569400701711235431279430512234652276880431690544161562296000219299763653344072599968907240102644811127395997558963504357640363321158279778654127772396513618328357034390543184635095019225611297770962240515086048577713144741037127919860377682936058499779728954185239820104144060640913506443837732843935891934373863276047671938716315070064122727720785554230365499852428193588694036976269055119611305409618609904372759502769077102516887890243904046706276355633804631097040257177124170546247097795644090841143084859998213594245310813936625910635610236644881932970959014540234857684764859810145102620895030979067856701254587698136981912223588280169264938696050532065468505508582851635434411948807196574725646473192416640788950489655467132507333708709747379042675272500061401112349141367588371360104187514794827091545446824331486112900251101211432303151474372917046308857490536859871142967733276580741095740657888121880109119308568266366970483141672731448551606510252891269593285981515123372450809961560811237152962894270329449560592616710144383890605083500787654263120995570505213966624653667738834752179240585030525306300845591237199119423870541742924459366823565022182890671148946499150675997257768301783054219348841121434705753955444652677106596781686031025594409612331330942977205549471321138454591917460717311427668841799929895968686800943690227483859966530826615093969240058325017717016336300871513455793016094609658242588884566534046962903228309326277249313785844460395724518859936051846481608732636691403678301454100595490367003399338078796287428378040607296363870114680093247011955049835629318643179166040250212284462785059678835372061931322095083798706788469004454480076339583272909874613323950583167066171070271683023134312805905901932265554544628322850549135492240847982222924772392683987783577834775176993689307662335149959557945470453880939318734746845642632607195061454321274351679413057713294514088396935726799950083156531695452897039994129511474007305732202340883163576272334377619491333898778934946357628099891464245922782706595085208858198844172249524448287995551536496220578678621707565595897095080544240040033828011330142334683467337388647134903748256746387252835580522953501725058658727682264330109886542373175534388707648870055343721421036220710018751360715602191024685433725815020740319224737655503229532186712574634566214721766129722088249339801523129837044178263166833205206086245712078418337330322927717600508738924069296962812103166665230331343622590053655586833859951779821331358591078183594621803490825270997942480621486141612585685120679079288896893512915474095289116295852568668459391551372769183943216136997756883389284340704028260249407391970505623529150733678439377847167415146184363993512602566062001837816677702793203211178515206888738064291221602917927279519419349532178947595315513443307552394301255468312685419900947949827515072668254293818154866678914322190098080711774664747444270840471021174696280889961921394572818122322836433426131340367368592769664081624776906634851500887339106053475804853433966786789592496949019188875443869870702243294284192515988153006955958960974260705172733944946185399334608766859621050362386392841721116875727112320774461031138495723354559695490027101723418997668160246497606742088425583060865556582795954824444463651013973879089075023298612667386567190451009899939850712714784290875412809649660600514529981209840331657759077382384903614291728375021212407593806951398821206895698233356754443644685494393070113905953928687395212045798159485306936316032192026342195989315502071663640547534345771934185122538204125586781720231410810961407092845403634672600711449681661100434578040144746508126759298574042056004971707265778028682260903662759142221794919681094343305138997382281963027056683780829420197293817266256756825285608020586496050985396453967607739891082151732425421546995523881023333251806058158790571397371324987871775254379054700863094521024469653387545669928853539005347485181767036120774307890179041804572279255097573773341195767659844186244729892123307541052475779926108401889100100365281322636886866416256452278849146123087606535964700522260535041398012294184048107741655097131313805332991166408471786031508373763935016755321780612131131409451748901270606712432801639427747685283385971999755339254813624808886366865532774275186312861840444138787845434349348314283414579852629348565594293026184666689422703001439616979694930833847967923899497228003800161190279934699222504659741374166334886141326612466024286007675424602829588416201473957799913621432154491680621357209413396845176925296095162763488665850329949401511978200679882809416986630061572466785139325501559304358618538794690034949803348175658789835322249757227263318375180914337095322155684485832669556375148663926196786696409542399925169252361952969436608700179374803957391611364733649911639452836837780451049557692613864772919617288967132463937922555391148056613591664086510988877781884839150310537657219290553959069796923273321341251963658914278801138454844537261492341515856787097252343416933260279727976897388924728890976146313572160521220985759186526995356339564875471925385606993404577393072770151466403720033258751664735174459240451804638704205545599793501636527628883290673163152140699533423645659451594730009708790623363143387299790998670254185235403374366892551190846801812652000270282990188537198726964918457481334585987801054374094363100071164424858489869756583187230635847855953069182411385500588234612338754878804554183143716579377414751629419103108061215369696003765560642617160146157867289320522826675380983513372664337986978649420495661752231729220341126658800397582485463463938434548712607319671646774790783767458365114902816115659978786560638148942073269289622575629305305865720147248232197206619813333223368846569239198135651640638812307687269479030275511834639260523523387938801716168826339666087857404451091978351099587883894717025569369632216334415020436588889768601639318820107520786670262718991005789081365654981627994989426727947010915378759451338460966866502081168717075317926591276956045433257670046091617870541067484101434266696633506900470057328489947908320543402030454329285629073996943292654875524511321084984322260406437738379222805629439233736565328521468068658786807575407155330914797217417787715219251590481489231129197043688683596153430488551719726488663731967282400256436696170331594020794103635163484133653902366507488949239100839585851013412446019718449716378294742781778063324121739859061930472841175302751323631212842703929993939574771887682975696040309395940580244749533909708826692345604761691391799564539105220111803740667488095188598121548734808308132062558544921119457580649935077831708352366083757996351015213405672368154412877865571042241197288880831880868792717558286970663974944868544422336533854474370666834054647772790263682730758592366579507258495748794654646082726498383964010394164318207292179596731442812213452187672487506319960230800675463998600554581826527011477185087452734219481903186316151150999733062754887345116580309820276803472097450213484673100477858048476731600498255308411763841152062229121062282116081875409926765585376839400516753571593797731621727716755941523387227375619491184423887687821125114572278495160136482200362725077449210140536042790458699002925905027527397158850472260619701729511759282061600866334694772298836104978991411071361268518060238000217430265461558166881443529254978706680493124147246811921840416958149445160627711564107479836067050491744093526890011723672206111974229678854671096248811444999472055746642669409283455724594940900602597314403044749457086353036768760857904568731453653108628898381287910759130720909507912442512674281129962491576991401284809512250018637920639091001439625596208944458649263945588059666728606264066353131172979001781432661704462760816849564895915102259271481347640672254932199024626621896021517205703394957265164850760274912116826093029365229814594917394528408181288649707178783319850394298838145554708463145893351681691498891535788598675679975648985239923536249329159330715880623179855129018285427645257610809895968979523955035552797263432902698537127756858418440491834037910890469070469299683469041130280984989437041449050579170108612803934292320102439887429002948201635432784813938607633191259716960688717597867770704064924896671308291103890031309313183345224937851935303408355707482758481887930880943323149337456024463804606347849622914118342423064648823066932520014435940540093555457620305761398046163293998387036002978645207024203401965502066591937265878944272398737099941025240817651348610357823656705745961718594859307549250814341959613332378391085740583415744067683936637935099150626704207912038502770304109381121409110100429110652695974799859679339230415770462311283725490826146384871393327594109519580649669035757893679097556740897538939833535445550497391268420705987147771417899225828622262646934335379200040694087588014823845866937687496511801539479884167469983994591521568374081013271135775499984691137451790215719572995371208911482960746372448921500607040434687943414265440922001854585318567888805802275086439878256497340749893575139466376754726568132299692699252894356526677941680882691707783111636520222287744087740315606011894317295715090611773355921371750750479189767696059365848788695164966643511779530345817850512132476343989891811858919150174202865334150290969160265425162313538449927718028423365092646268830373778599696353827221512520318863257681915863286148952063751189852388973798614257184348489948291036423609273817115221450090574249207916214588309302050802118593328156469822141948577281321630237129567962306979163529379353158829216450531989922879118961751729205716715270965497024362499298088044551008539626379473790281180794199458664477136951591990136560653674953266591361557760613175970635112642388695124757942507424382413682056637442535668873497205961208650100815141437927394633106748568086441829334622666730333132690599552414420706845037563576126366496521702982183814118178658927663082516148366374611784460288893943192258246776040816249080449521846257621529149412715167691494947896512969480602209782937403052264293465433026617287181575937721036843787676148695448310025554515176350638703520894526650676447417275672324071338895831948362196159757985388825796743598398736731038233458910297249214646253419573802019358147782047301225215151040948709318953335139571374728912466291420553202441459024292901521631928293399725917914115099895816734370902012210070395755829873794211625466593302889463834637186916992832932110764878280200276561414693639692550023935833146809425642516223779694886422454862370917755212103076432586777768969599440487263563576774371572662868521746799913888028803399147412497977097877542578844249407899926006674869557736838387699005829825293825731422620568767204735643775718392307060941637824747326639609869084768730736586542519811521222479194082208454355918779359709180347249866852396221967992331271790431087282242703249427874527711137603834634820740707672383681478314990904935854262767501749991472572448800256701595840862062835334800000344150446547876337299708886469263609693245466857592824820689711280318043703887674068370661366230980205028231126698213937665337700541715434893664178917083547410769627213357694593291544279430132291294177111718387340276921115291572603372195476101266861605965366359363635931479036969353795397799584914139141822417791555175563873679357275426328257779541233052527358680015163336144694851321753312743240363927270515567262226771275220345129978413731051866362893609907134863778579923055202303836348126124904321330526086752900258361257319697167255577570087538732583511075863523512003415127796081396345556718794622121215051804520097832523420476606957391559020576355790741275842082014526206816172822942663349689949094577475009440460432935260525130179510467443478809201814593162875393502655053605912262052231976653254964658613690153248172785665073147079327266090963367460340656798328083456634466356593878238642880331048978138292821407068637679544390995097275067533131284521376141538785884356483113995086102416304398282494125481020324226217942990095714211993033902341555321679590579039309277127803575990934520514279987271092168672004975642147381447802475023130707872994400450791986644214637215582806610827881825736495828665166059434469616091365663107759595975772494524716344384792129289117391444055220574578607750886463212792983501326480734894079726854973986132103461749897539771479761610948734980417283569018250910571629237798849872063645175795795208361910202989385572828813847885653710865964838790169601538824775275157916208403983990414215070312620206405259447184299771982814112869555280661314087137367479916589492882349383788425249081789226246975345628207047075917494240121330893981109519358070975384406314015852792456672625102784417907302461341413920345201526566842882094754876899519412489875134994361433763011518225148975755255605358999869285620501222517782141885281758440879172272624991305309784780852598570840437916563403577019130125173475218688445076560202798761297899717528094327814668128040651403226264886831646003036056344502305555331710361426680514923897739625145268685762349422790251546345901543009924316064377183638547620410909423513772431351596321002278863336928703896852658098461696782712706862469570142598430554099526183492286054507693445735982265701020633841628783847727958111420552451883964483356105526667904343489320357744689136626693737602570027057395994812997511806224114592947600945033997945032387923019009876999408201040381883610903624534381919696527718015582281012820031947425830157513383305442337995325162972083721668207326347613971872935127160608280422337074934681537811217190290957636150207654734997668045529095461066223716850640288356938006241510746896904285492925046092290490070068627387343043334217785925385106622003600263154798280205537339444559736774277434871630996071102655440419140904239868055552445530332578333824713200082270388701444792071055976090551243629720278582693854319043476371072920986175994551698352206276716544832025952046918880632234187236811325026136403287711971767205030429383352736599908581425706096974526871538314664999311885326231979782800019802663244507462508740346360536119386105821972182807924275766762433834301465903568483763414656333372858303471657410831758689059600866541950092648372408711335647733382912873049477047651624394170396871608309010564854379481975822710411848377507314190539525783206461366306402268105014511026061477470467464639237655316625440010290134736909540955661507892929573543134102654664053077701744810846288847021457329154725340665014326294339147937991040475124483336990212248739133104546898037228783478303394137452998617244187183933649353857953107312346736318413181558566374523511970664278950270266338279964580109767308858201481694584285264180352379215918199847920748584288619081730170909784378544784040166972124405561084595830800008732034658139599900825993388032601744153610348471257967040553883461372054129309142150646204138584104685393223830561416447106896124682138836266401574155704779648449781531890539797788681474292278089386604482042849811286335330772724020354395020497284862915290803131341619632361556321839647759959263104509684927489774372300735740301272589899033748429957912200052976369324083194670103228591655096036269774282454377270169023283579840101036712652511670448896375091377128960302923608535500232754696822247138025290998203087898038827858268747521172891786075810659576638724049346025255502867148866588671530249285816686252954367514238159923701201176744892464331180188654039264401234183622372914055126212551893144039224545982449042111479897979813867524187925076712724246753215151318698173636375050175063806365835813119692235193415720570878685329044297172935886375286047766310064833716569965254343446489455590414680228407834081665996215188402192974406998707658843805139661592690934343304426244796605688220955379324321255064443547070201113683773224818239208966076767995634782381249672892593754528314999776262948902606553778732017657190608767246668819685452401433613926470433081483967969747545679619591603663326527382096448599249242813739441902070339447514722760356953660567914690707175645985296446426598492778890143989276221262257098857579867045416686302464249649907914514468902313162880163717005391198753520373950318274037930814113583176458444977487409528255508507840185973397579858590835578274772888534946924568627243144375781780182371017889476759608223675607126298651735353622208420972803338109264412555459915252967317963504716234709872164311904053414829540347758481718799098818339565007077685146239953498849736071682568609633502024243726029726521786915698762713125332365876090452192604074170864723025233686601948786388943749906176681475404830297449316540346853578751123987498342332938353934430778446163391172047859333038907953498908469695359379668983399691655654433184138393518148221154858472388049807047164904043910320004977781572735333246998061627344031793017606305742665904427610381069875058421151154344218450969733916090374470586399391311768116170397059196442118854745780033503041584742484277218507786390821092586343626849411129668822489668663357804332562779394220338708039500540721076716716426357628133788006749667714899961081478099520613410747568226421663535939327488208037244218761468677999172331801304186658076699138748592136739106329830179403733094191050081330221043276207460535165310391945537066659940846242693701338495574879821743337093085982121231987116808495928276426725525933317240381188859524310954235329845719908891214685290808829655739128833459197054192480361857004374146708048049793343105927068220545854461362592205235073490935345135860559376334178175539495001829762237310313072497878362453207712364229494492170128140999572023765715332470701578018965223140408781596087506820292653963263918173848622038709246425829125478967661277148370554171903362168270534555174107302055979782369395939242879523095226064880066987735169815545256060961488274134556730481828207508211181841392274609469742131105234481386390327367380085209031070384628870053257474978314705115278538356763242023657703275495725378520364976649649741979902251859009828476676491955346244099832641922480350441544280380738658884290559752489014143191758026440574000954991004135908002729840653365333586494977220794728923954315954946841833194875405646300939845203710956278769713942159017364641475454430438664822256652954992324888520998758557245843109131943559436332830105656780163664468722285767583124135847340274796891422770886783780170332480692661190195216190731572323762237624013506838770086871645481732746841701474488220047262029545582231645388978240591750383229852897991165410913162148861868919389314017660247603164196664880150242653524519227989399667882497294604005457058744589168837860439993036115889290892847904563199542471299061993484630135558992220522562456339155130230540360746208131113797908931957871904022659401032608958676767232612358532458856907197322757249418643266380423209078369013510062336984246879787589307666381923624230599948143825724268575153612060141963103331698263912791254871663957362267435520258868745360583226702441843779172878782518707472764506358930018880633544747866257868251508151630985648886748467935090990326750269852564810356494449339204005988347445874622030248652403497887622943928545543901143316272101381062910828944484422176933633634546181819506946477689833263947706742291146390524701999396058413897127414439971959726447582570619239214531891181224130246985565366584633095281672188739974524865106124002381375277463193042855249026670015275823480886529378188048388353039690855259724837589677416376208911071822798372161620973045235285617731920979276614032326945448991091044888897271957839355052504352667239348479390462989568228642642983846318977859580215773564375295540283191521008735931700399882620844961035813115896689202564869674036014156766383608873797782780149032291096073677665772781327373082226750119818059729081055121281075789791767524452337860539449858320786567680984966952969082480085160311596449934188377836423468586200847550884701365726973610952555284830673358110424066046130705467988358552209360098201834138768249383371597240601149151285334090498774641544195753391296033746648459446529073122651488728626572455091683565020430290367253633875227429032497490293023318522642032668712100237408167619517232055065233083272229418970049522427319525662865075853757064865594749939151842314521392968951976128531466053961465870747734761438849975919126188603466302394137267356353441498943165485957139392238703764596873525853406578145584998621911242010043131992369970800817640594530241391582720370203195644921924796983450890833210354568842171805323404560264194470138706306709775514509311580620684134594452622195063359950460986267456212050134576766424336833175268477770115613584022191639986197169307763108210006929356948787280426203865018604313138866316163217074120505502374553971910662919885607133670822284197021296938212410916630111604975020953421391681268539258304215838629646292846000592645368460207179866382057296782523769260761804488537441772433550720657356928359479204288423235290351500154998887364026578651699437288167858950575696393413883889329022948650583337922545084157899905723407250426928996094862157306048526342066814414557749344824790039906968388942750441957201365395416077048062235787159757563845125004812430194549333410365096222844077966574092286639044804539235421823613485141547699070331822630614523099710450181561536938593325905591560318864214025812002766414157613915366310030996188251045895384608720906097667461681598381854316425550550944255765207473307689717452908438985749832008570582666994443390436545538008118832046649998585601231718669650728310267469786172477345905242894051834404038946717181501172921107937831579929358536492716016718421695187970035063016803012501089855332905504711043363016926984865751253221024657240176111117875112327438065926939639450454267854575850694650129497535496841051682527006160569816514067526314084677458228480882285329686756110064485337071368850594414099968139951705350706607616926928817693264904790434315938440141570056713260994092014274953011199830415089721297866609442151509815316581357936495931427381859373747781166450945558580596017624491702740996846252432618709865253702719748681527245119460476888162501903486614174416813904132782351115826216277366788080091504090833047435489675207044104550861693590775239487947032077291626154470112290843117076848116410510388148811907371142025667713389227799209171743976110136676127468359034406510622294430156510187243374804731801953385042775606381574437132118203447298923759557500299789370440356846692520126699647672529291110653900989982219954786883435766495106841254032384900325141296257498967297801164008746808025138260416676111905450522293389816667456955293274785453530859887413916957818611081134747669975594917060797746531212079959958310872077606603867076495459501178341143454459142935444034265180152120438361575637600737689089847905503430357035534252455688651962779937004107007463621656136900617889250943449600618888781735668489268199935918635646952825049079835589809704915035620935994485526162671857368709324066106975249586041283335878108212085053322965922477610194229468590885492733944967234535602694655809158089663455279171669229594393159225034426923120338219237996263436634339065392092449314758927595124796387266886837135877591301833108095149658673801340214130734676249334425953046362212784963322357730560854730702493651949793606577032009485615374713201379717412760729416914182149462382120288797543935723707670655334166491320562999658312628064852271536668631511767658856022281383285934044679210986895310080162197529300354788845316231902339716157413104734954702196261746182155436448547805692133734303753599662729032222125076794944854143707200698831745453630823313372909717322916226980365947349484886425990059377745765432717627327780800236277085368509391836773484267715346069742806911449677560603824497750194812757762439641627847920555237012292797606138200906587039589232209642022953930452652136295232487504598931932782308010798719682302775425955773000532569332243121577009693263977228860700413262042825049899699958619103724615005711838500860849587352148043437447787965333715739667238547305849165755258167141418067631534466047469362259863438653204444498685612405489129287481143366049838362829643778375256930312323916332147407642304462935261310948094814384641957463250443927750507292968646353017839429451656707271702933449630661771129067491594735599957214510221225076580925629136234786217726967351092297633240364979189254481314027660525380378606816156398091523495807082316305187880120157734336954429641630619735714931049034241323699351410748323960396481134751107753634330214180939145110032803485062315849397981682269929938677051149993844713616933565581107824964888755620434489061980024845072250505466540674201413510102555670177728825065601397741042281160262207266162109811425600854837150187837461492137288303040394101274039283863840507223974411452954964022360058328080077960485693763529000788322945877124640242836307729154160583513333388938093058475814991785102229033806267617822242578860573163000476478857116398127013094187238960454373336280681129310717552742614388045992037863107644635793929367064558556338451057281593625081728308952900058458787061851062285692403813862130509405482849070756337748887587485103133579169601975180470625230421220861306572790963157674550817625340493660167509759972501888928245999443519557369983619841846821507751759970973090460119086529132641525619965288453454302741623105106714434074985611805788678139191062178963196647335488090051539137832050364474358621991381480325678021709766933103125329057317741150839579888373627494624864113923549635178523313849815042699062574998001927674683314851772812523238258978743902309037307884260933482911278985986152563384942749263130260585621585957378834746506054917477600091855554242338455695808211217995871436648741316077571449963637743052469775333947399874409251804174067208925168894230942093294841481443945829245276736560853482050403682947175294998910803522084858700002281284800116798423671859109036533304090935152362996590873255571381604501478196375246517463968480320878186141155756414481149028774597613030137217862332370996203312822810691806378479338187228528768845888760382732874226454818172102357005974633094262620114537501998228661690754407290645348814903129337250273127168010446491035832389697565030699448400116704717400183560699155237659367140740820317918556660625603487171919084200357265415124813797091481341942234706082823491821335879526600927568078291694054139628946632061011108947871633293663264147659589052857061362850791289222671860370234937062277394022810564778865185283608680377188776961812088893361212898740568237779914055950339187450395718887674121647545193182615912292567728584656443235311775576654138463782924799879176348351787202522348489177189612951909578697499052856818234162247259826146693915057902225878499340148980796565445893801675176317398607390769478064402745788127412322488996972842486016185828378095108451693931506076589022478960459202438110725545821712717816645547900984779018221060428364229898064013427597269403978375484337135227096814261591988236717988095148297354414638560999954988793225545725562848981097739073078788974243023223034556648625696395455052832195391294815542732150947412715702507863084470479177040016931965115709982722814733535517818160466465676169760173070207409203759397131407662210094222573613890550516637946620236600838998994874860625580117305863803264557057577430674569708310250492264632416513659498846810147975536858508810223238110359580483104756017857207461100831563176583861897311851844045385922803032857580615998115650225883909170446662329175419225056565860077712619510339237167659290383976805146072979958383748761429018374444932732098009805075347066197401888288248361876822250345075301234460456666611175763614959544819149250648318991219553759299928098429554201011599904040533668536267632405392963280971119323791919201018152431095163562998518294373921631704082973812842779410869079312168384216983856086313633146599705911364663642761477057087792605361017532120424803790698549319112248981848370275378209140142031770528913796465933947862868907583302108077679776745662197496321610909312347480573543271412388917166804860194757088428995251036978354329602707949019874649655692581461211553476398930355166176896473471838738087885187727084569935354866771921355758301532359634767692812209697933554210423661377511461979889576589996298692296299537711787777053862076485255190199991100561815731693079659471161221263457681096166327102828684571112288356660505299843773967551223212374664077908340071383830715189768173184326760056916817817558738750691146203010261511094624865957376980320934779226004442366650121593158897772369559136442830273162738774861739635977325873778128932404053655421332658362194495061774268306606565453910405399618595932412281921472736629586089628984651166624998745552575603109589981225913155000753755717761273954044149939529644107434632192899738894680300367018470713378885144485369620672412767975618741869357729182553391773972236244683287903893482894379396784444490472637288693811805411934837396693798678659122952220212058994863217498213005877575159693310991691585727771157388296340259897987833912012339344467087877793528624851082139503683784424974253821486474710146363886633532060354728884226166793913309128679370304077094685479381477885304860832830927141053780841653953868159068352473546783636472673556947276678233086669425012689516990700048146925124458269957756246119646542458139659776649701291987504853105447940164806075864542796608414198768819341078956229080317693616978307882536873707991598446819588834773254267125296692632816571908842015465623192997231976800158716706761489014934156297605000339693417199079565395311357178136739214204015842872746985933127615343975403323616246591443268565721994641255043968596317593937669232000925424360086002810630190250310522815293647595590512051063238874500447457640655226957257857243722782226094922841175221276876912293672297617003919498653984871920064022008890372318913805771726971059068214000566758177283022381177387454839630181324190483328756670374818478772295220637923737754696374611662114536058122783323351459336729363655076129219484285561330505936119836893360288855891003610173864128796439171103526647846700932628665224280844823989648201700241242204093686945535498089891374193618114655607909475439483732885807885721109069806900785851146461193954533228742219071649090278038400305143697566388789668337441142933615334582605041118654047786083218458031209573932269616373541336074152555155844199441942511097141912150002060585082483444210852452357685332470762204840944895254932994880860670099928332753180550863981759246465446928621020000538234759698345324387860366033988445073218890053577158411814121603185782171812033945076509596516459402362744395573057840206648489883722257161032680359927162047802278344451882446332785000285822563502036199652777525012589359940948737407769207178844323098149749277502484938856336755455652619177607058224842895852718663426925958939212416168734709733337814663316536141893990605207571290942785564510322063732145723716740338144110483754222790945163795731547979933758451753631305183939386692664098948151192785910987305852692859116642977292113699480179202276061034736331860934681754325662551229699483399949782195796261830284386636991317689843256720510761724978094417243850782873849314431975399250863506201220191627350508613342037668304712980871927005099592461941375715020879078707592639173184632178220719107347991301515106762795534882027964662626789880932083912634054520046713731005383243489406603992202691691351708318326159259648169387478161416258163581939895473620201123786482846266346383837839777541813450893546600546731810916916407434344957688542202746626322347440782172377121794125430469851435436217994534301523988615609179116934079258518296945748185809451985250227051894485003254242577998428330100546483036567368800196164407202037600058610379001712282998929801025419459473009869566522581841149692880893577246144918222283100450122618195756530078987090607827510045002658634748044064760683048233976653416718611941992350904639174199243327529586149131599657877748090024504896686208211920747145541992406529129020499184161099125093321002265654339206059504312659270335736484155492896488330270864856199004702354919773649692705986997477374785175980236429700246486027735353642008976554488359990024659904595583158123862204554663327264905959790726663572038307871558880349432191603028827487487990697374922062494055404076208972842021947782276513616165517037834605499019750858797846084555352942555940833257964629391954477538811267763279810012601996184215646452253884569059493994222621395942252038820053851432019962222029962883340153711535747459729068023670151668608068450483125123697847314318471013015291391309664486257654894149132230807120935887231963239764239113356613553329646472732786734298536480705024036832847472910711996439065677698051024333844086548258977734088948895163600532421684925429295654491426306224173340219081426945000858394933240145137852919606440199533661301114200881259202738802565999091713890079570540329832738476976292970975412256360377186370600410156047281009841842540297988668500151046429072283130650698829876944564296056987756655752143385097956532193061624292197487300785409659383563323275434387455237427886149986309866089799356723196164619450174727438686011212845933496497152901493353268122543801440620057104452682117450392300325292759628705117276319616743672163575303222252979004646708938718322415196322712047863800949333413562436938462377527422476332287245315307881066621100427923438043618521065335396081814347613099494367068634897134727525570857648010643567450596253646843424120290369045181625061861806300741125578927012603760264216489737328670015991065377420079896806107169275114267558876458768082985994060507734530559556105192905092464580609031713569123637428890514650054058636425136497788185605542963796448250387116736197517151953081047744886466072662105556347248855986526143614950017295391922701441217041312589061740973198011667463346474853460963039107695825101019652520896813111426315412206546170386293032554568530987142781600524176173488716001085311521773055765440338257642754850873284981019877609171246157432025374502637407160277308224218129271702254631370606116694599087366813111137816339972720890875909137495300094170721091399203842080675767972571838998722482372192419394044848452995791105839358087799131485719834809840061752998617284631648883438025594814370415362656140923041588083988651667795440658152094528910982023013939524147102984178717389670178165810283411480718890563294638628765148424774965997473893951105082412447730492621449875651191644417920027059644443106812595489868826094400274793086756845009418097074063301349556459913920465404475467699985941192931303190455820681013207268760989039299918874653876843910629685820649321046979754056026181712442691514722601297942012053506882589758158809914157931808413163460358109734348847020990542764342326109245096307359699296479876713778061932067069313343151762806960405482310433019179057532761491210320180851370092718809042242098717195418740496420384315444441708411842076141582769351498888870079181923483081514019506992352025384864660041760546544064738988411499487980780477774134022019160147949367254213763957390368180304243842902817876787121267284233802722225140837156222374906952335763400947057984191558666237165638918795288549301876395454039667753873625883216041055212634918695944546417188194694035587207364220646828289248957091353221765018438654323877997991024510309108082822909401093044101359768948288092906078741444223886310376076501584165155995829770766325325076745584230290006792372447935637053398276204951025635443455925420525761363380966007795214675624846736413458966071693701335508226372932633393218129806033074158492714326690348942999537763504102206796294298655134874105318073084560531561447506679844103281498852482470557096628615485705032159836354210664404269474491123112032213925486529568460515675337400708235368483548033367547542406154348058035911175516026848825051556495036836466291373920097265775388930735427299001487198654449734756607784651700000235227250827900657473662938288874939378445690626609319406305471883013345585812365912341207406779251557729594407425290253002276947921907197476806706343505665720727765574199197400936203175249198595624962421882580183117402783563975796889761098260180354084781240365376828064643582139775583471366445056132063227137625221195759135772979708146754692623864753912563801648290082704309155870504744950209857819308633382830914909318009023927654419629329612739471309578282936740898537345555987667927842729677374047899891036807046416465793607311505508398595037571906945673847266347419064849258511242632177672100394286692242479583960951873240832306852345416498233679375747546833360382617497371277233280755995064089015841922985049960044985089499469514393489145369461323551072744520280035740552893380172169761655892387116662856288507985101804215223320962770271772198711519029826627733010082364007079784402723965226064144430616381170049072924306208701238226171791578259496088435096381869158977024727103892886994603420179463184522000361599888877501987407710720464864776619552333874788308268345986549107830832883795339145830722374252331687514999563717979281027295003446035044739945006833375059859902353133670629930100432624791611800606199551861056432366238594958464400964423047776539159176333250603265346587835935880896059346283271881183608945146166214317264936731362901056141152735214701681757277894764380323114941322625826090312024219193659887090242363952145504102300474283671786009004569560701570094689011020042083579913096773331936335431740830098566519350065276154719169060488010874194492876624339755114055030233591597324880259196477978659441883649664217261295076646333800668351580619605703898292456554496043187308046795870384058501563345413343335435524735315159814340385662866525409154186810934461926515162274598744534672547818820330372519631397861304012668020582391547732610454940669860193621636185794385500329444964377921191666811326511626573374249872394931275721463048490704505275665827361428606926568760101658783448476671055712064965883797611934328700872515527418837055640279207928006088709296301090662676332278033983001079238676902610336933957594997055480761268915211548251388273348835180872716399169764759901937868481502554071404300427388224730544797287874505867757073979964636534535106706736402089175495628359288531932477119045338672102008070657783938976868032492949764606734666345627603421198285826862713822675818814340418890312435498619903652266115465756159996046139215030116904397471933016440229322927004486544932337642102852782535260773666765166748172849493651751387722016063351618961629023775567695359591023019141497541708317772951066467880050200010815701023028338103335810739947472405483037352112458808894667129754201481558290284308181589038397716021526887291265070927945629422187960520591797775003130794433880507429792100654146113022144111665312213607565457551785571844258223909246047794495775437404809527816457062084567359072833328722042742005481529105849766590813994279123838769192090129907090069056006366016760658863631883442230551563328946743037732391393660527660250029449579887415331972851152246300461646132164633111952641682357400022116614846575928592805217193412497597628322270818571669190173301661366077734571729378634012628643901691677732204996029409515337395752591535875447668146013545837426730790189165552368207931799333176593548241477855326751554329432683587013181949891524298522631847115324715832116880425420216590865729106428006968902626026064132952176432050933202289133031453329341932713254288039017051673823609572993111856882895368298854936589159894304488524867930347803880124189665924402332867347759947754540009041737318789746106937350666882482973642873426935153610000602385111909178933205703186362706120936057881879429838769158658130125059697461104573934775389710235141593998694561993219549897123409904182074892289589034304643679588405087675169763337055512053051982799443176158394934735217508952057281012572307482074851633343786438335022662778013646588418985546926644164568996424386757228116791203643202403147249549970483177390525756538500164598641219225801902193421997805695040557143466479006528961555888252973879285383238408746713620091279235758101323560095775919431823971835068555289560484590319031536846157473502279397529526782072299236431699133612994525067930326514929323355228170084909970664641136490967774921189810265268041260888430060941543484524050573555928740802147448364192924791598677643582881166685823432095329383639616579353034658611958815225912184208534795456114630903302780634278558883178702887347805022997584560610804058248744663569156378482603806704799250974584384866561356299651883773811672664248776730633892776475842380109435864753675422898322184786059056819700611470730198140971691054867802507420343421542723362943636539335678875517514043762879235132354037936292432460446455234228756397942717729892725946289179761046887293128382285560466663820594666234707453500687644090668306287334033438324307143855532556784872646564030846287978313026591876047038942695811965742935387442999750807943141458424696603210141329950979115201363700585634055065252280248897040576107855831357279622337207894434131478614359646025408067133573539157142364777497763696678140736285750470778717937227062205893951659840031854399081246250708326273706531853515863159495956341174689189178576218702173692335797108112686993250645484806480977557186356588192202063332800511641818820043639964922965664405031798617260515182877250934384696910367952988413160932034176571904651450917056385133452908097713395239679077975034214901519541163891347941118335537182488496804128553878897194213073068744887215347470529366888318270630971175657504551066822680955148998883408965708004017445358891463886716002151375929750293814837554130101686313280611482438919891067343566897924699684437526081639902392441096627229110560597683475463106846264680542271621052694060317787265066225388558178461664630886370429272676009656827033986135391076970002770524823527328518405038513711777535610981129132735471666921358926829828986149248157390829309856086364352743768780027503570599693473804468892787086847494362191294976647930000388729601547608055120675471154122458776823887396277501619548531492352621221926584502463977800340719646750101780755033460916126109130420049199385934160174194988397170536628022302440751802345031831006720806804097877918101727421022629207357219388062088145862939014762370125272359478155307996586809448453811694180340495976711892837152925362901050390205056962784989963985855980814269111640253137520297507582358939842998965076245004846103686833602458577065753602566966607072317521213789381925310564034071249644125395185309482441262499211181844323970725266138686246354503013982705474607631396023528430729559536792291934704940659939595826057038575875271003828205883333480471161194893643185245477745100784743849844493392180759887026224009972273275828546272045230502940261649133185886803540614308734457866343941045006645184023697979444372221185210746635937696372883044877063087487612670491173224985702896871282668012261614877235289993257328348404468186525680459861771312931114215552934960060664606339007329480554843790904561384542249510659054646474197802172567901278485492465123811041731096779401419852961277768435926442170614210071928460771243905205846374727768159012119238230600584731546393931031472086514421421260632307482746196627651632297028608488292504326244227912186186113227635408585189046512630257289524606173123773360650730476866849751799147127010126645965473682272380242925877471339288994751293621873073079323689593322232056384202066411431863759660835264481927594298371919055821609116629526987459919325101947645244970096269838506166641763299785677805645964822904256559662404106237849803203858963283247710034861414149839958094020424463658181484874119207979908519181468628309188113531604680958646624506421931994346920032429916851106121233425266055788173652512480137056565934333407944307028458584067761306950691740789154823051364975687756597156491872393235335109714593593485191442274831096028569616436308945534862457897134903892934466705721155721140008471841798787779784591386130807723292083209389900918009430550282750749179364242771380663373828646316752035254351484903896036269631804428746369742389235140126554184284766486713436792645049113593730370962089244433623328426629480436443530397469453814287254105749817802751185951727191006333287895277566817142096692738894167180954872669599691547735293130772886128604309237407533480320918784073704484208463263719552389263497996117135097225398618467107441920984917310756396933475430957802334407472607552976738145621244613968863756153361989632285329249709095171851695378781877060930166286828457142665475828521014626154194680036013050466916910469208321788774286639702364565598478284683393831403436003283337688951261623717679883321966485778151932199255106920155708721361685442270232973039912143018727865071219475627620007740532744304343384832494349406056823406536102783451284178638449398690025908526758910333892056917622573721536376636181005152563301022233903798000626411349796471607319049849105520113940969265823410426692002501617977968885904103143710538384558628835556713385108429890491802624469590937128014026872532585556329615679969590775111769201069971511345959735625905403750372153613099838394531848371680910011063718709891951346939745234542861959422932007996662846629698812905723317920383267531265671053806204216311761913634700599069418226230518290994900578352337555453063308382449505345069600503694575792665789764793318359309256731407850808287760365546206869921282645623319068417355052823034297761789975549221971710034593522309510703070970644866983221377007844480695692474653307308743663955683750828441180088593660338938112742994480833742002413917852693698712128216383623258586416604417368880951991826653341916378630834093006065347053930805725755849287146364934531796220227629486396805342665194606072076630683275610466801730709540007390987321584739269254206188858054517339370575490475781634608657282778492144925492198709163484847333806270002176617934346043987379874330198089801424381093182486943907924901612097724388842832889098348060381597573347261975540608908140501489474974271585234666768381412153676840377825473590337559946430438384831473837791945402792656116421288849703443594086878984276952321669132433154946039356128538318093361491581889026442696431191984043598860048198023528308497568140293077882070131694446317308339950946287026756121762434322309234056030791240330474909318254534198074163697082638406670280881081970296112020796208229785779168146297985480004294515617253650670936870486912155446597367963835091861321941381912577979217615582816517046541882318032779189427937787001549363417469386087525023560468432723674467957367059501480838686716541001010752935525832382555196200489853922302165734257769923734051049238215285009946008529149044179196332872304738029814883955931930618133556457035016965927993493846444983539910642378725366415769270695806163392794978847748690884371687512046670356953042617303058180154431423357036315534239599824369222353918359139031231535146341314691414985421180974445088920217277533164360260375572015828485249956161240344709702448567815715253914101659014957255654877047130334047029113420290436910080946498830884594838632026823814990413709121333757784689313646600548032667429971847854179433045078847021196550604245044738066637931239118385715224857795720985445060714435216956234712152201315331849176030922431714445694258544058843889018644979876230739790279434864029333513190863497034497233356552029328285594906458286069963101173277792216263304070228216816010095098814698583386402599209290088209746418975871399601587604712064465317967475700792832094923380224217683398299424863630467265136014854637541175976862196333885270365930248335375918469166623827435536991292254986835285683956235230629906896419479823347412199178524774106055559665999645603364094915353788486207117984367960973760897134389398575586901823786158270138446282771460851907628544577125024782300927470707712272910954962535255934427145768623020188279142511039848824282520803932675127498056588771285140255317904708791790106497101759440794021675925131500330856537582827229145079904689674156107799497840381114606525257717370081420775855126678793415527972991138045890286568624695011773375289420335641688085677180391659367007152960972528766238610709139523391870549693380378971163045408364745069199549471507732566759577031539888660513897831464244482739069730368381254231495665339287332200628445899020116541579795179082135535512124928440155224923782031764235552855120415167634302899379479279612008727485084628821950642766354562875719854064490662068680308783183802529489990414596988584722373754914129618786280239361609261125416800376254360333208844939231402012756679483060844968156814561354525249255021504990256498060430268204887904214083516671116624408640020698412331629062096517510816034745023375844573845736643357387749973723582098340001253509126085813105392840961670762723094602324296102874721966249559729212611205704346207977999873659370409209801342137420323325564235539151349346014559570744985582070232262411562835186013036168153318837379033195619135321382186624874710463216013671618824400964238329240243560404484916488079609761525695674012436828745472716716208703429919496216444366244314354011988793448379588469249449598581765617950370772099547479560536113862669681151952395935948037287215292289132114825275455164712046317461510734300093448055627217430370863701872705894142328893507548005622874128171792350932271113478094018715976766821651813504422447611661632982297638583258013765458968599915143262872058386028994959930035166072402921061574209701406753340382443211399064587441616393587845782395944922716355882179962501892339738104314908011442112883317799701795225900975944961648043583881430861407126518628976107300894819002874701483108298212813518155593049610824492422396738169849140654836279713152085682933224422958513032773860154643212352850676552709253485704639898339505735335384985874702749379095318006367948997105547671054608787618485540517997866698204652418307717777819155888965968132912003182206993104044252721237592931144971560630017236970890590561370871864878006474295201403679949253575270410539346202549903410560098712822969210534925911265676537366803933081694200806382093712624704046887848165817768524083301282250975253151288456532720182245355602266175862329256456977475941203298074108799516923615067259924077279843442621313256135514267008689836473988639109540586703940086898845912527733900002784482684299672004990599907255497413102050552953703466830244343318371503503631970868801760365764835129402452928201222910786426711369333832667825227104843872907644166717928345041233836334827830208250387576154674022829674267580985528073574456743963458443111340000899928295768859718449817612217006068664263039312754089554927467312618331969769452039986014772627682935283179368787197001435904843537468336054994838873207579363283237031623967542110446297744647189333271534455399403915501891837771022636304204463600429610034631005223407990668248325045827235393066440538468155094933291186399023997032027947629422666530480370110444730532165128079871899752577300749939098141801372044977016926345411729705295900573383279015962654400337715209535503443778082040944920800019475557393071735088927154630573892239708485829351437188076405292131211595209080991063948446766136733941332123764954675566482420183837325188298543232462368299949422626791491939705973480359194645216990182397587881046704770677912967285712814320331354530230456053593303105443111682765896307897903357394858115621465064693213169478256465124263924205026319296579665538928504584552295024937325005847291914102112598723467443450371189268912143421198440744540269821253980525943357949663953304426119490964406568531756088760353767362761276086120433912114012216283584797582847875968513786845492437439662012933901822922020199702049200150624267554105988104327275610319365563006756271113895386804538015583328585537959344283617396582821467921836252323858463247291401915716522439950041583931462302044112079458001421872601186057418859537474893618104782222537237058681853906824677922523243461063351923392919645834810255485213891256311236688044313564144397871815301532228248218840427216699940321928570956615908620746072460612827009669136656188046577189368817023151360843010076696733719844306072888991028492618296371351126903123004273032509301674668572961365872030509145765792996732265928358410733260431858804080790891038277260117866798986421704987821822213758816768821423225855448654250191075558285417618897279794195588941847230040204954235258811517601676063593249387228066823725402976033303444226350238418959837318544549602985324588328150665883178220912650594755071182075392251641591891907850655918588532146595226313028455810293610091350446675851366025989059971696065335318419381711560077430535481580743157857726067594721827131223664332274644367687893275315597657712074266100721914648426552561904667647558144643751032472707530455532000570515412162515788051250911855497859371224571845217111208938254078262987474396146432280939353286030056786814180788383799636137858796623779222769359097496749213316973956152367765487869344960205628413011854133211032419234460478221438373821481385748319246024621062258877101169262683790030302180734060584905077046687450029009229705334965875750557473954593250586697499729906665247677321696005503444879157206343611343491107295264837217238330531164949361521111692636792360272599645814908555533350622891146535063167435474030574886195905627493410619964453650241770808534455609760121684726846305794615582558021842872894876937149926029730716322655442324874978327261548363395005895129771242318222816399035082522078003628631979733045419775162126159103598844214651990719281367984453184455233148751677633628296217749139386145980944426749897695700111065416135988760097340409651285393804088419962929310124569938517828212039024590917861301543136013525356845823783287969962969625340112788168789060402086914210980505702044719877830203870653079479595207785728822495535572428606933993931028903614874568536118462125709973689036339308099402798269961664990632472942471810454764016209302394214978385768094412855623997852840330853656310631504670383906769426660040921370652777115337174677233543054115131022364969156910172885274328132690170317615717786477699346579427720377492097011550865716700936531878327793663919675517585214698666728029134616125311350592027047010973768045275204301131849457643682188449990080614880724523134431574083596385460603176914837383761670389334205694694795520143010088556129061643288721525321325528246938989493130304668959412652796571109740914280959516821337610717102473303879134460298964699757274535077084212194925491491439625237024107866165608642580553111037963470101898960424418289197417583470772645906513674840246703836596667759975368294857965282982701735181317606862212196450550172033582398443915364529208424570580636700610206039262311186887741988442750891701387298770580317323087037092676361103748283283995061093410446592530720672953790102778097194371817492113476659636130339356721991229498009844516194236010705123965320497384973843041039853011899092653870164794602487092562236561150906309313783752247811385122041339846297034385590663964630430215171119131582921210874971873774840323568313641245827362739607632907944892763047211174278270896480929954887914862648883307354035475509551081519922815009146854829204086334516701222099670284407842911455656127689621607789852102248165034222292705555653813123475118722001207503919314382811351761615868987300122730730009020066152003022539360679475411957829018492717593340165205426302919962051476872119756891728087082401834942941391100581403771919797711230375827092643573644354346118116155024784789815394879561637366221059969910347882698841049531087407595978995193713098896486857535827631858961219160600571118512749809067634186323874514861522102291328427953035730077418305105448950059442299671684295395899515859860788202122012698470199142554234857641203299310642011868937377193510093453280132240496065007725994462707527028909476368058679951174047544516759279790963363158414912395337018540243103272690987984601716345195775603382955000283337013045557414996910555886756601370264456556919749496502620532908929304329708116015257353225919780494172693205516372857930288200740324973882443668958474749609543838834498238396598333813496634705710071049828862973856589292270691891395916134488195199051937517105409669827606022517324093869912439143651426274327541266784245169197861400358045395674805418930580020152321113000235043009957176988024001681457843841590450201401569435252367445084201605952667093171492157468804705954291342955346006548738676072177402363431952192611793077669305538341009366222334316033742117713477764206069196185114692054267616680992790545248944748606458563924220523771732790596588427371953283612437106313211077331125995522672211030171008014576387253043428873090462890920620744747766301502252847879225353408865572977456797747577969994222044831064685795536663183777627048502131447126277284721124366348638686591957678784365659798830344525198346996279333593240822447018990591908686187827787503455552840027131930042564012642773984594576483992742149546474010515918006399883081138646122201696129840844146314785229791167505974205793133246860760149627495602102525243255256962577336788711831464861198963117209427362539956044779187172587106260738889364030824310602293793655789349275227855242053311612570277962214182626046309130885025414521101830099811785040957202440740163839501154361456913856169269354501057102231671228606365548974497663950123773485054822149350871901163196134165901634390780000668552198824439676813370235806896064034872347484763606603617118638582361622402496625926282722353739928295856804941504672010404028078646824217780541085895115257276268313753433286444263825504547878868845010472910797105260117376132898578955968522258293137512378116840169443094814142278663859596854630880979632993622013326516049454030573788790707972512353967652283590092084502574130678553086553937754260927551228291987663949188811371557478142521648498055520051082015066741049532813311591525340729727088107398721257019542358744037625533542194015579809186354577623083471227288467140845770758965298452426057489912546513132968051502618425790387991007458376360853094279887133227037151312906598982397536984334671640936616157577671979430174123743713975803739425711976576510820173372810180875887870035647412647025692791812270758608123326815937335202541770487286570148293079967911726691617334511542465268629460244025885199513240234001722931077490124797340302016056709995143397402932935584418922286854160024133030348638273932495939425562288558847721568533462139540215603815477447291197536718177116746010921577907354609696540839379514881482046485144000225669624316810161452135978106283411225497015940088698963336099860880140801741960229817760401097981111968214441195721373580055497779339703818750152638793750399275687463824545747777679070459917545806289454776405819676487606437028521448088251970651649657051700923726736919934456088982983017487867483839787693138579842818931698636309449168222433420735859588478660899248917868716624744818394332307391300086610060482813958994460588959489244322266859790102089475203566427380808621266290160739343929342285225698655895936808765408704653745145305404719700704398735533101973751657687742122138896833385870523212486561402885603401159746855836403234391438241950842087876243780144491141153595466150571696626122572933295458914740919300303588487782931694471949131375764487596720456102452100554460781634582197015269318430037533320273317790220698548104659198682653201872142134700163310087647118455641544631570880164358841073399044406222445891461506916198082914974303449001717068129044706962190648260801595137658018534646876831975382064592935755902953155159289327794835555718964042660964776800455070624033083171655484210697876701435318638285512143944713004063964366939728448273379976155568521734601817766481823632257301096365530753534188363326332123602062941800040453343511611323917698677426027560481687887207724090635604241540985376446017624087430026262221674493579724030147555757277209686043462423735359572574208715169244922502031854555598137183220593328615622338533117224695577027544780512163341348525917920375968461607821692057739317249520802765226198260516875011130567121857748104018626005654386764359106235526169780979897458251819686580396553532043295156766487025365437605368138576390584469936898401994358871961948465298515340675834074418206905655552780476486218272513803806040747379612061410915387931144454578298517126489370978919607479991728236472671294645939701653073303375676594548081415137633653840524709817410794258571874057628293722477227093051880887075684625802813375107283478582938415451064300116455667355757480626626725065711550790749382369985718935049211863985694599207972121355397768341468965881070181498983530777332332958518053042548026205298031992008444283271192220762744143995185939448321914520183211793284103504693339015769601466475235417116251261798636023556048157804292476472568935672030936242029951058520038431638594705179676192213523584061146718476415477413618381582792761998991049019783198945861796838476117864795584461802081310212368129713907232992923161653728161477486825166176341732083752620776453644843368753046933428052990442404476369616421045734081800158822068314908163889331593270843715522273814804929511241012160139488129833247748851616884270060047765957539190375141943782097679205638287997639454929506541116663755273866690695552160417124189001239245877750546236493553964277371356301815253595305958062531435836459938988895171456583023727129330311523661659333759634891077057330756757273185856688759238797096550418607082559339789896104393153703852712474805056588290824056124443291235666624804135336108820400537045241023876767172585190542650260497030663945149744127127930181228742247695070547684858277646014320289788175613232155871823043762449331465356809510718665726321467771712357993016268673564099772676091327877023413034163994696497319533500404448289615890198997177422686875037208310666223735757728001960756359875177515089868777549580850228871235745037038464187207880080216002022193673644348147128470183527140075752843143207448321813898123351707086393584443957718899088578722156573816726583106654917639303294534289715900096931113316209091292244713757631526170347755326988151031160423174700884679729769913040485929606512958844402867836264932124025358026733645290265813349677673094732607511323393824150681151266301160385606633402728924476521690374997929219466982197415306993416891736928336067472487919794386959047705457994285739955247293419944243854436250436386647103371078310942620085228608805165842186997738677795922454900781774793159715361756173169020673323941269954897493083156693907945529373159891385665079566919085828030306114701056287710899799252592289704483089913122898764896123537768180714302579075831045447205301912648341676778584033110028977879868320281683959193814776360445164826333626672426489651732759057036734499577124862348432696355828755914547682295511183214169340019470665224929244557077304015997712074776594937113924693060702967813770773679414996060969153664832938678408823283870232986611682104445908614067454078964911189316571801048446374309478020727317363224466379793909552088500598897791741727781359427564543850532153788751257890722964627549090778766183486943938085420367341842311551646666651564056705942018614746748167772504416895363953576293874002424004634436461666768958514751394885595657874793792494843821763918580138366196617234033265720344312622436143936094930088026898607355721570327659346913093638526089072271521639024222262638750504163015062366453941617713521540972692802036391552940469014762472706868330743059891087735415354613560847071241139151520825860396437584454131290807018887847311934270995333272786403286641664572654608116631161081662572182676931645410206042156279259886820823255539716120990770339368540751745384520674513499361685912307373240785916001664290113801629087893724261231256594489287370136444880844307590569020805014920034123713582372047919483756208471317773854280010587494280634672874745128351978457201488607883838110995985097264793180884138241892998012802148529119655502573748462295715491097861555604677252378978083234257354129884739152400798901004089559463203846334776289492903207704355603479195339083285550445888390437802904943296261938051682021323883550802973324167838411230549392353227959232149620517233726939604132469525948278559970589712551568073595634116713243743147588585226174357393071639796254636901544743408125926181832969566045339635442543579490379471937495171546646059033762598041636788700549796218427711709801307389290103118527726350663804099680543229598492827433142499510902302829193867616622542579155173390425271630144891774346904269833418183719655860410415290221337289750214706628486056074688615086318888578489244943660611220219627138840931220545339953773368731323720043566983283392264254767049219584652290709913929824494243051556283137573569307059957581147413630447574807109086351378641325024161888230904109215090263844285796992136932241372705528535355870086699051138985874834406935420130138773275346372223955575840693966611993247824212436715458855557344463649689970850845605886226573169487835044461008890844057996975886245025302857441139393982274997631068340176619049391032748293242523697604519829171453842931062458262468761712185582931046255077155278978388219207895926498116652482208178645887262294696702102270161304555149824406758917061966603465759030143700683726542638255924365260112695975214684579845397489347591454183468908752480308512693661372320834583880322750251380016519098361846872345786157979060824417010750135505663054762223922336045384884795381853638377610625043960833660103043539029191427016305280934862333273995593361502459862738063149385123798856870828130685919939499240077258340597210200273107003293459187300277651278241648607537418300317297139141888749341250168680191605712734088264901407515459952904638992273105889757386844741520995112056131453629535777890011147784070581309215922328805975988608086319878592672019199244955324398148322485750559096521182243670314348596873598303057259000619980400149017851221683392620380384099389137066781991017287033551144009045155446216992492665522183346138961358375686208377892690081895195762999616739925396485587472267620487032599959335285856333270601400765850630899585572617662095093279486171134640398943957789548488033185466216884205393812867596484338941630747940628988751229233873705452172541276174878683033905142543903184338228164957167615245498402689106090070708885177578647054740117579803337242806717743028099907643414714387555662615437621338400017984864188108915005554847780785140467719200843458691356000351753656105629872293323013541493503819885925374423340004315870657755870984920306682473384653522830051479595088826632451720460355636745365205138007512539558449337254487959378654499421419864718333237450084719597266743348650772899061008996384026947081096640773121605603986085279941529883914618044168386828871760814351339815368245417737865340387430834152684406050481083432902292610386684219426473082538736234084138037092591861589958826730132783101299807414967659068593719292205433977320437045801085752930698140268429318108611422592978926696626472396584279157101738240534001649614116697057690046789564857911042898559167378921841997613497996206539649987588905481972955279280215968562260585591649222435999977234699333135803397174969289729978891823151015478808984959377232774193371220713826586055072122543818112254264731725994806063824265042896805340918036403168728151210776412651251211808853243125392991203970980731344953947831303789752835239014095575358408360670470320564670705804866308820038520029303151499386746496534826686475971304067109590086235855363371947093907935188442423334479619084360024310737623004351107655002323048312033740204431044250151260505989306971523476096735019772785898422118229644620348797264836840202201278872533352407927567802339835320098790461033731465921910276706786912584254618084740325638800715584407266632690688024781432270610059028739261332111553788759125588387043495073487384738320222767299412105493933807962551234778216418810666415672945318683935744524620060405346801719358003602215185698792685580345144305515679130255868708872316608949900529290274923528833043966490405738581941526019166535503761837245905691318436192493592690486754070492249749065261525737601568454698393618172863888953400731612096164131864900503477900180476119174356621462951123258127199424815650667230343427279117466522207224643941588208148108512114987427791069907833443685090821645715298318808081464850990669683600128028358816316071448312476804875614024172144682521993327183999057487756270407990112263750220050229973799074508849420960379712833614546176242704227729296775992647804595638837121648198759843400715111621109461012909214988420872365155853498448708749945267573253820049273491334207590430968423313548833233054439161891461406021600563153906755544072869848031990696188881302002156124449859221184639149208625525709845318709552087017209752095791996711242317946644607099413797981148450319558721186120908464389662005808132812973980313423474664563293239362945852018357335155140120633557888644473612713133738007340943983683541161994100863176180291135358486690465659821296577548617254375780993703028453299506162705261234306080864841013734141084402331734600453569385668419820221007257083556050590838354507983567734546011802570481855212425490656486000930323552057312622125993477618899813621378882192725470361696269925211818722515968711491920045739368022707485267543908466877382033248459507810938390891869823706099011729131372525047892958407240390944101140927174594429530548442777451768739653192456349592857853402933089055780987545267174039979336027914222619446839825506773764624018310221457868912776320960049025272107333905058947925916890268235479144877263093232265833581513768883964858629136434042002396597855583284209907885965673924351910875810531858674881582338722429048535697433990125937797088685273556967131760100600584618707429357306493538975603097840758107411958627227325895208851406362990537125899551676894761557965615706204018074625062136983453674150311837540884799697552531665021846467978531589765631308313285115620562131447878346822267717010030130816674404398779607635106210268918392301355053865218702187649081825412150977659846387527235225288582198994168040995507289463925874121438843956903467616742886436388636187922103091212541084499441294108941750809469724244402312697146806815957688140544232548782097100941975847786811608901582462560880225831229062247539748359308099911499707317485562972889610114176777147410689549317814033624524110943068546414690542965384843324195514560873710728982275022193618250122253014486927436489514364262826445540970115962247203711453280784389356005844181491327996279577248627973778112597629738638938859886401786992867443380702080114665121976027457331249699696204504292048556322144160778707080009789717835481119019505316087789091405185225943055760683965161956931971356462706573813813006922665862036558814909480080079680750174948199093695638801717778490977969895002849451968596336896833107383875875601531586915988700061827186433286253318632967681288370536697880204907472261304602396642488643130310836150643882162154065888912225830910336919582703836962726066173857936108936750432872387556036106588297760120970765232873165376777432298842727502307169647654504438259638142171284930656196076538998743056767670405643954094736590074117350629543361725236337719997380132306275219419324289967878035239517035166456988826124897154924374940773461987722973723088851414649544676060577141329453342318066488383656582816139087446267919255796802308278321250444480071530095507845303825132538290603335809272268384648875043283511914587245586610390882866469285715363478966941377516814229174675196385255699749664140975484055029196076223336894536144893792460220508868602039256123479209983166480478206936017807608764806205733858964695030433063652412382667535454907704474270571480396085400224680690659822580409950520905611234118023674304276558053664875964781062755573851729135220280008869481310379622523640948717648196339065166223644904275243548430425409006112798565832305609305695435002037152814325920110127156209808075060889585748422976832479197142881268516598531177485941296261406418668993879763932194487269650466272476006242047264837379257105682905074075382847344841548684861958489502290128433117265307105538409171375924169172320231566186079725648271226755743294457777049141507042392986553161630930573005927107875249430426475457533883741641905828910313526781359170149367283970817854478098593969744718449947689845185538699811661933744231695057437339582124520423196376834601003915969753577170335675954722203765930663066928941132007594657690210244983172645250395117501788487951985511298985174293600204394027919677104309251472223115580036006397986446472665988506667273104363287812013421726718697073954159137174171616663235214904434334894138260885359581369926552892353858293880595091073766455640385234780242317465764224311831511080154426440224389133517427755743863971817589413183389849130614764738102460854573060819199805013573700726442905795175403430948388227551167967012210042895477945795888845634498980772637109450074990721520926306120692351396595866362611447386819095340844715407999321408691502767714395452734338160005919307110293906509847749592015525127129481414395911153122116708201511126269055373770800942904126767973159654467831042656692493751033077258161068670485998318619917181942432092540113345034064366470542046450807485647798817168060618411855296352394533160684024517409848175874544031155944842800382514324988270673937376388288631806590774027776210987694658421139184713245552519271630681761251868834164181899882328174374828409403471937367497439653986191613523341593888358203308194579377359658086174239465468823856807820771327965408922405750556936978716384523662695562108286914835155736940776416149910473161249116812339474628229387882973479303260226491094653462512136139791856665715046976851266185813971264918541258720571144641263426991465019835816294584438219778635063333088007137255706885094230993098440303970634531998763411417488603030294711447676614303507386824011906449791673304866458980191991685952486660526084421952228889245112409670140430687322683051428687391261919380685921836232501501182729864003654321842417971035635921709126024165584356138850417160183079423997363068135839082327951318688951134117299001621378004980091575333902723373539076496715627135224974648469626108447632478873407543808053038227079564961317453656624163455991802576641523784373226172892018121723820187348479053855663775018096188097886492159056201436696525376726821261469828553400467853121348964217434995126469384527271178749601071187280378661299570017386307909485941576750897611292993733199386109817676750525719734261744622345815502307527949860922596607186635049987988761378594913428358223379503577556472734069458589806732434594509322110538598911299031038511350569344671731579777075969050852874994937470618576341203193510901998890420631609656975362474047840495641180355887204612589664284190573201787708187257161218461744431035485677385676437248432770536601247903780005662776912456409426547868532074432007149382802592362644918663233189842769959804264414472689733884987995015076083647160733859013357601874733502067037602737862538008848475923260627390297661009202120048695236439507129728743133972179362791019963939350707869915335968103143918274574224364496545511361122093937118304885402582464606751696435155873213426473381299578757741453924521263528973599480397579181032855999477734185240010056198140730332942307712387575542062298228380210302438503455931552002396371631475980372545552823894064734644647520034904899605343927963344955208852828369903378740097840129657553652207777119476109284484957474666368995637448862861110402803792126645096585719092859515625233474829155518456101133918431908642945235174318319981282931643168533469593218913289825221827525584371644083779808786102303008321871065294623215391991004192270031610468123627893576701545951311937821328427555838803211275917357141248888401390352628462458628419598540414528914249199053624319054020572281748540192717478834452432546024160675714242500627603632619755488131117438303214224986859194380875100351047145966762603828334468619889940878516300131376281922463958304909001010975073022721155297040753426019122227214727444853509579177497453098436601809648557127636375373102869096261884257039806949937119175573489722372295605731293336856485737223476457384064315646101208246161513653547589155643344832015634050619576514791984887847579360594336973006342593395402803759221993246582857441389607021024204318276614625818537284417283391403264367410914148186056227162567693145844121972369651326551664844138112368608839109901436370383202406062754796023559488184941712769160316969885721335046836954153413418938912809628804146877184083371935255092506666090739218854510839987457938232842574340990253356047550702812893539405820730639395719563399593855583353007378473750728578752862329010501296978507905981986384694567828718704076935146045324757219131836910568539559578619951329754845746013922310587676450240126281294590614645601212323202811802268716951672078765078456650268097013101288388475122854500950711229559480458469805577052254482723387607344513714591463368207757500842789639270160863648740870604589486343967363491435571783565718633741816617467447438609339429315835775917662107666032363033907707721610131734642173522675891581104621902827483386818174639380065435452160013945702670359482920231566196446168701091756533851766001247076952987798879148493023452456787840349553673429794561480601497302025612489252936232351516897284883759050187245908533755884498967998992831624544497437836510312756714977014972130761890651425457972579333462177362042431109337009759382913090205492793273551554485817293502744541205937881814871754965850004290290702843089934588972452234878362327859995756649980451585290277903667830707834362720883996415802630480140556740698941051678557928904641668589361612713938747619412534806647393458993056619281420737023860312614452968691243953121574147772269319874623711315033011632092586783960701445215446081597219305886162229714275878351671690117589025453487609439752779649586028686936154632927641301294173339789499689524243816444663247595163444178856500134300645609707528659136992603502671619208938410746494535226066235662027519086451610544597777180156574721611240187642906733010146021078372033240191695580337274711182863890820076759585005907664136401890798471409408597953474403357536430420512473148221546428870163929107250269767277627466271390906155924414803311178264025089844001102148058357050421709882794659936748672628170410284591380675039385479480356772531132963637456158360933015407860899785912291141652935424998240038377510773564472731118332724690193880217071454301257937256794466010246555540343328887888694812825727021476503250973178860720098719254267180974560874472543299436475050687273719165464751959594470844940277129728359365402084589586631132216911243108399875236311562209086511748534614320421264723189333262486768952281084291045684843390313363555977947204036018058067654704634987448676923998683907709789247854853487395369909902208298901873444587511422228711769716821434035278131671012084127153171593466083840949855570989548048113118999470012374427422698696432616305380469105137563559741972904990340394768277714713356460630944332799865713454959870438585087050889631594291499813245714484545703334843594712639815470082029964768218430171699466463388616895979423759626923364478083392034950622695541608054055747284500476828535566592366315430828092712694506080321237839042101000299730435893561223356879595968516123959690322158210780682449683648490132054594418005033817756688320251815787874738287516836480269916230736992691922962367514651842656713350938652536448005264233903233745692288696981356725214255168241145427613092677163627416157128450996249926618845045117218629519361523895607114233023121285568331713300516914018277253955449210608437651582249433498374543650220066306195582843925954742417568410074694005809811657505324767197638802696001948667265709260221644713175192472681270240541102391989765196796258562712640282894211565016557466812379242292621447283989082895919111291051075135013001298725755174120195683341406233708579837817847100231226393158425327151957212291407250992760567555086970871152875715856847268885267258585423425788935804996580713649907126199259478579221277264219435453736659378535732868218909395086255335931638631318151903423118730570707312581985150564247755938979312919686120240784714456768551047133004266722261230634822698619954534183628938749305225587030858856544616767245092560315039213699750795750058682475357945705658258249968626622234618046359437735897777955909291264573503410560263643991393775917356372988471631910196679630755867982385055115028038757907186640443653874509702538100937543959200384755944973697065970225441103422630948603209599368202805091805592250950253060787886098748721486882789833495006673430224003511152990769300232233370354689885253760879517613523467266632455314399337020325005818736733517435440252896213561183617598079540622473570938418773720097496304578489677811712305812395191376221031185232985211389379701679006729853750817924921296061472802814605134693058068426884852607383138055852819921932647805192791171311021929505356820224640045111254573683449511015469585735507810288799412183410434404448529036784204777952593785378655505091501732041745210504321779367233584211197062443599391709518814609338210162403736964079617452167924046586871020238510082037767363284422766914575606320045387741602081199121223667353707025127108697965100875845279198603122532077736378356290955602951615898428901740916279539724417126124890187699178514840239021457637710495876556108442219137043642486001590361935528333377634120177776370922170903960674864566719353785395189935392471828928410648546175789348627638467235121852367845693403931512552260909357641629369216473165780448233356697563875185073570874359207652632891506847703948845230993595362473735819946242220661943348510166627996185367664796103301788867825812541452967896029168966063878317983010318956198365632634966563258984427377983040353066090465111442262650446441875960453482801150280342927805872558099798731229899927804833908603641567924496525781739570970147693464174407017914223731969342496224315711341614253568337940078667200495656569518154324757149202484187249965922217051208024102098281038354344956845948996610640246894314394442201470941341643023146840359692484652469056345235989283859496523707656416104039928962364667077672664608129813169228157968726061891975126308250576144122826885486773467335614853602762293926293047342508092234581393811103857403589493037742071271791606965416162654620179426511103969578618671104838760558602294653234907628018108417058080158604909704901793695328208462607951732088437568982727526517806362686376839171475331056035542981537696070018236568406027924170615721563221291155150913204415384652667217088905699544970742979605076862181888456556032802520340507874643264624558177270323395471089844956275501329307148578049398879462565923060281594924633385593471269396425014376199485403247096597323082113772054461516152724739008676147019604388340726780844383864159005854696849976042539615058846789746994385270336396472822515074871659142027999301091231373685937592980979253678911080142526710678683642682768730705322832563069527359735602060384502871673894141317881446250025504657154213599887688961409911623412465598794744101955507871681759682551442785051416576900485222115787039286382998960361369346722199428588732143502423022072164084004990458303631319628860808794978793807536065466861900955111590941399813078478401740224926774497993272613110600242670913695135483080784431904914262647043034382642915684761876477588051395672445842365805533274783046200541158836485393804360749233160524904847125527127969612588990399488409738610452882688004969666962387267869578125985018336082337525159719918983012985831337901733265882496805737112273917284167522150632684238160098809872849361028104598507444633656512832888756803640780701468945083962563518329651807761413700880260444057327075602993348582633701369792740713685011764794472563886882460362501781816848296387333142560313937395728636446800050702870143672287699764680356012972791350062997683156542096718864525695034464051550974441511355410023905027464858802071778951277722324966672620761679080794970474670359411379435194239430915553273040451700444595601625764077358408940915011730385566808801849237913018877352958460351361647122107647368890005716736914213455039309715673099983875882412289501480843798323883218997906691285310994195151106792314604134772519513678880928477575245397378669591856982090684966001851656262808950273110216380052301962363425829369983695462774891182463218709650488673575543120432890524028021880164408730976384768455329740284779809265590166660949669277066606742236025498960920358590324513084392980970100587414353334129825097756892863053226357752027568854192467330895327958516374379684452381000500893033347133707889595152874388819556904853804295096745458807740331191653149782760508625059494234818594391439783413745475067999177782131279918380477351377183936111558395604827109719879540791349998236115982375812479445670374976583224989677544433490913991507622439470803339831861627082538921426174961002428122086676634932200235416113885780901588148363871536739548915006645984362923967922718234628741206268003044775048600339739115083787211494981259712307821402288749870018882756110343911222214812625537528449970443217209600513808085727244670626268025333324505941775369202441096190003992198200024300292672464516193922347934807005052027386608740491023288525101139106261958023204355796880589601923354058519047281618042404553204656586417444749429644839080690084420002970672761391119626040988115648524134147629472846298659496578316005760279340844373960121167085702614024452360237154330138495761159302538290838198766147345242007891862568361152037129150952333401561959072472025215000536487491910995200824317368717004725939732909727002767406361349361079170895922829530528953013110310841199605269194330182723987262621405592846471209383461978611288311487934969500823891545938982319463799025572883264294491752195736656803029520258720995912052827644632137741512654319577445287947566766338803791258156628901816251143902044816851174200177793377378128181433135858432930996643553477171777154118800717985327942035942297820535607751512088285038793021427681364067123910358999482136117349260782579016709482094822465407837676531058528412460366314964236598872945171365956817795012252279986033496341157194557463150172768208480092144533902396365794748399783714813495658611977961031735790208527027853594553782964857236286008752153560505514015503258883398561886628455449770959882050575917190992990725388050972816520063578261692843264632581137968890492513030595499413418424702721083202493330734083940112197173978291892369809989765292621418750186517107002834876939933246888318924290006270112599134174372320556743247863645403341315320583098704224004904453883552999113629386012932886231958737819280213030135832460770909607146470813778522038918305511484003161395929405463328792164465760644927566118943051809072147155289379038100898742733712343099044952195703246990589664485316518749408402368125823328166833024057387783002092084457930698785628015178291225459185281884545053133997108666701150718877609759617707918551590151639722252083253641054924510918699617159472380008680460127203682021011950974572143459910408642644503551484430587929064110223894640526250330083826973444214789876597973101618227956063448657323612822571277889917892523674265312439163472304285401689337986902806391164440911344666283143164524901731901175782613418278077326194983355468654989029586901227182091047815294646486962198421105363357007447424600758959876539129163113970036741506041857158773091405612715164298519221075264526980251643707830012757416490543363319688669941188179442937601117968736547430456888690123869543655078959087381473186970760939628693632468004557769899820730911215500610134683865502274219255304891926360794569651954622519793884881996079778926850545865603596132159167652306068859237704395880321919262461457229017361851644762595777444343215630595866205563068418020937328061157903428429903904455326799629104151377734329456309266180100598252330275140159105183157380342013828356875980997140301107820275548976469869377790082204662100360310770685068763621226574813586632574753127355507761219325872157402307453228656228336502081284393693657115049403520235921868972536324609636879405009955142773732616709932920882598649314105832142434668093675768544456818833848763208770502904155241709413568290617711640584587382224960135915995086719967121239994148791207522845659019518804722005736156143722747389914688336111807458210157121424701611155155511628178990004812822772295532501791611267142409530633520023261835560922165496422698093204793985461381548590112758035927205291182321620077787533667380238775480629386455485937819489415001806391587726098588348550677795626570992713482500564191051463189639133868682355058197860373263376517655651885781208410885335874154413503832839756542072168372998179607952165376695568055407258409603542491588617963327861118995760099771977598250057526448277107459042496185481982038033189321804991886043076861525141140560365105426503752089514141671678183457322068962418357062311426824520231024868442477997829898328405290091099265489740781041567683421490905091696396977628290672829264487465587846806799833021256145822564040674593823132455041665156756991213760548988201380050456219859138138549968659293580678418430362953591003389269645275389477423739779274083641489448123316673872952249489901592494302137692956728129646825951442983109046714020982456824760922829988628541800045960217037329628485492251025566757268338034747464449361389250053938269338207638163908514869297344625996866741299783302240310564706761047337234682565273480651104200828255618451499335589536241791048476310531606923160957483933184232185137208873490941196261960956471827310104334559498975232381276284831284475813500724785693614756708379036804407350170673423017261971382137163274139611235379022012504521307954609523016323494244548563265572703642932793903471670309801801438414966110398056970804291118996412239906946081061658328152480450653375476766456844061400034596945570333478046764438847654970629680858854191675970374561597177278835204883895430590378848504117097125528116092934870631143761765981078825210231257425411367538866429564618721296443844686165309774581656300138241628223387190071972088238756828031050763478855345405249736479255275932647802607135278872813845498735364000465337455488533077520507850268914280621895408711889024140759851924341498910015404862438856263225101838404695901202124450157105538095242595185022353249280389553328166647821240975474291390611877351549730138846175468023137711963089703829955113154015302991280583277163848038215723995661477085167703548870931529196000638120008128028358184625440564268105556064032516699590060243611312336556085649743884450221610366035365810218431669719142309645849600060137554483726083264451120219535402079099408271714740491085887895072644746482879949510178489944345652342323546037186835008746502437948526846635957445866247687541044519026677631230863879313441409404999723775570251411758936951605665521088688772503798773257736121422748568082104667949904395431185344483427319898804186433226641773947043406081984806173554110719786400476305703378242036782390473942056416898130112774671490919679670390649286462383326647772799054986102400480572252078887145907621178398369403742205425822703315616019971000981820897855567931401043962366231990701727898641962040073274999148228901040987225065623903597240236569981336399140592020117700120456396438414009263526120797325010735811668400300692021707509862988634341103399089522693388508559284328861868649904809730426957626315459707333132945947815824159231125681051328567846845314530685533698000745474859831039623047080506150596070946791528325170139478335482969557345581956843959216235494304303931272675407477950118102853155216410521421514309989233510374273040673507122967060295161993550380537510227437053802066910949334654149178547984489620917072593684666775679003640119118370427343925990198279431241647573252410029597571317059623334429563349724600663573978172234204844403865381830358242780577349990054694755742394523409505269367855351796541540263696207816662152547358737040197602429043278776973851902835849492310380119966217039302337172404656517224389533102160441644625837043749069112577622815838583252307589530213281316273884713900167129182999772836229214008601828697629429385136300810493031134620458785706837092464689110209653115254419210368243841705672991566347232016662152167818615072273033129398306214257112126724386998385901542017042404279065577604088357968788057061827405659666584431645486446941153758282989810920794957128181543512810237358265326007650265574204802327512833858203170819782093837731812537628194762913921777356674934985571581925638890174282389919290212864370711588961867316856903475379268317160915758036345604753108647358194278930221945522334716954721028035193361969331167734074026789336706703714395009207756871341779236266445522732000912969743423551137369699645834798432915915025538452992757411991888601424984887635854982761015265126398099446979332883705590064083481476826775467847261045859814860379466837813311062602675951406118223504184406028943608506614562499198751590566675452251679710605701728612928475282870734352147965246451491674342200510477529688910144631969315448679338571148041098699123172856022382267370000024266215648484638959929832610369902351573207891658682271905292576938936547855286550696435019573286249606335284373033650470961157939961794498946867164743502727155115427768470890941708862235050356967498504420147728711800214002586837076634297933981962692593311295998902507388336557414740056094832917051372029364502443770365699402825973978231731360254713408819880523953654909074180669067706013074112009162461404759178441761296559524177306032197153316210379147261351903558466379757443521374883342258484809543648544779183086129491361387281368935948019904428533829076142102344255262141737721454215542411073412723444886529717389317523332534211647203449197776483644144760230015405821205078608199473860011644569088482935910978316524538034795653937592946780849651910367428579215930614623112581445705991564748258749756446513516867255501932739742475845087783464854166824512378575339049008881780477456944385271758470500155559222828581890076119575221775059564156363434412553346984971369091141861173573354094181681788802598599356740440043798080560859746907318546400229995320784439760332843706961530747787783226670079328988487126514705842387987378096803329868703073692529086768726414370332877672810759209993642850763036639405913589304649790289928324515849327372661595084226770024452326962845648387267010685307083707730428973639854884328314880276675751228723837458946432439878107161145637812830262514775545782123469891628205906540324321031889076141118033073561736334112760787123711232925989048769402492673541124757572651566899195828702571507954563124492949299609788345208240906608487539237203266720509673964805539739692905845876408130922960188811251745989642462040047491562747134557119155773849157063552439366404784626881644527813318071403553355630886096180414607647018995190886418578172405208376300485502845987473102695803481166099321855667491031228121401493373243165373415975358944345600928035725653272316442216458273566638761600737699878147428547156154192033543258987984747191454470119492924648469647307962230422483420756662658436508932583284553206972695069441979799071157578510853037534981967879958328490250546839740422795099433615013002729951254229343604934782112446735410338754337719221898055784876780876254444644875708278859265876813522863271167154622671977326300701570520772021894663977191011321255430883141932149545100312017646367215043797565438336635836804303019109582531611465457347670852439152011899718066725394349280288415507395381266904315683709641363749312445738329549945900967378949933292930001670785644783451807529584154735381356156348660113539751518911839982171451753325059196409116341284026325726000363344151558839105364439514454319695680740506349250459022349265635761826874388506214455716643788201879162107660741009498245905303544620815744884058175264572507534245920316566606058030945575536795385836075491339634234444784888085519400384417837982325722915257333928384897588392243377167063787585496622830944325850143881833247379552081001923857453813235316350245633591839633330567827051808923919836527187365208087956779386496689628255294730705687100196610176713074796336570312511522662857654655034028737966766123671772370885575504187865831449354788955542331716756861700163261875884723717460570752860192721188585600644370410186054522469992125177151254235737012092932649623613430994293639780735827961068293367727586558697717226787577716955642035296104524450577059434462260448358763217824394151696333530372216094695449904868680014454216164209700536731234413476941698292411051508482558108004908050319734228740654918552546798965109387188943564251841380104974694586462531075178657130222476883013331450685901544950511825118809913498766244281988666597719738764512638098703458080229922243961610001296378996244202229841441886690313314914571012461350012870645547787944102454790298915714363404196959902437841447219114335178307855615829156028570372662608654269215797276694670685139383127844334071413011767061426200243294440358016608063058510406741406344329514137423966254494739005664138288362321038914743182938652596857037658667508511882893901040156089787792474274707014376338726476382902602619751337237752235131154128548428932937240113367934346122371694365400522670770678971179838891543778690406178800273326018283905075528833393116407532626767954442405148932437177389789745833095822511282405182420057533006948116396204328747666638231387404770816442042100113580868440414755323419940140003461028135444592950480771662013945364883666724940414469588615932860427193730632427150025574905891282684827665831667873696672515472364247308395130385569556248752618563077852912696303258613206474982227007139127971948937620974568832111050890038245127830307314208679671509150955732690750898509650693313978332858519145459823456400468182843964196068364579246802702850092097802385886196598513619596469812973688452887520775990189076810116861449150327308591414689742194065658117036675981725955638413352496181856158697411596423505253339510344557995512236212501148355613118215159728579066276493319802198208421709070426332317782312872996300744409457203691649176511758075101490502423855267115039821159484273061456999765922366807912620988427864203408372650281131091276718528633554871274051932437932813271352849052398688167026768122201257921762144913181885742575472731720257410667001094699130360883597950878979466522695074896364289579241666319731431729766523122254224588576685097969192471327059432131978952151216598215586892525046841112507265441080715368255405989339625486453567936073539611654544737307452199810019770180013961780551676721088054203191074502560687827006047878978296785968825550218832002018093107776458576990510960037123186213626085213852194170274968762418011643041669836432521295210941366381043428234126070663077050842244845528651693471392143632270583413241235055415787018225667549461884413272371012734147169643410948211953799339881057864848075247543852977692257545419622092457153496552532527156147511063439342925662025854775042779988867313281870614529016572961216631700892548728131487599539911713484368679098658720274150865984516266392044912687303674172368471107696147123139287098451929240726768169464822631288749789869202900176345475781581825236710872046711687636296736455013556513551899945032948142968834665350883960138169704343730409909865453536285286462614715708276023284120155778342615456748454527862542906684741253548823282154459340716201318033227778143910271224519913195702926656919292684138024927208205046046077819319139497706869938215370185531716346426786287349656522737150381128083804824502087042551813576731159482465387314321947879906373153749910797914753344567805431177239546142777535152908510400761741105309367918243241256516695096086199313302667610500608557285930763679197980410284570693452935273300572029892297816297369242643283254888055912799743798341201308187287727389041637247076433430437857484525671801583350095637079113550608806856058819609764928966118129571536784976205294654200268475407605944103287252275148880346369398690910069251163698481445157737486197054529420378153329852300269243622082177198948124636206857704272470257841111976528008834754510987609868029216100853707655207069251913042058043570182504075834910740832696212856778712047497060019362413213861927872907076659889058530607628362979596852157989278464926064380939909118606324461483575865039148201545308678806403875181556839212034366913567059688032761606905359004455126453408225596739827285506746536051280170318595393192622673374214467903959406584793447456390068767234317090609638750468353711465462054135810813321965596730634723651584701513932903054788387068563422221671628501534852228124422754268122466761053173595398595054957511209178593475089939846397144351860663567167184989591387888103310817815759642292232965865935059617226325844892413956636859077889104497672418705285455198913949139473132750545490859716669445569985529544521146967611864108463231945224044112583743645268061326104656600656128229919774508360381229138088940780082730066974792510579935596743140666446274261756126678708366923520005302742589044647470980105375118191020500232585245783051396414387293122614904436040809000045068843166377367388296904577017275954116614164121288369512332227252271508039137719411114739558559952892510392612121706594495069882109848862199536270339193631254485241606335112618030056430090078042015082792823352897055946317351395927990833113417319831966679713817090645611670668885072689618019324026880840177916388685109919350040735915308830802826230727802333976113481437077399876608896654227457658135085590876935199057836717965010341812733255274395855135122083779952877997208953116983975828387544138329818043127049592176932834020623263974425524888852448202701562635331199860609509164390825449680019525502858704111998275163818834431235268429789986819927113678032115318025197828285485217561615254866174293970740369157512217217916754691418255064528341858858931723527388049542762053467796899178918041869734623366675814280739557859429971142032928039733273946995545666613871483747829396899075997994338146187389876137689491634070672804025916596552073335228602555411976714836441065677949396956100554159636292338274035606722075333954315984741049482634767890853977217433922172362700154208584051407777493851644325633080609316362405385992186407439072296566078399839208701911741688449863626249854577288347343337139239921219794111748434280127754778185160454201384349686829228396326369208417335157949798053611216989585948750502239878407995255900764856385481026588132304457571011018537385478561916255145729246711965821319267141241239572377300091609361129188201476305324841505366539082070736127434430243991522512137825674351107174028022067014999051021210420251986101971384050361303280295965916728181658274846428077359347776594221299355328519837174906814228448374821930461083512045382291220225523092951360253416587925582708446078907655750012287247533811931023603875244290827009826904565242342849124887861507324221479797695797845013377916662219442157461691873090083923553925131868511934800818124062491120748291319619948598967839096182803522256076447615672481240086236185131687686538574036102974058827932743779422220118450204738879130757247062216955014443345396492182866360826010307403288425520840026438061066628580145257200282959724929605015088438476584089384686181417781124357684839826421076729522517842087659826049432342512549049096719333530489113837189117882502179171219010060556187787399582909940041126277389526098908605368417546041930706975046425155933673573469220622475375336614230507293482239241041135461559621517719060795403388433248571558944436601216248829146175371143426120757530759786982306301213047888575560144075208193758895082175379148452128180814931053046456089112554141930148802772254722195203746090811848974581846518059650487095769030245223126401317951783932120052613277070854332410641918759158155261132457987283890042300404258875105563087972171082360751113606449212364494438957867781375280487915687430842375976979181929119550877026831552116716985541060328217962370424533516256548482449249251912943634816209564670178163500007119942011811768759314325235996060017356511080710328135180889046347035546591992347474075083208642484595544230012225848513047062708851049000568167724501647502672515856572539528249709202949937793444190044119500371434517520586611731354590750267963103171750361338177915384923884372445498315704784161108109256256404639150356368281167498855256018918300278725736376003438852556880303571302529767857778977714219496233603178334600745091247106785369915621324823187351533505408557998350941070882977346120943851094475803972186227943353417505394777683057031279027226911741908417565782653801236498527263656057652006933055913674259743011958978243511616354025163429788499716907284832162588038373701271586846634243342110043661383340865389376969019839399312551450756456795164940196785961808564146653025646612595933837257107606348587864176124798034451541473577361814498175483828359699127847676814966011836285512230945650920697491074041181730803882579183832507543206990930259942246873009366600519770735648728220118381242435324766868798728019713562564630850426652032420362677234108370291610766374245830666892284992235923875607633950848028878429245962594882156425881713256962663403490114796511590949760972426670354347446745622528932754717714755612378225876089511934773502238446346883520284944646881243563066887885286189909530150398385598578867823082171253816532896762216588189847012278530659199887280831849149543015851391082386704069133143167883620410462394023372689694296102310642297229038239986329140214732339123018103748710633845245436843377032938826589357151243758430456124416402706708879320573070887908768276116531395856930209437880259238582073994710251700386533318793450106917450166722732226521579267370499599488034087342271324787997541000153786283231105711388509797868958607839419120660076313808550258306971136144522063632364003166984985833998197097912372439054539614809729061554291627499055138141045225212609090116550207730660674941796230159618052060858913344163168844575805076727387669164442332813666086548086599530306923458717257404507625297850912661639577857076586079698568762951537523581876795071652197917133822101277634200645162055188473689423944006681543530456668862742388968226711337353841889969757220720617543393813627985254031552841595892090704332852898072209052432439148729585059494410566951293522641897041283586655067200926020554796439785031151973864131586319718166109106245350702940147343011959820162362709085850703949252946249427689202777653175845807517566453975950674743464161789305489803481963953623153112470338964099526504486660428524060081324865051800852122473541293847467034959189760127258587993752020861096689188830176602945157551827553931501948936616216607446676549450735867827261085833812226492824768383921248949205462973024962078036207039171456263052606417797954783999878199336842734570544610497361293599762777719474155498904604304890666165427908951254454761803881736892659884306096062706150509083729075228462720670026404405279142470634215713100794612851118465293854042529849618484660144687222032136423958297540244189028745399188455589512013304700987366340071391896148200926141255789429729569473725031172144811478296795631572574740032357190863744601222883002963533027277849906296453694462154840699578973651951291835688576100639290217507019293709282244430344469498325127024482736619293679265377505966641821973634608145002832465246108358799660123045893790151500559475047050979159410304425503616166001403930981664108861754943196836111899764052838939285176479481878725990201814624750434625115591167832311811918507264705125305881369982287125215251700079793042898101507189487763882295892755547198046914808214057598205925765846124601471580977613598371905015886824427980496795377210609321164185737593832390330136424060060374124372404038413766982821067559228181666196148898381505168832731782756068515060497598929611706812078629487283323797298226274933134255121279722087941369218276778288693616232967132145150107465590765243848241765382643946516587844758212545002169265496219547476001773584204077933820969185408710409742323140332014126856179342788341406118608008387672242630109327174224899000820355991967299909386426169204586526142648645768785887841713619637059521112823967427337454638624910934706982427639509783217560672455942552693653141605651488196824466758966073423432639933207621351084772799805101829127325812421493456879904613610505302084182883654553889404538704604689789062987612402943106297166028928609207076322505525887797261457475770406510922413095011315750697378124203629261505625594759878010270068663869576333155063172689469615670176064462514844379864256545113469244448749703045807474279154106934556820605729918988867939067749706438457644292440018792616503005441413033805946613186739809567398045600311619178444705704887487779854100651544066569089627509015925591352055173193789308835900359786909961138771904137755906326810297452194324092167457232091311268693625775304527525980527339185997886423354681475701003288953479928317280553630105243216305176827270062082084054452052165186849701844811468633882981150697649226645583496009738489468523784390639338197539218928221976210072657026926670134461525026909674281339024229924011671608138553486153482442809667926975517390864460666718375029341668514063034736216807758879858680383670408068509178119860837086266287273885332804449610980129991876252034796924325423933842854636195763035922542080962958480137444149099317598842184541560497551111349986201184988491357654001223345090137468441939023962730056393238523838923468970946034235920800977837575792772610663824304713158322586890086980837033344618005223326516746157120738380587607484835264351725099359570638918828456806371234275815327928534524935705468058612396727225726370016058609899510793243215291163979287348185963414495500856708123305622055154175356811593725195474032494541253317254769415696988113239302727710591885448047811065904767580087452456496461949642499533137324393425791934402038666470249458475748106040989297967708929945617805304672315505291796127438479435568071644755550487321971450408384363631237688423350876777399303661274419305104580593944081511053411789893273367611582783151581362525029204434276388507300371586758966845510937105894815831928355679320445532325569497303719222983368959310781318410111553638236271129566192202392604690815653014121922322879744552188236864159346107859419052166945938498253433753885931885466524909120914413947869947495949152244628739868400662096694089157521561897835825576401322130670447326030745973031095489083274450775328984226631135138388715319773397514463566279268173577506298522835903661361869800319263890693197416445678650030032666718413394747158282046785067383462496630335620825397214021376875880477074910551556741237672212221925958861375829601862599699320298948441619019566028978905078393748203540735746729274284282536530840185831323659697511296073714989753628759408440802435220722910531653219842247850592466876291619269406104077408781206764480553037435130235048080932448011018180034685380152763094506461499039418069357319549520726053895307889283816668389741994859089152576527268575670403940960776211688565803475427987444553157539991442684636966148514541756724939924669333431008487182601841694177953747384896104269948479659590470673094058331741902245728616736265396059602812949970022797061598741215909780599412869439099786024923803559298993567563750613025344502109316403370770088710573146755292486984163864190195078737098453227549118595238984890689897757415668119232842927215875958885203156458102814927035835279423740222692156432544724209097290300221543642384694323682667702490915423397734136654265374399448582389250003809780392696992421783409972366282515494517560395931763026927634117941811550866478262350254036673440789066776960170424406193011077082105223265578522440717883838896428091357289650969346581275253558329710505867628217606241998866567222561144516903565771507337811058115369896956598508107868869080324657243509934837886660045082128707614815510840373554990083162282449042555852558227018900052574903544024669750893250791495344630678220023826882785894959643253747792197465988063820977980240425062817092594339169816665665294837071240944996704117002435076730673547625670054417922889907058898255293002935833632224472202064939428207645250867440632752573489100497188575745698379227593660125604776024085976368309145963492901922387459641129141152595526391383996367207795616005350917989239216071350559560273575267592836893033096401982120280177237591826606758741134338338935040932741108988147048695898309131848393433748795673462830278943663137175974035102450512142788244848367028102039015265099914419551153244914711908980897655819515062675648040365210519667838870517294898549010167763287816114772302974280003527896618926148887055185077836077746985369684591154199407353976777373601118997520295837295010170406901174361624846383265172045790015327536035914336208767786546557621387569517754731202897303848028342998909075469785199958783222905432556273893015717180243328554955012066024349030066034228544010034934706506462470168492572066306663589045881997724308630509957226822075365977416581325761886414110783832386416264317444560280697319004894420370588367538286266728796324234814588623609420414994215554107811052056752681430109949183259146438994790631386031509912613045953984768871777003182116487163910430748308456945738545970254191995612567703006989678955762255490819700848414215570410129832988116434222197994473668251297006542598144853869149968017301790937886616316537851196320047745460243109277774923503609673775243749029882280767376308004687540090887678845010015217096546586161151547604942469069343572349570920626943824759496395489685717485715282974080679532174632323258366168268731051379272238148657004366217872581361450416292476886382195451642880238471302598839200061122029819985905584922286314584732209236376151590280075716662415296540162438775130795878017509446449659631176552154750085073268138399579242470622056056297808540939369774212287460275231477518332218720836718529748271729796089948081379192628340569319301382191294804284907785646281703182483769553743758228909787092904450008473214937763251832405699730140128780854991803040187300864449844492295864339831086458026724853637215381345795845046165532625265046936374569178407721484617927444684979149904690907532845200464445461270076175839113592396637312340918682714761028080652873975420990321496657713725841130744727483935000248727432941259925328253149198715624102788311169861458740198678948098554538950327075095621992291428334961078903747973370822425873604954102815470148152765601293172971768876452573925803044892391258988266836486240963209876910289505542097268308133057163454171462147331999003888647643938505790390921861348198169471772692182581787288295100676141090703791158261397908442145080911828176662602017021569105520553429588832358868227946728487867187218686750347560519973417357391155583757162786245253206538717827556625933372185724771225673855904516491328162026388801667013052929382053466405908142466573666123913072146156272903654485011844324345222019323421527956208289062050827625401456543811765274994552779031428333001860707914810571068104930099410044176217407362450597436126535772111070637677269482521134973697947371889645103035088323574132373300263068802847849880590563281562288167973880807530031246147044886690797429324532845424772197529098312974940883078779177253135424394471127729627498676876744004066360468050317718578589312754371915213090555200281402080636161329447132555700487263838562986041359201757477003280938084095166518845658199488668600703767041577680193178935127410133753402432120866763914380238110642361677227118600120689347220575101393296519739812806109606233397368157990708944888467914691900310441558228822797771663191973554584736096236297189991704772658207993736383921197049311046027206499473451652128491945011832473383321984306952697207430823046552157619117931431464050782173717797206106811554111454119142325996947349262239839332882712961665249302280581074906721901442989511452788161826830742399839507248544725073419050127024454392850760746113016457672580352871322837920865470559625356998718820308537141272403290029004386415699561130489535692907313622697138637550932785821815005145777093336866073709803031364582299929987553760836155541906490910376857467290696752945705627733192864810837427206509870397933917541062014211233918340275723900489817189681308212493543141998341812536629210764390047800846234705023398149822623680002698843275172206128872934170649227107629175215398022351771361142418314868593082075038421982448285034675255218863567379179931793865164481922924720770123019931162896937614258822857393734569870912903677853079434245179500665339885662761412956696110376262926815631177721119841836039784819634321752371924667164195346221505554889757011773477163870563419770728740993367033043517768249623716897517553285096622292409402292302450399742971654672363281097069404714652512866319482523289354204697736031564950227236866316037040507508300140431757181615168013010152028106860143867906731221865212756095663157311203197798702821080551291991587639236873836098060989195505361759483188681041125311840788373795189123814598224713098067076393647443229916867781604110013642690280728875927654380137304370929072133413167344296258152019765493354601881410246973048645535197857917010743277509325040400820129858137541740080857351683164199691866062487997465316762763752010158370992643329125538724708575715133596896167634045423399907998557007946804467680581313343705480508094373934783796443677746669018087445821186902896631044667625004409144821005301677577789362875926957801798493985639694639461218522151998873218264752656651053392896019852773027682049419723881751680389871256014978456775904411420678201786275247279653186490797092606327981635926783504340441124555359806144971637595758144388113315440341294466103285884576209065089723428722928405982650179588421292251327182393584762384524431688801276095484667159800305059990491172542031783465351132533378382451597195448416561792077547758647125076498910237506294831773546256457305174416570829492657944448209814964110999878322668052738452863373348202002552997509051014328092077156179773483540804104191809041600374885408782921292967801332458315388256218403813794380302007157485761708803817817300992633026291277039479695923779529540471186014711011648467983163577503313570393304418400824932302280352608487890179681338104725819537666149366669186095383714366746300338659731185800139372085724438608248237439871944297365452011668173759250049861710337913376592353384132783056424593892317819149199976671741076075247399410684761108185373325058211130743069280930396725258492691754989031587731766214719496521670134913708809849351931825510221232929177602486398755802837492322045864072068831746771547603308795214804171464050101693749855642669836304314156330422431857990529500569313940450566820969465543016456908374963845859574063473947949590936612869530945109831053372958799786156863249925245213270914169406687183276638279744033064703865025548364214982171912748783904559682840429714966251100949694323691259380464175061361871301521967829369142145900994140847674443993872373028170914935511084173128035273477203761558253340412167117539340895482932712515014505338585305458618247670740709482861598972522671165436527560036266108984860725542206478690639467439918254561398231968146492021072318792295535612668277543292501429784974713436835574825943805877990059815522804695544306794863960185129590639483970953627958097164045223005270497777822117419595572933272399574514225861459506095186294791120627596715607910213277711437380920485810713325077102806320299121909781541081379584599163611483114023278009799736429675471320930773222598962445809332482882968553761679332759666787829807320472246551037815470112788325867844819894758379064233709095835787776237132884055808722201222733920445536962348811306538993627978157480951028176669618830999069956039708725511445124561684470679772465018417960223313185332940980630742149245177352989262779285721204993421175623402476892456619751671491714826987240223817321110624824038354860985369021128837335974184723479267667733571693103858299675679753136822362993102280341683472731418402757998599783221947704288484033046154237508398491041638285316767556472509381169128908954453176747874704896713940406592506560243972603081141802892304210091504973956089213245505097723097211155671537451584015293891222824251516587907154751467285793309036774891359202753276390393724113123231522330793506693603071539379490432652990024768583770592568663269985519836755989445686051439177246257226553159277168497412974663949786961982854193431948967932417427803925663646603771789021091639909936678848581177844288568239566333172215216822829087541926458379240932414264462931255367125205443769682378532098555957176912798090091084197786280973997972776344388427833241648136898175951257390164855880540484361718674456635895805205136574148751597028222207294332702316258535200973585327118840903914155065706518649825055014319308368560092399145742040187171362487530726437227321968109204322618895838674799835303469611864948722907103954087123660300295633504657577130816107809945662253053553233864664561049844686556007572495659725588715311835823568553211436966458867889116351756992973137472951601353601391706351721132120401615378638624102624113273638682943644517245809428941137463454290974149673450876108221889097859943689261505186903486155838174333874736354695987542301215877097852722887861566264162351374163129942557958893361114179913793762199880075345242693757152815235629550870465870495468483089638237994481907722436275244271488935803290238295974235149267379415992202352518971391830915666553417522975312604746568900346774015512612019960909187938671253460739200418060212584253411310215067708290442552363281984706595297741773236074355345982695722093916631457093935710074450261083136880037741710541846225606440590885283652251461872568476239214170415274997128872669829866928604249050565498457656248545901312204018773473325174089996473883315820538553519852474468884831518632543628635897744120472181199402551169724050382067174417489610276779567672497534508532277147825991589765935265479045428177208177104250249580910168691604000894995736050667215033651706125297401650688160042396472937663734062454583943161479152454283798050093374702087801005167980166180273229830923918635258987622584906213581733925991501138991532139231375544698783396335918372717080366961956210524937337555550557827243468701794987171773455322871394463347808531224370834186732681466390554522974407862170362856207911316551401008106637326633528118204621061644192678787702658266937258164166553342931652183645158341203745954242335017570997067675906644556681299126917459850308880943002367410247301746835680448197694394415502535778066978859411308010763656366999401233766053359202823505119835301146086305622816049362675849299837904566730235867212956144264469792529281884337909743659593923212373710045356674145222477015520193011637346614375573916844291070367976430223562966926372383522290078062023802130762127494563569109030156828112242352361508947427540331634636387795511106989369872457455590814735315872190888124971232062020711353705842779432470853751386338115761614841341725718025949221015032912345769319383121800748950259515129558245695004506377287537341072654201693518383368900269454284349938133679045897442982034852905870494495429623214674591892608799747632449116769025024482186750674724803992333154738598886497562293702162938256548426598996766874561849520747975422244588616010222085732017566707951925545835182289345558352937513903947650384668338865537937739407580418810403976803178049129923515099795825570563636189299947032415302578277283896284958233328942046542068600122574644700547828870580385339888795328283335323410575874088184755140831481239885786265199452628326227890326827413983522236642956177773873182278654718645367912506127374922371575555798549578195208823925911528852226613689809893315379254870344594826075886978861467205755357479620176621726513890564823568557483361058848275390565925451081322065488954737078057907132231767295295246724863846404785277983453021027713685681431174436307347641397348029293759459341338513323707844635494296537049184378839382240697872322833450947891524278961813370607215476014303444382087598648292267200176424082144096955315531620325454450433943105702687698082009077606976761835581364456963713377463672430747171091205243751656584956526101100064131080274208833366880832768413673837229125167864989435136416914992391590192612094549441816077144731147662811239410969103136830442306204865363362809155997180012235526387264681366274499525665811242792236547599199612232229079296755871091967795479590342374647764074285201500591935601833790038374571607476073494518117450664592107612943017723862284401392133045627846010827706675479818228168350317201367928393273503266449211795944133465586580612978271012374692665080043594484415729411274795487134058777397024783794248019695330682631818654681778930556678565235999464844968032308783264487612593301714909957868143036427498663475183062717344306833807086081370802427781919279308117657268581588907843356073365835253183531545079854773898969822977500548106054365061413624886308168356792056327296621383267958793886094612300697718417186262521957944905760241024385783799907336581412279088239206014310351933049643274475548873376443128910288593738980146875716190531987971567228963539385718394910032068745854481084484078414328225679831570977678074296327967629558987581941352321263559449717885087311851949317723484304113239810216803581550016480559180381958106975117590068363187416453608909966780727363124413473523670593785175564262139070615145182584344016796080087743130079298982304519551129084403213796932168995671912250597434177703737275938200051828730299680094478645030307315409617403903001481141785992219889446287996072373242894089690207923885754594461217337892319516346526630445804120384677321519690255409709590693667723661108504109185112176257680327772709042149831014202225166046599890163901031730513589888230685030074889902208653717296817328919149957883628771423672579219487870933119599464257602659913107465417610258695577075714396865283731895267593540788936929141284939221542496777247839104449899676703568551639718749617059932560969854871377615196268789492101228970990365808619196117253591217028803434377459606591854295061611997832823935273565617715458567865529259415339339998826567317766732174354192726365296947697893784174148698504257577176915075493972650200933655426803292670022037292106067151118174005443585430788695266023901247749000002831709569617009094778212710171123040563861855484436537312994416916759147263523579278912763197467747242504453422919032743161454901736193428842058809859191882003352904488694010480937314977395461158480957883362638760887185881190876561725951248290905517644890853597015461336965648598235827726543201898576951734890650252360621119344693972941533674430326886815729039909225098964230824579442411770933108999951216391925542373600212054158253297402281254347013740775025399312446573376005687212656985824290412568320177551823931137869293002007905171275247996862875552702860145450631861162752907134440430246647360586141218363386677433968730274590423935000732235140211802131078313624489669474594537191632260341872215039300862599206492780290417276268338910712061645641675545663503650224990116645672607684653121091889671076186128466363752134447431117501301638857444869331063042620019017617146432468047127915707667422892810973744505261711700690911930778265936509908591981910939856979470096193968614653285572577001749892306104271272286475374503845804224827484016606966530761746978496985053012270049296219206726016487733315482183250123318985391382446449684667932892320716262082461758750882098387001416739120328730308087503113118060249166093341930303542539054225614000783680831078807468049398148222042537128407414619843394389353398332167216440382673821708137606503017646924520894197788175367048499223031457372855334197983388194561125226775598505274850308041412518733728410946155030189537190629900733076596529152841681197927206982043218562040330634465481747495838832200000920202550021285173905196487279871994503632564613072722661848579656815586729532675405173266515232471230266814955197893548239266886958259004882283313847161142377022421345432863587245276615825165378534154654007874402157458243001806054979297014501365439016842440873886897679527057454732388331791528865132340863486310157825572990886426541392282758562807865460939497729629797081960556976858762831286070582004827802311415719692857829400205556322573650184988219464971260153205561251616476060446701732888051483340023011685206738517432629725813420258749887851283701855613699838042653190812859021664850681663457981184129027092289124092657391860379208543838024750216927692301601772950590598843989081127219769767244492338099970593851423799552738414498343017306014176342327516212479505715334578879593545945301486314839718577545661468558481363431050003528979207964786691251919113403235553004756654284693116404712322697059011115239433272866204173018245123812249286589190453413992612522009631610576026608859084759209572155914940581777084843136645689709152029918445040019850724635470171871921805879104053458575269870999437831060004096547008645036268718615834052396885529046700738771010375500668257480626281250044751334168135775147767202346288351265455365604375774768636693292660799808648331685711427475350734963619448307443221426654084219026406018723661238679624622056154431726821529626611801812384211302941900674816173802660720925859257689785950149336374975400145529489369430408843473129031754864318396463806521609866551622119382497477846546155550650642272466627096460008095191698655908157783728290180778332254687167759983737233652381176763128600817542105650055323460579980379326586633945830643600231843918265408632592805567639635018071527530274475774424780738220019438056349307748285834869059708450826210774284083425042606860735811873798842382365561602958709343991036240381385366655134739040960689915896018997464188692353683694003816777633256195530774887697520710918247019593011357658201451150644896997461665547229169004125681623370521001676400981347752085406967811779411920419232581686245340848190893069200464954546936951297964050577210210579866802314862583444030554464722870762076073940803547252785070140295852596927789829284965013908052694280244064827957985228000845047848325200556059550015214736340609048732349049786182201982639464423731529168513341831215699757640844626640661156852625745357073277909569344530851205007063118645510592393646978663337080551304277503977968922771366850085603705010165980797835410517054201915170635019827314217286482609033244174851968799084355211616725531778689272137413387925859553009996300569720747571940976874913365878274050869073006769514894313729846755516505707056715141194972197757446759855725657157673930904193870665344928705774105355632435829019079066916656680776945794017626330724078299219149179095530901933558057933571247181236885688186426138611569711613762940867630502178855235334496782525983668496546176584502253205368311216739473046307973048664809846960826492618312516300014728268194636232427694487349320064827986764481747097509699025948683990459761815193296415654246367527907285584687041184147543484434998427953327350032476541952786596494696823228174914443561039900295861812714908114712363401097854541370194326284412022938408961479421580969330076925604280193592723444016924728686444281195448293018182867339894020108692839615951094823240608905994304498001667161777015697487963997077557229105780090622145443235039207371262984435181093881719395359887800220644908263155815059057252682348736200845814482708470259199615835276096651013693336854637744754584784704174013594484942371464385325108002203669630518260323348533892096188216053216019037767253503494250475439727272315403739991406921596852752021932547674218240078665259144329687888053062451262209061790426274462418790555074858174036483864381529536041867504098676309459951049383386378751213200505609399789052381861718157578095315187956987391554105620659670195832106850628572067681350060855138075994717937532823611095692058732071813416625173418241369798099272216276777649769855462937874926331618105947890002911246739444460890179485021929376472020860215980702873648896363863817903533720910409342891922809384437058940065166732847531787661822697540462192936886653933447342046462215998316868765730983732391446493267825630771575678664505100259916003843374763157670717828904987947993395375353870402455278013911367495706822389267533117278338433038794263575863476042442879863352837404009343125391658590222233181514077722058744777012909040203183994573294457591555359952053514945568304875739934866819290205331681538478488441094493398887058454958161242274195865501002288116368090007608765247684447939855550605936594709151776309240345954840637627872193984579846218084831801639820075916976913762973641195619578740119604976992434297517091356040240525909654023036025743971899772677601151566339932355706682512009921669789786405406368154011456388050911031509225665138179599425714895556090066745651937945268040764340712944197592272480627796671177283910977807446684616277905740186297421676344916622097358224661748635392164959534304043014231693873859085436166942076667602875594328923362609921998444937845635261576839380410348472497675798458696336855657010690776820083521976496914451806377240847387064297813233929282104758055966151728107173488176304300425211841387838778195681745108566607875841594629008453955472489246195737933337170176652456729453209877558977216185575515930487243569668866030119812592596033292979637634423831914650940834344528748412473548555650514450610437327146814180895966465404329547749474419156066702753392424644385032168387960937768231984290739890865632981532675475227668045716413851993326029339650365148360948375369795250338065062083479361970175142193811926540117585575662036078000822666699228408881506807655184288115838916556382087076849457435791493612149815330084046984732137572558491210454573937040737293938320847199959889785926002273605510539213274932524241603462734692893135086235833370344045608614726979866136369770352578182482384467027295797991972326401154645533111815387660789646381458383166699369065695754852750574430734352090068884349567164608839275213178028330341966479381171982106600667400401263038371308340170160246449124003830648116883610856251439685954323143828084827018623700902622897803728887746652472128301346413729861959933418357227160541228743908435121782521084782566873550719044935955072806058199716248107634718756832885081086738068109183682506728597842550605371801880113894590746081504224690517652814796930978202692417919934447311294578483528718945122625202915244684494173516714160044687206416529386104052857238847039928223879846115614137157669061757591437311702914798735287174506263854357694741995237180191363362221515488368797555157392230913865900438610842758067111104012991164425958865622083494675024645796694431247324307725699331446468838159122705685491823405198944341675174196224767359273227192868600210580648472612348849161680448766588014584362801228926104776197087294350638345075846882513733290435671603800930248141448262480222831525329498339933590544475079561804081493766337984961478587321771246744969943525306288194282483393536916115562094470332267826805813838011346695659830538880557440341056974250579519687387835428936510546161765923774835161587634335504851609134883169951323226019881846821596519139242325990359301438111736909280025292063816908488626921300198999835327178099589537846959043392281194735588157199810118122060984501530073698090980568261923465841220590816352807799598965197383683583532024805885115476901663387490179852112728096264952843527706562738758399150396114797450952753545342437350985958726644750215464528207376130608078899812961046803881253240156404003422898602224748951675293128196579338169695701773887274183463961454947365028495757451332911845759211469972934976854519433497409657623837196047368269746329701851507762801847458453476575030829031362371638219961707460614926955996657501847081046254036534910865760655227474797748203234549610214622158207878253035637536708783682613332153471688089270315155391733796914186512841728999741811484375249779986521900911382952994693175575147391886872944750682835000653065267567022350241188550638945834014336453545982546967383529456315101892268488556608246927946186078542253643424234265867889304794597898895492256706792512220278128828140128930574586288811161363645757242229044122305886066862719938760889951904444403076468460178255757381947774027945887446769834514360352120305733660236918885035482749738269760890313299211523289762098801935874814133182372833768604935834975647440993931554656283808729917568897998253208933621050815115955106962737654001850895030809470787388165771379513705587900604635273903411782983309551987122773016294138272462728529446102972201390702291074924363698604728816326024168334956845580594211535833050854621158357038062433591287908942856671478000029632145984554515696625335366792732956300965154300810659101505321628549361908689183757207420783686251666729008484712610035694254784945228386694747236647521651512279859627465328498529978381331662333415295916161592743337459504099270039155736617155053697891804100179464822126082438938512192098912419587882224766917076884718034237658707767565253459721968465300535180136397837757352268575703708742793585948193267163100556008183816334497603368618293272589160282590025999052344064208452800622466000244316272253690077477478887856628300573483603322391703078231033802264764290808771152761553434559057575123595037275679645519183412319288412001189442398729176725495324965055699788772786428868126575213263896428137751341824504436881461742977731352698850525306161696928930321422460309501188762351492711703089839003089110608443080133488298694515240020015962467586340228019896626849639146262391105939835309102433255569023913322100801780506935091980010511150757450478796130616170530108498388209000993240753746187449309690545282780747223785695930612165030967258051014355999984611906207370886270212594256975343828817491120004959977724898611994254314264940672519879700979538566832648970215259836379047293783975429427534985894922518077337920887995840048277003748210307742242926641346794699583920894305812116986094350097558409471086113829331226258538195613299731693423093686114750865056184403558856211034577674289498134601984262340094543905635438558203674673203135232018168246302860084651374694320807602994760249301897249274913370330229696715490311808352729545508143701528512593417104330964147720518912203989265185948449849630470164645579731063194206083548016238380540437723194063553574962074725729308597014770749412299247893388250425753399543131548006059456995596649555149072736963492591916502781799402487650787707194483525772046624970939828975793096005112350749111491291437276599044015446403373239254304884632421759106131859643227180676721869504988362147166913797620272582632129869050685112480039717211832048375101163374187241765206803017413374818898775043264549811279106342554147491731725628669374139639044407255441654859806506257000737325936247979930070743424676622435319251675592246011792504792492848903791301116667731308000539356775961370496225632947377301720693019476451541793964282533674548045178496016762819866759006056146867411016279303577522058786882985286421697738058289612801257172029582036048882888240574046934964358392786769094138730161897303606988376092138818714843003980840086137902302547833316938137970201461711888130973050030187387847412451868535091988159179658678605494203172151330918031453987472852597269902145382191896818571978885942137650977092310375904120903554583368767802097819889601764098008868624455363342925974859713902942957375555175163758349373837284240487125044117810337216563645160706429868376906927918134662881332644853950114018066711743208978919293034117249765998156529480635753203989601620141320589224391841102769886329122202620321548448415827587983040739350036274453011381100849425752863067862600574862453652335805376479139117006489147657698204296482002660142026958494148098149330822293559094702003579798252308172833513802803648026867289375238945437356679217172941549927501569513781646203060282419993801059283627055524353447572317705148066187791619173761049522517185809105727654882043975432996970745044789505366911147074096175038770699543454799976558508490185340625977590551058326713941083639232493081192800308764837324343233720428082080365462480322040810753660457431454934791777896197805642570819195542921374574287052379169392563587661787643136817219277117892325613669900001564305493568719285990274257683034553730763623712337671316612800382520129021617801690213124222283135252665330315512292649644139833735362105912690357390212241804001247020486904905297499943825303425140322359068446399281628663593854461895006321010088106851727917496942885497960594946397173462988194034319533749794283755195689610055132329702004238806995816093143068735042632684668632799378195645658353652643964750757768725143841499153346811402001408349634342270675881893986127338752101676487566868439340362163562833512007880762991877000557863768342545313793092703800449238348681885770247895074923212284277442233017759548714297119031778404807470062443717430341746688330826741404365480479093933111290350256758597599605019760724050037738588818632101836480905578259317355573923801823027283145289385367694989535621858700900477406727038978012595813865842775452813988257057151245591745589800533367068929633257309916755580734907331551683348986894268137705237932211540533907326357382662603150543780975776370794294598107059519628010066025553633950980727956334347347300722752256144702931193505064421942749118652271335650541910288375161137257702927260107334778275304771648068280057692281216782620805433920841080112424651741969355670611747179601095591817545822137396044710591875215424112175409524220122889100692243172564186213565877206992992015926228644213945724836413558640345713137453192262011751855192086906890448111715135889545023940414827659163501888367481625038622893576831012654999812623315404555523569965760934207329052546134078054855976896374558402253617733435943557492243647416735412746086176602638835399739571461962040762240140780607639003794878616917110758401727622338723768367775224362760709551162709900149465919932840795472856306147101937697887469723517734225301783928838275308617844306401073990269318102711613935527677382791750844643810042577499031688449951122343192555445977699960731060150082188274468588133825276231994673734968135154593821909959203461671079027219144937051957632015901061958705335471206395433665801992350326175298284023940627629847988557479344576097690532202325707427379193150449942698025516952699902806256776754218517798603745089001104341690166412153332513646384009294507245441754068964995266316558667972599478813922917489294082249689295417511455264779879754918450994537305039163852734367788881907786912363591964891540222125558542894974782029072153155667955802609613768558239110664364884678995947160794122329791465853570439372710966991035925778460173907321123648762053335406744868175483580862408816215875676935171210501298571162120557555668073893079783292862494480787046837519414424780859814733205444635476586413945860037681407023066676216514768739742548564884725639935927646902097669802544307788024840783518040895894037524261323118827267007644523641707950682456616009721517229947788521629628451061062201247059027584608611311822301316064360618273192991321456290737008316178217056359047490579421748540524022992709940398511469660579060039851898964559220729171679567265573496452913700572380516552848365372638676974060908799349420477695767256216213623654507300256408193841293675161620852658393684645919011282443128357557866939442040655937771925555454407290940971953152155093953456857879482634385424290393490831712452929374941079214256515162044638970061828730479379389524974234661754729140833445359691708958579131163336280202895736304997581480445368563574398489303686276409490865352568531046383789159574853323157459138862377452936418564154164122354467846648419365997762379486333474775905252879212906768937233259983623017866070537564724342302332980832055726847388544573035725042113120145386605364266474211950844804022448688781546082332673122065987251317306714508584049860589403682589244478313995663312132408742808928720790388077388953395751592968447353659434429390847854525889646467720837552115977195777742019475078125080854140075938110142564084357061914366300802827501110365991228148766303975697615666894265555757701239652240452201713477044161616105920854797409778686890795231518101411791883911364817834742153738166914417280300318288225846293771442098568042184158008557155646258222464188597831810985009355975562750753387644231196360447317431500243250494269145519604511697501859401383183726014694487342228717055137376772994449492295346271925651593509061866829241298022654003327855783795109782968002614041069644739756652149789356818064185080789056548240532468832623011219434037641056284690638125963371118439325046448008544466102078416518419767666034038992017456208846648678416853108802932180924828029784654966007522050578124442545152457895239327814707874050970876474402699420016553662132873722084198300139029105686653638720219684071504746638469722322997394874724414067130238753543739401550270729451942133214403770896417518973096967235443885302334455454173695863241177028914850196905192335710926470551983768388616001152871910886486824483971049688487617117621355969516871749564541634163847095817650894304968018483848865744159479075190419623921632926220425863154714215564888316744064985541838858598778567503979696851114162359884325964787407821698374619863774199135799533742569990783759109646302629750709942967650347714713927303161668426353596866940754090047287749501432988934228123873368570419829265024575128715951520695631514936989964050378112751473023807022864394833172639156658770994991464478104257656317289653066502794290786301237596083001231309537657029456034533145039917707080957982949664983500622352629173649395496708822505034529453375489238516811107714774494812716868561021893256990249601378486581973947979369985106150743094917869119879709045076357737771795624498379430882273534840092668197081837582119555827819872112635982277486956054295357032537494109119678509489109433596929557157787320003687353126766435815602024735585305572251866230653335043075053237673127524213011423207063315243169159991065929326904913147805868798213950354154757128046404469643025557999890664226097351985760095096029048025265083337691866680042319542754677594570877638816297667274257965219569089307293021511201265828459804091618451021045520290259874112461552704199557676721998665857940356039979583636302175220765809740790500510963395541878069607015751420404541411667780004185694560780785377192592676935208811617048407902974193994391751257290750835371923457535503800385886776813822244349607308306115863128169273855374109164279298653428900195842291230415597644367467428557019769916389612832773816911076708982480575750032182606144204581733817803797915764449981632494893776226879563027617159377399097939546461256554883093035407788259665204011540416505228179613602739149724889323956991929366068479362049579509042424608701521854516971267024190455017494513147333210273701229680350765240593802318890116827539683043824383064665310446326237336116248602965000694253741805720601447427668218659668276699449438956022376228547908254940160833893742636759163746141193744529939962194191330427195430828149050363296507262578044567198023619221773874525835584897234219857242257706780636481208270077981304664294991279936465621850012070791742871529191009875739120645635033836858862582665826134433598829458309047782121357818657920347556404048806977143609198496376726116221932246415019166545438973964178587329803560437337184135191308215907310438246587697421991570201976235777516220641544417992293788163824640340519071481774684700604037330528639444733662369344598341704155736296090655681376565735541952972479100273792936922101183630250578662430572057821049980986373272803301519332113498655338786956297015043467105314205897578213905110603441788178252187241888288112989840327973849146681464919850810974145035309775415180316240881148653467223274376646143603473973025342807915455594026765592753472632051161895660970506273052090180449519941285043233619153622847525631440635111999101226150491751087704683671441194752734272342357726511074199883872104726941786297561902320115290727345547894759709041514852733924455505982022410107552872726485627939662922360119526533379034229472822275673184657558823528352559151493867912002756415109551331901909532736479346873360503460940733810140762039221865257323821138442035103538083798492736859106613134959783312640564634454583173550725763955304736246651655162048353421545785940384349233428774775716342155272429322518934765891536657139193626939916923840783536689926446353586592653150982163994059729469519352995829670537723775771464562743815946661753842948765272354468246020101587300479017857085238381010005597871552446165177482815040868344652528545182853500695821515451407633665519559065818343425657169547583586308711111994983807510757542508597407214747242968092366030662563013191144973964098044233755703657499314855405826484687383230830026031838659700938605965763886742996968571612125964603187090794929123058143802900078450468156308553920895604076242041722915331098370900191462369039448690303139933498417132449693492324444091966489108396467218480721914901895655002221948151120770764032362762424462050208884358877067607062855452034314033286748592927802039618960805947057351211500804397187417276272599416968010163646417818276592644563993436031973119935232163904080429443322102884704670284026207331556027698964243152234803269313865388927376455258465022096060929865473366045633404316377164212420614561588151535006926047242699894167417138637133356808715026250502226513779020691773834098547297545683985111916229109650123338658211034422176439695935314874851714313696452870303930286307065904224966807130607712136043316678341364783891493866490392426541628462927897675642268532266764452822896441351551523829731592372245372726537331223054652644017744133401190642661028871051821442620447303225796206495405081552523710233771318897154126676572680923107284795338139835522627624227535246585427075348844529553316044204722263782723779150970768161315625986501821909577542764747882996534954017105063169918300739347916400979662581700903944454471618125357883741636950382267031496721841644087949691679353595584554530567292836814472464815378429182123436363846493055963134454651424270516223832036260778033866379884837386109578741142577246021796424000220238225280649902330080276023055654670400138351926692665851982581747338588892592882312531807441141799254276272787218281438686849614331497580013199147178417728430661350903208889059239690759819007114628363905594138547940354375136134674821560151081382082792162342331221620007207273342498924932511569736166585046262808049950450504986825286413196168623629092521948409523591131502104943972309698746879944784794030293822011239646031199827256272043647773236983163938378228097476392882160792270746372641782611059941265388272203393238048262385447478714180821332612446369089553796940748921311536404906639911774307575153716150127877606269643574023012392703093766089043516357765472072164699811979231131714679997661798077077301858022728789053370547663409742980839208473560368200375941481422687458450026237070437595043014983689743118559930461116734885559868549150371003508917584741049344802247581994056773929990862251917591241379657046606080158774114957749895913433410658846683415562535200711873671759656666801702594081142947257288012964830300720846225104484779627471248922129663929278628809972082499654969646925916795298766068056874640723958575589578981378974847987623737006128199805849417523531901852141557524269238647897578716152736974017097913193428047174608488685274587486857262906559573567313419804102807690851066727573081075905882417498967484271931494244081293928361795538107022666818916568946532758795318618095071481493302913831896113266169193657450812241198818537290043124860478748396268159759711803835235914546201361856304956949266586249041248846679855672242583555586416448731179309263929931965351900274079450351586929640227044546390213337601622735328797554771587450981213645704176855486456623105519940394624746120920184914396204129517913342963122990047487020880361052212847226581057514470808616387087899198138141908397233940658624280996336966844980603440497973894208083503097830958432246452737807933884508782142440931584733600617526586659260526163483758132672364666107064753533114799200155086943866946778235584917298081388034547379947454851500587071853245276337020577959891709665267117195731282831535442858226368038094751332053434977509511946440974259644978071752948918206371403308257340799688233126739973290915909643743636937631156262943191526574128640193447770315945946846059338639031586023209637299996949357280148468986450160061866336186031291448280783924878616908892793789447010695673664715737757627036782360457193290531632022300227715262910208221608584741965447741838700725897944725023435755800058239833169637766215509132909105330773487168890215102308149546901347409648761360431286946148759731809052714165133864734656602579119077651676889493228858651889629608912621708852902186762265427446940060105456527180209751716015576616985608376441676034758607661985722687517520801656431150226084791638462350661863979152330352257956217119658430242393219801217172996917535025717926358473951395282023967331934161450370201024625392382708544479815321323629940704414057893527951664526399195209451699146176726293378743574113402362500904981649050965521770719712021443489060072037536523603056938786134723513654730199892136122209121108098129368111841126509705834331491573535198091305351327738317387932310653273243378869412058704123871675892810989958600246990912327996287484607885015250763661295122032328076354783332997095598936987927447306422435385952759248114836418037048231251303475720885607013147467348938534014278978891869558793078625571038389190591396387599989311544353650207837473726622089747532156187561511355596715102200920663100983260693054877913628478649709122259318231603562019328121342776004125593412513918421416860855556233484195955851329670341797685694233258069273755043572029185482859732430368568226606047520567777867951037196869726647069228381574387786967898975482402895126666479760787369858153279509717165073162220169478160189616919204556334352309552809000923765337888400619003981806226329820905097178238992302400467446268953232067085503672780934509290275833686246725831892366814832300020803776207192651335604273334170750889035959715463080157310409935337146771691719548268510717087825756324356099292722096730964707270762576679969105183873405749150679856380340726535218352676111460962211074390908814090230386221706835619843888024355675402926437941412684093802697210040864721997995253892934379145657192323152612671151493212908278994627304898758885809035500365329893557565899872188826449331140630388681116139142695150735798512626567929429854475567321931812682658093168398410723222564355827580739748298820619741478220006795735112136884309946498974109753303199592679590643915433813572765183831203089097807125527989252555800636755194709636796339406025036279201511474271789767134457095197354086306570651960048220917999246304001366461176765145910710834729599600793951062647892639816820412064700654943882059814182152733715810877870308316244396227580385658325613889811495177449193386188340100452723341717763133517411204102174084507939809255292147916955583127155166433633013559402897749355451851367326907372096443394362262963210964825481722927976725974670367984828235224209011598904554058945945169675873191553487662152779700829659021117727873498076527550953455722551530533856970343570697809083693998713480917183798783822059870801637181222655320794966023002236206006792594278693113693339454509577789581106818083412184453870731548185945767619871364276191748057148297273364742919719418567531793392757870066290037431702644350377586496834378564494933971399399296461943910888566196683055436627512871909442970160709880000130137317330320218737100499754641952619569612322341614585587711086099946488249280708054094401169100357959660962559971111963175869525127810023844001020165621258424110526745772628108617119135471679730550202450593359625619781981458288211432207766511110745513857909913938791855609771432001789087209642285222525480247415400024660424250701020291032513328393591996542685710647353109563210274652809070270600270941971051267037901955095648091693323608671611214312424140167418893889589239394546013905207976775354735043046605593348812434921389660232355548043914381980602944544674218043991142790034822331230463399753114932600472619903822799238870058113386659529964941628926801846188851666643472727482931026577634346751017197104628999464112714106343186899445504139920430559889750600525806392757497707850283003157477931584918391239427463214467536362843803454252753038422299894324878475717500871688243114586716011936241103113480428290663197392995075195006673809179629245051284055701015769481403278049748695698146854117436928816309277389464982153093821854504926228651530344222699306499921163894258101229405355347831549756002965598048298836363120419373763179911889641295535938780666098240298408049220534748635643733140501554178808479131732251114825766946799480573987842233138582902981179023136537905196750772340766861440366013557231603616858134001909312713768658469984723349335480923358919181171384412681019266332123260807741891841346457840157126656642385722063266883575407746093050451612434073121907957775388537424823651415692684762822237108960600447872332722869008015234297439585720922871172860739324472852952103331518496531660280915910875149406774279855346414394109361708032334856362472005933873300042445829694651081415129466148467376603966329317302817091781980058527425414722843522126273611437519290155849077241395091275978553371134736906764334152392206749417222824251502208335230056444773082528023054732782322078702928531106201611596674655202559880322127091503108611793858368464924640976835203778871578881893542888087440449262355711109416937258998956201757705354842169137669165437958051052306277610449784946973256981997673878381704466550447071949146240435206373486803346156229145088838409318767379225573839904432324127279040920559917965858193171292633534967767119101272082882335069973695011207673959828824446690380134394466983599532985993386924344106482399593210678318261130506660951776578208989322388557591568127892151183587195367190103161158587899608515617842024183071227377581307104074300011160071455297632535901184976080915546778201634175599299376218405379282120171823219787876071300323365708435675947597132695621561599238270757616899693561081092850150046768356539054707210139102407733960102254161104742086031652725766845059752620374311299221502398641187021744819156305426078411876096715521147466514477294018457485438253519363626477397181407645295079401619426163640203924581170346984809865617625948650496712736776748993622034643166504377174096002034438865259039195982750311434160834645170431597938211208835944640101761327268766630000227960675463110660965389339743388406325475059937264254152697837734192849663408497662718093968644749853177129274944045004637936306429913595380301620345432328597474175464510177761188125110550464444472828828663304578907534732160927588000891566548166211216607426942650968855868054015168625076308856302688453905377385060200726340691650759135799893392627209761965351437207583124378778201935645723216707253216699810850944714580606487970280349361001575826523414471112862605071507854025834232155892042360783660746835958709069303827397496172513603676056354485148211567859735732338246860307021790223718511140261211855507019748335690473802920029413972598328105757681222000517101387786117495365897522077849639427672401220541510027248467361705382631320776079563117609727396346488499934656123490180925894485029544249532267134534386812682217894409900074288071797009768423926863081655814024880432506260203706724954417249570878036729326640364160710306585912932286911515908886881882316010190517762228603570550199982705617442944628322251535264826460877416160780609750333315098453710331628784520299150922280035104476544324606655423863768849266602726362126126287379517123706497024688777492266511728797056998276003419981522521995919482713487382177611652161822285959794431251910404138479193880005788258105216572939518114433941752773425408429170287372721171948492204647313374339450145039147664124594395386988337647356361318986688014797171120070501687555268101986789526060927987269002935190484921003557598883192534779767807169498691733971655143870955089457643473365955225755375553033107414398348007258815886426031341391444839476398688773756032205103669656866797660917001575240157011194842622571277020358821959062924784929078888244079398621642709604147014426521770466186565560227041137588905032010966438556616437748121201138631596434950960564706878602351508241165699942647182730867277222020840277848079999633775244520668310531756339019693233267015194761402277149559023910047223801423416800890959423535226941155583599525682888928867252352900964886641685522913095464188993679231558192911168979476394160072531640655730634282030905798836498670435348557397760557892435454114344163711197502114450986813656250516617693234169987439755227683625714490251940475930917394237851484627489692550020605563391732793275445051805764918252951780272039733362437307259371275727004901369139521295106259585532000519888725046708098148062814122443477325591266722853822550487383348039197496155999418663480971057478369105041335105365540565455807834432398040983824770690693369588182035488784590794169853122773651245868520514822946188047398788730428709693844479828268926842025027741515928046925492572702143614123031638085592661096631315302021814353626653419105871715609040293672114669206378421136490617271634650022252960046688484232556215925911458338402581409100566382699120876827971694125734796359579955310324662183755026679999307236349057995226666952453555479762671532875209372718900080001673215368290826920546739690089767871521451360494183471699293613671862304338256251522959691195876597290617541353158110425332088231934212238450158033290675159734883689046414828235685292366817827533259804331959693867343850888475184507439800382945347952999579240807980688379397750209376574261919840888976885433276873030394583696092157446158908087959282991911945552720687585179597701825919685157068516589457884149497099987950336331574901532288855077959440715284291235025028658537748008554896253180142374918505917174839339015197869681483176495527300081039617143536774564353484552485538575884672317140542524924312710100890351848047483904823206472176523050136824756035872569593269148894948382994112436501270025848852627029126770679090651254817990936635993176233551286079703457427928721929669236056681391327864798499066770766705953625633304227101858039075186998345702855915676900461423146127932912981920597354582323552825049537224520963982261860306132390363080015701927635827160895482629924879398472725959336088479216333706557081871255213316436796163425096389220860666213620993762396554970535548077790674808144028358309858712749868414840354150560745795280018831234355929813738796917449496797614922096852248410972965382698946297504756013237939127938598078186940234001677094024807902443487756427998805644108785128377821550713363615964662807292904542527557171402042819646902850853729734287254575767351909100843816918076148368099010015047700774685554884445893847169743002297628053300350310024438041810574892211731509219039568825593720774555173579179408597301051709007246538002243857132007099627141323205154258869915178613075459684861728850958136730967405292705827338172224581580486133149288564455794760455469362598108747854139983904857009643345347822837378419145775636172087911919965513864026442432628701495343086475511258319272131412918826307453076521042478310554545373866901468383125047867227895514951149643462320235938131325456806669081315672421420713799183613185457157809746857593040953973949574223122243922022757647489588239158468956968819865102057549272522774383538547577519597166264291347123629821184587234591693626484431040135018423839251721691353096771816539854648468087455938713490083173702692781360839163654697439090413136570060663198665210335351271862306236921331343452446129562345105872946013118921100722414481380495333453409433659823325380942541909940699054641955586294853120573623232416041148048259016424173973336796552647956331508997858303126662045585645921446158465522430479104407228704840772977029381619677223211497276362930569570122194553816374986331869005514164099738789845387812193769501176292732230661854504421164583827316405035161179644119614494754201151696602566841984652134313682608532020939184263740342144605327340601379949824137044601745345558201054946408715113468373041635247524730051561780292773156237533723371243354300455105999489707020616855026248634812912437622535213956061821349694924497567438753409629916001483138032623992020004900257271173575761480788891568444461018260204638467042399794547960217630991183611188101088600408098715053056057664031785577975434211131411805815921939267059850924948237446517663955617664541948523997202024212846008658448063115099352556306438287586333406116267117596946989942318730233110885560717761691413600176726674183917808416129338865804901266300013272605653343775942951006843907794346802541613601136734844875131136531378107757173347480258562475344583792847548730230716363507193692166509275031357769365756873772570260113262251770278528537056207181539507746080619660528581570889579945649258516339422292412113578263054274292908337997314338061278062627954911414765489594869314418227224851137858943470638344668676531436511778476471796232572896203511984769478431924252719383124502740516731022993588346346103808819710095228002622294179734607331075090649501610962134868243692344118239573117888604173418296822169859228493186665427377945162048461273832404778588159609598208130488601463426977185433836204121110280192207066285300606417256503097992227086678842948953369229071320636199536207135050252106373909333690867568315256936974658301690947274589938697093780081680892704459837067524381575340953016493713969481236346441918371215320378670449979770452585831155867198107925506322870336735516933556398908301972745865597458977735929539492184611877360213159832441692169765536942737558192362653576952322416737207824137144286821397432286039946334827268954409137341184896109295140975015793180589249353625372187574506127834930770161010199560812193786784114024530544073035298937983335388378719585179910346157935736717982044498928056095093963170901589790912917409320160885023450795973972972309660799125429329313277276724521595512338435627906565199864810193339425978930800394560322810463805320063796715580820933568024607722967978107270534852131292138621780963756310309035835960468108903166350726160319915996277705786210571108906555781483896699198173566873913015295455266069413462741478608610944077066381415339461801084362456728838843829964159775616765391756624557532146799983803358169995379489300221338416031639696673342700983800587945045870802853284706481058363726012013589022210169780490679268306459321194738750145146935187091187345531210975846220303664204051215304946362242954459819143863378104284071519469663276229194013446274609179847294108311045820052212868448167598415558734896700239379428518877463503900398886018355944029482547394039890250667404581972536361392899082282885552898074653071443959037523258884184688383546189123037373713896401588929931841528829900272528080018804825717199088637538827145435442632791004419545833693732571852531188835333578354284931581022304136355567296566557663185041524603428816505097313257222410341252212237869487220884728449459520559143627563864957146157560460753813596133809155680841448979880052885511768033291602500840180730766064182111191958115635712301399898019084179271234590572548643403521550100677678862202183883117272510145058077242416813883006703763830178130797953093337734992171261515943834656066265691696638623975494738253331933028813243131153714401544961886813116776274040932249967480804005153546241747996419315357765621978688604140888917283829886739649530387352607556592405921328803597097930108029908385796274048055720934174871279862825246043319798730798434805222438063926727952550085501727464770512428741343514241344175610965321909762368880794203198076295669447766535584351914057840567546658958165801891895722596053268763880390522700941282515159528434818089627227577011800458186296972606268642383865209610106748124114172688893944595652819716949863232069688977101002268078106436605701547169564770683682818966868050043271045997153814203928151275303826541869094831801358550383413102180414693895687315950942657509245605105761136889497001017732737846580044771950424470895664076196913889969502921297060356343995539581666798702149065971405004318452596360181018109059381328141617079697686180529402591447159302962154369583860365934524003037828325552919410255971567369574733409822202482920057447665066542706932496240182236256193370513235104953302505261631251101228438532622466584136219200065129064010398328932429534117320434961611549766192648764473966074970529499439611174172149724310975643840264294943522900612395812922161747607143252118520327784731093756343200164495379771456429837305193334669589159686699163619810573087687049555941810051141865095863674606890013972786366597673519018310036329122721181444798047653794221692511696587294333370919528368863774910568970134678865994354197745039208775384318198693834844507064048599712071617878444278621271565423927241627429518874396133510251887562248934267316865745653853092479501755528926382132096284018244714504374726436027489209027782142674935316784767349938259613693756362936339520151037623590000824399777666999516700473655704095495176413060472890009904469813691446511648563263107231400627879894014676333967906784057931418227672017345906234978211561607750562007486555251195612299883798740230884839168593616715519302748190284576237100429107805474210643375354647628133793295705363643742078389385598755660384748453709959072137143528248186703136150964516954786495980198287281068742629234246757346376037838140881117358733347169286620895880226381392308634207762038124122860374175216634153309881531661388495036443136417389971368414778502650387076133154116420487341395203568515947828986511592151541609102930207249877752038133434046089953994085446829113380000400517224865759060866819763349522092444166164822650042453207736405613291862303180248445196940267219338311595187318136473862770939592192242742346283199921566094246490821536190991746974523926396095050088637189883682876550514445470085414706877906979780108191325579995289429797057251165093516912882174176496120749491617699332192960134239814398926012731611574019507621069342133760481336848739410841949177926394023176064213451125674878570539020074382927838537479139203372830943983817381498132552356916818791012929142387595397988428864297168951329501341534273312137797323560773642433233748547655833753262679195992376669333908106206391930781828434855808330661268549843208993288415585582599185559157766580875743188086703259906545818807504302951904862981890799854234650908611347048029657549210939372145539072615599582270258678608230776528162942224169483996420584117758695193459735700627374099477092796416234897717616171186583092830791169061550457118220159495465295107122877112560543299248060576363027446101857686675932215882313184725664582913324238748134344385107600681513062361354952182030326412007562849019653372416130791820382650696444300660638143887550972917196522905348811091140650013137873456307331777134493119795451673009422680804972978126919076967858933198679596738419617220674987928055582551756411907406229370171921131388121944320690943935821848757336908551658951176042255102796807925426308973447658373549695170622004256826540345527159635898212176641636696987171789144673034096975574885377164576486282616721024274946479194803861064920920186201093653841968775453282459006151253438696439651709391525460390974974166912971497324338146729145790065301183536121295838278121690431926891361722024708363373225159457564669567632699821728551202043709435419563047314356677510019118545676997189396077059238252012027044220902692770952783941132718821782476980610614493791639943891003449554049324385665530909518643532053995527342573954804715765462460952082698966831609916911375991224618707588094219165481198339066421213374793200932463149365339243679109383629286101695849934793363136416481505139962162716903495267772069473375932331800971292733645771617825483685090731240946500520139505705003901264264295585546332297923792824963819854984365747757537275377170497862940314753833944830436969861054640168819023585682268154707179342017922006862764905590988599282723969366589119707181513201809421657985975453927343198499406331307123945717044142524284311652529467547378508029504138492754461526921950535774941150990491812124688573683220708722458893665936279409155808294505894605581083554853204376266936379488720306812502563093867974072860338759352755650619784132602270895472298087772928205112593159602699029930006874847584011437253630622751256031889731473242768328432452495533813826178910209532019705447924829985693605872030105925077600955789099729039877278030512760704755841773440654140468022757738305108522629339097667617553815298726711447962720766236743220696029924998642633162489438897871550760930561326000523159203481976508177979991574578634022374376997158083332398661939568990433172395723565905211435602245839065031831262368173234509913725238611070930788102434650245027891723608730523694330871825563317221477338513766423995960032730944247464701737453303766062596446531881083794157499179314397505469550684201098564841877453166598848577221148741332445067091811590552978922672637544915728227233817602860682546124279799892896444950843452111454883544312955470911113570514687603884087949974054956320966646520963811091235880678984597146156984883688216961478413328200978046793862272938564575988685029999833045885075422354271402491010358044608938576898336590750513933312105964462822234936843087835553096524606482847154649360417804398119828590312141501300738401059715507623754512656605340912018558128071418757796550126999618270804691348596666717591479595466815520770429253565316103352536290177396572071847069535844420539591276142844641032017825077513332627062308713544490603589911625309012292347915726975635274461738351678558597564031077235284299725723314840033959809907563469142497831774626781362040971560909009234091486726377262653214170812123065706793009296386291463989187802598636930501698743323970322664854526112648082919891892338255611239855182760450636020973565678003351380079496067400526733342009010147352453390661619004377305963659722496807450997052341999579117593947384936695387861924369635014653866350857848034814453262577377628936956093234578989045297489956949757762527757611662360294451807069676963702260599708023554215691717314853950660728467979199947204443855531111757525324310210028471438395276476568274316179028858082618987488219493914408837965721950599435485145533359800736285539445868417746090623857692345822307307685719638712572356340976965435472326233198954234861889360055453016231697588140730626047596266183491391501928502923355351815338860962006978377388180066884196058724089746423354398547179036460309498222428729542029406579171759365875285662426544651426334833693965256501357835425224100208656298682132611894721543354230397096934036003184404306836865128892548625673601871512802421012951802394894399643230436850876584786998847296372151664701947942762992206787633632660862564019032844689507431889806755985961509360784276365476306914813933270108356594917992988586454630586059834153122962242066808246269298822510851512176029112654697716942733621053617368311103692103507388184819753156299170641544771743946979111412498966878102670458026614655341683602551496863543051920002125781913845672121609827272075016501011903542365853586329003228345412229244186597515586293383234011573204638771754797903674169833289011345097966308130480872523443081284799038708795807615661193403328151571784890255662629957509534348130808803305961282402390566692200717031622247972027406833454539263070497690408141138923681141896231035256132052383466422769980333943271213089234875370841081037011479643418542834457628646975638401277524751401473982208993911103975092900996038834554595510054397414361948104941489762028557154251469128064507876942444713669765750918368424138299564426099053151301103714576227244701264604047852159011227405650652528596018162202791076325246406868103268524948434384780078773869019183136294856298297968302618760695893509269511775974886287105554635527646562043480520822456014043662639220291556655462034996664326960040653858890761082377270951551266034656781126878775625552312450492725087655247116574150385241650054439625418563564189667823267820144127576504559363649740055019887238088826283184090613859879220629583665142386766965693449154642367023302594161344660779831926079576759196819510073194805504408331360142750990504999342512969414559504698311413815528544757033616124686089745646733708829175739839185058304388441331018937853913935425357870813822500462107036788930727849365696746661104315259048363646719197894917606561216158739141787244104003357011996062585172368853617859507938103075438594501841353394231511822842344600573016957365864833662027432548334601470026286751851921257985554626113973706966719489843965881028596939733596349986475302860766276589509038182066370204550202324112031191795024549940367355052901727266088988507953261916469274049307397203235497344976194281147839244554753046108875623167910671823386904617947881874013397118389713247537056009660460839632937055360865347872986680486827143464823870735145594058213927334013652218039548414490439143898709584295043275204456639777463020249766770545492405025653222847513638860147937041569690923055263986108923108725806513187067588555932341875168014156716353080181131296009862228252891343568166713168985330392297761447058072328429100612165178194628990479614009932251872522618581179373931790521195031116546404422076596189017667870200202147182889544562106663686958957510883098283043022386216253936398418134175908278650154208867208264385710504738849407960282518760806206850331972731361647071154542705137986754542153870524469054239646066041713259674977421897085683161011579047701217598763655519392890972283258358402699049745276836626257803078102373280238468524960486202560573436804058750594361487874792080713574999848218219717657974607590820792013916208077688189155305579941903207579159298325441829201426604164970505291285033453969374560061579715456450262499037099572657675915482567450942415762016540104723078360948879404418116276280869250445040141953930688803137551118931551836290896074885772529499261892617858998544633169521342783867378999551894940303103669909283765578042035422511231385921791052345912574809169008699851958030302228186931155520889784413083266187856381754315766409947963387197432119425879060795231291302413544574964654532649209787898763608516467942492211943156812071324777792005375416340509905997377368269446842793992149303466704975501269226883762731236315427595360427639505085333282669111143831998917061367510916282721311562873321686186298992399619326288971481285063514289204304326467031211685534695151849550452463334259443615028987883887839943453877769508321497650197133020712688743665647422107411262825654661204922113917132463942848612556248073224229086674204731301453358567920004349306907684644546350942587517614860015639249260175252328398481391429791903908458863582888079961302366396435456136340448868372810509268374440016916195824629022051944209256087595410890641244732902697291432568692858693720807756364484430805654294707712674585004575336027938638243412015531168111728548739397377168812640674564451067298828385439452157622758050804539154563313990236100482725106533731996107399387054306845761607181286400993577104410269870193355899149561265279131338869635946366032051128034413579523275410519193587051140406680432841217177848549894503581865223191239008676114356957103891861940441684242603023863086421399562339550210653728817508691913815002533632450274777264243010544601687588591083932873323041712565271125218918099557452717307899184853419570404060942617368009953800946988561405379024545695511993842062157105026440703619583299448371926179072122671582797825770877168509483409702959592209666982041147663981921336502659791050351263375651611367834851583389278766759635894434150564581350530219211000589012222490724577913631586337707325173034650160247975069355471525988942075857616126978346106617089311267277398164120574614721444953871190573422558696627009382522630457771008004450078319696463834491298408906948198902607963633049181315393610498022481162821513089762036470429440344719887816928775704365536097154816969067459456469236032013538277888345479994759993143144312505817962725962810233229434736161028949217059547851530383925181147010347394121687542679137682209349611017852986672475747841914999551213421272506766247670761264436915201962241494973862288259099003172059384755305924789697816217800169950575799375015055781482914193021145887158165329202049305589674860628961002312797374898907171895231446996294673738065384499576618671216136647618859132576352794713648071121054718656608185234847148336795874414908158304529677019663324790180375310305510591421539513516806942057676368707223543311345996632018136503306442563040587488376896684114891176936421467215377913110247471079980124960283067767762150188274173084017473227186361105482356636304350400979735114261411066293921047786679886537063058970089819387813178196460160813009726215399134800074666172999536862391057228688635057259394060844756069003981198627076774111397458279945371026590695156600836009196458688235502934316636507962623563762920889954772802965684319300853721110739948098154287673649356138993242687816663523046351037010206982264394373556540383135151321142179448560953014780348988650753460015188543423641316610420861688146111840893228206509319742024705648437280476649288715237884176093914059802810749103874156215095475607795061745372777675293259443636211346170120696659172455903244595798984198579884812848330489072420478947653807465923593873790298847091223804714112886528474737004691843149920964501598187836760035430119237565300186273181776847640607818386068534550917036633470029495733304006940843635589727409803554035439903271503003426827948731806794538398855303160988839672115287226175466899905926852149222472492282402926488549490749933882903735474267872028209757540266842073070601928151476177966613333046957891829330709195017835493942572767361043159532080863231894815456288937267963181952287180859690617507688700284706822732538246074843688093601020466246156779696125263665084161377902400101673556406407442826485164009805870655860830037718751140682070599970580495745795092552343804504424878430673182752544215416863701290367833831256147963094510498749578034592972740271747569546172681894369525019131153088245061207847883938514860497615449863032073681571745648133657176796094099274486159933193638317932116940346875995762732701158985283398879868135941820599663857294321312174232491244648913170236059850839984213730327205834973769342517773143094152892865754376982221061463236281810568307393118374566471236467570343465769627043937355820125325195664098113647948254684544068581713158295801838349473045360795557430516588480707896057868665421287329326937238003760949867542647809571585663942667379353486689280350259597353605543825218473021505582776000312654725986159255513607702851511323383459293920740262389997674028833301985987637884056144067538505523530718462580915999504453678966684975963918508655304200426811839619099533423017612500593611031286047573310714164212782591041383861536233545028037637151079120407370543026976601915811148362285230377492204675196290214081038088853964893387093044292566036589265119387261231701410282216030463552992779187429756064236415494688601773820582246959745499592215524243347576678465379294593239281537771705349029328025246258194036520667552724680249101334669036007816764093245999058549017428904227137554800363274227218841889264902565040069533013059899248129543650814322038385126453632588124945290331056526688009145886210585447236567333346986457173477966266823884273086960782832564209551757255962290956738653405564763914805117285613452025226605613736735266620313378180133398206445444270793127290409963560381517214396309930918530520932619500994475350132395105976941817064116227465332619703605895583157063751826764853011611305394213919620795014421261206774506189240803596273482291750034390099858358678225625518372852460743457399958500518357548874976956248967340063147435965142887425472512364686090789220548973383467463626023916842830691846578004586190962672720457790883244827368656983454952115649739192311517517469684190766468625400710822326015642999942967157204021415685091686927832899370110485521927457432699895821132931229800890123158712857066072377031410941284711242367101895786810052035682645207580934178756554527061748432821785337843438666615659532840119929169328238869329787581567084053572137838956991632337093918998569963120150785087427724820311004637520372218059220928782066825500818191909286749290255142748919814438547311431399062268399310553309047209609790490010435707374708184293416494962594515783019963046282024216679410768726711211584911713258938634401623907143744063656262997589311943402764649953680490690048146855922998817190368373312354427253734453937174836549576976098362613704475693250565152633980577308154913259239627971335803483944040964279053035844605577240379556173848504447257408121443948071842080900652249374856494251831924990967841598080986336565411976577762117503799395542013774521491638226490312647524637039787801588980515839577620140882766158248685550508571028687760773150840778663220971722492297801243306765563320166226174881162789683788304354679514293366524133214721244396013539583962259085183072344449002102142784041078256089880352200981146310612906664334607009751326084269892074540577567763426301711612052744581826831932863057080111648775391242476864658614211738314857376050981460939259164591638762346721559127724418000421238961072232475333763562817600648366392969208669212481567296064475576988764190828158412740316230524159653485464083000778451564288948810721803633360390758319810315020970800774370389803257269469799457755034913670048944980035540981457604282299801961668495712753424008057235327018736223196020665801495228204965813630292114149180075732759794140982090566850664063997247295123300579479180388598082969638995157225020887104656611063406977909036153830615464862761852085887492793309546838125133979985900029640546578259446189851706947232432304448585431370347853848634121373909619842307517340915226761070053571864084917804640782304826248120100532663535710233973362502286911413510991190065760256827019469164592854319244874385981129585569129303295445348397797539464831426965840109110411253129469086202246846451923866640245890772569246718984338844433061729345863969666768722916206565148232978974031242898611125456432193725687569445018489270014758674756849703838338537552699467440735106533794265031678100716954408984160609794701535653225093772531680090542233420083233524050534137051939713907918736146471862469507063642733644913526278725279569486422834696668692155049438511024873245932654421165316406895662661924468741184824010089914797487981388448324939479459859880064376078179780568011614003447686118709918724114511098872243348452539309606235456370751048816746737402883373010456180350224347026123911347160204739359323485659567326001936991584665657926957482651183187174769351102247659760243436472969693935547016750690674711689394249669238762254449026352076577710396675467740734310147737741935611525929073228292618192754933194355407750692151964520290984960752343707938895789785160496923544382877357455157847664501280716932942203683939268831274214768870778026040554850576004933756247044561229997901109439300105812776627004267784892144683628385289072117984996140908950893098025801623724341161277943882358139514277719599705728647298663758888260904299643219997204810990278616568480341715821908246148701427229510063597081669530588211676221216582368505369117466156671852696624569813643512853532339434718947302263615203958276291438626667224762725326555906750019337879771655179433342466688657388612459438939709263901872816357155423351317136325314398140939894445770361054864313292673489889517358375410104203349708676893591163780174656975765684422270460143641109893432203123083862388560272653782171809790031362849436215006969008185401851262714927831474609923222904686578226808583349688507065091348443906778268002706668606997176791832958517695804038901366190080631194696933061288187107042183585105106132907796630565595694226081870558893419402291622563277301099625091775605898367437339295363407935868730558390049053322556888742908269893628886527662996582161587885294582681303496802993559135289590007791901902900833013437196183035281027400054134364097939908419043759950829616001012590831820036161995445402380212130376136100776004524757473360378528537358663915656938219704905120515000946079918278637862714118879326881317607997994629285281543023791090422421233444489576948148078399584140701217339310172607451253325286019182955583374020491387050699576117298328078290547798542474219959600974361414874640507092762642278404815335549822057906022702019498834435673878851008044527880651139457719567425116826492870238218921811224455843662717973104586797771640204092768169092570680598168077233086415803172432096150087249585489736438969243501397630274036253593607000082381828060539258046987533725944026188088648182111270492001776841195981419216520409967985981485471552510203295449223118253660742730122391899230736103460061976683976392655147581540958843566487316035412587818715330227373054511163702114054403269850439317349274516564482273323449523869988758303839924394477774481893348416797870601865706108964456590565696526145922406529926458671731395609454722296722767841009326214476167039121522501256475984751558637576072804051083039252925489654893802784148925510709558369106634009324100404077725776569080949020693316103452669000404519210980193526930717155161104068921110100094212299720954264409995784301755332751111619570556714621177771903552487216060196650029976604472004370624186580298785302088459990754551931085947343479741197440849317261453474754105949872355273365432701426348581102667448108235735850841507583246611275995082566047789535883848172987895657458611650299202287590159218789852039234046300226223725263601276649297808746360661334516155345105825877836005927281370942578957042875743982252529267895613761573803484708829801164980932756046584390114154207498345942814983050723585646545026888152840842616617543261605066326057495314437005059612044696336404521091035981002496258284572506010545712692346207507532763298517384400858744715365933498595234694409288340722703826892324351217871871666017952732632598045345404184607238255163513557845717791249178530995556433107388203489501439322525273827410322627237485649182452972930581611543011641850677138368929130210422244400542924797618690092364283795025675893277488094522087419729431105118622442403629930136330182516625172710781991549891421464564176767664084760741099151217255487189684549444190429206480120705865027259208719515396696124208190069949363874625871409999987636052376773631553928361087158745862467898720480536037464164869706974345295772887955763585485423950189748893590127233844031528765807662625565778176642731459754949130863616883360138214070573007493262402663055673567394243652447516595357963791175400931249780639673115992696037373724435163658010592670278845843583881729858635054901221835571547481247401652113459221793493522272164165757758037248003831282952686609505382683243729038865749659408315750385699015947892924963165033772507671953091680911540746527169087107195934776002944449449432970332574785463293699134208134352185168628263003215280288951615154411078072564511947183640032717147658279595038081916642045036820279872746288423491146317700113584534851024720241685938845669736683663140393403761061969428040445448047828137527674811045225690253127175565889680378825973817268072674015019129337747093033756016863719228708380567571518053370842735532348218211175864393447466629913786798056605974154914146977179694408361888081665660999610923949494303045584869478577319595162574360656202744943462940189951359584381937450248314309892982084872067018651161359825266200952990986551931132695859398235005837435546934784184890504689124960498010556941943754485486782825725936030526498144132355317207150350555836811929154359282337532235992551305690583508264031405391282915688924918483360247024806044452945715410295432951239267307009274596171327323133902892940015255465704832359571099955527619748432813756408558884753078919976378072311617490335857168532218148317473887394736223442892698126146618753724881946747330128082846995635857521907309594003235879636145805502054727685085786336345278418839456320215253925829025821298949485649767513069888634835573231755595584357714806531190891788315087032988847439390088845434760971648708602619499890326242347280812702202949958591547305373612612176936313899848639768724980711733688868567232787858786253625135344432156045921310912704209860875584737546615969660011123242500112695203625574023540591013003664074473420363427614850988383819241721409544543879779816192689317199869175456848603558843406240015705878148011186112919539859133322645065843572194537351774155230298727320405619413597394217951108037858992806706755407158311701198675863195254548052373856182212299225831302977085290403349605719099558701989306874221678524697293344875306982545153804323102849355598233363131184262474936534011106940370392048166790458601008928900963673477588966030099010358092674412335648280999458868632177609396598216220481318386063349759554117106041923021010530627727035621232192769995510065138461961708335143073843681507768350590162394320970643052972058181484702440371752732617716933187167832919043024939829183223440492414214489993625661902181845731484068277064728058498389771250079242366401810899303490039711808021072884766179688562571407483306677694086888885685162171204406083393584287493178533246993541668782470948147274004220950210653891272379285120257870880141509214590899625794882377492874601782187543438080325244094807975345353669884258177895667035903394284159874937130661152880180485114505335853295778915342063925438428669544278883724670215352235501006698951025426448306009536514896182836543533639864799873661235549739246981631055773192320165045796611010082943413107959370178020152381835364323105381823578070049680944859653071864723014061742109723358490191613492620938390804244201268579600197451627595713923078460459410871506560418143524190431315528165023849726640681266013359994604517315018296316012298059689589355685272535814767120283700832995223866989283260628723637467315940937987931395050122624063904122346149077359588978415663238866481002423750516060667963284891862387042645348579977804154401356381751885379032903757220715786456213072811871101449802916733673623971226587815443772959305750541738840777215951995723948702378186567586657950222430798081653018525605012010648612926302071876426427196403913353099055036667217378082114618003739675354237654118359210644287643256716852537857303258401076674938397713579830255447952040420131253498099421124926682091543496492201378564943236527010686082677169226456942362870310424008327465698961003145935046997480920547752821234631259711260277647949170775181748499938300122322953333888899613926186487739207404673197626801883506935018309423168866655972414921313607899967164221397628307711626240955974982437133851013469893301748957069891646695559367021763097062782600491911768857639584041648531744354703782892272495831232912500454413712137905532108405927089727278326083585417966897800952928277636759552674020508481527035290015466838331496085146670417934759190455146589026974961787129852950318579977417993299682980205941830020181060847053692917110359535614607790136776680719879433573138484409931760522420259931449533985529368154036554278031022424248234836616479956711978856323279155122767115942369844872266013697718027524382159027724723199261678487650163790130457560491347832668100599152382814483680547469388351455959149120035553537749038593695584577805457744501460374638527340750160900836233114327202713508681668261750854998326161249845212910736124637653246771073747274076935817340035399150385740561448783213104640792797734674777572048497972313966343037445024833828413357016949518232409469612044830815171663284081136768038560140771016519463008783379686913788511101351726304823809612230177685110181778436230200040406739651820807972211410897299615018394024049561393576432010101476104286583260142332874719606240470292930670265987198220133215445307974154484787407187087653467619527889459957655040029890971060588349195117575376197793891484952274466290258384340554815554801159883011574866009049755250805989347246179774454726217063846390890199616662644942880764369938676573693399384817600739500024036862399644562302466948573038416357290172896599302803638836504674471209179136176108969190226953512460780079635387015254749423224301151498942756766734479334849082923238512934238711679270738929567211448346724682326570338269878342387068628863986805520323575608616684220039569160554025579198994976214251543894326735804723257669766859136861817053061872959319765035170363733778348556395758659102674609486511444634582289980234214873441752749738172057414506370273365277443245802097414495151203106507143068442515666724521530434076426422783184806658430755354476343707643395585740357196798851769681386743713931928293517208204908627913918449851171176466600159500084368513268551420663034117654613639441851123755391953662659375350460579576619885893465736130888006209498664744259617323256440237981087712477400967316677578669916259019734079860444537131168565187981555229379594411133822124534325242814152064624487356437806549519572257391428681550770826955215707346102768502832689422272501117088072495690421450314160263279389679330426009622804116716996983118100592313870938428453242002035937952122842540703041123961839980836476301596413323988056063756326806846721435391079587732403399643560770546028148731105012404520209448946624620121441341461370855225162737639650775660823621159785416603102373197896891302563017236397008810345710249654199169264584580592181763937125060737645000419258937823333872901214383563500040884367276321577500259548829198697091436889663479266478722155333330044638196790919617465753898576041938639578012022224790007181691570489853413972837953648577329507241313803345048805989320431141325444859933995686663796979420280014204488164566425528933841506297991011467119319269062265184478142560397537780061445858545451579013753084303159567528444204951392921045626422241199829227902800022754096962022052758436262580010223710352688606165552282358352374079261018054019172485611906809673231855558298750625458972208773528509741439224100952074766928758537003534477425487935689745499516827787380923182125306929640305003847311962107624815036422480901902863137397944283288184316305592652654912270342589817881063771309593746706107376231480586409432417995599380755232542951985354614832499483815655597889321607650096453481800199071679640129503417598769178159151018489974010232920150709899769684135168657592214353003770566687700617241781062734510017951368159632787371940565978738752961057064806109437508877616961831281525948609088567673113376096475903697213899662502747717145224174197337560696859441478576139264382375288329586522185477086605246664442559553937177294191267901999402434932363036002797982302746853770891089103212685194079422537434908627376688591421767201201017074044197156243709490783921360336460050790265997659407613736658308556587569613162916903794232386134803730151317909746464823279259729969153716481013320592452969751099516516555521103651242610859166350932701475968357057140768044036087485974524468861523499893843646766227225032595014645621592785223941311687903753854832592588829254278536670515263200317186612529242458743897176076518733317911409014348151103061445715003466490099888461176868149339129443823065151901111609732851637677449551184053096838631827358423363944235001254994152040429386988250236693867015039456059196099035144087722920650997903675264873359690867504732403366286759248423550608231957768546539754652085724494772441354141910575332301975745502926491525052248792209009782114583240262329465428428127948573210012599728453710729399584798417415646122113754630989867519241441019320058012702632016157732573872306889991452997732679268908692966336152149993183250683070076472954279229289416079456727813155883865660479299051563729954229165076788209587636740546776013571332641413050548123054643372873545893225262180545626906360515696143565602302705729789243883652697537351827349175949465904555089029149659840038131067260579789431419260989045436763978293026564701350547080512906206087170754962163125583176131803456901014110198651543760035443599126176377820502567119586575172973894270555191928470403896458952407650378716132428231668009713535917209338460569780479341715900616766752288710089734028406020131174149408674579268474195010190941534440762725398800775726103234613221958968194419684686839317087233691892021988823577962276272100539131690464391797345916492969188068175157366252134480613300791398153448039491954160559787731647316183059142764485512411042872322868400783959442094508044064561534979056637554563457647789476994974775326102347094965701314497605341304494964727023699865818172232641166787158689744463884492135236141074457738414884001776392606656527822703531686084838783313280867027899392863844855824693334568458902481532081044499323746340028504136409573749428659022261600053443488549197460908835149125008395395548252608331950155331656821122250079937137056632157375455128355212401121960637370036046073132386092969914618684491203173182791080326669482484739528678743180299207358222315794295980016684789197695469307882682876937241786462500850484070953801205955075731261780366661524653341205509248592400429951560863630034414511475900638427251057796628189264890917516579272174653156250984355785830938426490712129844636974261374708756691389523190143494154402875317013657695327160739564087025097760576258539803138052784618827706673321661492470400440311760628369753333101035774384216916639135693944149957109080411617146019139314891677907004926587991986151741362130788945005090230783695358898463731469148370684927589045791106342953343464015526560898475192729369357340069585208636140196604310682789740449028289811383945889147017110522824694439142186328578307041278128409515408363291355861023527477158491936272098964529317658839153273596450848061173755827198887175799606081563174211695493494390214224145457341012407260968237294729296157222430691731213832468285403602710816179160114130588223486530361810010918974205402301059411827789655949316477308247170582738833559805473347407496490733645620116044213648967067431209113501103156889133403121068621299786546700383821107942012121584276553940292408057193868844739431467469807229792370336501294949677521827533723532883989629420880597510554858162731935179167695420514201159889338668873037620559141963700001425349086679132700980098568128763582891410903411513797662658648296542843311518955071585663175441616737795282883311876235867404537100737652268767632828678129419180222239348265816253326987887244783029672841105291104407092998193661387456469834694407589639962479583940820630353415598451150004302176380423410157639759416916419394999609932536022601507011288952314690401320136129477173186329936447830981814575198124693693891275766052986837204252444364388780159237893654066119098635439416485663534393604166813743446476072697190127659741427995283797308700200630848274463697255755211775367039440634566311032960252419413260131924545427391140978264667438105243714521192230084252309627465457437371108654371355486032404937904943625803747758076081164268700890501723644190514596398024034862430854235709404110420587253333661568487019358265783446167770554765773489154958214039039805962735895763063738098938802814426448426509447257193577095132082182606897800290270745805379474056123268319534257659467230857391834459645499414653056228278343215040422703502595413604443545810149244435436977445843157259374908881816183518984614240821935888289976947743761293087772312283234341440593213898800626680513767105481056757760705156600524687554801036649563395928727930286210893971042693442521216326640285898867377792203801310161607791479068600989301141839616513396126530244631267201188108508746817194962698770104259205220609646578080057296121768263073345361144789445749149712378248354112716843384577658370830726309225592997577108719889391876700479151713412180832640157150616637364703551682648602213860047053604102960397647391736263466030411544062612403961297176913194728150629049201589099242347267305133130073305228490552724880487781183924674517854466715044070198990874418561830811421783579183286075112163377518452274182754472937348856907154308462717659579278453595796692588515193965796709484423745984894436939155099076700902823213890776672613353618507910052458670313791212196953003633270757929045470113724736278486537304669735546223174684757718031877745937030651518111817214896738333226516356695382252744683402082238059377895452229644164069185656737612323131915187047947275082396726343509924433732819871519112663213046403279271652470825117798952224693502761263686998252594921057889518039623035564512943939736177306136206279052619534168252492244040603046074849647791049452630837429474227352304315091615176196635682055374568867754360414588081600693069084794092279581629111741347237510178498092029780820631198552752522131850989600629835806235432746374598595548124970057393174003704070852913911324943464148495906725377246737520611532342625524705503062565773510501911509687456359891144804240343185331707776602571941479171401626322846637279552064786001551234645194930081504984126513626905858996427855589101131482480174721757564648540848811654530164377766080484852106145887554344836006693454470029823249221611650970984182453379494769900027147126976520474177740091045182890985964822500287832284715784012675322931838665275002120103716757947930092286258984118686875331124309300554937543407199558430536777790064339756626299775361143405913342819581211526679474851130058898566847680014608876002403987108101973824012562741046402154512295781826608502831330666086903393071488036363304876615115506687366301842027075066285928038942743619768414172963723769827337442099223154545700945761595231356166378006689764733538925725255143063375585271972567864974131252133554606921404441053842581474765202508156359745701004445425321206361170877893379783984223053211901306348502839060629778533907915298026757716867914035191431402913782053237227334868910624880470305876322124721725852933039612847762070160583811412612115410895258784550172203840773305956464034675408743890678342430611234198157315802423669869211465256480768842145507824042381906061971344514471484308396972732434714196153726072045108034447265909437559452331060906411854397412108190116545395876503968592198776313769033297697590829936958066217996339364284203806942306208111143849792805967874217644359619460937193366698811180001344577365958249184831372728602009108378291545044104952244851672839038121171844233385084051257456730020259912999353948113507444581679986531923964234872283177502763823514436251410295061560399935877837982201703022959223539393369956672403335806357881670658568447252828842233510408062933532071980230205378543984920545555362250926736338973105479859020689992486661371063279694335427127361337566721707089079003330776304084023021290185293455840644364221286889634499005334751391353787665930650231153039648748689397584078810626494916500417408884216907484742888944006657760540123177756228909050651829591340193274124040599316119207214896799426772942325778943321395891872801181534433795505898460661691724583474798787279235311372929956477121564006124527840319194080896750083100775348628016152798051376359846005195798448608426515793865850978694730312508298974528001599254579490182826238106020729183625587570985949293036193927235397134239450773959785750944271573261313054574132334578811074055694508598069642747789967675212892437320962624550660228005300882496373730263682341510926352982244938894940055128715075412708757775328720595913790505340030114421126201454746274499764356407343001122905462637606283778041318739394120912813253657815472144443351746183208652889654442542913397690957843834189813008647389356617377931513789022942487051313483021614167441635242424574651020698990844536069143441755498872352513434855077119785508459543692487840163431068225390827862041228862553098573701558195624819347829639108347658984728371978175228317632940089944941765716135883968902717736721905281086662609907574285734421417583564979520314361083823975222334902179868217585452485070687179173739282300512381477914127378809424755682973481637283675913621884505406003565684653965516070210994002868865940077139497357082254759104385535346336540588271535993774175089284050973786637855852285904019242929514928206960208858120198040803328862185028692693964136887079817097685873873696053783206122549789448294121143012069346431238604050175255037108810231082642544527389064678349423256301988006122738217124491824754493386518956138848649065060387251897719517848312124431451109192641079249634418842737378623045937520223726719754964186604845266018634864907244658399869961242418623605259480118909088052611556548274056863087365012596302545672944517791126170166859003560326531722507293651677596170878317722573155474124648372915371858463724991743212348835085899669278325516966259740271089202176801277030207691325198695696694438530555849917863216561088001666528498884256773777357389466933881199876487956963735362446848464435731072453532138366143863292073876786818660166215498479056445281102565349786979831769725899778953333955157323610852683292387125033114974637405215013840759254606783490844047361272755950264820661440405858444748163089832505511747640580782470975407717312840502898013597543598411220608067725632057326529113409390796683587949640289862100108983052194235132259735831354045033654182531252172741746863139537080874282731823529918737941551223600364445862404007828156790722162312729464823343939666947505519450268829851481582381771750135630646825864658075965043166264526241309592175611959508955897365075821468758376687372568705088094686923619473829531624239773365942211322713213315767363851344454345836796520264253967734526799711440777807784229938265166863092932405959571995895608721294358935399889705258887647131847914558935002517628963913632116019490601548813878031289693912125327390094323349936626341315399504514962905059249610261262323019179233157369521085065268215245263899135357541252872474206510936739256833855060418743756470459734126008179334267719406644964572689468993934748800811043536900545525454636864537676756405056514238509320444338189642510548259160932968000357162854569444613930619015616303720615777110483876333934562326883540969285117611508015135939890103538382731719560976763030892989621900882125344991360506048109303909443263256262027293812564155834596419350511094219088891120761579974087650123264279794667065801467897412202231502487906259503943400533595381315638930133572179460149739326999498210571808286323785087418647647530180647784555494219508611530978736014625157085068191121817830420654540632178965816822762758314572006313456393996634559149114142630353864605461205025272300358914811909823942660013238892469289391940384394578834655409735530856477510188322393807702797291015604090610750813366973726299326030654326906339501731151215889342578038283890519902557909628343762870512028266455121992615325583188250932881904796162715662776361583885049259913879980572485086410561280282488898965614397218652221501940601560846889067308788277881762570637594048564036775259643953181029478544154141866765937531213098578782400663781409142580058103498927475483509297472218847133308605408592661725405004791651296652539773883198547704316647971774575154646653415835987108981767553669169484889163078417722754814008787798268987990079988855153020252330371996671123003820029906352696496731954700025062406591187960537415680242529515115883527051519943273674717999913454536912827223639410524530809964012612168773570809043982550949332848205029506584053767324762822441595005152635353716727264028817837876032683349164916252604811165904310114572733549977086944386686097396667545431232281179642166016156459947201117469948430975212264292262021291541460670870266357647127280120167617117737328593320948326053096087816568969556192769764760738460373659792780125979144382993587676137086324870834147330217386370141505685484766069162149218560279773979570915547315436597661515000849668673680332542745094197549639243599756162484591944775612240544616181761918391298225706836474393700867786352740070166963892624089533080835750672757236808696758580806651412904457569834390716424535404512227281269188231041816717505852434440409354067487158696189804725057596319103093472439048116502643652280274849061738065306389692694752702017295931368346305382485036165392621773218203235211488885782728134523272896916855040407894604931047177221982528950400156634548641725395287012647078021707616734775768921682028774991928307615274633077129636060973481919282369049305053228985608987471703429571910317560764107623060252729347490799525865154416601048844199329513082332641386141974767309593244892585732073114454655827426903172770079611459833922987743835568333321894197591584630938298895878745351583040397947261923547896058707340174281279902613611288069919556969293728180440514700962009419812736505272767888881766086478593891497545144656056488464797349807434679309433693030699036202042246513674193271493020702171771829973885944295624365334369529181877336192661320044739251993810683882232721847257727690495907161677962943862256226128902407169012407824927517395445390534007797466862836845003456325656281781391531498601504981420809580348827345795932583098299650131316695179730301739568014613210774671951737849228747016833853599132389247359191402196211921806737717715343825429159424563678903607852730355424536472904953294285262282131350543181983544611623005326342779763102817591429323222670527747708230076748066055447541530074427677946031875791317150428122643906890148368021847986894900024653113366638934962762141150768993724500512695201599185681813494194719180245804416405482746486536052549239621197467596515206031311207702532908887212899229574306869972076880324975048909256708864691644098611366573267270478627316808090567340369709898636153646223910689622642273848237681519708045792939485495998703645411834764619238667124994469609513225094416416108034176807292279312107140772071089612229422057248394634459326027944376644125890131874476525583768467931828989336542604991195234613289880486527049595179750346887863789739219639840996253140392587568021491361108479224018324688934784802597368750087562383516066595423350537220320920183156475943072473342122909361962064643614897187495722361421662405143549237216194454147334854366685771679351812246168587394001855577289170647372488298799576021069075082857689735558698972705405972625028703845330380067734456326673995752716127888272988019407425960004779677252896557846584549619963347212233654407909689250449897054796388993951941175977751832641101415547901416071889486544940699131119356307514128761463339162627086969886914645826944732340528549194073259114842773949477485433710941693737340989944039478974971221400103004000712983908471766971155105586732414767336195490224924807574975856750953346158993800486366544151798375851323300003760060272820705847555927526084844968649998699462315316593146202841989909211995680394596152067862550507702519875865397250087344153438071945489006015924620565793339039227495914473095352626031364076139634282065395734540618834758282956793480092221760730052011624687106002752319565786867521691913261280948559543259177345039204163118323942207247061324538163625564957230193722192741531151632487593072938903072096543026714017309452369227794996390098238414114645558302885393552945287430645964776156919150804623025261208680897826680910670977422011081353368550353307881211854221454584877378090940793414860209295313003654633456320955707631292049730909643127645357522023910664073750648248949862348649574731210680075130651739682973561874262437311169341417775628764264942749730411005381167015882755039882791516837608739412679284316130910871668229292475084169407177116345683582976270076820433373474020366991828943079988813038003222591909827641031164352997755359285242724214707812914952235865722296585834157619076654284591648777699230254642521316821465410602125918999491308202967144386929307434969723952045828287970000548491519342156610968550309949333742008831720275013767495211933549212052795177510070219715128295208028382094659312436930204432289867352872050623831960526800531045029782645999617781304552929918431434894174603925232727765553351125489092310168294466508097444880168821473022857677344328763477056372886985644655041172118347482861980568317497174415465101257179322996664621207915967716744464789883417999298402135702546865057857436888573535705647150296832658078549077381453839605033961766086668109918714944118853033199840098599069091846508466808028224194319823926832036037285380330127209259818607216119575158990906599270166585113873870162138338669452425841133926795273550857512121236592713444894030337533404625277458557100498401446229664865045502611478888081278494490365596988408577220294034800282733573356083620374616206729888869172455722044513252724446792235746470254611087792243556508563971145386775831965796491057006736443876744597961547099069073249823824957992986765447060333358490059752136026244247582225198362486564931020824875932277517081394301611375266463694680770889500838647991674777633960763240390694062913573702356499484615857560007740441573238633192185968196777060248756081667660292464907265222911143104167158389123985607435978418012497847502625863309284438379403646933098223446669082339307863597330651908528849098727918873957407084954869781501779971415278412839522430746866878176929072599204760888921513251736406371237702097648530083146295853960322110934652850586567546996094908357066391407184045653849438461036951971808360792240489506362059202920995114185584150152604254264190042978432442115864568823135702100527666733966830669098326323641710130613290046743851862741958761452175439105430558139912142054183254862845631710598271376852038679937122751225752041146549788290374270372430413751926326402859794042708156746447751216755576406121774939041722451691547432134494807569513765649457489054054027189896015769542155634057896233493624630077264072388587264285363105880660056835300700542195963948905210166515462592379456702251684267193664208206250592353881936153255125833304397097968972929526714191527594881426704197468909998536537534167700024435550209619403793632629588861185195811962904249132931911340271643488198733852244988328238759179426164626033558741478373508736321485221551726385444909847955753869251491518173304020160677817063222969226705300334464168357449076656862365079164409413936061889128799472274684575472928503351411305239211447452864744487216750429766069693995396059690223555864322525861708984403869121709659030688596893853757907385866107872331083396132176100408989435536778661854035293921221643504940206712460479067949471403828778635570893856942137614516610747745046132620266922277222487138829368382397347976056352412696458845032419881342843705675699331753143097756181050852234657215724131993450338397123553552106612617189904206129737630527301015296898909947127701118186631944743944822475086426044611951892957053482152147907518719544371067716829912716507521398181269383808052891868472722548726032100430554145597843094973783163192346724586065347555575193839671773586596752677155642477790409208723618266607553855841164864366923403919942733599575035072509360132267678861162127247923370431065932590992345208436624906674867064598056235924539647295451752910083137358904799576557101529507030089888696204358815932573847961013258181038864997312364913836416373809454465067008104284915566159601980340223901039960624362425167509418084587779234439210153156994642607036594822501092431729567891511102618703992937364168545237266836138214395638862576896942139475707895864501367024957117577212703389386841021210255673506307414439431529257914862942206291732210215050869472086579252725737589525080375309996735635486745185130324781202347150231079475190803693219524312189767700446030384612543587940979528957562031519616630652240495069253222691902340076245104475167938835640879665007945893325224679930187751792201282712003272987585352345657548593710808164759045113133978158654391909304506014268054319694759899837804309609885487670437564869769571288646778851469949074066931662084101612648747796225399662254279348662150525920265678764365016854566552143559904775029712750589192036962312144498797434973411494462426227961379204013006840471234073305750648226607924557812111401259441262854871974786739497333542168258698188758321095731427331575267815964931710507301129584252670131517932101867373168393598617471481011381637011445652310096820741522227230752687044897825840673097548570242544848697640206433310390144384429282967569658597248354303200863964263028556623391855898940368794293741913960862540463571387038195133886267297999731467143392673735618854691712201887068353219845929928547516741360772508903506432540524910735899417137648524821448835414958649486338867936520952484402360441553156397401577102316839134772690866915891942951309520021072027890283839163669951758126518807406753288544704316408104625053116280943324799372251177895869147341324517898378180143425564813366478387635135091247013720856759829091276448129365797437157912484164087225707168031737828998027236876347409359700543795774539005030083955795457115051799459196145493153742947655810199977990064833678661928155614466343035047695259734084347709922955359622484097853807556784608968510604630204743046707581997246904618308906159667365645433041355621860004520299664472351546026203615171371698705768221520493497974669304398623710083751792116469761818288770333752627862853850775918381183142928811223044377886918017007287137702919001213077442109483700242074369659753267068556732593570848966080958019968793725108782388151385608942587341667659190839884900935796289160434030010722724883250230883223418008298172824414215928064861890055619903270980440863006357699641250098114263132201989797166310055535554224765880084820217030841867241347189365582836418168328180656265419631740763044272322177892013708908377895012521218034770384480561852597991713185986571624489180985967457744600268109474430155327218226909606737319275917292201403231154926649926278497163760881848480652098918679966753571925606140265754880702760808515111760814801245243654212459244251063835355987295177800082909760177239475535976236489203179949054720092560431773661976802558211953218956033211406026878800832273690810972347936608095710445231287852321461722076286537676013605718263178360280851159552488130166374435494647270497472026884819260504055020422214697855198963484041126153351212644985781066028455973106390656732313544460037727048110579377659230787522079889248137647760614290557515521497561291895079232466814901272130157173593746089184226939900875755110023841324401100743984857253261088350090977135163717069530763697799790649213178114878966198418266678496730251104179268738899136867426964743275687075218056593652283938967160871876262304729511941663681646983564541572899132286692960323835499924891967511779263972432951428692257032231873674770507192394694874684139573226167651851324740981919264019222258176053900762360351356783771049620616923043451014319748600259924696143951859979532037237033174978397628148942301692308478527175255679270020233032518131692965941460627009356633386057227699267266207158661184163234762493229475535384844728566565716471673645739633627757284278021753144695714149447212936490844262005020861607974721275841874669812202258021347034953346524261002878800370428963351801712334318310847637751335464830276014443946314057999294046560477368498332731974414540122360352850901563214608503306911973882539638899886871382592574619824733390522596131593078061974746397324012023719276947813651952459180302054253255021737359039555000101439598341659900039400736547392413395548121573825222991925135693601314457285770216564952384603024387211488101116708611241497139530442983975369543702410072832415330418525722560353337628947441714053522050185647802841765203039214329318434260559586946342464895940462051168479758707018295586483085591305917219729362842919764626175301990539421957750839868468761214212855033302862353867575375650598827884460279863519071763803790164710651467643959881441629366554431735516503878553073123424225810498831149347012318636902909427303367317951536899746738997606573905853783825012904042539666043002572618980509313299415662642960826391634403984145065841651416887728231526453745526652604960372497587151936430871634500587263075873804775397239241255673663149273679191552402469373296200224662395274309084192173970508795385306332919491225131657742785125987718528836820211750469092975643593997028604423281527997497533230282667662169983717675482088271159336503218047999217317078034334508478230892389173600148591464617956933615958946594938129845411797719002116364592705561993463074769748122800566281584447413320683475969901341403665998714654792051361740760726110971154179286212922565403087790306599534315840929284902810944946136189217874284165899886124214087200666440943235827720951927139261297556937446120709082122553207441438290289127453364625036083367782221193404450998815025137899536930216270073520861138658229522296970451919767502607259341184090496775601035226002524165104779582189290591271838793733547843694118446186080080775213947135440620178370248738088937562449403215737980753309727278000256213660872720214521063268200255437595672977861594878188882102316365213298045076499041594411467951046369838649272830294996314806088578174383996012123058299601924020386967710598148783330487840193412196126014400103104380551297387643824442102302650289845340962184873469638353629676144309224508056464763394948107944629038346693998313641282610979186660978518733396610342435911257965286057077037520370807712067387962367381652421491870154745527883638874243013312123961113548885539676908664838458914416765734740897194135345883224021231575499092706825710476160054535180711771202861352313542334733163349121930686727135440636455571445337660308543864094120229029637953450321213293177209308545957254393726039243153895592700633140509937737848104157232701747864991816572712325572060796510161483007937066333933288597658838930707850054631737238831539427147085987731244297678464277622503813721638702956945480434036641355397034171458086012398270642134346293276241466287459066975898255063524144502203339001933545064672905841181284648341529576509101238344233208519289377932565562584118388812305745509630917862979510745941661036147881892545132851037120799506399180196148121875194284050053483244827637441737404601400822161995705330625031105900386951357718055604458648171367045855110268592062793251719695761051062581541724801740603871950569595626467906770845634754688973400471713836415368335104571222566197534373202998799467804284369260377945748592720746664133923329009637168845852569596874710541489731551685938025771250006622068323824633396061755269627739231449120094154023032334397577345286816243667165050612702185791569227884202285182984390872322418821280792931029190569151165935367283840628458296717814531000624184982335239388629297511695332410688952596921908965169290495922472501659104230092255235102502452552667525706533582334722670751130738953875475872150059899121178947050575158540612965619747751020578443916353776739431807863184980785308589784128329472229753042636763649560213215632195446835332703096672610975377108236487872824882949094647219092756603209553788287009645268939751820897963412147130858939999770827299662006474463090850283177300988358181736003783355328087257038877601704934469456417680438998457464242828849257912922742473460440300319068876959864917756026847524609512477646226678283003628791200176503635128365605181733980917542733911270402495159153148640199296156933807669892822293976900561770539008232920265884547924869806436394664292155481048187061533015307570786947899517036992439734736070525585013968442587199775280716545330255273450542219732247559914959131416877051869204965912722294399004983757615109102371275388679003896179336377568605888035589178444462000745268089234978073099797809689930957947046492107688369268951194816265241972811334818441600061976880481975825533382672624445206125221519807581786307244132228075734487198208299727747124385656593473809839266483784468901449607584245039986588316173843636412918957444884668026545971490710992227908067226553580927694275452507949661461413697318282581854097427616844059739869674063699214332914588024170389260509524156024524235207298727874133687835015075584384774562392148848466966296691711625777030277641982530171057623015456130358845427003425526203833818500440158457261634887172921998359938855484303308575481460171778772753113089855454970785281837800748239490481751938311395885133012352222520347536012496147808447868032777089158269732693224749450998653485549052021575350859253636131070124101078703067785479676548134379872804403447974016633720088149096803349237824975364424077566772707795163915231006739076366685591188384556172946779623573120697115598112452481773988611604675142176298875180402476962864674174977392050623938339841569965266130163158834784180441899052059742291606230993556214922712339070100689500708564741461236459840186039365817606749987964996721830432025615186117348466375989685459090677656319162130565716763227842423392721194603085911802337190765600690478066432907051006709683781262436087304483458111874536215317538484794007508367000077770836165855176595989625372758087548595804335690320374338385274751386758240066708891352252646183850809414098611178460258622063262426176616335344135071859177083045254650945165453428022395426621365688371307198825636400344677278901679898239433258646832038622884333264022559361681447435889959266052872146622995851530115812354749068138778476157165261133302119982447601733734344973333400753952616718050298268977267775432436642856974627775225355197809253553128229958108350794383554451835733096362471716795008551384828654322157550280885760809518099182716986818353712843180602609485512309882492787706629857488714766744015789565220285254043588830021382266665006487038190514763089837576383479124546197544688417938602510368064311219599791038327763099619916462060062694616315586913802417509812753049127266138717979344077946875672256843617071112356532573512120993177701894363448213206747102922712660349664768467938366619216828418441385411819741472630436974093168524803095476155277708857377656913692842100556617004632674753886422029995640420774551323286873018927387243001586934030591239883781580773277508235788057158043799456227573948872594785544903836738039299014677776592531099423295924934490390552593950711390253711128756258763517045585450371090248738215837969083876238342576488567630810221669464402369332041409906661621864656135671253304852735580143542837293483857714822712563427391301537211026196664887261726551337825709712610864539012471691832329973952875247760525510469075888884568565238008388430548433854786939780318765667024515843882026093934494901921759718893365453290564364492910826710950952928714763485410896225150600600855745224062475728394381051330097139020605657672384729597015822034592469055245931193687316859637672059872542550376604140067631317327731608681587511406181786030293869150771649686950523027320522433292956186986214822417757605376469896047884773192262809955668176509511290833840487020479097759637632784275806706049322663152062053343977971167117534971653630553644293928483421816992356080930924066462540332868297957753210484136032824465250600287009326315010412875470347848171536535804851698551025586280180729915750650639991444289925855198520440849553135796026894995993208937788686706274678058345400629196897306844641512958219566505928447612402064487911341417300229926905639107259125467456224708025136057593863039397264572404511491688404744757471452470439702787640496844368579728833514941485023282065160713251410327378582388458267231561176054655974050489162857396349874405280287127837420661530464620972745689080558948915116808929141573336260423344296657327244088039959035923956807245328083878224320701395496497227228281434741836406099063946707507435613576763124579366025905440121346405997372039704290311240167089669703377485458354225228606122830506386531837605653856837145495012306039811821015413833980697932153146480576027230183807759451919469294623001971669221057268078358609637854605990630219773313942428831723545204473536492629877133561386709901216585352251131179672086076501295962863518880166975517157069817602111988238020930491004941659776422002619959814692392535259038463295581096632487919183538358074578082752414874368748803026141507042919460097643953519913387232363604760430729200502536565716457632766627311071408634437240096403910555374065680621681513687526348463967750955669409999688548717044573130051700544302254324901589387252653802996536253269155125578987133841241478996992567475134595738782444222214641549282366682823458030766171279508310537621301105280517265098776146314665213976899717869096197786796220214366008246613790921360023891525212571886509226236515700658903348327844947236257319277832370669591680958680443356105835359927633597041901665564263795201988331164370188220087995981641701070400571606963921363840329193521754939521941711121305818158467742162929349898814978699180518935956144633953146158585163415157359458413296401124215523145580965243043679322733559456157276187593494602269641363170909424968376487505200560613221161140437615063591756434595709922652541694120050020451868743279634224152723992390017558682462293750389892816604936434888053480797162096425656759033870934065837739405847461926184691410209506351969426963111489705617932869871965930338568846258857226659932739887510135168671517473651078076549465616308809489705688779461716683785365381244826937575710818032878355549552675455032320461659505314785156324136099342732624877712576224092468650861094056128933150157901637281820262077605855060909969314792915231263098130403614898417894281199383881645113430737660320526417053424422667122915168419153124297941124674451193440761572654693617738072403645099256318242664526490146568381035458805692257298196695938499873821682901170224289951584985037653353059125178456399077825036438786474605327123633891863391143460829231955035975836234335341202190178087578401728440537955484294757840522327800904880340197118428030606367435455772306744668619032617252098460053760034722672383787073618567132453723028924421738859119058233969609989292651728401571161988098132357688616334566593455054621825108477393985319576195828108464002887470021065178000979501102914336516448015931627490850915977207402742820261230242625332697441176896408546568689834757840255585230617696177771318507899746195172505890222252150850981101309277575343670016374249853131390896672829704884734326586334707660976358974298607723610180597842040878069720833996777139210973363014258614598769796842219253180840990246178793567759075173344556175617232587969543195950030834387895376699808355352928769250277659576947057566230521783965845431598912465958959905282867506448119917590199210636637068713152928105498765564827715688957510400619555301771520554588215287251333725502614873412356794793094360186737351990227877625183005916253958247543042061135799624501533407120322238333404311259489691221166984099680709534141282372728007708068392822742910143801055871170717165998939078032115438908935173312771650477645487565355017528646114484254295406862159701229043417591325518307860219734080236094230005405701645338449298431439944660703790889421925181456276675971931482462576951704075765446080476182296023901283318429031696696225048528997961274717363553019703301140291053517995425292232716555999265650684947038733461894935298212127556997886574724232274741137655983167603684057004484675256272385313140502043831747329042633636997437191948231771565691447606002419761193532633354644301042538955623860563936575124919782213202185883571477675458852247218504164984483599469921600490898835580170714584600651122246418156314296628854382227701499414777739893269380230890109608237117206825937673251057137302189889105767860478708835864633116127537279108509175623370056372459319090876330633910540513519980478673733996488088579277425428821240459536163039464950962803118902029169712848215817314181099597068109058654175870546934502944881558794584741492826413738670498191135621256999626058884645224231797510756751961927186830632916456863410538560407769722133536703577719306582673642872663741103711436821822579428283875212446477887740867916402729195930140816859587078480622898518226264571931437854742775981304115176286888235742647135578289612217946589136800188474066732394095568601527947534890176480980248853838350961636840416332196230092737207432711279284347930736887193860477307231948466214952924366873420953358575607257263071320442125425828646914961803059980265919613739774757504268149880980691638007484043849508646527931730886547838027206198272046805622640838041529660202254280367522137972898968112476215442296952011658946272503208143739929945923204170913059448788046792783319504075442786470642823691301248827828550589167699186816107978201011296685338436633868941393176393013014498638665687770904977908050145822397185229536939304356935991380253917256011022049371447425416367836290461640798235776347639522770564430548727593992339073752907757503325309317613607266465027679264034521942849172971840630279825081121485442250978355984934208491378668412917473663789216866005729333493733704404286894010981897470094344118873407396149070570041871490083874230643505154404792713020617857073474031284524349829147702882464237941769873928504274123774639763108521036384539502671376286562790475703407277202411138888192848474120151546122973774921532859504040829910964776624288768725804361781798432925219079333460947535437380508628701430258669021252710610211763657374515265976263446627149173795462528553948786757815066522944080185960259754822222657679487714174572425378217575904712445480713769200767362362690951147029133043593109428226679774534873791435468603352662544360995532534828835275348962134421174210814338728469469785675714054876813267507582543751594030611452099927384720648439867448353124771524838029824002523212866700536876297513152080716597635947780416340308856986982468558841504725888886348646947187701010888223127045928185460279628427580102163806005764108037826590514060214901878208556345336246899982019280233892625472621307327398489623593780932309995176270454830299541768638406328525452443385595338698833428003954903442990277063371275873862666298728362398030840805981724642840087211922340345936264755608936615320965440180638950932491435241242351215806103382669261983731132504116645972417824508739243781816639618747975552205939458815819545201303253234222493271148794150525758802822701369275809459246407755188011128517663238329667429821143451019882133717662393565491089548590127643707781460408167746691163393293386996211305032827358325203147738500787701827116635997494043939146738526056002387277625776729811304299193603241459258866064455647266032680590715414255912552615524209060396165421912649938574828672536552280346421791001995409157385058860787967620979678521614656579295145904996236165852236680739118558510798851723176940500247048486811080219703302926015230907819912689991936092490968394105563836159131645205137073607382401742592606476758658720843982581101299121222727673533302788067550929746971788065215133216452013124132593291709978910443195615995017685257850629998970529055696531072699811365238571308477081608104622318726239058779699676171077162013668180788855613741669088735737042791752351218119975856213158009317073585444402357794029994184509116093426099186609584336560104465982039376666294404002661506108705708103657205521061745013809499861688527484675462026658095746364303269045490750209826566612487588568251703522530787136210059509452048567081798336172437912729971512522450512640817213083654841408233489397703612196772602067905148133991986588057141564788234600688734795757762083889036789209994895633248011154471154947008165914394352306408125849879516282122731851211046529591208816969248616323693863381073748816816267500325463266406274368998140480475982288521870990209336713929494236598333378117626257065215717204822073757198526303253052419136719639453680932260740832490098135313154627269247899470093813463661137013047664146333493856931079200881452763788538498607917919526969111266135819692961977868551508491342271932929162725112435446700517278819461354924192360997533191685282500247640512853138387731433271446187708144750050071313890562498365378865707333776415066647538859652140155545466475845785387696846558767416854715869382560487782671782934972933940449567831537148046663862304217006776428954420557796042305862416650554946659937512003012190488070844593215139001147473598745635914235660955841767973002776036097619474079946019645953511252771126248338394755922253551497018493276879785745140947996373867530470602518616829692952685616934483601241160946896972892507527911448209401451255371698297202216612902165290952704920836888031822490194195025130557457910575810526209681996885891235728586403164252435254162114695155772837027713352528005058653418803776074317966125863173712354366911275405828129452242940260870615381009937090566702213771071700702987505923135677466164677076037784852800710129101894949391674307250384848720840019124838716043143698279241061817071031266034993200206177609356226921244297040246866740096745515084554998099124032236699445161252000736032131488235184247972473444706065069012014138592926678122169767444875070286398956474729382087710457217982857051741386542271468489462177155997467603585578547664688578154849117866269450524622673320462346910931449670490367650315065775415516874758800228836086259530088593023315886506519980990270665364458357103011556854408380546667325912672811428901735577194994229617768151172641072641460448041392409680834330690746743124731730871960118674099998404877819333206338950609719231143335625271960864597954496597175511319856337279321192975438620776484189939331280291692344238803511744873837838114725115003703892119142373630426162726795139306960417988235589061741288078590966447501907123597024743957980369399884290471752410675895308018253539547058898819858297189832774994769786417186724971579974494872232382682104221275062866681592015286799331378380257859681675318995721790912786450715151091344966810869442989843724460604206150812581512690732278904015625475365259310233939827497083837606427196412882328497296673022464386940974298911892471255605343558011473060412948010231754703688462000892665903529887835926357677090158344991371678209502944285357672903381050228166559660114822098632025545053596116564759117141275792971338663314923204477598043789431241841185543414835319312204194472717550930937745118538494487894250369505537940516350510897167608377975354408645685749789171526018514680574373076797857346191508214316061649131715540775762431041023782048237624740716998188834388039124281374610976149611683183369980802366341661392693708589701594349184524651617932929619354204025232060187486611778661355421443184152709603676336512582125817881473309997332764160667277187005741435422904402180828323642969661826220763663260276709223675999632754458934457763905238390773829046841339905327047598471900508080659453516541729416614183321043326821264520821079599313005969348151581884465316408224489075252662298325176780913758477103141679364185040714344709202261115354712969740334986150427923307748256669034955838174456557055553518280681183153500448256956603906039157600923988580308952216393767819217402102573827359892694934503731835416587083915887776478667106843074797528853484026888530249525454684269455333646469113061958093457618193830858873439876225919299483154537405585627631983937930874923049888388607859959817720631865328514548741417244454024115913599186917178144576661778669177048200684688069660249918629453178526665276762421288910102964326074882279263993146975878286007366818318900129981273101784879881181785965514180551321557673790336736090177039841038737121185216403119646649553157141743442889348093058056297720403174268356797236147697973404611194319836531987934335825937259977170408462672382585925736636950928872829669054358740332665079068088327823163400263622869686019886165059870116532955873464853353452911149162328813876329619670178767426190633520706784795479322354154677872917439387057058704112677438091589515762914308123673394200982489278904889262431648198726151035538195961676021997853738798439323891528182842691069171795349309878138962761222109379888005326395331758637224412303006153202053728693453760663892608578046376944011746557890239969335791324344146848267962376121616348104152324707059258405635814655822468348233813520969843323601651925581556787518392854135806829824322317221028941865310637453915591213251739895418617798233126103151331310706521361658339085040552803437048148135127240924381111843387618054296633880005237785872756113481309930025921593623376233815385718038138604440032291229907404704481702188268798694583812587775636715735432188727438564912700379634887816536108232079944729278735504622304549519809356366788723584360577563645208819641895231346152825450023970262827918685832974969205931501993460021571835089778282502003388982327259692311293614996384550230978133603378160692660444742612568214102002494771109227669577361834621549218731407334128432870205788318459100588060925960020038683803730218776862737340054300444298521880754553183695580637894510203794122963920813728275954175774450628045597407572548494451956973809763179353698063071956862880595805884599784492011251872843334109161086573459754461755852631498070449547889465166016164784677381369879455018768211530752145131282592075296510247067559419892601491901202294769700347970758582838227868296480985767693842416793008464071326120625898171769344370407881817948602803403318501490338039583341386263807755490124943894134208507389266963583441653396075182273464323875363176350030537373069628779902079900063308422779112466467955286831838733355058490952323841597212261781800757976111499240675193800945188285820079894740940710598290955605547183218055334123703114377946803135477162289998763796988114867632468251471429533969937410713263675404174159225766366690741853596332406525250235278363852705399923523702729400588765788251945127523217806964533244438282580946670072660785783709421493557384340663935306223488849070027498099421173578940660010970105591472348457344650121293658863657388364976023571337888460863047080319808294556388575196934322099354450889376324074094983815043145350691928098167046213810592130600862250060865061100963887445513441706423850375748002753224302261995989385243878298901407172519710426310997264112933226362747606933446962267845466087425450388626190732930834678808276272275809557186860799320855227937504302203135309960617124735497221870114017495460015704251628868985018350442357311186925808161859633396895861038470043954856471647033011381920209757020876107592405269254051430208816850996588498030347361420765544258927860009120920662112990748375556534051540544227215004431474248855992692212925842663919442784590294524229338246590028817704918977934170340884502775015274505049214872691934290533289800445055964035125948427173486936055128613426123789276446761074485373470694490195772514948229497309511280925603236930017692353750497198470640287377042001048780375775411435861337357810662347816224555655274159807789404384326685405923480399657794820627918633491661388091162351180481366985407514918405629902722674914651254193071634407434749670773698231335314780201160224643796602616281960605981978010928056738399114464957980393715114621158180012406706167016935004122164000227511797471937957132102118124695336796654960645284291921827127146208041985358732573811831523166298494875440447064322465655530371278332888420944034660779062601855428096207042312585344348520824945204504528032855653288524991882518997422180222803994817636796122858674290552824748570629910155609333059074025053911406172917092650127862121625474252694281718434086004733741760457520326276147655024965369292962039352066519438283406634147277045964734084749776164046110387549375717492029755167246672453536811163370328102510867099507142745749904822120457714798605380744670645022299926326565508157295642336134083724364576241444726368239100275123917379108780910810573680978412942368578728567138196914423541291587906656609159955417154507431652017990721829172558553711071497401883101652656400486143488811372236315972471536161962413286387128776259074335670683124218310731962577234660607594489410517138638998308932451459747683317223686615153438945271658076398249555883889830143522415603499971588371668857381485517669322689143637704199917151764616421638551100810257300464458306639832934006504196020900029061385451895195277315015506354896035327704507489364561716352954525691720153584775104489316532476461698645111344321214118010655720389653361446144794841654629005463817495456722249943588903871794318848257282440009871903510156444336367961887882475525665489596005440418847482842187310322926716883675999117049104101651323787998738197377832580680974070060920725100447113038870951108301555687225361153415930329077286085285959593974232259726232389592133294181654757914103036701047490829911685550117764203141741299297291066832838422156865287765814577117581263901219142479081332668856457064482397310344795333188153270713763180888652442738117101217489534731400274743181303965345035204642159526435575194328407976173635167702172198003477534717579022618140221294688968997897864439199456428845336700458719915026484751103083645151470763414282871415439764975281612380927656185637252974756808892384555232848726315120449603912706742414279529725392548412899410482524914818333019302428234466955236581006527335521562394756694346105565826457475184959517121677620275394664598098291364004535884475563572369497090340621300847579585647891129310028796479841512977335031226808896167870145108119197396389128076008561813400541177256444200871004749033864063073969783938333381521113980592595678936555652905046809609685666230442340392750120328192709371092005475778921258215846114840879604143487989034626603865817337091101912292266167794744039369242449320644311959002366342137606240593634626728016689581712387124380353977109094515548532748874289191976709554774649384685538631808114546336630850057852467491931129862873175774150414926589597335835685956113060641009279326276765733864394127737394960467896741164495524471410678471519402060771388109979238329944235339439732929613948011592272959659288510623857901930441770258480767680521531032607310224245570689243042723245143366289337256522124200168955106619973366240067711888758353831423411221669872154083792312458579061156279620057460018373947233885498978252268709824889478508785553124194974136187980236397345526360310780603245042582826053670400907530504756463089850921477825093686559366632689341232013731144908146233819850314745335252786508041959429644037199437373627872426502206296809398326112578557690426939733100023187135005896726293778928780027891833979566470015633401788402512271999010324311281678078371507734349791220483272103443519978576216100190677006472934128266989818521227115779439617034790361826360194592380204362215048247941396525056800199883209040366939449731837779541584772184100869298286412003302814577672954901228603750149493056813723860121926454833000545461106999495889960922996618185184553918298595235380916443262588776843845858335215692110570194574932655141783369054343331955230186772405737194707938603011071875566037621044570131474680685477859458149332476106978503675925424083339256333239272759314321883747625995512039409700180001436331376492381144483857033383316945796118472137437818958053788838619288540854291020985478100334291429754875137467131835581024560315265576610430303889948585481926604440804680707310526599147879358885452429602349935009005329815108358936743632835632382826785343210998613223080733274452843788225007101558323997153561978484343349545105870208059257525830812857473330318755594038176439504472431587298298066788434079167181158135238101322510285873267287477561752443430166637312600951535923276211511251054960322822017198791883219266084823738461547374158145983719156454652146784139774831593543723432142173621379727108691765352164502260004481530335205930948848697803073989542062689317142694222381902655157682834728566132693886439245733489859286690157674363153064224310654891098952443252686644125617760749446828074932417784380634177160286302024753834588806357135669660346913068300947531948400211671611322918658668207455035940166122463992336058694028416932734664610443286843180512808264005523356396864054768711605723382959086446092604156523578370087406163239542311890980434638296951094744743443440799568762331172271835153663394251002159410343931168340679439822686611512318909070129496962618735885131080379742538033679544608493119774710721380459338312484208848479660446879707826871072680714208576264472157323824003515436926728560869178237563489923483881936597103377233623466933742297911306706579175827557155788511447131822334363263260255811240069475911563258630754772046639955932580813217098335536747645670637315941311854080355728506154430306807560596930982960011455143496941744637678756165166538102935961673715588966097217696579913081831627435153035783978906226386383666628874061904750237918204846827729170133666177480085603290353701782144722933571456513997656521181098222449821966504740926982920691736649383532681701527958231153171729089605954837304329984292436030668053476205292823300348363091330422910835588018041918201994711429405799326199618995545840841294028263332930888121988398805759387105351122770159125217244282576890545668064575875758806802168565912720985988120053252748194814343021772995394933987690642413458653697356793999073588874728567617282352740423160121875766655100985520929777714204686757382064365884290215819400985604490713306236382109002014995517547714000426383491453929927458937009677762300015822481148556371882293229226088748236461978053097747015500949749656739551369030311837345569299113490420488533206029706417005854285300407512228546067013795961370969806249904614706638414565686962269338041654594170526019659607565422781814547364248971498389894254627426167219532016014896749196911810525407312303811936090531436357839784829105653280248378531225786605435651912981199914420930493770954254573909771208607168156237551266366270305587969017470145995480936168265658574283746491450829548759175157289786191333948979078340361376176169016781873729259075630333389200206912108888968169442914906166969574665792211433152783671185877027734558127160766381199701281260171865767612015640838350507037410995582858669448132690440099247328829463860957901357385750675796984180155579585605687151501506687808262901806118195233314674819441900622668890151808144142127661346448906235152799672349789455836775389825354503927859393959515620732595617758314841056490381134181172883494098545972862463581010445462551678559024157697127781694201760691726898616732817674011790263805245742787605832554566940862721585687187931568421589918848023778275968104130652798984307956435844913448145726226187825868229836595090232983646037620736669545956180459785879621536823200174970177722702347166962044844260276327317036460870854263341959446572773205873324957977057850733233002155798292239754155150125080276082179911973761423888244942356644085819156076484864353444981595255077494758993177213686708433654224121169145189486139456438970094583914208768259760452622986538951282422886562441284691318085557563203390626648475494767846526946394802624964916587600959988001326855694183844802443521352320315850999607921523193995784501335757771852520092347549293947528063870048479298027430133879829012402743629630981656845873090940707335078269293063473086891349165672961953868947168527988518037109813470366060464365873528818329347403062281820768785664242737636287820312424435392596434040924830783186153888974328992683606084393665287756909136654546052467742316605138288119024238334858254970018201002570971692109001048795993564185356553214555387189405391764409828235733274170891879083655438732918816018114194268600764782205579050962323856402490248512014162714063404552428284186828114510424609193700248155035233012983968857156846766820277102626787416859598233258867098467858620806813322056012262364994917225487092078592098846065723964437308347136445166432839253539934382629599982991150841995127882287181376755236589619717437842459812666094807221907648049820810578405492074224167600282472517770043309597255117708698639288282942665937709752025668745328412809920978750931973237253734510409193951073852561140639784945064795230352525798137583500240408188598218597494654330519116130708780577072657839356585527987802804294315998655291287127680449706058969498734390134848926624991176547779730874386717270667774139546939415378069183478026798100286973820703054841678809539524650397879095584578766435992106013154474883594328515877344044193457489745232742516380785219151561058913263296244312593771483291222649913447618026084931595636035727247411556991553753981780110226899961417128234840798971958558689772390794707559786806649880880944336530925042046080940015117019888870592727802110114174932138710475134231321843546998839385672414035078993730338783629276409285762349415989652189474910272155369881394258301267405036122160382851103792843857589593306212335074031241922174967559107986830340372459461927531807582794160389071739833168573018307363253386167883379660579384849468154586273786443873153782231400332907352060897629754323943929574005071200686577441609345095024290813606024171573024603476938180106212510155511080288192495531911449139287415850461679593735642722580337860067774025151909634134961835253291818643471279135045181363808714627345107904576193842278257677390224769740126093263182884250805929891371425018039205649517408295056570612898709651904011663692354654534523229923724589243354139126863295363681414976754485602975933357157699295895432506168147002409964136662927117123143303539886333434813282587476323724023705108469793532304013813111321042575061341697740469855937737648656756403068781117928390621139088180784114210856758231996865692316077157979081864032343925438003592148489207726093984015692545600919612119232574942703538724624533423978380631594002293147016422750694618402395298090835153380221166612714638406212674229927707214544589000965504583942760835169594992520485904847127915465630678829950149768574355098612008675998880533511392859243063424906751099630386077055271328787615831058475446936599322394700875540882988929540111617832164873733531150557655528917882034792507574909683011821177327116432361369357462583915573433296973596644864778935444832338785123260628656913510820810414821802945178917348688983730844731610185924274925015990917198588741358186691528931961156609444682327520079743462116823694663427638689283578743564119507605664370320398425280881604463713028427567984263822627476545531646852468023952860112298548855940464001376407325409904884963263994653788402289524330106183778307376469919935258660902662181320652657482327998169182033986040491771536514246028376788665830836121692992449685888311219245541607439394417314651931854645219466995004099054814122028148511649156398671271908895181962941784730323297938694101244298037510773531334122038991806351223093149061391628632772066528036070087629441756047568074503835549247170539277347295723609040470349110280733254197956213913431542010442992279107072529831018679515123415639456291057446742173911104905551691306961741703350245207677948217301380457277790700925944198194837381605346796759786692431587789164281440850344593373145021619054948654576712205563469578198808685567068027552996429042715893090858215637059713998249135692265603313805646408197169969061050522684730107772251832961247877822342985743063594462363400998519877164617612087251864190256162136195796550358337125824315847180953658348842456537638555350577502573947436717745650403805937117571643705272837034131488397265041638631249727450339042768284758500794142469025939422386756002430178914982862309289637196700681409298905956491210388868815554289257580852186879135218587941573211374800937980201636699934268319475021892161683312862686311106498540402630254866037874979577653146004396655075576321977337412316622946078955078957341684791273788574056016269239375575779471555499058937080611223333365207372448699560011869816899113922560873336600970475937352726764418436472190554618334119242484333725380486375357877840787905586029703165698384908860730932833297489390279786807595185834271826644827903501778198900341990784280892898576301051229256171431260428793173772636615357550840379180277189478549347755637740846160035199864751004256197957197779226671868163384648363313253691659086200127225837049127679311387326782603459722238892405984650727312087306684931385834445824081039185943017125824486041717466615999326822338680271489682653428430991152895688111715433472023372755765645066473879419077237942488807647785643965241362580304547399371327592857235334588498690405387542128000346571016451464350327478611205178729960805236561086382442918597531141848064323707652205555246436505338327821707369149961081264117876225301977088459378459829255128073276264005581927149933807315169134859186830664080103445696259564106289794104618142993528982119236013991135737551736508735431831203537837083831287946496088258076970532865586980255168699948869531575676579689996650428808645941380553661736426183427561705648954505877505289470957355598921915206640423357672308456814348026485554195353564753566036135945521702043988134090337793773405366287616834078811563811375502000669095982990381316723832605756482503726109624421852316414552567924074352442330081220617035006786675137262046098225949679220327413238008982710561989035674415185334602380496652471170914895204878833882199126108830335353364375951738157059960097441342780782023052365423729765012223020287377405704321570813067508901913876641101694021534126852855637537372025637816118287077310420814170621075856563715607720725236397467908678077349488290466322052758349432487866732452613917914595716251550365163592119193026226284739236190309639799826764387492005193590755094861443111737275787893440338021368658229060533549190106343872269195568048452209154904523925258212202724287337168930608837452648578599296576200109399066013802858402327557603517230462152355439680160487229674456424079249748056315591708424042184507308082533208021393216194704211359867994647047069154645695693038606878327915990858553895244616065552352205298044480390116679416100009926469119891105766618275839182520309127575699304804315968729983505429857238963306680386787041018706406947894147159966584355825405855496147436506138962890775523039598411563713905351301756976271877582835135791151127055982031363835742247342564550907369533201587190225889719958169124759204420264880563222702077307495938065906071644435161013077900787461095143483874711756496702591972707092964693677563238791888227009699425615551025225001168697727723710603491652119938468154008156785455503554253630145232870615833759018714576411302231951059245228124232978103937369610669830225691999220170527501965178071338261805240373475093326131403072647717659027717118375145875483747125559235993154105608339524143054219868315911392385431642192725246687781612079401377480340257650926197117218805185038735741326281145095374774543152443304085074243280958279416187724479184734568572974089762766733418647052064851387395069691888209339208722794754904461249068818625165248991949179665318122050532529893473328153985449943312628892716200401165325680676444547153076177780769050733749505830850541617037938484502254883821619648661636406506583697853065064404758786442797248047608671272755506206473119139123716933391858908487358872184378038342087225265236101757135997782252748122165447537073686551489199369934226212141302157245470423711067549860057746365257799140528765442962221268653070031507808620549875653252810587882839702380785286290251879646618338479779316415092417214579616335309618961770840150952891759836534427701366522787476912560431166749742162065116750188380344595065011543671317539186589970635708450055000765481446036825586622623496576532044018464771750048466639253518173975360770613647072106254295123593402616509198696579648390344779157264125480315764217439426372754397146483689474536714796366349740137573911223241809739166584423898524974426315910624283699031322285858766682762750807137343054812880963326280787861200908466951938660848716009100844860362550462621159778020740837033301792873414445533627555332407343499302781166987091365874241514748114583013057106795307114688607545084986005400367840963965730896252204583255500331527008150327274604279637666334118584483738040900524919113518152421407283563840449001954429960029097587460463529282507799893185397702506323910938272063206270885195350366838728493399881431530770757950204415069724019010550299899294240322436347388350350138741619694981330286470647642000493688769484776640280494733683290334622534492669293883223560484628636701288199498826863289057344999467914951448191017675895549460661467446237707209635648173332491566123026666891557724087558577774391049568739532937519701586411489138948703214436496178969494851405088485754651362819821762072523689111974988737498970723339807492906547491568939939271633873325072391856962177651572147231839777411534733434266514118373861570369831618852768231388395255113289962709698665731925856602578255488006761610216614645329272862213652122830611833602240013256201124870135149100213472720791892512036742877149696006514048293837686349193421065244185340508503010803706709659057561314482312794055575906711177111586641740708277717281527295029678019494937947442810063468292185824660248989522279861975033708650229401281956315591680855915025758441112666641759843320518867017684309680892879099110151213310959234014486843381300735197496729669683326844060760508524717549829258890048112903920603874707871092921394584218690630411266633317329760794838006849921560507132413723883074125429069397096958371460046619668628575623583703728623003693993400413028169522017870691041779433439422874517766943612788485622733287695098537408764044133301275626537180745055966006070447420999308749606361166942275452246362395830985524790145878151195339928136506521619045760482972548859275728727205689370628395623810361921432927828393304147228273917959836704771225586122014748047724986264452697539526192450509098026194563591513896136649127099528583228070433906051571643284360949544059416005312304995464765469103171361424172248459191144525985761598817300761501549573986302007885140055976109853645827531784335438259484712115101341841909343628056875776630788931304966094777643901038169590413383017736491825474899393332403361315986193379053902254974054566192373881986364399211521899986889138247428193069933439778073578985897501534407471035491156340425959138315531192641122130858623121236542157735455662046128612160809085381745936821588071203949194369406517425236281326661430414130723700117100209309184760460315973440841029407596537875408649702905192540155207254332181136970690821384363054249549620266919322549334383685021812594600602937519357178874002722295994813326347995654838602138731584715670449203069980539526243797899056900296682309526751318284877255769849495118652999212504167505257283292434887156415824418337200113083574493687692114981200495530132957886065499421934276154503474978225225736312200671459774428842499845535697676408774031207225304583578977565168785352535230579184969823107128370521348211454417566776795803383595742530749006080514003090123820506331793834436247209812909420723830829252092417802956300961101717295803848084876953403356552796861186298193725043301386577859557883841037231255313366884788200229355597920505142985528079236172257452048645120913621414818384605175397059101366335442100765243852293945411489640494555489337623743129321741180425224003528455829613743159823693363236575143736571496348214564565372159770619838007340649976273598172872336207577488693113140012943893562460495470864506342592978800395208869201064605046852708885236482451327063834937808479098580905334865217330538645532972128904637987754379792093950660855174846472904772508698098297658010496973048094442612570308518714956013604952232452194129561816073117132455666497877278753592746336960829026864350719272025866075592459441676167601786098927716384998799156586393787688840033962683087607275438355685631052053467448869937942181598246654216295115526031438228464400068822313514901396386495358654330304048660820837248547589348303852777911620431022909123152055478764669463807542798167618167769512079660090310816420174348968251029768230072676240921338310194219242888190383738605999734080221183518478553453573873027940491931615443934979296467549631588823567431748302610859266694930485054815441598132061693170708918960072943442132921949169078197281146070340355896155578786104813505220057488845610250124266627627910761117068072213327108001770749560477111152245286099752694882336126347888842326715582428674729555281244716538557762469782208734991882813125336606383576105828983070673214790152580812360637176264649344257493520403094924942254997966127507675049210707803066484744808462074444455401646929071410238781782435143210344374985121211488158508296300479573255160759740982920756883555832798730684815889693541403215274455172455206404133800000198441842792282616776841612900788243028143580722322241998224292800206070723272818288308247192576180007612982290433264163966690043796684858009197366281071428637071554486534351385202849303697251171201077143815968470433368436833323277304982864452837742940908919555582744817014011852899919587785854791608588986214287271092020425044574162755804386550928873241407448173383564061089445977728333140173374466178783418678351292152044942466407476916002599706197051254344628714262707293639533557294478174686826724271489339547171104472243355440365892564573870403320134044864763835927740929417535532273045012483466108950217561358336291488523264888457813191709001893397956949240745206125700968028181989122406432476080333362143639504802227430616872330019660081650893421130898244356703707024229532329258567437396751238800561791979268453179449507827941536635256270204551204303505963830654348572873821645958245378698779136076606905661595290920846597486704196182900963098789024625976290796598834339390450205850236967298838331574645363019829582303135421768552348230979640529909756812054325304215442636458143021017272907436966819152716329531895756970970703593737262520677606247624837523909388730662139066819924804585324445828584052369368340194572777334007618560347172664213110572383526869058540275890042070956358424131602324753562230238690368416626365730423366804103400100283124077980112676166268663223031302789456084366567232927565393720485456303836642489864037772516498930205341244038645065133739477584187921819856711019256267908732085160397713446982246635911761995607426519965110527839056284065026453178627565330619600462392805822309541434036642719173943756835797881441607662843883061135976092938283764860410406074420734638238218364396842016540440260226340171529337953272114584165407399820128402089691009965888692436495286949699258313927391847895087522794783498081034594948519140807469095845893262784423904385028569744318759965552170786567864547001473046171388218312964131186721291921641220176649092879054024055890693424645075473887322258041218240283392641702852673278729797931451264329640291157921912834396504065911858953217748385748249155031738211167930416139035598649053359072981259270067437531696470236091812782364595594674372903629677046373853997995463281025951414357112333080190912227919702460773354977610481172411935400022373292085918505642010812743229174165855354298780582395785109726554799473191727476437435486426085332126605595066277067129058788520525608199087579220065527759589817386973142811370122307197730162474331427326311200793438427163195493836622185732825441288945241899160110980392852370483401828945255936835668065344466608451152630199688661356855545046941729529486698718096015251525881420733697490726400650927202928621066401416680820262721186358322499878567852032531798302221552099629237305633840218011350461618247147970945157264210428333386498911068489584381003927858757679375829930784211794365866610780825317257716220949297927498334319438484904051043517294667175736208846914018397146799321657865141821743421707861637448028493656686997691736429511740209560330708806961097212490007775729550380401614649160918405640524990623305398766963618248033651565870367442825498335339210347304665820457850408279688211660951391464662589468516129273561270576898033284255372532164563214536459733832263421351311834249727527895912855653273877592895701978444760769001183170645165100662724995663334474100559336208551158102384384459254327846024671498359772547330478922116192629160722318402186410870918023128768664911330071776037254928546442767540987255070561118163556240345998353333829334760209867128905426121638366696126636624824509644434741931162986263321494728738849630509637070090778413590530270342297794714960747919857716600975642489369863337946063917909948380912677102189567961484947417596718358506154296178966962635023462777945355183055001521747936923776914400234105683330971308374244581027496385879568641760016636845144161365300591977275487401850279466565467363586902170026059387409641073341442560815574024704890216797098082829542882339877021358723037814807865441706498305667933272840802401415171811767365767828547891564491422026467033507186366424712034377999278383162470104852335562962294554590568168323347305889612577315047213183071912378554244940647191979605120449106142161495298374708570396754320338234238187813982365914245780953234564274969943722123779760233442802685233748605987412557395204136025023880720879645669386647295365784636845774486438975967906739153793241029191196779928938912086711260784672755636284462505035233522456171489719013886459465288775301895292697319888744977101592756415670238126704651056910514238342844542225131485117185716027974144675199325234292656470370298293346011153053972210224856393584688868040031474348508886491809042670019204961669799835367715674434387360741405718118218865117148204477561877187038254761353252512438194041104585297796215023620302839256880097060245006245903767702677139057498940379694506583179148662278499757251775343469597655819769619257905845779889763536121609296011477648670515900945719155467194203497929191122907396191528656838023413447648518116698853582964952249522432749218790766753017232154205322835428074527673331415853772739045077248913957244015527510771425336677675600154899200043036155436308596775641366478210140543581673532369935066392092662861880395593649324544270332753083509886560849475203191354734668205522938499061823916353289564177481792061799811860407177382365539060728172272882846756693550491577919474372693270697935055812050471248142615114220893959387351598857294948353416572895693122045462046917922803304372565910407002322069310789904287311942716809106641774650970010385420512575065367080212357961211505605470967642828184782279870850440186407324370389893178264294590827825654475628968016035359982855119253656899862261442495105174792974525241938685563768723147333311262894660804174319664473518299014786446876295449186007148892044614649807865283505455319200460488605878487946140801364306150409660845115875462976129923953859931984529764479255197722711754288078238529481852680487659620516146259698258887576941896703277090428811144135113983105764306191436740375678140032462072540268056950126816383151512055537994873697343405421762156737108132560868501517591497971632729676385066937279718818936469596368734437955083180666432706645654261813626754019816565236142445417971096190734052532961554763858763002796156521875896296073523369783731810143473195626918294922423646281917635788579954606271105123227983443415729960470207140565003462215957978869763573586791013359078019880360749323339165143577396430585043269448121061123498947331909599502440092575100655620921955104479714094547289380344658830651643237345599976306848249655918371360405068006135229017790659786676438135503471317267593883489614445478405875290223341576231787731597832688398160496132435026308305868671275297662995169028312583848058212105231055875533411966830465811420624096271054557165582917935708503874099033228293135833013229872064893298107283247151369551834501981537222878381808514355508486724458525141346566542651428282550820890464695602839232544509210383746484578311299970305315868631831211538558154975041262149013984555325141180469888994896206248522754397947648247671153479311380495454157410118189754754960248641808101899129581842987875778954672776581660853930306952701350016826776715176867389900632545094419398595622840001317836806365360021107557420059076622066677090400023640897652077686912920653613721082911939362149357582450179693983142965219305257327900713808345763925490660641033324983784518394442734364970996301147530733236041441058403790285144544389735554263385581290859495832353805045466573612140280408762918370728298873682192349260180838868990623336666445659255301381109644205426210973160426173798113827672194831823394224321164819205701422567354746805316410412858390855646249599388441335824127072727395483271214413974027688063382036419372945860567646323363514445884665705319938572109595554601656510518238174013873361223929821350612659037357150247252222471654288895113934645609191614856444398668824046707167597463863272783565176968409876040013663548144128870576872810779634990957812896358659809239581146962252886487602144695471484310670592375558225568679520472172530152667561373715524201181126768381783749776008061071268427016882338813609699588693579511881950397557814602352854188675976382737221849411016693908534811596371618525283614440354685393471232687998951344070631266004853272164408279380142613348828051030616385825723116437298197075903605576437265367554721314037914738044252369025597936687572634357693013039487331160745898902723792929537380361363643346760522264549486669857049208387984076458477831774613006585270186883865831444482003893238678865547231677554272694321024187275991972138038898253899908348147170915493030643255893204025228262491848803948313457172008561686967669138722082731096751969714969945462713136179180914412414870564322835239859633729413728392660450794385125122469455785967442395770234922480587460758568355434934509997653512743725369088096424194340351029408892105676595332348745433214425939929317020649254526652658511639331946417432621588655683505286142955736572151014255340044890753140275899892289089199254395721645692965452035882101763832964191743484344299224326318919500410206697560237529250800871698261917300696942016551833490333277066086320010800613309381429402456919121374934147310699197002264912044347642601227747155576364464076843865432656112584427537534957250742182604411693340929873504518339764490839081321920822839808486864897439883179971229206825552210207453781436937172141103023240954528888371634360848398394144036305617173858123104315646125831271643108595109190956787525420490864592838866754508657795236505710802366900903470693499450147969897731639757145179539660829327092947856859085881512127505127787386561487711895928438121318710757491047887098032521918266840824603389062468415980826914555695368254019348037167512830739863697204913741302595485019833540784243228319803146874401470218465961538771018287334219271276616434774737143623135468844354020969911846630062420084969453865113482029828901804033577837811528832812719674143851224550142184264666157400359692554444882471940680229313466283854784073282692525239090249998930203096344943422177925904916816044318482401986600442168088057936567039747145065754610355828703731481158895136700786294936706934604388471359437678231932313781722029786923813063326793992415910645455009107166700574230791802711680093598824887124291363733279954517171829071779215039524268588953496496577705107843396465567281211906265105871286794368333494533439911753680627930402814272360499085315858242469856745245918292112712084779942632842631417357180513654679403704472872008375529477813040558298903052208529190377941182169865638750307606790494930744065677466636689865943437267612145830470936435546217278116453244591013208715123999743677738385010254017030433912049397217764119081527984066776436600762432478298396514311177686224610455596283606382588523856620113964839621222147206684478294806475017961072815556312944991353422738071838251430037453092959141826381042551111846316682530016028091286966962770772482154498446120899571677383625479669646214590575570959311219619647998585434408137901881916634794296647765325092896994804006678931916628118608660062491531811752646456775875666227085497721769144419376724629708479329373381186057238719712832155427140411880751808159600515902169759390570473296682315548664563169468842016554950869380626958306143489704051458566193917014380803914783155267151874640427875204241804702871149643664759514219354992590636233277765925181500525363503753785260076551033568518232352236755127769236524601941382277977861995538118399820561801590378756465120418186171652669501514872950338695192452601787540473264008316874995605837802186408037383275186180299242626157245961371360667983169401685003413175261637105755052513524127837808156217344259008397709998588059158957813260145044228480003740308782476080885219897621148101623717329762914964483159370608032875125201790373477134764055801556218511829011182521324882859082363533289416945896860416835347668701204578816629738518046966198917261313738064524287983848179166775444685380720363759691401595860058067676078539931952482159628628161998522703176864113126329658611773287756140413439626612728031334056323236897595533592618048735642218296356696462878392786518188638372662587392139617983942000599251567386701700351014005040079755023694752910701321998335493160517236235915575739628028963679787217995863654888211912044981516848305704350449905899267107572983760275853570358455381309157028749452462123563042728210603264803224952742884070855269286811349910494244971638878098746219849179670013541418595639383231580598233747145281757837927085943311674367056948302987827755792692577895736273685556693212299615681230163329256660377137587905743063048436034997156396271908257848213484999151181548070508027541871906093337882413574556443377874091210388156728190319231561593741964913133633078171990835818670865819477114433311312014067296917304006862832721572477109527201283426573765910130316041269764107798876474117880413164199132884547734143369320243959636282079974561885381387236511840834749795546482658122629515130612249967816159653105089091331113500660843577935131859525199681212252905711962744576484802252213196688326438923943211909141527471698936265528328654377737510172417733371252700572797485117485730534405958075788236884566622927265150233480771831346273557251008626635728418858156379634690866923983345930550734255336815944131306827026076602472404085770826490492878074886241803248335856119473939501475858825355961204373590456422872546091017176656996532156538306225675050677627330697056549029681448686085345727300969612797490018397505004826431266763793535423498675058601744452448902416067535202857935791858743026965226440251046593247132804512082092403387163665631550776105819125894564011400356369779245179786144302899673190464069665684842002336998683614826521466788989683058699937382456907866765250810769752659315703430755634260231136014026736199813695595288155116697346994939153509264414744306557807530518957100259655608872073594101477933328107681023266496866822776359926611579345564766027659385690518926362978795397244458222540130359954412744408400032206243198385469352424394794732887330331483189619825446344160078892460043688814875472224240567406941665767782673580799888020685901040446669241690200536557386607710131167355377188418993279040062398543483778555801422209041348480966249091926988245643797213313100322077363399136557968954927984602285534695086858558910895908023057988252663540947924836453039230173233233883971711921729990879686391804594930192591899748527072493511376082875696694750282723698233054586730511383351415346123847992031298983626547244652591155044590901848423208141496459774000895096379656404741090472354778355402827440278450598973948876827617656622934242607426394834468869379100251419409426698235195270430288400583607896806122647913460517164241909976179942977057329414416171244558374371704994309852106437319139263961117896361622268180877235092731585729105989880421378260156514230620010050620122245030161793191909914519360716215792759551424715925222622091781045173921417096820501641441863752325153514786607076650108368240894159871861805599262736248870446952673861575594554642068516995259190066326981239108108041131322571836056927684533079723329736910447108287935636652145903725039458778002407811823118185197255618672573751753317589183872716167560099157145897737150406726855882569145553101891593428356706370542984241489627600759461523896227324063022564194880834499888450678457793852573822174034819194875801384857022475937221432395921125638444965404913268540680117752365835555979566060583384784046484948908972246007906149866343393631985681780173521276398923051992500613331816514236592848360932127269193682014814993897617964431458210327303103734528817712956416174713724449641341569119994455070710802810606408871038103193593854782856064569592108428207759013658001205831674806985123723466187124933788654014895534642062473669567894920384798606421670900108396644570261254285058642016535148209407981721126241443530209115180365643757995366902069805770727629433423871691485382594002685920493488352176355686915887480288034693210461953175120763766066889881398855573503938711333580266040112265310497292150086205286971080876979438627656750832132115240435945608264697437849188762214304803252693455125587029520212375211720372296302768376932533989944976153827161768818922612171170068372484471383918990921571649557588309597625962667062083314330381316900643502388598139804840739999790802274373370848742820351836165382124955342456031973116003455934524746007201886769946397346542887469855080817476328019927862970687097432516739380987674125436387759527303761404446464691622265915730135073374800662665330492431001466788957652512736237784974488274929547143787374176453115093049353757190071309421699041123204503915900389412363755857878387007117487000739846763645417416095710764197882315536130849659964233244367286400619604871348616316310743241545537820108368072571993088467940169409118507553185682463775677224583022481964620084645592207877723415946571924969705009390049123006902441629940452158297523592360699866523100988509085325781438029741817251992076523299877054090847718280259840786599998835281251920316247643630818264333727552668721953787803111315548069007941687460029758213290525284768156073358649109629182722590632426713526721781093185801113548962263950415514951815586219055730826874814733539166136249700811630077711860688827201929598402060920899107479920927441862288573332808866313052476090880499955326529842359078409433555865914339018619864675235151028670749867798435328753394973927647470167120232641967699254150334533885682686207182355450656675901517414423169422441474881067947892018359791047570911957471064809351039080272953513230377555452213164622498941296131990348938477233557583813401652701085545274456272892473555677580241599488982393363968337116821720938471406570534090445267284167409828451375019159907465754161981882227514058463152933922089054851279063023639356291534901782089882410723278912457298897810994235781516976400303284702365271774002400842191167071605438146199067246490088621642840589097557661323516332949464923678815751577560989383688639300953517333016398885740481011871653470792612145731773908723080808182097125667307397842807349869932024139180221873622610838214937149429659454530382957691957824827361860789845496064675996487935727041791115636664887788645912485646101271374744529845219823522812657460371144244517868046978298215089182428615523709252851825781214251029315122717599312529108754679119092266172187063710705400260324583517409436682139131628389304256247096870967912073768184811564724788368067970888659506093239454486963106129221500343746470042766210154938343279362533274563548675368879829244759917755954689167173505018000763336721835593254810342561393882984694451503381491955669356194746633881783163576804338463891281590561274493744282677009517972140149717360819281496613972845374106066760280358902624504232641605576951688213736261621272999635855290807632940553011044907162058097038326419433939582307226814413576911471007589116515984983628164724822222253702237312604366583329333702643821597469057907929555599086118104072031887065632651029863016415787031214417612097623893442217743219777514515444863306069941725406520323219183769433832639577188978695899880623867647824048645192498736231832945232098080926268165826347161600738595058990733240811817245206461397350007130894217683763438005867600498743173992553361336482589936763498535162215542208644162266968559272417722591657942595654014337824757540986047192768061190237921998452361849447594412082158307011384655178360865903324678075518883024761326227101513198373015881314052016348220836798632647276720757434454786213432879462048219234698765830633210617685373639839000758548783416607064464433403196075892416356354520373800464383821832707506112587042209357982252897036008601591015524078387514674538977678128443573096053211981152627384889556098789457731910135959718816281547442675986886985811105961504701647963963853389475394815345044524447540413655114507813025660687499457601535893912879811832056734108154498154910578756637489920456576764577194525785831559737077824023848529585838390338704876025432466193382745665113968272204337749415025063742574593053579494004868432621815301835921534390676607282208126472271373739684706789053381776502506512473022206147961389226553400589594543794499975119364192837652393661882867164063060478972431869544394505803879158513117987784524169576944262768257750506855902135501512005340648063421597832840943536182793371579947101101960872713164272732259623721340461282434025775486141221366547007807564241902441265572248954532076761138096882169442719818716030986726082671920550000022792915283951394008377051710998380099649411049893002146489174693907064101471395497505009521970684229804542162597844787984726463187410356967852949337987714994973170443653630701039728257428911044735486222621976328920601254152343060578333219844407462834076470299905890886313040920645942225875777863841923545949773902828358645236377864513800226210976105776204772615928622884855742195980162104000569889812070489701273175175407678326186625952492257833353069648177676282889531851482075141056713378586487834276474024654257240151803580127095574277517749354569147670542557928607551679963153095803922131956162354330720702130764980922030092413731458423664468804866134423530824047521517796435087485828012724929081817702592531021895529711608449674769296936168147666774119202865949540274856198514224568570593334013845945331669711297402407247068882321246150847986544367607423332824772236765629185810126714033435890741499612578863710770470498615293839143911490893141667056076541359463376628652527717806744576898723659463853369144848125276389056405066575314454783175696889849114109867887005410499883449722731657727514268346989173324625071247646377639457547634221885262753318132650170140879702674647973474103432175705624324407426093251537009433665315246218401392452708161780903638644972673887094360761367028716139811426230274594944703756128841522487641707082918268149507722244989155812521767707831556513610191405892501142320958750415132922553529298437030162856783729160167825303104039954163010481801356369455862624471720042943523331897721763219560636974438688606222689550638111582358366121312486663492005652597056799722268163681933821592940509812929331480272436410720816714088181272244232003462594909231512066533524187638872802896746762376342633762918183652714362862163842290107583035957777821222901987013000877189706558744550225130919910068532307564691705141090127889417493637541278341770061647584807574647012702885534294997018686068998765415759855554792727375402136357529440107315804220706189299436267042467339459194634491204221317545186433317614034358923640167635357017360257275036156125273685903197329958470005743265979773727806204253541407959513419535226295386692295591373821747916115389666229847629761809987281252721472264615529840256932715650700359909227347476345419239700228142652352466565268421728221021204188122810301547556711684871209456118078071736448084800559858038317392580081701302255429884097747926240557532078746331718194032740960432511097513814300508453478676250873212624834170020721722082319758198468954021481340705870901218905175477035129162789298293260724573043541495750362878106877518609312071217523040280366826855930373113406720653712388285303897812835274322579617288322776992937335115606301596893346071404634619170429314001550041190681498944490358259038389556791411806679912984593838326431751044057355239436490846379120919559080305738197698410170708228799006970070651371749042137968174751111672547506824813226757106284604549702727035834263584596486858174688038809824364011910114027835783728968515430273846648665868044146031358868077848029184828018970673074788439318277819792925637803856715218221214172267600147754131852389006883226221617485020804008473870787871990744697467950363803609875295848563011069987188829294437706161917341304594005694371698251256519381586788598542693748324933112459075524458590245686449720302123217610157124042868146617452767008678051185427746639162232207916558145128769844876379415869037548307567271031407345830165883601270005975918909915425097527173389181750772330809586748019972220282932669924754318200190472225399068475902755086312783971519842707369397308369967925951264673811957539607914336384049995892047749466785529275702284127511290852693406567816588288926941530928483861819327742585876987368848278760087936472512622318838730702938064814570081630070836156826159917615249445067039705178477283860942850465041870826689536088357318010745759878122618387650474088885640345645100640052281599032631800382334181605012947478180416740491267047141617012319608029821061982362322995276047656403728612219919785884433591496587872980397329483398357943030683281642042943103959340610950039930353899865013317687781736222562352986913315107851240159696259775128406641035886402254380058214273109921421492801304676311135819420596886801896957237958726015385665854390670772475432984747537320288379560904118608347586523918937003261932114342553894658951054920943401306907231810619935847442017014703560172423460871428005146707923425733993909053086696104846435280385007765250228988504281760332251152793388269387979723006615335835194935361093899972424961534068801491630082508728456872315307217579954481791802652579740700542940035677092208628033835656804083478141196897734791306680650102543538052050186900692144033023230828518348085733266570620506908381263452963479442973138937821753481921224306936820124984865792976673513040862162265888914005171435368678358164680772321735640578791835650953426633727879786119811160227098755402513455503912274632754823145728014073440021765586107969995079325016823272753501999140575085115017843162143302093509757235188413691444201801056469441764660622370203960294796100718581405628523499201181949458426280960398043071267412157338740309578221856530965395129212656111781003491052734549881876966404907012252355594148860655896525446393657260779475521280229505143135443812204813548684170658508474670930138657974344828151213792504289097030538425489498313304500802833701024829007040356916701859329112963251972125525835050221015650554816714946759457346998383837646117137471943919746405330427012421874810775134813393716054360194439905658027615885433997143635834352786713406632833301551457383668947005217988945012236274223067723905255459860735718266293055454123162444241956356819518517344394925618153409557588100410417814238139785677237276964051302301644979828938357434592222462845770363277189756934892977585875465321344624578968552026424222405812164888587301197236114668811719630041552449770997915304433453924254278024769627849407496310012628953750625574093569619589483790617820345134298686906977898719319564658279743711786731568372030161079662822383262587724054761537202000335955243854225291496063900831502097339550032766654138191253580750323142440456696812185545912887071687142991862045292151616054748760565637625720566711810263647246723493704327461231735266189102899404865715915077868147034357539151201039602490418012543501253043320763641108762047143137626816188725827654743259957582854908503479126427625790408419855890975780495385669732114909767810217978540567958369204620043101873141355356382760066212840469508638247755376285787222743361811690451865969825603156909455415938518014893523329525973214351191783190686452961248438326808243681373823816005331935326264310937545491712633354560889973396150455700578855164495579322239404360376083088873343557515024485447563891576264570448722908628152072714502359244184270577019729404080078580489162920083817661869000211809498702592073713482317384756150810574231662665523126618582497674522132643496799187577940891505513873097435174266431536448950395990590618010420413665003121138438138394232292107712211636615073937645325534019831455574553867658388318008241427665704697946643313117116096860327365685208284738437046250881039275151978267018421415976022938175026664881084419335556738008042532313236590119997442044788370703694221746580741650715738744415524487002887035109105979474094104294154021864048513061455023919031668808603225183797055547465635519521167679113893497853550825038631892409799813978671582380306212475700502949599264001726213519541114446069481727524139710002513691775836784325776334458514540816752808714898568383035393396903113717673541372625261270200073368551430524478310020623685379102845257237021179258817371693903838882236083692133997807874653057009559226643292193898577130636934501736840495966884890586714054644266008406948746143935076637223765323318510645641396319075184477941753256764473007635256135831091107915879371655532794266926130733021605909196654559139957309285451560822764518048140957953454388250078851107668790508528956653241984299575232028590108478832583415993325287059979996106503296350928486016834497502968516230295783638809191288791206810915316628701066277475937637457581365061806546108567176010130973809049330278153118297823521922851306527027147843258777496642335281632233288605262516328972732783244646318681394141694007405153941015073018550794644531079143532704451258848503425679651178396728046808141153024126395406637607583930533604751145264905232556057452516948753459356575191588627905043532757821383226792822110666130010477663302539752669157241377750341853990648166148703378414924599032614263835111782646562471618358432761228432692124576947714605576222239239661270136716572013979812513769532294983124807644309602888137243547542710533291158305948109543649733306468535458461248713739496424968196108935355087621868364946984295600613325362045164615207172477975837256424157447814720020110194142610880836292723301507958944807144380021994145806772632055069184673575606719209033454054865731087459883890584649571142915402088036264618741136888954875197074897309816158708258321249324841403841852684537979637630485747076133593129334763812167881023205023298699581768275813997181005256982106164144813799731275817719854483650620417363143370733029067105609483896036693119424887309275717937046515833751611840280663209252996148924338136142594468674608424706011974409645351771789906634951645134563829943369821773849390630494915417394011786717774177684123104116216309572471569139303910053315420649858613499248082823295639091184574317815543931337686714583432925029696458621334852308151341468334338866420409560976496650496212433444219831216087397728801826182697489738721458217501889988430182226894398459673727495168463331139303759407991946162679995092741774338076267931910311485455706989395471797218677836195535971159093991879569106525578568239164885148644323410519974188976478440359962119613839489169765130259741026921891453611943941651282457736236436224362765509577493294317172616896798953170916681462307073452380648541505496640273208168468143004221815040670126254897490835138135305755496631849710960821696675070965437347439027763869186908101584173799702702806240333952125109067545817800013105662817346601109555226332441698729505864945926216259494646842321637476284614664368524562335728224989947437334274422725031629379511711352862934869456556839187350308020664246017791945080401483172983318228184737692845368458621135179056937839861427973558724892222663478736491225458206513586760036718724797442953742877508580124882126980497306915057871712747496137719301274173588004154232928799077395992446626300660095482570541345151105145578222547077025086698489466937152584553701165535138303592699085850494531862537529174691096484039059933869555910368720487219795255890794475712622927492524133272185639464142073081669762488783918876403667819645657600395047244794235684229288588973423738864945044910173907988263144801301283425020317838640695127710098367004890170612441256915640903449518426654895455062069810990340565426953225398158163380891397740158861980361520446198918800104954289271954448026040279159436026983485001948042317459519847245994033140321782135413181658816006202233459302584016063588611136425907134877878056516354648926981220588542674001759688339202554968343311835053820539435474113703087457830259508085900225392689800097514409195497705451619825808480264979537732002660799642450243197879471230188870349773470000088660917856520016419229302214292911779054405416965606896291485529549296457131220555978629506378783585036664392177948139112373866828136107660471857619914865834672104082663658857689144271983269504966297420779450272160973488207241885461130420298697365636162125010951903302127973718161724166387638705098015949606115579605902184697366020218931580491409757915373478352980524106016655469398367211812417411714114943625614546893824523955341905919210590532019009001803530483787563315548343897636984464123270790851110411554878600221500858484689332941987490453591513635479589863410909529769492674161113295021312873518754393691020977000378357050956139570873699240563869204780265991929735025199656566850921851769972848332566208287769813190411871215612939186910604016496305078768920648267092210812940148462299568419836899012592327694007037834735565054342519961153466405072351231375760603028723534271855004244953877615608535935801127597729870068409966561865700264319772684860231344086802285659004178335437533125440075507852676768585831670659112085852918696643338209287570408720918533872498011928955167869291157070735712564332122657641949808128880362128111221519988266724173897717858979983315163939697115043656381913893999041099762940249636948290623764649062927152367417268965867860079315961114809720884503165377651256831165634839681224644655306783258721868677980458538776719893497051308811640092554247499747553452118353440447585153800737227677174995861964891348014828637219563367374642003664935068339593037315710843860048979501628376019487583823790140441068021458172128609599062620201068222973493554129136242572998117742122879729518097483624178475596149689340193122264160646699538800661726721380095126557848892944693936182130577427354671765806117681468192330205105329262947501480608500332428796188379461185646170718968222109458091849471192197741417059976056817840518403217153998169907872674074307745373804549722946060777151933369895300150166270982616678468784588048960326374294024994778978417798368985076638082884841217744646682714501123373258211116474722493243554221878919558227109560244040193516725969235218917608535771922957046389492362400831766832006640839270242260446149636667657397384004984848203261192620340532716395226938791997343626797808114996230931295065113920593622742925142528903918248270200682481254101170213564936802837651520674328530695121452953458784699473392357422523487684000689204539272915124841184334890514364889540931965242724264166070939977788909644676382712926284958134146213011330259094419650626085994205124688651770613038788504827821887869393323719060565524925151485302595257902666124636118509167664125417384409402970225513657132035607418962297345477706866784904861682821345778342095834374206840426765364483578013552624725459465688685984514278062872202376803398757425883777383893332007146045460046996058693109907440957690660224321459647379911981906631920146916587947440452532422303771242608857903496118458220362246923196732640034438253550694294644983131266034283107423117387560011253059384509251689156879074767878515801945534551864392157906015005178538835075288835247839919290744212318210118425032513554395523181584252077020236060560948820431711587140946473842509685036999438794279018211934028761554013543031296977158382463322355875499795920495949237534829957014317123538881785746107866125989006083440996252298965089619618113811732578028356391322048132769589212612422609763307356572801858258059681626032933876342506710539277505032656621443880354939078103766354143956919831778445465299700425638820634061778402621432214070927371061635154192651790779069353063466129267561002917686776726276410540979170604319263420513599699410377785047027295961353499026380234902761436917208270377399083243753064478645736839239445282204666455111837912578978976605320490533711032566346939592378908586891781272942654489434895675809516844244572939155252828487253070683137071173373981930525993587765039957225216222958242955154810030687083071860929583581027190592524950596541968083848294237745093501145574161117368356551992543864553034994785519992400164237163984417624332906746487311230438347231664209227949356928473859388795122240882151966738942261942131334025599544312337050686082309394612048133710178378202432459658229428428560975315075907850749763919287704866352427358015244176470787477894802953869082216102362728094280059597767690488051579261895526566163499339883403564387041586308406346299101050897129118669690314983763762216672402843476711958116106428835107911523606189454849389070492525482691736218432493889494484704497446139721482204116998111361951979354804144591133806867210819160612482118433434733951412126953439762951128678067884587832909314777769417924010398034314969217990208658821891128630989801663892614125177275970889757713295879094252006406963175119964656358145863896353659055650599503059412585262568453100986558238505805326084125863520364472328840183285137571542958588526175929605379614085932708450508505800600275778784771359174189398605536428580670069027077362220871464809720994819996699885059129859171919330680073353871060060777094991475239517733256619269720529066827883615179121359687668182588371812989468960108479224716609509939593365932657022800402974483582553456809913719576185717608594649340455703864598294577865480030526737786714254338541596488553590777611179506984396053143064193631913899345900758373812742714927967943438182814162824025067743704917566944400185876327367043613840333870244498357243289127928910151474118376381127647108429878685574173384008630305008415302477993121754428987739836195274605363143452015972089388479254941491247133485934363354557850356121416592500899946820475215829463273618466484648163832645634010673540895861642868328160058915919229330782519403915206153234922062795213609473359078762037630698121796690874654697863555304207652715732514512708381657840301936745594258472000903592167525953635991317792449316837855653071194015415686844300436055562980735174868516904218295563741478852825489281233498997185454539309820450208952507721577791310675617109718441096380006577362739921063855392407953727960060265662390507816910779863515122722450605341175896130319060549540668250783499510605103086625248646743686463552585767578972610297138520954990884437423438229000971248845210488445802674912355949575227458085720948271583760968795240557744229065049398532359077068723510429114996969574539585274833950408458464790940609807725567700903905540725134686407820448751411028972987196070477093741704719615886872686494419761962531385206130439358541505441324490677424183181211765069290990717856671455803229983909215816189912826545793003916848885945785333667057344715894085741614408486191680118816394827133728580444220601627459482770886096430237542108603104748059813546028766104534769986328376653004300081674384174960473647596006560605225083534453202267373145946045486312758291289703938119948576305812867923151534258531247520445167456550780280147820300332576917635230403068144553263119957716546644001592897521649226978510812611617839305605464270676702338913044762375826397354641808117672694166374182706268937841512671049083137307569570347730657458500053104392361686538030925366315920732072990732525563354145241325201331997320010229971143178326760412260219405438806435777944337806866194765009759797049125080355779630536359534711833030837551114204700615177709361241631156403446456211904352926731750515499257559100393435237431314941241827874880163703846799484155925368239010736358321113655031398655043039672287876719729097385422148153415987681008326361885062395120347663313149160103938340057038949311622808864135992009387327131992508767479961732782771894124130943669094187187956569183662631757408448758082044340480776900140114747271168852038754521559205578203309727332194659123614313841672199629105576414439616185036986758264999289953397735911703434400196694500297727017547133792584986068054841622413519212388218895647561509870130476778504203463854949458879383753496428144596499791392183444061533173729529895872941224019199569500808040139116814554147892478024415258676003171037323152362003476318129699925941083223258016959463223981976259189479726363965410241781946205571896501998868346210288308257794419496840669330805894676073488317431888579257554053561143066623504606305795989123926153146682793841395669583279356089554293368411696141208934561605728753606204367399857441779805909171174046657201426342822058203830232701710243665351767331663990268359895377819086449477545585341944508202500319787561800294588248186658389470499350976509627383620237526085081218406239093584770880165742993284793111199380600547101916251690207541741394419918537693773177761645630702054287766716463525035262498536119176884760143045990465742875062521941879481247544874740053104751646118117130228709261736112794793255700637783269330618405516465774977947376001617420979307862875320554180197032666927567850543787830292402868695594245607186726147913371058874472664620087394921181733358033698723998868937135767228153456867140660451082275802302235983658099828672764757718055742614525967375592955514217333780404940833734198648592343428974212744983281203909291786155171535114527652412231201922149716957189913758671777674445178377622131383666340526093584941528073655028923427511371035955703527067246817648692579549031405752227435058304589040271514193681477990315355253840181286363310968115788185007774237082273020646252090664281876510257554600349243295122567101766153485128609401488177753879720963271876203752591235772464696919705754241210838768057739737036460433435969285311089924321338462531295124324759450192221639318016801113590747162884106903336815399836759566358957055489140590025806729012083346220409716016466496710579231755282486262735519084824000569220520646609341239599425409147971209337614708652980131172385130558728739208665457284564749317627324790591629135990010116739732507851138792803727774314198041486880537819944520964334047005907332408284363323547209166137903281950703834918847258365762907971506782545980873487327662477976902629453783898846673576180441327454867942977833901425858420719959434844968315079777661313361527679078470818108917640460086783515563194109350839130819917311119663970618319568828468256850872274412554086771096546987558430922737278235874943519893318481415720838992368004659721517397349872588855112002926393826140785199411098567204856754446570163879353421783651145330095873261350139393594223045624613545936327636768156094927624195353860242308726241856004598232651819841497646090080725758852731394277731581118206294695100316826964595411306485920298735466368461231786158960815694760951700099022837353233702264708684300120176007376846479617438393604869316614961097228560612891764619660481251336473995924919251992324573033159411582539091123798026443305726634205812032296630018268498233611147136829037196776365103103891228693929514072661006610375163070747647767465617438705927207812876247078985340047906655427589209365599264843554102811377276792071194066599911376925649508672684669728906898206973357591346113709033259527751699035861323924776228592565326280741253177310763060710614555681848346084053913642938642734838704114489024796411601579147811148045503839573393630636017047951213880189164661752768002565444050611779575018349588393922264657778452696480457729626635102968938753804547788319770813466682631859522405729979614716293927812456085370147548272807209642791556736341468940067103388045994446929967273264984457580909590122829403853263685315044782673058382980275527529370002323070140245962852877496742516193422780629588338050895891630041410929167365282826491356261097049678808540858311898383097979829679596586089125551217056917881589551709270281426724984546819193640662699603142548450683504775270269805248321028804767379730775655566362974030180393523652518818153820061449726714460358145759697780551452754365332682690108864376992339210083867156601041089701211875894075343314174380747970747132151101995670966844827592353534014632404980475288015711568672401972940274175964983869973920746402026802893667309823835486772981908810033296501665448030965796607511998354071500218786700415474983107363903591644829149067040429612936171811105539964588272035527445643811497547730636637954790070413755794314877374059439964649974833993483037484088995125026346001694118949341202402993169178429893671521876238923452737412914810415655200158835789339646254748818584700397457448534944530031083138032476703871473338406874728306456542485596901546085577750846592032331273419976136756699826915975773948631457572466680631218398486475978293853306191043513889516095785503352478175604018488790322913907800449402943699646354669375947384288476547718813724386419593957186744951819121555288717750406455722415397861926404915948575269094021487291452917814959475558232916235336919735078397388008917038309542623821477356026624071408563640174895519420677165150370789124018764368429365113826398876690805737654523258022088681328637251518810610278773956674732654417854237332456215227051389385746283892317091745424345720936731584323748103364104808872321754788426928664465367994999377957453783181597130047245352637020255234064232449760262933021980888964011000114790439565326643794925509607921959557570306467816616345277246270383946273219688024269089073551551632314478137278568343347649803271233457933898632547250530628661344493857214379072584868280334074096046799616279852403063427348966453984931858738363201127286390250906721670095784355041496924750870872901922758928083720267121700179750443302682825282329754647162299241818729761968841839322891577912623309086162858233620962435956004940885553266021547069853618393730283274283322669276842348716104473525929680418590788300792953896844283460840747266707564615013059700409459260433691763785212092965629582574862361060527152491351110812490587365863147656429414836381510662608421654435758036904772793164206851808509819822947373228488991129831592178059083345953441843514468848039010582225531062152582673762090494724918773768568660034382137453460853241306144379435629708646827521495233081598365981464764833450722690594432909422143159498209088039891965297270079410308182346891664421354947376760415054700557090972325880399642511253233109306477799363181965760125364395255792503919360438481148286832735620763812024002202685018305169482059281393247482873532042519450918153686513789298652907044427110351597614551617055288538343526365412085741628340416552447950558322269178410046913211849999443497265202840502806055060603687868271862615156922973905226329428951604652151442782817581589923623724126117038553628578252241692738249708475327490892878657956552331150038491420681160422495921531772000793292401366713158915028929819387291035154609290844576067928014466311119317998355846556849857386764203797527179887256258868570835871351911203904590933731431679591107847254448195402119008935422702861123267723471038244199972280073433520934048748673139802335182646851675673172412976572283567183560431908125062647103052356976399388188424498910047546338518606168341444665148222700334964024288632153849567682491553039539036699778269087806338460075346021536195127722761957004277438517008788456361840025019520420812665501892827445126411097836040927633279098881215912067946934393175560094176607738482798242821075468720745185068450774644738111925810903955045742807986617075772769863366561795109218847986930506549186806720025308642148339264570769625058357285580045820045822405137039886500741135499897180715319063102784263873811793139411895109943673354207435804107754844599654450596683531579486936581830724157089975707437215596251958919157990069611952854972987962327537637412430814971136800766637074056110468571614817161312884479040523423673448128003402239397209530908566636579697622451124985401630353384959702602822438265442626318606546543263279864413827005640220656569893000212195120749541080516021957131277839132450506670763402003964861428396605312792876872057992337175230899641903777421870581733366451308663475828406649812512117030186361637912110852753155188607807114753467511031696510810675662367672229209117013984142842555733932797303743396996765295025511582046539149259722404252129022506196173051925016371356396432010245993498591687215204876198915571775065655090786487633148267094755893864708604001339751138378553033703379045158919436442246232589322861820582071991504640549293632584460423239926726754262920188934311240626830442485750113914467916045563584405563571289923205116332470459926004283198259374453118026134019270828146287100406374800205567423081599672351267779149514983715467135776130089789036405027993120896153123779694162504319612180951790534075357769592338132428096817221404640198214866841911619351911247654828986435888478301726557825961570602087716631168851642188301556811600120334509204000721337830801351000999852429456089897212345469729995253578484509966525510266003740625009816303344231077096214138217128165524197751123919430765245421938343877127783328353154898450711451738196371799974072914391303824121800281011067193341744733896866460315898287361084926256795053873829279899957474924298919262125816392792496159158713459934031264701058734773594046193538448976191698200598428636193269926411500941813414212667316063898601942569676339175713039890391328843864359863069950453525779958917203285379441674650472816651873501575801835359796992036514579559629807560808818417227340686024731818355261899124411064353752940085898585925602431704173913880404978686298599861794519332959974221552849109748079364093438341730870224687099751658065750373885736486930214125646574041163796250669788414992989739114214141050530752517756366122252505170393487225832468661453509912519594346163570809365416068175285325998197980920969583868047698764557956838156807417204915379576923147059962884441521123334177566170793230438335352539875025592354719187480708632532386599674788252398153750503886549415602388731549986610251900679004485509641552832456882375472454535764196750020387671402185890047774309598926903480838893444562448735180702514143454526699309703062802062516119920655268684570081148582103197058834033343767073329115595837445352118835866556875873525831080564436792174263066539843896539507533993283756207003966241550688390197205769977691931607821872748460379088837982875114402812584581321013144522652610839993472216234841884829109506692747774605307187884471782116914501423578849901536402144429334083448236092319453438719554841531369464010223187628184208073208420700807645451893316618421932391915755113610891578177217332521379647075584387043574005461406266271517308319990889001137450527047209853171336979424994189057984254260343289795927801455589897291205600924718997082222507849766723427746236805869611273970161773891992985546622663316921386269773877609014964742423179010579705834927856872222172441863541245730885766618163168253335324694069256926832990755496882720108900487904359551181437790898400089908711128339282596737271055882888528868575479878111690880990942610701623634553383121550609694431278668491349811342531529243540338923323582641864436689429987211654544557891828410952208770173451085792148210421222987194647604935376772047700321346464853740480885642390957425770782698515741036796796053861315405114839010462424357678866127848708059483057030609248338145849288685472752862375280633251994878862181336314436586676340629328271632075501861099217386405262781764058386242814015707803656803461838283656130401081651985940145712674013334301340651713938167070086002768886088246881488361665926062037959633259705937934755874263226892468217496514217957822101508424920542515355811137949510832077336973321337890215584699306873417199572771107459401052775386592484495449944365954879048748949865447004703518352250272719749757698773571162005284950843703514962460739691802293004044164059969355666802599903580891377167451486605026076618733005418847219036978863695060655234449761733910426394140074910379404610804597773378973623536402949336184207011156363102364747079093558224419220053775513886528828742381982730633933336613052365345043060797453079220548106502800808098620621807934784813484347708207662687079559414927334943025372709030284318282603541775031337574446888968390247829975480712085192824540790942268166073485391494465032719300196822486384908986155474854844251171110062123079491292013744930469129360961135433780866201235353103007195232441696775685684280419443495100771219442516550833756317922520617503753026372700124866362564677301875329164425768450303569100302255508993643596988604822890920351886198545163516066786586622836429958895155472357543991124087758068970278208509167012582937174316783868584988419894607501832098058121436969522797628112375829681615980147570554168225404560762667573774641074473305179670264034812841107829887146466889567220123391763470349512176563428805647078967951888808704610476066077788705145438765833677740029345787333471812370008479973705508873972453831857049865903694771509670851412162415836208650514804536716842692281627431538732818544162092041058192111157528986494834957550942244450876617237839541413106358712680767126221413112512675279465157093714302076416866338913477070195434047313256827844756842476857446568558708072630976869896044120238425443853692148932253953117901993482949224042519358950435645996320496649194339411560121983607911064546700929580624745383740961661582926531066615732352641931673270989275641826436175990784311816202605877792761529619988216763432494968004611221122715694752392393903531903502306560582304873922671228427216623825774572918918874530930592726071616363166164164249939979087731656080837039899941750868164396726148188414149934017461644367183339918323534689817436783900641732588707542594288157767489371675817867728521378111844889701228207308540436251052931335659994487680767216330716216156929096021592042280780776631816398074316820113260306425450700728223547455817904879501501832000237879549768266301685289432913339437282202865675193148964147360332780555715381896296602752480789504771004160369687510583849436645007811156339695777438065566233380767238247325989473585407044127931118705635685956792749958176859795458234013785608153396815643611262244251875023943671979657961874651516940226306948131202233762013185046173421476179014481086858020213209944687460574737952282543567394837936160416976059560809033156524286567687045905438767970469459514291998970766391164813588850180201476112511195965843889548971345071996357559425118124074952218752056139984549385862531313507040260275188148579956503994502722740762705625708069105729725862635503743983449645171330419169442960286933582062063753100582453611524965177939129398428514779196849465630284262858344202053040903689030486172553017081491585918655466208422524067009582774777324845300889148105068442550170253737729317190231341706274810076614541080382819221512999805588480853232669509580738292655814212101285608281284003738906089085466947609433734518643742313687076109671679358623633423484203914208866157693791968677678746309629899541734129717671089865277649000316702792406562734399901508164297523044002119220497164256688692222558313628744371684778833341189811748177967904041618678209272831404892830792930021455828627426556847818079851296920433333471332688356299394322273269781880154213835542703420403292713981927489105238280549752263019267194933306270279190797852648506671949990598205521347498362665882817791665886620821842676360660163041729418121549636334022032574697691120606767198299323524372293828561173588122454822222245480068779308015639413799292733056765966421723737898742079464787770931458920471998897645909683749367245140945784501139390602722535390132110699756442148951979762533700832901794512911456146027926140248344610906026042677205321004553338898027942040874482654294359514639514874300504980099332223894271345724056136674707899635149664937279274995037825896851220251097299677095642699767476769149238651512478146591440386610911338019485142713074217362304862775110235569686404093073994657959959920847832659786249668035910149572826964541178470149507997373522544115991296019573558469638016855417925480980773250406328040504673796908313871076962942630074762915035976500542126715706661387004767413790902524697056215788728661649672206436256996400477326668448796332082834795281693108202687193570822061891756536474098005432997892183980451868881096366233232046604405734884072562735375967610078356182801048714256815096225782247464099323442884168639168476610608567614679573123068245172630806733220729043853666061260209157545551826869869303981371522347755049602862967901605067997563652663973549467919642993662900512723807674550014848285471919473555033798578885950332104235593556766603345526420595780071231905324161260615410667670043747217772888467997472086693697613852431952539815840990719345516915992496248056110711205554310734130103029931918161884790479974474811125058806921769376049551430940197025191308718184725711298568864314267119268924140898339956443696639781196940239319250266282742473827124560665166461430408486909023114163402578518578794767371412955824051631470425053220581235201560792655106132833856313435391865216910246567284371000714828374154432183271776647045889686819827865600010486255067173415397658021275751275855071315000250349723400624521003073711064414618000957049390804121032530001830908580482561829842353062834473930559557094108387668150417587585444599005301470759706386672613420197424579321147229637292698765299692283836749320924968698358221423426589513909630604801456275094480359498189086188991330640761199569515544328289442197222204928471647945158826092122265913155665317148423148821236206838971743394281310686874088758168007881050193308942433692676265207159642332964283920015020423259757287972752976505790326168039889758469160409290356100347085970810087689553567798350022801402913432591629280815482558104322237484350747586189594521195192173829244602138680891988405334141279677625366340748467362073622673925412796706803978185603373826847370165611594765459269771799995315062738458555543267669182427461142159796748026017404844066726371099410213394376288515447045500971146930533059364090893282446884899999151021778532297858753042906796354560890605300301675313199511593833543865702314197948052476148743505320755915792096033541674862694107878422797843524563948601103664521383484571758943297097569191791356401909654871738554884945287233531427335946211006882889241267248345973179526874357353286091064532778152224739020191323790631601923299958440494923084759680651920239887665955711228888481721522310073441481920329187741896971783084665464883069573085408198389208898865057473897811559688549044615333411218055132445999778152517453156994327825064193361796446924029855277949222880909621969542128214370019492186424980371813877011404770643465296888585874184937405103709925548987426013919466286360030017687714779438481666906049971968480472595135139865230351271864525437413068667373520656468777783216509919485848789701456590720194377816366148911031126856109279980346941336765597992122233976503726860161475069427085282320865454784048265575726797056214637127729502352177176508282789062054478414266776203054400893894503162938623544628803653151854084321603102943529891569919403864014527222319534331365664733959465638077477639856953438812690872876012760968318727174522788492764324584833918288981236506004006917748478109099677342194797543529694907437119900473911674755826244359574949564942515303059029607366298467715149473986939635523868177123032703483064824624396928144670762521039464790997841795336356880596703512073416057007260424216122040318483459243890186900883007100440382977695831557043468702255010386995107667650168847606366000545651463022622689963181272730910853623090297924404349676843758850475782708727981528211257397061466126613218240069098576948258376922451831733181158042691744883770476128527347661252084558541976582427695861594440258152976670164646196670714330341817049796579179681353593572743005408241274567967561408357676032109465106537558234186910681540106957222833626149436826509832166836266490195928606837786370021733843459665530973392588200568788126550538620635584213873010926858382368010714743975909658649684595313929975895806670100799046610569939413337078001446234278806818251832530336155291697785906559322229346359284215936387745475931627675972106003441094572834216843841568640956065283772502531635768757883582454007155594143796357697339564874259626133241111485966643272054332318950374427325358399235328401097116187482440162463595151522520275470750425870314389468020988154080309907023544627609228835063564577924683219896828194173432363913947551103610965486562901981209748903369825625361089844513236701109372931215788018603149117678195562253744405921370460780452661862190617791631430427248744211142460648703722478159369066465752292610473493245573517917714813497302203840771136144272038421628869851372318255288176589932731695059888463088405363276782319596478640360692363714006658421628068340808783506923399818151550583442111035580965224878772019448410078274487318740323733185064980587335826298710339621887467082778614452263335140017103918502516839700045954576677477536174862824439781078260860339124415126447502008436035246702718509248703324137836300182536509022950814112231293341985623903851004983328919252822099537303833781191389255459992650330585455746068298204812747595408376949781267713890578232312121664953784554778366084515987172417980742009805841427361701112466581328255614076196062639070880988127358497764519367109121146244956958754980862019501355126636527861409789858343909687302720713335269445687589554767318541724868814628717420544952928023656613587495635440490955381008517941217019726835649512630784414371072711347121205929401102664931538387649634683994565901104521149557508394328598031315336358703585110139271145972749155284553454847180228135855824637693147488986948108305328335441110260160396544680212452862125072773323524765659995025324320422112111342013305646327941681918582749759132204499347475300473904876294911088395960423933284965234973761211193654273803586736868072743189622252381644343486149345116597518466359049009232848088543529750166800684615200210255388769326868889525090439952498408391997897056863728287358167314102902255254091751350559498268188022666808297982793330358278840062419852019632984865212581331843243309513798151065397899210810779459053050808085977201393063972755192741329433584405457205852319362734339046480737924863203713668663205924837085753700089367543052737417872067737383777546453485109018222019621272408538493819683266121706077186019873704489365716479675888036862637652940067611733001734888445801466107709501143741145744086157870217678191956560566209978315286942695742414343179557304393904917267615007777254584199990232526821210608815001579395801361176834310082777425990855911657715550993707453332251768664138413277411182686727564945752399374066710295576202060321380029225365611319164631226306602502455254019901658785937976824383293885720137223203360939158668430611911872131194217381266524123043753673590215994764404718896732606252626848869958092928764031185154904453696279901031125888414839308689401513267427205783837098076073316517904665896838536939988982136539229262146971268620893140840326109365394370758636762270429389282338262679536855596898261140346556960520129425889395034822958377006389785407113624718302449100473850559459153434762840997318098524610086997021351974421920923356619824435949233459769381987307652682231447363071091885234493528788713714344478514745038005261916246607205589642509569055149131813399304460693818483636092472896333404122823037660719042123334584292259998395562840122102100121045300820211017794860131360640477661347443309614481727372325125999815244766124495182567760948554016022829078335989954227193701859914448784167821214215344712130138621532407330393681383696945464566615492096372092849340911500395781161326062739542467049462283935785486080002251208215170285541388115019560434261344880764545711505906462254071359284427997806963553394060477216243243093127716036914153011514462717659734114016947818594156815519359424579982240128542335551300297795831731721317857400411013312206820883964537273212494783065463070921680678046300681860105453680402423339826854053980512531464744006119995649776024641104390539821369897383661108904381115054978562014194498801376073471537303286794567674734700218159827512085788789359041441372621017437756074933014594569361814665608295143368968994355501597264093834507495188472525295904840596961105159534593242367737652245528511221024162961942893998184242147666961124433120121567573372723471808778437469746244570248403581676055599538883864796620660244266810946435657759345120540644324559064272806620765322200014010143340280829650314836239099333802594529650150285876510549391275664170905815956805323087202922103704477438097124055969981260600125772352559034201283061342287966563519957575608681108682438204161978816373201170371538648631553743136936633769375576785778264242076959270812270449660987821777684267422429234565929917507786469091320554019965116146147865671474846992578148111372897022561585639271965038582478762302273506339200647417361699660146597425746275442439568692969993354341169637251401524432639900044210865034217607043915156222256983653116499931035761137011129348638553118283691113487063381568894898820369851446716360262288177530368871742410141739032428977250277655164796360758171129655336518548900082583569554251237209634254782674377235300715940269391322012188910471293707893373816599314279971322314572493576479870531508966447410271723320439063450640608572523546262130209701122606197187105790230233133927517776241271616876727955015945050195167323472843256391166436044754089367620008621112219436251977967290274776512984766442974985784846561517648237172018839049519799115731915657162363759404572844608469286554101134248453477255173058536960986258601148987412700700529536486986020134138116519090541799009844592971897092173946868735402397469338135054756624729185018406737078825331169702331038970910421212063718177482492714226540348016623883075486253392779526242791406269095878351154837907674908777957765699589629114207896921782781546965290576738023657848846445559108349861130888441606111861749017500469175107492691990152338098819844130443270802969787378922899570699531709790841471199852064313722150233265091344068840662006889607635380637626593970500628050116712578406167832403005400705399064353796636617106406394940268786410482993422491485248142643214970438366354493029106427210875977894352143150503397299537865090865362815464109527086964995190867510940623320663126440032859895619617383777246549469965594963137754959236936083232179890025857259737806984140463269391945774451225964388472643685424080307163518491813471858054066532345420272123935029860309519625783965557859048371429237260291241496017042088917448710986525555927697737278972068335140434254027255670531953729238938082386212145200935475929700056243909597968289902915025913612801160832365395394325224231157561389184945576216906562461048141032761179594368889622969782472976467186535409538040552536076673911758259765177673672373975675067097048866990623578995286975765698860028610937494556937968402784770875769298510980607464346036809242302275079819823831504571857582263314317687459090453935026277298450025179094477843348146222251085222926944819106340748128657255308699484013462189836638788455221937205438363788535185836678046065204621046181977382554739860303052830063816449201802419022556908430606705573690654350112700943643205526151602421417362242190425106256807167249541046458311030082455640908095757321944237856979320357660804050804064565828394197844493244906763265764323800371871506350328746797587471503972829546995598464715403100074123507453443705140344907640437366396327040526968247076938573497090777821307806308844550464204690594349503753922830228054482224875946263477375095120571336380831084899652592154652436035987761066345865776226182813112689298826356205949653900453162461213166846285482617666880643390497879455087436208424069611035383895685112522707589967213186360958008664788806500754351162497347352197982855063247370424649989287871549436022118743799316360258144313899393211643800851479861762187459786169547066140665219323997942935270758970339164651174685784114496221637137602797877010616667280078125196059573706897950649440830190733338841551303208873654623918528604520079801371101480271089444182828584784454205140243501298331976869780257150835659722062220563478120675194293670311558644769935567739105427012112234787061007351980442379140905926649578989210113727969256592945158909341481349741432738630043449104762456853595301862261382389578283198954620982873093447653898223711568285810862415583774223596377675672440949887592237598852100103176592738420747041537375494180108035948545723869988479252362019483933518999648643094666497285442951673936845658663792166527422875512585568154113575732441701203761426290781768592807218263157763645922522884572511806579734199042991234470305904391890901082463283551622898540223125192065708915852617509875798688328834282990761606519429128222176343027851912042590360116149739733352162459096381950908080283800490247568542299095103687497057494502039723399406447833694762918593747874442413735666739753112497534775802233148215362725007243457790135534886018821857849171964107432852341519330950592513450084470210390454423294063408014001746105526230396396612582271373397004408878961416105116556486103673190064985883729152128852490155259389483721675952028909847001611296656349331606906490281671343713113299103663307381412434242680713732445509459276221447792461153297910474148576230203667471429148582223768591862484670662323995323684348190269442685322206390883875887622535857371948565295886141477557844541202869759127415438139852233283166451733426673444493525011671631298256941571083593216436758589325936617459068438325566824736561929893939167595435013682998731115034459949787244115010773960361026953869590574935645504002610171507853903902861333129681838451299600724561825218874371553847879371104476534425648082549618097843400588288696841336723379478075865832370743337677266653767902763963820401298529154688918135403387874687238291919453699368519459178657254753634293623497169275883484450384019481106567600991647918812957189533040160688481776567442363774902466069659433387495213918981009283890302601132779895298761769398384087715995752360260901400020979284008328051845553924891487214712190917190750738790090431025204284069741107186792346586932572637268044611205539795053846595101290265369754168436970840531534810792902875268098467788467088778960288930124827260173510334585933291790461686353256263874718273225648537000427569777755831857383745547088792397564986398919269679623993125739839481839420680207276241338296004389639399701957033711688927850384363991803708397404470587076916758119877103555008134647046507715285941589629958992034551644690314272606664476707499349289740435180982135509676992039622171214541453181075644578426507485552305541013405849982235832980006041022911749834726378944861926636080875967781344767422641969860402642673746101702207547993050029798764337860496206528122377857194439381927250258010309000140922167062709681900480831868055783990338265118708545029049384058476687327778024502661866142275412214208437596947558263129912835979413315990940482045487414091327838734879528132242774990407219528378488296596817615387743262553829726781806852723525543224029585535775853997690354706792823360095964905632965258029653923044697424755640808888138864205255819221984531182257386296234295567604560197120927759999105676907083185827626777173424637373690341944037635941741731676409706535683590521193918836761822506790246556187062391067097098726535536367338472471396599583648791393880781969806870658267824520068884612417848266159501887426516654688787461785419357989213175673974249965924745431396346427701750909265054704771786615467748454033035338517038027494676551293197235976763134650341911601500119603859663905737117764014786610751921974006539137208770925162895238009405740953221019914596355191271656770180786292802537049375312271624864996910392212665300079660803358764596954216639930588142604840630784786827211584752313558982041940154578373797674971099862003400129275024739455483666329681764169276934740930621769437922087393422576820044954079360714606588126249615539317295873843534143720985641600500695683152500533027129957388242588322892586912454731633793370083439005961169667009394501800409819533097908532171595059470096556021381811507626736002392102648103608546545874214826864913859872061869451984076218531187567912446242587301449333564491276962968295838173675292411356697979341704219631487753354196429484937183494264888600025124439495314042139478359583547468296732635809393264191999810339370601346837763670238167635153175699720110461840807553961655112942050993360117900682650718749578705554570460608343430331530440094024617051806504389810533649322636763790376495743118258018052775908818752557954451081788150522971274041789846227182953412267844352234821198032546603137872587965983226116369105585543519349863801576063540145948621510519037921539728120518045345846844212112219791374722174332395697265361055163825133813651250837689970241012006042202025879061854562151425973329537607467493062769279868787172902459993973560170322583746202985176310267050775657773223566084625876830878249944746139696195142116585641719758859900526040231542160513735708101733430651705411367403365587979884155665701075107595313796723509500704982310926405396242987310232012928370196051216690427908099732621508165894616648835842182436865027517218093144103573593758160058544128186789022116623888300884484222907360113015219206614406419889992619173184790411163554742503692516632519867268497781110956834209485457848944544345401793767989135576902140821047656755174949061996918778992174269073931648191505369146244169321931885724092008572393926715201562869348475450068398369079123561491014905818807992377693695596095759754404725917049525076226392839443866034032814110588271385251113049324037238029614647964276722944923289605325466236593405760760593768398812658834451122330180975355823945216208837345908788129674105722601665267051165976405627102733898194310628652639505442755565167489443353043151866714975803274974133041702936856682770202356989147877484239636338864377807969863437367923684751838067314386950264057444629277372689360793643827784841642362810147868230583749009952282089989030576669559294453499285119960425798018349644926426074301559167409110730391959848446514090226429013625078651674273129016257276226679899871204383137890774580432343516366666385499634930856653688550927764782538020166389467015925057405815844703750201846286771422559613485996481247715840007539800280384288130714198749982979426876725901922336948537239213722099483648327058383118302042770237348201474185213262257180422715582984817515154934774492602178563991192326941083155006649256379549254715729728157078476396011826036806044716693875621212994015173072616542268353854048340945658331657041385157129887378219295955269217794431375737702202157562271045194583785539626136361472290467738407106915663667167848131483837939050943930616779911630044290539257288513189443632717170864900341702021566250883585233791244631708548291074216892781296333673829235646797096185436753094326376851707371330355349151881811665220049794241513739504563751861389032050605611370140780903100272913705528081638789966165131315312653189115120879486323761118779247667417832236933342055016090143874450954027160282042132163973645653121334864159208007251033620026874779854004702009412760380013314732577696449159079328643689862551214789941546318705902916905484374617465148685555159466377785442432487674016415275756855183280261540562188424914207631130782357537833085700612882506444826019686462660021377704857947342985275495716835349506319365255378704141072918012388362218692532558803745939210390867345943575083075623851508233828822970040457377615059971870541395021845193406439031926125070656109154067501074748964565724433271385311826903631337658629189173068557603811262491670027084856333197076030271551828628489111150567236995949613446840181856579662128717868117958745011744261017094818851790997044633124669278010712543094265719950483051151108009080581390602370679818730362294603412087579269686995404250412427138756776606207079705035448345370247970768452497945044928723531569154456667138564130398571011191343750296222380048331678898247174740449244140012783674425105472571991416735792196783458873076564506625485006517839010486032804884308450232802314178313641336078075834313310232273153904429602708073293130957402085263158673654139137012265355905511442279378874561720478394577466807352969148908132971041451713430991155011240323264276421623967152705711819678816951467035489883737494157855377221978537260750570099793523667718267302027796643654351868027926090845794882108555981268807414260559141000286002595666685067744506245835421203248783003351539864234814699041155881818924265068616299732839799336417427185683195085542837822607524670604634431726334265764137717262611402475886009515199232088613914236359837051230841326249758968235517179029948493661290734806742452863536676690124157917901737114334825545412676254017913228488598759596571077871537339276403351444850327368022935426484935933042270648050426096290780552548367089282862201320189911033844666458651960352388844006226005466790161028576026122409203358600761551405224684586508136930792838413443391062231232521529092695883573123983233959672988001178917826877592901989781397569860066135369741095949848420023286205588384093714694256789000901988809654750708997050634676756220872427567284962473464634114645318437183133478087365525418468163012935708421466055592282725727274427480375369118083681568027915988642500393935976335343132674401662362691530291827346886294442728777724863721459286861308326291848832366362338435571702993888286951749956884276164571484276171500795975027197734695786215830680129124889842850992257295064922571358290436289194475262991451782711550335636483334081704822543042112999604559225372395457495567328415994752080962952992449476988203609493804728818752087561115276503160282289184846885566037813430802551544737353850875050511275971029280520297414633572031702999907783382426199960344080810756570272822951478648428201297447364126422488240161776139520175947851035864555503961895005954202185502345637508855783965520646884327131254708435442977601826775248010291351090661469563042052229270893612182213991178697375940500638455522265657859082351457809108618328909054438517420775673143561931107165807142888478625384789215280325361008077202793944585018432930737356003179269227252914827810755963715729184132997163923659923902479862756570177828724612119036704416932768440464464667335657335709291244510074318829664907348853047446273732913226315531987799181824955011867364922759544321822263763269509529281591894804606615308530760098365652106659182516576579328719984710671811316357907891551123566828055521547557410575838283426227462872792636651075608084792307084467855803354108533184873197622960106384931652236630619851717977493167323979573973308743311129613237864314930043291442040582288869201692717547075400018937787654258014264815406458939662667486502737760485803684975101122511346055943766060779166377805346961455512729566724344284190145682204470581088100571955683849527346031670105596142260069066672764515468675403798462687206250343321623679688535117907119617066972717236688566806922329231030615564328496486984618987595736198435170660435454493733706867127571223297685910855689288356410652763484700409186872330683994361375865424488792209665527166867607356363675640083354443945027793207953707814956560847065123479278434995223621763795085577870890799454435235448809225414269255683811069730450371503252286012655659459548131444083025658860309283515995335993589952195942711488252916961818328805272972474897546976902073702001805115543823352138383303088926179259659422560740948998285619146637990145995810121022794874502688932300461616209208393856563445547609266338684056542353758173347554328730428745077633714384325072224047920425132130701381061276051808151593537867918298167326697963204998936911070579350644952497076669471957271052509731912751296548310162439967464357026425550036028210144145217637610238783442002590510767838326116703216700569828312859986058503191604236160850840592700191290344340732918086735360951549550176038825160678528543648885206310606292718693004313662794666773593134927874879558764137155336345450004428362882694688957769722452975479428753486512639087767790983998450103445433295231557350360886728983041782380988506695898300746189610824357910904376167194994312005458665281117190241106473878110150679505758029025351292103405194195838768653562873351467485349610854197398716073270763568855969139321169632511956962585258209040855934935727339142709661706625918518597891689541575796388477820061087386814006376584112172407720522847841896157919149119812998922414892116737926338966916339603884291532862275966019691911816299032561050138594072009825866753838050374287875909799435910367840112821133761040937353454335323581491315427355802003373238047907170925553632357956327611880507234480869851720666900280000667147399993304750648938611092992076631383914391893177173719013408736795070557413788234639877906213744927642055805988603726323714301156845177561497208107710978316895252122833406411734143458550220726247563866836135023394811481613914075087131143729176472726934885976469386170425342882112826158252968675735363479885223742791287490094282182274945256618821656247488547240128149484032891239406282362347427352114260376468908574260469622392292246615843820868440090353327410741320062343322896570737198445385487775225594911605031441474085177388947588540144799708903299540322917805292289431394358048979273164069065442795521399547901450982441437412350292734178229999775557814120375507188887750007706138719818146163491293403074765541631360103284195546547085639425309432915872857143178322623238157989586738484542749301268840742896250428946856783756859982066996735847501403558626667506154214905747083128391301852344907541912800318290690786424727883779390008763649477464437480429187132001060306392308893220577090415704774375210990215203593012993850388334331321788596528524090922261238339645392364328242348320739778645408994167397931484257589966001593861288450105875259831360636621450496750243919735479315273492910123844038758047341426954064954724237216264008378898255105619376092832039919408437583239753064928263135403676580555992377087819683306955483489906025795962001158414791814009153783939394729447122690114280641733744456652474326212456929395464952730880111098755990541530109718398627950054812796447125987177153877946548924476937847347533334635008709681640060671715720522775797416746894444724896757260174027686985877180927037385708938275708669578047123769557720631927823526791093208136062197841257132582655907844823168564669849539975673496992360350779447280280025755615026082923199467789559867036909765274640716399557389193234987950904285302534920369188198501655079951331102180672661964105288056082284409992396663995842105746490848387915291691554586228112070023206119892065169832157775341688642472616646210183672986067605837926825063814805960790534693861705813421456959262531304427291096964125288748182336837813477017040381911594306199623069665765268910643652727248405834826846401425289205517253479894135882077188880306956370908189943705275199037451363245177560936752343887396540782742553002150208932560402382154220885325802783564691348399124938205380629638313106029502060360584286169566962099715935006717839714955801595368639858896861871002657592255229308581120829541019111963175681163013676813520004016237722178367175360002472768021010528302867348696054246491125524886702064040450993774938018696594794634374488694592277359698779260665285035128466220689940476486962170997977911987980789382058186110513495468809609689997534757375521298546809938697899223065118315116883662831606889768593522843012492282988565935832458250069501115620930980447130321408399795977481962684556648473673032431014072142148174330301774984110763841459860185942920997956028054481595557399848004238082998223783086403521542931000016440918133018605857618590977204843274195158430911840319659245159874074380159990618940913917559116093653439025055034481941150683074651017914376574499445180947041735134584155360230478419349013294800639008121594055542348812809908513637902285552547457558360439620109326805757749947700545553116060224048453465254888143260150888955093481991468111150414743113499908655236165213722503463127823209141642629225231419389743957229050335678337931634402573294894764864614214279694093328053044417535660100368519389089026406794002847185343880232674948295585895931600163376617955215297453377629658053561400005755618970609305241874496848650550913289048865905495329711088039980951880737981661821137935705786741701984123816421011106461052830702020489359958653168050876853787209764355757669059432100949509612662753282070393636651046191826603070945447054464082159922119913641015534643203016478552974587468967461837070356341464537870511522647512927964148256342426445030935010369346124644944779876701466017172751220914961028926597986129595782163939548119118327100240342390921291647732969254779514623220051710097316499247134711027144496514272577544145575652058760031275108896150763477220936422461880876302948493010065978763905763860802660463894935704885870881014527610420197630608695746018254005471171633738254984207084592190368878178577930750153200485209789112426941456272549795878953757352439961005887894164036065567329062263409677803096197576569350797634313505051185899245601147552098568923477976477495023143836878454260097392130837853794066025844396679658327077820662168163347375003898347547652349605637487727539601784447384881623330523281363205126205918382609522599789028097604823316955485866410852066550935540554810054356776279511033968718251931475568726395427980275057176128491901764993968667071027680896452050110526576538282334864174411974835679059483612021740931625951235478422072746546178506079192095339094532813681586004040551726632005040233630936198257002625896533676432738752417052147118237190940704343121416596579700815028380172146565697907672963104851748161698453065488109740228357101130889619011168258879070010488535411084308558114666010040799480844195475605156480587132475596225584844871040241845380928367315088097464946016613605982652494798541415056678597605795365557358597649550037098078282527624086998152687252136357248266522378772609439788915958481487469229900939418847406190880828040044572715084173449544645803751331199969334058684119160566458185279254109998600350528042959900541238446301129281702793707420291266766593497705455970543093230618986041484190464026890443482135212888807390018026701664705455829216595833959438978223458898926554499565475976030601975699973172848612615819078504091826862720469239498417564348391400408411283307486569815587470969227035834534950102737004506558835395541121867816790175783782439160595056457838544425364957368160479580909088644707958079528982787281062717226915530692133314350785342629090984686983638885185911046625850466344801501159787729471139357530744865464551576789558600616916907808251541673764802308262161116571404328350429367901362436949529284478922266494092682840840402305516528162125219511406811934583333797761226311621911622711635643052341558510489792280770282626300622091025584037544085563652883833501614672494300409331785076662836696165472782021123301417644114806194316477199645147898037227972835649436947319719918034092197869121598682793174253422271016727849781282601418004035124501680559240281777204463926184969011954200437843171733452473442277743523462768913881883726186673767752413610858723279719354822593767237830446231298986862384993303256463418331903933347703351197214522525214302895114258798566174319910216559831293803872655927095222778470371162177453944941376382817742983349927784306028968882684249354199520129041209052505191220545836978585692760119222698503686927437688523569924623060483820960864156932626560273557999033019282310636929153573711500637007175283655996005000653907611625381778712452325442678209656354389767392766904515752014184656119628609856894872565244012216632908443666447656317216429795978875064036705996515580392358212346865292017249720507574637066606001028562523196179122873750257384043170312556991005520033194063321267886012140594344855293784600783204039422391494633431463344939567418636154413258195230312669558989981028589474702515975698489431534124107757133974820476373372784332188805678285989792359468597871627614013614297174198949595882354434490220828388685246042648875268443310005071368035426366983307192606264534567908690533241884607918173567392364440286615985201796994775227990356243622775847019047381220685543455190486842559581864402451894984868089780205016241059242277460481112418834578688388750122363658725610283496067841581537199194197161643682749704312032346130305684706694135621424370364616920718275748282571566047281443726075652774147428186263396530420614650211405400773713546590244076959461859572719871661247662372208984869662020516002296190096366937873975721487175753911032228701485795259744811037329353014632296475903298457443208710847691850470727523269925845235674458218359910973412427062252527737603558159682896393782907236162882074507125534047133929941596025346735666834744175371085173224492877387823760086821718412993591200203497355356743056206770508356768214174135818008701597335272367654490442268561892789266365747507974516594236948184264046027510657852674032085296687213325956002637800380007468507552442293452237116252172311757389590362020652149560787340824233190645878665268482496717401494501562775831267132896942914423913347641538752971450435703065761006337580257889346811064936999182138323819669116949640993820228243242757847907099817496095032982498190370162090702603905516242046768502087116556075794721418421060891052794369033389627580778260990995356110228762573829204310883732232860653612401626113384782767123524289850790132115741092351087802995225957673638122491097438705454214794264629764671084714157118071400770306271726472006707951728459778090621372009641128974293572652242105237557310203930321095888648289785124068066589933698616036858217566942672434474667537257208101073216510901176116559295224918717446954914486989381721699475479585904492424895774032294635391476231351229105561540457086263963710656721098996863744758716582683555231868811825160367075018312170466070570214451731584443256893237963390763526551950045027188306839015945832807780174019905597439386139595299728286004169719036220387505450628984963952054788261880194807671079554741098008498333178695180952734491209174451760923372741167940150389188418548160937637259647452635502532674394070104785664766596791117444757690367579455380540513679691001046218247527565497442042908449719266926808297022909252420205856554302734260798660876511193886172215185218147858222516339772364069581699358532563669272817156376220278410873634931489726423652945820276426668279512722072455493815086346843024045292733327867767229026567209210081528640547123028333798209327130979709829762691463291241681465404726112587338556839108187516540973271442090462291838191704048397706707466161688422292119934827842154550389718281407598067491747768568173012608288593307785156833829973695780335280964543557511267233960246960884275391856249044009619690650665529140841898927220795807523382504194153859863123471895697091700351482279345165932529819542905679305813641233202686858466852342109430246222081710343370645220638720661446881716950037532769116235708151601698882629670971731269512194701715479487414741627128607234249240913076877617342163175989679876408918676170718127138045935497490159772155297453862481535219815096170452701834581682618614428973111668557221714424135769199197830076677163241424333441422781218199924432297880962077076134155463830772806592751883250019378443534532164390273414966633101720927276229227370218746393101479842173979709843323079245141677567114366274951997169693338612446228934280531679320322977612002697604201515107425428791571151725075347771990753451209991427046751859110970804512344821863490227383193407762528931266756714431908499687880785285504809766314217274935449835260217100806649322875427309439724811361310443213221349298352034170908686297930792433728451813321965501670929579326587820528698973552311789768932638512019646524732886422894856133940643157706652601182866546983681604253937429444790370612605705230339820039822911720837160950424467029314514467797507437989401361786372967297400155253767716658349366282779342423169892902425747084534419354529574039609704640593365195377539384407723295924818242567383772058543161359375943122639595288387176684683700654528490848682997332360320814698602870712298734071449045632181320403638195286995409882898170054369227534386153864001195583111295582080892729007111395861565654354816735373528337689185317205406430421111670609787780030560118235108517792285193546919453913859800797882434263858804619978351652101757875732875149855368855250032109787696586384771572127445722990316270182910034594924759102642285424195047627251729853225210425223691188871692645258725096106015511487796507487772046470158547341646671662670473886030414156491828458007793764736922799215373547151082498173329378236586755401159733171854688620248259964341102983087830489631622425828700301359150813601964195090701641661601134818609893632288161835359497905938295189684823263520920617716093045828407512689744427802734911484831201027496670141543167120098975715512117372981979688695299136463285455882997958287085385888220540898402197205533960755274082665863607518388063365555140488890194188902716962912198415215001641741119298953072041041593591127033231175527854942655752443472284203600551088956395157250446959705633642871389503326497980282895926652645402821511789006938828891537306948004727691303910704130770350364062126556164637895318535817692820010869309371660260439885733137999844186793136470037645914863989661962626889103829499577667048291434292246676548147173204134002570590358400636026895534624145370694288728231231906439900137053916769726040088383076962809018622441418776003341227301856765893459400006070736505530337946775122675844404676791240414331372274489113616827206723629818438275688652990767666286185243498129396769825360504799048385006362400760674693419474850281594328356811288151875329869646059148556129358389057232650252949547698381354789996833443419891249077429916646301840531882816701206053628691049547001767898757886491234606065669130749025703444516623468538811326543740853641136399541852983831542560592846147524549415349338747646309058143586176916407500836467237623056512579973823052421016861905515081619099437225075321876600049189001714190875352653872921199848813049518369267699127014433871416714716646528393336069141965392546576816188661319700843149604317415318601404039658397190225750097226610909605132469116016768521116093280716954910919487507030529122007316014598844724766631299772374412708854049098716669942252986821535683064381916498890359084835561759661997483599666737278223967795415290464697736758439583280232848088856593893719752431462324596830528384723414193272533681775470233735084858458586968181619918939054998617278678712611467735568630814389001740821770562384497454895967919664689227712035780166587971129168695774395522633464507117709537440265327136558795118338227739409709035843449569714351270516001652609853168994195528519625670997032993563727926915284800449005318393676122535079710788684908312307813883938255921780585120407609379123478982244469206009823703570859925318196590716682033016981221295677744056249751389358028555498166883478752514265370777588947965075281453532986094390716314889139505887008626805123319214332794115499576537417474060664271987078597680163612025885583710860095061283717721936281127040323906389161190793478040145152151821895316665755940809032661925773274410869846933546580991337870098690394262069611932927510532300679836917616943067598142087755280552279865289498040893467542532232770649323008718092791161482554115665208363668201714680962572706776865082146040929488566482404005590441370043261713243016578215270118079992611182166764202973781042064914620017921500337396553195850910033304746022140351927393208788275539587178288410518237171605809238220297842981072603989345580869703555521692564600583835903531660903523094781981755774160656099986213987144041848465872150031179970051487632145906564447046057235952843366774646584671122586340526018138841971258039373164651768363200522668966200637847250348877404701435147996001317151267502126295519249806241569980993817262822328887639015241280206687010321909591015558383446393664616164716730285513908300054685996481377458955717933479771499976557739975436244182738523140150010041615162354097902391660938764885605416049870587458035540485384250553654420476711718037040805688898308892286358802742902469847421940934734739630583238225719611392932508264086010498864240716305441832402460542763884183647259393124814498260017731014959786825201174087172692402146999954590635375864958490341719817817786149166290532648589495549490027084303251211352059687541193506122586614293573733514752257711926470836801117796278174097577685594408963515860730726944492664175846142094732682328377900599335725927866104228592046231453360456666277458009043642059219543384386546398049074282996978125822685757100332048100416482695517552482798483008988064155416245974974666500761297763707948129222953712710296154539166265911180469478543861695717648707410268244025106836716235785050497020112212954086498973822856741043127244488114589175441080521813939536201532652034572479160788082466216180988824941272067265171028582595758925543857935227345150864109978230320577018911299631826940247303147565474815049991102933848454411337285092119093411605907131670979730084476310576588187835606977386624353141707862310700267244365991418574213591703790924170413144507982751358215661323322367736758335442439382441613378696829542253321940497923960638763223824296998651851997550953082195963372510458028636933752705078353200658699820539478600033271326690367000411750048070882521479965085403196621715950773766380795708611464807036785058894980146341021987601887280414329216156882320578668827565777480101321869668977478801362952029412858620732071333200771329425737941844762615714747687995625579735377644401550974322251374451597859562601320826098701893841454832065352064253312488567473747058844905292987741474779141172427301381506118755255529737258902284994366632602812837360033713707561821723655636020581114718759253802758155637501120385221723071759441732318178525968638323047068116230647370189114990816651785229870919362067578078441080701894672747432040788842102178347218983485039630505390247980452362202162690584954016030615678129312322809545727765414986024356488301828567098881645807316608267035095121316651481854340813944013776428278803678498950772857265236848989745966698440242974801471723798727107918901110603152313703541295430639627793142465613346638389718401271508847041663200490902482528533661153778537084507950205976384190427683564591329418766281908804232109101608402150052581845970219048514016278813646311760660974681766602300817875775361419228611944151591113483533141327299878639745249922886928264286529915046539551657943870387328859019030495778106456750893544116546118477859575790842615038143731302854348043835825496651982516811700137692357789163048149884193960776193398384125245462007023785924678523790198505950061543614126868414890832286956847628737162163570040507409715294882216593263610378150946572551362708078702788124046940704684730528110274709679001749762415748699676910762075112707814679356817831084500881750888026907190468177528878007236949513076983215421064266587431987915024397820375248465374752238955066633253479759238444979454401874711992953844000226748454978242706225932493285579666365970297830693027981207854011543573693322096795263055188215602995657757705412091685801786361104479511949337839009432199241207926888609735594695012815252758389515950674650003805607491103869192061942798074534050791715798789079300162998255252536472305174254141546190446651481082095912482607427275568308961275050641503165330802480157921187608473520475313569176437109476979591475176586746567334194320746750674653660673101180048036684214311006739934596372486404852727260097226447412869311587965907871427870883993444824843224569049108003942039997550793788967835569422390280186171529681835288171606735626723071614260635864365999998637460114457278669946268439987152368309026241965821724416273707377850228807784858036082819112802231627685886151103206358643542038650895334280495017732618426295642983947135862036548836033092516797566933165748578719795725372259242886819578937919370600206258433654558387278112535591113612130328974893097071030690818764268542663212914253317741482335497568559500183893182381748469445422484231413979666529488081001392343374928044465258434969014876005196568204487985597343213721885528712006601580107290662047137504148332119014920550170249127927471267434793173886265885717525183610119283002108342739962998105150101674642392867390906875738279965738777228160147983088478906223872930965650285375531618333395031841732410478079675457893988034217977195059600848303490181335472075830865265298927350950764771598196455400844439537095584624543285761098345160047347536362145811875080053238194410370121760414855978125411563495830441768754284065975262384391172887460634704486177130622062247296005586263189875207916041846845479938503965599935805181164908108348865897444228794286270527383236833959732875273922645768387868682077771959565562294307921282660907761711107881656255402480978344759078917229106059894037123794162721975563747831402990973232222688306285717581062322266221865970321673441395753309931674976927538608189593637240341255999988652585210873836523784573490088510215392212451868477103773500823507619706380349512749817731456312594205874158151495661881493771327355684746780768513951481929396294984306711527458894995009250974428703188717801891092213546097708978318787852597497325692581955674045769953927405207248531119960066943508610291205926283655399640465745078881230410645374936610561701973627555873410673457884562247690790953921741390468633660038214742280915344652414055055683030003518035399519844723442369718869370030412788100593659331254653997017311255076415168592679661799410236632693629920359288801571510727565482277790145060507840842134737235479817974283761026200208491519607994645077789876052845598163703543773857663768999507951817713299977657291391641367237537328363591495733247902877176217245494636230332290651154287005081797195627130931375321915596870008883553027741292995430168722284791830483177910968199666900779119617171728245566490638498361780249221801588676960374769186286217684180581662593935841739998177421135452190474859116705412981722629440970961925557713974851089144308070977208283334589343857283993543179725003168785359744379470576579933878250684469863427630867071379631573701904496224948410568920591085107747430838373028523195905594711038652199467166368610152033388620973768952627977460925868015933865565546497210080667957663223978273552945081470525201167216660285643721930540409533133215395957897845013772719396589782982441260628241365621666667696416801017428986649920933693945041808019490004057709010644734379866251780983218166649274835123086096269518669502122144613819554392388066282772008995454794306805400571174754907826863495276376768712759135383516536094482810309428214881162292845945107827319453821733787875006217976679003195996267818710381628293693308693471002415985878078853097052044867816144433054708119057596810719942976421608264394028745409099900188444179743137732579548199382889655824143275507755289371256130432975547800129585210042248224092812319388174055202646602217097957008548435532080307951583260823359312840358640092660695042327419920120448045881080710124240933810102537509639954766934915088561487053278994731661274591548441804727657255774542548246597439312820807836089632070679966079164601733451976205489448010979490742531367442483847954248572741737005155581601495729795882785165647874531412105808950909854379439408800719166338787433379523933611385154548149503411622067265506353429462616093554802911656825069094981462790363474547159694049548576481566108092705507934479549401083021447052617940425428962748982749224306582765995388919007644644755319265270781641655501560119922737960018334395319913525379107815332070261528985147258326769196057535711896704755390443996726692749286187446345682802063213298517845268121382361638253755734373200833393672770587151559601404687773196570469389713892713017402435160077175163144346717088353237331524477702187071735282642783006564556491794479771720770483683931084621793277231951247517711825107803449769752805831512111121167197852220085075598276389294556376338741269224358754607174350064908209114040402714355706735336065184710043749495159563277031215002607080607561879245110217694785551239619868053197333377042513475606718662912648870228393237356715723768781443747011535375669438040027289295889943681769063890668122250453873557687836463661624128754527904522397001761611880448272415780402935983133272113118159343011728872609977072242118563388199394136977953539995696855091378319384524448451359595922814368809332352973067567944872062295088497392752990100473120556489561799749318522243371438717429714297987618863289383706476342494445745113016315110040206227251150853794234300625677583004020506337143584997039318597216473161591345705599393918909997992546716209224244483350291775265802333022224586550122195734957988085393602527062767884708284077640689831342668448094237437593163975280417301333073526869628145686999058885728916278132536671274571901015891328635595946723883413069377691266938849659855183555491119237262915190644745765615030061965011381907212627641401427244478290957309516977541952153528279026674192382868407872641424118945769313918160961922736669981453709618347516410540748405887856179135600140526324964469467505643942874887249154944622310920562742743757903854052338205438542892162431506623329402120565909810752704088320688610628388971737243910170686571686060560616184413596310456297201860474547255002549152338389769045380536762767195869104540413812506354041791901825672294729080595518437454974570644489165750286898036675857858106159563940876429449194778598859754406202558205836225126715698099764320426878059746813326804067350849345842936787771804416500157069221250987059141024907028721390461315226156394803235900748149407218151129987295537974964381184885266546512658349915432630654083737481143083635466610711033756105948935021285232516801232751080720847219713526661568152083345098490157699164274370602935021816124937889716192156626218195291615545856655150458605283229605451816068381580661965405146623742529509488949581238449848251036706213977918290450930819522941383428734959326853803699010675865103246568112078686291062955588689571920192642107606267382525467464037775705406366734592808622815034988664216547069262988816237453795654634661611098417751294816648158042700767421354298191280904597792835662997985691714573260141958072388577557728712852740873139369646129815112608377990290818107954272826854084283525350172043391412138769424574982476135684957706334090972321011806194924052433633763197647272410746378476074064942157150030064626010709273901668496193816368250320262930854735948761991242914954514509457719609019059865999053658502773428578734301522288697515531024672482876733817159083068877219745632801004063722491920084658974983206674429506827267494891818289661113220464122729725628044444161122504226965853926553950057428601752930030827785232963951485824089069242393057810636004275098868715981154037742934843164872795931454028202666008517216553871303966927991581010072696071699455018762677108588989014368141796739809204146300057321552459478589832452117525957033281594484307966018712611554735751881533923011983285518517228937204648635073816359349426262073425694183838770231140593070854317090169527061745532624800409734078638653152622929521958932997613559771165897756250464588327684617270316884026648441208364361380132123322343486299213611389930925743564004323470999653745911831970804846313863643353444520399884120290704664676345935305574920109736500698138493246623254475735936458631703818087914618802942448781880997465102517627807586143167017819156952154497510980896035118701759375949479256895851546675756340384681990875156794440714087095282919576142474988956652501121705397861395583103524187453012200809941892917608221566837284385543659576124822981760885974615604254282355889581422760675923104338300452286940489617448050351060237815584234696631048450231473665801465445153209402615007877288609973713622126279392159629959513131631714866576001282818152463874642254741013685341226439681575768280781184713669629886686595193461246164999905857020688801162687186244912760667530430961077379252624008497374849579376617783913113633343578449299130328493698672707554583112203848346590719341231619366386255831472203008511686876264653131675324239270623502665814471860954496400081374696267319205240467873577396523842844117237509363850746916068234798171327333482678102538932157822386095977792205281270815479412926063942236052944874337561590756224795603531307265809555691050610940916995587261509653701988575618032630514501436118996545941117759532884136976772951863793544533862648191123207124844148760522304354760327520484843563989254831245855192234175990962899602757882727261850712779821643307560081081051961081326376476994620116175226671971587084687808683795014389831081362325984488790415826231284770998049892551664934923649145696591297569178176656635767684389222305145897969502283220582300461859860951820493292001044047814005550340861975789831087702774627322662953384023007219467012108686310562389036971615863808501669933215254884299685491896894902923867578888045457651587345025714706360581537554521702828495669990607202632329318702045848342098419507445811511854753112738804888730672036985274497605826269567812776651053860693252257189673529628262703358063504554586697200852677363716231475062464931177885696122285209368939490745048751236668170058388892952964594235566227950367787734190703727006542277515374172269760167614162953360745880882824598721494394545454466814464347343327954263476645199395634353327974403497263821392153112598589086186799083142688772133113362693631773509367882724959684515467945591219280868249724898328839307625613130725245975410398132934437478811585391829035864210028387512745622117446352584106739956628059303079049611429074090901728245317027344019374210378233857082175340342508521247128095631006111683998847089853594610496303546431030296887233610126496586744844381264437200366255916509236508791491412694453770458296577695572952682046822911779474806433442988347532325015628036645348908364707025592040049373721277235240335889104111047908128852869806073911428504848344461937340949985608452292901459271501402291811030456307578079573025290041190205083816614795227295490156209645707087418051676747660732744749285466253672463853688719385544404053332502684888261813136790453938240737985342513020456735004613724046705567713049378904079743698668520862525676468890326852985267161240479921760204971391201327424774488551462123510170476418302088876700997367806169029093625160822362415306197419037246057468774471727456810167814357677835127317809483871032242617179982418513295871848900191907831572608059823611437085975738397684178943460436949842069501254361083247035561068104911127232603478002281530442524869583080318573287342639085395336916695002354638764167782672594072357737617207709698038790834125425875356085689018200572490017887244828375471514982542802245009439371960261142992922460993741752073170143921466182733841404013506171819988478155988691683540116207820205410453152751016498138631237801063238937967908877375288041648577305045187434471849417454251308960431974564297278339954488465655769521830266006121754601814232713147568846725598842468132540220531948866027136828774655406059109237104067636772968880294594591507992284021135974128405912300953525145244272252150180205179823131412468915149122207262825425699957374405715334490775481031815825871451267387365624480032633895926113475291995266335285234070282579706592485219128978218451746938357273487574638656769862730555893822013603760862031145719387776666136500363461872205132833227052071741116153281569727709806824971845281864866072340498363099730800390976265201631757759228955926837080931101768937892720524034189338108970979984874103401215843275008007951422269667778521974725396311322749670787427969174417319879419109738766189955794248270206903824544476871984089750103402345461762096914529284097958990258855890410001859378763567764850068494563374274111873809164001694694331699830057191226683775107975417033676178231507168174926348395489247018125855953348507568136375791109284609591283286825078925399284925595139429299217080133104343776924061447650210131694171255383540337074544831818169416217568896418851539156789379864035169810319233671900816049960861288268368639972703226698871671332567983903712359873425411887778988780065804322767153653847314085480244822625490439727452098715149115266418485601669833005727584415257327731373908472175226923668018486051808547825328503259539700168353039684382118453053701577931695400254519242961014245257164630085698123443808997352105762135805319238132336921043299457370070986678288668543856747949706356053065750012948483120805413295529320192349919616048310873997928018993107125577974633427389080401260061311461710749406821161659789863211592978277344801665407690678396930574551796876006750017964121107099540017961568083798057428190391028273146607131327039076936839052003689469878378068016434375355481034805960534423595406200635684587732878335568183365953207370668641218473821051129100179809283428351119705853546963624839966747476313915559048971401374087973185733012551333574835453067574801173786327107302803386134499235860832214159961271307323043217761355882163880254266534653943570793222432906953384836454144972526058543687754363480792748638149434390975925724189108418495769723545217370668854401417882289791222835826999216562755976856672185582762239820248369559494555500951860349951089320751406633456845682559314765149258429995923464536649072361470675312189182795777267820836837714537388189845283477534893219543358140709324675366958059736582365494146462703724587106711837460975603380958082536615570610234317673977273154501869715959389294838659142863480994658165728104709950962428460754560444728850280320943882547270136231084893780077134989544343061461283167003951874887370126512784897733852334725983738159362334003284671572034959592095127402915683268761028466997847942394319303639598626281340920714159948238403858603520835664338531892427666759721308216556803841633445233319841642891842286297546234047039726283841572787218717448784811361155028181331385221978158210111327981880061334409305912238734311897091153204635135765682272656176960732392244963685861861958358599522760208084541793178963583645908038165115968535183364894410923365268358410981666764204972783713942315888280472625268895836740211630894797683161471460321850487104462794991840365197913903420660746480112636749211566531964757674179310560790654691143864092706270381266674766939847586439739120125265002916977594935405371128901988861516865932213601134817261336190480842632695302357714832326412641940011349497684110743771840376798577453959861114461608355304921599718223378993547660142767055595847233303814235716426959461552627404406263025776962884141990393623579363527594110916063074436399686992536044178503831801499557992483259397388579995086113213289033365565310873730031275850766017219499806880467201372844498806468470115378330475965523883331303053076730619675589415842689386644593865434484164157441033498672038922758725718299210753530553868681542182525614043430962832771787534258522896361814186525311302154107484357367907889900988834645517189063137051844978460165458303072792234616334006558955151103035884496384821649943668728379863575804746498303349065102211700740964722153853821324325010219213780335177049493734513341379137690401714084604510798003170744162985769916292331976650933659341053643610698279967058863858477019298226915557316693067040859627231903119179904499262102841092981855281169491633662151887033434737348234746948776035930776500112819204146417723067741736734221419909410946989303097510252691065428954287930573388579208942963319871761918943399364027592817352128231773358498146267596699438988680900982907215676144368910016670272924965128875954430337382674772500268785807690552712438307302878977805256646249433292081247402666480995058652453113317383509821608567168788290175417179977444003885351724987999778558325305023508021190877317352247417712304850826902607047738856947717174467185023510201249091704406700485578646059996061481602260481138116660470471889791757533691172463953992792578075679798366965937859126791958135114509224092793447364698882895283149590144337811760618045748123355812171724217214201954575974597654442222408810134512721231331199779413871939500714808094577289412685532085980387908524990170443908381551350012888039774609749107853030693096861061850593967385594626092783421175075474235396793415468039552106222023098818676309817261436402336898761099302460599836630716626675659687572532057795910917802557131853683528455790322092361939056844045925105420297103711056497186640472691348901648860146496933963965253309956882639693244783097246821090418967306835950154919873412229324197921704876007887413373991062577326698881715417067519846784015928698235789790184315120144369635477661416535080663878063756926075706365487909259077398844770886863696734016236897668292904590281537403051013778874004067362989820112279938881144095325377461699592177993668789999918269472417150074307841580231715324691794844546023754917515071282214578540349483839432406346573683483387510941907713176402027537503662749122062393170539895600043575795414216238143349667764919980818688768384249731642746892044317377596986544318596887653835704870413930881358388267941254905828657887651160153509766743361183096021661248864177755102195932382461424285836569034607316460461796476084259930828154411696679352249526366196000545756364426914013232914333744405262775589039853514239650632453575241638419497801697712272698168951482913896769352690798552579186372331312046119724871111206361199430777542308730243635301918919237954432797822593218693453131027701284452162175654241208923397749661089909708486051145726897895155151189945165082870670093432268740822590114028037652396499311293728797905375255464760897975023712003373353668945414421310573125058705158734041951161339507933990502289748446011497941054777270411594354225686627146567589511571846760170706956032252795553511742020075494548021827910323922692427585339607278639218977511406833877927700796709740173546826562461625196181910090788552020870949413941688841888037601386709889600208932109414232593984537274804393551570005920131260676908547558780379074143628380111121437203726347289245624689801706902702289809832726776985825335879756822630002029171386051875686471838482580517313680942991790424579268937306986155371530883658869300206989913170602322270343588338245003551095759870905937861034019355153225630785346129688517105789710267807144152582349866070752018186611054283987420144457846646565715591918878772583388861727671905663439929984365007250041383030939550190283200289362485017741426097495731235891085131170413920593549689926525775529962448337817588138851941933656377235446574276958222827937716373448570176289392510870103467169199447623470869270161553327001283616938375083254972300639462133386776622229707576178001015635146999313586278913810119462769528841470798999340821111154755098516443942419509140558325681924538165508894084363278880899325247133963001270765259222030942421392101813954334497901175321429725738252490118064588251117652806885446977368689382483914151643612018838235038244335592770725750285406495522305664643724288838080446262446029493447545795659185644161081152968707377026548589230769003738836009430523124397535303993771064872754153254525627912401044543091447437846949277148678363090819047969418281738256740528185212085832810259742296308779609261302937669280057796323135166101907841304190899134286045300781265639371080078193794154923386246622493419282789168155704068698564952235549360135293037193887618273449062564371872568060874522284779636176931498890489628922815009594605509061842627069084083149391203471920882041037840511053536304292335691862871700442709078377781334667039120696721955657467032840539535159599986521277424581872948011221513999590203394223856060282284747866163487170552433994498650063093961524928254621427514785263119293571449065778912002120306830699781752814546142847122367615288713355847769537087237497054787166367538555707073940066947432476114069889979118562468792342387777122876094157874722961155116599953574718627683647173324206232284446074588293258172681635248861557714686008719645216090627775402734106037255866377449113785001466720085714990982462990869315289971549543950862825076112317452039189202455095013203356932367825928652945877887452820921149380863045017502826973951096968311379428784910428560162022597311557616835213882141574928970196015243173718621919893628061215655707469383822063189381723020407478057523041742694669603375050137605845372387302746499264016031473351971772130182257659551638709708731060480497178668001125956819767917048886812284102157159079169167517183133154453391194106729140343052505958311022168055712576468968903698938926842306867261734393366542717724202858916307469186385611018591566014901485194508660715244360424300364105232519085721333523609871210292780558927220419741117626137750184991968092415307333275674046705816689365307438918393534815574449135132112776910678086959498476375586691610097267888784355997842437789743678726102468028368354232000777200960527750327910455577471384517358043574924015012290218800512081407128735204853714537393341305442309508467319974077028385753769872311347991098925614057242120275494216501035073133740100304479877976044991244130869240492012034267388220753311449963163368098844131486187950441721516149322196037560071963547692051969462446307039636775664635968045501246147907018645936676276918368851262268773520247355895415448420389675254757349248559499767379637897005150690539243325191835871664351830579851232232475759280166124143724452849306076157201536626172886364266748598419533122934112205393020748585555040035191998450099867216221350442180397625928779655830788147573287672131899910030189608184754568398759459727572774865129188212839322277253879805902001212939044329119728739031263835002958828649110307053703332698683486027803487373868193068256444747008150046874607823213129928363630797031804000167295449697640909433016874208950704585092567976812453003059342783571513390941748362889343671084666414338844157785005560700936763700088844890298639517214282790328098485990988821096503770744714298460693911373371932142119477357276315451266510603789153217958219104288737804197464601791214465675767224938452813013662556159170102703538138334516619511949227961264894022709227880265298948902125940025142669587925010451091338623440680952712264040383077598765822225232877924156225659565069925340205300858560443253824104165820960436231286527442150102798974500299710661521456062855668823142884784991437105428272341498388221219685718647270426871636118714400448014831632611701986348549656194200938493686415414341599289606751791661422483226499552151069053027668825215588488879131831855594339211554561610010823192650326479238356965678182519005089293859679164929986009284447563494572781724740922377857022677731629834014849062265269941326697172628525818220795928546086093529945057776996862140374052148330542779022595653500913271397163468034238888203890566238370867306059743131746327684049480586819229830806709442652988666357506164281337175973867577776734597227747334206724383990478621377320645992714931308817231058838773989024899956209039863319858850015065155282805030840299065998615526350225645098185065350038309392923931817470671990555356739490392373498277619132436116629611061938896100441098798669073706864827418485852763352399445820139102951471696993191699957027465504945788274553161644071762623509579200453382973327353555868017249571723386082181517978810144274584031408196124455074517629299534964354268147475032929191183984743337801320961276560716832010682642762111878938160737632420435002934514556970737331982154736779302098638693129930126020178481153518966263445472191208368277442067038422584007904878889499220977142794534827618925520588734441619867735591577217516021085277923065006785931194051983253721377904183187333974478696270346945173302637819971186796477468237135570075751480872223468381679361329276126168661193044598347501761336392434658841522452819113875404222805655218875958437984281807235619906990376788022953050433985822441196400687101168593118222655859747448464906477880167748605606124808084327809389590213142562958554870188615806337499075506402533675460743399293021807634029721962876446855501678171958980605898696294572755681581385262963335590970271080142719491718370554869207086435292307178292021882174472738835984931819798828884197911955116888263756723028878618779956362337200523835581164753242553572804131723175155191459087042136280599897071512723414520728346594201624986605608204955858110938365015918202035958055313836726791603129361180582268266069412603062888468411855943504087586702862062335341827398765638422544375350386384050615066987190341534184958610936038953327369410754001147423227873953277788471331923863727815312160394284058196724435060360487670633820984201290555415097442127572664333616174662363871339396426418892654079121679492221987945562706405410180442005612936893284197532582939851267258240398318389357496500660463297389186562564450931494621609243754169346686074403595354192929259732325585910467216945048190310850638909879972215968175297376932125745694133719484741428782548579831906217739607806170751965253923462375983089770073082943923001904218216421924473716408397502221219241313376869098152789545977263453564540209221577491021383794110190152918770513093530222933329375264446822886590662220819534469019014279144526718902844092278700645238917746740594871785825543558971371833253144086819430681505963347996027852120648514917760109127300610368354075415836196797204067966771844790007434679608998774410892576234291407611852954498647333614756297513122271419691454952882344195633804779261498903634524187199419888009214983692187811546176172990054399006417851628196896665656574844870812908253295961430368413302779645211945406137540062165827551119623650788561029349665642605007824193907405183282465866493036589498557876809611521319592486661828050142623452545345616531338439339601786913069766290501651967420308848698097224593792008279876900563417247362124904606111669350932471274893210025637904289927196172183879238816208837195574465677536133327550865357526538251130551081693004498698529175823639751977684203427991769922629781361478625836991095564262449540031299456240274548906383441831360522497046480633140379273011334687747032868608366806074834181483848629370311862229634432925808698641348491284164391377739549365156796861638932214637640430022334604646899720543588642366142642029977140070391613166546302014789849316240910260652893215252398601719068505663207267240334137054575491286049726789042719512911077235843338561776568741492155868044676517586373846126900530080457344822520282705702137069702129645558650599859158592647687201864280953398648259974406577050398511623616613819663260002652778628338650775270500192515466489166638593982956149839035751506205152026671801207366479989665909036500128627641074994580862757479771002272515536733138369868434873075489617586424369393509302487460979977028732714939805620373275936116575505135185878279678315222959432443705861342055472616989114609342023828363185610178654699105352132442899874387962423761081118904854302652566380069961675428671803017981016244528406480133202352365553210433076267444582097562433013482690366825918031061724476446831080508956497275738893622663201000475209674416460205735619664470857585164145026538157459854956094779250828343903334549553254835008523213450789261732916360804138520361268361643394771224180036461378016502467479136529367366223944904667512429637688651306885305803835762593480956139481092495161619601417298288970046738919275803394302442648898703136480277981483595756988895547811941712487268548604593624815548956947031505177434551033986079406932502121981346041768009428153709606152563961598503937783350759799184688524834210393155809265098149946264346898766392152771584497559332216273330532613144032685290960229656548039489005758189449699419797565210105168453975224592471174149230635298150598731444402805709757863205603977530745396170071217549290970094923716447717369426537193723960898118549430558624992998137539983639685617767863735731921714746045360471400843669196223925434604685046418622918330509938460364946209130652183871276691926048713641435017540546551127301948489093901215612447356002119857433511894501062158582371699711263679233840731078075805012735159280177049749450316198827193793637225982778814242051159951816844665470680406260013848088048524735157408005556854274869058372955700645604420232524466885913457288083788952472367985604851026709530281910495325700727578676846494236054695846795651315893701488379609522399607882329740874293791214995816887488456201299016614760386961988183477629353905890461803462955141345106126255451981256687394191001822667396116231127764520921893639764129170793907969680951544773456458176456157246296590123059987026160510222045435586070228302197785515368099239787125037365309825751232183432302241863057051668710467434266389531011971176635898515542048461700458467189830788607343852030465908610587135441637813536578393005834804074609023388986135938568826902874597763722512024447063805563581913147639358437831593719615300054525107459083697406486094757940990990908959400550897596901147959003517418887776068448930029293664838542217004145773928237201415771907239762111791705539672936194009217106837527253066558795827969441111613658652139458496604386476429731552870814018707273908121290572668714711761840806678806134047505722911034806375873700232039345493369415528693060263807300036974802672323086459284848085130283217520540995520076896561350226396241921153381493896477875719315207334647844267562127521130112584383787963476143502445151471565228387177453628507058914438562134603833768922437844379418056478097981369990516252574421015001234839990055266476541867773898940588519624950968376016867487132589456752379432714185922064924312184244659875581310295458989957948343694312927250951389684178308893790903989759435704479291325010130386732887295167111190236411275825945245845511179172923276117158130258733972310282673106872301547635391924824612740170580683377248271034607979293966676614282823721295215851493087770908970281797250612309852592049400801138257811230640955949803036567634735441315548092724085242458305797327124215412356206482066114642576692003526228051121645195188427512808965926349072812670931037917760369172286145639871069839047197158026076343629810229907249801873845367164197308611820372989548802707424608630767098072613570186752782758846745154241201224787086216550882385237984398518240134204887568588579577674681787334739062407361155336142361047024046423094765003718893905503576955291109570966801419557839163742414630176724238946424127294300393562723365146088039263360424110420723379485523810524964392200884463216206347953868419136020945869838778454007026367281778547835143173590026113866879032353121339648443504400707111708151281923299848819088659857658273268988475055276538424348965769388889582213762708952114804870378199231190025821625666150788766158521552861855504238903780012200195126935453313816463209648262602823628797971048745684472198129878905858436798041845166877352121013549485490393461445019126910399634285825862163977516230472157759587028973891641260351952695247714515888628420419643589177348856369152469997524889712627270410672156742384986833002676396953613080193170246251477265615184581765220101760071630598168783995214177648532447078363292957529927516470813971355202635201767716371215910390077751430975602572689335765180404896296041787131022465315619342871509296657133644672304371091113065745234260757182569077850505851063451198072122934081262030495065288795060864725921452264109477460319949875002983518427141590902969181927436289817982901041842058907761478947439387786602533047091846813628940836082731222107083732912415289311020932812940242839969430083083183859935443398515421078319875524779063794068942554853159909515272791265964033818449601281038240035076320378777294518235301124499682278572221052315219119801654949002532733009897849548722081518203732073909417913817769079847795922715006727034314075418273885838580527813333758718356974843430434773418164760452444613941860975907072729125024344024509664624380032705369195350042149204134563127190044686307711621781566786256959775184750072298124109817756632361621495449243883909311838332222408554365839423362782826922084688846562930552801642090444810025753691165501584211820977739469751210998614603849598113699412317560861028311599975615680036400429385093325184749268286121738301828647234745033048548903760160949419417945621703324886226935789201077492966578077329030896842488740021905216727043763760080729643711137557604489617414642989710923447192949771251894297592127528301115797509553853554031874810999462228682872133660037243617833259039090552293726549818259250685681500885115085981663780225246343983976075826766365991757673474404871333220980749045828641782228577308189527907737870394216862442644651677737862371035705462213283666636500381093480894808629030400909383298471157882150146942165337458803892439040174658100546333234028560067300140113343356095824899296719818967485925497637302876043524420191822904428229030721705546677988760276363754130094827779302542482044971401957356647735408945888000721440815054187961449820762622600356546977648471655688565209781625702162175492543821602266835210777721021251014570231936952266529631109575288148512274693241057778164735692846277905956114254403747233539771646142901698230109988550802411376293737678268574471092289465503461365320095987145364217192282577016572786600783169839288644086708803412418782470003515116720976945605896787262695271596963723143732866701818452337339911866962139958705967230453309135077894896220632275541133315941739729898444580966661878089375506348251695532093759334390625630394089511465601277951299888935876283396290795182214374730747689917379810089330897117699143408769709901714831516878935420958274580914971150749463508090743394542539865431639349208115480136294771442604023358548730462044781955304724923487133926337589189056181856776468145269884394032288655389818274806868618977599290287803771593655255907945027649015978721009476509053713841651148022030509365573848077001381389494906648342802544534497668032939892522781793655452621845197432210243034009791528104007880379434108415652294032531366428443971421335491820771747758887568155882726024001863372096785767607930790731449299156377753517669955803424790366971388498588858817599400869509812324551800696952056838680110001847102632925290193772337251759187774254204633812398984519407231165355620365891908778850579064755412988471238595002973688721624922583278052077585168807847499725794545595779580510411906378175257213829868635027622446544420984500706313617144016090232738450381229686889668948702770824739363483798941388560611606523899059421960015420282429217006839663271480946245663296094421775985345295177030137028068754770977335431980411346788849346973892952505692249355394793978774891652942367616450639654584846872378026882884682087157389646666954728575828120639284229794710506228459891463876154915697093011208212742116892035597232877016635625436883915408751863533949989951415932742067643683056642744526656960577857590209072099827196796409174503428133443580349849849916862295382797466525860587561992660273857875533411609173011080573743146158062306794746093485007825931143577235312280776813051235939670154031157587480280887222438848271293362911058744735385826103861987764360594071056298654386508870562793715437374145007312617615151531306804030374614677291372837493075903947987866428358187122086607397483569075050956024631763958179128557645422124888804374357132915645438531406372281737670090936610349552564992169629281258138503555721710069533380498611925436954840805629805871714024835902108511960375337975752210292097430356320265149038660645897597884045271603060310288935364806590943552131064164026929112721006922630418255564071366582709804877964614937189292231175375582453732685785931080306506831272256480055709802970603778956548035654561023198222444136692022563444723087858789969745563376253227748847680521698357453537237835252613227994803883628164757854815410185969364104524295192211254694886298497715813089993788500445346195911644287046070585672822017634631850203074211093598320995908646300828908288369401237173022836265115414212060744802450294183440235379550025257445629171687199346354984136381961966020743742084630706363695968623580430615222682754664965479186201725371489151469552688389552560247460478748247690022235511307102932575915734879330580581709409748079868085607306200789204567961845114879697791833737822999215677780020253758250022577570746743896153564334986775579753967026753860684362186849254258389830582541438331026316985602919115920279516508411191808957679375092304386256511266179454880356830443509103168158325175074639146604010482728171966034022176963824228454420980202589420628937438292536475270187201969051419356094756546401107565812994621700865281112482507532890297579702051814155453197406256420876947283634267583712505210389283913264452807293546494303743789860687978955176970937615132177211796054285398718748100441873502780462880812621991504547359273568781274404033507579669080139487934684250881955799856254572552614654886450315405429923978378424859591896447221810023257523148122527622057274833880155121314223998552399685282905478234264274725872193766419672733437191859762345906475424629905291681197348028172618535025021428857703275438898844892598157560096196386050116965576858872494815233631668647065768707745534870644926072094250742067289906445674695793449930495932398379876084246009195270890561421046755994027340554133691916921396242854097677820499086496794852116791614959008569152658215871157353507209286129325836288451745467484239441251591325159639507279316651608009580125566491897658923925912543779150134162546197097711683722494190361679124687604905707217202904440635443111741848143878416557185239413078271486725266893638580423802513082296604980589919197067949919911252723653599705385842134711501106404020013764036549479809726953723313545648217682202675395706855651992581623393965352947436959506615424453505771825480341660924298984092584581247490983583488574001178676845229424912913411753809093448517712889080687509369616782348271379218539421657842463132954435768919863107008265938491782916699940777501314315562878776372652434123551415783233879903014064713386715323504239574489858505345998265314719112204955677586575307714168951909916253495756367100854970142327912547022368427545758174045109782301652161948416816263084613212820919829722537880551705471800021083953709596938354464001772858230107669764596642058441690855178276818253045276580503984097920005726291708979086932837579064222280152365608915421020304414036041553079977630131692544307295661551578957943394378369149347617604374153276868424196014669029153285654784709182115376688364427064103348209586927916070670021689562085273647390071321450316855836461651690977874724398456546296163014834182186550335535622231545413688678901491416114582658736392275111217384955012446836572475143651098406233677750818192588277617369431809907182927276813622694271946874412481239539792711894989360836099322944150810792073907251752262798092473768528576048147347491252171282124960629744829835347967569428623806530391430047446360436821079058123321712116613252315949803101443040938441357324025309117205984623211979538352601900934858640519559631871610240765554233466975632897181822298405697463568746720961179488112214375333784081003972532857832930211053274616245251252539640661090744812984116905799841998333957257091985355865884879768640552361468505200845916941551142779250384694830788034427202890221136385916082305855690894332583175038919613652403479837896015251851204180490551149722277347524294447231361612979132010534567645270243583634029748353724542030185293410785711965722145174180253790298117700816707517934651462343858118345796045236498726253728518195473434499441246469320748708567458527521186116237789740226729712198745899488794744196388375573222209945672392637154240727857151570787068530394302593636367652021732134727746838350184092370855100943544723116428419845210824149107669962593916473436852426607639816166424924043509330961817944516880935158195560205110122870279654123190056654456718192304722640863593378563662535009715187021017966472760596933825132828010734621296135107096362294122091669378917574425753242906631450799349380795166604457517776374914354624698713351512089269374901652309801219545842505667796198422966355104732170386777899876486175369541288262600901663754695194258432568211686670342965376827008359637558430593385797483508167100747501836079690151021177081189463387298301664690136156558917300750565389173413150697970454805542944708014155418359166801699335595787366188947549081843539934422616048185664101115706965362479441478086402853161895168136822527696116266011855866503511312876729530901385809187013004939205938154822125968600383298091674259957240831817209256757829681558813607890515008689577795933580411742762234135948059282258823923285994426402598369859408350137497395110661006175328702452734970847827741350819701656843565211722041005596823956604129654415900056808090339210821591678480412884149610021464741729294560597515441788428520811705095040981287514023475003549180463130265484543914602410903587204595166004483773872475566764781227189427119626001376794620658652675898787721104134947791144749629473964692454753974616509245082785141536536877580495393698589218635982668866077683218400773396402676182296026800343822988134165582113294080264607948892334267526409973279526378941503164606699087334697679108826509617337656708647468396685201334277202211330865654522925352922178421794070814192790029327856631206721773030350168388646620072778568950681004276466230137398196065026273430712844056532473684018886845422158017192272087096969202723185447313640002839129919596039300489949137259056986900304330431146786937052419080076721507710941947250143326609938112245756265578925245563602056863557971744450763758900752124141228325293673777052680967686931942919798460972639365963127921884366576740736533266772232540832665074573451551244052076573501428072850294865696427455625799499237655847221155521676394900468110336814518193868273617811716289277263884576614717137624940310082777967921486171139597726330337286528045101875361172172585246516344912298311845193352960616807212196668237557082897692365961834573062125725553328297484824235807573946778249299683259951481641581087265280300037202370159970943467842657985868739031310110304930442467994063857807034104476805933069580968069984877178117596265584315656410646159521421208502260445660989304511896758856761876724310096885959620441953715430875457100399768548294948257658872583911811498135534379868417154745668757531748656251755810640153257940336922694727414966602870394552807894493442684494047263311505002516335930701093676708385638903079911309369078914441318087621941772440275778175175321540681822836253236263851978708645083602545890811205215013822314992978075596984694524724251850785857609404071909714357541869371017822793622999012615186886660585788860317282517056030644183331847852922446166995348495528867657808970170265360923512646074447134533303985523410837915922206892823208642480693055220234242626823838781004250490548914665608360813980355279638892956133812129046828914150161552997900329120920785375203591120714628137293924508338647113376866294431975827063183884449148737677746459734191779966235535699936252104009547722347657340533945809057404349897402591842949909826923293105860876622947425363001630373817370267277826665960626140652735303651741527401758559009459330354399063067799104575870220572104260288083480612897184746967175035351804538843706451724368022986505260687034327864233392834384158209003048170054631873556896625997398403582197411522442551140519298709751749006921831037689661962553645478029344072734360722488262168202032918809910227124725040773006823657120237772350152226145305839126270051720657633291639050495333414404091384055666707794697600070553228692238592893287896339805711497428522106910615051286769879307808640424241907752184443594537219894295971266217477972407763401658700652253024964972399691149447862131039368748189128966030242100214638338381616845100499933200496937978542027592843861500048171184518551148293797426518767290436184237725547762223363899235060241492458991922344533915778512619407628731747598404593902422320602238000826843009358490577982985885994746096814830307374822357959866430824913895688536605363774329505316186590547484013468417297236325889907139649924735040179378301386732364908227505656069244038577938644516083101884807505812793002204544951808703881593684663850273479206711334535638852218337719488770067887801487398885253122381281456480122507572218740621630659556310663559858607646585855060965591089150024904925045824193531841765978768741486352340498368157101155341584788739835613161047958816480449860551928608537352704016088384546342507846851891905666855225657095059030037273094320668753846995301618320593001679632956646466863724646114526888117110252031269680574175002757945689318648469716590801885368663133871300310576391749380028626459710978886205420956976079092617176179779517367219329524440733577140248958114979087327299274709363861458713656452343634092219081576445581177852524479432409316447085061312562348026682846750206413460235465816120602325932182692168091829942557221787791949191939030602981454547988404528830874775510095979928518341888409435085331864701080272745453368931743396728653069984093180069206613140994784503635209307299676305436951232222182320404871365413458558759600421649529776185593275089872405057359220920055493974845699551925062106762909313749090367238921858896377868367677544241861211979659295979279825498271915178357138917539559102519042710902531298830649995784531775641891973451248955651685168556514141919547508802689844150226022133292714594010792944455243716334239765261380461485276324104374281070070665860464539910387398545068921410492651476283454783568044910375510900761714981582010136188331941477148108071877214378390048866440352568187357226865830441066650372362151276540275618327029249308404821621049914517859589522622229071344241537944495110312719914714092364122519131945472555151993482334813504055417667084876525408423311250281822822846631394375018773945403034019582689355470695902033397366346077029912060636735790024799037032484990770596394785760784237887798939570003768554644860004536470447334433758754125946681870955891082877287446729242857419689650733526891475659468274765026730460148000288752152543143160035988440996642539935241421589037917646370006008089294510559979918324661608275255560870674788326373228757800570933082073882072984293475427148716648591390559004978243810503329033637211207504563872668109094438078647456103451402913342469168734562571678817240563521021275796718199506647245696128322035228582984755182989252837563789381074799411383742853604447902956311959910294799058860987961116680591921308353798305518301448576109570346534138179738757488624124193717171634577708792083665502587150661923636531116108556478857909062260384690521531218515398120689909917082009346522063981976732794615259540256377534106313499626178110783976319171551669335239717247226253961402294653083245795997776330772011049393543938049785471897500940323464068466079967084504010418450648989835646494265645281469784534936633216138197540890235436834491641654460048550201330419339044775721380824126730708373276778010180998555935490320955151704621407837356592500597394840466146600262588698380737164574546947544259711451810772918049396415103079863549606861145012558191742133073696953630348694148471788164221381223490509261552601154847599718884375990238910093305498416178479612610628200838003436307883911585378103218833603890202616055230157013748921319960162455378320386853967427604397882063851009706948358048034804953234015322201299090964316843745317419754318560930524446319441203679556102360565142138375761918507743039154897723171448741575280880931179166086083130660952628971940489297328208743674182905957077135780294931683372881513556887505842122862457925703561340451358535903352954146443386201895985580078108438865076251193792896487628608071864953851279831514563798777294125098504445532754907734232355345094439229203106281988434029050097811611012828933960329104686766421744938609857296839823170592626101889810890125267142466345100118482187121011377478394561042374571860169459568630760704912302427557728806122314670563213202413518243097281162135418984456684655125489962602017238310191362186277232497937936926129108215214907481677965945535372020478966960897763517915313687387257023299094645134439381701890722538296424798078626645583765740559807128281407843409803160550844022881070184285200297964695729724625838545498453430200268775405792359685817598609736749072181620660213662845043675886717246287228202132760597069804966552729539843963322227632889095134595604009415939805690672845875234951124640748244312483954906615878758130522675984119128237521083526930779976417127003965545497606674878108849849790622672780133579423837202381920415358133318214402602915994086195248658142962302261930490048426338561701801529053366614850514539693491684407329359103782453009581694950042028679261965388924972355378426675234151915073957644776329595598868590082904439865215624140200125315875284088546509002739509347694017777572188828834789510372450241426945852677041717108529069076340387230866413699560318600690780389612703902714851722411201398214129044668236021067539490262162998708795712651084457631211582442370716459868612236071585997708704105016100827802528374859039511764021850782242705532308751891807451889702435278102612437395528952272103978415447723443779904269992501211185659058306143095120240784190191416458647034407909702681558011763498168694936585303323926832024891053460617172413198636011760760730016880531713287804514378876104392827954777334394616800319905763887104880875702135812263971208848874173459317833689606444699714093978472187862401612891723979212125591554623612450231359971034008466277418961580367167695760296863774504517487474710905913342051729033656809948241585795002319191269470625435629961220658733960935759940901683550193684235204325830448795980966050284425369246957100112250148099706012929678981607568769650039343579586931759062073125994582301679554711776522565180916505997234698833921368281198679388413573201746132375910150361738982890378918359994029941698212102172266302155506557682094479938217413111130272086066637825584368020773923617184360014338934937127620279029645787944528414061325799277453366186286857424767998766366786294662174173884136916528844033476169235139153170632411998217068242632866017384806962791852230639005171974401695019837675615941514189408943511247945470557035987151822801265095915735681411785166260168804501839303935016848542372305322196253568160875469443998244576712212055279357463009988039930931301975858294350626580808010077879721101243581516125092560272303894846672291411348072341704096398223727051872645553743989027823980264937958949316299280295593707956717488950226549860968318125885762939886844004096787528952548876592522744220304076702986368252078776358329497865340288235238759794620756214607659935637598092251771397640579669760629866434467308942577395135582738303405439361971342634971097785353458712530731229198785814758483843127886265799668775351291380233378235301610337640311441934899384964715426761327974945680763392885422586022521868951332631500038209812597294108478264790389366551486575324649209739691054867971533016177135762799476458364750921235718266632109922372559511995236797812834978385091108844519268024259592826478178825916270041882999994685938623861704004539563186495734636952790918434180669796070448676370914100541113902582839977233170349681022285460807110747030570609589161798725480102552020404545240673405279781454674611409867583842324194710943707393377119453974308770221058841582142412268240353942926627499447173090229231213712299329018155923446289696815499882244365727022650307708721939059570619731479196803393038229260075705615914457597789292477126830039789240463759935662328489382560980427481852850372654890118653043448945721396565006380570992550383699081230453374314035974156444849054637993084557096630628358426282280902458903138078603867297349347265701941348299334453124672327043796948802756641215539233250031958969791216266241117363370964711475828431554942998268377155874650291655226725067477325531501084179004986091451586683169789205082032530793375263198317820855401434973938636099036546838834011726465822659651447536104078821140345289599929216507311803563711609131130669112575672576158899510900353394691499506135338762074529582941051237520261907438001801575411476378218014563819712895204268034349966881213983233894412580988231921278987877408808598351372751313228694651168048893959868892300840662378561640827061265639596297668459127793068250465669437398636071867262945496417694013250018156993207939124555664755183564892233693283319546217049443128853647804125334075803428142132456629730401688242888039605420864899624010031695029228595505428029552483340263064354674080494739036518261284327843926308384014703395129445450235993166886596243231328943640943523518492520626456607686959263081652469061943941001542372900617652883811088221171123311050581046060172239426152773953476874232449234316969219733396091257275401386023944167332124515999415284469756779356022046505736824502619134579441745307331458997521392579689683133072688160464547426749998645764072188450337315733960932418807520188654194420837074929563094177175820548857453598605675596318800185661160945980734297126511854124063161155587298855532746904609297459462957555557379935536185404219367329179435240452570220925884295414296206980361273650224736760965734076465026816403498352772591837357438048615748278841976416144699588543515962192646265036409145696978380427073722997816319151169835338280972538526609878575100947040368833763805191322405812096192676261718244462045201674096059360951939495219735669698411138780540698551860523448995313153568164002134246862802464288788936755090685930610427869599358041357615600478870622030356476491480480046569051725276746723117257045030969364917358294353751088449787444212118102904211315568662070805846272566431147523320695468272997757681401641993292020988055886887546973991288884551857926209927274005351382707662713195010660669212798082348007599252672255729594656693077951777298491501801075917621835135710724285433602010142358712587997345006289976915067203922702974063107988983918195564180650764917622988757957935232333337522281847304574030018043605239777438245281297750819506118912072575184341225298365826309423432622742577278005650477575662018155338445395341814078645730243786724286089669389914996039225443148808002180572664204567890405240724655810187782266936123723982922602273032635179551392637108030887020711752251884254537573209560737279865333012010509928881336779816245999995709308641557300094795446553654130341474259204287945435586291171496646369100570837882220350381715617205477739215569916392564982929264099524178915395664517660964755738410154823305083481557425540018877251066866087229419222167386131793117388285425000601206573218940887738884695637961080566348575599862110845664926767679238581169491332450458702536756818911136850961539819689275075687262731477053435436435706297288658799188635390869896445766523324730132696917986033779172660539043753941596360031529759807630708219191634715964215853990504524591868588874127844776049196198563470002386861045824104115695161731158623319425989153419079519766877181499907425112269045667445440230055997548008349341140643240793924890747919611513238012736697029543363943964210076426788466837274425092979552387802475629302572089827829882551390470800466408700900224660240061478325100064129966688012885878304307424279843129742032575825894857732932488898202653418738021281134893094816426289677672262885015622194297576792515352023007284761914916375704964342005959280076399189907057628431051921723904664566391885130784588557799949469343829829045009258205030289780391744748989419382035206233309492809196155933130013941961849706075187576985701825954316754624017461473653829345374755315427013074624960405760985185650424848126215420195526752121446611829678914372398261000750159082821501691537208353181907334166400826257615294758004815397769380869184976192472220972336183698635028572034816724586699710525575081410466139385512924667378941626463631719727627570757313931340764131210980201377737845898605953207380470819046285778220280202831243636512943335514606469476690769728240994562947854767688089768199865574312699919199011742672953674769948420816280378283357790899365054623549954594905661396897633394320931227703603165911025034134751271167509959697458087257703414743925327648634721296601981631452097798211763369159009936108421251119078755139762376695573334119830240730964747471102878804534975394894094757533549009135526703793870622619918153272733875821473674074574402051923736760449439710523464279623394567182950102875929993540136086849054967542849516666895289575863712560603204463096441806119347927271266350096698177741308691972175665426407707148847021151833933401655520561195555006807946333775104276313273098290904897193402201873713663116309737849419338114196616963919392699983079789961406207773960398988382534281237152729655855010528476480841279998644291987196057763730325092489359045587730449266412493491211337285115042237346119418988858148785855581463027436631128697964617735005291999158583490540121993681921675336069539480837342333980316894513014311624300540463148384618898413295304039254754278821275768556417899326295914259369481393350581399157348882757293206287271797604896854551826883967178066974595888964965354889840549163054330716669131474991566687819128234184542857551608026286117206890065659736031688440550922761255989073608186400036630520056587812363991947531090013455417289996058159007731477821295587963563541873277727389424048576495912149552704947905876435758149763392890004505025248528374152928799137454767877085306046804522873387835310052855104566464884062998708626772619383392553059155409132793145810754834050850491242178465543249534860682170779675390953235963058028986937585140155097946690029233770534575162013795522996500098551314264593215618013111965226039701093285304115583118827013960294676606044140336515040725503862821323359144293810483075333619374153132046053837815899415317829975387520133866177368208939878102584769798304475007519297858234877845683412186120132973003219686199426099309365605521407954315624111264151075425369673142078095474180322708672438977105669235458372212259966238454112976956990386062587877654669034979868458476987674435768711184017114995873739816309167285949002332036533841540652678332579282500897727064085107668610988689751538125914124632224901759131404566346072707023861679895328198367178640975742644497452920050150114798675660030303399009111218725652485992692294104726842768915974531233703794237814406260409701190111056367610059698420503343624079779509140886109921413611191878603714278644977002099052202526053603818858711234416246028649101315170368042095015172047380519866366694155562231360121967697749335956330850706564309104558053601222687409210031623366904295777396993557874613044644883066194720774842854175082425461727387310440441777785835460637638041725318530086806077826423305429182619386564319459884117655060751031220741750394510358383439056390539690351245697621390107537601712763649179120391861622850758592784503209480969572585473253144802623417130367616259754364651841298989928772040425345004273501690893307376777030380214020171031655481433230075859431055149899018239474386468586293023379713847320600945173862331183347943140502965055428943887882227199113181130464551409680380860399025213031236584343898360783136354481585132177600781113471409237885796248234388045727673679766707795022745039776344279977233493217871157284776519141409803822972435449323506699056234966301659234471734555076791229861267839172885273495852326355441878258732068009012803039166852006302920349274694993368810184112634468114844260366720585899856738883933159230359706690223983337217600549978466025876447335414850331879858798761585785992229860383289739640767614075660649350710023801732326495244431350747027370999579445306857594707492336706904969852304736252267925790028280530438301743164157525530241889226117080467499966614673128887171705969152019545316710653602704367408704283091173313918628469674595217085767667372246807189376320178552275128179405093508901513797856211863795721383765825194875535007769719963154860307980415575788532083972006224660122668948062459435494934351366339037537265077661054869637199378597262486962661006883277944941961255760066567222516373591914374820900608430241833266193169274899089482153900082889358584548438321348929604732488579805350317967691588707221188421753352036180865385835989420466823873652130700158223814004248856793627547372872113714861775001655257268389523090510212793452849969261078777371882669070895935214476819714078158532045948390376643909394837571932256696068178756223123135517608340921401986254796053731924240296474939296150887190218897457825590888399858038529183880514654147330649231279410253138707178834302094938768028777354199072561107895497275877338003207053035980721010746222061054799812529064756026430050476322048402862996364390522454582967711308264085354467882112100116164992578896106949804239195168606968852915457438132402104347049774384065823231737774602270513812476756753941271455067340280193725272891465065567867166228753751069959874334996849550573720121494956500070715790132558507340258494730236374640841158953559062460412704249759623493098903197122610683900431495832500361080020899592789235081831992804753952718612097905728852776682107176007543576113987824172151296295271539948366189361887737589023268458431633040383903342235558490780504192422237890896461358486935437415008142408181179740261879129579967064586629152908539691995581050165707817988602710020250238554221566859629670141921330887478400519724412219408028955252728630477932045505614045626398666802443782020592879407367645735871409663075445359170420660900978998620067948612156656785832724751440058477174709883381263580250422631074356370497106572627646464001242406243140559173743578900462435225872485341541464455785799259722034345309881831118364484776135420609595644875348018481025109662864965771524884909528079643299778716095448023889684312528044374170126295176780465344941962128546637769317612698575120104871086922394089750380249114594536979257621059403745481581750954668983910807523947569959509399167314271676022727927275347134012319994877815730728766755818335126483222224028320044665717302222611488911820435391191457881232940022735635691182261952766357147799095969617969860418715788078628120482662609303688272253370752852489120734340493546687078989234308739551215490509756125502702792452669740835890426052581763485882160577533542690811811180204971269342276903085682282969152504118106789238942261698724922612396550376444763458621570525534003630693155759389425720736511020868258449847608816587296026338328559594182833110579442031255594391471850765039811878213571156318295735943045775687154761930077284849612158692136664609681967545151657175573508931836394056435101908325511463029135459238674145603431446821601778224559805661463803897197350522279055665751803925635764396830392832528295609675729705476772005289608050128881228822438425280960301475895767413637659247469015439117431931689596142666932209430183306173592618121041174247273403317707849559391412240843067295552400770865498497283150053196034516302490559133029645230452029246317955831595299026146556804056089787394283148290017257281951552050565461144037543921467724385761621788528495395522480289650768456982013533673684612859557390900252089110381278768124449205822985147020567642533033428890156072475458301819338575442956459222488778365608710140753392123528057783658781509590739952853418105139106118761559356982968471082653579890113353753437053554802778341563961325883501697689362758359815699176249059590430367827508263400608655781034646438482756159222016642076076036834505937679216607214803325360467033020991266843468422547218883647616587336069951654086884783991121049401258918756098525374887190227188532402668392163174373691415226283506663042702835959942422171659046109372682891319653317980018151088884329467438461075450591132008874124174453085493241624087370707578986544546303623475426545594155538885080248038991204537096629775825238211986897666132478460915615491930220218225202830908594367067088867018721685780739043943010026664561188414147137106131110307683267510530921978059877796188040529689778989131265042351801965163988104439316118224523057421245069760024843393549804371224668597844324744590060004815024743342998412067757433636045090155172081794021047551941670037162365991826654288797892076736000298587271211449934203572389853508475484608670798297597451880107044556859586956114740498955565191220794934868665622262977608909871667222616714691313757363715899356081301353471923163261189821779840524323554102411154973305367158093587747144695658110256595159079383870497314242486104465643812936339564435085999321404435820581859201194171907577401482270270316252860429886972830272996522703675225953542736183024165757937937245378210540160495019748347115541378952904814765341134788387048711859274478717951091065646627735976057940260745476740478074215792669521894781681502257956378274103624060292694322292751589411673608562433755734470574738118166408877958288112196566762041416142873768356248574545539025247853541209348483520798629790282964962872630703191478542582815142298992901613091470576647597239973185857955055178174501809383777347920500697353651745285855818779039288703689255197035892441629489475493800973975760010046568289646390279721145254824385746333996953037237226520745317733323550421992849915896500043516728182102766005341026690934942356459658522413501742123366762457676716660506978846335103471024616694256109563253116968818050755987448523207899799451083711336996036340100946726933217078601032527416346503851855854687541928145880977512576169688672220670533008204957208666328821026607900371646574632831207720025562444282138784206220460148970258725512775827630837335907073944822975835610983325439582698459451231196192598454022015998234759932411243716978445636929815569659284540058983037736608361634368352576804951103245361239691411993634799260469227140142688798862417135958564603037510960419212191033153843602201996283873822258935392294883630392346001523978692086839120643126980501079548689224794588925561607434864199263792124747763452963545807941636484261966808718276920844671365085264929245032569500617725001253424961488939923073592188563116762973221701580491271690412271426458563560100043570438024698869283505786464465726636213501500348929520593333680713927254575796020039474314128507001056185392855228689922714294878368630753650804753557709094069711508206868952838887798092403244668270021860921188300106726098424879623464044688694874901245537202398631264430946820907418261664592294013628207912323056941937009653288391411636304420778700397208286463089052378726169637706704219152881200391545198969779638327691393835615956710000201255698858355797787903941632968845311757783871052860456444329763827581034221403067804695913408820103251690835689599956081181042531099615727839201736895055343124447850809417951304183970686462955320915150362725942805042420760671781856706447708201074428353940299393426963859645468428054566174178004475898797798508261451725801888950122069565706330483037068783375018497657401119150047035404240104970323471665352144132912891009365869987184861068782023719742301369833383705293682692234128548219709424193612708510903419737656247098568097620577631891354516516720913686946017433851848947515543998485476311574590816745104832574957095537278957914815702118355737119419356155327818860955376179529747432438135409908984981663492691037058951330702850235220149958473613639745764955473697268345402596128054959732725334163142128182847713541011908920344564689863018025697895999376853016570234977077427237533506955978285222420281532733686966005888435914300745825453208791279845223769302513868841019817726360089108830802343353198649880747735686861909005127537421448362713008386253383014466036974311468282696075024314415826409152163239087927856494477484064378671737969168163664418656512412296895821329870075986648855632422386301967146147404287643268393818572220763946659245794394334110278195228452473703889560015056795796583660058503621614632398572575373241735396149740982267021360512444689469059596708614309407638420180450794676738560415685720573930091316930668776258911703279520250294353141636608857380837331067898261441445176565589858315480627422519650995133491789096447239384672197901196813512782013723290002128007476032611342715160096508419521111569509205856798688833317195615617733607622186638144174232622887238242717332790800074055562491661048445282069474044591617724086848321120970458244960514477177964735146258838646420807061845227455002382948758653997921406695316510459226998057819715516113309032026594241786904166193647034000545466293234340843347791705774305170483671559215554957409127292039660175953767832636919916121888438662653695254144578914476270108072213430363309381040356326326936520300393636684073272880267939257296850193087962361372187394346467739360104884800783343604164693927913753468630938080495158467481838729416197437913177664734336023154395773692477866527064918935379641227885438132847760765514122358935186098292055631841646862932792578212898604935884930961046220178142277619020922689336838924207468853033790202908029003878263690782105716192233779062360248641283583122040274024175099879111506182098400662241234920324327487931124928120212098670813569665160527520033051569754289649103724611778059434165408506724032751387765389579422240730016819895674778349860740942826833887243491523078836191932890134090519912595818527339321650833126384375568436607518003318225261617523121901135725582748699492105185896764196836260180906008219048037086854083796156908818230864694392353857643540180600958548882121887988290260633638203985428350166896947938619953868464564931810529608135763480023091216432431178487303357691342262543010073728450392072041135751212610258469700716177542434986500620673287295402399104614154550651383125363669704075711677906417078597846966713844431930094036503218295579005176306809889236613278818773447152052874906843351618331291160535924789891277077396385716446579593245856583210213793175694872573863637977371691169959112864103271932689491703628179988101426153423211451023304435211487891543000554151943628569005893375590372199387404205568397583565874495805800885204247761947314595901499957503198327329694596218471978506829911912187400416553583084006256276605484334397379222026274137572673094789031237044480960671748771892766699633813990850615993297113226423819329228293178550644843561607335439587911463782832171936548598508446748075507370844927673694087118963994387638335362447794428653068860884652854099623696639431386552066680860109283194200998306901269134628950185713913132438113912927417604684996970795560715834962585286728007115626366058087401336853187188980155943662778626967561508610925806015731967132742682014237505009960663842299347133083623259973183406145629103059064814259659064514179645893594441672705132856220254807086303579928256927227893867577234513481093899057620534310186697281473854978468854423845053757687398682717827223605327153561315579033079767763498718127677005443081413540162808580516654064345241366405987862096333695208115501934380488478329862519529444453721059459169140575065696918708896897655488297830521261706596005351446464087487735603156471161790562485356747075723070529037076936778076372577926616729739092382350913881839142413462475137339453237089769274663546318984577906630117304928053652944855014534737001794042269337790767798041799302192895491966350222607736372232984542224665788838341530902744748702526344278507679612072891854907976421007619314715088422011723983515469655717007583490235238856336997887360483636811635242659326681561968910848048714050235491046462229714031917983262340870988825716783749162357864483139435121246674673180559762786977052703926158483287455895227901923627464919988208319278095146102329586450883141387341057515146170096440074003557402611181722659484914967296413700218183244836148981296404391671732461249442578459835072778225751089884716490588214337122204669342560463255258575777680545178012839231873131319104204758716500636138016622530882485685117314787721662687883996609073176698917005812613019138762305808906786227339701625762132557436995084566903095541267459989496741173293545451943272329159121417205488785392941538043702501709815804471570769116033213900318428521517660892244665577950244763551790718808951848639587138350580313638658765910129403043852294874944168115050345440969331675561768501369480578842926905822556862902230287574871596811224889976940358680276646745257414721328605402392320124615912010944364538451413403883168383458272024751712785652239280587977874021117064508536685732215148824985564858893788077355441727197650713472782338264711518729240061361722344668664318194952991050236090087891501705169289102361563337068418605005297736798314762889485357901722718825073962433855985372723085121070677175388013650250403248668167448774548813163065095547716012614044152313443670629787071056557592789565537983217965951989328264667216936858943851722936596431525856118396459747777048797286789015424971534740498935826057275627128113320202267698403898804399467741813369629803052982670786637263636117075292303209669763672551959518884924551867287161704812762344131842720045045791689602367830863201699334168618321891147159302902827845265558171632992004766913305939802555576304194986975759743129555286253232681818289390983774356594996744204608853014573151337428053064183904690624674750436435412774936545460625116147825819776540820750452821927315254296505087615354541276925597501210533110553837981382089041911146581667504647608626162268151120837283514532622686566195569176883567092766314104863958820148878354824057240912404015166471050687993926088438232207414875160887751274133227775735519065435266117182522967095593314434401146151952690495365607132054209069008207270327882630488089033377054355780618049110086975732045953349688772952124757062952411338040309909268019539322912339157122772745859038134014972249133363725106681012477686573208757030954305339234157208527083644274851772160974363392081909881844434306654418950396233859458997242175234610640719244211715502608496037437388012475271697504488920580562328456426247576512140149856318636365089291388123579515525306314359622245286167852484431130015679801074124026457618464335919108132008058980484418896387701349267181226197766259516679129532714657355044484785676227097430739365656694125280059544842115836337732694996684717753736614257258485663551511629742120256630633293821938445566201292179539337103523423831838958080356247455671598093360405026300687089485489088580983509354703172776998565170452077706785534999173509827528340671965381067968216034015801575608320423112979621090128065626600025461771053988522462602136767654036752996755552738203041528825926206036789432536770993926459507883734114796585921251552262900963466261720856055203082948089389623603200709046154473399779268988436082729500269212747344102214331797468958134309085286876469394841935502762170397958972344422584838541801236800460242604767757102241559350310072147421189924387995761346319729348024609085853160687668438157836227448083017359663437852349798062624433354304881054240026392819822598025550194833714987215043786962418208302869146870794516703811653186279386076274659275147022662456260025069149970250237362302884186919795387108959810311891377217206851782443688326390241613371673359368247482704231131040982083895487389751389017645556339549615116745039300607475696659670353636743341695515422028267007933951912465005022090487889815083602132242996906651050588802872699914176363040202067104455715301943416308709612893094415125508624148008906849266095255026815145415688251385481325578036450245265062705287650337094724288014425124609530897756847293741145972974186724934848038688816440143377632831419925270016598352965238106503911122053401524159847773444321057612393639635229905431787728173860924355027990164150136034767408089520785948032552481291059330338143550416027391284068490854064808481514953153082261528493919277829133309740253122140319846387266311615114756733873643985089913811037363922695074153304951103542272266159757407463804037092557647801331218369453417125880710398325749257233764461458058617202304118725311831955963503265498814637291997534202242766678407652164161079674136234285360383297322797585473868686985908396914422324174679513818596859729001526451660026779465674475307548454218701458593466604117673361240324380730969149950019025594197286789903289404414177581325403738220759293997343738660963281704153425837353746105827183832132575756362837900953759028277656694225066581673128728092010833668480203761496083447902521628091061216776126150879482843792701191535307706699829870933368571867190569635371254086108186426994436176113683633831421628379016767946499594558571206801845717918126159573017473355248167752590807271878624257548881850773627551109950125533474881119990140834598450902582457946565959707687700464769460642549795561501790446649698513540028674158656857462871450830850726072613639379073118765807618288720172015869948428557078061089657559486517652191588712679049499325353457951454302974680737858006461959554008326910187561700305906040292909771979002867676649543441061646772777778195724957122752136260056416011355711802272713237969731406313982018386285325200091008503046775779526993002281516275731576102170331166298888552051624144046746055359732735537160542379605467037842740112367767475443356543907444852055765498184899741436172438831539741563646679150760801097552345644394850246288097785202923029246956729255853705429110263803325732087804401148512841098030700941671621040505455289194094390007649632802794291411093310160246407702320484157920910461037026130047780832189286353682255896157903370131999405075468733224621801688018103015114585787109295498637702443408950863477393605372156903244041918110764507791256571582425598744951916427356089046215935912811216112027928042154891488070787543961004966240489864024586984005068647301064585828599965194123596131520861392486084645647472956684188440714403560236168405988583077369049719451795643683053817645187185032445608134055136663953296791817705315623770950007963187368390330650787686449389177963451450718718721179445224092873067714797761821203344647660107623079300557660649674295693687218212863198267011053286327786757030099497845072996169263677049254421646100730746752565631483057544918593703844874823041392331624017834665547594365265968278906372156626493179876261361258160322043117201669573925643975449637317575757681044635904070339916564962391578620910930377997364402408895683098335539578497682996865871806447900242428144596190587362745796607417387274803679056960326630793285836929693331536760905110396773891777029840764989739637509597542786467774901157422340076845650830182639186068436585201289860928199459833484128997236575710336532962903361919708961987304722783159937757856659565237528088970252390067822607350157853883985686343717384691829583149207179381845943766340768195428970531957937277449271032115051413621433522829058361864247779917368079752637439523967670780890758049983225078458269797763261168942026754714653022164129691337561999000473041722592959046794757680042880300252344017236184795977385498147735847874330541701193750733435593969931121249856830633670791010163545804138100021582772523056849531506076688759613962850553579096952545026007168572191464548974631180214865938576497655920952807328735790909975910549711959056906576625976280077781222675145881165638476811575526158848768874425943381499953606874617231354549973339169496971271731571979073444093496020256054839282033591413262170592756029531441642808152248493724236813584997986105947908048633474476461781800584902641156458454732689513806589690263397323521065430085729173985889382603674379631552191540006279678435075909758174087929508076325892593896963707030946717277700849524525001231567177114245776819675906123361446547380726043053794325723515263063484716137733825148393084951487004481721362313989857242883981991775739397301631348548232702295958816557488911298747747206236461423641831731880064305354719129340415235908305519745124992039669390235446861711228569833705324222456147361871722900431160636773505517330239000086071352147725357627456455576623686565666542912456333831925658417233177624695939336942201207600552113084453089333794033760896282476379133079235403960765820748469805628510117249790542793485090133920516044772044078308825622426184646882286873274607762921982725045190272923251283971358709925280140468786048151726945796466916334946197193639497015514099064612484241165035897145512981780939841200490360766468427589922770273791626172594481449950670879985793532949998957695298180318584058075636420235202144558627236325830806255220063108138829462078704556508109067278370285976512796476363714294115471505722911951156722119893131038673144979539617438817075116045007003674125917100899641710173709660553316028500084004830399985104367409429458379917761793723316765656098402557108348348945792991345160611733937778176154632462112899560638376327102221317703281463016621924467232887240388062332481849861808749474222793643475014076455825151123103394231720536900970877471455034353972514522138425905888946966004087612171635973349849709829409820261073013265459678397248031854825011303710780664439500548727248890735032121961519448845602727281345272717362319236671080413662552421755160581384875652365597633498799318351739081120328320429748707107090504560419460325390198485885517651716918482617973333564363130879170899262401287420034436621989891024047590911852787974518622712992896231781625011140805295168236668841399077782273496239415684705759532113416095399561816918519975080505414242108697575221017504744921536017041580604408739354920966707574188946109678548551850666595049381896776044419197061963352007898813859067028152008369215711517598028193060214531254410341979671948079997605892724934877662754777587697270191799367105011351619705113876609972681176498769744574992445940434593734888027569398451510899118623890507639798794560315829242180857291660598473867798776531873987216946826496197840977904631650370504886066462510552677020661958226149126173274514289524990354769686986916209948649176071081863435031335074747769044074954972433428210207734348985412303550496816964701915125656205489910306067914402698645593151716131496181662901387383385355939907414791626037889281464697431831325677127484880017671174990480299743832201414591057999247079865180649133479088534377839365590977238449362876249161262253154223809576710067310213727112234655298961664140905864870346604845864069060437117475027444798489755189986598473399616126961662977664494765848031073986928103359460290947360528897917836719424936243285875415377020467485176754698195085018370608849134974684933213730216737704103057483928682354543687395612526182173944669425773344313712078250764946506096594156143240451871104822491661099098526313436359399780026269421356380437478617544649891631526150971696621458885497498857353426460424376618568109236588835830654773557815187464275925033462616421674706095669782337100181158349000116965302293883710317846381235424072172834185839744794703044372546348481806110723679990978535486177547409424676605010807594604506711972452001075951666974866302433776499624862265423448457233510366638700194233861753343705580503627566477440589969848774290618329302095992609851821017910795791742120827030244906542662413084927163225983445137118175374302839768168325893739629397721878890342894945636648432936890618713995076888510260443386708529498381717240381407119258563818607879198546513491990490923553174022514059936659905095602983814008999538966928726647233444344839107309908813471725749811051010246227962675941480682189756906016356838513635362178298674472123425716182329117953658285404179222853855948061730830081123436336402774518556373577304313836076931165952098239922068963182051864660361689192480290896042975924290686398480815076057021371509970166072981659059942190839143899291637569877408249329134452413530570038857730897896436170766585678708379293534939617930090791862869134039878319117051577545156441329596810122511124367186956431243250234136815169405510668728013224581915627691508082197473683721241690606852431748084451625771607687929276988745721319084283841352730226922116185198991511427212852132966087881518263419825810973707328337157996003873239835224024802849381191808601218012771170410252557723841328185089770025174197482086989483046687434299422859055758591232455574359554356060099524821259175867848446376469499944068956937497419495635999398366524354827807608011431414428999379176861089802099056405731392916559407573016995560979892856512868770098342184185312001507396561112700859859662573554891812104239379786430904622543400266449106993100569034053947617754366236806868603595850037815937255102666972777204544014977027705785460550573677210359100660610585090689267796778428919368855637603991155544714054972245997127824426404996808544659162838908121568704525244809483597663694262236438522423430497010001807389342797446844459142480475375272117929100983438910553377864337287740985108076853276089888506738493043606412207409319022948697875494665962766380962937615950844864749492619789124573051781792524653733024306797057241497891724012089125463948128266929640638089250690005178248303519881571710874154650439616268488257342983958957491012906504442480640648475024157020267342452001111926494052419127234033171123403853875356631713801551045712306837539792521782632882170569527416585459069517235006414837171903859129624404984321335755430207332470704300381292536706945990288379420034690350262135143581310580458654999294847738033972271746712981825898467516100005882149893557749586945978221936599422707549368909972716074167453475216610217529888678413916819724742418945244827988883385231509949648069572894392890104963994651307231544109740247429983659043887147378325536397388311423970404332821246906003879416769483205493760154483772673189495196570321537559368074075210589361695186064172080183765793989755606581627869342172422545345972793923609703109563851766871925274137705176080468091904148253330281318702799012401739367442868536833611050452074390565991187116573897964639683455703636062445894030816872997566369806341969916708368543868829728606385515826904547124319991478732707338484459242731680587704319695573417485321454759556779203102132404018793279104229479976258522041052350391745263365615981859945470005651440567165140421353688926206855091174500937442892641649879475972263017366488403438908560736536194024723380635530485162747806292077365658389582208161729162104844150189788364651586394740333287919965154140039283090101209292443280215012946601853468490814305022694354613343092911553894333787610434501004788719547313982939707168455537163912958939436258128128002241654549142743656666311724168307572349838408242094396212875379019960442945757679986833480995445049377628362128378133807489148096361920719087771745849600998914576644483130726291144795105912105271075648367442460802844099899922423907631573275422598289346838793985282399344603957192320553537060034763425297153402124886715518691485248839453722733466143554708675864445023869713951738127705558768673651326410464933037001197206094744919918147130872567016737194938090179382178444877771631949188618281805055213322925971913029998588452280507100391651699782784479714542045383979886012366545879671375865056525964146916459808839778296988572131794731269901446669896349768916219407355948305727728070160464803264970010067471303298662417020498342528955159288729348767373197694393009918340104832881519315346543185066609553950517689060208816599194436053107810673041420641650254723220510497695336479295491493709888004991059898655432513072926549832185562391483140892638415454165400407717421706678798901745103727341641902081692097631275026655003811506719672044386310452698058590021480343823082917551526331327577131348122414673978070016686188402494086467939458051568225943992573503855804505988773659196333816102874393634126997624957084949943482922053070909440472992531405203052384850695647188672364591060954095346996733209286808455252119877817845078074114062714768548265228413814939814776071796894672996343614067878367867927670620325522319916896353288260014555225004645809025698246413054459852110379783151901117242290928030562840372252459576628043767997985698721455544217657737655425784035341253064385250922189787429968009332672306934084526786705104989268199721108320677222340135249587127294827027346889243162250307823413497774621505039141313908147893217409829505021784180941777672626438486648946558502200545751096914388254813867180673830266618986639710827792121142057594616581581063787685000471341955486073267715354068611320588676732047627869184601629761839443062162412161439892122346181525904907597071703803024119164018717213211965913232930183838225307384296322187005042904731390735027087177980581356693404109708148299050987255711405064421413875328580926271186671785099276299376274530737072542320178442865763972107314982600971306921197977719102769855913299205467329946718138473909597684294479596290278229708221278355575649738807918573485032129692255146210067497441576960992369275060816060610316260926430395217404004749578021923698370619105112075015743523795629333106414842495349438933992521347773226542713706750192158686510831998752666192101823803009452747691965450042368309777152026805886992489706053370417740937852532009269411720671360429447068037776093022319846516751708370945385971671661538279951059103868571384304486914931741227890448565310986091633542716698429674090073300699926867369444727362665320869117819106194396025820705116152701992518527082971154579658842226509555293446026904189035598685363710613429591333390465927031567500990849935053758717352840981101389037107426227642421380032878764819806854932953621920926562139069071548639089898680635327209231243994851835377775414431369005385221634154508570571028628149006925282672605093006481988381877220860644880045199872448489716218616973705993533925919086016280708867543543144131643111743375576578600417929333677326341358817004112831007255709161391250857696327567487926775442733825643661378508800225658533344447989993323292799042325586283070196666483413872810518498714040163659473866969423858439466612727682806250440198844129782100766371030623338321625825105402983969212808430904671718450075271169732669960486726843800820850595120179540041764594540466501443566833407553621504835628312510293110958339922578028490637441458158477182597933900230916633889798792406904769960877325546294108823711808478276343305189554885882046937970541594441346007990830760081564310493384474686323405289277147099003615152150072251886892509230202350776495564386037946642704516987384804772206302964950128285587878769434970311664409220351305200053597491117098839128717118748085691882203850717244968310867851505311323348886799146177140526529684600325846345351083889758883108576075054994819188695278793588813514117468700697653092328476881427796414495754495813381316433328496232481225263640622693683490912543768634041627493094030950325477777766869437130044938737486533412997224155392806706377299294290932252654894376570543584194663437562421561261741369076578727998192771363814584845241497454794760680562380487213032098544112583832557202660719329280948637975346233215834200356944004090347502206083713554634317307676823279355730322648537662275208930334788405674950243326862069987649440066822543314833477462265369166000740686204904600608428644689792706599417845812235727533472178977087112655991068720823562869563202335565017466289059875356955750076159015535297005052186293777643618316927559848160999064171679078049428715694837840907152573921072490005300003097711800292919414490622699444974589335678350178742540447172388918340765376176267273668486084270600931025844497120071051925695189182780819018907838365780834712506977384200657340761720911206246602992734744925065801937240639450763118538625429012503388924974505911296881422994160275578559885937691802197645831085962047526747127082738885040049454818606222224894965789619875820611141752307559065955505220556657100864971013440014220442358368201372759664266541350789750981542244018023836523230483963382970492462222990310973793913508332001567545485482887384043788023253394021030226646964040544044327651510758571646458565972407612376738018258213369852077033607320289362907979909520348565176180596808412149806476901640817695685500551860254344751426295693067683247972815870398338707488194478300650046985297933609098952369431566258324939185576508142301025409371404701636309477728874069050338426526296885399432081643451583481850050408150695671168292656030456285251318741727438354664947043747926740592141362207209472646727227582138669597578431051266807770021452668116354991884859570641281489492906370896498524820229558742576439553349551000884125751502798941219009213735826821983689907132529552032213475982050390139113004816931860052716773195020603724923254924098433168478116898653518496013452595256539188357687828106241837349707011752777623830756970369311167786528315832151970738200849365644050203719098560934426036798719230383122960651589850156882645919743142915393187227684531541678560143927629575509318832415496562094214877479015667325018284964119366780229915479544877405352930528938542059376046928174882788184705743928830189635471579934294867953704240466592955126811803953329534985091799700171720493959553169963277451889907281053581720057232408237180081669602025170111308261380175707324599046715148635877617359671570465446977576421542490340116558792194791036152834698086317611911096998046317799416003382534952510633186995060597280912912002784275507892665269201698148624260243139157954927751926450471994361093879128399173255986801065766754440961413217700924862545623352567888499189602948091595988512467595352965579602209883162848203964832930917636963109970055945367921306018746698909423030624484317524476550045343814898110477656079566162190200820049761601472692047909005106579071718007435956863165768542056058188820413351918002272740019568784516624670003987290524321549764331535663859618417879646246164777762922119561394625184133089901209375064075573307377827183776370815791549781376293686471350554266945451986900873716742098086538928981581178828953260593651633991327851297348425767713299606581292400991890886095833049524941214426483676145695993071363780701698025038481966065478423742002278007024015854577734273208727193944316335009792961581812435727996968407497374328156549292530797073392182448173520252551281306956084503711215344511768819137824401591914172200651108421433159813792393369570784285648331496609101650396406543096177396904346444446602312289699289275380004097817859483977024206890381201787411197378233996300871012401063628094809127747849536853895463861383840265082199986547751229299093162876035085270375106453967401852465352701754069798444439550618917238352814097241565932012329328150045545076868770421213991327328542982512344678633727635227999971790085504047247025352125558940184909945744873969496590983577718274104570191988709662773433470401823675618222176481707363933322855574297054942895315901967999450281031867774213234454644909847448435010803968845301396284616957856475879043307971694246607410422003798716639754776668620408271142677771326501783841654006779268745821382351485950516190753673429221021702555108610436283183951310127173812042119861353641506899604028665338424331345233942133418137708804372172282574127344197839938885143380568094931757452404585224532296989824691317299930757806466274921747116029675499384398892370944629207322055566863251612836537153721998824666062742485054727685029702744721864694305191227822891418875300241484670652998084254415872176007866296257761879700890437944366700986861599917410224550322756909349356103369339312504699421443298050925181791293928792737151274950823648919344007142586037025576119804283724400517426412191583437677300735885205482313446545934590048827500031246578104419091206394280148404690090498866214589383616693190163346921734383250365857948468940103768109616880468021371718316948574786929376558483405629228987647697299016911363320252131509209688839160818780361149263108366261057005574119902270789293042328595115965123034061476633858707470046038854843671196343237511099274037130893649483928003084737201698575591007886216707036422651309125730693282326365431004110166607221883528622867505110675676977592562477216483196686507718752471509213228443530091045594853955433215109635870479533817798356459562427434180005471751096387876427553923222695217468090732925559796667635405530501986219405709826738507839666828038274507707846382194081643322356194247072026988635237082717800580551478726255777557257373410573845896057587917438256944968567715076512971424932800909353939051772919624114740213486189747429902141946265176733110204872843633600958660319858009443363073173472228382251724332821369483036556282821156272373775483367022244553944987664588334726307765891021057048133798211562295084111001322332385398482691306920166226775251190804883445980346666159142337804960166597097984070062535883110531964247664752084643227751410748963426498372466132977747405768007093449397268155980907829269414421125663926665576717335480834202242342061526008404457128665976631076284599325996041131367030048910542062868530248577229468590765159434770372379273054749457110614574984077303152408384596638843811600979534525199320431643652566124739433097442122773469297625624216260518471579187919798981830956543364817211551026421959298515695276698560832553078080017461575299337345439194821845446472256597196673112303575918739462321903589412486383900162203818415785846322355072520007105804748467330820925621660031977628543109794896528652603848718252041534219075172767854889961919328738041673379759941490756454765183542679028687093415310063577438988110264951618635145499849128605784615516679358527280812436002157049225482930920532288959983449776358217314692915708504969259146093523717932151406331014999322062433939466439519006503806007269393227391584399499754868039585655521892164393135961478194158382931983055114160226797862042874026030975023395066839511321759321444216964019504352680128217563691484515710039716780374427681590613076000590710684632762105162910816485840915186216214641557614510317926298180038559743878210264418867280922961079477146790987723628376338658584237619218506982393407087837820205799162462921345341998415432027543217756500305985745044903407046891454076743355668322490930612327024711580349436328335522046864334189137546203421872289820084703427103367236697286227686170861981625568940463624922293496172228787305510327798349661327809470790809346775269843339763384085283263926913812683488928171623047517317474119480835342553881570438031651287390368102161582167603654334328482245912053570674049031462978380534307555017981025579962895985979693791464644322205651397324575856463168428072367800866797785966718529417607618838508500665950801411304680749552563772579590575215211241310793613866557446884975217216900395602918605202816666997076696395698272284108774012191846806570240815811158687504063192405495864708153729776931139374371631348150948119612844633231192912414000962127058586987741231776535653221774399210273790058162478543999088167720690877856184819832516651280005865406837457054288479852116966372462408575108815123229289202096318671254276842112338374239223288815771876063272049678406507752354469931420010042313177551120344696053919895674885922593591194671684785144279362552821045357945432124381075468470395085705519226747976457631992532787492155823713195787669134460618788659361779631499631433080516498446523549227633534899489816773669728534571759342879344349144855025541355447674400494703472946457822186984929515182088656625654004573702107180304770051800453791458862174639458765214406932020025162562496024564592754066684546885827147259878453529909087875548640236682870062161317388379037582108992207594587325392321982662272238881539263819521389214333924060847878333868872305475145757261899686997062839993089705073717813916135236198150984201252102569373885998136920690806525490652685882647480373600612610738785351280027194796902761509433786447790229463525841931219567137787726786782265893718701392264850799352057329122969456345817133796389166419308501855980513414978469801905308145544005001219534337157141036434843125430913720947159768608905910474057679466244590928023130535993401507548250860607956790058438593186785779370442897862740882227518648902918898330966269420221794548061302497162051735955053718959361581891348641870546909461453622896782400515555415551353028375198814144615353444483055499770693833218470566318996661330449540164997009704628131962949802415474920550460891557566646677281040010413330027123117251695903817131459459216392882311165614535178659355905790332383214170350287645602925726368111981301315630575996844049654924314770737609320235846873381007161241663550199480008497546216350663787823597785830326325223030002495786498265970715634637237565654425692624545102530271721576887277412076319195346703937019492118000737480698901526405273674036494380806321802365947430232713665919556865548304139737969713207479883894613380428158826259872139414654511697812334317857952921655779112001506426730926220609355718427428340882395711824124115180930876121998995078279039387132176022306889449164046773602879227758970563069323565594517609096995888984142242837348240845519042844310261600239922504035794221787051069663980338183813198614991020511597221025432773064999721653320337245510249821842782900913837939798528306234630151533398314065265390878584340382919703426208797127254523046255579281684474047696925843351905200028671108741628731622224544807630568349148405104759027602974326657675672830198359042108870452597960356525733132765990135274100155557649332702050890239115872186602553929226270006810909256365454354802705858096759103570078264989024054860210332746457592040916895516040740642601920415485140242405663431141728588145857534829547776338949055019171402171666578763330190748831172848058323679157690074685656498505780276392273565781151077895778251364260859216137916075363605883786582959208183167868123852562703900120344539385381610592571921508329568391170004592410464652631986607816407367792716538889307561972677822590211182685307928652705648591006134820981763420058243926843608727237289374112907895052116124626798429122146478195725553269389669000963387189265100184706149881850713356532656481024926818311894397706592772117133776134330852682543262706090747594862598063159650463029367813974415679863750141803671952610190948690882557495508587981570632366809087336257258541113255203593034928888854834810499234282788480524769195334081051462878221972645198014580999704701997722861067765965733582419062419732959560773420246488126051480218619207371329433905475798912657715371648340813646809449844132198792552863441682856545746661917493792114143031645069499589504112711054243128310371277189199639594678803035136923563548916384821388310105864024756274233915500977639431017128724888428200963359813449218615966239518370319320795210979128514955770865550799422622052118645974507829895052061695520822466640837067070397717296141917381857815059121732928075815799777556664912002206204243951599279750023015174108720420875244713925582390533952200135025486795061510418219172886164589253435672081058564996751196523871577879840797743471805279399667072563156085110792524628845866354344580741326539654139980370612302848806870674080047212355721050370413433757457173628512437652862473129200423079452832590676837711084349792276993366226307055229959271915256798730693718630980349705551072076526801843792826063799393337935072624136570338088931962107664556914387587583081929617738727255299897621198508514861220400669532629870784129680886253663335302290372209113725127374074587500123351087638160573107511237765924994254825075477097462876981167282827934319436311905704749794408331267474789563087240257240987007751796573939107699464023064155770612368450441862429991015223783310266077392813897431388915005584403652052185464769986581605239701162309507970931162884758244665967571132538253933913042147642257767184380439222971605096828526163504051914711582144230764573731316211185338516106952160003134821887898965661617778933991520364850669731369360080000618576420951612083531761183504838246193011672075352382032442353114505399758414193600472121161106863267667295493224490397986013247738357927164841810887223263944515903094195758464756878695564740337835069517310193453049924904569058326130886797372792496779097419131685584497607904997263945299139788965554638935383739277509001268546691315154444835626538902436957981849660314236247299473991741982329734444491588429632218207814811971848253230359909820759873827065029041212250340869027043224685734243315069284868643570005663684000812010410444849372639815939721994516358382283684773041474587190411323422064148522005780323878590970752260096665000390442525820141973170959918123243718668475378921529223535877915529132365194321127132278451013765368371358717759058432634047075537378287490472013149128798125560772689568444643944794626243334727678262560889903409471312853494731525253027479279800758427254195080214974700474288989183744049687092365047494497398154949837339830996034660316097349239749197599281646616268917119499062808608004452461978256230407943134005058401822848112192014767461617648404049966406343242584125105434631728530539645909859468254005930662314838842697593044595838992958972411861602277409070467705800909656444082282608804730809375941838509338278339580563146775468550150165396887335592345376181751343960889732957851545530110524204977790557697419488198042838068683636017980934060572158510669172510785313153733650512827794207839293010005395212436345947079924907281066528796109502460531881740810966218512259723437070468072248185745812619007051360319421583333222542642724124457404508718828598764559908204515524279856274339231915190314227463874385680632786313477696859235459048246935319732939510503560878034835436931244505845655532789600282172513776040317051839497697251008312450318597080818231099015528188640715767052614677137490869110814961258496123475404130761443096975228106779431962905814749098554432955413228764717339473384659551207533194819729286319426856130282583969553876238340710049371790333833325387229244423180558617106550290950820245054425258643418694337263389270982594786683206054810525197164068131967584076787579085494295400965944764117650113081152996886460880447880282420747283595076044605038241282246520035877220123722555818383604180673172957458751520254331533654598186433028882905144928907888562546502045068891579798594647019519532776186780192461076443358080076451560362353944396169549028659160215495347331521829933408061027185408527854949843524878882123479289682710677685801411192359489543366300408386361471876420921218934076962543751565596162547903260566911055192436180658192582843411065066657658894939436201959517832072221690315163322451446043717759932039220345955306982188345150115059713675656489934985876077229853039911779357529384906572626030545096719109388061985578576606718175859636039319156994515689224990011843476340536323609829762505053181779564601029828388083163073962497430134532999358201794559573107993753004445094503818839962684573001614697571127603486462678709619937377204765501058306085222144706407902534210282335608846005564777451979076708449254385174329329545259351886297401008595298005777940118942759415063219099281789889614994261061773905657875618283718052295355763991824890696958352572719483615643172102006950881816048722421992900298876401643401140961510093500206137831921132412556537931326299199384365651315423105964714287906699795488483317100305659805016424291120734483107769997493228874789993495328852902861087741964872142235490072601251923455791025462095598002705355499733437900182811316647165161138254677163338479413211446184945468255202118454182382506928772214808635602588619957630519136230573067937352947257282832354343328948638687208723863519505483805403134847872703695877143819232091440825563628997308707954837122242157336738137967805113359391911762047580661478772622297548832839823015215970824049001160663366586193561264486547670658638720418015839467612659658870633848425275218909241230894196155958879390369078529104731370814019158783948920691506009178927915404838631802025758763396874443891971626303039891811511488979680066852455503744939418900263890699577378926454268352679340480192442528355816099061929033542227619159702002723688813368465263317198491830348503539933852240352299115443770447204745554526999461829817095483966462434126041936734352145067863489851157919995744787347699044233208549253915640744069437206288865073630187978293185922045994542064967374092910839889665114628712655943918587840237229335564137369957918553479887133572096782722261894126755668308251389262531622584294611942168232602258298265725181890182988054689026017722954818045358386579283266191291764917017025691965628245211606856561770801162895257808645368336535654839463096145782815781714594146578047491572531014122359215226201172221961640890818653306976494645496292356277207956482953117655890410101436084886202865900622838148167999407071883697941198304868356934744159604882599993842288735932251772120391380439503411826124294148812681808020586243507976325003711878349898930044075322754165982795868286862410562893975582540058736023724748977454112201920156375140144517008375159763766326688449459382920662442419603260900841827378291265252629681799838068207329406646838037379574935120085304520873864483595909294844375772386911330999732467843569326185392538035976112775220780680685671329839031890561118407375010261404025678511960565925893940479430015267952016492150754770435672315160853825121293656125918213223637882714190785956587130191809220580670495846010448483644775858018342260283944877607966638684167599541565072356428424629255548647614527394878349407546521410463405665290483634129137873934075173462791768115245800191952829823973045668289715340022133229638044603500717415966484449251572060601106952361083416950952392237579177183311968710727867254785535877040684848055042324225809574058195388628542979078236415922674588346483541320320152175536146797413766927883724171866342686662733914223484506743213233934694105960457629420135083041658025430249514169629199117535801567777496796216917185964563392629290045633729853173374155580640966980637709380639792325982555762536423706766102432870120581411539066822924468781673611696643876041687375054906983305819802927658120890098356722551693844274868171598795363211124071500527119863463568401583893835649804166991213898266389419029000578733886980201531318577524226923501568179121997740230860957297560086451780645083841801326273860487381506193319294544870911012475636966038282946964801084270692047698347007028142677210711657767401253461387592966935938410708646441266949482097930485875915473852615085970380933777119492579606115114760528969623688253475486627704942059285239776852384751863779238262120343371271067631684459693079181851113818016963898812200590443778381610647723692430715128984931642451762225798548616560349966942982911909484601449111098711722525639429647180329009740066512728630437731873904804741195375056165272458405761599272151976024256459969166898228832541388020970959392759112928632412076283023880800425757108817803976809430043827207385995737580228451182926974433247889555044355385935915031466911425220591765643526557259083543615083500566347417120800493094873551424821918892368681904355753130367899505008843299564462008125696133844242735745774805413325313613580611812853108760290570611959196605287872391146415466275767916537530128009041173863394828762817256615242464173004448223005647301652384580116715078250860017658697470417503082806079609106119392636468946110762102219420594037076415356397323900510548914369636690686809433434274664987338473484871647281689639434460631415966324088627738451851969993241691593070481132105974579000443306317234235079303218575181856328779424521450147743174769563326478635738775319181129615260798676011061978931932915801920473062731833940332055503938918897262091760012588010411401002813591773858554099105435552078128385836228427354714537264115882449193293044447822346519121609915347977671622086542569389904628447612704430439385493166140320785881219270994595603697178516509161690927212827955284356464818513599327593797338854551822749627166059552388750446007966623530649321148716172509068770301211244231647815055923012800686387656847759438224177351925014973010512713682712713348469119268308220353500065995699656643759604040165198951594590913374488975120979473581147147398008412644912585599925187347094189097582795672918485819446581530169281314746135492435547706904111353514198343933262844650396618316141630491323558762866685947808389139414379217500124042065683474933292365263308083469409024151858913144323490404150144944869662652795616882558040188426806657421301386443334063510384697287326697303844283516532751761334333303433538786351520217013570351101821180117651877470293528920868361170280542531543756285708492441171279564167239070512123188088872182415948932973865603649470216500286368893497686727988387892351674939342792356109789943399416142869702834451492591991027643659004652835626690828985154421020977946470255172303024151423287265692741134160079586563192448913843067834830807428034567079608446518435527314734720392929804108913482413184643003571274028808829438822229975161353175382480095813627250441612184352370459996128471551730387424559367223386007620101567363467460699431109118841303176815985596747282074044691943903540260919769188356048513617410921418393333134380984526130147591636517491366104612206724356681694984242097877907360300365691110090956997372558682101014338557821376431062624264870738888387843360211177489422217443277604828780423808127328663468702077375891728587658061721040990371020814298597713060426070734215336466244744650444541432740377383867901625560092323949229349969564742153321796970485778819119459423501544014033738231197993228945284081713537572967642640450527109211387294297856218707016562030170797511157007284149191964179408375887966237982837015145262181155867927414704496810246984947811196551980401138218344511921044463719598882032177054162880451358676578231633496189928752246808141875106584193507758017097688269646523715619230519684398545986709469861470099958510762381994661496101023471394173487487467026516368744600777215560610136385714333563617857210034811937523952236376356751749736632667711390953369408688656452282767516797334816116097717613373809308323568497069399615974441147306207780782761051213997593033110756798372975467724381536567139806089967651206192294685888749276051242652976277268377204981959374364595201871554970558834099243099584315137591702156258004303625517513628486964194466718654564207002659066840352010093330389041206001131151054040687990005661207888218194292253768673075277606383679799417047932993787538098866338262842018271478279668814639981848824878158957009678317420278995496569960079469719720570267593386218634041035091312932955752912345135394648117052727474267887190612121915997193819857627539906663034518006906917858841149732620610415747909496150731801416872852177916909963291966932263139190578514070966762649256456884391721486709349576360648788663202843804808356095241288998576818689505637709352216053483542842640428896054560167372306061590015558834445144724333098089129593361405827107615680902253000339715020112785570528872365042219000068449647661952665059151426663252157591670023231710952345727985472257125677458042233706384247485187337513029935713514198682316490199436945572478226994059570454640457837188133580059878341418808858202120020563051596946020505133160917805872850354151947222060068670191362410934372683767076379205403368731554924820365794164751199623726978563509346035706579104949017615371301412848913771821235230078203144575514853864659143692593524481721715947573436113746508741902183037727009589098252343760386977853601529498907076744181051456638543336395824293562051836325000619959192703216567359849119200124587410966586488605779140106955496648677138803845416613270785424378842358197665650546920900819126598790398831379002298650030139524681179448016941108884611079827305893560830244682257917164232745223367387607180528151650697276403786010387368027967806867431535213742792188850907932842847586811011020250695144961946248980622035443272383933531509673385978806425505113847865804574796507423593861019705911366587824896737419219982749516892020268845753036009058722013121224026504993586293678679233370717688773172441198153090402539879208170642894343561955525507430394157377734693073443144127154042537780049676299785436551694394100562223167155136283525371683308086577594838338868093753781843068231730780015469685307556214054349261137749134961360047216099561838259563748696707670221350884921289597668696789425812121699289447336553480671478685958503931630124825425177647833317493529511570237209340255528152712511691183603185287709670252263862726883022861237265770705885865044665076938749257246708988291389209486242206733673460727348088284525553509933902701510965074127551357368391640929680295832765933283309064023546532981830819264028969352631946471788181697490115070557708029649557447075399906944482548768735743374499481520015606602677799637197581390956620241424929763854361150059678333424956779853804472680049422686405090019837793488072826662116436129031257981347741924021011297912450769857013948998534250197655080216068927895057482178033787742018372448923023873009888088944300511652978858310269937292513849144570428767713931348620076083863825897853306959046818054192562792260618776930739777977103743073962536071378593546062366371378950997162932393336295608463551844578852373472035307843752839841721333255844019659246900239430881035197429150101489948235145460611253639168115550614275648020514752233306118853545559625605951249262062005639200954043604191936831412942985997091787366963686648003409457365562729315175281450612188460505314215349666079549347886977226575250229036635943669925125085583798486028663840062580155411307811986398686285476970547178066451710279289859978481164101817972880334260877282800577914565041520518102360011913492525419431800098298166137677393143920809100460787542930998549528043992995730874005106662022474162749301396821433843196892011580123457595484307402937203244522779306603385148007237874950087054054421978917560181427300870281384267367449033702279657968936989220184903369394628227223473982477423399922462304292607461828961662691699970232372148958670766159282699719150353494228920008122324944435423671730840484282965308637694221065208683103602142235425294091643641235812236485549796663719442620498568828436029303133551884044805908147738349202350748585169530608431393773621436231016190911052342792667326648236128444876570258304777581796501931887969100515728097391253426363080914045453736401933266260998774849685902293071691913420803891481634992670285309780750511432716285983611896223702858833748284219461162208514868948325395207386557823363975775075702734910344914983444646357869329846824394157014408784720471516392846207088012140801300767953861349629461405358464234709542819924444418151886225077369834554240673710692393043735786138969772208574208050916900169446821832370530083530128003234897781981466844942538713469707494219093643129907993306660754536137518160960008927891722162806343755353406009658811041612228032962133186874310041227433089592151878635718830003469338836132506915499413680054784718369784983575505990049554218682580122194695958795905749064967544921132732136236960822735730547839308282714784379976097152365948552581530179363078573913815894311096291260411961821973045300651292270618970083028405146879191917086721474550699807138254271136064595928496224732547273416680929259969847749273968408396103100652498100803539857020972282945166346756006164352583215328991382920784784799194000094776724496318301708847071363697144545815999455983639159641290910426493486788722904747064076742790262193543194630763243127891276524369897858978765590104626123760710396908706531967226037015382451015659194214162029817929986694669471227737458326977544649294850198206961661155768600678939805482166238442575581926948528211810204272024011150129734178766009185405636293493138041832080836746277341291306518446521816038998433052652495114305045484172551338567376732582613673907636430462325657547788194981681106548218008478454244401079313613762466015377521308677894628633193047170894427007453179961909318362379344675036201786988752447138590076128383532969610896249157086659198617676992075867047156637915078841108068361056919545019177948490049430029959025408992142889020193963386047303687853762574845162979643519038571510394727297477063482519459730844495980720916857269822201483262304177627359511660556002764208738146154482991208746007398533611360320537730950412520831230226199974062783412355570330391174087200612706941817662235105203360647556831814525713197026870284978732274254288866655956922074639685314026946177027348196969608326508719781333580276270937474153944889363369570459724489794223350502853382906512084684586792700289712059117895551370650299407429627927919315135811405344493592510707536237634938058397859391633268742111062057557362406857282291201704924155295951609731755818019805574342926245248351055938109037932928361451601127097559355912424941998672709230221847601914006520205172763784760781253352039320392075263059101190481582530455083163375880196337046140571440146417471998782034768647349378301886584481315769757004143791328675982768667964236722076280747917354034371229666959957177982184465423403898770779764580813051594757619297690234955176881104118125942122191491796683925728686533218006007739568883006868787732246480989687733411630670054173390806437257728375987704257406481491964413996016493484858941227811953850771747057407436632258345385008879575804360376277298715931794250994667470144093676780311006549375407511045103084848743862487827255515620282614333529035636492898912967729932054470978695403541282306418022899150047767192944383087671686151773629411035809404722687793397954609069004794601888715280353927013499592453940653918649897277347976651478741545760000401035058736025103796826280098075413545695166574604914477116718363137106391185112072991909956644902218031761283473735854883173484424694719809054751045401996957379541052719512039821800219258590761463786972306415739622971754483209061444908641841498276445205345043971056031568656503051091285258445402293257292613652267771650954770393449834429080341922209941693142548825406721185675610017649893019221839263816547579730989451516354765470016879839564144836861108551103457267542391584525772123460570980172412892383804466505101470904987562571281869341406211534565836975885530082960497519083438710986351628810636516082722840882336532055136031531747593628126562931185089971516376331046900060524415863628245507478759678059833748301406288427000241464643546929269196782973709634208087121264861157699351136738309156283923190733484805669178037967388375892445719749027339473549232087438789105269557963257444519074586022048891146451047365016882429508392616466553426962054034741625601850224704866656053618078333940425949400352084418706644485331364665674382192815344299394708424080100770170774652627694329363457751355330425725556754799084463406794625106820421426868645194344880704167507856869294353111253893480016318001786027108600248763188834025197258201725795812317146974077732486765344271753401880859037540286292934166190027300017772560141123295407128241007038639813866031649078890278135421966697161714353563535644674106531827897741360080554970790776914365152778729974669201689616095864551062321118606856266483677647050023041618317600670361376079412901151991507176710792981789105185738750011534789627015267928429799314190225198146712920319902972518251528171846949535383099928943570655807527613559306383784806018782154128751934167163710565275713234763943527280125233121242579792360526919851700622917022762569753942126029397536244837156978420023252332311335520732914014100810624899966984704705194740848477317836680712619762447468754705231139852538041868351571394001256193551271413186289350234441637368266507902749854208542617686540941879987815725742099084132098583979215794798015043077671053324946480333550798122723674381836927444494007651239705965208958713812946949656212144203364040806076329528734650785853059300915227337461777483532386853870770248009093844653836299056014195803880123582920406314794104713141903843265450870851199982908699951663726846853371645902044833926903095961753648839535647024642887751783284056979617135401846411794089689209927329785797938195328158003820479406349123880320911092491902475550437074601261940348789380892092686304049096365127528484691263479792087369246783357142471685388292045348321290029565275246604138685596729586254078464889756251888442401762329784106014306028987479100276100289731578268659129509923285442330858938329017793222046349325862279353079365697010437362552731267885947985334075715956468812258451262068654863066226234528340198206200312178434002371991564821455551138860648640688825177676647275731619537754936059181162395362635360159206982220409819725398265744949667513224624319820899550195974238293052168374534169217467006590019813986523563769479002712301349206524505504677724018917677922247089248857168442389958564887637421150625569008346574713535514318322813530690634312423940025612630375545031222117019942862742143716455950883795202155254118332237005719246214702310756556335108234187392856299791846230916393702459474107521092195337590340787668506141939786616734051277031396948998998182023546557639776767729284720037064658290268670793630500708812745379938690228125022113117994363815955275185445926412917944481297889326567200573936329067938726566350916465603394545663065369135465205928169358200459993176267435642830791691613491361250186680961812193975798643372910191687240516643880682158422128736198532537471858027226966655574242789528861870817462277025640638627037559158161796538290863494068680153548571313922570337011752697361608770478401691691127072624033174165372744169252441766772369155819342337650179581338290808413529180626564129306512168631365670488049775942679061818513927347516992250676384122083470092572837751158982895356966651986050810041341001845589943860429613177193338926254189281795859281707242951142455770956517949130434629262224064555291574952218440324698512978899025074259479358247834256701958862683561888025963349185758765467519218924094195903804137386323672265818662269391635638696554139894398395926763991522924744555918581090824812936009632865951202742270934208058188835205969898349521820740113108568660160502001519642218102201909816093831256412595388330607436314893293585134258746789455054656665171787036398521270490107176370338511914363985455515244054013136234304106126313313080166336024136858623541422340085938676009685974322246615614293424189139062846816941641529030815785345370302724341141563753892614183878559614689176028412659577607123966294676885597595367420435438212607795593169141253935809213741199144114881379619090793283630335971009403162187405174821507506813635190174945008430226460286000486684278926150292811333520407619539156592284298083540247906963676566187964070053990003946916951528812663654838246047091294805610541831648305193991226187599599098154697812800902360554859032670406468061335218709203359316941913791790199722300761853717119228074447435798631221056369228205428906917982168269359094290922140174413978328190819075944821791919524413086117045710661214935512901579888989596471533146603650072104630302230197098045781989091962772150446453935142565096232081168371135043345611075068169383474540470565752428013215722048280950933386207220155474714425404603995284152757095576720113400717358566402462170071806564089798523075604067293924817198582109699369104596527111165400176558625390344416075491240709777039724263486713469504490682029987442773441355185493032233782895358853246494828854561192462302195522227340908777950898329884832461039624437594700866755288822721572236430841083981380332744422096397866006145600723400744368228108405812136911203870810998011525426779364534325133153671721362249756135229088787014307004538189017996370157342869323184419624219663838843542945296360036154049652285963628985677808814630058731797559488228299245066936806558375099829023112378662837674120123841391954518669240705251070173992131079547393629622028082413742717109818091161193843245206318413799290615978811707521478248147036980299196877333866778299530241785969424868107549765750725846538424248045929582890787301184972608235855215753559484579510759481260221232627537898082759013030623980480331834618707093556363369443712268730766254388686209619519986163329805116617589466789141010393019187024293150296823269255296712751359227309892360128811426474706049831321753389519211810186378154044613775576826743416133281254600210129605996531196951488728390007552575037689767849884997922563729882495829724814544897153169308531206858586399965051850669090254896932438032324539836582798061814028150617796762829452256027982725215608005112925378227431728038732653363555701325762252391512411760624874706841388287329500290871604411070169438871512706340818548908702402864462224496222844648225911839234850888461257774436179078245513604345797129720625158367260484357020113645662548537803689676449914187816196286710168594875871634582494657582870023878398781151772740292703073886850582280275497447180268804802775949352393285419541887873294512820922352125463067419392005402370142133576443773460659160860287284178660132864382935203588628293191968048611809350660889947619551018147869168222347717270873137968483872671750332039544634289940342068876253367294689039595971217529902823209354173833929381286746411686922848883501907231157019788823326700783324533121123859483897566398840632295548726207127825641230402525243693550339422180239295013705439833712069577807383786729157952020069145941406529696113286362435524928402636113852485834882616613170245901644193212353589905879620455346822270697989353052938333482268814830880796577403517961753198064596933376841023176356512261056722503360286006463659548107213334629697154983990019269599932701388027220750583975360236474443637874585167477822419346430524270014150750433610259794858821146573689261331386104634899108612282552070246437860461131859594878089283016121925476101310041489805405287756259770273253942226631234797359648291573536121755770486561606475479908492486751388145856910144492124245257312772026597765365360035251987709264983396218298580149559815391439340262560278734919437344278594372047098899027707467628679715661889526383407047222451781915278204627036285816845446417381249460030101751979511401517382399498073587209063487854183577813015633931421939032873123921009284160138844435847230716455708670353749981263972651185789120881543749031392301384418003374319463727325224059473507793204856032919818099816035016040816976298474057992155814839046280655313147805499963077914711723632259627742440876617589835804411454907308374747288355622738194336296773621016503515531755105956717859151764002402904681617793701743440862201865683760041978221019910816228527111802414934980052092710649322449481005231882751781145909557181873209113847571762784533126963070659653641539230423342646320871002581031724525228897083109205661850108673245357921057518190988193128860702017761975020612751064159440430645499161283963399899891285194331752759135951223771530362068105255285278378659914465085427822792406997286965891005021228410560098015342986260953771929774211152679367986754878543349145015629102480234352991684968049576243748607749342038892323832777631767491550192996822152404765674036848865621520941833708359071760979383578039309706467951517660615300933092411224851542863133334044694462696716984435605646356389925707555115440221999724701747440103704490251488662929176889501843307459916136589904479566803937235794615842895612889158103832872438353452027732018682316102776399043418984960740612972005893537827046032888046987472032404811142557331744807461755075744618510824526178343865805507037734116145902540308611016427923590116829321377020511497203564925756948706451693420313984831542353698999533085576894985712679214852419033875770938834042385903754348443137572169701018490900620950165279416701447361914233788358450588677973210347638184001545313336610762522303724222696984512298949900398531474826799112804514935424570013812072236533994451961103723182230824314388713694647137640573727701816438728033341231362666952693540636861703556223023962422116887202072560984239923392556934639238173451604358794233956412109805157140927916404890208504281497687762310630058139758507015337213577659931211078829093495036086031907333940863117835873681556964613153467449030503279256732942065374408688259882996556323318217011347178446963434390481480487586025374307765962002230400022802413310028706243807607903188478629263437677738534155314210400856766710107813550738807944581147427691910671718800204261697871030045451138560692480433194226590752623534456925777570216330595642766826926575483250969293398456973476393918328869446089620102015931476605573136562278119291119587050078510342508797243402712705305233956464706752472145748375171965949111964576775460110031130861509154211493731742482273898739414179724962349100193488589161312609958751130757702751500741580769430543419147313478549699466699657960684207741247331549135968567266407708091376162238010997381913631831926739174132171970133001214258635314921447389723803957973426100113431626435048858639922689959806323653532872140651496671099985283922206649029021969070466803220140193469264141922552266664320580888518864611447442191643764687724918448567933686028996089874237531964206329860087551702813418389963323299902721867409054547031257878910817062319385702791685752708722284987345004614716837462888160234599364947244509132742890202532598098978230998902795191912282894589325956658217216436011318577240218407962255281891324539722335296892735683903200385400825180484850948558422949505775184355035787283722795072230031974568905743879967460464169269700580898281217267309707734891868042228906841988139467675232546528928544915101981508245618827200073940073680257931405282688737386344326619542360962760259210900410282533310687071480032294862655852959804942262465873651014808688863937675148780580223950803894903885627837102008604442637546991632502800730867583891008744640718594133368023931864479247669218496367040455390651950722662291468579159839204537551745872492552953747148129442496045224128779511167006052032287642302247940939811023084556859208548627520906904009720020177579857876005986139628655646792319510512106762077504372718831873012466179802087335764162304212116603950343226350480126117730976842035092468466518866698669887655307812288810736960086883529637519395620219381739539223880158037317950897875567832184463182781670777567092308951500141228384388369802584333092747581122455502692424130527513196995578544300348045195877888579146113870154671045068422255776250706647281409610311795233267836050212056523828193593988535561846365986672858068076624476445068300857840746037369405645320142839476717131455440597788148681769604599471646860871652231910395877564382400725116068000329513743618089358096404121125490910419446377447277717193770091466469173983205663952452334790590373940762794165550920504554163359512149645898681837601062066525074088452129462360077312783747942263587444155016248035875236392920876934235481953337440955504428416961017680212505592244166455664739684618064764737772752749082505462240321697070229277015299144827107494656189231418218107271990241473273790377229250607975680832199651131304415560342874963720884446607716491889871154932035851150744897702591475029852457418272771461996658319820902857266907100553414178450235455063783476652486229535771648972946908901001630170881938970348996057951339015050630788691184849116437466430258926427666943947927129786222142804279752525061162215767423355104381190267719839726548773722631544257212139584221000249966649541972158241747266330596525026639479758961725933022499912263035629459501366650315281940668617737580881339239572241135823894401889533308560918307962087687254074709600284509820266932389511637084928824255048464405128985150319974805650698250348393928999409594840184466145937292061075205125423865731565788200043824704563545916847223565481519852748489817551661053307096437235403899686816574815947797133789672316659495045670956564114436839887266774177321239745054376186053066584670363906166461833779309508595018553516579787398947066709489605915477999085589078066327853501106041788269114868060974688895181651958140166123047056510500078165514905790382807273819779390739225077193380584066219524049781940510274402499246765290753544410333103809974559245008853019048727731786149455399858227102650926083309373867872988286243937876064043640373604191360735050333746103749911745610384878150226256764018691631341711417907179501750633862144991995415631502161718176538693883006493423876879751537782507186919939172541054014421711979836008390826172883797786735324805539034442909242658557468283116294405436856978377967585881629001603411809613942419468962466165789546606234474516339138879782665650411716225586319606602491838221756680139124769953997883311089032614625481254824265999480459621373314365852757226666992792856596982381609886989930640329088586462707013735447281771091317952994030487490490419010983216462817822051316767733867106620798805552356268755364547373070587338553221844245341532519736443307812848105113099146454665817951192808910298076445334077608227884939043983377870010250378384654177355261828411646640895228252423042881983447329179886240126110210286567135790074946977403990567957831853523191733414627173972982497850443935344546452295967772635405671105428207156180524941573458305524972668567061707511074619756637721213792008797347435897492533952858355951849159644794358860283320728249416696275954157388374138209444909163714632139320328348241939271744179648049979869330507138737363855247828446297781103612718587975680745247961824989620378949102685339827539648784195339655782472460181810553580903483508263430807324857709663200782488823520034735897497824679711982791399982421100626685058735898032749425710149681534351589827269432329335430056782036744649955730600749361668880394326537226478534513640286284443238519023668263166669558463204295486695223550952464255225578763414495454295146102187699017635757000288666425067430691082918828204853894232846982434589150456163398522144760126609480462232119664780412768489720246580595768169727436171774988228693962636336035672858410766552584300700753727960351310446685644255118211277275547599057966161128607599320623654477514510189528975371872568781088619666542620965928688153827017334503992211303587207891822764869644304236240225184865614118594136061075255011811717244673329313513000446376479876240093063917631326604974426285113459029718072990677236586083354971783629834317972348717506252606622048216493833240676283229395963690157983347226489417494382726340642737097758411157566467922396761584397233131577838778940945514371333655900760838742089633329687387367455049078213257092983384943965715026610852411782232902230235954498513128407445665628067116686625521276977707656654247201962214977197838813077800315687463836926102728470266664428700047268979613514005271126470528880771613673076321013406887463889280387319800340627683508771612303643471038714035522771128543384265911052085224237774776792811594605760602106710969696038996587516448410419914113464130913638462539528490005796043074681460133227926776971690530027780756745854273469490074723911300228473388514397125364973731267247586087063569708190859993768964886820040957635974527920691649657932906599345436619659402027437957295853527051822961017649516443205444475912436955847606360468089341114076276261248301129636631243841212529704279396659657556919081477635420912685370346185003315115520385975482038059593893245842353287450619044298911412068913301271641326200152123276166024160195893844172821085978991100286890634320257636361853376710691446544620877893351862530799152120361607704048294661544945272514015268601778947950066107816962026742347549947332350220744489227784506208388692613191878115687672905107630549774246074038429943461051262883711174954365909016624030842901109158263108069288951954246608008717394565197548743133592812537807278318151303776586531163040187374520190031215272053167452702869253268701966507565063898143724320079417639443325011926069712338491303440446602336301981593602542400768234449856600855269341633079899601225756980072321462655178270643228133809108511149671368201007757435303916032297421747958362552637030660301018469848185389871083438445146667469637226265808769025398557185525908527774165639137352408983587720209091023763517443709187716451793236849385367553985209834901004103887113188822257920955907071261655784389095936409801988847028395305718002944739103604530128314235751510552967265929144008524612851265858571882236995923535710053434457996693923702926382895279437275496986883179758798784165983034853094174861964662530851385146755237839489769096729163576581065439607703663454786449074238560237690243449220123083411677128464540936824043093716000514946534638385191252643804382259929499611351119618764652678171723875447149925343228376108754433898228726577466182688411255847253486527363637516560944163747953195591320274042073308795089568853396383774755545505386759698062009106674977868756559276219915686386578955413510551036696954585985766580961302370541932933982337870114730486002705821470496280204270139527551362883801558639543323652308843519612771707818948726820741855772122077567825022148021221870520084453428424917757583342684870612740578501339765667605778276412654244150216256981812008337226948518663219431651219915672759876989821670555745557831848238468450103340603074150894526929010779059372278993280107206783461360376050249894881764216659675864513547155092952298520453281365617660063989742204602949236879137031103957308011342465387675628436308315035644828263631492585643248935342421826429458825620392683247754838855228429941912262481778749060338590434121225231001605090501182265747626808695168622847145081805322859328293173063171195636610682173766609776054237187899492207772508730393575040446645907857267321835589338172035466912201570762669762012744744669449507001813292564637569620007620087474636555018768168613272453104512399370463040310519283453740376696031947223961000518901706575895157249152291398417977793259868867225252896933348837962035720451328665816005506185672073525943889198686293026449717360670227343655365377187740635992689435907965975300224191859211946484598229743802799340248864918084458136488329051594420663390157786865569108730975043423150719425022235321379466407552806835820419931191511654573119301868738375402732953818536446292888131130897197006586483737244689599629638688637062879876573798578349209575328520117047889904725119388743737601596018293553071405756675108029461121639729412316743854820829024454527146556999822275031515129242280170256081656288070896489781201307740496027240984127672980576527979172966244440002247391374751955268400228910616302974727670257388388474834203939934307301975566349972053510104755760706219155225821421968517499798250154345011638981555421124086836933892888839484443773427408120316527166753384691019165376653914758663637368563095776729637268783858000208718665480122972632902064536159602459879157624063246841380719994413883624101121662220977184593443467115253788712884939624116853994324400765317959019604641791292401233207824759218890687938941895258533066772589000421279245399888905682131886675585506988929871784629217474689859765588843694640953242652860011020828483139699498600777338032057367870275105442432891726106722993359765561833359998689184141867095357761087307689536677363863682438069963737677702988630820522129274354059854283434638886561068895173891808760448311042950439568327663631837551033009534612348794854241132923213472491760558078197861140385359697336529372804572807248659400086119762897773281150364160057358252899165156999765477026701878117915422190947462661540759735965755256451643023437107347079352542675851877400110418559895585625214721271449061658603039707666506490492728250745166319962398263978106830236536392949154742660763408108212702668041073242988648233037326260934872607150761951200711881758145466787226952129687599372641983075322153441187231015299647599002103897769349631698374520676776014116454181883951569798898407080582574286331726350598186194808102806106614959561389886454091488177521894190082341478687436474403118204913119321487087717767502907430847021254439894278039441110570536130455649833087695530563835520418865290730776664551237457297693583993169694240850550533786310401226498408127000904990680617263702714230528548682806833132098543836236119793022615145404386347442229571233034053733817344132754346425586240044365284796481592768894051804001727879923310495229907818386984807658946003507375268245064120888827775802428720829204841709864938059111963108240014032903371372324069760032137068204997236059514828774829743620669014530382844270332402118501155722382226453972256213488999658704225713870990543435607620572123993728147346725578603293946425846503104807024330893679115241766038953414485493996028458789387572756144416709041759510007193861800838981484984629018137667944665124837644716805528251416481563708596703386323004305647320834237911821178999304577410190451688838547097815224058543606354975205377799957209301657121192794757083241884456343315873529708238511568024672319733001721986751640268237217020346730210650766283698298349674026723723890377125648121863652103662035109612706806670438202518460021517117269454433899975131981486308466933944928323368306721586154662836818205500589916150107116042764667381382703264031253443559270578472496873834677762527179853241887339276009769440458289875416511819077263522633441222018984282096977748125562362809485696814791859425902832487307041546417164299444035560492488549709591890850909624210726358506563312065304854857848093717420793610002539806985855061379887140714483835379942780868810319236307921144689665970582592287057036574632957681803963871603543959463684957199060079011166092232437015293644978743623683830699852252645724732177466309506609904739590660079588148132361678830191676333644050968968507741726418754696009686897672726793346012919609802436441047454936046500175129417967823751119514968968531845212030718527628160761606856253735070434913199507040362112236755181968677517736125697843523480114591459253811779364349904811423996977803793110098894539552152374663613537959117834338341261062301302607000611060793456988995394303264473713961327825662220122290987392194431746608800339743371489398759850654682557582564891601656675204795383805404291582216621207308396421626896964609478842922024594571133912232674794109458401804941052228496849830496225930926091865227882697520458645279491343774297740521538992370017826504654527686544582063915838717244345749516222660838769710335161103885777726645252909609558121061035461993522588384154972360969073374825600986351101541578809472137943340469814786626579156968453529049515989613045976119503426265038835968915705139858054096256060593938956133346094996392223460657420504028187733470114207107159214738808779856077850471294847021939389796234267280128152937206659647145111293018454631328911436330211437698677677888120274386086877924901137718869115613716636906455311812487992243588387978751930948740030170232915099683980554855453016105005526698899208583934527863310456843024975940321412432393991372054117383440706371602443376343195555470284871342718626780378710959683178456635245835426795658207115282090069568076264714959021398214650161662738918493247187094095790739953827735459936112856221863685080697109059563887032796443702027186586347533090304906269399489283895573483340277688038100823694743534894361662223666907097286640870988019800520066277883673632779459366446420547537701769271394455476788103278253804522942333533314554886575768497207802155065622794828254996947106086972549062453321514090570958772640741801521195031365407602903931328242280689457057515310351136748205297478976202930673008268019756182033150767967237154519312601061792400846450864917722725118345691335393428458557729433320457995599259764844613330824745226281122789907457766164664221856771375217408926219711704722955238347484531389390081584133206449727853135608591821302368433965537901176171611166690868591996903276348470135542703739862998536285407541131175909728164162051966063714431006254983939969150967733119506006596661651533927259030397215649682992621449351958643878327652788474980736138192000376583762843399625171982229748325323669465530493374559650353845250097639445184773637166311121513667291657442764555750681349224155406264060561368373658526833595733670318833487255506764767739144954279530548761924958395804228574656704397693562854832605894952680420108747087174118082181064310913853050697503120393186403641386217109117598882432087399568117437203789778379554213673276526156085045707049786930838430693270285529869094416565752356428909885361014104767520234714400573198928692079861316107539370965907792337672084823051960012254226806895856485088749769519109828266153027487650703289728269311756832902752059138953671106922860330643974134222041650799035154921896800227180087306044738222899613250488908917941421247891150184658107589853008455823511842965276061590696888126980569284406699142896306588395722029053996090792442390806885880423605982794650720086098922179696646709234202033616338091391313158408907642948360498911220963879363908941678302728288093153786610126650126226105530042951852732207355268925822404940110839628033603494462114828210963386624917627058309166030125062166804213786803205618276789058490667766340150003138610873390276513487836256361533570109764202711147934055074280242822515376506878346279891589135835265939740281758377391986167913887476630961048213065278570057320232355773394775162707945031113986018970385174794306893490246899904283790896638332292266862578673946026890803656738861139780873786391041123297695515624780673921947549425684047120731014678652533621887648927609401964438006252461496235654150281705803444592478250240057970316576759810580014202414290685431986002386495106407581314991868612081816059957070874573329889747849100564505908896566093217479454576842171645513170234183396303044594115133390311330614621657449328552663312653409247973057744318389602301188370310280178276878562239975297860370488625323609830365614687592903129960951991334821719037286154452451259433704792828999374126659796917396183081426759810126414022502660472078224944509732204869825321642174645098254179135154896799673989664587153021673001181328628794581269473170470301680547536774242879278903737919131909359056589913631370126480893167178187130441289769199997620812038357595834507132297285831955204479610884034093391000389892775900417521237735510870014320706092340157681832430036208177718476926611046938784234741575160249306166107801444949004439545589747077310632353110697893665094423677847474282076335719423157918177761078508261963722712576891033530880021583959609386600866429280628667931885626626906538175018966653210024757374818535478516466166783735868585590352390604365749103684847145502254866895498665298120599414536562805629842374495728152894240372095627556467090887266284978443317533634285135416426248285955518172360458548931037111281217912166420432194497938408472083226637421594335883283864566234667334760622969976159119716740131754353258097914983085507073068861769842888274596845353617982459658056640716076356372871060671465042582592221820559366425260036153416276015230704404536968919142604590631838891708822291272239105059807764889025980935605695462441596499517082230985214981200066667783376738637618275793264380851325041426165783599061479520720582552035850892463549179457741245822575150700707354469918316076320551531959248342205623400255033463789889738152139887036192991593918116321526390967636286484024104166182040658253944723932863946358540765442142454538126878451012249874013686349148585347703961008914682199022873337906641295458914211774153533965107449916971529911152048200597129904487216063567685280243887295020718423029547940653527062702257898416257760888783848786830697868330933043464228964249704227662735703753262071198257790622217288964710510180408158495360383693543067341869633220271067960676409240618196280302192805181685173899906935203795237470571320054250056770248182486919558205123012115402096459220500089039321181406724327317438449898996410569756316125884460413087090647015194701333065429161906300965352880605620972783859703368027792119558708313805267598232078641496704204563768994516180692543915698524284970108760793193461375284061175275126245960072606422824222120201146515816624175701031628388196148674149906631882604387784073680415569412003553853344629065397119891876607480078431106333786463775710142325955862769508265742470809231437826288407162908637809042457868723013944980602682454675219966495804189048448334402126927135040613076093472469449432064908599224479103519847763038227188185589548979894630040767825264333713140380084719192040475604647505801274558840681625267859553361049849969144422067228039683672192629588556543920355752831980092563664627847556409194918907083735645699777446386837395646866619622701271837211184163834258917106176634590365462310011845662305008008924128201365932304399305975931345013088847231404595269238088631015980001321846886740961957788343917507113371558200687730759694305133605224982993892708002119159274247514538581231793899080649182180680382234254802468552407733531851098723260791158314409645776923663059991162652001218570861561878031186540263444879317931205432014609590338306920598575700863206758399255969659008528726105827906719439528288795223436505130620282167237455314792635443774136172665139467615134940346462012102179435840639571728093328745008339657283273795259309920701022995750840178697651401326223287212334880135873297629062661852474714290860034751747356427197580119899872470983255019098527533655030517561275734499430783728467600865043730454221059637169447625716077494099502104131282156086488990586281741543952710401490891224003559527052303289439655499900596902829473729301748347821525396907882513802221168445557014867862955569127230745779894952246047583833858322124544074165128504226718694694823779261336318966030525911072594715100210138158357137870253827449802382365042516055836120215882486761712068105602348866901051247308286943268979849915512635319025021319930990732858350667113243335085069988034611661630271983227980287190025249123904268784398599826434673205323474162596075227978216060079179364468067732853337822682612834264492591614587062512439236315132300701942173674342325944370271525766405673376836982872755383118149892917546647140271823283273210567796704961264379966636821693268193914653630808377315590897198528707160116574021287378151226356556243833622965275547626997894877887725441048373774854667794120094508377969303312185423147000142485303527934618218123410255173632394940748975500148575900835375037575121819495128960132312410856584364383324742104284207153979789502095977381099998109476719136418962393773443343915529960004690815114552770658348315280756335753829445355495992999690105221703752743251104529535736687863840987392867907569598260040750736588094290218165653723124777893990026578693527121126943642867938910758238192146283863797728881369276107735308134262625400192148720661746485607220710503292951056079022789615663461820978544023511849145758963587207143103022858237709394268704193021774201125656578434426867666392071147965316915617715836902475798738821581503033846107267703092853606315558309380274997459771778873021892547278414962500871440497137063881434921857984941772929257323685515218125743069938480503599439223825799953795091827611865704794129058408156981006197014992238625407999265384931702521575419590048295153532356316078613404599226480389336166984679765843681049231334460665308671991432428805952439344105088189936189102183745615683496609051759333891724801729509811201926453446699749994467847791041932528107111978172926529180512480228015604016610489209476099184399812736014659492946615997588802980769703182841513332757500525194831932821668264282453578124400412149403025391901816877914174603757612865036407136560370554052554391044610518685205538486975920395621747976043985192013316599562006590873307164246282898728664496869188141802702854271401549230745344265884181720434036806272718372261999790300363229625908207527886278881292527778727652307246687064316511967678229674747743151524940631615847600623855095988993689355782542774555965932667128268673654792356042405700609242262944107795882923684455059030319297789204833507017121232446526358764320165338340810290138174002001632212470108843299538573289901960655116030245835169155028673137266822392681602704342777274473699081044294829486631316167715981604821224517803095842950902503023853092025903348294320756564343464246777652295882788447971225556217858305431983086322663835665154757324464961698526193945548801865837872994300148885085880559985187872031196389961437659937956410922944489647782236711075921694729225887945653194140969757558665916904469443776091027681448908429094498239984290805572936023487664972206623576231457706461055108150212227332665243656461117293018239326603888977309629401953776136189218005388074983576860611411515176986090433657231489400481888073798617233415017696510481394983028121887513168267369366769650910911191472844879808533496095755490619360992360796207169307416754551479457921141612752065580738628667891681243876725633909967549739944175208729420325788146629287364712196199765900560015062271654391538488358919110429793662209999085412782609255915396876168229588584274474633054933214866608152910953339449458930092239554309362389271451904398517102217265990714858733251903279457430514930647096705696652399053148797578090764905655721234741599723373878956240074702380900932733475630948538812049470000700747966331861970012283309118085569152664861395834686611198963702441736553156444633982657336804998012468986604719388068147024847060405479474041818919958011142836497489150686095014876478684082525038872236132719605922842418141021544856916325537343117120640507802640003352261685265893277858786657965941440284505307522241095514596994250680579096098775243095581121476705508447962388843024515414831484298535135382300646628741711407363051511312749204920176486180099900979312467152573518389460918690641403657307038828706173448792938137973002683550213020304439490574376883874164741628104040203722761484011206784100240106760749471228322477581301407014645492204648563210632853430354978960366752813629678101133930913527599743268856941222265195618315020917582399927965101673197383782343107777445826137746987942414794590308436683334997334955693171528794388547838087389302010522649699723574018716780613735598193161952320810875823594989379451263504924226718657578076654458459417511632315637314073905607534540363964346008312031363891933583506245963640555364330448262542724524512807559294854583980470451760312164722726493048324961671337097773383001820682968340016755121220845128609134653858751763338645460035722077735698078197733840817622259754355186436560091849967370249991668428541701543014127019249091350554191149496065341550739840196236004814495806869837866699123807555520378267286635574354948926278547675789052856563191585881895758977338290486661716472556686735800262898809346087654090763528984052900057835646984611446433014298144483242910034921154348272486891864068750650346477742466820227379393356489144564144097477988809519700314632044371247467569117150034233607849649563846506271253981643696623217619089084218658485733566765838523286416395650835318934812008333836771730017512482306181313795202783015132915350159427491371252783340641166839293603671049973823852879413474501166866255235132937230272131042721505601287434564584290659429466041666625949334881241382966676920048863405141635201064158716658142561734440493200038074691922634243626712146492467603643686863418529434283147976555000339115647379174351467149160702744904796031561096871173476744403524484855859195679228752581271776934546487589827056234176122093884811947392610167283468718825876788002107642973942167911646640109279807191307899218510844454284868784844267850668193710858021450954380657762350219644237216910790973033648895166440833649044464803367154553678811661492222486658604054589032800144193025101737367437221885400338939119053550866493520962278260486475144875801629233995547929236283355744867268001103622120574824483738472713715238796323969459156741411737714159389560556098064914363793936023981957911928526341261448056425952058622426218083394522202589856726431589945558899029353445938187334571896573838187094135368623939099253317794194922175467660075926085562586023907294049586914920321807873755204229834030689419345654171221386406639681162872674332321799778712901776951782771495108157692824668380925627213768475256286063764500477815401512763314595140659256285891716191329511006536041665241050662268274334876099952869590271286900590361202906109535499169617193165418747322352873054092695068913326547540851741099979912396874747848675900895374038565191583220184532598274557168721272815166527035944909930507013943214911030190370235243831252951172272183309543895843641594209795051860958965138741618122961585113788737806833931381464356299693028585058305776402695107049464791895300522980202984353083116831819613588030244708671229149165752423662649492584332324899951622101700990568642072767105187851995454385827798408431681993606747051495646276937084999562917236384040311315434557864478173665348938859888566583036943558444558504314448524952645851667570262888574939235910910815208441484067611693039803388853610356433302824856710668121001562304638392585666302986083771641812013176255393862173218408153573264349033080094475114440707273490715537557240844300701840834236662204246382589876721919221678662041220648107892859447080495784913827898158399388570029646158458934824127121258837263845128396498247903315415687185341235751747629349266540330130220526678801712062907052859781626179757250432223394832545563095862934855792577732268652369289454095383215732775140741260898011044504601042425409468732209088492131233197583514122899192928224577508224065025352411600667979687762791657821095850629058914064133936922001236530090664947073011352627343712954009812098635298815505863981283316869802181192310394331054553975452213214297981602316165332273272486896040782056757407471965054997687887498647920127209335862338218053123924666865084695070361184770964632613437649101760960356118268186032624878158391192715670210397046491280116572802047989515185582645621967719677758839000849121180717030159039892519630205092812043018434164688154914748040672962739690204991912912186036670189816735381516941316198577169896569911057788350004173479327909959457597520281870436786028766703753141396468389364903814455421366445225460326546770845498831117382206645848701216701208284750674894916685357197542212808178317300326698697349520531631638390126363390113947421613743602675571371215571842002044544585605069281822153862474077200668165685852917940824446837400876930888501307851261534297922339440304799540445328209124271568714271438291575612362928756692528396920518102918579976152107596630622047498020478824284603016486456844903737599389438836375982270259903117802796888672462348180688482949349071925987798767654671499364898777644030980174058094960823431405959349710400105590355138303784026721051814652252311292723379512972708717467808985252830546122048521571804964373452463406821967912242880775222150808344898309578629368266652888016539798814918817594260418790939293222659263153815326488487699372069490879450669774264179018249255765720598225226427609803156452964598756142917062842615650193733625692768161604556126736095585561697732880267582344544517299057755497779474218195616457500579686027887553853923880274588328632217028113178484414651782348935460892445686572707663347863241585407434060251705444557216426056692172307654244640597723427153438676539787135101550971507891517338979594983460199941307106230361606527825773687047873318517811480404832137156742380217578700935294656531689383354651246554296385353236870793054953486402078048621616298997182603801860735084181825494524403786582582575241864534133903089457522143927396936188320688301697806383399371243547557604674248190041657835575735875338041680773436435934968603687252161169838552211815967799388337007192216809660571579763676951309927042424728954679309746716481392266042134948026715610944464286927350361774121949902639994699947972199601233624123821983704421823278789162206251531348705504077783639724852844365183372067096919096322070201880783491982183979425486092900535551660289186062740111850776012118490447643639468061663928020265614472450091898774768347628199533532112680034163049709633814257888291036555389595965775479690490595804937402991346160443422213911408441659265179682456484964602007255263959978348343536395756015277777381201186131082370670669776457847150653937606201104935581215227526720491854472652480391655709875237784419019345091800035573150459661582382382468845404882736019185712739447767870730316357284636082034880077364322278150952443399842232894872659282272104460360638627401602797387871675334542114411496092374571694267956369710711940755946771937316592155988063513541445911444778996338178210364280537252709769740346980666409018235902639633532402555244772495384058729200102906197579836994625440967957004967143041951864394131541827965987415779331983819973427991306150464636964127652013816831683037324834480161673336321179654671221026347325941547860645704168094842022976386417471714251190906304865145574323712815803363144118796586988832698381477828636909922601843157069011059037535175601027706611151598257496457470833083808694182297851840422672414646125068220609894474313619780822885110599155038570376084765581439032409724956860068286275622271731423263952469946552771955112904966502659409935315681309872000012892408399349180664781045130503415647278900643441055598515964334212141369887758483667046781270461676899760697478036666519329620987866196167872574509582283547462669913543806259629319788620418710569592813205944344615639143438876018661927175315386502275895684783451439937163681433779182560957511090029887665642902464627715245901055045976926012981079845974817776395586781940724845620153188419546878216879367473144568669503035199519467400010282995107664259400314650113451864464127859774168992796329506653025961233559507941983486156220800633166678929906461743162003044313805313767598491164621260091958977113332319883245758203927869014837457086425222692738978703993566237238947837659970981325657644869551047048365217986431622208138634312081948942315268016618824395688351456724541271060683607842086722612025767772511444938043276822317364681957838419910436179000893632089544017811180591419254590481078003257146293074930056598470629980701931507857510476253399603143117253716542362193142837294409685005538159032698188477544258613448242491314275499459393825169733732373563540772090082079178852764032314594728454992894785250941840947517762010367971940822216235611963856915055015067726060120810834526823446557173405141376542939971899675914734065384848870993702717915196639300712786905090248001369404132809097262990277567888439222204423852069644166894897919378868422508277032708271395032644411987180904953204448412947409469307977517409393532632499997546295353699246841937914199291210101305481021400305551052425395935540696716197348109644702300181919761594980010987827401092409214696761259574961779266339240604285817543282011004958135119494118558114226045185175610155937011375714737351707938030426080384690285841793743754152712311042105415625775358911877428602553379999311957632044306452463054722739322800453411402176735499219404545139874049623285658805061538356622713807898005650179348468148453362459959884171287813215915013217975939019756745229212599131166200915383423281468659081117105493559744257408566311001594305644274615692887043243074915967027118029355605257067267951702880903270065806634527335105922563092211688271507468995203307193435358736438012643964239875886255088899619901110861338368211676428089206874684969118828824636208687255345791393833552704883382423773565062352047355997231997891616558143438634654462008613585544711841361074721080274793357264671942112793668550068853565075288113309751914292399491480462807769115924251041265312655720767563348664181657643223899256534647316789204548373458482727141635001923095989002483161587524230991874625830263471284650883971618604442709061402541038277657770534622318633109262293137519918721861419840602729802698332993451801954257482569285424420065472874496952643241646780116510416712025814255477953727267664670897610048373121688625565222243010345197770957107039119887570284410807997050957481366162766919299128249614452910160366698996033189535949134399114429285170884302257292257705754142341426162453691766534898324260275667408065146801291698020409139347557103886640235629344220823009340579202427362273915771007943822395366823728915944415277389303831115016529564833095988259738813596608437799833071757470351737492536071523339033806908217496537811412422803250241101984341742883146067170772982387887709464159766733057916226639048064491069127720226149100141079791473654136683785058935015994990341063652499921166782997091652648127830233140359746800016404307422456664427686434982577043630904709412468076977303193034575329086960871661849892130003934748020239883577359147031999154287666594227962371050522224448268448266159645445011590804681150729798779578444742357248582770043370789532339790302773384919589684750748213011239235669837337086871173238218920517857730498962451264512211708463726973131912251333823935738116579275505404556082314646488178274392981824276348156373505418360486468399346933828284544203987953579933971937129345962296724608266218754268316079277340081867758229077759870697383250128626992251567546928420580102067443502857562932543585428661586778276659058654022349797760418759836542670740215697682143340348752472663552485028463018763652275992510135252051165372018253376221627538358007871119248866686481566288157500955848677835363310296276908213186489056674643984369909016613289386358110906046237206896207967687815754582581828132220901436888686462055032667261989265212411391886804938342551322731646639625695636948477119972376522004462880807406627445431080554092632494594052896723888955986940575089597834112290715787004925420809009986855494575703245470771632178276831114073694030752141853540617680094827260622752644815114031989293252631825579043010769859940429124968797555466764045476003447420765650317041915980606293600092229328125740003421497086736809855183382400298930510057515712303276954377054819148856594925447306376824162455023221698454905318229507860970407904296686941392283550021852735805630840846489649458161852623834237416446430949094147070855966259548127624349588979070689434635422006717056752231582478549040899468002415272355053899708026902553506691712769977793326337788175165242164775992145762801630058101935625752546478863868479300321327550015974928454963076633065956533344417118705383249302847642992659722990682003435125916270266530842047763895438860488706268181982906640205167296724087689036536738633102790725136472381678921742783050271238429055217223510778896100849049386674229229630758920803684532723439295900431525729747228084110848140814397907486559209533835205752059513171112577918025277925613166228045514415278746236654232296094473153652900747314618534308546867328411194660460573475366793270022620566304578458582195133630458997036551576660252925733846227060115829549961094533454587310911415314527155428674021637024148804933595571351583432384021815854343308924610823463674917607359454793202458282691483670252784083095541527421689255255944361297589195275526508048217019622465313706330119510735871574067307988861968082168574332239607083675341952935722136186468303887566066422311190908465580632229539380896906026098012185310006176437082725566684018673616154746452864200175186020956165446183885912716616530640031054749918111601432988958722900338228119262628881571642796584643265007201903359332344845585783308022776128431040011064761647194979013400142529421022323639239672066147364322605685332142371445480497027854440960478506162040811592304534251977043995914884469998247201904642121923514349465025296052940412627493784290338270498865720117864660343430404334227479401979533785051534998973516634304098013504773909167457194496407813556657538522858005698834933208381476091861609895807151868290191674041706392030976028857257354826181720509728501533079909662051105633519519815914949026696266502142667998158403148134748575048893983770638656459440596561606241613082827451554283669838731743047103109539724611338688645582165895133336110671743026161223270995954848406605230573029742933209964263907964847792626160587439439871467320466191046323690520481072464911275069017019739112992719368738256335831849863499564227806846563988738121902252189778238081953706253626797017829865491031917843578110081403166298560389794771102444635631138475286678081765912570088103142581805552994780236365898483196824078216694771079709527060948547424803392099855083846316646362990518707256413158020393113031932912538290280492314597718950363456692493772092569353726784157434675424778492842219127174500638302367221724362031264939820334607544933983180678870223996075455961683451236085355398566824554737674042073624297380109516944147150448998637579655288650561667471789197184155465539280981191834206045616959393664641917071519635016550510995308667787881323405496895284763031352732585429477010994651826579306086933485828082983833110389162145288410144406996936087336630648164964680754455606460237342737436343763904767079984875491962394489307251475283793549672003931359589913982059533656361905429627027793875863987525398681766339498182414234873870691514741791300083599889735446180430982006820689948706926872396054505394010396256777911851315409011500876949582176994732202197566836360574531986912316332770475297897591391693260709900066633986667135923758651635977251770645437646564806215292757497833923830771084467387325374492951799959629880303497892991280453894997227515741078358635333340481142120680291168924975919556827513907737306987850650960338305166590831479270774090707398101585681972444787117453144003139112531938036517975650778875468007446085848030770900367014635761939403158044861269050167438736130748591473854121926764144052611315977754736674364515760715283554717229402489734641140027463514656265119908540184221736115893956687882755962245449827120779747564172148552623859380284933244370678120835817743776285161698152770869936754092946366619642941194428410271962970598285514146999897081429169848711573336383846047649888247110424569734625926570565311646291135942647747104919081926940657566577885170953418364319162174080767991710740629023020088538427585571325423673379601466680909065149284161351625599132255208984610585929930802532232665434477587318689276872033494517069088621145656888629506755988112656606726833994198829730352173368086873853821988440851876257020235555005775017435413351575561205853126872429980617015390997247406985974263525562650332417278603501438141408422115383444008893849429705354661018336090960803487594170507442121207748954122184611446151018511035898403276104690862178438552157481041873640144911146954952238870280923624424883755207735889120016071865452658645461223081924955243567788276959742287727159410001826985941758782200994096837988978715092919805444729346376604723614594259061198570026431001369016393598877080399521398451345416171612061654722778910994216169916036796038816852424751461788846968276024864171827462855107070612323725599463766911686815992989220872660033000937777245410982649906706695656508308933983355244723969715974725452990003385401904296626302627945965423735172924555294851241864450495828718020045738968987177001336714519346522744863913672750594087411531155258552265773488366245812080368993324902859195956045432011056553749793508736128646274527716134380887261523626093642928432804738435516852371063823297830834143082949177235074877835935400916997579631064774822405513657686194149964641642438006873886542691892463692900745688035388860257761137293732293871411726994439867121024512195270926622026053208157802258450263746756455496490001976641090505150205906042369850826772943911767666484243240684507013881338197300343615395953204556470010187844218983060879396590090172097771916261074279041740138811171504814380724086896872926695455482308709025099827364955724539398689180013367230514618605420770049912645986456564119408935353111959514020961423717900822271069684221792891961752428069009830592365730320697076462537207383712544546337611582343972121509269068784348521528488070744094020187038187984071587481474108813862511924780583426384771738375480442518890378859908359761349732052419556026812055738055514949481818513932939049327614532036736421067748303077406449977057301378736588441981023835473184452905530486439954416423819719817812626663399880851075430648307337854617612018806077552530635322279370485178724577032716809115151186301056461743675424486296565897363176066695486094303559398494673854837033535209109882888940856038130854690542063941062048482192198339870784332279182363292463510925678191491892346961073727482740610896979821977477562522987771049749640309950155395169719509808916161323892537191859946617209392395325722673126963062677943382421909520750719607831191247128885451695747484414415067581671208032297962813620043760401300610723943528945519388448513482441201651750263472740946619597715512405689994838622271140895692443311659645478867670089389213281753174329012448414681437179879416105035878236953146737108422419440067073173610633173200570604467541318511906587209163547565503589446729110602407508522624851843848775146364529326417970245018067061213621990654716286119080199942280943784178311484544213030466471594315166723090591622671340696638989906286311096531301549393789892134356961148739955984278737754138670240867484038682181999593110117857925993650523083616650976335521122525995795541261750671025916017104646267848954542775363469850007427033049237453426084450464759340297461615718017709934398232084925872171805444770319505875363010062749596162494726403921226031488555943087395228858382962406781217189143739416799281475623110387136463013834081087766606966447999813180155433529365408504477575568509326001712598802960466252863195401401006615057990601236597468403904273447388418154454021236892099274214903628644848879259224369782738373149202197548964668196262090043047669168660572348303648427715031714529468884066695588465133718112459288348514190464832046350006318883265467502045739126217074742113354168097030974994991273811549196888005119306609376983642778094170824022408948889867698289781049578721121062424639690832590814820179623687918177563649412702789219376009602865585183119873272114288368697089407533671616085773756435960041715030833588536485454502063196475094810598953568449719590194662178591604710340347172043567022722610265264774926730307760744277187460070832648657466746440209356615870582594286909889591808122608842383167787004768090783649996898775382190037407659571801472155777644948116902395589281266797561744474681745642250790965217688649174563543532802902533702116672985459621674440305331851949896484838789878723171533834028735586242439721101027786141117138329602753405315707416284383204547176135033298160673347340522950369199612643029164075210808679567144675865877222750647459023315691377355069593361227218151249559920289280998205122672169491068333706229190642716395001740957513250769742610649219811414871198072468766293305620740256489539820644690684922982388934007240531499332907509753472078045551668431235415608185852467085354188035078721152110143869994669347508778456099582088445589358658151861988273018960945401828061914140936536081978395262387433108575886223338253955114392572465185044106968412743048282621823386369013156552421080702596770352914115552954656779554535081484575017249018208299232163345382256153740997271747615588866600201011487376848281799416097060293475961830903937971845358157035409593037559776150485655850325203550637177190211286738736932315974941929640898388056088373263206629038572119330005514695377222558314969470267252042756830069652333342664581172626226004733467683425865493974002386925285751001224502323065227560544609245616397427682103524678369929816345520601523101948394112132563318510329419052962035269373201281983848945993403648930253842989210117596434897764039259227886214133042272178025442648518685645754178663181525138024597624100447057197407526462192004991672975243207895153610541568606249610200194701019489533679833613632188738695897485182994973889653851785145885409310612762467647965006594291186352876270596636546856941867924918287060017165607743619099443176928229386480543719330604032397184108368759132817097962941036280132997081315523338991173433868176246821627366957975356553713106372631370962608172476343819491795092608054800156156680483168627174444087888360475334478664044222466475759307000222567870553852785119345798412758537723957199558295813388820698165594555533051341410825413675552322194205475504922679687142136164032201873800603662423988668989170195711766863593781680679420952359374653539563153937886291973335300921873847734573791124279049973126424615736553001039209620529988736686064072768129023290179013806734556914524065267293645861699785768761614664730952499470948456709629189383988301775316202266208458975836517468704678061542137533306287068429875654092182743854164380490406453359360406582593096677722723689066688378753022923370582860343757876224940680453174564515627538223393074516850600363382523014764188794531224931104103349739454162788337487233429352895905912060002003696688258173318456434145191446446706285270449563002286435635585662864766109495477100977960322198671783230496737993221277565425841444296702616531712357202507628921477852477236418404076604948933963266474496818297202500700200962040647612996110881766035169654902022494715010572795364005775013262239499314158349642508898814609287890077335151392586959202037811178862848492341976012858029401830135428343820772493445152217258831560553717674381252718273848230364745830926159254782169687768001814638389078441325917362846271299947523187824470548355924540588575928622244986105568213215748434974777819165733477239675998916131237057265242943793665414791140184342042371576372193556059138549597670939193173698878724805081552581785126741390334101244338847600885122383606953340755266926122514392155309230920297373672387523161663335099889181815133560770354128089407110478750086573159517278622267604301055323255510048994111722110192034611314596267039169663039909202087281031205976868853738634546356300975350552787230972272191082977189347315807959490151397186603182782630590435324667165992039303482650816462727996068626617406606750231078312002102176691452614669033228736569976813298159326633373586804760558379236290646730927696308440085747530645466898085076724792810376318959812126333944972105905498442664582618436021366903883091475067614190081855469807230929889056244041339255739772481094727205910804267873946867192383153361875502407293853489438525505626660125274211994610976902637005304078014636997777529889741202181342385315532914725066481735867513655671433314597689690657320184114478305264258076040545197879481411457552928398139383507290565744733672466727181692099730109964330800520845456374802527200810766380943999676150169044269438389466992903205659557950625749122860399306640783528149229570550175654945560146019433928876051546096770335985876632339358955058768093313217601807144923298445472265925596103601083838532881213147182997977685105363511249927923491403448734846438763994876295331661964033756590644587036339971709952684196018899696913467226202958426686813617223992609155022956720069986872373124506790973849896252200821346671370423413281560663688792409608839229476553928961978550285317764250027047091632882751931979218330239495843896273065219581913141051524877572565451018545205852783810206450170483267514441174178064796668745722696626448264781094213844677483440926874797660539945560432621337131167555141116581614888156284227799761372446052779547512739279539735781811584588778603621112043484190319590854393985610513497279020449206041820307244311221629377362127224832420573857652353841885930533835806640525918072424054966294118867407450088997599472064962855428946906764746966035968573335090339952613198633020570260880601475306246668354827284397247488409231164694876307351588658502442432972082588807083797379118451989928701085696901755449302352164024633983857591965960659445125155987960176580555941646950463044731090586939364058303058927147271709023133793292804205723119786355217918221462196760421959124436860477717672772710563214060141508262497269424132305411660216775692618498444370582032288700068472810336709719496950796175584004076744904755801538825127595286982168078744118447303714217252705285998806448471212960968898788081782938484637184449077771324503643262697574084029218761975248117861763550929425318981649035493499967631514534293789001850267477553957793893834581833747995767536347181160421262328130961792522045931213437364204598136351046370557602228592032272045304383131844182828089484255476855482069302088074134994665899045421000420655037538175238406782895774859034681755712371554759610772279371781391551875704066974458737287153615463984093136351264737200591694184038799661519291035696134639229672799235558631194530988959829262800656467999808747396917572407102248095277100217101349647378644537411294183892927505717808983330679931302368822570882412309721785621294463837714043046291852288248495328719806391275466829114304493692837425762339469096462971944817753300541170062347521223058932726843420220762169587654360979412541936211765417728102770171338543777565794063973635680568903292678528446748488004142404983632981733306597439420131975309025730642426859654295483450994194109092413707495329632855910590610642950515771743280367949096110082746257114661096473689561131297687871404710671542254806925939330651838922064413720561687796533872983591317786282580175363046816545641521513497569669525359091312534293002585895256844016694488543540388267791519061251371375077707012114180397776868536581317740664763817082469597435038313269612820667256945512587346370515899484685318360197962275161158935228844333004766698270051988118415155417940911750019758848702054313045098487570996320174059290383259992763155357302400688893193501460830917222232924954409794817983109140946291436409864471811028710065182474134699227069570956255574249678722375782513275439682721643415469242227604328804664426958368609273960630029419936032874217198962890219314378307689906665283396431887980862489418066254171402939991713443807073805180725600605315271645728930852028073758244247544955094040988134259675589965748234696119721234750740274333404649697603191369769559285665570525973862398442612689883258254736096060961293384219885534826823584434709504977716183159365072800455273334941384859571028111708170215368527933966036159005378973413811719561230742816655717529751763310920267438276916439560764130542778150448733969545108514381829641879276156438980138418734400617239176556670332601265698776431890058019497653576319994145759562746474888612857686904667268938178546300945996786621348306541242557678227460065604638382076809572672063005153981184849967100795868686138641554319574414587777273493533799344855857226407943440926558182247602116028811096889525470870122714518618989620719641097759354439536178175216597712006793973183483241079504228998399987059480313491875186655254262648733005322421699420422483123680569452938304873305852222956613356901730714102970460476401928626576439629567170648523263507511666512263837792456436987086243424908027077427888180762583147049735466139292346280480412551234828204276862019558461139767977131969409109405360232040720687359487567470945266021418556566863932139811341470836156901909825027806583164441460284954230594519647092670227721309682029511428666422830695683321500379866367122417363980763720123566710457527170220367772800777518283049822709764574428044481762991110135334134728772280918304834406582676109834350026638924514925120957355896580043993677411213706138766033248010378254480405824812437428751234935731340581519528528351630939970506613116537182512464638424097167063573906747512724679147042570712593318522185177684309668006163361917441667223676070954604917620876869962191575599937908596082106487781811342981956936966974536493369230704020195439568581951060997580253533003508514191217230676096444209831937273470328400314101567204692868110630258864367786490434136515486816228371034376309231315761008196753322931795713680536962054694300550721796998446798295315911139083577646421481355894978484998987231748005386027438752174284377169937296943794735809332279533018259657676362972513390485248274671956225962818444600529139602743963522807984115513542682627704876598161492361300053584938055622735837997958058917116483344896930418855231472852736867990637405134935689587976098277491180211726316233349167268233036827743255061952944516422746715978698224533386507536991493294595532150428131261449296205885286779513231997087377637240298391178567109550144299588555363850316687869365817634664993338062405917312218480509246603208622514816907243720721567552543238047374545802824491264092585743414664337694477566396789245939362629510021475863547720796045751668218858641293398958473567935405274713847943667498555766900256029980055927003785707523838416141597887475210088875170591845432101081076420014939689799460487139816583429002558894385718094955833070537801918713415883031191086389701753333585709025161707604548422949020098595057055358573483294126300755987675839791107469167198505586594558400171300838159487687285241380444105940448521885023770826189393871306745087672527768372608964311387565662927837407640635573037080232794808644983216259351251775636048431141882318395012883779631391376444287980665301983930304880042033055612083890848554845284678390257462356192185202762030686862567092710119349395107985415443374559783090321126679305079872947757338832145800380710188961724701731207965605931851190266183785659090449063231723029047158544676638973653566114731635301301944709306834283399772232465144269971118719442679505983734403764353786578743199386341156901937754006863121835058648381149599705379473350883745182393778848678168057222724187555515776765995674150342423627734495119849641127699965827277892569253406262337536111139318766206508668718371399401638217885510002465843016225712786877523795871744232386521869227775389653089780982960081245182211884005345336148536614224066600046889427830184278303399684465111027935585011389406507748114703781543012997680358023411525778062169706914211324433670435755812168872221269405707608406973375071823449321420933852891196071815215994642955278031792303744691115256517247954413969082654233454086425856648757109891095995943834623579683840589639351939365701395211527110458845220826824760869694094239851142808056087372574540231784033838966093788906992982815737167916350747584431319704462912975266483370739705668093146048434080676189614533114562728879610896526812512614262649654535565778016787883776589707367881682616610067486485759978569144389653799986733379958564173982365368542816018417954651128136620044451038436880901694853854010608987707187404370371502700023436561576386774180484632729853872190982320131530888799472400024399764384059046393391061545051132323412534281894733923427993731079481411430202144324094490078069725727580627738821521194710719354603976585938397558492493460080544572644997484397002993192878235579967689301884212983384285542794785825052446923439736883090037724972300623598043734295125628750699418255634529528713630345332159631715912003261035483063635045373819874196406229950738029388834425983802460710064659152712062670894344683847209089066184672917160171365796592314907201125434897048016393790752365001664190083648716159203833524914525191853703396528083340428004867963613960679917880437883525914636573556781012961915542608289509590185278853487474498008066092107149852885796161987797011979027633258166170113162127909601179321502986197633751482039156711561748773693506913977372118239660351894747268897839531034569836568657716905627195018096096116352702256588373256379284712446181906028498077365062675759747407448000561945966055471446187397101780957619947928178230613247752023454906000314299249910182686531479784424856917155899424303925385240527399322501435387537344767881703289976058540653328941141624802754470012395576728705237357753408173307758336510294632877566234812053704820984042728709949612899003537344590486687197921537699486910748286854304252706790820631933035440711317734185676152409134206425928990968302580793095429879252722378545902924678584958094132795104003909864112471793121368620544739686656200449007764254233848303227994094614741662722638939805139794870287862156731068174380212534702419927097937122375758992397968058411315498669400384647539281494111331826103608998780167034150219860025682388596443266388355390361840089615885822056474237958613139082188920771437257621973684553594158225581158058348181560835778640178409541756506679401315281015992705703120205018141550853983408282559485488623283792825587156078375692451053439343979395938559635472656205890063690414014379712030316531605242026141230497757326343426445889753585375493289246435754380419809306720561300628872841771265887998566626352957137566203325249171525315149501187237231515629620606698668767923455631242310940391476959367581425917941250154389251165661651583121684559647731927237784055339926675190538790983390463395621084754695084133932125708736065143283445102315122827768461767530806293249242134741518415476417373898704420878140430404326249323820416001403145690791736103094272085922505201891097216007932835818473610414626099921673328671805644494268119038540405538235728474068184952933310557332186753813671269503290873445639859863047796399649011946598983954142035280566990039215752902693673531146627582915087766215843635260942052292621954117975860455581732014897346844486692857353770738348510638056173855177552422726626057762206494787249069813992039484166441635036192746598277021034785947970886799358463296642547608474136561949463054270386243456364146770662619763561498678020028044728503307025424776385606097765276755407730694906848738946625235433276075833055526520371092855324171491347969439054114934183441577098349047032633571192301255381290654991871109297613974292249836034034772906524360028772350274363668571954120861835029491701266019979305827563690707399993815642605928490061308007559946617954171127912363381395310123487109217960122346894532437534891556340130434731507220642192041042288220374847359851509903836605668659680074467005297763432824928976925749797335434561735055079947114464441886522185820078673261260226755884483229787834433926130031200782516425413505630262557962630943507239040895059213962882941975787245967463413925218645521390070076558923391142812173830620004763794669420187165196425654855993755711924737091388574274082673208639646254030879777139450317655279372923192663857792163779373047934137200502070510063133965327229973933266194169767700939688478539224441692731595938049683634251940189717705514345543729567189040912208486405276545756349600951817867012643133651683130248388655591570534855917576851818308081974545034328824780922458876914933524675287926573763504548059551467088668538317061995624040934946210216011190582470667049221689900800832045747073092325170406129476136325880108296567027939897946112645470747195646978495642446932042301188806713737714211289530709375928065234686490747431524266561479681310997226895843855500273046818102355285598429487494855149615590259923103190934943449318411554123099271310498538390484644777305347215887386581141211785566416100668056709764303801691003119567656484687855149406592377664421217254971508198118143421286599871960507926785067539856160003285424655394809241743010550732549994133612278245891837927916043725286770383529410112051643485243337620010804905908222540333062418527620084879304509431232016003455821165121543534975712673143596435853530487221277907278455929097687642301870081715302860322158333224358308470317762133957226198456610783774976205377050497832721311773616010807637883414905570924630782426814728964581570414984795120635212385942834931674811068845737547981678212349506870575685883060559000031520809230324446888583483153895464692875867918381051458358097738349590460681308681404625848210686050140931107950857549601587930283406123807333331188084900866307038667752326004725386117141621048066330208331218340693531426588637227513755017130156877130721834565487093220856302926954898964772177311557531201514244780989685633225227673642852916712395332640738227982599146937198924982309686067054270763963825148363084650187081662411025681580845773886744312682747047741605768349252446502107728149365491605671973258426332899035547345883823764578289660628092176256953838041920743606847398477203039713760350244033951157019523713277964410253287595977174605794202490995866516681985730193800032189012268038095671527279853082886241591787452429262132716274767607271607180148749608025883547996671280798169837994326147187501170378775335178883797848732506741567822749279408068776764330671068282640994121532496356855290208039919092254534700077323805780092759903447769466406211921895117635559417623555767361741255554513900513617801053179079362862097167514375478762046519491509678180642900972876684752301622987242377033768592365907800562916511449414820793369215019963580741043437436721342665705096387489120081629998891461402878228352951954694407292752505066512132100477195627563313535951852983738170164527279045692443487424859060144295909770964799563129732460540644329184789480211605710308253713978598720798770439646047053019983091568969346352162498720313915499405492307122572052813809701330265238146189946637418834200989958431657898424567539732612935365506131456118807705091766826755848486026134818243244589492914352109943551691071292797048073741039977507118685709640896535848755757955424264289044851135780965647836388512535625385778065682751404061384222401949647453909494212227577591955266100755146760708677949187597888877050999192334153164238762441279380978870856407899667500125732094152085803995016406055920806129451431277703533917815831184799503572999983874023717641133449619403897603469269683586057619999267648143977100472468220908199835896855056114573018404834037338285186069228030549153974708949579721145876781130109606086791452670935215486055159457292047443411647965983111434080072237635992135427643217017876676267339183309355295674398325154126733643696368037689946667990641709185480184715032958537939332527451825963762393468470157759072431659738280549308489117408176771035510904502055654704849024458650025754182868089878379711157476586428985410616982272329511659027755578976138931863609822534330246717118522142733548131226010869345709588084987419243489471020586394175227856025225346797156983266787843920245778800526421003916033480663849412207775442778736876949289648382335691174783576282636341096452231400231636765363084946865726315276589814888447765581423210378364953709229575835157718762165365374056027440427400070964242396267327901425567449892026976115102795211042628054966206741252173756900718548756935350843045595549629012034720343498356941452964050651768908733876487332959174132183603275607569154999215255575103988440487833567548017143806574088807090154148689489220075135414276672456125138277730103038336131723907858714898243746841415183672576656793880861220552745363057264666884078081659824116982294759342591704409645876935435718344623326830462725480162140948455281251832256625162692036849164480218157825127694819759677822000959258138543261351188400124878913632590014522176045386838740324131797612264798236056199475102688492886033545244209219079946380868581767097375047346904914726751531957073399256729987251309970497475518802400924874145278676523934884854576125511228032984723759627619633813988273479881791785170663511208093644326257508961414640026650563418079007685806151337808491859228779407005516433478579812166460140689622159913424808636627177682604728600908762369023361471809933806073469987977187661215486987193289343744159912676025505076559927271235972998859148752629946617145800697526630123891497807666524014937911223555336674127624222122193152393987762395362350485060872722504118695565620070922503964660179136011466509163803090904580049877344602545635312372671722819025074129731525497155643872463440408245441077415875171219237294671186595325225403961668578135479941369458395796734258332340938821538097874668501006525112105946358782719356989700266309107962463837685749077906295889620394008181318982486638633204424426574112854369675318669811763120919594599882524535751548284989454519446709411556748420380866517947361119191666774560115655288505179235190503095132117316535428622182767398439889659946463931908115978562756574380267860015533287239491255501022517214352413467459272806958740141133628074150998010684518528189957217933902346548899832153042053277749619239575947876681887398512698650081397602288575600379819826489309024194802609286389955626550344887236655175226769971853987579524589669804214576237153525379101464633237411414353012664025346855656590710122602681375142135923541197238656414632246929776537291566359927797434102671676900516039572980016588243193493014175914507685872819390212911370682172739597886920325486130556487174796505521913752380510082563277228062306771243822522248478117829713839015720880296656345415704241684868910187646023486844568257782692313520559447163609521940002750794155612880947097797189724071114634189249757835390024340972243138737150465009284673227382381776193597985417785333911370588274896379729623779599811678780588943594611952365772348226145761634758646725790793548795226322503664635293748664286980080375538560909803905802735003762930838352351045455938282567369800732461336092803190674583480170253724389156682086315220008327684547221066494742695553412211272076082677060415369900941771072965693662554574305477940727312457515059998638539461261959376976045883721347354821269981404995918157549338099945634200544309512810232295467630931120533299439972885335588074674423512273793184255996048751148469992623121985789449734745721962485837486900839153435698392114074383408910760382930692200591590157328336138030660284074932591900942675309281203978449358730786768671474090141852724246018901547394528163528391429430564230936819092628250345763595175513488079274103063866795934955278835591690057586528820946127985874475490823434003155299539978219866727847263378550691350682989200937101631055730606418358660946050742048363347972541478467703468538847587994016252642260953678737262429312629228930869186144942590898940187397952844406797577881658228030871262450859520727264348523788562505835611110708339584829949853848867448559096181829325097822997305683156161002833999816397253173969503775456690473466118799806579524175887587220823615692094090201021618690950561976502115906553951340393402443133847541854026319823452919497857113898370288409629856968527743486257010464684554436955965237225325730930431046128945304948724292009075028104019631767157464295995660713126237493269872868661921891852330836020679872813042045067582263895790136933648123745546274338016862530903433229200127432368560972398568286721451136612436986626381909033068414290918638744857453705603432901664245900275491590890419376082194817125873272078318588912078708254558134105894757109379628498604966246519102967429664693916518099755805142613652606406175965929835987535076058596473148888679716948836608536819634114270149648320236735554918662708690392163131831680365736702804767704918221497036733785829750771468462601454502982994842427029512440871195021500350227423164772442486942507399551561831362713733204465375776934614890463108675959736757473561753224760616716170845934693175863581461171460394996386787726236730917252400094952167115027927966604330266242243025624513900263054467796158473950067628158922370131674011241621807819267462313351109180514617506761205737862713400695152265980118550209830129919776538507703276188445315717920079953144400880402666732441530790063317727427796184256838423481090199540285296216319089050537794885412335471589356851109634248193922107439078530651167824867353001094309850509035505142774463571443511673139377327186537492199811883789505857710288119877832206710823672706592006609923488459285514018468357637134411210267940252365966005172611605085136255085240684947781367140645932115203050181663902411581023112538358320736192409982254985703897521515016412876378376732114880066523730965839583132100774808631424627263602900185782058458024902496781575108753890971312377497990382459360177664313792952515130662883582966791011119566772426969422209087327263489672136302416566712187411078212053475713304133234973278484000710465552118460939782721802268539674067564958782635902447728258447184338537286417617624479260343554974439209821285936615138672616361044892061795741411646127804265820665884520506358324366874699856863090319888630571083499917133954021313075306944618009739740170955923061820644170539932182535724834760785854678106645139795752340286507472961081787492242375194584498714300964219308350703613118628700093414467859085739410529696151747458647639766246912460843212745819788763980300399556584770880420715683261804209760276667027478719211961407291534463593301285523096268660666398484946322546626467885714190864762438639100176014691393405948538701683314730688035296041030547823313591508313409166482820494512575955626525151627005970987826715949595404546623584442238795615077776360236032152144023183117338938161147044060802670213150032470682555896389385912040239282832896791782448841742159299298261098889954558976425776187065646893812435280737782967356761968305262236092850537041625714283201904765231423058899977438689575439993617128025679878975740670370868370116706636676239485245448806083298913032908227224060265813107501610488728785648841026310996047807567712245971073653672031887793770903144112675012945082394863634240006657238850014302105786001784142360672061801786437556137770225280741382602771130834838266597361556307945248130487384393658108775899197714578793485676985876928968699183732584849856417815314375011212982147621178057282954884479132049545022799507937730277825130438902082628804400917921944371261037892169915104481999753839415743865110760124099670474863909951991625778312673305648587750023858585506027013197864441323351463247693016743638036251965537438718394990292664397059215830423356335902087056611315948285354481911957708723342614559502350624744260989086684461777711606926568183519923180731663286267503790789941390621245739030785517057702396270416981531467961674375938812498679491726780584360289704956281507202778505592831685522983533581347339044168607513928569471661456631394679847156683842357241498693368221768044414006840850340979350433234299772186951228437250454595211129097400276189030654473728165745938070166529607634586007891839959355360577148446126219874324781664397195754028954370853740023853431722800571142715258843216432433875531175743097351099628011913207097700138030349788751819076956150033123653809141481950160948415090404246827266093734552245117062632715088063563109285696200016203341604212615097953294399179334620111146714683657344850780747987371074864921400638992791215888787670747702708203883680588289345146770968577094647381216769232355115258215178460318349674623271455337298511405444870184113053468906487529026947851066768581924557016941452041354243280829276031301634876843825262815863488313516163065440837835487119200733302815535729241280897946780248055302565431171618913042798914723330944504800106521630629928447944659850438587157492433606165190096632301318508469559678524702761287443716235110285540344629758427412210107059384596883376738484192010358398011913388279031363193115794013407155006241250191098618547713509928618182983523998942628737981617338684232639089023597612227761229542201905347898701809442119687103635341225788117535660495221258164204186834143799597856657025975461238847008302238396356781152573716634794639206028680205075220709209037107293333218437539963065192199395097693930175672535920424803185367175072532762866957681904401813648407923969351402069623533417471026096558189263672614758858851381783010252970220186828289913114457784809403817406528164086137971061534307464161273604926620689673662764194697979653487421966513359852057910651301795919879033751763875627642775087237582625019379004259229540091667142214856794262809450426712274797179194066617633256833664951175510407774028656332986498617960099949740807397924514270041255737093267419833207408221959209762001158544637134609537466137781172039155167872268924762670130594739532566031883290719697054232277940942836357668729007163355999919455217553398368211085701214884482386976588887948265972202944793563605492000224923696510935217053739680950535749217465624225684942768282054112016163567080776443823503883600640853282559421533473184835811693724692066487849723921474784811324699153197082731217936804169098863567863194182415178357498040761318445247449363385962510631398049591937771058671199470831949658077493520382810463080181077601678330063404101639597185276174012005808457918643187337932704570104189260916385299066943313609424474458337562190655821083456243278853521664673493880544858517780014870306696526268512141567199637847080953639560304638237344138735627055252279151863753951533781592122210972285027169903971794906576884731512868403922545115798046347853880192964366348345795241369011623093038957509060380413803526710263818385403727225937433262339103286473531778608156089194113553244672405073517141506659252707762110840895641076796643733212488797641924837133057583710459547818799827156059485974845762444887854673846327493193339896712322202927197265189243143371182044508349335983573441445044719454797447582821636585986991206929071970942936452722667292816093805615932252906653925649236271930720825053279992407473995284444170279903105088532228173998924309429503983333022482760238997820065029259567079904809660265188861507105036455669822336837552697560663565582568456045828403728559419726300894643049102574280277474091138018295828045371442391343925940452005638735867460915184738755548602266695160890144468499874460190621624501935801767510746904405614720291079118793201039402820097111609808677967854229488818701095058912789558658819347769996647239578719922881185567004157682333754530755482048167511713278263780286213699576894932949511142790436960099256204369389662223697230906101326273673300515005124073945053891148067570009755212579043188330053133981521817524948659797655061997899856386614089457792683133404327003043534485108336084773652862666370440773461434217986386477171655925578625527602362078424967131943204832276632093848306082733856134213321219874793373230194027095788675251500551004707064971350274172952560213010514144181171164191169671851783195089979576190596471609918353665703972530944753090421049592003846841869241587366898159004413020616877622143411968269808899133033838048545340412922052487030653290088906341008608357462652253582534581636319493491445401005881402518597260470833095390542756283056285401685881433572138277955790984743003428877792644440554941307428680936862755970823272221904461783958771953195942476960013118056057352987834274832159196150795745809729186986544141389665923367285386058009893260954524333379492266465081987127292948096299226245490397802432458344448907859771069727666184235164471806142291281376567127026555070970866933097796437442856366610708232651379736712594490196668068091698672058807839211665817063383977360368562155398713896071261438611377072278581955018520589260994830697648421891190209263983595008417755988880179981958879740548979964863757044234996936669550746298211771224552721375763128109517715421641696673354142693969940634395636619267221221113769473231462589163822997536843412903735429448309456555069680693585197271262890203261069472247916975109377841301009954932098582587670528085493436624903372750298177399596911649851893798390424100167374275231309551258263608062318902284140535687523808779954191054950876854456674074439852611613941552497511875805939555528242127304583651992897439041694875855930009519090096378085257206987649528667331569236485606937325169915446904078544613723676531237791158719959345977326704422903102492235265794567365942052640445476284412884802798893139112250102068193959625221445689475125680838833358792685111513019056349670758842384245792469244649661911794021138184009046312740272672000918045366986081581372584452711019276604202359214749415850243729931916036977705540353625963535092891510900136560667790121438112278054342434564699765432472266026616788252978806503893537612760800971359521356474934568883257840694615479869117954789169827572429959387020511602949064310650376544456153560614759026501263161671767586755854164058312389197513822013156033084815552392346463544710585343145161606757146624735445818158959018148994310415012984325568167901642106991237257727164429458682423928375662777820455791823207297310602407526524773414045976690712280111372548560586903631509872444048078647470605538592246059340289845386953833365439865594925740068127936497555513936123972611279897771475714145669857014238093561161280279256009032474368797890519579419049030532136712578859491611389937262608497237794323585633759163416187184446316120217919817478125298861488469607495059412652760729180682052549748323678937645139289189126485068875882369975679632883128954400467777759900839747830802662001942831533261451658433178532893599720503069950541545319921545783937227564363113296317317761620682649493205035773984793146138027948496803500146842338808465658751203667198582817403830355330905691138906614041025759024367555668128970472987458874790400816484095213054691986682853420034840547442571737140797631517393039186853011236945962644597787115555324037193042430838699872178528387371626516113694324191553189422931482771059430202840879454101268401921685613386536777263872504434516132880030569396478930233409312829423423760685316786415344113720932408213149747612432101946363987846069761645288753101468506968087032733029653231544386171385219974735042857849279308598315087813409857477681987406012008317765639658908793610163602269001466920622651758332037375564631998930410821137191266655088810443978642280911715702145479912641774948337129729812683524900016020570678285943883775163083925502923400080149923845526564515353358325956113274531044145064661445207531842856601542989952437807459782387532670684148029637921715528119397947675021503636941466578886513795480089206820212781208790897215661935878711296752404875001307432506576554372298224521832806162164376627398047667850443998681491408396903209514871034971498413656068047090008182040983141597246804142834074851244331718667397025921482413011864880844118673816758577525537308018074101346139894024952724749446513004012369047331401721101147178282073903612785906098260131590534329738462871166385294626983772948272310086494673441015889076278231316311648468118154352134218727304280598487612870679649977915239674279439946436574131975534574263278863464981426777651628341272378759597259711723072136048641518609265814161336741731009461545138289905497640426191676137352057759627182045277161951825462247658522592773000807702019680373977043015438225134304454502066297937596505457661260548028945618200552551796056644506316146109899328224871435938441989616946048749539946695197307704106812995153533412748273515856394146613464684708598369167801011437614702963159707470190279296292144718191471617591988502675776198613884176268826749348348625296799831537998286507246196209994563795157920661849422961510693702279018609997041176605126393068315946226129927255807190896828059739979275763374009505205910288421299474104863587371503471893012996200242160357610036491005222537996710609230475134625716158089422299959221437012206959544235096668319342398282262498614146049827104757207085557464176992131542011207055050647037133755464797551067929266692119042750278988973810277464574376925310977417771705413023449170321297575664965253738395253294512722991738676610774362603912366754161441103389257887998364893052282290360225597182974821906722632022202822121327376031523362833602854238695210109413895228373019417174554165886061579335494789124176399469254959021536470082321040374324958590787201437495421459029715732164857807567693695354734283772038669477738186318756215972236300427609642427139005317862628639445423080320748359158969722431146431460606421210642275098691997526019254878286757814683663097686206702405127230937199513734502907779186699028671838907677338540983299015708988696694323035772911952986232258796804846056758193818851997785606014172132893301642296474070253229393965487710973962267445798739116803321604635687804069192622536897127767486907604523378903018563292526982421935783348557581482280971847413501179038810750044905857009225699062547714194640372048798903117240298063756297120513823438958851196557645246602650005427880594789549623653501062951206330128679259949999505137573056062234599989066648257203923119134901838079670048536545543502033665843479067942717234224793244443080230382660251302812556818118450454965772845190618764410285288950199981640634289570511262530662270750643704639918191890921432085655681830164943126921979549167826842074100371508104648758654455254981557591674663734997993845755296078192380017855525777270481910217274537494318969392011266325988873593100863359867228094814055782222901221556281100764933680151390906349515441263186933097629070991589506580668867247793942963385598292535440395692538940316915688530571497368952449311661503095220957772807888698734487963566525911347071755652992597576817334483290351324271986935647106593654492002008001193298582856638667136793491261613807173035204072144708219629739082510875122636784823482419721389897494622096143877026491441059294557506951253939885764857796849738258217492455592564007807222662442007268976201515554185864479530163129192513933662572070680135717940664036642016510724560892889116073753811665284861629850707452666385892534985251990815272146899188996298294909720492436784264320734308164662797006618023939763637100747632498570473620113346686804869403663224248134789762148011687265504136682075708671000038272541698497312580987890038925189779685546668676351248838416811831550305422276645155844680725768241215252898416291540319342536694976402406810443817504104444778322887069284984243745824636494107669155308043774881752440659162473078764231741331991201401956869715051834019562018205022819342985874242772060749731220860528663493516675379783325202825340803715370405166284118910335612191109388873214795992917869212006303406772892604841358072392376257143309732032627535927710397703913511253965287074687676781584758277475198980752184327092501246186939908290981433060563519996349677402943033616607284914588352352222693838943084641282124127668075675196666781830415884290623158702645430218465471599342697407818630790984845277092688883330538859432134245391175213280141379925601512420257857303505266720645786641778450318704736824640746684371839351915466412581576474849302571041068801493610520594344704555763877426377712332414481256476468796579376972683299193468779457652731123014128566986767883978516221690700570048728482958107354128053122582574188035036461487929922388867872954816672058834113457918529879494249536672752178567273255913381971932788850954394870683828489285075897843478045250994892181293922870282408086077602692337780816371951999021256246744137078909368740483005898156404275436235457857061518432315168310064676928499856088687527695834804834999024648142817943063562203550823612860665698724745671572637075356313754158810732576297675363546674798080304972799472289646660793812303667687708145282149527669517150818187097753940560329694853364820216960605347506345704871773495927274251646603693703838330614601134452064690415899505563898087843402098536128168438652199110739789074668157535384559869799134027838943141883339158771847614521185637817266551461650565393047171537550677480846303060584665079699918277322028423973501232343619193876310400079009905969794266361988600522905183732667488286294913241436291873112747765319373869785063246720155773690615778550620876782054927767295868084754924356397365765525852546169287682272577490636743096879664111553422621344729056362606785114322603585072632532259656093280609929624437098152915201962334146305985056029990683872152748236887820717968540630282940055179556922656016909948823399523736680204711837784684781098193416914947185273079586029361039067721517136957376838193952535909033187246733257009030986036640560867449589804625132805104544597817996790518478083439888957338660877405283168870614612534547695235801669429485321116935770784967325258969615775817780644617342307993101726244083613042324494235287862959750690001568866933781063134242523700532151820680672114070405231186146400628832252968342992536624029893916526915031217342385716659968305641285513489981239796615248481437359976435689453273128145009651270107017759196104174447340802307657870587716417892303003734487718458703891489327760442077512991621188328115897179963626416880118559817955652793934853953171675383888360160833571102985886904148272652295982052940697591153087057387493352693399971204598582037001575555988008849847512300700755021564164219118711839404690928715309985225925611595066509542090322532296959749282300736230435748516576181529042959729599838538225273807287720060887472143881672793897314848410818125014651728343863292745113020021850095133063942379914200284418851585505106500603038110683352370728861104904802651328780876565899260713488295347969761419796526375284019441363366786135742139571926734424953602096774742538231745560670172832301670731476931578093183977166496530275821257085697412390675864141534029581430664238364067687554554652146566839220938591400111846651143590071439686224795600678888192952202457698767201762813606960337455672601092433863258149775193124547662519312704961377311563619754104620274402767479568062283698603292721177438853945549001934542215438230987667582209031127515035447039951826290312073059258721082296342592064598598194327170406356522138316954767606296512739866368233756513546625383373197844936149048917127563239276991727413179377997927285461792448106338482155001893451789646656097719113908903020652954941178568219395688662476566254307193328451417657065201196442825567118812839375714737980744941647505906653263989779492672194184559439133764799208876203083969138114926044125246698619611685881521302649869554949012946217592518460510746640392425984853990415696647300690621419808063884674630832446884754839459819936461687453968932783640699291611979517177346756953013494229706960223451200297821509987574164723997009247620398077004495694749057238139403650730387946709623496561477103786751169980427201736721815876122777723437891648972496579968347927080302277412626077625092249225044231197338603176492845283321839849241874961965953652855171853272370641946094426714205418881328976974359531193882526213755213636222065550241764062771548985009017760388427468097698610769444624257989717013440102661735849339133655519438724222702609021207182213192688861255314242026366701452313365714004233060147448886858350449407565005532953715114803534606406977350844428049149338294537737518669592717235664558775353767826225236602242232598326093337310460532924314821543263058768317265852150046614243551545661581828119742729004709572816783651629319214748594332715727007109474853109251432795383167434954380390223973110113654755037877721695435718059621366115520001553411442420179172278001852570415668189829754292867156251415612784983277669788086781096238818044564618091035624736899962674576595305993477454651722174596966892167630393895464380633301443186122746357251018586412011883695207610728618322133964836770435273579425073319820881882802638481000576240785089976966312293061921154237726919818771962256679360926497531254416348266565440249756197460737289750801217626737996767447044200841150563385608942313702108053122837729931333957147842597664821640823090525829500237283131895750261670006740556187270561948118082262608405150467164668955960768518170617925515797099589394409080707992203181639985217653846842523241480629961097748510599325635956246060306821171461601353936866515727515592996202498186272596143859209920708310121373529339432573833986697649846796473338558868876941199886782881218948264144478249451289617013624802129634842058834547758534004497152215467474648956232140030511250126333628728153136494141712447044503039805817675370966474425601930670608082251186164189155859654831233808353673765312193117749032833493638767113867094270016162940242270838158603735374124057356479269601032012737125783161733635348823020869122294317281263866140901164901712415595573515170601076274171040203838475632090952343258254816518107888688560753577762228844098016762719866936045227641544024201143413803314337478888475084300991332703664629783566779200907837450250270729441490069896680194357707161408373080666602510149293703021146692743733382970528927075539474022695011504192029077976716122316943349339692226413969297718068773988038098207517756621256620783959704904757908298225092151995093839962169835461783146426409996145716184706129947803829749952845158326769565655590997737765638917903490651753147594789544537297711703798170139193643354333802466089541922705965236903855105458005352983866021757501564085025406264435713207665412330400633090942527082355483284328134991836673873416859056658808109493006671298321768007112387764410168346007819835090742989753803904029317993186055371244664211983569053204354811588600489696496839695027991000867312160861509912231226141561594317696821812252377271906010848058299456211262970749432144587001109147605010764451707096632551315888449416257287794242145580529752205656023531978861777460738697197522041524510999256328100321043771288642387215817630041272193097946825210141418664564164154107374689077689482702402774078338150549501845902391863479472797771748002725150422179111292519674018645973313023918316786416208599621909755700091473654760034817608889372531231309537211395820141154398064900552311765707698526436035131874424036100134248964561431382635876117549282417322804278543329982706719799310572933865302624741559666496874453382909856616799061865882105293605046518586136478653749853951439048104899802916273460317373598743024207183435054621295485261670210554645105707918871825051740550135906287728313537954860213708591943513006857095574045333735184345232569834577811843201858015530658687548595619854473037054646041046915135551961018513696856454370166185924282087536784726408986530285842510918335722093865708831156688035170871614333151970772653865558592328285356568842177843804424887830015294413693369957326737365082997694105067588334695890770883147819161655379909237479094845473787528886834212972936852505234898936036639390557117919829642338583471494001395272959990438451604164719176239285824469207068084385700759974803224407957983920470579026578577091143470236265078901750198803414555465834054376791217740043961984590850261313976069573303916775644531739242793601765447900598306257663451290600571362321287750522594760349367432957102797639485089674467665862763226706575696592317069212400724528794974926375016261162115666464637861708225805966731180983290405717329427205289269044724361686351721527344986613490966954671020737394446394016722964308704219664745432841708717509163773618264981790160834948243812359122538799326400240859083537160904181212558820672636359470811772923884373239963759923742487394593624381608388804568949238739877748794689774330338090915052423311285293558052972339855747870950150868612484160299740326258554426134942260816659536974265849668047654055913998816043012616672768354779414848092711371712017563467826616227704167829865955051783420557020977714391394283674953945685941004769711667582735131092521153602429776511615496814151636526986020624703648924054793423381084777753041035568484746040074833968272539476275436247511824105611229644977512188362933769676219714061570440355175834116270417616937255056633999591062623919546178853306856305988835170897172780425774800112689977206386060978763278060267730909833128048265054217676103603105673828604287864993752592760938496273048768129979924427130940669907714216584007931392902825910369395023979854472244561950150188823873264553290519342651902980850745067152155963862977214674195280895549843777052481644261995049051525302469632724406437953691843831657967972282837458477745760034784713839160792919249514771327697406349632962636331933762982244859174214901978652158633114356691840111056415988877336497917207013304107193553205859725534518249574127196523831750488958832793494273657774318761364225584471451306040959996244759029114839158930336698179641244175155259166424420594689769246473751859059363998538597123980636515936815407318800502328550035084677719855974634466030694527577899238736007033583956481841346135246556024340192895072221930746082651995068747115304252360308148808971647849279895563759524526574524787282236943138776698635601024695711563320613273163210102252807514294492277320929136699946762380285760571914833171332058890383937699395352961009076703237171361482371829028966603746804907632971870965305548895387745190954228291630058621566672894622168524303063265783891353065086287686435406671945925060078213761234291483498704684664097494231928073323528506682598926317628304735481793988445340845369923093972139265096580941681526748842040843437234169999552730720738747295999214716951982363414921746715168721710537946353716853383066272894415142081462875272381990822571121968070373085074787670874527736200447704162265164485809765581111608874067702266891113713410832787103479443477970862530810342559308803172656819473031129449301744665079542767072994311333848293167567832005930612436168515707316013242932324276461051049349253158836157321618853230837850567853490317939856062662933818338212310083330416697897513383727324079031295465568115781739231561746091999381563486034118166356327770025728390164841039955943305713009333895999701081460791272568510063263488189143633235460912152347772295900878541176869872808460913923899897258966825240613108173061850544738186726129711423826879088279232356911460928765330387679668685755037267642650197707477887701737286112418190842952506146500616668125476328859010658534361439834192653577683566471100246939192762371213433585399952598581703335015568545613669286427927075022055710250906025906348306039449889705085465507578078197328568745276912706323713659282426273743692059011466461999587994533087864608858119031591409174261061723185761510062509592881117087170365270403071825845027519572371184093693852201206342946098015160889999487942028367428052928535273341691662468912672602387727859027261971745880540768970203298555584365537557770946064218636749671226767440942418359826735620757303687888095160409369577091557182422956666709397454354521071749614371135481194057489859284429849719063089621289851789125190332251867551278487988378985669523789372046917968939589676295905875124742602731193081587075925012166679099890268235503951334630505107341553748662003784332087986313574394364243567743988713627996744452698404786265161622932396627044688124322746786236197914322540706628750480876032093226341438220922021784252190836801330158104366489762230522261106686464311337342341189983258554299332049517629270182546197137383453343873228426875809574981551636968950988249395430287061314382119229952674634940933670137182625459432607095223364682196598939826773145799900207842370683624433903475543112194962020156047627899601284220280719965873871269209014955512217050862042481551960462355151187439543539846202901425416649816833080269561820986429665767728755935781342512653132862705273236809505011017741742248696513535233371467605612456262997843389622205899728804731445633769457736022303619744562844699014865904739403489263625409774738803195998227968037260133603464277547961300050222826957630537293207353136698311823262076794207970723667073698187500065605770329890070747273172234345464480173641200388833459150007542171471361435312600220237143551922490090167671861334780557799672189667655853090615702337611856187823063734623752885033906288923815270677284576469065721437228729822503443709720465985828916513633291486448794981790971231338875668640987769085630001225952948721462727348219583609994418840274670848792583399193137346187891629432396053852418162229670336055931222577141065998130096689602521436554421467203407217804650527638669449094827121140007285646399377712361160951429071395638816277662465707778079627847984553156637178707197622333501777421267004789640150288152350851626843007627851737115692985318186781793769355011996536546026318988371349041425393181266348538535423581168950190256572036031361868866677407582055903511146397891486026342623921341633168556364767262506449479627506828354059323554396531417605978518224321516879814998496386559418869567745101233304091178699404421864721427513584940423142871794914494595994728003253991141239252483711216834819827658548607380567472507440335440302254522721628492163564297996093535289452401994472769426121636115691735790252291447068905118407601854941390760419775662966321068840691313911627486736302005185519526555707215913371574316425298177827658032591179488077701696834167176866455158634252859820479599529956624785241294492756110028098605983812640908238023610194478114717979159216097871955816240182142933571925647898670760138036653644863012175255270321246707242331284319432885617950816395280207725939531086821594512638906782804470394543741804588815201537341485278114789326911825418143637461760039385776784889194865020877228385767006828503615866461496757895233197323461050550520638606731273571756593001361972840739085684131696619015025330092813507456234462106136028022497622368602464942027194923562845512031856901161441602665894683030978043118623765222257053804980601598304090660817520718629499281877849064076248545747258565182001530774563656401927444213290232016289244394538474077353059776172728554231932394852831767229805467118829859949558236995751416206898581452438912282863776957227642458625000229815816803169465700134641629819143612069752886948354550562984761375085277435487025553364596742574662504547143946058821967912049637931043550117886234576412691568624491428168795315522635312680211182862063073726864582796254712190658532529468009709873482716094586893728073249840299876816581785955432608212245126174300647948097863305273760083860882387605315003043831818046382683212603417585039749705995643115838812097139338242940066387588600128145001211136825583421081509627877138749796747715208659068745018860314037218310566452719072734564540215498071370956476426009641550593583152004008480446057442097582167616354340472565970488207802322407575517536475717136273571226191523450639901279215001381719396632357900840470809667917789631418531320480302584683588617743728015307416645120005188475811997529435555585160421959511346408415007558514290708409425251962690193718401767168103485488086206643020738742634595041507667426333600819615034966510610025699257275276284642345746912559672494529574792300617903564847707425810753021410709401866785956958595262275027266063991193801656445833698616216088820723435806241454828123065319389181423601563731254925610310984455444240095271992026345012455569150507055938214549352226887521865266447847002973111572300970400990784186299446353221510943908590055971734340063596499534005496555494664104880035755764910186288594539815252756023703919805608913749978874261374198444499107042107684604342549808658853193783474568454185313131068734740047145826591294052586553655455357741668591582121817120377916269720490009503730776526084069548081774796221746717802846306721231947326262311523816864023220824810390508780341177400448409105301435724726893293356123728636149674837788080844352406965023224702052220477407855972787383991815954141373573158951619543459058992120284274088615120540158412313686581753942893422106711840061568481873209223208134225687256566117130672283235004442326047675701275842242907077229972720570940167048000961463563817206916479952368842050201858717040506204412408192671376411541129403968008284154127269035079870981612747429811784309999712811152463019436794258119295307505729033251969542072671165336569186281109879658187588551043315806432011686615378344572567436364088888296651213682453233361527909315712453690607050888721153553556060562041395607597869224146057577143709071708565118925564735999379788766058720376871952382145808204437880687345022830656775520208755579836628034845883448352796260979670352313998092232126755031648341525194675613536563345787854213023596706948574592851026137609425378505733671791349603150731072445531889178169897055018314458148703346286525547965942064472615657261533785264019215502973466242799460742521905242955006528528701813746606751777765823221390669732084720255461121636033211552933751561088680660931119231112230824229166475330263566660891192905001365969135777558831068564441216578133334898658953353512865483787374145181841875077049571566098552165214314503936556887992867613635212446526760648526867249632628491415455601942333426872322298602930677330376740732265629401172383714897668613483886854323523940409874636760092963765450030242348014328100234712107223876204845379771052182571885740290342623374440189066904621949942255240666713836858036250585371419784271493897105907314962476209721676192433683785770661816005525422015566647304669866955420211251976398618931561759664899039670254112036665359915655668750204818692624923719921456766898957585709073104030222785744509751901895325927655121136793164639694824389601691583439549818465311560043857262430146615857929251978287307052323462326146456812638108275116845641933301943004133421838129793779900787617407854776628359198101519634093354429730805418023369595848446533211467970626135716906011156644084607586144580879554858850818125220674312794863412241071173582478807801559245597696751758861930268536434606299285453444836121457185813181753790218710828212105506953637122036635517066472287744495085837241383929816054916485242758150611700213240983560815313781370187760522480567025321926091565428186689080699205462699412521156671238345024756804645137076355231839437512535541613952696136887813458624630133951811886161699696159530960300787193939414728873361174785420325478650723864640787851731074520607844674487011020267782495820993019610087945006136344765810565638062288505431312998036240567437724536078856538259615697417431721305090970400586680691934954558688430234277152130028823376845335094558469912442285908500483533033102857244649929213549993143034718728108724061895407454124226896743246766964890035632093013150773689072522304346114963400222032011763078514551422077020561326420185608824459613907532319879963006327322941705909274053492055415470250345232305109040230449344614520849322045632909263072218569015986588804571082336100416492279731831310911173702285257903394126070421661909843894861457900005920415824615134640432899167961041794730162050489209377494623418571165963246617378352182906163485565871761377788490949712257832282191538783712622162043361975069550264146861932599335275689942234873330786385977374983745660924437692669100758672887936450434029499898297001999658966067303206576568970575804497689128595444549797342803048383282248956966224551607547972073292313936673326994658321505241961518353546516911112020305458582741327300892470568710566862421141244076233423149254003564344735756820792438269907528501661663627650999134424061832228805064976469430483045529260687795723708753125084194114661579250882285505784612087952200966740011706271140470197349293634247527114131898912287150790305536579931780647915358658772119305970492604962576026644012244823001800232188347669733524894610219408309541415937430272449117665958741858490556623669317854700206082196673327491278973998254544384101086191228438953629447640581863806526124649965859639009475635421980955407679592755168423935356593269539178530912411054245036443274129242418971840493938124195452540793142286398449802997447201750002048764602298344071272313397169578268536295941040051488013740511021111526877415133150571526338898450775007852553084936024741239790506451227194678841974070100147057301154383346140572662191506231877140709933122838586545472382774114526550229877547608760030381184416782028956843221252731793645674298896975022514799783551744823733713881802541853388702450335778812316087860864165849761643865188749305976003635413519059403341125063752219510107415197500727057617641353635808254184071715117261264660845061198663112527296705627661908323067437576146671825746035348444455879081399451826938835810979555499427688594742798696092294495923907803574863227925407443931030461441112805934108845940205275501011864713919754174633997099849575335746214661294615506956301994755800538875433565487958993216338262113027471355588459552423659236138464987836125431376133523434109017179308586255911052425653888158679663980136562656594421957003519070898718835578404395379634298490025188453591297281701939861856350449174524584683912093433658769603378607056151356636665631920218659103701151166156497439592422845580732419557485186237880494934262270066386065989795372294716436597508410442019899570335276853847231953205562922201734862313011191142792646937704245211188585792546583001806377253768264641844471780521185514310900671659463274827629695302058017166080606590254756828009149412107617290884085383868582809942052062634037679946345835366062219788673012815665864549110021985760754025291701851515483612349204651268802175996621623424982941988840644564505816897457745415141130514606967260746770437312415458624427972891655839552853268402319288569628431461985370201864125181835017570109090716157882273155729011290507217728289596670505536364922639481100149580829148068129107308803648695888834906094532814598155313349714787548789537784851967616637620239221173096087667055171852320231992807332805632305557815497319009504557445990289901601106445764804627491247981468517933044482478086525542263892094090537854991004344949996088525515711613790930456341239679772193314556285982763377544534026848579819598256866159890925382028264875581460126872054921353346923111377441017954149619514957885477140290033622219069639628333650392113075686167525665688990688654106409079029339310045993839940289422057134617290413034679251036218303085395655320133832466545021804018966881852593065551482085545949046585800718078972514806389465655280461962280432437184039074211028396195937537623776703063834598220595499383154779006586157982719153882082394513869593180415436409706877911251293315361017519674973684090190866670856024170573535402929511743308225940370997540458357639168904670579986331995136504108538294439618544827261887931849300585197262232230591026772895308025881462051601364652496609605617489062437132145184937864494957988025754861896186404190669426004603203883506174212186205168670779623450792041441864770021103230429655332396661848152931964335718965238971797599871151584544669508885130822876891957730331726810472418934664633248637830235818127281332020373127177827277373222550158118936877709820215499774885735521939276448698234435622203322644105054687569091206636216901212679937533240577453110786845527932982393357669894291463846031986896385330646791521652937588926126012571086498438338718799894846796810597628693648224484682493070235509938382168327856099754396478777038853581872701213179892273895170798764619057816103697634496214139639308454030237839846308797369224891545940501312709913419592588026968420578982922736082662916231623879883213168112853899564174287175737588421972913487837769320606533682800602545883567879342805910324148435185069518062299864605595258413393918049765616328410018145210909977593331896725103465342865619061842375168338366715016393623942149587828453021568870234904655658350726960467702389193394658259255496453607519368811756427874147826930124616759250762173938027184229117148512731964124091654679343855827927391194687627827436047729171801323885146175291641123285894969150039092453154905283691684592944418128047710551125913849867941778129656776597750813906214490737955464542229935488935269758352601080009670844102273429877472643558286318121784152269172362010743758728096163154741415659543973902355396958408425895220175861946063402881878669941775406907526825825114128226141709005206310484303231695196712067140423945379914122120660521631746482912932772818414937190813239180251797058442994172198887747521607345693236431663712572109638071110049884223426199590327448478564849250737188295121973146696461418299203888779487126982235246052853007532429002912238970144650425225051279033826477493336406127036341949527592392186349027974962505905435984238483652310832669196823710085521581825323692787143221466206353351402684386372041735946679349254650654632327765822747387453853309293033497320751599022877762782042406079376281970924765595983940723782245430204623748585607595271041385674610637696038606719017671392028946065245865558814112040396329522244481528333328133306598140499644969902821842708372557519168132469016413127489699009469057127264967204369177152879324915431229288713864421683307863354287752305160795860809696077652378197377420540511218652206801933262979438287442227921702469490874241206817184497121925084023692836538235211794450766665834205045906582569179587640767557369259460306508031884229968438907986936163504913654264211182802187229721728599078085436092442429969691662092068436285399796408497197867841051790938724776280025600545353200288098032884454120656594589616252680456997445514537007977296323137950656997207615457736428586895299723945154781803619671093538201774759738456498563859527347221264843530344445735738274773015762129298005613681430098042123384061923819313369633326356256292866858579809939127419731652324510528206629311346526685188530881694525174283700048926222445206477462349326986514702401205359226823845554739499614788217266604306570959723146146182484177681128800022530827992999646056080867426803141391136249339577901810572249803488009048434845101084277653694539937960210098299771101438399347955852545749481134331470717984763897475652535789092310256119804328202599692476243650225364111624854527247486866154836263139021528815647969306794311549131832884010005754540094078402046557330119004161144616105830437524395262726512379179660287806937564042740764917378375811102010855985986488040699847639055248786019918910051541883683669040780224571296347063207806387369816567617252768340364134678002420681244884642234405904714736254439438382322702357267268812576844050389805008109468991570172090115090779092672854838788873520594266906510206310553907671609379167152415300333750148357437887932351685255444691040109804020627825094516265070855835505887682885436931580225037753269077351848992691368669428404528267413194053885874759439098353847392480641153785777426180900200003723723447816315960928810008122612180672917865985318008845208510946141461807663964201377319310936089194376893345844174122759055199914794789203543227654581899557478927512265265166244199000347156585626716311596493836226589158664148260790644357054073170310691877663111583865314074461572855782762328603426008093428298754971940809304394403892818341856661350493326633933162153191771961696295170593935247408036115375224684336469582177135376490666931984246838686135429897957533763717318568213275285338927315312837233632925569388988498741544073638363507865598210251589072208014249423986301169411067761143947924561758906854060346800029747483921858802241995865153142465177549992734666510921158034283759896447113737679289995714580162708707681912307918074689442497244730198102810434711549555450087236443488657643168086820282749520003300763212055246390062288667312178304319215623702977121892122770119510027928419824539027944316942774647277557437153315819230384864286227201079988419973898710665346137140145457820097238527228401677048188784065553383732276043563916245865574698350384037889427917029804183187171566543830350603749483313238650094803984928066144498146155297121395232589583317968093767640119864876381278348734656515281278611950767256481032478035378049986715473607590040049851011814798689262357693003186989404732168530098421888169489876066207104322590077075329582784152279976453019356857156122679930822075069714639837205884917140656846781608638100468226276234409328195695856867965034034119519890774546503018551900059450506118494974825223126608214070779344196872145364695831840848616899050879659715737025633878079600316783590783130429168084898539990309136678040192434513116473391100664613456933878051510420815480483506864582586360217596608305603842033152844055939905929365726196893664757417236812752550645849224138857697445798471311302428876483606145331049123380272220796476613660629532696435320644374295137198769414762857403735690738751311606217953394432891763602242018799373954093926198756286566419308905582552837788085367962588320642229540866033828562461601833410873713054501595911248086332868032194761499960640019338722632391030995190425958556790246293498118636455837300203746991937163766750883027059440266489530550268652106915050455754917354676020199397520665266398925653085292080621728400513147655936711156722232435235508383664527013041192340634649031550754724218248998030289609282289705920266741699690804243897347868542998369775321675091487572976535150403007806123874619006153941410053578372111527781600649046104051412634410824209887597287285609810095156085622908943305942120078505043388480475247850147878344682237857850914642604838946872734431630968727877317857815127198240572371296364018069484595118224265624703978997278908869480524015888882105095875913064779248408899637196284287877068501559699706138083750909188052868765436651392040916831290499469853601670168023402338972250196860670894758759462569801097054399297414191548664424005530056736329826017196897404853855899133760847769401534911122411670978646140399189091446439668163699548952656465355168573671116154943891002301322798861828523446253776339952000384713994222351383705470712026134930229268340177141090583826208513871150036482747015441983383262517895313509723742259486402669862247630162416377599168284872138779274638147146862956118507351471781364132684682549935099208772368949826771623170989938557601452049513867874539221257703310625081152637837157301746652720750634162256633080758264461531035276575790019245155682838543007606977751947973843209841275265485660127647554665434051288210109029166609346630868903439518603257793011100008506626013853880311669148364100333720958936087797308027046872529531982778156007780638333651732181129766363908376788295973605627077696347082267458255065748181392774132315716211425824847475846758278553836502224763833868089420302675551488261867900630931990623934481125093223395375581178747982155080080713350280937551687168304081824742697430755350877790609721339506379639676256022663950016435907527897507520168524918994839599073006238033455075096592544969317262648745285819149994252561657596617937364504187859221803411756851226762224436377165394579005314415094815158089265650743756363974337240574574577762706781380275154661655561384212903054762895215405392834591563924696582375034153047007913215177827486586270583719903650031928843135621547240490959501362029219201161743879113845715502119644941899643546104710713563667346185935730173417283650253628837984465296978066792989651076161231976235275825031152223040186045565667726627374134121462163558041399249507333241237948248146321640851223154182520075769367780542118504165061130630905732110443327010749104973566686006032539668103605085519106388671613926557003656625690636445479719127428328529233751028477025489800006992622042403556637064507808761403923480073121100890245033205537283045172983570548523764784129331609285620010603251606073762823109955035398554904176789681403180676420553940887324277720660956094161139967177585335919708364959844509312624246073239887777645190584337741515664157143934734562281473682312534923386115499435897454983187120450227896009478809139214399382577770007268838593096292761157517614843141093169883657624160194008882621589665559074157564851108590946326002241130939565415054190194608637200324007428098926586423568837755380634910067302125426361323140326519855344984180532209513204924185717722083189007857301011500426841546232159239461133640514146871344322472037224712435574896254083160138413140387000188147800967441000394347716505544828046130596205939056405280885627824532780728184284064178609280265580225337070561014204328207669377866457494848748454350732063196816274680778656219583841822341887428446894674074292359885101761905038077599422819532988983755512825743263877390852465472574854831855307327710498060961533461663440257177989493675060655377827194156430688108699830725461944236651087758535961388412609044231960581260668391523759502462992713971001191151055922646845439709818259684391691940653812653103893484601385943783286542946171087273442203800382205454269989460763555134348916793766373278956935383151216395160580200256380596650165558979370862023049887137415906060816952288332346395572413154813001510565624857136287165615117901463332150519125366665208365839084446391703998986089456387229173448102173157867822141694777051840672522781506508874593049057537599246514976699417975506368900417804930968484533686614123666754255009909665788357700065650693218078703424496694048481588700673645580609375127428477293091294413458804729461458926712170728963884770746581205903704345904442763235008196118426635610355072855742969863207977320619355436482313024243288735135886164376607710869470369742730173072593659126243824787382433184217122366327537481357450049046943502991451037325653806078688738950195611799635540532419539105499864092718328424080784740455437146838597752857378998272785313651805341302846028459464591591056108610437188282860702065263583493736422823475133702436459242096335770349471889986973827274984508863980649404634559149115998801690851803873520041759813705411281923615652049810640569278406560136712734865930710300681949125216550386633496394111259776874985083952124541901781988375390641367890544559674195187635793339582121157035573519482506302879341672027580848160110541004542343250068303823726310538557870575710587481312315825307137076530315088170525314205874404558331854898225937987181014627064991244627915869662825787415815979483936653262425259224504503455374224890815341015574349477343150011807085890600431117090962841520585383516016674135415335232040311318442169825722907971052955926160341842620434923514310379907262205250037718744449612198387537628333397892363805939973989564684949002686489190046297807254216734452290394596124583807893999543725705221421627054568753533702888017693511572851018427761715401650580239800265279674400791265960106952407219049654118903036751891619315218189477022739604347545354569315229321822477904541596507123620552176714484807213544735633393684531108448297848142664782992115598001074857917920318659104549842117659959974567595580356731301014149180602495564084192264911756137229195883231105383588055367796213978653113831953721971677003277232708617402632262617594812614497981404462063982807536004573803148112451114249899432569867175805424335155256031625578063304072831179368626257022421343954742769031556727356837387583371640678350048969147189972853542316424458433578421974232825789498439157009368402061171622066901130969868391155402757106754894475893231963687088091040733426685763441591047174033863292042260555434418066450588878397857185443542052665056312827428127616307636177825480960626215786254309134697790180524165413871316542961301555062791870437902143123945679607112724830413089197025886560624289675114698371342776646236450594790010365895283155656112924232685626185675701367484648343548574950153975711487641439807770001796083790696296043995464386320025164389179714552554962265131447401448353666260869629544096990974843256382259695026412496915227201557987515722966061906206908979822266587231151927851168960690580522158157686786513173210934134192072524337930330060312845522975465427391848862123456544844942281926396208157070594363867270356660536158418439821630628865527081774235495105545616516929480597986600894402066552716889965246783848694963935669631140880345371119391016002779620770560398741549566955787146238608248093502096731719689592109347526346285416504050408024624323470402580574475744618015297359388372955629009466472443507938263073696191573123478276535583178600328964360645101781115448062740902432528068291291827321852706633635902367179182865630615178180591333009840621164786141014838088165733356578765095323707284574641228959313686850572073979968417455065932605392322999683694589940828615223774051911523193942541122959380897665692684439730846100548932588643364736978226433596169668421284999008268551465556192725013974368886536286442770338799070028965917237238703275926426796859417608259191999856628824130910346478566154661892321832776560218882457670057110430526642129940059547725099910470819972640882480461305139422037448679233829220635125047323205939162882124644202897575564258882302143283427268411675440194316742895460874442732822119604523220884581621081071686689233189466502232273773113538290321206974339070180940625437725088192242480094713421019355827484953234456921232948295478360312627296312863047340114560608311706831809115785990596424637810112557378764672437566732347759088462984823817755555575596419545873089673391761698707199418735961482039657955875533577037937757162957451763875884001304416408002937320481659937063585003032380557386391946896983533025832844641637625763862491032818254683144131558265051560319247375619369546825033347584741379761787495280608104095481278890309434118682830222546416210130236512150228492176388195658768989837245453208800375663401475108779387147544842468401720615576366853076560161034334955704594532869829077184167506352873914335140083696511013485504633435001760007154919857309642053034822893606290026019916228133870283650784117498102518551784882659623543965659098047097320834636562517116342231741077428130442920872624384259879549705868000878927901768162067276717150501663421179558303044907908285979638613024564676048547658472034424483347445922073518305390869068378855787530276312041816926949341954175459299024383273051816623234049551431333340789837464875290486486353749813121560512061086648503987801662095088733734348465286958482942701870179696012226354547965388417959164954266816420767640588047473460913661474171333228539858338416618582009620600019199513220898734212508499284730406942303495625569078881168356016523534776198843784577792346828845983806909019559722647271257572115204068170713590044715828163630347373048100969339027077821174351155387863511387895142526529571969976322512310933504200579373395449799260158770740284755576220112249109701041529860134494535523950885426678571173572275375272716415808766393473423572352732852400495096736680154552543759437755147292107871908694575168590845882193604332998130540330455909322755491219005813487290738846628270919858497591093345042960163385884189366984426336725026167614515301560883529193396539252956001907282417483402322202698107552683053234229525409334223628373441824723365931950664498445651873017421582796037491127878068102745562048669283698829021164006849100833355423661824407388927345784018319716420767297075970454631827258244613761313269269919435099392517059826856480827935797222101388704358080829295456900432537542378357801696128353325610180630858875268315184442201409831652805186348828169036045389507312344517250401665739398440651486209434699581746775815169854412695260876518235077219050489941090560972229084210303814267770418649092613444695267157484936924490369712364261392589111433778474829923760169264908886249829479472906411099924777242124604527220535985722185411859042411102619642789328410406832607729762709897753002299798896825228857720966464660326873868712040911387500489430801916431453553056762946903497467867330481960045947585738097402308537752256370631750078762659691209445987892543259833777408263789921391929342562176976496061876476072420434481760124602597012665555961119785903498578930974409971253648855035250363754359984838989091290839625362104273334592408672507882071086989591353011396042866892297913228007528851067444548438805858263045775686041733778878962593377815458473419756527500528959969382497451700205750061240020886027966403464170156963883818284420147308060740701770468886565453756741483905616489700597713468742980565088240108752620946778657548846854567157176784326975746215733098462384198603996390408033818867898501255059545407183557583886593738252254954285770582327339677877318009978913471840661682570806130322282832363875564898081196600029513894766688711636296653980922069019221400252654791220413592224755286085467170209682086364362229152304603076645726323240444083742877043117953560756811561909245511378347622720906794602981805948738986789805265667085555013014250599752167291616203749338005700479394286187380681897126506231271466224224765613023474530819837322382030763068763289876003620893782031003780923777072996417654894111692036865338536991989345304462965054066132474192576447848315316076977184221205477106783348104125622365491449513923295590658242863219691332022354156961785172959713905921912180942319275409282825867682432217916740484094707430014544113865523401396190992006253528317614796952263726102163475051101986159917335227703323481864616578781796541515457501184262739101487161065925200641173325656083414178245054074059016262782872015101768172246882075680900514387909246671784304985154619228736281854938407479144159952362040855320744581878751337121516850288152430008232700789257898681454648497030139703594663203302195386672143862772362919434789718101458055530823173589248932603416766319867755317122420872447296821611775111929462132896185519909795282302938939408349550063757765095312687131924052726410524924090551453303461704471495004218179790700881804646589014403545128113613786376636188793760538336162270933796471607926745497448571244188757181616187180975503584480378412157060914936857767439782613275771845576315140514420077602590758179816506877556732186913425681048755074238824111420575996585659924391691990577045976873096902805227140256413225188600857563413164384769329706013388522617891191377771843089850283555654937627590803298155263646126431071035738647471411274236510027994937987477967614574653811430572458496873650695770564990847033761510292657331615183964825986693945918838992047786875017484705537178922228455890299995400724209372442954764431933632059900441251664627418428027597877560108843193471298547532042510340466898828181571148099300117948584973188889897524732314848096941604617723700537579174587358416133823520741088809944820156963336293031224814830733643260808188229215319034001403438026224292726482224815696896723732186581071858101744335163365323144717859788392919983608713360669840664679939174677960554535386660039121152102025492616655760135336789062683239728270550627934881840058666413047763943478869061661395475328171272068474681732535623801605092111192681275615692578991441879014485867918235258584191839539151185889600566005792498020422903567950538571400091220958669031359577462433035561485965657103979322611213333392367414450854171555793204395802845995413223515954405722400872489320827812093920247519979573913270141860048011737872758834733262060420087227542690700107106659059908151555441336350798028139832960171707899221176123910708277047494351400793348447278738428399348636330400076532791311842027961570291875999192730640807464275343480128226494831940443163947107613369117213088564949841520010547053333106432575677658406983581142027945172477187707367809154145887801483985218617540634312398165311038003113009692315303001987835474507745565780608827605662725677362625746761166203293604915341144285119002030370788537534139354018120047730393276291547572702678710402073362061594085848592137689280071707735465379729076860368034070690052362209189643715532103565473457720721979618307885488055681598108041075879940449285133102449198766915758805669948426805807592612733162561063486978849192076753841978778226628523798263192886978111432468892705423475766823107944465381740341854530482865212351188436866272785391883565183072700599734993768543797152673897184931647272641033678678619845223934006672530770836997940452331706160493189268709036249751717948305819842378506527475694664225756487734643521647985518257915680324071738683220485095927184466125608221187035231803628676873481351233232351759970606303759612617699241369906723595314365209854821388756901389449764691915117544314601266053739790535671647335060026736431135481975742212366166812497334219674823061535420024240128925778534821703230212637139586910781025316237901118688324706165122433692175531327157937330529701518464438837988567365209649782067357253319164002160964872080588308606357478278425320306025892668078848982621224733957093868534086714048231644870173819337349229414737967219627230073101406777980242208469545669154823042034964849597600684122619796869578941337029845311556151831021098341226702492612642490615342428960081597873785736585864886399833643841249333342692025412662110162709293082762199760503630396120490365808401054163489830227413445359109715927079440434627617079438573685705395435147296250289813594395912827497290588252419465686449653613757339115885570754525644106896409452097249121069306673091538695123799284611925179220498893589976350601677630335998474202383845902237651798021247990282188933352949748301973345944656582066316635091323322738844336678819166674689832658123407932507458058700033445633302784030499545569877890655536067789833519435260322692369099736011022252891694882619596296735414175724503197224703415433926261398067999652016036440661138491211477792910977525212671552577152694164253943967473027116518847040270050393652608362428765362630293817087054162699501754458220602455407614388712054732553725141520526369130165037943262917935051044664152783007111637705970245425583094966069984616881250016852681096821857585023288711483559679525249403855439301633399114008300112947890677016388880801879884371197503193456064125185253578246550001946641200951503034485016389011018936151612577395462458993483732364561904270142755678980268240708824374230166190664954096175791699058846741621260902743146661752377563519878482988195622185194092781042307952565802827941380688813534379352187583137678261018958876685339952259331370644138365963428242282286015818964759584820895055739046599844055278745237822989044393281199095561970742410625490615745272807615453424867947660909478333192809345535149321470713526601718463733026569927824392806144162991396061169608099586769841348183551526075440264096166784132782478977539881557816676057366182561446907655306607303719704839505243343538672444428286217645811099404095809317558034345385797452618067383966046167509768236688148756362149106047992175777399923215637115765026119728059783881120951688590459657899316202537235254642840175312585560742838682137007861515336198580531871485844612291215553867172639036641505273386238072628784502557915613337471738917235636264382396485156453302720368603549360586193122619786679931956037838502723188130194335744604868763445141688096971757545766741980735454780882925965972828898602972757241561207697659232294258922878186802479791106491269874473056076136448220371345544819758737107398639181290525154963567426888805582127303457567080120439859882386582912151865530587607420656699819062223973591122283895280453932261821067269665839024690284141933769874882233668257026696770385582781378501570463584730186777836218476593579615098264496552834772344466803462067995885256815227809137297902361450162497581456418935008461234587927710812055550769085215556828625367233854518971859666787147456881567265902053511921282501392572222845848368998494662625813888654939381995646886369361692908151865151629947661667005864530406349572021550158712910860579939362384312328124797144763765007749287394998078609212984474940374900203400053165146696324968579955933331712737908775274930793414756734894335572213534369760077706630457995756109926700627093277306038753313022515132544262496943354602983746390586480406710409161874892198289970158747447043945034295987172523090033789561251562769337755168924613969714922086969013830069543458298641061383275512113139307076690938084639915064980653473228293858743109775635985272446679816347119572456863033595277856615602123876153531043273231586273877229435907241755892815427977905802133225289140968862987743528561091871717636297239660071088447597624332633185483958738453658875126753485039500997291508228470623192571828225211855637529611932069201902374044363577972768185159559032710728840074033680674153941250595753800291675585972483681347449345356694466672399577785128673707471991160837856419421780337442362468357223091143729808244265456560192380019093323546142249257942646898798954597777736049099295077470191474115104295154524049726025986293944656843067529013485433624071956735125017851749292469709556869021901157304064260187894827541840217479397962342829404761553138256083885520777327277679373907102102392417052218225577280392340933144805057695440653662123653939833198751447021040447512895341644511210963568811522719638274282172899505595013457176564880187830792373017629598053488441080983430316874222086445321588361350033669340760918573071277477452604177602910889054221285719462377927353009131825648980125750363977882194968557683299999422488770172110675764487694548839040401838888912622588318089180687304376933520024885517351185192365982422113791929151429253971461629357136943638624127662396600044944861754942400877995972849040324549431284048239670291452362036208296967822540093065894593604579940080001901206507029655072286375620999706420379930056988963849557868224525903092426955157247760040950915592723308634890145365544816876884345385187578072369802825468012008397018561984759952288674171673216562936170567067965634119285501159576567782020452658167903335436028435891181260881034432450465167092852768959943460425841595712584183411544261247744708047700552074347557689769122350720389414683494757260711329887494707556947124380152878710449971284833825674675813291439462773733158182328192262993795784097922803720787706561876690359507935382173894104664738762445256791787736879657517314299384190791828363641676269496703902925407808312745013980255759033731895156717484335108115851360520829716737321590495083707972124340888646905414149106600211996238959488200158713403988332853580552491465065444559235067235400052283055399076061992210544382465549756919554506635576536158260935209228747503980620020155439255373915853022791803840626384108666714088750476300865051276822451087971184678621447217289216516692534216966863382185158493804402825071359256934628377473284318178122139739655337450727343675745801243149322318211065913156023849481534311921110774658954448457535350305048181277207170355726623392719161896544371331614320254243172890452235109568485077270764824303327908049744023162809892656008865165344434385401942182307843539357093938899219183586001125821807362233693084986277650105324196842891905795231241606103543288363724166056127679057817161467257526978277319483062415430574284344480653954907751113061390817389045716677026681366990134105653785273032339713740611869396167066616358885842627235883334878752660420102050874741458569179257289433265279458950146732967860958884290855697570660735739197347622962570818548909023627052849724224402991536820893548492533044260780551735908930037651901496251829703500050326247248838147108714046821004043373065365562065383493487577740057068663298427421659386761259673735062263627984227480582158573322650864662835284119590738687527065576953164367431898500727441713708372174806452344110575051581171995745933128600582114726777548249690148540956560014136196023800917631327576866497565375018873873833884651095411765218522657768889323694977197428695858103607986938483086557787446127879582470196321651307340748424460047488421140630349657795474655659088174883513651415059501021761992398634709447384310089452800210252277981771308710671025840664338256605411410818584615988007944456717169048732753817753647730165234526698296038372422224623128090413688822787437921711884535923268364708198631185487930532752079447163049400788732542890761809112201161531972526817861775507190804472372010018062097809082628571624120692557341770993687513790178699707272894305412027305677021673183606459892842633331729778586380884683886846589565482081662826458745577067960993553606340561768163509618008611008660241592188986199209602493704158253196680187432063070250754801940107711137252278559526697193135364095615905043950755429406406526048612320456942290132157851325118710936677365065210611254959421000844957820332496161075504832826857978789195637315834216751208344599649445874753798340139018125908841190124475995404220858010589614873492573979442471348385672136250794020329938870770296447740539549579188161565992983332017346885692462976540469389518866763821375778732189872232521231937508828521349444964421597563396585159140339110288054194789802755999709388222485370355870598744313414553430055719815927379665439340992179259422102359647813955775114344796227107315795186579152512869949532991323737116365826227176844850536828875409099146335050363280677234062239604055523362882679540574607590413202269380773810655046428904729454223536365431023986809253199031974780841550488354005071480163456445078116140531034121352799436642170604385321484127753986326667985526500792536876787480681950175846007442274267963834823702950055646919275063218161895028666905216836249816300600219605236820740998046235245343406077623702735189696637345517420795548614486139401934512148048949334072010275702649457440149114072542882013384424673636258160954686343942882658534719968065946490360914413023845194571391107762777485733911031864323685707276147970296640867548575346127472700957246722614973459476858331945909383973636279496130776237906285278541235563560872131668634023539569731275054440645761974047497251142293425245309624006271276549734000933659633252794465905582869521688336188726133905001199383297397521384574093723473096674181515784397711327219470396288632191672260759130629052058439847202678720145277361227805569127187825302898178214643355487751270070429835569256458987412082607274618611864516579295997899383090607598245401282240113194613854576321502471736480967588750344176346808043297558534390633692432512485258340839251976814083293212594188642308379721166507410626503743080454553672115943779787712170789966759036506437653169846840199887017383717448496387411816462962210338343632845288934701426164187965240351136781001161815199106786979369881992653117784465821850182139185166104937170900393166044391052075914620070536056368008550097789165094892570474847327186732482096995902942777186393564283316483874963140697359175061815099322883394598511446010163304914071577493903298604243615517407319468910141810392752502179341773106562626411493128179700568948079410418523973026445296979373020263180652757013672560857484591454929757618507490702210031420529606574903943744483245518353746432455152778489713188620274000998428112808627125531148500962937860751913687643945432355640461654719395245954291240718624990815271309429269838676064637697963314852473086806720655506899538643536476549985129050914737366777593055912529258862966284678259170738734983863532818299768013105886808073622129639621376372149462444319327847886636585376848654835219852802377045992457311913380951198027204005418497918275831501635869434240715527672363928413026756701899781637224722653032366881511363241784860838978660060494967138531129997890463675206812690663221843430931406661032235691798866172563850637877223530661341516559978404373588297589336147032685122826347252905141659390647635171406038911781923155117027272976858348940360364869946202947516351566331705315593819489152020441432138563188148290744409097098234364921024206618445440841600743597210598140943259938358562316333038153720914322475200012100330476836262871551347974626134527102468714593637356966415762181585852488519718227923845466987249658278660291442190121620384275104312374171956871714222594220634289309998692183478685570115469100212380589308136362971327257558591871390867087546809374396668744137566729277267330659443917124308659472749432249572841436518122795758010089290997029630524701471917417654496729756571178659478773093556280500656406519413086997566681967219333332924352860528341905316744693590056795525199142944671128003727073604338523036551363519182583238259355786237089935869665755716022762454698662088884289586978816140268975890070247004898700711945300834601347986035312403661672948538912743110225673847383935341548149806576278264797461745900001219996741339957586456853925683198683492586696901092207806496889454633519883168686013216972085398584405606158833519455858173621560054194028129976797608593226109772317707454201601602616616857122593809074353721511307397068194642605617814174029151565755287730871778205790826781748513573036986676742128390961638707827691457313435877711175156672540453514896135685229842914402555455561112427881548807268256149615257866852742221508843729779880572677246385787606403041355810953771592808059852411456896508903980277084641693021965786711329539271239692446934403865648525672331510502869694177493435303092995418377744900759251786361114289341612164912048654142327127797083216709234731640601839950112759086672760844184256501190562623052938989798533240647644323147953911792475635871244498197405742687777253635167224380877850597671176537474478207026689342685940241296005536925906031741844512684741258238117449917184269566025647628138606382195597049392634100941436376436972192079093785132796093238350354561265209739304715059774537005836359796948831804485436405714658723395252418122119486607344670470785827034980233742561836003649531529043094910318073145188238464709610676582326395632277782285504916146552923014503548770529651751343096395424454382019352862898840281033650692920002592773618438077798794044739869811974138407535969958648873242104172249800518361566944065421038360251555952142021678920204243325484079269827656462832657254954495306184797023171928131215350631044989983607806691906463566592765570656376810566787408867572894701491731118222766889783016024374912654925557494274479904838141328054817483123772068693432805908106614329234048017528199972993775707113432950919301142001428562353250177657679841785194585318977968823222232596842432396881589013714915700892898187841638320323955274733053272711807972017314778765750927568690009268833306064531289714141697393563561725595889625824360624377203648206952379445229507399541523202769237188867230873725100331975872742609519765622028698637458358968649310563146645789424738849991888445092690471776451709638593152926229104090216944275263627493559247317147438926461937879639022896829918974162241138600006954701588800368729153718391046142690669902734472310697886841637742735940630639008611445863306069190842111724659109215924590497141949869447545491325588589174589020162104053921294701263615910282332317893818415204608823014840963288052149242897888943822745557748375012036408342765579583677054781043548463319533203845187724698184145562880802058268149012828851296533014653874308372131907306609914388671226079829519239570216452444179132611262515600043267907564782032491978503564093770333552069771365044262625335363532975605083062883966854824342569339810868526765767826403114844759234050212062225224363396031693766393315985716896270735567612725049943063981643453334435571506265461821645045456318920153800383701581531185568904798937975186971451295855209587792557739546521648554779911053867342355115107054276128812643588950555714469163662780609993063438506132728238365029332052974376601752733479951814897509150717298788677305863699491375742597183089098375555884465792989475827645851314999791150058064670751707096107439971503441625902402435766932504323974207009859468429543052039727735536329209087062616186214989106025987596456298282285085790298893036836879886187418783808060555806656735415883215639703548658426314628177533750985156068461633702002005095942050869615818356850940132863837163472366038732815559576396365481482042402736821249012129249163379030363208109427552066961944074125012290954132699249001260324020176327298847464257546163434919534493921882097776789854912662605733715594330523489620620435914958346282120216363739328099553334960269264621239361186133872560850966633037671992022317563804419493689396062061668260437127687652460648598254087594349945774317762295490069464670025046660124452166697392220213732671792230873664657029411064397588354371744311216738320713852858142671684876308043501162550936078209583579453638214101156584835477724545769759244208317557669595273605661397977319804504361986675013445978874470222341441463669138520898182846956012384241166356458916927915876926612558970492454227727850699600028669649090051730757845964153047765464548528384761165408841918785861429223686636088404010784707443974718439402855973692762777486196684124612461824538252424556188928150245522184381376977745883782096790924319484142061931907520261236296860705367307899588780950444886072433974826891831477680929594622612722205605251053746050481618418127638369535522535314475701657596812974844580264124189808146911707335385653666778158658272430590042168291637816829924642231527672401233073264277563483508706031867687964785572844659543605302253180485491945864834054983352993441812786493125244599028507431032027462412469225886593260633217780139876321394147672873504655447907664404497663522863500370523107369650840307395735559557852029154967464278875563668607469965291538858131283338994211406368888855553452863143378260730817416902700543673953409390649658797504643575285567518364406451247526049595530805664707784123107317392540428921253009427342871581313043190283685198718728491789257760544678414850539691611505420417484395211253963676610068081342531630754287471214627925240211785171738129256893478268440027627663127312571916854379290919105911663305085399630125480473421434697748080407787446591975523603084541443976980326093361771202351149827297844569043224057856823966977850461538215025956162706273254329313164685204938772181539692825351235682900177966837522585259914881048513513307549561999156395820354632640704969546455797775423958961135990365326974756619642952891778004867682558544645620091773303987509112856604104423430530057732636809659891737454446419555063142765273677967332785196456910539480062550219951071833412343905174972559799955599656748273576749800801578545242759115628220429491846810628297718024171097621499008259486556218227050949520586530356802094880262722103331796729232820828418425083073426901057193668468947066262449639997493342699399815387527882844552413643653730729636607204337010482791856567822070632649749681137772284858786088840197967255326142213919684516087771796098307995982547987793593177731019018409113211547034651835942878774605414425963827812976884897872948850741131147966116292817859525881290825114567883129411773119354174709505006072581967207236239113514544886040326272508057435908336651401819997013744100852297145182383019769534320608307424090753557065475560612861940035888233213173708839464777906676689742192999016306079227314363291744301030942302527838709229499664938346820545334431504826981424399972906069808199365042695186272779982742257011300585035112403317555954835084357968104104986380779831458883296096109896770105401176474244537371567078039729826145584427668639667245146068265836581714106880320670278915504592563517615838560413943283844223545950476333933718930689148167562657882545700351918676404479602230489838507698642956519032714864452265708081882069607008497289371003715045208018872056730989181676346394767524353146512033818427389852198796664644567593682313477306477396662564665667734985746282522844399240161889087753649644252634053234801127170549015442976438083763160765063318343664921965441831524845303669407535152950757724457506477427797570923211279616571324164333282090618910129555648755693624594123308634473882780356263187206986109798721480832800597716034155198627304351263191148164185753390630504042506905164011768933102125363791215685477671277681229560489150480201019178271260430326281999272150756779815027742948283476096533603909940795678020579374304853136825772890814536631028816793687252026168632786546712897199298640526051597517933280917216532997494821543898335232244425560561594516472006199811563732345912934302042247019547978844605377321023012361285990977201089581212865352195391619348376208047946870483260669511037290056424330120604627570147186546791852189498514789471905137553590861266833486626761326189536699528343712086299649265850243569257543712333602632320491481348673487058236056486749827528234334195360690017764481515524301729232571659300797377963551827022907397609279272878373046449843140954595331100058097321616007157288410391288599950292518284785059428796496816528397615276220383360793880131056105563764753006749194144806661161416535807365740231956794423838948841108634938539477116208276465096650623854650633484936482206678177698736661649988872438721005356764484887949635854739716338709868632726127248430091981028606716198249126889272424326219444202310773934524638321142674081557146026167769077242563672919814742881352959568253607506561486647743362406052809529943521977353938737158670261966806434332602399142972280243217869505713688105519029766822883844514620656118335152623552318655259395909863653790688068022370362265418411176030738364831711179422653718358570686082819868981795031907951599617360831718340061168274835128884832628543858507787206710888049341274844724687119108353026537686309114207112431493045226156217052697751838191740062285056160153459194831494445216632360458694167804966948808622321771992971242268204599218861581222668470827347492833601791666989590648711552947585231294258152139802183898988481179144081477823294419434963210942073411788360774075801140521011950411702284467581083743060631382121785933219144153839855939318214865108706648108720305990932474441223459213002646377204674813440812378645627254145540948980372645263705529087467404174779537806909369974042158233355204763252860358678064322316855606269267992002344187764983272926733570774544733572792035064216154242023743991998289315888049869198084591753073630975183632242087148980094157598002361624541209377474018354182397719729140256428412634972935160135876487409064972106373094508014029628897248336035719234253154873780384836057541811129574689560995791237303083649955762629581598233167949672645261111527761185904592683870457682697021129512599759511041469654442851166996955220926600901370451966948291883624672517202831784928552787841846315359926674075333718856902309979401195946051671812193545303603115942489681265598982229310389571818263606275704552653877894652492735806509071724598449815737426360830842716366960723371689091354398777100456165472187205428457268164348535709624911729568456997305472735919489999280942947185064788664312941207763559699740978048010058502431638167461046570644144270225997044880339665441147687460469042189717977069083533265719779865623511855179689231992640236839704517837870392707569308528670710439951313574410195662557724148621116690563064453093017413955024073821610799091949516134069569752671325109344597438187780761527146178488306720177168068481688538894492823670479516166092703123157956055686922888196280674845162013982403984167034772116660617370289726680861832903283345669658089908481897387336998798884568206916451254487932742145790759799888856490262841649925997619139300382497245708892090671455248215416177868377328101989016397273784019187389602401745079578282790773722611272818867260087816739449924175858347500924544893742165353937156855509793224348791227633585596656984175474212490422369375192169007331736440250035187562184200133495299257191231709339163153580224687110179202438764994482796433681987393076810650996208887179868046457189477462950784786552307238042442522552867870286339941207799708792060511063152620742717820770420029768825436133608878838884739069309479644029869710682112415771802762456537090043183802195778919110458279900003892168852115562446985651128486848605224195743053518320973684110434474115542330197733887144230440843214321834298966425751676081096649614492890552512039784871830028246111885049894514206656411797756402387597940941322117807645846323328609965063115620541802616463843078537173402153739310619785573305975153951563439838311896800780100152539692734445210872272595264027680127741665392460273491787578142763057738481782679065581521994842971833493377530829434259191525432289125607749056841973793158589041879631931256396466606382439650391228769994300756454333458898825999794280601914968403264612615465133996934487341897038193960905630876832492715128107602500731775696771583546256268073670685753597173704277866540034619650675808466613184888156850654215955143649824663009646869183262245095405092872562412423770404227501436921335174435405820855019962227281551721046654373533291883938333517119720412691380639407459320305314412540336303897133170814158836568927531849947065279344452521678147706256862468810855971513109218122736432274933004040579994934571526778886561765869100316052819904109464240780488773978320491952836089958555482001152749545698355572057524382542212646597517160385552679163669015918891713659124126467321153548982374651244336017111190639508213922690632199171992789770956632709223301164254694016565011553548285789700547761604502711870093398048658073134192191606149830820416517943208208683992630169640821558540534468628433473582900340565524917841538861104109631635162578956150409914600309731281528450614630236710433112683431985501534006257661669643035502126693294042251122221091852921848506735557941525204654749631211269031773291591184612765257561389365447688041032219472233543818610609337463751023015906679513488927257547212755176996378847194177431296394520070954807078844226882669901269452416249980004063514224579514820760946479356166171496578666939137267016228676855222174511037991687903055612100834312614026477270031531413806114022501227709272499421466467636717247351401808471611066854483602936224692375480796437339412803829055226164480241283922634312824169833292284874074815666747730474068019793221559756963561942234771884240978845441756596440134543754526153145710576313370888717649904404253810676950960107826686325103408032459687629593190515876190497793220745163939049769612271670481047948055834951349458478229226214155380600861580674265188775895825193675732118726301642512029376035861399031125970126370107397990533635720560697797180789100978324918090726521189200434177664422561366038558015356185798325387896649217706278254653668811412169259651756142214853221371649499568084059744869613736271648864156211036226316730640990566950432179469757467186098535133008280526374193428412263865635450104328412624300293241006009471550012005799321945425931874341238981297817373653744257364016528127885107833983363106165295058940386815558758072587911113581828613769457640920759349297698973250872765746352209968670659856167545917811533783348883748259409852417212806402351498330968767121399528262191210132241961194141534921627282110767323600122190805177034086694386791303312460172806263869405311237121294256902695390972991518476640970954978339614439537000067055932780892034818191279744035477818822961274815035792051263129476810797398471433481096716797924499687700093407169318330023262425027049030474502887110242967438690221457260803179909057412343004854365831701518602894613854397073667708516122804118510457471331270278986884266828566198422878870258245753242654283492455657631756250881537944502219128626721262030440186412082914762484059817302608269851343252451322665022248504062551763250098637913912585089551591605643181832132812383142248644141748696899874192595884182597238284504197882377261079553487717096348569122517127015830611399611890943117735386455210521988040502324976448320659016164474548559312905701299390088019772894185720097988917867855644736542586226536559487293404366481457126612094887801399823475229483526735163338803579310745517682599073205633376753389266429685095149098487986296954187175563806988354800539705264228167183298906473052844548149995230988914263935739018502654484687513984608867318449727272988608405819724245768119472577416934874760164323726162309990449877919264063505386820453490560066096262366945479673696688649092865093075899334815908157878585286145713968668907009023760294893750194075513473584714081016126343118721329778607037331434542156874295093020579393229954320514301807214638307565809333047026973987427204809802110935968572318796851812789256405773337820465392704842535790703137484298774758430210424094945189205769380164507104049258730407190441620082010667591252042518649458901153564621044586450968639176588870686336651806173380828316151407918258945648189830588554935857070378807642219979640166812492029077272780726232899116826168376765635650322559221342559977795833291722891965081258771672650488507239625331404035578602217205307428568853116963082082809451721430890849840774342209913074760126839839197193865168154253733716656035557350075746792980015352695461802575588990272449562520598125632280695815232706001382386234790967030527540513508876135236773219870568129624877201716661920151625423282270702926154698448957910194301162726975053350066996862296584593075873906917404377186817928588126083117001350376574230240881850112793166266913447507362913490666434679511115218070480731246852406807326741245611433017077425291132121308968997173421907268750696448045553591980113804254261279747200986186745685338407464528896839854712042326541106287705301978147272496930265602119021570029679731967030947398289220157856992827501636741152395568648114107032053456821333601082604231526473496996798431102600844780585368361034170671889397732050075093329834674395632839560576985191087766043426829908055658739521693430476721126128468313975551121448382937768430777118967877443131224417946564339128815187991377069280797968520019310839109174611666435030040569407830747670986024415135785034001477906830903111696062974605643139682152036110222512096787767126354099350947172772113938823511287586437747083942776103624164377573536384377087355680171746383376096963818602071902194849390778660430517490654388201802325902132359339551583134767504569760765492051853959704482680533751857259533679253209048208896323420481945295977083454304050926239595542875052808545059221022995420686099198805360406184804912366073227707470742669093544656861528803772184455312399248273793841057960830417407237287818816537763966232337707817068741388479776270848235712562282672756393306945153390239567462982136551318326669633782629148465182381746749687159275819228516590910355408604596736187648214615139806745067741238615210603740425029104588834082666824899994542430964853683422195494696106407891178210281003986313279542642441645420758018837417485764721520959238747580454494705787878537085572738636965818680171111730754961035090999424222969655729534938818968829575897976285645448386931365993584937164749307613250287625684440015511360928454730290581397509803228061946613851835103964448468293730850710289121564478987103726746509413909796896212781206369466487996725643049492665779678363441964402645013970469109780318579616584256613247915860975444802591980472896094410960906920393954973143533838734829374407053979698359349819822942811155210169562729696163992180506851690780443832727301018167365347529431689453198293728783648200815034962849084989217486420143746049003619741650194163349608551201287487544431208934928563708505987661457305908577863601995436369773935727961466533716087619647154997169395756101705700375004741811562158898723021592427470114479341245442702060394445829720999495852044210224859398025873048665957016448873860919732018898257135977735620115547520666364033864784018386418376482156063441409623375880561538989662194016818066266737773346141697669103780638161878065374942381020798980097699356182900858534133513245728247479582665943138801713365090594018441284031167102690383143026589878859443173717892636706689018221697905312124556480704664656845657792609756830823655395234556858535553435624661404610080272724190994516359737524059368395025228296167923110089863017543372283116449377451469178438848537445108301464972996763021037778954697268508935167108630492663425102209004169204730979290071463859855354098580193356247537630695996141555875639625558085728138177739023762873746433847638661237631298003457185087544082784092831319808161420313598432595902975059705727748993406211901434201337656750384755483661227033426509531301615280126472164376832580679033690126399032609611770496262752135638155936679790082208985599866518985908005688019200110046428086322185916468987216521936364477875197816699865394106406355427632256022968286758694640222284130168874778484530761099686130025918082591035622467029816537011475348674208036657740507879056271555091505664915155228433524642893429292976020222994007554519186936650225846652362243673953864751838861551454977913734023561646746782323221070619007584368664064251292819335399365545629074449498645652048251888899233335504894009301942393837917732999780328582293533612783630581844900011661618385595538036983523100743427974582755388837309650378428102468735607913720395290604192057193414264347062550064511409907171291991469006736786212907873440292339471428220276423454366105909983645059454670169098710244899518866934725029653211662291645956260127712528606897489795427840550134479444041246170478777034219757135955221079938809825849880880088379169681703884818892653088133526627600235411354441681162814462854777113300281380485466529926114466333944713314077658592677639423943271802876590180842622871921538116922886576814576449603268219309905327175877996333358271012720994428860970423044341794191156170882780325432220235626376784596106516079711194103903497876576356511141994996063767489074100835961902569345243696463713282075385333159511009673862056580427488246496908480675696938941436014115646754029026997695822894340719303672260971612167265038011235450236346156851082562450761273865060776591993361963660563408979595597387631616494079665357717640393473858557295281214897229067306634041332427668785630226143584413319921575874401130663377663662443947250278476350704993825235101821502738597541542482903185048464927209074938320506804172436490173111855258906165420989912921162660283635473654923899455027430572766117333036368318987426568656397326054521781941254601546541718433010788979583889139930532810595656672916424734442442789167173439135628527813664572708093173519744435909978329532819145974676239694165747306147413746188430392742126549480362479939262074884967341131817726831802386728031343444524175338551982162910409401832208041231503885047802596221862710276410676566042039207985622637033685841263872147721625158258708861479053414846903726228999729726572289837901680244760124666954233156344974798399642078538106640249853038779090720090115783489193241547825179696758413511597112416760205013522817471107701664507958102245953129668891600384128295241663994137252905808981738547784257195523854817882759362821142898565778012781418921159509887961333230142383638495625619012283040088060002467148080961195303298112485000230874787217620223651046053316974333261143245652878084947281888939738462270543836897911002578766071537480568187960865846951655472476794586092006916844055168593174231662899193990170814496724527448857838077563946543104439824031243864806855928493332417035412750065469699876398313253328238680139135237913033014626427975224917567703381257932631815635168108920540623204196612196702950573281367139102013190910614446672080087002366218970133305477076711309567577340102244575955392049258525836818373488877505507538438444515571120605557368582537216684801917727072724445848624924328499543097584064082355705549375504880894658823715082626967498002231345551822683321563512606784586577561404886617824278999899736809374849231940134282092198225220503586451182463176307361889681002657359368664395465834034726310609920453361192086340689045349471090129526780703696381265050133806284219036157488853863698151268946784944596217343255646436260229789493505016151532462940225261872825387095521819098159510546813093113055081208594457189899940963777552452498647250371275530797595466721285758527423870448961555563042011641284775029069938846966274595692900006646873809154645067190523131111112066796818123336038519911844710662622007813417636448543451914267960867487886271983120923637904973944080930044031581360114357852084832049947554431346636963606352563670148507989941109001149636412412652543757219571456250505321839314316765441422417040062002663456872977994105241334582957098507767744203539791662951104380007681384927449257550603309243624512723117729286373528038720102457903676972728545655759487747823632379166469931167884274301308116755773225577138533302343363883021950985697489571314891813067618692003036628991617196231946669089399059318769299714733485392446296829098906439875716406676033434522525696515335562473531266811577766554979041031771708971183541609735290077450680170377347265636303405320759674250154171566790515124226230737936577338888554972391547350433706580922346845819420740747089553022776836235341065231825353486761697393828321324419489028373103849874593245706469083930486701641378807432065516367266986909763232409093901103478558274524037937756686066439717872052338502441344204016421122072628032118239990387377893747628106476758592286165763554539029525894409220177668097555879322291623216272317300914224963430108033194173513059828291721352924323309332313940976186568955840470107185171035799024500502258958905012087958320484358127271504734791452420739387100663175387736340714678795918038837098926962018270798725711544636722935982772536479007297804655399982681900886642509441619779638540559783911533971433485956710211092161136612320371066872730883246860250169106388569747592980331621028461580697959550868917673278430430674504384720749669155248190683261632168482521137675261637146166945969373241349391959708342568846261465169013425929024692238997002108826490859844318374100466850822137981241399074354788533071744673542147294216300240307606096712797390690154476587105648645735921953898887965008108064005129648214720029541446902022732362899563617790893549454105408076619898260892582314492622845445172096088671368243656597814925518371759888280307019072257693514530048740864276398306599612648087189848010955939268596645522111273344805181235509577626372425262582244011311239885796885735564816448875007899118977538400451574202700074369608872895722829133278025260270994782159042941721753706330726728465472477402277969262435198389667270170643075581561505123612837871361519144716230182689775857656517533038373768368339163240145933060617883459753853529557691130445951261095060457485627792710719286425447976869362024180115552767575111801290176709292999211217002625988056483755833960160053770713260330946354992686893333598911787246755043961536784615190011349137365279784648483010348372633983264435109533454643306953845538104352030290088400905118948839435336157466458220506395906189678473286187813796972317569380110176102875261898012356808488586371564791054648778697630968339214992447304717986816212045149645647941169800206131361837831792077943060825092393368717659756680574166703589972261333612402445082447979542871236629306930648390609059275987574490082434648789221117952595369399245589868994297921135334435638024998327138183959989287331100488538893900553744242544053767671527909776037243293604617301506558864575194844461788891307435157003469505444407174700438194725950889132246473699054212048894657823848639726974011136525476102558949373415428106424692440718435507138463030984841127950803497850705332867242539298083473762507569819686071519029412726717879983026896938776619534800457777288263994618747931269708656241795517770468692264151772025518932417821408204252636226069218640629027026623369085498341368381321655365070060549594086573307460503560064850521444850375115539563781772809512499129259975647471395337245403807679989192168224112519863660649811189670702990689889436493622931397443692693275064401958382262462779955485282482182342332190863224796882551368733366132231569996294997966301695284289225751173308065038422232875053698543608468956028958209344296506728916307159830910820070517246373297777981881422596229523782069333448287269084704506534680346549733705608310296530343961269515963396707867103698044189605016060469589021109708862644002647463145183114578248461262209049318786249302359660366613459628103362275053292626030111984069490310483801759525246523254738716323845186798693572056453741764674266808809372689745475865103038301880559660924129392238561233654284360019943420932083918850239450887320214593006810772073834070695911378529021735839367436403170766462477936708485020566203177953362248196104258491471687599135129870271616870761117461315011485213866102729923140197094195782093448550270149801677813229419556828925802043993888363131979490360991715976713753780958140283394860563540151530623734863383913784015944082502786969780413527733634895246457352593339340202179010424483019063839334464225441204867434251960296469801153543708345982447506355599348917704948060697721366123844762301854777046973015545863439453063199678961813437678342380424385806626034433278028381884177347645623337624465123493912736753459953162493085007650789928999210817510854795216474217688874057849048044530211113341642402481965907145067249681131347666036413024812454206445127189693436223261087105412205091389141330420108950826370739484673360218582006977853714720296907027143768434438503623026216080077419166371126607483896546557802671873951096772700501711341462272550862470725959266269401093189852792961370090866841241099602767430748081628659842183857610041719646743200589343572349069800055236250443664982120543199057241453396432143051299135493424996978105150823551251608531174865337964900380310506203756106633275326822239636476012912408525584404088475359160292590180998915684793705587309447336108321850920963850264076725712989339872492817521750405328180169165665130867036733066225506819291852010446476406707066090363327207467776392140954309440671461522123495054551779582626377643231054795322031280441930776097733624325878723974366291532040735221539493710783390326435629968901611492232034747789489774443158045543211463157406995031584775616026698699244239818655200282051794543312603459836895282969936355192556219288469638591101541587998621725144600927854341699352179899487695561281147916688709261420847715557290106487129596052452869870090468238879566437308708735172612979067572255316102222420002785023139705153468443855628737410905743356529734647838765920101897632966045903322153026820447092436094552777383768333881346572676773664956942653646576340866445220022838345439724408479245943731488510467203482055829514803367607282917023814133669380252573587135189190348701333172599800172631809007638310768565907612871360356213878633870063218338086677249778016590171095066089062809631912110179128292666715712363199576356177953851606051494973719397672477926346804318263169909865266987830322440436894242456766343126016057532463011207729989132123566456086330987026662568552337840412143481698608806568840377711724898144025014632755603241765906097294625180261475490378801954753545210577116454031733549081958601476499080333278212167992833678667032591334167078102461248766286301922690840696417147494331783336812949303533579687486690654619478449069997080546388918115359617189414667743350355446581060401301534014446081139190414055390615925723243122687902989834089101705545732012530198869154842319988761299309262213925741042496369369640499207622711546044110037432402902741725291256081277348881218318909715582844198175636849420597084408844854128383329721141244017604255555326084861499023107774068469550927695128370767995157199047696718063659728014091243413229637387143089731886846090634248438128318196736279564541027352848313780871705003686313988293016025891396406917573429641362982771150679689647138166793720411745679890568674718973375898297687843031104530489423361541803081507603759855620427089072138336913995683984244307313432079295419711079927187495248728081175159437443359305391378466976984694372654040999783096806551604201032935504338368871887769010528931901034239529025544139581250889627135947727072851575026408753480051535984736796303670177051196558194946568918475625728423675899196378652634342012252429080056294731072031966053108948427695542049546769740034270826986247391323837339823067658016900872087451722407167016805646613270277860842274219136681348210402079195955236390883217096234022404637073910090778578468759333965243756357747551321051100173729636129129653592218381537759103651743929761464072126513561980915726551182633776878154249669955434445949252511059361731217618328442178940285905508060361217779934233707863504615671877068739194829723527148911983905736654135875396149725463424866206644596324384120374632601727092927405861206488752277317333027075548610597128916196073461324591401497694856070263969943019046528959205005420969030545799595582181952916841091868198163275314088022801731546047675266373089425309489000577530808351211146212616052662880692546150860362209930985976669088397890748771555448174554127802047000391314086012347469840854342447495646793687459244759936572885257636402303383048820781479203747901699182329809626635672655238136266932592955207387650159730970865054067244631026630434139030365979682645072141602535827615182628501970745086135669778553143889503723295106089234786207840084604669762623956239221417329606469826675784382615300729553270251866754708053672251409929164832155686560017131991821008913332618927764799657262055691106482625977508410023480483555273855768367737267990263167871625225363606393336390251582413012755822000319666675435055160668341213032150582020918070758188380717071815290176112797915967070792900776471843892647328286367033223886283233115932030136442393975438355177521092337882151007265905617625433169030065974741848381747603338932009927226229342945582686328593298710592785925496469224953826784168526367567284614148748175405943363590255962408949246195746541452946263242176149976388536972518490980597331584438420635381818751555657735398251193817727474746703824072101655979627444703218165859777087366586975299111224794566309091547701066404023188398403042876673224680343399724303983547348878329988483118793380043120876329037437493100023241870018797061538565125026768409612581967269005115169303557956589177603591416354576759446259196088093103807351640493543044509072486637455490318485520891118579471573852897762374593979817443927832059089419352009350977622813122341184873866219431204219987470496195681951139481592544106971484814673610949382350393517780871416411192552917545982619042998082551022837033173473015684694012317029849239725613428460989444987934938359410717517836699141159871887052475809849687103854748833402058708570237529974116856127180051869447852954668682981904229766856456351908784759045618378346950976319308450825187478475571674685142185812524503792786758263176966151443523403333881778604426524184234283926209958651020150826408888314902129629155406790333475133017698165950961963013506458710730534669286162459250099211549166178148429573625745082163672986893084772646995043226862207099287649713796826194357437156279498187685779544737486625695175819194493869161287362528171325985797353191708557688141707299630787689925904548307171960621736717752255191061745016757531986880202425317419916207956787137740359324257285067905870354506066315239707176914720076064805461372306832949736834532911251571536637697421255105672636957987573214868210962151365006939069213251964059249982218319722884500351508815047686908197381531839979393612768276148910607439375195551321423944198038386736536243201135521120189703893868553709782781917151028027368866872985300122919634990668153152420946011884782941269751584570395204844843825179520385988398202566348042850573852141671822732672671032230848830566654707623336502580410442127707816128976089280858158252359246776075187838020373731629325321374633918700080488211822741208807530250816211212804260786788893939622515426499692839927143263354927024781265099996865167913478828399767471658012452563251417242270933937307434894408275716109251790362025613995335093104469546337609400031422178979732649106036687956053448437093306697039070563739698029954278850665797662162827526296572314159439214442533232997564084488366538463984339946791748711980602569434883837977616683030849871613339435709344041560760424336715204964368251177372988166630383797915989815577546672129951423034237133076942525341891369364560542494355200342301228322785790081641852707627782573555309646124088711964640251940939128881434636234435412364576027823241400984067122302815305501618189528619734458316357838751440628242733562125979446380190616222785818163783930007799529696514532869711975240327436081910764000858869626341339976305937183567663614093965994227628166883808783468703283123207060987034146454264926338729261532857643643707661523084086892963426272815574907589104396717384760722063414291573651882714874605883169752515723871476741294728253589262109442157835778606148988307828322175199281472879196168936319209707589034304624505525942061349722165861709704231860398033049359436543650438540814793647702503085031344034657964962888027175133523944344875311475792892958133039410039234920769647551934854247721956421523150020036110610934420763548928377842664197094976927089389258700879845176112307725450617815434802269701870289835924659529701824082523909276424770428646157287272345049307757166500869103109779750362392639725259791453532467363131806887772168673408890922224525067983281738292037777169782561146717633716327704644329431433881065931977098394813739198780640854366401788974923991599930791734115711345663980966071711251286350639032861293252462218203242762038693189787107086022283211867870912539004911275654312847503590316221963391273771689345732341904059940146384861936187079673905224282276219756349588764856657046710851261744109757947017836216020565033915142206206210037991712179964515334767435235417522745370539304646213587237409790970115475330171085703977261357971387784549758158120987052812610030004591236146630506528213491792812175888627785742143489126200909924967666118362393006278224898795610173951382512536803489439348427691872378229829064713500425492115224832139713709353754730667554791877839189994812519491468366082837090326821079980028618433284272976766828494065134308114363646389805634283086995815176647875851443600104101914596072996483909716467163931717101590041230326634397730120909153302478522913026443996435736053997225190845713615583152147873037886669198244637716041625538236644768911559510943004444854110583172519268672303770820537233799703680654968038949912472174096256364850376626969137470409255119580776867202738841929332790066570370853619764901430473767986641080037412674472378092439579124577117990226710592288970005073205782241735407366617916258103673077092428704798631589794164842923807865439885216149231496589196299710264183313887985038269795137252484785233547487299049245330515324481160057053094737347493306606828966548239380119267574798281809251632486764556974565668837998539942796787844749109790112811374401648514363409663385868857935763444345962751633108342952891855522414108002841976771721620418628892007976618642835901160042985070325027527685636232710517716328556349305804326108478702594216804252642044149281612875275094121050635273881065856607661867173450425768406424933812113144342032472571096605808038247668412555953357636697375579571354857329180240962562716240179268514779843183993288940991270036931688042580620716561582249872435854370366453003192036393453992134403623849316209815874109561221160288929904078578922053116083753931790795140716654011181855577746312283453409202976529123950469697200734452118028377407542679874843956635382810855470953315985556831706934527661656256181183877685214555409874077440220627568209404380650176251736860917674753667727284689283276837166956215577833650582562968787987768897532009603891083852233665392584279267437498411519687222383924288489348661005814814345088025121816319469036059519400154642730405000779086039664898855602516073666924948526885693088108953575682210761574409136575871915587148370105963947471259426276388674351757787316167708311752258214005465464723092429044696394706452842390855009490637345737091994902368112545505552223631241545793027852717081773461088078445798340101670115683504189791312145563906838706809193767396773576942424502385653309808887674044669638666698796836263702761973994520119421035354143633965351408163816387664344722551637213299027947222568020908283634784712788743744420842867172407416526724989096323170470403385734202430923250420134449757087805890547274039196154747759468737171855512999440278774665479086966455205185539792676175684498874754399115730751332814321310486558681356110278705551899058653640125712168516460571275570127179080533236884597212271376110687138234361215066872101515641903948310493222442978847580817276228036133362071584081028026703080831900354435234992552544348968261963166714967506431447458072347897804512261965022068159413829271741307288908287064759612171594269568339277609524120365576392242709136700684954576751163671535649416379505386805158787239986454953527440882403005097495002522525391202748149047757198092904321283458269935046925799169115368032155545839510719504545423279855871379291157820751737945921522670524206227113123470822223126744577056380080434399302667957724740905012845169389939410428982883866775377059756029485059599816175772113587813032461261615299899084887618008999751655043520436507189753897879415109853321918440095992821192142079946770581222862309544656002688044703065803170571410918453243158477653077431646214964410003647320355426933641763979197847351589572657652745883455111740021638346971868067205006613687374665539935046688377234489301565005482327919870171666426248120875384160231176819925376252900449802598320593062828958255591677634489726757747501052333895719654335833219100886606989368609076797430437393862053311189916932109029383804533650995438621722504728527311065881154868269776190938292039099951604347881619896608594140156734908479586548801124723148779861065060919041155972346794502471312940379339508793373888356276276974202521620536226088940198135628508918151090210311128310793983407262563187598082845532183008715461354574292857338199762947454929200194121548272902351612654308094799074515361138568068562780795791998225532913882296112529717547533083962963166933361536254981587715662577559122524621195937470547986845328025060702385316609813766307877341774025144091485597091632970348485231733978988427644154165445783913151275253078851839750744909683675536400676350920254500522256840081660746339818736443502225689100744763089892684352315812816835994957991997911760539689333924837347295177197958256869129849107442660141926008898854098077849308623905771925228703916513304569206225745959701673509029438674456478471338999250633903288851012124379305559761840262542067411667891455436736059158668448295220445844951147089139184405522908196396589312348030123100361088437203270825049203841415026930917101283566059063760903582819258869606524080633029056036333030698484477454610672329147891075034593906832011105616893659729259552847914336256381252376913427564346389332051610334439106347367578616759441339415768472255526275875251761949429780372441961761733317468099365761957710490523047079287342831722236502713444745191236764568386303788505002598084969344566994066283310381875220894848058122372908014123320909752211943675223636413892117714002475430572169277026865550563732159144603435994657866059474072134478146218581128427935605554116570930520838829204980871099681213392901804516689914094818410052696586265656292128349224281382035013176060034198506194468217821416045996393319213996876064436208766711265323644105418112948143555967690526707778325856873484799020702598861743335508643545398273398823603488358527740199671828763296993312473584531963499825234060248274057760446792511381863796631739835043132998677805010268702569870888652850268486147555291259165149119908155210819390623008371428104823141683227280274836941091860997455516185913744230490882314754924751783437744201543484389077396368683559915816501799052522591335196840794572855839379831306355078441772264408239867411606471018224123231982502119389352275345474611837196664537529789423370180043671711561572138314406367676292857333714914253775559148086754241030612419037131341399367645155995527541598111918451165930011067080346086607250566749358024827268018144477341497315210084353361736023260025383367559566318886074843978336696149786597615667350261059476242286301201458364571415816518563989430382823677933860897873848119564488063363448985883363396255812774509395332345719093395956319394285840425458353365344178278973423515033140710489268226790443959029500579990683155074074088988311656495984913551919696364751787788294280995171375817522185577400402335408013741373388156072501717963985926570389729186205937938648728590045321239321762880547737279232394413242278175758475718251749324576654291311556503435514431964900593431254351660395413538300598337129700670072810434005922388353543450273644155957232476239405518180960582855229535580411020723998467520360696352509263867515028732973993063602107285318694820322618960292444984504680742659028619503241087094971362690862284757875841562849460754188017784043862767406377901922052303167800213539400391642029584917911966007949529041245876719226627406549842357654273412940327616518711996172438075703900306896455086550212248675083289143580262511693904232012851563040862365755085673271845078466030913468035810028127972199406442562042576666898566947077783028731849398176325652645088914483099283298519995828387744428036479044629249058442438223667387289759337315984425242688902388102763884556122540445911997494299693418924768160015249900751456037260535529509094056798395733034923361739945151045163312642367349222790060454038305505496233149927271283701388231412369179603648273268369829085257533130713453932781955521467751842847758769131608070537776354829960431515300615364431298953555150676930157170463892204380946088118388033244494188520601375087848982245644564306583351321247046297975528048802199627584047254565655450650896990108066838395474659387325492616656756815241988095192772588146465233122817089236222659915370178949121720605380944543405785011911643470849744584909735069855674895143868717935907298272771307737697274242654792120465854120802318289064981094374229044857471996275294782509808871089258330367253258912732284527142688250697435515454751499985751621265314245204779022896955035185302826620748094928050568923951628060605929280608126723170220082003146253691601728108878298499061882526598099035706860312940838409552165296586696087704217315089520251576255185792013872089523665147996610140513388498448816286324130485060475673309575750714840364204486124312507104495978885235378791791977921877685827404364785142168704316210235834560618914046083157378560786697550035282023143394442118672145929242347135205442910104495920416905381777192525387152345151771824801374332098054536000003273403906792762813914859602711914924646224327711723440006666561529950065376021536386873246767225533207143299952362460853148490694719818750604286428434830846722631731633133212030085350436727057358551411910525602633940783588296792168964191011191224891686885931972556789734888352398515299993821058953721863101486346699534875255955564307256323485413591945139366376076926495818082474405578040246036742637514952934580777054998640679190187096634719794874821407764799615110247929650034902410365149519385564377925461502206407619089853313353460081285053810544612756461664466798762223939976401332378829873000395254331077449971196028314973159457026342966984322973595431993385011568572893453233273544502280337834040900983919374622677450489282701544428764891433428384946913713227253416350103036805278449693694337146882563704439090420129158670100091724277768825990749464602970551355695023106279238842587787697604417933400762787524955658332741855010534249236087302938095169013176196339798336566707031016100732093549010735331013807061612487545869641977353596565727850509297077010977060175418941128253524266446942964345436106703665792678519375260018038755867918168144966445183207101876200894925798897707610040749863270943076090942155153233409232341638011820111608397877353245064821616390616448314679178844243622466685170847525907976222125793430884771401375189633757798187999113458858223557990649814118850050088383281317862605633969490077127594676089209932295984026959895306355658246565309574585942804540599747085867509101518748956438970240554194266945739651931509078642290875790993736689231663859847951579388393615317806737004511488335044051191434003364742807727736991861633375772019769639623733526430599683988491979015624935606858756211113227029540658500232516809737867477218734118903002988984331530129607674267485772554553382833799422595663041039043684039470667613803769317605602789062271005330463850975721592995392672178519217123244689854371477372036087424073007159396983446964676214396910726207186825884881934652477683745844379929083484848255104693284684933645950591582421842601197816785739167994853264795663948227881977690722980455921495970282567628568482377223704382070221664042445780786697368408255447578835280958888162527599899133741748596250466084066112689131322972962450822369209794775865422915938181279001921063995781946315452701412998329266345937303189666576300161875867878712111349239539565378336842343973265175964188643518928110242933271707490500523117597838751247383748447539478701746822031485697615005827782708931680909895638914075244891359573552716155638758851999107916968985839165836894939994029851445699727109035569503645945337651161212379435931687263894681412998915665919747397254728425471039921606140073597692905994430316136544568025786747831952805512849363740428111478009612095544319352620507380369584295165337043112400651531955919391918226155905074201015884738987271437509658782890677505995804808565215115243029318984715187728490669847054111022602273436345825588603317381634972465414044181881045089031573366775521248476092548969657039850974887801921333833123207823816710769051839239175065743123545333150133819308336791600133131063406404956478498321405378087044274914372823756001518434951560771109096944064128535317884310105116473242389623656099988133956249808332809169101133726730501841803255266817162255649086137877285513833258332015262837085532258855268161304558497366645080442993749496571193187929625615697021163631826896548503915641329788923168652482553150304448863134557057590432976280649093897293963364110575563927777864137214636678288928735476348068094556928114202303929167034946282618704053421944023839963598928709984183633354194887829753168588330079393677749082978732356655225066328855807564603645928063880856417581690153135436751464380135140079978721271688963069475172175801822340047597017920622016574402108241942298846028847555595286778684317235435843825563781122066086971210759047037378746903759324440083500667936820264093013200278746834410570877321018252636645318188673977530972489277708219864319314147798904901711272737423022392621382790077599010026598702146523645533757587986226589851787214098101183503956649800620175507676186160900210856602304323489086645712140113617457466534110677442060843891657665558398123809289954459099955283858470759817947536437377746161723700289575001044822999912397244935019216586254876860371366642055669289503212403475698089995610259759717448130584761280578775852665125892685117742603767452159608710566006428989494412860779410433547010350888997390612727781610980162509663218237384502344256866375165672254309793934502791391053732280549531542774055227922223653895807240768202101125168385837019057632934283195948869676493438446450918293949154808123106146249302206195096016666236889358131813747529201579090434983623512069061546337320648369938960916961863926419336539038034759998589146275224461198831630675226586491495953298621281554267213498860608870153432433571585104920879962590217214410830437232651324565005661246842260884814926376801785819104011245562943310183620226239039131255453045414257379171075934706365085243861952869916557308412013544936699636811666497300758066975924208185386873056337627144764932676142493742759236405828514703084656411742454018320092282087004799446618624209051582633556475471316468090652962839302283379474568160873952472407091788644973820451110223219851563742306834965823399062103855692534845451224187217944867388150817548341920932747603511461156913677639133054056647772845744121260618947801303426178925697686503108874897711112503546570752509050622778508275241896338011380174237641536194672157971729599544995641009490301646082362129961875112000807350067334940696267051683718415583957624942330968618595595367575288355719912994358180321098918180902577356877030945058609474371342639759535013484575057649931800013992762438699035331475105453625975241878217566072884221486452926456130176953412760518834648775323861334876787188768815702418030181226796310848431109260681982244206731608816509853832101297616206442889176903461284214572790109345724823778857470508518235267773821510808567474558820500962268731276023830340501614599053006889690397123017290201266115750678964185672629506353933104508876947406321606497164190000039656641410085354718988337662893921385823272423623103384046274801777084679171538142734460444364145081837872653413321521363954092820446784302254520893317919110522806553333031629161365954975363704927816640034055242421816630999408994388613516495089300283134405434239690813152252108617560748552348481214196139824813018607724928287606529645430305142201698649570917413814960417727846151690653272057106995097542283406378514815475063614597386393715047741437295720992814543922316669507634194238352736443172683143959379297088399014988965023475148124277858279118751674676948589637703620577805022826403378500927540960165371735783604280775522412589125928952931040636306138994917032018035598838667394650183680443241796310403275607291803908993053741771453699671357766840503970112820584372127414096805737287038023126811820718166084288026919097115123336638610853923892471742081952623078459755027817225877956984042592772304933347591606323471785902634652955622392479322145357291125244328086425065918000422883891311452969767587366893787599059546989976199844733658542244269598725367919367304888561901458434512519674815600209117446221665177465818261691944200799842672179816849056661721023758096424297166099558448428102470773318423116143271034716399689623546643355771606521112430277444132030929046369147170159716908469770323303417349632245425138059495865205570438635654630592400312802709704645003952138014459190883404320634669072950855235127487035599008588027587866013483846739951476434321733733351106208664386809217821824385683023626239787099705187254908910440668471780301029182061263825525810562106247311992013965216859814380467858075772303052612215979808071076248192269024441207133554239642557521573246291234815697074186131750688772024682537135668223944737061974278139272804991345221673250652358708369036566412699335302317334254701391470250845148834603611306835449762812876906186635636292096248727213169824629923698569513335867813731236646682926697019968433469270096757912010955829389568213864605772696184091330422147720215587554652607729224902059881712377679443592977707156177963920518625468583845883352675919404009453034778087815560079290533744039303388434371030418210751549354514658119332330541396283399829076387769216069770082732628797777476925442178864323617974141328544816896868558976647512730863297998857179136763513925645547767469912898384018743816114128042383471260653039769445295199009848530104693393874053187867797105040971836504280120172739594926796935831171781028409643204546831967234361204895601458066797393659397914111366894114747801895199758322078431179276100553369337518489113472729404360874298407391564866814234974337007948302531456597550260806919905706489638848377465170762284236412259923412470799653318056221159480325024327736301442941574764386104694054090338815214094459685874923147489793336136315631371083629217944776345218077001994120624414559503238220087548347717983686862383162651068672852604647450246629089366090724320658073439484710975527535678241056280412429295322076116239112428006941959896646668214383069550461193307394711040455805848599088665811923499005445580232660613893705006028701988475457374236451803608107317490005145615822083504849821799274483369100708800792314324987461671853379449894329488602570967368502172856641980436687260711002716676500086559571010206608655454717867618071539557541804884871932533894285699503730400459969294864388697782350221658596953522453258127940552294743696125515022026002102177763251448220915388794639982204717117173141514180208561929415713917892176599101389544036477775478817525515141933993508345419831682524055952279925178027428540357180676050764692458699321563148024779891443500036409267095773195525832954086248879818149819423768954658035180275946389445632485852514571371644910129823399082491603525119027769756416068314371727746651324424683170257320808428054325599326087403888193709609465214924287247436477872535022405102878924741515956814097725184260583827526124530612024214670448585329847042846519843372706365589710841318500367500692048155684092960070229901228825369913034243783416205878832334458786428110971015142262211943160137861652116337743679410202614854365722124443361362842656961494196813731379947786854275547250461465440038724584030407194723814947919213180632972447479794445248012185575126584952772538216993429203769005872816867038106129442178093725280994840705325293364044007452688889959073282480825714709385345379769209039613178408143390356647891271796110841983675864874744318854106919511092009265400456669133227206948647715815431525453590144752663746497028822888980089162305821521774613119590873042696576921451854484449447691634346981615861728920959417968293859772956330622631261857786988445330648285346018059578299438324128920543536712781985704978248026921189971746431678318796533969855978176290998270753927556194577678448790576373049256272059384302470462152355432903308988625426755640768756883112219679217983681879029600640369532785382461122523895449096886032639478778762875413149901327463698705674370982017685188589873117960053108706757599061195210882053091057651131343868760168032793346933253338521541251615545766382405156134264075878462056906719185487166772167301513002064716144833929515174031335267595777207001144358825162761770576586070975138750337282116016754880663585359307406790006960659087255348857053178898698081131077340125650542841742700845728666263303157012004671443607036769537266970741954689123813750309883204746771131516404967601646552326955850796227694926606694769856412275207204099462276704582863792404395120994150194529937612132337999754785441554669098652132626049310848848475236816016074587930283897099157171914802060086952399484346179623820278829201338714694991278072146758078815782081801670889109442362061577364648190936411174368562209522393143297336289829058909490393961794105790490246528321083190674215991785456820691112001368053311078312917729180708881953436625164788380610891818358243327414405327412972701874494254858376682543350135597658808289879337157527687345246271307358045514367755151038006586114065871476049461923983500723436976888928248631438106182546334588487397784085530905716578357782982393820272705401080164015686709579847255373414837985626627647688270253993790087191105247443582720259552414342669786164888545507494680186871507271116620702778629273422160622558087654938895907743185546742706482113373930754646169724926322615169101956181592066366847943538893102759363861792263214671278525855789985962835990931304760976394428103853222790882839409141636816079283490707387563222265368317035139492123951217410184347260807189675322351027206538185393618650252284642464635872292851377081138738935410049801808606906444182075367920411163658273368722232534089211728298914957322931148625503924314047220585470695218441869729557310821979862425955345981533408792379974356747327775671927712056491434902743046843772445253651944163003900177273468282805646473450306472843567567394174530348111930359894629528598469577532773843449824193681452504039499726769921113690100246604231070751496685496081980681311947446000172396710687413556372004724073002347164471049884864994862477285326758919852872503116879545425462831739601104992421261003364712057156211276293635505040071019972342355141734231111890287587503692210183585631946904249284992435509936056928163957865724645573737908694275848761713830615561770018331815799516928614855979164305007428390929429328874582549250471149855770632788578624912787174887033479746933466003904329359946391518817266632720917850416306848943853035573177336068093748496032113090338786015026509381830081670674762341107357344670497499092383729677947958513768995187265179273272762089529417098004116433455809729449867068050999472753648845683705338186076545498884840486394698209740353161159781942705752083706805926371698548610620948665631423620282780220474225984822152038063340281959312678302763041607379479695289523865693571482960864098977564174106300374699029097533960119944409503020896101471483489585638785169385954129333892943869418091734567573311202863698831498211754028682215046952772210996392300321459718105644153403789181317915471428786131810389343961268563577748915030953574466950729099679581182742714200630731708337988540786687195466130199143780432223265878983802961687940623911761474531351076497773686633579077394629852677268960400179894162624672415768150053623668875744990057572878959705779504882217825281777842972728069359592670058097530789067250544744298898334841369502851023247310941791503001064555525311850841973921112838384780316347500169483526397225723360760477268978926367000556304730896195244627625023953759602251372580642508555705163786976987365536686437050739117155174234952577410439405665876985290464709712258295268419243467720960592168592414355617390349532506535524564971492007191970963068233830153479304448054639727605535472430748406405550725153407310984652938087226714935253717121949404578528534826578270416370933474403849741638620215356914369129058551196473830074310161174279824736829169730210027648434892914289533932994431593573833121656940398218323980840495265083739771728902925349745835543314054972738931211645938930042556575440199082146566801868511429775298841855638641543902743272908574387440211351973914855362266752149235992530696793181833920814584209477298577374182258130282743360233153467844646987344670143064766154488960180651769496134314376924610649144295310317979577543695872105775906398624077422530820004650524655128981591949462092021601233086701273809992900727027702640479703693025092008206556451663239011219963901787272446965902675562846844645262698077274720154006325122581781103189077364922642613559108203119813672665528432380716875712585278880536507408174000265260116446904925609761679620604887989000696662082725375914619120032596221817417336567017827371153710121646818543697868170234531541122478392599675851866130859725332679522279565334554165054155263346211712345793665610161879807762825891809063157387791153279292430789830519744147746598371131168091710735281529901252348832495424384850455592296275917956442792775981327111768269879132614979569732416988836438654488362743923956762350693177511968463823717758552050239580044386587068897221279170376049074250235416048170010618584054639649065628246890063909814037679478003686501785244602109068303790137512090965274822978733376073778455740224753992970701596269345656075433460607339765542914184837653114465384350842880167977005314309299226053111978249142426391261431931206663271748718894540537206688552993332846606097431864148038156423368226328034931740691983260440196569230757280811648160694790504029989782997888498325057530180377067466884873664382040114348309753996834662725854820165444209546663103460759531046878961473437731850229868781313792920780374191466403379918971095619514371262865988514226903312121667000839915217725370828434897232184731205440350481404177620315335073963712024211467128594267845108186213420063515837816616570690523216861293913558942379306133386816434210993024163253469370627336964737034133329523628583387254332895912300270567335690562301965192959402288096128939137177831057716700826671022818455280388496074069269583272945678388051542142477404789380016382062103568442989132807412866026246031545880649177094549580145955280686012873285627914967531661816957705865744763358099981239115171308991237415579242081575968112059682656161301038271588129380838210967184953110562941245156934779852962329945487337658142428568530149244941352023068859092440201193668704395839438171309348844443318754384064976558632361114715436117989257421206430494077883651877198838895244524859030842501753615223864144079879132492608834020367173101291206475485136404395258162256968462100909831962697606602394663839741385831202228394394435271865380593256701577433907712856789109541872147499845329160594009560136651918362864374488306417461410977902540001001601099491654058391246618999230826137605353996858054348852257059172236564565912315196480386552322995479877518217769143641729277835846652900564537417278073412153862826384371560142612166138541522096616092699470704046934890353090397278915613922405523197453997736689203755395641570874758347453291601186466909781311141884691156519669017847844537826891436123112800381996560859332252585811003457674534317735297988869660336573321757307974464625952529595540312231763606694108784622617921140585743514352008147922549215525159972853808299671843892392385204455922566930307580620572561582237563213638787006078015966601299483165633548907826539235389113919299128836904641653365638679115272326715086446159786237069799748402740727818510803157795925946255323088076536037245285585871627509142809044611183109129542548679672322762952833845447973232462621934161624104367377865450882271975836326159271796761578796469506723650258735401051845795753948587476290277331470640202725158363255477176531921363190530956303016863586376609079081417048032016085944222353792854264594143262136450076518283075971247579578145635648976062982369768321959686092270136449037371658209208427011267294487003827520160631385104311860250349922165594055320510655361065498667892635879908199972297954477059206240079999171617778385164626305135224348278167225103150947710261557173368310667144988106096174695410990927149041278576140554706059477552927450730014579086717922038039654583171739846548719705110010753937739641680102322005219007353534853733708077827617483587822672594547264254992687390754566347566011961037122159377725440969464874743083309787087706221305943779452806844390271735204126258955008550545170598025384018953260002172658971020450795767919435099640540512495879263878777020931139292844247085634816593271033395850364627809934054726542542828562686170811934265821646730796431221796495824957586606887247444387258395009614790184345434059484400854870737873341251862384676512734126218026667792135785952510769267884537529304540708918032084071243145372739944688102784213096485450238171179350683150984144894701760955074550128751549883643839623889566521508619053744154421778307404301601239399937685416448356134388949215029730969574892958090505540771014099801819983325826888930558034431776373675515083391809802105125438320014580025261571013240779338238827915502137885324722317134410658058898837404941905072390374423897647497920260507362251617045977951593560202125309626670191109377898573966617049671498609307571684589410277458058539055885883993653079686654225388452402218769948753351722943251237852021388734259211291594423597790062700270429736130757490705010759611457865854862533411744602436525661719730688840178404803719290650687393415869640040460305998398345022683009647875657847679262366426972538451091901810811033906798633477710543811608593011738223629390498369054295219632195587493235377955984475624925448470754987103503379413682272359350815397719900602052909406355895697493822556859649565500400676239275479317590746358323550712381966650288498774358973299120602063854126889751064755300548749729076211382862108800029314073663669120554382842253907718961037201875978384822780951822026097567524425586173079722868159958799808383589387177962716723658153783124185164880107761856484570014747231946708575717679910313295696431251630378540617929442674218537184585124040454196211347993706065950371770414218671879865269538193004341449379027274252355313192240115285778975081702657002669713458403291486217760971745055437842696959096147567149905751026158732321960044664924795476424909326132015237216326042079797290673206199411576699622376663508162285499682761688003603711480768892020287842551187330319668193270693794577112217098466746491371127160905409503123268056302325749482511090055852459796074633128458903415741056661521133772691257056895304920355710832668690320702318146480042264444942896271066456199714592305786747921125362808904472169063432191709582590021334149806319100455462433073001869917623128613470887928606095083003458310162187614627701055586004960792869618335268608901559286023895710440725625992125926375459427477498068363438859028097876930258078563222738747822636159845694559372748016724923832177148290789902830570630119028463528670250620391849582851550941341547982159455719866760192129811906598723947685639455303428368614589253000111105513995093191508298698358488746846456880953083582988887476607136693431420158144044897276787319974907313201332711293240921052964609347807347850439357098830311742085005968106054120446820193348095067717134272027744241125405910884702447365889800896168378703146824802260128490386824343894743014571784699397906711223151687099117170960847578088714333002521504657368552114877410902493174061932188615475401593426245491194365309665729349035184615939950911869819978520441710466144268643555891263997487695425029727982695581808027920936563817324749432556980866398277583863000644449497888733778326195411380157641511960137789970221732496365862602534410987365128985464428326350492824741940494707944548077792347223074536786752219743859592646509789713717174406939398133676240620015892925082022629496557423657667387502252179880734999742040360740519989763599862173193424871349311047649344662037463907975178193310673671342749986646673774546096543583397109789309230070336233934249031746722457762550060579669223347746066589860957193881200520908738253678864681589561413216558982169019325352893852798756580943855833019113480566581105671547034278191575027556437628967908968504672027244730301168288516546194682143303447300085262957188475238321819982090641207121829698437296183177074578084265969946370070755023599245438143589514132361853690961518117878788014004724775771350214702865283529523826472958666388559934282167192491797350060179454655503341853860014029673439362632074498154817882234436630472732333495896622671113717376822456989741517984357736246260014968962282371141236336246194475650264799505152815685498781902926181286832111670656817011628966127813795054335493322919776567570967343476169104088172543156306473295141907861060866962341899347625631716124932280427010297017633360809180320991141171623040016340462468304256894229430797173363063817451291875621958170703489778447275119382990985239954999295120009998557266418482865179279624175304022205103814859927484685038420194419165786222120945940880883490955100299780086001817760518834258023559399884657257279750003847862882237577110993546885070528747841460484515672623621744066395863363078442860282615476581810808773174225952559333909979234935829557132182309137005494206847138608511406484007397265242779136753259793398243174855172698015110448108733799865929754982186493199383597473637579711145270250123635988527620482831964867585239164390698813042361418102933905191648359166007518955774598715634012593981437091834097763987039249494644465045778201366212290199658157996415509514539722529448705083085327832604395374972537406111214564901482666180388250283781663442374779103482889753686339822681105740723997732146853592010846627441370116264003305736699690532751974230702157218288067053865065458362274306931008927918538843312979827333494018652958394559770434077946309637792525257715252234342372590784112973916317571304371750100880058584467258938496335855354463209092806576459920437334406513722703959341971499757322222293974479310327045442493256638840857358447818963040446936460660142074231156524980017153255208172812636110235371957586703502979272534652231897760537546886368024043102189174900421960267918645557612457201557651126328948973898977058425949078955373168314017277761523699573036385523197746126283336806867513505974691628023192174152357491898464464011331876858404086667177501661021226918095687688237108179492724693208418039561835032983250970972322612785165916008142157770426689328426195968833919173625281408598110915022578878433150538901202756727818599916749484585573189362417049308919230913370932861528955806727659190191806624659300674802285418100312586565238602189967027529365123285102759053296411521543765661429426067362301133426960712694817367867235498655570911531182218927457752119634976474051539631914117380794534585720875557695224746099736457296729056104223587300696028088736470232949026354467185694011135029844805044276930482371589154991558865348865362740273334394904183858189144213598170419798859767964710459710779077003136599752868808843792113952832291416579053262336800298253694708779000518864836579974024168042432046498245124237950461513589512164373385950112383985074972243605974639156426786110020729566003279953834744986740235829044459395346877587363511675268005271684756716519297257931515231055993645919849008538456555904076336888875799244770994087100175989804964245106458089099008723297784528201252500258021566133175867480406241737332034360266505399704745864419199419275963954395264161564290670712196268636463713314732456109784984994864536173503339745586707676356239193517052745022872731712624648051503722678782183920323011183985702849884857503083434737165208906764019024249726189294570012119878182717983782723008844821239539305744367356235998800210384081177497591223061967429002752704398721889424606797101242998029577808520872832673769085235145347212324279860004988948641988592912450748153501132693667526238207306694365643292081378335188952377786444076417669043810568438408369882649985443369877093846649928034331264125186408389718008776528311741954005384113284858868114816601144882155760045488726722083866924360090125090029322578253268838969511177056934574205554195055420431096960486663897326263606488251848353220231083957130784287564703484995464698843455410959352159515054691129107542478303800601523336056961724352963171446831471555759769524412606781920170338298677990283531988534141595314691125240706579211039865640684944329906947261494496867629758124611812326394234434938174366648337640487924296116892900700174249685876657271901078356542486933247584000016225070338722221490795937315082163106918321141303745305364608751089969531031279531300055164537729973421060414676108714816824705806054029582842436732041389829795606717844949511884757983331899822899301653553214985060987230954019250036112020118550850799073880770431945481086220358521990166955394732540618789276802225546671428607554437581082276894327657298304910244841250304007159889829851194941260729375742761396550706462383969891075702793012701518728136814410597370782271271430289918740567190373831505410505254459328758967054308439341260159680647298200733506452376010218595095275820553159300821559703506710357268081828397245162381064270805114360931797765602795661982983291482394581832166356174477500266573022234832780730941410119093889740063317804710921555975938374900990366604938695145911997089647085719953737552551142085201243057817993764248924836706442049752969395125664119819171390230547630198276695704937549691087310202424162670484145108274861555594459828606603506415044478177031725779310961856406745496616556043350364662963531052728849899659334994546501305820227354669594226487698269251528409397276782064257869379214236836675797288356549020510565853509183172772545482086766741577131187482661139533662904129254159103030725689554398803080915861928999980045070969897862916830777785478211608930190252566508180416191626802499995432611187134482807120201692853593219736184087796508975204714557687868717312128358434190168937202662379345072786387267610323842320763106124664779169007592238674786443314193104938024725717513944221243400171577735514846386097780967275934510293267535628944149097652424249781740816405998001232073939422828367932423311474857931895308564092642295286457778554535427575035369246797140500113223045882314415843279268819849031857885961815061688876091085019480778233744282599508772562053534301349454814333904022567190151654503203239229015603974790375147562500618727813536153450014540971696665286409956227057745349288431597908258804724226268327402940904862707353272579737890481602222254933636684292392847467474266146074104502088968162573132014121632546916724946429184889261177976050184050459711905398810262364124860517698167279895230780969963618302862799910669426058729742145799783038563716920010598087553949070741709197291711404524022023216420506525012080762283951877095638468927076336467811040805726469617583619739031458227758093905077586881174638015024458061248591661422280773757714127023016068573804425356816448133796495913212092506162177219128505143548502633616411836461796287227021412757708008719748206151297534294946578676949919872111327349943119465046899256785548838800218622990444288888881036331668792433718729372135256556370541580263251442890817254875533896108085994212017286063651840271078417500340093164656847705393118666498576021090248165825600359391381827197562568788586370779172703318633447284533288027867453446828501591243593061857478952575374195569405456024578219909542249085986617301816798134759979098243633809140561385069228410823947918870947854823890052257722412601447688808399500151029261248438958409617242663346978833216854021764196060999154993603635736528360972156611435916380380815135442223262259015450949752649837228050626848627950793350928092074286654167592729171331593459877806386136731631019288167251904761662272111476555725620902027386835009995070541504353704407868775010277356025301701300647259624875616610666292317057499952096484686314470497753240497818173659733908415186354693766242291685654354686750743349484245292367184705917883166214968816806089244638149149470906365123775703971290046000875614024589754138556969739388995652445661127737610698782734780431177528676883551421256148263386763309859913434607273317709218431999971672663711330053405149877005977354761474626506290068058499468335106717027652579486571712651619277975337621033342481692797255048626563919830011328974755799779431690803551785289255403425709807962466364925546978287439258621484130721723843900978059659098188218919239374944455975352186716643656961632699352428882971855535955904941319711796888095371499141358801964735871357534404647035439948481526613854210751006814964762557210580465143234536251270249391800095616253004840808514948400370974550222492294970853084610894467609341017603607267885075555123602053719955934800066753338051066466941636067662183751865706884282828747811066374029020171306333970794651013315658278042568721465035492118870462403984474021504517403455283408444992384865575789869534427056784492277059538062189652327440257600725610437320276317736843276145609885451654955526983008739419540106902851739711810280284006779791445866605486019995876879415530309267452911216782162175188606546862025018815072224204054534530811948769786737559951550058620763580560160704547978463026328289302181684014810942244608330763686804932567417808599857104548387396561686740114711549515861625682697893960364572201232235384128476928890408387802361800673747835120025051567941146071854743170509697703639188950290175684973276171007307991316777693534302083632191512357220142062091068875911670085142289347803077592634359308180304791571898165229546027800618933013795349994289216032740161955275810257784298924681568410018041171499716142767437106001040393476425819921539367843314945231878732134662232775494459720574846947984729770446070977287673398679376210320100102863735285170880483482009054507072782823049753725102600810558060539493528092652084975083310192220586719210711259140908507244084490012138821293231227565490066938554851060941690638908518201457200410533862338370017365299752407542243331923445174322136625098250548093716177912988258321684297033181728878323313730125878018712139986161259397319679809356941949185126203788524879459562678036398030496323921473291109454152039552345231973154205323790446680253353688351909256899367052004942874258123315985363151153347748019424881979790402510653250088069055398822150367124908542750213407132711553889853371235042885949659899383609642390822929462026398933093365003645407096779698208838920921641340599480780520242741008409262103881882141373144336665341022079058490513576384403384494789822691447043113879159362567143650979579075309446550278545003359656244717275990326354849911204953313149668741735169067661671477737336363337828649479916110457220874734819548656659132778851100840565492522306601871529569950567918789414004963349920391822180747204047522414616392277462226529591843432978225582024370648550653689597229132852992021667145621790232323356908802789996231844060586491977948691003407428918174397074273026177738754815060060344296782491378862580609666707878561432608561855918002932622589567611952810259553003341093802950665033421320954515918150342976762636671685000278480080009110255633645622127305935791892987680681762447939980033225174483394363641186913384988631713079865281180454802067181320156064139995149075099187957862828520783103048933730045254429753345246553500423984499756655205049199660794883619676913676709165018607205134285645553449790933771063488186239764640137447865216319705575234321259663306572204822052676894063784593066996644980281107279036845686915903385874949945607393558961014862482418006436538352497932858425314935286003245122184802335521750637546457227721227562567812665525471240842596322192361487826931119573578038080662399964313028923233772323524079130654608912147290658124592133135735692171609805154346064745253000029592796037996839890394657219067830436677733440008820639503354798823257005067613587115997685149858623533760802106631355691469068997347795137655530734967380486439698010266895916295540139526829840063168229928800713861379159108282710309486781389287161898975135392868366101535494462351856036012751925753963772766129173067439713027341732934254763237932806612365135864692851707995575269808953162018932382124755692102606493453967370967891983029228604246684558370741902758125617813399607662583523293313611551568196303892656499506417915263521485933469862679022895373134863185042244754940605065456476865205094690189641213994520311674896121437307466933456483317236500698063491309134623141290713553193993620520169386064823074175497795415492249950550106837559455480401832937221226122863620068521623529902689798236366174941929662658094640801449089124113134113423304033114119580681224700268002891876569692753541468061121523994032754954232927991570744590524317842342644737734660651988074008497101724970440875607814396686559700215590628346908838108782289044926820933553539189110970482541582982957362948386445373899957796304747553165606445288985824466998500639576267544514008562815623448648663678184129824391027124867019492619173727864693309569736466615053493542453142786518992789898884990666817901434575339068380163661472628262982360107939531360856470359980023704820945455221827536928592725257704722791758992367459543078519528085721299868363166920866343490258828384406994574446524184655789952480434653035456174018539149903105240601774906774548200438652551227127538837298059157683339863631579384233427710961044682430446106838683017200322730313288338475876383163385160587499247212971575773580371739970038798580967378823339543697855847619085440117634395961948456199682115618760458877808692601026282103546821110030368047213382615919929703857427987485085142578770876363262584925436347557198897088942144151023271831794470285488731700427528591043841691258503682340426289492841199642758849959724957965823675913738841053113677204497276431780727475209981358295231584694932088211688244283838387657503510833457470651347540703910193876561056106069182442711994011003730499584287900836717912502899463534325653858694178835479354509301890780054436050439901248878511096116919570112891176782858837350886442454827668064161776701007885851515698720889905197865136009055852483296310154699176149799468780255771049329606310949343277069932577230676287676330003594128154237385132222687948926683130131355484012070935070686304162886486364084483512565631645988710535669733123754534106837604258595428458417625730861376050034466836135511703333156984492389438130309690491786950663010573400404181134797895752869692352829488230653107574847972994543490146359324990741261588383957686756587171607534384439225938078220160728268560686102808739444664821862247950264477589284233042760698898237008376334008814381317660500991769722868247572640446664671909961761808342182651251813334341217666849106362422219623784111827333933963658464155694748853570495370791077274484472404433445285782862575301526262541079869636870712555304785403110376553303596173019636387588074695839657975768780606887640880016797797584693742170482167416608585130283369517774239373050033919441507105590970847357778345941100052681136158688465885458154320790806162479248332479686556594692984909230035935136262637763706708464844553971514666467046219265863002985425917075508480308024840829169755208961612417813456690017324710846890977917444934126900877519165856506514784987094669697654076688309789529046939943657577575272323077238430765032714067967952558314437639093768925425033745212205566907911225004603816757758259356689843994341647439662150877317641242505055595119847424246038087987172620840516176513843672752438496216089638217638967448236585607011511340444418044970334412653195027487262296390404633647907139867166537934189973874267588724763840690868545511695496327197092091082226527268222453606036334103450548035681901882960153400206920957054980471562206947390251916843143099607108361028584284790793593508458689219529904311646969717432652312699725939271432773123241286068671490972812349059594056305334469966850371550315480769616974075138755693380016693521747174488397426848804739220075661194653025887020217095189972522255142123974746540387437273826829155827498928708633646048340916872509521109222408449935523713730053411804138577106856424076932850025018934000239532982815467036896458102203259997427141406394400823720068657053087681633650630000231182252461692122142309963961046893874625460510701056301440587806847822809783389136209866731841143294530481193014108087787335370698839553906624920024337160768100316673481770047703241134918941630698207150072277138290289142092177759152658084649205536744050016825297800189107336984561817471182367454120942479295594149664238964514470336308716229645943231624387867353774035227583358051191204761867588950677025497714443578443574660129650565844665059772815793962554774977244641502141881944747775732332304128185200936922726803115993816349500107886938486841014362816989674505928499936251924838485666616638319130819666139604689422988517733120029494972891026845578135004445226308136560533945886835630110232973830467969788487210399414711373532266539513477524747891483309887766656712281668934488120301868664425384752737424204796670010573672222194773234688257469629299464297732558146906869359446172746308778650683245464852973877174165791846854057121075422937611712558756118134975148479996474124562444760179197216419857790781557855767399237388600585226503382606361372669891073594267754167555124173326751758429567500110661485868198630590796393917056936504266397546056970748431089205769769775215308321166343999769577738075554251299398450696697485318712533691559347612720707231622847417400648889218246647846232380030610404345977044726536150425044604508261196467346395137940713097191309141456749393556705959735867542850468799679775120848892551951640541142757297793039113840181465880643923130111330320968593535829224457106664756593486068202236503044919689033824499272171723214603883136409086080102427230323331487453927846531094467883658942569794667164808764736073977099632241182572308421299048393267981272599320650972163039070813317385953771391119047510446064428976420282006028217900541764943272014519431067675525571912614719721362716694499793340201216172998297860933506954606783742138669034879590061959240412357756021578867162320746017372934530606321697593402849814028273982086975704007410931211723274085272141054888209683634210152220986996759963724735785817600838215426416185943626353932873731257963845724187807416658746750930256258875696043466166504960462020573703656379172738111523781309813244832420218128149557770848008955236360280286685794375714315510220265609887477496913781753737547491819036749147258540349700932334432086575284423772843264717362246216372319388089149555337610920498871943779976057867600746233662181045467184371909842852673993828624539761445400748136778493133263366570413846183518840359392900209736336172734571377807462451127713529244601905520836201785306363773264336839190367012152180815353273192057189377077537883880606708643292195223586859831583163835921553855921103702760825324423572046870849751444978573528590239375036317620746646379502963186362260919278609104765903693469006790463459584456975923621540131261657368157594973627975595456050440196466511656706082291772520958622947764258222606748808499173359352042104935835353867288814684717771088469095817340825355896407859225194541184337698191190043731285533235771558909754143538684842222482312869872970862324293516848539392791667856522215840941363863772122465983006714625626191142498038927381160104543315746263919523384213475995987955560929100613738543161190693398251549585920735854995871690516146162111869261920657357973968375271296168763599694321453432131668644608079919275749530904071109031230546792534719945835865937408508791394274330409617881769464902441716109399961990162301008462245439332703133375283601878644221316827166639984375062909125454213266672873607368883548616540364614184002797395090445584641934457487832298477036585325285202966308982008217438772753748960927278505968173407884562761681234680002483915893293928488930616576963035576598551662517120581844645087724805420012029391645010955063797090679810169289363721567848385145085636539729879778095946132557934373317181003486371490393066452215547443044444877707913108449399535113479408471880495337084663244188601991958686178408635950026487756833279277196125174671551091259436605712888282751761930995813646440087775532628982333733935194796556920582355527201314306863574292917952162380052950077755718449217886572067706245441170687603986421539134230162276307109639543877496290656474047401100187182859743996454616487076845756422607421674822282403334403869713989826672797489234636635028901772686005266171702879785700400471805712509038371898911760079590951538053955145985794837686990251013216969857697616433133382084844061125769740696942149054385041545249739727731052900526154344250879237758356700267218666031215501527621114578401508071292425272954392869958358694675884501412898049044831672936343728267418175271074363445683497095441542426365226463758705956466515331205114020775543084314293336640339154317152197230012956483022280708325624649506145852466823359965837541939740128000338185901719854807669944884230350218954026017927922970063804647326370025139394927471033286554418284486562245050225605875796459516431703910390464981091412389078376197965161022969706818190801905211916241541914988485331236414142708833474786199719395766122598523597772513006171052905889816788450206417729369471765531416116963915021040679564357420896425235624495480885453645523685000154804009624073576320132459047399502806878392353411570787267385077492729264912663107344979756785705160681328279219825431670697401535764717978251911527937205643792132980782987705546692832499476264479191047539795067372711196701884557378328565234872881603705356426538731214857892066571517344999269556629753162186245313456625153856932110139917305613908904405977360574515726048221804251913288592132846694984139031208722201357550034603091577686700842301556492039876821796373341053665684426666079485734819945707804468240340164748214526468865486489644131264083234776337334393829303488600662590593126104971779464956942088853507648980931235480088212297721970561693427570155004104695286487910396562353656639157268978300334391416928508811365564150473801994784904364657226407863457258474082527393141048076718625448095238506266004569476453921552977403958956542111046054219558735706074229881667626997957889650732869964508705636889433447265432085400339056317782084020304478205248936771348920332192390225711246121688267940486847289435097156272763874108451376268044838742839895751407229723956057222740650784670696489115967599992844752386552066717219071507511271489673937683084816216607913620658558732601262508713531401625836462843693979158491890509146957394816101311387938344259230112975825675743428767566593362551555268740912099544769655174340386411539340445056954766432944440494194004828903852257501885527677561392967997045896015379613269057524627577638171387257089191130843366950717102454536318359764029096450163410682489391291560002646477092369037410464957526194550837354028219167259334815197726104629858933617638818770887965026382095806798264438536386427293158468774912967724134858457597698698043923961633472912501943453862324192672572812805480557888422349800668436921121846872567058100824590854769296297763140690020487947944051922729043823994515964278541222754800603278415786123576272713328978743342238668004548099604617453866162801181534929566499571324656830900100961767655411280367738326130432082723504710616548679028490385172837253907771153786493357462489765646068652590194859595076952500716666788155034737248289820670792872497138810634364409098723738140696767727045412692835253089175019671130479859649139160986581378455463829765955533882620939750861033790274775658507812277954903833358273660943952707224144412688958200934751434559643107973424135413440346704324392040365127353001451385274766565965352120022528798922790705958675190898554205656278436716240962383559603285911805694857060138181944773473192851636025152744474078676078199221612149971746451430319412756647899795945855411959679307537580908927049759000926881573143705916644249519262896563216928050368289345728263740763204063480458774792799751027265004414645107754832202267609700106822055452911145289559240369509045951889788389321727584703151419479568270233529666087432862565203474444103152645216939711819189201077580161776603227499481769484443292167389550087285710858197539024236333814918263121417943487572586955990865202860846998122157509958800167426409339123011469218504296957586405814676984203578750934739377096212846898773551934113262637789310062036113594470208780159519683272643648855887319847683051680114693221978138242012047379825329289899743171744742600023285944410647062409765588285943713539545277205329967398708689784941493959569131700992533043118022925895530356846891590849219719978643607591545934290058666738863972023305884620170512086675708056690388733951581157120738552501458306370401403900585103544860152991736916398089354265095029618366823360274631043471561371348888144192711275815076570575654757245464064784657609315070030524033490888396482120814581557904735024491686168646886009718983609868203824863515286061484625971193882221551309402568638490309547922576662813932203746369648893435129388791304764186887303119537742257680272052661969350578449710518768967225259827482906559123636533605760470737539152726134261628065571089797007756499813643922614950728688040679653479901425095453408392533690063202858628929620219178075587990339841623966544144236791331315673109364511322274312217390220675927443661425948711876319408774947926015513819855587047862834376601503105506724847618770754711351881300789160435225076077189305921804408356617905912773760732132561471285945537194348849754422592526979999348132395385068246450625205412979297797896032847377132959769881425466062796267391067129204132458798164140508395872939570397480091824199321782342907751401209510678187910326944383754210443794888346705133905286081912263615284889724872021830068121621499047305877899471847196095164066288455261510643362277777866978952046105683033581585444820247654010230696507998323991603155256898472057895360625720144190760415915585221078648457207268995089948557623037280788949175384893935647416606221193139334740056859111233303444559971231695264260311877020822100427990855199922938992050854485139454463970753578175492720550411914144868446983783988817858077235610743596638979593162351014041541243106866739505827493532424525528568499319711601442856334078437982159027876139703665245251384982817400963249639153795195079546330145762701254973630579352553233812522028910079739666938951712588731382256514630838206716283268964310269560348292682238882081035643520041319485872491527552084543136826230415030087807619757066105148148973490239343546566842206989763217877580779906143695865311461741410060913853214970155417150765702794248763797854291729739272423651997849058384458187638368629238478305110968446439648428761817028713512537453037439849851061051157281314687394006477888790354837135004374989631204281364265223734096845986576327958144022478542538473904311263278159986834160911093420071926745562155722085222077571794857013310514570952020187445142502501369325774185119634753209152308777333355006335358154616246161186623351616968849058083760070382427278788376487597046076091857562621967625393614298572654041541702633502109093652085754415106958205675080592569228002722086786896796859019267461194710163920045210906621441882204876322427555691225148718338751823554755311874035837495471193560457380234473159834936265211928140579859299860986815674448329832213997713266226702830910615526949451285265290921890078834787323437773528774757015824094234817667016767761565767433316209020203071987466060338047201510894273409024288425150553741157579433529121318295215865127232442753615936961682587908654293509250040545512958086747620976268439857295138732311042398077480800055811047788324536802831441753464582312259768952443706098482607957755965796784357067377895627695990780169275871319565479786012850717266261960122323366494431069549333690515504230901953901903858425225165062507556265392130244141186336808058370576445298332713141522909796080154966640565574537572498993735740928904058457208052870998341796774741698342588688469774176498122340714086106940655097457048702482985043097601650171118670004248468045349071332605833311527995845098061362468070540502525092833315017000123373328579757426650850562597583287903097393565563058301324471918963857856600560392112711819953811121921601435503885355291372026625532501054350492086587040415091217128462066218497556189595508243086194222475080461383903626643611689687880329391049818678589857559512584209552701414472243850803224507948633712088608190048244217500206348031899764736738271380897163165465901503076551985740050200383452693294319482760740498604043436274168535347831123909128656438403522410675902021829781825203328281706823901117717829019319476889926049358863622646937957189485536463804188720927544451349786887154058125769957513940678024656550163775833761888073800339743071136168072638194458813938212819089585077150306661573044840515953697669121957531446347035965628976677454459448390403352055897431531938826332326196448340264491561733188050462868999876671079839642488224271704013944004384051522297362999097505162196151555800020946126026006873906651873912152000977556466962128535491003674229300771424542935309789917357077789204895300985939653585292708248027308755538940190523567881425609914714455038021647341041521840395802324996092537008258946456194801730634734620015540113781174301223037641034136904429235951577024619236072695661387072644377332400168439352266884316689316244873412893943926955796645080966530887378697995438733510080719023662204613701618846150012023060699960666992937845487186253556238916273256661511776979071691895464336813206633700617122640770058972961899546030470407586485487188040936586192257486428496182507768575143162460759273112894460886480513725950148888577752702812152025121776952716940343536551430018202162131583283168750513936945122318021654275907865631506025000714802760004899376263648768267270402706726103307516059318297042174009618436577703518194678004716455572624760453729147997691187427367596734789142954858447007938799413196981749389794139993304560170832815394134449321472456241799507957744148735370618813494495036874000782821729423083673388365452048256739094096451958645396314382435387027396431365473088839211413213573519460689143699145495528488249742504776594010637292963009051349301975622939021703979455507120822157050300905153103905789727102889099914933132543558829148256488318171394140904196541887138400944697224600058824708791428194939266055733003544181728190036620164890778477247208443588091620786908755291555140566749396159001893282845861530599140363947683385969291172732704261442155154230462723552804207260547578762004032804635003818610316132292595991937290962571600654637518610050835959713572134239099513061013873806750788315360915016382852901147701023145033559946414127763226736873779386384691707249593462075020967055195298156331498323751753770001061306400408449941441683684020030116068033774404184408357630053060790173495225372938135060959207832360879478040892061576934940887099476952787745511367152225713767364217729594577808325109329687652267970968061164121671844142997507073140829057805782918858221223590118294656445375929475335077298685095082031183427503029425108912855011001142091656717512672361952214801018333008489986077449446287390099960224510355299282780839135708212975823916765066598342287471567337512320520364199646531927766612659058031429401721404122221924094478093340761779018343384408034277127200257178882092603154504693563748140334415483232221398655484781690645721587728586915871994672418648400267659394972420848014037369086914494305583835366105235191016217713041404340123782779108797416788444981776252577468588707500615913953207177642966841606165415537350325860668567630068321705109572703413211725860120254075955873740478391312502203571228657058902494426822103662914861807168421956107382073254611781397954808595473153262272806995639567204148236660412817066784426121297130181264609303810155778417766384064291525038138787153634381257335621348835956878154924501787695950589437888627614346496715021500530481629637279899443560342475450312426803919430691575116864466099229962270263288859273778068761650964782925813558543327594245656357537165976804882488141815390024562988812349880813438432621672979818286267976452910349746576347337050533638934341072933378708673719380176599738566835432230261736000571313051447830366229866304921089255872818963501452022186582127008483503739754658068654764891761061423881151309962758638437196828843728635114584111384090550216374776735693558681194676565122171068126764521792305493598188764004588332159855211351205537518623619810821793271068289099315120104676819854865281947474153256279938299144825239742881479386766278853642303119787223952442350870661175243174440002748764282655069976181011550308112402026953749697278925747579938124446370177758202639681753715701923944000595377844168266297231093127631951101115625715048977242158637236954469392377299653781368680493286390797333542801752135419309291426008234403972008791833728118821110992904147898943434489522517851307873619853580386499458185270211329392679362181721794375699637732858336238138999473613375674702080633965308401930727476333290122233271644872750471846677104960685229624062898583803445545990309066019740925194654472273440702665794582623788615570926117856042112387801514750052098271419148795038042125157150123323822493081713752703369002942243908016504729041297524146760402178133492085634514794719508635736242662543626792871402982526507825203908445355886997891034711867250141956293083351733720544867287060207373960110903031201037267710228184007279489769549934545241253323869897618086141710619460501818957198822143343172076614559029571406947606455098699703090515847336507730078910476935599649292809289107329000240571283308650714100645381247150734985406834904639814758112397419916613833277382378514705873126907770553953285753037357787692115542460289009275438782636240883356438026659418806354733992420281709602385083114897433820671077563830081818015192856129876273247160506460216859570789920034363178287535272890890684019919403858124316621143636618994850857684746551004890629311049518503071120264864317730842776887230962595869713187004710409160177482798041262940702741562436226984082781135888095388327941659357911416007436031046101103956913292696204551733825204989426089002296439268140433585270948341067410639284320045314894670780403699911563642635111467556574401429090228992645290407422386314143773106357994295423222991611367810083234677671103575140263692864093775701496148839794620833967274623902804920903525142601036353015896057141101581503333521094816467555870489765300442515489774191797659770918899965760019205239377828711135187645421163842932633420539862789123399815475323382389634738395899958512720809412546182895827174756069058375635648457896833211260623963905876275242104095863462027251685488907150309858103051668385207593291545962191516190716202444785106154567478693553575162890641192900460105729412899171609069494110682029815212975621288832732393794341905996773719480493482556586645118964592101602716385267973841687765080813068012519591401816802306893481897717388367382404088694965863322198464037907678909338445764154025812885570436586937676104970295809975667984889367360538538849043398071274759592566219522266608808102288767792690259701041082176072022792419040973684616532690139994014246769292737444526080924693083646334960271355403530493368814582686802259222332987526654412243258423679803527564075584385164914280615343290376624575786990332672835357770217400483091259493911332326065155826123470757118679485463468692436885809735938020045867835345447264130461911275293195871333680053637177370485506604620931728078388596284890649814083602376642617510951145343280816630848719964075077260217604726927573108383462280646340156699516224128179019063713630122509992064370606691902718923662506237359536326275222356848734214259975259274041398239347837927774660883730948734162683827701734584103577471353554553693888285889374847595332668181729127648445418572355172578691673994403033606120607491669243066558214260583606539186529171345866092328312504120885009003009245960252931362116103071881657406800048978678071519046893267902604663257040784322179944076894433214827846085268277824994929342910691033019512659163044694480009687060573608905192059285579823869581637679868561947397841738820538090248744918304610327454072059627104017629234801985620102461529055492181140130093336012477305133441191073191910281191736296928981247290820109982475838344826946419798013344057545187803521465745408969962347092424511611368158046261677991265322385180619235568682253803834396355885917643399487156925064650197843292979763119373453782109449157709371123255931645343796638550017956711151457592348085872275979878232489579154423143057775081476641554740984838503026405378646519738769361100843181513672495605992483383895431296172846269024152897721684894323419230412049136236530572016102230816838296027719015901065475575882235326373519504333241729303560193119048523022305972734798068482042672652472651224629466700551752136535611837848809764992923176821321329686692063034545948762344782255083244930134994490351645442457308646353068412715505237323473455539067346465772500016839397042574339585394505897530923318585583225564427621712185290075896071427157122207820602060153493795130181245022128538740132027792127195470558689858790997989112353796232574118429228031093194261607880884944437762614438021687468266402271662135202282932670479830948032053993292144411399483759803945041833043009690690060580793451427319409419734369871799582462466881738575854473676279554852887877945224514621084361770262729597847062390941318096748704388392766002441902421595899728358686852449343528082588618272866382270956653978841356270343295622270941506913645205834296217535985183023763275877687952761087628565737438706241003198655191574775467088071732838243338592726863807240298013914353257478771180047681217707900599991682181349553173609539281958006370839937113858495786510345285122829643601314037640979442941924989076197197640162662113804806521742515037616974948673030090863032143087053397737536465788504065959258582679350377268524796846806892453072658913398189259397610062948573031573351537519090573122725010250063588757659885727002681378202602095197974614758049521845450660729217971403911364962533343628921955935736976236564207219720358304902122113488333272030785519834052680375054095903900114878649194886622094136411640940457727668980484793537191027156180718571855397729645973769850562419213740957786415554046612206362154808947971296639620383695644842611759729614291116442038162545021723668577355861782922688313431053451675128855410755192668488295945341723516381893914912133219777280746719240553511835141580087343457722688960901167093422765930996236453063208712441939843551015978960476562088555845740530102657023272011559291066055090546025381691327657535670921377061736372865372680717497320570009056464763281347952629014130180684853348020118746953207100741542424704846192886074756802691450813189078870800968685570157305939819949207968994958607339564037250047908015933225134198321510322534570902076465165646467704720905365490515447146318350000072608019942419536057552851297561363583704888805246323170076066849883709958280623149014033070312129995847946213812539828860057247200561740404539975995442358945013225066487001411884961211511329812632197730414432574110371082452689615538762222451230129448911794309851879952787889291338044788793645806012170604904269083230864543766653555784867131584177875273619986956636102328191632567191346523703165548671071367856590992947379544397548903968131849429981763131226433773449072774419445755028472520483575619431754759272259354195138064205996793981282370272452587307456088622521172908235641115421373011141336376105150297853446567371239052255420552564236306196438681154272812858937747075178946963109145092651940841487522748365466847907790352930588320066088177173727206315754532868897519789938964260482904372740171966922299820690469304308248566464542809027094256965387768659960752115889951343662062597182321344246500916084172729037810169145067599443754749957648034085131905639566644718720473854509531147861806529569726106702827898687716189251734220295412700011586767928282823063501450172660971779293427407400260806154868339476865174156659643610204090121326188428513662856511578584875266898681814658848281718573058839998786662022829613106042992236349817757833438723700027720373712095461841558286353436880708679633524791323615685077845298343753725554716614704225875057905361826668159719394458851890756599495480733365757396411422808063899766871142779431118453047165160890342194352142656474483523211182335916870761274520130998338957507454128544085043925438072814782723767581941702006112260745283876407755116315824111632087236196944154168622802670749138074570274930888891692071324090758047509720435396270818328537333505693256470951057031933332902101923318119198395169930839351164506276550054898089626142189288432753235416972020647644410864257535682814467202800345419006089088176495392557934785103814712414031679607968858998830634316876171595349676771305171144843730255880613778459207731433248858765272066806726391138560297971731053572816542625359787319836430200856641125226740819594155787584134775743555391614782124734209615541382341196316329625412031690367211343665099152400189102376912982355243218796965301206597239625173586526537894624500566561469812565247032605859271810798880555269338821941848847330659444495440457232144473910530374152710064683576529468316116744202564036756363980683883966485688452056608546344441515373558344597705562832458623765702522486499812906931190611762904923427938778014626301908068755484175682211743209488598542557517731858053364477174492099776897795583395949449582423662722731160656955677743556847510333724034717491409991501383037670739088927389900963631468502873093604452136078565018949006730519900961984977050051399990814633855652448514509047324956806647252864903235615954736477828755708820768118047635846375436065590113831619142262199169515278916151542336120829386558747844112699284309992248507379424599627308742067433733073329619786090736676102250024827796193665665736568159983362316690086204557239111014163367064293629242543117729783595854396203588319774229478475026314404929990052074600645693443739678017498490918616558756773768109585893370175077578177857178064660282369329488346380545638571155263739502785893122148782599207846218454573191807730261445666371057523691005422036027183214722652926138837457554394242323975965867120770814557018441306041677264983533588347034406700314004840947724458590663041658291223342571018728433590963162845941241760572211247957767836163525031274306748154012473418009368195211860051972275941158090375537596817190104054168573770539641754830457122948003289622635661580993786859327910442856018741723694344443587872975691816667938071272152409944451638177106823954817391874877382399509154563150425054017608949639699419127419484059203372906780392787622458092966684134347007471928954387036461751462031980366474782600862294331830942111515182776493631888701316559938074884256066181989319300937697688398044575040565908183722432566200058242726124505145810025216644805779798619601972226097937850454007061888841684821937782756142822929121894526601476380017588796916934894482520714176473475405546133327508214987347372279909340117658339872424539801377012400432373475803619845144004838178168537695560674854971304937503440818823084686998727698587446446515960336115393980252578346046741672456207510417174352688544030507854269787464837398954680839106907712088688059712995716797872810498861464182660818244598927339738830228586922812363207451408065263733473023031487412002080599430493808353759593240378755238353233301321981632988582216347624280956488841144855217334842625518445397190180773108197405481760357693174629535124834960076319915886039748365633599039735063155671897408696625452100753572279567174425932994070333075390893387596231045471669228842057684060000779551185493763282673010939024285535992319658670361827447672010726549744364346129561020459477386772246849840328617713219513238955115258914165838257322140721827210848939325142871730005924301937457950444068657292905982115328897537852271321361082439030508340506815371610437403376478368677025674687199905499984592551558197735949133818753962061575425071785618298164540676871030928371221277853862352195984723803755753395222976270023491894673764279523676379277643908248093162449303859235913066943630064202597212131258020252203658496521708595737907611387104735616115107619870337275248119087444520437358776517004676915217005705118056842733235437258512684869573403120108841501294709280242309318569357223865249376015566860795025547455257823870438762507298083541782991580470167904217055499476175425902900701896860955758788338448516793464660381481618477568761392473449771067144276207640628865568662875891924900797104494119053670928998664820746430850788010278018518498736646076113780148862660184891829343544592537546822049200864421912879489481138518504655990795978678452156775770401493296915607336752473205869833837738697657939863940738201593956671387366770714571360165849847347285414310658739306298700127023738844020698959551436712074611302036930872747120114072812062143075618669971612507190322227635225735543393376194418178178889627578469955352458722241203133344179820607213087285506914842223616132087866555039954394843024278061598600566643759594094291115798283336444739566942291324512409279592808751121123632909117795178454520368610648177067164080844503463670774127523605970579574706356319640334134649321534571285322590147408497557155880953226211841309055648925378762993635153175473954641385042201642235245361978773766169663278061122300869854405557083647391948008270245490988652010047494572841786494098612397643082465136365845281459187346694532802800612010077666179159071563340951632455687246188469169873443492524872335831769114590361450714486769165132545343319202438630595957420919509633597016684878961393590918581224422393846724262734764142235105366182725395204243939829596312189106362402760571601649354350949162254155921016897028278737084335523741131997725885102235130649710685634079665964726516994153719439402951498593165504701070173287701712837587301812293954325517738190264464543874311215556588731506413779379668186046725030306910272014915087943062135309738897756119487168547623364295234995825889856948519847000015339261697007022222458520703314786786165675524878985351672855351466856599798200130662961322252449822020920639827633883589997183549341992968078192556753036992955822847633047654646687140780773332534899894022907784497235722217039023035797733583118074964722120934641189582071423869249814473102007409514042870384597664163919023532382390099728597483793744715093916970057618914516774458437159265351314438447290998746472498418772245561691150307908484169655105814704770080430024541223779575262070578336159401010294408779390629696646113004400638354733195185410495088795504557365423267962175303033314578219355975306618603763106567518826201956854247721547868497332016932402598478604026561472214014896267783985989493290398369031291588319973764258589016487083514870851205516668071247877808193411255577219138401871096120766117100294867845080622651004511537665084095763130979432390604501577403354087268165932692248742965675354400038954994591172386919580326155519199929182514774813914159152228894884223223030132831352118888388663182451613463822430969517612455322057558296134358571300918172770112800983974443876617769678019154206457352266346071296567556571147890283038264493130849231046315347025622412461317613928766924179954575243784903383180584537742954590045652960276332383494530520951601632365907030747715761982487024731071381622877570077807376887147598442156836850033833879074222352497757474591192138995881447839862609091852810102382073612032687832844855287006044531116272334676153078618876089247626489115066453420090272508306074504736212710613453669509881392521562236382140413889901260819368774264152066678886538823336272907590053499555655854963774596324888084328481565796305825954201738877993805714248534273466353882273975824374533290677811827814337408690759235958765472525096027837331384584409355851837670702819498337184333236336597550161820977324642406363112838193191636642542940133235240327969933951753275724155182715709554293330050168238489937044666834771954113858854406955677679393589569832994683778166560265450126841782410506153181743447792677129440252163288078304957093534195752731169105222851352879409737208224041669526582581867319052885236119209089079737218791131960939440730750843025323014918334270951426004706282561795140361393876338883613127448545833719244990159100206870997899947259849987046453544307421235317938295292612959357500275757094479246375800694764108726519423429754168757009834084477348165376883848653895853063052038471936448489949392472879649069568053930437813540916528974141984584752376836505462971158883631008640017926447377415987439180314456398757524510074378005559161396140732515559963046494698111302823219914207407861733415137159809223738731050425282755111302963879829657329334503855175026450750248762729215966660627176955179271490553093982192961551151584850698823466760571830906395418910393990849229683274776050491313049414034061505014499504588752510619764224297370052864474034661003476413465016969102849726299130791865715020253310726003796960743078800180588336467929537179840413392063754920042097754902133070406395095056872419348340820555691271362245659006764434741455690322723414080001689594688134384719485725550220686243113507222645034815879408959540128212523211247739895199980422922901880064907935952363185467123050301982079055981229139157934612876064400138416332744921637157379258327985069072250979660471446003050990450914574051353114617283255402497927644412342964858239388823191737529471090991244995789254462362217719687949323343911629146104101284297843995292872316170105705575202418276302569432852272232134155987351254330225261086366937882912403995729701752542758114691432847976604466052796339327554637910272482733370183465948103272784941249863866852827434656963027075821249971157859340657209993912922378000806436931242911369751193322544152992892882823118376561200803433062271849983430895268526420540302465624586857767471900124015341231187291022594638630995276260086795738864502883517597174404322283629953994485146613417587334491158607193573901036715762321147172432498141697863464024033687501490280453670875080600331539082806709198910712963538787138009230025147868387727394274291381799600630819099786448253760589590680285980021907806092315763882216358717303760920036806522192518912395698538004374945728947870516930316678986622910837483654854603553590589259868536930114861738070286894048731479831747283182601735562417514025920254590192454616376077078131337544640698769979085452884882925929615078795304382792048933416897796290663900863936723564252703206843699979259620244698193338527204129807437275725146849286398857480021416642587025744388732588169049305172763683231279439070146277477116910540408829843059327013564684625323076757389127233042897438424912299226555712550911638591789280190652913819259904981817901278762180153807962202900796994558149226753657261377655529483334113640070228210967182638533283087799953215410256041452039698372150698861251581282301626727722139604863126202195369491323560227992422741916096845304459271914196023565163513437140702021597263981060717998880061461012010576946967304974121946779069568040301707818161807797256176720548799467284583143440067036861245895230479345559289217253300582034689444058990200947889969382596440444717995115061468650900955861772023102118116105061286251375263420127918079326305977885663239984019005727533841258068886778181744412883385294398158093147533692399203959810334317431750376355322564474451640471266873198774700056341498988872595686882195688708173708434530395963867232570718168336993463746053028412564658103620051221808347662037984866739876634235433635411176191755296982627314669616514871604289188853981433639631276434672123505978795211556413137009994593996185279490737850644444649336867502035937114640832672253031631541179528531685911694540604202441539836693013522480560818652271657780921139677718408244378310998715570051211656530502718372900763069488587476542119380267476362336118169514015868451768077339166791199542857092891628133843415651281800967170495331355371045235104729379572206890451350874221432446945634594616575156661696584731474542479518046760102729184586357602972106143674773152435065764629289375598421773445439844266767225083355793445744692404362354789193771346335389144250745181555609240355637352784037937843991397760094763478385715757263892405338390870588546767044392835582303156777786683679531406063758062141538000798854234383483129424360569001996849966609439768788319966264121044506163961679592641138187229641964124206837344050083402626473463104196183719182157776407959906154035888868043291749700170357403370649216785677062384603230058553614222939877984438412612756069691868915882966400726677094088215723905133135441813993767240542141156554342995674071104992183898068782273776173455814646642765639760926685677028707068284239605709660540430109904043872958316507743700313084764785132618379378664805662011162807687077406304989490052194473322528594929564767158902066342521080275592056344895275970743253992558477553659306442458042067639841396987942543601140524379590646454443801473693919434357586435838866872613308066088078417092398825021233007179254604708768268370795988054386613492443938419352480374032308972773808895621629445331139796203726197854972487437774317104530270772809855227536534048342235650490798432082298897993775545336131892717587282162600574070909817201468649148327931094552658844808808121497856518069080598536424242228628996205094627002558519433811746084083667589591362232413872851582550748121761683655178215054559650700349397422401220125996602901959934796722327855860396718300436594094250654977100538888274186444013957568428088828398413197447871663854561525798177617032164251916530691405837836994413907560426427452396599359388761241804507780080847043365333921406737730776540316063788466512401507099075700160714212611498759554891396465084962265752959546980358814802462027194027294698446630651720918269426306454660608939586417035829671328533739824112188033601074761798206159213359285607604625456666823294800175062053870802601884863633416340450361820453933110434827561652112892135080076431647389172666653224694367973948770953067353927047494518004060470714016054701254618101461999384414059138677489701158427336464774923682312048440373563067145277217829616240119947961998879481150661812182406587810296209325226100331561719114723145193347560853519260706358871670535218017582150570978471691088580337032221092222824951524199957026446320146865392637231868396621572230511690550708849936243461630106923108735919998287317270390555678016950325836064998983125085643113701743674821431567340624790747312051934087262539412771477952662044109214351247626042761873817963541171269032915398337254949285409066475647715646509431828504076060414754137763909670054645148197970810486245674763166208680207270212886415914092063518458334546011562662943648501154361887940302557943644163378079069999884966201322888486877148799912218016917258903556159527383607288851146124701423875893564743121875920116560268117485438900864469713932352770618811878047666645591413753249811740110813786359309076503577748751988288403746037614334611402908208624860221863936817453553942507096281560527169604614721851208980110090402778777691135655709591630401808412204355777516740189886336617816130060944535598986715111948958728310070643309825378731231453283224849267400020517815681105147748427651312997796049377919508547241025094900571474738071951716753843243782024117520381103419745846397769586527711276519098174552692259943383919870958780059417891938057147232150008273017915390508401528237359596805322357075816271718008666942146297298248722317237550883926097134506219475706041717003876661652755926487339931890090974716397087491517068849742848606975620191926035394732140471595369489271373713148804245041175170822587304302345114128837411704931767824402647885154533953131678946091188368211884032973696511746398617446804316173764453899072616530831477472146497214956378815748988109699109602528135286619044771060439869935051708280249136088832871374449449492848363165896990348825865848802325783000401263729140951898532458967725481223519310170776764675340408696338697762097411802870542439326936997866407041330259900714311813416876614859450626698780395382066739943863389547426193249389350049205119297377335077582483210620572438142043485028598261231212894718478647901817131991748348343195239637089121364952805253134297523413475100940443328718600252089342519756748683680973144565447382196870748364778384811878543601304636526524891910083476676811069419387316355400332181666545234174909261515992147121853231878314154241569984507183761383535417284363043545439787547297369355034678609094786304993091345261552467498942624267593136996109896054589585348062312722868280874924177165306974607268006359055859714077074447193265790472687776854664857329100064179418927573694637945118670543657207959138933377040680108366100511071701731074055846949121074328394739238526698194510834806502215366985750939095662942436551746006473488112861571436165476108949145996279801051585790451275888858362895962428555414156801739281158961329524653006886359275651704244508483934823695609889851386816019129433514713175654810955518890613931656208653717448420892737626729984575446031713240466180798552503810477281754467831556934065359827524181212313286858746290494309324660424379462967272125312432226448190811131281357723165447629694292270846710614936562878044723546547254741435471797919404063610373384163335254397951163322865141497666988969856969848372877405406174968850936162263757919056032092653319048421247913789191644859903882568046644580437147112496595690303636199018280750211465665692149631948918321119075763316275631403861533070097876085341824846793144323522654778642744464007344065587325261816011748704875001852866817699848240548264375750012073310988549181156938654560561679997282099450827600054418534773315771146992208045912899770489128305434470908551797889940070178753995833433198295441453001876467799481863936449880638885185018621061603645993365277737105012823248312451914560600594124916219906009643652620304108921883577071854115176613074212766520805569479493680125209073436280298330778906830519266322551757653099295302240472936893308826696295136629974015354594897911422436031614414243438006149377477888020294783607527542687923810015186091615926501424747939581789252011062002668895585583695569051524463735075497544206317350291864339358672080602433378666851245070835371696431764919035690753753629198509176030387325699691204964639744769692680708267258158118091999592308947338733823819935306399035758624397996193407775077062785937794980748171813162419217442610444007149798599333506739045646048321033068124380631460241797492489623673269943439416429880802034469681744580618100586615597781064522760830635637602048141430860299838850997932077706842414242634343705549842734695829828685007334655818232943898916201817442210845302539447347451634806438713869641252959586110796534321205860210548697134160142585108820372538909564517020253340467104967534044825764345255131897328252097778502111274063962128442254802023264060096319186369030420566061393735770470851308054432934122750261110844000716750599090776541411243929579408465715812186610533824991144094298353370935552960592609128206211344948630681591289815515949721803985502533376111167403131054875255309381497703514829524024464769727650092337925769075387653226214478182800463719046789288651506345666620602494461133289176015254802958611681120656497539658933945356081306208726305530065049908074751351406308463523922705916577602952322887974154391853371410582423092683313791311884045749935793372922215938272287121770797516621508159281075116022749605519159200432371930048426027913725238253627074029783618946508580435231166588187651315131812531289161078785400891821863491210293871356754655476629841676673990106224908153234913859621123752157695923244946085342429803765325289910493329262351043916311872441123713803927060066739033687471629908929099122206269045453603171406343645740671544412787713235694843921645704440316796315527096893774645961754133327041451119447707507475186476637818311220680099631432945049965713227469127713472386716018746863626623615785318212938843860885297540249552379448984697165064244891778261989236801917703485446903076651742981390047453144883646617913491775469131927700822499485584255824367064711602112557563754119238489984286525336802323239230030483796988534937704219893269767372368467528260567308641866660312078495187967056633230757441033481798570034819330977795389881346187067210703109170556001223613819536224155555392234420423731181006175904852845954166884999329422853681572247354008362294540332499256965440796442908080085905657605367028654661166911303059217093234288146917390531667203611288548645291714001453017211758744106183107145173828126111332511166738199572421805151615550524768166256165114906295348401488092598566798162712365031497197771337342175626149051388625822683019743863963173166792502245826022759538762469704756453144827698431736654442339401099681589875190852715098489639467040988215984455596594483303851262592811413798434683579913034418413452212596121471609197819792648483723496357577451077285033919094525711737630620793504732347409567359499319319464478172318284156275680395397934975276358561385453606863273087718702387202395347408629874312710920174419798387746778000790793646074847436554018118791201156008083107960256551338373067709286076353910941854134576252808602689344733663108947026007269283116164213177219262937489875136283510921499517398126173165153321962267296904838884720540008218814625416396180875438002860090488731859247044616249904389056206844729025233499858961212893569217023017874875078899846918842860243144931789506877292382330487664581011771048931886571105005733695603898194508014649284832753126987487032001014312893897142794727617685754751966883776957859379558549459829001823445157531692797338165288604705905262221647857537279595865840325006672692367539132103039070952933188802071323060416845621317012166232743681303513349834180692174093416330287955126986154081429299378100889401221525654415446622071847131200848064590947779136209018887930191252443335018281765387851665895501735373344148532947911416511706665710514643697387160833638153748811466747784333966550444336030686653641212215139882747467698132576667896213462849087300955670959655265570148464353614035529680318832967090263718399178610174635726114751803273623618648937244500831315786835421515973365912181109047689900885987483095461013441111202672061793769581929153935192934897197993578876951568563283786854634449878582722051145884139217494379696689887838923351201986297296526043706087092118536767561133077556213876118843273123327341128826728642285881303195720136535086674506723097278911913588830992923301953222634667373404265422753597696790729000853837424955429789570928533155075141233820338293575070300191898135646442777134734864468960848055246978611356273008198581409471298603406532747964286319169552206949314683207240549831859875788143876236876545334812690150776838111898754712944754277465500583039443888756792360047728711286095273900022909437052095136321164284038938089433555823956447061689774051024521158842706097706744825981512233370430690134280868795706636337300431093349223696316855999090720772799313925757514749938649429968210627167499055471430440210000148702462160502849090020332898426340160776905909336007237405177999464269857936336672066662243886410101148173636856918446473570589306023753410529803832090585659264511120782075118690494310109229472491494160149028442887776180968014560994167000765263648394666455886920996428622656171651879091931268800666774363829041006290457123019929427570360630632219263679232981517693290896832881088912184120798859251083615626203796442127947696437786643258635701572828729104057957409316552872519652240486909131753766535624661334954271893696422245528567861378782916487654501879226424747846471734603468772909393210555974810818320480112408758623890811072905613847118642358620201350055325692007462090114767433665722628948007992815031463905787165803955208489003935669184161607349587902624905877297502134345603684696030791579216303628477262800554938706296566587822867023277707669023152792415507588265891033413650876263225050285779835894239171516712830824752517724092929421631531328160393789324023376795342312808905733793253618482289874339099946230757634328114209369971622358167673563371116138035957051428647006919777719752856106590565799993310486892000438292548485194601198731150965400302520797663800750880215747329209732744174147937581287726880464263314023632122819857770769758423556296884730867042041287748461643908297342201514638065138391344297826027413245836429922755863130733373626825388517011998445890016564882285728475559793891338439689223007832221076151411695683364248744151374379743889978595390264997326189663090884958995410427917895195042581429343949484694904218364362789575083731217378035569770766398151526251503372587910978895759327935148888023820485733506534531483489488292611073718832061232596356039858179889556930706320032739925079847405442096780259413015336761006404200874681660310761672157672351355671267719791189195150505236321848608446038997216529009349272921270548268430301271576772447314565260803183716473632647260954322215058147720266791608297906634649895814211415384325317503972057635406737251014115376857857045602672706848067980366521640683788336421923426259456236292346938929956734768000605730728967932284047927202651770464139340560714519326487879318309635827038715830877431025659686901383530886021829098392971115018435987995463573050764749144347855413517061875452055788751594662254277725369222641780254334422658474466597598839354718640000863260988171910891228543670656389161125080614931839311599015322368403448392091406950740613705475686999668487770260226755324573140973720020341151999920651801363902636741387769940287017149408145178685603326266421226566547507573941138031641113264201071607565748591602672042210910444073325799236633276587165542732753305561010333690450256510791204797975099301564512122101182484056828745283492489346238631137749729580219444709065591003164024921680992158805853440439390292426781271326916709963418788324891156182750675883744846786354337696038987680105675646842975081686800349739050550085321421420258794711793372696322367560309426621419506700179780255537932139434628047776618017906474250832767363226190620472836874904642767577679808071824537248126056302394181054932386958574335752433729857805909246011584307093980283434888192459492911509485490921632168501436317627627706046556046921512261636044393866903892747782906190383967224489179062778661959265027203426283526124168856588317274250327044910023507239284243551868309892683436985199151614126836146670228736715173594121448066761077128614042730772125793018263782543893888331177093452656343532775438800576114290617473490893406436367263351720400873260621225710394918115293509827397236745537212704964523668221069131149306587104745874279057196371837298362087104236737195254358358490736837042220512366221990564498297771361035702883532060902460295302403265692629248056487082892417682680463912331346817633650903798331345202739075217881304694438119027795470452669324710427507159486378667107283260161100561947954343207374876950910266101984193488927773849810365102785770069782005341222065011306979211097975100139620261892429976462249822704134195625436052204517335505765795911272760912929302768899006559738129981636105508803430722994441798304104042532341223034534844985367094748332012469210332055723399511515433767501958422430762475394726857511588404751967884547142015112111335588575848418862653564265209823323389377322894991586532179536639839323615755049967906906552481753133369067208869620143332023936473629556033144623193767883194054205789606716523518644465890868444422020250813620230262126385272846748103567156254579465345968275444998647641505560978643619692191549041779138728028565055941962961174500196838848396230820898827126659114980422496721956720546843568419733386979155911248618817257385426072863113501939180533919365301771799612815379751152920149409040753033031577694038204060448029386831007945532983820615148901912473978842270871837538065804380160068801192665577319073555534605546467253221275818788046056580366099933208286944301743456901135999642543587529086691393694425659963213077066090249094738522567524442528124412066986885423264212525365758475051735001740246345834691428090410456702442719626499654086188814335576214062092158406895759375410365373117732376347943966498526210791553579436802495145341589031935555866712109775981094596906862648528986735840064804317869820859726972542701687312611691707161032831227973772099517601173203437658924407556216785064096455736330559945176256311660025891884003537794726646255042049688895204345048943691390757293066700058480736908917970263473164314725118486066598330525509915097476413684802857953711491590852463836139295340611157253803804276612981852061421603333070929407856809692685070513103346264529999944211087451473040456459096760103027708424724946146646019644959407479245908912687429803143911272978165023368328637523003137792081126811282519298214675926284821887585206247507913586391030178115598711366961821873881241549395760096394893546147221824444974455079687838288581704923580616231732453206887691494939435796012058416464559320700838378306624243877612092707510932046292501754880975320262097255301778376269302437978121910827571282942172653370249397673775152532679260544297519865741993451051126345651713105780839844141497914151549154417430821480441846832831866571182369811033047636983231674911751127028345937846460518912018926457016633931172099342954256191308028099323528292916786101418352137754412897722945624432662727227133056872690162763809273347155709686964821780531303817035913555322860037148840493830400766493448168749759595273330137941334885982228398028781944936576578276716493723993926159495155706740945620420029736264497159154840266499007633718378944166130398412217419729594978230481785766346625256325652454326041442932946495105827806628930890052600915783801762581467000667704560403319243074965212961233126595595261856569289400265728670451902857836175984322425033131116378375806416251583589073082824037406565034947051192198795194250147905357682571962298651083438264865044448343096717178611027567043863650227940180154650171238179123623186584398013354309103548907890489828000639277527039221663687666096825901200265177924787438018553074392142918465873282994716631307338275768901043133076629647067974011204771044188913050746273886680872482624353628820490924757457578551146910988090639131235717579271994918268214196248951607082440336145221935371254077330447390578494038421264757090094788954275187641606813608595113451567466836509002403328499175441672099424769076161435137938274120562204725680141337743691067604017986944987281801377882400677668414499688104395698906278007295376182079159918188665183818906307677797424346580156315164256315030854262056676501968812895989489874042517784965287554761908371574549060759086170234770623502589044547557988792616022076017464334740123328401092391746237188843001413542826144013037071214604939493028228479839661626359186091793598955054854483057961335714606624237641544282531484097811275856222269765270668269874110663704904690595053557922543563268160257736112699316859766210418924988822545276745086035950493047181999228318089212157107675813160794685350073381231337329730022204206231242231131854674926384698085975091542800386132992519292564859920307354034928729223159945518281087254011930642467478648526762871292478771310457188231677819123681564635093965519923569378367371388202275781993371491519360986022677471059854860058733912112701105028005047480951429990701209417193382301792701380758862045459014774318060644203816379755605481432802803725175079486768621900143467334051390034244904561353968377383744059229226435160651367705804359530809476242172444918279549439360275232120319832403407121133460902268603599617627131383165920225899536675732544787976500079213655942611227850641160156270388596760008040413509341190370152008903483698388281880982221405335601370204611093853210408399038824640260717741924001846077398440560657790876271703336640769260192564769292840957834408800701731741103182539372808952863412741022163107285652160845843308710546613303642046945325861177823728850696154138576949912911662601642333038164233524683769948806448891440029770609442980532468948635537531452739003826763961374787563570304146597247506424331753202468234320106911005087659933744908658056370852334180037704658362465888657484029897355625621315728171144958570241037336673186807069133052127097709173936191249449825948131242594237781191628381601861089637240209769683181587836975182234844790862869311977420897168550513936367200136254697363762904287591487306872659667712362782379700041144534198550373953673365205474508900596828777892063116568734733391285348658294065381035550687599680310295233044903018924324381388477923411532680522633064007530296198346549911985856065658317082475828729645524033364332912038310109115311556720493705149036845310925218788851762317360656000027989778353539030113955619540410601123941994819317670474135205573100121589033094809330930408658833089051690872253745541031310912452592372147747773318011154120470743546824448494576045044953886810317699561147802484995707312745497061383328866609019039425396989264726866048876134240639430561022389462014735314431103244635667485827025432819128010888623730522485772898229720839900418688013030120848156042138493198342925617295120925138433441758147597726232073470974285688319341379230987252663867696136059270790707305622339384800029745464923980532120676688912107255416799131402940751413293656716115143910325375087634716441936481358707302934131573359689434485136130060328512245742008053330748564477259245096976917261060080075107194482899650033165074976783961495370929511363887992824726485240741335040042803037636688467236860990606757528372504881530969554166062580215884960083375678001209162576159534064773852295570422117125800645404614404480443693259086287022509641998865811015630372099324399216205641233133833675214253784105486894914607756019579035841906135117590914433170150682258758204060492430471123433065467880063735934556698477119242929388438414841064278381738905372957435004100144654672491133097588093953609157561988638227898813640121123058140860851140499691409372352630301877441786952903753711344497962866702462738064122573182012886696895076882920504830395280731355928029814108106780809538589709806751038057987523656545317146693983465320395076677761064212822578486974230984972319097741130213527433676232075639639608786553936680353586990198863428725599796626048499919640584460281321798483635683244993318066035671121869958985043134196809577480800485896540608409464419017703199012203653414088733347330072255570644075074903662012093906643011951761541521608469457574744515368941868238964492442394947668841931491666475421081507913394412167523462266236780044141943637398292324325189545232463937244749102844299014715839967635439427512784659811511905248746024311141352297704344675060023024286164560699040601530978342643235212038938424855950606700210539856114492202047454398119196361861199767674039727487073329297745948767075273388300744212619795715166745603012488072464485106610858285646933021727316299539214832950963578483067873519730491633971027340095435656953943642239878003344160538829646326621496452118670941064952452994701851912258384687038707995243332622818752168771837774291819305008578744718050908633933125900739855359329967156217969861218730495618307246283181303208256704496033084273713824843877442046686908428661471333118539205555952429993282745737588149500653450583816981422743468047684860492170785123885938080363549030347669022232205304088368358193108496074974403292457009301941181710822921717099313135272441068343655989089425655732085196090459196085111065334337390593465543751436034260631521107532324170187390839359992142364034173744637778488775481615343670443023325689037978563798998370556077259955224162959749724496945523264412280462212665305923465342909453114092276798853088496141382036356810029479211413784986710612482124572967599050486446234069770736235564997825949354795302652458589885673146403599308281987241405743529146857141620214568469637914425841304764703567459506808585018171466259560224373592750159778313544149067518650165859171589462661723731070608939590118016552644050434297043617038730142475260884913819872838234688975893938484956842518749125876973806020261538307779610436461963872170133334373069163671570210376195274547875566958722854859030019136482480102536063317363830409550332457262360840970756398562993451213891315165558186933583931716410820217044295210870718443710791962448260111113201883582611063660325211071775274992797747822544325190130383956292411078917930111592050069728737194726193382881874159448302668618591278601588809619033179461477425303591880236323752648549335188970108669179523371778953147279455209398356603775386119509768165953417360527569811177823978384900798979832853513272745768527584417291552445982495772117684480661940954572545737870347301578021444057049894540935873274685621531902302100433840852179089301265737261772746802814915983259218921345860072185010100143893419111582821964761509329442623350136570351156470307667974601296553044422288847841302086741656387424324689434803755212950824357152333269483712379001647612867909077845316663897368022517194954872967714593211126743015095195779789534028605029107104465321252360095811846879231002056493125126061235049440799364026644899821765782027984941612018948225506797983110885566909443795366116267400227979566593003061047188284996553544395975615101348577691391882370801064618873455802960428710144809097455773668682719739625238379086386181147412300307749056187070591810680545805791122990958491379001268047407045579589440506859454784951532182184295866647666731715670944339559197453431598089311780499247155037827228516263865562910841727720746415264514435285399567173741706310998481199464645936973533109688716186279747371718974537805305748889352024524082866427572368770109779396189333162085399558905885756474258539954070898069458642067878346293531398884949420241469494489943718156726270817557239338892330087969829162978600647034225486079678622225527370232657965813835209164949915837753320846898935502926912093609218646096868252095107642771351555995308405617258299311887364766689638410619735831601195593304568908698006957836841828449540797773676211205422443608508550073238679396947386956305036306547066296277743120502237742047303204373762747894670307889253103708328001252277912953770046744154816351958924626048988118921673839482292470571221539392418955563152129465957153063056520109022936307548278559670855504619114583521874836152476405701662504878160920970364914072766300391988582304253392044535006017455338486293742145081720232337608934303423086678570955356402723344155143293375903511494789033288721879226143746558622535462010156241885351169976146100551211520607421904291234331700052700530830143853861157709952851385108201455453064100174862873336439476492467997483331789880633166174149503841642749523113687601766593565189820080121816644168872521899405373746548068275550511635794434194355987177505591888825065249847566792582047126775952261881131284221551407045803810452140183107816693048180374680798811351999627166290334814645524582350675564477038051255176939903148085911373094025697976160254745580083058102144306589411040900369280109556040930126833644727973676941424845430924658250575083308156262357852710840682003409690045246034489519958042103815563830281224259021942613903912607997149231355551433105499648646432382978880208485656321628320654926044973920253701339545511012809129644388649443539783974502457222790628575260780786185018964831898019830296979581429812607952108695885456432790310932802915112565335131624267975292874901197372716891367285964478820216667927254812933734415394736076270988182713962569010269034977203360229100430757792044748735252043465554063255527927106259255969396716091944231678521838226247099202889874293341853736328316831503411254995988223782059629104439196368530279198628613574924578365040468261052708003162265011539731304531886947637929592020713090263311265611110360492933146962586361762023541129096292734847465466158122025180885288251878305081312149984082956517565801789843989574282046448380214315155600745841140376061051319434575429043642089526397730145441535342677255610997947885343547215197329873611266300597089445589074652485523670054540648889339110464838345903026278081167346595158468558939770301143543039383138151648825324077832024629482685520391326063052847525686184412468209449519784500046411948669817242872333542147012029140582376379347378445279742722807709182044809773482438121288591264939467957330425591382422152489465521316743665715164427914482584285705614468400284044273401029862419580343848985348182386594472576910672365587473462197650284149188156693645145492943553834099910134696042661617808957264320112674353353431438591419236442692992138643784841408525422237987009727884371964338846774489849822100694517750989264775856680343084645446446073570101365116031725973952265809793836867728218293307321404064371690716952638761899715925922108922971855099751403003661123748610751843100511283172109473195500545268221685925568448115416879867689577019817798193003143948797542351254303518706440783144548897395323361689665298095829795089799989479647876406169007388178774057139585986367852825280522856460474461169575253687711241772838695768657344937269070572938555252899971984179691131067620788082615166948879906752403094798593496341440412975093948819069788149364212873499492632944629964938980294345333504916073661875479184338974981002457406472879089820882796943059822866572239220262263987272011114161989398476381829976853419758340960706442266578948319815061230199203279314049459863102839545305881659311807279893572608410781609839750256875260963840458439714463070480815820690014523287681453464333287882339263756068186947036913180725555411505650700645741598228539024331925142894552385288531854221008405097768618037526219595071046922791568759503045810737771041038681322870414078001223239400042796557439756168205314795499393266161722532226698992905991355534485752105654326492249462075232887341695516208574606995961874767175841204285401222471824965747884848054979642144173920421853775940316313548407595848160580084368465492267607997536637036991243793077255438733687882277856957464596978548794999630303004036572471753578881494893372535866445242352402756158135308471384452070196258000786521691970698320793536404161156281103141457851456342016872265691169770437644479628556122597729137732792941061818446038710124139714770221018972836913375806369879779926229046666515885631680188610168597015528255925371813530645435146048772887722119009194566367085748360694717226116388758798870773455617335064819542078709008139351532449719317511340534795678440935056464676391933613733225214605711544861083664869137187232943655969367234340535969775824342607750175957312790878430432052796817065313591592942204877167770995512114328273728878271717849581664917519751312271756142376948047533843343666470130669029876746031401111713920391664308083415904123304653988379422687518189412852361936348329969952148432229209559459686791333536133119933502954208659646841490750438079464814065296731397122301342909875602803371159845738408823555355080494509298816407598904302232724114799056402809841964708842144276259390241075351268532964658394914700115563440851895919285584481463890565910231735099676185604488436780572228518754707687651141670004534726206831534245642929261920421490128220555771717866689003296465335241439679651800794401865542549080452916894902942390679420925624818095256910006704738365025401995514508645673935783305474560568076506795468256183636185998491745734680674104711969601334520391156455283220125097763780238090293740005383738387681035664115277938637162892777320470777754359886713766837765749518150185053272661665433433481769620587121769621315183460720397213861422342512375357789868972520627310181731174443724772130272523998057878140479521609799533836648652057127158760907660666374930553923689478933878869787644476699707627783134705737340877340375387774624465183025279142010500983901337457518606541532435209693218212263520087088967714654652915131069667943179643311524048665445565486530588125807524317504505629392512042177287389667290187826592143012107330085648492245315187967522349438222454328326778903322372196615482989033941615610485775350706341631574380208961970220559322069636540315150698596095865994347930711549542314056945762636886235319165389450353483160458946414519319832505081530220979912883739610117346640522374968700514348677218052662145145329270891409210482508048082819070648175475958608098502165222475565093746394071846774803843377390743701927268696491284648900789293437046412480992092114125147747190611214452238294054226834783247274992525138538626760289812819865578041064815941937185671346704682246586484249920678868955538945748867642895449976601234963339167964800836738288034406682261359138200198975762782244373639231888351166573879966630888457215187696857895723311105619980096779705817399185356532059914478730585187435645671897673460035344241748245905838242739106213272013076025517640819133793304247317763518820354648530312009541628251963794645756917966583609499440708318400303289617059667794835580315666599386824273662795233247532452662738557439508195466319096004146749372871726037150242567583774891706644621602801309839407742920998429242579026174076624388050910051337702803436449021861304627962247432646497393203497513245069551055792040522258769703977985661542888107656589679969785740852941524823750425354508887434444974145107796851012701873522857416919941750448459425196957297996427879815975120352071910390631547510437377185166826137750465066195161187977281925851928870853613348870214620213698339204188051990864749819641247214413490553198569393589589317436161898189275069309887416447590899368109755159741528884340869056134061681525200109141985212004601923490780654360761643385501093617379776676994056157146028864328721391797716132140937621844962706157451494639919029090194766680534797361928288391483885630366353032686280766516554967606228067524952008866957137829413330473108371741249403913471919487133777809426439371566855709340384558887971527889946238851058218362616990633753856920429295253488575909036466873819146943948071507434983076424625618327928855930623400538784460631561038550524502700626692427961095191722723186507639929111122871300837032439192199191376690765334398101585102230320410900077715608241412279900935534817085319262496470002494181924940406775860970301148346057425590024093093370454090867005295198376670939394679889403735697871373274592844185540966073357048316289841506828116413882769594596075012364898022414743150715555158018157919830789234798216246200536853297027585563316090098443433782230137389561794333582801901742615493527027639769549853810105822745551491227244392178402847365949192858062295900795923385254739661058394237022288327245043920192041041670846961169914525654700534920879995710044303676137568446576736952978012303372652948393512989314830847408952646550798540358872785671836062549815393530251720717124615749941672893966335054032139895659471852708396442066280392017193587119809230482720064581365348616362198063581242465582132803149465004608450424507695906352489543069203888691370351257371592879255227577296042978053592504054801213169875120356034015591950853679546003431115368642507373729652808263009709334333681083215897487195485652073148585253979083601664044831196731397153282756448466861720957008839884529908186133644778241200970912109275292167063046519917310124106444280611677173871900246425431535022907749833554578547419945623875098507463814598627766158569347132542135085560187182301079539302312830211993808999051007028546953696833693119106453393139942657882172821187942362986948585126804514060900419605526341362416035039998511073496931606367497181274258753135722281037110410117231350500695823738635823832120524296041157994738169861894321414241830740562827235221541271142813041239631146417064777222113022451215215122772948327825647930526765286329059970829591878908801763380398159235363419058186144465608605060255651861244438630442111680342430186285211571544812102695154631192400163686371394324269038195338727601129889390500563512842029166911560676537982580400434689766311851257838956869516594466309413272070543837481728623531476432530365638530926579708385701427015365016453436729560135035848808045842209273274639600022242124425249554727178810865133585772790366217298728316508795535048909941614891327384029282608354903090650917459164200138296930522693428090721764382785272848280963742425353455699089815139107513740903020952174825568160297023594588460120504655742561179870738890678783214863145073859980909387622956931920491377212649164196875734304557900445261635729972860155453184407429330426186054336862330658166021009426772278731404605350951646971796363194860679086011664120691908457441793692845776219431456267217771317736960073802837537118257639837927144087546935818903671489375049998221904390556900141603416617969258350765587708515142557736216808980898333052126503472947739823052630618221496425143497427317181869383720902090871244283407012716474742284856745302067812114387680909695017737402159456834112889113239161378352435652095967927218331561077897430768224728656868463429523424722517418177239429539426230312935541964058121634053765561757012202928213657555744452942444711359412156309277812996433906977935742401992696962839721721408390057504664954854113427331057822152551767008575377089668351669070416112885357688626259342015180341175868709108247994401177509648931073548296459110304847890221928834538493353935396488131392184837332691545990261094957516444296565148925941878970571381070380908545830958824106910958280061768742406709220062084864198220432350227170345023592892503675036444920049820550588001403959397635485232259065519845410981619301740855311202496708399960127846060567568532609453997741647333155343094596377955601989137815071804462749040010090592338670046294764756195954594203888183822572380364901306622138689034809151335323025432790479033832580028857384160034660053901135839820923367721973415309265085209204568605330284534981322056491752102882924715851733801163468200665094633690281570946323181685158372351060536883158007562047446699378106169982074207174017144785711015852810304844487125409306139679340413108498774077954205415510638419109320673321698555598827064635100465227513354413664385171981315086887824892780529701476036743916878769529853390985027811343712162632421489171142493207336863082939588877505630790133657649059168770982466509523291007267050543757288979849457596887137337285872379746209296685400359868031044023644965387621830051748977619748923054026394170164720074256510186366967058441791835470579534480548105697225372103922837185424587688658888374542061845657008631502969099705125748351393302732539633344333915474535406126980562409109289090411005058174880292037720215477359496892019655476093177948108326163871731480325142845739954949819099502798391957811384348676242577034331079613102793175624592221721074196062619140658079262951663185696323347108482937347301560265041421523618348297779825899547724987566720482626248049029287588860420550824950649859975192388320066950074507846459758687883661700714185634480566152086093113204532678325216283592255979218842529117434029443414251384323771019491020878893618043833071793659103299411914893760554868627318311759293927995593058627041024555856938701871412484145707387624999884299201431782098144624099438363226690436712836065715082255512151405586607893877608484662681217117123791969952722464476796946938475492252860766667697896149282662595431238491499102987638839407092794574836013912108453190816779131880135742807243590233684102000913314979390570030748222790841082018523789693264268365438700332331701761919235059776848262286918356467840732843134266833391833433355685176684351931184021552641861485714833417973437561473798334768752361066462285302617219017261251517148258124651474838143962695407901132072280618101178790097062937871811506515925913321806112646509108891637658612960234181743800859438965665672289605889922563352355072595053996819135649419186524795719116574666941841448775378267307342151273401043034148346186635136775237756140164941671711817611481605597463974844750646412407280997317479623796408918865789557270846034121767058656339178780852130860986261439227012491098761463809031517473368722820239679570194467264567588295387697290281641175779313807613180886816542348966872643350960261806183029645682903379233214962027061427165736018176719999434166021329712879529601808842056925364893584507976336556091921978436006992705421224147766076266559168697679852657753757432370864242420540046784346511753087893768340528960072867693295044770988880480674994908475027747980923573092519456106479584811204772914666490667111951153027358652393847559487929406361533036887527730116159192876716509063331508325210242775194744253181502740133956064900930855216662021074282694404940427942782104267570480846015524704736797741729956013389092107576959316536880024524895775228669172334539926474143497872967790904489463006913515302347015071693993829618451183435770850511424835992376650347169561819892607192214736223860665417778341331502425525757149852767803919386755653517124631576857551073043600081361665173083718544324126310220772973283503459474332050116396018250500909083381608820171284672320971528811518847302088340927328044237054119795679963050526927907541336897640134498291141621012109239664837162429182514876058973895022113760013404433254859853062339547911513298127025637653874396926727428601713722430225861914945045241818328428066285695092773382307834599500480569471126999430184707227432036695659007552239032133389084865795297126091034022744901046938519415512109808267104010631630108778128734006903366764211615450521647237894326523043473950076261643461677509953576196607757635510361876184787898314911546131286013425427123533742712544201925487636560351624452090045457384286678879985295850420422526117455956191124881715367327823639165065693595180742908850116800227411727807440363701251977513802903675394906457710270925846492843793348866580943326778617676054951142486373424696302485727146270525898628180724910789105429742171778467287843049349437991226070571439136029224828039591062402318733254884258381102008418555417390157327951389244307931636557731860249460709908560262083948796930065680593501663863646946378685532443803065442720005539935311002219563500771330329075152544923773515185227904098822001068176368987988763020758208772639943944092910716002805780027284249844794966476510971256621860241305836448021967466356050391179476162995434577827159617685762006985993638530902996847608284694953075186776644515550956429511961241029603470687156483708398455038760925433052715755442692323486606976609359246811960944460160915455504819981380306960535771353227403411337946551645263430564847032718660083841903809465532341046070442084119183397247965181347738296284929522341508436667924214604245920878227712672822070836947926719680888328209665223436367142455338804811784346848605182947501024164447308317395719264892606780008807683696767479889970841695094769405587609751950957268618995134283788197150082305669951300484175507641061319111993533106611745455359561539729678154194633213241806726489308893120105160559624880790439437231297682210536659491985976392228042777599349577136798889357395962455936946368796106804373511625884027521704665278955304397929603152230805585921776570276647224088188172855652610720056262766593184693597139830031732561174506362046874130817547544316892013508710931872139060158020376619997669242052050407096299396243129795139227728412055517569404973018785983216805852701949908114802204105386840901684908658930302875644751625708745917228574393903989750905178492369882702924881786713100943140440434041243808258227949777639467554365277356520596654167099732811547936351171965842460722068122031646093746598904812986925353194872940401356406340262190074169634396423249061986357052710371637011781042818034639055446584184010770505209128725185691065944304384255582411880272870794848279034970447086993144426382070107370282938619918178335405586858428377891328072849315577918704705730796659070773034952260106971337134087654198377547532669896089645061124056228416169866244372810448413291705551215361726487404846760031818296956946901261159000684290551622615615846707230265197249111837768920571416144962544101475511114029008291474041419667471677941257247836632779146558842607701333548689600423492042584720058550498926540322753501354628879787465594403440911664547739330428828317353319364872950839112637004681520628600140230049917818969915333735147223567142885602475986999782610321507783557999847542722995596834952175856281943429864395346660816201171000840139382501509811232512240664312354013384604132593290727938006038415318341232643173228212145766291632549020162873845160609522782212712057843909108297644312533413765767863331946558393230644487300879832045496388201506060353312209462285584102860719538652887680975728680465674452295592275869294182306444636488979068156437852269556026568147301631392279845684396885225770274918429018955566073242294519418154378349860393488717688352815870738662083753097392204033497864519346545300967955040489119866739178411721896847296961403896502915516350703028207040237908367710984099464159632747923090007326873745148457230779194925240575696317818427522593157897317852970604455444309838545231008208517858441712299409107494351286356994259356822088654548493114724702466666412382056035311496911297012824691748562504413191547508517611965840455533338353879782475343507706346258574190011619111615615190677150835298896695782036603327746673429852195703769959960276404356062896667261305558481097569921796885368706725251949926534598251010655276573920079333184814899656141712650721444741445956441515608081433387371508667455429827447365999581943698698025861840746569303566299858737451031635087190232742409535564507133698154362835472869197876938039722193550733805249195087711533597080460687083493710293655995528949365492856784427234395348116625210571045466807699938438491301499491058309204005062030016912505607839124982403512232614415474392753578972947816199340392973138228759559632175177103559348912908943740416920788459908738908509021525014171672500159721668980617340383266294431029309804550823227850067388787965609940850338193430578690528074482759153212419295403198938355273740185163116579513017894288740810103465960612413169370466138481926093905758930810397198552152805033073424076960490192116776735810293757208162266254817039462174990855207870238632465598557561996745334418693185945315962331948626102117451539344971087110599780778735039560264528649660629253184345150210500816676576287112783092821368600379984372353246382421871344891461161304418511285690921564797624883376686245652046866767667029553351459666428939464849608591322806307457895305481801749056331651240208753862989783369517879820531698154013164539010614899572097733553123777808957072011551637118376618244070289376485786911848538010271702712212765206103724242539360669266897941128259500544164214340304779675611432393753851494983110071551892365489789908958012733068851573530306103302662923152020195098956271738397127805828188933157230254893556400312557897849938171054405735283569400790944321884791587538505669790306038486348153632427854078343627013399172104957416777539705067765601806888207814267744738617488573901656246288440037709226020437853952399481891986562800231349513855121887608541869653655075596202791402570525153445277045257821403157594816164449849412330557292564378397796896607271279653085288424151734878954163766045949855865001712239922125947053351369120055938632314281162210702291991873792966938351474181311576260187094338561972687331959600051916641283682501227678241242896655614440728553206426083293184607181855330719220899883147785142906917658827846469995991391673227957345850892151800797902488857280659049001151776649191844671451600642684447840023855103204905211891221515297885867587641313343786365295447112901572649544067275701255454097411190829757990889363905700697904259409662427218442500908656936566373700726228269529384205141066486200751391697172109678171283563253526257956385087947213283647702004054075809130082969957398335975055675687439795229860269692124196645564288959606445226995175921434308250898941470196191480163950973602360006580313920048691220037187967379910156875707957470475435497669873098814192800376783788285907315988763684630337362462748499325379547172455607267617325386869984056431197340184650443423812993246101864544762754474375302693798942576577080370359667408050480226392696690024849840548191607314485533830568907370655785890785483237100853138985323702797707395005296481873046377487219753541359464979201949253089390913675338364187123860737237177136208614030273158732163466335738807133375259912278224057879649217877949661381629307758044631371522811348662874057090259019952811583238276658664473993194996265581701802267247934256264056738974480134718835903457290103040567413097167385455431190111673211438599486250604365431801389543781858899132794942383254121374504135876381692013942443252041294846428123127168724808548470831444809315131680458234515841557328644493904927678739148540926437892470023818593263185922905398485226505162712463627187342649169769799125492098157734323154096894148681253245607694048813183498555050347213204936435901692460333457139024322886815576487007459504579654480358891647506573758880546449665389222261022902622204870907597567147072313710579737480962943254338814473561732907304634123060251669184169471026192453672997972730889752233327664583449449976957703066880969606447897262580574470266031815581824823948646646404492293150316877551363147708352955363591138869385613129854600659303903477762500194581616943681672475103798232780107155648157698173740319485139743057228000934262306631292274548121907850861086160042220546298074554345876759123567108479348766081878799975453113921667048328811093077138524717096908609018839504372856369006302507742422500328401506661399480703223900445906408676139398785777028538419705705319912226136925059972150079266805285836081260493953241176480888604013165436140354932176274112806958682151886317850391295982408980307323757989253165003073217763892094993327350488471401203049830608602098827751818001514363302124967727148765405022175512205600432048411839413888630353136771035552113864322256302124529797095252738656014321274142179431341469256514827871979061593310786666060084678577224044539671401884186802580195633217199156804032006630533278661200855075188179643676753351102426850254489594413653352735094136124182925396565276706295901735535058059196098256519028518264833090441564595683645898697809716030464005367904353293560011680955456115528852770626234083234919229621774124351856244879136789272181256231215446802995084654249265432204855249616838778795882715145685147370641979719571137890451399149537810797106545428216343099073131651736416098680817458479055468881997084397944804700051981621802594240622742609832561348312790950457160774944879956706463558094926112096711191848881252172428569026403997094186529417934460916797239508322857747415976258373287838585717625159748415634720374206410763555424466578986177723552113097052032980220241735343227965253887301387497140123202471042087353260987118131013414243393292244975818617653131283318223663848740622047088400568782509912645123488206420771673736057844639625759413260157331477948737105806322818904385642454685924784559493990186200516402763353541978402384413768984546032484854333988360394475234720804187881198460457203823911891889985016943446757943458039872389704737613389754683574479135505287049701804867035458886120374149026470286795791003049949069533719115282004025103535404358906071791384939232707119661769862862344500508839320881193651854541887273530996403019643414852204705903750432894855378150154276597167980884042647350859564401450655043461770571481557371761956618130204785104733873446870737321487050528396409073847935056718365520199374828894861268115180777145728102360651803461436812268679128867062341765271909966476152319198815054868783655110044567108394225655347972842586419807704837439271453581099564367759098567427398376443719267075306644860589473402296890849031360496799271818442547143467993599768943396920847669699846545971787125674982987285704328995836782948194194757835490814989299565609973655681396212146432565855647379256240478576865178895121249439296502302920082446994914800317033767935816753301621689923704291323013710899515475258158140030125092992811904989373459552860970649453662444101066736709977310132541322029439278382685314561604439978111989442207763220149344682757702659517779422534064132231507866869137894766918527249439710352129737487490400907575312138414008508966408890664766503280579624633435697128951724611998054446186725779308591896320763351252334469085449638115329557220072285072442746310674367093977331408714215785183846590300358780754473006785872615418317755896610091243711261298831965722188496647096812963958275779585970906859155574864430908201928785832962972573109208849688879465253808541229029611788121444614241009585355436085314423940102845887779605338097513057314600647674049183954180582652973243319838931561192230239089931084120588302403845217459546442365789361433140752882116772886096851652949842960500575185521229718275607522250377198700677219929764835010309889423420378674807069831680004593829258058068507477283599203052716013754202206141945565030375517669105041893383543170861453003830358264950243928837660633767908717731913249618026790359920076331847816271757513393923408637928951880433834772922759194172432531381090202076263104209085870884731496377418236180116918422583459845682811700814136424235284187327846258015885163314281906985478149664466336350167199637779523207166311939411147142890804400559574402824720970765207800881308444866061002063606482098191307956866301156864877218589137909648625095756541633587870829750802572555237451325780504632052589650832595974204791643052340043073736120409121845343169996166055920465697141056399120219544529890368795630687053999641117291520326359359203244736222526097305066085400288926455628183350704914066788519563483813542938788246505222937174537594631583518404902714883727683064085983741420595932612714659081546890541079082525998588094288278920885212126856995463026201142242120652272616074444459597029461187831274208560796311519066907356397905643142978947955453103539396112408236632568010837333221013596465401804598946184477015800453483347157364933113763789628240563842741668468686666520329380863207213217583482530430616283483424481774671718489046499742659444884303630201307827109240980395870606411210642868245566420457483034854933675874946950055638239789304983886863886284878692777471850800044946072250211640555156398647195247468931332789398293816777995836138597732735384296447522112034337840897704841020976299928468430089379141560612603905268054119337753025496497884942165572502873238189952488304964355933322822240088201941345518096662538956996510898084720242208921824153256991888014542227810153139097149551767367203342846073047848454800480796895809358942974335778721434555381495990194639875326373518487033887453906592852220347933845337994805685671329809448895415292517635064897641700538455760537065949378305850867362100106364121847854344882613047414604758604395917868274357930993246003707296027023112419664679360554532731622404810100122099072816042530042196539335188704017850931625329123846052298246090283991680064094001935793882278116643208286124028671169004581412807564064487410266366831649840277287208443195601808818852720281938260106392395633734266874923377695718150042354259462917450141460916317629283125553978526705593073791412492996337300219871008879808405394176880410097811944132704284118990938519497920904888653738098425426521237319748441182996159264281474975109133589802553217015613741425068235593291262176760423541479745222078182432762435331505159963686047048509309181707811707881702298328825381265277165904045004635205935044738357571896156354396727587822757252047397401607225267808607119710762167644409607845345450020059947498716504151696460381234006574027152479057105758144541298063696715443615803796109726798654989041800404801872093041138062259994429287512552090725357881264024142392276204703478976147982270377232662593944706716617342682794636011448201696609344565170540935157760445095049791205076463192490710140235775496470529152001727398876376674488637887306891214742732229024101711536639556854505142499306087675222882228854625675243333519023438934904105022615043832281715792461983519451139772043361316187853502362599449793941794454510083803808245402981096695139610844401391345323622473547008450295345410728139122272164450209572509972079468491940715781878248050280872596957471291558968273107658662777793690947530593502291036507603402101064203365828796409085079253832051229396362165388535368396797418044030602443963340399570923163804185624348621322360299713975517427665460838024233794621255933817436567041022861920737149191564218488764509713379794150787858114247878200964951546056871279274205575509492583181949188497592089594583908473050112536939800524269792888236245250302674896110709510835112347311320227287028582356370091523600345431859357554572304216077748374553297174893294977685435993094043021041831155835394832029564033473294475891008180673188208058079336060508809826820941725091223041626508147831043169255678060915963961999621704402342702848999187593715097427211776533865897021455323478111817707477542895467002636812919544124606478042668327396989601597439572174729962925581237477862288667190358963851453557641964698366716350927498266535104703718965326483643678899769481448772750223877028143091587245359532160704671727180892974879324670262180102041058202660619897728587595005334199770058927456981863115355459518187522123291418486816772034609990058678427510497046454437796343014259157731869948917775449836370987319924490377769832841349551795935611293624598394712477365676446285789703072154829858594226613980756615875108513616427838659798067867635953031723379149646231272048742916067844402277520123360226609189107336645927835656344116222052281625381589099761374282933527369114866541652814462202106355180297622780792095516484421791640455326056731909891819489656150028242376622475640242788927828915303578500842063294085235764755072690317636742819900119425029764019782070799715045660506576210426774309263067330028254618375796097654168507193690837998328247079192442328550819646272945844543606272789681221095920676183366416061745476274559946892334512629936417631871879979107477720360909250046234418562217276700795748815198473947316006527753361677210992226691484064388056438530721821660776046975839215354946922943818857378862169091510752287877364735766449667826689333899497866062628054071447126451211781970781098526857392296698477151577531429729917568544275059633562261909649999168510276177013348962853794549267913695464673702487445029794832682223217094792789811864707078561239662666330923225446498359589099126659726243986136401067783117822305410449373195978292141880299170068259247639804319130668250075051776045897696063862366799700922597673013682243543395842168687356272793631383435174631002583953914041947240823327111635565206717498673235654761586755831404611800173732159180550502595371518334289638724377008977813030242628633456880258469479278543775753322168169761313805432324170153328903814467602531415552157676418191659327652833883314744021119382582213763789622164939828544650212924967979255925537763361710010621731057838032723898923705236101580120629605919187557357945373834322757436742996802383161767444646572474324556496372239071197762472621096517345857476208122714050419602925103600110732122265500767172800873950323539997800544602240107729280918043683421387781812299758392659867212210903208666297162120797879106936794347438649126468356447018310947085158017874060059900486320319547332541049414413157313434206877433434225108965940496742311104033027123931307995604302078592643552655097748940089207294844735677092723871957910339425931436871336783314650362192079155521914753236786145645171505150041786637279138236307809025270904509636884434323949923350321940381354611324492836502189187291447165183316723673944770479380869032678667679552736167775865899928784010870199916537033641821346737665075316951338027991836845454599579766491346883939956650063963262533362214993489750616692825787722126103838002645285470519644866986103456166843454284459404176863335681317775251151072122925358069429748286445012847105533908875681123477035544342651803851048185482484252465342560839776114117027961086441763378738510801018391581822855126906313518496602827766218661628951469717078638936865812740841250572199271539936064463236247223374749093380941362983311265010625900168274157772812262986618416053850378389730529294043898836438124403428415720591566342703526803860243390324874464430534509636239203913861777150456199657726164144716240232905443387563040729173037868645940454726286048794974671377397328171588148207728009630758133819310847879255563864523602424811350998551876603237347257609510732075305634988571750596224644355369303672911185534916121615422012404959942280413939916768955367525689811764254209575800570711646985677901326664193114286268386620533778470437641998324312811746594138254714459065030900405401668574495632932017112496957266711459236612929906019422018406562736521380134044677341107288727224246691558451915534557228869447277625628486198110347385192735515398732131745079418108124531516680790958947849726365350568281346898847312689074533728793150827417847662145981230502476904795017963675607996733872374274766735526734117401160291227702281666551187961133579386604402969334868052161176467802023343919932894908890569229550875379320536778659094283046557009138534840679979668877774700227187902027063010262119499599352643742990125877008681000521589206357810759360508497228081798431846250415162243707331855088958239732427235077368312331578269252754799579723278706848363897404393626942860920971281209251445566063767294047098125400931812669687777456239844317006573325095930380870329139849006506793891831389700180975186772294522142314905736920291484736398759046222950191310098126679585066379317094179744615657615579194075373735915267142223761330438239563026365276282326245739451486946663931477607041474311463802603044487507775947188505034345230605578850657710784811615363742685115133895145541522731667863996251081172496537255882979243156098168710072638889002677975265293287615266599103880559289028546912128041125045894620052366079462967991454772372435887460910029078097784042447326767903453186926752546825748823416097440926718776822533194714556246390960129737383137416770569323782894514103694215307225679861387917046927396819544712725736492395182775744866946153616423397555551496312909781562661207694376705437780050967437116075446207383343749887322382160366651708981861992810813118895375570129557828560145439537533293817737133514974017231651495310209206871634492139955350338592440502662201914587742273553193938302017036647146268018879190863992273235466365433312484848714479472354429105502965798352150264443115276513330479229130335527192241722439702867117535478973823178421352682193682604685722566982586618876188989277585032494545397619915750032955887567177869437592757606355400706875208505809516243537508362644911479489591614873365232598868891254830713923012260215577181788909622059277643929233779143875345577201121951315037711422034508258340296987912032670507834028712773304852377976203787766285726877620544307006605921910626286417669479909497345090900840774859913497468682814435553841131966920933542269301985490174127746183927047832075865685558462068146938883304166084433914760325367771491753545984983327442131756895737647610323007592702523684960097479249391198378154461755335915896690620095381684544974920132958825705623326389354875607376050080963633925771707597105013732950613047963512955212522648978507665537744022152324707282247938000319167345626660791495237077807256452249727669460804539979141363076799130902213610331652645197040151900630535629254172488368194921570950863028941992661999571759091606637829747998338339793517261183823394279266087068590611565618965710285757684207666076691230423520134109849466001193582972225328004477909035676793146530221282827866173685485005630608466447604071801172660931494222338510179075233912936376146533428335683019644610101769298698586319626283779428203013184592730417815096137332842414746048268362161944669751384654894304742281390583379885762348643157106433917742880796638475994187935696772961969960092314124074599349674029191176092988030927332650305454139146291556241534497306783297723502709532482521501128383806975510849336441732280307511922645895484131590877370708558979078577821582629680996080688386056227160419201256116907033748387623649910474328470211181413609347228760101104975779455539665261145708727402844665206396827843661422719161166854929708399247669004731135213357059990732224244388583881925662175162782692382628813481539937876595371049377715326427721070689695684302895006823153858683101202519758469198706697362644399182561976517978843808651919577119220946574139417811383951808999844516990126971091575277875937249053499684821527364648716507194100343653578336518899291315617883274101138327546140096821845273728854079857454116398641514777724906033625463839296520807748884721296365563241178904435583164365578622589783656304729667996807904689852012892047597832706070836664753689796830330606085277223092059984914814535766961999256664108551952046993347210832284764297818155194960170873729762321710094674479981672805539029947296875701543416152854994356828045904126379996320847494611700739577247438372622374893695119131121390830133406263034032783833164474700762296877001256635842317579404252738876376537795419820372311525203856570520486090309046303015340503837727837048232200322056784875955355866217404034401211206559118549406514644374919264752822152284518361221549491281553746581211244082702418616885205155854938006542941418106654024033688403026361570527514354512886332926502218193230726418370848398439065458991695560908728653037047542669277735743195416183672294626592698374748475601713291282678323772213886454655416657471155998796894543774320288213679553240206654569161391945985696830997935804368088191014559837756456711486708082940690120477309652648749552830987868348105793627024662318561348199689917320826677779205017993194685294036125756255059540987877841112994044318376573497714645334048706150907931221713122234194428453005135920221832495492480925360128778157132678213674476304360720724752515834452850362837822215278776066710039088526191244146627565800407336464991417307586737577607879831532461044210153669467100171770094324722259601474195001366948775576387763036951832289506001185642709425128083340164087753857098173617000224506563007086760964969323529732452974425935245145119449418724142491605292398874302517702483441285349454131274796115673826293589971112549018722321853944227149462504612239971996953753629268717805123161850288939920630096535318396893801889479310645999240384417525241195755113813651213029767647327126051496101752582140780109779140132208300542832750479034754855353847040609801558896540352746209676672715420987758734073761783085422836095003848890045137360400914579295637060186855905970577598401161100570927987980345887307287777704603368702855956733099705673982867351106249171794293378915619260709322420735042094234348678936896542816897077131227379973105185612927662459117496949569013225840102627340325919607610712265989326182591692692311927159942184530263355956812360034509396332812604291597588922713259314556813643063814556718736525835086155380669282151003554857175512832746277045791525716187540995328663775103172473686629213078897449797920238330627000353224828972324915782765003989814924086737384929578593872713135967347914166101599746738090971234013040118563306311644269151834312573631143230131634376890738792857860180043717521319241921759913691846471161424652419445898434003195372976063153502619564119868593910830565216608711608139290225516282647673485987085018237169397216137054537304053248978889679155383593311266839475454360966080019270424377224642008328962104731489687193925428137969449586456990996522119612885154767882504812011468540932219315544185640526814540878978612622836360521921872883129119353136869471607168879108633899110393711150735204753903125530942305359092505979391825595486275362705122357861600688205319538985741329996818870135419184595549493307581705678778369799563228418735913312431049810314643561817692737424578917866954073429815549840742584878588607357820646151910238940232430646889769609408241348114008179497157934935445901278393425335218535296401225008820245764175178259715177771042437078918784362494809093702310781468748419810747200251000626212157952873944059001839136895296271716907316746177420038399310768551230608794275378159404986789096775174567488811131128384371826224555358428594778221841386723591517946632471963596670914192128271247960902951862277571947171640754470859497532959089019276996322961647642709965437579186859723723873885733497380690685474134762140165296185214553473725827485106894647030472814499998246135935830572671178370382363564751984578215967153799633342452951525960315664942756210030351811449339489626148338951084698658980501947708443640385188581336650508061568879927531950095420463357543857175177779261936057192539208469589505825244301452570310527910883503955705032500099264728937699153949983723260918328711209029137972048135033647484775893715246721493664599103689524684926132928678833715681130728644584626790277081658106648478522378958348427952273316299799371145801464551010951006741040510573678600142459260064147705832312125767477310506964459069426841042900283678754824082418593968934083912404257388844165241365819150297575602985362119181761846512757762283070289790546023472482264114071830183396497776819341487093087434703992205967701518786605611743441330220152080790128765573659342574393917477028848886773192371027950840745788369685447654425183588635417731556509775421616557964886579480218531125690614362205140293637057934423932175171812832775242936357167590059823618630683505324101728246569834788794953671792051345673120042090389871774136147698116569699869049821748240203856169208722159812981480578874287868658684200888932896318886852526304972910978924000456937974424788296931440042815222223845372081690741884427575662479666859641262637743954221517828612727394052871069338890208952390055491187597949704453326535692455068295443331999395325807263790961488012295686612049693983373704668352204024173835227702592671213884709525784885949071783820043888543238663269191994314904200764077641863211400030576793891014044495541668919693674622968908543860867529289773897406310670539838882799375365135462915556042182630312313302066872504201567118843124991953879956203512886464266997170099074421605391283786910201829280389123174671278443279296057647406435101967845703148916324387137946020887678534779029701861345524863581511616010256783776253082093101413065119415668647019496273413357436464091249011279315032600710827437381736468953165897428294355682943967362873899948971212022009578426916644258732124514575003189281722893131728788980309934720855548800355374396766943152265624713392179490264081890019819255917928998486963992714508919407338410060209902066883996023911610117795395503708025325889826387728457752444983087955046179370997700853363476778303598863811051286464062473367913065544561683239013827887420979885441972643614655745571691680648549773153908652701629864298223930285976429796685825416326591777341330337759432810341342248816263088715821586388158687524038428669015279695585025700156805476248161035882991196787504061279820781854065944775770981014017040487459105261226074053353218395611673699299855128885423878481284601386596468014007568800201600165464945314735165764629504969816454408948259455103419805676997045239948721314514611065167180921255549391781743191441345138171141968928351428371190052112141595954542083743535541608550498183414804043419173104253790726022543044196007710576926179053201961506423479665800014830886908172591582986752781253530107639125113317168087551312689828332821367955896572564416877816863732880153365502065187616028653641190840762824127133919327414407119526161020290139396083496528066676584502247633329115532047098217944899951245012523380849821488947988378479258796433124161462851953392437391102845740091066504194196962370611181507512212322820886725658648349903386265062031144066685028457578281020517832060796402670345473386866920988767209244633023992129875571845857372053037719276978801955407455851764641412708750951734983923059989092809472111247900244286057445318430450328904778798352568396555259537472754026808986120791895023346546112234848356608508870302625791131652585087090046749053026907604936205350570280627687314476485968113413841720210978955292637687588847483871435446625745300845448536517984118556116134282510851220792901970191302111276110250394214465843757566767058992735182134421839576533693082566315541493819524500780310244156198890860502450393259618236309640145007700723837333469638619500197094209524146234687586957464056790507668245820541942457310379049364604906284241864653925024998618345941592880466357597259152001175023779955150114462508774847175886765936968162220369696537606498223933568778755512315964048278402442968585179815264519840895198508985179817887694779991134034534644346987943644407158807273310206183908687657330941500141163048229834659683147068143603588420254449210844693182246334985056000733523107997976647795495907230952538653631533053057575219639821410591508899760193299635721796577213576513612540281591208325059840758970913049411357367063587665962036546127373488277938533552032945035647997796090758392353579611391396005922984793000214461463845297433231203241731721307522522775525385647819428174244711321105863295515401319570093976882320230820264397238291336821465801499193722160545748783660091826673370901863596695141604184514344295658220648742500862498643369912513819019731079625801209720027337922000084196043921115543362546307010034545764432762304259027647395608948058062928783009370987334535119439641539655948525859961202079573693793914401541648508358398392256141894163185213027181372842342244653154357626615319783282953678315000219067941900282089729068972597780713603283675908043006055720262699938519939483233306380132940722216145544818592414674025165712591577180071475437260384781833320541042200323094258230200628926356937067845136636129863669852859048450564696072252491233121415046709747591554095676165181680552016977021969950280356555650414913031783099452916126377935220268496854458657033888226353001316532398708351576323299181061177210732241573495138061328440238239381151578540258665802306763102384357091528133153727926668717043053472031086232057125416889412650364551180507581618528744588343258805891266493001239748307629302897923818626070701078510314007701750504313659176922694605696302115262575787652333960661194115263509486734972463300770122625651062810255513949270890014147508806255661941987162540575214488592530586472191346948181630327269297792361886355645905086901640442808401045499349271394117020506949366296163821642518624656121496297201190556213455307042807988202391063322615839069604719543817389822538325930602149069465207845091022216735304741818326770598716052745750498959803976585129002939519889635510624576490955176418463225966411150637448241310707541260731092402221856801766951794751823058907240867311779587234534630347154886626116204351448165818803738914837387352903846490863117964097350266702892955252581052679206565655601807321548069070877192719060095596904831757206867088780541969265817374621193189244757100665725377129338611391496253151697584473791928437115659727295236655591139281746899646378683534319265106870993618960916738821092952904169845838863697603807109795259560009623068532547318271572710171251248351038443397003874909823365884262923014398065253980028841407550658583602558675609169603639239252287870993555622289553164780753540382514877786773505546935207077826740384638227682171280271422934721663749938857103599775064595957442198519730041035631421278192803993653181333611750549779900396131101892883732313717786842457490379469146975718430716864128983631672828581747540914268607390418114605026795531259231586231851839058911592027768263407366884913866591131699815338853681041673480598486825938692126532542173637058305171262581295177312935071935073409367471324612145364957523389376233727534660059166980426809290233083865181561375469873528198136686170359103484313099361902045375435476049862110178954619576571757264738347553234253574055822531232034842027570178273965331578222006936229125473782328857158199334825874976648215725634324013879132069032130904824396097946208886717791220754255237242554419991980290435572625729796323245012410925105092519537268185732024558909827516921500806747382797389365463315466112406772100887227585106116571906122287316892890242734418199581388593213129271014940517450726011074790979928420733877628351417763052826258682634441977770515027587015809762142663806006543765199990548373053068499590287608702598198467346677595026263988894069662215988846202694018223700139770827492305651168583193205723491159391274097093236578922012804091946746415516932789340915195277964234775746935072598185079357789584999228552749099997471930363346406183678575524192742033510760134224052517172650763342673389531516035897072950176150832934666772924064325458598045881821755927677628741342143407095176122859034744465202354020203833947327535037608977690288821211140352516639825237677747593026709447055260553039961224748280460263502495533986287450013580200874737146299770172034683208141159727454178717099761385409477780840132185739003487866629428334439596850227483035316664424501127863615430737530868746454696793308997225278685358659665361213270682256082893196414461450955832076834736292172668204271551775254734313075201906485469407574324046644976659947733623633991233075779564407017238997855350770372790504212874519158557480287188824501162583055915144009772005274700456242924657282869998132248901788359758545511505483597325250914854009749913394913574440136759408874512881021630685091353723440209922976891830532721681899139444259932224634979698638979903354801603320926395441645620826882001128675614846993193397674793093999753058461431175412666640314049361848533713366645934478699547914362170057605416682751365508449700636900750186731939637262321491965817117329875281334783683555125855999105754895209619169339534643666697588025728846575129092352820531544891257261526621036799901278188371601062020734498187320039062705780065833831568860589427914849516524191173351599594464372204056983322876746653569424526892398783314843403449272888238982215528709716406288712072255672899505270499165316240803655752812971039484367432702842382460510375690223877849154870510977351464884127296827806076504099285537478583291878687112666748583781579307018772412022849503382817650403519662314382770454079892480398912420446490068958194392207541507533619326622653502022331168639381057661821767589280713751318037998906063644316464693345506754052847122444345072006818331065655841825502895504478355076837183762070452009675329935989012212320200113082353864681977587118427576895009895860489375461181717670877819071170909126600570157707437185766230803834005322717707019442023941882078806571260440696720444606298027766103079218629065159484589862234620462791119195843840497023361522633442810485376096061375572154775555503281923775331350915719845162927039447264393891121994697188934595610882997444215579704126953198316291594876283101204074905754307935415429810341919701685060377027853531917052190879964597614430451427629965965714381787754462294958339036308504212569935917645595872286560353874494980560364706268260802721840011664445873720741471871989976047313737329157439360569037517222601853232733910881374941259109124450955772777617519567660008509693373560075813601603987928309556105881469296170609621841979657761857282203124726900358649625272062045478468140798367923188650067350378756756663453165444822536794621642052102623184584723119239910441083742986144461698551275703710170807799930950150527200408026450229052609498906172208104718009811747655803900477583939464486780296214654110408712183600474752534304878072925596332164809568002140314172581902128794019407232372821611949880828953304243378797006919677311340722231014846044814749033411041262578967234714110743475792050181063582291582488869481603572361616194666789580803797741292163374303761622010165894633631468020156094865825976745009061005061801140403293918718632345030499154010963227405132143997834563791191703718879538049408650063162557512805087569055020679743812392313721371927525055697223578424454395028492775164540172412444729357509781492414567335007562240603120711349457944401472300998254547929666983857367511595708789025503699666884200631595164061383702828878390731189941967329291262659519602031851640256136535047229968391040566042169418244311340925174016633508392047544886351500505429746022916571304380572544385374690249063287915110212778243922332054510816480222103800483211901217800065478911511266017412219886980619023990094301473389775082083389996765983752714026856797105849824688144043469488020862466489790960331466718930796407089754667823614700219902829512813101404177764536301542507420909172131758254251706946108943325108648137523881843093542573661979883491283886225672075282826290152536175584826091115422875847954846600379052480941771008236001332628076187564454182594310944383952278461587703551369109105421720087111514611242142626803126776443093271078187806631954867179115608343628227660705466103173464666654408522173238736739915913753728885849652397610452045642495652931275202536555698292298991199457891070274222343924686949684105255092886909914751945091642714943309775327803127323082953084239377991751645764224903091777299665103292147220040862678243346296516545890003427771590934315280306027740356399903737696153865502450383280405224804979608054475368832745287384582636684384549223158697306359473895495807793834027440672784210588556217028954963769827900411026414292407153868064677139698981445085053003052113426322844455615176550584114221213988216865270898886454893444491645685475841105437966381327514685799804651304191077090451022997652146923818224477074874230337492264668625908814964200666044825270861311871215477437424479412269701470030381245538234064428036579855073103829321608757617526143707703045715096592723196380545966181036781338480407675780191807026831101141101944041021127702660830654657406823326125905608279570130351259468380443840753543329826806594255307106154189884553627254276512185136915073166123224939364788908414510192524100769061846641534806658084493289434678439058986063652051945686857008486174843309767555720979483853565466415356883811293925384773483411257432528102225020783610881668800453312152322402024417485684500246145908386627744212166772751042054052127391197444457506893710411470117191567289973101810469726251134452446977167254399714262080136705006275042180155037943190578090195111799629751407571537436846231328628657246361205626307963007371692549741780633365828427950025408454153908116861031879042518610140877026024645521782438620368841589099570525916393576652739837864744950091114634652280646624409434389732096117346967248940129620212403439962983860564101565746287603728857526689179810255067646410349663402905003965600975656751385974443862800489099923549268184855272277233115035745047878819511364875034592714156314096384965171041672403668904197121221749042709429793636543165656061430262960359397975933153426053864646575347906799314314258355027592429104365164163710354956993752450928632759798315425861239031921548362570515462814727412415856018310361050205547067018919014363544471047335564419411786583335736671401165210609332427194112243043826360267842623421559030134284806115313321491400276941809941237079901133574888637322959274927090800388952282773444622748432662638850098164865669764736548343880416833483088582848347305189587730786960758784604834956184994846491732236013242151765636501126091014536735471926977591702293304822088508210936150846215193867270030827695724624969022002098401424104699183847381852701476422896589667089186173957369451012910481254777023398570888182009294741470572676663540702353955517545663712830186776318824481353143983789120484361117399246490135815793414105169943885088275624076388087351278436511193913997058042235932198337648736604316803820995243336440799079833586762617436140094569150008459939476140627590487593471718056411160048591172977655064589131276419768182846036401083042845308001655183272891973173400235148045193752614577988143635574269715503349387206473558190974340222898387399712111330380501496004947132335184827237546674877926639603409628669560789692860474645126141485348524404946860363776679757969371933700920665086526429620846246575384543210871487437563308091352441895270343363303694183154046062700020108874987826153342912535063786041761493775453166319112883674225163398465346093213198207072635888048133097609943845371631964765279472703562305473816988492510317012173998875435196671441823913539336423562976327212975666442029328907577182166442203630407355466677795622610031232694081813575095873997247843045644705593346077843483379951423827788438638269282645001491802670349829921464144632423352525720802038931912370811390185611483117477520432155956550572502739058400084535001996296441945972865738247505836760820580584350696221702072164094635756455471233757871711144969777309463930071464131268773477376301556546856326811697440019554644861296244442660395378618751699952901777103314774522599557037504810054662152515110657331618207873743788583096318201873694893319358094659275460347567305642781012467895694626391792074269510578902884720452282323800560320426424201708012544673089051115089010614274112863361598815680732109911064063039219656239899204585774513658136957441822284501779394789728024008400724767865013947367282677033900346845643841449065991411240119930534500204496218530832465466412642848480694820511014962768441358134625349347941625931933597223338950248863047955264832581054110910129289924980958937382639613156558070356501582265707014982400845787189158859827897850566916516010738662775183230317155261960781090784945351588887358499538345038510315682220146108670235924513550251605958386063632621141379768627115421857105222146984363832032237655012416301951925795686911101804590487986224742576385339931546759294757091855958931366127694667387591363580052344930035408901324161846257518284413743116969667751904957985038890852948210484628249887833337965167550577505539691368074302816759283141764356597736867585424047781646115128598852194510490574127409704967380278663813075582418980861208541934314079409150122558357554253381115669168606044137225672853940957572974581362599793241141493316845368507829081292520265917499054119023944999611804501794431183357147780999783714780000701646332113559506166328003096506316721193628549495230520310039149718834163981656998998698042544391438175818296043013874794644390275704831963753296280414696172031163312759877065621157516477598465376821498410468286183324337126627962149308519768212729368343849804026878452424459914282103573775097645588973182196807860611464445121127005018057506580580803275669127900662054586237579538327170983043167236106508350704746935798651316068105468333728727970478246128708110572839716495932063620345392356667990926501505560404200058159439607956972904332870715666207567152719868155192780898729858394267218677993273968010975871125890913365204041569891613990650784872376317921231880699021524179137094490189692847769642605052721968573103519728698644453598477824559749744744719532566756028750563163404517988470261960720124303101763231626660829879406082610390341474956651155738936626793252855356431931580511798649100186403829161792652305553188353251247158999995460003950463893841802625386392316530901027483384922713738875042004669032902353867243698847406584434611753426234608547639498089976556514860794729486832701024321980393811572184371260198113286160466005963484010636066950897988850787187827642529289805618275029087479917562282671352627151405261465545554914030124341233796540003551116593365873234535119859214670199185444914288847846833302466703506335983782552598172264951748625682240302382858656736865018335383837556950409130669129265410555076832793887662151892067745658503225199804739499272482875472116173892944699189862806356308844185202022907635601124071921739314285712919821049724695740624782035990923408811230216449096031229835717390951486769008914383473347131541971550720506153472257965109199747263320040015359376082832707290792466221258318135246333604651691512644678170550104304864741165546797785332111907590220283684427552609656919763456500947192201108626648675060938393841598910379409073820123384600059753256510700395977404956582053785898025218810332262369085779177169660340986315544546336500893685207845468299097330143116165909858055229037328672710573869320920557424918714566898698032323802910492770970300122091978219818963858528056236805235485719296012189783211547625905887091158669105680002265776689701479593962376231786929422208584129898251950822335733126716624976320575974255324889008452793669763887677251369249654018284643628681301663239408514010088969658651128318448461378624165162840669685656398975685412039623889815604197336630196118498254030747225414747990465922233523045579221994189322950609113530307541633675214503939427816581517271939063070485960424108273700986901117530914535822947587677727014893479342140773391161926695492149881225910409696287280577925187152188427057709361195838565277906904200975655209854182587211045771302655062329570005933734965115249574935629947430379965931724124202069936691147866888551414331401275711716360797505055900587688281328960807345654609113671288544076277288014200311314110479506949467776675605106864444105761920196472162314648133357800737332622756691066326331336569552483642893208018459659091544033523132921087899829657156290569014247147496342119409840738725691269385363298166950988907234014068331508948909340362478364479266360399987454499472456263527296221585035826394726320224933573932603812523450197996361672080831431387552045865550415340214548450384615814831746453460998163757499783192107558097186746325583267636842439693130846208517493045724034537931181302293084230468813446691318990388020126249666148675672759180041891454071811315725358379161363334422194534342279468729958187564869137279687871503579296993035247845144598938363127893667533448230641551412965873887389485954402168529154274068723380792263349004755413621200735584241602542390903257622207204412308094512958968218842689697758132700971371211592126896492212147748744970350144336484916337528457055300903946780847041979538057009545637871228326123875976433761451207399212951089222301339352131066577042241820484035927300668164455623315625690237949140934886065896303210427167105556976210345067872993360671089087794401238282662577127121147166960613374530073242777449480365593870242269237024166307039513382883114637157495888357743649873105006723401537940865840726380526302356470297032086516175820175106998079104773028946815468579283858868284242658607346385142771443142762964926465640653466440391675358782245258798495747479491804988505203042012222631345918403959214050183842889714979026710151686919222975389743986317829063035280836056326026005130328178993058815198988981434002920675232002493464200471993445805441413538868012659710217952636623106150413303017949375986911124011127382239405931111151071624710529389359377381580448597689223421706917027022852103063114375877534639600568350165039375936845687374826333513558771839065830550948719589615079591684248160823575861296822679865171437770972250857567477498702311872947783365083504444026808518298208176753741321664130040957945608379977099833924733516175985269307883368466657255965608907636913455301301058093177677362690348067504702104465309689577184838942892049204553442339548722772124084515349605367992814324841647390733844211422337468695294397937073090469120887919857449938530590359434651756054683354705514595100983185015646141830252118757892384581447709907259066349842237989026796514800246433672971433835024107475743076225671402345294027432573638401065234836947106379508696843167395889768336868563333109347624740204548996982221737223976024286992574441815997707300865564095378867138397823023218935428830355766031065072630694668655375854898953326914467983090562258497956128696281029263735393163150165517431730698976762787290759795470863719876157374481709082046531685812034691728271780903832039163876773802834545430301930478535337572024079380809261198203176244117195153884369950922788995718973443582042916762670218058881478526504836146996307628852007225164233826235327474976010651870777908809276335313045051416733411983765678863151333071669768265460136535847926982243915056240260318994885402747233152935928876864436859681947390193181158333636809979680393817827330311485489962068711087348980383715741409358534419964502114474081218668970660141774816834743875705567684834765600538819780426608686692943174052759392024398989991243284247305812835209363201373637017214624474120495893098617943059475694361747871906532511326668782101001802996913389634219203107275495601886724284597301033865422602757568175875534037982272670201530471090596252739951144660192319797820980606255173032801334957365163399675147971010906867515513833637214446442797165948718073243044853527084261406606764456302427189474378036131108476991399381656035465416653571055925243994296814481720968932247314045889786964839865909603927625293345561181024013463353941136207014939440756098489323835115648128657479091993209224948782535634458602656213503638234557253241916792519430620902409874059657241906358639210901982932877598600250075405817412013090154725312112834712908122416817029357474895954183622219488302186556948906161856109264972091228178364627685275771637201617747322142876568666836761955745393614253356799233526437552938861577833850113392054532979808368436463376799303258058268657689775221623783721149021562009726269144836897287254762110920922644422267052590106425251338176289534432330610235922096511798803614112048520165987814683654924921206809297117991039828055808644029388971846872400838917307695858939185985914570690386717771812300637093678496643470235481597676146848781165382966173791353310961865553679054428596184848687068729087676980706707260081432538880004496026074562348457880834051178742856789188935275457919496344240101495711707639178018074814707175032499232878917645655090176408783560474567290260667756688173022065850476308153386999037551641259409637746084133172837965202355090037853974205620670811947371996161114415360238474272205077916243568864605990351030845034543055536300111845448163973431543882117398102057118696239928216557830900189526393326571514007501454955909708118017766694681881551655500783465374575237053978189398714442832204843488674028741069821191516007682208094390344031819166692785158918655647237805146342353919578775199834186166271239163715201534327645435938929581775113601689591754978728189648527989250406052432848169222453144350608905525189133503695787977559774484716114458381150166589578796088429720590085214911758910036318385220465172585308802692209312628322392509375689735564669029202396639291934772845707231637471640975870618408992703183746650173998971342957784045704088708424069569240247723435395595833508870177934103058844109770407050666083270374238940640665870193538723514475146803069976112385087405790542676283841162487073997593452686151862619309973131902472652510848995930005868841558382301571343216865525496804591543087697372935283049017242079056984476207641627470806258659990651321879586923277297808675665008019411889693753057357038664230094969641709209800339143246202383452349243354425398434960751804428668259218815256370498406519201153129909334086340687850446598946582168973599286363650292462072477429602381263713962440417108702655424498790766760361511489329448922509100409138707823567916082834306337358506911861695396047736651638380421874190165068328554624069768451211602283853371666176021425817374040245731510285821143361574717008651354544400995848104623973379646392553697785753019453298500072441852376228049878590339721333053719615626704687775753706821876277869058023178109126379107601952105910268225520820369033199865317554639826473039539999170605006364759912245832424340779234936852261619303364885292242689896104033640502633233883276592541027615996190584551347401737823934570244279279553425665392257123925211419791304221940050076873083800081378339679908548867457993060396904590760389393059366603963994950137218273160234373728891003896816242249711071012320253852098989252047830169866507766986135615531207569063319846069126278134838944158917720004540840391091365953505538022191960374231859656017483126796953947355434624085360186769396882685509294983951195969341651864849747604972465924348970668322488411676784848459573985250023733582046306504318828424857136043164228940213675099599889585796271835212312463439400041520955088582652621605564836788423232322032936534883885068247993523127911039618232912266581870889739110514130901351032902981661768045546949836377109219533664538877455149700198329437172811927758261212835736958259671023964785926185960494937666988079307005735985745743432131501912842961022658085883670209185393735055873549876835154144041748035411720918163760866841045640267818300903625414958272925712572862914265381892445659788703209064200665869435721047443463200004615510389689560218081851771826413035993324157799403113121811146257987402363701312819139439526657984532772304927995394147061650631646850185270918596136058462654680617185454289066311302518460236314206484984966817426476003551135247686284451286183390286330361055484640449372916340656910589850549795282150042747814133783291906960476496859578267277619823701218891156624460483472199241844897345849506220937337340934852989044382511345830068122058637730702846738651430726676099583868797458678192985456027455486555373385573728229504266007083912328429697232013728572116188324905537310009770930753668758916995477689527671495100628156935047729859457324942705276512022466930376491239956328734708128707572976313686711937768804480331082909059184161779676449946392875193402696499699703585854351384638296598115505119502449011055472559643445663281943899751315777670225300250807647650462065172421184073917255111896162296186684314686047347738050532871038631774394417173426045788361871532262733604964418614872751479885258077478925132836486247327798092236550219524796991054889754251913656489014135924242107031077003646299154334231780292770830827901673775176139655309505563308643824421876839343913018450133527175668804089237860461459659148479207684702851535422215795145558466604276154965163888879028285558968133999981696399532513141683003859064522625031973926403997239543193733629847511439724849697049320069855580451029302533629770711382464509698770278906145172914904156060948160823216687488909769067430289364746897078469273507944822237269283853586162082031959421894574932073092268598692662222661953485969257243628913885945481253190392545373629565164006058307312014840265265789992703677627321321955248053295080153562583549259823869422849576019569707039499021613778711580382946224776985614404919884179317660626573801694258020637341738344338855306663215819999991011681384358890788348517542972283744486845692518727859332152107246799486927113372695658836387823536072173723939420036527828488105362489416450338671030950343984594422043793660572538114272811995217415922569260743113329871088774486497673632777152768378787727391335302266235884949981640270530899981618379706198863095931250046698575259046146967692860223696009560019945990690977812410391181578420863529682684094728079020216411442887201789960600207582205617676011297687761217442853748663255337657743538354064046565605293544454034841681276348551408595742417072932535990796813270732553509592477401255536729794115768457428263092469337223180923753766055928099854856526629817549827983795247227420900912551707878681922936861525430024389252830718718724952947726169038188446372910826888010143271226768620073473973000439229149984984883210634676004395086103191317180945845368576476615340287438153550515965823594544470461211050298149556287746024698554697057722370187517036275755016070167831726357021961478880807332161080727433999830041821971762772634449234757342738084530353007805471658419961659409397233337770592037712050672033224796111067856001586815760190565093895502637374906511673078591611711474298955364789195809491989811271761614529600370996675672576720401596111555374993524177808515926014976818521407070499255642597469140671028879355421448070670057866671656809711036340207554198817252652531491527788916757019618370298883406736245613077241722867866932718334892984959515143359876621195007308219306885824432185544531800079076372827371618207269014166035650639045446706292984226007188948750908675553821665176847937177583206744142921159161108643903708197930278867057433414344209943909663053793263639889601489624556532328331108849812872379691643908692681902685302252930477650282274849086441240221839331214135040126868948236363574375741492660572440237855522796275901942440926424606444062424343559992350272645238292170159178986168635317443803600405328513125563294513744760509340684339066125639928239495733756176437969434600582428119105289017521348884990356765383370466543421226000025951444709378076460251200903102655210568346530346439194600253832653817312417024498789010434978779790813845150766769786882896259956957632456106750916978767828886858624905063742394549224991077164680722463472322311148035668970428980366976134285823941403237714817934053006920736991988652081896075911497838533788634249068778023223107108060837972511522352431493575988566242327139112575392030345528947743644779006860181482354052491893973297303991306537618527283140072772250420290940809065032564138864975427826183499856575021098494295372247069147912087623078308650263411919700516227901301452676247613632468998378421758243803856542033212556564164726106675046478896469667270295795176192406975072116471745788397418589431665891810771419798984959203495349799269310126877575887838339742472191976749584091721141756466012867267255775235435422512760209073998919059209345219683228739922908994685787515549250607207059692756034147418679717120427256757315221051077958983990889725452723731792141160239270425581256273938339525055047330573430242785548234200614330849799495770450869300653496751879529520260001617323193044547212775875474583384035139954515591056952204186294697698057315083023007214355896715353029318789627048679889477435658790650439970323209425119015491435986474787218019020505976999806267734945882901487352560502029147509224282798446317766601270901208687055801181499221496481373667154337721091188062756294951117217590953750063874892999255712428419999765767168626109637217801526978789709094661713586969543291332123270018390025655200042346347070367133663903962239836555752896810511775917588095351155289783011339718891621629646936533611960081212679255748952623098284189253686539986756755230646917111830287296958122742845682257957183363008649767876968395518725339338567324403098494665158948938286052568574911132763109897682857292108808773304367661830468228953879030723506753944158399100821552146364262760009741638855553433974414332222581683986544290502517489186133951603791992009872854356322167076545494404658919419244426247565162009130503872722984122395243959903933887973406369089443991218356851839072904568953048701305206754733277595191210537286721637406006137348579431398032843459371113700722590509160289408357390687020206459702650204417789570829757157777790179525701158648068417043209545588485367293158809876839770592310390414380624765514845007772032058370473472729861583871556347223964605070979104929665861594338190071266098276362635537339122545044366911980303220098335000796426791923623844223225760830514319759460796270905717107347576789559490311999534961802187297933029842615487862824769543957225649962258708043742774955152386000563191204767169152281848804919255473956545788886025032514792432940928970213065382800105320614564479444715980805541446034505548837340887390971807447088222659247429222253588956975586661573334166050955041669618800302122116328287841680312242650577876654532768050417489111231540869737467953575964980517288107597180133318284772544128708723812677538757504099140983083705059288296902626890924355903080791453350402057680173705598991447071258731080744978234745385097040262618149375653864394463128296932799778435346211704835515162964015804915115442853663253609829040314029002172109588246095439407891230019972036387731192756025491151856395780864702668051189888953232293311498658348633057195988798702548747580487231964017189617104950788102596124383754013489950257941319723113657863141244218647044563131466740613361983299045740356115342375797113294593399237971920163305999782960594074128107389114188868663083788688742362145339186227200410058884514947924648019746019797643589158208797194955447466158985144548057528042918564934859321541820585841747025277630355529263801094033941212156006589200776645457566848380709987833920083126999801942005304408471537494064167648550083223525010446340801123121217597072033283508821616704462575791802821203207263382557799741113982222015852028143065632358211713112283685744654832260514756852683677112976237332089070855459558701681917191016204070553484211488692309044245208708260807331787631847470858752662120091070944144457834287658690573874566870982462522667077546675879771078125325035204935981889710094103086346906819748564029870218123123121879343834144937296253445963288742558792634347167319686306448315673726613618151566015151111588427579952052348311959853148842534443951061525689779135118141147450496163882775722637315567735791333588808132913753265331373729428811821319923368168749947579929992779536836632316774652729976210909352328105234249462324451272121866572977515896542148851907775178977513145165003456010294244849755487136771300985826474656729626435788092003920255665245057812613073056845484913472657108345516164220963104586492256409034229912941818233618038129684146987605184507012770811533406519817815029122756198725808674598949394313756786771758422857814848265373219587139491544357034905948374489414529000941553682174273432265049323659067902174499177941563690419600977654077456714809795109301221934157774916612929288591651071069332383742451206158220706382772164566776848575965062104853396565699732378804705846739541376276366833140959413616474348448444399483557384147070780349342996769116843518440711063401742172113352220878357466306259215889602159920640636102510027973360514966480824623026123552113048690779511397741865172714860475439381356773812957181029649603391588109853500597639809556474860564682356900128329622738553030252449950204960596968135199864677642033528277841463908452074389142151770415996248603868619733699072525547241851899962164884703603148087104976683728719017993604833984869166214059587912719857835764971452675775417404862671543723424192175079093741547598876595707159520766120589933771225144382086678930717143590345544053511033048433077959812390418000634102995454829966521899925566538394969686416282012249379425119759721491180055714979064068983778985534648215053212001956858760375254548083938449044442649329734127361793642063983322667874637638442388244564688195028629689658071885960696833620889168754192277886927707334724924573191281808695241783761783492052736361664409798479327130417219921965831699982776273535164243356373727153893150933914469278846088350270457822734990986429765026736773434040747562570239788473860839846306053077768953674878837572592559734651874836117221515236446289754848538271171752120362949339691114798182303670608423146685413423281793776462607798820257395620308865792771159997881787761902777752514959188758689142415823606179622214995099070073678001918749762886199111739023034462678968848223886367330961337714726548283640689695951080348568649936535633739281398293536978465688443969537773528522275842116903470609039515971100823779698171804564642223434477518507546609928809146038790617488128724244114886565686139420368271474546343452119256766379938900104043956699504799789704894929781557768015243613194374587465656083666585129441965125750653046156503578264837995368475020126470173734914396077009558832438038895944789136043465242948447006787016888308210115579779526235507576196737295579601949354058952227209256399898639265968306908989147060372706943805722538636458940809788093372275203367111344657371695326825743336529528800580161160866762708681960108514207134741737052958180540713530204008156407135020587373454998621404158625457363156001481357677485433857463743435073412347926911561295461338934250224449669525410976717675060899277222192087908004009794563719109106074896749297051571803752921565812474032422884496253286831692658634014359646173469992206215299943377693642749216896324354831217497783945620252395787018441985587258668576520909243391178887143870665139270717455682082458419923879830911338276615655659308420627315344225190314241198261344031039039167165660505921903262228412418207007491234151591744317061485066342562053457522835316636591558488484979323595450345363900754549582274028325288324911869156115452144607992453710596361559233996422242788620784030825998997101331028500931943195049369834542278471013536243520630428491878778415012062846528102171704083851113346346200899284160243961658418846562958727431358030752591912721637727068324666696774445590668245798120400820789809500862899933930275903823636244004507133985719674505635296937378859043386743338274319068383645946595998716065240936384279293050500239394638658199501329502321275348855793150971369711133062063255549217813434802610015746482778171476884710584554647372538472133797425791222459913349570156653224989757802385638876583068010287077385211554258944064928044860187972283823657479848221453531661213080023113468911171685216507860273158254012501162288797839474178432288825734286579852651948412314020944485310954094363960815027870796510127109149495508211922103505436403924308810975433882297767404993533507340158187220306347921929466059894733724788504641791204304858726498027882382091946079422144256198016929509038329145144446212700421365114580567902042205704814399247470765154545341982779241150790759757660816872206307162963898550154087202193832500531112469570541381264692634318275194533648050907897066049142463042003784684163289364241483569038094484412973837870516747182129000845716802944401861765665175044060898306685188294046754032731345593695974787699773765934915690874305062342152066565291836126592625529718664632858275693217986731848491299925429017522427689522516843738747513248248944363748456898149385993781015597083334722758224480177338198342851958585632005546497830368918342325292815250906610676312562490899867535465084070010859262727268350124414574077649878492571384403527978144765580657124002335324994397245012471514921277489563558353709841947970157949211339931435077283512180510467333428220426372682940982363306960321148939443043450025364319167394364396313542482307728979174493876499007066400237871591039092357156104709650202790778903439223821047106344567904524210267899065716632646653876104904770666895116264826099030585356561142437333722186790176780272714982509002942502971543925040466344314719866269828072573561060774192416202444293715116030164991794695326761747305682634432244806534675050446774057859271198618337473948535334402599359000289891817845127042597853361767113945745470525870541379902293232214959012456164755044689600938056949057067722498607754298259934432531046069887289516011988478594535624578430372056827832123872276573518949266052946004128065912252340193619901469243482987893730253548346673684891962133846287001492013240339597942124593620027794761207087450876927762543280007182772689866074428790465243933217974010635027105018579265511411901808513553448320981750700576394972275334370042016701056134979554765233096168120342698578680034702087056173505985187305723429680360063920743976265360006483040376131407430615841818605790091730147797144347547211437833354317738379286667776996834340860740050567433843585474192444991400853706178294639059970569823572718467432137657393216490850742058488849155676059831672662496294486700908981721052063644705201444020120559362457466762780636588460586239043168082802386067941540498587982190351401818007858548801744859565184121671992212851031066822587660702053355562560584866547795046343890975806922957453787974179276302885806576868734277829819058760036031026063101128962288710980066327874513154825098772797022047222688408318293859725088362539744480005911652005742185988026186432985173484011949431483007397279870996009016651282613516579192415963160463031957830986530305299889176314680092654693376645049940667138629781205700306768056429134745659916597955233354058894902222922912661689533857460590921644953886272213886592974772069257238281392578147860151571875887448434883724520658804287723387687715956790064329030852533126111566168493463055087472778888909861738797258875434631385720147559107429362865874050504276239438468368481370806575046387291813685899641149696746633192508244821190087888578958441151623993782273310472375803422805190730528149666824555185758593919169258211443689141784545702811988166839833740582095862675123411278093204244854629718657715374528864850114350102992628622147045441595514792422233383770838295360393514593265444457090603303906724442544634906891848712450339871233084355079906685694513479612702042444016850943412962798461356599243936988205647977583856188499175397099248790961577523663452481173225949869046571793579996189442372253630763301460038738708004783485524282958810145356147400942086175467398165306085255371428251820725638506779511278701754693081558551641057134712336873397679095034720437912605956259906079115075895015377111205608900506704187240462234501972984846975923917859596872515556260086722315913522213880596931701461829316999430109699069002512886804184262481710031925337761375561565403587325686888112899362281989745335196425120576073787341346897236698737748529743966174424148498597176748259151288311908936386683593512746355612290594588351853006175413057453677220378801980045638526161572144195835820721615508378834530336268211045388823139923545889405261425204140389709919359988044467064515629822866177642528655875978001682025697307523484469566203890456937485124570470831365094742914929570115607295030038985912897831496514709885212841120623651702678710544051742058659774349772443263633697428102877549839119145346317877248026017276083167885686382422148896624926591891451392909552829637269561850138523114155626343315536648123338801922642069046703058451607599714310157008006481340889809213732679265023930239583442678209889268702703143823882668055467840100835094018998886688687439455492426961603558673691084480589871916371658907005249776851386296991934533950214947924040750583817267755919359562866290133241700133317389596329420371086219428401396887724323548214374442132587236273188488819711477810185310627503438165900642271249723141556637715435982190089871273080460679057979181004891945372778685389685333556621456347972412223030560460975661327316264727094109438608329658775324990935295331667206521062078156549319030037777141240498712246702801057765546384465333510502253404472737815745026511056719144171756402464336912738526355548165097780052728663536874209756850109042629745754323717755564894712102549068878443562452307232785630158885803862529188073094339358518468815253965122419353457515731751127661609899736079199892678838523493841801296894988435289904292303005614872121966659065238039978018368146396037334798582821168758276682474216606562745017563732807608210977859954359861918183074025928103787412448755014590213708156245877660372483710510926518736683311492366701438027153599337039705445046607559837786442718760556480793426685321261598273956970046076215757342795667660707216588937569891108104318424119846931911116973668042424012236394231936680662719986925845478312203163014332380189340963716111791624881858896740433698581112826624417806216178978305209932171650571016586296552282663768293421897938305915093043361411532375420697989789852682505726948097256287658923268319799130534864407010622403495577532164428783001754356774297731221708259342623704103940962644900186883772923517866456077839799467480091267620068359021229446692655080707667440293943508079328821943178434846708893488860601117518482530728503463888353452806010271021942303685592310402677482545523976982227612444999217396280779171702510602054913693962973905082561496301772512799312892110289976907191336113281030813802946911799651557129869494749897683734621768093081337331677504071670175697516039117144380918412166332984070717711518819533055155756087314487228183801719923745737124108019556338621808186454355150307455054839784280833919151904795228678562192618937420770901445034140898454467385893601175438668214879806928121874698577899604736191829334804283785617667879662901203006651647022129149817693149580561286723328025117063147721393441219017315167833669999193519678242509273946947677118862585550724994131953545998668601100667126424975093098576090057370739570792346546021674529393786553574124090377739366514789645116002365923474735444494114620062223160503287098228144335497295503927531891559192882487980952389849729273729925016513452414472632410230563029405117507363305559744073819599206885337548526780218944642431580123683254704744935863274481851176094822861725414620097626336366813644296084051152890164006412079301284782913038796449455068765170246530936878903317901692982238537189244592721370977268519774435186819849517613026859009431723319141773027387271280299902156495823468515769357573652539133397638279663176082762288252024195353683551217549534886703968488255323399425720023867606308522404790235936338739766604479687972378241045701745584345318664420636539158587993141526898082223298512744721900442936326063008573055372222326528280277441742275937097658765969150665749938445455832031873651228011897327823554386936352433140736164105710975944322460410046754933378910121734460974784223891106901023489520382191996469256437880906125144640473839734080575682874426682640778192569381542116457067726232681432270426600088689415305208222845273097668307640725847741220069635066843760871859273018617301322451155821382047782085171926554033593692762376536085021206739106178570009108812567823226575176559380842100171298365844324297989570268350834474604221932661338979636389730124516431108206839107320749880111859112273507213218800000320244138870041113026804921927765669461047456582286187013159828781593194791350879995310633986344482718996025965452026647757183891910617616916116907312899700039157321148052686355249913590099125440827425507611644811627450310853695373516923143901532746821788402808385390028019139249150067969024590042479561871183909260529443226074197499212932686125501475436479928498126456164289376977301185599542158105387904881747100014206878594899503489686867906266513745290337181903176347493396370430517058632140233742074489500643768684652578839226491716674013822907059523419794735312159928519537202037249760603127577060314079708981491013114850759034501725020397603216800599864618067864491412745773437424230173905138402985205049324761917987596355817632811939002540907780697847462266745264557520703725564593772370577731418715561256192550798674609148772623983165892978953595272662060423102422713290057363148837920914271262370308726484647784607294232650622384734896380551619803454855407104270637349822698176042463308503719412010804000923674058317161642134743650741729799087278756743788294632712426057550109137755795385726607864553656320562723636528741080104936003892469987706815104092678622248848990767655211602183077697542190783043002848686405991209854464634534997974765379308953714228025007755505157128921840936674585100620138305107931473536831328070161941644140333332996295333719778736901343197871994191059425842701195951301465625383681729420003386327629202853784632367371655702888229601412887639972201735904099052799496123380877935251533335530267811042416866588978477918457451304414105764374533773835062016107479872519634201021312381187597748579882589015137560734175207008556227584462656551470370556456812129715296125580343136156201926136769931122724859387458995355433926040042314873381974663996328058805526757240279478707045864445625357776826188926062478646670686510696188465690827627321827806434689594093417959135416571287246226384998206385585617519466468808676610224084478055294281831979925194637223436969225516798370439262107052652631014422951487413465747886149449943750916086176585246392533653026382102902255543041260166780443068637552995055501312600965523153680101236993444804140063057283744395018882166873503891770697445997768130010530019442466776892818580308455688966379391986201502811849037112806537652474659511051793185421345518256429737456311997977346034486548396865738134718242037940538594419332836746565033849847446498910766364054082778150197444217431180434121254160808268245114893147703418271772252572218368065860459428311227329627577773302530151491902259669641301602616663616729405951006356509846025826367931709362458051320316295085208004402759927094419118328958603910417513769100235120022565644472098455869643868937636459588415163965087747534051083501891492444852486695266009836475267555346250847811146481280609532755006142780994265591294971740947364170864838030471396377742005638032849624596097612291339609041639629383090039624340644398212270563187035924915053668202831915635547094021706553224760621780569762126992827998344025199563034637983890262710953886514575060770346242399936353468759914535147367426501441337265543787577050319427225147055038943194708941902500639251497774487585915297117120452741734835153461297934519929520879265180339433489857790015352114301545798571181392494370145650733907042655272877013716513327072098042066435366680580099354063348798103027509288276357998505162069481469536640903100067712931564487939234323867317433601595663895242181496791662560375289792115610281102490486801566604435659238884129660872257267100659965454366162708714126306450620897896157452975068865522655931482639467760138271225898576169911651309155091779074280587076908700457079995352812377999608680050637284270636765863214446892080945179833516495098616438483311066259401679266485239264917727506606227243671014518981637776640012910097436818837488132969927445713968355950559933724258400857707963767200567067388892056684080770300890255346566203604623682128151438118316988087867912630621330032190487523397335371971142465198917804592003452463319543739251543876376222960448912770003923869736304959795912325530415095879219142216000333444748312472035763159595670750093703036090764242670508243552609406046958727278638768389451390468408942578904281948123392950430521665538474344056660570552352716674466139407088159710134190345221966789779561823246403004680044070279883958350047410820008360977064769973147953274807227966923320601613043257061123816139210604265564541106479266831809643761820994441599506609051730620803878622539812171774090808537569298666438413884547460703186370654617841281240686159944165915228952823107148954345358895799897665534074845295894639631237986844242262312808112002703673584223420243932128402131096093718970616076336726302889949922925637937287290384543334960630240242964240352985923009062828578209631404494458629539950711780237931162066261537410940000695104319505758150260447119095709088806445081005645260360087899402774839100914560162413789424506553594851032399092145647445441197703231501605223969013807542870383695819073485359569752018793239738848434945275707943622131133941673601217756986322014146142725178251931557143996937322887830434371605746421549092668773515784909496528800176618151351950409519900109072165690943994403517649396832773772886442321444269166265929440536738041247845970541013101255392712593715090169757088708204238887470587182336497702269493017723898527124114408089733631340708853645732742128147991625303821716361882174455877926383014490103810800253632223533074425181589055115959738474769699212597350516603177935267963321938123603559931347887138687942860422000062029191521365580806685420321587785432417098552404623970938218859263226029049424802653432449919748964370122549750709197511308589605995090657638610534587204961611005855940240567639168000676828271765129351243249059269240183858741868540490254346416064116948516075557307457941985528621592440040997443361718571723771158374465983801619073380229356216568823684300699872402920146933005677094042347125684788886713852245404726099877456864304878149994145455410995962290005113566361107679874086216788514392597044272248335763101826651741111939481273298794432847740676117887989589516624022670137542438107498232455781543832423872105947353666598412506117370294285502345780817630484053416589057691817298851792399357702334171144033906856540082430270638910204148069149208074490959362421376204875365966829101022419533654399012492525140075012503324131922092292572952412428445856619115944855581678630792282654968480119072879172906048575645467511378942092199745410282317319588675270841864569293020592065456353051038078292920091974550549130831423386185846582399458725180889378270319859626766645075520555631557208129060909687149248674926254694448173637967298914708592572255409102148127174969129664533430447255496424965628042044089357110720832426014833531945677871675988650123634984893532973875208662124298804101430604203808632332067932494690575465925543693824797988701893416768934891262692236932527337578720216661862041489201041583226935858009289730051440217989695621240019052107900350022093392625465694354718583710443856670308537500240060350819870818100638715554242664629905697317066048695475724770967904464812567157570083121909513215871333780678848967666488711572317420932151919469992361134556520468483142936269739725058523799777381073009161303704049997285468555961917491907332972487025640255009376785022784673552044987411008122640340914502702751561688705643783194677353351131496222061709747935362743266762829557705666393628032518473812342710084275534802370946158308541568954386000812775203783659657247265878265087121315246437041160445692500936903731830975350307945737278263651441742478608989150002589062573120896199091641289647393070848383232981535860389519452512719394936839347815678767259547394872609668284207345593167943935128121754808072157527282901680247794654252518803935953125143781386634740693666976068289999203519940127233746730942627910005619919799583480605712222488393108225502291293807171821654668574764608887007773029499623368776994844504801826400571138003816593601684152987903669625316199861457371242428050045147133544117183007601029497752311950648609993329269201102803990269567055494396569309035455895003323182301193671993742877354104359594291754421316128254248071799234365460856721158071097868373669981511106761062830859024342220914787282530036029535894349863582843158493128670869349023619615203981871601636457853682693580018841798643803225384486879775814725372361073208871346132474872334611288312260002874508335324307453053963591973869782670897953191688345571953177327453115351879389037608319314803074956391380316101440814138163349856695533557286003702948743108942854418605546928811138806384385379006155041240855230297035803780271380802376731827567652292345424485048180782761598229065921342739792753895173330493938669493019837603779687525572271422908735980751712775276331031185286959067406091701831064078319997210758795654643912960442068520097377464964014330445826689252309185716428373103790599123865063168598867834686201096464201292118147355961456506645222133734101757581839720890267846747091464028574047769789316162226263209467320164005740154313714682150073803560764497719833582926655154518832805428250026448147718589759856072491978696271323247042312416384331803735599279140180860207575082900505226776809879372298434522521816118127671686231545983555357135798088459959100281233549576689733161486463945340326353365650917053936501037548695495623992144743159221320112420836225660761697580604076489842159357339705105021174168893658208437863810956686836844461453167484814006634343507975428965205836339903245720777799140453077481070976918497610718833279607058630900107129792216041853001418790924508859997040513114263062444570806026376716773194297769680705955034338308579343489161111526564520253074001758225443282909018439633005721546976404506073748209641316654017882200304127844664070840548563083778381386171395947485790767700919416669271211153222055159311386490982257751965229307005615208143937897226158138524831998206416205031710934948166344288720461045400977174572256559693568974650288595248547749128794344800297806799368968217848062197410808930105107809047128495595696650785245941418946153506228448883633361413003062710375180904103756447725159953835217931817692723299541844578562530391451923863135181613206068244077261602734660636213062433892890190619814749079832477965115618497812069857477221997537258450816829044261072235722148202586906790736910855665943506790260229040206847871943977927531296571525788987349739931382036168867717308668233652129043238619561607043494660953321822817501793405972953587835774410173582668269797593384726712324711545840097514544016603647741770320292764283028535979517169299924138842711115911871036972591255787214244754504270390263428806949140186156455256695545033883388728646773701140787224143235460120341109747097341122585002975991489387863875801569894496651681780004285115995920907577429437452076314140664037138272882172442538892451595821904961846375269546316699539379703590355705307601389920637616322282348237064525115757257679256635829278005489319493112841540913353790970184927238453074178482161794399479327966262615414085713337621855981725866371529905930011697349540031085313426054925269240900070847893946039433182308739919090828201197636892353550952046573653316504116555320148718177764031823204191549162027038048167244211302576085916944520877167812561384399679319712033349159871882708533214536380399472441919590863392409351660032932755221786498794781813156758492140133349667584241822057938024925137140339815514549831257161871092617299409735432702230863950197324037583926355283627305200637831146196332810112423407705833864755991107798177513404290476145693712916215019252024386781466319314115796796865015856983421464403248432574936915842634429805458594223785481766824612256970679577005499468296453000197941101540964858187438843909940707310762183432760684647505888893522355638955894240838735769749213763368518259575337944778213853167096227702287203832741294100061567845348387968093073258840101526804827294840934135977696219325033947860888037934859770956266958952213224738747256658483719157586789028675183698138875797529145257465783435168031814189975417679609211002337001295281752063276537145491440930058849358062735751237953716716260450690380075081328377910585752275748725986700338717247323801701254137627793996907669110072513901480497266148111675262405542941651868254514649865539936281489809093451379319456115618306946353521975850896669986811893488964391979680936769281812242768291142509634352640897614860907436800496458860746801951883679622836600861367966707415585770745436723226746854991239344160142711129292083712603984640398267892303255156106494578972146983097416189125976613324590448500029697038166775708106858547961890446009110127085121491851016842935818360572990506470939297934903791073363998547215539801211775150639475532686734734475215637136420438950574139606066026674582202539094715225860378039785297987520823517367266441690076923865933700960068068553334832224437760063294213338053593490655312584081045739680319431350083336630461402955533429934891953933049616294903947719777247724370823894265632890079324268873876359350511005082633629913994376836651449366970197858955628117844825729546370150291135161144481436336395230337658316171973880946257539863045518522653444497038278569569915668961416201171782995530717702447446738566216261741587169480260273079767990018783630334526394803512414366868459709698277126249120408670417550828951467949977394277757178884591118061785625359532175611287178006042369656985913374390110936059130619870380158413747558757715811794351014402839436483510653494192464857773898103213036756323967918305618687778837354410344021813101557321348972641094499668192574191505111216271715457282239448123387704645576625397825827033480675193384215221122037634673094475612596741576749934941908285817819978998970644973399713267869215363843768249113878020589301428588019598937811098126314020053016041464516543039577128823898705247554124418840611141055869910315603156733702974852777009586376673038697212350111932918899596073184955751775995692052563913119611113660524089132856667345399738442264769278993999672318377894228807492827957643261107549273276630830980136146065495666907436969195458408095668811853830980083283552507891819938709346534170070656807553533126051976803014108877886984758891148465154180432543737141876260502317843483723518636317467208574949487809299783608915746095349763605896174473155528572211284259142925879221539834036357674751469072096192471692722739565820940827843614284968546514897167105010146565958493941768079396083072849851836175854299730687775577000232168667060504308346087434784987923824562001197268322352895203409668463426210701917363698158171881864453426956374810314945821546298263646049919841375940697237714133022137299872050205199919993959386307304129257918296839037944944077083762313304014357586828601333595595465948595558050689708997546498739937078075999067487862258853547589336633978517575311062692177678058931250550160163478779200747238190145512511601712506370401911932077547768841560703570080658756838124973753910874024748185185662677288878991336987682521297950624495522566821679759262404070049783316536079106381199381202205617372177895508416413168663065562623468404164388880296340542076030692815497239620937717157722387656979282642659787850591236259521021566006171149866913655452283500338390473334562582903370015216087655749561142975938413860947965392031940914968634668963971097580007565576706172750531265618325689763676805826453067648362157378365348825559682381882594890701344729649158283925976716472264581712118777534386531600899756445087996085549754830481663292598949207423307846647802229219121907234671590088560619790921725170712661893471377655249010217444001662191624143354212966321230781621016047541353749735547675299694312301011899047026622217186015397720298169189547412281898764465107884432657858198897328941545032428128973850277006353369722902592293729830150909483103545005883081520640957391572086755565319890030727134013002601225741643468597579484548536223920198664138223523712001842128350773298998555232827911257905523549662761443520131930316676975689110369925518127428788618485961877236696169301030799797687465085473934673565245695134170403065355732307618895050660246699176098864383927467179987924163244244228656658526885904857924149680864007497146689310000118184317408660024137037302364100412056424076661630869612615139961821711967300646741845438147406872795008287196226200191018244286949397436727958590749309278954402826960733975182339919437660803580706482636572289417753609225576165534204783473999824539353557127267787680800927833781996300118976977731202919084771499413734933157866878578216370324106817272548192088164656948299642541556808115120797452423841354819932911130818689758926096914030854751826857973847679608382901755725698417996320487938153097733374103900375108504842540831650225549948485359423424879807070450586209471057637219997103451563018025930923471210514408269464644810250076588604915425710084984103863598790003539482387807649508597712122229980752956141484320460838614958321632735461594952431770557320668757097781851725012300278312733309871088357871335276765977354925564269049997576797772936999988526555144562968091613247146745341675286791335271658505571393211264958077826754354043788635684936205175986625484342643535541602745477929331997462832892772971699311286340943755640522057464055213147778035297802331745620364629410630737057252417347844522136344073084258556646653667134463127079301320799203903908245128193416980197289124901075688669559467988363965603689039360689296943263416518765050963859976883955579929778001752623583393751747861717898504993068571354507758631012561415329743520511866458758026507287167231222370823688954760708773638011464456455265774809183219142762117992251756645110889328683107032558618728127366370685601680898628005859287349763473164568555106488031859444423717650684456784341133185746328371075573449998930805264334311117364194403810298066159846426203232677035086695048022646831302945704080347823130438462453927234506093564523789560373837740334043125689966233217898779963592127490588906056834850867183486629797103658455464673635233330520362529857414274247182514917302142591886135103641163732657864983235632010423829723776007189905377352813036705590478158688404023857755862428477592830362019770194943066772150666903466266643169181485541946840856738070857831484227561891425671906682212511716655614649220490099201598583567999223802207914154511474888971821937005052063900922795520798992316874282710547788653380603204114342782301614829674838639662744775868978306739053209846122462215532458389096808597335606243816347401645885541061639155918834395304283166248820843674185398828127517024812471706082052665726178034489892710392447229043285147478940315107763854367687710511274110421662290985939235340125059370616649145688933449008823668380949543769079539899270369979754866872077140081268009969426407486468911750943034438873869081041020032778199447355886902953936116779832430045460888536731537058728993491680067071880162460073290021348780543828319141380891997411088178115457971217598927917531005356510350305935010425041627391495319869591756329595081429000468050090638301364382264814316661712745561195466288091192310518373286128790051925041252826707500138762674089859688272257517496267824378971657085199882632239450924297796457682325072425154416114089758204238371546801692938006733281891616710369024197607040188798274171502025641765080710824694339714278096575859130475697041984868273848989369190383952348575868776253775596924170716754644884191218041776554698054116019805160919504194659934199395793542611439938879520975319331146156430555295536962907480072803243941755250673194586317522581723207570048049057560622271506351168618668285391686465546220460160504561214020946936165702025787315116909039055974923885359262397621534469504036566683859244469214357174206806038931760756003515408673845547217014850852901119489278679661452861076373189143343239029584455206866736177210889202441377674446869744956349944315131666030512163871339845216046895022438206585405725009924084223019374939670161056811697963597307220436733041714659940653725204911868272951556717340615731100130818966841150273612069882265488543568950162497931060279434250123715104911400400208969324151926153740379836294770280711499629182827731840884569656357781921129398129139696185118701487829562437366389018351499765379843738167669138776492953174147044933178647157399042150119214916143061316195400209401270088033546154050126827085407181432851782218825126503653178476609392199445572460231844170136601942245397012170491498054242124379550799528278311516888327147592495271137154037755609497580691361078182302553056672921286890420357484154226399265244535886940569907073789132257625300983838841615836074452816063391667946897034404376747887282338870458046382045395042869491105137309190034924676494507802321526184338341523684994600697476677357790180925846135875910505869008274323242091232910556252053791343559888771399222064278131765460152202261456648697937162168126066648108446690632781741387167242209970060195628337854274316919889222726906015129082997535542029471745901833934018307855110505641907196915038160236790475038117566516867863210425779068926946744518765517458207067481672394314777553581801010131795772879321194706087037331819065156580005769619266396955649169135152017920465031313639624440873312320697075680106342001606806129619801859380420272419546162200061005334586868982523712629016404418396854187892025709312001959037947394756291662881483570812883067880275587975465506342385165802439590686440773522492383352111479262283892991915449538373755217079896870622045787626929416953206450291951726085166724523092245954381357652751402896623979375263838498712109702487487776556757748274174897516951267847960370928250749984061876187896021309082390692507230814784249257731657280887271221145938962090038609066516392072178147638460964924183314715595012469144389478352886405541148399491969389410927488146307118236793335215928926675243286952975676444787053304112294930456712274682107549004594559641145854143273032192024532334251142247457301686701126705442702103372378609832137113930830674889656354844908423660199288518922521085219758279703497274130538535671178380633306351229317149390428277499091876226464256780578409350787155849384875216465830751179529286552899722716906136236266146276823588683532063700852931052426048913701238779810553544515888180295824189219133008660366670301141449795520301487978778688131242895867013674993121208204332070155717577930159364092066179381940973804962741585748157976893894815553320634792926534133765363718081519976190534184410280959188526971178446282258987567492600695841310769337282434552666156779271867421076605000216788066554697233790504505996091007573451225861881210223132920680775813467319862746698989190378860107757553880801483161356443308188362646274303379132329171695005753029785051678572613633193966512454851846963584067675522393034319990209152454212996655763077640157060757152343120472258567599979916410606792432908657694205149309178783589379900618192529560966803283242048865837955584031334160837828586252446379888211708783320577329268043842742394925380345077461353807894776764782283742061743076079445431887156072972798007908791113724955067954133259824341522737253050960981032774336982906357616317388298831703843767091112768354230957783284024907732869169796735059147681192447838478215091339072309794281915020060150699719363418652231610132568685359301810996082733453414452717393105669156004446798058592405934059891966906174127992667809787852264886917436672731253903770603083351995742601642304918854633991215000925213100028032940321797711798307321397881132733671350295468823516689894193107664198005130038866752833323752096233665776582168096613221874115902902553278326401504254681381126616740248639046482329010197300124004294796176822625238007990392213101591706844611505635434548066393318940394272232976970120870820828433225172496486471941063196594094740848199114643653185611144470122831953483026357156315158099986336033259359590105540084174447997481868350472072506029255573560277199908602199546921897425339982799736290026922595606681177818133803030441751587796853291063778405967433066866827507751046839556858859263121150623405133511800394427657130275391055623625651862245832980401110626119265986950053725620976039683845548042655318182152649533557047381257388668023586634266120689874552966494314105566693936371836387720627881609651207091736048912881124121092427367136283064583402599400408432920823838168245811506190145228932004792118108917738370922033267217749482410558710000145378625212078334857259109607982550510448093755051881167139667676363683082868556405395244235858285537593995095123610883117718694168503940083667636531664174249899700108523053770613933074667333801033643986421582454096517438384687504069173154827864227605962247861873945597374918106962479150807446582023930967749162534443032173816624003693004669427503396530981699907176599469444745328069824241769784771501352490533822801954253954087384081082997130743047863439282771446969589117344784636200714176739689036632223082517369927058829234373954145764923920088389954917781344357657302064094350138548268744670427578943671137941706825895249271365452181147228466073220583990403541710571716362909383483420927760528320060677034784963892446603391629656855114961276136934818824453987980553225044653188195832538945277487797079731901436617071110012051409066052121670963052309396162419172957387542449419628450018361703813338096241765186113286411294356291537828078627188212137394732492419310345769386181954868033714615900897798386203697984896329606158683260943966353221746136085057542581628886016029951990469261511500662170927681671744472585731864024898525927290964473707179431286590114119985880544579792175952855746207433445353854650298826234194512011639386731345274543167583366298208837914889805795941496251809714698481127320169643414111800186878590600351238049527029490525178247700421742870519443474158241598997157613156407839073247694012622823862511204145704867555884285714372273866974605699021002670143774778598022862288779488247944533617130412227311342159673559242715246177980736960977953289403524755449257695360100176773040081287731068148726642414703258589215920534914694094223763295731977289261107326683993611260332019858553653675408412652716278681069023772473371545999318485334973613062141475705518854005576869651826162679612088726318606345867400143096761995871987781407832271112495692931018230763591533323923613690021832601254629605704995033527029028282732416195713691950563031966796111209515127943966772179293296310308591257834210839565382256401030890284436079628302606577077736515059048234326517832547863608052978984464148633914673794413678573696870077932699427302110881447152614179278296055344387319480471748025708027011012121553662412827272680065174911709195427057163682223743185217088978949500122106949319458301133864005215887200671371356111140773776268437248629829079000473396628005775105323053424590624619251870277622502801820103931054003164156040308405796729545549905563875893406630896391932232610939458799109349670623387552873266326483854472698647799762489960772631157135514281813779750482605841155720117093133850492207181505404013913975237708190947615885507357253924192680121261527495249273981621633505061575934882455184816271224653436308300830469031376024249767309322062300955987160513640441717988189614902382314827756480206098495570827223882100978539094493870622967012823604969016993114151911668722565312040011435053897458790998477627826586574574738461022488048228577189887332050579819484608132293814960107828022512303676431463190313497958219660751965722375849428581710771046985971043249707870375275259132046589048075336730577068604549997680951237373652553023394552491696478223170803886770029248708489698699549916407179172842992824238109196899551945280581708749120440909976646525119585062931811596202210520050503903535983111240623517471934729580752915861710660589647729840705630913472179438959899501497753133756496256690378864396346436965707805655612163923631665759349579546053642448786936273599132976798401199124798064593422224558394825525809253923219746072431126195962154178791727078907738747045946141563849884172079099408179380706299229646455333557880978409271912850208313252115122520695559861811511564524270641310485522845567050162420381863989939689975356152551954058669195927076291977438419313942076991829916418964292784983277807180178467474977596288933535855685671481612156756026944088110493315628062027306839358009183102659962360470031504950516068734515881135487591142486003342330377588280923071395292139755287203427071691121035891831773406987114695558038570721555402551356880377427870173629175925157541895720419473394728838718000416338247659265839832959436497910923712448302753201481243707288000091462705907231430163896161076222955921257853821921472379229501997537058790255277273025260428095392991951586879590991307672436506245860226794717374644398068766427976136193614803737605946416651615117442860756920492302737156008756255845057182873160683867806403376823918335804399644810915111386328431810044691320036499952667339008244422698624472789072999886838047060055289726241648332808202437913740961541628751999924405441754927486366240070008135922052059044391205502848524656191330715819679239264567282552205161314241432915710028069392098459754461937273797787151995680472900327660227587125499308444445139571833397609552088601442577049811135041018605405689462148174396132828356811936628248994934244590711143004710429335423317234018842854439176581123203795888168609538100487590328024292600564944217038665524982089232705769978780917037808270669728419129534101065033213751882457597853675869631414090140866931387745933711322565785731553055010581657690107628869795579831340185972924760507593050729898293490746228334009262246014945916451900594826232971593640220610624155760582969062251679899032436571549699397194669233381789052296164151439770844614138919621666400955672661071921933896628654212927247843649554496047980258023781592937314245559332302715186408272585218173923943154671107904011560801371783487640640490750308033557770719080816906978475629485600991743592418843424491627323601068563863761788570770094149971698332611000867402311993656641950625587393858189740157398498645465778525594628412776267319286474870986822752071022893411420505875703025624044480380753227774597571591817154847019806719100687930935923308707834870337359231989500150759115613484344876036003440473124643409656938638083377166034449439124185727881996505441200216940243929266406460643940656334883094504271086736755900483688304973622361800986203629230603404420595073655347907857378162780767089385485682303296920589751369552371722520435340139296946010537219826640991230576869264509342496524136646268407092971014025652077439265950088291515540715112562748019426894737381307559241880318861400873466679165536566354728154486629304772148598009088445311456514272842285035855960180751791731195329746254392408884509309263719393573189098670765968964388322685447025446020936464515206622282506001000773867667033784585100959993526310563885633903386188669010302755310135438954947277261241222092190429836162597978115469050014193903088447365380629030270577371827367293726970453350988156546371132242956952466104983161098131675126908252982550439104864277869939492497809272009087703011170696307209151769936767008471613370086160985192869406929220940513737010159916897736657574054787078091378325771033452011578803325947068495744776599137096799872124231116049314587200502936335467015623113687561224940572953083558067607760557867716054134434589731950288505508029568738576059898365955410787733245741423491683017230439820991175424522648167698014377893376559032454652997891812972794926639833104015882841523217728881802848236462403292797324241666289965023468208178133858080854822947696932378782495621630860946594168963957241658568771524686806085704944080018869769034266635313978215050385113481928892631345072456496669822596757093385075994557316549433682171005119835909241804494324555587883177736941686323881958901282109022578205163145082029117306584411613574409550649763944512699253499992559000831079404990478745427940785703364619342811854095718732040465644171106560567743858528831180868347747738131786667255307993204114014162882274027231215225706126081832205148421831808431436198465910165447840080225921085027231322248251645151580261988463492660362856196224422641249634508243476715414826257891367611016598754498375615373975400745503381244618826562359564361141166254197505364146482401173217396245962243801407102741583592324415731914790853940695105456252584425793829521366028131970938370327912317100031437386548334275100712733439814843678569117014685360930571889910206748435939472496543286895313646792444733467943220536125157752481862487155963958006856622780761124461409116771108441719704091232077094646516486242598289994922751020301337716894681029297882946080384313084196013988127442638014289772659974347746319986921513733677438365621526589114659340591633859660615418499700752709576867503167546319260792026922865114995040931923136399713833022173174842581304096731600515165796376580644952722253687826830386532137012916594318224369970045946263487012022426797891675893694147019907004717591246990242795092551679920819109431618117243784558580962786093036276440563073550890616407960340062465562598160947420467670132603112907541135228898070139510225856465782248488364996138344278290886510640034959489732663679635570913070524569600600718736951105966562008098223749098957598259093945428241379221529982394985246097808055829789769070563241350285608376628887592665131360263161221912410023428796105223496046193509686199205722296900784296962268578553145275990695967985471946057083325195870966954208962403516990750536533572220655331006296111454129477599072389800229078015064328664085752620102361561187530510304739693198781519520228774781901386283084398161509473423620102901260250139283761831434410375533356253788814430871324470519440805821870788474648940853570344990559087078229595832141983529027818342573354794083808409044855317696041341215164879380552815105139940257087342995550530966730227691456384808059953628313492269373079916454475058268436602234460700101955044101901826428860389408432360995718131332067679383063863777392023206220125834154009744914613529129221742295562565646570329234967083199737497931738554354853128397538859908958824978557055558738221489083566897920610425072328957575976391927222476682284527581127452496648274207820819184871006647377866675993070396257230041659247472430485908560151524089215787716434641184230112685186859606011172876762472944094984991680352224652804701870309391332274123438075473766130034072060538572617235823940221562995429714144016905925848408284834023124293123647619445634445724973920060618663815662484167330335744312278312325927827150301386142830397890298246467309938889789974032970504284417682758092028185959184283035278062380728444223166968062998077653251948168066012694075714815904747327772447613554753596882026749163823874054768712132140885741476990953081058279524248166940386157669869776466260931446983703408526754206893349560899094450607153483535208935472272305858100381173207304525390134331103541534806599984715285412124809383092537253803000534166425036484036698479040086245910493448745011796525204490349060307300086885396479279036283388484988808625046396583730067731770381812731119935060645222228676332626586873588783293328012872987014243988083162847365243108263424073360243238337732910254332715757001381975840240652114015994974576519574705023348530395244878981075131922101467004736238239226897544385457350437929271558469545001933262266556390345798046709511872120526106556714524978468133083250077607420007801611493595927585690798683562033364550583398856519724528538654471399478871324827566072441445571975094768461884105462019424467088975685039532950239815530640003782136522619299083776564766439709044377658422924903600730569801579313788800662002945343168621771907999326336015777769626523026877102080745409356197466350880853650174131254991326210390657705703399719760408262167382380240625686413975706541421582655131159465414059426319247630570835981316676472949643249998974632221447911915426528676083592450975424448961830276330957342913047737274093755203898999629790589930664173247605300418236051190457027939674673218109408685890526083506951962067977409991537402414763815631498721975662514512299021318466141558004011073862878957674010871303541415374884463745907013380309500528628899404702606311067316029929752754307824642465279141720437330078716343281118974845584819765608262863319055034515906097739148253466955652236439529909298008188508871428804871984473519441579726703948669459308616304683305523144295503687824690030758606601130894689053581365435567796768721038640746741542482851390294756775896342592111454633619408088140127165518623765736909386787268492101474919868268328225290592319882964128975195599010946370705292499459946344900281296798789389595715247230122365465144415531237797151160360021238221793939749428624383777640044278907718529640787274743668595781056732463231909568613906722928162805206005863370170746425098970613215813373658908161209299369721240681368856259350525842427271102846073143072340155271973120688022514260305244607651231221864345824064376520214249999743849063923230793320297724764197906996951430866590611207946714545186004519976934611681089582982157632127314382114930933431480239280800334977812916049252010382669219350414247633791181218294061227954905219161631598786257560508885609167171340695932493224729129703775354330884000015431179236871956656633224739323278951848798984357833659137044254923179414190352930717382964197596219692056200212486030296113395880375820948613901218028945167164310020248575350003943685259402425850021120643231985554885005938668183550867559293956145758776123426281471260472484045107743518922721128788267323879707270966647922899686564409128876789567419137750244867019474253945596248751284051866089621869639839483786946144458781459879439842415379951478138523071339930539040277355947389013355891905483543747504321676165317277887987327336491045973103881636579871868373439717237436180023858162143210291257698809145097620754025600184517335500762302324630086763883508940787430223836095510309910001952573641689928632420534379203592043183161349126517373664095611412618628599836579168378373515854432470796745792203076559016536797050586406633859114236744484388602205296564460507276020205902901941594745870522511202503471106892983428632828281921934232342397337835975989240750713963019747913454840292021207064618330781046093202630243488556000578767229224897899779160867089985110201675566889485479284585070804049554119041541097136946305782175889602216634010692868263813991288708499099670554509656707432232551175848994377307273862227616358167189395833499800267540544936806786682339290313843593331240755577536726632907614867611480705087899974562271160193347099115671817438369337504787191118185425794221905211380757053318854586782761989245619051275165790157944290150897477262954570083304509170195588247137955307362552339289292275223030952172534177867786506190794089202694439309803258920281336521182545136401116754689830991336210730214617691227664359953320734157391644391710835747766969192693713452323936691135091404434093087434004092079290467045383115958279090329116504093049301796270243931480448100140039617824494293932126197056252479631855347551104945662557784824675538551906142185461913260613359847000792200277535855025891870206188793236485513799529191235382503175333440769898329633189492681094528094643046400833362340549999660957191723445459362268996529608003898635371143279921469116224910923407834652814154488341706773813068215110483657135948183146947278149743134952289358939524592472922543203823751932627684690450505636728898478902980165493164429967748845680850754862437391628651478023833518289137197838600651177531655976796818280628297740723811039004260679580734120777173925719605700303316710858194313607737115074796111458467784340318918554446917380650563128363589774276173182382371837725558761561034638157856381189611634286427376174163607430822700339678585430344163255220931906192800510483516509749112470668055681070806491414967951332851451869655937913002104857767731577052310987495466599305936803647950213527396782548038065542121962700917932414808452028800509021680499439055485391564903791888460490984699508015260768137863876446671628639390799135774677445906587376476505864848491002734440457015575050668659964975591712742926792719442981908699941432850884082364663008388765504147073009168129458335382658223646486949918171776974951042865509754724639057765842755091152005476670235369303736039660565184864407056104597024325440780925547944906784923505944132255325145876187472030552240205858941903067428544914878919371524640587533050825457802724566900154831046967727990680527029886235470872068080720475169711092852967678069813327426614363943582107800198126342859823476849925345899889957529305986862194369043163486373173440376840996530967678224819445433874025373086820779764696029697714024695576817279066563469431203598563112361282369352519261489148026415299064312519228954462823821938519992731823463436286592261048691346286461088725147702948648651770543346697876454634799157334256966671302029240628510632785744581534925585243290694101016454626177024718215266089992100779114807183819549422240802053625747729840309181038291045827517190288967040670260325469834241308218514872199793430512948834554819524698981160757032525937644413619359793089855875206997542192647696276992860233373839192617882873799255440334962763702629162011198629839710992660682304462152437800519564891780711437957386062813983723470470561632509184664072307502814723689771558859888702409674484449238737896961507802704915971063595660120089074993225740183724646262815772712069361128289170435345672406994885218411407431345552609588408364808457016701280120452377121166361621651655701703294979361491430888081573045160553924914051778319303527355348178398128887612284744131327921276703268869603635535765827634748748311730868311442016876588017178661326658452587506745314364900685855006798110875071799154176132727589540235869785241628246909173540262212987052477293870966510274545477592197058796279635587622917340377240228860444964420114879065594510997654357002693291139292109331109747104210129674961294129600805896525624292728697273691594855032212497020412414977278093687332193214890336543534042208310414621914176123107307700258682369237056534738609454321706973964943981623989145805379090441195773840354493143392985604977171712557897772587370243703219869717675833766735248601701246697313051049112980080633267629830013395101580907298666280742789566084335663048998362405336271182850240974008599467982959098942137120530116996283253123012234255702547756281503227950306481889912378787670344570914216966158326055057155648529032313127621051164263279108823765165979695767812441788056266120532494117889449436994141219784706470584773621822807316534574792678779000450794799764371691795601773764985377222816974036121299888155318183925556241249945148778072939693602900626082131178201335641605173734459084933311303711584597723738042051823921569839640299899280965651425473143166231096274988937361034520188538825623854585234144674551097952146133259449639152281144563072235437744485368028825488280895862088909108415620257687912009898876054892722483527730288004463743485705869405031970635534174624047471552505576172148780111473388632318412812714282652145501669697143418997773082118821782290359641189725904008437434798706214978893851036994709200469359766498974422706195901231579021948239214150615572246898643513593065363424023489655343326713462374829471596130918943739874581459226938304429551072441292228206922231312676822874152141494442174080540887003563737285701262118608545000877762928013150944078111965713358115352891924614785488195284295608670339154906820818226333360095641329125914047777887250021380088592030939876461602598528155491054385625171776969901163489846169673723346084987030437016492372319555069126523503037736645764202613941346682155153491564817321071022741129284718367866225378023441585884547415129248321779124497248348159418871072760462675962228776013439119678425972506846351266317266858243487965012989401967822364711837832921261844140300592246525065581151865804220521007694800392647502878701075694920056452747907113916410550933040281827793975443089074066891137151380727467044732431895550134059679038006742838462318979330667515359458054576240902196347867452830738504213144791188070626257271852356399258940316404075037298374245033017741017487351907236927799953855736296996654091185456174962747080455317765901582535706707194173448737407835803349838191897649245322714335422302796915095655285810081314805885639615977469136122937939136663084241749575529264301759725739386572085053762900702147692705810955183363500733233864683911719143402950988927560694105423454141596922388487664873550752227793430409113243231597866119699976023398376454320294610733812104304263002086788446681384640834157989945520022529779786436770971263960573717416743057672734469900163991589903625511976616942568110324744528580021532829369863291196328249626162349266826773756093432422618454982811775903517916307134616207951620010683354950151256907206630304461170291497312036670500464741275159391914370083259554694041883639803408808823493652914176539714606257128638823513955983321443569924222377273338034737006031525148167721100425041202018740631817527329852683015427104262211316201918518477535018679052421406995416504559213121522739380245685177966498599985845930866930641534930239079901112774534044338306869067905462514999324482860594933609851310954098116181275793743918200470793429738434231643729212712550295160746645767128932980585433787287744910212286075543478535523973993208503442460551754712518293599230371232445445350468788278983565783570874544501980937660330789700351741307309861909902706686883144247245345807081333867360644372419970681336484999637711320932952163282569609705847331365296469092185001767060859308893959520812041106069478035936608957590911236101022032901448310394821983937592054820769463397277668419898804861002065604802389214959864737193594966311684236233803135110131082315980244448141613713567560322895654327029234406114287473180367490562046695272753863987955167664839342413876851979744864013123578986729575093290104827878657286248841838022771155486236444455289907686423774529390264499850647510273713287553170302037259396863511144670892460649279927933249307038243279451140954820643739816970113514900986237467825392259534158963559370613846814892018913379227478229435393235363809136224406982362543436495209644771159996976976451005474779244503421401522561282260224608801445081533443904250113443582026932073535266960271622711616877512288402942650622017212455794953852322127247046385303878815959805039224284530571121078887865464962924840367117515986696666920688284862628183810625173649141020304934139239955812043630210596230856759004388255233799145386010722987755754889120717594792599584988190602652388017315782262127282243762209364409899412035868975908393895212983366185009148871297419249447453986420667374155761399071589715938660315088818231955031686137312608226364622827892175469404418503610919975492874907297497584070871408439429079680740543070254103096558077957212209245388976791738272862918711050106562431343610295237938848652715738404970726120062064739084590726908755379934198051765722023581987835129547024659840300631069984927484583405394198746030336638673095088868830450315703716430505466820866904007709754565804084816402439646679733563183693625558032494828855567028407141194011832752749383911759182574152673140119813711716502237711467675470060659188252241731544269903259586652243677450189561939077456499090773623901190074071023658755176034294457996631936999473066765709115087091785964047760003689526195738090809127464880509427318917303503178798047921984621327633935531881682485817450536318109820379535981766784352881757415393041087521688879326545111624063880621626993788457406032396680036266526982264816269836686399355461268983917908951909550069575937832159859942161210544504000999128059830416070162164797470003656216335803681706621085952360123561287153767190473466160666448627563999010909558026959003521356561774469067058013819642136456406316784832877588467369675914904981603304371805808901512994127843350623040698233782869462606279216976467688446329389608836055229856974446520528065298670112066210048954260847709808295712029944636012705434061447800231948854779226316087742813840826989209471129412151354725312575198685221780670357881342744485625270355952658563539251233424619324246819566144070605349672089977435175791832587150388814059527860789391743814341300021305755518719572494934992422734320709690253046513393378096456604522494899854822535493736977818738582799625096832888470454016619679757914207336868339440386067702847666702618959091525780750708691050582205741446206924211348043452861553383658147693074059676391940744088968907576572474220213284072756433422485372558426937447374041771815660906925564760915849954325697414704477083548956132929780005201261668497084365992670799460583459028074423656029490992954336779814588930879999724313972867420618355897343960269446606529977901011109758624508440674708706544654688570198425434531604433277283672477185984968951730147207417587627391527006756093222725191322357395535003531626523351733265316398880316298937324985322132253385572231017544042790519647237236322410419732504750328015990533945979629847659274621137703276045132204554850595447528891447409886681968780978192184483556952450793660250409002598305734385368318609126820781269818367569090780717563933097380815693858273455109471414310706024193678507894941828282472507841172351007646599773249031862385649667789650977708435663497514297064677596238493727332883158305144087407647519928051932199606786934438011033451122778009194129073707645875244091911791590571778506116285443549745324678854407208431114493040063746210300013630468014177585912159235525447368547518719947676984266120753189760287040761090588661877963988790376250695441395221831616522217131179046042274556718827549237453345652288496905474582068762940936867562017306496512626789803298857792069458545795935274223864099896990918669861342894215751595384689670153621973668680815085478246134101156046888098167107405519828044941353626338533156978756894321930843090536127625903490710431798737516107255601181878379252393378630159538918699108787889733176698772075019354413964404731036178577012068921426832194453490606621663854160685797851407599684205898601340710991051923683948234587730430019519306645420371037962048233967828514848983029379244226918817508169755600624237811743107528776556099565921572426881680989671002058269889743031312013972397222979711571998313924420124895491437466000406339719173998726708455202170796974353779035422910307324535934804215807200778611354895082652997894532275576952871622539008669043308928441205513065663072249483644507362532105005695364955053421875712740391985660974089641563903393471884368028799757162643832383940908432670195436621144331939810717854005588053554287868473043030122569696896906652743338526853734403383786073022460680217431661827476353134678145863898730774784990343256629322220561426730621662886570450765889523386779609367649191911993884728784418196860997344464701969433726404846765721102949385305461487448780892251643366312857903080447494423190139676730319491193352491047070531624934875958683019081702012209045367818683891072590509946610113608224471375403548105962754121299215027615926589250589578404165068796381728572551334588409366266178503446789637972624132636685007904950002739768253100871531576677177410213244497548208185997374429611217325065247933117351936874377543177632049416386496037179840227092864316613172118146558599984150382585561867308711011102222121471584691600361095707637126353310260432188912342288817303605716424197049925976255508226554439291579464506526661914144343587483981079358603106758310626701066947364248556337568404247660724676537892983637062486495187009828592472185470619508284064139942008782483224002131184892753125348682849193714827357588036707671099204175934768733715201908978547823593693910179591762780804155913777676239727714326992305769188922113684238774491266702390462444750857208879922451384816653553797172062040868875399386054557103896651831563780380468240557652305642456674005797853137920566555183721390523990281510049486747910288294585286678514157899432485996600845423519664906450544661604727780141356924599413258679102505394444052837383490630374775893028263336732084403275122171137090305561435231018264784999116809463976006739991653145026966100852984214553470924077378499894292378889063281953498124429441197058443083585123187503474038757509130095687406774228643835331211776560327951770318338162928416309571785663081207416383917936499858684068667057292492773576216910764324128786940007077431796166295528631133137960309174311436951718143452147460924195293828421165885519507989930005660678936292870638457088875760715770802271110149067331123959080075611042403810923801844540322224037243038489822235316410839541774562910269787934452304434935283941110190586610694403055119844244038322194647107256323301056667847897743604116245773420658140623343390559636479993201879350026164080641718904742081071704120387150322720411364532239116518259294249441912426046638287328379354119665588474813538504463029102101026658326041470535727419677846617137333670010284202244167038428883710876849537402442884302370384965512822378646381022658438501025287909965104174424837517236737262298852598054013691979788875779560224293767021363187885979195120833147681955262107023060939862685613113142783126405242298551561203175690896392899477443769277335492038328702623317603196655179315884927067165677784179931549174130783870513226815985281780052587549273415447359298483007825730887656485845098591510630121967771048275753713399136661696643278078095441096287644591841013292670039342251682868292885210686559404060898382443888662260176654914346138913598424261157833023756104406302468175942202391522227060576059964946297944246683430504334916348990776680739202839912678522912074758601246659721475351625181823825786777349573444897404138901301986054223380629655207856171148599661027135504165052725509054735682631707727845668173205770003490516719712372434343250853440575887404379921688699261657013249320288050098493708205074078796828652819195206506604805881168470830385675293411036463597098170805425288266850785326813435281645558102792369407484417560547113369946685947931434583883955997242869181805210663507236498105177538798081566073026019340615475610245871537178719072112581850647755339462990163858670510327975017827452684059414765446187409756666801319617321300141029824828169288994240486533777800875869973660212286399357460915351892913550866515368910627526037547955123179316991867670135485821781483795466614978306296787168659141743783186890076591419469602200003648782435634121538105838906126598774292709097498902025186773095065912956995301850371754806061739276896507720812639119562989539828949716417069039443338606801699823995964978769959063695865415584867451598887105952154585707155651206093925447010996145054935726273473955747186432143389295924246298025088372256682853661700628280601744376883859699756861389770552485546468426963250938271937207879872543334398649713488484490517443591329912972038860882101370792520741644277561952756123291553303553118754613688748036446086588417724850716101218788021395744073910678360375068622805588882400532404725694670786435631262311233374240512717912741274160083397652966795365869563942900342117252902617798198314806319392482198757657138567962378756780757140795741079368113868912423980299196400820870083968712189356023653414631365137715558590179749862148944684560739435070215882648877247621558582533345248885763313165971638951206709186475378262177740876629865618327544954422635481333160517364844071368339676893120194247897472277323125830650558614124357044619868229654517906714628862029999619815039477779367843796416334762557440168604545906805295148263343836049772275221344740647909828744242546296583844206076567836547473149643778597218383957516440168228436944541360542287218013648922984099824165464139415365677632634035063689513485730896876739588685265879389003701450529713776434267574071134334726760125438184439626073854926532079528508739571948711729807665747447914602759532960775054675402138641136790201401611833140529507789198441575887275834009451943073598572728676216965597848924896975516909196685007966319881538297752990121726331283509943574599445289257731716711188184028005485178640130707171928069564108426827433378134993202930053816638466145619984961073581694964530664914001085538087027517690601262638851046091949981154969858938910879133457002278365783291192148585726747558695256731771237231450182265604760616254531820999659122547148985705981977323074240216688919957998090896842816643870626235192576841204294427258452703017285390392042969812237820746874630907467975597706135449597869524459873856380353441695854276453418794232658834639225662723103498562724402873884214425553192991109006339913619974352575022449030471238706714415183982527053564971261750817201697573820683311551133621181762232615760697157224043098445789721092228328920786345918455336228148620187976013901932148948722765279652376340894785812103717823927533326366696680739714058360593605516920857697984512140437719537092875939907528288452118899052305719984279061868619276772157350304324513424097863736379843807807462654819928624240964623003837171941899023416802473413776090704575835515207076455223294846786829482862062622833460352312128951755128424361680370686945757643265848388304453633711938852823198843977239653932514087327168092211086483394111936029107233723630980964283991686810836281894970663210448711104729782276375567346439158227919401152020847415022698323811310819010092374223223335052892363235260777345558838293815143409093885537868291691397130585764782382887732422701621715411909776616412640982633550270261679767736475247254483105329149179218079928469891391013761618355131112602549016350177126956952974834079247275237734715585123432100737630094939609585587756134208912694194765297153342367368185293364225554606245526282429443257204146658910488733438771901901542094486883881593339800183619495263434675401669841816561933867127391565136331369499414168160621260694779955882299750462713902317153515023230055567624670776287760912427649543198935987653597826382923404922070348035330915035718108859361312462504745910216466976980644821746219076743288960905337212385229124426132627774515936737602098693292610578779518107076514135123812381796462690024113159695448987287431302682534622473927029250602295555833902865664894076125506250943450413250017252070135499009648743844670363731147228506300814734331839155887536658866453666270005520216110785832661934367387229242949839896637220661566662453274243881902723339324241570351878583632306823652813848636571171844107597315755901611083692351505682087176605544806231722474924857799011021324897600394270057473820749385257211701103606483458502504120303275774006099971206917058217713815662652420077488145135817375034325351610345494851912924657205510161810284769203248898469029814584879628477555102234306323167239110705606065911050657091955316505944688804351729676624092575544332123155830803139088505401082186784920584313239254736015934521362687987007762379892114561908809174938104149904056184701084168746879466401908349939762244407984232420489505199658744386721861604515231749100802820339214362558443024176497942906169309807804400446840937534190800323828028945883424432067103109976355226520076891648814521663843107434937035462914681003694152177959370443422280891948150776516708425278322312443544313702177911908988552507672547317207551531495720302759612883876291769555860455258104615666364486418363873978460397286628794135255779727635937022935247261086621265315653878540830775274004159382223965337405987625381089198206958468266832663569603479525156649625824722380545335885489258114189665040129348497804048379940736543664053906768257350197504467004692016828327075876035782228641993945600969556934107250616421424743949641334376700112611648660381766353195705734657710094479678011871861540101607326938818811263151848715336450020434324227316852065944031781326875854625930208643773000096331814310711833973356982875221094005169638036131807856828048008830762094215409104724167340911516921298102755655929976627556117868139059750792323835277357773620725106134117688162040594420488031759119623993980338543960325640615052636643580869077245566693779848302285843809115170216798314155545275193905414587439131286474867191324074386995803117215499492325202047800141389478059583119323301543129399594788002963901967162547620238028190262795996820243990891034058325812855081337196337364209937910667179298124510927316100355951197814947973252889784737395326367223907069045293684504922793015110364854082190980314492856832207158906937010291312165568869887254175188576728564737363455521418408345871234881569993290648114020527137059389631326588444143448216385197084704486166515861927286658953206155410764099085847282024573379850607287153821248424197744528455539750618882403461477134607955293914283979502244105807319315411069236540885257971015947485182106712866588075831598934913710034559490808703894794337325546343707504803125317207621325149072665128784201179176370055838467914424333718372484377415928575115577548538387201362096174588662503944124406875293101398382171866655918687681089404954306929474243463489265576944044650446456001139762967281086715654931382403733975741182872497085624092454282044969520022584914194956100383970274280797046055768118685582488306231683516333504515770037206310480213370527287215475735739891207945684554736405745760795283476597342864314823503163270667948828221827211443922402417106244240128946008923634505196513162729550695957535751455147870581751035153789740326565915237811766149024453747094603067011390108858908829888687231397719444175478567816648944445712748147798257051269047771927630840567312271672829009736296187471681463800770350296711086753577703282542833898150128346553449221083003156774380065783886620657026102473320303241698953434212620731552787209799306730847146186600051842506103974245850250342646280583803567609123962557492894984573997664559257782963285571938886677083532868328969732131531921682057722810971023770628382993073125114940238118066714904166648538385212921041361535111185186642137356883218823174377787840502641547569747864489468590943500883943989310132597286469467856180401998327186388199126000149077517034598634797398603446176359181442513920041736172262612116565317004531002649737861687363463374026813511952138480187213612337982161744955208332464074346585406501720742242043139976514910410376628831208253773054730482251997901417489782801353388378225752343011007599237968437930174013718703589406646533608130349273476057432106390099336293264383978637679199512766456202287201061329987626527745395252458724128108165395768073372803452172011931871693952315055997059620266761806978654301793697545233768346094043682444226399558065723720032922822680430011987923108839296879367790449582663738717953473974379237598736022905193012705185862167207943654906329287227378362326230841543098426990771469811050161678737274375497944307370552212691988352120247197226454789589019020954143988822598456177396636185357869908624896577907512000387719022452391753555853596730760666240253009631353981632492268828692709862717376876149845722194567783952759538159739464625099828550621450654891761444961157078645522479001044678308935196706153860272243939567797030729932199786201173639813183733677363966461638712369485301119023823281705474051436521211321008888803952251757145839316802443686461607698610354376287156143308903463330318432259599723903637501162096230995628533471425775404695927211270954977398977133809706653719599872827148628114966268088323603794666804410182707716248156375600187319546401546563786563371192971723314276233608358665950970371794265560851865099110536178170727056107416249278253380594610293339048452275734823300223981774908495599261379793068379743901319464678354344533346623323473131641308408185199431146098094259902274864062573102687767789948496226342807741283196388413919026496990773663075295854151564010793783646266928109205417550817505253061299787343758187354919851597382492405097768111366815814468585620446898875933022455141634887894611527977326915665358870572448203065321237491407776190903569570001216581446927243283522241479497020446969038163883836711339425998410507891952150047286853411899623227103530386498061464339137181302679352839675907633210957771223070142133560069653702512765805717259569398236676693871013469785327642119616358950735474836533567858350529710362880725611213470290767973399221198491267965739981288152647835023779502210302891321499260774712048912230141664598924861765047764201359981820854236355503297433027420513109304000731937360693500811348348908691184082401283022423861752697056452616561810290191108076898231344829863310012648962894586869420679461502202641638098212633482882326791077278184234961180450818227788182680704982996659046586069807900064275358408394730882171656400181738429527241084820023772946759597469539053699341420489593221434655325115088833716093995635696807226722637382512999552062388676081975653417520241105873239829284765937602569006657847858445614569383823130477288459283708881686766667367617340589384233901575224981118435082141743500788698256083025502383036204347691255574979982774602116149463123682797525266899743149422253378172925514004202144317343966794634489256032242785368109492884613180172164123175375213218640397658705835090054585952183794535096273418283247971713731044935578005963000466609631872606345153453936493717697327470086541147627446245863207474073176135029609436324140302932052305977804901727724848497565358667353462472132126533587613277181389892499956310977536277850230236235583378063236647739815495114895058813365423072679669321264427073790838839433135080251791886160659814048399380932668417161158025752949620898765884940742101738860376311591195649507982317474351910794588009749602680492966144290254220496959187798021686286943691705747149826599955418586774637856235600755916499566346613316029182966946334447338355687874462373703302613007774189621846860942773149240055001407919481668222766604823923624674357191517132786525349566043471439741800980967589255905376838458961852414218344424168709784871458334318612593959826035234343601366954853024364705625978184661388898435322324413327004957564259017516516933121424510813307318827511663082118536414022696763623000214492609433710847944639980590986621518182455304233907775027004656396086654335579156093396341548949638339552262273638718142196507822118407998737114736212631196204360848727700863110537007645893732684933673582873242469467943219162716029010379112756315490413707478308353477062004670271036492937010680639702191735019430265138656788093968510806993685120704526399087445047059865381047905917219851872104314037286240962309067079078214194795945809707928491787061068800042341922159391821796505096203883953691028439454892558528268131405194888672592314743928523698727236179747335141716267007081032301486153963868064235725995487191511849180095545403843768678362419031869317170744626948988220891348740214296220572208940932189438602397365774248742096255547771020740283600982186661268873621302397433374834377720820783887274470164138127912459741115630032667485920712310554382132812547740197091564033333694878474721772541912662733307653018959528188756915471324215538995492632543831362464408023163351875350877877129255991536233747353563054954791881379717211860575525962322673158819851244851548756891357340187041702854586261317371820100250286838944569747356599530824589139039297556976876304166935110195653767193241281952078020716737685570922234747581900727927709019408683476870016364741506148564827797693344168504391418118516724965131049950190696411760894979556712882601362658954607815174854707498883381265567774357010297085628724232943649890107629332271087879775902886255277843222921043598304167238702202313882022719443519519703527634288788873523380598059250374386032499150264593587433966760401901533560524063604807332446338934352035834359320571892213544229755163213771618069235817427624889958611270108350220723169561817036405805519573127491767096710710727657859017560343892073548183440772084698480569895029113218816895302085288055273219304359292461751792278206016113153737242956195540693846682665538387751942589291643974092350995754401974269804590513185216406341694686748296607750505796067445628526401491333671470812344350245060619724040271975974080129860676991821319482479243502995505357160384035844431671439838899365058611392045970537199608008263459814108262994266054479927293857451283475048581183393745010420119222708816487376926405358654295772596490799085372386409973637131140851082680726667484826382245970181849109264472673582419282933498907667908800268708626263215418306753005064621117871251985410395378338976768548959121785199121173581821321899595246344540344338314365781184046535563673621583741800318507779743786152915108833800720644553468821786012933822380907196060601531515139228987438062203134936157973243293705158469888862238953899157379877659815412539862815730909567910108257493346266317511637523044757445793996312687524504761053591739461155665818898902369251141744089093864534706828897888698513131904871968334200937773118302535352296307942271194548097793823418640143140611580043040380904722360953891681917929960478354565263852728449269755174209982325930873599892249736888118471982693330620256720806489459009644751557428439798652734122305797685001603919267816252778489034325501653996732944257090840918786252399808704897776690395363822351123749886114703051374546043729981730573918253836769548709985575595576238261018324023470055439136992889777092275148994003654879479022347553175021900076980057370514786186665465155780936064752096237882659863383969477684555165819131124956474123815103549599088495225001988026233563912722253946774280289431587833853220200130117109249890810467653328905144573648867662704683746664669717847613214737908161004424384771920458996959168092400882564338199698357822140834085556910237776548979421781384273154405972000502838410989428472063397604592467851510947576753988898332461231849883706994698440173973999336533445517299980445779252234461417946495789179439903762533782989373673525005252232685522063157906036463225923887316915584518027771983695760267948074465173499160010005081548254501893739855802819580948132358670313292627508320059909512521305849461429354490545905687566686948659450004697028203891295447468737839288870536360644784809786223672025246780896352168898269219073848019970223294352510139021871881507967064735179692964245329672046561284193812902428608509871188917647452887125092403931469416166955202794743050221383035550005707377897654373428467465292971413948310661889163557282349074932602492739594193090578590932216345556383154142453780892415395950149167951069355109114949601135385929464536401871638982464686029040698158425096717627092955010803342206030682799741800665682731455992698375069566880882126529113044965904353148898138552512773955034227430214217457007636667304800334908578688490717225022882790378176077082221942413244449991189421502194767589467422974130558612312376560465826194326377589377645059095122432068605915540899036013498636742154067738356671610500780564686743634655393659372998635283678179488060088254230939725059610916567522532231236941602676051980444038103419734562125982218451459603368517324773934024030936098083042450433427490568480994439662652918476378581668444924311123868684529110488057879432570991959185872092341595792349024174353218014729061074599486816969377071516345868681258712437274957407985919034193329007437786997297590606738811806427600047412694533515812221061631132510401087510789928780306046328995057012366225802466498248273614697345987274794928789640546302463990549845909030223104619921317775113507618154133029363699401962491661680057117474838581595061798105642145539935993564497382456954150392559338154797642265235638969904221842775490495696678916376531308714787479153329583352062095591438321579604775176251385798001304721962819622680297194121777036181284941125568261215581753359789989974144332827811086806790693148043995465622104709836701297672844786474564936651349349683966020543176558694509531335945698634811147267379296084826071417487666417933661126543358359248039289556403729010701354592584601185972164273199944221586315061324127124162817044906436063559945639443219306880448935605425432749879054393299057207198850448058784559184706271719234600150634601802807795968289772924346458073790642089089643091304873152443526517978651155919896607486245402908784398891146905122440553460563910091819152434565265312408346204705958019807606047482666981155896859456111766245784935476541896772141552672925761449616829380482512878066202033963429330661663259262967173059865984043496057089607168990669089868043060470071119189005940288983284141230069513224568738697005874765682683911507940626540664841236279811412925660831461137814695808070629787817784964668081417024489826269198781913920409181558611714777853790889354000622331262485434497142321677324018324332739072668329368557727432301287037447855516838035452852062058771897794304003310024525705430834279901012817575324525933014649462248630889523049510459144469378127845048854103058207031883699872198821314926283295191327812063211241281652566403910416916193838717854843623991017581461255577854308983784761635154906119847845130515391272625795885782646283650189033205866674143642011552464788367279907151485191240435230355139995013094076776326777013709342951745929385616002926790306955347865769660177627545657864526802049939611529319825439393368638497540228430544365548002664625462020986579182830326772366276444871022004798532868161427932152159300282036876874748512425685035206714119006425198889504281164795489263066212819700027803992943896961624953760899538607650651777656774431696543158908215153523685419191151188086997534526011506327427595835832208948151016685486880301681837820156435640421426622722215454238784433553602056537050295807801044571035319687573912052286301858059482073524758188852497804596479012570674153687384042301412574204291417659090366559715558191566767172872949975922819176341236450851881724366565732927707242696072259808531793085094392002231558290065417797491624765098696517826945131351599542050476985444891515821854729038141609199254380224624459140958136958991272617872789210898565478568577190689400682670303854337946664552434100673055330041991936190218737585586565732772829473237992764607814102135029193779314063718923400645272473607378848096602794857681432386541584797314083047422521014820803839338307496631901133036489212380505895662863040379157960153464432436791517987528787251793854174647961644416912707910950015408890233655953260918760523519765455389180128704799938602904604202273561001178837090211406942219977995009925790626328762636436130368627179607606317246983791357053278659712673012866458757825123276440193130011864229663184426928256404801382474894922014181290815184346889690287736145582954873544330107251583183348022781587155491703506511512041353993116755191098559368348306766269909655476500433636055969250663694057715242659335583312074438839693757673230804810936454086779709734233093687715709784416309603825992095925114505341487861160119251001021336633895813198761867611261976391358731582735376032277896199904909306119624452741403558979570984461564729389616748984168683378731923687705730657764861724593505739965041596600312016918181164068600135961550077599525553665258828448096058306494210714524072241463187497416356565796664607898315723559329575093779499666056216383268088219330337200644455134689353367837682728990419935026003366373340135026954911836529034950100140817143182656927058489236178415004003986885248054123150686068196578514719267996503779949164647197943163097833340261803106974163568736491319825481143366142431756704617658757598478430204011250147754615185719901299048038109523457235172604298256886799140126355032427677997155518573716517588568769723175595247531375675147690006796877773932309126091190454580950894723612941695608173065434506103439879035872795900257002263368875729741551315569918987501338181947333735484492761798465056018933631682829711456465292581072884417266029328098267662719920738447701615909905137677893523476441420166426966461401875021964385437043389846559340923045220021971464815035422379898424450607494427242193282082037642693565606512425179510538931669882650024927934235287664450655445737548587589224084532574775650084058947794108311460979677732200488436525595611719104271822854323530798349379704016381759375737539653834894559472036928772782892993086757395625100560057224443105544022885549965342468248406266615121431401305207852686634721625533417902760732326455870564543863463129395412931944826603861166021981894996434536673249822993351589522840188484598409818400655257361700200968988222334989431293027218602104566004204495584912014701828003052889663132754372529266985738827283029397585456378360694134055131187955630816185985959075910646380737408609720079049934075592531852740678715796059108354591934291037755237997076724905481330606905141428816522406611606947808793441546184301321295678372325690807275745027855161083828342052383640575816445346958394151888322859564934823081182707466178890846658421208383166086709469847162349873341363066432232779419790947920393519407749336899287796053638070875785022482613029103466222772530327654707321591921395074834940296992502345557050037593461556429975940176204328709086731234445182951937122265990549930025229590990023794201844214146547718144891702207739549066027454095563367264986588826255543983297514019142269391100479711348292973572932241201043825649126089758460524733454575463119436803732011517549470482018812446450285784049107910678095931336593749717560252623389665502208091622323953243754077300503448368636527319444101406995649049570458014587196617630307500195084263845252584196087194911487874627153683213654623693084080729572017909917485234263319174401628142531861003224040518079402821473968606616513070210644424445647494336648938434478476139882662417041925077166786879104294619366410446691722234529973566930504848534288737233556968976611575479190488004189465766791294154570515349882977208394846077452899159151550353306895955173925842158312557359002157223320282367848524531491123677801244717962242676947362555750486801608868541211930064588685137693169507048139165956941420924097237110208218421803685832038228970252880742722861813307526969687909280278654248884027169161275854887400852734688573228048612056566188043299572535308143566462775885682692118097712788093078808897545450536928152121262985057961702016396280246083981741076563026667740923054340784434650806350155088408868162923926235527295114652997892730550642810237219169026331542664536263080069973979952112111576698275353008358855252600580431720209916817692316002788841276771920272089332573980494947644447772613826691529543284283358222954763467440835202269451385034817593485112439549114349059561368022549390669390652600307355621099196258137385792937284803840058195996912265481837019778193910542943258676603261254627826831472701360322117988115501177954001330514704673390580716352938020335432718466785832568160563979200912691532583314786489189655086048699918599090554921194141595892868701782941106928338073429305997628418692654077515918468425736209836349642351661483156270954686117407559539770292794393350992577592776926353292217308768752035083857502200980793641241061258013369931907615384734489388585293206716518451819252047493413470867597410672942045745248837610532813673095144088826565594018717453707356819977546359229171720914737382324803275089658202489079833835607436153394178384479144542408743834256705138288571095967255941258710563588803298188741392234106485748214262939637517852236444378028254006195921401699802096205603360365108654314342284219933752039322096198829142902216365450298597161489730167752056148554532180521630262921687427510549425152815090418873455852110723725200940964310480383790420569212983090466672752695923410972736348557170696256744954915658868388383109055738204962853178086948296498432853081024067739164598629343075350007758491109663187542006156823752911975125112883135818709856124841515302289409156376664878261944949623353978953771994481811084102270920127533648368956608914977229249931270775834453947540047631972846721450764645689074899990721239374645598555172416199909351934288340453649308765309255960987720343056691722692202423253777861676078357046127436596040467749487673364882867061526221287707194765336178975350419054463495167543625610505243067931020793900488792572913996249472445372006362338405553771610821012619113153946441152422398626597387702842250454715101691934508858416499295670477325691960715361426726316885410200638289708390656544327268170227893435260774707963247347384121402724970091934761454698374469372019336023243298210431145089559476138315735770515950072811502286661765714157083607945047926999731763822139544652123870972254507963210177170708701349189566899478312423322685788533048689085590016392231330844909671737589265975727255288543443950877112585789371927876735576490491228737276682098232557018970497488811096935528486281234952244727080349130234663023990034534219035827496712927842353373966725144721422854038307549619821865271365572946446495236252198792922182179586855504567010894354547244529025889332194150713172857046521268695560919421686435051050020083860872640651504285031588218279023565572524475783063604403268798868145025584610686978439262411213747155780590232022204754020462346376918190582239382519253135938163803442438899304373899490080842874230610937122492503536654290071652950941888519200368273420449448124245454390249482550294032435454497493243929162992175024513267334354175901783111567863200801680586591514981964723336858576018278582732760721553586354103105372798663213472210116441043261974833020134596794776894948250781252825415903267226930835720062040110997227787213952905731090446891798802862478264651717965929968491823806093880650095687752789747242395368675147673621334369204179447170167802209841267222373527911751984292987904943662272396554924988950406353336898077329500112413055695961592072178858118049991979537361373241212325385363876887141449478276233416981818800078867597044983054350811232369103415252833508101270804936547884564407618046520430327272751102440924038288924390164726110645487015315375399827074382069288781721109618106228642571719771164363198137356114789325126755351071835828358716175912816707518407755876672500041945188944623509366997356822706955181687781187359301599926135970629972603361421315582916937974115412300224004088905327937492428110776404808598877066139529708666004334959596056938893651774126032767721405846744732977363563696360144426165681827529377878427484473835415313248975621823133417694910449434239913320243556441839988376579972455869031728195059667274670910759097023272121827107260892549125939597889232856025223399498643323188215398073888272720848432410502600258796717876775242972601837398492965640758821299423748905322951189224960738968114590937394748340413204088338798781607744942733680134641631373084735591712698675064884385542302136804362844289560218417958128633619068169442523120936763117334340626679254078144334530119335000708764873374747926236823583938456646288280746557252178010618496150057121631616106181803663000395316039957615186911651347963056180147566608909451100649675027007431977188728830782446151133312777848027197683469899128053726406882470731585057495363690314692242835796145914809438583719039895602636771030189476151446035152151919257880539999639627042373070587306354184773284536573575583810076693865726560933695104647676275070955367956112957206980296010041314988596483129367968444516803312238876179384219429052347422234979540520837485544651281420721946741718982847815652726929723380753188984155202458259527346900713788119773397872642307433288155576489741567161948879985712658049034822948835840983605899853885216796031002493117161870978513815906491601422332019973099984675955867726327454801822546291637813086354085334032221691159570850518708094045162904179869901757182010580200641545241011933690960798207646552117264215651873965158399252864575301522159604665104728562526524133571028116631694955518833902707667656251127646610697954934560466643032180978271441971891387556267706338171868028616875284236564630419224507532843245503661492684510995572993985367673076964351130689479035682712629332804579873728701239039534887272762447593008834281469788743587057958620263387325601886044861814998092406380571969875380676760341609743606644527885471407502935725146449979427814758146305324133366410975023446819369658401060289846297005928029025530200621758715421186297090778178344114748871099670591624190469669441548267380615395776110938143518843186164859650808582932802939039210992062085162727877240871874969155491029546233244722157940061611294211875503397726892729569959142640004493025002050473577415086794888480512600801231438136490774474390657100189208225048860754990519397037524176474455663280635257940490225785516317407038815633093411405106501060353025728921602721799083846115095536713859288848909350473331711019503340540111351252637856315970857832291164005557037237955073227959743499366311923778936712512227096257021494065320193914758916742883195092635195228859149376452035513572207278559908988129895360064287903490013252057171731914296448916105280659902000335553818969921397880200110044498279425075708653209934370840903631477569880616301622621673774548339423514431229623205893260785805599698121150822936258787426638792177264651709521894151849201723190443025778670986936532690484818068361061875335209249356185123570232816422758766933323599756161424226940860715297070500984092375225076372509074040439862489994835916599389768999924217059872237761882534437557667336172088192856297366048329536745244063611530120442912516369728374352274644413423764762346851160366650941747680660840200220190345633773056035700949399082390789351256885831650706197855456763414031068446570109857423298816183205581698271358422250835944264930833357667389133690715903840535768274877677372502188225673661469497544383346423840183730101260182465900679131982394778315030135783930281912389639622393173358047194986763139248474573403844832913507639884134465585980087883425647228404813710756861781989970983753788256653405992141763919238994846095286490315809466880815091957889219957840650628284298975065127439868447936222680934683255255462207587737654852507834306711333578995687505716436028312076426747055441248154380515595561390288188215372406339921588240068791107047033238386286972386075246709026395218778280405249102349223415014179903314327666103721820541575149010729079611282064909048726129880925719672030124648922383285727189383956205275930477054138138416721542685155754784823276544307450145559167520284540381028470976698116803634481142391909821659061507333117452631917438480560375484686116019900964557539506325522252196972586496308794273177217779999202208293116995032505468597166216623930854624343110811785948486946922273485563841770368240545359819634046206995781791197205046912764518831183524101786089820502466287559257467435739856450703105331171685381283233089373525995217343575999860486561725912162779301757216396827498176002273361966819351237536783926257696293875444650446606029825786817637393346346604225864049599331611069230230244917357680370808905453419141561489190010523116513236568334360434458572394220410850608102140299720592570904500922953710373355824894087701260345288622493652871214071280632025000515543120444227353566402127079659789492237129928641245731264615506176660583380266747354700156688917289048686573841366757379308944750632353468101010589928580630188865657746211269289608943489747570370955639972713596574619653853926167664778956714796992699070258863233086707394520290107519452225149177785703031074551410993822700208568474403659731735310341719188922041798872286437125450183887961230745027718036179364793333220152742795642283868514126757896535635828635878318613481322973523740612950663283284124777891432449680299776016136357612456849942966176072706882027337479546439923892560023263361758132059973135815342289440120134628118248189956684101031614918847551379147450331201727937731617066828139581392016555723755638971070760473824349038699939293257511534047387920006458006379846062526744019129381884037662776684646030118968444293127364481513295710996285277732907865783447004546404956626090102089870463580949357293108725529169247695948850600540493207352860597317600962741695487589538372623508994701968579412575082427439043058243683739971495502277396131218611317910645036263663761004724450557078356248569271626627368799690010434273809461110538585464710897328376164398172418478755919942741254719055829383473525493923603516019337324923417318561045006254132410693149084208718848699869368343485890926814126670054521854262589233561655281258136780764717083973294184290191643824692037675605777524345570485792658737721403824816196281982943623686567985637127559673624267464768903060238271229947983075167233334527106427585749828938282858859032594587788329605019587002374318608674860024207440157602344914077265276940997622044575818924116311897380447179513172096861539182140897474097932666133398729171069040980896271400422878198216337819417399423655690050384002534559652044808902055486525355735072652508649104592318497557037292609391195646934816941648164680911429514243224571366576352437878664062202468357724622388137378212210062984936903104226078699609432971709989387708928320833304959628210766928635142560855112185216238578250635651279181277865262506538725083697098209634792771018314107684910605402912517034892686729399534187100439449960079677962767414909276315134458104899634847993037811183480153376816799231185873205739571376957573924578616407751994468228169661933592617974423344815628468118747447884601535003798671345597278536640652935154637327123401567998911502621934624840561936414879671097635047378734175238772383493268281384334331006794626441116974602310265715874392425298083432462513394799156993448260713561293358870803335862095627857140366190285638511409769395165859311820934317166357825642480275075669794186185818280656733824590754156682107469600178384489426565493707804782509218005322228360741552917251946994968789219594499827380211424828298220285940715009359381064604033079023229417316744722721119386950805142355425095346766073532841233607175157759208394792006004117683528533225349383291922129766986078905889183881386978892447314768765138787299070091446096763995345158910798981535246209004467468644339358790731758335467200750441044490683596935778215520715152377361060381430514546094997307627568417474819852842739644681477543756372603622957145065940021289858210938522771706778750133730315633503269942788772610172128884451443892721784332783879687865871517250607620099544969382861780060596090152226390738043960069816484166371958821838307540435028771723884520702548755210730477100057833068127194997683835188132469417774517292560685777260426070070479800737011795913721004766440314849796358830226148746685285287458591551517938856964917994831162722816523790993425132462577435012650423595095229440298660520211931261788816228108706790865699454650452206698837872686161768849088180589442110202620449758136424807302561080981471152382944217320458621267832351185003521158444404667173969385606965451462857689381203175868743076676101507811934952657108769193720648538884451973136098179235426419525711224108291779816573547884292196372941212262315218982596340796849909818609081209821188584908614233072970617581506677421095796532226965582898659372486536012164928163466406076959668574694171239944020196437603282656566014679553212927338392009467283033093530110496261350776896762970178385819083978856997512875935238028123503186951792483615028130005620422885474971221495171265253070960891397546212125860184497242780232865315114101709634529930723345947418872095948311441982468520996481585063480010706859273160875074955586522522098773186887518290903390107847882772573255758468032969764990832273801127654064471977763779481337608897718568881930817612485535707650065467400833379373143301189678396119872963080100457973992169215502244224816939687876374517464126163678014442864246342951268102004342135655184402228505973970196326455126396092809789749806395557902900438919481011850917232278098234311651623370636697680119521606852087501194937095112432866477757003019961052129629891600574833911489534049606563187304240321225021358987455584009906114973121612443084922932348666805830930418025771909761473871421278069682693899127167282662542042744948217488971048494863203658857668126281131942312802218360343848777890507483087655578291908298771064572691589462880614341637494395539445360463776253304643769739014516406414364850664805147546332736624046441646726581822286369201565906075272211271290780588249626916520420314658013770397969112847034602069603356511195448283672173299481932280269406311244738903805274116158044759781508017591877263547627604012931570546729104313990954098013466114295499940701156369934995268952365519429983919803856490965738296538506341581608489400184685073383222168006607256069084378212607426443861661267136244513432078310459964123858275626123866393186322182402731966097911640560815840688666199371202388828322352510593729976542800504044642484874195056326456927368160612327458346354383925547376341838221103214976141570049688215449976205653238296461194175960364173268224737668868404331062122104079362035405063908413370589073472670375256472349460463881346453614009789530300087903628429449535070459239120068206066578311095922179092337699563919847183697516493357069089643171929233660410541148324330246450923841386417087232407586214556339210404412470371128710575698111108478302035648950471599419094088279644747629373969745838254878451129030382771012905255257677916103400767086146046846821633423492514159032048616620022891181181565897419238419763572538369541501762801046485506335305078938454548790161551944118769725956146463042572742291347166192833316988313718261897135777978912131279170215867038758096323772257833666992222061865769054600475075147241959042999170354573497365664144937900072472559672597194312370080158618880546646100619102109141115480933518515263773461481093868349012435070490889587371763634251395333838451853757452180975515434910402397680711014742664045973246765079094303637626611288518231465668566183710999066753155412094740168724873978396486996656493560506008275582182665163133459074190775328637094483546585058869725434657627127090746863157897118203804710138425626616008178435460173679124021543230397970320255791632701715615005151062288719156958549688604068882029185570989123070458858945109316089214517538369552903752985805204804334212279245910647674749606428062051574079437782641457321564598558478982980918395671906534791424062322766194274806068610437252273291857926360316914467154221092496207521707825967204278716673071185921989789070391874509622133172729355217344669920503628214738190423917181859913617160864554990898146087455070012345063808211008509912294527039721326545071175118593746745794609244900510195730934107992793123352347910172089345794359188053475577153662549037953500678375052357778860526494814752418261941434581150610530794313169329822052201154071272982246289975625531625254478938877632564425616772882307061453086811453052851145907572506241365799029512462513960624555609711381300188649710447361087187693160087853602848408536961054341738159192476575460002827617436208191933800252518402202299723371513923568648920445957804226643211920875293351963199275700718214288668489093384492175125758373168059899910427902890893920655384682024682380012551844541348867486268612804911994117919806524785113583737870862704608979710393270827882057516334471620888814822537641158397109182374443624518936678997257984544699180923328817114720374077665278956803687752720058862825156841536349935263614833525315594919100250487822005120898138613063555662493592015506694365498050185558208750024153120895278127416647926770333453836532425086774387657109975643873649098455672650864641561257326612039516005625619243984021686710457515403815430522924243509432050898681891243669650021542751967327857680103636689598364509622175446151861976829296438989808892170114778364415754037706864995906505476870995929829935331894709638474767921256628802180623389394848016062662540815260594555876322155801071313709484927878814984786382319385056709548890302981374671271239798486598941190523272258830450120730348258824368303359833393110784766602592657765704771217781530014966728397992506811755914559907079205544075165203119361371997347311580479594578042509032760943698728021203487997720516719248036474246944900694306231071628225919182441472614953012040712746130739411565316146312213495958867597179061971593939889549956772033424823454948505793624343328223008331198008736171781032657564545610708244696557178440870385784248234354759466097498477622910938632826976836991232160019086901289826263459928160447725424662640220285398907132586223575562855406333204153489790511036663247507123486058691934614479774361906277633033087421871629096937265202643961937120439561549187169686871472407695288742925803912119891018101655688518360734698842270069510137538179804683068780108229224923900207722160029959099170035113058307383446295743681030649791736792812378684487525254806469623054788090320728588823174427571400239558613124753270601555090257262051561524015069996727767356130490048307628404116231102523710805027231679351701584878668995251195379310151831809952939322630992642093131915043619560429260644965714636005356517954029154473025557263695533867621426697025597887293534194671580200116748325423210134735282140967855832847436366848277410375030112939322872597002139964080757130243580577886517719854947215210142256541833889752728124204467120688994939060877620875208338331039873857512970717949675957696764523077090151697732561826668296340029651542647799537941419413392609543439875268236685378423070152492324055634008305896763563764181576129700690556358818432616278558454472923390187948461952597692199747653607901372284632809189016002446941550810470520046121573504145000189677283948877096228984329216081653279488603564313980339885833766622032126651831413408680582247507667353856316159680614697045610948015278504417041089272069042036578093231926607870032722179185132623867749860862960851952046494748873140546183435148782622702085134519913945806496112751855277821298106024133510226911636629790257068264038525223714131811890705404048887523325372802523426438982595662139356921245571596054780731155676233862410437888221895585553958686913971990146782982160891099565577819531612424919982149509631465392258450560335975273434726851756479579527005433212249556519628366259807777027718983334824798888402089149101146218849394620155358250569025280545984435988892534973343762935169967364813300282910791222412591845491900773614428834776940756103156835357739835898405255616984728500179443936742159914140903285023131675398011322558077568819014781549503142051298608189270320683638213163593656212415139892428263960653858322793680482461063303240327510051163184099971920675518886601293088709667152987869589178320013813880163927983425950270749881139786186484372164947570801140173850271286814092755909429434766875861940249550317583087141994551331841577790531863556835995938967435539228704767480295938074622807918998628086530385424213912478998033599848295420922948616254254248391390194416337368322100513543155212600189106895815293135178697607548873861903707613941707169182832414074130528832131609700731282445731891268111689172647136966918818515806687596128082211321155367284658285413793214613657054044863135131718211539602149143731306118722201074247506168398212076434017959438020492449107047350945933111616642452246890718951350941276900242465579571877447481387242055607058047584891844040180113627216462931630992188026198005016466916877133457507168194218171073353578082427324305350859996441993465521162734592256088158145856404802884304737106202679770554397800213328843726571936381219888251593662004712193732620759603449052523809216284618169084489270550144398657256902548839825755371811679245474464628265286062224145826389129186417492588925053931002321050110852020230912962634054181506531256899601987023422699095919248282607471923524689834581999957351195084961250072277442322140123599270415683031421808362503769315138409709981431670383203685113407164645535217726947605833139215827927442179009578734857019004978791336916889425800218877093366783608333073262324068165311178842491194984271564307104780517844321066155821884542670488613568411921062630208483979332870403335883490593280296547816710835578831883415068576476569448198144266903078238112675811091716722914490218106803746450036523023519037390315798499580934625133123064550963762189585819175173778401065011413593120026819026086435698135776551911120851825035606069779072050173890129587745773799640512992875350468970511871419906441600085781195688428709906327973486184640828074858760119424725204941499007204916509591557281184162036084842316851578202722527821620539012983006705485336532616681611809102055863266496948725052746701665315404760667715554314245934588367446615893508296569792493501068288248282445931192276372084742397263738670184874695525212104364484431657207543291899838437712074364914470109556879719736866260025905574492694646899478187153157734805396476291173832439932537568023039841836102521990950615122290310865588584932833088069803742707166460208222029190176155065016719698364823762270994416227747345530336940471416312518159567847184296634439747204063186433952804418727559122852032692699809422961722527192579575362800719732404438012773741470703189383840064146484744195619595194046556888885941543382462842835440371628689968696745729824233953426847119468598654454362453825982165983973456282328743092677979126741031653174569643980212658233302703717767773157537796582938184232528251727611913477824186649697376023323324264732475550036779373151398798302732978354087955484519413188032593978319551657196166023942570232896568863532627800837005842984087971975950803153925275412628628108387732705637943385276962723448492153698026868927258677015378781802075844068148094839151414011665432696827774903064400404560864774368124792703892427489774130591000297510366954317430543847361882762277829083788402188223073235228400218467414435029941965964556110010056318304754282868589649279293399354441410589812901892149573590704940691118998260839583377839584648775923194714190129669475168988092619397811537128687708927199443104520601134242522350896550749092037899710234973923548589930246308052058000635030847509794625403627955189381601251273196103484908752705049477323702189161755544326404150702161434386523705854779990930885906435171090879800059987657947003033140973404104963631780041798202789007339060398407516897329674804376271713059433880623559229799764555548394661884471960725794743630504899974389058707441176402552072595977133902636445980181394496690296893653445027433404735638950485668134551797666207315487633992426198912572211680610449002875400095965092714527730794747081843013808833349400438674110065238543798751487661603200962352843311976873017324975275691075833302162606567217189984795433915664313285723875789355008329724160685363229900515600078330459623716381136446421931868975737042022381618851220113100251887336516246254932100046121970789847378213363300219789508800636940005191536493510039516714805923537853725214357038274110157909916358404118639011187106898047108733111688691912116888300440709542688220826090463486579203383861724139323537095063706049495227229551482755147588735013119693782948901208957386951574126868895645197244064064321403141060571479743501120695742636458766992011245725996225641141029482205060761579257903403878285818654723583245528961401105725266777244579882089460185066029228214535234489611204244603652852003919711837990922289678324647839996548983396803579495635714795033651243413879107080202174343920524822614482780713343559204542385565431924507923732386642826498623743713424996378621917531256778941718815456881541939810452761331622601092172297436707554027521867739860331499453179973965076833167202901554985033832642602344204608395031651188539957160900380300321714365257227072247890877809661752769705329000367298612917227891578461231959110448158876626578985385675951756638899989748695797328909343115229203460955994930912489640399562345081921706145726384794573808352420911220951202239775316440122204897499041120939050315291567050962090472990343651554450889578551811129122621917937307202631266878774739744324949323751512865680633562544303749766380596767922448103635007493782515876091432470813956149198184401512994359378703196104530236989412946470902240269009486470832202685995080132496424782922339932210861755366793659288370271187157675568433409723368648344544887104078848529005696743804792865842706568230622987519902416959941400252763848705366970560283348359514281019240192809356308954490470767128574377700284854490099778690817291501164735400108156812772948516999511216908467785487692615565215319014986474014521975276177615354943742795342293631134295434267209046173712031664230361612557124166692283778492455959113443620084333942224390445325240039837160357955338304031168936185018261672193678254932999810139904903844097489685477359576650724959862888458645899205217966077815569448159154561419846728154793471969504417691499772750542848296888948608077830825961383731955631508895610618633660067085454969102736038884115726024243897336329229772669626040487561409562731159910354628238422297176430144854151083539083145060424631565940691709868411768159417291378124169853555354643001463994882165218344741888202859505144679869864348551993314332314521865550348570640896103198978306600539845217855197941648378281261968082222467231991433256242864861393916687498513298956701112978757093351693037319049988760214423459816890223302041435614846218407144368159150361960418900352359248053406472973737172700597293090211461546389957772951572862152078986648790228806755850283177548285118433727973327480459857299400210536324040594152783949393333811145595350690461866968861647764733974242920920022060157482476461672092357587259975994187732453886790836903869483960458987788017939148248072652942803799266348398553753579548684110231588565383499762971588313576259118243025532487972378098583745981650704951945443906381997421695654499855816344925296683688282236753246328882716746168585976064702333700528922018048655319977398447641168738777632018940809039738326636176428015728239097225075770734407922172229344175773242653350599491404549256102997195610925784599563212107884331840810080674921282745403683947607933708537484459650217165544597684358136272833930926628740519311940873772115023669763856637930326205486106863881553502285488553349716007566580303826579291467652859107251161900375106113796704498183184002009327922303136625153369172185442588307616633242678204416122702863762665034730861555264313801266130624448509833961354699252716838859576391243888871150606791537566492791972919349910278884453735896861536088806755232031379349358532702597665175951648027994565940470926669932553182496503379047988938403754616944465312568296636273782860877587997628526350784525358286267076402065645129743613348710671296490745041723280688115111130714498847928014521307524599479946983714096308930395852823172408176944798263538812591515212840393717142724856860574972061303472752755870777600458374831036168723671691786170167931722734610426525384347880882116975334076938928848806417387994808742396742006717680538380419626345054191847907989198508470268835691848443320628614623444311590777183328597101160822155608649908179689459795199747562481658089643730015912386558344234478620285085596729920049349273487250189241075588428802918859727249494092310168775736337494705213247865041322953775603027777177542862006497494807039539514867942222996588685069094974714590092005807550051157480666537368476103334571596056968133833323471070380962359506231853171978402760234498987363604398838230438924287543720336887414679033763426023731115639963609969795329704842029698601523349070798447842579927789774558538630983056547012130777474930851167522392475325752547252529040267080315986733777038300631518702805080011599949138757765249477560896793769748834472367540705116328541256205941803053894041637082676048132866921548054925249507660686200257803342174446641266427554852046955354947520244803674427751833660419273101785219661107300294234547872840017041513666739981486680574055768796065542130091337469706908800316703354217896758776150641476623382090556252741967155107242775600191285761971072640447889800400877524056208396547546592529644629760228025697017060702642616956954165764692944175378910062714363094411266246508657720333220970398032047943360938921588787279452610622795184154577117992011774117210312782347083965357073434180159227943511431064417963202951151383703751458721062993603182853106687958880500426872108539274664884014710058019421968492326744810608589956813372497168888750448386155559355157843559072652070979571830921114094903483058573840758034690454811212806328910361529751894239385518234672050378936474397200395161243249843129577915591057681534082749913002501496614653997360418344611316316866444402711439633896403029310837739509725275656806391201588338559702272059442854455739635367541534370147338505236150846973973567602025498820887360923028765157020112530626686538804594865625836043395146748698492593336960163883134619366352562703010162128411671753382974838970680688767804763503214213825366358158694191226818572135092886258341612291865110550735132669781963374975459752542090267845150417222172745560365858401754327216095835742405764010927897160454371929093834129271206676363431874624655510590193985809862304143635266878009103733782349402659654894536507334180040431804389311208555396643479758007417029548751009506703957477971812480757436852752604998836817485946704990110792327780354226815531357082164504363634838988674075654395635368372397831378213946826474918978759535174286917325020649586010324174309552667348913679097160896840395673724740807911550618700402578179753153112227131633552996703214159718241596744565663185930303462499205808472800399838351962792032169706280538087484391769621534834007138330161280518920907559183016041516218867174813282918499854008499753710917089024097730884360057279367170007624857864446677106373787896737724522651562586411854152042761280485379621595808922374323862952817942447247112698582143554640154308789926031314615985847458243431125876105240203854777250756872336655024893714232200418125669014230965173759175389715861184740775652049952635636764090721687449590307874146452229615128444113934851457062803608829754214000060497428968455224892111072328515228769162744246291045964798750230908946462998768018408849874967555732498499940092655887779260372776763716910343944219671684288432161479028278417426343777379559842791694368335692406152751420150626165647846143585777316772377670272960526106490243827438574862349055741951474996393225504073148797826574803479441404893656282482180060237566844150524517317226290916797049389247705376408268228374264189618812929135203612195269431594196604875415021156780911705088367068092097483052867247703004457253175697070005169988070924748082991608359671372285822685076320142371993890707209722791657954902343388100731687452918513341091260835589986737777002916458153069598732114207101128686889137960985229858203874507857526336392852508913447932171347758788133852057990717315342752075679534386449433757211864254929179434578534764395021919184361658803678303580604568916977639391100950816242606903771068016089500663121564782261153977594918555210321256893259076598498809924231923914437457649074204170839696658041914561263496713846304046464168581719243989931987034353357384628555379319104901297304321583425351498304669166524296267348381275089234391391810149672404885652873817907957891608093882507940299417132698484370360802950881848964771952531042825658915118341996408513523733960300340474649405982179546282971123625545243627840701652779419209335613295331919752407353679139027613827767439791314423385672365315661775895636651044074901597690452751353198520906638871709860622431233156164505758439608018815675752425862107916175174953936109316841086853214004024500483758938703403869301721211787082737869084479637502909372465334054834899114339316460924905786329505139616038877621541849461528118182583215326724394470266519433055381929235957860065195127072762777014906565633476871826099202841150821862416079347542418630741195183849516247462676968599525867688672648884420041483897822917990396278623858935427180358388082679599453235685750522513696740155875115202194806686509240879967946979876572012998393892393770704527488939820308126596305052252884005170832318638414755259137623757514517787917679496886201071143066131459559647547999671181393361708762376132496113584805966854551159985692825554405207208565649797507868862686719563902854887806330848871066849601109194359889281311219627481419765804041258240379571012422008990183990970035657903684265661536396300965945489621861601078908082641759005899503600003880578508632698498274005677052391800496136110603954937878381133473246606591730220679371625895596981971492377909749026216394950518908625759045621634971209586548099773756150165284553946057789486576143691815803772219055879777975144086196361727515129421133415233185034031968071237223165797395590757739601756351867764900714681733091493727072159663166188213898446719193696386640038065955466562914801831589296916489717198686078692970107217620645073610710408006745327887117842238396344758135189281668044936712585803400688004740029549991195048195991082746450212625550027327794787371474988636775815141699185807783074705137358640298994754421397908405091666489697419451522617994958467514464862223211746830913094892666993398580796804639363129543214470949418364275452984181573432419251164815880639769210155320200454566160749771612484868055760011826076571824641316863012590264856629001874284875874230864575942849352207278403253953638908286901440981206720480156122822231824639950611212831883899795752066185300818809064396462615719491213742899552911628846364307352047919722986702416698389530260566327763384544790232638380466148718114392590587154159568791377632958727973916931800919867120351488107029501095427512177705054988211686998837401482779563045369998700253033223934056575347087248470887030404472811202230700814390449319994656520742527567681860144645682849771177965666831786440754057057759918240123031013806087815353127448543287357421270738223796436203691957353585030421880054889604290515727742836427893619586215674222398772799611799798366166318823805910079914400511761959185883086022807447999932899330745445659841052423473779877734563922312715850195005297173424888804684099401680077306365143409526724413343301535632708006402220206333251747829677569719542477757482367740499956969321713737193967058625857837140830068558689314397547827958637686520274956426865272813569045659210556584334864306582241374505359761870316790093592790469574394089720594393964860664659608899602734145913324904710203793728069202273943871370404269686527367988160580381944809423088282944053927078565066976101675061396864388658523324096014502952449783252918350325382968170922870405498481689221919533954358709184959529216855075355962834458178158181656990177857543102494977372035134809004880677823288105351412134830998366708626068380293515982517624894307450365149165848819280594753749380122163317116778002076188554152063344127248425984703769465539305582609338263246942411414722457506048298926812373739622516679209563809703506516337323091513968633679912093236540853822680420546426987498286840432399226252003806256594800008731896909954682787214419522848637855083916457001877469187861988499178640083056055716565907188551976382143822818425629382109926592327228634657868703172241540806028023637302264941356917778038983453721159740892567447080971220002982355807100486779716394160187639296696896338897309440201984544891353498121604683056098821267306075391157046406928946595076963703084572530500505742575309680312678749012986097768340549138605824617693567251640659411805261216759508972147591302895250787690992040994398043680824733202517252895829644333911564200577008502625650687386816007144552586554119284845621837830477751924594401696431735866062022503022798935955059222018666493092539780811124034364383111890450925094667760596973984886749659966750434693618856235923374387641464433219469504692781401983720000778001481008459789286642288047323851304421016176220276615113571525700354190018320221013133745212508368218098024397329409244391480442716249270575875902529976973898224514530988915964169137798925113607983513146902642692461017552042347636624566471756438848237624461158041080328193375494166327868271893976309638382829368384318112615637390095918726629487223843562345150203806366022890516683150423426128189516215365955584025692522059920435167105856488209109601563823640009677900806114878528625175763346241111799383467719750409411203369310684251501805474100368187112362729355756088539606390829718981301032778610769048295581592920447122055642208312643981599850986614439850111583493557611215074102926300144561259318308574053807713387300998451972425427235352293803158465321328929612574330823418268703333709935866470633085610577470181336814627111910405986947116765359953221257755178494483996842910219597847862385819331929459277423152325430872152099566707223281831901791764716106554751168046937339011683528485069547344289498001474973322315483702086659252848225521669539768468388290599338145471806871227971312574928175739046446437732152358709431974734209497006014320582330739994755600103718597984054924335192562401202540433197694431021066705308060300872617424300393641093505335616056241924973823177419916986255252585159174726267730847417993799669686903633104971770837792220278662219395183469501823821155574611737831702607246321739833379129387070036425294437401146444416399892998921456577553463712389861640175710102856433368217287987768970458347913699302929993050926520716463163073568098058500931617305555303190424371343325534152668640978403163856962909043789210380100101830233336269384301638728644377989645787628637051806950283239815313226192992830536569131731004881507958014152615542277847706617365421685115991381364153012111989595997736415896920198799652774279085795366659834613640828036412308122002037440282618258179523995422549245810280271159313501315017708491332240891126389523875235381126204177445400748559166850896412168809931052202200136263761970719383753342365895459592255948406483446720228952521191626346779240561372711652478678349872825364302304019001313582747841543628225195628543965673141831225978423403466099156089808882719600309873511015506657329973656969698120635254109906517902766333058236322848957669645175433368859014256540544280708085487279147199990120815766932703306182659516368530346590504591815402195271788211422385267746729175839951124689046237935905954036446387632959993978053105897877766099609589016445218883516375567062028017102073570373867550094874008160399705129938569394265357814820997983653578049601460839437640787036244972645321983621821406009256916430839377375455518152531903809098798478060517852441537993178565233676079007718698305306693542126533785242131211865675734972413305970237971081242271486418259092094778216600066268670557181660832822578426093668494203919509437873343005590108518863513350268851080531083575756590388731500449895889466940836657072435093254338092885645836313539546579799181975646674806732491826429712357511579072680242487939921489648226915451722198443500837745066365636954264328307112504628076382436406182940760090899937366692992931983835464047963818695273059207946736480715205217070524088580942198710030723448130074801717117477354402623134976176651642440539854895980140270140881440973462380887772350176183970934554877883594919046205302443780617669538973364655604031068747853260550382184618415489749249098652616343959526045140310699653658442128785920823343459058702342457214310049349720289271538223387253019002196288093498223682597763153765937281559712424639252700370148949245733683357997516923114182428252786867412729818688369763209550823631889388919631127871055801472677961760629322680977686023973322904116436688521804518181361994961563388071655978239670495194609572396015738373334128347409333990904892923983723756899046522818403406850040592340145388380226509653384594803237653414377018487268799474502925759812076224602709592818780802528242432546877917290162332621451577838545937783658082874258334887405589896809875812748707185239712399850703883861645155863827631200034182204885893136421575162533524532533374517858839130189717202107498583941405434322487036733788801347569492081080454509863965670079349198754386598140118002010809640271479230679439134638367483296503378947489112373545020505515057040985757109908984766516477859679571309530548298978946913411221602431298215913554924879177076119064726697749419483097791013538170387422676833654468231366609938171821951022586759122183708518169376308171914444314583795345197450231833024729221582875815601758547548479010085873237808870926776312676392784498492711015527986096578603846459229874232391240165021929904188929329339011321663554429044325759921792594352514138634722741414790157577737488277419090549027040900919875959921794455362054706198081490866093288643007976572290557503143574323851855926650261806097194942446618713678964379256554697471460011552232271106082264466663655065300133728565965840061039284408169956050732865617807544341038222174460215680809782624059546364487611993697234765261803270232208426753107255739824594750094394491690215428170424050665343913201947092801782817460849980354347250202935677397157118916341880969275188477716662510075132571993556774991742641577925164340311488143086808597806988551865537360040962722517303900645380471967275460106857853423602964625953311546536489293620198554343141037487534922744714790446320708998786394690764861500572336002834610419435525718391473323006063519986613597439180886567979742434001225519675424221982990665402983808582387908649458909560566372138099172678966704297873262540122158120073069563805354122983588016175846763595819621891227840357827917382027688872406973795541287975803899500374234154487249855793748797931752297743745636843859139353588748459839477892822797214983359101522008236726913840279272134665166018607549770486773252808974145882971919502384067576909511702776174167920297910334308395497895184389432291621096106581999544469913313859109775469231669420701015104760643477570189744830809301101957952504330798082391499911432933325504450751469592730124170403596163847344715894350680531643168776645033016319268175649061993201812131057077288730245854250831180086592356999980244893396303639533359093733650061934283715022469725992373828015418563642784284375901990859446976646067924282279130151100780478938001806472867562489649987255570195028964895635091196780459392913319881320100882545368871569193844823637740079134317294873231560103199352246231837027935978027550646843977987289306188793255767731544821192989175816311237667691838535233987062778410876318063842676723787465675799586628260864952490555514734590552508013007861533618608714025415988327368465745905194105008015771074401682158183457371047964255295757727913991168537861175019618159618247322701041058468264491755592736782417317587649497375856357692774086631874843145118414363515984239429428603502987235063846824211449665293347204657321277755107345538681981171143839593245854878015507784165596533070848193003501974462463916969406313491957204223460572079721112423669116336051361924046254999903476100519670053894485309165364088709738649697219308479854687839083186764198003343558505790470271554329526633685392650457992187199487402717936988186920371660660389563343666303528373885689443659076672819248442731627465828792705003428637352188814298678816924229817027022558820250108108540114978606692327157734263370196941967164564937482402541501847614727541887730385868163165362471144957453031345951288261894668863553935078640760964525116640350439695128632253211371715727488372245160600853339734825645175608858152998993616756687472169515960417722765455000844467293202686750741562438885780635431304909301281552161707441150820888479771914785195534063851929523366009821588514560317638322622112936343087717825829262418995092058234225381611097277936908671023640594263356109439673454982702694049102627210284059957248262678880926564753019023346887508895020689642251494830347506693819067297832994008580672960437180244577088053609292782962288707306729794920991262898167875874131550352750277359058255154451507098492223207588659185951624586468102140213589578511047955092766892694880756261993586918700438968927102561737682368961519944086471456039763822127799657412073091481661353464386777651334836422953182492575352144855429505400843739800461410228919932511852710598828682241623649975341854122437276489755348565650728960918524047286838630144692550424846753391397496390600362051940058872583324470039091610065090861303576603926949628847306736343320446209696409625587200978555150325351575286731557975534353609738885109818268729625855119910997803978594377689192904680705141199919234872997270304310195066629537966120325031612802717275213424508382773127074248849607886052219802638614919603583264869981302602589054247067150327857513199125376343334993526995403598292863716867165007799665846046523517564524335342843576220080064938640101445668393645556433113079197621418544825013252128587795094268684829570361308125434309668829411760681959520452084577050746850884353883339949198926520002193533248709493144665843486664675255357452403464971686011444350663907826392440115558076189719399798343342299265867777195611391587003502727910031466741799298496127894424539794301498709257165448365048652785200903066917677890847759575921898860304823328353960774967340212839434410988473666021907477094237038465094943758785906213046197185135169069406205372774501232989221755170196798452203308860885847794032654533577681503177426430583657493087452269707721038110753815456972823216922290908835370694231141472286351803728881973592271269128769944412632363175456027967191947302938908116734099741085562360945905988981732479861085881308978849138139479088516329147118341789021502539182294954332545917336840043276040496670795494192960364765071967906633762492861084562028584621232557576179797805192792917947807760408805106914730840350466301713139653962297408463127978572808712791213108704394170231428161547463611988978633892559149154575520016271664856023447639209290796239986359814498724083093881922515428007879471378721990017186186814610452123219027188901288380098242461539718536424883255467171258206191784433641523579130093708457119246252704367496329277927369464069496480667476896469650707005574559987913604085919776636277152844456995855073933586875008170805914614130520367309677140267324665147824562121886471014467833599483017455423281222907165534116406480956082357801463150948854829160040727788828756368813778800861754136079053826999080432519590335232645821944427025206230817961339693416502852020509772497850053157972812289518490621742992960612664869915684448961337372472294234130124619741828394074500551795260230709502990208880073730834701800764444473840246174772856587742020884726885082386579655458491671341622334901945122092344391182582605925568909003058771348696079585942701278882623574792497330810954773773212233463725830751888155124056861978420716250819223422463558206235738011107220308735124630438042591970971704057252527296044817206410447438057554791645140920970500405975531289329662691402060288271466610634231587379360833488453429896530644623224164768599482296399009934585174601323272609792204621731996975758283619544608197194007106275002030351987438033010558506285998300255022684352735119582771025632297266161592709665846709933325482515819316043481805695646766952135749957297791475580464597923739987368458565554842549202606329956676670331987467747801333656850115421642502692490359793372436259551043023872820521001491239074295135202582756009272150454938599123897204572128075496317894375950268204775862461628051966135430026554516364607246835930871054454836302045623844015670131207381732915566563058454268110787364831929374415900491569335361874176600385667129898690216879845515475986905404796313409173186525188167607290067940174329484838915425630887110846486071035504056534165604850421600479925040834412840643901064695969728176345260611313068010230305548897667114948522889625047293460006227187489575022997672198943026929500109511930613291661964025430067813804827555274530149891106985329915909390881217794021977135252372427356699137219808618456946400985656335865641720799909426148041502977559251529527033463174183884137241490391056934130021823344331228709829628165765155268925935804561318930604002679365068227435596517272247382258338156404572929649006999801953069596871303368286409798449480150567523888975718068929845432324967850482302869615656574129394562267758637209900631524287976255131254965653949672918559614865869003817238988131944329822140063942024187924384696995888328300493363343208283866199520609943867753362255160168438581467564390752261508074970457264521979486637973521297424039779049355856593307562085832016874109336819621744881351331536077999187386526698235127120159041210146093779785487970048553887476417645006781441731065329575971769898258141283347844051312563239191179171384241253993871106643723777310687999552618185391093668226596571672129025133261420239923546287724560490986460968481977426515134643074231675992551101405713529689550568664122882550956286757263323899757900631231022782094177794299850089852979392739489856670938249223321105508879795563103924505650184633205985227720954219505552665510133769203220042869386512775251176201882109668429372815893477017126643663950334150789184032944798599118641517113283361511147353408362928093644826483185280249124220489519420578304798905731384787032676960808483809047852567387343453154399174909517316530341085885602684009290933289248421736729549923056059757157661584825182318254714663601618558602102967147685809700506456381287047405816552416812398346921521804351364175198331913428132246337658327074619241100639815506381473936701736534158383464224273551723723372254475998246739869353982481103845565713050934103741502018811304779331272655317863729035416513875083389675942377203822568766577360479724770054864968034545413293833928632406865029828654399216552577514891876435603867244659433197420085831990514560441765380612103853294567787387199077584117517376377817294158940927223664069989484284050181025165869995456086452916817482885476677662018294403893780145710986182298435803076200892490349280246883457592662479836698323089376696257487959173387237532258654023818292327865111855827589417947967112907803926115031361191586747153372846041367485954377054317055773838563810696049547658904833724854056452860037538186777356644710117396639970710060552972472763596638141952932807270983316085429800873233217993733123076682180420104260431772347637419670694861152663003671615609069327114354195205192708467634738925194296269244889860448399822383085306387919786139734007986398984839270717652244526292693691769061393330688078851084038296205882754086977669422679839504746348391343847396717464090472621085297045755598338439579343109827341769655050594756458643794809642615615665787249141177402370203138877618302512566290993954894360964893321051527612895083602083128743964703443075158138427395646105680529482660520447101237630386146007317563119909155207235786136727068080336572092595028136376194369695222881149143110861058086298860165293814672930519468396970996854474342808159755837555629136701194631189398405115395764902354136000161748465450638592843013441224594193175950262170105912430201174843514640574373853843014642962627892402786939090179175667407119658514365062963417153269085270765556145355291815217667616062966729460333869286204453108796458646879584192169294072931944860920702733070874073493020725715586455217124874994378672788134474176303461423003097515741505100644675734083318695184588930703756633051892056087857149475241873732832772095136288804838194195497495451451734189057807355440704068178725869309297162414210167222295191998534154823620158554815625097408822416397603668374997942187320574834897395462543112073011628255595248619682787421293992885736092557475323181017209004662599999982714758593363421102756874376913842059441976420403818351444900187157714966384040772710841942597678420367399080364544569341735233111999232022180256969908948673837576982806901500471321868638081607430030182504062979020467784498544908036148617287340369634167725978802775709167421622109169757657228460180119037655342958685095668729212043916575613586832474830682666744419210978366330664307078415481303162715907183819009615198029094445068006344094631194190193395596834841618733507188203825408522232143537171836537401538005667513690761087249921407777983135448161906529168589660197930053781940198706177035867586944716941121364012590439726276891583629047723571751919160413485661810818417821769664500843821285640959863420474385855020232557414124237728709379087544035223402097878783462744692125613234861946296879551063291292049705177369519929337955433769445517934041350295655603362223906090692710007192792810137149222635397284678375543833249860536153861926628560869676703372678249523058818629955466381922993971384347519392317549385501901943606516404065634714759303899537252693552668013209814523523287858539046002142384730488805186454967201021739160431131552644803690331082794721240316008585360001285030444951682009602492907064796037799437868964088432261495437335966257983791199321014838597932898811324013156249360710161046063151237462149959655732122804289375480786269834124428588060158978756555943875120620436850455063740225053810438011006249233249226683739190104739024062316479713454540470807347142180091700174450450449936017567079416336380230068108631278369180820140149721834308479459015725298505387597803600027235370975752054342505163178537278719837109882015010575411542604792996041752376954965548430673398844159575410958818214440543363923922295261968261652592592675708174581222229909241845314737012516613395660896947798765683650401796525047309774578326873467489857236433570613557549346185426321751268096676899310265437740531178383665267026282463882323899094738964782115306197596745066750611261943490246385479401812341955118394335334824361283598995503504908192530830868543385856050922376234728146204770012108197371120532081943493568844621603859726870008698872272515623969595046076871551872467084481759974921532459169090119104980708742700753089429700583567052791456605692830108102512807020327409505268145631993806335028866271340996177281819065616513825081300676141230029108713033928140361429842183654820118511178696767570654169652811257264245139970874773401364937162695929302262482001796153567424218896919117035389101050112476875024464570703072437902982849031344175182090331003202459753500219383008836962685745038389550627193535586773889685382429427931424563682681261142363202935215144790821654748353094722833025294958942425424947542470441787949195637276442109503789743861131387372402541049885033604280323378857351649652690261775874701851808718129698707360674609366241104474200047354196892819579000649855596102777800218580314917135888543499758066982608073496491540756230163800096284098856232134961291331861777308811267208928533444830980609461993544651406203504722407938583819488868296501276011440725322340705649751485479838517107536788106639114253922014799948073473241112166724810243268957277898308281956362255009820876809066780055182744989457955380870022844131527478687668888805125540570831968536299176596558632626283962554607670548889412623285056653403601576352254819417120793000954305792736659405344941607998522977228999802587450395398118117949481644534442442960671548066092102266331105388450282509700239070365245662375423399011331145755407330674160575716960477299104433104926325926497897486456513082295511620125222317946454247161471302427619266540303162800681461712193631888803669407912293486187493703197977522002129199788558498444936989564232900490043487890014566686241668882680768865268467992381534888326955184717975855605895759847795199235680377558877666022564758960718575885973550355689758648452416538280983356138024741210411195500319158717156897056918869129565366341556031380427034813459221396308409521122449670998766580163066857312417542962201228358982121841888073896906256746581243131321622479796953985405507226391255240859599264461541879576782959214470684539680520200800232269719885092420210185069065693212363562114683843057875741019237442820237998379229738785380443305857282205380368698603100677823901780511392465833969141172609354861882472469787002952922187104643148658411566346586506123658141986169492476739881968400050809171359072315804091001961914508719357512980178194891364893023776880712241127700552127022618112236983180840698270201641089760141443973675964214454286846734231228338947306794217953703531555857845911430610821199632716228801356811352497180333872907853426317230847880423373244112020846317445781505784693849303864556900117985121652199477170264297413621988529875275511421442790121320277074813312519040726645778591774019684762548456940474486226682442640661196896142873442334318435778231654029040234389111629552792824847448944038692516142272892224897581445898440745679787532418240829191931736042957668629112009235640435631467816737219437256826272339073277585057288592918795847026223122048149383340378510865793522103838628862712156058894816473618000995781624747855428757826289099789667452096936802384649706165936625156853012646814930921788121348916581638332880931244420533607439980165406945547544022049195080557894186621158085184721563605616055292090165366487924918766744537037626494175757504327506367528156677303884035647148284130790104950172888849181588190981543838832121721089630639581236725753117640127714944327638084157522777698361420894877663233098234636376181043346680535555366442822137911431712551817153008789495676418424558910283447550017517146144043927205999201482194297128580438373440722965715150149546828275522037184958298901976698490741980482326821880431496792606813437745836862775498753919437879444860475896002668468690744310338387943712894948509633272916626541348849031969546798284360187045538692685806106346467212193623401197357013151261032883872979593074566550493554244547828763220000001857798138731115226010643890290413278276846831262830742406684634103822000519773187435489940701025335220965362310814178518025774272493759760853777585087021372446185860095991104653544933039412485981811888917906647128093609936032630085009826002212994912739041412324023017128224151721580830959044623324060048811023321346320680801081687828899346931805250580416482112854863547200788444055695417423129459598234296979158206379910522513222017470467691403089759440486644525999485980114929992055641164705751939393215938650098556607611975921573647764406316776609474057660382005617050332473734334449836419511363556514206659817495015662713845918302145670733147900050441594433457997239888270958322407688680949571248147637344852658663636085034844804639934859869117574062182090026805289189683158202398534604791015609602477872739216988312512920933391543065316607594937763530928897042377548424046856007435134475476753705884599325765458527530861399500013216609885699298610955643755356473749592655521450783915279866217806204163571735060514113575579235547029865752479251999981879308270524491760825915134919348440634427538187809367760538123959846290173129502886457779205617083530610966234450009693006080812453233521838091279911218242454103332859048274754613324095837082717468503379252214108722550166520097542529564327810669472377322488914570195949421472141697489974675753800791355149648680336358627670198476731847830570736382919267020570381175080087486886634210968044557416975002233374903081491077937772177852180807407827602275011224298766733578373244701564938972302566524681093037695033452264751118615801725812457406253353580007923595057519413456336401008866502811242181496134590081677523517655058128484231068540555602842944852037994392412627463857889970443760439135022615512588252024788754944679034060646919439607852267906025245876449317048762638440078391909668821195064115094091411634120226379531036676736610413980958108415072154420728679188474508032231462113796585530130076253475022511053065285368269385128797696821274827124360173253405393220021957017122417037067604716578722736742868790958087876516006511052020895260649863477364626977325990121164163294916804789710160617203988687567590813304451179150453935217373607557678841547954420528248790995914687230867925835986337980784783650841462076131410448068785011611902036785152104636620423600353877547331778212481587248085962228638421897988678273934919328657509226950803578341395471208865639201843488676797054975681762897305644970165869578878668532290264037039131484391182276748712580025573246066948081985503551218362430470626892430812414384059400747696766239005038804659786532968117287825928427084496115585991714459748761066949205076192187476981061473893623266797592701415929089485200973685249442077586334834998582548098920834858361096534695661049108345526862952829064980675326184864761141379888497223642769147729189483980692665569461315174479126827535702159153203036390573333522706370308925639132183181459883120895103236818770917496276401096242172357093363664546111209384490712193465702611182508320859976611274023660421479327197415337409699462613078586275938919726148209281123720089217405869474265878446953568716912148775001591427268307283777963845980555550392681309871873848062000665639782590992683265084603357972698247968666763494847325014590245426847389641859375334694869601422292500106702841303943539742117737480836755506353368535261991921715715591707942432918067009739108348832671402657425338655794369263341205059529492220147905047683310398580982850829216635286487195172598223921402813302510184980495682204242012012291552681999933697387513535722858368516192804944030927406716522460118092947767367771882192588739647534234713217356344752378932981991885304606209316903799787762370524417751476824400316660954014041710924984151238804589728576097608098866389523420295664161814644073489679332220157954187476069640053298662079831837153537818210035193214161249929471243059106410108322668438479720545405168169447474822938914749026354389608725290451191872083491446281040866476790560322610773166754714250895161312953978521003334295175099192479348738385495175307235313015147493135599074217646848655433332531119798060639613082113693958742372386178721775500454921047643820552004394518187522599145203605091117634761671130327247634914240927579744307073823214092198279478245673663062006123795574067874252654285805816732861381011950815794977884735560313070643324430556891017886713338224714030946498221959390339714085510492859308846976733475050838158679206606819162856559247456683632176402452563239610124676460753161914162542821441844102254486016054018180990695976559314500583164269736585431579240351685813873205886078046657071088379023508632431792369557685453019628725305968067566203788470749571479149922322674642212122046017837643918786137150533059353615604834873675816281390810220051050166720571805381911878119212625382612126396817390751633082433923819782021021670550867135087351684765977367738196983595429488610838490598244239173705631482981004189253398910067162309392179551069519014341361461530922242393034171435076445102529512468723396416505470682451764402521549600145859522939028745551314180702539256751714165152190539908653477074416451893344036435694298214779425904988250839560457598834636458328011636636080334322730915097334693709761294823966103992134012932670671641583454755057831160987971460250561329482489418194490058010822932521569931471347776676125813543290808582221413013805726660605329416274103977537978754791709633312805738447870672927950133110122330583143850757294892379900026098039883115294015156989040905563201751121116937589717270140108074457093242768159204572898616039482110448427694911165693383589380164029154850416408245930491992706496045485548588487942366286074969221482401105880499259298344266961447829600023037764734400078795830138038639810951302864403867193780105692229044253553670204619853323763780346321692296323840874654233906617498221399423685093360884561087276725819005969824775498422241018218802326271506625782840123307240110943972106135043643653798658624785560392291350717172034653098214891265735762277990211559812239122365209290245096261114348915154405417428782093011320885802602801439504999677723105654728569486158046657402416476968846049681811224915992363160904563039719794459351609454388177603877211624948472294096930779681796458616992780435994013815926488616423803980809193518458596396248133461424405889597457386191287910726267942308967687834015372088194105946164574102801912857962570094914831570124421143517392192735116791234840779039084137058098102275104371397580209591093386972607848427132627172149861458713871579782607608941242226946766266015844159903165529456665829665030872544668289034999955273000712970693867370819684177352511966298481718849084697940797642307961158177883384558291605288939065834904262502258275701129396218221375777351451681938030128883826334279355115687042299276139045121001983187898804640088510413901439537229516555237749035983279030596541109320142064002659840667205193712835918082501825043049656613831291276587777919163672902594482069826286067774370893030654406378080714690243665324176005771977780290231405694491455355038136897947457623186471637278504354569738928511068168922679110652851447257100850861767694315144322997908732373750924755703818831142937133114157414666904334329798599462329227533389599710738546802351732813236950359590103818536423610067668109425515441033013205070463533625195105476610421654882630762274688632548655286277071790169301938940038280283055124301398532396891272118745218091714434058097943429205350036936300688739755504883248828292498995872355888254634229093432019089040495913950320216454013980742486469789614257092224802987355537950966048793341553583296022521202922066307590293688206063673495357128905748586668985062867591446197195905408532468334817731038821280839066234314888226333335285328857962755225200125027254286210271513222363968713000856074256833976260449217091234837748059097452862269061347554794177057974813769468392072900286271977020351553778435644301086716184808839097146575311701556722353828955746559864064010362596740913925771638058836724396263469858260274129253385631581081841442704935505723362941905782212326457696786254627681864923326127416365315710078839400668166331006943958500098766409640988949658382748433929525684497396612827108663836649357212479480389068209081925659570221871402314720650517822083225849179597793132264028112560016189360370502637712491859509643007191984200571927419171461856893655820102153011688526410060947906086741280617812340621563491737442307337670484268915399612090678757161979575839630642973300594119298409359927408350982448680735419257352499317635346907473453905177348340132774828873024993336963926785790781211110196880260382823024638622364541809462702752391463698671668633777725699257855302013468066861557813236661715787497214677258303478315167879895245554405639535524950725012589179483165828904859766121212845026114311478421403826897632938508737329860207327105772225062567285031859902136303324925375191809337727280351308896847550478812089679596396006959675800674104717072555031274222356708168284594393746670717179795558548781757404762294397950818478293653426673899538070374221251987361343979300509328493613342985378884471691300909938482984487633949763553121740180852651862510742872303113432942264944691753058190576682626582886226675138808490870842620351349068520247395080467516863416533006878288191157442455109367784288485179124455045627650652792871085172125396584351003919558124779978369822436204593544888837870535768679060012735253255961713036483054770655831565791256335149743989330365351487319884257693036444844692109565765233790909249413199559650766629808219497895397321289610585557310776137332828292871040993160982674901958082668724671388862610592955803880758192866479732322575603863040793817853445599432125638653544391274930786588824975550596096480414424072251312530818051332225955718811396519006988226731082416494804769938252274670280419566856011911115190004851592535499651769865482565178394102263616944330244965653323140277086459920974469418501173539095523005238702079765361655109472263822929227912842283158043239161872769002887157074085607809131963396416143445563817416763911989328626155988800814796489557512476674828719120877107316180591599265748678301942662999003713361593403805374782012460949651725302376212236398205842123933062063137144506560522364504727427276345328673971997360327344221354439792862146506896848475390930540762444115371320318566947858655848046012616835324031341891367433410161057958972508704345276183578318089515633617844865898906718708780153454580027406121285435703450913609884335249183840794490114606763053706163175939296683534324185435313358235175264456082760684953616333963255706929042938537359600149785824107101164173485898698140850017416518029091580992614727635573545809151225815723574115773167281167842446671869699488732980208725982924840228396261828319128503278364246434764923314032589525366314613575749410410649156990543552295071763798953581094152364110888867349267517484681179622190576940418426685070285379447590285691481171920061576435851441868071751147496932577012823289834531101033945360178706830876902814008603402809321871402676577048743171833933122562244608442453211457184385562052764905553128541230154853214440788946393672665278609701840060511157630189395049039538435145626058315496733760648757188792937653041439068811213914955679105859030283286352114224995115964417828748377064531565474740583399921564780818645097744039144947664310336584918364000885494948289439202547241894587375174037137799709584076963603780700215077919353922986901067388846218241180099132230287624320794894003583039877636796519033549829160854075938726540209046855063717067517925437540967727076181286737983374230411905699733445078753647780091324670951818938181608025585240404093822646038188657036911331937831129550607799360584448056754303696736835314096485957393523977415319616884692141078825228955361390446707828930904423503557104156551687730318928353381666108656114132208464991158703936685948376251438873490425488006564564295797791241028165582476324222769088315025787996038698077465319759650090549783131820836034416929001788426484310233474120802862699484998874516287574741843710780624989787374890834618605801471061445412001046989456641040834155585958779832264358603184222068588923901346014139448599322592263615778384873344658313991733244219558771052676787529380937105528160388365820647513147822945388052038571389035242823703571773390866208173734801840172717095279529619208214909122783017893782687423387315142862317866624802637722440341092434601376904148976680627374148121370828917669225627684345000615298643595357031257637472336508808883540246029965117469815859103561662382552571994248944146870759118158256620247420052124709414454215106246853934644542672824405388150443577330247742006272362670819970742470592841983263423924035943851815910768445565689292290963120744582014295718967314863941500137321814869621131281223152138253736916261495188862039009280605670710509228740666574673104463905208745147125419918265645624984369410482391321017538274450404999623114244816784041552693541329041065673434510247700739210793149717814065811061095515805494530602232670157681109896156684659800492847577180565091703511926402257978684985283241132482858099797547445614328940064331274312909789904884555198262598715306637831804387715590584744040062574409799611952684441556766624158013696036366086606594156285241869946690346382810156853426451430013988684630996037286612627922409874375966678319773048222285923481871146036833887033426519907712280285764336609513495709314157120806586084620454285566076195031735081315162107826545093721948477958687954193766679860213254868527633376902481398781758445787508983065841153926345339972616305121203798579849885532282545651976886895377349942373936962807252268087602915346193346100540103405030176667052082389235583880692809366986532927657852942990452656023348682273716573124833131237856746602549853742158247090443381157317766669522453176022759592512305113981459628343811440950523044382597231282844481787460320431783862965909315956732836313863062617254767844827999405766475901337372178562693691069739599392134737790523441961997767931015740813769619328564552753552806469761980956797521840571631627838508037362455872756521885564124009436014624523271476145738073670749585257396898675824438808742355123603423784474916699372469171901997963506630826585704747059785752636095229658805027619892591493935882314753411357532840829335700674516319198827344226040647050638808117343932909970327604206094849619826429558415308363704956351650441810694070602261292732690654066869802728136012066595656434253970557638071128816654781133120925552119797918858668734805180348703024071002688268212522793029717488095356074711582633140310632605785491488900377879767700016975133961132223022566831238121572017922260092988744997106587794180685956829446381526002300401964214494254999880880571382811613706830153789038976368216201137397914802011854038861510688798975691662335943288891267291409843902665724594347200197015284315915829030703744076456976717306284237496465448239987261852135477532941095046172430476337857835467756360211508541341884669716564810919671711701450203659081816823774058380320993497651788707099182671278645016987703258520693088144494763745376184955125830744750812064034543469401699106645798468754979452344990826224681738159547047051770923871851098642994534338614958432099624359242302361510825641800884072515911747789367898525266493801871912187535389507157809023763305599139842822556695322462851531981019569994048820950541087690886873779185684345645887526520953299633512384914642199967775881381731597071574907606538344521062304314886401452007078399582250651840968192705414212975774251068879157603546771251519256279429598736773587966305940627770863936713745328080603397306519479838608855977355723540908421688486911992910593023230562479285578845652206318014317729126372555396631190372247479523558178382380063896327524382345663287533528340473779012337287844443227780046401680945003224356397479337646928012745499661830793805393655185419109801868470468656827495385575289185179352270282669200958494968139319398497394109791883638778796419468707215550452075894086351367997771627625091695092055510446974270012357488054968387311397190033464414912101163311837351963917600022081371673977874776214123350646542081372891507396684255000576788300179017805773126201480159817623018728586563415938727513342462485873558682964528692101693046139784002329954223383510909380487809888777968786841714194805156919012109100499856235502151380085005226359049514031115765386406393014194399774323418813521751955377498477670719932729920111930434473429507036319288936501478224988993429771152062301288555664196579577282573734467225041753785462323944806695554140676531259597805235136082087550300203911699036479836071301049516766210716460678663858087786854807997234088310912118030145070225530123663323226927410327870671454060886234704397215957760977278869494710749278322524091629706604608408685264782007056369960773545965107449916128229644982647533955937585968818024221378027299345171794631715871691072887346930771254102674139521731826514227451008330431543363931479142644210218825467445168307976890465219069192138447890432724318423512800223353501040709009432467026051615135331885813611002569587533259830401737914670620649106900367885375606172655241212821213607375380434651874672898538194964037203135033561187390305617084702212986600228099159135779779824246937005820830176459113350394790091320645392284855138645367766519636099094104391559189330313004909354585463240071776365752305065903496268265980675724724083525415989972842458214189675123258795658874115630976808891577881730249983061694627992149865740218020339119643467780020693835234611163091734021332316286785586618539948016402596220950939554699750628910725778534838755188764388528055924072146173909763587338306242112331159181055406480822043587091276866664428328632214234916828085685916038019124325705464610659489784495394251178890913407471688303700277675009596855883643552300280650992990762016126369870998812726406173425672688063890766613573912692714367017910317638563983129165405680309844858938680432681889156724142956787220241075578041283342807459791876796454711317150263897252314169264275964588790449115855625211805376447851064688111509192410507748096207180930196877669466681845444220354117737729109236586434176032906452960039313821456096668608933136533556979272889753706966892811356089354628565255970661200695120935711291969410296524043044233362375171252440320592578311569190757748970179599782030665461689077386237313559292517187460255940216674589674382600690032963848068936997036296941306356349884012823487306269675560952366276705152865484537139149391412714799776339775072905045539072072922896040206538918881278301976652799413991397340001125437173676431168797935283898037369283986440582485736234254787793810900088933917985168306787719277158316035709664088964944863540405667281760896785971049475956866435872033896444097739746800045541501594738706297952982005716868351896946471885007923729423618692393885052464287357588361432635015611982986607574557988135355540165429950250741218387039223411165788034107309117570319836082223445620077332829778703902891829889545092259993197707900352116193028065833169963065597795841641538298640987094477543649530540947198483282768026856636330455642370443086527794730133266025561350978339476009409589769522216364511027323283648442355515209499349249155620500908611907499319156710643133105234387016552734070398755228388298256781556762582016157751239904927010804786096970090992331051086900228700982257009521090373339388322792782656123025244379218865385489845048024157844125724016625325648430485025849369209612484653185869613096943981646806834233854307418103656147567046794233443147265762940817382375992215924306498907917983706923630866176911831373845668758190689493275643677010108060028401244966606750422879916455741084900980092202043388379160785770593627852095788622099700071421804209872243471767137575305803417635988531596621189161268522607542284350832897982579601227913362325058834453072053503350006361951800700991417186844912866748833123419009509779505892194881449314914582122663752262594626655518923376684056181834146368339859073420716519370709032011680215632418740318749413597229039354451630299518944226538246974897613399288940468317759703796392217464218803814847075200768513671260058088277796382465119135116846059347068909307380517096059679075026679978808514568211635809400453782135432808125368151756517376152146663531800188006109938614772596529660118401542977794611720924580326060292705541548893298091101057929649583643057631725374147857635183548571077627182213947317801450798786449636550028409262016203199828967031068893584719356354726798721144659650114317496105235609951855903582084466058407192028407737373273275529710811991599143401344598586490212672393628334023635496541739727133462872454457966488737271691074213708248155882438750266131482747411957097382342810326021706856241997709743249195858462647823173757970658829661132026199038557829265525855416895697186717460642242619060862720267403600064205694434578547972818182489300019090533936509552970494071392666709153235514090816888767249170577576331933850438425242308204181462941945532810913681147871435117634088089596570325201982325317296407471009533119146679426034570822256623136771870924105909335224458405970029738761831335580309993283963851007747312530894719172176302368179132798057262003052611452695676505334118831593777915931198292054310139992638811034569044872587339244924457077576065444646531686704123142751931738215461186321449738752804900617692309828870184262291198013802509988638326539122198365787401544603422398728004887391778838614575570284278008781032005806274372255554918349883173204998700706760081580807780039349682889567317054247643067312557976169649508497260523318073494572297665794698935896055118570422478817663263940301166072076008208240579926770781041988281164184464808029113385505239022870639328053430993167546676102089840628865068484213395197693524169609073952483174633102302837792015801489936814502876709507358439438355693119405596869223034065021224194439513242206906888460004144938791431595321143552846365787852268590660976512100296868021208997836173659702324920947992241231345297459551819873645843387907722785779020301612980015489177129558602889646969677547048136534036852951292566755589118474873253738738551134595309790664631054251133100101553143702803290139155335658299665838414532210068842890126818122619371801594862439907069404917552396937013585618160875678263981919526770525883047422710294661327512740833759145097016729584897094220146660277782644757102265598234135576935910934033438698495397200462961143976420463570365271034749543805469295468650624571053578629938163976813104673975688148679770925096426266643682846311593579392141310688510487184394572436371832418413572486372827111608992825237002702783462745753924672213078391402323291670525947022481887794841228795837184752491849458550208501757606766259155064189094097527382526517618817889284048993711826224880829262943512914705940810797276063673426815080107116862851163129645894056841750652588814555875657755939278244376157046399982736738651489227724905269540439891845012771524611073942134151077660142500578995128571219740541515946515788997024957976117593197291810248379306219616900611222411157336923426135604983913777159481530022976737996866736431617936839613294912535797045916345846855707141205291827417768792143084067160340621483872985930170179591627595230977705750542749047219503300487511488568439686046640195133769128379047551134129283372586221516697338789302597006974256630822199278642359382859486869535155250146103632250402779697222846556749151984339867323365659832264652616406828314298329442631342984668074798751826735569219082579794442506738443743005276946602192653349965370721283709367326876342160158195024760705392896060618019814424693458773046482236379577712786858527528803119173221934777344538571379509489495669993231269892875278986164634559109661161367570133760417395941448087384080547860817802411106067686453140086091088461133812118901717229287405079613063071987202864693496180364655421583035468545237466130123881923513523314838425641841820102072620504289841247954075002789619736492784557526476626503699299346114862429451304853344006999182043625698249295486541397159771435278085997204130867876118855234155981543966455037800427235788237405419819141006436012524102729334367137661001111605580918705165923848969204189611694110383602934172038065054142290318936570355511155719443081302950197193285263975105587446520782170657427092509321543719902933495226588083943162503381246650346698603614389162649296719353898482888358714035267915567465729202621812709874985887235158768234362024068628388569752986077719211239184974463387036239654960310980663925785514817594505925061650407127763959700025779612479031380359217104341308112384244629618182680956449990448969796502928472016271937211977501322432590419825919176418252077738949914486420023689180648188748114314869642010247925623972929115707948038301569464563032003579560562708790331777478242785184152792505667757027171190935421906764292957993819100878751831939074434231911219973896671372129627161296669662230981491117033459596426175969234666870793422436594924460681238855729233051143771383091757908944952707586878629437929082009799029353886811844109696232484187163334049610297914172201047769431966592208654587962984438274502417848100857708859836553530697168869695362233927240149875137602838566252748612612731280141782704802746606542466503985442341449419845623242068837666183870519036303864258812758335492451045285762479811612286082900147832377814452181735769364599028935941163716900668767586896862577707889812419784964078166762028751497270912225860416161963384505758055874017679038833421784712332545079810594683321262260693431944689856678885898479552400555042973381505402007705395547666860063681681132447512907687681238416286036466739531933851460199673281665662644449147228156885076812793094594314985125633905275681349051425172515066162813078030018542442867735409134782650828093993268453790911134809603008242130092464855077265578237324742415706438049768969451522820172835058336950422837542014426775050061381135347950910636374386798361971362483135545802041867548987507599776715865792939492437766103965206952194814082366023571752194605782918858687255128923253217008773810593552786225308209542433155019958170056996306333093583553485674431356666030564533137167783563912800477733908507704076004933772436693508789767418454046268119734446083487724696961672271472515785694080497682858904504660566507151765820469873794149245912083722450631942972269646874001796444375449715171469028011490472464844921404555237187004592287754068521339819707223178252009199686410844377577009041280714846074031843602035938970202883430742425408460751571584015663239995213011073363345484047504330864407238225296344891719496189952665570580726994621818197701397277321184026500606223110167361313031759633097533115573783121884956559543856615871116228565624676134999688438205413357940974639447176551310694550330598509461317176080943745240473644341724742422853108338769609505044467791314263465180059769748300879919216838886565023844407907426701506409193229456021666785332821211436125280858241978538423978397967101377512070799861755208533034779511837754001724036978138390395635518411801984097803485589617792243909061681933270256930272210221227528278625363769728830183891879851280855718345431390805277912159874382289179298964262991306058063089087244635815504824926016097781210406542906499062733012695824855131294488362646819004694258176210461323460018159935573535855160903149563543937591553678717486692958703293418300095430934752606524455442780998898803205462918754249896819645906987383705674024514899757776904036436841176705184157748027919350314767205417460129895709521858279138103861959208441611766182662839127329881961462430367852714705829285720707539431905264316659524667179442613746972640067374294667635840415882880938095894592120999323863743057146938940201555609596781144655675429801794777174554275790485814502300116843605656632512903701148416037024970431168172492843237116136391335103763965311484701758126540526951303002638486415606796468589861554007481600585594695352112521621508532375927743425805135064842400405615489296347749627470216134912349033488138059446030641392796127117226075103789033974162895849813381818079062823833168002242661334233224463629541941915802244110654721480856759589755494761138073049516858876483689696478996807764174969289876782639071426940667944077054233200468075580207141308903300159290792752046094800141384142355869499040098212373596503050330222335518113067494946708504032432492464634239870065055069184629842567469178750564804767653983115880832835254819776220573526003016787171168933535329475679837056798595126966399092355336057650882390106998346795161464665650065589871735851032328554502853676987499304372702501919156681319012283081375492521698428553689205367088911024390414535294127306855139621437714533693601086830383964950473739669037907525461378841974313361025672321507851567956221964165572780350575994418888795847046935961904396475451567338810984515591575266157159384607184500698540568062437747030503727011426835007863549782001541732290206892849875767343895615670798363854195779408993767443223197816604441434124388554764253104123645142839157188472903316225294719897316866046069235504360886533076578669634828534497305451786972189532125045200272149277025523470618733648785398943302226876759688094972567189617895491569153407342388047522996525463120249814679504487041355417616401459710417061286068499360494463674226047382134483389759786474461168323589622322346532186704423209385953256969751746925545746509283692088227427746680595875151464074372963146545722850149148421573101100711545510397811254208839292571720175232535224796152223229495281380245557053621491909526321722890280550954512103952307108091960979237857347097598633589087771498287800535243614973154998799176132960666359143948280737740378617690489136251382277607159834737509669995726026805086169462403368646297521324023294287997940903446345588427103653768853994815427531320532112232818061041617363246292909909810665907683798319547476410767286759141515194517299071951340643799822272923383491141310075043885540811039799699164076166745034691466817259671165200396143279235319321502053717771153164019151844979642100390768603746754859070510991953967409729590490016227204565827603194151939569626718238998587292535680403530611246832912389812305967094472839518978725902249090620910747107848025377492133500924199247594793042488358041298967825082367723410705427234180919246874464928113181176674404722806498342203503016721980968281683206120485903391628884412739607932609855417225325223596472244608925457307150856212662194103030690076539875643300235208687859580587059134322988627867443802395858196796375845829748099072567908416421279660647020371647120900199144719275190163208868094822742580208455919212182413010838292688239588575806050568891250076870954091509345663907139360472794644890819583552422414343038973202441377588065061323187919600538516577381937577253933198126773518749066995444195275733470383509366935901340536662486926558688764445085311310211875759161124381654922099556101337071339647952041984138845759559404566318044822015161010693345345996017472871242645034990845714817141984798845985265976535017339785591260828247931000577436143094643458728143213104183978827876477175548233843555782127437523437560314100906568837102210991568443988851317952202883016493828222494807590388456526772866801177937170075513536796525163437974052701602798739209327435918937720730922802794480361494325786828798742332217014517730988844315964906405316493279560566207011496608881697204866306772665747196385780918002148056291380309181325904281822972382711575829919982730640648046004347579759973541157720706929736183297388890625404571550965675399569555181556205261492331772297496945357333900633627123774192006222031455172948008066184963824539819987463712422444292166884945695164464736295665828522968790521313521663863699325954020881063605349204097932443048256611905101200224617759057131382790096281531895113078093106976787284758312337679747963185937107517225038276686930830723052675831035583805399220608944211007124566696643032397818227314088631260967741079214202510113934288869183761717328593852697628846700259680793518234973610301829824021492324263050368855114337128721948818967616399109220693330571649860574224169967082114125013638067854695177144064174892891413979640592023441019241390200958993469285878318499223591480823727345590218071474964558408566486011271779324731553868347726122506440193246166975003612971250362897457339245104204143908254334597642161067100920201631792418263378205798373911226985770368736287310251907695990203290285682181082254675862096985688161972589896842727115595910577725492980847475165226117086101983700143677413445119121277681605892075487771910239256721483013461390193803630134598385350824928233214065624588672213780879334872170237437939178946128686205051727503817253432586777643349522047914383145100403691726510110133656504555933599230607181055748986932454798141997703085115529619063547512094676148000118003530581714625661269395213712812883734611882941404348244377542023207280264968145671635107603918426844907472879296958093848480874509566055595580441255274970987284601886246458739924715811550294683152318802769020552100832784352794088979931383761732158467973647536480100305651140870743492761493104324043829454652745394156096008024580924650089456960373696087696382112038065994696302363326134926257470767576553116499082031635562718701779029780208124193669630086689014209515397823910712129577987147801072348959978112777537172780792637988662601971427841948138277721817485494737234663390916492146785691511563061705541776183082893687391364373058223373017210214936988718287105001992031180303642210039778248650867546815140133370384469005064941796016358881918656457531921904896644570599645603574789628891934123868111067770781928419806759581650461845147286675021033589565307585052439407922421942507851873625642303948371701043219812720316456185993932322055302574556867547199975160875576457073879192073500352651128054906351004401460467079709702667433214685203759736740003202738406187090748365966963172154150612073904898863262943048237705881940420794729909161867037093558377170273636927711550072903926242406268383928494238035572341900523124440188917026230274407378429301236579052461187429862270985374492651895628314758683898765015340144126775342608166026800287436129617982308143759113706865862590878659316535873754052873865995942815746091191730115645406093077099526420063107970692831745220430214969151800657666990116060499624335963132475844072781927576054303256633614734635667648093108139853417079367328396539061115720311200383020557170524647518050493289988302755217773736644459989250163330829667236436927509119116498188089478146440406319696586965526990972183563614782338338795069972288599281711097492915866335758876270159862969213657510051041462589658108046527141908538021667548084887773810448968862678437819783945177061251186290647128574716713317040282147844674259567109134705457276470468467834116754719647986488979432388112454896229970426122606486563167226081757142801807324311901640104589164390658642295798535397117061052473650200713462640909988315887181295275116954599917712276773053785023600545688400950198114285153370299555534515292468712486847995062117665956147792201838429974798083769659328033087607181813591459802934422593224730931578360751094259876303427049971160497649283082421739004604177579219177452611066205529486958476836903658805154955624868331136305042656147182786892923540631287732373259078611365809612658025409255665689588776060489255935413445761380955461419291255095549919652877888102837949254184242211951773779713650026752965854380149075762790256152740121585692611562459566052289741757210044270646656926656049835757968340466603576037600489686925701526099635346301801812284778734684024514546010169448929697000179733622680962667865428910826609002204965585542475204102135108824632910348546109018699721873129593064336637238678418994716330728752118060788527554453623460769604418972993556380048477862449236286940240799546399873236755135205356160385812352826932067437418894804678488754010237426853287316895255465558938306769656349628067487361890520313333666736939032301592810874704399090167735845244737148154440264987391004500127832572729131527847157489429962857747844260650367926940761450705797624160736461012031137079517333556143505915830524937610777934170800918319152510535231129555819356663022662316837770315589794128892800324739616583369512093800961603274050012069286672069669903441156978382432181688788604583630055621546601018041182156513959408255402368656789508600459564103465853709604380590770985686280112372793191868069293781634746586070189647032632850838441260353399373679725672470947160354281394051338182703299226127420240690334091302014112532229235191173030375226100634189591229124072335931563135451038767863232011676421725317852417270787190598110968766329437873352958551172065656969729385767180325525608609177573558079530934606785651337452671211768404300523576273357005964028235012345613833503936952420608981550282585266425286995877877407830222851200614876502137118971714196993345189224545061974009159110682601301741282090502988365382946629962662012252254241025927444556205415605274083582416190762960006990314511359041852389068344772339721208161244038278207808814438180038635779421362234528442041203578986809132477152484772737669964514576597796306618748519884773923153142481018299771830203649979781082544009450273106080082927993758108628481871830433428578199670960196905268066303536179594215916924145702548866492470494645994225599861220516030437989755683762153309462411873167533355058394060752848450821216936337974527459592847494543371006765047528198790859475169449275911630659082771662310213497153459273657071749668360290970009954205103725293809813471645193554838204000749852233708839466364438034431345188195632109190167965035627894605060175022942062623862388967038451248920810782505275067561148063741713820090181921461876307209114720362202729959950409393607418950450394110812024885133093236625236163384030266182732935893187059626822229838980812399773846889888620206422311576668127268410070252431100543161919416359696059420466063193979071048575297791079717956649803468740630530589948818245483196117075785278291547687253550669124916106991134797640593335358000661448995126151135949115722621883873304947316884074341701855076819796745532531603852612606777148611748576842985851924510976758398458426273096136440740200824884823514731495798271410306442102694949291792517375690294027828925877143017923861420616412199834551569342248044996927816045056720063977656369035853043125614469790085996185777942293261835472330627414847658540603785998260622735675223436224222955578673523268022265437582721244484913939642743436145070579717896340280176664837843020015193523854715013893037607032890715833810645948952468743486240993840144056709226934239101241356899540324422799413371809205685008677158560418043037882387926909906852393399951831373247546260684691857895740149810246376958432634081403265310649051161228639734987711678485235391096107891294875487193042068862090431553864171870069774919903663714713025199532513244632804669990487682231072090577292805747607299327051611181087520786262299901578275055950441530712021956371384511522326136003978335482526465270182570234203842779651611697490825173217869855172282424080618259949103782213841989024314028219807383978267132375617782430740677398501267354866148005300706972920523853131746360286727132494156062988855518955747764921957732157626845127476707719512731164218649131651507883751439996843243312738265197112346327394886650773829430104422998717044322966288834879108201875896344610338285655504570312720519270835292924772078480611040918378027833077100547724998945878783413756659213437827889140625344180161297621423491941237122383551239663474123254387528514248584241138412450834120516833318552134783541353362052043828601735643815543035973203304857886378870758502442398424408497196579883231675298735752918882626724679644514451481366146003875330624555211381634832738460414482089451745020821712443722164796685925700651671440080998614677927710132057498982581648311311038158093184684529517113831198676545250970747629109416583602586062309598902073083373406547778117293397523145710510544504868476479775853085071893384854567286281361168963654935385233181841576575358403390577454068673595872603101079508948154851446785569704640037241286408821996240969632132697498968099133124892219315961761125817052077103975916512245430260439239274362193755474304369421252429968026809604702216258680458972070333927456569786254329928957586279477743145151614420923146058014608110166984121391781392627096612620471494135454327659958923571742320189797149025010303972220351827570236911550856987419973296758842988160262783103708451792340379769817315182459247846713163959492354413575149103702037897186565299755309927797786431908883357542402932211377645151975493113400835195097503956512274828647244585638558508730323976874011492765256746996217292504291111930289070864820110713130265564234471215235835841796739320385293181972258457196210542798522001271963826278218153473685363992753903608238562759243484912309120614459201916913252186519414191330052187639097338679304424066455961069897631993732700661161421534413577482557751803156812314673831671723228214377931288859290011080314528871340492141623390790284294662362044341214856895931265071820925294248032537078374019033368771504938302585879853327473921915365125886653181004654374098771417314108794824394848988156869538950627381647473174695501539174090434280654424656793574441136868695136441460854389739446908079100253944760404675939972151602648512817147480202088692865654915013776387110604742589237382972083017303117132415220311187567638600827669976390249584363170277088783235842772930684522647614116892805166479327838557705565449241137852253216921365538846676682574796978303765395423440347971692183632857053495891577771070124507491679175201736129436347256649088991177900564533252893627923124535318246305897437330828253594652914020331453795237372224576303184514206980798421793086605832034478563073858041129512724151583785975447765941677200664816252265471127101339944739338146398131929371068870019393747779116029592822349902225498130822111841939779766869094282737688286497530699407567338233534935079420533404012389663714269432312107713583610177604674433720903065852901004385344443130263271592144693114803887053796264597535687064322458936603301365455517215823678780065386658313451233437143072048352575849761426443857116852050057274097161080461128104069507544381170852764122886845719773188488994833372508189931329224157757666528483031734154037400788893017781482460377494469133828199902060501636861917453943029871280439851474547080236207109807018666726688716067461131194968073796209745020527028135444158680642329654699664201847920002026452990294344678383842267544352077789815439751673319657940340361724585892116937706524479310101416773707839915633751452595363460227305523404411337140735405066806797186854246613225835638235347762423057862657730250467431014235962511126251159518402820968529783160638891981778346845895715560741809454586412793969617655992322885210472830287022614244846423118262835462444752610543891966448512187788157016742484136027376480419080013615259338763704725688360990056962968248075867871908778972274736523112823271604668033546589465850306212590701296027644376762301124637364507950829448347034232835919856127956718565718808045887266104165945757370513286096067877947429175112255927199997624328526420578191711093055713160049275893108758571993130697162321065488317291098750979685087279135968412032084659632483631441638513063553431838271806417156811458652210750627913966586788665327065709037284022015649883413148602964671505558968362175147416642507255110068879457403397499011365823796762069918277474541131136053807442342865543001436704510604708155666434744787475264243078005167963483226787884908073648765724001982891542705225360868759208949732300280001030563756020058235370240965643710973100287822289733482063487044751405166249792822889177889541936998739065898775583454690945144606448925542143031912609346224222993365995101354954124971926071174947801588782895680134170409771169048514079275526007740547478835550928599983604115934948313465422101023148818621947650803726564707901702614186052902775536067721498026260196438510544713382795060297658340208776890141533475877132255825541528114319562156494801539138729626983899945730166025475509156227257992433654594464253623127545828672560009310380707693380893658103084704315886697944658832705518823239394128556939437745752975973546288680484227341662301713535998416775541501311534232746763072791143247510544514280722453729345846246293996814131870628193444955608501243914975855130630690797357160913195115083262638532165390991422864311817061895059313847279500715235801548164423613380712035338977835235813117682619660365849762865155519398244780868552576308703140445632834486728892813181200863629588257501596196224047328702664092600053200986138395161198986113051832218166050402219866601463843831707456197797785073601910786090985363894684953884090487182364714817325144355995786134471365566762225553502848759732125916526828973139778117053296377675593847993036893674611981617369582989911294569386849377422881302134632989524610400099807500672822742048027810171875215470146033159156272137305789024494884888337346959267873967653109931514083877080711211213309421660159665067985018721541277547923934073008491797250683838885288342349744023131370718714978558240895889588223367296666433483890539756133094366739131169088405735429322964440131385329279337793038428889109169876204040036439926445531387843700055265322561718862250543350060601080257166879094711816382316788887916679759418164658820486413090718922658611454416967322240406012389521917472194521967130961673206343833446951959387884774101525701725071993615330271993010116673792921742577777660679248941520365559006602710735118634761112999332504757983860455183239748387030064014428819645518866420606564989975561097522230309505769560396177359416504936761539599379640085010593963827057967634865876783808383794753775549600898337569581667069913751532548104365650289727792149045066600402644430129530282776869444218378330606945997241540657019366550628328183673426725850875946055015710171465232905012920708032195445185414079329876678500590855812667790174780152130828305205459430025880777211372528150477233861851330439876292086949505730022873694496275152673862840897264362209208202941313038007946145634037903498782767164684292552577523276717131152713240133549422862475875212821086945016871436380725162792327708299819751257358731768889794220998933400341667745396571109192194857585738330202588857922514169119859618128199352629664663694410278390970890261636375791483329019348728606842466012196251033061070561707648587658557221208348076297451482179287847703266571514326464905863540213880421538445568571071096677906911619486484941098959455817558012843453343160215324198743820692516037795734459814021122593035650581995729757090942912812641643642233130082914629869935170003606032228279967423638082398259042666465142652912487287463778554566543944920842092610467517797022392146024109168879589484989014570164239965124994846986897276812148892600903378269929000632139176782974712215132891978561754950967890617361258198703674163615494185324860999142871291924776022765051906638358107373175120750219663550638002199571101509378094331164252944871664106215512673671637200542992539223016637254188630773678199708300331689306303267754429838255784727038875993717285889124621436642338108531599572492727313340824137868076220567769460186115515131451717337731610850255427656697769452905114853490950851829724928122004989530076105338581294360601828511603643801089477393802353859327819791303366104226538109537150678063409892802298574885037202834424446896201907333449230084939541832270579941826284601811725524733806654560251326524536877690074937808176716802095128055761866303414987620766518152010553821544278548127780755220005469500767490223828196220825800742690839128979807022235828479394405579510410955498022934080722234671704279921966152165418606418305918574023714151411174528587919064363395704379102072263304671697971842913466303985706692382422725104277011605643303682966621662191863490772513956174958262213852518638503508327940755906407531349232957323975723868139126487043344233653029459915934202720632039920837436958862500195764632930846330274058929394536715868808483650730184998614091278321601360489486526346132493785548485306088327726889258965298108595107696488209312873572713055836505840366517672499433128141346728593837865068092126410015928134648319057027225313145566983495309383533156112558265033754528303865349563633244230290946086902950829952563235669659832537157403519396356266065003905815824944460771853826423310934259276038308357781924571470541252380327314315371494721257114907458161604031705312569900452834417132094219504922935784426051044988585720789725745522827751693604031912162766335980290870542833144267957082139419455016502940409158929874806786329629935047593243061680775039989430581976015645696856695130701506675808148429970718149835090084095171672579367255691124865984660095431543068990897051911233425929832892936557521854536357953899926869790816992813245465175501249899411164160636241544110505284267259144564010839036804442946784714836022982892817150397638634654158277944408133173639465289752500977726208247687778865250522653401441386369101190063149022231373672209716182881232534809464926698506542247751823048532621697246279665333238342851544731578949918301613712680240834888443626096001516446042894956093639637650698716684960662120374179329498056803532927317849481235998503803308598290433039975864142070297430364260636112602517647589886614919701523954843173072898978851043121047394515648795979763221034189074399984106097547675712110080044857369364123165574540836945854850153874157491415392204834283846077661995374977727620773814290747968189626794449868685379721408421047082982096051963031210541492948320782517927469332624761746187159247765508512700745742774271617589181088281863204566614596654385452439333930290550898546293153953990358762282613180872749218291270490209031037698933212151023602868506053029166856715437642197349474004463556409717667425406622556706017821299313939448024600098118241832571612456091522858301083063904253999615625040502209535714752128864483412274366950497357227785252696916705426566742892317790225591582302666367192131824600142541656809280353999838070361425943894394366912948504760773315414930173586010185219708452891817375621674709234337579180542305520161037958217172637979543472311450165400121938522471754546577242808766618366311135157213023298171535060139986953197240655826823008054794415810281324237090218137535460803638815541471577498409022899119820929269125459510508341125220935703683003792460506713412510781921939730512490617900890355680209792250121282337369115959537107797702627113688166716136496783596495599432153651672440580616840807650876698623174619666630504999215536896137354155537318054331475242329093224736098427082319025984422857245308598499373235279409556052255461188865479372085720386744193704119149353735475845212834111259987708126354292908959860577365619850321266224725969083746955038087980506959539443429697911621513923510793256925606282530674956110273008575145853233420278307328571573231061536134065012510623884756144205105509766001269782062243660949581764182769349097630199374344354764287708218429450929555711036386059377051287483671592134776473218075371285307941818265086272064455322863501617832577355273934922271660879958908464523773946798784291859539576521516450072779594057282670229889551086061599556501998060174253418045371766677869448212588436970863992439298020848933797327914257611057497793281928564499195312304097242054275417234340362366677313386920655190165985378057563731613383184626107741867847572251470309460357550264975609894931944274376397532730334718838610708534620256759079321901999828350282800814799061615969093604160020665336909256683964428719505556039965176252451388378316201870314051590438093543839465920017168068199697084479152993989960334428940882083048670490299039153499866926901367839941229845569734223937467260258449087841120694623889267892240073144264110316387333886316419315358817310613968404748626108868257598435714331801362531968892774430915988622560692107567778739125569698655326755301798966209552014410407135750705830490033005687311739291101158907517451027967135202691390536088468491225888308244926194954584539099552094831001473590100713406915388902257339211701479793435827810101835819547261375474207934251892622501514473614220299175318819484002454817589138078491175024357813770753995652526153541451416717385846600447208839073612614245865263706253540194043086582972515836331786635294362901012567555336969407360764722099603791282460581182184277930159014553518293766937098177016567927321967408959282142596783866763908092209806882615544202495981934351536137849916179999455670331525282816361457645378931275077075986458550893942978664110100819345890914716734826442638511020495508620944331068432801732022296043235471146599699017967883987459531285371994172162830909293708954547502249279599717160297986782747856839746145969335516707796893251512650144614762650106688972813551100281749959683853204627451166719253798029199218747051209480196263662361943110892203722802034166412547943514191602596386073652432040268789922264650503639847372869859532266982783763835091675709947864973757846365164464407257834457468650385673398210944443239958761739374745758847404919158132101227375241624059049455985755927537517861078151869614399902124126177653626822485034325648199684811092899294398353047418640294726251432896109242987709522300398480936896623766147452463470033149412250922733221962192639586859742269483520203729822950523052507334082068751240979839598791432460734180971822353717711484725222379356454607705895564411253040663162163669555075379349208692708991672296954760513193582803828240657382432022323009672758530918788224843981070768123747068758444394626615991464093321467352442717350673645922888284021424862405630447337614864657178430164839273091476814047510435270549467624785313317340467814466239438371001826339169421258394227245041707158901335246052540581327640993240465628404875575186618361911154605658674105004842557074280902703609556255712009242802035385266272823798097189334296461963468013921358186914713547890953511461937654376140656487275039253511652294503889980420281514016757778458760589083817197762766271693371624899561215286115443065254798276965704577504312009955843772929161018849342019548002155565381552613175377320650563109936490967367958211285714719089580960129171793728186405003938851491921571245358308013885355751258891499932590253277179744816989678623868099427349034446545735926966099100347267128592653169474725535946137075552497417013023464788884772169866187128119414788902212656738015210567975919527864106132384584789551371685267302021838087683914053051629596792857283712271084248751647851547692448422721894198791729313422518967779940305793578231029545610025483662374836682506968078030724576979358359881625525053413138298206410872034633269735925305997371533246796442885977965437194559926686649260640201657511626287838399111552693940333538293200159724335503653680344830521477059834717211891348372737567673287239676329157121907191653884924257305317454347996680743771764042575257723125029502315271238014979372252961073403796346138164727784035270644162850065101255572447827157063748911465440934789082000559697075831347645474442836022462726634835325705183630739112531616081638252961371266853569123529396749849951927385933112966692339436663420289604740623238602318752866512997707188387626359124974019637214269101706815576005141325654263221749144491279135034610274462164571604055103659176646186458957675853429630231718920980879303959226234725429807223819763426830463826525633629986513690149010775847134468424591157324420149497733290316999725794604195464227523362943327287924353168653100977570082847804792184854747095514413238877065112838456615841106381433549796060487699758415985436323858681300066312672867621626206985450171251953229947345302448499736070605429444981909601798141021152510878223363845670919700643745706642836422069578874133447970795824170925883230479815919405379194823903587517473702580801098715528118443807602922082193573408800223252069076199471587222550259106868178279054572271058147322495266561995162228327437021254124527625703146720376817229537661918087082935778988706120929039807525939346765504896836518306267268052541670838771053493164680081808883201952797991580779432063756452111562806560410416607060911382653005683130683783093047273060483154100955043195895538287492883025244127011096377289209068892341277359947700017457099554051802964247741339414737542559337569264967340688777106877694025848580808694602272783433030961669801306087538965890260363452083469634470135274801403995663838308589289348203650661925427459088218397913808712731827626296786225736938830375038012775557953370329236365355505737557261522041224646890977977997637755066839830021760272521871460844680537576197581841287967773296028940436081354928936959389239513539780320975841000322390452227927641845736089953034569328122691968515950527252964828860689749277795228230928586934860237251006531130240135325383660094068988057579318615843017428441550776334545096276983913920319703445878024876635901038644207893443734128673911561603170595921107932416465861777375315813160355607325754088985472620137447248896713961166927119075975397827632899240542839644846480130125036571832756209171179164965491557163960328834357987431620629669667317792647084305511485338157359489557791796099546456742629673466244252943555074315902411584402769904901357390540155096064699373417345277614830874948040811380056499190578952489565825662290051038679617645758351341068895677365677764329792858532614054602087328294976425301368360737286466401618772245614029175302537867043728893576156836158931382736309680646974005478892623002328255120447757103914198503487227345023515641939388341248686314231084205543827822681712004997195948744999809394025876731366933884244198251224871060618105710556207712143683491543753621912211844456231337233368245730113696177437292296401448679594761953924535231853438124986804520378447988312228029474114373248344209510264032677753939118905681793522913432511810192031855612172059882234729447548919264148838754231195927661970403835306064795780654586120852195920193499110751225426434627462844668256015053245647948937187304394867408932571807148247761876957638446237336912409778745060291415754809556659036481580197728886062941351743425904648787560274262524382834439053006255910046361296576799061040746590641781657231875020097419662290040127131639098792152320259470891569598185812928990534469036923229491918685755373438124347670809613293368710065934595749872607449979214861079844377921937580365842264543844070961792012640934079555873405984959891423210958897240865568263093911927256549354322248828813486073190302093712771382308075360648541251790315458378907460574474573396000291337874934980429727163817053821050857426110834751499783862582751341298886783502769273831540930743650981360089206085004350508278920375841954180290810014197400629277629631534607782783540046700010660753157508028552192912115910453097792266929111786827060314395169564518367397535033452491289008685812649090474013926371024292644019556133607099264158966470865704517445075419076249803515204683207046660014525422155768047561165290109198358691958483921206697847340028056324902218608753659153458749318946345395905521293420460446558715516538632954268772216337927521294940928480208646446818853486990834622101731079611662352256450633694499188296048289863453637723993163381205965556217221445501220387305615540453557746093360847403267393159383116960752407964099179638477234616050138026676409631515484810135917681073423876021352016094426412524175066813889775875496808740484489915862986173455361364303855230756086761464102462837067410005426592300518734559532716314984113226464171826458294594762099399783007893095104928898213237351340595856009058823781370449996763723451062255663783070919830218655141003784283351564426400067600198101750772702367650045389541551491627024221062274675595877289385562672968407019939909205211332679997277246084186218966915801087989660899712445912953496986218677133842922010104194605724454207644115125861565915552672599343132598916391404680165325216855761214941769516320672932541409042393610457038811150058071367840792055758486777232547616365967636840294183926939760606233646483274280191319887817422392307145024496968539661430471347186664017052663101455681278161180902220583558048517447820003054395214720574484451216805154060828209186396716207382011582961726653352119151973642250772981673126581121934624965026149869011652858564281240015055685250664887672884290861194336686022763800689535750503024938794232095391940741199486922471602911233259907876636704253709277826095702787726855755778050490836817160508750997084265644460558886451483702832273865554558140744960742446598881439319772000968629599120963989577025565254237407352126185845817388502953711177531567494242224417838791118262342247911699392982995972206680985619170033747753763629643675676502108471811749626729343622658120893776471516753555878395485429136666830768099617062603759934854470286249543878021481283061056488686873491914580967386583110434352947055881733596372591195851008675293286622159718942440127662532543569443252701292923751102026837276129486212832431554943720389592529394792407187671166910750401042567453834758627398226691684367603669791327470313683167985600079631320137409667508984446016343254462011189000816423508440122289038883637938946715245554492052806590388888188337044304285404758532203477717928540727414151711257390163524313118998419818733306284717661445655405872032733147497515169210674573219843796184168772595643039281461824305293213261482900364641402212908076506749480926093207285636700781767611610015575808507408133794711615169551391514516839881491539962343636491473112891742209195828766470197226052839639163564856915937393458088100461509524804973428966216417802255832348087894039303789946672484510346980060524495856232130539469626443582474285724539424926103793973741839449312329289903008382222092048089704237855478253512908932179478653512576482623292668695611019452503078670900570712429526050819880613457139981602541726468414611891878336390071833488590287768935361536139187473023781443950006530886193903645267918202625938842151514646895814885204281925832271402392298496023731355362548200965800551005464056612634660774164494813087176009837663227727048626281636855843587005665303131981130630594014626215200763196615018434003726899641860061580435189015302424674332763251514752186987297056348996829082118813591258241726292873471493295000946845871929664061238291267235481330582465633384154349109275447959106448163799526276499275699067104343246477946512915950887727782875797234966643012103728950586679777397760982424644680901442531080335446191983519551287261614190221518478083177134588092774862525969105094266883482166222192600591257536952677568932063354356769337949541886224224782357091454119592026394112399732451595593984119920746439236827063564449487498424757338756676171717125658136143321991676314065502513617233936458372559339249320534246042810109333403360016290464918180771006986402280896998994941938738182200014549810524173475693253110404914112774947197175992106186087993743768420999802090635489902323647304752263724178944389278865771323350930223901221347015185909928632062241254656884629622411809345521740800262352269328824164646619930220862643779480746421718493565100638781007830992963456964819306719063708432333853562602659647259692785402798991151712464589271517660694013419073252871486301958882188964714278871893356168646610610125392059071394396516454884375178488085509463550444439751396696964090231331181365247288941354098821114677069474095492074389447020614188452144443907714871712308353227624851157871485446303142171307301647983502057070751149278411306979303256479809849331642412712105594921625628405153195492722156346776593224934695691204332819994824896686776769563823997712447577489830117809825342001769644214000826812722647866130456694261934095428349197453255933465203876635042188920088180353603907596218327749420177339378897822988803067845785283666600017197886767141409375918242108184201064803229052826132580005057383684134362365713515086386286553760638097245679000389117385429101938971305533144771428381079241152036872456000544016222791982932736781056247990604942350064644320002252123314473648539760811806861458763624656939291878631375999187578275926065642441824560118187029969374762046053454313086105876449388687444648661938360179957812613769342879596431612614918859380790571757571251811875161003774629774169604827540843523458422570502511636777730610557453306372211348593914701509447758401149355432748334846361093701034080341333841297146956980298889504858465365369999110299138475633814788667347225365185100938289318773651332138364370768452229911254104319802954763882514095479709581819112763609069667418159368877522997393482765479997772098530278555126965607608989882431530154058723882273537016673037347143797688525373378153475370322987360383321473308909642565413229133794846161944053815828137961845426556547437221141490300351417259736864484456020488200572687636389015592646879436903073131524301186734519374733037141369884885905954324495302881029561794356016495432798414849231990943523415755327046252693377697612604800342363395256930757504875184403931186323986285580952756153365424775990298315819897220721091685430765305896881970968597018275046816153676695536802132496440605181028160564842569864743657946529223043109042087803897100948846999153447177091955996274297080274556326826106996117547509806519219907703806480991663909202199412295386042150756338006175104639772364438896282741769019305493163149992337237476831655868960975582740683934921894913640633356212353114214619951282913009389042112827812761947744933621890872843741418822102412562999140496195441548097174542931853646720405246989955496130448416470154806360651265806744116751584323263104972404380040480435174703548435967183388205405205772800314594229038997514567075428771286583951330855760156766032525135742889293121210860993340842305251452082540352677393421103353487868392392286894480483874643781032252439309922696464606793980473416706998913038819616657703713093797148186157269907357174732017089983511385513773646595374677861472656132290366560371656988963393359346939330610293472507243256809720140261009386397282231838703708129724682898660212479225988629616420065609973327993151495636956081261537988825372861867295785152472296082162866356738949783494176438196472880956308724108935976215209364033493930307212389122931345018504506810648242547096183170593029191976520091724973178334088352257116151688700595095539566831871076902401813966754897498193528395158365095468679204956908499611547171007005936158476074339841567870615092803506991585088714178584998770625383188812899394340863465632124284555246786003943207937724101218310124906547113783390562116895728714834788802372576904809269229766373318730234537581132874234409427956027037245376490315451541132467373987475043813923562978472708304100821016205180231769708243584742780246322478778762614377241716448866052006951755767626462027908295723831657448754269821168667623234515568268605356861558374627160942008920222149462198384786928924416130038395503612817359512174744932880224001338611981147746391867783503742632222794910213998322070028090585297033021904468933504836597168734574139440931520088197395363155150105677081536707357534688235413940021362118756075365124574377214493725849490522563557103322722259949120542254437413083327507921429618585937879890450993487818771656109911553580138584734425439332953893054084764139600064571561319758848032704331825561093838617733520279425769891408974325926675979754469352838759507114687040778585682540419680585466590084650826877824594589121979814737561639118348160710027484057776095744731388532139445238921183578670338138370432129775608571514641052870085197947229712871314873924461558778892956174847375026287154303332633042426539675039386198384317887104402961366482107011165562240038234358331171694736435101743245488508144852495196719748053485891574743385223140645201365049844792965712864919542054360488456553298803527743986654975337588203836110860109859711656634644784543209470046854248813491169307653730401702119294228826603393718226310345311255999640455703884972269124571259530745900331267623027412499239553350195469293283776738906664228488962334311224360978934653375644217640347144229507229686623945129295423433101327373246155642577251918292126651536628428323785114442467804799669156388678917721785300619902867482704709728989740424495249310938840815150349475685390113457765702308802367356655374155377510288418977745006912456249644500297050008180710613578126524416162150172471754921631604702881089890524133000035576502666970835035293799929265877609360709280775397249187844938744016618512089589500210959221199854023625267259317429980092920079402946123756826125546523066603175685666719729951013172816815491600033215979908443508024885867720727546368020524567541604246246915956614035624047506589253700796681167095988443622772539266674034600178387188443365480801702585797666505826213783509581033462492904731082123128094528793954789246296902038614840998188974325157268763804211034620966751678989236505395191905582567149731053718181930653530255122817531187176058218801540875897728681231298260917705539470977705688148438261970659138852644712591779047185684458323049796976326923096094845213073521862313892690939318144738105434811024716881079847866610376197454144028004667013668512225777521926811604978109452845320967856239898573477655159192140916110389908602285241017254902821929690559008213610243877360553430629254295002465226158460585988832960337945079312836205134847992911434900459146445088322045891186908809405439326817658980357012110925308884788138604025663780450205131871807125500658046154542355543938879504239941768149246432915143056000471465733700291415393883645817593030042096643908438097875774323752889969688549239359430978925033420130590961852372101484277532095425758268906662590569609144046629743649547708496022330696429949274360297774518827507076107387007977664139379594727988381857533100446326745931020213361052515199828589370982769361021555235302952379231124168538521568526548021017050656779096201856419200339336283231544458852434464855964177773256571190404363646953741732852454563063629261356960852931675644935407305168796384928126174967845514474072123866486486016912741708476112968745424736906225879454876672151517195195133814072237735058089637699975715555447051555130872982122884656681838754336476333055067662794871738331856257314909315404976410027108573939356579464058916574407444407379930099879414176708692626392096058872044231790405906252146104477175139992194870243956356979441820763490782048794976550637471744739318761646942746640785980295635765787322566618741588230971690228200473021125548913284533851509484642799866200814763309718762203840195400892067924466141243506419808418585497533825677834172800443545790126139563869707666574001190127328146690605337949723846869209583748297029226472996650055471918788674401816443648607208660382432964968227594428701073200038027030275209046688386778074041631297970978220630082101850158520396821406955137446079671227331044094298184813270318593161894240056840574215088817374085150011512304043386301968205186835184498440679782329615286959194037179803852489074391710669610350905643871797750381847306674193963797768176728175263154513552572576824131502190473892035979866126664268908705588996042220477612580753087644830258055684602184628542610261947177941212657905174775993378968785264531890732484058440163767161581896107850716096815240630953149674741941141890381936057628557481578444599849687109106948664531348838952209861172744779958253846498426142616354619881695675950535183814649240887835278743453119439867625320515603902132138844352347107599261225037701904091516209945209593521579421764904311047926283389372208878413878669618501175711707841952039324460260246243557974033064227203792849860489423734765208956463780677719720592663494775137610630341815754725521528488021970372119651331325190208449833296817736231102639479291008851895331415650480045591402814463905453955463853376842440988896157770691810769266260929846234465938085913633235717213949405102787091195065066700140724466883822423677753658856589733761407336083749135897315018544136947547373518894463228214752426800995523210633119707009519796610614382960298911964164068235239448215891177254083660291281666232541725809961206435394409553092936040403557875994426751673792989343687797896822589793267065491513502250826128767571643324478852119104977361723067405493697180507299933409685492640793338016879189647325505769245451983649005111390674958964059991298845911403415185316811448870339668815573721739314387429482573723691034641236522694017590894792056808477372903171525267516923009352588992655333650546932454102741783167440361437443326543891151536981707758511974234319063282805706515588668491445844280860749277824241162481023140672074683162533805085965779082172081205146297596569199636942268958855181741369413455828712943983189328599336154601883287902529498691126803716993140326953417706526682134638903042322402207472822369166662128640746819811325833936245673407578703839709188180645521106818809983683128840687317415477480724056058743686565446415941019595515951322974036887898919464885956013132149325651548636011296028661507244449730956592586596536817993788733921567237502659622786801290891710334889006351341896436621470973416527909762371899097547155068625279277920674586661799164564076540764257171254084290277026762570147445044371322684071969219871931503746750829528185927251657807147131048837364885822928726713842400144234708982707525417014682708478082761131563157068972467011832738595897572484989287923908864885973562292451464255256963100150434846540938871569099002406500570782710662445473758951282917100167997767556006479076090325946376369224145220138429449809983048126285881483481289060255991316714733763585010512323968886507844434311479790970324179517965239391644559805777654049340683673764423714762917456322973353201216981737281348625677967450974979781412372352487137541081438335627721881742380832883430089263661181461487839041137207451523077726130960265037716495886735705572814192023241331059980515744111560301568661711567970917364793094247324340586302530418125376533599966543217965912278660745151579712370962466427188425190242583904930394018785992466679719686397741345250405367397774406139445554009703519467274526283952435692746239634785203114687465732222353820738180296529437097198872217087152388858542805426961730914445833456516479560697233225591777535852694570485257836109394301128507669920519396199045706731272206160774927591246268876217436646166476232741195230655613404789409062734522891312315149685471059708433762385220196448098209329317898623901243063777692603194557383005639390857904348503170961298861106908274254564885144594841771064238252472786952664875646558498985064972704073518409185825638585073625771906195349674785765976494955947496621977193920277981409117384895085262393730195369825303152854823373111522711095737579858948597615538499159670693146460747674892505107976264145792755364570131832177711633684828934817697951127009463689903587294858436589882531640308482131421785892560328606921432384466759675183290269813564895102888560835919827757791167211443291521610453057852982677372493318352809860934421267755485246258406638873277667988684591520484268591463906658784903267387096459269590729206424146767291254482852253020961056427621223921411305257548756741816108068390259277107056023982639929987980910003729274248119301921882526583065599366251040363157159109545620468536949264235336841313089908221616621040573876405017588199828740797621876296246175384035074995901530705832871597223984432689460544811687423307474662060714659265833520295633915326562346777811663449308773152288806285198478081233002640286775226475482826622655957896009172367777128414043761796944277790726729951490924651073361267783817931847051307488440946660406514125302035944578090390958810114924658288653316667222236852642563071926725856873800702661728925179442875481771649879924612685433833416178578869249972973534137278333778288065002719765879154524005784291569615741014985370006126153263293523331794764086697618603431358623601029904096057796351566020443784980779615584131315359367571829205076450723755830718452851319851901984586143654378252706368734979525921613545908942196300433356186763214496755704789141410123192571024242845268178719067763153072696450941059123115363226288778546955404575875021884418213375424730945991333665073262501702073944980301436582407026250317984945317664180506814373863427849366192685268637809186784635445668235229797749968780504517906305122458969047172773562247890598731128832045811421104234773593606423536700401512594524265114503366435211482343262071512874335840813644748481996489826662144892350947725969628380471980073770725560205992961843878393147839775630893724704676588946189379701532430789002853741143862146014818237217372076647637854478546010396903889363680112443322797996462739600822930951234479336655532452919151225314466801229047175635704885718437259461074705470890298317841364967448139630568531488561172549302728685668746463199988969606445935477415083381499272885257858442598894814577820043852707757540069885244012075128874022068952002490154083750631851030565793656596256552283413818799720594522312072920115679812534171032310267962415260319762023710383978038905388567458298121204685872178029151683092638165491753769117617217552897640895359996753323151332332052012998338384726256247651202421202297579494326214855354922575444804480070403494745868714892033533142410278250903108374623604695185463822318864675811436255584932074250091556079660210837807608809635553279772827178407575641081988153138240846909664365581983267167402842940352016500976869702247923436916307955041648309778443826990268265187109737807320298365624537895540337180169233239266635956810190438443369987582023302924969553327495082314380930546502779982393677404936566403325457471066320233203114799674105857715705560486745463248446639393932781871972756809722215658219341514769596477755162478651771528479896253766876864082499882449983611481160267202497333802702684962272024116480262769404057073420038339781881863573025542298793309351056781377490202668262715316927395080102674704206910417559972983163768898913886123575539444182835439598949763381767514456429172150636624129202325556546285034534615835153986622150205543830811029255874066011749985314419670093019617675774016551621533384694758998905469166538903040084066526714107774819507801646076695678423563242059908855572182047887562531009324090963257629793353282022879026620809867755955093274587281398014861277091073658643648228572698057492610478302761587264031518152844413012809253246469353595241322073179614335269426087268783812179126793588563088357577294871448559516270339305088704388434193178158235796090420435312865445954076680021300350781551156184701712596719397927999764929326509570163317334551088932276835235518644718998312058138377950624821603605453263288466219574208244169129172864580894769810563372972112461933729132741247751865013227779281875333633590440829567239125150631130041751759669434871159068940591170042825309432619083508879852886503645832841379765697123400820583140552556364017883466636136198436431085577371182872351917054311813379272144329351970762607182019459914595251829599280500379262905548308670459814800599599232952209290944031229825509133339814505278844847314642104652458162374633611951867797574456875558243355557716434942878325755917400564952386620391391888610142525280662539792755365113526501806237814076850926313240365761684374927577178113214780702661536817167713979400366050252117134860702124975864730434078263430803634425770767202396710939108634796877159049707956127929124370625166475735000902918859859303413017727635729485656719467985559477454987477104732281652324045607002916936016211820758136683631574460877627966704567310044239030052034052676221462172169888817334623335793062857472087179689220356411076344422777585233737365269160747249886316689983316333535884618495911901586438161322672593170381238593400415657918317094187275025706104434638721165732826324112354549605860539485411067390329576394992633551226909863816173943815566239986345063630718077141813588684031049176413466837955385132916863263996080734434723991886082850221469234648635858335463032892930141655262912402647079575028213143983880900670456505360969987376511886453767447839286590450845185683302578358316436808029248837417797289244943995843688699545790550974154072700507683276751196855650635655616339912822673513272445075791478124307926749170014079093861907655860416034280984738500392911488511396704651775921637524050882405947268992908308631080337609121503294908734361554064426186461885431718432900818759551821064012549962135131070806639281735572195095745968821959765723651526259287048106652044035259437588290681409824971461677111045732613961058638945205064325075444811850429596776431090177162688277358071014325841572780985289175501558562425451005474681064014959758363673080109032042794288497989227658386875272695813833792007800907286896019548074859979761626162048759824171459316413946112879090659386785880208408158710473242898839066195130843174995329279047422297458391706786865505694274126047185782252914774934781771636988336308583477476822532210986779409805528158286727099851479316811578000079431715247300180386770843523830866256950072119288624971836510425019353747920264843968674951511398510542699457956198766575198835774686519245838258679156148671166269882932431499257040947532215806731371131141364649067514248814389654093939894049920436509171497511578413527302907696703933142283679949689188987041453874960851707131349661473935093332890081696756501994585389636467507473416748074631963567832978687432484246082016844262815251523317464092525691965716205460364183736346127073593640918066942702386914414427568401697476992885970853715299591019427884120317239060370628331798898367891802065152895116619226587346809122436759763366062295451152080879175827870552116486757543494029418531969591498081874741866857681314562680022242941282247856517534829027539838709339718182214823452022576548067903604776938656972641504603401677710408837463536600134112975329187038286917325447211991294565748881836148815886288174971722356108656812810937029396060894012220879580795189119867544241678253590142936688349015796305310724508007485033734400663252930176460803767473299960422532679335876858182598627479800735850263420839892518412521084651160626519530403343736814498593648936822053787372397334736118139208914106343976107957025155394307499052051999359287357406769076341081493396730132931112762266494795448771278201900425091157626616480304068113070231210086696039204017147434701123644658333323668716701574831795706690119659128534233375950313378342835688725039066701984958624865337311228705944442480036402094198777956838424734725449215948310326533980147250709896013759739780092352892533113233054988490376866543048235957662752186255106711942790293654076178091045694231143644537694538691790160476074534199595372772362049730533885524739579639989889215990479919966592137142418838450859016386003986610755900556144939215059742985573083059878983377428297552764044522482858070025548103411360126014375473227511112319887287594999082833535954621109226909861284743656905730069812586823599982739585216045022536370383367733366696213804984163348918020493914949217303249362658786163505840906857760253432220333308654409301206836759822820080352328650950206653334924525744852525790943288334404032503086870295201655027263975239038384015512653484127036311483166369555900855509209533265401520994833403935607059970988527116536260762354739887517901494382449932062688698036426436404143071402127495271241423486443378292322116166776505074977283621711008755448923563649653206272440331792698780248536878378756869441665328792321762682956639153241931300063369141173460084352460499705740873456366285281639579124756481723435390742970677566998319563914861400836813525502424491737020842753428300512779525691202195546858204294625654059751906715166734500822828471512406781830756715452410491384810200797391448315007511672301414297124057204513342070646873100490991767357698437412948279530520633122831162307030108903815435661686332260299488690250131836226813406605356449910475396350592517816265949480818412340127531884831749938693298751291319910349592607540731338687733124916895846235202780158359091914971593136954623045382691604667393270450429850917690804110525102656594796656092695318700406239101123019010409341557466240693920485977454963485056806129330290504712775221688580579522656919884097614772599498873853223067766798049168326223405124862821305015763475788947175713014308402443006782961576504100050722009533129041570691553278781335691038970391101038190606180278642153792408443685545547094770357724843189067506267557526178464187133588595265092477781993771029889479463365742398076344864791849803449761902798684827065900509325812176080030359901621374942063213026233252990691170272682394537467340431295608638872449538310634457329999459813552500279948360146831581663694316365875617574172980935808851670276481270608914476325331927941910460449684022732391879946983699711542315572942624817870115780202309444902706308229459592672900480249281878220036408435720192638793397726112829986434265930833178143125598713197414174069548506436452250994943183194132664091412688349615698190583438798422690064054209922054605139608937214466964014062218670732397754952740240852903788434265057781150516419431196248002283418393987917301212711877714992837326089336251234446002361849046258600094902007939972322093628952328323936491675533731371886150100563337040088556070980048848556643834822699462672882866490279612343343500146895157517840570874936297506440629482547008396399288809564977802285398339271423415185684138729562670643742950812863211505795181651351072412870940685150225287147928044786572223195374190898660173546835264910969558598466780399214771040411354455431126248018115046366071904592858983746358816667319446135772745974329210527472763861471958636961772360450655268293152916272081095962921514850597716965294687326522050200889599023738756546696935504604994120020559642479091917355926728637415879700947278447460490298290935418091268824787485472651616076519371731508566007963943531779336508124611230701981436632158103492956876766377594135029622000697446490961537170455330689310557808177190711533194892795395433417530170042213003183081092105449230830710039685078381494608318673360811008672029706224346128109975860737664703832522611961457351266948068680468472377037302170561003665247916869437950543266460940348358262520861215641490979254728079284561420392401000272726326283646667762386158981447226491911027318538258318941943981321519674499111421867725792937729996260365522087733925736777786093108179327077409143381440203503712626807019091912078279739768303768050235374952856169846918503266265356501208025257336654121098990365252069974575728639956604904636495376227978226173725274886166864325259420364207160087378074759579707452774721429903345763059947039815133609479238527522324670298705520531965178191366226049788242003044056827687702583699502353871749531714433791012170777322455361081891705568346808192161985015970942429051579169062467451422853865091119213684916654674078646243029667650159480330550202515733149513135338205972157159075366800332817669326576686780042501479270996081490936045235963069652564665825469056808965698140876220499405589733528918141373233128362260755394097185468384053344660458864874119250780830870853985904584424047406045040743662277205043692581193240073640017197735853838338290216432246229691493267035368821001044299517432144559400280292083474819941498020312810279534212741217116104301801754959730931997523000897291176870062749806807473274677891770568140844832062061589663911666281208591843383931982250951622808582729542729022724074463070020457093249395030039439003118447057055655356473787614744199825251121060037144630323319099327926214912467706928308881036022751570925768411409877534396615972663388467107933551475368151786421395593514080544081796500275399479557579033350286643381912713897271285189899049862173747407022491854771463992282291616123668331463803188605579279345161410173742297740958378829217877875955053636592804116516698477138935965688392302999634272617865817701503962378909667184534224103712714371114031195466813853223108290007341934110264256071271622448513434015385496107321424766194853393705076003581669967937418738242194699980032934997388408881447253490412453799738909511567745741958586331018197504905245817200837206495604752468592133538308397428374631267623241267930360047005963495482451515710601888983012074593020231283886512278930769369007292939186909758350296117562642125759270193951750135437404599049632832955259070848172219771667039477158491860643495037214997964492402293595534421910254977671276465807870027897024600384593801783598552259301529049679782798050978975207371522043349605681195026355194396309865326727260291593873069753894443922176976025106424324246616836851474582981281309398615327779070922179385219475410647933492462797124244560455963699196162102099553991079561028300807814423033727292242191870210554374462780211663716637974225386787785565604003857010859973012929429112906717113293845505623536946321955463828012942036975167027551928058124171847342478559855995188942356473487650572393155889879511855864750769151277184032777371578978660221529790867067933196564745365801191123428204707672927195692799235730762186960347622356541081218448835421576088408522964960205079977795814367526730630929064873868645410903594074325239521141753578818186107306362777485266471516325465998931439118076883546322538251155451379039019953368872224071229316257035956702985329465351460380437314995613581140398867649251198970051980099607595133125397315020654924218589599083628391983770628970308651132456605201581061901540720024388748486692676761035229836393392638359426497832610554654568931574508889080340218986016770183152383838170846151952046986443017335704740775833608055564384315926619668237762493078583569566483111493501799883322709275118248556293940787807325263813434512133807042743936919940415172847225129186118090510487935590459809466083160229413949902611788011685897588790623921638076466537902220149882891380866060337474295710028163293082285144327700191147365877590414515588199766646503923693968465540243993905710980036901087167664713259206761639676611651087008352926470676313908350034604304045016460508584598033032989560474605346698820669565603233706767296913703284096702796214024453496845910978535217571138842978002276487488055604326992803134118187402206708266120861417862545697278228160146715669750976706938664709841346103445162616035824044269912159620268494227495670905907553352029707509061423377779947522583964987020653915381386864830069280440069211688986608817147608021321941516830310665755472663363482192061140249400484320164652343190193252817405360936726563212607343571019955377909354608751613768726319188403463230257968021800429727576763807951800306370380609179614101406348708387209809480141248013697696091977523050626944786755314938574822189057244530409380733534846708945024740428694414303359760837261762550402734844519654934912577694426843225199296277706623806320708749956081372048765383771647162159531299127166692362300735410015714451770064485485530871540678649567283251738337727503994485675234769146663874543004845143230338313036615697170573533225858536520641602608863049049555310361776272524977980009964681815598738509388071857680006338935181037225201795857807515634051249978524641204988372095811058226760079154319112073719518760699085559619944573563644645435018578561556507650438701037388639402210803235599952748873316260385587073635168529877203467890321846633753966574408849705331780560199959567185301895267103227139797979194989944427787774835855143775506463249927320307936424263799611370593108596719997702317693688258915093103979455106249118275740690979032454940940258225078635228691922203642192501068817093885683497752845461036065237697238783060232279566072003111103058953084556656654562918910645221833568692016857729485359740516462998817437692293365972408635328772659380626326751686751541329866716708154203556958871285368331681901414715922782564114840233812001134278307519306840416592061011760123349130647371713242224474492784862112548393986259619536550827508295363015809515877076031956159691257675632533320187488633997846657084719307632775089001652928649916700968236904232445067730405742345658886199339199591411738243978284464411173484940429312557141060580823017007331700954004070587563774442240116815938084463978262242265838370231685752528811850138300110048141101002379113856340001709959967627286838439698826857633081061248348849678317408873775077764205400341799889561581682753076248765835532443218116901729654115530437227637786093987905901343664984779095007064352822330410793993581310412733868889776255023083947710643645569510968545574375993592201074891421772522558692051059503834092987649671022372778533438872201223799547353456036200436502050064875023725114878264544770742661466094859130406604582916535068434668125035646488043021625149234224691309839550226917695173156617789805780486661999856110896825937740615012834726965097817880119928213808750696979230236227360495301400608626211353423376351357304041949834992200078868814346795158017266988686984234980954562018443144468344404390397993825376703913036592106349700468094614626728240777297129329631309270735827323806039079522490394830221144926371510765832552802384094874570064002671187087126945719200430416883504127535487892941637037165064309415721927425930714349114599056174863201524087904076171829160205943677391484977024106404931411071558602968478692622282072042547910792863410518734913871901834702138952109757094454138067740524988212416227529845938475573476612684558610292377762686865760437935470290082193868995641402142036685913394235920302854521361585134402348525834946298618761872010724238363676460488144437723315113062004943396745277975081509772328491371553299722110507724092479655624488510320368491885848005224323071109394241102521973765269638667432314705205793958284657921407715670862228186886479434526607533896072758278460678695606932815171453972034963812370611366581715157740103477143857398305777125181375070379979273992346773043535810745190993427810895570939863747070373200624171432024680265011565334000920427405927115137749679801172425256781743365129880354164310639557769417375413844119845183206451042220173650461331988029087937787781310288874173100543792229519002691416234086148927145076199098021612775729422025628562134611221389715540145948401816262215753590888648753471146996354227980833776888819853954391295295357035930855599113683858425568822992813877502365181848081812517635210405738123842096602495881576780812830261114048168367189743396238797182350727437547644591223869782612149818506982200800629682542682173120636143182392103606831259407645101841212588433072206743091584632663450526576435516196588536871593892199438326342262713497140681549751797799504408121950520997231302006866121263700117225709042375380512015780366777120525706152119260083597400393121306036767557380960157293428485116159511233582625784711460229093561099217783936047442538569699028962927405887694949511832815383084950228968445124088205177224611991816454622314678297173607801839688281450127889029344532380899869583244211774661411587673993853790728050115071344387390803338212423763160089205620636294406283004903385975901545928349455275789224914805731729819277088867713984064915307732802944243732679251028336135147625617645036445886308555409479190390897401933689723662256419224336805937936472239503876256711516640322005339074115471090734618162226973096581717314272442291311154037270566124228204978343901514871101503903114379035780340619984537547749406273355136423298310382181415378980167075094273088001562626643111127909068688739494189384009059870735329110917719941608039098819839962151296885171541341637700779438477375320804612264391055431074246260305609496464362034791560617644328783485139838227621425286347592262680565902388614817116000857427871212318306575464897627973894534901658297568080305130929416609263888405384287303027204901807191078325812769960975077616310346188243578236167087498129651425661417496112080007891210583691926263650633578343620120819773688975517723330205335101521969160853780009583380301965494545653998667585249586133945108254471648096455653002376415990042547449989807182262955223548319752514937105532299285299952714715211655520356513448337675467455668752844121113145750624661576503948327872966749740233188138861729121686080812256273436610006688668591833462087097969695070652104491423681060304449107253883615226084580479607289350111654917165697848299815753983539359181885781929231286951926860043432636702633682857376023352770048486927604939592732476769513143208587271110557710629667261828284307118052294551336486695726771173550161134193866305192506314337686821730141228162034637715059413328812567693594067921526276725539988208253175805996481022040304091808576584169740734544052220734845717092703847579251548483112099199031236237142363367952379338071302406438159077144669570073500829751177903623859345216942597640313128677111127259784447480639626260640222143698145598163422266759524164808043797627777341717595073637852154463679828125380822972173338019800602550951997348800672257891028962586702820430547326309886128066364096468211266339848413753907262832357228531161780813297301180784535436669334074513709436959028004131383540645532991512445468500380881956563284106065436987254568723807781972801184301350679341705339707390738886706806870917860553575016732387246889806041375283383838305425004216154625927769752780079422250499588298241752583945929140514851881167235435004238263382261956683665996611333114596709716789659931975044338266980320603580878749680379595357139907639274022484893899412442386951503530002655698492106862203195922479221164280458251908894881624165618833113489119242419720973763170586809876625956440061143580031316153353487847196007494323556796410214018870015319735746766543328018562909220834240981153364785969324350459018470163751799848370859617623576369777254542529895406377403641632364076305532119179102639082993405798758792594689830907023929912001191729636554150296665759106721219148928587902529414077147279480666111649919983288912111851220166077683048137477420606570143637589893734988043608810190997404131940788265986947908810827400370394413448007233447366354565590112989879894547545761694321004801584779807732094808970218622268032258257550725253726538412216708355547282532804034212940768132633008740414775067178029487334603374857453666642020344438991186231102600190293669992336674865159714703627651231536835960298502408695682504114361131980247487828425076054760362108930856429075337263035693554158607208979707563828963854696138577031570776764654580317117027301351269843624431062558343329175148384599724304126586074117531349967641626251225553164568411723411946964280383466405136554424368873724165262925272142520150659128315269511051147600662778513352266893129901140661295297055990641273659618613483286367837941013069372723929168326092718238686105262010003609721351867621840592165860616014753708010339201127482166603980715776020339895775540905322550045181769982922386883613801283487937319645829778180247096370196707510158626153131608057138695302460737702969439122719398876998763090252924942448081540442254469925359124641180771902219002599373195282919794250614486587464207234511646286779119117863654663429080696333262852380700008478470703870479178659086378889358080048597061668976576999188118292900463610291627907267318505279264997271218308627551513574300192685607850508723181926756274333165018432746922020800023174959611857333356505999833893009499429015139655611433277669906204590673752291868127493360232689031762719653965160089542085070151455914975147836223963719028866805379075144614878480469109677244660228794691472515335579458713983537260513129548275866948547300138969918472493330936957483529242314362343675124420016154355985686645268038100559831872238529123221586463916188269594336940232825949742054694022322484117804025534989147695855933907903954439084240859533836031268367319455670730399299322269509534398970180984181567081949898738346410164919665273567957898955080956902973286893233775123622345582602848703042971535711956536198857977078015198641675298411454613341618071109048770175210014820389723468645281166513212538341385387202411542051292924014202660698662076599800697195356486827175301484233186617544653896389231355559704743832690226302657177523205140883559845645045409284923672393495344145937320656725615350646141346918736380466099898546325869130279319989837460035456000162611132521234106406725003158348501877532772696289606875620243610354312221175628542332278655716942174497432764707457643270353150521998061690289308409371296911652827944092352430523796263950070619423314245323185026196946188633751111779143765421525226684981706715921778843731401168771229627098869929086429914358610901037830416449995153863146187156982718253965549312530027155243593720892870187193124149101678287957170741654307128348006157263520734515488279140127363805901055826170710264339207088574006253812667059916804707921782075948456801953364520746918645638103897858251793371593091579759705123599663082173883578162411391176420596624109175706438041990475012677836312634302929936108239475903508107687423211112307188561447844699852242066708712438839845927250598345071761495568587465774503908851195712875403577754221870017054598927395676962537730695534255744786749447115812130837295891190550504222372744575762750301723495436832306552743402141867471326044573892643655568596777708990120194786785482767010537272683744295784337653145095644405660646437193470446367605705336645383466537796946637699551672340081828264317304148978971232639551051661010472516476531696484177881754952938491727953384189943294714188918334576477293657869636868972154958558076085959516501496122766996625752078632923405273069342917983762084782995268730648794863298244140407242990318393137288682186146023989232072670493187654552054931571279498743777538576449967683371596348754894892473040589888363927709399818361516516812418783523097156164297511868455280095692966896071225504644325645233836910061283156875853633875633113553058053771681303195187870365784634406015458801515028344569995119208691651225861887915606236846667197214088913093837511317780458464079787051729827562826498607557911654015866231308460267806056048020508966301934836934701515002339759440943309206983667468133187140371235342372577344070439969898322246009604971789425355780739748879829284550166076682434384246414172328838188842809659934779601135320732241729208175148476401619345329995505412742613717910490291940164881098665026985861041743747269876647909532793628004365934543769295125084386795368944131048758171519816417216230087976331138124855277797743890452756268407914842513712593679695993693283255854703081222653385182639813328191412830772870006758597134918205998028986703537157129834658280872503318579414872645525673427526050825729961231689404810495308053089073266913561438450256136190780596366972855941816410443471451408596026507331696673230353280346892046399506385541897168711901493449371320069643031120646595711912438541171571685484433686548785635301287138797616971366585292167826917943405440228567683841875652926380211181444732790132950033740325459596088311032572271006945788445127358763658356735473816137979151655794597338463233219911482764930949117243338829506203559831613737624729482541579249039502962425458438972215980761642632668448927736280580707749675974002602390978615463094792559655888670667680938868100216620833594048569033389655625731762847193946657817921533245310962135782664773534760094345991892962011891592043311293227240971827931538563889612871540986627328200950823852118291243186395237459927653983544825060381123941539352441176949891530804269601326239765186375120640763565838923116103661440514859548689444393655153548100181978260380297841106464050420718776760334128443109089281227335184915718156211757635633097208583004665701791848752360871266621674118439388879323291331653866789897784431672665542184693200656330309319453506487690583753025348474923829218342851057341950934427334484939232043154459786723223265036152749839423072742646296789907202071539956226657300781074246034798496900117832925788162317849335144954216662780422631881595060043611550938502989204770082822994611256443393060497591919081833013069271304367458945500197298745741750874763775985506728576373749867265118443663323012138234664121093136411636022640282466305051395852284608743794700802761479550419331510642973973416559811868037061231612272920897512946005324906473427990711753579111685387588712036417888290752480984021950536524808757697117145958022326127563282746412659270459721093623652842760224008992250666161555932144863138489583643160858842194253811960324880833993796674971454850003167780505293833723332163108953478488734786809903748394800308168341552430618710416821285781901128404667507008574722032766794827135673920569989159031425113016696389738616559303040017775926105767102130910461362657639345817217546476899053356447760929375804784788822032328522693095341813610429004870045977299954787773867260646865801008939475010927601997503727398257764014316327118348940278306680682398266125694647224484523014823839244852632105400602068864746995259101785326091769167004680551189828861869843238185602059304175619278737675142651805492382502032455068512276460644872602490164609581273085477002132086152317910280371750249341620970848416088252682899525978904319648403806066173048627532620516321132358113569268542171789782588609895779117677092259472243782054721114557634275774574558996034139985917596806283828413114720930614843657754208136946572949078799875921251816295727205413615474132429370317163928261942106437715631843990825758638765653568993902157231943073154320560194782466714319211994525139621232806305917196493564353592762785300811674151159529588289327044790889818732179386005561094786381363380600500699796311415078467329726448057629066734390704321552040841133723025332077943413411240919054677435291116195206294135231741637313419899022556702777526784437178080029508449387578704619452968435297431332802966680951940469203140608971678941390989562884930770803139629583763274014810648754948492298317602828780422954667513484704229655883177158201755103409994197240262052202586711258282313836604614702448036227675883614944725557230368477312150824684694572373005651357802699346732999109184155997674045043490494232813832289293538868426619149725478658422303642003502247879926185501804485215033016498843050558550020423415861612334626357709231472763111021570766206140083458792904904441880784734512028744636206442838361757955379249092150995420073837646038777605896148120650718372133562789751852428674942782652920209167530135592248847507396494227049385808785296682700534281483952672509736469270022351100588659204584501780369507563648682213880248344800392953348019098383154989512077724517373063890847030709983651046489760305750880498515353039254122490045795718628825025706460855946496028099852189912770300485066034590137160510100018241636350105327368064104174986255564889431478230944133345506344475555389949941248557182827653527581554789253096814591391152706119417263797019677388960694437234385379141862744161587751849521186918038483306641709630034326336550176513466048695343349482232604395865427877844370454390164671152840508668058329087955237267431419261374652013881894333656337818728251233003197135629526465504067340336812822164358148990814489031164702176065948771505745524232383238133238026165812601249764802799003841309853731951559674561881677800302911873486348882682530593357381345254256079961419071248487279354541510474830206934864127909641894702905649945102783996173279008019919728758663267100564681078647876927937670274284391484175862004656450206081391064345544286244101808212144887566704468099109962451686515734883704810396901359101637087591137335682454377308679814946837071760834152240842720600084639773417382677640383372914664634484746685143507315327655863115393874675910543669802333058834602398244882490755310193527820971715478346440473964385530466461967634813764868975390827892378319507815277998005216979222623403925361447330121148570596304913601802379766021708027614481252126374306533935833805005418149286439139503373075828098033921393920283388284291281510285277334374913203115354017352791409189595705461940458117701119361715000777099588321144612561607578163080370829867727659230841781753468318361072220597636708640807009072973296413046903964780183705756489739627313337346231209081915990322587025251438823157606535046230875970268686993271539744885450484684512641463874883728031673685007426512629283233323415090683700945986390929882829924546008736366612239517461319086820944275092507353093391981295255909009805968040726342535398468390095853290424881928226577342901079365475539362893521564603105446177167377673374714396395490428794757895662759649643801402122689778761051616264825167192283242652901847055720064011786449382838593124558696761607283769761714884868602250912452971392498195622924528050832677261198760964177746134405708065630022858747308537908181921387356430151051464001455567455454297528984207889518836564328108375747074514504387905708856414410444032355282439050170788126351782242473672580495957512569282538002651670683977110548055758891305488235324528115293271799290457489808579246367211614106817305986431125625549209956275245746247616376294801464968831227273314068192039131456205305370446260650993147949200670393759875019641736517017308434787212100170393222167466893584050551419698789162907129698787808862148470499301909591172077176948686885586967044298280323852588778712537036237710091451682078640893109355816705216200041203099618820940191530446454599797164965600469511791819203259871486060724289690772447657191090379498036352299845391855104380068894888171854278025291073447409487844536466431717549474758802964720496728014446084687011921649531284962513009614764160763950575481658312480326252438976344366204410306358481990500917536573147740391538441933873623741122483375984928382870475436688901905254626879189134599798164275559995679135522643916191665068955233251498445144634679529604307197615041487294773110629796014608864448034181290764192249049876854145687380892778277721503116552528171094938702982584479604957312243633015133470451875969266503381860245308074126978374547424240863832298916211055355596186152137380576383974107969238810569349578088739296804831283849871002567611749928671543841797087743612408359928095289314638134134969727186998590923158906848593091432993262516092122878976346659806970907737960573074700239730947966085606467629754127507153788805236221161948696109489812426165889265568114147391301262698443653048035093622718146015110865180829260264102287022646428135007178080042658776038440940522938032280497289507558658525084660004481112046143729525764044368337940675838022557101372714660394650971207823667032470739707705899485325482546535769114641246287042294795127738307790048915452065609491276887365777594319200472025406177109671268806372508949824074139684904685886518406999596107432346070678766959435716463101706006893574655066251235627842632626687664298842626979333090128129374535751981149466250138524369356295393276626700408057799380379081211609218468711169933546832132360458464749304091890745265280139155412737175896577345870206642897736406947909676625923379021042080217113764098533064872001732373673234269875509773918103639340961879261043346228565150949520513563152103325209273123680209575099821438318702456571455173820692709473062786486212966066144253334159545265799377314331532266017301471215462562800975113275108746282981472886711126271764195672349466637030691718801498532807986822285110903226558119343560339992658270235281190915757178698574374479452306389883764905687865252145896711292710892866097054651950069339454974473706509176408234981772987439361434773514770410364020012764251271797538953031348002327521519034418289702193697471869058850263512502304186140417574632551055211741318419055515549511387422315473967701221835752339172587722447899540787721740634343569296839986805736567094760582249767884135571509445910694474401190879844313571998258757848663056489193548545688950853486028596348633376849172256077641620119846895206508000228686967176439564912287600287970369119095426528784278255356452642823166904051815580418594247828193051907022081739017904480769951399810585322535861736946970601591519688074707744567630786198222340750962256457427053769029350697886843536865226055352199581924791293966691834783415362913337298626867888734663929045712714950229507842600104438871223943866643813554015362631373582004277386028295405983452799926119773472224888633949061523560128039436844716204151351914140005068434875309806312146319496166314464998103570196908942272552035869769029592890329085671673587360815161422731120262827246975689894366189109935842444970163224890863651199575544036957861052591374191712058531345080739110101297721324038930359486127139865857231247752773284520187537892039471776452641550881765667912866867961593787113117952356247307982023372362870763272363655179714691965717647899685949606822864342549030511867968114761675134135096430583471804955624691039568430783296594564242187139566558179224491165827722390667982398557089150643019623299451616694809464282781887875529836782737435369252507281437715520964228805667879999066417766260439931528836485975982106721836521752816628361614970264798721449245378482577707416010503377820756220521493104745194599299138283949160800578635585261942906760282119803585160614706331555811361011486830090617319247618968999457398479106185297963592560163151463713025898122090296956468323095342222477961396124634375089682303201894497006897759114991005786511302398136517162644160187354541882598993387154467340352238325208441610380740818655444033411032830179263534173733892597240592637166658632248516747789661059279521202008206773977298553491247986345384111838061365117638189151060229086674040258526126933864977239342531809864175158992886087458059174872657836538883790964152121343326459895229814360584672046600051246315485124163616278848272876158252882123527597356963550819375415230542022073628335145666541419848002490751887608737536492297571405520748342142770272113064566758105167992601005743147267888108600004504515577718881417284260992263144873813986685192292008422105655115793133560653515290944051887162565825632062757961600957437258369144895470813015805182749505819782365651665869989239224406523209917693415897684964120032847684026705558346020844035565988035148864308725383056287815034398366935446141035222970302536346998770019350436460915328888524531200717672846050971818117847686973875508242959055888104262641478698063788812885909620041105429604974533118736614641681088367483634557240432026840358683064884478096368082102596433450196473995399894046783077092690751068557367268283363725273360132000294217543379818763174429337115743746149108887236307204815404694549014373326571954241497935131557029567597062526679938035832736203882637584163889792982245172817002193218491089192470332634247650909790484460768451010760163642891802587624262578702414902020856973208473377535662370231321074355375504950960607357177043917869936868642795154349207301903653037805743738241337333687259347024643933588444749586614491948472578797231257109838382600712249052025915396987000203462532835869236678916747639691050715705151253766168748108176010363417728133734911038735438496915163898853319976405766577237854471453566372559548276006700284027133635186379643812608225501903761518920464232100984080102469861603368549660626296086774897182497260442496326101945124104646266223559266345649272836746609035357389403600658662962853971796554178120058107532912722704682230018919383876518576684693503739635893045177234954069405106204847959398122759755939817017020654083772065357506299151027737483263118568028442676357676671356117702896709140669608614133799829119438561804968749627126043265448288044459714077062850173016868482417840042992528736084450703810575780423580311130449248263288352583543425749864460613238289131481385761031058629767917475159734968111980396278463611738206823174683892867145466601733090659377187805485727648796633391990216373795919996911414009436456984262864536831322021924767663934031251100026068950645046358598420869446198655757415580708681804902876376689701137330982454823634749696643433525196873012738895708429944376238439906124963917393647265002506117911869194765136065963723190902170257667346013325434540070595823716895252196381985183734654303803610596276774827207651355159327238173516644302920219952905097818548589958734490300506134398720439714185939630115045883679560927062319391892774229678865347233373602225854295669667837084796938145567616572596311111698986592915017549854136451361499763875165335671533536578883256396969055509721478073281050877453367520335988815529822134202973335575643228612989188860544985945945878927485773278544655351099346397780375343062486687164140881470295715846039932865339693218888795457344333193077727763210435986871708628318105039178251109923427495360063128466914684904270228327865077664956294325056624074581824015662371699435460759910405213978082750917362914469955618681951187941795140919294190171274316262633130751760002676137647884888173945343272435067125754464149489341903598353357049991303468016652332377399146865785509046565131634342075163920967743843356994261212412310999250939425778844492393135100629233123423173148343242622312851723549827839702449236450322815462101283683346536130378617735758573105030169554226505304954941599809907330855090388383217614104740922047443343152720676326135586045836667745677363754483579128193812497584611792027294824062173953006981406851726898838643707243676975086307679748016005292306354565986631210213456208629110653948708057736804318428410027051343757721738577296617614157506022149496510105828455734641343116098077954489462861916158745424327391545376569748665084879495914235887639000309034939134575582773509298778256222004654421332931118631294272901245130041616634926682858188130723750775889853786539312657475502098378251459732334277924009048529206299029791658710348423388604221388367378722521366033916475253795763639625344724540238956560319256499732083009818067012896940613138504870975874437387013856506446016561396661072746583330796833451638460226097475354946756961722161934629849458234528386658894717208556131216072274714769273467006225946616319384401351547200303006930854903646371549605140564846111311423439195791374481235037681585880747445790350613740585609164604702107207394363265626316953348721365614433512119995413872871012479710118082784970907699173149304882262568133765819066338745188213656390351386138599515403922360250356850932779577822323370562829774891182341967540971598742822567825546662954110998848585006002388053519969347487050866950510475694524524797005965023793387724286926734656407340097294977779831529927733977200989620548749043463833016646915693304832184953913995547947044449755120499509484211192661071435507926193895495753919291115271725010792032626353099571815188960663284804634666610048884870457248144631214330388751156617168752398400877483918047985831973186944223593885000498334952704343187285821503957532898923383599670322629122450651863079481772764559107627166648082573486296655063712838441271238358141984402413897497431701855131087767457480735286856785602326866820315111641045445202301275956619980858597714183350875679788463952928166561051062399971103286968456462318508985594430860381772271361863028820791652095587587149886339907147163911551026482981723453139991336173982787368071109152801730651067747435712514708747307280799582277165181326377008717234278243586831095816969052249336984810926196471759694479250643992224684145747345739166201025378976247167851972200223567972155621389274869083940367243436747129864735649164226758732091545231644929442252500323167062827268621803264940384807382909946184528652536010379036203241438371885751863079657811560969860516751520386314716268339989275091197689485396561148198107391764306230908477633436874201058627761005877801735374729404100615291957866253846415758928634690136462370089618040401805028431503590063603478141755240611503999402976192414849668335627352295977614552380974055034616277284071751494303942424828963450232367520841425554450428254632386085119799277991750035406160093571823405133694952530029500673817202672665750068511348704455035866164520806895110210746931351752347053564046528226078158995120268546866579465276921115951050502452547398117159344304699020984875105188724098470542952952754011310228927908550688966537122579588071224969720395751117493279394139759611220529331956993926934013079155208283331716440528009620405396190881178916749244958041704928826739650920109759852705891839147384237784745014432279269558560891206035779516136222817912705491797616258072301464871841453956889812125742477023237294856830343689785103684365117909621993879684791557056369476534412732601760562081757396094916021542876394443888173120743875464127134019733137021827424791897848860754763116754444556790318890811529791985656553468361472077308492249330596636410568295875161934638852171678434750978779094017440772153649609280634648818586242264435258158783525924713566429014848381212673082403511641122088782978446858399889239623621923409489914738362612605301163511059650647992768201231053459359280187504035549810079236611572593078052958315008278598129201959163617430545381064088752389171597065514668022344417857227258741573112737996105901226029417237027415374305676238796259409892991401015157639003426300756672171327773271196201795856131775598956010807055766428318913350158325447540525511003296681468265727496130930802943744272856470135453202596930979837516925383014506229586424276912047693288292530971170905008278190541990917714649244572135075544023495302117591072902203690231080905079417771954522849357388337146447308509848588693586671784513301565923825902573192488889671049443544707711754495070252895206443874577142544591983337733027764672143996653477135166331151886330169601384085191244836962604278939380523162880567187298705800349175144499344338945679555708541511639770837305539559882718777278032686455018037705514266870799117089534079892050111011056025827669816681843706479321911725536366371050317852375756051721781447603982491724323882895047349779935873534755143171701624850851217855854775080462568167380528053117803776129246555473856322930893939640264699774200762524067042214814690801126536797854705059043037902798864839136877247214352938261800459415127070441507857190985602433809291872036934068053633572265186774867459933483368722120827396952191435739473542377401668665353162929536080162705937370211792757038718958755728976769868942553943913956194327314359528175472758168545436492877800506673993862767744723837175365757042869748029297138930292893833834658721413441838775196992687277044637015293639826755661078934118074934991176475918967861572689779886115319414981196570569555114583517232302266960910739061901770385347281997280567722185211928042747455362798999885948878807351733475870381871257167959211166329733284459929005625375658148878052295534591785969037952645576108188170953496148732093363607033084727921688206961222496616905413993739934138470991205223726847091821860468730204921877437472790917635464885642635816035427724042367826553134220796818015809128005139958176724547423846626408559332324699305163148487243600220865274331060668588914838349923174300399266530741921740059974614327722872101308259374962349400851784074824512399155317758911906925460531951891046464765824202189600999747270347807786789244518003673093147495965341776972523945373578555387427489994424258485175670566817599736185423948012270206162618122187288534580626852594341981456381908269764796986187564467636979136623577536370500628508978949444131299693127756879044669379725793481021205053271211940738931950286057238787802417178085094711061251801385256929354438295139617934065028637277629934388940669138857098370928405773932762406398973519402579089440447985923377209610515920377918576593207440090254095777169324688176609802164480235820156614266361479182970891333580686917200235290264746138047343271245142007473186564120467753418260059603675991151507587520147256296568654756097632840184705988247697078642025607876869589168697024248394300449109524394781798023020160916413361199117694111370662805896149642966201099726633250380929498371402019567831455762966169529274725913802246434635373294613141722963396695609027065644983563560164427468202301161908040805210398760393804909658614173190747020992494216075184427771678307694473759942701835457870720736115728254729301423309143557548119223882709708689494752900729535692823884863011695407298679562398544748294060632349784423691271506895642432316257353799357882693707622660106826720789230422184762760785112138761578932728233360809999268194876728338358968108039212886496011408011337258193949108743625642068364913475193544199998432910402477851118416928952977453290854861044853510658063160994471975913927942451864848942298370309837399499927452364122480146241340717574022293682291450610104129013308462885728158104067626154737692407410068412033994032511098463768143224835327178330331025905142075916571745112489854838266705936829883218694904852404629224373278631512359413348520676876377912778500352402383889708411905722816019409074088316920521395955855612158967052802466283178939772621444659265414301197142826319850212301194156191622861711897162861472028043475411393248304938219500174371796333310846851866017130754082218587289193055655685327940890212323012667180525371135838494279830045466254761657776823917496257827964634107853882582565067536547293497358174000494782568364609648677240120002526422966711771010138935561476878715806777485809494112561432912033084225413646678315024694009926268308881383595992374998925662359840971701512305265495943588270008608856949565975801955014573751003227651012694525272674020113150398200492130293696805728435158291022345690353711380215235013875147466053485482644299680967989121349695607137436598928534148786854406536048239038238414580567653102583915662033111574253927060955886069041155495213683034251156428146949048334784565213474208146766500696567250909602810744761301526924661969885728290816192346205030727945057039159731169676619671040329646802519545889310927946994280545875633295454977739742303018803273938653975419966265751791053196137925862172744411782386496722347574029674178199514329046324687543372227875517905093421715690656718779296702276189609360305832641875007452270357720812549123069984149445510627702083122726287805986481079820129941455723808586757060132556283401644194030787441720949926643980804970072532642436576994425151340455124655609801703551612692648871255149254576363575684730063270272995723844873532719002608738457954535178685524256641866871327876253421415181050921032938294177317997036897639357071244282228947136522766234271606589927323406208883067727076665806004344076825885658530532160044576939169107751001179868000149340358952279623836941111512641255187660196989056819914915118294755659981564388885240134491715439712234179190637520696215147713496770416636027271654483531944828184505343535731140554491708568493259223208339211073436728731822506906169688368996779544777146456738426108250117916915176855119142091842839552987880072750165199037001765855040637343902749117717439197152592327660948538270890278653768210730343197154139688404664341640396486131583691565221461912825524868267711375340082577855943580937196783383860777952701807528477069207423077377962807698139779387653857801458614706912502054993989451483170045724325255617293103755437924027214709528902707597256114919290288819042643923494528385917449253154799024881868333024549950451594976054625011576977250904821263090979968404170084191234598454273388640714276701108553121877521571185340112949296453366202600778962630351021728060115186307821328350966884785498384812989966495298743804668110249726395888136100509460418346403283159531432215473760551679309004161333080069238857437657451215667957629953030097101078536562836724543460197962159095837567728508880201386554571578798189062856874868864618444933573068738427009501438771181364036030011202811730458235178371076214280880879905238221096816916347218054186334209543499402424549503802722977405950692994501868637251232773068103490695818308538244545615342649434301648216201097531500196115674838231034954134782262719654999661685946442360645791106475027279654889747117172516149246980772432887166026665020600816937259109792606442240667020800842589573973290792673665039570056938131125680276668852096102732013506944471976322368649955377050988642979150433750622324710912568358747855479953177192445358153161679254346168516927044332897753916629357305601760824246290285434724011106991083892949792727103684173799628222108639856348782876717574096521516155679908297601145519773831668726349256413171298515801421697026924453767437691003754031910597736900526348235250052297685139764767883120456689570447213500076581042030381591349462428289841903280213457944454123434403614289281388669779800556865928096583029377207844865293324346369474303330191270657394490633853037824749310601007239250944562331496342891352623613536083301072460988446484897591160424820088523746006214084492081489503035691857980735463147831624677917553084997703770757097193146721770033854364576072418142977877824634333029825997292816735652325385970118089680819954906988872740230609941807595730029157949986576015097843084678611507966665643159366840286842716218982250781286552872502751835589354942106018950163223306109774423867254649996240510827570204769456202332155475155604201467529004595213633655388337769035665824480002783400234081985310830991935981308284409220250626292692698315653056264617196194192289283311524820744404140975401844808608483913201030786863081925220279861726397127869126886327452429189378537256551156955275574733509806730892818269137608964660275812258603892365346359305869272554074482865374861754669368766253835482597657240621460674760174440980588795410992085449848650945181354055308858194164469481146523506755103124761737357410306731984237525088018257259429098487061800611365231316110353129946350498114629933932915909457299519640695821692445666231083569130880989974965262393864578009590385221132200054831826379337157229369705882122354177871645980418605164933930465478284815314109854481866102681745966583868477898781240950810726932506264029914295831964102292516323469921347640282112527633767881945988278059598595821706544985296995800117897957192325869468649310260929989623366597327260242187172176093784121205237110494866912011406483866605621453159773790455655417335831156028925506914472378226263822041638064591634492754897816672162559647396633654721564826233535620278369569700632529682373972116397325666588707187446069457797460042842928136816326738150172073112018447938863946622056052562729548322813868365722433868175076823258309003767857614976956958340758809334993740123181913668668565590674766969714380407772593955692070759809431360488552850984673840249474825255710138163619105419430081071881679931298008473525376393820217340230300092169153919548495979185038325133282065374384307743567861160510826079057664042028262489061676170472250604772149981115563165828186605590537906842542588144608071430843466571184057334241846482639474823473241874164772145313317544810479117256316021008741624354725535143574651624051175496294056261837857144178298040811356840006165476283798890173037443568607125240447843405815978863116407424643221172208444116363466893215215198393078031793983046690344609394874264074504669465822978323346552424963470734201209015748347716336805507325534636958744292208499608834237386865791980508715790223076095952223758762762771676752633457434694259735500434345815328179702244623080807738998913555145380162585345879184041800837260774476020872484467972277972544215988386670813634547219089414971649051951277633480109340368341437499155226756233570526492277985293244576925146661916061316278047580482104071303565357480951002646792532932447589123355279605679328170977964086690210846604238798913999599749446236803137077846775885894299198704174849819902221250198065544477046887962542376683033524055414003501452532136258282237882935225664225791186264952688109989896454143315675126463507117150526765016748278412872899926505174436790261441369827144137255041928305734261752947242315406879133740578450901327544261534514758277401115851842317257589518009195219796710515758634765199381763482276237290899662690936403509599924711048898278529584334786767089503365175011447722495225763213384821349768989357586309961060033456766250506351909174511443799388780793645577023784254262783823771626746702512254190717543943451258029515044772891670174722977682966433531639197422653698203282695425851229855749357692814129306983581728609854639686840466957599528785532671125271616173775510190016157014211555759501551865478448065334563217563818646048348021032660711616333907893297241977607028429568842931797474510480620648698399795796537059489055075973553700312615786486437270650261711542077146146638480540858605652928691389644255567895401679329548480287421455458882107456921805147856732870965677451808922117087124466469916366175514362321972978256333222321135699199584816562006103585794039827640120273061152128128920569785377053940882621654198892733272845938013002501962706680659571602171410031566817088014976843824242780665901107099065620308028275763004349891639572010273491469924475593908903242202688905128041788185579582238776720414550507676144329472776855232656477855551490384140260961822625912236883193844304454282998804077769278269002836385315676173273907297416790497024022835019017037608519451673974977976986793343110654405082153054427960443877141310268649535104750206405208583926953891689740533517727352037700889944565454315900686936666370662997059276633075853377926491714539639704670624066983855549532173949741535798650959676790816897863013513050986159793060957292585659466945641786581713077915765258527324353371895423378235978215693838430759134473263608707959283375982402641931951803085226073818499378429621864370223672017609466468379775016992050859344727710808351972552249752425050503142057831200408992687343800846446845193153838888437254701114425758584314720606255626738076035763061883362806278613536592800382223917362715716724549894420454356303324284937617957210888498774427124112694544940153882517236694234221553581971717181686256707521821457614308291659399738552869518199245050341829590618488043109829783621432857028897331662624819677953528026982102419700680226614638963752718490106887476039402179114105575328358409046220689093157946261480462699031334310601054049996300461197012012324134927851654940899802519586949911611231850385451728564564331209651298223148245006150126697825584806043070208028069787848280960408346733070187032176562386928831369877855062976653693984739012988532219382827511756228440274779612218287692423710950218915420823975570187708944700185294178665970807296453897820258677171943917025095398084297536770976161829104125251864309063037077637561585594686592134339164815948230764936556175421979649930597309880328916451910778434433602318080262650795781132010457843821615320915766223041198838191711298302125571157855217277914857438138964908458141887897803870903580178178525187170678532350200220163876631638699845627068453670016654146404328046951942802170295141509729384673855845973118251107916101068000027975906147582334406109130941249077302700391455609595407245900038785239756119110895583273768173136357419497898553230098807225375829725846145679259331902192872537052888412664672617027522504146085985272000823088412807053314660951856936462795549440679390979573655094981117896916605572390194181530991196752791515547987571490107111293705157353363434871776878098168402296004355393961977364251304276963962648601584139052338001506261292163158344312225008343959794989663987800346984932406608964537389602682035002112035317985255224308701914835871849578276872580260071587674566049717990084653523591487186304098700770563416395476949582773848681810274476635898238604345333438990423145561253596197892620402539494471031660264258537522474459654039971590898679378674614427870275924854988493447216651051834448386452199907738116778527731660931024682673684049057743224250545354263641468802960988069663172382013306263541414912119406108104893743605877787251542465123206525928149963577692569864579417027687129411496384960208103488576773849572420388554342079470082861038860686756406104101901762348245896706355494722900234664507076582229418471978688703623524124612513922527735281501674365942990540129953517883548249913902901029166677323499052848794918881295962157687470545883330764375271522993114650251579940506166589321260640977098535075078367384576707710889342796583554696963457924947508554601559925579297289553135222603893095601578912809747619578628367784112444647043316724858712829367575937592014813205446134724165103610764689700333287932540453937455621040788749977509323578816026916690563035021023009823224798248103425941550368536208861007678312307671765776710632851266910236401209171137511788716890149979674648338334140525434419445099766238562695097819019165520646672956845527598625137911235172301882224517429865300239861677766157794441245695691209149503876260307096076396001845007227994518847013778118013571643960372990190454316673485249795813291868203424042837629329693191654346921451444007040945792156876491417365058532219010224400134433758792150250685414754357818153215606083496059446040777475932428313117988575160468129060740236116843998598024073054172045698135269495591248201439421231638926034239872077296595446416727742738702326223646921321260299263224446434090325251499522118679038346892457383251321120734430031567691229030120839799128948365799203638909726137585611314413526691805891566661050215390301735303786427528031347199519053314300846298864974259847079455951246561903470369934758283075319731559821914228860958701985422532513295311995734345344596917510850018608192882390403132347368826218082719290145472632208434840688661987851144724855159845346002190833273612480501944555887332822790367034073383118563433692231843827681133861883468962457651073238170321855689907538295110517959149559183494551451674773572224228549237770724589564597904981509332374867878719493609449038913186830712593959675737404026826109417874711860235853186703377723432898142842723550502899412808985310919984807464946249039723912874340484174878345586713755851324681340866130376170371453966713247871059849933201583761954162071890726475484321076774747392435686777434851050600701820308425237096430645133769870400915445243118309322360863380258836145907121938808237040934464089323382198628080077598206859448352437995459960601778247420776990789004562032479624592460118796745354644475993239080089625046871075448677069032725382254237705236629171552891555215397731701208412895296599174462639191897104454955218594343303786634359820578035358962409648107576519126921285608371643845118824191416654643985582164878539699738438932792385536614819768945924275708290605188945371721135948354650432560296212167639079708493971552680056565423673752848789771205877807740660048844617694026870553354601260558233294838481835424012198146439836433193510806624615811155613403339680249435476378172875268524043853465197445083479028183302613575108634469695642928868009365972182049378195210105210685246131081252295089619190388751973032459293195563099710322939276327574945473387899372190432629714819492851790468546943029890381860396871178151558486700246760316394257608625988552290156332716094600409763750749046671687540243664291775923453490916517054299900458031308598063513359896148284504958906349092973683863998930808967259219499063215218068901861699591397125125455886021199332214348459530952703653487210549622724868970932532241140214196030453447010903572732410774828741851259656886441967057265914087394831723017108738136227988979819691964912903699241421805744649384978890778144625684556418146421099030117290205558900337541284098627810713118326233894595145924836244770653934478561827330316227615714272577867270238971323271187039864717587316275003614395480434737117372376705458451794139669959827787302722631530989448264266743431342332365469657467381177478002019076001807510148289244800123021824965537080608714986656890946550543947293480023946397892545867524430898328128056049879994732966480232368327136976436209012718722970832861697003985734081702661258390579751126732452102909403610221030781587906897384929670901252817556042071683246484339110127412454452765478007635151243657330006697040068329935548793185112189342264162185709955159660289342580049851964505460672600048576455718677606869954335841651030413034758926985996772038127237712978783328902284185895699655848404420689344235012725219478460276066861067744821014830728279429218655450295090379447229631951617393294876664581451046380945154333474526366351470711074349756875141757232276450162758261112306854942582283647477650632019916977072456455450937814984188723469816055677206504093789401712189423746818479858909363926494614739394104018944092219243571022481078622378420477401770619480208281208591576058206937295430759964124391982839081187496545413149773525298478653201687895520694502435903508412154204441590121089900670595790348659490260956642599462539500510499420500492000257457390568099472163775867515280803489438699405790718512489391523976793670582286065485674518476084259800639114786427813229237917504183640147452904101661867699983867241952743221094077607667145170579589380489613815569545926019348171604088927698577543907904060291437656647953467060580394764415052491511162573053549240302891258050836678542190295775225392370921612765813451195982463056497313897761707334563760047691961172753214200968972364389967932914401722966861571521553009115518068067968169970207003642264509526511237484729507940869391875600858390217711707980861283422988958256960660203783112904882505143568881993033208104497464331200871579601062818807983053353800777985371670260813619556860968279826625462143673140509630588678842739004167657112258751589068134873260398986856969091774114241556139253597019795955098822199043743142636476608030816993259050298898008224655832054790296700911830435894842578083170098129160659520458676544171566903789829575039215727641316774060426959323041152479911812529099601147357777589786656808292310080248475825877865450252267733492833339173618051271880748928086159853681480526098205454063014442009242872001309626706348822806352854017561946916275411315020529162598630883660042395747471059293292832898068399362635619029404864221227012433477860368549486633105144083979633141401845434106940695966002216355793430301038588226898941021609875744576483327726297984520661463878055092957311209608177312814971546504892719931212430577729949654932720959463354522244502077757006131578753348694198775702301124261522065946938077528997878499532040196470323923985495972433198406634845170169228006219182074285025083610757262659751794126027395692637345333001058160195920964949068933735635049883776283349352197128549344759828162264965961385503515763283902744929190454902316985282661251432219730563116008484064625667703429419997446217052207253908162769809252590215877579441242813429319284713904041311929237779565781538649702250415491554594677536616584398460026789173716637181011659051345592295575342641696099962228275905531266201633989362236137032082292198378037028329386605580266280163699760936617533724305733714889499039175270209277662437535011974732328227628525665409628038212350917727070345341197853034006689589345296713037476001451923923217191735436406727641877432160497269132562374120676380842085740941846650218424126196187082025851820374389265966109864328520991115750518892652617637290370968835015685226205761571670591636831377475065786342020200204316013512235661855206919453741847309793615660865321272401691691652120665396081942032829273409247277840280152414366044789676423365707708832538424158474380116567575528931960096491876913328713691244184378612234940022329401198737494955293268675501704686944847892002902060258761427657351613622848722129593829206134100522305994845465582780812092336749599208758635113723812474325232335289222380984044444137158584838251760557958935949903061900978761277504964280840167635585045294449569945426989195236807156976743352219499402005592555312210528309042214449632626896641905394567650224409809143367874199190703921702543207202831762383250447880346792888220956788247534057428180177134099378285539175568819259890845946320369774320249917246178210655533252167697433101447830807853113684849474797423777555867421986833533588957629529358276182590733314912551778860274828848705379040110481354336765501777591143541322743227961782515328958333307341396023307649806869532291584282558614240622782722396824453465051833637528481652727557741311865123760403965249713972560617274802282574624514418785966209642814175325395936772619990433435989625235216009351067669521336458557581178901561464447300617752430536571844082981468104729001205513066671337883595916988531233833026563568786577784176084605563684455981841962689318696665570721832256848118659605191955943158956415714684823349009516190553301998511523637502995455824108888114051798167110542031474375709259249891368758428574715984346611750669760287449627663656001005534925363311742982252551568782724942401212516260921537089299013339669573665910993460030630045154306704113840493774155225781114789369414798546788390917682964207454576238938581683097975832375863554904385914699395663046349494910164664605484868990941302605054775370054782629048510371344901261757631948435304572834092434152837476660421229392107916220324367351662964589579920746446337429549574598620685267682725718218485867758524861937310902266649735712800683566905689570875122099234238219960039758858910030886195794978206674468392880100217812516808633732700137956165653937355154818047715301415738498815891517406285818058676228241944284219691884686117640261196914407260941978317200385718046681005736424242880218361363381556316065858742847553935970571790473095598066361282178103320978872440423881130105631033023286000329836071358347666347588801173184334057076677315967223041570190794171615338838296833656297177152118787698861791945535459208397526624873796536663154894940770040561319753035825404521590442034980638906441247966540393586458814693605425527181889989780880081632055088666220578095349330384012092901639722378656048689506624135440864524609279658400434200500215877979497065327915030385925508820111607512043101539786988458937041816026510499715530658417546955893274909975247979719640515491491041053263900201548221110590250242166678774572330822888202877311519103850757322271749797347109894197043351937525213272242816664191935190532865146068708393014612013593145286476767793488112193376662510615502262024931753762390401958990367746380310948288342627891339185444461150470872813479291748582401655064587765105683092046521309123050301489023586437542588802583226752563901142721355487571127291505762641781437190873742526312835959180602491127557869452031991133710530658033117158543517054206551782116688196545946061966951799361231542677129322028376178164746607122547598513088691885323742124869583196461606440539540183919552436704404465910844057919783671086777441487152351075349594267228730044883087569258151084281779192992391167220093526738415701692063914700254152033988010048306976875941435468488661978427303130830523918521575232693755554946762545695933421928856140794758356911168235928063233746953401518832844349365875808177722295513307334259307718332133259251381043340339094603007371030096162296121296788852913463097920490314572294145878981326049948329390996088691407028765566396763762008165799098596819585359315378307654159366627172993464694935989012725477386471318087797924344571508258986491562760612214258119680076040949358003023069051023450075339744384047077612876700569824409749633118415308207272906888474286524289529148313768449200507061844771850240219346732004482836123923227452615207832056115277203622710059230897167574357642997213729590920890667561814646636961567124339897173150005585773523185448053157932758786622609394274578932669690857394807906950293336956049225150500963457812662046745648703736050995650472289314145810892497626007453076731270069611255389137480665253237426918126436120735283314315826999032546536268802306556224266854137576114752650658263435837953084651738310357559525567998258896265739421722833802916437318160469925684512123164871993101240113537050333483763477263118706855044215395619726693671801039651938965484739056790007290372729585377940449528094642141989452404760724022868591374308434084318245346696336880304633617958611345221517528562302533868521902401843609361063717750413281536207897885256679281594262993570886319435751121831696849983433696200464651347769736704868233573901659608453199238095090747658741776569925329468966302704245301404454401211283899183239749591365793419830570421853582980241548711016585295321978955325609495025346960848607500386798747023102639888407514398648975839468351173245039467809877905818353429810370797068304208127209224082395440595102916024484138862971612163543336007394656608839321086866137129522820803215376024013715738304817393801656518522026850924643980216383563020197758274975067571015031938687305860201142400161815677008152337219036589935086708375199498428941381026976664468261908492252803634109467655191887374494355537188357199648709346705938527546643223504439539905490343185817765830341586596579881280798207646940636385791172255623402318258500744452057946168010259736030865157640497083278887701019230075453468883512929876945933557640764623748893168066836960381170137766835256422220873988226331433151848670842037864946324765831016239273734425332383681268942034718863417641428167667488661336180090184301889985764742045264590311279443600629727887773830242499756258808849587572134386792351411669781307632410474121083813435438576218599530708184500602155142521649923605198482413097830510791086244763091515848990371560978552182205023012976055303384229896638259656582846469530339224292924224059351742303523077530754754807784148966821473517712265462124115080080356005390933319787174598360793497802027768061246759592664542998098637000877966094226039887392863799278496243961406545336229665214532836494110123156972319401787651248683082386042136088585145314202733607622313766542680053014685062657322939405189034927039340103542549485687558465640263175777404542855203637902349462075931675254567281782909740626295551928154765742616964595970355492400329013863577110760531677316118823407742781231812477922924878578967139678256640292858015531417563385396097953609760685741938197338130694667536355817920115087603707667807602430391505080890209041672791633395334431298459533471488230548706578541532321574467572845661990357023718623927743678844381046558938407337390970749653609103805237197503589933464631789609039309160138898556455591514751506163873527403844492627049977611151261400274717816995030771077623418546153828357177990831050099345860554597544559499501388847479768795717596184463544733277510642249421551950743869967784393726892110356996140676756493313287800333566643227264924354064731404596056467970361076457920854566997703154655173295569844455120936671800256954544091758102959652776860877621199552591658648013079671737480170784080366308846388151022859336919827868422800311334279872335534922644157818393771197398002376615520115773088095472940141288020948502686088767931630685343959733618913931855384814862039500644941192096819185876287338820444479650557700480613231245570544888991468598513152519273809343305452721838436211947329244382121806104027638400999503218026740772399184180224621297217960137279210563837355417872045055196857183693405200921882147326476589128353827062454901836307040665258451221640504874833465481362044245953758541879737274135799589840277157751827286395291885750226968525430767026772720507626689982804540667836442626765606107870603102869866568643766526271546212944622423977997693102370054380854469490812086283386199118360825964595104302025663141530307063644036282245784530236244071191979106844737630919296665313308967624195016558107003049137192081915058383227246843482291044615600361249837484406408293009202208609142502157480190971437256175257165597580312812907845103009981911775352970501298557411332552013694160746072419872346539024350782220706471639144731635115679299812174276268310861729845281231579760878465473665359145898032706355473194471366119419800945096943315847837942638596481114728035265608278244658634826475325157023086165013211401158625103678344510928178657691377667224734617751303002871728001244687001472703504515135359180775340607376447537453997570033728284101384410740659311203483351464287561110871706181557644448948003669516305804717227560719237500232250651022519146764415486225556551852217698586082365839285607055244394392052598874878853594015256008043409599344899191832586167131407814027835297772662499216053083261295407765620370037621508804392274861953091639414118188397297551398551025218499126486587629752557416868798937532677567192896190565705465132276226466145262963511640332048491202928394514641893786674050938765418614200880043555273485591785579465966265558411582378443091628534128849396109689677705881449290615553054567615433861629698733986118745489304005070759964450172238476668889052778611092393874184512194188888402172528095099370406789769915981175744169333704144221475763541691519547864843479430158338409841510520440181470213744279623592382636365563863052708725601039148220538274582511411985586761211934835704750499491741507077569046482287803228030123207387561067967070713346440960645639408179851090222909497391686282897296125078035091291353380705100784272567084866764363525503732349154277170062243768873934825464851802079604868629033488399087386807560427048055645634208240955570548893106222075136850954502600091131991227192005775487017031275821912132693327225076275765022684276700244338884995215105459904249970932716113574250571171334300793039476499778932821599732428128104520503266910983121401700298607050774043244257969977067321526073881199877456490589262370245012332781564432424700351294513702148280440105612379034578741183535338330622450886155684459277099841638804398600470577256920372537908953127216411213369380028454084195921709748486224160842629781598329812957103491743869573983266686778548801505324067752032796684982716858887145832501270243168580020228991966867664106515387431339434141217756034430662574610281725983374336304390917715993169210034047615829188477619346214111626470081132778959449138534080064852455213680646530033797773432645385006380689517733559990557479650913984209749400105116286784728458054648886895585749096009844806062819996297379118488732613019084050848371827493970555943865349881036434262853371040322681607837583032453093482456981494247383452483890171659615386586601214707136150848919824486315132155933278446600017404739778867009695134860465734545830662881201662748682322787064042374645427986416213688073631434812622067508915635488079606553852843915196855744946219162447241424322711375285610702043273981940097533646290542971695962649121399187805835164720689056508563509307430505888436404430015972581817278165061829236205095365413328911410441091096491720481789371874007395507525558108097724973418056232255331081855925478718416310010992981958737614843126717569264865323366536529315775188426901913290622234656086813525520187694129979673436900640390124733432347892767201689747623333293716000456727501849347060534272001533680783502449401735707690137340151745999678039231216954509709982264439590274019889138984317500072060563791245756090944548575072478952557649390101827998011136121219840475732898713932851948463734995952544529162206130504219802451004078275355661588499388921383411251836525437688794053324021102234071519148243005762319101869980397492575162484860362443309658732613786305991262059335523865518315349935950482604991036409782963360703349317704465665797179928685705806709879363554092543805240630588677205284106963484683061971525822700487010475623206815278549868019347351478200456138202017466273568810492497326511399439676811350156531065603265708506219430785252014116208658767337260990578319531844268760923378058909736704268753929691191138907163528339405646484919693342316645169138842948200030729610920569343718040284699048639258160659904149764132044449534299321081779571599482204001651404895404225435661903153442418478997284001979512320529381285912401759536764043125294111006759352911603251937764120105906422797536926661748730850625079074934272436441991531566505664218902242676143696733180176321974718491989454620815098180758254323742111902596630610022151322959380156549340674738719712047699795884685231452294587029987768319098674701005921937908586518219446071908001610795314042907503638084743025789801124071489830571735475893935640863021398968924039714492476996022816038294372458790989016446031121482116564126978527181155190988132275095130899298348715078964365713660268998204142085917707001679294566350091796360593718494411009334824309021263992333675192873029058936488017300304959376614481276326028333409867424720274429043032798892937058856964894217955606510693260296265337315225687234683686261964265173153934203209598443923130648872955652474471566059334008766764066997372593715654767656589095770110971385572908043929827083301000547530106191244933179148313660560322035251091522195032903255792340634111776432401360197425343256942610594871207738788611365537433089652991198954074979979400588127865807148260507201513859732851359437293181641950583231706603733831911116488281518067293676062935730499936873404354155057031916726897700177365927960902677386446065600677400261983613402783640706155238694530087647277709277897621351411063035461175785913338019208968056765238935900283859768461227166836488484859314702675670710410918753901246554631513283672214144759653096035082058495986999112848306579677966039260189819555778793326316291313622341599551093972423196446331467436894277784345518359776162868672713770780445256647342707091266608590499237120073344629358910526751183413220553498903136217649260237688708406862184461666421321841722221428732115620886039372230235831183981197066560083311920611793983812449478923293497828615097315309942075641470621153189850518188372880567304243000579547315270521378826007693339344880548792988785204983435689122484942966286116028940128235333856409074535770468835943183235907374140427477062483490541845454256484504358562690959422148760098029160133436924528282501111797804207039531924464717083384580221045803633130489192718732076553186086016844986408089370773205930989308587512929739620100054077084030185487278183770565574896620608215243767746011017018327864195331657934460140826849023990322622154872980004369091911480493111940659585138738616108795747484464339531029286604498492052251181115399134674077036066333565499874213373108572994438251259124051761012360674738735005118803808500805072197468400504230648268769470006133699604970590209833880711800564737709748135351377615045656882059923956756712522606668909243175366811574523361241158974632866980726697460611417816148822812276917118073120756808489161890838242662132410303238924706335598276698168061256267262091472482101573828421315053434196223583560095085167127927777417216749616317295968276414341237496290858613605045701694840950013045579164260419889631314271741520765716799458070182806037415044150210085732523986622461061272659171124029705187873884584267228675591565180343807109394439206026049674750304309225968846405414563503092499730893069607958997023563289465290558725886924740794727043854635866137594128455685041779148739920752530669797094845206572388743429661300892327215871202122811917191664585174923457365538108271770869091629611241264085660775739249007350595326227113507979482965435130966729769284189984901113154706961714367233381118026802681555369056649366892454326728229458134852925812319612468272802511283709639951142637384223691791326683089300063470381793913974476695337506147436932955035663914004268014509569586126277778095024914423371356915048155568892030887139540899649911057928897407677846197002507083747756631890796815461475304314807196175853105525836512213916307409517055706069542752074633708777052652988172593904934927557539215152979282236844686093469888757430089066984156892268578044863930566234200169422086965796252702224603250077738379641255370833443027050842045555823814734944144602557747363781149502972663121497891813890136516447993996254083126710672050972427466431126211007813521304605196315674734270167661911897190166235013577950295434699483976751393063036905011482631223769435597692099562676142024913454696387394145991200768711523612969997788841159107490554136549314117300510357596796862392626894554679793782986627703772808232658381949011424813449919546941907647411991391000945194673012810662546110234722772776846704374781093499258498622987978834427145621412354786932235410793853433207787988790419372789605496822912585422051878901997454817788158972503065060075756469086001275786564507507692537114310395150223620114469291857102187594857896575713326080145338590343819342898372092988037777124236485694741646001033769796077429470768240774364877198689294835171893604249048115999965710784785978555445617159574346536267135965764144795126926370973742599681610248496618750983098809886586038168031244702595039331750204532547075454701622829368104907316492168974397870110231484961223148551411512729833780315495393116626242713858388050706446566460485222753187912662401753425188959347038163266779293542692984170645318569283884033434532734325013419273072229202952585833073690455383040073081811879214775796003907924277681254248039102498486666636824362084261544168366949018308610155134608608722930042837817920704129522281533026055006983128429920343673166338544461294207598106742577289114185323671373712322791889328156090436802054458900520800316260266208741708301881527420653813419494680593690672942266803371888219909877864637529082525575139829673210749979414179444940345695970226689655255967966626969668787351845981058528373431674227355593303703771952432023030608818918008411661642820332884889602371317527951622529523042709145463610301352412832948449232936358201727114407358420299523984537354524615800501889026108697902186518650781564283299267302719286099873196499295631980050516422796912178248459064165514482689197908638213810890210888702640002944085496927444442651723459369973636155437859494191774462410020937500569197559799891991748909204387815252019602393406753179118683028208666594204009433960512903725294940316701328001404982436361014513018981977004524180898844400629398046502411939727121919395891855729716090066969658059031221446622114991017001735051110853662876315901959641409475367806085762832404996071367045074476888227327821464942622339920207200443981025503579466010928874850003662593324157948280615616557322136550749828223421267861576153120976054403955675023586723864912012773839522086242382823037836528003384338321075165315827254949091409203661190471041970866829398723017355027815013225316826963925018054869196624994485719656150848114933422368724209060754514610325860224444483834000459760541603271714071454443327316282702106800441187529748504080479842028539781657146259389941971705699219722689167404348089348957094709099209041825827424508043158526525274490365899882537343414911010721526641504092139603925169985625473589948070348714941984512541033434345204060180816974237863735823715869077959370403681690054733862333334620814154775454066850605241859359417733139595634971443217924299044797040451064736952261650817571452104794560904028136219392332526089986608639970002148043053090659486603988953610363528418584875118995039831616200277127911338674557754801487158344970318569547938125600978036453499876279792981125836759246374855931853115669947471857696374673851575083792351955018287272211514627166254053545637543898101705233545883125243787290060919692474660448744015078741719971520280507685454102588323392864095804085420668298306658685823236301243168074604837038626572115732778680939000995093308527965675960122843826868376902325748087009436701422629629537731664972068836706833026363320868642775896692175024967589535602527225903479648303669084525939967687743468976075555092140754188828663858218266209614735343904944883258059761351420365561136139895054683006267004575001228629646052058464291058878019287606398918703110050457759992057999171232129784554981337452918555368633745145615751254577826817542815785157440124624109361467292559741544857184018123491939243741372594366029563275232113358935689892298128495656761666287851903260182202273275260835327492463093968441123635594578576475843855606028122227059177631308224597087845939654562400864218870006452149244103064631523233193899585267555676653341987047948025194608022936829388705210955217195690997860203854377142822234463813200124148341688424491698150533982852079492135976393361702901165960266433163022743662211238721636460257208368537716410710060094760108565449522095968579191590256796004069207468740237106686187962108194495949006325517413100840388574179844340830302742390263651202375314732876071627059872463636355338923242329472276524882228938262880319465857759728533802491449680451333911685495999287220098161619116094988274853767296839911914931302509747198255460544193280881865860708034187645386591623301500127848594267827059075759293413421572621379634923475000013239498448589716973820133800535867776335426006990719244586367627323654070827547225849932334960883762276728765266909622377939363499576400992094046841412653682732935525962004973016514011578824588376159472507050075288245559691785351882095057240880780060345744535524797371449927779514920809575377998231116683093540602998579444846084655314720234743878830033314762412774736666509322940291763826604883282603748630570733513413191347997928609815492064216631533271933054551467284647856134120995073656973400359284548156977714124262977918602451438241053601307820242604210826499759537658970681262228117804507856907101709955634827891734540933158090473378983909390790951491711609326535152801311777932370847290397714427330191173327910493987520206145071067500044446832130418181221326397484164749417530458704806690648426921554880547457898316145109718815230209096499167819131735159486211210108445092239596777117338399702344642178398050100898267705896313055249354869892636969553966512222030606155890379302118039265250708828014038095059685909635310816599507924228758749706115785665983624115413688188715107256930484566718514903614398363683912429538326892481322591400996818949840297511506201613109703445123953297103470066116586757806747528512250359974329671655909871399776044640014413567953221599279706950695530809822125699568205728716106679754101270365960196332730349640661307608875424283975756607381120080475827006215230762325425826440298899613656091456755028266630071725958771702892764494328045946973185571400381421963576165116766060405470663591698277597047473514485955931679488078943806000386770994726592891415717058203377914416713695002368378406522523558829078828822359844724957376273179026981508754362453213887304310314211135049360001213664558221438427620632640010442465649157888361611358845792387881415753948425660572320656845636460569572201350473680985709247343618985818325311771268462489933150587941632855072226683135774318343825194624766374328974799345291312771098794143599511087316036533104846709677406614074538381141792788663075762064579208157345513999893879262815619525440571296893351493299678206887725948179671950203031566669638592758320928856664160063360161585860117339649755427943344339985606049155905784945669927226854666298620535935353632282725700949135769166260671751118680626824767534809603093985072179909573263239291252941895847298791805325904120985566348780561925205466436773813566835973463401900505341370895328063725951082349410953905391898742570339683064789048732829448759282183547558811271405353696494830592085271249267865214126275341276859634064700864062308928195980652901046667971537398177715443170862344504548964745528885897872268673014501090193743812693188093984937900927954523419802448769817543184021984335327849439558664605687002499402991046824255470570343332615109503910880356184891426018084641097545879140897230670039783598092605248624973249203042148180667960074763931212578730544963319528941005701162808184849457959759751518767332903953224573520537132089360446805539109667462489341489497498676393159815704663067414914611099014574120402027309793662124778162341525001696777652086371475014311162147329368023212239405227234950332046596287976082526224557841434982646030186778725724284590720912481077493828279018105278698075294066716372131916854632742499356949536719149946178333305537146411535773998684781133990199065347355311282089754551714430230433835489399064705676451740960706305551047801712682937463068350216566060902725121338617052078046300616088709238823103323498130636617888234144644466891282204261583303519729454218670871549232453930861541596878894183907431262633792169529972691869937059827628342327691149944388848578151937385131886041896450818412393533800438501366030587679568105116856200869244982265680664044375129765897597900723486209217310243335158722461877709647292629485262018815703071526587755943029069819449888340053300776665875205079638211372609278435994275067171695516408808922316573793823989395334432860929351733684852953529100817385083396384479938940361054929685467997164083200740817543815827924951018143949323488678515304452948775128694294775464051915257742709794064870453407555968658227799642851840326603729961198222995703908307550637102162064706340503185522106043171518988177235549673211243997463121736527107785838063951392300622830048605550892610156434883251006310073674406330687861746491753665829114715449364904525883206506964024820805026665223394767980613288112902447410878820329771908930658026275582076755830717726971039671422558074567189918232293915551908558880623792774883456900839784481458656467590604477887907257729576144459866765013447521280433267482217140239198349807251265749519419883675731046184851684638731769664721945129207459080848190718330693986970813589853730333197286508499699090488014423874995298558602709233219242973529052233445214807810858329534577944318228603847723233763493927495766487351520126249979404799699163569098061557913415895188032530861321351081126772515616425902646150955034873367686627659053167794636567196475062008922033064882724869449146237987355768470940202366367796144269627990326991969404416704647503917607803859397504572803971312431009057434858595706790774399223165694988378888557671644155521153365712957887646699590751545884439455098096210209285284704958484829865926895613145194555526046654221694675107157316680554603021512778594092325886997333699867556370359351086349278353824642865365951131001444279355741197278596235221173316870932927712225982436654738805328725606913112649812666067820276553170235673424668905374842309601575517281887509178943145403336939130253824715941432690707111160757795334377915990193830758551808536362144471123324213258626341393977122453621052391120905231344848945610078001199577320501314618579318217361435852249071306347886842324073070675409025745415658158186516749500331269308104109793104118856858865112051582285344599413546106980649841769440801298286539541222020433794713570918614963664578310059819366871150897974666333678845664611819240152200785606605613959833206045513425081442288390269379565350286788789341337344109953604300943200566901873902352561933864801362190172266792335438267052863569831062926597439541894231364567523000082276765417730796120175497690938108392627792705440322038568973572226448758216581297200917302838618665873383175821822225537643696119743040297620320124566135709774033760629911370085782333187605799691640963509483556934049413161191375180426612849902910995240853732701898646813030346218260210959299539653511224860316077684909757984096042710565366421715741615831988576301910681308068486867012767799191647609738487058532142509968097944089382822721222947579873710226537624634632413818675912250541084642920125961161267868344885976567363647655546504474336180954698655749136552481535105873811100639611460736325067452192205505423823663382643567901577260540774142601640354624901073339492873820637278530923938504532626840739323364518993713109321920184451427613877642802653789716847217945683912977319215104172954063286574389832740753740912632493620046908270730409327386739018287287710698615546443245308703135700327399592501041087543510318245203721178696265155098855956925395457214918010087458521707407093050938488659028647709137795302641946477212960034610308395355004928236307848792563880308660516428355969889950741970236065820640562099956631083715240612153874208106356895002637948473537307313019390654194823291897222815806937947594185910050294204186215272931444464975404757673885624569754240824808924100876497851428200315735543942322261857495376378050648218105425032990183557441686394757945081553386832611411401436997415330739771666443923440796695848702656657759693337034383160723413428061954604909885239913910301656012248536324267917042758869833161318788924210248905181824118156727982001734923340556750738556800209608495510362984494413382339346939108871106660354903360931165363735526768858128542707340130698744264513227601599827474041789192967850408284238394453730122918544689555966516311813492752648658965240823040907493352290497090384816696875267035141893135892560898967509301554095299041564557049779883087788162631748267686970057693024253774024953595787637233109099538045241503597359498257859551833000656415937048524659242503199483697889800860383945236262275305800727963943042413898718742170410544533910169369247468226617815344641572277563283018532095987853537002497929848889581834004943698325230484211953592431798041239764168363813198565753026349802402568370763244179314586891657188711500955154804338125289552051269660725068981388805717082216365494445628283513183257300468197248580114714230842011874188104909303648131136300552826080415571389349794236498230655221489059999268369553394136183400749468518411226732443383946879179953584862523530223212463768081168042735503087800341707166226212265923964575787055354258346289357709580840188051133799488624256194909752583383173339693404441503734834157290947712860351610842458106277667781837501324524555404334636823261992675591292995237622114012313720122240860476286823296271985120503295767933967569824740457132055105758920780339794160086149371582175942597724317589514732565828805782684486878795819462215711136543699549753628705685011489356812638875554618820153900198322449530499410536550590365602768819539097740107859961068723106373896265831094180499700567862492703958249890935558337075231941101879310355686141534078152369286826865871839726371320666504881256329953769270244377215808806294556841865653375517896448343365100383111538107600429115355079985814992147091383511750236690964469761496335720751030293274529810098996105873186404464458693199622532003717919852942246090957289775549451162658287313746060683776031189172230366798008560937171376897769475669069014288797145934659369864653724817656823151693162365419326807769166732982830392319353011804166004792662010151338503574385775200339122921185929665707526387028967665590988560708740750718237103843184657619572436265943721535318220422434275977890742538509694663475616075429234841823321947756404588816528919896357268192566912869109251700739608178091775983145703208032722574668330077736400231473838906951878668171530123468643511260379728317164574130879240310298928154269190181439397274087139819465317241260852691111154613722320239910292907055427048784358378696258133650525986104248233277144924434740204416020266860024549638290090185154409514860075271632250635906909809077425118675469312282843906968260222684663026766136255009711033048062731630137233986995188959292907032801680665198088078928347949615774705650026599053129928089943471065406602638613522346330344866967476403069406301585880702354689738274084162225191061460760476064948454450159585672152881082980232738568752774603437051808943537015850457120317810955880018239918702000202338139440500182720865784766031843615298242470074077829040215195270375963202470374290176739835440154542086067970934518918437325153906346218741702005617674497663603328225440968854180536478257275209722605002764040225525693347510211266653663976352490527782750955290283293320753173642393190589195711594920120037853569775671332251494268865607159746801497829334217662630472384174611069408688233616221874060054782571650913641292899577103379228562356050155176188182616970951695634952056654057575328538811363900454264690516765771500036958456573060790765744652240367067949797105649903481664435244373277220351678157663293972357200067020415258206111445401929868815642549298489813894035055944232295540791041582382319801169499170015821907405358141855322195007854832289197616797022122405151777973204476760356752273362475707459888330105822034546699365370904816034333356474882279040124771254298266411702521574379974073221092538600756020927509989726651967880777983174710018876070753067778582286096033749735217582124122950476726609283112990218388857468461046786662852289098724611490748839942707423896080402949852141389369462556601103267897394555333157702275674234987876766812093713462433883646369437964858396282540132820637741143866353751564889945823223627989925868850646032319902072177578625252634646591524612772257769104242864555949372073197797716441607203876342824155776270351461463355587731175207247543442906317477897375460262872052636910129349471584550598211296643433428740681022042931274887776688511542638247069466388568469937267614385055950096979171832910970812073531228216746103077873388961712280513046422704176113021641043834634923778805749527576504291005962090901421922709733883767376990420759342250033109613923411077395630148333096185467917188509733877940508744609844514782001310353080760320769143030441816533570327240958306209789963184452644873891622650660046090822940686662596239134601729136122791116455885388647893176518001283238301145757590385201283087524747427942868875573331449197268871356663861120316826190728638829762008534352501036117702544883609208045695928684697916732543334478577525050405234639798369936783422417345098376963559890068666760108983803996931467218320328539162484722194951696112138394252109510080704702376929899627542430040715327094488740687932174812377266842824831543478554125526629990661947250395517535988455819997386445452642770635961049885669768187620401325143810157337925817176838525724157814392763293591370838650853145150953538838565269529162242614163312656393819434499127752877920604080561921297048828376977073710637533904190256471045176646815198280984822348487204663727235539021547031789512945096484634274483612502662656632007864146157624966499971065526531463248436491479414444554005545988163823502970868269220033147493338855045326178639787575583093545352488201981146465090583839751073573473849101163065514697734107302672111582891670865799097463703389538270209264899896661791099390440021556742277496459999361591738617936890615303893564789449553835055346468870017747439190367184871038251141540480397510042827770228346026363660764191984724082322498859012506004704476217644112875206709366713380208489394333553898979322509475379475613345927192477384577964521869435045542571042494194388451597795891604347741902248740523593057934238051170897490305786810533102219589161655831410207102847307326293504405804435334027497829127493995277055512606206876185725563867717194850035503325631631372202371854749893512531090596162820200033672757917953245039588099356297783289009642671272297667530094634036629387119046615943133900713560019121531503998122743760192535637830065639216278296867618817785401917514387353723749547433068467260960388677639139404587830481181862425142600267875122920859612282349051749482713448199186930004879320090524311189692721652357692150998371146857422876783321142634120188811904273105294061521994925599198854546181198057073686239379417151953273874156029594363527642853633389269069576759993931239933061932423017639546613054304128445078769698350221288910395052933646830823044332893433585553817990307037367708047711596550321572991397214090749009642791898884614034811927848243562981781248812680153107057957393314331214039926224151615607037034449101898049184809088650577646821658493323301275067137769263155483399349306546845647957860879547101841575475798203884424424551004872072528841088955092780984944298519146026195061144460030859451079094207513983434282454117399378876999182942887843653527530879712511978942452225366542959345009378687812505817179286765284189026622915760519207633157242870327972937268738335775715235659599709895338707850582111680218221250809985715147572676694986404886581381015164389318336294154210186152444582010375982404729306827284262941370081484166184478938405310964910369090324739864392484911118762678069504618550002297503211067909143025505560235777444202368467813354912875079525379359905200355732681383379915585076055634241950582289387218297274835995434182517758941751989135776044731987636479415494561698067822553637285222978287134588766375232154951270259417290949490904150011064972836547753863414507433141707304555358655904933844746130292492174830963947777488317842179385557772862536778885819396289862388019847558612171235911675623000078738120618238009473628454581579324824381191744763782067435392531456045410390573545932954824471849469635874276457248880200629239711123547919178108606176565864782557199720499041677045109480019731272495988292839389358562082455844167323346637919708338471781868213558062446976391140891084876469102242358868967089684997420316548767103683948984880401944839907285569380076224541710577350375081716490553860510029404403128044705277582508270171899520015194603692373761455903549211190545212676985091807043522984394623831941097041975004711102642444605715103978766437729972896029305718526553447015040501762751896275644880854359932699402753335167084304326232688390222944018850408427920936686066393077189717243996841895055639774709999055893892115514124465891459540477794026028097273171773772347175040519629067886114263751102813541505900856075400949269868748787971399730812542149466699392395014179869866461978579359408814952313771228841429891905491438523058991393467006472766153846147177024797693423499653698974848394077777332111327228600117411438490130168171693200546318484180468927223030564294637669917629822198237123280830610235587390821639132583352888932857918311953076225994928996297545312991591115367550437201263893345212876452045686703434945010232872213786704031219964936876385811234217310735447253969414867710737599956728160372444433651457200365039596926338068928224002589323857522379199338681876254341706013114693428773371061669318316636407593807737305607014528677520914031198674687091623993245822631792413439232193067845512979763750378442503684018171936878123480946658381324685582395439515219284178417143121532268592205816257331663374049261079322225906329555144805085038531389421738529024301780255995623124000728891948862858095542870153634537163575852846947556461554014820695954803784548514347214988644254766069077116798147268842885485877227536014421769877010921212114773646056257604969735920652380025078442468466407036716599654324284706157075141184376248214123043689717098196294667048919346154020540236069699944257421203323463688854538160682074339809319634389706793174934946978158083278429789562467394420763441294482316015902176494657704220800390708837446013887994452518156182106849618038265083848996929185131653017685742895901307981838668308063150099460554186052059307061506481598558231608328649282376558082652896544976572794845557744433535504658622710317904186113132464006303233418733698145981926506645222569936075447649067872436540405549904583613018911358775960042561424587991336100274227739075822148221527770650403872455808501975822240585275642744780663888150050425523673272284899385472108515492249698519936055764549686226254051493493403202792871533982957270840916034630700923963597370805898217563651281275738104919093436295400094398465412742453504447005615365990746157445325839346334209278547322278557855268826296645319446611170198605152333321068796278878555593335150302357999634660039912355193013552160126774481347325326377243279642052917735789497978440948944693188270015610163614945091500658620159637358076903008280008435275292772448066307173415480515261034408609704410003931934765621254215419281912151219649142023777918888775601428246660326750856464606845795370170487434582959768114624691638477564098682525543435111954939183956480398493722963990381549200004133179828125618122109722702580985564400675087012056050974822555151348118220068301842155184515432758565750663368505007025154363142216215473841158614562360854988287143112752051173217181136245455314322694369041695627246259121872395590131724723073001941071753728625944485398510805300675842482177698975103614779252370092824621982065181815408195874250656016717627725457865780775322476142143192701017505965577623764212424709096278713708761509698958020332222944515489559874930754246324799584349767858347172988525714764846087657540974630821361911924840454532277960645034887277725792331383900901337716515879795182305038677753549958179624855751004096145992054174098508513353693163907252946848106506667293435374439081578955764271569155257497341567272827993628736385527624921393108136985597227065974855414886851864521192449990682460067655060161999927720172576127672005960138133893342740351448350166011240343231284815874562359281317809250558659929061125643021278254063388425697088603467395695836200044292363034699057302397830370805859397149732248740408705571268417118442508636533709283306867034758778716448285465282365134202644102636003858842196518810582696880358668358034435587039034834333391381286428483696072335383005923839670123649401863408448945075072102836034290165602685380420957490376307308195340121330537148767310009051897434683778449421843212142515421019114822033301368936950827249308810616063844446966439224376742255848582001652380988460995003762655450590460473108078238743479981301116837219820422144102217482190133948145614367717467415800379697188333245336001287975919103398287422911989977071027252653389208845477664454568953933165487631618814901300097059934510025825648036923644335151749317737961251730133280426716920998978394029857385126833222817802219004531093431252263707586904563140688876854528530455113440472280625401689129991463910889902183250478735736666958551062862260422391003036896090658082863587388852450722368989842380165254346947602959917620008826263507145688542873782311730533434302733918454112467143927193495047682126810475200633739009490615793964641288372931632841856867608833662215586912632869097831685499987002516555099732460933064666966761753372809074658920734475873968219968328816591685796774816658717178129878363801099538907448670051852859055240626623490045572837014620579081538485792782760042205498178341517513638706315342276442090069348492945381920973677528058909949697619495015219665059880862791769506796467608257514074572119094610100032343352282245163244669912402991514461838275293104132517814920723050062247200727455487227941765334455300215728493801745904711106285773490908052824501541579713635875618132151211652537633319217233619244110075018305601865076201426519916342422269342690233554156103867799137328722449232123617692761602612929344047649917715604684213096724264938267660828802440756935635284022945034132521668662133215571089712328696503015064267419503068675780820438892596666670267854416585211443457133371329242136194188234406660006043626544203158611456758722306846829989852783163899533761412903968464679351171806735718451310160667900707114241400904147598069691910450398825423150202732301230569800615636205001951500531767786435457048651431179871302555822070680880732846196917715297547441844639218828338153237430326076484767024037674950745462208084085677320043214099689846834389579405696936479102142828255237389861432203866937040800002457173979819521494198987028153181541857768717226833394718547033084106728936073725595517039272009627682074603125356925698642455767327820387310809977634827973287171511950789196454288493633156384851101081040651076740459142639835875402643579609310928950719152634163393273778224956792614351713091900260330569738718383341023994359054141140358127808225645789320222480343578207841181311809026766748628744370128545978902725915888966357352941187168118916122517417328352795453583249519356374087250775808029596853728039533960850727936768658675507257053789560663491914374683598179941216063190877320314945785064608718081974576254017541974222071176972521865445854582933509459912119593331575633782391315770727354333856559406708051504303905321621167703747777807212813461579458769521288740699655041776090746914845919381735223257253918455305519155590623500631865688622542408419724960447729092975916407043311490009259891185791170900973552171928102222657646379013747427590122074637656956729802346029964744914845392843845870869151782307192110334498343836825441406902176564463983357595219554351741059742923430062665512791147635672043186177895480144792578472318335596145302828580001186079533147827380211024589743630211406406576055227033897364735844435697036972184096461394656916336223641078469916118464944945372077354543521469964066728754939201267051331067721566991765106843086723742636447255924868851439548727798603182855648204649966580354881780429044534218074538648756632809023358959241610801875098485065157571574823678648856698985414783741112050669742514505545314531594490004102792148701818486919902294106036790524659108950059267058593167299057144738925856575225049564474412246889274788849484944197925259216570340847825624841859359499833962830301998585640593333007788068881227976694267307305213265666213312181370772297300063677563755624856325340152776229432151244683162079474053758764154789740413326730419842941714090870782449871386817023378726346130286873378748260534459842478844991072062258524340696775083543885592323572928431675017028950519895275680068099767564970038818935049764878600572017216390099088763802321460814841778427914322567296928735566765806194809086430756296243607913251135688881475875399057870430510826468590391429673707738902521510549471978404507801749956874184027109725428779499727460814178495943361224842702057313964474783411560970696891454210957753327389619601029590642617930038728292499283324447573260981787379283055374248634198916617592395424278177453505980443327966818893944394614253563627833373775718682856918775527782462776989134520235978358234197764545333486358986093167481496633871062899846772950941607040477866395886481084085830856636908004232646042889654585009631183106484365800365399264175176312631328876899772891947760068226066645650741384717016737517857563632522873372918661884483410931147483612114137903998514816121003784425534581606561103816096206182828873696353818824622986154064678604468414083103402476787175557633784902189728918203929116089065905014719058682555144924762778949657497583059870576698844672800903479754894841509213958843862461428807778847430277363633715838744515994021030899294546074783726877468750355760910836802421867577164385142474618637412294387397786607166241141899797802274364528918392089676601527486379993468421463941893472638253896029377236862508675075514595770396148876320877651909608753825132951824992953801575253569579444299590366526378787153248475417576829660057733390617142012100832676135628757661226700336862668120143608994530406900535769659920892866642837771574268424546684883489842614647991016873176637656791914872195735144175856228035860450160949010952635994123020488562555808045449720926149458665451635520485252254760092286965419144981548894956294355119377543026013374514061741088536659739714016275455200268610882750065423543625228865793454712856259768139203419715433165571310053257201823919499188377667187081094661690433025507376398570056468626921409367821109911558909449428757084439887324952731144639333907351002491295346260536812517777846340612779086162468048631587376399236554977089647785652105011194603673570003987797934065711407025378445666994380877309341010948489854663425118336695730993443071098193405280691696827935637591431926039732757680784633945117020532087985261165819821060930039316720656645268033660725096905663457406908347101674167059509731233625853476444309635299697359002667595305014156646549319913904813495090844681199596665185094870516698536036282632455257704980657633748680001185382805471560085185994565019722072161688514207935640727067547201082093030407960074702277297566023996031568364006005342650396428462092762843424017965553497700043852714094121451383553812766120808188803479035251755220980277665382439899006373495169158510444616694117980119703205771046576560225960276947489043395253204587429998783360145498094075144810201826203423455135571452314784215984564801094575205249337093159428562955219350159498331748020111077336140598566591243855384776191672506203443441992576357681555240751149387308888835880922624420112308474355377968008308130432972509473980972996542782281990848902695919318785296133441930161266914208720384622281177663150150789296513796576904149507584395550149219820829648310825209284804927418304689460419026966124568812159099725222195320496938863083522010862390763301113129862301606021955034104455383972641013524591975421905296819696949816629506440925755888709156809798386675270785200798879289956887161026331996452294160219288917045669314080416081270724387383885449050913604610655461945351253938311125376609647701869528421449027182328564832687165756514535405481879806696390683258263341067469745385485729407017099842217481515902720675140884276394764502589794570738827255520795597624736316526108636071512813678037163208686668555150189427971181970702978817523163545150833251741378969313639068376208313595080147875725886369581304162274426801119919128824484393813827335143514619645530648697035283547368730809371586905838185007511186019455174543622566841787800694751391142119644611794236035513357389412543212798798659983297941789126694082242088688209756208842447031958159774922592880559722482491815907932977374360762736320146323194487980604075753581035396487732968753526902609941361724751156946790071483453746323146393407810756142755069079431451583655064933500592772639084220722378022243807705743354158673351073531936979665370863792173856838261149696401937471102260689694299728759364483379036336399292803573995454442416794728254719026089600812186617304715298275226724345278535667901757288249603019301333390788262119712344055370913402325687411666700463168298567717811718983205928973614150152028098807051451192095189571694730708634208962261543348070359569095622467923757901103441786518221211687756053264741273356447988657158988427211884983002658178972180821844070059745597556310536729801797966585058811944758898407916652945637460383001097344207170506278738143438848816843916389797700469397414154951762641889226435323779758057792240257154952470499830237739328083252868622306839216737162694429855590529200232317264355283779045325404261728702676964501109761928116813939693159120133482710085293933821779229420809749258192072847950398759103478196622790501600135377940684039787107682717365549079208406733335035879449407458740305772296338882053754027914141548942934412247179517274337183476671843410431984865217901447720083425925460334317290230874292347320238829250556000225323290064692345620171289443277442661243614100613537162657608878671775869861414324728140270255571529545690031460299312246322503285989967510819870666867918531705903377721408426462717464161801427377288023224478381316639384669067037144332927775076739839108027377674448096337124892162642315022050490955278645993334282832240057793192668138387073284575954626456828228217438706097173909937976126678382361611511974892428523817088418243805843044191009760463447286467328645557880795487943099197248936235111445478798282768380020498760947902006190695983775689518703448860717988288719356454799043599697894557418344392337321638266236547306228813450344978505647634517781168181796706927900658415543317967070419902431694689227446252777440932327586525851003517076141961998307608525781652577185231032566207336381621305939363192701071188589218314505528831727951589448433671014016726329777086197610417074951799163049778189697521735474322388767814102446622157157487243924391449108701952544174434524630182160287215044390137442732369945211693056424648705134826910037447661878485805590222509990022573124571804875836797859818903232572950338371608576036563963372759356143243145742766063259290794293375630387591097124709166943388332429518482932052337823652529422486168295809122670567716524191500108258852384522551244464800313494474980053806939247013428620365197826221173125227870267799035346142262729053420256075061128223604077923673023036794877901506003050793644647067041496051651273944378972105225721371913005735927337005607609158011677022261991817639095523884491241515815273227616400668873755733754431517704257118254939467055842139778755049453495794482135694393811508571592086825685760404165028332303523011640571725886019073325093106934432892065372451380419303831010354956693882956047884766351294871559558368233625168265344379575918728634536705244645504324758131907850615008624046986850660322793389746160023255620495997591741770288921257837542308276877034225127513435008742209645829302734283455711933102733297068787253741997812159374676564258513886807480731316452928230710677976528088995420086329546257260689969545314930558524438021204977254528081707783681199351725565494361811452609015927091237340821408628839872300551071752027122066880942808520286432814334273198326768953624382992738325470453609557042197652044702832613918434524668591208407525688733071913364615644639877181242507256473323713970550547281065731516217537442853087728068104302812028099226129795239544521762679594901406859615010787802121426105055634790331182328188214545493868455439738787563800484305572409057236121312492594288842970848815304186576182903364997757425615690373092893523942005491573026580306032569236615162698994812928798075564415089360123542425221343818031523185250505987888285758986298525112458277942722107177715651315298588082094825417478740456441879340462560445356993525465015577951144768286162976230109505213234830815181364087697987898504364549549418780340312087177264041262671366710395467839082526330288419406320157848915187780201983130583714270344892825736663206820455022478010788261760093015977695031708403197138364110479663255180378971677914944442490231833024291757166852319573631370800127471557840949109534670620348798097617375763922494407042599973655587808807965070117806047233414536785139404734625580005597767259045920261076343070942217873224106851830393186785438628863921083175355178429182027099537355934420189382661183557343696255218681062633087159902366485452583356033654715936664617372578078079975040675447840018528667138608966285858287830422662409204143307598318678005843413770748465653599196847484469365224496473172244657598362528301871486140403278367807461554412310501894368884566026261311078914983874363306284075101240477500333819297173650122343491993782774458882390443965414952746720133251611495015991273699476405172976487277158419022065310025216908797487035629569794550961645821983686182684083559544386407577251187123845605647485537516596375092801293444632184611295237547741374152482324914398432196088660702119953603175874492923173483434134229598981398568510241562195919833533018203622759645497458080621718905754063049369768231900807794049040793498706187335742596071722775959038068297804320690336999863545439748339580595051321670638103294920800815345625741485025085718706901716606638423696696226783041020948486100937738433006242658041249494858036820924686385442633403718866440505034024092934851222406581106487602527942463320339538490712460480252867691057253440341856041208712141792041615916660620009418908184537938558653570421418003973679657839284348387673096478953749879711346732151665389510797126217732163801891801905852424506325835930140560872114285683201615844260452490637129496062382962091002532819336955687529558261162515201319598810312595324392478252945705310093207172009928520864284150554690227034584290680084218656354812804117066385807341240943396466145170200639541084848137508348880057238110481788584109964342604361127984471750711202655537730968296194564517671297907468406326892429605964626758019658831259908639141681049532650460775256839646525151209993820560736233569252543272148918718307781649477917664739200044422746171050451385488744853652241956135178685021596441995577731515209080202837332068801403971561664424400921424105192845819544083619685884460282356143493859444104777594577614056878673138920677897023117939199922419361761551706341127395402103049751963364404488140597657715410802951193999064671071545266772394592516782042962345019362420408138904463366584144040571701088584110772612853191167121644869058649091750800064817898181188869328731361595468749531028680801573179628473453377379009356993899558542947203385008192022740734383528741204844440629297019965328564465164592495787983502355208159721820305753756363699774605352531515433463826251632774323383920928669291027361581135216181777919697833711949871792606252507098168994336012221807964720937185772499026008291516575870282282846314396124021073529407378332491584963771343333619363653238954621239429902781902922478358450140501098919131491665534955303055823409217643015546050587265866263083952314309779741056798669523264575853151326597082052568244996406881690802538624822798231923098834067745261250516826681520195642800680019648272695288384875990073679245175174194705275076861403845824892241036024175012594850076274203205854142712702844197894468652314186877267013923598698999593824586105843557943998610070852316166409879406914402287410746390081055610908332273523179434443334877988192582398338614570289693214136719419287339395215097025557123082229833544062706823683329828411429776272553910140603291027579762705527642892376667274962753064767773164120436603694543588680281749135585827329613856555677657865036163125432290909395973144289641698549194123111788081770869308212056699600499182245032975973785573411842164547325810040727456170900056975828306101623468753018310756081177209916407564133148033236949306797861125178000661367570823127980387249189589648702209598003550617538293958491449239353223082093827461177096166613617583641403343862391927231580880731956594395340163366878978590080579106307756978813652841764285071529882231107099214458461352636317281628301782091208316314696825552088629408028025646212862645559551323222496368910024934805791787350650170939742614303799170084273356890103142059129363453919761408456189041842308461193725925995192066986898962414585808270568625314969845989041081134300465917834266658049076416359884875334535177815966187208272242870009800772259080884075014353915946366678432259205711804110162718167859168920588546722610388421116825140668409737413047919980633078659754218067115686386280573329159984909512570748410127474679499786170747731291259923015914910877022312039823969554205720416166104188930515087101222574168586602702596764392089664243682111130593173606449095385286626406665497840436604245450295553962004432467497063695750052762520808494056411725112849350982078508774922299058756136073686468949745643860819575601543387983353037685927258557749000686354739672870334969798284681897601621042425367069797119686039151987005601867987750387927782067160627775468423644955434253793972653987697427059411766692771821446843013428427124905031610079213965812530923370191471175440477839077216420339381479502012258959905187239760217413975670612155849935036273060826086833563715161207758768446116221809063730031737286163157546512204159067998770361196684456695240013442327636305511330139220001658329354335310814886043574222719908834620201083468575326262819681031008282969851488562674145993183222459837938799148275602495026075822897272354119475476972662732263657299774031257874811400719062082836520066450225800546154584251316016454234864332992725950835685706565817619321635146377211954526638641722319558476268186733110421284756908646316836729120119630952481475186172495629375497395900477263653932101649175287928184534069831671510158154632451298937839335716341353846412451541013778491125274227732285250340183554206176555983528990168098869180252444245732625840715619388228314908687065275909988176685035767437172347752921623845126960934189934736051880648763333172153335821607028485107613210249903636510813834754321497061276328629205035106924991538670821171518143450847841713514839919898167773380302373961700270955241059489785520605924776950499960713011831893088663100203712424045473649432057557416125022023763660431237562615697260819510390679857734186674039310262056736620770163744750539586906821826121447257394848182352445830709483953750667263920921416150516799155802477422357137879429566795143104542521747531560490407221414916958885951457296097891725835708344805467129375572422429296766034524387590212088627800656835603203240003768066220984211201525748372425613504434759662298165541938464356319457640984195517782821114094522139923591082619208790311162835069006437794979370713943430807248644024033905883948665422248543543619430294092730208296816343433886309186473216903878924154115197466498668355448245610202141206262437319155007712809626895732708120595696105797840156785195968673760025456672024904906258602594483912198758317298706534705956597832993444773804124645433889855571814786582585733628085771861041486728332816794940386746602869725224792778120695789197550597810178227446916812711151042135112225270112223603795443665205746363642379909814314915145364553078906990578774052616369025386233529528459182182623981777901519161990902209599819698070746333018736376337745523531582585800854716398441093025872045955147721728631706829697346075124433841097340190890684765627329900829416172052084809011965891437680892253746671234294796750122486692347019680140320603684243460280666355706587866173910414791195268740151785705974122994945393293287034365886616759664411109378715256007788941617125013487214574928511674555680522593693697687537395928980009644786443706452488548480034904559576592643188246081316082605930832762961642555181670354673758372694312905316030356685452775045090005141503925532299563631249762164351905498632054946650136440864830625008294256330160173934941936277743695211217532960995538695243582964016799870184444541645288510225599813449970952251789966116175314360461541266188912606469635962504580558285904440722787106046382451166610397429350152081542995524428438125230854518755053086443907990359958422960066248716372721186875148608851624469233215487876702168350531053196375110170798180470571608075605111649535069841031025356134813159276076384001707164762244310432306427073292940541162262148858824062531246099125168647925280986254668962122830602118807405131221700545835006514387134792639035041739898470084160003729346720774599315926532381148924682842035369627264990754612554743969546895462496010502632078500670325032052478172831719871111746365624796168437529205816388333995785255030255949197759377297398688408064990838667288113843460488379734116056026528906015577718876212469339071034476713963925951944507152055923226618944914309980959380849492781512924361638198380900212672989019517137217676207267010906121541312721227041653959655974732346058481765017707402097948719754173211554603809401381793282939162479076706855846298549675090771563335823815943146095105876239690524877140342830313350416691616422138579887681747874146043472376896366596581007723963479592212653707507490182287121386068377788689786000261332531917231234846686127559429478165305613036651012614011298297016426028303233317467550343604748925882163528635070895039152561346198683533776178275080528107106973091002372898336847597040195865176573863458099162020917892426575590944963350370583363462098211733461224028567008063090762794284496765344825057170435883249027222685216363592912305422892628432087804864141797362951637518200936557742923095965884847959854713965674239238622278020693364478703908752133873980778871377954094063332412224610123714996615590240941500697307673674019543173051436457131988037029520100704667785392948247544766644395155440019492600285844512560199146133450032527231108628747551225463031500913945699818969501304755140516809027127900882052587258935090883216081894430756574467181570104278930287482967743985098594767939210324494378707308174568038376333579621084023180796896240500291955000642633958108303400579241172718401493781588953023171798822290427294738191021888107214702339270036438662064330661409018732282423965201914126007008175978247928441032180417576923755851492635630165129412174915446972764601132979773951491155221620465029581124887781600361702821957075300018559421802651695808014057862028770976934436040612726942907470395230382668671257586639214119848631935029018616197296198594104164701594612756630570927266485766325160081867069919205989289388293741516253565228656935494398730239574467354843084304509408543980437527723576292353750326770452920244832881106124673160292355667644948714007792407273259177167415753450176464373702715755171833878169197557056684905143815994770387546029329473886544596349768167835884230159775320109243629731156785926796426255533814905956391939973659760680043066274226085268841525636504990712671484333965708568570365877352583894991975481918525760092580350542046847718379567164104180410356288129655688686147124732161617840642156204762055864342000460797681016480223354453779857979902345615421585830003405040386887625295584678893719426210768408992891240067754371380371010611566424766753839485568289753149151946544569243545749728362636982407688386148126297562160253637496762129512284447442929274654575921380108085562286095076564521898647819674025357256404146127266595611817305314036206174213337217472362159873020677131621114252688089907172122826525469186562541340831904247803106655068729697695850027617025432335154281360407170410124456150290072727490801967262550849563076430181055640779395377774937188905206132395445533159810381655316006077407421865516201473618160249409817731938689167059115744944892540048880517616443569622071756381290586014672948458231790903623888753168142459258382642236330876847737917501211319275953942636577533095581629943956961204253260006316140011888003074268550761292910806974822349539770803529528692451215986518886760438626108258379025928966227536350171283656422890662871702182082048140862767363620023378960474142775029469042558651614724330767679702496660682431101045731827773582780886755509229381333148402214113602970038429251617001026209035314426596964464849504467128165522950578392161241676958932039110491541709554412808687152606690564284217626303873858451187085353697037973608202894941136662184784740647052492256988208186478956679294483040547937908951932868098858847224579433308387803307735475683714389147795601935770536058887724476815774812550685054898484832203687471226872665431586120473461948941866814478944738881688588379956653317165576569665381605852646059503378969694723497852326124264717461073610626999994651176206162308525548914148898866746266947670167752813219396916758628698995724893290311829713236539696838320262706902279170004282291495982728262594979678337474468452015746054046153833247814832472919827868384363656000428804585656586551892334767951698217979324119869951009381242225204250654183935644255434012319046803820995492283966023196087692338480135839818823332056747311139385843822954295154353800115484314927029178359515220378162024724151222593683304756433787427985925665048714968866082219966158206510406145579241184159276375991224428707721822825861898655450686922963286887273000399897333970593519860848893376226576085269394937908881171444060759978658226936781707695032725611738708739763254132025207323477133131841206016404543092488994879766551109692291043952921576664783309623404224868969575834873138072170900958834491953692403545723065020457904026882179839607395681139930810457631303214563412565395060525575779144331400993565909676426332500507017028998817889406658613416298439408894342298460089451309908578199258270469776620528683431091430734649336749279830890397794266843322910905110320517134821101145286259197215361077971591760858527838673711633246070247998568005325053964118382976230771408402227434233697140095288515555102637884572905101272792632578060886275114148971073001923650576002293672937098915813640106809413092104904400323567132250091627065748390770692451513469300465067566685427849385916685832974698584913090139016513918725998768983931081776730451461448444623516248934106079338705817480244926844365720301193009296320468250229387734446095991360934011431424062061941414595922017748279067071433148055754027862349048671928555449426910622314354254710968861673313965931808394762918862707921790474640171523859303041234893711168976549275531469027822813930756911890134342158732184302126670647867996294771407620796078380542944588496331900356126191901048955276080056977951829825817749786374478438195552293233375002317288956277660758873378292095375798418706536433208101038237130724674093196929483597848104985634688313514708320016433671937699731212362757452393004364400817146305817212626002041605803954997614098713593610566358411729387841080407269156479079236057333148623597129080774843380286127896879778643594270745764562472110696750187145602139619067650787119772113213731574837119787143663519856764881691542494767941177684259069445767175875787667340105247664729291135022560937200703790283638136615157670986422076930997372413738578418588605112908702851335216102719601842832450097917323389733068793564139724664342282292163016376663887965069610588048940558872565774599548502696551645106614138368878217879922873430859622658879535555878871164180681193256755492445999775143228020274428448928329682249923343787193505835972112372489539728487064114039084025253452328400538069950372907515823984888299696324605445211826530654542884057321145826607751417046947155175388482734914571716340090764772913590354418009806133049197471184688309113437129277265231758478639647025876497348018440262247171767233660061908392249232937154704561291099001944431460841491166800389219082570281271607769121846546334217253675846546262230915616818762687835952454092165607843464426719133018654577265048534663355816805061439713354069511580181165869843947076039077550698440774641571027274243198535808553588694590010581274798767200561695815571538435456628790244498451306845464654003035287516524321709582769011441156194136440259002762219910761528525854792225433163097592757992375062872470220724059503914245782363719522270523214048134124019390535197628818792442098166030851194578420267642202624512942670314491023874031882838625272573389798363219536407583253142919083464866156274031357749996477181786055961169667007128080019979809499232311816621207380237359782172717169601890117427180622968047535746223527873624337159097315088541081479069705428031628799960768877184653246761305243141320503859372092666533064120314939768854815682385842887897965810838287407154192438202591594855951510322376606516333105293631141804456194050643398041731400750254570493054140659405640673807219160033725885644195894881832345762039518313853570052608177265123742546898913916578143555963118605363836906694684670923811192702327030870472692381775195235518802179639974740366131216109363233976322110988742573915434947920217331230599412365593578507139949738329533839069359560835594439586282661519728149945431394063333149759793985004991869504728750070545266067281725405008115557389174533448055485719392951695955836683825700576654993047974717371887379963362784577414039829921633533481709455428488460910222589447719349402435594648637147519682172630223023545431566330249246828782151782700340848509912188039079081740282672002972294276462899387838380572234747949434359286121018697248528616729921429748360909988122471465514379131438567268819510377111374856977089439154447622901174352791027143906978898682980142229205292336225150976339824016291808333499410904368396353439988578204743810991655293439406000038277106318977380407089393633898824926437298381055034088660822910631489955797995887620183193060106111706045009568830031167570651892032679716963391342763829171283882634031012632615592379075237389339817187771611353376003045074025866565705301974178786029030113264775601355394746702712711881083135359886478274327594186324677637854305992551630300080949574838900682479730885126976470727254849705880691703304736729827686122252162877522519062570364390512152104121641826512543331505417358142145593313857099821600205790101901646748355771100654594966059931409667222512030165837723580280724075342866870882968602850543292269643690956879772681490329477056556493391224764151988237362417518593809403369487656772100090420547121319143456071414728288855688396060336899902771929213356827105832861770509080551867637016202463233111989275607660419450031599924442748470216453978135984833878992285051256735683232943007452760717218827660412083461715583364942708817698077711927199904517505672125202935860718284828898613145449872990578008192093023725703713390872332585370275472838510281086591253905639083883929299851220978038685831963773941191935835747373539481167604654652954117496212855370844130603129242703440736298752099669845495161824973748526154826391846036798272136494408818489772682769505558807139328794471556027128019820575091454196677253083209907427205190388068839348237795732314292111263353306569494724984886990810077194375431803904814369654664063580014985457724305956260383489330707104375875683442187395947324371043329990821270706397324564012752304774723481987221369465930453739969004513397174166372723363798046334395051465056045383387665093209246876323536429085999664534985939507883981243285956672913016169556452847827284161041315291641841768213158710345911869822201333244778205460967865812048529562226630958417980790540407480061281653252743642393960399956326238440752385578935366681726285717366805965973474234632280332230108093385383186818610412657475716339149489752739040176868060243153893150031820370901404414935472186766672505153823849875598582540576690071857952975904028830581818037772381355208657195018818954419375962089329793948013518984498536830705120064940831633083883505645452514264924578330753766056520101537740951482905416631503843423761709509511554282618077592804956284714581563430244665536987456191194327071746562584443933304313834076817229559891813148148074698072050756916812442407831591859558888411373522047510052520942398764317077614956840258588820913477257534782962559670810917539324375404468570343001725980045796440679029204688106281261827761479496165540922091089453665146591055122051118933095646557445449537542777021777215218333545731460229173881164070432774114154833666783158106543440493066846186715839166375349427551090699135957156973776983123472195162106600589833439293932888517573203483227537408667622535994707003517688124480892334077360411436781114565585038498277240962877472847318751998529927360981983699373694715237549683697814057688082317224183362413830493662939203135462202673661390537756339765606274957142116117361755837696677924161392025759473028750887975189902026504099977210901471749893690227495600115903270115054836269863385780422607678917041859163898005908208025859937287978850708680989059865126744725182162288247709594216227720354099019742838703470368257228969711745418333568285184406991227032111655570433942008464328540400162067654984884344885424133726787922814279204914183334392083627660530488210270693079326132956470295018302668581524416895193056220060338464554801353755461026270262920650463683119866304931710267230805915705225890833438381974407539585785455048827625743668750388252995926954520841862117261076490231922185050972383027147904851744267204244859566893816585359473587207095767592223549802987961212715172965153839568134216381801760268477058498752300680223271983369927380871285692754610515287968807526871520201180075442095098259937773657485549125887076510584346738812079068074909695561801137531497942521253381708349281687173625276887576736563365211643544645247501721635795735565032732203986880508014897772369906816214269747984062080841401535332686028369599850794516988972801346580260551321038231459031569486714135352880138377875425460801525368793438905521630313531657502075491123921967488632777218331850111956893825383724346374299756724950392941577774269067244027043795574362459880385644199070351787283982124650393819671143024231499815550109396133641943892898257717978871167430693078100511354532208630552465406660428401940554316987899142028968778124898257635187610869210234717821926210366356571245470100816271877926063758876451165845247972807876735403702733318584223046957919217574267776310972458599621527035755721624524812629713744949024573951092630606021925579304451235389021176615842443689703902325519497547910044928433351117486417027176245262789508977898288759298822013183619910240727840576808312159671308784770515206619913390369009255587971360789077544760416552810553512419772065018712002766159711582654058530046634369176595078976904812790167934382471663097767822721923979109004501374467525773279396906947589011421399037575603335126429069782627060709717857205773895916876420362187769363210909068773598524662806007251825192177934187063472871141854347020629119361564067344811456351874993318950281396936946063629202885977431130765281609117291583378871046656726316141535865069869276524486412937215170043121563209675370492784161232213045668439235763065386501175217884613479140825109561857823328457545788200138568364346971527343394398318217004863508673671766201417135624610759062243274952104709580518523350488834459578547078892680395668395872527579844122329039934455757761219830795583630862493990241063539571193395506650535386440794452312675343554104224615670172593916240490662160446219508163300911428993849137370079526792277174584643100977612348042252065144951765966961347851206456191071915033311370352019752857427649592048877694144208471948254345723445453267573494769690434489579038070820735474940754471769627035369461408459083255143589507721593986059221347702773586991609050802811359726627813804265113802128014620919631016420523801422566381554743711800193234493350760280268834177921361567364815559782227107421083548260773412819248481678206472718187701722322018313412608671366798044956620097356129495779085676909442530619049766821918881371108919009885100580392219309927451217438496843915056901258666161921456660357936796706177378223439941753708781227728266645433504243587149613461139298979119224028909220055413946155786548923617126050085358692495333007676908274578205128146509277921255174222578965289808230819288798485917206928480467220773335631343538160542574019586665629314680086574153361412584139811055930605057660366938161388198002453011154671592113725890920041580054789159285899060485135233947005755266677993691218751195776789483469303139550762970200300457885023860888556019928610310298008226188942665624940502218356474428640867047977948404398087726844106324534575005969970443708630364835088687593940172308778675123700356961040991306744574899311853191812955865771528970086487731856419470040157618963068607358988512888759759164069940514381394735864866186711241364456184390788304730804073554331816448234171660616161346964354846280961951398676297468802184196486836628883697814006832616244281483744201760270778935549388038278631281463441934864988776958274855284465149460158704535087767711789866014478948232697388723641646880015927619674371414741906480942759192191327251179801871472082476535982558549214217631749972350191907488026424799410939049133200893751817336625205287176453923517131554182474218373429404149278730835339243344779895980751781063458288251580232442398081962654972588561668270334882728617261891401049220749176257299601546920050496125771740160018603536443338067369364055549839889269730324341389723504240036211001541209252153955976448772740178116625521816934468565735099277506193854602258094627751143245911480678814905693278047425622285373973644659897043552734777159107816423041669071864578730592073816974046506750553684317041136718900851270214908145358439902283090743999619110765231630211183275168178133267010719544915916475900518459235657994877343914930033051634512212942832979339094796086316662370965481006701848221176853094664143887156782338886818342599616624956735067571845263495607780094013807504343874673369809677679436958423405130068942472244129844255655496077412641211555904747004669982438784863100057398125932578202064133154876437496113165068853766075180692385683887781094484919063548478326431839047148168687846824185493347258002743126200759620472173399520170446471928825883067103160067565902313913231513798163429041997941356993858669836733044962917315458175971825100275738604776175968181074513071175931793844815792573445670237368990288931744274631499898467782460543708667442762921342246597955501115605117797712790771530244101244923369961456443605875705585575850200881578134723624321027542285207867503536407236937057978878413060286152313545931636154156625563628638006436499154602386008190862812801470110946523323040343016546459899109293688670003194361489387273001436746498910596530252313412480130678437863080182266289753388977831281428453742826450174931818218076390304404268688369283462859013627349928708377853271927352982023939398912757693558525575074101848507082236444733201622665247224002434004104373786962245567234755860263245726706150417157181267301183202799602358235559808615037191578172100356246074985557326847974663990870969757058783539285069831635177136412911846468635406317693737273257189290189396595798546480952919016248716490992335965473209398506591863031337608190825129669551609698614807215974684490957652363932595953229498748173371024165852860711766430480398224928588453039081746945687883428501310752519363234288594422538571762837848406889436101953135287390989358589840183620265665834884519892921767186687330451836011788003069088966334241357794533816288808301629061996999478781445399755864823675186472945011688069364149166604523516505962310327436423040992655537362359490004662521955600511142036568631385343393929900695490468388946860502873045557621124986947169626317448573528889360802854146652642669550677766132896776677266318098897205732230397972930720719921679253150850513448815569389111938076550012500811411224110387281146954063615196031142017483204814358610517711472609609095397634414922231845874788509226222453155016485954816361535292939101537793422162522128239714593272189891753029458929833542074955310975373236197231846936064263334160233753088691791446089784114329370353649213432106000954894297539813550882498217986115445913842470251028821472676326716718045446092398138753576403713148133796749515749182086776774445153615773349009173511617656449676554831057077967159195996958236080479550191220587217312791927227586562931943992094015529685617551899346501646503841485670661154813301738596606521991207361673164730629261804831030656850766077341124853906489007780573165734283179260334019718628238958967322293022814502772943124815616931552270276622660875688187792315212185622277635176171209922748835049264410785393464352332331693007730845403291455292823738120689853205950978750814497706245282954379601531809319190435358057542417693123314455007519485745388127831163189396639292789080283522358706995047532341196323436426486266048305088993769985892707169838200390479446538349984784159141781029064767357218101801808750392501784348280404023547157870111558899367250403805027756962195869826306724333178322585357686560080536782784126232424280637366894846662428477036181581019797627441167680682427902745686768868043410512235869510500154805241787062343087210984265973478380795875974559759915896133276493953416645303113469813852030500930882820259816774937932100927502993745359312889348509224193056108067784833760500418796394478274878815389093737753381627903549645579328056615062331137290304344807904141721191745673001560665267151699124000984186544192424847082670085030153959044088204267008716406429820291859686122006135449270987031391927598282017673316680751824228623815411656525997015844327503393827727030455533126572033814561432055768627121831471490157886783663776166513558265526598388017438077272933166129244647750662835886132614409731317103677964274440689967070387347519359483251095921957002397824614670656818152141675496711370225528530583199101535807110809335558088520808938858449890196962748742770981447874194171153511487244159415934587812227889832156097108077973919096263462301172210181309332363243328570529132920967075999936228682278971215264784135005248512594924665184889257053715788482059765435067767652666983745881513968487033890592425240117206038263952622962723356081571168108391282121481383207313185209536934073238352930061119960325672552591658152237758704921824188956729537765211756761141051665945677434463331378422660639093860139227424939594056544171398893593307618596363776547885831982519583770853121691645658753747985350012539828269875541177791129164312944122195411573884134146088190503123708782195391738333758497400667191408188407943633224842587128890617241192840060596540823040359355474552207090412248362947638450659251645893480039639919751385163714424814536917977612701401584547720703543682268990680646942596395228416844662349540471361954837153960020795001295955694989638648932749366099321513871885494441978729475048415235234130941710343334569458469690535685807637024739269543934844370053285434570471303124201873184280087919907671547036538947016790217377700449623794833598235587549409058770126443991829633795570763985704530481685470353717536225242166859880226342482854151190736188962458624262750033422198245717889212002564778933889213146355753529900385063903238794794667166496900578278049585115703962630718655180062132404245665253941848376116113388085657368556754912697939951708047948414514232890793651760308209046672602126125151504987257932369713708437967684286933684686853767830658523295891602286200768104190321913361687369431125919264360245189723688083281192729873492816637874940209350265209494610790397864374270175831837559275899203769522526212770539955418000168337663550641866581998744158154962380545559689208049906093080202579633187717765183725492649226278511121766305989416651797900099407421385324467538740694387015439844927974460898849738732566922555343242843039577916642466135050256603353620885616142382001171599371171685805087123220998374019235214979058662778480736310210954097719431764403992550355189449608042245134187792346492692644616176692647759075199171607876269379057591326560039844008112518896196281946519021720492143339526094183889465680200678992636857536415348162207319137570779531538891145804970159836217462041566564767234103990462668863384493145597729681728578603506035460596429931554352289302060920098697959494262253187699951607354315597871343408753579239112341050362896553596531638811964412825277471009078459623986509928297458917127845153063222114624839789873194449149433495744740750253402160064221236486277027872707757828303492235767425230097418012101733053034485681682851395570906291713251897758921031720023779326067487816351057808412858484161473319488449193581818616047310704436690367069079323131081722766526246513557481275108218071540349543083403853169205693548634178558471921079277428253098670813497275694383838901426056723226046069524081259112321688122891842483965954558616814392729555538604656828190496218479470921590535999256905261840580904395943979300599721575437354203348717494036323519140790600080096242996772308961059326268246758423189787084237425884876537081539051750293164744111892010203216219524720072987763824473258334284267177386299509058746813908049184228120936862760259384080763502778297944394421042618235986778878717644308648695933230080684962317295762544081631847376691943731991169530779252950898895675166900350286140911343343926421943127985935557900211749584455548239714325431945824902094005067612584238976877132405095904931770843184005525721352528613309863439179156954657776168906817771607394885917168586465771944089900948493969377333263068362303549221312702214059953379295480358124623218927611490044249317892572155677362036348734071035951759221048074327868428839984499989234292000694743161874781999519235761299615768776791406201427960647127903752992124107125990979871125536430581192540999908554471563791949115977850323591162889526425897815963522011533012406555607135083353386373211482515590894819504698301162565943434297744819285661715128813974054399817642219202394164078722361484455978362237129336778782002225001110455912829112622242731150722678190289313174352567810115740492040387092228470713691397502089524917844255092300313494112876476217283214975277443293779148130423143105207458786977539065194514413415089569253769059187313553389988362497368134868201529853893659963723135014768540219904785271726623218325122753398534659024102551749315502264668217742015265114982128252515589839323800650334728140443147930525373135209395701975861915378488322515502806616709210270659369649041689877263176693065217759047956387341431692282546772970442597360081116674996942434689489842889233747835871969129281678897997368303138986281005582354507389980436898545571876388259636380862131682152392034186262796437445947913271328516631983448807037974858438842350243896464314827324564121753141249452720570501422625291705823231672464259758633535783492895658408366675679547034800391601864828005078032487395018929410182218223927311628636245406799414264129930383059527229268428327937434650843891583858384290756369077802128802938259001646512338473396856096560560853410301026921201553565273378310925090197547315347547858752371093752623295041078481002288590177699150007106873541649901332521137205277140176166918356369003620750470179054092421861360715112103739200259166592621891361126272120127521170368752281590192356951663022051914354663543322657098666874904921236776541076309773527613306522869528398395867107635259991969218004593359622056076544548754225944358630607002349781262394090064521759015544978276283194784826893921539343641062109850418899490185513188474432556548391879280377572117740022082616532670817482148755220785617604643350197911422478543621714756645014801093307717633538458638826124856414419761679161906005423361789409026991507215466752071528874761723032191075167728765884755143067664176755004007002281899418557723935307550470761723511485434308874897094250975012771286288479043026534264732062796608711640236470120855170518681503608244041748673828718417372842215520948315146312283583773579025799173193320843440818711136422548095087938056823039899433272472323849834525019710419958117239949344948033225924754244171257367641329122684947105416627174769587224248828364650664144519703751021037543270623801857366795648399245087432302660628704337443876008435681129001117818701618170657486167254758535249376513852676471943063340215141447623063667148972553433197478799809412867689534532017153523745355341775012372809298538271226069945343457589893893609729870839845598534470897825684953669848781139764672297899800918335639250297867713850879622975809607073646083859672243597660581199602124242569576896432757920064316280187864742293964193881596501716203228406455804784483140405440592409328937719937245328261594083710232359351165419008492993261230984678930469192122141998824182629183479241447793815560450717136830135541614132054544578779246997195352181141394778144570133672190564057300044494681461210194694650792679368699754096590463894020025887476548679723011680950099146914530555228328062624122166585851211499552803566417701589838344879890487091768395433408254346708592544871283241606727074701207240638277041711944996327592464283641114849327661915805079680239853284428709622467144095390623494471966479177405159531374812926004488172625436036806583088438737623617307396441275189413195145042284682896907846196678454797101426583311658139907975890150064649848488846543917691750268430147374470502285258784887655295181830542443668530556579831437515631868601587762429794139760564884097796812759550568922373704349912812132709109501517432753613805922206068480009677350244557390614894377155358669539194739358519910321333193410495068326353345174081097912919639502468189963617035752034056415615353676851434203232460493384254395898132520335089244544146330311459201765357820490897400265794870972486445702363668023641261893474355871563203603127644138034773901964958453334582500633746171610029813315705217340175310365263399261347829762900993529534235391801400548201264466440502499188541591150454204662907508916284024185634608338940840715589213282485072973154896274576449740290534530181448372426045043877561213663335162032446881276277482097955947117254319993958240780593989134057372557960330791344998568343314687460108527675418495742936035000703256759298630118304603848474281610438304751763267598398062727137028755624546755905263433915467151760597179997057125307967683340144661443590401440300307406028584068036950001794221847642821073823509043470005982923751507416480694600427283132074420543314829637271968673382440042982651584623233638559365053141818680332152417589014594037951050257026110243939414532519249438712203832603445722113772726056558372212473697712826958982355417409417696793555492852424601649145757597328073737631252060737389656360361500216348214161641646707621502131456211371945551984061879145872763540474645313217998293183262342433844673635586012021515406350122552106104194231419206099948151164964911332482267700653243766100470241518727776986681810884644906953271136077928207896545823000148592318655853388865145674343957784293705243619521003476297464046920934994166638537179650903371391840771141245017807723339890697662352981982000844859963089906513876043957085164336804774815893855067888004154268549763043562446136739389331503770302303404756581609796313505477619458861996855741503183774779359805669716227929729627240412173219674008758838683176485082625362778019020835049376933885835176506204384809085484232890842191262178664658643473067255153230980504964251835481611071579652586264215542320907024651731461155676955121727977006028382956580910154873369374837069239030640575209160470671216816295009463885492996289214040285479489683443054257144157887744239330629375756898990288530306360307436735649466487282751804036838247363415700737463809287043978987554898194924924929507519568470824795288745831572395417887312789894164812857513519733387487893341435701602206032265170495815402491853030659744970451805035166254150398760524627009168607304796298664667498710578967546220144416142381674093772142360644329479360399124525988505730312446096230439664973367400251811898942417782962791613238114132868243450555018663395680387792855168250537295264873548228512525071962530568258360198397330398308247482994501387098240642293856284233956765274785008893279172846363832595247246617978203931197278670203212371297385587679785561710526287942545642942807914590695125454832955598122758412144973934509547626278105329785893882654503060848777380374357903841926018725533065412541061094570182936290684393645329207923109055353035906068146941934706618607040882927530829832935580799204569617956249910668739387100299202392393475955685017539516001872438167322823523481356459736099895826948172596223350158130617941912588018234922157711069681639314364377589712608254588233804893587339939130068753800339197192765470932120020152384093158160558714191233210775955176855047619251379233822754877903650416588248454521553677658106634593635842383871356407553054344077723031106542172642095718703993471285419395525877004071040661262031132097829511802234876870126762799160651579637068467359066959533284381194175791947229362213036866731903333902640556303020106095546267928640357239514916679426491945589482660003150598528921720561640488706218397218483950014567438316163247261625961368851741729123445258924570503788718553134853981994436636616046475893607131480063812411493709934730699585148695904299228571176514622420861427551478442691949397032097211034338991728404343522989608624854980721054633792946241026458093686066309868679516993975367143015269668434580771591642246497079461615941262549403741940060121701618517002818430474602781909138219672458911522481885751168912102946437437766472563185190391366816044752574838757079640701339561607911691719218289203834015729164514087757617655875798991026890450634253843833476253377049605886837762759502108466179807271897171430140577402584013650067788784600560826773278300356596133059340595309842183373110871344905137507225624991544115616564498480797915627051914284483241717408336716801468024483076566024426494592993052315476231695850197723236444688487865114293837909480954494493698803085744782501361954010110777483245658365123298341710874600778487524001922858583654799258834736603399454320915504482796424381988989808121144846174621729960046039032171470285445823736939494302103792570576351541416660091164755314006017819917233230761722504186402607818268925675147239775559710092034805249296521771457006924949394215536732489262878381057345437710171695855579008281447548350608540645149911477886545995443571931055745852941068692113366338677332505157230344157693664680293516727897689542301005351849317152238742633754119458614134013867356070155652965488453291920340616159455420731954994747619982321595879738368246471827852173455710586158224040289549848441934984896591805951537298325549521301471175033345745605145323959875251211861637819428712507221794448230942579808049057236308743828461920918253895094242187549749605164590269349915341119939608679932667408564107266468710859526933463998717818491437739939184687469465285929661429919320048199405917749980044152168952716833543504327669319733823673304577038788662164361802537422690017044609627762029897811400656699910755883707252992795190453048416238796819473344492358908442592005014485403412582290536813281121206217397924736504082725552820681463471756897326902075309199301057219512544540759798089720344395427619798876519581235707781001858362812391159940466777868657720975630671538376514744642723278089417856264518647548569172811983269908462441605206729106708570147151575875452320557526455011773128394731732944241341095433564335520497738825037916362633373619105842429797463448886472450951968951736451193248448733181836843157823059789467349303639005543655946138744181389957580148289166712853996770984143834119966201892036521912622630763791039069009025028923793223100022502716115309434943163263159660912494824776565827071380265518708411842326834149581902490757244852966133608888201292439328505697247776595241765047878756913395853857374095845364087993766780798197995924814021537833678885966448063706132866342727052285381013770035844680736209335635575656733635527054188700588148702181026372743190575756628030044974679107727227657789678492568949194280918207829445516777734182991554558928864409844598285852510954930483843476888647249873106299626313176591266250168740314711902057436784125003718084818933283340159301151287689802471219071978309274819798520313138970002372696515254566109961588661376786832330955582199250534003410447008921428144691320132834379186127808731975899919341438425427074000345976880786426372423250422776094271062229341465827921786212242020119666803334454039742071148853694985403100220812977677907909740331200843034646994434918661363841550168610371504378388602615059179689379623831523770497977227879202727498513473145139275196620669337301532215056338552519270407762487507344554206254104159318467792883059432425007745576651926181801051843866595493297170693732232804562054030292361127422897999062375436207960569622488695676368749583641460194324669105337695564047468179293616471290602567792037876334006746611389899256343330006256030835686180008011619579550551001291485935231083132378635425766701512326023751468115833719147195796795910160900381854418452736984074399522202800908224119110571795552512725799384991146344261062009809019322002445561235254190677948067606814876326123090297133617747255576965009836361408466618653877051329300884213284614445389441442893704176678362316833587888927085486336061771540002489926112573296374265094413292776121501517146444256568737784048078874901726765114022261316476397597957904997463906788239507787323916607070766450067655312246948976675538030393286254458038748940380212699880398177407984716287705443244934249949842673857350918017243714329618234292871121595364402349140329073209543569673923750506849036218947675374004491506918141100051192969328108081009232388677447516969739776027952422220930767163332861015587428708678646093336256993149341596038062879023157083163405822039970455931417755940494084696362283796306533743215297826234367666581435701929883363062061667131244209105199104107069753617077917619379207193851669285010616455710421920726600818072122365055517200031813811664486592452228967485927649022719174783134100319549251800149125947631209515772946594171561125747363244032985200337392811970797853263804921485433565606272980908858022258425513000347847480801790328344881610216811854245892008834812910584168185622536009147783743653203259885508793868218511585420584535236218324334977098429802892050077148421010559276779782893164356795120659397370226062607655318664219090305127532561542972566629823461493100784026989363435143388111504418534950358064324036924500380374283456970145073271550413438342665619145868584328408911263987053350772793333813940231157948845999244218948790593579042233619142655081169047155132761418079293599056554241655503959030328937820742646556286754059291396799835536895560736735067304037378287081070819170548408511864206563476835629328425914348662628626025722576437082554528619283415039081786811826259990886956529590658470504262532860197510313448723908361935113830993235507454721680807470979525462235517131106606704529596435240851544332367574420722361854243704237642686194658861979691713486740178253040193175564805435344891743515698266255527474088253063354976051612320917244534230220424072776603979021834942421863265588896805724691315349553896887940931122886164658933550438487755341858336983131795116954079228260339852651831416116509716617159487404729657556722750360036704319571636485163640860809808171406544826461964751145970451416775536090996695509747939047545123947780862666694607698416234241502040449229014604798017950617192875460475914842610941216476073462723286293792707333945681534437258671809186543363961058301956922086383416162096342679446050129658005791781969274565758903755523573761605450189278154218657311129034792420687213945072277775434355644767008245326125423332540347958765571327305160271628916579044588460844989847298760892279182655735567295477854442620415293263908834971265434926966619962191810517929521936639829736319486246062415775428727781740505387214232839389929813736789272426450260722329945061566219914251070716354426659666154879100943367433570046980562228296068170604572969109884633294192429407405304520589633713676918431586855675820507027899620367363730498968482357324064971492971414948429927401518806795080871499069942345767824937764628448213769148127410534080812882976558492030091998719882884737977643725591248072597938838488762872034469003211769210358830532724621646681448469297016869227412768300660948131773324247657302334952326534868288286992764084449888971789207505018190494888353698479874969267564381775584521240543116062911845940297625502365407500706546464457215011413235112666853971403343697008621725878668518773323832802287979768072558784511425816374588514824319968071487770302952985872837698293004467958563235608645578578743690664181271395277704059940353085680952956052894256975595825073711606696880696095207189467469867385336408051753691469726314875449952033803984072387550960138938623540941466616535538020062672901873148247360432383475451048414971753577992068384800502762989862507949399707415156916492744061543461463815406333775446934665738033890730036554947143415424880101909225008338455440438836194491580713893934396593341247979855907281226553379357636306461705822134639870532422700783453556463907461061580138922296136745112611720115003363425158071744407062953993595021348754364325900768048425208888514724490333993801679597390034463085504559849395776935486023900363017027980432491312745081557933926942753418657813757306129845418603698061582403682772636346698070054608117404295117722961757295224936248773506296955076864416090544821655657173811888414857411630265749828427584219494312008039202288967262876394364109199913345034205721865054128534496517104577096342407756366262737751324947827998251109151161912486741887432630045986788303205721392509898714592845513057356184332810227894314281191832511257112309421247516014188568860755509079408969665219208197301956324257240617529996267984580175369809209818804084328792355882277844837527372429696166669912439357214233037014067411733200921309447806513722586328811974465280350533919809427785088383706672013916412340568874950927907097580447878974669614548449031674586199355143279839508525037766862125795531504180619525876153189890903042212995599292114688997594184109755701129256828922233346266436313605247414982836162215843551043270366629592606395970378005328618188015290887366047455663115025636421340424640780628291505927557045171360045916773368587770742434435782724620950832354889498478493205312675362729528437615564442813388074342392282422095404051567439744622823287028148266412808299186492619679003756722633288188551852744909107987514646084951160919793214844902226789033357639582482518634788979281481065519574381375933480573534350149033083309839628305345174823706194985226933252485189518417750229241874864931309474661829334563591806158394121372776564106721411152212217380430544337007342215097789223332142347905434329015295196302944656276117727558082068884668308470030744593489916990107770667131212376326719203564690259109231084997394356834145304135551791470982511965699879459591990874520275504624151859338284573088737367329768782023486802763361343933740940008982625204230174523049610689938988095283907009037634643578432972492836333730552055478780547934704720703942479704274919548254771711516792442030737040579334070046397736702191339679938941657773408302227649338021412789879003277596527013101043732729813385756915667210057745231513098444563470025618446109944935256181178650056167028173934473027672924188853425393246685270748703413631599766380029406451744219214278205674668869577648587529316428860636501225724865505149653460489358335910705274459765443136047761203913366811040686382780288571146207781885983688052845516515831463330286298846983571516626733321649174736819998722299709739567436129214672783230851413628118703559197771186002541320694319512209302530268204268713645349755609365899442256929144719530693982216637354953667141656167073516980885393415320784645232107631412238948525979722318355818389800685729421556253957326032956464290945879162705460318311420877587655936361144096005450268787033971303232070003358836579104296467841209439992440137347034498603240573206763060146835567057462214244079981617695121109613937566908091485764834552426894916936879126711507601731435691907755143147505515081334304795268490411627598660434828172610591845009631665647082062220748225463917391279943628904138700374189856305585188181333708889551155018053432575179800481092511285243497205754596311034879326620491051903950413648641341360958799331925784356201230889048775018424090547349823213184167347722194706319991998988698416965867023362502931874681268995554777394091307035859110189812363783929267787611792605364148998615262826148727254327435483297023550476489250103683032503498792726987599070188613993370622546232678300648482929997132017061545928830607422113122597308767032333663157304665907028532119826491403731887665805666684812462389764452245091616877170979109326359153914085401198411447035514921108304546769681843364871862427129465917686624967086161636921261645018551566833455382359119784998635259307762597728075327239515841189104674201713280261649827166764362277105652148485292992766654509905250232578257377602587945435083835622842640377939902893713251331525411441130295647293544065109698613247930508655825243476553899835486988443210947518137736750638665485319876944665399453055356813939628053528869990934805380189081302894841415657839321274090658937821029682779663154292233974648262787775431053156754183443475137359648676098492723257416662021484381019703395902857486721001209344193168923002965482328798269300423329171934129763601929715238927174642466843757424655329836433457245697540390817481744740600870496523927888957252988938427176704105885744410988741483348792816763428671113934450364905046442280310524756056165435249406867815726511252984835160207902721389359681948201205124968671349145238623601678811196793564199031115188629183638510405196658208037245481258880281803593565065467871275419370155727059668744386530082951542920799564572805564713951517802105711213582628512456827252648674427422607955409516928244245917925786614264313165626696278863441567117704645812818468506566315555832700316535586490825091075017363152056038888518544196723335005156389031619187092787448311030008544597388523795927077042999736596103572693146054009449777342765314603826956631343377447954484400922592995319576148018817247233979901872659062754972577721230156582287534684845802628947863978650027763243209051929334710527965944698770646986254250097031050235653510179750802833049038053114227172496468691727459304272315975506305017908850584608442451209675400639694766073963672908390334366722059702725494211319162051711363965372640979671086552393509368933518304268062071680531421669271906491412494965424580812584062870830869727941633651783822061885373138636016948242991685177483190813013429811960550459098718577888646338447558782595819213384614196734684787078910587460163152931199517447964130178003077499430046381040756431539563909802773464670645147108857764833179230166789256631541502694337153657616529277721293306347768127620433253726108571264567330279083554491245344417216491834909194349622447027919777053431265040202861015766106222364147370489434653060792145263628571595357901624122362449970066082571138769088486267145202553828611716583542235017486478395016187827147842870378631421098535752894132148107621322207836368543589767650718187020340593125373005448796846518147995785261651293065140874728165174573547532670259431106730238850390409216883997013396094891603392938424598244020825069857961945356717242790396930704299437086638873478648951801832164366324267980315485343982370338627854278550084043575150504962325322905463204567336731187950473926871303864109629302466032306699144042311331400819504852348142984595847899130821420236453754937378632699059651526150358349632732879159766173829822936444000635485369093693778224613290426318301825431891141116782875246254731486052451090438365876601530344538669369660070596895563798545500969573944811570166245385073447429380046569680186254296690092761424988915803990614667319837505549049954133011597814281766107466086108286781929928282453311115733411116706376016875339891897066699291283640812575819621059558672426577493395206327638133992048269961771916767154272997119921847998534610586459485646295297341887459762163658541453034671039632222085444061678175689490614126606275641130016691381239908109549209915898058760372135536285342128193517677549848972084423267114956840275059229867440384087314894037303656024699171626128007223036113306149872291215053217140141134803419501522714612408899050744013293587500099139857873421714906204546290598393813384600585349460705524844680977191709253908373995317844753476160704320115209093409767566863768802113901851074272771097683767344859287581614236461358232117843535900788613067868921173981810659987923629269940853560883432505901722614286618545942245632955756985856051294125579141191277599175043733410495180791061616380773034374602977182056931752946058525795635115710231510730082955742812050364672492573404064502576571172344706969674693460907341206690195929971808485316461484344143067297181676824163779716082587062933267616082627049549458443268960315940749154450787110835317135908505609804934707891852083143936735256027427936594783492583010953618195316400491436563290019070710794880567098189757271397325192123477029183752564534853381114663788138097506177115999349660757714239950322609470990276636971044958824050738504602680927037183341821087534181845731214786862355789951959679360332552043895728136482319803000096204067103007053173023225388739255017192973909131870453960836046624954377805292176144980133023208236216761741825132320387653087034959709109755168391845778669448205625682536768003342343146965206550853637892814321225951797507879954107894710384687550065387876203621213132724800093094121560170867257081727343837269583138802121828510862913795249647183191116051174996775657932796689048519836765734569534024272767589764417710578264619078788480739979702983498427522148291736978885154637858638237786500372987327962316735989017248740675868744016304125220115340242152944850853431797584385509529908248563562483680810198265635195723375714705831933334843254298126899846507188288579603097836063997967651465919065331448083669193659492045321734202125977570492471056912162838297799057371568827214996457127473277909897036799296934010334099052238094964876033421429428264642279009561041802722658771974519350888245472993373900195677843576136395048935813606184811001360599438791560182846939680548507557856933279459959879274269644555022176668787404133841360730115244597320553329019070136598637667701682477537767971287506013989357204200228824210940122074536208769442206205763463331026412696542059021980903508029465564151319123519683786724216163067697109624085860250543389490058502124767682310934258852241199179992021673060626680238458768051870983935164932845333811948425892128326392538490730726754153743112189192219900257788179133408938111023050330424426269694825936808195762031339645226992151564047878447872087291791466987298748903463230211063666130393996627113553474395145332234239634145521092792951119254010049756506930819853055366429761593978952593508228123030684262238950481313277433369505000032225733780723960387896560463269473682414389077288971508610432124734001329313268384189450311078913473749732235213607689229672617790322393692294895814386153566538805116041389333193332434260085739328543303794739466841992582054344217409843857599316852616321852659302962193667947009338503183183199807787239410968138163861315609525725002712839430505717551867794192558324716025724503712467245431078076175213821833941080197786440659035768960262159473475195785280963293882670149229255352941897404898014500190242192430470688315994263921562793880631265720773588870617037351072890042078814009290107318602622639430434125844001472273077213529113468847095626797952942460277083054390911557173759672835844466279128134893218918839069886631803554280311235783006590599584465907360514967305450863237166809852463600737830288809373746469636831895387388364301035169794728612775362569438709343124698417576395436104507795335157108612533516570473770006752245739477663238040093648431061694495753171446379979594060006554521681137780387668489259381831676295183763286552533379515618080956822800186647445279139509314717687494526809649991163412484141297922876121491375532009741594664587519699761521192436051548976237872975036935364145282172057514968631162604144723391623032013880764338819598971186542218653638566216343622277667655454822936430386279762655687505840723887560079823941754919757619714429469772757984544654041943821384709184067080167281265171847540278857755488295074165305794274078640354818311198802822427296782681663298177407810354879082826085295359807031455866840180552465230418758155917468199761660482378963310290032370207430145139856920479310659957247922244032544837791170003644567303104692243004691355164893709186987255444758278347721568592429760621403912803774023326996614702917681399751818931789918255596071241195737477450114299287091376525876192459680647864442340163704653231451391708446227091060511292110813539317205426197631243185588580788056894535714440501098093281897197819424081733018892063058765469840709704214292211781839130959344736478029361075922722186724200101024204802902160254630762162611545217867858369900352435150343677684069040685338126016912217868013846369725199731803963951834808014805872569716611620753415302265806042719998097580805924397098888464309887245971904061660767096590224649137781601688408343026194117831587761033615641239952975121613386882537830409760195831337292954226299633761577498573258056098616701633844744162735851175014018370598386977830273935917804108751180258962398505561255168087562081678659892019041167550095844722971469153844981110338943311630443246021089504660749715075681860757739279550529807380604597188165516499934536716031463013297327184132820217883194737793212964061194726374658762747297857576422260696562112694035122212228402762935063383209560734963760699401659074904477179737583047120490771293473070799726950356004927561986594653449158734099919588278867725154473189216874015815950158176687554984252052799087173478987495719725304655488311717320839672136615670922476929362563114588787276141190244165019552005548950933863236864298444855328410980126259341002336957736412993845152804499835796583170641519083324575487175825677638601801924973525187322782552292292742546572059952188219770610430465418233751374016111958611104382926245450495225590991007077842240173715265224226067248932088765326673513135630669787568974552695941079915237954739842249704375519937030970664952112263390257621594191008916094128282116576974592279719931181230192640771739785857847930236549293783840996448568759193473288173158053173530651105542073603224152163885513280700831093034678596257299866461550155087257635401213783582973592574564746569162551645229683259521846872659063592955638922399708151519751931117194705133598528962087490887965445216323404083495257888232198832070450600858946351299141329499385709584752697770307960084576919303420161835907436860742697555424034008802419182801726131774392112684612180210286560393919454086364613936089885835372732300178020467135663166953052387744602664597142338659077507694809716076647446405444738347854613485857506757914028117849162535940400646820007196669046313266885279441746793451241286376133959741969500317673776031996660369726531212256266653052275950619762073044976240949163029867405958030750335467624051485899513562131854393775131080643335331998087385532691672374166721709959573474149738380175134664252434139147961685376730212225164465339557809940894086787464503488422102638508848265858572511354655422592103611009065608107021710856586145766397354465736779077832862091697706885175564620532055289327589428505100420008921322748289359854864517851804919287015674480071043389457374698904958677245111794864785887199715295149479890822752421990523104539515047482657096346441087659974686794951168265226983467525494918312090364650911761688982273722885714755398256685546698661358545811586237648696256815844492834351082855214555544682913810449491317613534383265581253771100159268195241528768760717149748274476171746190881692369835891377917725395520225097496512462415200131056896946940939149626531513312734368689686961379418429460331599317948320851355052583093817532956508709295887701640211839679958050865184234960649942941159511070815237350813648941188148164004636918583264474122075076300245217895727935744232516922904815867132282435945368475775155854098170422055805901206939054859622104747278647402443383573730973812490790186020136261034716338253088150538568605077300941414964668553120594677139797867520559155193433610996655207992745319333309293548117718114566687250701422929708907442352341119821251502242038047197277111645207433698426632045122375458914050703134264904543643798076171273493303303776457464482570923325845982927871741055759440993915756349327759438741028668929564515755657376495139675204247557962860607480464757049778757830053564513488395947595274919246635206672835832970934772424489809215698200094015284090096327371745482881482692869404034096096300815857327552846255555471331007013898193408104998848784100682705009596005441425107342651728625489574292547738636836603370171078571493237322302619933387701832914274893591098330879539964017066511804595088823981609942848070911559198453832156035310810471244028082918070447828917455685054146065779021171707966637393167800400182354374002344668255966154699164461622044032832623023115274777838575794856975560147364355883619535334119769183052094634590878053353431033586453230407009615215756785634148415353037523836410894017686177664073334614577188924086325763689684673488210588347559852486293501688825029183942477659216343412158773851011634188308432291202071068162320748480522292559623860105868804427573824883750120754222043020544456103925235505581664653752641829258596602212212363819100688442960725960381492352172926744876845625846333909250023214336223560995575833002824446490575939212030704376652680266855018665468270268369180737324602197947561043922126981422116596620909626588418555604201015087690228384284271532300076357313637990237592746628304004788465787837044526154608365107791785208784002003989250693074469135313400380916107568419247508687174093964937811536973022327213079276172850915199095462197913055986032895357533099999412607980836022042372056604009871141277027570226376092169529115366498374591748713416949605711304685544895813153661078558019294781965497487011814118819675098190336230379686380631580961371040302145920981722759478992245803992865411035982306908563706705546023805030068058195322883949488703530261804443794849429235500329455576087505086327983956156462472530619361654506715957425438948432378657704248166735661093675411793054473373104391108143825614502503554537510385105294958968351906349647497798394413127169059229059379117342208067762312534334628357440966959172212416252352069810491738317578147688991176316285894016224414076586378437151101335827576073804597350380353324335289255689835855209312783910405856855310121629343653096886523331887800044508203226519285082078115106574663102388322614511528832260828394974980383197001288321927220437003916372261661411718855902029709351978730066626145818799782285474082749444279081015120413816716083942388399467582819194613479515163539642844570910876551565512587802116458528321173228108827584378756423737014788659731718242748226874499752644126468788525986748970494713631936091995284031998184033252461536547180184377426432768786806552695815585126125332328165276672444205970051346219126227817300317656804060612203530224926259664373821014096585453902440384367543781945493103686080041828325586415718511675134155771218641327794258419284708865020909096745654712525971472327187914086962831532720013077882247105817350983764286521997399926567292048138835563183721682438889236242321347870324563491743534577311258814505770957954478577703808184233132325151388525227420678302962839047045791088865766376380933999196414822882723932425983881041143285517843507957250135839920393868080651617290884592890709475423417456936794824272964756068229046689882069102849555229107881951248467983223375397240770577060869940548419793167960268979249625524632973141015640690384216679208960481694866484698481011653463862345531211780867403285075747993661051176439099918177741910145585714254540844678951653880138232008008286990721732833279559890407477645182836591774298883107526473472594717536464505338160642198582456143139691512301804564572959653953497663557133168943687691637500604120837823621318091020874318418294370716840861088432394772205144273700871271033503708225849459566363318877183391437748790096074410199230992044614887267918050295981494279577066300365798071024769591913749218517502931601026039429791269104718012998587955231680880671828322126334942753182989598643287363107605634971602241714661930425566421778057636152072537406712946197171089487929514169825282496612479544139128371537573546227915635628626772417792638588281157773383841181372452333844601922822051220524007270395269152260801772152271304476016803445878446731312121298488252578534131175276101404696597483458832626371584247118746161874099459647188871196174257391278498984792951295095027818902117631983707772582515918261362775685622771756512321902163483594335386472037676906848704348284282945178262047160567213409014946905114654711933709792828058029395829807000331167264170342394041830604553912529058918988210492946271154836913666214646252326193592560050908253468166825421829659711262592411450471359574291305062692126496551405203467148476471286481427029883232627782235442153526329450016441657926955168378085935558485474017724782781759929471398391132260485140964418942805166860726622089459232476447973386843347397928500899876376562812533602011402508531644232768899848857796922710692424856795355473868765287986310612149768470184203608642716032079944260613886865267191316042852039047397798583266859956603738086526474546664234126909221124477529920511046722659601382618424915539557265288993640001426901773568941572129773748375945558506208704028783749837941869129916447249750534983037171626801668798953488152695664952132105025083545628748383784888768145442590095471086525237592382152284376680638221964123985028775255282122140856044384960202085458143097446459045561221626050152733831120932799154701231114802710324094222952219139315904347916377871381913939498037814447545491570849143322155411176763955566924391164373489311217887788640940208277027272868185267395406856971524159540589226973352184134189451612277662471323877359652711749803022375486760663089699531510738016451478630532345238088524986785453170515661882181646563304792250454101856008124907009961664920258614859370236440667643931278993577108629419093411383894112509132757513342696529954094340323963823878043445077573675252083472837182278934007438137679487206976993789160310665564494712518457983040859865772772634767579408735950158961713241268373101143924619040396284711921608441693252653847037393986769300984883076452163358164694891933818858608329980466027222089312038421618185354329175143729645029428522967964681173035719226546458901390341727107399793937100233971690015649569801024749362953866308772725845655091917262849592759616345170429781260065049673003165066659476567049537098762451105086728080484646768372566597496787996942401798321143827502097339847035733096464786951560297335234930196517264888937910562932457221358363747960742639761601760512218090290555155500149884133409502837296742773903733026061133273747566387605457894733810143460613008670795726333514500662466929829058471605085658502593163177983617652683081076415754634605858699082841352620916289651767130216853191001892640799665381167998082135913299422222937917098214346908109716712120888410648672156623753901984616345627687725264678580504722801860154462667182121724321593667719598094641080304515734160905116539082451064359841793445818382384979855179238156504859249948501164999349318868737651742409777742518584953288937835003276908878939094379722694668710910606511592236041646633015414983491856619765561388382662745768368600302546271419541928687975046201387458562634754235155304768703099962656166801785024144713335862089602206072499779031431521904579780213484225552230226215655502012493205480813788331292781535765335460078678801271319108640848743771865850249035869272310519113179173937994480415280005041012549389966345719583908090930283029765762476661623307260239128877921557761376820588598566472865078498850418486651048690373880404594497836647512522037055059115618526864758907460823771192221978705773925171612083949670438329766304880517793375665783583234417581500095536974629900296740945263905036117093135950457258408663713928351061438695138780456805509780510141647698206382404371127808611187596811067963955948299412331308402748262273283754361613879678042943765019585239635655087944555627290572132832659122660222103096968557513570018652964355908693040053834732855561581453304032006733307128728202166632170434512264021443683970215000880605063483247222344351815153577746320778343826513694228275151453499376001040478888370275046753309087893388002028582381304534624733453427910350015991374963821059653020880117078943198934752753167546377575478248930772077278851374589269252393726476940378270951814474926762226642887925668209864166109045301948319967142802137396469447801162423375479795472871344602839938199931303757484997709524893724143604275613728928731751984071178932115129618494561035671115071991503848910520294660606517992811974970282758835867501812387860021652433361393688785756461658426879412501096628698105694669594693654083655030876855273267160497933298796931603255163520072885593809604356469885019892441533652202861499882456939295340553210850179429441172001262474012711264858591674803643553837411764936226428665261133645578332595868071585795987799875373823588843009252907283994201028644630295844991465439302780678826519299598207148587378314403309261277743207494322972582440480551970892877762912217966938160527859713712833179707553087830239093190781136023274297013437889514180631631593492335913704583058128427033780589731029188450205152417355469778819170231593505414583674382268104619986028075163236464133421710936518617052208093897178913193932297647759080134773363586576610819300308447925650497264549566592187360350445116905713138510789207031719580564476729180948860206531328574518537905968705556610913018704908545462666853225596592799258722034180950698457834287822614928177849891913443485574683224562073862619785795981947210933289622949851700439350728303164636180334641641726335160271144596825041691263006065891388745415957229791759290503586090513057755957574520364413515021491269932398759210224798791266931524407634409946460717349085169991873447120761371162275467223304459989933621375027264427176298962083595373048810863863444933480330825431258011283103503630748358384710455948257411239550526237319064621318157040679520298268677412792382310466457275669901263369114999148695803121049087712247750185606185854278146282159778951377172755736263361632658837566297546011831296455614206155020768140238336778588906607703378449749128398427784498082126572898322094649787263132390045060455870781100916321612840262029807265383622464192239616091842745501271589165666088698435662629568138046151434038467041708270053646420045111336857727902926102206302949519417496458428709954542765841948341145512847124971032955260747786923564022710570721613017608478422376834977915237505807799813865192028990213252496195102541060601997846140811312941886784433117035493205290204282264450021305182101296184664750311117600291681394660594233908496799618710749178123287958316905675146525390218108488802262957945732453676721460070780290714727485042460181678489777742230118044823759996511788190255292272900930880260840655689039474017485950229727798305963812247041580541248725966389051754465485650522761528228298060085875982925469329540213304632892808117590062393416114816366141382607447294844635699107565165394253432766127675166484986592593952625677897429873296969629567002636996251206985575257889766865501907899101939225505134998069284697986722139592342428240007735311696110366731862826425891318335588972243678589290362657850817888128067197978640930301343822517466437149656432275301815365883327084216884623953897572382427601466435036520591824047372536953354219078805618038180985637294990727727949252107697969895352287415609653126986391389524886597025660969493416599826164811283208078405324556998809201031519009493289843759351711730381321322339377208657180643391909604114205584689387360613770130261985433406115470462601303099744199878844948707838468992888227512757298512167099141356305898414850855371653992404713997620940277172924809835413318841889828582336820402712253595205758664242818670383403887140116713206660534366578039858514075737750217119801249049284819703127929783306227578605227048447031953677414947961956800176365442268824278223503817488486929606842943460372611851832839435841569593301133020963348197436695844490685574081844142036076794759121291961531222035514447878876787968401218280558879527514651436672998628754201253291360632068115527241232362921528213598090407609845584917976625719362546749960281679049740234945546414662630105498996344624575276807388557283493289792958586398722466986602941532329919920239811845792996835106371107825764956997461895855441628543931939655346601201334539193014377668055188016975975582059165654191348312931719888487867844069477465584414769607957409326991692070795254551970224720183140068001375724275233039320930777767130715064335004671604552071355554084831622370774506935290973634705590189438299385543196794176475774075766062786456605061929386327541782499716084343916459124777299286792405163253877406051897749175297643210834226014189330446448961118903310301708772103892138664337926091022204903121720034674222395682831681676632493794215163935171523113421716020271048994221538002643932950067193457036666129914216513364978859821213043093540075285697567411735088328232698742982797707236784928010273278298911613063549419451885857951782928229203026600013745581693342233610223211440667552169365908965531309022425969772519755601636432882455741804622401017377284631930605799094429828057206064275524307407197944766303651370756494355626222168219492678681088014042072166703395503304951237413087194841766103280715028723772492258448220649472097400912723925908998122624559970493818816034838462179289114705028579235379736736022826025167265328963581849976910491202446633565269610935948717244472632845865635098618704972619954373809184833126270827512647062267312764361791192949767830727736669511743495519973902112519470441890213672656952726728926989716644674897528212113362530286146790230719608255969262242347470604001384041689170002037610999297871474710281883865650073734040091581448003250927032724795474498812682672402556536795207023579810405292029589783035324860003073771469453419948691210551291964323002185647109988059392083871984480835333127731204776814096782455225732773165379310962106796990505303598468419232575176206831181701773650295276244047041481367775907532733041797846672424381722815749039014307500596646424954732264420170810171655839241455277277816790644489721947844207171078572663435834422602181704697369104526172470661436795877803397531569810060514325736729782662327150750585049055532451682775233297180245840160791791017778347611183793569139969616345144879919415264695790719343781987096777140659659643181609761352827962737450700786396086988118478520360538623263769398327301780569287006928592909063381173185600978415035871529072656415943063114199349513147157836629722395173294284801220384817570480505871362730815358552574416967224778337757443915197470667807841251188673300077343618097551111097550683080428759360282763285429152216231094032915846400888393039607853716566638012689878500055149875672586392022238787063788169421086615671948842415698473969882241589158574790555985220293922349279629775574152810974814675011255737001445424431133857906055127948308914846216501738263678488360429116615271672125650316316160741845472341421002379626046770742240691823346976110806500181898669127157355181945397851656628325013261582618840743593844441892770148766741277849345220859365508239989625742924773245512918704791312019520432111222526692302714943480822852453737219128106050456432557179316900124126700079526900461824824570818037972572924290100745958826411056180388969394239283024542472188762152428110290703047996457948115908817168667766477716529851379948819619729721338896290525210521479060379605352856708405718900869684658596299631106046375788841206761490292254465854063408947836812788713425535988363220693415651979062657628682597134570829481755308393635540845810281888574499136842380005642601631536710194124134135052496751887246706687052686581398074161740598683552290801693089024241603498294734633540497075041858822935724225322999354038118907357475406954422358973742233075657954141419202926010531054039718546074130172117751790464522928860714656550624291379443480069901340094505320847362138819055829822320329790690204638514861702214056793241026717347377647683456775366463403863529955799345931990844173679388329362684478343033961427466915966797124632356133117073873945572180359083075473694053691785531623251138535945920520286187203893874418243772380110827696055395994439263504835177913454930300874677111086692242496637763407198603145110614139691873590260274103545997602673606233804144927993394516284918937269259349674010422634390934483313165957121204019649465570268077028541905627088031134950238541171635276685379476290072440402842827587019039107399907162394564513809503668124368416670510826305189661207074781586003706842842415309848116872715243591777674425952071980224739940083447802564427972302787088362657749366200885272884800830343538958645778557061726078394065739976735395899640183137546759270449778625710082081252663383120183807358845924474751313103132526426634100722532741400097274642979440936005752032931567631628564116447747802186614332473990466809553828818171218233340300567875438034093179722335618014813756842639900010655260906863555166474003771792790357705320514696617861388826857011954361075466670874492595257321809939199694723531867152053028049627156080862327512099749377002484499503115262524865975814695787236691415297456861417076595557503624662279687746360784894928715546423837492189213090843745041046381605256643660791419043555708144538553152874510086969952199672701096363880747656781728628625077440844093278991672293109124225937213377224767315926001081844915792003238630653346310191961266343855723743913899698729403538062041108233010648322857396763839312009880298470224520544885318281874975449688502412706870456252920626592059251281523364531966835757288055052641129937017345902375821601506747390014281032246704046418747328519108100885480653986992757035541384510723725051086196692217040364161059402379296946721731702216617027313986762402760795205456680118956466915981816107812010092114534135758173358012665762300468384497769948195963864448525905204465986708810596791195758548114826937701764041356756462604484817288790976210393432717361008321453890985311819366279370839728786758520639372656082551255273360105070010015285826993006607111762645757369502515958581661733000784119859990942844550203599286487605955256440249903982893572925944713328141791672476933635423063031010881483558170651929659444866489770434504059853681532131384843312449207456385322394758584628412635070990064203631919027691983546253367045713286194990679861341706144450245965302139278407536672687281078924029944960129529224610293181174259920206137536579338975028729176461787693720386280951593294053796904029609534379871872247513338470438932082119159993585687035056596443135440530420547867672485682685348679771150302746270429220700749786495083148594235636152412296467820226360101713965584493480081636565445114922181006967580852397954916906223263766214560838116575660309868116545926556025921842149710350445000965372824447705218501797352905751853442749476616944707614169917187016675184426427744410503187403059744259134050114089980193938583898253123740453372504111108004538871323300345188491198860132027165972466204356419185954141924086417229325463613177809178145701316088969331323301691799232920544335232915510340139154570579960402985064196486727877421230707456234365138962066920053712924633445160715327615688625164159644636021650541749575176120282245884369300416712489314951775621165435168321969981325349925493243983718114666959710951187347046525912389690914390430192710135287444830615242426682417235498918266454888158980992470425694621926167137842301965036396442738079526059966463638750871994693496904387205471948809379454765770731141675130922183339728081909026401953616600111975457684879950193863495738735012354221545626415079087418551485706976855978519074023672859193439001001208240989434864561107416152053252957772058242427036649263782752986838805548579444294769911135294588589557743877316406870507567013755469126152927696325433157305629595159272949153721021454965722975439077112752436559643783196837263122856672201755012572783949445772939952148302188203219304049986011191897496776948669321293525094345103698756980858628707625517275598462053330056732161115039883452138048518074049467697850582897017181798994661423800182166763256536879494969951625301108388611557633697355198198575186826148626858477822285581441638349470259638374956426277917200220843489080288338553153247191115864136809926438108197218055017421368576449298722245823779927217724402541968499277999596692546037093672694825672950585647087882259003660093282055271741307334721562623735927762351915688822905339858932947386198293208771324323882799573995974114494869006774847745781772403191577293762441051698722162638117425142688998141070903640054215067581954371035604302207943194212481765506470399637722073383444943732604660460953772751271210715800038842596087688668530073664730725001655887834980987026681865081862455644276394671155852315007359195005358076154265803589502873637218276834213533484010716004140474024525298315914705023929273006264515831060684972811007129594365696901105362425569535488993848983450126674338415077503285273790476027769963540405077849981486842972117068302601452826070470671928752969430273205309855173140954436013285029534549185612083513343845611376383229965863029208917462030942549134869465278716309776357637486009004316788736407596280673255055989259865384611012019271627355145716359951269533123530868206777743449743223579479506395011337638725174255167647194133494434781748038965406542458904269551292642703657163217673913118126232641839376934930289422677941106954790989899993896455417791950072958264053840269638933175056010234978891212440106460157669341952427791395003529758185795455183856405782861676078838848543206971202204296972458778335838183108085228179851780570196710796484559993496975064938253206670787081163337961724137315558663117571070590462265624036546644663594109584511201390204951661985263789298436739196729356060271129778707015056113439353992852830161579472161073788134442570172272493164498578679662329398275443016962211581522033046279510866927777492344627472602765765883249354680332946377065738723276972419293316103744917439399437410746603953142514519598100576382065299414972458406419217191740443881366199460252619066698338818725126018390133820682259840485026715118355003825932283805453708754505857909406573891296117041172192413865157943756287422726990915970765697706425677608957350380937928114464448412335582736787631759955923393930623113787458280390577966560344309158438412998604647385885622944519742057096887329198355644642525271311175871953945759106455650710130257841886300557432988886448749055683291141192276534607478897984945516731156495251397341983616398282525948295901879699116368432072154107245551646504547955731974379978265891657888893993604852431593997792857535989363664301348686251751039732926556200292451158684413657178709146773831094776895965240086759123663753978452988480369847357812370743863775143685095512047595470293083652876489676460935535477501687096140410696829275967315630435256117035632766856976253987115023370937111849357344600393078581564744929998371717470403799971399965911433780498569205245560361180260002755928165910656041980531010897206504568591951308989270461534321165888739564391789986314187432039655861433826354176420205167347278480132664421438957894743539188096227123134682975935804974223669179985696488980300314602135572970907614153966938052382779534606973607188311212019854747659283686280022205029666482353539430387637774172374116736235189060301725721853435191867780468735249100565058286187061363717797851013173464739066237315387940155680292643896766743271652827599190552670599783743639277430316705395137056062904925416054306263716756044472871119654199461467184385907631984199922036182773249185401081820760948351748057103962442327810496965048842368484403326798760026901183788222172863514845199792874667538410361364075274958601671108400883853887075813934248107396638619617859653153537903638150601703616189918259592696050659827973544415610175239964863376571396308108266704841251907551644135492677215683630253987848645023142825278715556452228200430865414629412721867307777969267823115833844328862336479161832294205112306982150784990938909542295599712411259167464948411736815082641742950312671486569436205570639185346511417365667155707207644323322000236796884418969697503574779303688458841075868822917018136173496529926291339239900746579318650500221943398138765981015314089213914646121951003738592624035429324573822665626295960507417260353765354391760043091643621245152967795602339500473381796366837227870986569523371771939106022922388779703060302283557498625095489033307010768096971618949691198281450945817060092753029321222509594510233918400819053594658643801468839880221943273641369589479250596341430657924471579648310353226751585314018791611634584366214454236854330583901965220757278912680681421281356025138398815084887854746530253165614101125356622269617655493604607127916069833931023033964608448364287742775836169995169679716324395332774173257169061505202603714786315475224757836726031371135461063822111262489651341463403095892940304659380071223108529651854019105194060072942038698285865211397523300266952923919091361044971555435833812690719301687140590309909780610208463095940952021427910394591274417596187263873411145974569481308620715306028404480061402629796229500276033449618883179308388400478171906795384907109292267774118081491607440052223674971076559194960457956980687141013719231555906217296369370768432054973238239618171232345373316561793530331072562190697418040158901568424227364507955023613340821983218972362152772504895654681314999799682356303721182709342999145851396911832248324010269493709422663303629139598594479408735742576341494461542595062912065284114738766730204931801934752045969978738359872264865076160351272454386474438881958781505349437721431841877854838044298765694202265234114842664672710167147729842158329782098916299080143808256142296356058805747085350570820974783260434392193951750644133200506128798861887877106683238883679297583203910641473244151124977934733194858476055504219679031253791574733276078816774689133223154122476613773086758731136671966411900157372728661424310449040884530647394478652423487813004112819820010343139809472383690965679858030047337745949448759953839914737146119336733707619199678619252150308102965077904542192610027915164246758598243485882710467631336801208452156474710259860937716002591840582046366662095317718955627173558154430490495694693045806563299585169697891838603376972190331911822766061272782365268045471364780731144416555324091793821915553775162016166676819545522146527476733414909314165077090206264848833129516514621052367707550933504055111378840312941121378209523974086759358681852777918490786607850465320699958268444816491135284749051814370554534630623990259635790661988980233856844079887040432555593293677029448359738393287173540176636850545506402940637120978535324212423838577860416744279456765494790686622717239447532417642927100481066229679378488338277034712389173903501341667760126247350134007882139998109605807203373552893637610188773392928472832437426340460861509414245247953749325445680435068838553264071895470994268974481994184895838305985911915372046235819816380636812366588659198989548016512655713036348657550786104609283413858968401600799599710743886806733800312315068965287121785808191449508937431216170471578230182980501571227043299174752960963886826872928160727510983124415076096170120760631074770100334504009797487882563544487867140349851617273703635958818829986920813747795184054888250983862971641944728617952227191952910004254069133368373386137140555952224784669795095479656593812369908070742122271954284619976945285417344295246627928975560187143856972802021562258274438396803693336298959312470901871378956681239055425905917243077092920573035598325574654857733687229857896613212728798570220476682093396039352560332325951023972309351719662879854159114410844000283765449858534949539677922318727248459767226956372411504025700319283694046516968419947739686711081136933134794513519889552303731308894076871136599754616691417321006797749041471898748465002283188791861587200519442492697331963887704906480009046435062682436282358052640090643017090655830323844664321955709015199747987262763858701225272524580284719327241011996337080824626412478591589240153706056616006620587347944469305276851708875071683503736244444000395546488675927153313083587771392753502534503800078634130287502157497754758100237458466796243174345452325504762915136700720091969803219736232426957719708304032436295857888615155847163155077824103375196057750913291644180039739111471500973614486656317104359718076062137052519347407948852515130701768192764218113850919965643431879803246399867690387394631584070941337720951248578519294408157617855580367081101194244681845556386300131456622210969381250366281515742972700304838715181430429499031607608610779900540092014330924530447016146429497222276597520698628285714378621544226640062963294872093129675152981918494424959682893102368840387078410307243777398174207481812357637343723475160855773473884092290799049871806351782719375037318865994158562553560187970464758000086553472458157548024509426578528409534712374101997605489157933322546433099890401768996703043830738041664081846141432772987836127306056789957001373275894789008211644779033208940767025810149234668368697581118024101609534692591355835765288509199148349057734674748568508786507766206003497707271154110873700489660028562915870901932627462250382948470400878315443776844936599118756733532288123800921402763824034887144507304444162458325799247139659555575378560115115580040781610820141345248962636878023236542323061786900215537603992405574368726112017012366329958848698329584887637216935268121276181939370263904731373605186166476259483524642093219963981500006057480075778640092777097052882645389452181456352450817525755046555446920161135211380365652984906094701474094262776401168490994939512115815395535943225054942727114984252524794347415201064010688154333946156224110114926888915881038279588522673241340528391770945654449780562678031139322574543735535288254024218920078020293601150347138886053877292295717921965506104626054295604079313608546789475210528878110932992424172879606974850094098651950267165607167650330637604477822643753160010435708726965652184496616949242754949043336632658083051431099568127741394706878754384356614708900658687164847056765461383376154017939380841891467044371189201230449698117246465774813257789518569296741913190299559208709317833781325685566193486078257264369823731074191645885268030652757287626185456715811945516057658198160642419720978821252862481469593539663700373636369346454443321448686203290919091227880525990582396788571384653054339151178329480757353681811201610035048226106738436382936805845519320797684332820303130099405726115868189920519986657362302886033878617648156187014773332948461088378082772942506585331945697442026266689015020896808133703238424226176093500836332115392357605036738966943498355566507246732831624875500438824444770300475519128453843553188864836162366962617198306133803468070813174950687043579829193688363596051461860415280001983169311035814557566566408045042572671076503891367148462609939882285805324097366721046415059401688874133637503074963543691785357229101264354367807382252666036908582293917925232152256115969585358338893330625994457132486837437436773713069421897423533876908099161060830527939421403392950047330530960363976557121939469597411770017727355203447615196633963933468754697091130402046886232229502103003495635059040851447771347072507366732210054536219482996038479954061064915407442906658903505366951760161995121707386848009246468270226670103631054485938455677773112164878947119380646078020514214507664117688896404923722799740223860186297159363636707430623248212356058662271544692885695305562903333848422502585261731047765667504624946659027855030578181617598898473433129249066774754761751081923851236632771977137200012537608659807755760151859041367099795041213125630724608472639425734153407346178921858722373086262249666125662784078305415613765399765936264864748239958645967764081519688631643002226870053041246305136711513273395529648458237576497855790824158573201942094234374309439976843992445769522532416998133868407061149345625007906686486728017809413682313600998225536108629724169100572211557674350922992242002297358191690023870990895501760496931069492624555804202001489387825921490338741359208371224189624341403872394001159478150645215313725671444572565335144969414260551009946980580403655071582125142122041078446396282656605948421830028808671543580647824843617895185291176501549690304311858820490166823425196252833908107707272712371634420756487724333030842694726247011485562453562751985295969353279092226699223751713519656808793396366832127383750016735325598953809834079582177048772381254920466898503351480183732112286995669266087323497274577548979678341993914265757979354450189636381899100203820918226684278340620833533372967790675394146025845270785935877551388790493949861028530383546040023819445176456013790823121315608811948558450924023055944509949899531216313193415742706538483264703461308867038284215265328090641514490184948188009469428645575301300281745874499073578582184283768651234203979826318298482801225776127059176040985597223564628132962074555307508430140214949895379782811030041714348761272272035616946563832901006862632588389468269617251440741754318278551323365169838460068873744970743514034808161917027552418583006231735471769386334805675693377847791387270509522297919408079932743040876406987533170377375398223318580660173117083709770871081141802603964174240829178308748348817669697666214912138005282893779067364467703156677881213989083121645658630412570171599863882672055169983790489809244786129995146935337074725645295895006144716988627527956050351365922120336944252343246681242995243613284385567157122273203829902865628150300215448876205771011961753963023256975254890650610019491917052908800206191084741585328309996465451844463651866204873953558652267762424819802778330957417858079305711819162068200135708590372478015660991355648852705407330707984800880269505287676237998781691109739138503972553627117054682336567747761621292261783567488406035409483794355244647038996567238670807556803660058063988055242807826881663788380729260302141414815008082772535781072847059404476450577461599730400810214502651877431638551962732759620456791145132107982086486051084156604068966245884650943933388492431357066020319878525590576536023117912474586363586528011656454681636225605198004529679717382935740228168477621497328361463988776627331960553845233231306709898691540102211081041958189345110639296354557405389848812122649873197020929442462168788239125077733781230565763796754974048946648319458260297848558812562260164668163422806306935753485942139753122445785986150381580409495926507671722380973609744045079284201431766755633747255300966198195536119275734117193152657401335006563398014989775988691487423590188442850335418624433879229748870494430642088263487090490197397296619888615307389733007917390931496520487276826447642081697279727930092186880829443265181641141647814365197951337493404733131083510582697293141002906572808292444018425776354493335327542196426826084973270539208226693449681441468700751378127429068456664806237006247592022508728780189944113408821922273570020366052274877892410517412743940877126037677888973278254533113498997360150230162515477231093445675587650057469706302948543019122847425815288789036228322571423825953516607678210380390004937675872677402015571283834459699132205234639191728147341689946034077043046874195694221257467710402141276713096281456231733313202154954453509088424298112746227741539773481337589121942325556363264122534440936231445912155850202641894444163338389552806677747937805487591412512809943212158497252474969015022089749188056480233311661406289119178018335592215021478399627367620138444976290830677162429816100538061152040983721584229992499589435019320005362267295295862183344780356382923945154576915077871511892803821314639020650529843387885712553780509333542955104954914503824248536137460612290639314656242224057810984399676732147536695281275804700257802421977196865257253046122407144136523506782622657567493025741658601528284716918371784110244709410699874957340714801548116541604898253011413950926438647654220379469271512433146859508050471359124131653915554090499823802936023950660224693269621669438779843630458331351510736985876141465981961870473206715420073328475712590689602813923557357847465762923159130657766373231289430122184956819188375455609269911934153194963898063126646257643243776056858353088633794302906459393559958884281273257583493924793225004830064071312672324284062269104355140339966435504095198454222107463956529184923392547618819835160591232200837061880780902027275798701237699615455913670495820564092187634146282109266331231899045386057150256008900979775160329655690362807782468863535431790564472624270074376153139137086381314419721642187853145137204456620788871821629305055495222948093616975262200594972358664326640560315947574050488586657199906948413874253332750287385836057116277314426049197000423616708242203442152890070434526853680747908284505981610280932681203277680970672052063675288684330498005126911313460748489288877795876213252226096382189398505556610703096832484188057724366608909662732603624736207930755401428920337674685892275648135074993125027319553950244484363345016960823248868492792307521728153455049306892624088976940783551728345995024200897529125702510851864651018890624276779212474158861269962556157767233330874686500191589256569256710607275487336517805772014815078385492978259100582337159541221061735912506024238205873941072059322699016019583162265779533687454477321586308556999830635754717790934520851215043076625323345305919059540090772867306338742133089723427471822841984941565218615751919401079916662564950634000132146593941632694751339501560980593421556332533420419973818673875022443200228692828358738283656791400265354835889685183542381506701542047719746352266318453050423144514160685952069484693668550903379194625686917833716246236045908282617375939616890997039573775972320355098068613457073727674246726758420828237512866927819329863807191246822723827370678623576659325407099783860652556491904677702801424932956923676332859290314449903801008862930178446523251352097149569074669642473803903787942322880532102056683081834731165569404646844423032260735570231091383753667453296976603350084790824295210071948739518643818453445166069877240281326815228851176322365396411567042665255001468569202659256290941852125478659917724390220261105696304471869548722021797821094709394974120225542783392664329946945560588392982652229883330997865190737128482267397624954790025128755593943354832247468708319059045857271472718001939318303289949089633201053188478280893300749948547875343579494527510667117295062974263568859183787526435206509165876955531027086201606462940429123954158045332123420695149687536535025249292334528571607305115902110064646259878164142349351074626427335510280163480469431374398889601552133458661605438282902784831363794603218919812620744263704503296899100775261776993875813165843406228335515837252911229713436603286067267492491819430129684985507568796802970204070476683194721241324007988456079223742236189154588425692165246392860614384310311428228832878903524607878629423074918333853818636204184331568116754978081500284453553963436327879229004956960296191572866265424453394975803830936175491431120887612915453932336522675365762445768380565027195578382786905137726052111985152418412411866117541461701613042641184366297272205167999316965997104210939828129756755638573735405633097645714364361714957946138460075310234422644824278390317069338734562551766321106027885887015432060873896390442203313662980195448421293382938544324839017738563516185311737949063204620788397050646639811569784341920350988498938743246612734405004531948696210404568676350382827941911397579463650045435609801463863965195981957548412738883372195636344882084842592644616484000704295782303713256766865906572618485542761246103670240139329814224748549887735066930032976604138441170648117871835640232701571812128643271440019428411506450375503048774037713187803933304730349605775846189590506229819843285133775767001625101205832055068593777362079623079660065407283361986154496907837854575000483565552073869335214641794809312137383278160110299545411154265558518675793730214052994087093417087391737593712478441994715512834897869128141388297194874681608389027568570046713537183571836420003547510386407556689133444470617721038204631441339823196830550842567039679923975960940932975520585469708538155865821970809286198837076220990151382094652057407250700773429676508419292925425312739599842638806459097540539435541021204640813010856700438461413571248280445323366754940009592632039894641222963756232229923185618670526788588040091890367987458220155163213022210466058925417218095502488424137765212932030703746953300705546872704972050987207385590074682697682955435901808702725547994882784027351785920694895976048909934595404095251717272634324562191776541712272498542682943548641932201334591084094299178335392460638245912422126659313527893791575314943464649439392746678394132271679462545257618291273694941882805574119109619811639853422159668138127713335487510906411051495190013438497223989427279091025300371203389193189404624753712215975766805243136357155627791646997488937014633416570400286799101659028045961899847397258844872707892702019056113309416743028266215349914711121905442816320282284658789678850279247630458388097392474961162122370485949435123818991828725414880946582106851814045855143397259150085606157435753334453659037280862641177238450100410202964810616753951976469445518302125617035336460192032480158182696554213444617677414461533521246020787631184375833669433618599737148377111182227886928928708270540180776824448532171602208648179620419443776860739521522593591149259642954093655724116252810294903282123470490411869551496982203584346782339860535450773752793569551854703383931509221986889756583320586854211202472352167647945255891635419401954725495079171443796091713759264158140287909344024113894819194487383848103890088293765683813595957572974067054350943291870108968422498535716817724479807373665647788757960831847710798372001053975167461589969645279461791794987015875817395451212801436975919558992862769067824025684720606602616414910420602869826152622889632635812435869672006973847313623963746889665239138492054692744420084785526181257018163449981758346201544968941298259846882700555443639816392943286337017164141787166986091988868998360466936240121940429322487985796846196141606955044350605652490599479362259694598099141328801185689364662870272026569214223708237853772075896359130641195342093031053645069006997764527181142262284005150369869157899299572820698194700138081130787174266180838419016405625741861134998225417465848475132417295302994317298767257292219059513272883633764102509180372075125632109877918138175649713235939042402197037885282465920245990906096873328992814868301006816392408873529455652304268970714521872974344805968860090494259059179840873290077440872992653793534197884624679647715388890948416686846354270076718218263738552406588550037098048429542564480524743429938097459397838734665370064926324474994480489487783686128362354329657301883193843691479313339003649429598340647948922641161506392223845305456823683008390712938203489540654313840521527914124779078756392237548662074120788667957125042499517967690133837503607975863277486473669848293136269669253488933128784488395729860978499973781199362022661363037091218141621354499232158037318466813012301378517669834577137768468115724313109667291230704741397248102064165090749888006001111507091399387115328952816164480545646494134797542041119391780907795589034157918605540600399413645459282935773079831898333124777600928175871995240866940898635318967913904828259525306795691195971487180212973841099361528155222837500587774969763875440867032631335173657622037009736643490558546338094410951739086676170043419658847696029076575531172312469104001085317216247490134252035931389145110811700406415007441683077160233591296469746090666064912037974656284294356051581748286488316214330353151270353681098063994616760218960716837371916199852901698709557184903646659755953857121884643694759970852653032177170018659770820741445060019175540413358772475125057963311896100116700555523425565570162816764963296901596010734963737206992093752257477113159430691886008003993630025281936756672794904249003844363797879735573818687838814151370173805417496349162299450497153140335350460520983784519985769726088681653581397908613428991530282683069713831663091297629689726813684954611143551893700386273973049548493221637402938770637250604138145386203104591927753726282334010846616640630451972717969664557815141886813015477057570559970921902590576805026550771452252476045827279688986707365694796024299544070572155088588298434156850560839759260904586777988293178585027762580069343975966035170419594017682905769007665934062673511799405779657870505460864258013293298877892172743072134011507338384682940998217419782724932009037509104619259277852549383366729623392387888810657700716615155812308115240718260911430833036510571948207409915738471327174756740151245707194464272929300921414000602132694028379114767495729777134550003203928303716202788426418913737621569817866200847657767958634432923291832359472867967390039082732373148212038272129397126292069824112417315759858585226090092237472566493629335929940535529836239486191545056282213349233872348739470496920077493699590617377786858929427698289503631236412340385531916000421835711820983799176120129406872896703096615192112787921956418897149253283694597336478620514286412393964335050274667701071703053262301328315666287091822196047784425516531330160436193204646230871680373614614008810049217878760815604502733618222418745312532057214018621728077573993180936593812094768409231718255490775316003142896065299599550191522171625988860003426913617031993927431094096229116098378246850951627669693168114985480249695125748157092326332813307911685729411836595044926717628342808664225433031615659836462109635881561867735746212379727401956061587361875527547302758158946585288349863559846693915140597558320935263575858500475919496075204892750172008790362461710827692767139173115088184411765055973348593618349764499600383952503066363789168975801777088178406151172633102871856623293715422105846837298028336279065910933815852622923812230920806919165237416220260745871877807902014724160220988248960505303753361595398658965368782993067587646986047039130486249597633770915030197750731481136684205435668329069680963953540141823414688019346483133691456704763090815615945984205185475387806509530336306253361775511740465003081499448239306042606927335383090482630200532038638982724314983631026938269649782202220872893084018735149430481095066696727121553331990948274970473516780894915773941432325944010941228960439987138426002508318257306175199938115973734149818798212170230543904539179608784032381601031432047317138313534743575559046279699826561004857568825534181876200046687962463099167780494217954095763319993238842094535210219209270361014928483246903364385729000528695745614798108212656518799656762934959298121056551382101008291858531017479592899644670661032678805300998044249742138198703763397702624071457330071427133892129837227410117880167420504503967504501863474581618023816499196104091010969265069314715830193785484673006165558946790727186057956229905254995095203159612448385015268653873433009122479555543347914220918250387019876762998416307329593941707811007213369915966142634679699472164393170007507944752867843566472763414769250555318370208864316522060358723197281199095365799492841042367420607060212053078631296077572618361901250588054970327727323013501939962401948250650741294264497600703364297885245643988622636379407180221971407287792829571060917709337697794514971200702522768056787215229244818526126557050474098939993265414110704686118145133464100731022661243218096270590642936389039728360272294394485567193323036080794294574513844611600687688182986882279838357851461414595411041948237119210252324797793037516498077522964216533958491561185433261728527206870506371170575293745724788236592517237002564620421935886027791659471678735846973295400612951235875331234851663823429611688851334032486304371695398314894573036471083122174218391430004754132012811733787786912305967002986007598201823554095702553114054494411270760762836579333159792732647707087326977570304521061658078589801321469869058796602206602629426263711259342306771836998947837280559656055209204998738371157499642178977335285302371091249810385939051850211678424125380392448506613224870426847053953996152802086353126018801460881192252531421656835477680699557665215528118731397455155187980625348615936935116362831617742153535394232959833824245734401874186159106639707136788292084678721378587187548324283761412915083579657324772553657858247723657532758708379655811005103715104505696799355218980923575665146994730938812453402105344577202717357520916981182430020973574402121598676137037884141394782891592803322400098345670976348794239704202047126524950789761212203391954966258428203850462945890868978837359204962724460863627025551926716330500301747235236611814165918763155932181087998639193873290181049688758155780916800900813339391492733012384877831110300967553264848853884475178416305186049510453529693151971697602828047388958067796333545269949378586846047946320187192206969188204694439975817646762060015420774727634481633958034300169905007011186397738687569852036851159736393035118568193859974412134678976055510840000285712191817357460079328464418068977155676541479792690216928274537208826226192177983456678619674954528868895055381666837924064685186640334506286860461262263503264419058421391668012809352466042658309626425848780558664539873236771844367016750664021786004894063628669053459746762533961570452765478775926007365186416692091541944679436154440296591210749380519381309747329051175482164303044245547254226740943248904307999458611905655476419088867344056594696948071515462199842454861440873269472067103058966127535940102946036913820245071013123933969315961728827393157444951333341254150975936440396693491599059570946907884482849350711694939184737587680850298026689632218923534932069497560491414122817367528851813993271667620501695571628967594747746946794294212828735444632728587981427910630218321353182488745371966659891626282381609551936025846591089547866714147848634904974339904915761112213549949431516455234577849806834847745215556843209096282493642155611192885606844056270682497958431320896326649059873841096990333609267068492154605430170010502337691663436197978669250735193503142825431963492107633354612354349005433077443858856636692512294592204584401896442321014229140010047996560547826191989938218711176439378141462465237769428906940706093689611470922741940610120889798513687872714504812228623718152469814796215922592250270820626472749729395674595554601840373756113898828690207843421199802660370085136881173558112167852183638026975888621694749264487865814510104684762553482581335096702790469241302737985410703783671273986926774641629707949473886938879494383504116649049279512244705665764796942727633310779711263519529452001510553412559419264430700591815850851492005606194530362201796217344623975232241440127873844334586089063832560378218099115052100414635845834101848438233464128738849967707331576595420200702114533661400201144336951464967171097327722388602197097306408011661650288966957384662614084256745815212749203537131905146803421494853846696220635630485672734609349183921264158705501723437698794237658189545523722116346099698133783298692938857583135060675687257836749257204433206764482386127087396435636598925301964469245546042395980997699564450478480605952886131795179950938688406793516069858151193939867500966188317038925883520138002887843655291611821111173859265887156472458960911044816721538011850474116472543973336765887244747105205269925666701143075662640609071585493399969424718306192359389218345694283251132426341594002508427154675014553822606399180807660553558398705703834894224452220244788951121267769246599390535033011003314088907577815027726850521124368132902880153634668595326502062338965746655452542769889285835864340139543762314412011573467492234133205122464840867827845697855914072546081529745693963783082803827414754420441996177135745635342521746953185590552219586165687809607143008933781922094558701371053839031513010161933102950731264750480551004100180300607418274643184280326157601873909692705035117454481968627615606942444050123077529030689325750792099558743444852711157339053806503142218628217620426109334799557052234184761486800223883715471760695985686771781575081774201272462968331277451993491973183769543958491811244933445341293177412635710578519012086189517005527959869724442743325424012780253413423161839012334695617371119361226730283103582123629647307553786949639826326493634429505394289524021382285339589748699068082920701560230056169147744809224185051441200413506192305400367614765412484681504038959207741934417958618219883288733948334027278317591850877517376483999059559720827361454663637481981562500128440992578214952171945150561387286855641997921447041046856801387094656824090660821338904304061240645029006011291692191506458112122202317057361413982505656125219515546185589356024172415233720840002139899890817260847738654840680885748288295697455559614808242632060495799652221119449272746984939265109411141307744954151411148749653829104425149542409073097343104917063911271442859914449973378144461231508500466679192016458023971543884907760316943094014947747237412125248589104691568573006518294115354553993658106801939248307644932207213873789079356613109829339488912449132531582959810703088099643787124166131937475522660526932538853616637996300015849785314114654088290354967498117360882920297265986624327770954871782008073429122183824288821187701310860156586385269342782066082306606988899737162960581665852156513303738475767184313234608990709299701048920550857162523062438831999390566900329513832959892565240044257232262936367652501431445271266831374114976718864373956657867417042573384016827323559256690139698554747922589034210086947575209708028454842436424647907223676220574817050098041953930083126389913646963658211538524938429427363604540152057975206841114489811395861558682823508509282298668193517829626937039720395073264999112485744774242990165747118404678026181678794517782288864961015444683687657598165956541368499452570711274370145515319297389271802896552540843820434239854624732816516006684634357061144928863511940986011117299585528066684905774399107271352637489571916188230280838013528650176986068049185148252399721755583671986369309149109097533665151520569937484762127765038620300150086195091963216029651408059959947943796060390753607353061223111124208214137024027685503025136420343747633306557733241016070855522504821470525407717892032960681499695845018707050827971783958956440978468594414182848467411245196172407821806642765280376093405207482941626990282195965258240009671497108704693832736637275881134444669441054624428976849277056126761317908602864070087667909740054545217712930935807198248561205578525966105451315656692210432569864602325473085360062976663986687607608630557128522403329134095487675107891098203104430525656385763326095296661029447039189285584292095429547146063857361307092605833652706611721781966442398178426863690988985817978108657875412712233845736486771784326359234107585508710218835800626062110441192333834204524331237907933070601506141841154682324666744541331756952791051289539178553498797269707764228007960480267662642929430966770661418917551246537730155783123983093394884861488767491515261826303460097410652561900578538396259454493850069649859513442841061098323692092365436761678351992890996449999403464901744581826620476016727641482490434497739913529686305730876306117092917519492707800511254290113485862258065699369018223422798138256632056176134915465007606616080387699928977381181089586540801257030386397997543728635414377286817425421473025776298268016608111385468484492728120516544867496919337510014650708738211203089872531462713451068977425808629388230459513760547458814025025003564591271218404070560342931675180164520438759691358652657509584484894515581406997367752184743517136951566707636374022515550651513359486766323477343263105860246878946429957820983192385552011147369862469927961740516747097632193392231799799018262313846106270815822599445585680548827916925202378850785077570242344812928332830503510712418724618690973673991881532670577747284789000021893299628674204165870627852667849854514541106321228644441595397439251585865108170711067705080312577000456103393220803729120826867820247132604837949399512508960843240236629199748822307974917294131790674600635438588860266158838330682780278153583527106087804120501662202022631529089580073399780708607472973518540230417708130938120223872785906132583866760444406870662969389491553030926339385242266645279189071359043964081248922951408703275507199320356342147545081536702195755580048938316382793660609270023443602130448034401423404558938749491577446845294881294353283433485039144498061930870116149494408492446575160761817777273508426428340994390354832991479164355799959929335593349518769092381360670437054966428103480234702398508041809912115624200760425424943963058884305660117648378132235089713810729815499848306321742710099708310112964912335567818312098095880789671821939322980653517867778815242761595225484503723788186918115056403550700557438562466178405618615533118504435535127552402478089076254685803953639781056470023165278609376899083629419067129155717599436616968964080342888257983215178134015625098270619069133063981497834879136517362397498267639827666565319102108167925519150767898875052646979696509231857347329204833658505455032353039761370784165769744304840015608402830184465344595322471361212800080218706154489381329388407216340663922478050858362427302299950463658779959313299172077216619388682098794477205591362517286422280394263994514588911322556343326817923001499661087901441736493983055643291890110332098537329614738374046255674384082729219453061624443438294104391305907632554895218460182017363355896252564599322176692594585866439185506615289004682622491519165322993341390832852691594324551815926393344251538207678434418096079983442017902419141654657187671775064009645326928544383955096023432788744168767484557059230189935421710406011980336646205392579548627033766940833592274488583570668886387457069313037187954338296071981192759695381623472413575875960848088145111299465556690758999854070145920271441753987405475792107659356243881950364166732790670657672807998365212489449670921889829563628936003991450429931671647852792686614665279031064110009727497791680971303051723430362274803736790112979326461809624647247376328960579370727230341252283544569039569789742027827766562257271797821880059259955222466679402611742492282609717267367699868534225718741238005461796638821440255028481948219509848219846793322483518040569023781081488231965606377645658097114970640774567448547561278868297117356575943054346032299138772874314124499009031243055289492476367789173555521500713240411943113176163753250467969662245852744813847723520922984019684527478996289525640994382170215282114601770003444531813198971526716736758051264669110453267139507559605575065797625206269408890615007239990327158970857715236085972099223680830531901949917661755109820248701577339939545858586338619231738199555844957262855288828300564726753700803313611869340338683361248278226698869815386658876888542502494507126334239126360383034134308654046744321687073642405137492996756325744221816909508222953066437383169554803183395400579358496003460251820374704700111072749396201403047481992991575456647543109013103896438481165865899108971701561646328839286632208350799433218755714731074505609023425758102696486553974580623994924575711838701558423846691466786617540005417723433727070548871203083456223051738391100921303423399305060169231150989383061521099474674897631540310460735456989962454583477132369676535278520292810267625103395554863200716290250051718246771325888123534508783476642713537983952413872929932935980186413934209377209836950494562369164815783722601110315577660385296361969688680850356301372552865750284327163523863680285343297310748265312399268452359523939500406665460689458159653007721216801533497510867776691084718542997286361688121849396969353575603273099334014040212791961885537475479729791121810273587450226708099114678412502714739752458728828794037794473159108547842126519720713781982456573537383902667789042639040676254089595655436776125772480345220707410216697463769732118878864472028778728529079967230029843966872554754428895045887074255913464811164440103008506835977073761196737650921162233700658092914999618481966524989199802248596977104311363802153720857388272247547823168969328706414127250328476344116050289357587701738120346227758490650779310467261539303677024775884606465468006561688167322394023474117749147097037378382490568736440235773049869070462755297384483499898379827872613907728057754777984497501605360311409008337589319648861329827403409182466032410257894607324464587602126092251636977592832129418000397858144782625268930207241472905293566589944043938621537744255159852367176713246591921079997898882567841456200399970921020268076750345095081505984865866727162376359974521727788643185542582245605085805064092091277995299324356155655978036294355839347421124361959020482910881966254145815001967724161788976014463861639335216061889241650107768718396943360797880781462070712963303483336710727084368105084168612530556826852836906305414695777004367200876945206737731219642293963444767328018179532828592428895911138950106212111909596105441832473252446019325360494443048251045161293449650484068382574090168156695476400308205144340447111580130360301235215325549099822303395633676453484856116899681054683160985627676980238441667566367119149655144107223016817674169160250089332102513837832243364431623467575344925394390442443519836639729463080937305328040249449568358694385072662115063609890305927666287048628234349927522647826763931862960151626903630921114003695327562652411385590186522455094567649235957825129645535854055605976528612757813568127962323149722259147152063682713242713021599186052290718599023877127300639168781036512256076874915337589261425569860670814358007376428962447693968139315339360779745850234138740866451842637002566111230749063720868384896532062041049617988525103968027505357153402026641816456395680189892877509525620046453114238862621358859492245609440738770120152342531683827445322441967652138896357251975395128781816870884888514427102375132414644802130510233199140732781248497437484701831074072614765219053676424484551235711122253058463598212318445832183205028013594913773245163878350919459157884725508694406886720186425218766437484951025903496891434813777299246568425506452473937838016160856704816491560244425999108133268511598321307727314603550943052855591250779274555755467869613255878917690158373408502742722514139239433053921295499954005329775610852442733962738137926197200846022168486627439986251280840830703602568416558835000779133968608789425421378474141649846180529171606078464187537821619397212543342992552313942555279299566256054146018821595060232911106566114821018579266066042686117715075142548280738987734863755931314228509521782304231934156013260730002789224688845388788191426297426194822212944255052740061247479484116439428951741407738604709720577602996970699589310134094279622671231658271756771056203145392057025973017038158544635628797904627561609370326402772141611063543771836888292468443002230122725525360124339824195960118408648503012026712437481135550376348559315978693294945433015830165423914909185560126731502961344004082687867603297546316924515058893800290021425443248986726817816565606655325900819580659782119881495758611658850777621487699175179779465781593234419102917871590608707910664346603650192724471709220753880246115830072505218796033273962410756563506207272963282762697524315231177777429513132576568562000018128238788244269132300420370744521652974505940110543945955299427478407364664345027783300346534405254209842387592890727732027657949063030963011056078902383180786548378082022081687875562003621099051598490974793510697392546272237315261178478306456744939047500997815789028291194082237935487594021391692883419506089845638542578941735633977651315845930666389652044055590990195246262570545131661786477417863573897948250030674766687777279431870147903248511760310175960550059694360198152069773129305222825979830586534105930146123569652477082526755513830619963720422007887918134773613827532106666215606966616599912087435306382354897357198258965290951225116417313112205768725348721219518338861888750903956957317339871664516951991862246307177233563423319373763928903662733746331651071343602136301632315385717691255913513058089288149689646076421019814216022130957940383020159935603413146196421061792980791214431078861261328586383322597956453985035735942808212579637001468651495549405480307850718505768264569407168792887262141781118881824251269822659313366205181988643703857445447424204460689154449730679802565571480190353587877236595962915808886376231986776565505184563284718130561430614116887252217152505205370551986565241426527448264766513580802498736088996309304004331929579214891989228847590007948540397003457383509082972578914789789317202963313400140903691597795023885472236544668973228056636466143637075445450634669889403723096606122786780387742672584653432148004057276121928811015065110427729277195480077556681659207082075257885352247697440229720734625167323974597048290673865638474367665401074449639008681724010048101416761635631441715690117245253960600309116006112241175805033610591462348392504756786883517581283614359038584444910367147643325581149920837732097362477992942419177200236337978670614506749455431383501606667695438699560266389645536276565534505893021617720417333944992543523655477558880144302616296184534246770871363717291842786732605390531509372841362501318574369014514670772749449195133756095847225641373203719625316422134335776458227138560770018475541973751084392810277995415890188162380332834135097961433371834733127527975189607530762888966092709137942104740311306083173837219579457309417187328849921163400435378143284667076444816503994081336408708647891125805091287969477074932779261920525118096369534903055945432078733830721971834139866192131288287499390362217826712105382451291828831488210940858996278260549533298179463320368596720292043268544785353244232157420863560963452375306189977837900397801442412417868159674117562632828316857459313827768760948545462032568740939315980752824240990133110288265090616421543039035136958301322163808955128801301867339171822265039527769032008449844549632875967782223214761499501897201834120731594763625262644968710641288448874860476162092356999303775335924654953092067751880596888307662228194898993989356142999325558980198271909844596769686074111759750229351299507022976986773971387522304838459919401100152031747138201781423529205494444550966291981414387877529531013205163535591199891588514218154446277224496028500636318694245586222316682960391254774449028605528922879361771595464174044368241885829000551086882809684381416693332901655988558572570246175212518959593510357409815405749956193958027145293245138291787150014609715465947836978916681556110992149181213864813552223817094102965591947548446922415291357163284836464136105048662809485989584537597972054260850600386233261131990867780068439121309753189759002872774617037741975326573976379302048232449699169049463554932314319968165291637274420456865913210686982597267157599803591224153071740633227669206709976433005297219728777387699428198527384004041347948911393350176180535968795580660537346482674852418605701397675383058828529719180716311832445156941897570850874858304283973730879949891642661040147577503872474654321798290134109475675831204917343341115772640491079207465331812709338361364999961938848467731792986517183529287849105857497127622860031224326431365482107268783614147962429070022707050218578428288283959833413350633911076378228172180673896357778195058894692168565783896224399209138267116321306361049148271449298821666937091012423404878116075309054789642148179938147340374314543490690671579251928568339705678198665817515433004015009359896329957647418827530180746740058298522315841567690624630173893865791125077719732936924984542244853438895998221207913964956838166914437136772829073713236405450203377789788691737800843091072006588035450843407983402519355802707806615596967771575135090633556409730857529120341033608803344856213565139593733751708712313074982440451631722894991298067442037030880152551914781917392832339059287614435479432405389119908400096470688147113233837414492997153363729349264003102256722158839720317805626360600940206470841573078813390380797628775689697139119591648827858560191017406694262399087212863574053039172802876857738441235179853575480814292837098012309105117870526331149684931476456597981568197799025391590011763471674658077714821109027501011516691744914056597279363357165594666109724045240713378390850707394791475262011324215401574439175114197494891480122819855779036837912864009326256486400703546489664485210203119279486339038340103431322096402208201086377554316034431795213089873661616808645691929506717532636376367236932883558097148969320591225493184719693106201501342577392759254630372620412192119355794295410836124130600310975396047778864522693430537601516538083365210544397719892524197226853184918866995919678694124256391404731837273128794361978841059070614382461525632862628533338566475385145528584772044439926781962127700005095918407385116510642741189792806341048643734166511736973032112682080096663488169701706948799311956047099574368990807147844829812775600527343037797763734127030790228024335879284603589948832115467826471423969155476963462583064969856632099426265664933031176438782024531067486335230840406547501721905415152943885605090158618064383573371170857038964640088530457661152709888358884621197505688097005662590757349697444535104845255336195122298059658044801704800479607714460053802923041616291522223102330916271066632213110112858325351934907768835158493729504219865136385529161844077985640654368388659724332304573898462609949186477428862514540289008501279811160186622330405676059339799092378557393229953841249146929886074144491957456567251009568438162003170718356564144322614025912979766156406371973833012005887404503445722824124748138953666414030730418343093550858341269777440387088351790296794608816904870023195816342835193704052996065374755856094649064976372973856783559394544000368643781006518434480195956203496444971975345805754791586512525233237136149279333185046488042463100264442790294423868061238658783483461911518194352837829827148142033117393379889585888896987847490421224112910646704793186554413042296343959336340400479290971332070527681369420697760754353259808463317702054011277822408209977009477044873909591867558119987987611115661309287438490567710030756738583345483742275025710121557886728561804359847614373068184093454643426246660471473284198316092161885527012687602423197146967104821132072767389505120893005750818465845161009081560154112314140015864805043523295748262606328591987073934453842769281260178911036502197426300886833922938609622921959112196039510799525755485442219087340822933634632938802572904752863295094862864046804599319521827817346301766625699798876685618864402423862976762452182233060727214413745004109418077920155059580460965110991166091825396974819306438269540105980845032954168220263010739369332649251861327662458142454815264332515876893643363025427868138221501659876922928063523676041924972773061890934660666177868976097359886910123045486094636274062983072476757831114619791880081580741454480249008208426214209870210376985104306711846392333379708281221053486437732520333073379086437490427776846533409613708871321875850070546574284461811204106036088545297772786356725989131717008465862923405133544480761539877855961994652503945585380739031209291237218244578353794934776857153282158568660677111475162114429473786134521471672698380293106432583124130800771271623925226215075153278825342670232996551013892243140598564588891930459257912594625105410816861149746624410219547630661662561539003272321538882240401700200848889214741147083239045213324985933994258808726746946824163728228354897127590926299124055842074363532466047699967541872153613325635492285394961934155794991244890118294923895509812132490363308118618757270990953424490417651665707572332452012824640031253322273487313959303415789617278115893636976858150559902291639923236685793143459253873615705689284605373902730681334626543228566424968343621598124168898256993823193264658587486038818978080075040879070778917050627312600219271894173220377105051591486831627360134301741746791337904724147818960691679159210236734437964259949393551865757444902783857310338122335660434371127967392874968136645445613853802261795502738798768495034927268305181687918712306479829246526468473018974301292990447389496586337463117696822609212612004347758788824188345549877933313950468634865491785688605255521342474830950668519202633539203634326703252794688857232084841927954149746391238475359018917010317137521312232713681286767593710287929595683611269518499658985716264355439511894426008594820082435538981321113020034920963056258211379293769630609466881877136767249483880931178217032538372576391437074932934034086509355819971158042102599497837343250293943280022272575608887644830351631581960165735942095297619064416365845533479346301843293796444740599406460731625877486883259896699144730442690640320257365673327263711261617121400574286394328209637185160652804016620420589972217177891655951097162722827141288360946993063615482974974978428528174572444822539983964695696031252330736712009535706230804306052524418232105688077865218922312115854964043112800189780411643773816350054261205867750667151932026617606720429493038231970155958050904308334669434209439492016327479521357161692727163016864574105946132929042689845580099680669149538824910481300682491405326638719026626826869957075716556772230296310286764055180853520101900156259534892748833940898525670368707222949992347411501005133765718861275059914846882134278434668670749568704005268692677266302415104882851616393982019323981530442269513907727444517627636628025236567128200109099118397499748942339706706984309951098856491522338078498309820648435634825457605632083927960529218654656766584222990924470213040508260266541909542247115538779490144575018198913704056356623002204512704423759327784335814027782386988142869534187086088669367824482493142287054021455687089788029283509490085189857489070397623978843236081763322296887402001129460354788756777644650779941861958021122697472049241978315152852078421343099712824964725486598025623044921915342200653886135031687472348170152502579853988880560015359699314093299679003374144049150736888007927745386371945719558343743853194349267514101015264074917005658587536917517887825496359060681996346960633839033697414575601603158295950076870750935815627132684735403369789429752907489424820451734537963575072779726361484443063141514414556141901242092562147491801282468538478848123384286358373510400642659470208400549508571639654962358702628099567092833717181931519120671496771377754724456610183477996460464265655563981094854911343905973884244928266806172939915991798306836922863711818690590114749631179751327677897043643531009548087431986503395344978811233924655980255369920829768586400130383175003867491761999171638563684045772997026296567162723117597879659989641405314766034632881545286503414789299835450439942015478119710695106279298452061787564901392029478783097737130517388233089472217322677828599228612191235699141408364646783626020214624858465107641438463876260209298593864965139975679790566004831377644387108659773555722148790483193562232443155087516100240763230271474647492036132228740040711774882281714108514294068888651544620341008180329509688782825972615103976509023524333609458334863617216029155956245224166865460241208726294949233944259797072853936002465683258078985772707965452100289649280625548925205154185934445741310740508186419967359423622101754950954223820860371770551327438350237865567066213435908134536612069615261782548072997709476393703398763629735964196433839558117784740523116560358880352976899232999987183868570525423001359718212012075213850114524285089249519141680072243527346568169065688578319389068959141775964273792203120648274691895679882033309989971719935525705729971653623186650166129545728758544161104053302455887038818119613112699818029711717377604626684537486224293375304258464775231558392606692574896351506859897530905035940289145676788931318107150951752586036349901806243793140229610229474114205899340533156428078719070627771795563924422851556715824033229208671036660609710850725104052185580023382772180585896229210707789099649100742967844570361028258341059409626268382613589313225823357252801184101373391737853600222897679057939039375769797464183358137281866931565968345494675863127258333512515676374392602825250746388488429568282839789521356915306578551654323307005742763700433613069688609246533403156533479747277704014568808352058922172423191440821161630174007674330690501382220529524127351251108710184927402754640740902659751940906813671641780946278429332727980415956340136684503834727413452434497172283947184798098028994812804650779876547756071123604476937265712842261265581625324889380448022055437245811990876801881882324963164167536675364198973808077394979200843063688398333147877160599532859873065657043340669896302390455502646832228743228628164508496336611320475229286882080010604680705758578598931939388290790507090452911697191706300305698890616998586622330097786226491323413652675601363519602797151310312435505805270976945139926295276065128912957590867252774836605557343377219513651370818795989843429789063588306787086396813798540857185483430110570534631694459708116224036924343074478055695907501778520349105031062415414352305732431580154888790918531571860185508272909716532409654638306226319145308190398751589501613170498162767698781738545682089447568924550312070421639680885165131039072022710361923512586982225027988739933460484738627982060568215757925559833257650577034399520180271873313593858634228791865823261907557203162270253945773627372123262085716789832593251572462266910499719099626812030184097462446132198388730928491858059273935533882507789570264798570714288760106283874783379547508838830846441841641943156995811374692593090530839346186959378190413955730101149175426067555598713487088491768902809220728351997951980970414921600648786700316837613925671552092155116165437242491895289731800966306237355932214463794177354878017978510034191438197795797085253910543206784622013801392752308631839787334525083717914046815609452285131048961944890495828875390541407918538352983298484314079647616953113541467580825770148646274694772126496207282082827796151058517179472189236935754087047427512258559973557771768270237317277271016069199213935474287906044723904620699646457678309483770871851919126310260835230159488835517764919500111694294196572012980379273171880801396164216242855031520196863928242707587017088786019861910902554508171838942344904214852800676989493379116452967774180987509717397917195824459642416094086484614762403130851642750053588449443557815041903527283310081533791578539732380378192769484780049391461910735242123988551525778226865635493261030114528764232191628019246328011659708794805366012006291357402598597420030558068034130058301032685288653714757284313241618212490686137733935629119858481562448067821293523911479202533390670481600892270849038604761271194736322906916818823884914812615623435011947469290995867867392359744162732262008013555825378271394654669204057933357165021394383772434322997946174919368992270701202221389152498125171773329258490024257276616806096757226956001163313210287390192660506527845909366064960531066115081608374536612596004568238735034000929750778898631227406833855496349205452671556261450576019106694977303906350061442883122165171515355904277246088941918700041771954128585634450950113109102681016483990179867291902335589193669604732812887837398042358219742719923888163485647185930525999998727179768712407952289753386685246085756323418897808220382006161632621074612294132713861075664878748246184524785272822787254208327564404133932920293680831590223519070757540401709402065662084308304451573226561951467688931308840569621641387948116339122953820438304603935053817509765751460703630487316135551772666931717383407420071243529239138135656846472219239152234841014994901864123712857548072276718824009972990055034844248948372458758409137580921155525738157614291030080615036653470391358752542540586458532296339003537529768098585978218858335478047514598598305734389778375805984856273390818742120340034478500030217691399166846390324772647235255325134704048234727483387780061705267134914051367428157957093075238976313284752943002975399699729759801432967841252053825773912703157005598856727905338241233764608379975431795749578387572833778416185025259198411331879767329848916734350934832219075293627402890386189945123995863139719806576755812220955942322842724832535169607592395707012073671790588929758398909342029109325497139858831200399397589361826012806678315585058464022456586397274614004967207434219417401239576607351340863354552658443084087975105098704108616167956329105658477064471768785173871957958643500152763400787167376107657089274855315008969802253741645406036774641691370126435713796970319858451406961105389705203308732256536721030488823187783745445632805751426309846779880352617996328354799659982622368382027412967023953807563848837976417938004576232746176518799319589055931388522511816894839561055800963332686320242819398563054504637893648532727303986097901013081747695812122857464236459528602728675568480545910207817525512249864880795749811060819131161277891968374669584734554542568890395532890081462800249104795366217280079039335745902629205810870670268110709060865506431552086908663370998734660325720130571693333261578538666907502783550235699104322408331634567692563605957819810542666061119005160354890764257255097448045674165967640865448518938241688610153228584908416129170789106716312329403946735464586634543805082770284404993078375069709554046691400338018672533100875830064188598177626160742149715357247432957057325858725641434350908420604961014193642927910141156416917979741563641721817188746307182151485737096311805153110358968225411686347197893666791367406147492613364982032711380008538915606771372746005223283245616333987983001065365055750947953920431080887694749694391738722362442139644445366458655971481258363048166577830622165760955466176610935345874915312670990041650589246796117494358405755132006446199887108307235171876605932944227323238519166036059287960363843870220678809329266729520139887115259324336116431658404449840701060575628420507888838503693319964972581722529325279412483212830246250603522128931648252384262668635702016462573034830007887121544325374124304555249357664546155397189070215812391378590308994993384518909737085673075743375929589800233689301605552180766502536313761399477422825810283623520987747439845892077053299292021086701172590900577016450261292876714286258824882810547548927013336156572304939104988296770340448874219498048135747686680992310487885725384530905243037446652789367216806766908308271100795806301219121806455035291309027739152416312192129549509963917897179993731153110849212025905438440831526768336539140922109924190287350696610406876879809486503466974218855904075606449992651896815107953328359310116142218462542888709120416169887116218679219306751944669827896006139169888109331248870503630789074262371841112558547674463576495464337779936133496226710202431959555982241019938222432234723015309050067162356656476003485661997667441124758719438837080316188978311982444496569442826654033436447140108618875942800756799028626671588176730771048197900022802015913508418046894111348332071186377483795072766910031419757230996941305412927179752561237593048513324062047898268752434147075066367073936620902282240792125521205125453381666089450848873056547070967068253906477862346738996341607050753818421095240389232166557749621504252475412122396537494035425556368914081200303480018486842799468997268184472826642385308183484134169551614557378667786532672740209032882061919264255614099076587737540089515805087087548110100596537427436752987620200647712857594978963912702791956230307068023702499568263821148866257507669935107937146440167395232283316010387510058227214414414894109860527796763533776929769427388095765184256412180412298191259628253639161177792849828104042284031548572091431893877482427110172013670730066609711339086013540461213337816618075347773282786993446196929754421026716442317995540090917335545533952750816999428814200523435410960249737706660956480447251029834073273815879004099913510043273180061621848640181982813106387628029820993537955089712156124774157599605163150632068669379261761131957155566744727910300822323021712469005252393913740687391373340465248563849880462606248452174400285417535710275634687813567023468624637992120155859605270606940346921671566686383348015158991709968825131003717778285999593167524009498698294530431845623502037511922863635669080355629052815792051319772552592087333652979980276746926536809874416114188545248699730085642521233223101137898035165804396704257495945012700356448454915543596215962897909030958542911899956321207083470551106514534123454987855039883767870134819725081751363534522740430585423573624569173200989231211042613185257279095233974731141247736502322575239927459532365863326207957916376325211060550499486608882623462048512501271147484522137407915630760977632164709730533562210311035753109052340052492607021729368747315424881024007202076833566272713461124412211166228853331925714995710521846074116087109556829879267560160065417455175228350760791088086920529100932849016351382665972371222347158357740105532622754190505784057923641199033285882019013435867062219101800572943709898108523781550461838946537680849152327972534362020999042891552550027395150833639757638149259715664819282984897940079935026882160148118813493680855617073453376580750347232715864665489182328326434947211199130896615838794569391329694605331468016130821313300415832546491374213652875493175472171732277963952477814451429715025762441053896011158135149588121724023998571762653668773527667971058480512501494391093124273629477952833500039211314398144494641166984288146043205244278908587038093708577798303196458889396238451646858055503933708889213685575125003410249978339382836027088054314062740855960313397495484229873772233670417770508095033776085128598145538610907567585854353572355394601580885999888988713925523866969253103332953690367764727777500205468357338258956912092861728136439560571188380282559821823324681711875136267036579190941484720918174425502835334712177723406208008640472084859884457300225009661226787233551424398064765766554861953291100866365196844639571678625688489938088635715557061458884442037231281379161280276486413728480321576033277662182595138475505183165490592401034423352015888383028944686328510626625668372908614292525936153959192233213566281880851831233215837007846345279605764975620399176372510652456454481541028128711999899731078856538209661400548063383827445784057950875833456364625377098286667302487286112817964038075089352559547225118078970571034411079880464274845359857900491888829663654739420076001985698374071347239175133664483663762237823447299389537791458639531822184001055306696900792349465489066384593588202156955741666098197440040486231068027463157472353619781797117019904913492121998151244950482844727740747893545649109598204259963177873902124712243622397343589576059779644988368153087882775475154546404097487839811081673087978153748390242577199909383400136644835256026883067137592131526215224006610719428902501294729757275558027742324708290830580530889829615035044985630952342195192463293694606847482850404211376608603424745114975707694238883832701838848313102479090855236921633539278262717462247640340236575680461041036115307643652996732815878179463499577175988023994040900132410372039972783673253357269904850762685276208111218499464404656119374693513861384894230219290003603439250605177105218215059290515238605079110304291396125033400838996331754160804827178250551235875477382070338658212847065594566594531354435397854273027594717434775506380937830185940942927611505655129600589717624363020573414153648743552362763015136896244605733437635813213484669739640467335765838999014084131715013689299311220975389744731344173786039187811372113887910411633671962761029769046621623027011953068954073510918432719105577666173929469800668555514931414739997019130603182007503549010579633196516984308242332936938431877901756824986944123530191182945364004874237659077371702800231299464107487945308402250803172380436552317065673861620014882863913541247009672289409889828193005535294058755824562597745014886718984041040309550903871658921176285977813612766697694530638378885687857938419871069223872743171203335294645391447485244962431540963028972184295504147847142705177566572552123200384758742603717284566916579269341707228432575190267498537130884176235574919266045168897180522213741525152036694175568448913688863443223576044171392151685829039812941285241535763654912586091008046973955315567783949709125540698893153112488863042383719766599258602133660776826505718408786917245935960787615236948993408254020487905734157090783343531932445752953419286377375755534914358565250388135784912530161299128666396759290628283429573040347726030568227117950764459620197617122062239604229615800010854874918582349540755219073678673877745582627456376140449257691874221674891327582832272166379921891149818228423911239683111206320393137080253822465664871284969153412311032002233054715052910093547493024622509575349826421788145929991038220927477653283008455131545371505728373713792997222695544135216376541171318285267476723613735592122487150379971328678692515594119647207666297902322171693955514034401943394189867994844414582849062049997960454072833212833932471980402024059226212295781302296144369073812349787785183758918144102008916180934268628981679125453998149434943107263035528382620701238583091134550879097453306436424040550051359466918082680019061694049996894811034523606230536099046572230661732843792159947911404509185044437015681989870487053792044658696855332790879025721431413359243229364617667982326604152077448450679977630576775206483363270540040102092412185308142620488479130302987873262129968065188754246858784219580946016223333728594086006784740838130702057121880570914539389329301611366658479614627316831830184670546643543023631973655380451386195431892783842039344013328241529971517861762068954662495497533795798633423926219856634026583636903814460787116810030937033466730421050400522248835851726625857621310685219573568868404769622746912501407363471150720048649482125756141840412551242806860435590972208813615161037289215380768804505631152040387641579951163105349567497409636986288645998527687270589229371803647137462628129221427684856028391594072521953821194304355693626525863444921077184057471410178457248081726523454769706114295555687217087635132917342362486911874507621165229684993084082014996437392833367518338356212609334858625362328772647938191585835718758203378537087965982246704321154360263771681416503081171147872948246739675753447121796624882178287119255723278513700790595994515359730080639390814667827575995681530721141066587612194519079320998789091871040232796899299123190869366580886107828955048273358602707097437658720204609597134716385297438319967615891274808314266175248564624516477786086841365795483571548051146817533573547284018495160249562771167405722845759232034972681184403795695805835054013622194380879950609136922833192919080068399536434972270622093272208317523331740684404966865009117533376192586356433882932029555199121815204284163170803974371056239063429772802099426702703900776735146928234539616681056895529264926522677818836035032244943585276766838519957444939984250173334454497179693170726803730384829073125467548039102140365170426231088194562535914936299418649628123236787762439251528973877041293339541587115367267890337494304026489305994288186865303378176264615371458975675071208336036080111295823632018936801231932917202696753440160298208176906833192880293458300961913127027778790770471549236971376647515892472627708863207586359705681806050646337500643341083971299174848213534342101728759440510925537247422096969420530616982315528865924213064721676138162750129636669546258059585972854300315409033445305355336433416021107332030581968111688162653198964874953098210778733391356629263536919361180450125293973904243927079472087703484339683909026441472444617216100083501913661846656589471022706034664912542959954982406611633408067220489799268415776206227573926984038008890622064942652270145674962345560633111796739877534051593374280097681202751322153847329477909977445440473956598128300856136924656074153464750661578543463799384258981394967309042993230931432370699532578894348484440978486383983321170075466484128010848681722322768194361554957934273060713548941989133482544284566626925897033248750162676682377102195166114642269932916157751168375578450463574938717666612577780352085659687279568294368244752431080874910269999930279607100938565405522432235555364410243385158036448171035223772126924423667403493415563581364589158181283841221772754203387931418674881259440955041467098943734474883379878473994617591416690515219659203483515624075472423185204455466485970039529166323038476820581194296815790466061755947295645309527009095658212465607358486777488164373510439635664806848629623316534108580293215169895433376090663170704400609700159837531437075282143838410489663193377623524973096394802853523361047332423984769934178051000688475003329734929015945797934859069055507673739680020024782933750980617522656479457066138043028192744242429863133611574675216918772211065723788982867840857563430140922211035919643270912456707572812624811375409406468590627050184946029806405932993750592276576578740100787626127836796478903275583583436450439917993714344291252283457338217726623312747664612394141859761939618648877655023921693091009029016030335254823072731559094454057671341558607414851315717021742005698090505116223017833487438064374500577843135043895769359152722866674498433891424895703973365129565902216664618847574174175179529295100970233640412288524243379827839573893221712156895887764676485579181632918838275545996364252086872997743046516471337083885876438898964821853398372845017696065961461880582801348770434323619581510057434952749374794080383447547387609479338987953426831363941826240947240658086126544695642235253519698975825974409520298764346773180930934761365395804567341376373075606945420404434426711429518438426804715762542457788177410595950207891998966995074180288214903321725929820290423822169931918863635129781391275418359433031949056610415172235879451498158949662472184923320344067807228200313178071812063650913022614194083881667171252481611294182838973364899622174208205956316780694455098996433517576670332628981893568093671645635588522952854477649607375376152370751374012713349249260832317944469611763768712358621936063313410388848496444431893447773607784218884505128840456807186904571566176762685045445776848615551708027287968186045635921602101905786254635816640970994564813247098492074403882675879408406199032939463522787324560148288592674282344304528690747959837827850687552078355095452253370187054350439582984768547912037823573067522769685736741498269626343165542300053135205283789124238847813086131759453148531909878733145167172412550947373069990461412750919412194799894044418311857349696858418556976727012855020430618216315276415030806238268324021557871789014915145783818587982650179629116359545201418910884450353559467251612882926635251842839112649702559005915188196095381239536775050116058080234181444822174438008188057283005667090053824855719467140527189660959863586862537073792018148328096525889462630314321744108662534404110484237942442803286022837231196327930294119321562502613259129170307095566878863524367495424278999244066612101884982853846752326541399807210352719904861223073010228247567813003277547065884239963360318607110880929501764720111787568872340985303939538650837491670557546088560399753424060237805854819021356402293872104883671344725697038284939557612179801363891904790662483101020059107783842150924150040983424264998230099318944322816851447234444960378996905029022798960184610798267964299225088995194977245820146813587280610010298287454465415417020232050969732725705747930416329986504699200846893255722496120822891087709923425152060871840142120590854249588036470629429862479880296026857277306860850549579158775165894525122949007468186064625802090412558477755090618069008074396645429933892213157306825670439371413257358279818878102176929475371980064937515480921755928741749391718584176557870993750115785615826272913492632011766960756218906628395018905851481637522710031103370920478059137601888652305917408636573931360814546592447186717063569186047824496438973819389147086786906241301985080408819136832501093083136972983128605358830332663163289877683155953892233647629804209576107648036125522651383271742182986500519047651695073565779551118929689830024615686271581610821710124441203129732571069779057782596174750338289753171963683390429497860147996238734199227467233322178652439205086132829073198131457322544710590506257784150364129619746875599468746031253633928426946508854719047251919586395023949572313821486000649547477258822148190915723850207274636501169791431550197221037346554536491703566717791991719018641755178166079339012190120109306313150860470231416108838945254621181456919358561158340094880911605380134546515900567357908049298815308696835195658331905308609571236640583762136974205582996147465104063772681416710241844937134290538832606536200093193537402763043822857800765108810096764787482774302148022540867294393682665853813168071364262581028619003692692571137259800171080578331191540518016312964211140106327158429803220218000966115254325779101648713254808578000834320737846848115904575845741143332677579261016021044488629904153174598584481362871016648561232080995668508359721515376803601429780830678640553934412650998392612189423317831588993658296420715250269212269081741508410836801810879848564944463422327771195657691319303314295026282719039604439839248178241899577551105618397894105046185763316051145920312051139950469269931279581219262132093874922272133076516684781371076168053427599791150951294492922841383724596086747328515542216251799609760184440620623012041462783120803634770804699371992407645238180297450210313797823236760802892946447645651819991426537233182211370536273096498042997222628800485897439788861748800374746041122869437672459233318727922167917337788360307269168397587430223309217706084167762694347719925230195369444862736383023793286940585929691845974269877776182164513257115751607611132351878869569193011859914124364142415880257345681856959697188764935368681270632899826313785495040590771548286496723408903566990837207965078618382892833728464856146470530660280682060574529730896580643846405350715872762863507523993131786364258749799465960775223178838920338100209096839540199142100159992939853561898447852375239828554198125061412221968903382818893606570524843024635614935594299612594089928318872095234685026345232703290530110934349196670339746142316790341675784624606429647443616969787286580024360038873185253348600471208543086958464713338872918859659343600489206212749294829151128626707803479296875017001324084116499452571360998065007173989778459108248976426292252066336681405144878525254468168513528691988513403567732040132885967661899159098478371567118519596472424061026471687348722705198062316690094327587210258710347027881734927033644924264006441487404530214165040050606244382801792206936976442013162021766420082555094101168859465570236240619053740515506706630926994965820145450785977687245803607704635760684084371739852877614940623400495475915332986777489968725523558744910631612615858389039311859594548781636038834420457127776597301383643275347812273492420250440945926752347686998602454949356563090786128480611097381172023221253348696674360296038291051425362877669286131485108524230174768452582410642369632899299265833755865393445374630160330289018701563835421476021056485009491430820635281171465812946687509092988717484464810547866912761299532489394306958897823842720743981385957786699702776537335667340989749492202773805693539801134000760375992897451584586752500012444339317692214459337217886769457151295145055063897920207813001391780907796680221474675763154603008741521995949542178187821598651753118288373171588264913715091678265648374947361688353233801238087393037338165887894644680587427849494680594204656739681065720257632504479357463147255602829079276738701169754671185411990323015878632892870453919302825161134496703485426838100392301406342384394869067758601510339611533891799174642633468831301415601178521071977989832500850679204527831821752775268242397617174756918256199041309675082375426897696274356716315904779002071171745953771157001637524279735010941456254923260339037849609741770632690765448575203714836388024890073316320069311047125791181849125478040043658202552594073144506127546328411473767084170968895854469776384269902351957420305666431618193131125847174175379442962108759866852456207128487689449931281222336766198962008096197849611953957868953182956261913505809673203266855825910916858725456576565832602733633261726455621768083180086006900752280924821316627715110579535978217873169118629614870334309797259138634023249300761368481236039996168712028132897002495366612405228912388269451226104936303147286448264527990138054322681756728860607480539823432067830962648214028854344000057020055153946366455992144850616902457742920752794711842749461462152246864010839513071970621004637371456439615524593888159494685395634465505014475933571218034118945034444717745129410453640027103939452469273302643301081282343762959827732504892590009436398193560360390863941734090670556108300248373040295888758089853786859611345271338339685790927102952954785994376007732934077003930535301357617103240621194301399390869203862627305976056459832466448993739541094708603638046091413196013508649376145744682945002069537461061179399437061622542574458125031553924583483544197351299825174836484087640113739468365721816716262239611369888845731488269501877196569166394914869437370516162388324684269595761281169053098111995786110226693974172529212091376431308979885611256883391102599299456500015045801912884199387014274935546727570963010213246148162493602568718424200362677844461929121225448329846973545564810914797747143044335260802110219531109178970847109077810102211557236050864043886382959628168108751320863698579699150202452785753479298267859308397599284658474895095708653899180777713242052041152736385645148497469894014267860772084217421937039699449571119774326738693007453480564083802832030098752473670252622811243769149072765496871642319184402366939069535799446079050374557948335007291009112719952718422055238423029433764319519625843988736305256642083916701500879338115391439466094100020784613151392585662976252336413978061364236327883831222313617062743856736230438534443130554706854741434322071980590735321333911020723857458786855763297136905693585553825251501788404674012771118555940823798342841932749180614397306528460859642073960690684093385806428626048760070108853045961790781969894305524663171678878761551317096172587311142283843751277468034094079575883638448020613334364474256437976578156084145013932046935270882452984989144366008221926306516714460872128216997770839281727128597762103406061120652201500573517128601032697937051625467966654030488177107921225156824405331748999758226217459756435361299335607234129162074770871599823743292389362994799068610240117041893093280853805774330406771209178176555995483209520304225293158213159675003716090867689444553431513940693501543442211985267250662627646008116648366652439438914767816740134548102497727834171624497680960197694044402543370092186478777038535794078812256519961433086343467600461945763204963454797867133065585964335194758780152561860138567490311818309871976502079346271543331915279266278241758008217477977881433659661385576572138344396335803106558558656688564886031008194070229081587750792470963649427597283955018734703232588388734762317114553250073848494669808115100337049719650000247558949284575820933931020378494559655551870034201750152478800649617272218298042780771795633822691297999377590525765585568921723836601425866035479364099484274456405934879553188628413791429854207209971819518092761315876427795365670005955110432987204983946424531565136002777961749327509053587591921044491911413990881150229689515038508622294082129828661005980361770586589610206568831016327969097535916790490804288604868604837460554429337637408202769658648959993383943685597504155757798007297860436197510297491914713040744104539155386744923288788847754410597468058689486897181633361779589472329701148096523865330983957639299983634932720296809360727848009747575103052492903504598036001801081772007879048161920574058555586331386670733981518733696027409363140494066232689674500901492348605386918587785934811571117855023325578083492602357105426626463831049456860088514498000383853175294737422295797422022852203441309396795165388079359798485364510068999125254492175647376241849380775222902748966566921210416664772036178403059377536173955048774431250846688387530099887025663250301867027783434857170376864031254315799178829380405064165642831600567370845954116029855060093988206580728587261330463173310852048173993264794062243358641094105063924582790073780657135669343386832443772334711610460382817332582993536502036589480463856201360564370620014734143031337957997692513930661077804600095044111354000297301274051806715837633763363271458911288715763535042548644666562496719429886258088859484343037457795946609941441802931147087688328352153109035138371201891996541133736582120726809724208163922016946154866932114846697156651904451415360158033305326453486219270736868561105366668887775021985145802292200445292118093381767346596801614740583944202470897048546442904111087755573443025088055643333555092701294696768114976941374066733055857590381110847430125392744765361620013646980414986779945462744592089479926110785290519458461406699783959993700162864097686110618819734036356342182561023459772155136007170827033653667135374628753958071732008651897792375176355860848098113075778490427079367583061617001753617552447561568394593338187298368653342680637478325626857799872546625918877142704294599908577624345280923328347242357987025231004808695745975814918376170411947494089590346106838503366933480551513940041129993225501801873626852454419201215830060406869550959249287766095792801524118029919214871443984529872730581235823645569541792514573572946771121152408001753173133388298266976880123629667713282459862398998475068325622753065345650542379780523027651660033829305676460375375767774956261433593921737879803215693109551548117772241818058307684813082914254583099469074263331329207269642192395013565893373098542473243394619549914127715941590343447521474629410725651797668206643299242605395128558485194067474236488404663292076425026157955349968144126026018499323562556409764927707204073089885837860298556010655358350708278169472428708643368764591194064560088910680405042376842457087925889602234418677608927276057043946814347821853751735633063743094656206381972584639445622770171206580464651516081583289493720965313687788190708644709675310103471445525139489897070067622022727933315723560055874077499461785915462464718231476115720475698206165175290531187590792520005299371989073525844199837721308294911871457436304300207519264607738419119979699735094346023975080315809645266114273481272832103759342299022154549215186693087306730788522461821657111207930438281993869802918427754684234584009370412224935462912109963769670274904680152238647639745586839544090962321338434890666340325030964134670636877243303471401050559155819512859811110990005525962336341335099163145512884236251070032611701390711540140498802426799840393700570655603183231264791070373695801373113734547788361002832124563966809222130416321455480876581261504285918239843222458470412581974116311074921577170157875957729778085984797005041694956753742166498187551012914001677765563133305671645387919889767701484720120444439314975616274818262909780179836590898046767352678452614744485601328016436651342832346492068696703873694198054350324970250649902068979875725518880113715772364516963742028231067440256088579408297709224228352342704274335103014333666868505985194581500891496474221097845870090129161292668131420221045380365510540440182058162321125810424488337629910653979530024857787881529276890013540839112264273374357523452662927072752955439185220181908315716963184011281103017853736256447870199393166140261860007467786928122675465645029773173794183813227493139836808981366526572310366734925369313491818940484430320405230382598414954037326344826774803664473310984375571224734861285185997936280472237195147980016127926032318735648663649547623515743132050048607501167017670518987591463492111365941793717416423643669619505153537632899458107984860600362866518842416090454042320488343209678430902939039089330239739421958734212924099882491125401923113545456771157729119766522072940446619595041415993939682905089421571511999378588617141974599012895855950031544938103702537164802803498283454906110482529099262986269960188188313689479503213203094901749025201783379553600960460618269541275420871558359819229805897399211467427522377974455319933224492692379236015143275576342600483762458923842325258421607260490180585161893952190756916770005943549552513629233771213227090818620324410619960793727160341852526879215343529101851924762643475296517760675017454442949155695089516492921934731813600823186045967431772947004439487435852148303315482402611789817298084805778312875345470045337204689681577566531791157250982236887625130076530797237208830616118520659542454678746617953534217842939777033566574398289898263656482913976072762989029582644398548032235764107881852178876160353633930552177351667589225329551489382192988427181595495455986023762314746290400229952215544531950339864577526282212062882557264892498292631193847739399251281207762314521869063094725087451495355309305928639934152200493024793217246065863853914792792117066404955633708665240212061348758042961443109103009064532954473292439530420364401330110957903185859267888073305064630104762393599418310751542593041183433867545103688589971684846267868024928462090799269023826315683407418969562121032029048475794370532579269740191454533497701582965711676704426159947377976204963801041218923026865201957272217262736879053030365854670887176263995193491268243295801793450866598369682405999403519026379425200581097170295402850409882318669799740860825025492245381280996927299593613291771419181310311340420321401251749452698411855699019387914755485895838618820724470377861288352885217458419692615311834450122696238670513948082364900563666525345406782064622313236192497332418081358685639967074566738464860246653042888674687408655207702297785425342665936980963369412766013665075224212235585153066311291687874338657892081272385334691895991009295607452628231987945351350306918056231437922664928269540406168733335203300824592899568006923109323625396813396597576100814808412232021923474744554848378143359677925659630260616961826304247230813769185207470622108159532009763910901614571006657143911940271600876439894732920693883088074900222875236995967450449518843038022214117190358396849222236306263333761736951987217382173463119262248027816543880757954853876438546968320345439242909688972078219620285965459820960411718860392276315887836548037406988822770050257218735503589907227558367745255606782380784738897552097485724195982389738253930582179218116118052423505988843393250216050393929181282256085877515443829342769918454787446193458587819160478135481064919490817455975526656260854437095764468428887583842713391482873773874920086009990063553695080883841065350579551616845481123276264519783446664012096978030791599093239430372395965683165516663563816665775611101765489660624380779867941805324757786738698038488649738642879623573996857851967108355304373121855476073842977383747802520578120214370327726908051512727664966249028445181486931603695231009161995548698716501902865761824394334519302838256261978654822160652488390666425432325227379848675986935103092978065725472740355277555202639407457245690095962590576738911482747824505013650217476116991114049466259744519761840479113223142745214385670188171112590098702585789937248872892052916788874536239319601266259537067935360813486221060860710712818539599919759463226133071462581338310924017170707109059269249858803155634028436809926694391842831801086320621794094942640646538402769554326819946981772008208802575028046699025103969824837798217367408499458236581070138599336348301460109801439228190270681212210013649767340784782406936015174351814870018342943245092874343385880099152714161873866049677538282164113070266501136425338416700913176357536181348634603061133657982530818487905124648145520112824366205686397568763627666057370240921600548572932029360080468168942316671636544437241658175915119311880220816680672719333356488201030122867977164903628571301785465511263342304142647012609983826236529763112274684595867156979176084803533527631739012245559159274184598313589475879044289758420230289980228922173274002243288288538381300905128804761436258023861403556088586865070430758385975782383482761450964501967316385773171817558507727359086013386101127692200279645382499080052938937729681246030136979193820339193902756232819856832079463853231887332745337078744193125647264099053013326078819245935716443948534612250604007201017007826065338432395937409288367020974644567340779004018239322510519871201676479961118194802100463124026796675354703188767037213690000125001926192861368227265777725086026746674185850335442137243579521822464406504138624655818717133154025679410746597377133305188582586417307664809468983556114617598782655001802821108730228166721429043120412649401885369104320924519676466378730769300068066888758380464071714140511565619645816710913647735671236744857936121120063068243347126174738871656931988613201161540602265905935578312274307309210370961695023216119196728407255761477320572726093514483777961167395544319712444842134701506324904958867948478183248128779925361295912543388330878763776246935487686819827435330160045055009029487394605962786186354522655403897988816081721847263440427902021770889524491120034980154605787588870986028367735955245792112082519580448815754655065640258611635512109445558188178080864388549060511357438528609766694501856010750907382825651158090426988207929405877025245511615738887963816116001850063713681688041231490524510217418246336030038916570855040583141152686298615997617663688343171178853397537089350276498586008090997247035678855382601665358708983738365534639640348802467774836264039267860338865532667824637930531990134003524884809274618564442589023051190619615360513811756474281239091110817482287425588812570346900474868847284196276490267127708030559407293496672010638842611223851056778605217995418831217785708610967597853299768938500844249844869498447814950775096489375192405552573256371271506579968362834417183312477692458532701426632492241359001601800572718521326021072311535197838673805173263525299976749821824874117051199208198833706468669999662698997183485214128336913436198317627620225002298543776557429204776349687813036434713901525363868528082034659600827659483285395382810363078433053077197806510387784571472136042676845842069952773547009400628926958256786261992835580681000147453302273268198241742941399684099152523016046116725357783952201903260257514239328728316399340148849791024660993184145901813285137241045177557904875768702845222356591458036896379970361243487527468172175485850380795699260936372395753650962898675195519765327734076552247463022500249693381048102456545008114587009591593973432552302675242221048716340972192999915396568214889976196015581345504294862669713857236738994242009742805954101525791334924311179024192140045644824333198860745791901495232845169691496273686917869718729910430646489678694568486632560532302634696238499257178120559604917184431176157822608800018791223666553923513980544536787812433868144224504631555620783180458031494854026346031633641911251623264607848505696313242427422215610416981001733938961230139427238192150061417887822481363723178730311440664209483105405205203320966683204239850808667192870710521540410152798216759716085747345992238787483254261435278732917559260107211543624307301638335374004704279175670614719374144209290724715086698345980360756898486929029698953301199638610108210780835576641887772307319996532768677251034515080212588888655312495389914162757266159469311922658935866248540864953943129091621191227925890045921200156176840072274093729844613400405991825572855081823911836860136484236762490954840253072571989278496361061493641583657586267019740890762229340106268395905014372653361072896052181629166474620311693174297750303843242308357244563685594149287682238676201555323416293827665064988695791618794494370980333655855369927262538620218019222804004840073381826902059265797679518553938569389283071178214387767765024555855225332253365009222419244507622776970532659945501237309513250319885370144940426339123626273880875603682169832311194354377540278089116316110242790508576874251780655062797649503235339837846128993102256089693396579514030941061119779001151599342740744881880548760656556567048302113631982058641525124424119525072289470526704156631779664571590868718407057805052973872497227321149336372143727991946542728929681950954410617673659277707221922398394135843623851608883944976939618487491541299895765277590700370646263306081951485647311755978620115024479205806802629566071098849016300008975346880393392896796549633000656116978250919362574734869881033839649238126275826414313668555606451400482091649336481236088262350053177058309630669619613407040427194256922265450453992110530250705874957449744027516628774487159141261502377595716214285013116666219062919978912026583487353372630655810092679890200522726717913643692348152086539696079187396886716657410190587366668920587460011107162219627053216621222622210033454913696677430266596772014634688249722704046397817166008801387859344922709305843733892417387419936350461542418726479598827442415761692229754805251002602407281772204464445767547874609555840839258298657275493123418797344116325901670689089075454380255860170796416136062030727919976865699498291130406929186909682344656467839610409519596392095568169644391079067408611820561922118005321882551595346414461473666008967700298721411977532894553948365605750509274151570151459705127762674408134288371117760265790764913021234605691607432644535986163755798882315931016357593014076451833993833364108234636039998691248643642209513161500415031047779285870720331712171945104449731263107655282094955923671981416443500376253489784669585036057861868388794982667030198130660016518538346155775747807325971392392779287251616691550722574922594015109326534060114672137229079018237266883198701218551395312526145375224574567962060145245455727216185986847089755811546766191642674380031682693278336175357089635770779426267582314852177361055351310478419360259146251075290423985212516169181549023934140865884807779944380873487387589857170698399409524123779281896181937787558611919032655580279654616689767287697120954294553762675048796319706189806912567772894536285754872806063781071423650152147288235152097492498044743110675488332185279626331975454506329621104221826831477237783132377201427150854646685747863911590478397704887415112393108572717984222336551413041991320784847521060972887047637531331801637943753258263795518373856280364953494013023316716797577735409542826410269941216092125019633435072297583180317746898399472450650422855929919031741382142082403527189497745647192386944455181770929124769200675527840857456391671984266879650793502997730752641435991203203726571512769745032536468484801153665165962869095390585977417040688292002526000752822996992845727417980860159578451539917394795804021728095736847169575321063533776024597065173973844338511872562494196731510368463319426113814126470315643569728981553515290637357544765202008284755661191630461588866264772357252617907713519926567344346528344137715104835773044149275345884106751750562265988754146920863731211399782759031202211550796672399637143207471858107076353735906745857958685336334965249343243396947189873470767746246097275934756726208478938027322191618301330653309875975369965803338147115853607623256032906743660985273741212938850995769305558129373115744653900787166603213981463489981966030148232746826036403741785568011632713409461633955865580095104039131106673128256349356484918815884121989704007388814182845690133275874005450260498165753708862945387730138427995057274855340261217916788100956575519580878114246352227020840197844466774105823789068382056622637474587034803330635144226968612476995776412374641911118223798246503529733281525177924999115694901097555508306652918070454397211104058046072841938404361956061599121930946965303216265381261628357468190405839020875047667780244154976308261498091291445344400020566915553649349399292336831690084471222988728582828442456978808184836822591932196370682768522898976089255496059311773217765214256506517376925278343844273765127998064721854706831433794002966823159508495782649700803522316075543460848926681038448978768955950203438477657576917345777630527826533627553220084227318686531739683387597097112859953879882455642192828276764632948290263758916876286140287721067654612179831542480969368191580632597572040191052474639701793623792506076944499105594716488925217754460368614210592912602912486319120058359239774531465932423689445240879563387512031256448687386814234648275636616119036978484504975419746477939815999959070434774918380298717236414322682498839455331113168293322807987446445363501232690548093944453482042424441735196372317049619861976584930703756298446444047159368982269018921382572860289350640568115288009388463526087597564622478172021513308760369101044128095035985943300548336203873513712240239736663101448866908472746427961693535290707030734499337505629506010641550390483978212503552434256593034346802981267619124432169829145004608131653920601358148816303698145642897636026993441012539869550625820460595716516168064055436427648593678306161286770633651027502942752829199822559564428664726765549560772605086604589964692218973798283884935926329723723139780941194879064005074160068484575456109850313084811188866030923215108528671060570536032005415419720488365503042274310684623350223704624355990907127673982530246128976446841698936010307072162707065648569300699535804319326691866808857757133654021508519757113697812368031394540042707624645772000208596633420439590523276719037300576989816960756880076939590787023600359369647780622530367071044084448193110216021994565801836250716578293877124062630385446715021369417819403103476208813482521186359951679849768196438309879896677228494389182842810793911834859465115825870850637318232988221170622832087234543207271726179283600241296189784351426632914722340197640609498701731605982427166046718137988567391227505392181876236925918694953212570346202951698744919748335841758248573218536028952113472811092943631870141978298378876238758014915196303710043674274749230084436973909469389014374034936173020428013218137638469197595644752145417873142669597666050160598456427570124870132368571403937428411039071786548263494540307325238607884021383831805752799971575696773186684535160604666012375699838315402535680647388347622824497674215913711606652571778533344834635501568214500815736151258675738254272715653004321951701603970264411191433028214323210394814949107219944447722190082165214729881910751035266680464546713656261086474155296065147001969104769319159949412985385682388254447351629438925306607068711652802967662286775937965479257837190382509543565458757491899968184671135742855606574285540926251249759945772124166894348699058309202575481612777496490583501336069644509680958717329893575434583361960765963021845515787926840428072902906943456263752826614271603711125711931926446995013639653546143822374813441135803011216693602736415177348523483751640954630782906865369904011513922209085068419282143695678087829132408604011463705941602558796630869675981151982880960215787417367900466214053491814180444066839696574360607196792313274826593512217188516533319196087643810262099366000495509789579374202387356312658713600978102566686264515838823277244720350252156285543647688197265851157460856854291850833186756500897503298859110737728613379802841717324771689543317838808576509111409974617043779711171383377803425086822694211496226925672421662789936475181216334143918180563314421450019252974420139129409278911992375794767053813234277147856428528493327206223296193359131321687939816161169181044807292310136718834273732951610970949305673538726371660386849049715365060018864072332299486252587351253727976685755056716260024927254680779390120976014984320613794946079533560224675396801993060216472853560146926222024201686104720567716470406113155946253142563254091702215350240970583583630786923882226192311510517927204220731215312843065200859949553243469096357813484788063871993573891093158232416040418148223718147872427542933924180431156611689384025657201441036642247955861411067681317503588011400070996900038366168534624993534104305279035722849833580937354165993804386811463777169238304541053493685599127626314860829992442082545781183062765824733315593307385198785486598670985392911636899025275984624477033297827912866349922055076085560465284924956391318806810087558616949374492618244607898179899946911715041931671421798158236572154777504844829326350283404750554253310436884916453813694794009101524819428752080137894251962820960287988798150889207789052726298956831203792853064488639502368872642663221492964324502363610071756830600465638077996431889814952991073137165268163702301184198085554614154191835168786084115767916295079594636850411821128357537413593768038530877223306756650435383682914623071437823070578915016458588304037728874949936738860523103276797868630832269825776816818993014728543907074370207699207206796522522982063166445234982409952330149622806239427373662424241959508878326831738755141933600997087884811152012144441259172236779113165979498883254667570348025466946277819100862218591372001594715029727626279016887462634314400857208279663203102635829852821080070907156783246516774227881651121748725598837281086645818255099306832289640541789102508884029191328083573976259010073041424395014631667579838507637189698088381632912293021870504106366030584506336163029652547959511393607092841882794186465460648378801503374731230171130411732211501643786612007198919939331138122901688265148934281614849162238467774070332193887108464983479242836618096165099099338977997943535194452284285100656692325379879371137397904925473401811228101267702290607454465080805473660767060091502164894514020691067918715714282214382279776044810228899412506413589909206768433062940575297091989432902569238848856872893799220744301946396938308289628701566894312331859750697578615117076692646729973412349229335049886367561380713798900894064049088427737282866347256268624800698743945407660554327899825641396307442166685867312882323147767678460371337486211754929358611860913908118448655615296213367906140475227679634956702423006830558126074901584896887726242996518915915666551464887481254052719357009637015679961164263472027102598284972733925322619652128451484396679864541191220104414259224529927421670172433919608007655874185533935793923038161949353882652385888507852593211836954218220710781582843506134127462676298266805023402717366341354095164315402568822849819494580028902457209183116376226537342273853681696276508508861094552019710995533534656499090273624543319995862580392604323799247908622216805398127950117030498831831584074862126772728651649590339864257165751752584640236155845954967120555205314908790797782849753793376002647540511897703330256922028241150105460698685337566536186957211978497417903419521850435286435567701293104239362000445462572530753607756056258382634691735149125981775981737123715819921249049588144085826760127416542584614379183284233786909009743450159255608094542896120307625020308222149415049162529505644068177121163083392217242465040185032301204504633350156955298675414715970633399687318445177325118941225758656163943836012342157051757755392460206526326185407891069616748338958262256580516602948799036030043043147733251496574939736051041030805589620835098789168217192602660833615906339710574003284019858433833855201815699087693017443484308301190234591088396076097575271033105379317791630811352464290915450076604666812505221015586070056510705856799793722966905644202621524984755300887450064489775123174322054343122593817108124149623292292589789868867491982312793878633727705904393676385187841138661304408542243054963230907228360955959803741515443254843537880254812402478671364333579352685806037602946890571013349231895214709252639805264687149444565822819765970817886974226267595690903982324681009098688427826313527209709625280200080289356342399380715248864621149057161654423838482755820315340766218748878634081234731282317135119956995072031387524070258079928581449947405027735287602973784485412561367743441590087284557297079550801650240574160797356442333408899648041424738998631227568344360050346168345575830447091603572493971641740554600784248181412463797211712201384716169408882305535760465005394816442487686628942117980180324991666935487970972611917322670017173581385285484427271356831502804720544805184743433880846959179020284137375017422206171492266863045135808033620876830716955128197537801091759532275743236932932537448842671562479750040097567358832336111492491742866978595479005008919060151208437113170283920165763080826571990127213051875328990606880072447663572429065792038485129186490449737018086410014651921880467218228153541338905797308297196486300816953293752751004687993813153273020089710121669455750218671117108077744351118204171071736388530029051763181204162470836015178291185914754931410017637271359345560081008447615663820582998520637473906185324237374708509723248307756142748760574657922086819295803322576402229284487486534091073724287295291795689504740226605292872544250950885055105931389647344701184649604771707436061919514527689514954528034338917068546563523575458244934816130279070153549326594867777114123763070150406467629332482287872684402520462546711926033227934896344568437285369273401086212723831997565610221187026680108155835640494691742482639061314078628031140995058095527627083484302437089574735483782910257281729909162416485457644782488458607274033074332558560663505450856165150005995929379389007037460071586584820653149775253404413887051406873218675577528669851147325436042346754149613964932964813238354761798377768652533657926354018215899482891829286572333389482492522986048334758295618610251605510576517869667317297082854895570140695229720263531213023576863568566043151378992585490252638463026374093168611858575684071365643367826094471518681685223699004955427088104344449469696314361047428894404317490673656748502873163720969358898886468709076182460881711038598950748316504693467589171093031591848069314006149505621879623498245932717956914819745745340326199579001178813868391533228728993447930651272514695607693346916097033219925810305895811228164933683799303121908627263686482846224755226698103180351400901976283258783596901152892736667440149423698737354013472529628682605155187264159010611133280990794569742290039595583935398102572101396823143660979242784920848914809962679631234801365236801064536128328120612197946892046618993771229304586308673370682481896231157953860026500795195474386926804912135267738522475918117976032210649472708468183582828467894660615001769574758006194041745737469422147655232879773247111400301226825887483311736265929736097578146095488525968955152051151686536279804712258726399293158612848651255879057958669687614414727261603704251022786125899212026400684424628646474822391145114906806404372157973273012015482383291950855387062197587025767851268522190122137529653864555608860364571047938314579767295040496823740853093879832663134842949793731833219475249440423525886322311282667994932681998546857369285401812452316609068190073436323013940131626407005260091514177113509039396639834046005538117706928854695246767506250308828600548163578363201297267314402625147885330620113518282360263060900482168264283975605548466825617180710099241213173376205458209633437742760135025186350256341209448947363472006765243123921346817307805827312868307258421542193805264982801217737736645280510843018289638105155424031676398424198920380269519871261719574104234999934101457456594573262583265795123909344904119567954278393857806329510921698927085574049314804543212050444390098135567522788934307747647013274646063693258752742969290246660734446177561134363012895762339136166835746608452151266645543665791572666712260769514940313828517052280323205035967135693838307641081739348343278985266451529611330779495926555291789167209308447759052161271960890552522813340637931307523109614630998612620890359734082376730715234159588065492553762185386812165454622661295843787346518292327540401033689009915578131549376982820874038476196684210672908852150797177159705162987614692064230611480459389939070921652405092181954976312240519760339880716292177029516843188279717533821674853121076805166159614950673075948911623306729530754667517307442651375092910705584628860684787097311442331091453368079438737476219935841410814623973789131739976365039881919726527446098795364357550801815032376629342468146715481147783574829156668997116270928151043437348848922139068599836027850771174210482688928346427327460520016145657841626496038281222626500119803666951359843155410128746019628354729536245197294200514607939039991392205239677379873992362657760518378619656599969874342957298890469084427330280279805516646021782619992086381970581184441989488752563348076895989103608051619911752312509431115018076143925143192082742883278510393477972831575819812101987053859822295913467865455053158722643225865038599083630714677071701670450586951690691481206239543235617766588135025894337032621297407625363851755960917287938278849671479302503645804400140697088643142592187723596828143345418704673062971435868625801374775727808761877555361145742895649948841592291868185803442455768010640598161438945547207769110968570639407616083429850625642754720955659945110971150240685050601576142764269483320774991711887165913857869421087524507788961443370275157968315491958104571980670331099554168920587999223481273816054804854110982995314452196148925325159209296987891504279957418305648328873665744434654743847563329749159286635737554796087540962275339176140329866645669595913998970416597319214548834869972526190643399373697170386512995062693493226395999430797031125421905366066188928865340580911273865058753439778558870161481762090125884649389687650852114250313239387121357336822745341789858748416918173875008480938637278611500011326691756089686441050998107678324496462159673979917546129364642250498769918652774691096611816753021705243028402450755575651006160299489089497848893667333736815640266093534311258518828993284979730809599658036778671184233854018576915174585374651641059728883934599088070602331592458163447085530662027505849875562731249169096496289810577075826480080873341719161669322279954230131193086462899760519801681762160314279547647384252764698489348997305641292656850633374030665560082461497890836403634341752280845836757319574317809151669679250692573975429339470154766553051835977635123704505827864901771845405846640327920379077649020554486523137025933720326583031596595441545832603459126275055976711218853432405592879503754273993536639664836367331942666302573176961205608815829536619483000241581593679137846254522130203415310791938410689789224034630884907583123079874718004837575126451928359056984562551580897270426556837694643662935812644700588664346945611152580248683339845146358140081553766580609651285835743415697247393575469448274449647896433567003022840586706636222638653401380295998665460086669499103433465835331247420549122408990440587546419883632331773100493337543471945953679950052062631449808111540675595845449202972090535844365245544511685261577706779958256512330995903585311891118920435058211725470135706100753205544899094099079366341677624325514874365503590336173426039245345752523430487900238757453532374346673206043085808156641096928391924368959125098298856462985143524012242349904723685212828888904406377213998761577229026867138458996009427149564789549938867442630039803206615269853408213738417943782009819230940279393584581947867601740640398689496082517877565157428102091516080120565344972258033686765184473186433576914975033143242224558656223365444038972100567124407343775958153089040414446023951245446262650792104838907516658660387255360476580932829225515429891068858793630339131267026596589197873531647971256626192269532501119433674919712029948667330799377091146296199491466213974256147191875431253494691798143470138278347404464160194802276926878162989238266108281593052584197067596603933008029748879888084900516490792198890794010467850725376184271525277650068205689545326962226107582774834613040751037049135796514107013313516191699639293633107160766263532448021922347058047543184373835600224377596771668078125055099194397958389514407709902802408718512534752717261161332991717561838707908049362889277139503344357754349404905008595054467484842369265186109691676084841642770090363230768191983918118924912888986508857102824906233497427672647365853736970546382039053536931117912291162168090831811735016620555382317617400160576011073174940941313140878043232299269431768744872755394223972550672324678439486375287256648111582033340293777875100855707948910094369789359145201370123064177220461941439545783755757885510181504281073266218046446227871801930658178476480341618882184537526138526040536169247849238183699757731291852965918934546936858333205335094622027337195673005014956009486022457164341833747521305285970874553869104253225332318248284328751140376581592125247966099177158588349790526594942150387809919239952797405062450462114706726632596800963114720838406904675046912545484249907235741492383457915306023805555443559423873958282103783374994896875878410888751983367810646149851333556321617373425375876326083159036373264667691166200394117772499384481670366632157609647048388429252832611260549506552706294685110283443204371282079225816962906322871943919810713612274799761376308496950501905730210048623314760172160528017138698361943954948885870139501768271038298060273102469725755275853215583320126946059855181854429664849942590671089085831569014108748668133243285233547684442708765899446110434028823715628717619879337879599701964456504326369108319583465485959683605190402339266910502658716891927301529751967460406231458036714847249999050764228805659766236655523806437324873549274934746177291014022356158032120700627116611706009757378428862210615283097348130194331642783223993759040185761243649560633241115950465372395804032731682592831185727216210901681591391276872479351126724654054273695139625082798251153587263407188647891665206894955813505439847126328991138146513187396987010789633896400946196128877617398767321093723501149379417725970043963129716249526190350263807077577602281615836303113377954489346819523653556353918078186911868155569309808897778774035050153082281730116974657288335806122243013916910380141633631250338476166163570504165868470656658076732986494488499076972383164284486257388635125198945176112832958748548092760649069029361197091836176144347889551032607540992472529316313777993882184690339267000327083812076197936718974705071984990536414755566945062722844287094899010080234027280089508930954500061811160659227240341469401220885730069041136780613355280804388942154619947936019510785445253472807434492874796254570389185442814153850334492494023821506455723452865636694008395913282673501687301879604466930539351085193393871107413511740395937599229611872613564472482242106630893161656173508127537614856326638748484141393801779832741824242179311745212225550750592516847295427451913062589694267493032923452278031831651020129662385729169222393319165068295800984833237577157050871594088508730870103539827490604441056204546293832101075380982846686386914279733058883194233895352254727298407325542536784892115529865148633544059230629054565569217050668065480380774643636718146324765053349941649980028132051920630132566894015490948234551401420833242555862516213793529151369481163089347587689397113405034265909036258870699377723613265655751652970811215364261790758874810216029912524676240125204195711350432445747141684177243169583109680957831231261338458618687450671019396944225965078953660797954232913022362583922297876026276609914583048580829279735424532238707674712635940671805719452374123504968565678396885357404838772226266038804095466666456125280687883217271924487964052834240536754573692220304860678093532977819071487603496994306756376398931170783249403503080074270172451915128238996949673196923033815169018873937634103713533377763500191634054359072113718740930803213735175261367957392913693677621572382878423733110125948783795229563579488210999302520595344169024872103009268558281452444495663492178511324294687582944399385069064526083112794489511474574617352064273026015992192277686432484634662685403872126712596459310778949700360800021536941169870937238529978178119205913944056342584375092694758834614906255796777825849326904742113945302289847086124624422558187563665131411235271676470420322119095294709601967424297023713608294835501595252367905565326266461081929837804859015502545951358124805374077762425346399265230407058344346225718125526864642298593395285888646052997052019166645465537138564197471990990672201277282860338085928167010004056454885666505022710968491119625077300268392207719098703778540104616244784833344469320252198678458137809806299213102510178992318115249300945150598273968045044803864524738947862543142041807540249945421641967645367756228669042983314398813320898730473764146213226870912731093532343557518371217214872943100439855768124758093362976157195733195832010444713249974971172925677776384362089642979337400491368795384386730896130337478826281156596382523365048727210524114008629812444595279391421154122532052230791674091795843504603109736504925081395170304621902668057690754813213653169202857400229274141506121573299070101168108723535108015922539514917068113305384186467914889386787756095149989782348544534701151036182032211193908637211303721278921180588337319013897464389489277704240113892878125589948490252469807492173073587933573908096957568284624401995552468150335194630112224071664742705547915430869909328544220841643650062128621978376643551107567522235201686000010301948542781355319656197729994916213399056424222814589572499726442577155111217594375025608801353566562884837240441966642582299578369506547985517058881964503623803949964029022519748032217774382980084357315136340805395748856090196330146498373697028269422725075494045150370324669954545634311034899735366766890552729720257634464340932091727081260060417509682983054153850827198029537032185777476260796969610470923367275194410621953397667591514336573281700988543278239464617373035513887140105161063806704243929347284560548289772669177184390695032994423539079391798572682278183275867249934040286637358817946269915508193664431577527029687941354008992048561423099045211315484560730565828018539609476907697919641053190213985104152894689815494184447115047101333037477191602720522455333940483403211981927092294697880838565836394825257877057059698801396338700386519140688780066721793894523001380911014221905099603509673955970244193718263798409128048103112652393038107007655100062984441639274280198901979739068344998581523683534982449036118883146449670086363699169344792817370299482950061603754109364852028429530089783849566135336600340903094650329653816661021283679515783632671255808640703422993954354438800540372947853101336792669688914459593136493611454644463004988768454905736296315365988504470853207783297733301106188831554793737343555238877294353160947326044504804177768871017734147023281236679184098448839574601905924491172324312670558939351440910865774332433788505683501867611419557212305796269499063551103901822759163467578303184975891603540737358336756217209616515391514175420306954471488554366622140825876803256082343741490127370206690276078539047527287122377004561820458739878875575018522202992714932695739140741576482074700944525581712062062181306830050648376791299355368563863153866696522775518154636158175418006008719295534507163620555706139754063850124416823664021140625082205813162187250991284534741483767088212860522588695123130569942388801673869036929060907141992255232625168842497080343621821525763257204194801273274407460471911460476942223103229118100224118705436171567918589035521778294502257754505932183540867641320925808024784082793936790399739658244081861926832265783186144436921205903591924048233552244052408226855959861100783819684660709834863067907909177282023872471119558301638150056455291032119707480893192587251341417016865633193627296516399882892014150742091069103748912871170130790527019843865510406117511960352220103027164082829073533309736479043720621758135433284378718185287554879581824946340214301336575579821495616920762530809969909863763943992440402185489436574689147966003476345190534069845346095134127443605185870258336720917072877712709368562673939487348022212907842919128107882466316073038904798153404094376056526384846531419049206818128762946371925175610232904960446325934185891866033032297144635427177547893525010509090150034221829974846184642075007350022458583585890185506233437315944247449408080853597358282840385916779178236532534584442496272805789871784221356951227530739146964196135470429997541021552835710819491977864303909220682463353485021524103597446729855768747600955321860781014303015599088365206411862204397516289938433185183188027046360047116043077960097051682162760345363202180906279507439880975085790972860757879048691920253503557682769048625031489367377354902613511091856303086635877943569597397742613031146518034009231800681114659029630649235285298338696853291339329041466455692261125644045429762341290083753918785413170318402016183205052503192923272397180950583799823269281295795078603035838631162537751988783929525154816210610385413439114554169551118373163315436612451742918729107645313252192663119101276793706850654875564101261803211038579766283874825611491856038421515091351417437653000240262855038524079275303221825325576590837619459760982357809836223886677824482406474308183574688866157320917027111372969071325821013876076692466992448844822716478667696211733029455410990811431707870488153312359762215156841392298605603997764248523377833712879768840902666551678706759488548581148969313587744343598192175554300196144302367272238665686424676388388665845450729746752474366852798012541679651420887105124988572891102809669751969819103953806333608803946016898872163443705953834383367441601277949487467397355267146866589101303227491921271775028579150398018595952493071338838244520413429938018592257588516942423987669245478062331171957222752920244606263436310545267259831156264543537391006057253589819846663980703155620361723232907484543874662628274337364040961902857175850185838387221676612905024711402691253833522216098939877840810486051766867658762710555117282464761493050402831598335683088038955563953095027151698040381292795422532802064432111101159363805613956943325135732220422648828574019886955140888824101900688232173908842273310977602340683333331584492965003994013607755047451416183084717402558270623517576139319458822137492755731054706491131147829485833750996778786606039657704535982821376102288818676829735976014575158282843729395369056183513290922934621407239768998314145951986189482221383070403452186159036417902916357002229568335866294997150012173826104010771274406582316562262294608800599310093839337521837414101388957852226108074045336566746707276184407832001490648498096698193640821849511479450451439505178261539605583865596496143987053094887328479856135674969795363261661447127936578509862944381463718704878920161297506739957677804234255190215747354505849478992934939335135959329811563195415232902395000571779342992387156731929619001988651722704470711300625887807615805064277332478026428666542427358070118330809470435923807010564944108050521117863157626763496489854371972425111330000186893826458189459955402488635685830832480646980487586679403397743485921841903345653916217698083059883009834874330490175163461343469508874964602773847413045754363106826060050191150884075180454686049208200440466976796290997056576621621808976256633326622316099109454730786650283892846729785227527993906345424567494969395623992481842053208418369184854842521310187886674274282515364873318363458859777655573937473447134538498880613944378321263823469674624752320173965793960174153903864237143273860770827313240963351083254717038825970151469700701391618165021379370148669982662609070626358002017650391361102574928798283689356413805496552175768200446302280187959760291914483175638070540141362406762083453817870412692783788811644975400149140104167202251819152130158659122534648300178114734671641442924195950967928483497559049923844302461479685597855421620624851728233593903176712387118531014010527536500197884115009576696816087851187574680170591199803864884496790077425966199494580952301128716889219613853723338849817813538951041575716920851726747732764928263271143274450291049915186913098240422852713284747170918931003566586389551688451355141107228744098833414725526706608138521128815829319615634743648131012945389004343202846439363875290941263119768539339495049935137005501192421466250196822221762455187450124128592280197821495671453427372565678359248235064884499896684654166936253491744539318467140799483741256150040415289817952117250269891819364508979277234354417107062756011826326410781220501719936119190608387302384718935886249104867830907524557307981895026886272916552695724285959942653685960175954832247742291950909828985141121556316808778790353120015052819059953373168962963765365295105657679851618679265446793084090499867664734981114454688529065775926045707346065906196009267620915575900692911140348228057523204415355423249317091512436308659227361612766848526735676476145832682582398037326872975654481943893792211062460029403849168154408300572128441659602983395509104952872158340641852619006156878843367735850532169048427294026642104403058144280789154024300258396757043505439638105216773239614847328532860450185785465491552928086766166832012056644101364948038001408822497482417754021786606991307856335431481794908340170103236894450370202921869004387769850729732988179040816510776473206303702555166077541794898937785622931074714256025827891679911460206419045757205863810210616940295651294390407174860473679845493178135224817957106450019545416078584551112289664475196311300739890910796125976079526069211508674706091055931901670639149967290381028343071538999887240102958542897952655332832740359935869524370426734998814423444991384128713117745419021124178643087631516069019880248611447355821960306974263902828758039823895819462669317732075977598555475209479244249526484373624871494744692387068396736928169795282422498593565183578837434423257819418103585526171424097825400695797798528115317589489478408471944241138856574935155846527189839841883020714059474504630590774747489206563907084539639223726200103346617950917413281873090375777846744782570242056221716378976411163816862359644560886652402625629423832197685866611707317894294550514046775642668854245124703761397122179077253131391626178903643360565198393960289301376543702215087738077350873486153001492512308352390235066071416765583929627788543408401981415282580789182050035928428274193494509183916921299345587057316810351823764282556033461197973203295158350239724464417318626740479541393854383725217046719905444852041816336111808368551985317904318660883562874817137785673055033688776665925814071344832155455347123669842261405354687040845512704550145161433068418220824285537662203533924050882486863999698495365235949719753479663431204959806939024507677202829543914966008743883452920454251102970484874746274863296706189822619858988143555495089545963892665025716384867826997868629666884567594795214770872048771054197583665818530789401339805807310780260518018895133211870332859453430690705168710419368635062746173645997061859867344562033823367954132227732041124379796712705068629172426390177448545809211444262955250091807876833648696053011163229102508663114863247233879532945812341416832216756442107455352177145314379628347628306897476776264200124797284977225252315550093608633435119427074876639779408971145432951206377312604009375257514033698713288425135424604910618345666953138255029891999454780165763870921214782034905039469618351904857706299358732548942560146720420618364100181692238633656109821309560365720895416924044391349781574712864158510872769301775120059646501678229599673411020759612372934626254088808804855294505925232232187073739343020910144607866577110413305557977554316916585295356286837112326063462911180503441457600505300864558007302633097155510853166523718300307572863542032997236496977085619860007734965944418290547079854716781983367051767803860316371147290974492933865783264160712904885030914812531392540273577207423010687522852414379642972212340835602682180827611492231291484576310323953354396882931786716231383550563179330051030514460756754880853930184090044862032924128770722045666575417967674709723778629132871206436663887453075124239495914926272223793570370405692308856065245731873119225345528114184343165639748361561831438302950600349185778428165925503406868366508491378879653038477626360367049213762359795740556160191785513828550054532916881665091392696541360828886940221939802168960545170229950490612192452373294089746737042537012595401313864254313061718957716397208715694340680416353477593400030863485544973430276993649434897608516431604235693986977853540852820066594412291519953847845791204332985998917143144932455538603484340197893246106436379505699587881586505139063246603928089000401336509804309200533806459179367187168594854719511928510680243705400965021745891990769780595635870099143237327684191027003998669129567477462551585125851659336328498222665968971352176399143675469239162885185961475555105638361791755480649383303322551804660282888002969758863999937046707235532513275500985148983057911895915722403671432627932597892120477823379924374918726397647612485873932396014402266471544916568811511764248098795474646600118485669458282700538019800044639190205231232440419648569342489900809246267015175069153118993578611515690570593247165503941327948550599672868511275286364487829282101866420236697754429782505647398223694669619563931721685052101106511823744025482737979314462142849591854238776996504971429887082646044416404773936754088664940511840678088944913927279642360095544380212863327442493527117051652337001792497241064194235447070434019954752874519597538098252297712244647398152025891637975655444135083733720369208819938635979607907980891387089429731787532821477798770300019747324647241836266962279634222476314336101131388109486847707131747005193148968415012099331145797236853693268761323910288997143898714365790047581159981542927979094871273947264015853265708470907166906317771692613288923197538141900433707759392452851004120376909339347115541757320640349188084079985226118720120606035455527718738276204004221493871652562845616628946984317417436467505553413974401303362021891997993114656553765316728987736736894003767682040802784734363829673557089619847753165328708901183699107869141548126183453086210152604558628130172872101475956894158146004226232308322736996032792345407379876499132416508270244938474470226408235978473670762529904370848503031694895710663627008694572617205072993065010020326736968242847813782710659449824228727897802398425853992521792081106699448841810833616791585554669753506635234067356694181536924976712666379283071632546486311747811589647182985636825235266822017972451855092882013439533635049945272776585504294949600336791817428351979961317821732297839940849186494221588711098448470633031883625237289505651222709910919688298681171855722074687871633770684132122871618871580462254242513018605951055438747952851585818455781498178931647017618043641151779333586562188561206904617423386581764882555488378864787121850181749711769164869835359588913210417212107099094559118472710602899544625052662334053514205927467609731916982393296918125401518993416636053274345330725067739419558502986150029038974698879773958454141086366004389092770144570937490938075267482182203880088361627397889076560307756966140795154557949311744559269431335751399432764045644805994816199519481607211158947236817774742324399511710840337830675143213744352236502457383197423281018558755755512739551960977148141185780705783980087093729498426860665279606424087203711170907449550025191654063519981973350867216765627879210478606292372776553357504509364569864306267282620668475684452566070705824193511180535259415728672631001631906035725859208953242505767217598367030578766271881790862609353657048607256781873735816478936317842585752616427183552195251529817749854535006104328215387824001857124841318205949448341759260787896654662567012494660152834678963224499809572223292706728113090736643845406983107607951196023463414604747478263425898354918807537881841922369821914011093449458291041338340659989909309277188032187446326516622544784503939856180947751065205388313328840995158444356154856785408202516978532401138978631817446527873037413223029102342935053404465132819084890082326230979108005487084156996127493726021334605155580850287753476796249744553782362700601874903013383401736583304945665791733137817913597313512011318282282361124965719984545696928673801435764792157931908233669234608904635397873028802836457354613163115728781553927389751758201859152542498016851569574347844454494062648066819152921839395663588679761650459860148638441779215701422084718747568762104055033904656786704623603528597437306559992291390958388094306277166644335252681331495269008126797375156990231463749969997424556817568088785918721673847975021938533018026527804364096433395067453049726170199967024940393984108869209285389548438423327573690019918889518266192265368296931918627768411491170258757612030921343609441219836222822172456464909754564264709321535058553925944086469203806207430146046046949875485106572236196492742666030180162023370115480583452550995099650169662711158069853565849937033924856892730607796948239377025040427722157919417957326811816713390715161364082377507846757843075711761772895056499806331935508715173591576653119736248003262472702821750964166921779300143729048230489990592328231306835673766720052425874320205566676529144126727634457602171743908153024028530701700707843884009103787785113902787086363013175765580413938988744117253161960885153272875914782182528604962432587601808070814220282045140936783844461011565150055943415431321996038848762122295028460070556828763551061746950981394848581014131722577347651217633159858430121394690988887352035539670563550360013340775935739759319397305147931706093030337929223268667251453389417817045717778651313714393688992280901281063119274896226724434323506958302278789240415568198755226828235760986143233771966714108087290079174498996753529935378664671626112973882224461348024281970661466638040189003365028378546707056782783949800370099397721459829179015638324076099807943300977750870436398612121200365281389828989782629997829473174326705173911040815304132595234327002648047025184335918789148687044603848284606917117032109161200183342338300841927138577177475184360542125606024790179019800004815155680954070727994760283674657750732483870409930012635064718660860674973696586549755282807019966657259532168226725087449482808271430758304716317253104689196290684967758540051569744755564285660033784177395007556699238156540853872791374483194607533966768357891533209502132472701278917127660410555857445642938019602826104913746650720256176466785887535923084737752877652504863215787791963677548019087722500307895171721651378613961018408464749984160129986983731683855764979419358021171999778262263983584564679603999882267875987386092191133144445249861669040628703963787595058584186634634326042364338528903164211265571326713597851710326096295168808816793542148306536251693531260276801188300631306159006876021799099669928360494855879651900806059058800006796760306024220947817173079570065300962931914852551822539434230325802365347868682398835602759082634428474271717909039994719148510276548889591351852751241596325588386826836306457316960671241385251189289644367618995453835669819053207053254713574537348890458203224114318353736200414239657776346225962876171929762206628048754821388118523237503970162555474232834305254356985276563717846898659774140255870763435271449559279363818528560616560036844845423813890730393873453543968181238184074977975166339607516319108339476375282413959696577799372424592412557392521905260399136070938450155092429781623830620079725686774590912393733103738413563161464412820840166719293514817952928573915316659529128831439117889634628912059886544523449695214905592116982189743748960550849393241245669515173918452353257889777605355397749185630221267494597999597775827324553529914013477119833776080423621232165506923301651013804180086558716034303384724553530201865537667841551183144859062296326511451513417868088074536330886330969346642231130858905152591695727783542714163087774356467562414932009715035623112913642290533472178648951679120794495162011446113929868849784285245640905772486184998762372299539726413786677121802662551273893270585687804183656726692437716518703792668435483748452010918774879840457247036366234140964900947049404138289270541401211518390963519459898479850867364196556206271917051326411241329755242708193526313010908528807282265857502044447342226524529222671287592850282097132023534308950940586651533486460522953061261482553656895845921224085371250091415086513428548753826263223903124380396041298603029461188326802557191741772900861446661872837944639881028222320754393564258775711524876718721490530963915155950332742469939561151422796349860531868966095533133092694184575373318605717571739904849708631598403187171539351725853611521777514139207201533217224689746014348823338041452356026003758829161627189052492992509688356824204633825276831383970221074110217798277048279139385130429601997601460399098098930650317811384954857349885281244184258659911261075734869747492765786532091658849230833616454445755234783426893149301629910846119796942220421397195397368866972218408819163948068540475115876555174882345334855565494878713098560410001286182918884517052457190359455790915474382115577871673653617061659761659337813864156042316428093979646509020717766734738464001584240613068592261076469578975198619827492509402026389199119838585923081251242135081531283109727269666367225837004109190135383920774297780360365506800909878876720835014165417951542727275609701286106703828812910947402613413344004256584787211266422981159549501769811181182707018384836227464604144686492933827853560353917455140454765362916898059759574643779302452778169602792894443516437353071399962492334919837899820603097478191606256075636870760489199835081939708301675566283198495166036356455552370205068932192717816944151175809205707994033863491606477125641571097369765005862186722530489410467542006100820268778882828634934459736524597675343137388421208643300009754604783738797858277616783086387892117651856865664080268787761685645757294028796591636699261965901669081738012463409547289891097964025218178982623911182236094313908341951769268449079262395124419119154810546129683284599048847473553270691155769313991692041275981746481386101386377473680651941096567231170722805763251718900459027592939398888292336088560547889822636634675048025363507994661745033519605997268306594164583177219791654201465092800703937666233414710680462329662788127205966693365026759882703642815897551839196304529174619863182753691331601045282944609058057064714940918517430200913520231596766469725570732607309970260803458534512662927902803347308135908932045945729468298544188572168090443190216740183284169277787593407671534106097431918416621173412289400048596614908012069967791222786671113646672121194536120147552323951684919185151336587830049733986728441838117740502479476758585250560879090573828798163510688054665429685476311506120582085092956044643138308374883581291895601071039939840946275483030839682654341827848304097192316092669434243714161081746262949866736439742564721441606859502272441724627692935321332177422029934343295438236430391730196736869751451211773969638237570853027826327316069260943363087141729969647239788664511055069521234408845183093356018596076720393675946091034040318783773942550207661623249155396669082266127192094995471871725028329789901477006070428531426884471116180026799343670826213793520386692976409737078819113706179371639279453452717657353403661058777809142970613034207278142402800507940311571106416186290296498572801009481269251846230607105244307489242602065959459552490067857334068366421944612315477605925316821853884658587462739792565612708394838797747832205605470741907620652298185620194866376963873053107148785005166974769589936242071026462409087882691096654092482742381969419949174786167758799299344259043396440270970319649226296488136028329489764905023464863399625143921218477884356160114736761627911671230791000274772187969138282947971881868956448730996467071941051958765054500097831553305626005616616750475061439374769409331756757567602145364482147983954695324722987789767691962329648956468380766872028189602548848860628490359120610726664952049611475006816924591518403631688916785373707419474407375379003822392858559902753949953505407207963235101471750087386412209088334704641513255903972338065376396509524286214548190507809700503943138726684915109684369147664133486539826199587317077572435216137184155936904118600511641896582002838041603120023652080462456851314000302297727430983445921254903290804330232863907780545561705107705026566478200448481760037224285459200670732194755794713731835608187952638252301034298749607398528407820733468382354921803149061395056526586509004404223389468488770152348438908189028540351936907222409339240290326512569743764494889580543229411777327474464916675836093655165400601446784249380644504380578685012486121864624874105514723917923749250885385066834754730576535039025156467595812082675179698117008763010197876319034976998429434104202907211801463503886060996372728732467412346482557728776512732943665672943058955065972884663704736311003206377399830320358072544031083886954328596862401437691840511602520795860679266687137545194120926109586430259441302758332022704458060914470053747307340975885967467520934754645917737193758700480679009710128039398236001750065667734983559442959470353998154040015085765256731023878071371616836214642656564660667653925433970773630259448848606890651391444278325279551740655808310516202761328534699032235973507167068028177324653663611811881160125948544486079516603829290835458461028402395270145403705033796866186002912237267272353493290561451168481549709648822553835372850903967548627527256198680340858657919523465324092575446549075974083792034136653373968283109394411067578076839891070502213176016614997696226136296002545187338380943051517548881508738875080695488805870621150200480445113995849184190811608842496563180707673325258060474318283565497803026545630403624852818647245470327189724142951299276453221470058171245830573959779526706440767428767018691951866376094733908426788255438784515280914637960479754759385790834165093452816963071378063299519219620625323499988682470108375366855850338812486860651712948126326647079689789580597650572383345371261264103699616919425110811173041703659486448212911982245319315180600167161546136695014069474935579685251414759698746936005343604014112113734047466292136990728534717655067471301884666877551907745392853147794906697690524678975765734403852456601832157684478515179686765648569878340941636814890264638316432660239084080454948117303477473369816472447240877637276606866121378170832874692536253686392201989896339460983091580173534182767789258284982207877824152757295351339317456371704083827256815493527304588104929360846576147194751485392661901953663436023366087309759320813253756196812836430838191881129341514689834962097392409253324985348948772803134077785537604483329843093687015496870793708498632135668105325206569173584879242960008323609417043613340514200424277147801374599806350030428639677115187521519752437520716428539928176397989443547808681584278618637713251973424577411853190548248276734551080104533214911494842196389150081916349042210493796548274749920499144309249667048055049434726113182306991379177961358559399021053825445823346978411452303673948427919147212578719824110049194283002116474166518705933674724546461391000743360060452624616077855713183697932921834479103652984755946480574640278128503874604608523028261223981934892373319982250715286873925269110117639617748533640632977498557862857416526690632578713431696329174581039527002385436863042921907812578435251262657828027929590893945717847203065354928459785325123581130374240711099455408366805720392967790140362441739864632181100852870925025897721549787001246495382524009720577713512883890241922953801303958025999208092291522168783517199167181070515520372085772547484544768899170630135852873736723856036700492577927569065281804882392836905593004317688069936990849751115288391296150048685801932851608084095254576486190924013797349797910586769263719154065871495193957846095788934937298362283908105359506051720977446100681286551995974725040060825501992452392670152495843553808065811718140618898967952825252470393625508514253502777850459230963069377321484056264665471254719431124025904024043626955322934657311948575494028981450607947553224458765171373636661595820691257323670752505826531604710487461754907982134362390925272204764527658676532389373647486660695788084246554050079024112787215063151396450895140704445170842042900160533674409265398842827301855948517422891365442539585943536818880699250536197399083793545108274692940711547573501013881522739855633940057630187392197944344288775308402682603635334137048999024645638083748596607118977247478943787476306515982001043942792772249286004338732756772474466059126788644352331261785292637713809688424009402247084712309404108204455083300202320966608712235928561125395854334986018660683669683052433713385923029682444923899434131984571920692500123534621295529983852632154892004849806477538349870559447368738779482245490070795252936569612230266304373683972728132291386374038977256077892535080136967638944081807977235414049145597951327574495817276520102367276504637996082659679231355041801727773972131843329507639778254330704515639268761479455052619022681685523606400189566071663829976955849542665446332753549666993682393397028023897533870925653161086321788331242727569413096307416055318489445533746187469283725030653326365561031486630396684315803538536665080173472819736240135041981687425580299626130087855519228931110452204747627849005369919095392838411166461536460366849839504913659482787767017881086778178013360679114296432477410247326343229697373815959956930303966484685604523473062896805396002972163162483761162840567689805489641542642688127025915415015473219284309623365233924186478276094158485401584285106808390077404233925647275515174557427825215973468631269895755482968959320986943134485285968777762890671186572524283768804902872293583800008485502217409565236573125137735574700682006436325470371998817274098340599611625503194015165269838859102431126836348100538740142266746786974745299808974027261683427678804587881940193431862064380537422948353203763335199901306403039826970175499124038596236129810938484022289744440079692775525277539039732951751433229998737845830469964982907521779935321956916664023493564627666367955707082715931557136848134322452502137641618210726002338227241578637913370368232637670424281761661245960726356026857874428137016259273208640751377706374139123752837216827889860206178541993109173928732010236510305902508916953579696642820202248421524240374998968534909779057658372201475039185103600387832664987445305302666252811111558731734016371602921321407908210375689825067758994809987956435779750198187798102439934972923964710449080383571515486541213243321975839350352867633017464696837177895776642490274679811091966079393903966413508499590850098870073283812928720238636700357815103938683371538189404525291565077239585653888164701718687272720810805224006369453121149264106152912730961558497265614211062880007972032330660801413644401666800159503968330741971780833486492064732862256817953440605346698052972126184910893119548473106455298403861077882911580546786981614222062589038898961744876910032891163449200292293349356758399147183474854254017923298403662441425625040041488251878247078080707959635798819242176280317735570158711816011377153004067046333520488924737266222149781398180027683291076791205901008140046708842035218966540569219835091837372030999968532920052808856031094755939948182415806185568566194951611693758128426360486320622340959891772622737932819444998125190827921676576391995339406835069702494988945514722694173385299441082323325983147316937575375855886849014170934209745231038304224785469928708107984738034278743456760810802523985697724782404552821565823449066302661662513957151645547906965106920471116130273427216536010869845624860629492168400283100952788928352849343369622409203087415328331375331607778847745489011832170205416046161335419869718169299748049781654552188200921792649774801826770469981620102192113944080307345739262317097768223432987969227708599839748564991987310182835073556352677501922187811502413671376431336121386217150545322232079239551275829900589969832170889019577687426960319231475118976527749470106621355934515359560005947804250191685342520407511387797414830749652993290305464887637619129525239317381346300955999827520693447752853771868010452513618888640073068579190808614527958168519146200089399255509163297039684137605958590439484189021588442744682386829295641034270333356134443839541231578965294347151030838118349912883898983137345680450242686768666748912740368236023578618853476362278968363578044840553995661853160920782052439736221051835140258268279662017568974589512413001606690204510043745634610143700045346333880769253664718242499542518250820324055150183448373810557761189116790123178529734767212791185805449847912251843472790938257459001027182126161238630913821621170740353396120336931117266121202474326415357035775666887531872490422982969817969736478592075155039777250479757570493266250406827807987665950312667459411035465028053419161325206274555589315405235757092038490731886588192829502841942607650551236641912547009560930256169079575825159183502569278868667270109774401930295218573747163620034673020882190942264514447482227594997474327015358545400258699893398989237524687871178211621361952965220275791682288379424259548372684128241000465628569430995367954206248480770107821030940052159427795302431557133296464140367152849266927374839934464145996697132684846158406483062082267740793948071849994085208495615105191368869005670121370326983309621388190932989892458579878324130480481316040933712646802114686810833710760615382523710748923828852018838113532643907965052880713366347862979524046180916194277715336958176019598089958615578241310835460892193198114628773903955541472617411446933666760474582066501996688980288110284351217006698215668131815066386727813406287563541980995320016496125444265666876686698830631232267108217395109536140914221102175252404374731885613277091922675138622951683967888463381079844709727263731167061993298567081475505499271447795451659765064890822077900234033668100658477534394017896164480473142981100711719836118252606825757344166076814673382293751751079596232778229121511786457618592640934915797953075197274631833221847221051213723608831268818094916782643478055713140504648281079460516758377256136894001965006610522375500441201770153165472521519121559755367407859281991955581047780347726556876979408988384558739039722885861458185385772011392840855610129722149021138512186158701370407841799807770384690117353604375911796906095653102964946265432340356729816984703047977955659283995788279840608109007100201508333247654808022388030309546199272496409167456749234908735960716994963634950076328149440911747717997996709714000167391797553591956112609365302196770928792895969865228106342268983227552558993537796844975020238279465693745028797195514443262965671989332415013067051873185858346411525364986034772552485679861855733795708126889817428847806054633421447524049868850472905979946902181434819969044000329478087029579391281052587409680936513463717039544630115489345975498237234568128478289045247046523889395868751561079340014183795888240485243860704623825821579372959482666973064851953719720414973728393585363024813158430684861622812006558881147929530004683619960909258243353085115257507380890010097482228001641183828876102717696137017700283074774651845435804399553021494930368652821965662484274646356785882991525572938938874786314098788223249288975148080286463581740451256254068645634597146643669049283573027024535176148281934445342097480320747502009212737381909623393796985438214708472972843945395023921518461578819686724446773543992188605823444315049763818683675652403582624643817468871822738357696685622729184360678153345279893024296375948854848694336321436606482525712658576224383994696348706339371241497400652745000580357543060330089285495098373690866016592572163173253383904044789414648756358392319313669605613433925885243969203173580505333453199288549489313712050307004678728155883962538467195247748167165481299092051644000082057517733931473378492917209867866297993181062336005089991017035931619369115778100792420911450071266447348009562910898842361596548202043652352580275642275336966190648879552601497671659947839472557317054767326650609732015795246467879741120315664828523936595366015768915673731646612887388722804283501235196462610030410050064681425812956900208732406116583526579463000752173638196250866278476190164767872940708902223079981008933972100276821490348929371525761100993138873063009018815339884598666048894784098342719379814805460939603804961160572523591056738522963857118884419659790431974915938398496558005304074661804350935648530192571993447259707619372109630654894838722950669360813703651865657767025576079372823883457495823264766831906156695175930419869493552509226032399201289361058823911871014461917264787114730349149470620830242797523162245285710978951524394279326855601669089003986844596594347091767376565860995197112521884639149070944736837447730950891193533675353677713284131439611167250639840017940228278283491501124481609996416139664517390030655890510798794008865442723054807114229590163559702815039092351844350841699992128090349790795240846377896662778601950477161524761247266850765291006063151957677016820642574893803087494466030485876098062433974265751144056395492994855483615765155069760063052861579343406118479405518820211263206194266704067219044507661977405010930353766713867360700036298543824052621901321978868432178712929897057236992155066288189202357276036756919540229203058399047458025447713876973134910878100294830363020559179067985649573644701285011597215681253957292126959743828834185059474552619418222182334161531706362303474710672986599489879893365281162759458726019859985570882136644655541627656867163274572012743163250436793916471644826575823638858733490059134797362112210213598756770047266586754034573626752714136678101751275086137208629035080479776252480699962214681508726732043443814109285032431424626364102485034846178907758806649799484442498000942221425424459626356933636116838794879790921658812061316807156502068458641758352038056719222395231100317118400113111220488410539286709563045385338306386867527445851698440609967818950983072197765789149594131292833067898379203182731465435732958539961339129236570468196497656126827402415556105036578374543302919278562652241730158625556428349942710297922510920805516363411311250679820254445971262323348634024807969151162801517951621292985964188128345963636446367227281876116172544421061318631500618692483539551431195595726558714029153890389150209056491442135200154143741601477262015662051862289652637749359076621398964425507229880340451393154052315368530531692523906839316357782282861467902146042340562909903905869376026842174136364343328416275680682456813734707785147340960795128894863892499584642900070811351988881384820658999630829215753570889947289531354818290745548701563569402493787055775407179935533373957838964564738508824843696822317507237122875011778256368135386487122336910044023754622701847253837865300560570795019307927392449144486545974593863924635712443903483746377134778675085897599306213182478868123627512448952752821346685781092798186711116986851021504974169006933347418482045245375521232580041934025529952934350564723978640000769021245721429412178763169494622243830314001638202977590681906194950250997084507624892727584739064523398403589320842472586606114216201720982475056682115312502833973926928161362580300833701005037196438368156805174821979402327588212393249069848221226350534205995509745632935567655194608854954010083270094014510716866459274265849613242644293652757974136432643297591080700944577045800062393546983489791997655677101515905551825685974503401955978330099493414981244607388285491400236963282021969835994013529658323733371480725180749434595742995923691842638874448565621018584801634314630156424549924773028928889638671262179754389440227207342862851641520768382863689413840828463983361218518403583456548757406707833556628477273261681345597132076670893259049103766928444660723431899628138306414015816453762191953116606351195001707263327004239282739701179809925410040402488398492892394115444309223407301087265986306066900009106575384694788665791358683484534455330242760768269338103121668735669649765561583701339920568638114476791094353799040535991735257709006281343744522645609099192326579593805572831343745466351163615546914393017280126863739876694188404349423747461942929620496768491073252085317073558658864128352737653519168201604064255226080232038292680088676747517638355012541317795318191554772309689618491856616448543162337442082084840266993093478926407734980829034352832944035920397994803490192394738706153556299863192084469210847276526481682685032866363014394381946220634673771733338944797953686913077128731666634726442173274081554667869840610470837328436191805516079878597100053567744219970021628713853837877833191854526425326238550475730566864141489669608789293736865236361743115066489347089201165101558647948132347445444308231577012171475604174341213542026040881205244826671248748305800141471848871761486779323095891343412680767056255390526680736682700043119396595500846002374155181943463797908092408022835236689431831154059381704160184332762283708450309577008873136566434402726611911758275916558158881206857480484723983647585190597292634501179310505969125969975199549613994984372783543333131022728545669116686986155862977422723092014159184924377565519802830848310221062912376891436916521104558625832514549146115698070141310500986704083194167009743855468897400751727657371513732061297603365039330590946426046056757091446359248953585720207245124019550285296401058189801233769424889260017728087648672865311551374202587558782999698259983083901886080506092347647507094493885232176739257859608904002263645307847171904078311096438769325666059154261252364750292279473879675419922551952748395683350012199088552975671372750648441398410671581920525947958789402425173121673957207826789101041217436252386298968322559976923707820364915311291731397520631083043788361461017252886993478515120083372713081427451539508017029579606483612916376197615570279751714396739997566068326255327410960661636754444231923037453662569899022553276692128731546842050036569886677288947189812768855383410111055639923940643179625916278151091555834754019897104867270906181298025600363914871223497282343667732361947819718553233202865336824120455710232766195237974729330190775501427889033801023539412509746288668668316559307611348353107870280099963580111754472662815618859138171880928180989332265267079913638125188844881707699905697335873325901172324942936678282236724487284698448941275769412808904780673587873392845281282586520125573960508413120336116827247638236323101665875038846483665081165636989658778629752928522413243009471719528205685223343173030397395449069999868252538387719954184010180973727071755367256209367207575097230212147022254733945339555903281494224150310032831187360823643171758185669408406776508615346733162603434060712544629363586567259918858690238244003292689041223208787118577331045633821408747535906752177799383039610708189265727440064567758479044174884900067712744635156900153760522511256891092539839628122387675777556132389792646169283758430083106179691753995411066605507671828777240539679708891559977168546722311055791529050044137481949270823425779772949646022767179594210236297276506683229714256770163070957599287757570025956752354146175170239536892371245706564027456664760492912947221917734353804023227252297036692309269424117341489037209967698234052900573385559465083014420922533890919391166565452362254988162648736331696263241572844878101476265308594057246588040429250431094799690447490141626807449776822086108397312013684107575447056440647854889686329533979428558731618663335427078980920075954482921110777281906874668390998106306760473321175125495713760890827211613711539203697401866367267912549098055638265876341821232493692670139771949570208284189881440305491728740494154435954554823371739373569490218104641607647368014747312335164242607321636035537129640554722125311733293483836660300154397828795037643775581812735672660640235529306195773456677726395721263616332344411713252160509245340224133278849424251770336168113967505398130511920031205880365727412247817338189835918982382594699148940915124848559187813909584009578901274612265348718208328435598274146920925185527437205121106579754899955975594526836359594679796676211010063003850322583217699180046351564073365973298117751873572918799035519766294389651865125743185313387428171771086313074535058966695916458112895347162092151144313634896897088157048655086559081852261264738552054400386994003678444953087296383058183639794971778476479064831443300280992193512003724626509581704599042432566645015546623140572372904429102782467716911551578661056649960755463519568559136626187128734925296369106244022021487998988414958713506957119281601664334646602123915389265768215165928991932454680963072946312608724961810874372432672104855042824167114985480908112114660726130529657466664897485868713893381083928833480390980702619858981248424004539395692584772113950717429211439417534998597876716184682389602085641715957605338241937980024680628791406561815747096578388059808959892789144049920903889527621365334431015800148917625220928480590805291568220622257901155060809736627846357832366638407528125106530826559236556556315115690294290355760848157798123726529879659671652663694853773400955213893633306933139266342552965175593821695778367389011198635487725615350529315744104705347358695699178584695398100860329394477841946496082444982319109732946365378410693329120180060254126910813144720612975396867827635780499172659231239133589816973242490230547292452793372775252471565432666122557546077845026729859631524573077363651832616677347024940335173432336020203946077437122550833287131455841890718940028562510003441252161390173754182182915163960026949233828994225129444369664278091406494620228292724944119573702643887649803402384871877239665576617587880964942669064427189981535794370263250110206897602957994194804108993565319817970243059114363877079791694222548393363094020486924457170146636587573347539727940832965543745636677631466475008381884688525701458637837884064241633419532261606592498571190469502596320359979879709620360998140946558718227877563584338566135788348258500335155501009305574348182430973101669255181170955159854994092748615530504950872756348908950245949950877818634777044015238474830536919622374411087615113005590409100251183563716155805189589403119880206101489491630367854558939431192984659143757833527447874177250529455220920602182254578986873919529697732883993646291157966548850925181348350969762709615017448387825831590817083669096398769948555506948682768411947593605585594556290979645645678588890523707474802111540036295131836982721057920860844225616633331369351119838208622140854119692157960179459889376226223407248089141660698751330155173589980189136140632973835199554699590487143086016103352680430953157011763273116834503326333339469829834291176639595422317502824775849767555880431860523369492835052305862200949046055083580786670195159981665666733777218200168037826354294507575849130794825348739127766952076772141775887382452764771847891218793590389427813031493619343229432543784389426202455187451347691483710397795637604796643960829038584239229088837662043699126984814751221472551754480308209948516341693122762623534190112883879122484703903416019610483373017169448399811723400912093395001532288622270986839905819001560300865996798413387459942816014274734818169678634417859807213397435700013008400301675307018810326588393606763655284104959271128895868451776511574904290948577525565916111464867965846077478592606024009019343254873145947368567586528211507150959610143781132716895746494736752355866571884418307318046432887396063737313035943583414332497739261300589097457560848361728166239222938201620258305644087048065272964722047838590638400725137993912508214633304327730745044014563827769789923033269244484976517936140694657356811979132251839094627122159952109583358590950916556504126512200382817428691324554208359434246796435954927073430627044789787713589550793057737882573888958878282179942159569722394092403699710790455619097069058116923492562228530059050849346575264931281519197106972373714629186535287663244652944261518844068814299927546905623362329878693754297076284213159559236151345846052138297755496146964929796295176407564823919425740924067549401317347363938445722584088024187950351701129031161736269990180861403167330294877245111206106340237481700765682859736826337014590129223092389047412033336552362981380208677961503858249270793476580570657410277957721572129938285361057755224864616949615221350212207676310880680738552719619855453574648629083371187811915595515644449327020130543236945220576173512502855339417301751453208977359380633115292265920207955341199323996400342917230780004164729092977850507000287717046432948071178750594929514191066615337765387413205103560403404849042438392776188473688781386476126298317188129380167826955175675795332473056145392163924079418747485272419150818265337666028718195131693241209620953123692405978662910980645194918230040122218069190864929786315067340404366587557494953617318174102627788198825554588282652599314621218742131619596454891019569780331993349533815188295189806879656793433503465371398397037274993763204759274240264410811258001947090464096555920154998999819624145841748048232965486210803857675902414690814181142080839742266856934944307058356483765342074056397479332959688024512237316526690598542030228575346533407711701014428754881700048144023157095640165811408308860691383280516072295552077784541463056068009293943199838443937390785962929566262731124524890115127385249780682260820941411081613475271905334500732213346556211168342540563954002237343820512564022750016501299199552004192001648278033831007096167134870828291337500590738010746560764472716246856925299738103204095324408457753489543575277351127326823297832863027295786479277810298419808391512085628619882479538391952272460741655636429688378477221365753699718759022421180136585177958876021126259040510179900989808771841234557323772864010871924197350208628930990359961186337631521084538276799556674718684558238885661086769567068354856762126287887144846346751327911413850227767205727513520073403789078151186312809637342188917549918077298621663211284153763389494856456749526248274646364963523447632885879739403791719872379079574731399874631898595064811796732469427217913362574309481517742484458814088122303577725365277846693489050886418805411915796755760260557206784333414492505177455979159207562931629051502092917274126295589985743715564467079589721533850924459553357479977805933891275095413145916342596536573903677189723566557260229831308614606375457604628073787571827919037650655424981097019849566708753042332320682647732948398771086050571828487953081401267791415895021200446501161151010205467712972186185129775828043380060826434094939888897702074925473311561934405820219429586575290433862717077619977547518754909527445135081533156245239504772531877029137387640800098888443358649643323342396261931051294032067001224277569844522106215802187947401177467878808731080799672735377254392971524891927094676467974553765991121421551614467431703703085121176144189674963290676120926688020424530038724308539701404844000286734947245574760248868412444857495987319193421066807443004121869147542732306588140870923663772357587800642601164959705692625734200213644595649588690414987829587039637537234321280324300684349658823075348814626364172570332712984126953556580595562531513986515505775647278028284011453693227436127791582994455193457781001099173425666702499269220860894455502690491503080640266536758719829143120234221061505676272485854962589566102217997645120925235281930004382798777693216231762688639374511779340887073332726706312983679893678820003037686688087665904962880363329204535137555888896254199247306724807928549025566972878561959665482842258638519557165388811572992979416797628170579050871718653075504437662117026138543920857747698200318006217597827021210995945488411340938763383401117989956649590097864000394867797533354498445984557460060357762889238748754273741374283362591499307337239040820881130184977752629382125220171586076950873077868668341564407710061259043416107623351708626176209778454953897435637358589360267597416002731094131129481045006643196549840670813217162265250417927282805247116631141433486391222340086350941073862040510328259062786027071534665148423256224075295355534876664210238915327657798224931295568054660800948517287133356849770060535842690505587956701515062154302291183135968789398975452952999747068198715787915168072855509053222265724426442372943062981517365393217150123911824292132274035856259250152772537366334868683833918556120379363192662228387123704232550597589788993881545510955047969620732967888978840465454257283476346291931213407613454985714445557285214253019574515854510600399443611056891693786444747718961176792668922817716659168679689936307391979911992882479329368426909377251729436686260208937340274679444430193068405887794725579448293084526013446125954106210057919102697236637326870438478206048434007753626144583566664217960436612464019502394955874296467346249875129766455810969554527913515883808914319604673408084983841437902855782816362231793556217870822471858158662075630403412237234285862982269154226250715753990145267253080330474537534692812494402491094919890389418453587672419766433300461501635023107177276360020405787481972590798579670269292605551115074234151322477783367092726740828785806201094346809515756381294698526628155386549017374173014245122665568060942199491585273182921952652978883740745224499577509452723835180527710978747983824314336729864008075752533869292035455698024126561195995364859328156758345428909553067147640816602003104635078614844853811768803794331329461284448842506005350962011579138897951560352550375037365615391747611858371303414828311293391816977892155300873624688717551570613185161611468343310960538611794836156856448467871938286445029205047819916204560620189243973145980944338945329439958956276942480706181900153837412302123278500358968462927629955834877925839356214220876197607901777928680781623211299542340803192739696136187695368302520647939105493906792194874149949607173775384997577135194997226058212626907192329884274578635224086855128754473796063876355296929236397309820392153941415071104439155702566630828457116622045521779851463537952695724885546860717781738235188008951583889089786886680231454505098684694059329303404687220893649307114739336900848179222848599644965092899498576630606758477549214638905158687557205616141437237086491719275784961547725724261706333965703180014194981153486572335301299754391540216501094028030398233262655240918996065536570339913557064227155460170568646059199628011363586498990049644933854001829916111758472823397305510702558041284106212410668933634551956060334823669924290806159819820146321126279332225450135211223968457920634077153309990168440140471338685324235445848158004058524745624456758568678936899024815096647590459685437289081769982703637592157021460755512593416544869253741620265422035668039075274392191431924854911631544995847293204301964278766367266514852473568658417129562303448912493850145431841734121507658972153253191575598951610149545990000511999418863167920363025739692512848529745065463431514529457274960557915398970269228848666657714642056545244539997279258305511993370461879110544096074109389373858992790502424775387215454228338574482266059459173109836044403225561950106566068658289173170708927565608544304000744797765284275256857045157316413116846201912109011439370166443667136522159715797051573528158816487460784202666744545600796227541912570614631679301006524955841607366313993031329807123646426103130120618494566605007260420606999545690970196174725605680206220702956416868046993278511912677113865380735999976299574361243782009057232020200072517731577946156149222889718419203179494129606946092820720233280798979970257150742785125577378585736557127157908639385480845841503817918312549457451340652305487275391793727519104007062761625489555843776369383272090812903087968139660262437237247632418322035112033091665142012730050496593470796409139830369474979908940423150597655488905213539598818687317976424114076823995866407094220134438827964393697902703386383611804472502945029751675267784412388167184273131947112936204740937994621287921168631852020917790940598374090293594227485859940730747276517251445957731226954399228122838383394582970084145648229625392639682790038014541739511093377520353839375660065835555913323080427285034127095957326902853939034708983929070797823926695260982370159609228683220695421675945524326083101738086508924498842980776914679379159348456052952244671728287673571814521627351835250520400801410051099719055642644887298953584166819617666789673079626485998305766852148815919390963482729120597991061047196030792838093920117479573890222606547119538823806808984936050891656385721116925594833943364445520676205844754019039775134682610010762160269165859686237107436020492039831455317548038530776094300756605004813898152288193664976681071613608935399183433016671100843733606913892105714916463184405803840833055758551395954743751619065271261738474552823940834186575694843897594578769218746028976463390788157743642190681914896123526819284694391560288380836968549143912581592781095850617222632473784418912245108843698888011287770104727304300613995594199890199851256403756396975697156132188575111870427818108758134596780078952568145993589243218413665180919806156294625147161778797772370876339198084078321742079629622164805171481647967270430261302624920683867136547257353582717780879665924826568981421350906439173257245178775726316011483465664967775041756955595546661988707839494946371817148879825695896823960477631619111841698733872555797489768629341412019653403334390306531513149618186948862265047558353029117165380272417759028411412836133081824520727521471455029792528010228896962406289916807723592487128656210191429137818165745997647133397052004633498743132402792202491214379422099113264575459477330345667487870385805135771174500745194317290198096389465041094765275417677824929880515952129289687040484789134149475109395640053565352935599619146657282589393384367571029836884743286500649431773437312606121978729891672688987320658997407329700294998047316462079123716694881619997591485581901641828010417466866373275701178179295895411159857781020291482343498596759070436131545893941960569603327168770674436179026598077957539294607253446788020874331512616397846475803933525304411433618942462727474155181404182413638933089272476271315167428340553697182269471121066538374730185638909533375060410310114459151407090069319545572949887513051835620400713194142124274578014595463308720791248873680239669186515545623625348357537878511697860201435018672597479282442165535228390554278284667433099988031774062831309228884777638957726124202764042430325217848165163594744033830885790789621133001072224581814498135386170681016570184169682743596401973024648910096423298176672822189413609765936438739555144453727776028005840572635921090374872149275041790561325638093762829544820883815793599285020890475221661104411595395408743672812809199098306275902089723287258442334780048349791037026538206169342782921751768629235768772875861723377718273310482985155602828700836822541305900978029539995700835433639546119178144348096003417300013874976723564566151786691914893798419015369827479773302272296224502000218637143437883345378893266347504435528266790414207707961582617232417428837529511253495066429535430876432648470436870760182140842820585530599854606758407494721526682575998333289935851683272212202183230510788875574052102079310242116420707295225145858800053256455036416848353220974488861447794592117916582196270777921066142847290960222185895085276647048929874813109528129386661317575713423449393097069015649200845684436553940939071500376970818617930562167409978869745145374433012715140580649219413640960628573309415695746480822731015928308795754767814230209198972163722045718048483052147232556059789766572925897197062354804938167163183156274293598534631346187982681134629498937342031217633568193831917126519296299128366450561091129654252213949106100943829092980506347728441764726844023750583560623158577779145685559294019406844651494257518558308954953304068876670497370045461442740735555412472096164871740920790337774217455293207246589131008652151611946333478531429921288438166144747529690593758047648308750652007858756423441253679237069660102623288737801359232141279766773794256578437055511042866555591752368764902943141238347621407536415553199766785540211901148124014913100319968175150958625144148855309684760876082707117358963473649833654133010347488935369272899148889374867741429600139527142826076558677618369122924634695675401277925315393102734262629467738986879631492065613126130644807471629955703414588520190088432488832356318161948655791695432458380833125294141461353253453222439733612725498898684392914539976020469405416351973522499596739410812004401604006185146681093734218070067057737938728836406008494181856178446623667076850538200042637308774236731140637479088844642460980005777080414097567625100447624051848340797510266651289677306146096130973634178869353500448941989860675805623551606073648185337971887037386462388322855428712329946838400817159945945756478392400310802443615636426942007851087312410949774766944861027413431404137299759221146434350519914314346885796454563149525568755370139187583017393238523356385990323610412784255041862685339208135803337200744113195142329651686686095376992460982027691959051205097036932160858805279492388327035813437585127668024697199827024592137205772595410804999653661249860481219770523886170463905730039613936990806485152050408219942544107021470509031203381061217496844522297286245205337832968216314522598900599278867708126471128451248713976966907652655504063636056199654056954952762177861588326049552828833010717704319304876188866652323857260801757594098765863339521475032936344668263184981871552747543508482343986180482021812281032833326050497342520351158711888826019440804281635442565821050756420360915558113217841862222035655679321977336922224832575948714601115222661369763634310912341132874784105803356443794215173231502338616865607072437871943271168330610151432724817885284862372211552611922007113612604079294837719033722383393533704048514119786033130068331919760194393828736357515336802785423751470110232263729529055245710105156526977940532817487666273537822086731001149900179684043098880171112043953038788274044656412673481502856669836063079231629566600310459965779979282904787670717913886465038287023105110599514927079324014740602151539685003728267309242338549180380459203082570456055028901524213771977562771079976445247688098279609173817504684753960192452160903906000061911200340064631165874009512522491526457116742140159705061947205033861581389563378331445533708089820665813215247765975450105516042645081834000813905044578159279771031310840543403905541094884379511206994152862062480173999442564635318693657838021389135960562231990096622243976374765369149949671161947917265831115213490564609826832857331927799309779618044000418611467424326948095882954676177129172760598377442145860830553272771649579349592082377243464186141830647227016309374971480697899642691201131374691889466296886056919206121096926429625151674056288533311940002636606948604984823508256756862940728133299558853015151309242503773989104130137085738587738283006577475582280666815870044389997080765473586810538606819729364309557159219319399294372569075681802393195867246831097008281522183702660610356722546508295264911482284391050211410123220637136566252292291541374452169458327188826951980927417674677208076250580011904281585606637806986504228516308135977537788133841853624745561328526774984118311860662120983626958940694480469226355264054158067912269600944068948101552737400919367007098771479402648661766672272355769173523268817559712059143539325762886029453611446391577678008991990298409783757885749549280023563456042693227956721337327172831318939547039874700685579743613314990412164858618931127411270410257400930759877753049336178092855681028150445153925488226955970260443311067973617948884011148487189677004319503357857029228073892820587638677628817947746972057291223953860165153971151864296278810869243645854399464131213414809216747847390694338111530454871053514839813580541433963086327690609911401954179814115956713100855250706779837602539800788353335399274396664939445666713945686313404585631987863650517865051080552932812080602328119851077099943492497532749738279877199684226467848414193987641607475978096317846776235975162398056790675024639625610981879815771826496130846855027296296667517577164205533813073166031963105119230402075934202834005847891227834921297000630922523039374511473278270783269287112058329231222005280221279722569684265652997779713504703749336836803551311803167247576821237625522023802371876888446358506702521841283482440688447705079614027688258430116560179045767132883298283488496254239766389185836314542226852930155324903448621616696285018199627595819139047763868042972921411439923346658792587517821183696291762594144452217154963801688837741464710407061573564742702541669729366124307480061049165935204551284072034590617940649579665484151583204443613090856392847251360671703164344499410319185797510229530503637361381681197740837914487732974628391716503222324213041079825970064884562105741530709931831888677142920846012849659052184777106221857229306826671640419782756018078290659985727979154363227239095718398910829824725669142760353545257141872091836055577754415973173845483681509781362822945405353251784498739501168622205539048699076678647048131872722900190867730310720153528484545571735430074922046906427838419639260875780773093946525168546299285987888019363255329324791946198598675132971581801485061371858782490744353479889143817596782539166181170019278507892260935264486696799628603421474818127836259198168080820348416698730018310183349331754319551391940866281489297025402673369024989767338639660221123310159867922110962759489092630964757137026002948231426907164373612973627663346030728425365300671297906510487324485380635313954758607620520312893471030046375663402336846100329230373184934134007178951601346016576314177403963403068801203442185583712157750889342798210134529308138214562018939250841772634277094455808526184682465519846976436469587785126778260880444066751926566271825253511120320124296775700855359482987078121614010063804354000655917317158972192394533663600417158464597351673274000238660633390326782234815118021180750333458667298859894524233644577233791225816384378625104349139823604520111878046131141267639432437862156086849940810578139746110501931066078956478193257965799513892109715007088604994588299538864497377903998122999570277049885472837971626305824981719232132027149951467297513334616073236061998004243447264749689827562922814430391079465404009212704821456350984444667196467702930174732342165447524073451281056830234859839775959821500544648772500096116521773774518563410781327026956238174379536297006892622719462956183559597333029747190230532586158970447799679040429778763082095383589039070007145721144005088435009069256651828180309708920171370496973719593702557210062537580984653571388170901589554814364560793009177589313781037647550233712639117918713351346929009552770167075921715170054174843332013632013446627165671175942086281794346633063889112014096083957019938908432215491075429425569142720451391633171756547054446425719740741827299485956122637953806042703586105336633439336062965442004356862001890292922670902784379633903270486845547908678636203318896786451021992520901475321978404988041460141750827790890292702503243080147746865949946915216487148553537172317983094337385005754147756094094740502632084031069936501058153068508073308731733389870402349456497554253309671836947544832395675707770819425734923133050172779658804997918723436442778297941515669434501833095372612464647219998667802554778000010379230377416407626359187780884637789390994130407347496484059531895726384180353877195029562318791923553082873279194671044546606370492369395865508861371778889188529782766758312542570444625441894107705008611333779317114188655740150117070017376123101817358695754230861514620424817770153075574747138624079571947824861300678666696559447883502413488071387300317086308018262071500732064176816658764052244302865536336361889019930581750684768701770605130855389376069603886297315890905770041934108682855263807069410106864543451204787599814954932180091879115712992713663225813358708625970339124011676793574079393998223026849686814710492210494176629218695434262284644741322279492760137733146915360391674966552948436668801108348916603396895019298247735205577091585280133022453784091537147237449637748402981665822045442748796098580978994881482489186056331327166847180303500268019437413545394252083462881823773695043590775066461628699676202235686662633129827378441840797241790072461051973373760232146842097686672097339142602157783736983979514988846674006506580523050151239561159891937089445299666912150971604076691839690829594087293919937158193246487834868510239894726488686503510657920335274764708201995409730319804954719388176377856746214013036487536203415832049511455831323920436426448995184271567972735633956899502828848299544449691498176624557003801183261636424358881161410835014815095824000222676365509984294792130372480089190034482582981893058734181923139438764422724191027436850064583758264834268139010503828028217135567804098545563306618398905687306095068268517584237623956295787114261607057516693996430043609551415229638564256345793151941903587218312543934082684111844470165917862084336884008655061157189494599872685722055711696332405488177073019774520312054059747629049237782830525752300547482583503346466952087897286422314950614815419302327353055117543772928182561396230670543861507321367994534599743177327240998925910906685257115576069161420501407220580465702996614021118192208417360218108206648734055763650002180995550903619468968876179547987813992247243799238884009815815545478632501579557364120510205966097264593192851025139786326128796439576106706174457317695003938963299415661641854622212505530072040425670141704655191654770581891807386410882389817003088219566310971151582079408081124734008822322764275444563830553469712395423312622736550327584801942972297826643890316057140661049168683274759805700046598027915217480776421109768600574456864281463183117772000446806402660872663567060504403537151731423587424284655051903017660175928952454884982280042836907161691685175939215713582430412070157423942977321036278085229703779729346203068997978540484524885265345148782419829220604113704998775217506904048276762245312989561222979703209741169086310047563362728103472646864639827403111168949986917836132793895981227218055821889311400554129029483305844725836694650286610171141056395444509182938551224655938004028021862853257138206269321639600750213252812928805426351537164488812069839868972226175482941691246330495977909500965599064235504109410385170264337048096927749261272249167313418726903194020933630986357706523793678961928990282968289739555776697188051854890231963564817391377899163139645241912504670679299120780575441163604213820799458047951243343014144411095645462057150847646845384071176204613299299761527434004375484798825907601055298388299648546540256892914183027053465183649881498069337071047093169738723364215640595422855777106212839944664086739318149231588390056428426120390488713690558175609648390739213892649584059605450107875745189412953514614992911622916848270606909651801224184328756716290278701867749501459187412535701674700055762968398037388559796161156348062742267252208383252391951011732633265050184523653552602062668035976396920940667728394536456999027399955063251126634822058036847634904068555590850240717358391231269485035561779544009730639833268141986743760218526226338843510000481299658979643251378489490223876270600145437679010777106551995348338706703596165524813954064034146833609679887521082597005456581445801928542601368237406544835481519940459283431116249776980221963381205340334604352488165830804544496440295597938682059892554204918423832406233073736840089706608103235997127020504746787527700917002718449055091516803959268756717671631558042380870260655628940269655806025310620050465244903623322687780974019490885370628478142229449651072576396257401570849515533667834990286421385781154458633146847531065348994117226722075950208589959525763547506840208889235591547355994416504460766901040195166322485008934738316072822801940204588263673862849282798625561642032783902132161091584906401387680311366080941653367180080985340636903310053883995777130630539454669747427444959124756334944866618693843857343234138851793675410365788578546395422007306382082051646982537109421153467476080971489747039611341997511482071853874079102405527204534806882924063472618831350169144066938922649903995325670043012901462202627632326399241497033907360213214752872377919083470965813345109156305228907992809827455503637780420061371250487033264105932654980059501755233273398267746137606242095843659464814124546559615949672567471105539833590935169192694914420451422242863199996589881989625531683072110109930946744068878388619942150550833184681999875675743082812498725701362125224988495201770197520327863576466390111377294871164150182280325195836332018474131523397361910340252688982793099183838980869843304956483604540777077563363475712003497789683781793872636676126130302517641472813865921487635277600091773365771529124552036447542977450273766194384956520876023215960995864318252324175121292591263918782726320096806011621306943042874883778916498844207880508183851438927488576319832721874179984812519337815117832780701168121802539580607540791344502735564074049032228081466845424293714269891516522126729577758678856057975945945972764066236737264200200894969551967409667545497161507355371224822622983392829879464638124724120097848375658082649581347640969703022644652762129014409287328525291519631181389923791590810160536955450448951186001293809956578951171442053384631224361798407501485619718128957311934313773540403998283263239508558019820742610943765741317715337911960664575397316926484329655841612018902379129225503318010437254318187798694685444727138312374050456319205170431710867912274233181763537612667976794613475228957393233846486677381194473462760024738726099122366260910178566261605194398584660558629910546336406152202868197126669386054647529882806683021246268072353751772084193149006174199729265972937165136031298419582891205285889063787631276310714326291749152800045407302315031810244530614292624750161781351354000115559101272575653430827982782389250621511887836690650223986954780385517935188320554104677397776940508840872553391637093473164204984522601049028942080877808821558450272001653495065557383026351559393712348612345990883552562029022600411958054854304508681940879527186782728889848363887648083600210779400671231648614912503102438425369245030706521439365147161841735780110913543517613595069425631344893511624639852666556368220829226770242636692301735982293503301350932435301758435902389870194508417835470189421047165813898910403331447578841044196982903655568327650495266870430003816710749648221426316825772601422130483154937730276657584931712005112099075142836458462511564299867171991679308615621508137478066778820586601672520766067914446595884801986370045595423763595315857332974286614453748780405294965408728172958421788500014835567803696291697512060059626013234848300902767268872589824166311517889371585586248342018958280682021037795504861377332285412648529298846027494337419165092872273948663346962125276365319935730604893640746212735206494197853361831250467884633221991284412793201512396942292294152612794248696424792480608048970582572393695082950212733842982111800007647148776940602240021269078580200726130471039865106281178774796613998475419981070809994561690329902381404945799322547276003202492000669698592097008385589481187048803852271868778757475063745787394011899448174885934922766814336686846319387089390203314464454596287089498711221870855710520475580490019836520624790211978915989136749240537397816114963935806263159817453893479555772604917266650612864726063083034786432678939031827434485021847027613559016731353064790720179335902719073583100666367621680954926549494561927211687774484433449865313100030064440020587489473640708422135097678269028112996472229481999589092620791384774101355370221065274211018878592875132829968635439129643632694242255025439411873145240643170395477846271131289136580894676705138611785034015211162162433371241052436817730277142323069457229487325196916336056171214870525020631704769492922076944428391341796770556421230915058581190129397994683912060473587466187389112094540287134438287603608622582143208835866097886153415858283698984466458907065885433277245401470568854186340909674854709639615315666132983259349787434499300985753900067292022228863744904208526755472946177174980612581427878622974710302209410228553330914618048346723461827906142814982386413530305579809793024762032396816211330986986619249885283244373410998803964488633686417784361606839021075048669067147200072237771774662769666573188738156997548872116604093070919069438800929844001320688781985111587265154246209560054027975948294785346016505039278982251069466782664050263625421310044427289010287262558128360464053894455449153454418982002540524495241076733577942066687122892363503529655793710908440723774526323368202628378309104451108796275216071668725143301621876484537382611695109810585566846141392877907589512984978312429908765369021748594682331346706353994046567291103726394239432158109972690940833409311215248409232893564816929476393862181522537746134860461103442876642139983668396494064771366395063850550100382304200289469586153790513188544735186364966156543975525346286426441254180295234184473043175585822759187155861046793377146127738075532436676081506013181063194595736860082120681259040114166457078189129596713648226455090211805909259812365412722735688050391804222849375119002457237055546694306277833946639438974434297226310532695054227491727227287754645330978770971429068656110107840791777672450380249553207431900483532963587538109183271847672199073831519191495401360883933362559367589449042876481413261754369352042241288298994216644651495578953182064134557965621995702880736494874368421201694258963221022196706768710669187177513667909419158149393453350554485930674148385283345121237462980157957456394074857764574980688993341397850554485813557691703053484127130178325228869655282684206902909055297703971088094132127604395115368125087447344212359490814922426278280780688016602850577831936030898420189603549269686455817969839295275063727583202179260668702451945784414395556370543205367640351088572459745923706709684834438260057283218968574127911140618917375160376110501030057420217285484467036208406671800132271728417828579944331392223089018189517871610529938347985402299665943282690715543511166296414065051351181532478549151992401988582677346723402706821475685891713791224077354432978317301096166899233636183646399329487167933629351846382708117263363534749449838570284716144613364647647941902006851431918737316647630065309588029629721310301324732321088348235358070213822697279144430541481573392783112312977333719697309770103818215733372588074637904994431158507755432486238042091273467001457696885205368215790030191422148877144000941040240029263110136278687396710527523309336556896280373598395331089201063774181007716955907069949428366138270860081626031011451769467541585958282568838083706257612211923948908075817418235061187835835668906220096098691573207374986580737779042191630345296394872477236604592568673907273018788440383126560256066372265642033068535365623170175576177618919227619711104913822418485255217527154659064708133363407977730725844047663027743085072153086502974880425155311644925095408921078444303367894973755454025924302509014086705751632404638217302511454845237813520856128755538795615282917030503643695111339996113424517831336541955901871031529048011828071859014586518437167029490279833794753218991273560265566479293202123178817434479260954067784872781767134761865039893622283477257532035507558774046972143689263538251251489917799838329105060023155689631382842361039316169523499584364651413536429638421818639868640898982997939922150466536084180479703004760979668063639317822736038927982816737909571834835349047309110567551468909459029690632870198087880837610395466025748264019076333088641620274725269054849688579866388206260722261310762732636371759353714562957705806857640587822550473099731330761751610971575348638478962850818005791403436182804434627847818913547965916110627589559264360918777755037483944877645803022143600068794515249665541069492103652725669545346272637550090353506980932707493124089222811974942060141264088225593817787572746500354103622613615450540043260055314102635498385784658704997412440225775585280928562588445175991618493233926444501561928665031801369593379736760085910531322901852809848832129093519856118670027811960804487331251062014566252692440102892921748116783359313196519917934240382411544261785239279095452195942889354879540559610009503264571190768272759177511822848340653176850402055248796579934506996752205753361144912536037067313988503264841804114811775095128678593059125930486472750998866566375858921981266092157719572625456121700123449037866501381967991776161837349700450687625225275286291114818592633966426713242932074602669526940975158013548500395133509041225628424452161893608529053634211428798399984319383278750077712253203508905333714415829862542008575777889671041819195741829487845046096682656465808337228474545443858397076127729769260300384007216378539882776190319782287394222369398750598811513639301901184158270639970446412966924935250350057145689370583188574117519912145196544100096767871718472501380113962488365872140563804503338928855587897885934583024044070730300711907419974220415829191911091289514636101372526865379671063569118128141640764037345693881187982000688538888536353081701382293531402573504180174822615265514329705483417792701443124775708781949345222464510209393391369108890249087260832172109999863328197982353056409413000445782543096610318229226460271098971428240125451134008097487083886226164587509426511261212035565876363438154170011540109692051712898810813885591239087629650689414187709968075599509796676563108637172186308246865478172922222115643239089354846867705048271943695841700194986234539035701406485378657412896233113073788145725288704738921674399350026057727546945131769777559288779786367146142601157917489494997011746497652757517547210829132071534275005412803454960736078760849865538832289794926075673932318694453961185158276564918085951491059081910392295450010476669535809536615126019464917336955951776723127145112669151412247664185531128135184274812840608858022629088473240676564385170426420103913803810395888640892318388188614205351308928311525903491264034587374253118025631178536485973716233422115312994040509939565255835628013081522186963856121153934873111254959857994799718412600407561528720270283227969126548860670689148461977851318874883198828051657643770487243720691726658867266145960980444408631449160055051561100857777587720129872396612466353382386638661601513119445495947677187216940537093099324515598382503025996355638151431577805858603637329891396143937900660903183041318394203604584428860235105613546766496446068909334986102712554582863162247599094934250572890407103104793130109054099187715729364859485530717718159184587411660174440031219087938798299065889817694296023599412973708280359957113650188048527301752536108231308112426681996160090907647358411568898553921550868468060338186138851903640370639884935884567432124249878725236465385488078263162577623079587745225175331876418781915570645985841004111204594122322794868712639255789147713164108442793463890347547289852429017220831143981504173896490288165128979694483171416553992773112357842698276433854003271610380958768690684706161066552743361104842937488337781392671939528070329615391677305829054580998361372772326109689309944988548703832161199980926285606020836616871973807835749049183885541691883058936820547396933406498674145460055773290652597609799486403425833090964762155343812338869456835547064114633971679279833927165280896325958073986318734286733171311914795312738326320564671876940213636193329994144323187868363528164241430802290618310220569396272633214249892563782716490773180009898399494281114776841763100731017888168759260574270377375932342280840511069010008741056248777770857124943296501583982387026313284730487728590634399995831540119932027651708483739242962336051942102385373020147302366037719739009650036081746983211001169101017332983296247986967128267943466528140151439434976286273214883596299113317666740177518165563102405750798133706067343273895427886903319676569723889931245331453313132194201051889501490929795231475015925658138560604217339562419133805389948826526695547821705699046809452240335776478111676355864232531424099112816304334185470749509955332890606053764044375208531490519583278437885453227036535527844707161799090019136780693879561009749008905544324401047851579238671395018052948076244946490557655989724339782600333584486588598171135881346836378174663527405112206687700604212205382554887833485846372090730707396888159796832897361596710570265292707415162865989592302773028999783929058894795391801473093080829620439693934242148315673257917284563799053434905753204773101394640532163719670912922948384746897570974654101141357312409104098894120493966707784323619657216619194843242068354306780186980680188845399121949038595940494565725561235894288073822255198682058732563464810352466533753309871401385702367440474829794659992080644296646869835497493560725517310202706333317026902818483149385927660781063665044832094153201631678751437238892645674896221459528079706454324658764767670772474978097263952885016986015526362704893725976445680542446265032326425158970732348135735116793979357920296813747100323375488865804558916769158715121152384803744797779230660274492331379048603501531703797974407154875375434403715439324360886971348148274857220024665354512040862665300641665214516623099974398935694641452031840058118498088022110784566431872716542215655048545615305816137884495607457372250169618583696495626324959372904286359431420720045505267222674211909732334350608474541056648594055150107237390696979624820406988321033202993527463324998867565750885593494058949669040242189571288078035997211493473724662636373292651574449288380607959310225341846825239077940327743681519270260587282961362275912898348711899612932451599662849746638983850408105214993407189950764300369931690711727063144152092084686516802923069585802715373506414157612255970303718052183068268652649819442533311236423669833473862187383164022496578015475304473517224618460463573559433564454274552065260061539300649966278421680217401639139583195895544973193300331711217039953971068244083014624212342712562023946061410639886776723418221041985820757831845668927462910050406319882204247884246187842016255010212705141760158233389338271866641839045500707410765744859975851849428443573482720021522619654204985504706487771812185743061703761013726712003174260025305330965171789380022248772622522091942969115185436550467654166290614408001659908786050286565871457917986056668713324967350703405721596760518770087801560486264800780004649465307404455706345144144668303843507710711861110203706323183136893526405190982370417624898419221881714041327817782693177042417586160234727771247049885639654920842691104177074080245504608314581224518418109767281962583803266621337435558763904640434416122662274750748474169542814924905073770748189396635561729592743254491439610300698639387029652854187359218198670417881876850140773469801893530278629186350173586761534078374053538532599257805291888342958871987923500430034044465312827002241584344764981984502793750582464781844459983602026171423974211875175417251898546377352780037672043021095967881750683160724551334133097494276219487447721491155811785134482015480122154254817808726085190803651908552758285332840019725529460404750810251191697416150693000810832638631137841834936652757595875571962693392388481697452926178971703147410295423812964034797507527007778613744131255367602619471721068232624354342953940806796257624184369490882790252970588249055627229278414972421453961276493897863813894181138990004618187722039015642637090268726410143759873737040590625646905435754833416696952862268753965234930857941757059440769629460559495251156148377492950523893483601172878480656049049663462200493006560699602184691042248517105694703747351443825819422748015887269473612669258529015503005766895159951782833714214856684000821905385539353526303124186009541792591093118171082954345966111263675740216307110771072649275554293076755463272548725257625794641251348717761822149962553086014009084013779992059126668120322553758052374324767659918432984902038483940082187276804189279673627844848779480767251943262060326858040997073266152558198864658244387397335077915579644375953961347278390505367021054598406218320289314853239631089782645824311867318559317009207212743827452962074150376576777643809767512850491040268491272791717080452911013215673897075794560024487767016411795811019868235503728346582275071978442183636453873827816514394620824515250711737511310567093999493141850131829577051479589964926761979203771633044675332382545708584184276349033068940068697884268820850359784439993611275053445812772378456141764293140494192774893930055246499326172722783564161363088112872255639964093427285220733041397818204881912822875994963114156123770609132420651306060869620351418487989738012945556036973436976307794171048449039024446684188981383783473415911763780296895056326338191611729293588220256923937480816725628716320617874991058099129021245669875855755189721050166177350629511624903886574560710296935086217177721529685337080940164693212028651163986385730608306406833567751902181649468002515325246767055262847326284661981394716602815783617058891038592857806207184355229664155532109620413352813662799888446062278362018826451970727427575434188781622485454286268728815249632751069697725455474989205535933629074378921719625988774503404641330558824652761562280370590835023655854520730446572260703841422306060232735770369583594090420046372396562123638969172165601625102835989787603944707236692942329027192424578480408466097069258017661915259870057450241999040835986709060445730100435966264251440907853349468999281423385102357081121692759876484841587838695093952073058192617130938347236394682283303447163504266458875273902986054743950789350856464701208451337192876304545187599232799846790549702375940634939221642052468556859376347560294128217766755985260399683051544497443003732899335777674500660125316442615169844210888693696674728662376042784693203670049572938602714684113026004085668434609629758663813438249373776050326093284862966676364808604117614558089173466538260892737230856980378535573541594369053822391807225917025938991868239784487082541134695551953069412251759134474047109586336750358515122065589664630270966606012804494927695760637802384873244195339599882020449870988124478288073235482648157583436442824586930910372227839500730251265297120654519125176137086928111461492732508500423547397264912516009439908027192029898568379443961408564680966048737698105589598004719404456326015121495113019514755139572661978963604404762139997667596257781854484313362617730961606128028912964782621078246498813516926216733658847667790666235515479705989419226544485625703105921457688945085037616123270016932458588804869636793804544727730808686798395978607715265544902960231730192219061247224454874806115179312809121192239199434090291259613642516422338569627852421318296589525947721545010440074011970780859229179903464924735619049751683972266326581083869723259868380704832917339463293630250931920011604184401753609156630076464565749100986423017456645435328845621635267766960172232159885831794549051243595894843759555072418784304526423747918832344543856107935618162022960336426974718956556697335973123338917334412767745075287519072166087693302022653433338200303367350617404718401838748988551856796293567817187693792739239333005171815539183953568285430129433571195149499604068986413586607019520869912514261685514166952838843019069902206787130368772394950445220351655123629763117857630805172866978159710749802158811129374914210027422943690528747721026726036510966709358860286098584500198542190019051113255860065065912211773942566919215163549981046527561669381083617328851468193316006687582006396709848813063990001205751636124791046938474967682482995171277710452520249205887796141162171417019493229834674871879213813772147099159106489905307915973274227023147672786682428447487120979936927518563199920320668091359173617250425060447698985294793038461852841832666925543754837674627187042825109483293615591011047558104262039799383676979870183795204793859934614734185585883209424915905260278759464660013543083816757726974475963028714613661297121634957084643197113463354470604521460780150960464534534910624814662102517454999088383691928583705350504006550159258694305059051697319712760180408265545609333798029890717068623746642470407091292302868075516068855670210952938315154694639494765242242121362824686386839419430106441881869636334228093752090485150875217404680749877163409391170289981385715501010196857847392338685310117282641129481885431035897006422588665879140262181169155471833024201981680270301501938066736965318393029398363707174744058604378782562581503616092201552406088176512803551587030141047209829138899575755573105745232355306704517552877013249973309632493527266609158026209412422963547316690433954050668676850513680636138175421877362378736136872670822072238539006733135910532937980110567212913919222567051837880170622510430649774590137810262345613228900402000798065684519867171008205579649009831669913984271920263330573967381317170032824945838015601221774978645788489629687389030320832619180430233893123902992318726523055218356900668455249057947163269750991874829764426868108488547416864954313305313591584388345589102997136868876640732808417768314035855578208681584398106265896044561193621936334271004761718664825439693529402655998518535638086995029644060653618316498703396676336055625779744626808585868418679906663570727220413334253788955429438555448651335927300357295956623942309703731691718492500601322410653371247812302035365505536233587048214829326161000045244429941949230022175930074559316708514674905583400893004030123034567530638815903198680036230510468251988967492848969000696668616335964545467003624109260208668176880908359146121349752317750246699632637071421398827889310109576710588969096973371635699483786458936067105041949493987545576101946630745427022255901776995017444423811582176467981989682051415071860365427757723209694993013957317685911495584007294006211633885547105738889957447118728158000285185381922738819626159356161191759175099858534667392927407310083836145581562523588831442673094436581911006314192125746015442302260425298331413704855051960827918803002672886356213383481703376612032380628901156574906608906050963789326896604264037988617017771264481400764745379066694092338481386600149554338893444726604085380255423849796651982997095207825756581837182150812179398571449995757973985962523421732890597425513127918574727332495436972281204475729351788059679582204531142063997125132377560989814605831638087974941419001120169949498761352404538472918242669996278301230757662077230250811215778779779732552087176867887241914125218463973453306364094494895516926189776428439384495186190347399007567043755900953151759616284623821060442535659024392529352057927827530679165461034489178224469215053652974632101504492621303762470571384925776912931391288532954908373325241144323060669703716298926845614057915718861288898466613759708776143646725343889067546136945421096977113005785970739944884597976805703410438918700924106547116518452103331474091316067946822907567712260223128290728033644476707220693585195425764814656604110525635068847803837108400141234268108179494327929304664207793371930723142759886898892415683924529988782906874282138086685571760951193401766716346013192831641352586170616576801137685979713382049519666136945304383032113536419806015869240814042419845442879777202115524516059947609017209315437679367331555244642852007637738561959409134046314004795985628509151735196499510650487502663584695352197664189418107653608922933964070247604155840591938865357368159185675165969892069881698796706421990041259873653460610630886398738795892265979933265918471509031295447446927677930051470863143023531121939921193424643736296539345970021805957100093824453732491806623274003898305085735400154667713246121022981157075031961602202576492637671812546012903523636169939793825910648534461390641405721256739240465289775966798918155188925832051815975596409105938693144070520439100525643984243240060340570683550596190884057907347040892920314315951711195684854768580405800413675763609098164298592332022697971431845806829635694047941600548993210554308223559989964205372658096672386659502473108128696727742357874499649798108757545839042930557746919993584746430486583634112084802252223707681647172057171453720452087092638675534472950619268871406567619642314786348275529588917161807692188213428789035221861523225808573096543503279449291273403167962324410639533181611332731279121886759348803377766532607115357565670358628220278016588647427744708900489878074954162564460130790835467759729051493305651644809608968898509872815574866653821828940304294415679352563980248979178895871245213083284852795113905911395563084981234308887732735648442616934155341874911200294983440341072477321697070599378562268896643385342463138476485624817264493919161587603114785774871608140171897894433182130119579938128209279257156727330750312008318226252896018697742514996204431462743201343057307645636021105004011375843775362263158771413571290619226826702447419515676860212578617719753418965487436017912414018340409877702011685489121381304572319269564408929342054693563290538242869349438705130158244613875129123959793252009159822837565873711942097045391970984473571938004756437916263456939171709414982832764564760674912368359307220174928213104654742476561133443629863128772045518177587016872552837683914926384315781744962457105213242710389125693521095115287314579650939013403992039273863169451504545374905649137209799232653963277688470689239995368861715003168578255799414159259932856956998215703895250516849009819245962395548336755701281488766699037422657486779353823102199359183027743555238065003553243396133347888066629717872919077030990487463390523713557656302797500252481401604140185769732722693687165724838587454664045134018438989003514388432902359223090082208043763372334717428308781043436117782537854450173634779919997601104868615484517716311245567943712545809328855019948506444431589120703049797945497621892230824180451451687547222981190655867801907191812037179919830773613747070124826733611298088831121168304914773784020872986711030749329528948674492103030277607508054412511935083672009028137269467586958432231712358074320791135823238630621897357520460372546436770923206306345445032031726192926440559410185228328410705561104600087988148767483693979556507252107907619498867335934038818497445319118951728930563403006114934741886213760480566423247017070348029377779295980688735033182994236903636480682680054544618381227740418746302158600463614750329550813324833220268742505135832447839326332979575889063979145808259554672986728772086630274408748867346334426832210628513764409771942222091558943492385142280919427633489168990653278261757588433038467486858034415453958886305602854618999584125042947682063353662250411554644976631624923774884635115043327140474258472894428227830436076100421680320058801572025467654500498071362508042041021879641425037532240551633846681270117406178283108216170632362190931849518128546320539204858704683332151458338832428035616534623906060570979327602806409139598375603483558461153173693812054749422295964561914367999999280209873773181649244410768765833492996170239639632245942794219986904236796482491763714291792343502475133758061159921436839139520086009584686460645469493252182940312577773036992310944438256438950212840454481705705023406235761412209806005739534359220247102606958005087951888384128352700454137194853943985205691102864774194300875457376291768585196646738402243040216123547777076216896410629463665169732963907705022835398215350721038991236340993468956696745261665726071742417798159309610761222540425757524976603837587136787971239033210338840325876513162075456186040681851835759229986280206650454551650425706931324516510420854805267535422978532096511831222284009656550337320970043720163063535718558938355304136453746243531241889839267729181573070221872699660352323329313560899672179832979257246880141653099799293576764281187775036662720973872425256110892224423525102904208432197422249510009477833941222025189687155404289341442929141022390463458574138880073278273450132210521355517119855072548266703529802826278412277666593058126312987606693807794966735635863176578738811534614573007888114428397122959999115377520622225795597655163542644305244684725182586558374484456877284467907548374569142680529519876443678011940998887402546487965313632387454730460039276451413706737896626645867760525464523260687667103706880991244475684713347714043391530088999999177409519873925604846081906402796144220150690008338150468018479738591354082091126800746016973261235576401875599749397288979213438314381067881395886650234404083665926420441560432201942618768684815520265921878157016031889837302529880702238623148236420481923165889348399427311314004771852444516261836551384375629854337647251343387361927378064898727397103361392722158040248425009471373008210261458618139675362663102792597735856565140144883147016247200191189626747070941328950284867940586435987321222181359648475219921789610145355418375660329630899706716170605911021108249930662348328626923869715647414129546043125949197210722438951521768006988932981610561488085628463235742765242039161132668475543682079755367970946184667016934449824509202911383642021597700464785327903866642177982526253424724825173132634654721959395753006933058338076157085805033311575659761258204455247183314640367326240481046660760351481725560323461290158289299460182887750827859703150795239305065896282179902008675762007775507934517585368663971030540166125014639803356391914960771274616277431235105998535297371071963829921666926116720550687542185816968744197180733532426288462540846549063963479250096611335545123420606653954661407123550471143237575788256776460630108277777307080895521929026514730815598334463343021279551604120882581432705484662588230194720186815030152005315187301380208205446076083437086716167458252531524454262506553980065180119560950354768010254424352917748509414984366352071813206683391073670424240362749965041037825319133313544169447555765573499064140716967274596534302069981994409845804470133555094238342124234771792331965282494996476142273135075130952384915440812007207977570250221366093015649282320557867856381424560858346074220972804618997784384371829436721398469228552866764167660737813165830381726550622221744373382657827943176351059381600144735432380573426779982932175976932571388555955488382108941743300307901153982400616181611816153590848493020267675960008959955913765325913358021675205494613202306896313128832281575186798004811681018761789539227270554791126798110528986888554439537219999494654972062956717569854853084458181197154364082293805864246326794268927724793406417963517416409422424697777506918640524426743816353138586417080630320655242998178101322853151491144344877568001633007287075644480315467374847777473880351667506168740255485272897619897759145564582936930314846082206050960392941498480565085578544254861712853005625219254803609986877264487489972351944300053077266043122169263988101801701904233783223597139987244761735254952229079941412719713754225550748091780896228107404730672200299265916089509993396109069711057743589159558137828969839202684405096355459144610706936867629440771098631513103431964930686264777111136332302381323685058936383751326735544834959756859512765751301394997526078217859806691170643606292671102527709002896739341857435712210397969650769923078237747360706811196353968823326260521810623381762545550992815918029466673795938299270690192021044728281011559015001530660537712574013634025785347972765953305241490016008598855631536170752891349015352613370342857017233017392375765863346537431442328394997807172771417935152913042874252758673379554647755704893081191308111622344524713694403666357162090648222486874775292919343738929704386360767081337842259118397763138203490815491085214377959391338977280366459417834725711135216561086999326385043612652066728175043644958606797500843260837813371149510491442123233164248622631662392602707325345984516996287496589652912611818987355252340148692492092833003161206670986137566219913397793319742546772608481783854820714285661211452941489363100747124308851778345259294750249181912980371816544537492092920624096152034119017795176585335369203598461710748136124402247701423043635629903443852672515972043554350515827361384679380297918405934617624081802984882973593166883466316948450801788606253611161035175659986979204087169076068276354585128785728763811983237009732025226785242106378572424652957209811595250967652429295072641459646701595760427433302592186681257802759802984625218745032605065199032268360626918479133464998732105956002015861684500186255653660118356296491613069588969286276375038903589092383073857715678909251484856545690923387910362339154928127778339640632330333158801503287419505229201548527054672173170842220675120328389302671850813233792024453828461567899962476881584306963594066972218126292762797968190430755780664276057743535905093768181670877745238806306426154201148350708725528631236467068935234568173050091506382410480646347735146971846663980028718271406272036953093432345974176626633292612349237717308019225997553939209970226482607849765267061738427443586965819916353983597574147477218291842810743932652413113034096087739598769541919049343417613438134001253604183310675034568636474856148384939188953102424539960031531719461179167196091522472443768706034421673290029772193847390927004182869466926087775395924485084845606371198335776739542475909908780281314941289916497884601324918314601764898099345109533646071371574261562091391935501657193448147292281005223085879153408340775009566522515356873617170056656700415980399385303440340197772986848625342206516383961643112815475400819014798195914036080971646832240487862201062250711038223952951513934651678239070716361448551402212549334492857749103349904759248763889986523709365233318354553607471293817416667373085188784740544629592268187440591131010813310626322299478699129269654251168039257935761449324777953887951200800613766898197293712311223480469999698362835861061443468500196549743820765294190558052402804511412761058411366507014013148543296547537100895100367570648323791464040819046842284942740952537509997719369772357882891482619274589057714615644892850647611283538524567050137302724061419071246576630387596057452498715544879248247612893599325560505401973024068161736987097540704509501590437217133353464898203803697855025340387198134279090443368177285124791017862691797662472913529046415658327715044127620742351768185427279360679305773835791768883656328781096886625973325908555680247494579686174355466874066785403141353552741257612763287252145369367810458784662989082134827936952238590169949412611304947274023976887984587767783618860081965315135476386247332206777437747364313804354601472048556044305236818819002027389046618442286992502824905352930977522334323912124340138367508927468105826837566990860364367548726190900465297459455274840589169704091182442507287099509152886613359179050051304231168381101491319473443399688419637496022627782391822953058620826300047426967241251709584074402689518702254073359658451758057859097063711546392986675754119559215869230823320331196979261028288202726486086339947910070721353873374428499575430440794863781262183426938003794208138979039513701913780760857004430350107543959033390737800014596000149201984315997070141910795855238451430773988956476434692493693360157881453697977343955799072076268170787959374740306210128904146927961842608850787940814093778633940496644565669045774124392075424391834482554375973469347864218765715990296568145869029575953397985383286118785481766204584982443413453173705133474824273713850339424453674550284574318164574885120672084477608373403880952227590136833006431945056326814771069909600688321448729926606246331988228345913440608503934567824963127772099396726961738161680621093412743115276187202541295446935379799436108617088045460060765720681438509627862189754064681484379383803255672828013007953002697514347480657643669312516610885608925169955101119842801785831234301167494166455812139374315721820606148755536041646523783735191498264928195964350994796422094717410075468764564007212443055865346753831516258022932276643312392264853829701078212448668382525150269701251953372793739039677553269098272368610220087662450268427867262760524694289494150572758206459924109019607581881703603405588611231552409232467967677686896065050555817679735112186020806514987892615905342157778480565125987375494066139835889836784274120083762404438470475238582781108421933930658249232310307336528032211654646672247164628926812207462299829092397164640724965606821741346989771805907222391664114043641808122083778061330173666794229277196037872673651516216838131112857186372231324533913038344411762588087268124392006287096670170438158288617752400264647088243024947523333325703406141428307044524961568855523618915842615712372436531882657861638312062498937806572481366480468731951461501496549618289805048529610129966200972315803367883440639483589452263542647351432232706315239451149493627157304864056822270482307106404931092052499995866420327951876991245747832311127599149145861511643719948957728596539756161557597012364938904975080670457234357912202046853114883696938892590431416070370343014956745735201143426342550789326562103595929108803067360771465481143519217049208549405182308301398320345891438538450074508113971303228115291835139441242967265965385485078919651891995934863404139278413242104694270757272442301797532738941255409744916919932134280485082784529125753549389337840775529023134467299917194329881347266347076817234938625760057046262104276696976552847636148905202614771109458259408781791258521746604951409289773053057011788579437849215526395582563276415316883257417058005195650754914402821458907956699502209684475199924723024836125836296379598573344155372576465135084679874369829528043467831200485900842162119759908621157875129248019118287529022281483536319104816113014997951471542736549314444801477669940676566294960657111639767742831421530433626810049070507196118664573352438123549106338480080111339352587872632238913503284001406215481589305236932083252802418813908141023298531359144909104216122173644947331016221555165235868965937651013538841296447992780258008438019403982280592823231083765744482174418478594217015843215324017604902799623821845124298917107391608919696049940906449005942399445075943501586098970905959767676026041261498338530461545190627609112718214911784122314219468894871619089553013730785689022695391527144456437917996105484147489869973960357074629695412956873011947076045661811754512785569913457126943813993546649358351822302039482014102672240769340509788096494535761431140925997727938420186996992194422278377768391990762235640331132249142595679045031337594407584836015182986093427923716562249121688146925097418739552430114349550281466995631386205567517774189562789055013661041722460937271372024702454860846009715427997216759976736148990164221803035216143754506182511708473054563599457296568351336849884601041120978459029390738087443753284391159488486768237035595348909950633396703343044126718183586682706737805177840104400061569116492677751728139194673903245193345928856964740372378098458952055905156875621724711625671260041625640160161678829842473004488168708256260838775723469631803038375624530054563974327782525469128942090209622304733370505593090688514153893839056491243540225696964675833161187692840395553171806831794779801163496617956990580589158978197023663111911817541572476448749645237425203446206366476573745729518047604810984363252202854762361000143809183822834669128353602672996358771533583743349173658509274523934009169943580119944660777502097285133143307269482567984110347265534122012902940812561961545299382638621768248792666582055754210796001392181668495364607040440984780461746988004892416404009769703910791958289913590179972211505781887345683580799455217683651348197004062984247691138933422465343611687525334504003182763871280619062694667261490635073517453236825341431049290697594451751887905773885468055043862631551469186644279112385556877807068844492986949584544483668266990716273672628036855970384905897437239368084188252796901139865777619922110904200008324035475869683415545692762465339151268009042131694183984262219169546164904293358421381331967192530528590948539507103994661822534912922027973377338659194320019721443759432082115074066154398989027268016837113597559348189946558725520861083319077325294307680180896241891804499030656845170961531191120916900665539591902293740772186601022437057627344970812249908092687684647070936759603931119365572078529146549244921795052575923539542220016395132866722397933156218278708991006094410430797918869639095571293285964454910161018061978186336046921836315144996986904675669693165912183074899923869388778628411556161779480328733337226071781862561605507096554449670251524570268651584768717639781154307210621050390341826844025077843964717327118139710191827025572034440975909384081693760164823432354697271761050223666716594804486259846707749690249664800976693329466556081579774091712267982176505830188446022739707510528599205781053358673054089245207534277316487751988138749585843132463512174027137598635591366265933272710861807989103457116613508648638805303403245472509190150356592635519045297024580617389254514712149988026060011765833894705007181686550502856214355646973647638456435691022109096578954322472763725089640276927804359514352535312584030153547217898083014167296093970531480109087272122830114644703220924761643449241676011738382330876595907723238024741325311933288144008400484690097822208079080180854936847648129619881327526558302764390303721985905114216636694748178635200885525259218243891614954955869590403826847451861462111551229820250676220841162262178466156224046935402812226485301931311854166404524336871667799869479973179679205685284649366252568598644739628033547062594878454328920700500318396603242702297038525678564275689498277085466843390917400768881765662896714100039475432330193598463775833683238792447764552412401984785344374116589480008640650991067017213511162287325801592923165932911067364513352746653297790826730103238615360432704692815805796681245922918340369307325054422768638152131147127204038571541108985447516286688780754617909003292497685706193715037036853064845406439196627358287439472428576215148608197625883228798187766712528518003763705643416140474456382637947861913623074194790920911663704974776822310515610992254959710393906057569823101851542854449954069282574977789749110181974892532681290205254208870306206189056629494270963064531731292400962219511562356201702724847982759832743751766784613659349686164361379515722460132202445814109210391334277598777497602667242534587534464099773795432984823627922988396606859007144285550151376075069577513186598033366626712032638193105074629399871571925551517120781155049529564405510667079413989424308895595550337451310056522775428362516403080340488035969277310747710958212767975693712051200818458777378417899853095225117843042480957438225883897008124376447241451048646352585258709781116068543924885123995893351777529191269079715389586431206940774748141922367203814645691775073660620190620392804938623921240854969994994608311841111022936552121066208150031412819256907559704190939193371985576729709917970829014184153004754228946387627897288756297298848958858941851052955343226437997407978372765330837306675800826328146383879405832819155663683358334639362925779266323623978671314712836548141690326517419191291579955558771556042491379687557122555389644467083652841113954154113300555520560995150240566312915086111826180140854636515042296690944853109936656952145855743479190593710132293119859035188529904553509630027745670555550318224989990453827840656934532016451110242929136285840605139869231893850098683475214324293054790108752361696471314493797213100015584581004818349285581663352361284257545318463014097157731353851801718094497825485513460818169090951170775313741792140410408450112628833518045161782279630639056101874376488727475860241505357877492281154998326402226364975339757888867754995200000326030402909383864903724359849203091706906677911612335669358792097086361540960600600465887327652473417790550710313683246804560994872830801289909977276190215645484389449385809203203063027538841469654576453030001728324686662088148715388612949995298256669618225754214711815607422448984395368291468375475168024233623969351611474561453519310340308839061693120314289268286412909133990914274119716825217148619131519076405504721148111697471453746101116415579106619542845966044336065665961003583294662971461737144987956112190522945208070123053752404273527478623752730962760929581948728123706745872504157675911636173554476191103117973808547172576325071798341675012177260580984297475887459694005156194378239268393756725665979881330807091472423872756557111289251963656434592947255092371184396052148810657270730276148950272671878155922516660760137428462187176231270734677830423793675287643469439861353971279468568819231022813092610445444455657288175603878878412289993505781843457714997806495176317668859338851032877433014944208384756965551555521927757769828946142005850988124119884691563762125527415572796319333698949593347795843313919658299268070291225104470619424684880444196768775719983540396876996693539314949499244949641518474003552926406248437622633868541176319470919817404825421310471225172997640611614022457061962836530532606729087872710034526927918352476585746966741797218390415079946852558615644440227789517799649583214078543735987855261797236467625696478966270787761862976645950394769471165733298614937510529843430609362362274415256397052026082114678210796682522989451677232453987201832667516524838337215371198658416230891507568275053328783474357887695986186841047559370788114874423384156706404773943074602336940751575346152467094451232737566735247968475809450043114285345618405591514625895391946511174935442795630717065247477258026197754422754896908353995215476599795133839169667868343518054608489028973478381265851812047591768490849210533305494443162849185337774636499581880435450303295337037845565325448388941638503097504543595418521931833646817189591755147718790556266794842345644876097396122408726850800948386102502065200604885410933509191492260320804767068729921981882178797663485360042246898011254235755651545349418617772960608187113987033021222100102704536019712152584570991629948055922563462631285385553771296018602188164492697364647892775174082674045759843011207566385178478556642818708631811487031101022128777545948393689598696945162020602831924188204780536838563272269491723633548783818827218953157820373380764203749516493517365223610874716624405648500703281269191563893208981889861006710982113605644367164439050518875069798676008383690771648395818693501811043659915412017308603829500139991378138437311372013148031873124002096105185812066166490844887527407402852800608224181045236119463641692068453798269622100511761627618794528302568483599344418949016441438915059799022105889239790663676594224088549787641998396361751517268765105565850695290433635197653897564874203099835357144033151793208295165786600033967584946977343863426279147050647892241420973794073423282478463823822827857783315827262856558721780555326928117803308088032097957203536507425769035468944834159564606336383160827988526914217149401772887923154376977679522034256497849657062058603880470465388594028307628980720817162504218230231440609849831239186781898704388491438213452722094394819098630682312810496575334178003985612199791298529075557311599974133007263227901569087378560035641917357168039680984371448838645961838504135190398509498300082938252182956712910078990930323060310846238338512195210552829367337041531407869426855580902924802199875507218089560875564888201718808889479690902008111664094652136646854593892986115823403312794178759542265660049684082952607145567715514176461934392023218652461704393851620872543412482590514088633279684984211075997207798955813793493877386907767111617887573382093868262728869242118654193000883894757725370064831353379218457451467919509172191594341750916753076962662700075479790479270495626140080387804288724498964810445267092577963461297092239012273207685933356365461503721135601815966531347315742187964169627545459871538513159861834666075592747488321784446710515836224282140898587642162619757622682243232410200702141009561348200151627963019200960592412003657791863442933671816296225273056642904190188741314540230635873584836849522617088821723535924718716682106061350682625970831987980452111640153397397922999258652445472221732431113636531878933997167322819041817569926978160363788589793763672964196123712222557880858090986968859272688620528115306148242304024075571373804031244716371694619181076982172762410935478848998551472397353052339205829692174878895524575472361288663379611415439636001197237842137379834405032050165861668255184164128911702337091065880535632020475548211963141239521584381224102290876943341399635399307756399862454493137214587453747808304724052133818100864853343046860348413871980892839404497534013673541874908144801038533717287801519199335029351031120409984220139246241544858285533509632080092399498828111106272784960224772507462158071015837417655455175471229542608967581027919397820876228310942246266077092569518171278237203761482823175019802666042181939278413893475693005392762078093975630458396935637989140043462733899367945421127339354633742082387914341213248429736933789866360466781333583466126647196199856309767264760412109597309544055255745238399339606646961407205877293793616269553568982675047315490815135889076758207751668099350982884971534776074972522998486793507740768224849351256127549002392202194022079624670565207907826271289419648381288067076754021630258086797787162123245805501808312389620448439105740857792702685953479160024057126021566905063050700610501734438828405175128107701355151389109704579183294905527988917563096575951538978616245721292343488227183165164799948353887775493549708271115881318007887952712727743732445536110020390302572081234713144308458326893863725817726327814859052272783956539393603369905342966097791763639648338176490335264942490365496029398040052904934816954646676047619985383233352222929177705239853451892502361681992548330921208794831573837302101890157978588734122105781847497392016175113057233784101002600709152904948733820925414805529566442451446349753732898365144811642769549351748074546394342201690055566079027651522322521763308072682802193182325937455888972582974782349596443359378753855589537552652906547658606287497254574575177665292611231107554755044022026629012404384547710966817352300252580363542968225173331218582845255134481580348750349212035686722696920526788731417437479103444591766816494442055215803560618402770400675019754921010767157507212886026662151753631357412293777889676656933605829273295568109782096043883655842477064230285213328743934769496363131495638841323217940354544823385443209239508628614996746948319209228456050092598205616057776325747431007781384154163477502448483452479512637435282827860484828659803535163304356513323556252187845061740650505438736128243706127616771950082230060082261339273907701317362477586997198276224258725751000832167785569755200668391609311200028035222269529307858092885423700192272075867519905326239446820649815668912688545346811876339502608419393100768934039575291982862946220522329536967212658388382722489673250451788947223310037781537148776111971474328644087629644205218260156777633336178945185350055128872598617527405380703005848181068043301427163657993992137934469094075405547914308581038399749341318006803295365589559750716208175725687778379443850459272396247071436724332436611885303721992817067493362864722072364039137348911654262743560040944225643260225516635848751013945603740458081944379070100397180792876818023452331551537879184712438784541713579740754166436697765344587381727370928799803578803207619835195029718377410027485629597683850619291042718605338734799800746441664321414286611823630684415268329700178220298188591129349795210932139294242212216488636061769996517587374326815921285646397619270713095397161661809303151817936489260195167009404054396911637491559191022893646955562254979847158656707073142246231150407851718750582549431120358775818534624268886433265076584559524367525860813530635905527046607894237227634088375432888354474787695428978454141737356528291966253147502669480121494653521297509872387531932113704807926543808123807350342559286426842262225747597322119487323772449306405142754759905981637506896316256186614318024509413018444105417387066972176695983270945032508452618817619749490620916180099077984563191133864522448538930271957596784442205773780377212765948922244416071880744203254694686461660528272241445966176127211304738082125662743438700215014040265357586046138053089082145730544406016532708158661585689710861222620695807298721321403799993399038528415287206527185144639719444501208858050396454787913197163359869163789170967045549782151991197409570443617361962629291962779074337447626362424572655833091365888201361970365006622006736385584196351766396416378910398828193402404910775200352860677905820310628895939826151038896388793021362553181982925097630603244928938302959252733502861383994444869464941432185114473750180754982870372990639160228239094981456467904390346183249836969533330428416727694620105148962025571425469455482513496595282285290638380678901967211366127988556614990455296754384510357335442464852324185145557838843354286944260809940557241572973031788983568895609315324714612256479969677629507765786282844061181590448608891106767632251741629924437565986887070525282405884315304607003573181112187740289927448835268578766301782998879697604552475175792818965859163551473024182193960401271402549413940942729586882973464398829481574986373502245605728213682086647562613769465578780305481918425032700610950440211164175393110123167067721392249242271055534665063555878968029077292744037461796219928979069681570049919890692338395458548237631419257884276198590803974859177716640208737765067064218027060563349295528602752556258908156649656880256365704151407150106143692883377241554532159584732360953197582373063452845185047849832786166092023746743942692749491450725401685429939805271675449737067327832578317271479407254184565859651537510890429944154961747242410775879678994408716774374997456075732157469197500325082526137150285704752656984068512834490788333122568741385238008474439420844724681899231666684889943240652765323617217396238009005211191542403511706155670722932367755511623102817632910262925812485979829843896730640366182817148563084660511736080773112537410856311912524062718975786104813510425199152156708870638563512213396617017358601978340056484524012109261857559543478915613010934595479959216276296279340094850734416826914748325388547862831422429710861411855150305900292177831935000633338362536272972984459553114017186874656293258201217675744453943350865434846631780408025809427519253885572211866688212712852841242904678998107786701037180663114464959837853769477186521668089601845363547202200985979691472431788236595013094516839388825824775245882211231841377794047603764104040490566324887304446798323220040494180441630029769881333060157789273047197257361404719321824702551819955108396654621500951950796187091851422114132523736985597677458481825060645288211635378824200379603889380811195720364068691909297678008986942255939294416239171032831551035459790000767273843419981197376469732019805251272863329288090890036988884018454594661292094329258639539269795605690428198092131524596819907421534283609008800974172189362515311830451855785102398383973839466924596304690819008097931519368399962149582313202157219252074942798622403138401103833076984946752118961040230994486340152059383736196041094453409870098971239031811812987746093579727211730844644154972780655346830074008489450999975094978868987627995571665983300254225596016291541335349946727788398479497948853064870742263405222630459244396008884857120855387783565022728645653426442420795871457754409488409313429549440008629709278449795054646250637570098431694549634533220119423349690572853815614182154747101854774448757549447786984526536626197062452353214528286361759979939281625317624173038282680412540595950745150381682091983456170406635774507143208042378897071154403069454152437840707270096980249009685089827810814775871955329106861353638659407811277619272688681700259685268549038178154149535333224226630657243637202753883001683196607640303173806617768643453156824240205265265404001105408397059538867377458216017285313253063260206618423102442191430204526128383250711126647342658516057006630444354214461893845503441633930966982418000305037574695370192264709679686617179680427795525627319939839044621777342236404232469298183805138257083573244205498297789695407764162461369242643540300914774892974589126074631510315255179050489168611537404185176420328656304056624340336345220931297920573862880218673969985849961365871439181312602875465822383453688604912566316609449153035922356586065351535784816927708609167131185896575135690996165277729718365399838207254923560552236544857511284806921944985466695997648378706480216502515336137952708680037198303475787134461144625567686822228506349246300185471531715091334902683001078565525541320077167104213809475428461232871666759398466962871724847734968079970565808239355874394992607825159732500772433258903336861515899084865705363005415946043630667533480026186442085054574787933298439994082335055252797297569208871189741538344997801580655006757568039648928438022481395102733536328075159943223017081756191848266186276316101580478077037244133281637913297312736625574026988914833957665779964664018678834508968236498684959790766480566098566185931614053639382321878368420710958014382587765857507689460070204551187154613795957706027526743834930184827210316747090818516429268339261364897901298580106790465422331532963373626365837975168263151347125422952851066626806851739541091065976953654290597589214766730205931045297208401922069095434917891141865392304473275549116589413458607527492759248415381379708960919879562368496287625214262355028620061205320017111795042025018747700844984509684884027600069882518937755752601979165985067030670121302984162085412964357234915344714206510355917290726381715156623359448166475821502640445032924193675526674922579497208064791860104483446971286510681167297235695697035712047728546279545000136264135141730847312391172798170378607453918834097040978575681719206604011336838027274599296567502308494916050410876785137750369342531690129460088662576900139123012735180286645534635303406423176523596352487445653532765773577672471687527636241370274518735528667640540809366523762174553838292730151144815625552886819638792038068151532448399537215574274450733884221968217038125062578877001717149053714042936551539834224525105273198901803185676915661589935352561035791805841965214173308334324308475008066332409861133872697051857746861603010678681757538381005394185721174264032829944073509486789304023956187066614886137818285234994151308901165402153138458757382340849605684624378658718895728695666664571699545858694967171593816959495097414250127411082946304553786228021571119164398502505228139210568869586256681455372580267318579745625351378767670271081505544109575646377550691363572126991852942551573441021850733423896400672637001796145964571971772386925155617731826684518270330963874792797710651044751973763646581000893461303009611840037526247734150541825140367427992800303894243495168623975199506529220881676898173204055477492475324277020637723705047885338403892212675794471758373985330144047822541917718668353080152234433233927589274814673084463442746229070582961960674176102369685349302696325315664627345065429072140758975296697463720092377641207126760563943419475638615187527198250787775616523542144467222861075214645075966252498497974655691545938056774661894457084349669574527635029059511036787858343447933532192492328055054419699538625012247183157150418409858571298301495706458055479437070243815575340198917611619698064242542656576070066288156339909617978305111404248554360717025789559623400128304916059728331166862332798922112274648728831112694743428140042912088939066714069114885285592546157366915765676948042321655094562863418507449191214286562902509819019676765970237542442048863223030288367143437815239373850932461391689494294719111640571263116627487882100516546098201206362158638116282534883037548345098419843835639702993140357807639833957644010593513031069570194051980308604223928286166446007612522408744959862050347606278911998396639631711808048545473064805974703372220256893557578745570544738454739041032233168881876135222451866132615401384865296542911193057915320919738424842126659356060077357427089005062163557283176861690048111786667355836853437356682341158434353556154312465201256208868812708674085857328999917651359146091220644477180803757322205555423828089577858606600437135046245272551866613808860980640560315779167024879580527103386211324235890472467682202209858665463374565540235728524052162516610322505420774884330203489994169578269617778736066288076344342759570165104111817516656933789194679555816536657119536436761865656058505290358584517742062875546337021991930083576806415309313072975951479968337976619576478444748898503592685362968745350413730804218798973127441168045539453995229835023075104314279479073271208278778130826905438894088092336645642556508317538603641640457534766500579995727930166859448273995781007202232429939958858390581501973677329037590110808804876712243252065922066002387196024286947900230557461371983063065139591507597878364166877586982877269379301061036163488445618012076922430027150841824736846122122363085900671503648897244369299720398498614731691970976639113244685914525353836709123972275186603089610722803411788428111548659715415901495530115808383854243108058707574044573116137479159253636464442970703994794779837742997473106296740115511314056726764150391806663221267576947140515864315466067488518317342403660601545513828639627957042109711781216678561868172912542651740856075628888217900073335302898255487052561169979034866224424439272716992875158110601377956268968469702132181702458753172851245319765748474120059342953602769384132546431337951894943238568737257501229714446608157469753852566377071117087787976166822757645452630988351845635821210185725730827167883413003378167179882198204018986388399010718871778456938134208482120345998344962395070452935358961991764351562868061148176468791763005138754071960473293917076830194617684111268498282401110514432628316827808436006900699687839639846715634216718364496402747542465101363814211036064359900083797478343664738476741366628857865687853318869489871114701869893750980592381616591565133843247120788613106257996863829460103075874249552086791044782479096658488923505879462702451898573253865802353198127007149211783116650428799495239373925324261809772982375373578042865938324658693881722813286313329876239740144071996950939863862266696138294777119447550675058706308541708737760546836386496016029584123675536093349514245756541253389267680183355617090848501054284211297474206974209278859285619824199639678290372208413287470123748147571774163509799945559502195232638378251241842176437458762141209538545955000932170813913730739925799042625272018358995681341497332469565406834279270657577726192614989138484808053433728206399820680266151427257569092987595644852612901645828817054409132039404269269298970423920100412836248779168945882436421900990903709156526002725510118390165481191928783528692105189710316953340872343713228440975119800450235507200557422053228010675823667940393710197280794100780558791267491716062097302152743095348745207155595871203366725903471565457312052805547333205830640680808887351655378258571491336808570819546340249590543622840130115343254156739899984507346477250404542985602515885472281919458228789669874130633612036936188557828300516080624837568741793729469722999573881109620547266245339799940919930668458753696219326729818681666086756253856135913269565571213291434897904168071257116835503622354779805018682864649161888721966231658931779774739094310849600947638752625571484902040406759947509287316094634271610509434558689550839609109750083451271455740367580014196561389807978814225071109491355208947904421588936490453912036065373075698438035447259158117660954344236979560653360970863170052395685369540236346887429879371452689593660388703500545728540015139916015883674641120790278539155313641831661822011357655053929461734526949523495344744287515427736580091089699828645357569045615989438805791756747336666302735684640028238509942469670873381154346601522683203866076882555598090528713270591106283184946838401736900908233556583253250217643900379883278396419967456848983067525280034768738712252419910905708069871356267112243470975962852085829714206264011251215926682899477098267825911760834106588155304758500739704423658043329482957380490872244901259160292099879742671146374346155393518650067251461294633583782495099482461135927937076757265646183964144097131922035832374498554450393088850952908865130131505856719545256166733349224904042582992010661687416946614256758332161519359069586564656592671950295414307986265386303186687765709197102905112550806955000182118733634275868633604331444233087719744119715746948001996267538824464743122635702031012944918059251812686461012436115115090714156448438477910332793944892474015426171139741065791567235660767511979926562648576530385678471816035731671169151704047227914655712571524115978386987871408745808912472631834673058308799524306088342674359234888476698699829184325420549524687151702077068447562704731489031603582126459253042176739339422843896150657072006696104986755202792256060370751572686140555234313856547939779421960061000294855921941164251421225890163290023837371859281909563458454547235087361577385330730526210427476650447712876037120403936323937662226219454359649113746629320454488538524668787323279287518691743703116054567194610900449075553958995270709563066441747501213321766967680514552487595476971468462856156646765943914105900055127587516758393676122200404117774746678127816945323565738030838831072774062661089135927828310865947577064506371903484809229203055878601612880553617587937483852436502711446139377380035324696277658644821644437125909460554871962307201503752861788068710376375733539883568293715471120518037915921266742439189814102977181675544536122236593034347910439551549237163472536163153154762513590683804508460251509854623184221415009772102091509615670952611976064421073733648930609975609392796077761294791773301445804646489502623725537864720717874765143433930527213056242264794538206208867749767197847954932072976724353536497131826027568822614425166205169853883408371173015091144122156605718122010142478786830018978302702122114038820083195193794667978580788447709092966161350419560810573128540199829086047070243284396483368634209236261207484085757011996124218488640414490847387700314399417974672670174014763125095204432825133967670470200449191571341848103749374822213051984619489054888987309005080908556506962619701091834880892536653223810801606502637258159480767083073776157253767980764641788636555708608229939161685589957661027312348391193957684327189076692089832080145294015657727249392770935309854592899141411895020844170331589524460073046444516771398956195417123075077504495280629321332833548300460520891823135547036525094144300179599899960930516015317966409355603542064877131175722690863802191313312873820063190843533605854211005580846751338028897629988905222063629284377451584928908074871298211559044591459464372259237619646713197180994794943425033011569726548047989092883173840547122521382161607090554075357640317994971805261911092102280087587627288102900656858536671780850177538228145933278682728471878065518417520574714731366826086015886195509328316331632659001024638291881442603145616015593380769981191947327822390997271588885826695336707083466464659631959164824575057903624238660184447236357162752986547877728655602123898330833381493296591572541845613765515061913411275986631352286650799879299303038250243003741383130841469022817309595834390849489722786192148497110857469161679116037974413951704367499934956564654757160732454743231016873579362729719195583709187370019004730405208343960160639601300068682733266564318695129687596908920828588138520719922972925705832062213158743674148163532300448567281781103469798311792036665837916350269042904003638147256154260103785219611733459009408412538774512175696878757102209791102046492987057026930732086570957407760234540829462250069034248433417144150970801479272676560733668690212225624050670305378787978258660470634592123600141460477061040570911094374837713412014908236918370204670024997108700700501228799556463298919949243743753817313322663064152023629890845674159756472353848502088038817056107438573891777966284563459135798377086353424569146538285767227962848715658138549841821881243194376396895547477701484609329192835482894462739849081857692208299499428288079631276827806750196857155782803204718420476432620513498556835972312905225714174781306860047044195644394843520159681434349359172630936123291255422034995759047924976522412516816316462792470148268530799337607451449142307807294408006732309597547181198976579656841363723969226602029395014480672103746464925064672978920417689671074400740967066772643245409156293757870831000431844274711143185061655469316325092223582462496341713451101510558643672255959662490208491725399754691591315308668461750634366086358964679230557518884803607631128019488027364933289125567089701069140411858588410263945965841741583830307077454365969271653679122820487051859872406687580050577005771966467784216139856574898403162236183508525963915804735217214297177579061930422095537076993611549542430065125636354426680352918686613425053325819924782013105969264364359675082123997025848696575038762192855420708639785989417422242304293091639453693878491952988091041419299871641826201317176146403141357491283691299903381984813233639606677020537196925006632880063050007878321426792701150273531681929392829395561614634988226362994238646587142324552499899019758618788254359646005080130821028892432890948024107138917932330866397928267253101839319176146037250330632382044605508334658466431045794032713122015156201072501300509149345098518835829316706666145616577878459223622070358597609356874560206949868761042755258512653777451618470960269434395813233673820275477012140679689641800693142809106876798809164864688728409540721053529691786571308786913236643794107471200133155904272269329077470167453091469482909437962291988179642058108702978280325344236376682626384712971113486939794473911149494957267626698903428441557272251681987234408342347497867828933996614823019929650927076730569762089301830620978177120578447305611371776270764199237468342482662708275679660041414007630220356097539715223826474807184663750890858929436051603255780850555154206384416567865009201708927044112738332894029211941746854438416759232370920280689196299696278893561112061060177252009762197687685576015883615943879722840392926424788573735535139103135272160164154120339113205959936753227553108609092835176315042886043649158324434448818014118586013697310595780068182894190702529026034890573769243197559520041983943566745278248934783012936970972074874516945737056040125922720934440317386072886463467167340279996979385230124971198413330257893912471709006172838980056381498205920025498214089034483905010482315416274009771001984480823542487888734404120628816429782070797561673496936118678992434013600076440157854055282943933346107333692298683791587403192910533350804297098776014018198818388610825485423305113370713913147983632376440333832539405990505379900177471440591773061030730120611577690821624023469464823434495232374885808843303136301656991024086816348181726134476917038371579795323859999131238930943710831406153462770313446805666208658849087461653433692114791619094545999842818617469240744787034027065889653288190791520676851250017010063773798300976857380906029718745679990785144116258632950948319697785800631526706401141870774031753539704845025421981387921096203358479338097479060438289994155271025900435553879082729584389222784803161630048789273240632336354091931082897689866521883432274825299867471103353742581310075497896296572090733856140961632737205440728914925150791054245278997288240319518328138722940323558658949552666352136798625947695101038556755849929475140819629414745416535339260383536572945590527890679719804278435105105452929147398108529913172813166751952063430086785528480052419866943403714494432374927359011553016577822616582385022836255386134229852030332698412023695822756715293999109158380949103364435777764162018715616210056296562756901876485295579937885749962434247827040510937078485888314125916980461924269137332412504301497456441522043521290877456780138799190058794957427122769148369109942319291773828453592396545875575845035938246581347595377602660701458052728856467780149931091155140797536819160431451256915719155372924609001343339143205757481309529408176721238320051600894016463633894381261502268380783671274801505723711286884684529116544124802783069060383310066713905695270592563301532929549194936475084417501557372371486292767749895335993206888326774464735351525116862180533529736293381413481441546120932749306694961006961289252338596774777137425016320814403835633407880507975504509891309021080491660461875983283264002859289266840172039867481364076394916468172954496951377999142318890399483513293919467792766079210877378233528425181129951498229426134718654246013825821591557204036437233844943192501694409035405887230268531165803207513416760340790015264797696690640283816287342739464181301718931110928280036277792314241378946053963035740219195010398583751819867849116898604183728138660854118709876121897978625387373987570477250467920030507819754111548113423765458656219096924344978196382642144680789021861015948147617855094460963258532657525415499335283188907983031810124695754999620339129975471003136631787728810648886790581847556248688711838744889732151049793668195632917992016268409199246067009602732134697518965604470104061072812732125911210294929679279690736522369454981001099279916297603012400494741332456516843106414908391562616290614541024353829036676331835080996822539319984146287654533163973093489436313921157411377579276469426638698155655763600417287085247840590339286124064574715267393428794041627255292484288386610490765630269961337708621123487717429076383731964112819146098503199566390815908076719612099157854332793020357782537453025630875138520223970012373456321929491347987378566192618433605575059923340335243414482432028719354504668132926057107249819491850805226855602578050151880290093747494749193857245271245906885967214856132218005334544987585323248113495008262501138047489992146744252714751410489842238385837335321188886721078428662820037729917820918219470199536006414506848211635650158275612659306548601368428802002990778001049787086391301275528348415718883516981601670273536293197323612984457483453876054866057995449683866508395672683582271466109637655233124921440481281030655788689540404760734963800063012803167316983814759898795584619033587515143703523775553590113698518974125975690528947826838355923264028411418925600217780775381889203821462050937798347481883017317238482099602933738980375915236172468233967669865112844616068977870185826938805228767808679218811478185162433380410043294127680503267608602721622208797112184106786848420577864875192250237382520913475999751428440252549997014762465795024142149510165216649784726335263178510540098066136565984664872017136673519275872166001743236986902165922231652238610382245021612895231836605920871443070726061398879808517729083188388214291001683392811102551761776848251811231053415450792091980143478062472087256889185183465513853591325637069517060265320959329427883479802986543198106204370417829142574840289358677389956809696062628374023660988429849171728132868338667281881738501629806599231360103961492417767581439651561911887179700297157920913910740550989745922066340447995066709078485770418676727951219087266349796429655374114409794893641550229151423927607668396420027752179589341790961074699241789738259189067221698389450204690187782051330116680172609633574857655165919496730663118827540176930322222916599399306981696872443175003010590550364476568514411676687020428870541474181223037903155604328548103780173913075941422926667893595086433410157292038298061231023891695345737165863851535784418886212696408791561952518617450578689515390762210748572933917087335495175213904256348393207925525081457332915190573449704206637249567114914379823801094284854632778768371998477679737809383902968174567934568736028072302365950938928359200295144857565033980501958074920752332047540794542457332408423264549876313015215601545467393525002679345420320786405023368873097289473541202255284871269783072674260404776955546517716647729915078408119255606837224158051798148266050536945957091296611493312400104764885946927489925696980245711005796005214722199078200616361035740696297027636079268075871289586606618110423621118497999354373845119776328050830888274062940520966924537838616322679383419968168933007095930613840718207898765281346661449812751086635143057742233909979108365058687424427038706399547551662146616279400683877322546473728223021975676439948077196300429424707966912167316541831672612078104091996939652863545457100866036118700529189867979340749586108490158879251062658530781723607055848256881911748061414390361588625445409608528879901193580555865419253968292136195564667852180147196441699598434168887001512489478981258717163184763712322443878553922429442597925806414485408709064291984044178068365577860090320764284011157266484298359908672876016632860314773831906081872003338355271723197169716475709756319088245704728234566244032121381162130937548227658986299497761561133807748455444708996089018649575149809465298528466150803878544558580686388568038086172246207455599523324496312930668578746804913393715661533650051778252450646484669729835350395441626263556912613128602538732286935801352304297068515265003645101481482791115635190431980135203734420220520933329060331536447545892816429896145169089039644731811831738633941451923647090879366669224458682588231011090606141055640404871828676796099895358749857842905867516272122928588801070721966546722776407755090099049442335984053922749609473321183241920745428471365347430561268886140844579297135854701253362261480049822771206203220643692089317082341231580619685589121271786026429227669084680261287676197109465712589086586065991294502190502106472591610287047620347131302415168788027790461251753257626812663289244207487264469429968163250938167887804456542948978530967370220348161547491481260399344742931185753595318368489542844158145252299824482485751488316481755998948944791482662443851459400509297859587306164843653323001694236437837989717296466617128874327520827854145981530218958111193605849436268141422064084392847735288371091827366461694411343010378582453642065733686627978135353888046406300186215049031195082099693204421676932471804503501668695248514147894590402343864236126420876694391124142719892873229094674911396288755137307027409146116581590564272794597100869081102727770071734499500052380574270948036058982644020353337581343085465752887788000523556605793476776711352462821951444037123501637681284948574310734030152050423144411882195398901338027825369691911138129160786019839796195142133354503034798236784390252049593648159270688771578965372643699044338405851783734365472144510795201470800738796374909012618929330661064636138041354059622091613181494023480145746569396751112046116484161624091631994254504873344493231826636936988615273590223546667141239515400354407441278200765535857003304644149557522304884527075926822439808896719080794152277318127960002866408086207096570259904289484571937788521396335909033040201022096659962182274848223070350393697878450377261153340955079962330202260862209223623113509233285725609491177083415168308456352377427705223526107906302053170245341126086212990136930386087734522059926407681224092760169413704679317555224359904454230649798798449767483422663443579628700279300897526338564812600985547739288161124262817181992289326503459369023796618015906500213527186517115559238556377334266023388750037224511338047140544213531321206334064068295714053984623252119189837343005667312096400904917728323002495049790586235776735466649798128470872681546770980010656825323306510817278466471884840366254800672709961584870191658986003369628219379311569135948909842090849741207732880356153370507220697309377403605025267800482248484285186885242651813013856153260888657718621175147177159917653783942495279933778090652482941235335788543064571750057424027850421136447489433351012535966799444294422363863850009022586950273111971239952400752599677739992614591507087694516289731750359823740824681251588911914013757973301829587490482367475043601030655951545215504275867088184849516935838416853574242833266028431318550222451068190587365630903772160421098062458650617052375972668085916722130211392495085711920084550574483004686780459191570164603431119898094344315035346530693292496853322490891414815265616515904698079766062864646448888212408995233767966999534498349837717068424381519763715654168025240952811812909989337119022988239562311467168186513300316578778925260806678865501037937426775313944486608227106165112800155151604682417816057276511123538378020979960903946040841782024187587454638645165816013202783037703457342821081129663191654043356324241672766046341150421420222464024615652886085742978389817622106220567257775832835116147014657497804593286993497513837460359413467812645257874989071423557968247398826559127341210112755313678626459331994390302317994693264875481327301471256206975878315837019291658290813736640286349206103399023525391885717077591872275817291179992081037345420377204556520012911894447463379890133250142066572251932937847742355597806959112995603819268834399124710230640375876740529305574329654134444513149085731806384639300657088972187662647555549452245799736807476302264469927444046979676413280298292885360462429161329751844336495164355683640488715966432670783397790784759373644820097813365857746173553187512416802182018103556684702485439850130164440077302006089521498785577767525851893498448619893967474895402048827673661166051657532975518999742563796295459922700563357404385942708161827015270882718001033503867098029763576091171195764718862752816911952601703671000324820685989506771679919517123693452226191349152843713819150500667912954938579017599557729747014905320632971671569791820151005068586373294411800541959503065751149278956530677423505661468663590891336810656533951501583460609971762758971693189569844127600592020185679448626987910866017693407412522397473351381389262258616006044156826601493700601638452420360772612320217373895982920321357960691327302845543072740983444570979146941229705614762673224926652827293670522821089494342096507112762679324978254626688742811975015858765465810954580867224763540970172033428902372122494627858773471674454471357156497306601391435320384730511581477557377034279884556280998663823188421095421133557072428730874518673562504616692160878167185201245135502576471524403164739860490378716530097024252931482834198889776514581436000622411971858853097399151850417170887964092925296530989077560828838340024875613530633531322932080671120111332037015519375130314719179291160335555428860848898901191358290622013945128672383323720737574518266438296702682058578930094053046151454898091373788356134230293316497352472545776829058273774263275652766302559615607546793649071459906749647308360714327231145810448919049439217977146001341807332112899215244511013976174203574001467531702611887076992425930518376054019009098158179522064978995026789667020884815971007353570961737527820502032925207095833627248602844862780763386401081677762478567518743081800998618756323151987982971196681403842005051656381963236078997707102096584660090125101701460879865564958015636165243609392548950746405841998842452286487435145529401933219628822699208861187338385272002883479607414506908197806192258100290057454327478629690051739233227624181757882452393255510275016757044369520234829101062736824993208018249165686447251599868104678782458521242497977935036521255566070931532306176689390728092147622658919362137774749552641385577281247933974145075446887045501389502194937495317271635000871999412227116568669191165360068636499671229738012518936803218020087744817212276217096424917897967746407240868947295743936245380519129747854608507435307181489755640036259824867549619055930538313238630940863877301486299747748532614786301382528327109984455642087943670050543578103330076831088136579494385123153107365402703892389877620231824644424011482686467229855482012174761623739535843206974495983537719349292237054749336489065519264700106071197261112181508044821214597204028207181699748995412575914645702948800887297526478769424809346344160095252079811695298564105645379824077813699746126719918768770822075156909244454078849306999691168980384087881071842677448673004048019256697924462987097255198633852318777980793391875952616418412030831108103354533434566388348826789357789666036498627816282246994049013549904823664323690941951088000775185730647315852956193356283148340802917066579982382124408689322658314227555313870705711722305376324492382823983687580652648360121482146482382205300033858999576623505813954329753835135850848662094779290981643423820437449758489999472441775875575413955634685648783672408300347258624889350665206333054362394105288215410691153557264219584981672655516634389338654189768802013544530461088104299748862298735711937761057713149920267028593844685622816441338893733994816926096764102809660884151607437660333529047150192484706540874210920257971747285631573388209983097211619670782862851676360577111708271020156001066633688123552896236577727850294296427972135714439934629269022606281858768841749790718690631137557078864039214509139645563442397083975372998417983085026546462538384053677687010572418912755235423727478041014925762732986751427081899558889674682070173366230908235362011992628059216183821090083188375809770826369242650800547924201287284631249189894296284138019728532391381086114907201058220383824881778103589001263480818688589798801885963751611792056462553177440762861375441731466465223187289930348805051203024384920546646330474142555565241673715649219655400219495374970486953310435574703757110387171852903594696369023658400193193523764515751859334414548800726604638564041878368185658502092495900774568139479088558456710128602824653852578180847745409989238126478032330477025380485335236342864734725147400647146982369691443158076814172925018498639390315056914927943004449759829268533587382043926603010029376381743206150857800477731308908118753054812850809688659670457124685958663045431407750627709578850042183908857083013303563649253665108432977316856368148723555748504504548175978049411290113962835710248627736015143892473178720637915732206481245610037291173029906639229859925670434387748890024420014314102561449315426894756842715175966338612537254624974068749905027127149358776706815293016074125368103340147240188915057771599699593543876558996777781278822854000755411349894453524908526343246992216549342949315542089129691801943029293321375858072614696671024652007630363310390832725928094285862077015754481733994357137546688023583068637113129931215758018718162564362834534112072811160578386115017028103943167545114231623637781993590503988018917056594099137808478302453166079928829180373212313202550570063612313588342121228671244033269817205247782050998649739859186930011454777278494746398621338768364761179793301540407647360909929292575873298265022919095871641183298072175202286845109465675219409359815558207004196583904927649662831782769966901490230513709572343853333470566508386047598294370965027115517234422925761492916985700173915613194977407699581456227610963894179165747212094024574250090141447073957551634880509032251380768336184140104872766481679875552589720520690813558068582499253460514611043102662615295726484915933521659296353736193654723735542396106367698272394020400208550913565973826369993380811536831471875556704486356648274820205778139518202269072981737201122062400761357427441692496966381047292231787673793096693760358157237276498308926925656997980241965225427689525172745287069451127510069572821994352001866104792834428722721969321437961363206874038201458254559258571592916596291758737924439288397493722425734906014894405128884555939235115830379169110900262121287681774941715277548907132453077607241615268897341006876021340707994184003847398904689672291644750736925352543111947102352326586792867155694916802714286599858304602258406512553852316513845654776942629486673808152928296527483732924549626374913864363016109343860256133129361577191280357848429661505170278815688467282067811955716534512547200925599531533786359706200545951056762193734573754647356655412869819774329391032030986600470664966973697076504903408397074367083776962632655778136678154748291614850828400758891147783270308021513953507987221515456897284015538175461870604320884102834615126224958986245822716112716517069194658733844584093029449107974593842292251790126614990841951360164484733805170025045774357470351936875185669415873039648402491817889578418648513505864564113213584692950852080156577971357243528303366888557290477533912795965853631356441555381755589557842642375809446341608963368482366619840545101911212249032455088903286544921918406699994361711268632136915728068986989828390449619140849045687992648305635067101109801932059587787649333079569081924316528319765413375449451819695838041191340937567087856044381605623581625642009411459083839699877242505687954069863604966487856158841981821053794735222563213736661361991199862853316890602096217846696933821833010038136455019691101300507944529539243748784485081085315445197446607862119367979552302350927281069686990220953158562211690413828446014475701320859530632106430855622615107030952314908795057575821739033416114154216452185830844555940329928323281061662864312583862326057214432979198620301505400016448113394143540425931098117819342371421928507928085452205618590398871456627440150977329714965014018548672755194577537820158098979730594011535188912533598856444713329710102470666056342784133792450548396275642983628378636143897853234481071405549587845194710515845126675499742322139166295829492709232107062812482904521742948127542051602309268757872404952531336239598513408725056263166123092818316385796529115107943091368837782366167645139613206652802911945419857302395027868184175485260639211573725629381855490393095757145740488164744167782804728784611051504510884247679218760647538321511087440660132531729009597974605043311301028062299775900930208407664080939223791477910709745887002495975297456535776473006892576449347828415176759888715773757303157193840824985947224638362613793851766755617592167510680413375743142928226020117121483506117182359239462360161051063360165505518528458731185159113365455305075652066211367131907955510965929756414306590816441886908666425034747108382685761220886788354232384454563654346718843169025598259974805472219369541742579104400940473732568674578093755046519993232313150404988024209655483424701118718057776079020002922028871270853389237892403840938974417619871719454584297628523244922092285319524243012797504885484951631156239858211703959479242049127007825690106851984444263665395812616927270991937261440482960956564628529625340302475405127267612750530562032357851834429472053351233218742555491517331733545215719302637121619321920431393166119154688363431213971164170142093716526203320426323112813939085300166595868243662070684604696490966516251919540270535914931313218850909344830236779608151841626429154632959857738407149203911501017323893287921979379557057018563893952764314161207768234295630735404320321573507735009322440987224338572961376052239840936197339052832757172316851849703894722127524545657302136315201777145612171712580493068813909979350238856377782972777995574423434802034776715659912123427336641327451498012226038833890675998744185260291327286675467406321373589094148984851474990856979781825861896044598499119362201293406505006399852312912363749293646522195286493623937570858483129483688449064875775237741391916966141245207599619177251253595553827681401030780206417219490892912919248830744919599559030985354400352572916641491802482904557098596787773860676665990249536350030653449289182804011891459720028450627658786601287220096389203095620197588993835101229066733572038238871468674823310531267742378039201611463426640228130378210971543958154293031992231281754676171769689363855855328887732667695170687904054839144254055015832535480425568621979710200933610974886868631090870131440042586104111147209039299432962547959593431314705856518086190723808475889521866503541215202450838228795540915069931693252232620433297036689527811496279275561605110383293772763836994377653787292664145202228144223759917782939136190634842237552627267638400985037121676105351618718284886079028060293297753630658804620182550037883464484610018737704767555457915044409525321438698060549616134393549359629325863274756130784287060852559583464982715744407436310482723545531876313468864927511123403329915882767145271195146247430384739525303770657864798975738664293633404436628172774700889482361520002493084042504975923912652601548403723216609672471073242772261325567628841251005391535729576130214265125056091981388528271074605931158477879162548021171007524700938823808538341137913250449002062738932634003940805162849546207185171492621506750202783978537504347940731286312604368668552142797478572786071794117029895556480666174095734048468964603501029292236994851416123628803256463971267588750635079116695866622720076368897831596236695380716205495489796013749563509787263372661676385837743669546570826932500849136404539627186346554841774704762849715879127310012074053047851725640290295072642800126897050785486008830936448674139181287168300883931012103662097009977902447412093010659382974258423225754117987645216571224796087656379629252388063158094932217980890749404660683928470793050545574003581480197243445952503986529024127558648816507820524856997667260889186344417890132187199787316242227466598306613492192374891419683944439771368205335868219556179712279483083080784145083448461958681639832844124490645332199171379207479380256643913858412511001615472799226207575638266526642841555574131076495119225560625940921619758504552450906339397747122900216387413824749905053598998453830066379154981960178208233570137750424546450298124199967788518734737682653617187300569683738285774104535264268961427476093969067445356012767968830161520027594478967257360689888881637169053248318949309058156275359555591479913332397745134421138861266167541124994457092276989587794147779987204736356056832560322547982912149841379193675396190250564314667609620117998869408804612550059270697675761370927663415273333194639668947244872242798719268925282732796098306851066052172721772297316126615603543063745707691584029127476090305912639989899167062891826479542590076805848230174803673002051602117582743704834675324010543897835044028965123855134497118020645382044084728288552819647787153722923374328195293566638808386801141165216334441690132702862535626556813553474590373557798476824821268794897115549540871439752150010702646038816434427536015225324942344811989649762184148702616066035037174875319121251122705884363846575302800242351782433334870415865706419337900430416279950289261597190720964402332278808655859029616608911708074738627767329669126182583020809747864264709333041892798840115573471019282648127044001931314903928727570176275473712952859355525780156174645357789812027197076575689996917485828030636806447628775594990241479680822518653892631878281912117210473476807484016591652960700192310552397053047662889570974549635911050553143085953318934444062336089594176141964671063642025491652297865002466921506263590286608776233410471023034544713005117488226576203086977297468107327891173077617000443755486045498177046238073598984083883923762436384351500027615800984500144120313556889319156980621249770374909115710681778498457170634029487065166222265374295272208625506411772629203227428361320136382990193108282649191212317423366703101164804857749808581755567698966415266686697153620641996723599024363006639119911775419140014429361284699259203039295992038311471832786724532758344176237391374930858298323380380323679295398003665069596320971538745353305812002912872699398956889236371037475446636804802772953847708369759720849497693466966650530172048805517297378734238742361639082136566684785282418663853353525802157130171273102001033122280696670845611585700680806045725600853180495004750745948157313132383994175758231013120122892750519441256419534847787295137542729010326366394398994441582392705784815439445479059388423828167101440881610526654944340678407624638738674651692423316068247508312969370530967781563536972093406810525843612783495935067599952689241534266498420820793151977606303751159881782383568005757964673937749041005428653702186808856479054864903723318900601460998234799759761505084235248667936948701295384512525707937963269107322038396857306709531426442615833233871140432535648290927684272706831051003606856078327508145119581508688009084034012954136091427457952358852893377247548601654885382901854759680992700981770548163040471091692003592434554980791865390683087743612348885843213292723339450178913004274126657279825787913164788556286035804833814308556106791497436440083069487654742446121702339050819157597120520439853516339997072621619791062756311843610978401199211066722867651078174963766594717965038020591393198378204987557226001218482786650925392478948032494032334684145459429959237503162615534807215783082534342250100469383996343558931668894703376689697285412256282256284518634090832708774050046317193767869329691220699326415414924840124356464438252579054958539986910325439583577955762252956403405119242763544668939376883637801021349542593704368373195149738932430278702749857821498955239773049629001666044892022524081534322638533461685605213601608774726377890509673312546442769679757524283706090808818067568688292033657947270744148750206466903018298360610919738246292427216510800091787226302968123993086593545023772193915038808181710581034547037701572648046209037706881856431796884112500442206543165261109185648938220783686454288932901428994748790766469636067465993352000200260942443471066826641660768113293367410523254476719936360238362353936223341867813102238729478020268394048168684581872426319689551532315586469868656910559198095348607646107757915750166405712315834739394927237946338788866093638408331879130842213021177885799988734466932317962339317794843844085543838807857488376245670988045949182599384014562897993446060734755308184099746977685644187041812886194240705940207469566874611036954300128788888683067365661658062793650492250221658720189296966433551516266177913381776184015276418205436642099271758928288760257351037274756441984657090394505097708628483239137839865508579800321297382769900316164925348832591994001902239967500944641008924535292842537339581901800780983172710364952478018317568267352476603952287865975989046435403981140932852983220226178503461741802591887434283860806659108295290662408356571747103044373417939929768083410104219261750275218608169406150441587474704574552422719993289820192127297253301449585456978803983718405322990097028726627392889133584331886811544734388350634000756455320252227761612542541116654873652173187416541257076027195886388439917322452682552368176189641192101283681652535290528156118022234707363593203220148336333723736309691935149275140921527353044977688813713594946693003792191354949747394865694265268103195814620819213051490286696564027499620294405180024777429573362994071966900792712136435745731850909240122291409399258841599515029258395161427497328290265099621427725908346516946819839432012969364598394354049408327608142154346256213281571283896401503233911556212250607741732126235673114092716392895546539901364512507921672881919097568601597168804302959264182692877955533690860252728521591596612913641626092306244163206115629464445049138087379357593120477066447494552329109127052112009780019932968700608538681383266220313095447235436480357844634524517400507836799252914518705338621860765289670491522168917999606217211271388606223752780183097332709717271456496239857865621894095776157368342988745493841886036033388776871139150634467166027031525646742394079513779096665697039489429668807772494764896149113641162168802283763180350836527421996951307445710274257181432172576944998104242202215115915220146392266018517334655933120052412997928703482764272602461833527761579258299127378265742588936196999382566839652947500083030358496808349251964453284813034692737168966437966496301486822996209195170183121493039035993402127538117457037107177711298391530010210894060405810939998064787609345455471317005854048562752123119176234009032114574373792680794930902387665108985812849969331280559403851211801703901340640997567686723767382194102853135949461395774619497461250662377486159214266874007029961097948362860795369790967546253732830979591627708969219148402210169083729487347474233919704714801650763230805614971705299101418071067727697322459782977719947864099793318871215698995172266230257682385134538501498594123381486532412049699965725863091908045230991453630945571643995265488659813228780130497773940317131553959616366591873579060201542534396378504705115518684627718853886750112697196467594469805999277660793686654301273755827548651493976702439794037255202555965186508665419972930870791848329726122655743085437399989387198713969118259107941784361556559434574813695973625019241162753919134265496344689358385147423552774707494244402167441695730170462343854194470285709751877491261917403827523049131880779982230263907055846520767916369114305561454569397536805937316909822508509496898408976463119991915958108516993352383579512337225083894827547763611780735098969044472560719334994339689367541927240750879990175724125652202407433494736040736765597181065412057468931691085621535791854908105605659736338349152084042042543535808121786479252705356688221390629909161823821113276052066917144513449988715773459057720710415642547200108998425888171913725551712698504302517207620606791469555177229724085788893456853203817035990780387918627190742539653450357915046573759309611866630713977856587345414103082286214821864615444131627626131730003339798308286370090516472291704109356633118483927632578882089481748401684807369601253008919126627799801650670710501592878284216560626419240460194852376061598363655642136287734031099805537981537369600165521295718026036231174602417683613450015997512364654396620528159497979530938502741929321788247563975039360607248644302027130876853560562546826273886177718818248546243312756423117121562548020367688340901669061042251627604767677013152287477754626784948981817826788141864395307740156517023486633078620324015901329995264765290902056139668119721441949973060866372908792043828433251724356615620068557388325419537696343441446680038873927764383392585212372706381679024845709499872928655265090542694960794858448462992166962897430844548672056415419215311193564299960232771864788494762025374077712265876672334638381147343712044550436212452328860025093511197049034067427713349468994030873335653022296369273005384443823598756365851203756122259332073952646832259496037115080428193893329272926268031208378894048988693188744506658207210266459842798271072122133030939809851853330579208437007421046389714301276375571941718567482233872766755964460312725353363211807653255246101139494129073494851162770935183333800402746158467693173331549196241549106378624256916913281668800341828922851742678715541051844466978852243704046517683382784717997167680476682055023777126948362315123346881875785475539201934785530999050215417212808495749998571257065255933847881136008678447882967999904333843422727962856925732164290367644832449190616394466911104843893332102573522219695328951900538208568111864548316254617651221909656506833337902010112573236573823564705296271520536836487523928691515529956176510071797681408546015189721348732188399490566205208800215438339260614349051059204794629435521826912361764553747138968429147186647824981500516418622626315019541591284923822335867565915004816447246061848020590972754937168637032510678467628863180749103378428072451155306862906487680941549121438318905867129650702545781021405186573264653025740012680973034755031845835238125498468684285749474369162057984815645389996874928776987703316408268140137285817080546964215944420846195282158829069214125816396926278349223026691453926264846615852988554302073603255430114300748422440667712385764720837534009260686256275609685602740927514209531170424102556319269424312304817867826588798765554619686580465884955990855604362352604975819365417617217242327203576547559880989933873647832948944115431149671583079657257746330122407151285904980288768397478754665640527642593050137832445436153373551321791515985355633052807671101585955962884401343650313854055401494751482638434639274257687569342048638987170323499504439181458399587837791986128462905828454306374995083519107882737027666181827150297391967147536309460357592774108311445720400762577829354578780317057362869678137992511427480615476293818573286361389639765288718310540522590573134216545920517452102984364846423741641972360387076980367190618543637885917636953828680462955212681590263537128602268366444730934352759616393790668301962310918809093806564175449882199244969290619643088927589461662548090323642059526504768352383416200834359080662142831881699151411195326961042089239738792125085827377784418918065727148310594815509498903687637508627417172808880749151804633425635461318720993839882067162492417411528993549674539430400617926557995562547769052682291133759357832550029281583138925110023392946248912696037394467843924734501409993114432738578757294933987986378263171390158438976246401580479893749500417555779707622824935056186143985364304121189291748539239489236887991899826507726630822649523324513784340895439251210609419888436509477655112615773047183999592636280383724248208440000745008093946906778104322587146030017522293203480196697912261311301360023959072689359604552131716084815275979588645415908904608918572976929598420468688188348071366794132413148267058830544082580595370658102211162679392239013714432017480497394845162015619193357049277116647132273796171094708122745124191985985965513837876366951987347092168532621652995043353032533402841575792656267136129259262201530742817671548412333731560407389937493543449230819623497340440871971150586738129471057169077899476310628826002164494905301200315194010578595041027637414083622299939340132772370461201837106400543976304101226330391550533885010089370019751259559240223890832324393228519275838569660278858050444683817491652266770445959588013670376435862289259164729504219042632389669867143860226651507361298042254485179487210620122019609788445355738253721156837094153939238449711080555395563468986067649307362595517355543111313144800662499871002553314662542328180224880761813803307421285736046777759202615928701876936105039522170624576475817190657671630459868029855618986256756951545266263866209988762912349676517012286120019708963697125000776891807061213317727433473369889599050258928478529879036719958837641327630291538097416717933595542986774962735847477799364283560677373045920389289946483448631258437416149370975945292227848170220288425616108323254382696505507728486924508001728341613501394342647927402955203016266808011141268084263938539459117578905508925504261300243495211941578464257204803072313114668851735702110431519764801311058665324406398936709427562046325501853270392561973256347203485785808408054054758076523490983930026409085353912250991492009378232154802972747557399455038493890251741746894366729450554661503108915597870907334793083151950183957784250842514823277404926495679973694988734945014937995022890970788115484855467960417117244527008510987300277347979602245692823090318714922844312107913530317021316556667706399146572752248402752656359619204649448072388583512684393945674698341522795691980488655656160162308503627281024362359494324415852058162363383414575698053483464306476548736977735708214302393995507082156228058425376284216662627001385055330264208183680832319038018341631713914568564964065948597985442334104741774036586983183999944264864514088750625115259272754448066455809446989546738225962309619770481606576168899117388510020843269091929786130038687078068386727193139209509209525279891489173881001585480912676048903531611442751419504227870727451137038371637511977233665803957208913657002679856883649604893697035331882558832306976544357956539408399383973348033345687496916206659051609433137818783850525212970916114405912955804902490491983144163662418999158356121037764940272127802635027064750315989779066286842352992976167305068666637754324721513006992925141697526088505858012270133998372255997544960720850484218765985895159750673239459017939250548017500381408691674708479528283241027699069775472834246244474765660529496394895271619761095164166076650845271546428627185510273738959587468200758035109005438775744006436646188674994310799346553527169507022779887759729269930207061833981375645852405356713282241626010431291722031523933369218638540431997867996115157097679489420713042250818835401139751933995104674124144991551981729987172507757213327371762822010013540923362213947791178221672508270496807441746155472843383403273033253856092047966435569165519169854390301127837686820907977140009108069957561934018782929638109718331140468675359414838007161925972902910943919630985521097248632423977394863946473632312299740810389765681065003377389575326369332381783315168821539996099341316382899499979433480210313355304494410069857218631325380850193281788961512169024426426494095035792295925239016860943396977455564660104037768473040911871604216124656899459745347474084104790511292455087820921296980951639427201284161328043995780229092185739658778459459722922352720591695083158383879171858235775942860186345088472991244238057733206597253122467558844681385461362912200274256902199922592450619854357566539733129182091475362160533061209440719318132135957596624080142997522610355895416624629887003014719018158510310705836815843962644816643874886253946736221655205194480758735514598563493397502349860988380017565085869964660199589001939092987428576337297657739870128801757745620283069151122671348516402350274462391431942682094522485493094435722939256789464410807387031170792146263012275443596085629455611899824250971620837916136569340135027677506672034784699248460083012604631567037128045977816823777249245657895176539023667556015496614889326479650350390302598752392930057469165324962979352862957542336804928313582562974542131653760972644691700813925598613024347308794522435830082989511668622264410648857876688700809118743864829185576192721841004162360157717209529113888602962150301211592285063645453001989144039421982990693964968558472705425704857799715543230113408513733031690921428640679846793527403643918609817238195050319522876123585201290794389143154466519138841826448022826290535190590939216222980617580820831352246621633399980717170104090474914869055979424815493238184691138444161736864448764215891360420884217233899548956059634368856378075256049148267918396073195483732835010238113142772013040417975835121276478543722190129756736157658190008465980745559395767974855302530457604701287124592390018928702623193273874917562272020050732965244102564991287732002806475953783886827696856192109250299839118910329747953903890168615495762688636925212577939260497570969732750016234656478421017169109759699263645552112862964284220543873879614404691830908684019522559920949958285696382359645421245807128714672771847352164209338797816477689115144157110123222330444970351745331842283690117372067137882269904696694148658436913069517826872361530535939020675887162714308186500521530894350821132133237443758146301342197876725604655670234983905544935795374569924439585690849885613946192128380502946271970386309542060956033262418524952123371549716013911415004699005659924751815568413092784627649199196685219655224284643954488167376484447260815082850459371326938259968739812872682809649229419890572547252101746022067126272220819944925224342497322448259006883568400610306507121891310215833707448766041519754152233074820572126023424446464463638686068262033096533155320451826838571044264378867532715545810986601046616119052287081962130215887288170660575019115919641755422072198139818516903506593542987056424324307716736673699485714658644240582128929057929122256973833694349063976903963202903006290033116044203942804571785664756153511728783048472881057839130113346064586945537289133721676731104945664524050123459771452251149457993900426047977357828228212001326505803575975984228506357582401361655689665685868742223395762272926993562089036767714613533132068971755710806283303731300583655065898814375214728747184250565327844375351665682058958122536295820993711919461109339277009782933383375515695569723205835591405099964914015215630517558903433301642919894580775901639675783093794602014811851003677271365135164595784156841098944538689713367863959522061788842438626184636528102869520470441384757830839996449150543612624113332040933654573236498981173640670832077401491727514824715178567500257484993352914374897786435480254816892754077087544608018690568493900725803641783588095065820439680198043810727665237561203747359219490461676018553259618049806727222882944062255154081389352398661355006999047926269440099206823228650628391438430159543123174056662304284167655329319045225776886103882109280044340598644974978592530121467688475547137519422121625407089980248612724224419767668382887548680211943409656192648592002541636149931438954385520585997915200170054129479374318040946389405399039521062230701919350267680131450581068509224848067377219749847915407295140170834154274259011515729745514949899655761868219554541087842680218673896691963220185206400891808373061303730952965666167250402916013502742240778535256358438439409912910377243063135715837038112537011202687946731081885681993706534948041460922506089473760323877387943950403715917691325717419428322059647126052455854140385039705870077680116656078533485838682120924110224984321466648051311457908163611717370097414427830624774697528715514987735893606781881912581971709513547972549589220018939177414929635605919175600499494646382860804238508485976495445582737473017879159513605298042706450373575092514164297694017278651542405058441790928983315186327832110511477051295947526790208956557907444403789256823144729602488966930986964377914626718223424435530629369191352926227495001684075083872498938074276968753773555095155296341554935201058295821482759851510305940979231247535807789305469802654449557220892739810803886535006536187075011376461220184029275071114231395583304791755102256602047301619067028782380220425167485724846801796477373233690647110061274823728520733438156713874268949198204968089910603507418702344524857686498156509814336315050133833493796424346973722551362077475809812089488669516476490994472476569059239949401283204020859174038928261605707175448658386319988684935258913031509133821377767981247133773090810641880812275554516990172269490335477165087904859141023007946578573495982564121618138187147872805077723496131213129322501782863182318122722709816329292912353698452881122468231978056003926917722064580685096387270076434633562909571002527691797046669247230812841125355006356810286798786308548915794027418121541341831829273283569160702669783940558476946783411568717660225081897385830303725680109253867787872830518921869736099547634092253939194182868887791630353534495682772358321125121689081128314244064552487093414798241937665223404089835671429897985344699369008822938445468255535678279934363583495243263242878075059564105555548695899255746476649346002521434818001902909658916962491015328571266520705306937729228309203906757880047978810774199283078427741060041062816317900351506845124407917062668023715177506647483812236240513748315724456571462237098512901156006931922343975880675416454591601994878616158664333403408188916031997807889253833688638195286808304800591543171777460705578813090185314044293278284514588656118827194364105160136516396511264042545381307164845682274591010838307277542462265314788614753292468984741060568983634098340458793086067106416797388615313626024968062637569066084037266170412895237072454532695347390962446373113727019768079837445640267788241118133622016013221496689410824597254548192439936211135273042727126410365343983445897370891686087894871286324588024051153512673761180212951315527505833690215871819906848684415558051576266760201305865593862620454430593488030478527813267664043783390469989089387212325913699651453000639950932204399343578550262452654071077897247028364790115607488554890094441656013597521056782443351746769196033341721195287216652328757950674196934842054403124538015827637682776113141603392792056022831009531014167602803833696983655706871406066265981803648234432732296055349367095266129082620653821692985974387761412128752491596643102142163315211473838111598023722066426088474831755950071163958860234873914119454415476017362242985700308353405885082103834698791472543162783755549594402726530395556375494912717316451112654179242467607401975267742311785258381119263701773261163434797241144567805804682438329294096560102855804304915850747768378372685781851345006304544602781809168103933341864501190951466535979251473263576538580725363831675148603490750244063368802644387450021343921999355257525982768988930478890531128749219561144569582196410544468862965356731154322932200863844928996389410010584603158671329840118428116143393849241792358119025772062900218861304755874553957633456282824228288691297645721720563971191701197862197054634389252254456603636206911395014481513767188494689140991406815546749066385768323413273854371096602233676468679143325852474761783065169072959687757677250558901868559184880093897346828388148401323821212932740423585379565558335122178786424855811167120313998493980913509206926173928041332329143174658217733112193635872845270542773062257701681057291136203681270876933386225536694551430778234345978435649802446932690285256712208227194104279076591197662065836738751868910532116864386092005779351305420886723529008937946729113902263565807145966057788056599114996594783040583035614889654493050824127343383287916135102843685606395190151614247036351148587911247057287876141954391010863157257698990289962078134661290653205671694087770047553284320054219774782515341832818688682905128775157070619259268344091859646179778237255694750582703837000327504648447046826933957698227545257168801036305087934597578066335213877617641415813170864887144156950512633877232034351152021893362314317603539722878920440139761919623311377288239153096600722317385779034400518375014951736923244571949778860377159214381530292346162133816378186444247208777997041123195188174789869962382785208887333178170562477309776034175647966763618464236876771608129352030936374511684620912961684452839691560516679169548875343021813857022578789494698123745800020811508829231870828420390040163923483209554353702524718469062247161821344685242459975354701811406905156509437705079790476459587347799089841706348315603244272632736248862713017165756165692008980958909638354028696956412820294468757411092955613702192395056452562494635104128367778959355033477020599210096946233329235362590152801252787939005223298322724034408859777774372877558887440710993414196749891150608000096772702356833031808380711392480230959858283299383541807424082901918622191360927646940884187110247089798648241499124776218396719344819991461462372536822045294743519443506943241569609981549059900883602132872231679234182260823621527898451698139324850573105071879824630505397231572064519238311094950410636066602081527291544670220924366077187446029923041834826551741723670536819903129217081091750025264570115710199073532573395421166143756767833203639780052465934383651647319335962526076371113334233113439065893373544841558716334985384188864601997354603226289080728815629373103356778888006397320987280503293684626850793519329477358914312252160578322283561847841723178281094495387402088547044600262559771524800016272025584613350347199158050292001562059676175760135374627067195508139880948230406018172832352341345325694969640423859400860321721479411684583009527107337979227070084849687669213588717862529342612989101938673581249784179986624620319885746538434751958694766822090830726047720373310451728517254902684320081725241508534499698379844879423933433902669054468673971817527248490770981423980815870338113006269457939793375619456680395906664363909804683923417107374903447834473047338022539569139395868150412838868503844151064634838685168419139124870728995462988797951337708767819715918100161591072769950279441395892524750872848307638926720651157213256737273187127356709617886064297684659772405191940048472452535871944399646693605177688269327310400901395232058681053500536980515832227539219055810696620769141977436884379631266376535269690717904542071754767997945485504005974360144303817083832114166823076374784085232819390590183175978370313337683866915883697528011589925633514332019773186182031159916724129564667380262458101543467055062868275282680733709147049418116330333615283411646636041047678714060079413341243638078897393621234648234554648233750251580801423599063069792218304727982510500951993194228041798914306122216085690999181902575527729652134407592939384326722782443012299186492089499581990703236903127324586698039735458836489855180445207813817960249013007878083126585082450223495316439144082317586147845083442448002371020806107384021420177487115841590710712387276587659493827904693772011628789676206050453391218928183231895518104328474931142226948825728871730132231985643752717852051028738117679363451338406690966447151429966941347419387127873527734948722530457632391758690685783627192428046304304970915397488812031918291539185678322525845544496554673977981979347333208406947955389943576471537950234564534934769428547700398032255097090859927420084383883000097924549246290029841135453976878760407612226589425892773316165196951661098333748847273408610135862790792976463887984887692553649158376041011191216789598931942677162271070995981795698711829287561437818956986899093365258334813537435430640372305236566873428862039202905079170255134601071164809412428701180905230865267978888204127383967205051423386089094914226845572500941902866058455490567789508008183069062579845171580733282489917701540767474686232411198808513086877623669715720991478624501000543874047970575904516435219992744495152599331192512618774921714824185913774947801008619235308581276790008093350169039743720232666924249658723027023786643562638681278189326070850067678098439315369727472148817999181933006972380474367712002667030306537634065423585924824266382860189983309808118663928884150998764923250849699402342039041718424698140938369222478616849047545210782285776836789250343440263342868537534063258021614400691231373475431614172565588884856446521329517032522359765597276462244358228657644758868337414959867072383794408120491576053589670975305843359702207211565574151534626389605717757805710564479468904433214660860974487524467699477228187372075926969802225819911767411210602981408838514808429339355200862394003103362080468665508801760824971292043748958966448013408867776681077154294875291164272297106028066715589474445930027765074477912308697139722676632899052706622229791948935452129218194670395321016248660963687736501409628796697131236990288308739765680973640647242711445162104398983837867408368548847473777161283488687398996300767239061667348868001071118720979471022978063483768670516364996012587246808161511564385648169602218731018888492589813006373245942212774254841396152343695606023777061473932313799169543675645821121341421616415952708179138471905961068797358772321829987591092130259619541712469894022434275486820998971334309324959383767542345726459707747511756395487664062926310548533935749951593638460335996162861885150952367419830795061073357604186879190772962865563684573123624211281088623075271559193993045873477844801258365748104286542033931075717395034985928832200348740243914596718721849634748554180333812165762386932383728435281444967690759868641820133300394932340142159222595512234423280566433547577369806507781365653865630282012117399050755467007513383347528125335839608642851955470863802323539872535399277524414474101797617824925085499095115825026885016659299455010835980463057566339618770771164478621307178850601705448759799035937674237012040637696679723325072641217769002808015083010170969732096349034596439772512887097116426885941850818953589196449512152451756909544711257004822544372398815770485306279968980144379934815012505607669510706132576182007036715155126679352253283686472842069100587526036565640310490198095689607230786602033786799905634843346296598634499827473537280200429264029369071514461359038160984517686358084813207067591756475207614672913280690937312678704361577110228002809967674675645685770760253206645789970992952149648218344272000823021238960556632940950258762515264267704906234634249124313794694417830258056483411188052572424969073304676585365769142679843250085376662990340690681592958370075512826666451267160757063388929276592372071886581029131484400305596519911206910181716706761218158783280206163946159207342582194464985642164293179496587520129054411025380035585435392049582540742492185753796277091785663687309125614285011890191639261284662417898828789701804827069402561942010993143746864050823798201668794445026286166948109972483607276607415945154955321974726814610811496996264170877426294946912665497346541138591678979568664436505954852119555266633101982377403113926573335858946434992624229738095681153111717589858223573730093288209231139751805678137513142578878774332144269211701659833810532667797449040476840541848373907174303823366858628464877649738191165961057252671785689145711305662845369188751648222128613720641512796432583666960337274046386478236541688789878782163120993831252169499138264476601968870333258058650572041163870971078127680230617741370257736989447380396849016197710492495516228470359152142399129669995735785064312516214024960590081350238185063331725813020503074333377240330241260711965180587402170861757457831445240269822417722190640324783402132329237413527348280290335144796155851059073053781949182023772673554919626765595370242068790920865350656799424760838535552265646832280742820785232002968863293700613340769911140081023625855291250859046723104123849782432044122132685203863331433169820290458935788499551425584954432175582690138885189729815434400798627088334180607986748380882144354804215581433286576752333187687895117323279687246567391924713848353612156637276795725851152463989799555860211537126240906938205496098760475377641729771089127710087907637195955362608514526820345748008776630780646970203222557460329367810246982285500450661328840408451069369015781912546184983496462910482081274338607887377340299111305769707875699908177692543487461964425447163683329295537073186489164880731601576464162691359188228324435645019906491742509807016174275774893414951585942822813377225871242720913599761776555896528656522906754129034519632728153671266543370371871129757054166752348599732957540115362721148616787575208274723694602360411141584075903804745454428170484462225401937642095546792599035261237875596634127995166035062963351468667856793576072722288988826006250254154970913160719961599061312348641310822572047919267895821175103060925993044617000792061417456476486257354203236719321682959969999989151726799796019353086574843265873569305227585372839798951309570850026908482071666724514625791589409029561111312521686518399701264282657001319788563315191288276760354186120233610775123809563132283556703093375637029801713873540726642953861231880856445436046054566848885565073637602871198385945284109988597401592256767707315744985878181249710424600766847394467707001671144057951275074600107028125938951469428496152712320368630306492910094462065045430610472353716929779739286543122807619346593997064372387375749888657032096857378452701247850086879397974182149282072226920295277822927677446899705710981946506847108133172739380181615508407918920187351191600950854637981613989953203731860308600063135610323327518442338416311640437015497031274517983554673389006275649211214623889623872402020785133664741786043033681189688430408452918796866544089261133792873865024134097077997006618224966328946015376793453584038476617447690230567717967065217492806041205660991592043126670145925664053771564967961973477324603509688899869831276497459542898637444499795086074787739770025089241823411477512536202060101855275961359008771410825453202426161531601955093470652086615190472596105156058593962312643715204786766566625914699674018168529657334460975556249886779982031023838614599209286379039335506051286920129435904309016568765693158972521071119173413786532241721201338522587218378918949179174203243700887913553293921312585942550301944374322797808606805705119800188869467142652323639177023430305193269468767320204287098154933392898257736613117277252827307407826219427022219081413930819686390163762057249699162208225310985498543915220986675901298545781180363285627474512118057330203293851417759365460883328874155423361745136749414380608782273925204719598298263566957817859335511703073253891298706254724403671446828433110991145091331527380540429256733904802237725636138703747988093244002547853438493707452387736129142112309702395412981977579166127485013192340263940984860162256488727046858565318391166481025969917006130743062164109172745150142370765712234540175122081148329758116128358326424827487471491256607488384591747541019552035887851098655870894617962775880603714493516656095600061046616772606604427224196536103137784991162412817983359811558893955976437407542610108228351344184661566458297998646634273277599315831886027671083267748563815528856792115023550354813872950390401119067204746323115744498970204262081392709536281578752789826843083953422019597837735892869102002011240593453363011307747864582667976970335936052081285598143995975459491417757061903700831361611602106665565310562854068680910167621969228413365206142049924833333388058533874591544846572410640865777859283622568461771643051160357294424137570248353929683067580098673396796938841289102194734977499532737958836077745243024929953665974469742104974855167595887958903385787615128000744934794583807682707602330629684548588332280977342081790370962939229717300510275408801364815397535794273414493832420121229928114282305791276150377049397599365211888540201011225197657155386333885693381858934323805112246027541130917028919073074807161568989508250219878724005298168485621790115430280565911638053718682756628377153018451207785149902093034124322532151547610148912382910594463443647545877658157022001387446572855971655884068528792989379709390643508925017432463759261493629962396176261479204385010085360963890805009072701788578177376833910090588167247374537275021410582397732985175640797222703126914630557309670549028578342929832144312305686252516072108630934355237285772345027117406689082257838470999229292682059683934316507274860290817432548362630518394341645210829640882812089208765427370219705161519719566703543807363698845761440332398795017460985492774526601924852556357178958146663343155392302200324914244530198211544978940421033186616014975646561645768442479909090543963036671795390113953425185881833658101343195044971940867867998635959855158643823315045670995460839039768487206970109702436304637662936779640491701644912388807351261426191509974555760004500567932409375366785251170611673141576490931745356622034371511857765272617030166508117661252731480952252607953219014604138083216211269891531683766401602930973513468131271678920509898652468084645226879756764509117078880847158325519769052325527227201654377274939806653721063400254051854786995303385982492258712566952192514938465382711186702390081111842844521983054921670793096548758337645551806112816449654285370165626537652673007598581431600437386848672203535873326383322401698436203841115341150434583928671698367229596385200728200649697877969370835894634013767380800004040330198396601369757521065100750700634104856408611428495659724121604619824252005065422919706252294238098370496165053473969227944967577463051618427316963204658398637418270257110966029459858078717036740381599999668779213512647004050210134851901013211068746889017643010532600075619410520482820484681579288343001687012542903085048621293736886624080700803010437959070746119686563240464508332446964631458827467823963180349791134212564139615329728277427790721083664299140195113365806397723415711585058100991791698127724850095606904206331244032218794206168920635420608745382917719538314104695202428430931206800960086378937920553495714048219327758568133890391726741127643121372167490326741367467245745246702979412038639217227108686303539278891308172757611313080360440591257386715693301699466991891383506849010403763076227009760355894307310041460713773640509834626138227899228836567898135177679202589477643259762330757894744213594862983747786841376387637505409185345072644597570757308725930513848404492125595078422414608138093561239063636202796030591812825889668375166014385248869755170230745508166088962234121886717304411364326708362804622821539017919940211328090221536064247825937039867748865959781542022373900796760234018380413164097101818763254650986675672878907224647892756411273673777565082399721963167714470681109250026028052343610755167600207373085413399322395182602863708047598628974815972267827545781875278971140987944354914138437818771685193723412211923110483738269749399515009210351277469101494926712388548213111219399821228049739644352964005507480781000088621854106453393818082998227684619828337756697186604460277809148443161362054420389050112859928235309746126409132877980784740094197061439131149091666512103024864872838371349021447379711491260298498969587659703124057835667083646005890234685940171965108398759974244510682272386845901732593192186614729332354228236266798808460077466812979866779117523524777235411650183773965718883351719456985715080908220461158301006575568588686972138034914819132726497051906370034650662983762581437637278191538650697932247415078293503606304427272312246495748752069727462075888898574222292603922020478721983059251720983241164074617565198594383601739813976144980965542670628539101058363520635111407284214652630682972647375996523918147065113199276854853730096247975706706721922190788238556638346269178387770488702147337350948826368061116543909876520972953271071209612726630809715930109313348584351981559746339812703725592698742821791146303344585634073740524228975377086016734121560899365512157081982807271884137611432798245026730810912992348494247663479766501208388248800651936928522813622576625781003423785597578780161586801910444592072909999270978765450086323913780755244257845399281007983965157077159445367572883181515875121097864223283344381151851505058953147073823178794610535514144279749905973616626921339295134831623825730448799822557866845859473123981687023116956754665092613958685600268115059032681083113461770246610711379382351009307478952456653196937407315947699301362157796523720532449124899989000081157998857299755815777295664014819864920813622700549465823835290455477212071376191840880473674593002298626457353250308025828832183826661113702851331905648569803212860720006313210917315238371617918112360736135614880605845479364682550076820979648469200269266093816971957032106590923249771487643194800525942273120322409423764106713895953383715601205932567587568284310285657388801169099210963039847706430977010045143605384597833758875338395675946456467387198547857678384994224223362641509922670395055936763917867063451644301671035947534366429364479674180878851025020289092519625021203627150468504946616222159586780750473413750279683350376129464132665830244356175468387685692620941035696956621563750758690248512341454220280495287390185916204804400994153900356981825128806309561221586117219274984545727018744359826149316120425671612032227595406994632048140732353302856165986037648165735932657640836922176279045919867248308806267510667907266082013499316149759983050059267566873876734544805299785645198913526425275606139031545464318256063466094502712213095751966159123869011541430035780442265378171563371481037793949549147600244570029756183634243382492411805289556771246452058208350233467271427904258831313962694084379260855178134714633799571234530117051504831996452267142866377767646780432113301338108080673109262845784149151954813246293012336365794554575705585533876724724291040049247595649029928799976175362158477013724587628488939742444981487898118070073296802049669687484741066813842761975067708094914091226717166640674953876076854520791557558538840726700081905111578312631032634068570458616570406820895188574074383398627325686884316883312331845699961863838894093170246980361202986404702031468260631157634306678842188409912842822866510302488602514539382394738059924878584033940318171783697472079336807286548894254446694100046284297563760019697722614184897759878462593460159053793579736960182897397712459673571375233953024480764006498430862451050870920122936190795323868862141147618512256745342357282400975236484170177749457901555320690691103204243770740934121134594338548162143223432156319244906252866757156360791677296824215461806855785034040461835862694403334540251776701233018681824729396690140858933860645078683442933769443786590385034071714991946668680274098357241454080165945096675359786850023178355352338081409642961171432383749263440428470802939861614403788313170474225154953763158004329457920370405877097053027617391047112348984686500916327629995274369516952437589476538311649313046184584315628017007209888344904382897810811409036191255308356862394335488424293214977098869229979568265755597529373307595783417252101782438876116167608392203054277421430961392748541476994411924956861828833872271123608113704117726435081179010191014940611984550567481198322122211935764700547633633859747034932543918200450204789445189666096643125549939507398487303682021287125039735188938241472232254345667907097577116883230471035435643174477690185539321473628583265170376871421888756059786358827624615327913155280339939479404011365409888527651883566369252895161870027437578158214801319300876320030696740691142683868072557609306235459518151864941809198243786279991669987697754799229949544011551177026734971395625561874074561300371907509283020938431540540818673294997307429409260553684764818595270403334858741918031222117570590718754767805243936817378488313985171235000061063527991771071354366130716974246033784094899726698272642976301998233473066043711745738878943514210929250724397207576879300262714211014772003977336572200471367163391387015127483930024560023887473806224232260128459661722138030875835887647530248093822249298200425930963695099787365553601398539042422719127010286493265040867095923221406604054732610682319146047850689630109088057762097535440119118020398166969089008261542980794666564807892788855221163599312573133982204721457318991445516011710657912557777448298164923913163275935244638904418446086163226249100126021175649874217361618575233769661950748888399905531938474889757546851209979506984395300379602577249939572362904310517437032319204597451050987165350950208080518948098557431807711061866697446748979177570533557895930484818752999454967935796219940946129930254797650723539339666008220182476961338968851817867124019805511749983092074159339006081619080239931962596090659275276310789523652682824900032715150788201207173747652347952481334719314855469744248510157355338096454625116331114604670624586304638277534948157905969609071225039861307739794032267360286572042034907055985461164417987614279053277459318905963482454066840925723289549638922708147680408371799816848839398766526247327571897283268728324914419957299795044241020255288553098126876963501643381170238350889039063189740058327647762815887873530715230991840755560558054440126765920828151807529214169431223270986257918467075616235296561679228977206205217914924523003117958399724427722312416870071475914720539283019380545511936046338149281639263812708405191811426731663018174498576299740194297240208357127479199481931980974412785516501345906470879932310062730145276785324466006228811035261071912678571413334996275722353051578570892204736560134330060782956985105226153789840085520077693960690073100155000318142103730498057137146562466262170666089733600462300256329074735203178194503826684700547262372198950689465248222325696973057020797001669164984067987819315232057553758785184675187241701900030802774379009837707253941759388988159137103824306786615836189052522217810128639156875907760769402378177590959698578142403109670845319238034479143446931744331342635902255337138504283037685885702090522067179393167525470781581910793751851771316263187292673733959606973706372836300267975828984930638394587750711296767741786290284555494798514277039120289125330224946598281197231657177745723266269905134752523845182162399888060175637622438818883802022239432781224204560603546840812127858825308430442453301547277828781992566949463076335532809162936795814247069696344027492299529141467927865526922243889179818300085275187589215459364510870109433724532949023925410933493407942179586590042718906116294102959531003753248377241337434068983011670456061600390108858950655352942071841204597171401433506711903206166657340152062772158392379199483998307434351009466955327590844552264764510825168435415317800232639201717038607459901822899306393096738068972387205211451471793000029275967431180755986012709966194752451673370963482683372874481283493080531921632090505676308117135717011697229557381253722941952518284614093708747540508684899784691604021170544711917838503657246371735117645996367512809839676947489652530709569340913025997407535755197190169435617287762814988332580399997715997790907030439955121263333163763265848750706306493530625104654716953609449888569285697402449324508232192062852335558157078485721635930188493748280045312362452504995141097782343152339765096697528570014551424764109333710415293148625759087051248809933254447174812912541241075852041040732673949471668027334298318088953052990064882254548842975828089102301009939528697545060323869565915116729871905126852344455363299495196481396061086942577926071875457354666014426227665381371798092968530683461119766987360868333053561673908264469708807624729287718177106249906770791159611289127394498526944811360708652430512705964668817521183478725442493960563521913232659469774351517795612064777927158987272968425605781308838595890859543566205436389142527478015936212230079617910521514867040802404864729980071240549481863315605790841430190539669802650655132461233380915093997888935253627501567042856231782424438238129556183475802404550106189005345353855342849055131290606905326762969717612374967652403469436194321373915622128548535667075683999086671411782090484040943874981754115677284473082200934013901783188594823393054550604281010301907450472963646739620247192751766325326081176516662110720771410524827547328891810527161217029161902133614755474025979381750636569337070070929685418750601619163308854127580678429339748806251121371606096774126088820151087446148834228842454188805304248808845428287741361053358636355546216995794900459105320771650548900823401032815471036975135745997181450773757312506058360579039674029981740118974642039050605914498676415500011257142322454447952332571702323559344771603992379058776603141064097771567027990324818290586905699288430242268615933265818873049566101643716170284003725142116524864590160599468116899480008924693998131828188724201064030546093181222342600556828538681932162442173352332761618258320046825576932912751504089092630992827373450491136822365009990226746013824400957235355177590408281966214351304255601849989305168930295804958635243112726522315040810043235720718976536920457697139660857847376540642215645477259953015486545037579972610787826469515821684933782693264094996341916644940537844958263084526358093970334929466221673990961395112562504366604972696574120957470489023778135675950707946065158170796511047221477994715110982979712928550804521247078153465450687542523547456289813434608393188377184478588443340598215865852482513408590247759061803580319695520834837074115469756907150667942459852468252849603680319941857480855035026302156567034412013264956012949406766665883794115710636415470311793311877386016290765383401978542685941913613520030935597565892731003849738723583137968449763156150253048783000536115163570357853102004340854247075939472199025293031469362979804208764988555224000443246263358055869261852728564844135694496143345645136640190551013642694613526391040702995006314784962722331381835958602957066543043545661819433733343177797832392124185138946609143855714409283151973664842649311285516808655805690767338835924615144858113078872267274256749028749685259895838300589475893837664921105852895850052177368384994859175808407543055454809494071724833794326905932221457289194141721137923695000579679850296190699836763861383992945924245507991026110620525139858697700785011131568024949377217789101922752034242929926571242822335459137283320694482119746602860085756864169537201961122885361718012991433974768165156679228097198620084632096104001151808860777706856756328152318294084656411625748177306719261598039927733849953881044447936430880469991037914725684373485253119424231720355451897140574466865530780604916635106847157518781555916811927404310048728920248205581501415880234847053647074682229174943352326433048298894237228190493849043716605098876830178749876243530563571513348010487013268617599322000945922612760568322665679167172277881699437146788805983738505272613262452805237255262705405638150271584844511892553432025158499078400774935903984243852510862983984579258737740762404932201087064283250291402267237524311418496513668240707109473630349792409104691221821220238174278837677184347326449374122742838784241269285684751263341156188577649078499138777830693504199653649232447800211954150813908693900974111717633757422495298766252506903460883324766527383535136027987316094781273857784238143618442083718950004451333477383131443208410055254836026403614226318563835951212442115602620216858359570663552232620694554901206729896231937088027716461365376090655145131210768841787398654295985190786810716551810026116934913347963413904874319301155079569745314105656670186991717870930795112256474124123702999864349082725622839622972677264403607205282889199641765760458155484458527716361755012681810791668941678421739707284768086791275241858232212833309235094388032493584968338280903602206900334910356578469469323796177550293090891784643481917442627150562246972965948714828004288758129986800146874677013773080237516940639266145821450692841594568463350743530775210579161672495065765059034440916592586217918039333183511900764560136542656720798429593763966107421467170591436192316334051804781704979975669895560723097404190752992385273354424449432392669417171244274584996424257267574526560854156161121406757793250079245024666225525918880319619311856670120858574507000971922856488154385601127474010565356435450583040885673597717587147373626001696962441200499924300687668064122849112038473751535204041296735684757478684231535216353310831619600000481804128026818445152844640440897754133906135169152897369855236820097078010709349907610110594968426333494872454827766666251225215682324010769634941923730931650937159507148245738854747103188270490173499937313807769368871586540846659089054288890982241951235969196716387852925851186693756554146910613921290651135985453732262098488567316312962658971803805553632117825242002424228278574660894118360611029960655236166570837323761561223084034147884486567743014462925361808195380058405896567847353822723840053009763255362985811576811338093317872604584907656477229248884102223704909343749807896802764724471678611267966991544496751113854759632140512843909006333914748446509347216101707340573829702311686024095707606675138104858168154271324365102266324835889795395466675281494147942407811132757965038525773466272137876775987141140134549735989820643912755525803328756291670111561591280599885161555153800009434637019866565897695968880922084073850625463927924729381508405527987920440760078972228594736699990114961859230429530185821618953796642453287912972256488655858393149893526927390250394674242374544054034819808102849164777190754517736146455292841705722106602485533534614429275130467236143911512195991668230396367226745626504638178857213300237710264057406274494411765812192783946667357334914977134617301305867384987229110233802339296911042467949876361535766700071827976118228123121106730789802804896978507388479217090310274509725608080645851606640735900178293301447655426744825621164338938076951438844408308969850485708599507025977701071982015279647030400183115380857648665841968968266470407243260288658311610729697811663801430269826140948447717981096171606954655212245881576690130001882987331742558767836291840960572644073935735636118809184542374916963061362128297024147635402612805652297853397890435067516778631410091132845558988945938066030041457749454285539609665696930030125352055138305100882870903946431939841034333983132171535512286871138498834538704445465411425623875893105195643399524005757565537176986783042835098168166506383493337315952129880420893565830174705373706275121384986731400894310584180133129117763899358172884549724130497939361297589645806886735143373192186739172487134036006962097692023296629528164513112365957451787009698724002574008240245274144260012550647644220571127543743197610830574111753340110281771307636925339152163586450661569745328294096616183178808284352579071642685555042327990213645868024227312651097354206702485712142897271495745028282685725024050844821128311405057295406696596642486486508713326407791895860168941628151740105934515717067392214898924795524773871976746202832380796493789694605611792182376499274324268068660080026243784368231517692216484294672857416773426793957733611142091592224825870012717752726890195708118123902718312985370780904558636468128039109906786050327602443694145793576453959660764924589078234115403008111614554006394169868447447496210444897986290672206815740585119782193879541374710031389094713416591107636429580995600375094813662285806755217750275596339025855133155848759480214301036687952273158526074408147779115916545501013705616064167841977950637450933054903385915541170450129920784946704126749728219391282147279470788616682983510660665253869121330551673707693684123517573381463892667440659367507135300799953692701500428377081662373986972716778706892730122480868501119029768957385198339135490167862797164296256019233700293808863021045704977680745549772085111618970006418110352948213501543596909501572789732131387379355825451308680439186978237177533474097639069545343037135176559839936638035068545593231262850296609370104031409409319273075097389396156156597437966311848267824447773139953278043935179037634550502328434326861773088214673473749992932599418062461304992106969089716008502820400070464937374733175869091544537660729580314064626973293828152784286756298678508707157052092590938126447810471630953749753157282483807622069322436331224308258172060500122128110257125781911366450111141926339269161545095861110169058590493003384306345603000870673572558961284598537376067197935922535036170116812435004250345161279605276022765397987359131146672015524834169962630317938193680638727765794818340909187533926184072187095909384404054028894202541067304160035257499817432367014663079159822937555989982144391681761556634600604498297764018025155572738769984238674961384725238155144089766890920792313446119273402694863430604179125322395468292231565517985678815871598901296089886960480166885150968010322228010051174637372629500791633862858444123221646597417148174220349394271406695585721818351089302882982565733850857250510905281465698736644593379483070479970378852880506785191465049484580662081721828294875390898243432511436535215561673890580551070306803637322441288838683695143400641328092448191750919088352421947730885751255163662168993441929216896172343825152299179161254858950778037118667687273530324960431778824417446181806772364611222234032696272330436639623936137522843864131593917680612169066847068501142960618499711463395956111162188378461354472988447975387243274738701685059785944220309124856549373627364102633017526421426295168659060991622328770030370164344446385392951575342344760280906222242048295164154280772764404752290216636317520479489843122144002418130127999331701657247507467113149189736932064905662064874179532508812137365144374992684563730527339659533654724584066312405680746496425480917922888766398557018903045492340313434700981849822841312271936177612303372931220690683820487953332373183364849520623986564331352443215983437506300089035149842498551245669683975238842299654306259818926484103083477995379720743673061090657719404839229709372428270402452120599453385974496884624787141947451227306403733618649859076880669900493548951446383788031834335942368129051659347399839114148638684769491131753812730530491827809155315430779005686631334251109559788071551975761449130893593563286323229467009871163180522298356217258684699067857095231726704163107111059689173373098747347305835983117417287740622163519129988578491347499442369236598191809389167273716864085691899022320277994003983402527867053375192722783258787443342163212910076096793705879160507381329241810300120048156376853778184172799204801533419146741498779648547615605862446054901425602698120870344983875102432688328273051332762299074030089166307868699651441659409578532270890349316745937075276827311464511355207443303158098203323957869340619114079243219004803309960243748959049161676009934386139802756812515528180572642847678455243992787389560557732604849512320324715810478539182804584114084526681055670336117318009384573832344676516389259228984899848887551488258998494383231732435883689922213013092662797109728484266180925195618067316853550461292537987657610651191781899424758666607698212293253430950211690728407266537720934505592916973181080810835873021485479417316106910809208844792087502002681019128283913537067504382451532277254696124008592565220327122221910586481934753004532042594224194338983056518112932235014775562388539257284625986977343428567763492188949002092586111396649249006868814251590267166341581494586625273801043141472733404083434623929939103223226308472545411479532570171853703469432396103374315094513328394716967324121546592182766790204962974530218475624137284623451504145312814823983196140322891997712965543317882736185069776883844593059430239574951025111766996246697604972844072988797182652992756247780582383085070251604704556085371303631405830845211650533882724784771793768320831731826285150476032333306474922155368987758043560775177220334728230922076473047610573959783672370948698777797618530210807965530844728996535779624325549000519312996656691636751956546093739102010970534557863231583638408250275629883624145327746563737747112775250101535619700734652938663996394560916544505099228024756368385232628967204234327804611963154390453723827796742025863634473110905566088600853459767546440726592049783592666620889674746390805026139417902989946687488396159941556183094514467049547732151998643619332588773549707680423455329357680065252223419138988822776766838122617517831601789464772858505922614922693249368298344011908721042163509664910813767807264659411724653540724933838839269871959927700704695911037599124662727063295712325917796304488761729364826391302588551615417242085428916523309802035820607563052613705145655544783384383012821242933237801415399106177464611586946367055739349545882537994577091938947717998168757173702283641214350028905312960599151196907717633599214243299732001683834870428759582604881786941720353076572805850281111405117324677385192908757871934551760171473487712527157857028463304479154190800071816790250411029041127417437662789904385173147676134218627460101529553899062169757279875482431934978352729426872211681603801553377413581359646886616209904808040711681517794103680309442193100834041189031825917394965580628102014438155785432617274395040766664512394035545256283118384228826321360168449719110217776705464870994468454900969314235666956402597228769738198162176873344753278517209052832943007301166985107200930493849432708538781701743479633542659262817168694728836411383469179332369740700625201462086852174959847789148457483437610607071451120750308492244502951415854110920461535080437595207957139423316565625204027263189089889907041395613058965286634270655909691302262341689250764959612427349468363113698120266187875449164779383608869243230554561545350941343245134839812055166882302884239106546662653888582412798734735217862065320917600762409457017677886491331943252899097861440516525692090697998022064867058666829318883595274107217984294158192292795426758827672704008409062189710798728861242500799013387655949141632453423682914926010544602099850987289203259340544053896446411903611292554083915696373803552944104737004138168455594913815856015287864011109827047189353880248148246636767253385493809952252821663175241423028978406451427587632325028949562832630165880913994936734360493444012980347302072521404018481516748804037444999544394574384332342742269181521181878472262221853224280272387804753203271122986155059506922697083143544926672129781351535853749345303756435605264685559407905634224367585434656345711837936349212641828897768182483116465218630857893870974765118997992822753580307994054531526089400264258176405178629478096595744978590351514517815742683824901896380962023732105768363824543339430206235102317132158311606393810161045775360962878803483204317824079964492713551396081443742254659551712746805116397252253192529589147859759293186251496276653161161070598931655726804074850922766546563740847503370948092165552519272625335945752069488014893256657508244719223994681001112048108443791500502378682682577553310618864336691188094666397923594301286287074951923543175697914285364754641282696596124216010083284530759661594489688079232035265211159931855457806370840690983059318287924407905769181558371400644136702838300899732959228299967969763539274395440992141739421613204852558352290652770965949091230141600288217630813079302934657534366484746685873711834497023037024019699528995968221009288981797242846081234096119107080166967226664330560981534468822999941170917104513994037708234420889779690085207444431159990238969039536045778182086719946189444489598286723915847540938472892322527679173019390130654861927290725007448328682884670853508850722907219105985736538511326021473438058126422239821700768308646135337256958199808134255043185980857029047216918211812504253575785018283839103385009994377298279654981099525434606183881043003105893741340604212863024123217556039051525603879541172082524813639113159139184644966698546141592431301718005158848875003335896340605566830352331918616910616467076615425733754196417948479483016283041803783922257292461575389233836522381112619534845798011137677693448388493281592374501342277949480251353361985275876586725661313133142837178347938012629006350049312060627434865235152998556029112225090444490896731551155306176330877886911938227815115320226523569553474657393424931173501313500675417735565482521599008755950657537021314248461311309127436620772566449375587392518635445965588461491345134943426748358636857610315757579252969984292722840690473569548305837085974188702587987601416616668803211666391355633633378048752941385832271853295507777873791526477929586830094027966664683022911065114311281425012886549000027852835303207327628832035931539062587625078410229932237258650195243314696586288401799851874588415286556248324330922028255106142679121688112549006689841785488187609333092643885516835816761673851509674555362520319191355632147565928616432326477191569303852211626021452207625233419422565632007348755622714403558499349909305631208957044734642266398506598989719251822658911970859086390862101591537575669613413627769825137109683252423816044589434749878048006163760452623126456570858473248951025821069493340963252894363290900732190813308830322824006311784165192162368284679951269285268410522643225929091729244702497668145682321288755171424873228441725197186301682180983731897584835663979240813729576325604196893170935158338717856725414732785605339358805258624378893033004379960471281288697185624686978665859317950800411505769475294661311773124612827551551615278527924205287937809224417661383868428142940979594840165635730522212697503085404744314601562564304350140946416939702849623958944104866577194973311107246631765814988449001512839142047951609143690041036801264041391458066758674293469100737954538213297977308703204859465941110567743658119082942864007285582335057932875137613112322501661314595685662389685368088218169720348195029573763988597244056381921768316914853682258516554771437994106251265947091149596107458443033425269455274275026744589396022919349143936457943508353017035652197732062119851316210470563379526504996526527372709390246740714617058432083806009731913024120026390084813993298199905954862990503706451717897742159393032392462583033848686242758185735879903380765766568607134085364792797133212267304905848261389061501997846633155457432856102198891353039427189563714001105301552478066832747215701797188685480462603312311505804007429469303027317309279227169141738621853255896289667277801060805101764813159073114062931794201078968318317279650954420000628295384172479459244975561164604361984872281351684504148769296099185314794543376923724915355893421727242741014973482504744177156134986648290028332671176055902847880572072137998091564450865216412056132735344376756227538063348168732561694976348973468482468081330964510210842951885266316545400064741677424119809487711390884343180128430629269478705859109643554401940668326939594603436373607994235810194186714297716767254721069426828638161616983611007067381842648457394346818569700123140962838808852765573334037956327038667390609721683299565654196045142792576431173455510025968309029570684521194386076894706608743979113537695504182478817540103675043689807675128876576074043789439931611795877477523074176082738633357961615159634316297580572410286141715751242230779623114629611735561030015678321443048091683808965769765823836099901688341440447685447108050928277029579980890901549012066754731648805219561001112182872005959012849722225849098235841485714752394097309537578546151557590203946939214605213901002097032653604297175281101616440321386684983021705887332169009565335318358289374796005288480102523890727081399248470350636898344862666402032358701117526180498087620900007663703757660726504582818063608778672623624355215294138347796108634437940985457351783053345959380475696745166983111117355783655022575252543821508302800520756844977819981033048284532936374936597561545749442466171139988042606102885094168820025215525183745927534917991521871469186238669102946295899803208586751411654303493259926248014204273776088176726725262334696509289668053784350397738269321033878851231030298524943707867693708821097220881547167381364354124340505672817812411343223066030635492328091821372214345084505069855261149060956652326932377537049203103977156929669684868294455811054755291841039619476077030881575635385605617169923788615673252150822852793161211575619745864646607008477059972375172050888342413697842815115994142158618488530612178176252473574967047511870880531669145535587558380562324546566394124536498675658479258699378532735640607886853135475287865831270429565452808834730031802001665048647813925014405631398231550013705949159756309874302104516393321640366877260124905910083994997659746878974818071499591026985655187033059259000839406129371956501648724743379260943291512677460819995436321060398582652866977858333831259139811631419575674606195921126009692397745182417100909903243342438585076317179775862238590722431799015769986091714383263176792885458004528083272538448368032184672011237121956816120133162360637982216811935306755798970384827650896359446076824461636713047155808651739454081451857079023134174509497203390187347021148047601898289870881832329893010719928437548680303029512637602472671469201087656128192210918075590396010212363199963400204756883591585521949761423182704320643356945072978884920125651330551275652043234475478998260324540116714839620032239923471089985185466509711112569893654437738852231048765184889581746582679359634014930890784248758134374685748179083714536758262831336034069455059812670941733725254572824112597250117971333498608236960471828696850067086486265841986659825970143445344758484466352553383512798571344924631107025120290235934602488834591213221530039371510581141878804041851985631176398370273879252438727013150548666927436360493029941827674403878256438053161482278397497691658486384865951006557268691316209911789431414200772481075464208577831134718742528780754879540954947232711589488656217610805755244271821178615896808974749787202656472860463541326580209601078565954138380595654919242590861059164920103557522901755482285705654695021608001673841067625920393415713060269612833013261265945770007443927627673678947585098982431372742821634263329098371879536377458343727622741628059519843511274666105984511307227321509404390013026643421013946807351730444660871320730900781287749796501862735411337536792126815884420244419993296012957408205797042317766864097146522607647290165152778986290645281701991717630270023959538957419240260131052168455523375101010702117372230446380988954151771838018712742869786028450521560686271340802946299950228144787970974032767795105863760135762336058518767757025267461236282297828089617198858179930468308214618907039328704634842751986135698977171972234807382725293407175217629304666897318317473020711089424661446784020074069007823307517079821015367978143460578121522430812759144839313649079377506509280495073265970081187392578348736061899468260383697882693448533153125891175430938321213562433862965000190537379141693776527983546274985208283552510803008794317527650424722859958997406053274304706118443333903081325520692189498699529570378357811441577944297243431369387807334708146657758776329400110663468388733711006208685973715960188216349792324263580880855539431558542914160838106145987096982018747855692697416186109026316063925033873976630386376640459421238230956804912999947670450245730382392885753809841807354346850634156427432186178110931532490620161970678030542201545628624398473119974509280768776088228157936963711681107699098131490246512559057419888287240392435710698275731743582904655367704908243778905051085466788824063908587330493385939251876734093949457681910308659217293692827324263856703765428892248926674863121769328468592083710801355891584692558195691026533663254702515448320095925181883170246168714946223496885991527636625278583969792186440246796013350782428100264304301227925283231407762641040008662298573387545455017700915964837645810191014017348621592953866371430387502572222914829216549850374414949195154209102292876311171928429679320062412898084775050323785868360944180608719386898036755594269190665549729803918383350429946231450930988244876461605156061381137600833745790651503424951057459985391983079504678514422701047178316537832521831400278946045735937561487208110781801920438393426079445485660386743037037826338221470648194083723742671892623149104757446159387309583864793083045087069839560241121806727166662122588252811675117134531820719577472637044195549917032126365215391440706550163386825988171602571766586051007169902341482849945891606088577997949500251314845092213730957191027339326715010187635089256447610499704539756990247802824131763281981738468360319788510781269523079070878408786905730627459629382123487804872402605534284924021434647329645703403059677857701207404664483344602151092276419075999505958725160331436047391760692964249621702177630978200609900812293841872999315757882136759916020130260090905062081575254912035765056043616612191471316910925825379206850299826733823451561645945996717109614362811342585554005040994332165027782372753048782204720666045462857827605296685654220506519812737710497303073665818650912479689365024212188806848513944640005497777591453863357273889790080362167492487807985271561367007215249124415857555664874608709519181168440605550828580465387249338422170672878240424798322748151882813535188205139656457935251934121298726969074933170131610237397455038671063852104010361677407068389384149423631620030933793646780896420998039226111946801220530854507603821267296292536334726342043030291953640566681594644579593907749466408462218821164228271616128517155549870918548649955942367484049582370067959029117281188149259668775368145271242790410208014252279105465525421192809577580844601442821172077803408763776659279087701647096481396770851675624075595434951689354321131006525224881033796056414944454592124008058576604798179501581622263130148443096287676738719266700244395630877606996351814364838766083701075690153622655482711320881236430816952930349316702647287658159252376235596683813645771866924184664004065475627770616706076730497446534260250265948200189317684739707854858036439136974029442136609069419535863667296527941199061891240627379942069564077498408839910535947363623960123565165794990689031431150095798745208657072351781382121190553020862898521501489293676385510725500890721183614291437867320723951128386900846761841692122312776282478079912858160172058313422768876913629183634103668050232530160535995579313477720270374675067869921397407653796624866340299816671347967203217945346057473909294900993838810388567293138962287264920896800734217317203924143800580069109801455680469233478250469783071037974281863572631342315934704917643850771735517597272261760518813414923961513434696695003369964985727926749849905625975932627378870060691163591508683483547484165379367427959841667413286544038043860635511731682082609456920416069362891623298816369423066369633850004824397142401905147396264277725594615043364298341124121982425746778254431156674506497642507116424148238394763305643659832478160634131508111165484269504826563503888023332725432235909329557945935047235036308607363738734670799691503653282230399898853676580535976953452421515835976412019950392641238816355646582210906945759771062333484620859119524961831208044667641658058302167701454416250163916240707449221145497626724549464125938543469962015228080524453116702209055583692062723917198325820599191132843023035529157970890127888177469200699345678135861243617464334240583048933801494273611517140294576689931708024373823134616761767708419871579261421421243949703183593201408292466190727597292909288490153807952381150782126048786882655297657299501921850279306734814152986068564414286185020611259413561783637429099478902469816519175643753924579991021532504162322622264267075969232532414023303781708274714431982667959761544324185798197779371699762177416322644295419561129249026972299436876904962913559436016812933143881443123804088388501641451299028418904372765838550268728642175968866344866708195629505502557444575762859111840260059267958138641938674889064756540351497333920835142258936062892484435358512011641534101549041264500388804978673366934133980592033684871610183221873957271944454471614289123804876277680592823298352730434403853075316000255572545541685208803305408899605056718524912121977729367578636251577906844802209485451581007189629959260430227038554611783561114691086141021510444853846575293094223719665125969368687896996944264495393510662012503560885704417475728223730919802129533473026474193051897810165859272780834557519239260753909296888191416618423220260618163569513598544007936345488527697774438902844068923179981704048846364072558468611388007172912119454720563532896151040942188545674159529644965980645407033092378078862060245285705146707648004246490255971034527820956181532201411900643414886358999169503265884435750397760855138542677227066808071591955102805591561896741511031987202531880482396187428337239308624957508142424263368648285602249787571666088445283338740848402390842735307743274659057449288765588118930859972154116445515959376956920944556371722565637785981882674220991480068171167686214543353701910547549513515271197067129395771531419881863537595327238212897882748319862211900032232756963720781561658886675252193232022505267543263007112796897664004006420492169969252664982745235146993373454444520380496498421185457274276541230396434168057686665430365013193318912516246322873215254450143660948733735630404195667275007709058710468371916644603220674171313595184897715307151207321938243659869304738868133487128552098770071403047761141562835549402945830062374373039868962031117857116424108282635944034662005424436591896237764317240199517656568664810692178937599929030779757216714569186051008986620376044991408804104415262555398597681839687693383253895329675067051155695640446210841345501632327396289530656275398983740049812814174961334020702271110325730435707281387106638596677668540253120381538642843771581485566059084902151453234333468475056248544193454766740852387494509964700640788099692112175602337331033649708103643357362421793178078232322224386754101636967088869334730394056437288900238997630795870350763447220150606595724279434889972144469858078258665364774028941567771851688290299840564990816174916659267574032033254625626652667818281959778710643932944644404962624139576068752610297876975060474283515262766223192314923786952228117841752525876040771973364030300349504395046764048025105031703197649649602327063130584236434196257115087476959111684458910337983616786890035888781635665873889274273688209959971907127908288441345607097678246387739705348596675650798871821165128562140128685414054716322783391558085613263053484211178196835953744696158950357449498821876152084819044957588927668247355660830416914795768248244047592420888996143902198094412245551148338057672278232535014568675017738104569085953181007587937916792036886055460632910826096363740654978224678364502440611513624297346009532016874628965341256175280824416965990814903339463346526838735202935641809757119829450627684827600496660814245595859112696913011677338180263974883561249560177921377793090689433887009607339400183883220834726214615995408944844147662706520699411182818360693935294646772428081125184586689835031473338785884380941616991668696664716955640662694768009396218050019606608484418689909794811676960281067321295302039309081257786148619276441571312322730139012503219305034444537331156518343341336467865793953190399168274600650747349277769445130950066178339607359173859559446125356441890610608088226246537491229072737515247404729408849693312159952330227066546848792183269434718629931961834108962441230230806538156938364397486458272893289022070622848517358068453809943699070107322214996741938523269021364069288757957584320127777347832961059694403982040197791383351525559928167507788362599306312997907280058716039444231053527592038975498756915753510418223721295373650956686061634554409083012736382719835063854177843585589482113990825593112204680090014367680879835580013097830657226476883099785020202677061249665723796546852013740969980941884745354849817602705375334260888228088658826055023550797475061019073438850355494942304375908301130209734780613467724044260251140106072200649792611505536464002916556312171116508981350424795954698396701676145020310948336558794964702511893181151994154036964285200133365784103519696094203865437805008757066390247165941995952402367473879348771793026561726365659468145854846035171704269460770401141129417712538976501391451519113377716255533308296084935954703492372779839320599558042879136094503245229172455014248047930191940154846723756270429296978955004882026286344756516740587133064482943736716014290723214541016271606352006556130638424461416591593211480868901186882882749543702275543259865439288533686324844508427329348127556376839467720454665434639115783443383975007668523531001955457240711786061220451840366777467209775430568743522434296890780923105539176776879092483749303776736094007074898386060170747730639625274850162501110563528288622020499530323462393273106544135720522999217243129847120942723574477152601774677239438133640582019126682998032183019488068066809571477339399652026106095124255621907362232318016916518523429581287893262706444031128763756936348462231342655536301408950179602616674046095862623347229728690220633010979655292221494173869999557026129525694673896631550496463007740242798770924133857132707823452271015214012242178847125055600325032758319851444483440907430421316607375424000301927455175104481977444543947483121256309085472402944083960525118648046206144515043538616903252832689691996751438994081537730077123724919435125388431263033269871912326298513986095088096997536941330309151748748727877276032774268163951778569095781865442494179208199954230880915930761980851698177416661763201937394313603907218199299858119880299189608440744869277370776223458212543720411424431676073153660396685357209857680944571334904627008673071208402125188374568345645646055129090046324562735456096829076093734864574286365764747579398031228229082512895176369981387671241708531190509068944261436733881635453150832708950106895745754397393867844700504268195838749493018146789496236317303706731402048304563612428807908564774037711779985806486116401996525180322063281360081958292281586006599242133099491007810376245215657836853562449512485587669225022021766791521034327766071420953274342713338237976231819295650554568096870898636607352642480629455760895742581963386859488169603754144091082641285669141783017435899131809053554817625386555178313219805536235438250369435876043961294631214492025545312431703544185129180516721404185288667249735842127869777067251216021815959012922515205821141000374769256646548524347309387106841321265869201449408806844065907465029459184715550297499610765172090950776730109859575304115895380137982576497700748328126847558431238713672119899675575863783508862045219213970726130222980137008905439307577934190825803429629930998692336941877982206073306241138367690375344785264196198762908339256930112397716388013375233773396255793385732514660560654697811619302112291349748198623305346379192058325135799902639766399074826206371405465430899298055723584107033210258797415479164980314263225109917124783446375390713734379628379283248963249673697147339704905654261940418916273420836338434916002935481137065071313904437925684468433484305290665053530015372745801508363161671543780635620704710716105159128554890329487157861393517700205845263630993788036813745132103686499341498617272727496846713353306000362506622453113039707534548375892699448498857403136376500778653347581883861151184876614250631515029309882691141231995561168209267646514614559796834401376374161402447973979532657572089674481218827686066998785375323819247673259299044632612897826935218392958018773426893382476498582253273549626553954356966936612913134405436771589940558328908704784195954187064652568467994686907347571050580274486385199141260683066240586976141070786619579394239019400081365934182482257688375778165395866292254837830217983229100865361810894072520483679540179650007142265855895823202204679432494315867413741768918165685108617367709926736110670225933375453632730036676414460872424108404113668273280867592392477646023997764075156124875092915474823375881316166827579218782878853566687046167426239397137572084607609672953820783767191648184703180880343574784074986169273830482622611275305219013939844121044423558586865363340326122311234531062149587355066461765471200769923231025170337984867869550317543726514598530562700643701032005872111808647218335494290813032033543602550547908290379100066420459274443949754381063011749521717554914147838938618586350807635828575516610472012342822271503246390991514688515952937379233272268903085483450336599040424938116020647024603231131434503253194259249507560716442092292860530342707419436311701375418429319343059439942923948430347779104018299648088156190670340740943565894595819924036062215683926126525444997694016223486913534139580433080838753923400133462054720620900604141773831864788758874542171948553325885258310801417431351381199743945398992183827343648801810193310971921182578598310512120826116172598765598123445807322832885347110243308701759790929306319981794539700293262932369950395607428223052601431335316927985286272195360442743965879562749297088447192390005407419828117943529452919827518326308674332000223324906640352006950198645736417521242479834090869973017432469036168576661500945588966441962709932802538635306031795176713229146082033341647408668089539281155237893692759218905323687408175662814275887424902522930465325595450374748687436642157144291872343098550357114511392600082360540402681480447354358859382374877742941963025939083942042434008072534954705053487440700232198481030643152178510034649142521610066092582706718549182962237910531377351884544111737803757958031137751908487210016433854199947782184064818871246484869470411660317406118200491147447628872835131688629113182930277686885171851654508803425062473286136793484387979208211874758266940468354412847751057826872069435235857164624739552538104932006828633119214682201793694855634988262676299494133294211587907659035664824688120908727547198097322284375320718380031068918793513634056435581864111436946461329936797749956123621665420038671890294778863027020172851664562450419649886446200056518981972812006702361550827871225324791732395292268567590740338043404376523996751173111048003261652694526511109293265899775794259198457247832894059352887814026574650981133353182017483407123425466539382386672008016743183349884269552123563508507631609323674412401292195670927732799759583981029496998220202008247340718918296984720502074566605356309981882732990372723834002863435409818975883956408328024916795929769381160012532725428006844281083230655787266585421255887728165536218926581992275823892047197445529390277567158368334033320611187138359889738592634873379036958188789059355588877338389924927073483572896152589604912148503478939960507055084773884134329898271914204500773196601481176547255034688580757990610150113020858802501228341325065326954020354731203519547955411436364658982697402551598494860112131732777713210360706712431593858705911392869557552298281040507180649201786770341462231052339959911734665220018540828635835159033234587994548016627319824853798805717499289907139709789449864770646084954404260897549075381793585284430514318642974303786477160326645585841185404258394373885487532251801174474985520531037202387311192980670094740780056416572874009819269673706181698862832121654335000359632836894680622953041513541223606256604253044222278574331671373835527640588070396844414694640435867180880065419522526758762056504919082548480006581078308745321581290757469617293706352110368522853520016650073171387861855770371369136147699671564059375488765754652758210428357356873336973712238853690718120799876201771744115515069886509761057273941588898349312998235242635863526495517831323212909777100667311678040509078854534648339097488367453391841442969869625078013196996636122025182915482770451772031774180668869600005502101701422967342569173003024419694291997963773959884757314631140414147752447771724312211418708099944082794078043515753028391536809458105787809067930279649624992175429305411743043043665467408746404080388249788775362714055118869225026225616749371864798970960961342314566943452213112843370839683235132150920220319014613733408465323209110599943356105317986547847832393611250301944527115013692512475043915836349171700281409867355339719738190000212371350534259199750181375767109998831372323043839686782316449160682297386343801869066622731926109007882886247475386451458460269917495149358147098420134026722649321424357974308751320965884759875775409350565124526102753918145796119535097809413925472420733971582425463836851329701100900847222972655417813128690891481387535029965207469389424619277426916786807056595110829024033978587120251135396145234394648540250937397009555203878293855216834640610463677187097652221859790112520776879267315973276584975082342904519735577317285526610778096513305413623808860205951705187759413821947490326939547721879535134726267734539915892473453943633957454189671334998215679370479816091815837108784962418788551439143562381004817539505309877771508696919050137969840566099971313141878244768159975393077629640744276860013265635766012705984321786886634463670665880208747567820111492241767057386981411433919470676845541975216556739055004230836649324617532272996829913711008218744101954703917306934558529841398529334950297487744380567684118301946998818383825131433952910154222054144603150401468941306955009033155237356317971591295171058965187612941533004905079335168543929353463069279995417467516028926427338774072540364498223411269356875138712112310457736183167171598272928938608228251253702511686771008957987284399819491236173882744155757392797331410326036943325315682938629122710047659510462127272960752439120504498919261439277425967277341969558292502852520982115031996268272370018399353439802245972453506942695341491503978960177028062574679989999276170310101108081680851001855435490156791293963787573743362075062738500686889657997683827214472376254872158526421552316953035299695971744888757654061198732394979148353734545639574325725772250766222038052570391120049446802132411375600520898978727061009954159645425945317296397778835550575711133359738733046654972690841008609555613729984773257371631311981356081543952987360427268893782173713905384823901245519792597954998969486792427839702930690678114102542767986310621586797818162413886061942322158467412843712269183100369779449342907181829436790353634681689921179302866576495283471505923194450796797629722997848555241440229808712252219456027640736470231755074149980587732750047951149629923448931601512146824568815524727518540669811634523827713040839579825408275129148987997147277768096382562000479771152004730179223146962741178448011315194739719348003845749875477995383711847922951163105288157800338317947224145176458159065626159940257108808313975273745165634409944005304140719933809858317967022567478627277788467817797626318911163732971751500146315358475952309513722491930417039637780849806570659800794009632892995772572987414225766784323923385028801192770458589296988080804229908029174330211295917725206537854303404295164503565377184895881983367681301026990700154150638327028940769934096882856768050778558301460972135690195447360469417253326582570684965250050018964433979935999289844813426218258467391304052157290500027116628208622473824651885667825819518720288531435745089934317520405575878030556715913248461539272730539172665300298432253633137370464084288987151794511610716135412164523099175644343336096958795045769573627430663021978931136542233216277220004786409467246542401505074141250015526185498976081377470002774987446380046109183610983655730571199427897530436839564085029118433717495666685280714049081162387236429837063421385457431647848776050329179123201995413000509463978059399220500716368038226425564469989112647469109284193193234689437697106390957755372662898470675023258164432572167661650932343353257826965630339052278575935724176263119859650195593217666973023585138426039606877379744709140769981706726531023452437884814306635126627634608580778724581617198677619185487356145044954190104225509906441693851662865958084376124553552113689035534251925740235208990682530395901043236303640915259987465133934166058190378589815812280577617864899986793655063153327020944394036470193974006645740515155732198069630894863405785873916416599090570920295120161665725538200499195070376546106139408159769245206820919826077095639871242487752567582221585768081458947365881341460875218336900618825706216348791100695861041647779980884741694188082017431602316499080191734953644258812253100946628750529438094824432291062821560754799646176384316033974942447768820322227914431550181745027403044117123141372523735686899880856692035421400604673345287487696469273330920855264376450201439242070087303885050892499739781220185656425801998517783691767202869958481267101290813889654731158360349648034825819532062771289420407869423276156392818217927169272404005711417872312078898527446889583410939248990631718787565023699562867285045091567742915571448963870216811497684983599696948273310268323020822553426727151669116687168198145729881833853442008616671452150432297695067009719722055522725685949199092742929947802935497305017001499409663212723457602335756577394280420900121089428808564862927549069939611350247945985668817036521313747816564865126490072692058840163469686669402409646007412773176573508307295805702787471555138767696303164549308228502923830854805771135315666533641025663259718853012906356578880219708924233341899866951257697057791712144780824312442913961539552304121314334291604232749991934874629960623277688875203130219447358313514875688476824481733111137248614254987957732871167500965020964125794817696143059601540741659623166967780379506104006502191226834920248813381817035391751832921915322496668236592854681203392247537749136548785256892674913050933575277239671348599759756189588958330408095768926684287989634933633366204223686850578341283482361254287406969709994272398985313813014351681508160168230239312309691601134513986582225229410396825448761719090049566888022149277017448156653241036980637180150303205760667351569001048203558776288400789651464509362268320335176834833214812419840874916166892674290297736777450427976406435736900185559000582766004225791792946559541366558041622578788610088153515631313863315510127718116918494103164692168337833090657374550733949564240038128360584025780541615317005890282265546829402179942650095733186042926659974964693495169140418340645793863326332452613748303516922538401536495127938635729462766688473922242592269862247347429581631882364285508946291730329040741826927771583828579054177941644958541874831491625952836549322923877630991861841324202851638711856525569179997649564763379042736042404386644044577508031876210347460000071058032275734109281860323554240240398295096699520679895204655902300689463654926822247752851276322584555659136388494395497112805666002441392308469750430304678712745368913483339989932984535092397650482789021911632742832805990288103225707492668948641291911510356795537284375461078148157268135447981414584759112069404101959003601770582868048264450083028941003355703021227883479271206472743081808381213442048186938040178472064553911348063714522137434661971142287232107411272144716148091771542204972453033206415003218707879360834174247546655744562669805087169189973038792037682337785908772778343457948564986819636881316571259296847139518061524122521617750246247170259289336577418005635403634990028519382548161386271617519377844299201389427626488910278990788521232415892633548696807274466485748919669339553528744807769673619187361292942310899870452555160928693585656648241543133010260879452976805475727161512742045730912062569504230394145806035946620601754485842296971453752422869953326363477587840109210648457002522072686283436371823156416275302666937022804216402202316154386160519975318055473824354292461405333263097452762547468621172228978297445417044685792092908417315575953830129352720799758024891560300110767237882618819441141103136963062036560143440866268195304974891534676634805258280269151455575713751358459402098920461980157679804329715620655303375033644762197843191557766476053308432324195368265962763265945196855711206840257034317437433520014834273395679155539514589437708719584806518268687483624141916786192430969060587026562820214730008571311394165822203559509360047008299510363778085005460361738299923090179763670418431722186520524119599377932093893278713998860036299719896584487987102983986512110383357177148592820738787314900066823200287286973654837979015907764032656391010154012180124334724010058651240932924723373997869728431113164107786994343524107213815010041765611919054652398649107344768513321819098128902872297077683566462008234280529817962281639160822274757201202458537679193177510401752298944907569399244619551842485022611924506805306726820009558704179351635629336532270869735100411253831636429602016033367768946577386342276796522500622467714833300981896140843811327111566030335284630948382071272808148886108359362912397887179667408168083532259273391487374507043802572496657200647659603972211775917512443104537727641247584642593459145018753252013324654114880051821310147764585929737488368543140408052340637044206609548169749282679397224471125077917487748815957847421064504700014204137687704703165286450455448841766962634363406895550373755400780968669038439950628687890878156816682548721747974263549711637857978453747027594571832750830501277229217228319648126946552000075235950250422050260296815869138911389419883875722205914346223889861193004734137427477207909252434031973783015203007801723652602624943321126615550481453331878196971661119229258937654870101382341727358096209367906288943110614140430591342692946585691592619899744770387689001431780347366523295970504519881092220355161518115586262556639490911249520437235736974919333418139695362342627409282745491949571720641436040354971158096896102297847216436690708796724913023859897442396344944132286673314525879005789684431928497001929835465539682900472191442231709569006307542286573513096187752746597845304503109671356402456414464694936027556291729548739989750799800305040159515941009670222196046954310638375332042492929596066578022759829246014674179547917544827207522732123918418527540472792480571103926108537698504562089197162322291474770753933245818004782163013426126665132412502005154949902318178406092052947202926309855649788230247176604420507893405278367144405518911495771151226035676820141456704644460356189075313400392421957502515607686871253877311759353887174579370227971453270710719429677237777512685656474297358549483909567663799999207785276244461603467738683204831297667422897613949500873160423902797693652249858002269629237708827863107489720926620647422122185021075274977816275110151395272857638741538493645736588148057164311503816125284803031580528863495882827705626183886461934974993376031953286437746036110348861934668000933297795823223266527889145244457310857601833825625746726442145229143649160796943797839955757124322421670141585334612082119862789402118345607297239212155981225587261369281782885102415235426301996166626363003707663831803743672699157484505855894464457748419166257126624470871243292439502143567455282463660563567113811170815601903971657673768136267465675429188923646559231425512047326779236319622273148169848635542137082025474633111211174325828161910439991128040059007321153648089956963726265965850672888170952593881098038059329711082172380809719880773816758353057060618490604380361002642529965369164460946627703430594643481606355989254611473516791528119524601822947669531659685088511122876039787701804694227386542568784703925157206941936380913068443581658783637758242987540180311854595329796577169888164600131955641245763156751744299775254388227766288165491927374961617614952511339180480180467424679090063330437514434219433333438065736967583669162836205667603707919365799576639407170722935434974280287416576854124359011397436455218016022463474151811955507855624721816361067635576891925341089810303600478256585415262458137809006401301795204376416733850953294512184347299839700215233852528378573359683776316617253038648228511513164274049888424576006591397685317896981209427267410293842359337861659393659209504483464794728033720516711419542602047554475548922635983168138753482249631921319847556412500381346773333693758308654250236784465799079822635262847292924895937215340040601626767883187174613340939474333610119741212971461058680616705923019807586493417753268403162563002648231418445504949677770378003866803243985375363257090328813967354270634130484567921138353952997384351775486529479194975504560685101473577817177320812930501532275189737568736044295658226967538857095765985595688383268725371899386734136549517280107013440183442548910153290988681727737182924121266179731396880832470594213543204678194750901824306266162724197354481766906683392170494065348774079441521578464504414881974532379099341600204733181748319814444322583571314349235806888672164787350326330381126061414410013103561604677260030175115037969617133492525624434648873752107517559164171425918170783372313616052478244723790364372111827947557163755032421855256790069810426452047559623230335691673770477915823210012405956682114203343305671060147023317868080896758957591926919233899323605261544310572225041961750985106330848330147766830687015107505522426202597840196816555355640792321148828562075308665123438576636225244768828243316909033499001903152197546658823787681423471292989792802330540221445525399565550292892009274321345783140380840818077137928947325610633571070124870297516922881886705932757356432165622998423573500037416557068211634332169316193842352754658740679005408717189985170932144384742047544851415891526863730465317481647871221481147437210624985898450690954910459679915099027745368319937985626795564026312877535647128551273440436945172581202964573665910988241146634711599784904501348683270106816053684397998885027497158915235141720524940436914583485133748711044193144109417124285376438752196802982026586686655756283187994227979608620009938098552308887189633942738063094417494293272100591520458502284491684916253455460245286017693542992906156662731937252159982585915099106455181526813260680589225978149804517803210439583125013020957244623113188576535470440025670282510465506156435226845665251574919754754286714313687690256153279198725706341703071561331509095304746693033095840392253273403242804113176265949754408081606548500000452848491622049104034494414005099024553930901038919350060981135273957707589344969874289736244944273810898142926303589619438858971144735633674537090961545122055667698945650233830009266154875400216292122228835332298409674007171585987240954889947116257921262559905365292299051762761336575791879639971108458551854748839986231487597794598704106553484643889745714370355390008214385669478208866886090977726606103410742206697975482422860488269358200196634560227038645363759592177246311531256777708334300301405155011282118464055002954896320989346481372576918840781127509214601862772469478487685998582836474246617208916253757496524542242191934409185112641578063090279950906818922662402756894156988928960057855052377739809296038871537207879823285561401347187746428992643557684069642139610640864959178600632090496120626962047557679985189498144543988546450200826599794419575975614899547135790083937476125899986969640946257735432036595877986836751537039130807194620764318765864093808174056491395812125470859007860351953547142024833769159846480975201023017899156650297614346352026037323950687219566781893554136686086953632289348747216476204281676936085595457421931022714867342680578038175917308849069320750833290971919740281898342646795428523846640263970780419652507038068604169382838536534867968491822926112883195401817263389011688241411186230431525045792764381466100149671047342831198990798848037025892408698116702426419991954651322836157836867224385371472116760611660260355943886801992100967047872010606913004096428854697153562892800051827809805333695693949935826780808209013889071258886901698285296859163775327413028383355207444255588541754050088387903916154306783984218434370024818006507428095874574361030282709599524782835129766740253713106868847665763814176054004640946652195932967485590610497580456282246251079559286363299156900704454121796572903374957738196412161289345383064145089742942437695425516169707103771813036159234661536541529691429221443287842882656095111118895202898020012284103966795077575566092404045603912763572358183883450536082498891878066709063202764066341518382518193565687881300069812503054469418020543823874033557161867806779072421881669336850458863259511504815688418079285797472851603526729790745903118400589442120775483196037315937210698527523199230431001365454256344137325586526256210298184184931912480930455711409996240787731209352370494475545852615144101272661621445030061424088998583148175671604080913555694843261421314476257408267325551602535633023765170409007052188847315875952675354957722011881602687936688273162316292580288998869602024186694954422778642851552529568164182995419069746065712677661599694573959048950701810546152625424955702510020211621257383779864238647667071720839142413089638354052234547203893454708631438770743133948101849855780358395501055324619271221357699039103416259525387496587722577005677755485602528399464434344492783481164751606128382245628380701387896378450803702128297114337759082484134620841664413356954684866721715507190525132351751069508548341545317291969654763211737972629321668515522528413894087890836861844869857254990761851684132546810872804357729385523644530875517558795005263509412663550472085797842560311185011943804454791503092203536890505564813526111008599437384968721762817158807250667271625691812474893085479534806520226588266437833477324410245367727078409283428797466528415773946725498635911417659980231294827472145363332922430730315458516525082189064595068393714211255668364134491657425207564669100300467887073774405768565679228434261639616293610902916215393667907748838784076198712530917484207272325626044520742767815901379697611657816872272916554303766122012619113080315953038562918766632736646958002858339081448304429375748208196196985035475768936947813454542066155074124563712165277232329476997813411580751884556021900279636121750599403317200531589294388451827859560416124661035357632599011712196452314730367438416252401997963186746387217563938718768730346780173170195992577691709766546219776668568955127405678327656770070179929076533868173143616375903528905703582741787538806880941719873533339111655700162793588012197307472231953984876430836283842502249211639917809623763237901465592620123899378064434076808227908185540045839229790101324633344029523598039180303195194512472563422969871253826391319699601052363930568793547957920943134037735005251515145485035828161148216579745121720144508455802619669150981114719866312212927729295948569359585460707803725373244659983174163491612312925930576218218427034049167380863704654339848800661909171443687556660404124579498100333123363583933150815728612372100662844944376954653470650075992730744264459577093702035861556296275507187149357495488383190357823367095317218171912168171820571365631272297456042415142773856826073634293840510680500169743052248225549113428484086346570593192342271814095923665001304722822944911681346601521552594050101894963675096646644638005560584232240651086435641714034933540294527784746154838376799879086203971734990974345157357081828864327202754210310191699660671293261634627453584981202098355120191446278758275857175556797989324683744697728448069109334959556666602924848062389356555378432325794354290594237794438533644269970923359270938245653483947740465541846561838470562436051158665556065715601414775683216861836532148490328272878506541101693779260878658108509830443377559913741398449701986375949236807677445870461330244673890891465597699609500403604808749146450058713935064690955809377904087010082198591637721186529445867778098513219710943777492616092206022183835883451226517200947398327743058425650094552110404949037505034035531912546663379172979835162029783785419102993408354703047640910540293471359691921051209076333787958421861915400431591251341383956753138761499078758285254565799330888810048730089270534843696980606186688956902184332312455274887786649942613674526192207923025679016964745062509486286981922002947332636977244106617545317304994801712156539836503343793597744307479398729118915448480925515680045127668007542217481638310962326828245829841694968749442606242964481842343880894940719472204814590389738709138383000290323974274485162943312093908301476138906977425608303732802431394158058543204961158088571541791610021948417943250890379744057925189889074245764122994979050542493350597121314456472262506714638521548900504230646632353224353349374330588031380030913965077554655209259003296325907040269977698477075133253433151819121050547670521786592725644598160738827922138654050865712095705274870867404310393639097806837439035707219565330241932011749761918230310226371808813241510729868108620873117807858453558518270237299304733622572061890285704834997174831007800646030642619367757277392609800056669554396704845478905399331142964384119778982934579919694368100452016489020252502318185072058080065424204365164137428029186408826906849298411523078322761186574802996325831345134723312635325550747616579717600440776415722093717152543907483273435860257265479536883529940805309722086952045912960677230785876652305900987605926274855637304320921386945970025307952308272418414223767287782594168238805860973166284142811223469829700384114513547137011285938531696038165511370530997795653627035721408704258872220788367121855766047376702539911882323810652903483508844352097623575488078784839739346769396142507957449284535435940308038113194726126095533099222702177019340577356414117614713330625401630056172521429178446620049845978431839745285480372220909258355725156591373304319454607162486410519588413796934412478151621521045127319655390849961178837211904170188986559995700076848263238955824475644691867101454767787540397622534381180124413717243066445302395683942778606260798323921733073848860391512305065644191005732168389088895331062932190068574865329324030951943755879305455586205040598721916504658693880359168796920405772186031968593111777367662166314292036155939892368895166975181663529340848333109101658911152664247956416090242493600898875870744533484316948496498106431524962939460894295929669830936668682350422972104045397103663426588283769557891101191152323039339324197793279596144658625482972380247590465804380699820022885746411322282653939600298846963534807981689857384460164341154068235488401758080414703370337043583352849194517390210696624351091006782346292064368453024451685356200303035052718765661160460456105529604718371235652782855764516163564970467058120227594500480681320215857701160466773211430015070166574917891677780274515548897598163854760910392211199788440073821443518611907015220616017525676697368113349075042281747985035387230407171040165857229359212039682585635566803032129970838170811021220042644094788475647394859113004334604579592844117276638749662099167520926538592841536153601755188281413992085450790608745643157407905964389349258676557047081073458376532140725092140773693569128576777203397129622454699735862565524866974395386644978527635211198270285353298413118479854511396681202660545518649806689624366666025290899793667862124148798342847562027440163453067287887830654820047546199789114228945508826477799162241114062331991691520687230491568167661189965619026518809819515699887212456830795707779312652124191370607906150175211905318489648108814111433777273987725786350814869880004278838046390415712939012987451020818568186703874810210060050737422272351835786408971300368621216369535833410500572260643815957543624100072260182935445657774147311163886587956382538951783602731308507877510304652470144196763884188797729743851984019426659073981625850524457573158304870569023280068568862439051087269788914423016472778773792396048441953340988495807304251914879044942768989054386478152865985879140180211128236809301861014258887400641357782535911422115931197597091020383395807133479269300991124030300180633762155222870448498956115435593424407008626277601457098037145364120049784965802898900760287977174764587766272669692856633947778328766192698754942974418315137128625461499133524663873627790461342600927542146881186271061505063433611075250511093871535096904813383733617596508351951934857485882927187274862088967178742981488676937541917238673547039891420447196233504856186987966621976887275975606024589983741894509838816399471192243101190951630961734916027437292014134980897420587366954980336521600519511071204407786606637540057928868826507436819024125290178930167835159297595454159144249734832030047201225420758799192532499162697054504099337259827232099100288996979132234082152080021480484261366440020293355743586818918893021453054086113039387366062486868635746883169755439291510750694528918384108228592795949235587062706043686902385479349267493310464589997719015144514212861976525027022039431749734707158583267418332990418818091418227926051796552692012567570813945514019308097833252785147662960499486245973361494600836522904337527119574112230627663911424780700069441128162304565257147950580869979841057540416033901895022966268623287929420113106540784537381283468468814759047707002371222651801012503983475042482179437492919432529687017699747837180212985938516863877647585554583885489557427124649652616612668474310168424206994327291968923590860254305447237099025183649791979387005639576968427632230072700143236949317932979826510710954277677769522018029111745901900549205536906938921624811098228532917948797705760006726880422489782346000027384284854166457646732703737295710525318315956227516043800117771993591276842983960506116026961033318940517029632171567903192139888742997431094736911174290230932393360405826542623925635069795526131618973855119312227511044692263558041974612070368493929903820470695135796863229665949678807491792141129747077375374487983803181742979964298229331612743097028937820805155327696323966882394252096393639378745629011171639148500093399851493601998928652278101395467015274048992055489879501584288500100597626083342829736770630474874955120591412551321440831613064145792557691328919411614120067460136167965554531335122937791370315081829952299063464444366402822280206721733914420440732237273592088877772423319283433738699558745868393097413573379683324414998030336701090181494711992358355508540267431613888327484276436279207407509422348023371251343639680204427469780908152937664119058460567043802501992785651012542760063286960279560138775771546626627025032280679232232951123606632747974846387861872778229969743528802646222694191881897011631992394645776485397235595670467857820282164067349875024683169255191432402051071348595243838845709380981221118573996759307405368961202310175642671497986095631329868301607858336049910969347063728060275954320807133639825886211893367736168801071451237817062050572059323978845112987554884433862052900369802014671790252748169345798192073309880788076834750598104642061922608611739609433217136510757254373897255578985080563933701724826842692793751418495123164362382122094331185907319815014446617789508658129346302928561307311957701536987419112152735564470962921671605391029246323685323689651858091635946279069228218319526413942828337077059664090282522485584408150648870861257585057536148025476264382081641932552301106550225853554782813776439230124636239367594637567525247834359166130767042055457283059824594822500677428172613805226257614147730540920735815446235802296399457419825160637036530274559543952617097772691866762263104163877068520803800480344645972549589855901515513172289294414852437779037959876231198707354777569514777419155860443214345809769460974000388473654487645227682299673179783553023543757935285404851577855259960306386796166634958451256773722301938665949962873226834620591175449204719502016429444421764206270389279967587574824046539074450612569698630476926103687205342871742336958301471991757031533018575590603917573146568817337263310360331676631004476678645940133108434685589154131287135447082271436287123021038552113350829123611555255983325921028594010617140138155853264788250502973855749531245301777089928572194431423665240304990456839761522292415129475265676004256263553598895204660887972363189099605812384426411202298284577596798724665293147138062382547568036486689200622220984815224310331767024801055669014733530507660394756250223487533082461970974803296324660803753809364413289511913999518453117874667909400200551905012112431949797301348410145588155440105094195011550686641845731436027838344693081485226947818989679456458699854733370356542056028167254063824484656014012761732395756705251139328685458896592288357882016466552201210184497580197868468939006615962190769262277214964038781589621573421998757688215090340722749175327751895351235511457813136699234335930849217622680006401486760301786904774421610544536371993532395865139616602977673031195736516905929507442040081148030805789888034840136826343537543425573429726213903642168089540209882776956025700227537413708926048592325683345857890775631941293291135194008768982100337879626595586782344379005320555600624808373798800415021145042447298785297690514195698406517889615068154969269441707597309967174846872409663741754917485077403681009323006155562052205746599885761206287680348565888657658650293032736749390433791845645745029446244179109661227712996880983174243260059090915640123945072351537913561163347998115884903496576821944001070197562663256855532403804378603983988217659692563959770843508901890865349495003984846833960727977049212408815314078663840642383557246697922386029886070968331980989153912935358046170388661346735723282701410846326160185435478244032112069186053370578620716746537809365769852603511706341950678065376454945839314770889256561330125461766487460406681734596293238130417578583254871793118867464561158948899005929645404674840219781492703392073349882197688869853442182286510566641369530132857341332540323476631863651224460015062621343418142512805522522911376248289728424933542727373070111807762789336499894692821830996916476131223742606229287480226756958910671676828785544634410803707528374374404583703966229510329940786900658274784412352159597603476962765182859963678039616787168935572902917293664334441584742378284749986872518284155881862534564493478950613937615022219501534906411446746855409201265574717291681567436846432481749854448314811298011385985298873583038500291339791364531557174007015123188878033430788433475689227146049888656174570352711102522219275142757338800397737907752089973825558278300288334730424172951928070458511198456615985209373135492887430978099851384955661530896170406089527424323984686098399208222305670143972504719983375606051464151854573545464846195471402994247088036010406624489419143343257435189369209474892387317655926078965519375976099844326904583975323018131098956796852376218124761130643888053227498741379045893921595498144256189237901694943059729656875437230315473476205827395952573816745238646688730279265809250677675733792460954241208459227590029419145004636820700178375790215358146125178495064619888865727276655371714295938217517836812941704822772957918941493320406823177767493703478051642424670831567747592463178763847055619987685748273954059154227595151642950981609379910869665110078511654220919557059259045298091316321487305566642626923192486856460903918577267567031777246121479304794386167087267732213005955756808546116942050033559399144304341787232415485471681694925094660834863015835332357394409491503122880400638758327356554908739250442703921240788089707467834837477588736039848012492714787499915724991657136133329615910065011970379409419689138641673187602909234710885736630238151880268380908453613335224006653489690257866309398535321194187182342791984180573367207284623180643845791975413456838495760878456671487094559000142350033758432876477180397305975365526976010212684434469853634137386008366382188268412359983850748742614417165336278500408147742250496595205131665329198136834317114326629268580124640671773034890271262344840102943103885715340212487827914151360891557394038157881877314274598265177117418980741813380173050918354963754728990683710669736886765251349797676317947680066485425806307282880327241749088577062926602826284657770673456444542362205693996837315211163882620954408328531762449867776225539144779346650792174250833494674672696817892110004339748253096036994697869626166058658770731319648865007685916072047334834292462535663751589719567823472752827387921630482601505342473648609901286980174791099015304200625057942827079022881624129055348412260893854095100532096162724413881305337064434884535075227652787806281740018435907363743922958343126068456860687822617228621500164557837492329002063136884621458817335585521023765787804324215921522090356995409805357363594527689118078853742113981268182148125333535465390717709478747137709941285903136110280164455000084050490410899016460502674623177824970054600606939094432352254157156760772651787317121682566358129224296713514045268248991382120706719043797794531892674691534375878447638283081655647442765674334630467312820024096846551615782785541520171377253054122584129491617286247462273311086516989505089629644358352578788029724423179756158182815167223626399140480830935803698278477459795143416317710293192951550797081401949383597034686932067349877718332090979583743037598316623366417168283870647377086195751571227316051221178317986649985679561460017891110857187291473435048690948457765639664501278711321285170911914767817854450608584138831682216356600412263427622676675882097390384129535397904478697932544053577497669442686506127822659576631728316681546075931259078768606455199449343319717602035268892870583751320450186823104133044266263347454596137492340421991446157451787752588281109854176771164716094090683026958898628760283958448368109933706364902488351808814145167897616231850691368841783900833218693553389917937307184391523984600149239756539167920581822940333806883476856400038159655454743220275776152209786866857677600358212049197822166802522777089619443810783432092876488689870105918142772730485261664886690327132791709627762477243448297092143605891674144903528755468857819662622571602583217125985691240195899599718306308382258951705699096187031541233969251082894517203017115943903305144975108712858834270286335696731046554058306184734874616099890051298472846468188692209500625935863482722307188820231076594426962166074288262347993597529145781137210329696198863903805013316572270964410771305517820256424872484993725176266091773858216918973513296576278673027278446462720981029322372523190580635939546221187063922998255182226442654709496771931080858672951281375986958473064490094764041039884217722122247717146012050536542788370091364486128017003111945722295106143964708805872776493984688320186897844298775628728432146913243657550721649730154481681188899961881525399048087742704929412597081922047296754034932073122065053694091565474838292218819533632869143143179677435207200983603038850297050351700531603253877001974481222950585481058320669861130680391959436117130211843112360883235965674128909661499795619625243308066714245190005781884516583748148711957725730139370947767763793018092711173551490383525368220443477760330256168960019509894445446732551852182988842907664334732767728107875490823422031556817019953411145773409364265273482788386252282268776258500089926609952267285109178599013208550523721660568972065446457211938532456007522305869060443446099423170081419303494532797175955911315719792673547708955266007957283014203889623470342104297082135448467206169974735183998468014391039173085557628698681138553248758347603754906642821915307394846068020740954955592585713170478361320597052183498587661963419009511085950991428579715864706609750201163137053463362077983479983516355778041236454156320401588219098007280378056018394352509386385525088374263294793544181213821362996859875694250857470320696601921275619060045779838608650778186705535513591199484673282370377771656710597297945493440428023668603937320599970398717345194198148357331937104183784643756562574792979476253793994577794827800530917592543688560212509278086354445157827668767134444723783270639066024131614089085723539438962745910858287635707293178068074967323126060518497074577828047109009561439403350678869121953570970787853930382645909941076253714569293655792215803188378125263008237515615464811405841178104702161303027544991493393807062859431680245507541245007198789519286036425531524271723412917933771902641833474384910604812686152240108374228094858830423391077525610314516208048087453450806581041936904841655337607347844862655520503518924530161829304996077658631137846873097018803296741209314519683078302898852715623840806349846421105556836988246296095946394152516611884917113384347792962795180829638343559111666218968281001351386215720742366740214950380913914594909181701033867895305339286212747294489372444703653889900028284941789092045435485022265295323689756722796236058807804191605561718194620800298799614914674791769763171238885019638594767965926342826427981903882126256859502868077059344972860237261807527489328963169119552381357966219446875353095906233560210094453738859519050810234908110594582169711207133905630633205932298532164082765426091190147421104905504799411935011163039309610061408240788863020080436194755764830457659715789192133126714039119922207577501626924781837841789425497186815911805537109309146428739185098505089791920414218507257216742281577336667839254020858433758012366427786735240821857795381546617552131942516376604303480087309448303101467685695305520939055140476554600123268320256222871056199482123297111291758958154371516432110515455244523116650935401437880243853067143586368322417972266652653707113280417609805788808244793370053646798983580042168885247939821775267500863794868084020246230954853678730665510431134560016658027747294895177420444205945863586158686315911405401273072836108470335209006621912006161688255177700938042438571470094380256726108749333107776432609665997594163971660396176533325763463354259703729957002402425893283871598221132181244027176520489859711634265170081068420284301248774552056494298583440924908130059162208331308977143894736218705252082529500198912313466910461288477204059085727324156111322163485355392155244661143392940805719949167441230517832302165583600361613094150887915445512485646910926587269884634253780421721012124001198340884641929989311274471789727524057920018748619679130668793919685003676693900179006610682094295482985341563722164529850970669661833178431529864166137100340346519406042803438511434952408916994728886379616247902629999223532809665200453863549732949382629462822458130268031608799597962532262034654217747468591990903421706596220970749386455463731764043217887327452896690197460550961155216956025721408083924586322522954439025473410385287032643591582419230910117022062544960707916268290282744287220476018788973035441993050203690470236658983748668370497629713854187442245204784227836551463954211711137702588941205449586683849773406118724606092344059620947652893286715679417566905380042794187473610556986516701846326459436629762899310616790744250529537352330384739440371939613311549314458540721448890443255229549279902365622688807349538489342310854347058436309388646084899942306732006302818944597629301498445521505739320384448117833643153048432983709716492896732962938389924929229259299769393684914219342018877779526166729378157403169109344581934389020172800007141555087945976712507075142183880574843796668128176302410653983674290370395018166427850215259599705829169004060192917389316340848893064102205418717119682907678708367177803789636304566474025040323818632300541699245830032931186280335557582628088919586075249732266491573422244370884687714503788758560533789415366512622095771834107664456296158708153860043880811008623119282621297505627868527009965211595534025084389930536789624474239244107876133012939136011575384475676746174051604641316241339987966512641682220611319900545481643483554472957716273513610224247121616301735962284853107126145748064470961418149906775384830192246974938629791983325789432725457376718090264045215598310189514460669164341897178350537670210731001110459646691789168126881440109425802977545126031506374221747187933065804441903333691875691589580761992696935905478706962406776322466089948826587925402516021414423573214264108713658291716646307538480294690039136972798405966478118680099835048855237746384076465174869058701261850727816458173867281832525908766998279591653907689731208355117398404880704746563557395110123818298762356164244903084565068728108735818283634830389082936261394475096097923246350574857230818495898045112453071516002575771139431449435288642835104985897938363502014252953937241245140242600113394333244675161422765022782150961274824526742375395884005680433692191916385544818162466831084087579666350537815599369544821303720387346274325782240148514579547718384095315563185393890476724886496052654999734466652040910042776974692814565506108914836771231748287389539146377906514353087072466306642715660547589580898562599089555394408729340874073662837816900008400578974852149490256119242800982118749839291795112231434459384039088504305322339857106484641834577114087679978561757912283692304330520383091042740837440677310844524337438560086037580599676003077382064913563385789085811503733420083960035875407494539084310288111684324603025927415245359791107167688131311737384006739675095811198495703631346784640205954444758379397527146620115704114933514869199980910530138735712891613511840690077310465617845968779055003257888909066874805296659385999757985282646542899821638848345415049620237427395985724687498532504005152140621035519914134369398302600012886454223492060583679695383013501309490461266769964454258817319404242772719362609974306270173805172051836766743452467207237192715988019001781293826622142598156986051197829516986999233886472576578054957890220658831022708279362168245831432785498246106232125879503549792605468304716697141376899220723573981189746556261784847318808831817121205652401630809987823997060754395048190774351896480870377260394293718060196875019370803207470709391526501850879684368113955435617372811886368964003404510109107475856131926791559183307395193873997411212802448774577329239669891689290089688033172414282372076523710831076657871203614525662862228274564763457746474170556257163282478625275159982484911345939628255971286428977117069418290673747731303896510422864828527418987773623156754255609756853593327460167703807855243746674940555335711354908780784446999407161472994872253645225217383399076418697752208139402815311249912436272651221653368148958143871936508346215852207409985705312777611908709393267901385453559904532393940754998510843370744407271679103468513466043950715107754004878227916408931031976476906422355548522404227278645471683230913301586430239582885621726064561671827993894911512128985612652585439909079185425525956566223201208019468116730441864431262512847107191333327051193035466552874200540332094585001638598021407268679819280803059450195871332714439310023647533676358236349639127622003082950390511410315374085371163276422592370562889833157750366998611723309681715498562130375357048684179970633878028752168187538546511088469494339315864557847471931780182688770673209313313644027292355025121455125572141330563162804292105153411796006108225215780696631115177327102034361282054665607767132199897735816219800810934423817851915347379832719848944785459524534659153388681891548491901671696047033369693620717822073375260061015912688143182911927853546308150345988190652499764465389131090147508045822360726325837422305702393261657247486495872054880253219358320080879684348748820223490715250147642037622693448174813069487750322042666749877989431427428857670335147004682122208232576054886779251095521892018555108268433913153769467754726096890699133235540819157623496437788331645600992616325268264513804330219044251920728264986794186019055113385000110179562848584787489909406918115940524427252530621196467756736728754716279495692998623043034731888100244499498980798763878792365284371669926131386110104542821194108121793291531983519817987170290206382701839338273549306408486677112796492466518703283779207810129165387062751274479543579570503856074142745215907242661411396307131214770693357384668360592794653869777391546255779676218496419049184234957000770319856614058613533905331988948135061836452148962410584946548463199927952239142792530864853595825861725321073895365731438455174375923699658327084244532003932925971202605084295470404578194631696790671587898243750807163097071344301543666641709742119462087701173763638741312386183901165889467557032026692918960339145330081687166695896844888468120716958749387330176337738700870069254470108318144988526785288031719389832165823702818336223205370552009867418023779247030507713636419179052526506749836776620481088679652634465366979393904860376769046858050786387483218083823299590529699491234562618186467333025997221724812265523405862922453408459275488294093035584555049230501228846490773334157815301710453160049820286045732667697422831036877964145529012946162898677513976691460376478865337795071070795354882801018928702951825268600782662872842270277630293252055193294023210140236853298757698010657581831597509723709462844724848047753476357600830101959187098651243809480913945967344639186638258280531917444130294017253183664863668900716389600130454980859320133622681249717245111409405103641993471164191729146428558489250231462520801645183085626851423143648678790391013962401769668570469819734593878147715755833172336609193182752219936980981473151861749673758527471139166765086023214644488747394358210606228435179788376561829642799767249314310639070439997477442299201854900490241365248182597708454959337790005871607104868230775232585581255911154908397252704033012072340178612331435498322881374414483313554429580626012079164602026991097091896153453414667395456730463236907299310104673472206277023190185765323124956223131870689044056454141021807891324101337407957960702352503675570544999683433438042297973099992436111893174758547290119153866954055216631943710614649317419772348368202776120452792324173275610141131266234556977370292012008279926969826712037598137165733706713101259991260507389159200089911858562322471445777797597660093186609591587851962390738815253400828545109890096657523232188827750799938992481613450832341367914682756458173175004341047828543536672821071008731208191573546497653946881860818655746703521310579544207017026692683370836999892602809564475319822570564961031220556506977678643036565059497724048571151382721843662931276615940126775023579353962812878248885964000565610191473194264573399593526753620983167669538896562856052422938630494011479394154825507264339386849722313565171196241845465391478113610414779904686667187923077784484089844333395695057869005319073469504040924631454077361479514539098857224258358645103771077612539458966937292462058052922502250437002573593454441788740257721815375997056539818424587663834745325096455306072298753382313006121321422082712177509488617789982095528650663465042967234122249153368900348638415198043986126618504807205542913791760521174129361306478029556502409673559832373251491293057744800255065104143017568603196519933489382941564452912214107604604841817500770763596324891773898034055600657273544717795829305679560002311800921220579425839630968813280346408193279917230164281206903109599459044064679750261540090588539989332163454829743071662910810845302194475444279060452455165178991949330361115179936832901477790139689742398818682926375887466110878143859595525469503127045739244201881558255648182242067630257596243485999612156266670037103001946645214526176755453847536348853287841352382568775248261384964655972619114105846175129689499191409971450427392515005842399294673654357439845658290016149616318793655755277328690912104777103133226069978475467456070556061307382264770054024333405051774686977640393604598746530330646168209422979978554798054262374176353689694459523833251228171843548014473840912845887513556523427275402916487073563493642057143559336556177129431877726796430403834678733789082943169876481206384093881441783202494013965191659377770871025386720291577110317808481272094327272522652708240180845154752609431141802575233151049436209685813357982294937628990123854924518601282587288197312744632076568040978319861345054114507445670755235584858102916251841375116063950819308316854803328750412900924815268737353566115728399049079517465623385913374670335371459989122394206423544141027908381415520460929612149109262936916866471080834507927890599828410963038256360294066784846477477168407139318528025924391118915423897405954045879314232753567244270299309071196768362578621034381450705089677042245088016339641847527043973793557381056285281613521352503130303648120714669028784730151706763093727094461992625784289971999341002117147124862160733376655309143167022399152840396079557653548209530157211335451240578968010167674712106038799523244740718565633255301856925263598869979173824453033308445444232093804903341041013625938566167568900087102112979651589664152992133130672574056246823135540437942425048630609078802129357939639880125347807504155676251734964270752417434077933319865951640797723814645873555031355016020111886620745396228337594316482601965011347128714223841602146308596129066354286740329804707032167553222730952739680387831500858318650746402886998163409115535709027224852231224355415208916233706360985950519844702064118477921229179152412637553467622613149247311743268264085808878313902420647700144809665294518817905277986807832712619742485803303108668407293105593322934632747916292691581798371530357769126207922971403219952456271417891207103789710895895184373099385196574319932244723678231906240067911131730530102207253425343715949996940258551019019806716281254855447150732186834641453036904807961637880986536453960834401975685639733139026391199959590429515526102458904594209797420710466080829865144152535645306962901145871061766765387444590040711015951171992659091853216540316262212918682346023051250179715967899428769600562285002274083441237043968436066871980188332837442974641840620217005641117014047881416042064478434255941379259244686789469011797632684984784476629580729052895735689651704234453895113967500532484946800860021980065848913013591343351663573122785126419809858253222408176118430561015362138374321822989220487866479985159391316481668549736664014380854687699154628717674094335516331344614712251734279253938812453908416790678461001412571736668686387932471357478187618508393885432183517174273536757415305240575549635745323495687281995716086475038502977673204206063700484112583679463754023739394360970762448506501050534710027753774291481571356872626443582214518737795488888544086296328505712148539160804006240115503146166221295030582331364414171707156689090319841955502590347697186086328269046952119613168783364994516381918297794808630657677661796592141412174824160148223647289429635980742114547188401264834148292364765905168503159360451429250931977729707579834129131090179789126631289015268596740135014240603916099064755540884028978516052610637046818328732063678854318602592268028999574654903496269790403099162371857271454324805179362834996728569469667285764395693847215767356859061286834704781711771264459351053827248381206496638593612939030149694899847754994533726182545957524976454187474053723652597812659797006317695410026225004605687847575169674069526109113913052423285962840309968693861383858121682162155196481444129633294241464194884132910337160061918512964061947322918244388715869562160462443240758524235755924921760914432204426653095845261328425246353091680260797695201605078364790227895344644536737679739147573954075258895733922677442683616348408310238114039245105587483102184451590691618664557973539602071770661605438034685759472085543719606281417653453398229287461754302638386713994137750946780147404761444763193826470860841414300882316025084260344077248411476496249531353365159778917808305115094036068394511777854807619387456967145426515961837645552662597520816996391818307002777215610739438204615055381888310624806939892863745592256275647903606247442817019396043606061648380815967674815405995064108053658375697429937864203388447125545298691011446838560386925909645395527904193208625185434537507246284172931928866853324381310360690366734586114042857678543342027300998503854636936490285111412913821249085514863124830831462673928165982536330823165971150822034733938800786542293913080411045933369163416480740312634627804866719164129722885175802657922604377488325208519368239307078834841277873529966176760079808789229894855918876655283299623127425339320115379944433831305883835202989005012823277457974834173708794863805624838064518634925434805360642747827828848133144726973851604883273212653637931744450388667486285739471340587711842210348470903318561067559249897007371133091897827408307071603384502562009032728332569410683724601043260556553981836083594733738550639622431512225202546154020168310085164609310328183911317108648983094494150355826422453759999034952820046274057103897582846491562076235457999352188686085300269632915348365976047022730342307841693123089309269587398697601461280193338867936132469241489852917458870090153888418306041962193419808896161960545464732077549500653986439020823309055164700103262414816844943290791037891781888722897514366268680773462324932813274395843977671506525550163006051327930402403076300193669180291903444667252896369295060418863082589413144555868340837092263952785606931937994689800552498144747222751240482595299403361268773710918854797611594423698352789248425696047816784229253471039751202722300117753304142799520529979063264726217725722497480624384229556830492626032704326826993723957072784348078033148342369294847685471082342697168913734488388002427520673050670954989752863527297809438409879697774604181642795521545028578578415439572476327741014303920114819152484103654178506599354006057732108862342851027541639716321323423834825322282558867772578684447644791089346720508929265458191877384492610812564950311745701155820030086517764601874675184605156494905950022746578479513621317039329094065271299279523574224665291080117002131087407996015566894286473390967562922998699656711372758859049812305403045246568097290107909794966031878322895684621098282979548303259202811087834135288792267460456454648144935663274722012940631696411613513510832813082652266695518847125376404420617088058230998604586687152751453810022190892015366484550532567695159045250403601178148528136151745568027071129018442249191592046776534392417712094168765945805114887543860240102769120363549027166006631032770738783807885022675204636591194430966690571070277475863822447753735320852649800489430694961435094068408067757216493725520601459625204651782957645300357606673669181846473715690502105033193955985272618884548455149028366087881842452557329710936475960341747892603978941231869670898548765192846440778152346919244044157088229126470035715860614995455428906370001033947840554691223789710905888178679401399974865127465615032983689301785597933104507514814939974681665870584645220231936051849212850015382484731344384498264120045120203358979794506684409876113377820978863571667644101591046391765997115171132343318567365237627525045567873793328089360463295033949898236688966703667056241387213725160314384202495381032434412053815862207432250313383233478003691465995734294596660696957529465523057831611047344021435754121816002083473067575679057001280445974243478046765799796308121819183692804804837424597385108232489331241883122007799436648269613782804595402630190924718560015347517081001557583651309732324228377934970669878590679884375662276858923592249997399603482045775872001943579573132316978036618675609646888409531138909710923463899639754969334750417572090495874773653914980724628562870899076236699266650827915358539767410103168367801447055183326422252305760331336744964393399215875197031372927217724258902059688756208725771780123059803450857305208292769559069420642019118068385022432105702373533775589578361398208053944373742933719789472403608066797663489490838012181664439511674873229197449039895095837741340362494820252160604666602128894796750778046407782882886554174849568788607458712466556505824016729398932189348467461752734546099187327807010346051462941267662072985186937621953111630917446763540027068182512168397896894568574379234886753871778120107002307521018522605256831750613460182196979806556220321257584429123390042676533599034716741768873130989298712603656054645066641393205565076689790389589914178095226714135833468595602058567442416008663899625221478169732291005448608899510395935489396794737310803857171932391852155968526295459621585997720484485881965823861807455924060165146602917940508523136459436964102231003881654505226974300544225329833773022906705979648525298983979439038353390434229518472143580878090893220376236304478763399012928604204463930424658145289517577308506932074265250594251279010004562918709725285474901741131401879265608095868614675445911442936474882082453625045994779392367214102961268138212780047669206690942018737798478231163420103378562217351253675909362938442319242480190022270849573583110572901059203641996439347897792294872301581179665466617879219901461914085520645552609689984761891913219901539189197279303045283184195826195864591126705962429726707810373513666831277432218788787999218102123728894876906230270959831804797163132736988276035395560579168648771886701581105859223152705946163602200643155697851513927782701008040688353728389115157953243818507733460240625104963038842201706138585312084262998565243612774608841749861888928932848038525698153634134325878981029443670024940543225230785287045963971648738891639111859759748669633964588914496225182562255534966980438359622377137487524575051989278885011698714223702011957269332467087868528851676968656728103435725252048569772174733680903332311188801208919247392105381415461343661523561550802182859793860737817813534226172160238539209875142328618747681571633871250489259057055713553237742584136448137942281479825230508637107706807210126342324804266436104047533561869657200120153782599417230403728531646151826139510011716244169423379743889316430022615779168275611026728168453056931908153090043940643679596377581684880537779064735166366002058194021619056444126447867331210286917947262652332111672919116833643402002631460087508814770596746189593522560687465834910213908730859854361386880819546125464773868339093581199761264443444449251225957105361666993968609194636632076590864639130645459947163699302790210613087752156534592640899484079709747979832889779711660421620589245087129147937882127347356889800736034930183449900884678394965861259226995476029699898070635355255703767238662447742339149289313961142662770094741729272292516025460232427044624930666150502358561016568522235956170800022858857364901940477023419450985080992124201486371832629052278721576171888978371164232560725917877469579435269988513999815486124612276616587420812108035422102212743427371727096074193798207945305094056766281044478794354437136764470858148838462755128556664138763683460968488488430706493738850277773407961700760611817304892711096643782310887893770504195323106093782462730250587917060680471289641688881409932224298895676025188039202719293938145287648443160968074611031217557037078270159535430358677741315648870400531332061192648863147179853129954332533387938260296161085923354689399609297236057446212019017650423205651387158921427950797898789423568823939907849234938170204388588648912514305656291898565702642536564811576159028809126586563071703187211185628006794051977453479364399520776863259305677951114127296275040479842445295898454162124176291937903386135757838068940203019049231339837898825004713366657700995703901854532618933240468593293550611217240217270783256145391704639839105370704343844402168945894558967274999244382257538526727743081470935790455300767481275435609394747334364689709929177926959263032598922205729480507490453980704037554446026662471852257554571376382142699561497943213016750429474217170550696419153056921948788030674655979435517851078887754655734058285162739042322901843496180947929084115022914546788008483069556261722377028315360154007133847678579042450095207877320617125131902446625812068717176598255173309527059197382464623734532870406927131882911256818954849503050686251408057660387326026471729643456459134697864029216129990500245385358175902806775112479156868799735858064016717927246500477864434686186812652577118795451367757231897209463242779232741575966079497614146345411670044289585794803360073959612530087189882952745624411170328404246978848246001660191248381812184929484485773956618955655441485164231498779159061785885360671613827790920073954134967439078513947575660632638206755284821755375967832120130247608751048930032466087978168392284757574421154870239292762370019327145844953343888029850353110851959894282466777443983999367092610700315286654287082572802094966138361403893876496855647700733052233104222329716414201051296831881787579406937021505668840696067517322551459810323467900561358359198071773437491994449583914718094772508063251592006543538139003128581912700453329674245867789868622564725942748425769224106675146904607171130203832714982444120909597709399380693839986295211015020835359870657501518926384482668661593064526663821339367174459889738703940260716084729028662500011558934807063062331259885367500670746866601546409676434660460364203101076517686593453763766703013812696798285580348223834166876922760202984031836269318409839347262789949651267187010951305149741778186972042398307256772639510833457865708776243335849223924534962362936154592909393542196590836840017566279808594963994030197235774929728989767573076532813825079071346016818095530643707270528590189816810564771506127192787203477471122024077395234889307314006121053251346856525503541921298066815378863324823666042319552198138095687167011809734109809981653000774434991578849915324524405663478318523934288166891112400106283049440332356033943886671089645176091827443263054088389627298336288988607110333048930810282033891287049214917586785839126798809522934662671395099575228294472836339670754971396206168909433227640462408160834741992208834136661780113569800585444214801232740144179278393811822889379686259309549971442278916945956310942557025107441529818661782045358867341575739980491557051685858960364039278505325211964099998523863224171325937835208317057105538409650672991646797035178605366646038279671541985064593732789669684577805028746498225566534981417612286217813648528826419817028041947775946552711890246118999180166862920648570384518023751798651109001429815221163893952746096787080691363309719723595362522807250074772156018275614705092225565373887428933845669407277409157987823751736355024652794402976310636701730147838089192743021160500097198411221269616266546621391842530770023793224021563677045594557699649282183549668788388905476375303220615925230001680373378446205330592300338242407187915074497335282175428370936951951700694495420838246462941056802494626698166703953020239393778741888118695772177239952706772343597418943924639718278327502262059016651671766976074780193139425652687376060524643853936206454584376756231764065075485561569099057550489600588933290879630334649293984459536704980151182063442995701006435089402957226909177153799011907268830355169317008215813678806813865657370865817680478519437345567154026760388028254434082624811784923827241853327954708876989107000199791995707312840401524215343370880319738909208364601382259911214503926046732058846412646469929895738003501593059616274216710564596017199455783059850612029677192552077487359549305777297726995317713306012631555296887773179999251947272486746358501405506194800693545926308712035631889963190858359227709037126135880916564521267622324954686327957092625514101833002427767216196781393029633249092174059218964080125560958256564723356593254025452097593941128190125654273573544381192469426872551243230260819131346821710538975373432846860276029599476273681020056896755417128878777931469335187993534369222521667435025330878328205091122940336657881027838175486343824101701717343623557009743133564554998766676809463468696619382035348885470857452739094790730102667823741744527320856599412425030685819276423878587628995902506213294772694843041345105115240964628711421211968313169991890745025354920860392693547320414246899173915361780255139197103471241407000536493570834201525597934733527283772401658877774846217582690853807044888706267939900770469543448690508184933778364176291462894374379326997937902680487010377676499270179749811309771372268758468370470324640080978685686941918328542512028517886842838195947462785929105394838609545897462262982398701314769728717149959938358927080474895584787937930534832746787746624650502503930570807343129630672563526761774592605028904663486527137708423350867573665700509823030475930151814588986842481056627710402413981267319688439477002411328675065474659192036266434400017497095890983530801918038584217102953942388113157965287617569223523471595147241202634614257971673741422200227101512920337820245141977068342403562741754840442000553409907496219523794828648246603430309679952917545052990717154511784584692022070209025112019096213189190467986302194750825076785665007498743291562584649765958297117066696411800603675660044909904825379959820347421163995588900909143928730138065570906836783037156184867091630795442782572207124222707077060704672191740237558818820928773598531665039634794166434706024160489095751422645214044807299703872659372088580403990177355645108389218579355642946943706453099355575170693030850123577250983731647971981843539021034301090848874223446698149965131895732184154767566609212523000014197421601898284341296898584421051036945385983679877133267387097897053941447823416324134821300014439060937234616605751863874177955848035011584638868859186107068462519745192168371099506619477442108562706356738908424891702541024888909951621649814026339636546782313949811308447411848767228997457870644308323243277479860543806200032754786857825229802519795384219418679475339552782309159589700287876139294851506825923443867153145362010671469043654588722917353906203423457602035374893063441138935623428141519125682424805271696466667275491619027207023232888795357419649559029673332777162281066768552226853263945696199869812884761324755455438622982707939637409015153094504859546466048452439699981256260285087471139804566603073700120668688199076034114208940010643740349369589312295930659400128651043995815521115303771921615438098470846651860298002029577248256934715934801851050598497023227321511677870132975134355936703733595795460510244429579790874958060892857614906296387879107251311281512207479153163311496208548824167865097380967215986273490960024996171153667944450748636488780695968117616419551880843348329286449596754233879019570685568967119207245070288838922938578912510427604112723576630574825610132770230731852827296063352102591342544982878314255123819497980579679576486505670994065479667088496113903787029178314615997414203191956423880897888250219257029369839615514585804659702682825249866171440490465201878430167525342451377562607678477955289026799324689363741145140148380085462594684630498348899043184932296326923059678343546930795147609035601677867475857437996529713150130647592160861109860417583081910644750588117065572732166702605750824196628248071813650440622618669460838494365342726079480766452095500268572990997681999835336502830190087858205115198094427455034793190541429982526040736752270466004503297897045491746686174658999661508634353406466717051993068125862003777205221893319592673401344988376607377246188338000435975140721080795386195177206417031653629065770632996492575493041806995276062577827502463948268110472734088603716945717501255088648970954056243649264304659637292618930188221319509029392615643905579961184306376832786296628125149080311215554906135032515781515771615142234204747038805777436235807148860825280952084104144127897609051752643325542456337537442339119759152092698617737242351091921503607803740436817661396393936683497634005771722372314769926199140302284935125007596940608808158310188845323033570785429976011618166343501072471644945042605026007858298547676438130259626875144563556527890517033886762850946732347067214980862533594811151630910087905754147051652786531916810365013448563086339379000847939144253348612702250100961409002611168476708296318011050701293272796804873075016898380034801930324222472149582153053732610451766306781826396472889536872610039563903513073557133649999841824731570194786027392152401384779373717668817352938951894420465573790446576612658667676970232400679839937720590034503806181001512024646597579476932621963295802137271508105065664762108880396771054116970222252541994011974544391159468765979843110351138297663038030176943617522930016091512057280449147223655752907935684798151119376089583638035436141468402947605556135098270160576332257824989271412821358046133573761792030955914100002018518062123863053182510294661564264440303186758030387650473525107325931996247787327391036879509168709709183447861895643366812909458675050265895247442990778133956817582767627910295789646367901851755981771972247393864637392879714322594557314555103432222429867423706383531580095900961318484553580029608065109818387403607492323413788426973390526306966598165587958796221929642249754505348529400416351192397730712193475090920066305543800814182760500034350100482103160730465225137827121646376877841713417594884268171610327485760262786737958410361504133277547391867155735552324676905845636299753809547769392506976529895077385128769033020008459354862016495306903543036340903079707939446299195580080266335665043114477564194653893178799312668606850518434446348698030399784544230587744854091821422643528589824706185194973608382256209537385793937314362259176557264757000072254813138152302783016372585151809089376456048533636578870321817314700934045490182332896336448469690577733495949188045325137218734365332505996728215299189087285592253542400120603215941062884658010564884487731607797414866567352625078884916890472489229887390657840257248608519504303687395599434510624642351850969019152510904486180982765458662615712237521418352462092979460701619411747753852642487180383636989280082499864092457265982538673954995088295657786832581331604765542758672850924200511247778067503674181098591267144066944757905161070367750536782434863259068120993612842046488398517595145124015382466540900258390188092120887681515487067771507374277664899721917314198561024963252543959116908122876737874736503663871428151308870720994614928933873427754413152594858306072426928237807356206616991269531724590746222273998193965058970424562238375029260158119436439413589004816356050556596929852025037559350784792968127335212569155684756809667873286532877062580777668031039703112006336714293569775346624584203860512465623946055062629071653570935863416289363669249176955674020371161272876442623661169458453145205030122084649971959508098979081822381725050999254958567526662071447424959740562850568162538968909730992105611380761173178667673755700090073803303672853952665658223709319357134713937365849352182573092758514142156808857278742383506981263318075915906608839632149067959132401323034918666171969609159289154979869313012024005476018700865805445377206384245268358430082710816824348279430192257230844558048796906676915643915319509079474870929092999614375344809378470557607218686992533056542893303627874532242892975703686530326283481058223752654912991362525420212235628057224292528104381468910796617748504417319840014099252167970453680984277670401355251570988517355105820363535736950764608585662868367153958651822112687385783782106618611460952715273179545762039991940994276417503071798305325879689422480706077096672873884695934701268259924652167254308500105219866729822742572610890091303445921206389116443774759151799795248531523298608660836506783178533513232328388430270737948018342883359520388720545663474225189234859650298661126011849317572515943619709691745773496423663229794375667383066418532237066825686550086817545258847159436158991501536431872804114099035535175429076934127801888517913029824258165855234395089200551138400686469888529894801178704267151609458680296073783800016081629223452940769579244442361085478666940931792158602912424949801406070841434338826675843870500755728120278901862890057742720961016932758695966688661320693806977626039053483167398007884471442759547633007857937021734194352283293084697836807206048598908673510044430261219141123653453860997883657262702906925264142572175105147046319261881807036270953673484113017348305781522912750850995769309762992617758984905341551414672903946139572268181196453534591944714636944239483618268689835622329917556015649564761744136158837569917878071331180547312751821845161990252388692111874014176271928906483757054770736807776498856854190598544609314707249742874307022874417527658154564581653034650073313974549221941933231707220282289948913954285291288227417442141924760587007401205843953567049394418607862203791700906025224848784107425765412161359072169706610108207421395976937991149532160944408240805549960189689531964198310121509124255586542137194127836422649792760902928465239162444026191589813027191857734790555161368665307078550003916490528617376509080581511184453282382595647916736795372372870386685716291261252361833268517780760436016043728568511120179275135512442146375269164702833835025848317870363955233023796269158230154232250092813626745637532433779258219702638044777959962137669177362715690673321168904127431790041563951364455086012827608932559717969043526715069346475194945585728703864549595672547952216234216859552714041795474693520609988097588009151429225169179643247335516740129724219190168887607443179778672982262807285736556263946558099897835387005823026966149316694048400299779024332760115384114151894588261705838820143551031101991561077801908100386817187296568981230972087051267140671254953865555338988434886789617983763791816076544299904282528250014861253380608764558211035661659055447808456165896092331860461349209043160196892775870521691882929985503080970626507942000688012206960844891560233659545536858059270690571237261782886326599160748656974061152115077004033969717481261626998417114335226082731159805865130836183131843974409623401485641176054682810338167873498025312958620288477806358468931238750713827894661053489327982324646287823256388718653765173999826306142706547541378635237694124266915068193230041253006232502847125394145765976455943231745164671636273060566936316751963763447762104441027888678301902626939853677183577178928543510106785674845642133084893090824681293243052120556040872703930149462705772218768019705117913355410465679624452147531227169366455823785288623297676353393769750307201244115088099673603357482108630457025149660882454644992419057613978721901249433048405074189532490650628703469983456780574123412880853656581034070963147473703293853188062858056401066551854235210830782183982171006743544437149090208165158683459502100155816990695022232420758829473787092605556894296005244726017097702496369805904557140357450528929371151853559612888983651689511609962737909964328689871531806947854195195521142110385881211807960751128626769590285579954964369673450336156157442625828464845712601378294459805946777303992963434877556031819866184403456692126276377988898900627313600769089684091239988655231613981751860474311165104211659860768902248454440702261383856496947957788833048957496142973154223524634886672216042891833971875052410995612475476214623215730743575589814981225007490677828476741614836419126849823764968873807930960870860104708403924111815974469311676746204509377511158971019130067716469617749804719414828845420763524900335457007825570260613212684953972466834153461280250454623429584893669963068203260367335451728501853129097491360969395165985329263691543206227448263360765295268146435529242363687447843548488048559930298842707697501166437947976070844501304564303106031752037764617878383375633766462016505846351132924614273464640392428907116044540207834169965440563381872288225831238675559191632297301766314611999478979391853629328191233927689910212710250003384311438363175542062298725084083742228923740298587235672131494681047343406590916492642181899479549785682002759878325676643550901283767859689631256496105679928969922751913942425418533745947528937037499009849713302821593666597124812199643111751500726167836864720839230998440182168602421032858484815988354709117915503491379692707946700028506107955407782180998254421856927245540495677702866630620445382315914773928442256270377413862829575390484353793175947106173918091427362185014859696693940115226237731250806181137976486736749964359284121586625633399419432655843939443913057144256297044567639998409596467036261674489311530424316973468308122113861459364603177325003641741179665964209348239758754277050631203869683318231852435687229364934307463391258531239123515955975607345695954134297203087918046801153578830903181440696301315931006694862462979841900879449034809947704344180158304030556534111017415307873522929628659891207065740506311961192755669033836696265526094502847464062787487876862322118785450329200972122478163039025686903042301341260571764042987215537215339193964430217012497572911159758987332329859167762372393559255367656274094190315493739139884368840195032484844730242747797768666994659831648263947299303958886393508717385633957510921618708634467398501739137565452343551647511011079727204945898073951560412532600066909633020424089271948056936424107426778677230426805266503933555996291648029656862533740082742543034816904393692191229193156861041895829684959524980386533941316905322168710784026352963112590011696311949421451241807163278795563946699895288097608320459642964751362349915691468429929638555102295448443260285423992465426611192309006132775543649488806156104095166062164648955586194199577932389684800077473796289575700998633940650550213729218045158715910946256086627313957434042793194439676222577713682982028353671175813275699296676969604301327589948901348611959742809954273645251537363088242524026552232263053589256043811882758295679217882654268138830631622582217912427798334614415463191856047891392711484897862146190091678581978708341719040777150984499306632551798451021875861178647622459613573911895013081847765949564991643353120377813298123497498000830032896083824328109800976882335715449845992502629461846150911978564101011520009882051487476448362221209374426155487410605794874490371311375239773134608054424125368547521449860961829321430198806931074592309967782084242463399509469729073597157748547837219931919634771733725746628267308809962181282036790878976916615185490633244943733133711697105480261177856995661751739975094075149250487109973371055955249814136493140389904961093663705430869573025504223359158783109166661876168201697610686889214884031286664460418916828197849798321956247127959170415897090868398103461640836747815995701276297598643782748135715076803399888487568850571212359351039746865616330629752310851384127688944717285956740335666699146888656989033058011204155818075557412313354955807987425824044778718994782995965929366707670393100522220095058135562811366675661144243570752408015543308080228686068751911434156562718883840417839683569723121324223704555494134050051582768450182042683205062129669166920028120282234991576626683664778962250947806597288570374926245680617671325385078098595667952935085035315716731960323015746565244598518267149849389634285408225146214510046367892875579908447350156882161967638413824345338465775422113754104658517924821916146718067480115492281992428671118058811469517276791156421993000776943371242978750433343112532449450735866747643279152094866447431892480264606159859293498932325644132412413054942526087454045252776052897429075898430553616807042334279852020708637639063870713005976549223236216988543369544575720942309626325527170036508842396993787504938832493185606583244118781974041558466172089803818491541870035438159053199441336478725333803433016005590872954187142603734428398256023416930080180500310658140123579858056493521294984643243122151549509375920249694240297587436546517289978918851730270387669951624568546674594448280967024482906801683160015015516903596020760466404343517324176175415126086200946285246228230106735998094647519873304578834716104838232331109883219672143702686762416171228535719221531829058860390614625657038554563877582530004440148095623267582292104070127268112071503985320860714037296443517855508976520026559952526012411477878785679007408930658555951668553564892910051739514972511053600041720356892600647533012015269178926527255885021291150272764789716435067811927713753627262596165145890267492543151730068069675982766864096760707732219095652367266628607657013182410558019238760204959455027478199426938539320305034481430479854446817565331179822821164014877039254311588127849182232165285792674699909386336787042967641116911566048544523664499667276282837891961708844922973967791606703706145626690064945786498093658060326359947999865106067194777077015803046587037361288649424695502832758637111578443132915353819999335566613883918218069361649728186341313406822325339110073120912760432830358884183451537791004264075828382070193272525033933033897274165609183341197778334185920531997131885337688266965587704037901069882457462556906685269887247291432123056519353364502789001433146981988582108842825397442734332172037704692882094405302261664708891107657497128204594776363115562376029470240583636457451800155229058380080777042828669373127211582862846937078366670390516533303002483563492869860782824646290005328916027162834241342680317029984822837439404706697841269633705140749727838476491905413241389585221991752604738160565516518153330383039056420623545696272091615369259031715491344750008364723564711010957518722858764426490708070756501537321477207603012718128912294601791809684556966223655528954848914549710014961715149418695256693696941400110010865299447595772018216469617435682604486795581539537532820822966924787351838536784888833698651324225641526470593412283051422953869307204686004693654936840657882495469580555605454513902289220469898974001594173284227726518641007186623389982425474668803476848051363599691879821222370910523443187277355119938748254567096893610740245042869252792793911053368415676543676670721166209327594139688439109216052417106940913742346765343583586345938793650776631821527653252394634099624744877645845289938561454569548591815571868639269325900481420599526078345615443396507457693849819086390734404266609439466843018763583061141226753085234093204907461307843599434748782938629331413699804294741592327309736185746360943451234873940640471744291072977125099128779080617445355656441870307091417622662585882992342694791107650926915323660844745833689014878076113264181514050469819644917077593693979315170221692387924918619192648521731261169841738840330046106448959592226212222780861539615774150602211576302246031759374914120323845754651856173782231470039351477702204138647154182984284663613941878308334654577627509995120583400265953334136865696312053960154707179544160315785677706987446264479642376419370551557490440815550624507672880273844534577013432728426314428188598899944305247404038865759469543110676478291638997615486732343357391625728579818639882377797850036476576068822281841597479794462074474871595352998917028265890634329378498796112405848383631793933929014800564741260530654628122452657740444298796431747953545672027273690791285422605961603917546163734294025805850560318384993173791456968670352734438346985776228709760468933290045512246161415306476994042616463418885242817390857304665041503312750690568521782764896891778355220815678714352000504306225975835241839980873429938170063616967084229161984777507941605301683798918713620319870646772861391278610082569635088614340778255741784585679719791256337932247266089761580219278959698260763482751447640359569854597095208282006967278759519602185577382683582797739339105569280047591317468000640078216521552133005586639405517546894100212058085552532518051828486053657769507842874625494824599024248687211267443036218676659104945873574145519687317654828506885640941949945245089241711261479481417349140341428274661478626135799053330275255900764772496328908247144261118705889798603210146396447757928910381156291538711969948817449287881535090366448659864115435214956344012390897149249838653763820614138441545130531535561350637472590282899124267240484178098918185789983111801725990369707372631807613847614668986487445387362044856781812214643826463746009986745900535042090386933703127970127488521965026714954686954840597408653741570032401488556311088890443787577240659202527041973387086376439900566624933684756675415911314080583263695893154412818471611591703099388370420492393113697994216386580330264032601473305595569438305509734668342389119274285981415739606071054602760334847622958447266200639466212972154261097044797505012091749462307528200460255772511954416222000304542380545245501550810008349254992274627843909078443931801802703273254781168881062748413026961831591851038720519523275198778056490992513509609167275889998136456834222328172714248196266844378272745420023538018272801969031858283877980708226087269666167841850197934603060246787465300820026388138792013959469659301307771368092147070410139546699888931128345713008723300945317733990159747491942019828132798993655577708298536388028142251781753938710889018321418764405105318941344949384119045834278909198687832779239262193551434492219314309895571226968471892462350262159528408119480568510060516845936180391931896469317257726028463965560073444838411190681078525829286646931851550029114232533278257052630469980762571181866751572817578492063440958628088562976703254112360587319911156301413368721308770451818078071183140811909710383465551252558048349938227754139584405706807312015581476067944266754527454521276815051176897901989921443561444937970718190842877273507731804169896690226739636810665088071690755557535803365583891090661025222383471015468692946923277669746945978536422530068337708644921336054601349320362842572083794311307874552102527304343559297839511077528416665151173407244241441476034487255873747992392448665765383978073118561305902690307846550321178507655532655355630617212018336654958256107866226294924061215752394411869450135561584439744636007260280180131655199312042373755758027217912021861206466316528173491084167105104133142569428739408556205656893465104992943624888505834033227818453243248581588169425385222446331068429639004141993232571173603266022374493192726060912194554340086919679957547435482126818233915664009113892795927929076364933507798351078143984536539686514528305386854537631985358463459619263640035958929542774078237881690685384287431741984722928973911845887438789623161017239441960225525120183789915212635972915677516834531525965092240496263121672721104717874628293530936882669822226315686156382279575020289740677841716718242742088443877116143993672244792586699663983929054954844347903200116105129926990345021992884501402390029372031386346797062508077580248272130722765310978117036289632292854601464489740183132900781944260483201669930124498533440883363740265561497401221031198804605774832682470019638842534761511123393096071740056318201111803940184125558209314357370771361150869608872998439484932032650393261896323080768183822629016616051209680530529235541454390326726977894923839331615559594235575451176660089907667110698591402079283922252141734635534844566757849292833454052369669325361757257639333864491721389926480643586427905130906723216796142945855641896615907037635930299468575508778574414323565439011715153946462945895720180107855935047290760540183956799431271083076513105588339948686414314472412386935940271844657785405165414726751616980046673449601080528283569551033818743003658063689982819095065391240512213615804214076514140013017000268382025489417677123823811659045093159315747324513174824730433617389376649982681800460279923460928455119066794985185521878990607117001917274873229862463510504340023846738104918318173902077227010075210207061642496762905272877140147744826617586895506624290192169307671082301461172092278281743957649599410663312895467033471059591074526658124557777170813321780168383161458377248040748385422160093555668430989941829045794801491060631386491840060857997203865930589418522644533064933183905447371742500260850883325639866220632546149056617449283447876921997503113900155401654964561434087417187010167518755180988130574368081613790481233891505586956859443669455318357396364010058859493324039930194438314414839544455173217869435464169018795672325194008116177226482261623737045585398453765164441742912992732558607054241879633756610088072113507870442790943777940823968631658675552719132131023332486284558015982745138367369045112417417747084818747878748732734308837784113539882000542394200186529348765897232879873839443942082038448316473604514183648911577480771264624915066034552856709472932249682143475335261815756445693241207900395831015001986183284219696469759939800390253250815908880088746687469407212039099531764160036112292186416973707799449982077545369496071083070965600472546613308786272154226636282963201752711937295081709156887481335666385381440207800066877108164326354144672624861372677919290112345655287967927530736090786929764159433575059001654602595990400754695228869496388604634490286028910229820895584585759353802586114318377781646229445631008531661325508275670693057958854288220498577855547002995571217035351562151927647649404282467806767327232437456189489871454894653017654709545400970224783128068104753669408101356529032513222057121525079711146413409491934799695516698634978792642148968275926147567601009406869476686968866384110220120879675159313972800781681498642383823121178586548945253808355415241077967084078016093533094159198847574239669159471327038975780917028952567837772143784333759149973734364775196309466833191536099080236482807156988903860372848171891693043577270084348359748181706152489506683525911356518632103037997457519552794861443733640037181686077836038997214510947257456648681615088816100850061895614904212311616639143524607511029403721703101208885625014556408225224903286791329931508767567661228952199330543561476630088292372639057888352695501763971688117603354030461641673303936494379547272791947451099450274374404958046139836600148705157446260364310632073077607362049098929494471029716360459930951379044760634038131754167980900824323560371393766323322168334013455548306907696981032017759417708245022554356587677414042881475126312372527343353495629334315752289593640988517319761934597754053488166182365426068129121857613850400717096588396011868541449275969555681581231984403599869075226173068325956940843909653483893242737544732204081812183575807146049873277626666849295491746304099154859772203199319509600299918647632476380004462873343708773864511051941760245973495622357866078307369979835165068540640844965591689496626242417381054495356095063425653403516701415454975073493741269059023373963527614658704406771566742735396037869508621463883320025750851907756562659226163659615841594984933554361239429644665488599575985651055402376185176240997344235959847888953727296128865058636827687684237252865380326833348559885072437842969795126064283488727570361293960058074480986709581674228418067122568632745647687953126723115396120967294925829811287324172927355134989350792224406450620370073807945691808959490237742609434253268449516015338588984584368918507188897693031702952119231993183605874819768051533958117801486680407836742720878746001274395500220633623764847254036957869021622991376334012353656585429390192873796082401707219999645803026432205103281168794498587887374279027694886662512169660927290186478985994000664259401311544830846753503079999559113291437610445978511149795237739372756520595877573351213253114634956568209365547372044614563351064743009574334215583059510890334349363833909602513943026922675054711773599023843808242241742146634105985467678441694458421437691842110288891829407989605099880751586311204527477795147116089555633901881458702559650088597510993108094114814400551189960054706096547974080821756986818187302391224682606464539153982279048841319158944102032933596516050810474003850063889304149673897475569563183162155739493401201832728114651672207492216881223510906677765811197881149966606044733068212868057084321473974138719121622734898362554930646265832471350178713891208887201055436458824964320214489665293514810922704864474136420840803263372702080675618317267690877030639146374068551852721514382386211894166916833721958679809396003063692345657125742920832805055079901682055650325943549463965849574370834873720593891934114839230350416831288685730047136579973722406292705592158910882401871698658743976967678169786404924094430815581298816960398581617438837533281355507199615256557006410754482044274218057695616192940391571150928991128202323829705603476837589929951662283503597532851667548966031716909447232204928221895917172460027862083337433992171389718803036467827657089780954723424358471446300707518492360532233742099162487273575829747904501382712357114862758428084414978171160177991322641844570415141985621814006960952382612592502687627291826406483157567029075033385267580410027482780306606935190258920402683367028076170495865264674173219250019665455783830024540463022422596251491015454408805498712039393175282658600175013805117995092225178287032608092695476100214410112834157163815641650347288039070852123217083449051867368325101589673058444794562155499086236934735726085109819399983788593560047649330415740846764960016026853395127392946003700306636937163938051245538971859075227041427117099567887734245688997483354207454966164587426593088555565942306538331550227880270704625203637132878166913243917196291243217963803286408585487097603663030913095371840577271673624960289533683172251962007600565505778780993422051806245292504633571918288732140140804730838445298784760630337306359198246781634444742038510136554389708647169446434242040583906092107594012132205969271647228161092635197381442062291290506715930953829410176128230251682137819924641549681747770985685079661922737631607122648850619997867546125391153600117863472989755677040007098439024744864547221559758480098639733831012452760337268873617494970589500469564463254042903585048017818660890753003838322595612818920098544285997073925899056502001873072589506555553661870658225954690324800779740574741623532371149722901307761187090132603292880547297837718299453670345429949607555050901328620407260107617390136570886263699162819056521445639623572241706899990421513850393331000387410341270020630254125951332713467880250666665447146148157034171140120499912975790854675618061171568270944856429889787708463684211506082107470673179371571361168638210347463143069729068356261081518455636261636747887200278789573794952593186368572546833725516136154878347843140718092965958585290373623236864755955881892126956551946351162695408194066810921472435521740156483624896258609734734746034820199233829645285642953175213809597278745320571674965785282735682324439326196456701387250914075440606354348234530873410205217942630382553581970579178944704678012190863480413120124284559212171526874052629536217268982743452615509782219672195021357314475209598385499291875271061684894932070095317622965126460584062789487216952686572267222552396561941913010230642514746842498946288477813395506786120195810327378693495102760906144672237942344133195862542406009801442007490141239691390672429121251444501358438231849595671200248773231474839012914731157772896911557367033327117987098899136231956593964976963498319912460545501561244214867692032534000517105420229744752608584472620704023382963826133528980362631070437543628198559469708605141094749125508706158764678849796096832240279997485253956647854263187320684658224060164255840332250348303378859477960056942902951631206378689615319731611716639114760855002436142233265917617576058830735926968026302464039091221496455181554325924368963071786809108409449464950144610509815938621602996074293235765402108451040376148822744864510669181148384800904001103576006570534430264203647857319630167783327860233378264043265302703359565186515233601256773958191069900256317993300317929769800826941587642966719501881337610956331890064200803608932004886618231713273232215860460999169073444277102776460119258158484119014835475989774453027528941025309261030122160135046638308351834810856880302602749688776165724084056084096061207637935374694138769254231853636877436055776206486511895531228536390155639858057598233702288357853348268994633424440865695880245788088743815953063147930066519774295886890044270312542194269264822614360240077223463900740076120631132161110929746167865902207533672672867044923699125869601969038264050153327133382426627263700701131895170205358354777499012982179766145040503298793522471593418281357039338623344905222649513000724063249016375154459962424820566413928894120421001362771486124036611500066194575903519803954893463521179658840046520302631144485295683555211973090846977823191877477378453186309717583654716501859524312390439462019581545332016062070452719018466958055306641994131462287950428028052588081859085040969077965570241749407734752530252969445333830079782557512864649750642256121721977883583482074434610560028306177014162812021420748123561379802168551306068573920283683513897831054612371662769723412812475199630170001068258806154608030874090345844984240600616043215992615070000167849448321518852948852135896931949926043118749090654841904029441063685854132107628249191521894640057189059706074862572869816612768605296506591742672844501571761715127377746868042109800876610538773542446534632167851207502776317466366442968688243143833395816532983137888600133857153794987015029662365645067813314544360235154778948952946477760438138447753664483300727017310749135805393774959801367469319656775156069161253622007731442425009111582610365064914667355003317028919787538574769489800892703227064273899285918737616594726027967019957745423710771208937466449490293745012248257522371646041610389191253216867318959502294291171241711969971899732857994773888907940647640610202399699379749151954160386760435710589610521837653562966765918210138976747166366810523905137978137354389374672876115771315462991563949135565212934447216793719070361962672916052502072800639159034106408683629128461379043701794802274497534836930580222414216736936942119383973535569896215585034260222577871620077557777239033460813208354145204721564190673098739087926911925264289784469746396460611750904875740135420650146936055041677001098973287604724046966306891319252928359509624177356556866933347093581527522126753441263792688351111431294201194739392762265725391614488938094592310630855251500022227236093981431057610082556245290458465376874938765766529314782162245224044812492734142854988225607980119377208083095492952898892765209820372706594077617465062485658075838767024867185266988512378188305411814074401844864554275378638467033647435211190236886901928387683898608561150336499666302480475241857014669480605888907826024064746532729217706957752200029877430825128028481551852543728870673273578912164026128403112885365046551065334765146260540781291863795361188410102422641054837705581690412760853068877081758531273226707677808187912280016647240152324004404900478516694920354671610467646771940669656242101437276605114326748657152404066700355193020038223991862249233523278781620357209184421259295204923679588839887609530300622257640990187886769893269336610036531307771001375808396366683639961723624095190675619536872444082379923880385027690333070483625406689407139918833870086131806078493065585473856414456401794052733151575616362148894780995889530358840876891805989508402928614923121967897487837224350373307415104653115520869893456930604343798022829301403178407891991014286907463276312188746535416921143996500409160622774161989174473970413229279414654670902227638845359536263185753950560512410406425061996446121541466953660641775452953352684716692909057304024352378731729096125974032003084285937238456540230369623006774773937951775787852438952407718557035589888840870366421412256830138475364532861357968823470705822969684008846773494172491012585776227370546496568383149847515057209607405892552472576186627586139763298970975815151429558560898909535317073693392315114985658516917291006254909039437833991015490284243795004687090678016151778090438834929472138711138453021209704019868176147973410783988388472132171158785662919388085253371689647378052392821242211917467639127258095251328679313484254460270856161556023927084556186853890908625158191570594139584802436950651088394627316273724305013021982809301594153739255526853299007888916700700272035960193585607417657460199891211513556420274239387443144500614424083924334388976950645504197342920279160700029398990229693662361417704781367789774669690605774652310690536590991882068569047429853574633687285225149693692407579531894940926962941822009687975603919202724526734673312320242677694609927813823308739189489848894479842857515483364589505878231100105750501612181446448656076457155543397770941570665962611564852524814750238311080216307319171878689017860479650267572247926852146401486065667848731599825667067619209489398789884680488321545765797297002479539989331197952293971757654796089481697238946590714977389823668457838743570362198403311930318924627210245794499196089051788368227505999782127314924871517185373816698398007474819693334199576640427219402469786758951655367924704753930797847528688049373685068653588648284035787101612709343774543190271357109370279471951437358095958775661826120843274452317885800535314158171242819020798271278759060650970449004495780333301629219529050243406510581240339864433975565132579914769114965335423949890076916935666499247324302490511255858308235316307144393192711861988142854299545468900426225747661864120083167230347849246520278447348676090775318888155787945303828306772296941452387738486554098538550011397260089564112659105310617442690979757390845250403641040947423996412960643641823219480987258894008040619292697519985142314359402185209277161308148292352218791183276941599188993264277833982907069427078526211944198980849161623897182942445326176390936210653581478759340862422814301048423889348690914040092401482204616701373684655340413655665959061865965373333283110308967947281879474701526094299508216830663899956733315790160979910415753061207201581641354417725163153298819674941322993860487365324053855481161801243674763867467334846044041622426874799610163567288720944321243749147131450973916469259125804966187642663994791526637145447530394933273234179418453872713145652472065510656010383213760212914519645679966243329960006074487894541366520893114524052507364921241372480943136327763890958668352151166000721159081818191832660720834377923751840796794408111512267283674442014334089540012259787835705013885557142327611582730757267440083971069260214745977993287928714112084768760503233708289208354005829536882171950758702578690352504367851583724328272929831535087990239573248717122281326732273722434983163662136270979562205744536356396442622433739841576037629852169485721204617723197978323843756379355918216323025102254574979795195797882869268578727528174365983314906514003311106321130114094333818714372338354941983125164636216236704559858015781461962287978506431102732997807846595787847406986684535075635699870309700529881253816308547088233293724714734611087609109290951415728214245447158561164869192108012882643420119805983243967157556787000115350160308109292092421521456178864232593028228631224309519737543181003905366794625336114605464640473814270648110608734765246120860894331606459617677426426307671709757839631596537234557871254821869280375740338115177722443317473086682739488181213512644487296885874294178186613501374462828671720384151840314672080540769659730679048654779498603951414801244792135773729151792314818554145794912210891776085776576846624269425497816774858751229474796323946292413950227658868807368414318230620843097049546252313072602787325669546758372740845299936680785930748360935548449676070774456117882825811722781460025462039304113789278572587753430532994556292192957181459449178279623150447419299724219754666897598720453736466518989364134504119779513219805368018496746862815424667724650089972015469204673378176506240552793428646081456616048498273465939130769794530902583796644161393371034909583088862484402501116719782282474661951256681230600668664965217074196675255717810014978967758433007681096243403782924122886614201715287827184064436259652666921356444327989401902633057623762743844457975138070463926467942179802148309489303529832180888285062061103220561034428998923098782398636376983052181924786267945627835625685500726078556539554532028338590215442333484899039795576384811699578751290235903746637019744201115286820543974915690816304327611372587979734613401346643170693969354690373515033881044549460576546697107572923937412347076132907356236629206852658591139786551153090832221111390911186003295975890344143127856156260308884515529524606125722252344555248728856603862451592170478598649477240583239349284547964590712449058569391594545668467538232785972838488860519643015990836594007001057532080275019989008202992581232915691002663364165857478683180836416227607157475342044830581186113163718633916339622318426915353866847743604500067783054686457768580834798661583941527686607264580635959866559492927376842643639663600208283722893024481951493175457240501755384047234486181975368607825290768232720331235122594304825065138422583082744247650638908700733255897304570574713509085779889724227674113768454232318226004053321606895027297324418181670536420471815725205637757457082645763380455844029889672831354933913653838338900960011635432079966795193716371825078387674718143892596878443072603822134152069961362573058792039761339012816262566752554340791397825456232347374095970051379124345142228571007468732934449472986222752511730746399594148950732610621720558250092983910470429290397364942847830717304584838381994370332296140315891201165367341518008399922414056276381360334703099737198507782132216655226469598061194138979312983136434452661171748980981561227138191801076158156704001023714493347061534946291539587029438033294022442356491459757463382675125460628319731087759519152635734392237952036896462585981260786861740341941051400643888109593289852956120069429745463632174283586465725710534915246459055368476487351889919785837109954290509954714369171050079170136936858362875525137874609365110240101835216581764483047217888562025224868496079194353135610108164164972574645649251083057286586888893925569001313367374258790582322993632751062400822410111161801062128098279668434251222838372567469334463372874244027346684846903614749338637454205383135922005974146782254606181782699530146982331831064588559451616155018701504367388308317364156887603769001021181934808482181932262129220838152279899571725939992663274688248925245820371323440778347153846511641888135687284958884946716875630737726503357552855992321438503474925514918423216470156109450051105292749505580157699254960295646373095221805506956464945563747016240183219426914103500140437704055902374259593471072439624611906384564892880498845183728653005782902098015161529556359198298716590055244612075931696966064857593675137802725229606928451028607160281396922871456060970820168954567322189777315544229682146313704854972133642383789411525256285662446935891908864321292482977321826295093852409346598753390108771772585876867496131753812411654728900551544774415821293063010935940048994133552671112793750906542521230260177515138247357141650107866160798801147017415113334583410122344921256165819450822560784202912001557178192309137099833653569635570379254833130163463340679869587966008663944140612726560641562518359329748971256652901716032249250229382769711044561478035039604555851372593647540837234819700893375063261466989019171350422566821145383612916089144133233732628852164492816891867403049716031840853776138317617383068241555319470170116522087887717881731236549665734072116732570088146562613548055531734617380938474819638665563686778786300732029296471164786103490512125136373046749127900599950848476444640439359378137620016380189770580918625607170434801808710680232979643562836592136497875608384174634326691436559197960447917291026840842607706950269922391877256483284099301251104639985571384272510940907439534900792128614538223605585247052016840208289816359096404533376837006898920069762921529374048564868073745789514234646897317058046512108214395689366529674990907936480662552085846131207196478631337659015777450539904411040720798900988943286728457397979661371135423865967608829079549377504424969798480353921480569348392227937444218938604704010474802922904262108182419544042007662413214618743381963682702062590896864565431814369640921916769503432321001985450666198187403782829148235913481535906633145904262258207626182872648595274294833410253361397510944079864290670354488052048025799238218386002426539084183736377133611931663655132960921642407850852631381773470230464402680667794751627849045350748101947355939676603874344154108388204505819839867677954889877844445879649744541763813599029414528296789612698837491198156022278157850843550275295665335397808877023976394244075999704206090483686698436735630984679752954218211418782605537100574096220933876477709369604964356556924717669522638907880487971299548818649244221019547832263601313534692361508059440040965918647198762463896053990661674687676615273050487700640114334870524400094138710338638878338642109717337951696927531705719164732537114095608488768384956523267205235168230931572818750184287791439725332727734098446246028804990143138476627789760997269974644263215527687288023142690965310161593212202802017852207476178702419834058546530115659762474373715871678016616290643758241315081471022518461072060124756855222174693329251109597076617549364614078840828306282963915384972864711523358025091130494132757387163190271558747075715823989641509433184646920493891843429504896667811464323109517441509305097668504228548010213676899758989104359295547412653709180219687417988786306803951830520518890340316834278750174617427486743787382279723763972187149793894817701873310728191415754886202377161792408185137659306347352157071324395915226354761009140589648869466390461014337081195396505443804384304360472314187119116233565426646516873003279478362643216407089731859793572211185082603432529245735524741561669659485013203471960308152041879024331891896564792649547127827530158308974633560687179662697224645050335419162596796162643352361183185703718706682250009364839776600695691865563130312447573100446261391748364484281804069279781493167346774851879850283907318340806019656949746629935693799453762046356270031156114867732807187702933439551296200405502311397575022572190293369123430480485478906082552335568856143943712908622821313205968323073702502496719100394577867123012229413763803055805863474446240305668257392642274658315897577610024871561593096801293841854206104665554254240489877152749436138375312174475919464120720557825498932058782390594040216817206869072228452243391797225099166857271324881524133927849465968496122093912179485889795478972183870963219000596230681152954964779117972849618008056331722853323692766613910724080393201415859184552247492321218579155454961074761253249884560573001207833577738892682582696552762099958602199862431016700574821871322755254514246905458075017571977257671246880259404072569477643068834902929080029743210414945638564820543249185362133502601188957386894932751223638459880901634306684342975414109530770716146934348189043420696965801584849608891989142803199412040772588333016484669082426854628921360008168444352083276320092694442971388668840695708859293998282779708324112062544750214922616625350276611852854697316450475945371310752728306114183130555682949375676719039064926480975241147901904335504999840658630753073785265952348748576091030104739815105711948038809191796999868413325506419808360382566673855095119011670570869264576661295651052109935391500428773491427592065638376246512409861840163858052313339587701968210087880765606682803794886694614761779323435303519495312499323536841959518589148244528572092237935979606682855708747667168526811102515092113472404862156555762245404767689734105457340507517987918823809405463740590386301279304309529533535292237324287329316972686106382129253605331051493766070545371215280583524559134817479082158860203690033391676318965600123049713096084895871931222109220240759853794058328001721653602102065023645983017783140812894483364560506415022097164351520428068182030569311262238007225336847767362697297164276181430948824437393500116890520693323361548343637841417117762689769985099802781922831408818361297158609254604483322921445449239369966943002729500731936241247120450795484700327287152659507528781338409446236047212207835709146894942562615658476597356985707629363261677112424798792675641068397875772885472930092471982432984789051332772557986339294401551577016506278252825097931400610629012919913053028999445446062232798728632377271495364730822653398146900474177576325156624316043620638539293330830488691280697340564216441943828982675208837012557521974242513201195108885792425499838781156108575028288132753822656737948657994341716247301593467721202490470501381375565232706600538711165398109705208079082415466951731220979048482491716014402135793745837506174032081589922224371116446742228116063436007197239750677657632958959182790114231034919179124530174332689278606224807846400565883304852407708268925123220383713432375123911634754346314547194046540999882357720240060232887558712026125057132917865759922158478784836574018025834066126166804730971212795051066834402260175998547693155789600182237989994305954110391056559847462934634140847225481433051240128825413080840045846907454044758763246196580234624803895828243861054601647814402049588407718608469361364504499188578190734172815670231796135330984174160023342063725772300958760317941119187792477621866469256215691676169853149346668471405103679038988822075847268699040226625813557090669891970616404361735423554125282815089965389546883265769508492889000522067270164623293972071291808602107666973724774917748825456514778472348162035570454313345489252393168446237485743657131148818525328171591339878700744754959302901277510405395046239936671834647823283697536271471236269366510087981904305117744909348758416529454318522021482090327622238434162772553351740236413605395148995280343663777372859430507360023812527177674127772421930788005702097692926074382271750988021283382789629299842256881037464813595922204494491508555720796296217583521938976771291821998989304898178050507269250259127724059567094103030706749338819719930891107944909315048874306776995292099173883908132814005720785998634881409836090311269773567269327284661826998333597118815365537686182554577886836438512912177009315698928051620543021372890973628176177684909697818160444379743139339191565648818381669670334993930492560085330115884583110548911798264027778086646038826562580847941379470559141362100287522073001920641903518300381345805550559589924729968709989944504481051819764263028283306904166928588074993582851230095520710075084208580389788123841601473246772220987828495150260109972676564039417901400936843345125197347007702819581108665800154362560235395816235230746365428547239938339809813915007019543701948080452725017793897864296565729030438167260778897175498819697655195995840867979034347064037153053820454164681987123797317978918073118711512100066691580990729790356513790389329773088913330658739764962396314842226046911385007594959883986496489947921498029085733919363055521583741477378751041715874397977601981507831958654229118066155698189481939118554519502518577143907970847019413061102128510488068720191315091888088921564928243490674729927959893748468082257282995931166569881962561858988545832443671192577394895147271647783951339217391034350381952743400665972934370200071586552535652155569283189313575095999117550321551832111625652241595525944289095486864289625844370406329908524040651463281620958498607216364030094269900779442837525281121049274587454528822584529833501916119998884757228994141135275226411953602456431362827477851568455383847916331811859163657441922587202745019866963202152916485326837146028788736935129950129479267071724182739429315346886524798296580712137656416544331466862006495579032646086966663993861881688976493338088654419179421628993382749511827227663043918676073066819788846905106998195871519614313934887374406522500257759130146762378461845728262589620671415234725963068911578284122932883645525695230721210527375341776716506434875133332741955860360500475030415847002675890438994866426207200484388044435429545227726190957558418578948301426403170634084613289078077957124403608994215976412078593453454959597334847823695405907937271615920384995256359222488769332513512569565051868653979963610808076632235059010815278429425193477186425288623761726651193660905267344032574370024435144514428192982120470229770222034971845552856446534832734244470097131254751616214714299489577986001371576175169508709997046760949349581207690890052540748296011737351817496646282235006495631100996617650774865185812096773084357948032665250261196665313202233082899317410500446629336641826335858903429908301696414872305502128873021807464296089183261909278639537202935827897797820333533445930956231028463326549454662903394164387337036652100147614415446447487079618613687117046726861456351258446088710177570827166595659860346091290498520808256214269633752543639221779654115765032074534930286076136241129143714642494943824623542317045630175475925016507370808963338348127230874414758782340156771751709394076536615418765691860942784803126753307534189373082374608284730059756230076514135041145869362669938022793078594303730030111705187122803651832200068803392063728404768516543746872012446220208445962210888548179402617867210316508973857568548575773965970336586415967582030930850958942009298725239676447421179522082233587756785238695287328060435911576276419381090203648145779058135582325903082841359561764481054413999936731842189124174997246282251301407975965577761252476026476394594218210278774653365707011545165765192564087671047293304234296237225586479911362698959805071861725416845725467158490407980533729249079969078928239737871313282495012479072247762138724674298496185741575847839810361742404864660683368918197854176159740984019967027963119318817542146643014135994312168747656817413216502645719525467421319902972193847598703107734432747138492956220100628347123219258299478285810531291023309313372186628938067127282870024523491357501298458736758990298129631011119621304265366413866009116099602837647754013920532828575978067363165933082404015910426990282015510116495000130853077381362297083259941878827939298206328022014801441689764928132045384242385994969041694834372825181803888943448211249469628577556252669103755981747272360017475960178166319988454268932048072311838669614735691261666443891189192873009874472383740511926782578317887494300690618694518852072930549785719095596333116992693325296749822160661930146710362552486624670270099573681200988477728325110235596141633569087835283611484992079449439890187249789486517123635251768524744415318817885754071555847404359433114602017963715336038889017615959510172826363069705201251085619204868436817607202995168018825364165019472466169780190072876020575122805866751950316376405019684213504667426806040099812205281498690386066601157348470674385409847641746739415540906732040118652315754981506456912586230489121399103719495716075912712740478429804540492075259809806555753265922503103300801357273237185450083071320827803987983472295527489232993773704971762786312965384258031522699782800329520018835566844122283015368589012885948060538737747694969060870116569762909382698077526823286964112430269712078573644389045642554012275273929406995611985052185214096316977937448118610858604415087404326083230101445989258362792487385761710182965093935901053541596525409614769059667118968614972076901969797210806680049188294776185192122724073673725561504121191621341188869183934137658996220632189458351505950726163997911507484930453368978514885575490900790155513500151659880911153176091248038005511850155055470097029347312594574233038413224540330465420635860038349085356945880459198694705996616094262192529665594963051639521767037722335982617453022184895502305556721414353957456532660454597474914118601071162482328714573927564890585218556139616899868896994200016196938742833300929039067783577520320874771433087126041560182411430984205974345451445686497298713917807638914200162315296490496347386999381368310621110939941211657834992707175783829769365637973091420825516318958417652866408588744950310691670431958459668474600551883452748298108045353011971509732571491767995979035801573880435803810647254254122089023455388559099656037684610295381291147897182576224219143606339935907555225926284356575901870364230271645030667505766460979515333540568533839051168065691921662807775618301105111833663969773153886507832306343318279801985207390962451595246136877152084523205252850877004259014773171669732713718776459901861665141087304747473115951912352643884247787768646824612408188626520795761244989756999614246172477424325251040321396220080381146012453474175209317440594287557099392193686023987744029144690876173806582094422662981988262431864082556616802585303326648009072382048144737622535902356971590107721623211810038192116836196669858664297276747682169756675883187912260115462089716584765740494493037822966155205247718200473902182705288369020257382266062330185888286093310343329888394393115148954986998309455718878529196129803611590470788666465408055647914764691535803486473773314673033628420293483839888890417649664367315024096268240866389740787126391698272175994408965320073474832509111439216904228448260967360096028452923363687506352948167226332586093639421989744265844177903527414793242373280070446103732908340820856587860744497886838643030113656577541338738866078679638718689837261674329935091883250111601870666947905920228041966535779089830355626634038223164545807601653659239491818092656695781478809281116900087735884333273446774540153026082531008067301821683880989065833314824903039441828622301826431989577825800101377840092420870007432819524055929354131911691758989096898279614365073423956619241584657616408562303202760104876693024838751362714675659524078171082069338995958650822120008998433077920878871468413311618808260136427633631573265589458548220944695235238127842888363745489344637699524443184708495233864436295180631584688610689280288523193291853094378217053049091667713072421957650978231266439364729604781763610438542587694891225559474468052660340628123750530630595916854692404079321948503164247383696575333609754344814666878008207466347504463313969699006975761144073735752376914567840547957927886711916846007357451401140340709261406472297931133751189081018837897674403838139224374065276176830863515382846290473159209165437027613315878017379516627365332379469518318766442248786239267432484278909073866543196297550072986685724361108139298069923747634543618968899950793332895233102102472096361624945173545601019747626980460099814601263485750371332575919851732710504151714409643826773681992420585731502964030708509008623914565625108302911502443789175947310496587089528878965271569063917503989406664051233175334532634135878713912334510426105865578769231291643715550999864626342700454143670980559157998685027467489000923109073657541087759323376211170979379063972801331064413925124551443662241031033287656820030631676031024893988426228714409040893891076820618740881778333483578424567380281881454207783138716768899554664474695411905187795995977649587445310259607064024859411390502131073904114343648516060741397645608296519928852547590222146199523118637272191313637956006000793895780249476955611443929451444569889961488471390626018788048371217235451661752857772302021198283459173296766487619068897376395496682948669634886970247225619652803060748499669007621379035481206574879747731921758636030667863996869354435590067488513050347079452925866405342443285749505443905810263745146381345007712880806643139239514674950694256962461098386847856964099983525781439524898413913346350641123249203915919383073281406691667279554890086942715257946523571671101278415353923669811679461701207170805081894480304954222827601057645827553875432884112965176806223524996295923844638499032673262230718068145769981061878563888253865590876869546621212949182270594705533080626089172457136157845003875934659670167077150115121595515207150905959542092588314294365146842629496441250254942916202745200860648866435620218933000855826911536524263433628405011425579107098136209982332592438770406943520149792367653170915248398071597541771870136120500455805631684234717519396686674774535813251009222569262811777268964932808032743457050131293543278290079695491006917527694244895336772598655276796103019082803737635461016941510882589562109342575725794105814096531255938162662107685408065385596318975770328203626825994050551555981111508825466105539476208721598464006243029428539540733703908252494835389899216178697988007831807512769374904374201321677829618101603758645552238628639289520334392390236700991872030885288673388453329021141662722834914018924480110814822252516025491694636756592902656776878511363910846937900399751025163871409430955127237610203351956157350712361396418071889238754614482803161108193405150400967376766521425399602146242515949991823357220558422853286381372789700192485428888831397002020145500729698777609198661359837039441026721492893316033158011540891017574118502007699912314848947557454834115264562223842021335537697168199084197419587554974820007275733345322597322152663256808710013310436350538662874996059761613961773681694305638267084714241186958580230958294434971945986002173670886153367251560867826676856811626006308676464519628716520064213313889823838046775432931974910093450545450620362689108143994092759335053917227107286917551456400637747386381167139930026908753440681780064082677021431919239969321699344057805474506081930729113706255799284676126285846902242727303915688597415891966040353086239377030344832019546773553786245463763684029295066472582260093353943978282287677236127705072501008299028597189096347708472118055681008499736469750218941616159944812666304283069268767636619820450239116802633450391390020248111772431565502513633994822567121372244925539293092340868559054242960518242925544121698413132727052613871278089656948027513512168675026883141405819715064848838622853473873043029696075988103595788844244358168389115638630774183783875350846668170664113969299410226170223623205859398611243548449111999390619889790889361553419604755447180881716826889034922239434637651733931150911480252205103162501670430837257208732636247880291381236482518975997135343314811177443052864474829865864814875432645574177843234065313549648100757408890392537016163184175217541405288993441990732632545834208988655184012052329379149052808508471903971958314061844680422847634088219540303529709990821768503572714752671271050597340240663303805674546615901209479538723257603485548081319496628988324689627183737322183852540524242804838657403679474920408958553696716091323090592904344402451959323942407735413086408687640540546971574388676642145874528987682526504699515562887165295342736531947936701044219528310315127572676231153505206786347128929885184183936589765789012122976730179381129267618170131244016681658770290645179611813259508050223340628374064402643179188943923659135643008020396969234745714350459799645770658473097260091398095526000865860966995572972420915002318494386527821495804157530139800600917227757323541387691936042571934623364561954905674050034819948777958836720955406223490602891847714160194896256262469528552748491491577090873351550048537254435051562667259461551057418764964634132816206238229511287301451846203281147007275618114400320840035272484586758132428108795946827493888872309424625434823988651761026696225162361279481889180100225472182162696665346746351638914778672877996302001052539226115624451940849556630673269336698620820354039808679457987184032377099460081396627633732213822615845372136347226642444405685094110382215914790351268895107426002808490849691919972277373227036842297286905512800952865386354313501490008863457051543782666655762181205771707090249606065959503096990291798815568419129053786755431708532028403826638986367079845938639480862893362139580411485677492849808366443392653981934584332582813510468114667366622546808619779911630791911154676049149264150386432516901628090334082144750046352373706041420920276462574726985222524041600358392404604727394589383868925093166166006652308938447463583430004737597760240382086607572252294028475519430576185876158713083897964278856139724697395944626441338210130561714256263800641397541297985319028362930584281761490241523767790993414935721470684334914311160268549969569820510246101044036575139334642433159757291903738492894906361300107338723715901990777258102586915203101507710012224529979065185638747357296952653154971089406307858338238840940978120601032048316958656724108993146321885898354359749010586805202216549214752202280398495149503621859227685759269398351061228097237503244400887939966450256660778581212849567494142892358367681674026520678839284601055266783995827880338893472064801817930391824062052340697169940410915797665387013012576843419374279114803576650657043723325330784733669348568297294896887013808525573046112261969545303359383240077857968203346426495862977135081223090926589901218179500843981031566836160625290873071970014772786548564993572767300464132240491909287562227523318137881333774357907915760461667751817437686782846880483194037823015138875557979780623161530984877187591803718886271412197548375437184864516335914462574063484171565122741028546524155174335612651317092268953206307623494520565184464916033599153297911514506610562945572949454347130046011031996366058702359417836173408087111369948668266389766170194668552037762883459737599210183332305733090999633793407276313786901404614760853553241634739121952087196272310178459929815696675013344176181116288284475086463419087743612897903000554021804028982875453280314241040112013128887346146875508737614871277563239718348129608434043132782349135354542229832336366255531984238136373898950987645903353796413789281131886178027784748717322700736123855827378896735171263442636922574917645059202852885835924951314037939235417542084883046853018517449643275074902535222135219313376874792244921041648149665545260888230744401799814171491408199872774006680388034199768042154440810221977780254735009060392166080035956032415080938859910913942723391701634077009388372599555871381138332996900554796222056762692420547919161731912445921330271435774748078991189974473560403566668104261269244421701858094707323538803462050427881806308467258046995295128686948315171426809239056897421694226620998941167954856979627022184140240170780684588828479882967072255979442060157305365918297313359345213011082524078593014628827656503576119980413393691764464460443303680999975541591649629221047386059135425574702705679617575068837702123887357300432890640075732277633417545475671738227497035542545521381365856438912713524894323989006003574499826464096595575119202785405215230783090445938702493405801438286858518168396504563897743626450570115412698515543716147335467972703043659609649940746331672282272657542832854738837488164706802395700019599815425543110328975244091657098523935328542277022762915311996294046582185885144063465721322190669136099987045837614234698689874913805790625347478829463564764175021376453797548022061571744124829554749687077039307030315781068735970283354522705865942556770066596758016101063330052129080921787515992238461042142881508960936049487159546747163798240655324770727177439985013821933193135349601456203882428533106108613154239481715601687881674438463230698481307020439061545449518528512663007520692165445537355952333404379527827589606234934175730609672568881507713966460345146046341687775572458038038188404786325873311939557531065022032465294583696843976374607192021461736350693805583763969464426072516373483296913671497699933876222051100168164387789803790617294730203710342450307549035401785580261065471645093370117926801018321462594077733672488919570414971513220079325801159429619674648999848039100344413260007608106811268379008018123366293845691352039988753893505534946445392406242511406384056803010311207717750374081496603524355096176783766478862334290891560955375731338908670280395602102728816268146655868899858768780252770504307732887448271806659043592920710074266986430367149902341596296208087985123053535417264735351052272555177019994848624752447542498265085842380212781589266429127836561320481534368779225570643598421080719340036197972457360766608994913469234225309973496872738875680241255853176559762015433959764997305205247269419881514776571348433117876333859862945509713079344113399487189072952032156321352964426682610927898860575182363700677991219449088055870848016120005877502709965097303642885915129673860237436918205146008852473959935727824819500383165354486962680963938334321020512722692664457849943808331517463726934708436925569244229517037754330112696694828456229336034224643395082317975374700883730890501836879486880046702088372744614447497664813517431236783837726858099175442392655491747293746893670676473681577683900903134238057157999547430379885737128859528120530355472405871411550023923616769430711108857703845970413338778576001855261640717186403728948298589047785593486771819538769016632584424935885829926297758421026030298302115981270724316069829335167913898725927628438103157438879303492659234817818346262262142875866978796303068079749840667826460932126568662921233249901219896126161529693809241407669014726864860860212789749700068479678309834074680393514120297067028691696549109724739113959629352901896086175338914911201851358448304613838308779010774075800062807621009825481803803045912902799551752621322292588897067537228303567694704809656100149797430270051254788942544759545555417795806329690530668068854228917142078434960813225618321501358966622382613365911678944952134627435547609837328347758513534515191855705300603205730251466669387055638596298524626145194064272089269903279787002807776544974224042791063133337710571738549799396667377925808627171180843188859717014340623614591674369556989387250857502467503529993994882751930615859577478117784818419479600104346035626956294219413461979637859565232600818065652075741412446109083311760288841074058852426057707589928653834394361807636477262839682769436227483803765028402176553447767976377426996843641626628175534718108219272296056961822440011493589177022630963377379011922815012893896439321114800043075362470606217020857077965623364339582748094659076955847568222617523953434007125520093223511649870000916031712614005704162026535775989534711267815167750985593563912646464722216895902973120152500128164237709554996457210854957019063391079294230230772322571812982109646046098495166260760384493764713649823172023458503454395242141675174433517152356799770243187534898287586002032279914442202683386050458950655004843630592308816762552263354580321387941752615241198028168219152718819918724754795962342871494407716480098223899282044047097605516469611543749712313209922837541183700445768643158679680276480770554954854534504148292494797782752753191666094091607710935525089791968686280394553754300255844508713438884940336314077794423059523349551438010391169123258623731861682792908060966555857733673428603547884163774822368995263262758950792917069794710617599533886583738291539777566508989399651716811293379229052476331399997340997726949495220837527314556139315783390222240160147789442550888215928114673893403537108945950384999753545847948634941357095171042091702328019569434899058333748582313579198679871437035902557386434649266965685962934946693092296999509908284337403072496950354616130019778792176584575698969965754727188054930555392068091897523212906168204244224143602410156375271966704961865357694734821291517955237229417805662303571213443496860298675452671429689286018206093620910035823233849621596378518757608404478976611042131953705497879290643637997808124582772616684784443034545077424232111938756245102624148546975002271589944112504434008934902105822959462040768090042105346105090408867691128322289338911835363670020440036139120310675699203281205025948659528276046377129090091520526726649224526613105225816320851028261955780347250536722074645533477230672249087174502247108870136408276148657294114475583336675140703993862280625479103104116436981935021908644648982623473833285443979127207053630747893391304051619007606678794949835591667808251539813890083357274295738536084599144887434785417959409755728590491062381450679742056397902479813765555041442386082984513546764883134524919891505257696941319407022570362491774941365314708044953350208175601810275361642087681261351608502903122964692975824004784935836094531824471390514575728781372658792088357279332197371992077996278399479160403883079296909955957663677612082158953805983841497932251455804456287809217321638071529877904702142773214193013323498674759398203837253316423497597065780530817860191562070287591790448963821467058910063576666109933576645721449138597721800894148726508080055551302883386564911522769468215327724161556875038152780473874230517727366104279103254939540248249257841841165439093784675152037402731148701522369283306509202845897727899070534961692413253126311237153036201176561723089561120605734271432856617634959230206159740661828825333578457630566739282597693909586295053844958698664074195801680909345236209135409816813245969456688016357945083185208840030648298934851712254893968177148735722283339089557502107776198646353118960263878630875190388744616533733281497790856184155651990367207831316784208017697297652551242145267303967347309168816620052284014969388634193591361811215058005237814354780046681976292026019567817160446238763164516338061544500238483031288973106311590752966707193970043378083358458801162753659270584248856186263217416620466902071976934160484289896264478966540169560564674298728679940480364055129943446251384950532719584190262357353142249561103636187111557750033911092345386563254986844580440652467839055282235930236033772870234783599681120319086759763018416576231359556498631472676531402122329233730565204997364529032450372455329552949447043423230128457123207604793450609677580192138052542909136665562505244433700355708514130409147968510768942756976778518764642192088376481393376883445660586361998651964295424730680962562421127926710429978272549580994455103218020799126339458671118172434465365158661089067538695106406093043185843334826776360706996373229530352131036047524077086338532377161055925161426878549721695079557371768339409812116894228633493407834452188477116916661301713904103376995232617423040031517145841468410587900272112939819887510097868708064947052399468184398320828428980947470997699496747330959356038322928179132377794767120440569635646443813903972197058342620630399321559983530854007545491229055973093633103040183005982631823589634641001090597471718380040251895640669022400689659979758136138930450385558296962093837762291813763443285913082969039775648482375150576132838967790179059422300566089691430059461882075301145149755217559986763766335077797310171649392905240272679512105569177968623645590539881362265362223300807280245641136373879584751476297798071180223574343307838448785652898195680269914519548402056871696590594768953110497018900267838910782566153975917730461404200077457918100109289329230814198184390928232674544021178718535305142105396614080322440698620387445460783138658081619547207056067835967618975015618711639490658998695877695037526924220243440264341082138417902781357447332550247009865172722878947475341705266999568364675873535985880685726284611624035359779359709866818806527302540728004597900379632827288697453596553033245449114267124253913940467436688566582212350268504739954668291484951983000431841441895738269677507424802847360562101304265288950477392225804932792983011243612647238985891092950899652132833050676504030433418400655272911767273188574373286437422694027754920560006242940888386738419906370738898750266103164952921381775450332483660064635241416964760430475305112145269004508978615735346088737502515961872292321027334070883933221079742741862681891785817202910694510038616583785712723221389020114249675484259409476773167067522320708328699972249676806344428914325477977137545873434242977656316211183771403484425959093126257496030966785470013389806557056662191459975508590552265504006871272705932386838211566915370696433550921068521522620842745270117231912650280742776135039381288289753967838295606128269025590222287664224017287782195388231115926523667997905579421900309748960105138165539420837219306808172172157842952835670627506883302732849879054360214907123507691318834033364532263553363315571384846865822550595023704136292183952121184244705587600500717039689732716556201706885055915783289750370237977033734899437979930505216713102858580500032711885979470107694806205061855644416531036720851896572729945506123369084319645036614569576159602993637659961669452192588241605849008140704123306850369400376930979360234502012052136942397005858912163857913401144496925794527048616004906344497905614723378626675625476974150765915579321353789860283745799076333099901210679910198485276717671312671763334340153571091600079470358875272969345117947433576775629495364976094077941996654997648847720208645719702012520699554901141613081717049885059952274356903532488975004561864307908465689364135389487166819592375105088852196193797871631517796175554416498427231822508630271762751653085568557912110980799333897628317314431641520669371786023893836185974895237664458528547467372082059204917482066564343211914207423371251489653762942059617788590464379083165274111332416620279930270987564110694857965635709591813822025784466825265752786086226647499922761440837615253597050143428877284135113533335102412062108285522588700707447375758228598620172275471232478693970277391423882634012610012351241897062050923700664554090687611957590795707112826902462381421099008039034750703611992622084321550058717683083745169185293806781822439706376284714979846785952873851622365075102045013977014547651028653780912513842496542627314270325384803728277208281030842265513859778126257488656743379894589799297536021696504737030212381140247339157771653811259105291745855596176082888800100046125306043501620416747248288031255291842956248291631313452977498450497881476693948717487226068662243307230611960985612702740533036281641701915047114534146203136490404977204268814409915975856682941493212187482694343864638060435302308757241743993636167521783694639247946150506596575442858598130064831206749507611216657126655271355746608618722604062159991141269434255777909496525958962820510608189568766788746637080808048347446223128194141466146566215380262693848563928887441270121257525295586728611649582942619492599552900161220918153123790213539301315654666182440986108163804464167708474871129504619191857706155528899611040670815204240928384840015697184466374302292680378332092963103589140607998803552481369307857100455250568547386935784427826816192419079994342816948877099759906470640874017808567082483336833255308833390758709217601192926016340914841841907418292048345941185810209729043384002535499762987682738952196649275474998248625601140069260680780409644412262011108964431731747414751999713075074894961523273917181963451969952760508055919772774984180819405020669797824176955117123523122729671365104232378016910672997145675813201736372546391557376227439659327002270478976881189844935573474509421779546741311500933898366716965159193870137583896884476164190446736664482488478044408698653357565959035101398877967056682713844714060780388714533112828421381882884792841355369813602080189647122176175484360269973327897464050147032663731355096306694340086089066490917561959792034970595588381966935643728109032807786490719965015075864172182184589566012971960747097207877269508175336078780907883193053444413950481957333299928682885806390657721036491696099845681860956595741722909756899166303326239574206764478464966640529635569217957951597468407314860923547167331608908222454440293871749488348876069651207378036379655965800249372097185758243742943755710262028811573758598427303846658790038050092069703974181732969473501712228381022960595085132594696710665253258766572905132467582583759081087947381449139072154913628954564377797799592429397026883043764658689065324066795066931879925375788804891879874070917766925873300450997972491233044549946441161696856269382858968513390452121636591250460201138866936747175233735129839484459998375268349018936472405053965992175685632130058120891016293232514402755396665169981962832543174918904801967914542686300110938411662958413825066748396382833277603260567984255561687219798149431513375185581146643962787612907880843311404532566353650307312632933844736005769393494142274988611215059002793682792306383526856973704219854016029362545013007616028830264013214808358794270175397364335571457336360159612053127546140115612560372282864680579605694768071595234158014754715359195730060787051989485846915538635158182142188223962241118228115189101034121341685585033589415801353922622650967764356105859974571411854331279677064450676184503169057446534015672378470299961220065006644352403395677808269644352111317210771608842333179090556013285456110815283951344689846601485067857497727369042397767277459615548784075637698366162299444363668288992647005400963740783941702332798178756371650669514747830220995406531715648266666337926934230301615051784212366569653107941747766703868470209931386921850473003690479346367559014456819702994630272649871128572974689968012732640362917353400710898462956078128229278915637765092083867978816480265676379287685472691042748616694041661005492645577494453462756188891490177717178887561853935138936599232092767699258779718617813368579911707763372962889609056131517282314732584041044989732058956577310793516793092913349308541228526531913780055073252461769000865073435251397315331574646476845089910688143131867769377434458403122893976402737862712659419123998071875848403006711935246689319951269220964498523417278446775792521424216070190218192294197520372739758970868836003901116586463496018537978759650703949410076485956181237425456049191588795960082449516492852814915336445669774452253947194624668969069574184026870738190711402511181756594216218593981615801338151717724663176397010656396405964155389548492102150247932224901996041505080699920017245978584506581304146799651868920438063361024137319799460732814001483937764520924011688976338803515435929998524966267922094184308489959253288185122286658697373316622653516184397706755293764513232542150612680080343863523978408657171236194309108439150217921072511094637142355278632329146493258299502263632099669202806404193685847199332649896457076662536402194666282137433064265394751255438710782982446201099615354895750543721721595438682676689871410724260460077449080778602011164974750172298816015460985135974075394305454085679123593201585519411990836414789583427642638822266217034263869605405019590274413318559022060039505588474701194212597905238884641399595350351540079371167233561835104011819640483726520053990075893404773795885032670078031771628315607976876051410598104195809363815161472836601448087306104734277449157222372148267984616879935026642957957986614215107269207165354361915400024544524084285562589202053977029841439171864175146382333182869267938731253931195847890921499102348591486194898142235481633315561396433503015643618286927685602733461319089739303641323869221692183785692925391083523319040761619979334039214165026509990489179147882006327969577705539772548367095968721405558314500072182732398049507813491989590652146852120730521645781376415585700844527205943924395742813090669285940714194043242425257908459614018188865105824059976515636512856628550409869487613528023902223513357894262192170538602742138741316135370133996644906477247481226350006111701472131892346596326323662476824593291267232186162957368709260531509617271988649598552046151941301690304635366668431091292361336471139387571550173407425912865074419888875227984117038019277103589556364045976200708653557810607580511106801485466860282689865964886263059800472365953392407750134685569650201800444166237384625988234214930452925002285654008453174117690253492346714872462672542781512797117273257125929792105980579680021939339593812005781917170069601235284747057726125091727205242681858410386149915110505776997718471415921361085182975836250686897125941513523898739181008149109630254759949609103734274302899012542463711081311539271244715984520347623945656218896675862307083341333446853726107658851224314436177589476591667649660287181648088387340995901447610127301199131669900584920394002991962465096800652620958318519129130360750100509738009363678881444141531346315950488039185257560431274425632056668208460618325173186243679937502481893230267457163039241586663227589589570556474924900603071475850774736416586941907179962500520832382563372951420508403602047912220972311801043383599515004100404196710512028649343127980914182971351204945943757010077751695963561707268008203915901942425278244648798907443190566037037628715059646174144204176219240744039686773093466512197111771350100450989618437855490228543964410347539615357511337182433158330204683886704528996814420098638356224813614187298224819045183158825161235880674086994999818919136442220169476918955491319957767956719780894649447287962808681378716960638594441230565677488510331951057889113049004103446743650139800041502555438112104061383230294069504485838048470196010845091836901790221852265514370250220729212097034390109306814390681285221735908466084028884638095251056393189333039826703367009592529300624416905276608510021443579314974489346553956534553166469915180549183040321443464375429246747195251847984620232276295317417033250122827219931847661294969647959160241685171135928001253329150874447212527144907468147041357627535707171337454788080527350090216854058595633638405078447213896028200782384755156728580157793670375629033703108966246127934514176430120978302908357857440700113808237661523364350692784456762987388819459700409088589111768720315723089976481695746001622514613670137448890827715836353192157747927227219513203996141036658747318934970497667452843643422774498911060307279225140880012647666714882812202823165903337410901210689838220942872096196754762660984629748063086894008030337271527034526623504533130393586038497530816473922943803529802525170522585985036245111018447822658329967016190636454776573925525579619397506270615107568427107537001156597485529640962741541612466036558286485087701706829815900981585904401573071659749583880659721166983477042305315113299837696399339757957056571639511514297500512832498739551504499488880128140538030822903517826792111352520218413999201102236527805033048990921217494757758363133537990399406081819194757764796453540803663754541510796291456057955309252766438154160026474345886277265334761205304359281948498379348352792621530075030229834230433669245696996979359230121556786403865341864614899766147535537320119902002150065142879665627914630092719196076558541289992770182129876159444736665196296153828656781728959327612158563011877171307811917467279017225172059923866708040970227783022477194780229555935304031862673771808711683793573331514246216324627242971890536667948003348587197005385466101930848205657076120751000426317188655499175255569182844137526441681709020424522460136550111351733304100652194447559254576698110431100070648314641200702425084769012779293889096546244908878321487323869039191299391550137977428467827201172002162383170281870700119125326476304031445806653928057905529723839617944865322982733983742850500915725519507004534302309524929289190135692846656393209518042609964842390399134095767132131670345480483395621884838307204410631362578645011542078891959808640238112946541745201367705813782130903536350503538818073547540433343789690637839310055410163459993303388363715388546817972994495747043677024079359982475398230297156677675490467892665075503668994935707073785034209932329178852720759579844849490696903707622102399645116032701012474519101826039451879028548768652322996632328167200136415421311467298540571046514122832291959473703381131889447842634954549483916613353989414315974640434924885977335766695507381183257909093207918625493846084940663080629874515610334918428641573570203025469053168435096273796729855233584617501609475554811958212588216013249020065279668075957232514966201405104316178742550497350025699976204081644568260577921249687665568080259916499296423667294831859327697109973931763238166012663217044203091309407754415039769141160533474447096773839271022151302054230906652025687560621734854716780752494628761227093392515379060917515302800188045178362091663865793992768994046727081105788357729359460319896806192403334237266361772935543906217222166352723490527649740405936037474578157191297294515893916410366403091878256003358584816081610738239248991542760594306193271249981116819685643967035583383438689529616738079017158016407334647065478664045365704672027076456031083695790091048230391490172962064682479235750760890650879570232375789707577493662220289212249898188536602650401113250782811202425938736506661917037197173445285454048806896522725244134567414264955345501429260961886277361877841201820644270247778744319002445800212854821358557330354600232255724930599923094089927294822126769523206873769781289333401035844542724160910320414520540400792024707305289242591949458926460533816428680819658298414864243877007124568936854532482883971143612946030270548186011649429870303860020204161280269423039483075011226903201529540550660851903156409632548587468090050629678283046293274361268640504649584723399888948416142858226381388320719750100269501757785066937642072763127169109270227654486075877515020839983391444368818536612771260380850553800108064762099717928693815459268590587036670298417555280874628659594609613791336806823324201779994787823213132592839359673409943145350189302450859792353874741890039592461166007114576344924757448535824092116770099266254209996760887072315342785458073995731084914926124489761005115586906067053263007996780396939575086150447364149024707463027077123503394811465704194493462513176341542677494895688494341830872017611449944075088383584470709727382633934985104814399777027971347547483617996680743282813798634861698196615281491115865438248034691840296482725591286645349990326601779583043157406725110635446894153175846632482330386165875188725094792450991451880245496894597710848852730776427408611668849810171624206365386555030855007316792977493418418848818548553213607273152569258992407219338533515456999902979661197236269477947878256236570966348140351350737521439745949739069937714115709623827675270983658576774099272880074533784644402411136793358744016622530391296955782967954149219465453260805347989235033471044718441857411721138244869240449265369991453957769246336337182060603947759915431702313511596743873477272479731557216947967288615693858243622949039298536859541667041544177243665729999490105181696582975525407431616425669079992042786193213133755166123878509761076612329593540265954777050501265594551659859619817609204638959800313155134772769882671840813806531188784069831030566603602854856310219734303747854559555383848857217448843649962207666047698836724632632008587027600911613816567816518352512056681245983420542594789630316093709442682207363536516018903413686482424484145604167868635687836536098615730940776061036466658346862643863532214329234268046056540578269980798778806759703066298837728335462163702718616614228735540670283238655222920672429585052812250296816767716909305250626425002688666113594394257617684726273174580661778977036191078164568250523195701561190324295006564438173284961528195155677727588137872784270560512657337849458957860530191572779170557204083415416809412930644288757675468334228795550953145888918487950367096742384119250819628138315259706200962768133028706193582041783249126648507884009275520438628316233648540624298363871484843392198638556117512838540718660209336426552374774743243553390672574592468054212286374302793118275942424155341912797095706509718391533985296568500299364979236806759339033521553616969903482232370830131080481486924753050482312819215494019017910296868366435274640675656246706350424399667029939107666564171793512871447670362813721303360948171478013977650778044012019690253060077087929729482789245765196431699921445103683952306619541518779851717531639083284863702870785785430423716019423971171842805366916727652667802269807690675886620473361240357309413621844428679035584743577271044286489738872796452276545738811570342276929199643733125581981416860077882999993988827716076333222066684110611220490501690977335663314349653981387749087437159144230098858010657051682097851254374598379545631646689891236524381440522799412895703672676304328341319421299890646842664247297152921754872059612625928930720218831757350182506011742435544381941056844442224111120722039078347302750270008462623717352427909070086103212784583720456233387262174461801476751189597695229653517240468984675636815801290169286225383617210415120082214040565602160077809903433925907109721823351567834612702766330430803908844574038648534071186222339986526817522563537159421330263100255471778866872070028751699480535825243897027238354707138151014854673383476428535413442236291715052590879656421164336024086258517572015871351038090218148460343523145169095624544567217101886560953000589359862074403339692283918257820436905930157918524433883526106211014594244369820276257995187946198158611161857866159286246566070269320389519115840568429876347880301437724059035882551365355352158839744853620389678167046395033158016427365422608558616190935181040032896048613259212773864352375530318712997608472067287216498668402419852250610636900458254935784075023934599459722640481048048685507040575699616805829058554403137403223830658023858549038123899932947173701329727773640448824328227288886745233790312744389239270014634163809834109142339726171479873822847035769007593042653450656614246518766231014868458837651397419890750207132456016146426474048044583489966821190321081943067514039016312983544954090713662136841830287922168048630411627614484217501411137597338550285285880591174883740601878247591452493923287669598275832801701545962160211665079445015276229599330273984420950607171048938080164038157841615615902831896349466476218374692653047552122394169002425088296242033796047703297511261311148607980206495857530217551136081518875593319739631217645421608934395404550861078070169686347925076911759767429597387784427898357944671361899387160760949986692811845843302117989542631765203034536630055233572534278735140808744443734476052147698606916924689421340148142696425192199472583026206342521129744578025892591637048644612135121973509702785624422472700746723350667610575898867525653450414967748713632237728594027794719710522233462737034285660289648158539146943014340053803834657730446688061451191919384030792606944790832898583330733659731121403848164168916642783017001920982242772627145200336039178017276727441392237083078421917656419149989672226708066561378821237202960440742312755792414837907567903835035759903324600159348910698550170565055119479166178356788291389118380306872721170955567943713436919947756445313723094984705879771717869320342453203495773642833374632283889349814632737872301329752316281981218528469676312112619507864558462330186481738485176614360210240240957298717832038989200815444460143424355086215583008205357447159487607676417186256984512483551535930041341309855072036241094919836048484912509353839132123657263659783772527014262268422489057028537888317761942647498513917567001143977644609833029733738415904378698671434050830927141992203167446903078084358843005286474374287279675809520568267606039866366653264616275454292072633789313636845011451420806854700071405789601236491800330974027653836387659271694788339391282685657661544521995005879336143436873612800291150265388997150452486755448967455231622905443475824715516147691188070076447409319555473581835429653581351101768099576865269243620206744229117069352238116157063785921591943491040794303949712584793031892369720374781270967866616637727835791132191447661512173419224604667223753860445462189554514442234432562150633689746499403039103866439778761392288754278742873943872304374514051651401820055486146865543657165504030220213765949847931460119234344036269330968534341890383804091131715262459298656126121254258466860111463280648925838180361407063002462326352274479318792599018755175560569467658509293394194222039990632741541192829126486694124932696029010366060124275422166895654527967860155746750418329643703527477449855659124266131758402401449078282512775419488863090886404043073011071961150634571268704864128663010681568376673178373944105769877945335210307004723107333614248654801189642289288876214302942631554043505089475207727680129787573829164775054641254703758850803673811891775474773898848305420057835410804656412030398246233538718797344022151691017270561221146483627802699299517176904436342065672653321781547061915048069700213136501466841724023330394195566287324418771642518042062242960479675001021614367065190868701953525835689634161989044822888172643898017171380671942870175019855349058707220049158183181260251760993886924871730970392370715722061540920968694722622581005631434702004534668695091310568106367385605051868911223632741297318964670500733019141333922459118717456790634343525509457332633929329767840237992859525192192864283261448812226823240510235744651057144542138467201872364389595457921912791369828629970769104529566750255852612806194561833053857158559935575623223920426682972243689472101527697367391077467441250922886600080787964992815362036245753675966728152449566304209328151349480680022204094366395249405107277056736901959118378160927674473134439310430563089205186193043806629219373315663127915848161214531306682050051213638510871046723390133692824405859268042524935724795154005575446672547579326881463819130386009857208536692139659219423387421215595348894677182900111741967043837694411111724979207206099425122900167963258017097642348005789027290720964308559425275254973053838453705412644107965701352342710258058002549501785936881163345175074910015004299685382038237240707718071606671430191955556485894932162605555183383480828270273556274229599346322674934081297039589695917951483052326077591096879863783769071017589092987453666062199067650250456469310199847235765553335009309261981557398255223918278135304405291255026857344521913646356377574646853659085830321059461168877170525359073111506650711493791898133337131922543571478290068564446858703317750532259249580399161549188224229737936555862208091775477186913520294429429321259583477785122729006578235156912154073024356107299563346636474931976912351420926838204584283247486236577654046610286306586607118888333147512671462768745925799373971680615594127415990129219304836553573798693737797507775143387959947817806900595386641171529839809642190948299758312339284661917875455290562387560751331384071544621469254098838839860894885166835684983475043238954786578436321922376238510179816239094263887169252395306594379331074390145943292169167093617161347579541732088930257206246097788261027787000136791761624578029968972357408459183193162917161744037791278213310464384900168751932774749962385892787668526993333608442661937322206272187099784879292342206915904510825752657602524038255050960175688978058837921384646552396969214928397046048260033867814737924393074173021825890915133277871324433857265189371979081013452417520368397020655019795033655957328581832999259780163045040042045990569246966914371890640207247199873043504555152701968555287300648259354767531615544632594330143334013687731995141725913983209740042672585599476371646955813551220781945014620975820117703753627913765799307625826851600465282656606572991712824630831313311695384848573498187601610192012009380633725463609666391760273430999039997487012200481934532163946547825229214641280907539369989023173621197136530442545452055009880196149287228275094653743232943727538694610090597078195854584222450641222053637191781093024460459801498409876329584919820343170141293355355171347459917539582083023034623249661762889174807041716360078664159988439928067247395023582701068754018781842549549604207678619970002658866007725851814034866392251136521555314103352351396955914713439343930314787272530615185320249007207429096632391627449793857710506653344127420168646211149997503256819134065682183355523777156428344876639505731548748094822631360517475293058560849369184584425646766720189362724135274145241569745347351960471160358367678651536428041393089835109475939974605403901869801606350292851015629197770642010454983296562335870358028606771323062268399689213831123682237750792561794933501153767659411584349464926719870013246329289177761194382027621580929749142666173372361717074538965683352272831979663196833297492200275550776679013588380232852375307199337846034483849402201086987535415274305002393138761047488355854941731907941191830801493067634161941331097575801585265028666623189079854447783166770247144001934810658110373718010421076130423292001713699838883103034804206351445596879628748762168990090228328981949738744457022539607965504787675888303515018410819526451928734103085648657878390548932641655407992576333398951345322555975473130762058168739697388491200321991746700890766310909678014999809829719263902708742709366586329627631090236650331703333801161648380135199670164696542857992524845174798262574883067906028591894049359619223900170202250861689801280592050257714754777058064322220429801986322497990109305059698825732435046775188850322739455897401692047422704710839642647877926186152661243570976664578142578750813151350695052661984521837820197701429208000589953218728519849535152878751190070661297048194006101144376253087875039547279336999918059760509436954862453802980530596597403223422462096262219521352379203745686261764444396164055077014991818684879404158128864407787406262714096112868622142469178494815493620653507176829512359198943306640871062944947357311259573541670734243747210623885065190539659081538955903100281714622549233289468391057395367591894624794034079473925476107289481098256724827260908038746042613708579771079568323702927903944764712391085479655721168587573634839678335607328564607630407813072181970242813806544764600633482033664711968967787250477306986123638578129128513112979594525923094474104045817317429022135977207601281794129077955576907323581983044199582822917708891124288116981101480963155349977323093116761321870188700834996669031024029627470985893404588595641620017952299386737318739764640585395828816134334824747193847884322867647579309738451737342331639856479862603827493273659890574731561911488657056162669739236687877718406215246788983553440061897234118951004358320048949730107681655634654147449219875511855241938600176477197939912055210993337225292387774824185270926298499701897688477751061851288739159517673785580622836181262384812547279542498957094861192344252431475437908025118345039864266624823612618496157435416132258147818174529733765094398712750598951897418549990121203543523190905698519151225598879620873250297648618680090119541160011011539864550681858244535156671725323802529201477119136030089133560749039538079502496019631915535076349691964573183235457944552251067378478755374354892716008288686069429454718933774638077702142749991582242472621235060701903357764964034067272157975300133276975221091021504956731934912775782993551338040504015264959039047859296659774921179894281252982651085368551208162311737991465639035148074120196124035308670607873541283808626919369348690901539559790407513536727472821405189475277422776274891483385875558477381575026009006921100839063910792509453738655516017558029167897378142906995230339789934972082914990394863132977599232709152925690180219959817627335837985437870199430366737813330564043082528431365820211190006908549945480167836990154469625538996613185115602132832469223460023737709282942956755286541485600882701858882598749027329617260742300915053621925852296382321129601060069470116528927770398780836413259591415332178601708136728077825081658558390816236283336609333805195946931057721217680429075357582112358296128495965708723876898439785553394434025853388681208379820948967271680541129912083483591930497656478564143387229964427366254494389032477403079781654646022012897876074497638723974365862603366913242535360752624247012661873109646834619083109478340483254737267556498899564570735800944173111811812505477146037402467362439735364953064472768229883586687900814946022550810914043751173199430336012891745178892299788321794490251958223404633120505641408596163299759179915512342813999350178134143239799063091186275046134688648914871815931542385841747115122955562681768188945990641418673267730776089996478979345907733669294037122150811680133794416692643313511721629908095922911150741449889992476348500540577558146811844253383476536361887654662971518114938051261103302672226483000784743760181832118505401665811618155105082676714380978941175843211344791063856689520259302605190513885978281706296312811227378909517590520568296762724947325792618992676975046647490919654827370755709613290423060777641395426059308700315081784205651201473020385148886821144969419020017515893918312997798697040286914206715775446536838887792122197073543320059049627568029038078303012098757274861490236518881201422987899625256626729596608002507625634351688472489304345914501548209086830881958881677165069694484091573479126747435949002377519904317577095136901390544071715484563609595368487622624389949930933691531892397604984499305199995019583573376813962223309310070465623305872882898903218185395430169939023417673186052830603490229941251021004942041892281663539133949858786882880509146890798086632275385255995388450455038845929796502536859559959207327371677375313755813248324833637710405662753046074812047123584906663375195369589872577908245988385884655006448160849051214145348354352534997216097044691287709993560014633978969932803920454024994561726716915775014314449846954298343947422057628849997800838944579910615521436736839133707033234717055350670900255255113989006100950025454731875086464623749922154630475180795112287081039202192011004457510211460302083062484007223018368611056814042572841322597226846775296275375585621882832409156392187409299713311571152416426627205577103169302198487430576993830297944743838352083881377043617864384613217367574939114558782889427836065345946324806107949152658450918491751326737669016039902263167913805910168393785671002880492833315998430087302378082519974692532333495539415760527607863162971288726538672948160222703041683412571651155110336744614269015355046601500297283973070073610152966702461187377530972115873932701861495844146723705844040818932479378280662412354833348907931609257456656685331452557690196226580872262445210318230931382144841119109784857153004990053783361711224407238876125216205236923562056020816201704559663457868148187411218450044044819307472819205552237462248123582792041900302174881945175992663797182290523140379335130046366984615765618252149263401450396550110098143265483662392326716463731808300936957435117028746785247030924309142858999135994963614761912644802684715234126723286917436643545927262717956946187611319568631459553522160648680195967035185014389316032004281281362733573840100192692518336791579538981678588654443862772063185122115573064106283481727414637870289005895207408190998932057628499619740021176326075109534519493418398970876440030102474033673743728561471375904538900516078470906042439294759957153838720547001366133785476978825766915231728903173258979558153589330441761514938918298604046427546888205472992358620367865474909784801006288751674437173546797108395414296126755646122861864787753668776553689586557041396550352385862482565018934973705966439427000756743933418073572210715726528576873047637278626263576330881686572085602113585717336121901313641630295322539605759196629846700975286237997210481693440605684472472159596977065446374851775600137327660303655225269391746027855957285105666571625904504878205518109876098231032921750441732492225164924707487160710419345875024457024303152561786778219810802968865394897074395027925023872879585365650778853525281920039415718607513787749555705430996720436808178922283852729162936377500779939505213907699930765783850267698059400069984395680234059911328751857352609704242009323981182971362851281036334593150369112605622790139390811746854888176216919674281992809722812426738354471156254277695387030692698725514966524536259012216308562939315127895814139891020901830698510577576913303524956653593004462809019834215383400790169987646018696400851017362287799404873003601400705053930142302677665220056205240824127815291271265855430515216145093751817944215570557608294228121236346142333344920253046288908585403173648098460930706869765302671526978260754669631766919372831564045668128972577825886651321464744841453634070832832321935544489495021748732905324692740246806024718270608990368697031141314403917719094592744499398394677022996356599053050249337426570923277799146433771077842853027510203576064037661918299333161006825553408869756448917831253845665118714606582679478775053006771395691693646433612046109847002718112289662746920601736955994229613913888016753637066260605182895635749188097391003705573949845373374416172618743295939378101902577190390736111050162594325352608427467422636183239014618713795865153095052611561608238183953808801853163079525346650319349596730185406316663743340483999325081308075887328233734459635910431985834597860296840487193004889196283675714736073012263280921151574178357844443077592098109935930260573392614621048280134245171588037380235807757518697341111322628052825691566268329154300103679944331979885958090193181814360493180366442430668284210899835921874720959607525789848467284188722120333946294113708936916854889982364032717006341667874379311135099355283742007223162924648095857780182122805762291043359276752709887089852865046179163393046809227400617731348766898738134629710574588863798720209965897047744564318292763858724633659947090066990186737353247818619303012924683971791297459610804436319315539835123526578368717368541524038608275566290162954236146220556005758655286575132276228218745977314790305712009322344895466792138973521431368703365735328307340024191695009657686625471139833682462483804834731063619840987902427421374632800312242860394176498364342369011611539859382666006509167441034488403594042038018948379968308267837983940799318358838705951029232563286944175144893069330416781022816412004871862456755171809663526156055145626072476869623559626351992037614297926046755477943308806484983365427946652491412859303203134541565359738654850935972496598990902852511189104902778371284124734952524058904510462646430236080232846870109856235459929187976997027036601204607603322453294139411163331622883229646768033727855507641712472087644739369938237749190915307931091972868056514571618449508981905628757845672077218011025919797666424449530656992372446650414462978767294884358277229792542280865484739328795991151049126712415818803534081568703524095622506326871050723076950621331831220994614769752931098959600993045175004585468789358390588371868224543902349553788193820180754800067575972009962840319610610878330296142944650362434259191871451112960786923654489956054204169103067237705689345015573948596221454021400842246928550587360407522946459413726113754424706111390042212804396141212910535104717016376243760466450524910017398520350336699360912040067921239518589203492093359851340492754222271770218987330150109141046229685065380293692824785701681218686051264615934709603088616303865923800430913258191100139960631259843106806042595869041624690236440101724872415325431846104040684713806283540598430135036983129093679611443894450577320594688533894688383466773716438382829668218240281805040024599211005843201182425255697314528860480051111883874196872871692844547288456113554718616120278366102727888028203247305124356418963723108221474536607625369514031667004006970416968208960478584164747109204927949984607822025927840784124784890210867252271795294356798894955757744449323384807908286538438143313182622098802495272789870813719390523985915977703240933999519961757709272762907745841181346000255289792372516210588241186628134822403553475041989722492734488500432992939590500130161272474144148863214290747924239095880566145771127541288360493382130759247403033088595085640338419736694170397946428458521564481903506595786835213600167625662149206875190378930265401369360922211368018436072686221967435649667779772044972320766034403979799284078845593972042001108290400921634308178947949882483618566000397744440915125398664974477310135189618238857498853934262596512878057837963593335798251875823802155110212553695472708518122807706631203201476450948336910393040570734006446526299798773779970031458246283509361922284776360862120960576448347973112074537592840473914642655328359466952136310794859313988516699901265470609979345534647673411319017595457550644095074564188672272834936360952364457119994198405554682527694814740249901712247627398787049080195094413169830300845298680238659874972956501568049142743339449995884027678429332912432809409596399242927987918409656782029238379615291246940735177377813208380589552765716128644287733631043296890707377575548005465227752529551159985941164961655457697955463838554224616517309826880642752732321322009865413324949971162833627142231985522195788987572984923953795747148328997576775715626545860558145896091556877218680185861646284019282872906782430448257205547963243033932366522584856906718811301925447539443563258474429663468838374145693372466600683703637489986567189799012181066887087313745587652528172443321139660515557577402085113242181567615749452112255757156752811215323489005512849827108114869889259801058758505754628080059351918976533100265320759732952539949513882619833001294234967540698972853115351673281155153700315695588848003692117865801001555596391375738298464392927431780907911696163869458493672215535073021018640929720492940798837596547723684453558103117793105973704608240147362338694707098421614883233014083444970449258310478061134928171585146355140864920643147636670143133308467276975301602231645704648322324575207503657364178130034779786818259901422401946829595496317365089025442478222571578040190664563201751457188694994106330146356360776045132620430809053126361567830437845351872626265871297200913269549720613172455671567815423414432714019838833626002300399938728514697430778260758531669389039238568929031054370278925315477762774446618156588216711813957537281715864663455352447182739086162452127207233779341123267577274449231743380419618333974579167016459881899391983560063317318019165139560026449005451628128822125584476235249487289635033307287499252692304303697626795189188025920622328500872403614883017982475488800200198228779072056929037860641717459681434033963443154206940640846253044127299757873294339789285470038859223990406978068311665725910917376907887300810503455535111746513679065323638739247613268977727108472333199831741107207333485805494452270446533996369449166058443876153440125949278604995855227219349235597706611778036774236009080958362121167800781174560843671571039488921594875149753995780805683587543913546485230865468337649388326191984245831397526627720354273411240320646300266772534115518901171387136064969624002858589908509343268261542399838805798434951885150513874102543879826654811597194042579775473159877523185751417649670147848739584158912508671953359169808521524852218094865559561195715469389696011692652946770896497307717426053687968555313865383776918466415747108759890967168835527766368352544760289144929085750561848692164438589251134657889254452430044306163171773402347912970960586351252748108244998655801816700112173291679815902072814145919626684769061057620396896808271725543350664663833818116287103451322929332283196295408749764565674486459371896622062362698090086706361985930401375335419623693196391904043046083732882741205338443330889815065305123027994427238196040502183681374696838553153324853913653185716226169056778341935896567956579595602539094634432390320953752818648377510906458224112465252641304664998180307805337989166831704139802308345907693446809909441278373592543703649328409237571403973847163756129473072781625332853471464211113758308603348352754169773839345083317721777650238751578979992667228247310914475421181863494955029088876122612185821710313193850540267543402446905712712518596865500756332117558309816351281064219378277910645164419304011784007901363216142552244081450309616553637550022825379133301931979008205805386311591643490187315291885865288866992648090530351200311302821081060545147067623401847651403294043264691205133538556413112212978430097234745280791633277137138596736683651669891815040703428108582570049540601969153224145640127229560275722228914763266416098452720061329694929378238650501112756635768562773487686374635072273907200954767621019431688497012459447827687972896220684510125931347312926369250008268263687126592836227619718647051869357255656532204919397058072386320897802611660463408228745688582436321810495769062307411907745129473357793536148086936342068584682845126680842769451402424250672859555402276453125540086308446140301440634938418634712134992111878032008478650560582754783347401421688963193904167679012287345284861152308164772989899659579816846424998685665731069468029986492206922495896262139254088964172108340060454219830076507739094893174599817447890669434671374454072845856710407350306823036839964650514859699229239234708807339233928057489465362370337477251930653142919542023983648982460044900383298080535926769065038948564771256318532031635780952483675469947954328003513297517084874248550441642610945641534244124344486516968724960212706973145987743720534068048429822670163461278478247202486992807305405877440826675714697226695000540088217228695034515909294064672674308309763955955190565264927021146456101669134939094348420014664209646332522124118862304001089950839924812102404993683371568118012980737675706106368157648804317630613893050656611672955490848127386492429429492139918411038929787542393011404988627885886967055623480075460333530543406183309908817296284631105931721249849797417942898204855658786589745445800728092156220937412058172788986828601939780687720751585825897830357127036518534754477067778081869783616264640556315807141790518750268995312341745997187091273726852824623046946005280340760260139142422742720910140576826497124676640031477194480199568278043099406887263610942879949509798560950172982338124111445247015018418903452651669803371140484519720990035202873192185167926907108180108582133732640457030483603942628633393120521991014223310262281831061893107119189201748634390747456998932986535776869921466875090946380330708607965613344683176756103663896904813569523211661818197796511528966923280734060646419723062970902926853572454461589829255420961447217746116035670952992814707837241091304332487571983725796631320926734098747614867633147831894561197945642045934910226473434908396228352543836910574033097967539113515173847684625368298831709934560083855752982473238351205765279576885423592892918826058748405367034104219865640791034295906496327918228168876156771068433765503755682610326459188198391643571209931638388771185082370801639831871778563982110122246931301660413547045532693066616576978791753182265729477074886587878814843601007231272309317392632953320060218644063464424073409226896476645957609552005342850926369438697460847779799592041650935680041424616285103587298751804537184654482179765589318713366223649458334347725385352810959769287888070686948078172497122232722578394514342960561589933273853914512697877774180363302682580855637497197097098385995842702335531699901434369152652827212777651918731514182526379596910162708472408320444769826692110712832377333962484357956437421818757851237512071457663197937660106568823911472295491332656867563916895788831764649654761747145344001384899398477929749699675196214811116248763931112852107283001889853305480041510477456863641891581746829349844079608070488688999202288821397152788053192642739162116376095541684284532471297790883118822175927861403697875176515885972717944600080291714046990989569340393416892575459572130499879213882772277574243871164961838446646599386462728084561112960294104198672536055466081155930864850320371558985619876319952736486690621640369508348962207199952854318587112399394676915133972893802813444353197641868117000253242020399406799057449618489602368230277382198828002439851748968176997828636691244032301903977224578023506443612129445762735778314114108480797142679837775834387276760895324600111013018987471809429257350661658118913593548520419108976220101330610657177874883273151193683316023780432673956888209627153615482706334409178726077157433930273100278941219212263785334159227921053559022197701122102081005869510760027618291953452611441154485195162285589009136881093680447229544159586954013626054874271869367533367772365407566271311825860558550285885119743723781607805353807611551415226191885842116125503650122584793416154015062932065554430753176719441444746605409386659211759713694355287682605690271168904903715416165769802965391617410956923914004355415819364209636007067261224413309016441923680990524474286021571010107705959284762687897265849760690140645582126580894918813827328434453264432811784080884159513613859420120031632702415082283987741941087712903157857838403633174416912832671142675743363209351231868200858728179804217870821840714771946445995841193400399459597539229657910830938990016070877090068470242802556327285841513434763676825379594508224483992720113112292373600866550331536096249354506191283772472003784226927500074948524123124841585488325880673370454657714264808966870740519285506542396486465852860453278845319485221894956398900552527424422706143339028227904786408057883750205577586233691407683647428116835526851211120071340109758979885602979351248707109697139722913694028147347761224957156465319663197255074540849412845992875317132927102647916518653749879552976225141328275151908814056863559523324194668655833379742797536543718547201603750584089933477531353189060275717598539145738259368007409703951908749509622129562639953511734156628622447740488980346502466419418530095328995586559656617244788827291003715980712988981489400939356134306618909268236180070515132332304581794883893419257211337986806687808950313742221950575132855509778398773679014095859370199953437259459138833902971486550994795613830643781722202781015628367957287620683819895547218709358456595515538113204018623047994473025452282284694991058527470718466421134391329283596769584691424407094237523475175129203779212713627516537890927180372137489494064169413349551691358760361851246399098805146583685240344139794561290439707276569882053009395600015945019903454066261962597795965433000066387289365379660370476297610645305187944258251991036662169195744066976848329681931046794213483757172114399468865269818347713637243173289948431942032522611614507037362116182426531096816080929927711232180363666444185504027706243749770862432606859118795483080920811890240922623372269186241084294228369158790058613553842497371678339891937568055793733110761180552470634610226350814418475007567112728127627734633625061398927599783255772377620909512588062916666524735518781603291781782991516465939329995758563852542493457082878781135691977967187811266650451412560838978434512930447259273316828658643029267609202516287573100392782450745640255818618137974741131436083998553639361652823549155387057173197012943736972182153785632675933544994008961103029376978183929165722332525716575364265281939713003400977365750647864571163475192071734500244375350281274762096630213629953869990072237568850755609764845650942638118195542406368376178546436385678693014486692367299163506480668680815257575890279638661345704850268164279795432998173059517436603715672187943376796740139767083473605779941251977512267560575713604735856111425384885087350031730862710847773132393001778962719667135286449952053139076158368395337028608983055643299656307519095399923838408976042733088550574616031557222286778515980005655378303621824319266184361366931389209790263642205705359447285967821137815268423004438665055838733606612232740324103608091797935647270965762057801585145556918268235251161364389145740176504049943217386010149386906374553045327108926859454125277664870816773400567166083733048482203719191916488450831275185045783752621228964648907613311816997080946496976566546244681869795285764506394208638278006020509125823649743890438580201323110784199711858672928914663255649775646151927717552658433068653101685621395116255816608206604667962933918983019659515491384761439691365404658547913124253260195885406774701298289402893893662835866877613068651040661067944835350919142598750263155658353807928695805965549060735171976606866356603557121458249038037803782472149596700977633665046929610151456938483805623899266836071307681831878730879755442061230286490500854341957878519238000895330313903078511781895809916751715277017281846496848374652325090504543589100436755920964457204345872767955419592603834902173953562528250313700610272518845074898740109464104643180667518329258454570300880485504755249185045270762056245681875185368281989152813804695758210568730747951705064069571863819874650194680466497348839095807966437886133206760297437755686404414309802028334476485497147755237146704038554028591422809619104348921262507888299640694678807790236371804916470417081362355573084939697654186438424252529482679044431476172630364744865521269350871831269000572535905798299386108182452204836120064984422013600447499040952711621330831381425018905725388008553402804168411881020872457392391337810996768371698046144225528235384526857292401119211344344073580460538641624838850193083704903737063431930152710761787164334021336163051224004421136042485699246062479256898951431762066558533676895676398288187169144654604297376413389129236241148290017581772665659235986863277480729257513219345422216815835629470552601729757569610733340996467973958421311238818788136141113066891174450564807388424718988930653069133471493392764281257989774377055953190605073765195303552567536806623721208544973350130017822280336025746374232344439819484753063782235271006759946030459968918256995027313439466010506461931754603307145020299698905031495053721840415487576682022005385801808554860540212898526534857770296899524362408164654404932668804324210430737365486009717087447605553532018491983261220223875685898583535522855399136948383711969692198516195944895446632439431221318842980020913576154528312934703541112584422507925101376716619034061821503883470116871475438415738070249232095031013619713058888379587348864395740836476129731300015938414949037883341483833368088990911511062634011375897282825708289381516513138284659210012044064765903891133527013918291768362263136389119345970270798757566126683847227684091467671871565678636094086522722365006874573590435142790206694780864930732444928670314415179230435873730333483446448349105498312819545630019906667167073714143372748981211418194230816913128167137709862202059793963533062965502338706723903906732253933638526703448488382014186609438584891826567993381203987466490030607047248974970762176485653849227536242277856776022977169966243057162141368046328768709791247486155967912649665407771521770478290700526249274270930178929603667806707233903113072322870939996249929741229312639046538580627260616464774107526192831410281085024380105200411746697927419499558607792056362138311060321202495537864784788680583267785097304528781557413853708924065468971724196428247474230274120909054314288513642916302705186070172390177065766422439539396932668610641968780176605671473930132114530063720795535291934052150903157976635134503874571425516970505472336541563623946917937674189257473476830074241994080324052279917226646313223746287213232976866461017267888213085528105702499714433761922194401086180238996496996920655761114427078324744097359975563442494613973439186344617935090181124496613179985106467015464833514163193927736152856375723080351587885769607919571686666453813188445408095156934984767572408278647229525550831333921159789381455897947220979113675847086952053515379524549653318802567359266442834962111620614679342113630699564633080936346597847173976814282604243630653176952275513386633993268212752841294352290158367656669618775674540201315646482391931887451268552075025672684948699617521522358751619738737309014885715965414340736726781524294430938242421683232918393255946315581959360791884682446142711613084378788999858773463846204614892001742174177959320961564979500339594668044657401862292773261773267346716964046187398195081791604117753060796444098208595232434798508858603648502629873944619916904950695910682927068218472076793798286605200931842615571188008713825249646343807417429803025098901885651210440100143819307240915913160574526221746282665595630706052474247837142564624990846082762362177817160570197894115405659645024461974215898019124094372723683705485101377419817713602379499697999615904746425294299386838240723466314969035691691983645523451114722960632206562879990605608129760802977883422103851191902586182847569354960319700581996025752741421816033121305386211196524389541872637347640228594745176206020175592030026802822340377994453149342889302724292501054609997581627783546895843993548088424307650921341661818226726902901463569672895188313495923203575008177945992827459578875011015423611639634408007836342808975303558160525107830435555933730717817248037882666901808663568414958399925217386697910739042633353044770762268506879074680955712111192871628444215897168452668460144041106816147349701352985062319420406372215208071978867617317283530144674091485813541743815616426659768865657034886165383755924934577616094743205914034044244580552764703052766083783830864318738189141834596356809138579926360750579811342198648911168944128669811316796935755609427423467292292209554886331456253343486311286356498773504484600110944969038814755447586687543495507039102898473244685970115250005387427758381238497252829338107484549919181421838142375734200622619941903685921459520456846934620180504195872679265112058602158230555846930491993542092019737774115901833777799385115921726808570107000737863118571583955025172988950117912249271576264668709146218406012740055110337655719620489235820741893362346690659947685036890214212309496774509789652970658047945310495448608240269551350586290801472967236298303930485008768221045025791361259275198628817219232296498580091128769122872538094228482558617974051369466147761929387692884287935081527111437657858002034227377097621197360403079567935333860001678096337661286323800527483763811540303677573195497896122629565989189851795762252272874587591793030671675861916470722007599725392968912381328125582414351107907154801716850352131387771185575555672740635075191723416493757197089672444365305498643556259352348828389802113524350884811817519955231469780217385138286251205450030158127359251283183365060626550695164022297436373806824563838562181397339363930253128997486580096990030964663017910774495206156819544759381850004382485964610197816576737687036686835662963423324485607935643947593471220912122820830937510960482902040055283181817646807341884946940352473952992847503539068754902492953349662953004761008724305602131106529767450120761423587023378058688616595456850701551555741052727449197890605569232462856965994193347699002112590084503617660791246221014308506977638266218248831760268945781607555081239800290707397605005823718886496852717297952038323679000653285376815777257092993059317194206978061066228834089350712591985113472867959935510977719535982605603280278958716351054154239017722937076763261191672982352311434202246761979226208203083627128844391049047418055398714645423903037564532993112324209972757766690698291275624807640832681392425079379118057653220810343300291448749537040150159018224498615683802250424839758098294024951412301409552602620370134364805795793559929875959636072816386600809574202957703145730585445212507304709027436590657055614858529998676143060203257894933132705160708254258231190244827043662414697067959640984165505587548509995010347540749068761197001613275498287714797815577493487855518756470901255018582394685952206307771411003921508409994557964296555933418330863371887793175560794749098492312742233480307834044525402736706444842095782469479779878429695684841981484785289782060125857387182581868929669944365375161895885352277962705023096728777263203251176025878038404075754519562459860982721110638290159135950484182245075726428426128264593095809415249618807138628434020892816063355428394836162345607173814584937417310880527439220495339927515587037614296208625496802376985756445735834572458179325215698828449550351236576598989058976016346492769102992481667198188287304330722335461050835362215132983613039101758304198316704442653856090564550466993580094184239233496118601762989251902519497172254471750430676437915454636841397666491403953292888026298479533532493938857496866937590912170495296009607981018816597252630044561438330108872703968154050471690167390474191157435647373782583525342558328490469050259553934195338739313034318577355629742206016986113722060039402788047384680106089233708763412442361062852720157971999543194987631016062946058804508728597767964453086184901960098511133513747558963472215469542424565847041394604909224416399039583831515328510258609398644651274367493082185229992857719076668407721115181719017556733215213228491946879752900154932636307934332964221454949123619732832611457651917767742856869687383360281516893345997741468854595288852927005934189172240542540535646764457543948801540335365027477082529195189850986014977623905152523584770360521656974273629880756722398896206404938720813064281032743868352608647237687153332214895984737101014495951551487563749009197120548694201471230328656925553940462621178394330966566506052314666852050860124240645567180661473541174730476415469586977201257452150281865098831219926251341807403778127680644043489681624058097823492063466833671827991646056624917756043485334510804759123827605320128930485261232549296320089629346590441678948816131605840935405085403519688521899090221058683091133987938467424274082932716645838683782713686282805111924741837230679303448266251814862348713072948570499057321711309997545570767042856888446758081005343030183003378749990334283091603146872695618627950727484414743225552956956653330075532872028406530296759508124777023422606204860688634215380041136482732640147036999100396488415070392371588007082702748880248027512418532698373896762945727004527158159729446108442410341750360683059639285950668778905160319291973730975474862445920666928260832049720564981472687171856628659828328086675341648643914826545309178384113601175462081099186879884506426965542423318546240471276852495155999690458639949838032193304952804826474993580144289211555706284647099532244649629249597447368951606227202744683852834767685776785993233716419602395917019525905428388668623238640145323103779455739817077072700485034174424602085758068078292886443421386707857967487624727700544738537560935744382694925156679504032467213532989271460988300367669459010741844633974345490810739960571527546513370180418273516862984521124917768917316978011291100414805117258488633746675356608412615262198282212472836091311619031672047211097358374589944617013033127094842601238892963749009718380536012253505151844286667595460269385897951198143855421780718460722513314051335507316629301592418560333143705122875542737808353730636297839379179989757895685317434211551432298248131385761937924586964669511452007092983948312790066225988867674216143654388045899679774501478719098303437999085539373777259254866571958895809694540458038757014283522011344018588422092535813724954229859611973645416835153892540289939152349241411796827740220113809168845444652380598016535372033276234510297050756814887333198270487539129338758046301585545988292289050598720912705753008261298281424759976606111358654298935912832669421031927798261788619051922976133594584997158612540475375115523196556219054515443068661729036223424125065239639376139631812725022637886212733654340066943794777296237875427040261258404133792296576406278750083016325818812079572634425186444642932505237242295913982383303363091418512911388888692646677842875302479222940935559419364253896402336026249108574671417961296504654993581967612515369915704898043905524960691533439054333574468971124639603924264649902797646736399476939049533051451789247469602126873463886989593104127255825193754948540728249230609143961109949752416148956180602502434755560418708685591603678183396448322667426699704195078783474272630430498228885288670958991001371000578856469443964768456261510159712328448576327919103955443823276369877573244391269522437502564839835415020827917588372515177820094808030040301800459181162917368396316090025624042669473052043363900470862700696062295400643107144188369535632683683971423424693421182267561000295080442233776672651603680469496671733982758018456437199363948963032882043774825686000147566581045283305305524335507215125164217637304424193799680623438334556521719482388939093730510185608733977742270197566462822536062731623599291021135113723318384248105141797336627852747857489005645921735227925277924859303978633769195626991375543618424459348454362247272940732620466724873727779897648152264509682125965014359283799363803173819396319777499054248875667510729762371662671603191143089763106182481924073538150440592633254629782475082411347076778064985240154301343608462347237220377172912183808319569607243793687691054970298693249067405577972812403974777269762521884655517261646417019801469359693671085577215547494086035541514482540251765741570894120313437717693499750540637675249194602127404733208174342634579369834024945581250447420230341366054453150260751192017905254790261577500851988787478049783770448826406564229233557024891496781269050138272450707717721116271244314115856805469334834894760114778030898466001166550955308546928270124314969830755719207811339831939965191367586351851794520633702940894496158990227186716806381219206295930638686287211623054287643450675431821971289899590966983166611252505051437792275824582103962697761490328415207703295316113028979505677218252021767479501741562111332453518535930791212679679610231072306243410781096627656486053013196157543450265562911603718099600480672482296065541468730421858162405422756578792450121118716611813079260729021931236322010091899772586651645995914468348495218614835506486917786664940975089446825973629373642590671943852374570377604311183616811602301262760368353949341463323044353057578173546021436421873495630065347801062637748708661668051835920926091976991248827106717932931192649185789505736021707883730896311875610361072542970358592478071920865739451516112753105025701107190274810962442663721784430603476306585000454956295291543048770532689452129973230971330852245204010787314089129420338404321691847288122379273258806813210295755934095155330768884367174154942065482386632199129528563226989170440824575110788377334586387801190059271698692917314687187614562977649127005437779795718196818707758664668613749596004029737562250623542375828766578025171046738047542778996080700455308978269005002825233345491177922673897068013072133637927592923172589297416782911090844530233733778570377370171475240052322279474988318877258183199683930125198131923181427327319731159709201298866712754720240885200969935855743974514732409903783317594258403427929481191627115129484727697268915594629436136932713260840316515321385706534733426122411593179099269459063567817784196165116284710620821413954379266807839445017582021233620898424880371263434905571306418985464048631694244178386430438556255788170123027009579645016900008171419709250438106916967067167664336032678545795325046448022001772379523000065021186911231187399777711945786567038597940382179271585043746978245337119687042406917380027537233323466068797968884468275784806068703202506912462680756289275304838112914473849733224120725464142060189594573487089726251252826271276681712304204785162769318032217676205559647613241173686028042962159695592439267423013711836084394737158881898832018328153521003078530496990925639720636356849464197692971474920415587177946888607928613296199654827537928685151306525380242906529547095316893402114933241410022909777337114121736536263652370218818367388291747784795062031412327939721989110538113288694113039537770028183815154904802895516920436936324376968322470345175864089669026728576289366253747932110390381615789885340743906006537980435040631830783018424309666427734981440445494753340010351215494647213434737320760759192094600691751141182047899793574442561492751814323021237569242912143696488348160902997338496445755786381598110275518436675281843296064687373983479499110754533935876114638854891974362040868980082885826120486232231290783673818794324530917099028191006969944740058955467798901645824115970861502416778764334465244133399315459452773224977588351257154578996304687857981795560932778639649075920054853862774460426184360027426879463165864789621451240000119616908103222500414630454412471624450664979872901432955637757951094985522980774878031371915174230696034655258925969410401921508502453588455906524718982930955619734442181715569276564596226881552484705983089244958192630472308000351676148091828539625345518902231064264619996049554062003085286859261432049673134023143396398728832941227018873799493795434272802861728174400422181142150559001302828858889981949120849539417888321468438703749837649408434103507151455362279725941182624282418922281995704921269084836860193309285934435626089427056762493762228227045862171607018751013595901399434943108713455651094459021317590842666046411932850529112038344080340906209772779463458330757918405299515383615081552551378230227852873976939612328930314472300083031463227264791972185214484455945988472903722086474809349629407402649183564874207173227335064497569417331148705198355904665100370358545697981981046120348382496047500373898828460534380762337239655837863331312932465143834714331170072474922527327181072233895958164479982788767713886552715287026699600354758544410241618571321881478438125671444561430489074123201969433239834010575424500917490561399205556946992501512430874141243945854398169240494364695619109597936383021847540415019737739164721934812335366932454332359560834936172750125318883880307935145523776965511570655808442721084856020573910178272501553140241370134265640109912265073025397617669771907607070720855835414355498646131511001258271978382064657489294668254261873241698384886731887595868189907387012541296214469777249532894767217862653819734809763741299104384099829577104912596281674478245635839001398222386532994783983498539853278362282727347163320221446798673103528327618356942044035926649640038973788416593373469446338959274741425025093221856760308687906784038866278020557715967794038370860024542037845367219426962253934900767144354709863216645167879005247473309446160447558320672923420530215087884675070784374508868920532755112628822968423854846933990218951950638974237453611543113061200528304415831853002631474142307005321995854556582939375053351755608276323754751798849912469211249889097139032960689998264496960969327972836314483510615509600276214052246449753997404145838055372069619554631750225590572823728650103222021264141405350117041481377636203121319212512896135089357923928959031237122978229966225044040517746273678861809328206780849293887341336805219789950152874211123212334769192968666461806818975334691360398381141967058830580105374377438916247865183446047405159070122351545556511378670523638140192269873391120192190130817842885244869847386170974495155291325895060279805993868087902212161169033138054601111588046240574464450541500255371165207116337312411741780592283061200652417837719207828748882785509347283060760235737159981301680804289282011092538726324798880725642695586809250041968004153366062954821837894426250155167548945704354914301553894653499778925129931185892057247201802069628795153495160682695058772776916393122556159900754376905195786993592179693246808477725848009523018691330688361233265645080057636148499223259244236182274526577643074700699025468060209176456572816196060502761757783604110289449538179968052834699561261794111793180779571760886737378177347475767163204168499268812151929981886891895032680151186995661991344080304922697520253787650983535342506830334490171899268788378260290082880574290400027791113796123203422003585193361503199039424564162039156823528763528699399691352079926444133523029848237878267773658975842284247428742653370622271567387973633360574730320523713745147133324267771376682049454360012078882089538972067776300790272664676342241923429483410861908064113336243624734527585005098647383375872822341744650539421136333784193398433547059805452335212245532062091509835786202721491025789026709391137450546190350963224505452415448463496253462609362433155495536270329010167144454250616299502676323144647097145353726765239425395403543390005709320470124812352064341184809669547532233610133569074352757719861421258383601563692541263684462028522329809094247633422646468973276152844829261959993447871496317721271571444005969538067443921797889701064025907337944752376151809317952789501594430086604689683566244471532138963855373065210923919069909311939233710360039159882314274031749790273377552780310314779210806804080673518587944754466545210173793427431933623576999459775639860174427167499244871799359574170855401201534066405018256019147689164424231141666413915202208181846493018368276743678332100017094252929809713163183791357801538815815224981623362055587747901158133489918994664026439389707850370497338376343118293195287375571179902050952598545205468939401165586953676278628033307754719580101958517564131152177221954079687388587916610876473523942315040831511593450187651538065635779533385977588137904744431836596275582081965103121952294931478803564078556816324071648450057915014197523372209570196462312288773396715313583942943079890129311180388731486368336492837958838949817713968415297429897937976761049616975409468514247835381683380132589420829455468664113332444385652522900439934020012200454865352473141365753188382528100112407020728679263368626039008610341589838395947853151722608040694213395550401041031994785053894253125851935877444484416403064715232150986891482069306418781167580747009119663343511325632799216695532084897440670917859203500633287166218126094823769781798569375265599753476391841046714401250276408805301662109530590833120371020761969016516389403891258758874483795747857774889224817846305129319983897078835356138005995262281761546115461252388188721621854235685938081845043425784621965024431894989234064196209502785616574096223854203379022390164036541236065129999090178899573424674528011904198612515181771838221569339364029251249380833479247046760762270010711493465917698873936931373640265449823213145655873896773707162550287328410815249006053905846589189929971840941984729867266723341843994706203997073966657676017522920610774486555645977104751309479519484473555025782743125388560891837994067506568752189081878967961774999637764539764427553582307659986546972842125124876011984757869160483876504171038667390767083572179282443044453731270731504363757044209377424230902026990146034287488753933561278827393839915685197382369990894676287486329373848143538504315711320635705848305798910855245428297428679689117548595347798448625774522573817339166472118325383621355002848270262605083260430891231386905261368103377286848703231508890287715735531581096841790489579614307848155544482535585838038557874151321069484506415002648932000647778897817455277539031688421728623406107096292025049708704400457501153144617872317969661575890000282302652923722039202721752170643377488322232769864179576390127918440173701218237135886819441546950903990139473170629915134847469246641202573043828182576837643470818880667356274245862511056962406916488488897025230828518961204553243704577949182517805341155366137114447621869985389696905079785684515522378556440733196123533565929206409711817815766633741860779583188201809406122087962149870628951963017573407034258895380197714152817436175204608740384627816300531653620274310593887015578715551827489156147161884680618969961367217579318586275124956651642216674176038652357842380708298958936794801288515167534666201132131529699822232352860370304313805749075017246961838361754411863229342629131456688579205418741147482529371021767055240435695252460411189038170391319160268437192840495642580451759153448868572711014720813139692880941929559549581011101437727181558219413606084512166421282874156599007077597937639583747396969730841942819513011655517960970688374557609256692695836601295217781428483576429602391568223090472125695723547812244719852148664966363169542468907880157607656790829672083514727606497079236950648893197240450917508756814595019523198378665856834841036319827007573357582790330871134827321475708019292862579017724338775815954955668742853458646397999899893981148247737828108150299917749978275218441645166569435851188611895154843517727058755959527707706453993694158769281819642397963450121120232043946367031485041813420746931235920938687061918132163076124990293679499841874615163721341101322613886127081010214844026705588089329014048854863419462476260678695741259587539202908596112687822757455656188870208664386936254562179412797712563486760976191267172761175719295295843968467281203734136362822909427371829753145845056372694368295215358160292416200866667920407786414986301216990498374933102090670773306060765614727950983307217722670750711137358244142724046541492178712838967617425080854232577709842805530036127650934511443427055479738309814694633940076768933596533750091301554151314462136016104967115613407194921285627694898097195675040014322908657609653368316167081996412964742943085530379205467364902084283013673229823385273965020906496145945131082005851953769780183423694212769865023133003080338701451785680992022871099419595506645705518848018348420495280469332301346460785800559330758696933068743959948651468655466629325139867706270040291633949822861028770230018489940653202927628284395759584937388881192446507381253722841532468957670502314834123327461640615470580453436770081482944161450069294561359605772950664765511161329818543183499959099127569596594545573990342564289553243800622622138839382054610837978633824968907110018255484500444979910529309728771651191286974700141673734614082561163662644144701976437759336426091937590142464071850021935354805086159104880725275409656644449868471247493562418263312565481286893742764769145512833446265345959451153960405259027881702358843117448483413951178372782413968456510623846644996149627074193923146857488605119620335925947016625431524465413837618341721388613760311677572353037606308580367373992160677942007773220192573899837500695605266139902850243067593702350781300801943230400197687824904341933840925619126188774958264409741667806479925854595621288985624014776280200597800613457196638182060656053652377257927474128491017994714828845627416734147707734998833199878087773255768810016770169814943370383936239401702380574470088592739650942412787231720185420973316073162195104347613406118402919849989553341590909535143305604477352495983475776948347406071053453138150177068316798972262761066527228831906174870244553265445577004430870051384131035819928592994830222873522423044759263376351392482263651415180118940989397835400064139938338122207831023301411557524800154521310057476260400877981324064120125555404298503021436567533946253087199182736662064912082135074284689422520388020684394866789285056514665678305082729727239826011788120940622173936556939559366995290328202157242637260968076754041760480708588392305373900898943669359567835319326855451167450250598362009532871060651542051270294531816227418393989057338337985051918324064134924901114719073213549710733378476225141770048518173974559841939805806383914100608062691938942126381701123518068401584425062681986882460975876871086566294739604701307716172264569727482678722251444306836910359570243394712510116435415809704238553117876992399216426689756176041993003362830019522097571831347366128392137050368107003158770069728066226961423060378652976165820685842191684353602272163749726454642039359180183990109006513017068053680231288555245450315591416072261768332622934217630973114876805474948774239987692841968730065855992558677108805818109932521592757200288969781659663397012788664142481396327793057512146802348391809047363363468801293314990008431975974067059276924554664039706976154958962113849842512852205698998831512430912980468377166484302928065245243926022321147552173966150257166108863688923775967140218527960491033949794402407163655951632153541516398519393167776169048702241851726339539159738096356059115479774711732665875211806923304110780321402591171552280540488927713974369201954868929419992920692662343794432515296731162365530306047285310034676034121658926892975904626957187751396210589615366888277869180884369877703298502434634374719543767058698971208218306488055222761229296969287097940531303362591617373119605704205026562068384302208768008312808406481300331730893706573731851331627113145785019487779425696969379073519094088463858245277924476221573449671104167617422898814136310484681223468631303835367192844278366950706878825153757653069879370804544073125571893705207069562044888021937850679597964763417997363197363570158874212435010555307564919997902161969728788646640619936002824106701728237289004018432000974976509241054438404764179173991535516916456466989086424302310986840044166526917382678587886876235252125368935772558793296006450451956677569707629853471632110463568426593402625898705392054121849939792502557690535702709205195887586323912219029008118117914968027051791513622748762606435605730392396172968268093073798798759131595885646338258601295866974329383406436219141118697573529356155938437770085157624774528859099501499151011718366809860632233269975389516022000183488599490080235217467411857476602493073609023656487103700370767589554986686381515359954989971820370339162629753480486833942210098392402751604485976117976395130683674244889279093975342777712769115217044222414707741117682474842027604072051363101200227020298300281945245267469407682009276069382016072325110073024640477541929384878450378018147734046635530404246866086850798462597381084270941489124178368266632864456932281728867241052914718098397642303180107946858917680340360047663877716289346083020937137740233415072919277033636676865592846988203883106148969801109083757737721255549465950229002732622618459475807400607739916913317675009931364012249828226497089105041616800808083198267805293051883776330382246922806018098045203898141519467994589061485292793737784991285703829766542659379766226637936945104471835619455390551078052174499119223269316933728972514140927589327177039498800249519392454311010017155660420057679817933126054952707470810253600347412747743318515263817415717217339705068116370784890892900940686955015089157078269895623482959755327530317095428178588533272914969495326373766343224216736065432603131749368745626730448608858424941703635042071838130094562797444477291771566535212036246141977604748282214341447898784829045748224636507830497827286921338914746290672124814153898039810341335841580095602201325449066862624440226103387834567089933495228472463421650862220655293866412486433065485149940109735050747427370911827601171083480537117177558523735569989696399211843018801862591927233713661536115920461143878911078300648759920680031795183142927292724554533024743533357912050719421195344229804703197820523749593518265045559305244965745901548189476384429008985709140247662440866603649420334495512738596404099029902382467489219344447407608249594831717892122384875044642060980726895971304580418046158707708061368720740767653233761417495806340108779986649863044917041595604580239181069522205828826281255179975534109559073602213354992139085773096789063062069443335257067908869880646367059596547925095343282968267273867579225768845055512720137098437471748155703117724871196019485944205585285467622558370245808818612406195827201632716234372282217618710009562469952427612221607924621110707547042717090190960675104135071982761622873849863517269285777542702793639092540110358835547849500683864871741758295661091256612221318676611397412299001385826540311852182442639793529593824266681054635779693431572829745482296322102069227407783286457301963654953897486382496241132097889167969523594678366920878333374274078465881612341720506257663931723829190253416046397345203540035749972710939856547581692479238737491976690295356789497393240669143186081036112335840438545309250781223115574368953018583856250340706528247131256397336432868521295530888875027768098605198971302409516995133278282986582965556258276021965176356695145557014066561496433411493078471539751127231417403004288338608995228552946886611605144391167676561298022306361858663552961293177226717164455333401619120940269455837470143635226723278529037612034243605710215831189256006169974998030876659969980587200849439062972734474210947525176771112343575649062211198047493718400347960710160025420369304121572145233653677628602510048471404801031377142424151302779109224677315830577434713097318626665830477674538403905439023713173131191438017357333716522055223489554281050562968020369371163527398464183533624421917087585350686218559859302173823526430211813473950622827198313731558971311158488299461060366449962914936941725904588865042687005176519252048077255710882111170899852179313556985687407946612180714283093175924890632992748869295717466263745754780926654512225051610020870754452081372940239396706212530286092691335714264855135379628432149360885866893773939496846363645051872378028294511987502591026084657512219282574965165958772087574795772018025771970541615276557429948841103966738662264008801771169750611970778301821297151305875311159108675438325058751014212008036844509460967350008110294957028534703758237589547510839710542885020033004329889189706017607640088599089619984048722534790454178378687731456827205765578165728745964839089431066138098363055251988840501817031403862227445943117687356627621224539580567105930107966913918705230401355452346096611566870221190423579950316513469089178697146422537498531241104429399772907885569098072857669952970336591864136670075771200888957685050528513754766162411578432789281097167350021537041736513313034503019108338472338745475837733832223533174108142664568702515980353490661033743874374397556719797858793321330070622591589848093612747979651390897607499408073391397999981195901733747575301378909241858928753315286300561559830189521283859221147241332620855095886471112164245046392738380008802190305055703370660991553234522139577591819664267190261899844936013035880843140718345990052297652456457850783986861001604682696353274138416079808038319694490532421788056912301157821860814682212511790484763280081624939284801107067374404402893911653767076343832873229240555385295114505013563452041014275603255508170992686565396344349764465774792461156650673554775143857718673068671104509946728367826041853264866437565730494219150834061398308973145559575681621266370600930534432914524254046007561208047654152666359757724555603981802662138620116317097960703663126888149640730754869494866542082004994766280157332354496580332944394732270629687715495129110299038690789524330591123338906647426046400001394904002910411909836383336093432577183517508940842577941420163044523100158573213284037419940428893747573104776811365360366342411465447711555590160875253961333254593836295257518770619223544568206242656425489323348903490023088390429489807533321355959107438896215480940490407720708382003613283241492909371734253050612254564326965870597040516387009395567537790944953410282546310122007390263837501525123912928041428031565267367502949553485409979246580292929604050577623430457843181306790098392232412600401690506256590419285978851664153835788946245414281888070753019609718398701062274429780802760509540799142910221955850323598724742491303030503970582806115366374202055339518065394087331692824721062669090441438694307242016744186180715023282185732787684876091199610947582493509633194523704747501588670469092955732026850100883385106646639207342888638793151597119323295546328721066271238205340765403462622260603491995478705599337067981446681418453543172612467932150012942218351360598916604198463842731667035887212194166360200600097167008118916336835365249717288202585192518419413735198472139263006898405376219490083955171567990221602276825210627980799656679671831295524951768690941515584838370847778884279594518524545379634346845703595918053708213928249699750121303411826930676208139649856087922061978102072986237183429270658956114251048524938088606505396173467713915520751363851956062322154371010653219037332630445307546733434194491481767781074176067196981612849195992149773269373205851340451887718465486167510423978854465029848587962127647316608294873138631498374045778921055014745939614224534458790959705709265433718475401450629247152535208446721727907662038799026073918031972193486459219753111831931560819880786416984769293575409098306489179325001445319174466515974392586129780870507819505114034784878051437475376182172665315471233196505414302977424886945438869767546944316091544644926949473626490024590018501817604150598646775384833946851704346552233619786490357594793409042716644646828192733891217500064542439603101246290933220673743250553182744404804328294000865483055214708514759244154533354121087601255214482466922256073977702811399554359354947579386575157565826029853608383775261041585819484481008396908361627973874240741540728954236918187469119342099517636268750053221654607569505794947889373339560904492295230131863756277589079365657168161811283540843199111150658058070283803114214094143899283052009065936126418370755063911791504961972592546366936616947466788868848793773559281739216895888440121518652774458148762705062711104629524257539625115205287768083859779546616716172145922922687178383274308931818164018389540184917117522247639529969334153333964779615445928407264083100825493544945631060315949448961110902089792987877609845061356507299878619613606326123620817437133698689879448234859972617325874187532514153449161318842419761340764119413108601464787679076541826752298463339395223419948247807610548863973809317865626943499582850921037762461360646888748089623117373571814962185707287950897140416377819454040179795026374538260625757676036553846510970704785446650384890799343370464853806338708097436309819408969374613043623877373301508989920318406148036639738562430498419382288593283915983962358651359374261681075186624866522887205970743126511178199741685706255215297009479012976698117538771772398979262135146824818842042883974164087427731837389532613034532584670145186881020908904826808690290964815024928958537607910444381205802960484923170483533364419028169073176114614117084807885075665779354450601974887685042411040843151350258384642248848222580449325073774554700958974925895109729816034350327549321622505442430481833964166606540523588630977881299381354986292641598890695871300093868547925992235467469394736454306632696745465559057582909086844909037294848082046258835448162901191905664450076571329485509112068352805239521532618308542805194664249838696065489719106060089929089640914341005515682098069066352721095857806205631299647910284812132175572171200999518533462620320132827815043621228027237459404212579415415823414304268893544977194534956327954894378937484095766606514084906112425863957003799585618932578975461357657017795684054818140723565479775249855053179335974314477229496179844600607709430840899302738653367899715499359282535267419422771730602734676620776694371252714955236298901997319088819655732914573228140487002498558071459285426021631847011185294840711503474910409898565719393217206590626401742504067973530907554639100573028179659551953690890282864524259511360986289989347317179208358611790223044574567781698534516472212282601727670971612409133187624441518970986925403414273764170847423303937260455595410146875844035230222574896689127788756659293240068338714929384401159249155655205129105242103264011782589935663958054548431257153939456884265815274773268319854534352549666435861122351643740523573960559942067357843174819240748339109457030131920569752547601208547132702019227678864631549592787705470091468195504216807545434062558262384820118929453200221381650970380369942457357117017675905922380536432440650445195138715168127537404333655950583202850653147891087110027251948580260626163266773098077229283392107750800660578823116714817127193361614798595525189351990800682693936138404092154553593038034445948409130088008694179071197108369680006116739212886012134638477549485177195494524095243959905467574192811245239055466932822992525728461993201155065991793399072695513145148861770466111931973572202535191285522741122885211946272202749995483052456564131607512444589867158357822119454052155017200094585283990951067373946519887440099305434818133843726065106284051575852021651716495522152497346024133854428124727378857428030366358811373276801464089569231216213120698202764914928334707846853938228844923721373574575397020117691122663930468363948801027161791857349071290300826240224105826227737123809992800946392500290625092410692499629250919326293977909979367056255290301003897154812170636228960099562457396797348779551163572034377824611293541799539104864888839887786725776053270250015855313632661541035368646001429570341764226969222876998061517302613042657860333277943331660004223724266589416719350919688025027504480097666181613627550069898611254893562931649255394049719886376752520573625995690158784548580616637657050263221279981027945651566817375856380133069134821780636142354068224703993300988693187655556158243287017582341107524187506627843186396151956419108810024782072291067734497008169244006616908908992369694521867351699626205805743785728652178344281436942994342476949746459052981951680718854751879680193878744870164092239153870817911664574137150852718804304369966965303273427994893362867129444481486234638776325360342067701329258706623077387943269272035242986685951065770747668673513588402197775379807216796551243258161185144516773682814860986460897266718450331581033543385408694655337026682445223641687083252065983041187121530064149292527800109051978336204159710773632362339764283631779994103372442352557407589801052397936666846866624629816971893133818194650460968060336191888780374579648003212098591105032335064721356796679399348770180092489639611200406207035036420224090080259903503868785920855080320523833190166027893533580172267211027548300421697763235676800161109865174802114556264795152208991423613539014056201587558303472529318866525470836621882348495025222264223866619385197980736041918724410147948525760315854362801684208590632861341452710542115597679029999311716749175787655901293085009084057379507459503645130173260285800990643901240830570600021674408393932952271530116636425724654620686288414723418930696908239677283029094720141586892834169215621289092905505025169324555065078631054957679974243306222504558200413647060056002233221499812788376843651253745576434540708261458757295243982575224880267945732514162473934972984477456857054151042562447718639289804416506068733061085309089119781916610684735819556089587291719371758088642919480109700078167794004683022071184847398190077493607751291043155937193577760235324793763955227252063437550010572922456049930649043395852494237544016995118005445162534679706894298855476932323220242502440712145333790476481452795807136890369017722944984658645880610298996166182810422038667628655641245911664391811795442713643697814552126512138139965633407288242456908896240252128902107457094967505129155741431887044703039485847958937979723337315231992829524531132935425410013369395587734631959787032886797815176056063368866279094231333013608226653357162891009372120358762470611675211666446910457566395948100547651877918254288829007277568207908639596226225043635767503247916745108426926254977407798113929861702809069824739206840997051803960553552239009219629437152803474408264692126109418031638640985884963751812879826288763994998313047496713688148565464441998917965981531968492651103387854083192557248746769544564158862709783512261662109663871183802567185442724105750683505493688246156411163103088856622397272330923735660437792295147190352715356608672574343260803808677872845075691195567623867382302737107702707104971624939277549140046657536822775075975293246694011669075298538525954346416484585078454666727245405043779955303584284334233284061187925598577439371891876740850616647004487992283058711791524266720252545921594265624344641531034706112341169298560835200803375215573334686971055383314404481163398105335188740582565920202183848230302467685302686143691591032737712786854471603286959998016338613149939400198946456044602308119179796569010935554659369869258476722413854181968257126858092970686795332620211582718889243206914713054484658364158598720582460848937358090762294843780533286794018226199851561022475094435281981311827912731418830982797927857738611262345689645729386923593371576200048905264591008049380064753998345135149631434001441950285347410845668864543381848353583905134581223847853732044705417200976462824698455471187399348351953167299476374979519015741632842678284437788499868366502033912558189067256366382891017749542690808088631055975281790022274719193013194492032885297982740262383984924999802342864737687202242663792558581918946941239194541474927805130537884606151835661823347354174924175300551729464988311237023453258528479042440411506659994189696242706659365651249278211845222137697321456161330194166371142287185187671451609047763674652356935796532752625092535367775304347720411085811896349099992846486324291067617697842346273299403996960537462913166525676059735907626159917888147608277297684334433278193329365934391065868005795965354782010569368429651351540272668412070013370630853714621740978914720457417277581145011813331742153232734288889011253339489980000923710131299008859742042156419228590797080097871097067304072143899565458152504536493704421770197843621040472428001891928664531977019110937040182556449042022274071138180335938642336684153688230815405900412169822149620110115879820349147115061868361365591755968776968616843042619122850024479163048937755758117848243432358099774451235124614032459714872273393437612240905281950391958088789251028654629523858544759788389599166764302822497680873888378782858082737341714461414229867093945081858026142488188432788335267192584896754681296112203741138402449777608645838429764520318204088841702127882847768195916641185813322919091327835948185742098342943345372305339959117672709627331522860482979337420508279714182791141342914068547782384620660402652949753849932801110794674522855744294624966551135181200810081626190370119094250948728701582657743915692470749672282644433116733546856945563923328123052834778437983164954565850724418867304953910964531111118356614301502747267033306731872276361727606336004633079536404125177634390190596441665848190714497587717952946144094707202399609292124939997202460542339966270184122931796138522912959289942331245312146000973152202017085493296506124478868155158305954277247060444300043601494751414250145283137648371734201304628670175910974512689672970828030460446427459424308357232513481261892813275731176492611303046926277684132230565770444541960511764035024055250039473196721599789082288663291021608632730836347721393810756118904342055475622652248441882024830813046730861558552992031661395386515067782452773675068205599809863787295968616792330602189320932036098338431729277794275679392531780733960972647602833066266829340933752845037137590618594609495347807985850078367576515725013328832576827178419873585848756051717133879140775246962546560633996251546817387275261234443287444062485166947750193333330973085245292896028831423965680692988097682606817925377937243947623771844019875374990834194620167674658388642094302835043089801652278986651710706569969254651359969510423791218544209548107525874721263761609465506334581685698009275170983294583057577926925886603276691519692682668267662060934307842317834975101563341951920360165702640951989428519054795923841644859922335667296791385745076462710903423040957803518558557285218518132066622462609698664458988600146880933152778308963716463363148595287150557415705432406186907638006155839194895626584491312505353844617254354850749972852079624312881572609886793277902397807129367646111871568977279172400365212456514215750653416368855914221650831328622477984736578783946908685072145072138279008617040850924318951892623486170644610453322739375866254492925593078664486817247968285699080367401743952598195117552838231793692545920976908691114560114805879191900039324246267314316222431336429577046684800047010152191340007935403000491238475178526415641024117966025059358975600443570295306529233927776991216377232678312296489731214717362115511273472660168310756496094365420710891867079933711371506745579755554203159912819097738807419225968970213054646652087795844927153238299271633372597026121829814712881371803719179704224238758767955946080248983857514721271599617676245326393310755286413640526401471987072363009814366979373388502833222457220639010785746335895115962809823452218800231629874198825515713659759919546700818751716239570154345003330135405758393950032374186544271246997502336854232338837037286623967801920293158460675840870608881326175324347173700663581458077923420714991295254656204442042998654552201740141065433976573837480463987187203489500117951980134741061048985969678199615622555086896171754105354089915609096136221934456827083972733693576715706762965740519083680821677300802303480471764034150066268542991096981523452971016811058222997587356219337240673981648448917841696399213079875700525768264715000290205071671581069755908243990383957195339128916549625983839362311232809397774159936140241398032915475879812260273811850211882991599610088045373304069892373735785412429519343202511128046655554499266488730141962026208813524929602916633995784071548354773687719291485976699371636576954418246151889698185666466856847706500987751274210983901635948863274337178349320626809064550786525147014093225581008721894502033336256689358768676457415342313491822711223185848773753038893497397494248738290948196416256028857665636379780015296458010698647629483497194686270921116000853460124271570849764101418787025554149940943248419462889624786327877675933772908164001370593468538181606262315962372760730230550178065269741356514484829422739775036686472965890480981784204500905192880114992142384053278041770638487724054699692933644145289332787776293309582221396839041504810364923369534271930031365920746907508007536749182561167787103569497606305317793312795193431108194814347451159392289783198107658540891982552331576024094070605262581055635379268834962905444827871053788318125578718770401740171448187819253518666102700215070296827389459440433220126270381314355806827662480574875894770216358049349039175939302948093896522473035854108044328576816648773380707612191436686380809217177975407892945721128916367260120014386307959202934219734880722357407952906952314900766898854158735984763447691049405737834484138833841285032953972416759828626630648647232584865991593842682094718042501411639718668851953215406017827368373541127390392777031299471608083294768531393027592406345446214583355681790677399704775964536210406988498115709837998742708169317355609038585121432626818961605697212863419758358485164282192574790849984733376769714982393146849402701196594977055685432931939168692643418224606114149591253191259287041108185211822140870870237315593234709339547676855625403086545967335627522431369644382073232370052468731485295649986722648221031502918445704886151179357765367296427601101241948007327234278254077599621620090420013994246343501517542840194155216536899757120933504971779775235027370736268753819828601823437472535297907225907918334079535708411122028268408853497765774238563131008204063487978962486565267927010642382894896799858647315037083502979038869671012050227463581059482514388592884733501705545931021339693120398812172513309356652639754749281697191179669123547671468059839972307541765507802207853950307596783733565848868622803998984875972618571431818059820326465472713491619459476690431879684055241084010546853388947672152388839797646562982313804951818654684166895307716419149713699554921459746906890540990546467351816483374104391604416881928311254717136465961802872392524561747705654623257064512321367262523499420519148719757571892443744304348475428359283192774147521323145876689021459556420981752409785454747712680817617411795027533729543471143423729612030516651840111938465426768940404152218846037325846596627251628641489486699769658811749758901216445610162208067404628775954592714885172077075300834417783125415863073249087866105729204528814075288555459874536545026611298124765561434480120681682380843475887868867681024451387622287737661421973675064676816741821420145875176887213869234291904729711143777219799835004095840280415260605789446760854740728424563380443966641276418363243993920957893951085228801778967109402402083338368994961858820516544647692668680385769090315483346933677082856042193332349637355864897793588973355276654719750422872211591023070822814156392891154881445486089273286366087697211393992574251550147552664514521240629174821392703745519562027294224356564848683814322823302346722619538976328336783835637886973893664293823436156936890026741058494952344881450493408639166493770937907641053164305397832532719039595391882321210769022074960079018517541544442062545817218184916055046886137157966748176055869212797718587712634108650191404200536020078124694565706544147779758341234941881406292145354627968556785506646691227890226830277132625022505897715406217248143554202586315702140464119102109420281084837755723563037594516291625441682244373086944612516200724434825525687753806046118469932880641505780164659889893272690058987038045831567776910153841240637766318377526659087573777334945177211290593677693151052147795481103431749480755694993693077799733303424509193433273123438459168436163901710292318464340109270283908633129842751803485194465108222926989240672684039830877768017275482029811962714117190861303036210477451872101832723503736759160989154841103875602177302574710338749446742105041626218012133458345087888006345943312757824854900287845475604808711537699015293279614422481343360502468711097895589347697631068955492302268877569615746125513619747138762243864804593141151375047616247578171552510887490500481042661836247471211405080904275417784961644533129430567475879759612280623645517132035960998523019109468577155916185196907901201526244538830450011640377298214651914730618250272203226967581083221207848611134592169770709396883404379636467666322768194030464872282560800787439082829330837717296212666911771309855730296521303775840697445439990265876358234754088774430044127324644001758496530270489281674924857062167151685092976982463626923185598969353319238253544586904286478471907603119852260092339679725692218628408150412957172199488164749151930146743883330977766476619845360371541598296268682213790312721441514621776724348739782851074283498168898620369933255991614994958658105042211225596722451817841702953233647095607438032289800510774205045881271162512079884378678061347250485084448474412231883253142429950127793763927166686728742749069563181937887929157180878624053284993755005871720774294219012576927492159891478097983723314958136730248222898501504001276884110100571215280693859240125619501214180637950482134448242643478037687511134636112761466517011863469029922577986557144579819061759007924050367277176144798255839011036099975951523962010149243590527896056276338624817581032313241254855441886153752515976389561897359088947573590463070409859821658992933426463829732922123644191263933327065397050124229284556177804052118905977011920627169688455112730497947761936511089155723051168610385581783408290714970339802650575434472650345969346894526057498503786534563501760065226588308309705828620899170068384671318199257771343768272151547591568178026135970378711718743845943127614309381432358965169606365987557964467298451034442882077412280106540488777160340053474495915822577647510505232051333969022589335599154480207703404708054568625234547304811923275203677901395555907790151031336608930496646289938664456317217289593374293669249442867188406733935555494483202595103330904748260390853578470560025968842026111548012760962424676078335239415092814722983310411415065833309890291340275248763897940861433737104125686187846725051600423241925739406350121357784641590093647303735655328303491448956692089261033125310997188770668624685205871538030046761861777788774027370660450745482636634271190110579676550730933586671608221593896876777821662970408485046075209382197263664166205738940683148833508336751412844778269242998932175099490985293447173081155464410746485494809312086523244721277825466563659757384616008980249460452625757750225116135550958135751882835449187114902347059278773667468767037457036637407730865185704455710229176887925251605648810713803357861963320769247725399189701162620282356532425187481397341662544394382013444465901495089016939873810867939559040948828769454728328334881602834135476876823244319934741036538221720899281934884186375143086645462228073623413558257976190682812345467219103319763628742297846856286825828676909666960314286574320504947379396614046094780813064542842985064568391667299907077594629194044425050072345290774874258828785024271071424642832418229049491539622742211559174940398319894510920252066731245927417209738121875519262844802768023600186386529323067167849590911199233318562675694814558019879709960627854301570074583009165322999848740758001853910005147813397165447561418076301471026291927870134803058524514102448515506455356441777008428792897234008325597202704998616250098568850416599045612779689493036808179189856465318070268291365286583730131271461377717729512529581263692011117225582391010993330554826414250227419240585865285944018284479061370554402644001939767557867204279538228862176423083477179026753334030018698255198971760900150895615581690890236956594776718949952591797743588332311933451076781917585423944010752247648289223298783779417577646403459276567708298528946542034988230609377532941142604566284877734135150939186006171761634068771912889208077503632888031507448513864894182286081079492163178529278885759832975143305071552372274810446975397614424185624784435959222919492231792261881399086508786702376199228584212516978997537203513160178966945835193483882865825769028966564767114970224194484705636416301887108453604297300841159298931647205358745298287286509864110051730658960764783117651007815398166397505320449054395126753680603816261459604625942590111311176060015938440701149549575110598113965814286494538647481479883308329924257968315856081084006361989524806290352175733361370675661088104785717857826605103523276408980904428946258351507316722855819152618988298335389951922678008601255001591764684549035703925627008727207585997813909504274947478450660139120807210943287205769772938790424016349553773005486046136463762743384419661358990141644473557272710181764681957525416283850846761312216774300033079209661319440734987782945564594422437843825721937661540770113695827981857680479165340687869179768528431124022458783623950552143591927866698658693671322901382458764341250215703884460550714922504741366584135653084009530071729216765002103251949469950745849542300329587037861371935673741282212430180853829851555235191341771983338597208948036492964564441356460780988046479139271347387860858050754019372418006981838996437183220534590300138278126537244876717625343460527759423809442370881310167440697547455277244522403631633929422236699686517049397281205830348061472293473685485042691893402123667881501553964686404515748837025509648142756102008794967226943942610856472906499449868123408957950451408173359973145865544928774783203188968748277481404285098540627143850264886512324205149271153284381674349022988539536235907444945941479167517499129399924522476776115152447857764378139281973844168780236424996160489300967787611721303549296539296933870760574510741735726786427550098040281874311247657826941027978711201633480597844702003867039034560097310062368170741887281351662230764442310704386871691446862955497084415638076525469584418969348905636749434645753751469640337931981946616663344072273181781984422108848077318263473070932368240114198551354624239553381245837932193329693590973385337016064293233942646680696863298412755023176756872063043177136260959613751555658815534975033792447740041285027355196160698429560434072043014509478390414517770504478076079046074820730575516883143643995373967273983368320016628169286463773512283838524040971223475659465986822663397599555225640569411157488734460606754061408744616959023199995590294545852004803083023204000524029785070166218054218881037462780269430512540373547923220172206558340284221254753001764012540755795872885167593249399838204172075741698078577163837421323246963081339749237712110515745482513255931550538355486038419439133804424385597916407936629045955262210718291730758057772555200551375612066182526197852317896911212025449219878570012118103908544114319134741871792954850393902376977577215225882513620670994424159356961362843529875243473067740835236379734951872929349717233507055284518563298662834143444687996255562693500416901816661754317960830079103572949241217399212042355966438757496185810629186662019066581349493350805400013962213837037607680699847026661418726143453404139021019065522450545300173597304982896588572125966676569785665251958933001763400261273771605773542943012333339982266526247158101635690970448729535309352880427545740733483607360007759056764234771603554386361006973013123783547961490501591360701249234175804462033792973128200223935869049273276649537580763328249421822122223300283454918226906506286779105587271664825110954819530174487499386403544881051565261133259115290834592770865739779329524084659313563625319075561115783455231325629779922558118284229303586641617310023714182264529102739446055479155527925469382897709493681192483753701365412820256716301529147469238694095327099378262137019944140185323478435036618727589035411048237602878274511745542065356661763866352284651930026244841042662336336004618214758970263185824028808033618096411452599973407541584550834921849891516492720196084083226665150054301686150683299853214197580883345620542702222532563759263638499695212259483204866636752952946288381572721013680231359988527228985097682048441535475988966778982983538976926871085768624061914132191682972288872528837590287908799172077744816804655251022571642988914487508211849496082317973038107818709334109549342351778105905773130502996037134142689932196736439359760842215735885411514773836793633933201341909400564907298755999867206720654041258208093200167653876456425444490520560009081936607698543379059107284789426675085089620373130061297816180651737100762794018779868765428856058045905181207931475703081517412337961196622213066087029613673189242899064569404539943713563423497549930430198620244346294170613820333504190168331681329287405458857401105415148146943496175508957133563967129726913774738330820955508529399048681037408127836727456488852912881145092041226755842076231905378136497897499769226049114845919047661957949386567408208522795491903252182581092184150793190750325436678772647090613910776392807084616726489364062611879615955497717184138655251312696227177190335578437054871665071383614639388691194721461665928405084203101453606768541175539189263884063388037933498695579481098985980822748865741701341187842328232199257466154164453435378374274314109422835455522286395146478724091271046101705026773547626247491278516001157848520701289940123218680958065832921192785429436349580887179572363223962018907773850905991198218491372640383510860102092644984234014187183354551700555754648625882982838476592550613604825858818142585757131780935784625719768313064731222429451286952264900727026680287871289100239287716034607687310304693719803427678958981529802369327773171202342066172227568603466902061803278923516429891186922985906142138349117495852009128187853496814004654129950974943724567446434680764687787704645738676493371263456227377137370626745506288790048437975500524651712179813693305656176035420732702524135224981230919412309337819147790541075975787239584041220645216604718554284473475524770089946195130228956445705451712275800307078408346851555984557759630708639700144330111812454962177574206555134397165625658489389317440443232888909426044634863390188954150448123528713977753987432531425719958767400578107666426644030961426430973296008125263091374908058504275519126596268858986264465703229769704526561635944819598740093603497279421818785527636381854869925502009344857199633955512926926499622560588209299108875664635518007656330269341843771561609007748307387553471336765782617255870600214965085454669591458182957571946134131540362971007526838210184115334393809600837669668888184380157282173455248199756009406802081076613029238834054144104670176432718969720142518472855914304975349170881862508087703589675444025754902199548233252731864093615409980629597061901374073193459609895927870761094430867206127258817302297402042575834887096925196255660523368303953582820360561668707687263080251946185680218247178364176367480462551951709510034893896185389511787902099565623588264344123951489922276175033271273786789397336031454280981324088929220172491443218502219794321833307911127431181523738432990080702852002056369177509958443576175114288778629801163320548916731198817529471223377485863660043516471970532255107638729678374373144105543941525680331228643737247610620091531886757003927513391195436040579499921505088917976359428253550205404114087343284655867660284955463804864989779967210000426228612023318371041184007185302283359050600232980555514517094708425260016222340476787274853404800879265864802112316994782555152913887378388866743812202690687774337276344193489719047187219442721352218025727427850796526356168278745907284744064509381446771441534095229207746322363606269542974006753772594522384500090309856368073462794550447781849746595499093314986060349347170885955729467774486200327472914292782837098678828652376417593128840122250028786404705424202692525772622482185818077730392675083237304497433725495495360173828935269473290450231705220137082966126854820427156122118044024455703764389563766578666924350964434117857558095226084475260720609461002852742907545025422521011097316250058974546321887379397698561459646265114687208243443972001549039742927055458674742361233396693384509814167748955584879344732159846338572812961578162212825206212658922117832270526115303643184205127684586975458844370977670366243227702040240125552267276124909446178657270249502342771995623473617832715319102607540456211662089985758213110165156162276862907064871874150250283779359630797087409135047957503949788803636883539431573088912316224759602917693743525218397547554304441698938860062281772182561622544406206038531880808631735206614821070279501408997663626363805123938274131868233672288796621721297325245511251151134997167855317810461888842779415960315845170875709568913839681545711678112300358914603140443977874527145129462846122653882939976527597330740173595660473990965608580474663400417089594079246231467733721076602967235040918413137432552968938357419857816281595091026771488799389873103691844575091708124453865439094361499651325272797636531693602424815490842970153230757556132235923279074753775102077840395315591401715832497124344871115192408896747871430260072710750083156540700655360302510968635703386823629425203033325684437295939240780290230009826138985886273156984428951609686489056521871144146473425359155285952970934121809100624617210782317954527644066462927583060678674212714163892764806819238627298732005866649633683751341101508392199386479104314419783823846930052365891739438200746248247006301689903351352859575859397726496807563754181691397791455075196942698803484823566497732472436704785943096278326962718188935726477470629513065029453257946087661112208282145862624225694306331237306597204215533487446052302382587813922968384915200196598116881114626408056477360680315412234082377606934713414649699403210522005520311480963744591676690677621554860313227166616720375598936337356456059490721298969658333913115862661658449637475725553332941783314660133915129442527348747600739232419794440142239166994672371525288787923022743315073991594816606248071725475429269536516397037067632342351296367843036991890673758651588176998123698697168291788736773630810458326720925313995885558984093485540131176888109347904784554083837948396540736050949014943933599509682111779717799109509662291109300524789171882384155799964795262797478038752616420734496073518185188653152472465027362217453135360410318181826481794951271914980234654045716398454227081149565398917794866994240419037376846609396597476841322786996729005100265326427962083835736438722028425305143251289312464713109452447450662905959484272356124424504950831845961728379874412957909253173731070661825074896426776531093399715878627673240438866533741036607792880453657301446278258922192057015353943167043673091709297847650290697851784862503664324151376057845070058025190539215145912794880053131998860504981896638390065095257649469494692778418644908063441649694621438067283242803593775232770572312050709636292415832274354141842838598776860208418499626459180492082379868744921991815560192658014437862951362587911999552475415177439537310672182044596943067131492923523949205262776616076596713728586430577842916974751694076494621466947608187587040577800816527683381116264831246242814778520234385666654206210311068034320822975243177385961449730731723852692848784591595033570436507644465985072261757314572849135896113028413981932756379017459530970197852630767519280749592469769329099365829774043928580386620037455546400040543024290703718162592632159774065951079080679750912082907951199835117695652842152450079029043921820598501772891949068459967344781334994099198349894578621453974826602701614798422341013331029622898180727792575359111223714515499004152418086921986395169320945111719121209035333423743352720110997329382696480911191562847954412969757525054779135718424855143591004928099915495884077009008415722426024539619671052087717906698464026528415778385319043457294779299458612340766919060539532921814095896755449212364330815574224714242077069212980300323913490769523240304719259769271033777055891280662823253842824919557254517191277150857855383533730338534596504090682646504462646644221104583689391338905275575891630246675927884246590639449612788836785294526192153026632822422303560276049278943251319144424505244799357265754295331213069766767237057406584521137439026642370290069376924281940503371217446587289179034217905622910733056697082631341129576790326414895767614499683923744274626063202897743282713425150370853129244307356244128992822429460473495689819160366734615440675170233382409652965144519293664332916671524049748774455382673775744094924001548951465545462974228653198907994488062902201098739439363253398238301006622864196720311725632210526331345541537884135467135299841861529888971887261763381365285933064010329622023669683908225578296535533779267206194353071910080294661105099575500059947506718092001837063317598554643549702543738564493573737897301230924930773155767815167774369733360513078434289832213716381741696085693330754921478354438797579213661099046411945140193216586920712753343894525197258652340466339526255437712562626711187966736761244939118470001112197340516083645061882219930623900231078583006890769850902786772920877093498713981264496485755451224685518319477275440575337901590886168465494387460961655640543850410341757632380727207109821660483852613298463942682009105162392754095893519360693074568548651157109739907177502948127973321643757918987527786937617487352562571766092981749921386650491855902121756426939263433722530943593908427283139764256803918956881324990096977789124016774924606733768466964370611251840154625161054710150694529884731688482146212088438321405000240180625091425868185979342096602155209167390405333216871575803282112376682354916313118338876106736964635597654925324554228487832862147055139836571301678658480381484707551015254764240580227742914490012874737337974749783393025125364410597629404786900419715326099329792115282074324549397306979387381497587200249675909741476040492520802496477767661225009728607016326326948228085049329264905037166781690268190054362118765066485402590542775922378176921330755904939794204692055593232627205906057327567926512352837102811248774018859534156428740760669764981964931738290391183864003020938256282212368113029491229662010135933234158891228004167729587955517232463036997341706035814965710497012954328546233682664441434453759094470629994095690964451771751275932866100581063380518215844481408747558677784737101730395620627982030041331638029045065586811821352670830101135719580668328335195601244472687018599981587476780421220938008714247980008553082767896624694584530878580424589999752304543603038007582704599626221365044834994183813112588246567018668108612559174132972518631912403336974056903762948216089778852030565811227206857630780839976135774922621749756333912090457990737679423319695399029265206354524204470230493674439113248677971903582891785811391370054160161800492296992836581065007792267943864139691632839926594838723475859387547511999080113262947153102187034981996235281978163415898672004891965092913997327693484516351826390731209833149628173103648701210790623602345636994316863436307177512825669596761287799925001351198344471939418627942591833556806193090751610252819071166842159221396685372780802996164186962896792656694974237852205381593894952480552691566182320467702129574102908223846364711744939700341174643516209448557566289850581511425908584444131031631040213970615147260777339517955936021198009656251604696573939585294045302972691767671922898894638434917750572659204479970741032804943515154451014405820528068462215105976365421254954834727367474522222457153137789596528947301333635078221879906892009073349243620009839112855906856689820068487995046953004847869819937278641522895609359370482193418858696633176931045740529922583543506598046190603119113079963718267557528501063180017671324497967908812734716353098615345887573344567545280162528190756492207848327222793945530677800419359366876922763306105281900060334534342263544299863247018026770035524222208512977631076780535157526131861671405922163721971589535745501390282568654926930554766010682203358275584740984574275618347240475097738003751332330530593028528545095105078249135507474775972309864771288753376482793877433947885494843342692031476743096036581258597437744703985659272096486384881629674176796135358511241923641048403355853203200502260496298284392012239183653980239516580465385112889313977790823571695503671866041854208000786299055771413199810991258744611556515953535079406438001672855591210428447461112353214607954041281829896676373244483154184236691837504540988010151283919967806097261804493471344239295942227755643310806476848267854830244031601139466095838786814010079793173655462877101719087993742957616606489564231766372967185077579050875839191463933040305349648317902130897679157974023060861418618757926609370331126349980793642456320157622770160264306172257432085529786572295888482940327166248448664787607818116070925619922093397209693243011680885116709758578771217400351826510886645351842576212706137348112032175600244630843264007242392008810731264670319532101676928534630744757835776117421468502821715116419460815010794565334216607260600781354703182783234846973273358591292647512894762284263432492232762443099615905668115531222212124694276260683397316028877153625429780152231003062663220909348180206036907175889719780792618498862646053257255595299881366393284845215572162282653151140959315198805728986811712973389372626185613247523277717888272027622010960025138984033544830309732139283643476432841463798984682429358382625538203071011926004416318798152168172126601696489727717209544509067509662351190410446290531231726874682053032383230952267733566494391335922975969044609402793545068531302701148934195092278666861811203061498352624080425376479855747598012921239572671488694666316203642414060688929484716692009136108747774220054206940363352099030285463777334735926271672378399522888637989437470641112144612647954667224467350625489809004572785884011357718188910691031644120637933260377946274528973898010988746132946240216741395328072359674878659982835050845139699065115840419962682415648147309425848415467974100464948947924633748909777029144214856346406968326846996869866687076570833449217605066094939859633722805480941305321436508038390858099586770560412131918835835338357075702221053545453387971289656499138896950962994453408144774946300392561748349226185339807866601801005056100867038975720439250519009017771899789688282126151765200356154598674862651355737685911031754647315877352966509078619559201216952063368771382380558619549692144163567326092253331568041297000311088677157144341437986514802770137228938568328393893568304449514033621962739858675785466762656261091150632115421318080540383396521636299135016458120643388640506654641638199064600884385501576775585969411209412674826378906016122449007384760062437413857224775076493420154579982818673886245809645910476278270480617478549154600874158891912653834166184311970513984736265953192186687574099848724364912320363135823068324823898680202438087806442177162870297798313182631212985204790547686900685214485512657156897531306520452349925671518119660501209088257526379207375667612871776778212035049442524610278361154993571092037675919053554609936122203387655646438958353498033801868924966026978394966779281401030908671232101270868352350673469929339385963063590873347969031433206572949189470377688799765010922873090551525585440700696737866811144963378025232050885472222862539119836557104057895490270622468762994359596054240905453424841161397002500318108418950775743346920914081431598561021988272654555536584799430665166168522718940374402596752202071891772448145893437730186137158859430257047802212714616547356651160781253237645891124880521404966789849498482269143276605631360122775094080117564563333380678165196880397530285201293780611768594598900384548284218910050667359707560158900597733804308513837310047882104784902612571995582324941251491352851260440418878162397747224608981568905357279217778909270907916284364583836767700808662921187176172885135611173591383477466241593647634244255149907135182272533383872925155794917674126811567279832591601762656051177747146329716509465722812762187662671994228697750713176640192632608983746788533999324377013974151704329083448353848527052309799907652613332713865898515770784291477555125538868091753941758519728337043684884353513026570499253097815831007937835610146531511264606333294543958826667978024806460182133798150701084538692703295949419935137567766066460532563937176051650481477901438730938633468420983137916949467890190717838002117544639829253606907118551508128129052709602994458109552853167207483091167296868536606923547058834695979341534796000943712356642274337768701368634123025677614764526754125444462171484775839919953484721999726681024471923579601535584165295520268637646157756403011727859322478439066145913461982167045844563116467561091949702050561085839018865113035886100788892021337810426017780663783538302957308253050607508563893929852566445398674109540629595569398450261866912711128535012213125719662713504351522465353430591650378635707517443098705264816557609778136940925383541312825371474586942065988463779356474674148028598895766402747426059283068121988180812002293311286392626959892218340314926526467683798567683923702315864246923038499880421667410166923234998447563699811054980701283143116910665733099754378891664371910898520082264846603323834498302883039736240651270526193650004046463988453930899628664350925171605811000483307684732731229822274017803863203199000447690051482103027479280549918177961793038694622379615950361602947193892858699681879035157815920143560016512725922044333780469142971700283103010720721924083383043001700563600460115684551203855736098648038601592300241224876226566500179163391124057552281781946595723479920552156901167647086896991028682182217810938041890983407842489162161390292010852816514456682121931265104356712468857310044778698328716991756870810870190434906476559566567960668301229613177947540018985092205910719180355634402986688187661563369942373884563588840447723650787022284463122469862580674973906204735638920126216367527320977271417965161117457210818933565157329470202734577264917143831610983900667838209600992371130638173620662964860549076274234818084484623614579321983325525589722422036397476703210846241823001723173820958567629493249914981095301059480208699529213695597170129606707728384807794177763407364701049129287379887544335011342194657355747354395852939651345314374790297940794028106696473930580649880301548523889961008274077614457135120287552405356548398381894339047226365614702877949080035254335398582343229143903450890970172412072379429130964732030262817594940855892318856972428216422208091625776524391892290387496487361876963893804478681270684703853034460363999731141402875217195323608509046636527002418006330873361647356184673578200351825186290141022467282109087281767176415966538806299580439024254453006848105073568320548674683149736665729265382512972593099242282041856498105401169268209994224694655143944671459084092191292066835838996669096070249877143162041025051975991114775867645258767230247156542363355635905049768395843293119280974282654907558106402351556932663101506500684216919823331590490078046115963817882836921455677143720145392976945136526516612741775582114034890113889173487983166695146223205386949693090762776610866422107163463389021778096578263170143982841337697804898198607245650549893040681966449238526782225851182376721250430117360170402474071703843213650515558897254472643138939237592869056235636208166607639897838942118143344038561615050709194026076149583734160585949553670821813686542077128703307013746016653903844560760402392949678135736448932717476069117973201140052609527760235873652199393989687818787218477435973524061126882517686410832401387656734582108187101319513013556770263008695661083406370670840976334045041829738259805462822708803752872969307014280891220365783293237092012550471999169232490378942612831593923424840432233773612581941746094312534681505030538064326851809682877690051692703386402789598658612338579336566922678172592916137973123028613071095761640420325798583612710081092626548637061781159387696379029017456036525178583766052873004563399302049855390536061619409394106610903438959514299119813736270023197840033096666375227681156626054032875055920654452320246050949012999275936605324702723061708703240553889666613338674321702846420005327566135722263498921623904901642492472683684531071662490923988100162269952491036355704660370613247959989059009248927030467707683545822746250479768368629745981697150911209702839535251123782007645652786859189197353284631984849883860851105426431573158995886727455598032694412617707874497169810935492578342238113136068068612226821557040870998273199467770350642163368358287856156587310283984670081501287520556192460827689828562131123541001157889657268788505715818751932256368713656904345801552811134985027451128107393868256574796270220735583017434709284084839465284803144073789012080558463889887709190558834858725289339499281619628211300563922528240790894854718893510668910572906853666854292694735807656303179415384986841862271364737268384105091099453030866397279601676619597852890839745624333487598820793602566559626581621739462501134059032035819636736707840076783936404391838098904469771176925911365065844031225652079161414745960369779850564245822533874398665566430593286583273165099496293143277413279290153228955617329535260106924154761500755653800155208553715146869698198625035787651417803384204723005060376625999510320147928858495872006804679056142814081553612884845990728348076784202986504977230320245276242076005800295243213659141881406161531590462917309511197749379544220896546611777568727301476054644976201427935611865976039344956403418054577100451815758832439055198196354052553389655947279131933089884774577826441235618455172699742984947336090369329060693284158184382378721596662996773251779975106969682927309458212667992228793550127695906471804463630897166251694825073180842161093907769917042506980439210709159808544482519297088528640340256985442550417963752404801173542549750177652422608062195574740956067789718922764331194816250268035449174492042477055543303904362534116384851375111206946639920908385606001316155298031061819112966957116367490520625586343005492231850179101347051116095695564784419373404257481228836860172364547248078513824514584735691551504182911146989184653022937925981274639901418079843269988696995957258810439021864351953552431082343775195837135717796128292214533232613830482616109251437143750023155983453706620649412700046944555307069068530639430302790354951611843335289205609082789783874936119134020891451196070639246496585370160989887581054667823889027951650238944341139335838412608635422588201465655523542426854853459252173233781553407364111468369259292532346155199116516937051850802039833608075031140655529893881667302679106609029348940491148108367624967611904311526786970805740835952993937550433650933071195714033301948127006497678915650570669198530158074448767191588173798767255245996729136291885854474780434174876559223113148257769701955928033059807688248374315309885488613265108534940418677128950613838399548931946588217665615229318607716892635209031545770890790994413134840973331718232971701755258707047027172710219946180371211355401115237391695614315272911488230233189229329304518827665183181670250312280255854009921022237699790126022297572842608854526557709254644800892007423382807472531355542591632978854837525197808481026794017367465900886743960557335995990625569404540471049830595172480947227207470795896927861904577598879305015811870323455194592321606158370354687623075245480910409479519157466012507725049764810212265890432366426139260360727072836294044587806127745088450038312514369559945118303320196461205151631985837364042652358703240132564807016855042133927280465486559853518446807543762036770522170904144488312599559186827141754750469660540643899162549915850897214061005823336228104020244625546490344515118742797754670802615308261915316240918416090412766199389401700258778224415279161651441304575414324100896805271535187754498730957786615600958100555580442742711466888818387240475867552648973838235885287050357314434048977044139198521527171646051028842852934877468662683071002870920403644832150853083469345423049565605391621404792351634505402249005292654288896540529266616372125496769697182915259802395067319467680600939526316926129240002998122339554096509570877618766062095457513961570968918180071224838884070903920908859870583319788480970028240560708494603535668946262785459290737100069895396765777419666848283931288352269678016139898147311850591721983195845592572746452934726923033264831942332728464500986151841850295948800669332714504942133325836637175937522111918944806891263471833474329202903361179318167172787697157666536816252210150420422672206719559802957595094411840212766803304752348128086129945567631132451033205470538394071094666396086727252699235152404928482982869463625710009752232730286098482284261647113757431099763922077330232942110731094108978229841474457708468313680224649924163994115882458756505403966054177655185173150428642397390206075282855129303796853820367486985827246419219466377201809281029545290436808665829319446553168804659302724792656601301810891027512188334767133116941833222043706380078746383265758925114313091389967637844690706005364089033744844950209532790430108275732298242761916868763766215099212390212694061644917111145101600382867478097682768211980029767867678650981373667323590110486261194091472249844823258725345583417376716047655621342432845722434083364480738911370444801226844974456791031280182815245193431711505153095924782477730672365738934874262401007933056741765473517421068444186111899902551341205854447621229014148767489354741258088969217349006273752647521006976339564418921704992597960764866632716577618876269735724012917686205159647371622617961739764625128114106995902279131405431026756022736393947230094259128828154932213492282330137089015828549870081210957469827981618203958683286127302545469743418351162968712565001828288137689375557445029758261093515353561195219012607141638611575650948364627700136855156337217873553474140525144257041906847769406413849097405387651229736697550084515612800427808399096269432267124473355534965474905205979586676795600597734643917671530226692932144042746466302179161918737955956708574011049106710471027344766363775962204867737497636537233949927859937506148200229919053764538415120016772875182428196294068326134372730661144340566369772596228743729193752180062041282339871474864012138237025518018135274724503150688279780982211332008620961544203987631707801821382055093716139968321408488385019517411556202506190652066816332996548096636504089020150922222676584089289421455194664539930133488872439495863335739518815818636779650086997587665488653795259066250785579773686478925138407025647324981172175629257674360500712120585894131939974283019099454910336485302723939519607537122520911710838295482169505011952661838458722329373944733251833896003431713668284748833860126743772347920817841755748687381086483607750125226194538370177346435494153564081806301556779540400480820343894351148410736294008710457011175458966319527127933668196687041429495833130960215812100063821296562566245926997797242155537419434147761413228711642685071001559266931340085689761685457729426337408916713439794698347484054388797952829821513807334323323647827293011247640659802665128939729491008674623735583025080941668888448275804251552474131241209980675019833472854095498094908725200287719236231408281396306695954923771686040427070806423157413854410917878943129812305013926196084616160038910877573018162794794748407701789016226613654444306998091325592875560477773965933793551885140592209143365643023973677281831806599224202734330856221697393153260519919817972622479005990288215834292648516523676800960390819374153950296078980748394122868281245547962094665004276013580549435347984920408027602175614762859549074132725341869672778150011763559168911586302621127129841902347695347955239032180621934448394676045414843685367552556343150684575923619951699698658245992857064765359874175366048420684950567469130195398306440589329424466564868156656488545816285880661894804464403023982254488213687856338514249661292336085378652554360455255874922013011033772527904072087518878364851982601641909357493886032709953879205527398293048125040181403932003998988384825405200422773528670727088137190735481611112295056528384341930445824192663996003730642397817981679938707555442210646326816600276765646510314347893589471734182941746205229669960490226606092300504771233487983833787921813593786074364522683750788241525321292103545005637614106403102707344119455867817524262615837493129799397093716065167946175220912715028742379075928662188302958060231428727808840410970888286264424721365597177473132221891191288626468682331130098065914656037626049824026856115098279911396171043544595016045128643889429518712382222889151999782391770519205596636030184262682711137336558698939711215738927105271241288797612649175601762450545858801786908082684915078221088521259165252131493552491771805172734149133362826028773399518265053075842717021744166322707808811635913790826280432937922705543932074411655090612889046385275268006486230515142343469369955932794716273224033470390075225565191871424364430067805505177994986935813296377640280072388005677555444953999529570932907215295441091352983337416784363509715619299915787552744097242119520615547634696436818135825185280027110410567152947024682110901887333034859603508996720371297383284490922545599178838594132809466425995247567588476282814421616377335165902139434257770370789134522099293807497542297797831696224306309027502391953816441722922919944203135034503323845971101679745761431009311750505387894843276369486415717263113377836387206770750958709991396545656636129174324211355330570067457110515420331116911011152180916575933722966714836213850071411533856436514455579623445612924589903096787815851263701352951898200526261124201459268947214872023372256676077130452573058572390052156255189699852415261024906672838659336129692787278156208385544143165185315115374428819927587080480298078312849302971494754874527280319780077769690711459852573756273773558333578756061830766383292227177356947440247152145977251757096339204892045571674917964195421417277338881480790324044363977321317445568294217693085508205976000406944573070176074002614716602259833267250820312357075173689682162911655459291830762429419731686877499030618529746267462340806559056980847638450867770132680930616222148220604383241973521435766732440431006653840349428097977011115863996803967438253258658344954529919313156889789102540125235503768782435665097007681509421676201520946502938811814483630818022923282179980767423777459394047704324004244123729298585066277112582660638872270238398542074170783726107452126896044687643815575754950564742686684457744088931636243969709990624962152726226450147135334824678892568749691161245101868190217899825952401160286342784017853989054115873325249924188214123937932455008909817846028216484053691384372536809705112089085099395943609625092913667240460395988792636739572512725124171443517901417221535181509016531047183654617469714539911447322396482693606786069853893877147220420704552999140817167071317406358591310650406662874635168302057586107329852761526664509006191105057183705618799125940490227589175173424456469851719889418111431396315064754927189567783311712542792519165869963744421089565881871959914686119155818620615945266526623594987978246538875410814901109560315041048462743664246424095561411781421080696596711489536145857516610819539114137942024847365219952597486523318486129140635381401118862579759854785849679040455133176567487191454435257681909726898255273377118965941230816048499416049922070750211421377235968157196494479643553009781586995062542500104954589696008323607492248483758865457869133215470344242979219836070677275559366612243528751392363768413785089819892306302342298058780213420729992806050175127393279359063576117054639613833275800085906770676239115052129173321695724776816651120350688396766841333287102331378813716308822491000795689214293408532617552139548654108516860761668613447974016937484813908435479163111470627968067963498098117411776594689986749096823651930570164603757599834694326108148592626109190924668495270393113816665824931461497494776043346079575669704100641331604500322796702192712625981890647478006061027763096604257442690954575213488048181391769794519827846273271295047766037669155132279436736568762181565697877128265520341940232753839681095669915747100800913657052616253995075395336631466063771193108263724969693552227277124444579144436826615474987399685357614152643912871950540611061469725209972622890515204101864999368724140982012887274352633946442034491244643893323437997127009128890975416731318126732445971519447682915758831159998185744057274232545667050676140228507198819261663114652355453495512307105947891464376350376517761242386919694231100432261289229946775270029658381002594563971353481391180973691854964821459438055368451059499550899209750608545226540382946655886035072282396785696455158233319808849298581017206903768014705485156783317359636859485838480673067077933802635286332747616576123198478868060826958730489014639488392785648155193010876668335222660956942102325315650200418153161299718313370954586601603257137633565963329623909910496195451738509415065474576641825646468249563183356870721654057031447489877325284121795581479742272279631084038527534768211699219693237691873163774975254818000351764017406570727299181094158237854623923691347777825219403219927048427875274658733733303865679319667788205292214536312921245593242357980367241318132904020942800149064437769798990671222524739032906226772377526820919455818267214567709628144387091869980297549698259092545527725340352243291414221524118310437629831361725001883258275271300629119702106319023329865037403281499722466081010142446820393341671347278019158257783321242906997349913349886037053494236924009085713996600076863260819480866630185340206987968415699207108307966828047808454987795365004228505014054968168169829899464789846666096217641369639134638229485510670874369828409053510895348101156469418661535699894889388006181153628839228793624510266571359691626552015222021459843053161241856414524473560790045826628190106737883435277443784502803348982144996848397661464699478267334616285281142757129536969165469228007163472430958404308499941644632434289975519123527003826771571508471168246437167707191936960671427437364436486481136360811235252503354114666818375817877687151210798101415309555755453564178078944808912877188988660214910200253642643458910573517587590115880599492912728040740973392711331970378135680560364258051962280629444657471103335084374167733828956389988997206031256057536569786574471140731250329832500873243029222640076912082077168250324644522656203492596742811808282537491641971514106758431064303844463034058411968193594416699534025180352083722516293019584612800754650539510942481522963299986406161368205029154701598505313512341148928666527167688485288118523448166738982476732893613857692813959075948079399344345799381581578346427564270323010608309102943704067118230300401225887853501211028841515224903365016733336726925815166439989843969918078655992123955556896988308838046520496021676750596873932337868657048954054507020879722494231763580963024425295789553024206011297310128014996115930667389164965860270765773471340722033073343111149590036303714719568373446402762138865447808345813440427941263109623049461720052918700284016867485754987776067075454056819218559359614920952902927231999185905787624978582361056990606042981079153320098916220729831301634959533572102909617250319673727368379482460500721088489900247070078168051272615481174759560412511577684602719615881072630500226684727867632427018471616789930578808697311399781269348837356545338887947861345970740866549558905508173144096484040693237448802200771383778740482389193284487558125667674243868799610914255513841818406280581906722230027882875235385149289502099146884909996291316416157969813688646931576236532534587531373995200410934643936234258922093263296046897150652202749493285285061535244905713800339083836869199870466829655013586860021099693620355107187685073252058276114171579044530270848988677283164259168653424629012290233701226929834589029855255345760292388431293357095386169293248103515271918563162085164489061927389380535609486300970581985183234750093072089924301017069764329486879383685841901275083039975783077135732962781742204193080197867677574075187033843382905982969003209927611899874670024243783760010984680978825476178077328064791809303686811185759717301182548278796746389808662309023413144578736196566391410559489330346662446412278118812167859863469763999385765378546996401850593924547430612676004052002217142268709851176445470779403799739700524220119900828499826211157556256544826850553729808099367595431216068707924316421134099522208585519927748967088896669540651320339224927668506698794612848370079774243426920788152126482622211124213276804301596239099373315202124977784655316750521305724457893294486724868398293443278680563085161047246025702427129419125395979673431915140075042717201722631680349397934311317525722574789373171762872718971030693482237234567800111419557095908100713919133736137795968823382658600604017007594504844800564409255698211100257660104223331786574369678284586775266197935249874077872557597186503233391722480903053781011645200445616073414159100613580464476967531285216940242259674530070264582075927152240920700473475774842879235598802369523862494884195318852936535034135784154540784476344988830974553670974038097822653409521518587550099804971958701235960935577758524659210872312083458269845033170561286470126028086659978487714960070886447924414208699720880672091989412825653495308690684288393890818746104416610969467517305811390995503045011597790084500330450144241586924533583860397820357646419770341932948288836498920270484164484765390647009321875117665429172915223143859024284232901569759958706645580047968387069207743339331724269999110544621488700870193344287478795424040878174295653936899855204528498032580077578744681968045041206593698180952251469665610105912619204781412971413609861265275912010576855927534820061137088973954116742113517302264560152020666935413368809702825251806306557171760035908099154652391118012969544129401298035857857614309586841596087524013660699169371110201019273056231448083318499615542319623544699217544083516485820725720901343297240288155146251105518144245095201179303510007969143569360579793331423539113899182006289058696223757331539519455982813587660991726468215257516704302873934794982580490942806560960678452575173896280466318782449710982978018331167931545577390301131942332430980816512923031126610797970547289591260301409089948258450842327214768700434033564503969760823718659785421164272355960846985926172603642482994161082675771375211684084051519219835828181409114384458990009830138203965376519897482229209178406774220497579338385202227103417463229153062453752472700554104643033818973357835565085373966953575191896028097210976590757683345243674529894551820820481394716982942150448275533521532882485773421659052383270946360046277516296531396274730319058350694095369234156689163343297044250863849351527328469872043257421573518749533088698401428380325919786038819376384910102027118836507104512903275427953960576497156623816971877345028409595318736460408313494571943666567068974678110229593891868186880455584493990995292006062031879858244995000987774492089334004370255273658557549000834196697268766869063531487017545956669225891700692197141283242985726689030108590357348173981072057142230424306207631492728377200878871631011364545169271231524705341942611385539510573288867900831033421083272268822332902914407427661342019226604149602599871393641733891014062444465138916857175025772786218746124024312230059058660840461386476101671534859837528159566326515424996814910666355881835798020383417937234889629932379160154831811316955890577985402425142310967104350188977103200341914054925578651408536064062446076844142038008832062304385397415865381868225575708904324655445577988702650733606576718008282843457683477468575710513758036419045398616516381525873493594970285873641422721386131727074137817039569243068817328979785247853677805681329681598390293871194561956934975338391658896042805809791410042704731078373617137123403508300330399900114566525700857489631180748272851977250612831529337054288806838289318145136226370483059711399282674586504562410889405428380755465261828733101518312660807422703704668382230384227274568502501560492504143896387504727413573126933155730281686244794055949008991237537265336606955989280295421521914284611685687673171996247996712187573533229120677130164933874423039247994439231307821394509536107859290645676824025397993922833097743101576574795631866427454661153302611092123957295482655058625060147489902393966014185208717318691151782227266711321655334586513431694679763167734365573509264434224708877993293728395673832027287172327942334170386268840844004390741725644038573058230604790544690599547114392662629204253008163431622830277481990783130625631461622395836614185258664112595500372515310533745709205002644510030605995950660119379243728654714587987272131957703194576112493202211233753194971832217684292166439188113744165714738673048296614275032377340545998279348513329009650582138687452222663108560456815931555580760975081744385403753092217493417300512611690285563749199305556597024897447323777881112034232752991242971992654831053777810403765661939916658962095550813254421447397109013887216471741014420914839497002912005582294174219807058401585917826859770504028531506462168594213361815761800853226578669805467327060390344099999534179859974689695693201931124894024935549856777823673913101010967918915615340105875623279641029353367657828928615880308112583068726902996935198380417670314965435044001099255632194047680246495089799679879396714693197651252196375913724688726392641447614809194851114289377369031926048347282338526858416054068741280024296251894557137732653021695478134373699088000325881746441649454202310146220087880386902797748856337256393104258689399814478447660038691975938965552773224793953991596206509852214404910722598710965898072763431088634180018497686226705091790008973342951786675441374823602468740448711593866152503518952895496991658891819655148901055942339804854774185643754695338193534670589930301449156913125198080645413854297780438909854575914030181638178803595296946488223922994618972827477059377532034754530598251859204583983121723198568955115849655365043537983709680949194227420661976148506675951961982843684999186174861001976519841420979861036742628037214424066186916649683257625377356234731342367076469043013928604873765765565469126644413173776435365249097406165048549521995605849235955244762974592711959199961868915838270170342213326923649091853481509965930919905335818286870921194852475202261934533389736231430840195839138707222832977322822391761411738739811122635521593471213800894217626357635888720824639623861228477238255900364322182828260179069386619751135889544181618670884150814295183180251378592887515668560912380718655180503612342865358075032111041845183006814644635179137934406582481485444333590465293501601753288657208239239367402176432958694049417190855727532491675686291763004785134745753354509844179675576852402277965900538951998472456519347082021484406473794489500866547252110396166648007307919498974850708412556316294065866417597621664624556106944688019954059274814816705625247197053740020441305064516138559732701240244247254797592949346364087574233893733400629915588703717383830040695130060087721588300390108900129224618124089356383133610873185599409214082961348573629612954862859876723479535096694639698175444929267744587415856300971786591269690774744097748358314776709616346892192211236220056745256033433154644973065596166166990246691438987045335465651902665173793648993543597348134731209306688824668899281716307455309285482931615708463463071001260340550054159549893178597536305469331152534085986933710806456987334827329211409906820552696804685579951293737308800795777862530476553410942258783491540301420213318910650244026847112977557218380327259970568980716386399247518536291670501174197672028719373082731745268539951163020938005752116131370201731506953266680842594157429827244354307559121209981575046620433238707815077116312249088013355137619606505707746954750854131159585095081357885505765287959673253366020999262045928101388744157292244990791518520434127212824673027190312342240309017611333378360228362783168523681945639656643616672284924256894579582205308071390759317382592275349304868401580486293442884300097692132390801283003533904171028828318973931638147824725774327187868648185791546942041394479061650353099206644304412863313204478105009410824567938313004820535176871832296648468126756989159339113425841868223156691815815374142027477242195915170805556800270936456960969205417993381738711793706510011989136496322879178311600927963233302395250747011575428496027585407670755797020579787954496563279851133239652939294329700156597283371542048285040004470268303925511961550627042162059162614817133059619218080722682628285224978606871799904997745373734059182393888215631441600075970269489658215807482634643249468693977770711762948621076489738456119385964509868552825507310147327697401166892788537125489047553368995434220630393134391408646177074855318551876517948308185183783175230456234937794396431511297350054243544287448497916255581998780585264953880192915838397704325714328541879631770525759359249123466109404337298584135548091565029293675837003833641084962809980737491338418802532088557241292855877816699621936211189425057227235174739957465605288192934503408008258782222319575396697200015296425737110297007204773654073680354382356907804327565147517903367288144960031764003503095826781598357921236965056166722368520665129148357864068774321054031393734229437601633008992866729059806347073627677990970256078267618262258184739769857667976088031811569966191507519863184559963138272506196771329580002087162609389863397369641694972944628085823604643586043562316564819302380919248447110789231778820392104402956290541889528122445079830711961421976153372235405900739081689663675831570783648431264267200072566423110017147112934487657696319251442872208273154448514441866696455363450605023186432099255335669831515423103262510379982227388372965514627063590322953085248444071480405644063549596042023440492860626236878186640429911829429157758590515278258567176516038440695246211906544873701315029457327024992845708295652982267914618723299928807706350742641216946997277241909757048631307581460729324246021895320804371213525865781083426928144211415222598718245901219755469108340386330790977382935020732420057715315979174381103076524744470238476937429602069707051648010140541579418683466623695550070248312038357582573724629389371387131072484603865012790961310408537554512649842179167389562962713185094445292894152637528730882677594358941978189181484714460968227784543463344117960969429542873362430013846576066426548898576041005520182048350796194212270613909310315846904179913789020515545366479712209145313900816418873508734267099632354942974465769675272676046164432658359353783663215770956725525906026236513727802635647045212734577194633164528473235342870313563202517035190938810606172447462980596679895270751281044155379820254429269005706128203328532281300956656555116714929174015494607971521794726333123263872781849485638956556802991788398554865502276675236394287875066487633493851471274928923311126833351666348736531120399808812391111981127780054211395600377236480238836971941312483897057969219646225797596281163041574227528672456564185381840081635158282343001940938273061491887051361732060748441151226542445919725957513912651159621746305034026696023999665564646810100931233292400466661626373787015690597492309653863749230151712767378413986611132311565124660754689036660658014855774436795332131973653274297370633146369963545378943193363884815286874675003529142469952177294703355148753936328070864567048264377471632406819232235575583072342470828400686283725449133489484281777501832688126664073375172303741920903674516366877423084785907279169776557948075903521525582970350432104246660186724405622485431901119872862766285308790307177789592761703966392545101860505733792903072063437601119289347388835713546794067542306827080603122883766906902371112460177971054379846823412651618761475274597452036077039049852760618600413412430034332485024001845046448147059168800455759566673703320266682874561189233256534009330041284131592047763214628864543957785588322603137523967898059356253824142954175252172358042545936335971870430786898772809882924716536324862912084712308057690144364435246484316254687729215865920596147112392471212591026958335389284127137479442409099984986735866460443438023094592355930433210263695991113594482306099115744276957090832130294640772119367541689113487406921444744764273417606703044421737060730474489639463670874562858486903561325764707733374556888677338357335585666514552889405797224894179476073426810455346001646672573676972578880721059286500807501150669555151538241676958237746325118638903732683307152116358954553497842158927408878745745607553116318352799275155076744896392657205220297315193744232247449210976597533727867805933694219918247439629364837717052755176326595660953526938820778508551095107164050885262404883652746677025050275256254611087290510012569884956544278010702019364416988875464438569546511538569763562659983639069275607452199984664588793061133159835174482780257561747854831873326642469606577251363429228155986512653982135313302237489661149315536340809885675201816119736582701451656251000938667034514264823860786926330096314042599521230995451292521867982168181362514049461689173061659903726010205655806524821278477959997219133778164848398250699159838051784496856801886199834270323867004055780558771079734534726983668158808693754035476893475605415186045367391470023278795734487345965684434456247407915588423746933357998121269166174764733009179870242575448530292742311884157913810075198173452845431229686975670209947452172906760628930746104483749420891825076070743242412288001929119592169847314737378670178284712781742369890779930771649537260906008970701037298988138055888901623563202658210977487397157845339597181271947067575553502765849957237802436870032138984202844582989228004775751440676531976122707662145160335264929872038552937611433249143973319544819638061608175303248386327297694706691912685152874788997315899093559899919040658999817323994866593234080096007469234703018397776903033564457038484712301492006515214580214832351039203459812037678640462039132183539385520645465944276780333930388027638592603620094131881543678630482921970725341973204758501718858734408431112051279204715800134465386944140325118522798568314248901633647018910938045658618561226943134160460547720450738878541888034480875906829510005920560752325052427823021742945107269796922865755472880270474915256269426701104874896005207101884441044546315180131385924789720628951316372093493045831961891185067572074096737535685822774336643954711960202399986864984351692942283949180156228008421684433097779723932309787938587199303718690024042233958117299402934477340588042477974307695617226124665361608689503826032932140255403142168807533660181591800484406517047824795623851088651569989180244271651078635221166256537447446860694627315042342682621375923936895108592549624359312863172903610079439202501046570289071563263305421499103703501022715545176155052425267539818610434935261794146999744854400003388419300725923018552822541446441578521776648828432477853756580300579809975345868193433206293657482640198406716928816584061714903102379263446012127302341600826490519186636850871222823045580211990500435627573252091516983743924972409667881382081719153536173603861033145884803934373881377053374681539211483414086135240228958728709531528556081923998416074263346107592786873634786096048648727027266562463538601421757983132791398446304806137491099001014834812732088723457054647973106903766606681465509507413846433459409701234513180298025326780742477931334155599962700501165746264134413230161200648967756184629451836117709478417428332630707005646024491483056962624160493440300099035628073328249308308296857630173372588447541232200170495999186781643627838480783770875471596197582467574608095862380692709371003101595823674678896252990574630347289111200351012804706049650421581706875366259900898011460403616383864608117630140978195822120574092566698441945488465407694289394189639115974532189720704894605516019954111937992716460511985545892172612378025458739494243807758360732150381340061445670236023773315623381571236361340385672893928574001003814596184493136269390749494760458721986031671923918737841746168973838458107925681687539539565000972156806293826238384567429837649034026101591634265742041529977427256338908382152249242555503072898574017078168965066346700665248736847304786426577862930564782830058681380509311462065768888293245485802486632912947202931729492622876796964207807651797850962216913639798307675751955716854387578934870553961086863758863764161249063415251938147454837181125197844325746482392797570659958576623345696846893196449514254554503312695354542816594512819349296815953358367340279930260006313062169866603142576522662477071959565963616657813447976095860743189714719901692352585750398015208219479340635708830993291591325065794059516620429380633801770396189706785389467152588372466123122343905336801617109833579019372829074702817540389486144087751174996877027894789960454150229096914021813241602466638085515422776176059727857514612507761946880128463084709340346697589530084733668370481658604210269175929713034781360741428022662454898301210611184111445748805798826163305157304715373316015234655760056177453412234666496977898575755037831664795001653912970445788866615435777407079364749557656014004225076753027252620972568308596850468913677364117470261389831425999817858683415425337272948913632966907321932404145423919803245797263082494958673470165898469850811822375180286273168030865819241342434381964257088175994639630849442529302432800069880473308426799180277306604477533111121820982881195941009820960930526777159096112143167327617716919547878873838001464815849506241279073119194530567370013518982510713708367042955237286394080722819409305976601082330468648171320172586013354207747578665091802153356602330933854538733167174646119364349960982798129795775335824022124026368359450885499918756303165687727704454215669633906639598597236898210459896315068042894885740521642173917825499881163359396672380789997541656476271016193588132097735162195720133335408629189213136838532585542380348560811036982105758716907538171888263102271969259570532542684097639138027898653060087890653538356899034855725010467296382403564493430356540581220907317391930087773497787879444128178633571630519570202019028231808589091371390392550484111439274845293424212225016905912659755586796371573051921402930726974113064130150986154885914449615524039698854128983248875898549332372691361701402378710616495746034015864040822984006632862766877208187153114666132141603784261093665053720376235218264955280787044583436936770122578414033024617809860831352488667320694492950922050883148620822077730158811340839163245692172856895019273383635782823847029734907434029162536394919659154610359679289346126705452968059449472517702725090550119914829830699935175410268685004821366965943467212528742638906279274163183493460617915768155011063012957167196338435330989126896681549009435004376055616255116348288722406146856379738908743930013435620009292415202327084473115403655908043200900347420037693984383817020428850367567031322503859374932422281350449336541145552206972682938879907150965959196418172214649557162214727551451275539034405439504234965568874255670473742646698387328798456597640132274814688825895277969135886904068730298816240162443508962511255918323225896715807183232357055963328753979663266185277571143569493727371346567185851515325914853746213778540600202677227379477900293163197200494526551840306314614726356742297993716315218545142002192904499409417882282753317830650198236492928625276443450906825577805353101464539624560991509263191300575101932059423035425175043898498688378733746143085246535957813029868717028290296110319465936655224522274164677007376334262040200012347974481903248185707869112597484567791276311370824013805954185624464540580018394870851742275627747540314758372256966180866808839003100442341005245754925649519034411726483692686095042663056155667040138985932408068677253551850683263479787928575774725551054728880537453037362789405716588913784699121943114395618011699923276218589229264917578037765221375975251369482949470308494005505245921943448850458459429468426357155015264618689230904761332678023177899127480147640571083069338415434416058078439666673840833846918609045712422356221974911807275772666440087370743015015136563701986129231867180787879313845212873626717108830179718059813286917830194809779860957396177657446078050099579410098018632809094615916708538100180254048530780194712516367409294095890259028023576215091512266431389006812586963951788705769479569914162094300240817257467709883267987656822127484803378032959338662121682402848706862570793277549692768420902887752559347150432084985999619517527762148348930613199287652406805542603107966161597684126594145589316407645209982446415734790195374552222276975908705291312971549694635466776946261045392780638970446013901135369353064352778668107188911815650859689148055960644406313076526965294521048957768562527361219877300807314140662718245698225828804058094850823628145184511275440468649520713832837518273607600145495415624781665764808233119876863448751364876545777604129132862776914575829398030213043704969595078411589826160590177722161585314080013691530435340929610359375269782729030786064529302188669541258238423495933339706538145290997216386882216685930546332890874902219431060936123755195348358179652760618875352473451461511739951866973617236282027092064784310698924430471792451201958670964784164743944011932825565476527488981225788300304992027089074156307490602464539963823320243840182925961223223620683715591140976904145104236611002175762596059892158057489917942599232963685435389549010281006535231340572046334520745509968359877244063795567819427601102417953291519891668950272709503748861561677619920088248160535641917119548628725882118659939035925764406970488976042029945152372716237965229797084539969704582675503975047008369818087319099171144406906803436981164826121086241323176839788113355687237116207648587648332692315797159997609979974381362428277852702576764750785729885890956792524948186816410106788368803592182889782935794566513189257167243504646049565254207032331645564843908335016038598553605177477954624247846867122330302543707877103056885269350426158935023199123137132344617787460174838680368655372833239551577823413098097266962731770798039822188288482801287653136814061375580495476463802419941661918912655283344596089239668458617585011548984162807722103914235016714106345700498074270369352812485385042485357782498311951019997130356801151864961036896682821625529237195491299147175715769095864957090698351822346120771890059910107817208672459068317301054497961029056718874747719891713487161300217454341897275523029878446367146388112057459987335974643520170585473758412390789357863294972476434156943116433756221304264923698798855035347365605347374319061002514026866310465260569956817261580580884765636557166837474702295448181555954966851120769344672492507423280790933838683533074315053423225973776090565731581082046318738433290696338028499391069312773135704309220364643589483890274274395009212675512027452941927203920246512473462799748024802632714663421358416824305230584749639594109171879897339780574208819625148076208956126144524404002998159823919765734048092076019277441758584217772548819502361667860114773281950415310708707535974915383576394247106597577226454879899444644744528839068054414900390328882507466937525532712458957014592653174890022885785576866262235518302879701146196214402932586855163774122136028944381103345557828871314833148832796448083302183149365862327538552609810274862103535926714791863276551567067064481509857478193512699925431569615224319232084928187624050989098540378018389979010573643090727858145289247110836339199279279174070671916385466611554932514068474965192973229979053940215949105963520977206906026709491781710455319591072043851579164782310621969989461671036777213827264613228387018009901799333418878948122043249322696932630761916933394026424482400213046316726138809657789998869028988234575441846982835065381018669351181403413781867464160117691629806900652016980898124877369929883512658889698869253252521142371878229090376024127719961702840583952172635950007997079790661188936852561184736704505876862191833806753063125820574913758337055670648633857904432532448266448176653377133176373793849765868093361289231745792029360629098609262578672122635356383698423065720566833169061839935449441428050701594267721370903075959151970967241044101318340564216819223999162245697533228694064313316653462394464041172857481239259621574862536601423241159960130696774301071776054212664169265489874335864064806019943908274351117241852595436974308506246328176824088561198522269216621210197053978416726980862184215182952880350659181739193780323374097411704542261444183707276365142493029730224310185229228493600955239601682723332699978430783489095110028069474750043830412198736081961462467783664590437638554846627219695740139451110463872898869149932841556061233209615343779398057142137852624826461124547360938038867840062219361953183714702106620773330047148381501737696531088866473715765708935421652401522256776913597419751096230187559762442105492452993895578953983513436642415186345698127751917674235920586751360298769170242372314254578380189121575121357047216575239890827347426358788086406995690648338647013079015327216473393484945881309901801617567806763615838882252629605132289266925521697841241320099648370286940443498506116316002998859678276504867124261133674050940547081102595678449007083395509307347678271003327801895473582995146726256450853886121476396423431653881565298676811876125944224096295395443333114597421759277022121501607653819478857587649132899202473205045198747631212088637766800365298346365001352445261099912357665816271720116664449264458054481454742060616803766263454011974725313865940472649695569486586401723352891056824998836521299549463495921971055059946843350755552290745969026141357153329600341026773614786939131946796656318828593842810744519687930516287167047298404924238877250926177138519448723544604512660612899358170432788451442351622299036466802065828936274739886851712302805508018258261722191837531129344326046701751316856456873141999924656038687744478409361562597345905248670524231548662312684167758360467040371817382202669030820600983800711801835090054365893035625410836653263441378682647190154580035799702364347378449767328680422568148396348808474460057809285976922548956823580921277839202343124279637058052596749486432902632684945538889976637387285124956940692516073944513531120273112953419383849046246555515109074757581386080826473752911656610355469195662062752880344443925398713531547698989827976099104158792868415098423889127129056094537376174176711648141325413448253324194599829866346521357772232181664375262869829517575719579300018953423610730336793311536630695707814544112620958954371105386422899643845603704158173502146615149781142726757864234323668824980782962768962885534142522753692173265895257897384923916878578018253093005855267386838872447119928545609445051856994530922522498964744278875716761731210355398263656860469035205585867541425587935034663401234292650036913158335097287019786061414539620701683535971443704740877099391092220484073420001746732123438221521781435985522103942236590128498806404378346528560704655509319301304079410236732667779125291362229535803186437211285995011585838584889247330911095928714834415641549859472296053672363080731820978957609575248391429050021487972471470531022226085375617394691218291254637792343512527019733273103408843343915555763273569515178266906869422577948373420278582860861513340707548570316178386198278097504425703290073145972346396592726503787100048931861387022741295447862086384443043909427975661987407566271521331949379452774984480923278815501869661830084266845017707629286605763289705540498775571722181326442415033551182842082249032414570294718362127286860721468527701847268133849776593574257360938859351488312156714185978251087855805081736658204644209275069246243549274623756777895557107773091782076426103247722356479686410083212304383540957190686892893691959221076368007532126052414294348103359147729194209402546580110797133962336043449567517634402263068758493541860402985146663968046149978561806694846536738164076380015726968483888667769733650040794129207718942950057411611038226597845197201964265238675400440600166654768057608614200932795949841327169060172262585513012677101791531460307648936403344696803190564128271505460267811723017290403768324853961066473377531896292363441670444646386898169550852212668163118794364949678699371090139134444567004592327324210668318748920546611220063852368627700540279579027767687574401974089163957725691914385021053181473347796711596474389231412768349878331001733934743758359005077414922421991213109350589062173105652216340647952782582245136666378935052975580760167424352472415472640074662479001585776691297143746967685988393800427951389225587599167683530612473638144814247995769235684644206560997936207948314325365985950240191513639714035114488537327961230677209089922676904241363402408557174064217418788010775043058785163150610198584770822744252680002397391918517721809120940477113222248734965218995481131140207158969423899105323075388929083594030621613330766886330011755679390891131813606583550082601655260239133437292632291917196348114708256747761111095584202804468378136081317316261173128161573480589230796227517569737507976524882665246015568131577735581518204521215268466199288892990923844965627623323191593601550134790199265694588440788797905925144412171736401095539474649513150493232634660471393127713479628348920834264594302237638427164215700127332851902031326028333896992735618328614690821280113624597469703464351450861773965462528181257085712745533584611092649674005409268009914244585048485338133698450710483625276342253196183600963694706027703598329906671009508687582168821360133412390322557511753022703552549690484049101198135498903994808636429177456535985503606967670832675638795904939072862879592385616014844525855817239296170672359820764023347165564325012243756557506736757719824025647303636339648248470823228726726296986076293179448420328705464120916196271615179913453646873343534103920429026665848633297901379329778535979787180488756966826154687952326996180863140093441866108406916265942513998445414802493182087500381241858879618245389216560929081200101637739905350754993243583768602959667520271627036356536854336741947583467638121698426793665591732189423215800085585367057037063296958141857969262600627940518614609290561025339714773187251916887268753155674119895816126992062392710176756573427801593851894910700839320660107557796234423185751461917761082620876874667088517498900813470627746821684624183027315013906644633432957760801271444848804685209878873165753252308707643184716490183712399886083441411406510189964426870887396338668218244643259137555931194325377364613833422677414966423757823323047107478212262734323347117518080825430199133173592976080480637492710011074119337697521057914869060488589148593380132317253158271012612048473637381425348890631188803678176902119054536220851062195184920355551523640449392084416974007135651143940957953686535299745268530118160995226604144629583507882274232382172244826159759875302219069832528367282890269748794678065520771764899732312274026725249183841477219831136269304922081756596835756940975805298590604127932159078373538580682405662417711335643675042882252770259724543418416658308381413095675430778313046611911117244155583701503085234072537037611810845638744397857513894996261094525612158274416607071956947565720185528206963084162053141587204765087977937063938986004884531844418065235621065959688836200855687495841416309315220224765163798773130338064298116598910074128641712817701337362546331558382571839415164513601961496321820062698805532597855095840720329111206843195919126854051403859292524287802682806242143815428487384746009468504005342032602792877185028157089981700130590375731848174718006625006433458149999466890799008733113596842350956389204472462528916318438565384592347875259175981065801696492079757896718096170995645349854335467082282986774077301088208762080590333272372559022721852397962078320199019137990690339560986956915150501513907711896038169991411389186061127338688182766444670635101275564539646244528822717986420785763468952936916705652401814093804808570401796918765489064902805093601729952350270008539796978980843059734139648915825106390905997407498433741950661549968686988768824980936759919666994933962901100729410354248642269689177240590600897697483673748328791561051693919939526037847167220405616492974817888754819904435541484123266807587083635773860015908906304013730055038298924499721861400979060346930268363975695752966326704282757304721805711288345376281367532805801682033572991662850098415924491561008555542318838344088101860135130099242030138978605051573560454284079519872742958646687976388965783361813368777902517924712649104152542456574673252199058107558764654343270922339670127287931338992458053391618402731033990083756867730353393280316685546826945983775394229727548614173234806275400431664557243697261289607742853001901824859908285558258445441216055205133557446771716945917920174687364088978535382689618598796582251395205347733219124313604595399560353045608816439129418743917147432842243246619967730997170152926684447544911741928532348036639649161485498835991550796880655432137139503087508129387300591745559087580645801144668257769975459872963630590157041416780839450150408654120782952735551748344789045600089154307520581745444278487336280504570122415896074549753343680316311156664326900320433232969293110686858582139846263778438271130770261773604034285589833408773251374864322991358770624157350404492338610891561005688663653162184861080682198817295303324844466291294940279001072032083213267983993178987383585258266169095928453110013122465638062559802316977760273598103217312136437115003947776845306670438189080120047164628070960344004757741998552156299210670029504783133428644089530776533613245518614082763182490969650016359672217247484599840154925482466697727357228852072014552070250285816816111214114668061428762499988321507287372333906526175739174216515516397182550844378858172759487957972792308144478390427461406852557150695393012761501085304449477010032877270575995483991228128362447155576867644259228067234496862620128394509045282748641937723426005975997760272519088943012556752446165099438262797496376479653902492259210061986080177809670476998083184758685828546009545093082691633856468815582947965639132080872685652366954644291707509538850593778109062816940196469086191106090996650240417702894863262944649023916103913355205756908726810422608201972105277111964121325243150144888527043470673823145779899640596722596798648399478980755707403266863453732342760157285423310484687314102956793190086351169592321631427318652120725469212943460929301535994504747880785793030338005885195365502168533146824999659134230151041903062563775020899252223395266646935584976365998940257081845393689011660826188861417293365448843521235819289037074458951463895833325610849792595187461965827460707239373845516028406786183641480515562657774238404792553685221967985004876906540639796031143287007074932392283441759523418922654764490079810734257122540345349468264190498094070905646056621144914424432121438789266845817677042784446893996533005143319386051677091487398156991261077246294915308071744850310027718936724529309905479211652256480389915984213690275025655651461459423573014363765785260630376180934399319573007436983558159306400834795530892765436988029441418326234719036491188923996477254437978076952364810973481794273335376478727189914525344705336562647310734134251897268223186290705429490133532810928745737573025857695059860046192303887260519905340395487974555668145262161126554845176602843752436905362952542980048045969259463882926132479650517800523821455871487359660606577970341994502603775155991157674691765289517111408194348354974720304338783148804191758278853626784091289438628501745801380561450279843229513045040732666465395417372505754852347224999439215706055275367600545295844170014932953114980105640763803379922539381542094177649359692757597310502589579543013973503059414913099930052155172971617666915840720164157527272661318162377009740413330181855168930339791541687410832605195742433036086162120346327157151910009930278705492374194339572448915017785969902005199786214869159293601849261377944323458719092894505701162189595130621551284936960443311006714400236034996203983607594289760793541082367738332106308511453837345546948640869974261154482518621656012760816663409185984381994068112328174622146273745815062349144980048466302568236073014689785808464920028882710049570189419000338680321537920433117294472964709389024767382917643315891719527132408202847556576291410638585284351187838673085140250270366735411757434939741998157860716752914815082971941156314430354380109847348697764059056292271846345260966911385336072234291502444941228551632472599325062187272244370109166288142620078354362589588502445546009447136498321294284372751352212961246154969831798650934201931629723929353714121499069725278921696098481748312461298829806959333977549049626425274551827183728783716148959858947231156233889392452898122706220806955769814187722348146254515798305794275116068445754903763574368784440119399403668961646373596292840864874847062182672049310111189351304524582723222185018428253316819973034908558887671917114226730596485806549303049971390857852932154272308456812426315999396165724771787298720830788561099915313021797929888544981715439746415762262638565519484638275075392534866549830352368874429389863793956808624021556143722834676241535604156332819563348644182738142109299530221323728635767909945266223329901997306902852191840065503042151042671151901302228907786748063048293004983093803680556649004851857207371205737476528956849798270818819628448030324952764670651274140241150720681768087701569500786441673912200742617299281842238678713095659939810396180658074811968740497263717342416372309958008856150812753978180904317623145667035998459437911364612862202531909119280532180352960119015308499236641750724413873988873171373135697593985761569402060893399804056031788031889723942098961875770909941741943660216966599477064878828283179869845900461922230497133211226386157091842095582761760873373316128305133635626727513341596464024200929985015371884904781437754642834539460245538204153491192452528560213584699770160731795967784888444557518057461907989210408026532292494058700751537103712012919765154605633260479630820728718707144988025259419439824548016017358847676315667227694579008202028998893332275708194085475174651389488605952431598891623488511393522621637768416258487620277736251897970063974261059962259503820744085154458528719853340728141246238975009360993319754325399157813609968708505321701418949921509020679383714488014676590759746550181144696455624435340287458240907669092518342459253639029763625887457405342207963424905337905764492549916236796776765707590822951320123386706425679438594944311194683354148405308615548749669695669368102289923262131116217376959800040095950424363203859011122472637534228518937272764835332106503280842327309285316193967665192296857781217444414853776779299921452763866042221624656270059149167647778551030582776973605929474159061155213433208517527743384160182854325407263568274582217122901497003212873340495747907691941741671053630812585007987799706111079925297666418523926581590769760575156842737179304059041687422842710979902464503560224021711560709143047100851616055324624419207812009964185354939064069209782984926473377303551211872130520693492156575673341003270722252228793766430869700953126802188941922533028373143758737720921568907713830441453877319004197657601704582637646376451937463116732417253230354958569326771893834179565649122442745970140126890469535212475691065931201905652502859143605070347462241044450404033429520409945544233482604273889992322025595031098760897078341990923168604854915141260645898128750063102077421352119686417987410585815863564052764243407450812062579222986861046444311827550492979541084309667565266516684008588258594084147203251900632266881120046954691745493040185516303166552185080673908982108230233515919244485054265073302088033850322703656695607068399641881485732095842780281352346708431535878520437779118744045373179349253225113390661058323486508228356927757106234499216757558387804957639343525014381759888703325187358535860601284922474238650533091074479961106311020858058970153100469107321873195909513614006494097639107887071792073441371316521357740544092736793814548556013767798194501709857973673750275509929809429940115422243765286584730885573564954329111453856739014911951995753645887904231646471585717970694955122656422282184616309990373359453766652197325420676371864999947244198450890101310364068405688155825391693935431376498810264617378500871802472247771777490877483964191541552269424252092028806201105123471026723689634610943246749168543628637441123404999151722065397732984626982614421639534866667666238835796583370695880186064151997354942033408651013692159553263227654784692972302667540100429793398824617053853127223710681151733501267838854091650269088037632015075265315509691611484713180057591465629993641794071588442437662943257681533248046166766959893999209229742455042314010961621684027572535456882031488359167785799554033051033657174047152219333304152243658096740066080486705259576814239498859496882970131693809458907263213722942351992925809993652629388820831734841146402520012487460685378280051401166559122866839285022840637254668658399886775052414033334520717510508904201559803320934273964294137130886351986695102645384696991579037574413913347537657428196805523088340079828201039040829718457467455530333352193660539024484046259422096944459468447338143244389722940087040661605164555654710525464525778076123449079154542763996739359133997060178469582479545172736813638071847334134539896773469013088252039796126929653781160654668869309920085047953791579854013376554300633336693204297627071998628915909654781689944365522665973601554107943410122615828066338865344128408730232233601559907989372359300744710165493555641786099414324028567931036824255619130913982158693264440737933673168339694264437364669538859959923185535944608460965107960131490014849071366124825071775649017763143289909103320618685487488356105292973252228488791016436469464389100511699694021445555606942510788658488625509739843657563605452588619720131285955581053841106538834433716311144770540712447131394191639113796288973127763566774731671204226352375648001621410389244216546116493354637386149334466349342598703005908228945226263389293699903393255203769276959275234507671104613077298579357262406127710342863062672042865940319785127060997659697842586753997594002901414813688676285709280163208456758276712224517524119168958785700419391030974871055193752141778972916262565072930781810823000237845983197254106252220825940437000117254445342493611889796494733098119126358860520334966365318956202959347180707103064287892112822343830603804103680235729399576891096267663566027620819322110053661492439062766890627672558494970710312386476823715718197362382031865046621762542753237720444707475887409860238923030173617845519328176215298689060084160847847593837380883455659304070675487319129782374119510469836940619012154636112705607410679552718100189090578499807038819885047882156466273584574193125780228937123538712087939112870333305265753993003020330545043079643177473973708973428087705215160890908083455029810057456975689826508007041148149915744356909995640231227853982725219888234745162418788340422487360393819174540412811807934258540348565602545879321144334700432706311811406854918613567046420102209263683704492154551500850980112371881220826515260454529058268698333474224738601056188318093650302180449178947113719829218005107400711178551255231643166790569633362506354410514108827866680109936622736792995891799771775451813899864082144154602523557995617822499759635026268086652622538238484759111480116273673152254675650284816626689514927846808249917305060296608311313748165500305786362272821405503060223984061578774918937212036101857330691530688235800038528169126543919739316833867216122604502454352341110089486899109472631523870095004484669142606933294679991308266525740567576364141467153595539221441908696879105412591861109649177269386430228773109180264554912298452927140266159266482317239019609151242107873526480267734820506058595028498293024946986311986844594061036317273965896364255767977943508038441874864486749975018745024956087411921889740892675198408966466982279624557453355468784540177749009412546633041252439190142718222280494434127670025687579188516938848639542533714456605396837003987575813867652478810890378118379676535936076676315842318912832182514091357278234339290358912358992323919818390396869246522876821289991861325095724616164495301053410107021306522183547418028942929391568384731652255115858218987606658864581561152303855833264592722251539378194477461103557991652276355525263314581481400639107229041244386970133214452701698755307297559787391097424110176313588881390201024885026956732411233988251505795814532554449344130166963776178399167860374607643215774335832518611938137158987931439372817860361388304013107739159653809545214986309411177270907633738604249483238958106364875085639125819703930421037625084575052042310152755579923248067306403920081569744085703113502399259192209571753550946486884196577588351027557179364483158242295888916465515259759442418278748405728059559433604951348126940166025823225997765109842339335751445873838435226459116302323542933644355296122361780793315014462526807757418699604326790102899932865374353958146281773395142036694014239624853167876799384842479715557248750577941287100585156702560270777824614470188890147088096168851419276478795458185346278032374814197507116205405867365130891083219820859542840626901793830702174444027823979241311498343894987778793750786898547706026319556377765766534354290026981407073833466514590644261326425029875600066858717488366475331495320197747068866205124316099518550377922607645982127190460572624439190906306354131314460632525144496543734336338233857937865797810192527235421352599332232194578508666427029143248927525997712907281761218901075039196724107490104532682088965293150051887487943911313756193863823780513317737416699739647242099187686694662703149999858712372166060623346577673088993002592249975191042623367360638432052670963746854637414994809525241412699632176420679852948599375621533935401004456031890691696988649584374201774378986575556997072336834449943806559589395396276320778923700381020159185518411854961832691528908868718525056709951764309401837849150248754526618346162924190330799916376865180916725971736142739161319076585305124319016426254908236070071345883607065328700764507881710078137337288177616500404866724211377875356285181761965518807872013299513099143063247134466567522495319158578896896418156328163598875962717362926715037324410996071581202648198105264744545660269955464031068636257327732715438047537424928391000196059555124187307173757937023650998598180163270224470786541252585677742044127370667431109800136856655618590389160350928346683321728231610124706380088268174161582839520088592774429704320342309051381492564150900894806256925351975106381104132726531665538824417804183878351501258985130758345042983845867085131810548164646515285671780821949555256219520602106286152723115217703662012398424844581194568086011937547583760486218140288873829909197358605131309730632848747267913626405394168996508563972516559034880846580090529669174368722206987011092362828922503683630314773857407720785208375604078676792725710758226308865690053406607905588770945281241124794035493835621277929339535663120037342983653878377933814984840327732959437011256621446247043575218875175356248729442385404326778018835361670872078415565851074148692920800312333151721381712656448853260932192884919386863333213329401432120577107301344357714364387519634857539454765953965645547749536486743807561452240248122651347397880483956250789593419457059034632788026607312461006100663518901072159427614611770115049690397475892184765978409664348961394573356298821889324472681055737050258429875705887626502945864386141372193498031998488801482682623042437601890380373991481415465737548202549799732330702229928015573227261546916556944577741926622220655223676195663535804163249754933750994277529690779520598611362501304022693094566452378939916676302267729952751035476963171193659055991718928212967817359377537336991372644230672110055104320472990322067218469542841560933592322947006839202142018400515405420289131223744633948058167114964518226413007387950856989892061632959043987944856831394415520938098591522143244616297390403696551938849242729671172505345937171157118370774197825471879997376089364889868732145973730882902315522838771153768541023482370740597594129064118788323440644084235917165497786757570708370079941827506544069531199614052525447087065087259356254111987122641907934533745346039788076434486241882081171629076154195949484001567605523229615472653973516160568596272668615841649225887083831772022561971049049648421135866078089871686091225205964694248667349687490685861891812938107781347073380280546280865135839469791558652445492594905031441103789250240088138894576849281863070875502061526846474295448219822676505303000925536214168869595166464935462436380685547709497338621986642933947173786033950756331357205348355578285227931949410818426401734290259286334037029265135942897071845076478429645150547123675761970574545180601949237495075427457156669085777204601757478946332426003535706805099509719722239297007058455270470252237454508814280083644540490507992093497580231861992870316675360770828913893942466024331019213325338367659443247457216009101534552705695213954981274166721812172124758174129290922063970561967884648620031967896957199293255760595891317331308079132916007183180763140539065757201092038124805948694634827833241618585439224687405749256189221628357186761721363364124137097049407034969085582432212007072476878027577192575847787136258306812917667353622965212669210405053650100968447016064819561972551233408148899270140917516953629450626981355235905163446176682154635355464572703660715635748833117124547644096654350006255393970981097445595861351690039141075013642751848523258779263907750807234944110767490780530512788820120964612509095646308607480335052634445878116089656419436749933777090407215694242705469646473560570659062532053339613623551910581161911606327030390127696574576560200187826825115066475973743485557549770789765407576353254924429687205309419235921393713412258343732587686083235917973684952682034479268953273032710169064172075772395833210569690087143560202084263913552352353486423073284794557490781841178484462934444683069827551739771676435187436108754933483967032403313702211567328244859392514577580900132860862727788590912687632724937700012475326410710421525357618044144621536746043633780578093957542501858905201066522831413778494591510370629578040981713226470080067706013156336873344552055147321836974249211251016201063965546000836362049008722557330334328731897281336716289030467894167373630772568047826130917964867677976217943561709703069130391469502551297194099021228212483941997866036069812448712283775467497371041238514419591599914845439645014406928736662180960113038329292948172711425465948804649152969070269172584644986888000516489954338588342856665966734603142992372100555186089641873182009595936027118338745504309349898114930740635615634908289272553116204266334729521513241465843711111307909235147766552238835581035404469102232058385452214964270907733647481096946841916165131542596841351041826174221840084996166652396936363736709128290342124319941771448495494929671989096308730871516913707112457915620583779622963054935604241312534295401552846536450422025778176466931177070518849485722983360314085277106179668966583855123967398261734184792819311797505618182830906269047972808511629671989463873542221954578286898868927275412562172366170766882648213031595737724838295937599368118734874212868358561268807058390467401227193388445350639543677714040338869398631165218934242112374663255140773488568483858470733076036354563652474370550111104655083960375676032108146637470696837678884979146261071238062703733291993565731191448899518508147153709771522963986972569623194270512898461834144837272760275947914275632357772634966530768249564953236337177451352222042721498351478079926696080332869222454821796958066796332683416683965468948982054034372384508165071954352382624627397404526132853803034381776146733947878873468504517380766998780130545085298306647051896556397513082833034438265101757367691983180550707898946908179789788063735180317895818313111458492179336939479333138414376738866814891704763447163793441740263550593137979041780416006766725262867166928538512041734628337270936844189888939544876018571848900907187341725603971792970621931415144977482756734502193890964810927006897927267213255766095521181902527055403661333678715488502961946110499662797440436779845410463982212621328056996245132127072900991336688332572569993775250912324095145406440886769598033485823578897216016134483187772695764318173995027479974942796704906171323251404873054233605605864311311648977865149645550865727870759040432749575679982281460083682098705662308240168962518561721212339482162940849309501088252148202264295237234945202018488654737316497122458955376182970043774845819636884429556809424355194247791799242415640896558195294531273999367745624134217681945459765234890068263163027325747642155863793124813345804000754792962885949733580707306187431219269116258952214898034584771449513986941498370045490740016927830712572422091695132811890849639730109204548879303771635056238235082147106419039892930156021178462858245884545664994916989626482857719854156021757707537794792598929911837476703012195073779802447181425100443895804586468487769637353880079964212165264812997744721941484707776952530274305581637880880570939216282331923449007554531719261973970911210685449188585272024444928064679783405555904725606403254960273119960060895120591919272725352127616551979907152234615853369444968407110270939477855164108296899456121491307107773587475280230718027101267263082676753679589610296700910218610256705878282066413482992056905016418628245320175433251599307676869433998463449400398182360490269095463367554023956815440529415949372819437064951877343638857443878857450665280202976870306793733276515080435481371340870602708649026922543387538644631904852986814614362859181336896565274403207907034114866907489641498691948439803326369411576903435279388233596122733667525055070306770434777534748361016936726406469809778782054674668466200480623232951561398437671525646412959128009074124730469965254939636837572426210714185377839288844076605184149122827275031286907385495101853184484654788386613842597580484065238293756057777532721284083396929848545652354346201456002865139256049103250662400760724989386787438774841834318433882550157662771783894035415219332237242820430791262754718604869245993089154947800435680740967470046894002439300231119853833129236779481152507248946802303128452840678136029749630129726146099838294131771417945559600438330478635496963083084825794784515241230509818246588154158343731296545130116141040350420854632355629993174127497454470734457717360385274172090462431607238499021161438053411772427617198071699154021051561994335081103561694179797767551573176213947168993735312804539119615824916503609444568955011272199744760658510653560074924297222483689906646318403545971570879839457885283665226751636419508939958810022209105478944901494006897133847817760234223749323265542888159061940998130503511898408609580514740448859587074520086689764521177086686223835545695024166247818949170763083230393695157118650150244098624462175031365380601641403284062163650560634053511723864010707251649081607070449134708846681806512196594418000513525215851397399933566445156271359847366038863916816182522166631447831026030942895870265826547649466903671254822845571997109096460110670401565315119856667623387897412766386349937256668606657759073293472480717575807715361289172796984934020015499557527683959659873251127839113806497197745816836050905372563941600469472995020789694842920931264748997532933578785792777839129218010039127716441508703640344479034086012929794285171103491442539604294116625791728281031397807526236857314633848309282059013191125833312690127007306372894762148640925657859243194426160149882120201141232261318806998754756543629608847594325474702931852941113409768295453259199404944082347582119753881627400396067388852089070459575084208747979417390539310707551563634731872242370364800558746243317344310206506439103367461987011789437385914715455585201526696877527731712258202037891187715756908325444124584186233430476877578076562274645256317644116298241711327133813771648753069204735147424847084807146543526182053856066890371227922906587536210707935653103207425152857261874507721764796754004578686413679516821759604342980150278216680200094220244492308836899050447207873458789315064401971232587013420562940811874749858518250684935803390432962469566216766787001348659859134250291709723551844401648810341327213252823366487003056090264905862285908442913078025746958466149894874252337495756759976620642101242916769284143103793192365842258600276904861261380640570853900659436287476427075631586023300841079149461869054276383188448776236345803570012538707033298634123682256337284720915542891744871889984849047321461164793391034315969120169098092836703809077406850918401989918714414524542475305390983844334988705032721421159740529468933494459164531770471776943464267832917228499059475942180903007240100457913439652861138525411796642528565745521152930829989115953107328516319936141104380388333407085226836053892919715772922828836889451234392721319773235050978828394392434886401166001324729783243356799662234659278675159501397884694776141398303583294485023713822272283884303329573906670842714763247835573737365772341851772107477087137189267964573656055699669275314392154522225463840449510349159228328010956116507990363865490587227644700932462596584868982062225254062001915934068680522195044301243593396562795403732844728915486253566602093549229028603788117981046896162555900891919581315841425289433576642271648884443768599002741086382760518990916216967522413705831811147459055634684191958516780650477170377617605561745699407606050600033381604321502860155852830831059310353202601198457598979231148467883349549069552704269832603844080628331024979658799396320998884045098340576148130699174220533828438253982856546364698852718189376263723438584033713036738497682271487775009488574638360219174443007663623993158714697622724301750423319624863953155029722329840114994072435371088377030277494342953924476962368519805952310950736867174757731954637027079460999135448811383506112447948700355091079038666966975369106530320513622502130495354049820721997005054705896978872115307095918885543544174777378762420687837454961022828280142267464771346647566492477872424924543555195882064298475312646685889406476183530604356412722887598869440473637757069881910591378176148325089852380559388927506039173648744084276671004359285118952777748482572613758194878212067648436742482758495847371695376942897618738959334570911983168252118748149824516195086025889190744105993125950659086057547417350404583564557403296797207546826505045169616664283159552172509645172363281901145565276370089704105044856352360058133746127743730089956810225711375302599886896927368529858537520651212509040801162571275044038090322999647092983372747660620782632271051502951578501205152380900860613120251377871385146162477613747920260754584286832791690524344323590423994694965158292270740231942764279629533580079494454991499673028273696507016426607342741750317321361375214247133039618752085426020615764743901190235726677455482883289252794225753663169845712868285949997460276581623796167713880360175634616962021535267703850415952037709333803041771170123627563570407727358202402910738775602134707995017739323960305107829909790539706704055261148919466314780622866863148168464706192384311476406246832451729590102240735485278198078035623503966814264365175204037965845570711672148672441027176210724552064292618634206100605852677538641444975662562503622891983081240970477358112319257867175332260973999581003226134529581363735291715311638875437058932724848788891198259817480298579108070383222325406885062986179683754675995683370684983293314312686448649268706072458713527683460542509596509957191577030411463582957571651554778020829022490965865309427633807765179359969939347628248335813339918654672941459539273788190505179877633571797961072763453926560882159053501266680302224666413652785312775754666092311962677346299109383339395366870926728287950918479663047830965559275111971313598549652798690596506148209274395328151610238952006181361302635999891955109386821159185942562884438082084789669459662820174428069517443021034549142587686294897962636084068024342496753991149404835336485299609703704489428641012699665745564733753839563755522546016066634847348860235286115541521851543830919306729315804707533684119377130069208881213653106784602736206769000082091640090535573781063347600096259030609976015085803927415663287386499353758610430276774153208277268492706945919701869984083847282002833764361088681584054147142782832177807116688935497120377377216840113403448624829668777099077893348707072258202462247002155857991179698302253086173481912058735384695129409990776561082399230013358288984370812550464428510631723397963826345763336570765842585413692362776301398325784921655959566095781311767417472847443532710109955707296907303879542707410204884170681810573575214948939964668342690713260645935850843733748363858125863375327139297607536161180518291950241017366435842575485526141791228425045280977452413597469585912389145805489915148307223795467327913382878927055268295199053622420633876437619698377066996971956968735366523080100151820188041327092390342956700342204057403148779279178437371201093355831808587116611367435108819753436839034376258333391664753412965344688185821651064996836279437910773853142436127837023685574649915721393001481028110925616849617439088208997300182506186083583336327972162877523776931298442030974567795420415314756186729300497426982791747945175734356340172051503179119988677050069447513037070212949118955030214671440842182434790704090601607495579027833071968377609623732139325385066216559763740774946189563248377084575582409457609204989154945553676537873468232212880668014227277166089782420344471443661678424789682418106864669852619124139384643169045588690967126998585678605475894703114055118551126578418907954271129050070760859597879673837007840253310113039050152392338313018220504005507660960480710467849129166890652622188053085347503006387780796765745971744041555203533171860028215436984226443863691807515638363426411261558695173824229334107001703025121329294792993319814595414667797746426529492111117283861147184135852420411335470073934026969448923368726370063815914920872052737259263882371152699644111831055325263093421324785848800517747942288842915562574011034699340203027855071576027031824531009598311894322583701165527987471000985549482838437208826089229375652437487949961160190925274467627508477597986011853954836717929542659683896662163845736443221447217713452926010722206606364455321656156841808457826255716528784014543461541253634099841035906823973625654414014696720075486609694292125547588568653647907026612192745077982195195876999435080990538564526602461155317669679879692608112580566281037547117484277167531623947707336256440512385941385362934685709272823071556637254763686673004340717233297062366237844730181126034018142627007417933359490081956475775467937978884773464711568675240741465043899262514340919952507472671113192716402422872942448984311637621677158083378574887818943706344975110957844508952133343169397572997556442556271412175546824952746949079080991554785709505466645507231582848116791412795506070410216233060068861775645368972387443123436860811638519138523725588058433116148987420696306172989451247268969710767332108345217751668577999945538728306626855952322213899028541601021450994142337647925577814940212783718083182342425713157915557581027237751201247304899970601417864975042069879400813792885677996740047576180578063922213531821599231332861827294680934879327111230054678632870437843142761722943710319528753699415782334417644710841736853133529274366852965736691583546430218373590649494976361180495100863448873559409437589103826996057039734148724601929208006987801121613083673947283175171724059237499351318044813577844830726332204538376996363685123197667848708904815492056599153976407933035389586525488822370242817425416424609257146353090289374174989908650800351588250765320428779328676700200081158441958257883191312022620385913833757346638745503534104582647055459676934841582483386241343190484089278806459295910595490587632354300894841581807813110308167979013345039408814403655594564595307911264040082957627616304548210080815219728470583580040246911003830511095386003326830316004365570516206606744962995888061654681285116951408633876779567027910812164410511165494605910808237779490900905118447941619540967240504940678348505728840516245720704672441732673141203960656294465512969122481197180318974472846444231152117499406171080334976157095155309945396825884869577794153143255407945132097361788065785725325388923458283534431372729621978791966149290542820884922958571701638109447217381741168236607618283632156529313865535289908210120243822124166243191682220731024120520324202474525201011112701110890262590883164446480321783577823708450693540905688659499606463446450955657665721983868836133569466633270157352807985099646894738129376658283378666049003373073333607634713096686994556623851684862459280397661314670938957733897312143717861082724970415932754178561597450167142996345290151555434455811304579695085843729713783684524628272272398225389055910531018901979108904877434011827721371865248303970756913451383265916613967718312647999628249573748677380355684876214141957201679119296377425444178503516084224017683916025335544475999680482607301603329849894377008388671416386542130608188423872086851465572316346064142046137186738547671757483350630475047586252000090915365113520835690970595081632953391654081019034411187312417565271059173396354856757775182858715215145475852886275334832373008439983447732057491029206692661870048976453328563226257882229291949083685330303881153849574767574500703157008406868715977209744741762181533695307231578020032951492465840769057878606069572501137075599069842014743573967237750353563597894726250239841427280904738122052034868926488955538069133143502617207772116328184231436881296332491004583383071510790793469884769086450043090876675126887725754228486022836605312514883329607391584802945496280141014837789782707574865396955065131476410950024719629272124520021808802785045307379477510116785765601989396787332703904066305975666093668953752873336680003693402068919433284123794663442727346880776160570123099375648108972774739640709060592262744555056297379113798976179958942527129979226297028652990922147533164190448124109139478831067784011798810986867254564232998626991737177064868145728010016817221872064157151217409611894242366270403478112238271050855485719143271176740595231026056258234775909527609829814250935941780528659091463188140027624848489848027547933438805444416060109108738666271180615159916347666413159318877057620211260361889907955091547117752098751990837728493753826597651862281243213745528950453545126090955891058540003893961476070228395065458042276105690115500141156109963240963614274359313161974689135838477896744954680692293554383615145474554370537017922852176651984277248873963433281637062096152525206062603137738438559118671674290318107103368961433792330901268490798692934540579947353997732666887967315057522799469559271026022086742457530314285583324827398377060511777716982227753172587692008154116970199177242091090215469200938840034414861163240100401327533730711108227455194974685302760775439411621752448610082731678097167881224550167511104070007267085879779162757713853806194643121875188930056796841812957762717614844678679071446238568388923982730487819286414499914164570125966257162909942307128880978690089471003769645038848008101987779562483916492110031585940774330315363697071688229158717251486434991458459474944911004096127407730357432997452204871226777188839675472865549604663896240567930764446961230671659560582724313932651179123805571475263519686704853824221530273943931510024842331392551131772057671566972421235011514709339356652453964492387235417283556807283604244630906248245490639498531887798025966827726158314600644978567039989718284164124232753869871710032497545156538391506303959957958947799043189011136032848413902915009034533715694122590300700537625442922310907169462375100738198414072782888372482212930799419436917575427368473826588302438959444955089541753078885256351114406259074192851355638593303683854979222352722266577569115020076873902785340358192302179233706215702013595358939392030176719571894528402300570030614910154880554789169342719467859553810857140735614277208062959525985375446355271053014141973032332982991521376535522246284248910398872084154073279272622230488460592194396440874945580161957963046949148476656842130331830011754972429212785018831077263596555690707033959123547455683518322825266526737882014474862170632995752588243399549032772722184446625476590121927993644830469646834265687357448819045586600178532059089235096587846968507528973027519230589608562329669473365924144164017686904016428711387946602849745585244161643534664738519977587635964910493717878908868771639546976722711954901862823689224859911506393985630579130577570101295383749173093905891698782480942927881343765243478713613223601172512581174479469320743825279202405104831603093376285082227556406708878459093249588181118023730539330664829305934468759018739145815433414654506776025519982971415997550948412078598285420303307058390669221224152547968678327280793182036850422972407759736758823414839476898730954077890448171234563057790559324253153979830163572113667611633999414643946084300824057010254014750783707792956594303660078330337497793161646302832128555139758024300778835507162289026576574759589331935077537830423423844945705058395154972589489339206039545137771490071009214774472451428201876201859943336307881577656568568752249217613840482935481273932877965205165471335511723577958442225809121925432213896522913251642079204321820504772567810143390837083639191958804446813999932501209353228604784067859721998464325075600415274752467263334576670262499140846954097816873812205143957357024023536063497211349513683112578648862890357472506529210567652301660422639818615513063182979936778498951080661919800478050991608749061522583905830591750913057214132050658188170683346389992752853250813359387029864843480959916489102546762455629191997521299293665700189527912562703586454442313211684851627645156746835402560077246731126825268557383936450379851333310618786411364426499703799688375958852730191173623609499082203373412838154396680022530469962073440301424802803847014669461562586707072009987517167243048355386430843921937146961742372862794729561638673328275426664274518183409832422829905382918945713063833766320346771202874153536009954904490784715743078648595706692028529367952386467084137338045256685539416468939460908813258338953387126873076172378100871932461906795439657139406077185957829851302944165046050045954472314692852586242029459323681854179321808531363815309545591134828962332829618141022202777805673322773364495435148856235570343763133330656974220047428243524252914268812761558172587431768948935673759478347057411972999563435620520628874043861261991301328022622880454821097103231721323491738932440606012728108822830228846922965603416685090873373657572490606459235913450318974509767397300500624422864496050310663605028455192662726123214632038148727735057599401565061300955847819917802377612274475138304420160269723226712069940785976858619203910947207499837511514758807158635374051943199156241058945466366975013078075324434451134368683598149351055165369970893939910419170324683243219045097029095352433341647545106187050487283924962382121458509985096652701575413016313978251222173798155381747122417368135350305731732359888245839663742344484761779920844236829138514222923993466101825583709827451329950197737485533038824077992282237160728386750287709185275820960761261539444881809655494310272675261857849948652348998009407317759867974345374617269486527012569286886421504183506179192622789067632717908828796064104654334149695204358203174794226718934953119203826477090857722549981156840708634068150134007610421761117646202524897053701444002842783766105229542070788555530453727045551515014044281886948303527946284102517419143759944790043157143721151127093916447176745082124738703357510604104273473802570783267904050737203036297374291327573247398924343529882086031595477499099099741463397678411114750322939856377208766622217679541753617411312400215172978725025234322902416850542972527669201989487686058679535113940381133484296161171958576140816320057164194422380269036207628533869200858474380632239045436115781429263925797878680644599760841476504023063162007217645065010505978815368187126399992720317707356196264285670353647427716127363076070785671535719367076102106342844485239996710648048128601789932511960354162523945910690802550525086107919847482860014134015484967054933376075225033362141612921907403833083058968049552988145904227192569488503738107128481174695333748142979477105263412654894945538034719056976348622872123939952780396071037685104973316232885676303096000351030004790529271804802540692153932188182322734404880767665891848503509068226862694085742280866435148169243394005007888737312991449193302875799840676033477924253285470296278525863645511780437647345561468400872310007964735543529797322075435919000740173199597793167756606761103395721839445080355400173565423471223145549237314406620539757055870771758868379474479891458975700301868176263844291569552139864788997553502395568769155738595662373771709996247103322241343537327659255761818860175080878082338326122474171117763200525786417355391177710204506873967497179158850283674285889886602862786503104355151641086630462546241413227235306249455869323113286520894935322055581703571775450400226317296034473924919228105346789685408059609651214202948889892662865931073016352530017673824832118840627366694406787273771358891555317452587939544912796845250333405214361658991613076617872459937740174144159913156750761472945068287815339523967021894353662285858430124974000477370681827804208770708290862083702149427385726501127793795147439196114502871023867378794052836297443440480545056487959565238833379199953502002253043438716790416490283513851273540234078966446625804302882378411533271984678545614973955486930524901017627642446557078069940376492949914183778044622672435403529428337707103862122296152757862389067145082683562905589303275006824413596466513815394486595270801530897658287428843198752597130812520771418049760607655529175588374779655611357211148456208617805700324883236789764912238023122132740511947856204978885276071239652882636142529174474929301635273664251531514818664169815734725547900277825534548451183937048113845119369395735301752596295027493117561654293860535211235850021414046344028189080598128374481743344859031617033138860622025856624688997239768803192479181546819316323419552632320345870679199521677057823819392916259262733547211406509001675645306479393958751578229036950631727770684311211139819881468109599664576162297338630034489246822131123293589676861333104653426953741181392669060266716520206289894412365968306238937010772160443400577982343232716711837726993263274545163158147835619464483935695461113455641030038236017527486964846786476344857583423777248692975692600983273648142181362787625126829005741273831800464532116723805346902137214026336519451499395318770383332635769084636691914509732177632625526565974212964955985792224826051944036632340783036397566048857449012688321599613429881458380667568512389353584142803585327502357459322187137009620078431736167837589459864106104123082078774118032281541729047534841330912942022812108572132881591947714692740024815765643417753417537540175666460915261293244462626125378792993911147385990697001833625598998100953276986357477296378257072124271203221023279863830543594260409654626801915292380675602533828557467179990687087347070657319496099254972320883286479262978459850297376518737850066352970559545262332821177058020644815610780005320260666767067859825031364740033437568399013583199746169780402827111863348080250761121287920555883916442914105266265928465867444001153718599257291817350106592902116428148628372854403494103120746368173066277351490373492550114746443182387950541130596443217870955550375332732479711969838304208664355143142235313628211428824702003716114660079821373453315627218236792767298583584532110832198895624153335347124076130921065810735796246221444374606338528620711852491199317413726959869386747271081724247468241808328891009344679262449688133995312437319617302853874166363905496955759718113931639603602389524992966517562947847637285021578981824514533244526272552810252765648299335898470037174030900056810026608340400530349943570594339175980936264947508950998324158604718581754640022550767460374223641401304517592719360261564021136238773218161564846333858460536051989267876514302841255496653492095211345906242760768177836949128580555148029599618414179944034501034028386093891705600302257516379639727194720321093711954615719497284099207200452454154761618218842840886024883005090641904220538425851092770270384239290629963706618543140524734842903234547716886900124849977496188584132440469622334876978727638473680668926295260082106319645030706609285492843972871413511248211279091097355025449187959010410523895400674638162719537819430587662544738827429842134711148420322939005211843018560160995214337712552588380475958456181636621383608945730351708483487968635348206764668933112211818341587782878102982834767625955706175064518969131755221844394140358428211886211550875359644711840050339291317059028026705427682804771263527143748251022018540755489288515657523587652045835892093407946356079931791094687201634368081328748323701597989628799220989732889334512972573409092869088498815836005455219720238515652755782166827496191549688429783860610018481239892036941360506268975057989818031278009111638043965986738111714229142425412292882436260140142238935241857376292397416671903022667085846969447225189652202430516834443521990142208854842671332173334708380341162097398264322242363130322234440068120471623542771097027067836779281581814776941030950846838227836151483999917314383628907366409262533668452023651658756505590938596668628346908519921645395093824157829158657145040344071922323932252804986807715893334902242147623557672199016412450578975292529733532068760816829436430731315422853811062005249276647157631939495955657696782100962184917836929243484432992039665760299876842140377386107726806198785257732747948878165033530651203001293673175974062104210135506148494233710126266216802986844674398126351669942907907577270916348275719572356167020909678045554569777064481356068878650059576214723560891871403796521238630711826738028909698348783167071145915739984161082994652068516389665815107532980414311383539834660285437997288942546939535279069748838489325153940835833926763512985086338062194402408605446193901828404045305861496320390105892989231959574642215019522048468328686833480110518444960875138836905113874421803256398166729842204667707506546535229728831747360308563136689069056717206016629396262224922442679206581448820852499519458247128793920254404629494254788875647210956222621945136696828304080103540457395392967681374542909346625121967386267838473407698994670100660233790408686600574868039183691079145510913301694635994981047021923098830097422461498753528259072033575275574653298732262582041061178392751293931561398958145649050285985640585370596132734378290811844549679028418696185564209997487529748481105140205634624006469588868392687783964241979527589033989476730020961336237216853604339798043968610011216679717087868119745514265538754864723112106738012451589560106277909520422476853597613105151414322787109539962680955869616630996447568177374760214110768399237780575321544618420893482776759300809899875165013074462784129489149941969120307476938768952235919226519182369202712763466739224556542714641716321444317229256727818224647308709749758459838679411532952937236856467646449360774037475120058852281654896709164433811368294460030180931042504708332492045119151394792656246682388154559548504080183983152842847546394873182824253916245209716573222801040223638915604448884546483273672538591027037274954309833919421409158897629551236281018897311112733547917657014648821387879817749224672941494997478905333382462452239830730168998755436341089777950667633182452560032698181119726990461346287112736905179837819866842301035299378569113713605964722913110338055090733446685459370937208140240913791209596848741045944544065027001759217254945693473644004846114031583752058866492900740755536899623123000260008024180652084573165349690789735930722327964472857878181702397627714476523444692250778455635883397740318203190497086155110081671097044592516484809088089577568411379430396429863138635086082428409981754062114437966740372583242209768450134881914706778606471587187689040720226050926593792058354149109527995770566916909337135059274466589078802980129765059143059296310112549080586202488785064835916381958393754082894677935337427408750024267199096400979037094760460987560508652669726557255827080995449117554149464382891352162250654253957466535786256900548296720419981120979805125151241314369578565534810056386133272055868837304083215163256803738684113654111451892466943905890402587628244182560501105280303017528061818952628497236837677629321535931919596498946787863934237619792649610845426287244630620457689223947504521457976592176326369066301460900122333963551347611033538474820533896768385830028790818245479425127781928050711424598716573208333926713182624808668726816758146513467516903149518083095567082417406227002714815546721977434644977210380163274955884727157873727723827591230412078576410548648469460384960898761267461595211265943564076112596524640043948837524443361138091886831480512909276249606363827938507027883096704980553057808860299718201965473719273644527930527630121567967702099571604935685512885550757516436088147683987771471831056878903692592193830282027965619988431822157723621367747140637854069315896134611813104975950278701341322761127748478727774654104130118778227346231402505646936867782771852628871814291528329713822757691148388259100369199052712419928134282246878705768674433850831348823255669550234764609153207624701632917042784442097152095444780569990103182125105544897487506580646918274665846591270323064573890552281434911730083894693671811868255545195737760618517680823693795454485417976935874800683589454618532783532690219539478701921616564196830000380857264083751460170994274174019143106759224413493892975908509960889103429428389981994789241019392199090297935957155712300010642437294885214615167557540832930068287221631220294650579951546819334954332960016933876493593042037242738380517837650453431096028152770285489103417858555271673306101132578248114682755619894055603138896173870586674503910800352867386684004251158839366356465157251062395609781996477653268524497369151479635210091889039578589635508319158667746202015211800506676725976126877285054570401111753943016976714552300516207388543834314062048603506390407070725337231894431478172484107967005634849926740684045691836393500569283986333659670190407311294299117763513311590374298116147357743203334563121049745379402552089033176859935821026103483758439638798987606929143657095563195083803744806151278234293321590579610173627931894142323491163967796894877328139531457641350071626233890864563573429133049240569436544411702868121395967201469229569564761352259305873328033491660222535201800480103856828495830878538955670625832939833624150434224648954907449184476804009130505368038017373251540824820001995055784815902215709894778247078209301096580857478872308829032988610672911845180652211905262912546169933530070536288983162839925197806225374702583348311226424307054143217195619083225922403561932036153646708209421232193780949504211201423234205601241515245032117323674065446534071773842302886307749041554737475110628123215835449098622297767288699739204301973059164504698367668473705501748073881105602402689210729459080739543849517833398004832755792483021581520040632666448356014283948178564486579938462052568632178066815189157653323231080791835063377125287278490324884352933392669482425086236990990599587890529937362789720554747244593855638395570578201344235786640744664850451196648908531636750274920696193145976076791674808380041375683867633207534620564668518410776585953194107199917753459963277854226930085635527919967005336276198481033881328687183540392050131140041899425351607048637318280442519810137925640151771973333189914197442135732483662883083102577148311608884842909489997397048362665444457374092481474452759143488500157369114909686374059578361717037777935101650496067484870365949343263445415948463302900458495639876497672851440468252939990777397590017517815128714295918378253253200601097718500204861336614050814448228848199231677711915510795616573993922021002513469581883045519453447596862879153766901004221028135176163624791272868071242729754587621746683558447013552287051452758032799699045072460405884092666136162299561964284974573367333387266220480986467996581254634529911175740116042311663146550250228389837633601056690192559361426178660954663773818985458749548167262785296840362908170743249870925662893546525977127215291634035301588255118717101810474982218581107072965583900505504207182492227191321115472454166243889213019103896567701296136112258004528060148171590679052689178346739687735214549969104056162982756010770702914657802452175544202080907020976591148071691486378960975689618161428916865748179778969957259665041251987456592013758947900111111162168335302999067308847712793945242875472515695460311268161921578658548662978549151842140336997687918552768783293996840909728373303158400346225563229331717539992375251730138552418981910192229932213079616472546797104067478598020058120072469838649776120050955163527907905582265265989957633758743877558420989214686040888705826428589435534562709746537304372184183056594108094315411529342105982492736576756757130628206608209614303113929654890015502459697125291886439799272389496861442519753201690924375249321303113928860992400863769675514248878151180358519889909626972621485144239760923123733542175460468194836921927429876985446660921446755115529339104825968559797352583741440052708287191755924897545240457188713663769143506446407641050057996375983835250306011107678635190033852620312784957007642362364888432739988240420153534630354170773500487960258297197261812812326144454460370336364533124063454069694277092625717274085775391492572525596052718157741809874708061546963002195979126776287239463952675876871920098634637468741903653007055570071232850747019442641812777869563258597561424469345684848400703051932470313427210446040070560723081603855615704954082682856017913350150532496723828376341192722813477567006468770094459120867719641634429246594721717621020319545295986841701610144000871618147964378750535194142844531098490699363817565279117768919958327744387104884571185056819446604234189590676614777904755662425721329615966718296561504384539101699065747214625562122045160310856399818389359924674393287369896663131314839276138217346393077772234875418419906563990436340052740944737565940623029438901249734965850876042249037973392587126978021348524496758587694371498778187101277081635139696243788990808874060205989622773225069321365642711120921959792991574680527829703843885555147163715566501691301469766760347670474602486201797827825770133303556618096270943222084711345341434765482873590684583828252687876411344317442774272539218617493770146213518517954812006774608617471276674144008684455434535358491806278171172549665920297963646242835343671075943236298871056225456976084591640177981274049186727810683909351577116906967831881076823511660761635820932134773003414458312747314456465863403881901393741729164951018841772683947962963735333533193036872676559346572373599944828546113474566044722852863563721885936506192001276249338097090642712113510613651696730293642679670356761452704684393180431585243532916557928811122294179257142645576375460254305097954830615295385197691339087104552358763496732730387802523466651823223150885615255818730966607075890919258898858619268705074243325468181654436376051462899921790265015012041078041243795377006842803574211523635848074461585111794040893265000477820696296559369293535589890601101013013591840547577662837465629390697028542509440098627978295450669491666723383994123938211074922442317636093623388818290190017578457231973692110325627749009225243290104025328142764087151339300150421072922285186466714834502500601481913573307160658263748642733940625841175728102720206803419622001638023517745086273710590788610823044571403597314275287683164583828216467838691264087045406792966095998504367908648221633425966422379509755744531938773281980852044359998174705796065183500708128326801185661879599239460629979374795825780433165129192710944604211041332613432709602214158561799053630853606107663567649804517937068459530636598103850864912196786980526538669263122440655513110502035537157451693196354835203998236529064287764730074739201087004460169418566303673728552345670120453018015489404980482743568639715405370365342361796693240917907948608085522963540378883010981984083362306312801906774099140872704440955670991440341895451641754183212986619374408646278207937488645606722548689902337390327395924498436633952197016765023401268072022246869342180148425115774277814046940982513649933594186490745600816744124700643348661935298624823686222763948568750564897256781675280966426529404516024269598052974066489638525920652589000717712953193080580340214884614475771332746654638946698572832869275500876094471036124832306525977589025677761954032791799704755637263236105464700885865718762541068262459103250382394490974325985062760846477620808503102767550937910268737885551359045355815564483365752624602308577170501735589102530348666602996529688949296800894875427675409767703648992076784626251743932803651686359087176928326376877217350618080156623106268449779466451974903070846087956763444331568093041294103355135251534426189217020831993344941584096445723381461213715808874340560087717639290523266367703234912928810164842935220301315661745488048909306346130768054941482829210170570422419990573477854380896244739645036141954214615513787049398833152809078816713726469889395633272116155812070828250118026265505723486549191996379853779740482320287120091808116289493390224574808340616304409180971027601717822109227458973865637666096285273310254393303777550381763508124869489797773482705705200377770515403927166285588946773111286384037559162527442832288863774240578506943987247356638331595729099490299334256123282374135295730234057514700459443316592042889446258357523713341791722759644843552917339163953561806839671369207804613081949932550516010173293591422948254989378167237069616925526612310614913407510456684548645974019859500308990432784125770531885265702917658097415194112627418269953189148325841864857666532727537962080578468915566008195842785596620640530461443764957659985947270456022409210180211172068596363163484227498256867545321860301093178468554404839152606672750573856015041225628660921400279577279806256350835092161650523564434579950595439239725985416456335977377069953643481996275720640732931886814964161812462738831898313175366096038405603150262988192490388399687774213112534144240317678909617036013338743507798468107492906981827943408940948500186663469309943514695857030868907304642866756140539242865515801725080181041265512298183793305560574312195307335269785742303572564276531705739580677374905454524608959921528455747479072383379166755652804222830351816910586924445182229173927474585006380226316704276824804770971254751905999799867126289617615646355943274338428864433972285954646233868233087705082621280324295733969857627273794843069965740965284020764631203431217650386401793102381082665043918762328598199149181112100729927083565083266845980856366734676896650080950142201913429704164335852309732834637604677461121916994085860575652571327440859176454701023938037037642637507300699035646163268017040430459894601131030531614168703109439887545289230919187284598822397141021115523269296352944705673750805815959642777857155373558210432643083883566863918359237211599735670484292019621793898266743355382255212783216813954147136442616808044692966164347714905275608663687422619613513529186653066971129259374493992921194279194550186332450580406589407495372515390634044503650153832489661344144877399595158474913540781020525199541438860855451733125433963986987940778394463075480074352591792123443952281493584200255992649644495564148755015674432662957742929887271879517029587966656299571335821577888856885306208162436784288195198470521583933568963476301901643272255969784276429893536782882426259403548231544386263755499060443466059585546128423798880312265581780599514693812058157438502513845583716097811887056211529195959939295933423338857487991087245032370594421285798238527108078787388213639590061565101613221975097014401374652859861220724059269449081361648311028938989696456489889052956138325145341019727153416907160383612723735945710699872796524058806728592359482590779427127682408005132968109337680800893911063054525480431803279028835620176376384797148402145559692974249696952082277819999634890566067680707936668734464807090609970813209441892502670182866178323637993539705787810985079307144755056099369045118771777342114719495496112892680402174902964865760534038136145197178950289865831785828901497755394257647787829984166995381369837887655355780047939417053724901375303829794184587155024920130524061195493420746465179089236584870563035312830023668883857097850417920109864101616680237340438079053163009065633064349571573013079704301433967794295329030936410160082436637170417445550025003893803246468220968821726679985322248868568466349496592309359847938594892414450778604491413821208799000961773004846568349166815720220606492679832127204771474462033288610157776576445786356688108276510959553294301260335625869852933334504108851848869780829883710232053313535102239697669205541990343750251652411234745539611811398997086087956299660443743506782977268865684275616207529454918540850933904485387540939269804398489827602523141798989360323811392983874650734607183300938741725234954608683325687847563465598163387939648322522202284622004119928622360963357189374558736243587657329236180541595307867001440766343448407980517421719744897372877720080090389847577299763060374068580212500299782518447536340315105027803549673484492845619091472303949491958300615221167048174288852203627529948780086955061927573677231346094358334088274490067217763403613485586813007129323827838705741497166982371115789006792142000571990458112554479175353944693489964908648136222552390785298721029929676999003259040270693040623569538989664111587778423309298088644100965529245076003686251019489278425295935309563091145866841465171613621160019415760720963138540879087173352841323533100925676918265628990133242185491597588767662277871741978503951623678064985547577058731699945529026128203599650374317360515185350644831858184226747944059537180936954842284930272479437030717277619932617549053011394654781052298890013615389160850880343093947835701754713367159007743117333962880931738827459555653837500285891608644076607865674665713507712526836278495314687649683914337234300449773506052781615435426077600895227586684606815515098816817316098065894676032318822630185755592109253386630347713518359650861767617820068170673444279530669866613434660846255262279814631544949579032422574562294375209635723951940000729297643594526558342052136522461018113438954239455362805414381859651531231575474146883284260357636410941646287098809039782448209231553083905000883610898773155849800654566009375484131481088463624041301512850302837931962037564815168599904966176963695560520011482193068469188941441559230311602802649498403778111891619787831984027874583785292623026237916853345241525165113560964890972547177857382890422440632638524785726918455288569560846355173176671804797106606700943540382702700868808295493329203400153627680076770963464751869357167776577987092801246910762981873884386074099900216499030177772187010605811043783872083528240192387654553575447356810404928316321961233881130428554412681741764625117103806747292054253279337018715399851738319187191079195008594236984912774748098112591741272926870961822067766448627318305281552193423599081679244449690985965129211544977237858515548255971942717061842807952798237605234427490524224272179356050465428511995909790190929116210497629575454528950121977875618460914502119736686746044461916901605811443561321368979561599079093841580518563197755436643423598450663085056997401513866116655091981959681235965854913838676834240430200265518212316958871321421491231705438018770494963153642605600034181517947174351042916034512361878681743166866847012437388140960953136783786894190904244206037398996882002974929399649185998197404004769026217670058950849064054855374668818566751131476516593930594130982562544916107376259585256447779236332436706162494031312058220304577476694159283387439533722419609574097951482717557531174486387656497460865288734961628868836192540454532805932984824911413027772363759106538979013981517442989064910680630686321789876813010089961122883170084008529997921286537916639064332375634637180038156197036924332507868810154562698633327012682942784776337034549182737281609465612853628403763046728855329396978998336540971918515362280952122842882657712753373288703497755218242292104837799368440663380397532327473353570522489379334932569963828935262559087017320335252703730538858545457589798929971906251404111337660587293553780596010737099675756984202257051156049804544528292790545422696423413300864936568583388449992581046361970934794860595950892614799371642840752622220713050770570487378138042621291941200515396642143412056276742702867066789322619982563884337886919292856697080108304151000157276198778272676251855314121512570532584270420352237158329407178770533898044662150248783848143485568243750855673754644361150322577160822789131190965444037679355055872857312879232772443745017673973836623307644322694469085404459435384829405397072411535945702842198233796110579773858215534077330326033988839603969873731998915194186951752040359397181196645772909431422681241453771300685382001929289089937896769030808938727183896214243339452053203546910103453419113902510910001575960225788567947210572951852015345748844819541184481129957871196731469588398218376232626431365652678766136936926598660873751151526224989850250569566394098049711268928831269073958611672845577552724466813960276643638014120746647018461427226011381494241498378218527097126797135398677716657226405849928815467716945481371342127699127372143125432640453282772986764881418045123688816064419811209789130469482056737376910946343768183263034331955455706282159565013399678803939364862384823367295178803385924082584847822099611251798321260585962184383754698000339786456938455457232423472119497103279403345526433487211723392583099965342407301946706941029138859537813517840259146105570526015687984124841886674644236652716720505626544751988161195952318102849091633725985732054562354561971366219586879927510267998698134326854492785057642037107097431720602621950328303291612830828972763444758686332509742042346575753293497075556877854475789519690664307445156293898850294202513234730588553497103876981444088082091010843595516125398434453095234114691624924774299219982781949533983528958189011992344194325545451026613484384971422780666560692154978228376545684417992586160920490718158958783318900300466800485902636421157108049603619400772944002193488436671419993708814425001820845344515394976839412934623223759374321145564069844475405532465427436926224759953046149435579809101147672810159560787585026809613407443092445651820390364898381158016851537119825424474524001067008005261040075659687020852233531355615617372785439292345287126203394575801764125308906877617044100699417980597570176346176162530244252932782991850040573909670356598806594097056289417962231111063893781685913724528083118499349839175322501595673574051213005987401378500470620483093757017558555838564451956033345429762195470930933857831919924882492985894239231739261585975737574934978877423912333591634386802896283993351426612286095765233028657180894826340931904001954530575402544467449524083572819422429429796490312394717428824488371333271198193547243729343516264031101567665997919412832249265811631447641615698665409836628442248105283452426296325334413759262047158346152059258842764309816515228933830973892777563436716876768304504537905335113689377405559997658516534177289004946582399089748486187202450689706558206834099859459376153071580537482440495638828554233075857976092068757632443049140291522840852684407984438644443140799248971013302824955886155430513302543688461135211036882959208257096726739841707955162230006650082358490235527304911500944290866009479650740433995364009571528004452643811697532461981170095255870435500902593403813978849201196972661378496939451826770819073799783034729576238139428099209421624646595676974964132100621234029700009876204676686720352128752664683848919385870629805008326592129830571343574240340608685983437641813463453515617355730886724868891284299169546680688754379996126071546284149066303081672444546340112418414565149113388430774832751665911033373414105451190077386973276537670326168954333495875668630545532349636684229928907475717178145985652835092456650506357609557024585524763434941136795930043751362517195757248920847338612611160544742105427647119014523686474158863415062888891400917659130003982643535135210889719034495435856242962175006644133225916287393023608755429793434942616492806253299102880740358979901679007991227105453677001574905510059703824830113815736520570331600564579711312134901583974694983794560473921558570355037265539046823864558333105730429223550455249827132504278168566356781997290141800825615914830967955069691786911710631405996092189176247775318254914469753681441218622409835266953285956055492355506356501311429592410044455276372960672002197285193576268993461101070406049181863600036323386659663231221657611879479657697540299192396394655750034788688290524203356991251529324198807365696047347921258305218736874945646275199703980960277719536496557833997246813428313282892708014910307495031050409555611650891294910435725499629474771202892089349049213841302648219184291807899857617381386219120358914772500198812224009389873588764288212437828524853300861022550609167051864513651399656120620692408783189272093820950039639243278568329659807871051158310394492253048179463516348000016766082078319642054769209937621254125706221837010382670915926484940352246100296342796248826124783053015865687125263649209865958343442899063690844057673898032345331059992689501086487574871295526954299610971126744064508845863368425291245545476933613075526904881612941963830459789300277774034660813723491780016054205746981205483353375792694174128223220307376684874720247953628035615018750707659707083857072555057033597285894499399217386267802396787628031272235687583392599450534844011363386897101543362468021849125842143975257107270446854209865377938256823194433144025869878548790770568374654416403971638040541721169277010015882202708106407001755865050881650324630461630411618377992806355260560664294061368160728248737924470329427563496845796932440116422375291136692170696784737572328573298466133706818763720711273955225378478239243294108979770417363281948150966115748568045895916881567450037392537467042209204177667933667966750492529923562253433009737124042006849386193364595208464708003069505126384101865631945514111052478437574314730047248104550867527976361490778974692770456325039708808422162812032554832425524139771809980432859359714773279256920654526596586693630435410633247580347297164608106022822006442963811338014410308792470176320468727011222178267872352595649524606184624310494739071726792880211545502042805984878234363730542195313238562757837550622273167324256522858833623709360669272498781298473891926122525851475517811584343098498814448993987438687933911086665613153954206502984110921439036058495212355959341117712959443979932336740366695991127311791461453169836649936692334901346987251593832988531439225531501177566954171107648317420724727616641548476162968606457227872686465776269327793787167698970249874283753528989976001879981902169987493282433931242815124567065556131053329412851236196874249483326441173772333295930178085936243296645313036791856416153155887369492126923584021069729482082159983172441971502553630140493645939350711763335981272787170833509660629268528191188348174672310099615373844960876446784898815227245223951193674108328813514403101397767342383669554932228515139526170054257332218965786501340800653855325724427041403838205187746040152191563611644945186886441920323821148961665867299381075897843384986206047409512401642168376421849616916695475397048714330410803914407322475991311385276175492391030427779300133908666488759415995204938179583764387178351601987307642013098644020956585800916543932861207938038766093191744070718622758339863929313912930772792752133810386907850439618181290153581970810036483081696317187189926900840021761369674839289363083303164488333153131152165123653266622407211925394707601636223435163982791881352830214949951658617510239632246419823131516547465183512230443247867799784278781264919095175764534929793015500288547751276897009279020390792422366688176094293028781249715716088807699850371979930190143649651184982856470387148570697037170115365441236752239263317080232270362806613509277486524130969715382486726241146029600456795886604588128933034923497342796183466998353009125005085514763127029996736959711100489407468951328046867616246843733769975571821333712491070201491307554563944984235653456169377713798686819258258639957704242614896200802301091619396744164263026268232023304832194638933255872785537298469145056879205577527885388995193678818406236339744977298412559120153352034061580733535141601928795298087473957177626419020951715510423860979698433718621937905413006642940131025571707074040885487719847822956751546270907411062348108538400583164374411216903820716701089823184393486906467309110746855783033608948695414601202450689450504965042391211210648812962048183804568407031011187820553518014942444294472360072253195715507144635571929916769923121789072149181635209825014202462134428889684539914709919742141033825543179373288019593674135579273313517448207634378964837108054565868994082642557956661009474933717013096959737004004858772034233097299597342367109212383133589659283677278871185907566054979212089786043357561642646279199858937141025294051031603370575693656987257122300718828320972304991079007730470398332255755547320523280974952729446376436080441650022008365848303285396471086683463706133790487744654063923527914478316175367739543947153695532367440976525862094039239249214378826823598774211118903164692162580570202986351480944003571930847725543122657921741062226543063802688826595723515221299623895113842860222548518380656066410208396331202053209481095676020394174756763705217329206053529726699091972937923901621237944028307377356898281916234000111249111361471425389430157059284209189248018913399705912072913946589474836682124609661196719867616381260349521007981886021679810656993528609790040852903983097175907333574937724642005734032802593835896012894755936846204097145366399200012025159555976100891131128019765633858789383252961503400017600941360431743726344766006434307577925951639725453243501917403179209810411282606980719566486186215616360956929986030987828257344183529232260048838403678088292058644696712020579117582089375619077275114825294271714163238318902046047129739011800544160971535428079316303165682230537992880097894813133210113804769201711175436963610236317455644921610911835271002721164551778739944037595557511608756517662405061086181588378130812109088831178708173145425679710605498131400386148737696259846348330091779249163514154773062329604945239433128565743997349031852008372895466768031868562601341510802769733429047535823596244537664845186669105062840871056055186600550749699283712016308028412925932807081454920091459764278912202582670505692048661180086772801468971077731079657345113302994055211545381822360460096719996637558262940045521456599916093869623253451895434541293483827732204563883648977874662452794070175336536710638057789623851613650221973221235179717075489129955215376599459728454383201231780793570552534545177323648908151979737721651615756586610958621947086336210657581486139481333671217667731728844971644708224877106121532443808637589729655614491173330939919801771276089628176391392285198132409901233857629042108478732160151026103333615958407042881849089948182577252286381195438421622077087501592982694248723130814046987332983949829725792913192381840596481266926151306125510704380107603631162787287117000200327059750187302231049376701136416657909121535980716553676088711683570147243844650592968233789905745104030230262397084918820194471850717765087932813218947351132436158806915525123285638489614249012962489880147618924389017281002682228876640948827386211773660565700034782974861078052266862030769149046346613790466636902518562973842864195473350442544224591618353013071955250112108380427970295108592886118660024852572986972139762872622541805434524090894073902569978647824964926469162018840300914116694803466463687972455585798108343343982865671148504775453388463295969980179061792395211384798325463734916188223753859866512655525998168081266904482639998243200401030993484013147201666782643044021176543810191649146511852552954649091698163227222994964988771281802832395195197421008433137937760737477463952623998268746956914909899785591944864386536009306097017591469083637905716047383745530044840086793910218568501804894518096208841882188771778835189258764233250204175548321260832882660679719000736668451211740132171737837907182445578287455003755042597871692689365861715295118886121859780356269713650473248330654655257905036887585069951927532493456150866500020439557725297759719219436727431207976887788183783797610050764862930980614916114851168394109771576366527502303948108196479056926828293328524610755171928636219439317041091907186568399918551593968722982777637726367899919915946177664356646857959095435018781226152128361618552381879962010251097550437496946950443514558507212647546276579654975155809690840218264624442633326873815479529334099344326977052012473824290142314007332449086688098210664594922948263897149940523681191136444273903536755498033841938513638172460864987613291732729055738274944631097206894321068423361762426711040304696756083942981930437840142273199753156352128842711362087987473205280465563053051060239929865149718151619491364353314210712262941080494450040696315023527194761477874221008769206415130349381489081726290483315123041831112419794254918631376246869430108233776067735577671965217258167360129291029065511207373889947934310133896176404430619564637845795505945842360332552374269198336006189715939566632903274800088043929464490195684842125461840811654311278781260144377070202395101448595712956324558992966557946724817971874954963917074779010329715257032954564765357305620632823243006167152326589811386593111278773523769122079806620052857095021724567273586870468112499136998611714382307912256735580156521600037593481856084648546945046623751546296628953246767539030343682773743173094545275482436165303130374683094138569579233284173140347349688894397411903843247241014973725604957201952589992682125799709998329925417955053395278754531222400404448883272339981751436550099406734428179620126045923061175983755967677453725676330328680915324483446830424024701882404961522274497932755185674533339436580451133441368305841651992501829777465203038778082226973664483551058067101804156854048803774510141537928131547714914311353959176063149232323645280631450132755431472733543225018235979746076895614913172128359676384489082218099656373889324401945368710329060844136833543462585258055082845138066422648902531121907630254087623930580617130846415677048376009768707562446214663855104967207850788540304178495154845516736203880536533416562161241549928040126058513215704853463693770845349858007005378191395600243541405728298922872854275450268941022671251848402239999174609280848376534013145457679743607854843108822416374690936655157639262572153196508431095827065643210922397155303319698368564069642990808092185748426101602328374997880938152309343498408634263738415080069846896449466232811054771905082735597033233816211209395831429474374803700802844825508671553805628135706799526870048901185383207556882265521742215967311909357219150581331739727005030989951894426312325491164820451817384859131772749563005239772982303021022259476037745560915750020911656587214981560508494913255233481764310551168461841737358981315289207833737697714911941427592052680634642765323386700096814602865029207700653601013170482490469770788715050219783741276870563195695584384903063503135619810763208363674423522347506854071397109240790837780907491066824317286063629300516446210731734356258213444735880137547840479132779335658838575479162569856298056728145140821937592884545904931897433399092456818863423216042793405046800431231490176286558605777613929424368320277237075517760402505226711820843087658798440580532651843118383187156454602721816190658408147468280724242522658843777415215719725186174276137120749309719230425412408410344048332831745550213178274241058894270285291652166314195992392084033313881397771353568016715381764187138771292707590114926318385767669022393828211587502306379079241456839903128478071799529421548751466125549298784318109273716074369486729470740251243787932451735976542066832265008862430143564133505896640491698601600356374580662804173053704605211646270944262065529723123409140074601354693788486508307689002063501667107378488013169341281334363423493141631892826968591065270865701326457905067466270467622415973670153401366504779492026687743833007242294473617621122434193424896361802245772145444505892794917583325063318691309155052490864623079795837042744715490229432447761138750919698206122391322968408584514059929690155208258679555395248901041365921946867005179305283820504280494848672851477694402125758878791723001551571070388193281363520691852447928155816728098667514135458067889163450494049228237535527164625175610404827920554656068482844577465430223270923934923687751916855570104646680532316741123815797997991825249898930912906902758666114981209561827658023143299695003615792556386401631909392916419388074144921217072372381336342131571635704008646686808173259852344987948077633135290350788620469076123468726065986172020364907602583485683434224908747434797267386474241237639658263175840206531705570788241848047882854168901555462360260848351959830100609773893155007085445789852146146366621884401766883749535103022829353553768641713374901362809135815098015541181583129931346159050459781411929432135909874878206492049832422464990963921641612376282415532298041416152538131851256852164015780212633126490978944537029720332087244773307253658285045323649219490200118604314531792047125509737321219109222760724389723021004152872227094972914074448556079010532095586383033399203797774563214653357545944718110277650180867611349283553063162638908928976686227260305947947082745438208404338886465613441762813063815207494245415818786934650384636667832156403178211324001946835474196138646674261103846634229486497542027244441679877006557850362606872495081448772273406941608348847877434058059952809078710493593143201601492902144247363844742458483421531698464569911677565055033070767275859346843979489752293772533794720355920691956432355964583676006709855541163870216627823590660164730707581149105795968881478077680296475773800513383531444201823184730521984271874671043722546185908391489387608469074464595401742785557685573822555726066670367116906323670791168446136152338876014172415460197044232073199461327335060110900854976331252452281661501950122642594477535503088697770993705956749174139031904736889480710714839416830079045455010210851160909420160458793688657448582169085554265063649814533793952489984416210301655751141582945333161258368066926883204050081989518208841543836399011920166359000190090238607221321007653358984977399512054629090956308309255915228934361920219864031879667758249357566240754911271553307839154734387170753438119333832048057092135530345279998198083756465935262986724676320228590437440240882687685191185310295271065628919655352034974174468668723683278529932241122991183701670063109381337803568697891889866276860328410058043634842763446669012431018568161575399848617507010594576637328772935445106832092533030798278577226840745580992290299863398749348921510390800944763646644517086855546418194115077325943987644369981069837253183192318437277376071745250577463108760343907037938037317447987900434668180597433759110689831847251742422650143205346513574293806362639199630628004445669207399323077496541273169088238988978076504953099194402817352680307240237338285176684247839602067663686177281359423764002410940464794065967728993504750448129392034852857858824802744266667113231424715796325240595442812201850104411995419766880562363926288554443699156648976673399139644781471248487412507521663324681806902332848934971759071590450040145773868036920945968922625319237777498591965719768928848709674378729962142570266378065369219755416338349774145833558349568627902431549519587878132953051058185191090534839180187406869148584350280975953991688276231612274857938422824019650656301242334203948292033449233970985617162264657514892247898782813118192021873863924784201871678991914840312560530820782464465250829470622621088786383615033994229057059779266705438194111693601178417033955518506455118886739540963717872499317965120468114257155509518636494902938374132533938090093698456129531105269105906233068173518404748459212310117628713876934165859972164708595133936642225640499497329184513295323834518051990443072489974541647712065965583136299508803826959380474967544406881444645502591263486011877549666210884722041897468309967603571006900561214052969059715990797953426333295346435990564933724179600814933201453764275302750211658865849645069884712276601261056678912891621305648658408336942777848254799184936456323367458044766954226496394570173339782560595664443756530231915281661999448309113576647178171071227425725201673698661742779436470529083692003049078661572096127029332213572113982239974211084575763798414243874180586793855611184255813648082121730310571643389803472144501883689048427220704243368874530577510220351076651690114434575427300876391240836595038547685023563683272631427436230705289317219400960628185812627128528573724099239279456956187374716306480863290635044615948361497945128168146470418073621099163649726125409274558726239757553371124794685435631295555935446015253082069212981238233923903300509488949543322034271022534187783363616164793719383130074247308555058777808284160869677662061128592287170853459289953673682986709412192967962451988329038889333820001855710701563314371662045751755261337316644637227124420809832723802230544820439436717210428921329483444294579757709398757554106739441798353188175390470848712913255537612737232428878968822306703535862519095383027972343563340648654815681160674523772720423048075653496958666798351889790708521583935408215408952667219748778446838815585758327358811841460817568799062239377979889150889022651233306763667293428179761007109913814973807190771983550732355872058344700600627629036857999428439516374440035726472360144615041138621134552097856151450544510457220976028918358257599145261814522643348262396754564464566591865312478696119681560149319820549823171896382309219356320610574405952455648725100058724222759194436747649163063921886171359546466522579301578093661108719247844934349827920886367858345222563824057563543709180819119048332315243353949192613061062166379645651700082945926022801625984635323799270556410481711043170049124485226887309868794467503854546993477850968099631567050657017807408830154067729881061505239510144655774675898097618355686128009556675225233232420975273720543538106211809565864361482807910618837643843136133618841821757521382246381658749108634247431442435216927516558395705804575965930090270650955205788648073534620498364684518050131822363716636708960827858408317202808819998353011104378067294031039583719099364686218685832205820405691515460702836639659714133278248778775848818446364536809428649092702564476203790334618227095620035259582754397498890387176056689926594717116253967454124588528002839782788039962870956056147277935359301040238222058843645502848340593498121729740799020061756003054732962669865148138310107541435920105276393639058727135650697022956317733378109177134222135848794097725167730949241969378003322982837550266901778959081112691413076783035062104910644245781375551272374403776772136581907039611990048622845961788659876009605810909419646706786929849764016522703010807524800674854396411874763492632441446145065397445814813551904404927739611657461766163506441842452500371940617692448586672803546824260160899165913143454839610295233786940669622666681821501932944281473452253729552973857513238746597607882807030763383823360132512328312135747138320893137712011385567139364123951735556963498322292030535384712428364625005564805029849015171123546166407166220222412089189350864730396421400918333472180215014476009712052080717236069069557146684920928853610280342106166922832856764504038854662592372691166370401587315426635593629654116545515078154123295301699898488349956064006120296542602170700724343984105950209683899403649555089170363661302610363251264079735166410724600033688614859396597090546747131382006134921610869772570107257062079619558721149127062059410248124196269689876512295455052631054835401579347175416992407421310808499922967055434214845906485142248483132006049465212732934473676741231027128994134718382870621581150810510263607712345448359604234422296518004525457483424493475089009177628240094834752282261457775784021294501091555096641491534652606817995525817381107123632535187426776431050219043752250922484939076386352929446260695835911140691579826829653380167401493536922497061783399503921293901871854517674785214076047535576642878113876070514704080303147830677790128602073126164912579445581838378231018052362229405797867648671523536275360686584645050452110625613095959876866303321250753365529200270932042020531822774952213533091113627543253992570459940848804464664601363394217726217111325216178220483632228562770179646276202431983943732141514096136774076132901719671913532431184811181490195780209708120973196465005692206968123370007145088589658084010337790703674973323676310302184583831278887945164308739498208603216248015216160754915831281830332647242483160284494058397843241935169702092016344833744733326215096574468096250863909362158007802552883927704025009518883956944853269472388540430023298668863690496767471487719276884977057951946826201156152411643028756883858177704088124940807365592638987248281433104167296080104451518861814205838496160317262410873235791570187785439556495378854737313148288162776988565903586354744437314867120998068770806327128034307031163827532841235972051998934547959829801363792715682716487954068677824721095573005160235949485359697034160783784425776822318486182465217513345514833355735634008261191009729816820340889235382181210704079175454537252722584209276495628396555990122728834083783970130641202239604191858130639865446818795795932509430296933748679073002769057706945846766077171135319601228658409034017475421949876477150596996008321352232792952862399634451756250848934617155390748473859739027537966930390665606470677210895043941109500150103935446711212527381283983140374073110347319181098551480063393537813324105324157663744525544511617234753042372547570417487491152761672283345154383710166685785493130465860441856488367426563509740585668252087675046079859753155782354938953488589118652555160470255497432785874901623252616165137680954261793222041256902508673303203992145421231229822739708926751494766066234368005620896485000768916787712756387008421596976736295708754957031456281695192561141052399066644104613131610224698613167073434658331862019045333667496428841899692112289071394381275581202462307436537154044995293417309413710224525667239150873269752969112167616324399544171528694717076237596014944603401239676549540811168792864791053084297110213368875125814933769547942529203496158143879432818950641279854500511128379600066689416064042324110417069302918607543455852928485270935450544629234616177290086869381651295980639202369410665237560640487007190678381486159125039115261525583055072049040953517283804320103833912584706305306273506722286918801299678868905694396366284382492373847771284416902639628208444199307010149414292376347814648423985403506228210215946019226361631486302836492884854402891567857501971469807363743094660973056605122162652489322655679372537596755079772152812391801341045537773970511858265769936444236211902041348499385156898024791440621248123364049301279670408432507525701991725140966173828003826516173637992629500843047199720576149554366319572681725757752417399201931654216657566613666564245116202331767804954170699490673275565623935715708878336096032832057607543607879546400290768921012611328787169386870588795407860773117020356861522811501247741481768191581912153468654548235696709307092856761507619238322433689642501266440704874056395460691921627537845481118594131664634970694240334547479854255795307943891042385439707011660529259254157038080860741812465332591351976387956853006665605318692903042278761607874720183170245591055464944657607100516408675805751178871760846999967579486214890231452636487713033723720686020284662842943337685675125994931038351150986517980506574018933334644786494333607618906268748077603417802253723706843541479356212127530248631218454113607418015576962747160870948602700181687071689190969443527398291924798856615489114873427609637168721155436561181016134806020585077822086554882072235162101782192201272207908584009527574459738758341674697398843973281306049132604963861030716915140519520375838345195939760536446177039477499465882224403365210973009450374214768590890281120984825650464724345084957620702602819148600310963751660946179931333113484649879458226781727114015908210554031904270964683583701890541927280836204825913769107267977716098895919740111294223431477576459643186254860060423176597334909858207943134365505728025100796081048443579278718384126539737452078407824159072175768846782433766644376497259802452072662365361622202905272304474714562957839252199580980861561080128381209896820734914804493774993059923444975981863084144382351642205222703427838015763654570453564121551885757330018634206000783447992126468964795624541159821559948866393730057037624174785119969702615504601317793587140287728281570892983776913922141328754955663937400297766487365119777969860976946083122396800149007975230005758558830627989733488052214350402661030101815002170802266598738259764668710811802574300308386454511425437592451581276955248694143200631245568162866557169665835413005284280166173290622119700907468407770471384568422959208482093846314914226598541180492784580561996787340009989624406328010270733965789902945028274002031842787241111426306903489488749530715873397533356404075502150110138199615883183471344905345246463344048727756990322018639930071166518108243424664112133553144264240796046166966219142377816648102956675922437721283023453797118591867030166000572195950394509660912843114231255286293492622576238773893649648115768091044730078664474772873062587349734933047671037740320895149087946189955877745948484853674229070752382503166423237065104267017325565202674219893201675309293037887184981675568109221359363026240743253140997795447159362777700508026954038026862193270192296602270033183805957334297074033797013995123223584692895148198502182857984027865456788745752464815622704007855321555960570736968126144025996248603460378488989177160420287818220669144245386255078264108821374916610622923761119237642755183171333359298731536771738014093500768499831466511836226740006262378232013938884901496641110093879747029428720377808263632775871342146355050025933231910094346286741287868292361501193669903802292740558461261368319941147556401760671790295535386754259147758185261457882008428329332811732715351391584663155435792979450814253299112066701167164912440005976259642241187720857674193585167833942772069342664492027622062095537304103551424713460942367309217567525651270662048001345830242862044989468601504413737908365135875286882878330065284452447820920637032423914475699290641667963132567953902844012288583588141457936274625955021506023793958000366310579715266170853235005190147693760488662986556302288955010019288835092451543941703067010698211260591245640247860418642103013622081755313207918810691976005251222259751808710344277085529184173898676871851583402961576161786989935293478386673783902785338841355367214295180694731565295817488911688716795271277784558234562528137760668713229870754526013555150555609193295099547155965487355683650101668451632066693125596599424960744853044585220434877420590343777725298294882791221069656636470835138669542075239235776162756020533599228880783300483927764848907724409570199554972381880644500271911321775106989884742229727062303133135492890097333374144071705770890834195438047977937611955902177803207820441043012403543974212961683783111725004513846119593073477869554240050839295415132410180394615618357559939291737513475535786805934718885373781298188981677368809081741451651942739432015885400342042638642432494416855663103524703286130119617695315107480504912540481768709230931788268729018576612716464676936637100337964072866019747531779893282158425628176071076062042484910467430139462249659678237227585202671838551056513416660711574768708970019408118531221553162626978957795284343019886591423015365410395025859520555415546850581295827347329584664957311373052864597675188269878300538910347637574871871856034700716946368781152885386259568434230669249601290066393886762909422627636541074000814139888603554966574352813493675240873156353771343931805988225080048354653178932299763305353348838332217685977500332272692012502383150705109661039413470560603966278289851053950158619473711374745455833440805189548714143679036188173794599820487711309925547602273133419857445810957175891049233767230259512904808130427111214246437360580490343138070366587980925822760748939638698997961939741809193888141485533728441503531595062445569079787323720614486840468397019581755532606768443182138660828327227215439588078954610873228760713346149559832181760480250615551906499693710099990038946572538942832536655364112611176062170996278467003921420506753118860948440786467092149780821193601398137018155142695974619594034819411637135075994187529323000716299180881042008357172602598301670141442897020851409258622208955301426078033579340888497754903920309818010716331507940177642277785069360874942809425292922745614401339238157479223239311973113898456039778847038979958406805055144994056689112606612501792277737391242896433571979394553054485317262365892234609547616449871400118872232792945717800091526619668160180549745802124458828253090770689435787214631700068639405764940014871181625809798168878068250725463783609340698203099636898988560453454726296304372331464948999837339964637672035339681246583353509655981310994187245968049994656614274521349826507856190655634016299010936846669299131324112670251881550579250547801378731191033582446273712032681773503137173066729221830488238295377669616820393736938860013534488477161192103316437091646039261918543195147549439504866670568059595124643262426176717894419215414299494887624713029559774045589267281908848198447483204226585406634811627364792105563086997306684279772206119711727468312331847626962412560883169362104575801481745924541350958287921780612637369178981317024355755718066086377102487028329927995698994373476058670111311080386440758091049421921506482876975896094043905488888245290085203502184710870656592400627672751921246060808775267026915758648672991388834303915353381641567992805450136550005060520185840994272832272157008660871023236091168696492856820460028755974513483282522438561030538470388919518695076341801710668595284013779226655487704666923501189155051730444516026202157397327112808316024797420839508366869683123585767777679123899126977101064392461305433870674537943442185535776478067495369201477147831661748465240955963683092898612383253040204855801658394104842407107247492005293823291552831930491416091816722627550542677729052811482318463687492489060645281302794796262410136617561261287809751028483115193784342814767624658186445663778506227477482881314922498551798724824315120102436471966783783109671654036788304416879138258429151407168479819200965240812301737156564081954079869378469887991234014927872081978654117727439394758663672196924566071885313395743219732917834096636638570771735412663103561354364202885304614953496207453579418765643705119414654439343349231948365594116957837443020829985326563632158639001034071191661548962921010168409824324814737492173415529750539880660686856615398031141267311277761375947027901947835271024166154344781890611391670872556291727344974431568923055335334696654603548355512900183835344969525521822469894284743003598710803145023688235837209821586263540924378560295384775874127455300578944715474881844866887101804187018242681930699263828821810313126801598308506007078023070426406404599337672771846933598862944284518799047191368567409263794934590672483968065002795453143017282491658862190944411298961361061101852023678742273680441078548671608560291303684695054212631070763326917841377070065182519419782689027175002637774916727763883336845546676590455306369578264412768815956764835305428097925190715774385035984129380305990771967112633120765845397146176588891248862160130281708364775917861968179065420176634556144422301058623285289422335557364580840082533224428155760904771388195795209107309400054186478838965446873168412946669864728040106418378909849548937227328749808826851107810962389489856993775657509898371784300763292768274784218716455058566620478173136510551809399478712884761904473597396136334390580162661899831008594806205595657132054336010666371194860263414079780861447067978435912991682010390527712827446231881516044147516063192877545720227678597730555320044949710584319349372767712286301716163240027570135639001369844164309901718818410665869724075355571313481205024407141144932905987263803259125643257287154247024163597918552108059307444402104981835691221656608620884824990363634412897442401628946284471876633575799547548784207848670693431017476807644487669215449005837745283678442087329825378985882627347499564690380774770938197492771190712143143294895875437153083002780178029438945615611023386367680264520565445101600099801551661101129032371906069291158380065019503270991190869558733485502673203107941650507336827126461453903988794600020420017779991925775692434838890666036156360472049524138115608715579915945833998956876083650237600191466851834830299202403562944681670811605860067547742302826992304625365492247095304903188710336475994606408888864823950752869796428437694025975665565661484466774697015630778536890581289717751941689224615607115391478103610693039153554908329220737528755812757937141297767525407496734356833539637989776292423336126142158992103625972857217678470000882801586725929109290950612062785549285164213591010864346799539205336050472903704420299694322172749822183190005584196498585552925930712113372987846536361970265966673800542809541390319035293578490330140139311613738184871262392736826899618595098290958862439572074509387167520098581441923801035385272997021965818851649568913118935254252385044566265695858039239407084178489862310418527788668783723886937339676148459649926829299214163613602484797279016321734280724808384136941952022241291035379341230079097661395982405647023516081863349179751761591897636677299707355952233829163113614470797472608564033861831118136710922193209985181820274922346588113603808359114269508062593273510087498421873360930954766801830945518976187895229293107768833274725745471229216616438508944541602835751132557352175547921160247212419919849545449954344903581118302022563219131224990395509620329868804599221672206685643511495430250866040771628564240176813265774803237330826232754848166241445616398929289030158584155456729976549402200166410780219750858960527244900529365957101013314118553048797152360901280848571354697663504024972840992168356523440522995392560078533596077620858509080893444232436879363135204031804703491118231321032559435158688804742835777702248208625336154640655709080248003476424623569853577013536055746689413459037212430723234697663581724683199362689174287206144403716658824730302733695399730799287537403777782822113047666660334782551664394430523999083354931444666296311500642706622832992887503437722155772941221352749859317416022378806891928983989333018518510100133849120621080792916103887329323753545133148422180828426192715689592093650496167550019880079830675097492526187813439897128260361722894990238519248532902163069054994523798371924436110041794294873175004469874854343430301282616811041601339321494970853224259034768024411134880190152495213631062123831023887255363819314493182722601568686956515801843993851127293253528087037235284391025024102104955867086014702105093420585686964582974527244705088375818619176178416654811022061904365744950596591783538328699176069428815474370292727436543673960716384363872426750500494869810827756453972379358818053990071224017062370570127684223266308290150279523034599210434880209933848741148273147920334833506578176413867004855778851640968577516077499439721821556637545720430797980121323075118658582553925754548125023183738693031887229801768065328944189762518804733807556608157606205244879540117365000997699673427261030558094984167962179702123848615492020248963494014639018083854539644149744520428759041797068673815451615226433917544440112351418101038664148262980267867485998258438698291347204667904373891655907946842299937115059270983882406196353326297378666919688980816024872391050181886623598078764518950167083545123296365579943011161062987550433934619329994502184111144655862438309527250585843712855576176516139920470448405332727293902121360527950929852818562589882856858169716781833697427841906311053895510403469410979564884691309363239273927443678584087236006981773780982317845307334861146724959586660588108439798702157921214255427461454353153514372590024122570943638162566313553285939237466260567134477392727796789968865799326007335276364771519515992969015792094669860958102225433047681964563848023471941702533518858416011201297218975935456184738553314402782121472619871003922993746730167579312819256191838899457021062956765411748434102100407888353252064858621897136883582445748017127521880303076285827134314000944230872135620546104077621650153734959488566603655981195173007586016334006818972968901043178674082627593870817327261752380218991236689319346816077848772785188614219695983987536018083613586770186740669174868030720975247040348296786255293459945840022979845591550612919630014066634503712095205166050996039736523663893069390797948641781776788689021131716192657866831301992647441688932206674197706998401666441411179592449040146405947373277338816877068824673543537548338994043823565631725155698611170586652521592558052008687862999377144219906278879905015812055532033282286166090305598944902220952016982618321739151722730062895407851187981887941210883199829902576734923501997613212587933895248382670743304000519154765754969631238753226904036152778399863739181857052201297705323619764705765886216331229865982081689664345985039695457770698260565127252585062098530432732377715789613406265894328363879395180743204947177158990640370252679861190832912151081638939443257324260952899532424825851364779825350057749010964615756675176570083766540413086913250579109073171905589222113958904799461568147088132663069440117259906505238881242859863669169293192458101490683938341886457987010536976813442857426162015501886178716438508067961066972878705407086648804281954825112994546882738793679454095292414044734087352013153181305065688818442492952928663064451494337392880621967358433345280773242950353431388037452573555405210088448868542581863089780655767571891876746040948530090050417376308604578106471646516384868359916591665331362930557692046439865982073453789404993946415866933323560291094240580456635696826733033800566603008280044708748055401795887622316860538441552977147535411128351238451406126347606316296102228894192691984373326909315017457486260232908277199956595966326322509053814481047184626210857284512815661482289679411781596007153656607031851552781557228040894639132695533521128824063721733890963548001070186731082062369344727605841248141680690255610968658797374644794703159167952359008026795979465130592392373822570005742587021212594272513844892078635359017510410090193725595849659316231446871517359335185807551268699873054847895288309116420059455371190344690823819873154694784699666546308756613655394238588190860089882555201795933746853818837534387724794877298315066252527210634379127601174256294701363995129219500773264231601385300724278012760563447414616317827215646589328154868793470300863973640446749561005285147033369821014903782848153591355124615741122826042160897281656611593943677527099227659790440209863159244909567543449275099893804835594036771155444665627033978842774045949750908591228846606793927061471927788535369071954290961708259699653132278036633033675301314107421133345936564770215924266495686512906049511611489510289997087912269239286377565244132428491515111177448597310018784064596030789781607461055108728978606628998250674962298417296760382374655637604863908447112801226337375885286094289616369290424478937413651971928811332854172462287578261422201685417893733543156015183949144527818332266402944218862261178068921676910091402567879985952752067222504884094037263622681942739319479784044737975520293263941253557350815583570327521230398219815711136124003904680338207109436927674204532546326912065065611077425166691797987059243171696064023708994029034405682595112632539647416854636986908054697508488449132885196591210433595027242116005207707808125976886728160699942043237723703023516053189487422457924484608555397034717048091730940512921833772744986491859793348774304009691407102005732214423134522279913610230341517082018762311007309928854611518227668159263416779710472677696595074247627697743893332132283178351519363093910987674079189563377335756743211028919046561319187226351497816489000282421618634488388395211147813619549464011691500417808511810243257263938209970008315995195373232200561898327585078881429239094398534654834059658174202063516520768403001198027707336872820300784272562413648685436415948551466360948888282432810325370754948727700032612652486648385565303674686417588362367305084501552605388742915687225591783697275232447646166650581741584243433579480899549615798302572975478781940583489012635403991312270543391227999906674207170391787287375756556703202685292691912122748593121170049635625925983335082834428821335838097334034342693254580063828943609642859914955007245466126596099704862431589836955630088494855640792881907480505873506491319307955468308673892120354887063857268104563909738804975553849766954150112540529441304296936795829197222933235411992513192451426086818690886026056323828472226634971103403526107991936202204292037949275085103183783341418049780426243875111182139395160928688863310547675058916908708381142507307212271287563593903828166889976626284528638437232328996961607060463947739334082185273534240582674994824175011256406687357985835494334962323996744921783080059654229995760280013923480228398333957958743101607687900706118959672025435904571816358149883757128225177235523514754353354523560903521670773024570354307689131269555529432618724176001696182442063643154686904289622742020641437626496680692382942756965939150131999455591125543308616792039997527901384242660665068061803615444697083412801747745658986675189387679179316748379843763310929084970462052474491584327833905101005685979478053369359102359682540394580332405862428006698196655468153351807708695104428141292581504044637978644742621833028903684741826674083269414901561795675749372799459856597276358820277785300667138108392525817252148618199690392678827326590647211070612233189391404665294050224766945215933807199272502694881104662840462894532091687211452825528268969834903709312971414814367228526927477912237751244860044935742487943568273139962323754861008399973841332663432061507859303251090322952701780639268284908457256674328091033205984516713454415867634693132574340002633640739231618898207838767358237922081329994163791111747179848405908220482556807932397756403249689790949513970866521556107203271591761449776372155856225243857518917614011471763753423392011648638015300867391562776582337992966260296941722348175707061429259756574540716799720800496568120747059982362424270610466991920909941358101611736068139707865835027649668897308514229131187038103864204420167368954224079378435204529681990703822411817002167633759927610785335372872472762645190164536185830430510093997953105692934045062131917670876517224579786657960800544490213939234727967956253180907796758556913083088588192841152793093101525531304323441304524522503387066055317278639584189182113202376221674790974457155063494947963040931610985363891247663386617959266038203886715214439222517368045177679738758807625026791214523588635594039875642755147923864321367117901645518180029902094674677183959199441572911571619184219421958943237989295946606620623943876808094251719261516508081562809374648803855581364911101211811860770874497117220452949239432821241431512784189979086401586747146739203649062378599237236298032480122608402815948096941954517687151999525907832190274006292044717907114608749006571261946554944202815338479762169101126237872594805602026800437083885698621230286252714988362316461553210856133808535073926107873705938111887845813996471229242637444275332614241483042251196268151460820553200533175925004211374759436228699359853134593285950596439314810684477605348557278672290820580486320675382434685405960555291045856369030427601236458044239011120414834143911490571975139906405022261777530282020125356044980904435204349120883286085147423253258208302689662001897308545220265469782454702486906121986682024865565615923382773634169997342792697025565035489146258172382905344661164152933697349528927776815297501387023216739943575878151056665565456294626625570117532298785170061314289575381432071823723276883466723576757408669828228387233510556102885071218580976284785630194342244138884123271683172736373241897636637006408630789349382645751717581597338605467065408851059334998521365326780896694898249231260856274977186829383796443678073748845403820209855994321863133173283583293261053864739885850216222946938063392715731666023577891533309324036525607608403075645522088417535152955865668770209591238516763373986835717482258414862830528004196587299947099289910699816190561199286033639054899086206043621114344943542574728473538337443384858545094108929012458779312205085886173073836322410209048226468029387484298202137959202974520616811971911204174537114526747099333487921753138854573077646794588391244263952397611311422231622162949371686889566576254989766574736038062284350775521619955429479300890405077446117022087315024816361151586009561961864500850482337967460636926376537670581591534047909689229626157550296849834005245436679523407364620016595869990456332493327395602033460589885254572005761069586904596243513530484751189302970190956807273716826326591510997757262339066374138089997576314905243053346989404750734292945009231662877429092630830644225344748587542222618302548778127016781461673498389452046210739873814323494147755743059265896353999242781620323033179940292215215661022244262071186375609072821436737842288448272381241747276007559539467348960166526627719675380071203065395571435730737441376652398718558978291361193627256342452892004776474231517303392986057873680669928896924408710483729388539884902065297385692081021089925974168662717120147570560734116148187772381544332501962501599428497569403244448993802222612899666916744140803369797167631029231767854210292032929053138114314448957919850727039716214785670902698333860615335342528882736833563216693627207370947927252445412343844301847105444451135214355517903622821028552609945122213225047856480596374076262370069980873716109709256316802816760002782828893230621297317786194631512075069673286768931656000459875460570669933042402410554683450489007100663590433726289724381607639044477379197414532007891325853958075007956637229791335982942062229246441449851792278358342137960165688641826624183838939080598271682916466976695580607295859870569860128857719065357836524030525458727959292541419323050800681332056446390149705279080522230704593710960958701466657165920545691883662902799098383242211757425218683071778640866525804042694187260089099125005678528706515291465185742745215187365053196499662012927340009805385602143297334012835682721564442770360022475113901768192851160493141400534735442638036774050371491327426058224396618332561838506893875864404282188526282076468320069836961614525681055877932790832475800635069514872806226676500331563784697085578342297896607923799033352546939373595673472071644252192537265915885881850946922293121905693185528079569292644265702418749249696841746069139801125297618972479681549744779303744599610827678499267017174367139352031421070429442760343916600141715756158570700704980597354621717146483681701528325269749274243050928110034868572540430142277574622328625869315103028484942818078773483320143091349539823028767855571991500956473118407278178796740710261189741322447069320194137781773815708517638914674874501004936752762754301853288748730607952821540240114886014097027366857706990055507818414113531469740558377691874018809283006553839323295914329053911009679520431104716683917698119765202183693568706977398418700454594375343467004628419567305851082890192890111989949290755359703474823722543055345880537291230924471158398846995322819753547961015315142305327081887971472101909474390167641799840589511622701642247983175810270127837988765690318672354746932624106456572907272037496203336172053226163794750814897237439351633163033264892494896794452368146738876293934698331992460963155742689428108383084316922175824373870309773860143907870871863580417093110926395922317640267415476133800959038851629185886290382195376460454273999075205971781571197480966283037843460400711429166095034430681192245824666129839164454096594807541892218141810411362414268092906020800438830897443370568888697862368538908511421541374993100151480098014374663963789790466176313096058874983641906209579101656834606263218570962187439001524940612155333393909129390836993214227560799563339694704292067392622872042917383900921451061878245111064534565089454580978274519449303481026329065310648834309859542259982836911612909889260845623642939011291047715374365098963964549655845542737643048147319459057170199475094276552569897308690794397044720561919423489068408447320589285476039519751383881759570446663147208536925184818417243609308522755752213959818128298019982263734148431773032771442486174610966426627054833020371185722525623595628390405575247297386333372361841450774013020286348842286413333571196418691951859821721015035832681097887574196020643446720072671555857560418342825622293033401340988094926551169916610185431971989300288642991372768862432067235477691934445907868614163173557844533152779870369516103751504734499944610104908471725176895610974033972375854672204715862697249270112215124313596160455356026959888520491140849238428289298341664227762257420090545883050403173918651977852870266224837702726418247115612847247178072050276102428218700426424783495169201166525863661526440456564142363596149282202093016466657515142699879140203457994936102169657079267388695245634908451225812198524051851536692712465659783308148534591700093176554923274227413920824857248647607021951644608852707495637403533869581949884632639009750417429964620478462526193708971676070814342199523457695374431947226319549870581971677567592447324332400841000816169461420033505374318750396716163083158580306778254208326012663115399734173083234426703443444709874442383055771149723707233559550994318544404462405355098484375508893348297990604523677666406255385188990164052048286615599611715435914608971286931566070910172141688139159021248596469301250351657363950964690113506889402176213181816264592928049415952947792764485960777856522227420568976638839738711795789884677539310634268905753078371843825747450387060686325578225430851369197145836890254437310431145490023838198108096361124727818563419124537236924882512886370819734828617599158553333291127890810341359782490068373505968932521711303587971406010523174461246131445061625541817905104496608703064590311694713821684815622980330170070198406675905957655706917450119251847470219118580901820915445170599958088296762522672789100200554379866640022524441346428317791905712793270976151659720284134022215587846840285164342110951065611936309990939288330496806411951959953410737314053550735079465247951368840895121661242584002620398992181675497342092234300826079821000054653471383276087779828733119069018688240202131645102494494274264157393551718235324276998742861000023982749743812311724102055020096807106195390023152984317751865721771998164478600449783290453483062086412747794436499523854542021423893627724467051529163947882803826981624041646556575290673977445265987257366048145691915617920006117187902118601139520394500469574638721423072107374700646593606253873817437571371904927149297893045806020385763899731083930325462365584382019915682663960054751665408372892410227342174327519980695860482844300201971840149866769921347660782476733247111068655376762979608886662581001656070057179672194270679709647316134053677923371141561583028392766699153977984461596911416961509027160704977749421758633469605646389739839547672704534209107954743946363554438802104808397383001360321328491721909548236043456637351436770908463088005833473402311809543988764322761084589003014868858462954614440724671301705865301669693136769223288861152186712934695393750933253612887237524866739269115062698084209640222919599062944195662353562097122828902255130787187704372949564545000733302971691833892463791646511841701264909668053754371011341046161285406129419511690844534483204167940575576464665671957382355476815297840393129805671681428059252686865857409932389215021226690376628119569008911734842133077899364498625612490078499813445690266433319509739040846128860060574320767366222604245565586310601927949548295467462131197983059035515552697551896865858683477527377689434044432395110123229953525035068258184745998003442538777469225757506550315746101628412048207114185320782265273531255799202418330932142640499260351286247639762964863884803604927887914421461784607996511253009977820330837200129135212927865186844962202107315614853071616932625400551058515847264736880469381367397506009735597575151052977347196430183248965685066356778315696905932682925703427234610322021394980650070995399091275484173841819932079598700891263822033290177876143923287449122375361374248694159695316930768293142284505198410002829875619221875918394234160653687841822145665810524801265391375031129603026885585973190241863447638983198461460021307132075994812804574441296640519491055440935870177252056607098489887814560117335421580765120474318918298483469691129479953967176673068354972917749262765404159726572119081000260795506168796956283855098270616766263411225945031752283604111244702758984803714454592909652655513166631470354005811100006529912024088639050527162370226683770785730930338836365155228490099497452338348016974375353117547626445352699035760217496808443535623361950539276149881524121062151093330837246535374685831857649726158839874387488300646862958027909359641874948992019262014412994065510736905215025374564593253650095556341813374529044435484263495388791226302113331619313780334433221936767062662663628383354629113152341480264334307288329784944029379715392788777580734930375899367244498772833310360858557381455519535612990949588901631508689755164011330541697055844277292270843396407890860404016873627233526729468245693405889011559594295740121478708751993714769834696988518493984269305238266618356828374767311976551717296707166546848521326713994851038743013756166843293242933265155994000874984734813315566724188307696242740094862935920636261719550162652878440372755651332566481624966005569552492695198196094611344079623688766440499483485459757894223879951603348051637416634340407500344379593650037566567640805125151348798093748660967560322582640516119621340713960532601428538732202317559755696627276839998954929528516008413874701469049897007571938487831103463371595259620468038155642472742687814899086797149014196008104241866128036758139970394301764897811560310123870830582043325388143015944270021949963937452385822100590804359598680525608656576182971372149769760194043199771235272829988835927168480936563057213274902413478712386971484630544198727324275716892442270108487151863269983232540879470631065689806145042927901775706661113498279584044157781593769531438778626981775335084592432290017857820531014151559049510580177342914210675389387533570948228726558263218311528024564944900218205546650885340535384138530243176013148993267296676918547322124959730764577829950346992617396563460173155049871657605906628651607892341101557915829133814764161420201040213370326629068386907620418038313831465677286837975042125009436733590602210596260775060612577079832535607154653359553180524437607746002022255063272325023263051923645687071044251338526190053423495662237139601277909135760487985787346640225970943278067183728989475756829918372123017507020938637681165601412443098818415048744877868924991738798928775955002359710091178901723349318286133758881005215288191053918946512587161514280345086289165264999940623418221254580991080078943104270653173897327561812805488283103294452327563739063306288158128470217069702928220243243084650632242479985382073803920368662109360732763731550205650256305957587522904929824007765086154411783512016547043715165910780795792879822183505277913333566324011438511583317005852920071945589140764818648863814579735376298257996615152751937129836324827442699565109543260249145764207658870856472990130775496540345230359118480459772835745726749384822363972126816768243821681590945286719725756012716324420918205860999849499866597751435630138557897010653402247773430428112424705042640984821696692550653641512803218036266936610822004290975881727893902843605908450262632163591120967146927405116235416171231686406683612378137830500005418820157631986092646907739501965216073917040357275196721044170141150163823887267878670091924949063273994224136201474308609093472178692138186173532342009849579305154642653780462128678434321241694061952304738907287232464065025901444612411797706225843212457345100349034753225960215215341561070640394056229483152438632083635192319177461515952926822591899793876505691686057544985129404191549201696031358439343317843891262653023006138014460717564400130149138483065189982942632728120458050893525526927522394797875824834672525690165095254345280130330872800415022268648081511687029913416433920975571836999985080797177130874851995236259156686771479219546143013918638833178681432609803519539630694909957688630063619754986085160540568193885588786787209851046207785000985715781048242160052242546734057731080469899180608843799359670066537433646361466606095267521161284224727818291858703373256848745941926772047855200178980074917984613463156493553351913649016893371176307531284604615472155210005592499942407840749540811934292670177806140903259280629683230778637453842893907589247068922009207300596602415953895095293695123942370626897827574682648347261886310425436391779463500876692047343407012347728854634677830176177116814779576637572781227615335594000806848440539294174321022391551967286565186982298052762448752737141072199675591425921265598540587265577614869267033757562065084839325579037767505061421679376075255666613534588500714074157961599094406788980467455820376049245858494977652388476602156949890784570239219505477227045157570849070201160402163823020227981381157151347308134145964074118238894382496981826983239040415796780376998826478691334714838797256612302838268978045580603060414364215039579094122123033122830084576798213501068763502101528231602859682521335187490878147375050932009430338630878274547059277556464455145451380056583145131065852593723615586799669463983586168955080742642194485274570475453055010982916629752688886159476096551847869168694529796975783803054143377780458826338514222263871854029535616840320771158916469367927588523749156339351662660901945950969313302526394264825204503127143883091061290774035494979713699582229305595658185040293236065920667237689181741373198760502788536238109030327676809991157711529535668676924798449892445540986194863162257843498414050148215706109606859578276684138803100632027064806433628112855609583611426103882050339998127651596237656529452065509272059138765960851376447230774384370271782089634302784627581204793665121664610332456380942013862554427290541951332464598855806564180253897812839552233188185620713624363571986813762567273454133937513138066258049474805736583630405047785237830776871850618251499788591567265836276343485861933390564481444460347915167413959318051782882238103292057292809254074361949396945087543920438465789999417067113043893033079023904048571701381418438676168209423768712239950515638560921349099695481236651992726184247787158707080915180603409511565422288736303625748632058799140992180012074856515039923058898872729828166555781646406030171204955380477197663019033297952459758594297177178673687947109664752443117946776356293120245735821098450612046281771923769560177059012485395953949342187267492781459738889299190574459907070906926471297122576041243226652752861126948624618802788836467404856162864056632832389771168625757480765750813220245336160935909654287976153260233305656772785341233763943367970701717829763271509171446599937848588315475609207670279465671972104813457846583012598827054732580130948983159149265226799492885073193222486878181829083369892622028385538410854484567367957657846166436707850073980296537458502689806731795555737121898108146250902340852616250160142360800135337430024248657021695086218042784023523930962559666123372507409738657259015170778758839116378966229437720875207369938607174055982610070926260583044505862568263437687342327706257713193013913607324886987502369854303726981327884077711322839823808506438795606472945243694661842619243119205791529897583571132767193880001196718500065942664987017881311324755737612807221894673451548898948804776534548385254107248373635986379969960759581508609546966473415508035574623192369819504165605502359601864746742643846085770880734300917936570911469123618005896711875706164084242321595770738364061234039164236893889142543574462170649505217218158732092885609104476512621568792396108555156088988578391931165778245046163485037374387822609919480199780909462367823844220393790140164683194850596088148251587213522271253049758514026333605015106016363024010130659079099816424158919034347876364587190407146728913057168468094732413157913388372603352257870302522705524865989450501113867897396274343103199598520019037755054156894491865939405272620496016023743162461370649914579490066633951987998814162066147736700576049857417698270279272748440875193753797586172452761059974997639260598879153421454550532792964022273860256388238586550491637976053693116733547547848120534660181778504322982687326023042452691669114957664479217651704467858264733632774513701533420085456000444916377076019326312021952757810039695056889477530755081504356165958186229896215283871743467677574630116142605287014359466894927704717541069023323407835650614946274685433616174081866919165116520572162434483467871369555222168997782083774630377651633123054034548209968294033403179050553283566953343937203690456910758683647193539728828674984998954556441217454517792960927656492479758335104350901669601137262508624956202102639561729191426141034975641996796507234972988430968004200324574490168679550620920821715623385306919634438508909723771059055460996979165709390897953614123970626628383746742205531921758549553234904985566553263125101111763885811110450510341973165043323450309168909157427664257293212727362692677980064506566556858517510767486135595157211261383078608061500560948037490701432239358252237883887913993625529519017914151725176937622356629811948184637695285174326905744098094153308550436922404162710112192398149285875823473185307951075580317838604791404991027302228073022304920659106025129529469724809537022341778930053713262690016687001389434869474045560119897391418520817548552476598929566294228547519121691869653975719043720431180923241123610495026704742572747824880493634991410916336428505045769351259326953748287310532067481533263225107814928758222387864411184941574355070205354432807402139189983996747447151133037415439021515808623563845441809226816534019044344981846052940312783997868495444190991245019628849911519222621921628278163410397806804088686635858040443158880642476096779243827251522325329410654184580160577245620785888804688178173812879668089887916319712150831901523508288973365750715762725314769730954088713831346624777800961478142930965084502531767463119950252331179395359733806957298836930266158082064554310226245059613557813922667363694192690592611319410238477389798946609355808367655904362899189620344093375446708811648977317099435918353028562451382974813888756167753317491484908886012516565081398082820319003846925398799207860235329454699974894570677147290151517544088694733200780719939263332029432415030414742885113396721036543309622309845592735980901215609719956411323501688888271113468777358545502193406169369720197483388397473921608782262721990782854121811175583465625518660131867271161142998358988436587079726025895889906844766843251819494895224716142314812499173806690246428794550724401108370877138097507514765592050086967587057899164221217008406441787969460501253488163212127877998739664590051226960847760895132266749677688174970406957913242021711434752049143104500745337618799903438453520135144383094270270000716337681665211359684794860074037435470495390719481556053878174824234688074545019307115918917243371281902214903965039808601397045162898542270344523915482405709128269918918132050716560736336754147051568878194338922378841030356185501497946802893053118627743261719002811627452111648196089081821124464749725093289718088930319343843337908444843671550998307029511400398674768672591664016117073407403814452944738709990657772338278151616314884019685739700873835634970416004785130071151345522882178310184379750690789655336510992840847646633686441431635766125698813642310480980206032204410161342600012870749895891644400151669322779000124502048750106559539285061558719580600771155999354593057643407682467487799278448501196620826289850640030260585010935425400194955041260619889820414013091201098780115521903858268180886654195406920503201004906112652232514400932526044455725764969312376315526994440730777824662182862632775325890779018479106500157577206980079842352756584946696041545141412133307141575062951799375538158198100743635481537127359530740622995453739170594170756169367884111405894657159372962197558664179016281778611982811853301891889861017679402205797660454541479242675569486371571627445860005195631678176634404043839409851442748568101576736731081807274963822359925268022533217670699234997075807287441948228281384490972443284640156989655767303725514839328240685699415173426550668365786384520182294161387095578356457821687317195009967956996956664809595958675586591939089862110431279746164246638636653328860400616131959080835694950541118305297409184705018541301867587183081846995400299136302745049062871621297982005650505924590837243310628977778010642634430112972989555051593474160007084287548129461611370404573120839658742645576540181054696248108390932745510184080130144687595254324093641574517544826127993609789850776003160864705423381476108657061833868830699418798670872949643251607869186632434229064852346347470949703768455494561563704010082988934983643315989197801881503588829656050400242463404893832656576826955339814923207425498010973014549408112101863224740212168430901874981449765528322497412888844090803640035985374877117618014357428745980808123391777511583183084332627986500748393691382805393381706135701839223867494480360205110843018812188806674228710171538014417570708800282912587745225552511753352857929870392475260556267718355820355660989714591360892353384042476109896271439328168817496791298850087460797768927131380001350015560115812171872161194691214857534227117670352034969388666454845619921938510573439562599492073497186286636352782339661999480634375500137063855681744557987699336098040283675259812089056285738098391017564475744630833523596114634226291345376641266393143530103018870979216448714991634235045301932915694465705491970669920315412088064683797126670740837492840338852592524116303042955219353306162531715838319774172667604821944217492479221638173313555708131159507899940285356558534802096584428417382965738647840498824178996848041069007763753270861167343030410263499525240268969011537498947808730306795313656131975052065054491271964207877032181698024387368154224382197646001048583658973212231081598131640691399701138410204858057405564511765157058622460041342807289055061062800504526886817857379738474496934248493500544121251379395996619865538448028525987189386135012638478642170972404475379176888612635309393193948460892950457392614996634921117884824575159140447700995548206192585949234553392452273979966336207666983643246178943327808075558037255155223312044100715587170460572408250441474774508169483983997213847725277868578004811537574741241333865466277083210719426258203015001808693499475786615987705535472511156618008647803952774652384685831200644930544962039319679574821918397259422529886822009173010242894502591632811341465308878296091356154440814544121217712997783923417654985805136028771636022566265168688515016064767178590443330239193929631824614414529657099346015460992374520702849650220893206321264159360213006590868797168695249025367544002081142400424914108065832342965881599281209309127047250347343980841191862972700739148344584608845228429364009262780513943730620029782069462985733172269012711085506317068315761945205859931932297789038857451689715418761269770959323041500775884637799065879678083610956117164306087325703971754552008870849440951263637273563816359767785001748102650820507644034113616521892409877634123814914391719498141039829162783410988768348688384483297940992990991628095419428844674838329032174195916192391921086902828291145819476418769640720015036884995341864986913423623064514500815152410054516674006419283996479447104566575297734582547655610687570557365857458060582630337997231237925772399046071513978589707257138411252097866180427899589544186785765699643277099882015634762895589447359483567785472029710015331916164804783351948582054581950044443144873287240178230343232940992551521075686093597963602941647951760094056342581032019281357491079760166741212826496618804124487561565095645238596814690392342045391574284124832108378311301769872511174837801014738056599986498440243884461933750888981123971115281063531633930736095402527917472324090291043835794986461009330007220118611704847412577803800569751821817597230220527277738763931288627511957648475113707630579870284170146776749381659614018488029163697045349650147164094377756179633841794229566249105061374821017345528094036608061603181515950182381123519951718469977722266533550882753308466785318112548585613595525447297053450455103264324208984767113947525843445782037995793599083374071792315867888680875818237951074757546634829128979354057699630332990637227900925545982614989186643951361608020844510769420079518940085232867763962255099649610181597873337965450280607708708057690125637943662394946708960938698025938629117459998302601278603721067357659438532268325314901862520473265327127196395159499864535966459357563539648490996438341211229922130319236071927052533344636215185631065875112064830837214749210093564215034830182211505710324556231106862069900203095302687487083145013681149581979385475893790593493407493839856243006756295220017462290585581808998539092200657257116943551239474134299529020838815199531510095212099312148035825423406734968723045467687405020719697581588920330366383274311973811570938420466282848093212338511055522003844049104433895655725993708934980276635332693515613482220883673436855488610467422212762770633026823353771465199839604378961599404519110843982563088833409773094866456678981902516841364927471148239811584288910911188890850734492185304307153774917481146649911714177584215209479360098921940620853201234441138325865242263048264586797109716888147741995194515287322397995569963937379854119745743618993632761749673308283859431211787341294408766739834834208358817988364859647008362797221063946518153227218325171677963316567442959384757470910057742105031179357286613545637852049417936333106694446467879363609162614291406121541884821048556638895222969132912136387090823201231318107625349410025461727533455340457168182765904511743901606913071569064528316864226008650009745390587766215605953934935982610844159458927644899224938998334624336948234496202498726963463295461605982399427308106965962810372137427661454490755820353638327839359873739788456569446457419379955055833560402714425528422244039731951790992241948656891389478958843339514435704552491442710285734552988919927367271850222832216286332813217782015017563432484928110459910899011613064712905729895371020369889615236318160588376894250486022227171576979425552202999571362515562416056752294208982127644175486347309726904993605957497615728679566581306826886371128095200472534783939657598735155002057219560664069186182209583365958695226191128931680286609421941513773184486880008568922603966239247625855562395580131210644426958947133363650752741023608668581933871334241655796818070582833902339056201658963119090541866496225699780140481992477342048003716819758175213803377215567044890827419205668196656902845215796006819095444523337712197097745949126000321163665721325790222748018351541211661537325851830459614895964554224722836879681737557947864135010094519534847671101661140622295635732637435724149992242908815482147492698005693457556313394730436904532274055895751220607126367617118949689243210390860372748255021534823229211097355558919390896118562678230841849122370658315771974442533469710934975597789143270468574011344595714383413800262969978244750426509423086900394904398648625533556971155286375628442480234026926533906513920440429147101280545105454626595477988155226724185225213472270778342448410125387682892302926670439993102827551082177113873509804274836078808449852435738519178316751273162483652202429744712431345276939120869849449244864050089741769599150225177382193732195460754822366209899125994408577377929092007061055383725052695773261097597561459993676254195681428668769050645828624865340665420719015648512088901323935403016129351606560997550607860792420464693396975005639544479270254068234330832073528846686500556414667135111937140491704359994672728639706723087739445376215116619243626380587299039448396251965693520532288842917157849559728411841951707528980940312886119056385602240256779594945722871525182451434842155313932745573396237210895479679073595833003615399089574056747661882772835217524631474178905881638974272709104061520994928998479989447403928680975094319004346679679333591617823831668317650153328750389942687274107198301306328056814221525762004320526476824499478720672785251025185462980992414622166671471482382691328634473765370907607896926113712483128082376384002314738643583130406035020738373555914476062286080040068764881625473799346610525039547770414572718346188009153421839301268049307889316930124706445405901074983443294233591332601325738553766904183233268850309380147372742853172792281628753961262606743402471955591312144796274308858298571431064056868297301847327546016003175615603869463405030522363836107085231538638694458472282153027765740783442340002107379867398956149894873810372516068290305412163954558022905208442322340211473671157537771550078720229376984938777276700402375228841491039251794801862121939611145770247628201577529048159393266791456399346019680304719586714372415922703637002822257155024205190747985175979743147382390464417728588027847552504252059947529845523881671609672819878573192565123282972678427851876851998293593211654150298055038011682789168449097294902075973199835240690102445034024939874638825298838907648430423362440337680616353855655807997249688242080801325667119638564934584092044794435178347090550531564117580124702097825414022842499217247834064489123842904841641021130535553240961721373501301597576972456975548255362075672390701702811878131980011612366956244485215990713131933427955519968004450426716302184168532288186065661794854181693584795344602167020494432203315079339919703990445468354620154762609544863839729654938308114750419483336873240298156626418374842608882823998258772266630801047376346878560996280119328654317700122793617237634375272513341913377023257578813119410738547548760216911586492805502830371393533393932785509889681179424095260887199509610537151387423254482097282271044832057338503912569508850593157096923118713446790381760703748797386559592129850935380463238728812696089386441985811285954740521014558878228455069550034347652096461233452974425771594664482072351602985032192690433158876117429575616042992097483618255889728143053469999559395948774742123129141836449367459956331940921332081093120231133154521277740359179374405130960804702162915067164802097300711666519320069253612574429320595624000993797158253568482113850132404931356708817004608336826451713300850433837961081880459849768174210226100408395505441352562555059380175500941454523739462144002966015687806170519089798068282794336468945170260301425589293961953883648206698555524914998607351259910352141205993985956194494504358677109584869036930219882248689626861765573878196673459594189778672756239682638224555176587811597867431845312961296180355878692750020312841716621983366338265713026841878349941506344309730913821790079253236383775761289517330215853764171753496094131633307206731482501302623574227985573379278233114794615046854303897145444769428362085169318330400870116271525165846212806089932809673823660435762595961334046432588822898495787191983874338563853822479024458940818592267175044570308172834969331098087911936325681960447301405613408385333694497518236868894754548953065221610309579821966399613015190315961513170656853331113504705668700796921925110417559267208164423444223370426898044805556707220237901708106482969907981455128498511151089032706349899066210132768861207825465834901809446985086428629276509796461409019597098540399666441582854180387773584675614503982416239828339084037522778193708956053180200886290362481576301373644143345502617643299069501432764196738215251044968203507301712762314517921332252149622824515798209461136313725483234898295712705298867745938033000441843449287295882303300807159760310090695267888149010007705128080261551794679033335280405827121053089552877693128700659064989170266597808898589804749435089281592021783234944065316331786609107632356499874212938320443130084623682566821499943337613553548567019763722448447838092540285353479770104714650699891915761677288641510599435927808685519085768315819610963346638247548947084210140541044768497652033894515594672382231885917480582479247122275340455611098465449028302043024610465930681996188157372937044191156362358982142960478707745997280399056382101919330395474789727574446289256455878457305373548204214616288833520084567309845047839358353931826021632385666592728039209023606930023563518536599097442398199615276192978461424321860217155390797053805435376146899274021771718406060164226111213486483826422818855095111140706714334215275637090136854001852202392950476441861589554673166190306813201763155103328155033778506834418416314671825026987486467333469265193707189696451517204619048350156187879752255267668301723697577713432383389369971466960374169868898813809338441696689742278904149983200735732066501759787704440809192942468884680050017353995544886112932304053175866060881581572019314276835842101908162570343769818638586649538867948052451681979489149952857988220493835134549252144278790904570086428617175546048943375531103120387312027628238076149131022889339153901034327590260472849206270281548073393875787388326454678505114351740472765784062802155796195337307878635598139929436150535499441054637616841627812265969831983770408354626435158392075854217802121902004447311372469959459396658626188280577476550598919382973266374493598398856072337291002345210127901423307919130977575211170637574029988776869727831537522617901809042996998080591659898701105801377158751309806380807869147023280973927953133892351852334911808947876337297012254198304485688955234879035943994680805711066084417129236789329241072438623168451710403536047476859284314427987131962780137338979549893803545324782805943491282048045457935068174821094606058399264820211611614415579939831749792034958681503152949033261167568721567037796939885406376896373748278901633492075647680208687890227578851541033529975325595763445808409772250318811595849965519153209349767760998711244058649260108859255150447506858978760777887785175766822069272432170239589761553038627621693686288056224561577751396938618124917496313550083901679481647892534461435190291154634408850076423961621568576803227492990432505605678591024761051009865150966766525020704341765987700164166922855752968169568641148596033272689716453019606406068180736313335427049217389346391058583212388380665959490660690258916250259630591249959006471941379015096280834712524874860701948174644514266531854052618615202274195448919641929489529369443906768300376867814452533976161192117624637851379157277591294525005149323877012128125980685652887231494548704554329446406331577222720977775054328875908420255793094981215069698003565820484031813627164831958123947964280720853437766615980787362524087193237614753363634682398922939682742627118803048743349395098162543444142155815635870940328830035997199065777720159771887583910467093307156152620082582653963226529497013004312721296413099655317972017334271747802487929704301929688247082717741440965598704610159440520418675793852225329958846984909659974096525750195028573276369245776116487073013673710913161786089469422233455122186443507648880844459833898253584929091555143524253315740437986269651424979115511848674508703904804540920020790135389945392518023599354349818139327522821798534107674870041431971412417360695500875183537076619666561238107586304064478570871389641130304245714311363462820329459485600393124312919632886406088132738957745296133368333969393573030149872225787284927060655802698135345940287246961532153171385988572062752020816688921409937007748583491970864593175067839292942076944088240112340762372100992044484804985703451794239861571887003371524090220461086563735749719534986168472588904821267036766873207052260043398645718309407819543143465548211567549199011791199422003325176796193718393100705132541251702018485515500347592634237051076800900549794945682171372342445344668437364219155775361068996179595672963144258067257904922211261535078176065078645726115443176171007848231039780966528241655229502140489830317288532348154868072898079892095718086259080866563416201348765919224447392523503167947551731321043549346005633046278634265535892544775924179734984824413029618033362127739156220385522550993403926983275500945769921719619436015096670782413039714804096780619513300247050733532449388029229741016072087129636126731745740089052181032277488995452204404314081129878204056972543490506897818244729613436216674829277742325769068438689344867440931289481807471470967969112973920231117497544670884514225540327087753412597190527317696576782309012513724063665622576402853119264726874459459317630936506953697164534044281950762458543798635664271477842474014113832059886756634902867201328194460240995038740536554666988299499996208257188993543348178770467755336726085752399680509921878985371395908912779506701589198863303110736091343476392740575875691258090623113570983389569420251423564317164179502364429442813845722369565311119208600922219843737947615446085354182926342383845113935942655845637851059031174266412281623002214355923385847681602699465698926110927924385683001583461100004541868534530446505915580681744939259782114473040846973557815221295064212062138545518385215793521795707060803312425301008400851425300649852399381752578633680707367974823468454643613781395628537411514344192518766345539583318034746065335078164056214952547568455166975399719446133273836768472648863743652714635598355196374768191782175469481794413967244583201852979586312517027399343075862841777662264621676984452368952634984053664401591525157457572479347430115428577306996792511533307307484243947109909208183097927101705494642912948888422643545390148587088950462557919359203782284925608853230254955140839005182136586363933445388229588267878431322803082377995775987618106987012662963033561536799080912498655994979217107189530107790849265731919846897497086938397901290113933269669777546144328771433022698070127778871705259197948976867348276856740010586655032738837843846011554730501968669030466501898934879395630889503663541565153571446342013336648068926417281444054861854291927640918770427324111277933140126014153428439675500964924851608102618124460713537770164350139129926807882818183188644946106461083019946424850355695592757954787971356151861026574018606452017084101141381137374140031419360153606969875767702788516324715255391503016997794965140849131824121698280648769758595159389728736985270417950452562726751620907320646472949966234951984034156288287748497615478394315996029348319663542181293440179647397155060950756052608323692926817397628230448827213264169242858629636595395655996262027928798907065320241120784173568514550514971148056268896151540188632681492330309346015641607034579844998867683148673410339597223297382042944416438316299249374997427786018108102900000426156201293248139165740779869477040745502985911315661520324678024343907275162887851466136290334193953483361310631246913569857870478213470475286882527341300594008628896378308213746358410532189302843429872852896408843306935316876205973004248837978339894915882510330380530201846011617316986510424925677494707762135523256274478036814640317460206649481905949435301987267389198872580971431797279107038318054095006014800326897992319874312979082316933521335954242198844255156791446179942117790591603181870973205029971874765325755324781560446311451593530404340505053204992410918399160542504400340173278215296908163859768200674907275905469177408942092117412501679369865768826253432341134026078484138049816137692912800040935637790918672057570341128810374085466369245968065852037373274603453977692590910899562405969321285091037341224290772374613423166986079282140154935022300276627260684128128247304077475902813665750883939011096416052118954449179288075962092135830990293382906053240848542529835261716880390057286770350015651964386845587717299341483979385043265702589319391662152055733563507676035511029515346129546102217135230934918598555529534089391163139897254714299528105859424808625216562548551221920753771348745406608208760857093554542332705832881284511424554740031989249571850516633507738499175547743092629353211718334944307115744963950961986501274549842540016758632416821058388699128130109516672437827506691462987202624940337471633817136023855090377212384677862281014611905269689272378849118452757643623984829312530822892641039699422932853013671691858998909243434637983204682034153641649152699283793980851690219094753841485876849223225759266069360008166281925818725241780259123988707083284991794047928779869579360412288662120580742473886262990853566650951345592682025989750979978866889109761902906522394894682064402638728027836151517356018339184519384011764389967748978016852991579898708974494753439818716785140963943196197699836686672100746373201971997243891378706144608697672687460196812208168888801751237208287158754483143005570001887892531041742959926710674699732441868362481190401229452045010712379645549010881669209421132633364214940514511917205194176036335559824952007073551686448530274288589008634632717634060905368153790129454930503955155493510541743357508504428096564984825908361860974646466254144766458038823162618173032759740113954947879728780276677689835761370503095441648066705165765310786950530416256457037807909947439013518474392791373274444487332524224693265500799915660329749487237541552869174544266199745517809792597259916750947333450404722259545046555331876943841301684728754642845204883583671318235077613592176670395966147333043328630627489542444131043234464258061522922177736744911335324780787959569546585594476787489845850475225683754765916395302167684921956476070276606033641959260407939304273181511282984104989509725394173904868752708678308444905791518505442926533959859779065386490914811647283403761589892544439752200882687133718106633670009526205906043384442746189315125505095785054036384500644130728880263266664355401211937212746240071811848372651385892716428319707271285261718832819845285948712975335632788531421637128073319809547964933174023314719964259957758503374609065926321716638221175007076097980989832696913211746388948782127917658007983149185754362175812001329532404810196234033963565614971294664672111192609990849277414118619439985162211758565783627544721896538057999731435206329198548776710685531383754485171912382800981068103380349640481234976809442457000692385241919775865398409835545311060421211548806126697632517481137957417379498826389544051371287179608057060421295680829606594817346757943864247420420920227724159069456657461730072049911611438694103224501808850343825428783445747555815654015033005467733214015022885273824242184240335692160492633270748225566391709831783974856778795217181283188290649305246375100920666537001427614282199786136661992639754332170258559537143548210820074552052160831174390150911301129042032438724371284265150737222670777456758221765642706612856461071078367931140924330121561488234153107198379322874518141058718380344233185254603412809089973291652390738287939268328445497141561961816593991642955048176736079098638547022128601252815162961577115716657739867827270970416255247415184572762370101431776227913215282966269170284103467369607206667614472593054455209278609978001876931874988750561244770178361337715524657078261290299638649717959917855652621893195214475400156602455836777911068438327382408404592787632731016536949656617051652751203469387587177766902558432740974868977854212276868414196319292104569338028910933555655077746973761585802456239438951879205565445207950951253639090010991631223360101601292894505128629185920673316084141823153558064171426179543414895582024689341121677437308478895931359209061135199266618107379580784409491540162705266079066115488147134202667553697386017130104833927267111785466376626236160844304876889583031369378932606898553741276725454543022845824921055857991907811549325664013513431942407095694822248474562974658753020435644431224493775166594838805344812437340865336007869735490529752644288266701023333178816419829380094362082296663688008412279931497199649910444460658543955129645368543381132054980209526269568151036209576116019381524890281837533265226029014887706974132943054920795484699170910408096725761323376244385202252639913267379326521470570040802342395090986573972767743845368685123865375704652471909413840435983564900470361629677496251340410668367154141072136374528454140383324627575052361103061719548512456555193830049835351073310248963722844553046343298570353625515114261450814911997798210423292028649699970336776688500468380615609733086050548071910784085508615490831374945426566355459368100651876365394020943875290341243399665698547676142894300035945234551513351057572844318986336712183323344193660278647743951760991349852615932563067449666060178388541062084786535201145012449725137907599785740192976769887685792748571288455654226846106648058747187565969933569832914108996749816030762686438069461493400950787199525126613711837955143986942746552175448893769772916968306989910270945246474683050928808144834002014693793078926483079232842129750916828128397600732077483094907971329277894429941485741254341904602394998215056046196053885646941253187707810720050479434452454247263278209466712597987353414811868182333101446791774203277471863360577487419373830644843295748110542626198344306119341141615668238801452959069606689559057841886907056758549493407643970700653629289934757874098946711966271358003538360627816945739543803518938865143445689664262510145709824761196918745267928332699898908183977407467306347394541818440418516216220426393118999242784456045764479692890817196055621975316341572055219827998692059770040287987783019309669898281875953994858930680201115421581486061704890545532254904702207294524297061188638100210031908643843924429646628634733281673928751233971660047096832966034144814618974575148706566635522475506981254949561444647292808504910632259441960732265125397334045317163318739053902732366027581271629863776370705660885864409611647542860477525714509327913359659352208577975382703822591555566282821763064388427337795760430572984904176630694315863044072541587828811222092388020359483492306492613742876755005747005743964699048762534160289153655753410656930885381675387527117653951787992691502761678437704033205579407258786116465741494565949068238892972724068339924021993867348882046363126041415092458651942158806142674794634449553834543593431732853712421570690379398879642405281499251730913767596492698055809435607252030613687398171124564316420196365586313585829641981427094289125580208950243512048055799487273496460759087383523113568528544851119571387989776553888296378503190834488667790851854590204190466203591711358076675558872104391269792724515407245188608514493258503791951653051858537166013504395620283643456577333353734039007913604350044835501429561845168431885944255701104312183311804804471300206134682501486643531001331486428071972355877208757108095406890222885276079742369530616803328493360065790176899920371876610658044670376706515780858610359592171571481282373732246353031469749940009083491609778265457472287754426646623627475233080633898241604251317740577864140980259350952886777377260428956221130110483628082189715810588662007385340674445031986762521431589515379833807191911174047055373619285590877112091814983503302232933883449231345815969852513956499753296222692789731101414679249036308998564742079570702592001049625741399114406069824373249925525499595530836462922385256683956353254927592655296162497158604693207936370006637318201818983977140705336903414118905078884893506737709954626231007586384477882873530299640616777012847670545748918951338288498197241454967300192684382194308059102836767662136177592594669891166476308051332969277316723639261289874951264774600195775359518172657844414267149023918289072733661230487765682268460976233119221518567583795109675101809669701694623594057371066897329617757345342211847947941619166759765531114479189443647065938539625682968039225256634839925748819251253703081898796180805083149281118033664622903888691981130134100280875759280690908508473575768286817670545153980683646379990007710566000969725299225901560436546229435691987283490232216558363683634079493776553566254747222944832507324410571636352353068704180100016404425307519858069640910590030311949477501555199502618552231511113753711912092211348713849691640789866038974148901014522190869629054022806874196977451974152863447483777355787280217212605991916743459982290804219607946075992969086309233960593058051653969499893226562337191813401804435627361830863168050795895395097831853691605507921580891585823405686985299899098198170810820839905189483035666761215560915558838020296889059315581259990181177585668708237691661373470963637600563917576425453182850856313922936843054467752248068285759644020018704189046929376278919345848058142494588370986048317049858717273805093578872847750344775850066769619434668633512683777277773180501429704226950912069675396842804186409918611583992928897434817577388361316107212130786132885900903005731763488023785905366488268021642008690150527418949711957170004936763976210375151887601536358032883030996812777374499124552598424653763906503329075225126182077840224918940724373173055871783368094987794613144972417214622738250303762358109281779918969390191966474335002329294671620338195551020729431712260117044609151924857508443641611353642050415767069594904346080114992652064857956385203506236532701543335750948607405953341557485300015554406077021617312762186735375111990635446675742326701833336727150875247270357629884930081741556976918324334319365687767991651322305855988504155539456472724896302567715766933024311950590691486631429323258523188238407556485014493009881407183513694842654618637364691328006792694191278893272320364995816823059811994618054485537951313963636560241146781547639948929369427425570599846912384090729540924651459551280110473208833028565260481663880342743631178214088237602018579702388129999914056730288174415405393740526706544138677239503392193042225195728526621594927727353956438229275962249666550089583325951062815115940359757035803920954490751997803085774284016784495883917022518309395388152557839891257011808771898987944678025588680779058752229536287269217809733399735467753164833619699987685444407593479860300334688422815417758196872663639882176869192328488833223390577241693084125110567597298281523355966969633348963591551196077987880952131296790265564298736407289364690965292038165102627010402774251110804922125671535346445014463360030402256599101022749658345603307537571142960608500556052390361846621887751638338253036847313381118817485917640450235450835663595049493154710362074128509332062986620052849716496292291380942789434218802249170680056321269171251322240765778020485588819551559894113941010784065716698064489515561390426253956509220407607532512443034169422138481061810124435152013363445341980144567370972971713630285636313604411625344834727947257821844241920619020319936037821659814254534668844347429511767568578634364752309167701987440268778001588092133734389680618085731561933223350195274230710099001420589799503449107187279894184870443699615548240367278839790890166535079361030459292959728585824424817821476372445829357677994143086305861218760505279600138487225009505964216680991763209315515661370905619579064481260589473859829983995204157670300727389363171269601732263069944884414173305960378462978935570128223927895075890999639299559690076119049554466216388383120116175654219678820800671970471317110131775102231535627234834242154524980152244444564319320755384824364222938382071517124648957466021089589292333550804447534972535956354189559747311764319947166723611672626001627928604071301612256044380958810437802517701658455466441252818095615264315385712122756875184918732028326876272408010050730430677215131138220844890986618471747632559248131907650456615645021517678310098441967992456032117722448135343641600093646047711178457999887594586094938024246948664864189131159736114719437459022707229422674959461273722870141900464848324020623144749034188662768812527488519778149606686053817569352053243713992856617173170677088059239718899179234921845277868860301603008045485659783727888461124018341375808083941309115735845100708754861485844240665977522201673150372643181488787625153550752660303104179825995225019095785968273125740122214460627163545657457064133546793090032891835398226121033243842335453297684668649530888521549606328181123228758884227892321256019707878698266607403944556198943934257559913797018113328740437813641624997498290793688546622747024568787462745541217667460639137094968017203821490991716307945737300712500925950720369815504955348039073000042098968931964192096805264160236224359964748596873756423734058749342975553712884290837392332149052128382770595872963214958711378832071388046062957464814983615237792100559344123872716549085377896674892062309999474236686947338022353551114153124842502421049755110431487983932315014549839855113473371121191646814419727385830724047341140244562849261894710044649287634924223586961709761288011285683185496533888708045955071618489220669320873495133349817286376179437644664446598242613929251941545367378907811510600453909637812588039872647766555414169774724416921538830679266171433036888772314071192352213493625613183612879908605676273048965829910369584115911703822596281419359721606545324193118073763728915316461017089206439336518083354649929190066347225680634101281469400323202396920771168704047053623102618878480830905805016611226331528891070842350508234740628161536361311822044755846314298396210663099743146157647632087500911552589316476702066118051434035933866958109192449612846003749330882164417594277292601345611147716069020217012466335602484713659591426159894942944032481361015653138045305765451304425340277520590670052581304858877589924615301449856049582360685693804423991756292633480535613956954135368189915142411899222062031251519569976986103582375107876601559028027554842799469334305058893739890785195854371029547307208916984226620824221121373190431096013120207760508691205601027122296032595461849865002138575968276995196195408303725976712229099570508857022446265713415599764934682547196515905559179841832649320792236544925970393213917106603731065004044758631893453021382784359405991660841523278484117477024047782599494776332455854287746887030551986732894453321829827285862721015143577527219613229506662102422403803126321615293655533691227583449541763900954520848582288200518797385378741558896706217816963544951531980681101185550404633673066494531101077636132348265803988133353280614217109138642128852539393323666800270091024086603285495324315686852895736833391938637730764536046682204722858234024446188797032053041601686327606131768527086830267004497834829340923956053606887299798146637324760879208820227420676044301089865541563716142184876535315436620533624002843196232571582850078830328586306164523101232667292510261603076440281565191055402209753357862129216778187887846812969761304001268909789675261577240290306405970939859034545215015727147719678126482863926047163754952830387304458436926955268031148871411445364506669667163195699094198141274388972006878290888068278612147908521390582119114541070249189352347028735908633694526644467789972841076253871416892336971662621564833594735237327366919595549187104879850882645907426877152922457140181846872537907619528062687135161912505866703649068214027408311120605499554587958376712658428651492084412174667296962887340649214932237525297006200332249232444419254010348413075762194296842250526419905320489544459639180408504229653134404243721126370442748033529583708723158216626128209207996898541746873938522721698252988706117347422275675021646850573835100322641079869966554692056168948979509591977058737698111329360248156331204988493114356558964179079508891896528569040465087755798975125954768798750328569239217919390817160958246401254543296746156130629576766220984294415830642701853450628640814384761112294639261219518620631529481854410893401876222357349658379102023292888859031894467644602348439667384130875419599532578175626144773306305815072132711597295512459293589911812495537608441790593118847479718019955470695071819968812151992395717419303129917494351969423341056255527143006612113017554825779278265983935343843068313002392053087148126454487784972728703932363096265424349866030103163213970218435835185333715293999402567632950022871520562085184036695226970224213351450109619852146617707517131545346487168197210243615229687521576738072556034533724250790815647523445778054313273999193390892706079038092684472483499047796894729717303889094785053554327636463176915182754443528933690631800876380686878099724161567464715416669274910298329578260189745073797626826760629499577009533092711177246283680971330407191065912527774900590961111761822270964160685142856921983125664245079301089661624103962239795544297600247142202724706350095222068657398536249664524302762414389760363928055085968483716347184353282738725926767459155435606612614435283908681489194486580995062609067650920229958353920617442055871033876242447909020002513714210479203951679007119754275660763977015762808307396730973379303808748202344919750262651785114165841051643246912608311421591138136625213311924439741441623565999519642776818283058766775995242583396028882081970322120104483123452068557142930500446120477859268408513274063746197904079842526669758234368432605649520163616364818598384801830009810661525009185923179732067127065982171723740139016378814168036730581076234359989055565190677561854775306711373350532362542459379729849565009317184772520316539765860648799163719526798234398644541877735548346806301204808265280011845162663987489237553931893439355592693443854504880355724792617870328964170463907436453247423548058814623379503733412939343527326821549318143819031574989333943651109328060397341936143786887460759528911024504899591938657843275056947504084163147972159968297340369750578007780426502868912932738093283466211669278078940502994202199814678877201249679410252290211102460732619685067568533358158301650425351919733998385215769938210295688597531667382376992426574917819154476937324059983669223911775554442272792857536322265287195857906161241698707184736041468732524286433371892620038988807228137352053102759305945813816687586566334592886955483484238534028328382627706269719031999467715865496462402200368833055258479897207020201382888867191397818084967078335130126910056818764510456205346639268907629526627095899642166418550749650004860217869403068410679355433483335254220856265125467796701223923275333876444414717031018210294212760471635027040539035983365048154799952356974976499358677261776797094133783490731470989824736776633375186947224677145197782013108953610970396242098020053001963254118098661105433603482384782698831219792128465884806505613882156873379031661300813810774023974206435930152083664695658838437488229013702897578767006706251227921383638201956569101906047205248090473769663299038294727723743717305489761462448916892604536223480646482027882272087840624243333663885870249635339205181599333968438415482227163285624230214110450684051160768416962006374112782476730048680720898261791504993749980068235766365135898145079671361948400145824100246322710695591623528423311606055521024154446794992486052571852947535264669528818020911974842132027126629843965737854244403283313241897497536650017716954470730236492885678098975165185608327644167505949239077475539267771876758288746080248126876418777287116594478285202395957978912240811142365356552455445925686841659117770632391153785922161088991458959500028446714408127689725908945503784904441422577750329482352359509449264462722862511515518708453933852355240518280848708265008303447226661905973408565978733549998622878742064020676010538528297165697622612971276535534633446608248325475512044484188757722671860984626166792402193953094625979113435320192822616909306429025723456670959216234063487883968250537591877024988970513675311670664865101725628479187780587859155450101827575189386265403705386696198971676009917367036538987191592682256972059486013886107877005769148337446813564117589011356103883542730629206415801494667410844815629008285410187500328941572946266829696315082305497489236132977742765700307600413481084730735510581891142102170887545943382800212528065837879454926101159666673358076325815571514721472384765495417269997996992514597994238014898218577914485742713381965409392698081949480081760593142339040333034481080330388678876823021051837143483550767693024970650374046672005098547875179898016608377724865365460697377926877147516587403963307100718904615564639048872183836021431441479018234742697351762061619156601565132021523161740641642435474920901286639611542149079687056322390920802630125928861105625166435559118148646301719893324424093770235398500633198254102656267934204377798411345313814670113489978971745828942122281283731889565185007095818508747548557731906850392955561360030264679101341666049579127871573384707628231895801250375478435796549049980836164302882250552900706992624418604071669302064260205947053775980109955475343511755244289212985338947738444821876356362176498544908175612027328000358238036215988459014387494370803922874199181225847379966568916187858048259318667038469877171846536251770820296149283365480127821010686211703054886208217685530630550410733012040373200617825695877775088835384639353800539155660618793224363731601536242684151472416743689993174026851984777543997355503193299491341344827043587332887880311769885704926470884676384924095074496119429302510601393021195185196051872947117571596133052891877861637063508923545933144702457969061055204739311445159181405524120419580995545630230407353834110459734453074575116333818929496015744381874394449355654050484140234210794472662279897944048073977035231887337124158503520537450319754489933333053175586537816600870190803106836663772054143866476660103117444966330774124751134116585285247776273588411439849409778517002071251150598992520632524704140586912483505315047580473449495376894215478576919998582530779238704098729505479237643787593045886605867583234041999485751172189814640834970784053298736751055548001017805932621713002183916641417563212253672902723539653970823185605527844892816495727782651407484534620553708715099024197845563452463396516634849890026703292485359228671339694745792719184191472016274060497450035445983925362809403699884195853383904683043007145467342925185653255915354360233558584993234377802120203551292629735671952138455167024201232531446711238482682504483794054976245200187277733467703897055426809844259272046201160603329728566563459815450656620486026285188750442328529889092194207331170070835972817845920591106814430781756802114153932409349414945058564253861995680146857160654098684688666556267727931599273708622133893974997020242149946157001601949847681885524095814023028909156097748175102288318070777061863999731682241996751843683315642467275300183628711005107237803822957703866732849007285721875441670043810020792639331919622286942342956656630431982269686248411054132139447219461126646465297949385702576683796307936944998699995463266553004635079055260012796694309898711902483610242699813917467896122586146757867815540575878651916957709375976714038511773297847771336365810362563741029919283573669725562642857402743855510685296679610753193082875126422263224806392153722796047333737925824671272803349637892249004528451155205706370350240499085439972562426162830231165707693906295158342179781768026326205106912041781768001415839280816726631563833192337246194071785432856803989691609707380302297655383699625890379218428809313935844775969189282874788810525829294209804634932007086183024233832223488072503446903543038284473249701844507926477344535674259988442848947424802750612756475613054078060806714534285948747459869130132606623867894055647648374803337136847282209165261396432138475900188696551594864743121133221003348138957882395279894679454995452945782233198292147570046177578555680918176356544375994689768725547101221714648038295219096253648754712058527832510832388471729833501902850259539929738580352347799987310946584181452457663295089635292344732712286822292636965686272687511780647464206986773681982393613489046615532344261677253643404442681088037442856603433333476120132250514940590241527593586359429042005337300049108629641261980124406299972185246017318158400632302558793518283662951382071335919374868000098794341863762681501744143233311357380218372434859772578844789873653015243718040881100622405014544897188551188508193575555118678273264010827867521917603136682655740965631289888878531879624433001571570226904031073620551053757401796334679707703338776958321132575906240993168742556867119410801375088815436519803223182123270478445337156535137278678313275139882374514979683220794869539626807725929108414616309380041547606423443879203203499441455197512813431169560226606424810896557074227014300507402510106229366522013079826337146662227189940500802498587633758807173307208338367352342705129769202220915453825780336305584591433491894545180947802064101772231044085425095495732694000451872793148426610728770101721664809756641799474346674429821347587881497272775481360972567082682275227378123451865259361872840308234110892872826585394567141972680035984951408485555320764895670016192257614971179175326329196863197293290607997937355260818094116604408780877983802989620723700906769066207602664572557146604165687626200070754233054248712217798356540299989802424481105643670538395849965585920128049386430305601807819992299656393408792741907358280890808992560566825066828553810613997853172206141022965619054107341111373573745719115916249731172239210452499442030730461289403759021888603131837775082352192104086721427436833684662991142809351329221774034527390711270369147836738365814350973278953731602085267291325762830574058392254845313695379771808918862869667759967333381010097847144408700721780267836404809659170370067812317736778079957783779094718862423537552038144786553008659636608481954236413060306872682757940186809225812636939909389440233015051358382350696885996759484656757618387452964050648558569495263436200268458616625616360997483357424919681580355292548539767959707292935525146852785588446548351827718816290281659311479505912397272178778301747291382565903730679260032858936128560125819245843893916219781134537792514967291238646195921910760993208692023163743915867344424211277082125419111484565004676311550659274469564544758949042006114760816293238980124242586412662899368193494148479237036992338357316703712346759220656759738581701454699207390203317016198078648669597876664090859516385514611913079064153117786808278247354319506394892854644493596157350234782864737301220323120245176049283958609151957909679907143586840307383126847363990549522418091707623582769597917268083523969094027270309958043737180693416059072726549705146257085069296688617956763462846229849714505537307771089888494922233463418829348961877652017374727137173132560400691805494138223779237500630851759141067678927236028073055587159776924915725079003510919383569809221157431857252924386654431577109325401792845929852513264162695898621363798010201273313622103750462313290211225276770362604320877696645057544251517072036595066227775361901852459680791501955800336680573480228077855213166255152793075575433874102823151697980465473721051833084184239528303784740563942911578016346535292160839804017883769983807846107741284283028712811755646313555468524730545674642818118061222857470398403611808490842644550167499558694800501319495222440136574254102495638143725046560659155868269972156368216674602375932020965927371766089170694752216823469582897165612621950268407427220883745270926735732091613949180765700394491501141125850689457717130059731520544401441263268803704432970694707017529203786499475137228351965818701753953778225414816082422567558555263248327327036715645833510426437798025737286889560931735715861320891932007318344736422935470661644959803025772071601843110692809853053615336437531416952192954530267726649392449313641220796461338787819649944546982448406749058717182967675807076559836836301954199733572109161306771625774939444972076337901740978730178173573881794963057993798419783763290608484631308356226935719017564287523611448587619064849919921040232801291533042470362835233873664282889745255839962962361413158347144991385699205844846764676240578983209106573043029660093614905220341495129456315596901687530035798198039764690806127480503576248212840668239771958945978287468399509566252494058010861544756136905612372893790806310805231463786018223725878975937076275986222857956570994633695703949900584773750539711264169171059590612197222800361648316391525246319787938122371842240198757728801259097598807779921431574533259694827915727518664780771206759997592236527177648495030626538773222232764314686870620518780688613267940576939896243103068655758825929467308004492838660005348068488979238949577279045399806287186130349968759143206237589834845406868409347054790981472636676206212247852162693427986714151702852410331363109548183237381652987825158699916385960824172444192914811478209598393833235058720252387296339263049385276024762966191855671105586616047006327188243993869855495087036483925023924398070040549315054374904253289434101316673305899349581226571257900958338356622226562368008323420637363777912302404113864673871196023794986614971326199861306759368939395979478039924770229408224323531509292825416207051285022843960060762980206585761372790718780815896611444090666393023502812007476811520715273230731929070124107171684561089423189034400035898701934572105841107803210521609143588560060337480432249255928401680587831686463382050272097063712557307384502904205603534780978129129951898760569907841255901382885687745993025373539146691582990493110453330050529178534646985244877147238740784344056798472059515820433833477870299498447689780739150357696728699895839458018867550293707285059019400967416926786091919929813567715820940203486957269780977826747086101009077335682390383616834584981327677553515926058547327818506066923299967515050363719454510616767773283688055875939504000980144119491580597467834782868471802450407815970678057180876905819651349498943041591180140205019997474692225331108354024373693904912856454474979949187238933667182741771555505959548118979801264502180369586558192081363583879186346529838832407877343375866531721682063176449237862260101952305731706102432034707847823134781287970334770105796303865836454776485347806364324085471283570252077086873941657650828559351784222666267891963383374968877143299573244773812023331793207106193550963364514621682009226304711098153779215421524884870166756864090841404392013717469823530433834847384912339567722243103378950035047829671951753965415943884420514628000191878210247181185560482571780980641874922968082205420878820165739783663484122516329263698719016020129202487432936347290219500496324801509827897912205821884904212673972312754482968642399258606267238418977463895533283337112096495634280102485930878458403584622464971645571152867167547409011370618335684801412221606352585390813082866086764623838866925677176458663041613139524416735452979676386237141542949316334884306211224985228360290103814332352987106393097562836103687883732264935684545506072224821763527840527308733629397310402670165493212683613435316481700229296066665207128332286825063132316188283934398853526480715386100713544963381883558310730480202789957306168899759916678958693134942212970781463152813649239802064935737118519149651815969783464168867121927251788512418500387690532284349277577068041583511022470234596921381353255807379036852577412613280277266868144851127945918273909605058910821664955114818317140287520742986781541149104424873921212784623397082445950803924869036940734277635004589170736338825901287827848534899414747188214203225616105896518803878638742917355916238600034213981691684947458109508385608853686975683192836473647496043621256624793985457880812955906207780436923560267899007757273098281428359006694054206317934257308032759792694137233948633288408807205772385396323549636147916490581764495533524460378603866637996338227048625963384194788701821630583077830740435226820301179011860825076969133735566800990464610967082929192909117370958499365632490075507229544728756958776946776207161398091555659308636940732449971541108185264286714225270730929431326761445027257266454986934987938615080154413722774132117915905003486105070812310367303180318422936881863987564018521797336504169434104720280968607278784433700667778003280946795881887755141800593090461592933673830117004951758780639612488105966745325362353916995613378270694285012641652695900109855186302133258121017201140300010666496099304522606226312238741051661350445042990360522113026360821980682606955942090454438741546373050473150404814161733326524721069599516249325000656253600605081836357388695324504395464192138472539761935059240799454232099970670559718746017560439791200473929467337627728951829375578039541738968424123473414723719821667778669141701414909249137866741424409281990305859699836360677617757912626310492841194582438958450673267646222322579067184394082770616283296229484564468401738348391793533385707577179031857093699922548977980751810722971082883384951626132621006840118798148532110506969276823969312495140473742147121052550860696760179166722768237464100530733436481079957839139892566809898414978873055042991861080480352871859766806324954953625942755469446197269936924651786071902778638559892314422106186195902053480874081498178437032291615849202160667862811351664077238295843653372730273770037996004917735036718350900646438701920410086902025258951031212463663442535350074416100698245989242775228409701013216342575500367770663860059087523754306090226475951049017554435709573221306390143233802938537896382831166775624458488223069732827375411743717102149268642907643482739948165864688263620942783956236423964859882638234354599543711929914572729005127190652624216279774580962033913747289830992645545872307139446119630017595721251488126721830567633354174444008998087722257444417767794769250335545211623297855868014791767805807082377636958589800020201821869201141943294087524564270978306644758029583487497552575827930415108746051345238735890507733918303286750207228682555060571625823251065506096762942382235632975708791192928196525616011240153500873994341279959011916472028242171010773396377235286871897524910420856157635611048707111040020429815732553044537026158402476958853969093424376899915505586652546372536570113945996586726606394906131747577437445819011831777569685287700166519739008459085476813175977689070492191088689840733711552850501085400306245453649965383345749895304565502958336502872431261989362359040763640816407920573256818149359613559280181188462200764555300456729574946113752261778604554408822189624390552890955106085391786497537033592571522931134036794661058750691065325909215164943090111152386945538465399456770430463450292239961906156831958419995630091485506643604948266587032518764643845817638384040987884322589213789507191087435092811723741752783792335377814067014957934414746880328084275103938474382514666939016610751302222111583286742569656311546901865327496147647085199229428499603618217723503773997336829691622372351930286917503767166034289668564829046737754089088977458041955989962809005008397943059777302458723883278060326549107559372215566951223648983673303138302839481698149289026587635418719752834270358198423555426558886298645590378191933937193139781052393657791716544698043410383072158897883787297409185994615519031101671259339199650961499797098766642940928208162257364180009776948441192610701365741083680983874275972897288794346613416544760696352002499662050030412033432062071721026752779244166617247664644511196677940843785448481819490861942513268200254579375563029916955062201862750959184937291628318509545355045445378708720606083473562069859429095027435428999002044795675201943916797210625556317806278052324010357481158021770211360444873892811668049128786305659003655771101380553369022547684179745161720977983588679011208666718296202419230822475756062487516635361466001434513318338896580072320130923429778801335172842074134214843916932788783332556816589309138040501911387702701026976052656509008906246298080358510188870363756044282459544694158966554797250073405139488701014893243362508318281822757434797295219732632731825394063842921874248471402951255318466374253783551815762592004092080206265474343846458271809180762754179532744429538204162844970451492951064903532318252720360982939841238322329201856784989260405005110756122576628550810739161280333109207029744241857860197247933898600724189140950871803905334726441903930305391202779406681087528706925624226358839217661434785419186888743168092333978284686765299516306277173680618132684226656524779938274429236962920330567736086652246897015212733833288762392084325005847451382993009500020117624220501310583834503847464896751700048398776937767360200374102114989850577128373982662184609798639312649270160242028708792999686418021770817956777910964585490878657606175777976177072732833252134480651549406956870982308105454151022077200732354791832980133657745460881758318262312926287793813759448297387887521469474713584903769113580369507770252860848825296667088492670940041947343473600785495299203367131321004404906041661212447044796288343073102754491038668300333865003434902486139073284063913020347980399787581477434248719097650191970277565156872560978161806168478641046331675982565035960165774633570787439282925383170283515496167097588165625401949197796935188662794612095872240828636107784074200454685291161606839645966484230354384500488388844139341723303930228944056816378143203618007587803001246486150733807930074334875011941167279790707127294539092593900042425470439963792935310649333144433199200456284435116586469977848281162429228308566818480214861725520678677296218955455872506875496799794252278787050456530773708799578645722514797107966830171364322025973022380606211033152675519260702024554004039355021955443835724744257234537962470358993843847001849609680112768358570667795862065393260532135818839652257553313844257664925386976883957216128456803835320607023764269632120799410033131438830604238710249017023754531062543518677677160637716771936887063529702194132527628624768692957010523620883077566921601699419916409383247827944663238039387000449493054880205750353391460773632618285651765812919191733440780881307945753636170459698831695465673540231267693115162856811033863191510829171409946503295050400557073897772341028098039792049883819229489895030765647342333172805092270794331034361661195016959443185008459484398987498272167261194323057580406441217716588464676173812000155477719423918671199549603836716789861029507374066447322723862343661253989380655311701655443217225371901627498599426780527829547564534997105668824112916022421778516489924443138146797306021971301879966696819094023364222720531138795926052667971242318811464973536742405697889460963423202874508197806107419425904997446669723287538383500289221098575646655207560130211783190464601130745956170864450589940208521235219794747412273129053392349915547882803854324798191159292028089912248708171839909739551020789109795839604469402036103645763191334431991999056090282001619807396823463643961100132824218875213326154748916734085564603831499758200827466677930445389540649069962933054609104648939290255060167072198485920903386924082252667193011926097543834474985529872578943343499246155144122837441830373429151359128705543422548729708704793257985041354360199117417365215952955627484327965532036046545677480211365145043311079648345859459094154800568619663928443859191237309026921610325697820434715600849273814876610729812218209560367469640052830877150022729294690655734524458608374154493100852012904015165652911998939893216402808432713195559041181585591736179059842437320620950798806382373081476909585337672766802208578513780828117304534251849841456269160701985029139082837590981376180586753034063298066928873514699455872421022190678675253549160965971744996135687379612745493441425189434624473056752743418632262711249607195017430858812847563201836382586123366328317878709910621542031643162104572721697341284182918239510230505789831509469902511860247748314701034539255359320060411965709535327249044031319182418117428669229179857676831234699236093408175409684580038091812965217895385891129269227915474053307883927263494790906753407472478913460555271875477586339680991788103273607355303580049823077161349367263780816787050391127740052822236337648862208735747291768567822774078669426721787862297811861750987519340396366772615795979608046539700073948555855932007358101659084005656165399409383742165821966806029881853569077146736583741372036398107464912382511491911213441154788838704748302967302311211950727562706717088002007382296341135470447759143635366408848018793976527313161617377922030870387581146650466697922082748653687258973417201296319812740750461714381290213373974472816951997509121237727983840126146119641932496523838258861805727041207770382404306561347351403631292570041677159545461235629282053893336014079680456790628182513167418959572495362093170978391691468254426251286565521250389867499989709543807820436309391253531245282721793065660281947560832276939942691440771566442857760855328558947236930823527776217842219029699940076569101402797724366909559253583855316048819068062174587406315222163296665358548653545307355383990541377439414976738519518907475991146168270959433957255503083948722031756645997147080083555834511947129298265502836069104908380407171044818292544165921071841208054547391411269850041289390526962550853220043787029946475601983682604585403289008340817350305656948278663433967937216897756336757327074893675286788038631656659251586934932241936737711099629278834059962944500873196422171256672726918822333301384505399594246570868964378372452828886445009046952552820014728184979519511659031762590349500664547654124265102346785853534406569267085608643088035303104388564603295817698926816147791561641881045697384792730692055897512995909435400611739573155981690419390190464802747964215251480240480385728677993281784088037792446902335808850754050051974426837528729394268279502489967774524487680862033818609848736117849928979593665099432042388916364359789214386421014339358048090779006649089361471894580600646970770759051036796737135634633953412481639008413632195488718882074176283735479124628476124869455607223260095176658414367863683909484043835135463608036398618234380270316779466883481037223105109219834931114648109053785199272307840815002928035769088462452205845117045121291153616380971427020926936688306654805148877720068401062214308656309689535859204803253909489169023699952939070628089480054755145051127138998251075067358219801458547015696864933230657679071811693534634658016842980576278854812993108717816061889056418296569657573675851593740370264288447322416467281492444888384634827263238416799931401676664959259924003407374863965521633844482093220100679467227577961404707951420158130034157843631858357004821860769481194395093786689375145226864076273880476291279739903408283993979905567980922834978893206074249067622556108431524256509345286181012675907345636426292119283904327504705229183433869572457385702496047045191995497668202321301832963057105478950865192978489948935101755787957285604867480790615245203368572098433812920334133608785907755980790939857289440153165803457794191228553923503950501260658988822316214197959008410924226380002510083113884730216345534032477456555159807623496977242849664801547298464458960266846365046405926993206784706882414096403856706689939937840530088038031346347604751159386765599807685293121461716975625539679416317110858673427722675076281492160273786330069432124096342828253517881876632778256948295816389691791934266171459982679500777284003137134240770118040663998226010264107283745252817927463313314567265837844286709918590015165369309793923936373845959484066606000550286072586675710271006448391641875555496204951563472478661199120162537313640123270427749592254962508605272425172124993068403846441788945586536657244343838320010804633976418347988755612163366158721587467794976793730629556720854479347701149620748329095750195020017310727563641454846906260998857197879473214250709555924692951583687117252007301886737386911171535626150820294248100792100199387403557336287386284089244350537976374913352989571229743647211221563743666273546818909855341551215803225090754013958068968124658024623631596536849111776976369968444997161956725187748827603678378092708394750354695921685035299145073180580549135675175725049174100085250992655102334024261275898253377299579913343268820294524408117726728367666132719176968359400279443274865500232514353753781774118159714404311316019246327511597125495393459887593550210966879000622302383038088120611892258469568379513895144262775862391840776679413786546102977932376210646640879058606888898758041921735004892328695019290312123143713190550039164152637324925197451899648181012054711916288789768139416858549200868559860494804618718273118633107200565529664673783563599165730900678289367376715274919433167828976689100245856925208990692254773953183687155475810324052571597429095419422821437742708312948394842306056765765558411749101280329387502701904852750973103141418759785283663475918240643309927981324415474299735345283808901785365019793947472325935391308073522476585638864905180990016761961990558097609284258436890799853652659159246490746594026791737579048784629467339295687061247990264735546025879246336663768295942076621010662215479693052441714354982438163144251142324224619702315894683640841157992542714472315252042766287415513715681263544828985537591252715737096374630163727348184692581108538640498899457087588901872070479097395069552254231678246871107146462229796092617349872377594385914851071969239159859793540021566499181974154069385142271788030129974882780669849004572265439171827633686763826551569411384271755788233340001543961568943539503988339804153647561896589845689740104035117701929654419683633335299228094220252617469066795481259760095465635543020025998140536621103732553861986198052760107808066234562553333044370469755126849187074115078626043890822406559273223322232695047703329583178557581877611704618003053559626926762064678967605184962451542303651513583445510215917017032806854881005039257780784388654787343377219400000286470111835121749361519167962896610972517535808989796275512475691137500263470250036145519599762183163492207558472230259636895360889434450930245597611539315622908615798538809634283755417427007730002305112229274978168648811134590339021055927950513553347136230128345103095065882945646142312418807029395168067398116416617770089741780698078463267197715399988626516940443851462668623237252891961671805655869515203854862000259678975034490499395139227289782939523194913179912698515568823513787918209770309376814330533850360827883557486255588750772302597039467869212801658053472093327464316029767795063537177226606795115146382062610893533745245537849879599514119650048041201801053529399686595963387044046817320766993554596161371418150011227956094779191497970839905810989449918771359522723972873463020279133608252525054669168060122741246661799140106641151325986234140122744482959147460151761210276290565816668874283988909815067960679225169744910598963297736560141709639882584334073328830384531184821324084139519857830253598329664829294294610689423673298040951531174316524010292960577111669896152695254861888073568046567186686801105215521521171910063191237735063532675161222469383467126405960512602565280229422109121585483903403031244735197329737555479372734333204991436471977695990903159086937927183708811501111676806238784497368229250790590280044168196757856716074377850457174275497139200806799265227660325623121211905620008338545422724518731868677074378338572001084502014450003402407662849813907862645711241176155324947191825495156637319029074863531516098122356607661386568708739703412403014206669274582675898499930828288009125240140054198343518528899312584993833683242520984282564565160251679210209919326282474157797114599673981690400601726057742739188019371742910709554864904716060869141312849426186720373989456408293256976920447700280230101397056112286414019593857970591956723616204772647819755899455661479209847869455706034721870667021202944640776601570549963887194066955703547563543752464745701768070883272238874260322484038186022402954523614384485344753735702876247745340470371310504136514521285840714210623444782541999521297701215681808039679775622153010970645091237464268721089744309273475632592735876962817802800054284888534263253486741618972491313499505260344222411070007974873634948935412123210256810711762657176004674831772016403476428277342749598435096627428776172159733595226461271004902661484841354393487917231640754990177139538218528213460736966344627583576179333147305865330523742173530816724628303881492437363506945629517141732348984840166873495411398011712183266768227011049324843741742573067216389339919118839592673141956090369890775514992568735252404672795160646143492055847422292450084074920450207865077220047096695734707278164138402817662380484606200649643537247501220296879899744093539329565244075521895902711313610103757424651505004807826205543937153009538833120314838985458278543270296352974750638885198002040990357647708390517742618781940015653491873043304475355867891623939780816563632859731359227971825903723763462533932655771647725132896535568828187180839603395528131599790087428496005811163951305275503780031029867876459800488797872966721399964247169428040455039065171810248593377878308830737448940525389815261480463556710344143622920117826103599131591187995910985850534925912708510478116103561019078456897891338641100738361901571466048294528890952970077666481376689816090644208044850562240477892209241111526931749063298225299466038504841306451850956671135232570098047153575558667791003247610043397075824815162885943012099846163041808741258715314290456658419625961250424757272307296053796871183340800879153930927260761105073487955480861030336226737208154397493864447846910045537267711118317207080510259558989982993816434436088352363884106204307720638252869723388912371489695295106692392526662420749529418812684137808529288794088968413414135091567650661832065311174882947600308606444452657017982998448075933655674825862635161401355867448168797024487677544478041906579805854993151630661153266213689286309418161178311499492930578248707334618045303392575160727411920827882932035512056392394929120110656646633340714223427931408491758361634372433570130676605794066314267540553051561214450186371350582190047807836856120324172295925501362405028741978626304432876287941689163700296426886763365086612783255763532734990851401888464285214109372535272244885754312153902124397283606161546440941315677282449531879471234297651924031737954760958105283297338581403562540709441510914671054531270435484543324280247098028782353884523448577595723130174519285323452000980843562173966046455040873476560387338556126344573936535951490079633163435529196557972292104678390050959692705981726619777089969216991938661496530156182652589196257559362969817640398574610312989930271376900911735570898685761044679158340055080954867654352261401943683318491048480858969996883379002629011592646044183847273762967384963442158672638578936286902513621393307678146931379034142383159214559117098273389041538264695548156974712826353989068152599543771638965309697398766654954100388233328294223757217652675246162809420587001399933718910790398993853594831821827015544730847842036507571573779879536099741223780920981445506629460772610686012044143947551152479468754070835282653287723103425086213850976850477792877629419352316846431863355652165964846195516198074882841487301100470178989060699381789580981276795450019101689025035167071500450218642350091945660383532526292231992217791354000344271313085040859430525231613973857711651739741199309244811274165783012081710781707988460393856194153666822991458876141715694548804073970400647810118320451984552352741722874708166007788801202653492521987958667270180970858442558594092947357806120105649520992106626663045655417902084810122896032557250682336404724440781610857339456096570615661520541486599307730948139685028990128432676272172262289561093866518825062424511021156792232282783964062365572947848554902289339309612340350891080694434970307278965148000520454273325362669260298937307622038743524500782079332678872125440312103072109726278556210168764859939688771703717075480741067545492357774764399106500741870374584094672713582394848998484538749463227567020978562768630043707465695233140769500399928593335608710402820831816051404735994338736020060648680662792086756408089618932354395554025741963554252150255818761109550134341722104694442647337855036336549441893872971157907948371166732818226410715459160592774450804571937698402768939480669172999716424747452725958893612560253781678605043430329072367068876409748423986588897373948106993847131381692910715418641431328086554769934475484295821079687753377585260013602389591340136069196581386865927961495556254687940038792797519216379831247272217598731114346111123391632604830046014673923189316333685769137248856085186631592361054105244305404159564943556646365519904612925924776256230093355406693019706362362388523209254417708236894114355714601313858529365405612404638719001666463908370625441532589549240831619137760346265750209043185483189236860653211697194219936118146206743172551112032151789971114734322644207020128184432851673726600522364793262658050111264693744518178937185161182457755213482756140129636192886948346967848634998776770629367984879456681991066801598578969153473114643166566158534681963421413212493113580467538089429350522430291613743222622275569588502688235730053845022631076738156506256828667978275278045306961338602623323455114426729892333783626193377276121841388332596220769812860992619547292608438767761742678118568936161419947765417407929634661444955264789405221094065081377921977849570251108091968877916142119066690393549286974540945695984534400371598158768490234704619806054773859188017268086680373964654043720290527353672274823193058663843838713245498036688649465025395575919732378913605737196968480120710131768050920577149277974489705472435801819513073982573310693487036706916951674158033129222913635687243622588004641411435186997960573337945011992627666653099897349565347697060038794982833365360561108597015582350137022172395804782589565677274556195557665851455570312251621060458258188428392236562618977963490730179994491854395419345042474516902915256079772702308533060183083999489835790503270848308085056220159484111209288356531100659121951500228532436415273556227666643632870164678405332292745944778488864524870972543621745700455123758818245324703729221866792624457098676980681917241648320003006077147310255012034599746454727678344321095947364790941906428768088417077283105177164293103846585172101520360559885999478686903187605367486067809830298727467244655956191307996335099516936335572020498494312425000302678845353482208285037401600608802911500838733961295061948275854536151939135734485917698542141697436513716091384441353072608655656016160645818057865350088208541949716482555910313131946443402736651341122199288081642166079079161053653922819360312480426238033235856725937631223509146019227795850301335831528187614413876519596068618666553244850091812545811291800518220735026255090024755575245054716638381749085350043924264944473891160012943003163506320357808677043294078735675587290572861648883229136214540165311546933739567522601538937289300230650668985619846909408170548628573300562780753741253873857204038548404324331986426007373724614746845695935856319473517007213795157058146083766568116837191310694823117778437265121552039191283929235266590331498760008626049786654514611482174047576939166821522034345760251522559353175918026499638810475748997773542578622016257216436932603731538291409167124314772976902884301817466024658833935401644129489205929421616883433897002265325561083295682367168760937140388047372878874673180568109044856741096408458464025910543247916124231661551799905205715353585366787863410089116701628785932646033920940741826226573655277837463306993750580709526011084159323115146618123536236632137095080477766061779022953579142201350975582701805577731903958209935088583321353789401448616767632779128821013544426935131811579889482517582623656804368623379472969014681526485508526761956645074981648563130638739351505673503281729382373351021739631082475543326753456140032695125724334335668984545591842472640357945548871878730604937452408794682540797969992461873013124237599524256091966582464459424198657903663175829027048747694016670950944431725277414053129341421762595010345648418729165130158753118245731863207604143469481586847345923448554230450370086914191258133293242417117654974364557427238960667402813881429670315313724070250982225807987226075590686873833977010564868667637110180052388195453640314121081692659938008656688539110746207934272601348039571606072076513992878048715284344191296382314653010631211537044177151671993867214444659237895348174976312138230745125461726125054481673619475553929543247569924497788276679319351831652762231654569273177559193049056113644583950056499304938950243677890447831145527494535437449021844263779597925740974394394188807538806502711248967808268290340956413205505956228179709281552491081622202223194680574150012817244834657657645889397715124146728417321693526248277534991612004990693939024045576692411819859519792054180578997372723283346148277578327118698879655778553074596260874173672010446282656513160518934748898745214986404709337715271611621244151106662588833619898236775447670921582321329331995992797737705582419119455865437716835805601940101008921636404815883069874993930609536138955756994488014607384359590654013023912006433649367323155573864118228859851650153543303441006556231748420293190228998233901181256091943256775118593859184968830230917796142659157458974111199535046513512229551567126813164750545056518499260672491243479938299401694934110184149272470535172704408776513658997090550161793658382376991760155155123001456650011872017694803674949003625003026262993338079989141728274290472232550407550490116359883636672474520999279139679895410012533587928881378472868522174369146080462495371658871509788999919811253858950918186072422345214898154268713886066317351843923523101432826669105794561244762029654712209172301994200133670234396476536838442396721165572120542703383892314387662840053851954119091226970380309853145189358410279015826294965589106950422702188576704797928256263219754136552775612725065706903756675535955667638230385549890324236186321796740468045870953236410618981337009451621281686371302761139360440546015285356822359631534483021612205853195404375065723643638654162147182883149726131137987083108643518751890584478498598932666579852713677204658787674952210033081788744373351305777522986037885777318646677800951805353142826537063973324747972060056628185455774812323062154011875230200398533895008276280635269966145086584775527088377138853319099169898101562862876868018558263883760554749003104323828776893546115979116917401174079913056386398065483311071520203236877050601428238107553765688396782886387552405710560482302924330576308122449116813284067597600007106351136142644458308876092940044700007365072436994696527210160147814894477696448824912168441876883072471531182791349601511899616071471691840131174549123249356597722324816819095813050924940462274654347839502763912407890394686366813903596083795163690602424211031080193277017470241161053747058193617257844224444560962243796511148351104682033482104566673128641413216797031891830663504290920582502582438614827232916436787814696789400076279340893918420838263734980987354975569828819162545640677390725289867338114310012342546989732302777441088461728420392069053607926263028541149041769392923145621744291210347104174084530891030921673939136770076559756875059829814172318583505167311538997868378074550390633667340308067969374219463313568339544208440757060109774984318048876292783841045038235431810810763473607203091454196807463750429050764793062601709503722080813631292812105613153849761872739609042769811348109050208609434437441971410698197776113352063105764633315663987330159169088387593421165223728019596008081552311458800612759803567557054582787356329786307939296787970631124310876023811774688718994071027408597710402604148589973419316875660203945639524871558452693703737955069432215504002544116688685577124379183588929404804203857120092969895073108771405945435343555424901389985446843526697449851846504061760376445076271626285050985007067477995802569239907719611445333852990092631528244297803947899279156835058241411516683095701030464114384863771844248050404283291033479045166121048385238207788057678080381694540711642058174804378667222162643243793050607946456892336738735277227904300589312570575317373924121682666072162811746944963350081579273789917236351669048929588967194406684409488927113021121107574755308599058390464007466592679243540362232266226197395365860806866495026556277761287958403539761058756367142122286180648206989018803752630207377357103413360177704711156597648523727281941564620202061119715322305750307670283309898305228223380829888395165541019438362496698130488364382944891172069351566053724631494623459502471405079424815643804926792342886676535997873499040997902047326179588163121806933672072560968700353857226054150882838432720268533748156182826183400035788816305475677616173029005413742763980934271241599439325480667601101733370802596170216575632025523345704439555516103537697158081408989342038750784947653012123603837143732591894531046945086720659065162178884188188116190517696224055291435495360432924001260627061260124034391597045494631274352480328168447441526731746801662306468275499608869343414733406140322342848534478377650547941017161390274352145976199418391088349127256105855171246784002623714656231867493233466513881645908761858635799441169748008824815425159718288067861180502832040171336871818301411184269885575988643459061085739702124625656284740047811702051943641929903075401361696624256743923557992855940664498397401915190114826979982606631314424058000807248961539661948736905841598683954827591080297010285689974230328156294537644615009215478455704684935430744179109880808982514044293427804129007199588787124290639511832614910008145794358844301561090812327796976714009830963302123214660656321547261877102492088099904397723688326757859119632033298315909548816759881273366236776238849889253771312623316138421260211599883124189815067979255078835454348755848356422814316768863507471944435771014799961744457284127378229302317846060862641922290037500021867081127338691514269812238123834439194430990187109655393648773686075557257368223835106099583066193216545894376042192512578571148949188062192151661382078134422575148946207511083563911245341315583532688506580373712307805200597717842300221115515385511240616924840016388748027220906277194757225678082199519707137138309327239954225732966113437208719528229741544838201382608966215623540789538223325881707480928722106442319943460241571121574863512307630925024262220469898272682569407944969699303492727525639935114310878637229500821868441418791680907848576412355826475567559951086679010916899447177608544268148884293851021467741719670808732810399390562862292126575521633600401906143845645249820528186244609019110436263380336298665723314451702715784116965368249030871721271170453522499082921468923405498774352645372653024160056087912230432914259243622400919984082317167364112709435517781992677007029526552353026253320635504855117248976207122754738681927206403321506471331350761626697207311155688187161082750377132702383633707197806310646620578981463363899521247199079418923856455493213693709984010110820841377397466411048952056099947652919012506096017769770653100195709519210405670993173845664392177824807003354007869233435786621724374584889845410279317143612791867505991756569608008959566394934354172418082394332509341389528700545897773508439460570524550546660076707876289608095519819127282746206783321022071649374902955978040378410240142551048540576135696876074215717581700045022758620196216452820300589216804196000623964559474006024672253059074492016105938609016513492825059111656094063230563880738164126310563520083397246003489118101832962724912123011671431994082073460462347701595919026117816042363308062273744619881198941717342685793704137942753281438624825550951692462229211770192856837706212216588080484103621896683655978769449914516274740308272594923072842067876097094228241243099273499093440912927390542567001650748062794873119021973941139624143699663930207085722028228173677828020184929759688813383039591972057459499767892601658290390562080934952919953041983969295729023288754889447444173003268094360141897796688446999426663071889137477323671501199989069549542729578951007861059177286708925800223324606189735842576228435525806047021617438727504575669514920680247515858804757886172927235813994982977020028592681091142789561429605487880289742579944690996087303027076290352955194071029921069330570088186121161131004332103043053905044104467559518988561898040069266854071345637152666557059515791461098585824840414451550556124675182218817090901605171611972996932089419413478805316791497868078154291403411484817947206377276292692259447619815593689583503309392774547287281979107933323605075436204101634361862168389262123069249351955749552287622743710225758163047161161227592356222576553714255370722682080980524234983712797580129756533871649401519371990477131250240047014361519987777945800451211212700516303835702498598536485026418412516566276266371257710476179573409899050939672770013434870068510872135130179072567360805811816855782236498223679759125803282095847060039274451099609362356929931564043924460776863015612873179162324000374805070122468634489942401623368256775352272366218476716165287424316948247551951416247918059584809220346153839585624119335993237012621032226120579359085210208185466108433539257248720354272967041506523138323744839956417449426379729655336397070383332204119998131202307039100158915336263173603650938906855557935499389640363913889347073617622163991706661235094151135972690838694854134702622512321750367123168993837606125754201474241510354179966183332516247981002610661956560242579907153151988943940316540757146130243491273161380144192091614242162712029128620862733983734247549610135072316866837493733139675126159413167789864642089948632454413784544713011654878851133822963552482518158178320773177119861203521407667844814189659084168280911864741387642575449265303286100868907778761432675579827104253462934732147260907259966655979911998222168869707384320458279052615873173563661209060105398718564887870186143717034756186481521563939066931399394663119937223755173048424729081914819903078014299027312812944006261016599897572036398558730043031747985261729605548581740588206099813667535205188536062322710129390212063246725017621710159049387376356234763190772503031877597209314619900380524560560179420554165062764814236533116872942685869283699277706108336461717978572758977446222812718957506432129412950796008367040346254388013827045224741733673507485711379477788486769459606351563806948900159411831301676476486640066526078218708822133442400869900985603348804502867120698510396663499495065725625262418374535380469243888323841115838435882669091663773615470544532307307226569239041247377768251109263793212549218882926263345323822944828454875603710241643293000505455606582373381373501682821006464368900704642247062683301218564041304405855711780805701234744312333342237314397682340859122582453735614243806296075361954766540537863575183273827909981161789614834029481711334962793331717989407881343360815068995085523925409752775886572614875668893700429903958367594775117734721320295905211919872865195884835391645008825298199685757907303037742251530980609685267137799060184581553384147441296514356736292235526535530321947704621131175537093768626057547181656249805054925666548705751029146552715872956095995907158051717251979396876568930535778763920241302386638137084303327687886073672960509966619706956145468327678534291637998604433001908206603535717040475679886985932920567313929129800179135197442923774834223235183787857887270437232334266407624786480837841197151663732218780377894862795172581036879626659375536404382622737617624589590586949425933623964881203551114536931080198892744666060215175108634142823637015731090627857925899234007085641951917697450638264281278448250042600606931849296838750502067136254892606520024829580951865656921732337453634406822203592155583215825092197547510399070290512214889566322865632622486161905318993191600847389530861836812225042888687051282355867022934264351490873579519585769437993035413907893714374069650498316229918864963270352000638709030513240318778129438382740248688043882176195529509125623891459400538706748783462464628239264544469527772407447305304204163361482519991445392119306490808564366092484510545945158641691416798110310256710184957291893773422598605212584605208543436116459554863732109320376995821607456987446815754362582856523415807207065061111416121764312164921259724912734029384395206014780144108959026956311177364146005579944798317229133202167030082437730839535261927324805300010146212892223115889115848393151740177864875087377500657529948904152361422620322727894657177904398720573470776311884978791795158717913677468998361646232280625662109936351093604099589030544415980173132669259688011469131377354293827504050978003108290676596565597767116028251968535788787797643276193621516132260012256058595325911940048238717128673685495375976500992387542132954133547985240041242327159802383385405586307926236153674810829131007978712551160592764839491585600216317338027206401142463132753933489632356243241508667727971733345933153592161014429358180270267908123608445813425464594152780959392688880995061832795735520042250458407405700308525794447502283877452244046326218972252638018293052930927591059793095839762397049355627367153695854784267558157900161569682010983581001390574556597543544543505050533568308690633836236026062823923442300664338035173565276419486058728759090067586472368332277774992860925035024313492039242237196000109068224910594403698398472372273644798739356759829027153176917738247401247191944417231142378522561332242746840692102147921959480132363607179752129990010253705991476395076767236603261955013954302704599880959801702226611506784225513202389434213241283010255404767996015758978371194181551332727767730083510758255627721296622622437334368346833238407622722154206194719086384764989363291634302332610340970000364073952661295561830593850680022850122592975272339778967937705338676378003070159317518000778414890038371686085811512400471563321307343387753703053423475219165617111725549500703390272150322495609399202833304468519679248927770950261234322975820536948643091047486542903190033745551914588058576309630438118248435441594152426452889666640444514672336498984138818310884058992810096627943112664943924720795823463784280615048919818512699002949284335915161033488641431731109064058350517124558239051816694332115780139879124036903378711911054397403992023947810402833390036100041376658478739828143892636874138319340259036481021205718737886070698910952118003826845404825733342932025218227909498376898496478717155743993518986243543286680920166924625119850742189919304898928926141969102635594970514891178102846319165091409611684890761430068078923588321063335834105676228846710617816953143993325212761669230206393887537496385306538224825634066527430849480992256832102994903406679339238443466533358136263767226468004036241244946472064065772640944366297440241233936143686945741690600084937012626716189870958362718125689562419807746700980965579721224473826394963676759155799829494106197111386053983583938429828239113130598204503402655055599766122111110180096194758909866107773446368578246474477573927727039165528740397383564005856404007077158221143138938096534715022155567243690207454768091880455563903900583954121322440807130606448968861953016854564118816528400492382208920824526844986196313511528674238796202459311677802581940278720974969907888213924350675805911225101298406159448120260798549869489385683545308764566822697543368864843447482168450216890201038532627546178187849622275740415872780400888528337872930400966349017474977936903342017262982585568441555833263878923372821935813895715535371294414362403569642304316819619418789287957245087835022222999131044039874781281295135699758973760135090997534961375575115149488128737794869002070322773258920662484641552930771855269573709459333817865350749626455539177827904567075434389828512888214077105307027258241564693726468363154774960223545999665762857033647769263169596007972550045775646764690800333810513758726617187251535703421985051241671187561462071893061191647326127506951489743597795296967785823967541870916695421597467222778724190481888274010105595533843743481298628471450128633332811154765259738440730237190820991335220869512944793598742331225705890417842252085223253241511068771701534435051180435170220991663267714669422332659349143015636742033803206736778316103548005644949806857935279438415893789322708142489674310937432917196981924389300988400430413986512582806138430910950197264267314159505851294497677958200883840336812835892672384910470239645840404944481057034896634017828932380382147998192396630572606585072511166169596948001985221790950914557441892490924634875246911221365322986426786525669277982754147863923620369034938772847962877321900676155758432177826054239807927509446957435414650730092691997225482984165506365553717983284764051981001366871474681226614914715280010317891835440029034242398106482966823348508142746805736995596753911969880031474465536203567206613198205716070557911067780177613150659926123649769905204469492877525514403000904157535988245425730173846697000574355325350436003658582324951901596069742186445115242172304245360922745670448952353929330252705245051737460972476150202498293734325277160918499633184667652456004228280488111401091494530547519263384939628235157457140485738795388455424819596091555575554530098684430385926855276086081322697553944474553014262876274860411220171919351081575319581752165221223714257022992437436777860801956118064594910066385708606547992193227014571624203963909546477071081385623096233267041577798614487132528476138702837178841142893611197126884306617973167264085228277596431479221558714038582526065709220992971932405317752589430158575759682414635966141212211415587261658161153662673398034661430280625987195676888830915770212276865706046116398908913865050298492484612644038726353625369859811956946744377846639692150056554138228416421385381707551140052614673183660667331446334135626723676350106734033622188257834608040562199737351035276985126695127827845694210434465888693516956064594516287886693387626002461687239258694137295939437206333209841280329886675075972600078341060924827978502793002249545914463333523420673260005622023752326402761827381712627588998438396896810396651112800703622365158051533901448443652555977765329667321435030996603334730418489757896290202093984205101193065369938774089776412559103154716716219934244807405744308013931062219204960968232109297299760874051898142062785012998290850227275571121681855818607506079934133882784546704287398078880567981239378720287047071825152696974730499099833887094596114419884253772857713653988487963592395208445491890140386541348840069572646759028173374070664618093675091119909546952100433548932121280040270482172038525108702723000030431398306414267985775931614458715925435586425639324369461171556269411819140814203837641354279567404732928131934943844751918024958795729987642961032551718232029620487345641336467540784986122321307184171885210764945434194510145501888293305910523219421347418613403045885026448622022896824740888607594934382165760904938312452881586887742798080951260633178154862712023581029422291096019011322893914955986923930480709066328451141066382985163834817959999328984385440645682989004762567563918079354288750193038202556670411019324934338165205268077197442520200594197946883309794742692849113260753844944653679224729679737724644122390414757664328643532599050886250750606180456232035328849319565396750553587813169175941776063148112806403102945389698243747430697913181302779076727440093416544307207029496507687230867046679566135186402193220891709797975236270018231677630797562459274205705634526078805502188793942465493811661428779863101000821117083025878297734000946188194649758099400974926714714739554171888500601775681401661108684700593303744547124673108450907232688388170470757989266836941237481323503657958031535999808895917514760955426217795202631519456061768377014994390613289108798722191428902446263654799036659176441105610274489548474839566586551446282699206423623368165214442939566394082953704743990510661084436693885980121578612745709965488763126774979782052702046821366605729345916257697337456549908783169853208634514206290884730463215377403689520880052929575714097334775706493701897772486460927183677168104762105989903353663365138233186879924369059698634110996906798001092391813832982131530455131880520630731359226031138508808955323815956105244895340009856138307311622437049895216243286869689245161801822401601745965401813352177635782210747412029086537105402075064624741104183960312014336184378128707579469423776907911652512214536905508912357618171475695554450170791727291997159463949929272440558775021165143509152993353794360089208151231449173232709045470685931397958112562329522628531572896439836174254909703991954641189765356025045643145262472334279298074372060515222039775323356030579120121004567125593646971973012418021255473641102310467796984427695321566022035503110790884012720882702861123240459378603692465305659045811035956975314358158608535541655895217085341692379128578472477477465033923850682149055119890570762561757860661936656999582892897035417982814598011597917755485132077049003307962688883303774320844138279478144547858181715167230475081777861477171721514918389302940633734530284215454730771352846811809406645562439401171075561381478373614393058902819932594733683356023421782688104786475922927631941901832665641657276257847958702546883123493090026115322086551929916623581634933315174497074386992424481449468648301588079370267974470343674230108067902614872824990189672323822255804572271515031543435384788010444914582746547657520496474266294566306668650849026641422927959379498228449500499360770793524002530917611169093994677906612030186035445141322222420359593296841596810338295937724346564283677937889567617315223671779562211771864219417195146233543657118616520721306549531784220230480261167233749676457226890008868949520208965226233382582710274798435479742312846254305993222077841685052438931770010219688053458925814928866560411601984024138533131557601942731333636711852422076643067594400957985180005599934797888849483102994957039082468659838894102259931601939471252752205129069514867086327130890800292889256042087360083414377698878695725063073757386906224949519648155871681765498741586687718775607026248105725700508898862233895291132040994826878617138890572366759257106354826265392030324965910817200757246642483790010717319175832916626804560941629816206960387580226520682957422238033936580535447878451126110307449111806556576532414835029608927152522720751715844372844141238601051844845468754325211602945924769346615251054465548782693841692669613686742040372010480975966751794576093510058407559406055712094460086459817711994537615628023782540736642974824630373946202861832067192046064161287216745891012381042619614102562472410525281118739680884552139760346834406321002608743584009301060314196114240895254052143616050512522945769732354819208634132808745930398236461630750801021438054103463428188647133107149257566966279791021616642136733790933445040687714457433850721245315175701458771790210204655891892673479789932435241245547882603025484912362550740003206709161413745501374678802233145749041638876937034203965595616744969324784608500937583827726790295942326591379724795063931224108820204044177032494864975523781865772044230616191461668382054367976569463785425496968240664080129146091348162174424786330686050444709105036770993465260098175495627473444919391377986004423296230581257199465897248461797363653907286482532706883017562541172732295554035969109159150457562269411172657869319809165409022819627634018835194283691626882486620204667260322867621739487325480610499994043910921064084413740080419156449367741022781502795428733171606078244759295295414934931332407857783202207039818246729907520803164258522448198739422984658951659392573468685095442762744920611039791944439514915152165189894607615335121521195595191142395866012588371873389468277604680867042657712353615233798817015431831315983850566847058929149196621935287408012302187521856282485729124065227448089072198059713057663302500515940966671953112401218874192963803133629511230532075918110500734079807087441682616457791288062169218505556800725905477997413033653141009432806471348351749663934506842629348695396206752136856133444664780328407108937339175153151720185339723081459150533417910914770586434070597701093888771342974442738916025462337144582187385426024049796336388004814196625723338333113385245852467728698074081623393885670615238787798271141086458715215085709940126422017471749829244709116371150638941978693110870900224249789070632968502763268222315756049395327966984284281069532725515802667237190101423654221238922132606693043644497052720873843768722285515051679308779378126532163735579048126235646275301747615407068306495745473643539589343611164143190619535537560089149683077026404908733200499201391677333587942801344603155234951912205335024276665930783179691268497610741418905705943540671500958864535729292973212149484255719997086402977565133458801621751736733005880928488283576595679334359124394760640742730868695294619799200220191966859960603796705664062216397107424448288128024265569073091058033421825463463568690059280012158040640739282760948242581990338161810335554541275642485957469949988242688495187071012659154220495976725157790442003378095482861955557706993382652074858666706492988871671681472171381543400463810395113320016738697782520767088645718960127791466937586494649884651454570260510906771351881959537591291955201581311186232613068688002883240748369485476555947222448122006313077532143600616180347814142245195033988418709771514210684329908937618540854790114246120073126929565885088813045379187097356365489828906795806743959591652072176283338223174948045873711562709505764919108061715154537305532724324791090255568129772767339761586157629501261192165611538730164220937093263293196952420067568984938632338893071281339741528239495836810746381323787384978464041665712590226510168828001996232503737598833765442172440002059324891964371438513880110862028806009915526908222961507948551511699482165224878852414670453085599438743239885559177803102257717713525400354594295503751341865200610333980418317747792137816849811410712199490182877545680805410882184230442526295892315415666899264111231354195551598243919566693311158193547766340427037116772273326489468049023055230335982814369246948425700707529413767581660235667168744289522644162833026860960377867040540355174737136157957517166065918972501718949290592949969424022938168738207252304873370236870861142097449421174656795372678718385866123201935493048972179326520862378513302229512299484524078577647227332429801931048984478302222950801939158902994174405509339817708592841867747390854014699878480252718198595038557963575455877447333496255039270327837300892619233753031432840836584908914664029941695465997479276723144481461647808584204460530096424717652896123863509521387772180498853657621618009671465883118181078104706290471614752397157531298302337872580886181605624638490665741046903799522781077406684665151292201064162280466773551590417254562991190379924104780363501551263880994544219200437667742050679159367121778589067594467571912311102879049309336520888252957938227384913518913446497089682470077944224621396649585961112139637343537004149732818242137675766635944584869428286391063406808020472446476067221493728831390884664938768491714183550391441994849116831553405766223206763952956061526530347554811670377548980586088545051539855583700115119598576548125375767812046498273777514591846149388455434590110325377978568482304553928437949038453591750534180501883877149898270853686609336062138688688241423576334821871655194805094451255784231098776387276860221256875082090423732337006957552835935931237562160511686423828448965754052280531417209445663197727513398251836633697607253549055449575105305400926621310744987554212962706642308471083147297879216480927325217871303778760440280958083416197490730053402098702034407304410783891149487841595941828716407752428952162661348638522467843409003777825856817326140117860688153942784796853276371113496871235855167235862540885354897552343578479040477290125844122685615238214769267723502583956604603906008223827576305313814615973808528922254695634327527872411651019034362938034676344620312471561171952549594922872131435237558193214647630586996795436235546107441250475573574623588492663307967892636623351871217367986934437032842616100623300520770222287257722300288314944246539511055983602311523100090186937496278410754018828418788862959861992510297740504115798667117363979953400508402431132037399489661757308627382467211881224853154328970889287254128257909842234400230679455034153675291814514547913125523171403561686968330965536854465749556167642139722931256536093987801470911104864278622478311205933027928287539648282335154130244652132273790975151917409436958486233563543682638539711363723294846105292350959393255437896077908894988223004680488889001961495927757886526872976145932695084573669130819712933886944891481639627977391075657011589813403383747487758162191406664565083899879764461911687890469275711648825702676991339501706189537280541135090864650059929123932132552165667487747149511294972410866681676869757187292151093164568074772430176711476258242067429276689796684679109557385210330267529559695539673216915075776458383361903727275888295835406068377102020452535393391457763318601310766603774673698518740370114993252436433848658009211215426099740496649462426001913784816600568290427850156742063809095013471353196967460678251735919947215074905767287605220025595745859434629083140410959667601911601870443025511468178292623102781633778573177339649315947787197691758949356920219062073579632121039733166464227285843288100935020442409791567195153134711943117311211769399910931481433464860314859826159731287471773980122438423580993149372303948883459654081780742678038662308473464653150974935578299786659117513384309777906278854059124720142707002825085199789255449207439474036721166710783770642818893609541624929112170472231008391191313545238316552573297565555096606466362547246799178964481623650800933978838061603934143639774565046522015536854767280283393513947320587857643106852482908031156239079266655926356015915522007576204683865005535810421778773884429318269067623472591344136790808261271929102047002467643682974780209779051994684666704924235279337537566649674222108431174576935110679251720906328681789047602280806686283458089638423570968373541575163468722320512632402297211702629283222243626542143751973161794867982024574599834579678463304871388463746053947123884226127184815887421762024250493244701205948055578907906877549525540811254015885538322142598382734580463275581966617330621157961988739838101120549193260729241248324789292699305759600110512619129155131551859267955622793364673618557683004505266967243279676409741862603261169193547614297510609508950494635812339374442576532439800400733733524896570820747280136852922399210189151749666197649281010384768278749123428923402060090062601591720964666490252496199499431019125806184031962214620233406343115275408460337997862123421377981997498206234437867726178038515852525673999722347367970668848644864548758989940523315524625057875161009967520493955345343819020219953653254285344881779859403369395054061246149813816524329266265889658025898702053326462839661041866338563001479621921115697398495655627603765465350098462194280266608498584275618428971835307960589398128262378033681454361928041442749197111127682346755442553132636508503732659396543514584373262176432710805603170152726932346182045202215446927784380064700787877333605952521713042171971867667034277298668420576793156200136261887706711829450134997259449886536160468850864674573336757424178092153959040155034613702119421154005280866273976045292722908148077832706859370952965658368792218603037587865512575559475175881896628234045801361834919048396474528249116104643712122164857152414657680066150404156171550700063460160714963301916670446505455083614206186711405930176111637166425100641374876881080887265000872145577974770550386048689415677142800206972750917507686700489218469472165623730374559322984966030361009073682410992277254640325915679238000659880219828162780243977778856060350161699565484562047583900547911957917667844921064128930583870947114413540590613765258204828568427854185195299102769659543780572331792876702714500429585009703781611625193371556749940942706362926742320873323241210663154614454932580758988430945595001568633965811535688462117527639690648177682066725676762430526410853041047748837510666032437293804210147321691943539170988195190876393759164304417992561186365137461757008484277673549297285854573552933492080886399166825086851529927271601424162434109694483815944933119473734956191633361549606019511591937638257622650680588684051868161490101439407830804174914116998046034092428546601356309383707198954229699827383348707415726834144848728207988906743622339880747393294086849657802791967758114499430904509087832589788028171158011411207322851770166759221074119585116180029565175271756051680698462383410717486075553708372725005141305497262675463085705219453332257822003333962229715472701075755442338099667142956898190997251728414923644284883470873481290151421942389722132903501166318465842899765979120532349888835620063677783794830834800978345301198428787199452518847449930322285264733553466063974681250107337454113183088587891417242384476928052500529481376893844073577499717476613694576020885305259697022981126998255167738457101698991834593719106655768929658733311076618682521791441163671264965801639280864905869547051754049894633741445456550187717047741099502264148690554912869240070985311136727353589297828607342905588269359859696104071621515123021437020146018597467429248948332810185606721549536411564799578079394147558558728424326654227450272006032137745366235349902066147203726051742846151630398410591799372940750265187205077634611400456405714760007312282890388932164677914357445572416784696817243332140227176725826543391468617795651001162609325335582340429496345304865778159547203932349528591087238968966603729795178922086580379156707795289716334800525344619881068223006641132261298268737040628669949594091579996508907704007800709023239203402977685062429754030008549936934160884946099522861975750349746089340308138957109264032463162904083697342135624772825044629987112575702484481196373188728853858655458821672175571806241615760774798973122621368511045655126404000560534859941562666121961348505137792794083833140021238422197319452547989135137528994951035067690487074544318013578217973145123525987623948608239512919718260728515251681794793143961299913909264695916701814498847635022101874905752236055686234021598662057349375222211941434917181542289606303230343486658256597995972636627541215900941804432711169984110699193805242492759393942903632680912009606370490923068680593824739078933680523281507814833310955269854875677170284533188758184577698429536153757103712780137608323439506820690061358811733847544990149374575840996437387320074611799232963760794232851453909080187879111164551805398529608611117465767921046300754373132888127106046228026204573476325363557304822641866090416009280494599387892776967744436706718182682752061388673127565795523788561598345836398005512378163360315180312485260273542578457527058473607335129735994832508082516996452764444309196396963056548176543802196361110900501434741972783890887484271983053894874473548183576028732977885356753934767321067003431807649339633862741595503433995066709214412770778036270925548279718247451574631786485061680318007850312511867581056679656509147338864467485827871570806315080167443038214306553319658964655065290070103707539036788959205885992244130967866949325326891709800335760335518592627713916500596678804760761419961698866127327960561429382323664371816212339036177354868428708893229523431565378117198314532987211397571384651791676660052942233640916452930707620682866224565325736428861720886775758659898791308465672289877251443860090218213821816251093153295019797512496619143396115811100717356041516543853724588524353301778314673127654379002037767608393873479659531754556932881044690878276361918906218815370300034768834514539586650952272066175438017282528185279395978275276438564274901827664077728072342878185400330181741387931019550197320342985412442379229425470004940579506740571134081795136613530277484879153437196176522123320031651632930890848057201271595910188653463495871362916541277313690713419161608949087085379810262822031997913407455056402683159859626023611483463614197732213368554414011486221715327254713180759573033889390343127223158547110156305745855954644650140169672483104222496652876356670068370866341799927387203160550788682275926024890298450648427665982723997267967187597055409158718157752278776994535147396978920963213622862991858724267508576638403794418973408519335895047162148921206873446069480236853436582793610035783383824128242121445149946907666529027854309512243081167027820802044168944984441184361634265188405037729833711719124799602090278672104887458457816167074924483384286454653494714216583580687843076018851654982071986049903416368693860564348693896764506541603527912004145128246692743870223572086639662248667078725853671194788482193718836664120967870065597480350160584056831142427283276634269270190852479449312023995880308692886974464194850677802702331436673379750338652938620100713500835964027622818019915338972874061633782664009944263889076831088126339159603794521517627824224134094135132328433520210464876644944281506781743820770950753245834004953774064046594590604064358646037874064975881987545232842128830158406830846373817362873854435951358324274187069690452862982717687297328312056420397086600955177414633045166002401265018306119065634636808555664840870905109915601590465842630257342071479186901137608765086372998667436322927420595059045846260320601504430528400648439856951523972101938335177102065966746854370291659895181825558192637016869404597851415883085835274128369928253059451649634324341404767384713777767463537596151498666531470093162488989463134371702615829541114387446619077414342381227705131920400390997459273321728694564342588018326042450218649092149258021514771446581614786367703915511741851696968497714056928449174662457102487667929986472391091044288759917419487724338170270986696589017718159696310884531192225297241503750290536657032946918521691641210301013577631836009562458167270248315908477790550462302960666778495348354019244192670776709130853889628605492793810710251016586838456472947213993760259227362122294135366402234712189040727752902569721531719452527977151206921141676738826647114639547273496413120204275306348991966364952490242984366701602256910934890275191669369168970553109595552323289852496453736166253086312857564496999959470667584024934312212866440016549256334173122367512438913180263072340512427164682850562842260195286265632380161594952645318922631405363150619455352379945365164938121092948550880082746550900759085780611173166867245723206916437615634869843088194650315257328979591943379066182384587726430714578364276534751625181952895855024720751064577190334586728473724652845191027232277330837747761162003075684935271745277889200991704238895187633222531242692297065647829086102400585928934336845808705054912775251606759327212564413575712003649160322309182067611029243582231966309169856658967769865937272221385879936233114187611282194162335897241263538628961853396357555257876694362556204524122107014850880711238964342693712341202415237780999267578775743920664728293093301056544363272497396037516988454633978080073243036881165026172422223386008899099370163193006829173431464314956320834609527552615337553780264698622281631151988785153921940700640985230327254101282418957434278094733573370237657119668278229707773346132217415676606907318774617896518141845063763208597498238681379450871070951639718654953609629423736154059022910895383959082377010034805272468852810610162486469825205654429998169388845279921313840138629795043983833221093057270246173099803492897197429056563775382110522403285886440597889359221845249049804663893768515718793861559504498988115326291620506965361313301462372642388587148207580327500108047068640173479987773384061243507963565652135786608442739788659683637084983666948921164068742093432470125353149358686806090631165441199859189354301131048090726601811707276734140554267987385066005429080520317766726894888373597347133847921164542593917470732229773027709143775025773817081272916167256253954163818307636014378815231802519079484771811447693925016030743061812821641300157307063950085644271135863620209018363369674771243898064938755778298512056927620286642780549808969224818234233714658819273588820429144798945672104600861488642352466748968954694277626406202325696284092422610086346953358961499738690518503064392139223740457547445917413407574155968783678524226685157730752282954244120027639671259495401690202789165782080461069352769038832852260439847540424951508248391685537089687036643875234588868601455687114049617121171875407958663225280201156675819352400939328984278161732187201928406013629722363211184114449476421345655370453382016295289928274580853461525037747825902084096705574994328243654973076800570201326255910451688440453927691823762817860534211856237207170922765913606720876907786135664786211839408852471392405060071992453849970015206059269969278588911582379897513471582962970717949514793494081952240573382780679266704326974871990550096578541911432846679822072140005065958481454790517322084163591636287164537221661420896563087428790072543521373621969327861216775927403568177491459326800211469498286737839347290189247399965614517282498753754745271374702959922186594082630951119661593240285246410131310998933523632750066638063584692692964740502268898554133629958127512421574826779080143894264373581079087751623722821344119077113112837143162535150499427033069672794409875674868294169907747648809829471219814339645117998350165662881136858457181677381628610999943514940191575465374741406076495549130574416651581405223692685910298792455115529271218059858053752853114102488653329677431928008342571986509638958485432055982442141431563548114257351527397582776802097676552346060489947880615363264590223279009950040429184844674623593337178588865729186589178172991647365482426209653950344867359080057142206529909411736401256976615277978522891405748906889067014433016145681741779110746405083219120065433228889768683493444483795144453300609120604680518050035559866763267393961271158689820812598624796051605371582810157910010540181200165719049621934994204831444171994025069494678383260366767203245332768351266088799179046680882056587059127281630850865615835239291971180664077866491289222470747052759009286570824068156568459024852736915862850664012219894559943666778999576761305326638117556477418550492198035112635611885343635375872129121594326676457028637919731566033281350473285814760174275009331835685685560954854661607734174625485328607415641101016140818999777859036443396609444046028289887553487708290266633057108110134922165605019368312779394335973746026945488946022956030700653812735251925108762111004735472820040613812924620123120925780419672401861344769455602596938380760542192561259153830323412088563206770207226536675423710576891838344422284549070121914050037702182274759754868230405602173848071791550833625565696310934713172640892790172193539916342273252476592131292122378655835981572037738711188766191049877677955502118707601618828562052077184611162757644698555325257781539524619327860188399013212758397840428378429868159517830832021653693493739592044083669926684002737916364546319190555505382196595092983517117317631616790691634076589263128952408321890059536423772010645880089578081241342797337824523754368953148142788815978359817179735750120839263760664550966120480053021404783029250930109268674708379060540688711256842819792404577016281756741676579491072016677586473708830505913559424774871016587335738181899091179179864039557203100854646805062291765793660096665921737609445062296564611104772488624927355508116141978548823321649319886929623590308889188316296803868011529671482945786086100646615125014416839210898854944996310230691476473083449009600254466799117143599394591174200551753429872942953781735180172380032606165273145216532419203183913954269107182506248297610393768223255714333523785332766516774255802046457041351286552865384492962569233312757381290441579045451568181577457618059779945364347436106363716146749374255928652380777280424347376723290906327693445811932653797216239868962084447021520769845998963689505478712858063717670206561233735345174077514501221453254309354660143440245783448438744601162431887029407397084180208258761712530221737345798769381126625074400906050377243428214554054050588954816139320936067198135048494365557171198930848061576150091060466409206145327815870675602919294918143104707775159990431511298032747817944029829873455378554981216806876279666905171413279270671851480919760423891649477507662159537588357358378156776417472897570891071701488492695693791223078856284645689560642531513613101424490362197368137181699084915750054141907457282369965774525813109185718525255161553340284514473905125599794835702142935958590292655268879592208816399108267660907423177870740630621568794950253988802793090225541260947803621500297659097409235028493530530268148662237276329801452424526800360089162284128338842860484544261479519351364170807646996368832744222210250769517994863698116444196025568720829108354017544446343886571097393061712568302119500868701789870561898002014649876677790890765485045412242350218934204177535156531471642690569461168199675965233828008929782500034763724009498930542671462184497715649769209030693192328684313097596412267458334561273484104295060201450149172570981270781755981322768192334032460803805445909086872644612091101013134409063627693402411465968738632961898428108519055627003461930286195068355300398600240131916463923004929749992936025762835250223464125619806946994428598799815830958055581655875853495910284908785610187823502755828078500055747491819156812125999749919271060428949692120610795233423252542916987562677074709817218122036611283569836506318475124237819268857707631485964230117867558435138429189475678812288838224885025366768550542864928305139915704208713445712787655751370398852959558903900122039400868095968797042340907476264405600238338600929560375395171216129055984329910649803478282531329298384900401184605477138280114558104936598709466778192090670694591799227115811680211575433084436136968649182165784213417014648434110116957674962876233364435606452979838950160940372049603927669664122309206985226684330867833271563018189440189408990391808017917224163997395457394699344430452446609998621579732884535323414914969938359041441326161248442723877629763648007991362335773975187966772211411941796620222423094841997831705696008888193283510845450296462210518503558506350125206388585829037518757263088311608940009947996130234797642155340490864117478968193498623217935088543876644874237375801434840908009890227337717576298271974430937949970438385781201742257166310135950058027046068233730044410251377841228665587024072667410194189119452235340289128010604918054928792665894449429974151768343376649099937855190490627329575114555449157134908457085130957325229519428360473867571188992830587930588683464946501535846019529674837889132256707305332012481303922657640542726612691525853733119733371564544298260321487676788138935458111867798530428719503802835959418958598010872745300146700130053570054844851559887615708349885876114230111685303281952417394224665361055141731280649300746678594052721337467930938627645169961323277546405442060343351820156757257149987450826691931903352804270815385955397212886988463971983305371943165264825739636634518404399858927195674606734960396917140792682536563180040308398651136689631137467004409196425508013358560444282809180728391593882487222900384264336910171033805891252281848111133730230037459636678709298394570871725640650889415910556542453746476809437309603463653284431862237494907527224532635744891807725911319059006187786581796137558861432132336748071612309009847663362043903870598652528967410579453299029708555750426606109754853900614764760089890183069674113722397611351977713699772545423835693423704910993943381845066926502345031345133801140310813819886737908275369429981049090444210117197662574350513043142015412665956481683349172926895149738938432897137967785919557905813195694076065775914812130935256604018123314561361058398020227084369890807657923261958102046544273399292570669073057057832087474131873509818697147774139316216632548023293429483304344174230203472023612767714835029584049975913720828663178958841130785824318973615223081803142890772776858194097578294145489413871126017674835482889482271717634907037987352559749191126586087594428862587397371353671034003985811138987676530401491633150107696826243141804184293507127753625366975797703826364588375442108476647502296945085992506898667881676548601513833561307622085037409499181474460277879307769428111895532661853068463350536253147523411324189409256832701124896449209393432446063080067703680064200222461631701744421866629590467403377474390661693876844341470954486477372417312160082143539835081452823454535354280752789577675495456770647763772905009380455236812988089170029515435142032213434704679022193694140831903545637409047506704732226183433225176560888641767875441567304766902950397398111634141499071612208590032863796377547818018726549309737951373952291991342153017734281762484241158193217759496401776696143584202127835408504818995512519207143580150137330335529853531417306434432444452028025825880145933030437968675461532214115772604761581189464509379155902613442921254155961070820771566330753928992746813731194822574768567031662631481432402944841360065813421882576808303347311650682915507157974632901756686477601706152060356256180968721139099546247935697462019306381671397053322109502141405475164413940477561099620970474157513618143111324599878906446590727206508888848614768474891032336370231517897752535981157283811974083279808277307658667946067116688932771477064028076881823026064202266334701761799148968458780768622807564045662173922957635406208737893655893231165061975135053933473972314064302482881495486902602887423632842077209952138459896106100204621020506623784076123746327334078185420395129458052322161765180815501700937656469110889518164665329239332551913418511080553816647586573544072089239216542994567564995738852806325114459997709568368556630425855682144783113392804454418780673039079413963569789264034086163374147935980674487921965851218118400464165823101391889465213762436060062296349192458991321018791762430099053460719558695642078652001809337003129389093676453224530270975653510193638349513675741729235171649830629751781958777639676745003593329830085028062559606288961483915841410554653977488632357625962797933155802038023120086745283230727657908532182679038895830292354636150613491902328582771518263951525741043183695693259428953127088054443639142500166767432937564733033337609297946255365017265282950352112900065331206822623207839563989688843734805984113815575498260920276661928070058993921627471908225770089978959160902871044176466800683668970305547993333484923700301624668944025754810516978556498266147469201937830604818546759709265294023040307100779821334588590682535478910867252640738025302167170752050257121247962522300614303507624629522783860761967993465371647466515800215366172299317743139002565046869537315048463828215773488126602118704953853004376578504191063811480568266259040384822331830231071556573086410177618871229339452685763605512953607475915740954946615989915691369411735695969815553541366722587573578888847288576059913557022414260890372924998784207520703466093999215418782842353815361196833498718989294720343529261358636499690483669534725041550803213215273856262275827222326519607307763913073344406799075988762155168151713977701447470079576563152777198566641121250194310042787772059196373228583579908734369582862698257652828100631414668307350752310967518427221892332080078318061258049633151380867860977241776320015843173497078106693056515892969077220833959133453702828124011153238547120159166284379951161678383764545180404938813265896129303005398957586025952241759225604435574999208944524834801221136527415070881243219854279539125243492553784222590439333692962726503251927384497660353406674601606404097413266337623069621331728353102057124369224618463849105826505251630723837391520465765378143933910372350093696657918452286696440615765746067367138540589604527067216552436604366301803419478252713784723479617293536330304568623209525805257042474083899742076936136378519130584177870437755027866870083287212171108615989937046279362776770734438865831097863374108699585152688020974448441910566507161013929537558175860772447683801008605445305492856791642921533977389576939565187171321691751825196280964138287867446172088123617402851202769565621069921815733062841560443170525038682209209743147955122156940712380791954513131263246787158476165773650011505231344645385662297009815013946999117006928058232942233474478195646435395994419034196379141415382794122810163780574106681215134500426338534424852213526896437285680331048895736590233565031434763404484077924723094419708002994532895887616128321350337915899947344699653913843584515434494056501179068085746754710116306376364215447961839939350865326303622231648413563427903939418695961327141463708609720569657730183668726027016101270668920832224480861078523913964252156429775045700299892363037793880480696575220936343876908468758283036286321987143996895252786660534985308105921586050343147212242686528813475650183421785977328351626049694687066894849425537170237749827953231138823112133368387996692790392736125918165908082711134473550133145257852643425087291511328287528244125338663905200391623883996750298839284040439935466456679893296707286155204736573963052439322014334133936461895612754200270497657434869632071509687031964237563240153946403641211756026435096946927530570244838256936888306125586773722210331063932640106768182149337904300968494894686203246850989178737586577517591915944284271618657069116328994214413257901069177693495866411642424888152064827985295641268116391747822332054520608480611094713442109604526522971758067892591704501331024262662790021220746225671365028515261524851295461561943375911806071903538782410847510413113137811273252171657785963245420641251618192674560016219214012067806315341417629973814441694523599736072870974726405463094129959351929358779025545403666807472071520863851717304895420013809392096103212378907717263349312259240390236206855496628000432412783234831728083698509963397680385464257341251495114518896812407461928541132116762479616742992486835425690225563708428076121478471742301416887535546185597227189528494149181777297889273503818428901608588180342677735839021397782390635975926921382023006532384117088204395945756367321283952956155414840402666724361468691187275680435454078276309380216384900268533250560972760762750514273479993978366419199518302776559881139131181126572040372896019399876113696606282138028870791293108524070767181192045073898800936699181470381404138711437301282391872940543181457276040446136114693430863394731551803760624735500730494815490673190940362644151862063974305019635935410750033852652501949055170512158835888709402682862386694646262865658606757124335830812464590977403550205387298470396396479509970219637083944954217476062414875380699158530277058421585995870949388276921207900800853851079343406636185978626736100836835358089580692929354454319837255100682619107622796051638489281000028547515090568540235915355788036342539207192039133449963338175261235177790268052851632526996849980558178045721776698887872328779046173963094966363048402511093093753491571065384060572734832127674746317722524938384631252712890104398411244473396046702884828824262512320751013666294723206366374202440188176840231862674735183559476343713446529723166498456577310320008161339740738510690861181732902526697502857871898157425536816013577528089198129979076124181769735766605899666546873265405791316757687683574035423129610184522219473180748708251252949870240228657377966940743168887365949292237507450277797520070759010210587378947548105087354961163952600488531766744843780247640509445973585441704709269332287451947258582996970684813148055459558656717573470475161116527541118180860210258707920801544887414347483047063694870685048816759949610678979932648314957977056151948490671380385179283750335033609699994204797716247490137160643692614105642738148256365581282105384822770019466205286234547737137966766230003846866353059810998656730057814141863164976091448240407145009857432584196107811665181563162027220642446987682850947685684274072119684943806285199974957818204764553957095226166013170580768777460808018220318158111797714195342071197251919605992570027101416877499916830870351697078915130444664657480383880254667679359812489583451557442550912310990468709985875968201901538526832916333625401456884092386800080310019594070476714984744036917870853020996480608936656382944219574501286418691828135992708755341090213027490903686184739407175698646281153617316379672833656905088176716410101740221425664216513960459304478844896159845235890098660375768863818026177581345612859452075733229348490135089318828278889554044908252606072412435050926311019976797008521131113425503993321068594516423219123620962472823853683232326823691600336663911861856522984087028275690303813366462033175761547910391701001679453328964527171568058138714259684426352819904429075237484852605552145853383911547923925515059215906809360577801007384735765551946480839436092418426688972643437855594942203226342974224007339253147889847420700877616055841901793265106662949672171891706938923317885019035152701694971517227396456476843358944129379334306375394067666193257969597801924590723289142176836516088433797113172301303781707082049185019097644583558454327111392152234507005773133622313782766209303816326021108387620171964846776736698603765664838593477835161860995999720059706045876314831777865782857675509590523955670861141023680997371125316208364267403317603681655020845481431050535307131979873043772219539162078391187714101658269758477897000729294389041869332779958334886694316805044330737892535063326244930446575012000582834138086124234876921293970268486138725016150538597719615028855782114141221711842093351237313124742439245613295503021069415520403076053193580900548818019132567971339020047538457440755348334524565437568254373134887458355470242646679967199193441540707374515530513588026874983985511406778528078956088511234699850232692082109605644190894207657538439482165505072478331363163504341285972619779446747842975565380111629015090586833529791705997939135594924201040952802128213417431035680696805939794999020017072065438325989685196170980176964407091830423755402132280687990666641690579442639121326956137215350870694096923961182528523885165059855311464995609065806330141414977190330091334706934063488228042868647999647113714538156234425379067327687635822786638463840728114258960624216703417560111781937509492180994469592192556838097246498516347468085667286530525896752516315559770488801753767989346932188405700740104522311268299117147235121348556575203830881262949573262408563892712894262350586391620755055652606100348683126448504663738658612051183036665352823443198642527094852612581078248039206422359647322415347863413072107645187401665112215379173241945095298566467976673557173811861884316851769626663058163749342020128374705717760737834701942661866005255086102087798535469100345635636503246728716594157946438509589344669709268851195530763441199105658380334912216517111578259677323681603201508849962465228402587598738323334442611429082357448582755313006397744144842230105157214338703353312848801629931296081290618385947624398158533634798426495101098455524361782997777454456350954771174466128147592693625147306002401457269512867045634265659637063893453680994819287400356213368589276930231112516596461657600652869109140926551004019873520867400908589816339489573292173997094591714947633070817883978051572858878885659666891504057712517177492612429334427806433987920828807295278390907241601087335967346436588352454107744540963446696614768244050683511282105594546477147954183728865475053706423865857820592974153029869461201093375603631994154556482269152666182964050027691246121286277862551263701204844891188508868182173002202370534108293451417911906629340169962362883340035082104812411859752074519421333685474047870389762651537879685383377775228986422348706180888807801346818532580491632511282311024527930375537697793907367882754975130767950203265636468027092768075612499137657920821398066885550392926506188958565153303770623229375699792337483581524434416932444420117528645699562020660350304926101767287049156257933145450376354894051215017626742585255386684254111629443931645208688987841850805632298756028159408866673751829832678719746332055237732186926838910685188068162704540584034117699999869606882701567725711435043129484531641119199631064825612908036575764971208912595720307550633807263579377377884468658162315479021625235997163513732593692952750019968701393807414124237679730745953716154954212858626895437083211251599474291590180109903503586170712595216832867289611508582462915864355018253073482443013297898244144536375878273970151822718833154630701790879610731804424432572910075957314712577971011483395786622711290395997985569454093023882747614967084170630415352682129505163983329052809190497545710143896151775096409842486082334294097414689795040860771654377346097155662689517201691799060677793449503639321347342269146116285855617201958139085082911109835588623227700550555771734006704033718544217672646548263551018547578652698142916188546944130787240223385744793061977070556111504582287168483501685504069127175131200380110904946729888052903590642125181158965932845238857288972549263913093638562035787067798532676264018969596903914255399107330601028744309655166445517442821425006343850660878585827716467529299119975935651420747413390810217307725060969168218726315794963005292368815368111762826719234885970802944957776735100358422222835281543204385526116105228655501137418081061062539677756590015983889739293932682700429843619052306371697991175768006603631282967277791810916660552987277980485632794179823974102583967117942491467907342842560688460210482639656778905354155988330602654015789810992011531185254680183659367765629791212443704235232593019032766693718272635572085059463756355302217838368194370722390781897259668466942342128467343938788055322186853016326145335133983518122222621346423098981570906890448152136393735118808628797190165502014347989875098314340409829728265760378308296906371898865255627758322374304596891803041405357647679105646636426248616201210428499824189617379730872064932359444015227709871327186671683449093675934335975186525617293235580028602041278041501051955330506561290591690004763074458035686766417211597000666045312421400048397534826300417857154918625770230232110052582387341968495265560319657909913857804041711316349329610252069817859385447709649000024272524313540343535987922628442771705577845144646696296738355087256459352021244894271061213654888455026882062682961566878854195668747738872726542581450896768997852139123905690440014336478695426107458455054131019550260468484280435639211269021316569317375935687940327511018197426589097302763935758105001640933283977432325612941074429752444087179126014624488593086754387853070618337411832871502701508040208598889669875696775873621907972634113669539362262627406016399711059199176646143980958539681708212462942138682349383974928129813178534765228067024689106191590750561069022592216737639980487259933611129948208986239528566605283880282405475164453688274544074484889654373866915744898706627537299456255893795040770996714758561901268896767724659566407120949114001627515946257129488377912790604041320711410307574260606226859235377128615394478051482623638820643168615395066844704613577322997551334858531776496546247537556530556942615009756965993327119131668455124188869235696232670405279904443066261774081483519260104060413964442020642931283353645985776035384646538068624225412766956923870592252049980533571669624186807119492135678181564002239729233712380985204194093059278866170541022473868805744552296041204615230318263048414730051954996421252544908658391584675947013394348784039689060169783701569879936457183959320153159553764264143734293583454082725421470092283266573879287481980751475366943823580182237403578730436490008303425796415890207711295006157057803792830734313184587081731527470907814153292578623704802942839563575116584756300313913275638663045930779384622630307005189829034316773829009078514570806484674276844642298117898008550125494724029214736379538979143469689577694937392217969294838814691631369900979057934846123327733711513870903771808116248216736194125593502514537972504582177296327413843884921996640671560407394167182099382250478678354606838625303148757923786646189182576092026097930805737853310283326971418093702686578448392415899974704058632302067991023887264394330158811000637727831231493575921373556491230911025864549395724967785150558339513692767668347169974177527568032281926557646329949497814204336690098085694688580056411684308290935769967936322207077412017579332088365373489424748204636603531329824018420813515762232074169967175104566923008983345397094949416349476384194726615253349710618343726848734543853581356853262481661515315680468541751257522000070674071845136858855375843820351677689845603111197794357994148048499058855286570155673377166419205517299810793341492823048333381920515025908684508821913996876434512527160105910752455383759666397827534012633285463954223206989740649466875398921274216549179536661640497068524405753793297980672254543889316684791326234367991838683737445214530646452183523789465366408405906123207516393176040518713471375105573505485634003392834578897059534277797057626826858482086917923521821598847842078893609552626081294111221563654539802638110689680480475120953103628451745437924298109856302857767632574166204954568215826051502695539301775757941234930606359602473846203050375460740301314448854430335459840133566618233622843954108027671227039117051001934760003162428572302634135456770891207856106359297954787232993721722207967475290019443315045442787434549886218033647543463849374584186545278163530092859500819361236523961341301375825148208531283493492428776936466900716924088892943973546031469117380786284419791913764126990330328637020584558381265525772699074423227809593104247682461850618373104578864659894931205041072716088047880242420242309737158731497451796373215462713674796761208347739148674090335655190921607731778413624442211046928222138615330534692977710670835127836741603656708943766306325519133736726433849403179449233619254719522082718870538225350146007280401450609017517907300343723367920574610270010193517439750481240755888836462293509601382259415467879010191692247392255511908823448469553099193555468132623804201075042837148377513496736923691338986697246201830872869898391632562088159300275276862040537283877804624770339991554910741642431357685521544583681859099062209729891036290405204892621898608238699757030991538078393546699390520620804820978975597571550690180087669421545546295413236458931686469420573468820224205495035619464407628484222346507282785742729173543128859079305430483019333364503669433142593184379082256681097494657934992076067174518651882333427683108009759294753167953341216919341318719074502766480861354748167257105188859991544240951896798017201571569069070707424833659332960538555603197010569905824354170667713377190653115848301441262474188131676654724126133310053489076529980044757359089760450435823044538765447490157168890684256468260110539573354943077718640723971416885459662772882150658550559231689121891623435579693900622349873693846860907037171283653032990587176064677832172545420311370936053359621698929167692135413767941906082323056730871224817657320576750574664572387592087394454016942884695366571605814560582736342090352279774606937790545342265460984917137883629016539952136982550072646163441521903600293895919700324182557692542897142547996064840286240731268599938116991290015375821261600192814052894771091623748102831117809017191263511231395103375417219212334158717449752425891779856626078755269384103361822834905380127012060807883725410832849283376142549354243560303499916733375324660886295327029693035384998296795998004468515181636759342835148983178571276963578397082131526759892105831200496537267565667705347004827619559074882823450648073133562383630223955353115322610500849518191214093756542269343050356554335900321012903696601426187441846097444048899602412823782448775421984006547085932486929300658480423617605819818487329984824494783841215866279564850262750806732431174997112190900267932443863569570728863419413515085697486265809297879376114011580968672062566227898131702018122340659229239240233457957114855238070996163790432794688490514465133666006450080394436283343755933641706138727112599360979251393688721720124308443987095781591210315860720565031466836870693658618720539998792577795060187633014262536316110553473020579288170829832540780374857671911824938551681920201547047953392513575829194223863025242838937395076069001781081143145508234980118223661262330150027060142362961239705160612421365181454184980092067134959228373172701035493426477706273146169363967053332862299927671342964060372384619271915530043283545755817099455476707447539815007310589302253516618276206097030294265507150479860437352263030007654596858213709571861404042906997654130227408430645636248276171641507675111851826459631778210685238273674768865166993229680001097069118804187275602965852076103405209393127708882142484021246200452945922917840156915268495189490501656945044774026519699563734803960090520312154035633581645278351221626358223593440405901286319663598637449330328598271886498050094134320490117735080303200741560881167213610935171310938390081480354446709877660169306122949220170291018453912496843993297198371513324650710135303750708833916392149173408595433461940464289333293484275973733656425867519830895591348316623453197214897905321272040526943142741395729725619431107995960307093827854008990870405169446197845136261730870252464944784059877068433560056194515221440531184086594098178848651961013368405246794523125182757203519915594702726849374661367186215293012133318414873770749601931882798659174952134725149585974224402330197791545359711945994248314540373027445867124761334674002278074385470292196727437277958253127282337725621330396577130970349749333562103871619973220313136597692983645085662528156074498868944822271701704791059753550625313923476206652893411368786987698726831833892008330900104445136740619578338383418961527116117434364324520090759526066053368553880793653552506125823662937582134907138790484198743684034365658195691789446429481738442299484271228473888151368883030547847663485488616850405349883823894860124216198700157987279818280786800728590662370019492540002993701281277354643704745563978917547774231038016624820351794244896267718047567965361352452966533323632854944833980289941272579004071113074528938123704549924620298037732829990834546943412413282430493833759014773354855206894706030584537458479462204225958458374686597496604975313201780351889519730978881616578738564315086540055638821949753144251828125791856070829350709241361497799816545580773491880228005441303415281675878614407475388556038522330867721690939065072507339589563795618265390497808300112316079841222265448559675931820012096677007975732352333729718693243447384650837797208799915208060218920889576022093144906406981081646031064729870320798228968651143083829617584368163971325435439448495829018699898180821524367573499892000229576679073530769841586796940655592875597216700685733924477709922627658598828028216430642419322063277765047981410924601242806993398270429011811369978845251052515068391407527825850599683682183684155461723389967180518670298018988465583457681706665779328645291357831831301699231150932602151838947452105150655752314608583680887622822127655425444694927763300929628660783484560768229746358378870704082545926699342620511810035659436862985422034436843429070213981483650194208606275637730405079474160528826022424726755894645670404051725773044692751850312446087008472830461887118435684801745045784175025007680468342365284397738499394476459200721290665183552170063049165489565765628590377737513280170476697466668781519234599761443081580492793236202663528966359692769676503590099815500844121486175869466665667610376785805281029591195123457021629825096896110858906554596380383420860828690307858461613142459897064570885393277075441378655532386029251905021700564878538902960406224320991796522147871107227343999086979051113752326206912627182611785703479289154451302379841413816399213485994368104809317539056344434366025574179656088777509936918295191352525934464541320122839455968482330523961001741304668607743032096848719009345690994782725422186130649648271739997493404645174347009233923406952821266423783512306948505353949097782310291290487622659262333092347436463784668505744238078538653485595830005575742708540246969024777450791348330476943169026352558211375838949055399102697792050294147572393105975847997475264117351563676850895501907265778273174435594200296635180255733420911813143464709940013841892836998010769236573080925248542371871131071594968866047204578892622423647673723627934309429395119258230137795150709117718632082298551956693393094861872679817566072140037181429917125949726125302943792080611052937485089674043090262481323849263673296965235222819622237648500643937215201388916205136352668550351001259694617274948162358553736701798075302562009918679663067616931830427304214175491427463173754810445557917415599715099829886672804521190687774551770725923401050969808490373648078770971937402551341906170287423296509938110711285449509562626960123135163091812400489619107217524376774688404902792031336522294526008926906292716219157337295363261855156895942002171828110557612696173810565256482619353544042961416911717555338751075714740760310697844911595912629795876855752875285505281910215353198850260674401794950915750628704528885048915702267737232838220096152746794399892398321518162730722315319903620451925770619730403426265297326944502178045936894401384926702755921181038874026605008401448104475438156115260345884890577706101034967408754424507201553029648622489172237926633349745009566704740609249023396562635226318363441761845958033516481318916276899577518158862951998155052135562166822945286819792475133872525729948151799242826539044869859204937033029047606517548352472753811239693318600933406532961376553525335553438232756688808297513681136392237803736414169617906943434601018537720897725441024269584986251636644772719109078929638286875298450056750562768950181266309922705713506494322469628777546673662758715129575301033161481919225378618145835524264275096796690833983475294121043843021082309343396335968213677536611869860965714920480630086654715626251634966899273467897498214622548775219480042602359492239150293256235416478092320992294606560522486521400700745893689616031821006325271454272943404320277886145299155556895434291415080188968826740963521308126185656815559208471642070166449613688662059373142911833508458285533597296813474970417569846412992659158698146835683466722346399221451046339844664354393138586451476304500004572405982953310677669990301804840169732917438784357598013587376352948752349623642859339049072016219569068530536301216525513877741477143823950401082624616787813851179130553388740130914964758053312728755314153550068807321493835676508357521764278018528391897626857004683335677510689550336137901752079757478828106448865461522534603035473541421493960981305532837577225552682105257465644187474352474849860924037683170542476679225871976583452064495336671633511028079788153168430708345073981707353715185076755934901569993575465517544624097412519542788300390692652380602283415092350450870082541183620872837336706620338868364795368797713908690528200656186116408237568470287540295005729036567596812736050304771366740867552472874893505097661671656527889755807462576718371072560033413503845332230285456577879915301894607403576687422624585361354379303837473421152312859356415857869347902178538157958107577764390995662490057442895359319614148150331256374821707602512370303103503263165610830308538601650908596586856272967827719723690348763856750538091244099122831215158824585729339091043119971835048798047637348659818947666809469012986746259071630885889066335150162564660735691354151332147777336969421874974684883792803981669123944211022521995271849958906409029078585888457842965014692525451573502378713908761268977832254777552095769331216145473291026997537051227004187584072566682715394543335236302530885503843918882071435277986833371530345090868394190891572801235605592427974982278446990512239342944870814738603718136425386021304850021609102665874304411974412756668071729332066436872000323993972192734935074922754731487837002620448129625690273644339042390186952793553825199718764137095370207881480954020663915349790172308810225085826353203614207668373188339827094169074577437190028324467387937779082864342803779538784289276005731115457708513033335962480830378459790843890886703442913784137627203053500489361613700373136923322302785578363396382505568740231879966241944245674946434422981852854241041703734078275414262838428868724577793384338835454450457697225626678284771032288154855972351743385149726003885305369194153271202138783221444778877549563719317705987584929546637532666195078770041487711146730822289938293762443954918299954359450868858056875358000447838967503529424507398092007448220376773094378186368266267756944657081870855608375511018504559111206252289148988491335267133281387490064716250609735440811870874476894508576666565140220845341963797610822173212611725696381374254782448662742440199411020075472574931344553453633500285566587485715175192741398776678144441177170008804773154370575317929194278004263027289191676811974494268343464732157640972949040521747408708152168539141252313534740394572129802654311338401089870049179832025610332764509956866736746596123804692722854216224057050039472644965333505586526273368356415508592895131542378132016798248510429208573580386325815647534226601073169399738457691379016838153267600263757783637903993456417924830720853843631573281748572746912321521267723639248949775257749514021435302236203067683533258538258459234715147136951713387715478966277724253022805042393225909296236823622791937805952134107980684318055823864520962960398121454909926566274919923023458009172081567622908099187622217643404544335423820173901848135273247254312798066934218526256515669835566299637947459673860277280439231693800482976799019224404036887573440207674799958857307578598345818855681452347887652321039369047128713753121232599665768252533825047739173622422710783119000846154373205565148354078906040718247478221463924157397752133872554360508960415744044116890876393903366985031251005269300651331666006794593111010170984717029650075052441927285734105497745275007340139469591463972828564216628858271436212013078448693249747479466903736790009338269767679449251043907570425620717623576268988675487602256200241369016650990480162752434962606454132763909695303872299674038103244251204997373515017616683103913536855527130612598634497335362320626499415683271997417716543425573431890815175160238688092494952849242446183707598090648639519915263165183763018712254508736514878739771043836179591306271067192033686575816772046333789900142315187370361587177299851251790619157187059783627268378584053664207855295197981165675189954015549357200923781139071048322176557582022464527057361371469636933519816388374231540479009873227213736864508062872724600641484618442438248376623438901329778288317161429930408499875033708499874504685649330257592459787100423210973384634687475599904667200643260344236861767355269371855942367849048649543901574175268534367974109013339492124248933399736115407770028022444032203634991651753189369420822430813780443610961337188013962147882878586763551284304427243603822527323380576366211428857873862347685728197657221890524166945614809478480725864271619303464287935641925914288730724715690469941968344045186214335116120933146423568050111415150007326790467151948519630411953461929639862185505897283761688710924565585677428592719968980986283113041026433180838261873279536082859440881148277220699221339740961879221085264674125064877489722440111576003859045286872814515564561684730940687322426830995777897718371586730455734339039002609146981393257221888130209802182607096588816519889835909053200982240314907108891494418464159865911969192003555556335300038691904998788584287460330456386364713040317478348586033094925629611929981932603104801079991562100747183689404837763682586838915825642328008061476289285042209057784752013761333742181106245363086829646329829007053995984980556343634535817790013444419597056763082912849949368681864518030970494964105546885169767788406588750740237085567673173181958360066525908852897962154805222034953130411166006145876787534489877115388123034720005627044829444479646395206640360379944644928509163385281023706104289997083485471868980043138346176364271127623701339840961628883730470894722462561590086548091507581567763948201784169451159520392193513923568824714029242378192226605905764312237447518431151868718675882822352568790445874071967425572617216363612128709243282480871126379882309433014533743806738070631383013517780669554303025913961626221254047257628524107642064018767178658421765534950984787965436019842562341481954709163536922728531471358044400872146392125063833747134223458254959744130191355846293356427898737411230727744103222726497432983770411432315100542991132400688862465795970718136734256362381064670959730376921153841908250143252741017940908767362615657654991988171965184166418859507408163943177058176679440074570299336879212596652550804130769805113415299314493211154961138427132440736028183316412047373698921358121832448867719558181124235317897457631567625471724491643637001389435973742394126041589888316094509686103129410375196927094181310202780111862383526893295248883025731139557103349759803626111754523755101166499182245565090210935129176646704205422789346920492691075937068520368527112890772576881123912459530139163521193596690883222021077631778065473612621078486949700830946750177593002556991674509394789978486842562797901620153350651315589663470216795122622362914819471264236898410371333682906153772086051090051841817319990870240608689764792100410906466035472961808199734128908617853827750295582025853018772665445213244290366751437825426442012463355204277886874920176013275970305632726859082498311243415352629603736577096256524788410175170592288609591729435167699687585614581098893486307468870436882119661974999994845573414935202554111496731686023793347125020474967149627227780603518058220650343357017221713613516131667777340769207522136718056139464149892737023583130762916390992972641802411750269775242331296336718443858372792820313182443185361571981766826463941088177256023846754451371499556443967680553787613690289939127452985951403666400857839200973858391209741135842759569073953458728500680405686100230834172512755271727763697501658183352717750616103927399294873864656621107272679557702136274266099761306442298541431726927834989136750187416164408037975273091636476690347215207360484358140771632201327005017111596198569689991465717731968537488721550283848837660960120602281062421111393846290774703806266665915478076689780173295988149294140180294474073359433072465258472065300604258274814907842835477559733303242197064023456754291950747985912970547744234823776367100286733381699886544853841304127311066378300215974369895904138662803933049008008013258083629100811596410818151671067089288199167549478270444426568502766563088560630292492674336962775005121386337502169480035523999311862011396666240948660593230806907168982637505484340069500068505788419076513136917934486192175942023939128361689437571839344258721386546871197022977628151449962206790430664395676537813991217470749234195737565146234963692065916910885052476846590896043877598509301713782788781528455748848884360551770957660990085234194400515669748817920219055259909536823976175531914902912182810319020297843949383392542417996503373339831637988964704199863749354536116611561874423555763871186306999878435165436749940632923600813586786301750767181910491058936717114392996928799746827652975894362092806098170187693876123957940837327199142354547524503926013197970943550704247007242945004846988111878287978486226063933234380678055557256221282911871077360474367596649387285786400601423599383645000127574624543329500374850164874503934316267497763525847964013078405014516556450172713255044418989548982090492477254490821804837425110206635001787379329399118572401645701495220205083769569964065404659104341495191919154216705322928333866649604849489982362213497844926815384270449938422745967320552290099948536026107597922363487684150286557245680489297439762678213472624470714513233682966907368387845759950276717890600024355129830735509035498306195212140311339654204107419344675453744846977159130296413518043467511743568368505808557187034443579066280297806395051856360758315183804682950452993996210936427936493810921506747701113052303350095597511115571438557055524391435287379621914048451484065991994561846492173589796293873036462268306275826167425374003787182510484091415345129874582585625631809665807235054952483329897231294341150991825922215672855198222181864901901996130826562282485230914211088633025538591726113484414497251566442585959267863477156159076039028237993019135384216778596736160265500465967920242530438575368639551707823425171495813203865340279075793927352334976826974690247929094281292831895816034634503651713379021403154874038242876605016558231608655765285822598026674965738074903400936925164181735192097666667653634827477156180436544808092490957719845586956438963734944258406260223383933002803612980246862704101256326285277643069869498595752337409297353141508165401584031633181111756216519662973084171152103994000434561125625041254518214257523598716655275566321783393917795458010888852088494762081455126438553156508023741163223894157645194527779167304581253693445662423178605221344831681101143783121087528718945311530739211295410360665562487986340413267793738222421080308090798007483007531853395837573168484771120307914645899963904675451200395410018318892738159835126107266418249883204525511168017521418209187088855445690945816312531001478365296415636170860399472442618150932308321266599191674045514791535661112221945005118709537823873608166261726152917831606425611631720894369059660435659658030721556205150883995449773237359431663152264901169948957303651829718440076127566794112791128413279440646421983156419943029346481607816315639241907473798141851363757710848152479835506781964163312323456566994430796890556700227244308782213911643396564834111528207774168029174584277105543734094318604416030754812070315297976617383213592423041248122634298414618718493602393721676606081933345905061956300684507906222356647278510556464996184977964535666813026879192317749807501570341288460800578865105963495951887406786609794338844322328461642701601942449979532129498233185811810903027210730791818384823952932157594366102259981201849181463114073025811983545506230844824723030235043501218047657749126746432664816076497588040414022459351388834145605386381498741039952739518199830956286587036340250659483184787496558030913378019679804068669296651794304673990384212847586106500118356266775902215398653573853983863107788000043275092264562897175638890873123805497455098915914849792348318705108924212911604101908301768592511698549376436425336924637901608959293414969194562742345845566740967536638240614163229929793185882535565172066178536069924562564720888263884345524683101113217289139334479526249507393454031111113942621653558341287116711492039790870282421755977062025432782588891547145573113149869737536681346083592117032212402101088933903546940471538149551871040616989648299772808013140908356124763186515977554320979427978494140921061531538310731658531689736510404142874247097843781003627740819681245558454152559239222069507432494663449523336434101218059426717258897227018012525963906704159603869552044756266949827844414630619936997884103971379346223602105260057062047473774794991581121467915220384217397569018941288066333287270459042657250642813903387765406492790749977918971252732369315265503035952423295888098815272548181459735264705237005879014569139339461706548354950106873823302330617275179656019526721356061899955773801794669059735418400609223606009455862102435290878046619684872758229611896396566970651292471688357125021578102128087978471141826350620244177913423668233289961328482763499615348528781989029776726682239295480468704556270556576789717495610025127384160975166690187121606243118261660266242256022439633764468036059849472878907219233849986371935884205422103944692991157352854509276739671365127781776933014636964230652239831541734386748391444637797625177700107285833507437113318293388879458908388215913712661343552339610363811011826111544315617705220222663416400371048804032285237951275164365924055270496837969097833333559803571570451192149391108969593437008131100805316894141931946309081823761485682907968146726628103714957195747116832416521510860640688043495629349616681487030129893918444797490591287979908373912685346580810020600433626277395164913798116953735088603977130192969629729937125592668018011110858140186848169942293185505098278603607469076311010928037157761941317911360664474142693139470401099445556530682368969242916322181695834248064064332083649446905664965891570166564034677510893227207014867513423290448540907337041958424800616925694820545805533290260369863163671690894170875130192554996669675458055731129967745522510317636468666126394541793643350039802598259088469794179217774519818517686858995292096774693424157888860269816478053573549245459148703606007067491594225684090904545543660781649586647559399118089813038597383925175117844810833033314632394992109543301026050210914390627395861459735339424084121757229954911766969342648128142537914518731501253147252982677899192188464293624685515272933602480470136754108091196129352534331945139523192652602700817638995978889111725742623930662868066940101962999421856530263871430641650970823638096701153647217266409459009846301156101360228292631878403174383659680000942458916683313553224906844254499682417412958440628645142696969443263105397501123652144918272839980170637227236788761277920786733844353922986587437103811771715044360719847372774983741687498562730931021402924058883267694224812579440301085941419223832327413134017906018985343369347448945925497092217506047414614948388493522416832358987422883367117837097218210603301541970345666923251946032067680038991288503614582302020124662114092402896617186966694790401715742716012825167470955331269127072779820705613888974244279534171936717890455565941870085730302206939652565239851065562459694762033574600767798813152762828544536976421564989707824199722269973841305126988923557540849366872998273756389771083370888786610926045953591826347876546352123584072970100153788795009215277182154006555305687810603749452981045271143387331928457295117554200832121170100241760590315893052276323846067585216275171322944743918332882353070697815243351254225432293609928555770910596152886887097287085547376562806765557913194095399484497954349834008579677300572610961862788688755881336118809297659626701409417614092284679683626367932885826340586796536337105086076814941754840564493962157198125938957861107605997347885413864752359597124380599849822835225996458701329816914196974107105123983413265161513834074746758202286298352154216312836903514906778016405767617517265372472780352983639693363115384936445760795399563024062369683572232763921651990142516756770779780131533336248668317282536146767101136813645343495200450679658066067153364256971305673999114672683110678865102784675102191282355135408608013174549524935513575312938801571039034701829762665166795803842556715759370689853017653681350716599644117158654425723655178479033746418418561328808391443742071837277207901797549616536651458291734284134292191499401728364631162002641738038272266877611915401888802564145123217535400148676586441233499721836818770146499017879308303061218043741288873109742893126480210485590070383795815559525111918061896433284100878352942280227981112990707683525152057947888250532840446821242379315036872156079974731788386753809278732650389300627004356562482738700817425366119872598903190789207900944289264548459190215757767850099214251081932297232325462811079020195011854045588176941234514638904741276675885036132537346406214447287035732409820597970754733394161275132112061145891938361267741556203923227270838785129036021500889947867088612592427425782580344453163970701897078647089070296577397361117308375876346487141297987554479035375028060053903172136052147186562009103585345436932417734805616197877577407597715037942840025770288694461930136783336379016200004491908772029414962347293663476866894440616722507811821414369249501043791968400622301469296048252536743870743689940031987392670088521621272358727186752848910639974300493724347756993672426560303606647255622608317134259759340259500362019477498250935171792841999514120792389215849924395116105281038344811931773751420367519847311993339539133062178935189625951565172690033527652019469792397329102957079357918916981242438333410424018943538479867261758860272228255246932974555351654916184173031245397470997506449697692151337547015489172981424035409492080778932862700713130423483333829079210270746021796523921060811749008503874478909163225393316318996095238677937485369998113833676982908884830422561617774541476270735360458533269369812307587682503415243177280369997433821871638906990714792404527088126374264570079471252338433150795630447772866235065794273725295638213393466000657331864774296361655283069632509373223658580060505121009796250279779266691811256530090325564280319823758728457887810950992542259910308321689511132217729466760516339355286503623663401161598749619771046843208041617130384284319964033606637485372074087301576364977645968783778012922328072344402254260145580897082039457914379951698255663139064044471276727233335641536733752559296880184704624892920869015253177011781285291317204934052218921217473993428186068481538597287083977324517909071587067229684792386516993420572970227116062688759909482973393035433640577891707359036130438196178994401538006719877247409773974098835672416689467557857223721488925624244727918329343428604274282720386834518515553749368215953652363516342112309249052977001683094380846666446041942917582434079443508819451924790399099850646587476894899117952186704297482006439775359207546828185961742750583974349253759599411022982545303584104958945405019015460955220092071565049707646583582402559536226878328947937962176291918181880724817954390440694256587056641058338455162401654284831541243320229333187130029270115301014079216106206447343563586450995868676932887923829901348514652541389156993717179945721460009461670717609342251294632130287212456780135202963420824172083557907039890576184000523376262596132124780113405961383908563528037714961911450992300153894132704349564148583689182372771145671752040578359666915307748083273375891366247545522892892960347744456789751274363192493333041617737157879872009217948844488169468427502182883937299875047863095492647138185452195389683733031432430422758984952619077247978521044214990793385879903913170535933233653617153403282857159309076847979155397989101452733950082186227140915431050271536768278952094401595163462833134497617327838748877565803116161107411795506045589467031414002029027359477650167055080573778329906200909321581352253941986899587635252324460505204468530078653481023731010825912829605784419792951152505816625060255079404719056375067969013878584547319987155977352350170047541622563701497301316660881626211143104940050658019662093333837391926271288707771657453019413414143593967509342139912119406817376066313052143291556164986341112244773090101514158951949129382170593444755812025396491712976969296123174471460842266119877905453900750644049931073391411339484631864358433213892696104050598372492381980507516564338449446283517614264233144765855119444788338773256996812811923177079881966944625562073198627483124438187281551330193736525500132307382183452405579792175097191611104778333350992748831154065301754598509248585292119856565271368640286244412046923654991559168312174120750000511092578963281007158209334719784152762758633685617635189404733006205111451007430626043745673631276324402453895536846335825519857295345536586865388993952600485833834489526825482538261537081189102045064202209829354900679507265867460524025439832516139258272520248221787448597247732324216511496362559846119800721610339650600814508646183357212876597300701208383665541669127860635288750504960528133948622376802962373577606920685934914522274845765726128471666416554985638372113823448926741636607250145005650543011222897412837631097545580959826358859351438180627248380863232529705423626175690958425251438495261039233247675921844702472210989391986204134432690475195416435829570924750504725396088426935213328990428737338507502276478546104941451857109051980436883994075813370845702673671874137005048171778586944075013330310738126683739401259742018523152987246616420764970108475862821617468347734311440185035548330259956745023330049125493680233443234425835930565777799885988929064205824107168466976975474862975960222188975498446200152327278491854634194643562583634939505441386461974214197289963375939953258860696892608416747644955999922166246083266800611126101244520514510750826924873404107870663545056237689185621740309847671667715298553620662685408880301917008588852925092717712261589699140209160358893062623488153594608045496924096934941738844615694729882660047994790057935987291070833651637811768218179925266661376777113708847328283870644735864571199924059590468367175501441030564115243029515580951020245210319527673064967725941841615530413746981908201054238622489008432521632386324895872949659860361530032315040046293491594838804555522719364300018833056222453550506003742046636239009021262340271919026538903404842970052740350534541585891962693084711569535166061193803992210779324018026185129426073106773638793928246684689103386106444378262747099022815545008594885639328519374389734489102249563271340436281090907314735661191927837991431658207502972174203419027628096221572263734406146295559712439397809561628198234814990344554059116339298672448818796355359236940607021828507475691114833640414421775243346704490293645841751941957176912389447921433633337472319974314725609091223740165880125024847273840806158732466998029001942224136980629158152384741122146915983949898398546234415660056718473760225636003498559365602916458791321442290742513428263796292519262469659316075696309486780033773141959441371098917006734330997065360802043591852050446248989327579243270796023258067141636119535593507632604506746996450817739468567417701683843312900429508956910944703400575097431461457923953672438225089858401158866949456136574064623152417991098252542458206192173496311669711029725847306336072262035036485758571194533786511813402510301034902345687701476563060332390174004035850877514406059255562494441634443198947207348807021180386934159853398950713674493738258496984305163363424281362544823958570854690026164515070781523644287605789705668600405150213816698558729825492986979226956242669934065593443405682169340814530230597480914579078143216851102661257633665684455447364283619262417079785043054194001666064804291298063560956517004788754864290503372338694358748670283381209037685485502613041937149325400510883414615226814785888979939054616300466254663158086822712742520244830078704376377968950594933425506764483013063944378870073452699749887868960229746163408136174227291939188137305671220529806838833920533809242995704045953607987996588435744856157321966952474709166318933594525648437939056160371961163278332364431185746809795573919625709244353653638209309265238080289522195433647299513031884555835667893553319013624515070684726491281583535466167500733457180603690166741014363991618612059886023557850392719565286217607976732606568995656784349109555658079118692998719351123947563475453938116672631601485540139611121507790957956629509505481030100913592558122394609492104912321429299688025342680823933109412063019061553856411112260712004388132247724923768826324228416459170463083099049544144480823648917102257428823922699259692226265391392898865954461193819569658243596950042180700881993074254468087967310920700933636628285236735386485881122329195234532650060239549032063920654263673931020793672862933657360666628330298926631370236022308231697811546540579316216534781030409492206721453810056541810002754043979134997697350065053641004214473499969629387516556948711992323908044223074641379043513689834522335892071579693342794065499795513979311407317027098272225113666778214313945629947788589709222324521497609976112484508275273120687348768506074857907728266589755278715883971940936616153725668017337078638019575733613864411224164166134702451439279866423095240195785691286358257735620047638807473420279937173747201396264545297462092261376293138283387992023475958342073062129827517131816172322295940648089680533037587361849204345535632857959150563253774992219586700006555757583312464052678902026317386221578721874872225998833677244100450974824724536841231947622900846532849062767344461071612914962904282515025367228095371678227410983215139540801028876658546948022422576849389588639808822554401174389076092366257208332903035437734983743804730361752838545834798219209962688089773290717152274793402436873289238303145422472930638345091652316079235745133399345420030747355938773234372975477239638391862218997690522101327255285758967420765805665357336126227925979843673172389948729540136764134443380714063657452784190492746763360358974659949997694111859855052732224266391824992564788869403398964188887391068925552728623873720391182102668406013189376136402281192553050657824358937819692419864643397664321411623453573578924753022891220626470948474684911150756988274232137857472131684408729228208253238294419981222588832172521942836810959715126938907167106134048633124242122227950882508981223185532711647471451455701995748490974909341501838716912418331366187777650333762792868773762781140104397678137930644681982462635010148333326827590824284324505189364539174699676946831559540649475270711560032971048679849313481276253017239181199497557920399326286387051874538800294806738968385456465202060099560696521335564415906328946788722676297391216256731271144788645662404008065300205210070628765155272889529754867262956921201891454238333473829175922701578038387784697422295099276913203113924143159289611651282954215349453143317218430473717327199248970165451913055435098150446089530294521404850552570426905639503461641338876685764657673960789490515559291567008284688483945703308323491214882554593887981797213182765535351093104141043261402945985694372452049033484328731863865307341543284565745939839867414869327994301183439482880788647034984488379717405677128751842534970524867503554232098070876987666859425975464844517427607340756344748993124466237967683670907501795875609398730992256839492885347865119422797187344949005237988255949285219046365592231522013171461287712461102880754868673388469602963930582785379677192698587557037967564674720000679534229733425189871173498120614333215633987679216163866692895396241175241094181732673094533564336495931402034490494898526148405668385085866206186590018437142218111239880263991288389465378743253396472192057399634127973028329231932028510040277655637019881718424885405379988329530471531481929063196442494943620639415064768981229379058397844166555319487445299113628264674661949970318769698042942422827237387538291591526294319474036055515175041175462532800483870553942218660996819302105913011292497488342717279322541938934594932085613808677519820474044593506888202777785761833981850374159709854262375848669252817363534895496276130679923124944865625625183933081464525588606446844434354359815754929215075095764919618123985091619774229390778223572566874668915299728112079591350189968180004409722756940201342478758718140919923136550990296726777272727300511882485422216484768863117369467808536712458162994769393693652284470400297816127962045382014447454291367338159866968034047119879163460972343739111420721339888827598914852370317114438034341843509406367976628037709758842403208562938685834686231168643585866890892493666960228767204560270666216354076173176098071365923826077618023599695399531193081635217380784599672360781966285265982790449745144477489319064773467908453431517834250964176874336620269140840802517726345675172064200266536285048615455693957243274524432555253145201082419541436878280264082256427904131180272830346530466985721141144345939847564543248157849967774504881924474600053287440299870395740228294129822714941038909926847179372626000856919229682883597321763748615082874709245966303149606054709507061262129703129381219232976446631214076474724125745477389281214923769557182793713891141374766799582275986940905506782728241206349223472714586847870555346151516787457699938200970853168632094458800938609660225772476632012008466619260910054370524686821154747977704439491740427567657884032781812799992547431849890641160313501911862786470326884114894887143854169669355180227954922272824362884422956238239228694319188945836989885396458327913003646283817140124671453607880683310572656790826824924578685231405029467942954968632008022543311588766882116155881294525110210654336044804358388633306580742798050156526512744130296622948746604424520719369952189341485990322087263378208507903044014746673806813817305017585757550427075750361006016518264700826880800227743260957819440821389956705240025426082603906233874839004177449042179656523947555198425785373103761377690424824690857621164390557600855729497796611074454782190063259539612368124550630289661254397935954810475983375363425468602664430495953668047241353811336156155663819730856070984403097235854127223323024752153284536140642502946087930308145215133749536266888343877717164912225952649483860920928921919563249831438557789850594149723497926362308323814713228824889383054451372627276222897597419095654229551630634054102695263127096077635835772351535866683090625021839774667503095190903191929836595504535395243625620697165330261926149577011701695228039956578484990638324819688703585170686010083029924670698388532182135287049703078202857639052019717792610481303240616804200850414833732745066923469522330009207406927486482838664438566628484476802759372685116189245187932359778425402624297972589378278754231961173635826316962042802191697616930821698235880595925838445716698773196024207804446559765356371768797610702235573104794638601904467842527667973673800152264311667184784898792302081044786973881172172493585052356078506323918359052637840313311727500206225702443342013038670074351184652672820524920689520167284821041338509506735555275681134459771409862138038206178315942175053500287148132681754989493312844736564938807212446064041400668685817792714008711473304432995108497938638735004025715375866168282891003652754741303953609080533909455828271473255346519194144349427018644901488042539230688172163924493235227322057693752764299794368092193247015481795441533348617421838274063048552933642212833444798170646846354498359428201790163214998881152460661510637101566309098083592748816922172275286291868005004445783190656570699889131140160340792316856724303711587954900922522990371072905868295955482452454946179935459902077457233839609865343548447784040833090277902589846155231435997428154823427331286110648237477401883666491801919799134926043939226316697436131921078389860666660459487313691032586438900365026916435199911515946458395710239233241607713124588380531105410302339919770880133367329703452571953984100240781538612801117829269364867211320677173687552905670863838036665535504773818199722891266334821580197107960976391370609478378178694395455558630186873060788709862296403594834063155929901996502424523279396696790979781461731421783530710540045924476529017281743818515861715537614219227578819474022601298021770197950067732473795996940637135590481159816432065359192256983201573797330095940278005544810583207433396010637551361200224627932247503605414396240129477988445424509166959797256093066890226338087433269303400280488132516174673913878756379764117918138462007377962646481635413448256768601895041547750888397570757836481299987238027975530528506846468575805557655617319545977731658147766612353168038985396975581416583768093079997658875088381992819458110917619382660366645704598903288228045266527773916901089819389635852067512529058035570524548270026608972245080867798384475433124426751382241527219477582206986494787367992381966734244948284654661339686811693286006241185523902926561049168957648098347248192239799642338308365647476374085284826487784004942805690889615398883428375179046792238110271766017100792242120970354639622658603485104968857344830282985454239513977004100965354290680771294280364579595852763552112093410802557399151295760575487338836507075426351091869724579313616578112817232803187833462740904299380116217786585391306635515023296509740033852507954190827144085677536808663584587442027905360288261960966204152775982639367141980982788335462900674472770185632568257353208764703281314166252397843848369724391824204544019865196234903057024729239212290709221076210600210646187641625329373776251777391644010498888830557621892039739421272964763288486620172817743884318877831114557263839461948334332483046181357387614330593855193270690972694608814551319817204096278925673538717138458381110329241761857761431970912336307044319012146977493783770978463362932033944072312241205686696482296450473618191465227909415562252778733653013656463954052283530286430794651622244276447208921275033068970782278389254866382759838928736862885013022044604628301867060918145201456042581394909671694196489228023790984166654855007470063507128434613399978340521650384887947521882832505215332417553190820539309477651678014033639745562974793026001729062844385162470841487381480964951139303004434224618752095830014928549270503274263355667106555938812314169704328444514750338047789862653349712485995323609215609120399686772500081712877775798578231039890366506474058683432164050826719243610065542237064976371922239089119190330053093746481990637588000410464178990334043529553377208840984965864212445332330824745003899161316035300529359199848442906000295949157761906511597632932894506985281380810673400169775657610621365098901637025775324963579493428760623760032550886733667950021732408952106995208404031419464227468235579857053688977844577797152154966398659520610761624733130937042732072709662296923505948674760084692262360379033520889067807797101669405617435754788100642258638234667469236363004760857599391956386797876488851200098991405913787406567953179233075238451850044386925612178920250593746634910234574638711716198798627121982111035162062279279140353236307152627535969334860613813094102518282247723563268722562258487440215338033025316419307054363230145378361020577963437873612071698383890103928561253789287623746106288855428013525232055634320406194450773397119024412245896275655459343646639007569520066602311908596982239649581517433686893618390299593957712640979275375804946747491290874916544420343779066863937212772251270338971095618265524873185433076012501543912085079080977456588971162913502162377342234272794523928798912005082261134691177367499279097773461325036507402546261724396667712129921041089296887009083255696838919288608350260107299206841454075359675643533639965158385374946291997434383476700378712010214929220021178218787671542432146188794275804796305981886644247736895479977471457768849075412658266167472574449146033818559164635293318843430199673561796497060948303618657887474855210416378957389469871494311926190981484344363529733421734232818352082579867490905227238892741206123910755540269425450659641227563844853863115246462465969003846202639247947227666683262669113865310229270127187882021269199593104570450863257608516845569769320822580848003328262943858754096041070868226003240928425460832959117401900002642519339474086795992868251560863817950931062500670708828588683490139371429410839950539759807685590344407565229652483901712340971474063278872246734733760743756789634058789322948513244404904334142683215774089025746925946320647241411427846070024060854500557651771690922331287503647375384623474663431581762667313490577023598222230974686624733734397677449692481445082036839667003170982113279802131411230323006884577909970904544846829746169971458576836116733215044066106313020775454681991851240082747503615151180970883013905287679986706105056534654513955663532024918385411811785244150171487804469387583602321833104710709274455563068444382915740313532997506357309179045348063436570391960282665068179080261279992409385474551795106943745132336090232922493643163501881060568992269265770641046376715140159909685496769909956804763934447856588118615662557784778438753776847911206625125275475758407917589322439122218721310396370383961924383801802500605853632485631079220590115843014043874123003528063139521578662668159359282155057823983005373015579595004763132240855821170722513424456072243540390599274797500536290049724151843656287449519853757627498914479932462392600386903911753220832470823709291768648986247891111663381638998876547657244192449419736487894455123524940939917660442554779954067957890403512693587564484691909906202185954694986602275080508712418353199624223653431167990057844516342370705516500926019161713752418203327506971895574423472479835922226487798837943462867955464911058900212077972214907524556986566940796370790402603454643006600379992211312244203211800114070667385610741320996423486975959138112156160788132816718597940515025961618222903430903307459577272503045023871630575122732450138044719966019077672541119888154288854211316377328255924123363532899298948478491804934737381904157948959847980055604098234469793435633499003910786556808154656246119569081022892064749434759147722685506407975369264257096559558815621874609544549547671010564779557597327842392471839461439343073633894862983664029392311270576763468020364854357676875594099128508055838937276044093863181812853557663528748819751280716975475197363678779239195039889555710275194784138768506811922363196134285903074092259085022183281148303226368216732235393843562180236509954576458995741728779355534193001474875891580416137180927023349497609614408330032359507163459825504238699089473650425620168080196358584756813845161567330110912532820912009537233675300924349615354274012016156700140392895346721020547256764576594356273850332688464692933157183832762735805187393494205125302506569315234654416245509342963749677380007163924222880187314980638170920757162258291133434736958011373288064080983280782211745137341668839832359932480023274920586330643900372774300048597800049594345800046347816430364077390428352545374873320487232688949859147405937802843072709262475373234193894621108162351443384978988698659684498328844882165166217450999461303729850378702748281231900030433881116139305580988654776886370137650631902555233944458172890752006893802082129846883457978220930766625534771516751385729824530727914869807779895074952846826855316291840805103978862178952642565566825275940368023974737153408689920198772153997003043488614385783302584005038981173112959120990799825586716314018926339669622727160186843213669515787829960815631598240145924356447002916461834300035398597513797697756250211209523333878090311814160411358971501984519188431782067778280688336494853620221284623386546287676022410791864557326656681509766311718877523157244093959615279910559101674633344539107098356015396655431225632771334654609728678271795465049985977154060411156528115985474284517087249050793629472120823918617271691741507453505141531792215973864450011129306178580927756072333885429961223866206402484936066576616846861620085098406944722351358757908019979668564115904572940575923111284798957880008823250523440306635869853519930119724609642564414313170240698874744474830550111245780674650617796472753103579699053187503609334448252440986960008061250677072325024684191293738546268541727914397320520010532949427512882965760130760646561246531051703594269861318095584356535975665096476828047181631725621824195046465068544484707102179444939645131756656861994613955987654851641567924431996732974660458418790229835138354658112468693292706570201913545078732330023899075626364877181075647949943783940780156021877358968285836269691011368025789854753670181972963595092265491984037026321899417596506918417283182364103342449933379195999885976015919286833289605697895072368663050003467595109873142171165625941606224268202953298590441004186865602685968181418678635701482570670140573731994915667962209171296468587905062280480108021545305683641141141254983740643231244240492531179152430241596487783223283679235997328731744490799271543250458688021535384125180468655388244737945472422828625383160607883461229335901897649384452119895041385038035507157371531760948007337523470204718538293182358669377420773344539979411025985108353164485505858736750943055524850974375110044745468179453790439497954589981708491055735971040731968832843485187162284757930389763842507025925642320357105272971791105250381557123176275891699042058328284739595173315460763434565043261552732418068502659347174219452791746512438736594155546126726237507516913933617072439762567918260240652271320087130781767997058301064199956091033472569485367684783503714705090952581628424941277715523149542861612382905136690140710268259219976197338283568243156532245425355376270409988027174936938598338174893660254023299674474805577523609775822874727227436308006578101184631619157283716245039300661958102405827415112092003587783176235584418472436322454829928721505288340581683292488044419369523088588921222846208974567010531050068605009776785418808892726474806434108554709993323301298816909460532820699018603283302544494149016203317693432740691815617122179344844355434230986084613312615037011707206984188010906429037608678186711648154278511998349502015920932698621654693906869298230068562995427133890277992325038426327806152306574887563329556762904019880684421341398406162364850004759287839524155709625396771298654770928315763662066480983442331403456785970955424535737250495662935395091506068500017107866641520746847977197998124615278374093344297132743937240963155687677970681145116756488128743151351027726045057681436943325055891941795841263801321992155454730170383145248086234044087247344413685797850466956256178943676816708744654435414289665632974748741545486990164350662452243440794066661586947303166675320546096019100507117443474283375050089098482568900822403523463926904952025872475883423831739577934278754518083092599902747735399650222974730786178722128877614357844238897806573333645729856628119288491655457330875390050226182913115399111448008149531257376825013263151482562556869342269225052577128711029908062402753720021225280794666140047368639571873319691415103578863216111999272115805693277553218862029269000224677231550975814391407202148654825348973659734944788258419892580847124430347697050115063706828926912025665743344040787517613124550642205539453264034185947441753358237882874175234925791701565476625305453322515563292340528161875104348653788403832629741001700867478002349780691609292927705659771262610032615848190086270210471676025569877674360408415702909538800130561252917384302101431923562729591162608991403072565471334736588633503496740727834106927474681159735824962448666983140917253195936604520963937238216776467031222904997043874974839630839228414110387707043134033307373397667783803435898879643422988238939945731627649307920560412985571075154986649134120550973702775642984336575888783480869026994646919612499457267835654105152501015900268674212437013714100470824829157107343811814115855839467290870846531113621671952296519253027993148331076717325770372592846821096108273883071439226006500326326219552118172422396662515468312198045419625753329898996317597050771319687710330580706059986272348124961208866799606824335242312578731017677314002104553418409650984274182787961514396839488916280476095612927986431171112455328189169442266815640072146536962127195170702564175124635108171777989596483564447448104982422533065315928277853463254055737479585629988104877965428600327221818962894194163522081626920191641071047240856064472783613906014177180083721094476847074799528408280468312136276534403674187136492809441367310898357526515723583156799255232790039910338419826220375152172983873225855129679503329621809662805948714789609987755330038237481862564491463224120735346601315456373671719559552176043892646864997695485808190867544598876799542512599499925362700445048976710529908285253244016816459969329259099407373154686606014759591267842602165334844346170350352910454173585340233892441887134101847856010654973394538297813901317531510334839272830158146707972384986176236509099832323442421460033725719003195392180860335205999136657112608047443193672632267386803508632762918846228470586998665323013572775387881187864072669552034596944384836190937043153045366725476600467684832287930537087256507309754859274303828870853340003645401571318982381884326519874144849201954726257731082656555478670976220066483812320628152478254102812607389397530733853106037260286743620318355594473375746297589557969824086402749718727242739741153528014079598914360068001559444563521050737741753068463737616799790347787397332244528469550795655317087489327402363803689352531824725398768168831934254317279366022350476374067710035239487579325603287708869694503541977377609054992131292919582720390257980962323751043727165711944249898159991451298223652910460398550605097676703753573697975376931982445611733464851482807961153176975602739896067010765280127525617648268902647890003925768267626304054061177360534335790474309892809738382060146201444210594330533729471237241552169022215493086747772502991186594475969876561761673796569675864415102695287380297295361119689683519926430035325967316067011930098778676268623471476398377373046515056784199952829250139983014484430648030996331927586470395219068995345491775650825166572285478022324799155565911971427835115199293937229079942846414852587434762839226780172586315094994586459578463732745978728053968118197508536360882269687830650471388668666318818990176639567317370827964741643586173699549743539997961048582572638260262449391430881590566552614942517044753967502457188090897366134035030306738615979714407770165050541588286911745765909596748585116869835852658472836708342006518791502425746916351486575611007485541093161557132300451236295940609057886776831022045457238272238643497473493134589324424978384035543858661969090896967338764046472709301137284726439658144833015511430852917684035102518453300942514026103408992785871704682315533839806384522724815032492931362640732535884095066219325158041644694877685540847706304202128844097236678109210181835730922984948300316573128159300996782417054216186391598670993182519127925530537290705112661160694473885199547541687444473114110905663694869283815625209411271049236460012449288281624434846844968944051419434347799653615238168923177433805547019518623217758820259432703206442881933993953485143263797387508198101336810927259566833282719845257192992680938949415586489672107343505114306538665128256266897546336250750160162473537670896800039615309548757484768368446422957842695030109581991461799549838695832841388171494907369756583190137742332607735087629863746900598681521310764447127288964244605460372463950827682891788700758293596373304367340123232172972619395535621206252774882231396406806587777077040978841552110237969730247794328540885402910448837649823419305759177040655536984496315324743888849600537691304991244522027725347481365766137136714881606212336758249875595229922168108037238027500736221897390331277682019307124819307054128577285065272800714275230424261420723994015079397144375464010972675542155323184020045840802955701383031538611803194649804141351848340027644949514317204324736926869464583775472852770334882422017022102018775262449241476906684808361435780187865273390977227405624017011169583051927369703113436776051095368740032350551190674607889714435252360432944549618582166059493706296965040772184425965477335370090863440473642918829792557094162380515971419277392293885055131386483865379304253516187152776852984480493244880193120266794105957854346282479884577012119752919553886213023648474932030631314795430597336384235838444056948297999758173226572564892958642309447433402853868801772818623357726901980573223060278880180206246290719228436072522815692513092051219549889447262210522314824021297610950946025754791090316540138014417601768416031810985798547446144416248632075116857353629897579788798968753703199950299836619271872414444589324286208488888344113721015935192596610270586563877314947083454353803791320494763662805956586176722837186182137996521922410898862233925855809857678046978777711227722870786019425927395514004236085357644759106603168407536282017205818513024378500376520234134918813397055090404101689751778078142898917886987742539463285226041459046147892582251035999211828441683820134391282373949550524383088186510758487000841488480468464178900341271221771952702283730040318463467689305813596546625697638550016649363925338755981887830147168993738750180472516600784567049849520562423603990052169138842723917624283283455793116290344573362795546023026363827636977343676323604095220851620107082272347432047565169317394666485649659112870614492347866632108468483237230355785911492854361505764168351213039082973035463129245928354006069434346955940375032533446978424001717757326578517676963758346297047758500815202624324376182405399920447916952217364337517004916090471541425090104682995296475915178564843702871659134260916240543630684392356525201298794364720715485177949449851099203007802590680735710586489588537209915462318388955659334801396598129581092911529244252367998002705325702801716909858320219298529774528912170913388227255543961478833720374849838596098922875716037774909234681809199172557199356632099989012428678632273204274319840142312495402727528811297230356590323592027263692856907271642853336781141920242981847025494224215237263523705420563635769784564479304209226190892191867156800082406332191396995874275354941377255272423464408476648735067256427862832286134594526385669458097429417520336742351340317388920976511625195224873043077626586719018215350478422180902916725476344262126667404100684829212657318918721966379317873028746827788693778442557788100351234634127318262026575103783031093080220418018074624932448012043989324779620174635975391099723376130645748855224201334743127361792780781174969493988645793378533920564189169790859072049652877961416612191661815073014253717437814470698334427150517925478193338257505706091254426233063753741676678567274554035852549275378420567029409222813603174528154981838220686359251136420543764293523918198939833817500112812940806932582556360955357772821009982068556086048336064713630034629127272619375694072078729659509384790158150541422242594684895124753671438533170323663900632042242847833664025973190375134621824857880030473569412729272601051665931601599853798641758617707671283082204918295667087257012429646352390264317276347553705884438964817594446204618744727287278483811108109938103979939209281083731805455624855236081559836762907848260596679025092834276705158277286117859867490914399025020519601346689989160024216345207034082020901740890713432056226957146589051067824870821931968766238586281841313319264317943630471625586475448851408294687637913764528745167628350080526965414394811180546716618517561476711748032009550720108212766336483559696544482310075541323411016686261178143956477080701270376744974449053853568168524331048111703920121966173362928270052471731040016598707528709356158779320514796084393732410775617966970166772052722912162396003723984332094420305122730977868251984310475530815509827662443146601225558009544785546687490362621315798252663569575319009735271258133665441784623907272518131292528057321729843096573607206052709574492329141166034276279260115769568740815735163321185857280244856098104831368253976136557215165377255044553961180029060978763794556273766693906635689697176537576559440986930785802167118004550136930245869849562062504503213889493130642402649229911777613700556960157900190786336127105941619633117658545012031911009151842295875124679928897359758448921061512896461139515418880448766674928481136393855900185947251067742820692197299096525256742879252720522600979461566148109607162034235522454622583602200880972102405645275032735305612146999980372951831309679781791460403344501204109357460012657006785520057562042920106917857711095507618283489189306728558596622489499784108790521989378141641017717574493605582810008042313475780820753547056850822439663635825650602386705451290839022547324826560982849275084437093913774249939760384182411077524361573383649387069372051868439596002754317440839201255360288737506111554889516927346522331254440874223438761206507017057065613068357017910322181115774732546032017980878976233585495394641355610839557407726197055225372870373127867322011216072354058280689447131674974077261897156467302082110178133701835922995381703535415836684375645344782478219625335443319359138030171755822373145443350620030580223467477457759943746998463581627950532199115318478813437540208358703872219410103683563210476838206332824304250543068747077955613218564361907610152914703699136997585133485031041087121266873480782057922188768633248141644185175418235173454076296062360401750884908292949953216404654047018278760635950817450596183479536477170513333370772367500122564923623615012106853157648316777895500263659734885368176540068370928838080486684570082349178313951594313384290252961848440560355221692166364184582701398298134575358066823505942029759882332027126061261793685957069212933146993676268872143742004339776197672152293027163055009227415874765963391979401057997764412692825106278609591223707681610669496104609357711569211719614517101232796733921646097075422115426962131708250850981746194728565987943488080839990854769122119785689670187348648875607752232379085040720299122134606440174751793885981946960028583143141072442501804312975539981830865432692073705485971559962785413761607014616379292601806216609809359221648999483776819709156661537357463030734485884030873617938295528877718316118408336447306412747440333774425501684052363554403136990453500611130961001864888486552202551733874441292372619622655796343212938706750502391775466479632904032260677175184343292946823578653715632280567978104823407900044613734489689195248720747769210418512966773043245978289786438252555445421047533575093174528151643032856683850946166949489205130873943860093326407864375221815615491498557260421524978268865073071976319562477592588220428573353729628530119004873493977773891117391477455472842643061868952725679540614058589879552555593691388058556795972897609524811528027616097314608277428929612127890485045313300442399829997782912314009854949822583769781498948431618714730663363239791101174792675594204950844953256673600188142080451310753710277699895943491958699516165562288133107296079060115081670128681819148116027375683409611920045590112645207008036495985500699681776507050409586307967130821089823070172788694022646309789602484473555416397737215565114422813015140689788989695654512870234901021123724399975940444416131366681560124569594002404812731149033135829545391356522411272361646147385172858895867871327619462312665268056653054905896626125945382785235785107981953158599737920811516857444955979861501433493658124255464634088870424034222040073098370489582930380611613777994847547670506967874238889221437886651941892451509770100418540749279402783706910537701209284119755667479050366143067634508591914418195934002347720441956135504024045113771462166914819539615528106242686617423205987208571535026167498492600962495537679042005178941893922035360624039105069429739642754214370874759856980636373256769446208234058394304650644555036090242162913397958213737389822762016503975840421704357325135212674657443215731244163621505716520821186310676736867967918374857445728125489296129655731444473274679744972711446348243164223018692270537101028134747216833161570917440041074740284650035245304327806869362735491723429294366138399349171901609441195196386512157477856587155169049298355045578853965940982111813829260912908437698533484403753444367766901954991356509788049560783605698964075857645573734286323704238119889237483749258784780059489882471624505410081600929509852996218027792618972003881223271700621226978729027053519848823875161899315873592778951730784117937781201067236900501722696310392065059136362183725173392549451539665268067609872681071206935333354953532065503966889700837960716485538836179746340513015391696609743411760445699567785640595029391691189431623391371892048085104157916908533891660982794395960261954444176553268229593917588859937524909944335224902018803332530955683970957163921566784672695868797936940148565247311347350849203681906404245839853437459483781101813495595201725381875312386450014927619651193786854895357307309015976977636714978601464308959262203981754517759722656137540606373660664713171650298335573957343951783328479213879294530233363420434163114712816609475713688252177066839061706600040607176549192198588320270555533088648884519609647940409019763119669212822944822767424546980858295829009901114453297565423613535640831292051275645661959348863281092002799247673501710077118923452111404612798074516827812983326238686606813832154212597708605947538575248433664179549370022279345792447347377245107076473280245076496770036079935034601233656350925723349134372418352133988509484054369592310886014371913858292993653603048069224846570200591535158419864615174664841214238144638754079061190932199438330991104211897772169130344271265971942493972660766460346488488218335099200924764280283933036528215784027230983148323077150472802563128090768514625696428280774112360044559547204602639612934916042219728551724216741724909599901571512147555727919129401640973930222488055220477517050579939809230054299110179447761170067659988257209711196722037512947654690723955637269798978278529328469297357114009418772663080206861904712934408599759253909393881593688232896562845952072487881836066388868562592671591002453148604644321587356952699281728250645878278502487641115194736125071472616012162417304360272453264419740487641957995455188577610551796735894999853549920554612473625776817645281597593425192859325735615543048442365355130072043079447357100661683583923979043585175239646272589605596022365242590872176195416428601826777774770559073914858318029393292939537992251820189245645510504401914878111249189105816362189010685406400957263042539586721299757517534994263786494984777880531960267556576029007001634248521126060192496493602426787993261798070027188609202379503553652416727091052688676309684615544946294805747608421334054529623321513139719545059305476170425765162647201044854720835749891721474159856383945398572958502705774686052671025923928577606916273073510524180807413320934679443449101318983434531007699514662796462044275025301650303281836541625765721194891300315675123279266208469227625235677133710927949857174069453053949643395911514017264783411676518232965219446992749055372890348139846934701009119657048968767970084142879093366349919112595407794747283226382524610567362793515964396301945572936910386119767446326773240205613176281382658794113493507667458994773432842539303578232047698910468147826778181640882900109935397975902565188762379401724844642542630707486129750466738654186594305920737982217535719570426973992904704305063186430795631341054681047906236975688412390581722237198224398705386750926886862483189202914776913308758676743949958947852654858111702301585702999993661618758135197796133561742582671223012191593280010069841664310561582032106339067137732007568988987878941897451132614563798783459028372018762820433982200285450881939308672365084443795124249847101105635085624936188698475870509363653142862005156809580893769712177197960662283477277346661402824741916609886225967069121396699324519507587476026118715453705418773916433029460877465395716089773087548899443413934460511384769261847353279103671093967560299430451983519411869975888667667039702530023320397854177617361370731423539529670793793312720128865034450445040418982465921601342586776706891428433939713683254291979989315383194146585870105366373914858638325840219175732052646899676931482750455818260695344343861762102932593046709361867251584059508227176420615900800126840362066290573171167391018892599374131708689979469223925567038702384586364140876518219921274269614018989449042006456181977495377324636937824290349143293730985675160041696856875968795592534653564284872060596326960459174901258203388694610751611181750539212990816711538780957444476500401563170198610434827319086263180120298283164277545325597254620713913148815978255980375231022567713658096335508517540975643512384470207384263370900462991286926699192485956667743673066780948069721209009293444234004640947138112685949284196884347456960030311072851715144588314378111300858644968545900681991225547292585870805242254853814066619723944945724856283573843939479062613357527916215535377740836498169497258222207372615008958868516671688407943459407173264155057294879919377881947067232873983566907508226945965476688443731683936355500039484713062448336197665796804073607080597686130384650067548848121021118725500804364349434658952821631539041635399576825208721913681013977151171722965643557032300113659756289871688168088905457564116270311627993427929527568352178062478484870722696681743044855002575423106262420756168912765944782670647231299307550376233172886534722106322294846420544056643592752111431017413861457144932078629651306991180750282175670628578258104526431353863865822987548913635030043714518174602678725911804056155296242248211359425951362819147039808233196703818352208195733622499970627930195868550939729668442106521489601979996580505929396909136401456623605528645981243062906098110010021341163486570451098608098096032606289662687350722887904160069032063716213758091805089145404050713131791449336986354050111347182991848079202828218110821999438156930421936051765211709379613274040917813910691894395069558348148395168532633677225822661940620408149464126501570505423332617795357849072341856743271072048432745519985492548918081786062210953154659679511364307609153753609965793508726550346811532115005776342750915754855093984061863160385282472728008918319649975064777186095204148817337044334972757704935161831337226855033461917179507891569695673494012606060255240369172197689110313278359713471999668230825504646015428680331954742439784964487444434606418645404319344207399814813689373143259596905274952029971160891610131213258977806846910710314116310409411800142163272597182300132240341557613145428108564372272984264947169946382106099718548477671886159696803056848871038643345504353570015015084663910926793316441622856760964143143234514236840925608656348871641350453826292925011910530592298586363516880830180824767679015038867395701177653723636980783970599154127562489620618210350262583416025209014097138540900522693816570543585973850606425282333325339997423664629316078290523167316221594330670861897519863788666869016984321110729610392547399701536085031877397265496989805802968365384644845175307249442019398604838998662042301110038385970520788165679798965669541970626323285807532405542442585119640324391228002630085032446042678215605737712660818616312650691553600927677666118364390142487065374534254247587467634219915219527761967744541339075812341113191310219385986778638221359417579231681302213859946258970974509886559278260667960409945433745274255209504668827364165263741040945865508764707774731182357524266258394445396744364067582013645033829819364400405006694936805416371565987688686747030909697209585303492221061147906172654372324355921972969624517955077390295750055038896173363865865351354656066313612688671200788863983788448347232024388165813871015267016247382943802156786984577308500203054126718996253051626031905149441088637437012424939114773372806328198487452961276641706029802057323386585092022819003559628316379025294082999150522298957218990021988141714595981509054836708543655306764154472118098534538744489009228907334211044870620066935087405998096965616690123021000218457450945386875497639332691018969945954095030767387162331898728842301193385296304195739445325719179357110558299137922858326705147330254187521348325425207727493300104206732272964460515487324887450479559027959055293271912816560780357715321283179125870786227726631628198961051714438054515320580419910572518397952018097885346614692666144440944472524628821119227563967707297421305657875199842449122818569772577762664362205330577978009845198518960705550429177673062384754197521391247798188446072429239180515639394663333163536476060053537515625211890840828274991620875244051742853107752892169290639725143661732885714734124415791108511261428034203960883624478378805955238784038828014877588151151703887874329603180255617504235399009546896235806993884497137472060194117062102261998850357428044194525744266235033371026256473200373477711835253847091264987142250309439086981220578038969963584376905741384646516872181242415590955710530920396033165936068655322035347909069190344673720309751462068946182910833421344899829489026617813285990847660042916007670724810999397139257514162399276299065811012982099615533638200181267726610067727884276614318058591115261599005655746834334716077758640281705701106611077548770324229191363659866057436083368149839399053004638782042154657960839901664231692143759721949849128947644863762924251816917848940196969233007186090117004701317578623419241797828568091308693996078499832755582192444823150305414366785441350804420976806584307204283190119108198186672459794239232340954788173175367505401032421609154710634734308876942123702524573066040245777134070376665021850622392428560289427680738269894941903961606694464537243423105730474124656283987573951257061348012962245137949137336630914032748513338951812239018806864783007826593857336601253514722278340067969366149523429224254119795736935784657011212695175029835457026447190924492562550759047302922871810241098459791390737766030537966011696328262972595610371931176665676955013630275630301355923181002727383015600767846950442073098068473576293321768677925333354074856818047434823278676893887343143543504764911821807457450313096942535185161084980453750943668826822351447746301786627135607237106434830280808058586885124026552716087926680551760496396897714032528455127391879016484469026608020866629122638405212109968012163006833364658208833133292971356911448727773141917931163710521996500740046565637037913856022566160324948735775274058158816024544567445146625453642775241333973017338076940006457385349883423955808350988714999351297649067877367822169774413863767541313594336782481320496249972191849373037040806740659499990094188900024103381360228129348370354934406464146904336367378515148691717518520134229987279734280752317430380053184682015820091606017266371119611747245811399419755504692266834647280934735348670303989453054351787264271277409250281634764556431289813891843037817473174473835072151408050943405334218308683911675380979861194759751437851512364906057538228497779233845629942562343250331946312823891022506079646646279103615285582353931782001006960004770345690922715518367994969507496539034755114171471736100029316761616614835657924922999395414719243933953146347148266120903823163567661342731815201870355096234099908214951238110811176081831963668647080577880873214909177615484768896771342246304698575299431089975056465807520993825548534691252983981598563658313704089506671017349606136285364116029983954624324481990179742185544386335963909362438240016086995356215298234489478945200399002701492244518443060221573251256262138517480923570109786561010565865704843797788902211355937162502423622154447975129072396522915547887929065492177476328503579856766066674808638562203780244671757737860049029707869506956912696455943607027294122836292679430218751055692487972509552235298766370556366594442018835584937571894111735212214074844360834386089226483425540968674390867921438347642635037819004232237128437032847950910647588522478181979322699227102271438261448075246553220742194601319040875257247643432128722907448002084094346150302574062845888119042325949628091096355577936094205641228646814375207590285783631143780976510631060947997043011468158066061921698429260724552502994374368824553041218763710151575781983541750552589966040188711768118968229127366179232113211463309926484751431049664962029287599858655182460232966255823636092676355853166358089503544130700274626558800557320528446859135699388335943024117045962216620200502366839932267936687882284755052861758782932072989893353727056513504931655543239918207427296468046976611197204827269555021931660229693919100418877960639061371599476394555312904564751616014848923215120923495026308634824208275105228398106751740193826770109065223684439906870674972191652676791382140857338862297333748803365859971882357220815392409779930922404011343953124641832594071080792276802934433096459413068351713224963327850564701884082907042548089401154674068663029809093138743257695828315645951650216185312586608977744618880265836203990507022704163165963840519983015096609778634792017345192956130970578519093543545132304772107181796040449892709813852849529881305221981489624280876426559601658834408643782225429595756250116821017542109974118919012170656388278873416291496731913015772798583310759452810111675916385496571506770567944420402524784667734359375167033688351039467052094643995427556046360384989913680030788133391580128452270151897535977151419945155793912411393249028568869010053898307955071275388993269836781939890021693854296317939200704467605650929981798044544552523208579712632473996404591501975854078024188665467886540520844439341904709146528013010216995218307235626733352446219141060093735169309027431277494869611301600029858432990424389889985009207595660241409956610236159591068077570455297061243069184446837049362140775134485001693559264842582109002936659280191372028097615879722590858922344639211503265880584550476665632440981361000435050611517469909194989768836681614415461330769653051574045841155738667785626500180054113322289238640724402835199804972486495686792557843825705612180004785227085044834397713993652362543826131130403788923485427723880838027582776380249320669947589312574415805347120334442233529674273233284199789594633187447876282355418327770882437249412727118524898375285586877553873377188908181855167502938040316666095266697911337797890022889530420016985759279056399965439385338620366670823053724551690568161304472688271797997749330872090618232360707670461996516078055089674462529477767967726596698698456231451558701522471890454894189028955753554888157977064939785931250592451205222296140814916040064224378925604118121416987894985947837177940485682012866367453466011464731613222384153849117564879360326017028417679763644887281286330596494221872049100928775192049208464282749683496884013646128063001814082930472185752790716974312177565337648051179663963076218724097839193490963675802854704543103539164335354268976671563957488484711701101769721120547109925815773237300767459709598598258731885036313857914533708936185495724672411847889718809432473974540718206510974482822818785403002506696889063996914677287972686030551758803555276725893971746140361610280898226536764097034566801717093881989466079138848308667835512145464205816259768524630967395664629948419425513996594765902342653596582429452219243621070542457818450838201637319020892230020976383973152117386076434547019241664641090259726252959202305192631792149614309710175783039132249394148355641680345189828925869479162775125704996638812536150767673582767326481846192795373494493157696363260067217318650011516899671132751589296221743511077716735680874973835349044290598650811374840059139584540868005383784426351103000244941902519791554669685630750319312022012520912550377622299783804957239233345212468390873159106296245611560053327846085310550073028583090479616768635929861512927081981478274598861892001956773550009080295853557986823038937358395919514763610106702643166117479639871864803330007069518994914272955993958966744461140007557974074779027459752209824895942802534336484654743556106189884065985895479913964830972387011418302712117866481545038832171996978895387484143023080669444503559315794807047352756873808445472186939478772026459190246640640430991514893908139613005106511418899566032221177525498467563927211675095572078914221562418520217214364498724226766250803819453104608634146956116648856442438943852694921117396862839201456956012571197436165089096492935057725938510393713650563132518511952785384400807555406491806007730418322288322132669436772798950848056975638677859838167979427573674925949919839250219096797910832681383671283300134238908527739437914415013859246130330358255107751257476181557483804770460202775551455903301439466385809399341684259528672258370193220693341467208724498309762811699169397708982790653241629063245635664144261088592647894337542140164947773244911267130241186677254454493453139473606227368815686048677841246067969790616647044144426370679856483907710523825297539459051848042543057907370276402045795550436571324497554378600886558131208723167871419494855961802759211235025067611241263804916771760938273815256356267944632331437468868251109151610851906269982224928346646500113226625021219322664385582797429440358928249926024681873209659000202663659807220697024379108353500228563603852552350772844223831434647584977805558749051315598358195949598190016261769045770214740272232917058216295095337357766190649299101992311931372685770740538363981366275704720218787223530459724491602770443331347253369266833691645287931649058488132240757848982547933736748948684226131485845479962325103610953195899900760171581909648903282119723356618007891987971927009643742668638989286182570043680298538466815715123972891920314273010018928947585476050699618588163562649692688250774965129656459024308386154681893486176855552326607829137542994166291224581514947073881222443558974750867088174197408431969828566961492824731610822084901431086593555204743050443689459267267014356319466141480910925240308005013024502296064520743364690086665436411146289907765844414076952149854064390858981392548245325886382786640912470376832582917382474680936064808281953341958499992350751462665212451964694492090596596658879042962795283116615187184319938141163168329789679754328691128674305196548765915484747974835908571748574387749498993077944424760649884869933731092893389290326755268968474087546993503970386506695091945742539230453984640441702252427238125882213935469993757049827273767649990552819316259167766202647585494097576942881627388446240199146163544414070812984234314154420433498465249048622039970478860513262978126162081026853192317962342500695914472017394697063865180944908402218644075153342602289806434544906055672976703111128923258556844124255693420223354325164867647960791595143900119152433616324067717652270765338210141771488457647272925520104913468636665511709990451382513311820184157174625540925113510980494240743622110869339073684233674773683748111414911589771574998330651790303989348526268401308802292668919116636669624968946005285970836160436584099488027271051968382903504014052476531136539553706001784154255064647604189150001238898595831225083155382085570507570519057492645486621500518304212665289294214096958865027724969676712298809565899793842219690156504667005069424298665323174126311590751347260460950682059137628887743735359407297542802949115027885695271622419668708016532071209521619610869773938735159930496040912634464210235685399625314828953403721335665942519923715858587447944706509423256265418669451393907444701427654468813821558380583584272951419557682616337928545890873399608744957186901217186018093002681084026005978410185705905446281117268650130523788686204334010553356588260612700947869603782535481634386839026582457153528831339529215867055422675594644884119693085812648144579559309593313955777175624965822265982331989498679200682137028816350229827764091938771064996342212248599565572718200360931970590613011967887530800189535327516676851595257323087002633689396630495269441721201954036732557668710339132322629299914911620289792320581130621146719602807378030821000308040115251199418900994953192788078246776363774551890739443161395886781986290916682799953171464329362020494354404524696642354605559293924256098333757492070543130359990591670134313037625703246143005941194255830354019328797402022798941956252375175743024203691093420357768830349497310970866193467589305691055682423189728493360674593501788228135467802447305095748574649263404745150669016442524087176906311735511322580960451016084601013195852274488956773587517574782291356563402622583757215734545266205334107720942179956902995882076056895233647836981581610566134233638649983629452531073728237868417458197398274840676839252833180386172456508979498828321861247013603616365026149494406139203447330268174278219537844816786783559360447972290750816790999063425844905263220649078128080291374882088564989297544910468600632551649261051980354340425240583596245464477971158192500314199119445236971433796808723900360384579181342505051012009781180786517902222728731281112178132042022559991111821843423339609776725013842149564294884492872455550526657414570820632524917167666399085821178596048059329827127564382073058467797681491402157919335211066885815189883156398465269545868535011071837176767310788679240790272771397349776603526975988797656538057458014684284907980292798224512428386224361161453995441947578969050708625554722823794372174342539846741726831476721880422897385928501585143165627011502367102545387030803615922375125064611731538765244815131138837896064406624653343468219773233957521737868110088193327303013897238173295505019060134109804249985767583831583560435313477288747264080706602582184754258524763162440149675510808267548604307977293475039785784681090263937895379950923105477498819225061367575519106130343026818078024824188323746339450848766529117953682777199307359223500190267758399888469525545271436416497515642084414521002642009885360940126027211298152640236656228175137063079504379075914959243146731947300798778799218702259001476384264491294026345807706079231691036251988975338655435092301343578010998264852193905216880610542109940753698483050596797225030977146425457094316580367991240528587978784551292400308196006243365364354903968171734507830980882344752420212333469833882662354907198432559007070970608445157074681525137814256178381189265993017870930615630533129016094957449293649076141500426001703649931707643271546494266953296107438650210914901304999441613824462384440268967130589051684794421948376649931266202656736469599184341267571716675369128656560535827145932567709528091749765050765168714597589929930155873313939710362243136325819626349701814720320702988032378838397449474462860641000221689742172227698394013412920402228234582369960470958932692572607599823662725979688776387084874261027330573775695899213700599772110137212345327258850678074558799782100071338061855803917814285201109336574412758978711585936893684625704260252641923785294484109494294627511346454239405941584936354841319484040584744821494509285472229493021644402174341319283371010736355018560539292934520426737756777448093614765630223280192662584194091422483044001313737818353607030899932764795953053394351426154701156152018950631399692197921136360622447547955504714624559981621052534322923801620976575849419995382360405247061218367487026953215043899488286378469667330581505175453808179300980272021130295650857980847959651731644408565394254137039068714463879930529022879665401120230004541953888605222685800269658702479762352272581891106105430439565246877251154696423596572996864423598710875886369980427559401076399945052195024809056242967735876640807877831565312811222167297464831355927902908524204196696063324755576239657390860984226799816351733872275658209611149165141648898585305976957545630705620324246238967143272457368897523586257000181995039852111600229901425218320800621773741710672592895029067966755508757002177056978502224037966732035051989847751249330260206066093984917857367238441856227221713823009428397791866191123993353993568375395474818790268161872228704988357456189706617229711935499807892470565138494542254876753173825269276813942190982108889225591343111474365815868585416656575867921144096364301346828824613252652300608577950554677623981407559995949472454297181774670959072472272131621894829576409457809738069185362530693080688434379232520087873866274538543066204927551354896910284503785097127758840388280873550255515699431521783049809189635672940776154133738149806819476568138233157348988685855742339218400517147928437084932668176512639174401027371479225349505083210880647562849340972843707561848655306777556406385983568256593124379143096363575947008618431323212922122924063622447061206032157805519822642922645724923532922601446249802882717866780645112792988334476581659752248542760901785739652219859846289338761273142567729985051213742398053434695973010112440842445746645277619394644170594689641004328655350106161144996261678476929850738361375181776229574063764916842309714402083284831510905708285040805613603333638895917851975680494686539748246831254225716451395930428601938583680524678952983526955352794901886838176884397067939488014044138399304458453998971497306076221169392383868254709773323318607526583174145669759503694592703309534020805225666587154475239105416861300929357690369417752457766129463095276441338555477008997523932220628870497575693053704071528425073430174206590634352413204643138547344814941560547075586642728971700276108883944629547053085574486527190462632293883591220762113973604066419297612334604834496327115179444683507575721534724555864348199087042004141397872703134377149877595483282364588098766632231143885874423272213576070596996909203161700330254964101039721579512917454841009236861563455887095188118217613295616987341623292735267919881355475198990727756233934642407092336140429937089398442590902001917940967925001512076909731592705141713032839151805139429019497864966818730294556171589733930643357716977027238614657266911352520882722613621992387517948853452868382723944559168983711082469664976492421204427631306849982055364369914868499313013361558045717536415522941755651503538442041789909712979956614755629872312487727133046474215546757628648163750539863518907475246223541405817557854513033339311208744951417439698844165107533549045945838402997867769187811194639457546290053486331709537506347424087427821281761864844456109134851499687668114327642991869013709389437929320266879354291788111710257177885475964620183532588147645697553308686625271586827125282762619411888389802897070721538882899042660005479997576340081999034474417683897517365140160867659548473560597574204770101336803541775194135955094506737541589075449113779643503123216074907566600873113674700000334278947477366302520095399513701369442551112913811039849777728207613604834625436323292329402504173889281714408656612500873965365756242499176927234335609484475380429699621996168785040656762990591159338733099128091968482967404068138872302847166182992881112117201681573341407891643282468585969182922009928654795673457861773659680301429230446369608776075874877024787195593111028471494470389811983350922794701340903776160278890393466969943311021546647249000693515782462340798527314806961201365632515338671306247822847513908929909415099450231611247568620882179743338087979459360385892384764823454929664985682813862365644170416949572302767180070416090577578210019207418399497577001068167309681226579011571969256099668791546382161902538079557137850733997586507626085951543786423521316379592327758354334288781431356849165763602919922551743068995299323539728522608465065999908375418192201935881388196548965431661188048341033540371907430562617105516139578510259132127778998836181904815069251805926582369802546702240935463375342368901313670961312653292279484938492375506835144335458676256189713975661543224760364633837523436578898114988697073259951404387630957659230097111783000356084425601639663389981845094651847202373985360765395289737732322789138342272541880456191400851018798910021681393539716440263509939770301147790402282793171536809062770532540872427005727754982248165757931344732714012146727438382952039824660400479360054113063054294289444613252136930662784763133643117637766619869906625831441119256016469823366118779667737077083915397607768562664634192680318884219890087611320546074456676627855736143709593396153824146849042300520312596492025836760494489543553437435369456206115056601177272557145911928805855414908653216666753424096914937093217897884497721648549176886906754828265864884727862417197172154162146429881320632402963566561649413011940006713915121709834252217170671966775998201687628957147286723810761490371653558663844211930650393873975961564348349958069863364673710600252348398871559951897487420768887479338459292314455232159735347350792946142564623537461511262036030737251033560560046179529368989656814119189503443229070061686738245424964699075114139282990693957349376457733243668845335488941905510624681369227285833389301012121425556897947187332633816373962266250061350983498746579304324200127010796961024772228990524145592174807843974962021682840321998725296096035338468472639314280331416378453097803190929008069000782656141946839048592283167133286566656033363340327321640322179932692426405249577184265995918046150843010246877521947381333146178649284520126963793838375757053383499513950213381606368969309617947645378668215709873486770330026007217570718504939989413296520685154788934169977803066686946167274383344244881959468294662731692015440783976558703795276948842404591713522164721005634844253597664146490197645157930041555847006237394018672133315849576306086430583094617434700690945625033737877970756460894411871549874475910613633305826106708743481403615545907187241216742558101610154845083316251033958938105127758009188186964614715540916758995127410909934498252889230106712062000543542354901903662513971792003570395595568763755209371353274889353529615373161718667149346750546233100827682834477805712714868234186154785087764116489019413318705782999437732825949503305937039548531278061208706584668428686638000246836536368825624884265918762991351665097940096789054889423617875047310481226044771537586464200155532144312743133800436979856330040860214537718685699233978616659847634562039044266551630463968926519761220722897384020575569910569436861819882988157695958158270722886371820564809659317753209439851458550603349995541712477128935250065138350802804653135089393114028907821859871201319606469630759046229986886105154685164643655174555811060758034042997091836257660584585726605806052037065082632575908789034431506795961181047318109061908289608035540410671038456710822026879169242879730338028142122067228898273283053023992725798931161195533057117668066015137702637412134881284244559061987995771526986329195916523583340558296645890336200180198649655636463034027734327729336032093653153003873679642374605689017495846070894388573039739000637729890731053885372220751456689969199359117138792378687315989423101337741576084095592972589386883585078806668205916330721069566174167654196466611667402518935737706753538209747488064151193214394144557028565995749481131634374047029033817507088160867126826229864865201890820266601620411374365975582347598454907459716228704829485262601815290595883917340424774538298040339460492627359563812972111310650855021952207708611914191508953007502594428863234158991923866893166544715494130704649537898765955590505802957469705084485190457569898982402830165905589919123936535886209452234474076465425635391364843853379042358470412492014651810966691170880291951176897627307399092955231675196669987375302751334225637084895353398819490077739919260967868091261732124836909489296694776298004837493283063098060253868228708159906429574912136626541400915336146807145456081249527003145538004617452645648743081529439286103704010059942714420830920312506303292315320956204740512383018058190058756828620187048865924013645918364145192919679180670460446562212046561096988853747200681449100074710852039423184189598835767936622508309261529699539483274256895735929540179138390790319908988119460434585525327704868030198504200857255591313594447642318710111820106093307077499081675257917420529011172806242993868334510315536285773064991228891511359505345718603642898245599024802129915728237995540744583535141741640023816621376171370619183907468392759255832819611970738987006316570588970022127436114006837388538675081319171105804128017928105548753785927333526559620204442009151706379036533931301671079756315603634759145904461830517383531036580583133943399005710051328814805636264305867390408421673408326045155649395596922756941839861127403760209369460962063336668413644783819539326558216754484333060841123170441070263324673426442901336921337650180908478208394342661401728651157311018861065227673143852619171305335603776559890045724337265122437133119375077499021766956836399135636360101432726602179303885486805343215923069665809177284701209902248567031039840234375612767853478626860996455319419156687442031033241544194786677050406417288342574551370130840166110840999379417961676611451308036472099076922947817303930560125732395564054755356471971976003661838912561098861130388512394589135509548398964994722353105331330077761839513532773585131649945555506040153538547220853750550661800168773830500603350874973002333920587412751454158174223581289485176532821134938331650033943851068688759202174695889819031388911551107057305258329586907006663056169773124071210628592618688226292786939130993236871160892746548379727128225325377543787825182028005588729090584835733692552720609958355907631932962307680703574126365603158975567867523362641887574272440948790877285571488256557131174409136125060278336286374503102417653878118493512986133572933814016855937440958538189887465464221415423335752906159085840956168073452581963805060409427005078190769484195409819485004709914474148509497961228802460677854741082267070085699358960484302605000344685762582883862363598352078220951267676477025240708323320550941393027762744662686714140217402405899952895747332793712153910103124728955935143278237798380234079016945623646713230932120503353787309629284927737760782688606789393055989093580358947680111665383107558617096138987984176861049624878830158586490641440913767140872395679169890632017387928346546454358086494978071505512100890134105910273428847324459830739756626368359468854480000468786361123755511892595767560839705138736299005072450034990803207735251522836969378225869892899112538296406713987489542587490191677340116666451195077436468724623895459426500596714268716409703395010357233169715230550956099219744785417626014445281256362509864579975740706764387231783324476454149551318426290060704206776521589844890636243432617555957653417556069884315644161784002697579733764624550944014123722186577566384911506365725767108842182844229017028630089987984801338470792846866862807066115507838638653726443614972947724788847569412287038388422335586943576921108502315109037544706628617964912667548968030541565137248481710827359769330501510643002531504219896062286820501889436800175453098191929887864174432942469308745732892408595438068394330452371390129764722328076316817891850464231884289924780583771956450179953462798520864849219850531358291772215959108343290840756193816245655110402584976498987533843924916008392659238363809776568385065377356284493900524986490070458213390178317431798380873503538698071551635538140436606816571103446532771074914748454069240641756399268083739879374394351686704813294200943329595796582220843613120506252006618759313106450297174469143882290105260623352663112880609811475839637556845284545333539198714405136920893672724219319095581246395616934791352598063164557290738358211282447961025378881694997109515877220367220937648480384570186988851545450820500871447233336135747697769532616898068724128759861244669651596973370085847132895092897237521001785228295955228085025034716955774594421166277367292459827603133510627107149230871786840998271632582210667767588412920304686410915644382277765137120218383683798670241048660543925252618620515226769212047848894672621083381566129578282898047763842492919852956187523767613269314589853975212135688955219353372063628946423465145672579485882539016364511255153689594288834035897232570678753570041131222234488221142500069059120438727339839680174497798489099467092788547548519574829740558758604640208432101743472724497885580077171135045264211159776773965212281102025370317081681070053689549359875186799941711954639959763100389287083664239933576622586169506696720320243725969284466362424406182384727508131042408274626513871522451679213043258535699423565444929524906442778260080797365860288130042681279520365399128544921715423313318234423074738833068514932686785845325262494190597044137224396968986594698584379346439650062069594456583230801468573774102462554553617528188164840273367199626024170130997323721277845547368177152100417888918818637074396322483531214372686864651392191981820171622780669695816850689890373172495000078840276715535212295913756079318237245266401626031444321991803009996365538776714514348332423165363299841705367714490161424444081558880660598236719812648407042587342666282820320005675136594521487626184853778557922434706340678441045073277911287990368968952631719925506093541129384029269655068239972497850734432910657947750820191329573019876280086795701769335220010893997669845490050573745894845893348866695415585131573736290558975640816524697745245003341858264817428343660308978827479179051019747031414106005870319630661073128941961994460975501112859628499472333928332283874655033754103090392049924415857363910453779695511860850731943569958568450822393199608594977368639699517331741665554971196868643486766313058284552779242149159421969736195242220090150756013535075177441800239835890494346894394560414991145395974393672412071870525110814837865277021477392477570612639263356927159486736190577997719673221804719767281721305731222547693565770556086694259023482779379983098460626576676597543629575507345840952200562822270399144551361255953833906841200550995166846785116334000108702125842118084332768045735959495118836496787772288405271970310487408720740613760913404437917790059209023218367486213165941176422733607199477380132101973003219021052186102002691121313622169025282632366534943745739759165460848423416328114468544112259141490599302151041986963956934022138436650507691832513798260964966572622325947701250428712044765795945028108113012084164705604945167824769900775985868296589184447655046030092299786356405066132381848438874467367506657301188123952461591188703184867460906805967530378769418551061984944783277075802466673780400422348310912499428438291173262253538620723557257816160450624101349525228548143686748488736747888001984612474762498799472310232464445750340469454621989212459690912544266734926973584711159799137329113692509469268933941209683627622458272608195843553380021423232068700700870865669850147885607859691635397921290449608421458221383989886898917388235260105171246476911411453000221722572504357640237608007412349298088967948865758177414346657755476149896944669928311913759221833242641629727727427890469133594839390104521043289212273047075718991529738879153440391882453928479038219805017700435170718949006489731263284963662013150283786474284807994949417370874531590781923338667781316225577495209970838554754842997582832597160832579601905023830624950394480352378113698011723577167051412005453317996026131625637726328215111761337406777303007627102912358293605205030229682874558863455764014053909587283607735346237597532542587807613959186427765227994928580534975464341752719127747630245098382548878085722206172075967521403315231677203442331669290981503600262929518104406625688892837651768847670523986260098408503740531632179548791297213369119778652250598275962588738273065407817008998148003240299972194616711709826291586379552947472215886829212806279915238970341016226272369190378623549469650703436879168122268918254553669065400104014474055231930623991831970112539363653087660945930932758802266691079836506864674031349966619866235658845913655389891353892096730055860911868721563349476730394095648896412085187940599981516152906237074813316435849318879680804706768005811216653614403412681935784826207416168334578621382462361724141033819320270744036109971865048582626464224339427132674186719820372937218510280732859611358296963211284152656753323778889998984912445954158650526996186728636372971614953379339959629360914372693087493537958429447970651013057833956187255309286169205087103006565531341690177433912889629634352504017346938310177480024851458449828294030086614550723919905356769216161135924659555320851179201463585164128689160780460638914347014908061966502104784601506956884532929819771269617437081791916695848156748923761001056378717251906387131213450156947172703303231915470170397094443439518658366919276028059231888678173137626128137972206152501478180524981823192070630202642464050534329688464241288875147177076089113449212545001206621055100009684361842410746797044977934194973943986713403124821841789284976382508142427440328481460583926730241346364611949670421633545152950771506420005183416737369250153808794623061774968860514585680278324759555224265907859536990457883572480016461802476477058931656145213769045744907416521160333873859710141806464780527120197046031345419964534298603949767447937572126561475451338876479775767124690480603761547184795629213625699680265592954939175333444546564681730697167920781643898081960436672229137088231916638448042404213338848607232768095869403952273841967615136574459479750066665083567423613840897331165357939039194043890299201297354548801174317201990016545399860794024785341566720151435795101257819658220394756082584538894277125918682793375737417895867539679417315439758500161144982336374779197597435527536570106050079969192963825282394539998144742813715623315421169024751981884762905075580531967216817922328099495462511402595704205271598711478915268806434487464654290452824727074441600038244317949911554145877872932815392418411634009915023093247676738993744966693277660249789308477498920409779817901020100366678195652424504641012823648511242322500139470767394631421039994538465118490250854473703932562386614867502762664327408403168127213367453409938695645732629170938750870941303814410760542024474633832932522094216118507024973408121281101954281310020613767589667985343182542747556966063182001335539907315586579368368332455039050728320699375669907385150179102434501020446114037479464170729279404747443899083842639202841076037864977406822011412761408141074659594974926531281175297344303411308643528450233630824945105545654381261529953596582725384186716929546281799972551978686306260570695859270931467798361160546797775806330979369765035721042719686719346958739074909358664735406931890371574043530616294717551290137338931344724192028801418363202715059549471792341820948506715471697966137804010675904685747957098749202560358316493980372729763941166206748015143993177149749833865765129485875614427247322815240964583346396360795525950179199858682098593424625338292240619697294215758519387075231555216905649083895271905110201540204207307442708056378037164628539786233035074586531167198185328620494174374532187159247489717767605879040027677005976373722762965913446289091985874972684902799940834841648228455563846737153276338390019508273394063320689879504141276351285705873570258474695608452648655272518339206557919749972440759831864426968291938591225053005790067765765310174605017109911174918890535218551719410973415851841179669566635593781430536756406858908649997846490567955382165515702546401190785636246012205006830753901214748781725286790668768336312586461778954433744410952991566516454425213406929124401283474221222547930478051375731519861869931637374745121600803781335059952980603958782625925053989493637703875902646259765225691823577757196146997487737952087250399206892787394357608696908151904547514889234501135486542797213270827342562915054972978429356645782296005350409136918570702131479619161709168954273025719222975887426641566108492794971957748514222348345944261839503035451129099247432072606168408173550098057738770485067556857881243251557376207859197744876781318369381966239913970506483868814255677084635331625690124435452358837292150240845059980749672006404295727058694873893930855789403272703028244051122017014544303143287084012722421479839792823947984260400639090241880953667637423870102739078279575847840800105564387907442823306745448893958658606051466212522890154313012019023203530482913226132733866304332406503934317832774683955275169675215375630847674576092351005277853406735556614655334229815962586381121270802615663054122348291965241864133651763377178486035797866363176816873457808710168934626287512520583784950318199919853759183713553590184854452429262611184863313595578689304628841995768432397264224751972231901882887923710214765856243193117832319522151315089829656440945930434914165297731345610935954247017237832284429700666658836150876921776503510036108839580829880750993447854184985382019612690847325851315963321426584906013910903637310550282288692817411531794962518642949608488372831289625218535661843453854796215549911401484922012610776066597139177828453929240951156097261021396052679913930878567009206132205336500668224886441773424001604897118476358018894773114972239325698350657727135266234782547498011148826620920231868921533966103335238569178010651044715750771766699000701057820141087674454643147508201984657448409248813179831028279599267248502859148437421071284043464055160218768688672084339619690381920893038338474281749003010379772485519096754127682308118993757325231283159792723779767687694002422959850652696467339572158904082202822018385557631400113025391043170717159889066384819903557516480733580292589056913114827435850304883435878899717818553959235195237440400249961924849556573991526893740056640368732532592481989216077315242701872484995141204717559078009127168952971307762493869689855917606294067392544593363855569569249563306402805607057684891521508150998180582566264235147985469773248268624857076438463674951230317565574569636298645140069467366839884086668706735558281981516896531802662751891718498147474138077419018337689612160125678804956470249274636097850935562261967713236101527694803804741971092215064957726249229833231382171308804486144458565983815348021790628207386717701454264660026338476872928092483260310581956734309118769840617460335780367224883311505281892208575684883430167427289946562348564176037324626927341476777855539563034081768218959120600720916163538983091181233286567766326945691441505096888127849960097953259330542934998064494100747347284456450040441294576822564186006526430943667458937706402245346676435641775377368371331933113248250395691345904089048366400544810864163259156058674932603603645178177650944285664199476378885292384783715897888879559639403547669788816970373695736463478825276920247554023111384818664206194016132974238175764245814152514690673217335008587002429774195051093521525665927477237315058363484015028509163840590070612504121545541821243344186363839745463438653915143880680304744685397455301228353332875408259968564939629566968857656751158449981301091998352200495075226143797077926292957174573640674586614884523780324348854363494244854152602247554478736800412086420610111361023119349427489138138716245073857852225806712131688003022197276434368807555179247634250426436303377371948048145317295790081538229996183683007687144936302565331457791249101620991400895847120575541328113997912599459402195183343087964953800728163310266510881224637617211191383010447164265481266839476395829018424358514364500783363642281671932680463346409734939886718300331544542836704018582553596550583890721790300118331120399027719022161379359890053679452225662464331430480667966594164815903070716901645582866472256628434810472555872693855610056053033176746751624412748685114920312470390062763155535724345811734234430769226049861302629118637079395985420864314121867252381088949434821511972008240327885796953055663045832154913704632844204878896376032024948171114453118604210829033307986171050075741407250512800127919505754227837129118949888400034531513193280363963117145000189427759401284730889085139428308330814764908766512809401977741388784105373899225626156222819673705385663287932045017413833322677008838342743544239442692484626004916009147314846627812853025281115674244883990582286388578260234536385743217072816156429680899118944007353277927465778188634535438993999459969530705180571108113230878344911261408119567779063990788187943937371771313729399309216200507800849449389171499581566986696361422165968093890713094905680156496223351809790028131852280228344908550546767156281832075931618216118600930586219322313029113131610922474732402635585910330228214855864608200687230191270952479751498339661582607876857738110557914382067114280521952749658570032555211708863793433172904349871882429387130168213493602127892322454189586245694036326428262252857993035036644424508258216400573580661081159390555600867969878035551695818645534627833979373500444519481646224977914874216141396827129576125835011212290253316995884013791179725058088636719131344040267994391093952312795813321155485292029822393247446895649742659343853170079113389325411297295828252608604544246738289564967223122201029128457838463301402096421180898209181524862287540174500311053084242226051351821150803939848467507655769241249207532615940056506126917807216405191691293986278454685760103811676173593074613902467324536272992543297452915943638509342845880467246521931946986926497151714664721473318874151574280456405491458165446810742288474509036861786139081321950670776818597489872164488735683536539993511463861925885697271184619158695993930835163090786325989811782331579501222982873592940295167256770508127673105410826502627036592071748101172737912322070288930831756066747280085476385132878638733107753744224836580759780061492732667865408285260376165847028765900121142796667714271682810669543354010518985058986880844555420050985796498384773520806605516516555449844882180159985937115295380140417558032775992844038401541138616068057356936843955464074054966074613987751728941139473542139980973701357206087020886298465704191530798081964657332658775269744155130354182290736128956517732425884189079942839541202344475698100008464968024506314677014158299442218765104759976186848734989074870634976483955857460019672491686530266688457510313599071447720421368094378002050750034881184512285906988292800609185050471906411028375804224280909550102552340642365641799681915854358992088983274223413554856095198761027461744731262111448767475221726222837092964183273431835793710836439506296796384123392763058940300073956419667561944914442855396394642677524876205996682836333366447330752262714557099752270410424350138691519661182298160428890331678661838552105824020704262276369143111729292415708514584150603648836673865676424609904465824205902253011278391703783033817467376938708337504699695606179716785022436476419357330398141017106312688401368171409003682248565357076391877368314685390506523612338571689340688058728046997860837096992562446962150097739073961979434346005494609445189978130333401374738557715107497345750019383143130665786182295497138772446175771928955416815394715214036480507981682908787164192931534333847583923873922732679293359992465386623881811683507966099378197917230020539593217931549886584057986888872836912912582809597799500957205688230297934079119574563691548680243014823107056250028001346721554592193229082780903680491832684777540160734098576871712163933813843547219420910414794772248780674076417138227736028480232868732364126956790646904991280570075978487456725590656757735903399455275944110624324856133472797342419700216398435304107206982370791195023327376838248394260197311306511743634594146212431523414225118273672660095857902043741434584602177205627147934166198734563381160165190632422300610616284594641852401893170359446510431208171751475918110453729145669296996790649577937365399526126491251916151574026080833235937630567953431115008749869947460115381020406619596754411814138241320895291192290868469423429748542631631082889610500411832892525019447691454647178853745509360392087327745145458648278872574635482959825987803546679212563243534803387226438055246546232323446392687093491243348786862903510114225532232740965710925750053757276232189638662965457054082791032525073216814669185504650095223500857885197253786181017905383091953971895815154250446219105522646986997650566895043975958078144660900581580487430483165032374497383183625589258512527055873126794916713958342739504198192297966309003762101972058891371427933517651872819574851735036717333924100265658575102367903426686139142752210556487205037863304857120970756073012428751178896309781004409654793550778346382312852807312208920525024973432455836818952947690227466505638082782504282717622588988268966851851073479598143478396283036967725889089375498928022380504265544980404875916849879574943805542885418255659073830455063669936474998100071890314043341705434165552079268179442126105914969585504345446204845826067522654739680380975023471448501479414958496817620576423446546829075463965570127759391217993204752984999017453532538768256894567326895180594747850797881429246635995055988200771109559946331767758799072972583816035068484002446201723755498376657560482691612837417167338132971019112034633594734294342799146089039874825782036149633433749955664402688638208426583021332467838862411247420203781331621907198787351144851632202063856344791881376293895823261200830361436883837700601702914112057217449338560597065208660112350621815682536022931437747799243673365668795246865263117877721686441873923314210697431970364646747034853436507723112768278424225063811921700017366532640615853685179434327076738165392528826342225376282537191942678695494681573891190482267221604992392498145970186329733420801380097144792759219329948627154388767878802972591211692800502498254426437988879074136207545533851531971218330798116202156243815879835218210884324937402899565097152536511843526003254038433311985836237885753328541367510772900978700358293644337991544360507401394345663602391837434452149722889035210335636563132020858435344792732697385802917643478998432488870788720533683662526894024064821297506368908863767463063544693350919091580155401602685086708523024566247227308247893451734140536447121626290419137597970372424801135467419020250316364124443459612968166875006883611665811636835032253565206478430816643508285811543396401011362359556960445847784168006326794914085662334858910519581162677255695209911235395965347642566971338374623296078813498311433156327410551434676155170074404369555126150578443930279700139069500089965329647163082853397928449803275894287633464547818635449560198013313346512559492925492793589795508994114720334355913669411535449922725603752265094263017611723433840721666928619093415940723148245054985534601906718967757027521664114718836088182549749732179091367437996474496238105817670763138557850205008687786213208619789986321097156302733575726080408977703623719932040149432050171511006600004625809128415335351180662002427816978828692207289945950815837904770603833869425384919481670731376856072891381670328793927729162514398174561978833684258310564097644598814417075843278882563773385448540454418530578386303326067500564982179654092792478224815898686777156177762243054858534691173048980306924054207182466482084506640967664834265026787146609161950043091219989268772470880797998994009143259900993393449757097169209019294324041370180015806757169739045723421621544851697557073477776471954611959486524075640709200569084839208661287945377923493469633574565630767942883302335150649422779154756116249737183894214526892689051325458237662549640982674371416887640259353672666109853033867238301959832895851986863483255337639216515608876099637874891771362470399039452458224470624722002792254063174895356556115478170591056341067988286944629261265609892162161724360765163140991634531046068083927164735077438661911183646889388223370688913889210343954451610877485367324765786085973055421586209708858795986167548030642606701221754526998870522540464275083284451314426549940800971155019128005623818794239541930572620387461678748402860996557364231094958022552699340596892772938811460018456937883982390772609760356446961843897346631470418937203671401444867866754612438953708625470028221027907339312852906797151861846632229603224224811967123973925929257284803500345684478526728254729407553508550813295867571624858182619262022270187973521506218335364133637745840537152859049598096566352558021969930578951925485801816676148021123146307185243399523386416010595056158957619303225377582526649483175514490437022515073304450757004774154301319538279539535807934572440083437602065696578526175903400049353587986771829409192443147698576351148108776298697650168210242678464837837939514455449976593211087695567301760804305801256210293888012190246460470574948763157123781809520507178186142514449615817686649230380766576863665179077655697520117964476609803042266002185292725736471622138269103605348638870533569522943652607214876643301863126896494294016562600925327341992007787015280842650149464000569105415915213677344321946122554014273197090041597910776856713875924070789815057278956905540964549936097003041702773250158391294856152090929302779688690891099885212202564324782960689985873241388282641075807469017385149925493449109513081463305143962284607067159755786821059504820130985869297493591126933214468315326551093570716192259842516895367395679338258133642455708742166873537748685194451680594749785946832699244089215890210054083663249517922922921264151500002984389538183815566348410695680827751864471006886668670156307821914909975690309888740533616484465642341119016967776820725065257811754150187324845324579609720015486411801415935665468531428597625777343421768787887007535396733315596779951870760464095481419925971729307976258879692344517607362527858467200177816771828012088861821652647849081908947498362896211226394011175660379587469443524271747962674160468570512997692582528046106437755707477374908452922721740981826265441218770508512227582929755832966381471990920770360805107677755105766984465583132883898273603454047426865580998676473962777500002565594831234418614511449012454691318176642401830612034102166277523713494609843951862803328514739813525611786972239121972431917442435377353703916911607041764602773694115266476044045895362383718212282248571698683253651240781118382332665145946786677172173091019938746239348891932242560057609494548596066140383238541280945544554189826120268899547295246649084184093580241073322223025781008971090361021521283876964221620347515210249752882469334961848155961647307832657071096218252138254779096554847170056064872394396014859453439948071401122789638280704957137425117517591402724170252190485200771148368915428813599556494794974469708263287280476436307189226909028526725340422545348498698952408957432657176472833153559792768288639879674942002548198668471419297600784234369443343984211922709043635840249299039046007375519801733654763172491000466531471578590979227900572741096779438958599668438485843983119688299784928193921217559706749189829356232365185338447459458996400523181131979129726516290027731308026796838328822776517792966975066650038077746436417005803554131878020591438611773390521262144734598615499356826470398208399602369465489864055730374113203841262489008998852852213868986888362283330110746556610958742966236761319719215556096989398057706150047131586058603034921852626547911066771549210001300088868821386475430730430059656033591997931519640244119379724016045116592627297544946215248420565473410340719442483385526517295164658935095758662984297718479826062969777307910104800214108495659794833775129113664725855061378801508512772082752025237769030481625117645027321974874007557490763866743944846840713164441332943335400895156686990317487721361336123813624923006940281787884007918721872645238955330844198508193235140486752924437396141550771932017588554904974660456176337569881896208667210643627987393306586109099711540924595774931267541838646829440774046088689657217794943982582885924278228027036312347594775446594949659771973481208937411227203980976637698434158589453176393731592023072911288055601814888270769152638689249091732875213563047962610382449684448103535026982778806953657662395063723163884280237324951499573432731530774522565411000878520853735384696055874489330708576419977537403734512664910184815943707470287920206628009845586018725395374553935496381047494977712384258231260363747988362757119136969706871082056412150354015793706096015308588368626796830595041305798551756595159025482798531145735160883655206100879281688031451785926792632553522454776349279017071999929631201437008072903088658479598909133279364160641941065340003932354057094505674609415550491076651155115181486995829927984035524070703532112825533424112116127309033887779728410065260839885479522671164713406677750296789633020068869830932823971803730113567628550982670217432143863472768745614256729944517678226965627094666534569086131505399196930533238722860754113990065648758124332429751962242367308343860698371946124389081595558089698818509154533629174385572902771350356880546054819337256597339382828291681549538007930956425381409874330401871822145569937789936284186242040454413480477132465410980911263893460134869056508995076017913697632632572598576026826877554638003398741087420868594499349074329458352392215100748651212799215003554124428525729248386396465976837107954652246008174545437761618615886954442505973270763247873904405421955880736037871468190555550529356135982663637424364201627986364230628982389850318145309979641107765104515793979672080044599873156381869424835065738517824764980245530996068930244231240317230600475453325601391196670076165315178269964176499695662298941846558292068358685153626049467430400988478780829785597059130289242419614205952341320135760279596330060033249510241510287231708396614161640548911003891432783494948905461245402339829188910089350108797985345400425475106117931939119252343761267468903052954211709862436349282783339967152664490569290257731136155752556160823281239395579811381430469077554988857156796256684278340154925225753800230824511019563145624905904069802024785400409336370949783661604248481462680116844059329774266564447660204795198682324515433392908705552514952973379424899255221737353274177525246569604698526185403830331027357398209145625610696909127473944413825388203226664011688565959774041051073046494010956446636567347092944714080380338528848462742699834698007558958064296460682206701618905004907100505543378638052652645691776779202912260225163154388854960099905939173511954896122491581168835691083975166868489055629835118956861323782482526420411744564828120054992305608794554489433517032715284642799458079627445504053108005496753386015139603635820054434790363276379804301628782851777838883096081065849016815782397230855314000381033294643603296448983599248198864782777749512313471943140572841804667869738470534184284540212471195505460492855772816510881857052303419534607479900757359612740790957345135505369854467949651018012074909330629710095091848828922205380984435401821167966088892377314068824882236554654269997831378935167898199576849305271834648766607057152961242929138067315095442907202207561494653606960737496949724148166395931915325326591845793905818615712839368470884358231222359070498475003738717708635884080034630846584343645753431307858591074827592967327455494944602175515862884061097345628970720171035290093310673132760268230272489323199561491965651610944248971338296677397450396354524242948890088257058012192148825435605815086992525527767034963227002674279963866360108065618839061271219001618006844699851990833937612494678453836237056614050623171771847669556540344587006912685143741590523440744797117648622345685609273510206727267508996529437622773859967066583715328360961800806508559357471471444854253703013194895669186791244657223392633070569201027624768986799700858058151452409831611045057400676157192235155711616785949870189107178849792616078671566652133584768845298865637247784289088049501098758247553188385789855819855938931506785271032660686902469090727186396339825785366252793032416719053998622739836627175281825725852202614685769648145007829863115097886440522060794552278974047715440973366879759585163973154629429046844327596629233582765361354727771204903285266683876444804969710499356689693402581083788383590206226027131006696339806420844632575342864729901696146613301009422455733772354221221294435685953299724801411968495754706156622174545244644835405827759802938436175397908894583850595731297349375062257590862302189293157062024888263310313378716304818714144690578511812913039398531750837404743405015057747361409151876882594732547676012529794688215016445243410513827413233366023661786574166189209831708419686324612158405029508155482334799476462435964291231629979707095991956798691954234892670291461209116888332437919417883864569279187238473057376683061997712756212939549217399650660902054885197403459103611375766691585269175200827436616156555119768370007679718318292725809251062495213946572649170352153739218683329061762366695824001929436166200380841078708595620775498385620432770928996853908523177151317026593382506236322559810190839344876671125864475689312425719815085926753504167802693753257268810525372131821269211522211950335857710753703636308521357074039231575190864888523718195585540279356016819016962806010414496895265271543459906481927295926381984612828446071022921460846007645656573700183738282762092003086985558716805183202554959077323984047545752125442169197843545526515956823140602651581387586546420600424632377680557737382940654505413426098430133426321735457992511216909386739647298121282512646571763084294630152449111342492678976891328919831652969796989421722326633756332565396826585989833271906417697382087917156839822200505786673970703060238240411974469376440186967911815295642255629419555441383495650393661661973285712663114372246644280371538266292345450184250680761533510090007187644749122894143004135608903533037828952588244768260215503239734571552448607285679249822651560753430668286297957815726700986054975743625955183232627895023368213832092474905206590956771112878093114270631435850510630970986781819604151653060810559420112771087294676235776160415419221112946650496982784769620173658102003194713941706083346957096724009168375751159485673064013261931347029987962078756231521095154338695355117375510412645007773354252633639980847963998585219589039560418960198954330808677463143720990506581512088881260147822667738430449820969806850585874687116231016448059477855550969248053088923845646450664453234192855391028238252504797603017621408520055153297087927305872086399680895723666050799161396112742668758322660017585045195750615074859134384636296984016953714391866955318130587133977811016686239436869078561496620756686616540958557712426434997496449787821874771775755767216614403020909585875054477559467732672448550511420487627960788293259112761400249828502982199373601896944583153431988933196036868440279055105281790258582740929686111531060925578335940790819963661066336634237171159339424499972844587087051806872810396495101222671501832206284082600680985332839771145943746934565196259674639250474692673113515413047676707778436742747303109567486876978717139791624193417156346714533942654121383659896990738437756891561051655449341100954929764276657486335616621087928575821067830612506604575590989343947933783419154757656472844682051768493343387237876355932642130247502000572046147436027115637907523220652086384584052795036151034370113682750886847042161397996368273660200663267322977159643246897961404342135132540734649173833294821527593033165214302204313341433618963249225034335975951445453619116827676768398351052393164958404509818198173477099295038264458805616217024462149672962557941783847538366740216548297742211373544357012615655250325375756009567734925864346565637392657008792141037860675191634933525243471084254466805153800039409723328938877015352374686834975253928678829592141090323892225651750342380915365030636029417537500186612841874967590991157520870262716541678840879369696300076621925035654917770928361734162048317390224158416799534274489080612279861271259082685084928207546650422467391070826044930558502541081673825379069228495663456575332951929967364999095689506458657592946830744367213757680215129216844330537544106513711653577059028763882079830106741710745227408204125982308797942092563313488079185235592473099217116908063189236647530010969412616497297059565542652911049159921628688787670967849086601867814749073907370550709774164459912043543435041554608383557163331482472350711006227448334319255359940071202063564135788973974760468170837431072816039446057056846940288233078785474271309789639249040584737441638395811297847435575905162274090533715827916528751266899961257468194079542179797308544676954727311750451234038164008240299832602299481034769808082900597894185051727563497269305917384946596918721118723537380740837801737793183284084857524948643800871711180190739591506729005811583067396655348575550259883166721924211881005971565323033282404184064288129953714971871736191548735679779218731574668630891184916082682190509526779600809084371936988199191581691232838115765975090849060871213775705546003577162066955692422126555807050752279543849083557235800095293092142452493311547833530247278839258896701716565397823596938849621328204325928527328469651323339579342445735722041917210883356958963386228711724405452480272553670781804448536708280985424165246413379697016857605810064317918390266522217220377001614375537263820495754154134808700828191726407990439101706403657475189611437841434242157453002773974656326781819069685167235655087847248396192854814624128683475999548948676423684505217397003343489083667709510230409206546768214483912928797788229689401009874367400303572854698737690699012995620705626554300486529728289149877271215640346003513381916421853651767625374034254233036834941698431677215791527040370067001831958264653989893903069126776822723062119205215496297271582959309462394903832881293057073805188315211665768956242177551281838787511044692179240399050187124291949355620493105713112980526675013496006613393518227033444492506041243326201752885347945825916514302638353706006786266697251015443466886451397087657575609745701283881336828921887649464757697045912131577423416779881877147608786838479391181926612544032460802653462999246879864297229323123218255739698836636176424860297216591024942857122513569438565608219726424375966275749654525639962408697643710753843333981706179311246906850645360256452898839434238966897614295000065384808980820125894850491536835535380258904169536862202279319697378632122222558362431352478197277870146987582727409093251529301538046551629077243263348967583634560519533997789615621031709503645535559057060142004769011213474600234244090025140333826127590732973201909377852445445759429767407409389882109363209685740808856056699289147886970657187101052816677720215132439034103175633972954713468717450904329297439415253125475057236679336726007649002373027601002916989581532845657430910119637908226786187452256531095650332572240163625969399166805688240560760376853271278811686872775102227676612541922977832988215671925368912451931916510971299365677394748364932673286228690780320139117004091686786775311626774417447328243095304445525725613439302322441145000604117284861422098999887336479048636996325987265358323720099380751509940701998056519168505339934579506817436514798081951069425422201772476417971676846702319600773181890478594775233858056377696028879328116150206331593916060561234449489744532811815349228101141114769124723029052140227430740120621887606424269401234834522799370741821396808107726179873500816880885042603058717999636745508144631018505634702800921008214202509903201936466187349748956774987371247455873878693083306128441040541450826538004748392312532383246844351721087372484539215692197405039210465175476338600168190795141264540648054836580480673090152666741494222621187840747743378529901025724949381990266931906919270996984863728901844553443332570157629106756551734032669139402452415346809278125943678347135270510562773419650470556173015466187531313784311636583195695574634638335972462945505735714859868318567177583849319845224798044114970645618203571244177485180294181894788238548328442996566389855232278093721188266896695008748700353509084289895484401293368084039855620685592105602564154250978510969594721605496034942806096111738106649226710481315663427111190468416998000185786882815724616007816570240284392731612691885311762830741354832914151520443767666884194416367317064960174235449075164114892329069685974008184630263996226634124374716379301854175034519249502559064613010579134620337675892336097422389082038593927054120723657042481082950154469228237676556355700192058676818449299499650489210153800873818325499560134795131058378993768104531616487943718838388287370310473938193467345756026757420202120664379125461893914701650331112486059799412033253616014599595229541619096622736831690767708136111836383418478496487274364134503881200415780630048487513125339808506821864188174040970424077822455242414070732938612297775395979831395464496326898933399320902823705486026442651616451330425574847361157430410201374136911943254803613099523166114538362870294594167992057009685541113104486043735289955224827637837120266967014848739153738135933743582843968615625027450693686688719946396254800513879759476621288370979900176534278601625045419420947213690010807307970353764581554612145134009644828310861283565946112132955114212100030068956584506389579138122483383812781684542064457070828715316389396658358483146769336707898602557772213777716540606289100441208405204013292335260840815142027441261824120109566977288149466050312130863939606731831554757802277569809709506833666338440979469560358815039980256921464130577537189035708820901548824983335774356084583088067911462368135762242959905832102304505130309149375884294381836387641982384088780729121872677900091362213242323065487034246888776214649182379859471004431468051351980911647944023680733713146396785666580474145021224832293799441625905067142712495315302493295319743803084251892341513800671224974548732814823734220289421465099905853442580835107011195230291968780930697975598006739527766378653266348619728635806245025955345002755041603925937969312538533997011739810587568697303456822166217361089835366448015488669832981752878544877485623987706344769507057762455642977046244398516202951573493870701411779654672313989351886939059415144739125735484984904177676788341585055985880199159343673095033355941881391900745468453601037317075866993687855874542717088428663096940544712323182960549340884324984402408396986741695204169223388112111537271595818829415586672966447667180316055629982095175571193194746553722592102415422507032218803523749249767191257830913490781023907681713712672113344794955210499032390788707237597294022055085553420702378396745230770133380918123267717068808661086421155711118164794357591012217222657443491929578279483603669331234473557695233622873359039311034841001147580366535441189211378582097413617467653792033581156281234999904063916912139891779709047222724233036348138444394966286108758184781214861591156354215949015894046500159509926966463982097750054130213846297220057273663425876145350860831078450884076344005258101113797871884732221978956118299476914392031890434141022884022290587628667047880471680811498225903326244899176342311010312021673074374344688453630608854257627614567549341438916039853949651472324315491521958817324892030168326498204401451482436940341939044865189853657283107821179794631382384659748689091252741921165722130014636078861712342246536773998648620033126454126099847815647535420257204886259745070984458088377218308721893069033851669980731282538929375139097561723881185797040052684863749067445452217797048536172360851634266394131347119011535596320256370669737876032274002092463155338324812807428199963108387968058636659322656090102774753908002270994375475888656326562868117499837829537011972970479857516638273627892850199954382306564436550075522442532733690118741166125500138618644783851681797455565053492378090828450643270201675309224537654567395141296759674927933548059255343342005424639886069110883971926941920962071748956624868798752465941450732437745081224313669283464834817642830456469690296622447009209994812354262814881210329455445118699179233982296873809564687821032842470658924321906302629815875991350972588095549428323555024046748186238882867076202867812194020396995645037946343781520875380924791834204591038963519086744380987710706001142215265561464455452881147407605178733585126843142448621612262496059542636635449379985579395283919250257913195420513692602977623478930892908638465686788146002824220725404920417821461146109878631870962953462873521928179429799647212340168948296270822806599149008741268699408743039121002187726566715880965833441406001684567188963119680209121037394884017039176160746412636196527168739038258597208374683329377735536233325952763638774327234562419497354807130650437460182757286846517420400815158866178701226165051608075592137419859002685668035166668421168816358624020118643037940335798056235576671121574197026985112475086191187867133874638620632968731197919480902499507251912862168311938573914894909600999105808929952397634325334982880643438395664050199344042090733064233367740748683390374422436985397399192122026796056463820134812871819484806716146360024395586777519627865021836278791802442765744848783645691807891750445329376503284632623508079975899397698449434590146418929144256075611896728457701417947866409040009630967486635620605297743765938918932287252395402727300274770321387881773512064760148727400559552498670409728375138488499838402745207581419470695124686458140636350879094393210908638483356049186080027734924924076866639444613639558416921978165922638748743264327304467672027508818965859813465341605517732457487287025076910973507944293097330732874051572250737078846144709910112259193938308409870836260325567211522094688807789662858103042202852924581847046905682762505676688071045643077563689793958775135033162555856856762239891061874002465314600468801515151252137655308271750974103196097292319894309591457614745915704739617247067120037300603455963114782093576698166048815180705335576377715217347977213965328151165354140163143713206762226618015778045527721364621562134653448508091770786324202112255978872121787490488015474215978318919245317340815839739220394228399988775786153622804023584931734045556585246465707267234666999386039931971236031112497694728825231344154569717203026425520267610497319465122032342387051542518861463064811607944843945575722987078268710423043737958295284266764877048129493578173985790721203288360414283988628276863036645445215481011494421135935021748333654451514325052782231064000818114881368249408177396807515882336439452244749763847179102730548811881199474861420280282425214421085976734642709926108635305445997432553132630237120611707200881311708584673870148944963866186021341680729879479051266855597768652250944651377784907727567613229782998804366654031069499009791982405555726181763407498472689927813344293835522800709970666871371740405472636273400226350680577652199526948957563460425788125617735222878628325526195269760276776283091329556567415056938645106245468865149003907170487162162254901457899005028106504065363055236867661831255403078362376761972543883620729858374240293139480044283728054768651126130949716980771434678413333488206615560563982606944039010599699031351365664625295427593006197049925871820565403257392296034657078935085745498105348880439550536775237278471154098766461917914631728133492663117817147925689990160690268327963983307123785623705509865674036303956672841404401233254178276632469738428859528554173657488781756245291691977477845825867124463832136645892793323943636324364093512492517798783846551650462134214218206069999071479098599272484123187052096424022898425671647366157495738219900360564925969580481494875408991915273255152250088671757846740532483977889986811590610456372765195364568630857786760584127394726815502563711287813456257190247968300905119801015417513068006887023647575454231231124572387189739522335303481996192156258324133605821037142130462953291564342157613965275374897382136853291413148340954667705471981621755826646202748790771169374613044103148008335344239049205608545887527349234625197966173816884043624632793342271269110226898731991869388545562792257334751510350868818031374360045954084182631041320968133687262614040950540559524256182524392431870483696336641968924496947852607299677844969289554204304611482114211298408216108193211896082775653294650436919605543442586586310025041890855092438432155824240929384296092769142262470301448188351926757940993269959456157430118980182164493466588309132721524758398380717575648561743706856392441843570797995857201077601268639816113423652018123070017620911882757318691552882432772561924831776024564469554016453481674584657845568641480126153862890097485890620232039449143746480361339223847862732004459070822659154213030719417921236708066117353555118610777597514935687376976130370233633538516503252380591609391701099216519298261892362322294892457942701042227135906905279119121141768360752847432240864830033330178832723111227593837123530700231731592426751764184817620653578265129688349270394760547272703394645132230613340618854071172583270471812880963355072359110206277865801494809019473064300712509485716409686166229546403487273949830103568902837944909249717986635935816845849051257514440828163085624205695177911549441747897834139977038542521283485252123618645997284648260469141473933165302332494971404356499561695589456951051537933594172339274145031688151223280024836697149644456657811420244219209571371293558667528907122796007398574911530079509611966242663363437383915538060208201353243917561493505147340519087955131884328836843239659969372806070656995645563154853829725549707165250655103926014885576491754771346436669518225453833253039781414459088571392715836440680802470664879801348680606314843689832775934332249866461019046758157334730251647952143403102787484166506940833681669635081075227161237202411709725182935447759423084042967622917391861930346848772954788310836871195059623666385815525807848427926716892845623508196530516451938804780939237546053838166266747423467750747004924935864128119217177903474669557360603672599567496377514230187489411128228036693463108258999617531393941394696942203447031029177301313501883042568685341531461615570238906924282890975319928628722416012079963587206143289711503618924024656459607299836032189629447647614590110772743347151173895044653622810202127475585524109996778818234348019626550051023291477696657846707409157784899650929742577050432097533831805343411236800687440617143279055457108465709135874383741292413719564867030674837755681123980764090382737783142907466168259086347170056070883613953168454628990507917885050148373262685738475223200036724404976648762660386867363735194757706426394441894637487388479636710693502316580837328444117153410657898738341296645593616546103924035403061388223176255039344761455671199008318713553797996597028718803689581401069427665392706005562594086803267163099562579942320159378884500449707171092071291137563783681368158337947602285241262123091745095604328015582855844242806224860005675052923724785928909012694132151633468204809503968434530099472230444811916709739778002770310320943565585684127302862645696181772633600043727167575267812948258795589393313755128142709629140943416815437306564252451362457132539369460087138467046352383716483117352790521899017045486558654383633972916847305587350129068747068657441368923881887359585618582105367792099017836978255373267640355926238117293712690568853060481921242970635788812816502076886148403511383772521070122636479582036506746942747885601959175769570992008466696524642058516773244100734562600006547681717920508313812624579061507768520103389182137369851449970759010264973752880881356785090289349725330427924229384126804964841448103871489066933428685407898471722156550589347839463700456624946418330101085240570983761155875199824154627331375374978031446467342267410506375241474146922673903941075099758236150481275588814558836706884817742900982841186689656712230167463662194760900562413907805099378197640607673367290731928889915902076817271336378544659917285932257087176076143426873569975971075877974484497158251391358470411516693013604020242521117416816936533126090813067510350618348421227930978642793885172132162275632030609251769541105934259580556672200522880736650876270819001370896613779515604373845855415418609555327715608322155862428468402041621790254297436528278794390393282604586158871935024739868952713338666840590278017566464500514791429832979477855250203139566362663795581720580217363958016819265608502654144868038016231805168836975440777282284763971424734526445347501961532990155890431566337265606130811338370205673370101195206153791404569435473112440577376139810762526863242771792153763317650825412494201219503050324357667994201273916201610792467119634733017480534064329149292406180382140852572546734525903957716191766030268026805357196965702078963419327371643178161612336236005136247946166172347073424589223950195555658223568303799881083505299063995509087555769609426180605971596725695757060412638627072690941858224100738364619010023384393045875528925059703117116521319833045559393787847760098493728749438538836718801515857796886790889130601368476803109551146938283653278181777321931604523023473271895634210853850743584441477362278144855684872557631557287312763927240329980443986779942081519700190020213274603031230441229947613785490448958674394994715173499815251325682184839819878410494316413175643976484566599105797236736679919187023503383198891341951645849501611296812827024821579956572717525652478388720449559360424258435679113892694440198471725842129164525424010101477660319771243527051574980973243416294282117104450072161441862009149438265809610100846835670742543128160170016237168214064377573120591337376227949547346118736130746086383847496561509165741633183565939258500749751655268750860624268370683246604350962756772327140804587458666042700399102512071402698792837862631384721855815694718258532356165581659547711711962489767762295929340307449291489841595713724783428104388185423819973673092479034337622701564728100427485686642787032851415585073404794791861919546212741663192632022247153973983125190463321823605757704441354772999312917710352561866409401557323925380218228591918295592084398845292847614977579443855946749328628332789138594972556618262565867719402539687944616761828633463559673794193182429058021318253275506594426957485211888828281166727902705996528534173448943153750814776444359634189372368886533372041357699606467707360286115603500609369707267702426587675866878382269307272515364066447257438675328567085168995160080102764840466552763793485576043162416270133699948312980319748633378827165228409125522852256621966689843417954841895380258891638758435324265903822072642249028940445513388953656410798197333677681426095697173924895692012278311980689975597551877133374493023632821362269830746967653045851633115634215261926076481560282143585411001654358471432025257176132037570248736708742539018155943064762646346359497695953466396765975406292010536982577580785943650599913369252261485396058946065096311274731216417862225080957651113905336572695620086905576411248265107658322380903606055954759483301205264070541314263609658664672970410146175311043087394186347854712305197379739033754867775345565491563328263115789969345747336620095044204077227791485674622831288448550884173841288110978030936169510243493200374471617077203236915351134028913045433662737331702783254344776695004644534541673639224582086345530996173649666197784997732392404922289446407689804637907358115168905211988463496040966761942981487257979765032742612253207325138958397653759172512640216612790568377024018591830366640593810058715413242820012195670967478021266699926234110560118862068758069300278700091932266834716127661971325512282961869643607381018309437987695528685246732443194880816210248083378921066339518838893897154875614143532099085525213501407047819788474342714131434238678517122964461426332230296613991386338009524463028790300825017302459984069466369242843344336754329266745715867377162047160573675805784712800379226300140199862310049078514388144656416446680129269554116121366781222731683966901379915807360229121579010404145809369555713694148246822340686234220145118552194531577310252149306114623467249204775343420323256411631253664630162654143584126305406572641997118690326266620595555153732899597557694874871841820643509068682451568206077685591598499955828771547127439367194479585928745354034786960680486420651944142039551060180161796613755666751215776934184218236659875314710881024540017410146587206179726087534380011735284207081871677001568503995608571845327385997020521904517261996354225190871309974508175866414785217032314075496054678085817609885649083650183505267033388508176568491859701882110542684526473936570629127238863623789211269225138583996953979739972611950700746199046962593494047034581572318006701238507799136198165407945516553373260891054209925812449403580387652862808074917571162052257580710029968055629752332346509626252024337599820125896360519626795350642912037197619419167210520585947829983985397563785060654290954250274464457834563248403080931500894950984952465264430465606683178498860610945771776338754191347297086244272129541775948798432786355874530856411540336029010611662397509285442320502937936502770859031939453271692773325521431397625477949529286635735438801115970200416223967425271296989965772883065476259341393905399740266865759378862827566822813760056586294394912539605376770278382030484896255068373408630388987171626615671672419809828538773858806568718556869499222335745440514424169215147426631601943619556188532234823098975231257949845210055196753781051265793683063949338633412876691586647152760432126153709170470984643966705489907044300691178541568208198626639066962309901974963761427594467747615421724872252745065424718079402829911127153516067969779129455030968989145872827675745131715768222815799195551607313794974858158160773860486353052193866795894900395806581522544572566494934062978048345246312626977527468561521488338247509634649382218445088907261639312489095854854761557583043054024626873278316651215671437333965766012533972897425915321981975296231365070335042984347675302148127489984301273296766375998088368277517113562728148302895563571151943213454459248955333937425621425234009195463383376512948579050095639894711803226680630106193319998263590565866429964789507247673431676835214405762788427172665520649059935519802545578198428910684752582823938781708320646682812427991130905403863199440011442277971632714982780310404458823785701401967683166284789202693698993852352293647299199422726474535165407203085207431828090499118788641356651452531651274748790906115990513720687349120208724248850071927416196667042405547572174514388477735156569127014410408099140101609536602486477893705865781352774112860150845788984271936516397547091380058796714153096350992004993001059284276877335286427041802459136682320259757246092134726965800313506247755498233806321750228821537766811462029376258290974480144795004222040040400996242629192786996851994833549868143627630799668069585587827062292316275719296208356509031898762154084944083502719823326979015099556765448239566255181134907681745534070046179189216382305048736821116043303338756135671255938247366484878128989533547733119359863976989181804714673260317115375156220097840868971167642172979971614876295557796068327649352908936583512952525305700111867052420745364593370293836059731969265518856107228258388302708660713474999865079788027142870023773750053188862299987887447416976541190466277186309382681027572115592419557824970298901768330588630431077444374745897892300897591598061153205591818908326441955904657744456046139004176207706827594539702835593753544484559515980599252509577379082616227952423402415392621431425236983073416951812948705435726141597373071685255244252221800494959774092636017041658140949081923063018398182867160144917031267200203586814732472321501087919913672823036404125506731542479100428899405602556268346521061605068293477468214677034362694663467732514001270867911039647075448056809816800117432290147075493699843111402404164302372589735987240496401656733273008416943264623341895015861070906874748519843881004664032989209349358490041692171563150169523968073027729023192187371118267332405283533942193721489993750747384989500362964250106139140003226627664688348761441145966803567975606696085646460239757565113196017823021078933650670298916341687564864039335467278653116686042060910863604587902269200175355194105679188121662908756656952214105035295734342897269152839414475755758158438957802769869769057621226982338270323488613995484600085322952239602185431520240090126880959940324279831908113634014029682775477979821617151069606250811745632884838848604362728967576142270659424018544818713293546058759469674586685363426931114315561103662179423189739896521764184886344117548739856731994086617332550216943460187857392162221201889932763543884195016212547964369224122434885036563028601321727857980076614972976797237802796450699371798193828481443999933704379013835892819896973528567649363926441108850555879649219702786084598369454609263930664490094278808950756907902780433541312987192168568764436174702363473706495876068769801666679450804462032228430089025475794074010642867214184914249267910480314039611366599609476806984563008990406275571517182072118328894156897359047341728505275536238106438167818883202679341384844695534145081079631182055598214581111863107182596864414574568557892004581558582349384552787340885032369980900301369577288338435451853747097556019703277927495091543788855808057177814317513749423894740941373025617250737144252876671348630267684329630739789369521087435307507763527972392076491869374536236782954517887310683466042133460312874482534183419307444311148116045513723007661066658055792325195575914439554535828937177414980366340132798996029479645695481589089423366636737469843289205442129197727011659683347460398619919265353892108119328286485395892873338094733895959159956415621451097624926594429765878282606884413536456630340734075505321933533498237558378855869360352410227184775152532669230336225384099918969747574531940980889247708405617632439843357284633324313807789413668057243635116958354371528447538516862410129313337296923495562684968686993884464026301135648925994286302687138647006037952160160501369537216595901869560031241111704241838810756211281867514056863274521197273528987910273557456051377765785505809286453074066084176486018029194619108708238517024955480210759945425147435797856091878144979225114416992647959111645834408223291429096529379321804074229804545618394701767768124332114796092703438803153851220392396205643964058952382101404830175116923604845435117282225181775201628636729139551954291038322832808630617073189134468415178606781997789559438808229153442046344654222506665872656323464171219961800907876094037481535093465423436846348853160627661383173956084325235529043751543272128310513275435622815319487302123896658344612915867775368321884118057598016952229424753511228792020082501891874988806889180026948599174113093574046235510543912575975610325994903225257367039499250092366493654189056695128781627729286254931669753565580388624971742718939008065265352792499780645341420719856053512995917494897622886071162885618367961032886610670285736787692914264261375455833757286040972294600257310093872737586025545765041836095619234869380369628345489803082387626079705341581428229948265513293335830024163419214320485901248015819630303788560629914015995628451736656271168050483189902667682016984981327678830355987835870804816420767183847470625034823629824180381324173982027806966596937195460060611047341026931248368192121818227557575670412048793312263659389464603965809828616353652289727213672327363333088414832336825460815002271179038426981962601470569662068661964873460459695916668696733309480357457310853842745659085841954476260047464926061741545598324197132807197123445800385411089125155693160003364424008403448116261087350894015372813136272452487939940891038657425234958250018268709803128163817939551608715579176566184400675869477286025902204965095522081244424408973719695130148097899804348767296939446878689528996764682439241172341493929436803753660486008208911753693954355197671759709328780804380896540027617269401905543469842473830299780381358678848239485463184578944444973628454260541133062408064259499385883808654031550728977673833929743937881784091632030419550969726533995905332240265518953781746027505355866088093801787601819563148522116047333462019084897185104518206281530953152524892494919902252430375551280922911606544272290927285098713023359060727780637570274432545382681849863646005005743024168166099218560377092186752574480930916676960786977400706566487432714474161163727047458169283049523063979824620499923799802656308469874141535251223624748678291340819469037993213031756258614451740962745070868520110641591688870891384862554388652099530170199324592326644978740406416695399061380578464069213953735084972656380725298915896126373484863644766862765721783282235243538284756333938990744290496942778981103885627530080662133096678041838222117247492676622069136768723176596364327080973543344182338915417806090415179139830337170542319980570957684230289880408676550474492104204287981749420163360767170049349442243976594669514030294792577492604282671117882543272571221099807904419965222595719615821212269074967764905352251841086978542017428658036725948539262511154132569260616570786221102849123220712192916082321266674526988575207623456009681746942135427728450616605475733016844037949926427161482530454017925487780919888675737141090510075425051791818934120671416259261798030462294373451018790082982539931270468841198300481812319443113392272531552564505987354367884955748857869281519882155979519582822092125944525915487038961108809568204207976026870691137055247706692979573715002079472714443178771631033608877418684941364673678080776371252520799781891408986058894059576429124194368417953941550768844057876201281360294330105911271935870845771685221684868410953261325982899419800336281821935878498200726393238215099799105699298579958381231631927864340774353918180790419448693000589904083843499186805355535022168526309266891814378947113472682530949342934240992463939268365090947804933287335183549590926667398566087506647692573428524591498871388767074933599740146599521314275423172313208469964219326762466895313525694250142051844335278710980666391232483099316641834865193591017032360828437537142698948455053826480385195268127559339518942745029219524789999414311594423556162697845011949000213901616787557651053499077158544203084388078315931875214807122203847481639321989175883387328702699051938174219654753080858539323158419273654250736591441538684437838530006079428212030808303773918155642896909264714646480738998535645328827615424513514170662405406005290436649551681744422395642962180179220933119037103099832118574647416040416014561487340514182236428229936272843994743693997552913228343997623085374163998709732742610147940201861629948633161286049960853514787690887602974337191304806162312092199507862417145411097343165780709449947330555743528489948762536324239947752538699594947131956765382737280748688102432306478429994009277181287356412172200771537628368355629474821190216262425481520263711624045961347508893264989105496723753122542992017571916534926953036746428238201410682353246048646356753321100913361642091319626113050302099712364333630942103294545433299185449710306689726789719928789963990044869567695945605302035805196103789435825930880433425149678249798714027687411961694789654286657035488492551631868293159890890739058619932327225356822580305111290214200536781377789458685642374703832379312418326884131820303406860134812945433309830401988718061851122344351491530466723680001861905060892157022092122699912178834456064092804346428017640992348328362862867665195347583705131757390613724193173828806366478426291886972314482404868671551857879584783815338588735058821904882965610987041155373308963372628256579314441403823102730413498990572651621896582349440752504877148730010144660429734792917158378635167036786265606282888584018674531483035345970684172580879555110311046392292442711485573967660155732159039530654657616691619201571781241878426931361509426406875641905244265339747888094173535935935898302619260545700233855131007247150996173469214430627962943855487634301443783581006423624209759877462124568677805535542320885669340625909569479913889830790050865504503566242487948209438185115539080947623202677481298546283927945247407266288897942937777625598875608205179283721385484101201733630378183424148781916769316037769851412959007565792877799555853459637720530979208583995891611938753926813424535669273474476117806686407492897973383724677449902887734918563216313382515523557922622130954823128209872647288134544228508143739619549184283593092928907910599995094898592116900894433064242636697883727457011181582043364165945811785639525232565764977022165874350817566851943812189731805007119157316382059110648093477957242556382210947729790933983197020261984749741338031404601697725497607453887582679698703458496445933733713375061293851155472192914904491800031164984762808347841879908895013399643176920290426620655147142138038993859818290911825957461523418660732992011067913250851845569918996020666414941676089067126285257117101474066190538627812118858669803830342539383591912503591702473858789854798265032048096114305573244684654854570160917327760973101206857969417954757071777950462704118018089427354999917030659398412105764024152806844166201165581518491677126717033280970940879148901335186265977517422942492303048169651976766625799140944791763624532044939103189984406373490044630734517973855592626299338547935370115128375921210345257837663326252076567150783589062050758290989357305552980739023902047823224780509559105700253623569357312640088736235028670851886543168473580112928692870428800134339565328784978689736772974464778411991779858010605964922701239908921701304676057962693061464644587962016735668903554256336044777769814172601361786881262584131114732148290767011187422308927131504734976099607465214628498126169443828840729967567060028241845288087094565747447851382997275973990753050358233283789888738955781923439653171887453719017493918180917131830254173930047977433308746778151370353874306089285138411580033725650811607456862903691669231801434454848497864186088607258456119481896889987068501455559783849219600462028094139809228477611481882439366762996742023303661563014790666776575630619506869095406394781930109338523388213499715379248380197294796571322141385056017870114035394774269988594613333275596423181502198586504364821442741671962863429893141065180947663648486104409899777096170694347812760358587489820456594488859257143522721235347508561131382614531989053431126655020634049711893177437352428978217800028983846563881440523471134063732338602180002518024040114234956661733082348065162054391118906280492542593063259240497683221712850412719580945121676385402206653751157178859633558103172158578770921325987606938351516039977886538102089612967071058939105177348786057890967390783902574228467608213409976505598814470312330271635900793182439658500436533036014256824032797178622799630620366929875370068390412738999062403801751073736050424620892388349508152693796195708643532164267793944613309173238304201930650796463622026423495067134186873594665989090603181266571412662568448209484927696651074934949354672199734710514856094632342660682183362478188212814462849087514692875043524383867410667379267510603819676330861550876857768841662019041655257797470729018828487509253062892426905607952600263672624027035020727537012651205550041741148754725349626797961136856714484940677186839508279550426794875430867401083452241045753359038377778498257892431094631958671793574489231723717734822052569311820984359252900738154145725555618161648779297266606597373731864563538706348503610806651746559950504960774897629228007765623003498995706520656656244515866688317786813005806341782590957360165259616914034097672317252515603737511109310870925833460092646395569352567508285061007240949279328448118525647558460413018296915956284573241823301035068955462026206644966392400820273061719785006014269109295482721989884113056640680328058859790107480323628064592604249920725993366417875526312750288264726178783021013131548518201736873273632031737242262942706789944701629468782635664486828042552417709663009066898564864430006053685855416570701036633996829323826872383417080231620107697802944766417137426786925447951835147678303586204849608906908530439398391455516917688886489078879264467011578095543235465876482800115929361499901251396311359126041872325562111855912934270088399579517903637274825042730545124102960100361909253742039120764613538434925514519679537541465301828501663076919662960436095519488745481468934121241012158131601354449491363874464862541234534170156246349684742485223048489246758033628164208000889441009104503945473157839588637246397836898263556613996742379201124064218273498046024438593833823247129739845670629336958122307553118771166371993695265334788158554696270240619033043084463700423730728364975189694372479244310809375310215990079971987906514070195155248345033968224524206458937488150696233911132428133009330749091353053945044679003292889423614023241660775522647028154787845975203747307325155923822718810119037364597598469534205952888894102850552070815299739279806612052796889992109986210216459155881254686533697723361666361524487738610912240816367444985155360069532373449279693842582071395886192190072857899239038599995805864349634773205726906653351544491137449036692139091397991836974505732024129633569369412654564928678520912452536431151926052454721850095233317282350216114417887425088967689861281029738820043362639619625243264793529023580445637349129988776282499104194139435909457549293485300820885266645151206164189522487871296183058461926201333284537302205660428156668287573790304216731052754789581752694375459121244412194398447798856572533247160450501094550225723256963565105149685492904033604554802064941395103821662601761435035095387609012943185126301496145101168436475130317931533259138004284756203348239504541460327480701613041151264848128535188823159767558947768881565397957734751597478313274514483852610975611138881027868961226093637346788338645268548497250508802634173897359404710045025727214032057488405567681389102310383976406656145977000518810721901333210571492728093880787851300049973208437932807760303862627945962893334893382278670277906000835123590198841070601830239628113131249436833263832440184684261968613341417461922051034079461640559713114675346310788997011057514460800002451087706282397717604703067315774637921055030577908002277364795238558703009751322889318554620727557409750154283959193898079074014122734990652730600363831923035489405857112894925148778141839898685360443719925768444409078895803850066840953954778216718197505735460711096521742826634840213469541593252919386659625155270655213666307990236139895085178508386731133753052709347637895598174080367207770189829608170340041457808321479575872177294608394861644790246236744859939770219245728657481188645579581508149020516650270840378685767387051832586938055582676317168583249109381520673110982289725024148520548289754283815768524508272386146352020100014745275076245885428529487539009041661638708960222173973596733418205873095913809099389517943327823507401663955167373054504201365435120848544281504586078400374543453551232606541263141534649787180925477455157751624706078226231637558506057916678652065299443355298468610057497193466233620791808040258262312018623345597925176816754202267741541809645131311540249440461194152543892441388585869990793226334174288436483345462135571270814762153983394603857654473016058100282077270036948840439891053569080142064350859003426954736845458481749947083930491538560659512801142833557355042668893173667346617447608478138333500855887889009433932246209024180368030320083102341091801968476514983977195065726382810233557405809283747899978590661214529190962212780578833250241869329231644572228170944257066122497163137327464824762770533616645423396692214514620577880829609952928765093374897537233959422305657132163845902680613738349033866449735602435137926235639635911037225469897794414626892868656694629443201717081031359996131759262995829369117821959381649953582986791732363629516258241599813948554092079623795388376205413489215673483180840697295723795042553732406601170799002715171148326142771800834829253576587279249676419755092216734110527694207724957419989580943472254349253009721540762775282545823373383075955807010392983739358496073420502318473147475242303787476002057571025282276696307770356643190720905592742079590907758212149850400209342450044621522104998027271392244094756832444124658090053680708797289492726605917312823133547075169974476108475127390954462805188616886273764605653121394628099237713848210435274306003369502046126050392150507985740423202732083729811551790432770058383967119023676833997012973407839119622998945565110649313367619869104073962814426059262675082283446087025886241442903485086810079638971134143142183514221619110782576632430351441790086963484591968287666734181883750701155094392766664086980002529533278926087308260106549067511203855425031724030878975419986828949167117806677942473170396318628137236351471013030273235840041837731873724634004823650251614747254388101777212642028182734348296229331492181622804019464366745747201667742064770819189849127472268958642813278033395317481532444037950026088641139983247272279697364982084645279886566582914905297616603460433653206178417223010869976821851562505315662551664219846076908084322676223771893649295285138167361683190152537718021056392553577954998212550208674750872932733714831379835187249068622140666581715748589052854270343553945594637921506771921975564610092033741700458043320571051299945452903577954292998662944546474474292067106521750006108998447372816006318904114455398361759274676004503725876008770247511893464380839108052391130049934304406161781420124463841490879833313045930468447046323248979122607053373455778708253933485100928261536134254068908063735566485142039668828295581226700689614227096753609811117015904841567935443116546376358784882325289760939994058646259900824589785784606909562560395132236321615180478047136236638029257217225501154588847170269173831255496298525932403572849985947837637823590747592942129483235644617748382036974755230652163020640012594780287887135392992369479027579011359983132031695727712415872498920070622530331519340642915614132044110861007691886235067755402833691506453737836057637992294742544042650322030778846786244931958041418193397080535819752207674102256737755806771114518736761528878152565615125652580583605411387483344418394445353069658683429391286975145566818656268286678357149735144287607210574517454474905862787076765810346550044339665696766145790313906721588052000627274365901079612809945828820377115291653169287991950766620560427087145603350541319870308308551803819387229442410854373156927036349158010228913767047804217222987269779985715567061753642161679690010367552906795598149227628515202373349710345195721019946728836117817627378557796425157121067149121833022434550280445242424606128081421682765543019869720802357730321870827035188107851816154044430885899527638275030148808351338943685499616419864772825308938464416434985777126740257795383172727036867376785269760247562608371955456329316340323194245040320554288981835502795767546844771470479636128567284917905893622822545194045493375031386804881391272051171256237202749563301205015859102110925645374409930569289709465144276770727300893612139968963176360666785117783984529917419359690200001174930857061450410504553335187229974580181814582585356092422872001733544257175865898793423964765249939809722299678711502360169207690808548399271757075457377922433717617131560475942249261273215740594840587915690740498012355780666654666012560647624423217929166500453689331417252337327602704485315647223329875575952361678802107783060428270851072136515304780702516629712341184873322165143174855968933663413091599564521374864986434895777227822875025493912640568883281270309272578640756793316709567576715101889235289354028496597487952005762514748977463047980380879077993936485561233494486357328184004961148718649707272234792172634350973837944316338818736555303781157576218796666254905541272866461190533587872046516482476537076142466835334640519163051706658104272561078140985199663135721867746089845605926154089690377326370591694500095354278285826254377168177993279554195442062437019528252740330561887403805362815158148464505596889767834527240076928010376813633375746570335338551216910939434237453571832308908024506929911876677577773711099425639895556068814317062623788707135923319741801449518670450609720424149716611021593574321180445891469286176491014774299939585193567069975276071391181370175640794997331850259186853172685816865336461107734955786554874844443596354602011280291714419558257080560905424683133527012273593308803620598728108845375168422558317019204091166106375040370683395020351448531166427212659800802067732502054918359205627945539602472318960848609915603854519936324159682701593014349693709480857892918871149406177851144463978501781325042366033338283444220907836680525861775463266944110772930511213148763924059888682795957233779359223332572129497924779193293055049385434856359527449401599653734017208467007817382609318741194225796816680781166164176090798850178541763770335129185306203756667892908618805222229210815920014653195024996532038936213652665318904115425218047651178438456637569327805176896105010927838636837527873254348440870715657120439619501929487534773470818707715401526877114332464326504388445768964439899682561805536709079292502207706904965021408484839573404767434786961199138804388149072437468866691989574398962674750371600595775032142617383271271616362731362870889229757641423660411321892960118486967907696010171018000611821730011615407222261384023885291506095125746390777043213685638066929780541764386051386719041167386840268691604052316433467014603043144895877138769185959112883986071842124668419214180608823531611411086060916829345293883980007804233940542913551498506516108176154396013526606039403608402260915343987319730428802993380079223701993449175887365085242371649020694581973790662039552891278676710848076046883155361608089240926153664198840474918649333538165277500483349043299338334926788275492690871812286935692849812673336960529463720773961332025790436614096428489509932594090772782977394606039636393538588571880258778706239505579228892804068720239840512733429686587659430153830309384867291285483978789264029176793748691137580250071520254297218811838017969697990913786668014657503207674857269354370203645759376252095363252225285512412833423166168874085437165604375940836985081706998236061209845990927505923207434622972249003599479199812025953962730520160213835763492951106743225575197899369265673407552514307434003154489209269817374556461274485109181947179132823953056784099167041039014226570166723619087015783992666245412319247656277163234136769494176036483298474334234397416666943637208873742269148783982633097549731906954882627607803469859419161639353598671134656358397516537158624381667384524579278119523109599615319249096026576569472425502972350229095696035414393565308007859701172713916615986750162677707000234284883493450900624092619923458031160696082906250257221121163526806734678015707589756793280702865877217781561838575859602446520249147815587480043038950001863132904237807681567383935064651880383714775868495596099905568638701830058779755398881984338798493003391312640547384917592699735970621992503444925110267678268977172090113463158858961419640175161482691050339038839346780547322173468640843315118973368974419502418287830503487257334315107513847112363947058411960854090038089103876899929676907951367070723599305153530645810441799039897743051354524929517585542878278975574601140381834628916920220577609893774786698394649228593676563154144527421055386953993800652039591277932731710491399814599402194154147860370227311832799871885562964149609698099121792338022695908414931963703400875971022299907757985969227658293295608513619910692746215704489026774427109106401746348942681053475456231323529614085589678709773234917989579310219754480446523230937456184701655055876868314732840236489810058326442043513129221521280188347357419152939270309368657010907545031653312831837881377893146396331572279732652657779295837896324001799148795704746479955994439950803878106244361824738912150397055568731587352461307166635303327316135915449656437673739530644552698821124362325722485255446488483938439969562451742008451360920738661190579113746703405502070788864536850274485226548417846807797991856829460778559087543355221042896321909559147411284974727116346966662775811530298851034312090166097428158506733044243820101374247323823840870484113312983739939980140225166349053255934948498460619812167998521679819812515680450412515866601848955860571714281345211493412680039615535773204167978099712461234120061709498615590033629363583752747046948109815834250475755102960126593263417427883195820999777259797768639717865577304533705016367120519435694353795069951662734468825114288256244006857379328119841608835229675517113404501767126699421577073686703186666014254036432624914678520813076553726129998145719110165573699689934988053110040535991036707700680556310172967266589127981039209084646797940680907556668662735015238028986252388926010003757033336289699620417153606930100224543557626685573850362322534581257309327830832284028680378468219333822837361970455196169559682292122897827351079660764473216909864586303217855409468021783173619633231287629610067485630388849141365197592747422751529866587024347810272596345301885559604355497103631204954521779425344890066811091452795448016422142188051810200321301526395354634261243451765841325135415536436658676694019885476375546342704434243754534574547440222969171479205614683976781767268194537203793230118718881651503018652352115377256380736233357567046925367625507594017548171602517351259597598748058104591707159951821318433028419195835255347212237545497097120718186740165408430883394312897504113235618195823844388091470033218476086208267318745373321873061915583637685941901260012532835610115337452524888871654098789448231359942551046734224276821322475180573510936707756414692932796969892640426204424272420240936590760285748362254564994000073682105540116364278969386866959359094676467719250324571228989735347855549489350601962718107990806069485995361925093634611519171167756838627772755056671668953162158450142234344023807312951660940671741093935381201786925609200032875590857305283816037796261327660858402315519219152829271090913796203936725050604018360122315119241474407722605550842228721646605283580298499206636924496110218991915222551454581673029015310098566154242861591456561481833608742048770415985973369249355539400174827765936741288232216371462641041844308820110146909785675369855444586187421028526702301464919670789095454184268523347705945290455483921345245299930242391251559407084962424159645352448491958308687406160529205842595850234189566466326765447295322550606814608592230927497630106718813017526185527381919167477102868677731700286796067437303096602363669300025450053545506596180029081075374376449402074499387325761317063968168617764595709212069369492710992225795610573372498468970432759841512370170746486252672135102072290728889843036193584824601632181879819749547097830290407219506172706492153116990322176928468048518168938977262087586018154896101985214796415606468722645722071208820940087123491778972566334832054390160091733603459382202316409872179710384551890663232430219366840366115096469302166694587684536697993674517910183808945991600566961089849054648157082291481804636237557655899333953445326415631647892336303715119600815471946217430614068515925515701173123149585282242239455681840316553744760844814173127526065039102063769800006554781745732565536265845544746866449674017222344748717402249990900785741270147086697531271939198587608647149066071524893099981271175073356747347188354444107265670358177764436997274779642799558151528443949615767458471614022559070026142754624766132132874945363321951290863590979069979565323222488459273507470067961498919878977278959793100589220002252892774762628468540763164178364549605918423779110535631141504717560279529198182467179365538738222128702730550660130087387475686709514522861877808000355529381406413045417142601316379963072188745155061364673824652005987205226086494157986769959433945060579544020434782521758037071038042163927991575268986178874733628328896080194023733898333049511204084215527661850790130810260562377278710472954263862809125268237729299416088480192002155258641746872481079439040666517336320982830307750010401119932654200422640247642847820346545951113991269985520902112690792183653534809535007792801450516881088177176618473993127864134902755997851311445186397281350308316657391376863720748699106592407321059558927117104024559507450473671303348567154311781344008878368776627354097487124931910953171157122232144702625796109565477617858122743182997984556055885929289143607018139978953276348813408984272913520509152639688453781267911971094458066654874009545084940947571073484681548707342462508878707826781908869853859762526003976662219121882958632635359201154844898895638125366972884163975189884248443206191898198487993135236393406404585128625820337618775295279836078485370538106575393862004199983930303422099270349185867500201411657744405254564488135412443073268467183577872739494187127985432923961381580227673979721792165956523302159573216445977365170367259508519646708206369843955044258009172252868083841999718611548567569560183874093816189824257179755719512366411916349542313722816700567483032298057752649076157948321764579855587150617178600510070496169239171417467315978918265107393178417681559102902147663881048604598756239495285771428075748417570040067371663040698905245972628458780212890606494027487122206412339305343624136517638415858955458047997818247472079303890971759291968478445349863508030904717618535595214625354228765971999935017156801204557049167560846541749147622243645098095744398087048123045159885094119277213382821304335810013920918315973634288413256293972678615880995463898703548216065338542874376481833576959172467082930489327321340585061204283334287753278659514177400584956461373582960673937139584696212261940564062063374863890465034135055930276695178489654659093661419354110959704412672170370892231723166634457249856524707953842242469762453823694198569844266183215057813243776028235529064764542924190673855185610269433732483607366049524010620414644166461219868314661330195242565703597519603497221462084170480136575311992355676944120525824291524720094528454141278911784686762237098905240239855053940639703209540535716587829609360494864481703673066509764042199715189596754816099264746426841750039662268143213385668275594384095109255299426803936397489189671381599952787785225359558960256306290492955431385456184487742476174077929215685919601572684846439931071086100467826463960869758995787075785834483682742854679184968617340313088161819449497495136068245723893709826886031510554803762290786591207899791994475964517474550190930031623856084970775584675693501768914420157720619613317659888642203189483709486500535090362816855414434567901548743747804156162180564886842191604870628957283843114984243893842209828616873503931389901071896150464379220070539675541193841880689778897111971926213455883651409933741530314754244912780928912307614805352484589617211540989831489370386230183309560409580845337157841446428890132909470881454543539619165475984939469858551776987487459255054339525298426826068505268508037267073152033200635903494103687685908648827809038584485709856668094256582097422290931298429516122934003684356894272690050231049700231226901569592699054470307122343624406723869328099378119491827728373781935771153039172396018782703279719563773469173440110097481608807967401320961564950616139509379892960445113070985571052640458837343135868688730032282358513588655256290977224913586507122613768798985427625286347517690142010700863311918618009689332646911253699828916140785035136748178301103040753317649573103543663958535862919100075729703631394907762679350224927935923452899745699532091816049693387027205206017965249340286444084981252740370033686122207631436817744238893245904715838174536581209414296961958338282502939405159004444548504081955860606522822836223208058676548330653084286440694003834811458773462922195403157706185379714241793155980977886332723173255149988506012644675559126733168783864599760173413216798587266222252010438553366116853750847184137705977685307982918342116650103412571880153410781128687402123025771105983587270931537708139826997397409271782108514279652252127061514993884469751530457418065552815218344699047019492001699990043347725275315899831139020851908145576442798962503597739191552100808410753865857726665839132483753040104047366975818283160810345925259992839573795059595874491503319044190698523110315802236465499743519522416166817122937771399790422437061991264938958767201492189780873405532996442327961206773787288556343516045309737492353835787795718228755075390249277207378597294038344604045093964456822877945339794446891203485815066742604953161191255498696353986802122287232164178789756126107527079681206172105661130058691926221904437778521021751713242295998493839656746870251178842153730879982685958824523578465811525318374747924716882128468785771295202980738703797530977301312453418101297948806456909388572246589092115445126995488019721779525043937395219541310333587241993955901245376805006665364251567028220660238711743292142134653048377793455918385711890542378938030403470263442204536099723838180352486950499121613936155167755181970861860312306033861723530404533747577933824715886657005327073997702757120204951558999692883011133971283199650823710781184260249489564403526402160449552121619545032328046350153799823572587205998474325025559248238021551898722883502270489150453952541161068471796638347797625892615777371945439108140224141843941341304373488609708405180347016603728116917979706818844827949103839124947806260025560708285370379394070913529067045216981179947443423471951850110273238127601131940359843748860790654868346589032972633110426350224111661215323688149455479014904249017841317766131499623379164911317505720192197427999797548160031018313998833008183868889499922543867884931808913898155393208058274677688556868616002412113497778866246933387091427071517211709368960277160775563076431796739894153960874578837182614495500375778985786215677282820192584448967377552081876420906606253813194467446058600447779688267297125527522052962034439912307972468223074104245999802740644674071983906910169466917859644924991867902400071609781025016704916907207502376707638557500928511333292179709074182973100732263297404995486011873728953695621966831363295538591725979299536047557707504669478088137361899256640358606454858616148663883423349880325688717846260439674417611818351201659234352524365002240356328488310286927809124993003329614807458053512959034513080879376889956264836943840933921965116987160697701958066203612294389581528515050128558310408586490992953272895010621905629036704857661925706891102660361457060668968944752207350295663484659848314440727545842634797340543177874326718796813903077323036121712938830987173000706511983315695121510621898504674639178678293735843887818805214061816203392934982708174557114328624031852310290767086773083482256167315963380840615369612638390929579657336823063968810601713833630482781050419769976046291657017547546466582297865284263968255661513572163151250639019010999758913893343782667920397645936895493031219976176126746102892494460828723856121013008602415750104397954418204596164167976244200442459165312821503031867217006870166897131967570384182948826532193777938832195769114106667258613826119708135849840078026185511533146513014573511304877713370499952506505618159614268888681859733723433007998662511315380913644231149486635984735819906153617263563008267002776754199790578230732597471701084723497091922595323654115869052822260203437003385384961303248559432214100763160380658330832306152924056063798386287588944952587089281335293299538351049679358343108767284003490924275309854413029965857349017424932700545665209093579295202560443111826456786454331561838143577700114399698617286692436438514913536446525849760550453833451313965105740775611635096079211602431378145046146313706905061465620730372207188625704025447949215537228792471767005654259612491883310338700110992483348820316117843113665532953021723528956168875556238100137139149841228031718989074158006410893462245386848143760366467187266518235446939014909434722644698629305145082434315820976400165088532398676652496769953074862537440447407780930204339825865889904445349664287133742271593220736743766323703310797788656736094611540079716615912285140685758883080372845980052028576045080573261797130859577655642939014682046234541609307663657547711839084544011941436396866974832426681248836289507889901840218932539122147685177399064402454735959371690015130414161716328815065658795112748785085454770525444928576989508692514872147947522146893099286782237995361705245799318966425019467970521233623810094408238840707991865770725475072233855005997624026891986295330488691466951201802016847640000725527090869215673211562136660240685968372646291977265271153180274002162815794387479266235259211093785657208628868630189988281377874656923901040531100413671841843836720377920994976010334905349438053867094412601702445244015293084925589274318786628975288798737990943349304301562211624879789801971950178128772191331973047911026647391886086748271812538189401420405543998351959892639302409717897104568981858055893546623599821597397605600347626003627939933118069408140914873259810631298452236923404544253956344841326171582797425743224560425471569972481718649070387334602542949168346818831783541415100069726416121125908514904933635287341380311440680324457641404122304658698826766086201567870582310230882397992226844083514162016323960666410403351329310822964969813597254586573833572954965989085390439427275698323128634818203915204582637243792994007832258182068522205285553324004829350787081356542402735436877979178425741046747768780930838540602171934718901000800485635778218933014470179420831849548318744086257037589261435653667079871808488562036930326368081378781784964409077043905265537915674500255312017106766768590090425720469694227477710312777235933698219998403652070021067361971486872880073977858305708543773736437339077144826497082090068124252389612548521662306352027985294027440146466185789579264086134427761641842539956435420048400603765905357443170148705662558999235667640535142949387144339057877338310942312772800721188969842706420806600419106171287876898427238522140149380747524400890777725368474411009619412884012665829839735726038263895685902904570829605980254121518713414983664512241974044405941343762267504768071464303969472664814583005527401075417283595372420305373149834047129557327025965585068852317209730969687194400366054762646952460513266824772087163091949671429823542196721421410680625373085315548667893195293122485270950774763927174029713567990591773099203997830124032542490141992461507038424246294526529887882313723795816741726928877153524217561832947900055553841517103588325996889114534357768352906424815404941304423449347498651428766161472905987210231938364483783088420719213759449553540050068659293466703469014926133207284667593144255242668929834267991634696772967195363705238666860194406656629583471796321356651457860415249514764534746779206281918545098283545282556974219124640730624567205407218661682603972685317840493803399850346990195000538123895603899307839957593793144589025624972220530590048419463673428074576796986829583265645923621499548697533683182399710763285781107297600303570751390905807970400183170366898646453365838202329207499135362860910008296699282826302335757849912866758029043277750302431131737466240131731459264267026317821307904957412485104352419738757577555523352709913223595332261875611566949416881452163815139402266374463915678472857547330518333198878691834728256137109501311145489063068302794745746327746814059753481077016821857925618897559214944107524437787087186364553733268017776980916926485939556729922007792313706470331998079027423560268001496397678558441161885419348397005805346039177034064756159058906062866425377259835069863555775696439044775237535860871420783165872578327029723948818006007410453765685059429778239592849632441371491407774210059204678288537694270028917130129319318227119568348647778073254338079745896681957587976116626674838792409919698434291476090726457738068844637693162277668688288532157022522200757749687076205678955740261583719523930153844849754295069733116275040189812426901840732112257565623630271924151133717828515043875639136047899227944777564505894531196977911677729782106933285900882000639915737674418199771777548047581896955290597772805228045995946106497457870697204921565545692792525110081263367447946852064132505997413167334833361693659448295247882688300497686445590068769304678734533190700033621474259138807158079232708018325979899285496585616163560918322712716135849528015623361774256175335083650036154065577909585511940629485487718816355309479669326692013384200065940214905288698786461039254035803995420727581415094711713955275121564611584220131013501435852393114301754422103551413798569040996358771309809420722207731883594277582556700101596926761237532568376508590004822664585606919612955673893404958986651246875438212051198406343651692947304998024991156393261626600023066846808524245782012195897922244073062068240606216392955719697994607670557061565221697262611434111164353429473249776580924366145889007017943162980164775406700859562614339328496168838478743462900208397961366236420290233873385715114677382845619504985888866067784380372057778433666534767134002777535926005147325484956769970214205603117502577790120357066654894548922912995628476599891605835800169726119050492043509419522187248405824773013497454335499764066486439302735918473565220039345118991228788941401481780221220806902214043059642166385630843242370811881484123806911618842031950387737589601879005840826588883889907223492331007219773913715742992817597675976814855855065029109802022307210330696337775214578250242645886363354591492302369489522491804009271521826114838684326306160898278912229534763323593000771757490321746615520290810030028222698238992142597810337882195086671510061769823868383558795223930686223298878648231605635469901447795616144801425458812371431359895869572709132608932754096838384113854256609111136374448626490120862536015621728706663749656392186958843930624262324113088037608949673037836286812193363668130989400798664125630518171307159167682841013881609760828349228581201147182710216170608229445251735824949262174804973126414955732188584847427583701522784665177675612414927761244632892166690635071488235348670761975753087310742937319002315808248202612960762223197599526897071873972243714504886918882543135595935155819893878638200099634330770613446965724412704378507413310134064315043234086435412212108290337274328644295771615467608476452265719416618262262844755995279478126924796228966578371505988180081750834891246069246914517960624741439306013607795820877975389116553372278601607691030097523446418068518882892578089771658268298466259190554179079282872784772154329277982092565382708097705202894796110458910949708918079518771644185001557227241561941938741420253777206002913232311382503362760530539996659179549832274029942602430464156533371852364780702651807785748132140925928623170867282411241945076400267390551220159210129444574766150210313706419414905064959613765919429573324228482715120041514352415514046383109111072614382512355942385312681416117754085640628551450098704539628637767457646788249985966147793256844511115624958209484587434248994253431769140760972289370101164888214211774742744076161302397635573910890118030568222754381527890226280855603402623654527299708096900786844204069603506337740350004584602113992272760215857352765038290799428949065176725424562629655017012869323302568376329306666371755381870853585939170075985064158346135831701855150757488547236337965181495173005201628967867667995323209315146575195505511267713832363906193565182357758113875903342791172341592331574654067707007565539495622590746511039865650899753235195817311902302798788190109752672893212995379165115565885711947084200185826498224734615783362254487054258883205401181254043705815044165790962761883330457473821971433952021356564865054530573441522108278287641470584699651530866582454399531520086685127412607236630262667208088669092631615997562984378374402192530838777443168101565151932388498708880350992183674859683833913062179872072069005738394479793622190750562036327274612469384800604965669145116721996648595991579325829647201413537830823539741602446587853064510895904856302661029895440020406751522483102554991368108768573166111439985587996629902504993285331054481475865076356644827808144762496570381868332919675015867456035284012553177419566570427622190616385523605911143986738149627121545285982898719285322617346215249509348909533637565131171313002566306462946712204773152650342762891542255179787657645464594843804504903576375439947112445566573461990446107803631599399363475659550514707112433532334546537542315830220654630013746154781260473731367586104815325772424574696747289025510423431129830863595208257054614842297962203960624006902701143381102253049240891942817540735916672174732805410965442636115015064223183894399547770867862490017937636059747135489059717064779322930486722006546090608521205996771488174404533211263261974158604870588583373946625405505918748733508502717832938164983781997360192199267163010752415353106950793201352778493208999261649853015583927040275016073249428273742953755741794204592116258409881282040226332225775857746227699749434737428095681766073475152450666276856209176658596483905417387264514542561654054440876223195815457953494959214047202733920387214941967265890462785236604262950304686588358240404705598905777223212133430710213989725771026629842599889188999798413095842134738541072689404577577517248554590230996620850040281273807797784206498049759358468974939000719197647697444318120634579870214801477573063141562338818473880935712144816990883297250256899894040939108319193786241582496942632104039847542990864768756635646004184454762863946004955375108388566458053666637813153132944505653953740655328884105548332899844280225698273541443210922461554993459417166493283867158580012727418764059897521685270757958562730429887484273073380657663311046260536694542849983032666393364884167572105439926460267160742364410174451422516527256884841116019675610262912493389020932459059910051478481000872656810886309961184036305259145501485196163896877907550497811475385724374666456603647656735710323887273766846261821957672028886150192038267822536010570263106038472445360211206710852085288784997871451264471972700164548362839806604401280003110546403395968541912636991053193022703397226941096168795692297894817296495644663323655332665972899206033280980045234846289206439156814663490453557642521329742968846245948021078613161170468883093526398320376501444525449669121275001676384822735036157575440899050051973238143185328588174177536022475246308019808000758391520227406089470263353085660367212848147769058432043879698265337467819238804492961111109291039734167770346836949556132534319997277218649567315003619498566201519376507652702256529920214621847164572100586014382508703220040924403054696715348860566544043953966080288084987237846256420769116784655336237505245550009456137753630168575922032091311938908192735325558624447396807038403256923100013502968347114158007448098839212110594665438308548603764917165154276565301164880680232820696080525295490670695709547959107761958308110730187608108318068995396671281765400810349412709520995098416127926123838076187283780784751706275420653665652358866037951840121202348489142873348000080747404927136617006793965231145717601435851799074250567472482679804552475667414444472136714470571224281299739562914074553770820118075076346323845373112215386667382453812278096122105626420540488484215960238258909773338702396134101268597531780359901358658891800921224145050848143163351818880679976650246415628676439782602900000735389792876445791458206391273555886868514554853555784984983632877054467186267835771885769924409079675811414632873002216553855387559802244346041347667402738189951805026628907031758859369418284495518421786812404812014947875563025588254669145073918848545336588048338383854299523217873661542723780843972436308289778881953342252367592319143680405870988694508753990604107278722569717788798232238481764200783085396885644141063722841333392138631310855055229346240103304317188320097367923381112331793247641782696400156151127332338213531799154041543192092966155297339640170241539990217310667444412636549736181143867032533783258886257749790751267027280663334724944590579177089935897961228948153950363419728988688497566153507348645703620535967827079580546316600290306180995998841116079135122887464989946541720474905089890608584966113284620117597219362755337147007570427986983697651289963780241778490499672051148453572774158416979597797535810289756154768498338466675455758767571182683188785322683067828329505720455089406449827803789450892212443854039308775698293366286132153950180779876441043924554912060986096255302669137357109689367606709092730345030889373360728162334927676792227644898874815505348415424769349250442889250586200585051640365230146936276983516139487006435437317369001985212572957837678567398540423024817629404038248068313304613927200031050612330862105549533868140927568216109913988703847166337341939869007196809354291549519587423715721663464372379502006113753810503046556908789113113344926194351333276675986863037771670114089234291709556574888350375240634020691597602701983978738218986315955617887511629639597432621704147267517797914045484091021357685287290250900093994777023227226828543316204192037868371569416144318703009712469906716751081923494645011508425046499231215460698250553451004748249330263326848487185366445677328804232054908311683656458346100216757753731114478057294863894313868586155836031330597835474356621391325666455504800872723472673103515585562585807862518221100599941201281960105718477329859614700669118116012745838253943593235808569929037622625645735080136891157203475701733502944732335716055095156340250854973835747181021518736649581035403986408548103496048406519109231018963816541482979545092909015163420272101229549686002764338685114061110445019275190992919548405891111641341447534572121947092175826508241661142993557467482283593770712484965005084773252705730797499913307626403781002850502900548636498007334073918745470729428876057287448447118898507683743123035126301334345840375919228577302781424673717776314356009609008602679850092615430158911709451826964904620721651239202278709199821144996465828411221646405895508216391135971642772660913503024622395696937265429076004308455707169685637133940277195732769987013064972097550336209591250557762342973954084460091041935314782977665986753268726842307794793963675045271318584923145716282265874393873329276157298056732300959842051918343527778915130669779055457255409322508931259036877528913333216942540246437100554471449798549059410890816914210256962228501462681185246226763035295777742813519703821626509478232448786120922347706535192565879270441054728198245581021346669316554505319976190236193691932748064830696828958239654314913214283725460454934752781053458056373517143007018573587931875033116744424561781755849032416948835486582602973072992469698359231036911251074948691747830809634544651414146516265868625804536711703734058844022803017053622429907466073890708654357104478275534690305130377604987569668712780812993609800910869896102125553351738445493005360874522080301699703244788043404544413323548121876681856190234825336593629195599154103258973013852038859031526670487559865790071191893328486619756149083011763111657377731948377842084923516942304851150286592191341323175712443310470867354175917343658274859084682518540541670427023401977392743228323461388707328689365648736162470895749515031777636465663025783122427582943644132547875781514785601262237193483955220291566689342226263241579456040879273425551892233186789560979341835271048537704101551959524253833180735352136074639461919791447032617190223876015772440000638621122517695175216624170035731279701289771769437952033099225041231239412886785328309995434780923426304861759477638247756005910264613417706428427211228306394373832571727991955955638132602909023180631623253397758713408041662920918543829058130400615635134803930224792557438447310425026093359812414524551888210854811380902296114758473614937200437843969168139820497752578955533879358513526751068116428726802082078971224943507249211515604956277104179898038614635097682823468543311179501097012484719567272902188304068573134931133848047978031122730337945874671866507843258608446818931956365522821483322343055629149050739178252755779786766814947294377547172509333445705093482215815088364618475604013874539706911991843594738763479266648238637538434025779112476399078416448368262967819351719195801724384669030341477944485297465953917821436929841339667511504222993380225028785231081199570864198135195485540102744079646068892691276742097711040127135376282053946094538609558412032006428032082088495705806917063366252174639096980432869735851223846352831753686770289108813582062417319052853264127795340090819364916454864310578715392237037577997848507098356851645429401145094642373407455914357468478604447303123735152731473074695536525441308350411989377633341965514547188187905819785882496378479723064592371445345686579432162147393020999775285793653373841463914685417625270846318457683493335113558263207638001939901566160859644794684759587102675408267404346787236888374954411541452909756923494692029866227580100098985413305899535741991911432807365472028728931323417249421143237555461790353994596467556983207930098864742102929083852502140577609220881205465192183224398466590684035573171046416871578164972000188089478846461329036176425178186365253331135802806211402845391703964229481926108756258747369090709487020718090025216075866463961901378018501153609687643903876808663960131095681249604197878464893591592521950653373173893171939470755413756664349557398963028422301380529475183514903847901479363284829175998558020896866803628662265849139837457497490706040242728988310158342583530200229836945817076110939857409050379211088058451448817968635602599398146934946481645148232316234747648212311733937602812077112983736975628096204650250582162587311584615828868256355769084807630527465894458220447047395875470833910554828970819867666387479687056068212508661119233589885127549177633212839338561047173563270162888973013371276448198662634017684507018011548038190562149665155481928602725702682723128244102920995451569302913589397103013549868248406821876225062991996203575551155816608843392906394772896719099925330130583177949630496512847805674960530789766384914985048011330351927786076083633738401318034420391831715640055162898495858562569289097642019321180755813278079935254868049400711703724907656200557496543892039888439767758537260036105657725175150543093178978311621798181059295728766424496460877461591414628777233448490814243148243837319222183643887949097597458862718965338186045461728766563207479715095910143007973773629862622355030455735555035666138185174592274516314589459979480197744867845339684991083668541996675613961126057516241287214564543600914808741533647674317715014278796804499289959600960663644448229027258287552478291550069702577556419353651322279601568922275287772567398075685962973588384661030255107790066780535103627706394027522655340190928476419239763508495389482167981343997350176828496878194754808629221350874089809045207661512906640610335681059718333008134701910501592350499572432241836668652578004084867436970923002001891141963692745195328629106206243046222249367136543776062324370727287469146724811174630669002646383840514313919080496873844319553593664869310841352258861123370389320107031267193499728428487532096052324910995179794987280787754058543975788216588773372029555448846542304078353099672622575236042981794845398465509396232269902433217111761043577705116095647174997045331027595143553118513991826543183594182152406778089465808297882501352887858786472500190755347049342993772678200215269414551181816767145189392249477846253111983525578972940873482659118796799494649790253505907453228839957003396634776503305867215741652879092797499195604417798023275853675666305187213542858456285393659373436747662705386576924401167831151153765571043138730207951567783885152091333647723874137928129199130599376243454330049959718448699117177434783198434630644560156958364120990138884212744506274403839489206410963775787356647018889196970830482897194059995420011376649133191737326897043883230959811499113174060527858023123468690030620780600061523590911860264621464758330233488039234249714074701772101630101834196080246150494470008898255021001867320484040558775555145101615235100316383021421938156747517225334955576243244010353464934792671421989215640542745264909930253631496194802185551198831098962722079816765164274677390318272894560981714142076130265821630668190987536183277843101166961250282964390449083716112215386357049248151222407094119430677247722903958323187143711771468819015816665499194732078596025567583149444342911978605682339287597685639630648070919148806428079480550795213170803366768635564200971954069576363281632123619467450376823469354535567233151769144194021064858367703704649071664851002592030109077683801915050180073226160541674254569758490996453699914179223148328927530756600974682778017630488175536593268150959617045225510138621448089038586552234568695245256215719730662849895603284369295855879828226611674849442521236075243378386286408992708625347753726386364250231481407088304172922051735382172633725506461839473894536562463844708051787971380372108249591353598610263759086661775755120881131991743606874724556566372205605215930265753037573627923290909000758801926302920120412485697272651164193524055718787111668175753500108187020348281941513734852087993261934310128658776617914999787258571399817521017844709675656795759154328323958613660911280506282764706930820045113155270045469966057485491208444619251588917104644588450267897958469439830925548763772605117843935734530431242537104108830784632325781984206636467124343909054379018971493375750830182232654036499654770366456530087286475366552333880834156024187851597991895346537952080166197318942633853461365074206440282434852996934536036170414385870031480829903038657403994574339740610902121618857464900137470487939122593493250053355801591131242294925132357059562754016745735192760224989870954883036071216300696605392148174603021244963337302822604088446910706924261656542895115823887824505023081882579964460695868564913922205731932290330590541701622523545392676590758349458527710015959513224673287949325577605189187151960249015929749590063777511407340562911320006613544349879079671653413356219093599069037463804308327889520401901027335575972920096843197893302040178709421827258083556405411169186462475107012611019647437003600878928478153477505484000854834153300133480491408440106638866349291676807213880313720707948234172234852381691451446604235488611194742438771297655313420925383504998157708604557301962518945545231492237892561181910280811525807701923441547161227362924166666079630678757927432728532152022955824595493155482046527429019316387642728268459290353765873370236306591193301026159538497686971911398152509580113518426650599226971235947236091953133315598861460842579111153376441109148844755696369724479885638272119181509026105410564278314401084162967166575928107298239499870272831273289890035109660104629151020062824124194608648375222379741717461570472731026731826264743816363000972003299321664143723666689176553608762099573791372918601413177707091265348912297924548545200893031002856908903275552438143735824029131934098101522740303314713111262076741671847888126884683366955687511639160553554264892335702339779272131581875110829918618156514927193064492714572415938595958225268061005526483754524219814239820938004782403528289462844989952652059107898324343129024509046231800339476581227407409733352169510122090592715309978284580628001387215653115135154982116119055912727832847938765544374284671955427249669261762713151732602284812314357388050053131570608378830580545589675525877723515407725695348347251254597275052945699733134389185542981602608818033867423138758477549525330450155948752630775727058158393951350149283445350090527803946625849878007983668388168494219041948851588780697007007859050991462165845810297614192577821696978977234442854986421097104352754215088160186771772626534783106499246665036355057245620433676556329758458643159559022309319290567390996139491339972357021653088338056399177149252939945538040362542061549171249349305306135297941798159510842842149417430204400701876760405484155445842010967104863975447855467328942707739301301432128746935805823578559519620967767477769479202456317959747161530635678944680483456887420130811636448251818073462158083746301516322887087625887047911232977851714132331578238442009101842498310978920623655503646508988651836658383920693189406586834007981230403891530975659679891867262718884563201385703294965482170593738186996916520166337456570455737746410580948737954140617086861317111743545682250819133301944851340811071869876070403903767793132450453270924577065483097255683020328160842541382837222048575042030810364400691423182029541735421357338267735787387855915558302780246304776439426899891286961980808555722783506821889858700176461594281173461545472720905027216099728316354874820865837580790890875500912787412744060050259602920842048197157163772191412821026384802286272080892823205675094030824659530241962917326061637534110291538388111209952526136576858393677519698553535162520655756200406299603804932163917708727634329191186344798991825057754655366159609517643235556113933503249884079451014999144635890781349807369358056360003911124261604147020779153005839873778517012112181966210161393741394054078811328076771187564507222932563922069026443519260834139606316992237722087675078227763732158608347088788788494195281596169256299392115038927300761474598609011112950065314084879982583702831660845876537284929124825042550399528250846895542912043865315439343070817516286786579263597233716993304275484858081690489212979007035818511202279712377343168075672008101263201646984412801482384565632423351525586552146067992421848476070092958175290909266069413826580722389625720109115093915632818841992222440695292513699881924114108766777169154448104927011643204145537642975617350107693149073610114606741836038712772897715283445374083548101943271551578205374915004861705503766972322842619272490012345793894165584699622174022180417215642920242960285731130383499973447441821791936688916870686311514104774868368005606529241504013766262055087631075941553725692881093133953228921365195335789070287453319899250113569026548733035206099337724058885673401887835940122267340876010637146698191379892126472852147507959701211647739133081121756679566227072500943343638822120555568310973286167392944619350500026282406892654518370374228143754555948496192733026771774591829477098537765680964646188517428691415594638639342284010985131344431974896461161082580346812572012719113577334089274524728112093576977688012101910584779563875057132357581964092331544048591554548202480568064719342107226147352795194397419738153439965649731723349659104357829881452702151801317142230559575336610721009349567331860575456944707455770112443119971809471088261449783955295358514631700963479213569379767629774166885750428212466975087495018875224582739439203481884928713486275116433110805159484142079715769483398553290038823112641415606309958183078256956979771943393929257028709908382445471213248229522803007102365746356101653124096583595315990452824828977636153305147252709114980716985211540952952292555395651732473086616249953704149565027603578684689163840047409674702601248206479898276423273982448938791401798432408148268316631472288515912535532723579248436548630215055219056252219887481640196318427817715855421728441890199505164991967375023153696265223878928625815976650095180364243413832175236400384756464169639235512140459700440539407280740833246948168746564571974741475729696624005008186748616955507243753384322022672834468527939820430015767240774950132972771278311825830906215691693941146081818270451617265529772098294564016031105738962089228226490842932169925794745806630159377581127793782645175090739163087449285752276963281084923972285656579815733213964821179621542741993584554814171458554720628781797009379934048231353316506148482469468112358960717359946117213653892374771853693037642044910981081222859330813470850244144011838598805580800206116548633709136862853593715264208112521661030317369011899561427284206725125178579570062565746168876046827274930294150669233979627018221482916270569217247719135250295878603714441814559601486577980664935230524681091014997318418498018946351582644677535527854996587101524625483622842926762161305258937160748264330219715718193222524219374677321083874226305152221732123101928520886890937591587669009651666213404279354603210076749710225993441431016526882935055366960529386188152012102416825085532211397092999877900357978591306534818791245736846055422139672315752795758031138226789355397279356235332270460884174480365756228637139405944443398200899495715461153686877153092112718742487231885184141272981109765902999459766623512456965149664472447265268964074503201961944485477060189014754648092388444812847121980026713070987236081836982196326117647321982466188400224847306248548209248460068963266103015153158230356513136277678786618221156209416658457819601252838544498276955251980989370140733527557269337059257928115505354327269587139781309410895267589726905271321873975674842528474598379049280020090717647855791985625268253814837660987358409568777177171532908887941695907860264197073631094791392671157183292790640578118865332721481847843912191797599699709823201919922372023833146498941184821978968180704484383746648836716440218541457414270606770961334826117687456128566863012270262184130229328274027223933263935386622177399086520058940470821629561816645223849838473995643164487523999229690980175628773786077626880176899722574814957139243851551792807185282946605318059589509250123747828865441621821567964868645648621333680674718618190088922065891520916242944750758957990526942982309872094777177249522825848954405245026132111301043323367400378522061832074850486528509863684753031407665926000183855099550720287194179191880286694189742810717437915823340219576016182349164027893810476792609882746725555892261529193629122653928130361197582442507888263419151800432680526560406272065458609597310983226844119128980660726515523393879233945373926760256571497821024511432892944834419169943361542838304711237508000105890056934926130154613384682428859104084261795033786501091400418502692680536015668596604949245453582858189950393836883211668618007940605803200842384503465229304915510093032964904704804865633592883357771847616930585325061596003165391007383144840700698369545527191850150839858415864280022589862385818895962812912834398359980386772584168686020670913751723928506019465820662647252962414975769218004891836032554198967937004424719347003022090486615314739019354025519575893773684688382374241884026958004683423382504598691953255530810482983215924406358861443775672682462588601996362131521229147214296537250166770819612868494020957736229447267369261225925066154723461512140615195843895911855873324637764999359987310254461479428803309783072941674278987833132506463910371120729327071718827595711285729446870725471027863167295427786150012312591550518783031018239604804581900209490532955286748174095626030822068016875611107779691110714179788096126950996804833106395228369631210654441657066898923871828822219757382357706565411169736879452078718277637124052760092137421819671410526917597389787820646263682282972842332575646924892224834348048163891330551177457608171611721901257947113349353854857030293797067994444221006305761599997175268413538158235079549780238877664197693435734317940303017102378795787110405796484287531952616356123382239116531941694802588616968630889778065471684904959654937583239656229735410200045913103653375882213555244861904002026046602154205685655225034438120217677178902284460462460120986017621134286054549885875836068375245664458571140256933171292638048815939767463441874880896512030964780524012484658114763794620804726806313987090438855447648169655646661164705199731909400961896096348933443500245780373433625030827265028210374595640784236250540056077064470899869388418571707712337581018580188314682061875084236855229058204614672203144006442727056868188495792189790515589744227621018681790901104627210210256551057471000088828010875628678435416231140747324492195141968279915980434677262250066535510817419107236285336724224845581725279433265565457986845282792206827671350326934545601696847521858775116449378346266799299529410702739181724283008727047205160872301360752605348358926396373922067360390217110685173014720892379250350875457572573725720565722512414286756607171990308430377464325270396696667818059923573242815185634977470622251079796494451532140503001730754473345102663193886991146507431973547397368607965504429208279226507159136853856619189621764717502381566365384695278743481289158340974983661669416436759632676688223525719614111808676446762927538394075826601012999027866188768190111509128146863906575613299199631398588709668107747539154102271920321401028987525660923675173587199495580490286014895844041757196598825847406813683378277763487713781870797943115755498463163300708090036372429896986056286446717862508723767072158337423822777980248244115670992661514670031830967497161158628085622202912429028399357987548289197618979021893400612502839914206321428993934332423294270822934817711524385658491364345351442789678613284164177598541649145219347809439573507611378743969625538481553729670785968334827669551332500668462789789861500449108294754020189674165907025932170020143078607064656046980980376042624348583525580378551219238980651365834605559262010787956479591218369664336675446778079207623816008659472225876861798428817751940385022554630886047675209592061612979019624992337749076882455814179264362468396215538875297743962454902180161736356560056325499508861478983598016668565817107530176391187018260747161612974732297903662167415306689930795695552336398764916868008544340007468284498034484586585734818056149388669495274992584926298265299402650294615816410190187414715087320366748314240988412688606732962185023966852683095740124865990854287593442659140481082337205084924282519558171750046069647669198564069385653438520813246968757704983438859819887038959207984405441752730486529858259388343493370062160068103153925698269696510118437115453471149610737986364150392605566722961181268076687647324070007449324351238804277170436032034806382398384527819638827833016303362306834183878103915670435204427620839841538777882556282524059074986462456804291586175567178785628876925210300676847127883067711542941805281779143536849770637115816536538663315469776811096228612551436625577255779412834711517139860181698558001481826878747272964945710660366637899596396807240978555821602779363319365868238205414929241989250673813955797069493217244458921227993706387591523597830496096508338311086312423490244850190478402470897950204199217877219330664652660927288264251337544182377884875974563739804035533174306132689660234676868296331579955930494485734268188445669426752234739998198474263666809786063739701497572344673633587309213493682877810276203133455888111516419817727161264728760148590014820746328539000294745142375709206948111121480883462963957066520331077320073507303733659860968657605012394854438594948639603115585244811062192763090786643939239944933057376473895745732466834228506014484665914187844453316093992626866461827535223145317604216856489005707696529270752677330057301204998687720861042956059600986665327746127626617690818673471763656478155510336775986723290059556933113938013416787950568709832281478152919871667144042322504734232231714923001512852582388295132728679699047803248528473320128640698384875842409699328374775735043679907225819709039650225090131610539329137721209102089129871220746964281851675951836166689216056750219526022673007423744183816887933982297443925497822818466782810829714822990099570284662036805577183088196053486872798605135615766813333846834533398486417897856279077633391424437317661867866484494873244086352484350260190841730675045589830082785055808976683515342404825852656542887040824710708714270275258597628886451384397378609088760595832013600547414242313810474912821365725555703123442534063322365610363194645935708951902027782947569490069439904227979816606640693570595327446469359055779766469284343851641327769811066786703061490453506016577156407987037146356359563842920774958449749728056132051964865604869579626463270801597678062316674492128712146172861410968388274960233610526770153349595880824324613650728128204833988753507639176642629097642663273942143379629755899121684255797663716964608898057877880694963865292484692927346810378250479827936357735756162521671198775074807399670855148559092085667056769637327298779739560757265631732152726366668047999798758252427154509984511192751157932603983427685972191267673769514059810917982219324460763706630859669246344924181619995061666617803885591994376556859902039075849211640626145631645361562460766000651061494626909936114279780490575197251161382701415004604497128516626597493781460785420083733193719579060048572553527135265483852923882845142257614435852283136771825970923252067346458646337250243212947893937307185467463193724061438248842753983062552120092267970423881053803824365292799374291301339851017113844149263852620833883938784615215813462211471320393346632187188405155179649964594315753953946741869737984239847844022259225910640878969895147007551385920235953529457882520245242794188142026157641462085599916143157212350666516349605121719930506685449008870696145814158837563579044678805092043791150262374853895692014895533648693598873626533312329797779390201444378994554428184753918768584822129564469388191121941714522745864759679660746448376922025636167927956477078372073869999094239172493129423787967658457950548357390588921573890696128877125673042852203398428853859573344969062461839637915344374877947608914294030475931002401753445669515952663256411679729531735193047760190826898839925728714028900978142364247533947040193585807818575463265991210736560007197866162421141356340254551651062448850442567965007792786584085491765970870462505332911850738451211647701659734941007081120669991419809582046694789894395674642515224984396954137444670573242054990593132214444766496930982592620803947628519930547447331862848016349463348571939134511982999267705729540080782311397690784577911886124206969674102356229999708594834311370309776282705169657902610485961260906908627037834994773018161147063940920220912858753172842125021355155707323865248960326568711963078937042795887466672241369071248751152928559271324409398725059045418813777975473532127786562855163282709342804608115683160610824910955427065258575410275442843673107419431988619864691359719063391968970650646076821231797151507388805792993118355151595009152586924564008084215276647926893966044649366959723660180945216198775595038299573553496575585075128852708620307860163215968497706220339304721514036231248391172400415563688220237218496333245489748300669921771785164896591351313632502221295242580295926123706362349129723674467565134448203538489326927486525353008977982111531167740910798182722941247020194372087420716729739711562971635686148273952392592153917967117186119526123759202028925567610072833200552459808339012365371588112536331224320076120706296765511805052518028703016434515154847024720231953196126901906610891375846181183857583691774223617059808060607046621913194893859412516102581159661663772790677762661954834729365477137923080391673117336508398367461727457624036688096088894768391305392058006720884900689369482793709815706542640442350273449293242380173135582866848462169353299939091730465106746247372100200722133688815467108462587198983673030111445797363483580195974882921845424440871839177592827856145426530745511832843034080960872850865899958365839142237905291407618391242330841794175315212390594330714161274179474587274081142773232969329488750821278263907990103962310623139562590386326624285549245257633150185629008269869316380765949833132843047542703234238649625538477943000115384904750108332539495677219406505163347811413925816522347008864365002909531209014095563827463229748329283444412827441511257967096172686004829145990997761268567961246265461342237304484486806619754895684007889284968345540198561553194908251940441110458040708423233021529547249486888239239317997728342700808826403511040542702080974959443833944962182740290739717637229970210714542920225097630484200937591551285880665071814175962595862377844823974939929140274459295271873652266501848408628474139906161652305880008146642850834512078581122327210788014182912203218423534755900315381339759687426502335201151085599198713037874504187320678124792991888492058855061668035085631715301968298706847888267183778698315549507242637725008625757247654010591292443954135182768026987615072857135104342519752385033949239686793772154528870433406263217338811656304382857033422974554600665790775147169557637096781225834703773702502411718034070529836621345765675997762434388134993928932437189008026037802504325615443844874612529187855577719365646519974117146532066539019363402495468923350531126276698830692677264152349728642947542779757779260140833516222365354394943628614845392435301859872701813565749665080529817278923381977398195328865996483176051316563027652667344232166220972221943867822723071638818166781559120011112516128011372259202252991825082111895056449031935930602252337648099511499408798392932696995496764873822342621169090918935627358646002106181145482520355459486712834206027358076875959908389214027864365099784172269049018073029268524824790496655179253118871135660823979118502716230243933565719099379317565499352566486306494622398722335575745430249009098002983730880428453127787765879883805468552884308255240640128089731458016280654891638035174167202831303607232019119534900463293814439715913559828107256832378510316060864096984650030477511525824392207266931823826954008229437497031973754280276604919023863941953638554197641451888685864205548191275715273446006955626900763178298319265593746314030375899850971881271034454036977721674614163265749528758853963871439915782294510989417271569424022337604488578634904592233056580866292387303057361285097441392273870686122017883519036706418307263442110518508166114570233858647722148913010475545431958560233505648449475055932425164912477777518793156596543316105422405114122117668668009844775038122746334225964812019030263283643703501024784112152196481485903009888582244979000474512528014073230759065127818741168302277302648803931474408180682289845722545107878713132712807491933581921947119313267543135983209001674655160365938984589311199040996176844655980791898934824762054739323976651312623006459437553427822370409819881738859794351316375686522515065706431661364114149102098869235499238555137734460843910581498398785426040289211080981600760457987400153397968448080433746338942424856956677352772053173328278406047757932042666145536638204663637905837849749191820641656458604208547283226232703410012823094997595864008859898594896715089301598607387682104963586179526998865528849300686482045105408343033356544957378928670108845109275078530192677553434558115049898632695151605582242262602578504205422419234624754460151164639555714730806728957551187905836417047135299609381383497579109831006450762316561902660010733596808765677121563026799457961218031464264465572698371288077702142896835836018767811576020925179180708056472293235826274938537735647266172701697573519394084853822564640604827116871380473735091801383951552061037826454016802907491964069026374211170360433273163934561355948271572899331311803444117355812697132847054873078407152494086005458059226707389340558580961305620721857188675454588461410474615266737818619770710125671967493215486105731945741180178648708028937336808961706623081117997206920455440864288105545717309088997649176044237765113935185190872095356369784055633684003862378796042652709560661018263955078450899813333152180546351425833722850319943179920574755019281059746762304427629390348983327304918992445955129255616936533162589596823073333779164396443524999307832396348766922204532850439631870675027355028601540524631259341553376158837661668121148221095996353649311383993032324235669722010572498341426627955538442192841091600553056331455861645659471333006423987509305099234306267363948047486001289435303123857002123379731472521964828470931513819419137497094265467842630706989691236890306805814401749127380299524986126435186016850166670997633567941565621030542597089855211174428892963766637260165883885301806293989124544954819151727030088252346721988649264122050603903351539819690540846283779177793661124193458648181658267748828108319613967770948226711855994992778936973360716347253515355816177507236242917289387853593288706204583987496867618471763831655118243253927478182983472477194559963839995804320296775226317434768693633539408391001388684383918512507636457411231174921304132817668529128800210039308719872045561558742199146071648019509918036076720504487216090855719928550174913682023830700571464357310312007807137404926262590976884916912135812125137024245244952841912181252778895999107082204807777565686762091308576628210264929723354006204034739279206828893375331075137673847499346994006293182384403055957785058801683514209593075306078339492686056777795603707073365866555542522616556704433862195846071907557806918298337088244885705145009232397463973916536968150921254294083323825518182231033834839305422394219134434291922077661319977926677828958202271318655707755099848373811749063593696676074324691226136868138465323801488931837783788504371310844160083665949986057021031271385836057197206620192479107511762033897470348340087724690622368159818560052321820001704508609629050636203992128478459006164773959939202716652712515486857517234191079858999151428545645313508551930051345722225752156275447310970404114739927767555505779056834134955498760353850196758674686220343856419316247526292417909812642075994155711735946017573647184590504153822801749343960124258275675872889628246740905962602721211250171437078349636802698990703251079861226907643129808602290665258795929471360374559305289444468357366759815604567532363333395959919527047070658561394178034559624234364773002048584610979723060673901137266110973100225725877473593681912598593532521696962002347789173454439213676450019334553255920161609400480863822609890576016711333382428398279084867224179551674384343248155313784094777287822584882756483388890315938723222085711838763901432464730793268609734448350134325509659911038272268234684423974983007087165830864752949652179969317018922746005017709309874374129402889774881569774108557507656222802958241858715110983549285086234873631661648243191714696529775330892257628980634952231764572017398899238297098093752353235065770412794647891974327046510687482904956758944108961347251934839800420234483300558598593269219255796792173233255992978060241170724935230020925955555201496830079844225855546677567495687944760415821779852351493875565818966188689586367271664276958269564854633172976928661165946323862206377396654482733714415911676976593073011789485599034212180112472961016553447796787570108996785601598973080149585230218141402575447314613236325133049276702285618538481992604954926484279542883621254328840222761876976310119846046223573565660780101419123446713413664263709460281019194476284376354505162499357428339897333115058304890054029588775374489660219935546151969194021180669558171260871337838568502271619883943289482461989324639681467614274981903323251705771191616498575577316432517788444327064733366607948667533329945704740841355444211971961555568843399701998985300513506857441200447090194379669678585125307961706749127805619803521541498672172808427956369535981693593198587803045944127601640338057341653269673779781646105100254093458139447926500739653296019134534240106716966815227026684607867903043362705598260141556029933177502272320747103882092584678938982129898037749104439914631819713391629786662429157083536360560207888379976951706535425404588486673843125654500621876645972853585284279133850176938238038564537974658293103600900022922303739038344463579561007536099036646321805284176102468150728493317976145046489893284681378931086841674286012391055754503265811022769626484392411069643999022703394812946577580163874630955015024943078391871087222984468074754493630957023740105698385368275575014905084271890122436694939218790761166513348953288266546359438193270037972476265753681865736285957709044869832722317419249973895635283736704048948632944678591185995159364563721357226503385817959474061854694454746268755137356858951049038502269451324564913740159496622159336488780257267051390600227656747805454907961257248929515240568519945592551270308636351721957503402226489275028694641675934595685667456410286568871657054621168230476959348841763441923501374161858732390526180952972179149738795775445064702672048145525581739826514086586989766119850628478009844948232664634851346243455140180791661390213434958663049512661721957207047775466602659497094642107109716330755660360796331427729544168005584783644305608120719393841056649964269518028705871962333684398977043566849545711228002317386464701845394905900541542328795387487662260206565705820628236381698129808285497937991712650498314736756968367160940990979348693224433814830139050140409765494904234531633726412723902149322242129823957544755470116620879801595472702886571307809744649880826665818405795184850069782856834061141477372685302082896898855977841778536499436691373516040050582845638866275471584403830277286030329119848792840645253664632459255724029017820462779926324922090929874338558025869703575202112290328780705934037088668866011464575076062861035321666014170981946931231749654729783246653269144317284414066381356417652599624482334295434864011669537787632376393109873311373927169086946992156730675150947092135778568043758281738215034697658722598808612805361950599296281794353957437200868801324003275673728890313903131097991304130455050730048543127937959469266977908018777540045722641813345090082784835259253320967048538519996097477115142722333721648804912516873056813642261399266499030906054577085296401269062196976180628653988557071677990392417858631021708278062609428072202658911255360808247959322112882126800338138209351355807682279342426748065289585204990538284130542653323472257908919649278452710077900657944881962946877470309027355029123610051416177399323061053638033730048971039987182766235391409885620296247431614368606919718307488024679970548178709007473607116827548785475843398168144828387640598918845091862714258057721378284871824846743627846977493362588682242225434608383054519003443390919254870307179753889207310704246539421294247151252694322472985043417377902896265335344248373814799232386037594386711268385437936904635357287400450489756231638284174070121565560742947692875977763642530270314386476189969564664361120808320520998803705692247013852671031160276978401587834433893772346588507234190750556646598758697042908458902189981585392536145191733911650100849449425865259378631856702828338706488967197759757561850104945954534870239233484985766823174069289826384954069986283940879115934220298931655653845425142291647324109610802260586040823363100876242389009984904211667317083062818823556714875895983034168580314179152017900029196992369074835852310160835179462601255268202565283233770637343194657958082777031657679599419877660366398913465056712319137744607153553224330708243055962414231559634896044453805104365120335540087810821927381397963742531876852591168506868990361231745382640738077875415465123420551437952719590320789601997140078706608724108496650061073756377556736069751229905873425384325072030513121535832447151630837854620126988212071509842296678051783156558465720989696825658582066551065734659878231469070742552176001802834362571479453441128872135512302404807884039326022025625034450305567793152914389798312533152323107418013404301156102898034868474554748050421717678890694386864430303053320673209802852392265148977353230642486308141497343269928390811798505705175745936182455382818545870459791743556929532030071209859538157360800072740718901947211356101455389921029619990842965107421424513819528678481659964174722295921644462375806317463064059260542011386430938005459269643948866580417091139395628987202316636650341873138293071055934322158434822773791466855521541626348178761833796099626590793646899604013768384189527702994504436155986395081261282646939676685525568776159629322164631193334048816138196089655809854480846482988278408392257758792865315604074048644685555759817345851977852235359410920333461708340017234805674640535377570300706980463478924519833299617465976766950880767582211038820394108260103701168655810400361276065660411091528227096405944751776400403640801941656283801338100998634281797237983965846887764426346740103851483971357256684405211496855808992363223110030387722578141960346634904267974836978593143890892993893547409315244058318587702274629317145486126426623202366086816703932153078123521533490014109460644390171595281295602951619196992242506840045608648787854260649200734405782484645494169810837391887471099700011041061682938570464434721650541522905911667619373076292827298873532473705790625680006377529200727695808057573062193740305055276407279160658929527264200514060755545144687209498418622791411397567793575003287020926479534565960019768574875940032564034029347159457950848617044903058239120287913807082621878844292979391138181169519973388323707716190847460116315097128464389837853958908610268406497206362667877576304670905131277402339565709772137793607637919890936034072774225013290312694170287992301365490082095672198896490354409422057083596443399465549465527950985986819652458809460180153199443957680280991049452260268101772456259176772910473297299490768148779552400080813705711849514614065801162755512769299870026111822680609962576677859498560109149006980254875618863451331035210925102294040998662954185258724338764439060022681821757961685668532784013226597719750529174175972749562661620136959571881318979528228812816120283648228399632219518723351359285079440080634022952617653681201244924961672073100774233033200853741617257364047890743997127428991712094154888017319681188000014554142207105417129315165239701114585354081782692129550449626905182688240602346436154388338530054691554654549518194359692162315090938254030193781109013513829092945699289661783941498716327179002177899760092376262148339277608610180656956733623952771351418706936487344821044508472466193151233932763190558899841361250667214602415076090689104671497441264583701035050018781203672621263330920566755073106529496891263176090570716525300712320292773248231650422707289830248077045366279223984940518307893289649236757119217562316476403251642859378245874366317910980412504922607874670247860875204647013598299123245773631513597486191426261955371541621406008668083413193862812961943056161713586549286136669151559652507054925833304908491131566117105951249638578285725944835797644267953112820835289271413890314863704540867983080902647541142839072011734428860530159583458466731173247953174971336606275402465514743763622209185578962072576178164039209655489347404381188003933261055949847445381714120995090434345512295896373856230413746648210604288260804702493836430723566741727086849720133635160734841650881675953215388546740430841281441010404005934052363590874978375367479926158159760183426498993029147555933769799805478477295676267069077639649048775390755643942680059374240554563438496480106804593644880299046699313639561251239509256772540910967030649481113851979864511728488508153338960713486899255105590256756943811029862416473641998924769539232404592061741614101476669887457805998763691748565811353987937787849088499474146825357468975914561585175847919699475632111338269767201785188536241171037242769717791443372001339360186125310165045276020109595648935410832742555965524695452301739305699986902442307501265141726184033080471203077945631652073784914880087762603079318897554391979331465506587864553869164641404889881352485507647344144660038623198658552577353519271020257783670066513405321157058046247492313750661294924891815230759393139100392401640054068853057533455399009380595624531681366923750018088417461584493636170170310918902923824483064099421888986879582136241003328115588095652118758008360871569309176125000193714321716215380271137232589375109764761304264689194953566999632347871483839626388504402606134121579079297297790910154078270943419785173046348675239723907531009846822727463083972580225020761315021712021783221551366310459728872136010683008838479549434131721877988504540886252979106464629508474661629645235786147096414503303921469772929289887954442239492713383193866862502798540862070173056411396608899719821866415507146745974590822572372153106786780402795479362513977849406115165413960464093565078736482260975796524138074042441417774327343129459005897498917225526093357555165036723691639818190291999249685488293706671794557087747651646214658923032755901862330571065290911976135235766522461866446617535076146096821623651424262671643852217280888263555952074003953249441100181887265938405276449087329103661961918446245272401346552743240379601145388021094353916585380346905276298402628854602144996214178567539804766826105664263810099249780338127740283479487803763237031865239227634450595736751105268664592550957850451872225209575438044802515125510317615154972415974171093350125783877443174236052029778932029417532935435788360457567561589118685255032962317817791110148597823145852213516434662129500326708999505860923532874502069245430215912933902707551448862720671119964818245762764585641939045750075430917158178107993288993477544824203655757789684411826715904302867216391778732594143600426222360433276403467143228858150824356908546898927098287289827450671182260312400663255825226339165441153608795066983323188900029810990483947326190219311896677441553899283274304494478065820149625611970902582500918834292052389263030333442699890740259550616229780079251568124452134505046638304632130304908883684892636726161365470768930125995566332938222843853476915946983312371971011746756522665474031981216589904446120147401200474913466309445963090400637004845585302485918370463216418329952814436395880849623941816094274721737573792451461071771593503913248236375621492797992477225906166520656314086801109042294644012135180731840866026439815701616517724203931128314532636495985692643263139534922994109666607602319209823285896339886315436719961740862011616456045556319912656899785647603982359257014969868347597704730330183831319923311131516331257958276022391524279610402338105552106357385516187170935473994003796705982367619326490529022040278088487266322911682911286371514541861703170645008257086350004820223862259034699958845892522324417305845295396261831592638229356421329260933018061522318259143379288999809050220581660104547073685619219476637759770998104650280175681200778320817190012612312089533834894039498764867635689535020313373480445932678290208175324300254227475832881566496089109962119649294435632577127269301661782135858165305207218813747969366584893187065831216280001737467951429273579089238662549513325503956466852247407499313279037728579283612806602918921020621486984661484182333729168181726483271188822536386333471138083983565456241781008816284162447287363250629120748099109143214048378091668732230620750661748727067002124123814621859094308621663911213547692380181784545770495865583436949094159859183970988248444211596864520266493041084878158013740228694733095701335169131518263786103895559542835348090116034333153135155986889813566641629417251334157634228012745137267149592435975149502771179931261740532418795363979710080370857694139421619699032414575291322598419048998538653558793042417990941154600963128824791773000811339814942978344226183150557893955592704314484314733743705150513266630934117362528429715444470219216471169117314891663622453362916571753416517057426463231503982461517638929368520258461076121493499813337937246500411011538130613464053774996075927371904866033294623027516064135867392530501607574432295614548301013103485443963146890593054989405163142650723263208655061011283160786479280088011661956331429980098466728003937505447427404227876439658865512820074889229307700410365123839365484668250277379131583159026340230027906326272891845208823204021114476815880452067892955361466156735473746336575120051218487765212938431636392961733156981765550474630470888104017326577209677214947694269634260912759414258417331970117071329729358159117896042684263334785543902752941551973510915178830726297187196256578931115653780532499553274486368882202676157184775703469419575902482305449046798366609382183922831760498707877831623138363390331394795006119970623086740239747192720315663489315853257986320514882475918137334295762017699942463083113314294984113986340080896319358971780568172302160063088170404861114373310283400036301511354266215844114652621158204454052852993623531780323395172568934969476533390228573038510366759539940167921659504676482393604066696024310860042170459263273861406833816222141904051314966130418797286547120280166308364958172147615982751420876787327595082824887825373818297654131118784726575862967548214872077823081509598715142930077160722717326519466789831756328799261876628918567290527512512525989595457078698535018433310811712239178192201740765159019326774865654170903514685393414385493470848329008392454223223916509825061528972089494068106993015902938068098989855741478551152541762160388805754977026518746773186140196541541601114657445649624118606262792770711318422886282173528398602186254120670382180840494276333126591844176686368725237946982396163706601167861823201743448074196159357316384535656158363226855409603859627635694389616116402934747905455763945337460271081385836301331922244780357912155374250464624420146334645466634539451198686524416044468913642777526612841945659967647481973176321935817659136457298960966435066977767974696790292222581140248522799677687400045915590647448311196677201914438607266168640086672409906695698217522141657209525387264909032221789159140149991445087495384818178105228347682377190771279285095862429419585200601800530297884872250994056002449826561871925013659737615559151467116292240188507389969963108867234206009905259361275216594367526546247324753470575601815502887413967646851982698549837564609119662286459512523413107196574494023646472651119134697203013152214104949381629417669999893883448635477717612640494872246863570870623782402786595562345650696514442601479990973357286067955380834224206162702518864254810368325194843055959970411958034090560992424155815055330056437010135582716382995981430704562601281533907849328331127064863150015589989471664373845354739576126759456164206888349909858795083557767030269068999233674545420920177119335691161774454349155256768856696935391132816010301041055672399192602279897180113962985858872464170276272179416874876133633134576635116905626186569525098076692249207964701352362777298592365843893482006928728833964187689088449037021525897179741895728182173835401601281049605306273164491044263010173948487669015227893607745912961711432878113796723694476421697148572790158736770349932198894150060442763579368162420769102719159049852573788415899196494127479295885212683073519106686098834023186780553099641166384661061461565294608188330379876474232406174912367400555397861298694018277645192518572596296929195444997998771143251830421733757254881970823040926974073387993028397850535824379487467077056555223575846995494192075910218656185835309958910231259510250295021579167108188708638437370475632704744510917911850341913080228673891495903331924407420504192947519567931497853106683494042499803111395100223548728350036156439052693757759825608151404390593889723443385917292891853263277237981703533950966692371173104459623661786782165087229353520750127643523483250364497698999717414653725385946169768149853056243131771411685458791548450849224760826818238289477882431320882167750478524907399524962847474584508747947607029300288371696663588120751161096937623976616209631703951547427649978266047199803119258528516041461550484826116138521364724117676106089614755314466518822495143152361313245697801400159522489534669849386420539080364924186429352629719354308179009536477516962708751933054811924035379061767025202476145138429020878705804244926363708396756860421649797481487540599519709516412236932512049675606805260833853178926783530877203358343325629370928834353133331090568176919623924898570420131602550809917590447130829584492031731406494911912857491811482374246616948331100198268697472768961829511388929488670403267335340125469446301755669949097416871675215527802826700922369503203363340181867502260844499690152552271015622003684874876059172730273704901137400087253422574213240540083985476319463322545728345100591017169596307515135223501476113170380757091651413230768393428201259313011743613706728414891159517335038906212706533593304512291558594433093129672269298697023135562357810097988514531003950379139317405597367614524601063206081904687512304830757453911853951358238417642333505905742565615775815865822384353815103456812729748791878983991552618238986785275076128058252268705721052731961635633075732923993504201173519546382033976121540576714278403756922659476496771379594483958145573026359384359705275424569894322015163670537962418304462995462021688965848932003803274981805375960691809160787218625946300673901346672307460896215995359558783800076919034158761826214288276584041138927976390979744339795626989705880267899823593391097430805875289228240090900583258588707830010517089895026855951003629205749664359441771569749963523206905498095255439609331377219686757714509080886594396935619440032613993073562040896159398552849878027694397974118050472871085073568664150780676355281647056950845048363474777540847769772770585515807180729042417986208847525543757420318985623174996661176065598666234735330942435499565394242519579639878092448698231111331831977117932979418603584311631906752907728740225060848710854660837316147675549767396603301463844816297949144087474180462705630416540878905983059859019387473217638233712940624441877981485440489710965222338429247043487156811502721761332026072586791625098664146245788082544973677341869525261662716836128813155599045701507779779023014834971601526341167685929340188584827642895786050407982839032071724338552554372206323703712413800540066424671513273693489645746276680041569916037697057415752995039918466991527534338064886493465491772783597453185894010685102137653006556384983298047600219669472162362417276387537066108281842124607197994306953193058837737764524296069538905898674053047049176789366695236688575200598004964097178826876944871467180527362719692949872154222909545234051808621562330181868656252475127176891577615917178321913282188633664223639043985057292601869527049105723612645571905957753426728056718995676926391703574123257688672249241539084732186661715686049062845193651637605315632256407440257950850951229052717134462179551229966549361757065656601791271180934287328121531516644835156737289522876976369419631423002271843960817615121460565346157262195573371867761054843843572419315988405411048230747909179748868239528103862655369692606723786309356434421595770754120071238199542694504731912284008422690493582847239352620205991731744231747215869278122391963179343432064424530074451531816834331681173324024911953399584689115008325772614267313057482691031223679255187786632482437928501518959568815099087780887294008680644103452431937908208891365574088506928732745207514508147359778411539688220951382071417793924974572342628156758869474665367754520269338672878528741941856074583404873397606292647154721549466509799387694730386113188653000538562793038222072569129143762809932381666319514304079266156943664556036267883609873916065682985464999005704958687334729352440497432331416815942227348804396119351739369343528066636071716058398609694409161941290236268768072847757424717205776555103099899310643660061648368561491453546110733504076176272824594406872400219113283811707528797310920392210529348023473041155821253956661819539482591693084729759566826024190978074427131643987792434466454948792719468723088222471373562942450060119109143591539777072173486081995020521605353711350680114915088305314441791423818681000998247107346531905546305121613039991041490379493577630693535464403982126370709868887829771806549001209062030829108424012221110364913696086004124942973463783426507564681215455238193472140438802010108468118807524684893319514549027889911301305194863071287071016924938514094091960635720994776660544305915403974848856788750198677559448971582707668717116717860756946580822167138134312524620614853652837460652868301623071366403012151602501755848963880054656043040769085564286532340707699916224321112655381538147306237043767829922355925785575851041193817079468574350514013687210680890244978665529224622791274143985010428458322117622773490501702997522975684912985018857267593417489324033636254726183161860896687498685295970808195519898289550535371540171972339285413822269397856653078413786729832933210664512514820199947899842577189126361064468021749601220945931627666885887734186682023559827901828653997790180103415049876422559302249620940056558860197364870131892714760683824900989290095350771590230425399177667124660867513983651594002998385945290835810896114323526602335982972594281790536617898718242618330635099181914602039957937184470869787671068197754303832693096798807518449933109871016263152557990042736611514876134958531527353868194863659622204591199283982041501967407486009337316652450470785610778184653441612244617085730735901640543568561705124977724988123329708553047797976690168577535481779370333331558510991668945993929099352776534166811057894027287932859193136942792963504549227822367444631535417895892530743913881321145975145316451290841148481636005922709122240173894134808761609479151497528531612857479948666061407085294198949180071564808236718451646090573889506719968416878969383102536591148451534594273050513112785527810497231486866631223345190430330397884909253581006167879674358339668661655629695520393191713737276895918160094904472100755711028225450664400841224732705488454159706170760066798097483972344275387050959752679945083498068040184861427246262017707160871398637363656504722875026231051350463427466309176628285869763411468690823010735716695233833147470661809438487839398926626223842559211961420511340917975664714081831671848562225438603561930181346007026503079257688353767650833662200949423538128907197284404063722301933034594481671123889157120047186530707377544611918486526737133603343198052975461473646995882794649641289077865515270605175420387116215561971353573548917116844866111504956607944801278836932549164343424858624462467393573907295064617740576377776656303777236100097197918217277068357950835697513793447792211656736888331721912585363833826323532581273690697176287693681445402827699842225243420571246254030763811588321801507785254253484110335704576836142041493847608286641682232633698854027631318472339530690870099959538082116615469983013242594075416697760623791841423276456193224642104221669076163028430508522198661008836384032211462839559269340557006785859198489563255389801327331671140578491006028173294291018346660771914797086395666058260825128244421231123219577666094404205566714475390571858521282475526753382623971458645925831558357370251632272135102713253866707389784227745087511240311921700110525410455861380916555091847583057929124432180929787021907655119385885705044717237121093514409698951084291430078938933142288808046663494070658335621575690002212739332369420670979265279604885019603702975701718951400364068706606897639062519100828679141074915252687797621207496678461752845249410423854697284184876590481816468833722004552938506454124557939832325390043040012784127995120528047652736690445845407468459996560686396710380862299075734906648142960511011370526629130314048778443873211135273800831787953311445237035092964279199142120941761743978019981637365809292433870959064658949221612358074429714497412036620593396981198916664593711529827846358224051408555415061425032698660623544591634659562344438940317036710002048116162233250297699012935046276133277704747409262346444737952599176369871938337967683741504784813456050809056791123313768945161189782892765205009478225236598169437091678105990872222892873460467529496068952041665493234637718170945625797228325737214094083454890185602088921319043992220962465282514340030152855498490638675233888961162392060810572700350105600312328180816101892958116368195797378282861367344294126964257156901705512247496195835801662015985055091221360064700644604419970323153780005671625855013307793441489063709415879242255166543196365694916837729472199571768853586754803805614656342842562402015737867867078149993773534776452235862437990530549307735211985607509816232302277867089438327595678202086956565449656054937367806278985174974810639995604834783806350371283528074711779393505609665056609174392809591602609277008478849694161339130515501872804014490955947481974790484829331237193119280701675237957605488799284167132013988118450550971350280688684570095594150450123928175995186452905225440706801893094169926078597679460126920396928080123348177950541858156744474501379741980334248555538193912537553144686158080677941157327917170365282457837798416743036457820293363711688116184902106009176132376487243838921718663672001202486556061100096955671656164387597967287613597379809326901870684991254053164893964505894005814062671576939837683655837408572450283338305244476939523842781170999833460627116699284933552139575851435815346258690033238494490835611936666461229529857460802682470359015912802216130670086774160514952036266059368983438563697460398636811105310961791087369059942941672636585088761648343639439342096932591918335797022859692341764179172578878316900291855153639306060517896711182527486602057607192114521522325970786117811573730706260150973735101891097838955483672330380005281173841512048997177192593177155280841078972641947413631550420905696112047200132085020593285429434993406242685970417430743750353918824035467768220107654281663812615980161596850232006815403100348560912337142892072241454232970261266474734976766923459591487682416688168136946100322922039591382766625151762704810314623007323100339393903294596727635970065220775203608222924542075116909905454153956443791879887499229273629180130592243200233462942232620792296287206525155123563638826909684898638113212965580337911497795506702169806722581359278784664579136806324141001019376242960923563062824182284861573590008091736418737680147475380862169008743659169996738250533318436485957838898757706314164505394163928332656230075250722809423852040809656702591769816163685686875195046622834168829412564721173412436598260042716602577892255963040293494480247847754056469884588448291142061179746597367376566669436926512834563937976679546627122516379354564033940338312260429699313210004066124358526460557064147913561278241508098141402758985691939670869694355671689344292649731098973468883903586412621417702191252532423991699496494538119406475583873078431545829250150421935625714697667196090418673766104873693042668530540902185676599300485653962794748052454286313798032763871672696146441580889840510583396333033733847254940392466457994120088938682022652704521398824219868223435839221841544137348589574699423876055779315152674603258187258588053015260718534378803966985565998201616739162752245168918494786777292694628927973303761067810361109705891130910184030581853910153253625437516358778130386309614118273009186532470629801407405628854909516067058668533509907586280170231814790785994074160201986962550884266163227856867009487520388978025416239414173025024383247356276046799733970051267138091637200052422789671585488460393246412393872802341229209808241963478938854513485929024583290686117327107767466665811720850634371377397879755784190021597553605071649883796920338806071801004135458669716040835309708126958963745842982726664423549266039567181969369081525156567862480654150146138492109262596959202844965235423968176451357093395839211593717604078584475458844552507170959685304889208373827584195670149414409183896993523264958814221854723829807850298014054691222583349943849883362556286695620390985560821628488341453425285714080636751265101873672554057585853082941330077517118872675223969020788564136775001099791585248981363053248518457278690756738693935062278479061880493740083319658475967348140914192513368203488017086092401147126457252148495180291305366174766857881498018751094521905746303765846890899177027914707890237300424059447824499553993935329960918409978687436818163919230656313866682706197857634658684144526431068878708975836017994326130548785901612415744896528570897926892730887281381622055973884493183522409138972213516988623982045394349771833698772088402721417303605692517161187471563694218844673346396833601669283183447191223751709021052884552569203891870763141088914824288068979519570721735100557233488447556010208403574167387712679217961763081253161023535005479012677742105571308739532426783275645782691458312793920157797832669913375431560398396310486382653919165614897723330535051133105437649991766959075544457300269018917657340696601382358894471454264856350887995820688901473800131407483983490245206681693912714044771196144429215151895886248728338427370530966927513586545530257541335625686865685802054903033231652439755607926209048210262144708927584300886329732937107980773444622700043391029478177583571794620964812554811780396359065348004624008856770848664238337690895149498927766158596448469139887153876023325387510679098075968872709797192966290241268131961788304727579766347173379573989790410090764860519088761085861279782241170884904087309991818674695595862803871027710678650902611897716912521843379595031502092967244850122165041223135866046074673244727934206518271887981461810548068989214183728536492841037418112244543730447122270833500063661956251092116898363375239133313117401054589271667777684105190385904983086959571763558282495365991405446038752600460757970931557578590766668601935302942702484317769578696766392212525127159627390360244799660247516171087822803663526248419209938004794069932629671463138270037861749045964320117570922128578755447729725508090321098863707746042130948866297916857057475111723784453595339933693290978552220321723249113684511220585179633895268839748304264489143141012288706406574103877248703768540041860608194919498689197801617173705517708630043482275997681184943225771404564966538851367955025706241487121353834486017148395022451195640448450799279204338155696038209330276423540917464682650896715318517950884894976183708581738291001938619659689126813029407585361128902140980238071842223021595595812239694488209173907074481464580852404065853531058402442323736438345369867856159622363482168666737750127467782246905310984305194565847161588867083692748163078685312588715743703308477097514235770648565606744179413844851143906194404977819379974100116503288534041042244041201754298859787294035973797446688690310070319430460774449929988533628595628483406357860990886073411262936700097506889976277966518913767561058280810264253505386869091383117100348190242315977151884808526262896358291913417605751355392326371171628692588851140161143734782186578234237046773614247867506339772454896610003168584062692964292069633797024931565295782341966045601756276063950395414775514875618816146098704658747963620877142064010955744961844997926343561331273239146063255639062199263626794493394789917631569202139511666783528763553289135404335942366916279411806466983868157389279979997942109569039558587510178181030805430174408204785869331976551369051920232208060793791430507213128346671420377012712825645508895349273471687610414425824007812451168739412759058265613958693836618635674951035736427595312458997838024420135337016921670678865962875669063408259171554438072545023233813772647256834181143916906161210704161258411283105119677113639607855055528606556672569236658790174192825038238924281321493261735448458543279450171098575816945849293383098526223264703567597982449868699384093533993699985341941802357615800795936821057959800855250937323749486389663575591249692230518866364171234021283767170899440577457138000865158430787770671702671524317220632990137809988277910731502060510836722682454338654361924343660730784581688227771437693594002067486416209602514597321259781099697512897069448351577853331203236376665688744655402469760289750970189305100184429574769862024399628872327400682356753657006210248164709194736541141919301606736418140463465494016319004537657621328935519220739556978855378714511130257602030739222103607471657326407923924169285309055593960653360223206185774154113262973501023661093230262678428497648133531433781075932510185325979655108862948464225557365932954710784533046384261718713014058128949117552029676306974239720103475771091172312252024931175336648032642777264400597380946575396693915851806945508197578588896734765396619613986145788698424195734752989885962135726377123508479633786056885494908796741879759875685243578841599475676219031670610020580449517977955909502471636887661276919854424769359871369255012560899932890482876484298932113200814995445232228786692851425570460870987736169377003221423578809628055450411672136482588689862695197518803661982959318619519195919425031242936810130621023668658697366587563242204912685917994183219813152938046270899646740617876892843499723254966017846405210533658530469503145874618658848249340232510129518341992365290996815066551517296230937317596852744553764875991240585024623096324785133086181587555242786000633110062698944085306272562158659199992482994619304073598985014440051747187946610416842781814250078561211281761583732711214645581232530452611933360718665109659111382549216054553514619245246620882371916876004548887996482596232562768368103362169330994419392816246642515120771953693350734832044280339122791453962063319944633831379518915924806609100684540160663099187156659643391926389776001011884027786904352027670870439533570864046544234374146363955692447587536277465467505185733241682155300714967964733734094117715216413041900066322777641105621369614413111840860691605270575817311597858772568114757546869471670466696847277298500094594996665932456913809557948358790145503222795740401512060355749183872916770692716587564382365638506844775161373768020344812085137918392922868232179671657125969156139139963324148897838134863197066327643253758069988772362705994118665485423876329767803114515244071197347300484698320805161605809158485870340131186075077010150071477398544934891369153493743528076598656552687645750942531334147750820365385764235605066739430126782594150712075780717257144358476593182741197096563100191794100370110944346244043745529220233735546523140077528386146497437734121334366378394408777675947516354836633468834249818543503374318843793120588805058704540139239477968213499845514167046595774824216974573239798190544387632040624744317714548908643150850876367420277238502074852797506834410549785899652929050210545808513914627669859794047883622870930659025760320838380186489445265276352919539602066660493355072928028967383327415833859501984765804420132585996965854599717763980021034211885914417492111536844106206686084722848946039430623584842543944227647562750943890453850667831327634585750946538865246476239315842009414573755971324863531831609321384986223419814714757392924329197251834442014019897021764200301762545278842274261198865057408420506027466278320141219489842587993213810397729141339355161740044726558896771876798977218739905752980825587754970755896854633326247163815792771074384888779183551047144290360861660026893871613398161558236533597799099221367084608874113539410444479345671042129501595529364100458776604192301940276752340228908643658217601546476018833333543735857187103198006261447172324976106219230972117810186069088857345693546363851840505430568937250243185764237973059091155500733969648024927592282348895122119518796227780144223590191048236813428423495529374210825080466726742161242995372273922290745042433721400057315804047775473105178089122675416819259170655901132554462866958896883250222016205270378149601618853896638407994383743232034826922613649743849646286426772506822961422128173563919408962352346972132612698021612005047287534191585646219916013278252798221308944011403139588175321956080351858488901577669775305178818582728700689639433176593790497211613804774032181134873636129509930758174853316350413218325823955463902500864421587223899075254220604087716088028120699740189107785742522354059091557468783617668740634732878262637799462815511653387512716181214530186261729175663242857225392838106998552858359057594733630905033801094675956296475564839871064956437916993951297852636511104217186941266346924054165823754619471140807912812738878421788765683750552811812545872330915350389220199576117555012267478117849442237932029028586507359848125791309833463576704279894253977207140162228234164018279518018485758789098639552117571625031135278043717649786652746080358438952430406051466816809850405010282018702508317369911587472623938049835014628722380758351190191969280175343159356221958737629859000656237430428369478127940214128807588067100578734905788038585394623980859232210681896036870208476750243662162668902059989618564220174902009050397385841203281317897562003505105979854610665662074249282814508656386518607448177526180293215579492725683887677446019693726522567208103004561062992422006854431488428982917631654129971492368390825279408586645897476069156432460648654642014546859525454157088670554391812409327326910366531718620041931132579266352955467692403299069404007466744060517840008421552728201391650749265856511438231915892398546895941349376032513304940735730359500224616823866385375423918799797212185989787801755890825974543111065653978099680089216364105401989363472238233429824681417374470303312317294385969029860938217232316960373054169854227253218438508121897537164140671319638247075200878848531746681916857387882546269990072812780684099751457153089300453158921272792521385618353999132648637951887696000022840322258847732199503588374777189847147284237862620413247358824835550012483060313715735424043054483298241348298144169925363402970809682071167217396630893163407274731060473898737215091562425496633645185395787401741134027741219831002710188921226409670770714978867775074976154542955232930840305726533397032921729568758134375355430112688025939839663065987967335788019116975092093684413845358437558270129425330330421677460850907494696168694859642409288881604194004877677973934178240986054057370423715827267398578656990845784280257329754419433202433903800143475277887395707795986414736359531310675361409362617901981072067157595783186538807569112018523294283712405113236710843453503718732986531757206715246610677957306144379117956469363077828700181441382745789920095883739971489785215273774137752347837968089820677376609433381668447993515869185280057631111546593617195595744501216388918710935761584112522721630908895005170909258205534183302137021941071121355278281175801463595837521445305290359581810506618635416319576640062556528200160347625966681586698042491466580812725121076043970442014949312670067204552395307580001271333997358191631394277124986725877269081423615188972954414304483784970088741091895357342428643457204417376138714450946234339540861417612643956103964973947185465257099025327264983846862723554005424155688527293910465342354613296967709864684382679426704758372312561059142077496720717918339269269317569021076375196396579378994488474572205502014194955140845290549868575077710631771990940997619288368886806237339790081114193787090023550510564237938449571247420151505388383538833697847506927254140765751108170669807369798746729024813416373069531161610649389469924694298134951569689151349608901409841975444850444120534057995476741578741092010748375196224922032507670599678801841364552849513631964862038961261287908295692750084662354606966356900046113483845933911116818812956199490700028571871735685593946712697534795661457252807243658178707784200013283090830564172243133851596514952112800315353725913866016460009370444286945089625481538541085155369379029904067824791246222367162136944295977829847681914459919716449731502508658389112182624082291608609643486850063290216526039368993784602503134750686311043832500560224037707753272060369285766688556995193975698585257655117731539332760654961006680092099939868533864702546415620249941736638731151493198233006000560260260161967892385237797476057961443967387942125514973734993325898420307907496821638782874579192314607492385062521092567106602299560477601893011554571950094650604661129913556299216598768944658350607234896222982924194411520560498623910733825562115035695128487024098540019621566709089057998358085086287616846639302161522609751446849609174670844219162190133584814030885856555845293886524998848446104676874448518454166608900059094458987760086938013888057616110299870550391752903741493361660534210583733293735596855071459811960859761066235905990392222895994848465816383261827226989596954638725668731088662767889453299925707264823997953537108449793349133717846250597134974423608435535929472157062631177534371965652359800401580042556562931833939649902615529808011041697824540398475638491974090542050534986112936359088420023448909978080334922758629197621850352844739368275846816741828348843234385626256070846082552628034663425478094656237844042101021621511636783490079382672612007980401632448050855239906786561028528977333244880960278496773163326144692698594299463957390481390659795530510042974768857790090959006050203449073927387464707438991497333121556394678171475196787990933109314270828976170525534707125159302859604156878713693541505745454580182174322248035960481382122322039894852149474731269711611159952875159847854489207017935221294722501725992453706849678924210632177188571367365755674458535534398111351984083335699775137721125747753685723159198367347827754652179075560134016227664347056624158356693740300529054010214664718417532004910870663523847397950996054390006083343717190190214192753751841980044163162162547188238916849083163562980843304623725119571621957277958226736034813432783096934735928043578408421324661892346881062694893464623429060985728241551975567904842932114288395245704934272390367404548052790876088925954507299023607989005912439830377578007323602179397996691752876015031854019753831739486959460571699101438146553402240673366909282276153271234487020403842285154253828867259431952346747851726562952050461631488070005126358893436911883647938091140063304438617452326489097554205609344304001385288495460072766558319038306853323897499303186164840721153483332870445001705762239360625341696719268935384456957187738988999935073878396851329859491665099026268230780996944454863071732409337177036673745679661603249324588599380182288404125468514952676125422895724737042049889389839807568388545689603239970201426046951877704948346514346161302799839140600158176296631917383321353045972137010693271809468308057498936926776410161444571177597516384980661509166878715355522885399918946777992088949787040955337254097542644253699039065430145045005680648715960570006039709157193827193919920709466638895247330451041555281480467827848917200289407184779956268958497456950413589373460449739512115289062693886563202366473012196828388979663796786311679403100233463182143886097771558168623471121353469552218984331318576547624598902583890031895613812558169595874595680486822627489717524503725249609920037751221171890401874054975596678000292097751681540626915920011177883004158229620732548485757439183704486855868174895489898204927361282213945015644445246620760619265873435391351612766651844958497964271569014429631982625069434214458305981738912069388374510674030313597702469756602855559912052856691630647050005715165058627570001646802855221739900218057657251002499136831182595183796906125754204965711049917440651823464527910252621752494831946867734823724406101479000497491867277277333592451430939662707400031095857961626081049743332596563627496779534993760103548247700748420537911433722395384585454398016844365765022414416971558207231476575990002334327255722445823128911307474295758216880019086588972846300347087752774157990494092752953088047261410693484189945834111341745258355619520408630998662663357407735014049788620948743934356103663597423102962234507346990678892140855435730559264732808544482733030080742996972452643439000354826463880796516965363313139569251667054114078882411105288651563125187067013723704725268754679708089069540664757716026397199177649599348246427247226423141437834698457936489943886821124918953671237505519561966202569905378711613750447431547954036314790068673161827191549580750796523686833118042801454773270183964358521512840731344446665208457924146566474821391478679605009603139331585531959641052412791730742439479165527932603641547681415538933878963648247175724182400893479141062584893478620420643054809694330203170043711878260536251730944959996604555626035787216554313818785398650499322230860378943307389522989023610733276299596936538816701364348457599576616882407414774576025180938955392623839726541521475531269014530601545944025159837093199403795437343585879220534592926235572349957835137870029788928547638539716394417879972912454655431803104717730082159662831239469573540470515685769895352603434556936463587902575064468340847176574057739147423899311119342803299422022641606271680056473025011788962487529876618096316070028263712547903230509500574450567993121828776645724307480600699868166675273914524244610868194762271158829777849553977895473773353414918767212962927963820824353941738141363543963732896899170340589010151073837010082571045175820247493174641239314097693050739516669751335955918357549241815756685472922720374853467519672223582253749244757408251097951534817822261619227934064445999897532487301357451902562718735010678512076341681389594899782701946069566309478490609282584316724315717885705982651702586813943292356608139456659990130199106643838663595989060681846601374394874350743470993404706079632696510423920423388012657015388106263883851909596511618478013357052836096243284880672235623498121268069153552604479784046045493413117847091806644172645143512592837651617611879980850613474532530861180737447335724467332820685307608367241194220307338041113061968845119037893250855002190519973288707670886872570197787181333916089487783042205794484232584227666255171378961616176098188102460346448937178329001571318398731974299363404300797428225222456857927740691467522194617194067968394946190526595497991116016225505173364377219124353160791034693030193979200585688799250236568887755640176988826832502108912998522338406413097013213185084466967106399245417488849021149941629857909618107668993164654026236415828729918781687537859349169502400602456875786075519699474857635141876746007279408730126873505366554186927712656997818396632234502758596415582477045913364364925585694452825545832366618538531610654088444615121211679442826373298707061407697614915225082365853159862472745358100633259777103067573536295953039308438860802059784038884206704913273732106729657840623254367092367815333459714012654856433495110258671819374861852029776217425534906156199136780528866394291794208940606215273262384923321634926312424678461022567716320702470006489956910881124511525762971271421526061837265424279071708426289403275930902841331990648704187017153264911031077845869733906198180210702541851410498980197617012689730965246962820240380992306791621112339991164741100383884863570352748318318675007985320622057678937426551257973858442434897831993174250184612153379926942376656747034137946944193211386308298115794199967439698946374734305104564374261797166062168906336205525469840115980927858762203817452609165103170601080484341860429802901675520395461099174780895734697529168666015326207753438287310215872535274986366976244783771157906110364543356764259527367672247510869803163029581205557962189977762917772019882100231374610544630420206113489620978974575075499699622721429224927920529098993870218602603495819546291573473184483557273858816013195954333064500790820732351750342704514378411003634630365503854391267226366339516624913124282915009410042157834703565151409460251066893526985528490384598051954804201405833126535042897007129085962372404472810135295460352550599729340275965689299562027131822157395087405545969226522288295519431129686394880659720516207206286159001280308199873751603044158679091678997569502869352019209194309177262941483251051407094925025529795018737083435965276571992590859374990272644549867934778095621592298333333842859499302123403110065939839651302582876871751061405408897448868528993340288526345065977331055376471625488584505877050213795179360017151921062834978791042248601865209709797601787410737377901925208184573376840686380149412001977571693387493885897552087349489389825494549786032240984236666287895936535652148455135268152961707224682235500844739089614271904005897054292301672197843605085921098587319752770242943850763041931403319096321785559282871406079855054682013452763927717841479432046767035575224451360775719814495767290570833549828712878687746329559015266330405909176278778349357968292515583724663970211509606943390092435240313111875558264826518968340512954387237795575405477061850495376718900284958042804737863277397490439333820295850214545442158271151807517437857594422052696251198470916457596931605736292096742577319293130382054469686658563716560419613866433661477477687710803820852757163196443828455910658140493987959075395723773777461724137905483138106836317217863296173845050094742723842436599941135759278870654019774509121542821213757759291176572068446800843923105539748643172550271856905599493041693409572776352807220478896328800487066661867842918283564637541873422290248034141191704123232099642717790039689846657162877882435137304960436065894603656849324662194038790256690316313863011073407650891043913914872058848198258853844583296412144836826103548537353621174140610503918925615307516486564673007678289797038987347877259617792689187853427318757693278134327373729554998883142106031785896058436933003388466631040657102311108156591580963621133419193773146537982878070281930090272616756749969886770295002916200745436982269989375747830570101982806905265607016819328877631047068203808010845800453472615975994879047442857081801908135715160466253964265475955740451161062389902389957667930107173049637494448972158055280050649512109996072329290024739312606130055646531827545603671728920128460920501882765323086450660325847340334142607497101362042088641645107820195519745018342182995877348543830603173100435852080695853218650128294053881875355117315188036846464384221597899963428830373089617747866408073723706753548395247404940432346026173087231229132494607024647962536048042938843939093873621186070399820314371203819242501329889541478528551966377404888268021554672394633132565587422099796540894661605999079364566097055808744258692230047405400528110500438021905271848299099194813796687626254621158851446982374527051536860482709387161722719675554474266323826753004504196568121369125490680597531828701118810491000950391390103108163716951971159409547236392515949320686631618416126716213357655271450985959958494504791276049889767431224790718346836961471875644709401083791667618031316048900159020455882218812633440855491838662085336913266400033222191912122647006907717481309562960034230893868902996098935623825454752042613101340257916737797114828729945844157360865947686288827793540746831501347670019617595427737271298001721267302167589185964099464589093886814388147079601911820420853402064036606232481535834019798479349949960016361926204282546780457646835730109963396246501011399403535378207521222988266954137248743715971299453882412945867455156122792313003849839883138000365101749398401425182484613111295533988709034005062122618749642320325075386372572445124257114915498314382955529525805254970792799617956191799883763457557168319829579834161082852818308726577073524880615748196110317655192483193606656445450068331478120175285786885621927439535070465323175807448250445804229646473534132916764599550176526524035093589982178854468227221815607941918407237882776817153191307705741061635451539605445567788006491575616181889651662597519351000782535645125904942915714096091986799954480465676691748430115914298375754166646099313407681911237431970513854692837778139644367403952721081859571287370930785526527404610944061774337834948367099286954526947144949004503141110189418501527218024730929506467037928903060197357803323922436622731279813249437528056792785018217454664762508102383853270136447540395043240463846906117591560750113979086964719554141445076071059912772999524110805798660333075362157254429438172687320521052102206649142880365778139110548595813564694763226489342681530120378527537493255122731765296320370729361790656691644037558267761019040418644694764353889917248329093110626170742960015767167513932308160790292248479730745850020317808327506624578988775852475563276216294412429724108579643384461735342217283020013860774929474164010586801634672297377601447730881590761140388857968550032537925670073490849030208194155906502790299181466082933795993942461639940029579197355355133379619454679901318510802110766704412077298034702996246015093801366544679783100075863592081695256899222696670665469052215203911109532594304312283844765570096407976349939204748238676237184777240893740463572778592757231880101188764857500176789944155087492861784263940804305839997179099302899265672695633421095164919382992740066887653326132587140525900277273377807537299649309955185290413725141020377302043603601522630416851307404838497306981381918686201674160643440822586450165271144986405428015219901611778074710509970383034079637532452085885536002357308645359210050061783143598773389375513036799406733047334855733545125103418859463331406662802314127613982306360282137710361262821470987492497194097342537273493905173419578390642798835972027716586175857143678768902087438853709740347508905514403364990852967209514805953435660364818866178441076996722435916214992647193167199875114845310751619645083235786964101637479064507626173985457188385404387827101518020433915547094350521838278155993271205704532920854635699448013793258819420844514836380108463163635844396549882253669632256588169645548562512389875861087873707355273690301102605441508505537718703543929526916315723952735848062254856893690432909781259667213172069456437744134648192464900639697715384075554652995971514321047356939177227995194722561048675232606041440410635205348261368576157440484948090692142450522023372847152481209947748664201210769198046973695194636909593068619950950323905513137124155869946274491259191269372648865636635435398083871586411842099028975637838829132282080718966454621327309611927290881381086891109444134021198354206343630620438294772035547662938976771122114020690269229286653197603249033677070084190824451929356584623130920933730894798004769330807607047685572649480617464027455240155832248175786438761314189310287340778848101611155949181657527240084461325401156732698025621867189127948013776764679695572084690722488361501765310065327680298213550911329223084608674051415994379123079199193141631296173240564945990661388063056309529778730845083169149541266800466203661977286963760615508789386433308002949498548780753183718582244716489585191198837073230584619768542635329894610486794424579889057565935083381634206291763207828022189747552891979428795378092243447322791008515393040512288869144993188417948620702765283804623265470023410201704378779037735525834945017738942856384307816191225313218136675389075411777042691496227977662392932400797539699966981640808228909605506063436761454139701316959394686840128735701003398880667056153866232743865002147389398301655089869627906148603038023184154207294878546572857204708059667184699679881556136908135506831464214770580111767145791648262609497690289888733534363002559377443190897355458368285225225542068600281639273218009685847672633631418868061769748023942595664099543673075790621320415727324372533767235457692106759287557685913836408535455292794423258651277866123600899898702959918166198163860785557909872403137858877839902449809656802695069762669366608173249286753544223189749611453180227085666274862435949177937742201747493873078727759414882963659468200071867302062648415273647810087658170063725130248627192562165659066332839624706338431311035417262641241317999652207656932657742995971287355632963806156350232108405304718991954139655604589319613414372308500685380194579085195458767582214779531108881682526723443477846285862204027274409873672898857070741486145277532526331646079678522084279714055711292223658091371616240292773319567313560035599465572799270257067490219664702513663304339755310978849120347357660403071535086543861346958523709504562569124048034357993203988560908779859593553106379818620779664207369436446355428865373454596553993929449393129766061682871301343089461699387968166048537372795599400952056419610927023400155004108288585085543287519836234884998719101486512814586679047418114272217072876713759076557382832840218479269342304795001281145620018522060160201849824331254734052516552602773516304231698873790676860906900357657302089705377389307801155101899417111298150660255768896812943263149033514171057469790406919938522831678993392268533218047271677427180364237627854299647095356117113362322090524578296646276231429195419497476869418192635594726645755176941822334039045070323039699751603326709310672360791678127393910091682105985288484477163520601282906809255930845859135236800324309487220642099740493315751234212714934846946438807649275375860603405614836997263504026439908231774666559612521266927465534094933888421568689824120796902428779530974911555923554277564441663047020017752286264467266080160629489275304144864072268868162014230187153852364985192514547771197410271739851472346026182732765416998292641069885919758224264150492447164856585321210771816298277546028051552002957859774389074826888773543706253046072933742536519969024438985444228777853992788797341715775398460509423510732638180820305418673418260084846038670181567129821699847502340890006276203136052485575423250295449296805486353732837798009293443365570143328913013663826718827168340004828670845301898652123062392634413399736386710077757170501799135114511398225471120305692066272234159862593298153730647457007807870435793540214857744615393725798222622652265594538720752375807883091116517750028029041690885689767861414270632096092208330444261061492885106177976450136399063071820283214313472665316574160814536029308982455128842137547879734205053222717983326901762559505622011864642568293093260770556607913391313863123107526449684380342307404184587944114862563326452468801193950436462309546122005531800760466357067631769382204853458473298665954303018107636070465552533254515715106522730133128544329115000363087564756174329665143346987968609491707425110789621825920533640324505691843215931686297917812303489031964196861010885680196483192858496329602233353799441286348645733862650430971793476655176345850676495693476001438192376590642422772956852824897193016309944963787617393535616061547292345201868413127756796721863386579615273714145289889485630664507816889517069656048618869710103898752658110716966270061233481660260303817758889957243694807919600301741554832861252592288082444581508025919970133984484752267858141040956246990041389025677345725160190244920654391948010478254275934442013936035173112176745258768638572564544058957206738325063367122706077403686235078377293873969287271902651965859856860138419944212984059761131428101411813017750364497426002552132643118391773564882701332457486710045098045464446683282580832991334617889080430575654880711035236154657120252777515487461916153291595447461394098797928582490526865421111934455490518290181835959703030831577491873598469031049170693683231006680078879134280342992596341881250977522376623501891408196194182740968129487175858032635765730916828263663212405677603863389080749481850937543127454881370855933489022099649332251960004022410378371587815090275410574366762116269091935335188155949514123532710734219468465752280050294149148160135718791289990482075752679598898761650706335676863793487649162977270851781129317159582194000156910004389728622282520033206685930919026358439589694843892213207024305226366196587952201449277924008067346853262278546441887892133221246149354474383229659844098195757148782599828498832033064074575256333573721460704455498745276680364176795255802582286666351862634312986626716409906612538659106442047121521601480990816520520659914998383791134916939689498469104373002471938316084705626074915562826500952083874445717911352990472271118111534956184139969406029037117853009841989936119625711871541141748952426624124589307814508498669655120290330162822295977192494413032189537562829380771136870486168470630327212591266227029123948871376563477741085969682947293098221407158599509219044705440504390009964918731466884149094530468839379040882198278719688752722677068199827470915891286248479908793807067346630483717531841281976680941690220075633340859698285010737393837643044382059826938287239178322540511938999769862716618271217821570536191547188667066857784827267528808043539689718309693609599472307011224788119711158732878255677534675745835417588976865547904669862342734404703423051537219763143999478223980519527859120203181102333467633024973459462073986747498233703027971627078443619632551720044591035071683656609644074615941911023575908474057484069144360071269456775415368377839636587330538725314282814332853436164223935148841143766427835327065896008732152481337742648303643841374783101329645216737914943289136955924678393189265973617308277832349967387218416514417960103534431893072380338138337258826729356486002815119501767774800732400481948747530124088052287615017230995694380833917932873647229466377737120426601002370689917284648486566036466351664973592563742568781480896989815528340106451281961957914672481905832444954013905651192042575120432679111922772510440415553059939089810054318820469321669096450082924854761401601645926335210462793259764713111261325304851456541558123958691786628178312541683485787715767452995281115454909808362618347272590951642708253848959156029958795466628441837927804903778556867716084669197777912718333051890648404736757208330905667685189939874520059656580575594789553479686630690005173244488628542444809845378063800469340956964215854762462852359143462613110620457597954627977534037057906096970165386526745832220701528193422924146862991590403743195421947789927333646227242622781744067065815622394702537415120152753269873721576218225920627309518449522890237267020838032928774222533768445485686827221800580542706701524733549993715067081418186849458066997205470655827818993214307117013803352301999734641130596781912083239765000900679957965813574214605191008260944550556691708243249547816568912214299738228336631762730106909740626312466324936388982126560515851050974943648588040916359636644325178492818510500088071929521227782467446689400638258343323261829504894500331072185096696145107211893880678330301900027552868877655403095423607542795004519522689523433155950979356007825081448962686760407574793234686374318014136020241351130826969084505456243678865341385142297185706367330164647295958980536592430572800410823232311641191864173374284945869355400029627910866207631077591787561398362508496200004998247173333110677718305381703957409999119899683825659993737273108244228248094457407277617999708485350106140533889463745440359282877321631086605220065579424688619035437271077235567585565737998759821996633424239013671939503470470474961983328132051391209195899336395995873008975790452115066375047699813567110676349848051304079385704194495769578555222164775615239150452934069872105423926201891431833030713641856349181790077739290599148969772152197689695770983430957428196175487782831204794952134935953924272746127425739016971706174173040413496114348531588536885169356479184033105666478232770764350226063558540955169439466451052797285171591851024614821089468000261871588872347559519544011342561830878320924670447577117876265827433372715035700336180764973875370029478616470852053195587521598418850183374217168406944325243786407633461028310940984490904138510368351872610120367814947417911620793176415935725609831707094404443859959588697320327610332094724536383966075437785635521614831010557276873071406206781108185738172453898793343648200476883855222791538497557380479040595418304842877072268310973133938508115908208813825832161475961256836305785597541403003515164052405063403821956022429077903447645771885640352489887860652247160732422834324741708044698961142698236742682932199040659014353684296624332090672873176900353931956442075221293662163558941241215784155064464619925493554628178645504855549216167066235604870966194371299126432371989628314685559130376111626291522481530152761313403549969040348389854111744245926257095965926394689722358502865041637582022364642895189634611077518382072608774787555765895342123645226645761039287225908351708950030463177941176590462399066487431534613940513281750852328592850077748828709114775990437366454776323946668901604404647040270265080352074137578569851342395339850206412257544291733567490291684476164759581756563945861178017640737302718875461256755457999413339378286399663408186984020684633212942098019808152069171571320310124481673014394905688735779432454718237362685745729061074655465054864662244081574631646224303708259116942505953056435856389392889641280474269798578038285011583781839119398670142250835538564672348077428638115327479235531745253478031575405326573283017330955387150154954573222755789432858506691047941401284340378309410842252349437833215709002881967074184160981192325079055988133523830875092889294361029153366233819297404120304628545588325784044124458532108547146425435988498014527850565070387296602287992798979932092356180158767576063083744281319270409754702574423718993132119710538372202672657994103129482613956028582653015332509009962316931363040143315526357521037637236862568112133384498838558854389921936991776883037742031527365918686647064493935757389197827114541944052013865705543861959574998857008514363092256503820286447804630673671729204872048771381331060618678566344057205382446255562928089633721660828070805928307549671390324950393029122627203345363279302228204905013187358672576602988418303969825560173917786244117826065921397965954102080511016410622774964491851099976248704772644405806753927385507574062494163114442402137164533589670317430243359644801368025804320522064612566800368196492345582530989857680979186228675872159339781619043898884202837149600468347657335690271152700712935922879539159992663184155244680988216819260740459999967166811873897124606515435204065660885951139565445938491884871216660903008739861737193802556568810576567815094238116357407278600370786029287646799039990631402421336018006469556235089491481813424764011341930689795741584192619316022582350345476949253992631635721863343677609165294677245314415248035902496478372538432520462162545597490841756541367365364772438581549098212741456511424634390621301238375437864186441960789223373884306145631272155539608203038991752374997642410470324490207024741084732580638278379599747247908062095006740475990109223498790718390227760962920091178806475740836370350880117771890543546673909858893217476474953604039704942528042554772563414528916378789263111117989267209124713730005004378691833039190956471037132988897770928690529355988915585913170774696341772366367055414567817939521411624534829796407932863645278231351856397938035964452271252812072505307211239687622984430130923378536184159167398233092240811737608574800645818003694412921306122499557547197140220288536826227484787211330891816080747468115810332462300821301297262423485902408884887076971781688383459748706401703721349899729959992249610989981000560563111258209781466418959330153882301755800570327964737666775758919286525834538792856704955466790935942129112191714443078429550351083519381141698597140369700570354818495287819768431999217643660262959825774915678303872187548900268997177108146612144825808977110236410884993239344121437967531272592969317513856857957500114908903044114797951985723663112638580367899600991281350497584649430510755563584156544201156855237028678892190468657898482313589567037531749345808718956157899803705536258285216351768382859506422244453593202516392804964586730932344223502562149360763572674557171380697601518975718579655232853111400901603365849297717647493094995950422860166380725972842384517828981538451017206336791570595068547000832293261943802553091364548442530380485905075709475971194929490578336010748999790538681143091969755224685768518664660338871516961751192989772978683264162661841228085232530311653869904160180905554153305329182906145863151186159362305799102972230495562031768570763257093177914117505493883875159175366667421334958727505753038140106832284023433832455497476867095686601716555576612056751279571624236326632762912578247855653764851348426360566606459246132558477067343297858367211950109868548749108078628587153311849326372621984681241216572405893479637426408811275172443451551593931702850650254240469913804946064171359159573058662066780946741517879606509354969468604947255216942399809897938745924802673457087136503228208454133078926464568290198443909490455279410326108302737361717220654420814907834406858819352402721889192040422508780427427726506373231999478757940424908979244646438371816841069182516320792979941424205368753502257029625868598842499822333768933799578484362842005064932886765371009245089392691175707443454894387562304582392874864836348782550802468717760253302773335811570629405981876444891455830782205638200388099861975320618140807699869163709700352970989989609840987991099390710285270257065096922298927445113408894114272374112190427567279156128307372458063175079861556377943528328274795037541555110576266308833238763896696619789699774953713613746281894922297436319236409387808718519891342576206979893697903349487053564959746951004581296501156653016297854162310947833056512367092068974041398438747162618360797125452485636398606512427404266347910415146588587120188519358739641460977146852904409832415460384930771971397169755514782694507382448773713560574463580539493262101503197659699571503942359248356594287929579943507721282368735790753433359497274349629251748393334976200911417130650981257621561860190634173278345357736290293352848066085775693146378521432809791136207689566912196144761695055117190529107888566656483686632279793345559369570209169012443165067174525165827546202138773431047185294482487038701709702890067416410626521257488676414482970908531581502990218893588264277884392153272380093477908899053776139839954652359150466859729675026377425122258252627544814949761259930240043392252689171745843173003144727752713820532567765624066051441296152978736370711998157298943535769287006634022866450750811230250845098698342015240646053323010643746975338406115694193275771144956083271884628637195491349848017631678739014903361378434276034424284906576229351607717636432867441614000009309345030624791818372678476448907149081673156903109053328453794015203426233925695301359150149785066543772067137398454580628851763487975997533088956957131381458444700653695963623463714584299800905151093509780009554759156076395531911024005041421786381165126293593989781461936907697058083173258036855839329963217706127975688944131988849402175167117263623864192097004639018750101810538854035326869044107509312113253673941483352955266896528096862774806919184409379338838174286736186074592613098129596077191273018149317813999917324626363972324483707411706618850159696547335054296769205672856194695197416814051324088676637471583953214245579938638467011321576641898601126255796414958017641426231098326716385760645708408611815329817711488259265688893209200972776370673153569540289834730363554579022883919488712351560018890044691581960811472319833041908951181106448606431309931431894768211062870155692575211288216505269526421345464973391817852883735152660339579784606097432651268410552086794123357267423959253617262503529987532027635931600429213214569481428155613600955179258481499864649360574273435406971200827855766618930535296239778689337930002262723345192233139987091750657766731688674809491102629532370939012886360358372993757280352866621797939154864034074944523471982490286055706859188834120453277705731031871014325901037739643720559492791656381622155495245570855996834031772660034585345603930099618939769626198912023883569830548371945834060527717824200588698905620491852717222734643612265683947141827387279538156531692569620106208922238842014247127305134876032589342160105082517403760723327047507949939216011226297189048161968340932831401465278781194660030831387262858569105478849653968875976916104281647494126653145733423514433619648277304741681702768065884063890749416734878617554845238688621185720505991829148549510583482186702402258958951917582448894200289696241804439082770610068772027445502331450359958503981960653266080649240403758690279417939320567552797854286600603921593048339492991422865071317576715447689437735350703562352131020928516068556039670099907029701775017695797188677826876138566523564341731480405529874356784720704963818111197580956087791683669641569264344166472508944466805272237495522535227486296158615618765976382870801025838830503017591421862375059026493065245511786357328585233324463746488169866225094925620634079216319185768901390411425723144572871341578129219870291295191894004529883870438453000951812928911460415082106804995491731673127303713404573126952266778268681929584115241102511067502051375423068384797626159377168361682789603272210067916423341941999196108630632247804535515440601150583216974797687016863732959065828140692064942458321794413726786531128729435122729828679723578761588104063730200249286916956382301045419820947281107209388249192315951963476487014432089404831462038094900905560475029621847872741192900698854085454656590261246620813303417163229968278842345238386995154760848514392488175452436311033369093450145739043309834937460192748769617490508981871136444257827669046028115173258906615213572195683132313145832354042291434502488480570313010547698595061017649671531765255369364845166520093313478234312073440547350044793752312122436566984818314353147414839446848356132508798325723065353940476526349476408436259084949696867797922983795568665542364100254447069413791849137299814908823211985978817223726801788347332996738017261636231447497316245479336740165372183134205762274040130533131205067017074030247549993003735299869061246208133221644560853365624012252125944550519761307452748180971903903872182905679088553728329898920630314055736492819054802957230710557196723178202408233838930930098525311587007512152730738931184289147008519829669314060353403329090474912231472932386463913006595042161013261014545293786832544475203149394404081401802415229874101882839275632069321344536182606716116312484992274530051113055646355932661481691129603563929260601580279893208286490700662942404776558206057502398037440844035518967933882559940824388760066850469797567457893431490939791613175498144650013062741320699185978276201824971509336810407397889962375039782665495142540106106673569261395378468864039901368899546044368332762107014225241175684022070900374025624215049339712373540875083270926749071048593296329823117903657655492540875136718601123847005355901200674922277749743761780942493630232559292655618480342862226486661546479158330217686994237664945088084295176899538688467321476286093959159459356320111229506012063811907171668520999054480197426353874521927026591339464369980218753616373804891942738858202782147168883361876880396320858493481365796561582702919545871568509990893903987090051758580746193878415977908622171659025677720694699888285287086756628609823795527902905511291424158784244620814848974150740085113725911589396243987443659810892667204075362805185333679221158357175842536959958537771715341011747281702012412385167422873955190816681177335318904375148601645620217320320056080676124486922807810821891374143859950020212862372170697544649356353209479591497594464234560895324027343903461149702787161319019883846439327501301322813876749688861277115376800506529059585346583114850777118133343389451000847983290207638365446398807525704219688127507690411280038224268288540218582916031740617389835604346197145724485117422195603276559671559718724459354169783156150002119992953541714925270076292859062028780434347410770356223367115260251492787023034510536882360308834888023442924598028726989915978380945119797846719408955649274674473968902998491144723909891778689901332053810348107076610491868830907217054187862921018981616673685510781057078683920721357970881677224288041662581717009565137384695753097444825400573489740656648196693995933669328776285534336490779461856122592815452754150890411085913567011164693806421613288692904619551169686115423455890344684157605110860802099434470493582390144022647758093650371334084042330917913200777453458189077501802003007432856694788628205592646266218467029774423047535973109122136151619744723553594902371789287488225323409613313522229093503129401240307106212157039125950313338779822904852036083148640444432375260170638136336267540622996233228459457919878327056863377332888463291344371597430899275934193688150024127678293713960665009478380061361860771284467889882420503209025705067297263601081406402304338073770228754795106276725481035154570669407116788396033034259823178730738991727165426285971997266824655343543204945621607628364736600452231312522525216389107793758186102451792724241691512337680364843607286225281657718297514749800943820633211185605235604432281557808631918988282286542463370363515198449618687089311563553833570967043325957583368685819777476348387110871833331483964729140051692322153667343011736408577834433218036242039445575232864180075016122393277588132595176936539171631397000286741436128671685955188798756430003900153728355454858747041056012095105179554350408735898905869061105439762695249708113470048106615745200154114814192029236150787553261982349846109619960218361582413942679232337679997474330171085548873453920193713445727309906029785060251255503690889710002748402747184924097088321403189921345684605562747112328905870012815952705549445176239607143728988850024932536521474727562933544333738155711161674965850568511045330518172381541439373440079121178447942100961810498860115596608922263468599922198850189381785235024250084506602406663259235252469308225098096771836013995234890593983354417312346152787425537255241646847232683050395372343178227840748328392443871573308068329242684665950180226063479979763689031991527192870755099347788159439404943926024552539700431562783231094758720210675870424510046859596052288480034644275869388846828493971713751515834653832541326044271687611987971899244580306609868479889484430969278770818529502377923326999182543455611896129174184423490413956790111700577815456487838252492960232538285318212112036668335257645821189967579924660992028321089548234413522156436911674408506467947789421699916339135184075244611220982114051433461059766196382966626597020608950840922655176529015474359353293927295596310282444597568587600301225499208107722920974581270927039827565935889832796582399807575868930591665515896724698135366398075812920495156805214720592881950725045305405984669242639274444078534944908847154891917400308020676214454822039951100298699155705237453431908636414189974291066509500832251899240461637741907968149117476365290186955456716855506230297659314407517913937199998414475724097440963950960518752088260444263424445133866271066823886961045873576767467484661976897329319803198225734880238944728440315360663479310875883731122427755305815586562182555179352470472855416785239489331394978416206766245666324033598938199380013707654084082583111634371658617762653752843744533204182361417228202063715300591860710057206334417840390366587970755138280592187586661451566860177688717196109216965773311923818150795526135558808746760401297113271996325490437649907083418456942869683786927740835350808428688767928385497357765817634366827134331717107855076248215173173113686315578242620290898002792960151518161445231600027373856139852915210113472557377464452048775754870109185538229811643564749700526811595142762760928178898302926692265266021828503745540180193705641219484117317939565114957062271877895261090715416137132806865056904863071665738075631972486687377663129708385956486264394338583501299030502635022006495253873897302674119499136417617446945977362280921415945811376883448244182784621108525698387782711846514051399582148531274164622075067417236918430128123410280189927876901831777917793831328928468040585818496412236682026285596504799992409555891112146142448531176321336229519012465486134410075486043165397484815535042246182782383183143237010493593918422979296439297638871370291044639985561671398679089374186201084154432981760109786338919760111451550657776017200759290969009387341844547747576570084969116728820807609968503419548003738589594241231693772195696125674842159941783978676095136072798696776284732194885503354858410131328366718982667471680013847256054213808685177455981415782789149183206431413460782433535520649695628135476635820766251276101628467947002719454058884744520196759289356486882814471322603396291140495735408223944270622724203726706479476365064723552970871220560299789628496384936272896699260013764716842704324666815619863663150046971432107050485126266274562034174859180356184645868838809634914436510029911952596026709984527489902586124709628212806506774852818784088572411568427942791679606735764704769765727529967080963358112211859437418743229023228112447352260922435446620157244611021812618336628122686556638635258000267710811243156318254054465052767296412835593119998842384479148933400489069755890282590849300022297316259170680885785555127236852376059426127482360799700540459301429716592607215790823738629739615504026690984713526868765714139823949043201760421866882944596971823848432758517300465292830825740348102119327128853295280836293219058824314131474324067672982065318921482378167129299881248355185528496423861026087965702072299235332547508910057286061144705375974000873325417102318788049901746850698029004426352609471048536806965525241558916177331300149184066846459831279899596898759485110288096497225984323454309862064261884935964072016266120881593956155935754658150086092867298830318886714136353030373835358043830048500784665415514659578699038670918210306721164353251820680152777665976433552567177897984815707063596365460745214712953816368385962934428209873873893683313804015075511827962463430922142286397022390076265883864864146977322564491353441379590816879242521718622977324455443311553519900078561827776433750595339874424445379749768995916678121585860957697783063558761173606985567186788675324272824730935654722910204101995521799110767978627541290487156783821070746087372316767222874337937109655372557334024239101269839926354208673540847948874013320460939682063252848374494220721207201207147622206249805132914507520270553847811592884219554287629397441069136691651170988606988954336120407347594563812955567133211397307584875520832606037035653997027759255906489230084165070485559360671184846490842363246516791679821016564931484290724081004807234505702220070835545499435817954689871204955535124766002149921605056036276030442672481494537610403260349040767088931119800618605276366964891651110497106195851194859294649438023718837062660855073213727434387131512050899873295854403849932868297404068653248050592907519047272331460589590835651512122421625549556789619573884692170755271939639758147999099011405092922107754040750211756555370180447441878315528805901960429093596763830664194000859103010816335633499850595297106874188593699692532793810244504805982371040656190941664359144608436828455690979598896913946064109439286010296187145810848760053239269960126972660666839542834517714286660288794877836092374636769902383337732627722787329035248821775973616848203613915208355342879385832558182995596289577916500327668826106028409134404326565568008764500476629233331688629838658529178153143765433398723032235077871124170931179833899626009177563631189657285206216457398196737812029574586194546502782055338779138491516552963971435323682682784297101521794901093244996407033640597324981588845599852200999467246347466995719177190509380258294327189956812725243079135826661730652948112443089538464134076402525899700116468105593679537721204893650992367635289947190670821628014030727609898546476643940374988228605466940320871252017938923062084799007991964146172354999934974082443380692593369808487830916743005690195548819511804178383973113061420831327317008620937768729452599208513491579124736126661320363102876895142161974218863325185931612553271148921670139593158395523582168631563250342591875807077559822882018311024699407111775497680448634661057887547014026206958032882767159425389570027166514672950182494707737955905339139353985348488994325151924635289328041575267405468825353630814028767666485650526257979176847147858374909065009951828939388333144329155525866136076162821183043432627976353405183667798093189707142837282674804183173172471100845104145992288964983732384766011440963547289954325998389095104671167396513984133233969479442186014353339437665629124884292835117065147765174069735439079255179767363609698855364165151547271254806794542079042909319038532553116731575472005993732624260232128109307277171781517546882138458990965090929737479920744336053838123082834836781277897325447817646189114346269584593806292463714208055464866370562494384305559313259311788510230635001729315638713779394255510222426134613878117798237173031329946348094275860607728345034908548150621494807859613871885865590914820257648279395368399131405443531611611369719520959050048200394091175781607765744304734450155152956606670300644133651762707680619781861873574127822384731862405632880003196360460300080737265395797206517876139457893305369822691750390668568481619648215810721895982144222882482084591362398100832114169186449005926924017818577838356307954358329548983582204597714782882707239981553885297678765607981295069375251815088256203028397294210974973840507615544343521508685272260608799036859778940311540884362757806512461872210520242201127081390844319574905567225408870704390910076424796752220091481979893967552321109012113504006526126732113555906208411392913923792382242517197670435085003924921950755609258763866782415747747281605003338609017233737182298846987467499717678725402386373092530706143287407665513523025506798183511431744971431902120068579738361493814913559178856038047787089550910842070835768264634962250901675222261368531229600680742746586143736715752867404555000191983903797501950406735019250480062530820539743296149324678041789094446173941984061034903958801703606279303960924947638312385357303961045109077376715450113298668387006473392909822408156984920965967388582288325149497378143340832215542650975550615778267762590646863268751319612926654738791046507372828632840857389694704169677125438480083786178452490459672390806415399345130138579181278002418074039257367854304326891292399097930555618066814256714956244663496921610422715605632180968709993914993529058603697859899658951210433934814174363924082424358498463474369560775412002890130892827493598827844627642801819977875437341474954552845990948035711149643224545008477887583428799635263278372669190773207652350869665384658863281981479592400176140597528848634946150188512348056593413301145519825689152837907148380493896802198422964015804023807199708071139375384192588103362746219262099467224073708910803443989071945120829837456267547350909223444051653764737569994426232359862379067718055933763588901931300341699924032572750973544164478115454687395893974886930440445468847059034816511803949495563753276906518471751754448066761222806541964920108522131588163302736449170360159848965611334684320548253558885892061125472776236860140815277296470258228570447566947333501615621711964070089279606435980725222428190656395718896106351307754904809494171115584170279712285765001003661174972802504619811713103874502882620967019277867857062408371335625494517570852683914661257002603546164787379196181975747983396215633504278338110717303879903287611049349158248911036459559135806624488588662891581290689561949339362516615684089952889550530207831775887518265788832099707327966831124102724961698376858387968080993384120053203717900633234628178045263561645947934703419948525708324535806015762533256868423287597786246131838825919353115437848552358509195515691255589420059333525526335337938756850336242561962712987927799165904002155008695336085064325309132208220735442430355432662433957835965416646554124784315409603274465169702516705787070810855198729777424231953724540753517418679750720120706030486593604886170971214015089075448916679287086066971401854257590079059297432662937397353524395286222232182613796505941158716731983329674201639858517318324391130396462120296900948575718593160284520080564908866468219925715755118020488780356650579135058210981046215852174102853799921279508153945712817754572552125106726947018009888333692853929337083572691561317508901189994234866814413680316262694610830931478987734816864988361373781301195407085395320648869953681664921262279738561825441318565697025354499779627476378542512162117614157344062266837423492391548987754559534283297783116636366811924392785688585457849918829892263629723228232151746997779672996360570399933842988773197469658123700954093247330115295588815066998825725300529875509301769997047993191157717328827746071004652935708550309717139246948291812286808349848952284130478827692930467465267896216532639958406727097430180413366981601938018703978900625337238250629994283610227912046464592815322258614150819676667041739878802451211967922368897323154822362796514805949710565085436810771391193027118804371697761376690765040819204168821724241636921973891670877879510246687064359783989565436728321745686464270049972926027901583535990543108437329482279839738717250147230462585320740796415604673938269056777619560236291743189981304841021003316617056510134026069320949900023046001194701411979502172948679470088406480314612003869800713637723265854056193154807152361731953319190600884826089580109342839544570125484329103203785514675173393695576256381902700956765695992548655785364790265895619202529136530015496231234414571497699721446316198206238129022989429631301898688098801263715466759305803802438854790063530486126684698597963030360258527106003717787664409522268145104888246542946642490034888270050304705324334150857238387267395373622845326564163079939845209129877721810081270863400322913176184344021073981078436237713784182643233918945412504455933849498191277346708304764019222018331830969948961147970884179304453253138378648779435294630729432773865770258781218725275569194800313882078882984440000899446190808615291136488385382918013960412536971458369082378752378656865702549406679316307212165833043005988038156340111871692159225719274823530149871599494374960495540502147837258191014711432115004260593933590972821157186666581832299188463816363857176945042644470970981106017082453173074885302957786806188993476824886454697323354830684344048074616083221296199139397203408070959818649006786989385823590908873272895043753013738483067118439012376609481061750240329662580511307529901665505264567515463391910949497069868598940882424179091381196628360293642182380607362715558365811919627888868338209401394930908681472468260665745195079660232502587775058490880518123190594162936422969696417108898811724394832267906478855266424149685828832212869885717670142629662311760454688081403546762620716873726572388608234126004590174362830111283083454813159938836963801410161344939749089930767555723160645329432810466326709713350167873044035865606057580777249313898422852450829058124792377348778602637787416139437238069480188995529835030921038838455158233655391052264481545614216126261183634413782604152385599453424148939537878774283073939828224890997244184490904220443113073325925214107629046488867252383321069225868841912433715643582602904153963933573283758325120259119680139299481130767033365268265192163439634943896242001355652110911924180154829943980165097583141881254400165884446224819880741722376306562031163966487866290203864549131076995770873986308550469759458493670324675301034551922876999643030748062340873787691461836838551637793094715738699971863247941108139567847817753467394182894281269827834054397500871623492561495224000862603226009555611350774427567954183125755562569837530654486405778446469874459906951019645790468451577530258049849143844430259927551672813232141955812836736628097505043237866323234018734842253514331150636816181832964294887730956125289491452175145614977465524140213362249612183906877439737354016644477117185135447795260341326016254273535466644601205558421253789050608855554497624228524436161208424846041369127427653465283628651805064008024649669150735899322019353757057071305426908473592991321371251908806356001613291091179774561565154602428403722651189945472375962831361848179003840743648297204371999302388875852550978550277194863240471713556857668958876449233651769961489136525816459348779578427017280136394870709314953417335220173363920446683140908933102038225456430328742648321130663587648494106924588703292377297966339784903064931478846405907841992752431866550476233654799035796236657048137805609724800846511955944370545518288641565008023883997349057482367768991000351351804110519411145868607662612042166040436828456551841739401234009435082579806955463283528686832024099776808961006096512138927674250410986143084081119019750929676464635403102085485356035650714907866740879999590552553189661282712390933711327470243712515121126496303895893819080625743302102494545036849979978082745092202203162228156293993801492526031727665166881569570486020335496030262686728558556368253673814435054620395753740193611633635612161323387381302950324764654437023980330556905219434347245768327949031107359537273978724407368458540416765081663250116395025935919157057225002873284833265359084357787834128015998088377810647344371604289657322298949566826509121068526919807358884188205382987674836701160517778658701816522660021167265601527108678014369319307644310885407691323202171127418750718771357785249431390348275979513903272567712004327864562327285133466611314343447269608654559017552547522133696312185176998105651944566939053077715009982976367828132904153320572910023967896609691948708244013176566197341535928795899300439869102239075463952956256656050559550092294779862853587331812028795778389324076357451653696437973649277098418548794409137474556129722558038977862121316160432655502649609589171776378891297789109089564123549310166801069359146794719949917637966478075873611239709180116944576719514622805802736522447697379657223446537162432504578449920893280552975363360480997770450407451224239659218829347287080736189212844111457870046117130809333998748736907813346857542858462943772866828783945269806877171918618496941294909981994548100008727278204315833006469855069877790369035753971889724495911787114752266239227166168667514272398017090937820340001080860759943217893648981997490026103333776102751191479067547479218653243494146994008479041147771002690781939696519879421256252657710595778898196319301377430415638843860464743797027684176969581777326432362728295005831705256966880824879074159373636542833218558638837209038500053641290695254982801152604525256764562200570469255978104258281868254867638004820293029522011348798730286593242713604366250689512092038829597208702664243689562307566087811865615154132780500210614920744436880254428787795384141310112867316141928978963613064948623766080261318826470615348179623513567752999598778358133640930233846971493281694947092730743151433995198446159195232307458885715309625933593738207386605856286063469958658894152253371254115561729717695268485170038799637293148004083970698491183910925351732403073310244782220745881172954224355861699839467269581715127911168606722073171706598126278606829413729762349910155802041990069105842644665834075556948990638344373809530623931146386070308470072467537436334289816142757963660188603822843855255681164695271600545417189313421761288871458429841316521112403945485033346279750036269665971305346725831582167769072498980149745437358842985161481470713359103392738234734541048246225225687914474371525069714198005330838850348503887616261519708640940066240398020571088751136793460140645943700044103817882483166453200308903896242070407771589999123641006750928668970690767841539081557861367491648200725116798258241010541994818537477335301769660867654715537436673132409261375205206712271707959051513451105187974252964544433756760173443135890756510203757038010919143376019812749407341107985425739291994962316165715698537155188853874710313600367958287134081922375891423480587138094859313167214038636455779706547276180974291597124768406882254358115210027292472125767428992392888022822733674958263205947068496833714398501491063869180222628736072516168397344552746793488426492471775868122316352573707961130561784509469553552772597733205073687690918288715275774818046740313164605491271121736235470928922249449038655423162466872474572993168704606675569225008146138851969539087871906700290159668902408988163214528674781229762954561448826518355438610935682639963372835319892263475419414452868952276867559408930527313039388361047721955300726135769069527782680408228696985199945153746762079666227122629285545227162500761102442729283603178406227842775807709400574896299776319518485207637832047414015909801734685906112987304958434652788027804077500178264629748643421529806859609252897907568943205393083253042339295633448039257232829470649315627012260378494228449056832512856070276531978450033351330730097469997930127581139989289380878257255108142273977536324044090016006690490866646608761738756433347902152700693308756962347785261187786563057070383791304450576374767445938151321834912780980424923119025442728214166230941639054743397244056038851535416283674610332611988890412431067133426390239432844428738790117881285425105149648269949177870569349422784391917968174867882887919548725999761577416576985887846091883709516243024503732575520874632517786495165192694238709560071167191712743992260617399805007688326505839576332521868659613328083168182695202146919282653228353665664752067704933765337865044062446545755176555624236736011787101664095187323492466991854974147550197834956753011000894699906084582230866763279008244892029786603628514037210614977090016003242426656562582259180720021553886619609210777037092941460016541756648378389375570496427549683669357038915157606906727155395154644854332078223380865214752943658015911492404925149818438209377895072366063082612865264787463267444888209381386369427967111722195315080486659919446908201710001763032259202271464842524667212223459459345555290957400639131423725724605366497349211605723511186468825689749913158152058995298109512597768514796966251170847878174583822806237690960915774299107604240021762442121176128003592093017357373088390944948858494487616425870869382168824262799401548072652711517116210875513034412179278054632734386894012761346552403898699838947036816365066867370800129442825632522815516461241076453766269399681703573991875023655469842698472206383416433225356377208857672068105405712580093350187064658619125016743659836665739680491044460414547644026084039362483225207406849852263909465076206613901053961113538495068780014396086311956056529278459241537419570188366072562193474897996766609983005696210060076177389389113445997505685173372774754715858702470285482879590458111963469167980706094743013502518565719628333604752961677681117076470323041125114492942020598032430495799626696453972807258770997733712250998713231855242949514462332027913640672638546195736229156207317932765426231855691253182287929982763591348919424349020295968510087727002860748934579460897238763751583236138118276012283743659333532031823225230651444781257940772197893974344171893598037979240566322486105801761699536019171643035705352698022795133062556448840010198092491391170005614191306941602186617253963270539061483424601893146662221520443787005225277474893697373229665821868422585781239582181251367591878879219312657559026392700834820446695922660254139410045589740506234365225817449654836998618710349516608498897535435165755878805221742690598891970143960685222994045908578650266928395509771370963818913800712851208343689669551390239943904769766828266276700260366732416404001540797511163824018930136423502996764168955397612820046127249994482852316319919865372113222338434761742009281852098621887971902299961079962313490170028919675129781045422889183985609954289076590656006691270046527717386626367159270708777211899548248853439892033962885761641412472746729608374502535566927631178362084682157908196029472829311955375948628197101282988999443314631212386043504528020525577328711207750975531330692966247290358859595459499938088938516620904697585907632413776631135729906634963184257832630627164584829442267831681360073292241442617667517481403994920105224665423677503059134213912081813896032819492813356909338967694237639462686789879283205379634583709669699193816035413407193947531803087464726218318301754881755961506460691114552735179813336443652290128996144776276732241683558741394845604831642649717001707665331242438348415578613726176693897751762575324042474002392682324130969554628654389181901049280628758288134913861310345830380891833848556696092351502575867000767630425770249328870632972122585438848458905178121961524452938570014434206101215026602964945307786340389002307908387420179065849170465332029190538945848929099761316613271084508159652954670169980467054452918856593550075009794850588926596856348371163187076736855953526443333397140817327293601061089126064676572413560243124088776493836285727221572193768240114445570284545072164215363936038899880362528103524930317968904932387655264590361951156358329778452720175466260911017988828522566313626248787077286563824348919375012476255736680648055586755762866926836333459645615217568416431029567575251801847058083271590432757573074686360959146539926700417795790595806385179161967092280580423268396936905226090037065931452370359622844367415614945035375973318462580828212864463729463411098417692741901950032898222025620594738310743263887672462936016323923139495855577311365174177536769278542077306331476861549401206105617950366559262853417255639775283233642803801337749636343921384757308318388045750620129019316104177165808061076466684029363414658447491721380557190124831955159760320138692381971918516288902351701455414942963587878107942403266438754715836860560714501336657909196951741989583513287502792990480437331632766586787599187609207327080502905164895549553894473026646592544045242993893838910913611438501242476247588796831425681977716924383166631318286400874408788622105752044799898788625542192669547571798321916877480584947255629010008703690880991267036463847151595870583546383965515354404708957754510592392429034698724180178957443263060603262915378177482114182787997722192906164119404716890219816688564321853954538183273375868398690060871703355258045965055660390544075733834967328902803520132658221840106955840694882439791804490498845314287662158148953160306664164927914979535735982347836204693747669266994238745276792145439879818901373471861633412060475948215150976348117558285241321114399924127733412852124161570937394681428728823210720315757169752691227096855876768456115895854887199987944054933169824397591746958863891363550000175834417069441438929627391276016783507700188796689333932913970082719488346735294721018217666647140180305379854149730877843268279777008901793953800998460648371121076286661732177501692295633570691087655846209731734804291448013533939521933660673899757389225281244011012266475567058491702936280261172588710711737187729291179509718888012941272070415941050642891755468063020095727020497162808339438776156117775920597836685076376271350695234626229978684233193618585946330573517201059127413201212451055193245915562107053159025064659377299767280610583442849751531703833892629657625700829105751172409895175316681899006584063946061389393588335591197196497019806948498398962767873320669847064192388919572219166878799395265912880115528738708393396327923695042134924483530770645811385940008321884170450678663332743499873674104330277293627980738014362040889857867093400305889237310682129920914628485984911231063481013296742693407568808974198385630417437639558662023860411914359053261103509182642594021118119051612776745491780180465626739563933738122089688814651233450910204346145860912531335787751177200565439228089326740371642761349587936039832293618743595525802942131352279278371496427578079499616863014252297617930486575903791062936137053782178748484040310314147587939227683870471874299935701738802373364460838584298451017598234079012974621535961174733353950991187293794071946584720265661305396813519505163110263820172790634702354680744139462880452528214836679074880295966450038346569772641058979467283263503723881751690954850424928381478627196705467979481904441138087654490521468756492191981222545304228121435180191481802518784919754002023276499604678785237583683242527697443582050232792453479325378255685325491335890177739000324466313763019293694447615387997379050068851877703101155982188515401474770894020632123938935900287967937854017330497383566787817566922410766752046288297807308613520825706974013126199900215735320100373533688187188873578001608317453228621943947222256958781696438146650730353630701620972513086880536597032485769075674923532010801928558388562432498411169724431649024989019909441646774083274616708305789566737883938055119722640560793840028399959751342952984886891790739608224183495230234244858463155538225339152859053523703463041194666601729799147556213006300771385222916381741582357573087411115298555950808138223112302057704389562222926929849553113043342360398255579048432698486179435957034498651070167919697746931946585900664215910065031944999840272396468417341547602424383491582995404298775570068078202185148356823268553914797262347816808988561973458346505441419986814812411776471015231665067670070951978578476055869889551860832206995888567603304848375239780358947553682435833506576216459363114989689227105796499896665631572189385801880792811748574314506661695061786824333250008633004341642174999465355438791007396284778758319006830779801095417669603404646217806445914695315494939865549760202811852237006078026385887760786541495524155477196748713986670159406550663802025213296099415196268748694202015847019642734979112302584652525418156528801595094216782873222945795903806101666227018546277798329570852392627112359748947670748435830086890313425819881931214114446381447525958120046698080178870910978990941123458235770458856241476157553330781151618066579056880546678141766207262795351270950759067650703062958887896065566520163633912724162293425741471659904953849612091203774847356271856390869047718401308237289715462421862860093224678101987410622593288219013530525107599253775208787804674622376989774579347796253049609249842650896161800086763031041641357117541421189200719188978526366237800744394976818821001624114391867336672541803723976775682920423944333895397806933703018042605250755588823777262550922707719380040599107163216327781091088125216626511731214477584830991972604831554935700710423844015209478495758562498370676395342759522852216039027775896051248843426752051376621474796266480928833767788484474955540351318110243763331045498759487191609382232275875327515590881787913408184470077047664275387210606940809208204253813722403654889541524356639129886234803773835441205661543864969637333894580823340689515109338422149040994647039582639918635978370332624644993799701182017040099599990196918864679903067569063024004910767751919067170194713010758625857284620054029453905901664210220964749489586755011308926751690952375218188260529908730929705962189719929811273251102857399558707983395355501536317064040769626280703480461672033170927028032387490821310199516611516117854180418197807746140802296007092037291326557301639477185213595914872534618231720218109512368125600631169412450402842737014938451820081635101135064454938260480688309572070031941826385817267454659240114966443059480178631066074126410148063605169217262585807465281565357704736208370236062286884115003393652269188889750712504558461178468806999899517323600913707636983402883985640324137245700879409619862034080984773179951051062722297062543393905252970251464756952359851328653407923603627078469145879295728430324323680068388111459643885368563854682816647653741476884401415478913408258708228017561100838085019039997403894404855089419470495993261074730518825231289210824019316592739730407039821073582318467327205355554011050430784018230621369928075517876399964646114940316858941138791632374189387835907120808013617068597131627096865175498062072735393134419829025192199965020710301933280156354191520453548526801114543543405686038788369139627361362002251482060529613001721543806608325152532013590151142714733207549908781097438640988789732280119093938565527328811873483243777645689744800892381610446365750466371835962896630026208285719001244749850329949248881646473120896546279502471705909945826277496197757421586972028468576522358685568430465939516210047686600086954691475465568082224408714782195424932263984077164272596186503677308407483456836430983006088326232983273855373655359384771028784025937201994429482321847137784119484337060788511126064575351979863155135774142168925845775349785634108190893776442338352900764105300497084103583252918231768488960037867439041503302659084097411787769383503296450629312840977181365207294227720220987100233913272764224961347882769654376382475490807017395220796164516353880686929736897889824034105498202208182032738755525007213057398699159798231616967199929170236170612820032015834536676622590246309595466436246913579478803104664785558023246753502740502232981777537841356726091895168513561538335476936342074630020492341610910862997837728052171199623678497262169676043334338110772185236663304088226236106862746613093635004819044722024147098693580332646958517865647969235436730456878342571891988727608724396144319271994731378037031179044127732584204492668729104601194454074794819446753472727670478623917743879803124932806407936934034060574320436760641077845258003376009318101612468361090529345782175006770851734018349234461196079787767576509843026438626409260955687435182981745551422650250896368423078021124242550115860173523145879550915794108247400151834366875930941817853887226664284445032573563217456804297774594054173280319573592597210309422722984411792975495350591955734925298829199784678551540376710840279543166567839549909115255223346896131781911980315758273235181290547233697093739437233094841443560854108829212437819746663864099237350250312748917175205978229840790105894242846608804214421249360335228843419689750803432952170816117562397677380458789071875809598701324570837804720149430781291001692539163931056338454409910805494278444062917130851295742994390807329837275154451027035809479044062746481019477174386844020039387174375408233900829677139278870463611694003179612573845380328863514234547327409052693180272334275750698576456804242757965585159659926093057879840788909857225356347612656540284402667972050558635744018835854049867369720849097024242122428232132409664962060723059795864109728826238979477935693864289400765728476660697700497606047041285158722990614846683118074855378543033194915024511481570817418264648165781464896572919716612757469542781604153073969864487591918999787564618859404789493181520954990797696214201681624496038039328420346939925148957157730244584970368823397822542286748589503549685542311123995700491479576543727824506546000649242901468139372001872174391868425656004234196183686904398152910312406228117600079006964665841058475967135805908700048953318897211809210958954154305224936847497771263563715053502338003990505080380558763250614920427619590137306265106254681220904903921372161822338876879589144347485632412006302459650454699225107805912837987637056094396417051278956523841835367236666816087241789210447101705393476009881483608259929830665745474336306572381070174934349800155833624987958902425046989711035347899143537720731050009674899835909047980172824320906896876721501982916409829063888671231144017877628646651374284942797449325069224582197181931760073982348659492710236678879566364255052284203636970536181681333633470305195761665395923161938229612005825868662908833728003942671054725458200622697751818561968809846575708437138474531331493804508415496986867159997122788773101298609138892671836462437081385149538903832200907534081053807642415560598622588651475949470470580525912531650472107520714017383993785837335166701737348791762895013106607431483154532264189156612162449348210571574630038615003669165726949169908829086584741737293201115515896505350578337881541791351556032931131256182763716444386413933394448610953499055258826402526958509183070260735974863889653703418355642650878431026084909923304652562809500922723460113785044889777917605748738329654051291700266786074250877177862492003544136465584066902490833679957969625137480116213680789133259710634284058570165086255146452098124046877934982400308408851432376579464195082432824062603822150872352779251583102034362546472616491706224672927532368297192069213749109040070781061541739313631108576881006660110483244003964061174381230173863031220814192909789464806075266983718996805870688057285637052139949045473535090700030984856126395824600392548518450109569951590921930014610243837747277022024349012690959078509129051881649439105797500532951113272873913348673984820108475501921887723789953149853855733743567152760354835380724876528877565348716273058134104183193367857317485873169593589601848055543027062218580758007882467029540056455480735624259635434236594831296956090471210217486082388382564739273696924364123897429017101236569851212156974153389828044788077820215092836145930366176716891543093649184780289610106400705990312387875582444656751817430809876133342894767902236685460472901244937810584225569382684664696634138294509694541581860385757710069616395257277945993566943715129216979332514782082780397373892501717095601727113986740089668567307426881194790859433555745862979653800547827476239033626858645561974046469052611089463852385264333339768911857430414735912952058361832715359990900141005858015330402829672825501092288676385273264956653896016583025833649271663741907278118604219185173970583900869724052070060861686046874274585835320933835268889305650774468686084298725579704797708653606686101706975139892142945013384522456191957830708709979626350798520152407714525939851709569131740349366968963573327823415487641822352925324470097773863720056819983789992076164362878556090265057126317450057822700444416636390087464244588688595595933107669213161312647046421579208952971885146173661344093077732945112616913081504068584386351972459248272100229280970474064048192847580202795018259776925140515076435153033621968809913336786064855113542927890435466800668248689014439831215472766326485133374597471396503458502681164482095652336413963688987125042823718814230503223901183873890575088772705259310302115260653054205340166433521511661210312655999504446648659016598018267586321849016584691214958139802286120358877949302018635928707088777696602328938226310983988046542334651593637726061166668147970961400087988795695004280534345638034926851856753549154766747874252250837067080684217931275584829822226481057366302331388412788196715528861544923628208419466263173188863862849721639262466138677362868901643980911111273145193844118888006561690209506028534289074761990996802489769944867393653229033283675532650860234955607730909631331610940193268861998213856801465623430402257870000807525481894901254169071470455455142742895948537116677044543709917842741100856274611862894949983189146413915901262255062291180965499177092187488162670905284351328065974232139373586963636277900857112381372946813744998866986199698424917142492180552351128950897549593336711836592763622743860964468393767712973661156166626772143034711652619866831704540233404416312491849116871922886537759594582743257244282211539552195839428796694684193143998044673602698260437855107301668648797630389463089706453604682632638333993347196054121204147345669243285013432836451068052460979904298321309438454202819446566681186434819874030554059747292393499023959277735657592699406105203748940307951603209321859497451160913275969035826166405098918010876868387964615208903721502395845723338709138051046024225444956325064015016391366171881016766838214109056730598857087417438828073437901896067220851251586031854902910765063992285786389593696968181493315638115452862491637148763957417148031407486198184355789547650511738338460073280664757173947401933233482981489053984605175793134454630771632505661449414290311301379816131358791056032943319800289182394083404911008030294112946489124657931920134266126749554892054853824222841177833775914167765663875440564413985847626397221300877661724961171020748189874251185182261113637723166370923543208159234434488191958084631688101120704718278910903560165133354513648179535911819474727411147434702908609107245650941191190929486079988180103306275389247510393888382552634668703519781468049615837489900941978665294800853596172981638956878032449326597883449612129251732296615408525793194654513222957751021471701263899558437545323335553780983609070491493780929849210126849304603885025493719455524875880634366653743235853480576642146221367903587976332699008037794093360035921883116055796097894036649145060433791452668553507856415416527196136072804127107251085909161445840159747187159401497014556225892123072816258986896426127789834065198325818768901401105998054176717176098538745098972051240737889239527587280187162714019596391740397125006997166004708624975164825518225391750345803351586109829946995955051509072238857946554848137025209272447004799186772617322209755067984815326256763120541627839680014917711766458895923443230704709440775267821712851445994816137341245120616956441084156625793066704960076609974536050075214676919079058734248006705070453749314159123802249236194170302353238627200290408691002681893286158258741261693494663560726622500255577433978632329413656385180740201985672466595175537172417180358800195598118385494416116508697847973543078813920547098421755686937477232283307287691119517287016062791997233121346755504193644503946341054128575096757508388794303836711354234916305786261671121153316775907224017779422327269045491271137439172095364829991915749569937731634926132743895839827260310520554273335526498776890366203966602406888544822362633686454467499812605855426406793507618725435363378052806984947870696656100332868201435031522879229176268055845207030450520467183109773608570453866662973196502575475382511499327134214795487835026748613385096700810818302095971813008041493106396140139326466111838002117378605725627983600365524521857651127903356901390253710334815834254652188745905654500473530810699682114026970446969534047195946963797286807099067654997947449480018449781739511480380346198808048055941312963364168784606867991705766338133571272041439420601389155846760092675071746389669480573066924514527969484477682996644506915138122136207794030852416197691319700193502825314084809619424694948424031881984239804491942789343708777830134096877746038031095806111577256783210185113851048143647916651945171472066763184516282770065045273798528150379043985242094092207875230178059171884200463075175171064898293690724419895656008458382826067441850037432653508603553556531003898858035431847295530965376109073101013189913183683068362971805244248955593388028937767572994601801039132671680484238849261264649023496523754468066030803423473878677431453524442703891446761067121693199394634309273643060929695721960360240176505517701274400111862202008567123929335311205400161731585180307200017593514530805643144598801608659577541394151254711229968383426243113980507096807180987697207672177265255599553316010972157957518030870196869402036030123557777019496346693680218490999353699092976090066403707528115054342692939703986602228870542158541158966504031011065963343500099131914832485501462855800114811251073808346870469009718743559104458774973171328655385308965262759113947560346459714050277816555135992480213610959718601220476713223991618710875271382567858412618612601076637451608750883024798530646375839259664847572330246274499863791662616004231843090487271942705725036687374808998735139668739145870412448605617401077602085770999235183939587143218716325584593249186646069617982445810045116023160079276710031430354314729448912791947015416219765302881959721431113485844893869658626084409455666560235696037869110297312291796773568424142280416986509967703210845905610972081700802296286845176331637884704856057400256232212446205224489951981886243507034571521229433210858236427203828140498662545944639095719263344273818241531670368824692717510572074945708216287316320317660396458225200720671752181227077987953307522775568089560367219919003543401204916332022875747367965067971415123068684870185162656695794270745805200220508294348405142308222858882250426348970192476681453597892731059508125557300325691829194513179859720635545107763392938177420617421002385321781945133545664490731342716586772648837764409175204538675559014686364857979134686270838591836287639251002060906975412055544213879943956960390570142926801109105564950870069553328825075996972354997738290935784372948268154309059328891856184193152220162022289596107478607841734558160577736004891789920288242888889246006400332763973084400909098474543566957732139649866785213050612060755543938386354639526661962831888286986318695565900798327151556381418799299635436549872455913186049266710133135131034208137991805565672265765476191898756443996511995814667300863455949097574028931716193061452811161016334291083033275408250421114632030027678290901187399904922795739460864207893862596940873573459716384236269885724990936912895130465849737684719839396916335206707898153321904905502224916857723578882756227400630828354122160142889388693756428575340798332405833914117112734417288025692798782254926805192656181125059672843917922457375903011554131818795483378432694175097169123278241192596121947089318341528800976654212607091048501492564497212641811964340521203713220642301424593279445946164324978873094728266649934847873647938824057503826438382347664956724000102643360647448542029869768269437624023915514700120285732592465606298281594185396216762531574488139600715433944206079451635857444220572984414867989380707075423698004502395561053327297605642000147740390297606458057157003402230689193986046239433592109971447868656175184530634934185810756772990177446922491326757382705415259035766172196816775907293649243017866896879644832191807929796168279921185696616768373973767107253418384020014073452164605273632068758506029857326910077188063565270730201581259652835764157065247557081052993862321787801850669281197208310868974385574403454371813988215648151059703716212585911992138150742192976383624588595425924707058838076457242053675835009452086657020807208655715244473531298115958716466931258472813747182283753864753055636115140488222938192328362348622253591029574090879793753955898143868983819029768592218457964624951658583100008387968459448391352096716105157460996507756123450115364872690233670236611464796005146868626029825668193741747952445028773726465084954822786833342815660176319467135903132723319575109519109045328225979270435822764681512932842854958647001269507639299124730508516934661869259055834872026655741785783765875347420657299975841255665653331702408533162219853525840412687486668390546835285303665011160719858894191036622199613828639529717302601633529515276632321110822665081021034095273162006797074313144801238620277404921553131619739832335789814870502400699351032580747720064116310540358921368032989302346963794679439286969293939311816267181169454077791531992828437920188645230348037684396211499922628440674017110570253184443363814887381999242752803960023980639648621055030794874338442580598962441044250957455930349159201693638523286081524358398075757723782610669113287610031287202719374710177541565774636605281728695967235197083333142959389628891864451216302362334709449035689547533994143397634639478247397258291000411252758301023753353372789354158988263336226951209347317838601811207297455361539314884326027879858401666123849598508404341510269367021823525043891182724358023429626622727920452293534274574095496442643175302605524832646236529578741832083030692433234719353532841141163620227097323333135228029160440335702333287691352685796337730925995348446265724089027086860636164356623490898100578619496499111968966996409587728836935025216605806767506163670478024040251448481286650893837279334559113185989098244715890269423911071788629464486010216121034923697839934449983270975997929971092272505393783810030583846877535165318721818141738449331218275388560913841401333145327979155988454902089224135246519291184311081685684778026098737204508278116931619555108349132736993414110348899332408541485815905584598192366077105553624183332449261776157409064512728712590386371526946608773454582083720184656595313594118619162646088969427263999257678522680077717698314322805543024614768603607610769508799301852038607610371391870832870573921203033312953866388104748251067804834013165946123864187940986109870484936955262071103898565596571856957662171313455268883866670273808131601289302323859160347403040269858134977852205771336271854262089170245381099461800723018642523206929081071378409717826786603717809138911056021422896350899198821521321696270367451690684666405064582196216302170831789614336477056795470088927651884660587954314912999683166863162963812903735191519553749020720245265532894656080770948449436771881615839131890125413779234926699261865233286798556521498726201080941433281328171806299236395814072084950423526278065957579443866406172184915078908310251681040803793595795677534407866000493371374737917364662963232390910944928745096831955658907604290638663391016930085112373174739125480610647616267849956192279647162839435653650032526699565320655038715611292549356117488391122021649987018385895390305376827550103523052498463047577028093269745957591813793422343720463891512941128896585185787830107987614745310796291823214799278830567081569717432552223022108008624449158033135211321112631498653831402489798532896280982574409458349756422311598292015147113756347423222851824127879822424186751492220408814240739949046223933569094366738878564679262852249486930755155689638191527274200862781498990165947691290876135555249966236062556475897875689628052981709424693873027457313007479400067642931336299621975803543060283091982361282692503606324627981316944916302163516707025238327445504566814614588931081133984819798232345301415216824306162081522845201275926250176543285942999574947281125843183086993025051890864294703568429819498026586908478312095321994441639086451346518795792028483539389247030898627493393372557914174792026965266291812580777156430605461982746024123683609413662756009838050399315025286701282385775290525543772800380676405262603526905238971794752238850185353730657751663258241046452354379568155709668557613722073216578411027060041442178185657501073905172722321427314111563591969845134716049942815608100286383042570501249855239908464166042118741920191530130870682682861380350138638030447071011622181923701281973854150925148551450259757182359450438846369637531395306472488630144995744017995692814632350512590786960926625416802099673319292702336361213227496407058973759331333225180666437619611989270981435907900674589708079970662962958682329843719755126311956840982617576421228464438489360505199802487022064343128669698259653698931214020350702500537660118496601214635634701141430247794221015463286379466705302918872438027217420526069384880924304900889205893557987457445782568148698016173701781036280376338905331788765178254505323333914998800684305784457002870665076574632102511304077328151213467009855072854056558296364796363751897234454134809059675578278008095523345030888705002225444484889649656444031277613167933158318073474957695053219237870245775003760219935566404704978666614220412439648243405814092358474127154374883767254029656530756917199340180337447471217641437157034542732740096870480572496426562575329893707080525522303805147884184522966901143120921398830538905252970276825919689410299902337954178650855335945332666215098583944869061052733246806315979781544143367966773988756844750769761948058859740788686561831735710871364132901186994888434508463322654499344876751685830035086644383749071675440296735844689711733931695121525127918514614187226820935492095440799748205403653913045658884778268878753324363231893287337109788296161202739740592617542434259800306634076979246792469295517051007957365473482728791950478377387860830520533115866668584874778220926453597278937233923085103467987781421605044447493986971152688036213486321588971991133346753558738841887902443588783688949026529245318333094825305527784650490124576365925056200949194219022571430581375272889320755391477518418182840537588294967524170318883908543203078530563397499562690505544435695661152557016176151188450291655849782717266815797646653414293734701323504885611551310326290040542551463064712450811297258087622348705931231307407575407546123658484609185915873680872944831353262935337739544575186374944782659560624118561121280849557903446768814418216931248930256118063972948805933044539393725516011235496456535640720637309045308511972078777115110230023008270587634567843358176042741790871241795407788469435174934013840403745560174526112277925831338284287073755247271608723720199515642791984564447441073776310401272259472792148806819028422870601680959269098660363591521025160939279777650202203813634686809682989240154245406574570564502800813215057910149454712145221276138652119658905783935479950823913015830552938643826952940400228525654067611046642459936237228914268522740030907698399157884226251727630839885749789987122300707770058335125061413794622638667173782741369400619917262916832250978709706592344220865905164476950452660934074924609619739397850879088780670010831565685047572727076503551207673814289922098893971816536141975428441620997576362315997077708933807102838463963818224525463397028930612075413008979531466220002422746727285905182238334623012368981995704769761423003951214803883820573491051356247373415044704742955021373119402604589185191006181063850358836510565601160765597584724335134896836427783877571120121350008468269261308422132045591437924853399190965737930467303150371392415336712559664257342969221029467251244832021293861655959884920537404145672777101307682720622023388487749101611964781281699495518371174261486553588888571825251758592456417833625226840478612275610946633729767910289045472949380612121799431763946298441463712834796308932553004785266736921549499887169270602543497259473736774043150378000262090790084824756019109137272634304911301602147870241574265877442668546038176566521635660663484665851561899838623964775923801976078977926384333388035382220984400710276139724930172987159598039003511138128113169492203676792463986547267003506055676353612426629102496270460395447137236150834281535806789063940421952797730643376246391438488981627252260413196433095891228687066336977399580746722426049802012218456431201752663729385914308498795974744138068014016533230601313530351971786782126642275720605008248211039365658495096146515963234657132527212465017955302111656736505779434758870482254180199581412986017868322072764056294270437897355331232034831193819140565782119719589825842740374708885285111108390108705672091839753132951334280675835457653389864445365754743598269682467459979158322293897349053855324891078472185130257466834083478491158436217959897890006314966537024049704845259575060800247101505156548048523322391967521031454042970555876749107597703157119082067718082608984286435300658449562334949573397995353190584753142623164030472991794321225896356943168392393446536543337035017898356989342791252008350000815529213550753480569550704840327813006440103300659733286421894552665876930519993008599332203239591195497616780129192730210890105480711798269848807655081235530733371082112585133205864179716684225472864819136997760226347730759398506106198769329019978750553067940820179606122868869187285117366171095454535316004919960987937540741552010805184207917345473340734835880843740091202385532528950520633302405197408612890402026698518051256094030797200143632562707765931833050908320066769969904894714989645038383864324390849204082001841623530611906356665242772784723216095244311199096033161354144364432639021153638842189199831042609836871281158307342881459394833596684856542327218438182299287886008653524624656918535494183747896320869226514558879663756233525943973837679394407696631056341419600804063668111292974439822993500377847823449813282059786503250899332923842246587185824435674887215660649527242491039517254200411249895616806958144864345470078823499793060893886056463457810727265174189839667554610378286258606901039985404127853260152271721678799711199154840451468227070889760415409944471644977509616134770555559606095685790328285344970852326705633413678736836196334165859707450394776513273551049610796306767295473468768806149114036102284349612991463975119054014612812596252819630896328028863368163370894040792129541626613604128389093878420497111393185006042232215059410808796043345919005014855824162979148655662726385791768242829525101039565635005005762944839472294566789858511508550595350345296939481342690330304070039087982979826436611243628624491498356807780656683590489082222344339478703957223512586010547960255010980796031060564678166865795901700644657146289493324555913839023954537849115681992373221349256974296978259481008216564256690581871826019693353600366219411278279775990975188961100368959016194377924900781094949083604194198965825654423202998841323290426585580003155400943839250137787930944592739716894731845476835735831074648633084667823426202738931318262559582427214512540611980462724051496798400584396289744140679228967840436780447377187229979622801503959112734586335348441464611536758121171313659148725501445599598008470277378233457755053642177246494619619981090042223313570389428142951701167944348828515938595232338251882551606165603117969543010288428309727693916934193743876939874101056446105381196568099036496877429945844606446595733307076382920454965425370102103263424329214675778700882975470615888442162462513574737409044195137492199947472127606085060575484694029253285547662928722301474128053874377276081982345434264244207866201264231355850867843561450126145610240520652675832491713042299214046739027864004858921751305880071706618660560088245358546797283882332249741032977899018543132714012540566915752663212482767734405110831257511915396377108551256413574050834064167194745420126587345490508607226178537330510313180349092163160870764262625850711779492252247176860105680947786800536615355295636256879523639426978945682887260010639023365522988581009301711541763554336720606021549995761695660176326492740499993112704092088432030802928555545166695590382604929108247215973575478053295673918938519733426888836098560309033941385914942194517995864673381332122326966394945626509539201812126794065351735023508309804701310286916019221057017561049115632652906097448111205042595008320348625418346902899833370043031620931674441826014360262082554475874767284567462952171844554098184688027115936972124124174788719143159538574405546531600447654529869761280393462462153155914573833571978180105233806954486666266903951170663615938270328928928066747662121389806077475038257734235201428307613318394073336599784742764172095332184069522193249817351367007842601367210942257718203637138646324557027860897724755283718455883503967274638979603115120944380529494795102851490683508782165126096174221885609522382449011256132279817508246692226742843084712946783259715471731046399874078290704114241016886511381577898985680832960604850162675815555116569351689790986533298953599273134618690748126501987654900520658851034793120071007747663309344870642088640344379073525663045337135485051476844836301406795283504272541935960661299542002794893594026249700685340920900603676938074220364750271011404283987606703302117770762025536687045744028795679789521238368164378837268282608372040671775310274837359461029430913763895861783460097931971126572198944966248369907487597773419304404177125137369851555959040747453649428919399662245838557930110766397589934121300034456479222441374511147908770895090748463125849433464188998778904573550936695722031144108486836776717941271537147987000511405199978836850455383389649554149769513527759787697604841900619918108409813113027327260370754092571553675431958394429350699220555505698916889312755324222141716351138921186646975427992901163237760285698900599537684238154820154784312502848212551153511575757247571405055486502275747005971859660248223479165490004669998643087512815927020520999169107220500282437941817150840551516353600743914641664433283865612942291883636518650506124032355695179674070227912530241837554961734519587455342870993795827301337723748908063335732255239134077633671338587776727770863686634133067854555306116612075918905114354096115256423036303743607599358965125650846051266993890298759262223512437025639583881114512716684612867857446350017377585624246111334000726299379341760134326132638058758819092752324108905712554760210613145951719946147677018384632773938975511274739859159269178317020022549287351373586490237583570558785896487947059817655374688250204247337833434525608827317501727617826969526440736976030863859871827652847181204271619243694175403174542581738954299203146277575494945850286317910952693225416129276438315209351546978509513339956231652869386703062433970259032563914324343454450088783765562101739026929826680829458763050412794606228375554391272432141429277270808036162785742287924893388895070200487463065029194243342173365338378412908807730468019575094993003102090333233044199567934258845023621979058791053822434731461934094158882454985928053422588167342768363548861620288349776961829708717406270867844556345307498312390081376162539064770220714244132922766845221412238330964046994412031364891013677124278266240898008531667709143315532898269653739581958035668314827014512176928354731080768027210561970670525266660878750670927515479129277116423666772974041697656648251381361199643003294589898497248022922709212669114788586906592155962947882590227870780511881641781025906848835521485077024764310445018980093501990848883104770686131662022858792586431812909673332312357223338163463289651615523551722182949269240936367714883393823676021854741846842371369841899505693794900520473921664387067117414530139339855686370175393346431733957082290305747467370310194075737796489210160043206500438698787619064794564723892740438965642961616285044316181774651435207459779961000113216768495996988846095542674897250024195319920030034745512228246355472667098737838984152370563905571391628519440910867638965741882837639487110491599522496484090786417964328632444002096238992100712840826852177670054809266476249337728713175531967468706250558526409210340067830949180938089328859022276764070027661460185553689954179075508176927128674364954001226149365216352827780854481437297433154515884268006930960117125165403669251402668511143115053668194525669743783590107037558865676733693761495603060886165052638939482339643544369648912314062573583761005364890448346164608126915756141995163748500042187976680014914191188671586796259641696674004920275786525971640409252864897955655728788609069218943982194190150779769768294166874553353783824536847406077702742379224699271843247631120583131810066867317762321135372607041295449507303832434769153835070831563438732204304181368645692067127333300216906536102089504272045753307442496245702885963344940958529275015948771417603004428279668108669535632517093024316259557203648382883032054675101794981181241840804035574839643954739938676378697258981583995113768219949666054187569487736717580189342819360252771475099686168230893243067819042114215999420482540700154907158346988829851999305357269632163254603942422741669146929628887380002835544166242672144332713568647028411024590271639902317955834523064268859454429722953476036215254770954424118584302914097719229660871829599390936429277004817369975251403665082891811124058740108889709488373536216106816932460414702126746664835308352161016589725465018791924735434791701648768326937294747938659020989693575173088666230196032079660892386812722180685493991649070195072352532621037968864667571041842500644875670658326097370318344245818414486294402825207249448243924820835562594103048953308616414691840766831060959784044028249406312336034309236462118789865574348527159925392408800535014087790393197526528982328694286505612429649643108239451993707704909150588302367423056220469798323827214766187876655042853797420884122569042168076185389810302757169684713324368222685083437091212012494454423909761269178738461449315900638577722523070146854089139369223258743609110379287942892298409144026002295053409901496777530827322558602645740889315844814615221085927281447543296061688114530918524796833950793321452839233896053089810948110136507957014501318778153501640576973326534927647238501500434962075863391366728620354059869533785418708853433223091892108695068877939791179451058522164917713736849435371001353930663057757434548454297377973958370581582451012494595766186465020413042387030406653955487955027177855919701271357733813539478501634737109665136104028850971182962342041940125216677733272698509366885186309915520254784654584721972806347916440921859270835409435672365319016097817394299091394349437388695341486764985986705992754215979885423660809827702379417669486925408172129823722033174781254133881295583878480016454434352225392173338000510031245267761176233476812518536234263072255090420641206365873765093421583074429816650102610783245826618056846178184780713548060910631302869275770979832833218815755257216567255032807803120384289773415704080191555103139400464771279656344674062992956273387399851837021176701365918752995829708846816204540546416897260437034938034560900408369558212517200500569102140817442258100238693355873489366523601146378872197124691211178702497336009409925974008919021638942647040530123111831726365484112964256220156636289230000461203671454050687448024826346417898123175727591344545307583527783137345638017473777100861956199262608881435134280147371266334858076868130729723383894056491569383833108548028426569192556966969386237270649504267210439665813165390457102861844844399701374706379392795798733275349301453420973552058714028034598662998117782535222689596762219453822907786016623258977725047054510650599268585242869945698515156073032970733648843799394964744295641577790176081182207898897510620508870462883204888372816796692723283834251273936417693919584171796295222741762845075427648583559422707060015604952232600627555097107422553707265383522913399780123909966477517050247844087446550010449551253042848888338395292323899460991299427108744939501989136012621978987337791452984265155463553501498330009337223250573374509585293519994643432625353320764305655268246354548213229150566963210247875211246223456523905362617385800409346123110614644378306152659448746262344077825836671944087936341058644113479133829538630213294272869982503462687423257867614711847958783284151834103086685953833381546273020060966057829893994491543192611653437854805883328227224131787671572103062510780276293165712855740667864351693156701385470675629026345921656880760711220430539734442537868062912691913999884853799651477191701997940580762699306628412063181473602135284164638207135112849931012872647099508437293199572729427990642150986897602527260766825445993313921993015741621710211792323920234316422596923771508647117137088719021629580930720468660227930893930592293883033311406903999874446217705064564997101047371881996825023163188709566163025684444052763907772017969958633084246256473548619814811596454383598324622333913238838957065074928890606901326441720428384812129035212923123325309169086472205970212777164364192280886427335923273748006644546721494116645627783578570699947701549581569662782681364066418313743741872999157083136838995170211150854474902997126537349925300214463632901729514591871830947955235428695666812947076876190477268001892342498322352077377865786321408507210878980075734168060287393327603655360691380088171360571890227921177160894057482491251751537839371531067457019995330304798312346350598130483635901070499404609880433036263675253599648462348892535351966713836076530393183097013652107686121350684281970277867817284411992245101763721249912371506172480288548722955476987726678455268546380557321614412017134433822509318455694096857197602999854281053909416214427626875136465776985342815867312013913954903542892408210974918849452364562832255298086606924295602077438337574491238928415475158394297561296969667640845900058361987168243451029556343331583649954887962063324262337057024760243466759611667902245399785745033951082629996105633628381536048982795100089573544829346022933887053777115010419410177481105368635706539821407266600668134982591459612367445713597765993648968675438950109835500573610725464464221499467410900852974441143408177342697869485669377353438532987915873606695248641762102605977557251359233255466378918072174019849069920618530832767182121628061051610845945869285420308734626550879511919159249081953898757533078193101903775807123506890425925701755478358941811408200593453328765467073488774650034101498415247190659852366978719850911063889122504388152791186815287616721950991021508983975257688212583807617635274649167267460234428143814448824875248023530079368091419675517770518783672592377006775254472161086509278487154793520609495039092099446034014368636177518631090086371581106808048782856045829398019781752691884591753273311126863212206217172967927669970876756292541587083568974949386904415489542910722549458910061410645878249839036940020286107358218094558543375255582690094825636864857483748319065860271840441384148707647335812864797700562736821047112171929649155431725445024906694244167347366067125302145712187747551977821884665678798656659586562516449342475675295025160553086531644817787665954248549343360506578864921092532978290391641844596720443009077850207005879072811404750178137051041095895594283907156999574856520632415548267948468487988058272014596412741948822971624688073847082002412170430302668592681822708979781022238309990560834423921004714003267071942917593493734671405584257500134867979495324291791823974561004480727456599036969824599945027999402928447102050994851033950035497931314102611613071429106418801493821637842579501333807933181163458747603342698642572861398291730743277028690755556600753347849605808882889743628335215478373326241441004078126786921441695520556639647799390365582295070774578347010968836921945061533214782491173712019999405008541492671276563773273695617668840708236725788034655975987359754634981793171632735853718205661971824075460830988668445556120756357917126428212097356171241403222183657236911022169194576025304483223514825532175125836556853527345246495271872056421824156902902312632385233721865804176859717624564862218863096624004054309990064296273044032910198656753705244825769650393800274704855485921389492778846605413463077785009258369548038288077094489471473551115755804511738748735112280287948791782005802924785260368151458779271917282468342618319900562559891950198059246655621775753858654358038756735951414744524952919611627649544504430293743101817185396366778275186184645403187246911249707652062752094040844723170396687080178426864266780829011480407519452648102974783433992255331726164019168834181574423453587764968638924720424436321747374664249112580418699398141031755502016238669211969362853470691881867317691760166877527936415426084178490500680941440657478681353343619421923215772823185327351038512534560373129998132664171463154933195670857208791181470334138082509745868210675207693272770078962790612723817547795329247845197955349773574984294232038849848559115675622148457967570277492129466830835061703935641531833339755069193244494213912047058275986732281114790210880750454656088433906882639373174788224416231110664740423672329089395368298988855992948087163334055839214086959382027604305130120522757935572622827527379418165624513816132604100300947999450728062416464295665491147394363352368507307806570444686950334798041639074064244709688665257462307852596416988778366049164015153788718779468598689792132021851528628218771828590470815818301689406171091055208327519398053768872001537570641179077223831870552262715226198865668771314722951752811835896964183361296196652044872075592389243373748336366528929913884681361238147797908202828722094303119481519930339826673169738515498623403486638041167619993293926110548460351758716724828638282415000978685789007976849716850396809925245025586888919432017611504074643384137455807212596352874761140938162822481424408623833620347451361669294589495568708563040968312264031712274068788641758182046990111313583476122960959206605927904463984736001397461618937314752205831104240428572782481603836147253733367694862086317815192535052815664384323688158378446369549583124691416211817320635337099549727872403948659094450185461181550573206293879058999790983121289859291112929431788744116386263981628526101962020243379540019738360335002846722204144416082344665626708381734764862419363123745941998832860597078916018171212166983947176763489883209717197033606615439611430997971765833627174663315390172834966059397866204922256425682348120740905929763562605372193602613703413640518186527475098600217608494734267745617480067997853796166144222462542881118599904755952816173329015626968019955175472137650019272341802223246488927240309105595547863300118568922059922229096627787271721357589535892905459896201201759594063357653787084716708841563208426287483976148124081954353300729912213312873513008855035623400452880407622571382553709159224343104073202385872998444659178691646795959479526081391637218565624547824137631006492509216310817998936170408374447463045945729675649831890829052778913572336498302927636568425158135294546020438975753483654561520088591800856488954782197153826238163303589460328755860544532747325938176521542230577694486164661054629498822479944125170792767734863752681807832812452476459552478675869566760497330974505515178316067963470777743114969876701650563179442766621604700378132859258139962801542778866601677240692691777134763538097415883663148635173749852818422044869441251287406882968552889900463970658864753073871492621891592625124216509500737296130995431095156053983508012846662423675751475241720822397951614367726632141153513725553387789686559111919574166246563233993856020026740880200438732470876382369327738909546262020962991037593778908895491522582905923025525103854008310301183864326978956164497415788984879306780417970848057497441875172644116497011804145599463186883470359858200383378278815698456079857120201981438340792016532118594635188062569435974680037676708477882801165316738507094733132046142036089063166099953536752356802907660366687393654833491059430952973100033861158850203744089769445251104775898575701207395308479652454204406705403928441647113122970794795713496619360610356526476344452376976096025215050813306356359893292099414555670053426912068282256029779750134944309329048413571287696574589256982475208286478828934999657817052467374036227649574259668893270511979866985094180426589475627760731279339442755880305652097047485686559477940236676284214066729860082201597017199276785762863847616640966813964866276308763507685375877335395893526863020977143447429016928754702792290429463156104076452172411235762831706334863563525589173038704689303289413102188126349561265137791594329395882524221059580726841118322501003879234899601132472135375903567908705123268615841358220708223094316812358143345199968000131985841271049935897917232580533743399869337725525067921245756960854376344200798067099851327844744011014089772292395910304321397984299271401485859191332448735763056730954457978711970975728243251598915865148213843061033580483358294908677474575214751944895803744287444248183357118611868757550568735565461825167898517692408357924888790389794215918805429848942451331081692315641468249243861029835709348469160580280895303809332077347701033579679396372757155850191089015004146818586912545759384479358494108264340466147131952670167577573017447128681354951383245682160557267301013986390371422069370837077643924555561271437849008190796374457500798176421703043044255461700022320892422452281817296078848905799321311884839218815284267099645200210306107226682742807179445439514633467256584350264066473943034829994029605503110307747728999583604012579195805952444020177730704186764689203853608788246388929035532526099317210123637942208641498721139202010754427349362179558719035035415054473414375965586493952899831139352305490713696691050536235703349522798576202977185478817824254745468109195177752887154192205870289866436459081476912423097702366692369628372484842137232157252076334489821452820337236265089992605243907288935044847488151852904270320086743139619853882352609102287816435701551418206088717235102969448002811344230955593375755340958845760277843973003484821398904382714300298335315495642248210194601276010309182129079632177641659208832550654206140728909292414708112274761839968570358968841700484832197184303336481878869277559348618242268014029072226627366242757375459896772554424631888150626929635276957315637837450069570070141712448188696188183772047780826306786429954652070298087800341349800087197857131817042042856300070343683757615239993520475936555402767221189044069153998060510869807806402583802562006434742974734958560312279475054639585238944005140478682766605403329727671559100229962598614182259320590762165189606939447749744632498381147591035046484490119287810780349451780805570911015914804841910427358692168208374722459158367441042995600608878745411434417529956323343903779681955050712406514408589237221678128309212471936472643106482076307635304905246821076912475195878920216291977014162708416857123444907033826668655479907459208351059411782239581679082679422542914817083141466358074908450692776014367094213875958285485005064365370680552659969005572187228162300331776826305012635130452373329507715759115037911883951618526282694700018117770994477447720251785394291967601898874247096336018169497209419673662001899544878446773564758838523306810228132522011974341144844532620056272159446032171296629932511246556132913762517716504239497126546819806616624048234460924403664030801204789447498442592210357245534486718420024623667516703233710125005847839957117899204851030540542953456879686594272820040744573614933081336696894717595323932531283439361442507829037515565241286573900280745108608066244652545661476922827435989540758989333326853547554657941278790447468136575409973009574988544489053868194827864063869001981315154433354557126330888976642154105919152857638613013817484567825110796002585870351308606626894247222089036272158082373935060199687520721490545026237041724712245138987670441695799032053480763008925120478870189996237303871324839493762845606917417482621760624192946489415646029831350513774823771223199251408009571062288791731461174711291854320586491914643344564195434873789983621644455879726660691989899188776277447123922474216609234630863840563763349211295112011552949093447010911370873059690125659366914913583257022045599975288244978429446927371136163933002275383155131968566825802837832020417864117806377908579994933146037270198377066239295489798224496970543215470996771258506221946142853509751358463247316966058740548547419794283184668796233579053805170181225732123491678678738386921802683447057326456389719458840619153657974231911242313566364455233030476377961357080770761419805521393454179943282008155114369125098165527844142164681175738638367087282186362636423244940438257615394518557125939201944305997707433981121096181770076426382103210805751701804220129605673492743807612225868164287693012196254394644647168346195306873885492956838655648390697870290764779920499849955946279417196476032744117936637263522588200709008423762824889942630982052470615222362321180183132474914056650330920514114301233216327951950372374208004164979255937146142292941330781936869114072655690249050877816893688033916477905350752909031056443343040324610395459327571297827633718466613263640378770607443837275736989983033562178131033991449919992035532275622898858004634671096617202732871713983118005083446820956893776567833674583416144557070428866063718508387829445464956244285895766459997311893689556068833654358001225559757430621678379627817745846747128052475302027133703117031479578897350111359956792990780815587320660235893733736626931552804922418602416122006870808559206262620407211028895725970933000074461155483093985983678109057570524162684340719763472690981146709059167026967664173287087154095573732258782953025492035680452466725296360544495706669694710893964877895892888683860055596490219627593490395596476988484499711304372911797475109077098845890806530281066356563207614053621812571804045397651773271197556139993806831543575655708045397772084597702726904056467651085585427626498819671808995428592834891745710269105958404640279504873152048529343103056617285301570456444538051762601319069122684102816664801337575718573047637110903660014324937094553833734273054775475871088947522327277117060429240676170583546011057487692967938852434617554020294581588778530853859001607224813937247262911393709320289270608832691231134657857216063634987393922590576347367102415185770220393677034222384663918290587076581462471144493559521162917347256170021311915792756117453837328292073265992755464607695129514457832297137012326942513832919498671539310583411329632309879302572718233493327954924924906466289533233742867937150918170885555548494650705298664492829329067238628366666185204596660535248817440449136966546748908889285928451804838090480243229069102003985071244145245258990676697181898543158674036691770358146033884751262843497549406431503948925632248572488809740002536074466462197738369044122131625043513292710931321296927516434709774604689131372752973990362196123204110082128201375910070524821303360952911253547251586125938493372075377127081706715005020265162549870331681593808098185005483894309030224555979493185769229598626008405197595770050580648720064447609356211888969990445251458413485569316049242594430380552265034418904087406778855892336150882925064523900412750024900988073414503240808643076739983864207506638362852181687894941277383966044875480683503593184740463628170286501894250177221684777761045061473592781709024707103119782402905613647369190866851800327036643982354190892190133164961087030029788755760915602753078640874056508417329149988233941191959737999660094614773862258703986137166020678904759964436765235129533623301198518200854906560658410238909235975139706284604828116040914711178872325911346496958434751232263161946891453361257374627835223174508121597686255875138513143772899375162389731582926240089498189622811288981009777853955786447636392446408597967038135932256192515070566771487659662394348832142259443461670828684408123272533540829471155558721331299470234201625279259029184621721004104225463606694751384688655246692127263019005851202754052803873843917768853282966294810994819253664274287820397157061789302240204726932053625639448650045282755325712434955422940495693731734221757226396749650066848346440301706501260117978498289171265121361920080476023457189474853729315355391924029373737270061753599271652066060647253228661970645868477057176786147547297284656762779372832016119614279294478899866692124639733912993588599965955240004423802168115519015715103672959788449622217227948874146888835634251244013669829411384051010610412044760281659387457856812938492034050730664584863566626316243449449402940880487087032475777792464544442713583923025097338916598247747436673296248181585244369093795661453099284694508721383049851814908884994674269456512245124205578902709229379280047472334182548772540030759514223382460446883568796466307949351080748403073989020239604583253158507985602522418983619497817553965332843434616700655198503318172474831357345991686968106301673704392864916756752391261747276137724768416569057590020476870183173066634620224843357106016947860467522328026270275239177422766176184033973473562100412867132139602299610909207395963597913504356916840296956673610627699312429771910789019324814285698703837136790961765245605590627264749111594792564359652578204838544138940967835536285441197541060238588174719157251022717484041127432462983208673462244046888886481856618987945209262422827175247792523940084209967973697573340419383684401145453367982366540911030435224061781052779530918711292592142554294639753895528833931516605042993610959018658764851244136909607613772762743438518899496367115777493674878023260571068987755188103507885892049313406685568880053599531686093105039080950039191116479495459590475965865874211381858729055076110613995837153162521334952657110579808797115108464554774808002268166121194470599444324959098734660599128271201940371313651956382442902475313333651652805850471913884375445320710454812829293672647454266685942385444824198629634255070714221479559850152103831890078717390398859451083718314170338209824192396891793620658763885612390486728378281991685528625067797674716262593275716179198500499802810379503695014219965288949952383161010061265138960252915889073493343089784373194128253387145955073318378526469152952242295978888046265232842593739430574008772985480862999941821115306981292954750903374238063414290951450312329109374095427860759989595535157475517935209124474662343038129612447290401420380043885148319045587682883733579860837762278004726982256942928154399515811682081792183431037627770448669354107993908249137464061693008851460734682294442799507530295085014079097683336212879495135112136635384536405404548104550855173050768604706796680902730840916890822226911274255173499205718668305183993893523045038592436631017221746659969529872208287284959778971777737902635012796769495171550772371392403652213701085638500833884610009497939924880234801244911975779517125262553959069724502922509588300585893829479645834983242814100229424491990708462037345077960978326071494575270986143433162877424305666525575929089331636932020846991474023023093433289610676182637096387394110712753337562744237045629005292191480008249907292325878540205569827208895324897217669006617389068683604698189630441307033574778703567203929611572953832863569186741341943783528648196918910033120396001879145885208230249816569076143819470080051872620826849529620747178626177340673995352315238727463420246002936734841805021912058699614500190669844165409398841806750509467382320377645399223099923427868578082515281071278554625849356592772383349048581734778818500421464170106957003506408507369591150986917526262614282257523401442472114734677375269043826475754419669735401742606149710818851393898621410681015696155254145510818274871918021045731997449168929179132848705114565023489173781750429721627254722988343306932832795838780907978086691940756535410957164426127179394396787940808129123995458380008392936334674305117256390633782452555593990543983341932958553196126934144366191319024227773702374906022867549941159601388764256783495227074646790858702745460386099185974986901295673870042697034672532839069885431680431506364217185108500960933471162568235978735557989285302832229610134727677909792008841492388946710136028302386569374970674855527643764654581254670307990841762312779980174435894706395130426619114294042893880723983905139346606039358379327920193851643285811072909419503169033226803489439159287106691906783795217879163282296630551555232177076782744352329597960040519957067562153890043744170741542253716592226591018127939183538595039334947095623118820678175743921258029023401185847548775137867126744553639160596281985210454018323896147001948363560567404283089181308780270566104177238901222646611383740749483308465571291804807261608064130310360120806019066104322946143702764626902483285545610642075825936123301653786268531603800473788540796117025012648895762173938799230446939059324524133903850668751693327088830062612129665629715119801996774504444794098085141199531586540318567509924975893940402206779748262873300351531957904626214303981288827970515672865860389838676098330115709683352445449219017190153550630629930100445592736473670001116819761793576695386080022156306178199044627344846859391114539345180079937040055944990788842146613990694632932917279923281637639248975924502085482753824382553389253901219277796290711352481401712647583325451219155015773518000508830433309842152104617271665224804254196565239612574520807138905913194395206703093733908287845055942572073774617124963965883322595499145491075147314353076500691945159686980806599805152890952459849871239071253404909063546522971203621983639859740337114236444135149519338418611154110434241430768527706309921504928528566218018976080442420653585315399042070642612709286016374850158244559160792257234046326830147007213716822259342733507014652250238799071972090809282455250580472955789236480985006039221790626455999083472104306237269437363086285277934056533390944503529824977872510284151337404628652979405552688604715137635469309955862565287162046700812432089267510773490856188220800338404764136466876038987375278616709774378634195762777487071294716036717072166772417585411284787306582312893242444279909280134881132601212065454675379065202592766897065411396640187790653558421648224751015586136529332617118917290489459723454818140997948334261679130736463288972600256365251116512015648210893765524303181464137186456479488057143889123197342649779128154969758796380268942190462138554718963143565588043703507655326220218570613731373720344973245805063029771080924589709419402611584677616808509904645991495834065033540733858585095377273833505214065030129611414204212747279062301909787219886299558397039419479003163692262432516866210796809143897154258443882794786047986965678221940842002002031911787382288285691981693818302590502040439470775212712633884136227422506192218330244508152962578111345190634217924235689375738832773381607411133854344723875975308371059152505146018289520043498210183606903626068114108606287939472292973955880230447890916490542914201510314833328790401023852050219888226883903925889760820538246409896160486649686125462523486261392936132296394014548406684247219339467570919136836081858210769890721744599674049670587456092489037185240848398635312885007261396097090338940454013357206498143465771557236007846054168871405793487317934105318933242113270654564527639975568899898244169952706274588051856318870117515634652116894199390370868448414716558216108060396414070512184203668637435212702101706041784049719777428857402273350439462900910460559299813467141421131040699058284577254362125439553884230610329729505683985943403040952254455386566587151535388457792698128800504643924642445761003592934849206793479860981276788087296796034731201430084431484158809910081275554419026794948823470502113244327570487928827096935929787008440159672591166480228030019922344391337035799137408921136408451893211263980976470654047150531093586460944404083294586511920015467127831207604881265939223547041856697147984106667662095727720932196349148004413503759295862646065103846695558858751075775926151828414819232267049108935059498580611341165571053760894350192113448491334763811937393127326878571314246394730070519368566414636664989207963058657406281095064481972168579654448030920050605064160089913317653348846876693247529437144915885862419399615685670431576420965617849486833023290969836083582536718474797026722651330088265031535511230458402235762406111067101515249493483688709192310301945968258991995735523481206500111727622454822562136247252031804909186350831258405514094221476129921517729896721682801737569510648839894234730338049690122543087044801766135446069752656775932674678278065323582445629292973514267699451489444038813360489453786704588813572828700024191187364634181992159010133018012575826795714892279921749605823548400461400930558299075534579166202711531447343422738309950515328950226701834168420738098817852322651489211875923684306582036205309200091894900388109763080788094441833113158969976137402228016796211326168714648649362204445479786736048331768823719395702485275874571785410188826255686606725504832186835051138611526240896034222502456294232158889925536519260336639737786210594016856284977694677472844728157079521167605806297269254772359435733610941278815705160182422471356614422386681773123969177040167442901076558544760020694172078747946763932078860648447259089402885651648603766760969977181157672427389381434235516642311358863762923583388277626020849203956778494213921863183134004925224491542570710169418190582499108808260596965011942714048569018537868323936238619812458755588850960117543745173896518935516770503905513496593237733951730204929854067954962734458053954110835300269967918924014962775648266587660914567560495552128921726443519530116037232872357092788839353532202858271674097989978644225294686455729204914264941988936973917139945479677092627256349313304957654549136601833453434254166703099620228310124656748604122731779140750474541629880717524156642092887930443064135110731505487777033885537003274444594906926685761373761158791890515964493839429546699416105597739817676192882434634074000443664935441268926808106252864791061808601874025893974749878084524655240381049438160149323488489585145524135471416504352603414304214139146312404151872227406608169921748459958296023934928519350083256565410023393005610736047811609369796942589497436089859231500961995218266082937283456646784888707025842542373750673250979737586560609807904010629549625148865301643362441306085191620373280836452967529897967516605024789606550593845476285903442364666473929937001437198627553766129871253819024345947396507011979700330684247468640241907993668159158593029676526486438072242256374488784894914121807123815712202371927779619698401726906260548152286877128820060698556764611592353215264443528291845783348050789410832589860666759112354760239393829780858624329153425874686033057547190003335551400461961062794132307122161619427896740686528662185551143075738397971534792109181479962941127147330881221347294462540705134868453140775596766836247573776612619375377854787876981796915165626825165949322599665470676698492723309140408137794113391014436788485055957060035692576181004348183177277528202840730017537823084211795108720948580047953660204045440748413105063595873193029523827879238556421995001174897153781813099344242553677730525476956205664864099077276914918613271466587401597080764524028999116099043098935464550934757912360562971302662761153452736210568177523314329445722013836465725175053084897199369231550220737990892274500107082433566163991126145018824753866251418156045865953989575808884997554293778310317155233248967921341911465098141834830013396329488986247915868583889398025623916659470082491594404741912366904874957646232110109369048778013785941898498986188196872288673643503668928226292293398259625659684836596347981638568582671230576970842660362524865436554425050275053371828235650039898978978968249071480385990830869586078789913242293124092766981758191080600470155005375612954230867239606359742829255136731734907301376918504415852136984559159745200127787054650194758466702824964521038400513063243105028380381042756361701274494239911008888112821476280643596888175377526246236070228481521306422919066615424685565927602968081134272943025220361294645650940380679326096118817583424542722613979860507984144310392283560290659026378418170660718949438829790912053838371408714363231599538270437063097230983783970070922390562825123764534177026439926381074590562887932889404384362585550656234719188013651398962745319055031601085403426251804507060008543182393083625669193805128476443187522515948484131289338638226974424686340533431651526964774237969471871352533543965452077511399134954380874170795026445868400899267042822082016461579255418764067194120612109853622854315166419468165607591999018057671947982851203440495109685077190646780599983281493214797236509158361739005217410013389702340774761516302776450251145645717243786712494062302581922385157782801682884439872961297978554273590861490849070890560269267910118415197446429826784761606204489592683423879533255454762224051793169768072654717870664414627034293802331242767219542607581599949553429704239610770305412405263591685027929388498099693493647149304865888011462683355368790733983007933105551848006971311256911541768555935173960973794007780294548948202693134581797008801081017136017505604516982609840955764126344491746418916013177641234542762552103137743348664196495461533698899050127696283996421921832513913439046156176784669989268503986692184429488999188444324308011076792671255791680291765519038321387318783297143963780768719009470544577872158432862378550081628934339661316659295792587424298342733814103724237525232048126213371583888803695052084532380263497317710773669883134722692225819507961849619726620172013802508594494920484302509034105944751477176402396476069044776471184785509216436068552287539982538496697889169138797359465312843534591506657135057535196661336950554710318635483299381761048475790756402673875498501518715949404456200654323811075801642557502324556406044957459109646037159232032443539984214238548329180652432945367318754033952256586601374835347340958014824062115196129507005479232240798465741365464237529453799205353457609567089469437578775718954712628210238719746332017089002833705613066689025295059690720190915820987176671652029965923762585661645203977832505102743945464159663792160686034582045400783486660097873384608755982940294279209037584219205607962342826888866956871638227612804403746737350998441926751187839228855078156550224827873524737517970447279479383293633867540005160203290185059587483933448821721355572256781286300183411222622959729477130455035163749702187563436583608199938236421890890706092415674379635664480829179071302573735375268589608600943188975910398770549629895156698433611154749656077734725978052374224410779285619388347157107020040133669180596172107577543671483823648974155632794878265152698818584441111297406434876600766186168648886220018301108467071981259851530616941306405738069002678386036583837871672084464262462348979872359566671640863679607806927644599216433738157423042279484060229575769026032723472353690440020617961852303276577389724077186005309397249709183471740927151997139567769653039596411127240291137167536288688395360273326247156053485073357223643674003293405400364613898755382100371120945040580839712248205557672603774859832444641227595277725144325370889197878236873065971095740229454122471087495367941848049662933971749616868559533316621518908677190581477924657902662932507405059191386230757444019169247226143693572860089132658729382860721326353523309561756764485026552526270166062582837931064001097386890310014844225882660184631684279802731725338002194975753546835971424213211857588753566611002699042576689392178426070239335094529116730019620758636315234294815435872448386226471042691526908818513230889667967162311291886742574520526771714328368854929148154327934274078021041926594347488359307327816527042130401099965947826866623578716258477070132524411409941700210607384325757907174904659948188004871010518438352255501255310628560512486410096582162019254700987600507776348136552005997733161301921258649774900531990406543900118140956066129494793920161628775930019479956009624801219398670794236396011007537996288720728321930847831984181776090791347254315990567274788416788704508097862263459891981639453245723438986998280567333192666122630867491757438923179402302148083660481330932804459236649482946094044642161113483431334188973962453772180882853618421466430767297674206999023627195424453733046435395950911736049305618279016038326234118416704917504340687013840543656683751773036708269871387987308266595319606007881728525355703735376094879752146170864144664757664716817578591241037192621517008802419666513888627933098733962130552351874119131189233885555306366949950492183646827984227657823617570185409328462308555205228385428241789449587526197202420226300227948339587142633621041106960351468203457738593500522723321646868332564092703045149111710385572571723196394156279225440990740489296179977331501787944004780243599139624090743764044280698928295980059110333453076430699649959687390955666562982758873558646152867159589269687321434750086234244087004781007212989958197628691013082081766297567769133430387778546373676810237119518108144871450828470455257246434135143032201680453262836122886250693229415610978719522881435498552935843768730973110232073227475806216713145137702885097270370031128217448478768282197636449802504133050225766379727037386054988959888073965436621366169222753771344749186945597087794163703336945888361036311370090172793994998187711656390446877694267554357009008769163823859164281684754082635405294188694904296170256200279546516226263131232599302922455928767083420346672828082272557921871692128173855870059008686789569281190679972386072935822043116369693055462522557832470614874673040817225096429091195987047316283917270973317203608315668159869225041318293693009322502060051406143325107574787264472285056852673380600590026039372061379624131679014354105063903940924351271703521265965443942426495888526195043446265838360266415949196642739441009816565973617825006495708019317308960020284125600704445530669595565761048787283550605468954501841505075792515009124089516733242788017315614211636995464927136522522941314785178477996552259280903039348415605821423885630114438067262071054909332201229279318065042041120831134800703505858482077660578061373413726109378375874840676170924589916944909869272404935049291157418401388401993288549606117991004038793568697285752900743549009959197709296905748333476299576870657740171775416065143081656457397570409724629152048199090528911488169635398083719891407421407967564993154765460558826294791770688655522648315947692939574949447723048536275758007901364914907399493169736598355359386478873949359497259071421305827065455840801990640298066330105804942211030992867774102688711550717702753016177725105163828172041458008971459526463502013244707212951315103944749170837566822354629443693740547080992993667967772957338601570614340733866413201416868814296790498634767448435820401065487977441335837405486845845428790896261796545078665143157778356443641818005743386788126680737366863809841521201320499284239525210756601844255439944317565291211866963367639159546849038359951808489573431953295883481755397623140199648670290350433929922617379696281094556805138070299866652027537120207999209984516827444038990167828260396188387261755157154225801868707959241642811904040667536295146500616923964458262516565219741551299347655646426914965350883363274480725536751317087584821372225959908644804356214657291634796049145312969184134402604044158952707422113599695803325087718417902158735926467687951581226815896075230863949125765594270606088704593203318503645729521154733761567065470450480047264139645489280921580609640881672882257432202883566823174061140928360859629989498509562507551732058229865405770902486308563879845447496214912924542726537707877489463922841061472512054837400843595311248601064272735619313697953107935967376470668553516529034382718918962225388839868153937692630141077791367368175715814291413519692071652611855852663201694567994730313078273332225093833572328644268663924003783451519793510964212484460461463260909383490719619546621913919371061812258791906837769990636683638894357673415542439948577586100660821104038852909090167976895680898045274147506817233598276619602366366954773609973726317678423185096377648618417553394944827430420137419381992781106181267332520717159242381056309274696465075785165276096061024817439852289126127464570269824996572315095836154882885881877922040576145802276941758009345616027515798124014238685867867049289263077777803745560219513258145677807996095259502579005647401243662673930948342156806505004465768793113755224204727773344463291596224947182325529846044005868879920249405373643326591136037292823600308287015922064397087105014771982709690240370435397741313501547460560827651047809161195088008421577138945425175475132355726124675594301297969309951759467501529380225020480425507511333190165617625798748691499948573760350286679989960355696627345451013318574544104486469770193034208944040438568729904486500132842450344114852196274406560523701412397637366376199304111596440879792248974551967280395838871137151483847398105313276484592730169513726098849054845182446486905530691613368060274972783469518339838868483910680087842154460451810867924806874316861070395107344709001877730740994140793398761291992092739851384425106785174856411034603778655055927762331669401621879205883160282789271757518660988269984752442199170404348065237490018251352859440700015706319634265625150248700690352861414637085467842422388510113689621952576834725061220923830009949137347723032155101117990194715357476872720617946082256649991934356607771318766230798133009037710078709756909749215169780387694875735838694932030034995713417978654812083289888722995008242667636395599943931832012558494942508505652935301342715997583831446583057333906245632426232343031977426771005198942979684579908838678758160093328516034386262321311812419168658573778740154228689983734957075612786726447925029783647204391368651779528675086761749980802554239380836793938536997120840592924031460906439057958316395614695935049295280517516445283905347376489800596749631782559352458610637385040901699489168610683332908980717515884692216247849280436862223649930804511475347922655674642440965579551696595144544127380673351517812433456661164136171985918004179307037632378360455356913733064768646386692840970145850052487071873934124209207371491238869222330292087964113143339615787737523883286598663553749638470080956930697817154232193759327117763556243362519925861916743072151593017757781223576328143691657517092148304370175778560055823912669289675826402438646445923422190010850695584804255597708324654154738566560418644650074773981193415899631019122048347540739890806494520678282290759499402400724896695589082622695868900471565350845059331713661119308852431496173059261946232740475749756647654153904869325261248298175496783680537198091914415939969214904256399077054284990481846337584873701505661317779836417080925530119637812411085665310478515549774324191590001797288240984534205824882540853362239872233694568678172804945558660256649704964413675170354262370832427096971431389345315117081496830026630791210769664727939282996525824136643740985077145667719615401352375659117944943079696273715159603294140000219615362977007798376413290585691824858303022172750353994980284984049211709445766381324551039813558461933051394245380235118615289908221936088512390835730209591371423585660546953295656108754895733545178089755438916554200417417206371964002223279686858496247217467453862964483362202019575976269704646997531553911206151126716048226241471033477667016927683740112110495523377468032716131453953552597732925954096295506108794548407738910990897857496498678504362770652785234110553633147083136490538397484106134343595099822257897569069906307773463315793686874387197828337493181909861317798195727059590025694943900456915740236105010623443500557520109617605374152174274646743495178713155837369219283431325598162129314083772058405027788962440899205227218412942789815807381158629796057484868057528758470684229715074960230077423704743816729162761575883526146728600287660190403231866792990270624364957901039726281313817840951647146912710834663854388077893673054461661982572016632444235515922972098409905755435900182809484328259233488793440302587766839703495903939055823132836806036724760412212865360313124620576454736177383338674696484868967273713675874037993667329284313565078033225776822792622307652721594096255059497027186881757473868211408813322206143399102447418938907553562975037811158408504064909535177322570820082861118594213746430476156498199110589447553052109679350286220177092062217630237515351792394560592271800735174814501138621680489244732862424608912287184959979921835974355153788624234482266408811244749095612448994934420584172046206561051512958138369752111575174100976147042619404076507097287753745771914175060157986297874204703114525017857245835307372825545592843191942887937871469239375124308053302245537462448248137532540457638176027664531308020224094258942189351915099458783719715477337175535868279562836004293361649558892434540380076740299201362467524042732162355153093663450899612988809603795991185566217462046110854709955850523605014678438896286192189484558946235790783638039326828468418005208349356849853368203034288927958780510900849510587696812294779101038400225289239379907464581018293463606993199755344715937340558322960709283858552999468989183367558355493271896483955622501185615460306702947622416333360406398604707468479134701280158743771679796189622839118765040598233036165995604385930583346770344596069189867468656802596586039728012945973241497923700340329778587461625859643801877684373692243309729686055685067636069757568733496830102585959904376473655516210786469585249531189182491057845205119566734830615665735926106357089946712442352488061836615308744087976772102806325081004311092105535729489991356065281556783669702793511570122683716579708968940854029261415321208871261249448657729961481280152675213350689858206970768182315127216455249207122964117115868263022371950443255905008562972528154277488750215750404162431848507602891022484856112838011010233622683746840295101239600864220338973231582817458171478748456918093966049338672175926243973195630256810724377301518575161154616699140078539394089010944462889630707787621327699927396868983194599459797953230407108978060829776836540761023303825671556793934074549649279161081075078826941200893375229616818413113942427615165244251494625318487299556344125592927649942202926792552827228615921996221772165284183308143051997899103901192259568119968711059213201126841653385453446996596219792235817250185732629493018636191556991062999236920209355243289108656735591011083694597516142778778590896494250041638602025470835751220646434831415813537828426083363552018387748467962478260668103536915515832534337284796132966590278818453831015426331484962968779804515743772138168244934582797666769179518017960217758208150113812734090872560106011044991833059820405427922805563656819228957974370566725925419341761817977487192057812265731171018386254829462768112161055542898106408901939962978924683175784930791931826519160809736918245690008465927959879085378154985033274954625924825809726779872448516633687314701844163386038063676465149746524826060641435087494340558629975518343923170793090677282546054639625611020516193109252467141841010973052290743968491215116109774335673717069739507524041697914236387917328393450499587172279950284667702122478879191283483218074129043420530781939465601979507455581235372679542850613712629557418296185320561320580003256197464278800666499790272690234953379992054944810555384190155734807413776598703189894743675619348521080254725916051049966407501266499686061086329562688961062825696879030657646706002481396996186014106785476808526528990472804034649071254629273497535438546279901454744187570149239088925612835918332345969115174812537223991856019306849141879432453843894238539072783697275295460816716175105911600059686727901375328748049671892558365848776571447905153676950520888286344839508228214536559035672436361357855296152885505515289074587572430122567617166615056595875889052336683408570397474482123259269831117033502095207830930336404195428256818873411812464307613617723778981216255327269318114363260575878268178811983912428356758480661551956611439005335036129483998612243754308247761774998123216198630635616929153087723709112770757181458227854201364415599370563679409948779421838232408119718420013790278234457419195951748081242715613304538172988693198326444273404084310705055574595221091436883010572571793017637458055484949669392592160867497057656476395545133316390879896245336872289905308402506813966849086866663880373014908145423892694002085402287935134863253071760982136712887851707603982658328371341601756571294279007627586418589953769070126404422667590883358113376856811889559714132147698071807981117950996177605526419434341338657982401548193012007697724963306366557427514579525992699335535102535090240706586239378687547046794758154270682136944193146738024700467167630086556158915131185347081261146235419878303233059312389051002921347992004697566858810647490107938424196161104146422021055340301184540867092283197718287087082177938368780601446741421320282154001448539870601071341553551845220698429473923164910907456787708755734799666325590191801608637146299592628957646287582040441069624939846224278670652974052633580635227726844355878410782323325384243459873039589903368353931238079382020954333919930118746796935035456417914248122797654191228604947674608626899862356608151018373342111467875258542711828724250639825858397240124495700885623888440601731877843244996827676047433440765501675317690966501202181428842172907560419639375698785798592252260516792057211100635556946917488691371742512047344054287144737884215009902342565659629434399093265682451387666237311923022803271223511048338612247287190359531204352642848510337442223671174283222343194569800926098572291704045910206666697200721656685298616145355311985968542109449494926252313856495163442405905029738691143781284127848362143587265271558222382264623430128026778062915550536992584516212003413805401359925333207563394812807450221646878174452304467036741775699315957981367698788080989704614664414631049002101272143793259641031724951335560565695636869468885948977957567683500442286248503511368779580577671213723496342826902488098873856994691345616365892347023755809019046143850153925510046825362972425855905800296015464619217841267501468788762449449452946198576472222430884691934918328094186978689852671850317505348625743917511923027413047787722831787700444865286842867651301079274340355951119682437450402527575547635754166100755659972897848777700157994969273597257388766607506917031181715162474850696849097461488360176906022674950797498158882027769767168566745549404268406568037846986320411445291758098470907861752795202355949139103612346204048091602490017633083598943809779618142591591012849538233359383698147944771558259385987617321984335798988312212328588110229913906237490449353668237776722747759921621307866199034281002783908223771791695431831673307238909134300884310077529810650911682706302325284599687910828269766989001155057950232032728196982208550779749029963761340705320392901037417727125157147568726684349556160448707979441419215046661533655373039179356908968350384182340377980301408386177229971008779628845922442089416833486863773990683590319152048865379851403663576259748692181236583231909958446144641548740623673497637687601979143473937815462969812431418974759239155002113356223462793194811538258884376201070628902596673757887651104526243440744289605698528524687454564057327082786875545790889751593573174190230266025248703063596956144928368355501975020839808238323182803238975759014357751635364358829018276930442106831026815193819047134532268631519329834000453719270608886011807442526660160709435150706867503880500225719795912827854506039587829096712523393699442418338803627115378410250098655577242957076605293527908858327446827918840989619255606421558913207262677480494876619329440662311241587312408493577902546581369870044382720169881265643147712695087492903880204870561037700087209390649448199563751101893752022503540606232605657480419415264279034059923491373894314531482364917280892043832687921629109810465472160328547169726432200886660474276344105822527122447405286568853112378167751986746468979936755393551704497058815162207853119584947890166198088121871679584638658583159117707145585927347527831679878548151833970821528965124761406179866324903286766614131067418418452960544485137258745444659846852816986431024834268861867250865117667112779338221714934991172645866329228106333757016345006066182383905028719578568086943053890493896771671433519017171236368308506657357356906257862758309741476647074039977333008400014083447792433169873726472007744935999575087274683217918057671042914413081312177842835233294348203559858913577397862567176545530996064225410823421507886412484454091349798007169613093895298251966076985158262331559774688810364257826781388079241695823210280578646694949569288594883258749823856517743878296319969858788135448692892157633137855136515280417930701266451927443357545662302141717588678497102861804582698573445240251809929444084488534620322170951606348987036533013069275924636980855998602736635751843006400332872758587085951912258899070795673783693770708346469101187151913627333353341571088316303303079598647476318893604421226336309235143221369699072414526881941675946483833840311996156764916064794785520221351659886030882316347245132014628378242702974807604224606520776307317089025140497314413225309889022361767518433421158258724786682361687561775536902034120033658428900141568970015270536701892520858078961945209526073849541332296235295570507719103065207314658872021846940331762262813873456453689950455453982291676381405463385368690389696485917509198668616954214912521021316722591992362061179423745510145753693041617527854982285340416375784041036656674734438317795712428057782739037811487012773255250663789890961991680923570297444401831303335709523688177431526368627437828827538410905914117663293753645946280693256183555034145499345239781393653097199437030524685609504223388840873757404912583684155078126494802703085816034991682545440223826220887187356158999755140477524851964251698742481464096058779533266302346155797138135999355830765666924129067922213556559907233594627690153547580398671701595447273667815366735326308045622610160598050162958199200450403197941919190866791754582401299220719563661117084990266899110938267838917686592955738482012909885264807105206754340135417252736138128632241616618295549629453109838618433346212299883907015424260656967333397096391744306505824371807875303611735230477049338278828281605805948646538747455182207679082508588522721576120003349029743292533945423647798248114915465667562208097693309183614904445533600546319400098934718517310813429221464049331419770293017790502734946202378761922606155325762130803561008041788504018006549070560301156766907279364450834172935783690292690982468274856410574019868463580062464982991677960500848261782799589339191594835005176232933316745807270665791547851008049589199571027676172885947509567063589191130662001548171848998416020259124133228765391288364846965307699217080674856650220252495078250565299132604351113273552951456751335756479830997813661434892025244289952172370242446509933415040128672865929773315163298829228659485266884401895013754626555568084595799871250403921843185095107468541235900526515508748648740116491996779694559161370456819762647576126241152597125132653878990331468384392127314089893205965125279973395924142211146590210544309643365821375511478385088568581838548596490152227189125655768475484656111158986391899597316734334931826083720053421038750536227028968572807032639708510122205663371802924303059175992779772178762685587397590307939398404473601784576804019996793177598957402472072548641825067352204814358672716198704900987913794132267302212195304603668180986249061043059444941121944330211397256204041732734992028135916352587893740583252204046495224742015570777558685570513421762079284429635199804048451421622911366302150491381887402034696617610963350824649737748547628654676537718700953621493401728736212120389435040378400868075833630790045264039276584476912850083133961476975506540406944712804798231046315715494537101636041894779832513082095109676814392301177167612092653459498157230997337480715103770824277775084792701275708340622081625515073595856778757122418219811646556637471953946734497616241886564151621544162650992240495183651342828863312317658037212949506819398453375449883502785173971858321624773871106797975997518868503290877258357715760541031398920682493307909013850071092844484109993420830332294119992561416893404857409141409701882485026300902477783824991563880094059525899104025062171873254854614882633419641238642670984150328788554031932532736418284601941924526496470396927573581047853936268605198352317874657034628325779565814246284586881971025000220577733633785264589056558300752091185834767506357213149938707900485855767263572922388431424376573130837918762825070016264017389813451231377382009868217775026621964823734566217819266982357599280175200981943205865238376098393987630475627966534191494848413366114984858838796833515782359484628515616665262190502521037851647939998051636493690971996932491985585327378285026584715236307644543304968283688778932022073250158060872774771587300970395337363123285480360376816649830369182429586027408953227669642830948823142812410156649313045772736412006291284173588933543712524244957187938741528199134354678915798084392411462566047600605795837990200664120536192320409348974874659521635200210968832265370174969606531136461680146377972234731192078211653065214545983674369620219803770132158761004975326204218956978816304391928489560666375024078358386531814555776882867808919493011097559848784958995449583788070976015664240962795018120648146500860005419918225683339769794409636112028410353130587500412782829234182766221222313938278183003777517431980307646378829801246332756841494466858421870698659025938133630285169842693245984167647133147166995630471307412363072508940484218899409942628977715456638901394284675831878974612554435090692992205887591119220435892750403711399315555523278616519607600154115063278060389518937405516777631079825629310880019649030368121394910094652149956141617958555622553556402092131494135562471344361030964380915775060105196897962631100743857169134272398768722051127025319560347553522450320872397411488403698901860658813139353087300927478142993487540314001572711190758063246493105907052460876521342202690418256402719915705492986158346306404358076239712619286538986940225385136847073221900525667410062040330823200179959045491621196516710530026696267725742068273887509595421368839176673703534583672158888058123236208207756486906004489202807919514143218741656938719970130812637335025086811660930792220394800454362198843164140988843236752947774130410748571447993895785075447191179858873985241588564736420468366170782019886534549487458028655535331581911485444959298032307434744031287341709431936175210290401513549318255862273508677035778452130880924671871922007824199984317084439141340219539250189542862280935458014802414621287039630910050315830965052413900689020346704966823436388907375651444319057148209349768114261537794888654426504912114916863792231426329033858203018471807357200585936055683542908639062784389047592254876155385172099883797346185575338706764767634968025673789989854646845806714686300232860984952058603121948700947148954769267915157793283605305901726829379766769950846192784538768675289667107678231397365508556206950468938786614301841349972029724865667876855437843502328052660967005410720136328423047361287206266509324747606393435437498663584781920361823202859036351163511508101230827733651711250624321104726746947374305504651338222843853271172175515065620502934071000813691923877731421992432424901680375698998725764972668120928089885926490055026712392106129224326315406919136327462393708768238493340310171365826158636101916764003324092922335480818266671359540857969002322790059115717282471724307610140387317259412744789531588242289702474345660803882385317696273237262988096749041734234551600482541379250261383216270315158133271818769865532661660470756136873318979523203248816342481198582991565100010849412621208665167509059449446890034648406900119512696781478378308450059357029829957528806547313673352912710845860207445896197107259140420289016428461682421652583827786088684921408140253276545014717629683671415270974942032090232361067736238685433125142808473831980492818909176696202952456668420654776448175440842991542823533324370439960788712247673440167084579875203323260490606633918892932998456100461517579954546634642147151922857491949356984546373420337493449852325863015252252446068885490667763567525772736180769321777380661736707457833538332506738637625372431016977388918997567301208089484794036484318015059914572304452542075519535150386107336716309453375116587332938274871643214190788310069732297732575776205630874269967835100173547075400952554998076792023250509120779362889567788167313141831105353921334409551385726799545827847435178466703204146264891032089917160808325803059347357849947475225738276503669125619902265001497692712106177005417631836044903786355982719423222371633648037239512756749407520771048397175063318511554534884705103197113242240962332640976925901660367573691851160079807400415048893061679509897116585769222922926731390694692552559196470461254724638349206572512152952696248260303693679647199049000748887423396838096889988959900576143905851721559065634293220691536054524805254558545616401756000262062151005405770744487316737411520431562170542408019984017817756374347520942490175039248776093364365536039995593729324662781998992141367430628019357665321042807450453905197709644313087226069542667119972497847585011515768499437189252527578153439612316011891562132861975145797051100992983185924091790574024633399927082127834449039012978620732566794676350699408643443924356894309322717455982885286293771033059108976555997299760433176717896989064627290235782726354601667663951150705355640844289437607196084080997105899389729571260288104692017860530421423209184466077678392414229153746559660234621057833065664590123080852693983484555868748342985309151866698395845749507858501231190067765450894681807814678805171844452938218499141127731349360923862188722698476044455269799192854452974023318787080828227130529015523243073320883708681460644843996775718138369778468037822085281823864065245198800004582831692990818442626395300710063901631073369936625926494987780212233605142699891785580878281797712110591181555942824695001173799809950542742666574926590739598185393582377508732083804286727136032376472822789965245089022870450638301622924779664685740840274810614256106402816291471420652571998563967231184750568708732673283573021282644762447622693578232229287069690355818944011270146265292649983864086304766671359447932207780078334039620689856508169302211418258770510772061135986569259785973224429504410367607886269362351457187060725035178739377291334311340228188200589571785072588716369002306553669383934251510782691511925240549608831399695627520483092737875428296770208483672357633939183770037309323662259191028777977977876031335384774797557272015063328735989018090936955801573918219573654285452904527445455469370959421644317198049627929625777595316838969812613304260995243232979554065288530620806902439199191000232969622976519443430720334484208037429960063524395578212119073627730838209236020201816634083847043581600674193912191724916457690951978646639505835898123943931754186398962869045492645591881098373245460214403788117405889572574267048489635397168949417117310969901752408383728792499676122136461013185577464808561745219381129882611219820458207744901739640978211522295865624004385633815639656260339724739153047988004459301896793050911346466463272385728029237926388979672139579358430011280550170183889089980458081359055163089730741443856769813296800663209294584300194953777719995083522299405176790951568514620164138424672396043779653382956611678414128741323077174917237469934472075698799885171770835975260493761296334219182295863022381442377123194635668197085551685460423867215744013401119111291141711250698711148126212415437149060517150223571460781022991130919296955715977445910020507103848886313795853302642985375844907574124882428672087845283626648966956309355796076685193017646338531536740233032167678365330937641393606705755772522766571989773517403071224133948906360418346686797356302262583044633328643066713539523566167604969463592831390177473490112656806800755100230660518417653799678034641360348765255802647288840953058972898658104189389603294226402179055824168504990816957847256880179336054459192641852788138887231066773813215145985324288564837408448510622922128144198425385495965933838656956148481509160559579051748269219455107577790906521187032710831070829750232252472804419016555105385007830744253748118585861048235917702821036100801935134681920113819246166164440137909999914363692787419060721051532661337978389711573858829460280964276619579948602150816635341300222170436124220226254208152410263883633709089575757915649323839006177223394276040642523105673038249865148035586085618570565353585333177423502218807497754618611823646167229844726441992006204143122157842105523733323153530776101031958567612546833980275545641273572389669918565222024035380740307955474678070248921068897201895035388926287954794252878518968336117597534088154681254759022922934025646032035715969579912551143521219772405572632027720324667575787186693859606215276233090478337899238877606057999920996900923436877218512925210194631373132385480336458048480561124724960052329042215515739451731028876514311497464739853870098769118857260220754352783822370162504981338205826574482336624215869227071181082423588046235099435644419982529396663324871791968614815487789354006541576949654787432952478973432469659411238771486685909264904442070214654462885990329844554553047341175082900769316395329188821731173348059567517656867006476984606768538405745053392767771003045469285102272739906459152306043826711256973834017748132044183916871757606273842237810733345966159793661709717508605037686088158987675190759984688245632303528721252599698737134366850126113819929345243671183382008187782678349375946415436484970128289492911265081323846536540904510379401715053235777465284191239687446677158290719096857117993456387447609676330008139289351770823341264265212827617816599217172800805912389595101069203777839597766517291882238022552539079558477256051099061513207101802800647881375834815491222632796538193611663666416552161424181421433672034234848686738843820729103130414821476160596930988742875897314416017102723623292348581551821399035340490810125478786166282490713587836458143417292255025249060307598361063542545889823466012041353433194859588956699641524031016240718686107074728672739784983359736704599124703032583105658293018122217110539743373932136882304377558965159151373262382975643951694755013637458410674783208756436968243805868734214855022399178027812025447138567315559813042708365191152219641903994992141045547911724170706086088073394248940384936423902624715923800530651501490254833316347345157718853931574892060494238720334031106341585907811797665657161264018059560230563434028404159848847313164812563786390492464165866021891389166504381706918535826828189064017914292294085242043996998356418758000989068482970638104929882579572329758059879621874426415652335745782148196235999506393119244031217372637317100979747411036962927479844855164661824712679133489598733244784990606216391307121552055193077385156003173463718488242491277087372143694796556436323355272250173773353010276649121492449781526250085029852471874376227159516948092437224841279167954684882494339419984861771646640430605285300495506434573172710614980126451481726401376555129646842130364481750840576739279485770323167397050171773940443545052030443137667154593315372197876160812158974732269635007571374421458378978605872968563966672657868584931646890275007385921872922178740266568707829678284776734465543814960990458652180189276818097656992857387405220398141925438730933979552601291645541731218758416434431271708584798918411437721956874876530918359892358581893455056830512596151393974887114591740343567574390448448508485534960050272962223508348510290330978377710790688748638086991013627571994562335876631018879842099438191151937853950062498312689817685366718368429346612392847111297259561912112956344077112835105390279262653836826437097137583420584250924733139203147852244310217061566732070211521783250017091865631761621683516195913814319451597223977042716608884445318946763510706984476321869709460504865857224156597464736131298675286221863427367824731735618957475275493532607201827419056078180169549632867810574668371747360917078165830014564831913359958255310704120553085680737608990518706446719332840621391580496028430177847976409968017267310402436650001340625422963955723708276176877441864893885296384030028145940907465837591255537277504200468551064619133666186898214495581702648457113468670925670416237729490600200426684935753714347561375118762940089156373243656926898672639096671439459721869118818707153996421995436679734744818540296553399789695136950151422110168091704647080257870766005520405482191419610454748676549411600420194237363864983037681571309743798094749070999070202926722170780490627264159172547096877031404358911755222917498170140649617830200928645987636626421656618751575056883234164813101393798539907040136695997196482242414498073071881635160496860234125973105539355205436118339375203037280176419268974529958127977855576700039557561169000331114014356310462025686967602821500460052196187048032071393129065095735366324387402608315661367488492680994647040055861157920446396437002109442127851927090648062686368038079111771605722375596163520271855357419418900620786847400904435989845298463831295658520638328169746372282482109464348544571647178662694932930812878048758223666560771275688113410607900855651286201314348265322270649319817851340951632580494325999687116252170583588034866422821027259526942248940717868673398924503973304021855221688161180012722555231795694984693906484600499911314516686841824322930526840632945895718896359770581554869245773834460953533525475717096603614702559274549209569989635767790240999729653213795260727111652338070052217337562462872459590826581538841475464789360593505604567668987518660097763926349412522645124114071097536621629399442486364269323485516035761319969781793793123701520424108150702253985314227445382819524218610193569589609400127482385309895189137284013617832744902565438027831341071811880600924215355766250977423473437654016768120876145978552323512090042139460319387088311998831659472137997922352582034047793012142099366980224541805999730348962300724490151073082617291720127821908344543688420032397089797605368930325855442066897015534356396526319569500749776233055658607694046232831229281220850483201155537855915880226709910033137512019256244686679412370982692637226540150888776526877473774595364180752851776857845766452680905312602461045842412451767324191593224389700120732712778179601876219063570099247662777210453678106543496232518011099294582331266334892898182504310179875821806927755970064086577696787278987741755688818386697235922229882071083767198214542846148065310450088557708838703951283700837760616527186802639072567381601067836311001211061768877035765708745802705403382030372512059080142965318360047700646185114371818714325244113354573826580678525458746541094849139038045377271492045187424718724965081392281412208942824927907765840254073305183538469454256685906804900379162573852306717006554292264454842231513497314241555998362175419775819713753420824599417275300648526277257365201280180066958662157157384899955464532103355366658424824711884164099899979434024979956996482596999751809630330011431847985565745540854578908009148786683339631175541220288715596571311194972707107971832280067615875124653334606463683609548762312040367554883113208550308318515830930758664099417145230086928835217289550897782027143843853488961837793574253412253741963237777830079807738958092378494513079416964657882864584467621847362480452325629714204148233080452403017314042923763870652809545739671496846691703503485087243645100586277163689828485621548562085086369694286784359804672377553625005306762044528881761329571977647611290388880410165122467980755303037788316293402681674581405162373662175560947285279384000483075580072809058064868713054815646039731873838397224471424363652502954182684140260754585227007220019382775730351786005246555085430063801723956696179502134463905896734911123315972181924501520301023094623511811624532353458835285777274039514090961165478971672380271452886323428922833795466602623204763840283585444940056505322818377187878276782894449527606091342253639707467266684722039961066088873721094706961816723190135182781214836476390038274265351403036299800453992472502757677547195393360643017119300645651580198537928560577309213278850667287291629291996411567792980521185354083988532613347963047913686141720679769080784207955049688245242945702450601088131773196187795427916503167180082473031376304273464755260801157444705959543427460614008733378821213168753923456943373482791535673308040963895519924009789973371421324724569983403797679621373901485855639429393552261077455646716406110836160442197337842839793373585401183853400172303417041651045106136125795210921592367823839443925839355925705351986689189414417806598127030166161239822158618938562164373098486433099466958832794650061788708828104971433851549669726402588216032051944568604465580236294143574568189449525817097955882386898683896544824769647547232497672768903998355943988724995410243116622226930176735220546238106725888939583119705540071994490243497871407066030981263092500638393696907264163561984193856414351622313008857184837087102145290468436119263918492435513474820494525688892670842924184151287697876728636914183399509764165789295227494820036284669298838816182988440258652246180795942642204087755710669597859520950047797582793524567219428716089075282730769511707157441287919903664344832989099658235780079939359142440246014421244276001912506151989433149720312525838553061453654885098350259830746071361257175804453040906149731287840259791850165998736935948829675087451573194525067755644088188923580452088419868752067876797728295328616949872925163393586668433092230185272915701295538931805520740863766865067134147808146661147362425838764817258210851073712038175422547521366731348120193068064064373649749790886569804353446246848749651976730293356732959031777654712322936598980361131516568901344875638606275782978607770950802298587488359460754387751083858537924161208278390057177826547739075996501773943480808295656617417860689334916069540553791576005582053990797802857093407913066244455264209639910155861785293268716054769173583871430377814432686588456820639605324338055203630132487187509027300017440368106113897334598524485798411635630275254145123323331072132756068616324619807028859131937306029346144611990942220621602209052440287037817976189272350760554607176145436059609937675419312322802122146411307107853883259065436808854601795096720667965005554453662571219403012771290283893667253150511139402336775369253967080635053210831917059775203619200109133985322529963088455163348871061994190493677926807043797103227732652847455803832792070277305782219255449253652396421692027411876051365279795437319924379721639160139589505762096250988939511309118164771503395916898845550764388392480770868148882197444985325723362526996795844028878305487899167684467379335958878933446304681803618117850450217609871442020709590557624431095993068883999553613269549764311156505149419211272926472836239390129104344652459513597040760118373752999767436510104580449129131380926914459897167291992372018233744606855739809273804661188488169992745670595373673402936950819115438414795274942514778437590010616217921384707628712529666830093814353180642850999288816498133062986299750942189917835281466019296081587963161051085984952561179549911100720295892146586332086149514645749017524007251972658913149009766688251868919377713625331176383280824739146569792297541502040185303494022587335659561018290361248850125335525302091643420335941278326432083247083976445393674027713255713924939058898670277438620318165729580484206995802276890486267673652620464979782037471459201486913579742124400045460043133934837608139264305891698530227151902395365713229394666798106418970031789960196789975433019600431863671456613752764774775325025042652045769277199632641384058307481391103194770561061817792245404069667337280423016019891279919051408784300306209031278821523320178542564074193926152563862985760427408658246750984741401595527872569375894440448498003796682628729588095935356132651755024651840491634623602173409566693417882602437276549937047478535519085050801525264401821690786781125740138837223985966785070208733651783066536448375807405223153975321371809255842586048045922772589389766965435314887881355290251319505659654769561484700737597212293354343658058569776148177226523080429828796116383201727670730960941053725899808158865118573816846860236448929212479884475615350424518854229472228669736919500035793050047811180240426815450959579094587309878332918124241723374064733851550852697522391648360699514159477476494873738065922521734060927624671450443746028853416119949085537655532124298997143765298120008589738335848793953311563101491342832779015476127034993808869532528123927954614794662837200257604318435111445786640307552993310368536077775238607575950862933238593424980337846799722323009468286957406454543460214270839316353997360060118683338884380059225655032376515781780316109109259939428396092924263148453039606289862125048401268875790372108171942994526374972295977128345139715276243105233724760854195023150836284507946748075372556919747774802378022743459499720995079792907741809515948576518511076610528293485765827350595099383263588136787283189150383605939988926670444435393956519267489595253138988970070522863168950837361971149968931101382187905804027726588887547152668748339690440853917399448391951340896833969796978968165084692897405406576169856621220582938233660858676279712492878124954030272653373336240584928673043992104934044860429131530455132456396313263955417294967064015772207783685953705688943347502255471900812187515153178971987134536215394181405759110677425258108090742900438208891793350588856426135026195719724114428035594806652766405958372087014530600988482031884270792398343937658845942159705161084731660245051881656167981196950322723916226935909098589053025931137637343831564118407729792870529056355106403685976682990822311516531873051921716857360558999276487436801453900129193142392339243831019630226629526516878371168371740407390217415166509787131336369803424625508803526397667943817079767255436822919805261348377146674856697199181197485668584775349340459454297381041518216299690513700894988502224476817049296397084333573761986121564442780266884499099849332114794648534980531129921843380440976705003519987281830568297345500020896327052450184203317315333805288100551553904579056068854121695824942617748635446661847365875210731096756914600647032094497211531111146094572521149960810094313748815742273934184951631948507702171646011424594613287585096938376518671420428711799072629319169021499772627733690070208254185136202017342639620101906070521790534775054583935883338608622655614146178917545894049577597445149923139218900593494636044796982524058014566404308502563310614485476069797049160863474058997159663918152627816200199431899407055426971450423049813139706731451590371000031408305903564727828280447809111674250400329632024706026504440867224842149041616238175365169771634272658381040097361479597562646661344508109127582193690520486244602429162334479397120523579216077441911786619840551884124371003721299612740472260131949140935462003029227279095749457543127390117946103143587128224847374990297683051279854537779377499579502433675615734660954920578737456258584551376333935772119419105011133411823128551088541475384612871728541437463040925793157356012375593977330436016358011334371041189188269285194460138061859161816794974019058640023908136771093212989708975851498775554548840226412362140999254916097481036564603829598933899949749898391254182692518526133295064185763511519272061701803197958230239221154763079567938195571218530612368349859165574393893896393492101849803464672674650030646186543158012148421039462130269702335792729847603453599578347209127385236582798730771156300060936020753365829882075735731570738771889858987504142050961372475674057529365904057023704617634290078195958440100655930287101484369698852649418526877424914604298380058629082310102223164460162969193176957938115628352754133485757453263381735293432076198429383934896505555550136669452917930832071954969983095660050452700031195028871784378121141886178518868357242458406454807629642468282749760358476320279773957409010080709338969238451347545426913451434956106538596848388187242988677086212954405167239598951110088585948304549172637657132870897492347063408237380118769712954703811064454182502855010709187936743904789919275622479144928472941096846675134382143327199392345050012332148701846707708290781396861529130500876662060433471364431143187450536758223914892509271496188544556963852499132214987859457701045134059376031596614854729141980753716964880189918540475088446756690375847110307723209724677082698907357418559724701089177276465392186729588684998757161115054607651239817757721018630510546435811864151930871431163476637555939438180747161840573016761910003056513343242542495498402857599011135320007561729878765554096877303225538379063334041704139420357336132438000958585959757884207365058205627505318439089124565363117586672194058037103524665944668107979663404013432481131191558832758928783468584650795782943794698781811323869603244431585384977813403256123061122745842991218097768675959966028070147160186088718193970788399644129497562948886544220952868998204244897683930901667536501860557829117000141635931990721729205167846707717415728288862246758243961868033081049072725166791071767898908911656929248715213876956517076086827185935438362979339160111601491150786585343925744544671130988627473343612689852230079820624668072977092134209006404722713465295138868644070407120715902290597761288184504046275578595239934879284523111130428216060774055127289804713268960697274299528411514643233371534593887840105306477432720804582519648622601003875649944251328177355597015454178097185923314759631429719518035298639882472540958538055117766175519972690407717863901017894929356499535971785302217569028330217014763426650520514460652537182037763612697335268866003646733128179140712421458982319389370979961849573431741537554991028959242325224312436688406880440121415696946047930879665690943664163697946946141804124654769832161389763616968541103242747846418890340502694930230677360365169683034443262593260030312006161234275113137034517629727215532674987137907126084517647097066556694175537776950072534786600661303507020840495537427191512018747781749733192773364395799118617198059938472368853683584941655787730268563803969873280976001539276045659113115546731656271758372389982730405245362242163116857806631400681887624542937476705981260755138809482821503005895471400552398937588808402801782731697907675870180467163422252941991751845340367686758246948121386123961482433891913522279540394931094053651933188804808525668039132244402197190000074896202462583301710915140428196909950553909863378917413284192893069684476533436001116677572932295345061910161980807675008016972409846896247197763176785754389109976758009103871154875575102082212106450546085309575803961546370259783449533411361916111192141343921378848596907586771373367787658581470436469876040997824321817409915061317429254370606114607515125999703895432979904718401903345605660220448858993885825187935126996888261506548381499029880167387753220958381456220143953723262086686701974281697367557435579604086219374918515765178850154009566328322804745023828796169526738165531547288234413115776015216966195445336976898981774654680009695191531195687700950314158711655152910037073151585025488184324511734825449143625343537575605914113846233062788075262278617352177815577315793862725014180491879810187627038028541925301070204502686041039553786559789056405060324798235434384175262430578905110773388168672495573855265769489272429507470859092958910832954047361655562756447438638284683886627160713504394651109530814541231243669099753454473322336959982599853950806863335898598997595519958862255982178225457442279802651858925240855958739009683318100422029301286547365284156521640735984640144857272823449813245623965470965947556067813218333612875876697075193723608794723581424590974984433266453810780433138441282344274102513829956315601338628358322785463520043711054389508784333931028772885821060622833052202428349284654897377753375417330549372797121179098201732708719477019908378358224862640135664856661290061818810080560443715043474194238475279428724963451477710367540346548993862450900545779901856108698819716430593521187888364497684530069453801380876964216884925687821613711446973777969734963923821674126122434895600313498574419944894776011750743826895010441768794950366796071576558472126362746014010786093471610550974206033046205554689859834526146712838298477998547926138207892676530372999213496242087562772867868386802273099853646699899730157829237193871995647373251547956656616313032754357147103737186707495625976695087013621944932699256761015858529707026810457731671605741178740560689940080970195246022703012268924744198276632625546369869635001148077107350364441734684772109986608905258290455498247089186749761643062284603133971093802957701317406206534037849572270598179651611964613380654663962219823240297867791645118007774682106839903372712884984299281948418566831172858821234889122264285544048423449120850545933353325343706056794008485244604295590290062710912887839968299962653339949809267664911094907379096255906738260310152759321459356584457860552209551658451302877730875822660712539531337418200824287160201558265899604780666245245678641794410395387769810061407956684644625057802753945089614438562736624739980727705306011032577815799043613002598666272400964365126528285362954550641547858432078447319460511621790989188317382001624118276108537589667665626318425031374088368999027244066779636796781853678624279336845198157687729276442697698837643200939717479305631810891289572384661434778923858689998377573420703480129678265257340495791241481283177712013923946396199909203370884154328020157958810113088579531491820698104597484694108338792329328343379962207337414150863186333157365260167124898112674857006562710596310905367747274290967269268542264116389585001655381699576040362586090122964380623888990382967279975533931170941815087743316436337808006455395125183433485135681519721405591424396094541393904311000246178735399922150830728797636971610552887456690643490885123106794414700370967373767810873609405275039377396560931229554487876022913931031975582990495173806096264023551319479589346596129864315086005792422841449991648821269973422296260437664102473028879803930380556471730928567267067255046672528235605331377372457124460456028244416165474652282364918655165687547142538824150959753481308186258315553089649904968962372480193021096264689620925228801808017007639060133689606943173234591481120611521285646637830578230207582388689256805086948745737823141553006790293216955117345863064992223566090334843723737863626820261657837640584657761260279976165141990595356613332913287717035484810279137387703430763242800254608693009071202366467447364871125586170550622955805392928586789618556836617281461072772295215475764135511210942605925502302098328686254371208487119603260445065723337139588009840567926537727961859259017049229526112522808630769372642184892618758996664246246638681866695699124246081481030213321427826030009091414765195522470469954806005903328194374180932398946412225137768161355986171675522669908659965104275671269278439712637878525928106045999398812030780916100675562412900570299812906746615769390566418469936434615138852039805174494115591547590956949317259270079596108702829197433274124079441018666804978248598231308069660816808505548423000553807975652286721574929772469916479595061335141274226974255086768490187004766653672858105865048682423957942529924890515932522191090058030538553936704125337616026500991596084510893676651602077150504842643028569537213245572004167549706350684815804872859812597128400410110863727430920076245391156887690211350942025375405336028036695807912276531247399888983351449227516393223610649356943525542933402149092645471849969391849428263733688475828018921742406517234992341837269701919260955944435957632242539858066007210690661498512166744378745549106995510565789805072788985843955939565343197075496890184160302709225979674365863105252066524970677826742236906061663811198984812674033648700549735830669685233158287071872211842758976164608856639435121099851084893706025496384703351606475280839848463569105613772264225200591389139279968393346276413354308320887309088254348084930848542646970449012365886177242693221397847988633364618188989276875657721244178090551125061273432405852952986186384889912099111480179582866445697495792445645014787559110087751316688625953562756543027529686202361343810272273474107840524957366105106453595995013487904778592101817036238879800260220025196236391819306325797363629751152495761863030772817587240778986851743530228848129337728719920791443965425818483684172326929923663903821663780832265933617889078410241733441420824067608738553224402469037994318943093995386382783212062421072233712900614621551787438956306043299205426455036605837174743180652540827723144822373633230728589618444675492387858365106944793398552848615780740856850461247944797210583268638402068628638947226762437096811890831409065908366600978008234349102518752039140442944965251683113369986876635822702694789443951604198425472424852831357762064219038568543138483403966158781126499983716775441948717428136730524961737397415782317321906064932697715213873809233231092726635051197354288367906179644376012802471382848516837433055706659077952293393723029832261483587377337502836352834700139581400727750759561094487317399019061718813227880550707945500890677975787506336640497939164732063854029831026736080923991041261940221594894662279281744819679586604021452870981983413784652003019213773728543377041584971111134332523866545368620050112442237765836907693662452397031623966241581781310036605673850483572730308546169856505858540852668592116329339121965858470867461618730978994607963691637247273364540561840500772264373356957369490979639463599647824651021749972195108370442754535017216797528005181230521558700430718421127550139457201487287766137044488429312169242658755090755877917617684132448634910185880601755977658496860764939190129378559597503839584408685168852810752010359830302157622105016478950412608388362995500727099733436476207519574979276215601738805976101414860204940428727642878251871980958321848585325067617690828335992742332669761482076386083973907519966561090581231198543341620528229143848931926762207408338601843914668094577130176560295728406628482976710934015645078084477685871634768684104674961159269838760729345119155416068560318385985536490733020746553139703606863126667448078464392250971250032255240008078649741295121989655160864849027003089621017876032898381205608442210754667271133963961716809828533418582109795078115548182501256323160839627326580461846223558160928014913162134538434273271060255126053780897146734931754039110027934659512691166209854071735361778540227691566476620993745477912796412205730927354604445764463139209856846763060495109300038064698212500743041637607154974587667601863948169122714236092278368228778971735327562646564497636611579509505096302134061350043992228954305165968645911734369842784266148877711086770425801619439408769853180841656700056514362884699988664104442025281673625087984550337552395564129646861250264587219523308852529817944373354218442554127937769483237290749562718134135779906269638797561831728471664924939019132336307871953668029649624208753509591121224836881016476093190745508528313713263421378401157801392041786071538342724695796659087226700256327158334166885656763889225131511624650429005167388361961626065636985184814233243416474646628290476708299569742414193714629966392882616615225985110173604896189721392319759635328895949909132308632621850713394075012776523135248927506039806331242363187455909400063547298778349882468704422203718441573367104824472567635898117100899039312023252689111700550165062396739836751305751394274234803261986259373348050026136905055493928494053382966555780369712957815938061973894822174706518110427477344649238173762699793643263558368367559983419058428059821126117783904258620400171009668868252436974665577483831131356425307187558945416495084300009780347644153091761252708045235947479706622081009019628807846748894776313265440862979786664336103641725505160581301865015717058215206183146426744872111536764764559230162284125236985397892836153925085760736366158367009169125444955228978433426941089371301339651310678711112428292271067326937633862643362774921921857269243390237858499694868321419495309566009351995122254426347032597303277934150248686491706178382877196750338019525613378804290410277925204033620523058419493206737697995358477012684455121813701622070060372288499324095573402299292554680978494911907041874833711703781640891045578897423141428016540881870097755071559838413692214121042527757697502959064210539515989736442118579632323279501713488209565490825765051998523756559637953893464705340873970548364176871908654640245460318900341796089683403062369719999361304675268413063722116787325396906562730339893667818100224300668115938390121127717163083020715629427985153272463896906242267725498988882278747027523134788411385467382802268483749254395072168779726478473485589182510532305914741445436303602660331388384056722765403151293583678680116214855772506643099872822837455180914159594161349541682762825793598510061751400480750397232148029472169131413845434864430394677400005831969593843722582339038221495305358678179350630070202230836778689792988848126493120998614625082915571813225313656456162225793703689242443472103862520336643312380474024503390901744499658224200702593765649337553758549875406315853819060820809282439787343419781540109385806355697042125814598922471640197887445299099558033532348400709250916903349435919491692941281209257640002105379081787041238151238603226715841442914622474846571555738351740488530591139537158117591403472742435388857618786817435323267623827508167003348056147498383148515878899027380126447144812984301797114859063252842050809742347867224668946289505302257743669238556257248260393899412290286332553680104596088388042613906719579230850947391074777290060329958196470341104254508464985449004898388805200770854026002170056916537828845043415929741294035877524646646759054193190463482440406755413345583664510632614740274752854550872740095215067239029521834433016959811314249684602889702881005728174985033138960763198334060887135001501305434766520889540457554166239494457068968944694522094385813560405612432473329660905947895640121244877251868313527034966124899839458848107590813568642268084120133253722487339021308478645391822432997329947775813197504627600864209517985473885227001080421405934021975753159028305995767573658780941529235811394477059157140712636838649979786817608109695647144432996347377718612377932897291090883790733244197906515107666570527990020147800633321034127374167149830244891386384928781361344549650393995970389502920162573222840899752103196451159498168156245320293341175189778156857377590023669040858785765003637113212156944373557384029692882188927172370729333084825532002637749159810380508497939222773806669975204672743088382722396765726324718917780765434390533089690889159675177796353312859542003786693066430649534435076955929630454127226442169111854752997594778107120975205707413653137583035600548243179346733475473986240829718195531629241881792630477969138686169147018832711621381699248621413228464562610334184883554069082211516256586076610433402764454478250941435580593043141038214866359778997208724485333706268340595664328764561913388551141940861511306452375545438294270505887427546167379670018921432277518064840007574305952790202057588239547676620010452426310703476196808968286561669771103683276527538788874232305477071322460849405954850914760411778901799692313879605665819377763134631739698955607113668949943227551027334972345126503460616922514877214702235683600696046108983245899008247522820736292242412328086598590775035995926691165723604763464080081952123603492607298821683038704591616419841305551793551778417092312669770786119182790588590876644627197858224139081813502918866876519070743811243740653112552307173765233693051975174110830508318174023021738107181046418062045698824626975656266908939278128470522988104163388659699646263903534047518863356361684178746387977715281442714636776901228583810996395291664328281259066725007879096125861866759112594044985136936742914082884776483287244519998080043434795433563617170754886485632780269155177144901314713451106942968313648531561931207722517166850060206891084514644469996905504779092004701959985106187498637428727697909038526695036281404839496012682255992525308300794641515613088842953749862838034651538648214578734928510832504589368132035882065574909248931888781577343174101358431688621037876621825109789703796369279646104000113594062919751093886837133844063881921371422530898340841022913374090664589710359340376905691394466329106200584168712086091795920966809332060871341551264736559808420979899837723908411606395282459331237951350966423628403820132772977389092560321001780045386685745551702680131916474455383946064572644891327501572035911007889062783386620563277437109425621421297390777957820972535722463274624257127858162825161384891667778057957442762608812356267614584714789711747282396877402646178668575320459142285464583597993267000980860107425841102992265733483774781471335322656022145908065763661405883045794970160240964770199814832935249667316256819162102564081375589343887544380157623961493677115858635277083277449315566486789577525195984925895243508130107194345989844466991047300268802740515722614695960642755780687141544731308116671162660113920595106570576734410088341839739897703740338839961166986989765728577662887926787842677693331894423037905563041873949029850453266590774282588172153788919774988946552801849881159099984081850756559103484712996222581775776203772067781259027043398677713053989313162062375984243924751596427865434089979271055940712514306250600913834577679295391539022186716080336631164092599569267203125059398993833213519921037096764888829397120958249464591961208720567353979402101441416792795467516106254177502775066884053971615467803427479763639553907626745052466452380529571714776575439727406372055568972969841845663656924441252654163525110449219585855420058791638214365544608564668000124054368445407580607650354830226911519435672449630818570025181450025682533512011815760865111330091680524825215276951582396255014728587780861111247460285544557699329701619252675349613795013414328527707579455037092025849823009046513290986443514581684557100393728935839477606333525570739598495474150865438804593886779406189933013814335231426349371725818968419149728753613089458725578757979680430917474082959747734613289793036098132926478889980151228748515009456975724526262243868517429405826055489072627722985598297961482450758000115844151871534625176048326719132613092851780607588912234445536154433382933848293291479911841815826642901901571466186342401240675710150485165269967337940843355872934437351301175147513547518404462989400650561999671168557058578134216399013606706679117614143880081285343488957467906531507277718483480274319514017298816581085772349286700142905594959812544929915381063437838810374754168597502883102589128790020768583336407155384255196908499232864191534396392470993312773783128474827203711872113776785174742564961031879431213867859953875778500553242751064381556765921010918479686623437511606197857026686651398987501011124045431599493614821811221350969297226886826804541788052747602506386276860409588899372712389325608291135376256046995417793184731913587587562264889926217828557922855146220408902448800325739701645950588816788939337685108049052091603036130894932851110854581019709949059653357972156501557244535822689680117248278755504743568962913328241360317785647246774150811380614736816506840095385670085030881302904586827079149504049152718372414836886980103443268183600904738305538384845747500857721200591877467890370079219052130571097190773444885601593195044864658832739982547904375303419180957219360869385826721930059698579799571542910555256782117553612117937901522343761411893382285933416451447128451834333871056915144144373488913743553823360300652077707854541158457041503375244151832109676951234113112677098016045826756829655912932504355712127088533690763371028833554075143358439131832886066104564776149523498830476806198271848341570140200330555050239536062774437885247742418524535114958404252628411762793157602598145909108329406681615297104114814853084153265987793803085057757364486326695109677687607452705753528393200504069785121454097344477312466342368074441163270937033392657108064157166780969857361391294763267929154272447716796431382621539343396071349507499938621427127058744513411695004814988604028631785386855590928249898581634166336832520348612226846445443701208267318937158946870328039779820952460668581884205956401919764421874591975038540093609193241883120309133487597962896800197582888843958330786944509311847603764142600128015531342210181913727119318269131206738869294418431473643135332721509627135312839413623013005624636048004918597363676890773992308721495539621478255020683638874808774813428504910210787054771877715124097767154227580025977462041532170963083269205814503576004993907516198485751431599760403443459714734899508073406749805220793896918818999885604318958573564139317672956471727361326284326125493026848599437417046787712649209698501837759148494834528983092273118014840336141996059569614592050039717025965024069700763768095174787469379227512448999142242343585323124540881053893207623207121475886828514809092134767748162597744293472723598416157136184066656145038101297132780693738485507325004068992890921372489923508586328234625944895550018177794476288579385114902998813635341946536433534452588022522622414257251908894474945727148738765449587622536494535901995366302006474544188466826975830012436443558669360297573560344588774718982151397042256101255512895067520333922242854289977662768178294560881681905600723193450058113240288210733297077345646036710787420926738797641015924980936291708577129971289762403475679731413677682668911515256252859636011644341804379466068371420364292881037569218803550127299610589205045767243347062569834049331686076895707186459801839016701299441097458462490435232510806489786616992694383817550252102589678723331199596245059043814308718451243378165216877846694416094624162330367207472785474395131229074308745070042247066611126443519624106383537679546783393012091119981301530417166947410599410799472402159670128062970497890687347560884918720636227785110592159685044914082861092951170937117624822609858105312259353022217055591316900065736105261216459959390423398661436893775577106548688881391777876328362326988525680168000466238941996847349647408527853428207895677453977665636710615277082957032061072725423989067367915764848578186657921035977051736846225020052562541923562639780647383641949187127631194106508256590715377542817177769636028435389120877083970652931819996876456481310741286155629248021036629617203264834242945896275731402726576888801212941434204997740747183865295268385522209909617670817014159135796501260625843397450632203078946311148584419863126921432882361232281959030871391393012883888924438254964152565012046075632664858464414926428068281931945101171797405198072502748622413667291801578117300429917290353540132064220861010155447023621124912154747233743455447388719503730578293423216193449798861774695337287968290309424296540950269057700349469347967762396283888903636147297046203384130743264206407448733975328727944935502326879868046485966747570453160349932257898517111810221038995547138266647062790560222769346964027013266309386620385683617443709722186944316363363693183863323705446418618414795860190321742967332848943135654196871813944191131992357020279351150837079257161434243831607578827932522413649022605647114933196976992536318061990270210509045156912451876821411214792863472386933460496955205776834171928170446926297226387417515612850631707548267640563559842005830194975912421444471405419254760609503730548635660753424257301754576647519185391925066099039534432163252593620192102342472266478258659581505774030055712655553498353826724689237724500868408286988809624654753669019779906592544785567392253357919100935994766887122061703989569139372488057615325433615943651389904882733069225990807813438550686394196379964660536304168363574410390957170985191127486725504544059091063317752202832640786319644880807548018446677282757739546194683690520297914680528000802094289942941474606315348983614939223956632314777405995806875844474154800493718230132504955909500359444083445135459864837379384770598518114179644456380161147447208306068432357144139146431797505316390197833068074952286083811554259441375936238790625008056181214777296609930684173875946259072333116054210431834060694214577871176024727940913706124766334378462926341950842615733640279839627718904329973821968622959875464912013254689476426309311705391975211235490199652709228815678210631644796848997024350743895977789902630505909103881020113260977715863352865538472945685212605067901861843813095121645776716452953806176727676077677647557456495101850251089841051316131079634117270013045539066128529149636975466534799888653630623823466153947265283142837946741879348687561793573222658101321256493636078494109963530094731982052370067080690274803826191448829682477334562542021564993704283194069104102449483213785066149066050565276056217582844952536386437731552414085139191200665290826273961572576684009565684026433770804539123867904344280560376328413195363344065053596145033765294487534830610837088226008283495165270123418316437253561090826861195985984829333126946367034621935712649615495425012548627005844926506978403114692039337765256249658202711985422700892670693491777366824056889140968836585776999058721689842535579496206603385349073813054014361810451897285285249151785724787097101142694465567015992186049530564942115694778965024141824981850079645688088668152575695621307039108879601710906827839781327201122585372281973838802939944879256308846282255980148307798637753473797233539205992531959536904650978103855650587377214842751036077602274068606118499527032864962955104621113021005045505213162625375959078248085930576201306015859806590864211341675206093382864217668965168197299838760137732106029398870106585559418079812435246500884119885801117483902754839919457721874550215796040927495516062411743503842266952551720021737730304838221198124754330047479995514684320613869335633213423687245819478060978258354250913647761027014090161818266628981579388848697308170948128083547048068316241990145350048118183553664688654261895272947144810251804935384716092457714113263305340617700984399089967248273450501158515638554532604244880087166249356421679331348534738447484331612641972105434287146136524255474657336495548311281167740464021527391101326103571297449948521886981722994866951851531426087901489551825922491021105288983648448599299526449268662384085379268835597778754668564815220166769179831710732489529443150509096721940028909933137143221591618144795061922858548886150477433128967468865231502457790823248596126739623180529550469499830382315214484806292302657695112893913817447296946791049092338612393191824482856222730010554296113959045702261432369071277809574050756854355023971448081455140310724999049249103131746918296570529587586206322966071755075278224765254270841695452673937132606473011929006176571110124606362059782149658874829595558911343153628284157112345780707659548661490811733499368578769111076396345533588891139809866268817062808358064603687313106539448482183659590074310409982170414988298007764663352105423061566066279813326701262275661661157593744071210745061329302614987725241905514478854898842644025114690549608140619883901569402284725059643971298568760470668219090578717248125675779529257396462109508683882125236395076602907586320414474816176109523723142916869761050855601503749860618520705616823948301373642400025170897333073902482214633571039467069158981207516438417898141001727347563330685896025467192009621292085068473780862280690224707827398147421946562361628940353210045637916489336771378755781494942620624894635277545213593948101610641856576579853817645218341105993169982906109015125880256869969931060366370422578260447803666225705190541147669694802258191105457885943352377397532300584381523833230234631551497318911808275956889562496038418961456648890456325505302659516208908618684463341488639975452044333104428928477528475653980507982358560676955130686867800443293023708552607575267218537876718951598603604977850916608511090732386705146115456723318223043361027140626863903273176476553374788323214275527596551271336792614342556787509497796390762728196356985502380066540393255273005425124762540441906905749968404103759013647154860183914381234329473885560108585719707832253399265778056057106435947048928350290267000209202380197318140707319100577149659165560595223117985250722359545582818039263114235225277404456879169339843957758484453632616530930064271320871868945391458395029539042888893030461928715283739336930318134496957921962509025229989139627057644957131180347977128919342191070421124026061207698102566609597393229643193608125215923979113840684250302870389853142961500311495949404417030733306485978733733741715842338701846818206483564227373635733702478680225035580088283854846046897376782427146493997971555251528288612507974392077254287210975565886110383011018864700357201573362762775554477317684683162354745420980842128192544432292052108410104850812593038399257845941431171074174719184088637186560656416940329975671010112752571788482414942286492974018755464954745811755315794926404019559026898171410005046502972602216653786302776005722619072283823434512744163015146151201073029127210539813051486970453229356844420467386584921611903866198615397868303756679676791225509926310106720619868937349826486930356675059758772303308893872589796883532895725164800193795834649888481811077425668614218864077985691277516610779259343492334306431357517593666618830396157022606990382327528865099243525278198381664378799234425271561179238727133165786657086221077862289691838340665666759765812132952865768405924010805815309603349997717438536956785421700572497624695951171083216876076966727871479685971022664706030827677290325582521195853516868853155446160379164272976462700141583276234068152979356765861360249676095116623920715988953406189455950632846231252497814869549608556026083242295002815594769432844035608163378541828373138509707079608206082786301403499668978584047251352724546858855606866303938342728822003000178350101415421286791607739646016268610728768519704029506145029208155460593284904538146424152077131865732003517349945535214674961632091812437439649422152075786637756902045043382137257849149331088705339769109084640971590368704686957150722744943797481950591486288469014615454956607018949352568607256442211220004202638281691726272391950936894835446904892966553636427131580662063823370156499429331360784727657735305621936357007363161682774781763203853776298207747484233090607460043996935283417074845885232846520503027997900384793312065136686524357952640101818244104565817622571875359803911009531902782272959595464794308007116337832088049978025725524358403633626762709615694313829971417421709402157316184979225742783937301334251320571082498015762464721249360123265694006711421635667845171406999101547282748181058105932977580722235057281014009008955129638642960431049499877874746944732020787014039335211575117876938689371819279948753504605581309811413766007601347432871996485504517817368310984161673435473439031853638327184045708736806455301186791255455699748902490100756330768971549568981523069806899129373619989329278873562868429775484173150813086002866629400863614569501018116287409915604413792951203429507068842567986376547000507845297233261633535909167159718942234204469384032247796792860675064197388903607742188080874601681658997278827835759139149872302891645926865225514252539544441990972840828575917366800042750338007382751753629775661488110462575021946837106238777145392967005963173954587525534160832022815785425825596019065518813267226505125060645922625602868891543740832464626146761932298467454291810451840398745260058708417150030813162454021791833962688934872209340134083461711271856720822032714261993729009579601021797689661342707460126845139856221747852794429422497304172236108161455757360779810548025366918262967458616296214594966605806457141451594338834900017383398306273058972437360647336631965136591202315695896023746203821785913577494608470716640651776601897221112578587611065060538897666135706304213953448391165602638148704396252921715261904773285175368462607798208885839230703691181186615908802845559644332242313706859478703074408190428096800829543789690083377038296384361226441397501276360054145641052187571595570932361739559129407369215135724558610894374595427908702916787729662769212756433190566935889299518461772003713487575072813321845611841182997187386525618436077561263263806081851102885752341203100495031380890592919421132150198445545784532722658453732116168426902115224244943120555568809430046812980136701465154477561154678143444642057550424868442522276993792088692342985378334146413655466946954789528858735578786173830616945143427670242193731519448011207269232697261114404098534910924472382932731728701998811526550749425547680327828263337236935243537341909193419298657626412231236606792937742777426846725599400258743005404930218780161173614999148970791739660095472805064731851098134851347265608620296465142851637353844234844648560010330883248210756454102986964629257862152442383729936957555322386466490844966798263130703363105854243036637815993375073441919425233878541694986461190434294072925075144644919849995370554845373885084244097412883073176288331285268855535948525547742266982375844165473335289142266455542209838255501685080757956668566636697365974081631272812309070958208087052051695003546779117205978129415761789415977539432280784565391988612615475334721084270660703909667908693573483508622027579894666562537441513856041408409347316026326432113393568320173498993069590708237371684414155462127587866471414447296714203089697271372266155069646452234913934618878764427698195641465394528286824238214828257940589874820615469867854378793723369806382884083321998195136804509163246172106457469191360038915013041531394601276358170167228159813380666896580822308278620492691937358864406987406593966072726118912144654649215952317771964950299115675780564347116656593776706694163341129520083740086303125919957248217478321080786958079971330571249131083008659792127709793236346926808575877562980146487872266145966893624337064908517330948531082406044320857846013891724759352097742189913317502006310995248569353673944863624698474419598431371088873048069643772652711203132238216864884159803112437147839070677844819410671406109830624107372895979755763119329495662554300841754750360253162953077791456890560916202919054562077143923146508781526876598850780705521117360541764304808986689523063702493037009163855084142163945901274291816333812520439897177511790761738514277203811947482751874404343938008476464304483624679752050620134740565675532815524129940615018852064087818254202308828610356279614462673452961235996857609006168809226456072240791509959316663279639450125748129140303136165726273815741359223836276679936122341824619327199400592142733056815086590104952943260070025188501120252909922644792870942645926410196931746606275835351013745995968464365885475347078519029616878387921535799974732468621878011070825385193342202379849913979980382402700102140371726578342661985949521350813088590087981228359121516677833244216475003489181562047626858249746962156746609806898647503490752687620349140937546108960558170133380996518202303998463569239221270744792559575313579724465611281265391302279131705328259847702796387279126904108585444523792127391371135944952488093978844486894718820225622332561251059985957834310720853147087732730486284018423640221641468813158154676805397651248961493634085464231969591655401413557370427516920906770144420680365155692722603651246978358984977071294584250160759901599670844777370117111441239055514720995419373881821792784494999661937802622330751529193169496824480909814528363841829075259583903045001856817187661133410673403849747982994203236063125277825197675481985410238978283180531395830305886410942758356919580263590601399530062276351446680295026003407691807489168129085719942374173163106989498299880660592071914459861443686495947644277088345972503742433318237385072936601160154909354324305812004301210427555958402155284803750723807857315289650845569780546477512320290515818356206001682362620535701615858096532274707040514281172153740002172648408632456118785179057553862804212852381306906825828133484013712128348504753038824434352386936330241311492758058499729236227042037213656220780023462528005109846039922316374507301121248409698500288702899648923966297467114551562799784584336592442183308245579283054253369140141558750132825515657668451920575683577247749814987705690125912968276629591439234711739238349740750734602734468866050600010447825045932274777672969899099219902120840117127527204978252768700550805405626735339701846701657675197888148276856374010456034656280363975809799400959303048004363792190748864016238470113467491704277841344195667248104572774611034265202235265633398507606479585303222858142887794674161736945403791174489975962431813397475222009987255808181080238869421339342872218276226791005142342396381488557675775180003128450550663526772908412693826357971220440867012243710545759697912863535141711783103975611497516006327518202022445775040608571427323866850888688968382247346865592303538782045787724501247095187820549055597256501769807687773265266815706846568912675683325436740564890850934290683817177238986273695995587089100337484969716404864320282505511139222765689083235581476859532670379372083752012477558241484364686390424340878446488277846136794126640335367227082013835702587072249628783200967422969356558329880050882036306399156855704786233978488940474986483948299932241363371595097406888608916075174377195825339920220720176528609591081453575843194143395608163327761080499048004684280112064303626190592529396154662242308548989232833702117373461695067931068884989759166934277072424031066284328171097119695607277060841737520708770210647802183128718102110471095845073090687349243118229929781273971019487896795394542444115937538061786046308515624025464902777897939424378652951890554784664239436698139804626938434068294367205647511070328162705525302984541470678905363238217937197414493756823448955793272910233550339662157641906228143636705950425807483951308712132699512774189214186099862872071976530584034413668597601799109089735527513276043105643854494509536508550347603109104917689289107195462895196972356943780744947654792497058262103593804427598612598694465431726121265663057327006485080756805673842382339345468269804968255721213703317744303448263552575190060091562923237320089915210915765113465193456650953422829458434313079342533944957733975008820832047829833226780174502935786584966523559446937441946457070817961951458958402352927187119235907795901184029914138654879961627492622449658013656436291319413367464597353853557340456957144032289743233446126860713156427871635943963452319767895881783028274179535742596713912059840403249972786697662435913218706353666146892143775737208004605066809012148382170490384232206269539489569647840721435469292857061603801435032066105536609752468353500068673610633428264441189586905374067181826182077923728978482644954423303292526902464566879331191674110523817070117367091962728945713412411497919407713753622376661021415876069728722952616865740112065206841552080090018158690868677091125024803328476384824811065231565406395428634654493218510631609675914037149159720654018214692509016111311550133427729071858878107859563637617726446209693591210166406187011895235076392476323926308270329311281000319552358838112540086579078797938001771112183754650439789894182612988544531385606768394467693950333600047845181339062735620404244309324108244436367473513422418560130637436952689802397237935048102164957305477529865629143882268500067216707174558370122989050570918898510129148405614508337419636860664797138914274738781427456728792735153392193347831017443516717476782361882577450003597409467026580361574725772093512754597962816967633179025555566187760158444671524562195467523964961075118680956689707022831747836302051545615028730628756441495574586166677245645040750257172758654144447920321948721435508094946916995571451360000983907029266874109509269203607327279992370565093383320255872769174537090941884538911801854107408601407792735681173397887030072965683998901976066311489930359302923587719297905534805261754822816973954905772779477813412351006588792233187673103251567666228923380028357116602628727975797763045329401067581766530102672095570669293946510623591977514047606989447366919610722351916848390660121767132023658577071275700195343821519455341372341856499217046395000896080991360703124601046279078943882618677829225785007146006906895657377020449508502806870854840812707344786676371404067675096448982212676216595218970987757939806740284701501219373799673984527098399724402286386535704426505111545033865819337311042018212251546796352882937925886634489167615767739274779854860296651892682985717261667122432069432816513984202183085948125758465054818223120486527454739374175112983060165966744930665730532114617220798634233927220787654896233086055108809414339670122716842562356049832793494741968469745230194092986143228071833867325194216712757492544898648106116209839901669747868408346580617937016760121605842356834648869274607993894339108128710643429689187957254792886874582017486139920160262117184377602716038613719551837610950535265384051225651988176657926653616083116839614954610220047871730150454977720244324641706151005562525078294931486272602716546790579058651054489488124086467709325002232326644445590359363414503773449444067954917035319936314003440405400233708787097485215708800018749489585245584015897798723043647033066260647665874372585684669124410633040550333221778967863808662904528543776954511889264323909606103787993874398687723796415780317610706682951103143720502556172250268398710574186948458175864526233062859009465539144997710950558737238553366255038841213490041337213056410822484533515683891723720396161728921220065825525379892885395866275381965065542471175706901492953603094653685403681870329688638862640673303177082886630845588599028135163850677734461357927229507700646740690348187606770987992671984856608547042435012244380654613929214349083443193982627911498826189343852165536237200306322306456978168697629316443845953852519309943240636677099820466675676040409377788663662468529979860653593403558838903908820126614934075359106713770562274777053241129361938666941080122198159305134817377723113447257687275454505999504043461546925341887140490324811023974382193304417671451619893031199223424394620316487318550857204381770218449080760636453532531825889555699905622818733496115322129721283626445323040518574542675101116065304354827618407307911134911111655580018897683025382614332260448926983089304230131636736475153979519200529592619782196090893851793860945507456282502996346263797300897676942775942698170098362219105815822625472639246188503868665467012268967029843391841576640906279501424181642808736683569469871374858879735560683793390341779612434288796865163288739372803058791323691887866762146731497694138068944032258271029286199524123226158501592092091371765676288993105817840986526968438251886728777703775355603922676143414155050047400579474226233343714433533679071771151327378314365431508421418089577399185005451245751358647557729804492780424057913417585876860152137742331794065436550197073689157637555450804158550172112807100739763147493097785694357311073335391328439476444161917455996843322085619058506183388067270987279524705928483132609640880635878395440387283715266860360804347551549197164110476326502628464064403904075480446562401620539298907123021284156930666192092877105563249178785806511947464733719521020200777434429387896840720471186550892253933480928527541446859169162288265390186234184968712560183518105503605519160933013921427328248558822471984142361275691383859637044015391664751239849760407166967891183469122953434604090318517803772904128037715433511187575050738584425100821816477785788819066907754841682691613560786461207510963508221098004895235374072890216110138757809257903459122089332606372605202020885555302921996252575848311100308253388349948495763673083677534092181167005721020210166888254297585461769619864829209907212855959647757324106762329954662358288550459146203976176623250080960608522200660427522724759299791465461400731432357081322981060371258292279088379044113494436262383602079236834225141454539735747496311640692703816191012406560663456577985604305011786789895221739746238432187531704421540229622889614229983541482453151941367666769168715861314836601085973132633256393651931378326925006968914494461540138836385079881813673008866202567359330773453411258882453348444397729625844181231311084332673691845845466658047908832755488526062269027146129455505696921622200975994023139137247708768135534631634430882738415584101332458622793464448566184766535207363841545851797354493048176819701559565331439873340621869426885603379963621380003002048546821306089270369505213847975002725368506322041955903527628989669069594013055259684775787588707808367929068657435131430841615572372733565116488947844337313206048644868265649198275850939580782859211071716680744285294293421029709650340463787066055187919935717054996366413905668950921122723857513549911592832143682816601489616979351339475152323916594135563125698077693934660512261349598734664217430335349603105660917808059982508098071588788118974072358569385364300948480055029385381423056101171361518105420225403300622205617804626548838846648435275474237607613368547276770345559208534838540009070944876925524317589048409105009569282003286290031649141756618910403373382850969489996024711797126410177679486669030611949012951534546961899569773519152354624323149395875646022233827786317550892186079359831563400798135880206431150442556246415130310719641867135992337557928401976880193639760926108881125980786066181015240009400230955854744771427309422454988858325926318671913606295203588769196017504322563758593047082300231022927907902376801884099437844830973883114083105977928390310557999957815476935592202812537374893408154009426006626985841267040649988031396323676195307614308083318137000792993064787526350237780540379968759811040703264312798913957247746583461874568992540327463144187706072860410007340939861917370210617108707831571163054344199169859053094771187996130199692328061029386816344759838573306191943582672084639538854589561612866018105891159863669062813869675824191641025463510961850918039085425450976340221262942838335794572372388238510018201946777386776368973430935585030857895025601757437311912299784246337497777401586566104531855161810645891263065066918987155004506340904146145306798189285881019584242606358261215317953879592560822213994955219858864545543457563926804128463499381728641934665786533406710555785627487488073842254670490371537977282351356647456471006634784035973219672397242058785197418425252420808240058330754116867840236404193372646799524983810410920600316982113112146998581405751361079488527638398900668644204140965591103166015977137437198452194661610654488958748666946891046558959052377427928365803843170951207565436772386162176963496159732976397921662131980017180601503207824961780389048132676657256545777807224225343080361550367042254587527132851609751272607215007613726769957728679936823845071185857576323794105895699103805716771060898881730246753527172949550169477579379928007993098925791778357738585719950867906386587627065575927652141814482861742083035056597390842729313775272284326731935351646114450545280080282661550731166769580376478274162927961103003495121182312342259132927502099380028320996529315012565905937893161262008965819003180304502976239249509559477102352494733475782304223313494741303107255133694080986663544968885337058465232028256755741916549527993067340657559417808823390425057252512597386094338558190327666448198186845896575564850586442970185722731739784132948662904913055658466649953763875044347129053720540589594133245600961834003751859643483645309800010369746721857639611348736849381182092429518302539872385629661458884256280933417920241206108624614482737578674864706111779682940912016131471415205025088640978417427750779117706766832445310212738757528047840109379312469833075252422414486478799687889230630244389401481371975683235200801676710472535760930844597613916232407177045136436542823010073919190241326437602462724468607869774373433173851090975326473089024277947104782234010800981303559667716752343003086540176407681664834230544163143707830424543738431607357650344757711665011016189403917827167636597491002111520039064224511050409185624789831082398230620778494687736130734122262358631747206334491880038629115770396073256489720100603879236156028943274010124530355408197715412517687032351432292577070727424517494159342388183586962273290742013339436140320113027765131956064785321208294015004465534378922420257504340638620486832621953239274921593390347043725020894282726632318473968326128365966393612652992927517611566495246166669945191668270854313546286851244070429389993560422636165025877134557140559304041492700355280271503495817936081917350829670463193245106806812881106605772379967326337123098627484603679283031717285085848194758823816232583874632946609521357389644974525088204655395182823287326360214269940749463389175546140746339175093043463394811917824420466537930782829836216080067333268362781041844293816879949837296940099440878127345162181030288386618799849935435245022646809023470085676355105367437437057317442381235213819415218463433171646371618184680602752625280387945888054894603898046413808742178175461974615734556505536705357027277860897709166100651361286691845490251536011630575036505038292596883655862989193179969550275365824888164590436495074141114259046045511374074181637735674972349380681545058317530940275273626920825583060705479335416140368457851053226676662122145522329038517461132207181014355836130931785559906293868459801332322249476257054109369683783491993904080580237067760443200062273441949540536844251844825442521726857408697769232704437404499191720322276383461760510977005282748406566764996386866130950982495532346593942917898059577738470259804447670122126305786890267800984819303007485544223268615053985307629132226762332591793143956335767477567908562290690490288486656136015544577339830436516438366757854195678781711762398056176697477107291904647385935297994654144268695514280090637448875801814732847011246523423411144867252278816524051583781143082295367615327941567851828294899557049898012119377356832376560241513783801892958625907908942153047532049001553132808541702444478722927373342424951726688990924790872084008671159528539838840692326238872494614067238262892916276580254287046354520419737624968792033079555511992461065311223173077752926405755741103116377006113469745131155535139655982249190557866455290511646983766474107483238422295917676850069493071131047753231393086526696175536321565064879297450782856217743799293305629015092695553033487609916175449030789962688219741511408808842285745193121452919281158760768522772272499509299595091727782532498401015142857509752350268574993377332900285937688780846109470958809941155840388398817837737555440013053889106474602302191056305028893783069089647580925224559085329085411597129177700687515213174818931463714115864498558078759250355274186748916177077987493042593298015117787714956145846421346634449133397742374976091003009985122852506700145555178982563117204215453386248003739615180629797898999741003842043543052394003033598586484431763654784517537812422212326229121706900276963560366657267677198924342348855705508087734332799151138002216477914642130559088885919245215726445650867218612724101757301159983277576244462482718868054211232440396028737605620987063504249641539911804945312173623325692280614609378951214487200074504395669069674758267864501991229072289043571911101869662858367814235864146461389845485452035320281350561051253114792604593112596029464958652484801964759090352198549141707780724410642395477813548103723963404517884709280356726443224006729099704361109963638642093282992945714911414234318279365159788693803263075926930476703732271471954032315777409970656999782975832294114458005176466408602076280425128049754093780276344327628532476794986830998520421545009427794289446868065373508237993228968414158232667791638726236341205104881312928106299270214945644694768469416578747587991888652264582876521304548416882630192093758857251045645713570352465779601229827503954643984465486543590110111207403877149567220304517018609094190737465082292383399432647417517027503754760807941410663146814042334133261416152413020100971302799224729548967555826416376235647795838213561958627478684005351077213947288482101491131975204439368951481320994822606278870867388025804912243377312716816876156498267130580999512376406997228904538668108577796560320088163091079911106305936370910747081379603013507245133761849226646076350488553516768290908664118544099650813478925548232724406359636758173308954349449193404743782631994517170120868666596308486827805607325560904180362164066224926973659828133792121207316430778241596996715375798753443469015581895990570589254621201503093352825121889641817463163920202080769307070678901321940725295529006908435548184209064631821757347460750612913952255365206666135105813241257099302908035014398107649604549294799859966477587033413142057679712726599043073660746432681459303721494071804005777020361776640757494033104079431128266510894551158368638753297883219323382191793816219488017193863415056041515840031027369436907908986290479524540045585824128972492166550959503755784792004837084329015304345194086807782747555580256490585653899600547199645533606962090347711727192529612656159075121125828109497745022012990344563213549153235055400176301463111807613018898321342011013616934308957814891057504826370766090108312845107217227229966472576256114735541219718530272164640911126736601232138286580392248433171057090973263948893414514874096594329212650467787345181793346354255111927233032753591095241834867722371018994867945317070815449159889615335765723778671888396088757700904919817727828288895960317121547433799685544311117777984259417213410446094350904486172102512349476836191770116328249375175814317988326015154020695064311075113905987787670604825740121498725262632466664858855911733840947973348422310279990646361317077826744862918080468396425467151903618997651827430402166477989556952837290974824602251367026256645260630063779243046144944143461745090811109216426804232061378585308203460173363751506987414077996166974904860332440814352975049713122528504731923193819165498548751431477370228621040496909288667897000791310811181212032749505578692035754319360013178215577820690637161298964996885012296863791693316033058505656800733991458887966245063287566248308224532924329982208085748626993645943195576111370277132425360772826485589703761692088922783447123631348942288645654128142117472185034710329769695159897929223584284422706404612102192063493332858710401004768749979042519864152047931545033985618889144820087332976110804541859456772075407785475868306690185355578163276793107586522740731347729662896361018448634722228578027130913100573284451980402402083901456357100814115931939722531513154809587319146794796659429270947232044727340735396940323112704303058334853191089248206901145907434496906232682771611685425213639524217028776079717175739392418844393141928790699389652566888556094629783978279236635325850110836068376267856880383500296667981045935378634443266819125433067381926081457206398680398292389378367082603129916671702502815418162115829988436274580287482109122205460115023971703812754090593894548996151393751542244058974789717820031196033788526128333155206913298291010865481187460062311127064964537040249337062376412098095075879704402141929005255063495449771447617212480710761149363810951210187133255463945798502642133560373603014898361286268377617724935595555617792667772239670223604741201054306026912169527479692385101646965146324465414251445382794604151029572855785484469420517137428665412538052393171487811443684538667304102711404849854693210112932148681184323354288869719712743629894214809246632470617836710513962765146590458167682102073872641279047369624336643169420597061769307806085513477649859606810787608066707009614011987713069561133729619539535740791986992351751503218403005223105300434051508017267010924454565080957867318070971816270785981802080736384180084181518040110464192421634871986893587579358469431297000537511455736759955755747961518333036335921202401527576408209257040676353845423474751991620912385925132682442273483619987339222469339665175644898701740114363557045131368039776680878401575493399435776113442381145228083044336383722907852134932324258229537268360418013627882449765173013458168674201096122137500666538744636477879825792518793394440859724956231190522722148540704953861944963138126485699800966850274494584216943713332290682570858501482347372561587936485325252543799916499423213975462279447365695577742505013592421825463140837615845642298244349682456706381536539427182335037224719762243273851731549742648957587394438662491386894404702962710118522457587446121381932079634569802596183144375463977534847428073834931868140917856046882830523245692797419342021490979183589293877433978743015795810556994288219427453254964513707345698021112112342135477951410412695667620793202790775346821193726113055514883178156253857999153264989870842590561874074939506162538493116452574473118961635519877991656242296433050112169805484986943148700892472162418976463463594854104721329428384372326590780294225901104218450932226024228164945075800213484873708916707534041582521509347830719897777408752328723761961733617121242425203420265226433348784391132660470346744803270876660307949956181413934240738156528460188296231891774129690147485316280697430909798624735328971533568344369319794134795349585120026127672816116330352730047364404326790483965724203826272029982582886681261599965329591227047962695391001882306979176887024142640870990891788808185717759545709831647762105540595069160564921954591461245421305603910969682837661890646581370261430019640523401216158500410553663928188751437551856081020256705557703328838249118981098997577587400076582136241679990698536967438460601839482574488940770156144764438369652723152818855917617239294490459742520237047376447209717501950844028753985442548968081948487872594730960131300235136615597226070996697507720341522271572069366072788659819796020460167426815841513340041076808645258060572634524249024297943283979512945726863882043527068100335669788999531120549535642687830769648362162052763700388244803969872479006444704913565346350778768640718648426411682196590292751954068963919424926357434432269079178849946577742151988659435849533789562193235576714703943556561773961604702607890764583938572071052364385742222397633081623690629303328454640923295749612762551285412561822715842155636634259208384190492710062219410836553552683046554606069149990796284757197175540563908677209480703100769023212956442524794492460194831116286938292185807783440774544536479726591127491388543773198964442430921550117658171102194264391112549740953684041060510787665876961398446341569243982479016598091766705038599927932054681280296416797554721105359567625307179882445095503292516784489282007930407673675317956805343621166356256841337569878065743316171256966286185095873262954066374047186001508451904256356809810358076561491022296126073157709465302997999651266339786923407663294481495545770202013492178582467632709110741983192243060451839662526798255326828439415542596636075419769043294624523898619382244425355291659078841977430853283841827055075561260225536542065729643856874790373021410424045544353995062919975551008700838719829687192133664919285152396293800095398291843067638675431864896082775996084281685292307043371063558333649115819559901912728221870173232336683816447488019688276375051070979452247106466477463710414845045847404285651152822762794361915939854713960640305673314052021510941850274379828928472996775400467545080605581566579863513027838594095354382135743898053294245515476236356189691943814411859436820662689726754443381208504630237912659723759465186736629265114727706933084374412283771522124479251601169850694949170015069020620588891042333991897445438649187319642742742909374410527677589208138969892862875092264600993159254933504398977078132537360654373064280908113140427531768265387998993794474383771744664679275998573743021098579363788245270068055605811884334555464852548267934561712234018027425529379344971616997809878645132715176375482486575604185728830352856135207026194672379914829528442982341785865361848354502034085677001137905176793274858300043749066363478051390385126604954074439988033027414042079294125758721596926256892192000973513765969772361518708507152404665452821976083697027560908824079202807792357921635301104983899810018710740182080922302383573957736472551936449262676942227150794045399443413441325904896800611804493550160466863484707428779099262436638878172335479427362605510067778834435427016772116145320420646377765679149677983178996247578794590476933051243760500185142536454880269679894287007097184994319766826925422331526909998982546093744520925868290650819783656755184876943596641535649306887953306059883129398803617956947713886062708619857266228544759701619137801083341379123583882179808270340601968565012265544992508046751709094712381761233467482117305355728727568627827828717566408286527874854500826029074611048082589008545467392535418696803647445089511603068171805242648295050582522601672186416806823656163943921870627047179536723790478572304654834673844543207248105022791053180669335248610184512868094160461370865566384575475343033564315374280425999499296042041411252490604787967568867297022583653351153458149280796813481405530195703646303979058810561796862875082042503275904419056657149370275375447453874898300628410580872013052544565509809265971077801926679872135383003974410738168060395123943105479287233174039114714648855872020040392041641770768399248904024635358397547043020904033409034170246093136220279686516659846708548496852424494745061969925439290419682098192386982426000041504912457333399777534807371097433709014163428108155556368456131302817743028888255587708625364660372360560262901296604776948218474947282697247731852353691631555973580502179425515101970531164341556624250101820669225344202279300494015820154376307741385333830088530523559032819977223587252855646198247213170011861943003717098877141591093222629605090872394446157892776495114163687382761321987445672939560196879979936172329716555276609497936282557365945510248957004993388902060651481344133310880678356598266447114222735733731354483660628149151545249950994838508678559560260816530519893217868899259806774762856000115282712578247133515216151577341040559094390411086230741119506353181407436925418526043268943298695035869323310809390686690253477168728412707941096800559856308880002716199400207261997051051430654483635708724398247101841602227596729351242706728876305332168879251371395434434517074983760336234038949658354458262476286401001037176028140932742301273092328918718197262609718982559714700713702165472898228120678812755427436481086496276445433584556533845881009871217122997833095251763468221429850633412237314318673961392215578251346372673472130655751973703561628170266449092037775663962173969704424519471257836738380136317843338064524317363511107762354329784394424298693864044538521785607975636820996021462866598730546278734763546041473831508383204546197620705081821934955228107116791493288101214196202434917029738164403076852362801950701000625668485911691023670471871579986138282755146958812224130702419843335321386118345396361315412443508161414201205434399070814555329310599834205013180488045484634036881456132395983768774590106449966465614391930052861503824190561431924743091583636568681644579601045750318035278476383971056174174874160243360726054874700344417388670021262292531766075130815913214323475127135111051489009691910029695982384031614092564027146183072374109947009265688160402560863478153848558989394820191659610503158371364664830738286121939225012499330296137373419375622475898515234930426726545647873056049401850317267626658649615591663534377855408246318410468787824523475954105108694237214738762831595964278281740980677107735526504982659828406102973634663147270066121134762101585615797281470117153331861246003647788633775265940695391226153114277928408312969920481221928344469081103981422102056336211817215298803553670162426794109934605197427556125234702165616279399290157179498768583676118042946356924392193840232189487753940758399378743130303550370512267913781561642299388329970928380916329425280702375875650991448733500764012542265782727689505163821604531673603432883100225099938729697286552946147672705849543228626832007506560892357423249256613804062180924143089767045303817286521033270635749243945984043242712744546188360431049496882608007909234004285927114058930774560840406678356465211359089993812779560137876377775861169525929230384953061320195160531493453286022071692443188892574598208143720274673078670244699398662224807830451696017398349074437588665829263571343176955206672087220880799933222404492929298314462429667387802305591060985837305548601385571745739023246163048904221662316624142483882271669224542388684533452683198933642090290446039806578747194176737020810886647098142828449709241982654597988215426210255794488285528631801032373994727920716125532944126577481639657210696387594655180737474853890700289721916870385212043170745314321191676310274740467822106057687078700489888526735431972948682123737878285282349980397493471898394476071768195493605139683169380147662713357533640290378309599149310129728990127804042793594416566545054876686243474355676752938483323776841444479073308635841619703670127737910925474347378286902443754862390487591419834775096064076024078083249547490587041729190793017792746575898585339871169210787339484877081932255188095052383372225328293567123278455693173380017296210777279877242293929162186049527917447895014370505243006838778520339800920645202325636653796421014583005773077722355716281014123154634675658504303727654613489913365870115481049915512865175293663904621633304923413959797355443569481256463858987987168679171829538713990363899551249544314819735174333566798341163258616681132509048567332303499514243570701262028115616788844886992733285092619019054420659297755503568707221013387124071398777421069277732649526028273273913110436869543071423102010081709100595182787205944024665266572713984501113178053561388198472884151060362216543820292975709882870062388507634031840306072762877907438768901853322442855089885892406373103002661160243112286082317816675913565584030221219598125743393805767691693010091766798615312256280608438116714775549269155792630347130711414070291092836394142817890498121140928202242736940350624973821224635539884095331148183772217741374932656718462471590747556113468475809256868174091965932324370429494873307780294298855063197524965639304928516972422417497703244679304986378566688575607617953789009910700350256852195462616521222850867242311694715744652410100819794728462996759924141609738540908948809326102898576070293530344379179391566524704213456060861172214607653787099597590397672383908688271123513564772133528754876423382871621706839529219249919548021317904088841573951933225491719194701981611746931845635274474370509692896558005358399481011780346232109680478430791005407751188592094043244351554767761789044058797612049105693145156103609115531972710933190666923482515889452544058277726961429792513624036660921080241001630930933791755127375745632623321589376861589100496098037223354836158936015485838125761582244372876491672912568479902588185152280063276236422914397505161743803134697468228179562129119440977098564516433275459979753827555233075489838501448009242634753174613419482305272721236152534488566693124453102127721024871334314567790038098876973037646242665868408442983089234164608737120874449693229982993796693019465167480199192607079523289222431700415464326469282682376433072712596308548092322216071426561232862905840800441649267306527675978353803223508938171115315692553828647098285594090051441978457908479308244726865202175393279461159301189425570607595203440664139746125007237933271999887880567314453289842797974752734767805073249956817425104580971329103009847577446035029773187364616643681511367684387729823222647647587262269702315375532383348439561766007199506194552397675011189475118337786913182009239183407047236461080076091402433996931735620032144934326862127529978596812491169052678794671116748760850088752144716502157619392707384101535613764806330555681289257078683939793356502793743200655561052426808624503814746244385151837802547530842978714436260382481576656096433814404246514476975928448907266487225102646498773929871353966171036368118060980005441204074566377411509920024665469390617776402852701322941988146830976992346919492186543336498409974864197446457256824164890236510411839472563220333523160462775704438892937037334466098991966474453849424049144479909409944479360936846765802392773150669366324508707808004003066154441485513066441796513864301684969890724947885210432702031645219700350346453439594011635708142775415779047080898857659183565239410776180843661444384583192130244918629563903115085212543448490103106916180978970736470351108442590638310067595606809838787736574177087480972583574488687671170262646802103492264753391697736061735490455371354299958890273267136889704422318330438260478235114256769213752646738183007594182961118572885063036392234948496917470841338574220431239008812543056419490832754095907667608743842058808716244716441187338767415400397693570405917314524905762534958542146774115460394789745358591032115571850127128191422828612565293095424426481341136783988638881888215431479539846684078388419354840168185421471442457583454779990104821935982374753230107031602805736489612514325674735015114655179397742572658816375958454690794008143208663952321872735179647689209530265801304362064598502670370220129312413906831084920574107515875925288820968546282203353731475017774955785589488981595206583747756627436016139182693326559784078848358304495752265993277289239404441087928736598033982758219490072049158572164033050966485146503493001708484253882248467151289368459316225785880301659190796559768827904634806969776543335505359176811434071125784407081010455567128273841179395081768802062910049058479137763459891901061888556567331081159441332969624677062554516437484074699797349967618115777986694272619517291066011948364152605125994576855444898339518219521684264774006542023246037150162130082130240802868762546840313865704460476518902591816053273679410379943383809890167754220666370278085475553295788277816180656761747778930580803074565852488482923300978673864746686068756821350843965171855112356946341542507749368696262437910454834484940377127382012964310748079504161063998269022941530443438002152820785313333750738712917828716427687472055822360314774150541056943710066087123841530647136994483165992515575333758328671631551381605281560650014068015452209239311445924138238193909473235152835219899697921867232890232462606603288812464639128858813493477651335472208120457175109973938658991995967862906486537212568930943644382601490348458407601896815354034249124997132644861738476540820976505148974640260241295889293870836835580800784324946131846075494260223550771318785753603179937929749897561077020928791540110899980716916009526617879941525964632899598854943552670185216389117824253868629442060004539655007575773498548089465158463697752410148223757159957887881712016596822491035158445342835455273465379630088425696017916171919300080507732464575773333386464256620222465297666593458915013126553869981925470490017182424934551598377764241065837727834324884103389999194753436021772521390640423735329105021495690806163061032767183499847222356060255889797984516829040628854924267592984301251506150091132170232405893830783008774952241595910096035429699945848814830591798707522125356832666769387101849307211373690366264188849966842483882034890316358360305053916971792761923544391913835054517963118570075166823621568351243927006065477172632117769992682262429550633324970949078834916904535327547792147000556434309753976724581131506458846930040848802598761196140917913351955822804301157699990026897065556928983244998025903401847419875554601216848607673944675708686197229202640162991206414396261995266138853908759096235238923597038984604395250833657925801804750565857568243830567536551523744126233777923757204938102330188809714266945184252060403012111168145566323869801646814688369132538939578507356318019852023064612275808519218316314855937948275079642266893354908882788547884584800499779189589076766268388800623151735418322358123291193248907439544739028591448126765724969315712076457204356583490847199589090770505682385720536966982957103806201513852420816277805353523413929277843664597085723887239574681038222143094116842627160966657940550680664361481463770219168009422726111250537916091048120152517597602076736535429417948855455648726902261304381401441814072061628335671023624123480626052009967647668673988386670604218464473783817679259273404960401920773167678548898210738553192324788002047662048246711427832812257245891381895534893926403394941015117589766538292112411072407202363334991593323884980205476625406449091817272537294694586121951155294774784519114676941671915247637614210214286125314181365523678803198753670365126458958691366078616528870065478449261514255729960066863416187853375614817958559606482890468573190219369887839285041617553061581372236237123327109435697762447088064212044285999029923200189059543631556095824100721902022706657662851991518304525294780531932435898655163456081333236623944728875486720834278422660869241963686196974722285040797581014424710709800195929375070362199424405233913656405572432835240731963724906392060000933539486818692891411722001992728074145540451959382965635261980445316683591037678112619101519846064918270129627903345890947985406175004501268779855500026119089607395462040387098584108958747716006130582721290593308301101542953539341969470604065387227176580804802252171789279720879441804792900833242299374903330533394447149308491153613932527446674873829245119198054221618447455304698126150045098591758933681999087853470045328693799595655944304961861558996323877257495333347658896720017674243693304722609393733016081805700079174143629132759500258556084639944885231770956479703950068364049255201200561759223743775553632074486175615318934719540362933942831306458069214285639079226548819731261796527111626206179752779602715623995242414538697897671676029504947286676893888071462248869084461502927223662787569723601487554723725664526694821679676525641249865373350725262093276718949461084346773161088033525612629375706429455620898563647062554368548463623941246529838389621690299334690531815535981399209398259887639488683231094188618615790211246922908282468790651295966720221829518877645386052155399278682100401071767268553308049813107007866172488765795046545039658763866919070340636796873601657067156089634333128505564113995142777321605536766329851219257287213066759504747124562375332648712313686779793014348939647523239537815460008332519980660317812433197834254829844547663261802839288233649602491182149656413898531374207391128803534124851986110032891164151839951952453914974232241104650438555612494660858288140876226239766706487372968809474203656623722720733225739176075906616228678729170009659816091391080128073759294606090195148642684748077116344463737387653651531267017646525178182316981466616520772250782688069514687274312655194520797989583262994656372183710872279274855967350029143778094431743383299726156129102805193708507657389670975815690774116984872634064267545516824739799195765370054587686545160437097130856425511041508360801393855330755412067011406860471820622707296996008681879212589246488279553404954321838686769479041113155576947732991206487016616832771502711344957923634822467229966276493350166845689295841833540021644049149960078720994056203789231667804847013555688584423622646730917515597447099564948782023126868222571041531988437055141331071808640876224031694075770166219827970660503580720765516951750577659652381665463335809566059741577700447225327423708797254074450196056887546430878405943888698784222330199858225133805422568343018502988063157870124795234304685146018664270750183439232057182486003317008274961795526955014859133454266102850875247581839694452308384508478892808562165768052305554032577775450677687171554209120360083160381629262418895310123987419725826298990690502133056028135787596355631055846104560799867007520218552928759646891296692511737879880670018470116697586121643213699922521412403906352875838530008967225443099010454974059529419442274718904925400375624195308612728057779147917391733756806912669525679466592432829786449206634495970781261641476715514298162920465409267168339974025537468371605166884459883402762651234904590294348089591981438800685661156862162884268520803482759621163412042000343437472770358635631370591066690048650233421439953249506932829698104991284798945098038710125834125850170782127566427140809971117943095786388667413194412590933465180666478380698934294070623101217038868118004483922130964943487028173227114628496481593764589090797437043596888077312180690292297658495066789349653857574660137212422686588837372489185001762304185645300057352972787395897326260533864045526823828740138539516887589999574322035404128573250893335856135833068722849347743195883070739024294653637992236152093548140426677612135198371692874084805024745957176585710898519336428949850530670637090214299226824232060757605244361518012754163066888558343449809812861337952337937178523763863009715076342668206867403064042963959935957356532061635686406166916572449365971711087936939708249881309476142346623780035575770151324496553684191385372582193267502276838368876636867733705999179891930047703569833155013245067654697200454312567185456575204996054968805458303118992029812797633064209190281028583292500745016453160840983514857833080454135847598511469873783042315146671843283669789638340293959442214477271729549695035574974077917750347095986834341329545820366107918842836550986894427573550885206810187276262403591834550019901483800475904020325350040529786658717805230472063192367065722639886817797193837741903117014401157832026610476418911700833707284799593135313059406129224173034942980930459345179760044570215262608857402914728821412296263425509992267629450945431344538628911450661893883169241567327146951470680510320287654233910831357855150100981492674151763402982685689541876624869077051617400682981309800918490000952990582362002732007098189003318298619474904092095731992584713346460480756512317267546005065447547746371563137267570366794156399871434369129432730560369577472424937026299324648285925986755535783253938143148828568485361782224686213304705800461021964276188780247918242919907492811152662065295956402627901283244622002757655830097736065250468971653012874984169156210771590929644009065285583647991591036050023911748006914794433306684239152836112117142641794632443409876541926804853144004848037448404541621124680252993043798781613395931036978475128004858691349274235214103362079362791055863771484171361120964911654924676271576647448374684029717495791185786295472619997614088390238315959589131364468110440379455037575844173994615817729139357378205724743816690405977558812033360104315219623233927608401591189340103796511647154905353215644770279604450396983446547542667848128594268107685461009651911288850670315005217001741272526740554085958100805675924329351143401144588151496500238985193678043459689661504987005293503434582657708607021080853729206818171073342753840846911565474215843087448084393553954189077664974809206758420425997618745679624590325253926176341646533621332294277263771178909117984163049973634319943865583466139295612578275826659486771060509830869698666948055923705045934893319174917763502031371430336641097167446918363826603057353501131222749819278626277607672813669037668543976412921708863769500794932984134254650750044796475704588369200982985088779142403126469278427699424198690150942429943233775447241203541706216578949332913095273940720073576478844919851298753281262579336004100773549535528860216272918072287647487146845959418195939162334754443863802619849634137648591644985308593553585526486432622931313438879209742115542179872633761405788263806135218822725180842556721971543593756366611212888175619758131606028268477214263502195464961709366382183945295563445646383469629730101778507298654466110019442824717231118484658140471375286866868399262164029259869931882408466123312310083341382883507690456977649264571365766722794074105831872810563148486932559888406368992818202351877836943102485870525273684298550319188534701278565412800371486718031180070687005623868425019093073085037174516500240021102742135134938618884648298555593684968100697775974596524420619584225778669662463505841187332494272287968058119277367759813969420990008343336979936254828012466870830861173476604325928607728898501397842077468424422559842787388175060226728407787146053718980429497246251885422743645927841072910246499743207087941227143811015353093510024788375179576646399617478233167759508412161510177860711805794677136066679015113399138248905152125874610361086217104415932630892802923076857121988129682360560872774616983946591116183961574785160662102618193517952678280186466711707193354566285525795666413286812531762510747578922693785194760725661907489926811903590862830104686854850367640932251940912209722049653571501573641154442350049301976241010326170884410586094990213785234309952142350730681273318817184475614556751813613826209027286025674327427949525352559895085456878241096906818118634531035143828422099662043875271860961245490260185488368218576177418030550318935379491392017920597306253490720829568049363888741673435779299798298394762127332224469763212554724093976619942365988966564162023633799248444820429300804751428177857789990284980031586459586946619609987940988009880979260748268861553020930541109875916623793217283847047149801543494038517055476449548191203954520842457879019840731739842495278794335323824447214143182631627810709284620296133609883699702158094175108856522623605906905041456032345300116973248631000486380767260641526638223914704966324784464692535038391279677870851377606131386315560863462284142462928123857564702744445149326725625024647266259240600042597982019044501696443837067732052651611143264621742118006486068920954431507640393833531454672422789823757627845004021654630320440482770434967822635154077953867525401208465348280373191648807439213829678900454188793211477847790280364050128458690947077431345148628942240392134688554702793969835609336855541050781736853817388326821180773254227946384459968592111586022392401865343120888034364812585290676639257060617547737683968603888020885348873324655474828448362298599136232463470945547584301162609461252085124717360119656189279876201090858791757728491518092749066253918280884589709345795722158437882979648279183101185828849607751377269982516028635174649814522063918263521891141396131446706729900062552302183716397999974993021407297802396383556753251419930021749293732174340738828436044099093996380042588848742076295545907392364619215748282234366260918229654746325435649147077729945775793683435844637389884208465564585050952916370430604056392767593385603357608179331129925871307711951904818735535951193945875441454643994753434990398905679611405141365958216228310752028076374270593577277208475863739490377360382817002438861560142643669790183257120356369531758705828293630255230206719597878910838656907126835140813624737296183894813024308106982981716490679898106438921309941607984398906811498283607066127929307786817137597674994207541083986299442271853188302747984816723421225118954671142103792939787102616475469500902658562209936640996707868388018453151912990335138374330630390073076936615474131008153006993419117341023144067131420938272770428970267480204857191545670681336424694798636732656219605332321988632966259970610390265190367642701591555843031689086702564255605016911743524034857100998985742250809603236181032814387715202717230122086991532230420323725216512377695359681913466348258956754547963253426817820839695473688769231785854788853248249375744207351916854365266993214758969072522849825672763073662781403433771537565662249085549314799521898776729743025202845553162992404950957173617754850970010197367388115039362379865062395322889801099228484679975394607447884057417402672864610764501524124170014367773238133031643672044288640843737541492689831660807623741857982069891319705091943927734694209180052906466501295490694484373909282186560971113023394798353964767529728247845974508317810914034354816124061788793929366520311184341661135398322076614633443034661965912830802528465956906690371829362032152780321203331730232592449192951281007757183403882551859218500980901411504007919876599698508754464848699036346636282594012711486576843144559194656532833062831478278862402797307017201839540112232620157546392170291362846593244964440910771170912121714238474998663833121787386240114398758375754840958870485216526371150496705509876580837451934842583721363196629061210210002847636515693590657545818285289142994258250863995374975967470756788080986036388696660719638857670871271897300634092504250120157596847524428393292206120243934388549824580343099083989551805236880266631874555222444262782026106980619762072753161364067632036552554148699847873819654494475421103342852906727595664323666037299855860054878223827785121365274601193336236906026918107786339527750483546569257036862015770953125956941161069326139652591122585507700972626901082558134115768774919401040831400948160248770425497891976852250255836543909753826919065854093037467433719961235532352438174935725231400720777185946591857773260775757154516579052475302658999411091701399177778275878411379064939865727608946644350453225733780442933787178654006370015102222180814455845555755698356168306929757595705878581653147361431528488559671665374331080334153980120784331996860587583664484490635231816745982155842620197531262200295217736210292118639815232874251799473117073250427351121024443779172755798377816856410562959668504512138223985228687368466070968040828742316754897329895682794511532699820162657299354278947074737758778225173634453147386674170973861615217001332825468047014461664641773648246050547046879018954163918974821073456015912623325620258822783873066464268993882352209194509243855561980852473166938753157599493962589339715900080811472708727865701015930009131556682735288414256601163438957228346949869504968842235450674493784298478288506810129640121410554555601373255364020198595844939220184050714832470579085298705467255144979389254688675165549579339997000693575792799413644525983740884669244688131636994921591168240351848253593692030564614178236430021757294665373306774325443231118545143644201738213641610685353189291159880784383906661074162813209513675970577628857982086827715913552041499696344387741510367231191711863954192415922198869872740228083640764771387301465084640767999298271456755970567133614095105757618224930245012127494480149538034711084890871189322384524450167900339863856258378922035771636050010199267184539896368484343937880796042449540201556832949729636909958743281783999610075896138316721795316419173755960943250502647334825837832822312057777102485954595598069452395536053781932685499279080171130766269121450863850653399020169408844377211925754819076468051841830864162172662947858712871444855390823917489491729179800908022324924829951564343568239469987830607644293722266440679178087658578690398627205125804828187976531757407772325284157632822069587632684461665787630379542878471848083874941836267753537876440193187319127267866142060145133691715212003737269004397889670345839623650518754663951743598188653887077076208093838105844882856327161897464172435962450775415677783784891184286853477675597682717359738375845283663655667111201362239920754901832166235459616093525604092854899918110752379067722487856213922303724525936900190151913466522285455095498652156500834515336560868465050549738911455217645767480170317651102463084117881807107072023607664718007025034161203581973986895977662897222260763173653904322864646171893940513649148443037959442043989597793198187907718605132195660773878242856716285976160571522634608231894570391723339839550050697665493663506524840340205404656650242855413224991568236638905340536930747649019574229215544828133390168216989309265885563938701582259309724930915071186647468790523461642953501540331152338831493617533753406355470391726486511179284194792607836895766501839429738407612027041008707065859909556040224316840525183617053890041248139152773583793118905278698149013784816767076518437088234066625754059327935253768015030903684431621177026124319137733001867410966380382346415764851571493410480656336186096516252299498974926446770350617076580253616582778759767021936842415993371977451101015742474809878453419355107661964926976205697696487539033778532666636679142734966806510495968641406751194302808740118087848715208900254366889617567873337106500120670995532370780321238850100244056511211385556313496814380253395269432821351668346533337535367910068322362369650759239531837371656823529398220721515818791623074414148357481593260959141869381296210208184041546195879669634154599925323211867602484217128506522449625740508609770300356571115474648900186351018141083769317871751853983822629985434148187846960366041955799466677137206633157799542846077297583532038299925195384022772337327653376804678358205660098129707063955337269266782013532045318480105323853904206411092681414171364337852154962490865384762184014508158594166412891106661700812010872173034987581164890477307879967908222460660644654676749394588131037487667224279527068102142066998716951306170195475866310905869333396725845307260337384009551471326408803178605961088193836138776824664193970055904518534971162030852577236707519638240488900962393547334689815536045680734784462860160084557897187942357065872974367965320759841271180819777516928928591864881991243170602412985650626685932363043254159968905846973968324432787199500606755306848839596369287193222275559765041431774574604696204242065127155357924025274473510478966538963508222118650085150983292402867911132848914847804380312820268242260625920635195654763312719028761990552045476016759958220349043925321889673995740740244282211709157826921926529927588766651874176639806879974591190052039547266150532638703378356807901828159230002471193889376037233944283341107682034727505656154502749368089637259140318630072600245980525271113070889991325820047743084393711101737208858087082042126382561092343809385106145672837879750158663750317393652841304224974984007002598517278438604521235014223263926964418736662119870571511981588735581361270288417666791355768719722716127744781026487381442020596648040318681268105550589779542507323531016030818486524703952056081434926354004177270640150648620069441562532764007927772930259248114126485002184295139711331950247207966676695717325077019914786601260212355989020346157244385294222683217577129447269209122614101876219848061808572434313087287587354731104396014684233915819644470779889922584100219511573109660421441218684691844439593573248704211404256177690799110347471342308233610675802542857600608091054154447067854980859989084128020001789384485225495175549791360653830611739775856672943226286967053618574834755937720741445638000169253507576183825506550981492484345104581849282805703456373137546450273705256627161549693766187564789477585726323565721521896546551442512879596118104580159742347136233798269777154426912484512016938793065443327007400493149432893420567145763159670844958483721777067544471072093657809848102204938646406567037560063280719178904751007682161616925547379702956874991905534337096289296432346710856769355636983666056746853186898916080662490148351191281200296169852378690418691314364476041857223422562568272132678256216368371288553942173283654690369081822733856174081864708176205219093205884533029999836830342641459217123111671129678388065309736920257312415676535224699205948362120071868257642194537604823432210728742717174268448390365331993895129167205973692294476572725809287515317898762618589555079302985320551265683868048595231203606987482004723833083539391417422831280184797723942041744581450516275148116468356620088468951024993874925544679657534147106521778251424490197338664267402295875764257338465499001383681361194570781982553868223227332247044300115773891239644215761561219508604956543631939005473999320128433813122471389611274235880746916699363568002001130344013053440886456676652793348341839489373203745517755106933307368039088045622013817542026361477893064566272575347270373260341684835078528087064508042455905178518320385212534809855413421592646758660503072174563697571364251858276034804782082850643449138899826847348585784364789854167403193114294392168203740317340934347447686783901173295024567336834122362438772358159854436936947244289445497397960374324455637380182377599434237800407323595527617027560803884548558197863988998159007350616409391275729398719829681850966919736796285252531272935819461948470707577272779581903770799573493796170835294652534315772606954543572664920466407296574450253034731447828295521517073376319343177047106739261419933456288665950660237180599969121577390172594479811745825474846237884288563418643181802434076600663596581377480823273364529526694939876328566709689552220784055094286066457533293346963096043102127304577861537702863451139702270107778944967124095478848968984353589150846534922559030591852673079469473102789461023925499950169255607881413420262274222442034736497686058258742560177506468275318871948828130625315425497045868954446356674106851163528089653752933885545635037680976249628721166160266127639258667724419607411138842240154702692156795590091692103512539979765785986150590011463266493579152318315531813669983566939587035100921513804769190995679586729638478851792982805799578132101144616938455358328270488549965583865321937553477498299938781145425555441625995069985614400761463233973925893740360900545375569206418748680654829546651610471405891552653826985297944251392634628725296302705961354037202640885077531825756904873805957232895784978395815042062351487893835423920077189146239493295704112501702885632913694137673438514703261818969043110291854857196713431962044045350759834586424369364148726006663975406450892911561525070093512566311680813479553307297846757417526623640960182939599842067944200568082484921958724662977438378439017817389253376143344953038778739496145121572747996229090745706918071172410552900782136519680081586443574080666745784375299954856158806430821552140599099659201033854919552483496253773405796834413186995083802918425515425880089798409985137590777698116386735795708948518659847877294873295705204861657431965193544106822958449963563832158704413823807498908606537367122243101146222884173387911498011268111169498473303684798201950391101680136671672981513366556187978574395134179363368722249243221712728968883167392608640967253776886479567379307232333845399887650047468603647385485762841057591571613460905684156263929904513388022327923779126238555130620892929936315113498670135411217304313928318828692163349890070635437434873033442909179396094608437308538621225701744433481281375486133251063319637856275680368297166321018573018821477222826260906990041099186971159436394521633458043812187770906845737548836528065993635074316036217880709794290605851732270700173142284429888216395686887370363709344670302881755703354755266645761034029943577495649597239287622267230753911994360099449328933346287972049525267682178794787823580631163804658003067345178237282819368808801753740909078210469624923298434869983612039207281967052768192617850660983639658742123128364807912351535558908795426839142942707255782004335563157518143890461400050371969020100851910531542967662964369098130243500127242804943895664320070333572588769219333918437854659217254704565818205705125349708838079896805536063137316428288880107237389108157379644415678494525850086057537261489702583850038480270334691470291800023875249538327042650099512543055851428379583297573713792754438561705051941355892782430165268353460914705931922819714942625908368282258188417590590054952115217518480736964455505212359311554557145053562649285673914220009924569108587964304816211778091757948044301513651940148246305680353310092440279022451099468430853743354402866845979648101106252166398324800290625374277852463453645539868641837806446036762317565162534608585739487980984148477221423496755465646104100046388930018225681426031731611886189681326936789495691627353538194888496442100006871782551674030441554818763433524925699628362780453782878255176446139674026148904980297431235974302020705836833547119127377296187053669759897140903848753828553761735247111672314639469519102573859184002328336441873106165658717058193614323509494504026596891100511787882773442523493535300618469056762591730280208494938090215742349889811748241424852846011071336040904700310406079856443450093536189744991024041234977522975172472421826228550099635531144104824600179245442780974555646000348401832007101011118044273315271505989387720862352242132135268091225627445300501161053928934637120673680843115000457488754153010979579531506317525036014577798006178413943734473185023295178162992651908296246181246089517473778793950761204413633390504498557270896678281156826140310870282359997018953279720104306351363079516649374468251053916851961182965840742914004462732938462943690729335769737631908541347874247141052676222647255313877536281133206677019075360003965651687729006885645236707052145710348791789876275644528452003800692843184646506228262397415374447836984726912935230574830990264215574909546425219208763415206185591901522739509874205659513924834263154365235174707887169484362982727311491623920877350084180762885337386639631429513828579353890971679837390364945488967776399537670383890757388857669881556825249550335982661616501042330073675742147259943505893167260487886213509034567031286864429035302025252985916835880845748640942189608524993736123039173592614544632091198232512169817292755817639696755776518567433485600294520117438593047079738286934459181252312612708591082353792881249580873906423128803431461224273485509771384612442551327610837792589966730224363305326403124722480730118514372690630028166644505802397275564921637540770084887002753075727006228815108163687662530063798536980538034822472917748950988395382366827637162859944328366346517117416009451901183303055261745902094203372174577616948467846434849563001973431732429714655991268326667412946755302105257572807162854237418939620046792625945469783478061911779123316855886429776017484798369221411082363119467546440447958955885555689946612106622834498551483795370037230618642127809230983131970058102608062345326645851455663181125758898036156092680825634635624732208663870599270362553094057783428073609362214455025242607259665821255440474296391095800170782831799115188379514981574056193845980036367903773983434954389918630995165784375133492116914071670094697255522822662749464144664109854207944062286589711574208967263860736550785619649106689936484362541340837879716328174935838609295053236376353138930158365754924527667887667118262494064090306908815591051900639681336389877363438246129410446123178676449486723772544290152962241223325378887657040893350575077365786075445871852527300076295525181566301274011708082947241631422185736831409352613669152064181481058887594733545998524227368338028038417930601965248302860726233748529117795824690622108341338428668680240216324105755121924954839821547330982389700445382468349125208637959889085091486074165051374980614835674900077896388346797079171750872952805510482740248461854324499465759316412684926854629368222866528419801569387929504197855061053865294093882914599943586556695166861288820134479484424700979765498159191269730204282812451098012834456912071025006806332035417693312084822819216333760729031769349888258662190344045968218094847020291288159824657264317395504900797453396735263088712912350046282746681887202262352194836781867005125085391820557334102004341744054937785515218339805994694373592686831331148023094086913513624467169181749216327447079744372890009386123357765918125332446845267000609557755029458193249569021893604276066368389284472513189646504293616040943225798394744656495775041471614881041079192944528600345660853271200153496285535785829908203046720401829167421514471005098052224711888142044174040344837458916564680384094051916140763911668465356986436894820958882709687764511388654428373822220013649402311225139084881122122978780840137550811388666312364468343520873703775967718090068512424366298840712914770631986248922689965049440910375484533186172827546482167530988495504319236865316064100925060400156018519178336946632870627925829739916361292351011266125840323726145045190637130104796498766434178808031028384936722056830954840134013394363504715787243246311076409193307009975862214899546081428187624108504762502940080389094678637829933083295986409456695157390342599072820717948748435745033621883234400997497304081235689588727728093325430908555002003890337697992175608829949235544971989528732979253216084110412148361394547718031069786540586855763071245664023575820083291058530239728501055440081340392107124690288811027454442715198056193580430140873324683044679193101508327553005882151116620983169345805545537700741154697770155599945499435255787457388993996211343588091787504556886961523423638717029640653476586980209172346606195230011193313013225710299542079230834217199196229190146187211410094889376123938718833937314262865994654150352492301492387599837485491082081032540662934016405238153775198817472934872077822449109983204122931052325947477585181127601195770717765398118358429331058915290311011027906549667438256438760265139863023561935521048463049767178682031471409160073667548525593613262909291745141886875753253585451635679532784853769556112602912272646593984506713759158253976837877107378322842319152102309986212853093167981756039725818165762982455482162469219450951949598811607734770111497161226762418879301608208177155866240338964899952917222307291503476743400592913263435790531311250299352660490167040627129017666938451637058473460170365736138140860987808543681174632778411928814491635423122601159068065543975022592381864270395656162508180175497659144228939038581097370482504828209572364751420917760539491530169481292622788557465710620954293469290793658629748833047482210355908785220646669709280471426288061122699461670189487425994100268763619253512544955970935341154427948156971536289900237984961977837652847754738423587076845148739990274108284335817008576793103728412836715896667355624017320315318803036723145052582735049879180149487389955214731529411018092123521571355643316440773958370995653699167560115687051073232347426234899326640158053622736992926614243982308078206121427626735143010397356171295147413846660676607181936015837613753633759753895795703691453042208401140681283732168212766049623170177268549440729290053856848865522782621799452094860173981568568227105664355743498824285370970541674236410700360651410388923813085565178234420267616194282529575495969090501143636298740512237837918332609578313869129734149513282739640477187410493783607041073908269319457443273396041712459511755391583198933242024330489123255726379231858627506507961595175269845981699054626194179585992759362215894166563936210480926584988159263184622056315221950682346692876922250257406417434537764423999498592314370081944859633742743453987389080985199392812954898121719304950445141199341542881909218211524492486767014219152797095255485277293245748486273753027184056941143949676166021758644152655108711991527207383523909974248125980005060199766438926720154229312318007698572373116745221695127736633837293981548289024582641083865646528180692499121425956319181930251166494962168397631012894654290894356878687291870860710925921115312993753090595706513572481773829413217492810699795798145176934520426042089670266338621562133785125114236636071378836245205174245971769572260532181683845062200564061843282056328419555330870602318799699537130197728039129158716074311654562058681019522596048928238294541262480553880839041363162523850201017170531178176395698683987096069116916299748767519341010558855392261827883403635389794824049495761075255943994299167337472934696530284900879573408420677896509237833823491987094986905946577237140158127644053505136964336633820576321351307498230888544904951425061593179637197237096897816975398887271818409214082102825020750810926599377850232680030627429414620545586445044976468527549228715583199670513214628572655651303346091734733738277509834719393966818648319144418209640069409843362275904723023040996926918894947499772698465561345727809565177618271436119041002537584887898984081496947124325080734830177358327099793164409339972946986556739136916464149696216683476755359024315958360128283364524989658355441685322006130264977510151765162996225907884918784480544710065452044072686007436580231610556961522411745878390359732363038531080323015951230770473979900214919801557490795419856247974071625894536364705232560628346067594315087611377633683457744356515216041759228329759484402786864745875113100921117441852127157306384350678976935344042933868086044874382874808822707987346029187160441728716484232533542999644101617349530326779262455629702266384667814314309335168882457285135903284122171370540491348638471176103015497501223119487982856226275498201070806309859926776938489390580031281222711295015196142825256776519793893050879082077848102213515100464425635405090607484851241759379728930025945187652105584691872410281838350812557489138548656642317016368271458411135854038075849249272196897799301380058721019871441236689968976670490487916079370249635183425918839071715451085501385011731460635778993214762344984798087303944673473293466315870944874780716205190775871586670372756032811262746153227034055807539746817986887473062057266907117310310652721238811522081211052262444558112902692351482022199638270709593823444157414265519307945899767121648033814105703541765488635485798177246117298315796243880460395836958477721163723367528174059597389716098441610615004773998189969037530121198107444022877640845882676471539993652526419637170259196756939515921436644727664376172936172257744164340329813311935843794769011189355696536395129901813073518042570404182366069715036783759442653146820217224066399711380373227500271483154665168009340273272920205931015111510548545091351607364078391462380265225707883818062575134884342774689850847416982681769653208291501203975424034756471894791898488904524114561518841426000606477267812579927745741670273895256832032285037019723258989024269748692176637525351464123131809385675967676548545716353028755815050878952562187202457737743508459091020563490040492895927353457246399404754592329318147959504806010285149028983747327202889290067115576023098014477198542540312880701005831436765153168542139451692306511074116715976866496802114461238120742259734946205854304422820688409788170120675556004655811055132484720117263559606176088154198775850528845062346840991509104777233152922133099911073366613894839376931074983997745875025475180882965972864633311164030584035668007045814013535618084454785138063633107821210194021159704743926961780033521793232997876184644383241262901764213142774898130678230912144240975252948832913429122487304895699376619477594166363217653005097585767689905443403777629503024849198456262279366241747871581210332723886326314956849002325642113826770943070185153911472559077689006922946659554498978346511009607254637564284497651029670659102216909180456111031971634596720195893516241694665272151686708650636958846201608407513858188883188325318011665553279287733825182742949944278849898454062028165721924247980363018784900817757832849442900346270921163827462766954961564907403144351209166885047140566204054945488577886282221899765861038840470236767392854279534570210285005864391925061365915431339344100443346967830386691394219468403536893435564244351607771263615929681651425392437728555582266540284301654843816450435312523892538939660530450361620258582589318033261652408343407763546334272652394010284444506896812100727508172391246374255880486941300531032588833269826959369475450375063496115593448369720741073944610619612912829685879252363583313350234597660015112045218279147910999937151086313010083121860265913222209123402830631467189456980609356341979180371787288455981301973313672388697315908170825818974527933549886440788185730238528035649030145332318617471751458903048784849253956695529946961398598010457478950341924297239131985920085736533680318355728621977700142419023160054337628921354804323651706186145618743806992478567397457499361506303755698539118852011028725449279665969993957045101496981326942163789919301815800240188486820328346574401589088465160976275320868995098931472135690756910761809999291632558941900547419303396671239839631572140831833967760530472603005798571826182793938244066816510261956424041137880408994609763201208577890715624641469321349984458062315359124452094828276321813702090767423538166701386935138886709223028251205601552085680136206077396603439972889573363644386009132767674389698517603227268080138700877106837639944279486416064001818453562421246209696098529941091638594872001896830880846660342435409143143179772266042571373861372269041699656223843678597409460905418606557588488870929256009516500163564573555529896440898562604824189918746047540604942996105655321241091067793628488678054453234664016122377397860227489685360899997593028960761754010247758709570407493314897734804969313366892930184423139876844329283964894183381432005650874565038245852818720956219714039047391232596163479052916109343418257860807107082095139148690167019252778801566407963096656154356170743748884521031095168285223736293826414286725586808592250422970317724565718716668001567780811787524247155396725982001897370759982681109971705938558972698685617250312589316499730958657299051749659147797860707878515707739262107518075406150229475819419447951202577729138082886395022469843805836425546033771971806649967575213767863014172973765317887793184825263715769719559343004145903044064421092779332973153812112082264576941198025406530493531058835246739705990948410773040675720464518686070031111110074899260339294780840545054607045930901954557193432720866212207774037949828320919827469282513764116002331250141275200754938068410079286335916399642933556378477285431005067582301728808989627423254588039355264331741666837120763099024475699416947709170299301981673501124586695313066996327236534787413059147998999166559997724942979856671650023462628697300199982951583283742562417674225748253464901955935839326868189547604085405275458095447677880564498824527801329362046295717563796967656339437202238007205812468417837611351576125550399560773020329156432597165471430152497582958204126603329131171833765262918415711900475239134306113536881046311726134348927518131434542583657262130929950142447914193885891393471099466014885124627052278004352052777150899311583664081355433032050940689839297911372050349985207599761864511490341794178591727898032377264072181548089449248561522932651816918605755033173110865619996762954938377608689301156072987580661903512220508435865663295458850412923682460312372636008836648715636357345224632895851260560323482697125459747796401691375517050755360362972809376766008843678524400759992614598253537930935816095884995544922094387251423555394650666866084059075016714730624563489131177187732785995354760181580070304836271538500563110242763526475279026536995628718675768506345164126195951165115191417684936367553086568423640071511861124512712061493052122065273979846198003272899508617673590942793566017745401796086680433114854427137757758084224865847174234790846206418037561652532820313567526004003058711184179182797454930800447468821207617905508678147582361782497490123465183826430424270495366285756204231868115184736047785294132756906698489456297698954182364608912171453223548640364763987184408787222684158073045935472212328910633112768634183488875944199626809045348518150539282319903513256794626085046220181032345943442712247256610427976361389822049344584817350449171500486008403943737999190178670429236204235698986520020212545172948821211314938546778752978947813691648694174568687792428652185781034213142026360728650405531144139407144694001734243060396769291816864268351452805449722061480245956903381194447935887621289833348356778957620205847377546120335553985553691243928410782768318838914451278106534629117105016131506909540438737069222761708445477321594853928608171764169650536005731185711598307895765521570147328262058405352181297119979139589287382455243701370017375729616073412466738432267632097987379229212329951074655657220596970375702166565304325125526613234441169993300515720208667722715022097791479019667181117805142579885275053738281744623166236263913390938070208026891945893042845628577061074114273283398247023199296729241074306067757684699505896890083832767267841658489630406545950140654974756644466616169278235850882613345406253171118467607888618677021850279826895313141467486048916384519532345200793995961688450646549606766218127825621054728439938881616693945100092228753452507660606466389312978440913133629549741511505785842273624708697587444800340817360949766974140083624290146615022153830582139753881078817334463718486830661145722798346596098342608300401117404293404692948583929612642404411736184495644771963027567032121648053051960553130938852783484346271186210185670845059875137215805457959977876368049247466399178503192146833187377715260600061367910473172103229819139254551630022052876101881373752490408890953270695393189982695894478923918236109591554799517575371988832710482715561753571054309343812789343412422743623800485843385662008130175650855688592631349181906806281155634023218399104327738273211090920422268749490785968718846101048183578431309989337994083155019571417712816217534654680610281008837118016596956419934832080215369578119753556833500437020747969905439743491379481228613872989782222816490504221651647443792885573789273510801301997934785327048343626895302806344840878513508082303109815210779630238061988701101821183396814158656973322890321126940725819031983203124158436758632102720143561659270182561950903174901888274065090004306115014426039576715640429229846264329370203441685725333835973886370981638657687014620430820418799726307769944741739522941609312070938240978680532463254185194022413446658079414826269954139419318959097831504945685164654320411832075693071295150345365706327632347431423069988022204886067822791024484198499848443715127934460172489569142731381007001589964554842878801544448877553470090255071765934475631919808722113623187078379452057638424627230711591471272538437821407647603806620650447330736666940755771085643161106635061852488631692206817129210432994144480965120067290880980223750889747016941078674230581094607545607021357758677875428369352013300186316337954787663932135564953591973010563419171698015392293460443804547616302912543220079787627223270975284842458143063836911091624757918289880785014359080078922503191139525123701046641459581811250208508013652866788761735917028296643552298718842556140978044146778549555589352982837772361117892914939168903255053370291216209872168672348754852982217089383819984649816236715144933399539094830411768037663325412014695359421127153974178259340296920641275906345433116146266472621276297307155393074444261551250782760434300026985835192820186653326206717194213704440352050827413320050810346464930117157428199355777944237373202446973333006924528309840098451999795925462941983954182301699700475600460637228179450987671585381563002514823789829285571235253400455915172105634297358840483520621296671034445562714045648153070567059929251622930780768989139258497024349820390401573876851885320231414977813015673349579912513375668688934281431419503138134567788356498829327499921062321549233718369792157672623815625879693045855382005411682230454305956248987198274755673917362262502674678315767377656796916306919260273267139728876632645431225634100345270247723997267319149160217041136382766539744246004296831766661276590003687476336562427662140727125299804889451158055192228907456952782596950702443822450572100953716331654532320308457826967550248318932513490144519061511378564051969101152634621921503518971435222005609289053613281340874829639750562787501379444349368578266744042163378600304508932119993660993290399451799026951914645038668757933374253161943349945725113544905640699239465346846256290848616460113032176822962130100671811745295856983676150908632668954552604159939394164790397472266407375542333691608550393279603672248583094724970923288166026961366410216335504434593477112679126539559786436240611178016120288947979511245497952180373835935711891212091651832735349480447539184797400039337190599416336942686114351005671050177438262945947152438568463395293237238549200068876301200188469320976648422789098933394243464107573119862290715945542358816348813631813442555581721278671933765064430151382940090731587799298986198925554268021216300547453206684689258834556536441231938104809131614275456878654369244716020352560499471414624865059262367837792437113790173586114502509547025516257672863382550356801862969095782507417041235743609244722079013166525748575455700349694973579195331247786302958923627819278776928438402451950526919142124691121448523009801727432942238296432416027860746856925240315509014360596717726697311625073550295723246049186059397953402702119581863902501170759881833655579002912426898330425953431712469303982051523290296955316256703299737525399551016588985826494974781228291279138568636621426883908362764958523985279393626820874909353919138566177049170724641404443199762974246179680670683801138780598589345917507984860183401674796572726228044463858756475902056406880029985959606095248552915753680765109012698737806269286926574411163179109578866091804513520196364858190589646440945302648706466938315115520124341167117924412927545480758341954603877436856869880856198995157172289857142501399191574374158705909530444140463136397151480131240547287740516010023532698297973896700098210039072712042420124470327314816715820229602679108404655830518702053555277540474844594517177725161809589579943070366983362906623430280151476674019306480343023043673408518320828640641667185803606700594003799408352605577116701890977764189985052020993015134817349554796552010895978598892448811078146377804342804123492495357032893732939231996224855277430750474528396958828527954873262543089735082467407960700536816176922217078698818458804371648840586871221425312650633756727658362325633904855572166920189498518604714528287408812672253543142116381419350807758086843244715397470743497412585157866972587623698869368471936164730526374303250595851434231551660008454290062126596002152445826946132796272331204132070834732932366030870952466530104147540465470492096888557709013606191327732291078758784959002378706084957644526819782476693948587898711543161199271065478421666225828059722697827341613223522242240313163174917071815617125803012367803531715062279042348018421201403352177615400864412328490586849960865794060920064524144051132854169824426828452279622888961585661511938645354826888169365816653229335740283187943517731131686958911562835752097221127130107348352794012883398637707314798113028526594451870778448736824405799097342021116421838907705950415624382140987397014901158408124553400433583638605250940633366036772389307856770546983376795203693582862727124301788189683166096432973621457774594022177870969422924935419294323670030887541800227541099767670568105374026515024876990713941000926234255883119084748462362329002470882551253491027053274610369631632263459017207641257773117204335105931283785995552911203013414449847599744949565332128318014866757793758289455851260670570981206325619172966041466534106682636212233086259726863002508657486442377523210898071199009789953820832029598366737724160193744624764470920307453445954760703485270689892014608155820175836405076909328760245894145159233793066598571487580846947259846660884510523406079198791930630989561785606321724533450459412712438495610858382000695483770695061625023555561347996746084129126022602382735623101571608223106078023495600916396740173808360614602121232170403754645394789501684076480173865436361890396100969843930963266682255761378839756313731565526626414341732518248371463436737114323408179392728145268733084107870304083036993043704706569116192340032529824433452719317880618557337267420565204815093914360351186301204370321629454136471807252382081123281522958055628710044538107914182297461484679193741804724575724693840328160432317138471982370677412624150399203756981757496781877182183580171826277390302371997773071819880092727622758634427245520980109266591371495564955573933535931618863329650713476118778188678570551995688960591029630935470905407617735249597889553075031834150174651453231041435749218492672697089920388923932131933676990682102247630240599897012264467047711379912520076143029116021473470491642211874908201740795100673321033644054228973027858773263909750591431230479420642893636704734250029641846053111221960999258312613909414180457924036148147239285337815810775156520518797656518231413472650485081084731542625819441081548912144837561959318828508367241829209931213583672084963489677679823696984594949691645398964263767284234531454405697171372103772928862903150262278626637779600180561402526083482065676669113750668148304630408389699939496962556002855601613685409817215429612418789801622689380444071900033445691070136403305831423378716327692403031621696407417667716029040513989153872243593296572552139323546033285120338320859150258240906763972833076504858140619338418945173914233510937926736512983372322417135333248644564198653048223823763331833835424598707074739611913016998377504242332081562630616305618234728571985171871954386441917248339258884258105937512312190760839790239592150077724455512163852036742371508077776317784740224010368012126448812200153925525126646597617796271550668595532205460064795199114101436675027616045710787714917254865659284584442791818069790645557324307407346137772691675035190722911652438198866409673090652334047645521042203525626036940342706748533686393059209069498124784119985717525575562145809151724152684796004004657684387709581070913909378699154960978040894442391509235860453339662941764830341723194691289160484639332170733285493036478623822278389612252020629523854773750136876677078267126298285683363738816584879046408365647266671648376819110062916119424603678185645927582647397930280017154816391311572321712877111746941310106137777731387276989110065702789601345134512156709982974337316245767875528624336670093216025744766054179709068871035917540590974832201727244979084229464510962824893031226284855274562988254478964262318391837823189926433577190525058615420051154230549502549440666181648128328576414016025932943042494685185023477035083550550367282859870596194133573079866473278281900589988968793678043467733615643630237321347361958968875531169712181908821637528548864396585451596981706668849928093805750363253447210354021277689406170686881703561731806510453791601725918878649451303702237869186763464058642019517140793684519229247490315869853819231990358281329269637096661613948866462518522543916482798449711138211731266134691174650308313315050242737282451769654329204358607583210152553120048758573009124219687971123425944985446294792579058904690250900254896663999608076241748446075817762274756944108811870646783185306869306376947665870437416452324697162446148711124566742794167535442370833237943617903847946608732418857632753241808352311473164321703626399917141115121701814189690048303756997921950611235105383484654077541621209180340596746570477157100161754961907741778611545693571701461368419957272117327489975137570162132279771922675924949520683069949934412600139310063768076597522974657108187942638255169828020838960714184795493489299837641869224945146774295560521666653487856412170774845357990705346938179141561895302058578645505204323411190078939588115068796591042166311296743354730628975995135955803574419353950847042354356654965346981139465142924714787921730474282676187995102456933969772329514151838321210331781910038567337207033338853335696301328471981579402381508207912549112179683223526050480528473664599274394517059344872994542868591898771171205027779442757812664071849306787370874992810989713472846705928317180755779693626507202387423664210107303213645565334540008372578257488929592855906715163253992304323315155093818972507171482239690009061211682638203944996264512846255979665423393951305019714183486574304758723956243210200050088577307736610523849936766140628678965396710777130177280513598666006705562214143884218016086504838259255290079650438202142636292017957156101424270986295688037825645802803768928363503888132933684970474471094744826353738098132827921483659750620018440921015414603172524525749655379425901199210922923153621695438396729091408103960565916874818362191095498953844322034014692413797451186333024659223022995209826834846507081345932572187920882628418038725310740749674931543024131223387927284890945175403337442976725995020779634260825060836377495832872034292100297587120063630380054926225176866397709739950909710217670963315606180133988371886334033966696534539763953674664399229348887798257150145422534232827352237962627487697188528970887659286779039921826613646157955713629960372407502332822289734543470306688940990250798654365359330050258645108615689884599048495129000617570356722732978978744597765399950368749328169554843229380685369968698836226018066214720000753477727069748551084260624411288803649404130238724534781150170364841702762331858402422634118891133276256633663070055302427390431161144170584775806260249160364589153578845470149690498221478279687230468895746784421121207828370978071537002180493126910110093174840820521905292313418858120710261824228691164342296001338916810494263923072792150551328662236520731852364038742658299637057964426618335755890711471951529897973320285978978231420746307384742427439631121855633679030176784054299740045176001183025568612272287254074064606764584450730121996660642433846768265914497438288813218318293979961783407379702257247931444971567341513518589875900681311402781702823172911806313533689727269267729435020957852521225901685348040155103550127769471925563935545721807843008653743241197752808023576823468350070447224417899863544705692191096043508237083345908994637499219513022310556196567519279587562927297883147886690060670986952952296933752918453969299151048685540410274199493701821839963203609423410314965148927895232189836520944769211121024811558667083145878406101794822350891234207066551189492535341587925068135877835075159867679275804211719392211076210064171693202476070360675722775600137061241272916874943191799269693372199820082234176508371643092080789020017866263161278109861974017880463740059790888573385815199137133834345453597260056612507972367348918653576789469831629628486346185872607796940567854827756982564020469379122086684169101523596016900025219075248166894432986380226075100083256116197065153620932720489224221659952910882095980858600470782347875977395393483857814076244690403120913945319663020717275787349190010225092306403391363399525030932242031173493691493463212626797357008487285254042820111607437752364566917336342334388335187892170495188084905852502854922549571160295575863731442585385977408667242192115699914643033628353254179693460268450169776980986051521593548556387151507466036835501291545786552141106757264430235518420651030040990478743660273570387546025290233313687636468530814236237671871745112239737224537773470052647894356759461280388281078331623925268591932347532337415606443825950303714581154337885824202354433065240536538453375174293151549128123149783097706472934396342033200758520957143158681046994917572166302112157852426573829259785160587413049644553925788066125740181353192842255809812880881360903218132944463798137658452267869614630120890091568002137478979090079810633667079242789708248918220972104162569798356051415699614780486395188953807321654475419188898643011560690427694678317531610277527558195488955613777800519635950183517190325321249635977044709893442982595012224430743620078644519156910306625080863760941279504982096503123980182375356144077188943443747763505662846003287937779589346674276501553003264420153519442092414405300052799337203234086259495423473948712696289813159268400010221862116522293437108078783832996858019425751550005676004493160391496597333551021649604251562727750876130792445426447378617763259688183159276470470198411455595708611987057305717897510318368902903229120001259017827294352528221568012001220010474306758312174264240183525220199728965611227016714110026503362713579809243086138978208107036986315430759577935642086093157316095201095268909109642076139286249828770310494411650038105150431733793533640744553501115945086036430215089283888958291670675689420300606807887007253782322964846398856211883430971369863458061711343975120138297537389092771464031720016026048034676785652509091684093532624504424046852761045890671595612560963331158271410226422316474414275779278223810966447841992150089679448839610339459846366355841860480773884518739273518939225719347875203308793401849404568434085633991142931655450346482767896368103675313456922552460905653091320002010855221819684065756912828826201151939380693784241399707324796302619470371764568764091868984896787823561396966432013935460230995858205778863552172298589245333930803282059251798458775039442953335207181450699086663704551035245579191170202857248691872137923737325030101998177158212956310034772987025186790674593743024522166937679430023525893595725558885233582194146709192473699909798968712307225070851085419232904283801481814912121701177936199787638848757610410708679701589306372999010095097281712375477925866309765787377914319246649758256801450909170164600611735075403767651056498219874412772650888432119728127778677293499064825364383959390539255829009807070258773827708782523778856717133211560785725885867390691837163797420868773173070366427505713545406757053751603856747583881141619605628806565291789584670999437603393963705596274283296838172481517111656832691680109490585362052072972172818164555052252694059277123477308406844633091799652629696863899073868420912393358961143765287747527944283860179228362863172649623567970303870318370957091071411140458893916108395643421837351432191190407267438391097364457659944982243654332660134288105553073681409695975156344113662770445836501763280389692773715275007913610130743495311590839422338378276058221550606929120557116220229324009151094685211323441943917760342128050278420880132623948278042661337461096631684440163784843022783763624734413687851529541325600730532512636722842641530114447332828792116413746217831648931606113031427204809671111998739177227634466376793176016558001929417680708656928577999583409310843774685542482827642900425450480578614849422091594701100849145823465396891549764737760511388024201764481067208310306903712898732176029449199542792671811506242880345979096924893049135883329658330488697236204821655756908967548108501377494539849675832561948399801863696211852842524076818980001709899362102521017078019490894664593671443774107588731344776164313238126378956045682446353080614330327304711372391212565406629540320397185431676206445256424189070468377234493853219810225784229533983161560130741749916804627655268451831878304212504450774121514208951543737789189041851171384251299965797987257187306387272522490917855791671458943474561922150866177661243545564043158723283100889061369923790822454386398750003572374021688618780818600039549865463145486952001864106351450657121134435025701464441661086943892216823115798246175885467043936474682953973807185167340919057674973231812576484567932632659487978527730323297413087089800318612538035020537037457757558802161504104708024227070852657651788551523533851424803619130944998209344663986201577105682174129972130358192987224093017136047194623539930262303325928834242814405499374453089026917213395701238828891892253065227654717185913106594143053371061575759402810672558223836380965811004325084932330625074317521088546772886001526377860425954403180811580334282637344554600480585669266285081237274959199986183614011326385710862842398345954185239102213094795678401092152772274402849350089695005796327397348309125657592661917970755265568876164219779024464542067036023599400573703279580927057583675159216238535544205569226313583113431889923981776228285436419393431501655919843537357586022830676633715499134849263736896571763590194331488649909288848414083658576176464490416328002271067392350181037726670496733155144141039525102649123375630057048888307181659910819205541548217465285037919506855230135952876552228852234736184268273629007667910392967127467288202658240060020503364713579416376147067110977530372023562506707162134589188509213991633641198611872358111821638965387039762952406356568033745973530833907353597083684222641362808666114220725505219172962594856682443959591581704703809144844432783521849710865478786824257152587258210461083781776606232203665571375472703028289607485723060082597278054210176523805680262890914614275775320195042018922450091050709520635134594104381364701875409792714011555001589630919102254129128287740772062962378760514820134251822266892754815424718818351818625331304189840410483047543161412922407395358546602909037270774059623730998905804345938513174187754859586570395359749466657166143501737343188701388447738672169382178247515385351508539065559293908272971694011179342816622448696530778507931083760085644029260961668706122921952353145769742259502810048283536878859008487073778459419881774914720823743489940137079671580721699238500901699203395276495915316711705177734696415556490730063175803420623574507770236312794106200060746445243578131739340500210799175552182491856501957185170473627353159293009547184066374941013646471822880597671001690515197030942571048533975836964746250488619168007186063591650661598199231056090014193037970179401778844629590502551615889867328444469915151165926728905758882378514267877486715480072230058660469039568011920296784933476153952677770989925729005444914823593047606866138481865897179636551316258794501977440793855635733689222043185427989556393672829452134387635693556657112793095807577275759605872563108980056689300052371389591573088562212529328278152282328957419917045360462217757511956823473563243985443083053385654854258146971709059046317994419456624041016236112717894562268673130384527272546228480843971441781069616264982449625280977414725586078563131111215250425568882634578488741169460106286363877554124390952640095622711493886815159889544856940036585188454019652536994612404556283021006126254573799889176862875815068129615090498102085648723243040013881507314137983340193370415185102362193359654115845030647920492835298743965768712844807731390900329790873704445854230847497616828915512261374446569472093787403627035514389029787807600051107823244695723944357605947689373505184157664303125373329515222576499942724868363722122666182318095917086478912748576762827123366695398192399967524294095527220136456458782592691863717474551402670907179082025901770043531683844470214582914411269663555504530001249685142842266413826304161977613949964830581257771072810304248548247690909471257884030908363861343947571404507640525829976793475673356809402388691931359150585540477628731157793385533342213530223906837989662144626169243488600990748307207565981683069050425780307055994757540966223516649039027423273391674485460766889030167086757735338921087798376909267018805305710651322291322883712348914999630646049264488405064253486091280995932627943319195074383798920328308109306338784916768408857583186254248974801643433536120525980996850681621151920015860561170664229738559639901447632869624511054462363670871358940348050538364807080315860784586299532616581234648116153024885711009768017160295009545680350607981194122886666808478942714928586734546188488402791988234866741872273134803303924324428691346124959140207531222690317701767463888617125836447560283401160618878337586924942040521766636935423589512914094350258594817268406966349314098012949099852549393788685621469855445243618105213175551943990710181444137658020281693332967530575896785470546045543302138130982208815945704628123573939035003790004523168993145143081422002590215573262493533443880840467920624517629967083474463838432977848810191104002214489080288138139319973515263492337980278867222962541010200039051303312372155903154050869595700772544661270958013573370201122159203608918698964444393453218907184785125620616856682924498309060914487101663421406792230706703605492944390841115847944175498695664873607206180824863762508347654374559569704017819799326930889767696947438992155015589332392860208986914773201656861956309226563001844486028019901665027350406768515298895030441351465825378648510591687238832500414034582779340482065732026069328127534447077776208834525012406458942502970261877305526642969347611228075493286588426347765213031761978577828298216833009980789133467702135166130945423586272813402169931472157369597692828335466739546596421380069762771480104943989428292101530615368948686042444018256401900007135179264142212580489513700116224454189314787465543597162138943312360103745447330732566216644457591547987160122339889931321085639401878069160611025054183620385491446646496761053180271851356839204727386511455198305650716155180302915358451720485523500458844088455413908095894803900485169847353447623883694727407483378235114323354488310942601186658010733044679211333709526490002847555355355224625407193234725907445103392111468619657065644857562131513203733676056216853265864610220144360622373512569101163321980981723272354153221095565499112965940131566395901186914389472656121555876965119499675340585696833142925317495696524119856811180945995786518301374071505917899826179091538770983298740078524991463545337602523505296614533305526077725863941979005185196781508528866570391456105935463078201592205618302165948580306084495576072668351235842555000112904184425855916227920022348758792651252893701222894012340936775457897444452984252332971330533757281957669470754048109098844050060075230417151621597087336965152889500179891853081811368734458812390545990173827474387151927085453509185746864449660942205671391098477058353714947842414126547306441311218670333370024853682939491351407550749444765385223433977777851322002647844076871718786711240723704685333323401325465580012278456213375984271866258643945477366931362694229866714286647191613606447201496338208501457097144921658857783937713108297651142033252694022469559303315663202102776437185467167376447441083390914211857112611193895477259947851773184364606122910361348467849033926282878220224007833885574407639566356773957350349777082931182426390619327630179443589278277679364600278907014340348834671555957666640647357894051540276762802554368905402981854233130494607429791722266974747955251151811080012018884868278083472685647122488032127706968413133712693728073851674823118308282023610300002561664438975274720064368911877500593471163273319096434417808053571221765426051384516898899488709441842176032178250761824724708833014811693396521978175680384426300972604268198844816131592090828148902560163837391967263138935474028403912962284023703906801400477354371002555026209482895244454066706906110178517878862812683407789588160043239558643988191760921392474892729860166516095160498171790045310868139915755629955764191225007506079642380100776385799128737950515184905375560614034560239058225452070798154804535286398061182690117006065775413332646336215267943813110346358875205037300442780253722307382014273779602781905086591097513695641502728804303084178757350645979239682198631724473130014629591412905015740859413223756283743024185530880397013030111699666470532887812235135961273548578306141599904390411483690934538659154268804593514992404483062548596010588858843553659599923122243590048558300838709215244817369063005505831417765457795543415258182102714128979904770557271240727358958925619136435313291915390245594860376580229614584563282129687496072678139839360633809369149165665528263542661998113573292972896184717072458992013820918263205114965309036318874992486200598296792343825829452581494240444334695785212322433720811645129479755376973746115042436045450246303246032520658355842823540175249942185810277226218210805514279822291443481071468594398338520798357581604371521609669927962648137749327014657685639503317036461375810919578893175899006346358141904193452621725033003678296650038854566804105273360968082952782396462059325649324948092885276399808997290066664998508101668686081917439552363541872092533267009573761047771443285973205338391305341881310625236681585368608230156744860965110155319122163186501376246219459220575797269774572702160930058810500365782915795577306464572611667416245933690941796491276796457112262283793960326242656735118644002555203021754178459351027382478309720709164994287997155633325233883674784462284077322757625058664047729967857607137679425190594786562362774203157600878183253324447052955543530789776723710575557977279324784821299369648152398622677572305403725732923928820884277963874229043025508598998193296950329318199324733756297173794124277030789030589476410231841500635681183262997661572894246480900844851716120398557480746380054795712366113101181087339870377983140299603245050764687371908578060545620289341819221689786440824405526049739044238914804151068906744938687795364015155109969102180285945565910949099110868004013166686183448095358083674808854362909379813163300382480675677097571635524248017813615330622406878965119341667579781261810472813859542397107878267018328510850123823826641827637396740064160091201646707710337445538557935884012792147015137729135997740713335423971870415361221655656614194034696479082270466280860503404585274779583237123808898326721215181633208272100434814579259275164762291284220306282161386379613629139348537667739064240231589724759911889595375098366851359801557693048256666001379844233743856763110973298017438719116586192099712818137188980156140747147813444304113444822094412708413157789090539344835566771313051586355088190631090785190397379896292629792584363761321401733756925567130235048753458490343652176610275342193727830574410735147364961249982420125539791228184592502975126270745870741112135728829381142941558956964480545631030966667894646679988440066843726053203397607451301143185674184496996539374896497529057973898631222008030926128777145507002397204802276434927679376465317348327353870938174552353792841374224142710578753131171848513332232912654881009366903406564814332367183205836291395416941813106911725482972909290808245265305142362301176562076602233768055085582896455319213276458725890419301033834222450562201413142354357954194533326586525385417973588457911730912596950288650545598852288127501651628737930677022054792958403762906072488393134116004956119820865830510488196051312871657400793712097606196640302315986351263720547140614597080106280579614928090670262237532284286700325017943000696468982353059110930442417114273680234582648253584699877064400436001930444348907586127352733157645675558879936831941929617805260425896357651952275610984733377713402472598427285756013904135940422771399745476735926804299209795049620907222946310647651505223626951699865257996606694929707453087002976657880865796806325135359199826859062497469673526333430038670840699351021698405753886529844309580100614819744535786724058474418489593706274763997822331291699352833816155894436470386692834764155333025490476987617389020765486682018675682504245051205114703361622574564202842039817906613651362295991603354698548544189094784935769090622903041564656752038133835148866741326236626346740262568957347775527877946830222244629932130994545889318542518605765497529388223847294624740115680436800268337807575723080504168164399740768577570537206984684021922947828604959666699263291425608069426637683401886018654713553465772997604717238704903970501592970762099697713300485750701585122181095702217143468089361537088375196816751435168036266102958109685850561523021487280355896581048423527599052084637411219422370881789504429841643944182789139942031650973384641959670783423397227258859112326407033499265892247941847178705709111436650008777964271850461034934542766831488353148526148731664283018696781900036553663540861589785712129426867131039523165447960014904040662508394175557548897163720492285250847507525710865510744276226875927282056645490300806619204202382160993368733192389672775239737485839884023866531067254422485307151524441637202230145465285125861693025345393263650545936910281728387112072625962398382688937304200447504454537273957923808446685171958805120733391892306269478752422200048807417083206695929437762814190449925937197706370305506220792179787233791343724374891898896629348063129101852259658773121180511896727652407102524852684433871991740699412281642437279158995106053860529020040576510211223991752662808426980690904406859985363810011609382282969831198121869552843702324960239640509031105617194998142709972475859387978592909266197516384410121048262787906771630575199976380240639293963800029526627233986689018824790928892348056581052280669563727419393558805897177820020796678817565495354127018167893599330315491268386258458706178292697911598671557198287440692975433769526101966486665496712552914685728542445913296794423700486894354019492472883333753371598256132174287318514026444034247826319444196300505031906701364530581667156884894872691122764965948203510195659085704705172225057661809412428599324517474621559178464282024603617428676671673250980872009381672111625759210293931955486618473832960546486393040480539476407705678394939459862722707363781790343173380194863110435556698927933060361410145421291156952782618868776821258651118931884792269040084887180878262388740147622358680867617902932662394700319639641862307962568123424373026686439461108688062714461463100997328485672169112579460614503190346351764458665961443749907982005492529093952174965667857315961619885237732994738430583178335092021213885447744461853426072419869719717437379239957803595448135162086496166887465977334630369906983264640553213685679904638568531184265402831872887862252436247669648427919887974056315336975740409890775434286902685204180173292055694491580669741170789940274473690867669487442810170797369848103408068265391919122089221052466905436358417710416839926260778367530791676801483811021348056146466925718181392225984675554384640857547751847107064008537562274869285334085947898521975010342604431310309778412262230427243157314046940945690475235820876685252552258575034378363995571033832083422062165121916781368765557490267614481468918359172369293422223982380399885215992086215827540212312780678114292209988749112015204304656306015380660093481670426721975010591416575980574983469032939520376374620107898771444555942495735691471169926227222144725184259798118044632715168087948081130694156541267781112173134227683606382221696506431337798059763543037784880769806103707957369546283591213938044962850113856663237475710599076359270733759147283594877110596701719502753976899667483384599343293458752153769714524179037822873367625253350846382988533250409435713989873652006584408976422449968022874363785528507818717946646510810911160312923483991890231708423253755904352303778562451824150748599125257411958440371421028345423892314165067809328756092716999090926587526437832762311955563232531287562812741817379513775155181277988853336628767939537740696800897782559346659103421024709760702569796580807878229401968008499353220745065885958277299968939604804511620509065592835651798891045677103882369761792366879817815289799383251512682243204631704410904584980291949998721611983556903221187145447266965881290484343967515427580710214293341638098992717955570148157140254622052045270957821707650111696417918314098814067235740064551204629560432946834756417271026294011949967670292739725330291171025160767802080791634429742768851681243469546818093585944543917287116645348858845008153692457523405827374896350114323686438903845106674011938596601810250282633349066855871503505440938266733636094586765972232389200125338781239491275601433517241138466541609582756739791536143728159106801224169650196128700766665071742157086586718700226008522273684312652928418607100395455115588112643844822081137151963397611774401134763465884361656075666913452049329404164393409911922667864607466977061547584411787979440940455556032583403182777797281552668168481753149222019729060914687289781866257994138231992353683963520089984734059814765082875487226206395416645730040329428780598789953368374674690009605741149169941782976523159644887899959233324554434974210895150960558188804652881676076919683190173376515934219361805331523359831145496194420461857211255090257241798727936204548476029023698857513317984435278213933323022591798884764197695649864785257896992119590463297399424400612802247772044334575021499035463821943422053522994745007586942029341234065385782814834657257545505620720397345013431126555986821772798359948497065715467531360413107616414367284927451257799484132449622246334305455180519703364044820158336094983936803494584259534355098829935992814904148386195838509876319607199536336400130591761997354723710760921798257567661273403007130780893397471634224130291089621427791730620545580333207718950393721239222288378660271234863082509933555207887325136066235728646168510716313970130340080570985603407393464917976939064187219808736225109650980674592969861674755436157500762491359668532676494719194868911553365288392347006068032376076538879494099478224989044767669099166372963652338936910480465831850586903271981153412745020925435995076558249346068443743304371551058160081398927421824084893598083677838018444641334122381792937911670490930461785743820733472909248286667195810350409795113509572756740033564113513216564346294075361158227358347040779581537723109316571624593038229349601337217568998690813084559591596450587426283622820717084150758758100173670587495250660426352473283791011654066001324381180355733622013567167729531218766809007319770163722865950296011174356757603677667161790955527210549268691113688076975652920184910895965337318742830559901778430493052862076128400684384717512961686625477956949356754536032363095922360128141837854667614144662029621101948827138461998379160205027356228452767113862472764418216097926116051766010095668240442783391601370576096041511822386819640969330040428913400632703791668623024685090801203307543707129958218061388481243309133066529854642550369222330224598118637612278201845915211790580010991018020316756733029284362503540741164662730157457087997744697947074854777142056332697804027187404812070841245706517880007635615455172250054636383938653706756979222873493402349691295782618546250064244460611616605113194676344814708308897368410331739173291620402476494547676738513094033461413600510961199213680016607782168378063054091178610311991432009212295645518670032400461603865736786164551240328050212635199524339883125659104843665329250492206289895128513621052602570466211163178442031242670882647695835916511121525014781779029380885346870440954291758910404291369029581834978288762475995701163014194438823681564159799878657957335743935339996750388626421710529129987519713713523281219457302335260135216959765360312395171583713255959883953902684342838655409989902418384415140772608829509561786817648885620545344495676756689077520377957853025815490709538108832374065475166712704167883951121726900948608919211453044501051856404986460952367480992841188160434732413655766158234673242374273248481732813649913037372006601583521811082252626102694526969435973426213726918722593177068102167377506074416178981963746088649736608655715269791353624491115455326175161117326883801239410906061267049475622348612522679020611445431434841766613174340682928195938619497839913492031296493939408926564384782540710530742722573593736058494837998036690375933156818389555063528952636041620097239989410944517679010742943427946020083590366587884080067091272136757497398471565271554447207474378679695527945455722667270613960518817712285104010489942057709409541873333176623451662789690701398572863687434618972893861424183159873122549344431561621574549543649650021890087203501526476489265481514867528266616152127655094751513926988391292058817276667514934676717401531373899404400533156576378701768113385376006912921977865068461317684015055164082898520049425147772899846915724509986234710808418874792104211130954148654421302471131578347983441521891089587648589943028851630224786615484782561887644866558871916475707002643999825663292162619752128797605060364919599076660278322892284135893557260685101254182043874186957815522854056196457657572977317089236588623098875313677284723338308413626027921414999568837074140111404534956878316127897737896268316238209193952550813173354518532288815500021264814405576968180929037846690487082588473547209943884742061063647784283966655057865752279282472831626018739990618664845028709856870984196257153013587082095491779367236483158558000583767462850120227568153597616784076018632531527248272091437148972514348018344163531516096850015384444381463642644360583963696221166556159441229978894196800026629157258952220741141925229858818220178905441052281369837252329845336994199889715198831302506082250991056035610379169735755528521657550464776611435188216090048529339014916767539584712608277972893706624521147774267721519590302544909542992155772413040913485112376366704435547538560273878304057752299243716735029853190303028208353797722058517694796624918058348292157553549073217201738130965026212121857247242523796628850233065254310756141026132754339179395228920105080565002926668452030890385570530345884540052315344685569221336408272514612338955333193555279430754536261308375633831991821204476229575873008909527705396280747567490443454295888117437721833262919376936045383233779521042575941638196652318005081476037658822870087433755716238817961888497938339324515190151408453387352033420412825288046686190498703090624282394955752320834436965958885643199441647101700858361955236535600166473367236723227383731251797215535441636435719773439151394428396466391192878998186864039773432651023499167475582695312351253319366406715755150549006251874644774636364690266093067878943355085127482174377116273299646234559132678995676134430634494963137169344796954817320206746202798177921396738756863187969803164000319504090107236477838947018186276159625752676561554653086013357886558119073108747084946496422920940754703212666033562073896268790156343581637652072861623615186365008182728612200261866543441444727285144353373470194258718527532553100182025654954869308104698882772550615744084917139401796310416062602184963553208275381108889538459417491108186392312378668169780553371860538410393645401975355221305928284410446783647543839783080491530355591249818676776272571139943676857933098863624747726321358962911935734912213985018560419378472996830357211404807432842151524019060564115255780755891096080353486537663523493042813154666766753830128282691092143899323219148863596693095266051122876819077637423589161082586192365348898404309154531825399831413439437129301703968272723224892359253556489307207737045008530685826485482823905949888085998940505418326784719445974416695079938705252140716936153978636458068299211213424937402272715181496421642187254305211702204212508976044412568793763643283648082937398037252962526485884147564939922044335521316118588225743949191863791998379076915981385268262147395102245850105978234077915656762680578334611522381193076435822811362363248249694140036620123713158872113401581209597826324680106620930997963004477458042436877114676361614895701065934285230732806661946979706968142394284559466297396080817267809967492920726549887364052430702837880463662721917203233873171503140102791839625284489072573162697045410611808564335167215944793657829040271635079378441682718626207015369262821944442478022875985835924866980348219637049789580795509958163437033155612822089182405864743186814317897895288125164008933852157398398244958988766697901555900485504066325590390047624247667822043710241019168882466306281129752444786507593564883357449749188987428831136287515522634123304791464080937523700346781074841505195612610993998583612582689964682189467700313429944917353105532514294833439922178602950864818874483405725856108994643714972986337359813091433237463524480523417151186810865865494307347412056853686206236287414959148304421680546650938189128855582360541063252361773736076454925594598360992081958842365000772323259730894851158153830540786610048344078476604740723873769932039888151621584800346044468535983520095007804226270363824290203786090269252539657342487918555062770329097856002700315576230516945224827303517050704135604948037314694053500390708132502201578977865020428936392621109784994586226287901559014123798216897776314281886267088409077286422512220237093574871159872672839529324959174440298559062014827972901579172234100334955018028688059546024273913651131898940840830356407200689001272086981948417922111742274795721032625168706444968176110078457218525579854140328105155186452397863336805432227342864559109074455794512991918665500124767037372686351365461235262051785985124738864117098450129435676578015735619513644265902094176428727199727666582537502392190660272027628689671441759113510404590804196030214403690797585538635836949603277226343885184656134125259043018732426610963366043927838623677244767392273111821719833515396389666695518781402564863380507268578518423587410167002452510361916410639470490344989914958945376429127477694261952222709763478261135977934904180129653674048889119597776801285596604997877130556848967782104218619055608431774867503188552788731819361609343967499129950831889479465222522947718452519983055174538238102046152634569014607502551550432702981658274124785274266692930040759308288979646753043512237755641928398863466766172694889781953154540281707723701714461526383308698841432343174800540968798424771355079190819907633583540392629474979919341827973844536617664508699264507738918082844219811738612097318638258757979974790731516848030014667883479719917642384536161574998885511004866546432774117825000895960119400401369970965499183166544688822465733891181385386315324408937385820055914329721324184968240780455673957383593451183921980876137177984658836408252013029612670859730480264208534846713761049616493529513701574204904648565083049161017290645127101092859132215483884819105878113092358443651944241078932563931649699852226853626068291420260068828233321205567636585857418896693946775785576198537326219275463921552695804823900500227799294220294736798792305093218112468077275730643146081034958783960442846784020306425050843651109032004855333499010357217536163134765401056421232386130099437220958598815820165983429590468661453826431005227360191629297552839959761510369756268256064964042390698751825351664424326956345233168007918907938658135857288626651921965431292193607517360033873196360698592439510861767268560842114219858760639648764679291129635666617207498235520147247509627468995351866393159500438387122073219948096409514872700444782650088425358571124274506965198709924225969607911294196861635617447126891221696685028222938097339627485845804219807384997021822283109935411701094059684083667994156091454177287977552212570135257761530979481745948020018444402025273466604294811472929059944448499697338869019867729251339776238878257894226284308460908881236121793497626142632086471131085092970372558828177142234626501501621650976914295615716736714923866750498070849017846382693552951977786821478852575691484619085195448014846726321421201514442016094074644795780118744323870749133130174260370547503098643876809269435870043039090279425777955897160027211218463174946953868208709158837881134140269572771707443420310458410056880175160681641126248961726620064918379095480863080161634724437511865072544094963719996905158806433962988141008308172510214649063166937369144861545302469565660554527829830006963886920560238156895204871293411204336861442822456100234034651997680343117958383627252500321945482809116343562711111632778764978074102052861840574976647928215685108502941954595286390078070072028336545964948418613455622367441136138465871490049300803906276754499129655615101332192759436448492613731108657660488736984478641974081979466546614265746289048216841548101566973977244330635779293343659713114190267249297819192148351311213966885196065126147356995889819006963935752358913523172053263059951832266709197049322533026325103565783983730151338177793995268923650498517020797230960456449399790678599027328268837121748831972063158102760377613517444436310079236240569549505552296892140120696179455817153843374206501727214001509388177526535186822823682896793441853886357586581233390820403963514004123729425979567656844954224707642190282507616773717331134680464313678254960463735655199974438955145725187459208951855274175885386546493741851071814385207618733747034616359097471060289409601025504314936384423130404330009205581160652688432355540883478208502968382897538599303247523125870123704233624121890380650065888074160467662926851682235339007857118207371708580714284982409304335307306225768056911275083911692606712018629897971258347081267976530787871955738775336234778033746830132082789326086587991801815943935475745474185972796718692206840214715256185021793116229659263780412102358977243496959937956638675327843316863255802067094669880964369102813307920789907801135017604326502640786248501499154676182130671366422612672180684584367443476236287830262404385860935905084821034487650007355441120312036007515813476008989013172398358888051413479366910708230773901979860876739120207960003471826244903728408248037598077254740051765798395948965618042492661075248930427317990820905274888761641974008925243240201221350693111336129545253998571157341814791827139460429094137909827361986355176188277134074505684198016226855609579620543219291754865255076691340730129514744846202275425066760194802809460352871326452622766126938414448372713227390345293726051672277485741063794636064880365630499889371111512071263264074430007155092334010006466005642013915648827605861224960908005925829020653203810481217309744633276897627944114974567550797385413641607839480498981420401641687183893073219519335171389672450773297155809122648477565827730910262582800653594424958054319511507278824569823185087041819907424592748369050706195879824876948195677590948606319537837240518799515309253366836770449896174228062687943082869150305992956597720856360673614925105158174757710474514116960904412498893139402142840240032022293677723733107418171593049956278350853830355830943155394206601263346655485598407062855124892279444478885036654058718125521331600726236405831283127307247578692150474327132645597094075494042616583166571269727026709251862460530667527972314706213530832897759187359499242218506872616257128940949009499637731295804711502236165309964554252413756517584491607566551628093274622443497860099940562292999664431093622417440500039299953839758067334765154368563483420045943201061359478130483703285536448118453357750394782631003120820790614186039592227032236490086593325616786253004257369619048331263579433518915605888499912497626023158604606408168894858253445911586559381250578553489116283058594248025786128384242615549679899716033078301833290072341195370761914379375008165614137590483348656979839433559039680481774502850799903415958112385090012214413640184152809811118140103899132943246400659012988096806021784898264857459471702051692706929512620890735849545221183834797451546726853151718402297248779651134869275978798087846356113703600770806893595002494840766941133209989199969471142320539846952063767305517065229050715586271516832705396213152993752098701800265749917419007053385914265135917245419144347437354501784298327437749272788015306079283924134493033950709395988355735206972502745066617630123612132073118799756047869523435893686637510902298766034146418339717276907292303904289461595291361919546729830671587132892840082296107852288166729679538748326799752056987627292113604914593389220336888034644382677991609099721123753521466737246015068748301440286485861850051797141715066346902380261080250397416480524631626739443718262956862617307691891428257153902768176301610151573188826426927393156534734226936239779654193323562753507075216547024978474224541277782791471870943381371575360390425461452586224436881117990825564412251440218498783820534704920980246155066783467901272575389200389068106075409994325709960041669602241363224175612696423836556378080271102126703521741055533720768944966272942967917639085015971247670061642448614713734115126103483588647646468929874149113022646414347326640392483719472830761207205259258999396274164330573970118246934483630261753341094419526090988417856438286821489379041624274099808045730484936202595851402226906889277748445607178064420312275025978618495099822932830804471781152890876017511619613619329071810040465724148960296130128342784614133641129562122114396610825363082688053841750574467667765857186048851790472052086684996369242646158599424899068391536115685059495988872116242020775595267069857274879726704207898393855689674066995419356284577532072156021812880110037090244614630342496042308468671703883255346890410207675006032500662584830281104230696330715273791879764163484486152893262987915541700882508680306643293612884344032838984915587707742736180660476964345867370256505955504316239583389978895010824095955373729060370234177348982496556290022236885263979039798398893005213230535335243712510922655064002283487198580856129332691636695262873962473384148879054270946987236650917292485294385788408233103199842593691573590646162464253599749710148712850872420439657767137698962740481138166514642045265066879628420122533128905402688102271300257655957465026767304562674696827482877003877875233265593701985490721639050069341368965297611981834618998259157923245004097650465880377295258936975762755491293235291779609407391391823819564427244450230425738858786991929888751677203223461075161349370862966527742098995345810594804653707293873444775328137373458237858610028516236221356640875336048455496911049270847444257706045954066570969816114953827698145839618321538069226661964403138605320838949027154233321393994135402622557319388692458274857411623816515312423885984268446456595327076537093718652763902593001989689452177544862927770929845893422498747386350019443908660108231260456771851390344297399306845652912848491340528642954681053905461835748079525877358510985714150890125247091228492785180491913793723422496649209250708119186399582391025601290355282686433535596102699715916915882783500017056166024053434633092187697984885749241044298136989709652615166368950505582430048726799209628199757463875758260124420407468313836065482868505781107786400166898240083719745190016243168973960683000624770574161801323134545382181035714723928942367469446355490244820003139960601228158023149946822926895018992296304713016859601389409449807442201922018680928882650415192024378570475914016095495876493347442798244338996002049113326059923359545047699544676131574096101095971699484712978068657797302729844313668828786010454216872052317388752710722372791069760581273248831141973658597933312277599305656140857504762786133010661857181255426035738182330673494507211264486265034872912441463279802518433833631883992431334449931985667857266781732081685643628170997624614292986971904638946693545039552027763551537567183843435580519353771901041436800018627073052480625036461656758281443779675036729299186321395544310323104480719900961264169001542666539528049851543708327132937613494918516277713360161777402254656421262718085969641157315246610334681896971537685845085998906239060385579837938722916528873592341893950504625296682779987839566648360732020384668303842391031656950776179670855597354139944331121841001734083635990985455210720139555576363911282445183938170110830655420592880257799269633811503928176912876615431896677683331297646469640792373462524991821111548097673373241969574974929722449660517131796810329360903682867774236505232599756240044715995147516511587712916500422915871041802303989219200061627357754832007681891673321743184216782121646238017423777584005025968652503116147797182763079066962035115146596483184718790908793959699000701855533572852052909299281091498929665231609078345552740780093322711336966405007597835312727637732517435774448588972846961147816155721075734302424047261179310446412731288671240407047268999200177595251046653940254323900083869353749619774883523916958149343085860749283063011731389374432009518885858991503577599958147763757502014469628900041213108263680366414277968726402405003531552578240354228291256207819265313817703866153314411562932718246636953613818258401782297439679175263799961138271040425248959604179069158765011059706762223502728317368870444870766840397542076247814167899692197005900717770625453584525431225613440528334686134967798871654740438971837899095824936258424932086573184256032508638559189857466388258438876436660360288137501741498736379248278248531898737163400421509875662509895655506320210326576960299332874125822893667494181875779874413386041763490093683217312918849685753569484206107898604080585314650573728957837056151091114005121901018669770678620923233697719006129638335891188999453077695907513771430471704851505370991245004325993076384962541397226960548893182368719268358384086356325737080571293452140779381499235674750930043598428040418869664436486255033255985908612224216522529467708404761558294062904510402003279402206353081997682391154223763804483540022737417512940009161905797730807286485726082798492015550643369300096736141152783663881448052604165802027997355108722365622320605247646841347109003364869892091583450981745319147560188700829398069309193085191048409852189636882194845126216182745075334531129462714021599592260753951669061367453689167809329685762021118238830209561031457006266638921917433271481474093322945440882004625220862852792710433489576286618445902173385118398379606134191547743228648118196080449091928647927461782622379762647315662990917757085722619299355396542170730675334989943570930678729545315843506440109491499470844679182081154436373018542604676351323222731896533508323269050115761856163324902446169780331550885043549255897668578257062663188403512850408423726908897171935235433333106494344537934717694562714936049183944509018902547627665402520090832692924785406910198665462964239143945884948186461738658267004216914019079082486723035973624187494610666152701108217578631976901457540491924780004091816545637150262517830541020496459151991362282686668283210014323418423243839149091083133607719312895255344379921512496846116372464496967243583033250147798061577595188717893432355439363916092062871879744891471713987189980696979033831239026167474093754892018035692698951142168883331335176384543133068087398944845524653578440181436063022211869509643514491855972767887983991890422942444989108511916501877515674724612382356055432477138502694622776525846634032044973153376599279316592500458200296757728467106817850925971560763134387515388713533292570863891009126677686599670895156275686554134482729479748575723108539735017955786491681578601459083603353759804563493130459792852390321868744084415638254110074458312275653695460891675862822835968329003756932575208702377736952536576451543516725370309203116187151858614884749986820069290080202976947383513088383942795331542014060918262264661743588838694453636089612663272736146354375967085832520010568587994211051721971091163373693917746653352300837141131191071907613116720486284789549212781482519692623233575490479960394397180236509769731576279512885098369270424959292190380243978672570348605133263344544898627068795162676097999653143270560700402454778990075944759635936912471646164801425323531243554471273304689509909500022936508478709108278715448883398612392306938333265746667111004169188952085860876149868082762291107068288688576247141268388705842154043317245991188576953171388281818232436653462879165417301429585631929672295023316552028284635443411999474722528346764181307767074122499374384393538505087921489003582995792845819885832683427189304648641948130406255945096036018089063019755846196821093734901327573695811850354128057724171769947109210375188470027048730160610540438786028011656830669321097053108884338526108237018171894946202222855865841470416891566859872815840814774670588876116693659462105345303115931459579241750055705701384974438248359590397820491745660238834015409407658792344341977659562732214309623785089175207538042307523081166543630092734678263231217419039545621771801558618717171167854757284053283897486452238620513795337693938945701403960372363298622328130455117414343554629473433380905843004249849389450861087059252407993704207405902421669584376128248796055866277334948780866584545359646591893721775735371463092226807307082276862469464312892473239137927007357348416967605762116604479959148708709767894120020806429752940995054991756744845293942588917307600586656699278063734607119161089863839068597034957881648888342865213128903577830849126813167947444127007060675807494300071331981114990826537855266223829366454316910230368592484152315136675598730204436019360699513906221820654426145015855773688174223775140559942854565226681025565450693788904312144398615838727386640412763168875511231416688973651436297632430493780339462886198512499157100234493573966700807430405885393613478000726789031072331747008275998198448858720955564397754904470520493372787255591006387409477003411127021275284952580880101829805580657436504779487150610895440585005974539642104691312667458753480590921784700006616566364223974914268831079018308065128773123237893579284785620130703108699863685427482059913854319470761817500743542799933372707149439285951749282831115355871689731238351182927195931214968533073923350071852035423303940832247263019627872398224668708680555671128922988271922230920949731373245579716461849406763390444707344121055396949358943832105588947944028052595775351368239077307655050254369334485925721007289884962514991134978937132504874974781644323375108096979882753712566670810307743694491415991927675299611354004046568053017737609532714017802717921608236200220456855498089955842715904739304488689073101701080345015267965180442027653147465870816762295634454742812694259285275773615927385186653690324336401698833940870687320251262559042606323542491577421997930085598774071696951245798293169535543106577649919044579451547071432951333687019166842180178029087489676446671299738994301810561027149236272652024168421803555533329890415480777020472146419179606595340346102983563503613137143874453068151605894217299629426838902401638670497513071457707027541536931116572751797795763001792359137684217769335489489554425289323921038580815490510240124653492124255344240125726929551809042465984568275304238510664343154533919197358258018445695317722980913150529523628058239482425718194138372173717269470885929649501725956783846289185695218060564559127933902527156938021787766614205846512165134416914304769439130650732871021087566302586092760490934630964235515596885663019021970405803578516891016075489500046658986378458160343221949383148237013238926216764678376785784673686470573188243166930864398638657136754883399923293944407000326332431582594131883658043512804662708853138396791271223722897104149039723177756891079839928290663148890255521557430138618816776459720029661555778416866921286275890516767022948287402013815428665249422706486354867929749132849363103705960801276357298053441101507267221435898471200408023660254636095824444301861380217630435701748137070984129826296497330387363005718628863341660104255651657455328831308294607558375191309749409424853629423174649904678979131718580017805976665969851516378120321309728794169298211948899704779815411625330174160045767828972921372125730715254952879771446512623191921049782417543584930990808963232027219917822452838421121291614618717088963446568462085135456219636265885240351240231283878882883671458128474957159889197251781761694043011530609949961371643424801900261148701964463141210999008251272277669061840155132516288146478221922271121808954263023782802850142108643322310095910029891977632601293414003838651293599675393375703510783984545460645419641890919198379124840537608874553306781449581083097322514914210808504210993753121473745743471376902403734409296534789239043778327037547333141249162447741892962268236549841509324536571939255368590242772940612471520067140131175249856148052629289082511726402162673833573396706240491162457225043305745014951907177111634306070091588065897184254429420630428178614160102325175854831856397391239512788681562255910931467553229883599426855942401159268118901793828876816869983994810218143194837510457682186709087211846495852568378464192825603955054045746947594678360208086008470856257004383325309792111067201016513111082817590060970508283778080883059250488292790268481553987044729812967953643403669527125125542146754169152167353179377715713609109613026554513202551503338693444536548865971949028839282803771955210220237167684601577960072246244842282811938880231750224486382655858759081720028307508288047298529910050452764857105728404756742967800608801978831748164333623565997433143477566571663676204149511469466995706337073341967380796970572530568589980483308253399075947530151120650242955057861132799566292220339700476633000493135345191039665557236380585348891707189529389014135016037869842695204152257409399197912751822989409048751731756637839098814438197452079647703460450894728669700477292522281993258157609461144540799279305164307665000466977184750055610783515156081373741727293766697588158970490910490123505699116909222705268748890252967279740146779275530918992168528121657508458328711838925869189730988384326601432712544572926457150236270794672858437898741445729479325291207256090759295556066036239873609969518139481550248764739988193630559622963913451618618224518338212727468868461325606884805078263505238145452421439921480239045777950634926491936240461625290578749497654207911923382915377812019782526430474921960592480304190888833223544953118530052326618157289422635309414645455897415218853017568394814406411494126093223749798401203781452303429095823635731169775713970041868227975344675083130143498528608252600714835268498848419445331752640619977912703269445603429632821606084414727586414904606723849926377350004778752733237946094047822137542936783831994472029406147370791191536787843935108057955007427344228488313500246542061284544252306497964058946821864524509031522020317921240971094043800538977362046292119787689179216483949583473317246002469938809463627021164026234353668504375697525114765697624123198179074294813564692087319416672335090869229553348741817810373313865525281947616996401266467159482122241335205112312063694615385870021438885258083719690628384759577228978421095809389486872197049872030496219205864391162112126175518466602165306493415884983692409355691759147234942615174055445226281389659033181991358365768052072501616917074972119865176145143506735646550380255864066311041011164672422457642044918250627374261252245022288085849893827492818760803847573509897795419376988235330787929008163697891583617763190167442462146037382971924753530679467515473033784388232058204043102204831251596884669377624364154630472429748895579738830482403904386877601013550178530606929815634866423465347669252488270443196509588873685374959186534148824403014950727244285227477038912612436220607633270464616343580142185557432135555479843810501435383741635030618071562622035645921906490139899636157084174977316310413410069849216417778821140913957063796862768430982750577267484483030061367977906361127933621711284244625319830781656140187298922194560072745844997880860844636366985560603913968430106308346792516853280492023640726587461618892383736487243363277215245763683985325838331557116163323690244330753891449367746202706329088859479621177310781403356769874105489011503627052014695160177319482636795782278777856555409089734601605054174637249650610703589963359799191954158162014531218549200519560830205045382831372326104658363119979966656462757732928989729254742671858827937512208359229975198365383232876227532159049761069929712252137481299136728891513307604009728507233323418270416103983319760671729039646921911047568415728180504849470432920535639693668782958721139404554458014197223456876729359029818546073204902662545210478808799898535119259512905690327877274541883913548566454017175057912750760712562800826846263163183071456078495686469278361271621632339425643648680479101203897469106054317049914902576712112563890041167474316653840898340114733286008644009704582642226696550264748891482878002014522000684924524750598684901244568972883893057016456620560261146735718227985763049612279440954460060012152029953453891253601710923771911099336903197508007510001636104958481844093995212499325883162132255344048200717810744598609943777039638631903293991279912688774081233985687060364416766384191132858231591028260658767084042262329500835426884700151243252984098622147390438700555086129728910779902717792473283800809018093523972222631324193839134902974460376591952143611119486879248463045042664679936722258691335293754660849892468922197124388870085565405052094096786911394363067758488602812410877041795775034204028038492043935428630871777308021190824794981708805761119351646373589756013131736467630990652097020990540750381705210993657424826892401966318992644926254700512457296409475380763069511934671979609422743279538946165087528930839950042226030675768564746871198234534526344968809392486131065081803621208174473124873174013066208253975084948607942675597728132968224534156523578890873416775531572017160702312007338614761143336444002918454582948845041931398760195525701680520887292422397391526493241278257241546159590307211028171686495679892453281884125920821639347721021982630587915237967719209865305593996863123171152080858936418040799418638634455851786149665896177730146476803735718306389421132334072640934308615546627762497273848170250124343089043875157027827127348065441111684287454213334921821770622498452408862841466921264414755400011997493768376321501834874558883954821805916335920254793004297854985568586407858536236279728944042846763154600118511292565969875287670795527736770207614249546806411855036195978062002103359557111438914707013439178782888046911416260208959515908254864824276896874811839339924350193976912680773930878653221227576318072699992976452258635819255901628579385892742700547129355045205118081065112461923033044075125531714257075269092147978801621986241786864854842873995616447487285284141261098116049945217867214248917894762703126464859790368252077094423512790769703412261516578799820838814592902163482817380071569933585412919163941143430096234243139398155985848848172921778487049689499942054399112146737340149197947709748179719596352687187675660426728694125562982369661532321939824877973507476249544219941782721526576438682849268821246812154611743333363003891373439679131305264873733556519251536740811859163786939764799937849931978425911027708357054413319946018089009105684459511782853351651050232585951737490833619343772381349423592255294868349203509299740902914058295758841260180572242291867091245543246248180833913140906721077430476109820448536765783910394209691361910883957206307904899316833024894926115715841922864272867599698153086761307401870232399231233988962763565334231120965817942969619730624161122260511570375058118009915720163416002355969085281254055357829983234758887130175525802346521658468583370135479473057127210029964858976414996570939902081062861120058300780735753580299848280567004396147774758071979400500413886284248304202901470935134864987597304422177119711078794137172872398067328542782582855824295652214046695914179841078701546570712355983859093604212208950611426481740608537791262615958348269040952146870205370404489183035120586350980252063798654693134414432574527596664026282891421557452302600549508867404124982154609241299794947544255472024713037124639152759763158646649876460936721677355099178559684364334087024081354574215161483722573109044277610347427113100395383629066753715329923249967087854085833403621791209385629391969344096638174389101512915335788210457700546488979454736875822806876672938407607980110209712312715019557786966852111400017292691187752078104877577503148545429689374739215987593352780084591265022330451417572763885446290192815601891442297635986097077367636352685789120292886235641808633407859349160388165260699292266788966355324092350907903747474216263535969521012223652129277365693859650793916113319760447686775926299466535532593426782657169374661673642491304634431896684127673130159155744180734042627297173071846960040131648059435940670135670451122915640896991478726738121275506217129186761300183209109617570127610308568618254181708397829038946458583414622917218601446992859380444309855876077835501590174719723156595058910969010112758116394942434068311293506332859319974990133814834754128054532697685035003336841391647838642160521073183510907999977008495921536724284283073679997415233356608938668389495170870368588459066575867445684362223988561728621466610834865232397413893279638821764946371811756002218526667931483248665595284481159267187411293897536994699017475863508646798856575743771164176289870203882738387108564878936575471381346765961540068674605744856235026973660955215579609275338159595663755103236155077887501171954838173172863765464021449963043962706476637023358019443057977702158852690502561199475665963911837567607862093228608644191524139044622969538775772510288281475271290914019493767778127837855245804268015998018185509663254244486317191698293448620327632927101330630876248872557408947554877899141000384248776969709087154541804927899735568993881975455475904796543008836475934092663633131136170779562257018996147413332046464825148963166086042630982327232558867306127134638492044375423624736109128329131610824875414267156235643910457349984878674231469936715115745606765896591456217617121063457010194727378195594757097674870942379499780369484931780170386034981641243927447787803552950461796240813864707031758466498817880212140712483968167432062292141652836366764796626351423943774025242776416483723161522999605929902209526237900098641450008722675183591384476328111450533794030358228147079427977547979274231954176952837392663847864522108067548009950357885547200068466069453508424399672120056656392618256376069795655375812461645805981440348910318090989297699198726247391443844532489972417174277700389066085253522811364023351760889375306001498182948465928452055187042689224378467515896381315868219582531561943206423627687737326686819528474553762681032663079284449012105116404374417565719199730904852006410970683722823496239406379434950088318648606602299531151204825211410051763089634907817611004947953990629646244739292267640443315712046393366457228339698277189644842718174678575086821620784128151922365579507404288962598399550268023645244614932212871119077788990983537462138607905440498681643523918088334342863298141983473438912804504968863185592906485415905877957688547416536888509354082285914351910771309095787882164243065744630386480496453847481536918746181627842748825191727412792294762440726191775070755725103896797603273536507731591104316272802106039728850127780959475399558712529356317256098662679459620407379603257633579591736483482738872134206008669816899638024899681125896230173736197384954454736427578608041550691022103205986769740968048621294906806500347898101269565613155023909155990067602024947454677829011979826544469550988560489414366087449289658517438671043501860819393018061291907793785057821228479665253182631288257172473839565850715605602151847201005743725247368208711244014543563554456289274767500732257264476975398294059697694529769261132868872197981523615615705446885120252144437054587223739801411809447243307908530517280209953108148329291094499929565266358827872042263814866691891337104644645520553443006377082077323939156077178133326675448566282347371433017603942748806745871820195064086446866471353145173926967554954074665003008234717783182514436157067714896815107207518367626451554880846360705998138229805950520731696351099483567985597075956368121786681017637935537925518599521237888837546412615639902594683574474038482232516966746717602001317894650998166745206968456316515862916966448869976179363968424860744788927771146124416092009713773352303565269399080167924388937741384475140305098937472529264998249812673801914697582069699622818379178806506198710214061722843283264949897703714708256919357254238305253752247161470230121907949980933261660118143749464367777904240617548459077474106869327553242491795693481464418128154242155433073256477983146826220231589271605565456112610476609165622480730285965404389608309307345664544799122156566707847218498026515614645054015404398107567335151132818059761697027304421839846395722251254431876735685629704173557293000559133908494341949428676632480293543306600234140051020334415538609532629344854264905329222944139596146038291825071920250061838953519569856921911835620951722703571762293915803973410745222762819923707351116621270332113325268820065320895011855269464373154503726058495330391445317856306003598040294033724532323011668780737131069140750998727756355642564557691028375241770482329414959705214086172884115858601476481751869222852320724631556273194888338385250796661304092394119097801292053290663902535878024427501026722278866591904070423554811883837247471879085163204149493526843592795453573354830724466688256447269052535673720019629652285535193343578019653693641252603909336380798630027846870931941027086944095371372140803566592581636334379429151989341607513996555475424513095561243011619306038272388087882740159173281075711172880667224323273650916764211796059904601361074555479127514355804981841612510035891081989317903637092444463704506799379054449918105949257276242695810746840797248764046241447067219437813372781182602975129469852214226261115327638291880061418956337571727029807719949096899444300497119267922879697082537733384037672497949156132748688902909722841041122514045100398887193652025681583285612652442062310166981692300197882129233628762804106994788328760763774853169762794844051209757706181843313815892464091966526641770268242525629931449004044836803247664490105797724954222274972996114812524407641405488961580725869843624800289449786768928666729561659962054370677525638496498255335598696235471563889043339525146935713017515201749075903055651047656919729432769612827131654654280610370635405365297586229125195028590524993017832666031961506024858701463729829206171700228039980517292773102051317244310368986280852493173722521631532131158946834301096744583283536963185430388128032307203613453480549854345613104372265754950604364958244201460432530840032647535167118105168090826555234669349785503270957478247335646353042179760410159141958417573886984604333086939762079832061212267911265256679470396826289001868654553607361491902658828082095829033447666458591168793582251347304803347309449016977444511005255073385044989684900297031569712614876795823910785538132178092971832066079818196021626927185019891850594638619543261071042837753219750527326713126913665977268287932343040721005946058455328551522211313171879756458802810971121447531371965369895973718628353766388356287828716159942733331937626891421859949195821342287302162878835084665635901960845756805456004128249909229057575212927183623019747011612981305515548271740164251645787318901300204195870387893374409904105452218865657793185392212921008521230698950507240909195934336668336887713969602826997437780305259516356618608924355334028332367237467010718437336163420271709991562028971402455879104890372290319753967804343059695460036040646854020484059518471506990460661561386552354101889950644425074705688351853094552152384496821400582583261215100333386098621749744174856336843939913897082983410993649637687475499912325830838838093292615394218069283006374515896175978544885731411671850401993528289507649904069520244247130556578089315592177625083377338635770486552672390855541337408391136219525975073703047214920671252595442792171481834466674318346412031976907591120919956088206781852996103467218519709924668846200694442256881514936891061722482851549479667811956749823275554752041955251929428672565153740522567708007666447555989813955414016955465219102611685745185846816990876003412634403705619941745933037669043232140275281349447136803617487524637095208083395202959185027071116874194125527549545864268262698862937625450202187160409790437156021236849443550154635715706736646849272629944921334628331709222877400758427857235254427041358285997340464393854642084142221030107507390055293449538380795264640104297534503454611116273580569627763750288087901781048338833404310984749347373205054573481448507326531170756801819717592340909057500801530414497786703206017684330192066522778829560630841649285470363315695835883650740521205843389653813322290965791802069906347357015642918696479192859070434721778524485461681089179771240248125504203623763222789838328727970577813151392757810915931367818171529312480069769705569333350829407005184093517301753219127943978746656136259289925749344348182001926150947557879687228774682713589754589357680249136074469042086620621453454733424505634203084759398315154577443262902427856302686734061899546954599896013615771223903915035583172140026325202974496143147354784899055314193853224922533935870865191962332617459627040670178651051755134953660301721944710290720577534562392828625575629235512609138420028223801108196022154793647883559767761882877141386044731573518540802716151297819360960069472534334832618922781226377206643881266022335571502283052750665901819514809275506255854167573873946827898165931065658931337048859307910934049466527746945259487407203027764727345224927935224782136065288830562645470097388222835805500339156884104121116003729017517596052339826067892549295323654222294679889161381229194428816655887623064981295581673082750729781706740982718131699582088167455380139849761776864086210806092741175902038065319058034529620913934802009024802469730725209527435392456789465730613019926711800916568637739737326227700262140925097608489809545161061610481441208431119925375124375062214263792319512664885268026091651762484973128229110733872591987975654792124063712020585067128661877721628113723183666685672195435802398381744104197962975809554472405227318325138166216563676382285643652070190688683033498004952597837957648918479406822246596815883955073248869608822400417562836655525160979674086077248781809292567958873912420409074443724577396495928377244691838367291220926580980949377972344351083272258393669499129339526768483245197053067120976677065667856612941041168957810152418351238935410342996090275609644499722568598542797118620285955177091705587823390605393247840875502753513898369795816064265604904710668019241721145755866674705645997535360901533170814341192696295225875053108288854726298369595052725223328639579079858973597981922455070947754391720102390165113999887147589313175493985948741182671401988058476796273817291414559236244859080157812967653314388581657865502270530559727920207536280096900664329971427952951794973804893602406901183518316107818970029215425039025723556267784570560603355163606741528344119739840115865904726187170041775342790353213333148580324117044055699547636002817888339662718987504693192314048659241044864944912735800384472521358729899962486204529172623782855103370738486786710472827447322685836120232624869170072635584142747853140118284337891163980831356638413248583299548089438020243581774856782618950284825499968218910415499005870342104520914695175169920514768844351006457105385861289737923933541386845159600639622276732605295772587232286230714712818866737877467421103935932734924124529315027060798913139485522549100493328918901836560083695548842244358969771391397139567596898169559732183417375772929253117439383099999339298595973629319131650045574477820766946021353619680521374432884777732201912183915373399203123373061154082353304082208699585852527842091450940185721577181187378724635334897693921473478394042123275527305459150637301834070936049949543551808747060002239612524186911720516404156924202514161665410603278384920603784974813614254986030841968399517312575683432527496095446985292681293943126189195065439689012902975805372066697362619999890131793696337245863097569882930985265752254823984441488986678917379296900701902750181643466800285935957208829887062087532201508539689494829127240610905910855906282444270737221325804949687678920691515068018188310937391647038894663488117454190502854391233598193903227402126579738907842015252335557802548429114166324366426835572592004695564765050036337794625888548118959374390052974109255550746112734159113695795293707388499759878540149342215217652498481003594911889033022889996279141585800490599215874503062826384776551909485502668311920580021529693150872791735573954178054860356850093908912757099900178830381151057115858545735368229094650835795705734271603418664616423245299475379116969884541242505759254238215879549245425045990783561284752133562183880492528754572453262521228287849162914256297319671801285575990940398877840304527846035481274115420557981228384776830503001023382126425679294017782932545601170394151865592024287733753712653535565137162811893960909746855567260405743569189391884195481083205898983946690991954412842300885094252572627945094635003620801283551504092754016949204543859160609933640066497488791934531329608331766443733958653993734219091012548964418162799566798090503255045880743506006400274936592381406758384458915439060488790094725095384966869808515012932482937243184709179093708271662555107061451414579770845322842037224948310873794294426212476849140275448108633127108228882834046448965138028456912975017922207755207799654771286707422122911302005059140492206300765171743658197082461589894440745982415648510841226513835027854012289326343328578956585354786930066449463286350476079702641929005239980562325637958750747695865351376380664378068268041727133845612859033362910669235408734366490155204729824996391489111848995390391228220977029955590496765027973029303043799897165030075966774569821291410271208420425511640427490091755976425905589704248941112958243512687468801482105382912694614464358518160461871496684253136582633559718690047270613135341782351166438449550239940854563552098260931123169139711754626677180634022742373970749505461422304137712697081376019884382228975294763391310531478565733618726348374450050417241833913513204550053815964565574717433723183497282059291739994950740124400032485932953297408086709122365818238506237516345252829918352635533321412797797238081571265589663800348764944472266526822319798183260226344359673216629409954986642663519523426079541425675180603609759894415475766357560225483687716232552857596877351655252771610065799685524211177014561657634363837196610935643123926733190636932678333111814755380655106064577319597222849223271736994814491183290335016749015547737433743460217589437582859318128480261043761333766603923296429533194042530610130437434205859994902008946351478514217910867860110635234139120603032154846932481105917085944132301714345799328664866450870104027517013002901682489446217469399652330945795949411461193724685851577893678458164819975572217829960375042406829866614965232008110885386617873470044840090175732852714164096220518908717885993910362979751420688175105234634933040677620204906418924463059319026991962075660799696779430322675017591976552311550370037537278103192816547985262975842717591241225945712655788506693451859813407000340874314472437069178663145450669684510888594841083310793272115785043697372221695937773151710469823444169143793564575643654442753200081528146427511393732050957433704655445252015980422622269230078828664852145176941874696666869060682719585844743117765419864175316380710950915157459196138647818902446524801224374927198751606965239277597703716213990983249605186544360360732024296033015340187068426043944408704487401028641279565927198934802300408548615370036721549992588836400952750506576882947666529083326297449249512464704773653909259855631860258385926903329451421004715853644697565072820642974425491304902516513390255274797043591204824531860391984297367076555639495754123875734331564078537583587859044279789816240078144208045660291649217701994043500455526075120002938586186705810224811962543264501145538721211066366248908942224207971580215702588014421077535152411094961756549253451420786401415262276446019892209004641532418967208834821732397664047798751173186358832427562162083675415214262131745294898605906657000070895424831091190206843347960691721267581636830905951729195815472708504987360140802193103895909169095455562699933771928123753040487184344049782345765706614731843116616079636535344799579425780027930936173035268290964042504036397524864731326888224740635390119761036924369062601329276287156935189983371908404471606361037025575125477205031101974090690628957208948957561206380565097961023874336149356825522424119480256909085235379374859217953354725434072265916153018947561419787843503266035272821699282519728447316897220646503780512366502261925651605216516657382367563399294252932934305335943834440633032633849308290246534596310662079692652084915627188461967051578907582123647832193386859134568402788570588368094493506489496295360558710910625762662748616497081576430411828826260823846456928174693331538445876346609757693327976264330231253296991317051149606985286396486568249951559553938082919041838348645596277121688305948168710382487474621119605827062500525456556509404742622627866664660235029141902233875492471470497841465724670461888957017108457258051711135547038067174927431699297622834186022853011275180029193498593259888514985338866953714296097618111462913961544870151285212095114082685427027972074036191046585228888953540967167633095713974685993600191380524379682467582196635411243271351228308202556575606082511261737674915098715340568917150524926192795757227732175333990645227343422833607067583231677089147245866421266452946341333567701287518619693645954775555780824592288797806880541636485944352510540420090747113580680749122716523952970538714789838684108964515568974391806466624936659232582465293919021911606452959640781364966263030865547588020538273204773405121569873515531774856975224394779509191006952805965858664186996514242356456527530612097141231608210531032737681374150127989241220456644549125008758072598945045305792890568342624943821133875803581503841803247839055715940970502896966432912599552672564861899008613235700952641819260275263227022168353078700544606204239777273061533757577774140622606705339564336800709944116732625642536560094687745234326036919073292996925303831080852873913756600061903415672837325887776887068213785728404677772536283030041722208345022511123348453244751992500166879984280972448551645688323524546574975676042544094307436480753550827296092831592779101013297509070866765011683211467514501794834629743847375900649420508014216060903073076047654244588356920587110426197896500893029243517858342157352425513195015411692998076509153013207651158825872492658958951640164927270620569936128716551378505685739045065960608331466601683269164602782570365841194725054687174193077078742006148091722601158685724941419286774058460427609943657644212944896573102517300691496900858636187592948154271545623791179577166262357349026327229092646736783933530387219857611257288867405122533407002013126871303955854734657482440808424418546160714231040689008168801797449875416139064788969229932555402915144764274952554713795505758338387776273103164554729871894452494429895401811612315012430452880507747857283475768641133281043512261466779561689741278745316818412543606208578548687726042034938552001030515706202510805345612671579208850202395681850021769695169492386235098806220301633938574515672550125698882333678434567378600555718129870833147820819893036484687700808671494485294750166621103731703709614749179237921229828946255467055514615278875476102369987117679763279200256395030093392841744881266850499803894908369029750923558790839510629221499638586114109489215922490178128209491453542988908106391188821462744082048004708080318133114689589814669104443687759908604266357149967547894258849492234359777613950839400303073803250160553214961965545774301245971316004437447982890237972130946903989936663707440503745231081945917026724708777990210651508388765464833839632826793043966466609477193987026533967399823053256348259607310205071217937574134311141806395397819138119099000430513470793449169675486639311298981429724197070325215145134622888348059467396190410920277621942717436127602218061749973232552971335386656599090369839001671715649340657010292688299059875351714566837522676416377890728597202609300833880204603147500059103528862396085217976008847384759395898000018221769856439402257552059233643629762192670752289059153355934014792988408602329260491102839317363713086698178977844107843339704664542905315492082415883468225438207197584469037110475053650049236618464871353481802102977348125109823595482605279780702764452763645428276306813319021114883018909372296769011791863081624833926475672879802785149889975492088468238345932045621200714800192216658084453047133685178419411290407823388981529151954338427221232863785472471172657821367479100749449899840111510950649904768239815976226295269772688318582647194202592840938352307887481771999787111238842460106851741195000755885278033163524821331148626660111725266150658646044672912630031913645557465446137323636110323502300635467356139929055077423334324369684518543599561771037637946690895249325134237888622404500464797395105540893724080635596673819677717249563779560663475796327718538695138913524147107985251478499473852013786887931354810543906745577051763630926370353110105907788603199239394878913385363907026338673921064875935937495351553644683545931840181273761039487409823760236906312609919860430371133524323454561739369957733745666037820796009677071181249623819828053858767604049907268726105601438280842815824432035504642040270350879614877557498217023964992627821280161018363957126986343356090216538623526373649074423609385135908962960708348957975761374381535439762840478745865816847390994637789787156305150651104069442227507644027675913705323027180491878483142181976167649775937509983529686688957622241936590199972797412552602359133758016267120366104054662298747968847306427886138878973347141121129137848902750816033127259386114608722143646471226293988407535319558048438186754287657545063926598654011091085212862250705130960091206090925571840121994056357579101206351046029069038084826182228616262647959999688662190169216287239779843876269482239857483189948476930135503211393880172984484341961989850768457107508543404721910964550444285667199904966911962431410925476437370908796736193931972972218819616219488683687940314934033032873983115075981118087578790437838232064824896846716053597471387175605083170927629053790920734808418228736692059560380029750023635115969512501317208526455483725045809786288737805850590489805799454898946679629019941444586526942888385689979427654134590304041685789394902630798800059915280746358904052653638444789921581986279267329943792701941868083649729387776226803887202940289929321080818110078790307956360082627329039348844977643154903398045525561332370794524878649847227797165737621318471913542885124823115241214574043549086642312252312877338104281253631847794814181478095399000109364004528006265845938045484067228443329767698322371837993693469204895290546557215493810950249192108145289393203575791977750459847247373404411241646159260273047197181397256964249669609805357956500345746915189787220351619146871649366599197340232255246018891263157919615673933598964844601418394712711337453061028086609012251953865088510212281948547719348534041406742196171570866085886077633679905354322115871212062117534087742347819787697534219999084912559576345431652315990172628383958204081505276930457040529951114586530947097265611121481804943629709447795019650886615000097885735892241372827130810178685064986642536983133420960352830260909988058284019268002373406710337988142279114934704369189896847710717609573057493664615073022023313406210558339452553079440067956857194868750095665168619287794131425421229546058187723887917750426555173651069117965747334197812448107088208405098127673498087029906040175333654801007964205176844291875700581234248603401504426180949725155628011884291614253260734464524817914674124825453360776051560160560639469077161134893867159813077247181907518394037454710376719119494387104957690037683510224063114861533639026077965113286685826934014211236503211866066216787716574774792557986906747961060391646901608102388159923798638256617831650336362028484935758492527627562419744549686266989660901660708409120112946724742873593947911960296655041866539325686893742821599193916447660140058031104217721000864706644998995023845290182821013385349338078038598484895181318612103071447090784036242978933307083805418122966885717791892032568193985240499981330995206627286524435099912065857390086145044972351105137647759435028661024323262660223186619871442605802914346802908678210664455385880540840276878795990001346198037444406390569083770588111958438222515223270073167543763223762552389354897323044041354444718627123217703406637018503724408178146062915736776244658951513678816733111876952778995759931636482525362554082982114831763901112326256315664388085967447566699693631185120423409111790931573906966985202781160530637560695520668980530845423280352901929073560396974485713210368216186031614903424119169241234332135855305156917057922910626103678167653635079375481742624816824807818270430299773584276531203344941835265444583196341086649085509620751462418813645646900229904422164705391350941764145437346001860807498366416132408884742293807930550249979018718324346925785398440943482274015859236513609207488705948851286277332108679014588965596079032773322128459650652180388809257499125943661170946061247085410120680645510455534206549163484465353818871416376407482134177107710759076252036088291600480593684936367096146498012512304164821974005675934558706225101544998991560841808221539060463764175856128249491888621630565009625612493681718502418400117486395563284528594819979713470267932348384710737817408563124883323211531303551525814603192121648015715489971881082139001214067522921492881577546806933626403584134526499800839505052240236457375571468406636082381948672179142083256399487897632815463207820682894461170688170887720716896051005180951601890292072174698076122341942507715187118483537363413735598453688557795347782820961788660081088128487496262708932458959358939319982653502636199963040530534636036163682977489343664324506570898406473176473861774953423142626335582460518339235000122941120182858412861426371471415728148537935052214166119009971847802037745122775326731112441759587386174150942786568455124887160875664543652346466644090000603775048178724553429018264350493529422822301195083187828527895662445323149368391221187020844975474934810524724922720380955955172794718958752246950791073680597517707818493632843624359612568886323911040418290923409391005898864419877968928418227290820536647106245652024889363088800498080752232595713244471425951655839226896912824936924937112027645254436741978368317471901683354277357858446456108427605909281112957733087880345969532173861074634767833739997413035844353426718971406940897806728674905336381566132214181118912051849068499203305330941535740671998646558568180888708002916351051057488687314590174542420316294685817105176232886660202560731240880974581734132174315902177449676990484028420901072509769166323242866046002905906262575022528462242852817211707583453998436351658276141800115740847645112954277469921974337900554029266848326917540150242099606626760700739041890111675334339353582747384465705366166267004540313493508909437227698475878236332235363170845229387420960414073276338866408897423198742952008283201578656607571837728096175412811317584339887780798063896434823876143623720781234811405916008506651483339636590669817151348018919556575453233374832112096891251751738328751913411223667051055674597905361054003759729989841964206044986719230935651058277174042265399159862738236331417060918268728862327495477462726449020717151674786819575964129865819893946418271822741725795729471720811407002743623187826769233696303271783831605078635596543155567226043736176436708211970301832062879801941880432350497703461096553785400051487014940455294099387756935479970102309770843500793670808497115094558543764331161498829872013470557283048102717995428844256840199467029666520037206009543088894521920634523055651216279581483816862981663700286341068390511879017576245210841356109046748327401360933717094834730699037172956708453401296061831559982498918586030079713699804183747115320730839907426854562524994099069431398190064503832818745006579691398158758562437184209694615725839416896844494000464127330948715428249098346826116509047573005134257421138914297293970625675423443232446789217738403496082632386975492486902645937573748527719618805116545987887116905038381901832100338009680367422816140797745578815709216599993282743190412580546688343250023325152389082159360730243551717043305855192092908551042412989311767557651843353287130396022426741805939931261742707566014591014453569775078040650102012895951153424012341236648641167151546786721811835571334656968657095451707912703866502451497770755002486599249556126177631030522108204219651735897391937918915888028544203994808668705328295809092387131021357367562766538335456034634224124134230275080448788834322021267127962027158654666685699617758776293186213953003752592166387971653974157172204775865592263054558248404079599081536870291975146657820994760809656479741651886831875586394059049997864126852095983401726003148733313366339431354529079961206319515700477780784919782994944413193040611378951263377716761034968279249340060322433928420710059073162617163781824367929694511928925421590337018513470620212101569398875960783399809759923049657886203675782023674947268091554441926798307407575628539034367714147014427976306969692348722994834602961901359302242236840989168247483237928613583300835368819447413933359595912193372306164478435210687330825651590410002883589654151548850993042520239390958230962246998887135475744539174799417583728905267195887241141562154984386218732809976832544786145650176214242275460419790378286432384444716923777014585891904605803828986622859086082306596101248720839154396799696578692578360194935868603465651926984118651176903728873365205593555246767458265846279570182932246588115201077971233308847336730951371929505499776378731487324365343526922471439959425266064924992716986686965624529574516827884019930336503558212653014255423505632980502670721941664713913499750261156918793725096089079962969262483770508546761708722826086028116629370652106774329084239159682498391711392288209139926512057868436609631943834167313935370396745579442263376565242519422937700919302376994753849252700859943829100920207250974956586937845450051765786883742519335409376786414300893948596497394718041228103981893318628271629306636444669387679902188896757518008066333092720818445273875306216199587177724460017967359924117772716376501829562369659258030847841324643359211775489208089388688624224250896011264470450878772803852654939915130822900756617591420034059868971238798933832869913536870762325514326942558548842216403175064527540798980703593747136525880319016569795956566447909935765852070502224677619212926644232188151085659849537128245608526774620341856731906004986167527908923493176499837632509908349298699267275747964984301528873972751436112596500138163021140904326759728650495864684578590274870154929338276189041418871937605770337832808754866287062692978843000154633030169117635951309951390407785758136718242045612244777948875304574497327125870234331187203635607976530827703100961153568844881116382467322037913670764208895601688198422977223286884294971648809677413044060237758315748713944172858563719450778919814275813552181017652952282180353724207897010829559185935130880069986125647189900744935132605748122813728317710889176897579295963291734586943194038024586162644258234983582478072664347881500845895526085266386137551588137872914361083238468675832982522076542308460560673242810689686411614827571900585675882764779650579362915789597024750444705341587113729651977184733305162294323698439021552482432997659104128773390829550102124454614889075938854525151510542835805038193235014294578951034421398204394237661608155784833031251528962335194805433744142270887009760070009274957113154388903991405369195807157788854123373424578303144111194955591172851780239173920101713550327202376647345198462689472541453897196089716190026210605250863288616504078970977305923796103338818769270528629377828685913859584302149383423575872689579620232066053646218628990957804293698717674613643084277647369785203990643593009511382747186804885012666964326025411946518956108030290827880016434872805224400200737581941509305607181802337489062298888400435397092101711385352468281659344080978469456659865489001428250961932783560565741394944615672924010381113816464452439200839768292612941494291265392230388331251392362136601722214137377489794636367052842638168933130848632122648551036891171326423696659282334817442582754141356927462232798432147974524939147110192667362699893065178381143540813715579653526831380588936809958266623176820619302831437404543651710786922428927913839145715896414149485674909757293436499192842800182486954455967462686709470650781384751789009532328293320155554412790774604633086681595136134858010735165174304927595296941078961067841198118427611212384798834370516158383880495351294154264306301875298097548016063751443034588751390761985675270802500422655397822769441029694415156873140727180107074189327301452074647554915614392334876507084722260490763700762205004712461687062254046239851703738360343110768097779014739864744364405459374041429675292242534121924804523341348829645821489285257071604727864729614255515356480265516096080406457476313873810563433950765400741586126234465725747952341394117046122451811565766886871970628666164932283461854065270874592362522331257735815919564998092567739679899222756756691964642978184241248627882934752026976324078319718290579170555591542243259761419541331163504197357313679974289775564926634433616208236273043509626976121359493921685939929403223521711319552564632305443507131920875062427108870803708908225647388633174056961071233594329094528351365114012162321830326317366369792940791277611319096007547965464646521199685771516734986948977748317302058163647705047966102697354352382613185554083480046654594184965411494110757912933186960007145106445517521498939378149129243783484029582759167777521115962300463357032493874742649394392426574670746021267995598763183301512021411660107815660812953240987699782610003441682818970918529845937673036703517707451205992280021676590444772566825385572238740768936641066891158614216043223388584109920767725091004948546247795808411922959496005180439266122075835993848277250702303287667121114915722112343066423233611361616924077369534063050098971627767592227639531814134920564008904623660628693351313829205029077019725062872167152722593787983124232945264082156713194061849701203690581283130620204261434404997514329241406838778571507817586582245979588003697721030298415436962696567244870886884907558467828222656470876492162738555937291086702404849411494603777107271536312139618139861023875460666030334373912549322672450554592062164876437845870427742360883322075574675168171529889962413225431608968553314590831818921869497442162888275007912061764289457434832502384035040456569072049329487732554804977346603458616974445297352438228224047990272844141400976340316797247573666888174848859246273858109995899005654991585632271673624050129253896181486032341609569302413602987471180968347244539486805276133622267800688384319460767280396104267761568093055520573621428908068339272805994413667693192465142927861195892012949580654704678490158457862638944449973006032015625041826223150386054184253864821915611189515894538219839896307415864906015132297053066434625079922352456145751868003639643974049013002239596827165401580195148398979384757619627513054661548444327189341191016262185383698610393661701368825208230874227564669594077667367249323533135017231420759748363215906244437957210204896025431195521932648107298957194737497013202073700660580669279282732009258732972253304798251510829490816663513302590383589598232487624630006973319144567706311321373166557854825929892899603111052606475172704400306345234866177694702138496257346676859798176739455079909872665130436886705312538898393651225730749441535256004271310876095030273861819829868894551060415567651937794368250021289527960309131964058076456951256749321583707103193153885491210929803939950903829616196800298868738103014790759118058814825719414258956262400106450973519439544902888099549450675650086616696496931334899613462791618337634070472203614465212177429078056233311798196356651263642895681535208137691258172577233625258151237679881022907161638626369798589508331569948194416571572028211336976152537114532001192547146699938984473027243965750158699464393925629220842427455550448594573204559016791973576112864136891088938082596376201407105174423245796166529044667098747720606631932528508079090500820851150764295063904567580798451013603649773527134829949542434062130674916442612459498056336803261399688034464539943898834202785726452164540113896390249422211740351280299284910939917123829693192009489591353718362134622252821722600957000257911680617858041431969808975961693545423783438385690647775410380485987648038247143708478184459268329694471061246130446169364823744441827059317366273102506117787579792371244557963664572205779733723803903717552903658237038342266086613893921363956491459917577159510574475314414953200593038793099467947997330586029746155658681235484795365663088796304306295247564279217223212445765931084469872013490902987295424712546366949625216203850261021231254411622536018041099029361867791255866047123750585977452021025528084133178166575235778790689174612112853120880403939578415935901579680982694452654748345408197428825015865982377505638941148165826137793817672515952253641334714424934375205221588332824711101517244811354219021426866898130574588577749063289456117671566364660320572751916428265244606174579014572468455787071728961843292475814957251653346379809129191647496893018828920594375680286536476379736347688600972469573444191874112735491414021160985802223423112604802731141606695782126710094728129651262885844924029880455934431116095940394473629044859350264417370669581077290067991249369812224039868407959699631214563587668327012556517816414122690348822864092507354069025127510977228646138032373710212334130227905012355297132278729875487396770952564432152721277157172135373072480282176828800907713935800909327325878911757073367091000106995028436306568501080618492677741865174935392981130443476515677242405436534914996216690816575393967180880303843567334616260476947102826556004654789100840104228315911199740781772302729308376309799781285146028590659729476519646430697694362507624269359971225505427595893992039263071573311434340464379833475796877810532314024015975074467840053790604961770061425187687381547249782786672265494852810618623496027039650339071763177475536602699515622701950031216650776983144490776294390298892221857677957481264035458637338063739123939450341529284911562846852970193849415743377797292432205865901052060522497901521474376909270865880793297441988281728074449854290641704953316699932692550193009706803028568983003398900341858893517828428715020074159910530893332061735964329336971185095687699879372343625048254414872802793098797602464772682469792564606824559283661533810472592520369714470169642867419518215531947226487122725473584573954834528027811136033950534192299894054454119790924977865645785836810213947445916470707844058370182499515841994984510428693482278077709997339301185724196686223861075760010201379632037267218970054924225112946518109379907186545052411864985248410054920716250888907775510468025121072974951386464005666053759497860563341398379372747245763812344910268558244481172783475337223743785192587912295940299998942992243335471985476194964604386173986254590013071838932319834697002380273848634333403268899961701111002006453098348408447036902897449007756754342520170269314492176369624070995504884707420113110417968023729851005000345980082474326565875390377490336083714071582759886985966405601277473832105590245972156745068449444502344050809929755881521796719850816011110225912798785611523034898695247918569849956519025518254363879889572053951749108024415624352112651363289113683680011738409445636232286752267079126528778115949136512579608728528317801319572943526577916706852647229766407183633331916210102656605844916960766670525752197554374226154446553471793829363445413136438698287487718605077146643022970541849361795720741444477777287032242930745485926618232493885408760628508356170527952095281797055715643295866516601062500749849813373738008973098044500481199539690938134404708026829411161277584391280517982780899940479736759502704202197019858712346364714021471118467084244706185994811638700435272574779863374683711922643574850392114188373694498800273842449555463228604784721636813146678497498186219089813601268340396092098823748465929449572531071506772901645564682323183545063221868750214413315102049899679278972628577600076650519092034544101370111517106724134137679859074623097151315489749609293081770924056767705832293476342340667593212466137286831738959425271701814019177855398725266619233256290769834064241583962811554005684398297119988513173782643721204617974175205267092426678359445135027039227848525407529264500207207557381836758800726393082134309750084059477591033741491848754609106675098070102046385909401003682185142230794011577867741167403073845652800511367924540468853492065544840367492208047517358505805033257701740999791747687990724583823177453585174189688715748020665359528988486927966471894689817461253617343834102371739160355433228109662260783603360705552164018171705504244315306076070844297203598401658488727129947987525004427804380699522800480356325713277981257025664822216148539241503232240831693246755185173588954504048712681502437208368861931907743665975526513378080867529304885791756127465892040649646420144122975895026639960680587349294464304457849423334385434296071087512020697532635074521765627644199284848698931458921548820904119474033693990600060520409440082385630599363282886488825120963798690042237858711235513939863023565935726656640367806144821129234276750842880089976880685874263973579850315540967528474652675623742367466546002799590295781146142878449668915623572651667015125945591644084353802814063584028332078762529768218423365852389793401193271450208594396538596833350274512049193096753482152385852241755346115412502585775683165196106213487607930900222635232330508858072686909364753840250071215087600976514602703203947263946362481498689573347751884777142057711463802210376968784654043333657411631228022370773818265400429372804000762284573986472127364298434582119187614568900864228874302789581376480576168318592008355960788042808332918695719919316495411535061461486196088574499070937243481860670281272404669954686358409654117813085795319058904782240362223594954336465468879360644073237528606603007894199234491835462417369904075535831882339543778361420253586996946009425610145547897690266738712201626940809004969563852901705012941508148647738133780173015377375949828606011867974793884021126670420591121197226275215728145661841072371069296808239232258542701567111967064082132832053251598284626540522473253155204661577243045125007712232634932222661127413002207558066307480689961336792000912470194021206947052911986411329830679681427316605060566666998760792712926625879782823772162027858991519581135494862581933230263831193047067701888568405445081584606422922726168461876096969856054148775723751497121757536121947713214863470067594841866134574016706341079297333071382503334979051157114872583208045967406106263371249647479243807884295477306229298794234292138637080888238364569457048113656150147935898138436607819699277205526101252543966992918213520402231410766798936128849271766394085470642583687669222279218835405001162120758429056349430575519230354207678913183508361693117387953810322687996811641376319958722529804376627129539907183301947135920057326015575087520301447438511044077343208836486233228331204874626342427932445277966436789371456228424282285538731255523910874208186316894990362274069316620133945437986432069344765374062822043973771046668341615969119352469887845156181405125701913587904086473371603735789365682545535563978045046651702234704996475784261934949888993930823559870321394193488202348137112258737843871641834259142020075639122687603392943089150976659371011645036927317418505285150369385779756084959126883245367745562052713898440227008220396748988498796789740491757635275804591481591847958036168810010495236886866320150861875087631943226967101278935133709844782714306025149178273802596804444058589055985736634695365862253484132797629462357908029983424182387816976189082800290643732208427720207633612314591916611242980889029289478180770751991010890696608953368381829232869113771673585688860085404731213174686120690985191372563060351412644514985310416333874477065744320051557045150889078440492227522423410705293682234939536129922034210107198855243045934962071586417437393473552087410778942244051386038895449926169116247667793066628819510884100399749932225159307889073712730629560393474694365030197156496246464727871943406937861039723102918134859689616846329791710363779853378205696615083736615997889095537570535182394781619073163607902064365419999990888743142820528496543306211143359041620718608333294967529195751478341463528248823358601539122144103982936911400491582962727898673373011657713497935528645770785974313170757798811321746079815612649807862233832220460609977985364514284001362473860522793523011524517035109283036427563120706346576786831468423633206375731713577671713291613636028683449728429382986715504107045961950576108756329387732287906766028261570737305181550272268558356349904423493117595386776903199908939791232023630692844414697546617972608094900567410999588250295542931090954522860029872731676412076699540656759751808424842130142682687975612134478213042300069545098801118251575694364828776872321611729564320966903436823580009203404769353834203658865528239709475799168918564618094468458635703692607878503128647665480749863437038333998134196096766701278569448269869989848916403383469324539617549087353749525217924688779380750817562373953770358143901060813940318058729963288731766136796947712218441588028074189894655778960711469727203624543002285253855275453594284537692233999362405222276618037939038819357481172453633346059965218375902009786988198564795399121397656658429926642880078958233133871829560832413465526358085925924517720586594290680335277955212747438550916079976948122548363599159579805364438114314561800400778074838196722171892154709883050995805424521676242466304239334916464379173232993852734574658075967562037783390966669042896643064649820342595006127751384333868133467155242309833162129059535019822690960852666708953346530903929850045123295700624385014271382128211112930329685397133507916198038073995470614773678576808176589485002609834596318059308131033141305625874442441843705049118260705759843870548391157065109636771544882289191330819399500823449182582002424333137811530893146279468921484137397973309503182039762194496581499368118989252763575832612563446594101743720557578632280153832810980345476708582614803962505767415394577496444004257930306667508958070083880758365846634964299800535305831691611384473721997230594729316656401477691186328184878667186146144997086606838336208179745014722783001646403964907365572329180937435153129126347631194070888365484214366491567899999567989829703431142513817885048217747641520865239369110155310350480621883348380109674634060024825265789310069940031310414884387633401245098440276194108930925207241849236654484152048830714610912606682714832104542970836709520917278643200461170929185215789814426868616407818817700663296090508772012284105457399228823254178469981139805723371254002394643261463877163956257755176951974234764893969042081238430580311565282035835897626595170054872331027431953310613718939334885506565906011364074598846852785654184474186134703106123805127810527558936690037935070157666039457561122799753792322130308411285703345094955999418775947949563675089525188711487311597655200742667418025333489877887663567650503170004940833693941323064904890211060216597728695219186858973460377222385748539526303858758225760800211086438413700074017470366853443623027492785266860919541318346071047052421835880288067239797636757504690177426376532155145328288424881958579210427416432537780797839533102935297575240356094457873443659818689483631259394253015728516837912516849762598936251282509588715728127439543072430183440204024613973411767328901390301624787868898572228124661377517322510087041872732801786049538460332693551409714503971271021263733708360141004013656419694471742318891541421043301660928052852398445190097823175393968231434431225351610599309733733136543460033508070886382031680987631547341276363003615384605082766006010666290731536827298100209081199209328335933193438305967349513588034970446794018534580756816577958474451665461647269615610188758848898068172884006397138368649792794259928820734168892602847213882074146530730692577485826695206457056510854439922344347774349082962229245757891960870420405055406058278530861967212937861351449590518342503674153776947711025854362076294690892411016540424702918202614133027277950077152786095526701883571770269376669676086097118369424144983407626629936381551092898137024246326039116775708853403686553400809260933690831690473676027263819533591251931520917425880570438864192850193369058721656412542706012594473494985507369756862498563836610871198148846040972352896690172325136615238614753801256540996626926973778279825074344522277162293985221350569574119364431355716280132071432056627041955904271330110009541369358942203718637072930892390417371080214760198184939487569622794947182529469130322440901700057155360941768320591173357037067062037753951960299337232729152246409022067517738529001235124920335840801832410611264563518592786500144844223154582667304670484253941878007682136960106670962234057632783823878778850414141524624947648544354980675241867340496628773647657592576987629373075910964090130004144193728978889204130780845948081519033491394655779771965445585002580602173076857039483045679112364994073129367420615144901476863804836959047644432069582238656468982743132122438673674867664983462813537393354118135681336336086574660248142322812251992832667068745255177594074076231736371016870323567889999911068198648123921238477415333130865254481382162552391299336911260598085171952767164532357382842274937001590504447341081737868282164963402506033395951432804696269501268628709616720101618737063841405499965796731333279228113904612400903809463152291600044666176723993920563404324114865952815320668243702610059150280146684425991793534496769164442110616934394862828123290929053174085672837308529023137421530271548581261201301048446721674212747956926984568541132807273541720545814831792143752585789605219161448715866119521665968354537122123345761838362406438747713536610090597883026785384803901076862530124501916353725637437656621921325720496538700594675376164741707320354180093403720956972098192951420569252632595694537006787532922550414289638734884441717012113465693610971688989551753608860105389028438877569264944218274382153822259737068655887301612863412653754322171283478433890991613050827024405286789206974006421621303405756674895482717497255805331701827451678257497515569461016423903605801136397201775651668901978995966605217737607303709039387820128615205755800385980260259788273015632658147114021765611401484373362648033317892294144417472233456170577922452239484363893217165460409024015817787079772461232273211283347823237863069450121187445720379999021799382189039712895890277008553364597031661130692026821118749130961652162975318598346992177943034298095569828022631577506261802747081695423003802167799992948644423621057270704139756310482531360294381729212890523823677462193108181670709135240135659767859073012342205035987477054629701942654091132789996583519547111229373124539391519291420805362901333372953447192919715801393504499633681500675254511505125372823743248522209201936695145581163041253277677456042638543135228306512099256028883798031446048431109039863368782802919159332835329997212753623497820191530755217687065692201239299640454008511035818297620235397613072552701949302813796847185770546586412442461839546875693825174156341676753365653415814154032368083941557107011259652617663593209461582429879396017508154315282003220671878789017131265899007918667156759936384048150080736757609628474404667787975802827223050138458843074882411199711599218353821616586504752228103225815817280175284531800633423957042041015100060450216754463383636213412157532761271503077402741733877492841696781069401468418599325195770777767716935315837143307985575948253594074904112499549149451653353494481285619157250901936977870471277601221640807598318318574448037657753968584407050796638998477635153759026082396689729611355448967646116541682981161775339155684206690407314494534375224035399960141036997970749340729168407949510006905580918832608013764064221688684808295289660468918342973904898537986339941759341873047452138709962738379277278426752473060073061895377302403976494116494701565442420167881674969712875963033035372678355216556324884752499675272992177828729135947049819683321440317387046540034698186855671382227842716584944687629151060547680985079526358153148529429960408716448538585390056993003512538423076025310357487368206236693228693720021305850336515944424467967335842215405199498728424719667032013371973301158828949104591211335326440295042403907468800568326718244851886177648842316222379047524646012715442113996868898563709953422217814253983551020780010255205209318741912034587188180058250812838320563841383333588094955014110610631289746813498479459447721259232652214996686804879424888519142988182237918735185346712961046163749202499243407213640212260902661064513975696382024434263890358487128989672151494527427142307650591189924482339255920378450728428205134454121491983497005872661697736167133753314910316063455728496004057705840189936905311808551968532240700003239135210810494649151922721030043127057879578174491018457471814343118899016679659242391481184898962167512310665135483067853239890185631472102842633590953366604233930483824251821419460545788719717546710261300116493491248585029331729508817689744598986794166887971370935314310697559046552548544775046271138678712521021019051706211921986541032998194997795362085852931377281542683529079746336469242106121092347041545875493436148757086005807357991991181695905920505455329882750953507595445786552512198996655361841233034284009835467930299304630602797928374596033654370666488308972435601362609892537205787256226881326038655503731445123295735109690940609430515741322370269126231700443869998111246348145716148668790309698256347613252048338335142308991592746420364624709474026526544466295038751296977823574754557756249061921018747044857408768943952720366490540731142069451172716145811252643123638355108247473127957433544008731606283927013406488073739194640704442382266463068134887129166004360666676436832130886437199169644322401552495008945042060081082526514507417625192672472634406042928603877107451484686198917312989549246060668863118617679995058510214022195416251891763017218372781070207937273976881417409034335515247435639327808726751126341585339816591052633610973653329488119708513503672573358662318065758145159533822475514071885956786713838412524814617172388645002835887280490615497522778963182513792370064125795141316494913930110243838619728253575392449822684346261680694297374561026340348770828107309945798564648224818046808642827650645666932893758311264384767732169461706564127422875308210757231540735244353625566553227071721890026201527386797431355668513611055357244339480244894980046824813098095539829374629566396856523876486939646616068812892370671449297098304686095834542827777076751961813198488453644428858972223122045097190660226876444695987047515473920728817894376727676018974582695650837576232301851319843016795837739123189493092734968454464997242805871693163592975288380805066747598450963719896098283645545785571119279134496674661086955187761745756932900823634608568454338628209387069895417671963806157308907828692831067341779426134361555599397639763091782441093567314735513005348555213441398762213911943893299048686514982448590200863172999842821403985310800422541390986674967577718849045332502503157441915212076115977841552615416220990941539933615925697022492388532595849158670503206932421809600468770253907782836772357336925447946147190250699148471890380710604095636621058387947289534901298301603488943366751335101777966426697821005100331492925373777107952712615005462769051414645442560146293627018136588371970262706299326287932224973935903935058039433941212713282485174162631980901850346330136694131463831576737421448865376074151602157944343238790245852363852571582459951406638564501695745604746248472159195354102076622755306652332727462504841120096284014951245878792737553834704262702668089438490137625792239058977118072182406017876619482969775707004848654813836724740402482408092945433659730352860946966147873767912496719628420018727467245615776771716064733827956313905031185141828962502466325363878569691343458875686861304557959502700618447784491203807816431495639334125688045004816637170256975612785646482252794176716192227045527824073063168082838321268114257778653240623053740019457113443652926518663950421024756911637546048184420984972136252601000518330255573237228937103788950584398640390575926533363022099204312004045052830519035469729285007572736526540642555758310709646731058022144479207786897312895910253643500565976131726023070614747209511825852585006542549288456901059042575367935545412817379883655938189634814064078429310064968306240905820858549814846919116181654037249871200118070921393733598917784259754351254630262080517261840734791112998901027070958567229645644145535971473733743205339726531013634257920067413679780129699319034184546271583111907936948367930538927656885921769279006851381431243208569341561537681772730410127580598133738159110112656472002878932296031325668841927558139627703186688030868521926474675822397600821987353930594437302285895007360971580809474890500416293642357189191688604411424038769255545232708900399260285077996984021567301993432356249076175690648517200419048209904399709260534658991783097598141506201531546576302059857451704806790734505275308042513769058057156001499546349885456906530277147293371781093142259660018617770772259057428614125326127863482435004602606255147664351305649559964582493586371560443339692710749026478711330463720851489531335612839836785298709365339763749234526548466444127178217871776930572831461606705665046592485591970514258256997290302539123542087598683975945034491701480252516802467251170589005502118412963131400158271578572185368300963432994993480075782693778884288360396797542718596448448606663865163325261066156733935953205910552880982560354300930340790075179959502230443363022935658738924656280024201159532532856487030855541410751873770514867463341189901740850029993416034403756321202733648286402873743909788279204303314720693633952206012532214477797251365078476593970348732202853949531832625593432137838057854153667086067727095001858378901614339535961586912726300287299953496505973949444895015448497018796304562810533192291633134901040022812556171095077953341478572370595910654096849745310429206905513894527483835868568172534048963370658569531703368087122638812759599101548347481667217574548769781390869512057926138879808350715536211260706647202829823467080021204699341618083626765282783640321342625723727780633245519404736135200956294922357262555269095944957222439953808910396410101631841036103698382861074455614641657898025674880878802476518877550431487908198603329389729373013108767255427502542662487052907943667078924108071359966935480070753854111789409747605537845070509964506673987308155347261885822924771981090389613659249731794995207806305198132870247957161589101206009855818751305556265685543194597441404449503851773102312752174793411917454119653880307140238769492583883077444260467722574178883430438941722923481050969763387915893768634055916855140389156309605641610986020468750599038979369064004959189049114594619578089461839076845587215330998421004232251406169207608089955120770014050770186657693896425353678672801270270677517643372923082872180505885378134074419041449975834474005050554904550505292078889999525012450200211648276920229343236990221458938762836106121536654734303679413120040042551623754176648934400197714361232089235262107440895943647356781939207187949117125499516241680465626531479884886237970902695006000714201236227741642362297537640895116802905292349085420148917035080337765031488252130876833117425687856607151899763575584695707607094782869368445562532906130765904020278956987018854475859729107085539627516532628168340253232809886296601679047825910558140593598533244051078127619692910150069795016749788454257755348731695122742825790052905464878302827541938562561559486109509364118950668702862307505666109226256331788410034697267490244590888759820052508576841013813703984807049693806915543831412062923591687935822852861273877741448563830505299211089384407419352861347206358103696959967436175489678989035077430955488177827245569076624386836101476732460929947042356789705176233700774224078767634126669141181035725315344199169350940716176525356365484273470261448501299651541800171006788805015482519609278099729751571051905156929210893422659784008631685974818212393005558207396252885822779247404314327517926462024530548669973496299031542832595494493315195924869709563229082244943842776023906509960035431399509946807739552151373352233010845092346585720182896571405392729049835176929107127095062161536348869381095968284202461764599933265703048009483739311476948528669566368084452400758270957764728963833227412436519498088732191763439407909580629463842679030969391890578004980374611748035325584296605931000862231313006207928200661320963174134192348920059458146505915028035967379412442774646799224294356603952414752380440332271733789977160315312663656491241884662264659258076539284987954326274440762013954309543823543095474127098957201810920906936058866080680519448216379313722209382430850862292579914964985810380253117079448596503132894318493315995751586986234594294996258020978757267973769020134696095098361347167042682998835120616783472575928467975368435834378131774105629385908538134814786723245344589287432625776772027796581128650720440168411288067467677111465656892792773852043748961792420923540284929634345840636019715695942280457460136851570818550793289025069462836981998750440497871208245554392782254996837833235786548089539651432905850570151892092681893130604753671315039847591829855492551170317794662665819582223205138090119467836923215894491398273368321507616239461790000300870969204242360212858067287558098827759736638712802488365666076364296103754430508349121407534539305575683516181339603826049907726609259139204989228651124257090657134830119339127428421395628893325124145422262072569097796856588213883973638663386413293680157426339627157159917715209030453654591647155568020486112358041480003543733214510836630128402821468923572517997043775600507642744965136386413155440921173338783356670339020869482504930938438849901939575603223367241541037866194548169428168577685795917999122583350949200744137240835112959260209558700094253217698586854668947096232513974049699312589873564789619440513746989385705801991141705203035578131378449881688876765814316216528110302304826288129894406056876018454944470540994354849157841891288652542746389308943108413451044063670092123354354668751048078133449193006423935410791911274819004799587365898541064912589667971036680291030231172031757362921055053435075646297859148413837740069054841674422434837684584265024906525553901402515904385369387238405936558528419615363418874592175589749594804392972506644939557365885156594447407607884499477253419026148651195536068105790974906230391026156283900230387144631777863879753482176531246012886981739463835747156185592096977822590227492210676706000790607780965658518158679073062028250194481101533601986235352786342950972942960620969366067719926976765019173723330392684276372289574950209782255683315958884167659340496720696122344783775728891394347660516280301478911999497476087225817688271391474147547399938517522203263529404299462577064289741256172534756245668309308621351246269706624211379441749598463710318455159185232304959593838602971804163308123319497131224212130822233555751611560998095823946208812018774672481261849236977800370962093449908235325730268250679869554942036121338347924509862525048589477367498929933528330438933851296268956021780455736453409779694933961736102764193311161690683761300034809150322631558329624886978994772095799711958244351143760982970384075905247239313909634513241975756407003144224756738248447384542103607814562354679187940018345302590743938726919460904087662740555175959077682818090905341364993525123987075581155232100991001524957188509073007256089316235800302138537616464371297740540278312274338420616780160543109134719991861609175328289937421086723991098635514431527712702372294954303783739575392264146503412520145886108756735650462836935404079422077767230356782981042054078626035675395991433969819031591667821602736050796164806707392534340698181551812755464792872031100852987493074536545844745889421028818275332569805753328526648018419539867330400734769000971306718909693629866607902742826753402627669224641889314136447990909174811917595275850874511400237384574070769842544548614910866136106999909199277995440572607670623769115097891867065141585175953649744929046177583099267403685950809468408505079434829917317993970918033429494481590164763335964675991360826983947901302097951209934384829621487472156886870425839772359656889062355407660813597915515412341141095479549755561013960610234098107684414081830645498931054712503591687633468609364114252614044539084769490698392829057124271826158339918549957668014139904556836794573496429692270358044588498731379209490011836525345138248104488178202003880811622951640722761575045970136060084456748144099258278303906571941878129925061889914598694053982207203886759698043441258234921272257763457852530021225611972940162874002767008719249532186990113177035836978065896103548674727187863899673736216752889821125904735267548067118759460942842858061506750700760666848332118757108545892111300222269391666285546940312693724670412385620783842024470308626712527927598293590000864263325654177322598209593859586554200945117464365118912671807991650832962002046228237687421689166177823311944336935806761822202720411646929879659090877588969498440500767161831052520504482006866501481111205346260983324360025764324623222253888100798993462946863582709120075331292419428474514233114083048701031545469133168780538696933883748818961060389850291376253663725487657007671165444827428595050741018229771403172949810467863541300920996943735181165604895879187639977545173096272372759417605872817677332624406244952105237870302424683960075751116001057046247929208020870910775345988921372489583133804372292409341029079999611880986034049448568269274952638945278927577504013378359914307010133710723157494398005015735479011705111968431582144562052812936822825180747568073521156787750175692841319270852150706279029233830954690345121607316581013857525757522242129380586642751603397624668123129142125907848666545809883314570844510660167574598183663863707996456418409564016184314909609990518756405929817965940888577034206823240410999356671134613012999547524078148748448095015206285153107804104014405345576798791683032474362677593271481868907638941650497081073513387279607588210685708496682821959817830200975559253055819906564588483851784358670173905510679370140327623767845107727724194950201026498163740935066053969004431223663913397096681575190601439349254765681132881495472605513807028375702603577993875810685408836375751448790935276320751467293065285528236908316119613455473668970051749027942528524846727530171346132863584124671194306851828559937811309838700685900957254046509899033474218106396033742229366202519234415998663463595357725417141906325173598359503830888243659863451120093780863046833390439322273249966094441008041494109143935289273101797938617524137270534124686981399167722804922916080542323160574079329485930708987744082810581674267852655625766585461077690917094343677453091473005616662529889603842224079714909238251046987754450881562782760481100090991529480078514410871915177832438114304519499356519642392528402375123031102470695716444097981184231177376973907239717393179362005153878394022401217236913440728662657346876824321033614528877970664908205780017147743346546282080621252510654071390158996660981801381420098483588001429287080014362733819645880609976542798754542923337876196550000335746160542681931307446260720366551016677950131874227866736879503980139720075005122494527030142368353901089662494148765718712115575931097419784010325424065959320910130017543461545600860167310651884983589452176591517045390240952924843615462766549871055177541111548207876995891213151161020078698060911001975089285993883766399892717908366229346929157640514994321779665952082172563468950054931348972684469865443207572191333239302517476823002664531163648509137732882519419454764970188260737009341640022898259248253073337516298692334978127786613938958966246800542709003012450740388082185273191739369053059776250411578623057504788878369473343352584336506998017071951202112002244585070932054200246697390771787405968438083443512702357628049627519193795680440829990608893690507761489142704640348309527320820299910480243854420629359180385347972446026112634005905091580414281806684958402298498122652597643591578125050484002047945653917381325340164797645513321964685195572150068584065794421092164327320211061103832489337889656534600132078755224372667677269243060331768581949981484683998137540810694994028050265759200310476712973499676789819247802714171272243908063447530477363585322775094425996925944493188007039930760744764790831083379779687502314116156575255791139336355619508621257379173794722612386006233716449057706216449391732716376068684125122755121067062249309072443391974137434705233854435403100916509009626967616862709007936653566089685217485705438625414944892652155162590532221710563900920653138927805444742478691872552786125402354022095734185951844701638489293028662815322631702258324636253425588312474917169523755903655925909539540752797857001396066935973636411285698350749998099028753334578683913672266669134109968091400578507997635687229772908824131138103699539933268143335285999252044520874412859091422858827022235702407436655988527151417229780810306891805034969438331198230279833389622951513420300521044745298819157968342933986820498994571564151708295400317399598292089003391936944817526469966562070904267038092287379707515493891333671522657882938901383905333201176196482968373506105947082191732456568134160092401191759911321834905649953816914422989530792076400270456043465637434595771573551888840344833564542771280632822090297088559898972157996699286892118421601385453804310062922664742148669886623688499377033277041051737780770759197336151485321004030999630775209284439887426256335558364742437171842360869432119356042170163148511736186693143933283822218024872753787417863310210936921520451403379229111251454086323512005677841994843108176802049607447008792402401675339868783803723660047040203672545550340207236867809361507361660303194438533173873364421468077030866971086907620237554841969292781137220478511896841624419350824387965030687451212713640270846875409049017063619180149533029904312848059574364089207521870098774416838301572449275206598364807315491822110706380726125846346800090183209724705124322519757450611066481016257052010013812202047448275974637830449737799169340205611233892375455829845497955233782090693881239826346461588824943163870239773777363106323398314744797876991849434811256852617140022056579090456438182596167095730801531752378637640089959090941004853087448848613168182750985231898321857121134522383460773394850732563794915046296446087827209877651667254720605745181514862470595501494571794989285277197616908256965688980631884851228426633950792538020586310518804798427092480976736417384253175057496582394781391253557915975485445564331239767822445438021880254531590996295508363494953723303763904284068696520185800854879121948481071115538459372231726444827827928204254681192066530164321288629253199887892212660122285506728920083564104257452241457150887353089725553546602740606211380259942002070219853249980004030070895175322764921058457561831042180090379072570752021857404030328275101448499787478710323118761192060253104962301542258096978464015411213842062000678533273428173808836448768258557258919374933718414976743221889686369150293787563065221561232684373157223444146753502510186014529480018335347382532094340397499319794590848071937253814017848625698764247275390483776509660746321805958429934925304267390947514100911903679988261721688912484052470548791819258260921565017397533516561427485679577387482953717512825277165007773884556668639804747689744701436571632915111210846070657978693037386054344213351970915561929150345568275404073179830080391710747333829664271329921664342180000586325382217817964041139923776816359089879626264111576838802622145250393700111334491996839233347984266638417083232307712194443939035933272250195102760511665913079518109748547033791348120593792545975286967225035305890091614958776495901091642146624401569935340284378664515559904598507956494944036849908956712521694361374041254012942051508566455911644362135357945129794550309769926416657012732853779345042001776056184183882437585047095337974722449589914247279349327008257114825175824795655344651919985112852995601340776782805068303174528647350586010331241457973158522070087352339546884917972050766888946087092530757700151024034697127921436253909118285547974266328756737274241512377365755013098307540088525938130120604819945110805209190339657847591730218020027515714620589812360350878848774964675872300984654394886880485815956935303744231885117382667959141954556347395245253154418043528435590138779538610141831980489638576244944356139112902352915751498588079466318906038360482188667678898513392872467467373779365599901174489285412668695010572376982826425417148877927365048922398524337268797483926515708747974743603794042242985643418409516930871305752005801941078681422454407135267105623342539857997346339121018013063174559998789118651031775897797748245571037454572974716191087790109620114938402714136180516312561678957426900159813531567232949324792553628894140839528122652340392269816914600992580987350547467402924513434940385961024817562139300370255056824074569600444746635521797160394698903746191955553218373650225929953436505654473806238542652985470995341341949755532649956874507060752982191592879180261303546963856123943049767902955182936319023728646287547291982266146011491158683202057262252257023228063147069494979275232347047854483945053752117217766841365888801546181052487124259814916659189397692728820974865304466414505443869650599026198810897440025305067231547032905725741774000973123251705958920263541627824626238898515177807307914447765001970805566999406347169032571362891529042384765520275521077037107130808280570011791294181185845897095123166130699534535872647632564933235450662279458994320945496508666787414804724704720791411121087721566153053585268533555466108377890728423762687439172973750291973667778376526114506861694380678560157589956362498302974329396631319386886522965099606913957786660872273949930826590826716568740183165374224636626150738546919336592636847156362429771741397817158423659316763258618221648424178723534395221310200745631707202240864073299244282692414735135701978790916314809382010193674641117888360439777373248513358365072989539796967728297169536834884065508718243521287297978796121964915696452177634036734708760296652478527918112251813744361774467542834409347939868330840254753686859952665738868175279380449005591894528003119638776793089004616338546639618198609634496145705585572338897042557710124868869191058871837850929954501588474301831413195315764170248303306781513496060215795052920017337911338270078760605164873074928740747846229815730557271354778899933949442696857867213006855402333478276406302452702170499287048686348675412640462232518997053686448453183101096679215910588021657093382287479317562731481852451284791961502004765564304074027995004907574114651537722327236805517246479533857219626720463091291011603828330959263516575652818098551764165468253594958424512585365194617971447160000520057796046996057324329540177071124402681246315802142143933086830344964242673865125337392698597899491743322431127883617483440866445773739478760491314233193118116089326349445161067871243811781575347342803759512475287640465649884086993570676766878946132590327162889681149851061061773930003796354521254182697371017435349420156071318930658651713364102536920246978065032171504046655298585636150807378933043050259820412321507170067024101764345630786546959329329529737398306007328032534804387687064779997435348338453515805397972265561340749290117685835312472359265775505955755681745924551247441322415182248311668617078551695839589747530160728712486337291885627710378983165347109775482600979300340680973096818590308014096167662231114868411450949807382779422743255349627007284592621558536718818591234138052626995140103862033531460294861317876063448846335357831928151574796680712675185209847088252374001693516691945637255174488976365730977138469247975673489371358043353101340941138062346245038363824657742851416829538233631810041166266365691949221969213509443129713014392350722565009063271789196584658392785479076303952822495862633233969294794617361098836691236241964538969903315097090791755581133376124555538513233229632357847557962091962571510462198863475584308113266228785750730081450757734318375240424648862242376103703758429287827604429068281255337302010740937362610125140899882329680333238683339827780040627772916548587912322558149309137239848284722897706763767275073159245849604606653407574190430431920087895557927982729651518784802247612791038479725201179466852832561680722353991461201021580951492499224020664555246557768872260340437058664895722533841567945754206097856660250758094913862718770580456308652542468070560286020457716142561948926124226695944325982985962582221605622521453744121552291312927978911959037516028808970074427511453678229210853861652352506300417085276714443910463138918366136264319501164523168686751966390513801015228650594377500664052992065288421056766793819959897058990195755139204281931967777048777829505458662402457145299493769895188568884846114653252657417748948335302479448118922383709703154795636573691220884428380219246051121608713404659111205927164264756939705439325752668068824085562772802732142335653914152897173759777132287325736026804454916109341894038991168616915286074168029539883778063717776858625366346804212302665305640299537349852871723510064188660745834990583687525826511284552440279597482510287373849641705387137566330209240702669863704695216944733213311306113331493574645754732520512463063059902455197209889837516424858802529370094273930729064227367162599190958146196393948691889724900011641855725980950548899007473704509543514690632723831060567337263499134928719036186704769240482851925340602511187888872512200022268575591972400970647719874353019866299997788816383731714594427301724556261792831380591011102798289087899978844075423198446051221738931244282977839206865293874558870342789500749035171727084752913957743317888694625426236192860502747049611882566128873748547643374632639199921854635870804912101952761389477498565872713532566217492064264761035418206343118561862952583866321580615051890592367499378573146109636561133523038455990563540538825939166258255150646571333131905377897059628147061593852118798589249491778063932493166384752285003085976401835689855974235791852004230589266483795247293758755264593898013970973595213480899696678295534561864250542099703492388408137021177071542856247678140152321883909268152276703004276144936498538330646077178184301694435722416816320858789954248436814136278363749443739603324813562184992272343888222683473387353050305698416955197020687827047627037091106911504609897841097177761158715491643890153500695682453044417002379369409449972466606378028972204873562190010329943451879527027253371144545694756551218583234785021237759425101371900053425938672161215593458712741847222136548599096575030922789235504721224365355649058698371950728060356216978394504190260578605603040868183505678932328163577639195766310113504553116755630474624039850846283263457865878083553839010079861294360683329879571414699640178080660144103037788025603111345466089157549313911744292328076471005850209232962594768669672156064169352500419269232643753564770927632046752884476543087655135761387883131500599832882673400194058691044400812052391884448284503150564791026246434690345517020971766269908065283882705762487501992140417885143824164473324442444790271507212135308113302981029896669264988496978733932938167156520898044645660485187683699870665316479374722034786119105523178395270521249873224427289300961612854321506157734635148975564837540060999395878492332489537370174641855674556691279079441325221455587085019350922623610683909804309923444280269388038698136826101473385326079615552392494587184563797474924631013293237584038592589964526356323248209178344503248976712215461596666793264979951566464603814635343217965222570673227810736915719636480952190577327833999529268548178068403824761829119469660927795217083977917492824745793190834526939849332861053409536885551020777694654792438548967505710675005918708231810048110469919629791735882449636522328704797524794312069429922586751508101872430266052710652615662235930122432797132156563716284594091366935056305491779557241596156269776751324619118235977842967543038106153581821925538822085363776153855406009617462974376620925834233294914509861013022158258922533911731108014330534300488946098588243087606485957802982442984989576139297293215659899308340151528894796364227607572443082379409055506279014201480756787871357671780061209743863232423581584330514419397610083957765326436331999800871215094806950901689274013983729009034271479418158572946795305176323450320867877605392515033551798848078208674275959240334621606712765249998063446180337512945863649994440767697158862089436878280559386229984719676074521405288713502124498141832592220113976829775404798884798622835351807004101634108022994816094680673879594210231076009130067849595233448801363267919571225248651039523995873549079627403606871891636920554378897895915281646607002303134650667219695126342581521545328173884431881680836023547930397332476824427713455055474302754767495837097790333103066035650685415507716810350340502151273977401746155467509535955059389154893842826212519945677285395949652982226621707242666676647713891611960516824224517558067465178380111512358090775878527063047081603542430375485055928736962437079063511801325014026915217986774288039883844613714916396733905413089321808795002120257933103017434403019623054404963658578749066074800712262575510634159729792469697269384103763567366784921631511470858551668368010064260009869765668256426587302845876131878700845930229204258448907460612556371920294927635734660365032049566620528958309130539333145612882263681380191432195993753981138915264433358718951964005064034347550105188118014935892385329811605222829422750799856124371241628935170503815211066336638061585814593675081521445479057420276395225621289347516401020684676693365888130499106205687519837161099837860381257979703632563473871949160696923768659232005884726361650003857245129801560818470926612485685575022546045641279902051954985917010446904531322346103339038743332742502906837924678057056543190827975468618299984665213173471303472589455989735297815909513260243688881056551593995357844577614092830209889436694528195593551566605974470944907862715592016139656819389652263172055643468359779572224542294607032176059794993456724498808007548882692188336407402480349682164809298395248101383287801165165636942513807045478864048392494227647325227649469179078498376735085443771463539396383373724059648729120576112280802292507560252921531333908698469907238053026494425309415694173209546638636252322274609176511196010562337065463701753631812132642283284992170122364614545584241041453455228848342770783299926922718720142091147836633006756890068514589682595078839621004142258059018849225868319655011337119034024647116251466821500496394659047375268472438565220264293665781679201933973658660186643719809563219697373235801580326332316294305019705613514200336658109339894693250048102838048733776662745181838397355319484219814020887052738909108178856552800110175340482611429521643959184647688315589753481869291433375125342095839237417917843553274026686986261153144078109106764788759934409900034968404252830020440571219009024425089189077813142437535094287997707387661416656045989447072984037696572363022684593642570996849545559644631633002482974411423198206155771799416057107982928950476752704574664998938344045538992980021307653565712312040978994275916338745341752218138222917892906109301500036105873975869268716491328384483670140869800768744085808849549782024421889100653371755547890052303560663429189800855836871245279727030620514669882797828887499009449007713627586632061412636674195883945295374512026784711743176483053948512539552251571037114208771341325345498431919595696700719155981134278664908830790327613533209375713221601080636451748292598036685730631477479610401260303236869863629218757680144147527977401335410085446326553166771552627689944781113862425395603164764961960828069340494595594646731059919707971413545714742807238033961524490763279743042776750111956340615657715730422964284686849823430449374777309413501659187076723369040050542865995246351864266370379670387522974836570587187353321644700332571712924810315044168466109588580928489346849348029197178902035222019575389898758623406538159235525384536152700863610692674855967641818443106683533342976566563614674904632380547675987715972487786043987475887730107568816290124075691635081640893088163599210854518169397813590694031689989052228888976567718888383653028364527296607486767066354133856469000239996661772761502194653165044002446655645488490436229496168818911861637818892198113219788624445383931584186124623326370751636980263605440824725585308813069876904119850195896064065724842191054385564084339728263211739346669370923628453465725032661411452834275749166603766169885553388527403612493195638913389234488475315792482257058788253841566592533779384650766687238435164563170770044376701790818629996872839488214924359596858006999541765863211210362604123751187707083679899124589620185713068135409028587486209486706446952715816797486926404919715698773384182141682336155435582020820040054741730977042020934338318894339709332289395515507197910031146499661147492454928980504676300043332460478019599197820164530128944955494154628587891227833107780733634564840113232169775128206563097860277303867876521918556495228611318412148936364268404387924358174694165342848755312277619668397626419133868848280221402720341944666636795255554978325637019551142110257067452185236199824511655106859711438766234354087681182392130472269262869408544040705737577080238206140011275576228849745801694473831801896797825562133084365054575511780068597312076070059029780144811860252331636025405577130505618470021933134632642613640280893855990732604239219235286693115940470013674903578153360867673243922070614712456104261339511573055986897039053805160438377339079992655142208944782311166205945668345985189299887092402703127213668655531317654558861385317848101011229605820152284150400648556832378409295216174577838469529420251140220643065063431516867653219356601987004494000845658386780336879257938820133238815249690734557573931111648509782225792017572030863161260380804855147208413635293403412997883605698731760973238743874368513928241726870689664639043299934393813394340990316662737240446510290902140852956930476796181728975208230417491458214862097194661043374358915586601888523337961078096023983238849332190319740008537229020463421306328017964685244367063559277364659065900313855811425004269120042418815764600698002701452885282551045637191634048120445732258876943917010215050496940692665924929542142296992932119144503413226995408052216675095639279059864994811497321842307510828508769819079714768133417446820958237709403207021105785648643369076198312941668958773894659620420968001806470376600808787628197102776576372610519171058434765729223097681081651416247007132164722772812519617347481184077903271385944843129317060304422853969234487671326969165571860648607186949199922806797380677400087223372627530181903891905947055042105878884559167790298819058420951224626864140055446703489924119461916211314188399987510267803945574638133066207364481158303421236303823617904245291959371782650869022937200832976990658916871186243460796499549273987734662452984870810021270694341471262304266541098561142275893958791700498856314088213530751268186458758519339822612020432341255267060620446631616471398924786634465790931682012551273084125451042301946463744428418625452099816789779431927466162982447655629618801541459043090196532181853475666871460560014559778244745377673246907037063747282964147606343295909471495422158774475211191430014742585410544750386538791032029473826195963136418827763956978519397940648160011586259630903739506137574457247756622261237320045136022495749608921425998258716347255508674995160621924680769863471439675934045358066519731460064293985880343071946168190488088849877624127339460541919849130639231396867012983873423288364446338280378498156046086088014018858282375467769899640193448992142032387837395782995159059570740568680111402177127584966754920999067276190612723593499372610908396824558547775361720244543530621417800084117335552172862260386834875427232098458225548122615301223706850837886637467043539513596617569250109215991211838607756246568392747502449432705785491389784177500724608400650630206294290062923994221549003477218327965398025638332300020817979687048365091125640076164088456977309866026490098932553928524000544074315123006758544789029084241290347229837000830249529030957241161157334476084095994228334087575807097302439341286902788093849654478147994363246504666603614391420110200829273414026298081448083417657939314123986709660891618533599392664069069242536572559955036486963854846353117361107246985888770099242826403886780244552886386189001071370483335377835674837727084567966664121793255339578527096703627765618987916317527292337913271261653761130957167295913057488284287676043354182587751641716089450072668856218713081224599954024234764579174149076956615427149464109662292200716637355212351512942935962794408911148923127811603218109060714651213221305312451373181511915981160574698881105095496922078424852833224989047362942296734483024685349160982952872837849918259553838283266089160669875616457654647174311847323730546631855570580289917680773863661395994796563462274901756088053347553507825856271348715034735402643124842953079634488572155228481070968406989777829059739654475228720188620166243755408238016102816103477266848440689836426402160006522327130033171408351176018612291986824707091291685618319013599120405803673177234406705716965060525457951757192273736106337917383859794025820497550229993852904644084211309782558336539510344993280472728697306617643904409440686652613708803785793540387728450999620770653619734331739788150124813486329124954941168294832904604407723696037167022401728139783548662572248362522471496071875857537242049111826734840269064801363986206202528071459168281148271468417556519669562542875957512256673500619309325839772976121223416064106165495681377742313358179248407788901587665712172570879267119324471673183139311804274504273651656905063415504923280826744411006841736413128045968928000497018788291804110280210019196710660653338682733342932350765873883276076107154498823490325043632612805773442633366645492339847636282153052212571012419534930862189216235265785258181547654983325226573316496943385986025899942357187478617507135946383934173379627754708217678281742791019003868126029487307276857672178548128500601175524722965676868543034376534086330680922939368323723933144479384481393440723107805020851925915773397534495091754136623752963607427431393933214523923476374546742199641993724025315519552678770385413662431082072332915665760190955831234329638788637806436599555904047315583205207684135185837856035967075299986241988440422603184565139850931767490939421910449526112214491475727275404461056931459996839238339422176290869138175540080803261539713086803234020001892798721865883872352105866106439155027708749499848842582445634349406829669790839320146710389927173379011772138977188701608646977223586211084822829050996470858673380457722078876757341103832594052149099930456482130344518967687760957509725454204744234423357774654909645866439009476377314907514286570005409375312877053089275737546476708080882742850136606624222371521255588279915578097354878434481395389652287889780642933772109673745215578312885926552212841334033462674856753547523669322871453809912297295635718954787262041623963165875414992672335401744850022382614266344117112582791517240496915707406700632002607946624843179611196868949761134260883878148138667584962559437730847421031361690100183113338321771875338147173035014164001125565903266436606351548853768199959136162279811312044274098390837790250639844059217487486331897045031604026232681391724833132417953480024401180497063869019353033565143589746638610009010081735246535151578633145333259609451871680433243019961794452465168508188598231962843050954107254018764465916224154791115716024274063490449303850232219441977361613853028845611077758758837425616627343248087012165772471458112835571598050355396655562122480851001804212617243171377029967461134789779718214211302833389623739500339792622830014546346867663387765427635774002634273890593847803838376273393956381517720250261687720628006987751032623039205710974836713540514915295906796988749108026278258446194017517681648121294304915602003935044161860159277740856748644014736420921923711501647837099364574450857989848741017949716013942160878634377960448353276556241971181069292232946728209451918897371986907623305822905675650034431209788633926172086296402663957345223477728581204914002439509864572348281687946097493967793162011761096749632350683961393148671584939010779266897809748608046322926608075574944922191983975852292939186961318450433152954336305950716961882436313455205374990136090729082715350865561114904380254940737833438914756901495247320759360802887046877485618415637629964557580137134309509176268911459989224759194288336187841868854002733163272411647774827781925470890807413064632959676513459360001395195625841040166482151139520742048370401148380344171591911873153730777096978118615727167156396766414228426111905218724512223920488612954755760704181866928536835109585142194994767532056648382070304312413906419194659169102491570895384967756815443193599904776861811114977962522964617882006738869640798179686090508317852802782904965473438693082736608798382131817374792186882412513286799568950358332315154115394260232560369637822846659052326551912620724487154746509685498846594980079744977872035682175056708922871266911431296180896972365265752277231915168963349621089078468052141549056949472162770559183837049796012656326724188379689491654276050860302712941922365990857275604631448877292598172765153619093506190219983972212509870759202196601571145096203554662023986430068305429279218642831163189935271802423752696317751097343159062532181990400756571603099473667630347636509654303974308551512598434429574466761091558194137921412340536494694567595691927936496108565497937946709605813961250812455254963175298979215759201406989731463511114426324842748860237421954342769786112311364093331298970883433142947724264069938660403558136106226494841127357156428509912512676610730806507062811933867921037980802608155447465693105650403938540967472010742567587251723374961057217935583838044974693071078670473987319438978383992378717097965512576531169715032038972503675208310357871528948954635399904532300730301439458193470666723057379658302406471830465729907889265010945818195018833007117042083546445203588172883644332813912763287556163973138936927537807856934441876080648795873114195822838231838663485804437027530237843074289341567572748244369823997867288979726998405130026256052579706954764428927107045898602129071346948909459768826365989665193594213246888875072246692709597957990399013616715250907163758915978692764595486336016135387394496779379795175467728429986245568502440993483668684041672270180624164931486344004627591455113842667625398303434146957935795079924518494881630231571709525878694070445149411522125032082034319574399864973857899653809709747464625969573173914236136218961253334755132906017825652143362005111526082357068207716773462113374931980070311115882966204184476272319589993218438636334838171824795705492412283826011154220446231259361009956800356195989961027263378187406170083044215953398074154262477486996321978165440641093636233160197049989952202211482813813896403876325017900472593922967841270559859805803572638896712284568142325784600923825860912775743292534673151387084902346082967842845554599974366583269680113823236078304061635038365433184574842621993563955828099527651411842316523270671015838597422144032655785850588464922414741288859125889444793297641456438414406980322755728516594264076980120457401187248384760754115785320839330401429456065564935130838159428239999927770971442858628932675166033843769066643769553031454066720089208210306687121548658080771288351633003147497253030806398608182297751775614208181859334805875588412128882721449847891802241133322498172305400107840912761541406321036395409709307315084486598116583160309845323206816227797477339901810067912817364110481497564959351406222661329669122368847989691805303577005887758396070474252431914640423445416014472318419228563912129221472589596698353325304088106107462754424725528345228091942150488717141468976005193954684803119771263232143686412104053868423937915469639244147911131040110388915947618371835801243809652307091050265400134889510404875179057104082213281482929996985977228779038573384613498254524737548004950743559811902520494435036532235218657113527474637208150473598144690746131199935585677714118153876376682766273044911266830081597046153543637005898470540599254649537668441386649255081953065874701453619827108515416403927018021080751034918461301931002433111860265308525707051772940020178498190490987223340750364033730813982186301935111097371292145317668766753665650173098119479486905604473678660496116783747625037994995379851927134075970062427631802884447695580343142531620527615006235321375514879289491889298487023265562242376344048406834592904856436253544143759262392799367385364805065196315466911969738609349740953041639003362731712744445999850236289296327686698292021994024527182265594611060628409448428607759909522479120652379274238973347285658341913754614631611394519168396047649005308615586632712888806487969206647436892694973586891500116257373482804342365487042235049529182391433742912479113443838575962762738143967479344848441079949954470933662861031091515167256199176239665311499511119414544029588137305100412158671885982696392945096238286368981065708960309347704012845140125310280469377460510316288991651844853748602650499084888030403257893284699182745105425967037042064869188029792253733617883214251693637783378680629519686122560921599586347515847175669636812566988400708245437764434177778183502023748560179584024527083822640860799386251265491848967171571518564268310489584884318532117742542141446922113979473194278586057800609308022245901337175700558024034020871872373027459505242556520675214954429264226426316934030225641439316262452377914123400273986406580214103960151664825331942165324092783545143804676481598374160348057198732390445539881938242332519022569353503859507133039940442853476935445415104643958250634530537748784995289626841376525671972720981048625616840687347567809635923001527765326825442448157326146084982895756737015703908749443544117021686943502912779780965810498679142985778185434255233487925080514081966673724372612677230910352067600091057812597119588030406072177921764071175268700585808385748786118862864039029655832163253300032686393255345131173417371097038125673288013342265088747554307416618349087631928939625995352353680702523875134950474634702394393342827715361068085076469292763217172255316850563433764519172648999059688786793593499647667668477053991537883281337231286583939387028251326202891140363118538483565028640754345575997637152355652183888571227680748316412719452345141579585019634108651255523753420923379774137802086879570468680218256219860850180033197045562422918063124405914871628457257027428479615145775313343294045225560275331453229698810964099693202738262378909396038325791235684582746138587207766618533532585576017553056191829819312511336083394701715670638047654043268569233460062672755513418886948133010161794744217071803064886627832768693715401020982675143504403279874395387503081154096881774886526582746778864100816380186673975525316597459117925320485563419258845482658413302084618235085495875590145661954693855936553455276683136235523218905255084831116673769605175270500049930732242737890730750827418376234134139598217189944913810353172959329012455558211541566867755271447620053025363645671881192210429675038071956413075325998707156113968077534868623634255495570047248832987846665837904649382203426922183472031067816608551722626893566298778105134799117638334682373327770715665105601056525500344897517073953912569105954445452102077577544686839285784358944306879432746960407901206805403550746838872221981462310664500602440385978170886598173704996849447910020522581031873070277662789135771519316127375121973754639321268506885665688420663488848980404687980666766561339895998845407158444906171437510465473538574510448501848351060888349076837990920933829483567291657797782491966065166976402632187063094267261517607580350998427207053312336706124751571533080239756007863431283601725966536979276594625750767324820869727009124148779167066938319444376893299201586035175847193799390229489065758375445762159407763216876099111728342303734691785190819702686856319215402208160608876245372976412422531282639764958214742146256219090562004180290689771881089059121532656636394166603905516031827557999296212692620279804518210079497047443894089430850521371459607097906570505459974269289864390251530888144957663474095026492123187486673030082956791464709058230485518523794152986423278124795698012122728221600987640282709053041387841451109031614677317501918840471972109980525942073249415087059324352944778239949050404705251801474949233211049515493385745834054005176242055403442560499997878978649985837166952617585649997838230849234343214697080481203622433159005627454400850379351729420853647227045176619084784164169698724093795891242404039977538834337806257179866707116844567856088472495045410260101562133247543961233395254942941373888693645560475291942873136393708496083371528167450780422647767490771874065011188223239644898794167483774018314606733469617949039457500195669742905180399027124216062366778694653805498688032545233192774311638325044241301388958638821942523746743803101568222379944172099180629137133578706572241015915663659959372125969707397614071873797351504580099169415829769066888512033226498436686538908591423409107696224259471440171937706953261804438139378019516684288173584100755381947343328210921839400283345306052543562708433828258059340164225713998701918014605853066958246059260697159404281794037379666532960328575020209924738420678975542111176786369915183364823661996939061267102320733513277364906336426641288452523030950986844075617532441845256025891486667596676323394151979274391828184780481132417092444604956143140035425238462472155203181404087895341637538819458580802021814952135397090690124172546804954219413056451542145259427044498943575833157975253518485013258484825592414529820396898256526842558072976188500495925465928575723130538957042118681988511198954923225473665140160923831779984623657721523516176214368794022890110006715125680240867684578673592159365281480125038819232334366773111178789089464925454076838040445759815952044654660058199767171689783843741196636783239809064588320985635489318130225128278716755968034466574840793351594862839908003725027368490939625586411482349383765644975615437302086497411760902057322393204911116909482761538576907380147658790485519337077904785046269492464884253946395533182324247574557186455780633068345097388078870250827403164672531103622717398430370358463094771235830516789919721965958239079541970304549436998045597274451597362160611687219501125260545771710655387746018398355939659070124375576586424990556394368915845805358405408767747453376284378020956976788103023488328948242164635924752510501395601170240274186383033875740137164081987812298728636127996362453423808771440461491122100020281067428434800924055526223187944844264588541845366749145723272938987892276967039436372558298218289258382271391363593427793041214543056764887210301080296060945345099134870644337545193442591357384514622515641371869498372913605648427431770618993120948345731380065611112213703976396098383929903212868510667745199593314535527446753050800856918201305292457368139905929267203571049470380724061751963127595350972106247377013563978484083752082646852858692874241042041678654054347387735721169964833594497163299947583864976934164184398944552947399192722869446639885848213111571912064401088737276521231531573892106780412483513243363142428295489366662455528992221110910891441051114346415778720374386648968953585735106817863637881618488281274424404813163952848193913493888031345349913500844636955175100292869354865526141919378263495708488145505638515455186202489128308744964381574001471420394899306281515935966123214041814558242585534881546362123803991069933163440119293802964029062132174613608829700379534951274800943602460946995399938872044727350692585003415535784658729640121567016672559180601512200862540676640149048270728943474514160027548704282880696134992913204429495616079311378390856035430561548556708061880762019923102494652360516931691467159708596031045769567106541737558910690579741385051651316146209869443608516463401568931845183062514402244994198028969830682178387209279275245388846548423710648663010746492675712166944719842292917158891166600950309681664538379281841013314417460305013653914453751678488110257726598472106070866433964523031692646753642436953413608566746318512440206763332771671328254875781165894437761020528641842700972698702541305958768343812797306490553792647953636918826404047184564994422995522270538811240710559884771732890859221495059257071788825416321790156721551287138116352999065624968620474048730406880975919302585128968096230733384773280150338068934290894161502759895500565571803523511111416169565687110654495601139485489887375984081753759143517643167050895395479622963504696840222491888064083336351006719087356960387170270259781568991699871027576975673155117559788596128511694435281982761395683244689175861095375350293961720985327646189629312579400830943524732485114536386966014463059898481308556666009854583215493919117249905627451366561570722908343632361737259354128244693706862630815365756118506163715377192617689958055761703894217430141867312817262848000096088939920952233148604016800591845792512113962233424820896408536439127760375112660449350627983187219066346106782673516782718279787262966549577499167716671693462439483984591982083933279818974414479860846044344177964781503736982832725211339091189413825441645395612365154697117814536260546309878075695498274072729767645216427693621839989236001977890408601214363929253957252212969010433661130199371655138535766032845925769616313618076631394972891919134655918044900024653708268621843872610590526359323497358966706697604980799565951115575539631712229099607544916825440461553776359209476789014515964851065199979153966340790359950082884292471547789993352897487199942829385066366198565435780994753599750470363612903119142243300327966697133567396452405041406565991608918461596360888387320080473614247788475055269106963396738424915149383873555224134284720455536644855162911199490544463375560270731174802423099512564829335878168196703377137430170983576092204807902791023718598201618559371150730137830395297382908772778724833623788896820614095745631375908921412690960110670558154740092003042045621145340277684634687339227294237121206250245467512779247958832901121094339341158941748811976648636727268330466001762325952316221291977294420002938153475996350408018882707737264758235738965845791507974411154218820218438217683201840024849974044254840217565316335474703907337371016816096258668359082916663870383972465618586910323483351657091400324863268076016000760051920707302660231219717484652796174629001107304685995640683383451248957475425334806627649255520512397959976795795176402220299187842118188247596761912082580180367767347114455338750900120625770109378460352263825142214554113497267278080375414634432656612980025529244176148233990537425848951566197893473971235336226280454611406659840021961437243174690650333689682882060374102487783026979684034267762362450879057890402886693609103025186167507423130983323368177747397107213018426064502767421935968250307750634459778340296977387453484111825733143773715963513757663308873289906062780591049977094977805481058770068889887648488249765442590063214140697245083414287140432533533119588904103534023278396040779712847650445801342232848241968782361978062139295463862100692149645070086434911927443947609883664297646866664160554297017986839100753145905658096004591970042116708236282708255933841840170037794314744184162622262730180033758941005188155293346340430259962285771556043864562707768683858262228313257537903554512470318004850426370630700581272779326694647009247323936853570424689965838907164879930638916460219019330005831379940154234705990295601927194306911228146219770392387833493734083673592107106417430376547053353617232455730089192651992018426818794072299934258779318292016443642878715857650544828463892410684444915405597941386993424329832471691982393615227951374992329807473687566274045057346676072254935945186641135247707272404516773507387378740908242957007074041642162759685728889124617097207110161959299663915774940983211015547650218167587402009828461958442143493384158771235698036590804810350425630292809046583944205530512520583876912817151170046596260683782407046374297703370535445231354459104923649151373006715431769698146481983254447862991708614480812592179078446564826959783941073845222011306046289209785485459859795442953274853374207104292255255394437749702157461351586608897376767967358236980602508964154218775183903117101529860347340584700454254889568792888211335313634277937135953397644767011703583370255534309284275459203556249092754412252975738701422878577389055322490193497505013428754734587947692129338997602742801607102959710072091509521560575185271833916428674324422510899988205210090875787863737589270399271098966412444802197316420687742303898856511030673395364778389350296308035811110447123199292065149140064766364646256921497045679061644186692381843778404175605486424942858676947941126046305448221171564987288925933427205366502740328450900226799511857510159868958123627981198426343770962679907233329101072554570987829159642574680857457194637713003433997393125326048516288049455387336688080989431086249365779448552525773237098378006783974220793150882985358692072758159237317043481043269855996203641046493798410315309092176076230143063361642595640501285648439490918230695890164552224600633114767929895743879825861205173736827532835004593209856508315991035162326517814928914194149946387304403937260273768483555156258257726803631409949415317763800925006915320375542204386673621112173471873179868508486389071621455912745937052271658370200803265206287995058487134992721170299680006732794313705729109578894750762990180759355001765661199897107568555216834366637888919664610546908978447081301853804586034369099966654033103089215701343290426568221606127149573948937784725201614966009112045210366848864217916118775475690319020225613974631346377848390766820792793293617664395250702939447270508352192136036678323003368570810297321668250500018538445718538165168036723045087727657188868282003287997968572832651800691192666133194735417967734445815040939698219238041235209479288620645688706657887118503652431060331826998685086300225524552009701523779312393880170210195835814017478729137695067899004229854324935092302524670390956221078240604410860844798033631043629717627039770094839854355963828304951349253551608234902882358458169019831158337124535666511255078418214169168095759681412466759234556032288769620354426064788543703653270028275019649588344772847051137028432195156678659918621067323021128280601715081384027300067804743471458117393012171330132532217321567585008797647010624558982563841375002491194887551609718711275982253970483190275755629470118895272231999291542342135187740180506806551158157139119624113111308430327698123686041932399202637368618335967636695280365881753498650006078498262691565743852036345820106394023699646547665084357743631144880005293230996526286959835885349964708370017217581662293740525279827719197933415624603506874139691920825332410003447117529073388016427061956446293154323146267041604375833517008755334889178959239537638709033839540153790000984393056737645727642124380306574211368158678053503562031304184298412412491156133323419892317446941464509992135602373720996808400048056621195269987637805958685606173226078907746485292672690002659906753586325761613186689607043330435616840464691887171744620936087940482291257436568292605281341159357454329817250807299947583407504011290892456425588752966444909907137748287991530033584435345236961229541576011588648825226960245541772453445641153425267329374640672198425418418987883602088667957280234000899146725049059361681275387659727387782619594213747855513811140905357210614064775720533967511084214995550314961478080084913420988802981200490760988684232492937024461148192013316360615557246941627280634875164624623745121061496710485504542628729523563211700528461868959383798581303624051242821360407577164640316917495422579362533576268370663178512644387978376615819346905845097905225293519003548854467169193249875151877899736072205462099207211829154638706041603091712546062376675151833003611217342667501574633294181813272893707518792307023729118300636958807789134263335906769190259854251962847495838906286220123498978215839689261490774513714975978207786372212142766220732929064370664970019202421275177388329896188501508115321899487864885475423349720206820837452032184517334340978682974427783457055399397080298136430805969693693083430438139185741643909513624119498256601297880678204393057350253244241851621235327665246407376603364495698588399450239404245627650331156054245471093394552763661761103622697438034118013214796193806792629067918865042051758831415692794563733384102397589594647218417418421589708859888745995092229694446005490419261404386851875990965339219407061380906147018702231971944324604315124573245806090919833208453630674777768101112553245782310451638927550587406176570885249833510753507430965983550749595172443366806749208172779552985519915590305415151653558639961564092539506535812456777777170610269807602619485134555344736550872420253959027837183446203596595418569330086942379149273447725410335299921882138876822020863404554688231777792184428670223168134013636615967310221193328095768024153912801062021623037627344348535428843404505967082990824591239534711306604952963191728224367704479221815184370483181579780193727020299679490407227056455433771385899069572073482947365854587537434858269461976523547367782415440885957810626576653927518410895947538652823298774780931336300076627272331189376211881403696790009810332074378695009438065187725025193509487215936095087844668399216760961178335656403684118832339456536740993164933651610365807554137206297196162257024174567359086726798929585054061040901008379966791220104774057617282365125979925313526807096158695344884759646413432659466635586430344829616255757009273053603349241506705623650766149747686201249336044856063962065688507884108249999984437933393486687899479204885648494458322469791181355244334723913361657201561465823282524372481780902914229695158891886460269230058075264929332596827379284391972753979578831401981229196045859444239258865583882020673356321967632044083236673913167448670506586390717635893405634024269278045162208753109772122192395113105498310066779622139318212064002248831406177697969960569508667110895959115178829349583477001558895674043634466422529911666144458377431867785857393902082896121236298735199476279001384734937040924372709528187827626002965260111192531073371910470579591243393846968825730339031076881113498170292541840608372463477005544325763425608680266080849319725457100853034839416633714388080130772838679544082625671106447958327925371785356160613769699591819889434363442989719695849975307921156279537693200168643692636869673217890192950141865753138779629371024426701311445705331353360986290592362428079209948541400692297469426996299392197817344921879266654046252869072764692699536022088164684840209141803993689336366983525016119570815976354632106908415481184200066855036330980428255823453060002801001384019106155202678573026625900513781600496965230382404357501103805406585543560952442619324482494864812244529382390039985341810887373266981628521308587023988249611346504703326847584318066786149722003431500419068362626177076156544784349692760784694789420413015102507941123426565976710116951999133665039356033447150821908938000252245325489825298775079449022488547242700349857597808102765039586105947042831394002725844962665780029293885184868555316036579924658681952694441004264883303042614688056218654148709047302686788140616514274690628006960565077236013975152435686687406640314439045156969084575475360862229189926862450814503621184487505465761486614353882552635646174980465565658584098807519197551525728171444238381816726976739066944298930137050650039062298074832957598229359437162863235316348408928914232434625179379499274521459059333188505155310399937289514335092289036891064223271542050698708424456788842787796725454208258557265843745144212248330314973508869553464888827727558469363176854406122051960362361988907611427459043163785340847746891613787871388401706508692182793811686634042882303813262510870576997875435279806345866516467685470294295578340080067697237769493011656030037727173155373376918226815541260301721867239190867088739302497662013523063324725557193671580174234872293398307096734491348659467328173265895355019201748070543158865141218298135489718466577140361959716871542348163846232354917838982032301123052772104452209698638818248160790508222672143458373641596583473097683909758492080125339972837825344880198237380191437623750720380426326541651936334182431445562703404817911836976103079232446845352019527212684346809051624223327380978362814720755009788323393437938839403492986998085960068373582152783910025807831877906069542426365558464967219400706148590146970693971054631608759833302301544707336002760192611530340387204922538252479724218940886486284944852963491217581849579909672686037556677378984484028608874900648651444157148556149092525921374684873066421231405259548203228223386401663764153761399201456302628529982826261074233476143555701608181942692339762657196416328805627197073557476487573906030513821670104181156609659478818488087027637905155541225241670722332421049204721445029998090813649010719226466462058965443500436779319597111394932846994941913068132173812935271974407667677841089707490889744398126373941167742378298177078997278455248125678727049285515463437169985874129505297026443076804491800027833728028989389028768868118140838539715005871927448877106751748797995331266505461671712037189085409873096328430248838397273943917220656841505816124600073610237971804340235476119310910493983923662278319591197544861759677586981955487987659636265519690578029445591260552752601381801814909349238886241518224939138929844890697183107054731096511346764190922476989914565305777721303265157358683030295056554914125716879021096536028023862087229581518151650621380641397612283763618265877839239987526647028370057110728649940424345102964046284846167478974200731516159854160173500991226421503625175987919488357320457297159354564486785984093366076628365522264537551894876895977536680688731200321979279341697670330228011511950987717970501592161443434650695836250433806553987841781654399275481880888615830493255824393525967841707456917738292158500043133972250377635842189761175543831615645292523738214219461183017334126904305570803232374940518930811978976961532994278594881656863554327611757955540961474281270739109949877177512942089442956760474438094728874070636466136194057805510942523053874194691316940210727700387173502503832684380468972586145358308723563905429497719260495041150184481186380178581064954942832320481548641367996796863976444086364230340376992081388977170466992857350080687723088246346271115169413103930193005563362559799339035645823701784966448784240276750791902644411078754683727871736225512097697142429729197858319330567629298689395365795234154064295902429422569470182914603043439627974942966856525714666698695242975660070107926266207500885974258991310764601895034956285426037537037491579822133163469634576442257417466940154256849226610611816524294088591156801042866392248313836391580349057593400771183078446815864730790902637274933037397404218046192649371445506579638031731970046685505915244165962886377766599476660387469411492792610621623115344941210164046423516178711056297118589871357997522479498205368524887881499501303203605251075242416675312290540109292250145160226783097521162927387738866527748069114998155062329208200428225769497664789349467334613452147361098486855004837051979537762945382972668414326464141569205859091102206442618274782939104855533988397356569345679546553546174711127894927951151091700483008142947043900121487243563438179019419744340132802848097893458362710128703550238596136528697918096395987242828978283011994699905906132343356016919437150048106452511047325770285581382473026200761520775135749756077285223634835558036539587766086291602206716084273348496620553262773782592421811852220887404090477387508161221073509606703259539180336363210348941831516467351293918605096381334303497506649299830470372374836116794391706688962673508463421427508290647445136076568092181612453692665765604426202721749187813550611184103006617473550887774474862487350918592286745266653756641341507979985688688824534786385285275206296035242324977141416839370057387383268370777691494168800028880501916380485030110572114652345904302734624781461035619805635694090929249742580953053463137131389644522759922218959493983824832848479212496985764298018139949391717536192840520999808183251644157815645392483142209948952145641439756071444950530465926609263046142793535111109385955173822682883151304463439346664411151798445899101626427911800375678977492714915459937775658488368079198971995950297714681174589562988437632097979104862996723980965519179833815983665971130198827938977422105526075363202749685833087984721036845979337823253845883385491380779966579749288989243488106484076903027604458148318400578749385398653940497542195283511489931395138921250653276587734187280512138351989283203621173915051323181697709202057862339927479404885353740632389017773553039238521137862251818230029140349000470440491606836931731747152035947575676831012970671836735246304400293061812970751319112471748281558975659393533301066544180984528193646542654997991119483070201485475078947902500475435643955629217861408343534631444141251573025931949038952444907682190902271247153041556257877353017405628525457165277038714892164918725144870892720877248934148464156538415530458791065081365006863195277793961952130859543204473413199762902971875642195379404438401929309981002144679945591266253286892583727865444290745164066355799097509966925891703521245237103786838157547401916425945303696797025379243027545150882736695403353621025270036272738710843534011209656902767078457181375176208760751772708293360781075059360345414971796366694476630000077153129439862144401625338773385246813024690786488555650961277782820361394489979694111052353227299812165869818431987042790294405123154634609595566181690259592398445468395949385762950569041240115175715063800242762161458647609494633559800563390069979454232073410737526618294660801859440095960689174482742429307305647477489591373620361318491365059299545881840235765648485369510230189777041911635931937587034939891722594730513403888565919423772237054238909241254482547870222699337667075086965942886975136200985036471656849679623365499376680565786096970944547500786279192686964684636767796355768036492627370092916872128676218420460518923752213113940937141366578321042855485060671881335444759488766012352127188070450638818744577153627610565256674352552005949746845069782172914175264821821164851657972125564981208787037209685644340827545622055042122896191322582783794819913996941459766346171206046317455704091349534101510810202883358397574620705576597806269525584729115458242998742331831464668472119902589696943512456406949602025291169822068392101004584152298376652174073048437337167735109771416873698879416509084490297530077682068019851737526437248286530134396141609199325852121293477237880403762370993091924058969224300212210789737277167724430191242221565837185049151182124199745189432502971583994475800103049373911165492059215408543041195613704309942899617936629543222710252287530186620714372183623914673431486040785476924189233163911978891732741424614015552323213951622448476566478549807949890732766790833686877256768807894962261158501572096712900116896971725737117422173806463528465541188586127869715134700018006294547482979916392098810479307742825212273922662248974642437509353370491036026743235577758507702339017403779122677892745283851107292700639539281212713472516591996615531607693425514185223410211175635713086541611078014779372361831127636925801536776058458367200939152131669630296128221668896367750411628232598016120277636049242518387692685131098783735852130983879501747475973654973603623981117794101981674780153367220952508052194152896586843657922360485039981376183169734690174859054810009067566173614273262002319225881068005108992164222398623736232462089665703759289937649786294874701356437947618652759669002882160856266204063964083551658105520240395878218706369470783348515733862471247423739913161580865128424959432527258807567149113006973627702706370598967271832031835077587824715776678041115248406628865284456087447950667767328435630166690792433895334118097214568482657198077151801571448172910066086428038110150145256024346466144585444330433618368139044017632171574487364392653989790941691997013862716381801971201904135608719189221635898537325121637240615767298203993161122871714205972147817788377897591600279538518029009636360107040121441628795171606922290860154489591425859525166939087624252204699748794287891880012079909702441519821965165982846557772591358740974175931513478980554340992054742387886728814347487635452227714150097191501996443261146192858565512377596456560005177620695603186019976076871905473468897275874068801622772913449996935056886404095849851859714660673900943842728920876633325199455487175774102908891569735877557690484859728435312698442996693068387666130069463268298971969181918100763343489957819496158410419159752347464502752119686533450593553853866442668634983176174054806249211257782218650644909201506752264961952497870380539785594985640673270877275625172315283717549654401750233471964310445905553850304578730079272881761395419550728545709795118216944100113081075991405600397240165795229268345103853208289705646182361002374493843741707832739086754597882192652012222769736081958448793696788965704454878966497163023482605435272875777522770673634967383813448069433634945021466870104348437711966394737323087693681615430139262795128522641648152706241062452153916146057494090598333807311159804367352175046762854464325667014865592645830586529921463251802288339963770116693005748840902155481793082025103011885271107673461789039206353586221045244493511703481371621143000071116395113987616761115296875046367668171416069164618679146362951618391433997026781128803905723625899515772941289072781494878863578009637427973846757620595432130726242085622908889012000551435825418844305949163136303431403242769058552724658787914996173495437304013132733413828840757907317866220615577241942800365769612749455906790811577176061816342649831233183389202929768420905905072840250920795502256760291700165550378113994426550753014593702567955818494190332626628283478927265266349701595945557712738531800973145146221516563398506060888602794482264146425920958804293616243569489872778010291312645839637875198208039514062332846401682254818518073428545931606781030565007731263029310112102849177380245202961658325205995047304369631048687834813696388673097653431042789011090312240224763994817858126722423551550974662321236801711236056869912678140210723125345708269637447509708552548353995174917361180901605682277078856267978960593558060303576479204594766608586875290326386260130762970894839650165414093859237453871863544960854779370378886368447792053361328074725316349638923537550396541756792797161746643450419257381296326562495313936850979519861513014874771273494583800022828262375042376824843656368929123061930355309437271131638151846802684008094340551862085321607365455465845625087687913542847773665270124436619452877262139631304016908286086074035674868069172528555029079426074372894908206811597597631738229809174464470748782222982524686860576025662076849021922584555910291002542052132650663546058918219437046917952534943083108050624013120202578330765519666011759534456887254081612944520135417722829184829133770309520932746775606566955677813578295026576866391453562418797337716643646884845623780835237495608118450128799812868251111254680991683554430897917931079161593894390804307093568259801834212316479090709518844830001127353639723640191452740313712336370397502320101337422056006611994610784365636836869294390391139373548467690298472593415567733032855626898584628888248387008720571128171153056533994438882832013204471311291126162974591482493702185618290555633426063023368748265042955850649346222585392666715188827768052821540011047030776868234494266290546410826352873466087998685014727233459601424764328864402835088838174503427861847087831455213003109773616853246103228766906802162488575131015214748489225660425892287668019176902146591616900347337411228915627977323550764006032562138448569196847561323737068714841830619733194323169388640251405360385726426699730262780178447765143736819754159866985029951023744919747482840089657801870259957032108893497194084681818479552559257062792747012849287052747612687236905678985917058723774198288272632939037954875366155834128758265757958701791395570817817513400789739685918704945873440109564002965960779301451654946768806758074321180034103366498348529980062799762074467277481783485872179384371241211985921027637500834255836484419467707096963048031373624659699730426541445833587882017717009499978603829578595991768664715372112555425781843406458833970768632664082441996247588178083711132348362311549842303946624676489765700523108185654806066990031888865217867429979047840419994176115341705637122410763079287325937356287078707182980157622231366701292524823632354951271872987359713326306781672275298090272121999387104215308967648680309571529678215362374573604832639238356787382079436467761192136871806566996479278833126679603759128950329125820522052051073042152422810366603476007681739104925096367024353813379481418170338154087879122878178324214097443707860020096979820542541050432167405999270578655255224214099696202963408150115109857769199520799082665832163458846439289877720587052780672828658527553517794073303457674181498018155472781888308115093403733322091927704314056212985435028573814633199872358126681980646687432844544029138358877704156312420387590311365210281024813754551081857050266979938397783631265084986159082252012922276295703968449290966078483880283420046079997026363643932510169104923748483670480767983315507032609813271410365141001473751140622767378306212578296830194649279254691603428093229954576517639227175176039354795550801886145789403026720483198985938161318188961130651911808314805036938062163560797003507193026685158827469524216976635938594180559541852638702514556244503626427895523874768674755969102271115540457229029319525504020151455778300437482044396381586410367102306445879444432529714532694179253963270685332708589438649246043543904812804862938694746882654220218933462931807601509993433795631078618482800896183381912020026624841953477693942165636958065624239343523988728083461644203066418632494673928595069799515797036406013026026571385675894406345554532886796400116385361536570658688770878819225996495070491350641461296677182824589500294896462277218035076106379778842880008216774799014237593495387501613576216641589009687194026251856671529560976005193979388877884848635334200477593800102891441057656656766590196680719148150665580687448376287070851206567854587269289868690639656967095064925730438856160215537118937713054342136451085033329493937261581595367958898400113517253851672654312165128002059858601204979189604392390062682296674838589150888284991063280258949557263099120063477732617160271994603258572990267608832814768514682959535418723975406947808293310318488598755615309729286095709870163567888966159592263282496344800180235123387974239742504177956930058434184669584300317741880669582943546950408687182614685574996118009017937877891289447415960377480545946686381970239210909497242727330932240738962972469707887690186190035457169545451170805269577122678607206291118915822849759095778813699800397454579096530575932057857690567757833915733791066948102032069433851077546116717689240281380137086923542399860858949055827549842803944087439047885991228431961878005480732155788504585165833710534028315990003705689031942471208118415231058642036168222890407502210574713065833509019425993612454084864289842324608252438234153214325419278555076284232136920524007323783216570004571616980391557544829159722262213398047130037850239753625368124882220542037736418781460967716781481124707344945757186854745393050679810935573203741838651276686430909467594515123436092738745264763775039777579727508626428326664037233527757502132085986708936535887840107877503209453481505103740285993311457753045997736894400842766686394533485814403099315351200037856549862834225548000769590127750602591620827828978771532462470390781053061468983205220747592715192554770296289436115700833762413241635099761770217621322112189463659073758309156464149573226548113841891503319786899756485725302293394525419960260640599800914396186002789292407520050442285982853507189811902913108460393527026496798364310855455102005680563740130322196229881709462460595226509171161915052395761795402348897086416185471479423961905653592235869784815319310495222521722428972578157664928382109462161120013923409477660478126120621824835203731059176275485876884208000260301715589375486473153602793939327050299544637367840653202763124512113460081516329123979911038455928687161887696809280836121096766618024778668119671309883628102870927476292771577384146738482724123609110152870807636706752285757426826180474065712728845291208083569261267859579774193125152838962930545204563988781875438242496495967708279751046073988486740538611809258788771478668842577255067006871079122907017851931260628190207711899796776764117438761017646985773522713305906079841017992510197056192553066768264072461992287913107318163388357370293877814389301602052734115537816799753372447208799321636144361776948754970734829078832812339404830370474420351639732593472532294624196314205537558084846188394567899384376811217924553829591479920710938134065285728714977191345776149873004378659259341065345172516405204713283051632824121166120889961963559234138727901221577561262809871564104892294898728345433543280543815794237078223410998648400550751361867539017497176913083718080661473437187862184087276434804841903342716066981143131758371711351602335078783301712214928009688440473171711197226459847614667477860102419502939738500969199908876632801958820876189037659985040274009104207287829965756885252242501349024495711275999049882486988378498530726999441512066367252181160552692760759586944303303799354837194371802963333166143509654556768592361775416840565408101217346194631261638437222749575880484666116100048673745542053745386318683846202896419706862418048621053473809982713257864132771438419960206401910284795736290018975604578507114794385569941759156098583010059715493371204400190347758374394391993498253655223576416172039649413110356756623126084207711032145935306216052005482888389013413830973481287523765382097223429221895209112822652453719450874224078108217196273470984415429119252047745465854562531834706119264158627368553781317666334330478423437787512549571908775679528279623153478296191327657775818113401395285987957732930578444377017042894425229700675307205490263216163639996025768273929018918959229938252637020927800001443250836327083061423480498871555780949769725312674185480141580910359944227442635818254943803811882869798185109045901139996963511889993092635053891355411659543385377614481427275855751301403368519302672011835806799712005850470613131281538068488080375985582831524736260051135992800525837405539692405456121174551552570834954732900670651650725659487976221520475267754080417187589905863450425307341372074257412364644189330917553440848096486246753391800031522127310608740066090233761030187581266102522435645834668185623382102834399685411083837642888319604072368788769577009747651696541394560170460975063778558952907828462368638200053446884047457262037064958722000301291950644912222866217759398125337843253058119609429045542787636042446847465496496039704538605699381078423776935821849528554641792804463063578244418151669498599439083572598591523679139100430558343059877897132837253102416783742602649427634348507878894807071809699014917412003211347328892427091269442772672775737088576839062893826659160322013816479210477383485562636250063560082028156826175641139097253461782781166190633246516067380328405022421226006534356481304495691070252642335703856900481456671540045099332579290854656075604622481930535630230682173549652057481842393176002143247026782506118315600310664836304747369493278637125523663781141346345134202352784619339337156463002493456996088437121198893979614720989436916269394491900380347894717059611026202762518339254627334443292987695984126314913570598723466352140200580414297223466938276364047568115739492594788417627842341176460055721318411214077226969666320796108561675148864640703503996293472037434842717922167454446552271749979587023543074394882685375890099292142082281028730785472956697260592030270957871258294439754586755821783391063926040741010005565445147501073496387934816399610994932791515634671111148123486355170981285477985711397790835635941804198287497589972038742304299555437558728892363849650766281965363018818987441787593215206522317725222671151310638387869998523697595671943421721091828621786937991724320299185734964293436683933266330383585552770051576290693673016083063668161298995746286458627113221719300322320201466121385372897908093597135548593128950819313877291019800120855048138391949059453458040759800462261019807629800996594116738175465437909935938159447566529099749934424457750138687481375033891194373353022609378195669296754030115883366032261337724552385319503958653503705818322470437231232368162281017723245392554548634348533856648837597617734417002874262574964069552259171728610669582823728217700332775362910534818799819381252614365432466866768010132485607220471951093889043168917732493249681188349509603567092871798618440385080744102283368974758406544253538309399157307875263209122425045406942561062222528681915556595135384301482092917564706814688800234640269488804083025749731967305105530446519022715503560908717208174915113405718447662269789113434212104866276711375933960871666175708711432425663392930551109274639580827837578064859463545129211155205815707862877242298651558484804128672835672172010050464171348134610886885080214996529022276432286493086190100731509759553590890855856712170966631477312309695611201862567086360934424014825187643209822259566993627674480122841711150020138656625590189558343318776906351585622563756069269776403301694211264496105812438702650604575706726479195937832394082909379471692178495444209104745568590820978707149844287507559383528030983955565984901485803877768501744123400679669006191231343670182840834686969626605258952440304845998180455272451318668493538344063617062486122689174070074230639548952378631120662521368145965034633127050428794716900013487842203959164126718858922956679071245913189478868246010553088659645321406598377408941601406872177262576127515133526403721935823623260197372861239510490029486474452038473663124305321743963043762480665456772737833676179111622537171710565590308581724890225928007386063622200359078857660490689838648798320850988067091625260845446490163019238678666437428350192919237176438327663468453661338409560463157558811621496006371385033400712529959482151841579241630514361783703341253527211459045316641133111982550438236666014253562700829547382540316247243706450756981013373151044669135894572040866609466670107213464870811484906368057521324163622258004459584435758068768354414527672043762171870811197715220926177316080233378259692071664633419666814228540197200505069497070569122662077380927295281345475178629018655610729592165330499777942796097456020510745243947852034949566603503176877252430011837594432797680508467594922116616963494713998389041348340799538853451128247739948228933171733987904792335218291340940267877964875342976294467521696299623267734574749831091494202446700115079016463020466496722955733767513148703871697721961690225884422786918315780554628575362939168473830767045474374687438855437836018115383277594907783638586508133716634564759186827345250431225816372550503177464645615158595656063023547443435593193320150239708469496169606617221732998121307724797251089135216066426047072972179714312564292809069935162947428767230936344018205369029668831386990394282164187053196448188114765382982468190254789999440239469681731612716040247361043419339558175297351131432527691102725529464485364071798285526282828446962409930286532553927488503813759037664578155255802516020998779654325986808061799197213545404520810693957268608143188575848252445839241346189636666449142454480120302384517403769866544851340343675119444766612606587555891424703915350985540209778563366003329797761656765779080532963947631741927378699233243183102039502283275663770352708860478530250883373557678220976901104714091679176062585902463586259073644594125366343888937364296366187960303251857439037030743080665024435496602195371898235325336033288669453218419183803724748797957857400685875152217021625150537362384726779487242267461745721735093873342928092994995691312958407740233286466153807742791842350623219548525514436677178103779133119439481444206424417977928352845567109775988956844457943812203958283687921173158893095575824766453540837464813902336583166939426761741738804877453767901915844277724496058055581564667096064588931473215589326623392723353272204901792590265627371509396832815637463384036076681300976996742861567211298922157548603264480367317296520671959773150787510566946828729526531292906058350819675207157761424579306138126711470958225604129046356015944333637958783096575523623179180621937000765208172973840809577566878111708704628633733131893389630731416457557980027735024771761213302176052066139121463844387574379193746366120382224152961152323095844208612612251761124022649692867914544560923830417646078699625880728098456138510346633778477925414048720809053429771600901038615443773294744389308839232412199637697120252291058990147759550043472566430336269079332521247772865223527559208584837209706460001753443694536363763606194183296452276402552149756888481433556601415472856956352633778212710013860866334685308844225924289759299128295234558626352105116763671594271994386354486122653110581311313302999839105709707321074666478882944208469471630097766646406607978801988671882172254265243423309083997432640438879800535955140406331286145511948886122958204367246853511461046321057777491082122121967864587228340740923993143053719299667349213909903522203670911506071124226753119430151040485404405581391554839083471012417285107887100220318348073495635832384251994318725591029941538633394601690168146442543455800372576556951708689131271580610956890976887695881057243923258682038708339602350093856780492316340939209239937622606450380189784555927896382315804716342664594211081492175077970488606553813969560457923257902570023190712672830932820981421842226413742213697600119614981495419126159113241539235213977877576552147767060341895836115282302947800481494314447799067981685593017149757000847882749811073187341630258828199783114034601778577862889597573548303914160483669294223153510002402394817985793093092522533130833237956847010139266658264342629675844291171109568750873689961169028983085651043904015095600081346826789530000023352727947820170587012799958550976142110066877525218556004982747134630779274671647780795518502794813424757937558177191743951249358413140772374122974462221540282749836462013788001882012923621982359974394263591030051931594113404903763372164980295232401312477847046499854997150211204861940607289249016343584794594142892064076937993259556050853260416124190582399526057593999459475713150508383678482341919740222470225052586603091826692452693136938278381526820543270550911754241541707267672431597898228061917331293822593157519586157855241375247499005007558946105940905875909291135080947883045005083573546318202554582826789102130043045344035760545341771814041221036032721248386810800254551222812915801186603793596946147032948715133370769537029337721229053579366928222815166877228930317666728327637585398636860973058414581375378751369451180682882238126699784684639135761406352606648361978311940796173220590019208187432022761524427224530213294010969688659418203219631372767175866739209997346870468572305366560133504931560392135365120289865732388963435778683081195604099618719700380588385539516635888810615961007243063126347977463989887860854785047694743234214466109883145823042412252925058283964062012566455405120036264405162731272831717896711090578671096423388755482481238648950025322336406813740245050283317463071764302591290533126021931008195553527066968417460690405508646925938699047573760942464895291707017455989052838436591131553577267194311223406469192921980801603823396391248725150839474611978108023766723490523022884210165482952372026330622979472558537251847650960056940900269902250731792833626206161742966031569190473869927655097763141428813726098280105349819523364837314815180827665937031482681059206376210102772630694472308106283931323091668660822779476908679923479582904271909716623054639672250610813389503928013184386767646868018465608038964316695573845329139988883244690478462820391065458425500663133590871457261637402284686494969378966674496020678523677150697995319912262162438628539213946373242153598073725729986939102558689651277056692692581901019768525471227839824999019999402422134574948899189384730171292544375698232664180595984761003589005967183379257255102466436327646685882016083407581306421205809115275171343278935064983498355514976776866087708134382240406653315966741402547864316786600237671493290148383149401085169142493412907945565391885114488048004288909214981798008783068374104476820540511711873246019228397119529656123273919812683253042966142951901434667880411437116281312257508952606849170983584466084600801703464296668792342115519337571518140121647477197069227944894486838077843984412450647405431354444888273631165583832029557071396325766636009768141030937335133222399242828395601593487018344817225398890346883131407568425463981231986234274226502531377400636137516863033782407403427183673447885445690037288203931393822768621903789536319526816595464500372876050171826252994606191451340668507045600196032947132029420262842359592911951530602033945694455162637989762649555398279753574233314244185835792995214276904143802856665166826066117703816792387772058515229303862807486838590862968391565301966711211994772219609253256716494224723042479161597569161141850162570368219249820699908747434023382193041514539557746143945291173451103202909141845331146481801936442733079505239554840827065445327569312127446562437116800510379903491204596267130517643100054861956393858168461748171113939582570652948991886599542775591630938104508834967505662094674833467529496133092579381315931781718893604674365183364784411865470006243002176781940212039501085231239301154476684501752752099064718321502052970479719649274034313769918367322312921428882022956536088047340756975221451048822856535914476034984828028002075843572183466410980593891346706382012608988852716123083326438851047906501249564748904128060726516645335995699418085897730383389670585582553180577987314269908711423255129822376162245904449135029263997603962105990773650033292641922386984291261616243773324218348091478822937254393317731174328695739233810534411311931135684287131897160623202916485487107466599139162807162795863624188285928224203964511474718958767172868792114969047894878278195569162986782440615738747521611254936757817111440667333830674212673343951444527912842890033500428826640740943935296772333406150165991981573102376647172073713438140340219672615744901269949887221746415508755511955600872473537165407285242776546085658298975528040927365157674002247393678114981860575753385766445136156584360245696212522813728145148771462981853502952493163484462017856934250157897449840125722377944973223685669582078142992351606593206189385892951066619375227881156696112846834735763072375113754728957758304736976313495624482705616677224704389952257721183680361337287400778658781694747285760601591057553427614189295948067875551115582278452743874905017994347844374410635937167155624265870657692495609228950015872773891989434355283368547577825335515584398352520582499047742762428808453594608707232706205685018030950931147333284495685268809630501661112889880385089049482965535835452155826352394998555618933046178998430903057039095710644689461556303972867421039889656714234419630901032581644263625240777798924413264641840950580069153650408355573621573064003720155551923863844000958831847203602972879635863293242184903801641672668781736914240129751740771120665664490407615618897272747656027784494559724127140820794748753267852276348330635480415963830714847279588714521401568562950534723935804599003499042153972465824205539789353391225336615297652770325886576861201635090583139586745784216162320570232000998001482954622146527835395379363563726252141201476754191142649489138072154003378519576535324587432827006501666821951009129750888945727596324831084451574696150448586894191646743761120830263418930719684521537588683043155207313417900340499204012838029787763689281381842839793422367099530054167337366327788003831312143305956969867018560167088962603175973857538788369039771701049205090966973950777321005564327495449556452967433688891095179533467253339135773674187267426305770253701188377811224531325406467097972010006650439564380712391076427851744512241332064861616857492334380416019466040088325647854266790596678056862429399492397160882293383680262744530632803490749340663574560818386825198273065249524911790605454093491970787238410848519644869398160348601139477204985628154710733017991511972619707250273861090930906845703393874177884428382774345957403000795539423022858223993616301942061591349124016544708336565532324943428860343292258589221123684004729976914253266099267046084540087422439087696258916004538095397284046163544648678012840861961410837480530774313945729866811045354583582805400627548248235131777457387039060587635978597860430390593822086967496765304297882309908678893476313058127365520113388329856838712592342348401373825199702065803112494176673836769992504145468415752549696609224144573724823222152212486073590591619302388753218356912410751616930361450896679589042232368204924237316411181081200473060503222205022155170019253689018935741186746874191977370844135827961651237180596396214934572751305011228019876882451313746428877704613820814327987225819090479517711253496812868066980985640056117028884232393146357789748358015051338634922780778081690122810438286343493042630984272098117751587390722990940564449526305370642785215541644550953455140760357869840360890892523216068761901204211417378353021094256007338364050547916281631652195172706009049918638129671868413748024315190160022772142538775618091754703536610991001192848933682412260912654459743981684302052786603489379573324673046249098925341041391446877819134635444530955842096491987527030851926598776677855562575439005602500970307250870654477700831062412318598460577054196164351428765204292741453079698734536143524716049578338041023963501109783980631021631334483188745531637173299407093504807256608403383483095719300165152269882483061352655315433945072442404967241181282828760749113943622988070128225002204508820302505588445792755617144407493423322557864853023161278266939313298749701271550414247936864597781214491840324008666760605115549931673992926632597084007017867359876915948290420656628676153286604146251876179248728688751569064978170465394003004069298776099291399247102580944535486050197544781443982510273959710726458987468553538811046308626788126652919347916556267059785294512027701927629231099432441905941009362261493370251132566302716868080671067845189186318352835159462640632228475053436303455754142357489050882270994519758053660149816803555292860215646141698562119855375580755227406654268257124588021976312318809330618623395810541448178204083537186696642745083570772999444083884629725459906844250932630928845335309464447676958867302488749776671860676885004023142548039750584017218843676444752087568302596345883389199445344855794883009959244925874399339401540068675716242461485668940470030431584506217090067712793777898209068659316084615489915013890283657430784126697961338886759976654594421075471397592187683824934801860931246618823884747426923256152409599527850162146803162389305179601183623424135298940594124237415708886041304064094144072759949507067957491355831493629642150302404925597713079536712990843894181032347772407845899483195472872527622036760219316631295695139814786178579043865882030474941913346405848666909737777374174237045660654165392864024654151916646216020271619835519314372141442489072017453771294897657312925129958006578552441377310377135719716253158358513195954582323710527406230673983424719787796011710927297643970874167137083724808279338265980418510317904912027850504095235427743905981065163505392398080123157667720178485528848846124071642578710318484154799029557725020292277532155182160037828401552690625711225475892109396500997735820154218338544558250743538422225511832152200352646668474276209462758536774319026921278961606737021386381420032495703938596951126879599385654735771386819570325567974221804328183651341784590310889851921842245289322302226385262300065424053499499409146677357780798668240343138563988113502790654711807997465453853964735022464546900015243398435131683165051164994906401418605179335037649946557760164543693319435929916952104854479316718267996837315679972079844991196242122436395212217213240158612516481743819788906178050730505274660887511722568642995526103750008990450603059927513398170114534230221288119374986362112528301891344982637353589033774428113531383654894121147955991800681089128258264970167209799345587699293009755530667732276885829400681520287838898716577099705987066754423838208828173705424908963679025570507346836962664992769595023787912842571528329096535670399067984404598791776192014172801200403004548815793382703790860814684257651273951196047536686061370871973672754339635256984124684702481738389335298045169098526401887225856968281319119539296056132943548606064067233287745316406565878055345744464778856339080447302656397369086896185860304326361251956975626078187132803335883493542818763860125886152286633362673800305311429957126346980052782953227440963396129939967028666270015486325312818349445981832959604121119396416596925302385734926069157436023450415114054115420172074407529908560738693724623018850002659214489432785904157112090786481724473827147713043169675322283344712403510039710702864274558273590840495833404871259672651580332574289010384074606425704215956819834663896484591116692825509600225758645132322088084091649943047869719878289564591865762583536090491641973426286842175763294740232528260611936472235521708331777801021562560542204862886301008931273307494634631071855646039911205952888408334564179049552785080466564587498558686617208970749720866910386602663235203608860375327537601315340854619459245901585633401378313381947360704085110824842183129785404437569487364080077310518454052714582202048560823918382303670085080088749638760117707943023248864168315886764728310802060565120295403118853639613587835097142139370253896981578478478521608426804576893401111024395083704068361117655630117577751913776549301345740634705119340628264745683623234632266170471323754453220970972584900884408826429947327614280401545430826615890252536199817434745961471529077469552041721051789586820225134039221020510161061291410676759680306870464807339828523980290286405059071170504945914961064868845188281930592667832791635290996644079404326077839248288578585780343516644411476244378162744921672655409880832547387414946743215776762189139030147260944951253114049250594348212961041550412281464456776626356503476447935091085480374310675466276715102306864225200981421346612138393415337063266606920561211192111347480804466452575893147455447779403312969528710325042842133419238732911373347178503119786225426546778295235645142353936020524399940368674786684519809143378760094930958206806580337520077256519283603869966787513874219178453102564095286053861523874956682189941366084553603257758023801838527100006028200468178840127202921488258283390451998614352385652082569913392255454852641524543929868172519084414019520293137532835058022805865495934169482760655987527474618404053168345839725978322481774820002572210442804524541445763461678808369246309263129644215282665601365731401447886652235130492063883734583957440292789058875749421257465642379030622098876738008032539522433179881451553014142889390296386317738882838771730669591166280527248904977207408821974230577433435786529411318501877156252593033474326967038779443594481025670253925684725812077205322670547693794902186710874347366772978533512865910387960411900891950409699017442693742580496757705683609010107655152273336218616951597616911668952019314158105619617716652419155217433375697770789404332023944684435316774154179369903685310305086742157889667624032046500724786999563082658065633216662138175654481499234804350844803583462140862473967510865782595434238778954529919460424153870940060053801672557556043648751519127606894984599829465158436303041878537679666133984057594081503800723508004720652884031916560084966171939591939160846703956407214685098616878173373232376854505132409568456633644137954172772845483424746415175401096153455123723554748968900557798534270200583467536199535410190248178486622044193382215246892499209779109842272905543603952742980847676561123666240874113917180333766559320140383461797639384568562885341442946518407879327742577682457795667909240577615936273821830199844529528508264918031860494672456948799791026776059467019715383504261611719747841954371793221308294899316520790456595999268186751327902713503727047132137982570594875060163576733678369479681223453953035063353732457238776560536654643563336463802967002772361196485900594865879399634098818475225671288913280379845000297926462041997264561163197879501478309633829302586147056336093162020079554667950534588448804064908255315776498790198510196070599294721918666283908154150397196996173281697594164066233066254988938397832184781512256410541588140621921054037564952325039209431740623049405237782617004836294886059889543993157165782031944041865407215472911157364887786480795050129977854852982119396592347737712459035711153025581517615052311438933974965954682098578857614394271029816958981752887158943298623747707753848209760656208618330336530382289736885326853803768734651951149744458486366961990234920034826304560716723407154918017320691794780367964313792738901182639623857091126893857800371651709982340148338365461609935602276818207481957921492450823399029034850842429113280538131052525350810693232855202566181240988639008341450921535277428962859431025777630915706445678327586765546556019574359375734567712579713793818111594293040471960749727419929631594020693642582144521673604190456655955200857597212336457648813292487126673112735840420677923006020121434985682961030585920090118332623148902089253183879426914678543495251810000749144143569781768686005889910472905908691824386261203912772407561203775978276614100637534225915959587836028115944183349635621313238241604115674381879988076248552577294576769733962212010670590197870097667233727541805884127997921479821480002102217086273368903285743879741813464848032601383417630410888941922385887008104492705791407151661034341255913315567042870599944957098080269387507958762330686386447392731942901652205228092117131787287714538221653003573637838154788427900691100021460343827996958939973334067844124469521631995739905227050750417825953700389280419388984732991743845279062236715773915864498569929671884090339617653304803513903432239793100071073712553146962122366968896538739251297343979871908287695432659226132016072006587351201942541527469520760136257516802629123663344528921178193962179628586939051293297838663058814174802854651192762797810255587391779914257580261966241936045469928128043802048978589560673751570453257584897910942034168277349479273215064949371303389708617278184663452795756635860958600958139246938835630059952545852181836931859750293289255314645431832454832117387422731974224306016358615689379598138648600320589976707072500061920964588823932347031153401671146290962606348362598667884432549627700443333714974079883835366909429545246506362547409488758031746942517717564007810120372390324133477062452833241402167276041190544493073737787697279221841515047338587383420569861796804287785741742722135627725488162592102115262273417806040216702078148925713151572869847907661975795262215415263302995664452318393666950629405947011392524003831194977382882083199578490351295612766628497671336888963438295887608685842885779103350083267109782902050895805357853798820081037623963980609715989126981422702851579950723343116602296449456000001981987221051434487893214813684315047729987610801987805580133603703621126011099287882744059707173751958600553592484537292635138147024907484051836111003186251430030080143535333788678684990024457704054655478507442605532146511447142139441743266868956556615303060675225254595763813856512218115240025832015902058052229421278934639770314722218744577717671540948280255537612025743326476604722002737564772704764131611901824889783664319435115647057456817878689111745345585252241956045186514282536600107164207376246421617907307822394587482204760241870349990744017616096954380699954514207080091363349123870707493924802670354953904470842540775271239711352224911165571831863733568271433121083091325801779697462679149887977887660485386291441893588986250820839899715644349898875193827819618850274017381808217120146070674897608523693178648582512383391208947276111159124643815540060189780310585107555842028276820844890486862847222033147737041359950364623052154231896020790365374227727113813428326455335645801258815192617852365510920324703509403527602936987272000152127699104890273059173096196936153240402390987180790381621982624627099262074225446760955098833994747343368894723900557751379550215163940387554393482231367801485355373355142984629568836091895923417713665071425862341141715448604262965669513549359068190285731120656261167031190407687452199489110067735599494345711673062018492275363296774264036155936481542885406651359065408676205133967600282801417483976567218263583112604670405948561354507563761539463888697107539093342451201423872914683052643102827684612641197911912795081059153495001147465277840709701773402442326424933387551202719474503965382728967190856310118895909663854799716180775553088569299974808608981527879565338343869024528067400354442324710791116244835851031339668417827425358579418797270342260040404692060541885482173176901374074767454376023033040945877567949439416858213607436408526804873388278005796438136549552280581688873626226737410840080839403994257719791363011168935586411490047532906653018368655153719070972915999729204839182664994157587323723806873220477649681158149607989477868945789498910877728914417441625034525923197955580158557623698115638343512930276059456545557214614579238269464670712056804806104879751235843024502821560902005548027155666626407107449081344832634729689297256541699083931498940736996049688773009534622264840400123388404993125242666383306420794334283458810666328186925792851747703961735056595184526566617370911814827689101019834034210700749115362974441973467648587598208760962328593569221410244545960227366488608306230489403830273322753705382932385812270866725933651384685152989118980801226761978185020569315944968723708782684946844315658258253197724263816933918645981099135382164363669357373637847220167547030854850289666827311239413240453336979824132666800230800183034784751499218115073281412625181863646578871802844753579699905941013555874944291647102957851540242595260415694244246617876101746706654307162655010703866693368766277292972952813158265160525232879085433462459769074399115380195444837273374054038307871655788472678376340527968223558720559162585702693278968694822670362437448342591638439548402147720398489845576729100210634156784811355725843670781765193709739223462867699608784865024597451694849426337524597489346571152049214328590425518488778054551645233673262113303935084076500359656059452387356791114963393739933149518826831544924303880321213394603847430922216869019794989645285095863297730879570457871068767347393588569145476533684286953923680611643089571822068652278231577392143837632652985474268621625755386525079360934888899148170034218920699594084398127200665470443075421444639733116651451660006926877168502232377145778810730810750317649040083200541341234715926199175715986568218468067844478315768344877451683272293203349349288281174279164815666256956419536374277900835141943272088397403852228189527539877140900356887018308338325044188307846496750875789148170296667083358569148774468729402007677824053627335225492376230894212746054509199451552248944122886403472347443396397139330582703714568138735981907429706060744544019563319805067392301692992185109121792951594335218476620125130050998792813209517199722439572626578750107922645509811783238838299688148154575605857147193100886262172086841291373238487828800287932519956486588611518143195094229103456748858444074635385854031227267676596387648375409516010859114489528556365812538809318594269054149686028956988202933154408720116642236546715533036052765933925115633274368505811793378830951690088142286839364761234330382109565692503657921805738359950761547099052511137801923635792198747977983424345582887289218919035948627751589376608242443958742621815600320453517107299697183070704866476721848799666726838420021225080727665624788996142614536358285323094468131137456762643120878106524654472073460332745143630683417277024205720977737111976569270335285907108790434503605228132468082395062275776660828374269610479372220375319969495893657573568700987463850620372423661427088478083761770974945768135287159880794032666365534608589096887749851395265811043388838110530325099121401193738385820154593426329429853381164457042847848008041126991995633732823065741436795450677527139089880105131879384421388624636470838563551005884890895632546793910677413219950727633526377091677083388447565250231061565732831072737620286975003452984963981910991168926713932753934059230592415836805975775173099902953535890258025725251187317672713287916923972754474854824053791185693594052854346558557748329513678091558936102904023954705265238828831285997804544690549190006264089171481573831773473028327566744827742777617473619070687615061600921628772357021756672076795371160703420570312034283261473908299777197505332711942727173420548662150065462395546120757043115046177368828075989199432967386250043785747472895282440278906584519106013560702167900517331040616000428724431250640341239978175588888403499656225289532283227201493441623131403229053699366836342268627303042403292085149002271233092069518024223752189159890299476698399050328382267660480259961550233818002323705084899245686144478595243929425620731147878004873342185906924325872382079871588136109397689102735880052216954270377737060931622123422760926877872300292683276734883313972853748843557829807476145728905472042924665662411483279166333585917483212543603534258916698490866154877347779843003307438816018824558847706684158224395668014354796511113245919274853223601655991566064507728877274539901060581525918526901963234762214222086673237203378624892381576128890640241000192577360017171972499721339100373396668992631415957316619876983640406997796376662904782284475919356409871083621304875917446345626182633010280873785773829678469089199259227113809504539345914745545387621381506129639840743689987340068256712522552245871118846283698492956146763951847390206000842522816004642634784935938799472828365219107945304707664592971400547125722436116435735691690279731642695486157747181362198000405493625608825995923121413699845572807917191060626746697483030810433095443925182006854341244523649008551128819092850015301789891108644567566410943146576332062936101230969033987057550069150869078848212080601183654083851219401111254088991894474701099771383629362526392240950031876854347643818650151461372415585598083095460465406198398517660584993789943657181952550132614518532064803527200505552707652757104209613349882510095345361937781974668163070238003984813492004619137211796208241401388128333727220480141842964533515111286741944689064319896947647545714403926993111303056580651908487147075535036090360618297458913792939904194903047474548453252430329793399652945362952648197670105138241119309594687690218255193704834009925861928008425636823104516332799580383861887229610640736547752542778843652166537342634188371395359016238893524312739292476595131029823929354282596610357647190875795054156076094306175821313698973780725851289770211222050364220090048270309770901769327450719566523671783078441680795016774195353448143100628833964177271743506845094878887815646448819901319591983984602695254814858786844533371172622361526670744394126842912888837341734028715319188045760485838631450463295184732237146543506182331507845792587226531749328611032480925167144786991525493607997685426960676036222624539684189507142462698926958399210570022899410124676567591780203297127113203622712284297066168702922492826820319900974995624738077955006663873541992220646882972957217910671800146443891340102588969489973520600258051040645738399350833343115327699115622771688761744046881129777233761752027336328055535257044702816921224862152853735328873714821208470267052985649403897133210240440225647694094953076939794047204345279708141660593585961900217556357688788363972448433411503109989913429007017849836734234175880327646286933059710756501177172221054297631282993571057699282609669995678316808888795613538241532775865643324122829022921277986012378148830920163410764696507705986457529497561884561561867968735900824721419563938827902748013122670842345988087766203813003494045037900651267763020502015971117875579491206564799759128454271928476274755147773530771111060015185439511053888375455340088416996486917553339582922554238591976274509056781052273696340882857071211604675470654861492871566499424386995783035622789738380198404694616405929994231701397096376439642221948047240521027103591257312443198902302546409909335546245572322665058449082618749195960727224812181289113149758065753738338293771698082682980071353435097557824457353503666948037132849882291639790623974046383783041607251210633453568861360852028619629071913932066331826613925545853108496277263791638105678597908206443134441880681833823142006770743229813895744740452829062790855683823063340413437104312713654019721522296532697210703915665870272047801300060914557425434144894177370365634220559673405323069001792722293734811135080846631319796687589184818376181691617130659175586056318329206607936651228752472880622954936683821716373501680170735681921935260494207017357867265451624089535521332637664284517454574124130987237952444619088739537214940128481255672012286998515001575546783172558483294771294230421401054023882624332845251583202005298372644400627862746487657905085723111876353429111544701958616745674316532858117060755978303464306541290530443866426413719192092932976074361664161671695687261291093932040307189372593243067958287971129166210584145966130444476503668720031876997456115260679708903256111387758508968231602529296056595601851145753215481271668873764041515354739915696076433934016682695834536877524433728474476900756957477425283514259835754147633696587994903058728424628002923694451986298212215771067229826730746934550568798879973689614752357057226152065294017844236227168922842840577548618103759479330640939544703982968134404004455779453164558837066958271355731687964728791761069448955926562226699224110209767124705641394771008857368339768221456501411329967442768202362095105780600349642155961674063342101029453969391766994849704179925400865216027545006554768697160329771924260451574480527628212424105895536631740810729636324176000914865449171981241540903057092412045105383550447667002503469015606420297425639717542588303175304465450356306476017971631097847736828725323694814208701141108545695067676421566534614859497128995211497989902372610608694035627997217031093876610335783134279753343066049796892535077356223098211990592605021752343116667714423988527737702946864977014420859923714702444695706188845266592733414255314904574185324841017660843093568973732288796009622440665289120278058256423091034408467780925304170584663756697482808213853776889615041056721063453182077390819833516907474396860057949502924243101230277665450221342166147349823029693011429673601852236105438309143750224358112471152360066190577921318744983888549096356320301721134676463315567971763562989527788815226472058987549045981328165469277899362488526717192973019184084932546674808701665859735825737080254674185530368463819679600535711137649134088410362257835273240942935725113790236624279367589096203425247550999829811736707903290152761792650357192821263572765983149805310181554366310457659752097424599016529206910675331093690411801373008238851039153926621774254545279287991068316273185200665406985079106217777370926352336460297329876482861329237468645945502794912329422445805136917618366333026336121731829921138022494613269826516191820875275825286405327639312981004413563246094982993073656404258149411166107818776915267335769697088549522680551422711826632368314547327842210176292954326709665111869776869199934025891374764998466132310786116462017204683950243309880100675358403173755576108880335000081173265933124596057839207177512858171919951744477897400636375880216515023179525166440422341867135631352172302869078450607670779085040004461634175832711046832495223204910933490327264677769308568050218828067801138014072028400207152633821927511674861639085708247572564289133282187691097092301258321209791729786578008125025606328230555616450404302249239520252532509832784618127209285146520879652305753405353558990189970893819371462298070576373793252691788979476338704958321934582143543207904338100460200523103827023832676046514802977330062967427928067082128178051743488721034913052175118015166408443175219313113866616682005152137227723676323773229131192094565452713581788874265725530930147724033233360577277089800339526519824275417455304921695851236005004495064408014866717568917638079749089125235665199364112924146076822267289891801611518276992445728876182316477081114451003460225180149628112915867676491003705005776515057554367052299533938002601755461171246636269342160551273562457276055552526003851775164847614077759546962015358835145390662322374166758127848878324465857067565858944948389443954935953471942961227046985353363548339027069168387948856708678571471140290295143016287530480680429500254638938594586435487079746227776915745688317246112726207377326034502520126122333310079886023641822835753033086526509479881169230821937145107528039405127730943725900425622912778272817250076908799909409720459723790596554519900193538600550045987478190999899349807642229651903853677316076550292017207225188677607935495239530814272799026225255603491818301624635841390566435176022044405785124498369793542567496699226326682552523749328589116167863055851352409778074100208581271670147412846883537184275172107692654498700784953141818573778672269505302927603766216558346545186281188723082881547862921342951698324668720869411938301870946873950934598861917650758187078427338930270401580200118547735393374044256392326461907440352881296255799900667242024469180583806908453246043873603936741343356709015452391440762946277033585679097774960911319669264651698607105709427183317858119376637876004345201741016200268813038048721219334448120904144144540617730910661539676422414318068501189311885475380744498126044971953762906754821436827209530651567837353108059741872521806654913458248896664973104154383152290495806199600366958288902639443457810670925986319882337779112479477258014962775763371277359882771473007516076308771886264836994208991178170261000994539481003444463004050138809233550766594601134831643758120286524732078321195405624795559069453539441591097079323233898996437509581213362064318823452439777708099014212993160951261410925091027297742959595359537153158535757244293461165151064049610882644370275595754445335261913558380886870275956770067948171058091649849329197739894699008391638121225027370733032911377322081592932099636807644301645200941385380321908033970158731494904921655130254030822679379756154037556369667192537839252032785107313444076331181298097602285192223576174249407208442341111063484405354688706310157062954505393111887365563856522339937284388941746063314234421479232596659477926275331619650933969073179100097288970786558387433792074307747056393857243149201380811202165286874452475622089840010406435440988554803634819901137221502205702072932362499268447199900094341132943169807589408162203910107405752306305722792758516240703457896395980456948689774166030512855211538697204168506034839585414362387470456596665871799901210642383654791481798539742831894874765588195085346348644906534984947579839584022570687225197322088746438657102438049288362496454292204805206799936439018524252700152656303158459902719333077918337562486711015784251790124010589470407022744181492216161288505105999619518008435637259044693698684087493050956492505042093306026328018140653708461764955957660614107602217518830671922485715660144447505994845596303862862301706796042175354031804562553386863021657035122575684655008266463204719743144273513876975393022143267914298779839866571752353611985727827121900588102692909482621910565238653712610907392455185547720766592994759850524341986174322592915419421043416499372178129343570306298200261514114853277732482568849581993829887981075399009553250981420335123224010670696853225498407349060668453831794202154855193699578400169419531091620621708537016762655811014862841858998546931363125820102822115132582249556215704240360219282647072058024702000456753775237060165443838435425889458238361322854260007068376165097307511433502073490414214097135519325393449427873092127901131962011673880452842640367191486790545208887334319980930591504727892648554203713035184384882665858150189426772394699473347625173820204065145501302272432399340497013379165723206288688879511179943413431582407926971172307500951436386819117007585180648709062000346824220830097748961629988473835781150444183494192845421060137709779141469014993711310820282334355768766617229467635017340391755768453264053532416479095369016565755781569766735936787293027015263932185451671562095628581002701649837347699462469979334122738201874367939074483376102542728940866278005196183697744199286063043052368382282720441031664181786504975038635334000602489778427770493749409635962619816305102543746752160391973878707955364718640724403311097141049729942680755481715974029882681311286352091822775750282600673687393064143630070210105154357674333600165909991857082566921407068627088520615346882453392622161090848342253698972741896489802384226347016978772853244606716624389899058981518170580023917684210286662252827691646255901210931725812489690396582163559089795910672863777306572517581484802812053373797965404694473407237100409948846004706688784301322339695639457787211716166663757132481196917552882045508350652453770388499462450074356991592773134045662628674229402719122685620293471265842693022175302865060901839659489481391841187548147380966867218661196973955273743494300590216574698892895650676676253032473173020344787124911142644023818533171866078801057898193796289706823094655046899365822269002096162080247371049686062535588624931402284033199770877770487081884576237151850224522589176063527976598726848509680434896453195336211549524878143375695534995788030524043083264464458137142951495189833471911636353194686730471179578324634037935799254488730722894814589458465909248139693127040468605642243184771324360609302926700086925818509356986539481641534637500874408273905604486277993652843130084483723737407425008442903435992233079752215588211114534198196500969523505040589609790244285403337675118567425100668979343881256971541292654493317966601332894903125395980637830902889200103075012391896574591435161609295624197241593356172615539638299896862643091688385400205816471569794270574260259424003563924501246627579278913133845515601164694609525291646076007149491304840670418848474116528418652156642206710398512741875649032605310693282678086116635834807131571974808197254448873987105915562273188758696691950221637001334877163473559734580684250566568801014251027195850677856338345253612163534673230698948905813199104522648791122830583141750002447930054830305394243597966084222469927574265571074574071362155024478132893830951467361438885176042977689515861753447047379288236485797991906271517999049359677389813926667761254777707076551780939125130707934665068974883507968367980297259375843645142834105767057058116117484170821101801864553664412901627348744803017027979680209337241628591039779772891727774205674595663949954689066660125831537647954795858861917903515237406759087495335332388579954236880670299442236019147772682573361604567738233050608274855434613397364268160623187222893700530348754280048671954079498627347399541932843243668747033281320345260899191735697308848822882264188252624066881447721446450482885107018373448675771400264204461062644256686798259360019745484541094240074566084573495325100307533775442777880471216517542305664977804710740606297029484543231898073963916098282465435493366509535174036422514836156847170933116479375195439827621219978272279073093730462945442724384946779444028898759179804796487273321457609187506164221411110867773925790635367373072067572458733208574516248851701019304256690596332837971764760616254490534229181147164796071331167638595763913726712740217004092575281987214639004033450267206001161703694086281441097994640003460411399185510359473683747566009023492635454855408126951948283714497127364138563600237017466541846565069664115552297895488485687501168606534936020110583924565817216357361035518110880011860889543663448522658759316471409732749417149608514132380851858054228802164123985458320489795925268939826799051942441787544428982427908882811530147908934949049241985344218851870590954873808757688795184026393576606558550334076537965353984211655247813103000161691295323836711173188342015639208194060688532978684765205042560076171676548379963156053010598036780415983955059511686900753494368154438468710090698290683142970410808453122925460975054083245186502505106148843549936559270585741820801139526438502031153989981029100431115570111093627089884123411231043667680911939016796208463674965376761982634267939339087442511641454074779619010463068708096104522521305475793849662378509723640737596597484439692845317207300801349582634963874408588935630820024546548143965161609736370144360592398519208577045827339190881211990737060222139081939029238025316358105426973614027860522335950275143546031390153841319459317616265339322012538781533587213210118460112921347148327849889096246797923822851379310506781579291033135722955491344897922566584151704874187098163532557966257255272443866432744991813300180472806754801805424983553317473378227881717095563551863669397759318816765197242247016768640058970958545947561752912203777978906036701497235068197144934899665043903577552939027457434848046370589329080987286741136263852509765598577451794568519125345856391569763060933807472027725797692794099565363514017787012746209738901365624609173381048925016078016124874829224862482797878895475884628938197113273572130872729034159218213170260902802106493413308876415840476488499815905406768576768944316551815948639840108880405060118028850362040993287940192425386981798274011944563480518459895005218372202061878931706092488275975008012162911486594549709691101721382036514553928159551598794908292483147287931614285024342670569653598912763122415039071829385045787681544729645196557749628706319781727099848236987815642483026668891428914300602244195242448192994563586642173053987466539812878080874639086269478226455889501697793489614888021403719833368096901165877899786847564194095427122918381893899254484893283000744199941615666964840008583966174441039643922493847341597405150532442381987846133712327344636452732915161027188694184554696032128865858281104226266232254791888241374001259560688356847675545981262928348571364175427567960540670585519735517625550456711061318543415742105634097527425835985644654029284995875205317500795391169406106291070085902111427705857626814978642537862617757501278025237825180058765961261971378391856223749990085801489476048793375065469205576192718180525457797115513636350241464184639345086786980050766020278324197841165910884547768626424634369601324984464893711313472398056128347378811369016320594778720033711064107192941863851555114975745566138494375544436212976076256069996333816294449481306101013772163104634289536065804233550301485951469683498891174448624816194334854413723021772301172410370885206301508907430425896511226495189831563236361040677536619314798892480110475496013965110740797577601272180674292424950698842044240859522660602620682392162543290091371018349755185421692481178224598105985298002000002970239400231144117330023560123146901777221570802455080311812127046968668406663801758092236701149208731085682008858441419288183789347670325423182229328090912034856961108107058966114304975791727869159525215866656933058449007707908808333982437300359066669747737632025483624923019825056719561728387547736508770057002181021489613434152730130646500501979532308910893820493900460110529238135232590928447882662341233983074264082174583970305472450900067483361261556448413115821046624984712180129264634033753393562436684292955132253515708486084251401227225139807125281177791196238903946501494499931458952701243067207795112180534564686277690814784484965665957638990564806771402006328800643320273461113057602174484635511964292038586022479914735209242077000533564587051117273341865669056510498374848163176018078826215991003686083432304182266877997154777717907967479306483348691809582262716779770276164006488608901216908067858063596248178430607269302281016261355110465026701171632288498014049758056273880562971417827644166105872917115173673695800454021975717664647567294480368790658771124952382246887250393723541118512980786205445001906757894237743898155941949716088123158737410892700901180976274456732752066030629390404355015852625090917020640900126667157512747641960318922717623494189132698525129736630491562649104477853784753557763974894412268227083145328591949078098081760839599462342980127516060244475693868117032561932550243207994126201806404374800830551175451431497133912837040312165657609623455022114171447968952065179814353583783440243084938932856128623423150271173478507481619388030609139365006225601080076096164458370590699506917565040773807354689709307709711947550913144477401302159522227706504386114731112179859287351438862318882843890634486787626115602163922691843208444410936705595535096171945412083057911745530832191941187855578296517432511296539779495952260386224846252554049795454950934058166503143149922858458645877784906606994489154927206003730277535924190631834607178149313078381712213565840189780585348823445039269059940660439483439441683467149837726142988561782857864018590138083574852701606409226632689647728493822863740580510589719145621000485036825287391529360996096178104346228283596595115854786924797923808245057015704670274259780915689538576601670086213504232988326042103183254720140901896646455559423439494097314073826933285438181781783385492134261556291671859411776474496623803655875766529940775200066732190916236055529258353911315003170193554507372910034479510512931875715899889341050277032438770081377774581418996290379267461517955009439780914827300387349538267206019350637001153957851732651068266335234799106713032424699591062743770178151036388162660704923272378980935283679997243921730177449446659441307257014080397934516501100398296489234442053528518123285233309128354771290810939422624624606878093494072025540404615176773493143778870943123904106336747387888388054130544045286271523387867212241667497315117062041249697521865880159721951720053476838621288525105063755710232016671366519755872501746449067683713335178652996836777357722110808274447451941144195272908961681331777509762540107530532950739507850638435873341087505873012872667576257093565916067675260707732467722674340588278568139607744154095420452876210729565351822011067911641076770821143309704030655106213122962359306340190879287541091063060105543065283085322647984154940908656505363888856138929423537895404707589097536279934076717588822171701022766035676237372985166942484343397072210503130931055955799640422577093172214944986574421808565590971336442688303308813145061962202425177956536679870172504121835420235097134054827036500730639218138754769751517997140672719127777941300027515486310456622660399878219909745898093938233129752122608045667080347577517777737789705964964617787034551829768907657507083650792434119121126766060749886433693089182430890763710079285437272880042562444768144492959416786164225137883294363828725888906176871111902371305240559849626746142199353017951964397432296629142230161691535047364608121068230344952870607392467029391665888653977376988700921969424976270518912048576644549674337151011397343946401505385321822243091339775437951508890695642307209622058295627562478355442429183237902934896101747952458162265340797164696022417050279715244453837976308757593446475244588200250965906292503326494750193009363946718965118074849783184172608193271594055800533687056901886273536153278239440153080609086648910069177651383897613868014501479455753473175258876125199059542634486647967926092065681391482340880096682744605923428103403552019988272388187078500635962128397631184371053297597756122104175074290071593371972942900063788697508820252311747582484145877518451251024566433603248192869050364994866391771418656497842579896507428492542299251026238737298988329663940470725160264862471246057886350857563039654140851694142343158682480429958665353031332159994586943992124024720693689358744543239071224642548713300924993167914341537907776985548875833864173701823253191528423287932509601997007192160662152637245956484209307927786797508731849623532248445183476071945676101676419138922137042817804269748032332643107747701331301405032853108392499748237780961089507801474499241531771479350529909977202758485082695538174758847107077923722749884443562892975258427061823431290174161684818159391637106523825012187257057201609761903085471476881897961303400939113856540932589551628463722575891652783041254484053306494458234388253569939850821308717399312757859590325805560198695737913807424577707674356114122977917388677752771645726313161744925946393232877252927753708356906036166833599659850098912950294960702906744291097054509671145427611061334355973546686749144183460613510120310810624903424672094648142059648689923405412053649854260856769992586631468720324137960914543216472278303072465625460402111482049308944491589361709188974593325600220810343452212782509442213513302897609768148300314924587074977573617095438890011070689584157488306039814526842488637188842377050819790437362769966516803815614291278529144459816300484936223556772078999895709486058035606947269828742737711953290672176746956426833060428278932686011635821171837151419320356140436750030074557139716667079099571629249189261295490241036776341989217479121873756209200011359552937403461964684847050305854639049490435370236887342293266181509672751901913404467891235634611637785975392671166916501020279617333696872198231882530621272177406633415423579309299336290214729105894195087091165695277324079987464838403589603263661899428457358860338455011340580647594861647518105875254274527489888130549206666982596051584267995185828805595471778165242899821616649576110344876630398177175833271553717662173839572710340600841772663631883360620868990241718633362107336169224299883617751823452950460130972459677087387188820567685250501667786036346260744581377010081338653130352560656367440418163139802706041899529528580258224872803575025358918731221024560260114339637520886553550182441643286756003063256448194435325133003437061962197921983593245774173179629750122489368177999920146325166014676322671042746920263717295688317253105363717193579584090982198235271486023296309266469975222729123589958252656975969052224138907128496591068859391495911612846998781129033681621008996356857703088672010908250600805689095991393239662038706739079123875407072816390006846717746707679416715632745879200654144167938337653153993787220782192807939827782228828576703775165189103591175075204965281071710489423170329662001674869502688053357286695377810098146041363486020085916152524690367439419808682631078672003844387965448691931743523170760599998504481163415144048803148989309011193357913087697758545882259824816153192469159946752413049941424890076270133397589481521466696444384078279738273002507137696628407804127651347510676467936719556296146044561105354979345669993688520273499447670666095586346737645521137224398996701000621156504945475265028444509015481313309986931240607796414465038524275171133350291731721349728989259356660490531952491773307851286251064586453907472596732951325216037460755041079612248914321511136298781969692162996941713428624806703741784552846971064342935824174144330069638300591238438889297453218097162617522631555169574060702253916303689231070838320561876975203257240673826516152685844623381072552786141103532873111160135004061433981322465050005397165262486422659613652169330746261833504571718627212485189011516922964755804022865434871336927510341566270904352277550780204123854071231040149384840333041271569584113392699358271532573024677810475924828885964794959924392223583281711866733711986836767533914860211346586607475760554719208580475585839129723404530519837711058863414579167723807130406484341296143489664815227595812683045443961701934770262617113247912189009468937641287461173139371512223049605666230738003031183680868440664424017145274612604483617221751430526139161220679159305747379942788058807667397897260568190140050256321386747311648129512190181146524583831180622586844493648552474751967003644825344762015689937212775034197470288911626926333402628999835296084509661393613227765493505006757706872076257941138195818004830509841948730775859332130142909944206605248320465888294960149240163975224378986875611915617486277223910280262452270121228015091844265719936623707053843621644567781225575479209018511582474790245908281398636520070691626159306834805031024589426120977490403449702689055269320925010305063070173673451404505150535344042729452105083865330983344490426413715331045446586184397430816724721006389865964111810506011711104750623150602281356417164610235051753336532322336728324774386366273867829182761128691962558739914936655565251509234070180647410490217778135141396302987703419862051031838222833306483370201558382930959527383746935708792874425968490854790174109517451986297294192325806139700080563316362379092895546693055439524298960752023035785673002766181352628825022455263889442174152690097258291548565685831987113977268827242805412065674004982696557297522750519843166910926974439185251762236459177630054082493771683842375782210894903481942910453339336669897229108811955771896214274329026630855786525931289484186990353857756667042345756069198363017125363161822249720692533136538205358729438703343030753181094334448323681478188925514045281247077988216804758846899806328977910670417190573917535562254216936419956115597633265083103981913416460909656661914335382772795714695397684405573931467410583387581319030238401166382801252644859901609502398320114143831646492650542182152540973625948458541948813584381835321270713588895826866767296390376344397114263180299857183083930332556143262223790428159202316935403541839872246511482326332854931424329243767813139845442544095844452595942261245892309262724957032503569949892835947388904455756770845520750736000437764591732183468086991904567142693649468212771392524181584898962333917663072776797050501504627603687744174456264688277267538946710831615096476061992851973623216459253397401867148719944918787104631221279493035301410514938419664033189358789107027938022212262993309229166617497256298615928043366060180087619595616931997580661686859818259101252387286982773845505336097406201794266013411191889729950384766084454801993054310088653683761227717852930706005721744806001656606283502363756387492200615288639673082022358492356708419545441325965162426607845295706716406719796693019571469853816797634619727111526994563016965396378400427254979025285948698940483375668965280461693207951261786641832596960012250741008388483883816814737003936314643069378356336190735413768044286303746772104665013910883174578837138713101571760759787644022303186797841781075314305020823327714211069398978090675186817926729239075440000163213276201089148994662351773099379733250674003829660031811876517273906520024259093366062901166949158001214298031927557667992726845242347250580556839448537658212202287110170869674985559604399217046922617689917544316178796740774670661015045936778873331519772334112398615221981852012685704655404619045167284967935942381214661197623260868262139945835402942030699059669500181053584009724716843432593253591535010555133887884933224395575724100955080841924008198092153830426072765773312736328267571281095521247549208353046030843118180961519648001240998683074227396747550018545978734056732239139189215526390581889983862090531243718370546268519071971448740194180985167472543752725997779657702894394110815127147871645573689317637615940275895260171386638282713265032166019368156534546624222488875045638779139255080244138380873367548536465005831214034437471157771902403928664804921781778033102194051070848283316855655946843809996602570926542318833025189214315958055638690729673299677176324534752326380293047918030635860896489051080969329758180521869004057191629134035088423581314054184789161188617831079623895290047296447514099571304058760665860101370638655397887535772293239698463095111797646712742262500054759281442281942613627184499980413129577413153125211225173415999667849075489875043652399165594891914582381690691706168928580834521669885061750871728725052612782991080489412001204470557643720837949028690942443381363031022987543412322365453405479947366041062332963238493969918534297292285963828220798667625657828922911542636324962656312147862538676141334738139962410277120815770356239430043677401161226773461118202320360471546127643412300334634969229496205828766988696344622014666014393025188565970605450402342127567930351476318389806549501068481190442544898558187109845442508171412027382741171414292837193704039394442974036737201775257283994133776662526034971692158752638452867393415273294538394899979086574453169695336142592613038121998554465709138074615541619443311976252645081185306347968708063107150154566256080257473766112975087978286732284363252022481774478201744273393405752976417474780146555705447211466962193657096302829797050650549243693380337106333360874482769287523927924993450780596882850399854466400640850066887165754822741089021153134018828055508210084276092368422255398714869497761161318081031174095271975704120939581399103256857666386812872112900541705549183924924382404099137061560438034006019944723463524262269142329430983344581867831729036946675999205434191151868879826461909798910749519124016910301840057536534917824217568297054300858901183133919476566281048128839266865050312830428090257804224090096335705360038593765552775392082202231516457388716805148896700789287045933881373765726694128444230686935164572062219585666713784949405768903132932056316795792170237173971493540140574442075659694872790139428512855988406700481019720356021205181801394751002424286389520091482575884828411544609062877329269154508923664725787677613791239851720882644123594860554598890478966698698894570622336831180963650385810488251898172811284182710618863937833067365859694671637934117369482314315992569637443555655167783191252591859549922089515097991385053509596722851042443722720456778253653949868705251625842047091701109169105667098078779638609722232276138041849230701257775568919614718763105071362117589687029077123727448345394881348730609025222114163490967534233514099169145949286647166544551318898999563426107376409881195234785369129879961341177546865451911118510800698819104501993847314294163563020480255843330374911764954692103304414323416977423967107966299163553539522636464123347220979612040108744460779112724331562678041673131912104269273163870260406013784165513323574421963326833699507137405061129567121312276769932205406414833393803768096396568178162464609871551770925427086627054906443755229184482977591517722319013626746850837542880562474912756891339334401648322396704996561019168726270975304982670657538215340295578794149941344714994533981086610603992989078000959614299250713195761252260944555056962253454630666227526022978937627998432782895024677198454758475060882037593316363420375535975297556596673960167017232983274652780232887155422101812576652744876644597606597944752246187823170773188185834955373415353326268433225382104665454566278266793454366622243178360717868605783634187335195008287148093582046805420796599760635302238397778300482209521599505501559673948009520006079672961910763848360124191693438906601113676259681654705170383797771693773200368056680737643634611329821877381193260222657453563081620997610685583508273400579592242769945413835260539246115684864514339454271516622089002821051094980326924746468573957546798384406838795010695209706766951232718290029562413814923888322157679419845811369519577962522900515427024849016805394200734700879729119724531282993764928753557849384100044808643770009112830371072441885133479438260184737602021751875646756883419994230798133856181458367314857743626040786532155117749061644503457087695043351886528179689369111808713297342986901569291497183900768234953975769478887572107835977484255008062717572808754835446457018947524984084297599908016765808955115444181871103581118327600826881161541669667841950511678003783592907095057389044025405865907711550008336985456755778715803749008540716018535158169142373742009664240804160790746137505538077082754951249737453204934617814976897357073964612311932086234112293954512842946564050773230489320712760501415154861425260934432303513405626730268651097712773207514570452778027783388989493828507944195114951337482937187456053045972138582635742622658746037750564446529096203805560026937326227902372075069789547611339937853872139736940399143805983393604277949471498136209886575430392278287204583954416131304037816921339289699512273384686302696242852503164774663086129781877718055447532584195153993468006470701226184337394835286912056722866194413752052179369615222376926442926708030089836166159833589173054714852760081747954538476125700489776280356720199530422652149595667066755974230755665054522567249823593941654513469241796083345469181254734513609515396524384217935245800625949100789226394412845991369231983645413526628593562587644563535063927740074543851087961738634367823751189283223156154635952880948406118989599828886007450250688883357122003711567508688558694450173025191728018753187004804783867911138483589497139136861771563476643338405947914168833877250053745169522584125641636641869705090022889864156651302545714354274859377744534449488227816690391679794351244613510657422467835953880425002811266489774119904834351568943887587572342273018944950715797032250830660786582670308222493791984794272804527553098531841030912817113113530065731505362690136249732934469478481155360597510776452684225350620471529449838163904966197045304499916589987034801613347283397647379818657801658613447371972109608908509913242908232924575649553894735049547000519567512470749081057197048392778712611850491904260616295052036576933206628768128387755571316042122074886387298820604661703546226949861253094986700308775921412887702791977554716018226961946029755743795915991075679186752967709907146724853402430384447773318465649311155607933934441545836127213998186078561010646178343396560954037564199701440885593852696114858137144443269271821521732030631478331652199357665717230387726474758915426653984501183268084283746416918756815159170715500211817140049390897619304346649070613423687833618611243665799399750102491500190826656092517019129129046934335389704052089064041672917847060076702031154675042517356672542784682411115751571018515605402514758712709458077455225256858932124267746511301777686319922085849747831859842214329002014168499716569003863421914135878234831532429991532301414445896141099148233140724617145581652778777100800029173804201894118534890258525417501583799128342434711580465668043926124277090953945923089784791231800812028399080773601240607975110801091814324473969003560781749085514876443705946262448927436889812322626982072631258256104651940313895176571352295297227732390075051843360549676578148422271922236366926682567598837384280169140039977064638279964095960623843688202760492085008075473319388895740562057372501223052352423238687402580913924034552520032893134177390388851947893915576972304349382277126749624555381515364063268065248609457580995528841452584459978858545167558414608344614664305320631489682467657485443523586207617568449954986692318164864292892313572028569957249165865310392293316671723446559759319371775772621662137413965304742040771953927462302538615088145679063826285952863744397855214171410380421075881928837195618454270172022094026632924862899920357576440690584574443775085051215109063306609399424944215437995524983603857992423942410646819448682249950864087947797334069958157923025549488018705468159716435031569718994200285012992461437444943552979237211976429202019611768121923926279433796007512412035221014595386323913719235302652669941102885017358199185011979316326263209459466025141194417771925098578670794452859740799866938926400051684672003007020689221996577863255336308916501673233878269070485101012801594973231410433742886380968094527491002500451169448006717963016739378764527115952607768230184869903792664420662955866761797565000441515090842737399744458338548987696762065949373970863618697669938452579483772622887729536866317940065813334827267165232475266972314905796987654648978054603770245795948688718874323596360011759637116429064078763780710154546839055466543466651047247896286623416963925356334304146486116731776203272047877810592093840286794573579599592238017560125379600525745250545801920504883169110184894200567063768887116613246596045389113212391754527795179439061211385684856589908651380370168328593256798035047594477587403065927955222315965284970080163429138411763609723854987802267781200693330899309209096476804489492122090987970979203887302334700322410641357926830370918750436228577474443404291789414178426807949217548313046544825833663475973744496543323890098129327430394774424723151262231178514252024313172999864426252731864040167803430138846580578131522882087655562440615467727746801952770653823704046676393555432868056861461822262499348609649160404448916818054853263528750403715117954846823335613426458207609762221106077823480249981458739361051177661051400852688489188084577465493191504882220265980073109183107850346155641119205289824024211663683302477993964301866685206189661387009830567625020648527927690939907944265383873868778134529848210420423181219190043335608236179981913888367066479954268766554750511354129192096913287812550418326886268814050495374194652670232693521949167305306916433720233940015472510771517308115396138893530935025955234092825441433310160571996061163464251036397008467634007973938711851900803204414053444515472967709449892890177023660630084351798297416499145294177374977745369236219048960030612893757509324693177947802106310634379092177871416156542509965798917174086993800915159672208920016913692699078935702199446464560828039463527280395895342359429131997241854979310414273199589102219368316587538773925764823673798186803813211232969857183249781624830967135394122489391417414583916170738730872291045186546346488204772109683872913737916522908361071816819710804366619615307086482475328335343986045713647896084578158404738391326712697977000256182484612691269508522068757795506507201243084507084480313092603774082162068452095728918033850928376344754630877287281102208208050427740149069518813149817770979007674757124181497808995619226441464519094072265941643816269937549047080191770993792995973407412116565205382077339440190938139672799636947865018587459344998329353200540216353134031277824358678406188628129254569829173190110814527874401710321662249325070302151636803633498241996779048421144091629402748312960336590304952323790838452988213012152528736866089850442357688086385834425340417853430593708087454822595369931073702397493712449098368953076812708841825316369077238997162712328850675310177832779792534288001259214818912847707815236661190900098965861626645632452832635240688508239257024635194055050321200415312836884736968933674640263763620139039661014035411254718905557257469546858855953505181432607999461859577145536230928940496728785129697367162808582778494093808188717612805033838405121844886203698687746424553793218838115392510234056230201168497786439568145725304592907086686664386506346174984960421497162596502862239557098133790342505846015635298477114851335643324086604123241857733838603085547441974769036343852496341358337059587361997143419221758412519057301199253524818906169072176006241962340327967168257980603514176590426848402793397468856912529028801732432784666029000209694024794007859569122057491503184473510208362963514258169601643495281786296384700016110523686990946468983564380647038775135159989876133376632813959976268384461471215428361414543007242818112554333426942935226767656099631046071530440960558013169044506101095320767291382759693243218272997912403991399366593428597083012694474639942206484495905002369596679587577977417272474033721611761163128642240808494854482943185256352239979807787325410664322002719092448472993334048098978357108695162675376745671726104166828950809819596946242668910863941490621484514566848081617436751098690449421384854520273327583026804143535287968953537068098980956513039505341767633342655346884274404308675988894981901974936369811448626188414000476200538856007943781460258444133499975634931128394369973939651297207372344653882493546831548974908265121924785511984194049181848132986072115562998077925565127579351629794544957954591768220387353013509426289922582630600015684033009850805161716611034464541641266586054283121933922484816895117288385498297574858472615467240123840676194425259744385169235126749650935736111681628573717033314125195114769578144092615037919600922516351689302818639800775016257110793351487447070538434921108104967890257343651908800037172819302672269045305815929928946132530944050264696328664537271214151842861237293133158362046068986433804127111502302053873316183050742121640124030376987321808316101375589736159100483338174299814201428952118727271054328170107560923026598068304817770850210975087659429668356767281527626618281886419732814997583107483715914003855808216412518282815561479772054769419082221669660967254454417663660263744645623354637349896001705051425133027480737991154494846652607308018707545077010081238068755077717871873438981320308549026343012527866165482344222848081751419725548259616688098896388024449660563029883732184801409425732838957236147245051932901555872526596271692684987883468349616167365260703689280238696748248318098557733670589311532174566516052723449868896470285643844086553096032115353145997498270288946013392721166224222877068715677517884226234728391837013134972218043277065177602436643538826421164336656360435769789637667056534974269737045331229880310262737953223134423065823492678667128789990382378906314437661899412796936071005573061483344829270095067634511047596887401448836483829820668359198976467929816868898872607496243075825894422912345046491400972660858557420442137339532431430069314012541206790683183367963226459634970160589031150408427483828457410744780492146944846970552135610816497908867592955010694815331035348122571026074041746966562078387391113784847367768046609000871096129735118930867685858334942194877011163189042629711213943923758903472990981913620372914314739611171766615649033314422274475081912274006055779688554589555595551671415759405431723409684146181537030682665918980297514170819690495518318469575980809914318123079194761621614991587890956572070674784413465580732431641123341327953570392477707347717728331277334717778453993904371621620057040663141723644960365684928369314299516518505704469344216651668058711121651413519180078020937395398238772963550449668380607194818283044464739414976693214547923853186808350294973120237994666885315200489366547187330107920237989241130017030560814508844753245707569648907358940233420910596104727988163248206526105141519293838341721229245095971897637074256533781161593858868952138992732418700816160416668462172409026080124812590851302276310048743461401994319576663674906932321329978113644266674325567268352581436398484766306269509006868252890046277366699161019359742839806711490990231313631740958733847236632301861183768803211709794234499206549160694246414648999492598899778134679210166059455320198228007227385825377915930543629150136620773596678749641209271505144330213122203082828332811828963393416182539443881468125650303319651729427118496872108836685421702191762950686855988669374074421366022385478075144045903557763490529616563979885814027978160474613594668240181307414192342092122603971507643240827213892204000097283030328200056148121363953138318631845152145214535757142535839527014878980868932807590837013319257777148918062583071626188286421808493299981683953157987174637431590598726643038895297000239018493720433328601085962388228896547944784061440843729505015991786014665305555022790607718891893891597395364191824854371047481579718454640192224069871743895232468664345856402942150063895108011657602406310801330477572095081503240571495372426488559844997323148534576028726315634805966705779655117515179282450787129272292314352341260145357324826722713203104617595375325221958566017848080424942513588215245042750501540565146866309567267790463873281791788088092068371682251694828968899857812153131609509328914108095395872569834151565275282212585692301623018011316578602817148965495689522160097076917690065238810012888710416811992892128989063047313512054886228962209884337765283846056260170058038363890464632062097875286911958834456473179347070585148279977856746637312482739718040003636032520635386422497597706097336131042878841524081096944092079032900941025900407174990958577159408246815046510247954325967764205546534638029342041668858361736815884340406316360496020978449180073405131757582131127072472796902560933663560757577688299770613936351334568874387733747418972658815462137714969984555180532099710566162459253990128512363664464379143677732587098472846668007427430569944125370318423248022496526178203223988461701818081757756565053811720085970454971570011025922071278305367860921779513055351991626225863030701712868800486503711613815464483586952455352864323082195068047621827264997535286391539675663311441249589615388130491722519137045823911401794167024925594068838676417068832247284279378968545592346352153413230678740295377833586573879182065821496645121070673194022191513618324076092702520584490673407220635429678669580456668567777763565754487443133304254538323975334653097576347339212288752847071697594585435894288993614492025322457926607388549729188735759381998339529556169010811898949433534728395943382867131808097374906708676560607167462491779393216118947220650765520894853893595245742283900592572594051926300741174688449128379089223993315899904477858844877198653042404903696868946024182573349193072528694988066483403547930550494036720403191522573066650261796345867822069897634586677339320159373500950653986635199733640843175147873495587818009974281728283108108083404822360819680849171704100125642322429399943191046756458855530227113122411138603950841581403302121927251162606297251828305984982618870445202549347532686292836449279702628619579556200259380069054359039485023117002082632906132093908933044291764719626349003753005106262213166651621689941026228240254658906084450448450100118367828978260903525735584760915034924414868327038843745094816670116452751455768817202828145530493366804908224339307588461523048733402032930336853766597034739073834275678554508829880613024322530605174738420923527078714672438748073438695743324305870199499055282668849673903956773964776804754532719944764721666202823076295994451429359741321556790470561348639669025700061800223512480913953914975402916810307271994274602810886834679957598754028571723779376390774990894976545739654716563125368163870698889650691528799411675227769413032041257184837638087493168505574126328493981341656365747198024385209324397588749699844481752274949172887278966708624197660255236503060235321301626767731280094079131803209397679310625910182552818078644860688138347327587871283620831780631768980994957816974862433657657472089461872893557368947233561478766519316431483493562973725525063670029478151244121055574329521628385891253090718029749552841188513842630924448338158522974316613929963126503132874186556514247346057805071775291989605407866779836870063684542531960383674413077786213398138301070752324405331374923135900583437313584005108486906241226521063403590424210187507821873681271828997844981504946738666347518598925360656727559334693516203660383105391604870703185923288734183193216005761238188100285908056473784864928982601882782438176416815449155886893891774500534866598332893015946350230147830909754899840231975411672975288505326601288341193768347888917126061705958657411432221401558176375133978795890826159163143837870387131109580228945941538484383726711538193710218189600228656444507532535681031118170392578421946856986904532859417006844710320252239727619355974391579362353896892301087657583709408309553863831504092655747477418888905273697540063449694204169663040604060142472026759327681248681529756241034323859209091305346462194660095732395592126533937481755404825269330746159316980595530657257761773517487639222842712795470887835382696431402450901686042620849711791880549725102937429367957272449156539078127697414515597817327553878172001939656407176912798295681812636306784445719274003427670582589317473454441636892428580934785999928565550646284860603131599118602625138864515719214634279027634997172749833781810988923496342119385980362787658005928867811554362114420869237186444383811616704428223997391468437633696667858438711846852832507750832779334370941750918971768708278467345582976579522823841756728335861864956131401319349094566369209702293594481014190115658961058612089470843857248612981997076610973466163852742197616836443378300459202008719546696674959722642393215882744973931246792290915429505493648587695911721190447805041749424131201325119832311350598077401493473977738642028590016187513345931162784781133552344727848188249965865879951179204323868709946455179681410944364223985751505197257016522362777879002305336208099276176550144892840471996172981299516416980557079928916901591919975228320479760308699001008491162805598326113247385967390104124465273848559263194141666196527832825137422508316156786428280398711811457048142417659272259069082264253593637116023807780102026902803548991907437540820786315154731790199951945832994958638452630522764933452595260207136215223214982721559255964517442538843657851626385742661130980309897459160840441028926806537437040779609874732214289366117910186090591130714467754302676477544230206875411542071607657286482740782307459509187322077418986419986274797322674597517823594499102470054687891309251543134873051347121197167025839057746955452612408565255628360861012332610631537123322374048886687162360742537250732754526990539983950350823980599903437622023062541150643086857820647450068078043440321375295949023722386037584502735353491097703922708331853141934376138432653210490446718038041255327629559238394485534245218873792329741128586822012663306975499726311692801244451777643277259576884148576218307322207724974497970317902381999245694874793354743101441311225087391817048055147581919245150518899924018997302989992793448578766441877083581058348273357850014199417607817535934069000748372043900773333974437462233460875820531176076742942415837408274141276749966586592174931541975459756890635965802193438296467054435936148751393444502536076110494659091145675979150960679180291485841072573043380944046823439566734241134251241976325655469510983475037620428927970851165347712808217043849182924273205583057365600372152296235656474277618819975120179693833864965250578173145067015630514653526141284410203893998954252468625187005971739577071831545016437333042826859980042622516624462580419240576873608472654167605962759579629255395936338202726055250429475568639291320170024123998910896004726468385604111631760634471506458501355482075371491973745367581712697221793494311169364062902909113311792081280197629114904439333968486619284988743545798272480868431204140145571650529429597067806054447331487770143338657119864179455863782385177772959035232068189051150078840253008529788866181522468130528300955432264871314216312365712135725628161013647212204745258775651472119240920587033934675459576035502075762057612809177574441935051284358052260475457266985049296006160662177553677932390443694196912979365453244449442506049531603159223412773643273197089135314365622268255733681448819182668106745015385587622540876693327832034553257495150789345933596945198275727524596238981434594517868202814759744947795107267794217938061126173170663519682181005418364631648380314375690644978075228444073275873246454363638690460215062170715694471506827457136381042418027071402910642679468678133437554463008739927181495304613120027283703409324732473014157096082038519374473473776651499539237149397843955708072624873416996121565593638634889901141538570859970824160807571556631146853498654766563174147716934071010831697069032615616881742313998579596340218373046616177739188253318872917926143499628490251856262445795263369693927636146176703096436061858884730474507365304246168654332503234896155917003656233451409992791648774210925406016199338774898104004991683529433880207984045751348836773992579967170327537015925487838636699488124681198806703839432375921615878658059066327133859497715898096151247053439164745636626437520225849236786812697336045295733434930512355142750112507441713593700397856371709810700898244475379733246911283636199870764426773400511698967114002201844597294683993046264889329011398988160842980008271926910315577122415119701680397600532062275841336431283852695906322255849921959084149394361849287453511688922314594217074627347089362860577223004340647749042444160907284610168589446099159432941649034025383368648444313082351157086653845181120739630354357652540388311244257161458981080586229558701185460760787053900537161833350516055061407046947294171150870355209813689850377236784285007186632140297229534928469565414216666445066181904942852352930560368642027342360393331738157389892430161639678572684816203111994308988448841172839297726428693267679911785302891053237813874838290725882203031510415332040036326607232695280918515017525851756456410963185634294400586867767574885816917915983245053597576811642859017444891955005724730496207942670261729284169153762621676900197803630791674963899765609851453719969122249028034801060423345100499357416309698973213642341115289921492479931434651748612706823279300654595374680702645163520949375681171868552823504839028358385590444457545784706123517786036058464152480467791458284889470027455309532900344916333796588728228300387427759373662051351896361033001269787872001229484974827538713851600789219672792456276332964525889562820796180661474843186185002533462803982388532872684735050134700918630155876378053256272783694289481432734010544463983126896490269382280117865690183634380898285668597801910361998074221207515628085628388551631811223008178458422239202510003214984498102202419145645499498536850283124593308445832340765194726020326626668844274466713522910359632278681597201694778232896631583250917438036003986719787025822102322334702831630790871694707438445542281180153830155446770724707753881698848094664533604892026848434008707253879731189221759818564833718288026025439203074912527221033204834072483844066316566951801844231691322105488797369739850388354573254212469772874966186727931291404507785733779792868024194642838246747744792995530100146238104207321419891780009201108004135365028473335520001825681446097025640082534302633939981089811732256764322650265864752359386536355735282221595503208985323833780199546659460746746113935890754889903171375423907796811749641216278636948068466098041562401305166489440186798044024569970835523366801885595832062496808252618018682109824853348027205400696240041849765314656719560346939905629911934301975033454588075479515269245782805404641995165577905800522720680931442450879680377111640642870779264867321773076999640693196806216439161440431243004116579362659198854315643443269089900914234438082429103975795456568313252437102144392253943521106367340096098908251256333913218030852999360435613332418722076825529957197984355356648551205516927910676151323759963957826934174816579707537005175948780875435872842679333350012705128688245481150122209482294091174140723784029288579270299986186444804758081223672472037440428137747986816310092364524730554205168144961358082939484456930502309206583988863489787366943800097744610327972628420582917939916198305934528284638687271068523477565063746958977854835542134550513335641909567624771664382627855211519838277088973907052492792209256404964972769758123629134375073924048025118819787438031958996035334469634741318873248139652234990616592343466400025877385709394401448049825054781253360053761179699302934632184895013065118783609653635757128983839372231497476259131414426721915642192221457078910525587165935958376456389593526134169037558832830274892825709261893266481455241626981960822006053912714683087480426639686030269567186482459268622142407983825614612036549857016165451873629336027781331523639326920951715410613754834895554448428143581282186693081805563487553883725949598122243310737578629891483011715739918765356190016920342284279150140108005480001627501875296627053668308881198608468921359561229253245973398089881125739438210385755363675732073298935435186739712339472279840754191742378621704079199470144830330840312324300188491521952760698422751750777574576724624950105077221467100446834551572205827255114105138276295981169427037785133764126179422161233889090662143980997129765201264151412656148947808190213078244509345899028971592974312681958542140512378244609794435995260528682553462440178723718018621341260485425574395123682385580649020434492128496868039054002419779723328951038828192654362912557446767133302312101922376862952929111759958117452331219643203226906476927184787436381647733244933220783785362760787433580882995725986664506613225626073773844817445893687596725216872308280561431608124968826012285778521791210283031295128750489262132812543693156971570232248812973422561324281307509359305047953959094395043215915960949538714073632701511599862244129291391729947880496096141781296427607406049465393700976755652750677070756051832164564675255366138421535005631260315339239787576433549679232800391096857961914197571765253930588039455721463292269611254245634880932814370798244147673930412387160221080054849579336911417910311305285099950144655400381943160936513085212954100826617223594258542302559180208799235881566624073379701237012983582690249986887564858348484092330031128476980829861252562761618798890773450224107677677596194228180564731440040366070915854407948030944450008486015824750417505630861525012446845904848778452849975334419105731822879746531591174101432273947274962984784452019301994045320341637790608211786194756418358079135558290357857104690093216708356168114943239303296041755851893427819050118606510505330008416443162077861661872226615305365748283611839482996710513125329313856027057350840888952612248956802358399496599730929104925148315895626265192455426278719222207441325506512159701374384724957252201537205214301169719650713920027263405744403611594761922021027581560137066583863410478587227438556638396313935139570760976973750510113863272202300001492255635034475538314971268923336401793164459201786042115416562086945384869089621080858706713178233525918882766455169350361254812891618157780021194636573303700982319096151168896033251923908749270275451624250504908794791338270669408040987476066282990634306644203811999463421187912053295743889140163339441355702931247586271156763192309229000933879175833121462720710817507384957435861490774253772307517628725284896423570155554681006602479270109589380498575208423866349079918710923838121967690618848088407715872230904769492385995930043491031665832456374967933404168302004978144482177198743371286227577644109624142677017061340857716920694727257133992610952054176424759231731678696394391413513680945062753387775217204875029677511736303248025150101622334964750796524617949011674252643194377194341750132813266227369284530728469838591910342158282449390213089580813592550643437389539436463684808910694195473970611627721807850520771374929931144989354439726436095798708248205254756765264061798009733378080870325444551521024167260308431364409045457473758138705613484400769746689764323349099123579629323807594776301637112203493969435762783462424743121013870042617358551187491548720948595957628718496122767108955467919839958643948026010097670003994455370800258135441248868904505609049103504014623005569644298152442340975525438144005681664789727303536189879187683909617286450888210153825693807180280301926270115966950308612938543532105835985369389885748524914874605145442219318043984605129611716765904951944418819333863721657240776037473457144817621123752728423233114704866492416767819997570546879488497506265179606226273059865655451735530796158934373871493383418554587389320789617173427515342592957927054352463330973045791551026661200531775024010881432534745969337355952217464971952360804962973964491943002922005376376819677113558649160980405992217084672871888147689780316624362713055252577588392841986559498372565094164459160758572330734488805470105245904744997657215625220161018268743341377052460888960719570398085648467917206738550017926002112297912514238140866328165761204168001517152429227650286536037468263691025588794409307024486840859625305380282849615956013128622013457762144844837266799564137023295565419714393048986470297000030232520289321102167524148647165017546501006970854350647544886419775402694188415745956684907024736467303001891759283314063756424545048991799780125433111567171839569469022030109107608746028068283878712924178685349984136355418305383937693404897645532248314519357840012044167758931195596285081548706478351769039983349848545661316664021783240524886755887643259128620162812451597009933811428140904519472147577159873988838488879176516919237754464208372895945145453966246377348463244817700709834966498401891917837192894639681205709942668664860018940882705907598928138598852366397859608890440454256341541722592704796343674178752789531650062184620573445363721430654611176789908099935927024121774521118478521232736314754385077533477202160161807863488320228019235150452821858938847297426026388788658108089298980961596274532132699824645968646336060253149783187518177249945698405314848475778301779952096726007360307932304199923273938687488923872433253356715999331443025463083212820894513695326512367916283485645480525216837957050046761602963368477083480020099314843387903714886488018410670544525118315238757148890216935201893414977543087802615019353131355970588878054457028827591378870193149493156695322261999701846215749619524420545752791662413251503685772703433170582698172378750851156900596812228158127447378936996112646691157142798408731919801613863514705635595640728247294960276326261423619129679441865533998984655414604748925442139055818329203697649649181132118271158173396769012105542317396719038251047432957133963950532649891583354898755207172891256102814671544088265737384391402997463505845838869971577105400300102703683230570260463364893887172361376529190970450041413027590506423438164656761255250115702796271447041354180866946202042258517802845092860095454333885851915008864843085418474783646757861055426986232256737435666972493153182310748684601143613077246969410839445221433871072073785013774130920574662965523034900911821311118028981197239759320113178214977512879686939617749221051374047387903174431119961901609680730120703402700008547850903944546674098523681329152744056531696292019125555927264081781774875915093490452310603785424287159709689212596848803805466465913200309836560122431091100800636348656446615204508423470937528377423764554460654756453735820268025202768820949986573397844272084262636380227163887356436969444711888224612663732805519744694387331295343446940042825493810851454899554689621253867392851114244644570792691045803272577403286169173688878188216913873693077859731211044482980896010715263763388325484180038894053843002067267211788927011668905583105429743121933279200535631943056022558397686035721555201465232898695288377802448241313782159570292940676932210504950255834628786958128692296221920775379693533949271669269021233855540422411653771886034572397599532840835414099978218062431959096539222145941639511145223037883869967080818336458365568420678069539256939400069280631948943888260668160307235074626633146011812243562614993200578910318944124654523003671919359915335834728122228987436228019357042741086621994637495507426675007382136588962899791559860300188786207067356423779187864964253251963528516998956083666410345451799054815019962399634381215664057056120391840642266544604179235390771375165461841397909142911298902692808550998577613531333001959527326100037177276494756149161617466960379221210904443917678754149154636457600776641505478764568849916956380016272429127290702818688855090881068264262710749947311984101899457314360084478841646199757189600073426466879638782698692132849416947278970026286101186264915973571495375348151913535410763816802566543075361259799495010354204714490065486311749576483443419204202715738762984232865530847813231785159165410229210559737119042131434142504083763785521379673271682882588241122093013190821888702914698270628221199647899971090400269511292263427765263011171379657010062842925776278314320596201488066499976951822775337603889681938308969943935823961102765839714242712495546866604187405729580432342487720002261304099193538936703984178684214224201638568312790674167964794329746622128113927401649081947607823199044071249998408885452587894283708410908039643515281022580490728142179507941907311353223052888093676804895941415429974288049371073651630295177962831089901689639666920336461464125017289974145727346307119554354577922182496344466481615544977343227238615586424697150678518076120753959613729121540420289874181038281195650466194213635512873728053601826493681888687311857734311333367426733568598317178516434769343478413546756371502729589664073839820062560456681060775809119927089563919820493378998207362837962985728583636153373143643420117782165899423270665195148561038339645547651382794029286660826643819034463220462847218199649195928667994574239399776202233335043057268137604066265080691852871919176868557977774364434127720619822802523953120415879009640062825948246273739380088583924212610209217746382424500413710946369829760620295189417099183858345913951456692766447883487940164382740298160524578202103017387310469455590534328577419159581898272844216153064272575444135892857861981872046285615225416670125607306642327007277834331865132675163560549760961766605734012725450717014655621893505108775644027221756937476374117907819180270486129461142790668055343899901636845982590823086899379399389313323517359794804811923283024953641504605961566857840709806405710509919677149445370704502581176045747274654096093702878197130327614151041305817749503553323941426942161471264624239915421115429264943723760600580284362484340095632627513282761163054512538543691137301387798183939106151099142490771166639907085018774918290899837002867340283200386457651325939764010359592175557233605460740632032676915867157763886415573341763758822833133872909045664677232502317369920851591962802012981605463176104215998103101421599305631950053977793256806527577255266289387666612921633904657836139767947913854552975951820300626914498419925674177251583031183212682229338066148270412752013847099192340240170917907822722271302226952236912135246464648899952530802281291164561037594003530451414139496672749692972223898675702403383533057635280633298408313455735705864679024267085194656213903774350405558888940661838097235022901912042553172762257197271135618186578947614792553742208587479793689619163627505344374993077000028742519124375123628771897439739821050128397498077950806278964737275119517051310542389115034733642809748611384502246802347734248452333100765576254343800590734348861053597150493705854081714329314865922698243507517352987820673101039595588552870883875588749883092126425442870897238478159129799456951194504442412077644788269251200937101284353841226604239209654886150133970201053921592356673008158281703900622169946153449595126287052215800206072451224252333629087614568934459108791980033125372014835033538686792641767830586320553824569883985319156631605668505959632242831189719681706594149625140738364424694290030901467212962642623907123447347149242580241776397664970353908799754778023076324447995797195243564910239391353270905421118467891287448884507751152711728984478228938955466691577507675440334606241313599516790985382060967700260366225946601894831702363473833947542263382471888058730039990866286273311652853724709034568450048363836668001593352494206943839595015906797716852333054536675495546961705014093559825553557086851080897435470110539187102483526601236665015038655343267057793835155502635431942456291865758023812728517562112310411921972656398822683593035451236184233709328395392791655686847295508525621916308649521140388291122280533608819189899373706537488756021995588758471694083892753192026681790865434331160562690003577935095379896643237782256500174058619530762926323782879091575223362413274849173573653217709708710325714275285452714102621018034810459394198963134544980412568909684708343103768657953626401885535519809723278297933094401445443860605047514054348826680075726906599598504936037505830048403410660650863684834061110324628189374374123973898080463790760327932301363281292303127038971512780579609358292744641167035479388144216077250794778431539266354114195078859168081132802159269015726695962120575644086900132568359159487488748013818757605795123269260188347578305232511662669756891225016862603431339339536114165015788748667407540472424207797870572574967913594876252685088881562511677341125817489253106344101684678824840766636370543274884863405358998503067384184919818978658564445210537094428152774248234713132493779390592733911725197445669753090067015684594234451065917563692974210089482811134638122192063903960396910881473279703128250722473581160629374645124069486868627060707887096403950559460323880525809656635256630132029623925421823984044138962363668077521925304617740264472741391315269394478923094579552924691451212855662164482415015513378915169746633951592881718985215472987365733558503058653837775329025275952437909294203508237063715458598402804539714646676600269990803667018579651566501223277753804057742552491583017997347353176714379192760198829898654828414666600602581757899803373166740481652286250442053169316569192863279082288385619730029774911232859987298172941848321283797975892095934582259932951540895260562096741236449423418721184213982986962498219209507729317000243527808056819321762159516400549609291228553044511769509675490507182861232227502396915914408089413676837278044227392381116650911348164997624244812516734451093395591251485504400035963238916908879657756709971135188070943275608725642288972202405532037240068451938175642501954671475379502264756016567463675987396898553640537683065908364340514145597798127468113764099266046095009113428465628494775905780533099110316645798129853896638901036971351331106912121073976636514932780639012078074616334606843313375081914771265435991971738160755212096573007544030090908761927689982860679265778668943596904199684562420127084450836835722379027927456994507332505183817334014306420273547587191692490494550526383590851632061059557598149293777736758551251795016027137479474507001039271310043072514083102783743338998333383491744529722314976848179734166435208633554451406086147125128712935342221996580387720322917680172839448334766734188066889837917487212303385077984129244650817140976519989597184077926953757641928321051199398948829303792745087456329432582748583289355588695263531123937195213566354010504576586538604701565209172827735665694107732821001556836314103326594571635965469522575627596562571662467385980150915561129681505663183158942364548222853448439876270554747035067998216955678043312704628189769750021811822980102476797643529132904730908723500365049146269140780960694570775221145741100601061126312947104852005636689981375007752607583388378275483853431079916677933707711831557954177248301738136197856378027695920898978354252115272724876056913007871081600736155410891329480320018721271843344677235994848053232530909008337780442643895421029436467530675171993657153383129060070966372151896297804870584326521662006336464968675037806367303398574919179760624024649824856245694782554423028407430728590430530482624826904753972892612943681949523294690925670790180543452489235344678915161885248936480717339988381833181950822583873180992325255754114710298845564613396027541697174639124686905523933186463165831728688242303389087933563812472992811362279941353458478040126398740022261214771465400319154308498101511365805012061375345333746845992174773117503182415363021249674173615903756714818452116236198234802431988978482436874493045323436740480387523467433688319889572981013240495916404405815813154854359841715262655872801608037996689321021192627663157752639668404629874516709631724154435895700643683659238245343900116166535489552240176994280112015215364562090460327287404278420840614926684769427587380221500169434978176213528524002694239867270129954047337120175715708972069485621353230478093425574912040299484933802564959161659671660597128179767095584401961034116711607607643755582010871481850562735090312528761825400439522385057530578280797867452290322462410651260347432291576016323687341821113230168445412522111892219597612447721612363272412475077614424672037791504957337028844571231853593135681577950511449498516673244024249893976128267588451587544797037760828741603140287420158305867923184659379787822526806762064787164697034027044266252471064710894083855713538503732540332007012483117484845097734013591534396174677425034837285597432901838263878096500962636492125103703596657157795386576838372082766767240258939714488806349574355334441669829472537740705481345612654876984340137270729420679103775782915103586573980947597821977454711455546875723173515873935265340779324400769570543377499924813185432963835016617684995628886756588006309469609363007967527966795061681180510991517935877993597472053591770175960172063094218183107238206918733907010358897349518599639722539762953638469680009437236346645740519535670236978931131897373632742190905778764310187985784455639509090227035096789743705637073066339773379502941714926418302823132216788117614100777431003335118545011953499870910119316010482399308463404537506318407304298143498642067930009618100733831304685730918548762117981794576281285065795962599066260785093584437160696431291559915955224434816024755545789369903562356859443039072912994277047503616338252764119563224904504028569116102827833128235057695206306349584474927208186151603554586650336834144511092204075835757264073737670094530555729625333234813589889616677269309880974930316347577612860208746153558674094112821892020374916865354581814940946415154994085207943478440128000252091171636161444731775322102696733790271627286506926602226333644509071675328034186991612833124735655446125275971278815015852771128940810435938615117544661906904281048643317950826291172613743856729550275273039221457452479332756652863431357415384875021803789025808458292327451724909053296683166623998806159664809153433988285677339458928097979278898227325349392390984022804534487064754299674925115534260818293720428889543807571388614784332825199837134955389543042497372699831737285205428169866786170279539053958555361387796404483528384148792058761849825383580911780013596238652292137459134066027500638948002425245354364756954661669230844364917804197977955660733243093391031690557537592105811641226584724114081398566192307907788835041870558430296705096355261406758373470658978517421736457465808472606105418848131605414279019698732134463973917865983680913287258782157479753798064850312107853133596951075149841360180844095951146074128360388353190641352722281259462365462362462491158846004095957461018101824077134012269473058220465116688915039383132067332214917865412260824684488304236221626855804844661558323545075221832104912781361666668851177843978266971313339021197907239875906557113447326165454826017390150332013371251475231947014228583734812352038674377147569938848355370299175537977652887500097147678924785715912122305817741360095658342848755421468098232627721582281806490178897024302932153711353756307006706330593648197500263778312567198882026154370152348780381061973888748729608099522403103348788813681786748710763240496995131107173720690030339253421717706941363080815840663091208529418158284067758580884477215430654572675534837466353696202173731907976038143393607291761972728760842791928472526921765427649482978455650211489531320132357849339586806942649147280993052270918743167311324396113685008222319450939518689223902912181698505799695547618802230598599044353432211563084067351017845923123792133283421225118684451367940763309119246234728043823987879199067174496862469194966578626461964214314208598753554116525817127071664006535198089378080481597938518206476819293303616217672680297199142921535917522989113657761751007724283321783642422417339509171054965766285707569730019895489639804537244800288876524974966818310137223743985704255682581011444496889828225754966273948140495769301498898443231107138073786135844891805767731193678625712489270762979321711041655569679092947057456882532216810083199657185152704843157135585178621977759931109391064632682871910095358921845930557547338063488332426776532135513721699130332317222619664496592527795004407791210452097447130350938314594198317412191235561628765094332304168928585487662544808692621839541381707207831506002927795439418823346442661021745051471411014247406641496105659211036171828835640308810375307210408456237730510683963177824619507798127804942176464310230180396615823981648881795263695112614140715138548532410083274554487540542889479664883963062489426963552704910218081908550318645743281219411861466303222043699620617520054697595161894308359538738431505994998456643078302902248244208776784729696558060368194569631199935891150914875877456638159430368290652705575627787919470690350688912172433759147500198132835141232021629202464166991449865032024981488669367840248187157441098754818419425104112706544303603890799557359283717813026984130235433915141635900789333015645781848926195507018640978368662184239399558234039775845206060480670334511197733745531398901101697746801936638269236249162435226272278404709246534462502444524389272955537895352322214886431129235458338756318362934447925552814991128381372242793228883592563072991065833931033769765381998631082261630721383239774266137211928960839042160853115141240633106865305588775955811001414925209058834578238833647616298065891793403563446194918881755829706040044091338270584677419713765005087750201171386342470146197588793720609047331197356391039811747224621433631886243008596880809210885348444126237446227340574913598365980219251090004863665719132136240238135497381807887977173241380592995498638636864049161934259812763902321674681278045621614607122897600857189926304712499059899672197245871965048305238337829657429146678830586556130519026559578473302995978027867798611883101887185032435235344346796098091044126781437687851013966227353316930070883581503765298592859838149769032687401569985708665293922877797430782040269752349586591659822005245267329746927240068610224914980431013160156461915130882153013246238241253859110624955699129291154282216729186469927295007076179198983654400285934454652577895640866074751425554483465069387525783153118993250837245110804754579571269889399365495003496780762674907231907051902779797197747808228787809031055573514072799659458823746084775445595212694708894418934777110837385509118925038974332616961477589579599492296242776994369870203407014702051908082638155503984395518434160310998845588432229164273031133151753980916556694266439249247950904187626215146733480679163736952543450363581513629120835086482069033362620229826336085558435269710850681715310277894872658320028257669939285623495769678169680557123182270258799689502955526652629431605819729179773582086949387260168944054579100707393153864883308384327986199993998607691672030277105105982458180646040962633112646930547520301048578302576570871244394257608494030392555043811015859733552377475135275130771797666882341049820311881216415592411909166367254227265415116342273762185861133382094768213018452669974043638775775643441794387963751030660982762455775473770494593747390797954686347337947634295119698988451046509359973513276200919965086172689772782595881896188387555100847874844970450653273264223532747364783619624796818050275027635086515954726208035692766085320870699843745254116905128998088740195496821779009249876483117244561927532121557435083248631068948810890502342230069547781679002942162670683775108567078417998348934546187351161261069446883458738281324385623197993497223894390577109759532880295182708497330351248171176919944705981905626904198317315462670301891546004907654644384777843329570451832153432167306243171948117348339126405263497151395118158922128131767694378092990335736674463915047049942293946361396464675181247881188850628816556810814603601358386121045871462671021971555100995672089081989125834046603084830052981336815514577296887913788108872456723615616454363129716466224157073065685089141372341221891030367603658379235649660683220692153907787030266270492805321307645016231142913660663185239972006106624361267011759718109580750077616429174809576175662225083456387036261922205267933945196754657681670294334903732899420142226224640766519395892520962439874841801195831053000465613662598456320298353932552773760451286904926689882195175984762762668298870406917748168326235578802837827496911582294144813355919022675896845189757184477730268985741867937511073103010825527553591551446482767526750676721237318320206735320502970115369244820226290688847223896429876147199226641655622542680152157910667868940424554826406837426727512759077921105335491896170394499001616627373836083620273306046866131416789068003609791305623891539150337463836124040693887118235741150094860599483606854926250288148122445466609672736315924590559747618168809014277568988630290774972908750204555402549779062098104300375484146474754441327468151970357409984051310956368727541724370898941970189937292176243630774202519361903780168880279420871209620034869690076727206653947322875144191336820768113716381949678300148214593242691613110924250829695318665919529980330353517940438792944910059180760531304885482121640459217056559509848943736887431998473131368691200368490764422849299050634384675358898283786241372605676779585285565936884669438070235971693121251726903504062047919403192519795371763007379380524868905691596616230110244031928428508374939850512522107528862883330659665902590233876464873602348231647246781793164649888234966368187557789127354448020825145593997174617073013685024861766586537269089351760305680226943297238948513758228571654664297400417734348285988245523479540656358220250540174352577009147582892999231852217467442513531337950326329779503032710770567805676553558432172287746340131591574542407638288182003842511971368134686876918820223594893618442143793227593445050975446796967445870803504893194598707705165604777587702004129963515200156920243571448905030006146073124844369940285482748765602396755115349092277781952818058947418679892791077092561615318699288366012624622440675974054144412943562518119685103236040279385924754208117214246553927031736343028176022054796283728215960777878327386600118758232269051702753718195861682603456503248652348367660399532936189496171558406499858888611290165864625828971134245320187004727789554094993050520603141217288761351081470879886763976485465827627910434159851182407057445385014750750667481021072038132080448734056685745228186076610988443175689445741097878229326068569327623470253619870521636252697747154106671673251339901179625425019569664235969481231346305734635816187349403803139680886373671011194299591163983281639735631257136461043862834221615574803492179501321349025285799597175106336094166090762542377415007697432992497602308668383516271908618888694466478394403320157031126362245627369102869012866258962271033713449253657065459898311244567272294900877198333723136167396357046749327244012941734371403073397905440201167738114407302661510515454625455280452363408437102141133608186578985866953626180839418583820449012337435597024843301476223046605196925137693303957387487864028219976032403729309605023752874767815732596494070220302124001828413219603906145049480787094698408691971354964764307788634492879161084603146333380727757846600940910471222701909900327645438283665238539199230816401379044238666104827499509250950338774546992188056088353967852387786524148199438981269082889281004902714669467238823181269618587916147919142336207853322343729932414228469176232923003979290362022174908564712573236919409680952461028722948260185020166979567528271482936254679994095813451942884942853555897447227471188651779635477021480966483833822279229859619774420474926400739577122556221496258173869319729382418564949665614316210177912110242922597221214302604309412922738156293966392596523122180179080428885951030780660287924762108952062069835772416155842235457686147518611759121097965179978463938783934685638965295878827773212757328051972979073386124149224330734707001813032160243479196918060785403056767725722792883338809190838677189971854255242725350483675612966074106479027111173409740295725146634624835162430188420953115241397155266726047569310347721977062402916746388807416062819221180511617159420298364905623792148820569705631108250101869943821843154498180438461515490243238562481187791630127798536589789561559747589859701758961373011033009459284297926320524312640891535124640508225383226495848501447741192598493739601396615165188685952396152099860899142590700136768903825816689416860955346199802997073428898496099175878666872976043593916556994262901518214912418138521627068674818729595152507638796535135808652535758773873168405432846952390106928130669252232071125790113855814227528157214834261103926075029899224046204588161904797882704590600144088457025988903395654112500871887809754183372799394660787536361227343341133937090829322668066689709510006264875520409314372201094542829589531133805548403074401297317939374804257524721285049985019345585139984020583547728011002966715651635356568939447579669010518894026096511000852832898835205560802791441067753676240101377654024795327236402269456486576035867248438207621421752650203507849921130521069491776104840576402673832703960618372667838818243780758433877688444765638332662387297760916167643712635483551254094525111888173560535072372083076748750159501926626127830360196698720633102010684423193239496072815610590081960431565912743151041100268355481265330808950033191890715010215180884107224724265780192089173106831726385204662926468734191424317346176176510178350393190516410211178398527159838475522150034325140338806166734710366237532589544094613299632751629873527559546634912595898969172902702599864174208591038795094626172919206828461711740871036840930238288785763962750852710477888865277170083746100836128334007096578862536661804559429270048572514129889287025090011048142662720048070705729244280637348724853111495968240564586009720652958190793034040104007582506768781119439198573055948489160767855511408057933578919265841118338769227958097019454477272249847650143639188085413732179845926239300077395579012275540722131610492206684001337994326837768606114719507589070552499127309141652965201055642102688770476943784558699060042006441499675890803550057745165377911938853917011408051758105381640090120219220361966315488595641378493482539000706880717159086087416898316140016596160642088918644884742950617899101593644690434888214656446983488771918006668437899536024432472246754199449339321176303166696549446530774624305279075409285056880662698919783592523547960915592184439944137958204304558026764041390850942487974054527457965914814676584605697251692393025213718656118210802667160826534572340301573804192451693542794030347557691666945865639612560510140974799772015061931027778928673538563161112395648009717467875272538081459275930045745793831418752125018538151220928063363607883620745077936042334531157682741051994985143639654414355505398622078679337765413855819259386470163270170280329876474546831264114997754221533993369310569794428156962363341569083786066840715807887443118082102128061748541014696125719539322851802612809652521393699702812222926627643149089040460905514727326489820088145350362529742962370473299575460259575216267191775150074378892403118472222253451878567307019303552870684691670614685058083311844172638236193945114189233422586491591519823580875077584901166164799047978227282611858698911592098526093442774171744753506019961498526256808351493864120377884550990340010892963369332120374804158974421096289582931000652432321912641693153322374098923888921568986898725885781618529139988683213287656812441194300979395021542715703391797000706463546355264789256883312941677328350067762662553754795140861260758224121590168549428105382286982733018931463571746917408767321034656418213319486197195159157497909381307999580661866754168716716343635165286009993946517930169819227241497879849507831656656179528867941929794858936649258533541592788426630387189165715456432959323408847727681525194182506398146070669597907604915588426267145375540302703299073415402404658304621666061537709779859486239464266467090999006632136432176509076220041249068181199331494499949039031679194371605877082477862963239941002992876679696813794919063972084784927170145131171411454643294887573499345404854654259245216182547673256373950598001379546885134940295272142135000580686138383454565969702823415960337324520095899055603000099052137243190424773903159648238991402947328254082079673041841516325704268123421978118794430123223844366605501774309494173192288135522386571972756066600953654985144251808032356914104516489327061055458470196124213297408966537692475911811112649511172020676903785340437890677617916576292518305364526534020580557638129838425323521064591025854158423393058426577959826409559579537720624009129796062427821098489209610961397256251480773269812011411103140594607939440432603118477066339705824632355881009497602331521857123698294281959820283047877335808552442519825452074313205333619361214173608244225031967970854678105955466790300332531241754929625537233713283408340238170757780423286238172640553476516924770160487484259912407405136647335533770154837391182437784935217823777028464311391383699558996394862363919431201114155999988354759130170010106312801160737646349630510164729720492183094223872096161488068329737197698654539626350498695268345819539585517642813854492058685518950218795419721248242275994924410065187121536947201876363180180790389401997228105978869516304723245461820237791548755740786141773610137947428806926770365372462574612260529189130528092610906168886671247749477473209107426987483423247473521878562710747012621946966771323380530259081358501469587484417017286191429275853646446029042545440328601477893014241768257778149849015497452882409257310250132336577777057796238404044996367945398226120290100187448078632529555309826208790014179599558861929514371085720175245881147380477525332963126290863842639240191911712309066284522900449497695974482644610800048282674833658547505065240902622054518694353648984546917268127191904135475217531748433584599030113348831364053621109272945554205279490846127484825939652123138421738938942178512909715299233421351304619688356115425687244135763344525177265926140854764536711320661535106080945858740282699448874883330587503020720035016356650956025725469512300130038828139164144234451525552945272248206568312321783032699371507669669058820981497175280445350100524567405298319034129848981903116486682671273894720302449656154889537489049907218552480428104564978952420220562696202735911218080012408261635264457525424943481315891948531334359805029926738622703443414546091963051587737544777899307652835780120904353029700513294161219945174539028097385547373265889899702246047317064993052820541880414498397139127621852925371182739785104674413657808037204861228875859120632357785636726160640310309522481979732783120640899188666126902288598319746428098904130029939889299929952785857049247110517975228457955131933158141318230003186703425924924028778369394089042232328499558793533554044748055174628580204492567638141889351028155962239417270960134792620664972980814786256807877090364448461972606794998859720299658213403383199490203815272481767508892581687604469356380547550145386727876758986085384260485040675496199306403998358204307205340420301144640858582246407102570928969161798071309727480193356566844141616615204253154034207077306668019959169823637268293744298798783128173047290030657004003927466882626364847121213008202279304510615687498017381715257063247685656485104710151857659975168433358112867309565196222171274197843584149629036067252360695907524299656588896013701691227805769282711846069685716993759842260500534483545444725127917876936643650761399348812054818466483498738524461765041761255666138638847974527058562673964419282622098562027557464891795210768539885335372449559234432772724596211372942603179581746316604100385405823424147337458624820940976246461213942876494811258349733400757934339456764200500387245139830604005907281870074314420135309093891861455548267207330364443241117966874935768591287530701269089488530054067275089820792710509674568920601282090854574770571365749274660684383683391734785467168285240986081384865665678017649953980665867887777829619473819354394546862941301364225970015857635164971145467059112899010945525503080278807167070484599021137470778616723945364781928194199129963485053326963050267573713572942664286243784736678369625650918522904028771303677652167110342586149498164720636793082730511766659522372543825902240915946024567887214657285087831328107123057619230797314064517838076107252992197388023920748680945620411339083428119924437543117882135476030497336400937641820121934334305488203229402891869374875211704087392718260564537225365560853035937098717859075775185970680247700253888216701006365125899374266276392851276816040426591801637070992037768507746467347408438333003086534741328792994424658346869454007713593570274935576764568979193674594263938323854639092181157409822619023145188039214436608323750434023177050924204316305855247614942605440568963145557931914937230140102333693017985289090133138029611344217409695631914965327084727593244435149078978461576152207375003183155484917021965674522781883400643431172935919156128646789093595603874828017576910330019897030386395573995772647169160451512803637506331784741721005539752363087216623471192774615018732989643993846605543802015183181692900269988370212292400316640865477063561768383401631995294914775511810640636775871021185918792550344829029283396914264471670274048208134479960129944024502126633549500969063745513573165575923611698931851404341456103256872726601599673971140224469101527176286308265649507055341662281070486303776332863476083664399393445854797664711909351966206660311564119246834641931063671052076663450047859695351901970938516761230372162330354635788463648947958828595575645193903237229637705665447075496779715550172415488511555409697906468318579657180390399628633401305415705930747260631927646013635506642219326922576553666486815394200219913644100098068839084561562638075812865717106312870903834169717828915890844632342375989179841973493934166009553388921411622734242922223351785660314711675388610934357357301775628079477799677083816108433926260287234108461892984406551581606759737791188808181527201081104846276006044443062481059546692945855260098773440622863028376405512897293650239557610469520547169051465933208674516974307088183006777279442553140285115430446354938118565705941171430990910397251967445226145047508815188297190997635083689856814468982718566888506907137157728219358668414704245054629924002975919952378047140595352012557602961645525928461714591567215753399877983091785247182946465254147555720185430823753240388261697762556801862909983508408623782957632825459556239640632890404701503778539205284521056316957257144857579112355166907717734435670106206425271906770032299412532384752768031617404152640091852627585415137038243842478619817530299671480644238489104624112520775098858289702738311834698570596822992407292264861550838110943800470538918749094092387881467883588765316813485060304440434742064473518588777393137863141082526412698823924118065226578483474558150745623304388541604451964411980911141071187640977328625671805054093721680553145566633533884697048316313761591349037022270567253096460183522721322345653628666909711030020024942682728310614114722847240826134550344427083341015947551289266459743743946052683563389811863759964069615471244731429910815340568539366646871802725814334059682409239922183612535789943046438309643027664426422347249206881454077060957645667122767813996248420687556100458056119068355964277220373057451023601834847358648462352279010638987705621634162483077319346545478722899517552276662500980587551874735212935502675149910902655335550825869142636954146715263869615094500228470110454437531346772966614591442067489194708892024067973976605846196003390253311014733978048306359911731783555144601305651051698310432524004710697795785884957580782475111325697969060080413901604914604081915746963448708165342755009876668466971460469672874631138310521562700083832323686244104505877856580778424340641116118322165413059566449602808710641510592062576942778412373885946461208670859797788714955363347141187347323369226342565575668773887328942768959327360998723430593227136134753592380256214026485135683630707901771629354403319635722102262782005624754354653509128641348878492633048497381388788199863959712697228569537275354586955515754529657714354885247643994024150818453394158428402120843117306827078127260819507552541245786700797078872733602542298177643029287580580003332764822219244918091635882333602874916044264898891123271013817989563882988961844619839744050292935608229491158133695118423232760845055933755797433739485314507275153690509106201884607348844354050423130166093023603244924869674208715869416137387005432552377324545861418045690342628217080359704234813591562938986523364659896931948729438637870642699330880114961706389238036743241701067366550318344015832282642528109390550698556655941230065682372764982687650271904361957769427337891027209744898395941087364422676353383931891935761788978978712173849536859412269916244780815999523154931205186682263995043875228725387639180525337345589974096483438061950993673145592053614363068133683670738318662157391377511094810334402528235892685907422114938600200691776486620820398446697092376086091177603454113934881260998152162261397732492243169912327240648541348706671227197739120377716308547446837983330400627136088052383334323144276410621440640485435021149920240090137631044780545171223869783036941263347394333989622888028331266197442214733038520915822975690662733219430318659792128254631339449152118612091701748090176426495680768998674310532417125192413078914533115355893365410524601804530501711398375932264248148161304642844764269864058266753989563421925266018696830023918926770142892242251744319812943192894398514925179247180151855851260854870177454804397451268879448308781889551349809966532275371921735888949602027312892700738387124714138261709968163767959615913162381633855183495222303248478179203532689360816103722942435888303375497845577320586840241388603013455970634973429896977273694194799474730840083371595199763977515255358957320367161569124826825999350084473725615374938235722969203781078674943257338537382511840786419778916428624955943407633959870659889236464737572245679804228919775761861235243371611777731986843232463213325289534024205229946714397678256303053110658061154657011990826575357415857790370364648811985464165846383376559400172336820725249953215354969314825648239130975409226111558829278597628191308554412698639604194555692448700793261499202866890602604559581724791886261747821945894290001389588431202567241470121640197583688870322269032875682964736879060432344438024779199411867664251287308189547342292293349927448970509693128800769908327349559723518939857392727584316658701084881159188230414343272008179605139216325389980844178575151148724128411938974828897010796533049048308820700201379630048666709041275519208257757828568362868657279446781649647817507014905968097137815783699954003394806754875858638753639938619871281274084295682865060211071982871002871074790053235488897216694823323655199586917698435622927186202710952573061633791990038392066778203011608110070811199296852462172726875623677755232354131848025062798706830822597180992258916926940839766238888832620553335699410208051914482701760304976683799352159078468175798756037083850767113839743898551504399968457252469852015748399395089099722741487907901526492684848751668241872318842073273059964098552815691784626618549323584938415727994000006347278062762043035543501751038459236352198261612397439360805064072870369505062374622204316188941246371861196231482781821324018674738143320548014462713139621707299570765048806922076881953404105729711846237846771057854387913181301826059156053065494196423094382325279934057176307525931340495383925753214567114731170273735297069207209834903907630689297740920097329196315498506795951018085827545687344339685804154377471273255490501636708709707867403208182332646084536955426150686424242933525676328388940098042995170326237937782205664038057242732662583537490767481293911952107748772884697600391221664373811049463100341798614937097970249910486884446692556068313360348589903894868588221692050196277094369925919175702288300949940745524646957730669399932298082484330742162044158626606910919632222444041005913096364589313043198245095819962704817320809173341851556195037207097115933177322149448606880416123891492150069095737294637565451021778150999034948480695243527640221824256628859423246158189774900896046745473089043866210379308798747902627360350167403983593069434018478438075020260278409455534301272040639889179391616867091239851734912865084395103602470149985983472330251620294953681484262652570991746248103589081917948831997470178753047547211816935140328185356357286713309227288470076271932054485185285198505782700810264761573406071300612213251246017951086623161942140321199498183172452099250189078903975111667054791883400725366773895881853373412487481699043364500529925952915547822643072309830691515492511580225732760408351810795759756313716189170924518051294877625337682514211101222894115532013882289024317828816843626911940724450862814656939766716368964571623390780167862899613166382510509325018922364439091365587386258605622343898681827524947850499080226208167491280121782972379997031309471176228143170310539373057657150338446822591388974621167946966364626862953254159229190775945130689562634280883607375321686961764943229078984498481144252294685494891123201496451016402419835363873142785504190255571865790552507097639311933713934463948095821123897979672959060553888088303728221055783878029214934495124091453747027555863243325249256507187159267855870794063875121905728197008145664896915492452983168648134411504447612374753878014638567750954764062591467639764339643842213934317384426008742692516281174240992020575750345564488471443301948245558855851266292604256670630935539260899643233850497420420017862234644236168870154372850422498104097188320499163616053026403537980616535238913649367195985290420504845021558706494511865812839655086058831366315526950042744779265859582988580618588805308719612108595073382108355497087722085034830209114309748162521248715895000698659961563285437888461040940920780094506553321192714073633465717269128586209705433902312955411732525545637980977992159970334897590962541240797810621640680158502651858239899014087042446121547764784264087359817999463124320655748010093467970978245056061086383735451644136809987534282890751125647081422161065782395319741008480140888468531511648823576369974474668388628010612004820551209143149354224494500455635012924405119314999757840458825884368213479705093819035576656540090881845710803885519541860525871546113559537478814155526583804289979008707783345057194317971135349794097796983014085350113410666966788355655456242164767319685062802522438211101948309339136799894240309099093998224771328359491067335890361274265837254504893064034286733936041919074830719755900317656928880973734697815841327463233052694470119642735808458835566915702423802368138543615137527913625996038847408889999411741619834514422909179062466457875185966744412303369062941980081527863774891929437550303843863022987352212531101479316472654540380705869834048979309725944739200438489529441400592710084795168874129366079997409252316407512617602637849302281048975440621397765006445453856022207282263497708559617633919153829637685421602225180320255782028654703147069328417913898984385321495605590777440419505923262175386561940480266427993965414964802449449088149533119204570337818966272757007077811776175659245496485546183940536852403266042623555999499139867745991193765755297684767192497337595703767888702054991955219811964041974232194356324548128348900545950648737802248607881812317554996888983823543140097559780829471730001624915995042692154663582195726698104606551631588812920243063359311897406812760092579661588554301164879876865633141428289903744235095746840397640280602588907977456086634059823413066450353680095091370901393982170178307539551549628081464078131594672562494750649536941579221043831250771886611665507743700229177524107024779403416629910871670990958178146204754429228630483639184181456683370262460209983589771214035983108911731832607853582285043171459988984723384956556100307823913539706060112636729474412028048636417547671668222889810059690463564925776186173278119327096390160355687794993702375367388083548357059717073043605347835342415179820171939183739052547890181038342411050803531242161006926113592386712120268250223427779978717673377591278992008828362177402279206125314761540465484823183864386815784556237644845918629334785536146985949535589870470287788480754126931230053737800484750610490360913557083068057459905821147769637992282269978314173997926240388645437724791907719403856110737566654821713385019206233339424391256233260672655511458549593182598571082769474803536681896402138789712195564693637785294823720788006468135374377634292545660327201668231457062007869151228826743797798993488371730092788267373501589599891125867074646364555000718289738203975639500798625216270136361444650340283049222022227570272382939484222819760972046505004257189937462754754171065912839114627282540365874502104357996762264733351563259327712828599327819969700285323542625572237061001288392717412318545787813836795067470116632303737123507109096289944179239278072686520954252881462117954770770523834870922653804873592846428529599543980722302463223890335588911122605116959291398998944112167440679435634173439323485164220122810239848598849146579831523994758716531595662484967577491483239514686378104828301261766909727325657878455965371297804527743889193420707914851946835355326160952333333632781764315826208383927174031516764711239275164732723001569510985552241209787707562799084189494894137769969992897192697406301203724311691257170302597688437457050199021363319869271139930128410290912632170213635322985272981524894126085807126324564789555554802766166375856169191580957015388205989234861714136003208448470696188724824591540434388428127075352366448764921434751589994429221876799768814716387762140763615908206928240325966806640186943437320310413399152036102425461319302170149526625509753896767258476539086271800983252400465049351754733156776207411474478895074732701850704497550937177561366470853124629418596479075384325584100592563171606476402034802236038431842549899151725809805694265865202789601531526211481729285007832184835262392538211471355764287324048031884360841997651708002943524436309310782689417015031077522315457549643790665119665444166449521118590817807489462241188795352788348778153078395260217677141287231897506745165168345882621681195750366456260469588041180525271939568213105057466259121330132483779621744863229524944862313397769678480409662212550634836052163808249501809992102609982830495761123215692091765862671312878533652574800879764061614954891447444768145848094447822452467826250595413771574209001286179796138321158867382753639225188866970777934545027535171695814564138089431133715985946645260888324657390219465815325009289993215820975147381167134665775397533476734001294809468032378202632754101865010643933715191098278837520434814133266951886540213838032966014123150303608399858782864731304383937773344713970848752688400459185809297596012489023510472806804691182114795195139187167158453889856169313710457010534830205446715447611383827626623020106810196556137402887007367380618430885479962754932630289871377919611733324628839768581786482522953067330849938944880205710539063808786148961345824843204651198894085193741756101641090810412084600265892355057021021678978976153126928897980998364457754423864179456614110756349267795336155471319088087103956983554448567376056485618860620203412069336801671785411480922660294847965335945850564280861600122377660648036443356227661461179273563851763165534749797822607094390897743829280436329204818321528867799211870537989286501706380494277104626720885438669826537194116565162063021035704715593813597196560526077231944993641342952172095494007692221370001294519292924729292754431464738786236447735132224159554698446116851311684162838872048108588176473125355696857514147746982660226056735407804882062415196867166986354420386123316753871231109025867579131109322164955058823320582769242925077282007465465679291686134991406975923757693539880464518515558545506516794667137796820866282647459281353624280664449726526573293695253265288152316002329492150630980405411241407151704054474921906045309377639977690813356885436116109978929611616721260533318560099900924719331336850457958028447651765535102218141533541175615755519618218372139231520019852189114107520025858924119054553585531677183119991031475092296558638361699796380860052719288693692778141235885189326716406686082889466523159517991877606583300021429312023552172006967153307477638225508870103995967774266441289863503388149966558928253391126258014556443159220788499550394674202048131698410295193011034580224690130773691551502133520794864319097844687663820093544459648740651284064288736785740824219472498151202547568617032595577190170209060096393897616485504780582456641516467266697570505224077219450585678125334880805624525471753999826371855432476543923541764386773552595519081664884100581721725045317447206644515619442695142188680143241524342825529665975592881604086395578175161258074312548808192746673036858145920913619427081048220442220022523299997569973394616033061008865319539841490529801004821278769672766264234434133773803557754077922836606923241217375625600187593984424208909001918193092863844001055941737922478580905763729184232883025073444157000361494579213272659047493762900883648597489138475480737549180893352410316612971627350287509148074682499500212540706917208040939532833451954690006375775845364651576407696266836141740892384267741067289465763546321953267484550581974051347384153788324443188614373546130445179797512837270154282794986558254648345490274495555329244762230493552011430846271171653259274107480652281243336646371514657390459992957374727526540540117190478783131634129131305603793410294373748609712565569551234475203658442516221253687711788175584587938665276701792243612033608595677055447137958604454855002772362698572944052980275839436598426621590578156871722188810024681903064011500514765428871117369977947053370183487403335966359353317697986406067600985436932172181794951988159940269592166546034010826463117115364927071635473778184205898245161754065245946251169035071282996400716224812973317371667003011420855325599845266051144537702076965394375790792879540645535733334993417885252917695662361665350892037699074166266795848653719399720603867218660835695524242492143691201663202376524028779289519563589945519366353142458088882149442775291229707127185583792938316305097363937516468152934556314608766267501537650992616703273427253754344960333010149086955631794627843296972718293547186450219244401175918469841325418058945377418687169374262709707262077636628625724090597911500245114600989654664797343924622770010668882895118389808703325271779088108374286604311393537875506720475829031706156561399011329893236798565817618570713795871413811181341702853910691503627022389971746601746990997059595524875245346822631595003137852841451450450120452832914314406530042447120443747323027997627506347199422594608207249232036214563927592663481589635003818213804086645766394950166310976172517593239825468811082200234850163971849593072094871734642336987492844073550970512648592497480773355103820071680184196517367062560616054119564135796471026062828043514516222173833773010702719160349066231388311641212622462742898361160232100602202061747916937283649070325008238940357204334798352277539168710761206526245049587967137460408921564904447686008461817801809791268614375488665366786834507146069249010972579500777180216458179577556358907309446427443052425799497453397381558819244990663809254845919391520144141396967857990681505877900501757903261763065785333776140202898428155417729832647282297362740111016779170872418207933252832064359587980596700511311645929656345228361620553948514127305388613670457943881595289772088392581090549696947434630525003817215268878870407426048276364649769494533187317191563198239148504221853953381545290043896372167700339419902284463829594092282919294604777232352557483353982631101809338184111474738310987268866073755239786801152895191572479892467227830167516672443747959278096778657304868835652015585250048914645747449932341102103532508546682390080078019564839280414691979059942147212767498539766145755858871827037362529790755873580029394940248153920802274032361312942445550190784707360589767742351549577338916101435427934640331762307551465224182056495190921015571093321880117536105159774990831593316429035380039068223708763263807721401268996888252459377212595920707328961558559875306569989914990710366183925954795170438747038389748674281404514085828589352713725017114676555391338088110602018412805718337194388622447282911899445810544431960956951465911384064567310197177758361974867825623417833144447802298909069663563086503391016662150981951625103798718863008601733940109247933050087695758009503288204425482249849446488114295481114170936944823582702219530541243606538112603362507724043467051708503918346729517255440423923323006858687625487770198994587846278465123368556000893709252324084609370431274016600595239557608442602169071213132079340215329216349804891890374344171660229202784891857119853200217347269587846719451707988012560913258306818099228135193028070240969167619717435653180059400418764304614824343145363829146560463675466059398561210814849566851912572226490072907820723020263218001662601949550588502561610728118358828716646281784907675503551307462263250194782847090738188374250630561089420429159116587430354311403069612887909465545261594245283792557488982227329658794924913927038502952328246317329008931936383878708306236437670466029561002576652040597403360825985025614976308759848334657419694625259964546991019913581530651302859050989871080770303724440306312387528335764615423056555961078292261327821950796597273722313755843330501565915286537011327405501964211717400812393651941619408149292935700482289874090715564885585365017074714187220977648663376394391521258542665144234726633489217998205014858825753244166245636384770792181966291061190663194703883381674773571161913676347386872549105398279955742094485941921126731801840226311742419932575288293792822959945479785650828521391065489945123973846152419802027984324561001387249975410601716539435555002637510394598830019282256687299741977136941368789535679546953193957788568495711205247836465072764572331413580082590976603064397839711956736635408356109832271671248861856941765880128758675094843507839137345909829123767600805602432408972362609634486873079754080787457987551057398654369114637126245548894211185954038360726974102167301374715033957221920804647405592313315334479881142023429363916811213062054116362011649261601744174452300624188715949342790974508487389506523655591966321511418520611584833697890421130229142769637060289626525905365903363056198064974574741947283265339444742471892704385277890847404584834508303062504020988533447824797602275056653304673687206518618956455588991047036549818648322206611437897482915804608760896180938174837732837186053330560858028263689262987085410481668497526786001815653786690150938796377708285142696299483357987502110550637175397046302017233406955035391594695308337363045579847008611766263049224203575248219680711554940192005464094392127115641398256263997863466962154209577350369993266373366213680636953226010415538521929743276721656378780930154927269651057547531014117408841910692298420424517996437403773238760079096019867586283996385128086275026298297708104894119120435115399067037046116378528504805512760702650170028233076122873856292687129437178892254963516411532515160657382901736046217186825005809940468370132278515897066658879667647656163495522291117253385591454459023159215441487900868997008923502571616327439789233208524362103002797512192829179355250582948826198878494103518793990043735939508753345496340299718569983717569604597973738562243128290812348965150422255610875014282531253766182001190752611468874186507656272629057258056554313607479907938065012461410501692156977395570744985970352269700657951761727233135619771340666993993505955885517730785040350401563430175238525275862683162587941824195509821741894309477634463760466155111916463433910045869001186331832275483680747824798081422890756424999998592363852687685922111255807435449311717885410669609163252085112139591538677362328701613097449462949322968925858978126916839452033353824664708726105645155697837937685812166071987867056462030204257863229435908972545638642198459656695549240250582768103938996359973859166286766625726403621225035679154326428714077299336472281518703134040525962262081131646079416603995033468249313436008231642270797269149127281851317764227791872745901839014934061887184393930447542463046405530744066372908514883073309485912765663199185552662041688394060714824654562136614678741733469021585764652530138052355296778021950891861732256980665013879446132420873167520810293699497961392453112974250455351837869785166451484824178156817517948828121166589195979587901660252907718646944957514208475261116490456839298115690961250730088460516984721387322789467826113568179354175273876806465091118434943981078570137718070731556081713516333908638546541998819730583815239036297238580025921904402898606551857753083411935972265390368000588379858287389891022336951955859069412428431971072661731091610944720634907080195733773724666183529924175745234463613955346784556924951780586195136041280055252516086279883347264531869665061314061336683816386539371662318995991214853105886743565003528268933640092634818349814856601862734673180983192186005037263648497462488815139010562366143212603019264978733718329103940106326973114989675043062401537695978515212768832150922927807771685433908523500940771669945596370640006422939280355553572977668139923298452524818273527578762571083604879396475332668750709616732626067827064591163209668841226208912097933119126110478705398614442654548968190690018753681989778004060494300649430664618626392255656963649196493899775677977249758582562848128443952991313616076359366550481304790481798522213243557008966432836658540579711527084801768320277805914599522949237731952336084342027766826769411329056124560237754274764767685019650725409467371304551793364226855845053826157922078753086685143628826700408630009614948986853586622488383441117666728342791082561364049193477257588789132709865579475940497222077419657459661899777464596904162807236756897411322592139602901842254982080084192127645474253507707613200937690419575602797457314853124603863790992377482416655374625257771716446251343877298994587368732578249708341748713981058474736971887782551246202056884423757403705744151797638383234695134758628256716823133320387953619740627513263201349785506886372823042667706447082409450686045372518467905736624606091492067318876722687910167741806760943056449443457066635591755386733849939813083565183961014903155553922848373946178183167466134587888141735377579022564991469344226533125223514173233720050868926178272690018090663480669586847496635513415562486937522216403285129577903429191960572282408685305022279744269610275030691607833284551009710053199035969929224513355574876544788904043757303124189821010202626705053320977846209069171347647723635825736322302913593966208573668777754355323159663730743625959667534398837563889242265505111355351037082401962146779310816690685433431555345732861135089524993478768250751706785383764975234576157393080204058557268108992138999800974368482541439107200622815971121438534170269265045830594551979641485603933702531417539742259580323831010298673495942759965157785890398971998851475048064345294218056403687135966074358837579477145622802459369381784715621660621762905504395667631928568224763542122701833095951414957166148507085684216232100045096763701920442324647143436513030713130546451173551805716441816832636802538520304770925383944862393120773542024889181252502305745086501622946156457770690658427506489948742471997184212177495610797896509070622021961033190196215307859772419026465468188545260233124617255088868485183150470481080232192143757783739109580348989654648477195570887027427986319394894796272962503531596846273797114204591224457772743053846469840980984001050560269114861389838054205125099229508969844330577372937032453429924771373888159563331481747801151757817916488789429850431269669546152119882620258979505069739134294746338095377616980471550779991911039998933444653670121582075480061256321880055553887086165118890442238020783985437767937557381868598001688986763445230193687736545779689549720372906102732739962909153912574334920820998708755138562298570375809913335649404120942391992969424753319294981182836855568682116007989863598349400908142722817519046436684096102296099342683431153464269582424986788065024275426879326822164634343332010109574623378310764191986726294854897882225981831389340423590781711566408615932185766502143477964112111040433273886203374190422730226988412528572953055513838422697103641559287862048769367294754764956676583291789567728616133226175996774512374904503866873332471558380709184880563286177069309957869936858580338748508697298537595730077088985220998154749361325037980549036657690349622036174364991237297694118722613357755142506496425178413584021010737202693223036644731175232507082512941763759120013478375245949732752371274379400275075587677807234822285782159183687339468445498802399772695453561617336090584915701149121472908099496962503503171208473795424035623299872829761076257450811315157740184935654287978927673810579550207038912638977057843559300171715962270820416125414727691865936089107857341324037529938360015407263730559743768562105204339709489177630868269342612932701527556482125442454172850324248222814214873646699035961693108858441512371877120527718552114693510093470404480394980392218662071333554122035812868198115070664744759288276559985896781940174694728431303170471302365518808303210495773780435801803574130145625528761822324372771707707914181161917982354481910673235493259702473612820976148348375976582278580455025405016363716985940903860760425118559446406436909586497177848974856412257459035523264091107422776789139275677954439922670388522710252773258933326555935200327458577547370197957877418356023525992332147166355154995151628298136639291878360583033131030357518606622394660347518469749484676780318467260236473164825797618500611355151174254226928681535422894484980651208456445342469816881408128883459489843798572680325868278687665055393088855828231922451087475848329882971072412058524484155248569077771938000772510158723603224355659573002011986716985826057452159739068191575718250403515806204629857241301369146766922813719246186159287363366414851417702949375059142932394366110466504768735729027323550823211610436854241277085154523112538110453179340404763022083364449319179286848158318377775468509586347376415169178433692815570441683952433043134802399970141648028243982919870216586178904244784724428132148535107386929082991579607508235317669046402810930944154163282302964035652202018452127290257308686537610216261312790547241430285166130259898388658085536306542295729428977878407680536211341522402275930317744046157809178468301890637901808514959133311036658847923110047705953358367851686453335156081062284059934993043391999593083781676347373642382099330039240118516033432459984425383575341542848947250298652513046871215206937243521213063290331662566118470255089795240356848468609064664570847358894470299537139424752690391365030776716454886045871273769302862437233041246161724737487668013623735457014058900549919722085923601029927644616166532934476176615426661871366977454951715759250244487137688592496532518366489582666122715993303532293022310572747198853073320425263397216747089684153702225302804203499481821726779205779424375866041783447403110785847818774833420540669596676549790331031835537432069646957204003652060530783381532325547975655130394485926557553653786848458094889002460805967519167002758023503158507656302583033006428465427607203853387673486372455342571767399815658613655344217086290289862131569654427147677680609746553382937006755373620296489191753738628239732467798773430347596263237073363963098241372670359595118139596134890060640049356510039518775049251165816866010503421595976328859094776857930929876622685947272487953234457057558997158446656321596381800589487379659863702606273016592077450939516778093554164274719614379443589339087153744274040341098504301001628526888145745239995428806211934967047664768683412773163382732543466181960676689632915400726343158997669721750535229490242470122642246161782390529561335656804070613948746189855679844629395215433027615758568232049201450090529445163986247974687049065264133777860112528971794879639397448926392793459557171334400533238160960471886953660426576326669564020606985098144210924505783942120823209545281073371881582830601321487196907370799953060221573241832149837504152535952880782069007215702596728232442670366259841200691020778903725081475135267657146866200881829555219924930884226056794947510529983112529227078850376136055380058937820500863471487661756794495756870658283574094885998865181233918410906801651083227753888424962694894579906317973722050307270923017408635915749261891969497756729670162161527260110138491501258132483926542847908615719969677901612853316193928663218412768431039792953435753058945302056258213334048354272651798132437726739857818335428661841940299866902444791036473764031828229417567111212839229044677005942870642185265942398570319974633957408654782834216656440244882057108797779803949853044885644016365019830718877041196557373814858132976955104769159152910748007823518992875906075399524327844347152545266570345241073802095548144120974454881561293210607213645489032387729792747454051944584227059874401560776636704483776042305005355808777749389666727842770847298669570094039687851630682665956822242037602567645292172660335409125417214510729512341714535534446142363359177576801442080025053480970140450765324764099749835569459987649748525253409888622846997534346705500954946335511477712260275920538421310767269183446500977880720943335880394180497250584853574675554109250443951164107799508925102039764463782283011315418216096003667382162828419916011447523439053619116233331368714289518057702518583827940512114751728831598855290586123843066878748377074387440625783578709667409900660885669120605719579476859115677110130825076596729279930337645219471121142924088424427043787211544442963465963653055295960172544752181706081044638877040721178284548098957160334515927459203992666786723414309986846915960256256375153010780344251920354429592299815579323109215913576509556724923441824197597336618196642752395339565842040916884708321139607466838287304000229607695327178248283498476571876533111896553017539389846898004106652402986834576991751460013800408561619251224360080749591830870790481746238066648563788089503092188614612879475884475665675824676825957214597757137317913420946205465482447839439708926550786699107601723559246505705807871569017498547590371531544920399852673397222997700556237674179160609577486143540683402806799782151683068977762003447968541109031490603688840464880384860887363750534624681087636805177074284380969541391395924549821099916864123701394664989751220513416018438801041169117616987111933215223409874138620309827811596791223978359704101922919216260191167945579423252789723786393636113954276558032184540704059534554294720782942208143082200151271278503423252505065859088104469516543220538304721634435648075216016051786587820683698178829735908694829508895750512084722686535097837754573488317296886250667814397507678173746092475425357781308886397219792619422847607253829897091596665659380190767019272710510001482631640228688854256646032408439201667494850900328864486327137841389213795732709834685552631077977028440176106641456397377500464858352944452395587542651116757646870481265782007494379644923488466219524373478192376230099109276991604774910218886109307773450268011377138518702886536051270231161536093324308627493750905718906753719639579959861767440829282171778054452505257569256916103868881163456177884280252641851642146037799600025752002844130711261719869959536751911976753492452079030103058750885656401824477377629138981091271001018643524289534514602692720495346163277606015311250596822322357397024923580982603937028502103133085544058359003380006009277991038162081082284513745503218952935373473982210714687472033426012505388372259429153829867529460664978615311192143915965626175960723087300545540997129310793489221635042400466712454042820984892075311358134356967293786601182644589407240406751156271266604530152626674027431671053450786615039285735711794568060024684153254962914068530379267268078287071815905023916655117618906237171374899931273912601915887012842885391155099578520307892313420535169098202392998481046850135047188426824431600962107313206971382553819116285032686961388660927875052085890685102644752287166899549407712484124934675673158451656496177462394552176258461581458413831448013664598331075533801057098729702707739524939592927147621829466542099207618260156612906241521960323664206428608611005824701744539108818384961732950310352214479238447589553283725618698130378206641205256830650126549154952858633401727112039911644434326040803474201731785671732962208400557841107020201648806861670001082953183305624801183591381878199783228508375259279588978535214950800595144330632320103755796329876935021018671532813594110077230446919614580581138360762621389792898489772897141088642235587395958866564652875093887972364242992984974602351462372575583376259012237080769379931020069038488051203127750228910556617911770030589933553755525720889639338236548404999982406273409521608505079467140611489812541306344348457160487948952244650169089846683523984687965383526163359329297356713436547513709492439907194047297237608900708963779148737690931901097113499512687399545843292044021024677890772559374915957261995201111679705924351384664522743951499934335582965284717549340158053800481353450898095196850854436276570045386188318619420417212854039936469316344537033859989884874578060335055760815406923698160663187624990170006110282907693995658725670538954667804246413177954561932224383632745125010778233838969762329730993205648803621314112343073010926940314854955424051259639307527357535461873297394536146360020006854560913355542110108732824512050227189993473567316899529646643404496884773262185189446534232706770277181949150832561498680273215957043452880121692767608097925493177117174520927086181178821810752125756644037294099014133044905170725790119510657480811762965084499396759815873785983135067941528636954392204266947582749155493451178157964489536528433026488732147511795976263828035165834171681757213510029385421626118496354600922344164110580111570701821821930857394975814461005615150618905513667982936175854877786347993539593568986208886517865300371652942255019899996431335638929438800782802550379733224258557098044427883050577824991032136938337470013375125795436982452499457491214790792139343822187710033681971807860076128091120696590421965209057721029890760756120154090238900818252509514443744452718869394621285258439225935283874504489090172443950062116129171169942559702490140941556913679962781375509572430698793081303159850462221443384341936743165227756581032831890989466408444250130640900255914836716825195011777257173254158551813165704331164472467208465728230695503430188251285064816243377992131817423282249578537669195041464028617992259498720921741626793243909049283415138644510639741163577581385750048746625667479517606510711900255731851903973030934056903055620783582589890789644840800783260856647950130213032429212452789762175587118658629200741131770339555169299711055779047514345920959503748290175603700984743335057352440369801721764192011992389980055126841959951870843431394439636473396502818336403514343111293170858507120961431092178349490282745050745321403044952379260736862755354284839362370735293219359042606141700750121407873464756787235335800888056322258545109685839687143101815200587439508605289021240705790669883150861245748595900865824766724037860484050444689325715568183222001567152639498806354869138521710463016360519277920135879846266635152532486848960770537460867092137008119142062812220493297747262010766877250183733490578560562673988729643117975873264655111023127375379220763194757783241057091648371050106589619212492619955545628303119016591267487374540947885767301774243750901137168504922043623656691306383530017859857923063195671958454700747597366356190916881721548664559926708341979461218181597319325502465771260567564118767755081505700896839620002420164960552892096057494716870424624995914711716383100256955989825544272509052779331559247995284196798257279102781086612024088044637716628804558719380754818543296255241236702225881216400862590957530174945808433488858453441056974866804436837724394077957547982718350945237553680541883768928190147279040338516471601544643698502714927659715176321857183998970808980595948771005042923051770852162889706219066477899988396609231216143042634330300438832659376266356511855449927616155736989214020926911332893056931021539318259359548335256284800817680029146575525351130188238547347191134056497421628550147829091024591864720409042286155240459007089160430985409540240589952289721297141150239421584865133613740018771582683323965885949450831359824368432145421037129203303763498050363005385723659066023420651966671498364046231961881803838690115442495249616093691749818119266437180927170361980018184523366482111823034069643393457252261480596264877850294837763857848226706511338005273357830804990631754898951000904329656009987513400326293839799369229639004526754016209676913680351657224438787833051784899138939189473476675545870291430235588876624273725301540916758654564928040292905994724606365633434875873896296328745255668583129480079540753324105325257577230548234950623123314744245735866764604563269377711087943636733222516177065534718420485843269988269518669255014267094154361526496218724495388169778458174761459131918015447816864818377467358236390986749760372400973690046605394473972226870621358269677296578722493148314296619338539139603734712337049938392325215427032940840545435289819415152722354450643090022349655279781029920891170864424966519460039887625343003892419712716667596692009835154798260904887905889938094139528572362467973095754838710569181389421708585972582714886435952317905111780985885052935160147271242052516459445226316392091317726119620776406307747956800632927293347881474108438445297480924359741729237896547102194107013866188382865035573547388439065184783256867267402244641785741842485185360707561638401339036094757245203946607543603013552033804836394552648883349382392879089988128943604733015156106726567268747215740558431744474229710442334780301326845252824687355675801957989796265811296050393411297813667070980222340559028968038236657965820889322243721588651775341718720567478906136784126506359477078693188525922256348555273144745197001952007024116223894683491368101744410460321223746719411635486854589993152731401905324262497523943548958527295744417233734050426542899808164406611987459746422324473021828092998864300467659234798870868138057306326777670819373329979083778811807045316858807258245042856867215369616374997394011040571959820018889079868902220253767346380275019583739825116172763381093294786784952502271693430860511279717307674625183760002066534317046083919473944929102621450037826107223424866215862416094015969982098411377705900246107961873760022269785016957423875824185376510407389461262759645414391036755093386246704742629484482824772283702876536133520845205002387757639109068070081529434950556773394144288895933654434764569732255010654183490898351300008639851122094499864205613595142359368787425884167641019155410453580957358141711595590150056992409426622950541648348178911349347544084115069712741285503605451917139939949425597774928299590007748461905223150387342060403286734550971882653350254912704714176346256593178262888499369235036524206289301353740568906439372979070986014509700792935078722268543829092856707502848758856074390587393805393390832738069985441925556525881227435866073902033273505171076838797923858947331658106397130966990673216228211895236283378733570494565089369854929465910750777592505904729684881833046668317574780350047393328359653261854639214200085448831146347255126776995951349772484266377527837820197530272442571391623962030464551306250057573533205024464717039895249000345605358592586082844413883777015901865312595770451766119210031656226417085512651828442304006655517681630889744796065052451272154288499910779086508082245241689354475882780973076163539696736521561159385488852961472015686965053244554095640933466757850409446812766426158100914989592569298211440745955589880466013038617471380414647750553834062880670647625663722435673366529512709586066409689435371568826448009641178724618988122124683240842774502500849576312720797414902056501091804145697630822205223099246674421973558500357756577633681480616205610508535504445088020331805428560652414796463146604037591023358820958741508158930399814507453767583114310177017214918543404114382021721819900219335597849842476920235827658835055211342836373618035217122277977896273281373265828801563082316680477781395688817892418948728001221346850099728538509350940146306897579315127561014259098530693785610490128631547682014269900859315786079040255865948913200791941634109263875734663608533976227623331826626442158547081806842278183739957712346555515419560465285785843723242316989617587644338589828643770379163955416615731913454660012176340451968628140785163161852626991213214770118515351492077132916326264925749675656084422024099837866851889881506762058749965447029630140805251836288532801286268007065877917242963678674387215987160123117479848232786410964849457470099359454643578572756584674054825307607014758585033706096162547408047559862789013570035246200334508883254965471001595839803685087866409026912834005924372982223066645070212802327198815785107009294839902504578986238362573166547975426498924754537908988747802811348756437688829586620563724184397828737082548768202898585422217982986994055526363638933312843966412278565598815362014516602241871154303785546726527536242518625468962512894323273532539252323015522688265083523595099490000282763155729149313108758492685770116013483861259102182666158711676973922135784851769615614455702040893038472391062334283156518975578514676568897646052201364241537233846703017143034031153747841276555682479219057424808348985960610740042098718620455530201385814958331386803991809578146857194784049638680664211518137956455450875136322747606122397131327611637147735340370049286216203672155480577528893771801741603600369488125370275419295347280374690544296504890636440709884842519527182017273230194750857550250411282249369706288683227514430533783557846771566423003600038547981085881997843945329902810970546780787837340202951431905893813127482933601963440981058287758627950533919774339866996020667996378524503170623705812313417451450689019130137957018311855576175433949915603237540003429803959834390520344542171387969110225246567067291278451746404443496461771195414278761439282476379005629784153951708475011518931998908771905440969279070550050573766989970867751261959503824113482601136447382535390254336388751751136600398368830933869659071261398258809021181994133718486696917475198479397132511657255327293771873644705327169564440728712750068885492190673769611111003352850605242131916923254555223872919202865380896609873971666718147202459334413863321432115044187096618197008652158110436991276001627711058420334186822496834605187104893329275127324909710962124882328881096224462188593606348007882224651054286880677192777923964968535268666457150484258407301677450976399327809008956366480805181734871618472807253695771265476784816028558905558552670020043455050643786755177123031765779341014772980792148932499352683368425393521091286356477467053776524734430879953680362732084288587525501166912554344863589857489456105899496714661017488399898437732739942960115542566911669105092211603718296917634929945063539794264922991958709059527748147702023682134907231701684715722619950865730535710927515840011810668396627941332350446777016740825988742514390667702333848433964700308412670673244069890239529981427432736765600820269393636484286862697023133328892470664986413914194960345415438746930478219878053261597029477493799366613647519565794242076586558925488979759774609009077605822631731636550919431287999818100559901419576593425727699822955285685493646000523978163690059321703798604798284211519135430150628350529984941250125623526949630409453751653057068398458734468982906290623356687423686648221069406195472523906520240710701023593077433507979000780778069975085385637195123634417148376302396882122545489836831724917255549843572802720645746422879501679966361260065210962472162605402283548754856083633461331985639802500816746575117986936378684813605666399232425084551124280061645110800733251501455032837598381868108620342708472699006823791896779903344917780454755296152434681647534669362427850229053872700764576869518426223281762141097775645508158563561532400812350419666055512009057581373122784747550680795394530208046258645961641486087716596276850112709886355083306649834371159633833691254510848644167977826464567187827215167157494782650842413971616802511803074660746570923090826730611888473045716673858352058791975215962984745435878312044128832770281961532473555767324726393029929934070454987898342437361745896026342641609720813559085573047135199656761611082513214001795351773176741144323376076199397457893201850853962002144258559564871033147605899788047095021701968670027550813458558107261257705965449444130613737272594228191064075203774235058941840664803121150482867386209662628659984198963086342967368329820515244277636582653773096478505535736964620021987418001527765174508477766087473994686453153335040030018863921986735814049356128402736936500637870787293238180717455032911777164492159289253773043259519667133058653869444901245099805289170580503958676980450706090309716234427275107522047801147766176919419079014876470663246630865530501979515963345041628301168026027709085764048066822481063213336522483174076322575666843180280474191407184908355421790255180223312198991987100580291317396439245545817828754857368959938589404606582008058177894557072160226997658051135395619489931024259922041924831436629711507982108990760268994497906426668919767390170580778086365092647136084046888743157560942622986786489832543700390945713241968183356499475061066582386950179209709636803495138920754571010261988936976439502217057226556174602838571352568780815253507047950696149923050701815513119019271977531462782496910866769375142584271102924969959269526321262192610134867768372484065071110782285029578156143348106813417564828875869706304461983953562133959624867943086076453925893543659120021443910830309814078888742834595013944385201575648018931282152121175737307734417729152518314308324648260789782256631315667696810291625428068046441523363338523454712000630726521419903608415424037444322002299474142806391777016381534463747320505922002887863365012555060582074200098736946701543309658337286639679527817042642532410943152517487722150372343307666651972869195997098807174305024021648884468891450764166581777481974214025697375743601515852816039878822625731185958538532490370391116831988414094125465511857385418498872115135572229689418642690938900653490086228756376605124582725381024406406415878029754917659403396147730152592060549019891202080133259467430849889720468860789514124866944978479860079906684202264508407765441748735023870199776000176041944650366948302314276345073481537179449013894549556609777663861423353097336925787656086178853883222756636300745736159182342969007585194428878524751211333294466559806097870305203015645056116490483074191731628807093851889328251540969160576389651456345154915540587632036159933952296191383754490206579246917719278365436353832272818168883016956114011691251153081225864435008577757804124908338324003859808169430193542410982967932917890140849049645425992688450514404893245968911365362657349287577789403037859954919901767780980337448571301851297331876576465917579985948778357911321018564285738523257076848553699593439559375453740369108695316135955013319703920838206432593795088672448767251890093741721754987667310016196688436470481560618112486019689027338321441452092007596478437058656451076353458844763929324878465256241872850533464682236699562438252876253901740836144266463876777187148249337312643392357438081089997387132716103064088397512895689875975185475635740093747983255567630322686692543213241179400876229441242812482925881018364255846022761774856797290510259641406772941645807138798849853768327674193876383411800245263149302653404360040780638026025784793104110374736957825203250925976071743495263644080575492648219422860436478296983881870370221748237023821023264565507269569860471691726214387951000344930685660350854675024833545325615051704811645625096279444641342511528518108812559206544213841522876777352871195844017121224784476771379147221556831562951673626366733550624990691090325699736314274634193521085334502906583153551086417975307422390159479754629284037228793596088892453432586159686320455895031164650632243669124267886377581582266943713674853946870009578991934876872299548868151044127381851166176471709620564744406112788638491692027538544669368956909422231796225477388257211044338160361907447128030698530909840948364448752349468754829145725356186395375595352900475698246279784702663876415665558291799821060229342497594032919223771602269056804901275960987999079390511224227222806472396640203831125718363865527885644157307374453315013387445950521643301476737223516933690536620214242997035252249194299444672875829929425075710996802516785983922972166260543687145307459694388691416842165226329871271999396290019384863642878262907234921290592209112184620699603088745459087487203955004347313136608986559897044665309944775004211150846277470510854445390243008322685956676829276208906462134044623662369230444305318914393350814714228287013424438730697009828066887430249328261994800741750036759104966114061130935603123905048249720118677191311311504241926394102620543359244925757060298122330452509759699732094434306903792535657721101013715807226000014181687422108658911947853250747278668904087626602444055562026729589196418712384414081663223721831880292770849693545435527907813072871623733021793034173048318692018238326851355457150452621218774051204234839761386471637764503754944084658254376784046196859430052852431112922382966018574215944195644072322519392171783161051752925306755989308644506755126451102741818419419151569471799687223369946534312281213038255753706282998110326873737447486972790271119426829394236490444845262988246054291401602606477340185974492759638646724725307570802441359592706274378869761683862660606721770895162504278695112916092382282382440410634722801482761680444747410553399204653660990020288414918936539041941566641847343131389619454542514698968432031704254708174620183252062302551521950752451884130848094174436056007810479024042566818667834455381705136914382698938173076987640734868880196857519423199881780752052419479196278560361586775310588799534887217708696543489036230189563523047675860498766762059770257726263489697043710897521341209309995869214890881830071040216805966528356291220695129380947062912926737754019288869683967037938385161566155677247330949316040798430378321853551993984081487259498693269903354182405850265410319332726544705879470158485236569316422799873398268324733487123007998379878755799811182635352451730954768343146869403477514094893398519420816859092019377096671597096946975168613778222374509851108029107709114205003886844437052954848892776516247178808945785789962660388558527911271145109871048226099099809329722676149376347774463570979994836645712819318344001478867501791677753164188879303143318073388395330169687165160454537618055124599463402431675755486418753748593494852761060600802470223528121231583858082082951421739225421356082693796427858282186546622300651419365001101328971842020049745675401619652602783286572024018078109075585604094744946795486992748967883522525030488819753515996624427388327213954453355569360176727362038783454666201688447817591388003617642618059523953619371715726305310200313625461075202639706186423970604128417149463363600943740477754143019003393820140131384397854427292271992469077629561751460258573265267494751919351975029964506329417562494771863863234868888056255971002716436647793194933008307997798786354897042154388144705698612334875330689200645871288992514733842842493248463357807475949729256484641960267284608918993503238844826981895739234495353973447960551176663400171805569013676216234961996477254852048518738020034989904035352668358532216226872904640758829845201537322375891966620968545528390714370337350903900987327040693283041462347207621369744058382793407067510716819703543748642671855928177977899421169224948100188039491545844871192701493131329969773714060381585213161503000597603718488403719828157287853670936210876569598626885654784902185659441211427986031283114714235466735405907069947244051626059887563959672974848712641836472390956175575913233506516894770137282021339711411849602154349992497144476967569197963798528448873637235583177237829971723903398974743450947675915440133639342268728406955645013797339431071206749435395216411538102605222459260699562608086273201442556451381956026719890429070358574472719670966882308769275054347312907893375445270236473349569601469370924543782997063771381455760848279815403401699291434134144791984325021745022531163270327510490123971655351072251508454470807312129733712270711105947720029622113460683156490689122671196765625444425846221238320821396899370969953454224725346809711015366892181438743614417247723996841904222613255854252319930737309602538996621474332579816875160579851691643240713070381465663953312000281897615656262238184359606389361775388711621720678069962285862809319997976330930989165759931951726428600097198682556460953520374427766061889219836059920052920882086723122382032335274202188252880770707324510802149494751818094290511803701817186821486754192698514776977952989478751890576792916122242319673195746646603527324562928546989547260115146880010670982124639552884841541348169440431492312071866082020469615110894416747111901565699778125594624213508458568663211345578292588072048683108762475240204737499173360507093774473682752238584551620000710706991668185796987943507075566540290913825787584509823518841708422295235380335725183881099038101836090611337143856682250397261179733727379829676188632173406186703082653006877160841150804494670477409631115179029378526904439870468224664455253113261637162000147437267117092745213680516091199836207880689620654444083504362797554933886039229591740055529423212040551144039366846183789943734039383868282366010644078343657566615034446677957459540282504771292694864039137135752309856270558026990821108029228382895357854296610447912148175940343348170986463302769235272442371160700464525203042895963502738430197983252284429229427320657462328123060599002478033753300975247547883495216664033247448331507169060270023362324454027159955344129948089971136181103400336402849292196614080614663122693983410167750319878686424635810089299803082638887091130142530282960348726426602097926684278825310466207316628002724063301502516014482647684522675534240472220278777543884738045648787267836265972347653670026888793893697322220735893288748829668052110773457180589995316441587552913138609171758211529280894925251362939628030194056377657027176509886314214071654588691715344697936941685492552150284335462404806229529213350165106387136627185700678284265948579660622581900979061238801788009529785756080285939094123941603709773180953932659203789295855770299385121831876260949015822987945272282163797234478862627430260299402584934861813024680393428417305324504870953349366956734334786193026865370172621429337402410841156682595819540510440604355517458178936120896901883859151241043362249137239451408304748225432448522473754854777679909770290709370747627979231872193046982999088155715008404609082026663667857304532089578877154144005107547070753684710169028576815983101707066228672255765740625869118396603876077966303023151566314893952970752899362510892231180323909933722703074940978053181550975348165014200195724246316084006984255910428045798508729984685720110119130377965380954833189033032496284884446884725177802433100903217206171865304654333057244637762046650912025193722165400297928956179553641526505162567551596274179504538924904045818828441813279181362710676144095558814676569935583244220353223807756529844243382486835322293423359818468553383530820429627001149448710495494715347507348794816132992346735266244590629169941012364620293161643323053210933986354387464631597813563687482940630146225622469002712180503174657846342333406118970290538047276755359760324110775033840811475234719107333704404883476942723277083163308138075427498214052323845736724828353164123160402968866537304109232381493719788336212291575837854727117113842302828752963787171620157172797519999329095934331576563588825440779069839339296490842907052873366742631347558429506983474154006886966172039878247017822199225740865953736477458844492387814775928878198000295289789757955616092535933181172863905154936658369910587696157624168842766211116785580777809019195578572183166666567373287169797004164409553467120462056387882662282997370564511185653749157152164844436649799092997653719089648389984427910495653253555518628171587466212710281786226123056920763728889122214362365343837525941290183657191703426233964563749721262328305833228719175491372828122642123019638130715503753148302192360232695386375188282632771898080771265492718656853654268668361747199647382349743384945666647546589180073952396602125198990943454529609209927909788784068420247147231972549520087690494517127209677621987483941183142845305107806392595158829512450336233395573116699904723996050589014083690033601069122593120483382604212403459688852070339807789452502588173869490207671352496281313120892839172943151994418181320712880560142384908348515536180495889587195507307763434351744905171444923952624169784802309560050222263919146987960781194624266020312911893219550410000350838414719179283055044105435726681263681690028368559454987183298669740981624956846885151834216344727169996243059507876568808987056668638381668788910117167305930104969866726293061480685165515546748073568552509698884289325328281800691621464076002410505349669774368881719733806990918150566464880133485555799001647259521414280433785128656521216015539120936984452833565335253727042168682403177007278916588204225490990252464211285091593203951623212538463227740937567768322402517375812650985753102755558485308192402884145256609562365565977926179113152333307743211045008605044698516936409875159594157851968927420767258055411846342734350690161121871653716065802737868312478752739338337394249284686840307552676422054030382746638054232045530799519735893875846769150180401971483299821940280990059907300735615464238942386599555975021252277971459180412618796223738118023405473230225746067602743827289077537450741050433197351571993701787503748739874557435159260448230905409026935859617025847055958879068976486970083626668223784513483516565435677598137033236412833746518837956200278601244781280624728010350813894149507554174667907558166364804444061412623392925465559932703192820755382393205828142459872143405600376853416215375318595850269521290808109591361617078450515877330795905895508451235986959861721442504030028029327926849904764510620971826818247717884816923106338490610460481208222737207693670142962975601170524722324077538875903912306657352799643604744533176608771906705804667243764162908190869088277738000157800143586793558154862098899449724009320822982194824843880446650064415287747813239522008570586514163881731313443460734456444867266215164843288914569366548969752384480228714608907835160427060330149398877913674062949420300113820479134779409953042303694074166051103078192933597537826947384826311664376083898062943445832821319366932182199919875640804275890120937163450331837237095330588902206264373382808179241447507015614522959007349920847393405647891772489438732716539782569914999958986105254098786565493730794496128484795295777154708970674430865778106208355975801771385899244063456422412280884473811910994797669933442209773172948134160349239234781263099732487232904358756460912363041175733991131958472254842895965545354773237879212928501499194082539086363914358126293145148740786659553470709995596247622713764499378028438559503546168593024168958249159676536488094887437442547984706834289951715138969934677250541157332744463280353486030916748690613818099492465954324783685858875286961454523799177576319285348615800139303122939310331174542526030400650397451477044318560416247534110954961925580326526401947374060015647364410704534126005214355591754543232761295009693203150782025079362423079326169818570442554837466161303366860506358251902734090004648328124711227792593709789335459437061865073728550419124088589524063552135280577332905731245460384298212776129732606675101548091291739431951931769445268644695777605052183283561990474473909840580400185514714481091253300029166427237884883339952402244499296032424086953671792667417116934863512306176098579343577415747339291307197448075507823474015386559811419069421139012686280174374142710784010869564753781292675789851945114391378379396651924297450221447654552995310986993932074481711775752999992615780006502852798520482599212163060086330556614628015326226736858037002988964320237585358846729878153581971442949350512762423987664785912579183420144383287641606220574793328155062425578910694421649534134575568461635601540647127113277265361017984510099270068908298280192759360515044113964726976600781442178195270752234786172105341751693291890117361351311268199210195887706812226837301013852209813965642881267292439082688287881194136609503965735651768297238022097552760377637625100083284923191005838671328795719060490970487509386433303727747935356852566934047550235579853449435060623806548197360030835032699576705081050229838858774258034805564378780835469079130442668141090401021090328142218889750979200315966512584683100288642573828083768324419044141495959792641763310479328044043625866420925975832982247369899414085284205034720794986769783105696880037943396136063552074033487969328796724138656745682635126180341737301675725131931495679798460867185667887055885137086267078714912450093188779435826180320414888226020483672724626398972603606830228950064271949134766401964992020331553677317193486533456053910311800105699305182632263365838065137185913466875984957616632255497077052147368167935959605153953453172473662968229662230142970108856859246627486611996977627083669102786653557116142164716364243107407683349794276263801277403553408884398623938273172669919089400352002205685964600014761955485387581922844659002250140565840299579524739205184977200152048545326397395139661260637919550517285180832526155382726549182795691574952572792073264127651005433794594847757170387502357465963305423381176638878390473492039333371157078456929152542036741235563981796031680995066439166896557132566734729506833742027697024545738508719663128402742530576677336395161145539604960852380729462594134165422553150203343112564548540947349919286074639730658491059007289421424924634525880786532380112350670567876467439083818887040711099648580565248214899617351651931180966124491125868759719844147066644409470236530728021289156602317486353576614639600072454416472152015185826354515457697963136475751942799238532797837479206106172346160290052064313400034187273233602956821953599210351523669588055640283526595667499047857438940736144370351481503303028266823545549660217892379504845675769082027303051417175937734063613383704751784973927513427593255473340906874293476514830525832043992003783942445140162171482078380825108722345405404722301425729072428894685565671269343140027706274861470520719804680689987993720402317081717896316881555018671389854949326796709727372113046038794747831833725222387486266447753431731898831656865946650593162270188677639337129657059039237236548735185519607957225887361060236772445874164624007508938898246289127139222471800913840424845719968386716879443723743527545472693017585766129830069950828887567850269070429935931195981922052878564205354638389890956604682314067146934703706842429815604304641557018995149478458963113048430414683711830612339797607233079768575099557585092458882878200389366012008633416125457077465243144757647159324999936848620082120147293453254779139541352146676378231776068341420223355350777696984372994455133723943889518000649976928481422577539557532378967362358701656973087938794364124489676068093228339986555661125103418270060931084910758139508484312650805467814572933056337545906417217032401418247023074565544741836349721728486145039740866326775494813737098908154186563777913791388745912499928101467917110036974968972235605970645983502594154545774422124758986353721749924301450256242781704312568210156479233935290138910322670003021903324861878470725751876995817932141157581541432657917242009255846020835295652295967918302041145390466031886895928149068973037677057194888915948304070099116222844353810134705962512948337995604363640998502107568429862229577263929600024505827279892684779762877622905563453742465079868415601332147478833584689232819973579238040212652956812283847717729008370813220348187971397543093524249075298283335066954572809252417646450962895000308099212087759749376025355085972224081971768551810153881821049288303859952910006982773996629310369595052085506050016118948866799933816028783908617254449400871436146650429893409538413902027525591225555206184051716803645132021128866708228223878284051250605840062328258691438210371310062416364484288721216787766985501231246752733027643242284803940068872703770419841475326203010296274966609690325423365484399368588330585401584116614558245271863038149977068976751322664214523159089453125675723340992552557705855116240414479272095499877063970279269789076922327974476952048586719752041068910617327913089249528046662800879651147608318265068486818280823923863501929037380526384154749105343612623945504967944440287947372345040072693324851728122944236832709065407063819699404028201306445635550778288071364530863241794990734790111506928885105114636336126956953402423400917049681716274723511278667162179409994775807674690085453505422190077251839129126433519702133769934570422254399512297297712370356342598466921105739098874074864735801263320910571753446814795625951727292934660348738494637450822905735628962651457119102875306927296787983265139067708520223042729381527847498977598702455714299340967567683586019595108292761738239791267187730276077012420486442154451591199571230899334985709658485054617984531266356531236690466578073453786310477484342500910534341900455457378204256885882938575036462046026252717709859834847218886418126581052529577263842480080614902109463985435744917347576561182408611030566487425531748896957950498597474105885948087839882401622269964111137669639410122700832184090832476934655744752118640836839637955881449739329891032813906934123698639466412115759782363182936900513643790144300462813391902243890855003245448486457998408689692233408823200800233581078147827799102290415053435574740232480092718791056746537969557120270545122002943340147579174198683130251588078249126044890428785114953209073982070122655439161238955316171277004157744037346079601121713380384380065501149090522081461377269827988967735685155866913995144335953248370834476526613138168096371784097947384044993840452776900586636363485643571251716699241044077070251396805637332412370795896144037271961540645585962018536265954563143238384677781310948815071379165013078278877433529408958314125980256366275266145347990916014458895266994707832324524276279447446353913338279639988213428960807236053609444693923591289562497865057228861235484937474837295655270047743462663326229156809600705543473584837804861425295506753797334950153210149404717086035961695661787501733761143669890319478112553461072674570465009341883561451823149824799182667379905826870523608094263148213052482967130479120414010414672985983518166521562182460408869250308444739754198919560583159094257472792750759281229455908073606888793822205124390289607624941779250523876520814862996398993006552277671011566809562077740442463969462695121817971066174479996857548550790390489123036866862753064494221198294103784437420681242686006967908107046299539395455219467329247447608769098113983730149889359290659217479166219516891325567552473812405877785195470068172475084871851455931103840810968133976906323468897598188086648454682789271187550653302871686471268677086460955882597398801712802480360901102259424860208361222746483393559230787234625792112068513639592354008631782402758266840877727611548808736314787234674532090434136672451380927829042666925915764541038616338635747669949740993207794194449852408123295994284499221049600200682147678714316244880713921754371942716189195229440960387159186127446145813059761050914137253799828721549485171906753693674235136821894247990738681738450171299608546538638712277481266301076009189572937186563698042210488100997882674219418618644039897256618807735952124629953632774907131207096443797390568905419954859681415049523981079646255505367313976993880088989549291409642597974383904813174068483970560171033360924278814694563841648567570216563679530196358232019473642440256289373375859194627689342560142638587001113232050860644634336019306403959141014973365799752633170850103244024503189296293799311792626344980681852627151689743137198510635202768777925478349023709903837369777671248917695023331542017428041568129523167833424320725221488087518551759466348059167020837687176686582442406679757591923176143361677906882820131440773873129163173739993952136465349641760353275975988361152362222004408632095469958910594559535399621315999056502378035825426715647092556575825729942012783076343761290861798372138024118626927685511748130378302863645757889908348098728791370542352213828717231929427097579072105661672986992787166969147490797435443122362332407077075360618893555379217880358515626284680186467105303056039073572064676466705257741667776637992745380144134995653443843949435735916402504293125580335645557895166361273067235183589554681690079983533113745955657146130140553529110389138134233708834492433659018647315382637344586866481988774598107958587583788942107763016886331549835607929506362753078217760610021260730687601778745343480882695164483773875187260323021913562902197888855844822760148330205712468008453138901059540055820430084476880587747544846422871379008119409730235693770740490983741571157944040366451478849050606778989363100522668656057516786597114535761626810441247222652441353359232932198176409779140061040246613552159992527135785540768796235395329839718362862142475183588646331967819156523090888760561684117240533870930975560875699996671390663230246284980241954290770147006196374126700395772461439280868831830529138507150951682095442294609216500464876358229117037930716986022817467238310381496516853968215249384643554794484284985640843904365358825096043324400900445056183751244015240429799763296770257248244916375406333420336833289076517774160300498229634140093238382908304505889199467014587560751811671228248516818109046776235703488447505684412804269435321723500363909013614899775555443863567524081676996959920806128090782543879189247799764356350440048569543643451914647530805643418566004760137316411850176147350704090111505269874026952873024075652898949827911338194411672901771673039331321958791779888646554790490662288374199446209583208792797737467302867315676860165477336059289022446579904776979106092829257902455008653989665869579797537142724821945763375423729940892390983641231503388612147369844892889531501468251590643929383472628678760670150214069442344860397601551888155445267238720190068256165161969475610970445535936367019611234750019833529959883488090284670464606050018843310220442920257643747604990826839236123292730759131083840357560004463189277347347049838292982790358299917397027372421202724502361027986334184200534572567067697245992008355878244775421079308916015787740692350923112557926221254470397522867918668570891993930161567852320283069596075485682818929911037412891044960763942008780969644165012228854778182966059392630666110693024491329975229681943122917661509908661122333708653033940244555291582941146128373991343228387052911278628342197269046616871677897591982868873800757333676351435170080700299603075645711337968377473082961669024891347034350098947744256322722813754006637224325555361125426048682020838252561388151575173503950444324037809433846225215141658535159249838904472274683345080760576441379430200437883118260006786781198906787941292257049489994828412377061841241214086516367175487232110305999913144432283389340161075262816059794438417560027767927987459202386689520815420725654841558372964516436102308626172577006907153297621169507791261201842643496905798613941442465664633176107858460010156429224005081482186927979348823370541280266297668006788983015455461804428761482088697462016075739212243232856381703277907203878990838750621932062721736389825886443619430354480098017005950787571384818700734684211272749239433032802560989974698090258172124891014112276803709052809044508400746032273160522334929622782643710328334173025319296233730542490337488757127890345608205896023232910400704461407120823696098404447735257268194336325792245758227505771546462405494117141945293770468745978425198119117761684404806361541455444001046225940906428039960170988018314243548904121360216602860294339105433057324141290400802273604117636192929500653289237103011605987341180522094986196264572120063486530173003929458053906788440395652353945594290533526486528556570695931956854756382467774856022253909889919757648995156235067103981398888494114434656760090860510563156914992583449282229152612680412646500524924615591173675080673323779410887788604214813556805055544366332869075893890604873056632938986161370211778830662276167048085573081219130260032789210386336754248438752393758430396448139565053852248094459302563243876461494608865633084742152490972013030925100174140381930799005232619995256195409811986619394042081572086579892841890717025373430770764580328417716888005564846018248966386023399686686562467682764260858424971678838302062467084196398914087513622535331378975618953877726076646741525373562825571329416606662191462027163854728943826418946056089305343888622291269660537027417005271037513223809165677005517573113140471377563245697179264721753878916994079765793875161019580273919055251601878239022795622396874185298944588692532053209370431141086174407928419383173885717423405929789892621597200421946194217221779085780965843843986753954144542453233578288663034113804172361418581912831506204612576628786024093383013509209681031222012172565585546337964298191565773270920250052396126484542133630604305075586254288998129708807452195922018513458371767747067909394942388427034306906226449586765411549384217954469422193519911976192608044871808650305258809562168394244348892715679495331113962984350845895058478053996690498067494637998275333210087680943410676225158940319960056573395794638526923577273692671848158166708819587640890487980338037891638082691436771485644593038121818576770343231772600447222944115023584294625153156351566530658066705775477541527769432296816930359452855706427285204774669496300259878841480341985577935335502650166833932792334147218759150061111176935237625321263697619194862309850353495614866140405398519944310325441423778448388919765073176392340992714400793403201369780139497516953349720268134957413964473840650750015430684068001687603515381781592632945939167882161436797237652171123017190085105703589921952378317489718518774000123345296828431927095251643592183180637616492325424381379420113636213324595370275218041396573537813937943156197337752176849459143390176390357234442411994342773315801481450059258989355062445234407130960234725931933746153601650797239166854180145992654173746532868801737479737305257538679223749253304828695369358149461616821348423419639713026480413760227650459982517302623176627675727448971053275455958828669806983440483316193297789011323573052525453402541258697901733349766560926009130323073266743510422627015808813620933499987620854131434692128338177002278052107612532902238519569516676557533346257081989128836691994133152496362417801207450591552676479359408168876109295944563250859241253451106901756708347657461751180957409308531318999834127663670252114305485509558371321933827270431376532314806935542659231629831772588810357765043095186727937678802156668890135098717117715478973450676545075761067951048142409034300905375121596833622773580986438957370498344924988947610695176764958933872609433566118025788724494047202942420576890384777143273883385643674162279168193311985429911776327371561053109478402953661506298118540600014181768518276993048500101393398620156911528176491417981028371107887134083016018060339016764526386435645315068418724398140856288360327140023331197976405030628254647404725721090642027133276223057973949845687460753865351486469325799344366308812443590461590880205464955628665376252075856916875275143635392895534418335100991057568958616901628195982449991361935931168248805305339913054184044983193118320547198085158249371998263434294371927775924047348677262596564032751810090916199293216695127851767670872554481940488171474999001378729633465400695406131884044179069230131785253256823217253170051225090610191535596692925229952982081508399123808987791518587171455096674112394962495486538537559105529574123189092514266857418569572132567784435261825538220434442903661370489789198690686258114663901249466601984038825759360125568187242523002427108165225810271309253888890969388883773334096591581637982754656270572923268576411127618788537367482035568660597635149463009320928432226667917853538241066692597318510595988315277001394622251719745641682007768604749575180258348741245403490538056226206624807060787666456971527060414810821488497602504077906505655250380827870390409110359493036812503073164150800939002797695412593615510143792646803677035638168166874075737892218589104996425390081819770603921269612170602075499935630559028791496657459723497547167230749792728393877441106309953650840880678051438568744935596786269012843351397816847658535638206897892329001720614250402743541709405377845006370339333367690303460825180926374073174830148443025838007110665381766814835761698491232103186340387088038005947334659235245855577010538341520408581244702535376961548700542825650301513763425137001560633188854867482098349039246620303640989355979268615411247829215618387757982417494633917293615878004918991728473183189796469204331131741564781555255995179176636242775912024420247859770001930082904392515692827638746432941463569849370115330738232996788317254626939777650830393430382686750680999359545892221541918934761241455666461762127033236722651432993725847965822266574974601536731313704111060182934138255969327668895254830252169340055839966288535756810950942079745093300746574866996928751125770136692469943112722547379312856302077329411691543435109178727694175387974705860872362478064296348031076474130305180766012735551645245770938861876773216444573465494777833752287743899904617615123687538133475112678564053975228535664550165532940235389514885694093226417473057368252875171209138216158520887830135581493482018757890491875383201997902334781075450336784945427423814947130846363713662571550489378127411240219922111865650625732431806874455006759749744822391452941158922871897455475090125674767374848887429053163494104323897816379008467496867122495371528360437951005376694751948354165232929578761151043214482081390061951530429021008692934632960843159884777743541220935562866405396330942956567684210969221462431558919607825058681015751205359897137108802065306880287317579671241528252834374282311913988464487781122886536289238973298926283929732039510595931205165274257696591037913574446710523606299827414361604955255667214583744965729694820672626498346387758546108817134874548022264756889762880708891408403060551428192926071197275356315831718163935968726614247202235205308665428961017895315803658190905427575407368005978920537965412377373722576196430338875860642696315086223734705270369844877610580279472109735361883643123152470732379074212681172882025042002702694212275124131327391169832169629523881069257904841579410414726299968048893437913563286116552269248308753749065361345146363181057659378604801739381598669670890414882941500687783700748467448975241356692141882215561817327067515649276672166588077904766752322821214116577298434480315282473085935708936539861549060566653838611733404325844079724096279760924888107990139757834921516792005590848318604634378286311360249300697241895973578265287216677796144973189244253119442889446086984969097799359529524834177921508685407790758722490945188754888094888065888199583532398318519084929348907839446912517791813374064755762548234134918478449413403141513190520320090091030084849284182389659528238229524990034085631904767305109144831036100045631902130072112546618426324767260086407967226823658339873833987648293634176383421972693225209078578357638875204591296386434392002272904963859692736919974217479439554066018100555051994837826838872084882612845500562274876378064416192458259060279204884957986163608911520552750978020006120501491519836534758933745907753459455745743628333893937381389862988122996813427287590530366835585846656012707229765131457462578983547292092150522553940345567748089324011389971792230145463906750330552186770265416225269638653759666932134138650579272172881260495105370116983607259260955906249725642407158394247404419824091539349775670064851666339174213872078732557312238854486594383132608184821461441977562164805365813214970679856600933213383787366842822405630337077354790473814566956335923056421077099261147445981456723303921297216133935927444339393545663637050609254090172571069283028696267151753061005765767677874869344734156407912022187843338479802982897439827002772825207327186803023909467031857879439077504745829227642879761857038139858598587910701253713932777735570845778145012490116176980203393367748325529021605739772669397817484719288556163850146052049678061495547130090206123891503418746281723008680411967751708294877398541996775510211893929879324888270804704786033128782894775159103512374641492627847364924902855114401132889829226359690927997523510975984554035889523954150060660399894817738824993527946865293036008472280484168141340031904252263388153383910539833815689108100530818604262042291981506420471368330852139272784445029897235198293005008180553143468629135063412791851283307699472019665520478056660384686379877604372399750340727556263345283954523591650595199145833341079489277073412428409614083472922571442122387245809648698647827562632168568472989258803254205989262493855512416726921464105579356295025999682896069909180609143977320025598570627568264034698780657639953894563142985065231351767169108804403939969329068040207304617243248343995784354095007941646999958913083351183465797578371303060022165602289293878389923751666168953171392823118442730682405795585135888605366112070113027406929056784373336479050305837103830561205034424183093029106466951593835028089126864330695141195389894690212581165468308690989038713937567611711702485612343027109027006591861664923361482676141495164008709717755406658801403885041126346846306009995409928003408760464012237925509596347919112382978800394149126058303625031851830513826406703583475181106943967102224608412941408535456439405244998281705314929343106656333602565528172266132481246354785613481215833476700059436488674536723258948488024510041004698376720425096386722843687904898512185772386046730752239092427388785238591295571286439073029309253266565548814810493779650536284747568259320878412273692374282886282686191985337819044930444755051877564060439068396061986950199804482696148078702115981305199195206027149740345805352110702554193413173113952704154618651861237877617904656249112719927456663020378491293350849148795815997359904353589576883038335285343479933377179936365947191677316650356295864293838363592516409597801601169017947826639284699412193724969191961392629844950779775289832059273296805328503482376046683825351974140030491458849921670889148884889087111924805953508051987989885410786125553566427604438464764492772475290946837243947466673742184884364307996728683773821715329284722336588786717027501597631178104760235157783213067154708178172453877818801388930397569303099500716611410594160928353007813974659613238244134994606768318448380875471876959830977192946319312554426469522416617564447131468744486516526780164216774736876548240982930710484265258456471028493724684150440150981627748237979131529208582812891858165215313950105206077263435931510299474526743466775468633891628729417311430826656631771103407178092550529814144372509093579591542614264576693993586981040617647223834395295006191934047680576954033815100416276727279128792718488106374271165052775511268662906797632164129868144722323552389824978290106959852560617551356134851912217635827959611376040775660462995462464494403735920186194616151509375096026327122131986306741196952415530018746211150716800347680106462188287460953245644943234573049646529845947235772473663151927913716322557468793009801275932262551172059990669347019806865763295763361995942667332441829560580917167135712767732034685971424304601137615096190353063687653592435476182413423918378770938583288363502496056977971340435336746274846830321738000995063561830272244999663153818114292968130014838137747168731974816021394058735035241715993293331805219902316027076557325168654585903252009076854653573024841053080546898590477000186434457600909277010920522307553044209247723897228846693076792804343795972441474211890547058158925741019761834395756006579410180054364623029826204920847277340782311481070743487518540316745943523765693592537018672433712684653343342713800236055601864504333303496678146070843117663375949731333053612517866273197024565982505865408998559564880884901343070826934148658697504736858237777607123697567481365682604016979424533389321783841436505240711763356152855365819774451719317878014324156218102826368588021984598889430082188722095196965942924997090154644701011395819394161545207507405877668369435023245540653793556816237181249984043833753242088596104752593868717733507700554505900942544433392812752213447831018341345039388574495496800293939222861921659397801858176795834941865503209274969632504537957176731234639967570977538121211030253093762750846769175066429024669328463744295188560083212047785745766450209840520307205124745459760950714676537186269709118705204674414794360250390281910655599486273893453320899132173384458394130927235235942397648972040303809526857703490462711648338539630209704637823936419188637274067456321684599852099895169837063924355815576813510763037685160531516333427319865454207006950500152997760087643568772471853457570951151980851059287778237530965200946995709831429854953538835515528210334560609192813731346390812365746483357879853624443774840674993131787900400715667468783627140429319227625086546470660321760209683921140368146413296765932732707377527537008807850029644228867930662276402538096787371796623801663411530744981776968009982406943566678093258448163819941327674800613847519648091009629678353079249596438847951812487128563528268572155539150569693385417792064124781974748232632229351458423419330841322147329053940428290965612891641921599846312678181591217207557166606001548372071700712513202128384528633448530532495378860222824554346227361633996971198396986169407986107581748152629990455676287837207482632332259609276798695611565497617892447196858354791595066404934675414548768979444912560885838235060657033675445624167713042414157124295361662070120748396797938438528651806044820730702955157621292568436911645922515931401490379385154652811458120738509271739491467528451156994941980554909120086022341188555730033316135501270928950598154771184178762883077550089261419993312242927080753563836131211711692146543768088855100332679405325078116252337422132144170705861245230817837400699897568957412326396928315502613748724031182176313389487793247034483666823020053941700926907867561880693271091589510111114736785867539458781367557898644937307872699051412990945823080785916346541149731272454388200688406025314142802126292455019091922774705505512775541522543907035281453597181196571740665717419071255128937161161199230492066434982513885168235598682712398097585869425944722568284270097457940009407076405271355803735742461241636335577257902584031312474740643457650113260119415914969635945414306336169787065759812273515514182423730252242647771905549521404708060493473940720100226771248128952459930256893165992756054390225449444383376617777181004507874046843451725014712774800697080396427772417401290482816139045972056279000736651246096845048617911709521690985248477547527576111973196529617422588749287254879545075213538262432437393510732858287746837833296048143332886912268816714921568617508032451306792288026367317313307960430350100371782592135030890824171564761149138722395460306167179502528470219284735482192376019518222637522621365761009027141321149029111960373037710654831395629640694501844599456046562100554618437576413940712453793415761067441119094305160579781313810188191529280346338089227944901195977702142788368069635587417513300504655476528331432915264441719225520355529167491096055911364044435343645692832185399172817083164009378350444459227958098382210014771732850305049913738680792483914992999776148112959178323075712253233942613861910692613355505584136794487896981926564312627344607564026590881541511263339024051962393324554126642768053017880241942148803766973954185249133736867953936323343067919228916893139034785191370865738535715457981848776275391518750212424056411485997777748256253620311916675538715393049114318868735641382917884040597110836110527228687745538305485008140071465018313159093387281631708020951628900994972490317375836452198978192440287962802647983421405590362105279231517480232676323357040342068085186984693368028921143110608822282110929517226870439659657618359512809407808584997557147356934484167939508070111927123240894120292036962624392666633032174428589445342809986333387089229225890239452366686632731192792873789921242268801731407108952559988499889000665676689160724967004547249531162913244993526249620453507887701463447586330607673648468281363943094975114734816241472682417854983238419342399361346044600726780423169019454986704681748418954148669436847474294729481341174405302243270870823192082675287949201827480809491881593644069009966749167589987057264626377838732824237738587141705640462876044988287916882548032285641076948308836591854842473321884455627883344443970006440175042179774120714073643204586881505715872454817337627873721974811668964928118505861911371329794761213381897617102628822254759002484437594596228624441235622163317320326065346321607444121934403153691989476932693016567677642418914584314075357885254691378368123491336466320759234393293187636113846108402600365713925932622977504318694030794221079792878002017147393659643319135261170790960989983404953057463373757140008622600163662014429736996817563179199625189570168785736512300910477550200342415513822152167660932618746834100511014839022022265226631078905648051835648590744710660109491881930733892749220942387056152515914578189214241743755525393542654741557304746546396791243550277237173025679848734926620902054144173350947336568475472934016715996357011650611569997561916204032517811546069377755584545658063324808452135290163444989485908989879356524802935186449354454222910978244464790037465427105261273092004963072755640415247894373030533588692352390588514498175084161135232595958589721348494861035206357984229825498901550978849769965048879292524467805679901641562006233850045432513185501348897581041558060080682256462534507287890672474761711521534234381461745135849493911934099966438701780818059337630965285408041616576062401700161169001535232603122906454458268168803312217881623405917450202021784518187447488199437311711258698697482568962130333522704146087310316669608384866483530504459198034352570269643018633276811882718438933470537237397599989386722881814154209179593884090554463488342899142081370876829887162922263131085876818741153623486330532937791670219294521480622097505563986231523725682256770187100849368074861269027809024034316698570493894533414303453021653132138578911438660540354067432569440551710915055317577134538905969161081787762230633419525992956019764146925406033801161823605048863144806740092019075023428932817960276840718200010157636279982246256176609189262399453492338621206234865899815559724703547359617018365233917226688753599981291426954969672862755596476458989587291518340934007233356183447162571128476752587597559424968006920417154357345147787765124441341338760089486334545655338587589576621076412780193777725957233751506648101154751818713331696808954286543257064355709362694446378547490657254714043116690550283015503389828698670009129248771207031464117833032726086658465430277865519387164481973926088430945377008190035142311953511471771544183531968249437975290627678131627957151496684151296532738115446712377000009044601331759005405539987751120332440981015483630271263359911744267105320478905386107690905078855573730216518604361587418168472399557789870849169018848811579112012370158351955391025734898521733974345717766171702410442081080324086684119710463840839859443138942076534444800867888324001782960865327659185506771963843178168517760511522727448688982732816490967285172636897057200705744919884473764186592541167599676129830416900431471809766431934055739549345794741530065110520488584246560983083176891561719531988626121667770150572686108973458447255249070699641253781198214319521630222322911320448672548021524166123650114492291625200680634494316564581343417664280363654753575201316155402170486222099310396728163589544688159281654738093721676445835766875251753474866417477264611961922569686049548413026909451541294669057983277643445456882686402024228799304893458957200137598578898469100911933541299092862454261157488560283763162645718575081649768457328047803967362727937250281124196127916141516681955453163347668050135506030126118594156852420092185063097155459620127485736330397694195646114893895788212096125706553480806103435852605938471052599407981817891857444354473229539617120150913924761643106027967340888551918358886362437012018118878427075032983893338351471243060609332644254614484356686368802061655803010271069352824285734683162067190101058180226959035941347709832515208111074325431674440820593791653471274462011082267416228615972480095597556121970616721193069448159951411467498344618519878769889472931407542919194282884111939512918537445792092077836543955299207197140855382766132747093062212850257449640145052473800365676914556532919248232189752592210126223977679634008935554607197729833786399667442452059333131122474580008337510408671485464606368194574651042719558922813573177838810563774224390906008916255103297900987011747158772531823177240113917138541299714345343855020058834880773190761889788248847190531125596108380619984200434053783574880421070541748504091060617861415049043083144425763172282356724048169019556004123284291584815911353727698126501083790903460691185771857568880554940452612126747600646297391629517759789058495477465661156556162653504644200255265693223142992530113924457218794502013512815157156867269326737323268185857705046696732270065144534014152029551831519804713526052841227670996968532422801831870382456041759161210656506333045391767047183830818807401478989088978600499038573232121965853114253813414726083395359097342151499173996295488587855049256143453810210851109010573815362542746209150527158345059403155427084327344681360218699696574297808342267123374371947335853149965217430679702680978094759128568650064633921460075224809601107994894394502358283319099419309903874119400781937341607042976312807534048234720646537238135448867467466727654670399207142161657739873664501603301471085724466561074956416663673656420087458851807308034372017326780978671177291900969127308151586044470344201346100998393700189926523008064415242294517066827183595738905242798820098288825588728738077863079055105385687410724916784862867701248219425898928550772208124837528102621084087625477038335017858213662768337837475116699797174107707118345795352691643013827491226721843974152245370207930688914501635487425775266397480172290015362277711578144945563773987959111684048381703416924844330344378736011397301282990334739240316689768797623506035317202116985360815500903390394966509483390023048435298103647887634983569413639073848953951823489763923245390583553687407829185848603001853094862593111867635063122497825862352910159551161560814177491886665256241119139582384756612756157994085246310695962068584826352813138483544472528878921970601925134441145294210316197853258938186924733846584233014379527839428747925537819242250723538314602718864724028850887741172669251314295782702981242549376299451298569986558188674912183828038333559129666139680059971465292976389835903576330769318427490649007699397671039916559604743487836621224513839581273122605041151292109367263769320493683517991153849234316284867250779613634393458869356664263080724310889666936828237039666576686368430964856200654551758980513100031615576095074263992086541420317469813562428236945662501318916933614982943123858682460299903333963733585124481902474026605962645773345217204195792670322391104796260050572549305235856000390250338981253006235591168786950932387640101939907914471973795862662222268918481253018932043354527236987544299923746261886160834042187913779937898332004041846303723122930949236736942014485809464771655773564030988413352446358043395105847312490709803797376366593561746728388708211826436194392344122073024774770087105440880745253988107428547967907881022379310593752697273153565311590914064432123724857428800753363115821415075560097837984005231869515850137650729157622845578698618737103078927848419075543208351207959255015324841527555001932748481750358888565912959670862995921814907811730246801459323737718411792620142805943993737537111797266878959437630420988611207123229854252298467508799758146294437978431802376642584412401725351289651988210556069067715756579146248772649263926683154017587573123904417883003798461908359527406875690779807108796725222265502055568657131846199216235526380399104809754174299900088978818217810419808549908236281345357649836946784816474458119287183747864637767882839658237773485188234156350925167197612165700240654833253503854645617193158773905989636787925608529558416100695927724608022850964407585475998370599087904662515570035789346338326646756409421864132097711826817772926678887811150900415690253956086692202471035333755775798573552978643996790604474701089039849971674580284215209349246482356576003424314156647815360793600832261617446159226159376911332171714886560436854921894320573845061174687517448996464387386163543147033628401615564510224817533058469148233577032437914157831869699860285020122171353322817171475149982196228559530491834995353180098552477742085292292683713856556275842968334791987391783052229044262637154741870873816385956336802966031447334155302966450409767549564693367465354260339755818223365685417323982980955208123215446272350948444616873171334810903277655594861217043163518812044302705813593383637169457089889083718215906464254895840153217480410424009497267166740751218108375738587468755054579358064678482064192133523796634935064627668785048046929661311892063990616362380872197892299538521846540593955707432762249384857726883342388661470825257821603580349498009902599600359815057152037314694789145301744313878091947945018092023307154537016330771597886026007825064150094960574164487228735354036559667390501898680573702348582273816674842931507741433253905369922714662882296280285555262476761489405815399844406754334444036597497347340052188531837402074068144536443446690731711634934033250199357206663105842637108318064549786936147374904741545009479361644847958671673556690774909714897943796250592001730411806869590607424378779256985003387833178484908348687483951093149318331994217292304037712462132772348740228069172604976163294594607974538430427622662091507026318906553971435351685338667341156247163328522199462097012082720004923332925021323823688240611866374840099814709897952050942616859537275300353198511751625570441768788464461048275265382530240129136905255696270947800845851707040629015753326329834047582499771382826860517939720655406157794949839691937189595886513619323964684346609391934472843321600958309262697913356252810548442697732760259286998569666141197691057487249063175745138442696395715624954410696924337324439907234671621115158410308612648841005094689517924447707080106957574498207687539809609730232119329642749502457231611332429007284964387660225031152076079495235908016938585910772935915793960022368977579032888107747516984905181561551136863623797933852497792222512670500195360109394376022735257642425227323474037241565120178782232407458614564005889932102646395830204722270910299635566259517129819385971849556296257547314889325238038877058429577197207376532897405385828749418770890562379258693852483558111746834072427055241463656737337555204654882119928415906139602419733937287143310770202666163302280276945312051835336262483447007619219146152760932815095906147245062958288721079449220980261385756566137566874687018263908588456417850694466488965887895922102063320737089502105094795721172933871307406586132328989420754572792303411824451210072143814049858327976866365529903081244405551654137916614887866809987759686419964638409565853362229397649807065375925695079922919172118182643289667751426801896086741430195021404680775643358888629797247600341486285515020243328977645595827317840824641993354070234690393901972633789633967469426497474493695682457114141845975162975008456876351019177667999159148258212164357864406577588184033260920161604294324140813832254855109206707814631870552845096386625822091762452774943325140714906520857498261402482003741209208164299152264146044848199902210050101825042429144514198043471066948421367164586646076954692399729952114724376403445514062849350686770248623553539926937399183284379524262991970672782534723192536517200905538121972574192363912537307767999170831069528282228449718802316367841652904285592720698919012521655704975178970933802452044452349852632528737299489627114996704919328324672958752353100827937559094996453422294011635962298628082564828565316428079188335908176212164697951852191297199424216416028357826649865258723643735196225048490635072804522944968345620301711144094060059696432823889610412052653241600478727966037434383938810788320126834886494101043407955884044128299384154057388149879553742698279268616841029865907679493953094048990321666061089691509296896947735543611871031639282911587080241969578911953994424209930379568191074023937321035222528123714675929581285430180194430372628852081090738842945525026064865572162360090992872064389342685886073131985666380469650410609639209923290334493826055270587696122236292775117329673875455030819298538039254109486334080411325004887037172435041425088165378538900473781847393213055347715764008632040551148023954116080568492307518300800585916219279510358218461794758855021540062477493828432104097786410167804072563566295968211021402560878488039391048657018940711192197946132067112397480176076487706196719371340325880951641023248128069137602639449241243968767507050090771449295086446438503074725282863831899584897428508321453407358583656151729868682805436969996622161526070730152834202812976954359421035869870677999126822127281660161822392088459532161273900856162528113832182093861446555921853889446839942258443857647610460073305811109153650984791519398652335139857809880064462905367815323978524026369392111838376604058379545519369412302104548549534375148309836899891344045965983833409717377654752920773444761988691653420772032367634824420047404710935760382662268878759156449421444496380260454333328383803472827788083191117677893627408346025336556598232219071883226605151893345757041999174602528869605563448940394912794653992504926083219607847470497208794064029443750112053266008830192046701863304964962964834123164771077341697051469870287404902743736979429701863551752706126276884086768851044560448884153224485100863969954460858282601213658634299874540264762443351322336274681774610010254431411628129734538578040691884908843276855722995348840422463443241727892049693838611501223224573865542497691501330766062746559001171582768231340614767681500387287871768689303012590048861771583785506472831845883369461392843115840783294815282582988401819881275529162037370352247344706456354614469562367808066137111096214113868441866550868560301710773084769192609173204162872187748330315898826397810238942054346957434043811090948761726730140635662236969006461060226536834747364730579437147392035996161567058232749689486841894644261587772931775921693239793481610646745086312789235811057351023123851404910461156212945562709472627876329396482047815065702640427371110900109896208994113633867518756839937600177290374901971192044056865576104461787967457463751937099207487625373944420700296090586801373181495707126293070656976128790336067949825249157053210195521653305707634708300731988096362277912796752287068901240340063134034744936175565040815838334071187687868800535388989335390142324282978606956143954320858588516794475672282277285042928135231456569784057210610720270816087976893906073904498189343338077362774864001802579608170928969433846296959928125987072419927177550932816677980974593518333238562174148323978478964247754335618878490260667685738258301361189142173885078327078759572531186787770716850866049732486314567083203571635823837917596238309635899452917158578609341818566028898152286831451681078436103948857537142509471292514034893115102009773783190617486435436141960719282307956647878605809692728348244357004792950527252272534149988672148322641259165065005318450706272361835123458386196513533398762409041984013659619328687953237184837316909896856665061247455848097064522330070182916398567368086261760397700050288962368979093685399184223031588821472212987973910949416510704277059832584085177882998562127862120455361555924353959204229128545983014977064649464994939967568147859392306506189995433668133053030610125764189832506957844403478375476125577807535272254830488051943285746948898643921087135152075434218822465133041325465538992746542051831562149327120687953679316630888302363750536219279075743607847816262717821844484053008457155946231112837359065066180070996766082594861442421327585143569764483336483729615786109279816536158359231673667350254401475876120971896611618732338512583034518589312458923185570703168708442700742236195127939211329574008260213834743447652194019904315064299406972374374986685287691826081201358559997286774920890523441845751625336148021136915473738992009638206309588755213165929316812798538567659819503455602027066853209274595388799166078465445028824386258800206302586335381873518240626545355386625413876487633594942492882197206400754927114575039657520181558955478720075999656078875399979081880784086744538822148901739626591369105676688427117980044103722337777525159187070240761509497302343266363876835206052822093160108030628882565317171533006211185356600445076093170269139187900672710824269731971885932102669995357927728620223533010410218768775861322639235073046844241681231120491543412314499117866776855606315349745208362465045829260967933616321500813092253808134460224710953114985097416245176441974458672981876544374583439474216450329733308717962289961780191130658462782106835435721973429107411761041359945810929911935877689620514591462207213384458754836017092331675210605748519795429394865498734071911463953090390282628602459988322244191254774534049387978553304800895838189604948132690313376902022165872560172621708553923471669811067150293484323675221143962040441661298936842589825368489980604697987006060391733245967181516531674200852277486905444345845529227336142782738193603134192866630973393314097515484220194597049206464858670840602541255544642663385158428507966412310468812684546329482513104420241014381068080645939239284437440814571369713182102933148423372108171111823593963031756271438815459150927907992217872437868755675072115432935682388504795259853316987665559993618930500054649267749169874876121463253561595318460469157369884311589092633595689464166250228552197094935855062180235364166079728242369056413946974951793793253495881695149538857943153358208854487075766367287550989091218700515109044836927605085054807162204517646489486284334200557271476747390899721019075855410494429096130568494339979484354188239454739050997388948215015685427249432776771134472923994940128859254221296701365666710506838139443978967384997958637448608131281989288828670081841606464005337360594513638779078865328864153231461624311394901506787359361388809099283856857138798005789853969108150681113929814650326542603588760279142127282092182691265752892685891837623043830927838604972003969570930300142283716657065046235052776117649058345771301288087344119259086481130942760682385174545608547974079204273908403854182976409716945862275655302583272312599384429223216688214441004009888417353299290733557930759736737901101275313938829911289682933688416729095876934256193364731381585220527519757757735748798455926219475673914095571445114449485051625553235240009431920388295060048144131843466060466579114938045679077656079488975744662512343301619261716216990849143244766953023525036452766346812786062814448575829835133327910621447157682746239779764279225691822070426325298934889425872348042475737552901680604596178908272674535907664469599683082886731824812837924150167158937061775439585145682404967996609209284582769870035894974448015464082591485499536749030000198953806581846074768007056451215304460283523709993017050520867651181775982214588192538701888136722792152429903475160819418340258676969859940808536620250038608176567852282852509278522840782388724795291451256706719432489897378162183318872395542049219170073260287526436185677759761648318595352326424695859367569341066966747551568637611387322269515893409475047170951968018311934484598712551185782557338162679931525421279992296379027523856311897976538265533605721796975090580736301943048554618248819408038241424829844442651229981240854242605270939620146923746945992396868529943384546712724623493559289003322414456139666371341866862440555626761526080285564042368324679908354773468286848882894519590629247653685624759926788012953312788915212139154741658794125120101635410892296265772211433862669774256861902853847510230662220386145310946335511793049794563877236713412172563017070110820149838546163687150457757114108905550687040548135272763337675124796711051891033587237018281114751602742256005622363539790024290069454391549952247686179976580235647246449356936256206821777038422429663791983368911613865478503195543059761749991952471270923873204628617472756881973480546858277165670829128351088521695996441196131117804104604232642353535219254568350742219683575657104828815853279050381158005550683755347392427798261309245668732671438726093405729671320399161596578402634121486782796865691729226792734724731064104459820547473537259886771480005679631479752422956870474841519863419542550289339053483558664747058684348404125085953396262844456799417147779557968517807987703636446973147156102757646031617319389639397266376772392129411177072158137690294954043526323115509441037609180116914835216372461608167693351953489590525362138842503766487050482230329252996516389169627443634098230069537321250947161723460703519309440840785772363391545632755227684059107121911061717813364189928894361866225113170411625657405698843616023451342979582196392121393023130081247725681341981855694425590631035959262666178000488959094350506763591913281585425859936409993852008655783232567717042830506366428797010561953764140036324241426894344822725514421403043027884870226733267132806319404510217036762603086406782573448180187394163242563648158724485578077882105859976190275477657231048713042534282579327784091113602330131785322299612980356729250346159916142653268535453824174796715842171988492999742051072756915768737709891820392848531366904642554252122114767024325452043956781011141522594308502283266908061990906750860273411759071222393931143120420287477285091010017157778226918510491529461695159003459737396517767502900648389172406685795815927233448040103606481739292831849080120582306504017851157197070973531006335151454229172025916678191282107049869357893711637106183346854894081638543933642576506151431377960179949301717807424009885428972939504275664104428600332031725955180654572263461172308483768618968381601770415316624553318842961280313825276863216555813914670164479156493897112958538862854663676018176123645961046515835240518639112268697746245516890908619283004204363398284812970305504220891149517573447320699662079181039955113699282176182345718068308271305124636238685531832648901226741849776339073114822821307038249549801425937605423063895076257403631624002701475224847874812812870609345521897621845912279055263727235307701149481426014626874402941742542833894351914323156203656932086583072835540147340047597282452164297583312728077576124237417186386839817009650621784499164463876609220047823017729687691473686460958161945536008661858594338259812344043718027511139002064130570943773272430035975378566520580569939467805161520935817403710096291110948822876280419735286631824705687969996160115165708630924581321995801933738686619478187794747821841909241124744647522117594341745357174865176194216374959762885528535140011486288947639243863455497344275853305787976088542835382291035797347467689658071973550271081116334987880867231677774386846977079335300882649732136067879156161253218155858381220351397779493108767051105729457081572167803146155982738210265984508985096715501549733287875867965002539637095268534536494616772665157483078448712155374386088654233766218891883523494296918189409625551901777999821844466243615036494122426407299580459993995305777535693296684172233356770858767174348443297178428421882517850452541064255134345822095658388799586367015577691337723073071665151768121440368195541840338672680892376280688079372851645354145229029129090676100463098797870408349631209972465384731378569917447801766651372892618018872014479977683204188853452079056185983218360345253337777868356964219830676619080439706332096651166488732533020181264512202686878160294247011873180041794635522681484948286534836386096205522936582707579029778984111674118782818582521951597643988851920879013712131506878230726161422930700354216340193582010811827883033740579257336874745486368611261281869670470234113274966450187764727997391167472231023725893204457122304320344856632179735775649769528664969824301167368474950782504692965657166035434395832956157007525715869069190567664890162034740396846926740535303468480199374348041816717943496571774137569743550274974184972443023416745849646607453484014089560587632515185239102629602918540013132369493827707144269633797731601732693106756397642830903238427500480458671807118597044510893683730201288845031937790870371860012528520875827639925311582337198850582574584964604157496719737446940378972338716279782439421542213690434674338784748097382465203236466587692373335369202839888869272509455937704206135502249654653534277009155389149752182545238237149137769726506178402117799306548308884149353903419017458844790309466649501117849647694050523713149445326377285688632079058585012025070220668706048229442442814921580536895343573172801572562531849708279088227693988913238762208207510320655846859157579309633164417560413586714126665301401544185795739622594593525263008198186880467274745533582854726806068965536683554165335470670024025797581801462042152943410967672285797687110585898002069015458593255059163154363211159620306814135671000677835510269225757993032332886914238029685040184511650884029939755968593156427156757715938172263873742557253718365822619505635511510917355249965037992780116730851751916445874915946587764394710784889144610709385700896531986735325567654835930350544331369493276092932584724291227581422269707652845804805791248866300042881435220877313759676165941428865595601435060975194485776681480881894604121628180520393604708650504854223719427893582785369603753896280880872051191618078682779729329361419397771896955882156004025639028445884705856024757991597345852168659630666908711523519992538735568292698036898976183737787093406621633651340996284645895382471870913609411244195192792032799109276071461343291772283628457510793860336533687735210400562701650032553956185706465594104432085436474782606990016362536667860213507690896988771264337221020315536959426939137443452805953273963673213529400380476808129763172463579772171088359769821041719354863296142420819205428294015581961657110027879973870236780592401228339774965951140986418273012396953393649170257464382639424719433990145471236404644936071617309620428641574626543105308641275903255325726330742597811035596561363124335433593444196948030794290433603972358575001837829620312373343908875701489711253682312095241969237451512737966353804281307060296041816457825499745173843463482162917599747365991644099244508582520140264142596660699986125460262451150179681432069065535723218319607830161229084785621585085594806186664301190989098520311558962885916278392329514842711533600114175168853247983045872489616045203194454097041133684960769033307997865162097739799955264250801177445111099971665987419690758303163799150843920924107134288235471428873239635828595672314874825365752813150251054591264892328467735717484755281980154129369901235009570313255488504708542103818593454026291405328264706954583834120137767279102261199917381595993520910324238386571305864471971876191547027115394261988421475602497013027393799106792719196768567594143972577446549610695312910303336286192178817923404588737700341384265206007582143724415825268168416263703961302004586900553647590582826744773778990118426096787990788121894291220348086241948055576369361895104281268394288498809016339123865339267107191506051822284926190653375825825059501955226707571801765841609077656391446364237014513816919074486855255568526668154691001581784465862922215625443569403849238817570835896336804521199053464784865305354709764544030044400874869410410931375331537706143382726943669324519762917834753274675190608137024937586033350868903888488627515301641569224078489067323883266050547069750075532053614075831092964126426200213365379367460438391555202402880188011974399151498254444469439743908281514621972687117681841598163182433764992487423557240535072094389273256025106201715341312157950928596951233204812899137911768926804705331083650325046371778911095708203817430497383767314877820742814115304598794028127280210602229449049657994021627182732226960219162969056948660041316583221234192650831890894098907396557603639391257237440285725108019928626916492765103351958102875622169772290616787512170148991270683811613803324873955296605280706104291413472422476878798647413406848570103954439762314405329477129286345640146625659498337495742338758630208621483164645246079721941681309324569677088085858849487722339650567672047399589779265915735463551056538589507988113578365038365788998395227261015544281575313875695714634470132898754110058415232915378710981567487154137734336370202928528131884879194948940586101648516098696981401821344073355654578651285828869092402034824994767217022908408103316982864650337715980995445430320152177245378760907760470120484353508483479948297748864435752114749250439535889545984619967168280094620819884117645316323896224670245553635398939296981020103417176395898111674843215843119339527279672051048317186289196822326754842381642501557958078342302777572142814459138269213611103958083208148412729705459460255543866759324125767893449617481213368076210782366646709316851025271460962503651875484456707887265723035629445415591262803398266555279703667263523323468514403850710126211809377319594995850890682346974868094210218096983998441245954817623738489169938178231939524325837154846154549894542697589731112892955550543503820716067731538781647830756325417013928548035736334407325780902941511263463676687627631933802836119829275704307235411032526344222929107799592052203822794798599134642382314536449422848340286249263490625634102475450748730362953560126511866431339061890933618911689009166057083305387336855377779261259162783191703057105631482315187370810575562310105928753393108454287439310939282494988561319400992981214194991405588025951073851755772830998397085033675850742221047528716564873936339792112470311342030220713258746798620201959688891663482641600891417172372211707495420230700732724920838785362831324852223398360218550043464856057075395132390866433417337165375605255341689525924775141028091254709911004808211366912054170724933274834185235140527704170300817982722808539428566181393992052997553264153812646331297220443070588814426646107646277059596705747708294981122092926651002001716057072925312644236005277279060631162432240718829054907208957069849412229410807145979977544552810529187540084891122264173176333099421959576224114530511110411161212881492194360383836684496208519918254374491316214202379070870175436394762245933817836405134223632629589201535656506010215043970602597387706220514549738244601314762767615981579211950672795086762974101020539413776351791063430083238950669517345426696614924285743033757744251750634284234192013282826486226931605903724642902062577816963148054284394461192774126493150732159329237673390194478314597181459824743845995550637130300394274385136757094019049163736081334049879419198466702239489420047111974500645318081637007758107489284727482307948946179994506825094356675575197041762379588350031000344318017699430945683600665003951907947906372658424171529956876076914718789725779504563495539517808015580990486137179381042257189647623124893552068647715901305183097092834485639123139754692222666857281812665125337010516874767878235401091785124257012815416369411483884526697509122366143206529478950165625749418241860014784622758146330122804010917596059945292468776669712142222123810728565052025629213360623736514971293180532154473803598763327366757256701629409291795048663473393804036295689410847228100329239489621376864691142891611695633429798316681620234816302080931253703270301901764015147470758882944814599116716092795119753076264759563794193790862307132762904938253499490156481556622263251902707886751093280479942514089317172549543378556171016162917376543028551358754886522622196880356764180460458392285374880500402460198798810492427835167341598732696713407120413591657452206895876114092031897437380980588383243076543335034002903663044925200759218161046294517715188553752675120695080106433113164803226108523849507395107339766553640687546573054916254965371317652001517934958356705528357949556853177957115622589787871694545916285242405871601966597085708264609039729978323367489296961583992913819278994254599552732262161798639780476808737085592513160950366177118095656140442122122095366208415939762953885181097475604599616125371796393962588427917050279728541541258310077188282050515205268419385899176657383076128293589561108284494650003930955804148898508401269158484489502834816523191091694902669153816056082878815504177718919163566286945932368727395849478209176444669367384251930906745292885618131342417198129848395336130666105975507049229668418382901414032727660803445738117994273102813840616713294317540006411372896935777305063592792530294746893564696580393125159928933016453821413269935267796379632773835764723225870673514836669093287555171657839424089504112936152595391120620163756427878712148055938463996424964850299432596557212776097921347225484045844575936684299605170031297089953674735749617603869663187735759090674955182006126489094565051863362167212970959303851175647846929458157979636655636231954272837069135684962477622653972033062294674200756740427122114527734208477829956054403280844862801808047162340518092533946662419416581294212908276187685489052774492110867375822889555247744967121082283907606632933316643436895422046504770291524009183064136664395817307635555349948028955375671363133577286790944588095421480259339683731255004781701076186466210307351753576169630395067864339907223645451291063931293587213938994989619954063975417222100932802806061707227566130027034741290822992155179549070485916348785481152822755157711020026565994349758511113122610486851653827522162588252308338371726939777049900100097249657689471757347456880193087250389131351750936262647024312100650950356142413919805340800238951773867858865773441589873306956993279225073529558610758722884469717457319914233776332434918322776030748546762475817652824894791137065722717020971327229447697597446091006548003689576612169433541270978653755444963332609507312259197982261404821783156977595543366116134851117827321836739968603036124326729741624343492718689386319432946204040487835174816363025402710495367463546011398574807787081318106379254329527915006389053746536391388349872678950258687032608100716955082179689265860180727197357190296503657606495593778334523858244985342318265580866171133678208019809392584520588364928539063202762329992196473549174662729346691470644293655523912531886622862512186953594247091144190440898537297956434248366974957806635079490231969918375037928069518636931376174599652706776732352724361807199805878458711423757460701481477431003972195824980373135423148214906518487033110050380953041155751807153049410443309751357782069116204438266639332529881948808860950950713624583313203698004242320700497560031550456123987355290699514657123059105783011218607986205170934535735108219997238037097889841161475787292673488426218141378336675799330360382045933129687415776827377572221720159183103848021788245926557552488919977448139011644881483160435965161212594153280225661299628074266859685828049995316710343462151901339202100510016275402017555769144553030744122747361266659894971569062932187837502720272165661235939223421643987316265539562751660271821986417611793405984619820697216703569682385112783949433399042186466853882142333713456564867990853421121270720281371894969043898748226898517635847461527105721639958548698954594984641517779635089981489897166351368044746084668366967790792560704317175160348990814922656447024308973176986117217610316578206299253250463435613632251255677942397822550016642574122649078646946731382164779741022880083449219814963574325583294580067828592085017546975890071670343992999337900449413670677006521583151080704933157954048129256047783296125656561591618208156843783994549281332989564225969181556473978994991606825358786118052777812759374447750057778112862229199887527161080193053081323677285295706338340320945400109082832478782009011641853992021324883380314047780908033845157329305733576878145101614353358971980599105477383457762258574226909623206343398242628721162135900647862764820147687887331495253338520280457879609886005318821341040192923675790503851810415231766321394377522320232195477675551492563647508429585119245421850539213922684866998138683584014924103681517181225623370515121210555107382872411849644106674206989541283763664864665839285749195466429165529178170633413557482503834235833020636534985205363253440891494835313209523400368796131558091667085050847889837250498551252891945276233717227535308461788572604677817671286455009164329602657886851771901170103636353318247326702805056760932919721184754168325357532107229996557475856482387187501425979796869484179904447405529288054560488337564766149161953545305004029697779835756797217039658270642032255419860553064368194908504809163905382194139829003406168811888155969971669305165375947884471336676744372780048735361669534645941269489382819430578037621114215483057637801122607996843172846548538984441870675837101522564930566752508547794842796164906123999708081289658460901866524366318113316277400065669302639464923357351824134222808579868852264739696568538284656205687068939104655624597367808910373174421839487689214765266523531543821796062411476483845572715290928772150011137797414137286044139495549918694369953831690014911863143812862872039068272688794978446935762698641559090028158852084567354620493243280833985128584529005490330041026823794602733923276885589453609719568503836099538395874611004642368465471040442446745654441142944063113674819413552925020538857879182845818070621946394000757963248872174115898896489204385238976203153818479491151159963610303654700609556910660780702748523135816209598485960260352352817650496113629160741332118820230868025500534267386448318086222471391515043917494750536182287413537800771333918454370880649606698956069932900071134654359628859305873306545736172144705845200852906473078032320700647990830859715567566892905890099089567180652591241997702943323094792976684217435150374038292485925757273593167697834997373740764704031401690510515651223973425648752886275864363453651729743752055270017414638030718556463634466870922731985591715262115312955366331614152939007648934456858449129714083069427092755754823554870823188141024699962223797549910618595666294980325222679807669761603784183881667333366474403252624242377391298533698113522736028590583433343113304318867614609811762840669045932248725649339858909600816881112890016457794126585575117377377758476280810519444210551495233472005350836017054451500314238977600837964471008340111665166355621539547879691799813316922926769805489733378237720105583869524552870480028382516944930248183011817146329369192529363076831366120794054841890609180623321564874970297023262791246196876744232973270058346446454335984877242129768913994909286902319129499688623423523600909902101984606848509466548184638036562772298429496477586538512819780320319291245838558267737846164263162079266215138837953459829956711884999741044786972998758874517285268140298403295091783427072818482611645195357407344226344838202578035457408955324100821424697467153889581364149577700771359450317072983379090120704569330160757329253742460486259610007833088426651586174226059465912386647923535856422075645543714699184086044153147494054329093814192269750135385280429488331112084098852184375754376603597416525691648277519301230570633163663624561292242100465498303053461503043409255590155818736023608400347766783825802677144333411319447020592745849125951206842741129549783606542814354015905250786314570410198687404474062221193565978104878906563016588709711701628903272648039402429961981043623786120809127056963379187670574783708957465197474341956225153200885941186520116035155546878861448916668040153719044330661704072473934150136711270043160614564446698664662148940549046997929184961232761842284224695435841149698278179407828790382950228247377823047296149187811037562508208856623789405315629555674092047674224384320129990488365107638937977861012694804541501402738058179169437292986796946074850454622979837822871422593505690316918439323860076500755460723137729604528078353002135741360398047242801960212865417877617924997556101205788705911368563555227455840329607007147740441679031342467354166864599376003679837100257617910924879166273760335789759746632550558650598353891073742468652331241038941829385151134758977021935673653201140275123725690224208768754351536637364909793544092898768917298474472156945228080927611862990448113497910566151747277332494610754308780153099341514005517578944514107049201926025660856999926850532088696140249607462172392971950860088818450616304103629258321290565550116392142273025671423314086687242906877901310058485021438358615551467678719830943640813218867276696584619691576900525978751127544729989652941203654661971810197146973959569593911991217525284578203098133329861267614388408154631473842616407142837429712293133830630472154082923941442216650961708926340740859620899024198054735155511853419304521323320687214116892531433183786842291884208143097241263729309595919361237205259448164656632029269329275495256572161119648903896662627856800298825747833254948488051847485159606715689315233652678796619722340586341543416022042349803559219661512650455520079821466656575452733237683897987116182789019999280416423455005339990421667782843468752207898450449744084594115087382695581743178481052241101472189254194312428836493594799267342081016944794952679241187483500813847605092497354157052219841889827047568266812737390917786755434080451516175074486050268097381414390102566624304573330986701630879097098020306686129901053760087553430301538590813207641443061982124212275427904255103119636161534178925881944146244207464086073293864542110202654591216024977860654165762820692228909694834489056119012590148623683646170415892507502457134992679011296673685531866011708516085947134568681136896090039580539813059217202259528157947855567362057330133938372999167078059534531547105963481430358038525562459797569198114900009866443386557165426054296055760737875248674295623165711682215788686589112698651037655749184402917001440761854918824400459813183794944304252519064524466566093601463657358667864179908749190030526854412445290692516665610729430999341633033405039615399746424939837273314395316988323554437550910161911916462026758142168883262638011938098561816940269714253357506293709181180438527114753040546610836702571833641343942866708198197210496902058400598399049809569834328857410200881644998794319741750321140884098207630848930217223463188270854054852271203429118176465783494538404989829395552435145099445639699845229406910379954571078623457904210412470219886877558412331605364431254489903596608256254325632116248600046229460928313337861074955438357864591322268426985281890345188535588517177030187689976466228921043406017153336920065308774466528293699414581254620239775184624223834331472245048135603479401728742575245757692752902613728822568153683262752067649149133772508753535986483744930345009108906553617628327049147039979876083969104859596019809212149058352185508501547525305233149740246590640922876131023921180144146204961622601262064370652095354159920779661809328435108794903889120622305560793549819000354706519613859452724115038546273477942577164281425043326031451505561225882484207410212049744854284944588770107018850637505787490217996557098152924437415164015989215511370082404040840622340877930236900390806357016638849582367132079515837170471017294165752133063604035739487289178245433850012623235686395127027708751821402484475928244224164601018845930825295858434185370325120813024004441962885998595290394830189006228642799025352303000100752093672757464397226962996046110657691345791751972661834439445593350355325857998859331203147489809155486406832447161574919844648090110524697695827228796527255211987165016228715943043217000572644416143724560537212048065642124628995380649420011559900687592820239539825608339209879375312465852535316895150766429712499515085881950826556636036010665653872052943695415992098497512707467907633320871493938638422560817897176705601991423500528670986933573062848709776365168081824251231502404470375127104945659501084218579096871408618847581547702883240011834732585895123980662241832635866377494461225439640670005694557352846200743010874817335412500555076203984470765505881930093014922871618359275446265495323479117093408471100142374485231244444498138929381510547458201973536726065246778421248674623910149826855974594205051569385155072082309869038007301783381065016283542409478843154691838313131939080843152333275668701530246955957534733832432450009024800369132011983960981242684387445462643634895961996009526645513632958926594553632559476898782375488937237821463118223808085218936375610175019427515527785730497861047577623087010481180757430111228631565368459644178658120658143445461728172001006451394359045465954684650116348548398765821648535636352724460859030017933225703201808946086732567072765389593779554751132496491774870634472657475233482226487612866482878964027141966491838808931619820690188112418437843234257044651819826598324415731899943316164228763562695458057937406930708700791728910500378073664439924285772026789488356455198856450606235405456373409625706927099592171384181750420249688358233557558374686655358009498836201440204622789909034923944385549477797636265182138459620521828794103540007181699001129179035840657634848308844677229291233403444162102164347629255119924150535150894938083827321586799384356760482162997479404981557514412027242573683848048129139930286347429985354450802380858797992539403741241509052760423115059247022111321306945688949460899957069382977911695063823572155569316863161917021112053155055592779491202212331911165327937071078481271026453957365359420779858992690006653168912783193294508408565590053204205840059789078487449764872856958100787650558427190648204475854247830197676853481960842900204648415009743195311088095763133562250696578858394158025233485705551237161883258879543316294631225602958874760082734329487529072543959438862964137924639876861948412585677093401815011745285234175596852665175115883908866911932877230652777203065747065956609808083145945856808186988244980526911104424673952832905927764440275439335707182828783143816756679999538338570818114946890290831442044550626655912747221085098559106626841103763316105896016564167146604176731815778118031893558325741895810948090482552176388429134818213659996772807565862891796307750899085707283262903700782181673212019955043906072067877947900566857142412373265057854039375743521757977482536618770025424019847415916935837277718736448983069403649914467085570721705592652592020489667262658931122369225625088876612919498697607582586391391704588929485687435069148532618333188457959031718379482809531796333817163487943702374845295713013773226272363495954767270275750751500943643295631365570769749436445899301760567236687980619068256284789282507409527646636759118687122601566645568966157672755283211436033925768273117855905564259412998485709869001842094044549346823603083273742282111544480202306477549639728381966004363905497339824698253717692649396462952803359896657426478086295878406406825698036939967489806152033255653835546710422440281924982655468127885092631008360906569307064760125720424426379906436226414327491166083718585035078872691663794683181947506888018614736634319214626819556167662982290444955069521619565627816401937412729356760758126883039159221464514180440031871936147203690170945054935982258350885186187238365308015045214316659152238373831104497637495935106672400513598704624323522095781376048863020645869427718543765169551506303701261866517815732804311204103313908478919500693931775603826505892869751060949692974470016900226729819030033633660646722250182385836363097848233544997453394918343489216366594862304747484967699412354097045897006656945069713540179261295338677314738031820933730921331687291656911255440969649313355981713402528950788911288017407057042065562783419116350418043460400765011245908152861633339150180717214024849703637696259245798884856827583653011251169947452257261434901940198235376929431768025926876689930213297207176031667063052840016296776145166684048848506604133004274976173278057071615229879252954935682310337896889319404424728232143244365828366501965038285584159448481279130728032763917698411939534583830197666230546891436181286361240097888860706735875339550032336490574691466919698409567294962237786683236490892558231536059032278453582268784758664527318172000582914907209950747020781276082957732115769212453375547041752877643499939725507966789462044424256790828459705774495009331282825122276978506930106489112461666108129208681730218217019183902735297526752217942094404490901182691169054117411434612130772127906214835242041414822736145596714793413680354546384910137631848701352019425055553700449507344967478008831857951200117028857716209496626519189888466268036525606623336553138489518044260476054220526104405103703999886917207860646135480330846978019982123779311606188524767370218929375437589783980948462370120218590855049355282907587993209193967453661286566017626565924804091683082520989953846221028853118587961805270395776740861357614336975259834803206135634962324952106713829563307877898453310771916548167930176956305782868327189406374300388577375529412343261023759277328164718209506926515492560989987550429841734475697783479852535808887746297848706704221093546502401243130423969833297954360548661511395578781515999221625435371830252848233076746906218740215739241196948119396913139551246622677715576212328969511720770758966507887232766531898952759045368830898918149897846107364760205955444261055689681526285430114438297419808898451103186382901496976020881971576731204273999450801696682774798068488372528285222916263432923269585497714018087938918046064399606238966698061290197321518237101237360013961274205724818160050159131329792692213936799858423740302533496995253928735107173213416701349501585519067568329497498626294050942432863877324189979556081307444749498600354858593913464386477040204076736626733917952738749001261186301469671510002303991931303744505128168912515325210999744138031581977306052248699106478977317874131702542674694020507702977849588734558699644094453211430554264343853983044137549200548135427147707846554640671053213878175740806605694630600238610948793475923854945517996995690650644702314589897574391122282148714104371385794037019713743565741895130367103729591794588902065199399775538427628853676877616292657656106684140815643472568361525203195890276499668309595723206466229675008279632770573663811947197687866355638867638617237792993185725086309694574382867118228698637358825919337356452639174288790032015039028998610615690204642075906113078685638692603980588083930628780877076272170886145085254298784780380845004581022861717289240253625662783055516069247872803236013265000505537549072970584888355378438206216619290886704035118593865106572957145499179925137733679618454739750176568599763090693317110915758436978433893605138866897686689721179546107191010692455523245303489710703714121570948687000056594081867953848732303106588740018328034070737954380706743981634070512958240301381054070582236680398439183240524581743128413932612322464771117938509110409003096450708341355629655046490539726095393991595489005665231622559248342942905864292840585702268334729760848510144060595091532340335151268202028475911736969193063224699791625540779649802102348925779402300358915824121313790350221033290777619283096857130249135231362751853428033551128186936260868188144569885340229732159640229890388630109448490610282450216497887110061338285935579255974539458570634144149813722777583372148192157587428347161814125997332048029410893134036251486173241700047421453334790289101961934858673540038024526446154889180852836981123840251078383149430740822910537124007382535822905147077521700966785024484632378282048157520703266299201132440125407681202834173476437300992828037042079164199846507830627767994376362411165530624239172090432700268772084609794747577416026362895974022386997963403257198041986367623671063301109851566664319835731654317659308355471175048181428946504164568293562208956314363663202929952919632381283441892467531668683536393424879843121417001993593490279602345973936179950414293311614114691826769552710488507300304059722067756032145087048335884018733887614009580279796924774468374682476060357423353652349514182846155681787438525994717189128975846270414642616053878192298617001263058671642902739931221727925205501377961318976056846349469717747473639877263178316992549082409505737472920438937745845275926104984114209672439089609278730409752032908494841269877859314639028504632459590841942509196304985182463049720237408627068006470498712043196562405932969299848512458885223841952638120819526590877499236388897486028992905461377700749123004704870014557158012879797064583607657490100168092423846033654260978457110030412148608949983706342591774475508640831397001151185166925169333690175809547276093684913316752810713075682851565411558962720263888974174779477477894540658075730141163779017525088143794399396028226509608777704429390830796534751438818924484722406908835465376999541394401236163821096536542720828142590457703962423266509371421874740199501622922980302233612185150246246526484550637359938905579843179100468836909872861599787359108306916069093065829876919659590316222549164651901921294924866963755545560839473611157622331960569001663672997696392777226753251269514499086254178817561673953901909175496764593251866078157933347333040102137948545459534311852480517750705055743126526725739343290294935590741457299288187296420254845485333947581146147407491742338903693903317882451524167570151416484013372346705330945170839927457225798340007462505791871982781278094712794047331814039963559272200859191299931276234339445357454633324891998652901226716993827065484371661967435182362555347314946020955295370916756477081969065072660349280264533772969634481578053289157112759624171820467137628488101164618341705256417253608144505632233490314180187133275683143440479050849479655278170473163181829669006232467166477506425073878809750756683774830336045238064553318182925235305878060267903621717292887113394965598953735584805193043969847935891413750885043832491072423958071852171521162117423054564657688072229891841591457189873276023587698439890960016843795290308418625150655018611400801175932770896736407337910371434740143223230880550464764927714414515729034376539097965027544416312119801559703457264765675721114854486535960255357899546301648843185216584952042712228461696539393848449527975671710687951085024054103491505804908647619630554087367841359014984941033733265266907434368377567908685114673721744898875831567022562455551660676380257396644676194182840632908359206317604827692318498636385575498832356917539473554108482146086260023241720764915654736050432115025350819530085835641954611892745176800769626441846247684897107083043748066011840511356925493674442713567615122536359083280339324546114292458115765997900109032036558729558124882186628637138101429474216645251126925919051222599345118733368410245106955937627814407105929899258025101065400404439349607632249392309413894327183985110794082445416886877677433058468046233711620616236501224255516979050120303209656430540496419427575975438893222938218269928622160253124536542087244728791222857383260706749714011053809705568256945627417324501058842266855004934035164044568338299067978043810092335760078235445385787259471639264509564424352657712317258905620252473255442868907380964571354484952689497050193484276823614844182374394861288661058278632935944800483801957410304584686891225996689753970490677979333046104874769799127658166463243924957598982133606734690566540348235701334756477046029415616308293438774519624066257698552397049450941946891012035027341194359526406092957923948261714859124418232432316339686850025317889341482240337196662133317755801605125550528236755070895384528481776313707613030805487657448640946591050037074160717538258052790114682983356200226196731190730240788008025571549867607617391891885265282338400266875938844841775555310629023075667797544835575290532096872350545272727872706543793522456072004161095941410356178392053624974487652492242803367455218544531492307015933509880814416159231316754412219112700935107411285484510362189046171439607547378353010786561922916995435336733850571727444686083586680373931636758688302439613952609017943859900459928453372581516671636129431763009644593982530109901716059058252485703573331802817674559401103179299816610299286416145879195349608757138946002277567676137580334687731248762182418543844645261176987903437275197683756039232750168978915190453453697033862383070651991857739462176686258916892989409103010635914024986287702051782555356024935005410487935847649597572899673828877738768434484529094573430601949474942147278135093816509740454445320513331770531578432753849105422701482095338280340517222937550386086332098835343795585943862377533653879978449128056152028393859114475127882372892613768183535229218492146578296747080454118931271107920274189443750109852417307920666338430162703869683986634550488569454299770419148472244136201634252284710706625962115772629304968866959518841223848780669417060642939679902715772845097624093199922590065636014834900648429074659546387169523936797519305716832200627640630841681693633063120543609301732229990841355464835389470958016234533628461499368256982838074486896766119751089404809175582431228553889327681341393172941795513763198290018334249295733117625466754832603235589698795485162185827168239649677774377895452813391858343882283149244975566384804791339711155582457230759877721143333252711924132161241980550274942347115976792110655514665521302198527263479059478440591925099567714179695350305793333219522051460882838499919412244475784255226015742895600409054642529298927703404896727964107938414175829640412053313231785317896198527709696171213698256253365270240527385208103596757256750112258465981967402000403819190887331997866770708382735397579823793220157897087895936335280124207197891315159289719119283172590836125394924187300127297921676653839211340295197081517578241992872441339619571023471950864483600429208956915518680830811884938479424696170018220832998720662245046404089369988738302999646736628522328855506690088342221093832382093842559531910319926379427353605705151573221458443815390458032508861911419955840023287791468103400973308122450437676848709948642377743191612498184990288731081571287150242148554482240069745728457983736197888335576215836758013777303958683670351076831147083900622724055072003641906745231615216115614788539493662430619123763644224988822852599123392092039579605229657515046122028235749760566241922086080425237760930054365311025492441502508354753027266561108145399830217566332902490395263352275199155961438583565038846168367431457742971922478190633338598321705474858176908569958578931080689330589504761343483617527116535685560350665809612082339803331862278397430538393080967618681515412026045813871171424842436688946529592613268133089214299321084322929694795800699436936354995225058365327854272935942300167293044006151886883564421098755739383809038251102150293872690578372024892451913322324792402435703975475437143161606620689330570285946327675589380286062178124437989646095223790703407001225607211207750100416241303480473879770932767104001362011257437615277761558803217551989574490328686390292274417879878481405423084862853018816148841349113438097099347854805812156805169295964038544680002904622961114090206243866707310700108532312217848483333598988562541839535508620935482333107469366298622657112985460766987965502489682678458082807317101783232417145784253639710579999948715910823535873154370346626746741700263310280484292389746341131749738952765408843752078737918650281415742456071504460463170840615539660516378094878109183760622822326481242451033653716821154375848931781516611705237035168243773222346560293155250506088011885924996247455953291805768859568033283814762452106908537624199627881129437000332389176922700309697718966788901556448270591220530595355926450304396213641964643058092187264105384037032336775284502501520166640074127024158138008751512595556181997074022861711369559075829007966585738058356833870481117903217487229802056077612424810305435230987142265935054601902239148873138911059788191050927210414553734146267421868287151923917925924983079016507551982283971734478301400062096301730994845411960959779795593784200141262709737759707761285468402052892185574838044941960170012640700624934512126779454878536318693564520367360161855845706082220090407083038770624545476698527313548424352228929337006754805605190420336382408434130907757472744220655921019316169244276876836241743359710203912776307202070463193478480448404912048709513475508707421432952512898036417214050323835604264505843990902864055209114767271229265304011600137478903121412952242971720592147735763052674758047346216984837841335428042407345753297859817853770692471380227541732450692489603938170611224965303237251092290167428467070955910763411627897537032467193854108437043842577339774921515544507796502515189475722124128527659424795083347061942704429964005293690874154600954119417539151761521885317883314956945641749456865947275832125155186189541121843716215328728772058083081473784784706312199908303580979836021378245197913213039944321499297481933027952623022574084524519991859827122818883183658735666649323744586888030595110173515418378745255349857789984581720667785282440931748953227632280184702002919234132081655484957697630613193664767816597701591278299772102434734348927107610265110040166398157614452305396808112926504718142422927583759059036357959938681022196689002376232781319702569740252268497151251223961327378971087119565752600033972648333252387969310557279847832489469546161124490556550133306687855284109299134499714410773494260906133844682898787887442495878238459132728360148109868693094811846309002802938095695385053348447699384749787497457566378114625038475975696225486727666064780631595759564042997881405254021477838001257258049388950174190237149280525259920604827460686201053571967213563745336885477231824728057267773843157128698200970374121455783188217658063894832536425838864819267504457560756946438378309641060726747283187079626738949289264132404309049637526471694695499644703464103815951406382335883091300568399659798174553245920703412633807065226174807793985323777010235821984717010895884835944436805679690223949030431574617390747883772856359410482435101063775641653788735127298139912256252848188845017142754903818545002753261554657974357640478646519474568352751144667669424856322445650444676085573405918999042210041914237461324776877049213129402219836525133170091556309387597507071126213505130249244546219640701976302298651481195268577576463948733213196864223794501561747389169747069950298198123898111142039891501465871527261189059726271377386588371009677522172519734716506077572917211307467257664200415052102665758940665568999859352888329424326338226021270790111394459932452528156786126229973135949115471395950019464558442203012781234434371602633203866434932670100470496987834884942470207790915232980310692700988703050977282454909491816183653205117944918990860028005819792808697451170810149374460606780798388979232862390492902498567257482096245628845973067682702870738452017101376061869402890435918693863645940124934147691132333202649324014590655699929975157419192413254817169994428122581600617529025767474016956027456245455104768065617342473943079744274581045421356802481745308840133276397087427460628861009396136302573569010504739527360314033968212240068220849656377068932054630324922652870116525470301103535941276522371853491836965605032019699290214999943084543739568286544779158595966275269119395569519503155751792739183660704438067401736157610312689611786888020427480344082894272296587626823720858877751898407764703447507481759303121178369404412432951472717874529324975695331561574784260595447921956765339699643590560186252953570771240784939415298385275885338532512298751480416829662001078467559509144212166376467617173994995424455165837055442313601205174931067936121581888347186609560078860857775904631507826198536714125053689837950522099551567644375658995151685069177570287234328821076508066094002707304084524283324755002606960470604508954454653084844451456787524162965625256900881013642759970776689403029267382136068385646309956889910499407172232909296467935659894975363488680576573488200859733449918489164107988490294279413925111151382878234219902215568787298872444396295029377159196743019945499726534669797080878844441792709272597903408425120857520450494726172831488914440256474584215039934160703026021800097960299489635608867307818164122071709786248915632202962649614079911106097689894640420898097877103410901616024904467298612225247580419272065660714758567329563468860462725323392350933420742521652350355707195344105044645257735627220210798270798640080977985204850008886213740416706900473767610119012884598090658450001368611994013853706225358262368586995877518825207062812220248577215352052533645270276629075752411617706006543645748970487354154274371047631652427596422254099538263682628765978580224086913178493401087138472990748271977902169479009560575270607881155905499705506469513951415498446740217235249842625768445455296467429468503970004569268227292812107249196575542144752923396148389074847714321024180836464245750959469609660258505402650894891667266395492654938357319403642897897409190021391101842577758050619342265868397396331805297251540988510193308382716961198287669404474632109667178707884600721819381449548775950114572484346466842337986810271715321819769824019835036427876934028394429929663774629317221554438356441226993238200776996462018393740882777838569386729803063738634562112613214114085960596888817240478421359412444060535160191350704229936411277260223342925816269825386609044286670438740009839865388806085114344285868415354649922496101998709279874527388542319400887633608026079587722787985298760502263328495478160658718218152752482425652142940956942153650166653605359449147259585114155932962753378524081622556669414136301616611317172452553966813965580384835027982683059002440342561826643239990091664565311754537670406669100682616984580457069675472901000649682986031520153092589409682252002399545813461666902392968639886646317127712782885157673457026866215653805989215580599896437870668496253234873393068461316859512181844965926246165800840999418341660975056559937212833223923192426242669599035020990754077554969572312406854873998517353006537095986352475856778957416834826746794886935621964666633203520260094100728932575286540974487910039399173324151413103288579524471757453152038127503177619352567913414814614055035154604933698037411472250052666977990169493890274456993475953789192884580422953098722310724159883878201865337083864419448392605581780791453880072173307977420825154727667655988079935291116690956315967366848452345438543796822727585665797776633963028912724255866979839918816724783986534315470029316611085388638568364909853963422731176169002242784696511671242070678137325010206708471179391790977516834698349045374858575114580361175092253329393027882556798169670762263899535942135537025378331130088732321679906608686420134906629060252957333583760488198650071200028488820378477816401900187813408225702984559086297891464867455449075810471709782304008399062941777330221264541651636086071148939394324871589879100996402291654450001007175226096746819762609464102261623228533533950298903775701776210327683407090488872549157693068015560706935243939484563295976781395003582289454555527666258250564136726912111468049858586668441837977544683482049405557787164463630840555263556140082550609680753921990228349911096741953503549658060015987704887149838483920755020715770607712964256666129017313664664970175883279033706464005518231590226440841026709099837052851966582175641322874156145833193466309576193604670747078496500978735299764985988507168040204493601066626051317264744552736153638496518904430959381835885421528579025868752646103093628686315939389342797490294842971488528566196189085656075962335272983489801528120263649320732073778110814763151684352234380094551626906998355576143219439468999636063770992806963577847165509865753447028998645447330527470290502350844205986469360059994154567413272312391085255618418268406006825597261246624341096722141028623931551819429980638932719258463433946231231060006772684105437203518804589095350573158882253991421267514423720921184171237111909384454417621600064086118515170321018362960138807323287625324443526477093427283874909221714859720703918238525382076106557428347074162094154616008178334055595631603027044567578514505089569475877123251645315766916557576625540910493502915106243858124121846634752870231728468964309552019141638737749990364341819052168745744320663327489127402840772238632190335490902087154969871063610772818510550124906152661684240812708493800426586665568683313666107413368056924470994532526627073524087565785160074849818306472979378464282081855671806555147191224357737652058884947551598066616007718381882286499381549414647125168961847485896974150946013145287758663832845896075971627182884423574593271297561693298651027432052922549139025120258453992489767529515170428752923968415265248042657357709553969703185809521570900451182611398996730922633185211191018855249324794598782045031189206643896219497731394509745638033035232090653299857816445126971712437578498487665354258193193485242823200196165845160716696654200531054268544734745264173990601068059122789286774945185470259064861901279748958825691086235919536014404203256294009890398662796398349913923028390620684619362728674376639328949820351587455881820392615307949205351085494200643340374995365069200823113823402640595826102224683946544432000575495172395352412794684626929159478543444915761830384718950772799485754910802120197186812982962384822221146702494079952135338681895125454579357130514523908724584549590022584284226525595109822664124088942868963988220573024386184238276618079953951373368269732056385902258091952297817485847307955290121707274459107632047816751012164927582954512872876112346848427581159311062757538977433965476081489586337251056737318046592977214348984891131706739426786848646416839553064210187063606364785016520678480223663164663870651228903192507802526334139767866959193702024319650663165125439645443809560046219933731349676664471185586908370310332527071282839476798475707831562732312894117396090247509115330996631694139137934065658120017241898794565837500002526581400090875386030504592914099733317310389800857419404551924876721375883223693050554741767447036235613330126051563781077740731795625361008694533900290679760775275756644875683378816889663710172325586472939273177393076537694943965794600221349200150952076389486734789079075588110888392862020526258892252122574589811459295768636937571166476802050932574364980531259584160344515159369466357320015032430195498595358930965620953996919217585920408159171182080849049509645309609269651851362806819580692741684163563924576890600565498084910402398038528489021472089847295008306924055746903403224253398179900941432696766919273232064703911671020353181959196329827824985425600864781115408454382125884885955347438025174320512231532505958295098728232433501210493808931712313455921846309889542154380130830607046541829646864588420896042998292946591612335333650081199478076120732747067161569278390614871655021398121734055637302068832329712769660786130310361158327087636247781604251661438029309406128686646525517646840636546425324195666495531569693061124593905469220015107299388054111651495398883772193916966774753108446142103759221111294896353408301088105592413395089427578669918054731359806516475947497265144610802080451721715733434958669030451125979531850525361069364497470526135169862553585654664359366840544606566328812862137087572099147109482369698672042901887313551877963352925741809667797803781754761185851585915235599370564419861941605872077717777774369426271023331650344057356174644146776397486124759260437682215728143538696564481853900626435985586324175468870736927454439333655141969991028302853836610134611939160349475627876980099870579297816635303214909033085131578682211501742934549411643266266252557112245844976942109620120176748179829894361062394542307421263582191318750773455502261946049580318258134760030331861329162810031199110886437644382118683187438945284865952756671061215593494357345917261166251942025841562651460762396587853010304332408309452372902910074886392984269043839284463262558989661686300973505265048532574539685556718933166954576960557371074733931521192036855511747228357519252133593249346338358178429421121783492559768874508009745098329457952982782314113995073120114353988791515854621823464093871801251786044882297788767151571660041571486280735021115256062282789014955948326835727451156871953197446693698362458433567669174953443782673788143229685389539964860542578979016541222586046664371502409023339078203620526425126894593705801016877259406563901907226676299269480544186472840272921069140640985966371869189744050367450072037824984648135782310664490995968987239389389887115338213257470703387546655951088771309569341375582561933931679877528522552216556888679685285643812407119257185126203563930733724393691028056154762035270315573057220890793405076904440761582521402780076803783229730279789295668848659718395174429959737202516037851334580167923673685806621298096052604127108165718631145464536040409942640057690958395538325265679460516218516560983232357461956984704041924116878525266421863860798377202653751134137632274702609469052512337128658633543353449684732415536121052076805300664131326324055686752203074624039529613075919653317801959083009129797131264904484158483170080812361699517334334810339081029138442320453105645480973504242704630134163633068263552602894953787124423993605784187358453879041904132345488089109240601316759083469780155806551170962517437870007977740691934633264973928116330483598069899300290117115918625446163711150157602195991340220805186198745987827000150514983537413863834564269432370993163950762171483829906540881292109929243476869906918860889899709991989041783712674793720922509845039021194443058892327352189308642451510652707630184815905914775377081974174588475877784865448288678440028208778913735416989464417348778253214559094268679331635972160774758827533203695776092208401448633583560987748740784282551926172920356172764831062029403953548276306265560327430133417708187883162101361271444485942071289068817109593349633856746811315416604495167032190942084079107539841240874911634221842042577312826036512029462341414108978932853220244742822615900596157935112292511199102210237602227410822614726976609731222277531889160764684617850241338920691380866220838778155557272609805589035650943903567406971064629281756124379780170757275898832887013517163168545625241138022235228803724115180499006835160637371094324533294790948747820116055123277956026757890913541113660300069090881527617256016430206665213399059945444926862694771376320748472915342931796769592398928069497342663366088806037799988470373237135094813289258371590110952265389941007673334443127958204810697738847310372230276028979180527899943173944272518759674452793410326382063794607405540401579234411757763327518458110822718929172911278559557097581958809654270447869119119920662632738215789797553902073903558629685627319227763992389694362868323633008084024420297884431025505928740050117356299434653683783817949356174996746679486400980066603896272684202016087629852556089879412728787926889583661384920632044472794742482975469554644510728469892834987516834297590459083956092949929990494370961105540334608242447765501086897579933977253224927406370269774857847745133048377609947734886808993897501355488121453963101901539384835996854863498958793779757169707498799829797755846679378527703311568708687924925262604953228109683444664408198014475795508212870206698632628183217451325827781910083031261014989015882550659073783477255151338939408908420515675286079706191492711692675792245235910410513537029077444860018196046248663532791884350694954652932697993928209315605170539619644032524795075937292355296756446979367175832763291432719855105447241383148539575693667983348450175285717571574448055520515119887913638805990445580755268597369584071599937211193235761001940522403527976410568136814948309158577922116298198282197515233839154170429239142345186655805611855452772053692264468486632747931659061126394789820754360463220526890314096057050273308622083586570139215986664165655665913975339742798173100849480911826881467463544506361280556069455089005818976587490637227868782161864590053596717839138943446569957853648767873279270815025294929353443805190432816509884731038480317252663714499102999671132489148469175465976583487713217444880927682960055539009571517501662372542469874225641029352011374309165779849600578691429970016722091325953193570778194949341100579205292650937069162117666058749930367027977708633787629770338085870291341697894208468934079951385190158581210445907510249601341624336686207741828278803968087909047993178358908680167759579408584748610652146015682540244703788722418953497429116676396645801597266315412566317392745077583736136717753399124799416432690100517460972634777325723594522333081388091458876108321496564390981703185939721395546573548731957921737391088670591266236231909819253652851076597868825004731583187167756388671953199072514576010804796304519321814079083293421388681433777932432636724336850434414792402430594645615849039041450640075046877920749905427000358388890897490188504600602327229439100992860321572859771165606459053535307531744490882729835461578026523935595728623682872016481979025358064168028655975919407004523614573223306786902311743979693069076152485540599120404910864517043021137693833145283270807528039880371864318713680263264389577606558552919270063509602158838338659615262021976184907127967983267887075824732815340896221188647859462315169937953389809147568438846879093682277597814620213823529424901794493888803066292275520155076847085312469913194483129949655843279784107860360801444310059150041610510925955664770860253934431927369612740040395933478280006089561938569957072647987329643982975107094827522726175642990907906417745025377748760391025856348593251431937036334254176947207729693563802540668797790286825792364639927769904777446290046238240520671366301039794933642916003538702603201669475124803243465374782654153319601111497843775709279292816117008910133634978862359597520025697145309023193025968960713832011558509470606480004019240352312464324928036370636945985854801538918714181288828947360259740967714084164275444192115892185677131745965166726425243278755782991333435633880919517276121558098512748403706704611566423347478767167972677229252990776688938685496228724179169186581478703690574136727616132009501297810820218069976364851104065206654962649847036692303772773856447317465963959929182814692343737019542930655152769940936815105384838770512951260817052695692746484441935410531086011972006744596633067723457108576094776979399370780188040330487038913461869981886989243308218889562241919798830861087072246360254276022709878638324181353710826963441842032981090259178058575931165079077743038316830804693389273829640813594472354286863910741276403482179169613157173410504615259309039171076698388381176949548688933995477591842992776399720951917218142709296655750785835762035344272350152333842605852918371084114330793324917715617143621685619256257568648370203176081747998838997389702048792662994290030131827218865210774490469358783343502440050710594740258617419563703655919299175278410934073524633998948153273232118449034530730198952734581500016731729164649479120554028602501227425579430611767904301994350341029599896810537924960424467547879194514607444290294506732900584513697643311644463404702175841952649776269821684565790717146446393408827568804651373046661156547096647995775544388471461773189484807698340347157716589286808714828646905338597469950954379325054854062474958750836787720799172908631178421801603764434713957065740506693277937479546702702358044743318239334029932501457149060991970881408713699119772952146819165466457425687661710092399540789078708802594421080397532501424638731725810394228968722388642929426845608169555143712369269012184981741048194793960028405582367800939401292782008385434089333230164611601384363657368480205802893536605376126607542007462018634090623015255385556296491685044818241492835271411249668559372787655946397736493421107816113328610386653112173308884267153818016132608810316309034960074620176228624875644274919633375757323604244201298201724296679529515557867569717647812325267565399034008842115324087570657490471057740271866292018519354133264723151139239402183927784920386133814588318747953467724440962869122402474680833379071356185638962019710382892907292809953289642350429204941803808613959499925699944523587414537921191043746867076187937722083776235814258101155491950037020296751376374957842758537091572008409592858748870285721834889681038388698975021829805789168830805800182393031063765613166081431534788813736675531666526412413824666965956241121049018179641002786959714015328419495145108754810590265518201371249071581829486517247724327303379027291529528290526225833329822662816866528181384480602755687239644894585186394777811944278401353499940106523821036918815047310171781950408853360467114078851498523515454276572825027848464064541291077802202542143392909437981302782759530167250666974201219510699996077922798536367231927433798990767607579092261035306028636313123321052191055851412244391844695188053466731888065381679857314309615725620803121813042797024303811030922047946147127910889532638740595803405799852842822321570269536810443046268478350137343343603029784805879831113945807164025360506430149398570225682968826567559257693332656089965824213321432284217564642283124438819065777758507691218992908346279241953810654291399054295508310667099609311334040423398669549775233023211496993911637623423589099756186989646556381527894892854530637622536119079318763876405677578176360915593857621258678978702748839269465631946815775361291504263031461305365936365579553503067895488529888855945454508212524740599175282203035903149612085679885708229173333516994548943607048797745681092983456140329426812851140327509985841269402509741477441959946798727825224734737778656518234089413412666279263165195955372649458833838048246055129708104748887183478348721559556048637755512705808904237714632440637474863843144284250904063066640011626603564512688447541430143326439143469986198385867921039037796689429651131976553796087493086247118667389392570100146231042588602145100083056157787281005551156657532642339605211802832513031106055747780846711552636146769565378144186730068845544548579261972754245174529751943840464745539635441036447750678225589316818495967434753884114193113035176010704748328697241531638032840498562628723704626615711143956044610237634454330253133663561434483323354431907223349962874733696654337317882211198693730399381795851257907531712485155531321206688305407109211628384253367540973779733598502783483040771804436011981332443387931764225312294829241396972176899674957214763235802610856179016847166179636213905256326247314081193731840673654908646012888231231756847421997506488575086341733298094937059304419921042761239078430461979512295293541058194904112585005578383393897551436399058295077508228927528842222251159922067515955683326284156121832538224873185233672159812446538792411558020805061138611312545029248080971409589252792883040802108797612384624139270209398122795419670218761641606455538870860101502376835038703640708938591506376818652945175552345853231217473622473695056214328803004390388670887631391619043543306684188913059719346389237630041913828547351646853899003046194354821120165415551261184708155870869352646850065241115624758723882952534313367809716288204342661415181875616913786453527864640354858932154483372579889515615878012289622259764865220219505780486238098513421614207110441207558462692477604617089962265697319926257274549403020060035997371046940644513622638280250680667453739006452076698902295612997461438429585088001027929164034847844529647255022495944291628393232353253717178771452794108255581119939890124644052487798809189191728768038143612302802755149357526902538280283874473619813974483058157826569903223466894607798269432721574949133665730046382794600822131653312487325804881524200253163858043293605176262054470199608453025795611464382686300351006698291899191836058094709633990887629041447767352614010367618564081938124522795155504933341970181035159246831410075407940088664109514925926439583916468992182070755167156057961183387710067849839039276819798084751207415579800121124686181894087304277626747192091566470725042472005389545752648618743388856975612760694938215205204332861879977834745882062237125021368291232169038139656396220267402779270032115108362998618703772265173080659089381925576002294108884358478403843860777323220455412895402067435505338986712574923970410173293037118942634772080041485083920131439713688858295635439346097555169493658577112149796097818583375389895568400622513186922051546659856156943890793971580859707462497667548782455939641820948820410787836392703739411479812128117985468623637736495314829149961186153946549723357766170233905069122474319787274812704682607016622416899390837365283565373899942774395249245069651439978677073369947001067720507487423401322629945122254931572830535460076565582049410345089008044931378663283370952929001909040801294549126659940021223114751039356802125524486313648281811261820033060326899281463692749656265298600071813997938621005955499928261061650036339464995625325490653140442011229886319953024092761268393432803231499151227703971216583396792899283316168209021515103994365142146791313537828172463996732105015415233440142237295783815412017720652903248674958935816361294788766884210992741399686023871957705755827532819442361956561707918596769241418725576828481398078995320643614493643664868300671346738967716270140906537597330298821874183546087056622977763933697873930723833820140779835811696112298940396478170544933341208551816945173880661203379495394926521994038159009949392839396421260521718111269506015850846816582161579576699178894436242564976142486473958253835465990653185191524157285571347540938379440170094918897416846468781616019568667087614317798936375913336806754652658942432149340769633071188021703526190857001921325733252264776795353864884630148527725818830060380784168773462011166601024128720050974763384402975833286752753970950829636089765382768222984841541462250816200113772785735085315287119515330532871190544828992530601746293128831484944535973134233683667446267678393614028942234011516227617529872034121796648256490040443847945603063376649824616300357165511434305909547602558198360198492911300500386301893192883925402604741013318622317132031752600171305229665291186435911789356097042764430672696316051694181680340596561578235673851639830602533995460985511585052011258478900074641245894035829783086150340832138713367680401692627098644006614227476070480531017588369381468120989909885596715992253622034915538355947086062147121795929192562899753289580594517893124190568496889267498368438667311502204957569731097797238433195477309564046332637445853369039247193357695892864841884610092806142313557234235710941135676201573307975594133077227607944455769471511668962108079602052078270216904387824239853370056288526478891402055830012930613755434006551673239788887201559807301141883493101529643671875436781813655551122866134726023120152449742663249190338283526717860983894147642004666609645805849630393648072380774640633858401631292815900802083156533631258358372041948713627481015953585057623510698486232056145555850104731465632716285203378389730219565051604151152088377101724535659757368853284693163281470052011765189713336922031283513897551987347252641961260812924206996529289756968921240576657058320157927455178796683967393875631486271888630871830866894241246155329880020653114240782058359164331334417842003202942241969746867130386461278101881536353024656745946684940746785562365860049801398805932070250419143716838707866217802181643630249335193659702927901644688527029387026819440827434605133784144913506718004430596159520621500831319651613222969639583225251753426632240082536731322930059080149565368497296816524575208968037636849341705911328594967100366173754093910389442987313757067128129043113248701916565063056998266332254990789279974435122759204760109900718812858463176661049188720629876692545553473650441442242055541242976665390000109009659229795529822355486882272110881485485657723176390428825875494254677119924775773951156099597916294967067703125910164349915533540931804099163036297473822262083841692678980744085977472787159348127282861488139631537854743877268883469490801870263767215198937325175783365708166884336917573191321484024925375249125270717920801295282774058806739955280147936850058464247067653179872687898575178790256241046469342373432273712510334421449523694757058933779569496899748939679377662561407059058622442010532983518737311979579985755334700405678447715898765156515357417868744278054486778561359015433532032465514976935841634820954744022342898045872266643345424267683123963605006740679650301348298034966699186618455345285410565528614225802719196881035427581828624661613761419553008525411706084867956679473622394791386079082359285487946499000571627391676130042109717229172266598429187671256240175254157310920588807074132707485937266605817483659921788878831017305287276252569211483450650770107649508091712490284671245041812211008305163322115135816078443430245217936482477353148939899544392879976148009494451583161649041673590877324371799594557475411382867329942655722712157632133460577510894298971549671477760237998288487045483374981834202204030684611530933694280422202092677031980400558724327324398375166994854983961391377703527682171513933906010915682909020447942011255000262324167532273250451289331661541124865277931099657281660135562459924450491385219395285473464178935855789641367360624294896476229487622050294650287553110697564231819347576432788944633463691889636875189034491812871854859650076477653623574025489741146721763544050090847468525304837922174862182601307225796028447896752934777104389158959230455536109212318533052995898450287836079634350756150250193249522555475368683420489492303077873963012048209684457603651841003930315729333514031099139172877498541304231648595758639876719072248457651917028453738770559477915482738144301885964670059638044527281070665700523186304668718723533581063176100114399184291124695416616863527255077191442393094302749982427412025271879420257042717273859269295499507846820245787258766513501440093809285225901105354286139485878498569318596487038704601823894127511790265261108793141699831199557005613342062526806293015532773248346849079881405760119341371980432073238237312148546332807157657662969380789760132629280446669488004055188011321934302843044955079873271977521220630148262385171396252512217704627355590006738168198608303439015911698939483704620973871961764473344588095221778314934715510989097824454158001173983036864733083544049534794063886203174571702235525607005484789707947204608431999157676154815740379809001324205225141785689335599069725634481425299382833364413212639722840986570523801882080313739775980541876982784409547226520173032591249439562184711326814849806002692744059966922263710516016726453431425461073044936514701495895645219921960724816710154829132393429447053554278299938371184078644397161156232836755132117046698231185100128884197788794482987459661752091260225850912433989657457720056749036669870189380297160176971670524628022223711358018339680692153941531160285190872808773814343973685146603438355804193066763892285835621909135775611801306166611122277001919459775844946810003759234163864934822096898335352125396632382699799059179186668419497612215314139475096671673294243731246536482998621450587365583515121452762544236245066564856692875649144822965038876188381824308670879811124286866818123861873785749262756474680326235220377406615440881813625634992199689331605592467588373845393728586152406200268094506383455962717206130556005841494358805260003846179083020849202811832311318598578996962385570205680103244869618913907470135437677894548443144028085339052222868722166016545357219825764325491606810867195186036026324433002431223707988565637306992699735203428057123263908987637442383342682467726550207375781182892180481864319984358206335540017590619902868178516411980874895098837214227385246521712987105435675123100634155401247764102211475788881978581518178770687105997067477203265449226273621589261564437084269402757633548022149161041802443510476158481645616642529407247749393952893067174403995358998297382286752577495657891761358650292366071575705259052900398799626211202722303503275876144851285204960696409634523863090666913772203307445806334839135078496954574598757277118884220559217018402748532145871545931314726512956398507534660546884512981449297659863130420936504046288667195074349329361311700729895669263243062220257879059594615705800129576940689366640589480847552335298665881609287578716912106879583650324990033335411079767502378739313962857763482217264911868660048653411229488936668558823019634255679850510380341058097932141588149075187574937442235848196147009727536714270735637021986878981970836926828919013793289062760175722701517613243562410905261914157549787610867240574073681127223486741309037148057840877303695139451097826874257066456778648837517057236153657605040897289751981917053279475782037359373747317016853369681890667463934563450635692406585670198108184490260113312184740021387083124436051318210499107738610921331824279207185980401101216694590827767899841845633437105895755941440675469006905968419246134250552255139343304105412843194654955995398617552856294869318631520573137151827087981522058969057243183537284170184068404079772826628532136524577962674977000050548133355352366346823376934475922133630957581784405197387227530203394411526385993636852434784101607226475570424586907853328971412451002968199335198230082114136091370603344585691405077663776126240413814609206067421853735633574458359485260368107778814740152892989757946821256491820689061814721710606926750086497545778002499758247486074688018183165642402686465482896177768095897054102284578813317770097996184268997668594383465252070620981428345886691007034868703789165268093523506941253967053361972909831974506938428053705280045199805523744401793238701937427373824217643835722121999783143600628139065424152221063809347626437111309316013926491455769496353239614186251452027435088503897400464164372421544973011328743247862903322727448766739711918615848525733252250724279848538790208965239383564804213984953106618950955214614248520658556435495205843835503418861092608304429095503977149263786787121924441325579642595489250003811882255679621786881582207310398721080535228998950253032741604668160783070353133616148302313455810649295287304642892503116856216990712546766473943853883665442151811150299498099344152009084098211878648445090900778993804800388281798641803824689461614203793727009306024937154270080775398314778045975227184625717649971992850672023833668605265101515787964612603232083674366338838189193619908319629622459910388007458117047448584020529067301264996478832055144522112508151788483804341867043993781653048000435702377306239431385041291633846230300879739859799150442503062160173592529166460703563917886524934819601891118881817156581152772267826541250242891727554770033382040966861142453385893434885627770683427949383968853584863949461370474316420021994408676596513711638012292703268026345377860095273217209256902178661607871461707521151953725989734529302510178358290509418875197675367404204711496962408174931711754124416944972149314019394636104612348946695107746725432741097913519177888038725804933505801195000978467790422562801815943105689779811571824474122655229674860576330463681857435959474739455225834077439326507116123083161141854039231936770705361931065107642045218853997030466216123196640317513502199965845666213693511343148091860156718347024763313503167018285335522498645020766105408094295016801183164163110523979132539649590102487730777282435254515684173128364264740554943354831898060558335715052327224543467133867725636920203153704955423197826564699857350542993682068147130503357315760006626943553166809233215771256052477650679779284528793623275839927154349729042304928516609337298177152344686929238602215430769009421349178595504408398985944818511431874558529431976088553515706980495689850540213672015128639692929298994554463600722081868683512614705101694900185253341432341762042458235052626229080166482133020757615021667952882831372880091474538535451668387346377753197957474988126111111715786796442670593132871251642406549120582352826565170666242702707802648928451174628100459476569930260111521322282499790855308398308334260078767262858326269555325329247875289525052858995322591567886627207734038784125331754757445085966812643523696844225364597813919109229042239919488002177743719538892537716449640648512372745125577750442285904851674473169494082534047909209908684079723583404968863961779800698303785741650278685123889208663705640562596291163777639130944630274035666443309550185659547976558626960570377969224051862247942274449617010294429343911498704106101236365353763826965937255892173416326223198741266007504971543337184909509713016577226595989343981931417753293380112908653514948524497791507054851903559084554326506922456649695944013192229713528572765435215564242899100608083076138339572486548753699890816410566909009403950294801225616939048210126770586870909850514273518957014944916527285923565719958022936189458974094624156437652715642565676417296124923116001478756340436879014566646882244449239219169571535967649530669062333240348614658194450421088021944131752356948289892534704210117820965606628995814071314470277260593795598149468093807480745938756773533635063881111640013576179763121615188415146551780134765208614098524952043602293067986796784535773646834131432889397713272985212423152800215855125962065473568330864895731214502038706204009210120556627378135439335612157729990406415443160613953821420942263195166160430443190453358755102170943828220787529341516985039869602950492340800657425532441687027086856726527264581319427823048954731886699083990167602393906544523227142691730636064385637396584792311003552854884502317479291627654442134497535444513376629971403305004464771513087997344352153360000996080183839888289479658134572960024418510913448548685362162513684797580199574667646322503968635434608923521520766903881980887710106652710191999165220096969319213867763883427897461575311734054054720162110445731573038564536932154940340837480492831360130697635057382481957086362595346606590812843083934568644042422708559410583746855670161056201158767018174798968351627476349999315367172856382388280068411808327385176822996739336975952837994882856196076222930785938454941671735222423956657382561472773522819906581819940836336334816747946067566868844611888090023739421498555380322173018446683681551848553816587980328263639153928076503390068934912227719989761179235016201789485986291552134507811835702061377040374833929268496409134673143493384101172328545043832030921822596568393973314677483347316088584232193785437782424042717067137378551068963554041430583300179564007017408347026857797771514004360270269524639617278096414698427865412948512301056986497590847183487453160118860131722281043955755263504938488243127282580072521220995291606302254509924180951671726726236909582653751502389245944327824044989116642434827874157330652120271172354664793438998119943163795484563786805458331107078433744245047559144122500308591899323256094179892521063116314865563131480584549220444223432615944518138596735433590553478162664737632932269990856083830924011336362124149125405075612254967747357029824311324384744327809127661929197268623998118392999394342991271631967970810776386129202352654411627273204470140979328609695146350681164406189169339820908842279068502122756768517249286855842212162471102650204736086273641654383442628943499163402854627997013970065034457716589893287031349476924899123589980964849047271462578526654868440765562537554992595347002098468051563760447160187260345814831630756375206665654077634202493892323994638463970481365111228618900076247774098513682463932718253298744156345824910112234017084967899522433448168620682665874011867872590205551215161253572426198142495238162599638980583260184992623680006998627553058886492530424305092402356340283080961903378914637985426208070117424490698942462580255430300284501038197325924221240868345144447251935538918332169349422972276021203763844597286330506139302201495722960186188831892222095410888306119698252663056021339344002413046643822947246574467028062376912487004858659362870908542882107699925367438931625168513000223205182051436842122962000937686637391935841919458641931588438276445352566356939832525754732624444942595886838191725302674539728621137418824780991017413259532943978922065187961445476553846542475450284422705114932707928966647063681366067080554962184463885554948606819583095405307223041336199086693948216685060404680972910612298390219242056389097808605843608354830867882993550513843358698660666348013516183605021904753393877096188700194591043301036523204122086594576495761099977021375400088698568683801630711456075480627263720492135817795786358544504882817549627603201097130548539227280743668686660876273791577226289625783482326042230523536036222694934422123118105199466795365125207614615004770036448033548596815299085517705299972581040186160634745477866830129696962228918234937874158890998656952482709124624434865430669490934316430810482451916464388408640741125657847959787604030666958033268271658029774220759443578335556449471681903426218170117584467004357357158527040459109222690192819197258537364264299227198194091898692297235569659746810313538320602012852354853269764795503814418535658601541030765631813417784316732868789869682294320050130404608176820015903786910383569141099802117365139237716156433196406048308572547044634545441073637828649000279358785164356068627156545264130877085014164645601208098725666132747239118718105383833970305058076318959455571298002832803993910881021026553681332228505299808045260039668282373509054011722187638169650190139786106619510976583027508354174577777263090408012044875712992081062896457539656933429569001927072366868351881283317380894823194448171984682099901601313124414428099905748017008530503452544866417433146486788376304936675410632809212155595880605433029924272999521936213763935655300320786171430637628982281352457723354384161802432493295047006167856376875856405993159143676700365864271405065882179283908608828399528636696154911112974002791578791196809258185335454526755600031739467973510268382361876321425990532063347017447406979781596243505171493290411812502076066973440376035185012093474800828059280185544534505771279971124746030679797885404404469484893724179216400943190569771622635096551281581930721494648951008651768098363417719347745248171395431544378805911758886105704700907628150895748453272581342767358414547659365520300784333383002908770185772335467705847643608585399194828577008822582260358430423331458048663189369806630151191246653177049091082502498640328208235319091249438552389066169962430549376912062328841601940030754765536153451231288788643421507104108429865786245058700241832486966542397548784175639405785488299889491031113183133312024307978493857488376062312512705274326208963123054282552708853717334151829173515275692893550286641763619985770952809651819992736599678434232684323734871984168120255160962214454519455753358326012746154908441968474202713248413026196089842502607369907056293208690851458280755304470643427529002909018757425913799281709614109842707622850674352135062201140455069613574853283027611262114802811901791777951287013168857329912627382111356526523188478086635849704876960355553036646178006784337147228688346055348535206495996465886551555471196088786334145018012143973328680011737866785658852196859140235950289761038985733069946813470079585327865007694449006623135673605192041271351565813007444339419377993490170524843594145252931706920009053700315622768919400255161232451961364641501253720983938127305310832791596571006722262016503842360402498763139993723324656027325742946399454491178198615149678058935510515426453452265674042148025329663872307773817913305356146094320347352144346178579789344019834030387402481854840882678749869480146512369770322234581254122747437212197774799852898458503491633778655433448572908188027469105809810276063443660536602243636456363820760697058443551505271637800968645887363053931393089212212168998423779357627469699766093416665639183924926239070390858000602231779300137072844393207152360402208364103996574930948536558276585728602028013992065499240142365171743613173419134279844248091528542726136350289090372711493846433300620202183000339088714670810017147391513081472433838013178094744452667786789866227202664258393976691476611821069998520125640757418946052529103438535335913974526197705077864342187957567718159912544567400596318938157100978374629243966558339149521410873561753077125509522734685188331562482203891212796160644525058778911017426396799384445909529961270321099774355263699491132205871639363589556450037010870661716387731231969246804325534549265540933570355995084959244010790077525621069508569538745702031406530544089562867101777346529779608251194400797737143002334745182608807820210845253652654670134138636381501913527492331258704426201467255018928048339544948335480068991615668991123574168958539754720175542094077676430345253600508611609018655861407790268096786141129348184588990989293949903770641016127783528510841463400732913304878011854884307032197922445631490677135904099121985510146194495542084882212472843888095929478292531613033090607444184090119293569710690418468300625779062124619854444438396980204007247502583027410370797564505528650171620669390930322427567237980741297362999794780923554295392195214541686631206844736795301337827439255356673631632004826883705065951856879673719088907333495093821217925260042470698431356377261506686248484878441095191873496687327444710509936625403087660203559822794866730080238394488148689253073726229587018923599004588434450233791586905441527688574107413100929357035559473089371503107072312450765461027994148135383313362116028838572919143091409945575748799766584596848869300055056783426304158433969837149587749476831214016578452138639677937374090652786611292308402727774935729940814735797607332102959866883146067598584684029477656636585723756150671196206639589778259014400407062008622033563953846465621873245734138257247876575037983488828730792228011024351977690879024599718472454965302643013443179676606294422171164714990686628972231732438943708354322687964123618928026032682019472958121115112909904718657916725225913733417489949845848366527314082357805344830849364829473272667249331597552321934609568746056718844712884497727998979443639096710930735471279947062979261606095625934742152094419089462875745287956865741582142997673852202791218216346497936043091917322255663097530058586369595881497563560617162727084063212200417268118861393209910507594475892503906804555253930203493797587941401232270564747337390273164498822483693938493380438781102373819362197714556926376005805709135986568380528522736838428652069982063212330181910302156230528833851690995099547573519978036247472763270874407933981679909104018738467746352119226187509217514145663605569233547620478418320330473889032387835505158495803812022478299260947192852435837340323558999065571801167894905893757092461322293747455242628952332703561506406787925241633678359976762722130920341074495161712470449789887372658777632939338522024414697472835016282456541276142428752900061868219363494310583528199758937831286925470680453604126388641451732578664339395203001684081517016878670937940682744826676100569183802415051350248520418977011802212524834833547405508666860108772925208152459910642068573243524629098974124814051093599482532482166655277028250268730245442629516845123114808354071317528259650568262105091895919951220970961794661004120658816212333566008133322673680215502961010745340701706008613537517277853483914022591385299980118968497668088191626727095836307044018645925975375281706160027993624817364709719682879109625367657995548556170859479762652592194720584358619987010468611281374042216114426707243155356717521239673463832181911911525220790640864297661949064065301413869048075310590370065533187559164104679366247058749146627602380477903357484288299918216642885528978699912572277387320846001985112582041281050502813267283349758934798605917393147017324938533326494892407679980437316947008955886274908056043988372592374982684483943504941858247138736260397873554210829827751405890357398488448167146886873501309952899830376617924897141677197887108544903153030977818303730872623165431420567790654221317247577946487646550817135673387206887289811532794169819528184406965147358664386844500434711341012392982670056749520081955253278678673035198509913260536142742543581121233204536389879677350882702608336810616449349858119879171701530149506530887005837524254945596099716058156687893029554789680490638294890536403516790411094978595423234622188968646990718299862745501272787903530433725480542589441987301954956183450745097557936523899884706784885731115459021643202223019621651367756590193693782938496952772190900791291876524939842336175803624827517836012529600974566635309422351662348158001492714908731472403863912198217126790263161316692639378494339117356714328056395178078662742698817917592109757706699971685825702200250966363869725278888845030997538025882801323321648432871348711751230115126005659621910080754603883997072183185614172348788751250822156185452742467000244939779400709374126644884318554253204741491232306772662233006580929030842968739404034732242976665429042858028913129968593132620451221721325155102625072518480505700322121257542291757163943773856426739685709806111245565980102600113085572598056417267164044505873220009486215423668006422776839337613075918640269057858600262322725265478210059931038925298549286052562954945997673183858212315045476266578552708780420666240989213451171385827922877699552658662038056948362602673640331011617291022772963204103516314768565145708075018131381355109131120028313382657216024266914098039245473047111477752583342242219667990621388629214667724809080202416804525150966200204712507239383522531247050261255378142468655080921700116287472287900972882371102306239343919185185026307643933891775621026163923941281307211387395601807254409925763068593940802541644619946282722905453739173588462176670049501869409531842488419972344943817924488857640316593049901333755468776187435195388373226219990183054225486425612493367689660343783450118275610118560220971443663913643726177669460844412591083446739331629063502922511160580483662896073034749477958839625899418978683680639457213369321488180928169757759734187873619219520213562736985209599460603207466276104085086795809912627498619106261577317929714767741050214159248372684737669221515658792843237636089252956095974856129544587427474437854388705466532446742316854012640734378650593934555876534064395082477777873791553843687547337791357295792134828849686774237513697571808625002388755251254448416338763248668702575423254910606767610724416023656788258856453963412624258074553608356349082472956146049138908480686704341598867908165872524247601645977566246745657916105947201080191491406717360177928005490639508445779053819693318485658842308091904891332668437111684870867587619787041028770124019440459403038129336108389341590709808441501348827536949599649158503465604082545000017529748134813147876554120841222677713734827602973909244711300487730799555044205291822736698571856185612584949414568372480253159111172596290617091170322556016958332791698406462188108987710710301686303924329082495473733409177348270186171177026445269051408918729609484374891035909676218813034874464798565492967904336903417270354495937376856971025634236604275890974427962713582465462040710134212020797353968340814808411884362852028127357717453582498491777012812015663781976920840850711355192013282335244714094827190753395577973879888207707818440853146864749211364170684700169494056748991063358074838197542496082016302235341006508384376323136587010263099356310737857299144614967607042881127605060315640855150912975647124013771151811688845283489202208459000777330235383087866284759476999461736860387902373082662395476538805530003520808475754437836816070216265032752792878675132980075877604362745674908417432038305016926468315623293088433066569482136110993716644581506340179867261142221694323318768085604069735008358421067557877858801085366738958828931887513561506687744343219693905196368661011319836468831907772739417860720261133617364557615799330013136554410218904085563246116132928195565252161752512249745202055026573560874184920861901054160170134676177147726446383200783604501195914523312932997795889012457464920428148344344849047807694207147627571833170433807631536650347682444227871978105246132748880998659341495838588972189010846783732276021086834257151256424350122207795064879156159510710501860711458663915000320899064949062651577652308311825324062655381724982376918964492396144049056559115431183482395390965234789115310813841853339890086338076715305832780818143807179952917699655840997454108192373612406388485531118872982484063312096080376746889382888071783297002700546227893883003985215879103991386626991901998586374397177223321278056045275695975323338855294752280840627252650672129876280507605560022154535338123133213861124707778336716323496132367320162265730614952693858995942084893235041397944751476983788208465735928401569138525914315797618396166636325995337690132016135252934457961480457970872571718955631352497265342285396365510496222462931597016279549381826039896360568693613984764431114168417063728855943622777520789851393409723149521557907282263401759641843868364225937878913871705493598342455222212655528693590062845063615216437492368425808048176632977615008320742591432153899191336771547170312716192419733566262102584898388106779072751213154836134470303845995441571207252285208037359414269301462724975653273710992167159819239561345944237990622505580723428066740527199225875835847554043779214465023208961560140438911305939966021209002183366201277474960242234966458490218829442099595868913269931353552459957960662996569591438461372981157694743543481919509998140996929134816895583111202384540489509381398806540713557368943948858631239564984964751083676733326260519443048563968750466110554597599563068788002984393760691957393554290003943402617309709130178997442044567545518183861217555742692400378171462887357763861493119202898018952486624147058365336747168681319531416527366590248714041013932992767755074635527720171958742906472704197520943833750299879360236798912785635002072925646807818731278419166358786991850297861245448186447259675990442957646672817103912059694735206304511831886865294318476556411201469079768243857157059394117960830084323706120720853367292998788587689541444710198695193148008928732400483889692490513095286626742370353053129443296266711711659760009617643436128693074981879818281128728462406844683434380180692963296973663387955169040445750351808399858325314786337559377816843690586659268789208049574506620082357870360053246686148644528231362473155894628373884961845331493758873009389405970195153577084463577546355281799279400695624202595395071941282451146265479000718144913943011449307893292709534386931763118232233473648849532666177834407926176434209469952269949234530112849062881126972876709149952826374720737574021926997985219778031653170402238180673125509412837976419655698659611881160508751458119074038059882445919185437858268285604197291577481503430002459599486172597512746241692638711422263369493510222754358764180313351517790914762208996047755727489369643307200913558038083094690715306540599150502427056094024952947505934353879135516197670621638442822697401356199317752028039520080469102473627404460147333628748687827912139398098741778000689500654510069069716835342779603948457981621737469417143462455990316314018687395184023262442860549872091440813293245339983748050126168161367531287421476857825419608048613758541494588571465478500848079654865767733232958951177590321239450530790659267390604814524949468666760458525552990973930541608779414348261800019642166235100272954542145592331862991895979306064713017695940542185748786215257135789563060406966794325848945524452427067274778381779221240097435869077225464595593506722211139842117601772877911801297627924620366142065274181182109376742618331121344629904368815961546021318199945264362615565136272156133901012186528266376394800436044437235655528649881580311395093620216473325313625193404446344944532849684510187211363302073075690516328004437923398917499252331247951838222237011017088039492238097985938389510909950456629851448603596002693564564234407500616315368095905182540170064264923749403159379495408581490271122639281754221722251060761354261199495392306937085172247489262479119507061548018557284065980065440173034098020771555765470454426416135616022238294388603840060833579620659256796208848365321299934432227415074470980290541331128936078805681462968393852196732396005348175674718737494860099152979824396707427715817304050759062710145315386277397518379293592579165353303294297086989233322645882215149836628078599824385429094577091442613944506844419976586292381026739743901681332274082711154574082190028248831909149658878675639343093815931343188842880821019145917174248356468960783570674384616542317699558420512276514004514641074928420318032627891240471429855566470132582876040569997165331454492603897340417650362708960383669565475578754974488439324302575601494980731567201661348297663343922912096318331163396893965330666440466220103314025459540522378167879308234884688489047941214687592118137882275515036659112823257254962513635958615394251787362314615864491056529648895599302463832652276295357105481635348597399945042965918194096318811335682106032328714266012351035885931636216393541351741083572191549411007342314143981906084882663411889975499537686796477272706353018918575278826637992890243185376987224533836276099553970524158356549790006781688137136589300680434150890051134886724773522522479002045272067356717188705774782350246808463446726599574984325536161114285311731349497373989794550838774799850150829611178893646689248225455131647481713203420851098978973847305820741245716710253453241160346637548145566994996671765386606385664575113265451289588078528928063260996970233027553989105734025227608157140150114310407653523440690751549977704616043866817168169200737671329296176372653178085661775056517984987774491520526352641604999606689728106068548757248412702680336444584601835560024095564810864215787112252734509031601960455446319051112229663701924318791101917117976346963629394857603061487920469895961003708545245281668442999771517289203633972831975286295427905056851156604265113166043011022459776118204497559727777400062548695046291038777241332425992614010318940544513027872885607071056301051748332933674669968820899348252501369959896023637900631399333744029828553020683599218933975530936399296941612908969463014306946759772117029022626841214038119722406940739418800736401792885395449186745948536243917269029109455071633210519859941863183163285720760501294858054018795435214027941550845949546958978664003376297938950900012468450090258285067945184817282837049331969156241929450714205708989144652777308620636240913191132592187940578765819786071648396102863898248414634597327081813565376745034977121846166282559460619069973892665181267013654075592588675057977116055636551549472801037813168169826844856796198424864467155553951197877462193773628895033082260334985869106590254620123588250690186033955959535839673181294713549814010261683523879653680782213451507205613266534498768295371559059084855289049520710595987047129295984245646108175870621296539146821870705411783568601692146169002705742452285751485284925248798287317642267753004053399798793777149008680408414647815201209319942161258417416000915059078580620739500744231638645679709128654708825748300293054743398999036967823432472646357139474320294646988715357501244167211561324070433688138397496552784261516342486697922563393040401232122985290287321321396122566258423878032344149554874824006787324638845527614752411623364169208987886508835290292360814730249244108019496259977878786734003676983181310183215260756780756667994719785660134971167425520834295915423022409463507587686667593685657794674720545992932512952795857295695753470958285671758557977389193145009832077712683798882301693532903605550154658767097652986725254540542795342080454820636256082452631974034011980650398312029293007732751549915495434014492045299905418756830709828632596348142120545068168535395009944395387390195394717491769640370652101636253347462396498410210051553067363128905470806553725839847038871779306880396430435925544922602468101150227787516276246647292512494888062444063019335927690074371450241015119245497638802140403496779028431731700375798071242823692563963272368111101713757663566185348937760744265878300426141163199727489261684817833648103988350403603948970446364140413830184302152200904229609056485664546978720732033120979376834802534463840870637167365317456000475139065799446545649033479610553042659694488968591628827881036017128743598408175559850611410135935987057681381692904972663908724286990269841065583465635424177252933351279817616329047235665946239196231261883560469644772198819629799605371039440176466212056436809115512182622280238699190216945680247618655307082639514889605971184671963049784701408279790858748686994087681237674476651346446056831012828784152422799504639813714998444255525810243084847270838771026028838852647186073325731898191126893380895816109378951429622222157385935557314755581944686241477700015335201127208302124170817656827686107030801925190869256665244420661480908621576645884480034342842791016781518215027511870725639716334846549422285937938178264427367872638358854417147245992481606177615611363426346751602158042265169531645939732101263011663596629780723596601949521045360136474998744701277682295394386702073054260123905113383292160933553038967362685777914705660725727608941890119230073792415772183635996744639183781543197193678044710310126022835780523874216987377324672737919285515529387452273540317038455303685936509892775502694818692934080661943566057764996517346279719962680732553406366495891612992853775385913591300743843164469225434334808103418825013060675869216953860564303263121073085564392597455671084318900773441039876858776059827507415666530986069322329481717913180339683116560863466702860888225083885996468122278044628780695886525271059481137691723432989142758060274423653788787581809347935854246469653139337642603510944589437582065124064547015743059453721465336694581451880716623135864691532620661471887652689427940755555062050193844026100789568079875499906207805897892281764426573437703618719392638896625669462201963412451214600278890839789804662362292083466212715009084378227550387642970885490804419767877185639504818798551668036709405097930255453756440789627765029123126354811748885364778086721270182570480981742003679988256257052885448430331638114299538887809724836775635668527468858582472232441334587637655026129423078843422842349480242993134973206876863524520983741832864881849567192547904981402779432338097349999506844355434373826922181499148822434662766665494956670625155812743791760525466763283508062979460333744779154218653741894911379781526951657927250022875253310060685831591488841921169218276628563493722669452041770508964523950180148486339874365149015052228975979229707635854775876844803044936252656629626985425597675363336870087481315506416601422729111524460677213694547056389747148442133623950981543709917870989023140536158880959573616908943530296547407024272033149723541146541205404375376161552121892298091618327434920089547314513935638210619522149741108882821863035823933259053204500794557623453382007456740025343387355451692704605660806390767507876123035578065804381318471415495391705654391946475778959826616855165425806591265619048604956107619259691178082616362497984772562210362946501289549433614440182265672346857188662699210386390864159020326729972255320308332267263313168295068062508973880172343794606800338804626688545432111997901104412841245742069692726505497252820171104827232779420989811242100993532722912781654843163307847127155763369062605296414231394145558678645768945993875408096301815117271458628698267498445173227577164838529373154951071975802739836176691200914650459087383995819232397285689501325957595956594148894081298606042271098235922937475536176651527478733838784217616149700730697887690998690964660706338880291526091662779488249147328097415712936543995485730967642109527778936503961905017563625302434352521663201872184463883708121909456359356861322928895306522851003685358499000753802547628270025293152899155486072306523666542137688231346222922525886359019503620422070984730644208918167687733324625288738319348995843557502476808775708073878132635976876515616445271716332487439667690381637922003985492275837634493947563646343431217696402653421460679295473428047728586746819723684651203264536320460837545717286535313928766136879666937213470723774023618101869967408143066601198604620545539487017728354266348700475286469198776331553848007467531895164650044459080072016513592601921663060339646096633184615002409533904289395823360234178200721584642359848980804057847573186403720246953370856701360011202916527155108152349174430408754917937690417557618762732653295385569055351753508966842057879456522934819580015935390035728016176254601660770454439605230174138787373833988819331338921500573361654915245876350703832783184816280483759419057818403517251511634472574784174458242492431196906351094368071000475405496628415620712588793404737515528107196103950287824739129365234843082905250164984003389122409724769947900954685567627292334845499416821454934611544459306636332314478730409935020920086411543117393315836032078301835616552548892494808244061429655575547580761872721374134402835706186059201668826107044992142522310396234802325401613881931046076843504789343336209975108300616342214230883023937549718300319132808395936279902441032409602083424216791645606030582125914084087915724865750299133504681318136051647601257788257575366494743600620921181168244573444917995376605307176631629631672619285462788934682274516207979034220421808947104094721455822680855399903231557899356357196969925632842281044242088922786501619392435852363223960589464768554634084390089488985066343423711974543930660501034426470760270005148830754490316700514975183530061166846829977657456898509208071009956820421299850847854620732491525022758931347977049983927887891728089564956028462556923361130589236420493029507231757302238093089430696015122787124874829564114270109972118344570519373383000960246237190361045234177123301287515814298957813684346985067092413368120125927893071036322402995116877325150484983554412307538869457721034881387483800032168349830400750257185653068972344329374243646435354775589384231922768384770257789569484765208009150901903040828168869108605272261968957074207475967574322824410360986333213819118106602736091775413230776379075295373454759981019490185349226884134485635100870812686551843730808004600960244532398604003745035603176997679116913709892343345408669258916541568617834063200415581012413172661234858609902089013177664319075380241937555201146333553219390227215885176466604542777419548950370791735571789378693997229322545884036571928949164895391240276841801233142753636561404263963111365442660836749488561729817502520543144054498943440324088119939627510796922330643770074902789793682798805958434178178934337985422645235847594578183021317609239658447677526598919818348878831522519044170472058503314027961304872053608363856386023942619243232601601648508842998335103899163614807394242972404394073723826833920799751221772066947483610002931727108296658133325238743278690509681657746732611222324587828705523977644336257204539063181165895701790250503000216912407904845125760272658927671408443403844871584030282500538747085640254297050128955730576922521369582939914987354214953507842174904604329757748207231033779092119155900165118789974129143988373557402214232251496851290915947848468058768715281073874939457005086714759782464496708929238107091873917820302181280195403878104580198374066469885958056235462446486870835959560608702977890356445379754370069593215475096849732958374854215133694376485590106115642253625694048663446626740285053346673689003340538717991476136421181368131616393581758252292139871807231015862443289553893386134133502547863122054300993741982398119724724764702916585363185439439167224632634283801018318812716727671221280217080743488954398867224747685964445065993330741753148278035814235228738265371031404856176214369460872107457758203800453586204826694887317757214623938353180088104528184754863727090479996658305855451508176674339459847328094461131227127491463410056509391244870326724776137578842783137517332798449745286930462375238801312228872286274359301203655178009574621300535613874197164690712222661376678817083678925010955852175634918071970430426674387184603416095414545035448333473606235096615951383135870984519306281979753012417787953924381074515070568200239259988929558939300800596878551078018670202357658433955105977884961385478498049373057068508925301766449187901071043501970662860080875914364603343506433012084918961401493703472775453758096758359874291618866283363567213184014189865134766741545071626350674680647128789577368773807049366637436046778335154978398598485493629908078513332438077227611106238232716312096223172328206408750497641396265789918500462758735013055551331639699475310126564107968902195776605016871192703657047215681891076768039770410553749021077701748813716651325088843753635066650222851545575426212041508046523586560598619049034845986181826552877892460571238165460107276374113411287210306391364048423986634510425353341510665278497211032346710400494611609221104227190508027663247278104585556948053399840239223201514783252974309867141502324245052473745811162590776413132951696763302704553541859753999699779880039659133468665180218264104942853924198118882448762812026153974815650391748509539186937189685680705411897734982383826103306146159503505780666189387346767022382993412253269337116568307819495916396314554807254827582199827843312444590030898568354960684499197788757213627057941077016352281411424068001929807387414632520681779065821742153730715905019482444481842405131124706932853579067732992235179772297593211239517664469278989078493565867495678098795249137430799447227963172052397473110257545647257456680254893533750854507025747793995863786042333338918065894746785152051054046726698469508385943745162978609918800136883547906626193109614477167561402091337201887327786295886723581049292553365626665989124714648599430897860262690868358279233321378873393036057328751008129860013933393969649974505358471747613197564619331874683934948406657971910393441195820938126105112979486326156039724674509608436339303191239291198401324638002287737342254623911621085397942864371533912064598935316588272681576931321028696939664002108919938660510966904082306520363693707230954194531621071370319377357750842678034473845188400677867785478807992253076555044529758115867798578656234086600400982146127473165909457785673152643927492706612883654726400169174283801729284807811935832724144180024727405379830264996645713243661293301045736544684669982675981276456268539469621806473505536363735767559018373386502540290007318428555830336553494986906210020448272628259227037044292260984233642023914026510118384495963126608895329102276144531148139225456001987155522328240922749875385442978317304014468574477530227412510691572914932541786294984804194486213515230066800427634248155853230354872354982096842934243307904268316996672696692515366049149799040088689605403630162919304690447672313111575359429295679455962985845795873557213004449861425874524096506693805081165187066010797326480853165404602592990091720999882618062892228305196678588341960173955199381429436313701113657203230522772233652280886447841065971631343236770666368269839566210304345087931517890579703596231200304709195290957119904237641224129881481369249771530921386600047258168265833854395717277334380228830500619907719853197466843283172429869711603573859317798022798628092705646240318078485692009234939188408222205992445922001638229671853586936893173811423548558664568840760229967431607169878606888550467245900419697835164738750797831700348368688333267021491888781544021186886277790329169186552511299562946358434626143208445740658623543437482225905247031768036719806864875046658538785046162707909135907564063250432822253675706704922598394712030503984114178875933519383782066677810928482627663855554250539645233545104196456192637506110199924393013156214645886960840948195374495556310110974663040985862480184796234603291773714228264409308067374941315910818468340710002459726860183885839738437062967896134342353749066203840900434692993687906396370566716526103113684482469688027353631274232293879788111549597904220460621576331183627129962204705389429087631160589703306090383704336192354706714980426508321925274419054969038622557388739735882337628798220545530383854421390537505399934904692058844936611503000958226587904237952629760609267834134829865503892166166622614198279645390932007079282376251575088472122764406806188073757628929886158940729375330508527881789222976585839444150459836560059277374299216416385615710092016214010406543556451696066064945406165804537084074436568547509048396095201137593927225413334940483094438416927021871785321674694850606122362995981344582126080447697249173587994832737398851298171597904338248198837572343354251146790687256122522264987366511546337175844403364992070851720785386339381324190491703453000388974949499117499120726554123727353242362488470662553983087847525942301753058263443725578420609029781005756818566008035079642276579764416052160252506417435050855642924966644381926094788935720081869567886875961009665818224714869312426109913799415950974086946926776140523146121660240320543683900137952074494457614137800948223798011534508787413334357508375765197769878301190917219192254337056454521727559550326537924131945743402224256378274458793956603621328616861524085664060769753763504461707861894218400508260129813145891183790384033976554737756032545040842095090532214268607471899518509312108073461305800498949906269556805743326454025709353266730820644747865992320764814343903367368273007719523297135660837788130708401555584624519813602667604727169612787605357118269995007142200126703790838201272598972126230252719251468217659562446319480748549720435774783940761811420347486802492944216002315098152891367903352556534457574032085626625605299244713291575706394969198054879270942767777330285919627838861223337892337148962162194348838712125911664757154108859474432250525069757264804775705755749560664796437468577229461446406401192575317444993564396961361080859064191843345003335262413360064403649534247121026380415542802769469937054775167129454432858225796766377289894006458481268866977183082962622924091490535194926755151458023011487744206876359825550397812172411708915548481234237394711544848408258501119510990736389630790706474270984126535916274180552491689298143189635562935318823771697654617702649306491876192589991196500882839618439518413918447853456829411007061972156029667002166274123839161130196238625234000977898717420343493208697914348729543366327198327126064629775473639710803994181795732905730436262442513910050650017845418368836908602716242514363166387062273820871234464748661955470672132221647098954520647312690205247380648078455390147500267188672849400313459866055925836248746596887994682760580143487931719780749898625744832369510918885801738139742009333644102394470904826616579796683572889379561617388201740297388741247384898649799872959649882155530017848453723648853534149364841455841076600305400226998152133892002896975679566817843387095691421853109190493924533497788422829151049252647114098761661563521123331528959067935771554201749469657075210560321542903608472936717862816356816026221255105750802877362576089962516643637918288954726743338336835882712880750519664191867668976314276853285533912961945947595238726542201541035949737090858197017404923787819159175240318076875201556029587415482663686682164599787852125022161253276668655947330610170439515272403136899614802627896139205882959505669690596719524324907030796384338768892689648432877353144144633410215924945318821291404043077288650473751712401224916039152662377078431525013600428962332514425410266460789701784936627805463520281647977688786278658047286982643247970186496795196912364332735428315277369177012695139592909111516388890449412095800672770350545031339166095305967315183631139933633639418074695569342918863343206795020247094637256230429699039656557027181766916735329648554947972541454985242085875576139389831126871312824261782582656323517225031137565339399779318320481800542182050177103356489466942505530529758156490935562784592727023224731036414475186740274813132861982264867359157302966153785204504276071838077120385476564787777556724724688175272633551511747360437212705022644229499357953895383680914018905729523135878228155885427919012964076848320689779190315188161374946904969580754084963069398928886944026638117753783368411290026001479430319175408278040653645984455031026018851954653470852807303891663539038500563384939200852667942249031316293893106120344743562909421095580144238375732168020443924786759496215704572127621799552050685243210236283506303602734980986539753835734912895530490539316098935541034940723243157827260672591679363564693820887251480990346272724124006501173861833944136012517370181206675377272042077722983469528783942879525344413996472402869594072390380456217635053854804723763810602507702201893874646432076849559274398023217719161151498984403320810249068966079449739120839272233412749272921184319770807301903174177778879318103806355577348730943898782782415782085271495245533116403689057347226075569819882245459996972063602058753726073514320148066124289002945336169831969928207850213458876059756179082041059154435629824605735591080139959354743024171487298113746633152743962863825190994113709674273213800022949292430681193876837122791766284581349622059276665725031351039731219638922898779587699839879226901445286419372821121851893643986085202739628850137986525436501571785418676210361806229481316290997081715421928266955673912038071935712808869071667289830535094758905281342685772250266928053039976161806056796096260775154442603592679867602645737864420211026573187340152864086468450561346925395754679397742608436112706801224597469742851232160248131800916232751359404342458189114732991166849369726314983107912407299679298710479197099524983884878104175448985225302773871932510524684465472978781133661199735121538996323227061293463252159995855841235545550259224376228859483419108515823020717986224338373155572985088939904812341152967428542845943417352124721800681725498779701092358416061792921048711209012219827740264589544061117419790592037576164908206506435091833319862155614263212354821094269847136964830478512199372952987571133183858527056138911331451418390023379367162672556721152302694333725189448534684614947527175964286242311001499591594845389459147305528706499693113469124001395545283336907161842326969869056745272478871635512246596959252216261540232493049420769809830168272109632487006393300124924907170867469339116997413765072211552934855906219612772702633008158246961876368977532837384812303688070437986442026945264781115808534334741229896433700279239708538301720483052272201672220305091020792295685247814092109821063361510599009810872753128445232121074440096106089251657730881565429180071846108359395749735529752248333348641608002628382612354781056749056689206802240165282100358700317029942967604586164621139777950882244103879568821702852207483711242595729469517575758887840331077071309407558043155884127006128122995422006515470920453159842891377379224875083115197323344753335674534936841523586804565702484659013759013677917785100466461807621270529393572456530379628659254204285745578173226812081674275273628584334622459265523795628225718449560769634431494439420522174572164488104176446360007078757209763472310525953508632677471143321076928376450877482855066103959216788350788808053454026318759968355941644968676208455262305919084814253209651786509052671259417734966962224526254522650588199348952343512558832054137263720187160180377804945698509516638201958409015054127505199555220451178013383970311958666895742894770849636199786850999061277266378202431975942861929324441586891564623627653266401222590808949029406105382091654550477086832832102372371621843525683038979750250262679835444223911107255870495469277230203652548161545285680381226390532027357671278097119622656607374691653084312412927968438736409408701608921043957833944663682912752227515995143063705365383912099249220496872727843347176495672440896951010062895489567419927632197334063278491795064822216876013643694274850937730507577883505575059187603396811811286842771588184632858453164324877520968226737968140416069027125080919511110495179744075047349364994516475593743141204573927838335560865618206072748328238696705826516838159398536230464180780132280738625229857125556515551820611163147076838934446880173296101166779684155503966570076244244901991954163788882642914493043998233610481724401178488935681948216592011228222864279310737455359105157842011853370650669808595677658895075108568025709632451822622457766876867016349374571678095206252944334281871792028154191363961066101949418932859287933414247816519730023738178807023473906412099154105682479271918213899384088229535311982385169161331570684839123673043555879585196726049373209122658121264382870312682597369078060489269215868860546205803934466959599006331835537044715632596128861788197873499409950603909400108973252880027957117172382368299378006391065372924267609641123079966176700682348061746501615739680309421354174119152442658261297286772786400789257108016962905060856374630585722642347603995135407706376428918166960400184900766287228541913143574081731159840937791452975584408089656103821959999194730394575034819568879365425625053151152246556745078341724805339842922180583025872035618606259254292282258562458018495012376012722463378023737630228220221554434797704470113138999282690807418208828486935604903331407819457148343470094359416182499933465910911959115925893338719608643974319129952627863846747608829103609589464671556153622700675131277196665404271167738486036164768488612221195773054372561751457019683116446405216753075530625704587070328977309024689282869232385600280241620777409451399548566291573921802195623217561772733433658828737833836823268732426819782127937648308773445275236478390956723163896391049586693617937162508188418627506529622051439027012824473939713340815340812077891306268361786858558637207545446647804192140131993410739751019044479016144162620185121987357245846197162802188597875619589394359079450870587337041844610144729142739762155695555565438933885766625722395806973360768794621471260482564190626268744619704991012828730505359379880535015807495267935605692015801455566346894396816476121044029062494316867151389338013015324939522023227306435272554714110299100185019116829431225352663757219893596505255237774939964930475200241433980963637735724080709205010918503128306959321757772781324044885563869190019786378390089800030916635211433455221106839786991123171177182269043754881333622227515405082464156155120751948188671884664791247197738434228454483617030454241786864145473696533901131932510063376149122756493554377386704389651985737455124309985336225429419352612881350856350378009171719950677267799609037279926560181089833992101422688742972202592090462628162255571294918432913345549916211453316445983370013615512608884568601753990207860754854720884154981483506744831268023265427402717840667140706421394184665208952759559527523099729707162692721414172392108869929416733546094905474964854685773937704443711999454742008804318925131577079394606249504176912300263004122338250579890137977426695818117660696722932712719036133713799763592216468349214249651520415940867141297746093319889208043003799752697941383313512920359885205634059624030209227205038531130586621860464848331652584368550460717433654061400410731096016454899244367535910921487481978980673765237844195830106167847674928850027441356320529655962487588836030593977955237843741430458221810529662033695899004358335385058854842950160992612893233860240019326655361064565879955117915054731961828331088957597957854489289876196943163165946555543081721692928334892085651840416943614119599636323953035610880274867156986516589632872692198972359672999471386308080054422113099034817303727931896674652000087171780449282855296960179105318357687753426065079425005621583659052660156621510448191276028036150077072740367850304018336398711281113665569938173129433379098142678347807486502397385810472777910799380451886402352488359715580856503103264968360199160996279417423180145607440299587248250061698982463856388303908037064611041974624752574123461139367744956050083637483959011637968091498081165059894883907271097479941372511799386983231363541480199597288480339577670634474667332725384141107571721524785468445783555521801615499282803620384284233215265623690972439239611878491948123695973289901256937347408426506228220061536526700785872661597358896684081034308850235012882987580985275583071564271788855449998663229913592519218946886355307871149659911403042262946214368733173161713914744089965550615661384794569635795736826489556105703513587916609165061713546481205457469177678985539842408221676451253254145512165108411596998188703395311825049385988341164166546533740819121725946335594845006099983438046696796691659462606273241326192882486922032569705302038547067518985859000718200303919089311333885279072774177298236383753839703766903573886932916693304838763931476186915114311656773767273052848917464608911524516211046450098250261074739903157696370148782187264765980432684972579824984350950686606223170291289824761283747321200593602791305053889121903634668684265936128855691761166713986471471485638485263667031972072032979421026063445826218328282707696776117523613555649482226630306587352926509984733331980434406431709734139956752311570483886422629542134323948366862350458286244217929660191074660580703978328960983731613367678270905612910078838450598811539637886860928852127247664231122949350944137108524465421809634240051525850415596250535763972808387900227987351065713287705147968563085070373075340880970063775860334116585540871792959219134367517523006483358424578345692504779926717060580937232311210875854471445746858840678929702017549629439117225919097049229519964492485595352072012686747009414971700234703217499659430972252657375013325424257464267412743186469519869425253547358648455677221565814012816011579432416402376395986605116709102393925456638978787272120232118241177821681236202558659735276764820363351328353609395298417453130288087416554161988195932902897552188125684120219235347188374192761009000275313216357441850740299850718276745021599990544347294448578770723380868564592624887175171705288779098784601209461998379627177104023958551985075877811641250581571202399732333415210984776284756375546194108285094944385059360463997718968347034962423772905671224325494611343732923458145706938458436860698543290153119553387297966173006326178646155482910214124232722557565470488486333109126094901795316463019793522598811040734166509921632485139523473835529188882254386207105889703393292315173627861516652115363228357313620194699927747191743811148063416341775910175722792945551997135884368517509729969273440622313030897462034932589100158644405926765910772145255680317388785025069923073419811990242388952101281720077995251108734231017688103443491679267434907892737468908849752867864599676722209064251020994677306448039941801368028935130823129884404576660625146501277743810243965191187524256815518797141120067266153010457710282392162154216628192466943316053703783123535393905335841798160299015806673842006500566647162159279499967756348951476605421864122123950495388550187971523523369657864697734343253142778070750714090873627115615320485201829889555670249437800136269646783474971253580904475110669147067468092824503163562534031519968870154574130184145067069219670241341584443623445354070120957667727189862878092139328351986914957992692471232989190443902979411404608854192204363127067169000064348700272463894095338741377311830984302287296778524320518943119578759635702115533469661721125846168916135412726150728766723669031980299536111181300201445087618798433427524819086141579531714537320840363626487391637641224904206198115960548199905440117675094546971215456680728386728322831305838127610071918436525569873898146739317915495355741786509213997094697707168897994137242903907017956710932312149747540482062352621256939860234269872922822660842225454196074456908033356925866601799777393779784874201267774231371490037367724528330236767495416743052509507808174945313096937361617183956958664017078470642355937325782668129371053716037509247182491252510212124645281975087175927165355896298863174951621636793106135128676003125664846786343722766267915172035184684190021845306562809005987363178613788213716895414570741113738651121679659714805198155637298315255574900411384581487769084786069639437568782488425896957339316242214323164989440447060505918636668269839323271975051114434646825050172979851015017392061333832023495910450698272441276772825447739222340965747878476454983853269931216112278923354011172757651681427196388957068024128792307300356173151654565385487767194093380371704870073790894265030670800263381850128122133139725899919141172808843064254157123920845338675077990379321821049816686470644892420378835585564817107386472798321524308731148126100383665625966524536786165425509084877342806301594109495747491908439935053644214876425225058095052797943731387958327587451185100929214038427732215387442495112685567131720318615671708504413123624280221584803331888480162633716408154511198056712585973132239488993344000720301936512969295304586504920297013876237095774651449984148748535853094837419246081304618257009534937918205407348836344739998030162922807303311083405576478236224100970552984364610375325961583502451320876942479987048318713115461403579684428459185246539882708365559806330361220132764688791366921167221592324947919021048789369044646998198106043233600906160728756227000102572730801676003033731523880600720076746555483986605261795628843610263196964617255467193017821242271393090146151444204319615242869243830957519646799637101926916903400989412833639535281893621495492261669931937269062354174356342219606338142991980610185164060639203864974093771818823606458182847499225909075613842905551706982813270555520435750032142531674549012366841333243635108714805619433637404616769733745373692534071614146937302104902377059287831779427582841260822733509486329005990845197981984358066803862833707344634272893916619362466660270838065033539592762146080947622982480188498549836821618600533682413301037901775194108297600489712432844008906590007067142659362442064632322486978315948830161783942560943704436852588765639315569927712980174043968633370377288527799273988772590304405071070761514427421855112298147249226073635826388805772112420985906197183138085798964653543016157879469283639433751932082148596163866271499397407832804969704573127962523181532113326554096801872539807371502951790677184767457084086531382921641206395149102149982169910312042791683614451804534604569952250500535739556384100473733884160055898863057470362951215387055799164522884804410723139607809290360416131793155628503048716670264294410784519263618600012616772257152498715914023714148331172719751094355239127342158509361403278227128288217116341390625707319448157674506717959486728161027724142557539924207667890806590215329415420528389604332981817580210672157930777881725646931274473579704202116874393000826056244336340181314709394894539470148848561712072641523282741162559277632717226788244279062962753190378879500137711369382718427392507473829098230305424299239110946139456308409492056509101155489170673023834529463249722190256990171056507937642302262139176480024505893293630733485981611106656128489271507795032653115265781220922134649427393870732453430648844171558155700366762215343827511907971788122605446810622792689992260560598256889916044682394553283212755669476878501752457729144733847828355564479043929384498333792344383260450537074080159230758722157091004342130643210809722791710845289924197769158699966408891228094002540532355308735026250593516841718530826246204085386675534278219905093021560029362092462295715125192821988535253272755219848523872496658334510597806012518226839485427762819238864580718876296373042883124678846971025922403518481902889938334845585860154925744532663128430448875022227948052358205740006445949342940954757475846159280058117943044552059961855261763276366716836432629957246837473362046211431348461258386496242442686703321558631650749835393965384421602032418976512201580776548729170038512408778297749388249298498687236702916149201879641601662225068384962123267837153629528855755608717416256730103553452059405670198648624042658704458492942691694319665105094874311545995311854336458482689375519146996403559899327342107973995689349096326504546109331082466362974468271712808778624026138891511364490677139420490924354760407475768238679341883630656440095299605355311126054142707647308629015658461379214237712672750581321621094266076667768042413962120021038668111173108294381108874243067115176045176765601851451144344090393910778084218071848277008188316190780341545320600654455984417676882958610764146592086952982620343548613515040906403632996823551784831524053026945385485376118068949078103286620765862233044842297448556361493535028790976299667356036165397060978237470859981925528202450090334060080887334573048380573287006224935041626596451764149268882847838174608522867659556126871087265080911623244245706612625891744633368042355257333671649255552909492992616028258468139946965844399255475601803075059251121578911895630087551268609633195520556130279357738312364306193940869786080937586456886503003956856634578239815272066340390541905025464312716816698928643427527824783346190907235772804406066468727291594972001432355721794716213014172421869472656289258988052234771150047248037485962157083206965123049421187695167163657220409577617883062319570603220549280520882020276380860357810225243630312674196937695827085263358969942581524390148487871157437026191850564248392768780716227381599751910657539337990627128783946073207168948823090268157138579427797998885746732050500523345658310798344249271243862786009387875016061482027084263842993699903214153639464368289802736916575096905552982497439527543794187640252596873630746257166769387190579345641205373755911642082660057403722405748495304996143329977083926237746691106891231730440515349343967460875437077354589433430582269536059662263970146399974291785330026987556756041473515653695631205893471066122981572637705552783071038707982566035705614069842574660737665981757683021856034537911070853479788858310686618087715395795711185335822377946245128246030702610783700557438160290886257389370827520849410841280690827879517185908295057833970629055053493690401834530882365566542893238081184899575850712674632337491336260496809248245743301806607492127236367645322068452042927746399513119131597003537725221498552529482475206147004228590531033042080718895751043045364196213501396514436541632406313323494410097447785930919426276404618717214961331865809637206597814277212904138379694587712193709024474410589774147663410314672353361805878958215021744112968684663026632821719528527409209869642654773868639869039667483991556559922518636881801296919181776564214056642969438728431904064854770342387652295007804395216002746620163237547384094542812010741617902835826583131273461470483573615155597375918420164468393105075943284297475358308990900782989299076651661809647788699251553432506626021634247934028295306645597812742987628060854652969243314281504427138294664317652611071770442243847237755733121620142991514934151284867605320264323914049301172186817147131368075892133834950064963856593603808282726936051391502300225664952490496825354789823670351317138305220081161059675160341208289314291538141713834199656371554605346023028018139709948941638386584385672033997225551283177128513110187981210393799949821158091182947298835949863806063996053684795736791743299674731989884346969499615866262736495850006667195082387079835369815671784801168923733370618788314189070132475382925644357689472345779890468376608712203796455244098376639917868288332515003883655968422149896558442416864040034072749998587506893185480744468256976622304016885462636630611434795255814643541153216488796288584498382898357648670403545126895532528019618447252897727000798817663080801172529947348317137105588854079847533329770002542161176076632194188351384559128644697218969167429022123082904899811509457094485290192883904994788072139764814985738868818344809557395935069752500659645140347048293633941486071213834106974671425548457240808720963714266517372903274653568660371588901041448202373977366969186660364239734887474759231605704771557140879027214800301892652796058208666552290859575037635818882473210468836125670719671093920028913582710395503578410352796383548453822328581914842605529076943784737434766770321207886044523411845737711947730610956459598107435773803703567680461687044493845174198454310146492595884579800447230118848156913680485904726002466836399958446940646070795463327871696324870786627236503117225860866321125174025868463539652208316523563161566714178452593682392761076148282714403488213905318052863431965198255447181239595869204956726539457601853775804394914336028629711765050110687260400538101170863269623063899027660817139410452534380649206174237137954028486189581819783244880017216205980581479890066553692428816935199225997089512243871459912389564413008548422391789128001196757288656446650709725875453051315400091810189958064305646572170926371886661295160676908247281228859351339444788189745968533915648441183036219931154351034154033216397982175733424608397842621380706044486528005922127539815377960038921097038079575900188250421812112817158046510756146726748297024593296293546403795957626038369553494614947996404451752157115518571943047392323318106201160268982391115452039480035106714538442517031681623243141132736241588021184929561795262855706316884819716923394939532528920583035776738054226779345985079562530970443083932125279303568885505940259046029367748391691031630372039209146534082430056776152798778240893566496601706980756699968885973847107774460295784193390386912072211168153994151138733134829949723871066152993840048244822455341802342261844889659815854228445602540153384597250284339783817006497541702874162760272568683858948364490555829820835284676343152304069686776291027077094989265952944586502628499062282582512943716281513523139089677300063329640785507254511018248547195192593572573606684790642851166153036645381422937448274032740578167696184881656250511851308861152186442465673451526659932482928869924976825661340994359504771520792468998790491072809420028723081803062779242127416747510735053636415132536007737981884588938979507513892739944769741070097642689634257934839884008444619045730771372741677628561129216741408214855294362787197553112965410723719176402275673577830327261157732590077997151385452352459308792671515250356517909884514448303045506599856544541545349423809888248969958757508117355584084392259180293259939172822084923031640324737321149071303717166924549542653432391905421184364177212201407833906130883291168484895845736992373477622740626616518063112728660093705352363045725076927889024117029382069338386127621260438052144805253561853347351259193239896030773579724574345346424657647589255998828536471533382613923870448315303115257019802074094382626839346738014112311315972477093993686572759453507091597578394408623163207172929439486758382750369987623856957721332681738876532301807356734874614255836432313854836813896740553214235376961158980875070855036819693485654969268081800816424130836240483822706797882645306747615204510807610084891394751411019680601760433550084238127643443009342589002778051625755038880025415553811231156694542961336212354607408598329205609033720033377428046516424093667629196024923470485498211688993685098189633778177195274773998049414795225048363009568244180393639553383617560940616773830964592080447000458612924072934019516062202409548056819715293179858989524051868725877409657361287606668786160767175821217969554624573795842313283873404950408196172635818073572224135155692156119392295083814058065483842966648978347343605543929144391175306845551412937716147112784995987263121940857461229116864990768061456960794345479037093962946487807919829216704967838612344473903767439905665834731306101496942974563704004875061520983464377691235774732984729145615561954567542563565531878351748434342064873091081541680948160438156190276275036856248648134824798101716131761295960272472990890178532146639732629423108202722379879880116413904689292980576740657465548014871522078368846887652895595536424589631391308951800155854896335572641038212264041095984111175365280716791242559128527413857551102893931078290893826040350023983446010487602513755201000132017114008726487772364904361304572433345764879681829230490876168706352842792706103816101635313192671759649849815722635360512165558267218178729801330532498870953093196805757503953286680682231631731135010865752834828287446869103520347692257715353881925480973825890078099633871597470624763228612685252279104758663723700691416195975446360863068916855478662938080486167796820589402342464293890543986613944115906809055472931766577085474147098115863324241425513484059848787540850700781214619776491733745784784734377829620164744972337155179046353911142512830031869395518695312739677967963080807873382689182391122856227226795710998065468865647318125850718781739073062939934345396237768529368168199839590564085633970143060683136720795790177386858768108280995065225947186662860799176188982678235173984215240264416502465569994016586965624563620593790952763179541649535413994868555732794057297406987168116228272773831579461461775709515723375807918419623139611020354188277433147196658762051676230300471290750333944966237902911058328121030627318708384222677188069159507729488843801252701912643413647495134853202452039270063138284654845967013381568515828943971754484831004269895937248585108378291930714112591300051217234410037798796763091899249480568604307839138329060666796008792852570148138972753501692226665523430098377718679363317553388857204734374548344475210742998131560431595647376868791311563945457050488576308188920508832475107728125620463264128462241957962463929845674179596015113021405230424966070442704737284557603998705639398807383287287111758769546267419380619550854454014258680979670459886231707833288828760686568117681208834513190932807285852103675703081429144514982382872288629722340249693031940479843029311522495772769018007968889867057828139489170046097114804799413775752946553911071806015148013332529132263016416672040168125796600951725191946889226183295216237349261241888723410491115309625745426193128847685071603722506306672558672424977810558794776043303824675167203995876139112127021717630937769474635308525000815269128558888963356410410399667969553912259294881006063371920372626682509705163072491610802685114897456775436413169664589301598715410544383196590773059632751928552081639269286285160690937657380539365719709722491376115590404436322498087303218823780191444818138025780283017491493649901251964998287817858408010539822223154745995020027073656882526618028357047576487835001605326941910630106493497152157727247993170499057249774382324906255058401666446933320574097770249921895778714643324676890474597540726118450218038721087288824685775541500919526558277119076737173360542594072355766768332179975171331206741023634340758557638639079468388683701467221552947478240092600264505659572924504545517889163372069414506782355930235763420811328737458057543200852806561935909080840166641374313521096610192554643263060178171870101689097044187175886484539225494751170637790705999972505987741810562791049252777049630678830769191855806330527799963319197073314282387687801231494133040565703589500012005896601251348067602029023965819447579651520611288560731321720197322672151473279223969745714296978101483070660558222080953640632820975044510113683977830303540725528107993092903459813241402168389139081989668559129308378556692733108139447661228982437411697757165584463894133354398047068182917842343437361323844086867416077792833670421223074107321277509361951487020724229196104202837319623985234644027110156405005438624982918434347833109312507650891097404757833396489846408448495456080502594965715622548433508198114153167105329903518833985554323560542129651860568021057435692744870340617787827242569120460499415220548204135179040802794507223090252214272368005085178436611521243376120842795113831809130437715852727922174581735251723059733303699353326940190378432323532709354241039857463855973582286596184465140656802123944424038630462757590806879047739719552923217501843355686350172052214424430169024839630532947892096573995661909556597098536072165743068315824965939440212725711840249946832072706064461723261965586119105903978457566827681126015618582955508843744915752189819873587121655005470177107191274297666275742652838664389416240986061363427792285174122579816532465208241561255702963659389577013113769249119911333930348032811298448467179336816850264527246322049037008501510494190580782563410081665155911060842085877640077327389811171149721038927642548438093009609257895882655626060916990268455089360151325625466862844959539388171285658213343041986009991546012244609353747143993506689464202912925298113795980347280771348046463772417485470979653176493025450409306371765522039968572199475177041825658323214841537085788302707584599498738455294409757182331704519736181268914668828733625105329187274171472192952856939123131438534015329054112115969392744398999018769111641745852954552527350346978209502295431112716245825451874662294347991207152371485968993009284680788313031266902876355426639168492004196078600478885716093628006762180924251521046850445976360257975381275807919847324875695325442707104760875711178303365209805363065295366817035777142545696636999798193570915142775222381608079500440332641597030007664904120061081826774965282101025056581467735725550576394072939599245914977628310057531648510740084978905000196651194326037670788679247727379006875993351103614967076862720579223136217566835015651400220197264491300866569800200676104874115751231158218825249411469522272160506748216014082447377615047816333050473515574123013135596318764229871480759523844364599661852883820638401347989590917600041208837346488398297174202684891259659896964428499068168720511406712605602338235189545177786740171807240857086130298571735223611250792251196806123037476278203353740007288174273055319514900330735163499125983734055988050362666758913826594605952068338079586347931351239198306366875177584140168728736430897413364145283836564147122239799884318255195884067153885845659656840500773386779633830848517208884299636663624741377420182367213668255877232537147553467882993563364141268996591234102982565630446599248675899510797578821460432922126538194376899486166795419432361086668118695314985668678330598147454263975041579683239207435789409933023439209922605653705760560490779342454836187799224062485837906355437633617347958794804005506645794440208825325539968086121735458904570714359412231020184965290399190724905198125562912088372483853794759777157102466483709058685657282925340105525315772376660339440542930049136258935774047555536722477386251279675744331917107572528465219631431382875872527324350339314102472352330531261764708692148574196526129936839167766663941626917174250494225824418535595780273237614280287214975718701041238055507615134763427346991492103075447129189379401370315171711629230370884627731077816230330703433298901867511517316071669879278238520091066849921122177392296066982547423437686873829881016289812210062149809549250287961610684943104902888442282549342400471580344015396989374286298060447816553439981511081177040089317125548647476963951146238718063732223687909273274801663006706692797218965971014363456716735445849953890298536270920269485081429513989550464601278595812387982971094581662546521624036844623201564582525764518131454362773062058284531413396068584189517161527006364883015483451407971221305161595298526779279771282687260793304101956959771538699888669778037978047359347348231476669145063158009694840694271903667547118050287626073803756430826240290094533633909727846878922773917238921954921002881001412468351461074636585580098482949744241244176854138827189734461827637029165824746854093808229512018688024625766902687177858077561145499818303600489464204621203254857740446382975461657892657104637133131808781231986015838192178954414663483681959501646981182974294748183750976773421374146757947725505895168374368420010520148945298011892993040897954217551602742142553735670096882338158869252460205602568059795759795264213544373728421518514075265541664775592869871708711274438429132526662588852431775943513977682063232773615726179727986499144466809840025739820801582699483527810303198175673733749199129186026214731548907889034027454205310362143845843967657449125809313913624187934281861933811999759554072406522960502092267900180393366223038940553159390514274861553310946583359834215083653982924414225038845336785070588798893955366798055646727909169543628704493734759726607555242748790970929310200697331118668836727341446157652564095458851100834632113849835216287846427708202207860923613031372367359374615853155606738309247285537593016933969342267161556243381227291056209971176799766222765534670977321415870494581269382211079602463822272951580479214643978957067213079115017327495665498005248885601474653900572556006077082569794004470426058691079729116595591696732689656238739496577788367284629681492698875805485294759433702996385787361528964347882992539014060491975835464828060766948494307598358273728210376131168056722823936465097262050494633048893007782127574792105087632660298721412711461919076931811482279526677706173951299166978580051759269309358518872616910567760841814581369459929519185142089976629563082175790167799823558573607805599942216467280630230305682385344690647984693469540979314183743434146015649692284222873901991609018147480569792984122920687650585139565629439586980340392457442887085635675549213542669351994473066236379254473747940294635430521223529401103761446414376249979708490343761708691825087623494238753874187522313099083719735316411241038196805117066209073511804407147606503619433269207024961936989801753140315778639081019043033593690585285122587376133417459662950020214957022074157914350323328410483367734824070107055892997453509647441905769948321136908709540320934630587206344303077137726939680949386981268685117432523929211909455262472446089038569586761868701863670462596125939263319236297370415059740159654179353846283796868838094229533551045164792080177497978160838098693622224556839623670592480187849135834690407075334694556584880627014834671949795171888693080605305006296885820000998594543026861277466564669821802517362460898803379369803998685312756914077901579933228606937957174737238492520138958376476299137081731010337286953119146290831708272766838700470242875615997900825160543489712145412544316172078259535979993940414469819307645798939052703011732093391229897568266134691065417230006639904205772324076777357891515903200377999083805167709417330902788010809943284447250837163163227546183900976647474458257436199877713614176044257849576165637628223532415175924063532985257223821415352202851762460293347965560400091884956132528843282069744442622330224920701068058953794709701950377274656827929236183139338938366610844900509473770095524697600542911899461027679590940722385193694267201731406812473594554230293754219145631982343064702134079261296591115666490555137775192961000717991995150012387710118896638708161493515676807009867757526771875409641013868535571821856057212320751935434432305473312196266395475000085410951946770964158647383649976713684008536140796865965381016346167277010161443511391415028525213390537798686441917598254632438706748963229623025312002791724846996847388790031524576054796707784884137930913078744689942345228477858593613972321563369469322864334394117733686670697920409407740984102993246990429346607744331392470608047479136907117364810404339267595279346335219635695854306408870253232415792699521385135293675664710255135394359768847527499373681588221356281868779340261852692265589299394254879475166525780331367105963956116420734929591259629808876727179370605119654806883735840535887644858778454969342627220644448749321777598181074444796208356524658698367115777238237260757670480031840897951649692281713855543561775594257305698188635883653468964027876490358463271301088032049486623648911080006557884135250266877109671490323989212435154213367414647575719059357254089892780475009050576149991283692985638489388027152996692690979467039273678952320777071409462236786250299737987066361988762103997128486107765939611379276662082194859355114307198955414644335438456329548213389366297872681195601252301935831909132528869896607266455008726657037454296828377886476021119198093394669170405301640675468258134181628981895745795911009770204234083380686413636368749545492473176338927873713115432484213642655241424802983717591132828435203478315746455201931736604271515943183661302534393503553305891139767466714360430849038964721337647523283396919720605832878979946835073633225884456724650969810740599089334227935928940765963230191706347572739811282557783360783442168914832705742898831868163111336453514568268972081765351053873776095751410087736432191000177974630377896415752080649661127234917054324441415892141349245461731874698202318304026156200630449323182101007105861161178497116333346247566107417162974801001009783765267538289995610534883003961649583711070269359498157187114370183280995201224248779747960560439906948212951576789664050126262356894573628150891701261348570982327680826949509345423547523475289142175226065929330301870939264110673664238089128294678530265442995056267682983598756508798369986112742976404704694333603029387025293163225983005459641552797049752152204430744041342617119580240563624280194098493642718020381895226116396199820755520558882117550592062953896886079198616163528750172585887412873179402156484940036529671878125235778104968961440536091376100447038916962716328409514801375681664402384603820185127596923209739806763840031763605052608292430180440567494280951376514527325401499419546017805390546265969628144270931168569824337290613297312660920009352856859571424437336102509530361187946151862481652603347025126093656015396991944739813785867278869106430793068677895590263173032573641382829129186532789041593241909461768692553349636839100739674921905026622765432217607572612590558864743033200669672754528144955708875941390886096905789125324123023820798908837106370928233195126420552276444255328308154009525774182216797042336079817477276596203586238523051965966502185812929939838445634795778624135333009860926882242914121775683335239289400857630847910198577319045728718688904184334211939207929444216504860098444029082091380006835215727001039924626263875990047352826659035705654550744137564786504498723423142030242200825269276822193572807904407653208491483767583249904511213226068446255722397898509459415123241226145829411770274615894724657995103614521616952177454642926963090461354897302989080178388135765598791072600950184859436053430479336220077894916303405373201612568867104933062419474033961438083895768118241592323212899137954057749414619821529626572095420385278139380762841477996455390216545415706243414663536131703190769240884613073287536543015465782966800949576060564468773684318450595660272826627561308427769060260527536848277898006559945300977675856527216856843516907606811443415405307858744190379733077133637964463649021895632864131900764657318078978335498483503848804937759685360873312320888544475437419756920364823223006227682122312024524670048466450027141498496555302411316623621116770975792801408651134027448094909789614624964800661416398903327375682830830988224933287590768398742701708455061290133645745469880013329282264327972040648850205281707174822719290537641515860758591021320104204162816257197750198612084624130812001577914288589764372483943939313222173703577448889329119393577878664537206560257619761220332299411987658943781456815396891780759550804150768627057834074771151743999743312842964410133919653792275281114284957557748305472491858321509161034399661734394605940101009450222830963978964621595115025628827598452435557179812922684844818185983600192319430787192837783227768616853586004580112867615600734333607823357950907387895409025878645337443361064959522228696166910363638402316012850445932534162040798334733554598428394238336162549992953791836271391730050588203574418844313671949461403359197261743379663912943184221077902687906107206793966878244830008256895016826632011121301006757427021707233583322575165377118043686946829319502681523519654363501933304088634413815478124110744830309303042589690975681102363530056709832796495597178515879273993920092791201353904643396061746712714617145881264234234012392239566403480791951556480103839328872680978799266217663945490093376901616517017386985444384030691103784351476844497730141082798779596993329327616721292716998901715523612096965857553873645858058113492623359134460220909154072735077012275423335690074308992139295756633818372100292460139217304296022490441412140524135694040035300556049491204077599793828965652877635095038814847344635381752885381442928476637221409397215238008220652466120523760222982426406710612235288396045566075826616587953088785248698242938335582285163701445051641611687970747320933827179097635587278190330673980492688493500463318028508491751666194354274692061497469289685741839691402182528763142652987698414762576155814430511462193433125909616059540381012196094288612601085576861797197288534934410328026293098451372497199862743392101609824450163701088956935737902580974135291035012990668742761938519751054753728491504315382729002215718458448420822262711805524438489278038028210758147320975979836085524843412307893703593319782449166857005690326703054024808573126191466415420633249790813412559751299305458606818210718263993421693358877804384097214965704787702708531850152656161941406023962520127147832106455862031814018712746455271752112399881963295822579715596866125313539596900139298583270333056438289457062900038791409836183717601877550058708799924026505503008986671519179825825450247091485811270800621488722504747700064184597862242259559713243511785687167035766772029264094891977893302666057944270107115093541786393798845536780261693863338124283967241755072191217007712466036331565954321995366071943072596567987734018062255360580163309628482288027414543412525491360115616531628750691121597037865944678540669283388787732030187834404732835725562196799544627862912093895824753573271522309131156347507469105277653334308156692508893587586394515614905484600842609992818827112445837222654162677564120629839313702935323945335176102996490483781377970860675554237698316428939378767106970010882693793946363054894643117362799495997216905315501061652418916816972106759453888376581991521665447086591315172404176164088037323673962723618782758596137794902883315311271384666237878114405962026294933708658013785493573583929976453944115101957509151381506673568461934207707120803000814476665775765739306047124807105736277523810092096231505382905148048482416698534201610596791661031297284740055720747764176822971476438789860354658874326827195174665372068602291750838368496181337828250058155456857037522928649885240505721106084920469397912504779192504150061805818620749011352077205106949434076303082576372431831104445076721632150641864145157175705809047562224417654427838560258262813664105876584277342768693579731107949575390906497108281875412458651360686072146256657906410365207219834541995487209845371172697519788281496451992806612261720456329432543759442569974067447826301836974600977553852844886806352058294942509882222405727408118382337248786665807874189583390734731458020352566689153126997080684937132198676351487943046014392779731473836663026770013107119852367346183639960451637965675994735252298434971933805389363029778529864197781243913375043569764392260137981773242636451461288058307025452992791520139475837494836962276230195628669240296274077684226032017741347165570178669498754120701101887689980393535011657778430350807559867670448885162858219270919858539034611718777297578203672481534145690636310283017063116628575968495967653075851986001698595727667406684007332321888727114666331648069129438986130249867130334275705823945728104351747183853678073752840836450579266794413658137723516301186208643245691649970548543985983769688147264929302162841228797207390154223850698027155790163931406781821715171733004730740407966969607429884112131618747306958599046336296733232471991663624527765439186236814047646378389753066046397365762742904236716750277238869521638713958234976492339125323544117137584816009673737472792210261352081452891751458665386161666256367485444151301707191154716885886929302865966969296307038612370345561167297564679637867798493309394859366167947055470900210957063278877629305717202484292191435334685020075070176774038989285080546345699575851216121520531374256854883829707189052749305623210726188206354960799180131248394461481336869276438804780685802439991452113546724967698889823382638059353261339690638169415719108867379458637408999270827408892243836649692699189994947117312385858534820005670787129901684110993357864484812919474026594322032424785351747194411767501105344312673227523237715396851828901023060861430130369946455962008742679359728120642274226060917226700365515038065831318615429739222348486188717214452131494327034090779330207854596969705391310398197427451219884520419673533604012330301833072207304167598909612717225172787661270548864671085293204945387060839448981715422521161263791514346022092022789645196938540213301282678411121506567593834473669609204222623392711163270655732068668237897971472906749767112516144780248606983359905713843098325189093164109199521492542217282630944974664477141584408785874877172628163682945124380712161759315188067663169504189735784964938953567690716920496707333737919427338604070414209561173623734374916137061224744498880542368896572639198027252314106256975340066047032336752661704374914807645919266903246356185797935464160895638202587584681543332325335904804000743106650621301247809165033279533751330072904535133662008993116238340674791207214008781473460113627024467009260416657601169979093405340073824171260411699027664485613634646260519542736957148008971288151608886284808236322609378981694143921700879659250216288469086608309253189391293456917233944904477488733164508753688647670504039907406485757740814395222783990694457506437090403623498484595725161929166560857268267471903843192067273464885530514171136195375473014899322864111326856029383075747195295363269146063030822232901363356176291367509666282978583942795592951332647748232232936447534463656653902851995085613851539105488587464652618522591889590635157727031087550201908131426784213663282145520913812271089175546979108690721861677436353237670815477102364699709076419015329140488167206087066748952359704907833944393536203610780156632224147023036368831728795861711819013986095010175712905412181090397112869364821362458170097740752521280100382177025114092572512636823349720695873450768185174386655271800580171262154306107014170708858562809566825673301784329425528670213089480739011233724333342726276156221405909260175096792134921873366637427041188788167936720153980735363142661311078061517806947056403873761312345484370689036218620470645239164387083380095529260147323300531050642279366803741783470013208232907784947224003202505263888917255078544539230588465478929195841055754592675020666276242220035794227410766507144122643788369297623968244436294089842173567642410623841294445750451969353660429087570315102838068517455098380780929157268498484327403425954288012160537816997226589223344756235492386751774781544487678520779210081899463293051663123046740709109840968218174826465693829544788020088660055469432404920108947246420336701059561241623815697085681560782444960025818706139604032620223425364189678440845198450094655234703518423465296153301888232159479528280016266865701116692770165065119846091572783062607498649637753842626541042903600026252392572081179885270852095853804329824973770819134499594684473847757978496518164748562726270989945216980453055067779583245385635474727588257905241056008504804184692451421063494040632529854048063943937466977709055081510069528926682098511129056614523848329955838302017437651434322855690943097291637740069111212997085054284812779847921890971037694900029242100373257813275108933520108446152767677620776679576750481132120954459603412846919335293604977192567805390998974675722846480740639429132416855554111922606900606904472333392854833416290618469730713520605425993606199045232735699038653348222012791562777809010910282741459775158396033514311925526385703647813291470177409668411619909887471927178088963832031451685463188499691058408715925555107276988685816305314955496376279513031119077661337982481419119625876017862396499911645283669917350141516187399460309178365933630584700050457531343486897980086531170914764826855974917392580557489246614634455608575402403726518015668950043946646818112997439134766154713915455355139026288711401651206706532427085328836886769894352673182868765308680032564186604834274998118819038055318455860574848305749425881881696616343393492829654992372057348831178231637429079543581184847201606216752610863599973736248552137663900593387131561580825101288763180890927115624465316433749307449768378364284489116369397229636309046436469760112331786816964040948195407184186500759934403957466187045820574668841702810142588452609059631764867076048620850922139469667886569606958900801009342744785692125595501202838720876114263999530894637844782036925197826868053372340423341700789766810302886130351609493420705488664430583645985184986692452056256744128977777435379297180941778082001822101545428735583258502284983480788600494830998582940436015428270903537258656143734764587995837918432310112014975579218737988885218719875204683287815788351545375178962049460002874113232342439989727383771662769630955443435531728877352148416979167622020848395996337325269090738193300324151884986162777068747815886612671480439457405751356161447059832138418516877849489186155735553782391181685833059671264037578125051421992419724340994800810711629182278389094333187555048523363944606856016467100558461508269266466704094411440316605395298942661604160272500836766042902752317685133841917845984255580149479819767458951794739777362993266283692200396654677050368154403922644665941765676126737181029017454719680087872303492856894987935114732601258996497446255305301757467251607396589931111179172292806442744157032922661537207613333790006955977962567329969963824650240130832305257906008688957765115235287080278879498195439662614267629504158094600638999822315761127215098716147154330731477215075533565913959427636710218158662089101828043766658275808736247650632716126863982642293839395728987816503662599211764243468047450820247453615276159220376156006677850143670366622194883771835178296182013057972414266328659521329229645310860816229054203843471178398884620552669501479669786851073565710238812798048304058139724055478501482373339185803152602707625280513710754025951080031208800479575821244675274951429168544085075144770269633940249651701461123495399825143632386328544672518313523785865083482155855505363707504217939813605330417730468294108020608509807270388960350478076857050059961053879980290170216540282560385978253912465979374414096965319243806508484981672764358612846362951079560527193860641756417463125493592825222496964105525057771023593254387266200558306753508588019358758159799946293917406816163814406087940817782222863952410956438892855570858462694123711122867768190338292495322427772170791581049005410609113175447353705262607284543243859336034410443724855417095548548776532272153063743139923655958131298569013625360592641980541757838542848468046199052877782769864503887441237561984672256479340190125249460901649752871987177209987610942387163487755841230203153666115008834129522851517243373412919907445841871161369408945862943094217246645413083821513700590699757040237655906915014462172324878473701735398079016351655083325243205473453302119108559846173475000080901387313645800242570650096412536485320505958080469377020582644477299896116667640810706481420358122598828266336791241838749107613650356222572290118612593757151278339815746055919932902868543676312072633224103843575010784638003146207995663252606561430375018319663207272178103101608243044165428462632558651551089357028327279256848978020526120049343413840312522520549899279175954310557723438989629498944290982489706010995622628902006930078874928296024974318444642671309844329684494874160009139503241505076542356231064652272549530555050305830281062030970678206615795102703885163033374521119205181055627819283857521238591745426613210248806909761511926768833205413825576634069017265029290380023471593233552996116237857312039675650653688735887230679213240150776420631796520286228380580154924435258041413857671714516284645742953594312096575416681022645877235197714263952197391898909849073091025781880258687778512943644775496910985041648692490208624852680318129910261988104935885540750609624064105784395568510189402097005026566472172327303731192214152696650244430294093694679220370100007408558230696327021249253172625625722951858439299685275807267728789940109262665373052943353993008451808652221290713879099729189083280536416978811562388195034949846874264243977620022867571340966760515575068034734359112986231470932183668978894291120670816176530736221282470414411004378259521707929357783680438292391245988389725601772367729744967446584516509860048952737870549901611250600567742318142396430851388749448657918877803064077140040765111252937614206937910269146558024676876609608790869723427137729026001894752648650194103892889203233605332690304681196077322107975210335661589542961773843098323437985912862137609080119165125911450014863984771566877172229053990939148121291775818389892901992302980904867385401067495386592475538772451089133727900497194191348525994392962037357749049851104370692680261860624430435263877075454541247229727425719363196226135531627308818051371547395514821413340309238980344479423474236110921475347374426631139823914228452744178431172588059437308002390235860257671205257086398882844958005599696499263265125231383496213552966736345807136393849386227716121183963808350540842601415448357447331839236632227489576907079970984492541619256925461817896131729256280231718553189960288393640469709344731204526008087851614278098746475419293099039047982152613309187600564952416043148696336511386181260643444880704689162856301970907145665319734363706222556553096480687430257815794871966196273939671611589519116622030377450357380702106441339721599588471456528930448773691775407667388187922419290603124308046884290217478295861736628495332688585153390568072953619079706091365118059693098809061021452316127344891703182425929228908347547572296987346147604186966100709500333461396070712041048748287713222566386422322256369292810012784228557019978386967816527597908205979580317472282009756117335768867751454450901578533449263657642512378372752994730958746117553734471672853109048699367192001766788732017028696413692175037597765122797623659788435767261820250463466132239259892359427126372019316705203027578260748539322421578384731332498696539307637171596387201827563982947839068006524541049878652973187696971223050663968767626209407540913766154827313051119147297086546352023683650893904854992296571624158950239596076081054877342237018364129019252268449153280568586809164179628378584761379514062591246962769577158399103175679847599702930590193872932249024543273571340255971572740032159709082316957249397837815686708544172067912912983849386805930737159395022617584366398699048953433609990197993356449361584930591782487429144755915772266732227186861902202579991369362946508974559056570503223512034140752143959224102017990022037483805089521589683516573063646102296797475862762292253114148518984740496635692802427909881230740165266967616431613756377175093803916930585309827756827818305273957699763782290297516233113095551106556759017178278925182832081245083318913290009245234164480922328016390298918318018783976640444150480616736967611624377900340066535125469899504627606757420735363943532329415256822128864208750277719723731184793932735473169111546887677078197029415868518711785570384223143356336260464743470977692169707272230898531740361473771293143849293747963792192577661282089598998179655141276848212401243597570076578836305724817253436074112345196440630411332253976767115770655725946406800391610739495203876959965843987145249469263170358123936185854164410543837682908309298824287359042409194690218039331983343072208642771820997528073681279828361654375404060361478051333637370327635805503126107289975737237561340371195058579892232924579386418151331499505620435894344617850366146771201786533737706295002166644110119717055447946538812688916393148623688398456287752666811966236444329109985285551028981325365375373897244389220456524165589979197390742718038350040242723540317776709006532928079267169105975052337733397794924262508569009971887614718235342267153623110709218042781296151029191625147673733027837954982556960656983199135649137194620232366456202556713775954709702392840300974661851276973889858330256525112793134060352757747234021929222254057106036361320876322166872804751067252370881008299859342975333695108135532794411594716663344573581074188137209171155732726985098419007050828229998994172346051724605856242522140471695931096636372701927581048091082369997238324032634916709304835762969723476741083630307861530532119851795466007084634968009856465348572639107382303004428511501420503620654885433559246501017778658389987354115456032529003913598777334898056537993798614944472036528842602326532636482027858097435876378169959841383691739564020266971852210826362635720271149322941774364026658549539157817083795814510156764283375407444774382270555302514477005358777286087723909135898274817710165930560499461755138733853033989349397509303704331484674228231768700812601808915837364535607488271455366872544260733773485277949029027718737795739150979428037838415489179480581706773789639856848858249981748996611527752649790318938742694256651641554614993814246708442382359204671970532041452620588947860291255901322322573402218598647946716145028094664243794381888749184558289703057405951691528789030423506876552214437388389396072021090924704198503442576759311960655453235790101802093388120774791214047876446855404854373143396498970699586791652489834331025106946870488558787384608302482872769839513220885289433701043891427510825588872396542973632996067990317773230173933552516551045125982619821094497982493248584568018109617758777158507593348470441752864503450101321982853381163933416792950010342418620364765677465215005578151863030573996939024983747258603459193706429048409500747423942459404978628591618815102326731772101143824731133429152128132052710151192933593978449378584101315597576987818800905736746660735563655983517908537876461818768126494582418248933933878551182940777001556164579631689558671054034772237603826369062172458535012516802758553198710586241994087102617104311290416766783723831565603994160298735459819476657780248380841970889465933419736050154936297569593099062832027413163853532990275800768994857870623872840970034154302048623849173892859808356657187594076975833286681747606055372667838233429975336639968089735385202734837123578516129691496322095972975900511568358049160372118660826381617812493210512769436848470711663222098765810228886946726973105107307457075380727750822901910070047297731877450257281390914743474514924297630821990610600534173939573467465889912143087356767605674479863677913596102826254013360509481864701627371400009833742069440193032977359161150672552474192022184775981204858651314990758326281295006201661338558232713781883060068195850021039593717537379368449451142656932114473106501846333493564715063919899628581015151316769075515360025592745604728363791772792873439530940008356638701934963183374994916368592315737067718048530000424632436337719830488870743108791827624477411604845893184309847878255077521782580865514448176209057670481468414125802432472504730246457997919796695688191302200641621038412378062728711672808772683361478214188907699208205049184851815118054285653048404743996304542623252359956429764376757103044004075185690256958476801492453531012495739729602868734660665267496110480592200795721371699204620442022662705908780491325738728201490834200668676307793108972458394672678961503346143146505657732447745042846156794112472108231207166245858763375696399518379899339923647810488744532524717718852747428963686692359414051553738060794439410443105672833807840297736679174891048877093205197070162216326619747150668566707902272241318708569111780408222784919316256337323202931856913475340328923939796651555724696646479642534209189104376111350959624945007097587570104018425300723353258740076661607326267517551141264346304707122650195598458499839684203415543546634875983965539869775320297472557860778916385128442532906658288251147724501490769927075797428317973445302404269615081298718988832696052648517233861471559251360448694398065727443266856111301847495321243017888156882641146683251719345321752999757365698123550770133863569223791068686663190165026038188358857740182222775066496133607648368568545907977984191588788857741317109878307458605907306654212635557749611593673049853226879177528096837973152455135994785078810637888115064789774177754440196982886516411782234873151187961832067147429946750598679065090183269820294957124249152425610742847750467689038624237451078941442242109575558044386071794068770875563170351591885131551015178550810869929374520271391517279412549141821171889481030968432396960038236851996020292644634429218242769100005138240524397336453226771921010805498511637394644779615234322871724245824051992964561355279085014790206465645083702890840575888469170238912120257594598348135788929241428458747093822870649965230753065969563283374599211891521945969627441143912058607163686496081409051480995118794823253914404546376155340619027151017418426866040065576698326387219529266222889028666009433369393831475583494372798886010464012353033877887117185422687299574296140573296199381347268853305580738263331917507437677527034771774320756279626687978017463427395361595435650818538820048830706836619010892962651491556971315162254197726788224711995130468613369639110040551622763429066327144963630317418018824934765975830998237428600351596204558087527831946901014846659248197806944335427173744874722076634396978604207339580652048287990314356580538279507358999899454039479991559185829191274351530666082413966749877267102228145302862264070437718640464703946413604289407671096217671196424754424814959045217351865714480961723628943256107178869612691547581198796867593953774015840060418115361633514780236164589313543018327451301295703915109887145971088615805660651146407544138809165458982763200379482748564747383063018168611912391119094314095285568067361805548685970838362378587487209213237269245777755898162286485397268589051456718898559368071269540326291628281227387979112807228968896774627369604460529371279957326947751154586582843920338176638498328037362725310632260830931653653328531324234690568116256761421707281766972321476197570241779159260784734590984620750575116326528287085915854632947859377482864193096874095070250240136372567263007246430057523146437001762879316691720183031743250890263171108823987078136190634373711450602744451496685593353276487423096315156077618001256241924242280078835902329630016490537942186603435347841401407213504146221539513994196358362904309445225011450974985955018120790772516305050914602204637311296778713229721325937151877659019451426544165349302781887683890270614766474293175224578372844050470056325991085972989675019993075478553808668607637703019487047060721904837648893617271050908405068902075131448151217975987476204288748730469426903554689843434213604761871520203935874326683079562492781425942302292073532416625964451343358919997845755242041332982004809904470025820993674827979403627053785525955320484845741192825672952196300008886022360486759182836767257374346027286511410121883322392888410120774226905056342922499882037196519749614747749185278489443244604091302396348074093649395804390003959293341524515733073800272223415561815512181091536888154364747900194013232334740457766348358355658975782512355414097642902549992994739289302227297335886901134598133905578637028988333943636350627751826568864404437718088084476022743070802538052308130055376725435014248650730515243693793682219613582018591233035122755483543302037183442070927337016552728395442909605504210423558084840178340775243739582482582006535295357358465224719859153746981673108188608820591350050376434728833961116898580772594212645904267201098986306360687574402720180273129413218584191544024839767954644811034439475000335828262804722739239403486176646175082206700571382113733093378830691557524938776320929504827564145676312346321270306287011233743633640287803539116750281520751866481746419035213249106261585095094373322924506341294198778459223297626429505928461706813377266659202867608630021936428920370899232740141563374989387937742535900281576562437654030211876432410241436586426407974691429752146821298117172528985767669760199449020396421527877392274071178405671289233435178260636458836580172851538076753444479492487511368312715481990136574146831370286586433303006265971523356307980620991122398391190544155164864859413233240960012968065784306344270499359006241883032622354978072922903166861542374272157875522487796412482057430987917573836651902862889452083222115396802041297330438045397287757441451033522451014170705773606355976179884363761394063932501174667385807465438904417089063026746515595159670653973024307367164129799799839277207157004051696930747275887365890252040355966096455382762935912686605158230242928488794443912546676912089660036183677130943122742803079767370578677739661768891980719921941320199136631112650381290566061824899160913264698772780930743334484484020242847578074724841150118998134464445175057216674116501896127377664550935072745966312631742066439397224989671751581887979457593129259570546918082215414017255401186417637972386636528259814193756413741711359230014368820453201983789797866488809675079706779697629501892912359423960784686083251473396199975513342711902792215102135437939936153970034734726815611546387899315374885550238455808117466123140422159828195820112802555243923407936431595775397712539114281277985150076124272879571381316461956771237269230169742304870301953599810668355262170704987353784485621175727896409497438423085120456256807629784153971447695316928973943752287749718330317894582795799776016487479423619009957980319374743064697893539643096254719479527931728316057422551210842563440937557475344384906725294266019529769370429060123344184959740420162599532335914844549373475791265172535447516054099728214093060742702847889111604062464547257373002466109884213383876778335006602466148771537967810434905300106626578721732180138959208930519569315955174017951734037668413018520061895847903043104716678371277461948756180512020453220229833061601822793779482237048292804807122370236947378841682351566643833662917624770037066732828054634323793331520369333770282728635563598805956909161809232979152037788982402445396988037356715456702953962111915673461739585775905981315314584442275836144089459990586687165501130587133950474032894742684049190387206300441268863794879108021578555471498025368045826667171148865246355436693223512098726298539173461918754173850734026876899563298095968272035085599303394278770821556524095247769565933708342390521287146611926635758467575793561635156793424333165824032208930747351237739556475665162747440881422033808044781733298422700522559008942408145249644350014761495961837589901053600759586625672779668320481647383972683412110532493629607392788438959905829508973633025771931365844656596582934267965390793200985204779148703688824040226848211335616253708856050310711336526352220372806818898531271993232202137128287788677750972681352498290518382149608318006242423119367545158665276424811302897403658635426096440473570479311413226523746849989749588017323496901235886053577536728255288062158902347718280915394533182619363017133287084662114364823024458377258187668555041033409895164614711287536263472913988435128618650755764796756739363922132923114914305969488612877559856656308773536697107750997671746271138217747999751544176047549023866949125584194780693938141599548237506758057261485327128770828025404521539680725123253848250058245233036387270302761278454215450363335150370444482430707496018919818121782900075866311908698214902328297437757678570029815704049637940203046327733645248654910302225095492684739809831673838065182288807006243735424436127705900199303308738612514120953746516661664315240484663112306253911188891748101537862926423089385733567531775611341715008026736895546109843738433430736944670994631883392407434126650265108838191998996878763206396843784518877260976437265497065832844481610741099480799191565662209413362072770314774595565127604956747437638161523055922163808144746802221207769847364899002586076173966853235005485759589439750642424407660727407529868631042563413511067565263160399203171145168655089162914947379357830382975033322229801511389414755240131889354146373639447432266053409000716648760830453894345510698836318482722273894335966860805321425067183678351857731113943494621962738677044884704336630435463602202303834548501626915381551715986427546956635456536747445057493056211108877354621308442716635415970593925794287173040434506461285879718824158457279120509416760410250286991127824887471511774164945723478054110780027539928574849176807809358666928538629959561446437759982808572758813693682983217968394351842603404675778719118118165032071547994190651434489036639989021641228078219910860701016447631553766777952619201155938833613898049738690486064081111272906716460412108149141106328992068577512532177941462110088606836780840922800415592952370177185887013165703843088265508311244844813105396866515265338385935381918273512293428422161664496852565244147863559784893011832046213037197528968907005501602108556845420837416138278280378169248985334745276879875753159232726453026840474464728011876791213221628073660517303660877920871927874071912830510001058345047967730999412223293644858057471116525712168982022906663246683751716630464338265880989576544514988466652887021781667250803875665921644167388910611371902142281910673624275781415998893873461575432900551638772750535218442619937565165251692795188234188339147515322911087570145423395621518402748012858441604549488389269774237910989229706022354111677829168352325300954403700083089949811995578496361994920929469550595624942646395873702883849373840953602393909928929596894218805093576935654639636072655783071275865072068997546028922648785671968677185139877675914492970363311006701260958449746191210902963774386665949402917560998731091770902630661493714246369964860563802431106642910032925706533330914155230517466774156772274506957641471626962248025634750271121442615850011344175682416296148195773368562049015919914883999152250464180725318393699831453483793940946917852977527711773155701422032760075915356316355527422068508388277795570516302866053302916331786406361301517369202008757064208793437203860305099255374450074775616968182779649584041799380403862669629296597673025904674427186071978436849780683687354548945690281158690326021873119817688297812466529167817241055819833141154758627691423303481241082750162049594890951229993245944726618413615031328053637304265479041748660006046504819067540711646940511719435150523170150478254604672361334916712833934268627613015829311455369379837438326387793312129901043931921196556258030939031288680951315005217777494421184081141518806970066767649162865498393809810969952830945598349394002962400014037621185120656131260749226251170654913294269787711075851283770153132957180286571454128050589556997485748943155369764773811228294131961249955857944361557039241000729787275932449339458165999571250871277880929150454502529450838172390123331881137231192288149644629691449753003489529849796359513099189697579724172741553850654659785222619904009547043888627043967439807259006934172533786568850899065535868394623911373184173398617058364847259482567128490595706817281970672736616700731386669245326941311837139475369454185362755937404360303926844297812351239979005861955016581404098883897610210640543549166772230643834028348676308750075676556560610834754357432981548345183854650513635824695797299963868863147019023490378018738128219623922479364305985567174854739329811065833514585780160605815657655398148519557139379523818536734943822343984525121750905294572573388939996814446082414923657144535588432647684137517206878337628573756382622881381387086061985355215887066464973617562397764824507761574711484660588046131738301330610105854814994993508794052697251282468196312455346821527795367297346220684456439162109120273954290066558003221784583521994064691667587520879673541709861491658369442208720687442636601095966333935356954771954990949318041603868875846991822725301958993517281439752308643875131662002564134449247780181148854590931663534125458285670688084896790099480354454740980014148130956808028463523023951293470148336850982006351939243678996072102668613020449365143778982734800342336998491685491838009087171162306938302192609225762503478857640956631720768437774657367546926862103242197743804939587523039588301627632060753941979464263404973427722474457977425228907199680799983056916656290182203474292327143138119957459751364102477684313728504108912862858761923323935486832126592672108715207059274591702204437365911202978973394645924655957413809864062607515052937347324510459051648965815452363966248276396350509094025962601542260227148527040972373716341708033952716219951476439793947759869115728983339432768989964229321454224825887408714894653616225969655741363666135091262263668389844708777481565829983465767434004874658262357331020819263553354259380587938754879442721696600438359018754853225633248169330411566690967792976102881135393904873834980075933947729500195823194073348867741568770198290790248561398519868949364408675908329538892015490459726074507940548105567127342626295828307961246762782878424008776633114980657294411963566314013339914130026027167768953420219068855958563019583389549895558973727767371159517607988918055061310124533099706918338800062596149055783089043851171160134306295146086130613424938510674224407000015911125537734194862870261552211961078966735430061607218704202271062210165981835374753850378783963669448159383152381248588731360842866204486098857754546800291771716938123215474217674506924050097093987242724065447563122331617639883868843864758852696749907714372579553951000483173621776497534156869545858801455659726072440154974540025179337809814233346169984016239812268748264123911785842403096389078897645005362590221299889238894332204772580289392783898697258676190314934385711378686517939855714542637424673040330601860131087582130935932769081948093837562893389008209983102278755185336224965379257165819299326252495909139143153340238122869141266089970381673108488258757581872122992522528770100934699124968654036222009357578118320467543601861492856470772659607304667900096785042467630240028502590920076576637085517042332690891378870528076213640383803486273059898972870585260537582390517773274295630246964452256712650066405840210547344323799576190735613047440302049636730572702850549778885126669420967135168425639677154461052137388932947389190863599990815612533161805053269043325168135868168558369249367810203012016951129906568427661153120896689221980588633587226028966188613665346784211641865307384871381145459624339288426759250579170707453443075668394175400349922499508583054100373211540461977975735274032904643158018753483117079489401555040298763386701631557862861949652969188153777562528199462332199400521000152860299411616675839694542971654181465856943119797020013739843071931666550119093572439675863148095277035401506372187784376874386203675083332484182769562848659325685464540067165921818139558479538704629282764193467269766713481280719643115845619597228778093013786231961586676607257732259143576975270052088249049161346985016908089598447223031329657180585591198269597579322120059417404729725368378487201240037680195261937983878634280585021055123761874440375855814942524070403492277366551987014378734023376122541679772913039114346162300835352863196837039638515220293806273672887942018561841662189043341109032818370201182767714985621565048889104958729230332836849285592887893388354620839443879454359923075657300366676114660774177408547393217432332444460999890893907791613068321618705682487180592813070050468597136781265131310837340183683484950705462530176834129924933631705537569534908138832416138581441543230782692154213395822411753271847540650512688834929558784073023437776244504218128796741313067369557801685328414132588449803552590500534499279231802138637994026416758206160723809572965899484871793144063599388094152648584129615051486592192653096940898215864691279530112287413594908641369832119801306694076967485075313818717432395988487726162826835210454301636704762048222566972945315474550490529100025801299362036778625174296670491606345212311676553025548408600399131207801602166008746069276678794333477225055878583680018634238429379024121020117587982088907413624057637421140659776999024131906532454323833394505774903072440448392019792992480414374384007515070970578013399797987609237251505977281369105873111795692450769217360875092650608116566014346114618109476426575546622450740216240751820191104829369822092977728504166954109381197988816975854025999146978044346127896790753466458699395159254039817638230485240211465755045719507939347640682669809859637110733690130104009298143392225458306149483119932070423416814574003614411152825056165860268682261369038274030248247491394580246245566082726432891127456907599161905682223896613044819259317804037918326018653323782375122593089661184308434393562618956104704231715365567093706271905174739271623407097032277108023745748949249487798612520681861343031511728247534530987898623524392326794740888829087788083937410999142175520266588747783143422142101264692847572770441783956298634808892012516922951587993237225472729295269354000804747414366011376932277807729724883802788330489936137892527387425282275406698717491352068826813706244718584121347580405799701983766227693581583964837074426666891475305491056755769504171280810569885123425523848197504466485570351580151853628834810791058058730159723053345553623008099481510806641171254134712082428591853142598724648347768125651175023778671911316526246434462254847407114246154825104119320732306775726787041294663892247780784936725608393373187762140671242409988941305770916864525266438126104879358497654379547567842597573834039833063905213521983529399188639182864666794867342168825751996978058752214972001769686238021620606010362876630683351011379740029161842091283054104232470655978125330685273208086642823442415751947535139368421389431434365363735561536003972671964922026015630764993305213787382389405661857559156728119284092963386883712245519122415490542103979037475478614370391848805073920647925446034635782919481333948439729979678465193590936821243976357935452101888204378571851904864617128882640050055051485363033490728914578082563978225735274886755610997139787112429936098059899621983543739873230172271744260340488024970723563723832050250726120370550441548360492071499626628655267856280480808958860104431005497959775305686757949408129500144603489262688852195079701659462143642440923321154685084682723793106348587400439318183637650113401808883891933818857388063860475966585283694366710031187968918248881579241964907102575395689363205150618393860711186385791789998251929273735186788448079599757883571338700161069948109156947702080852096813773694117675264244747297578036447477116154620036530844035252619418718480607791587776029920230310647020332067939806479102395810706089137114358981143378321446631281502887626725371464885115817918397553915124832391459204827797351144200193903206128000025633079483071282542260952025752245144208956346116156027158494117554170049436123511502206023726142014627498719577955198851718787786087043753408511587175144077127908900869326168060408077747719416325823615613316100209258291796191980232102080744167838231893910095967405444675446168338316123592724604904987469970573140214605694976512885359435664751640375158513988817186316371161916066858403050470900812589233262902338938017253016783307169076796869506018557437607056248903111833841833473883925401169272477473789517750204851276422109777212163584815660256884080577422046958117833470702479419706832278912298801787320070275053936098684471748617098753693473738152024615768760848688354913472985481877043883260241002604395405863832147587640944924641042700063300235538423944686218158807684232097124998580342515331723661907432359222092478608261536063990642453398617093655006327395297449553435522959797001599646062014189513852522400753451184603494652320732364405204230724242674183079531649477505548978642280733299555495166018634428819416007073245526177155612012633450769927887766326958475812448893241677881967219587339575024572268012112531452735457856881530242151974605569732674118584167071399249769640586234721157675273995346761484687323706993346781973993567994235016095363190583835562963665800581338407766647876104882925668940818888260420873654327649867103991664859030954215640566275345915588567646726098249653835976680698841055864666002987069703701370571646317501053594330123184580380018239639419818335304288725417213450860950189080471267279776926515294836293820354460073866513831979755405232436640186930239352898821829866383562747726146531683681773980580200829583010749144107017313428275295719900926980555829875460675687360659712823599103759513853451861864808389947642920216694358385272986823890888224581766933220207340246458357881791748296259998107820811710725713283488150907645209810984694362391776090613288008730041821909804359969909387541340922361426088805637445185119468398048197837024484144136746882215281008726847591071080393015923298669135499111061643568698636155760595501337444564566200576730503863950697303730468403563626283747065868062964823886048486149701695399117873485976931044474743239777238849575979826018132679330373589395974499161607436853167147540603573921906913968173287070831885179676428490761692909293171978109450205159951263987888747202841925560017392812178533047096195007762055112041518925391461384610067166689939662169888845432400471077514381214400145946552980920191814358959331095636703270506472904158670236796848457688589302734691989442571091878289279265017589242985911189762316769689311296995012843966441218007999036068510797480688604492220213869302368487618180398503987119317324854586623323386956288446586193458942691399087714618302709364652759593941475981564918548243650219272732394911247519120707493479374009917617800704680898836012262296166974272354572628964055572871377522342010706586046311657637947635575202851822800518268549797251341719116421553041854060596954797492700075844269738146720459874814392268743510976360205490673313428036615475613614881957117159191554199952458743619475209967166199851883710916273377605302848746709077438992549808129078692503060077531216545635813104193717457280586850827314707637311116995452506400853243109400016761448988946902802095845260063253605245644590497934349606008533921367980999511172985921909747947294669899858953070529107377673858115541742528171092937232303733182334661390802497072851619239912748784417476374322931941322555732939268578508664429770642033011026255056173814081540060019264195292745591262419967425990758848862451984400025340542100337213394763808735995236665724740915491676596739919028380684608184080695095980240902691345780228750546174962444848645645180911369168750341025848045039122903466248529551031810843299647923269914499071751811138477065948562653715411044197407648568413420438482745651185890931464067571150467287385583994517507235985979270620674101446936723944781989485187940737097467692541285898222142271240471760116040436355317101285550106792115667687322415256441796083170641102979091960634958305206171357761246680133579950667075852285158772930245586295993241079317154319499206146027014795814876518704550564662057134215685813709777415598490818907368510251513931385884244889004145032807222335591659793248344750745818665010722663027522339372442545543002892198499616175840103830402338356055235137130474252187067938415354253288048035849153759669977173909751832045203540088275117372928228435786591528638639614181748842159553433839780940534488491308899113918597060579770096144822260924730759236603609814939782411178857608729817021009597793471394200633599730402855099665366974758640023715229360799170454839390488092703035640308262070489160091177506821341211314895334857273580496573491712145299666241163619505784799519915606243556088234036526245053047469351345823747005743701673677846408606859480703639084422783777966839433277272606444584857543777937812797550979827964763286897082201876695454369420142549269948131771560393731682163770201582433957740074241254526999090372070627641260858104100086382158607680030406285548689609030377743664200996953492544222170457091694738518865026646206377772024763497786869959338606593355996027448879245116666605191415631098312594312812574623710875420359347462930237540320322417746789177372995313294076802831991769860263848134523508868837737786054957111094399169799101247716612960973905666132437405052742019401661640678227102084089145620835898460625069937967739281495652168072092005680911965187878386677344632279401688052702902595751998456606580899339481915929118323533283774555272848119423528605909390307148641688027828613769046392416339576375028243635073359131520855681902117375003800520659290177947288204639192407674043501312340757897486751994847018948776647496168217158488786214817927309639309284627847304175855430748879864924269316331403215627730269203677902964561079076328064402447569854783574044241909852214569480268355624554175087521623615649362526299404892122590681857380426192500175047460985727998850431913761148107353008219996039425779927258939022685007407163676749565539693759926826643370344771751868586697687888907971391470711573230440398938600099125035718883555023792286215598190413170927327270837853607858155960886812753668562643785121760755500603973135465498400869369712455884417747623569812399421738558517718712103008085090723188292833515366043016267297573411135183349272529417713369603755824499252256288962711390526737903933654732277336202032340761845565156590817380346088628003152048338893802818003080444084831124739213577949607712841261038346171548410240796040873633551597436462458829280719034367619195316964511148448415111276090278047819349379173515252753138645000348416226292083937441162644370374596343061950783747829084643767119423187905933444261892820796643323864102915011832705118169910682882655474858577340748788019205803135885416492349311105037879967265355449863792781644715194706994097842318244221096978602763041424527501794999330774611650411217231212813057678949758532684959384823503635130812916874896992187453296654368334026653776089310657415536826801970595930409641633310893531471760692966943095235942682920208666393238992536267092501911448680018920823123525371083200049709646215272761255333719081181346231963066947289387922323616865184081845290623822337886845958113242545544949588451267541012509316147605067342345455662221267363022147587144636212644137281073404785700126879982188200989973674820618450854589191841195357845101752188315136669520803386160049989674222844005582128697094256276278880920278064968012639062167396892416535656294026012738057460170901008524279975571846898264035608852381176977701841150400981798933946088647466947797399792127458898549568995854527901508646733874874836277391058876863944051209108801907523890283832377291777115615183038410386089701207578842639469897757279243331909507272370879216952662079247849865702797612480717847285828980478436835455119446381619547235556522841880447388661633608470190627644541363897566961123701468144858964225416671568046113075524795518276446032521217647510261922261007257605818945446482641793182017437698181842248519611338180028323583888015276331123105374720529072166200451787766436839279995938639392268059708043546295310876739984066641984286174888515503736824355700775238439406493320788630104401807346587825424607056617275623439159972572315103274026512830545005954217410728010766248955908324609882727761006887818131868228926065612742385781068741784723281800241167968212990833843644794167033112134963861279222931281521208460181600676151809572663973925595110340597106902436219834319035421720283090174937779425687617019395584946806940468425810848717035180200041151437352334577297858765668394980560419518293597909834846601507304912137183429152466838509259642048221057547061469185663708661434453788900225692601318718658762431643068941166796587692451321930099196124248343295360037486347896123486968196330574441649676648527956181066083481298830542104833171841025597110479576300525383165259741354875593277159760429001461678346893688992368823394051293951469798460002423459918149664871055621284549860595710586098745487371775736497086130168964614087521699282419212977955675400222059932617297133130024662868044187368749883423460652933048815992561852013363827893162993046927327777816169804956140363998237265492710684700784034686780737294115295036477031367867325071759242616209936583174713385353139144025721812229304649463248864303419802035778277608668090807907846104392465412365901914815510151946300192722831121092283821476196046427998887264607561029099775079904321389832103625259645603136146078155966788470868563841810423751280091295097112697867537875112743158014608828878200055589996906916808936618877505305358054847070008585296238223159368671813167612016456739092877387654316532691724018968821743020051528638507413593910558918308497239141964826856023566538438934372599931819247112350608634247413956032192643831142781046891032011557238757757063594886783194775416989482356245057748603025351435512861670336720771031404977847445524290844454508527119026167909925358464240526145387228877261724438657951244567469399127659276409012431313210756439508246997358920189280174288804219603975589180484178621594328784855475672952395247691649244120287114136463174588369037252598301475966045055246118376707873024206008148425726835320653152717246482360663245509395813567504203191842124820254884683680564290297922617742740717049740309874862440211861387308999537139360478320752574159230666634724834149500374432829438899951062342659160592341130263086594185953698581192752358841261591671544237922722039934024876216921188048427529049439258461518909833001110805052550804160714503350489950863971446418676179179636235379009194438292586803690244012026301677168180270745561351755725740060341482272989129788970365776646115914648947093284222360104720432872930254444587702063302409557926627272887180882606753566365426869622484796402851523890441609986234442671053231462959530926128696404748183058504260961640454304575430062942836398758759634777148427128466121988432471074917858228590352774250095188256376635054311762471418674204814714339931823277331405311800548385369400238014543770907505965459426349754655400954905213011181206067725537864328250655703468823626400118049260904504836675648042569619283273328214738236835726945971682007648769787048582057850649058480646194109941735389655267832081639112868080117829063809348109864464426943708509550395123427733335625088545240175814747862916719275808093504254154547746435730236232377620629236193103210390433741215026046750597646080163402922773147280513012292216318588769592970977185517687739608929014936779694720247310994909062557256755156350340642691392679986028191330873149491993243660578646988597445770325918778243354866080915049189568466396589938073258179668340405975106633915068497449534694463031129371945826791330047661288990534178492222059264810129355551704301322051546093645670981384240248759825230999147095875882602977845452490820774640389001709872533474744052950276934789165743690004337822322512121119179617399625346674206405273053226055384967169795390201667983956850592911058144021579769186983332964334379119095258069253022659520316639126979881563479383480947671841722230081945718707029788956849245591668320334178342040547780446547406264250002148200538442380541570631872892367502500605496674980177358642499527576065973972103409693082761436202236042310209439488069632615488781188135774324376827478933592172533530480380250180016370119269656137954866763750841679436962546288245560688997996969706507463037344847111959555909371387879356084360522704191340872100255225171061520816483733590299310321243475329443346782142782685238587221808004846335869684234297039102768508764711673680491665618602342652681754717647944899911004234029439587827398860381368977774939221789625399710303259635907817297356659071215091191597771370682429498335509112013780690860326183595534515171386077310813394297459670279866664825263949011130176984070173115616990148735857140190241524398809815676612203996833731237472047903283010360331576773372477301812354248166751203660197809120899660220710603077791162965289420913238156482803961304362763375575146683005587287424436661809861397797353161737713240284105843186592607629591361921563329869337100349710116483477280064776072179594982930485535940263824811888587358561921028781822817784457251397041361869794624128714250778802245103664936679455716189725940578968658975005785311753758218264635998034471025339746613251001810385526593444962170971199467808377212354054614902004421171987825514610189135796691506391876060703930054766655623773100420918069248234542550356712261540209871330484535341022767936494316544654075731047772156531468933808103411736271199095700380894646601248361299581980584427980730250156323931161112982525777871443481093238090099877704743314816228020910945142952617479579015152857407507048940169756777819472800355756870722461319698644062329249641198449161820182024179842272692383089659818053091391744958964774120839943688851208508855289103546083396370623963332329109783163171435080296005294186035435222770289591123839062047950982382168975782644889591249763449819035663906135164315637727203053150436430397577152418145626409041828985670700285885076886238213145324242424665346886492976122548338485699205266734530101895322785192849643367331521863250858830254165334064487209977646234562601024393865261716222627147515667486106557256306517977268572406791524791620449103083354018709067617072047031343267637592598507963381292994669509107849841288978954589921792462114534802487015653475138167597724599157012666471025588816992673726696106922103846613787255189344606089765688954673403933334798615220146203927393330086313028772791653348245003395024022351674866233719867186849027255034400596230363985291948295878393568078708353902838954459211534067354035137729470301285054529568770095573712221302494953392208827326760086052092610613619173893712194167752093645306093512564925975489512008531358563859829060505840715439704278540458814499579873203527312845822792410628096737560802065437256349041419039486485526123634958162931220845749663397955627622065079509922801284697363188785160600806613045129529492734953978458969319208105552561346606937719294017621517808618413687723446115320681963109573183878271301648609251187691396041048480396323113840406532124532734674904365103885016401484543012176263727131820447573092387066467041253303884702053930689858661136629023013755466176629131626140100245139486681999634925661392721658005254182735408596706670732280875437088509531399940893571211895422246848505829475378761170564883815766558379995234545885544791373178601148766631795340363920476799537033438843999384539418761235534745707697992364980579852590542541263571269660713655037083683842302932975969045267937137860310301894822698985229881020722071115297543198996612506236640347080324241973650239650066624115457772265820681654414889344135974921765684753676611833412060599864892604275035421121963443454811814074679657505485049773635250794656792259995795507376848949378498466927917668947311586736003653981892143220934441555995732111120863214172491770730456083229909004058364887582327631677774334832424684372852486616607898578176184898194810971143173547226143223195755126887392428000628024973015289216250878237160121191755859602636101140011006255249158116851972284950570005670075644093808357167106562710225561998182476023832235727462980315698619210715428660929091994643260015715228953520535004357495034930750225911995214855735166627854815509260443632195281171409614371344808901005138246586219654720166523723021611555686989238337890745516340716794153110786816597118842062729394077033901903202578773255184920400934529464612735194025992670252153704702498593297513398620173234047722627726155714951334581322393079874608554069908702109155621699099674733535101050855813615308192548514620092717944157584223415061457882119732127606919646986008873662992794837552188544362857543982511207549066344771893061211506586399499329482282732227611096009642922960108483035083555094750439482250423678194603796629221898159650001958875031603896808973462495355661760402886141207748865362399275920255493174979027067160812371666662385348716022293315893611100015253978925494354365074663540204095387534266790274151238962655672117323556995853158489838147699588541974435803499856767540950617566030397039687757253142795307587276385713641373374317517924762098780686029545110621910376052545685558559303259465896696025815295930314477206662107637381730751167202664604284120320233791509850922082313422734417917306615866564644736378158938349601209629436296588638016795326576631397794743156269289310370135826667297498979286656434646851243141425136058047272044881563017090256975282822707879353813083822141938285497527305656632410919727169491253105812589636498097899842123783005877180710837481647213075889221500574075644035890039200255543823376733384509225835449153102248519459744090876974955338315900249824145350719311422046717886856689277350318492068166565292995635732871894169512280011510976059568362216051364304183908738322896279352280868438327471530184641150688204966427695816541239647694575271478824097463877272434496884735717142540032508321347382528788639013336894187750398510225208701993497436238821827208859087966646897582993812337601787939829541486264825046746858031434387971275439526700228415044660540773228613276312172204780243804590282737018917458825755863952045028636771290589072570935706408121814614258337543317392986285766425915310931206341889590741155555547294000664108041093703754575434777999775348341055851926461307370219266199163499672682014924340638188298899729979813043522132370566214567044046694924777778520412220049641512726073789662054384040055508243794936923246279468728516536506285883714747844692120586717662951249084370987973556666137490922238053350377051700086960561040340820739386943716313856440373403243307870047292402069233301381356304026132538976017515656798045132817604149664347004099041588607562521947882257988424882931298416311363666908069532287891722393827496510588115937801892169105402542442700380416768730144324974091508762714848560184499362638634704591763963987829227706545313731375449200665801803626068358300884360294752076625812392908089856510651956574741864570962687970140767808350718775920694068246782661609914392352424062981224909121227538568911312197330538556704968649132989785529099864741934045124892495793962718447546091035223705145802456817121843705310236097720374289341364569701647817989627830593715946792632711868822874378462264567503095792254680753686025439994876848241998864698137151937271594256676242586000809306048272032493568566125699400839999989534924123803078612120450605173788660518860068067741542591110427736424979041514928847125007784129305915091393538654809717430135119247021451322386109617718818771135995728952213345683983355562459595188891839123278650826314102574840857139986700879146596818287855102219918344483035491745739820981060569793717548963250170167658693177941037028959941010213485995609656973588624085017861091136149385292641335880491334337990741484056223379716844355585641525426653912860224242683467309483621002631005104119965630272535202472594716814635518287561953556657945510049855638878809506865366018030419164773171522213851590926936021883779394753626367708444386928983231987578824129576168608997337092813122659342809465836255304922526021211710020220173814249692403470546536549180126027308441740443156061978637869486931460271547243067553901804459275046334297428439131081275249554899983051410535233679068428609024204848203359195127081286820590867694832083755041486922355804948735562293622910356647789910645795438805483154626996000436975269824015429577005091700265766916475369954124297466677786134392062099685162516747132483614928243563429681104853464849376826103951109871719610355390732146260585538345137084202709015876820379184042485316498699074852946177091542086436898475050429974786192091961699587814948888440904772874234978886228756483324193602244151147451411595270963907323562255134684732534477935725981910880531779693328660579740410256209526263110212571362031251061699586100464712800330221580975126265413590666376634030162578754956375498596081068063147530342649767962532562689933425543600168802196756254247704115324040445090865671367364677926776721370979478776464726837205447037819438898644222216166008244551473589185646496320676994409081565703844514022029280203778977647813188525359705651970533376692700158339922507879213322061810280948421077217693472518025812490959000732082911740836980641126750423249918744091147075638444661904857370481885689818751392662115416134496518991881444597901200067345225666513221293850005975614549125587238981326488647556328060617959505482753636673946989119215161151659143897861378297121905285616249998459754977181675160532392782635425627462881612130407061773198456931835414147839423544569253215610905615298454394887142289981356090080403226011777149373691611906195459705976640316863547653851665088757338190154748439947701295095499271840208907636536193094259055690910968751749309760745875834668512952723401170123256437041987744183024175273954165527787120405947185187941987468269188648751723292563525351663459686944905692988233980116080159140701115047841216912185275954819400145108077184867120364683907482384737979409126541963525879238174395666324019778182599207879153898177798327740430004878591916546590539422496108862372979391372160862922329450798200309315530199354589789227203348945373308738361112880911349570002341548467289060018187302851554084021810150728980469293143617059750041438178729415235673183454415421327488965575598194346111999830463952753005079354476381523330071781044223565770931750011115102543141376564180381870397033875141178871498764060671605727796605189059388913435917382009323991175548058621584797113045377089135508987926893845921295235022319287218910116701328044998068587672239780420737994679551343119444803000378195648341303149750207343873890691210398768201967154610856895570138995072059356596766377210070229521330794635217194056068798181164466815784350571086215931932375150484142992301657810402274708467834188242212190042153968560184384306717019189050713202083496251513486648258177215749255865968972333260144656333920085533489422678728242961750035678915101943335866419500990758881850672637911807753100016111165185833814955432729989959195487101190896280742269161071695024022904516474646036535242739303247970839059670858332014678222645976483675848132550595327088320362728639027573963783345569923436169482758056120555482606019345963960518034487160327182615389762880306946402366286728304523922191078678595264152207776506310804388852912252409577898455787600584516628988410689027157116720005169849567257076321532214275743109964595631875225592232116521003952109808382085496266436142973766289360297279244914416829992885724999192715759668635910081844578479564112478405282036214448619830352958086313556285702644342025846411462661091198498851726737083099284687148618221642874178228139227502246918902301425278884430895985777599323779261189974053058855373000062192733749846441997907313174987623288614776863099464519027696637376570255584513874997408889067715456814265533256023644938028731561880660410846541569002876001812557046685273977238970676348385306431856991552607138179728684810861040426333682286284699556607414338321642562692054345677837915405655551836138858902713875522729992873385954287029502022023936437050741454186396658606974654998299996593967761621153443120585504573406703709521379797039423535814750696789813449535453719828498080016617416885019640128856954614424443278091108079832888250326561735267955989358148582684380765714213572772756205147153582159257081384478957423431828143431348862824130354227958409663918529012034676846193980115262863270748474183075082134818625952841263047668602114728336359729238187668621130393193769749408517084593381758717812391749138105514551966841797533723739736311516987797320684722926991336322212348412731926849363980806404358510267812369702020489978211100083326857419179640983535379132505817018783448351870175854803219928570796122683381443722870090678709264835869557299612428835735315216735759913615077645643829747471142595702380694102241874547291209913872251546175904839009095821484987219112454829186829150268159022316855614221728965695549832582744581005119381745958487734846635983895846485924667786929324545468061263863620677152644286958742139430585888802796210812915320096698759883138222857789814560706517584234256751675934050761203920648234931892713706810198561305185476991670072270296330515207694480129789894640039972652975388009516995815928885167861244549221323059806123169788024211341421520819170392368613837615614930638488594331887563759350475124572674114063207230631782570943992374486021821937463003643895268620533548949842062257578932331464848411242448026479392957061776703998921076231971306539932952332162724063507000972506008029648533541707685520075216869733724483842522786754694957265234822541401071085666086153403098044483353287348958173140953474616937030811519661418313933472740241419193653364037707014473727787770832450509919125261823833235248511130016146033878847162791004131051214437627395919660644520161668290811894047004827071559436736246782700540121450315118339954453170714520011667908814229721138436110173124010602291499470997481810421545250747690439332918804290911179057641841776642226907947972570666977698374961770582864428630394747635619710252223171649487308609446248455440088038913967232044727346325713308906350452676977531155549394213204359609040038378038566658417207088070684162198291240553183240188595868453661853590193823285497063957854873759741904009495718793624998844198621630044962609919047349769639867225166125429300502860723369004553744424449444422341222457547982515947133602340051526005528426015172781678529935194820354511994581601885501618652122161387690420583695024867757772647121469602752636558840443810687205869053744863702748483516036893858938026816509155626203238290041392890479217409479017815617257596337566248294451448392543463868404000131485335475456571992484853329806974231391133263535453625205380462708864712818801384706026760952749558392856618875444778455713915358957032273151124587674503792583334235507477706830146081479003605028019049909290384196133951120100303845423083243728550058575360723990584106590051310057507348159893222716980271416853955734641786380018228530114134680206181124978971005139654828675745295761085924130947285397960589186473893816980937292159649192441297276841862803173345617582926691738650425038493604469579320215419813261844903937807305273169532729585531912562298940224768679699024233891914791347300903839405427575554319134489903150593695496046881020639881078847027299140678985599874129392094877057885030119081986923341426898284409982079714600851737397180972376912397247296188941191343774948931012755349756849693089440135863504150857835208837123611787012977385017129077717090484165848677120094344828243310814810276913530442484361913039671640100974535171896223886728032203422768607889236499772272498825051819335196658596900181661552569770772975774784781424304794641286533796180300476517309634111765286611774353959424413592995527630224948701471709964325263054050422235041761084581399352044327491043351743643655345363646435738085030327460790883961048743699409946684708254229519273122502858176213481612568906165339142450240737330712432702268444260373277356744669995407433021487994760496803325379813747955656022167620113246393981184104401676352131181659234730306465172158609056748620789305999705856432581801998339471682532824887171545207136854941666602044616202541915434808714688497948184934367867986978323289946399330550129582044367932969180245271611918469263192168257968901385454482193404930729673027865579744500561304552296394350977188455971170905262123278287978505754522398906920170840604557444261348149296855175808589378737452722914893512291665343554442155801593176874882265170164054659415913040456437412384209535395671742357191076688906033049808560638848001914230147615622846335032036038747030768237856729970137912515535547410303974598623279107176650847445831736834429209587166980317637386911563273918227783409994581898485669739393826070483295662550082244301735607336039622777738706199228215134819105065509276985623552779775329695069933900183912872123987942549411886258947464224764046606720147206481239565297604490950460714512029796878216386618899064581645560485648801105452762000352499780675551569908361700994585940340877418442896692261427798054248840601240014566994607576032408102490105015409601514731971089532672826066331334953185803237674570350848257995970513585208874545403412860711060780832694404637462383465002418414230451298473896833086952027229126855743040789572968445044244259660119190189317610391565408114346499823330308610610783721092651986928821642543411288329472202613563924124936590783636409220208377315703944526078249432557173387422562104691019295320977626220330624244344025531963514402042633252625176751507909207652517436632415476874353289984261426400420769529828816059393047227230978884379900082520807972311799998542469016254391436039684114375430102748089253521929328495788088695440710559866847400797804316284378530320892528282468440925708009000263956157060200819017179502644810464421637764899829865311246452211044613910945551485493265041747722119179467425205767872863824514372550768889572401024898228016982699161519041036881933486649176873522768432696120306303208325905386392717972573656568623140490061353495280842538556439973214866661095825661152142559416480645391828252731624377374511219444453672100438802693308086446337244981840395030896496054103398364696019895095177116368683949084707691493511591270376627355179863759099884527368737798717016524926559214496762034600424883207593890894839345585960066878152777409287043344812361204495090212213852104936334801909413366905938163751581117823493335817601939579294817316905735562645053606202878256858611938301584619408900212758192560375235022340845815379418629746866720136294435476042618334788364392762692983412522787417022644713049225392808327003549183038588569828928155009144816444244118821852047755141350499311562970556421733560704933368992482163657294213054027401151958430156046238869346117500541765963193517185985154278911847105709703870427804610453966800248283390279177599152207504462080808122173674950139591384229269319479980033393320259995436020770627575352530374674149785818879664979078452342235468716854447199539302113296486207022919769198123631403928798577234310386194887425559043712312553909281370625929964392849113571881041983873794887660088076129359350481254756510361853456804102183127953839976155426061610160055835445690647496175685065589005091766752651454261131865385750274038122654162725116955606354183571305061394098560829731881262307883310828590306066087554847936002081698202535917985742594314829405103019813942100397639017351639231834636148293948206870303194026053655579625543293993280871982835894487172808510533307017547447357226497571461931096299525240807327867175437670747241967718699200965915024619761627914159597739241794350036332073618558269720074002580229672549242254207276850864465550056717088645536853668439122266559816473961931678768075340859756583458519280697236676945847937418417591147662465546215276306775036780882496957476296642269738020842452091521900876837793006948472772380605801222922867742097310576291524160780598882989381088244362019442307810535126637849918231027304539423752834302554188840665661405109426246379765401842805401023432585939691333430236194238745167050264939084115989478590105059360038421916767423567520178855520351930421818516852580468319560487330182948030241540081767952475582324094636752240513404295426179425582050304977162994116657705047542337894543870446922711402960134813346395485475771259253890160279327636439775586255952614566421831428558175013676835485214273589416913503376762742637017325955758746107237025870027701356796106055398390351245368952055594263363059886860099192256945263428524396019432592317847376994423649968980459610857963655051698952410001616962776059738217850985659984383988632212206785387096893902917067034317596140192065360847472711188692912152950536580818489821390406003794980067412433337772466192475900118747074296247313801082368302869221636287073468509914990445703906406138044291341100100462477980028547031693755531842505003521898583532610851497062734950197251574320150507616707426159049153798111331045692448752847578330474338419530942066645786357178053494268058637839486809780167093574755539902828497605495307003713324506132209418934509970374106322062334460679387399942683880999336874279916447589070781732723427296690456985787333212002899441158062023806361410011562254245605457061618427010836818117510559759883166238939535026422670627066904430830095220754984077107043179364330770669209955431493538440134151552375398949024826376963032699082672911575686200276286695626509056791787190810671869092500383511555334611258405167175544979894486267588670659536010365062637361468903147208088911836922793303883038327614570039166020506364585430644658801043409547189586077312474876427813231737173228012311108757309950394062831607191708060311705634215892712062099310647349228669818767853157046556261182983631639046557464595891022451293172435081712139310122980858470297163374356026052878760248002230502393504795727847920230305266556120259549536318653885457291125663226065304491635620398493814801727294578229901477689747911220537861299054625334582813331224426502733056093562225556200696780531315100913072689735945354801526975437945422002636168581697762758506507893459138088059212256597204906353880210478013001959648732483127280734464249804668626591236133662793762371038261167653505004480345532649252876814854961509135478439107682214021196660567289274294696979420922554707930931217356948915024743871123334027894113002871625747445533883597147465426842675726098324494272637415919032525384311358582477528397363054035792330294888114881703555519907493341681782211200268400817547510665713773256643868784879607876471606560856247752510000988594524716776747063036679272637554704445730143115034865373984145889416985252958787725136916194786312351150858680047264090740577272627553939563311749591449345799486130009784455470170578300319406119079527284686146035459261448537781743507796813384492770969870125458667111420171124724344800876571389647270402950133336630364975887336941159529245580431431357438403931713499172537108964395257764425539571956038812181214083650971914828892479634300248696588573295274903477011807041043653874431820835534787561732351093403204812536708299148336504877489398732294168208359838454911537897723152620038981814042442768348751504390541368273250448978359131691005950868516904890935578864422771900778612345922370041595014819278721664311645844271420622320230270172873525604035269738637039295704882553470057696804842564422179041473806456738198379506090134786575248853910355307433739738865481368730600622367626960108424036093507195258308431189615964380324680980259680750774361602051555590517173240019378235087531239074753386418591989148315037557498247239076417389927316237010925539327562817196460700601051320032982493018009364165974648068626058319895204099555359130307376272255459848630261025453059163391786569463494767305066273216005542988063291471319045201743852002647540426877810020546547367881290455766991456781255729340081016422234570631207331562910073679701665239115642157684689048828994939285028031947923534235734931443004799562820725972010684626037223912498063138870658150494659728774646867571248713640161611282333077572438592414552143394197115531843742004861997841808342633382361115748709931253041711405864264149030020900816713530437562430076619170985574781390412825794301844010869854572045313322633518541642914515148119142602936119427894521055236441434598220616153373470568542817386500153260865433677003332621637097765398116191054821359906933132990476891575468965073841778118767497560285417635795733661530298156851662158678637401279582982755196644695110738741675385549961244022337411068661285119907744261852015845081512031848690845996927501630511234327529481564899563800887260574892653920273855396883588619367305112544859894191234573359840002285447642119759111386252535201510606733920464391386209709549096046608157739700821558628906253190887973759459089952429844312527370100252686228154391462189705605311045938313654629612482078808522072993700523888231890719130499156249783471705564952373078234778764447358872086651702264691568761826053022831705688182382818782681923890762276763682146455226798548895720473837783447800120290966955824418957579120379897072029122737770084458915338809324922468082841455739671885990832243046830184899875933956342495881054297137044072338937874932744924271635673481988330825517236680379277843365749895088579181834425539805740535122396472123029928973834341685525485409586128694051750863301748885367705720209817550673337586232772348046446675615068083373253439587457632070436027334963254115227269068717680141753193316073376684194056496644393376137948102513531658066955155033550026823265320996047175248059400378596401405870600286682322656088572030710928242913550025436032821140129778861761844352230806266286307548879284373248941857869071523477248113135921037137435762454352168458422342741139626385157485737919975072427277767451230108292245796971118730529678562566589309468317637027046852839748770034849012166797441499552785734829528218703154282738464976486678226410663137243550930664473376323347868430859662599842236745960761408834890792578025956888379865278530576196359422068822223277960491056575916069594461372464578633526857316831395819651475963804019018823586280107390697579541769806383771822340220598945304169106637612659264991263483256363531111073622828003681051113774393796773936309797369817028725834258745891036756967390080825607826594949720800837866614414880223659572633743065409620887520884311298131008087300932442031236344605016855100835606656828649181698179856656668960781482879649339563067812875638486229139448541006007566468947338370388554566632140526402892270986805590634699811785666799444009475370638943226522490865763155923040411256194061580041271383701578492187524549540879616654167312521443572848504080885075619980037236550898695649645831371489185224196876187624060607823639474129356873337286254692970201823356946837216205063659151523404667266755847377142846355574806752110504791331151269401083992681356543015576958797737637662457784280859553691377400125338274281837254300141457294251094099122711909263689442703412815872959451369300112013633058295475133760100407540351534497449787278144381858078888995005656609085182308584471052871793537804591428141152222715665140834529457139458081170860476347983773883392768327182467920872354357410790733979178445390981249346627838353026671419432294865419269391593095419836500603923615702976078172595178187858322203018101487090908661336553393475653419065163545391176660614822416075390193314018061875191984536973363553435547896700373857431186652016086689577089766942366146659877086147484823626617277414597970228696068121702495095805551125474504359774765024348092852175967666765334775721509559246843839812988688393970797746761988331290945398782458716673608129367544031387356877564662073019294087875189414638804237320693054571012059329225638185436573429303469675495943200619003974501013240287615326677237791708207262652104176992368705612549880638228913345623042969442438803052098214838382488523040716697878882821978175404725285351945766672685369203334306285168110241899900764054929126233648758204860089079725326713614196440840356528481068527354480021390266501144741590614313292026233447819820239777266403765531703185962494486959647016003257327953802907008091156375143098623324408883238008046452044573879048620725228566352312903565534793964160515940061433851943387049443468801930112815541313662833841971892309281722767620376891365854944729516098036247332242093236502947067762021249981915525418520093388339609672042047074840175071980527818729853553123456431707068585446085224441521402758725688188737591808883119995918246344730653751588157060531551416573196241858494665977498051991902111332698258059812828696740980068730097412592285538861607764100863880961384644717036874576775345230415453074331345965711987686901142149654033016235929266377477641381130425272571999457655306208703355490810363539281270778712157547579666857074492264882671007250592827569655172819824892975034400037684334402410126640201406719541555240130522208462590786746471959483521091887869764687030385866524974748004759100080691788044883685210093905735572820503242501051430634212508814651207964601670463982192893555035592468648248109218659662241324855473337491861608894517708495650846242160718271400811012731102852683398078873745185420007211701819708824019771857578031390282338095760894416923512824211519474137950616987173939221472258444942931604262174605900236323681683974477599817937231768299794424193569504308242328937767245742474163909665638791610754886181995612648501111663869031056263363795128162410989536458147298838103789822673034932255939486824632371736786767142418272051178648787760271050429390312824192132975598868216753538073705720843982329500365088617653778533669869539453876573791009442734464081174957809026942238348383730564795253062751612204268073785728414593384909440837796697983658567790447781503221363280227404891449990377412872561716581463521923443006075782530239035943139629318892118322090087282587397689251969378686985229447627903080992958796876217296504283177332050347127889552383698815478443126471937587011077306546155912841287097606903251661284200387238508249743697504304740051122034680719373306827387901005324979703884048431307805921993758872337882435704377233843965101370425154062131608236292544691031726010938406778426106107092733948612020002776941134969322774127325531631969782702310980006413114227613216704530766618029007604970850322056615666572157622817627930036096872826430156464007877146380103740241703954744327436201739381792993873711534769964707534915073660795121979845792754533539221894653365065594206696509133652559912000195552009766818155848701550301878501822977107822121592483038282140265363498325499310874561370204201387453180012540482186664314899869384709097725413779034775201322467052107583365249297464899458089011503263683337968926491019933572358326215909244152514395915838946214473015459479678147598051459177324479845866103487332990166783963619852918903634905194153156724969243179863044274352327552219340072642633828410280113919691122496297399789164145560305891920787199225586031425631496283762102686622161603779410271623878313050709564473913949374309574501711888212799667561605956805145549636998817348860120054280790904243594788582538363898223929702007088103641891774774333678817196017214636952903899244110983648591547967116829154685117517172569457570136079853508493512761420452523512775463475886662576887935208367584297463686686718692507449539267190706438595813879658346403502640832260996188705707762379389281581591433240766627530414995891844059040436972879648491612621432226079093731102730462184174654283355678679724743408301297117340158288895866882671814408400589744707554686623314184701217626160879827176367071435196082405637385117960504540735122698138215176415389652546481180809925758193250257152377128944939490331867614842721606906376223717852363321124396505016293179763173076908621590490901297784953459009554471253276174298858747791918706736065975075762801970005304802569580939312862328099426207820664597208034553748992973693908093952109856022818368574755691331100279095034004756701509663375967748987237180569825983407232614553862618620046943708391796625180969584555260932271274847543376867646817304781963280807031855482321104396208443815751252574807734286480126503714482350034432669940510460034541086136396107180451886220695829258129596380431578472453763667205429821382690610324691023797565889545749448154307063737857883510306930218132263026381840901881586016535176548729914644784973038373075658406740644837550584056035263870276906491064371347051455607101892999925458057832960676046461004970274878648056336354019020830846251685029419837327843049179425864274750451908643747863780456229327798190526143273793853218894881654900014745200863897639059739394578426860671301570714734204353536870514582130345524041716528478124489223248168960796222183832230417471990078895189031513230456856487219566784857127397287371093025322345352693151065006271412382593327346699814500220345601394117721352166710278512439967714355048354714535480954245440462346441642376172175896451299112514217163369915417900107283193265249588008221592754293246372502168024494595796726453769710843160946153128299095373027105633684151280135444195764517431393867224534811556804706564500774526185933052901864902857287420340287475720669110354917841773462437999676342922589054813383137415807562618575516957945947839234102028093068855530311771465890217364877138463547379189627952332844249439464147709406877252635713069864983131998242792458496080188885382313107766888052678806644747709278328086939953863409754305599356925120416152033528224615487172446891441542685399248796303153308414271823362535781554518985890089531714172448597805957080414484905301122518237673588129571012671280552019540845968992083498240022052486021689156567997841104739210024109007871970979979436897045078023089916418479537976321764893882077374744817434640370357046282727508222242235397838958451442908819151976997299083370835658315251029640303336102386060993026020863337610598635773662878693216996539687213202804267927439415617768101233080579716041684389481563953784479852272923667742077020315804586832915310598391043278494659405604651710437357118131687478510480421635673107285019491405936878754859298139870729280558587333555766609290566941027341250787219313605866207644411114698538843980804299452846322689263433390105879783262973197127631318616790040597803890738931959146890442583444419238311526409994039712195813754166690621409193780951158969261225194731181563628063976751090157981934708339696266143597539833945411505094317716555014144231065588094814925197218149393051058221538359395152397683512458049194229341140012230079238360558846012753027717028959354565617758398972325571911247870943169443387269204684920593531108057986368113392488916054755840091622664060133526775264364492362327449194860370178443354913204335524597264423410562322422547412155577908705905238582714051490649587229758746663987677031056971041543187384211095794275976152787138548941622280547037692431544967297838322302503509004032747393859875784094908519648544262007971557502484157341764618741693543881292549354952318496702556035080910678152627762428526855273977543402904710802647459415269244240671678383659806519198186874931318422407199299831604903881525435504436430097071598764073932387139068409267433527234919081574135216559536940939005818832276840019032261834865038869332111812649937482553044375772141874974938845706802909640771514130613271775353457343705493606157317624567546916308823093276379332052357677987822688091104453981718111240517742642817146346951424547134494533526669430627752473092344135986039000207763228823746124150233016482195688648162061953703821193484971969186177143415916738326373472210018357029123694293881380911176991441657858121392183559141613137436729238603024262487422917908542657342413731786692744346147818596277877267027319023264591224393663501047543936128774011105540628423006121744721686305739641142529470333437273675482459578338117153264307337744095475933646738389919562865117385587448110491786701354113145675827032840160210935314884100621377652176376710108098375155349518824655712639025424744396134072174957010433534500858608030111242621262159152710429147224461648108483682011671152817721391832796360699569489199810865307863333667755025055228970131991513949110915575245362102683158833121592134489783535369838863680365607233158814656782443303268165726065628037179491743445222788960858629661584751168205808516475393813465588208002986425810619285353801269143981464123995661323511570360969329543176893496263634774690706247501556446736376903197413623548914283452523474992190959076972138423840603874136630017525235812243895846111184977141683152612490495050419142802823453708975811112611735320090237780755826876468419282394598833062778551035600045062437953388383130162293537574563547263123319628033323054601277834754785680786574590566477651156050157938128347566190111194867154740424799126137571674244929566384662663622605853740545867007584196737122706135450050243677607171331877218613582298917168013500273507952050234141920291124200464175512857796323509666907330779120452780821264080082291055717261543705951655382712663976511665170831976196114302334048513988393595750351715107023814121990862523302800602182233024736092865356829783091770826061681606385504876985046193206253766678952196567901496026327264264585823275670954578073766011260151370716736450359508971378800179700593470467270546644130370511971185725332415657788204882000046646717916255869039323964942932657226087165294297750845749722104737980004443087462908467925855228180026230352124535578131513616771892023097124354470727155819036827776534427690922811143875139912840168750085343693497109672759362196185193220614385650917525289792804390704871313655581911649380177214956608662689451938086346460293526146816313660554522363908969449136323940420681184369724933352357501463677625241383377813518003425844416037790409005165653033083996577463035504520315099299071326923347612529000514682193278898803662952314551343738244608776801136439478598585051854584937491393029229124179278078876610981093561290672510276070157642931439698938337811975703637878565963810179861299567211024883881247664460370945433347584260795421464989652725100567982528040899942802479029379620421885183405964095171679575305064746923509315868421358585684611813549840203858872100506830003409618823287800250046387467798020301401704054645278013804620138882209954969930742026840104556844435122470715444333920630997869212471310057152560774586594883307483067641223623357082764155803386726822144884002816324540162544829086824941888208721165405985703902773514910767587135683042223366551346908854159207858182869622514198934504270800804266281427148725117392036410079090788195659227768459923087672951788594476375362161103264677044243729568582875613028428694283514447841502503710900000136184789705752585909714184126967671702274624101003094197639308181926856963364592523558140447672360756210637748238688393327717906805562988282493486859550821583289090752296131030276404422907592883343393110987451602132327580668556366961663509347348535889820976857933259621378573270028577575806572341889584344638162267146748663311764566271331776465999959195642902148922676630338296175320205198558305433610084413215746785698340185297833352671685257365408428078876351950644084831213946789637447834185153604391465943907979734751065256437818818475754604582718157656469681866811665990529264189450224742879813609410589608649737908865083086919091153233778739709957760414668368826328613045298515808861917732524941579890694513171309404887376467215925472513699299252550618253277741093973956959200150987142868818216265791510387320544159440012070084472383311919193657195142148114652819465535245035164945274577082686365209899379666814651582429967729755850856144953139803181772131834458791886909185101358083771111704509955184552589858082849384792274309389473648710688890585202477785527727104049733597046874350508515618798195704355878488120973598638783151233463855425510539301577038148814698684375796987795802638932690220060904870749775020093691220812742584202079554515278203270586833806408904801259246037038318609039531425811929770416100777398354040454887584892920664441632745218555073819299498325823198748390459536192004835463005511590805117183400835843664380055444581217608139384488111206824354921009277559181370345686176370870472298868369178161149010638252879446610301905775329343195950117189723739681352315542505561139774592417032107864834676472086879168323358526590240681155362393340371136392228538083972950799570427572432768737001853674133076889980640039284638236856522397692192155501339251378286367776389862265560863047928436243610078478750710057983138582861481724089867150423330849713831795230871278008480225520340464251260869981253362684001943138145151433929505898307981878282801871215654252540362375526957180626151835382787803526361036322933041301485490843419951691941547575625544395671720004105304259903848856952288749282031648959818920370101697052321148123906349976072639464854080863813575752894983359209183674944955855970534840440758542565638213520920496036063715994476790858682161304241285745472159123514089829935340688574803216797516061113115649754276653158848623204101088869004259255737080678638944486566330196579950145244238542936683391530191015550386030244801940829881350966057152691936098735762507208794685584910106442229679292183201282859962457674776721488701997131045843227969877082469609889142171169739417980563751022845610543060082499707438412008131962520280342627444581330121424781172241793436278489666592602948318689065696123766895920478885915938399318549782312840312257764990568548916473997882370445748543056874123259453596269790582353599468160414897847727521292399589935297364269701573481111891092369787070432400221906626589536888627694092437300937283204933677038198203314127518050944041068116245752176349639173248456984825072861770499852422037513785594952137939333209494987936034255987691738880706983051247762531899980919739919110670940023936330048634577440851190282801502992912658238432660066287442602175321712513724168878341975794007325499073826241385382062034355114527319483151484749698308155141279496344498730684534351729020274636246574022059951639162251005834563401461837993474392935529686862107856381267879940737900462276497028605458673794863022364829733014437076304604548970141400940986672960331661166480860833670069528197542863537582816997752554345884938790746554630883869424874801735354568844923768874242206524345885006085471781441867146831250458723731055219677291465388980877176012993890550973273685682824986770599683068698977863743802687807015976448941673009005997564218162935818276622046192441661551208519265152739822466685340136037278966537889355854328197781922007417014432776721641319693453356802173009130667320330800773504377402641355028042811679231187071616907662736740474450909010853938213759496526746615797925761478657103232981547949364288709166932582846069411815632864384586345500943446321900865990163694863076598440934877225966545046583395534582355207714098001563186130374575371186486211620860919293582965428995149510962173949370766402699433105083567962668211130151950425699327027487704846336771618372364028437749129220270343714768605265883346405132055922202758791691915853579477277894941929125663563814160410645631162832744312542394432318859273864626894295948636418132128243982953430460182292243308636566960522602922266986527770783606527274564149661629368415441049718613517519188022977263627489486711363824024478183418263877790880885711660469336599791406339061141201808022656786967497377292608109725489558194880703477947690671608776369282267014975573893574391963479776828211450646586250397347331081962016241996501943352307826527482517723407837108693625202610158913429818077082216282007661484331254662397053672047190534344479984530024052599235506573892558420339459721146634986758062091016725307841433817185934536245228611288461057386711137124209225522047627721649737697553868327337266053104064884761704040790713761191473365449891458728859176362094301747006756791128175843153888273029919464141600283028483242331562223741838049279407502901750673561885931943257150659204581843581809474858898182215386273492227067484168793880617042175538751213844950403928233559936837957158061612703709807446489227369143239866997543402076112447838258398312666121205173893250198856586672688311344045515091956096428233419529953259804683585494940144619235056231939109435624686543911383775609395043464641490991042726685146527167605845170414916760833495599176203809224850645930191128038860559800227639714795017050658288398983167551510251025599600662418991746059354053644256676904809368503123705438507700366285695603704441452585646445567835098052569339965495273725681658814476420208312194235244728848490038693096182948640399748333318740522652616093297843383760939306466181448253030411515946744764454781972170617666748064522027289092578530889284439387583875177194960354351212633498857981347907652642570831277481375844112914504679226317352835897996624353660611758440638288966783642901627227453982238329704637519301047346320817180994671421393136319842528757311591379272111066215400797995662846399271783266824547390383024396589599774778814849073172052572149743624071794071230760827109713176529324393725731222316269018633540824085014063905656673241712334241522983752572703046000214662645734969578523317592360559004050682271415178636896465715182720308147618914368703297057972535886989262098323805252431090010373126304511302459928658248617542287884260256062482507160276828767559491075255286601032422840878142118653190925407658945661456766479526247865895292538554677719556754405687788942532865022560969141916740774860468881841738908122887665040101533719699269250615579756382004983461674506979007649214474486440012211615486850602202267845211131783918604255212404320245693671434256286122358633498959290510813588715542981171010213833454808887622179171798460869971330432326966818829930303195297466522970581395707260841629298147083194914047056782714837750221610070852675309861145004876963077839726704442124833298235996870785901503628338445886845217865496010909246168322780523509659029747083899404359211818820555950116938807353756622652262091131032005500086773847981542899877180761328384694866214273212886911109894479957497354675724712798379257779816373696824589741140558982221013683788614618979858151040483818786968217083568021048255284630523774983561691908993376042275616879277943739016413275481839312254164696967744521511482727253181686160089673284903141619980281286721911199168477684961220774717749997002396814165007197386417317078252451192410109608986053115799859475831690836895365826854646057953464440821130529032596098279177238304340048076927583052892234969636300127902642015211042310351438133555132104529148332446609655670424451380826778311351312604433362313088765799807976769921262956991256795457198392489311458864738938876996030425241005491757132987783037902405171511346521266375379828609742871233230003234795182249891455603099652983558384412789908627192732606962541698914299326600642578829557378355265104921538086406475303050617769421522010528536871842049034323018549505817530083914556780017682667142568108498069149072650318515248774636183733889718099486625514676820695596766716616477975175057961438260410332263547374827737229336668310183319955016244170042088935313124610947986628221574920385101432980172249173954734816770339890927347982313351706936337796241999796009057501426099532104552885636256939729213086401778293311844194089641047472461130911448881210450237387867544189713767886535324272133565593041225760316343649707172815296869227488624456009307119562383320249431965235427596030483656771161811564861200371251927818831975194889693754346434338507772660573252939355566817388930172438939309453043027539067562190836487975729875420379324938916932396270187406437796622674553133902183628645210160562519656488408189923621127116079414333851112186253350821087698780057259486625307637706283206276205433158378542449477894880978980220153706046142669983933505641272179986499642306339746468052165767924568198807195544705367013184542193801850849458558946962790862436253132143897774351407143125943516009238203151793229510367349565035533716186872002606212231419858160641501784878079453269588032516335579743836470499594553061607948036583897276057828308028615129710120516879581922006010260947625868741609265326727230648506068559997836119140364766724949233816366152236484610490172759488909682704527559366235087668156332940407691513740616599082666085239467391195566153724004468395157840288240279194123862749843815298096794462366495446514093456048925463431426995538107682440282438348616968470981660604921470229176947159197635386832115852355029471923771211433117078756618815475202006570233027013452979618228589298729034057359983920665535424189075803161839497848826836601558037692862121345539968500899786184520967481786862497279661042818586168552988959758689578415443519393199585060341482831902566363027638428623035891842326144943599745669128086523414448959533191720586194337294678622927848019551821977163512152969738370519736706169435736463244711750632674005316981812784884689140369898769972881174504828415654480450018898459907415047938580492520683633223989994530644963929336384604587082862042490971116211198496771281737213304885467027535992327446330661909881523322234799237786422746810615835806543762752452393411781760370024690463028714433183751931138570179641601996576794550761900288188209506996835881051501452513833967351994187722218623691720830125106155564473804838831440669217011028771262498755920962432740010573380737652413698278011080487828995215238274371292712047129460442443710674961701332649223220304363203636487980904858376477669858283923223023300754096717380579023353577778614366344830549626194722061263913506703052879575153975675959791469722645175744281276173291527386386874152939417920934441990833855296877633008260918823323844731757513390511403649499193149180196931681563617760389085487467785365912914587512757670313971018060996263433140297503585729083520516384199150062636505889111250401028423567743543255160185390002161233732420056773397302081531363254697261641964940118880053096556127081277545883120365087875645485994054165309427534128867396879746713117423349920124787995956187283315939091197966128850391899241757130755308647956164741611175441690571101714897586512442994743745946303038928786589850588513978313975202004451833247992801848586951495493677625832873002537497960685946694632294378209107483843134110922575603717767130655230096644422338038228114302437372915438505949349570133186801983821775045244027360802899619776401140558400802058526692428924295205394359194601267780063620275720001452587499451774304001646349229011911830973877141625180787603835259699650363351142108868889839738204426540832929422216384473088916190677540093783632556348523472495098862273641329683429074964868134318198667452536142857279943392707299807779609748297808765649051820250326028957440248427714331392461291290511765346595817439803518019032547784822549158458671791417761637545582762844926656473580577479137708339431239993497028549196196375460130721286756870750909445873725590754664677261269576753655581678843291325065351870512543867293954364389557608371258106031152080648421004697042460819453166976152169926185255298604205279335747176303722301913578419949087906686376973620636702905995130357365834122988971885637557071521625581028174500303747659259514212061311808299324410620058265139764704318170014967954884514210009420677554708112424299703196811108326588821110935764714225156661264140699386332455790188612505076421666200462356711631080832963872919509569363323741312094759251482318991346720262080237989612991956360177351167518494691363248687711009466497021426467391651968335387924556337992366044865828172358993481145847291085182593898927258015323852347841475456228069949406464693745071231265320653757435930801198632317880413833859057447249088039720197028394787400184586230145439522711864126714841294303745213485416447852139206020942880998772825098856244740657250804122449292425279158156594471433380174240568626185011612768463847985651154962876807609176156712739095729835499058580144464631738279324610882516429443866962934473343052914184651294526728927270157596305544350662745384855390671090210498257036288148630117140545756465480572484497341261936028522319801102239941733219919830873125551292961704304791656749789475489085686021432435762612038945636627792437478853668347797171486598962677193742113729202445235149418150836450714901635646100194234712977515056231862411857170244346741653199312146125965641372923887835421307500336903468029507339138116348946896591314556659590041368175403118169954201860478177123520594638140764117807302757996798335357642959308154341508573973654388293424022288217460701309169159477914796473973630141499297717408439502232298816919973469127168019854796418466985543149933809865000405574457252924019319860496706722882374999277023079188466906856169879837701782536586785008886534161608644799273940012745923371625979284525897581586081725332776243675601850022993776530096043943590763093127113639234281684345547143669431546704369645176548753804325930041777620800441568640036921787447581073404588943904023898236477805094896431243699753598901517633464439113284189368039274030613082020759664001002408863673348597465772867432718021211206876954958877917380878201839133719944282809837025460835278831918845806793757431756465191027192709188484185198941744255815112560606723130038037756724072153671274933450091218091290982845149118798363270732972281155995407327404769446343987016995951352600248958476887845805742700866190644418070738165676332342054483832964188050121537546539493751959938906928557015218134362693771927405262297879832461491171777259976947386911872355627150969339441273875101356629853646153763557189933226879822870921988722743294512711892689696686917501748418870399597812471008243563076205825286966240610665772737603936893865229811280336631769060363976988902207884685198312590850374221649824360322210565831884017720633389323019946046084251599646638249703532034752480682100078493491043584882130103653726133204343606259607322538857282064799516496775773059267286873885086598542136698150773461731120039535014281898762978149379077368505323039852661634783260038317884421608528849135775372953492841485726025100648725283902684318820806686258410070578781238642393111277970529597013867483994469338561036315522556601930384390818601211447728711706879533327472019196909790813733622706746875120773213705110123351030149392791179348250852564286567870785422477249814460187625032128901182428042400510723297298962113998490223941398785680418107130531045192810386956296841183529340786610214248200359872589474021628918255407424337416214569741816396409635263190607980265384649143399036875139210165751933005949039805268992135934245634044825500347749890013901569028465239570377813493479456984483947675043604451494660760076560648836454552703544075881975315575663195544645237567990583249366697718818837931640163419603060392836139443449495609489746167486121306198450320060717970958618122966804708146374669135759825602053084106421083170618650608032912658863680734433638379185475645655800223975388081177485661370864773080095820120751239294086611712913398797594637113044090591750305766332572905116818806332705833478098843713884878431640654288734939623918776815230249701737871125194897742449762612968978832736323633920274062277213103882169250641227582329896845786824122952115489059430871508094713571716828544455453843207817297046529367627069103598635365150422075319792194225269255299909512441241080761799842265608910567859715971821168544292305684449579004662222888750187382401688785555951413290409784415810374369534219742328481717970222291482922652193531318828670733256594788166102500674842102727374156939199694351932378288240587159255124380198164209362488644002231842837911299040777080279644290365869070217273457938175236252487707403566610980811359791834548927509764189941001879203142777226288769085743977596728479733944982837046151578622956495537940440707249325861913779653763619305291439312144874448352296788653260576262505802427299829137274850318634143892536913906529871194609953560711419669717656754555143455702903004806429109839279376524209916530533511214130322450009329298374061649420839664371235331862819234568462646942423061277733042140227399742817795561936148264263202912299693577931270804059373032922610110714061623242680501246989151493746661307419048091057880429353966045304360512882184945018249027826211614142655035603237380787510767622914807769206170003933111110969012200946584902947278110911558889753167640588658022890606696177199970700095040446718571310865342173626012090043117799184388257978744166089637865829439172016498613904232738320887833076383755965824523451754350195486526290341091411280259052832507935436166016944832967532645446872723985240864877159304431516179435106621869961585565150279702216609372857051938064473292263513081164640236950077244427102673635227916805704376541147996400530752994442658510932392936455441446561138269814103047077174478409879476872720311030123581406422803227317501716334361909896495350632373492142918383374263567473684515274831078571086055146716897734947670941720515778204576884212569871445056628311648006302858336564373304199173426760897073146663761664160156064503822112604931680714637374383815562683520485336403425588165793372570089296635448073731927176678240260683882923841070096582468504195477773325997756088534583570554215631209609048115022253130568996352649478382728182751491528286977594292362797149281250674945302938436115901177627622060201423442654284084036228851699466387886206200130359757247082159753617821844782942029472149528180753096832198786914793732234235200073842126417510682855997732368633915364983894709160571631885417587882035112357849083633506434085751872715075176530782549377688040427877190668180881351504367604045778975840732908541423422906927619644224623522867170783266224747607463894765239452458365424876831552634456992576925555159005944288097124757487473748727214195365218058364371863674982378196289305794811307616473515545583887415563503724980681469961289017649094918427086475573875846243509214097028332168097803415580640169886603097994393297139870647038743960713972430199976942202633575983191441819373507489931435630997711280195417797743848767610457830516441904357463649727830662343660564449870294195103998817011897649481804759400976205520273597959400082816472249592539638615250264577668453635180892521204901058422227546504635002789655312641038193458730229437499011678183702409663228283892025144967276336768331416898063308500199139516409071379496029156419551736779684555501618921596802721140225478908721262826738822166146982718880504598333848320173170355036480314739702950899377255258918309099329980947719193241415195766557536226684206961915466723423767812447463222761787937825560565490460959001169773754842906907912972431246809023154352844395596457570092391640597553153710051171408802207090425989971634641726516679077188067817670431697102491544283507343900104281407367928416672308671617677320076103247219841315770975013123151551835977507005225256582922500999397481451872867124949081767329346407023826205550893761714006375983385188652023311780568027292257335944704913785020281194730905092806473219730790672037885662116078548100363975767513175649960188238206559070291901913837676141691719853786979784635639433260633555109271145777349511484054426443778436135820185308416165840560748478149366058589275845950525832192249104968854214851489879941476727879587804550164780075000081896950625866895510806172255136599943858331773339922078214163002060634976163310127255541695793730791436966996218687285828411160964993500211720229645854063915557130295288067730037243172575514269145977969894786655009002200886543902636473803133072057749296836718696949965395670179253138389832055088862440072916913740309243705716622395604271697591141753666140624631261640443341368621487678022444949800386647334454759667465965383420702638996403665164777767622230067454596356210049614630317521438883542126087508645837961227197326054199524428652512272651342179721018419792595964683337398433792362760056947194661174746286542411470518128923179794690155231862112240827393224141509594173214419953408284204381880830008043753567440912028676117887917103774891901524137974507262533053017197652541336572080803530252073405327534892189894064318453338059085902565989095202076238469778699023468686742274091402835588329739265845215521976200620993761507260127818488160267587270031913988065527349121198867311319058723855579237472538379466999178953274603019232778926303511338464303008131859116643240030399241536390198263444347041809003373438524339912241690386028461677565546031132750578340073476476129506025636383759514285313817480046244425693879234794426277416533761610138440503399434686207011911345910369554581414450179928312834783309669666068746299415088546679965056881157431131852494119472659293015505168930891330158624028639283813458060904798069849516951914270881073368724812536463669194552046650757233613956001368163626255653425103698673659527622931668930555530700523966823075816195291733823897466112543743993181771220408949918345058559062248843603879107349572441211445953349534097899262249956937556574539324983235299699901515737278279772989197886471397661317314884947823628841297346684142160776139025315001258329731023575401672902501704338082974018582874552390626427019685847406755447233536421702258691014783371468471903731419422158105195272907552820321568483349598114671054779777039811054052795219749598227271453123325507011282620586369250246787164944459447186852677416764722493189557634061700070192941507713762564051394973300542787259351683994891878773453934585385057429777500212295252711490240651974664427010896354107205756088055097966044892543537963303999674176202332628147963077897878120310882410408961299499177101323954156973372045367685646388648787046783064249636971877171711451152502543025282254727444194190956567556085230845932976998853803848600240353191938203818043989594913156287664552676425770387258415801886421408635762477631606009674470692592886357641328241412475016105534264976354407220415291342099160611424283840257385827267281688032379601152697284180329802049224770514941975635114854039061895450720336272881083107882443607369158872588010503611306593859509328452403712874866430462129805159799370968931174968169734295716666374433706734846949136451899511611896623179648057825234853617543169644318364445325910941491586917378153269620774330532882584533550451966809463547482919441318799641899507653047627684369327141582684156134672634045517791864377401134263746537497740996787639573290016349125288038576638455492540757423645691459558143643260461579334878711265113087335824042916842727738243402295759801210157650026514086187264034279843283645187892873519328556490591529643741489814801810666574115677347473510152370739524262244702644502765226492062233652212196034172612441389245513314053874812711463212251398665572564976714808534617880230046952642677581571636136272378012800806016465657580607448218084254021774377142253051759804157673238579061194380008733716179064172054008659724040314077173895659835928258028555293500625851920100777636967545370653007289060424094908843346549258448722012774167246171593151673775379859637943649593377142051482108464297182621545835450937546666997873783776983941110718008170731012363719258458029066358532817216755994626623294052895355361993912811307605305992006687436144479437550009925543851285532979971924167018488466512775257747225193447801093065085037063751307272959421236346141104121665868776842839691879448778622833913790795938930174844168018453397955722585004283425971173913018561170925277899700537406959741871698815655845166872079296097620321838796161762049103376631982183098256548732399697749557739982403737418155054096005582570407497988765491629746419822008630682049368936303921610390912684157177310239049083818632935389076350393576981660196355203340045598261385116980451209818645617108205819085858012478030090196728884241395423450036221687838151674557513879612307861473070484854816057602134726202803215157039605041366642657003467238542050738561890276731821935989175603611419497401796292171898981463235194830971857224217467345218172326413731836101032885844251747784526846079256590814251985290124021532048356829220203439499121322757863927576765133294422994243095701468046288779754329996394054424341922099523132204744972760471380837795088359841617790826899160113955712357018536897406918742507263884731031999862916316034642799328106000705909925800575662483000918605303917820674096622671793487396886679998589063134534816892193001146833276437278107825677303670748986934864269927180629271833836389985791883888641265234655283410186597775011653841605875178416186590362386513937490280990790736284931395935299800712292532084012046820566171174120781463681847752887829506853769972714753109647339352671069896231443568584683740570582670228752220566214573681063865681661696918913962581748388592229726483934542380862603873892495599132475870625469225204791963682916703976856188096157463710411525839026500902841335908342306905170657590229318364208950536273431698291316527351562572551412084553305324313169724318167935178364360266182169424096341603542005772328410723442249512520319020805468896895733673030278268460728667048771422689682304366846486856931915755160152645156784475443388215382224803565521970461473500088660627512683916448241415223084072551995139954874263829812152868896806431761936588371844499812279070063231987024616845270482862752409442190777168394556260007899711753098221831392501617605942954700923530918426727408593518790476823639563139447888458361695449196333734186261728525216393571906033535549123856299755699821991451422383197556742870316481603555392305242686315797886537327081459198321065122575950408744951639499657002482401709970202083630558246099309311048640723542268346332670945727865469435127838638801712505444940985802318037946958168822380095605328891928905087114315105666354267503537007517779362435809209565658307440472759602525647866690720778185800059201064119656679544635975542897680792911910122593920401348581103689131749961224922289624296809756910671800867732805419662137815920395425585153659985232625570017308482003737985977734088027768781808403514587759850356544939641441649297644330326853479929472873516037252180734908058755278266021527244770517649737300703739139394587107934388590485197125735561619375153092663961781339182562734240320251658183615093380196181704600097029256458511608587746811561056641712169586227231204243089315501758926867554217079047112256724596303065355188667964474967814756942622104869779856271090172241826780868965298278137085620857715685278401154719282500390797472058345955167138717147979636264307652638308513359987436232008788815889721552089441571069054562943806983183295540182084412339099509258310315377552886203494508179826868519180978299068717217101218333893253115511421344603776627706937502995956241528059720133969244567821758915393731876537942340146245981444876787540584486128341252839962004979660299252709189576172125911155109117859937026617110929197469377270788880100109305470527481150432742030337089399430231716777594042038185554396777887776678785877241149867338813178611780020709116509736767707473480539027362970082790481926427333940489775816631375810130425428080663276370874039576104906342792375127349985432948899369369245150691276375930885181728595685722264981764716458418231515306166457722709858062800393001242498554255170944750259632476103748503025525376829659827783260342069719875065071849776071374481440599371485086767142700167827492498636971049866704893174634125129155700678865676920124377884378046046646707930588000405224469574256170696840994431186732256065556300192735297936492541399827900051907305056573301915121697114577028420816104717767208455224618194335376122896336383596509526668349774209913059080489571579002374765453972820793762414203368597503236669959087540328348343935138112098733723638168571433615881308114683306612528084912817787701682276117189729669353521793351036405820346171926378382058456420605783442814711973050307376964038281433867737879644518847780856316403180605041589973743844536638590058683910105598304153828639738932590530600357990856003046260976032756509109747103778230420698314455551157646193555933862589843695050127257300153736090631019453565195830715822293786374646553742651606010493950654493236572539448476505184160971290138351227161383127382488000699084519743955570875210689799381308210378908725901477705957075779666920262830832493786287446109902370899116705813667720427453544320127746007944947750000556347020726201138540838642533478535825616355783283796109431464760050961282519097571374257894440238443955559997459431169808050005090067182530418828750710800691258699818470724067078208862936561350784473294849504445142973748878424702341673548051888376486446964506500901814434849271164941588561838015574657099714854327895158920077016044428860116318821296955012338468282537010396059728789887349545452684901692788083073793583949009597266744958408345711129955947369493501498129825140586340387635509130368709808838867379527073287573389809192796020072196218292264103878873973118496559389810143662921357355278830341549080238307231008557048094765184620001564681318570159321955989261829393873168219532779562385078408209337312626396536854102999443080901208041757820732540177788989564486788102214196850716418069857559466664289541231785243742011260011255761577709989872243303707800330792691633187188159118658055060144851593665980794377189026591443117080444998283794506649047329497159791417480255307687512794241738056269816539470619516514093490955520436012641967748301758357725273538618435409270036299282802593246419146293379974182674730173347537122552570100660573425955282749916333135247768802437838626553039255037703003600999898194147343067706590856252910352086594459111937968050384618991175893198174684666307454155839376872053023575588978789659691853612377993063581644645337659639742345836852666659974353549391197197733409303216271426370009610363389623977695250452947880465561315851417619005148516254151432849418683388645420976282177676335172578902499938096588207966450729175553098223385781071552932687173600379893655775920594674778661588765477677342904760182316533877585583766687077394325293749046233866812189522822150128693929140752196753379041036020735538839768991517801997068257873286032390166872448668762677787119324387204460979737847304697299202149156928013706072561122084324686980955093965333375198906955545289018440543006688079312719503580557255287213631378217811415881681550401710828201005081732319809951774477616539532117280886831735421899890670718452133572328794562492263259034948435801103424206810207810123824521134508638793379379283448261423899611815219512350521408558981529216249268828331750517845056934481252754754569508557778490383412043726597382357979855300235726946867335323699030296031233965593012202571773433469324219505751616717849526868930108043714695571347765487174516718206602239520528898103021547759125452424186850605172936196301477622220615216538616842223830638098744362654163581120431286779421049788393329010315352638612904123499291403761617048545517795084477334385228049210237649859879898488005548334203449843266391735478873803745167148886787821867052918734855093240327817791549279826763630320228949159793909518241068636341441461679201790115100409834880782192054242322464104395718722354596772221007911175399840397134982783106340084153504801399060666398460466177504549905507248676846768294996302018481932777355037400835867917161261117557660007490957091970189674281976582481487931023552445160499185798552495541934318420048068978335198256108020610179576851308872625371676020266621570006166545856583668336881473678121630270057964589873113295091870455640363854258135247365706007987860140767343089467266299198125669624533151237874528953741939397633855976377304623133673020250147660772114496749274825506402355150413417454350146593869724992854535936858774211555959874431409306128780069875550770653177173140388928003459625300454660904604589794527628090719215029382302013128654057267924901080791857588946750416840454873685925085139927583773420398863109269304912551459715282402292594397788662443642866178091896806997809386759358927418308442737549673174331704685361073749196528441116154805041753870754355693993008220492155874648264526990342162760183710997566665974817032011274753183500342779657121604205795353385908724399154399634850112752727140035086600759610269018732184290033282661478858776261219668240971850236828184703250536099475192315561392597842034404272000421075347084509302335038524775085516034407378013869104992214428703757612489198909460339244050295403402771747868759295193648377848468882133916571127634154961800827362267112930553302984633964459490043796377748445807136084190722744721918901259792548004559401259937638543150712035192068923086852347674664692474381750340179459124713913345607778104472499054804338331259648416848354170178584426014333427929009264608713777975924154558169568923020285223887282008909103850370899836291682300925201349314710144236552397061945718313283266731053716398030228374031594513297977813709564425755831607292933030847447351380521217109128256685213842422414422144626060043367384161070582108340574975966717347726451197988537567420663714427433213175245544644461071842690686606623202653791248645749241773197963000109653464184067506315309390461217954878854574287683943906242144497861224729122562704591363867256874825286136845722075346283049737325267041993148726276082416888250136705241835708635551023510593481074717658434281090078814095145917582323281558311854378938556790286358728759554426981377170820263936070314636174476990220762425921653475229872205189174442366777634700736091597339720888557638152144443074895018306379484974152830988806285022832906814153778852239896433284065058750892724216037722065324325470287992953490505918972631311433988297353545278770329320375388201900413231747075553189091997095943523012117985685055358172165493176011923171838961120400624281459467837743149672737831025581749108836928179366861661050572904373368686669664385203448273578412406280552700004084793985555202919672816300862343532175150875081676352226285521065067828510488867128233774050558086710689086064299956816687422806271435834608701080226459493159523018722370389277730156457587714712718080235928557152344146266871038907252841137768855777744219122576768026305662388764010903613093111181111039124003111735168661497597609856865216971311377898655438640682212100728076773801415860149000259363480970977173077380049515503787444618775273926960394712603296008378679733791350942729934928756782803402397905943248185338145702372327871246519183854897437911361039939285557190694638987173167646669689535238448024623356028517334991566325453564826310675189826890825917805653043105611649972350635678597128665411527430827382092834700856830191788840470305520352285271911213099525214099511804854518020291627800987989701887665797748080321703310631685257992809392306748604466086054284831185491703975687286997159338433577365633792193443724574346839038739012774230601632568025907902288341007845770567563464476645729150592393375515447729012028830212066411623827346292757834802285409818409309716075928885464015102684480657553852604179525144477737570725494053717407316890239790968492809413936006841030681014726801369928455815013086602853244975209953143915488350211647893739039337824436909420956551640428455620266544812187635647373817709492689208823062195355520610137154161243793357330132389413672606740555571402793418534788970031451491640812888525682634069498577977077873348846161701100357107049660475732038327901397398181033789042689002159922253013758636053784954846068564597301134019061797576084316331169453113082854821122905164085006827987233409187335042039030083035217152737280919815748821031467317746059726852119500317592989985951664570831553806700403896590891723150413808334318468619913936580138389841240107936601577469496814249246394526740599471359783486140879051514476005578456841128916670466585371427291353970700104145401966776709347367717598429296892419103843983905377965251951886522951562056689062776886688738631318328740934252718474671596485416640435455360649358538452864856783277796395792082822952097643763543202816271349326386500943059175910801448203673306251877554856831717475721225614515481950173093980540826727318752296627257035602050201871025307641824282630052259087602989964100292655967375141489330240380090582564585030990598602412730868128374228828422106760557931539478477535328393030026699864404693485482817685205975006862025777501247917752632263247560522346179774975746520965672419240619531044618325218555887887353275731519934932831153893568254003391440070424590209340924450110216108409633306798572930535425741423005682836111548950626369834719916607932339849942561423202854541883807671722151413340040094515504073967943074656938747043092489724028833389907661851831820844612727971598425553232058097590512448610679021535217896800031247542874245238581305137145314549763478984704319050319520323698962245081552842970806727014042055349775860162809321511127132094683179635262484378272352319986133335356305242916169561182747575661615235921505124051527951307148263747552002145706859152137351714746833295041157198971181365510787484226132048375029429724064573169455437833760960134840641108061275942116864319381973682511924470542744449016948685889104767817367228770422837838527086426534757091566817016073785713864682440526276970514200352719397370797753223096895567195914196174730060564430579806160542724328909909177643343815362186708637446279250945689888133890839650575866666585645793308558563109659893537270655875078802539328111523581289703434723050126894987805851501391988447941642489991948990902540087842050035386805246953139548345768411769849412690679192067973319725880820838546950638826270782141836791704802611019363321940695152610697487612264082918757057675282002167423992712310392459419625777713220717867631515553223307694140802271256574556883202565177968723089259656151683322644070135249454418763505439937085623975074694070822474366379227306480485282343521039899416523708288220379643921233963785473137626030310621149358364064807725804807685084168779163736853065474122480605730257284923250923961526502852400547048575650385455622332103166503413384906545932385812061757325527505948067619652442036405737460140631996505714160309786210142696881110193021888050449028789660412540429559289040817042392383635263405967757054506476885319499157524912510000963790453252264504513562856491513513028612551518316551322343500111361109622007008286272505829085835728650302629015772588479699070893188781763103350738816862729180716196764125427695611893505690500319252546900508983008678731384520391242536834089468820308947646619516588942800714054495168496900833496253161152302227910645460712931106890189090387424926155100877419387306861393747573671108103762561372382050932871402592836006834190870438617006247947713182277712993401342351185742199710461798430123511599888847660763021944129181077689751404365284898457720002647314880898427484496569348140979547187353454437904321606392436074977668962738379351711683429502001984067692006243833716072407701135061741251024856748134599699924706900092853215198403084971200724078239665800175964204560587458192656737255776150376557115033950096843321553663538203103173354873538614956789575303667507531595840229176777855482953610211177409226278159614623444339907524050992957381688701291896270025720935121804358447843186539939831139798880239304384269801891714295103952178103469024588531916835092344855497218599150695029896266080769461221576421716225540875672484749359674145787489638164931164456247604018814645100475198893278847082115312888302228923004977990735348139789705109499685282413674413526089429227812069738330947273839339722017683634185001115773702736358310600623515446168627935188288599883724588990250725059547921461461564847095773089016396427750810604070740210329199542004796268923881975208168154811479539939867537783525436022012656800208161730648275101269616925059742256372933831645164499693809513344790710263866206295574520639606198142302836967310641560282188120514007001111158522812437130348278123561471271388461802089874648314464564865318642361098401822797743320307189347973071286652082026971751523208228197905063179856848090154698619319980810490297498618060205946720413361274764781816958821675636022104250546855014342816891659519599144166885800139345988508608929083239615512889117176429996645827390315305656921753878572096374742791680851599472736241456253215047829913033588563545408686692964466913306971292511947542844013413029817332203488744701902013462346317108479572449396988387529094560855242372845907708887808868688860016356936657460171238189177916704636089073344393557209943839287865977300902282524564630741848276852657186150507968386171775571021484012012206997541524173591726426651049010432816659707621133157807254262828756143412010466564468136174706145986582718771729479741518168754264155882579378513647992658711781058078425795855924537560889632581534651478650556719925000766209915762314400267308251755388037106241605985982899958206518997562224496369002452586578323822867899627559530356082819394913469088411713764195457117485608331876838172926463599274486297568420218084651925744355499128761961477925640389667940020535177574359933017727422236794077348936305883069468390281769064472532554389664426761027366097183147022015116770451311262329662215823177972902961005902931626231866786910897739479986129421510919787431303700037748564988521381188290675265955604283303107039435313323879672195999974775866965942856650073338332571277560336279788681481058798929439945123977322595290966339263071230807973006242331186962024674529420965063691219319470931899383802817945361812464423074250294497278810067515505190841344538350347332044128918597590027796096600649496697901121729553320649471808593349008890057779733688904265794419640440270341173999501147981443709140202999250852947520512607969911778610137740702084471682842814985614570623415969861087524846188974491512765578700593341053418884285604930059104756534567028189575536051853520456181384415620884318956392494254071835281388171206379594826623980773405664688001249986673668100015978892023183698652144698063581299444218967564011597640109370384674713823052010461262279846185886851262143218029816672039312804383063174671636810381364612021047116062523006567048836113444476927073972083993854829232151766014821159275694059445092815600583279723438774338077342667198287381008240901165141774903996787876133396828874424582341428590503686653244294509728360669846890913628132090071737829238982582781276708059196373817194868141299353755960906361742565726028434263162947304041165820368503015843097841310828809135078430298153017288591252253263267821342666370480103251116582318951466168897286683018567651981486643345398338431786300650373337707866590028392849156100126592502342035311644197740470786715527266350560287563142062284319132357595085311944732342954084082143415066282229560793406840447970156731697808661150988183557686821265744958052038957107194547908662662046412850490227580990227110723878647117109950069028353997356238591341997446369701814092694972651913218508789034859434693166906530478701672780056267757397715470980136115954368387915209911787211307677747172745051494979196756884631984549165160063155048279126933369771016752124480753080768584537962891937265849387207341051739877606711581983882190420172462759936598165595544585344440582746513317680998872932763171846934791176151778770342247212823260369514781658647300685980313705406407639258029369048357441376515316658422231195000905528543679088194393406522628492337493168051227987989500515503777580883414890732433530923093499125400026102049272079283409136515038919325564234951240475260205066524491090784267208471298962427963389787411952305283589467341776067397375412481066858165854989152371259121248117486564938427027234255667105097851263352250817371514055358203637444549236090256459264030724175214433109186932762412405357253951619969429013266837955697926272509835844051496588243330206300509234829175416778673572817298419297380206917919774588755630412501374050326120954482475097844753302079404318520377502474028341110822736534242333412730113521525391428827043314159990268432064647777633816358990158685258869917886328482733311582758410860442995010538304189459901089700647107265445782933469259628201543567649908451048623332221843111052713941505469170888598175769434750944475271468286193460163162511763629029140108236963233350320716493602712464322137928440216623524408404626582992886923493154683193993221581710192589080632950156783156738009407465080588175467777782747291185580801629571241648206395898577015889843831275286742486076510978747787357470860399837875598771843262809471223854258486733090645726096595454960705051601662489168372943556377343087412753727324738676449592721169776463810082379224810905344176690887917182198326543559405761025932113581525726351066482560785731718413723562308574664119654109400467509045595386063376018691005810878483698844867389489157193731661275640151399511920231940601512098389943788965848381510662981510177520468582350238783242831305463932999551627093431326121546002690176877734732368055276141443750640790596034359949661129668211120694789191467430679065870668219691567569087114758573223986981172733329306346767813549330996451930811825489473784072788329840865633046026458241668099700011032707721748556818825326064426398579330969398622391068781012558908855631191406516523475436381450560210827410185384990323067129419766705359415660197702262317953234576920183457357650720656857934789569014320496443309565902770709419505685340546208534095040259858994972160006034169864504816842949714145926565314705533475912152652322646240019331549440576708398578593639278697307182586138372169384754460859857351581547653457061345308357342159305168819542185995823808728074496626405248849792559055744354472304291364705306611689332369618236105032523932276884144217873816796059227519059184580692085520672119778274964841266666615063321594862009175355798045353224746217701826510511720899115583845030368981582383980780076884880737256535913468527581954938290658033916094293332158997158849914282450786123527369792159008173946922408428157017913624005575821506339224823393141659183706139501246425532886758823605678179151018389742009385756032816215902762739968121825765591537588343171719090840115697674803794096052248584109833950895591334297988214591285679506534289669131445427013055612102567032212515656558437608019225189004457661883943483412960969432233525120543523332718346765408672984731298568367573246320941631101084822128960036759084412040703941910901933088212918165283937213477768917937058213635742504755595243074126357234988476019108500033081689622113300927562990841491604088439561378537917333812584371422442156801591154876749285123507083974974213350177039044476669579465131085370659162039198958952267659844373211105698059808846966124977152537829010229764774011635048615371465146167627953549699944444712593900342868186698881561238083797610006944592535410049841591269297100841793243822851145966662271046244458219038123308290628333030406675554268333081115024085954843510501386553906649610098802844466380034986979650205940359128800411857513053791429017510055027887299024439725198360427270719660194514455240057901153149921712284709897972998188824299877960149033714060759668438748936935071127236440920923396574854128922032222534665441783777182921770489038633499288420213269695935042806540985604931424710018486365436533772618142195289588322941741117618628402742016966274475535264926667733351758633131363063491261745318674658449864142680206408983874339307512549248846604549866529267258197571823092747796297689098033086213392924464910222026203863225271783595448040019355211080104616431741549181585654415875189631969773431713972923337850635068395959583626379071082806851873396688291152042407641017647507076394023486782986147146100259248305550450556685107421141097214955507721822109305266153411726065060230108917896788340730282213434808367730176365609401298117110771873503109609120355034177368297445975025492618494077459180546243276750948004341413732792715245472483470618817721275348620559244308644380473596045326813967129913399739031142959773562877245956115426967181139594172758339147054211495395690002166838740355084851343725173481148378390983926148558372798996621889137268209193907287933342502060953598451529607262513510958777734608879119507837050557979050281681508500027301464032040105187001152800521561372916659387208237641005506064091070324459658248832360574554261341221814105560122978549674508090668497690117016027185700316149332186125449274810337450565179971575261315451977270154288064324132346029022367427724332847082979899260580742367783496966830186425645383252996748291755319156028915113350984074013131549461588234618218609865762750559639722282999168605369786441690306067641756253495642086073024679054772685997293989573563120308831134739930876498934503488172191251219974029842420815064382331142491529307917312904288690977431695855998565336051741972104707185095527925649154306618988792117040755392005710645934748435087294813228301761902029127765413870589873256708463891773850107139787700701882969840396174492673814435201302902946645641460801573261451546450929934220982779584137446728552495358348596470029881461449605081128780139369892943847787380547565274187740578467686557783586382960814218644606587926701575507264967377653246608916392298606622024663948230306927145959945595118611621283548756168751225031745815521688587647013420796538686531209062493899816816690696548727868435091184062115569691282893638677079295729839570142340028926493894519498702732650502054757211240937388080101064238924394277810039290330285159763704787335319994980387026154483217435786092452451109986086039260036609670439481661434878251767294097505470738963799857103674771009151251244552507176124446528463082606356406229653333069480352090399190687469484068830954417098239913953581617892276917125018998239742239025956452717564920446840642079879158495901745573226008662374236234838247382828882921500619744707767198762383140142299752413476359787092097847403789420124030809003737494842618016188930886430839464922981910051064631484052016448087945804849168972680850180592844049480058454391189843112290273722787870019840482500335023099859409630648284411490866125680048569382140828552636175867722189739873761682502284899756467435088927774582150833650766524620530485504101802716522168411373288115310003718939199910299125911611746115651351413541552782679273928761748682676271734612932600336023012067653736527722629746404429975764072223341543695502735316896225653300529627118123523101794235419777706504460900048569940436036160632111855418547199234437822172394995152733998628748521984956529593450898533274468558486489782190292395139439562406355851740944075846752555657217815625892822370517637256838778916778055713621770267419161182075694431091652086123241646043263611151220137328946821795135725901937803117034411788659104931824356450601457075004012677833255547919654514434255041133023288685348471573061088549800912145681196670684394121662299293584083356590359111719724406521417314095943881943169545912743497093594338531213770821220028384175468465527665102704773382612780924001379088536204094099334739225107159775517046261675963642215303983614915352394610399718518078078425017911695293389865979495491478016992034265914849030846780078237013507404232260700490601426209065139319121428028615091359415747326190791392930255541731131629213047068404651372443907625176462412540074959184005026215864874055368776816306122482306971111240192604095240772679259746423046279288535856460127790976461821269097679431747443872383811266883643139932208552989628295868187348879549643849865644462292298106264040279223170255588504041872266572835075835913294533864551063785818553548653978551916459199231945714093080035127740070897713358713310330394312201045793678815661546812586208418073142175090570945498031312814084518683739959342308790708884060543761516216039246128040911895376218010715165780622878039594530737154901324640307118751659002704629932352801398181724942328566487652472233794094047518308912866084832487654173063478323467955966252564455335776132781266245068813764291970924898703428179346378987078986870482326321350024860531414011801638264114198008520845054503497837671571056730200992271020744196805983121170305364472483015683945064097358856365859194991622417289766583123210707698673170904551746953182839362069976515277314321175379070687543990118466528483867827796715396519845750374673898843261589590741512881057627934926803796379096059867696309235007070279339840007188241828300178181105809184031433943930162749640761842607252669040881828069703386558237607135718042248256519784736286014643697378764769134187806567300536868935551536607908874838562370330884312869227210128130618826247253476708013397283991513147360502827914043721071333487090198635028139413889192565530656582048651238949158378830278628207152726170482442202634923822501097524530874776801987705577453902928847960552198152114340775182764785314164079943455802379001521714536212362832079168694397971258401234710718880931095834727621872995986900972750370240674381733378996615581004783165196353888372235927288643331824882198784386707181216950287702630100344773799130292263967125620679020829036194093236070097579971450778014665857929062249798754672901484619953182388370444256425376821204108607920480681333373067852254714936785566152477283508591111251329378967600489460499765291148196962639365426496017081552228604174890460161811821472389672710417098915939730822886463837338023022547494031501427886821016593129515295285952107951850837576035139350140508140580349114050811995127146945799909194607905126981786949976256513016002886850265635058565214880436143867814110656543074410248629272175004949070892879258361057845396071839042633072724037979885983478991718551222446841214606575601631459970938065043010964557909601567510837033806531200570156599641830813604031362969030676693310910272436293394538019433005076117067400417673665395617463813866659044687008385049041722890095170298336499983769855668957029399866237798964991775582835280914433947686379174887710801057084062332670053292717462287587789357528635741020877818620397116749521623488719324183201050821017802503654209149912134235917422244987712396368270343538279890867834013747559709964126894984449828663348842753679182320409407558498886740459794496876555826925091189271106052883500358888831645724295616484014937561282723843037503379400554719802568952806874141140981745783508524506854060277290900021161077199928561993241799533055032309690304492149749722850240575250835140941571615701917303410093886215875504450964161174149425335764847356922597094114342472189595159533160374892018111149003365933705856201111048560616210358697415040946027420055943384291488938139237787284924674916072251318337254448674895833840974183799396387518020421678920381629165682286209547612894670729881190068761087276168105171944545469846906781585580425858509185735061095666465832489226917127009120011003037689613957584178141670546019086255060165154034155526992504420370507046226374241498070444793437074387458901739402211027848338767054111907540754876237693607330856750416430566118679969199515075926618506629636561957993539892004792745439571546822926427602715543528022729386777028564827387136980880439226072759559965214286832666625628793773893249600364666225954530034982490248155820664565121167563588016906204528170314516772839438330912747667340962091889506932995428239243883580104022395332180841965960056127631331923402180617132910067116493683585973407833559299622922528984180132365915506058770261327295865013263637037576942806413261875445606124256807326410836017387202178665139988424864853280330587041391102905808327047597865193255980842683185275121836930592752945846225894180191261445969552837867006789209682605082926224294315283408431165639623646499366855504248074364116055297395629033215424664105338716973262418540194026134378263739822467009136858836397942673874696922974789470549866883345762640321765665571654532866345643576784412805180320695950583267032822919095122793818989905334719332476351045474097541015480127492249694447836741689921766610450245717898062585575928960765743863096893419996307358698699565803391503298682524545880874545351276401928572960993906023269651294585359806070771868428990901782385462677498792853804991128521270421887914370168794657265173292031798170520628498218731093509292542338843154745109564200299374511045840882955306509047028237660071932402428016451978363981970258321836033451487740090626311188550917451974796248391208504771504919312262882154769766579151865294800901438081703777510253247962032960035838722212026365687369131631324542233661045678146195985591917207041369957623006757297677391154080360228827426194811678181546254435639683681232352634976922469208314141784690183928745766060337614684824587502261394201469336337931629467954934614018192523493483064808644241502318016913081027029556817739370263245790420280876056555866473620547128445657168968579535156975120021158819685268493349715897722253524318551334846299416249448228063910708710596129027864298522284318127812090795824586646298170679704820329278057465257069602881493133887980615242757542861282399462759393771141912063907043300622736503888546830225214190207492457726778098763447953612475323016283616355340658725425699554764086551108747368986038288077978764791275254195885294881305612214471984133848716071625061081300788478766047279530595189974492092237985417680227742745144155193481031758949393359998573581581225256298499282123621978963194803126859696413019206335628617512437530989178082357648726682388401995624146021112119908389390206927620683999916950525067869382562777212289535372817603682966638518028596663160546330639518110866578709345537006989540908521993485187351092700004417876387829504455969438342083185731413463919095186889053934095975276664135624331867710554442589382381986321991219605625581990146683905996793508853734667626148671330196814493444689161366430994936442462144539332575757061227930726210620087464516539581749804774785085241271662513415129651886898543261860016863742245170751120110886987934004863725918665188507376850206462252580054784469101803285280096446181657689714153798337215010181649993781500836932257487208877535706549168022071403993085037028067716639247589144928981844715490183805581154880151902839656983232090490495112830713820927597838564692123725666794774483561415707424219747681633892004108272759555474906018057355052965939879219268327358833991255933403580112811175862928226727771519881552403775042443681103282973374802818479084299709398429755697152784414532060072384139356618598409710833861967242871482769612078616286996304795602578938781500984629102758191613218227419016335968039063156808430840342665300169130792491963853790217534672523122104751596490876879969894804788845886222023502450736875704057636124824574603974053190095033894150278471214255913258397727659852627883739572459482179395983149460322575414422749781347851718471091582484963662437485088781268515880460915378166982510785915700813051736493993566305028367574923837776822196174204459805302341074022996977082705139425272715274325279465248840581211514124797020044845441694115650697403460109726008964880217626401997649227497612611306018522184423398189030711374715532834137776466846037242714716581239319600124061818065936448670375468452825974354757811036062884727546153430791059742822487048004696766877570043518571018902357453241190340763145132065234499739189239527819169241760762288898451123745322771717603702854167838881069055829031397553974269580393154954291494956727203388182851029090563365927850075324372303758340653818939860307963999388145560619446850021575314930310436334917616487750858432329769697779789104958527955953846752851309913874200287831230710630306648057241368586795984704678032233887480773698267825003417756345443868023374002296499568565374513516960548840954990486192818945816485084555681372602723641511355951128137493028199459858730628320040537530639082545484749261278769336550337138640112212726675909372446279475857612549498894389655147485063076613208380316510491032750938631555783936354361426600484130557572687693558844551834107217746866176467686487001381984568004376026027844420799845623106865508410622678215611665379864806612275548214156577555317517548672242437234844982740049435021140555901509101481764401195999163499838649234100202309466390792285309125389027884917980916074402398798229399449995303504028624633956590640754918053166192762794578060695647327268536840265627829372211561124367177249171451088297619542911376690825112504820901321117241054539781588045082253905298079851828096007535096290429971170942331378624066664551253266951144708880966937986649991542347549407546661228194072210025460111837038173863813287557722472249510520215649368096365981019902810854287528524334245348302578569889922371684908877321801219182841023556450617216156512942641446238271530216752451535588233464426949598865117006844717280839687976510976424903103176855088996876737128305809082297130432481821976941983996779825399120407320503561031417395582205551370830863418488935456407705188179751364482562792420656258487309556951026879557518172341687802414597212407029335060029198946375678187859070535454857129955131048381533194860194366962121638775621920398113747506681270321384235643256119766508874351253329702046683272487486562596666916883162334937330690661264542613620739701135136382503408992330184836025394432596946976967288664582557236009709190307027137223596859726044964589766379584441121512862446102126879365900941204708642536310046172422584586450261645796244423984399585992689988552984649329847227640855510494305113893830226007549006164681219496315254725404997700480678265525944475640759888796636257645910008129782447822854192607851113229102253052301117639942753390405208948062300896644261594609101236248307493814552739308571234206066995618406732248577313487066448768123646969414278828531969155800115645155054988460041299814818326162888669731282547842045245310739528559401002766223902722798528324399200197044822587836802278431260365329722112947841922957461739043921965249502594711862123012744223475642324885426960393165115411260986659669581773163393025707615831363924540949681130735911972473836105844330278160193245059639620238259102661547385490439352849847818003766960351883294795950288369590778002445126898532148715975294200541208119972639561261088421584883458926631678087236549368001528644615461374537398106722865782833020617750253005091669851731557643007171783246062045428205001569348809800674812971767589945499902560945241312550249305972296042144441292025268326047825674979731972074148433280410013070474275483021894132758589338344152082898734317436573160115539216025893659401588941553680389811047145778004742526845533734098260996201431347189961969917378319487251990482136464297117624321748620262869593561687804001577381036843513355502019185600789313992755835047739831376624610491991620490763465837709839486133333103694236709887015336221698452966608214430668538419314442595284972023980690321389566268631629065668632927494249013251957368776367387326510800905821393526118551452401963861878572668341182662539531593854773532180430017015947922829169005035785536013355993972875143917971191114406099771324037263193669651181853232160280859328852956846625871483666467704718392285702530999321540595683121283064154364222683021719372519799769672311131554948185570254724354131664857888876356465095003172492189369236218189635681740078698797964327924028199125705780591462784141044357034517747536606065709824670993623785634645712563770386922219757403583328297657858090989647720982734201072388117285099028607912584480008684806447821842538375600493178724828543940620029374379537427156833958495658833447764802243073237696109476197610170493824178290645352672759627791334276556940453306255251743365565340889332185410472851950490232257730777767189709890250130014189366426819530282964238080736155181842054515283778712984559210323478741659158467275105067424335324628252614329909722677806841905766934146231010391661381384022888337061777539705998137156006119931707379040544202476159270073461531838373616937260540094151612000384778541539011532636482768166715982777624660976258319014800327618954462631050524637924015416103549174638606487992633467578096951584701283613612523825634537513749401884596104412353969400044200963473780376007157080765620319847944978187576518366757214746229258317973533628367124206007292923166600028432076372196235661813671723936146192994618247781308248684470970694092734409449997497836707910273076514007183082716164530954590001221221611479903570600056241888793930227775244254397306065863709043606136445673807660491914084886010502477958644893351135922920473950099949905182181835934565931141121291100303413359967597213090537936593663372034423136551416780622112624210949527695162275045091454055203637135511113522771414843561463044880598470988583948931373941514593133470694123659888445847922253725138738392836724302512004153557167119134689659857600288555289080584737178413227485838413874190672459032229304843730492157689212981395313480361958250093843038349004247706249170842874689389321309985348532075379567041878109161332386043111698905805853631338591540157477303980851808679219831876085186641693247560725816347521169314545765516114506031902892710949599115050695980211337260592665147383623571483135870781242349291817324900571920906313385471577960615176735932490866127328357661734238403858533802613811017035603790760020656659472109049016902366331161624867564581264758833878575723642585618346441122959851955802413950557819776604288949995303414464795828663767140330977363655024660659170819011606493832572381545351185110733138894547354901168347901295895224448054186440450041567084521122336437319000876366706669123752201672630491437791361666917005062229128264891127235033488959094851898544065137530532220432241096407313893315174355630962088987405957634691343826444585839341988209914423888996166111315898780121529100893560466994588549473215788470006295489193001881024993900668410145216325834106960150268847639842215373893169793945128167791987544736392018893436447168941841427144190531446645954270380331063001553605714274256694901703910249606355149808604440723402583677413090517818253096481825426804016757628498159305043323584747870327677319674589910186384040384880891493374327402270537598800847466300350876020442353629113280190864715028510333388526965877493253652007294695911058844926208072324223165402433475186043126105985593043548420173973963546290024794401514827910870571926536754126639928941287702073960588132355241409563087784427312523800426917698805246322150599351444627825246763693534677676373365028926962229188880439262534065172791958865137354597623433247472459023889680520614852015763025507907787225628328825242545100591847214470480019949345099036582278566608389362222306769440067437788424840717929616166215927985300790098520341565538296778279492104779800211691848515886403710512153471981692973240242250225417603392181413121079919154995731199420808992959252997052467597597108682943989558694657912989023542570151761908715517509463343590370534923839910387392487504699906017454831788777636934220516592453014002582739250142540358955248073525672502077051165871033704548791203528501938536655670379588968998579279250442502732776296773124813655180019421525125226658654394438514277351517254043367560425619964661965376481376002079755242291611829531679379613789592023922605963521626937054604791783767627350636169749323529940292101341744565151336589955608376745332278995954015344837855874955878594969185475397963455838044814976405741907885906446885796565920282866654765848108836953138376359646050881553344868806880356935770000829373002783122118223664500811388310394431900353615042131263856418515454751655141523325947114818465750523601664159348132657964260472593130537781981583456738970022894146690008498569229014445102300520300188628130474658746203830949110448957349332371601996906338272934297062360057778946510160868387251146565733289927291835451051494368290592343764424872556943902046586019913876715752707380419342236104234324151249403067674303970222423164553449905451850827235407252498847199906130376058097162295497549419751712584577856860353646525061763629651793831822225546281344643685897702478821104950224078026672078171615410821999599905310271618792061298196639740133802828072106236085059108049898759245492891605425589352436633233111805767976252242835297443545050890619323224484105333716187876689595041699144265177861338729961428443247632190682158136980448226160197247484835129798541594171785464079251495372760452546067253794219917988482167784122435832858516800126735990581560981453245767274012787238681564763265153231253507756173715205360907998276445551738017237644012101882561776886235497087471407575396261635437976498727985749070352567950121444606586374104015341757944072065460585104697699908102947647679224361409480511499213133990841010197486681193606886892587130800888830421339102270939196098291438787150001968091423165282712260724341288931747255577711422302976965907476964895201317633597201617702190360399881544052851292336832221133568328427541119136399471584891663931242907247916340584341578712811530926689062706937466707376650951052131382011361795634464149625948601820920299736377511532402113630505412880251431082542794963459782213166371813983039607134921038535992024779477692398168495350321010177534146047511839011265856703420900063852043183965863622703313911245667252489307240379895007603316640642344992524257032347806761219327475267944424510143492731252646344103060841431085271082300070383087993362458286876540208163794181833873628277605126640940220668873490670905204864535493322588712031364806827571047880303273056340575620754254155310373613254241255304631459412998877634997216303970952866015194375798490494685389149722772364557086787242953631466544625046461766252751807696503422449523420374451818165521599868255329686441571110919406549810581622226911729309699712893998982883168911992944504978807387247685849186668794025786948723265567625397003090529160626898063390894733250374049995393931777377173953756815156781141082716690132041781255897012311014169738100627246434537630409571914718504656002563695523441736142860841605829170473265874068187793775538152499652917371112523306355676681729195934965111013501420430859062875287641424447994936483885352176152937284752724096277321827730757407242160898681523410480281597173103288530326924227578586405056882102026635845954221104486591907553826640889199652957635562331962949630220955735814850294877199902691618665810834198718803867177283667544931512251047269609562100394429318860181681100715379238384951147833682449772119506389728776924739725525749158879590968742907631880188304290886174709822657155064679087881780247829835894953555243716988871099338729360095831710812988654686196982984638104855793988645181453860711189019016021746040083385160709911372361214247137255725087742538031795869331944169509379156809000407786517862899053297211126212612301002266463933965988721980608819402810178493805841929352478871897462543945661556473702367902949488474792036571518678106972725980008506001297185296773432489506658637210345517609423431344217066502561477607311691746774074564347961413897839291774724759595858276332553223533913659061449249696827434344420616633167718797650990247101073448870704355311577442651192407327728625007876438768142743544828632445607433617542297890356008780225974372276830372840930332881063409547151490186032834026746010637912992081320092511988378008332987143218855258360721116413749574961171955086342667294080401459073160401500353975287072422732650229689517586696684217683355023508874221035295329635347126659212446161970439371261926200903816116748255190990815687210196471722334229019407853583381782199449618034603285775633184186617327662533068552854043493006588945339289484474806820381112578156121133455669219902315328029990200665015928315943217893528007563960853083170975050187294827065855149683206436052271037344433514552842403625186628044002850077936185937196199950069524984781614073242150045655741980291207463518742216224710159725420253890836061966355861352697966274711000511116598292473036130848908464749656372546857343819807162312712530353477880981411860365842424622407743399305756084475720780407794505319738261727766689865680215841210455322297880953626737827855481288321083208313750417798192482384788888811511249323948951252746949975731242380824312027467639539450768459064716480236351109160159274398611148058190315709180963465313964623487890906363157336081533751744418700599360889426201113277166277576943446845701275419527576898164746764883014201589969817355781202860160836587547214413832995133592097158662012973253186939045108170125408127997432761323835554876958128493236827725440959717093770495727854419114776712496348779573131005907866171661449793126587688868451839150668525121460904853185617363104143967477424370243542684109839833805823270992698750848736074490743572154065474755166632185867727999097131735307427628772485679800074436579530581549262392126725382040064979870431245926193688096905051670220083665815256702687937129199814396242996938154210147836066750347874657332942270784480932356018669592830291777329360942293364093285982053270456878668435543855649862806139266151525736305071690444449922919799247890351551003647519236673326579230201074760610403227927416004286175631528448936801389605452768330856547972021411369344010804003816376270657792729501776561901952522236404672495115513025615262764554312416176444684717694339251026721429692691315304591623056857740375418748994350481348708112222654695262291871889427383975983270392485295081958038872214302959637116359704315831396248157097089308685189487119652320283319581331140365890844995286851013753098982792660470578516673650483468932981876597937899207422621380108085817751071018925102877339399496765876719830287202849716550781980099124449757829094905992146156504158179948001685006649344181825318658798829812460644916950928384918938427229484100607208426460488225684660116624271993216252511910533509664500740508856198965482097887390015518563524336999159587590311478422585422032041370011461334985877329083452774964183077119874145632809089961773852527013348099554542205104012226311016316128141905132217031809163666790784783837599533955693219062179169331803774927695810370135914923861071736088124547863210828299723809704018300324398706456785192657876073844616892669251033042004219372492463355976288317722095625341294109639968083251326311415641555641493483128979100490467289362478784644682456688270318806897868904498121594890183759646869635065669752060264432885936652572532602979489065911684417121397574921993406476908656739002409769261898069374291480287497354952032808258509384130271432792773008879092429718485082368064048090382655870535162173529583985188703551742189984853857418287887868385381883658877508639358574890732729192222169701738427359306244567724072729080309120582000030477122035540799902425976638275933289100017974010284379774738389028866784585317804981089594548109415317925473154050416442468758610491055063845054223731413979760521481265347978671337168996045348188282488571572700609857265347233080047788152345877035438856452929180855588130369804163367974395380981034205151162201591140249977740662444609528386721771328750275275014854456943270369376459887678906264685665211954282501562848120405335314726319190213668320057990589823652017758640957952043958085450997512925992841546513860666520093635830726225209694588428438492695748564380366341026864980004065155595087803804847630918647085405530777878220534271695087514879384694331934064335199073325249387802235986955561660664318152201354163149491310551270814768734720892676336215506643162916112245883022312327448018133998290109784249128212224292378168171164214136401820992391789926470092055155089211849506185343722538850640318955682275154934246442831843555716511465658785331071416642920220484528154342441873959335552904444512591068419185289540433635829442742118407801442731451283948715431421108143387480421770005053455573859766887150648499518289898732788490258750806328333422280821292334644907732954051158048402817694187757526195003880651634469485263359455736486319279605263480107336777790312151090589688695883577590406464433143637635199071146562133073967694698272208119208480606945318260941760948913749738642531113962423894003077324053709998445671721187455151265525365108300167819120564258649541980389583293089699112495265530515673189751065988432264762814009763683785402562161128295511736959604412332882717414558802209925989362231719345809179712656463940178474069658490516082313283996201675998251284406357432221254495354876350201111886670212725745342835437461398125823544359973748323575052554185075998323116150781804687124780786045945068015915439879644529448274236616714008051415457680073640739877315937709951023132844238695252731155043013711686706601020977511354907119595554974599955148810935315625503809603699552002452453164847602300232006318024114141674012507777891981477206120273882523786624933036379430851752212528480029974416154393281039120838344952124336937157673523722565637768828172436912548222759317587633897647933435181155349072017158068549724539525279502472240194302688079768403202823256419589628487914612639745831776690637176196006121271555152389245241926655313850778660504154780843434868593066227102734986851061105202914705564027387777172978799221616730581147606309002957539089502367469040254620047684607330171593462258065286343642510067499458917153513185621361592812802762861877502341144730307470915370356642674574086453907858758575966258183354073491497189395976591782642308853087045851231959109926744157500582337806985049270585149695818353478101303271766011615439997799193970184039392771112217299931787315847892196715416369823492295043010057111803244573079263614383044310484711919695929673129994150987997167442334749855186980820087838729599780757080155347800112180620388263619578652302217363834752737225656209488247522502548745974553743955735109398070788229528827559893800585130223766083486777005740195132150800319801098271619310944896896323649923392798725734172763264797337905971310441598409246593240191595043190203325646863821934458815278245558237719129015976591711618109289740741181367014784037902084815205725397792886695669889070334286978363356773341432086758637036213404825237387546899054320010191101844348223480442498720274014714232308014926129962301442728880821245690960007068695639279620158917426234959229986323135007362753776876237547176594476799804523753742596526931904927964854147605519802005148746010286160657458948629530466332768319992467440125630956124258350838324590199616321692743626631801804510075658122656474739005184197685581662071315844401140467500336222786060263867172446004822701177177028473478124341891473188538930521792480282159600459541536172067526995138631573369189474233586889237208925014988946178902150199924564674357820765644840942448088600114000998808161800125327516770178502660382706692625354424920713283458852231036004903933733660586348469942169126116162459397902956882871595080258678172003347493088831581804394635921459346694120311562807443491154403459502363729084914316562228272947951312235543784568600348793159514484531884391018885146748868198689558267481830449520512329070589491349568940187714641669577629808379488169171797419594353417831567366985940523344751982750361394054727369193248404686237432591783321373203846553438669415096802314235813803785313552176524120404437646874313275764045390125116140511047956560774746145201896775402243515705283138480445187072631690531207383237542394399357013390619838992759784959199244126415966328582813084989701513779207776915777871562679124682906916146301257083746151713435792127841368479967361863625109582929715405848796240994596348927174604495891048383884749530217864433162755022199977807844537355075700349750735188065554435594148784200055102673868888814067933562722671149123802809611725040605754662762246012999085271048576281234425741412142870638122543684251521752369916841262614124098924350918122581500885075975031632495642054699789588166339973151199600746330926817616867415089422565365669655308616497669100455092616924020602896848130323029774489331566734149955659871517626787237236863264937348870206338897924138947296606048763980031350035302125300937470042125989606293398207381075335004789648659051908274508847945203024582377810899646172627389065251931518590165231895474855303419505042825193006121466985277165343695173408014886639430396993300468832884773626982474381453569395339311015612958701813535756747784338293566068100067805584677577911779048301237529867305991330734637077752683440578900138151854742477035087925677310373851621596391298079500640781441502338717612037812352627603585859082523590985392840765973402363502328661725044361467681527983770721252091536020476612771855336412013210521014051360090451454496918138821184897467235680660455350087467460639892289897954554660440312301934432568057869111667353334753522578332781086042747546646709603730158443758084682712132103368480326319852116034250871106778711499638387560370133872075658115649624839066266203559112878366281771928210574026771477542202024540015112814149978806646850629554669481364315157060052125214122009729967736956497283357858162555744459551004962684355763328790029134947489263022322671358373941938345050210072896767040417355602858205868248233388275676313345202198184272742585118980890192530337218472875504314827965315592660993924985177366368300227137867498558298986357809327788316593751823744949388358832017763791986944927735969855217574806995749881986274465063107195569399546597789548005012610892202497827535100153201855985889303177110993786522918489375802335893026523340860412886081170636276214230013211973030916780253037180035483630294229145235946645785796301902917320137622650590388189692264222527096123341699758450163017926624160432757013122064096162874915578750270827760121566278334011705175784869399148566481505313615034055094118371785368766550078417348908842752920039372168395896439145467244646377834490440014186694258389571519194058285019209705030237894400648364104546100015482222529432269160834156898245925639833167176583925605321680501959763237188332749422982767195455188579839977809810556966666459483635404037714570181018451744486875515146458213301601353127335056378351356740813794704856750086115584837417114434357534776281730834291583663049930870546444234160371642055691178639889111813909184572769006619503346119405891619894672119720155169241277468347069575545292153830442408848883978609273966489475487795199322692675439871756725574202151246556745099692519041382932930384346484934617540525504396293400866656550656077816458569639727417874961131302095155232361880118030147405726989089920638435874643670732252499493927330070095822708725135540169041299835840515619913288145069140412919709965974666320240502950548220590003707048303304887732720992189250899520942914210776929568830488056830249534141304394671979014569766767960622272671373526480813624389326546424857994379879765913846950691004815485107093078086700553195127014831844765614293117098632448064217405250400177844958962723207422306784227776414275817728685275871130236647124910466989259587350495096744803605799798669974832425030234346952098769375724960632697305596513231416914458377913184041998532273367358719190664289797527306796327275555987929296084157316211089776182362584353478807883978861724822841620920316695507904061848680714424942408315435226657587712211346014506456557138488675230011708670032894074369241386062508961137257251764499875098799273549735424936364312972471981093571361460959522755456403880485598453437467472422554560010699211703072535259619428370452552518369208910277836915802800722164132928670027454158947650527301060671247672712228552421454769940180302452995583848179522491281853104453122606145555554968869819835720072005331862913808103787374532701997491315850693495307690694556820647171628959062250043405636632836344426113150758596346484514619084545327648561761190563248567243495695369624607083473259959474814028238412977519032885809389689677071745229231794705261672393383881826962953736694126000623016325877796088047406727492451207589357407007369894880927832906186329060403537047159660741061690175802770806174895334617385327079019106103177404993045607679863356815383170218527765475199176734925391968407127562930093664284329847526366153589938705066942873732832135552175902726648423540240229963561857314137983140047052556367500035613893364604684937947360928754666296500802644146122761708520507986147932237833296354624742275847351107078207389183146231455633083808515378450237632056770090916483644834664199082497193085941239349795941365091086296000771137106225804380476026199610497062427913864514786114777698584368353380159723757001105970154910723471845463933300240783996914046412730732119458151357274030266597464488285764341789635607174588100607108917300831469016783596108533584658680208171928559792947122855300142687846149593251831867078638017480543899834293526787945864980252078582928886405318180487678305446628983865017551882380157750972584829980971210619345109509050726985297028740811754120374236631442708809667978108038416827922247230532099317192818687113223644895729219301516094924984486743439304253274356745409162778692070516419472848990199530471690603192708255595284248114659641094661045168329782383944198874823437167277913290329746925636957998739971932365897952030782331541727466439985811094310824791109227427416359310714143542534676933510843706675413979537511603251593867430816144291527962449376498615333636408376836087863185227611317132187741822662070477252442252679772873150025616978050110952693584787166253421199637359267147265324352093814600860528329946996076135662191500457382708587449809305439292412649530291671948742176392204734003001089639396114148940231254559253986729834750536148973169562063500917454461970828347688761180659888268869459741679656563887938773140537622802436165454839518865691711565704308395870487022497982857345237451546456667927903931653104496130213308929868470592281105028900163551689688528620395495556422637501375399405360945356474075075280486719290512676193376071158497020113072004725183127255215889160725909734872091610624856189855732842283258155950440971775117331430852929307076812884142673943956890531425222058168928890856155342151543913732000901984118950275358156060808471314436180713850667367257523645216843974963561782085413477807761648348107640883722065586138360957589419694911261046843006962026712040953359693583704587585471458123228525689965669702797880548377700032327131902347107944302539818753322105483025184603484272839123515760972477928990152053991072403077976172413672336545148771461993529503095867660983969068211927218483736586819859882787634228577934768409069762438894092466174630308869643344742251888660890930091555792395097193990054300724590800829470855036198974808863335849179934985793448645705961649486141702848146890898710623764858447812934263812819142941462388498290948542240711739800397922061791514084012803376261926165958824280335298895898050399726890523860693148490781043137284947993078301335989364457830051643752165518701416860553511126687057219931716719773594446081846913857343265694192207964406280253244565724273193043355268290963402492767342463339873579114454215268158054270497544741822768492329653173012213576081666399870399823798248698191340056881583383421659645762146226635593394327675092760218362301816918652896171883711284037760692676378508503909247586331963771586325927075095656263291109337473986748758350264521623082438626577704661289832354080348953314125027013302008812576962921589445788241143008579202575295989902339727616112862887315778784939056433309893963507132656200491115746276358284740997721770047434116766982097400679239244386640781463534669054334037102345085670499711245439124694836911784233802374233196724278188331757614653889374666308603867184732973455483145109142618260444938033605743073477115692494934714532996117645035309705232848316697713891251182228626875282030592936901418037819134492928100838858834341685903659375297826374610174373816825360045288598757685488056743691983090462223640091291996549650733211082902717896102545239304567378329067200385538211820699021655694955608932542965662951459907089588792556547436100723229861060731136505106082059685345053340737879820545668116435748280203444026443511657190350101503348835351855416140782896283902990210201132241936920814381999188117177611721158462964013347340507991330841510763793447029651223750134525389316775064569070805366056958449034626844638009532245170643650358415360118420174425972434360725234900013429418120608185526488547787894292129540896017816989840782690437466543830486380760384202761711941298100028371127743546918305220818251581721990463598289378585558965747808160995525621166499445913676301449142887670854920491919966216236036648502610382893854905248760719362913773939787493743951302760467365310600018554252121956573059163730749807369502277486742752575212670906500384238980612534175601109449201206355515938400668353938460252359147027903212975710893961443386684517307825331232601995324294721672682150304876118747693979766098656428993045471644505041959746907645468907149147450016946639246786819800718710918758115157083807165697033587422008311888877852354175801910872507462621421788215795449011401375080748203705692826085139276159181354148915248486498626833396706785500662654427703328657856695326213797037704790910560437712472258071779942840358247491199319046415887880367047426673313580822848115457265420374446067040287653378977902121794419300073431050222788131252119326047134125297225564096281710790320044079749965346267771815661381078841797607314882696130859752427133697389904734851980248085401507324847657964139479417423365522256771249856040037690731959833744796924388149878493540308160608240855495932898278337406184861216303169253337430008002792679510702484448493900437079841941975043817391982367009343303065187829581876004771233192735182780445843178381876244583023800045904596499435865252906742902784692013737302557766807666198248616115099500936652963572323879288559566347407930776898244135478683757430339065936722711957175096781169118005195356282013201096315913557505051483712987764261957681358736334048942763580420531578915398040429869870454424347337217368697889298662280015406478850186595656401386673018947463360167437756826655797714095743822622495297527981639834749158898509775091356813926554735299062663197649892266813903182622361706527299671592644643234961104808879992124150013094099814561503053377266945607077253959787387198775933672346964339465235333313014425116242691602026846305793735701162382873913031297189124652108397812833076330418201471904801480404514318074444295705039605113343996015335841666090527563183497576178700758027242912014433159408859946053971978521862336874008310006558543943498671977836737361324104004512281333350990441371713768988243782721829440308152358046952156105666411717553167020127223568423324563985791133476168446237894745747134605854769111075621842209397069036232912185968962338105779288399238956192999466159428534153053238856910991390933072274837903985683072105211356521705492857705596017332689127585706816373777110967577329184150695881679515929106155933039603846902120090921201633885718922338670560963922918067458901626110762876104843106961125708880908930741676723514628944537756297509674979505292576292550492286011433746423379302672523749981883216610439938077906666541173869418387642233421568246492486615505875851063993491114915099098217963548171567127477106597408411346811993726419171859201508838191363343911883495767463119148773469741778757514369145574148822704483202638306114891302709115050763037974373255623066265508805978014270473281188564113681750488387898596397917671776468730577852314929097192999378520723096348594830701101474770943657293636688277559030377186444554818571003058988802978313384808548513560142840425902225702205631947552787210095861450581331602133305478779882788504617398227518907292554290812615317450341770903261866894031176746655311395995917292408105392823468596885180078167210811671002900172476584393696383215340329010613464512442400983489259236196678892050286857667514455041843767888769070115987582709993728640264639609898990036634616369628586236427698743666184312398226525942791515639721906339833273034508358456410310653334695750728387853704135037026739299387774071741295698028314953831136216610854887275837050552582487011801281142006901630442227315910718069353374070566990986789764434710687338454207603318196444692653170408831460290953751122084029332663478048463182161258072871130481281291000787918609995992775905503828989171352461851446921283962247550647957945573536419471003305515321163543549673225293653930550131845171748218094430809155670996819756081387543975146223505320553126948629384956679463959639377747106322426580681408070856876201017709105746714552561700874813509485538946838151594670232704974358025460205502741266820103516826734028584748006681107619553780006257045137885753372384578899572881709005687173630620515723793244486526582327326679813774931136876766518123451076640145557523450219269562864468564561140917026769501733166516618127670663705198522097911405588220486726029208836947208630576070316826569090679827434107465290216491497380853141460532480048693666408894122955617637279985109552842463426422069232219944275759654453910752343427541587000048404485935308747130989609344828807008543451182534522418943780868753376749648955019802207192804238317716871245978296989220988405716058961683174053022180744300037591069914953676329040541804130766734998382589759315367910869133404623244781015890388195113971856011328312099692643437337796246011975515140401922947453518155310065131317594912082588522699390661047703253562848199626075439101440502912663527976342092857193387817896435604377990636923417589503701697041054325335246045300096700952886087938723750973930974767232231252505000753682311226292831560643425910219325951167006939451479729496460867556120032496911357669557464994489345562890395614866911027170772862281231561357093396048008534866054237057254915470544210670078087781513940141328343295442032870398841566887911657499745076342898354084911865601022293100814471835486162012808664056494481470830946786926978077538212500450585996615290142305666823429500825125643929257131569084091599680643227803597896259728593895523172871244528518300506536042501730491252952148920923575131902895528407129855533574540994944078884659010973811909893570957187903593149841381443240567888101755857071461329167433192744991496035508718050813001274345566719608308522147536621685103466466086041123135909110522289399709829057537217625449906069459462311851748958537043390822917258116314980353206090594967851873492402073457947800600214793010131723898960556941726143414697482180793855929080247954569978761039968105603719155146122899178265926787830360743289179396434898186808588538268747557832460263881196938068431262677137525320573392970573322989169207834127603780356425426409741349130375101340408691979158526410710151976677032741666257405840196861170671637887825426101934115560191428297930416740866138122144081738874711819053213927595213510655336298390889636364060696976496649844351719625139487363458445914059546642963010747683150705793873332699504870023193153786179341442178360357020574624999496622317693240152472164630374059073566739284176070519309555584409568583917247764203023538286713551445302530901077674480085708559060781477859802723536381252842340097724995505969725847962531010756225496424554358069084783380025355352756681272490858488357002902159630849791150218201601323568888092319520038710181957120912946382730093550838314345735737007057091745906026437302151089075100190540746785508350808437350249305575643968596705943491521365070872331172674697317978693621753653343116463649839118090214732990102458155196047351810592505222755406727090760595466734143581831085766668653574442983475251152493520123642947816513608890478128554376714468034744213683671993100514610649137820901412408637887309284046590895283614212559351324007600502192710637427776077477033843490936392740033915415796590007811035752427944349849148085615501491734656977707615550541135248300163422348735691658767633742183392945767838905293182983548484636332422290626598423567133481865020183824286571102868335213626266478508973702994012289571214924952286097365686418910246766978801899914308083387176122543447515450521073527724963756681055034467679413596281302636021202652488791595406523165778191305934824496633604933176187366297779893046377448801174076401008334472384775500087596495088686007738482601592470309071404690319564843538245188880889898905009519871024601474888188403877255690498525759035499518290867020488309531574704274151612514331238829711509092428783520207835079741437370849823827726031706209336748549265552712185031794239791572750263138672979331706509603082708661938650866776409518534761590758771458447743214647634551589576249541082204315821480448287834849609090605399224021344275646999638893123383372802199208298687526202306855843041391058849428989971605081796746149812338656115879615366974818696019602482240215607600050801011951018010971768863935397393086973593435519686802556415333282560669356446960681404379990072454671704671869784683473064461789595533929658006741987063912920196678052699598709424968859161763951998697641923947445094580657132431468248266778904149861658137099247556520736949816769743379810830367897661995695298155633347638516994819606289782521990772120328085827026999368400279016878209874563092598814744758836944874766880928562797762730818510510793788810043418588654168801865607214969193615899154715439604364600057181372600183633682288516569169892405373719683942872071173782935529514892490737878888655829304941655879451223183096637068148277134485613767136052528871822329027883526769736186011792339535550946264060531093673342705654752413678737630918933875956720602943700347134994589153957201500347306583685584892829675866002028739002413868193673006690362818810071096777017983061606145611582543042334552877481635057178452957864959995201496989031255729543243870577317777447589169380742882237563249804326587887068526146979372421572632313798484881073444761536045307103832096513678126209488385385355525901357530352213142972419502336931003978248350484519825811197748156648793925535524859215879814037343118782142325823433834812477466815607157995189996344976253778473778873818405600005042426210078013587744162125553251893052126507231243861254926471886365228552654407747120692333506437646680582971305139816899269550918424447819816266511694739540384452594308091701003151424433393906106723536901755928513067780443429494718353772857976216716000884105661289129367319127564113790291697640729324885967232607514171820388859169128678237292301990990635608108557313589272445914348524863991322249110843374641292646708519510041487491191724151650321689468271527483049910234211564381687365260804175829373734369576147453585255287378471665271402898361162864735160808673506233571237280642870755450528999171505037532149193154550390276289515881283928537980686656464302333677868283498934952370902078115118454113227816428441226886889053916114253283732799989356184806779585336518566849440752787790399429679631835056972016006099764126694903371478324675314408002407705202912653504383634014846814345912372431298501862208960277953827789770551712531919777597378661531569824233781750855178151201644438953575662082629411603340103648760158077318657415816910536801750627831944781820283391968468814543726390889453135071043871115332322784936921525340400193883395999658649924516887227892560371040921788245201931385312769146749597085582179512872582291233039216285075835052515789247258653815963732425447143969861236672675977953080507385139094253841224461814602520582646905964805522103949137005148837661810534678100645239024112554004742819240580398666277782256060720137236445981248002346165066305089906427681107320988169923765683934956004449988257914478777857094343010263928334537875749711203130081771367975362423524194026535207348971828223150953214318218299537376705851638304228359286652785935550666616054975376734751637615917494275196823682790412981951530820437095536195349634025121104101085041631303411306316985721506777810719911297347222148096176643807734197829351750404762486361531796003680107428399416774130366701119745610492101969919026684216398347783045635688590278130661756649930624570513014271231214121151304042412406504495777403695040729200193790458307346749701723928048183768421308076896893505055699012499092192930929965907879340809292987017977956351084537877462791330990123500995314281021553607846830369034586966290649733038999466593843742168748476384872641804011164499848233859220371462636109889236608170069712143542166199885304705821456384363016206260214361032900977989174313966137282847092035484912450554084983259274849180613674547379323036804170719325081120933828343857713320472290200109954257390256165596799465794944740089735121402292825468585269300291600133328081350638955425406741443824474941003929438096596897542896349710671138402649778564243227266259921151503654049778239088623165367801115073917834554433108457672130765180458900299244831665982107473040699466129799224023739210089299083852977502963604872248150766666670926203289492936442287340204878041810962221882401370316011487239756119383913362584876247209693508282719379106814122353562930508819358872092922837783186021664964689612458643774200946581065096072363019658060901145587919909287907676510075796392634007339043891312447832560034033955377939311179341866010442417899267331385176273912828726166855686777380904759162062010754618829715894029219637742267545142825282273696889881680499510092222099702942660560498981189136216910047585706873798159554156969627284701095970137112751135056741695573926118879825727798568874101417728795739417145370816942015100235575799994280592836358502944299670889255146848417935748713980534453486466440926756501394139066958028042925824717354864741283568592979100281314127998352427302370483825280574015939998933236067816031763956861742018382126880160537332179570063336208857092900893413270929835766064537366529479643811663606676141288842530768751849591841181480659082734228264366219751296140698450984106544215678116082573034025759629809914407862445708663938896084391982659801276503874874247467003539430783861646674380376079657099996653374650181118645472769979314858284417316525698384615507832212840515360987948736134724881843372534461301771424398528800345533154325050472759664244074719337143466605117156167638897186407923338978893486499201312383363630825501023775985797259498514716376362301493893958012118701165466222888594339051204614895695211356559050035498128813505506821921869747420634342360106228153563284447765194233106617128260181389522640747258886369627439456726315433847085241390710763936474163726977391597678324150943378330500155317460354464470874842609249393522978537462321355395404768615430865444805088047193679597116431201718886742560535792642215198360036503715654019212450880840434476579337283019773272256778515216614371905565089074081790661294592848753152891208731004330635224214792641617449560245876353675840231482280287400018538851510803382901717587235751305803080659432405680173893921561633952397491580899548780174711162607998504731865926421915653255838718215516328838688776658900070050030635331460762764101558307646241210290006454968838750107366124505896820514242828648352278022956261231460872595159969641299965383619923937184916022854481474477201263387121184158750933635995558340759412024705508897245345339468671332802536478887684858469432194621177748921950112129190766328124322345805602964449459126868454302176172093693784695839508598531860747553063470283520030516528707959836732863233400514758814490015437456653498511305520083438206469424616083013737621377995375091935680340310791702124635857067268173551641463121070091629670941980968631812044147996524211089356935035452158794411525880500920328819700851495298595897260758262691478904176972890280122471155276324580781441585443489325673907332384702121978185145488848898285320298165766027957282547745004992990170554203475230908198004084330872828277756263807013096841723410851837403763645658940282816243699780007170414017910365604161226807586466547116843164788285508880881372244451073536223207600644771528675887754172769272682019318744893406936251687471895684293422366512246108709439675278551128152583123116649280258096617912045377297374534634739960232368059937232483373844183986665970167172578218880371576614285545523196292501338670476990805762753595586392869975941062821679137968966707707242420763506091752242507943112263795079241609684483638257849310395766058729882205892093105127663510991224097694055939640664156877560165741223568130450446418233625431095796481422089016121147720295470892767319453227787788722163419205573518369984049051272352980770392998650489420678314801018248776936954708609871057543315107160353511959336623833565100219202875430861606457501388405884108997503927004666884325979564382571807639108118720622538748491035507220328162130355826858972628883254271221918915993516435689850185267491539231589276386529047921949611254693527970153787582936673602902037083553446551052692295228713612094721939165663753961000062445015786011662263978737341949690261136918325416782350797981322996847779021458252735151236634308784978137449777690088847311606063870256417524182160900507972505520697579881343330436526999117687382754424595755110717913198307770726214105003363317161762912254862482802482626910834616594054302374102908716028595124007537616851180061956319050070751562690350612244248232492637221904231876741923057800154199977780667725702720853621928073377130113035604120610852039885880433613910325712964286228256210142360059935802092036400897196631188742285610763305633690380910239098243409494868362257942497803077057428214784241638630929063329384744980814253040770173294351490776258407468968970158106029124255279717044141386408692929237643371770806436178178378342068441463045239458811797765474434243833732454582277138572590460688724827361069293246787095190473329179871424455680687741073110374286327519758191476923098317345835904308570590716838081101233412608088433358301167418906048572103166324778217402132107766234661252777100830371357518440188957033860347948209538377389479195088712876407963733658997330914585974451848973767293717306108545380262640309573549423404699044392647341074928875099652429893220980813204950890313145167758215709389133918222774979523887230342209506588751450437533965489786091614475313099696199706475100614056926658907771976445809020531722715645720158677147390690662268692691202005429989208937919902414599456623715749664235290912834070587541729383442866538031540788963748947038126768084192474369053610470059951890920853734290677945984173924445767137890605639540331387867113151726175577129282963286998856282758078559020604270486949642382815231112147846705807365773553643597059790006891535743139440093942614972709658716651942695612133167753467162895309736180796607132379847238965994560315140837353760832415393355963899563022084308838866310879124574702600720975557121481756855173779341422366931264064297761499516880247744570198872238870961940905940085461240601930495817808688265418828925734394179860237812665089300566212192715903455814227390650363679827247793090042070327823399072154170156224121581887710230694875627708603998292032937973303858791100279445788617183969022555827042984388556789348330007245885517284955775556923839512663975682828246900767723763401091656856334485941955458437283966873522111952264073918291509501661557502949484738179960142810220037460538196010106076942334704949066845362073940661071762146332566023394025308466340323656805698333086043517386827191447808897859226522030651807849619579085949755824772684300293341193285938054087263456049548671028491992270478392403619975410666646346832127254243798387651906718806026432014899878417334401933305331233114244246822452399525456019800571912348572400433878966249978741658997230219257066727333029489178143421317151800451654922990939093650907677641421830309798679253104240129103630088054515091041523582750408219707091759411961120217689593441177482833737107822011181867262825695386012357244964579930498413733383117250794990867587621176511077031432582953654455384110086448755106990150729344278632139575303702606774197010155622928034818169258268397629472324655141872618332241571442015975929296936157664622102592977668516061865996517206518249886659814522782143977079997362125310427959302561249454121773273671943297605101917521782905857819583760788732286364902532465231876877566848183846239187831472246790327507155245719043568295455689760894129019082632710969936086169507957656174962893495798279370014717328809308039217991044056946097386403578116066599215504314662109353132381662652030790082314949569393426633791534890025077561061811765034362767650511938378885880076540891366575743287963917321142791601209609991708526215500938741398343965288896421767065330222051075715511771986184589758563364430944469343466805688856462094254378613049290312664082440183477273462306584871518822516961839478264984202894271721226328221242267173938807187587559012724545361622957341060770860454070602148483742018685243394953180295290394524493951111422823869692093565993358280158556091599030033147136512364267502427922104155544716496840401105334914915401153143476803096421407031329442097022755895854567929558428341707925510185597899599443555224219569335594880925143100794012808574101141126445971332642228215155655115847199022150075265934139853630938874577348608915796054197677929640903249300947083490551671007058939474784543665645919610644092483506420153168886486281866933777674000081990740369635711830169280804499456907476384319031055449883548738015025381553614032792738236961389401477662845786152736984539435268760580796317885812060465884752627485715732934695925932886403816194608573929813387198658501781760841936425728207861599427226912481306660272431129461609974161511726958098765272125955801557246286728613235844883272312554650651546837057730404943723750221851672559540966617157882052497816524445737783039422951327171103721602300829254819587613908823362190357996863523956526232363114383604649018329161426778908269097175535854635050163499015315984821808551067951557825148869424110280752936427405440638965585075962036061383602633216238836425983137322107860774398339330961729285164050330380429287563018936613040410094387269766096168623205713871414878007155562142260571727560289349639141314393069037077859125157685195849459965255438823609165716287061961069631015416336507690825219696236687977834133936188710063107296851123798208137308977082375175390651217971164986869695747191372090303367630616971683238882940655163564373065848628422029623009304076108870717903223284939175524909753409517186404156707569030012348014971367332437496543742279488258701412803442892781914722348890148724706156363692100978241845232945306365413096189642627113763265093268654625684849706340695961565763670292481034315746319141159989160432286934306178355554504937837216967681622522763119649644609532421845567359780175451438488582763558237935846949909460129928853860457251857537444284665931562388809948252112134289130823701444571210119835178753441828013165481749262030184651924839877268517624275074560630576957054266554473340695223560752994658044749546315008762752102413678428592415968888630320313611038641351644081803881236385845659199778529466185880112888338839544477464882090607796396808028173767251010332580997003079533522010166217902684100105686419837397098173524296328598816611401791914283775342998967520109536972153945915877393354049824781601442202104455954149594975133461473028423216096989301647405878696495013318611032098251642498481932823260976889673386778173425803688921773550158001145004726249891507248610666585777802989241170103330121674747994118564183180689189899648021054167179827983959606594028521371409640413164714576913841773860426955715367575272306696203634059042458073837201175498825100668311871534168943823408449974244519225072984533133015734465548114259295770629813652346535790061179080770178096999328349364696468737896230526159186598376165192103971893407308284034965006514749346069851827668199098985021232982437891095597336891815074546826196601755108936705346068417232163058941674827417393062434372554892366839711225815351520259386052600029907283554046926303281359658142063996221083864147495421500213481197203173775867439758874499487553119380377539816270825218366832765904304382776279618917353058451299566548167675449085714809585140281450091252153819715801802065124625200086717114145120150289720370589187897667396609065989711799749782154510628779259259493591684223784729783798067971555059498703471730540267271682073213187204288198385339179854559732075127208921212699373507195216740796281137914311123600874698909193143389852160997168781676806411391883116736670127317151126567032436231455223167483994980077720027979031682505912964375325676926811778802991717390562312880712182670375983214050387577726028190312381631400518369979393223025744196460818958067433856398157918750368090310015621443991217338767039652933688652550522257114257570131656111406403142371872564943781777649200676009634563834465562085347625338680556781889623214245813953654208476164058135454165812066989961396919178587287400389530647685707906395230923347994621483287959876822675704555735450081316196756165145934696288230687771432212119634553574526584180190241648397987650256682760274278496315822693897730639748260901283625477829406909801911069300575540222533805918762792682234746880004859473692500945752542440710626077858928442922518355983192753886931128064616993517813805707188863749856532923048716739162348132970652327933673801576295797890314104806937305976202077682432784490144085046875035186666316209312008804553299050112155819724623622889253049504482339996950681964614847432648614804879461923878809658315232745881106388205406030695324506181012311123441070470299566722589327542574238192942713294376001947388493640997759834282739743704061139237343157471751158122192317830192818543113438710057855668504460909874230854038908445270795269201620700353086068418653052597319040058452080509243526895482092013448606104470172457392882195809565085635154757951574676985486553227628524736898265467239332102346856465904643105917866240813591516086233097209274079861622842796626300351941705528460046305332296533662677403732875085204917961173236476052986540779490251967651692999041610674979388610034103375751638520366644504098107158433656290847473485918588791849068422033958079908792447580987733111283371717213070342799472006006982153218675594463520169372418167287187336377127195933476973721872110476183327263983399023077652624918201156809307245598746384651901945171838410541085509779962656207757015121323940692492270167822423867886159646138755673954030566820481448590749933537622761603562921456163192237313798065071231547818224442377985293168244693170619548905695723436951214483867799259944190117795552196191186067495621129026956273529522469182076416355365722775458336982452763594689726378065721142423901323269569945003289698282933227918279859634163206329622211086931154948323684931350692425918703828277404827099069656805289887098536049279540237101692127329267497446588764894409987090616370039665919649118064174286272679986610977086635463437700595447128979680569360990238570502769804069242591124273531687755931577526640476982521248465809086658233658945189996644888439215958605308108340144166500860511783153619058201255043756569266510034036320051986945463216712696475175368229683458538719276122960601097170943521821031197193841380207815697501390900029014827014750725256071838253397497100846170281605179823564799941553818979554205741647545734593568038090383156203686068198069673547930784961634541623244604454090382068396473843218756591520995309087556207284154369527007306237558127159483975035648605678756214627789902673412780885121715078739968943626799214194530333760718984885044137030525768422232469944881879141037212336743405544601145221462189905125754183877701146367550657120535941869709091480933514463168933065720436405287943412016253795313334091646378709601892837928185042994400728953516708257092275603893279988100597719790631726063305070187761403727145584146237373161112823319664747664841853507735540553554249884780256524517106085175287682441686173147358747702136670438186271048322552704971260682838020280202490057384436010870378098051208071539513647508655089833075176316292671964853986944075409318109198766282247128746148308410313909601517777875711872670869628391697371957419245405846598678999327042342114579772633143343132796818209981911992985187315282395337000535830445894164984788876528165237205382580793978153854062986955665695116207740833332141645001691176445743807321316971627714162480674155760594783161694777090297921413919654018812313447990672868110015276224470308117393749495267123854966436044013641184062871809609393127650903723648862142683731055945885823929047250236878789202222230631609661462282919251028811526464363789805766968277961208581495854862570239141321281331885600870189164818063815276109084676164815093510554313423171338648620434298358719459536918624832552077883858952395546402325600458152904398535024239295765041367813871581104030484539880877810250994479840388665016971460517482062235182097502680547269650037900056519648406500334727139793134444615393862665594527589141296926459423010679789533673610420854409019594987489961020568846307969002877562409556184209121617951987732805775066907765200587089537345891685202425509047899246708436369740638111995329554783541973086299446878309442713473273220826079518609000921324203584735409056256541993022585823791357858726891976505401419434541066198237701519319418615789116592662279024841049923713463245513519777888949841991497748499089397362925788990712371183646676919604830070318012086415139237641980384291865703897538641123071446399242196424244894535032115881053336917083196048669642792027996699177717301285154378746851050783480614411173040046306523723404977135194354841468520528188656372029522963454539724803129522695954809427696037543335668568213337742205686778430451902776572357444432966663716706815461391150084550098500777687340478762529706277635447889151530095337505630331798648368899752821526894377521990638361491993289751034051327513263297137063309645384593074725960894441874188141194562718710682743869438965896140316439590560683668608752671901586899430034337729634113028617925928726048930875701035578106624920800808148577975261509122741007202679155955653728910270703509127241486539350922664524417537837640388013087751682528340355802105836283720553051736112144662393251690972376136143279614158654166736691726309977136933471873136468821648962892345444654201490623154615685387917234669033947497976053410685456897645714008440541522628987667306295202371587706478793001033813501705078683399907266765868549990745511040962839172511249632996248075042438358919526291960009017179885442359530886308920980578185407503762268260824266879056534348947187647833405734289688427405825874652475323808938831679918534689814588706689736996581886547986188763595450998513224240399283693583172525196860383392295343962330002780433425307617775226381761792474408804808071191346533319633353283224046588963419900632686942527934320684447067318910531789478095183074312358267869908464665526884509033555250834934025048447935533164461568105145999478329211037512208620745969783778987232882452587814064566816854902509898788021729057450657937951136688420195426178413338822526842157564916702223038338901801612942850926916198822093461337333603693878016805474499875647309798606130008191116807738205140146765047227210649994062032886249595555596718753460984233858694112430005033024384692348358910355677925118018697307259841284038901875222354381423533600503806788932144769009090672068241093582679149696295892936439444872602245777759406638890505121934251643236284621820396738172201994124635583106300099400840778284449430902436100291873123271097521529439265155845273602319724394043715736558110622493436931269348294468950288685632759761785678690555969939573904508906842624607580125446242363181154204148033760219955877363984015369886660792786579703470002165764646264528911953138252636059895962594588213567299970808823714999852727288400914143175112540517733423681040975210542231126476639071220868177404325919501287600981195385189469706576948987657138091952620348694469225266776343746834969122177044057074729404626127957118045534878607489934464333806942378433864062134862040077832379629480764574000878263973333881017013964857997928930861554256378860182174378342069846331487184393705154219920002505725709698217702194777538046043338808249915840448801819456362890779588920034391573517085808109931789675382914797492012961961044619284732113517143670981222239850859771780505198503029588304025514667531955755897349108118497638501592728195445106703942066047483115067251204722030927191267624605517992019232659160648695204756331046258503671120972583460442162741938773820564397664286277808227344026845678317953141207650433450078917959653267043630248409148037178005565723619538770988102267829584364850552269851529256546401431367229761069404541272437763657481758677368201612541744659590310089694158129581922486079896035104265489302650340512255665144013466783093031354078630248536799242291773899268729433690264243380737624267666338705636431898057862517468105975342114243043494336945388384724701204528890951209511842969694119596292526056141658459560075323593638192593732622665414566512872642046137383200618873794185212272785517430565352304619230051519747421787539479979255710919595246367441624507539139961465554709395765337077246724323172401489007122927249357120774473027629137172272633741888114457909449977996927039854228532019932131966790250207738204874206681426246798761620659323053708760714577131172711679659350973002193959964690420970650522362380190090463590824623543252130617282517672100470973513659819602878790076651472533877138797315479247471815208247843955997146578931674319338235420668716119227036946674531080072645305106451817298285978123518112063696642885219200335110190643761023872180601945155409221049264782095624501018699299292943906452555852042628967174555505294225721460902832917318252386003802968640062575812787348490356764860231796778667539489831383649107868476536021140808170506301310861817113142236647367030097309367992616026846648054958676328657259585033180208945753699251536842489609892103087653609736327090732060438469017840198393191976753647326232976880117245030016222789403998806806750336968788951798533605183622732882540042023602418841533458368185212833481302845465555998751393172844828506416567373213705812587468905168407045648518769399951012588304939505670332415339801555085557394371521989623001700599463691521956113254707731578289752182693398925251753134742419023489094596227530910697858630385864085097640012825198706234340527386020030899456342972023430397908731195582508230199674154900329624477574565270913381397841233207024819766680754462142005101152604613311669139310615475327077874790430464280393243862842454878018560949003870668636958879395034567084617700844949085154215212801057681194184093225065095557114367943329823581810650192452438855468947611512039753942344499072440160928836319538511268416574320404441759196516624633244643064891360269735222746334475767937192147762526055173534025609520621256644417317497466394141537105745431130644776390941014129098182884517318078969275033260436391400430291490898988674835301032569176394464862589043197947050278411896485252244996789877613566991211301072328476168762863790745209430672908538223942463567695248225999899535673994885765728550875036562542139678710244828554105146948029682347354150759926965258076207559753083152315510473941336551552322392796970240071031486196650028100622018141613189220568439599886591525657240684148860362294390135565998555982238854687681051175814312876914367624622659314429296798409523947285518809436037146234992631744285058704202943023158822225627478000504818865948657047624809493331724754383434843092427589517985064292537406774017585406000531994712332542424819128801893944143835523592714887161572321745373219807579037259965049250419783095162816024756634306677022936067433016452069578461981377199757530161771305228308780431840982175205670469103371421009849212115545200834628697601172388891300079532354259635184413368982542459251439459012232366331998139708461496707421634011925332260315167153681903740450276424888479102328293841135121898817949805835918141917252892359312070583934682986232194158306164414719448443056914455335964804975037361214580894810672376912021886791547768574423864939906781061871025228170691743860033959112649573132052111261280111772811878436857401615444608788610609850874414125741795643297065016531415813967045255066481653616267374890055665889933033658012950784235696411854560431910785477997522529262278703345253431269377927475687822313807684875613392849235944030812981924574645702479907428740932479037450758006350780153535406574681534964610462221342561172126399000497214797362779748883841006887720911187072982576894133483817741702513478704469247464011011460152444719816619092869668987013419122733399837449493875034986972405645754373166791803031810774064107839696728515435091524791051431898554505642439188780713922290971266786560551063575469572823396881174915025972535981116737403724665899591805216265008759470990246394802034604388742267170779677496493666228866598718317039102612344360650224820559420701112884737601786960699817799365285364774065304365984229827327056504217596112324596086143896435539014167574765025775092257240701446407025663500172108343580501164721706737709021481802516993904592018786435252543025009857014948463631950187448317177221917584074273472091041471510879593083935231033686055481697247985152961176476047083880959731365604943151254541254884053457291982669758915430137097040488321820004670749718282072415162864159301690302269554292734352432765657654721590346878533925365730261403095854423485050848079257719633158091657770591857038175461967693111544899255250859466212575987406416210919053071156037911273899923585372349987048214379492531084950417910289366728072705659913080562737388437771066809923946008816624668327939017774298701889381972080883966764015745496321212382201549198016104830439646543283223182453724011478151931799384387909151099839470784032128028328671803462973952798856197315082075077398323215383053909912997263161782624429062869000322354922496640909866293537681866254581939622886644966729409935129626779060496787961461461944325675346026105644725273747829678374001710737556213634835920675755578926668538447592577904604334332515208300753756406718077145155391832434708994059601405181754786369019802136084668806758829652098930693835068029602670706019237569351690674300772346066518165451337461999591476169430682194960184578731424480544453954800157174698920049757972274571986115592324841579407172357838211494401963105145506349831763682080825871099319835631634052195763520240436229458431069685405083172514940630698011285930544266516750102399110407495786533237702280676888464172391356755658840641335957982877117912161188819377952414733326338279383176532579483620007187253267024310753530356109158098374976980149818377945791500256461226841336923812390958935685519481304744618398885193856575291008245033915106429296484694335992442465290253421400693138909903140714729602562219196459101163773521460747891939028375552625958748519475500411962651027656394880152944942067020550761061695824385636831309340370506098966403911437282289630332057613583615269785794358970364576892591963364632966780297103411059768050349985295919685596256745421081599709722383987789859080266345925180595284602829135284541213596874901619538497244012420829331592302454004215910308338019186831386649885857808392608851823751076588397777202753885864435197688545453421874695980668922975757094341723722975034657621919454195549969404431594477054729308394482486797119279658681950601377740300955514390199344418872019546443168824422610531085447390175190906512087093809205067925746663046416260762100758405064543355066235264852660974797229515484975585456529403976345626302903993781662807585665561163617257291915897370899949974374390453292474832937366203023925319028842561966310659509810010005404103422205524491767765246179950626561557936072943855517421617860078719956894231966865833821438040985774048473141737279614483181133475884232304377920582583367097029206263387041464533197293079877974128570923552456407646987225259849361410944483030923332688279504777173292893288247601951125941567416342452156773494801446299097352893698499591288743399929037512306403600050905227674769287684902493347208571360883084906221472375255357506406886493682707854098930172187253630498089006176619278818767549983790316322021033997915037217500764399861130911750677583227278513550760643397047830212702436909574324725090355381207789049353990861339813548104866168147570914815518378219214101655949052454261425447592727250496879192990666017899734051617588264907317288340948976225234118991911394948821431246550800679670004653642647993881486653847419541364619657012873600349168189260067888557420919472296111264982120857145942627709938560367551854744320859122546963308757622364302142652830956015439809423734770358385176212701039699991568520560628632914854307714631044590058704035777851261529308334078117533511928338820486559487691960027243029854478769225531051127129261968015220356548628954019266837693288662098652582759445646501510506514411607076601691969349907630982282933124359453656683935090299066655903593502034054694977181533767548286849746855914119532732597468770985643005865664231831204641712704535974487696178007460891827703434618578237800384204252942874178169077903146737488626969401880014979338918130048314062076889254574137087655549704251055740750617935598929064164402031186999441278491984774544298843138927836847414353589851437735182103171705842726359535991576943492906829771425446519563287635316733638015454166672446053650000464960615456359029808615136814933339097224784817785802050354995239356865580356576330373678913885534572702491904119333010368160740880748280005490435558468673947028558780144430867244181100295603085625395330979330967239671316845302855317763140326143789914888537494216167419527898842488834356282892669846114790017049609794313331951244485951093126864864336906225284751276860966118789297468586190931409149452190409277747093173071485385858567059960839073023927970649242273453270355380824251675961456319124465198087684416333208959683621635698516511113481854763774339500446917897532631635063205373372133173754278984969955724322797723027500959655498587756254571667035524372876589924304302344491350232669139955945538396161643655891142122307187259718679070825696803932632565000335189224321313717939838866342284326727402735385937774414837809447285637963448633508688903787150934563270556808170525758435232064553555322223266188501874059716752595379139758270084986495202989903416931878614515841716615199494127636048171025212017053161635971566544817569652159888566407686575302721370918281962313098797054794147356727375487170220298248652349008011543000785648065604093010409177723381827922843423745958513454839433656533900333143514892213311845864209972459460950487349150145484273668056731185316734810729382073680672156939632276945088243612861268897290716248867778244574874332847196894586164915719734959692676038479735970300501015572632670178337236322220000700938501922316236677269290152629363733381554717993128733788427334443168897447290197923602044767179993559030094008582724593407295805632103549554195019125683927245443518704278688896038162028086197687414515640659037248838609795755215720144640773249106204728969617328609204174078669061935202845116634806520245609618582339340409198391592623365507938520546275609319340872111296723938384870311044075468245792433936506223392207671708354613364670916145115220591207852337938544216709223960638351233481800508813915693613323684407374057223639716603365913007487217900328499216624148687189165349628848890065998702093538564756039958861550709307554271255593495993606068526864252682090152850883469132985102523900559757475916235293388041607044597463807222447074500857088238171226199925247532496922775157481790860805057409182270296683640349095713823624310865104940477593670614364771843369209810943694328012514885856697093866980928221706494758006847633280296479884232092517465372415129386353450534399587050070081858074647136090153739915552999296300177605360906354546977727897263489495799806521119257825585081953243097654146344325003029026995920275835307423143302757345761210906821689232950243688685174904229275301210016422467641235191277468591645816866262297382445614861076691864455535720736638367321128583794597793623856517191204067407158293163010080170091666168386165094820395549560943787063799407182285865104020403745993023930165213074387188932099057891170561286695082108685090983215909853068187785324336324269468838114452796299473273793881981700300111056519847416819612266214592114619598595920622524919814217735111091164686984040951335542435807711810144582891906805978789875683736811276313048581360827829121869830000620165290407569731938424863969763762547920254452358494892263319281328555601088756011786447875509874031432578166869592223829508929790365576833043524321008226161180197153915799945866638455579532918087159558719644043830077855961199348534654159160016961329429749313495381466339640418901970124772711559621324685320987002393169243832044181507533506622162012164693025047629212000287735011896248580786524232136381538671339459120490493279494820488472958022314758930241858910810351928919388652779769490061702821355129972300638050999088651726521976698187680309674266935680744495378785043346567236728597985364883990563431171967395052156434983388282414581027751906692470031213681963885081508401167508609953163492692992460469708042519373425639474693658452095549301831127048366756367949627168905648511878209483136891459470737803643832615618100503101061310483958233864169848884744817412299157302640357701796135272771042243179871220466506910877647984009493610766471069295672638786824825287167795011081838208997527549262867489276142677664398178280130303802115518579744445326470119825945118464889035238083000033597492688223277959728941499539064260326033870832242902273193496810914222527243089345936147181013388765260532237729415783704772031962196389018994671666343544585174020089722732415682088275460122458962425691010598964318835586763571170287274747534635529937672099009572088022589966976817411054263920924640176081808986711967409631467498893936655029640237841745697299410820673273735095560307614582524624876191448394517135891669756638068597151736029854381474736381346785325262505439298642133618033826604162391466528987255484918145785381104653150484309915501867893608650105487910394062428516478319912018332490893093718260295213818881224756884136594919797580752303618886153710552988740887744812479693432360379716864983028156689986109343437634759238429307480476891258704944209353816211485823259805848673506286479462056431233651808043455886348452888199424606518447578086901023850354659143272538586675822081896361024960627812524747835009437763727820085435292713050785780590108456975013576189046820983866919888082622369841303973785944767134510427788908968446005459778392024939059769406331070274919064403681225675923729191192132951421641431054424268619621380871575860882763656949590188638156799424637783252010871553319431881538304655801785941176670888720051958685759959228108997069005878608379219211173574746175837824084022965685299113293440819173008475517911362217148588978660769101881743185900024933806703235555154577347381534500783972447656506407211602094971497525826960594483662054319299342255207206129807697724313276877537558602420246214527609641009655920870342143834687881180407909046912279356077073916942010241417165828673490397365587375151776379200212099493980452136892332745255185165758456442872774379834682650078276690257002540631227329139983471557099237374014236288101595387347126832473913311309089058975299226373875878329977276376107909525496049606523740589121329365127610016963359417058475490598486434748083365444805906865638278474408188339413096185619125521306737139835765379032104543820377965606028722786239052716447370142560493338131457639425855814557553051818987125112181128830365958182089315902811998884241285507027464622391486761663640119979625752131955093774761944125300910805300462425682196551553696852897762492094944624717485116956119139166071735115722075978645119708670895011659935010667958725597380859162512998069771779120280129027406772683773289276042766474486641029117443981081603479439977204618727687322641341716306089335069354494172532138109611778984569799680314209444720926414183587466601930623118484791558197962621154436914390674682396755817816509467568379981762008673320515758056521114337825187900059189865358809434109479502088538137322057217090686411921467950477200565134284563339541901253500590544481739807405205981914721336477251409777625763528853705144220899144976832676413894669612136083320615034955865919075400717175441353165217363840041333305545927158895401025204215436952985890162822702602751209636286639292034077034634625841693598160414859866536957612205343003977170564133186894271380508741994363819898793783465592699940975376317107724089236525156133786177798446848254453823213840381016004246803974843499474637601178553208484973155236273348690569494133072959526460189227888173766887154256283640496361824201575330661276764215282238335358568254437372505982534715318228593469055112269306735196501802063813054385178990663429991028819019159515100807482709838406821352985024252543379932303470754367946629901093149788398221648912348357963835906343885552615728882058249790498487633187847878376841006785846080255177120864774386120443373546776660568116722126870227338500540230773372510773767102923849017302228635347013490937950342296575418044531469901924078568467606794672739835017989947209114602282466104271881438355432871411909098938951462364788238994527060686989005376261784826212385711454029050271449262196248738999412761505182939675113214370768695944883263506724495034331766340946711581574713140199501183675019823444373014136772941558718631874312827161977843587269891357783849605779616732316529879712982200429898067572939645879634376481961833674305502822700074049262317820010357536529681780041534198000938487618776412197078413305031767180516723060450079614689496683213156221555433017490839146647198467614391009106374624933922011775777848157034885893031696790626048194235113192938066654841032798125265519031166553034461375105433163667100246955657073288005916424129114192387900721411521169846034906398199436071571916153739548583382186517140892162419453429472152497001128301341900029565194100659596706134246737327069790539967381728971100600190883971629860359300729490437134407879190900870028308694073519273540477657280429743346244229108843357061478187837575936068058894056879416363498478011420432482563820467599752039117893036698237135337381327564435372557813955743948778133989210883722350150974340334407285833791325751953661281712842324920333511022897492937351641653066461205347979411024316176238945598588851673745752291279460115699678091093039275677629567649091742955132855504814670292328821888577844744347795199385430743075727965901455941451675049476335220959732215746505171930676184295732173244671140542520699217608699693559750546797029050947341464063049385302931391509148888485284355939756100956161691542452957080220894477840396571653090047707575589389085454252855247709125011948560864867726683621895465591966502299142787446011341969876055234702066511983876793788800831931079986041562509898692192929988480091413173537475287819242738736206159319981546079944203715347620728595334065350139977285322096687806535198308021034403229699558608293685764197179364603820887177037006237249032806235587027435119611269442616595895562901686606454352220752585392473068520580276779185540296704181684141364557756066880178933419950788317695724581634144239619146082415883137918296226382985726824837882556279525999665348587169736351192047138608678789539159630257213431996712257727548651065507917534835144298673753919326629291574195528146932227870581017515536771544313183387075731316907231554894128900607778947941667216681799562771599098002037265292816721411161382171280609495188199590848991316283174571909578935811101483910481942933867579463630326163810507620545382728440901200180184128143188475458620963238591293377187176951889396655863054740056769771396189951039311702706996150519933895168057207159693748507339028702269415099370329496704363706807341905472435104465905594288850850295372248175559403983103580988653772089450316048337082411940682619655177851170681234402132533431560503122800861939171727945208712840918532850572369772484662402860277729778271764077432245584724538537869476212408795030380277116122460008649835909557587245190773701886922950129313843328395753177024880785617487699297907330847509966252976498399940771579544635112836135419825813810927626212499554006417074019100880616470507847039941338385196748438479779827803783958069872234606427731155122615835729149843409798375768627363327460382404046249644449852485567554945876786969878206434061647481877773334987848749031424921219670245329221879223307084477008079360133437362271544583466298913848398990878402237577989567932891814422907567319224263106542557502075535425298816225822189877559366120263723790996689225169814038389716257589253041202212117827472476359137883457360890859734000134139246961918512380986470147755043222274125513185592176450122078442180357145972549446648683299633027135145555408234461015339536157537232683111980225307363668713434751654451325542998928806457143287797773815275302035580213373916670487509849540419907971933321870849607527239798657286802332464577329351262715628704293384597140088711001203373576479922703433387788571182824103911922539024318777729906769146637461191192943900053045294848445374702647814892391361736334436825121432069286533456366501631661118637604726173557701462306712465033727184981817728695453329790341250863819023507226604478525454535089554465002233093486410427285073910865008436389138026564568032717139052813177933853207817419905306422292229999173517779549824038491446458053324816949352070600820564232967512942961602588377429106938189757843789074113156736398894024244604490170131589816530257930144562997646585093787005820736215067874045716055845423666497744362711770628307458029757815381215357464050249444182509413709722793536479368895948090099615282748936729767063755298454382676227468580391096633622882451954575674860363317035519643157117533444701018355774798868539696545821189318047309729588937305533962186138531016734817813696227186665264255236731239595241506661797840993618228178341205330177764852725726504538934209185037185797642060812336033969382803488657356233686562720126082195850488231080929363957625974678013543726577281265959655843349304774852056958721563413349531830044954509042482247853875692659248362040596050514030857333860418146579687232851113846049818871762056874102167514374015209562400008327501677713500666503220170605694532172042662185450047570127218502602451030809388916384407078135701479957050984181034404471053223450025529586275201654465200647726620146871621464569427470129949400884056051809425166670865653938366846202270285225834336754084804110524982875095626189150361579541467051566798577154527626819296630066386112539740894808458391816776471140322510984774522178149620018918753555421137735989514152056273960913378701873562035935595455386970853283175562541509041157145663347470243148318034859200308974217736387878038046912695593226452939003945691832655411717961884318836228991302809110653041911268748026353145663347693372136992040716912847129038872375056562063179072103960050457453234380316521851979601109490377421632632768098672911482070164856828831014104476974270278521428708162984727402665393465828716825439849227770246105550628036119906052675188008712365017211455414176341471749597417652363965822715962832872946368065700996993280881509895277685684978259430988456173936721587396780380027032128658250169441616472617064634386913799621409746132012619930299548303526019995769655900763328269097607718186740422870628811100982771891022429892286490872990222278673306284809236271173171883258878192155417406482204239094748357180422544330581388986556674667020442181445253182642114063704881577980898177403499510080789186223625097611971627844797010397951483624295939890763753002284736996245528676577544036139379147941838136180556436344012093775564530754669009850818569884052507337341827160632795443986362443504570316556109843243198954336145792672329733341894362013524812191784828532258729909719841694382613573327567741410688078250405587037909229134221881829438388039139706393711000888655010093481777153889834556311843091315459266956360470815464627994027095228200324841528692360612331774025623474596267105791233217627606547981269470358574086992989791851577387584121384896003525936938918421332124832495800532169997827085622688789037733136060779924787986698458945042823743324161007734988617499734493248855803983777853362393243496911687182612701276013190354955879899984876472139707720922565677558901166600348297702726814113710095995574762658079422021626676521131558128945858524449534749997677948391819866966985922379265034423346142695509339563061752341073448381977605815723854935576238191292673783548313050613270763484982139300119807536451127905979102707667134194303312347827882510571704822360753955852762902182944305608025094904716313031723229281179839430288165748149476432016800932472437989956745798473190877760499240438351441265373999539374584345726484938316918206428326937232447819172880204307201814897450463371339975542585210833541812059536275010989440896748188017252645263005624650668903440893758662056695323253090466663501945123502258510361992447433349012753688885678787360820652916071299983175100668632270298476633510761300467590833945101965643037027771608521308238173870804611332496400399378256640004492031298693167291892000445415052988048943372731701885068653452601101058068582598625027686438115325755398833646687713887429709768981344227113530268452071261479224884412489286315365999001664615371801831063809428128546629517922306348031652310425767710443118406107649915629507541744071869965520458446219090023594810071505397487983867485871810693587005681812241956311340277757072035712462523367292198478221389453433043427133834826774034605033477665661962857117100115657154383924462534442123531289154900299767581801089501017777593342351505779690366615150207425497737610109281010333564177180710856459614303992470886360323944796060978139476282475247915732677954931361571366531780908872567089492430280581118094210985254671080345504329903878469292379067115998513797891370453031967556875467273820576278621924714163613533890077252104928105230243237317597625839776937862863478033983428777964312792777043291386275904352524801613999915240360886154960788210680915783141385509636680248735192905049636959648151937178622745739236990486815149570809045167578266040373809415233794697081037502759304839723216075916977054553766812864430136052985046159131373460739384995840706478996785414091264731196191337920936736303725052207292063893743494976087586122978365553441544166494940114555909535843986939262863164326655931425048821966891215288161248048696346268473379873444061482389284835832275223321952028416448504286581413606653043444156438937286596725014598213558651188968085846783575346406597709716824411656460951991015126688467697926039735369221161029719092755755307833355969369499221590938087033167317637172983601148328128554366933989678543460026681080321117752505071409685797294762139537817954361430150555851854841653100984350267108561974543613491185125032721733780741460740679433410342549663288978837886512718430978884557915801411399880545356414917371767064133429462607986407854160239591162473159007513807794238964379537656795211552242738419981573294505697767469729759043733921389786511568845611772733432989287941099421959857452103400506020658519797067748153130593325047600951305385618526836486807524563208320138375824652847623213141304848858355550490963391152553924952379976584951834960597772960557208489913127654674012148046322019965230442302905848548692754129781704955044375992933497359203958758040556891540505012432687778822396242443988887617803820166806583978528446895362427748845097114114830113859471369057646530045101749303152818605862700593895979079459845727997043987353325094639480467005769115651216324983931375790369313759719164978956226949092280713894335905000003175796921950417378236975874174769114309078777668972901916835466896265313672677699974536214664410983229437229871192804009058930048039478680690937785278548391275086824562355443225087581596152509669042539389250296224312651676754047082789070963714231512070511911638470910475440853840459455339756412806352740490925410339888961049148165020176980797677385828000283188477298348425345952370983383355613751222520995020296160071478975819842220926735740413136534212822596558291320835813739472874912115926792857044714354511704863188653870139065571398853772368954758162374464541707597760694684889644137033655783873100547129414081624240536436526379080137727207262965012534543990361143641379523567513392206021893331639860469721062673555779869923914982810507515830149970823834900065549609083463200054187759651164145725154989014356224097232170653448913178066069584980875067846523570854906953956470310026029525577228478734460924233824508563650360529654621756393613835296657215807432745039523806009665712572228739181969122204579951082852436949532143914754767739312639213623830515061820971256122438579739193795477906567971407336642900478982421409365150938985341324901245332558199697481133785542062258980682968991939355206326254805212170564771921741537649465736227054673098784007731982089337503797791527837619649164990663239576468627441988054904403728675283299415492210737848962532717956538614887739053395102401463606466267962683959684057313525392528889629399618293055121964720381053079064311430763480648591041040196038141329100909903546741391270936646060840172119224873533905979354539245686006273443846990025241686957298128950917249968517887438573709925745027020486659457215120341556200765988199127247344801381865773048817178244261777425225475578534402587832768978596390407669858294816799225120860536841575968416279811008026398243937868216086038582594673330156782641566181404312951893635706492760595586931620582209417099819822574315515090791143863018558275055012363757749052069985451149248212968565072684260787926079304251719367521504199694444914614941772068677529196462008088751105044324706656877096555977434380883825072001835581984151385232411213260413212558302260254723468761491937999226637938277705510909257499666405242759932683945222316271787811989131275661810418657099480114679228100455784556470777609648883722580410731200044741403116452319814280731364776904988854864641484049366713153350387529885624305522840496094918017119475011115454315754160352277541185046828142454689422598605480420152504362864400734716919697381345069004059379438262689172215803165023621615614170566281606185414281340485989007561992986492600954456722661218966792358565729466623669393494915549186267829517539666121043216751812723017924417283706664231969558873459863443013883298770944006597206491527722503586905089975739183381459988336959154419004319573658655744915034789645009518177294046057081187621760882900065034603100077960137449517315085186979513409927488528031170254969561965275460266880116200506586097252336718784346484331437971413168750319006071522784980289808084779912938256604624952040681159725000024433519656701632709340257032061890798231628787756657808960461162864949930371784721019501013083661729778487837737048802443192022935925661338136565893563913077965732707437803238980446318057362441614485516072510629524001151141132245378700239101742975473836743915128119313956598860170896873922369075756702512678057197906626086475061052082862967224027592555263650190962293601387132541617745391446627346811982557232595631236557845164398560163913108664907358083304334352342269153666240995852940946483025447080156586147847483912612701512027294663588324917100907399748209247952001024085679739797021258119252975305845971504013807385473619184820791389771465928204786836556109126965452381737489932832947460555382468521368372203187899118952513182282480458284671071787123478647658042000288296326155811418532703311025622577533512730908253236741807770856136269336498879907147488055620562317041263863108044836044600419564256357101058779945684262601217151636729711123594067118218576036094099567420986547387303534242251354564821388927090058509710546896319038473236553382902150214518396085586019035408757596837362306225873534785517037276434790813793775076228864888653655339606832082255502832582139346056807842286120030035742321381735952818911364476306153277619138561344422224721991977450965489288127267386297217654781984222344129820388652359825584109772229084977948525583444405622739494187617822506531664835707539006850918615386865563341829760078360511599995180059679224453561003408393128249187568112281451047295171893597875038014017744754966512655992857360813234146353347768712080326571076514710310161894521373657044493538435954583082353423137471903876659367620727744654521504963409508836949724652786536595914754499524594437332519908412445835584792235724515147681136411558638476868223578268423578815409984949827606711925715683300138432394817989111269294473366255124819955734063296620330516456928306481417889694967768665607861261120884088099401183132848026212078784682694414910387852726300010141576798150901534603860900389833311402544466346497247671350562752722240670654933988023149537108396261799732055076160327575483727725687252124752218015741027391232131603548096859686159516175705566468494550065868537381081426232137196738606558192707381827119547229614818716577114909433918315067287787759601199254934314101269301745480889723378139681189244116337893632664340136810006396299415680958415464734646864800129505002200422729357359409726262009529290982940886235044252746167303622622559203711455381554391034689425314979503648360204368430219900241374705550033755686026655987313318064578219195122542698070838068194214809477614766255499135914362705722448970621065677332822476612119623928177668287167246548219003473682094500453038014226167170169139395064058384636339382764559367717297659157835117982606398300569225024749468734642638497257552516964110076250904659419224825344210428759321512865174949300143250430469858682850806433524669681602908422702516032144070840483217333717861177669828044242709865742296690847796194186015839592293464543136311046928912179703871329423383855964735787111961289617745455958303548573464562913970333509542082379842443719191519341031565582058479155605498320472727821328305578693558903968120457222113265012709746267276142115186140188325393442748482573930378190659080880880006752631210569416436568436640723181385873933420205477289999546069558752619570556749883347793478828389716368447823880409570877533779055034571066880854601205097620362065585131436636727591670752056738328567384072756007177340154190430175757942789638141364404637510813138699604329325501260543044230122940892941543194407200713185479123275185090957147364275698604489047658199859942783024857325066818260409817752483184945272167825952830317481965434593545805505636437439784534506053424593211665984578616558858725720774423942629961363303418136807837585179848939644026336576105436843741436998074264564593135787449676769841022715870597854893399276725881357723006997031075150977308452907936610995551580391869005050571501508877537789124072497629578067050034285773513014095531475406782194631394131677636225790108700447756068569740385232441999659940208974275451344300204048777538807064775432308209653612015615944850228818631435684312666265086582935003509052624616206041128583571111556713769931541054339783016079827401419461521789012172091932958591418708079176122746322321729327754199134183098810783352997229205261702617624356416274914552448083200482932293960355405921908286693611145707174616848726387449684712906971051515897570973722243608733375828711324747270952853893477678639291064302167606167440906492394840560659934584286987170367554870403701418285441474459643897349429804630246281904026511987080280361866887355025735217830919383963929506614572087614750064556110097338109935896416575574562204892804726376260190215350390924048003597061375737945790831661537930112314976261737089903503338709894638147499669237381394937778261813794184510049698357559988550485681942979849809939814183680503768592230924535676101873350294873395065634051637658357604293325773671037873615661280424740104211926885319108157561683732807486392068243726827829968469525210135563841295435124393893101718626802871508588732104020647793187904879482840608030967135973926556264544187362493870692429917018851787508561299895806731879943971259281046473923576512332081689243488192813144387303242844344172289790035243028015716347359551454947407551965546819440692933902020127616370129311942994677809551445322134192982905182911302773995358105136497067803675679173616909367179471115515294912353112253424388066570790416667665518109462572425592441195300070348931974222402780564237382478976184738430218341603735220815145827061355759211728452077977358830236205216381713019054587148691487602609781471926390991339799015333034827584535019997979552124318694122110624224515696804875996713819163402545240285258601037728881477328565807345232033321143874351638433866795649238712097302444340448369186644132266532935134026532499144866597669018151356695885786377204194202823621082175057197957921049410426080576938779531275023727995545131318369448220372149106075698836087880605609281952829085159643430716725555208140125700272564131771190409300757293854085911763698638953144095083009409812294123351180738795222060530777800105245852433490184033956289420442296151271748738852950027917648427343612744576195917698617623614397012007775276403693684019132238634422634118668637837779847912616931207519487963398769034303169679791609479931301439516294533765123110339153385899036407817633010726243534388470205206063490154840248825181838076062407579150520937422695202837394703551163583761741647962183582595130302721920496154788865143470594190569212505614160131911976844676986266045922283214851728742602391874100202153357174610395728955983044356869621267588077360739656961339380693278819610674041257766383657827306813789839573852602308630845256893152544063811679651414874517810120595214572202879252699869240430595120663653519837429133949510300824865035668488937563868737202449328659171811546360305911201053271487556892793254761686485357171575639663911627822692175065361057444454121906628602129323203327508834756942602598294103620723458935359051255448113681508755164337322523768072516198073997566588726759090096809836017541570344519141801887756270960183670767529137106914673812380675647552503362049880070685121402193065452363430765920156613316926384743023394079662467526314403710987377637981473636871868317688939311788977547931936055804562881135353426317657199116443916934325411696381527421061925439431746057899877232642107824693452013468654020680083508746950555165353900866408860504262981202797373869748283494258448518034573905371852965576248121969589433439217613296193646165691275451604354885386362289809046612022943209209544672873917702121816644338247310591005882469727467246091328584604493419664432821270545615403912508174004745255976411682519115045101338536822946013015930422908307613942330682794690004563899503073571716582155006339009662413324811970209375003169381956653051135690667583141402514429099282302147924395042159612996366214503511584985026177879821724197374795659634813432573114500381630870267368310045579670206519563741058033731049468520250211491221634149339024689797658259215782401436127902191188266464584117132142535585543370765434032471368371069420085359689443233509966405431576213969329976724274952882971377793524768931522721236672244876426114556610060494916123710289385423091613137956266974890955851382552319190458967581270673977401578073208445596520910619578683838593040527261689208185080290484743789776351755295812546491149376461037735151940478567578431194650950046093110636170775053793052767264542426825293872416499440876897256639124949932685010121993829229277344728214565090457453985947516536770855710286432899637577443380360550600303696605402087368614276235518666647644391467456340025381966491931573130849710259980601373973715603091029122293299867750393845766528290501865878844035305065557279359627204969062861585470441407353938340434670442998627298951953817619733971000451238788367781712666272837733645498661856193323723778014427690323204280265901679443886305193349207587730351760720292098269125698901188372254970235496686866658373185105894699937947328626112633539991263996240162874113946613758932587961635246372264228712480583895021998878383662905601581039604578351610146858079286442994204431027155552382191498155975876352267107119315957926191637670055064563595158227687401508741826538341720316045336879156696732834447457375786492786308783276865925823019703633919765811364660226051823597682173047585263236261580331238447093263155659198406598230774871709516851500855927876992531720043147793385707234446562477858692079905751517533740940646569521315663026577726199075896956619514187379748480761713525210309429074193827869404230413095636797505317265804199575830385684352155343263808433782676752370965870899903170242912049272377695516867165536783643441641955929412212997547839170745754551208990483699396272679177116433000017581972564744417412284448213937247050053913320172712865756806863757863103394189701115020376840895608435193577901987326246051931115881404000560783722917690998431505104087804115240659599332295473634335956682272562120314159397237277292867238481499733653624015162608586747276662348622530937508275274268798068468839646340457516183464362404499148446861353458274667780880335411505167355761872348722883985174499038614535620988079217197502476871600221468835309782979899749835310317863720414478490750333446974998792786520530874186537826984298573901166659294794748022942818328242415295635722729798075524490134501893240326776103424885284781283971527627109291920948712998021356707757515734687661908814108419164020256290933408559372428130027575719002730908479726601092934364708443777123737534482318263962810216625751794230858873642122967894514122306776549203563013839169175505009266041182065038190132104537578016116267479386124413415911561908653453001043134366360703267240068321638716227769437865518152078896931649426614787429447672020381438646793886089700183828853981281969925028733994605769452627268361966839142755937127254548496193731727013595397470981451881079939647544572806933011102976846616888967367819787591188369845007857085718422242514402536247311838989240557041698537120262065688830211990550298381101178390212795978021932395310699658885788677619325878219556663695319384861010308291451938161534361997908002204582276668389195698096806085396287764143691263826475826424570512487546098328297186442958001837498713776907766042824161896613631535163681050545159295542001844916890946516795077543317056044171616587343453405590030529056297648654337019016772464196578005234465290675798312169486043146018068429615235072059811210793436813191836131919028234874332868401969108281297086529118015146306999602743458693294709322688586261891087796960553019197806028343561300594431346020824321747365896168975258034896711206474943415532623653312190498073471491886288976306033031247478179631541292993503906661584121415813293009252888540973772473176372487688992400049087323119861401184924219818156726153191155963573242271281062719693522375504754854424679267619568798500547820711499076149422970848824220797434397303590478827678532938607994333274319327271329192478903837515903535882940812706910647905874078394249648494176956723467742701078134681139976015711263506968583127037368247857897553656399413836667664294814031165799361942066119115618175791680176533714232883644270509051865214472313280232356294295756811398893262725335791383364903592659242896255103935800226519814988836858991270868812871076560104844770259278352892650107553807554592834716484807843344234132409931966809641088723961946542099623246365526795374906993618161695622875512089937145471479494736517982732077793922765524838036615447051801255701046726112307307179063406571366916836721406615302219898462046304009022086658336759428345677033439134851113043168918573574156385705898452055201683457589657742155931660303954799490273071648188650042922362816554469475552890769047652988439629162863591403166325226434679142669827627710084244682962740356558821362515971366763002763828921343708408700588299344051175433053049313205950640942139690490698991017889339870151821305330620818696456889667165625155945405037554446384876790567685198496967137380535732356388788013893007968111840642499104427053456068283243487891729288649659919791736729565881327040620517274930308832674806580658635557699099254157159569282667246365662269822882201532657476171419269450802075337508128334330347541556804372801376956183869480684222040395181711063244326064596966303815192099284984734892380502769463614915316244025435982757934036133434783666903089679283514183321824766738032778523704503319232787480342290162783859424597793815660319024759496137029823126960560230428797578836727264196270574187362874037294428036066901346442320245849421798840755130661691854393490436232223848240280189664771479905815301039921333671071717789676392013340148373865317747818874604390558398471804866307906296292688271871325936453889491809736484291848517301157253572569911170472925193379549572529801689354639633796847410567952086299864645771187896656586058146033765803434165128340881623001616275198113003416750292176210406433196464612296845552967958588080551678944752793620260880578244594973615053507592481629408982073643415397635578919480938273989468665220171437875685024590285279893483840033810013361077519021248999344991319975986068751455926618632343942955466094248000823638839457888218522141827336826710517224144678468022027178944376770021850565887541838652954632017732089171031192099687012490884592660421396954991293228391565986239343841357873324368159224198407481023914419218059095561671337360797947681037266368204321286513200512243938200240576667132035955869093512607373846230726768478519859428555409376618167421338156203140506563319456102791644642457395319050158682492968904525239327139247142811025651096620558113863651464225762235119336802292621500087777563131041751052334840206392947218694045757778275226885074088372136070780968739360753572214849511042153043135244868752720146869856024572506977307005872774876772522276002745295357261143787603821035937962989559569245412283864250743728518244005298706412158378249293401845845853926116204047454524861926312084626584180341951250662726930760123056607312330498075310083405734974962903779516473990545057726925209219619649094767654809200677207504222888537862904702197237704011956027716679313838234985473339261430864832829437581593184109625923332901214174485692005926815682057033499749261938196613915647242064060959778812883544592366781511372825137892841848825302242730665136801441125565782146518692300971550473271948356923196063934904785975038866093197055594285061360459349092613241509666094898104061193797767551465977126246971291923426555864909616022789035391142388040012522818860496428306733680924550256124106800865322679560243152349145331855797830476380085634179944703698778676772442836430872483005862932871531307425602192694714608408786338380612824939555676037243214362367355563771157479932422502585239158506204957451160745452862047385629657319194204307345358126373191719474367736319501219980491601015944997567438852108238655630712454432326658720405808300942857002875677312482797244979578453355241238655775377937683297385600586802141796880777634249193617624832328383878190201513012845746665347371968525397655826448261271452701891589494731272882956090885163635185958526988323905080182006561235481102372631591333762808153976720094088950725805447798281413542198664681969577583627341350372521876889176936535113518978551643050050484900126826415117477008673591666994895199117717029751141799251280703719482137881635431241208565999977678776365609384140105118409891493133837471061374372237161605459971662328219512739651887676706961716701254937405100298777766709422083783962421609092047747949512805628483220582297500910136937111556545662358498484990584718954247654753334915265196378493698266436807673559188199910770722874369682825400045951377212896553266155631086074922050575243462141195622069973561457234136739558961961747254917490801999172359358710978953682673899628159842688164313308381677948180443621555007539767576293592097552550444608399233373748021868645307439680231643656954953998879130300100178000079644977945372009049814046430595041554029420385282897823702003856694378686169241208384105826376404194240948555684087824631953065915046078470969572614483045141679718112261733253324859299479863489363350384987705421520407075436526284282365817068488026596732527982166533103623671405074802229224976201864808238665717607597564195542933779192331447917410873004909256892093528716417824194820585870227995515774699452503789623991995036641892082664814098029919537349375865848458650082549949304085005751680194676800192396253379672430614633025150704145372076157014449558971317403071054291247917253949136431380190221782528067202983511163352707780297794952402001060349158667474062013962542292364160995129156180463595325535363805665025893449979517183101719486623361040188719590002763804407207683553543899250992983898675463066450358819831348273862370754455640833834077041254232698672342369524638140193304169503361403511359451157372258580906157294071204280826858479302261175424412549605016462017735002556156285062164744218300855767688237243294007018380544960744801618970457774551061558139854860407536091567338422305098281439798787047379388589740794524560025877898931333089992546962817916445855984357266256809481859312407203328514195872543014137767878340957291037072757965410349848317250241845225831411687948903714473172785912507290449769543789583263330633025066925915714686856243817594381515679850764160902117578388199328701476550811963946003793447696432978165424086480999605668842707202679488811686258128019550764662871699660164431559483795064456369802064468479298150575517167795024381297181211406874207728035268573425237588439914232385507581219046715832417009916436249088271951888373448111196497972049656375489346679775409733024290438515634225088070717323267825745990110332980224483541866560999483364674897322877487995981798145164226839679767450897576323625193891843433712640984299497220723431218254397464800713982749232676273927408867280116845041840650192290549855103241051052713190537819607188507786492470413016827600490669332632653133907662208043685934081040380405789329575965351177585181514125750040441570238538904180155328184285807300828045233069111781779807083085218785698786683866318255424762176403629615379292347798682455529364766595311218821729026505018849554700356399601001038041013569924146109179373616874199617391944532640534842846755829714403954434833421932449528898232918890325089192345166367373127643600639571671295556792463451117350481450504075611111138491108572841002626780004860778595505701196705131230028578052397022904473672312727211422264978699241127171998690400069666140944719999322179672703606992721085823525050724999219521112363593484511709049003145982119457756430761300554245948364501182621883590975330448705709866490113449622463999450559171446068023103605977715828750502457903620978042666154146691460968683626098837391376621746156236277723463230706756148302468005064721033154700547747490233023371898638120226328851704502648450377316625008082205972471344648224049289933100392170314153235050188792507027177584822850473514277148820586524708666646534121090472258376989996911273321074794242709415992834731597842901923521227067295929624928810164749530823653569185458595731114621477622495061215952259266559440767215959944213846288695526499295383107173808385632934332865939111611643834365585857537723518662647860220671431310244047871713437444363884276729882508428897979348525825340666701675377971411860923202732698626975430467903657384022686241757595613527271280561346160719436175548128932828800996696865492146650700750421728587642662402034073261705335199316520273435889916230615038152291373459871048321696523407971951065304563876769687769513544040902057149637928792320773942581353225084222911485172045791966236816620992992758616280896992391388025614111555715566027200146258409554837860583641856358806624733672348548537654593147339846340627505580007861163090271401465769839353829901371853959620153732540302965113903534475200428532281807428277547489148427716231798058801300035897970703670905202581989948646787672359965282100958357889427345012954932884546342959448972164910832741570957238503397025678674191710875448463070275043797246566518096424466034626821517836899111458883427984559662641529027549492349766315653192509914480999730170002251065395803978023976240465787279889288159365960687774438438167584926664834535468678874327758084499570803360999020796175157228193599396258385914520151126680445005398583484473570501257884019985483401451574783617743619193675248694146251116473265539737890311575538048819607660615840304734109220839454556049482729087166957228976435372854682844714427504630864122707381612289088911909450530067687175556679241434631093599795444770004461546936501108190138972987741988238187296658605464663954772570795466080051969846532968914281011055632639725525502179203750383330875273106519985765925203726852185251114971993758809520781949648097728830183766301916997679807491171488006481849910167051484950322500421126679014564483579406463660552113473871729777934049398982630848299817366701163115387360867661742750616720689637094551502473020812274426369231864071180082556344864538420548969328042561052852386990798856324509232661602412362633584729578012532278403605572622587324169349269110143102926369265796216123267111704303107235506378164843699292072858274937689355912470213774168694225480961690779478084230322397894298874671076600384917973361146198022838694269798168717353501683320859691833707797960058634351698092777980608413226431366154779743639120080258436669994939518757170122079552193240588754272817797226133177052649701728875713389293654144939289678570494999454116529561209640746341461391906385031058077942539766215185884481798606058590450481938769632638051420485816266709668958492785871512516128579885711721270038698193635527766792125190523570892771857706249382282773749276236972807427279870889042775253846945096852730420204709995642102769823260753886589341255708080626126107050360987263328943976583615239282061213462261234590835435969488944760620776033542739147114741092247412597607338575365828126361797965187747665428713097820742026852312684450235112583699558062452821459627026247791505182188766183087550206066925702172959160704714008894501558336073268663368068568163067278781046127661723771950151341039478953467542080099010709368722070557552869725542053275607753227757667134332967261171317449039901628557497866363616630594263941201445356141179384927752263005919628953460793259776328535317538784702859886114085043359545906093104057303323674858865753893310790140773759865876596324229813475645875779564883721655855503396640599788564637399414118621224897465188222398852737053241087853380298756190260495141959143322498541009891640483231506917085132459190994348407397804271861643309683583910432603093063406862733098105454124430585968727847749712623591573962355144759035774441190423820321519001117804512901901261867087482607637711914129191009781574478500752110485754675346305318136046630356731742992975902671254251039856975589050986531052925353956068384769731356975175968599246915551535965734338932478556097620125185275568374802988677819677322549039145991064584869809105738602143266220497624431875328648107847349235778516380953755081465402946774260662347762874322699727135514064564024104687908505901733463242526511421678563770242807420675138329886872125325132180021610347421349404182158804609200966389212688942488056556845883645531123406049236160641321342672452913218836680028245858321124615303656290358215810177134073990669873643402567370367559743797149719969596616129167942235457708061640514141742519162479459235528131083955574809558005589220082099466583538093637477684266551511770097744702300297693597903405942449741314533816867437455828100469312254673699008587979655739743066803283819723005369023490694103090255419163038178237489890780794155086097663094665380964573098166988533010621269198426504501437317611915300279146605251103796266333185777441525717024320231711210904164529489766422729314228485994375628407463419164367784605585286321558103480165489174478132198421345196738427081912865866535878154430990667296233424445831749587774073498442725605355849345460950662014472989428210879636691679907960208965297286556766867588193774877079858321593116284256106032460396624777916825409636520592315885681238027591338369964959041867759565913157648503421860335639472795580723924075511297870928751965356410399872079854200843226741620224420284546156257456507647361155402760048662158754459995313210905671129985392072650200446863789920075108586876892319578626098883603745349021562837635158254796847858599247083074826208514103830685262845185999411349917554774218486866608126930762144598137815168347368560020756165212348719393691520550091910769166006870716774885978047210417909191749923845306355137625706287090376284090884098590602452790899255418749080908216103029577148219171249993225074743395448165042301126785858912055786595183801382913740070334326718333840757836674665816778818899817562433560546088696172445807521788304678531554208166613650031237640345830547686415169050071276532525772466513586804628156240164557321024137984661557417392583176309118160332260385222432941811763601499010832757668683366472093035996954855676730087036625489634503382293091231616357210303281989800378319149356392306770082252751472411132540984928878336495542332213634690003870177133455585787811188664207998943256849002714430221362735155207648553640376741095292504986876852071715931928045834853124948577734055264327184794943730935935052630295234081147882135905979111614107018503430779348958206644810554187076546554281698016958869610478384308054768135101648559076837958081024971566008953534158325081976459008050218657521072685586146214064826880716719782397557541725878171472893617737531312867846150772703248822487551580290972546582143559150170254426061661556121454243116271353299163279166089768139510500075680772001050217825506742759065287384247923338012226262812557275360776029857685678462616809264276544490925843879672235891749856571285550620249318872230563420467362804300656277392321816746950743770785328581778008686868625797562268449999023329514288843432987537543874384718721830005607416818261151772024431433713013683701721654516097831231638548490863673562204878907385233114900624758528811469173674238395429960212085275410625409967992106080782590137124646199163882898203993252747984670829280262410456191808984165828282416550484625576441273362389526409679898301820113491891697803898674035037695209656539271302598924619595159370347630685032925267622204541239881685377400983587272865264137850990413707019978759233217039634909596518473642522447348413101138170285017560878251366769416263050321149885170140394088458001378861270981845880563311637815504767222854283621500821546661948318905480001204616372667314903724522685615191821213011162284541829171708086302936041552034663085782268510657578717173203744317832588068299944465484227604613702299785341468957165797271155400443296160677848562416203122272674222544910434211162730174376498787882205429670737563218932728983504315478846319444888141529973817093005320422883463110374972869977773287217076360381341264479207175604018538578202615509810367662688310870297805834113318016370924773274031624579515805522219319759152354072109126249864272009875859658282426262695578686501649252137387577220158227818471782532145905406595041746801832331475667400347272235213253834637482155174699998264666674410362188932993181487437387885799847444463032132400461017904399031680291059253971096417633069341278111918068118766051563281397699146466011492502697874758861678303664981833414121431376908780198555359811670521261959903349084776090950775738288636415930033619478394833445121549533972334968997572267649587383104893053227893208854737609624539730417694347416712874222642299094813613573313154841190427640827362439913109055214419085461716100336731721429481529255453321257165091402485259628364328525613909160060435554088350327568883957260235842562341986236270242458437674469780114967232554058427709411274927598720489864222010274829951050922106899607537782575439149810453051006337861465750789113075030128432060832658550188659357945368942421191722604281374584508658507726834160244425283399985364291832863365506883775741806882444085562269168667135950118411461856591957848131736007657315367019016177252837252748621983906791015981118210972211307193372709315274524976692600140423340828533745787455040464271703790055757223356175807336721907989026943820517561731933397606621215282930531984533724808925361889527730536661780495198176336702130979815520912083397226180413656752096504342753346337171780017346742198739867939730931405933729466061204711167297410490091878065877119586968561637997835114251307048706167117341153526171339398082579351676061744578281820130133272113530388344009275639437494354904226557239281635338416439561792360637430304508568987444371420234857517178146953721267435037569395933675227840103480736073204417176369991397588916444791305891646218680994342142780936136747475841210927433616000956176540918934049929914857756938595014343945246736466323619985890584213433162205103050783822332555443235878110254999765194552481027504638159044719021584238266712563568838020607164113708206561935758411564888971484423688000088434304110373281614626512643782885075736257802239520661929220540891262760265179653715498933276180459703478114544211193728497327096289671176841273828045595572229529220152372346332986665545249807933744309806348484588483427108114580836933839471742392857370262053140389788405848809247337717073767658697709310233047710009496671589161105709153088064821512965870893585823663523144510398257327268551285145146720163845771945063469477232547707843631236038672672425725789777457178168156826371990427216647103085249457562280830913188675717083283042893805385015138409410087215046344828058527217510545445348436764557693180784571776285552063334390200153958034154701045825339905939724110708348144342737406760793634242466588391001724716214045687882001134562556464632586345994466913759942731852954773122723570344980195439905239278082473666656868772254068470228275801040596822990197740450494319658782079013497622966017071717996360278796392152664849346074136512162229985046685438601343216450289445673405546402200302109253719505651802702583541613105150215823093598185026615597690713374567334303373688379434872851863117453019951692813349001825474348067845686507579098278547274927668391769568933801661502133932285470328494802144158422757799182269939682995864800284386928870866544951587586437926413964703252808624255962218530590158508517173137935030843406400548764545028324988136301661379728927571798283529783310171485787886562973617273919017936712350943943304014863903757338982935404145097000055340399672455692684266782040400906621705502344487524174257908677724670391261922905237298481621908445630250577605879042623847610985336239086566965866072606104803123055713174031389178261474952191476193861118835168426738857405493159021639510423638720099560018111652327748148320488000598075770251691836923350091255793201510031876940950833048508397474554210416114340764418545959069364123094187757765528183089332692246176828952667331591578608516964111049775117437362266025919045603470936062393864244797066413641850986524002683378700607199687845999471160050850994208764158521286025772316800393384121552811716587587341654930281532610426635875040507067420202015891026218653555150610271460897447805549346343180785144834581977284570035751812682700658281567115993505712189623260713406536408101378121020988344681808414256607786868486851876587317224417898066734103064698178846909522372128145735717779362477454259680037585726478756017888492896062653982982306449134067251065052162006546716520914179021751388665417164880063114371748100112371302228122087776763990988515845781755480466267290976849373072017744010626175034967596418988559098738743809532179098223875675104707850211294692367968759700561587994696134761804407709388711021716690591972614241656800603758578631579371947305062109038427572816976291760988667637624309965588038038566756345502867582994252262409039764661101674646131602655139369577423952118043539974678757822916794784792020198540482416326721755845452264381711929106711941756037174517809824504102998374096265526730723212349321365834433904489616927635681985942003386731554738233048552110922265614299566080264221517396069122375041028347359099003002277759488276945991316832442236302691667318252149544882686802690733034772828086547635177620747122799248393525754525758215128223933989424973817715203771552548726513854418151240150979628588412805437677028324736197239053121201251983645589579150406609058024844696263298294983634660134107838684645048300297687222738829631789332373815984628742609951942156295104548833779127887279234206496436867684678679381856635980994949685778517928370627636276196546707224767325451212080080348719694862869038305053136749458842832958019748922751728949846876575997311644657596575975750083773339295935938899735647908684490042925211164912890168857200110861839584144344802885305609718974795024372229008420228429542899020608128702786592236005728097667253575166104576619714373368173556889587766630417952762171515092253213869330159674104623195884110625200792927901307861874880608622099082208859868394927221731117691218033590787780507968164015162698078672087111230297658152546821531960332605960894431748278232701265880190896562502836959715446604461439783249046224128933061418670363738618870706848428472237134320370866442888883329170161852361236848367908217714464081679168469833082047054849027408647520402648392751767825008586801153598268591530089373027613089496418701303515422815936461326928564879289206323506244878751450215282415583824676376309253385676212574912587427011518441213416218554363230161873850185851933378899875310312499663533328297458541433377445012885773346813107237861107944147233797541525391384462096311119361172991429613713543969272349564771152268496597277157543679997640852133351626433298595397893284052230952979329857004257959646536506800820548383578205677177542099552375966410765117850081059163891986483398875827173527190909293639628606574983640308976370309727423024872755368735269787023830766881612957551907232832051496034845187386909164907184146884757371737049345191538484188014087359106805099879201971021282649954297029835882451174477855899089291708599559203209940447101426009536209859560704095980772459170827196688355769813854805575065993329278585168249857820031757386502587664170937713063540475279657681446051077000312340499281162710162500299434986561841200981072920430760909567415630379563931902785119231719749916029168281081473830937427017771609946090419970184929397355626954708001112934491761535420246108147546938692620638977196265404396764726533618781789359930015994094331424723749545493239534069435139447800229255917571478839262211895714315161034535851846825423745472111160814021759304023518436869618748713717574955745895192065970087437510147659419111877048232386032035465959322876927906263702025637358856534283837099134579843457904107758834372868167750966894337300052415236708447125238225116059256667842916393024089528999990483167344957155063434808332001145718973046255010771870520988848878730444157381075830024522166458359484313961981539748208816441315585995354498708862830047831189317294587616570132530854031662072043302790022609641296729829088954488772729116952980114935089771695237199379534585263698446926754385330758287135720398146125334369633139590203785224816646661105925477747203737267698964892412117073270208652509627187771828433176225993488190590786086163602837837443602443548884098491916619502366661600863731714484000662584164344810952221154151970089374571856822051109359875117719917298598264700538322620939710184986485964448275930999486488640556906358649379992668750319849972899422654282443822044749487082554986314354371303735079861613945937233707867273366787102830682587827805662582239166229327757350020142038799035683159644918693815169728435940834134543093683452221740548185704076410977060638164998835784827416622499854174001284803509537772299984945801716062512270957750419835050962213611844019253977491213764897101551593291392743951543472410954858027221887636257233541483725998435012800306014819451126406712228347557815268755145685466841905504795263089463807242460453855401351625278910117107502775054003986214337295926018683206025469067426270442346706518334226546360710688066953377542658792801740260098175833448816743834605617241705059713258595058349668972504741030882827252164139912114193380826258488095368459281419066897850901516340796745534804744290500564501055180615489136839307094653779563315074124260741272230231977858153302961501083699379625944172267560240705410944675715921765729146439054706008223853458187587290951470892744416236749730705257603521100115656325331634925530748596670939308736017671586865465348675519004923316141631586917565972143740340870878427857578809440603985570862289184596554997113110698574812527097094816544457318409997637185742697311916402178863047779160301671886181200819529227424715079468687486491111031797844845487140957775480018577060673421492235362205528693509214212601582435423568292735672875045321783564871067830755719509694945845416571193481276167174959413076457400594504999222506411496979227144249450430313079861019499411098904829280620268885685544927411811173862659084687760034201904359272906909599529790650845187258516852408896538599271285939822049224980179900974324809100988944535645555579462660723486043306663811640766680476922629692784031479831596250797744018030035110614508158808028142480570475382421325801673408294396729062008697025335514798920373466606572002605958910725521363723391583781864758313925843656964376783735533536165098334308577117281125003395106806059291312515974526990386008808085761421398584116295690215983624379567098779759834742905476625180791094805814199539420608495098251317713806053679650700014836480476289155170511208845961714374427654184796422327718446325994010304380876377775382513007470583474584212169892054676240201776657985801424238940596769296612388459032953745505386941821190704054772335565012644578003955239103656011185275346717881838920445384038816717357232466679951717088192371749208531632201976510280083702881805020845372111588181542842268416812478438402401741641055776815660639563523037826283079147520517724797822523105666261922027178525481161873272625315786551720656210890626916582499209000974452158424478264109846617532109489197176647007089714047926265527152596039774435782623214720789067544423897777661954873952053180674764009617698176428163074446975467166940322542642728004074757614841866701953022621803712895060503159439164384501228275361172781120165705835055642772855829316756431332016927693490859298642280091522702494927537508605306810670049270029042541662549506247187235763634192230357735997616706763102048927171855530165867568614477389549356047580375965762467986011232241708642381133302529830702488514295964487300199196873822395201893900936977611968625700284996997708441402084341364941928979352759311340268134260851027559720031805589339492120309351593048668826477652570305531654285636326545570235779466808278594299654023605917155351325526645316333091517252432095817571963869541728449840143305522336966294217698365695087102234582540768440305854635319295221907841667652636109693675095070614952429055332239821123509457211444293815512293484353738124644926505030488018516882320096180349239911598904076342460724006145097185775920520685433415499326619961888363878247161024714323674736233148830946967301698175865503154817441105142005291506680891346827423006418080753901983002342113484545039979659254119875895192518328833910512808258717759096136952581383437026164093924627349344570207847743540422446489543253164129958954263523352614934012315934132641332030545525411973789817661050272266432280356992423173552862752759744648722439692814189001604167185728455180897533405262892845176097236874387505085761230488337861729974198099954377012202659683374014926902661842251764928599991178798019506867854273491875327940999858526261215209065625704437656490109568127028997001848280271239211118674464365859268224729801589280608377805051703344428574513241111506593903823175011849033424870541609924939185143178343795813265237559187963692586383034367308102431575928118696235052876964360746125211534640308173911020926723431674463875528551544458443988977421027110045986576032628440033391782112665261163799291415750776275897220692865314707051588662969207775887105592943362022587630389265518395361658732922479929990356944994051219968611729240495800087870775061092060508392617699988236888799401983580724091636215837703092571785680074378553817625876765708425719904904368963715127790457370932805032606044990164597662686331443319412633754394266614118029079526165411661548513133508713539809625583790095016727553076475305298321181582494549307264387800444275893402373503214321769144409266666977024699346160199516089103803008323465179256406467256537381323908505941275954395451160229430403867944897686578727936142715050964279794153830982297430786373501996217022037244597418531222527593278357423514047194274175131473725982287448920536474168282034223017873956226421921551351540736316116033223345041708324640659701793494049598219609701059273899536036412623278733543568490190430876403201472870352230884356456006413817563942532632784985312307514450331001838006057837761875014482321986419189119929618250198949264535910475677471046340278741091836111008133734783803876256812426096582939395049847577379282403183830692490975545646066022046521265963075962873331931333652650321275642268297840728183649318694817155738803875856679297240047963462701257240559972184522100273596433811392453684337190401553531954292763604187335130334204866226019824977500783347266565640532559044414080643149130172831536540386636432795204619151256985099925936075626323989930343425872781052366957709581651070788784216248213800547843843239185438055160723852727466007662261033705263693333939838853859355332745394969396834717865912518588553509466585530671655744815603240805402258391182381222393147313563056740573372740239813215505995358612303426865444341520872337691482150081560936943566403056765766806569480777050988365405941008256038366473941753399177487502273473367148263717195380397072992441504343011221537201158707830755838066186872032296043277846286639811535869099704052203901833631610949065962665491315831933837327200409723530322780565544840868514123797207531070452176642131690371880567012952369969825522034523073767829323925196416887075440903686671407159865073631364181118419130097405734136048540200512875879483548907246007180109704347687573035664784059242498378705517053531254130908219033902009146887828887732262438752862991766396448419418610474192394983760571660879466537714171835278344469761643333506414365692208331846292459319912650878334687843621484793276904522252632811222980777026490121395109490873058518366391213789536110438916540830352205088184627606208805987579849100358590540956686634990893782660131266150962807060512610834781141672786918589674898912865186703968496598516369551062263339493360534699589121658218257567151542331449762487664833195060041884435513527327435410953834300413940421941027908231559265862193206169922506061814188195074864518714204922239676112881411658868779532483427574299725465397177704807529307606770439617065391271164971569538749970018229353571850414933633392757892901144480412044210146720660993508629403337272341843631590737702116980525549322162056022631367045312126492668422118066549531128780458663245318866682462412776138269194818758771803382213000940050276834878780922342179831657948356175140027487854698894021510379171648964703002510015636213763438762120509770049028887959925685579528345734560066481732579861016297875198717856716649565764402159070139680878893634569199427625374575073261139497917046283225141538568512099785078922704717253787053037017746918883552553648946711716409663784243953767708537161191747043336769628312158984929593211335219036724158667087509314578355300960120381379815186700702463712318943766243734165582985312149665195978664251860944989698557452750300925417650922633765887133259741516740917449469653054551137882047081127235907388092738725496123396863270820536094888360828543102399025099487456640546196612820718427891042081405238076718315487103801227802186557917548722253891621567041859530996406650800169555231018473943752789434887795475237786155102661117149054112939071518720736619955611209390391442644462700705298511795320012368158383818718390471268273978745055407665607610484373176915570761702845513407927022347203988213723363534693960731866174827869285614651123086376526010995790223959594900840351434734759764419782485603485466783460838314509830524796326054526632398192465318849149387022847750262193177119124932099831413345407087019632185548212162709406847428992871338221784085682757601207667526667898047397461165434777506710307435287203608544899904669723794224288192626370704176933813409335466741323091041604362971810817032375303939360821477373726459406025432234628928344295491313252637138974257655208903040137849260864866435842276495894195849095835734368719784778275773122649353763626955753500928156197621789603636692073686926711452222485931545466962092069876809693367784311778256723321227773268531253843075595821182553023760461963699229901035768253096411157751761088051908372986057694203734597958161114944849584508027022635436498245497877380095157192470812239572532257793246686878154322884877434633823630885364821566449662450195845481016018570832093948711986124297587290440633803377536326290665157018488793459001709590290135295086381367419824116054125979035585326925743808399637913587404643123615839024215844709864060279116550125629430319630725450830009850015898146272103056416203323303834048452029810142850551606414458467975591057141121452881674011687939780188525021371355391851216965593847514250671354533736306253680519252758358996983080276418677017492225371615142703217664938963141100572437329994871894808380951865370710351190901270714253281009203494896089582721281936538880884698679869134495801601733857390299029925905356123236305485093379780964139480888251104400071582578117105602468774732078036166137116195117002767128866113202317892112243241469009214579838148649920206414776803895356997357132573671708916807676958163276058755423494228752537984375189141192130862299187932177775317940427089389388601508137180858675139399844320614127036965513800339883825880193352655607177314131715740189783676483467923878995479146988036619776213213081031306368013588868950722901809032554564435796634819063477016872497485376459385391594687982956150202609938118193529825471986714698111933660619647357767330187477806923670065822110825128313350086627912695541001269633181088599341009761030359219127932446953551904983085271519711292761297344088507867867618873015606883942952230534804567531575424222748174329188628349923956755106502249093556467496032402771084757577281680624342965899878213608397036571511091608921339096693528868752895756670612559925263625069368249362808549412197640560984110114067268299762573284187699249657839352634627777242587196526072256286012968739748935786116192795779973799848994783583720768292105458867115140781392685713208328644303263799080496679083912187785391940519131964187317882538044335280103950730582765978887698102269292000947986495159798938569471574216986185697693831481743787853089137584132268705295693366303958958363625050866014258330284522906670751380654584836269122166093421320837574404468790928881271065874961341099768739569679147263243682246552707289250226939104921933616758106476330300184693828536793327650567289171036156855378658214404332495044614367797296776631503996255562356794308041749940758194176161652277860531748980230429212156646086435612171484351161432485392283903333339144007969741974545280439081369622530707689973654050880694479089522691275388823127880243947844607851857914098294995954669546212325431582075948673793683454843473745815535919012071843044320232125174948557186744169431080515262102842692804293052500149174556187368923185215121371074977619867940489686910675426443044706219824503082918357403363438909516345450779757271611787739660016058555517702143920864455659303696837995459558814014019718250399175632537688346525169329618821618539710857270045818627724496490501862790609527497528566933495764636347929497784979304786922121672462716103534465963656295904455452005770786331442272220750994957093795962881979998641567984642365454016176560770439303422058263642166144479994719483851904174785919154307228031935326956287688072182574027796396165809712193162456933268315704758118992381397833830245042175070862157446920468937013341692467132793817889987733535044877371722934850743090829242560241957709953082827144288122067865311589977266398087896676286028465316037519857236556985992715743086363314104302472097453481777668524057142616199345240729070576094158183575898341341458645434433733536169732556719912303856178746806515526742807779737590203175562234278652847383628530412763676333635624398474974789890352769670268478572949324187643513252885156791688592169704771653342525694306198793648836757251944832929871738040924265473587768219707832803634023016498841803030438295008178547868991556912451499116344301715191891146032215026534949253620222959000540171926999730106310907197627654434258134595612700468529440929031490091250026640586264424356773115039115636964135041449899324359325544392119875057812617941202134634083770774214833055066406668065016198096390195592605892778338659323115364104059024596946440672617483439091185292202315402942503162162150056287513501610900348087075531102163446752052255325114157502707605262953763606985954814457467395181885178343763663131241363888442971788034441512034913033214249195540093317234382984226422561652915472080409882978824999265452191320172731841581795882486288380100555623225648540688106103788298712333723868713512298500515898379344063805629142669179524947433902767416433872066040472147734043547344831431288532257707794637382933871522652326693378162669026821047476760368559044622956143123375441869307307165659268180170671733657202201434499663363203937365909181315857488229102507757146563507926554434044563454888959297552710903513474448463110675583204329983471242396235422874867683706291443294507157616378311495712072208610808929860480507240169630611291639710690666546497378830671933291969625887953497995670708761327430800611332918372638390166631650341961429632674970053987405517219543883342617047472877936755605595378330173646935045289549496861716362656045545648493870941424286875479112552252477455852675636840192169034060971353762394801530633779419888969986230115945140461245446638037073036739371928314536040255271149226462499915464336252476674963724291747646081855805331815150355292219627895217424351754919520692652795425366819454451892482578518258580109179014392312748813692104109090490603712808128385130135964865958368188693465851596835466580187282086152355912907155111110536011973551052238863487042121514338701460332885483694686951585559959630704003817092129667311488731833726988273349219569610391254553613286139701004154582465471200227561368486191927811258990624471714800986446694729314046368468383600326055427591442236273920215222572547096761293481275108077000927221649334812575035472780515459330263467666209344281992890681511079428564480727993096197201557698801446028668341110860660821581090213744045900519405104569033315199886266794726714521118481536239404358753758287902450830141866071970867042528169770871624946622578786322526483854626673316030448162876507038879010828523516818901029115620710880015719449051498639982762255536288210198071054046131548581840429424568595717499781586349496677747495700484282877352755476026956854313885525818635308670319494232629872380159007690021555181393662497024469104817221307870220070792623461341736816923047756653242840413855336366778526982210579685104905112703788078565568128505814522044519732914555430394341915744315304279559117851850131856985082993586116384569151779617745841824782026903558921214672891668784764369162276524461602323303954311625446921904002733412728388279328489733509598172392891346293156986505590913313891206556238422674067033288329806083442888055294172356793513280512382221924176439647969098692970292850160592381651358438649623303164677492710182985495296751782960840397937335419482553717761322554660351431096041535461252184046245113012083338048184458979719752732746696204618049574194363899643150927511041819797948857192210522415722217485295300735910072747067510311703033456801938627069481208055764273148962449170320433349682995435884546558912619595921890311668224112857195739810896104644766107202281392755514209484549117827042329888629399318434837999934127997054855003502673559166914996216601157153924312772578578920998007681825150740280343526783471818889593785152009317356275042714184211937201592381912062464180482031735336508557118034758963082676829717192706838647321553748264373869163558622451541339830702406277467636058328946285342449510805744053162258907505276415424567649103340472117372180368298431002411564685388871959155241709677235223300306849583449430383810058978546206506620798726764241532387148001404219673421419766856638611301011485156603653512575758047260501766418767043442542262309066862010894456487750033652059073401591904276023232518358415738894578179073036273013227459658756833574027557051978111766383381220524435230563835236236445442455822678557838133507251669513430840514235147487335552119596844068956923071945372436912577586363814198793444944819047177503772568379167005124881838582443917048255414201834076357669277755493134169707679171536475064920280185089289044741386206679432630127504778499989408327474460746936994083883223702611182694391237071428888319612316649450559424486958007516179606556879647451903661180051933154531993447245823308762850119686663181119697816042135110108217546751773527261060810078470644664265112788843471618394678741402073685336267465443500245305916121876869482084225110878196621284474288371664414136775385132693778811128000598424498846011661857445826212781348186889085151490887847713498049788892352955008933290185811147835454469453213965394039556380477589681130293401823871778860799681017396207826021778511858958694535414977836757169005086886883546481214517923855559451490235673645230415273759885383722536049877070687482610353128815933555119267389376802783266943638729710528246297539749023046948066772068467691185689743493984225085524780417618686347740825212556911826157243523425379666735710031708666329545818938179408979203234676316270991436712222578876724371469734948315406928163894683238921266443265183726198613131152710315526637468765373856318641962959874900004251409021868553356535067613455993083914394683537521607121234682157449108940476724118007460899318903445647718176434548605862692282109970398226100900639205131076621914104863129414131984572237897477201602959866211999640481155985264098011475125463992186734764349551061916483896119749462985259046557087499590240064908317310778694416535255745898831380399607749157332930309752603009110730117694020348449937581092408857875422239947234454486673679894591187293089498355097011180293299242852572311180451194768538578731486061235167501339101395266457700965794684795079480563699603084291442002477496283514742556814192966229751861949257698553140927011755106506479173707242916731142547294542069213438406904255389274631617635805283919103603908882970686483255984588742276474966344826452645515054529145478517830311350914876001530087929094855019000862006967949146819555849110328140858424313085538370596165690290999353292415809459381520501228546706310895755808668618374385133449855510349824766846946035579461092707989367422498808947245845446201055628104620828810719569642314927431443326938655709684061744791255044304141100482972632557897723410008391251344126137233204754308755642951245621619228664948864787777958218155721797247295185424832032735759918639768185584144524684805146663457028299795224638870088071176720878347850979518915547016761254172649232615218210153079282057021999972786725650742733314261700656744197435133851586546516474672298506453212457321833158614315828863011921749582312083571295891740708620827715716009307097906274720294861080709227527190186232606600253625750885762137606581036997059581602758304525498130547343751035577819870530787894923175412891150537292203425257787849059519608105843587676069646602785830994398647509997124185668401797810011230220027606322658320243305146773408887348625987551850383657453215755745497470950440332778291682347180384738834830794686888054696773884798560547387162889697688429971632000528106041718489111105486711482709233736932125683690726681854156165155415477491697448370062510814201196240607631008006861784346638310288305796962944129396326862257280030025066638515625693409874420935104025290438041530071520354648863514537040782371392811053818293284509688223145669941382298219787903899994441430836606686133778686240165489486370239193090445244714012131443361382607088344742086700741083747458418904373334308809689719296910826810605544546019861607876449641462261446954153360587310880910423231448796584500759135716060981888644074511529676119695931765746175486792172095675119018357610137215302794315495461742507867333968591438063341572923747617117858470783819804842947029604951463994220046804136685070663874608832504547469277352156015037734201782822955386131969741134805210197810654863548276722454717738196393749663163365217257029201474685239499024823890253559237990751082179183677302719775108605982475779881298370611342150231236580053899497292290677827246914381494871706563878774085138237766542101416270054088656142882707164216041816127957578639501829199515985446017828286663435616427686858723352972613365237873261218348880226901788801318931139778005816660160624771200926866374386904347625908920808227448037829491783157142426212543199478487575647828037886555683307060438664627703059405467747633982227335584004431544702690248501294207914990041464474114416459377076117061814333393470861067485680347254220183160652048178423061259918210288060712610016985729854721159049888936965842509536697856170218281522669006212064675749387659050236796219652606087820318604843455359952770948599035232114642198663104567098912080911169530056024733488588400784619648677011685735913924771058847364314780500402922794392296383278798607420633030239778442517339803957327574285157190549724115502076619025352999655828709220208255237014680000543761753264519576278858994343431845737138434907046768677865299274600479016028186304769184287339859950600358826561180909795899824168627582608377338937555312728894833639545324731429858119412601969743119355267533009716345878145748040065576173697823612591127229678288730034985727652725020136658708957618080082987206071241710580108623261378017160661063282191451422228932853477305841690947459284787388929960326768942706442426234629844163961787487974401927771273364327047175399848901826820305754663189183210763802793056791807156931498701520538462608265452604153882125988639699704010328374447512290553954065513555194216051491535698089864742804424559384268583045126455386041332995141992799942487014585364028694814749362986242508122044937778313938471947335948748645282290724174110594911814223402688381445748407337445982888864922751765881079115181396919077712858207296297469742124112813198959476472971859328466741739229211075028771486454788696022877273988644072117423556712151041629929303751720693523614647408908821921932402731608023200271328803586570401539797569629814077287068889905991522536554863005521410763549379984323124214708592183620603984567098022055102864394031244697219860549764475570142195072500074545905262795051223065978099839788752448522961428896818570282070029181176666033116680981866222167118298329021440728898834026404488925970179381329206688433113295430203231883841860785277429873936752718105177825504387490169679785131512344033713759620606243661013734500656218028814711991984647602386024017966457701766798653471639076908028168631213023921912299604011418243612471748839856102061746172914386073877925774368348690353014126487139108658705874390538832164834342991304219827205106263302471491139795621094916452099935013205221192849487166134623526848281061038633096015596937117461206206190542163603106237458853265796834610531144144818755053822218273577959493234736308984470719808989400549192384998482425866058593501035857298901843473878335173992337042219279983709303493786814849903952321951273485148576092921612481347673198414331704300879340438167947974454690430814585292929622843303400353229887085897185986037738234400697118397636540008199223942206801638425488339958105020297290469434559327009531753863998097662736210583065009950073527061845063314609392405389071112770671026769496378536221581421381237058800769775460875297068472721875402757412190198675502254475934000827252226246841760109838041027392214139259150976317261387222677222945039341580600167598706048035212530299773917486876995695990101836133845817610016916000990065871100256494838879918485062190650562807398785977388229325364358091156497964059261715912682972062405867330964061936311660391588361862205205289295899062819679407326420999601291359736003263254282253767504013600285561322770885873032587939427110904021812268222575761152450570169870059668273338525056576990077503773768585938310222588496343842866600381903276843309317912790330872358699638927898388878792180516670171018515098397028626219464030822961488343365662146695355324038477606079434138193079161340957546081383300424283796479329614510246709024666622452098964449679918001070988637832495033018580724158191839250587099814837791972154628232633952562669743642887546088695074996352414827056846215002729009579291502290528117601056227874491531268219332063313675459652455477699320831901240010895643249020564222775728619587613242274663805836640455809952272562258439690301241021534902369935722137487772429978173632248106285147214376964667281370032269484825774529950698294924493728594708122060396996975100270643471366673070531308465376561087552140440992276970632234342930308146459247944972508961893108110752427599358266625627449546652036133975004216679468283812731228074147432408486695777764085691932388092410973797212128602268935351089663100430376876453233569506624327751615196551849115667509480862837792584244906062351204478318526922831019558895953330438220820632463141913591178353803198216081724469473811092051365671686455050660191579437099244996468045218436544188049458026680071363695863316893001717536946562160511746867971273950783727309246713572858559866748009623754568416927920760803213210132312606178027817800692951846486688143540487802265994964073873344571800091800473517044405360853879945306522008513041709903339265306091526273856418566176318534695974210380106752669110529300535196814386705040043411797525363614313385767525075428486798618631610103136995455654076195511679414864743086452751269637603162286979626568393970495766378740051520932112069984382265968523204482657926561304258553760388399784671794526816016077302908548648622868864047875386053904420479095571655608255095547904837627791858004044273702962146094248045646676008164463012634909761510168088290998767567347754210346974842951254049213279144772316301866306480986524677596867711510142527796362698391953651251380250073711771111424637024956019521403887772605557197720997767842054829735569649768443396652419450377901622951930403991448010446033593736445782145634420017907941277420036152918450472098284679793329371838041713092663897173942288788784943831898145989489248350492131955517786469846586652790781415648688299137979675076508276448518683789060981408945793668570527318582369673186214911714317684273874075555698181543740646222597738488759504203485766123270424651865231898711758694693396166417628710414081700901114734298506920091548320064806130580359688178906055528835321945147307868445783442119266918022714525689638245072949044537578903787768780841319399264629852298159545237537134853121671337799889327721485410380695882050014955586805950452205455497865315184444205811417448832926608611356769917420985161951732506796740458893647702282056440462839590592555849344868211043096749213014647570654623479228551750165108254246828319421028246463513053891914456297647641098239824996824199670823451894905631328995329309509847949569389068466655377226814832494543437461218277605185271954475575213630933326904920721076979936469195172954668978697343987734784274211363937482343777841593489978909854422998695180092075573178735061033009858297318375337427679152436782776428846959654240525857190934409588567379327810747164242976007407569980312691387951543469811699002836518133395679025080712780823528198636881009009331540569669785166954748726211675684385016098313382381258030003693172012668579067742850217112417214972937734930435949698915742589382929454184752407901074302259382751862097405791294694481558042914190332612210357625768602592898142875270123556740382556910462804166386042406440180186790926737742707528463328935175085771909217322495405582050171373870333208977889344278541033511121659139262183967692239463549797859681330508197870367378539485487497501818056032685371601304282843820859930405152348210097636099089230424633679651044953330449794458041663827563942638094041906163113373804152350937177804494522716942694260410283959274083390945179046686906117188511311690395727484181037985247115369593839537779066954673925836111744733852280876632129608340290728965513097045800208136166943989802836704448687486183646977599599880312106776426651711382545638942881442972746215650674505311981562624351397253209974784853071779079211490163222063643956456258719371766643146706211465949484575682059123442544546576069660919381155838273504413478843502505806495960995555871577429943869326895462696583077299099304636520856366365145179461995656049600563594917060506717187270993556398446349139584404804586927059162900245535251769866644401163534526304519097168504256708618946183266933550266473325512202175220604362937094688589801865518207510236890445862696837251335983322110047515484613111829715721603799068480807568493400275042896078741801520630867502862809888335742924985735389704719043922403711725248243405191881253230052625643526821248363304847059896611192189982545419965798834678420509253813357710575994852174232457370610606369766031368743533131732932446101632768976604054485798314309280113450968332590045028911305565353601158760863983061038337878997683601784253287737223082945215757056162451020790761938347628404395096219623815783700610564273741348872769983963413103746744420296107746547153099992549298149047008384991908062230564581726733286373462230827859874554717246118886985366671367156470140863741860238219898250765436027165507951694972268346152823097371504123011956358947476091285770005003232443047673203777838687814349362237483398738319713857602911858580540241948591221678193069763479082662011804441672040515900182065391261195850035627056115243796499977516271314400124018116607747771937479611459352453506444498817431483250634151590547544606143886405027614103690482130489054887525860077996996104938345213603185065430865352321550561947857304786564766041613123892697909830401684048649643057387688987588406755901862304587174776837938565156651604709482784771855218498288999985318944093258849966954843655684944784430956866123664126939916215175702432764843756975967108561606333767725953633936346408898819575440898381990096005188913728116770226932855923619458663109172776849308879405764397883847820588201422786101552552946157025131837681098110236177056463574979376946695603455087219210634895007215138997612264529603891014351254628895070462340986046638861728310788848724530128487320772705831809489156512100473146519244167550845528930533351383130740451827217447619220402611225310897671279033853193408795656711103074502857058133980966303291823432683182742416188859498594112924131901599507053389317870643480206300309057090102934062286335265455131415447353718445531515901525495751071619779109543392276834258359269515044608949074185840579313134700278747617073142600962633294334204886587400759583597462159870286291248132816869725238594609565402466543312887074353925416482428301241898407505338041951849791897721513787746443528697136806958186053450219076695912326114797090055266708188471597908011663364611750516566337271591529854995428920206813163800626271542346617235071476322697330273457839607093324016623285527788623627090150471273413891759422279482985251953675848856619728078068983547508038749709041762901557222171231273835495562847352772481215644128929782886283901963942477645867920972990395954181575229673612205396272050838994441625787971935429690924784223782782880446672031780623450329303007805068959732172082941620346857316751016542609473858307710004160608936187068916343606611313054008771792661405783116636486191734222806446083336516552088402605304440751507614873478853033300924505372281656887593160229906171862161604292769228100803319477137259719234012017006116183476237545608317039326146593169637294687265098297168638239756947291878595290853756733973282699184851773536110488857468042111649484646063630994551930783488012681616039184982417221276219247752228487201354125947977839500258868435370288005499066843246918666449256703794799500751451602390492329960538209865653348316049727638424390429296084118100164307125559334662289748567856059162651127018334563465803088376059267408033848930586722182353995605678134387651862720518935923693190973157244841625889967061142511988516295471439473631677747717491580443384713992094146927816259890084827210893633015180587349558505865874220105384359736434205413910479163752843326217733791182916201977849586295452171894351618780515225991178121536748050841090529207973535788040825883754202521459586440280671793847579847392796719674901667460085376668409154628896826241791531611449712838035036493636493453796329355793668015697868162969043430694933938045987958171860296245535483899069386121589525237136154544764622468040484962529924392464330413577025933303227964962171515828406167428059571511321028517427951847129738512631738006981304474399644352563171293869678279229904923654681083996471045846735228289390994617035449910400505868405100774521291247790563952931023590699146144244585013328794478925684123113159854730369301098390670870744328742806523772902104429208000409472237784221254621183205767465639925241699194336158822825079548936526264145849481239055528317156115939112760623623270573448881758235137930837781283338607597014027538939162623106019303791813443509223303279356704305165516796346297242178214283787136931977759101710159779792120710991000070856741222213995273888134041953646502940175635034972824261096334173254084249714371672947860961864885009937170340600757658790201076903649204061724753387734208799439116778790290641142579356410829264668793894837454106232496923741705266980651516171679659044745452959228620345528581756127664424173450081596074389697796126047096423226394273834212858736006158680025508911493985008335652253524401730896437802944745676413890509752559416414273505153507091457604806179870524062096707394255578921148932312380284267678269029906897534756328879103726569327499914277977413719791862775135955043437293114816758805577296490961685573055690863402922387051067394801919111720592448433734542234863270662971892178188323639831013336175642239137577459330074829410805115857194631918707464587592509459699268142184920939516661083627085349413490119450865018509489447549330770317004173069971646284389079146377574820780084488283972382921712295022542208565779897536103842452863849848426840663261603454481128206267532045093331945300826230769716656141225929147779361130858088290191809799723699872009588806064806057868604978371797569835092846758462695146356278458701769682039731361695115755682435814421752518836464778887261770512647170771360486113577438413279232536807298626395995175881415614480290890018652682757599846360284695379822032219174163667389831733641407074125605407678800594019625555055050550253931756537760298872531474755939388029816786817686504460038636823430311155294610472756784062077442378169920296091598958045780989680391853832844076835152295494118326916673308752915926299677622458937085309569819555342708474403800656378173348873942036042139617669953640247231811676002898972671644705257040800584374418394154336568586974742985529199047213336688539871868445022522126321385180708595701134619890047204269938852113013099828080256044846095315899793479740712547850576148882025021047945919240442784128665001831351352095699850043482450544333049062311213369175291342661054871486209314906593019418141876437039780743861375378833893503872646618592867183488634167664567755893815239960376498624887768167813786882196174167110671045201362799094535818562313903221299989082970308847850359074783465717202432139202324410295543600333451696866747343486667492110559741726251920113448661755186905289470516068409398923302035284705241159339251551984184605645608312614339913879680754957195413566299526975907860202790453384169889208837508697388083694153388433697777156588960409760750218957649114318254174873316660353551589690472612635751374624498914074361385733897896037793347348215151831463880708557935070743513051972921517958243290671398185414182328611757582765788134662736220430936806288993903725492001339024940676801727691838216384796996028104425743264187803292146901783227343695142348506779861890503871617936917779692593089412717319141599144097362928958937925105121741981902415070932288379063629660839803666046988075228248665575388078778399214971010830965751454991592421875081948634088255616051941222267399472534184826883699032442758456295576874164901309642622467850414889106919439460213776170456897973865730249545742048737145121857719386995495225128078520038046767642423959092623173875988081452612008332873045736629432949301606343352269148575601950991734468385269310156960785264664432048856246039566306593197276114480262759239707796557750579830154064560718396074123328139671321666831523351189529441274860133188265593122292933791209562517901474722509720437579425240878482222181094685176956082373853346442691239861675808150406727421492834358878455519110916210266807415580802791538936468473613578792357540210661301286380865629095467510568955012964202540369038086899341356404194608328824585179774475179357605804375403376385774674440726738162842647942163010323792149980323299678190105350899014818907073827667594233831342686761214644459534364599737111007539229052277966135280144597913653750224264371496776437700637758233708958502904790040757923169109118118827647120235738732589788819286098551646272091252323016647785363580909473968087944120459862069864056680751188973482100545618388793180140097131948729642519342041159660805309816264759890790879752994633153887505691767782576090440618300769900548189584544053974676848677408685739580436011359727506150530002462360668402988969465773420396376132739066667357812250037688770415690967186306863433384680978795999580232092188030795269584646488499826188742667732460216146564898120089302826264380898007276738048796002619299362455916556550397330763686722354593235724471195063524854617498498472114879468718974864282460832703811002949782276492452985901098122482021013130496711895462116594199123065994293717323539098390626038904210030311008636388914667494782521758856054627484358116299548701600232440119859916677992127106553512071894229043803180754640135194525117199491438060619011224112832746543338496094001440479537627177844574337326898411079155763248438674139332885334889874285831213673039753296631580346808603825089311004846903713294493208167014775664704298095013382983837460878493436680495875076584840022015245221518831340534783940609545155384265393622819793792550563453092181595513694199467105304325575020699546718964945209631809724822050198938373664989570404197315702279725046120442239193951647901216996111258471888017104976120692046978711782039423337612062647961316631561109945224173548918514609679997086609185326114738858130767151401999255936620211661296626301494932395691890802841443492274845517095078386385833032530241775726514364201484577554058487732853388826388404960878082403707155058001008842029344203695617352934635861947285270760925941281201319745012337608534862908584255315950583394763613218961906443962991699920308233021528338162435756949381765551975547766366277808466737720871230721947847004692753741943542852733475568331951073743337627947457270480106876485872660558483607912296436323880992638327180929153250976687209244665923407325174848215206641173082811644437650124245403508320860034543986813257400498126259066831836564596633571332858401413397806530917951755281657258117091129704456160250546823962784299840931565047850557098258589571750504668069290098732062531140352307155914472129285855112835510362796293355830759942745825417600458440343247121275498791042158577870425635642717302675009905617082446228212156855244089131797582940202417092710874537982840433231824505898357912850000668335204146033189341618915162748463419669079057521100915542955694111232416746919154690680450615321327106009416166951575157594988165605262111219273743283240339343413328872466966992415590982417173258440722406468239457072877698335159081005051210642786971525241145058306616233298243040761428444573834589239207851572744247012243677822558039247243441794247228924897271096915572895671384965181443386673673218503295873499957523188489038216466921317539122998149761041744703759068948656022026154112200004628055706473184127140939901033119075109702831234196882003793944845730820010554889066839826314539963308006789471275811399783860521268522668550386826601826456410659833115559162133053309835742326850713484456292606119469186166907699257338805814585869007782137870468013882481646267515812218282261188359687514426271416390863298185737482412720669915482981442243065163101274293531206445018890793283897719599245590121711660754217483299867206572808331692277217836483723598629589953758902193800172943327105415260369860921069786054848872031208724315955022894199647529487155986355620233676954921574987466338175932273245952647877175498173079367241416607140305300019510869881627855154511022443426000661888916499613062425810843295460933217115289241762841193446497235637383482184716749770415586304317568076681132633088930166666628434206068227479761031936791852482635552253018981971069449807765074615266711092378123478883662904057022566462414835395249814492473514600002499183260880041484331312201616258338115811035252088153066469304546496787658873073912999167180870868421316617028031275124842292570234591756842004159069274256950253983130802625482968969163501375234564579371137734489044077472554454539469802114454610848361839519763020153963877601215667996631100452274866532781701960352671144002685177692053891001446822914559237808439126247883413200020616988466683028968700985514644541158817973091441404069127790798182039009687594812182897356511454297404420997827805090924995980971123163979298972595706528516115890408213333124386522369685552209577921023852487281335424412344380493942549080180213886484376692805102766475654949446683148276144750465346357198716380661934209628219200356766413377227552165546514673867957149923115668165996646329980807871565642070558103472580941810218608927278706912101464681577522075059339280510061207083629162219609456911840300112394093950438437030434380313482327244287998160619464997354850039084582923972157865353197019423901553207854611158462605833615891110341038518210964303165460122584851736250357827502579726502691655806418239144342678659175431965720822556549028468581037456381441835719762227458841630155773159445864609764383980087715374443480396241178087605203425222317970467673839565219035265076446230943013954109757329904868073244825654049752790481034204086085680245510453863092920081546548628251482809382380789705386221050008590571623828578484278848065554380124341991654108531728880188379933868367070218770388266423281951974080459536976472021420788717533782221662883377009223262071954483728358570739669354235926321325766493747504271065628587701401943534005005019306599008337874316664253767402695317029180583374790703718900232692071547158189948370701415865810019218091930719740023272819111229756434745857696993944819420764234856178327420302891084921716971422911960933429825104371855995018075673495871213802538857445763941439606719926453106874119085472597638715512438425073470434513018461486091144936481141588791776807555837680655040926775998894734591144741785818557812059558178173809628791702529511352646241464297413638174324851991134148727856791371767603775984296967695245342560296818735548815175802138493196535918677984650839005271971217021663629943300998507614637815396889133206027910084673087784079362548662588599059138517266149661598432779859405919886093023866612334781144440721949388967594802154862378521120411727572375899492056737957661734276092001198821620933185960753633658081374325164645696076347017150799040611322344475533288280990407551460236517281338698462226021317292848914248908422580692821073013950003184680274285104672889776928395275225151308837307981958395495511825563660098211527571957891142826983676516026562052913428681657101487400006312995203451769871945837407765309767136892653951712886817699968333736480318394351057317844986860831791089569602764024724105267074023542521795956115530741386373115787049687095503171136400070600766708319530837058190134559023782406145963055884228848692101602109921894908519435406139232124818608165940218030661671466774620613045231043525512001820676930191570617253088208678749965215576666466926807789798006037638301073751310421186745687635260613874186203790493209112216221848403615997726676109780645631853346072556777042510246252576558283898767071507892509053686703485309238232716600505276520411539063504980609603656055573861032095038427674840666027572752224009820751288067735332162004335240534164503034262883853249484366840685849397701307803334413991137262989425608376867254561827885234638401727195543426423571165208731791093395761548889106816404091612721196353798572518719513098037162119811127487913256804583964652372156459561404455038154204432749989292946553397558492014899528282949107384659526949459923452344348818831361508188960776423561267872169302999457889065722751837119286792732353867046015348563199037373881449955735008915221879555572663644693761884266166751353324369656389841281663613831093183124082030071768254258448717577331941170185389382908809194679785004314726525363559505950226390489849042168502294788392755096478599186710361003941386286487762979301067733330850186130279335885168117713796199864694065394311424772401220515985459440572807828802181420008533131150098906817695144527435908475980062784601191782242520056681315661685727060566898182607965889408176407458229352176457555475447454364591286193323558342277857358668744420404987257231024595021296617597937672485243579274977544248447491420120415632559931187965289479712481041338505306680618484143319727756836357304412690275332348104344581536098769769242980916702792980315293137954937866462914295816111636802861266283449164906705618392303001273425294045907075808988469964313034814872967430441388624486020313239338336384201885139206636805913729541566022453883919629186265677418603864254628739590358478585815723455095201653720797839618279887436788079517351486422499443562856745771180543180900247190207322652968661174146024149584526394015274666354152414247707626511176685941871915126711516820915222256885297110987715022429916726448307376742344892590040330627719449497101313522747697967805498695332114583405717400290688228489403676723710082141113539312139830462539326538306482787005140468440019074881952911840833708870976535648389122659030821465695590451559018558084249300714228458044902932410525195348104013846080230498285322266183222272895215942738564360321799858060396520066595067145363816258651712136019256575010361475674699904389462942686673503778358119837837363486484244698684457681321668880369439166156867436788305116174598337290596595872198341877211145208873588668370627686914973170112241164327409809245080663184901889799995815390802816581393657233473889488529246491442245500025290161355708806052583913953599025240277342737782249985330568189702042591375183455576224051080745495654557209774422388890723974647907631075812142336606360099926533421907292966983787065565830626754154677666393626739712325773539928353949104015605259460060399042469057627058897889339112174577993200657334140131708581733311494496278500124982251131465374265128722508751257054158652587457491537439790306218705935024952409157388883252247192889677714384162174389993994880299157307741963570464764794370802070482579610358950811767956191492450013075718566779120723805008738669762070097374886273921434195749930694288218074925030286508961671367701462099664071763259747795408031672188006238385536621734446967854604141985837740007423189044668344463808256523890418407908155358783339627302990337160318819959088941414561277632641359916649271717593458400002004454908852876976747388153037556220067043883028717232325540802849315812198440474245416539439320727309962234263318310897654993840660962446833407007680694158085353971362891828544530707372655425453729677726778069285835165085866412864847119970017423363943654563408230436682904556123998163705996601180205155537262380247569013481309553140615412070955119735823298509755338463400320344978797494665934193016625084934719292981903038616780148262215382251225800465557510775698448142879024799735438147682403246485317877214383035414299194057875880953586696351139010041486926734093952558301094763400101066088923454261325056192500495769851006733091686384496881022400107759925371515404805482282102311165172677087843973636514080309885189417046078525909683560803325903681020866806995558442288660289869813452352280415013940142116033177945464178034865286313552860017493345240204109931720079265823891310691850998445112994569871843707473345316708901565353436090553397052645726530863513049385751504426486506115026361501369118574763739863107704763862912087712330852269541581124275901811635232242051443204017048318967947476252369880281837932528616530044214279841668834486022957874201493433043126118983815231260287972347606174758830579484103305317395778545145068365850565161685084019980615853797940526731372732449181776108060064785418585434432707215760967706207337818442485783299955082538865685178724152521398559418589285842470645641347879261409939067329544957434698284748451941281673340030561636484903401853489263041449198835202728130595052499331945646175560672055222423698818126595404537440322482856200922841491011965966769510641776119183624457048136524688567747333697463155207552569889854857773480646726649484599121555008216505303407831212575133592758141946561121946221327367098158337831249798484732843471427790438915633694204813030670469901088082121148358649529463181680520422752420508176981282342008727994234813748685154432661180893400279177418494216042290659977640005278556517851939876496126637685315084532517833802771083572438832005419605933097245284388601539861814526188880729210528958568269727063141352467439147721762191564248610126784358031769071940961228037446669690488095601664179677952546127648697446341162544737275577028308214383833122184880389351404307507756279958693464322177179183673197564778335936612555289998637553747114311175536218484593795517296326342085099929402479496480046565056068772749456285002735974515934458773628272742613199516582585139313496991232445885911282327321760095782359018631524283130479252027327492280832906172406519007922827008095389706522287578774811933548573110873593404177833414939673864127676441691021216893410644610008286499266676873511688924149141652234734230074955201500417239559585902927707657463115445642755620307945249654729800917991392548691362803190939514012078680092186454678829750247905588596387961401225519792107338474479048315638210434230176061308368618462331140685348508307340031312252875659303412404939544152440024807651707644040125194140095304982241284495935682353677152502414640451258274324055873807809217546145425679501161417610158999859157330450442857737487514343643235619078241968979949056766164168499672970398164338253844318714893768987303692949243697871747943484681796808760500565244710036853029444710292554360254018726977568233776027641656613173120013253687223717390185979364338734547631397433896314805663675831889457961219120174565390832820202425195740663355212386627206515124141567163395225197941584129376388886500242694897431132977040498425854012100945191546188265014475357569165553727813227989475641514125849883790769110941263207729082026312618433819788597073012382695377681577327975821367834987655917204296684779161662006599331211994788254802306335828066174444091328071029888985541799696119248450090399296522145107044873778596647118034575289956195036252660437861083042830918290118706651365382124218759012692397325113862690658742613060132118743165087292214568779275625623280049280121601108340009729551551725069124440243263670338481978240841692215062752201806890244171498529248630962169165053630160713336862048659520928010543619195795466842600648807812809185384922288106201479623761021093958991162217576576359215828566901259075124562910347036362405572062582850074031872577756310432738365424968294190933100501189789479490669722057882900709875209817553218909630113553265408663970974485223774250307719709547439812073949946441336269629994859921753753657762671152840481232196884965949720987183594866682340548552496248755053518365203032591798263894029242329751649217871040573126360387115609345106269339444644477721784611715140623385403756984141744140885026256197887847236393845109433563313548917772698961195256129085601077514458519049029305248899604985038016969929083368663528454086302577441656641386846656465478633329469481759097424629419839297463971024744712121930310931099730559072793040840265596337964144738531944810143999151982735342984858962336189757619121503897763854441764869812008929581927916648949492892387785369090632094275088531336511653712969063632433408960213634756660636741337427605753350509844207069330119232037032064930745647933313649558540849359475484232773290130829688988290029729712631394258952272692114391557825062277960008060850162146622562164401060626427081098461426678556286246765122987587937369403096281522766860732901994469156189090618667609511710920157685217837003690821922788770387477815623124398918254273200472227316438139672817430872395088499031598009290695017132346226930583515548384299978231409915668629123919251710989534846528047725894613546220306306329090071816305052421782907680623743802125282200014245810046672123234371542029724630654176704193406594803011154857963494627060237977835355358287215098397625980518404606204049761744802440368505195276075706379602146939036243338282350292628469524431495461126407921943342845685086898193845200333068703672950337135767548962658134807689312253072239346903320565226663808603590757363217497528736172832500905105417397724215315711419740044130356673818636563986631464672290785991640106315099535323032735317051854564600957269797971387902694703886097610938708307597480734511932143011997770767574891402932524703969026709153548760633528773245752451008790035764866107368473519694224985369905693774496889718386270839343639050645516972374991378698316292775745244080366317870602052764155193491615114698778087229247751740064392657106921184796922958803374440456268365423719760110799951912550574817230523275219748429781547954106579391109900000468564526718623496579917062089401254281845640913594149958229812746785961792200475193789212993338489603737525503841461408345365327768938830312643302968802165881752176230774112452284209290388973201842539511516936178506081369008016678648226066051493163140539621916645586271568091265362282511889298553680471805731415784866171961414501522963470339201955471501592898125908190100894021476028754782694363287063749236782203859779069498699719782924344859721455107674316027929331779588368504851400315605276453445760211030461895659985450290710398890828215845292854041829306692292611453566524884050331831796127218364098321961465769909403494200719680556709964857033988471636323262529340792282316606843839647172303922321953685112710207421782673928652441022107045524959209177824508423234939142435052711757864699823709353924008282534386105279497966804734399308397099392611535953405186073990360733724398629574956272887365818932640152367827255275436101251292555652162451621053691592218177007438850439103427019371502582754992338191972027487411101360355196750383382099115505397449158982164019992824183323142503938595500566616091675782654659850783621362320382590431384337788703200625468313221514563376689567860615769529893036663216447726529288201421846151583262583077037459598670448266534618124110073836996461670886752161711229852089666052647354885824140167895457336300474846986553610446783189235702991834346044176214651081024224595256453651748625864263487139611043997819040426929873020560138391611780203937528496452621421258493492684647072435282498948311805730313051351913296238824809208860244264139056610350697045406029571384909768317826908203485250382002888654306069092298986658529319699429564264234390852775392849749077167884835294093450387310514470361771120540941771460082388993806727451840677030394116634677597890536840963581727001565717092761479730349227905246388193212993504940673286985605460781820516814223321438554577963194806671675439053231324953546925628331735164928359399896020884434048773291039739347128895865440434312901747741699264203620220730372055040152412800227069722543737390313902477559246869713897634631257777596838680508007244311050425784901608055734982447698483043605417579144166452422153731408781227106880830817226546895064221290352054248464954437244536127887915789621922653628906279806997426121480116455383522348998922127053937432962731834445713756810872798568688254595332621669458458942332819954494350408898025607721103720960859371738716536521452943024848778255068959551202824317117113964990059990677289382381094848769600642049414732672375625032888321730529325104395912300658445069287702289941237882746933525226403427980680835123164680538190873920509574072752063195277796794187286561517771761806099793016179278325045827192403360763737502799740988584716123572180269403591070685229327456654644663299583468937843192703432013074476556317688435642597450900761441751611019920186302220378992126397246581615388958533636174030643322058185758965522971190751733099149168395803252949016516175148546554526411750290665281146922754193853863799379018968544419750412044077950489356536643765925966356288454025523077846983554393201270350735331591393051206568582205543412809748537907094031778756424103554576743771951710172660141142431299735278028452189497296760771440648531629274668074328930546192640241454261156237486055914160524841470798636511276528685617820498930879651341340771494657328389218958767193241505089496080923575272225080444376632854930646410763054638335999143511572666653177649676617401638802110659023628299945279374903733629405851018511616101505131915219117835545395394171150579692138678682654555846043374673756193616636408835207253796206373663450130826324094389114052079322505578876161169883182818799933453658144427375263190188949719746245716639832429894701442861140806069222939611069141150734311366118288521533569060200402514822663010379971150845373720871606647614795675388378499967162486851644983402740778173081306403217835150782774855309383679557798260641637511421396630722203068330798742918340238414069383349744469854079877678039520107741790332303636999792669928581490463338778523453441386438519245079275981132339906976925447463827862805370667789534338977200139877157176110174881845517236695796547068880182549716843286703648812184755683128991815820499324436429812803436451820352737351029639835329865543692722155635828845477024064665974766386524412889752116546530222370139681879150467184618712015601446320808823525930469664344630972704729592672718275501313589591401142069835896481758415612218005413669426644859884168706150277377492365292894017793340223619530568541453956449241143413811399829649335765369671135655641989427273210215416663794146362766733960198412447446174287372750077930229117196631494580532049242084428231605237800027422770281477733833966415938370614177580377600759627979306838644338147325346982277752900834531794402665036568028110737410875358361968350747110227800628391008107547531006583290672306621365925452703340146967949535205928884307020183431139726857049465632034929876320805329895442735044999991712786911425807947233046697274928753089971652762626441226189002249740530685215435392804095533180849837252799779474087907414265550592349999064756943871733827221112368985971952743377596401692544986758903295857219130879448295462703912526630636285900560800868191130340581780538845806433859677091490398807750891338529323421844880304081475489690063338979737929716765406228525785136648254563745088270259886714157328130715346549107114422823200521922023167425085337129299290878949093579400551015410669784225481297407988194348176449104520941667874210768457236489861321339949728369895683181638867071963648088289004680646866821493871031181378407130253537363710208858535078021707893315821189089200520176035945473622037442468100619181911933086376053464307887109376837402908602305616675088796992272504141992220820993555726011624570328450225790396690572782827070316676469784653420126309563884372536643797637431370051249814024703075754463259076572955250125263096397376100337529255565988913562585675072985154967782241173299894595294248399400615252764654571633422812407007623202697950365718724125499031261104174582548176527388935423359568410653810136383465824248902273480609470505268234208529465900735324712968878267885278568352519580859670869876746919452312669533356798584274149709987950996993055734637284345388550213657174278132785504006636386667090652698217647542008588371809582339316164835920967962027133640598758164309710966963775145974009961401925761173564174349277351669077472217506441177708322436294520108855240247110521847723850475973448358991649845607862767989212344860214683416720162117132338620085405577519633052303422333962191059193463948979606285861991023649169806257711889932768544419449831360384285191192535697504327887478346144943998622654777242891001363140321727912219428073612703019923962429993462496527281127814064304118972816254955497237711689224591331807398099013706911219207274398269499237738664241292598115179432849016910796618382942860706727104356620251142852311388101302093116741791392936238569978264952112631449678300147467021181555135813559364624428917654001695911690458305296545625226722559176368251828658610640994970915101833867057724979308922680180699067762777027396534332676671932017298052553751118681292779390099829155738030706146848477459041993417265964111736959581980525816213643114493203390189268740879708478377182022772081899928825617409828305522525196578576357254283935971166827373137707895383718708923733488564305679227957290830759983168492356302498845886902451418596080098341212444919372832771142880994040388454941805565461866762721867624955343128848363359078108098817652624188152798350490246823477868580295002074607580830836216453256177774958336047669498225655297320197706777172653449892942269907902796719485425048801197001016552293872512385914980295706070158744200886866026892544112884397778739434595576661167486267281577903566238020716387583487945646910326740304820492580292653868392101860295837036755801685815166274822906695129933531250897238947711280482963167806134936003830284008676003900050280497309933684517535877765677895758786313896834837588065828080543855073293361013234208065445052312094039961345035615376913337258154730042931913638507328047901660682515665604802593550203018028136746727808015919771897144151730358840883976670478886137029627294210220431189998653429750122148698688460839979299588413197967139505658053819205681017067201861579755490580221801905164420544609183498399464172724281168583807361518555930418825732510671374902989940245122363423739379000498056192659786423450593921125514469578060607650559064836147493429383256955436213602544817840991144445644277398440221155087664200725521203184120560754257989731000409364063263317306329086569970057640866467555887780871160503458718962342648374351087308404653543128454863767179477721635599886542639909724230153206436085341655306939286029335414137714065669758029312204346927203183009585085925979415110595599707906606834624829822691010908762069242739124222155539664458321250430669695387679980085498001594395586494866936106351243278683062268580153910218310924128838529879632701237707785112043923112977427664361111502236056433792397481118472425042965260430294343067493943616448106812970990316028325104341762110911675926181005619006556253395356233127923118757728836383247493917982884381887622344357589479845094122411667870889476369042847157605126221943588778033717869860947445306303273807254440164477706147344608885721264380203360048126365136850942959004383549168788550942570033556953751131417960256180867801546789987584820149711495179664551226053622681060476673791967015866132516117413947820854876382891873109484785842546458972421069258575067011018577185074741493924197703733850946762848101036534138960205341752189401472793241962151500626424634802305799882731019699346886671060992990948810703859553072992713867275203331625760235035678374227528524706836035840747466417487605350603840203742290082653855106483851265936495928171264751870140736981357217047473870042531663939870055368733828989483715266873617822223087335272606633018093710238425007375046464781041667104487922094297527641025337809620794742018197740143621612409546455471326826038180504647300381874573068711064854868899969645199165385526830646453169586699247233118216297226709514730330189475663282862174589164196410078881852064922565052522148717168363833372107501068696563542666620291445519413648167695510727448783684333406684438270449726498199383788656061679433277583972888272243139752995462086184921791634812286346287781812756560994577476075663692618973618211260441037993582657497478525876290721450361477814579801998430275844023967791167649410559472294783366222103868382390934169556403195342346240320485763837442699682632232374747733635352061484664338651339961339010092683050087957652917727036418879515402872844531533236033055548968278197466244092997790971963281231745316579137871815763935171295090244218484804932201115503311069936488444301729378184556745356630997436289178564289714320343251415404482451077839597651550058637568444282447088268825639123572114332537396333709719672500400194636047298559195191587707792126400911411731913255506176158460851065312163646672405828795332049640991035648781456992473560341995586716441999068751589966196749971583400105259352132154076170501876910078193987342468772267149262566702025371429071152442648057494939751447431760292891061354527772769510700330868681346973121534320842002760764350716970916494710853012774443604267960478185519960343925501197709825544152196874364919686460422168789317108845986220871762006417267962452619324193872439211868368434566211931808239453828069160568090928672324052398228830059323645545218884257795244601198148157827146224301343035299688078981576496185429338724592482397129963213130993142518430783629342548376474392832760326740658715074179143393728417275744286156139255160421376722195023910846668209713088649361517049946329915709449886565229232199826804794198684590079325289490935193753402111857380122586180544367019652595462344399403938990641026860625450846200077465804715794671355032527670083652649402090487699974985787973404705600913996908591440347444525494876111018305715356329856892397019231800080006506172936359111512047831585798069494943791674685168701123237624487701624521720532040167858368287179377050314117445586703022418728549551991300328090250851023760040601012264900255371172933593327345087141312495456368198224106732090119602570013272723649885852318491254163643853635341846971542131356094710924957712462129784829109718777057104955781001659003612636864858285677284428980253258918604653624420607534255154886940890008873785212633792962668173842964156197321015401154256531720189813834732503688595543915409939978190050527698531943585962231639729034160089710725348595421767058844985995807776068531859270143860225679052550999581356917086119275052816724098102072549626049400718225044668854171635375958023458071472119078623525457653453575311350616879358044587823279417722085442469813660280503372005424179600246779427286551051475159560871259702382544638983940593361855645486947660530380607232979731473263945251533244934469466851923745249963829168531418950978929546977104077496867920125948840792762144535774804216134916604077990968732941698374238582357165682525254977100466308626689758606881113186991229598017283453912165504684415090978706611166014717268305433184119515938826956208217343779413413338728689564738686206379635955365804282584440109715945166893740662205953365621397881181644750572014320335812736908381186868046752818176070358180676061794474647324883143272836171683778097790169942707903638140973375909840291919642482615406287795815116845118347372513429821065418884101593111919613657969715891031439770832882621968566230709571990519485736023761415666245640779341954405901099745122994706350067690341212567003249658258466912673488101672247008814453836114387795309988337316518489279278159995688074719675088057645952769278903485006755247257522715066022147062036807518149056678438520158202155943205263200993703444167142566990090104660751847239648131761682142180861449912076878016640472754343722145543369184183943072675564585280453455793338957529056521579933379907163878072871940927725528345748057327918197137900705920275716035308416406492189526576090569951583248773071473864540487407392852996633350804826328870170452672658326204638427082741229017320914756875895632910705092106411047409115280084412493736956516764967382980329037360173712596291261507480784704046960621823235040103907031953092214767125780002662161191507488030343710012380490478243104204099500435511340470895919818746332483141003106121949208265918058795649396382155193219534358083945224634623640134372442453124474810971039022211866704042279100491416893738248580731658754012852260483281594740064453282175126711998555069953389060696999208092978891125742834821438025279836720341045491245475690160866956168960820686111764301063662741302040513754684985471169242428152951911457023005297042400472425288954300433712438178487429787756014743792207551738828133851077501917087916922007587587005754887419290197026539030670751198606031890379257038025824307027459932407478161834132600707481456004297681172742382499630905231576343980880297048033416404805845491946234899495881955060210792338241287031146732918674275572250877450346577491401099740181466352167134666710483007321514634679087023145714650599955640443302262446173921525057314063904936122304460949899059784547353525672180650600742303206088780691910245017421169237841349779647292900521401912908493995890130259363727775435449483227742261792329069016970051682050269486394085006266241438627432236648579070692471029702912111513984838208081521964156664971662214583041996484159580524709997385588399671959196367806337246022649402273965419521948626740071467359584501984811368709447873971335861199247716385334587959284310189456301919490518800186524299457061101580207319117222774812951996125622443062654427853675680392473482132140780249209353316531975878072952299611542717224811810398561900349234790959078514516502402253540556596408193903521990778897955528333959360012551974713194267264818266700559608546145033451662231975854897651804312006667936646910733730912021077188405539041645585249609639932779798567041377130346118382645811106132361749119735492200612421372679424925209739596452202155319903886160163752992920238566538435249184302150407426183535829275711984339986288928415732581290162429960274011978054697845250353645686080764397136029411185045584666344446647277608076981670455046286196889144079688632802147328699703807639227953946321058408590608114349690500085285234000292473244386490910355191522439369861219600170979360466086434038770181569869462069121658835637675278517446632143060647635675864795387626119254837139208556999509107890115658070399606171408696403862812840600553578061217465115008926942528245040402647919501006075290449048104474387632155132367023176602306247883287435996028398589037271557386443243630151012932389819924924470903364726777457702938055741408351506427205672117624758388727371984489225638088210808475566674162274380779842332934497807929007274311936314972126080759464237316743497853604735001868929521282179689113441938335587510797450617104434605789112384831466214497714362690590720593424297975246148297313031679959904742818942190179478754940619307066973576228578439970080566661817480364434420355189181174462260430403110394512728667376156680975970383800644960916001674285954097723519592025230450602289090581952912434452649874621808187879760400669803906428762753378278383267636031028677189681317732888528435188623784159752224284617745361790031586308266284260777637556496968009350914566744724683042223234657692553255119281497293496955761866980449515746193796822101606012269545028251559468056164304339104112362711899246960892175557279782866820904841869047114619525626449252117093600318703344441578475735901927118248708097584188040968505681631248390829547998922592312116224445569941566033144046063737382618771218416692891614661157470735882233958933788512391316101217148993696049675853523345841818388931596724363975442311549937247085099048166993560162727758893371155102626271040004736816316687262025150727983267453400961540741630947472635612149415532567556732444101739618018542421549915980756647408106024475538176911383402216189999843587674928208368818254094317274659727180850539024857444732388636259397020738384687866077816745199711210578413046625407122790099912752940600350664846426567522451619588473339063273398016482661882161528073912732285847931218325382310723684218443995199553465770153210933709258457009828433566785944256001905759894586528351198012078198708652607914342553877003792287389213962399363907115654845091907697211357169996908693042236516032552940178847549518922215394820352133622690520840790071521213480921527928959933506040676007144899252108726621205613877113688527809224184147914557204698649124943755346730772854785483845561225665975250910387315543737210245467268536769597239438667658364907547895142994768555999680728249157277997470427930078987093043688350727484564082794654438672822569941377049317558415131051291060831577151400518398537093012287611120064911253418473763361167293654220839898702342529503397789138013644967040470599611375346726689379021120921505133265677012504810427022116568005384540064492772040908829418209968675575998697269690134348590096107238273409866263436734424698215856015584181844649131595491085679554490507159807060576986258159988904310099110426456077995664802690285687642244285330550082106515590982992209172307078151768529254033085618518122215515486045572395468503399117185764321693115927947884271049889018849150364952312521232981210512533134945671503425288230516266329471575972244259406505797592688799956422679816883652612691591727143153370117969365894565072435176137348067862451489761204220974969141142099587653297965270082577139266422111415451525863671982597746081659424795021146013912553793513985952877547055147312391311212186029467140007638958916669339950787638993529978613515212448233883315118509607313440095819556655476298841111400556190398771888429268879315830820655404325678467503030165066823900068566201854387111769310146887246037507894375508402467111880551151873081402456826446701243132520037347296014969866495289891375429423034192820430356947324005914545494949886497583879016147648215876737331114977229686489901195297079978087601244809528087081158503086837565810677362400910737011660025662973073990398281283218500871633785959962150555584861658526503990238384998251847182653575116075353583894393701071202450786849510200160692046849580471727113844247563657899193911774828601308226343397216059675681647552145951080432997993614539293389445481111837453085161221871214393553457903340391650441798780326580901853943114358662409461441752224817327247730531245344759014061378385319312737591150075765221944828915091661562541394058913236694933376417114156806533649275060196395233984072577100970051160239645721618172062814779154135858429603598993773632959162475036516651410628809506339845701233766559123285338944476076009676266175693051636255983203272658957643939817064288838873337958525721730328461500248379724904146534859771675341151409699022043705947431513850704679334206120733679924894189229358720893964900920468264331659995868039343922953868070007792394589787927661680248612022993792030993193597462199380782328752321170928503308134494429086511199221926246162063971363563023763382324590160575818006266037192527324992234360670696711458806396542161771574439283552456206901028098335710657638433608905991432320954498135867199380363162695665002067271480997736513728953328654624089807354696969146666011328431919192975062846283725870574601090082122705067515071020749785166463897975253766526049723026994969659005375338348927649955492996717881254746213728557841414576003099285282255316435713409331516598764634556381539702032693962970816420002878474075054760154314614896986621469791429619583113571192368617262781958449447821457619288808093732496250255597397535784342689949444345250167951162518947876229028282852272069129204756962772320528926570501708542366195294255781983790158341613739253627335982673028062985654907917181072959298223816274552627602496145938412124764737995629828255676816453107642760575736414890938670365961053678378108802640117067003119002456935293533560624738119352437954408052536867425542897309590549298854046749683759273051762765031185077180696970211345912207305607869436387232086881894255931598566495596025653772263456811520393976448616732071234118434442174434358223845669407814877044442021768502931543488751285730565200220466233416890634062088531704942865900191817728277179768134986940467635871124148697309244111812554413702149388085672866713489612889094758495181894754254452635385472410011966206248855787785305120359306002438668470896730791702925085838329288690995656929992420173766133407925728061208223350062339905738915760696045749648943764574731998170145314157352943520855515729059202207135241721225330093182549547839255150168049656823085790218084450042491528016932342323548677330268472777958642186916011764303154217972622462436938684492299779493474375698761176136013251993401395219802437484897796137095816371398640960875127923086302708886466504299275366919348512857476888741698840875146508816694349967011212878929072958885881925198837899254338483015340504198275441593160829079660942684513568592694015770685136364961511458633218307713767205156548269114109125338478459852770022833391235470344921898285077658370871251898619165649174936337899526857748064033807158459530656777331886914831274985821337043363539828151690006154804381663969606175573842691012645336917360581998514334431113272938688989862432633798846336781639613552218250050261976513305940077637626945662995381070836184024278576821877858576741129017203828339053782803549839531074822490610611819772510013999616712318379456478679655649348408290253915616106335264991568631786775298679276205810939585280415117212734253395869955146540617106146331488039631271312614837602512730836894748284064003748704973733163175596089330528281348058220636517857073017438412084414001468757930653262528143244877743972136988993800785280246686598728433457477565074043548671510937605138586668635498052751690627668041894778419047543926080602331186434941782380287176980331530192065880231947012259699108135861385061921460545483440275179904863143569409266142578234128425933936038675146636589277861919816012717328849486630120783741168149141363692831137205719183563526501901299065752396925366535107843664167181726458462329275285178000603644210571502825237109011889703591671161974524710095465566658643482870005895819532539021583140328405115635421897509922544626851873279902258355436099355836154100665650886726971299480228108187944090046690623133046009588766229222365459827630211993697903066400898681000872582130594072110051100982922751135452346119958659946924085556175434456990863743586522870802121493886226414450387857624317932437925427577522376761218955965683596005140673825396524460675021565595385058382781102569914008481799158406865038769857336508415713027051512133869831122727883166790399992499858793860588901477517842125406899027026953253671413523312937450281580181338175736074204281181142725845164434746674711113303779381286200380245457407009475609900998197373056958064526212792054081154553480321898984447931459585210619173509586808220859197126435875734702767695523518639914617395974215421637154596651182836681422132953486151441321626639516902403445575099583739978550868464644022259975197698953807988651127953176092240633269522082922539242571728603545659591496564917544683014851856479137211593967221427978434243058618154836295715214208406403057702278807250290396593673759162908674155197242780198086450688178810374683733995829903827665084998517628890587353894106615604128164857966532683052595815900093304848593909065680545643479189238268131981956987974935972746599679536421951911264269274051935583727692331104363896958715397487583202327497607378427697516969875484930827720869470662037783445278667328577959556716821297429491657643856498096515869650551961737369909765492752459864885608141025508664972489833962209652868949945783726258604023212729130842242528750925005307562208721841649303907568651300626615381832526970688449331118027487242295209579249955052984740318228443897104920802814783681649902604985575066247542302251871769074017248523981480227575122734710883482417675084378152621017385584099659515893541765000607357989699406592228404008322702066094912726328297518581939839393547232837140224544802786310769750983378445192371272329056196988609597721423076805204960519352230847330016424091450743140757056763375696951042201893138246050945692690000565411631425022663010301538927570546240262159798852980361954603551743341881163201040459674839698485349671519502561982137932484641844323354494384836315584672612858045348840323623111273097584671205560349696567140407241499285853995024463074487208292650062102132580596823778593862689058912043308187234344496615283078355634091374459452612108302167267897038216741166929868744433420101986321486483710089388425552482710770879721886109536983106410990294374714450790812264945933159434346487371409040842088119846348986911837717195090323444492369353664667805236358227455812389859201452757722881950533357761621200827134938431648779122625942650886903635823627893030681140762485615201075588394156108432891876796201035079673213040097928865227413158082735871522109684308857275709757857028269627872997688582035364781878080096274631816080444904595068989130226581767494283791298913915394766242738521671751398147511868882789951829800763637359688673045697470643381858244388208797432964430238577527481772319861307000888133504902681810658680911082474233245780958957574019248652912440022432845018530651034374815623425685036941918861596288408042981247602066526336652205353243495356525223780632101339413048568764513495043605582593938799945014059857710678602381167862062356254188403465730053501083985612580283973361226875753555625293929898051335207149866610445433395763390061564310826420738523975196091504529922146030323217152374158953774626733751356843378221875079508953732602523051099999775892574914115031734689869264795989118874862598583689823461227501458784805905635801972711066873270548089345331553161904922284239076101337662064176226169527940960948821372032037716439209788877685305568046502507004172920172713717779580402770794217425186024388479757493963884130538445712926195443338874818939606204307548146720788688953843735484248206127265288276069449677779244838729829015055301372562931729018850476265478101761261283774503906644999986214168569745248726767995543206856488324135057133912443423682579407798744057573330794358204515360200999642883738956480288894480235201629887697972162857928038425937274612491097994954523224304713368362270270233786362134386341139458819742910446137970631699481214339460193228025321305367236098402437326066827782808243703932780077227239275443869935558245276898038741130831491557327559211371926220971508635022203633918001721392215199989244250015488316971233488010201526900277616841964109175109164046121908206312627471041766006380401079917855321048765064213065682223769709925680972617550829451279050250421503220864384081598341439964403895487782552193294595938876265620677201336302143872694934618813124872382696423416173011847923330881513595778387115514636635104319727070839476515464279399530490074769534585761794961775240395617690961543602119782157271250643674944817338713510018082443264135064088299585819769302237106437016777527108363246554002928563384416685637930598251508008916920037588655908341605215776064882580598609557324243082360619520177448253181980790641030046798034814536204793159846804778544422745254269486195239797197737138773149781207617711998350197242248352492648888235266728620128760143583373765458454682223309668953151197739770851714331586588446193261345008142493620449750775124766609852128667269378708240334845611843810627757639560175080051103462365785175018493424154116286475577019655729508568833715128512877632146455205918104335597435676256861759947057733751650319396371677629728074961965212468324269847033045299069911656073936591746448570543819807892322766431865106242136139644393845983637131906422443308314770572727198278744591958781068855611404739295229273848594056671134698373450220505685252465113275486952424726137643110759983248402562258020110153988252966582243997522654225342409554296131389996644865065792797089207926295004696905048361476865586013765024831605516242799810289166367997108469878385593359611537667548389943228891874123847301239190555591158976720968397544374044149407840795307712732557534443908658559933761600526954337012635217292495161224080907597894848129338110758306195416215294918910599968996321419689048816884660993608531125521957452733174997994460983084331525620640506463644207727311720066790710234060782089558805011653746522264382505399370167391178145491579063007436883603769119402021230203257160990634070653529873748687855290783737544576467592864908402543393182108443737872868411659761766631429762515337550457994919252997655928284085683347136884294250865366585899044550419861821403283434537127427787280004671952792205573838053727433220674313237014138070038168136678299393260244900900973460821866601595519947913154222344948428188933135492975036142852977249161663297764564748968557949500224710560139464397226342646237641306510567014965944312791604327740076599377428799305415269188151407779519523418447885768169440835988016406236548646063165384562104349712189712133825434160935558791924842339644765504365823414326734773438895879295694722153022629166886929856158254774593895139304192296788916662197924166893524341606553611256623680650584522102420818025588227750206028949092930741854736368014381155858278130844332647488859779261711727794629136318265888492958250290535722244620336486840264696631646919595841394698495258025229246604882426152786228604256290663830545928366086749854490966218831902759577668830031421924473502633446092333735068796040589671221617359871068852759565526574025950532221879868526218031064598331888810726261097766456335216491026947365601368180969735953498311162716774558737666708404828879916740078917213708021282840935046821931810448515207074951568980686858785786930612692025422517272297194435975194546186665765765980628858815629035949393725922071377545095387869411590119547667650152618092664888558971465377985934242284624032378960426871796327035933738027434072437093461923090429566308666535989251143800430325211794027853714357732063854475509035244999852314888366732425786726478958675550990000868388430073371172478813786450656601521054344839377737885621521787810085290774494261363605556749919159213273568087830104374984981758684290679203070427132116145413274417373823531319988996767831720952798520872348530213815256945156599474655558205917377382944630394867154966339498383635762338046783438547723639535397334367061276726838403615938743970427930367533406379245575466870036487123947818172975872297879217405569218395097114748340179501233308226909658974136302995441612987744487836085954680865203358125356921772190966238102627824097759479147131736669623646443962747921942773102905143228483760246399669539718662619557796490179599523339729552430864580372499987558873172363973286599246182156399681463921425659676481261814041065306083166691499239329189023086052428191568838902152966171862838994377332251231072367921758585054485256506940590430227285889388403690334265982495621901462101825211294971322603098278993122808660344962353153624168691867529558206644478536092263681140120808412289249398489160359206440092000963024723311207975665378771881446417344690188546022641124930745621668145942728822943470691775784739424998580680266481285856015098193522022796694893295439967868034921250216076885889376634127797560563473849426684141735611186082880262078613997246313833073190235327544642342662055084464320236833037817030343193953239954001789045759552708893013690321057492448064407446824892170913801761464440266985856596408815077679289432684880604133083354028663127752621717048234178153723670001029232635210716211248145167069502135768875584596846022074906268423455969088665739944563351266293942661408863646369513530449401760174036599487344244950979185877510452016058197522471616671577864518871846284584076911564446544348050802381449881635592867040306293613981231281000376775919464319107095450543930809592776968984209644160709073988056526186564550170356259212081748261153235309878187601016544587514308209834829703246567285227580985808662635089747646257071447964959659790584463843993730062298306531537142410832486712814328466119678966847378576144798323451578533713468585399060693185711940803804768489328352366896633511743838065126120242959109125747575196231397111176063670593232665127764680472786623169568570661946880238193923754074534642391381198730633887574598364888614754756156335366700766361372525448780132669802542715717896188964919026072300245710446420160374529570606705157000647309050469440269367361325479493889159250149233123918053365065458089383214205791031125226150425562186695739273214221503785758365506195047298856380458759754048947035036311584084533057928961707387745497423518157430083482282158185059707053085972813950372109728551723430705338627179611929221464858629374449990535698643102571304447397584753563654019587469478861993710801406178312383933529327558366709379754232229973041342712627786095513067348654735021927765799615105459118368823242006299060171427696268187953506824132552643424203879307302787742940812948331110735940988323069637142648984867861830046344190022242052935602873386968295544105753328545657731576359327709695912853456231920017504789727277455916851112756879755288356845580936420092448314027716014164132400903391864309448569558405181499493120274952983215007272083808035259445519751652604411335951491301678901275109553710430102846641148732296597626370169908859508621537665924923941070845665137249974351158260463131837967983049843308763725400396218287505353817184101937069174791153108272573941981402845798495433989415925937738377665897612633240220989166594701971363075394929507446547373679678086073809813034624727744571239801310721140638112234371054172112282834511007340913715362014647687014196749936399622207491809256353601424533982595853304996161932362001137841672585789446887707687823272766190743692978024284239717526276129041729674466486331673566599216179685969807032202426575651079079680718859194906911571018828971592900538484537823005363079488322685523906007110042685104916636735062271681190070961531617773687799181505981872134763081357680659562362808243896269256386209812793600114294900737918836163407016703883730074746321549574198966674831966732497672334535963021032570304112655326340199459710559054039868115688288491683424062197053919899371624113056499179125362877050315929308972411202181767031312832420623750113966170330743830183332651156801308732849082682315566706133064362743030289371949976938199049632468723644245954811045551255525079936911673597823485460144018780670690964156153486387950143844586362739112260320131825410069965419058968626658877928839534808122609673488629275003557169948637962186893095394757918926266109077422326899572219613556658217582999521256138885209257236720376753873907733900525501561070992430388844760421385365077533223412979248081835513408919023152543705462853184457007658676786650294896062643763437168732352853270315350190407801084758130501380633607192277498805219033505881734636028507767776421468535192212264896280787518214013462426353627769134808878425600519991168062779498486657989725397404375253301736575022405121730762742325904329363632615480277337192714735517896150828894474969995132419022063028439797026869429648686566048973507607413960390524812509497420011829696927720705564255169739925516898396731709196078028464590007027948702327537136378154485218098378157337803663286644615621618391817960865608656260333758983553773178166428174182756451521462978061358177669645223937040193016494301508747491316056871740894380086076538713486981305658047484336384037445697853135310364735208894754676777111581112001049637964130087961721291816090120474521726402481186135437400522715635685022215324452614907200213696986645553226336375050304419628194494680006311151212855732959688945339179922797897639534526456667757825003650568344953770649685990617839476691853030583082283039313485283033085578418904868475597983124793885407556044401319401299418137666190919709537333399624433470919698097216792674503869927125349392184420981016201153231798779099612927500349653193065311800642762885778895784004278132790202138022892490753197619072210407884273692432869677911805999047686935284141319688939618531221008296281899352355885788140675405438394571031743307666815767801105525109150820078528313409543699922672113396100101785698079673958022997815265178314369865211566717089336555847686513353836509278980235779926404216133343406269104182809088399435352526778491347658495925985555968230482800631220953379556198014986500246698759891388114566154768880206273288451299858169988941427149596122083896705915406456530459244120235786163236224371804357846041356056369892186092295191309020414960856596651221632938036326674927206754783770949064433124927599911327305295736258954517761979963742678013424980229053500076219197848984230261692114693808380239008086160162416820815924911566326779509699696095298038889697022285999722658527663402601638054950979317594678735205066651338567939328290880596429253526809756804764436933897230477184566402839854765667231045158239956953081902913330477734958022162924704530330420612669833195404696090606454460124515213066827336202807969745797094789833146091423642663814362589486376189406142558256647709538346857313209997024980951991894832053684218371995664462296416214140732904512082102573436366185719065292538748819255609770560899804733243255604141368069910918148906885347194632526017935930163786779388813914287936517835772873914904715643848099544315737022042625498214692917232108274446585941072005966051033007343517276152990127698099382081367028331943539487412749626043829443993112965213750875963650547023646739234148987876216592666575705331126924000791936532742861113201973145635329708816254379864092231288309046921818724784592041643351067354868965002872056432625990561051100100881607294959287742895857175314859381072536509862381815317003754644485915943610697104688908680978402701810037514984931614203903489011649258653821324599954859207532212909147798154333419514391363025298320545864895143355225413840151200012408812579514147125741263292240252202446163549119286251738432434528593147132987544178845676907665524811077170815167620490092527502919331945486478699534165875564038823216221925376805855710468919967279159843222775759045068325876538458755810539260637312337540853963449901518806352270209739551967575502092897317127069016106400861173826932550984710663185039140640068810646366340925735374500014311413458831537145081565528032442634497241704142626025141804903002346581099570890691817789221229495603959259003837042049227230449629653838729769023982145623842809646671817685388525041040395274207000018206377294269023812254165658762390647191789212422241733866609797602725590561228919223404583053849607773206640928436985205344756970657775289933974138771725928738149378916454966835813744920215211025879412629133375227631097875519508234626383202321758403400285498836211054335965006473387531129215391230845594498460101250913168911340208404538587001536768715649715648882410295942180747643045647408362457590881371276610627280860550501980504435211014114824535418410720741367130740769243514102315599308258340868174972666214361854168710442096366649272685067732322437545078459345028020985824484474172293762967266492935700595984951829422773653685614965463166018758538392867721547060421680380611357510788082251333460469854747513571195548162672200092957679174227834574234865161071218342690329967993854510215183673386975997238033957255560142533912563703726943118957775889423092282694942156634622431019509330325582676216513966853687624530349066102292607034636743870036477972748179005092563260483739120529856984524918496330941659160499543880397357560473172530814756984584057684430939883030186529227025115270980483068380266084724832890343493080079265519243618992338558689368750090504624261630420141067303447331629711574950699399417161204118657775358373281589402982428464505821564210664151875196543791049733846437733143560935286053941692839254649741975744559531021017662879426313542053420922683695275081465591327646584170558447799423215303352977823564952696933040473433442862313961816489989319257363583763803576882867427348482362230625762554735709539698145015191473832164070059644821365387085425146721605117432703544625432205792565318135435313660719514021133045574236084226021414774675865420369505731748425250112533825220164671745125618276526635575982796469109827192782459107585628724980569417364266498111081710160105801408510341417880172755294287144793962732762105223831509563377291312610097612498758071416139623016687528899826650217799432494216837491542255616359821996894501361640235295103491280932950769209759637673113861119629883144258452920545935492713988119467886643473366304221607096931616300443979017241136952981452089028123042365571576733582093895276445191622672962843791775469166388946010347632719949916331545467474532659159320443310737980919383098706799921606770737723562163124894720340964278495931525589658095258436830276877895323477157582441796453321275435658171310867717500110278559809596579062078139352631748982891856668403814617601995516104130823407427170947296575153587256400887081347941456865002759696831818748745553136557916026832778529713874662513404428692820864475368671733281841652788897893388146231768828120716626788946045685521757374512775388482284053659160351846317922248514023848784442403049867475723422466379284594357223784248020733963355147089550489241133226972866829081069832535625764794451775036903175768218153911384116587628174446015008792154074078489677943430002089867894998380665712286090935550796183266379797923703676385234988520406587100084121427081694669000622512200376686501704701224385363007691329515827785546938471404622245949195739628977533749655923890049854535073317837605894671946586071549811351937057821974748282783268981231052804705987919503867521868018256550571914280862612768225627371401589642195197324120992701186427587658534948659429652106408515303152788712874823637538502239335162691337363910600014753752398745534896041364493263643033810446277530199534330427830610454690262619030062003842619595297748548375669495970785781326954234899861982537218132950003456187229243429965625724051740552192300948851393176154192642286685011241254043308997854625285872421676638967453164375278195865201324030019407266059412965738069758225100533712298212824536776784333133713513602954179917585793111629970886240005526131225011393296321829363845289685121001854672307638961018503501206590352349769968804046353550416226443408796577527116249568551612533272782004648371512943596998928575464319153652722055914505208426101394235045829865742764382423484600592343354744946161998414878949421733638107913903152928413750836417538069242419982911364018890223394327130990074163619972628059974910701080977176035646740799938953817551104934887198639216605048997971995415106222042606081443589800389388622409383752977636946360165354980093955315364264391804145248698678040962931981308681217010781365697783340248426834896541523373952610201926626477329819835791699042279627831497698550493884121977979752784817229199992235445422746907647092416087618029725920136038783450509760047404859755584125370730672367425631820033520949776854435901608478754281469124678184384315020323793179658297196385532214171443733150500916831108540656301995082677779954905480975142219650583155085653256895968339165691168316988922327710194652919351288225515949243340245347648438398104607074075217047949333658263307221608275094980632033693479405778349285225225179625169769065930007895348340564896703112099248575295082376344316750430947796035376345649430720573077553140049586147065618417088133883206972590064153154690469649017073580571538039127207102633727492085997234816391398674972015733995979086812767738024348020723763043677876085611147545656396870158627785604169932196279069133059002886825055623841278589337643299917787457405908042613920336708357397534917895774146024757898484132937003631759937629985627804270553925347531144531520799665790826070721840071346099908439543067450590601021628604377405897657410034548695949102247727307157667037629806504432298189807365865175220848049504502743510735140635129029507291998491487189582277848955202121928453636063758592052208375068543460047199476757142466481985029934468723793850098812866215346203483406192162696079465889449987374923390994069681950505583813375831179127971860848198443653210654995778211083640877723770579594411501708072166216884833014610826381528342881714370996497587794307034969735045622613664156640204906656253145480804111341318811377567276055044895153282621758507791958912388320194140534047104208915423627974506181766043565584509518797406451974405305386067685897532365878448352435369355580806177019607167111780065310841686676134428367443121124380468298561491542584944567707551753028583859483225770588501822944748709605424106424402189549808796518585476793958208567928103695142128039197113713491367855257451746488472056073592803322005870731937330379565699988398234423382013131734829500191639953081607799166820198036212655934625365448722547531120444698294840975292221122093443782899431820773476319616420902906085277695690601272243648522427126011153512383134310777888770627894842182416584238532239491960298636016305057790744159260501645302423373127918145800860189436241279649623098515474030197748771004072352871265139283086714423493564605374841785535910127943747302883126728075373207112953608831204682193130695453886337234800014394361357742786775109297785424265366646371305713777520785152118607659767459971374327192661222732817223446270428791874303381149467911802213082102440902764888165309687929574847509787763617955137649864486533327419186551671672304134668324712406420569660470650715767897404269682811014257800042006762743375190721070200091529695938820665309044704647726059898478003276170679529665069825466944042421138994913455619782208877600401792013088717108340498227909777302035942589704032548634404234453231431830393151079697579081824605401346695359351949660034876708566329868620523143038561328702566497439873719035998797899706238823653491660711097550095851932094518881813978311528132382027813312013986356533091033833730685362865989670299666768484660690657049071393442536634065265582239968839342857648993058986531784347225702908015220907504689513982827926378527823350605946123945840712315293301237969823921757301853632390571836926168691691748579864734933104558725828946447852985295964267924965508968862741034115517236638020308946549455058738347119057412939134092619517453146622658260190793344632141914944362416966937450881781214912118537596287677118471262411269500648214585114379086345150301481018596651972785056940953816225189275338034789787213172339459403124231992064472577700022374753847968303399256693452726824734655380220382871297561740969605936307356109844362002532299550690401711600496837203511013312256084753379680542873657537459441244480296942938128725153718098531569207716507001432409223840802991218075315019367751129554422408502390500088063085735232382216858683482446978870378277347201197792341570554512075867255595066229011717227591024591758753021233198849004663220282233579436624278405218364715039200972444814217817725343883755188361216971294787963873429560541655786061106514023515573116852450234519260356198069030942414525410603846236762547968668235849560425851110232415114793547643008450999217859889386553624576744445443620112969887479598660137768217239044737375652438098666430624072016060461506029137189334721009185713414783233507808908600281002350706021501852775725998026958627038823110401398437726263266047588115868622572748999326660538483801891156504838357255071306566897960800553618532231983701118648023777716928348520895685004350641190683121521846871702961074800463908001011865138200586101915860369903188434249596172616825337696034842330408205539276984762975026602082192807763628985801257238136612880256939890360797617597104138914444276968055826659039440335379307815044004669787208106411260807216360540086838543717376245994898089167625168328384637915986430677649095199958993086964692416805521673531671201950160577544528773941766910795517745933284072141913052002676732118841540708599914562376373194721259663515664493010572769965974430635046792777689885827426153325130471631221361914908828694424663862968692096787363443922477863811725792802172375287295401469267400992608054215338118100418302838014143804348755717375451028566736152420700250922447364101061386284665900094214146171087446858107346867070082447906156091710674973657783020433901625043731113261085756488504913339050784125595231963712363260259773421246074985746066305691434660038406553575001790336770492281001321741911790307975316936756116100012412703729905972042205059459024225272374579874541626104658724185832886232828163794494819083921506806274491170004593552478139332716266682361184297784604257331932682310204894637454008464354470708636740401489069319952623617953451710765019550974727442372715375048339939430109465643651516710006440077734979661511218811875332481001988764471595024365040590566542914866540894226565776904801629004359316236872879064479829307402032353413128046519508405140132506606049973157970208983042514114316141821131625873003797405890320544931486246978325202935795803070085247168103514796022310110977000115368504009148043623768413731512484472535238331596989228721511871663205641290623723763741790793055433653840057369627052263165988230768705166690227548810745719030583942695237985223390968148015664980507464860259496379406161690450592413122681995658503493003609610573464968316326538225131316329490474688708102964639380008334397941321428119741558672782229763734028679743734762271531046720793281860375073581268959858318565777396012774408359322602769004588587482662635122191388699296587197721481972257761931024550332833688500034762359538711527006424030084455824668125771541773401708891530497022253959336400575336426982891482356836998052093954670248517807740845743430664725743944179797933896842893981117904263161535014177185527747005997799468872416860091216387418416211574067733121812870054012691892838270752990126985007681685953913612727213974969259142237551730394833910419224645181697725719488708002364701952484834998941526703401342978515062839087376159515931003350457857790869581410109381036870495674050070396164301788073272553738850373474992811988303993777825232533723756450129703635076248266352494714724976878739971554426045122350605761733964897207854036870223015422643065217398072369946694712374133041673770076032443435351369810003973933021566735064874181386686483509117668508798780516601593607659264528166140995815410756500257888859757106732296666477069414332524898598019875123188672232586375513765242308536057574042346785909133177012727133009804692947532838117118431297286042304341934877224700112817649043746700052623187133215401142032638286818500261354707673106018558940592006963600731662726324991878647141201787785754256278573604544604194996687378598327836517706319092820674687504501299367000819689085739676681585807901449266415964598428894692360271706505007479480674514140100718409854233240772958780366032576654124307720241449885307182019864225716355446066983734662139553892397380476267511239765152862808888771979986139970427706445161477974901410475199051614010270641355479507003182802984643547428848947033336280243655560897342438475104592572967397006090964745788813369558510566785663369744554982825570581612882701125390331649556322164095634007274214480091738205867445666019772636337071936070331140567608166122558035649757040596173915022643955143743379511784136730929382478057329687116449846272864532525944519341727518723587905374209261574469916445706356304070273585379648748995627432847119335274907951936148337879078214941482595389300733870393465327827640993242587773411472516136901141708331261276785564627592222741519352626076872087535778632364698905838927169156469272748659481305755271625539766234264148527185895940296097109519939871052465867099417943383989150197299006377389138517114025903391755104378218802526540710924296004909542531170146517571359706681632399528973326060283096812340503505152407998885318817132607891575015536410566424229910344295431844795583673919566414550071909615919891989389555753892460426445639004275129244013842786977922936849367926392305148570582044712677372609517208686212773939212065588503355319105051042865790723354527986726621439724063556136613559912551541935377939871163715961378614311757320198340420648776091108863075015327066136582499697282623200649487093574409109817061056177552075878226883928073571242134570145481506518105208312475007763578191737582762950290877310674477322551885676886531091183039021143526988696943356805093873522966130041411649732648659355368266115352741399804807654278262727679811877087319482664168921270532652213072286868558023349990081681320923127233069634295941406044874810485753972186507458749940055323271744343463209045990927527007065681340362317662065043547186853746302073787312106300263694468116822289228169291553358824270513619434966200598433600969110097418579411370828177912259669458183602939997633780244429501127370416409922788607959223426813759041918198945165906072973012808706365724236494078885438576112156273148896274353606343933761361411511709487796601822572638218637296976115591547783526461385752703967765078779929686863953550526860339628728872892514914759979196154708271939442280437564955668501585113966900649008342629558426482816024188546657807270302614548334675659438677376400996569366405812533006272550575375277025040837869107632026075029037856909716807654721168040235243317848582442419150187170700298293733910761419273253144653408892672778512438823358897374862961383672602959341147090214136543773940073360884633112834479446412432961119263582811653713059388260094087248385126978292939578745249031706103843689822861909986615547190383385538315104064638412244856386791751871516029991038703748720899567060893341324931222707769099944868522499856544088335452870428052807254459894629314294834736826132524071566594488432616486431431285667446785799913530396559225031510995516424530249641639602034465215203670983679846959967954486816678675060668109729098997844678828468640539349773193921603777505236466349091765007538988002865262772021143721615493521134958141383284819814573295929749150123142863753751563931869736548435015140684524998311991507278183028927163268011711037811019560111444955045372880749718304205900823055421692836040962322868771716335126117919811132727416653387782980744581477053992742751430448661622095073635095046737335595347599966582099864265035393136868295682183173162057309672306457925303188943286338052475877863204849314498844544628658145603994070214168521456174500845115369188273836822374463049754013681851309783449634405298254280361833917402284614764140273201235838597309467739515731905568707023390522394067932114389600522593614390368196048140182171051128184423432448589037948501543229650977366565446424507941991487434455535926465085290050445360282358086746055504392056711304365059616039787471083174600102628954298467087385012680439809356372377318970897480257048197561686762839162545968736106765319059039531050721612213688539755336366547086887126474918934363153158014401131997686703669898291326299441327877449273740434116199147215904277218169930365211859443591882123354301388042772484302699881679357508359703158588848912252091458527452874958931553917691908892957261223654154463425289898585275720237959419330608691851319591733345431437731288687106901427604902337911355916703722512918915414656052623888936769238996296640168068177680169384675429976823971328287998693347172304806144826146171441654092994013094807501563008284585908576099588512311975030917991832420877677617515036945649957276032048627294560477505843245402979951019699891228401673331146636593460842882665473105524838906393657874447628190882463847215461604772936848534333418582522246445663570078627073080777961166398905637346747533148111782669003525852685012258157108941607479505951271296193818289136700156983832718243423651616972857666846927529544700546046908445138582627379206624713216887645005656138184393924994006146401320727051948570247628576845657591350518999675244562172345406847695029366959603511041144963789561343610154123054251263489782065425467970878982973321684543810117480484795420630016875981630303918211961885033200661762219356005552338667957862647906334073893306681383203445559120887653768805172263518333761411777619477658605509579280218093524187385877547403638823897987475764291461511759425224479848483095586234386085641066610439070847885658765238094189915447011164167893378548325793772862322948622777991187888556249099699169743982135149384333825515937213563998527502314033200210959567937185778600165580825864659489720199317512034692078609030330045722281658177880053424711714959043898711214072656669210583000656375079247244952951455590986274516705319215759868485132754207163831394114145859521031001447854761161797525459240945775090266327894687153934383883160479012621365616026017958345698990167636287820967840718819587784811655220429133441575629060487745110556378846399592872386639656538934243366442817313332511204463735346791170901479817065843682433024144934742885322186155253337878552524082685995911439108644432092941939583486216611256004806503787663911679192621369600060161566024252489976824201214953714695294330764470763603505318611418609850495333815086755005792677448093208513663075301984099727097041017326814427801142679115148979863584625763696315681241499854262218584882785637674669501253691332397608483168959260171677689445542942787656507743636710841485212216257732976636453102240059631259016941159390951060967433873132323501464540749047265921010403475911610242757407347825120285956152649693253263515272100835367992026597339938052389644020980798943283669733256976022094473374533412182989253502575822460527138765190469993260949328701928919507090218748049176059178697377346903125689840103529231160911855334907430112281626754469601284300893513780352788171990137737994461443127818013608423186002433354386438775393730054109844082567580386257097267199205079721827135622398986660632885969159246991675866825154409866194151792161646581816595576061177857522548325983525990887539958636793578200539193505910768132987485618918006216633524045262836193086421801562512775275143152140575669383482061710347621327203179699685363518687811032493047441829756694245046776096510499174541349472325089840920477609474993866696980105655540709338648087103336732349347238076928986783178198090068486329590460585740691013582030047046830320390041764661165812881997748329000630118318400679957241161624033459974897134109571799237723974146894411010324701861907652989435719184810064958387346774650813407980501226756479876599480856826199754998623225149038961583596182802865041764947006761057261928184392118867621173410638637401486517259925956843301608216735357692423311585227936013945012364338180636445113974757539493836156047040724754526098319989894265100681031445450340635524487974754834198045585243223426981851770553245106097019786352381007993522163317686786377824889403852031208198406665612897839750030624616562123740731015156759535369156760854055148983614709843092926070189333857348610617298595402395162619365328802379819248037017924358993725304374938290543397370020893555978909633584163258912536746399400757784043194158264235603009321278485082381046959516470679931648690215632654551593087012813362290590300613840952420403237323717737517053237603890015166952358064230923151200519263730426853347036604377006473994107411318841253774379156544519622649219333524010897148728113104630794987650374070146734307560851905250155298983695451515366108081432984969316158641696555036395264377809347456225369462390825654864008059121506071427250075761539106366186244512514350882904871292996118514072765609421640113045263648497522243622571077897569226587784821002837833123705249935609688672350753840304207161745881029988598362947326540110147673258151764232334393127053906913095470086089666505605459588856204424325171257361000891883911654650498645237522999066563452815237537603817434862976069973301692138592743790809250772646375712660753600616580141022495498500382627358444595148495801180118956693462938893593115448972702558349974613771637649090007016135947955626097679097774259354900936250200903462783300808013938877947650984583692717078884203923721964087258622158408737612854250027547505710653628015974884435478586753491011565430038071050482064303426164167955342742883614593014933104638863995472711494425464866376740645855418089399987385600511095246920840619800671078131965213521436388466682771700464356880060913707582585137801951014692400270511192753571752769364625781039498621469614098639174723833887658427876097768957870792451582092218829769612361365779525891740435724089967190421103092569530098199411753659951211452061227634177034969993515367162048998789506172043504845674281304194001476698378954051593550523859217707467353364773889099228683149694278765192693053600247082245001183385255770155336308946081037357353502716500072381753999752224698897177553702293689424639993654983377047650651804692009221433102596384812260190359619081979027161872802977715650591389371664562935053500435923685315069489921003255801217181281962055599354779529139650082886983573712457241185666450108708176881111285040874924316652602097430439225453760978378386144763050516558299498044517996161607348795127246498454917753989398269330675019749973833439532133666265578248359658728357183412543928922874480372931323460804429973601153366323118123145382934199746767433000498037634045894087408718348831380468609708278314436991014903215907048020573020947928502159037116373262233941306285949352945670359816567025843062876483960745940191126624561807085303426553380467600207656747918190791360044712769931589855893013444699302426206335618869797043301321048312109177906245521027554648066723522925699554439856801298790025997676119049433358589844001280267725385888341489351079482320360702551839603519928418035140982906631153618680215698747363928451053486181146181641991901846075317222776914451826654162589194150967893155970360921478024225122979201614306836747409175372255536966888309166871624221719978749945547483450086762914400814482341357139350200950236785376607391994794027150553142746772053571579025626509596111439928970965316842790247824843759054600889744029766710124776432129433824518409044506150985769786347555510385298529215200183588490569317462987163773901357096800702154307154438974942196669365810273731095795974229307114898072566528565824577893710179535910460202720818721946723408084606900881830151969906022868260080430511999174865948078304225737837261849660091650000199023663108264856205453966580306141306620027487324264717757009195397357617567377945597538774804522912306344246563765257348264210072857200263627626037089964962919720051226388501522587488237375659765185293567903068002764853123354472317512719596374071684660949625754503401508512987314579504045589912684452379334119934186170958041260521210309130620567699174662015798097364195624517956441025166896270405486822655217269981684360575517064471421139114790561507668032310689992436716411567982416514725706834940654939098687142339420672414404455476541284360379841295148081092121456909391683706562798042499286112162621150848328671377694436033741443690491749866954710850852880102636814620443009453228002314071550350052515157523066974529812718784362792261409954196281675309052392973897371687901713670952164270867819313159204586782099394560987164374862404546051471587156042145331966152909639041747195835311725174578040563943735752636167139924243419568620151250248608466996650343046995634548913138478344759592001434801027603657961601871302223937572838021217322429765948536401839312367918650344338529035175513250938777126623680640360930396383993790937127218139068274082487593152996996854461419737887604506427364223890032850505744689155358699478322724462809491872887959918208208704473281432271118698401659840702963497518958417836399235803598370257725867522676988639168128415540700033487916331722960290025684496554914903282745127340111792952760033250583196759505014562576123352807995052227069426904406135222303037837990042539557009851372263624775219312106534826440214512414178483624693746719937286339533500967366842461827433703993126507432844067928362020833774117049874750608616976384587778124417508827819169676255886939604404334957802614447191754177203541722200141887221827964042514361369324327728516048689432613145910925310807591024018310911879271129207590185248835761865889818617866965327051225279699996235376387918075821086248329801073030134897897291488544232525685337201088045063444308715417932059597749674432538152071666346709693106545367292610984338131428993776470236681619879449011076735176643110495593344855227332151750404496168674200565497369112644066027647810440158785282148913373625412897544051418147369077263364964507001561902258213110957320481617676964317047835777847966295072965262622111957281215648236395891167642882028434538381354771911380316144589673667285659435831406456320008360863248609407230823335455306874476092945708824109061716501038926445405994026778074081881132165662152078850154492793516883001820238241249612441275665751930411186817591152137509282371666510187294484061379101049508499429928023316655964043430718716457402276512952894916684026396118592138409787402153485789864440705325107556280572606763937227933332684815899901256415672420770162376894020811943842446689798301745722566668801319904633520968564929390570172345289507274417039584578111480426287024979176717433531451085615911449090181176577721719952603518772483841064665352243210961139629327678706648702645852685143107905695845267857047879355872054682937248596769839168752283566497764267153670064420149259284373495676367719542254913502808895567120868898045206220287631671779073952907011719729655046731042317660153278760797955037550580946056730617379068594519109434841041009518884482736962822112112045305254752050496319459882424772316291181304902359241288307129393627461444244795177256655031821173112453961460946290764846187772904853639369324612690490485940033950417649835392813051441912107695903671783344883998450912133979307976073276614296635587746944394017959514342396166747658329614898501232269750557296468085910509823254014173020784269651038762814587065757990935206976643825051652333050497793637968138848898743841438075076593765000779524109984447019085968729193027125288957757177352402813090566611874664359410688502163429931402737432163137119210782817128756475340830051029768753582811262314065086482459711437271718691283619002319834178876223918099760212817385479032364569860041058903944822674033174757589931132118845224539400214281055940977523287355731186270873078679744912953639521499205706895126313749914970766988721597944390504627007590398408086694673455149474397430203188728102676972066039389310893927834862101117680749174046369956193104686293815597992990814887905328595264444884468684165856687580456351889492831871090950603605822947750863365123554995636428238037628204214923724132257240386473861551940425070372466188182276950444318366815421001678784844010149314112531961588772264199042921515085884313251386374715855069965071281548497510901956232113507494793398629993304509652573590997485843474644272566787496570165502697141552583879204841156256306585091525162395477470270757852044059828016323266730554597621145257361402697698138282803271008364646032890627281575966991629774704256360140002589202138375642303388137500147912657728550521633012316046949049113471709545779505089361316581686222819300565724562589829962124622915208646385268763532125283434295037015417531339453198789347303082509154147489067638192180564292255442220743446879700924985703198048188553569982404025578248108261340073153871377477807934952221821413575684767154269520148370645717755928698567136116539552756772552567027785795986328708170358774780284161753550668955167119074789702177049187580606997449095584003103625215310174638033445062335946822117071443082127214963427197654313919968902128608727520732428762380430730184004117937438656579986869634091205958809950401447048107997970635964274440516894208947711860494299508792749556289966715923433096315910569553923561715536364601171431982824999765958954666726573544499120160361088397361582463790124413754536025166789117310656963001136081536181810966592077276226971709979897520416367661416353326086425647920915278538785232299554282974385756055435070308821239840003299410347648426076243936132700537728841592273890801963803613709790432062743772075043938165263384324171074551350736875206642061233568701029811083771986864125711407340386097300170857821727328881347881254695876343279910392838748371632871017657764723203649398981656870321909495726647220101517187481535432579865945187653895808309288460286221205237231148602835659097651153315680661649758413978315621617460501597310194965092149862170259882348120703796295039151885590209472361852759677150284840570014966278055541399842704020148023883548075150351210618087796275203446571050277514724869643705719673761771670747692852212763205929613768194273804413231883518872900078543260255089437351310532444058198725357239092499406486798083069743261948175584455009209776667974906059921772815600353477865773024094746829503418284604821546673014851114963512988220650278775931036065841319768193940033777833731522782059030831627599909987798222195811280635155528260160758537133686290125752410835932389601463482657630668862529074010496989956498935295430527719024457784565644574048952060498664250425064365904306296256392152922947842336741370103800176104279921009377631132724310673694054516394319464949557034586820599329147495288378914937957197978581926213190762569308614579903145847944326239615990219782728795729867194016770127167907726963291052079942195791021949634725916193090097020601405384150745758629977308762423289812662585895852848821973186045461126076558411600962142391497950079902916812094571989706177161563840789626953141053782397668643217953402782636000430327787550179520587165447505489141571058267428968148483984330105287773086964946359362940523441549755740085355701538604885867410181478874739718952139610190275101607544514311076176685596209454214226256602322477907181375959410760857315590157168650863552716663654634763284260522092199242724660550435186199388533872563015104235714697184173862883342475588934729344885129534670024257788245211552859900702135736391912994749280396112963892846278419292064191653428333120575147813547779291724324843594455630587592020460804959092148384671619617320796395220458697987251157833415913263530419580635508093771736266384237208478336495094051255159307219022417140582252597424995416558158105397046740558199013373559125822495164953591372904915839958616468338396325232547004164452875814929905963445578772859227181540148449014520694643761022525907331462083138166443135583832875356112294352731957915789178516303627004157892863876500378121593373611391777316323730268730252286004969774374851160769751421332215932864389097841720494602075295373919719438943505887990467143990137291154304010554739057601642767676120925622802142703724176317206999605884239844176515581081227846618424334122744503761435456089688184704145878199296864325307574014339983654163466701028847200438575375611810945046856240347168400877462250453809436623946852730196472331147468867563866541386499865746953845620736259118130422975286704944729367901666764760896498289951746104340255023156526153268019615133503865013997150994259193746912393376297501075246340907166170381745931979806393672789244417599489672881891962161237290346922508879883073294921435540353606619015403052657854872109943299902638785722998611152720248333726877266809121515858802927178503360883510166636404417403685052481676110247667857527946490697048886171802635890944974096607868329099504083386624277598002329148239020294113701258356411340593393779190764092288979467020632870786075893959582305007202471329810750521322232834625428653144883521500881522277578613047172379824947959139664457092309233537382302342763712510884622148138955289828354048626341446587064002874359698307350940953195100893556473628435906726141065609849671074159252071062548672139522164804035759136012623970990927180556984477238474873319713477976707710273620957565511764543083232554257000846547260936917813953728675205199229535603011188500468835600866422775991143080468223625256381951065355295867551338108481684386673832688271697458068961340237279152381610955571586819707204189268887234826716860100644616680339400384604016565367177667960515063327439866409505175795436853464032160679129067190506297201831229551477199596546895532437844817575900651782962177449766843607316379018210581782769905313031888357623428400400203801434606391406245160526770113784421732864422221281767010638268788000265152735518769450511688145097260389089178070853745497811052010117490750648717467441969814803063533484038215032259717384973016289871628671092259044382214977215373938836406303412942500062505298783635153155069490407380904049215548704061508432297321130778009722815540611448339303884212840721074789153203981821101343085871583841627693872613334483903063666679808733962775578218870033244505646750588012545368084309886883222779265357192004683928928593785303709354481071521474707510518392166319854731243294253239436419556699896141186441121595466068214851320634727586376047658327863928198672236087320820560157398031262305071566874525369360325303591560698566952365057253064744225360802146037621872420797505350063826954802505444962324389561575240657287589449502712688289996155540804728848181565825308275856359400576536418088082420991642525538131581742835668111262973000100887346883297102466424820191672848639000674436120097350151787912122475553304935709121839830693639713956365995182150800988098693651116308148450776102836121459639043866105973955258275265855848925565628909594066110347633544789726322195512731510061957526085275905939898025192987364959586472147211883060680698773172791737135216039959519224581413670780196811498994368291354734536038025213634662312685878122908742276634163214333532813446867844543018900137235994026059575447314721328131555666888854561307227482727008698402168282417712367711528387248335402456169906927131520532974946938689940248118824767612039962646427413190261487565455343141337007361783694251100441006386378616733894545711738057319187960295147243318072529986480098005432841839110538292549790508635684255010836010801412355886130039577175150976066181210693178408741271233090054029434445814247970692084909656660979083707327897417231393656931466442475172425599931485108117385543124398657200288708641442777080010703945809278381417345542852355237432786614824352256278430126227913536874679068521570432116383020661556103707733559922474963829672238178676048400938003570711799168302068926889436978981304976634486087061514519974647421747510870477892130186823216526413725471293473492686695275883554379458263413665655063232702144342470159722354937742266041207180904865628217978413406117214326285519866033121518208951175272610294485852038272222857080676192643150200276180448757275538196637742529519726920610891787041753114209092275014105034095670399230375372531570933809281889444618186248149088999357561946667445793480995930567443470791235060511196759257334085535860150221273245262549439464158429471166517594209476336201372087969419482358066146892032623639995474781617781535269474542973185798592577587399769478084500112106515198127612440305058661816183816382368163488776377834532302098214711115868170202830049713285403457084315767467177386990916447235168108199193691497645839615956799443003038902979335755472220102531161344347292763504245521141120188978545234470735079134796598991904535170718264625364252945121825498370030832931192817531219504203945764728344044356017142249835632514387042728050244947010326108862509767091472608041399393261057790939194390292811798987068965760381087244646274293249763029864865182447807903924227714323878058043399057729470377199897408046639881533252271459011836050630960150723205361991156927373850750117693001964779281536258792385464773555223940087527854519117237975956839677500614800938789280845659962262394556868141509180616693544886014595609868934043906645651678542252086345634941401334007276271294869993091163510852793446552633796877879034723704871369760414097510688623420324622750822398764427149459036870165782836357445453379252184804581178790723682633957550803442915519074052756803127703261215125014757112325597616537267412575176918437050730090263172469745540656338661017059428159114415366323264711158668018874717898908349467847753760598323640868197644701552466337126676338663454299764263457198539866269264920318127338419720879585499508210189003394546032455852293667276210157309073574339943633201499359886004694277527647076426451162444575736889006806870543435396899538962542323533235732031483325021131054158919062502826803243016265687798320024611784917262878438908482221088984063058382988351534358482226082024971034032261416768015073317331019981916977994620284745835613140236769214255204167577324726648738031744882726868134112448153077168684776944304788259560148707419721399217618766289813675793376732331868136728929724360329135629340378731336556621705548913538848480278276135100771092223873019164279609070815719359590888197128345849456284981680750617574537170925141606225664555132548720281551607034896971913925422761120211453311133820992674140118170358372661873086786457908943835491723518524720422860666424384704242555724023026412656495685719791382055045140649659595395813854419422657422089083183058951536374036123432400243798980625061239771346991679040030447306288360354683684799175494573187818386842916643669681586793686025643395022301088876774341170797820146521750331168224267341662056692188750275711934588260458181611625365702024700754452327566137209399576207242275274461872992176228326136718444535174273981828720324105296138309649431160596102641128149689525051971235905886810718466367099190998617369234904686503652341373876182038740333547417518389581402632714903988728891584924836612943983230231365894016211589746491940146842869029182606814556883442024935624633000461473066729588024874132790509290089047631558584894077290015461383678332518966617377263596596316137637910350639133929531997223042801320366381279237266866482265079036785111163636890763939312745339434976565629565827253363383973907076931277259060362095780959429766440808207594038064814463379268599441930256975715576691713844809074950706364106330360590049077440547425551501513340091241636316454236863822641290043338463271720250190000265520141089852075186307607048941174151762486983950483671917337559542925498137620645573417273485988832945804013584297102457050406819456167548692491774332442097423066611970534215870310239951450933731731244541700490689916136461789822871911189347756276042677982548440552590393783668253873994434285725163637063024950408737353636222690646330516142768227863637238582392168686274005496874091042364307677589859882406060581295136910673958751786292235515197359503970739697356438196564904597005763754866904483631375676195376720812209229721796938784403166268743698104803904826957589048833811392922781783031470072759227117111887412567303622218802111577608674240001164891409512444401990027700565119467337824540686624242834789799867514406987561377303325747729569634289750690110501658617988461082996127491847111016925443423366535553694392257973917064366667195932920971768144564632396618875992298799610196404168883260217762157799528108360652647949195487134550994945810870993804615950235905160019409168454197075003391649867579750138381346342094906398815612684099091860692663540670434962652526338824882756747178051311523907264868934408839520990172850397937413778890229020350932459784343190341145076052883417096974877247509817909136603304263303753943273027091152905748550497338801900108285024149256578549866293447394662621991322507370767140282449842098141008889450542267820382206855107310653823900297374213007176526804954553051964179380380832198928908773760762330204958654264086707111151096798012037450865959609757836604436453887007725268395468880420659928152228172446815735664079597734928960045578160521445978925569370508913265824688777191782969857425994359272615754359005477701449254606096946789039343323486413801107761973580771993755657005629747530648519443973436486903254554877971578937595366970331446954652792305644917227377935854218415732462842118002121412147816268427454695836926440855977837692792245882161234251467416242204541623877580859153533771323193789645699847510824697979753208617386064370780172626292650833307850949370089314764847915081444283384632154885717536937237472463318863016930690816509337817640557335896517328498277501863084345521762381560643211477822718767011252370067205764505136821829415009085235055947397756551928270459547285043161612350971733650934592247129416051154481222425278515178131132190519960539960986953195946505242447621461445551530135046568307880056990771701201052415336251515536349842939708019548611849339916906772486761414943759625442706296561685492456992667735262873337995731988590861809985417463030850417893463723308374432400803614129142730041972965840943770727232562957806049069458892013084398920920445872641619227675473874165154435627902655319705938573425143894711410643207872071778596953696775284735043829698067707337914432736176242027396060218264408174936377771281810872884479966043838455494230228360769780261831227865617320055535209189642829142311715564582901882760937826132858540444279414327998581790528049937373169733586420246410424559896518811947223369011411435853323234676612884775817457321155313894888946813591942678782652676757903060166621581890271723352907749617616093140603812129310341024689040136878013094885809926907418062283574153677464151003335653103415930220092423529309675056497519613894854932377693597976023114464963393773777196430341847390558489898516958314100610645378257888572732624539550268603576101320688047919047460475886716438269262295960360179064279087725666902054574199524024064305644621915048476646175890335089438440956822137601214043978948048701744580753440438092570996350603372650067385715204624894560101615965870124567454073418833274604851158731265350986882758314526101092314410720371291328764856958577630424852214284121161890072817891141747259022518388925767939203571605265793389132530320562024485955065775865278890819160875914278600728084999981195294052873921819851288106553049638054768098023416546727277645967700660628586548561293993770611388186570663346883158822753864123352075301090852655279563709844800063752582722020004916071331914425550921454914954389809084965348322744943666804634568363623925658643952258581151271052009066123625689462822788055871559278813532634920089986414635210573280320398617624992246828340380276337051901301853610083888515806185913401259110789340190776102229861259656220231788387059235731070700563846307677831938380283932502834920997439697459617918068056086582041382998539940034760854098922895322896942062497366079947688666896109250678699827417470076688461240393782856479945955265842070930282187291254696630882598737963484442534184060511643922778189893553606382500932148949081162725699210830900147229083954859507633483489893081751043352171379086880853382473704164256409544467365376588538018163543553218554452915325742140006902567574532111466539715023205996854675129541286478585927292847598302306332275764946543549323045302862889838916293953225210795536234549663549874989829773670250938965257820319125135727166027411354418703507914134674060978748281466378075402478687467601660491462966753903492787123172976769192050438568242837269593523006423661710326775652958735552208138692832259324651404353276118037871518725999319290821090076284182891876039244000563328046060360246421750210710689355905935435202304462893185756519811817337850225193429641615485578434606063489338901021021015240380198133891309491266521990345105111617120161310413862762812176647902179633997815826333810125415885820734065159574919059450149916805146934979729922635049434828295379730048274485840792345097761971579157280809221743363828498522054503262975232415214216995575156998517073346477672064982520040233517254071950490415334528286413668468862713685546317194358931626709552132550027362106322785000244717826243890793012488283674885853627173062878692072173210492053148133219703209112091852159222370496766940409158047373985887257237425476821980579923018760367005729862137444798341027876412664056767986871663647961740626549901283418560581594577188209771549459429634413679725605423685439179220922008708291528834167228212315419445801095031781079657514094476655992536605447800201687335365107472027424533653965462143568671372282685311386392725810961939552262000021272176910953587759010028096647081945818760174003316584783017764633941126206012487434209627151136430122924437752066008212259371073479282506414110103779757444031075076678529859012439583734492220245041144349137589391287782789447296316682026310433372157179322607716436453926001927140544278740323490976827077575165358342295309253786041786298796168362769516014143772080382617206101322304287475843222775168847915888013077004881788074273679092755309477108092616568198473466972896595766417441804476545286018150789583997858393219460696128926307405705892773233635067069327130466816275429624542934822826647483547437203571459109800224324747935656852404987441734852951191583534916020313575397379645315110377478477448005254970848833275976793499668611980287345905814042666221116947162936458346235854723643477897948531700987023993281563213116711059979456107981803307755433663746596707307071750942732028206656308815414598987611435763839590068739623381816763269753198976726400765793605675343317915003440284871042835029056589484381381222380982341411966820730081744757199719033840614099017990386931504325435738677401351936447363448121752041911368497591379464514991797138767830495452816496286508143202265911642536379724506389274632909118681158997462781835535374947382204170721031147903194504129597935990298118802338100814969782809741536152498210340350768536054951137930916574113443914228422460453448339221104150982563144896891242033403253972523828274168024849407607657611487699281867150503342449287590842094136874824781993157516964133911050226725594802329369014949436219733736781477710638239169923441886913685633204704050996572319987121499200575479478678789761785610403311220992027102455286026261034798813980216820553524966462299615499467088418850003008453419960586116165527154017070302506946194568937491401714258309057667674544444307926552889042195208886059617303890591823482896148770417974607233270134277751239999870275148113520801399554101815124829542620537181066065115926825792621421334537286888068730550267816478531936729402321375904898735737641304651301225504862590040968443727783775098719724599286156181270225194560657648014030501058239540336512043394194429612185309758675138368625939042383924784886086120592709755739603744441667996608314013461031914975744346197365936452942194320339627332580701634410342303911420971886262672041324045068285527558587077892488013253127548874039884584945645102376764588473722506098147064883188895442859885737999435806277697158904679299823091110250731375062093274743265973252554598604429087063527287085097410039191762253471348915710773537362791724806022247001164700367212696875399930142483291058135509764683683307912221344009290042214886767786232105165405519037354419565180437714945480412647491764816991528397591766278979795418440275659216468845416669204100518785713924922122699960203321235989601277967531198253674470700779613616300332854334436837409386425226050773864168635321766577442646365466030571335220194414286275187366294501463278242941831849770669882141770399855764280061898250244364121383648736296469387211705268318572749936141477317435760806972804556312155076032730199070152485510227122094661431581121984758545812814683426924553829806737849854903959154220481011552017447918666134792996390080465205001472331036602896354199235534384362111697055695763440122438761179745908939925192402204649250299995422364228879459014883789959508753363400826080835424698777183130926324443134200386335547622042989917808500529555868607901912633905793196734230373784191675260261086120965261759454121771831473137414215400923975986296623196436835960992955826236529503034309290163204193711701295493953557611340991486954494893114217346979189417701752646202963363107927943650242608892196922452658414113486107572576349850009771975108543818852103593448627842660631878079566428611842203563122228869935767563296985906580646299644791470235646711364488721958174184274830116861200901338382096184984696179250215314033861257941002830865731584127088040889986904175951976119459629857372036265395662980556412340835087875371484093795428858250934424908323159279385111397161217809811378469923993647632515833631844951991714355484882340719013002421947059484186856402243892023711205120373278547755450819603169381793807343403045600625845596048699944086625406987641074132884684344062020697134996327713274909597996596600607079329293372757157753770090319760710547840966594648290584950564803898171160742489741569998169994108675060683713342084177087377101756734243355397585027145920037078480253847741335004989164195150302578556833110902173930459683326414256566932910548527110016437370842820973260941304492227283910961569552349802574480329107793189382923791957183521556719186818215179713945018922563411499655174357329430626297279899575712098100341131638533169601855615171756034546255771619804684895099071882915774904274776241145450448857048546095495339251148091988019826329254631523169829745678970063465208558093248898688417884283429394889951943497954669296909961171828146431582755154651491065504890887054485267322168638061871026353565498866764059865629862690571654860602405293918005806401078516896646178111744577420936269032849381398772253146630868603272964534838453923170026957565786247413846284733157846967648333394537661663692093254705884127593230437780945801570228797257641826749630713887794286412443693059658520214533145938999418022567138778101939366287035781306223479470690889940030521862403570283386229872878911331720610835599585273283700478914482064603817483243221739086664725336882097937589710694053817654391770314188414826915697147958222073874350742719171509277151946187295411821087439852574161124200356405762417685930570971164384048682206039004864780802352699684463687641670868301361799251126586968232110685422044272647133255077273849405007042363777089772636234701454449759208398857006464129381937951994058449515954444358681314202995185476498374333736397461903019105285152855307658296771003034402235618295103144999940238907624312091121023878866652860259972034524377186851247521973128206782464126013820169614617077669945561974112873774091345535900699668121047489807208417871798721635809700080364343593115235995844342434231784409160305414928271952713415055916066827291406737394655049959171519272036347181440770697777524154432432266280516908578728318307970090477468939134600413040113900960612005081408148098252721217922921338406155383665859244901776190223802115148857810580852432400474874646192945982550187656842600712255966626602642566395317442915005605563362206781149822474121618180531788408332552772394594576567498419036008816300343879269814201963779026278215310176411642492893771263581175983352552675117226040872202364257662026240582579111522263383836649101248744418770763696781395880228479622989564744491488840719868140263554508427874966012387513420981191883829164559881586583774146860846033428433069078252000889352174869337001407269257321829929997459912801090810473541321849620582962440528926074456139561235303198908364238936867319584209379034615721306968496556386862140654224080408597417985018165112446843733868880845388013037741424491122800405851756709745183259169819149283649284202837051981285733706770517917072786370539548630546629496969338172871108281367306838940763410367320604184124428641138882417879193840194488484323572016287560516501748910963844554091666763875400637212413703560305698324164498720772990305161611192414350388205657848493521631543169272770885258369016382410748232805058143157955952819446816513548854212160522511392908977357708546571594460028700680152989979820218874434129082907977903624938008787693000931610489613430510456833596992982567784312220755585550480693417148083813497075184189592115547651456014151870361027268742732267943028615669172716802901794898413275318020004669987948083562431564858035540192913060941196845283420502402819554362243744061582542867180563773372476283580466570103470016656785611230898430075871427142396829392081738007811510494548166728537083286959386556231499190967852472359178139404582479289298313717227323193262070537787590825403984827311661869083328928783521504937775098685520523168558930560968942775424185987148364898527316922366661475866647059473239151516517099111696383219483905153255859367444037584714514256437877440181696422374525774769298120074770018459540079952241340548426370591078360643530847831427969688417751001023241530719852883275821145570447303837780186846862745790045563831039503310501317025545993812511559338029733504470148648170808544878439324823660276738639833259667954233244327568928175283478632573392808598022974688085708925781529192455819677960764279139586927258148750590479643168938460119245112578405146484203656457503543294782571639298372265725743209675730851182187221667979027792842884577324231470408160579601859087695761234809154797131425255268357316181222770579667059869383935287734185723647615375660579879894359285933824186935636967053363067165435663140174329205581930097528704948374124258717863465667007708835794039289430424551701208140250743374993825869798318623060725184470171168991358360994795920752025219572208245968563212583599213659811912051112083667477718402627733663543604602282068790788870904182704642194753565120591626935122065358400192480405918612494549971613995651273719124692348216647887595018094146749151631156292573046434419841311602256957285798805641045971357494033086815353709322591158371707575954058321464564812806314476923477903737890047021200011285607363512081212166809090788356820133053466912944387771877954138254324934198952408383381898272414206698085617262588104844103527893024727716014339847733921434379938626230976815024689497287173524281499634702517858058540128449105674325572358682619024849211357234651809856849163409886536292072964572582570262109062496668804051397779395415882902456470369603119585296120738359004491197929827734801762936362035889259485662966579666479979716335227023520831073843529325799742444382115338473636559002616081634639366343731986038552295273849866883390978891753298673571782444517131111972519088395085900694306111041093862284264938256363394105422477783816892980281237730501734551239144250478570476637060473570542242764949215968651877372388270655837963394375415583485794237967850770717858760353890435870575751852254407332484613962177804850838258705055972408650115958398792088471571248255737021480938754026527034867541564528056083565638957303892951454738152102073283367947881336129635160941683580824127681380907375902920551041770267153545300695518596841652652043889637148081624580002629832839590079837418688203910709711559284061738215164586525004670410990434566440228323001123363431541720486951785455587261050017042719443683717058414535201970751687193380931891512933042205275506860653594167513484096394137142170254930203447712886604969209448766813451160132464085349101175953433654515034486844662623779592421559891934606874553800776994706489451174059524218770317342157500953582526230796584693803922334459176258001095528669293903826728636696136813508867756220037085833161704968333915934710533258052495836084299736173006966141605731708267611304904764622693297211859117562655914749397295834115970738861353123739839411589401967781894987509776463458030459590601147028197475678615886281564925164022952919835025001491692480053325940796966285117920413594376368959028832198446509794875454769933308062005864773829238620070292305832550183823598621560644207618666162078515312357006615756677253649932565789909500772854818330195949020136670787120439805170306977412592232559153530492145726878360156629792666962853152204834108260125403572415020047069936775175222020465339870105899812908418527400857522267996102567462640265054549619095727844572662053583368368352053302682984908962430517099107101763431242605817796725248173245416297111725829544984080077081819679161407886143333711182337485952051107958272749100588780472966427559872563396425550322495089891975100592974874673132729507381433345637704514016130751235509660532488091959839164767733714822181762179475250639058852349950925160066036156460648496551959733168220806347819770450996132608263299778416941769059057864204281738098405277805456900126683333366367723946058658870983708186658566977452451699957209011762057396270748813784763716628610929581657163935900651260923167364820857975442090586741328452490630541114400003097565489548188326306816168199935983398564979933102067116511998896306588876847240129441083794130525607190554859607211791769567439681002162265849408897571391931283309114590752048367461628978674283509519142154649366852887645916354693241568784228900603123108987724693323792883054926785592443211462599724360115448369091613789436021282751584494328914961075517609175430158163834585822769301358420311767419233171711185670688136411457882127943075443633445030877843785333543011298651342058430625375412506681681437566641486121945611902214277385428413989669080665468927741801840705242880661888989750322020026769425762196127549771463635385941130696300314904817930161921085740635037439082807543103772364083743809885144301760294048733811101669286064874639347683427404407739192788481624467202217468012487139959267954122396599864274216357777726960120086713578276049849680077776923633973953376343484549437197569940620514249477834029788031035366164260042632735274629599882152071260896637446963719968610313734335305614714771368814736681916477957566292766128164744673736879211707049464106097532747123121270524731445207120920231283654384106914581702737545236181080100124964668384526487369328846770036040694150075649089674505416534999857334666251958739664017775962747501763742676495544737426396579173918943307067487410797215032655519316001452098225268438004837735280480616070941145977553022320903939081251312883502216143214084014590066440355538810567963940234163795584921579381822092650948118106753831645182337862898747226121178013128667176075628774578726814681106251334724480768041853514696968583618899251187736676064878375710844290553892962390852307128727786829374217874040931538968983298027347902027448377834489163866542660801154641626377154450983557669711429483639758860685004961804198057268668798413182317336592240090901981099510802466819423421843881418579166387264569530216289061585438159820915519501270658315656295393228704194372895536445376798913643063362485176942336514525987136063388565641536845385338147897182343774067477337663977868433019685100720269337878451480483534366539013313268750084600995704203975136040987858979318743956211487953880956079018808135371221750611907035003993536731464621871124355013787321638032678893440701183044659085130686229967325930903557806242484791406433809698641617975811781294630114367804241501964475445260877993732000012037517675729253644352920772375462639559124352462454158938693420602260531339370139017689743820679956663975893859031032464439692245996807853777394434121263757780835254556364260945072052286149950637466645303686364490801391600756799997856377725740939531105067649470545132320282482197562886750304111779370282371742856133541740720573431149582385295711715033639007137125960277807476582664315877184694605268456456770943400754248564438870683399428252661080708583130747793513843382837377277268108969767288490799469668228973929913382758449120058540488231174083500022462114183558211202283718525109825191139924902875717806320652267636114681850601199271280331845131138913711205374025354378927601188230629659269743236700950588440559482029348642929913764517391409622129931005674925675989022658472139472981618297417399760759418103284895700671460382650040041290296260742379353671902030854507545959645159497268007144900185318689157773347222592808610829121012398412476600099203178471945769724562021942957261496736900623090019984451592413536140831154961362692016893984359620473129150222261678487532302159635452162373955815872415404115576349889761311868440681537692748921334788163519167222423995108144105000185171154704562525362511023269009660119001025046026055943478642725570489500631661492373830450662620300188670372061331093110206839840861466473742577763842897343023965010160622987584914956117252291556833689562230626628603618040313771142497790797348329404939008335239665739915030313858226146499976329989796731571741431258358641967291446694712472860071568214571137491885331695104064525174420778467610655686736444494463610649329542923421489468061553448239027761799566143739137173722092104015377889291139803923557604120956513222870033831186715664968188800832089708771212113434033765549996714005586690820065553193388283214610792688476922889881057302073659174540109185462401258173850374121349338993447596127495141949666888173711845561267824944845011065957105577155307063724420741811610909461713474738387803378557003650298824325453298853034111148496449987757926626949066817496692507242201987235134387618733741656685600141381789151177025654857326006650193279055873938558497197019465116853833598142492656880979762346784668514952011553249345833587975921761495675331751575147172704726979669200901863497331870570778742865395962845073306539862402596044043450415674201270582555270842247938788498602446212528350705544724121943346918162415514280739741682211537407455669374014475540948837366581977953942833228972979681080558943695431875662644457259152451349226567414327453916438416966082737300774760739709576197567787814882352607112526754916724993577214805233182401501260331315744427165918503544612191567726987064812159455684112073816378737182657482059158087357561949876453837566711945231476810945802435782395237416262062938149875302356239554167457394265576302658569736161077957954345690177656754116886671846858833262926685536079566248198037312606988727988053357078920068981600874760194948480141247794903392462772838563401725576836486036778943769520237572573097531143701410324766253911706469171938719466669258226426216174722534586756211266289776460161218567915994095659005448831493983690749433487612058751514217615001471781819202919350312290592603626209828247239067512873841287769623355203784807201223448010966995774613401646148809078998006997730613578835560902103451117018690612277264280249737038587013247586603243515551335152231356769428084043382575029954509042996579435283522393933860365373945720184177271782389274391661091961578462238557574791871798416818403943038725169663873445505063698347873008591047414972376587653057975792976173418456485985957449664714746050379158737502031736736214427507424105551033396411342844793738818334973497471566501830118779211975616278632138818945787690415007253951546042022962746937306878696506927575026383330336862762489040573889300057561423236364999685728292800549617092122596647678774621230441350015883608512012960362992992185427625690725668424993315948707295478599643937957688382081559680409190557323788244720939829171816941753947488982614967700306455111458425111794384746597850677229963517995366354047177901690169699084454035610919596711020873555835942338811045418876599161787754985513285499222366644080265908343871326984141581805953295434483967997187269152336949901778006601916488826976977065526627644567789298490431874663202908507866634256923519020391839694520018825542031167855000627143812911397278403093387109001260808331968650822075828489586969062578518745373312161154499070923585647206329784308341635686655929844814197066724938462698693607137566451388162984091108857328401756402331586861778017846702022505171790045352300845165196778023510928109402644457229655174351504199702416028698135345182502986420971080319879379618528035466662895733801380003511427256193757544518646439113561754338190619644389498007336326905632442380255104199363123724977536536943720950316432066413815194489550370851005535888502211844812217825523244442120550451867020048503854421555936238485511439978626286565259842748008155368858988333197961125446600817816544877889390769647022610706671323941492947231216643598449691167694512845995070981812613782858638482927176760638899295675620862641758313026067314783570272224799994424435898895913023500671381145574502171631072248403412449272238601396600413242245957730083321179678604841914434551244469344443216302457575808081889783184322740443824530848567105496698330333052055723746320900348289664476039572386787702186686880598378599051424623033593526503898666723922441831004008991665828177857050329636353666255040926969750286819168738737579919767593048854674459366477372281573915016032528620641778568128268178746414198128756130941990811613349703794742134784176091387055273175308499222282395373983843559708648454800033668000958459552422442322014643085579894186663537477208533538498759914186800188134149867641254801065776712005125658053901192808086062045541285113862334918285846004938755709705345799581650545761178267312398930350993304249969572841722479691876574390198989705868338621996843659431746661616474743190577924176724459819708322556776915755297870755304642036533852564717022983290204695549945816015192442714545907218022180830391337059926905811309930657233895453284447408535350188820838399914925458854871817060615012493436576924367401323444714940118035391892452376904432004318454954966534914110352446016075973835381163514125451065657667172845998673445125716498985710918884754054641712800149270450575778364058429068271121752980208494505524676749732536794095639321812723806972319372548277744825820470856053315951076517379999326569970760565826615906926538800809330321708840810390292270216730867577329964642466832285436381478195726649571502405578221119435627855756488647598730763872298261289355917266234168980828907327324581071848930497365161908500186224028361614815339574529905452806507453336408541973830140807529212887911296434048762704217303642037879868160312113326254084008229897277748872402499509401759718817630515727237981680438255391820454766248618622848519528901448628338518263352362452235616064971684648378809805982639537240596392687940223833059456972977535350058073339146613418624806437637951526912465088692918856675320452652461206461438963320804711885687902529004120556571708547066475874597208412406610363927151067789269158139115678957494779799151581141059990829382381585322618707246125187498531135822148865135611493913003908516500790357878152492243350726092321559205388589762271075739927805180054153888705620912621126306467621399894585841281191147506289473710745512022537658362887504034852031539786879756702941011825523043026389533169439297065822226301978574137466440181570836865855645538209016804889733043731187395016515368320995740547544782276749983268395400496661584522042138876869249218007138675920682545523728927892207114835263438043782124179935996089707676364986584658554006673314707647472282733794789788544486528270846975016479115208547640350746040463028523485153245587323224716842628035092318151344116269278909288070319694124330619719345969204886950678972362726671533331075843913054745424819269475111366536637663032254742403247572427303011975353954868144142039228331518823191959748977801608549846776630350637938440994155890036932672283105374167229458865999099508776185863697223921488404923599665736676070476634368530834648505617743741469375404277860267756244234485266573933503220991153476693731453272986468161589556633323948309732050318660506981710467508669401934222685158744104289175622366347189019813314768922716000610290696932056491020703735640851323204025201675920736402549998287465112566301952726572227013703623926430161300568852375880268366322080324917859636653435196958571064117200153990781290097427914048012186485658746447027733714104316718870005661057618964491926866797332606297535272275168820580782797743036308560772009258931247722453271322274230485789054320273271349367641996776243288792798309119258744921110762836426518826964204379368739041437597884942655473766830928991469130272367875123267288503467646250050835376080913044453189667695552230282027483933109991972768592866622180902665985486663936771443287760032846307126076893201563268290221522478660577576534018073182054133161947817399427375104159901307851169327896197357838517736612000440187106758319779286663683884926698481773326474399126713225988469726071046622458743961850242387964188835297938990060437182957063092133127557112024494819852258768361391285860511369532190484271259003710803529720732681976307890243347626408039824447780217731465125930856926897675814898790039971857489213331397541748939126166233376582330030811119126463673357511795644805423015007843755121296408669456333871308539586242645386349165264403114221359263182177423217722172893651626446440954153795792283465146803678855087990230884998883397638978645450761460472130136400837925399472121236640827405020430233465840412398232064067939442426176704650767285498276969208142391688716960987187017253830431334811879044631771369723881143467966909484228687428928604740709384143597903124612193306297901600175398484296722316435232621889253635671853404781729724592704582999465291059028339909882400148121608199061738320787696696933336071814252197239895457313134390151610256687765124899320859887130392015708240556422960787766912688665382664033862535422936484776672275848942180963528314896849611713625443878711513885211285618180031283766183259440332169733200684963174330148843960159094711141881955929840329163379250115975245388164760270845993899132668559715689060292727929289344105913318534410821666933529905921937028843970032251569244661207756377475849491823859460544431763594550737230103166308156232815319040907482725830576110876466886154152286569015588869652183252026206047869892252244565015632341837307237156270560633374573388733736307603779100454416287052800431027448979925509652770377580421155808548656172188393857007451713539799512874827278183617677976675046889897637261003446101912241424946940835201937739168126847551828305269480573528697411690223401616037112711988053485525646566571454507423795873311940896913199027082338764285696984715323130553180787966862679862546423759991465541360104199636754397059818469004298331267964580080053741697305650889615785016860437659308236475734367471606447308436696539554600767516818130007760615197799972018902218929397797405599288667135315461763378874149805310928638063762495316937509789055586074050221490705707111830796413309337347875566700228960750027652349075936989022317417641170014468612476379566616243847737974022912889371546824643121372888881403951062678244079428942295785322053091618325517955091047896212247002243018524629121661267566642377483108941849369801485239656069872703235546343792415059195717057878639463460080578070812373660455526315503243409941224505913209807108393720262454277622961247732610401223529246146063209930273154456696244015084522825622469099762076974275998707265188456624857836901152419821319423084937465266987392888889269281231092983883328087738744030898089774204419159678564852680088565629365502726423098821328019245351422330174690595275721546289837416922749892817197910585190464035450030450234345943364097848525412588525611925456191064572302133009412772520575183209036645804577996083419192462213936036213039528057115230222733158826147442383027091386974922405860394977815581669332766242732186900883159401974499893611316231741678872025258820475000725687297340791647715904470584690403640073589719573041273829198594663239788868885512458036970918056414416461418637535379232658041397320472408784081831448866933335493440807617875638568066684623114738989353692704975663189557918296810176698867222097347230151789315012884663265677941119870068704983806243791329503512220020303974195562945001853523374439820238649720798958012089279961681297310432776211200122796707212173225840307606754970532519953484687905023688331875660663610893106510791865587633899117298161093150174543664875428154613146728851550723299725070145178800802551093648748288251714439439346629505561910207646624094031776916830151499797497997807986259264459308052708678110344481852423255789331535477183594773604285340347964886444435119981782294820534916422836902258695082484788578097151146218941254432093495866685337736598202181516510229812434689304922678919746131550287019747156104705223408966446697950966541067394341890065708439188788796791729036898835172013899862981810447574338311584566864196893518551022486290857181636255751265610630569302125271497707320586580435400432267643681947014684920341060928232592663316309515489062761155918531052469278390416095540095828821131187850084339596150131350089608899588184437182728843246796161328970465784561177047184306717140427545109456175799419328865380775006399356671400800704562105943061751502857962439036033192119289025861247343286742877665954555719749900179507553629831106104390758996474473231077517592829466098480541166284571554155300875316230111723049876410878089087555163928395541303305053217126428526373416745060780969213694743480009193102987363079805118720560497161474896868254411291053866283920478061816255884359385208415440431396775215505765701569470515970943127500126336721387911686320377792023686131445901281198855709755848115404394424990413902156507163483022418580113394224927303932802343280870068445623448501358210987368400409824045560391426228026282120824344042689467627493297770486174907933402955512403047404255471488250059529192154733740087528022606375449529967021784631983225478693805686352158697645291906431341396210372470090385326014003266972177510227694354924372956155917614236243343493714481961851211338718288080209019063583299014371645385324621508894094177468760563877473691998078504352297154586106032989573213133521916959806764502106793452983710239933757820732779989509835259609228732796918295160867346369638250716423347194302231474562604383221712929601373945714225625689961114448494858386857461489263613185962907404239788931294994507993517347268310935468022639772650442412753118069579608269912390867751690208578852552993159986280405696977241874576626118571241942489329971803494187812970292589008585434363053827488616985982513656992846149353134034410488777982006883448359581584166282155685671157249206451939840603660771329295678622845671663383920530957804408249682373603571178134537985696292102898165532595828613424809273824755179801587974218736063532076847360820852816035942313625868664049289993024544111552527527879097254667968225672160965790206043222942648571935991262600753415708971739997532038525972645903025285401273260565073080757766256833388383230495666646040868692352246180426029556383261562289663849030501133345674954817522732314816674600060661851370333703854387761140850312413130938133518637780115823972854145404643313783393058974059032027907062361471430043874885273953417450014786740652857398397867954412669589010252613343766036555696806970275302489338404287860644352942534017171472396072091662746118135374886272037238722930452281074873251856394644631971214793340339716849519817298412841156725927854556897016487258185975572300542899163954048827044801101577195071295789578166399942915866370174163250367015470627216012482631048286721529912226019394727046416747945373575420624673787319821842133644960958308226806086634664904396522516387108311815639420121699625929826483502267739490172213779742367723107010872589012875260931934606039069760639667299219002367357235942812992213404379878284657385745566108917343548897209934861802306090305422142725939709743876609329237790733028711360367881069821283690609441045931502191717079934282351447529449409279530954875598014418633945200457819378320946927143999097472620309722148018996410709091938602332174112594159501295114981329430599566069397395616031779640490075723907352850460371233903114331069260593259211399285044473514118607057372719318423758484739476775970680469927554363439424908517839307097170062854231881103543611195821010896619473655337569870936468001948327062993667481658876227451992402481963504922743554207475219069653675839914727630511660455419242112659226905518877212515221308629052056485306897860938282485716366904307446292468706685024408730484482935967799020768976914145508204141367444205629937156927729484302056832431185027968992870413121541000147423202812466621006650914837671288326510883692129396550043763158328403920952795229022781548623802387072970144730059715912742394287237323287410696077345576244941001126157019777848536920057536851274990075403658144179094363644912494407454330527390555624024087553824817125261296815030740241111907367481526150400923976782691440053518434563186002555670150019840415089527492993728846802712642472056186975634245063970149238860349561324200374787840932381193479847306152328373259125615558542727519156058179038030334822302070965838200072594125245791023963059005338156088289410222712504297455234477710787053634293520413377661738938728257799808640170610989531345135401645985595418194534756801057377896021592834042656489002346434436270065122218700184025005545998631026096647298427408805832590841219732712786636084024685434883738273576460720554037086166301026769066823284790538470011026336494735917680312135346302224809691632967459379029863297074182163088167760293857758070651855539407592886601704435249230923302161147230985638101931918460731967035512991430150870102604839932016207967812680715644449992562026418478953448209388088076345564350848356557798871193430780443397973367157609253976478387519703673717556748406445438498796088042237976242921796836980891971104850590818432307353527947520167372898451795563151388532579935503623073167879138361787194951599960388352811381750847977188573529564851828824014754804903467900374285354241394839696219752338998905116553140539876503202356078045952545810599720856172355867145029161537793722462090110646710662179119803610529702808253284127487260020073749833811819736471418580200616690196349456817802903267003978652156838281556021380509369054508226005141104754061846450590755004681623558027467814106429504655367275061432451945136339499503003019705350721901364266105012270090395722082520431535670820722814722239642977321906724849038200367254997082936888214976925071798190138812835799634751677626203529539903844368852187245610627064503024818768732157573854564728610219809325587926793767496924531545491463390764625595093691181704939701463560486331105704843085140618483949744533883263068838492052774326472162047989810573973042273280206315964583154955163960894525513818987364236890510017153499119142245950850278537091676897894946987144125656727538644406669460046288741179005610182525566848161522800790413184027387642284249927736803779175998125036869214653064699344604446376011849982991859625272885977597456753275301679653601290661725806267885909428641298258766268318959884056869780949534964709276761901156945703294212306439099536380069113809960915926381001575967504042460693026644334527087964262888551295664043423873095564434312990763257259190982118827904436564865926688551888686851948061768866587256280046274478787234313075526430135847400862896291525494538240545055014284126749805548193718941689434388015535764164405188355510047669162430560942388665788676491410922534786957096300120572023195158712056858612103285884199194044933347249869843693459790208384187907240886463641294828174583221357221089054956701012239360875665485639388339040896335647105565101928543225800890040171180004757545105531826700714461383238237740149146324166147669213732014199067878963345949850903246426970467150521483289841260863855491041424883492666018855402464891185367889566484704402426798718125175844152712801489429586074764097786093819646339534543562501540889569826464746812359923038226880623105978044131108938270082998265590645675784181188361024471540776634747685413074336437557971009972072527131717342070738325719525316151044592144337248549374635088415877993200650756084819752709289062726750023127676150019206251652575502620576817947209413087179833090934127095926378238629429061254257592676042004247821000195990323361882518568528844008876610816678416969138132714222374686307968017296766351738672941169164141149642107493435639385839155265193292707428029444898868038632054360248980336874517834939977000530930012599130761126204670678350303378426271525952205009566992600588867096287835447981094823072085562240151955809846445816659847883676949960293670894850773253083538288159400081170854912932198931794443169833988398328971829534392571679087296229219681888257599160929103120482447534859367238548202278920305292547640757829960977467285233458422295691164755869391794619089976953279811298722350918459288606870590871298388671877868206705102769487590547593818326101716312948743941815821127332069055074125558967515667749590075974310823014534004836065972844669063305666156200125424170707056009771026257114291444980644481046954365787896135198281624547962149144054862290942310894474899222347473466369405172050827211365226738013565171543187420520808241966144392938838820319345694052009435729955592632394580458357356581117186616656743133285828479268172371963247323019819195534028948978454728871165232403386467798162326473826747819972206431976915334629586049314579444715144022505285481086693038987489092529595142309169398240473719105410487607767269482395919387951207655297097467772709151637599024615572600487660854128096085641969129791623266262670338252105797109065154932593474976369503112272346245590310324066853291068274319405338965615673924387726643615054686720597720479081382912965954445680955124519208505454557849769245850448370691938506770457296049887733601771979074150921644691433410416294839312928404319991629727072539647167951457138939017710231525349142526252692070215517563477865843671384455402164331989667400863476465440594460624165537114280059507397209319128368021829708902473338675207291015128146141087757449484947733511053162389816014419366260234602892437397407598473419488581549166968916077543110094308875597847952198473121599076587372272124979200318110345406336569578240438143436473395694328983731940742581589571920314344441109164144279605653228154595158989314084637706945285613977873447840032907775711181891353222583398055957894145731232565131538232009480401088572800361456184423243844939865067253882621176588990655026299006131255554838744988020299844777966026229585714449316418416417954589224908386979358590055500250429426668256974618819737059304678194969878706143057025289021694800888592718579935797031756406927172107009956015810714454708854100149291222263548773132027672476202018341290492968268317722755673099592388791607181328048955835669754360030140993658832532123679782544604563493031314118879419799583456703120224114150238504334882475688653424542973285485264261049196555447639290500635751975229483654962905298143871716956988325190324014168702900379677273211004102591770631373699282901860920803866382537246263963886538867785592819464304392109860489150758927158036612988761914538779321022877538189359931080988886556120714116646915273032448278071956262184298240309767517129435987826186063340260065956498376022470370651863944276264175986964480220325764152241810801410147261109062849935218774617094790887289141937595400556862093948678675152941846220552727383118460770043756152237394842564806608371272810961992482570756966111400048498358555181605987958739676207159511109137266054603279737871606932405834153196121464172333004404437719707541067199427132201567240380706927576204283976554180995827485479978050624806994934660742150004522664044553994769686604935568841679689213610833538561758981775663207729678049714099099852887535477048092646403090036655019811006945724003364124745677166777656424928506066588494566636853557827609702784365100189914293066965019599898926194664604040308741513365734235841862367926124374438962554128548880088756952960203530876761891051962050691206897224144018610510494530790802408134692297238888871453867198792765869514551297673894578672471230414806822787611405574503237027523368366820518241911730984099821537671521687492528168497256845864895374112705806678420748631971594867087837541560531141849235987398366916121164634017389545920083325315188620085397400679234554715112382382453265272020580936018588133946240957847522811118418741075841607381584972413734707133857936266152881402473785961346231171522904555983671065491814529506309993872267787814700546045036540721327079330941814470919571061486320377810364226541465070338412303935278542563261006734172260877310697140741904869506623574732382336632797614639809627926507319099456315495121245816466649125327744073796164270059460381170251172709670793376870259605755764114442333058760755582111182622212490786574922506654425961868607061928140198447700792322200255887466659348070128317743686630837122011722695486402090119597633305619717345177056321202905344090015971136157841443218070104301985574417726914561476358889355813163278467104041661566506542074929288039996658636753317372459629152731381546553806138726668139282353443298297146299893028115737818370403845283719408002384431937073027662318578400865923769792843462136058928517430829166461223508178922629514262689314373508509257111393429592390212460921038565164392286852507646577370553202752348950897552707419968446335028170607581527841499104838584566779950425483302800855132325986914285548877033195089543867338670735514675172653137476591669114800728562482735672389153600352757774210021897876485423689146561509452235640705367645374861408024800273784721305401616170559605209289191527981985078450038151533830496972405414076779770753639611179338018876096917847115421922257291138962739149140208516284095855956906243704408211238367420905637340610693122898209974877183205107972240738535809934147916327708313932689751906218243377729178695169158108076356483248780434086883345680924367317563154169577782878618006221867074894420057511062382107000872590473395711363216626743216197917633192691972736649158887943231704617183293968538757679061875776318847270302106011513970486455321466773843525816135126296267404895567071664107655719224118000022814184122115138378715377985058292604234224622930892562456040229669979076455415246200427541926885202910624362685606447897087396035681257935352566535452613687111697828172785237499140645027912921058040939765330661990064557747045711275060525809684590709857780947277430878632767273561873419723337323062221496775512035088695597083725679013773328973062856565970978017785682772689001261345844773295324899673693265547957343169132257150695830106913194141573250686394226720549085116906733866511002577854496551473715760650301084598518072343725102516295032427181247519143366217242162855583618586926590152007565647794231760004575844329655204162647456079733423828323599783227797535457449272351612973063774892952140195043722141503582269372940982675809847852860294566415887900855710833941273965296452872044379054476605719652799547867621144216827011633402709775499692921124541774160172660760663612127997234725628392473035319262880324557645846115602793341002297562495086102770386286137199347122001001105926331687496416123081772450637509196920334682308176183566437229020141565841911332411475395538854189731993701666133207629881456647037904013366117751386396050342351109049591004806173468201735686389116338020515905832221858832767338276021161944204058088454623808974737436136507419078213728641880412678817454694671509327595667122914241544188208361582410386521650570442968103589714049974775575611290351946006170104180219408195549624841802773667088571642007642216422839398594470100342010981907738824001124077083392794476039456807371807763855456763702969948342149635558737002854794503770042808629894730901449308326010220378857988843173992821647391587607045416434123988284436245259410428035645740495637067703232737097647707825564067038940617222339094228438355185737630479995245293496969975857939313947208092018477737651671744736573959694870347376847065937637991375277412029316134468234324492192215217587691726436848380117113836546274498919101254543726310535987137380649352017378756059967422625879500059519216998247553365109375814726149988491745423897497377412297155695237389810948965262237169964799404669943339371187905147924432835773389519640008639243878654738443362620961470647345534233533850020696639822585415703254668080070127006701817887556316524599557225575236297201034477616399882269461959975764536327473773800822535661247528121755952961420335507011138313550808326729204554374535687333811632940644352171558283296858865484122855939587649572882244460304546977711828873090786755123574792107351042542862862964934111346888677083777159786128718664656376750085315505194194772641686886886053174038526097414907495513124253265448009227371360934061260254258862981570060957954964901221818530815273518860248118152050133491778251331118415645330186893315931257840971470386574882043791597518993520984682361886090945710880479668699660695781560838295030606950375982384433505498892246115350229827655045499957912660254345845989026681368157561303550971987741533577054837457214639452500284708667178695734269925322228820876521476893734736068204096693710747475073605833195606626406932865332428797107777619339612003026030600105583276751563888946463587257449277806836261794894282495892377131830496933788688050333496122080733183608258599255115493507106207569805254256712659607535820783447553312769496198697836676027557229724879340447737412004868734313866465872555924376819072777130633924003162593216263987882396097105352834302526213004033125712412385833837397808144896318393610216841110387707111185749274991829100992880908973615522541888191111542109818060474547065955470097228790055395410189368566407661241782622201535074256782584686909524190950798862937174286939677551189162467843419758283930353685927607333355314399671023521777198671739073054824063575490390539879952725567183342918782922553536277525385828511992508399778413294033133780169883267596716014022251165993969152868677998544572990678177630460989015321918677044712422724569068508195723548012238687852964023911209163562471832056724817003114632254930231204241438202821212891357344001875977793694690530699475701313996278966545303907944558686285199615134234267014316857223224668347387991357904455358098299318978812121723169882940246730539237071997384787269136721456953158318647519407502916807203128098451697515991689967879727513605377568688666249251542973783159428952734688338044756299186504869321820572676228785832114997953206714333185071553321831483099665814053136019327267958449757104662778737788682193892196904517211368828707264683156947623776965527241476792639759973897248379757008654800339222197163996382626499073520069293955610997042405519486020792154101388787321252040244606303580013213774204506283097416863977202279526011702210048233736019229803471350733770526373240634040856029470772085652186352142457170299462839770779133376955995567673507468222523680571092092439055977091597385848718012697208996562622460025752851685152212777138094575555163024605332372019349248868513210042138688441814624563296532271021575586990171619288859194547465400933593811865950266482971335466928016086107823155247027540493439700761206839724496347230595541896477844305261831736751129082923336674118773890219890344396598777621534088219473051349102177468317246374536718595300249900564145420751319777941490232493280129794099084824006106737040436867878064902959111413515532200592538812716507698307846575407515482165127547357622416777678384134691755039149235147800199084839240460485885498658202970371184877289884634227678475227230337688820796409197956033284365478756358132594013518961060611377083248495068721415658773172663607451539107914947449390455261618228932761523265620921577242534135971004961313977662514567602111165440097185542365324255548506436051981526452348520011963387532891850553133077559839886437348218898761871636578238787411969493442093659054858378895933597353141927423434270314217990069960012916623087649955513290956170799395327932603440526779583773259237023910095307068289191871425081693657421292204946533783362825959477818023923446110129403503209673028799407549801253242646600244569714346399207662745970994525157413658702800552459614292276914873713901081688821912746251484639101127509291864755496878394545043897112310816775349246162932853139778726981724216876207830371668755125569194769150991183353612590941675219644710942896586174566603049722038685228876256788305909441941617040621111032399138696882471050977206046295109343037335422502166496354830485122427500617762463718761472169218675276047100772192283758237163667058278700471007542708807968053612468722206431973867479087981193374807773331905746433481277877433086265536231187363914730917677129101582457028228132455640236909450405219025033060554561846561974198307818135959758653018088065279793928292224606998683572073158121009413914800867674012893745001707324985127210818697572206428129093819658142392334539937591492564513659305739308709137860283086865560728847692318381799319467467145598408796257105576973440359464402089638786291417554438386025983602488952964984607944308370740569500979813371187633727762799915829593279362127211735975892618681965267006374632306707470103636376664998619315862860325455093590041704982400021092039380634341499201395451727018457442404507026382022634259856439646295146130871311185110127794218053885663944546488980554007314685941881352583331581837112456383185699883132754761800151508922918143468881994088260376657832261481299295768515414027201901410949411930381658183305990833110904345807320826040243388823767109068748765557347598390758807325820402257739883374412671317736585076870330837084456508740205793001596646263328403013469775027898599222320199695898785027297632331316204014686261776580333130411422005460024244312526942206016608205622879021925265720759732407509866390512666961695835114584612144681554704795934831168384165043909479985217647139539637332044950948806986560009292787499673607082181740910273242808893168058460121204786771680100867928096527158977790503968371135047151790524965882527785326458775212940419744665704126163563177862408560517628468421716212985269761034959602633986185006292015414443658149316353421347811040430920410656943511340371570689010327262476102165022940946682617449873596369279780094450708307373800338324766515816928305635600461298987601465108579249238008092111174624770852632030356650291329013031627779609842423979595892540733286139878958665285258839213928471090952899601050779871682263001974558025083284901864844588845308603384687239591550669540093417159338025900729924937108047650083845566666062127061760181560581324187613350957466955098744964086161911860122359100775395984217768595059896515185614291326761041404164308254859513162694978999839081767453708742392221538524990015996866621514670318023213374677899449428839512100848272803952847657041533028472172504577445025043983647693582620853828286318704006073921543812496642826188936583303404948188513428882622592785567345855140851328706871030559793986583470017351577145706827152102517401798021381465758117641231485116714213284970551074823491812884562325427475857732534126674207126853151719747001903091299274305513544039705266879610131413938557582121269253352860198505861699130234412222149003164069467680307030495645056779596084216077914699897456114366964237182250044028492836527030089809798658385910548145837879848372000433394863836223936782641087012397521915100180570734297581329352777284490878020809408432801008521205818170184519257721188407630576348589213918116276856310995303860831433682216328553444040090572830925620381329633329629706817086664891189294171705438124600509121471814514872713026729131831196649063381942274016748945505190970016546689146008167390007228721058136683944552781830375070611763187084250795084104800649556448330205898676061506940505658152223193960507981896877324772278058579235761763378230423720129186765252381777313190482949062531015327687798964635037204540333020955046051784800027733092941056489471987713084711165843727169552391176626392762644437601733610720600553833232749321142081700394734271756064613495701899673883637431846331009401347613774560831531281359684633196551877737136250151565180204998268278282053370108457746041439605504613011826876568540447586918318062429280062278693331550380319547625756359560451123426726543944134608081544078069605939659319758557463556656173828431185694821258530713177789431872447529953873669553676990982049921234890324458460578212923210147718308541728752724322463365044369255393576628486617132586107802609117498502615513620192995279781600765564560409458654900177129047167999290955310096885993627448905874840975881890859888761989420964798591397099188156574338971146421657097052401289533032419503616189179076421961268525008294417061952480732124733978097145903113871110963120262333379520477253641525338141025537005904314305764027127272580167830367740878108792275483638666001986098434239208257513840814394655298585942040212337961003162217767734926121978329263565722427241219579809558135329419792796560512341451599487432565521818884454462458547988999821842509769051242956260862006770969526844115860786158604284873016845866302101089680259622275918330988535081419682248314819791433070891536415697613041662812140836967690931007512578146825053928567012922887102447441403447479425290367240515601908579025027427269537406161961976448073926660835227391689953409802581886396532361687836149926299573678002079633007552697101076245679895505827022776652347424752523257372800638555746526821198632144025684016368766657773651076739655573383557206301349607741201669175918666530832456976127137642668835053591174242797771290647329890747877993205171278783875195127468495516741205729426971531202937975606901548940254058376517491549974759368046671948125726930602399159668562043319952674118612089447486607587610016169878723840326285780382477224763740645211079487477979546417745221954513752702902184726716963148658247642714348779397544844383385456111828531929003931242195680217230290329334362616311704224009580816658800092938615053897721518059998892914267429633676729237795248724480662636137613855136140556691705332381267318543851800117654340289956224481187812823361828760062623063771959670982327094871637715208065225682689858983164427637860992994746565962648900423563708726400963584821515034760214285542534313355044048047557581182839795965792552873516045664996399281528740191026069188753757522306627258247834153287365367152092504396943761981260828633827784001153273296377116937435050285779178136986448610161658748323973622179007653464644685012474863511114176864549812662368979985813250010348687635475984853531256149248254776992606640378647952844783723113120421009040420874087526350791053734087860409701266663522382019383645684011026626720946714897609888631349701019256544635107553824327183319793938089244334046648202602316282522387236830216252503386135990202337488123096147392764540819822221003558859548503523720675181538766408889225938580670079067511755736764053237047585495052279001513341933694303823068223731071952023744645568396243765099254349585751741951688179889709242751403563851267777241425145287569923384388786009905040957430053247429266937476049660140032767632788400542852314165470775217654403882870692227437256974500228387508700007690948862551222331965062113053411463633676084832476446348349356787669157424146637858042374720531798470517396069339185433390632357674802642347261832598156664083902946205468249551508121204510416496868936546485508535900454450155938391229062542249439060394284694682196927266796809737240397073454535909847760316060609625106451923386239978045597490812974819893970045936881180271820436481356025789282180525360650787049021002818598328084882971490997210209187559820689406597405029184952778629045065809345529446442588317667537253610898798533534900121930925632883757102640505807419581082557372091679231344927684470648908334686580043895925086438235131120242705570396790342904692694062681692661589263978408277305014513770495479149377440269506578038393887482611826895903581500894294929689887173830692976084161497113533918188376482802453425159849695651454710619803783079368619414237189909989770025596117125679639096308666302557756883501955278521782128925708974682562216788220461916976370743973531856758035238787252103636431516134632515854371723196383859245120109937529261995959194172212463388661135073725424125735249364968347186807484429561021799332478660925263510329081163314333906993074560435892400458210102891323072497267787995625033344366536019030530423535831774862221852424801418026504128174269852196910641258723713216227014347716141608781731259220951665560593087779736274101429807856920504147341701973117670234237124191203324144360361737268329827602735401945223747837826139850961398689064624279721693944645944705000134670572357803511553911244602954659884270358341793498949953849524003264561166759933164950973469101129755732506073291706369520480798082057896759130599579495540738923639018775352479037853828019930910006979196782581837156824985556164093398213137751547708284276337421183279964465482472044343922916462598685079396013659552862413392745726371919764861150040158683047489145162269326856907970799544209841677945911362888792148789658381115764196994286345916252195778623306164919310241327780847488613909735091162520891561584746031243975408745467321964164195382376985567124758146939885209819047080619661465151158875212414586343843142514332046018688656870037740801299546219647131808116136045185148552617599024456853231932848910049559588209497904371930973129469189720799310373040758269810170925303737073414865892686502781850728681526430998292930848409251186433341931610781460738199295608599452033010385165985012924778744670994590040763888550055005590639147725930820232371674466810706015145599311333718118538232265178149099779923576309709921477341370069773854822331625799581419845041009092294859819175278379688455381066542856228205432285718610778684716202474489709055611067480559004858477326800370858631339086340027685316252669376481247714775483399082199947604835841084895838944788697472149411753175753525127924380846813543840830142332268876226155283771223388825719453347543060854378451237614235288961568349778373933564765335286335715575524059878593611567002821017023217440667544983002064564585837617644180310079386431109130125029035216241902974505190489119242045518033410125346496093808907241821101335692044266276576303371958988801725523195806461277569182953338539063053604197259860588454934679031941841278478951113342717978546036021120577863466589755951724866350935313051480486700929207325105277419693203467710071140911927951416401154406600395195943195432617449560894999331677841610839710605874037599873663040880756786157966562975278932323913409503961735550652423697217285344969812195563462594395774220152793554063498154977471118110794722642356011961047315524989707764380815622447675938693344688492760468647549199368064504588150484386422024053092971956543059401174625899856317886289779277329143043762502688864264085083589448664135901800159874527620864151817584532686264610086548132224644515444534007043677484650102108553105664033126140227473146900509788984928385423149000571200932456398648670688819200650869240017561238322001749671228760903939882826181223757048480648626693034481030784513889651388980650033416866943044438163244282743557371231978995707721887652072613193698423155188463752931728379863625682928712367539029404232910884690506076249641079657568946857443444666558851924145860100841343486337972751702641688601501023137817359576379018418477728723315904170139451798757101060711043775773222332891581785994900491360189724969291090907709703412276115500482885460245166637994192606734400975257354625464227143712534458962680492736650494079323428844802418895796148718834662254082758554071624454099676910687092881116832609670492415939418262271918260403770905385685776534712717100001663871193050656565982820758767280026345278520709757892534248969993797006533837880847072149073490475487602980160386395998037721644949863648700830827555098664163574339197576436440153418307852742617521076122953139326759146396537857454545981291915239725297011999285524598247440342215025290787362166795866262480888017053518939572031603817917761226870875125098424813693911740855232158082644196355060500520648988341935359993595071381023504350435504265991580068125516928688987255642685300260920474173826258000693446693896985089422659563760821696805149482552583288372507413502920565508158232618318848852279529810010252361878850713975553895846079178596527737267829128456607982833709576774409996774793167307238845993525103770063879795316490542728749071696248513862219604310489837373279362797869155207620107660975571974063305334856095565994244613559498943936788807038432285317706255356879321449347145470174940883627732153273960973695320363360698097398664117701022327984642689294945656919320905105555723585004472197670412366101724173591699099241801452185157644872158821973330322747157436740339624541197508129530858768367893430932933900117006552138283696911741703171113248944286742795613068788551461185101440997756340670266408416646469001304013648283026092382170029978703396292474390203435618384344063420678860470423450282500680583148893165699394839277351235243797716675235385413557629110610006571313588889639985444198015930883472760829125691947531322653700739771783413482613646607182219200320415521579376699249143006612706406621181084165176926342037504091660286911240868986656980929876171587033429128730767617668070647544125593329315923056001848752817073879366450443379399300730207339434866453272737432493551656248118669157366656385096822692071198049043751772597276326453963080676404576954382315168982427340210375928637422484042807622911323763029079416492327839640101847863606183157110810457388695145998497451731415279912711225898088872937560374901576040306162456077825876876202061286995004969300709912698328676327556230213029887597555634902768657261545549699092665994108601009687883423271251262729272084159358730681954129044447443792113153751767035825854149252285715125998204186234927647830547538119617986834697587236763348564992833218009342705429930186506462414608658227487806443924499409333563397168901433432425519420820942228242351928307379986996990862470766767970100581604956224773407519515864182360424013928941177867644558504261623641613281678970817840107916812745182828952006264217660305332757637919550443656521963664235560461347113814697720178603220907071919979077273462018899987754475864203553924121713808198220922035443577919634338431892467351258972085752593560187974026555829470467695425492813521690412956250590725302989689119600353157273615708507033932784401950502953600703094887653361586423476889484547240845543002085352640403933156493697719711719951452759311554389268920343047355391944161308526829183575858374513914370176160587120363077332478901837203207114903152115785896513063574723876605824323176779987203022577297622707924678814944720680212273104403847882422050815858253789885330873076946631703643360026521800369358420224065013461774391393768117288798279281556643910871674246191053110775428678830917252466710993981336027288294568511999335113656388571112561103411565529661821944949466512710655672756977429825008455433770055954426916385864776335672298329580818953411187847660603509362288304723957924409315734548259319145837084124734932921368683800718357718801346429945089150244857452822031393217414213638367777045778889995443654725545079179727644952690603840507973444928785193507615333547224300832227131682749433860599750947698426641544330705697158572319523227433043254676915586727205401160084391003941550989559237486994597685034325565083807422610163965190477135848976538588631022400215110285210805944854547981809159363041469328029928638765125545137316246749267154904326221953973656818862734171585899480533673207538176301728663205926050981579405703174617877117829380669822058768135818005052886168952300037671176090324086467506253899864904195734634849882878619311705779705883310648953538165101864390585502690431807716435439511883917065748433053168396163626230479064224475391993112952202241340840115025073050278786736204413739079257284557248582969287538670774639761108036761939485452668499425229337186714829496045917655164628027241083699842280335556863792725973189647135832969982478815949830654458588790069013257059807289641660707337864692617545319009771481520601017786340350766186286388661702603367647259639588397063923864789429760005577711294785429370740683626507718138894413609531459039155403371588984946931131668831570353474979580658138576959237301757863926174704948891065098311664953146704670134132481476523361312714157126337281535263370632401123154839285476873042913702554406210483572770442315950656549641766266246728555476346916838338710422391941049906888595618819776907035982133948286434842034882960080653053821554971086823139164663814805392118917496790231496584265639495565526000175433339480730916232689308994890737694689796437105304039304714504379792513895851323079881163223689501090453654247650823222026326700917798382925094424649461864900064384022166470935350097770430526278632804286064540213404314864729820527401399494753450108448628625725613495781087316421549402965144461968585361801860293457818139649991518770570705519903073900870195578776318999675641913692691359203728402508912112200651917121626349118678126005263009382441432978713768277552681737742516109872521098923863187823817742390596790632395988596714254580520874758374176413561665988585258403035291005751455815922475020551991995593079954355470152089041675134958469404584080286460691775345456523536889450384303033676108623237810395660294286319223183445955383131221112077749707351285357136036225034815046566642367762257148337790342203853300543206638948240834544441535483687282821444735852863339665785156849839647657552234006937622987349481209049694646458513807772012227167689881761103188738715582548757135140102381493544618279795569424497833249195568974062471947998328989280169038631118504296235873474568986317103810568344264937785661104034021323190356282650201130703108140860970194721571201604876460954326263883716582539876704099033427345508846344118009362321397513468632025763495728247572290933267905209781955694102188504710471965268592815526912082587810786933050818686407552444295493530413431018142358321265543365353679142873931063053278546446372884556252213134459922894770658341176189591503257777703832425612873467263160204911339829291558716032425017430111648567386974776542010092557422631347466297815745364103614323351470749684803084919590513096471784521712207092541181728362568390372677339473410952075206609155391295005500011073453469455975235954445494925886679624921575561999732560467166443635403211839855821142065266275461562841922270411824331184478887340166823283809265867915361325079863055830605878764697669622622219128339433695948142403829090066571774781933610500219906872918166956135601539228446544809536970749895372661984365981340981085829400410262318451967228240448127428147658009945872198337976602429587473274122621727900976221303979937054123136238385392033060123721419516510288102858847265043499530847822614976533538739404822517903319861600981652401217415140849820291982045863219731238767227115637002157671345371288026351741911621204654799186023577412151950988591791209958362364013977829702505079469620724034692115923595126856548812734022569295469599241888521921828137939323302853121225269432792572057218192701522733918302504999367679335099600109924270596850734627198261768724432237861266706402972352841641484438968739279914951616381275741242679247795245580042954147273112177719062300424401504395618243757411553580253055021397811346790594824393701116067729136596276326073308469754279507491261810637110467890603753693002600736797405201441295985935100897501178723221756146576121126856122306461690782529280803506718269924488863663250511510197783180759907687848463958829741168565500631811368217049286621146316936898655956814543857938422575451246166924757542633512774686258223632198540722694760771225206082088475667240429063369888287919950557521287291173100826392578178120982944836878412305370779889746628230030245811557264355307722686665142416505772827124255263270775006733772039817477937020211541570085651433769486718326179239177407810481054683899095426199932882472059846047581055233598092084434901249679653555502021224622307192356636356503131928870982570139769568161895014549771492546163552580086114114084612615214982060381748156102198164636660369004070815179683368478489873807442732301266541869738409810456310532964242514723558075711143049305749251424780344580558956408498247026702695553448075595958676425588410095705467587126220729885891106723722018816985560357051604437030011306277683034552410131737254818834182366656311963595232429373263233501455612472289675610916683914523702141510196351397545130633084290831196426927450828434841001597539590956434802069797378446829176604232262756320210902806280243683435657805466815077934045697304801468685325758379238200387091595457316437328006559900596878839654105641702339489848324358402066187907349731247053790241100470763841670146809446143146766778476281554186067581539606539030298048233798286931610944099445961730978374127574107184723221246159426775626878899255221278762787788809076497726360911431561214555957588083168728573988672504172107014596678441873363371458775654356224177538426898629429001482660367134669895677768397426081700599375495756489872502829908876138570459850196366493448870502738103632874033576581298258955924809117945469047501485581003625301048499011299866111529450023475364249460071509800455963235373123620953417765928306576251107637954194270337391127577580243996347461160853657425482670271472270222340018763442718708300582578785730233618948725950014482810781636657594899683488260812424062104724075998815869895441877760753987169929744636931337114297688208583893660608307639124957781442185859376165781388616621010909135090217309971705711894550512227492755753700637011282405878563881139549750138860503532115483769487843428881925402770386093188746824373929895008281783394156190548124681477735373763904375986902623845616828818013385608372801929038889970075175796298967250590697141254115802809793993676560803614497510880447244267869667995441036778809216315109316021559420009857367542693333221916854154645039930089393888000943273658932425641922440621676208680919149095455099584344030659124432223649261873500553603240196029732221504480704902055674698845073440472108631102591838003711825689915675445141028176571251775545965239031888100569786198896998680226202707094071706084707888939130137846792520298648833605552818376515377236426974453799265762928462672994105744072589388383778982414816235420484332604432508203901243658914948147373748554278666271848850078370443224987947010714306161438973371041883400884020484132742636171030606265361075068427356045182958716125643767730983212675185349522389986626607980719414401602752248037007956716726778551147991638307779591887627549936821432054205964325791499112410403072751430967965123306961054205956393887491777727083825844400394023127784854909945843643847322472030623551071377805409008564620648007339574333442679865119231443262263958449491289225605337170845528545088793578935946873304297683982411136977665717517640896770367701161178108582805163210137780848984992224532908024639024509559877845675642748299729454084803286019917096626945945496594905091314051870523038667632556521481520162149436178195788888928272760576584492793212853701479569595719985982466284693279540143055124179527915329876527076771366239095748202747443147846873703352000436568741820239186116234183343526358694066555455452861829935923351507284296584200934664152160756710075454251322817999639679901881754602355286976005370135502196039810943423314902306637330359646276279203703204720551503973322841184178206598318806416998335733877091100244765383876407895261552994809564553110988823549813337950323206594916784215683318995223978529171268489840408951201458694809744350727502812967398584156053838133725584964685930220388691137127348078318907398989295318718496078545874544952553725563489456610757495552557665694071546829770113452236863912032059840026712231080386198675611487488820460097369087371701771789025964266820013819620307059864888948754339456426199912325351823931634195254528001827777603427415100023034950259601262506202376441737045954349214676979890674685095717166282726777283434744312674305979727833301473280539744744291599783233461814814497569398304955437895421495172052659743369089852864936822491875498907903774506478183151639420387925210938479154707791978453332299846441804002610520588882610521636186984087623787955016745901638839152334164609970955032112772615512555414340513278450808165065159029300272818405613735092656137784548170282253330567078412765436301989591781869214838623321990369040670319620323791206922399978780218807216907116127860023940627630259368977098213567095703869402873185666994855236345879120906087924053254677752101839370080206685676117164478568626695960849463575769301664205578425362517724612722460720058924448697793254972373061878452646948239050902308356006198331443859991097531767732707570145519830985306294616866792617611293926157378508140509425356209417864009194290435906361008132360556553786806735882832742819306603690250254554067958710802632358613007244895961006448050675521860022009401570433148634560633169438617571427814057703774416659440220428716598009162329694473560867190990223526000860387855829169334048976791392646779589064459367125742979304503687266826161221160787558089728862557553700865197094815221783321957348368332282829373655422974698548063542352671345522710816920377342909618997968070769692266185122665349517167731313805042408313327540178793630181163856002865561203905264797170214857441996989705270214804089255629005397179266968539183914088249657863177750546695843760610648505462527346304592416244483043806165916571291702221451150242737937303065888002604732295784453301071403879402687410638743506465610645637441125742820188218256576199899599939848555823817451243684121294698782669694911096951197661702062903489353355734079473507404153392793222453784642094152172398660884635152115151063084600912864606384810226974370794006366396337236263182277993083644732999939746627175237791743054350644984765783843366727147612801371380238437463883680979929410464785030686785618005734715401446591955701264515516678514583394244408371545938904949487769252225328265851866718205001670377679839253570363217290175386967626407373939559688179057012857314625979926525729245723892428965220451714238417961568613972879343519699705462968593420001848131103680099018558247740460507728356499440286998308400297233486574762571410412088868423727032311775939831236847297184502980122227737411126456428633111209285757732785249766241948501988445731204661332816950355741855169100406622071841675994295519046069929103427431765288736855630923734833967805948254683262138433322322284934614790751983776344873474172145078395438028286896257104727590081440364712362492202572168468885318074444590923249308612102685194573739136353539938071695013994617131962340108392558779276040615111120196165708673967911139637168010073266169670268766116647776677934296029919752728384337287867763371042764982174077729178343322993444282388070387205610483173944485066007670951055461345312966912792694708653262426912470140883565600969798883402654071377719563402772921565954453404930527523622557961919046014965396166922738529291065872864508429592075772638470017499814122343866665612339964627787572640285998881703907731601506855411098726149820056893552655372575565832747118347147665637342220100350701253997868715252562438824728109516841897815761384477190153797818845041891151711832242500609770661019395130103863287268658928638704037041061209013179609024723767497677952979989999869657831760101259803421325588404430226167204239266614522823454734855645733482076888879581890325464749851629373653015966944902670716028626148185479103659587089786197815679342574478003983150415031717083740476571143809875527578055649209148090765280020547413915634302496583636314346334289080332797941227147441037633617431246278422924170041815579280921479279056843188678004691774536313147649569395575514886810886141453218781437462192059330180851251916440552169016846086160300616850598137467310099376727867680109067532306022480862301492896371115492023997006074271252370755717980778639962357606602723511778371867652227342478486679085106558346879467214137640580521169887085338601331462103123822303576643957795170887389674172914060606517883113136544194482940914416454335934141534101994398682591643265263061041453774426150385260796179450066212109156126409693256942837342774590683480653873569028295973959063559873872408629992659559472635911103818766536436142572433274916830880440415029352440410878000931227474467117331959962054085756068351419170749755345607677622145498228905703575916482551047846957751352400960872881207219477733585767287435635459296773996097318409313708938955379264410225929236485548623028664195034210388046138147649048131826161544095975241401968008944643159203292818443676195293349619928774162815907090532993902556974519481849378402929927006429465179390045235582716455174859218122451825160672438781163731763223350982721767637436700172733433049630986458050791034634396544812018949314784003866930671085233167557835020158258253308435744355189532966450408470464095046353864333207018268571095492547667253912988434674107034909247141882979269237315973456250766793522051887769261158009506610850282057977068316264950950425262346825949447876663056499742695946532540493897920547733853442581688728051873204960912960502920012199726842330154049346186240261437819521702213699482060054310423328948176007672810359473835515821145433608393004165201008257600507544245330427912199886593372487512911966266916472195244163474165579966453706602778257681125078896260512038116967787321259519222283952450510125102752129740757575611223576803437984348970366541671198019519947702805386651902742513449495814359863532241070068944992683900263588189142372030028356505165693511604301812016164093840349155101437656521312145916575834726181384070068127882247353307587190611604567144642693430104371987347149695702661640044840279583102285430194376033587954528371253515861006951787797356354601215803052919599764099846709113587963164714938670183649588314338383414774103191730850490594119242684250543363522325691119928010305245613601876381349929785010635740378150245492793863604117865790794837503931596520258631473874909749355515622507891851365476722625703244162842230139658978241996710402774404029293153942959939291724403801050655116275336795538322474565524080977216116421412575657880960171139023035267163328976643014416468796794416521754540354760484223957050509930867929339953780990163075218915937079630510960876800848025137308004282499537527905885529920006058385781900020611939072030510487051399457334258983036233844354092765671662121800263332726964404806831381140055514985259157600737686009171219278394527549655805847007512007140080001358216704098981373577405667318836921529453925351151489758046166384231861122333552943487297300009898290354335891179338580194643760742773309978841958434323472085447952568246142815253490042646027166669215862661897097961703713782419110483157727616523469222083671895099753850872978941811586303708159994964673675799817751586994941342539456321736811289718759129571725545640244467452278723535355044406148494358702963388203289277614634551958996038278299075828308412667439563180839592967315190213548238112118159123899898303919184089388932512970406677417515962699777194758271206582586121158096433379421651794741604458807027407188095692336824679886178654130840495640809057637101505381597581413589083091406973970036587095906524157030006441367130800041254721508635788616527144764101370242769088054225586399191298472255512265983409342034472371783139867971887502037337197033554706715574330951458691825862715896885530515092423602235410434767268147249360961889522544136721627155794269148728009950208580232401650878934159562136438357178938827883560765684881169149571008608978643278372043777445154577114686288515340544487985313120648339722049014642396285310234580673576009788721184872776574275399921483902539210973755838402179867805296071881044108454979791612366408171744150673452224013593830319019659069042641848299150635612794920024092064908655620240046783782278932029582440685657841788048433112868597213393288146968466180115248385453293557131806800423457772589924016010417692304127506217224915803169956211338314869573961876128746113315000393487065024201022895896591111776744715576492028131030223578967768331377622404465928719648308754996046351809833659277328411259493534273736391572379750586576523265838588077295083453699391886655163177198153535511592832881182890983962907115467021578366555673889995621786163682320461512425974774732688190382298258340802316850536119501981691650760136101095696476734768811081352780826394089516379870840049184138601237679727049887115981235701105914365893205391507444555864951109996089543840296843225682120687303382697665605790264535956440866706308209213683999311915934509248918635889946205596330266451441484174291692350457634984850587853922094507925911563604341838695135730380873800620525113610312993516203097561421991878798166532974583533430373183169391031428673707955485837848625466497413080064132183663782823394332101635084914809479531908990560086932212336709611122127681254964843501416984585879479065781148348807085107421192578138156165783155292152664901429748917742135967795580521134928033932683684962738137382103368453768764577177559361053341227484749451999030739760107293888995603723556285294884718105882686810708328283748449423463180131121589975501441793420357258574863980929611893996712650565987394295684072320415876093055035334563829796975664314538183471921955693332463721614327121379213041521168988737999099460827768351996170849188835649734300974242249740011752339453286101232232308198056372957416556881497780512462861591638936842711288975990083831146609202133358063854886355679556173624765279665839636677206836094735012538297921512944017008900581755501914575902633232504720799186167478720335538293729661332557132853964532024632439396053102755545271019357442122788751915339793217912699425553756030159964935294470616886630589952649763921477225315033838271840199868956041885606809368658565111954496032911949225758329732050722769586223656082329708894058095686275811754205714599690798602949897013252514265542681662745742082361650062051325364461618235569740308248691130997547043661977580556334303119160593163690066073961744646055244306566795176588416132713819387401267334368599260590727666226857877893683750076883425188387267707637295003095777403731660420740439326785044108182591904922132838144218625151561117040598615058132707193642732386155177957732758281047783295024806007490793291968431968108373680833918872460378144857547820373209705029122722061032862726611198787260111013778772174037674068853898367115191764249793349535962253845311005499864506347130792185395085415089221046265721709442312453641023892430293377285328736890091774330592486257216300204158769579891235013825600619861905802336989768155332311888363011035087694779599305392033837961064127710744833287743426128004706463332305147977206806326824679202002702408101521587602366221440754214856309960201240046566221354755870340212571174002649861587971368388562678960757450074880642564926692001528064419696316600215717239553866398024143093748388306809746625387169957258481554662480450313169126631651311501576416045227333253820081328080696419960019759671104339756251624032936876807277019209305525956089294806010254567062426563309687341442325465336562871483572615308778936516422424561326567498072253932274670968272253306928816832264106089447246328950370828341504905773155754431332553902198285774483657080010658102345626919370132778213489863845715068308750851570758501072375090084730107272485895799108176448198042625222564073831104937700002973668422257517162814155305180248105983429053973928205608095604806010433638580433605994965071694107740451635178138310346699536006128524111656450015893660485686240498038886636779680083459415215276754049039232699586780761640469989292709581440011291370323038113363209468496015027540140566831579138136435882348702298619497313886551522621769893049358113619427875956255020729889297592925050402775166925661986176644752770421668781002887668631459480723271398736157085371095713301535871505551405293048241145071996578443072359148207010448680979461586721109550955240647256597265872183944187930771198757370580866716398849306955306767392113687860470449839215059148108699252290713313683259537565459630417037346662056064565122690137124189661028961465017455496562807107170226415187050670867503405142080843997133248924978648262708288218212658757142423073172662930305216347453390925591905758564601394871376318059928476725407620953644521367315259289695281909816356380920913474945686650862165683353951949479321862767549258462040388950420258563570547367763063605794136959234094404161923894022886836849704909449458648649353284229018572097187903083452211805625580066583365838432695833450368510203024202508507077395962046001434258824555453257926960100300489803758675109867739112310416182298495537602270226165623421553091963747872528727306251080384511702612445432184567886619423868139717606307115595372383590985171058464481178128853779502312123775569566135042267807851897683261637126107658024725821868399647704283925889360668726279555815203245751448850487499403382798613782388069007379649696788689261799138322322831411523207211644914154354475424414763457764717109300373790833198619046205958039349387312174754062327649623288093070038835546706458163423493513982333049714076804122427514361352935327869090411057521818756039965086786851519406950727801539075642492642824246355052238207860051243822516637389997530230077951066769071712068052499920500992922511499103695264267062211025400898406821124825250120131112851875566700217494696082853631967752956516589880780119060040213366534074975608327108429908196819956099724201634051277361817636242489737721642991854360287546642695833726347776980389409492611305068474047787790225697079597790333889718570156241459470835616201116586967316557592462058145985481275413151569553648008408194092513152455583647147409666099218784432697004777316550601934027400052690056703919236479827415266562522937142466722978880006030797548029407051607099761574763315818633069240629095845923636811043463713114926230676212634235573061283278989429948537868134976914861876853248675015744012341492331937946271446084799962329479660293302282517342619151695107413187885341157683626884059451094973844182942086118086039872402814519824896947076042387837396087924324442576659048670929772579697696555984601552736897683547243025100895752697213439489947583514781196665528790897299617563164101051053050722772793176857319264143419381478632396979308902883039423449271892041532952110804424633554227528726944728073873075987228753064067285902914211587366403785234702627281007942049412808459530259121654694208999276794999085227029915650733188307298793762033474520734394050057343589804474332260965393483945371973087046918365988228758937284574787532580689406547434184677178158686905642038186325322874123835334557461929358450074486505409825063994885276956833529043890047187136514877237628142492639746203249689519079569315799797043526616622011087771267753051339901104930977798235614474923972303135715719527800680463169664430256723088406301752511453826558457201519247887729110119536542589340102444179424025775430160650895141834272919118174806445732847996818451604079319512213231309507060464750699288718604838746613108900863621510967824661823534457755331104039291257546060506101314975193531550236294133365229218837744793954499982173775091766714986866209396496736203560166273225602940423700636843135851171669633258450146346968742653010134105019853423854931766871614274193076685991382368894601317925604361504503650245641234158842098661316060064700750911105098675545579192625731248127855934958355787948937659819372413641743171622339733109386619197911139815357254663343378816679082341665270779934189107521244554156404842894688027525754994431735997926346823928924271052471019878302894695850402295737242041634759748342526530843549660328672609819880226940312177501700676607978268746805182927752301696073414860835663256673566479210510230217349247341519435366772081705876158014079727087571037451850188516399076884454132186224051832921605351421903592430695328267029156913044578412593313303037903868551300641570626811573983524064417221893199654490913544962850910924859756680331069408357914173635634065939716282386196448331219885849222900811449674587025855557827587402280015775878628823799678925307256454491273227387646234394474005830335651392435696564084350404493251457432650536971529960908747144328558184781520729577575876492940957991580058138285414864472810705976352489609686419274443773139124082668327565524958414515531785158689520030102829916831646044435925797860382422276717397721501415261380588394547204684346577145880468284915216868488788818499305196072311964763925304763714285152210627631168994611421116282276380054304675470684735849659616460506349345631247597643160094968777035832234185870867361310064150516476301800094852556730871855093858346030105887071758071812464932227302194093619338126613875787086685279311985660734827547117047683473803469250767412968439420395460738429833041228673192570035845610803839049075549896411994423607813660946878186278788189808508494008745274757565490291754907484082034129000994522888828119667312072148808438769877803523357729187261988422511770686318323362309011671992057507859820848001291633166445681188205158832612303462064736696574826560083277651046385993602430192399273093052334271724883148061597260117626510185287808713656776582619802397157649092342517627238243496832797746794495114563047551880624729910227327704183186921736223565097132755579821354562086797419650094273567716454673888927140395678073680622866022721537856208533431424161482013723444408967292492967626114860754456869091689074154823008871986125071698553586920133840177033258650548607103177139585967856205568262447566781662401312295304325685475712775309312483933857297512844243529601525219774021373023081281382474154342853897601804039064647270175949592025354808337559067370105065294156342198748337749140249658180390182103424670921032319876119896600096312352736669778498173124006854434597358350764818067974519120777679501732068808915051554623420069109405936166885868068918356556456335462229932487239218862776848414030405354937803749009143044421149014462339390586362496457261267694581873307175712202427821488207756352709021608936155100449562936901250085578020347282976585827237634322052470846628593291193956931258075523493116571528306789129386145346303718931220554311526523732374494261479279951157442359253301202739232594651892419296312187728303538354149361208400132272420940322473626505017030987560619095375387211791486523043400162595780426008066461748362927524101068608460612684395988560203754032525143015786752948008270666488375680443004730881830523429208786777606820895796255118688588834113531318854512611587144194932608362855380670082065082592214327365253176233916788275442718560534935354430699247447506725647022740204014419176281724136004677700891096764170051850902597987180115220965325779570794475912320773178759382441047274375268739117493388479421177839314744611628186203664445350484367738584026134785284299955189392054798977438149770067430328567743161900841253697413153550953085669442838775839413562098093032856625481212801089735207120570267708222374629718252183065368789942178836713813784608753933274176064363434686190472099663505649548391036360141085765008025429462972349629595698745196518332928548065491765140002063065985581341579068279371046165367672600089734724995303744762437977930627612719086873432182411612160652870440084598184904255192927964162462589020538061900869230970832855236601985738455994512222994415694748663131766071752797104222912331537688032628685765196649045272247388408689683381627128721024079541760063675770655400672896204880110586045592571561212181300848362899160315236725097987060853795119097591946558007076222525055885982347818850437693804185352290856776260401550579633454466255758162231541634060448504541831914073570600567555044952468031584039104074105943800740057228541139304065495283413133051005037961734559370977036237728955225251744468047239373958533901549040185591022043946263924377014732004619369045764430541320485219158650983194481361448797537727126421782194236848705026070692635183677735859709142369520126664846120610347468775189924430303918979079722763797327365523711954280846009084354080537577024179102837493004480473376092926866006430913232713966235372390812711158928494139801095934912174761689676227835090189783885431386735884212729066848624464375995680571368145609217764783036208733570690912568574482432221748354357367873561325312665135555237185231752575040387112460264971619688281361868857444938858301834196122081461643396270348208172282935853511215919756386763733598751697537038996917048857260150408324832945774157804656657578224937768246020448721186954747199142221249082523074256082071970222164160412728084315109538260708785904576415635010877435056966290656638898996643045402222828760520987087111025574003901441480989228984688558069979015833647489598409281825434474123444415928431629015817676696116733213124652326093505594601639765539486555168915305079229834142080422277133153833336981357095897952515425515095976268613077071105773478606820356846731041740078074135782227927670376480930879187491718848783488725336852026189802021973947873463967007252600229184907197654878625123783032400651236297299875234502705527738363543948452581913736417018576783807356100820133219034639140287823814356389251373473231297398551204457583642698139426786297858361862645111490569559522439846918552660968415845181541476048807075787893357357197212545886387525010334914865076053946818067524481639721547192272130549330398656870611399062658958798972792503047980183565373860272228202420434903748508756330934008626454653436373378079562505644226395213305320578507723272770714533666292210690168862913069854100968319098941512158512922333399075402297994573575581017647477609320892129181193062678659353075038540747308290977817098279043536264574179224745569086526681829548567289289199931066710318774950520485348976484064098490814981096405062557705381657377635826351346000909478447187038797341502822296834490150795931801853352665265183997330271167582228603055117668454190927246356065763957612404059865116951311063271105274563784238374945066082846827614072645232990304034652245082350919398407798185870469861869181673168187198149643717081264625576774958514315808351725826288594808895285640650136555482357224541916251094969085492913275768876717738038439249525755491982658069969956059545380699517556551229457548903159244425255123509957355465103175388800319276424284789845083200440610136099546506024586759656867416693560419022460365063083113186701661908906165605961919957705270574411754174348528652903873613220305027997467847812849002785740100070558569417967417901045774298157758070066237525336829019375988357197660683780964433755403948633250398280542736708487040582332464391786542184810798541376556065071568473039015349819391710737716777266496519690325576846452522948085042703552623593446471973768674904936485500149202036436236769703228319340385932871024839784352316351462933211962789586132704156634115251902454490469599661828327148856362466383608144590938910630969454596768838408681437462213817566665984686858689321673686891799895798767748847372139014372831829737242934737554145803881516974275938225374089845449418945993901747176037225066793768131433134081342519243592050565690910778790320379477967544094988928860777028792630681936012730953168234267257636314764634358986277671452989678062970802120586614599619731458956873118751071277849495264613382476779356371688584202417999149413575022494874315602826061880933311263789738467950935415741143834360068717431611348019087077302449570836348604972743354279488804493326338514885326626325556183789824959019693299231571465927601996143077090199042001170401213435619036840686094870544119158788048244945400897761507377048918502174491080631776753416885017214315421757419236936206037334829678009806022623392168801104140561789384757183708987134094302486717562837395476745379553458200997012341757020597934227105261488882088407221238712033385379692518752418490067736237205158260699435270480271318635872503559687335002117704333669849448178981875434958793286459945542282307184565876698346465493345869332194754562355697152662728817310308266410749334219282544434627551830533538373835337239415816264479405251946314286316994629093522624020179582863446065412426216667679141212244449310213492606102645711402758117761328226803971397282615545385647145317965930830726671910815816155522365396794386750908086683718937116720031595060301352540596655807821610251804243893629943996866158875512894125287050421962222976612836287475098965926245508855254297060846904891143868218132932743113614596033057635111588142671867368257919598615429208923227208719988027089488472495009176650610476570885217797080764158332483004620337040147758542665781065800951289809550762093708517002447150228367608402975443702099718464178706491558226458787343620871956701215502282760075176475459409134512205230913368505225749431008898529645020878876847525174721217696603099040739241185856118219210437694428622019635854424372271293308647568881873957921850890205766718252837264306999332007793668688149127226178421703174808698504594032351624811886356591001615150472422928291906934001842532510993707951115432491482713943047504338550205257373206760431178332636579352839484588354586731569905084812483046430656970937337790720278015638516253197337672190841922414579717417759303900158396664798748763550082561917527178257186529546010947505515557393923008553320617832784750108231910606383323872441764392739909209854434520534096584523392319272880249204532103555667676037814390378662957372841277634691703535775414378825213273301031664620157097395865938028124514367902308772153452203325290916160531964584615165510279522966990586863658041069975220225434116823937375444904772561158860402554347037060451656505293268859769600518708385208043675805802756121852815979459874189175834027745881663027841950262009855532012364297091204826713906736915272358353199741426610611118462780991479371272722823332656823905828021322036447337279343370217931302713172643002802128344282291782138042471329229579775586824803367193291171429980363446581285062888231622354262522084024391117298714394363772890346537125452737911688863607760130491185406790833703060086749973572500051336321795091093449240492321735826850752014637805781576809648955018437850151482380810011791087460723275673097424398418929235759072678657734081351977910897206580030225662754777731279151238853824176154477133364762646256705936679682271019270184820926123916288854473744205187072688907271776652947083229168063803845294818693681232328997321894868942426945172886085168378579519172851916896383153317976499930309388317831210282419708537823693417061649862788506437607914773556566147820072692315658919444107539669790981184860378364543321605116181248586416141766287975464944262032761401804367649021461014210918664880031542242395844385627113900797884619678418149491196500758961500828129055223078891803286835715710759985956726581798912813102837723692922889482076830630517114829422976108156789057152993242816638619295494621750376635666347531478554426644836491362391516064086034233928461810451831274064124457338015505198836510283278280661539929400580680637103062565966103406393287014794952520058421505417905662678116303897482229112434787658715625068760654953258535461336680989363191991048549452140846044482095879253460109051789922144943997869149758039219034662222456654878180487859813522694965019189967509919744449479346421650439008996769952194917425225520619337899436112689016726993670263652256194230310389183427924568336940107289042661794486151782119979578566764490172125500143303549087259140095576959545776126705337234760846303494372535742995218585613189183359949968028368645059506004695909046021614245115378186665184612362671825232477025086706669713542740503251250691287548378568469937804688312898657833159036770993192346555360290604948645746412542350336009695167206099480274939322569064068623807573321124873630949740349045046178509921091294801107712615364924591389785628690614432688508109875898528488068982162778475477870873836453511277232959660698645888080915487011511011762353049290061474565209001503272824058103946661306073336289617831783686863716391366809656591716306608445478133189351900042034157944747482129146274758449536629729096358446284383746080464049733691785682737600789569616852574786831814010196937578511123142068570377891416115035846813306062730718884597286185952968557628286017932691268602706095875402069209543495790542167424075533247901108950397107537913541646023515340188071855753331260228619229809810757835174147970508405338887079911611732931131072157136420818164207560905122907154882108938731480587381826364449511671229987829381298432017969290140053847247067754672545352755302353502016005152536463712472030406853420603245168107907930604666644802772213543883899639589456018458968132828262949691215743750468906828168953904758417172532784351198693543812681998366613026040541300519192996893013489495928176664860315527893365834183602247249817976949207190925060514320929076676553744668523409984072053176035650424071143812575378592651473851375219891595119302101720731227658426554210280902290623604376891162820570412651604013473075642077935331935145259448184766007710997716006926781298659526120721115075652374705588275425566277022066877243524785631213289975519685291295943503038764800983460931149730742062717197527790355154675063290216636080983837028991224908336267587275482979203882786951961164298679669082904004122957146744756965813520602922008853436924419465414210986446061948135586718556404987659859621676594217866245804673399745847272462342369679335891172669584149365091313354132228413635592238090283046401615548837342995004225770025404132250542306957340382373169035590423012600806021527519362349049510995760368870101818973847917436661630261076951577000287595749193297320319438008579631377307637868353223148438708581322851862210351245729956215590429110823226989291163955925562082935839467749256659320609248496789668840645272264879662528495686533507055133741594915718327668115203353780976673078323992464744231389428599233968407400055269441921280808588138228854335725212710406510536453141081454577452451185166883251514156941445132747186513370726259130687222167205702752434794641577893175645143561676112268414085152327224570819641967022903251829330714396905486734169938137420919380259097682285778741416974623223859124558666289608132081318327746153661044183262693450932265905386571941321666448917510863029982563930014419104040088968317895857933760709589171472820710346951834081638085847615359423970653325446789112496660747592382994074557607590172058914957191192275131642852022375361701699459333322069698842471748758322081074514543651550735039623545973200504438852688969617203035878668298818497199280017640679684005684886480305874111574863588774636318081890922618428050964465277210701267227557124598621870364717882966490223692810896987424865328571557885230526490074019372858211922980653460994989182299274923682404037568882357612480553116231573942402118060614585865851600079940152697345466724432144033765668985209824127563595588132325368749077312429905413299570748199269908300293671230092751855644714697214513076845949930667465343116572127583853654910109854774688763811330163512175933087500879596541799634023476990054491557339271943160601804708266575658129860721859045866887796452420816748129087147490580059948792505796802641174932083010355634538836664238352601550112959705352685442933756502796858706623796168319711879048459541851020084874297985106061292454217026283931127834339639074533708526380012783782883157934697886125145909100134878033745516761798685643965133013752604567566586920780933043324867897569988565831124060958998228165882276124787819879339901095283656640632554552350520378291191376446405475650856295958737506391384989282618857622073306495766509619510298540942394028102615607105457555864347766304245541642227421025870948443891775478597825886920498307480537892153002184047245679556941568180448491344101026283808825691201252075792890695551679327223695456854174941796310457542660754836415396171145948490443915188333914119237780866277845927065760728775401548906570355269455148260749963784626769423329380433804945642990874472730615892896062239619121554665419525959386019330497874264570838871732375424867878008729492931244095401217024291034195197908281903802574395342117987177861672508046821488139729430310372816382302101846614666190777727913092427299921939164132017311556973728612183651121605196152367063015460268659191637776509554605932137119361553961331009659505491995681732394756579862094961528999057534120883056557571775718644194002344217421670964748031755065330730503441468095722879815885127234661345815199158111933919515038403426614217761212127750807313763210991314993267272097913900708747565696931275680186021074946790511277471729975981057362258964594363040228484269013621662020854364769541728544084325933387391024608807254423006391365274077905107016713036639883865384686186116397823194887565285897664619636274312096026792961300033190486161873947662103165162160238245481025254961887689469859457677288028512163052079519920455655526385671981027377605763509398791091010619690148573751669652675092433876191436951896201262888325567363099716208576214691296010411867562906117709370977419145661152272422017351219513968574236399424764588092198270967922133685632406488823844479715407677924122234063713673892493551608287339482931959966892474096947398800341572476517900752513172618407086045235436666105566048539662908049781661359298823685433585978043034268602471459774804287450160284228046748178424763901908061887776803204563658710675258443444326306852118910829070833994857116612838643904974355612146403722251135358299546244146503386776575598883956712504768946636543870600742406629666746053355028364388763415816193157121986561827451518782843079171135569540891697826801663698356581214931313000006171332809052731352092098867924870278643787658822257131525972107095501531340097267126415562250165641978103955966023449464241928726400172769549801040673093040729416710093300693332338615375125970654902406156124060704508842737224029266643074904265311854095292176263901258638817367005448626740376488170565081137443512978281487111118196343925865617415702846955993080833835674461785658342845782016967175442773154726054165330150279399413177797237596938042090367361380946012947103652923120662940385799160574337839771857761488790158447485626239684634457337285648447984824130821817657345377446622136729666310153493018730940485863035718142842074691218716038493629568870323468878180997058648856728816585804477016113837229805001154599549530238024635693136920404005640501612649012388119408145254756891702183357035380005352067071412465927860398753293337790110430883378520746917513697997620735853988171426653718040843978249498812582373121495447118323245572489599889492483054655758152050361444238479568725253955787316433024565811974644867965065823419698721300889441340362501952909560648086704541599228583607903064254951226595066453099869121347448455035840367677007098540108177629449026952021542659268401802570933291407104373936894599838789421344136600536527094326888244964020065080946326223715028400719821781999045912683949667186753705605926755160767034400837355728297561406131234973701712746683103337243301248010908324142592730664994827681073121175062298841654234224172594872850047679408216200361880151775964986466570031179405044401568290991669955067058684404510438799388381289724565693564475260623686124387459539987836923977915217573698076301941229122630886122217886094557548131243382405799347941769179777300935370829335647377750732812840623799705534236656603050207343249326632390922324488321432921712955778391082116495637219003117023524555927790244670708446934850708312522985543670664495758832944239050837084706205382366334131910818234334420601314461119907894953087314110644204816292233375540008146570826294858467251550754186014052564819977504561759933832614699260516351231694299835649129590254989889193546933963346538735239557961256474552395436578074535220370306272180486182721168831847182678508597050405135012687258135208573975181228105314233770127051500642096995555764082962914493007874458692571303622926945615864034940247766804164529803670469884733633788033650581601309269409127152386902156852586700321521530904093918718227508881145752581150630626125951118684249093366997058520359205511070655278836611338517343578084702839792886246377800670707021759399101878296497379018946051122282206510750511797560959613816181068239556821033748326432547794186797226274666137561405688387896937478329476986156714304334285353646570998624201952647532219635725741466708763750827551357684188692008430306006899937259366075547176484864932861576038264954695264332942479402371189909320048361207730745785730098198876214154321221366048029936948787733347673382110884588694905286666270245779096111224393438169260827885622331033501998901855793393886599770464676404410779996944645240190002294634274102855438191421033604286086553377937524392091931541303104159765464057979478805484989681068304072505283110690932055755812042975633855159778265445881682786877535315145845142580156955146728072144184511222752024780627388310355381567537971146806333385517481907442844444930726968990928680566160851099316138474585037582166782167571083274905804403629365012317149697451199535826081473430946221982634774876888960079909525921158604117515440892212711412227786403331756155863667752555980054281962758360747742469187910584633017129803494104854140814919238541643050168616525665614202570749718186920224539264034535386367301747873119900107052789952634251510670565911324918344536337975856373754341429566573111470668106059389064910306937406061298888030578548394151955394866718137790110566201955664434432705063301561182089845416542114967828332620886057098537346651440793961790477643156422042934203423357096716630098119605137156203728672352956608719074110976289277496866659087950991103455466510850635804461648838216055723837300524276373693361498449213862540649994430653551022642230977702458979844978574556029184875680856015792033138531471272973840280976149078071448975758241034594984879394617216114947875871739115272835258220240131061284148305439049904543404388928806378266691152499883897617732612322464197840716952372257478416969214407878489693167779073728834149412294102901804290410864104051462100400272905166498898293636300642221968269000030038172655737813207020318016460316749012809582977287692543444645344341541760187770564965861001515314450231074373670191770803186701819990058372656126077920360305244442354754321074905139674777644184783413208102843584832487150135047832685640589936911803604757564449315784724675358439075722396900751598613246676512826180490682366918145757034583688393164677883198869177821909507794451680494506750205076702893692561555866340177770491455604913251633667547100679737946678604043629071478105614212298776863319271351549906742104694232275911549160097500838717551867576656274075612457942518342983581950142470277593031792115192656164866571647145515727132543257982861326205883712135569885139327171109984757963291569450747794957262410946861942559268659054274503812204945658239002488236496172411126801991307795040014962021329238569905546760789726476047815450266717377699308411479268609446499516656977914595303492566500802866045635694185848870939871886127575188635521161675904943832555028920501691292081493764787083843389047116383642516655423649030465466810128196777386282900392162087896470027604804192871795253411535795845378654294374962121553816058987818910575697283513703207849017764529845722384044960072357898035055228877485646094902638123808129972159805903146338819576269287887800304511952782504520088919964650169617672394953637325372155977570796777188930406250676388465802004173191393860618562063304829860254353233601818549704576171215627680472971180316655276001045284280873323070884698144013100135323884858570493248336122285728236966034261324355493185642987664335378382042961313488561625661205112403371201601932125917216046554320348569804178244771280022194003291770275570681904365678289711871349796090136502874560509845107359924082380551757434102032309009601114666556490787160516758250793100053533085868873574223923741793996795180378365867705257065983377592133389413917515587826542864910802684646112006968736511725290463581554135274193270717064268949435447824326350907744771369071817237741621125660840703902765396272916590637429346653637078322093011384137465388603570194825661360891285192188427988639950818956781835227344001435509054357456082769762208068793114420090899654364554278888642770354551246346087139700104150449704338734829794842095457323911472609868554449100426971829465178987896505804772667543299438697348642797382452972419753519204561732160585978526830129170317721190994969043039578684965099341546770887413420380056505771095605659794090040105876100099234168944770738857556058701733303574363803553722103669834165537688293903167352561269913036872416784145682080163296941655716557085498401898889716704791433153045275195454831034425251236893483100221308642669472937264743315417791256683367986748936264840761148592777144797561423818579107811705952585834041445612953130887944612243900694382510846586728241265230553902757239845340359224563715203735830413245664466572583402929567760821597227787173614042723774065927690241264026536679090560314388402550260260341872743372315027374893751964817360780225135121353538283207877357736806616692130767330475212113676526059725834500466364904073918784335041140145212460305880117239064067590799395919776628936830704860230560664955928433196464817644072168615826052678072068654953787544337717015523685832135306069864682311682924876842552724183497864610274852867349591853483000676857161119427050881951692440664462078288021439119283712135142965531605609524114811111770659327912963278693457927891054229838418477643329504705866265606952323313305914264692097338510342399447678876796532405044532557386439502845981569273370195991950041862660175359002760542044756420800749319189012154996148299228711021010652839916724251882363864367271142500529576693409044623652843250497618131202935541233292839496303456100211840454422950115734057249177682190587299388856658981526163192727357698731864609722969765027161544863056895494079537946332104667504916500867615077816637455891491462590417025875781027271052051117447689185597456523664568449019317794772853688028098543898123407451446936342197584438353414971612281425749336193824335780496955373096446855769218572208734083945809973303292996457408623890380956648360162654062552540427950367093842683112316508442912767273856037793912088171990161781724904356806919470518286120756498216350581022298118341637969745394827353426577556083231978073241639712066604529786473332587727967857367339646552976871255664827450352143053577693250671588516125288302363631744857648074438069877693485925975592157860647032920816908942236546933477867531257435048899463994339146546338026709735728155374188072513769591395396927218944245608657109737251369946816868134348227020452197797578366653733169991292995964194039353728829685874369128827716405654128485122422110766978764918785534061433883575465087498174908231545117191812582582611430674822190778979122996045483540272697874822759181615654494709755055578193085958919147073609878646001562177900208364903603983280729693848167914000362534579314707237279563597224073939837738904732939315400028695468910385796403535065171184475095897275867477466309088289694285374023532950166426939039879550229391965470520032728303930074830137794373141301646192236357021491723184926796079639103183109019270837265362678848608814167049031327820959751111595800958108464112067838041365036312614832566057316771995595112916147623843825808687412430409982225702550428459215301068153258617489245601460054054594605111841371808738491730827522463853543574271558482387540697208325758565622619662571156999915165524019038398555870587306518081617879548592961486822106588319504715759141172673308819861804968354303884381013309701335119622285002599506832144974106097011809651170537704654483023512742890871496477656878014964870292984653084983007220056777202057399048703445251109399867815956338686827110291815978314030778887870687660457349165548568004817792466356559715817341967341997724183287945125179978927816677869833119583722753651572166706705271700110240546299862508298148860582129218475038935224473148834786207527020233227766547441534543469386637889586875575445889711189824285225856177618735852569905236601146789918717228089499762381322849459309958278876786156438634949365106570101588670462018738621540306799874591457282991705297634927803343920258333053544660662539676519416367798209564531976691915653421552377522278022030956932075507139030395545611503611740249415835189603530445473172676652817784099193608501444418516968760496643174011594837927384572901846462064546364594878802522062476555068124349727849125090789434805380710411617563075412063287065533260126551323828274066335021640220258313147639413584005288161994324353232997777731681862946905620155140181676669359948404107615237364023289117956985489652799075276130453739995357052303202648779021407688317615205203126987630514404231603733394973644973460197070852055017785969796262825156178170566790637475766402213859018260424371913880949441654642699025631075762792080224916091217602965829637209517211472697367363306131807401423050758887824235501177565723222360007669495288950501149675586493373695811051943999800526207910359850686563865996181486362740267507156835697296070539322537727949549705697369698620963194040797074921606490847828978575777870036850275340062815121813881245826570679787981145074144849811310966633617380771652760075277778333144782091766738511686571397679694476395566640807139292520874947256396507932364215612935467630296032796104477404226965271442304962198398943730661068834247848212610260625766236838888423275094063117126190074662968341212962722847384516634117679976782103895025996485323218206556780875199971500593292575245876840307322794297717183367911032637531063906014118374123238976103621773578725027448647022317049369947328743724581071082329910073009073736251282115014729587972046802066096774516777728527082417934206587267665980824909096335777281402393986363969248783550732703055357447023530871529578941018854143218593402656177097076588176356664257853390400386452263891176599215758747285319377541124658204999259038925545025692229341813073874682533358638788143742680033418331789298257470911856076208678543810893217934719268023562133893158955647920660545210749864120921408511820553445841728050854657308820496609919253990332221232626520546945835192197436714008396205558201614590683642602873797183346892322991819256679987041087657274773021574363370805918710460314149481103757992399228209133131433904764711233888810246752711738511167598425604092848359340555238661975469251131189932724423924509463917697759841177671673737015615430222869674267133840461738813522905666020540990216163868692978408042218351094102786461785923362615874627577357416623512121349800669215648293738639523512840494213012682449275496931415370896099125579859231264192236787670898589945991723701084270359165152411498781624454809670878113056800867973037790451923548324373467257478570702949046158847378469956199246700062177410973986428271939345180968789593278414461194070307609235308951137755550196032301592481180941904427760829918097463779637669417672399139187115045165681976427226522257951637657733377274686357832027301906426026867726112649701847532735908600557366297863031461353760594630189404963538140381700629245182324489743122746854895943480612816440439312597336462198902139758007465977772411742102842131267699401124725423974602466798243350702315146240657095589306354554005314408674052347811959746143194455477029388495377582031238904367121950341350062492827664398595349113518867102874666897827271474945465328851527411610741075729019802676551010509134488650080250169379348310042345716623664597805595585207157328155414597448098209712852423957779665557243342347623902587070971604369688841977097874850772666930028502996479033017658409193744323910089273888536608545956514910571228931026068871254868292068993074558991611490287713192076949991153359667076780928861687564871934497692487522918334051556016395387068967593520661501493561712437016146010561374085538043873867240558052507415117392627292323078572983279374247417918167451141763915821295867161542387794936181113540183872383395134856134603015780736391748466513126726848234868370178624016851061172134894425096305112895296502452888467502209159225374967214470922019035793199622723196408004190019013891577754770075862362110951652991478251542727297072680133257852168012928596752148265653350900577572992262345973578903619404955566467555305334420332560511461706821430471863168098054553636064093063797787843813122857500107432249465984122269742676118922120800375049188449510263242948528932738581251061442153740281428211047923936120665262998246266898914079113153098680515187502837463556680300040635890812548766525403861569190635898925470605393402547246323020328006745537068233841723754403410646669377057061147181212951851500634131151914843071278544395140112392970146998022383046887349069390282606566261135640052728135916668095253608453450398550814122548298574187814749893694738046775112157192485872355584147283200459854090284051769626691548280331739082084626962865638162922999034088931944367537852462130611561351513673785625969806899151868873396535005427489075594211413288546564055316244391191583998740795312416079210041540290399520159575889234194476094342994776256023733010561266149043374206859630474037391067549257925789564641957231741245529836869213990054646427521363937368433118598389629246637938549900096646004294622844655967027437500871757599869772906918304584248599511164983890995080587750812282874991934607740073978889444799127457445821033046115082967077788972043323793734704277362307012662717975112824559325460869559929203840500611199080102341124424972559908643646733105412961207813934395551649559126529764980356394904736034423361528532030898772837037219497449890445596532611476440586217541002638540416297645325097813588457640144522396431490662877719719912554439580599283818067587159887951571208691925576665880278333507697038286004365007376749203799906527958596180532690102778708724611956840656899302269820343981838989018803645324479893374328038719164343788931776477767099714186219697920379360569307056440816498425174923922142734637586952615934477220791930373167999770751094149340989623154086207683773273478262034361384655028360409359278166839514188780006359927959638064542998665034342831600167870586533265655468234231793642282760920825744026822628814026841051379316317271312949271248348002985879982280911661713371193547952919239676872207984765597020260274078654606969091040477039018986894481274693771429801835565780460422053483807340724869756873401556668793327961870143182128821478620495191686360230891782019143840161654975637478275829055436671810565452266896762816108902981366712205188720810992627274886288547902960925415924462689183112678424454354892566388322018674936257017207443745210799578453770162864767300460490414783768117839356646373799140070780430285918437280362642856050457520229500569698912629112037144984769712354007760767927533949625414354357889604313552752498893270498195495490932999158847078145313410016605580619850389748019587628193975364279525469783313247309160927046849266876960999490580724495852090740473537749074863802252814567090557759782647419910092134488005286994556482653448360440215685291838896971557172506703959519871941519109561118038990775383379353436439541264766617513320909613117360816295753934150198127422575862995988374907001743137909404992791109786874560516247148962086919953268406777674017089611787412081037200020356833596980402342018898224206667277705446800472066250927355393887144835095634544248279495147788423124734535916948972771968108436294829168592009642407342983648806762494897032975895406091856275336443719342546454690872358554529223967410707052454794687794395922796513173079490611929061509673587078870896217633131778245226207844856981444165348573188766029761524260525854601251452162281903992943397019979774274500826489821508752952247514756604286160728408660320945465742483714798409234078639364087915906496344972080921405202454061179063279091448085475422581729627632065559744731326766948802204581504291439224183547967644365320576872650268917936644996674542882019511235560489546326039836353371434886960841876180828585056873900426498443668797141734487708311553298924367173802177343057880133649885950180745046069092977896772057626880666221226686126211977258356951033090152580670858136300897400833221945811787502673108751929971548864278365977823997770771628346513857346579236100242389777441394395224635005141761180581557090506787693460692274891436143649294204688639397783634787553972592968755747272847376004262515572637613517640286066106770704039524521937861564795521985778495940226849106187117231029486365869737449800915927660592530167203699922123346326659808910621811751143803670075020435622721775905186911619476285105329919132875254692520458679874398782145523869056855513921130542282515052491599614857760124791523118191652599825950629104761576375230741263651081115942529407930113462291250252729386937065878362413946470689543698494445235030704813597335285380110553622658256379085439185596986739869520829290722916580305302340362038959485771149012938496156611529545171673529404265976906042318928775302630960859502009865543131403043804850647290645285595325320362325690315746566092004294089956716640341658895567333819720638941049694903555861319875972703882046326646013062770427254037643008561969419274049743805286687413801448954036438751013678012920026555196492591526023116043587562357095322698193760935969792147509205707872751369898643229098929855123589572693442868296183613153797794452871300280677928705990581160663839742564656702382086959640971913608898293857544697470533755635400300488913562473421187043317603202789827240470628876947298989821354474914956255550231465344157686312186349701133692072652126026737697290969734082085945638545911538652652657676476782798672312361597589105913189240175297113383078253521199696464516173854777290229563938379311523234335475073809492743489422142757511697856510876473897425331426899771077921083309191076525353166226264476888682430982903314118918143776934658847653873999210121837358112080658196202022276326202075370168821027780237607611502110106728896957705174383642269455921681826390462962300084640299159475145451971902409923771540732412414077137089413708444184354957688826617835773002202135253584065695352656276280371128932559719247019180247345428767753080931066546375519335667498344679795458951505791958869707973301982260395565938256694676847474937714391408644374944541568944992656080402372922929315452785086191698765547888423908241248533281371759572883892172189240652304701892252888456375811319176523488492889602713760319135034619702701952186496413091304352486733051234687567382190589126814774349917191618344507684276261914753867451254469167709682000011677300990973800063003130065992944561403932823158096723505116174550811950474068126436685862400715061622799278519733093832858858604100461286079211851424885765038483746161048227095778620633568171881536521323820250382742334894668278934092683099677008807235927350187083548713584250319051046494086634375003850915766406851977745662616334678414765596582422026446626502260292472990880356846834782361272613386390802568073731572120132909750524535184342895886329312970436523445056138315051460997243142907660489827630413709808384780287610382501041739603245348304107352207163927970991865709927886944313263974095269809101542134950026590286946085117294013532482279306961934877798343397129339458446246272078430707637905450782972669301419436247548087610101705049931120117519768425429782297997869586630472975767844484678003399854859347742576080178272084433691881469602135757705281055200206099698527099484256823599274647328447423735268009245445449244088788141294324421771433006814432363145537078413662668152528590177836355404170624787565029217562687730571183198468631031781877737162857230424445585988831236112386609191377227220986970693061870578242510489569824830924174315730283798280046412261075936455048028234911186426244684026103288719717434596853806880593362651984546171167533698244682531417848054346502898479992585689359824396039656055180927458370476331625898039226924756137654480927049772522060169234619466366704350786873833857842057875460692176425203654234208279584116875184857641538537755755840332277974819868838152564393497039505311955339521506017068684890199903388170837224657432647556667454404138974266270234440785989469054540468786020487113229192378665156172409202931745846003849269531438474515075203006850733489301274292989199766615089719445005334154622290172037286873709860268039579441961369818587676694838060666074612351516011188433339161622070933340059054473607205307669022009012214144706319258525019915257976574389106647794191389308019245330650217026543942593411359492907480486007947667548286398581127322288712028161314283446890824666015247561849095989965525269669052744760584015364378497472761889554333058968350505162435664412648770003057732846338468941153923072342137470294660483046685204186707768508354775604700313870399426096796060878534033633649230924402593123784739554496692555215865454574619982332525770245847053075211614447820795026198334875240714550076460998932829167115767953844367077026270466388175054792133478567862017673025328933655646262125275422740792043422399895758200447390229675930763960337684989793558145066181731613395342630799002790417470942256563648000515923165264005841355603047665161159035637294661685699014850681705138765960770322608045879210013118519904498465436396009552576591397248604860421403193855627563886243722375976081127806879029238583839816332382073162683674890247525854546227310116427305965825712489578703105968074502016475610870460150210275381650697947291973761049681996526053094395973268715328508373594192215297036639301296643589186495735388695958459003925168730549264829174195838615327242390366220047881264906367872258558804989963198456949180638110220167861993785858881088826130739848477661964044920244130150943075604161074921343983706066553080303479179288415764817493788904028023126054753061632213279122093078836138618729668717108818878245892528493730127982422311645889981283387922335285593512568324015337718528808858026572251827308816758186042143835239761168296733488017527974133590851690768162535485918095744495609512705544506915978487519922188553036686790699069096158055162084672908099366162334145162441835653662012747661154958683830021767057858046913215795412274825493520347338191575611443556811596266257294143308964282280865043287884675368638374448359293888581289840366522146296605595180835805902422186653337753554048609928499050706424737469373320804725927895827545889726389982092255533199511161436618973040953636204063017103980963450046707586954894187939486839310780674691192847526870160913655424003223995064490555261977910521042449860762598285291201931025179597772707084559522125561849057515750961438082544811326806212504247713257867287891850830993131182119826422119680973939720316774330558785817942379647221472149872785784508563689847727643082558578127220820107131223193062353780270611545646095659832812407864636167137112370376328018507564563413143369312017030244081834143584987437968306556683832758557209163085076563867308478502413135334288646157108152366044164831200383983205709429085470838143672010471765735969711824625174873692943849914542635761994195795422153176849528274838772397789394357354781212189378524229757964234348152738663387856411355409233788272265315290473252527111158762590384965804285060549404120804273089899632456325602210446535858409263283986640551503879511082514177163531004791520027935972811536460472141585954087246646882554328337947768930372234970637305933529514840395760394331591351126002713070922744364244589905798428928168378111327110028857770345346263083351874281804534538048529511086049571756945664726044967366136430870316720552813619464878997102769364988367682787981977203471349878263593732343926872087916900220252432885928959061920048059124050960315755607016546735643123694375195376538328022196484970520581865351455911355947409441753295199581487194984468467670302367914888071948817982379329449238499283998831177231688071497079890235738994105033584155712378814480733204579121210166291070883015780605583689981960457042530587239398917092794522245067942464009544281726592186357036598556254113568359013356284838495966037926305467821480493475987905578451150174042427853699179381887685953329472411032815071414649417154749275508180077892661648907827214908945825621733113360355705084173254117605562781096208825931367523017838167076761428421201708698440131048750484503964007417820749687384193263664980971270553425389456743825102519776282862796838077784078185966728569012485478076819058628592576189366618795433400065319972406893676311466975123009176510348408675221137578301881401939459796583788635555495209573473599675730254867826851476930798912605654400534782875575014863621282254492063560155292262523891808979697718875587302178289555109437452727947653179417355492632653649637308671840910785942233741884583548445207814541406377807008981885567068592864555320776783426093406928060897828904337212752435589070915056902219938808812854720735208653470574034704828715885166191854791662339332830432421234968947286371802635859677479736197022105591170057000593114152059249768164709289914624690461169013475243876621532600233640810802381120527519059433533231261956440131958103971164668480017904190125788328553591131774375009624067025751676233703360145340991302459111518714068446851693842053731347798917137170571094277942526072083389133527803014985051293116346920851360260668983502848567271768686727688605914976040566422403100326919712116185392605089822376499342549505524681420024719884720839820214902893558059202975591717562552223843120451634285546280196306449285960094166300891487456311114261327935974624598234215478277479419359940536981424679370985008583228096257918096432513247503752184805013748435244660747250226470952430425534484776280696640616769978944130549854928841213898185658477250214108549898027293016318917396907026626657770545303696367246594481096760649066421505440921434060662922847327572059413407647370211749315378792891228264068748121352103754711783970795489969415262020881022093799291558076582055218385306490681166240107846309463176941224670655710591951598976177960119380338020304702209141570037390038896824595163535736289632766436995135691384076492130633321100111260488677503992909545254120039168387668198494841084296564485869152845680800188465725084122170730026221709222474129497165132157560177860906144269993069147579874032338557402605630199785784523243685488212925196870207078631036100919220454478051701331725836344095285648651636701615233654761536002262467042067095558068099914958460529944433167439030061563349002079013260946465541444359902729400203866270255668469873943934435984868530262567664856106099911774837316254228989620378385237419428204661706637416887258946595821902477515355817931105220122243684448053038346169558001572255122206014633311668623262146286857535428160772491149719093090744810290431380995489575150671658839819732452764366307306664540564887751285276158780141178818112365748357197601267284335887899557706851139160194781292971484133575454251864289883674670528538308092688068761883805048734294287228438833845929447130957285665549714771996393392283205928382611812555451510159302895232426098315868772941255223675640754470798055081155749520675887263853761201042642807603438856638010144361639254273303715669462195919766268110316323081098759313108611298630913280126644727360650192984604802150705004723999195297503460322492410194022166469786426036831229109897155173308239288578490612044837044396858030802940612934986988900967699637495768392947126765292592054117954403060463398387872281212970396477553788585895339506054233510650453373117655162029387823412288679455071562224830774862679668063948604650386408806805427233628478222187258247714930084764987325594142822712970114592795066799093819520676923925442177856970038153231789690613689341106854316498125110188547714487751989584311757340823090583244379811081709960204350231450879436507817169523447426946250972224946066212036806159215509197005794382627983895211425869792872210144330119955557024584921786683788979254798740492162402298078425707416226620240722210503711421314255704623955176941883928019340714695297562846000335047718837445486932438975519137390757264695415852548340028157748171688355040115332186712042498694545675877031443465674889059449390118757165412509707597177061469719269654272140813401473274834880739730407991027600657400231616631450871884021433257238834189043152267022561067204403605766534153424806494880820237799543190285299489916542972452294007001932948857700492519131932797531938197369339076496514522557745654406596038420930638226524689946594879748505752910111623391187591344495030257403692877433899762794146463220110166173235943378051707412338103265528895675235986222755847067612677949996430498796359852157116753758974367492237411547092126583544949516776803522329482549252962853448670740299003334971136723154702174520629798263218311211970037060067817339453310224395062195732789798466519084086986729553624863382624141550831209075437965262049613853796536000912191379514385760602855855303589303648619769665114033206306927030457336124504044976061212476553001677632011701226136441159689968753524774622661963493557671666396499032147044332096417921117270730646193793004804890289946692311943992383376474105271211138723071090208771292909680350115594105655784300110521930256982969548167349145201170835407529046083568101395766036903421252698445914087442960333145083435489842854981259574629332501420502913026108771384952847496199700733666266925281525023896393636167234791214215314617368701788437003104562971502882342929384163350184855899209298287559476017465885148603021659680150451559752577767382987091068282110042321541601577706252973304236964291195375139821902106958785864856600540130457672830152781608959175332427269199845694875769347580206689179043858825465912636837000266145911208891008610974947234691761664389755870296254290469984831871083318577625867914296160003168752531032946490921558513685368239791458634847757308430470661910430882214143198417467975617576176435750550739776807052901901830929784690479365841980889245056346995863816319066449351719610983324772893622485453349711755800014391226220730087871589228960304554742285977066126093038722228244575695186838737844180345465181708602686986014357700774281962574712680967429803352267015168210166001537910861018770318664291783396377006623315139491390858246708220838096625825072159139054049486231727815558438327655265007133776835930808295954582538019766524123703320613517259041003276416610354112239252596567923021879782872840263800158373480973979975234434286732047151498783342449940964494563301915877427283746561516766287955348622663523373282936956406602781888276296644028141360571338008931862944467076879396402730031998954610225008611494630623465398923151487970676373179300841044218950926445221266487136865374905061689138293570546154513968116060293933621819229343291280170955708600362740486745205483529247937994456577374966979445558702975245494263333614012482439025868769752664778982248453296904761398505173934788220407079554390158831676750698574738882961340501754074311453136607605291500075294704988044695171405165502195422717658240882085726740690494637865077041417748242136865008862598740791952620753248029744500931082877780365863955077956541652632446872642503193598959688301126184783258977328460135048406674585603849251041026821290407369505062471504240727628918488850466973696946039823371324499629026261928640422513890535072932095651680258593778718582539716067817202659583131495403690290052924926928140627492215271146154300545863892829347556817224455337225937576133736214315414656274585621713881044094993296567355501134907634615502670198045663479946532287934330230214112302143585323859648083164135909306846976294552358695805347643516674140205007559621922334044060291089184847994030237493430379641838202292912623978075123885986835317610136448240681906786027898155837674080777893109403888776057903985173515500333488291482998726739185832891819690836328565620105334547063008224797126089250742169242623303642840829677525331644138403972837763440658874170635799390830267082489204807030289667344756459204988533208898785748702258183751007892275563831784163341368547082924504527389418024886895875923954575667231018226339874406947387360864664622986089788540673788694543263467231446857369959851163267602219220367872289059034731940405587264573890282805229133850197618235197457957980960744108886478485082646958587058811559514009221898760241759255492738085534999665109342322269289075022460622823218239221681336426355392019369899081489807959178253813382249788184162138231253002067333364994072322728340061402523237631537274960153636584837589877559615988328050546522789588139124833487750070481805833491649975366356118233214455171751620659901313399657354539046528098322215392114442118015764898438933272891041156064644069235309875787366311708211397058658495652986490282779638902573723866637078957202125026919834575895742621306324595802655538815839925069905633014004344978449576020409518128756189883282357116560656409595410978110393735363496237786388306798627767590294858155566059715733422385711861302051336607429889012195491222903351902063279949534685949695886356174253377309266640321898008961265588643529326174010258972952133607061998329227777985191283537380981174713907881271763488795253690688075944675279287856330997872946433718745642900219383227642491524448057620415560748381413563631985797353210420157635099432647817132457000059420065698055509442080551489801717942655232303136946044202490639280027988311058717206493279196649701238070045130214770343493133607227380272674626951324428974268124916746644701144578596605525989694075085412754794884257543047916592138113730807937289712906475335086795605126747769451552115175682800347887042057692434378181367329957028083793011174281891563179201573270124170082042963101874203869715870177951095827501005051586353526994677920610004696486124575575165300849387719097171564554020235277566964795645324957159924601058033128620435093227533663209236578351396573070170733593512775316271997813333662897211580313213296392618812752160558067620399625489104971806048030156876426937359943870102831726756497168519789538825484999849688051570790825583404698548057162892025241019808371613143355435127383892571053377772135500963456796395979992079373802375852081099598942581902634773013493740415279447662167293563845350829248590170460533461090957440209023766067489272864684957817851421544489957340975201657931729306824150001523068443632904881555102200770040687162715038623122402206467351860563438238886542258163058024340339726497313729524514419230145574500635532979242770197486924225073451462985363654848964865624970819340547367918516138974611185162099225186848887436732183907931401914005789679906058844124650011349142505943433198692875601393049801400718278421506818730431551832175030604324852982203969042248451437014355169164685215860281509148132032161688520035908980315301524665998998587032248988714129767899471265905067427324114318001854905175469870918701509621485781908626297477497025603064191155668927921927880065311483618201358698651605653776444071874973012455401971515386414995400907860143968334250256916606117304643604641522500035894852337081559570129089432882570744237413214361065160458456968063627973786430767362021677112064257680246523157748935428279650785966716984978460896810911865032186054619728996901513803201080629548496110916331546994743049563866742560243314453393804810384405701681888363222967842851807559927211755610088407857358550047463026995821002936071528757256456891527134975865836500615190326427364496947783450504554986377813139599124050403853000298319467377300414781786835334778600186546739464882499657344698252957495212736186402973912347043005720942657038114079127731973886162634360186102299589959497041118359723396567827453318487930946578117751748681545012019883705049109428144697523119776901570398979091394889666015579779450803311649283735033634099269665248705452820790066020660623037581338427804385850212908163226618210865217717562134003988276410531373813118100141361847195106334953877126639748654362047628423248955657461290713994725973589840550630102923104118653534230934216135846231117714613687803985611818877639403386812692028017665645886471182488769170355932570910155010801721952947100661936826438569803466997347311401357203130615370093117740019413175341219444500105426281872976959431302436901165759530378429195126297184910189653482448032074610772943338954765000607588195246272284487491584054218362184931993079314336652450353137195352937700856385370891277253199437187370734468320477636107772355868999471477671491227386417547773842647522480066079613239154212709987044788887002156564862161613800279278874209930927485867609594869641832109226367064816765341937177841980309942666835906422252302874339346467665319711299250843398948983813255127419625258090653208506541780000039132643939293751537568016072058007924363738858099181888569554387889024300852630240822515924304016890398618850697518171464277098316232245490982932935666878253496429813770289359135044126402172284812136099736961320759989273878233315536234824563980638832767968977872888669576638065867707311225403089639241463180162202573585815123998796902947371886085154158069405471222607840222116247087929440140667135003027887721476207177609038005891626853985423055195892210696268699863240632795578356795232586681751424274525723173892914777826177601255917904782640164659558735756083661432578105222611406991740509164347707509496868811507220693386328111249547302725823204750163556950051303341479893780628915353367292939898486160743351195282541785886405816895055426810833470518955880046516718839177790283602073156796091092823431612603658342421727390368481018847573825614243766722066387672927700932491976855757919166157964564706843379540069643344289823789484092873939416202622026178129194273914017890996890125511994305503010380291827617977696360142426217621620679249749163156007886268159740530975849157332932318804577444251379514379499952509668152877032753023458312270499694751204128422374927648023890984101541938223099656033911831905637489333158168547752019423890203144246538138817603749493764026816952226608752214075651329534549188813025994817988025389211602162438677324243382556304068970583963626384525133979671912883553325924685501927446811625782214686873926031758203187367550833659457697857394702824770143814634501274421536067181628298953282039063910602833987506582415267223656954405969795193670950247969592734936913494886867214982152836729777656621290552532744912861999289811239385071478123144831913908665000930168305440360527090121313249915321630058660314030564969890251249714358414830198446271008969273659594640292009238725485087053217624998622805180064594780141244183302050031114944798463043280856153861178827603574732862605593132137732525794175732367134945356567273941543184981545289395803520174040298610788226877433118615445708160636578127344869103099892111386806359608053064248024883675620984017936192634944339954015910894183361766927448423911728657321968753667037416842115117380979418962692299302624799583441557627980144503888509390025316221463423527997966892047278084965548159512045524989142254997065216989114066816694733603230086621047470453136133219768306033838495619042530631166769848209221402332794653654003380599536316868819805597534097862397955413114368572671434218261071754748284202625426875166437164532198749790755703770081165025663124837532723372197217577231045522708063986386690489025225704819778877931357323286670711379087776215729440507145077566876188980414003274360781215653787930846661217337021019948542037748983643131501068640962581803035300359817689544969731006053159092715299085571941652021271177754392200764070844007961116972922058797507683833712190828112395039731662671732420982985413576447110974980874882124713967782419281775117015198863658722344999506658420465620152419116081823305223076093917094585173163639544173347597717398385953782076258344237196192948938167209465855844163667004259047267185996016140178042098828258867206001778735824672768818804884191462920958501756975548392930036800402449735192129864394667647392411934349092376961062942454365278667232724599169305747171465594545784259446473562795792020934507421756505503191731217458072329943547464814903636172690044711448273108733116970324445451954235896412038230460846467016080104365870613181392052736824587460047784876949558064254976906011958159442663145416773542439233266456556842163136616399311194428925777715206109855025259032772645922251465964555906376486637083323112906213817356007374350429792536990810383379539500031165051380472747255083951951037178510853596409914893090283174166243474240777176154627519179456560111134352654961979416687096258270416609366908765384909486835845055407609950743208139510270851515003580645320000027784686987988561179718289425929154244432145160963359097214318497691204972782727690519643148698299264732845109394310553751829546206887669140858847902544597881772734792535236251318294000634419235664521120834376466347312868963651857448197830681336052894308349730014790144805171794557967248656132828570054771563219049690283427468900219590991764678651766648213283020941281963121371073632038352405533015465667880817054151275715618977910656723969579559456396624212239640440993207805333496005798089381268736380695102695292499653462101756114303919911790034450480522742394244824738978254453094345288949585320225992565982246681344852476457035138206405526866909612128979724011795222835204568207752455447363011660177082080630295091504371070073301203241120381006530625727659451973982306703565740794934217317881010851867928502897208094812259519138453743564267279187097398317214849845864212144102563790509856224347398763066425580813912274632642057579509376202449469186836748613471566241216425835645893905438609850158894211575431961145150834389942672012683035296066395144595108081389518270718916525151418581542101670880347752684831071826103232087935832716937474297420713495185166961441568946249422376883458745945714013768105545648160360984336305080125224300404646767617423835916443577322512268681858352614229601875324306504929709088417973472301175275032451651110918404777309688332571751730397929331796989871233079276596277961876321714878542423985800714557786262690519380311445675700854768096324996861417835900011311975597405488411428583861206065094611633324771357580362629541100569492926751807303973248131528174219364712721913656258866044180438761152162045832053647767408713459826228338851597857675210513474698039961652296647336230876111527338936937703539673136402742628565246042634320161990893394742548023997571099858844064914468054727066171589383160404572943791495663276466008941843422407193599195163438894173430819785713891202337726828890228841707918723568213315384586206730544135425656796572062106459530052996184675152675473740882401533071068723632463122384218445512292443254870320641713947253637062442909209461100525933432205497798450691544998224086014339025275990155147045065886711004858394298572387500021557790519540727957251159368015177864755431161440933012364064773748302760614940949213657585865392289300231327332644043393425371712169807419404817535452880943582082984954602080677580724686483372033607344685005942365707301291481669189669389412512008285875206644852384877624989588375198194690358249468537188108240258786130084178883698063246223104122093439034002782773644055250602025476484369003355363705856761062267091643983715281567582053555575380245785382516563403761127295724441110886028806806825788833522867342630287904884268172816925750248602826370731946108431305245700969840418766988258113773410981596011243906360828523075427864775582671906122756736862703533963104279340940222376440204991847899002743276791087092022789930706350434642186883142460198242969306701598586529038272750175974400676801134549287360765779163430606727977407272325428669558300302453172136642878445628615818470874819266705905543291899292156144524858284441710887802768420414699863025173514793662348852160416064007947554302823423700234337775033559927871877181374703678865578751935213453922059424810848523389073317440632144383358155666312660147075086965067294322346163274155751035787307388039942353061806546004385317363678724926288464327937918853109222236528599050689150116719964821951757984372490303152361005104739043100579915436404326001241348628452666389807647737086140357578902739127267755057399998112398361558921560695099385579749325494203788504486082756899260756515423661817740127344461125938417373376385416192683029150885805147719246618502993699619215596802130387529331705006085153953216677086591776561782835210342741330473251943253339086714220208393442447049899674950001520325309053178047198723737882508199757590574408813122590100485845644942489932908755375330196128630187651522765837720410710555098101205802449715736512685987491377509276875830595049601808515229881212818252410374259388344919782729672686303112071823575637792681309741455657253303358962196622940144819579730827029179323059327052581606366613885399017311965146056331807963947107101317256364837920984211534368061111535857513442784388621146064167435699282398297286285451164076621449475671140067463070342374830124651724129222375149994825325393328401563462444827020533638827200810887602403900815275882222629562040433354245477071371901124336898263721511270291970417306953753965747791442164818237760359277442689472765862497697823708579059350710865041886194896164554588322245700296074779297146920056813094922702365173387936356383528365304574894701686343758440199252386289743310950502496369381054454534032644089245798761311438200902528754294727367286926959146721579727044781389512405173107002868024839827002855296568484749368244197200641631195332435337296950729681321925107003109689067455301389683656183062334226277504978869024181378916031878574341697584166410300702683098382038698492291905819797013139276097069483736446185832547914193178184506495802860558114924769968561227511275193818389507844593641522635401202036832152688362472114060607942229131533888278292087614434468477638696400609442900169165495078017256259013700905255616923060286205280295486630129607832587583120175410199457428136012301784974717241679773300036901779089245137231656381687599843248163709326446309644913617600946075379141514834070312177641949667678254754309643298995330780292193878023757457711548675647409776397392685029479980947632618114279997250941990754671220605449365435521763269792744284969239022086322611513558208497444503374673012724267766812159035450409773905304255336441262060769484788452848584752817749500933356028593611491135097163018640262840855907095786110681971679673633522077583593922760120920197180390905182392344153946122648434001934530802020289789534829281935286466177198956696760440602925064997085669767315849263569011069816839381063015964661449153250317770310060413035181731247851006994679789918428648094268404380445922097840595124364426047769314934156776677373854560098963437777554973115232173816227791931341619495458755180675110105374287877247797718972278904960005249244765301104282357242676543129368009929894012323879981090823521226341944240686493625057958670480084280595810994690294379633900539313844656858374148800430469400645724681896090258701881376287503029903516004285016069392283851420483548877142575986209876269469499312406440634852334387968590868466130185535785208482065872774231318173766193744082832932632099940497608261096864240194338517694776387751305492699088088042982769686911732590829328442323103223264331551415967014778619218481282070343112852291002026529877770290360049442147176146428588362928677016200468247385621813882028745800927921782237083796114929384596545219599802122785917709021764024045156116645477527331059886332100154227652665809105371946878873639808962104238622342963422680004222154299513612827703272606909510974055715967212058233888885760533119204328020370761318672810459838319992236926122144805882611768413396119825233657818721171870932786784839025278075723330226301237306498674009624177048659954277975006616166406718920390651629683526865410898440779548421575883038864728813408365759557601445597757734834710792833664957033599699115935515884111802716108397074728555576976869093928180072078142843532932016071845599744751852409926801328341043828944453189209112902203067539994389156211050469186915992555344089014759547904068737939308512850940683387737292977794239811651378084112854445190980946632627156478471709582214953079380330062678368997335279791756293498038041994875690109522456601272333655393150328450485897686972056542252057362166494654824823089284911344258479097567988625545027114519381048860656424416397731637839973339599789320374505713113107048508539555223100050673206613681430182212658767612561978089687706373327965547131244323608828536739617224469050978298669462054121396133115534312760282928056180003832075054427132643427341589460706099585201179910427860805602271595384619188979083370275817896454726868270693775880889629209617187064025186920376343695375226080192062108090489516738488536464094416195542679081750198356896834063342243287214969895433997022865852242380879470523689754576237478976956327645697398464988831366581862143891023095704941474383199163377569239925823229532108379599751681861235688259418357207487719374322346132760466334989428006997588725736358465299014833676653971609878609238898652546932326030323850170036497719087515416532781057735872708693211763393712905613051109156608498111352054021628459045874827273709882524404279954609042245563120381193111198991984492216508339043066581668798811651598853610607890476054705609804155626701412317133505995805721525523094117558347312419318275663882998340238799673959905117169724226428852232143687127515090339594469512691365425298472431432558410758156601071785964185769744797267546802886069347053951528159335019591129732180950210380973811843608592346107792600549334859584446980789556630205936880153600117576292866975486980351033564629434576684075538175837053318728145447313235234020175530255931644420234005548140878323351681097415768075122546143387801290030868096427443663669015076869086189647394611510180354733411667119994787608474032172033824195813099171800886128547367242743812906380164582684956825402056188583545211476429211532651053954122154561521188682454790840777288817751957403840104296510486097201972072673466388811121389976602670105190676927119090632870182588473996460167266641920854308969763328112510805116674459726118686672909633634494904642777317069162990477876325545260134054684364054410792686678997390349840835350729404881948821509489723490820689111704741110964493000696732404661038406379624146245034934203195244819298177773791444197940235627524270983293232309633873664017228267064997391200225767402419340087702463443887906091125358579073872631878725773500246859708230830971371200318302832329735889982919915107452762501522465595462250254355118270422457689451590085217903739220090726902086785907802720218730965054025723509229804732430534719531770160552666712038918078176890817838864740245487961062755712013057858637763279143583311624914380948126775897043659866196935520397416648567597241776367747111758456907373720334293122643525502938956702136909144506003722370544787424290390986011483323068195368621532595425475944184060198095045157868680452773780199761419310365196186163620132661220819798191619152476886212448376457683561114324065041736054098117903456698907941771847847720934038064986659681300846041915392994755932795809597905361835527306740662032102954621773478742616600781703864117774549483250956122391993994938609386316243624222067304268088519579205424572158393966791227406931166492025279304402963767674022897965757050838760617182255268655647154203711287117910493397941733801695729570736730307703503182315264487383595726894851485691005251041107546434298116261941485458217420211926204665544176966297053326966806590452602415732273695806719417160058423390797750629695425489828513088679051143844322488599707193351876568811192076336833014268897098821341475539260014351870503106248247467975339795616391151686157411449652212811687832925253615930803367798670951149695269380965381458697269595527847460301039147774165037132174817122858479936021763380655627692544339959671579837702711164221526294955915570669724156856203533805151990880844884651659860312912225314428120679357351158019403957286616225170137556669973644682181110963092058770397597341619902479514188482901906106921693748631745458544587687739013365602882129071115281254671573229748037042714324990398788856285313000858155780393475592213114945774283444168660347831070753418328275517797232642156837683093726566380412483561689099845299366037855262365764422652873954155972604827860491302823946010186313865276048468568630538776327638240448179739816219325367437018290343836681369953390534250790209390450216171604947351218508038215255161547468114276426574247629877693119721240284119365384251294071086853765010158813879203006245029661439322095461525371171556947053132205934195727832576345516079728797490390894830263867125315331530283554028687310765276781806919187559752938667154633363821304164521695061109088540518461731461963893046248052696578432619848654383611897184621529633646965342604917043182086190908388694456976428529950754921353600967822803318371760857014573421944945680013163416290706997097722992765053343559912769613246740510825794956773825098484556553394141487335589157577464865391249877728845266058097368645547704520421831441880372026036660794121809160879947432860251989367995787290293125755287620745947711627775177262782209437026963972435680041593190677908163274786082116533829532536821469811183198475361596189931205328216706557628221433234883462125777017163897181480764798768303077160163651340248608002124187666968499589115149279616370682251619894406884180439935998435142552387292799544121102563810934643773438234964119814467952109683527891788167239090136881950519278811191551464674775553571374367961902688958912462056439340879550841401712459660253821604449787993096640317716403491385404907468240192191699919205365348421935136685699143551075629054380510809187064996486808625048840602839165044481839552232065328549602381071913702404382321458903243007212260907214933616419979639778674356394627297746644982150418925567751232326095893446175741710290224635933907542991455965305923092815981762260594489458732313746508647399471560666892173944263001133251373748707160307368183258243823731871527907845648447579971877020925158828140268300378704719390813108788494974096873526365713746505778571179579566654452888179151595504044315709316939706840168335455748697903591185749745633680393990116510944638427252398476199974415827056937894945978401853450919432669145153875495204902216361770807039487796686849963456495507482775640461738317378114686026283717326912871479442950252301075153428237684890205562242721845890248718556796247730538999322768979706598918508827313880843241778439209037164496546984176471142306340106505777758760169854127027120209058353883073918806371608787811143172222908930909512214961198847990950675990483344113878290314294188331275025321261945788457335669518358150132464868572464336315585753036734701050177367205466261322645840823326939400047966644423131464384984371333812861304527886061096268973588330485906515600446440001508358306051854253349129935241019324905143084304504947363960413355822638776145006256664845494654459591889400698121019433417665446948610034329315311626867770223887215841893781993778889052325917318330855002223465704373942160716860831336164303078749875795626238323954448586226606216925425786746099373498699492813824282935677665361360290912721049109553690083736535099782503700082291780544472326729396998825052062076589506081582308223271372075506996354395571624452016441858254584324333415595393600400450198820044613260875546890659078921090693748880923189562370532961300674339265604848572230931264566118142588081311935334646503820696651783926210969127939717977983611125882250209364084469586530625253106176841564709617115014239904009657178762407690849316652439573525755515110418405454957189017610200751485618006728065876019639857952486775224697703814574752445451294823179367826409680619431006118698557551856487854496588721221548371734258449413891829652805564663904042552178483752172992148241578608601816008033155306550969143408349206602479066706686942109177592692633447946731671061134241068429304428910791585478449136600523207410553566936021334930841771412974160853332141527311314536377862980892194100767031494729674633080913186586887960314841051694982398469966468705348804270218445768999898144331243998033983663179864978185266008292599263331014584721239741393342385511024185787400243481888622155490313968788760459924824394116368000594915761284934776341552960654083479956430470662520451132737480823093144916460544561725988114906743151026739632589548106050068103319250761926096356299903146583772622915060686647518406349452208696810360803474185506950456305601625153482970844095144080156512420833608040161999114044500256068927208584158258628306024552000801838495777375293394140529647199540987509277183898887995820211710132152362090346961108058919878900116892340949719336304753605571210725295427719852839745420814132433535019457394325197749017330919747080410287574530568749593495841896621842173353823716376151745946043880285016173272937755976259918956742512295226617592283051038641230458379906630192600199474145393393407068531910550601973161818881614569201245712415279384545012360675166802134478593285701075889350237387015114172940703095499641013748781086456488743639161239153217862830998736294052038384328699603533097792845466707731426280931580547417224403746812726270943703713244643645560781616398800840464507203028768827912098002150159491177830634659401307550055869145906374519608114246346601549194616225445187666642946025533746499514868154739129875987087160340834494542979280870529432475096047325794215124974073719155436567437306291983843760407761973264217481498949835411314018262207465394670592966255423582217415283724869890468436111666871381693360975723473783076741800617512493357734518730254360881460429557525021884688997303024811741976440616070203143771910344659463539455866056121808749983759659759830205639313556929940873372546546567963180210341234969661154799457156467933608536404992070073383546423339909764178126303311657159853619561351382556917458188479085105830974641655555473962506001123837945110730517477138559188577831952115787740173866602036137318806247846634488832529250481426498211142589836596860756212342206766503997660053383610891050016687430176459326268275983582707095823046761983554540102583020078075566224957621681168739559921479288008569288175442134245843979416967067415045498289488123298869704549743438347595225693159350573142053867901526267740143891215375426735922939903944558255027150182311004660580977418773116795995204062990189637472444507812614325533945952876128814023770798514839520785936203564120490062099125695541259576803346889580406897372326548855099830653276557883151516319704740566925099645404010917046781350607154024758937154447605087951651465439001825201728276656072404207997296767419947606399266181031188433142166383469899107895981131645964472459075189712737263990804794095113301495559313641070653608891068781335871971725149521805398309833332682526216443124001052314148625744141288602815208052680278591293423288908500121883895044805268811599390087262882543166668678205352803164795297412502268357105788133501050700247778868332713814554156532366570349214263463767007560574897919178177512897748250843729172034191512181735146193375027716438694272319772061653212005353568600085016798610550032099202439508934196241493129803794395082820315562515571140036481861062024578260210168603416743071785278062624776224902349288311416247363161559083016716995341062089543915251440843458302856345089772001279958805721870810319802711373585809114147763763303431086171776410704311836124711688573524705185031916442712393116040964082209006398202489146849255418405871924374193090825543434250524669893665113160448428776507746139036551640378440213716357820847194522444072061034592143612681572893084752758675049058996992060764464101734271827795936782920028914182065342235335722927848195518341131348677188683186360627766095295046609646198842325000008356807413020864194949084667335290827152594132195549276066587821023769937809354861454294942819368239407733961355908511655714266342842460792381038126424472258279327121227768315978910601352152903747771066043602284059736547332792320112560404474553194581771566449552927213162542224518982010016353072881396349157305241451757641007143346266287353397880044098688230621196851114586804888271835069463709203190359694969291150287307648196117655787870291903723684424572674235994888921559807385011008546726984267130496502415743696349785580388407019245568305784977477051645453288413932121270559234495014169443637423700414350415323918630288398502926106276080130061996706578098086385021179717869519529607301062733491275488141953097356837766565929613313866939052623320752931606021032134045549500842950644762897630109678044566954591687348600781673779826772390275251885808413979552294471642050052381632622432765050002470208378060552670780962852743863908393725854394202213468062515679111229685448940664830123034188011328739734803880552641894322777762211043839851056984654913230341287629691063006357671770904950215791087081955009759337410346171171744820323663365462808041345524264045075637618603191944136036365685407258947049286578859750862463030536441095219349230602402996985676143581063785575186746584351825287215524763333924078386887621423334369838345031594699616208219271974700217257834210771858028207705639866081031321240941848280160345792708935827835072567872322011583658972385770353604992988505324966762392318152187464167293359190958409583628808017032541901530989243528116546265574875994869465824294111748700151937472648966104409008973804358517541189775643500018096633712015127185707139213253352194707294273852866673126183742632844628287401527663661120846370609252638399640369836125818373701670224517510915288565672563273960780194334644568116249734462491967320680928058728115064351979451865241110694084857055916376758726387313697226691809238866184416926513386401296430057977108959396537112507252453316384025816898438915501508877721297566542294308065887148992082875294168144860541285233469817191771652519392962991750886584085915708494128761297583898979918781831774185411387074814667277207961470445203188136993602254264235308795509376474402377055766635798205655269142090801121629468386577123995844523305948801098411362937878125168921470957975192159461621093668084054284555013296720498051380348053357351683784182624052099038279596745064968797482973068152712566613753783636370133120005404009797631097215884847536056397389594412896771578184918390249363421413838999389495861312038003166321769071598909885604134114907060395847043792777349468556917877828671797444978289883059345356345514326435770508337985605210036455299172960091624188895444652627363951053141489254284595921878930485998993773191764342925480745433718197704556455734859160384755211760893080931796254089943185031302329131293225816642621681579599090500375568413321072965879699411918496271590203947581444878932021803559261924887739341732314784468607637922153173279209562987557795699835544875912160064349806221921092416799906499061700418307840444634228844860150468718776788293792396701232194420141646053651863187481752582343761140575697565917447843541856026714739402891545855592151306900141951760034712049005943289199791366209905607197575649853514978697677801985818369103003889925987861317595963967526118258625073384019975683720133760882740833631429009689770364637155286043270744831072754526859419298569898638942951999166657520833361120377484321062257212876889276594030440035989640461486852942530805631307273475676144862683125629461834450250128031333079849667299044465385458211180438716634307285567928188684665101019707004395619377548392789118878395458789778619138219084868758635517293082321640013978585945787159057140140478659659178226551804941520534158860101865847099875945215902415893579370567232502623587919408937335077473309676231917636060251398077378076054040928295622768421733327376864635778326219645080400282964309537867009916065885231647369300442487376352448908991217743944770166360455407004437596787305771270747948529602382192266593823215806603999254175287328862847320792890321290580391003966875534701035247128144009069461041401677318592412247666424965382975000557442566336835582539612808965667926065019141023175671657907204871004963637981012289843714057658382533664847999805313046503808010564995373902069296148963967876593050559521783894973538776795920046991810514553906981064722151902451419945434213953449278992157282741620420541323393250679178481356358764447878299626085467493319594206674646312260395847034226821815664683962664517393446098592799443369688414193610502413725185381767324775263439166389500498786149588637549400952408334510598099504183969080695999140224201706117789145922874891043639691738892681815643397184076448422257299728127139252657487545589760775449382787759759941550189218993961258459300293862401029562989493419785528902151865633083374084575139457864295605958001099551815558773446770651273794963028716395142093631160347363376522378827625448321941448920480462788750912919695425748318973996024202505535685372423665201516231229051137740567240642976752221507429494252761333485332670604071658372010265919931559049714940358982559262439907962853507902682060208603618102421822089330134307759559411186069390375475142846389839613187454349741522384471723248407697497103821096292867665858115816422529355219999506999753655418223174239648471612282841273358673832477989924463963783507640362241865133547596831187229204237761960700243678627015746270455980479731383430605110160299629312364937210433477271432532579489101300332942931323135955905506328121783261294134422100926245177290262278013585645546589091004144745707514848308070432200732956431543676019832220559230739223398630396561388839212860202061736708223731363773736486834752257159849483087285830681906311248136176235365541813989073786472704159848945774267253590668591288721081265501069604385485761229302587137867124969452401704827807568985256261289359387000340727449065939566198285458909942532152187289229852597777921562919547797537666860336301754106241675609672621611081278609599428905553065197037672940110360050782751087223117497005080799638307599570330189825747547280688109160469219362985948816749835728700326546311385474335120934133932014909034541675186945922918846570940067039848577428147069592131789567707563712607807028123763700368549332003307903632701570617690375804240294142155256544026334903837463271973226044870605217678668620051728939344505280089861724436903443729407723508473576394874603753277041904879710623839346751246754658461720242475636241041308259872758605323458908413630128837203427470697842168859044107595291824688396391962171189651181229722910259010188765722442623732419214029748491452957456688060589966200902960753385900704354614238427585700095281922970249068131360733589534258569193938568493917273039350921964375070698620893799399779261074545025690540701069875646350182383229402098014484457042100846777832966425084945491428981310584387489343410113324823757728213010203176922643904834595646342591495017203357697968339685554259901273722546519175951090219927632880313446317779936118021223104209851124208195991354231794059694446031419459244073110054138447174202197958296697148563203804125802198638626748977092420476271765929254327978403810671791150269910701004369016792133670935187337395493121877142051922563380684057433912498221063621559319290901348998676494799214654429591241116574158788358393423730671983675677326110717693053263224721621540117589108649353083741143283548320340833144726598335119048358629654222515632526363016746494099622087788781347726161560030845454852738380070300237287888296405706316549057382890820823525490238370469178426989342213672958240505940768624303063082700203126273745760852247780927825045107783880021977013379485086867147710024679385490194953399203691204194720940185381738641007009356995364279701174292193116433653024192132796257494307764856515706152129270195739652710595565782923633455513766064716651423089782589712214340158178165047609610191557320368130920889460787492987964595727291422137598569218473708743977975553648281916758218992750353136839645195511515776271937569006444870596468356269248494603188049480299452885690689927919505221055206671881552037012425139769709782973054833676605004071010042430975678935727486325742829730722686950876938621584344578720444851746239611974876382784676945972802808253808640434952011461823522956390218548857612534525949830463421472095441376807326064935211958728322608929865941110887308924849965062015247731976171824210815322787745693565545010288099024216539366245411189843917865913512396240028270133931759982329350094398443531466827157291079686526414491686010182209053297769222160086241080274086024244214988129424839947192477388689383249256752719347562669442761110695260010680140692062744713589252630927017431981427295507582454211823997186489910941365308303915398457113552326238050733167902757781542353945835564061265868497108870552705533232193067513413662908327475513142736366978416510092691464169234927859628961695641911658306905967221290280649613974070148642527478675211779927221849978101197037007519541673279122307793662585452001582880236430523737923610422257543508994668052339961057536005254723091231135605135692707837324643607520209374007650500443617499623620800499867290784373575291131877560767242944599918899189814139761795158932772797324851156228962777213163106388850800631613397942699778790719858757336223881270564149910482359809182416375916633066868898489626636249237817288369942818763936895068816660291578389365318481500808120177211588685200019713220506337623692746002390242011635385773281524573211311443856888509989004455699670375779344696873711571697697124920838417666646988894824019920152455094741612607982352559929143459953925873630052386095514299955684795951593916877468198103728250238956821576617871338238199320332465550058393746631500681079548553580122837089485695287857880873019644077992030556085250062075240760356026098518875831906327604535004369324135189355159316443882457095967387072852471417904991779633209432536896403989838467081631896559651626203607867093541728947746977350841008417194674592427524374721373114556352144955227788926401561516616033455774305845533918325970076944817633069360441804498845244342259315993082546515220687546682937836394516020253061358979282132045859874577280865971948341801132288368417174298416442736458880125054774707000671656022984986894198131342478971695277690174449298078886571074536074293413813247428232621330117139627617408918544058288427484449887910349154343183500542567542895969038534145442873881963155810325327591329223462249117480573063318217699439044404554136413946028801957377860678724362732455545509102414563231389303332019864530767467970136218615123403406813605603195166116573849746771167759793769138542108244918606057476240871704489879131691098589366295591173989654510824135291379577552743984524888638219518272347289214055810447394342233146584215331694702861883950412251916678986989224693252898972568604261901876041425006109827632334169131435161417449061045488553269461355714135086922015923597257038592122852099326082700914603657723117154807994341113925331459754046525949433233645024360882945370461535606160097244834578286631032879908359588892080262356401473541933706170004443055432145754909665978075570945406410319942386632500916975189373056560520504817684682133307342304863128690166871895783187029093236332838369255705015575816849925531565196834515836588493329605540490547019415519865240044944045183908863808033108678046677301794506409661018448765422924447087319140221182780364514092176341552907641865772222134497076836690521853941469144093403574459477425429837267886252372460023779477511439508288275988387628665033911521647115986972797256360530611136629047260787461469281151704883787369087483215288691654497467841826389744194741976407535541662958561146379739063671500437150738961692653512165633722078003077272667383499562554486984147359191878646785834074501820964984841175130335066002198697955590455651044059061870163753536743293051109306381596666589683682949431839565965364717254956811980556083332379949314876624994012022351959078558481914046309729346579756865337291951752838716353144187550249521578877864744966581008210052339495247190528927265925233451456332023931817692567718830638807639283859391686574462110675518411239763746012107092520705030645849781028887100321807706923268198117915961115530673835237670980847028596650031905883900806340702585492266342851028626255653418435807592442660944464183686571727108990597677724755858927459985441990139175262804208836992584507122716156253356431804992416890283558598675297377813700576436973073025021108295897416727234704632337486460788923929621098660295214742098032539858311394878656099698535010119799688719632024280174898402213393437172043467415626314952755736340014282086636771762102362830955663156765556678842176614478306109308006611158685906188398012443023257066877395068529805607653293366885848770947998500657242874794647280999855691845440603574188397778883518188756936867216563993804383861995352589602931527811143877837697242327501674858887787660387422061500646963186580534878048943053147591756988577859157632146959790047823441118170670751824014108308907638426833623669298805282214186949040736579233552455669237757917242492207683763544956037580007185429615206535622780400661956724567103828893519508358267284961254451092614992595252671350669850346133445654199501816829718609200335067860537394105236843699217107057962876317625844083539869621546958920722094189084104153184403018009351965424976916281069668967219644363920968200426546022001952042591130528601431899867566198574855704939167772490935827109621031018517016102362743195456075886382674988701496715099864617917186005317634560422335370544817781139817941747786035988500683276557153079275726196908313385713069284473746976207202928836688972944904215727650257285043458252654000400217341972194798920691940558305294340593623825143053982238822545007243303478818785862276404467578200153686442307914052761691377439804327766434477244754641999960251023982662593067735912369968495574525452944569617428225785361156786783770406750227073750015890065611310203658867405688310879791163570336503290628156256429482637960302599427160712121162227913816618341391949674937902413950995049433618663892793288232018063560224704243646470291471189215789018297402427986378255872725422940396827443366288395180124733581560522987721393909651365372922256253303062478152123341437103439017579216834685876953288646372539302054603477028853844827818967444696772754234489012790526032017309260603682946166771001202393308516779753105696703520688084270023477188294531229754660743298857109275261602554995027681995904731905206405423976178339337556110388692043073585998558465144392325780970967542983898780446978330516913947448881891441389153813390846678334838344970118975274807217839900062678392299995068755776131336159903895035023254320120607520429379807478036282410291674519961776406737374770190954422486113512507320024413248942694226213405625629497145999382392965800468641829317541434952136401111919088518130884785908381545799792351034709704490910020693295727052527870278788671226718124868341813407112168251452449156562251309049535524170313105804661939771007144425677644190265606752911563336575891727060127747895884798246933500899841027498268307279946343586302780545377561712093529712646548321106544815082097320752897141327084714388088447878387944433249974215740435299221512801076460341838630781223430313325477566482795426095540353427657972887816665949113087467427973248165303594716901073141960115648998562473368884174250334351903985820566286418296116712710790529424138888015583877362344688413962160259323756922039872432493000421090726747442512847417229903541087128398288439449859188943984927924419747927078448074210885459287622924066259957765595004674961684813428915790182590236071418175067216771531158339914964370434088399317830374520788566567622745213455468452714598125853842073564330797128546824119284786921828564262305348490383550905495254448901481968658728468952880239459105790927680071733311209257073478711212909701364627372621867408129866349683470903662692901515718039355541163468632874270044789967195052650567424261475513007655125060575586655276144991600185367664007668976618194669281703215826568240266768709652802539059612902340437854423790259154123600887375389108103533404149491903685037944015451294303816943833631562249290786114415442965779027033547086507047491638013251374925190708419368781378042262491468078182616399120816295986799696120171202060722837995897461680243762183286886733456109792645258973840095603103560579722151976512754259341372120301337103405037352418987050200218971954844961014667071513973840189980753781749617452495084727824011189984954512472618082428989328807992202640808856184242132425029320670168609664977011938204177815888686104631114839574453161642360225436851991648377826972522902998282877411624242142293970053984308879188317590719881732918099291993001967758234426780343233232438519145609065408989373938016837249561533533896742932647846004492724078525894045007813152543846812361793215273607832805877732139122789197161549900076580942676286706416850262187871860206923312052597756332132568637171868817924087451704319788751431888811201518680738481273951613803469295868885249727262451555286087183854327490302611923215283756016755379446299771186152439140920758818406094291799792692645271817935282914423190916294906216391146229210232051068863500341894180509353672890417582506428781747463442236153363738036599138262891140231204696189793088640444743431309881533742796515704661709580832425444227625041435360923573266662321309440698931265126588320251343065205871638941920978268156510829878821821502577068250295318686602016252185535626592382081991617557631481997074869320927276734727340551076224771429951454485948485567045376019163895870222381871537881555713112874253518492306727254398299284047606799922204377765676321858408058845221297058652464022024353818280254195217323874234007348939933276463926933650822023500518825019977768244658380513357033653867519187426027877473768575039836524834428468963904180451678376839828827977014316235466650530563719758077276021378608743009336493779083749505602243973882544385259271018080067051820266292654760160600128714881987502498766082892884559436459310253336204592245626934347565262459326836669360933822415538806720476773696237727289094454906514478132299978626547876333169981923768431225163233875749495128933102072665741829885214317245803086998179514552197871422266830346039466306068954195916805764849242060205810479189023603767350359351991536066801459031419988400818712701152354900534829669367023907669189336785198472327638384476027372860228028528220533439565872808363110200566809517227382919423061704746498698305568186297668325581308862157477788816554168050761196228003401897587923320302709237279111048524593019487176814375261035188696169570230550720382326436594067019843377432641394173242574636401166505138826928369189694659658565292100052066158427943644825222837232477894680024397696400847619358426228455549279350887724077795177726778856603006628117803284016007804526997300366678426742463603055761808552345461569308247080494929951514821135009165344099018954656294037827230832192854694921238835914354807962703141373978403770832089295273539886882336634283620897687639411708366678159902561878194663986029207424241098504910662602954101357855620860731328997106883938894067599072408897896850953528754106553401840807713847198564394912886210946147239529747451118056775563508467318138589873000837909340671969276087552202815501751942474387890899404095401676418607685692463539111637747321975540790436593624872151235769416848124255841446204944694918530160024124146700507646648401617809352006000684946795284238468844450646405602135881874662431690380991834133689505643011538366104785907581975106953303987900082949544094730163684002990365786180265587216794724968856877872777385403449571451037493971381536520861936323723642596106974768017527387985767404296676626431820349752464794992311310056275215615647746120503883398081859028801807929497458340481758580189973665697007952610992520186734202018946072131651676953560118516451726341239625538438066035726063457288278278780147275885553645022120339813965976879373968985676751480417670952880041981548043607569300524319021273394176593649647646803622043498324782151285843968213761649192984244070384507706888986767141155061088366851037310950466420286250856373036577141187815514927749968873306803469538808106410281415776398325696760473766608296724567975797511854185093755068654564034832917585396337456040820639833531608995845943323297064960813250014241785774450028293797817370262931638824659056522403617544645836564720656314685169408033339176286557456862029911607138810009772434522056840500949317447039540877267740990078539854387104233602570454504810237929130020863966985024789942978141656952385542388309236506699094682634947405529118682619869964810307578526063306474484219264314767978829164728569372390434534782094266368822617795662603653257315189056919207641566857921092956482335235987262123877238192873416662797480145045716975962747237298753218800528500796908244452630129922673095830266266228239076693164297761205838316221298244850136690053301248429220681186282801747851076320522342042189898045994281454879241335779117557801394324598807051481732880633070258655119998741242909128206219784136826106954625663953361666083170428075244958352283564085761058874910860739824230823244678172800549947725722414926426245139119845811446266413311549545025361020357414808980094397099310192123052055112359508323359152770878687268528581308336461899624969809860651327262304323965287311456938846894678191219328298585291782738047351225366834456586908195128087380245115177848618655177108496997138907924527251811325965581028503781595241832592926107970178078050606690436286690091915125313125327889013052589667532146929880464825451005997404881997562482941968749071910304300079712066452575580678550937933763352511853234633280145349763640374333304390516505612945572208967841933444597663707886200551903124726438259531735547098167246819913943899480088441594257230960327235895640862910722994302392789263337918698704010689495455726141621721122477522605153381698949538764826878232300943709789973400652324805709364433607853230110184549369765574035205780698780133537604409970062882550040265699504195393457875508103527113233164246387939924386883944174847326542592915825240775938439729035911316514725403738429387691401640310331410288694832503912467186372654815417245792562458896641697477215926687627126515763219144751209283852424241236351818934945390537498004452661129438023094419900277593083431649235691406109549971014945012694091137551578552142247990876883040081234300057205734508857030110703990848821963941622253339843701687941886327236980794291271864202884328790572917766825192495016654003068431385370308686179097369715249160256690035528831354113384218711588783949984468925666803354494905268997082260755868695299530411495268373502767286726123821726607903940574903406098806302583474760188443451248378285953576132852189609296029574114144211687148023140000647220621352263127738368341974402432545279657357804287445562208266473818743641306905248734501921620751329196010447635854472325852658142046240081262688521989340162270879492945234341585439328942675538012986103884883313675481550893790586977744579848188542234137965038463621974446253184128188097351400482052063502578843511910476710908459734401219508511283758619826627764831673217725888830394575755275017803081830836652195037455600819155583634897326292828056631378851996892609477936597940461056657078705796701355582162081670257772737569776573043765610722493746066155041502045165983522736515904074351938072354151041803984868026596091649155847271940534695704205186722162362972957192540818399790867924933096352944935512431907620624270393032965946240007204535303107195210504910260736138465361433364015914083376680691332852038013726818494790470991813217782606207224158254508688649501451773310562707321610338642227521989606923253960245119850469443203910402223440412119589493887205203143493420127806597956629514660479719433691286999518083253858008100547096093568789831409969464824058943791624371473467170847922104088690152696334913256582938015104153987979036586165989459113739404483230765898507382305201247851402165350372571887939545529423452820706954131954096605865747434024852581236233283094904376394434403257397431489976168837569381469737592998271974961144162782045027748927552333759937808706576618349811522953847296691459126259838698769548852000900840511427772828880227458974493185349500021190714108317911456223029424204346489695390687790924713383425452734210416109632889972013589937452501340711667805155691641374149422037450504674753256893090438970049571084874138395095286850114923736918007092601257475021981703071546769770489072344213510024221617832622751245293009021240036830358644115092357729332577403113462834704258012838426839968315833665902825840849575612348202662606567540629870700674827877652637620386367115352159930400952146024999864711731415852789693144872076370843074994410308719544560843690279038289912671869320855802639513502568694216462865921229083570639852959044958119760408572194025168787465732988461295506461555406497086511604258271349298553655789442169102143414318927468361825074555390775460794077863270935130731073583945820845897874185392521227692652687373072762159343230689637696754340782873002878845608237187889194865088302556182469891476591362990902222300388721834110938917928190155521202272370279990547845842199959408359372191839897310145193443925216729986586544986672584567366468956797336585987706549663774283531233686930819118046389169767093432319394204275155420701815381798221279051530946277475054866491962406778219352268422700775240236660033529637003036605653546064523420166522116105352099489446039447991562945097072063591242370551364748566670721623741153509337221631788757734505970117109137839055501900398219085071435028060235597697971745303520575744333792009006272017934847446265219417633130845130114377646488073766951524665545812685816504858847685734080462786875176367156176895330648564622695956490157685665307307568430151673729194564471940248172214471924684096419720499332868746494062238734241892125584429992830639244249770335852789774484137531187185768926452367818245201506174399660742864774103088471379252410586942310143280574677476592862802940581976582123204508675959053826217960961865732384473006341572752377013229176730925445312649008429549447959252092297731789879281165547192373049754317603054091836107470622852784737642155068590402237665947651868110909164234531392210232265616215123039014999900541914146459723871719717872763276561517111207288163181486462566989038473903266897966906325932432861898522991557358480513198888374990161440345801830475280650570252915040112645676884280971289126549304153248663695369332408917273730610314302674017809222156106170015518705151402857022223482052475902655916054535457300545677146507380642128790784811378170321446852479147419647647175312411179004451765368428860574505950122897925479581503087352931285211426859129471267018776841780275556768871892170128866756801123623857826571085272563606817162612713313293108841447152376649889539913746147816305761621102935939728605735542482552705687509743286699306417587833064036696255827063132559753916014701837980364070389409023626879666667024413846124367102673258560698361404052809484972255817755011548283637538522041130315339865654309959935595801111849589563459342533802197646697261942779333489943991234120658842550511365961693100041815284171588161914718361773664213271672541759526573863925023323537877166547616823917686239459231677825395445166210245540398482557863178059551596513476527907063589300366773318772646534229828116758329737497374097304340161157346276601485521287733742377061958157623173956620379009291428707752494919353123760441430724735883074085350128461522857757303802340574884905622602685831172475144537041077174088061032271266800488838391049610371212927289331893180869987824147178362933281080614278451786890832516046897917710940087205819152054992359655704660616933513929499386267499366589419761291663021135158419029755964425939481834424678803883368382391531313964122104890480844605600977344211707821961142674740008806440119525526106215591951029820457962446549767699211756360056111365853661131348314252890306099813074300896338718919505381423976310515102529425458534542179946150232247967691416033135637055767496876454075036614517079102256464262726613116858551074024257465847851915753756216494610526138959848348188820348363136724611075727253197612513639145981672955126777578030113816535474600091427035016509714335389652620627495885366120436224875959480151172678075685003004825469263401758752125094615690237556423681314325433419442141923762578930401095743254848555847472366980385833563897301007438155762077735684844044476883060426508005664604870916804137167127745490274890976508792116454391970652853306370280392339620228972293174199058442036512402093613508893062501067019133175856857890336070812470075098616930145504693832423097462897912092821787009903479566251867290616789868404893244907860535130085506962877889567140248412503338917802400319358631915266890869865584088276932933757256269497428148497752033376755220222351495519627784145748325288616662056562302964293450455131094661962416007388111563913471806876300359151261428684289880838130061658292913680592615987596549063556488012228889451654814054094037247748961104026918428527622251910391396450787595525854683956606705451976404163752956759997155991047917775762751276866415046650061961169652864579815000251169086278326467371550185371779767750282511112763363769347337760953202830029452303639320947301620128040773519141685525802985781279394759099711441423217380202508546268625895134703902611844409596221638989823513822328364471294926270513236520975286499666484262396185861508069773847095778586196101345516172135811448343147343461851969117903371687914471230774717586699254818648439908687955922891024716753673010820402257339615364160978366984060629468388624264483401715364073889807805241949725496880379680218178354384914270253273317915049441886460595506763531823144494767425509490511929883403570947026819465756097214257079475879785146123812014425334054623618796334718413963838752512085474364797704991712646136484602223353405405694825731571690088130598276105152696030890204789531229779407690355675727708156734104540555622483337924848245934984706535291792286008955190964639847989722820657974000420565788002361594595138927420181217958284359627298269156503929105442367425513770890886660233692958903029429245958965213621789663412059579528303994402957609251217383087375080755036016431642693306760748339350357944428768443915018416106623930637208561820785442686968332872888641333607790703783037329362566222549572088754507487297386946742252386612891461066075284916236259255824225573837004415042742900903608515173563983520652186971340286100679911255282464472429035230012929137032186284851591820724283098178835224137710862959207354850601172816192767117339083615206682121425581339889508591094031553878319497624025506510165180923701242133178525049296342199457782039592462561321785382533609048869633517763692103066218235024040671058872739628461680376197602022419475213676547087204920735491294923273949914823609919333423679403955216239318112649352043346903768822486489152142442938167469819223190581013488460235328547612148781407550566755457107326233343351088842645018218072420884203339520857112439823408172692437249281649736426411582790654384580637646803876199535310600310705319044940182647556720838607764158641989504558722573498707178529815767154976516693474860831521492406753654052858299188983085714017958894502700294916061433186888895059411490781261539794965689669504934324613213395404952512684312125105413428989956233105024521760149920720849566556349794721380497771234494725029796495537675342961322035738313351036118278511202547975574248256697430336232106302226648999609072001684113769137651626228965553654924528255815355252902361442998429449543096900129494386778040948070599379091134847413538689619603646177095022222026832523637807927937579320871683509912362542068991522447757696269480752226471908037369079238543628637385978245437122111887194082731520757708495084224920474639774604652618195120514486121079742545894518793701474866308840934616940598706900020896471254073783106295262570515691361469795004114427570848278376206188124580680860695658765082376236742342885751454098193176280906976516212549500636765713520391845352539200430063517447673949190098738563183147403908684264017865411764566949653247640729598309228504566576431777954352970678728667644945262688046737190110491105635264295017072810024365958696994521864065574773139118458841071837494486945342852409728817215129068243474526550650251505966824359515344916379879813612713632792925784627095955646165122567088451587648448897632114960068726445570430621782739464727496098132944858280859817561884531102186231701477211095778638964334734999649069235340919239670926587059135861911499539756669504690977479830302369893491035727964152029090848948732295898082555598490856548996812265059984765293384713454350427116127743037991421888080426295776451488211987561981854973035036072959200700113808858259161430249402358118015274064557577703975299654305552095560633575950854781562424650205882330739272789914419208387141028285746845676868157041921841171032091366129609485834582646849184152347863798998987876268009443342430650882126766904619939852062862660929007910360844139087784538652790922290043190041522318205283811878533075392800070554016637871757318589131312422854487718520386031901060705248437312316348850035066380990834584117816386757216135126025329440156848585397606128591115080893372722471058437519793105016434048340900293644407554071605109627427590226599348445735332259987825346721695055974463228007801256312627935895541294062940626468220560563787469398834755157162087388307129596066699121113764197279437906473268716217428244314638765207367189789436298706715856684511356676578048944669897440868018131085008091579994889852060161668905489711317476276955240347895363704377815800481974061338846415251807179440769253443538580721367747337782645321824744255168790176670496329045791646840289394186512989373686570372523327660515681372907012804570613499016958461854935347000072768017818616359218348611252252100088800723984903835559216133724833492449002807748501982236821858992812817107875119900811362315872679707322548328933510527902485933797192105070027187811806385249541620431670764416225480945046808736515484547533303654321172354754809056824721747780023799990262234415144657290182874386863254565627265517149100226622189060430063107640502518612754403142787748585113311013842553908129387264782298960431810409180993835456490234225926660690220826377609963978441747113777297521016424811760174767684327407868397543292775918404846156361177180120836717137159671840880690388766356505367819036443170414526266526381197377517381738523349311867661734286922151881198955456904762027242156556423012449719799570283986365868987506780207199525865433984181993534587268451640108576061052399538064339792736640957658291144484207164214419429047496219155486185055515777539544865350708854826074291098552146801018534906931357833848643598356751387655426096082368572603174926808765396063613867923273171852447116687329620321593760003067980808173264637371068575959906353884191659055860104078334756819923018709141737577630843899343284176101369644697512300436832485728364584336210300028945843561861566208832765072242148152994771409544877367754388716423057069454123098075014326831139970517574566066649467275842935294290120502847891292161018738628454221782512907328558937969225327117647795789014755171645962252093968382520024584164474214431737910876266345019746516901659741853535922173396257793179259227109754811058246156951065043328329318895838825255141385447308403883900389563722525336004843257681767908798266675484954954196300402535062581836172942795028812437448312240430091543821698304811256448827188605210677263302665648689234784785952722570835743244529427659886543012784987399283315155523115350954567853652616529742276562429791531947667464300882371992304245172501294642395329098082483799636725952359617834162370421805944826444471238316141168009147250069093185848976703725584655912906752621928167476041696281668793425621150403442190390587231651469737075657906941559198099884621686917195884292136477659813019538328785411234016979133478190069262720852801374356538666607572088757642882262082215148037530715129661835795170243571406069024885947946302190368989619009707122255871321159841349066366310056757809358494702683591665460886021297632442354299249198391567214881107245070055332303923280368454078474850812793723698419832135292711889807996342872220892654953106289776985656702916959903386009970920383098780959868703829492853921765425217093699886590462779328900546519149306047146776267535326433291077216101659185946895807357020500192872016304827285731402024551992970224557254266416622087540192139231860791193345433158514226319410123887289385345071726964061064110040202468858544680878393900054599924864635350285049987254403732441817800604737442674090829773535475397377201406428529456033213670023433666927841388150242567333275939600608685752320752213185951175215912500452854652152771671855103637547739631946334951045576461950354163560156715125715330731774643184568913358369660634768700641987147285718029942318157665257426583624347820030281367508756604429408409808155718576887881484347339536838848258988211845504786988628412619006551380702214361841416826975141171658822210192925279854891578160008514462774533267228672309741628502561624564616349627509327784763469683941140229577038882076164829754829925453393550154161635788934326772246028393999678050897454015272053105844015304182003533000383703862224165372429116934123898740866271977581804963183073188576088565929990997329015888839974356511575192508761798707452710982919707004070486791568781527227764336950797643476349198992645841834421141068913124484988901069993198415696395314027690848860095552959102128123167475377188850909038725511484511226130770568317172327219705165131490121043101452057655784792427759281628862812773802668414231867377171701090740121790340805569754146859541294239782474753667468352523645774841345670226013959416703609237341048320245989645692172605812868709315800904802651512159092631849637989134755725721118128419487436818713208406724540639195140151486459041467689476416999120023536790241260643236841732012275444122532876683877222510192468884169851777146574169207286983531046819659188494939067983635821166001992071019078684398278405018908124702601086757936781309962584342357204288040686147701851881822895376818588756577714036753659269439585944368065988916354790441582542713665370462948229218405724386183638958975380498288611034706530937305804103470669709110293257713465350974004561631155723141145573369657231657603539123752199454213176237543392495341692547606604712061031583655299420392091247201004832648524138175165029801756230132582031888481900657362649582948255548215563691300323615555813020911102853304474462547218438337174229079216038931262345254407353642780552951363909722781015315741664117353922744951086052302952886666122227976140386541640989322345147724925832749637366848323493668975236405569733058810687687880443436527387252001259715637415273220657366856835220181990463390258415932211466348509437281612604424820346990507963357901369533102004147062418523422402775614566278096345390903935071962222285769788569248009056193542344955068521589737901721267937506927806802160742037034785440266111489929918661982974492575700208370841152010004807743193775708464442701208974623891911307400775098254240853340840335968717904033755332757729147830485074992505153973867300871427750711154691823212638676401661923004658441278816274430118179012975735588524487448418191646882936713125423251498643332779667921606412582605982419944477877213678683218340771706394028842212522113863578843700153005843222546703480713711066295187953619953149579421185128327454366694070803563028422475843556478819198580725361453175040388323144021350763988308364237090045771280449249334037084234782743446501085787536653159416686861411661705060618177475953988047543507406004499251261771854148230894423814003327046700189341889226174456483104318506330765715764010476675258183049386734221349450408656273038897821492750144576610339379203400527677016108410036535992816089835788169286119541336717955963521077989640420112174622152727104124700400998653435814103540247564427167238617831148792834251392623972384598531794661872560346875722741372265183049134892526428134814021034249108671623792662400562240002314994950209585395431614398661564576776257304522447086437508600425812825602156743821597779894454713933194052508607946521451942211195827442134215226839404490547506491155718609148213576657479812507461652842657586834972873795076907157611639722858424345933162369927240653059698169519372244667870168491502752917287529595121148956226221992367227253350215610008875062013194323839076591594666717494729997261187055781359952466117053840435673612647523130969606652304878925330134057244441701667177242607677457098082899391896560956209291418116970357916079924603249883033715963563273867993903192924400550859848334217848729839752348434622540244967255943694898749906192930145035778081869294798352163333984734774577612096382223382409359833427270763886597880409489754768119431082440607808536062545975965503230660403177787530684769577956962249923339796400511560455107533650147491384680076419747898182672143339448117309908085092617739209230061699162200771583879247850781306614424827237271140781350671410386215399582573612885054774262114730005132760786667956634782325610618291874744402614249708523958012645639090023988439413572574215120857745674266515126711839632079012841357206402391111147641242961742972151351535344626529253476726836221683931981445958509617131544191553064450206695986182692727532493631710849718077815142867163484824758140767259879415894777460204099146906621387849271534577493862401691725828717357486906027882679503952594708339764364714574425642426269315087968812861047985248072855069525814318811555145180098743550256625014452816441975610484957307305581785650336252758438321617345966762385888220492236294704108841883465097443239315956889518591956136832332847576224166170528655910508938650400228446326274480654504732430572320381219308252937118140141442814852293998547110681384285922745448088964679025562627768064110477911880962160755381309123775419419213643193602508114057851169388647705284337785401742753442304661565877908673156664024208180601463704613637694965065781643655557282301254518446849358853566878005896482533067984715060031254220075834714104082803043870441102678011689822868704095950912027632956856397806454283736403822580059363552812247123804910104947333359435695205942721256649366710358626999439294280176058725158333022046217932338700182795759330910310156201954913411615813088447670396698950979204353042825437422111009944242764186283719748813915836142450565457298902030643946923942574862647451265250946497100813233797214540824229898757200339450846186698840935855286172606153088264083613132985110477317143712353560041755117467771510126817716354855905875979649996431486231610757237911048604409052877318914762512830705176912097742485674421038743567733636890935463017714309944718983005465662491425140543761646189822093885268657242567956310080598301117365860732135062193188564007067184670312658644850735477338217499191504416267168596934379666359999719157764562607749285269547132496781359596897011385435957696689025526735166050114151818755416325408853354378426318556344036909272011721187113198412029194410136317745372477318192962612775782428365882830548310738120714631760389867457298217750480691903963920830262045993316419525566692222012348824618393606676252802391318994239135294815836101017365335597657753457806087394531995533847586392403451367389904752109994219785114294856768958401485549195146563264261897880343236860325527212370202038075557155258559394411725532830954382616965556389757036787742877255787623970237444368360583685661964956061449190644827067744193964639625582781663673665534272269835391948281247079335153174440209941180603212105919577817375145815936266712636876947421947832824090725274180762475044041786308849266705338221903559294886310736862289389246219937662364911141905877785082771837182636324751818794875775214701154932615960844591490493050152059595663971621233323198551491937700018497651261839910443593292486689773925157679327210207976538113275015286313940349075071509056568956032405109014772659893864595028598853059794945876452408605397417244504981802158360983500788503133542494845446263356761262138579118963465934096431202293021536087208546533557142569751689552656641733131165999493003680925884358510517238493139488346962413843131757555701281970537681149054753797524341295099804952765799051929229574078846452374795978833921303851497603581255520582024544976718312168689461904385307733686714648392213705255830278283681978661563477277526156361343187513035804559341346912910343656932850529871373915631242334842691630898853535433099927286623833928155857875646311191716380947435038523120511404205680190666514421187265031576028188394345718373268971863380581033346689630451873207441674184261839892599807940168790033569612578262957921780724866125619435624915944620925374839605228555091450771609855528123419842311190100272890438143141346809549828093370916776532307905539125209024933483197986520429094444510202843626596127106645282902515333933812075132484327763442729051777047420561988080682461917527423151882810617421176337221949503300933746774161310477335764534585351869583993689249853797890614075185372490370031203739076582336931016497666992066486341297508325289695242944599411895744734724602106248363243825715480819283050143880027466271350574858335196057221049744790814676958523076238192155758142635934417332107069191110954799103754608596524409756391566020251708698554240376607927173926507686358470372540441779119693797534672694892418134797717541820629953373893584715798422599751026556725315231559199854306754811190387016537785193393979523973303062543144272291653095981809293770038878498793804153917419288142524029597468647275949943449551759694871276559458157997165304798244680993568237791995310744009088226961720780799218995291905981187924513869138715259796842831960972589421272275382097928786308881641110994875696079590764880094884284280878500076091467776706185744098667691777257916676289297364550316333417165191339524460722976584331227574931969966145877053598200947928885760069675719963789936113724639502918737539857751484830229515422916666568396054899622566361684959181815840137508922567649739917855096400292156719624771560557800596871667109512461362698669332471586192772240003722406061730512111072952310387276842974485760043818653081467278266891117303421689680376287507135672854653866063168189962447327641831212968304108664039495136730909784213053211585362673377573040469478107765374533320456633136582749402603814841713585973488846443292804329875490619049447429937054316558000946404505554868150277266106724937117821654836302309347507381553469012363505684912820781409002477714284854799631400737732729764980973344623066884830627836031500753560578055360670481547377318251374456483772957077211571422648273823488209576209045715114145811800345641465389400553693696984222589568428955361462947872329302152526898156971854889318885347702120308124589176915986080603074895526641950504858833164597063469607817858628064985538914886316729208472156699244342429738945777959649477634561558479450405181848736617917497400820597315256855977858864888683091978703875308635952233649858309253282122175082959905451252767586817951683050221796472891387046587350784372442938308833593807177524969359371772211263258531216347733895523039655720691505845199557753589263701538724643385164778322728246809642083005295421620440787837083493686989846874394277941428739616519609730315334451291677966753606058004693325549953732826316493929352108547024161392089544237254484667610351728370159346897915485349594913629614220197825520959505319613573045521380222471017231611094936068970410116769694920893438712526778116339254762639787283066650861289470859552981996797388401582909329508613467264357369042095683354267508341908608993444008354512938145420260264107365563548050118603895717536670542392785963086408514314105405630118929942727444567783956006512821407276807144670877954415062152233904781535360969404125975509101410155046289402953209784848550183459330682105464134932228263958934767788354982731769632092218078674079801204127638813033293928720171749185684254380892222438652684923265883306890321708286365191559640838375998628737317462163352159607291083584700103993532571416732622774088023475433990797287004740301309733233008336316522216595573575719401784065085199242182602318972478191468297047823762391641489427001169707499316404764515056899654619403595772505998580863222457632699983108017665503759096642498302486189826158532213775369466339025401501888238381305912756440239187810567721089543053790590895330989650477639056804873797205269715168707160139325335540977294560391475070375589761297498973056142997183679362010663897592076542118225281228272460734035020133685508706248581913115621637546316450602248417713483177175976569912434842590448609038138250469283729989374831264709267173087967630581320188517031307607756122776813335765230222157053842937413936653822726139836048542726387758838997929666403974265828875598446286165370205963493883403591076664857405337419590062138021629322561963410254535966055714139591589719403053660880157876991122915946285987695497360201031724873116081292717656568251340824390171624628857098130796607891717861082569131949112122670529448654248836001059492402306624632397211261027054248016971590698233802310597199289006364090441495666067842565273458254408436922102125447586133424239987841262145398663710421941173648808557540117948764637290155747806845919520319510544143568674866243296963167283158891352077080287130827849977789309024807868931125761215933450501500343143387078291157013329716325972950581832503823638133320405818388338221839799228352669960349390838723300422591489480257027099557654437938942933865289906055668885381458096219967214205405201981769763422202842842545837673776841407591169813134156820918336523354985961602398451904457174015356746514282499206416366384174417186215744417079360482151500015447296133941401764230830677316221067635140224916729795227279774138775905547613333701694853883949138639280041256268939510528482949142318681980620615015280911560306836323834724841493299095881103080208116171643515124858294491778695847917655581363700380783882071709671676730663703621835292782320630077319894379745458735903366362162668374538491716950261303293940853825179195842716987071580815980823308459712550489363352355819769372350422219213940619527749806029108325250431117646013630038752751340320329656936574348340997407371805627507939803972337208519280233520608236300539903701956260504840663621040518222365461007622275310132019453029871110620696266362880590966727703912473773924254320449890617359551638556506217404836682465233953147363858699730324816032895962326121207945465386631116485536931623868907686492814887653287560744217184976937166604690502651268019969440120342463752340848100993386653817371402049154284194101719286276313446551288702329948042064501681698182587810107139281176484769464146068902302609658879641438541392910433468363127627596340253821372796175624421097994910611686275294239179981939225530482647661067805393871117694653762231155859241237169004296571590897649811420378042906282229057644198534761548919858688985729374415923480009034393981316988241509418988846899561701510935968639373013827869977348431818975506824855647615385281268861910446174325597516726897764930176316771458773973028238886770682392022675115163661686513151726300062978788223861245512734223144290630815794717152205244472753772645512865370809095130098818654387342407548966658354994227730255027007142130326028602435199305811569307634709909273242520724402142207014469277446776526232970449415453061418737392364261222813307020816808991823389335828773951474822283161760473684117629614211730588264330595852153682627282854026185347380263389183818211552140658851125854440362155581676732880421904659835521893291496432950923533989490370195114917099282527876139736043467286534521383253500079406694070909586605744170845176370605210851371265963752482768860843298680747687381413033263045422624188285720649594095419939376671463135594525046967796970614928772906745969030973046431285313327073161907193014462606168784251518161872509680099857827631277964663514450299015224573279359942463281944942072414446369948224432115482149644351937043092098874728688377392193115275335658241686982155937937029745299269333403814690936451708671221037466664586882004784475341914552722977051749794867802169367977436754914804486172138035432348016763992286391995627338848892538642345336376647121637823752545894236360442636678925810038980789244168480081016570763591610237427980369794301630328777158902593598011406815895226275338509779623862044249974132138593048495919018823548710115443316340289910704386066378401281650622063230885786737042470584429826404654346529183292121387309890572899982749211634551915100668198005862584929509620245790163165102304658702881329877626911754795155468666358592410315001480971618376109411877045544319713590082058126414790414384494003304113904934339053659133743540071759466327768786729092724433319478493169472042640955479524013827098650263810929092858156440685527912796504873177607128489186148190610247820417315581105944354526350633990028017207298797591313884236560483819008621171664940652870392213951531168457529747948620061329981957431422792192947408169603609027635744793079241229556835961151673064121284828309239482628234419144992187760333301506991587585697870306005290818294833842406911594317577860410449252625360668569579240643458550252893021307935297844847948072444164123634567945220032259018049927189217192852267953921353299862826587531766135687946946484843661831226300955291942679994130916792850933575173938034630837277707805104226165247290663877280033975841421527892859804131243948074212595528490220558408586863761001315546120454258360429630716509372405552878954858432609471707765824736615579374954927047465406750897327613521759413906749891792924419796839654908414952048207060577968897655598492829470905847614099238240617506476033609640018695354787302443624856819282876400065854668200042730779524983308449245129616795093744531149544784472271444144994002877010463014900936982469857823530754246507620778932386459371157663921314387641017522694727076649762374526259850930692275530745366517919187536511545579896399020669949777881674479538027317073626874268317960478264608937959503176357167326394994156080928060622271265646601066089813050505691084690798725389886304836926119790901409923635720529335809212943320833077014281522068827424269975614318873502640064811717551355055669380998938461315162498074464442008117763736878084899421349791995577746584330801154146031268375359612670411988979161290871463295191336454885811384253567932089662450842756509912154514459704632730685942987124512816746036261603144668757168551975474950746117656561114871121150237228923351099937244355369318950612051521189058216526788343547385201313376743517084801322214254142729983596598600776940700916576676671837911935577103137633809807619859715284308068350829677157384903280420051733759462479868669271285891949606337128388407460234521020441335532690423818089224750196113019220596233894616013403355632435914602160540663298870872079798451003812580674316320841957141342716780276736543064265216866525181456273913005616568159289013676105866798212756269953499018383008896858246296264111574123819718261647874020957633700064809028393458405275342280445619182359955496437650882014158267435707969917038376915032402256151301766480647912173123487185506832314171930836398023022410651032726615827719689051922080883561977032924351678622707400648240830532168241763703122564713294921459766826157985837970621776471691570606401259893483469768246307197830975999520585163831975394736667147042922159580555665917688581256345275695013121515144079562133897348819488417934503514476084847695918544144574807500525618329088044745905315542938294007451987044753367038238779046124747377157830885693865059659540569815109542141764236527009503387809122943794565099414618764591695943722849758090409709774348745466561966231510042033166796679664532426199808851582056913281014254761378047946964136665699641417347643589321065540897379849826868674965854577257015545170313419714587445204399879089440565473933672574030040042824797850970137030201175408624268475673557047538446789773442074306023292401614964313890327699502611930318002058386084350046236663138586340737310747242046396762008387571767414308399241076546225548634989541136094678940110120447502345131617562627119669354818748256413949469335870666778200564956398061877573493747458702956837326098983395128757991484504902844464361349670914899442075977550640217366214810178003635122783447539975007134837884390018478507871916361798274468679560702450649055755165592088048917792017247362646688844503624927300871587452529064177895140286632561792256096579494194389850530936189779632136928878151883180524397959286384690047601892509824236371312561380712861962703202274983090609580897632271633479619047286750168326135037560122717201679848879476234099523346090290634445189452833607882600008783854359956839056296880508554913290602041054245708072259631318748308167043293665679724867353644614839030441176586422616071238681182933181415671698888050221107692283383668598728616458032375173267398337414187415502919416086438981081391196017381115196904987837353110906008663264028121588064587865177060515718358232598936073802805543677178339169466639336271260732135255617929024399841833617149732706881187333022107824790016876951698147709911471068199988954081401519261319988290202453412226124752371698150043726665348241179788324920564196874000306758084155288382067698373531413368801255184986024068747985649758629753263386355944159007944869316625633307792259423035514610407785706231569314287240579173752472545794006914888517243274669488476310418468156768397881280177075024803220079581511458700013094981002409868566031595256395835344791192173271978521159923931666352781062742768714190146591653815446388724060124133200397569128191506065514774040773397087794895798739422303969133119856320561768191412444173385252524304949118435833530686659691533064980065789904993296551057922050676064915028254436132259338500235140822541524366952213727692708223499776869846342041054265600839139500940194463735040256069612191357659261067620872594715344679684013443880627571084902345708725325520675524035979151122954548909340337419408490910017210535087149257641660412295509062916344277547533213331261204784004779758263938477127817350718314097628657150227271104080349998436190880773426383134082717679931017783652378496559718834118152817160417188755962011834099087345477728378454028809449373430805973043602345170738413869899818989493467707332154785740648190607364430341751322971250577477622713337490264705116145405812122792263371695143789747045004747635248873726898775094479875977951363504406239576280956020366470752415260831078468744431927518061545643135775845530878337793633801129874887761395784626277775552183272876196058382796049620634744441416507414674494221136591979738181184335019545922861636279503383584361265948613890108547206526412239833698914737815564638355902951365347805648293777410656799397292774037567023063717191008412197558662543738330046469104439749515629708191930421764308482949634725885762197122569297812672095239932579257863405395168662970901224954965893749574464818748311730431845100143024484373229478759106773241157696032643659562913470338177157885896888672132619391054392879214191166870816010092177306514056547759133096981371365372738319522514298588945094126991980087100551512420213070709046417052968002389351652662479482355209947084483931823203176934161518309647156244160285452868325624772603865750729174061991651608493908077825062312474309412245705153664899396365979997402568474715602002170716062609187256243262828101819160849042702518100549513274113127572046587391941199073904024390405801267874083819207343077747869083287219514302253662142111244576533546620886496746694864287090119124541855367379185378672234757671031491601389532833882348648196060078298020735054417903518840466110177159567470008463383723870007073879570151665919245557087046827950691108917721807636889122079868196139869220122837932732137349411518808075040850320109150371138612230384381556081582135098350467942750059930116448355111118649622276140538293313827642499205461056586786225717114184735034460372202762403114949238966679271015609485591733360427136445404160424931362246492915641024241153972637679268287296316491700486702297386128582471208791014313651221677407721236062667185543713848962101193269349550152022767850737176055144011210755010880274900956851030925427334010719164068735243212720103422476564614776521716882551983242525628756299480990539697892266366928183441583245807779011074954503552260481069929658997999144226876780772256888609617847790600724115776020345909381641919767374108366434137930312421738445885009427893260841448245514226475555504442039497177929813905502388711375632732656399787134599861501775113029712502731771916033556118812172239873898352514879152479066519987862846045364505433733506844063636216209135068976796752032887230553590192876406834808796625178185503143071987025527700818236445436338129649009444348237279206555892586826075330744241127350032845323271039267973980144010192011270008457936484771045922774802275259700737684045966500083859800233860622656981492382124905298732447367476516282881169384901187552536313638910705375572386053569019419803795857938199353150386170280464919652349130673903843233035766032930598001445148276313182278530556520054382200887494142946549839597165214342513214870868198512880761802344191986167086434121417892524979127270416275138104057180960973419645414427452696537683288705842876934887331363719119106357141115237629417874322878661251406964388462113667436274470433376477580588228897230420065525683079012530018756460706091547648139513195306743515605680390568488949699412541336556499120310519252463446087653188272576261889286624168879694310607243247209879271591057957651474452667593722483990877335008431957879884375685551970607283948184110726575637316457718070857025040465426196914741987173685509991575958336999404224344798634795231247882243621229867765545931042476995105236214968457055859857902325665993063830217527290796391196487469804726250462265274520703359542690896505066947064532485451060208001245013497466184502877517423963958315191124488817492745380650380654001841248487061247049105312167079583356913299498221505098297984333181928289075193053013017220502303822843032803754235502415701820597377254925251493128515936732653181910916699327749374421366669636988126353545983280674202124969941347560115586139336749562044575890829276487825290771478401958457048255943765953098713727289687854782545466842979291808552079130725783839034767325193690496678369326851522150783617226366596093766871781118015664438584892456005767843863217033127327562870847858194373394699379699989799793114713741400599452540059688980448507612830220455884026934443770728014644938350326619716168954871392477545300837745639259996533053940622151585117757686884287292102520540374371498261673134392539394186193303485418456501489793419462440794292902193015595492428195135308598030341813044092809227039933353358369166966766791201179777095358689520120907401644729624710881042057574901528121495016281570338729743980541596077930978601885076078741124093972177447471532258544483006461809019208654070620156314065813289485423713361171308387209185326466376161227265599176824514528756211001631229640908384235845932258043275449549284822325169363126780040700310353949214612428030497645831898690076440182681665593666764113476127076681374549944028099577879930269912976576802893332435661384045050915320822169581499301757617526074499631773113497515841058992846343960874462978341446402953437871215166997303037482992434309953632018449275323470422664441797528638203565483026825383939420626627670840382272229382723256352251954236379628491557703625702571627753073305235039747667569453947226884059037257080522264471427419764030284713609946903719893230100051010832497908903236026125805524171790000956122909054093426054703173726482203646962421033705556416701382205397593852325993410752821873184322214298519295547158396483136361570877335264206168404281222507432912025319926496639836893051355274243104120046451902301725254586917163270857452117282917413485838803796153582748513739736011380557975265807447102561259467662517387812507947296514550658535966760168360067655003516332986444127052232537303981235366170078534527607331004890833768318085417036863280045432556340557924658368450916605653435886655511475838124751693425734432887358795837593634942665247704948270730114547908086330561861759409485118537472914922631397753484196744210963742286058733632837404938934682537371800951453307311858940967016911715681956599768904601025227744776504949789812456835566561020433096084604000922834422897636516089636000971593501623903555821786498784643210280946681540216178696488621778689753435653388714543114666149826721846220879829320737363693660572853217688791740973207182316092363221034531950259275044920089527490689615733721892868511625296309754472809237442625490723080421800296814738743940384802532927881364618257515430775126352094272951527183947697030686424340121013612717986847538721679077646662646344790224738449763690703115533183961801454256964579485877503213923940469244456586512604567541366966961338076820801812260919962603635887808401266894116351979205116887788420834808048294754555202130315002973702767189559447102429350889783549625190972453321684279329366348851622707795786197833085293868430506904444883908864583775971267613223455735455971533882076353891780483093764997779701646918626703888311833502668803530676914966158458893622388953052209320600097242910713812814040402116083102648249164084145306027931197925283416398759537329006476458018409850369681627061555745131029442370111115555268404242289556213000172713660428465181468743855418576044762936586053683171909075343660460866588752841031552785068238557109394015402416619123141430695937419709629714991433992731768690280413617402714326400856294174920486355749164203119888702214856445542042566719124387187928318628913500403036570217501818373404117035090392091719330885105220042630479955177543047250424040809647448486727814696897079673420184111638177038294357134477020180998519892178889465370402222871649199945105969674365586983409592861134180997347874361326029827527640065277117359065738063107347626233049086026861120054249658550298320953326095419621212153104626834972688666453815262019111263821986320106986685721071740567943978127904014845717243858404365097295552405617486608713886751665659699269163636615283053656852206775335330626692403728147588217910020186963492421888783666934954742658068554024331267520313296759640582816971888238530060587174473788180680058602663134110090993096426724382288571981782327997427781526474281659559920691108238401005383860366600441848358223670057201577049961684461238000824618009819636713202339958356985126780636318104650909830598767635542911128899629931424793520273570332491910443267351846532686114511115040092189744534574446046417220472788175247107873413804293950106607829908126913711340432883882368354868052811656977148482226179243278071771012545643137598808661280429305162443655958330701084178749994944938626957670402076054114689616124658946530340606017561251145360946531112094338017002315707026661494604839697570302176050294664791584717245959903915279447369304022757951878504731367088819376828241597595634323266426234738207034073919830165655111015153293014727430286730207110288133908010260051076577667793058296990800364611237468939803525709324422579662934329963948985271019537858234579729765270970345532612953136495623865712276917837958702299735828719393464174157916899316788133036428321957186329041268170106450480018662951025626621162005744261056024223342710391405765967156431622445095847387020192365193618502206666166701813990710432358107564932782254625855111239198276147223311229328193820063460695679871593862530124121749445051556615612693842611951259539985886252642808349957060521638262475848597779264210493553812838646844489673227984126669351529347584831391760895466909563415133207460425500207836818332114846847041060698625040230449027161971286829822623326595341710782953675208471692657497827333122005927473794751138614743071426733657478656401285099355211163283474507361177202012310487978474894280883830070483941920845676755448223898265214200570444604203071414556620656513662618926687999321449294735157565197258956130628175041940551465454731427228735165960998591294041034238013636726259836026156642443571267551121204341862807351079737822949475002813509270383673932187092921980253475212685458816419767887281585417930814067118042883655759504655349707816011354172350309369665558865433905749796088530482376242784752170197217348473038398238572211033362609305042689645594584264617956491852061221075217503557337796401776447274449509082275873935944130203483715612941049534033161459615424672558820204436374423932089476476610306660998164527966237809226300695176901876712590995553738335901777828161764975823438161396702306560031433684800633868055036637632591234249970839253514333184090597294595107325017940063071986841033329192208278658896425464319362092014085386684948002390786390803695246036420722754917689650970953223394368762698791438542028061107975726710025426602277278171644062322906364520094139530872798980552980717598250361599438952092922011079363001419334252434623254966298839684819339761937063057983306667098609291536595029651107263946497860657229873055059648282923651406135826111817454833845425431051552003949492904250015747537972057505633082277140672707280582224472460072828520402248873346662437819707118782913254266728757452084842670908007243117427001600289996832094187537054244536525617167866970829676722922549779613005954093332670334172895895365346172546978490653703436109514490336179599000442597402104627970797387577821498435158776890440237835817234095211677348800675918568937203877351539565384423096542708294614995551575604095411286554358185979747648216742882765924339721175691224274019599406910598166319348042283829632153427199472323963406618024523814018314345499724673980163602915431533147865424702654735817370874505355570482984546014540197543738487455093261665897519647875603101682407520114698614139318890168701782564812974636220404225760090675969022208707874804147769974350296472104269781191673283490426585204053796194701621013213165905818404359755490198928601302321185237016568394797973177795311042031304921364096840515704795350073932887766243307239250505144162354030403825818512755818467918213025686850245110067102308759411232301762074028003309576361056867916283787109678551236633326626264164425005166243021534557927215309663615598514737259784255503742451000003242799311467672133264965761149707637931848311937766427885814972476163184724972452986414337597613206444592122706050010661319168972558640228748571457318600399992582608221957145147604475490649458551189468471776787826503352584546743033817376464962213377103404756040305980622576887274814318552038773002098361710672046471780946528237631545739472705771530641405943928295101522257675738733421283750829648808374786386563127175544501180643443239377896551454597904302177680511061424325488041652862952995677707858744022417700194856425854692948230210960266501098646385605030420179898039887455843473150655635752827561337222202954963759897003045370147080938433967353144402882591733003484509928980070641508870968902635285762450208607910820679260387058707596599766418770615147072443005724008151778419858779034188961774944775017519768370365480132727870673415678066150503047430103902496458181353990070868872162615762099471407016594750490604472276358553401477199740475125169947751226764342133509168470451369862620492400899492727968903875009399989130995458629780953735620898402932976983356270092770100946484927109360288683754322452781866397099908713418136303657343484583739958729106552043878078315706075186547062256787936147407038648582820501129874909000029954812105353538421458498208475359504564435250421335571692168542865414966932451678426265289217573685762620366946403928387975090484825966568589334973583043108514783963911708438147225719281869997303856979564199828322715157036124204700248901652204183301222747993443149746382366666665332395955928639399659628708219127983235879217382130070857560132550059748804214635862414510792439856945754996333084646271427657404547941545320948555728792123304209360297735142195706204903663593773378690194730440666277960499110535612374347743686522930176330024127463526222614013897261038881423461808752147575985929151544754333366639245984983719120139656052015884510407593406775812136131223980361310269132780395854116776108908449542026176074320091071810581974813073084979747420715853150850272690472214053929441650876702342376512036839841492579666579461966181645624010445273391533228747979677313480936604125329192602046965648775746603716239043470053575673868644450370466711277062889498397399239235383255995017599846090328024548794423522123272621395389663206505286700183933237800031784223254431142731856708904927164970320998104431847876258045044718063858924564473420168824616541654117271754281453359085617576794741833643823956033731004220539319048312838949021890409641393469321539303334026390717776184786141349515391563253430599988118946366991165378154920081511727757358329070339871797953195826832182524592237708899315896179636411821387618723991475053296578167973668956186445331109732539946373794772229619985541310141323501248947503477638521575919068699884244991425548479304592074349865545152854799053726942534468146677310450405699693766138121418443864269882178060133231873453187844460580237024263096548685269302530184224635825250253891488912849199903129677487310031510574267329726638257000998765628555397683828273362429909554211828828422283345666328321001634592318421529623651022227643377360219198819892718045854220761166998879954947427721381273637759498542833601415634382991807905762913209043783265037281870720951219008909333419359218272648856983896771737577094487839351023514138119094703514180280517647259916014091413316031823521669728101509063322340016098861237874429838387404377089404048839789776435547111218300106751568619509410353654555763754137587151450419119217011644514658154263522258526046275365398174568451229408166147979965906845698448006545342666558780591035270839632573875513312348036783049241310139095473920707017089341724758172346954948855472413435931317403593225703711141097135030866502385695513623969247602212029057382654274333513499277847579591469038159775739273166320378093176831058983043064141384441096812931185982692556891678814456077423846413307088469002103630209470801241449984878646552128164162326854487542984796662234659045784848251572232615862141064960575443288614719335894969764582666906528496381625852135908276435877330565253806024201598859042170417860781256094469073375340676592199284988496702766361115336254039017547300386657245434794072259251928540755405238431341203498651243443423495948574713815422679341943230533335458117049383437453655170395021046262188851064121562274886772413203386988024396048359982530687647262410696494091419124664800080204997790153658846835806937894510941488582091512919890676713130026547076113349180702516286095648419652529354901693410332213567935671444676220984925089235647743240558163900534230130267751017927492345917629586771089505073517391965040225754247070304504678465951419313125939985368210908546456798114200925367316828061357854952142667934302999227541475642904425769433739343931746952940437690912701993608904989901993957160710218198559012648604524645197558179435324193060629896282481911406800478297491463960747075581368996137166681192601271600596227412542827170999121493350081584761416729496769043028940963921913652186947165671298103214151261730415983174681114357713548113130799050694194839570703685150514175922104061139161843852801771460412596578118068036730853876430202132571698851065529658443587879767521673678078480001638861742300051923808110121766670254806272012978950350431272095185249461701705265514772979720160551085852112904066080639108351385412682368660264480676625747709203691568968049709753901301272926243855455134537137962201983267166222976814791729531460845209496688459381504997849635061354192001627980031496690745239825887600433604153692738898833840267818359663544964206627126847319728933988100795362338034082676969504247903721665092558871666890028914547251787263644760478083164861408839993619851269179000376169599018027829204441731398835129529763254731650810541915675132056247974573302393125618216544817363079890395276162515478824459949018412883786587869624922827898556259853204558726839527959937584723466482750316413419243978976238587973568212009813140948738505564576351211339405197724243685921882820653572089452630711774515679339965903394313063821230077030321215002727519967961477175055545661534302222663286707124287599430172087642596185954127065633589502512898769007740248470978912578065320649304199544687476045558354978667787028064180404179177986948956892973365108966924610683695890952528421067373897082724358291212440754206337079576513639619821283672838096763779767130985908030851747664434050850524632414005360009638118633722454655732073800958953978787730430579583432308562215838913406160994650892533056870759670147410509538804385190714171452963884447072312076518044047348859265811537579920447465757991805385109157508740742084087751572290668986293034420907889788382888825560774916789440532870701814662479183413572261467802749657084101341472663341093983909173542955649085756218896594606187494996580774603918980480561270737823100565568125977933405159312473790003737708932215679975504142966769566879932273199460861809013212211935436020202637748877915435310948724663314645806579366093188545563340106512607515238170787185305431313471963766985910574871701016095859285781359035229487183200199743133443863525533765889191771434193446581917891285667611947617330393561884365758407873424421343199425982985116221215006277445237201538068629687816251412983140125140612738144769584476158805528951597591275269651639385385563868022644642156358564337641708649471364565481957677976561356697425866579319990854681009130730513920573972028386756910999859606985213029872767918509392197746063118403519088415568167002206647056538371523064826165297617512518638211090227129848152878635869603757771403985547745334443249686488363254395420877381590901202472255108320222991340694743531488140117991650753380701248644820365727097383729843348656735496853544974745725396682455283307706290243572515165713847220960157155715242986409991688239537454221253026335509312264700455267154883609312750991482495503524804907502826985589647041150028952136731945314091184082684227738076699502582675633972745170513074912683292006324573415982388569063895355286153916027732807528033874078670789666290720545666194574250380709367764311714836227662596338853323605257684551838779081410356381144107562886179576413787280823161045532950771504882533431388370674219846128366493100687415118525062369627444616013502321162463436195177356364983045101032119159958280195575752488075733093262655699604593207084866017024541152183806581540361248294609458654009907344206128407578323019044460104349866447232419030516357321678492437620706558188033621523722297067961290263541828537307790231739333840174134341411329480607184156442237583056243252013104156073923686836947657374676419714984510820011062659482438323842885946554001093660346227006703326697958480245759270962466541404150992386598646124332451145733243505122528160333463066053518409426774904882018532317934836837324991824753002777150708267614657827312569329812678049095990500647916477570488634402100157881126543357193962326878089642569399392116894077935071278466450073978146002053090425137225331075559233965770613732990254072708241390598321977544735236936508618670135143020193069910912312684085280829453793514575381767157164057759488303018950342710441680319902781683736782055965555342536971409257105556912273267373750997505260699635989187998304518358356389978832506644162419400417921084339862084457177348180187423708245621652132678850598723814909996004652590675759332108411591137297291472166873193817804851541417842740594934551006329425175067747244521042985392225735092831522843534592353162649863373062790801621696642507797854740289399965740314706951618735218373264657102867067523961340058953803757424768859955874445220498304792493161432327477075171191182622878480063311815960004221236421856012485705547316414459131477638499938808034544015875872618563009847537606205676753281621673281597543133153961008133912292352064949211126191249377923499434274362966497472340604859497515178404037560649467014296386988386711312794837593995714676834034436701997784095489398023272255448934961688119367953527147969330017277893957924299364674208970373761291588424396692964042173615751594587073654001750907274370612942074403867917267585986291780009816844798373850702902361329593679304894505017986628072370775425557533922996607891062947832808578017798677215099460783478134944777306358024989046730088263785683405921055160465483332549182993072862298783021838333533021612929165455397858362799302368763922667592860064085523211495039987643054506926724107758148150087678404587987042286068262517313362809453326669591766595973711104958416134052087847321474374829299234971589763098932956397084221749528610921490463703492627286943670306037612530574582393350337888503380906797145773694944038603111104559420219624042712247673150900664079465948790499171311289683385163666324580533521883580776985048830379080844148117249627796858794528710677623274583536935879153057812695641769006072506022976178801724531443781265210992882817195033723736182280753669617316938496509599124695281073266617677258109996573047761080926277613432439551214013667033231048605833725715031942249073354991229598533896424831700696488617999887735222174929905113579781130503290248646257976736486701244193862443037914509961317727699470941697194987821245121927391952553842159402291078465997418595336356034108684860386212869055114309882680824864754998815024475811191516400638946197026022345602498472087094289708305399427544878155759752947896923898118608058285242542154509290294621400426678207299910804420993379370409549410002968097357384135864721285867508625200996692717681655152544218328450630653233468849322764849407744465552374078453968378886952074493888255518560340909047979252883610788967259323941604205738668651384584551178791084110837738741751492246652361113797178752845626709133315435542686529208458321381318889012499812581853618824670506609038434595812897221152497934908905047139479537343663945655143798025490561777684130648551009748344335512459051874572839977842214951721097797129609044442092246711018368219312027120418875217539087551395874639121783259320159557141103334709497433268130681983790735742909393369535021859563385656234056438835774716374039840593531528192620503895757014353470513800522833748307372228737950526913215766520888050119648997880600895056952807119374275324527292582038041754413256804210479331690040485139602654730302888843564008817590077652784775767913255666443687396574371416251525048452856862857814424765558719046066005034808263604581042460470480228075516065767648290025959452306634045060112125350512554017656844401849891193429130723648075255692382269085738654057196425346720916693183876538020121779091572283187074060869455323203167666488287869909113476456912621908183620665771535989851489980359980450819004765136229387980509472510350285327107871126576474915393819521734476625225276649167968396964621111660628476495783715297542593066919731825164183566911000737792627599290645140440949279644987310718568294186234001286010245127149443384533187715948121166743222244628085160856173171415573822467270822376210533501917569673189331846439826604521023993886769954656626899735885956371962008447827067487044502285727463692126496706668895297349282625696039478105683488053433870084847473394548838386504157715282452334145206744473313021859291615940074212490800260557387727281214981714721668874498613053061205863727271091624326547399351136619750238493297881334110760385929424445264218571312389104657753648747067048506693492302627485145667757968185943707718902396464458343357043604474193537616305666303495384944618029216226405721078853426974396422413809430503869850810395246701514990181104917411058444394235434653330357783475600314136253157917662909424669302978311046590861823910701602552085321719660590382938986678979991461940355193220775890010022438387335328233887911408240161971640922364782738188699207139336680428591989636876946417636242627256682083177015924947444039164098064254490235394640280479319206939504249400786138023941687918535499398237980654699892056935396800958863610286580453867251087415878437708746709206072996500416877059698271276679236689993496433579059217071420562526113988349805300303324297229594465969110469119980960450440472398827492644333845406985295940739318723091999826314925450945356792902793566609776059049107317086071016659489425595510492224025613858979284387657144396227785537579063883132021180780860029238561768379673760774101755474360136615821844337805864624398663290766316983057737588454622359515707074930018322224865414934479500858233970013595690350353472218645018290975975712951526724653967035982747873543671151267907457518921815211490327004889061262947588758793997731920276668751574191709144669222887968432864953815735474549107463185843470565639767249560294210823621919378004599735099739738352344687728183125349079481281604975561173173171798269484653795498882871040673579317439128018492866397646891933489045838281939927785653514910243261425115530951909866238137438222392544461072660721694925051438954198571940016201519273749082502070654833710138445581479810131851701658262478132299919285390721852600275710624917343397393041011597531591806488103541993946511252150917582582432542424264359925916946761939319218305342380308195615275825389912192799482664477928071851539350995070462977958796633885298854167012178075927969153887206721182837908310687377330661857677358064704986776225417744068537445407308027629848954290380155716345197361245883130861354187089445955646234537485150171592225755426349814593519009581956844884398908096851115732406809516283717854975718055742539565501523285299692594675039917916194465013580624173642222107967554454957780940073559084246846533433958757644576081630077454582016287254240701424972015727221538213994703957177297306451369490659774125729357782825898730702874215992855936154967275628522730552616681471623294146198456386175524896421484979821724490631989851620552247737133267659858762201806711330040443045993216173232474977733231597761134898327201177178000612589039253324618012003300339405374637171134147482920921136692047007005516507587618447843983117106136926578318602795019221647697837320333538232362764189039730411028626834343521028559644202071798196354364877458428684909395569454162428958950994903111169431761878017678995812275603867076507922166579076473715320188324606477761453065370423907127324011015631587171958394913682212789734390101951026251223622286859755107548491943559157726145713580971985222665333628495908542535571302088251691331042882647802179084130773531443629447256611300505916460376107884097011049702448459348062694430174425310010020777497152367697168011599788379471019466013785380696905196524593422288629064618205944886154852376417772491816126315365400232872615398032295596279372762406802148598792023135497641795021282269920120322189480705996562522935645038626458197750540142257386421728248794236186033595435827184910584156020381652288141381404672148222923437243315923265329913955609765251595488973772414367990908003266695800472760289231262203886340779194758162652773946331312653122008136364297081397795842490216559544779512035950387187824445208224147677161229095912604584401483935190559789389476267183981941783725450017815480972522140684697918369985162806194594631649803248820042572687953951562293477762243839115069817226714665849903874651977174358140714694658616237418678489930295886021474429464525006739549087239058959684188737025378864745574555904079172094546672894095140144673791971934937196002525478001684536638970732446232609798902255636398243120002726785480068870720755340007642051739291266534491740424366250387425032967319835002844333431798559214447580341456666656141707707095226776228017675185772312753426901200186593474853366329200743726266380753833658714694961278961728161180119608781834971785087048940205742444470198380369442168697040224849551489924331409088677498241547206205762036000333091702542458764009989982310138915951383271295687884552900033286468870173666194598956907734276957362775975944073215123359768075457402775061519229300643821632031657638369197786682610478810820179978464421524948522334803229488474588388390621854076082733262788137548074272951426914251752355717666301272054202634057003945727398654621490291090052294458548033395568420681989893669723492260283691220142098593176022460743305215891462256349496254423039882519217192715058056545143149954240295587190301449000023312432369318657679081068648474404505712228603168129097981109638393137691004309530015656255918730297675022496108955504033584127132042101591054816882873285439860845342435100723657142832155306196723608875708662510909398250442570178520964140037067783034464717982555478116966573695827038125124258159429610337561078744837619693648958411070549101127555582477546068186413686741407939284173698252756046058785846922097954546785833154131353762886545724039882584574354595799694119297363432651265228036133478881394996353970611995613356174375184765280094636056253239370852163025920732928900879170536941778922898244460529721356560113562236219148321071933341620480590976722706255976934991597369670528620507229963053296298438248086684948435253467939971240531345539834220876854263132202362943781242806850480868590921036800697525008723800675655790264552602710819810660418859440302486760484930195798770467993517084727326959502194084092834005714853379241974388366533739296444490397098741392826530028373738741751833177676928148120878100259175039301017699443991821444694281208236492142173826557889764239374257396512116046111306065144492407847293198961271456460058054867058760033034854657431636755881502898659185514441337904793044411290076302201916794915957497062512641938797071867276056107778110729367010180502799013348524462654806205966705953732334751326677982206976866341320940442360434605732803034014467609934865086146778135376325020204407423057151406500499937567241094005664165807534800972956131292115471837822342131866956577773065812132344144813913445617165698771499096546033452311168547348984223496957357353874586035396245289381700260617731803420923272808413233187062586415610969500006622307066574035081513078359129617548653401143519709019432409682575150231528380968289548756001918790810077504447917207900458464935969131984646487247038673953369398893732070547692834060779810915793495231275526060156998219986454027808615350450744441298677905763090559572479762689226272917483481962692849545434713566994428894345617917901771189517681820545598597954810777713899127545191716014847600431111523083240282885765113915995732707375991537480724301810253953375121039676951964609939156532982215587966867884946254903409893821210020945704976993936438692009190920543371991374052436066413270291438794318592024478802430847603163279109956661945376169824296379652448622000903421767921701932248061197906136989768931960682236223745110576104144258569709524090375779229388148889004228362498652257714982158895123711055661816213686043973811524509487484020541008383606121538929383018631797967658987502703346005036261554034485750267189232525059865543387708007381813406860596071282193557613807350920561083368623340111807934484021771939543055614871912998354506521173383517030635315473901096137073171772949199315287375543615899427907517333726095759517227448789258872439899618238557888894935149289530826871068276543146138279998372146594269115612582249635250838058351970893523828284408987779444713788573187812327192643947880028307867239878373772000272248642027643679077852696408581423820088893773776884806436299643361238317060393393401838730204140142978990238588290648478498191649326852572930958415094230928327377069739927681013513403904910943337874817041799285028014118242323290979290211763328814469402023507336981190610401651023251334429971429745616541334937360874732527315277681015314821050380240910689334872010649454840847319084424110181638017158493996985790864142940793897122092544523028329096209420948730185994393004942917091300381052372894208781440642985152425678851401845742193841404250069780764211583443650161243007208779322284900717451013259027889544598495267084199202671893945924698534455090810544688465834356981343110701595326557307049132919105228547913310612873804229341550202700117322771942812750592835192072478864594764149682339889459016626966307757674430146420602657386310300798067313526455618339943928383782146741044942332625563549425231862473989205060024379094468470749217368012807370777201480679572352023164555605975099446628768704261482012312073971504075491724586140713594151418582618907766309625431924368882252912142717825209695443493638880463692468940952919288571276116358545214206789710272593842483333096961139678219336438505571242690134909091950520726117096574497412324956068059601020452198925611448283161449160168873117334606890633169922094819930252021827006931489548972056418334569795345934104504866438539496784976942689822243075901924963167500601561661566636411437109768170739740172041331403527263277697451870947934636597713847475635485948180301030154116645444188056826624393933193665043075975733641784008980495241048411659603884203344246330553015792063581541307500722547401889845967169671260128857956587956190072018149333483899834771470302855643209138300728721820391788039690406251889388593738322592174651516198247201534526486663554901577421217654376062022083624953171653585718430853585695412353617296988596159702556920802738043731964698381752206842271029399525335038379023081806544882107983704437206481400252587530257724194965897076841665165562358908903213636984401530436314109601814737080595059819016766218030356763497257851276445544393755698539091289997124374764436424637581514806607764364413090340984774603669335058578392166058839944034389527022968805612435251108425756094474167254221795344045697785155663551482550298603762344306548923724341420328165860312774539588353361365614180093133621956036302294044408553381549639677840025053134930983211136954297336672614309649905893583985895664566195354437852709287249482394537564929006974530327369268090950863919896094967233588528393321556276581159621794284553190489765148369158461834981890297522999308292899558090236368301447133569192716218454221586933317199655219001825963206039089950990485245439845864082968894167051543374396825218956679276024983560760421922742765387299340770972306347981953415361012842653646654385767207031134787684216103110742703949273553105444911327100770046142239379731966999790013234599588998054673468331205482611043194901460062574350357575732111640193818446597256096580702927046776930259348993851775086605795198412484068326846801983286650715761841410827773906261713193165595906797050059097299416655806341502264672868040011698418230813105617085621329197943452861182991181744489470369752872100883184002958281322385301404066351247047970908552694850158631646417287590766352976592472855193008450654006779144102652487471253400213422468956582778563681010797727079850044912006020697310338407586648395122935970206644301579124450646049626283155851528901394267876057356274784096508532162412478360264913023227031378725216386018348448060368098778770937725459255202711854906226769023559868777398241995650884574999079064343658586509154385305472633357201378582232242727893638325548735201504382121875763844942565453324602208189527926359158973709959666165460679135476361014498120986237851126815046942798400785757391636628690958596952723032152340510613587604665185514683043895869624824329109524896156582617758852617633859105274250017436767155613768307876310517848358805175430905336026887628922490005679032213555772231934068971332118759169912738030603417230716682033100422852407872688131027695483503473633152864075688398294975419433966654279973092331128715990439050248226924019863131797185646950689304198133323954877398748229896556039398668991352362364903634327244703666556068521753465252356984395719423433060693741838606022303766141066072295336692086221564910766187007023210758176716996851577810889500981841080159365570797772501804837138270030785118790076021266506489786722638151041950765401543268028766910826923544122099980959603246610702373419809346218438053240260924635592044035781289949559032857783649855088622666468400491673351725865789506618441886631653358148337315823309004385137657418844756731485949833504593983435778674821949220476853220394369420239882042213583883295152507459320956658758715558479821920268552354804769308418579686350581451789917486130556159055325924750884773809961502638023978181390862593971396170723327046529186274044234316661479558285831618700048726892544364193834582456258955241670392522158533085657568226821000812547695230335713303117101644930467801572307936145236364595174998804021604575514762041632288472507592319326778443007938946279463988426685460476343310892835842192897913710421497065280858848869074952360332800041189442011579511865356588261631376300549825103759407212017419328905066016208835382255069571360164736858046347260536089692243533568936440096893840990331823666047192687619252431577781641672286325632588099772483153267852672945239592853070587104631213272448620749490602306365370258391639718231985687292686321945705305210354843855868581879133316074575337499544418687251303007440511207332625671272167514707420216291114853155200996611645480790977071405629434986107876034802621202120395597345955559123090304925953390303433062458875097138870749483071531763144817258076319951167277117090460604565335595018856807557749962671507512749767606707832781689478911564951016193912613285179333265427281308865350499467760045206135395573961868238233702714334276321136718354723008028374428518606670989928179223323140689295060355820453719880848813708619281154320329524635164504648180410693926494958273784642413348164031342924733723342055596436281580043326372632765606264078007029118835717992793370322142915070520430138635942059851682113053397311308984961795627622805813693194967612114401291956172388297705772480458140749377731725808566300877581490506696760091947000963533007943649130878553654675746505020597496522879352694451481967577577094573888799030961509980902867885552780863107338932351009040805633000933067396408197505465097442269348867073301193832509711844905377126596664851741119138534466375500264396169733888014450250381699389273042049110141394113259541535672132617335037781719872750376432819398093650937115786896884804100553758585197892852755189386976388972634432175946198928405439923717144348555931203331298073550051281243515096422092760793942072464147546626378756448501543441501988766550566644343597689637781486844011424879410540494945163152779802743621512685046684411447439395019794196138059896157768088389469051059516640394281587918604780712675006863456370474391714043791070838336929052109897658968865880491576300259361252960253470166053596946119182124167987900317204773783553127874384657503929349040201167573540947485979144771701931715332128171543713138602467773183593996204787218541672066527775731762768814667669742993371396921785535834082858231142481365802945793533177636092473818994572097742323951912847198114368853720794658626921309748701159403768459121569694002698800857486343192872913901799474492083432151430750997320846073101029792205983004614144453642251426869676881266281289038933979451276062510041419726724987968735605528873757066332876475901068974140279622716531342850379218067491702281308739104168494585288620451564316467087495330282560846515659869263541146305677578070319742345760762839893592643214378378726201396721785020015115570247008493895241016936069117726072439488394730668551410975290735646376744254805660718728422386055961916201824357536923995684035717904356046278836771512385855966842377286445051748571462686213679893962061834774187830241786859109356676592110227041978687907066512367538971149044887954067012424126643698295343751679128492875686545874456309703454983345240899659574758079583586530094965151430433431418937330554221634963734885306999221719852315420240875670320846291889910239711313151282748841995179503483782936584235906006617213663556119267894050802056377452069340531543332425129869169777684565489995831526252542051889028453855383492697477377113685093689518960557504450974431456187196347813869577380290672046250736234675629932038214901001438001988412840612727772702293462473284092318924577016567817612923521029720797696359327221006701967771317927068683416848513996215014795939279759423298505531317700079429985779248635334833208522689067923728352250827425979383205486969035178132821530471496704542663371165103207642984279629216015799983663355442624284918598159849584597626962433179911084237212223578166188653564600695813792978039922882275930403694806740264044809368971972211630769767727333983551402153407325621661696135749926002537068457957913093081228825581827322673914308556695261003723760652698235076554327055318955500666519085957171190373431018330068996820791897842089289302725357209747316279912309729854149526032502174092185221105828762837866720687268917178183173268231944001532926702720072043425119749986294718650632001381079614559803122064506131781750115728058052971382570076254471738763082722114875917337337725514403077479828644873388092836986047560637400396318354117923553717977746679702834020418430180938052597843869292501083875882056762493029273509689012424895133499343545054399540261747052955711194473876995321489039814287529706431177913183224554831334094404270218443256267116261640269603043260892097162760999498978662070524826878785008536905378278845313644617525759849394761514347674008803722062561140394181948237850010990126296683289677185308472128962578201725016575194943125474936825477109119312161636312404434523321007316555809473321699492626009906150632850419390420995233998586947289204774983925111068395456946111516988211639751730853183929872395261404399686692892965449275169020228371191965515359303034254505505584313476989044837978193148370573444426233527258092311213665609161768762994599494219865360176111275019644058343441723257063580180318094041264494950119236414383757619794520437320448961320047455312982492912097515088776910760412613774156552265955135901993660751225828903597795401336169586817516166211980932273885981805699415859330203970743392932716170738911256936068559665046977190618349385852393966202944671848947762143818349776459339821390674096041302982613653181071292157555659494145041790840549395560839830099118876142687142353917742196919978326046549150489126424556967324510314827445447556181364118251643931044118842177733873386364134989480223556164075309493211297252222207277185737193712526783181033720454563938230962836700421860347046583237615126227736711741109998010166926222180781830265900808777628366220415119807234235193145907574612386717564232155887691419087434050150981261077354884976573328831019447134139093476678222896989278984412654240290583982260762389259602275904901589940234808799835964356232251143895085362301477535771696384785830767276902035535478982555113992959356898297204076884852153716709304952106031146802011863443870541512015844919811031686853090929108840825856298261406683952649780646463369949453560588452620013538838318246903438823843132190988537319870062931436473150839388675691686876409800344938866909521543665564953244687816992279570011827459521277647186719376287018320157204104577662535015082024316338451585439810243594498799840655133056597918691284636312142482547968249966494645982048232288919601081188168444929108761897833164336011917446891003897608732655175975316295867006617636194891148136027277195073767672447118493280599683671590236824631716836798961440253748968757311684828848267156491282600834160421692177340650339353867990807379522908613197834712916180815106164876070519200079562795178414753729812264313941891537577603838995264248398352823386934382857435414144485845192056792418192314620854270885647996421387918283278526884028037761209354891990119822339793755436399311137047832565360961877541146845004299306879070412279253999755869202558533358618398336312067809693180527939773774963268900716787203981854947720086476370267107392887531831371466689779329302449846861348795793725599203704829266289252800369536016425496303769376828234750126181576979379006862850805787086821957059538878728097725620696507369820244707111708777347342356822059303101173232305259379379107849246266794245467137162463997190913445777652727797265110497506136061040139694995454121950778050970977511776685211975258087125032390782486658679106447595938262291386138791405879894280669996178492477017144130377368312505559191920113368404948089999888111415529294513357335057009625186898842441547780358088761574340285381506731146619107909801604059905997439360651198374259152884157885084050084013648030149875694192911720503318388716025029409651557561821001944503272977334177115745012553251080319103159792758283576046704971426530830900468530879092437735377368416078941278736869230969577128092700213960600153912968789368045977553115185294473152000581297127921010024004478210908292043945145925750570093611982691553820240250544194452885871202995358910275188758213044306986243587059286651803021134693088473398138216991245310134908836323391213870752898330499492919909626340997031357500007730257251339061579915641829346492776157350175678315870593153212682083670042421034062926554280312247067349655236846581435617211952544507697430892422908657809642424617896133195786599001323676901073556311544448804674431641445984805375066657799623511793368239254269443005044386367453663161227889965863239818023690893897268354381406483637894652336896302157202196461970976387169968931921672621504997305246286961310193936098006820071486307304777296505365634320448608514909573028463166676884622664495394287518592341866088544065138538167404665565357303387011124873790767575361049625977468589030836358824877436993369160072940292626615463836637161769128769304662896202737319044204349440802851837481102763362206598776412546500918204954211032033257351533294649562218297962064178702256098256022480390188149694003391711876440071701597051105967213268448135391588388451364384554788459702288719891540897513218624484396388759939589441091326422436113758922327777314889301724308778760684149969973303441427418751737287718023607011526923581580658695591123728593586389707578175476729383354712741173544384473886679283893082747192207500085593970233858884550266919945696477125961564795559505821760664716854223342153874678606848300661094097337385396024365754898045978456412263061771260570907571511058698139552122193311364424846967397673755600868783322814213551336334640039354131802138864959844493333948530480674817571425431577523340354138087724192214242169719786332562025618428473469171680736732383106883531927005814614187606167731252975053928596087207192306986148436056133338730117418064325525626800802117944024602314641194117300600796240655735425896041209438773727979910306139052372258576049095487625299555317976271312607809976017331067356025364794413694785238800328564289645856357773767659335504529610720153174847711032324967136933338945724744820124887521207719672523304582363212175447597464253560523328718535865135884897928003289425013820600307296006081756662727906138551811307474767122738839712048411872941041766050399990807801183701957809293209303492980210532841331209938959761508107428996506151628494057097643122947570324600625923884846323445675165233418943211843778114331142147303529203973879426111441017653525605517264947648916381774393117971519812984367986284727057108253671477205999763495066497832917593462520776859707685031670185554389366782628034427665825023610460777111936498153862282946776242051675042009127032724859469844840794891447537236108366963609720314001499137384307321541371432128614876495084921289548736243923565162050016033726438642537745489338171237048957337778604870543511406189231738619756059963030799246569420683441425333826884064217759969532539233600630721630018733522512196773829781240277190836031286525752570065231465553843330883053578015208709142531666523537717015146333943442022706834534209963162137321189777847629809448893429944817171840371055117512875059857120102994737824829835699990732077397313469522441904016326700220398041052214246836309717567765140963694870308394719651265059755538194911300577775636810162080736797007031515973842427115887898538488406040920481022246693124315087361949663197677364247512995593508451810938038053281859038616924379877537109379264820531975877115772317779308746220914008793223572748902475494980266370649411942418061800292739496212825919769425620499499498014930155412666062348250770935891573753201103908355239967094430513340360267763584030404790466512759189980122973527139498640585722356130110329427847354050585693931697948140215106837951837952820121780411547845534147014240479924680866836490674375326484391586145731823937438516248748875779635500575236314686041478215749822923836299110900328160638531157717566700316692688359108871528396049676512082991822451467335238190435717598474332291174867086496825530599935217975939792240784074323315749082841470507683820748713226219482552981406549889089150892511579838593091184917076111426380647985703882968388643861140196209818604443002374810898482359721870963190457365498113905587591954628229903842409819904112204139540170699059315856001312675870605375522324977485543739462613594777353327284755775589589200142169950647211765201082756303800487999514680262749696572646622858574424390230299265431213020294208384642605640999607764008531086762549862048955506450367026826369582113688832509143132702667852104382952434935756160402711498323874515591696612653216365887669656822082022326467913952306420761629505204624746340156836248192351158523854436688696395225612347748856160263516376065447598516872739988596255262427485635533867455394079069665694380939129930917470740381040395059075162333059205174771698498562500140881081193930188236977135196282133711771802996117637033096330167415539192738074803753345019794839474610021129745889260282008819463453251493355183796227642700442595652792716265692232276347516531020287580034171778255596703995108552016428791715590100224733771001035325380832606932046627062915632538959128468621926320898565047247410910585835096652366785528181564608800136746441845381534498782797767127802095176212120302875250489510037480447458176654763492766744865565836622692799514764779635919681153837583449928910794890485108864811974223437152585772191962704900829233806027528131538097349385422141382312755571805740395772332834242041275912871680797699434281224168930818316097251491627952030047033331009040005563478917785581186420018094518143625801468818102069330476889196152209362097756901798941055270637046969622708270903176295348977300961436643835620756794489553590728918252247555811937538336160642604382772219808974844045274106990529538223842296672384346160583604378899007084489638441248635065954670439593149834679674262790107624783463992240180927438350791499279811001137826756758270116682495071614168355043022755713265076381149803759635662357144472844695570850739288441645988291462026945050154361667436124299750108756097966578669191153024806235200597636094613967004080347227807960379970529773880917116377511305158438827490184585619602516671125487983301741223563433296465304576075229711182188883963797477749628923398690281076864861654430518846861206778349284186696591659459297566772139709070303979453232786683049941159604882352468342709200256605607391443592663122831623619370294239788950832170213714972858902673047643238264881091379371174565675985337172506972421896125701864075529060970883434229634583018123453617728383981513239418046283493701626148453288802937499285836739950701665525823206953003686116552169093038614431651007546419379326699243263702052310804997353187492513016884133977615020684665661588469746553437587905023731074988054800229488759596818344426634590543129705033759400038631753040144877956459523538159354381501741015184820171705245649657564975830835773711259329766782336850727081847291084359333675962995375321437933981377811087187532813949054071384840961689220608890063974602274194735712744175703180271000743993190190989325458304587927571048155612699396807136162906324907763889370818324752054322627355635017949938122153029396790203664183344084418543070625374166703470752378853829307624910145670400225811656382930017309627065166832861786195701795926401698881020941193962218483343925736890740547454133175490161116203145097184868134609307989039420245976958787770636424346851415004563337365708669301153272369900512438280713393964495505080910177504287608248479335832287378459507187740346482838128305737370115771848385800863922415302422504026894467985728639198616879242339234751683401497501704411254608689180831094618818155021731264278474942211883206611498644921378275533578244360685865005402546417643849845099404461659501816867940822109153743634857992427722008986177462730022114708964543319558183187330841273036484943297341287260677630998269692939044436211783425950917297242801898326916428723953604931143282285770198311226844350100487356575625774826707236131121196923498688599818583884070659632850541013470476667358768079475986856110812180328173236703589197832718303645124296365489874815930392842471330853641451740505371027724509554739076025653031511271751916767998846418728568332774986725052017099608589635490394148131205645943281805374225588679509175032060390646431710293764620589293249671546632188212006277189159044552158711691517615023313152552655792557546910543044211352101131953213348419934552040075724407271692904375333385734182539692118175356170892968666315573691828739021179220255511300926714846419057602613047796592405350123997119089601396032182058636990964918390634717282035136760134442390496629213907666783291011497415731898026890151692970435010442773641702087859929355513504354765746736667787478686246566016562120069393465810024457584231573085856502302268118634037839449219057052851982366675974875522073581142679926417670120106754266515274285899517110802199464787370260614685337423206588239849446133051919038404090244068328773967260005242718205396628212232437623384649025827207924106781288935128804313961640448654244211841910230570093556312437673316098790562678984915599499921905838127784878291131069245001413836088314819896940274463003400137791377045579568359129067453252196799406267895379760701877351866281270588570724839645162170678781100449236863514750165318213118920824902260817659923498227749497554007953306334952258471243620803187589261125210278879637513419817981682326569670932833197355669926333447062955477383719068234334797026888548309360452656208333245595136410630785420797866636443891001766836669849773927321667969446071870844732148247659333763925248838840236807527966462689553852086901027986484483121362953855024627511896705048639509808338027565781895807311735929863281228477685453997882480721878574855526333500275815061238044180318608811000155189216399090449309198036871734363226175773198438247431528695619060580657925544393063159010034759511504812386445857149854617652863275515975550549750023465566883753642879972262907456801737549623169650770304235738002747733373851137612107502730487244101836341533589955977452646154157316219902426309590680648520368205923368457850750151492158788949066116569615273636970974398172497869347560239225179887743798287225847919934976323128351600940748620013142096443093922885670106465290126159654534071516928079315882791853935143807535970510401985080276217394005357617609824553476525086697828094302496630249238606672808487932872109339382844987881269716040683312324244952217889611430673426082616847319433722158544060182290897340310373701140648949299977771995717101601624611658806160459281272103228809517234328448024423011317863334711669087805429453660593969167043941819948943966532714799633578607868020369159755630644433183226970678463219972436316143399035734490859310030769043762558362190506857014865670817199592543753431141387464095963897359771725724339476198583824265288790326071510053357212644974605530836935204528152421014404980026204094052193073980200559280654436082403034945915203263516610313457846431408449098704539672209604872297880368024783782674705000863404958183489390282657811227994361005022104419653919326333906519111748682521218516305794196599464083086189753212343746362682614577068714154911730674420632462290467716596732888154924031501818485790868693003037279906593445879544811562942136767497822407593462082102753044200174569131682434000969211413965580148066041083126686403246365391373959106137168911776679890641162337809963170060130696219853295168484398713165528348298270069176880454785702734595706779379248583426491213192241758211779076224960427310495730368886931915605881699423134393479908208774308464379345225269112812586856137168829113299013570630052614979927423512566967532358647387734512331551177379174759679472369697838624813941915828238157163898111726571379412116011493497934376624734240952963900967723370008233080601945426697473171095594022987305445336362517835302851112493661957710596552766262672579126739179842277720595069128180878120341953851031820789983866403089159302374971581655893103345304904253615568150564334797435103145617173639592708494984140117847063774144337284149940891921220470599417976208596827746299601179286247272076549635863735312729372159478338535759677562354278644624392874857233211811608863064839712617977737056750810619976429750047748812888564818183956059003602874803827339352300163989434671589061483915574261815794366942104377036335381580178229470883938856524156046827338036622282829284872810806651692559370974799250056261283177780025372077759935442483647887966192612971301789148618903414709443246349264714113845924939927516080574290858285204417067888786078817134517404505311154800082133823482530849568980799044159678765342131214006309253558366065481305651635748284654199388312612080623980373704925499992165043732930367372445971287820720658365918206557463955892349896936577628867286696811904330285503549181879733044656954227192637506883974060356501978371092782658506699972114548141252608264971156484618818997279474758637224589325624530041989605291219942136478627583675398582700623363987033166866272103004104377448236238348510134493336689604938789255881667614459033469231199928915483757770014564985303839199955257724952778673180457527768382906494057193894606632075909895345642664709440500689725102262519157418650462306716603573388298242167634776414227854510759193576007537597181862665969090947295056345718353605482981690066596330958903798491827331372384917754221951750545819395887941279998484124822459947587755683510323766749615459151323499658904302619953676135345307990327290502116412616438941567271422117072563676371131228111101561423943523584855261457644849110988917998229847041298202616118896926033826470565398467118673706485479821491532864370040858483223408768383744022774779118149623050920214662324583377090361908944897252264128649622544824783200693225644109622395245281546045679036348756350492399255822876318608986150634322898946434439966575355566011512001063852013872634423456473714418453431254736976662039963025380630296264251719416284545409519487070343589523956620725139884200082458963560623955226512498696327733169071328046923098642248244958341467574587993767126284324469184627953721520712000941494741643876070062126807465793498037176420163343705748049173393286308574784385376487305160503211852026891914378172577914597933891144640383421978492670459958652005559890839256832495046145902688262822695989136092489604886614802510413588557529522996008668128751509811764281044330133506568201171093441864328112755545565455630342120346752218215377303486882812261403586835605801708839580572907202333714557524438050986395760581364310357596891579513213487206539531767326462595868180863842244273045731627170564759341820629680377066810277732418522294853745686977119808609965411016973913517517048144472381701731044668778698559689412895614636551753577830273416874288824195434127023719180583749247715505235685111753818862210324737673933142674569890509901894588976103226080116176308188047156780443703674359435493435994055223393593148259471896958166234699707313216343808144611153425376941003055979588053276096803604852972223417852471667598526479211944440631757554012682177557787256161285167242687298317148628345171421180480556117042243337022985636893598747321780347593397687277020767665692202918128724415225888494771160911542568689169227738832779399859309484156097865641409386562198046728663075469585172936939610030968606531915830418977434037028323815750583898142246563072452478600800128347939915226075679301468108478366071928843836385465714242859361298294231791036810525868268300962121887760386171155163125865729702802074426098120972913563276737636124759671635256464331448544643108787614237597667866262197707656395732845604755464896031652242256382238599518474505928177564084161922426430705158026233853603570530452872104064405419267090433113902137318845094755180576728841681118680105250560548794629634471413054176336155382559940847583566199614982125358952513637044806022254469155413488110628648353106585388810860516395641010135666852650540945985789248343065142462395586372753348177475768565049227551734359259498201248058314083525252831585638287175193682707010955810509651161348611717288924419399552518078488741075065482766825457106230211277110315219735926006530503142097457703372702922411280465648036519014876299569925529951120163148840744023282244037822842330247339519932397894626436459649733021407910353374442649017158737212671819679618858219497274093073810972621991317105807067321809289657707368829825457048890581801261427157645638500658838144966303487159339073056727449424957405735188825560704797272046457689663297880562276462481104310824797386500415720871791969550680963866231660439903085503871220552267835192539412738275059208585640156887905229621475799754352538583462075747026235189675408152373325553327444923553893065372894992616990695591912945818209273858396859430629499777136750427293915596593053367610274313292980959379673514634949812361870214277872391853877070859766209758445472123019836292971593007884108606738966260809417062943082175611014353542927889185206503538778357997319946574677715399660552045621378683910377755242999643751343012657178440556044359759992746371254337511892569702402182748270581654883752327841323682574059003296908431234728349945222947367055292806834535130638168966139469970355338987858015437838101457101107974057791580997519121647343505991229998597403158460679555417196502144264527352775838717324023383054187006670626908378291666848170753652287941462851521812646343866350537745630787429679540175977811113117103063747119318242373770595842820459932995086744009360426548685433797217322187139056353169362633015932395301884435886398823929419858901537893087683108399801883752889349341355961142842698554384817911550489185026447092116180105150819455714414387499616913554632609772130698905136845116479136569331209403135121698788609908126948624245100050942127988481120905004366991653621888263577192958671028859422546491301128528475405646131296393590867641853414947326053938214887932051035365026930238160482839290845482894395474512830961054402118714569826117652556728708795032439407007821114599929800004631287146692404150741369865485277013616805185422423011185619012731865739215657547756102344031392197451693493212451898402261796407784418214291568702937795309264842056318792338020982666332592051610691738990227712327155539254611680921520396740708138829214329540380448532118705220382545798862442138047395765714561481888920442734019763126358649187945990221709062260448615673138763046221724620535431392658537151276636416499234484590690695225331905635334734476048656627026347790236773883243146606893999643343838099344088550996703717183895536011063446468130631676182671525229915183502059909305389106039045899197966486533535591007448248344665808362626749404599060911189632230017956121593168499268138924212000017895989185229450051582155762990145268530237716645651626018964846180369039733654110084590803576439886765638015916659070428221455569533081533254184947830626997618042403468337003976957910121684359945130841796980023185296238139290137807555615764793536180463306312676002428697140052826110619189563816242626054403235199109909560068559656896314374285871515171565671670000543474189403555603424690869274163372729441464790279391812953082051904556454148787197534861623243222161009996274848212383539460365413775290200235545201796817843612823090812698658396890011939536181946068846610037600613591392829960234197398301521071810418976854872346022203784011497655291778880397699478290905450368666845293037623885277817073978516841151616950024277677678122294689155609509870980133466741826885184262032278939129937511504153916438246235024799374249490067630813582644862215928902868851085629627294475997964159859940973594961307423736566244254332145640425333679977894565817917930513606674606587509440390179943224328544201058095746032208236619636547678929397416984361101828250405248139534523247668952402122691442380465850391099667237130973575488439068332115942926827241083810637621314489713012939861066720491602327601949986737024670895780274556936973588450898879553846690646474375691914265219890913577759352258286409881421823316500803018078170342467887402679094282162900072056107018675960323598776100645914230506574077450812932475266327829965688742913111030081908592370529532451374959666102622811938052356858962625284185869274871462466151625774892422875953355485351934855740280920248233613787973368139822683458011674008157234745078106250080144637495603486609478731079206004123228851368925699231697567853539156709926222868816294001518675984778824642643005289195804822116070953027237012836841843534120800253596161491163234889763932188185484562375868743529862766096475662599171118406385404113937528397420782776038892228455214730010511600301811211102629370462039732968230872956736936305597077746835515291390474876750842329298167503507552515647459351054355494214164606702271720069337638161938920205356788743038414502572069750711973104284649955348370638287400707678859618855664692402673127639277698928852883089879748182079135947818571158375164270244037680625305060934831415050209401334049604132950238295304045364908031481228284384768391492856457289059581937931109699490810858194873529882309088225902720456554185650355681042542565136283891119818282059226452728203932134371650839307491893017860487722914104623829227157662736014210128733366029713265209323295759499567120095135927187455800057798488220817650183177837681782517766751368921123700480108190787791632123344270382256646556834303441012903018554977144091015681227434821427274433351837346285316033982556792867710774403157593489594612917056250455683652674783316995465269472586536432089290714433304680787891406058565640737347405963561512784918436256434272121008384176199843129172306593244548027535980574452518322861819335895962397245213534872894430929619960209305254700777485052202080300134731903568167221308780211323570585430409080716840480157862410621367923121517775536935723158760054451801875021578231888273767102507803550498390809018825590328302643005434602402818578766805872597435199828482076853427243234913958805745662481435055477275183684696349128769623630573358457532103605264783815121182822087835186017047221810241115972919335344773674158881904017477867839942118078540176636729157970742346802148557896181553070132206740997738905855197964923624726726214549121882004666088231654319098815092974577537590342234893032931542230594118649195614323961655788364292105147778384669120654467124715943974460187716501298606857312866191166902280189761034609569589508983519674666655057993933906343533412132521488409257084001420082275644428152511331820893241976628643682541276881921814287951796666052481158832875377066155582317892567347859026688879753613319482269270320291468517338070929004252667432666313672581096828951766958351601947383218471833606715231614327820040950220093803357523468926853500745379564474569336597185974209911811171037851133650086684885289138133222341559737529788191279855647803590924365269727975516946747076854488590105700466250880475613912341626627359238310502470979252560586958616430915295069086227915724966039336704755018397431671838440970756796356861760893962116261618076939884427796621687447059557400243710398108745587040920736061687890727841465280250856200695003211492636661843114182298735176079149421547043352982629743343893012841321522178834937977865427036961114823930372530161143587641871734568266973887994013836440121187596961124981803862599853057995514375433601763057197073174657985789779372229424863288880284741240651708686918514243097344649565643581798809508359013392048363512378492195865661412218411629949601595312918529305639144027652721719928544285065152193729647226428470788580477693445376544684658511924497032786874627750669803221500732876953193574131248468532615515381989166822775660188629976835114081503810472527399010326325931190552506335018662867713730534470434844966984591475555805794073945157688089605408083428755204274123074594059263717344634402126638781005839035766071677179746075075188004676110309127123419662216843860413092805305204381068984517490328278619775962548420728401520356128528843168882390464957944805882839693047229899771025185553610884862478464108074775125097913718234964737470526668828187903251676636041479502536078612622950425974213917641632312305248325274083227026667121222847354964833831369837051425148312989566750322147952503703839907373211721454794605803729967355576945038736042055242277326457051912408789177125349796512327048209243983859251278478826576100453304486850587955783925810634710401677766871138480276949064945464362952609261293820958718240097934593089762025424582956613497187041775906030890149116752573918993652937980173883100322384420745252665278290479632654834083290476699931384967290870940155539435921561669842363015695645083469244839501219355397832588051582940290274039489085625946724084009857922537827105034159049837846353152621522648450498849570962657459785878280387782471863412302134611222198834253260948127496567580399614388737894037208177140916594788441226843341996058685544029325467534832153670795609820816332225061965758480126674003312862075926566251887065327774887455654312200978732277384045810514904849300334294366674952482940338656113758126003617485618039931274566466938279848327165170886658445769403692541381100372157949453898916378731026652469511120000638881191214543073297253278858395520139390408002954456943689009408886450524524907988169007404865443852966525522498220935656893389609709364292088554018360976707201739833913482831608225318515878977626872250384382693862315450682901295236558372652663418948086803887819513757082565851706192864872559935602885515216629511965927004655310230910480586328423576389460466991715054573188312476649436146106376425576781945432477254530225476537490698715935178238099910699037964198062748271309945314913313254421454868257396096637103311198969784801744305637995632743136430447677487835683326053690300368262832330766602216452728182130178220857987462812695983019146537759862378762318939970406337093166599214591894331663473490027810691206267918156649480731950296740349403996258436873854690502378758818834533887230244209155434282033765053547221634993171196035523386055393816181716512679569923779290387759874034496947878287551142963621770751616713747559486005105039611011290422767700786264986456841601613159289977137054025091398074323306216922873540920681731744129945720574620761949444293377997110980148855180085549437163249577232644573153853217454199751865113177570812497027134702373776376813268750840526690059119883865014962513019912183306990883883751629311719836419174492318619162905770977035963429360449393607055408317814792945666768800859896485013907715724479254988855326563923955277743162043731051645260464576038976398277191725947473174105044217373734199891265250717503525622286502117141397287262793656133317710521629193016774185125423650957281145665549117142060484394427803819824184617470611166838811395982365482274301646125223329422546221965417780609779894119184889460126942916202593738214637654188106507662982273529307059638971279042675092469599935618302811901803215887095710426870033724399029789190350981474024150807981345725645380068590979748904021555695478267620676794807612529968364351474666233065904920836249462699544213904958594933115799955058370640184250007878635759929255858865490484607383074614853459739809157605582888517017663493070890979450271423695658068913730533983285970647482801178684031628534624070058953218697968313164830663851621662547848753251565277641835150522624776091382648538320037532315687527261162569400722025137449821319062522376135978588671694118547084940607128706666592485763372281547698709732050433210871680460926705770566026538246076538085434224024651239511274039832074496381411495004361499309540510863192614787912109238120957817970212684410745256887919408768416820267643125923348585828995655842330281130304815922856634530346466956346407571578778874599887138657500979169200773596124244246450333143272800839566490873810472224828111411458601205295221328171858505508987796984895271626274470167633251577677844992079263504900859403938711834998802756474196789015865314601949563848106851408719129032467610739766697742539540382580765355204723444444434191218046240547406712762143613532988439581189410222111765175718067216330455691410653269554535143959461710213921303777022978714872071794093404297124614974769433224593764800104587308669140356603478398945853738587547995704331729479260355911576361912409603448371861346836123717055602713609264322997008564316713241137379447037199056957700707482537028143752859906534208801164614935399293596802385781647300343600758016589424242527192541205988128814393757863003675419836138930010644171248004574327905204373252043921698744039959554289325232038483871305938947732401913312684406545029538269782506959592284346505297387502918463204246700924118034634929564081667772603732848166726945615726755549948531648730372508612954295252604502553822870526479326727805164904556158521061265117520080494434530593289385707417743484683850578691073312431232734430730691367243258671672934641639942949360013589087705043062420712054454838237712088420908266667566436183410830662485999389732006446429184423134270179374101713226090157574217098667895319997538714884117827642775540804886932001158035479204195309123260035908673799391856052251434370978498686806380225571616860252754924823369309313771225525238948093872601579959699737143741420387343062318421615198011386926145552562822912074955746079995983010754731123818848056549290611765422995637946493702756577957386268778365030522285840922245886035806816221553042093468166358691780960010274673745475448825585012839601760130354816792301512216523787625092918066096201867748008085561058236106435820343027064598500312915110825994970069592016520435953618579058146781073012261701180668783726528413769632966342215726271987648715453114156729944940178077392058781363351444997613619863481450372994723678131637784192071760134873436309140503269474512229729995807762651506333141196021866624103396286298625137578778423936174946273786219981256805448246646531432903038589999156193167464948739851921231580851902999810024654154375687947537777248170360347991864515096069636511667239956309279364080204756646498030119053966486993979896780518494170747202443862309918790282733045509151903645929063726150572810198733427740404864652298793810871327282736702355458472203899131442880559960372317880282149767447127942990235963720749510348915750036586299112044809258212721800678290379642474883907896913541579933025118106443900132785917939786890562279809041592225256026882108737535274558078296264677601812679852887898446415175343374623090599389682274476926893043440574262019719875251305013650411141041661173542319272272223287381764906809114020641787263750466198493639320560751857514924963852103571832813113475990435763838266873197646568577685124648440118267126001750997878843189038115410723845234071473755621119351272128334683463344842977840933197313237822220794017764191547050735100452028972371784620410880531728666524612907081225899759908357468578264578019668223689741493973718948210277987321777101252721756526514513965309276277625467000724507815388584757048523507972880847489785429890925951336057904493462488757813942153695907088591367089912525499623193052753219773286541065295939386316989397732544741803647600608363613922441614220972034730894090076492361650100399797591213587039345599768611068213917119641101413524761217748086279331520811066824376762134442964578970647183788216853713036573623486491983322003877395954362400950438548869252913031289970535649208180669789978561881272835280217384348882584892985400958725776300714585231377823378392170044691491906602087545589945017306855148568770765237818797858585547692163539146203035539396299921246149238611738050880143978604502535466461025411364952168404737233446065033747445465977794820922217156076232872041217203182109304510881568203504374190455348966811541477038183977600650517127110714684782796485601403939713811921518605991481394692041553111633135069923903671231495019308680329805460379698508374781943115770977587295319339416725346198255407786469723796283483360899077978391131196873551570872249197923321101127693830790630561777095330948388364482161405077215347057406672063656722464621024826211070263154187723045927650618611569242039760470861573768872352878809507211831116523989770070406815020807489515862361166999637856508280514732057042079123057519252952821295234685271794646878885317453898852052536143969781924979732280023928805291648681179429193868702065117492753381855797852389719360975050081860488255755725627165585627659931402634361813134693465999547590589536634170144598435297111161848641587934925587740760486328363696597365128675723243159361030357413185458113254564463365388341030543366223141775974969180431544903989122813869162040694216569240965755322911372964004975234172801885311646238565724638942050477037569221390361765312019907025577198577379604930940674124625593197404286640376446820254934549894164350136448381657285426405712828111243545962384782337446202011860747369375839143378090931514748929427876769542768248100216798289145496562994549873767634414969194619500051528814184917515388023197608200149791011278281959542733903607616674056738058242373378959845629906925918444033835658464314582174690399299101361638604626037302338491324952818048100072105198303580024726326078061531611907798505828337967687573641641304440882895150169689504663870325870317410764491063796306326860997580116451676140394455281303745102215519338242659011699734188460090982947638248610446528401817522613962827094011938576461185121024661528353111337257699275364935055132770230614740986053544272301567685380665295346997694324329422716487468084007001799137963811764767211686964035216379753884833401696541394107690367743092448246807751361147306034582206905398126957811189139835968688947991882693403338996472325717452727753148008823705843063888064361614762454790903003303239444097159589614156980724650945460980355852437498214010785570682526105273631540805886326953747944819220485991107267759524082727445982599833535176758817259006665618257175013186484490049458795989800085306716612565589628600664918767620168969845351180305961932112489872450890219251380813579263093426982177881962454286659002170645252721620789297659645792946709647686416276569211334344901832140004635122808766337708107836651597633655332251577944856284673883866781372917137205473764281876905533249252999144921298725280472080897051824695153712090004028989364814359290929039405377718057840232362556221839253301430712532515396073006704624938493435842341778672775256726081349049979331446294678375711119515102044931531031798416651159145244148844550572406266950634437832307728445769063244356531347834829237429261088821476877447818067825257059853632780396644999511210994068596418879744075728689481576765502508927846759087868326495904981322652047256921189152452175579853211999315746095262605805971540691385851699936781308506038372203374085253211096292596468980832411955916180856833229876791869930676510708222529780851430171237615335640197649733968844813532850042094811894496823532496023304300529791484751236241125394889716305347775654079438333060888556194492097090124366411531146104972568516918344264722955515823554601844966838285245732026581557264802155886097640428577030678910960818626666679437232142702998236324757025336963523758474704168140411497510231637182268465244245288725095818782560068750978328665244270725098596771744856510216561585950616357608559400858691169398505482772785847341473479638417694923597669764570504792680795774940432590572506223109348292264785290381020431195795563801980947731537160296367581358632083047279224742332932704971241668589325821306887051664902749499723270674219442510117483841753898362652224661357800142057004878276984922346393371577888618181862734291484838056397297005279311289952942864050179692242452926140034567818535621629622776129545189479278418540592759169016081972408989556706472854176141009194466588926417717348801387674370648705991083845583721971774588376756435024633427827236218828300801023810430988408539973215305639529518494160201299847519359725429793827765361252248954764252952688533969085247286387592518432319919820349593044953018552567432527188693667796554330039437876221829007117587671398828520121832769689479374835830466021445187120504639626355889997852865874178992278147533042231556960082626596979366578377673654891619409030350481865211991356775161115577095150549570629303761219369902458894445911719278542153970298210681483427003420963138165663969947586895884070868320079189258279222096211682451552848448552103409576905733557494507356391983895130610596711302039275081371564069085899358757083153037453190954743913150273732895390072112788516322599263163710119370156802860111514144168093274962529836497658640856826535967796192144500813257746387650931213514418036836357052038896509034429499503416977669183467149877120609476272438083359942702619307867281202557698689863504834234650108080550081086798983289542766007738467619780041723619695895613600767335212659202806307812436358213918355160753847719729304204581656274114668438983960241637569445596066420311413447606096316231925011161398649438447106743235938104700079062010186593697279350973627932189738615238998940339681737771127103303954610017311092107136558803447668440752858739869556682686615761725438377176767008301315860315939418632726834550311368841134331681488547485094340368462564283337525184122398816989718558259558714157843734321241721069643138321870494602651920241571976788700542282884809722097709390294736595367915952460227736538513399696633796909542910842149853449850042228684250859166455848380303511160711454622083668798717471095502956601257118572220760488680862335853083814602340181630073482467764681556323061060412534353407717974304610005948144373382766121623424718297632722397416595462476275296473633971884618047306760276341463173862476061701031201315854434081447582258307795782923584312186661824263641140503200449075147919334148214443321977257474051459888404720134850579883077378527614483550420248132790356646846724993688121016888348497671133797840431273106596420447499545359635142780412911477148558775758671506013659844116975588926336345278960392487206104214315088324331607112714499304027248443851313929849411273515999205381006640086812741298689997261326463521253759666331997491892369938751174529920053461035085349158971001491131433089644861646703310900788641500018930534555381140252431768984233225002643409062898777649373594167438639625393097773696723324150554268451764723767276365355260500744868717372981171197935300842983856150509508546516378685385602252019980280905984716674575299897966741615071091008998518552506844591837880422176520421070473507127216982831284004708013775241533236835335128470881880025929774686292541514321473593450012625206920244649708976381994249670778073267541324819881693491339223460959184904725368904333867952487529966688327658319736923566983317235299357186592945374889831445900065204672410814497008094507228077278983971735291980123356693412342348724299046423159422211132988147226831524619726837958991676837254167406173080194267936416536018600092463783431210625211558517442432926581056662124176230461848840949942649902229066899781808952909994575338011360459290638023292408071160112553478261122110047004564340913850789080108334626787469347303542226281310218801185582813729183964340991081746872467029586500887093625773043052619796479605896242812539792552630062219825549981208788770988149629667231152256791306047952638115477563569331660891845136582740168495181471996930221313471857291878247409902931657664933682515661300269483290317089253698064955549678279371901920056190811952801555376716974018332869969679247692368279585291029161304683967504797353559658345424654482026462799148121234892634555519645383525154753657449465903099485642324205856372739696463814193111168228840954909053959198876521136011251316435108720577020190160844528149271439266750964371868891588623606977844203276988264278429564796225006871602057799113986583885884911723021730779705412638164395855123886206820083428637794709645230165618221655132836628841717145649088148754866368198690091454065544917492592336447411758585494258148368074697410613476904996203238200343849058907515786537611236302243774046943469995903364425463997620084044243344100090709154727988393823528336902515212503201820424556811421216062948551480581565979151238048661422842466675457494777580034393203264219312828022299340953457069323220033862336915106407378605889653687307518914771002240143262722126396469926896268739791619371232360338260687867626802172133412935795841488038065525964978047943520054823442947229992234814151533266204604500396365879115953111595431215489872012152189832812824856910472207098229657600128055144778778227729337784274415272520983078538084726376301545909955333032365606314395105469907950095729677987083124534936454527983139406412417410767245759782857942791995003008775352322001847663005761403135727285632952508895227054591009466228031863329311958006380019131468092575729998595549594257572293649702214476354843956402964479764954364944825550284747458706088779519985390994644931098640914946189082416729350602733314574543224948480238785490252077932418062398239923680367840049724128256759717885320476553015716932608631055378431917995176732486926384780601411516427553416385565846427183231532630550937110409635645168794037712882831309431248787214159093100015012896526271472100630884177439777435849091706098670870756307650815862867409929023873037924685654223144873682260918405383281700997601998319579217078025261393636319388610427766848135882623399297706211470113251641718739844990745235563434650507928133286039253004619841648820383938624428436823285370999069141600729504565806824424163215654567443866383019018237539589152658838499456410910068290320803941926568485675347238252792702440982655311589663796775170805919658028689261889001758858286579338360507271346390410545785536954744639463660088750026645911087459770608585028508423529680584188652505864826634339517557959700917029610196132153648816039004030446900280971497279113235194343185759488378367981720354467952837487522350011679448034899799063402162523898665323782840633433377663585977622076356409962677573486730282143830195516438821802779337628463852472901255615001736560073737572265062196608398049396367339437055986331633385854109629596420139638214656198704299106300810185164793715624656908677723933069359693747307479387938935656649771188304738422286422218624755945299729227986559808720741270815791606490683442274013113781726691507822708419630363023437362509508832143063807785961507758055217376079259851406993963864757583926642044500472155851726992877588500523640541666347811446134901928027081244008550419726057345505770705338835592585732487115505455125418583317125881858463677070147243466475963130538450440343403506344343385254597896026858845090530315961057332655700266552489521243388590282622061507338728748562780685959370599812864066784309127273009591365353979498255747059167457917318096923178959874840618003859909919595847152954299725551917908219611796543553342303053808574146951017697469572334284755405211682848143329579813074201936400056802226997867988269610088365302503739122313399324372350656701465126505269838049885586597928902962834300409009798850238036523399276275536222591565869980816659716596937823421015015731051332870577738182987409127385323544694600619558104599870784216491649739691619703660379420594890958705216435426577460054419386769091527155091183264304680062542325772503268220934359063216533723595893357562361148005973948047820786278875665112528887368967525736658470048558706429606704153827254173049439620625103973822732713102755730558545657974557766111522646458014641383419919723967059344582790283958847468721859884941774886147474999137929184387686435256992510210146457239212269829372790897786408698357162815244132915303177007916440338695943327829843952283160360920441288071007603595897335743348612804820976633209616250534203786254883442925840164572648811339034594310248649219506382824220293519314170873044785110797450983109061640341522755483867519900300499842108690746064293511946820362529287515489417644526204180036058043279294659986240290762414667445058350892221077718699513567493396362465951870035072023297248456457524179789065123781598399466450393411918821821406578119651485905663449054591772776169393800782481820567798736912344162181792438731429103875261596820354768774932762366532419910812887121756354940155931223486700302117823345942246638353445598136217047534898680879083319858480329051213947805761605394308694798746674080574594891356123115358371507459285837743142222080328501139866120169705253128336337266014810687706551010604256951323082302805430410704825023496053957599057512806341868625735355633261969806526350664840202593757955982141651134207265767497041354568940628934266017405198753638424651411984016313370548648026347507550997255203119651379901036785340434865829847386882523697640769448522789438017559209523054234266644743269723335406966588580131707150948830326602458543777196186590028731904134488427080181134612646147053173796236310861473411294484316875575945675385564801714314634102548202434132824985779449594025874694358591450219125016329898071616003482194735417307649306997279729446201005686931483842783036482489496756073393853558091860579020637709321468213876239086099612684656324483368950236027168975809805738820103473685659552597179391330766265436351090707718573125545394948036640644875381370248742811053323590284571009200931716181139421957349151508714066096985560273679855618533902909296166399373881206718657343910391764886597091804785052835884087982002744144898158257445502611396416815283162178393150730082378061415991897908043391706639850413098130736606521933439430222453143272975754292944761910702335605786849101957651055591528389719273513909431253356978281280605561475820702449980719790874152506118848028658084573961192597561575769587485995984017750314753285156977215802776448790307141442758208169004973803768028674293695026875633750594756804350419620681209909290696841846165104053647255458815827845561328115102166272381830656950690287415054047004850903289491824089442873313601998517789881710848450116015402685302936813294440850710180017568845172700070953814499397589409793726457872723619065437810583269308880332810067983008605671149809938582485456930223269389598131138460329314899556547330983372796278006980055677720333179572719216490232330262374128328834241780207236643831026242242276811601649866269170731396390688016155577688825048472986404037397919739275353111940665199253146883092195676518486256014163242507378852069055792259146629355935789592997844574476433414665923991598817813240208134563470323503559963825238601478724902668357470979348398159133384837665441107509286212444643073333788631441093257739145413302269886907702174631232189385994472329054300514611749896255510763224711866486359861494970511655053479979969831087118240620444812838746654759631518401682492981037734237346739201954838812953265508417228093823690589333198600072980400605553594554949584580983098538691224091317663727961522945936971479520440335165531303676894351060927395352064235450698763254717630553167871327113967461214274047974433690700814386986970082285407379521718577518509666476475091184470730232579729048871311837073981855869357588024818767425623823595832133963425676272805645405994470865872144710269600551662788860887656281977230512229261769179960332065082130370576189815402917796644767514907637083846198924383887466577514585486047936195634325676963777311976035768613606734116175352914203021473601101862959602508087237520464334203620179130368694820474972400112470122537990874536324170112614600403368554367642317561927277094234773878812444017398057125172107462387835309037450301750080388863481245405863666149511671529134624390349199746971023561129026900894471753377399422274489595462061859191948067341036507706438515306363400376762131687179757523806072307403644698832007097677590366041639604307852759443222054726068075601161165643397213915660957931410265610754156103779808810546802862952002493995639574401241947907659675451426254157970667491004822255955312933468390286147945716697764582845333424747036919942564818462297802252056668348771317662064976749821907098387366015643282289706469837687300512671911410946540354751354043563625275389602548807020235044149860174494485016186609212299803171350410901494167135603587582536759237163796917743607708161583283603987992603600006574975988907312329983747608746391166617751143067455262268988336596044154238800715663283248225533142925450307121684635025313714639641743417943980734123846209780570037381184477095024465335734716174761255958589248304951263975039393659387628296832742390174441205514983310931261389832018883571449034346010057402467646528372274768426402725355393507984604586730625344067030819129338569270329667879681815186753880651183425315449047208595219379829506624887495832819287165545668488796685746761674915366116362858769493175408676515649137172617917217059313873186739326823565911369577094266340761365499468404600383379850760097129565753461153510697484912641484573694783706869100061374396527364049069844672145399482497085385042931586985571125848794433916298845050217105270853165975421854491867451143718952677869067105844970394977433438809043040849890124009035068662373653332284106392460007457334523177178598861452059079671999242925983033983407999742792812626763047275891993260574245401928884187173818732969003997094029277517757091908069504979110275373664177216197695913297545374505169568365333129798620875213003346826522237244901326688922729120191844306116573329982941899145124095236614140776571775379226791040851742271500775145981081552763959652010953837661367675034644896049665784026022458938348381128521785176554059627077481473064128427476409497800038999162355778591545877274925339606829332797880713287347146168073485739359855294398906688946437858147609320732902600109930785825768865784953417443095729199318507048412827452810618207134794716821903980740201780641896983293479630612266454466563478726455651094508845150700911561295663939302489415470124182472752777927001341159861468702823218612303800658660773376516347217396414358303872742072198318411360491034060810640810652444814560392358811104008826987421647761830558809737611970789856599310644181561677917741149409391492298772955938571357422474589412661903970425964008871820799167920017384127180427996727510141261043376811248501985116477192198249366054069941646893195706222006438296967675369075672501455833174863029680007271286705263133928319844844336487953732923742955048667715354262814581790170702648392937330161424931381135610842266344042710204871020453514474559553165652091400381093986534401067096056122388027517075746671090788002102833633444150169570784045627452286546130152564025930653170600590263275673849138898505584502176319230254122673855153344948858774490236766607838523860587460288123111960211902604704165110030375391151930349993801380950060437339992101338988101517047131949784644277956563469391784656393531115348277531176409084584131980553876014146985787678427615879902074820106654001000193364161156549434924019614838565955706205683733274177824335206378036049784658107407584369719954545485851366584082687344004322693520446709966132469770049037763894621834327627287806019104132406323798897905110175712901759090341445371481913519061274369477795371230210673703154781466841535098826246531613586168015100563943850250785688916916818924715532187120004344664289445166079176099671371508363404471372251073187140680186496988882380627894188940511493019086687140210165639170931608381494294080303035336730378102530148671208251360621646373599169803490015697249153793063616112859823340531664050369612168783531476083388283633429669562751284189771857219484200685597642368150916555602447869466233306571517583294810701278319159731116352162281098296809029926134356410761268566440515657698985375178996463715008423386655858633017248899015642498048288268810370110471512283462354032136353653435506604467569998509672590217979315720290408823574423621855284002504725598494238510459275214294648992733974117282844688530682611726540273410534621507119469857231795104822755540829395642788815465824966693701500516696618375098642903769863048892096499977633157961645599729422576644744874384841932290944630561213854974229280601823047592447875697326536840064595520269674125111386797594474333447834436167725051924274917452104541707312182507181983805389320089942298466045237722676206753682835208179237231212516280325012105705084318218586275191340715366217154800193698622519021575442887393087555205121834129413662997563514986752425244320422204061067962432823061724668852556284221724606338542547636575797780812359802188763620902381632977045505046847395372758455201655271170686647543175818705379319534974587555411532790159274491412563268662775632915447964977842333251987627806618657642929792057319450671269872142033065936435870397671805227607767049081075332561966251435458058837483242067082949611372921677744630192208666522417346551874272661344163726460896982153147473269959754079816728402071792419039326527440623719552494758348072856144130845586979473305807225863800258657947759508613286684618882341759650075892262233950384815964891305829039549862476713739524650667517416937622552545566820934200749791356595967794005603303821457631978470911483260044632869290581974686699958201158659328754175910604209146450499235688880752264074805366649924820942435103583254685376739240480934386701557223987439835987941261563300280760172852105709999310062677132820177887194615172832841247077043763262168731145670240954002730935078602713253408092719718564540317412083039617856703230668611187485776691330745045196018429885370789271209161971598212962513353817739115829196182345909140317959196279915789654096978254087370014408764883453827909267906323989825533924030739297912832979497117487445668969881816625182678716774940013952889443961981571333937588057230567578591590548003073171099084141534877278506175430469230410404490589744087944503410922527189944647826392090071360210350059236196690133374558825976139484306955434798342051406472685731039202201127843620378755490867431264334602755888664533405218792051856278076548373994695777502018969903402399079732903106646369431573997356615054563021291989565796805008994687278560993813571604186001244574262554695742240395875131117778096742545409796409890001355013212940520368602237260870188028971575846723971055261064903182272372314343599006017113961812996702009306627020335820717831438746143717915186226627013369145583467556036292472799215387495219818792662911213530692276740520456044028081978504303272888212012379800022764558996165620863591945214048376341190392298215714867556236928064157902053622279607699492132753517547723730415346349255130178968705721777404012153809788403316898741016883040055653969744955273108663582459009496998804325490983202047857777776405776391885689777430282612327953533833134759898420036190298635311365016384779167164646134430694775799486851451215615589078935805609654079194533019406903612483434573356101068516825950303776662989659139213459657370158929534173209027205076563267485424933898648083198637194099728432976705678128284915480292436609788091591127522099691111286198167881068330581189904329354462900147557348560719750765060095620342660810524463783394190291176028760653492290469597621022450343668715814602178906789708128631974868483855816664570032932420127061629999184527720359403544541251847432693643237622588568561538754179707866849840109264130328936055145253648872352227452821373998624461232352985411583658398916540843355372740749441047408332869336071742015321987632077972843807016794277169636424569395728368753543361918672758098289221694249848675267047648845516809346560018300290082007131646514609499468410343379492560068606481623565901782399363171701881959691984422293702337672922045226156942693618626825024126135947037325481555275278533697506726094554782057599181885047751000517973858339887346172661599694528036236654161642891267680221031415943684012995079577157599934617931042440358923355466255447818835836962136225196688175321446469883439105254313173040329201825894295666105737117063259983454553966713615598096020776844867406398244766541091879492544970307982092675818496132499841688359861423943203630233569239233713167555335012344899595895586787727679655877132310435867378667055052499970667746104668382729397804498214358518088839036600367727921354482260623907964461888635441738524456803400526663582762622610654383368806751137736775389975840549135792182059637240496641508296432199876366111803695398469925748216680093710837850916776548674701840584210970779681889927372787851697437121398283104736665365832155300998433447117356270638329409773236094135743396661875578950660436401252084294405090400662055988865480463741818798970062111159627551844138947906319069564477157747107090280352265746723506378956274635347332974697872258281702360624060922161718756598704387737063398801176118602528372135087393689520854826234198027735280704984313289739762815954370656308459607633199609535585292927728185581107842705166054039192371708244264401137374856567120173757708073532625848779108331819644994625660658562900207244681911115509621066378393409941710832898042208713895004637456341375649231845531305556485865825562671603241993119257184649349794620159531831509132849634872021221877577372077784472427776618261870956045298003295911427345528128162768923953881703148187433452029788041429196380378605244596638260437501559848813677034664274367192482399953128330307875065780322446154274446417673852711481459864735566699133864567521220430148601304007183880709471032447955028883232667500067313076882187859827569896515757959000264261551283658590135241519473611402903136787583169250533339828215331519690816943933106207650529119942581958519015690325999748866087790375607362747889873426700798617215773190633568128135499053238640084353075676946275119125912198222594450684966322757476330202371602137707951692005711101005430305572539398237123358423862883413658769493390497687335806970670036722625408059753682929806031739681959693576813858480870847771931926929276721236620640207374738470700710719179526010307904843072838758655269842795292805755879692456864981931744774253655529166702749099394168185461812422161762471985021222190391066430574567510304192029172568521148262229450116548104410272466308668310591969639972710734518444405890320640414144368106070779383028426864920361127362363484896345656014194177977863087020650505993465619399264523209160165127027203490054135079259220930232712933931687371092304163044398765836388908355498877750913067966895417530492808539067721279540069950745215047165729421399328193487539717277763900687443074905860434009584751007178192585931637030156365142840089929206734567073863031687460181776980639971031575996197097888237810063663173155826106388338233317100562626908932926019955094040319070950966131422703530141898852629786565004600742154573470081834607769560970230396788616206638943223001720592506969580161314964419299135230627930201550831558333678918674085067762648218771341185881400330682942469828778357474815149066088853604625033863883554694563298970973752703062067659667938383213903121207411301182137956507552952889246686409962755299609759233946251043173206663997659208225151629041518419618799253527416966797305247079297263321054472535369984484841782483608212031256852179461852049223338249693644092916523763735973140058216610774099342333873133902768708551468001194719379348004755980771964485510554290833654518518398348232925624947060786870360947482254988731384652134796468796703631013377935587000623824837336399729365259647474341469160846460871228882089123981641380556354587836662062566942632005695648001337417992870035000474988961146100129321246451694180236598505579238085817572400477236993271394250882239198805839664114122200794089389861027385364077116751702333622636242799671230139415087796156147669008691160372524680934686818925747003326242130379541682594453432368671945338225232117678174897192243349294727743452359936929508248815455766564654832002560361717243891967597273190343075208233443417349124503923097384016816678212978185647629021047800105743526791116797641484504878106629022478570162721086778908927940422025204026999818707749059279033072254854755689051280209845305513083947310221140191396594901888084082200899583010454349921325954029135643489667963505833122763293494155948146286694629172624424390707932051623320713469747317207200681733654020258290775765689089031730539129634131822800629254943934890661233862936329016020928395936810030411199968188032997317831524356416130921527131926465807996297989846033415240972343914068020522316701115615901624846914742875246362446134522790586173543149581409585176203513332078720764903796591941207968452346119400341905411659392623435631325893241221947639405390187459946071689796597691892157246692535541381383586568323796722631517830380672528315327772273731652000820169271475110463930608383001946379435530092684179434997316159949269771638399496676028591651522729624865208758984290371226086351705379135762613219615203623854386305676621202891585337965812572017040848148936900556192288471017587701762572242266789503036994901414413148541290855079178737802139194208308202986931870623201061828181897337248774211977654011993455072929534810783773949468397660699308963243731794890110957706914872174150688502853561103889129049849296150850006727707411067782650114576336618552280832720003798077572813834136456595039585943247963548372538039345867023108575293261299756251465150000639537936277379071493216296272909920978949582947623734724404905629163021905203635638935390362245090052133261624473441162151065273470363301905537202474617631009836125652175096178797366676332516606213745703833374155407200540508394115272814954449764885356988124025445923503380490474359236710976967353638778094240399694557668965317036207621319986592588349969965901993735624550341726586973690477492347933430791008363972897626533632992009112409655733337464338829866794785503123822492212676165327664206627066216079723582089260015591783798613979280436716310009264973299017115921235709293103102468071372517224441075475037514746130038799868246032635647999445807380371069272643540965738579027782175254777106437465060023440175275795771235434838539082338903743010446964233034540806128861052736751518064391810735740072506246354686533463031447741782848189989528706360661780412319303726363312769285688961330327431022668840006157142500408008702995675093877004519158768747571116833961982104983427619575390080889732812829220656116308771405677641352138868354524712183933775287614665431969485488647619322661713657110487453918263497739090468530540851219271635360017238245576753367070607462234067687597420478109721815236941277556981378706188071334016286617950035298374869840282544323178392506096507914414152223655598206430218689598998435292422713880937494703408205285317411739718025474366402720120130702795147624487947157020151428658570085768120253873422896524685081867903559246768063358128083563213368276338358554698060203132756480993620262443560265750225486026165242782160742078205829199050671736269742970434316961288917505754871755881723734213843235298593351365221412762670617204345505371534840366783932496648872450722948177779463900305453377513821927257031522393091952061548043438157395169537695749988152087119016389778290681950518573666208458005282514600370605083031425997918345173834158165720036196551617201637426346012388174233425301472087701018008569455485869321530286023223210723273846041389823036460640634686019774647005581785002510642092514691551019724226816364622788600945809708635991579202115423269882355862172550013468331920980850768619008090249135700142927167516215816638944367193348316734402615501933472929736978032749819830641508609687337856285689827145958839735263994929817434869689188035344519520603449619688694846036940944119153549404445086192304019385121456303891685779251154053067337723688150601983880647011453262720204117746072060994311799316919584818147051172238252646392617896380689469389991920552748303958446595205454939391852991986562460418552776869634768923638081802453100028987987123390866992103953437731891442135200290810003126199699276618880735503062177422850557996020951980092138979350860570749497282329218501245227724212125980094899901686494635614368065142958033429489690297703188890315184962546205228496685874342260346357894518007805494700288003628712095216883408481988755061269090075109031654547063606488094857120960366454235292161181837386227961789983026851540250892230889040973300945440130956336631424684654485185409100512569684550523267725323545641288990042605801234995902685370068393252981270754449558574761558772894622105608764569727419619964808804755085059353763568715009881098345601511717304063864557587376300045454827594519579025501536553777750129622601439603266740051134791937973078256673157683009028621467828905766061308005533745926738743331547130869399730226446136383239333223013093991363232083593797756044957562164287774458670742338243729874298932807489743867773485168980773055108053754909992429623882739999198107663816825598745794488033696815989303051488575921362215600567015796819041731048881871955191025389574048659138953800444273363745220051898475350001370106860790049685756974710207374298153787615957280958202432345372312706898014738828236164015625213836253206132225125998323859518488524296327794188582225003897168425202860326270466435965713484835272735141974744993233494964427831835007345122924191625669151386302911099431737640621228386839116619977446496015339933607383256114368555707053556864012542279988178563433442514719942694956956346291908050599237818985648768640225824523349389192455594672322709631837362520854073780198440585859635423106588475369231477346420379915949631589579369460902539541991844984141843286456927424544019935301571977083306835643153915106267591256868116623678353532835922674315526010954738118677519610563727551162416921491675288763961001456283644308444275656364131817789832664730133657599636815587709874214996366136500854553701242810653889825949611399097122553409023486333960841547303296029408435938947595076994862975724613765797511240998619228501466639985864698294570234719930275774102444413972597808472346274233934756504922915773029909211202846349115129370485841748139134953266789874761846491086728046689063203115809427471943862863554808839423492816096926387057418446733009800367127148986827060891574038033973263181955235613889890443366379566829606278290338759927203617744273178981625433402280923482020771741734776214587379489308862178169454885022910733216912103008207613819290354248628927448477951034374021532091684820329858989429397663502569318745300075638347132102483015983504840571835575107237301206337508510484159967296191200044802112501149135774813108952299765095848037896664913926857342014845756817789856295248031429974728848801721093873325712588198070834797461832877139710581049974790389490909687197230353920183109150858815378648430223509321509072718928364804131890961368782141607988547018068213500512217704728688146262501193134079829750692107376558157255292322561436657070782491600998522954350774848792161988203464419158792610058843404386715570213334945651832201644235226754583613339987284084065566378177906892977644566531693056419254052752172479414663554785607721173929890508473706512921952421421297188310171800408300376001023775524325373494280732771901015226124674809891226595661983541715160068751371188570236451189190962205109276802523008669150871949298535178465230742315532882066644811185077941200989674602659305417393096920115714173667392092958990393056941122937332372280552276588369687997176315251208683031786127344442303282209619363285309231773642802335706956377739991029509306994919901481647202999830149787849156663635123199934684094609761318728164821732503944157999921067870136312464148390298667211224443262632258843888273316512140007353371361108204679700889767274683185838297777489310995280728875963562627560775678665783726074381252273553598190156593662851753197554675517267252985194502430884417629347485398552184347223615016284081492916768713799315172914012928808736660847294154368865445379567915367117050976377993123108010708624218878056157982923387695587683385662415222719924000819475495583060939497236073108600441523846473019976805627385612606188663083797124084671165688056239461241258482207306894668919104562955883870452972208666675121435059778386064344982147837272311815861916519340327073708917299848627349086853582422202794893427969812958132974510505894793936381356648004678770470353757167443930935732187577957129500253482901393790837750327148894668888712741343917801493879487589142037157870009864513122661286710480303257288219307695199366218051488332139787580594633609635412152410511472026037754306045550565787794015353607999117799673843557048597231440539952296853404303306474658929312637625963363520683354217366736662344126611915091912124893217612947813864281561206430426489631915273384648625677470139743717530265325444229051203092316645865072151207416340341657535276680640023454831151842801641915193053833487761619878946930922294614147798175055392045065159836191605249499042510911088196494055177902032264466302449759520797949884451211257890317026124053755612952812055941224212979338419237554970208292325584176397062248056130442804685679553634992901887063664311486349540617500648415624112475322279965853073136347676358154951657987060845326160819752345759474992787132216448621300331754211229414615222911834515343325975931656307764957255205179986971598367066586944417160182639214863336981001254286729402552874823310727990235538744875552990643136327363227795553163978235094371756319832095831090094222234520980836559299003202427371204735009324519180176211450884290265300891807937204479452040885785020921104879154344032674733862805045410085174247954479117997011664251405956364403655248537844285471236743135975645621287599227832583203041134781505628642305098204372856255612222912730078708128152103941362790978094969998519538652257748608674237091968321170427311191443156416527592660467409824793490731480811952108776346701198693895908630990074392495763198131808153354927615146957551144817696895384982630876009366366010774966907517026120731245289768371668123926651309708185861584900035733616814674899383179490629838997841012393240475020453689090615521399684576888764035432035609784937597475124799751691999036913616181014869493477378726638567930144259364061501869992027675671125298709394931107602604269871042040559259513436797656645551232311973195889394498435045166814581506026244257218452015860352108678473862570175137531721944243626011150698348104304442444598463732755734096480316923373057844984674365256999215615291006984182754245809426442932385274114152617812507388943104268158718500805576454779209726598662965295346206447412925593307999436302186433689361211796930068636004509435383169327064193839458135240161390136669623094747363954574509132934130322982438911305868438583149530164610692312484734460086466359694907181308441971200393101702887896565160668290596322291277868048877007682160413904188623419045124072828457677835212233379751257341784505315937067819235400496699610014190064146379401115694574920301960498278930735829146987214491683890983661985425580489729099103390490898457040510745640968445276764576406096848513650011585104157746511117258302682511812983140674714378696838349628783148313097774543995124104411331067732617681593178121394784179163667724340837481612149489668655036217685654162401126420828783463137990183201573305938586779763794053360387241430225530302215316921827013126724356393991311308141189959932892125960448287831216212226964353223591634938801205848263132684822029744290166902578237869523673613039214917906193718523059361534707971401079378712577090051298385559669973399029515811695003686768520015202327114695740684336769874520246558622656774524398322499232491408691287943159947569977427292437929548904664038028218068559587437808094123178870268373093175991231989736633549749797852328021705502948195895681096623995803770009866063126275230873755862276118783331592433021528067532737190034983492015765545014383637577380490528651069525584706436864663240308856899892362513980028357159495058446221054648159411687167148553548151015198929588143635519048426893553694856564027029863910654521310444665746554024624753463900901208351098909644125017911210725666303463490548871268525339855119889401553388508299630418114234006796187831752953337975073759900219775114072496973574229707771404276860434457841163351889190525682338460683593650784750713064151266002149904238073420187505814367800908379649299006654167064253757484520593594120609925607462605412240052289891422675126700999483255044974380526287126163964538628150416685618829285405296917290842505249171832931201013081550601877575101402087141466357963283356424360530671389980713312446080111638534421192894109016600970648644772050228889998057939599748390680812106537789209366396271910522221482627011926285926096138099632591657098925072600972678601888722535563194916565404172615346501352838322957121734266648378350916879473054008618062415820482120376631765055930525175829209365650099837090893648416251092028153126811327555506046723616947333126907981893121166621165205081425681825790532470707773458416726093069528145014678754815184170631292758174199417994461129502928837408789531831918356866746488152861325023580972171838202315059444753925156548881442033185503052264318639018563525310547359852504026397197515390367775637019077696415643713955124225983283455364681353979612964081061610231229601980805548944257098614233502290615312775622763367397115344409137332242910463698861451901848693792760479728059748203190833315908249639730513136894999017155557499817414833473680314643739931535013612818712758085054099699691793255378680278004189576922226554941026373755047750088476914180072902941754582200843349890084085144654896440709789301596326652598023598558114134966682175641043456450843542632112084412099535273744012449576612460920044090765004592247201644640208043972124756230362555049240063241204337685123414363411637806803939360094423127991874659984898972389055318463968051832079729881491862742695809049104959610730984893504392473902751435362890442377928497314143531322072026119849955558596771138724355188795369036261648315692528725211028582528385165285925094423775062156573772055426297514352194330118168444179980889421710924633511571125301734108170994108032793955302690230891493660753560321667020763998782034859676736905514386715247413571856237223885809003121061189342087596587119725746109419215254077257754179753462432778595661503431098938129111308730876756812924137475213222492062543667644920547626803470453077862448809156116578338730268082614270235021758382050122605934846648065078987047481679867160351393137373430257752123948054742659819914556978193235774517384797137767305046261208212101985143492962956661365826959773025796933652407791428664555504032594174500018888045281579832023665038297368443506016210007768531852598744715173232154791064247527012403898996559747589159099247731730500917989598542394165571275974784464116752057784866927927939879113221697923794586789921112316146877938684016313695780493475269604964535025504262287014729412529925590287707467648115370112369772246598827775315020371988491357904466785437193543066040048749431230863279640192538687815383554205747981710088600725412153602005997786224401675830531167509677772595169563920322155107897289906559216733628855738437072140926730143125157061705036696327738706091338470886328242989915000920039256773670010236776943072796202465683251817025978556965659823382841483622322615324387882547541791181928190430760357272979839851575576091628582116134320404456853191988592572974682057349764671729318365802715326847597905549538098016106657445584122068444446907861801146977133719242675958062549381642853865047619277354712905355977457109482691269862811217525929645079871290004332862217270678689367226056689710028497576959730380620057772065858716220764975466684523601357482104130280528720383363859310055694554301212401613294775600050088406288854286948065828345576284919423012834795631174984923181517985363259292199254749086699009685031246464732988761448763410283312872020958942771301757959320380957291398606266876602298709579585456993867709486560755417636477133379473970000993774098250433795769413672726159424981737184067164443815599440373788456344655659387101647124139045613729692125747274484314495246910667794133880080835168726037040022660630981263376163292416709372865530893885850318141262532279274058818091127228023622804240223236554623037374211526283689659186648071688890269652114703520570257233681347609898398223662627834294398882200592414339592414355673711555270001320987027569969062528674799753553314968853384271010505625474782611778905807336119865284720034053056625725332154629769011742618665819979237731413226370301655980424370616917432868383233172835768470322159756462155115822949122391504349118596633969934157236701575742562994905538797451430792940825588975142623116501673756219041744199634519417372772204155145785510738017099430739780247926489519288268627509310067975923481724309559901378584674646138703181523259528181549007728835206709716472619681421912214621992248061620709141195025026365300597456146717336658615473914674394033470676376966933219363073455291279060078759478168343764443919630535749863880448218771350233962385402787422942817035711123237433988101333924869304044307175029039014584645253377091657260309100903505180973811186657067105317745177741280093397888015058475509616134617305228616978976525764175784417864687452852777823988108867855595608233864006427855418227444907412688807963472630108742923148130309647851165156098076542226842644561613570145656629145007950053331289744846011189924183695340788452783372781094649067055137587156021593882330451758103925574166258967642673061459830238445273810716217380986899834849272205339695823754660871041192481846600212230025948621071113316903188194325300563796957064730137752373007279493492559624254079829507163973567361459283924267254836440456939399345116768131906606110814731928534457007771060172698744923187099250962956504896120647593422028672945574349435422137725095000808699132114935229992594638904472795911975324166163480294109578102454167533035849978851240704295145556953406191870815971413234917255301364193286779484506697055840483834253932207216876155588932753556461431466227711470871671089366851196835098448733963398039084448215249789842124144292118485490971428340504817795782447100494006722012945638475726153269879793763792272041803476278012366304882218149942311266224312638011328488429656366213797680043991365305895217098197648385992435860615277923218136723800062859896934603521429476227820575766589310982493691366852925535117736059852587408887680430974123400784868810410409749693764042897136857859840765404573585996899704341872358589755031156744028080735646270953299921165651470897410771285730269068345759383550465432370946119672709059827001703810529424635655082052804228074467030943371888506466812821728115196566286142485356558205433247312013786044372911832898814503338164947916835766318533968398505801062197395820928295587791458682466032211066449039197830515941938339691841241848235546672863758737159718969329440060721511325576937005365569735878525373234237133706135608513863783593350404415283888827240535898340279894679505656819014362596179513472507787671391694580288105884434125921493697106226644266570286181006852920952888249994368358145774626233287497623793709640100236108816490956964413894845321692867547852465222073544267571189838100731322774418667273767958156433192804135177075097052350658036088986721593901637430787389112118096779761735447880962704678791990511672645038345567628885811597660721644133013447735679689399331702999930368082078539203134840865728738289121045320020943731608518094823786195414639116679025982659765382097899400784145367618451342015571660638320322048651426915904575368614310230572176089269364363138423421100370768170714055168434181601817943112659617329488953258460005053776343504361049494463325426402367182650587417168531350658511533144068486508587235627473622674453182456388043477965972796899220540435092686925426550558680820588477581134687261218018385560372016129673209153237618800630563874093601137330064395868157668469387330638645270531924734340316906027657730282208315592652888875144060496166329140977926029659626171655157829006784944017462485642136647989105948598756582457525947001653858239872934482100443811939683806778199611428290083055405138446151337186970466175272141704555276506795450836263002071163122756329189148558173317101811026305114071965023737291530426536993726758259375722615039291472997924339429536988684781200718546135970859008029002465565997012182586813917171048066994079155722896680875600640889898014377927881872625458500080977833727538710821691296547671874786995006034373030983660386892104652932655639891991633994692191771763756124697136957328246111262752259769163103968389858046219328452434843676026001005272607370129775865632121480762670633118185407945704982628508128422380825661824468695266442550442861013019506254078270190413121828620282784191392331528273852782956002950683984585232490449572695462579093475263727094714664654949505023092135606007957562015027932311602534636579383756491799216257358240697416085856348154904769773617790601467238227625208359697055261103677217483442682984493396950508725589709695818329515584387184732529129720618246495449451840028311745357428619438983454233946818017057031936993007538755884888294360568807374255860022235899534129948863147255186676920701292399718033688411383182614177064838376304763351524441420874308062101862077244680098221430163452930384474657152816796481034610094029671946670423719519631914420543038922835529187871291025571031444422714489490937957956482623978641471808625987094134556696859394809342243080312820400902272440887841555672872183913438259583269148202308415796511089597861136303083785026651701718290585542214656036746080469065543432482289459162890097839153312004984032888296427334867961252836955293514058984910740486325602543602084466501677456801765198448333317386587016870999790592599169594145146850546369248826190356864184961956250581503734763247224423954347832629790926420681714252942886119680276529448909660636740499467453006903394482479673185359758497008984746492158219056702675854823994487739669458981999446684205607928982765360481913766760658555614718851832835734408511616798616047354855020486196022818121371433370958584479813858708682132175597630908725469288327626479419470459952811191228691387859122839716889296261781663636343528413400913366391861785693027446729695297952719152669004343897694076445670618711847971146873599432687509857339988435714411666077433496245607986189542608516546225037981436028617370631834175158452960422131749668837734318951296667929261732211743918732035413811332340683237717662967495819778795356196812591658730606247691275559570701781480233631296928843878596276437530421567024305534099183075396574970123480400612965451310726689567964830959484081247684011722515598760081231815303471461519823808195516383134442345186011546077946761031041293926691226337768480820082231979012100135941892983794174095996599191147241801551616471514726490277858222180101190499544136012582607603952374721192283317035912023420027788861084457843730068359474562582738070097274018417101816561995213308124389003834047028138921310796994417730946505680603940130292450980406989967209265976993473148466779605094786317802117892095161244603433826164564908691588692813601812753199698418614824888350385600680777735077480673899587637674252410863458677209409281170531005494147055902338604758843411514784285026111301792261462621946254366982750830804858826056240366072427144519923509013709239003800350652147554768949572458243120513695133501020145074703953048973032311258985672561453235626384211130347151882602727075902813777596760190581764889221122218464732585343534894202228170616729178416666930431400186213953706820099866255253567896288067776556390687017251230262445976914169566161122966111136717614419179313047298614603264486787728148560756504008320676743210976053633791976247908091665176677320521987606711467285174223353507119090358626865106938283266967623925566612272256718768961278722173939387900429638177328119383581913474253562439456821588316210782765310752590564828065478894767289201133510664254463107956719161669513168766551139260072087374110322898261556148809043457078151989830056207368640208729388570974567126736498523009846778224869458924788992359768310986163541257510077243244564762988260007345227507879171075922961270052856391959376901333803425192174884902312113812811728246067780301832760303208503810227868503213367892190050432926677640089080421556420750572807351166406663505227794481204024091256665603116407795867478360517530177588315985990991120216155860650446406335713979677408377150316596978860295926474992391775475189193704476149742757184468106670775425205128370051552993264151607233128114836101867986958875320890985074518139673619056317978259601111511437277618795179551538786366108312435718916831608131370468094176341044085376777907900318379802702720052408370729647573945387830662590966330259817245371143840297270708578328323771897694379895281350238548124146827427359103520980180760942103660454107843905398472712508636124692308064536028808670931686314870305610357982472102742217627514945424164250902104050464620652179806775632548789673247232125380847281769897990308904098600325909964271937445057580810247448875416601873360981563872880742341593725229119709493744039199136170245474296733269854844569197563585913181245005383205909525581015847552160864906370730880641107270185392976910144253617387685371481301521035167902960980974506585687198155141814682841248783929237515570185142946898386872032250278959544524621790034600341506867211089222692383189833807012975322835855285262185336423708674317226403056692096186237829057797331093752547546674298715931435377049764857360658277492601515955407235142944336511127569874863517330519522465953577041855841459207163814510107738790508474068328373831628726378737682923823016395132729196398041683819141451909845644695353296683495094678899055327415953057454268408860898067809957433492609614938316034605720215921449442732231436969900984542379668514312684498832148667121129791787639210130021734123928201743675477986903318147194455418324807916682746900109886391209226870421036827823627206305042368118331890648330565641641601457278782228659343477184546917465289409715709150642680514291435494126933618008234826221024084537448726486424981145256951469298726749881775591657677249916595426614632377286750079249281515640751768731303475007219150144739567256863112265787430399257302721279432100564986877719203083176787957517976064872297653022703400640324474574685163757297088629938727676721881255033555879539004900417379825714778028716853681329207699770529269644867139354865153027510563562676587875974376035697266165252147507440571966467705144561874929393162720178532340194236353451112961172261123582744762186587166531676276825702919250230902874440320969994808700889790929593986533037489104331772345903418773998151381342036745274061643765203781497926692861589428744258245697425691132949672585732626425412125518987334100792340213373794359927196506299904015876901425694227224878258351548200809490903897683557890614487980516950470022768236206294079402735128159269934186939742651801777962003021968094656972797299398135611333712404947358535308496997631043202140742201417995130863188515783494043364731471235872109495440089841602965196892481740256538578976932672514540712719871754403288919347320891203514754743967416838353766853053278894493560209720783661046504825025606546589983818241245083632563179860261477783123274893802697424364052853909174612588270632007071742519150900104025284528193769617063951194813831435712325004521407901021471150781305184931029590024851772924091491808105922401383355677975685032842775419183106717963251155624791929497016413317462680665574279580820653089461919200745812392482840159188228756318962708829743467970220949099673678685726336332791669508427667084972456316599223023937606911307915663499061203629905056613586113178906405488979570307655600742938394378347791445819363000807756564886172163366573781685005861746118358335980488556536161994645765888636786323726756135145933901473726852693526843473160702322281935837347272669361806509649071425793723094093364130403194129627212813346070746500904565254541317715005353673434260334726420971446534814149244336219889543365476928755222362519792922206185373102584526340589228009816891631654099920240888869090723790245465160130087133011179820893298722643678710362148222831427472420957997886066675449274213873057373093429241892300646102274128649843410822568564760679078320946178869919251894797807359615527780551149946184549028135057767044648233302095198711994625145315245234032299052081359300243012748487247935118739602479168276294965540843503487140053383400640234427157895690273806292012045570144137355546633267545376269844221345715767007189434070463474582677434379032088353574311708849108952323013369124342444860048721980938328672111209703768557338748708103680385721497169939863159739976796713905884483858511789389764209110565159244300114896671523796645308913007886253504306375081712007823277462520992359026415206853928040657806884515330318046610399829216361756476466047788137926602598350407756251754022140969659855184288430399933376025036225951485856621676708517301137307555069749109747238330165828756500640223005391293647798806032135947666226130275393706771792770457868894381274845939803143938336979611755567954737811045835803296941099964501648729597411286294123014688279212680345538963170534772490264018670858329341533156450775054965364695037244742778168048729313934587031519572436126960587220076318512217772952194901665488945989335903307674985184360472747558492033598121098478124821637270913512138017581098811638725090486269245085338145736976174403474595578465761161807716539368709047655459438216297528531879525456256894107161287985774326134616252092810717025678379182804718690202651021565348328738006181522412044444423329993309530413192548342579675858521403820891959672834793560428721817451056518868086426489486968629785853686920513441682314454268678408760449196162734145448121979849080800173099361441701575973236125246945764797178033019306821254903525390344434946532093537183906702833141767363141523693607976549077724274447070212031280674809136099941368052998515308337224048424840023040665335483373868669545122409129628167734491919166169596004132645780930621505967171439890336152748844105777390216923593400009851315493044130649280862860112040105187140942776830413921647727411948575214808789826488590547042303580931197796660459663542958772073805419890989888832076764676264926376096414436927026495796322156107384941296994032292212017138026472497189985776753359718061068763061243432871962574050631161660215213285757626431091877251170209229379193364492530319982880214185250472562250956112893116315887800734821576065503478738389375247797266212922696033442042571480515959311648186835056435553069627263966486824388908753371539576016046114760038405032307493621313306794778453137541050390386554295195039170838772079326396167214721329656221894547790212120814970929792295730935590968214842800117507413067937930455566860851642181970788206936097187446378419181629512432646100481190263115190544676724191620837888751524230765477985593144362214478236362459997675746810899678558038971919371030931317039467731926489027094688037938489287586410869933633167009288472518383599649210379360197413866539595471289232934234354810393916338139811735313287999327108319004569687214288357677938622934295760127337309328232106496342411643139988698740505028003714952483330701340544254073081085384161010590593993176850186255685784980863668810368990874793456915504262825452501472424687932157677866277390074506124514926918342280975865678576381288583474275681791553760567052223240689336092403045281969626645588909393320032284492992776488743513853375446350775759442162805618257819427445656935818379646223587902326930956905024696605201960545969403831753253005700485281501092401715746384882908733561775222706604141187422743746706807206888417975827630524960966208865406367447313235940366236791783218700309702716670433159486263927737821205156581708294328029335347258014677936104264147581980841633501169248752737900555232126500643009755609938066315787935791243067397702640961441079478057540128959358400312322495208684198533194342203238233795846259640013832135301535564287968805378981461474697989532326462750659304387235892672503833656489848590684893905595664496815325586578532031139744318855637997996098966533557669810744727247160348802554501452062931376570026281820523008568553079801239925229424674408494503659770989655574250006115949146970966432423569741510897644120668176128021828344519601427160510520081546164163065862064631431671819133718214016126815511043766248947768852283609178732330216062542118117447867320887637399842857939532660386347217362404000911036784755520688136442591352321778310722618163948519629272091849013609451620308077621127829641719636980277488390824521793157452711077645773395205850140754993342802296726053396413379868398396087901752441997889566232240534235662242722887946940129026944475455329309738143398535737540637201066518482177533263821169203840825392717931733478824062613847455272507587518674523660939684575544510754940502566831850222864195398130809691318352914135990507044870128643643601166144518095931776321998510898956259933949906389594708841397427745905836016647704465342468496053539849223800971220352317754436072579713521203299886441338186115418600823359957027308159072450975135868934037159026460229167206114139981016463223662031400809680662630918680754878534828152655686607310842532419876215841475403807479387516507606101351587474428647163646063437510451023368437786633162125817064493568597704531202260341248179562222798725292776449772437647155269602039198851136739990629192170860709165375330898944788930064868274201389530517471274898232272724586224138030053488959037289491510026373910582585746092318522914271242379239599114853382809502942679584070965635652984302405907959492794429998175881822432205940076243500204272801922956427521401017316659105625012224327395684546126336818564304019049691555638332420056238514357903624227570547637368121580490061687286965951472619393754371154600696118201198041647226153668973349570767921657781138108859859216195748927821916645162584283581526518717151954728173510300829139718211030155714359660016188196681856519820871101883613148758116738271868025637225178866715980383845114797370084269836254097750945581999195477827860908520123912579890997458771929476779112109831506246321147335240077938688001618391431659349438263165783004096295020206533694013061250785209190548219999550004070934703642777274235901580249069679495966087299293089409136672515278099637838754004098235342469119993408806197864352208889677657463385930773602585482234427750002376419410146959123443583934922316718233536819358194640024918205029047260129315236224442704591382530884422864922466402577574588648116470249912245234322015727715183434684808422021454676140340800469582223426937568596902973138918764486119965019737796055630643193007035308154730289606677448456674868156719102265492678784918762641512674800983778026583233359092353397435636756829971776425567501525839319264962958024029282948209528591841850551421840607141624510430573915827812761005179451630408641440738012169633607930292736579922440065249144181129076759815161052068237913314203734162257149390741180442638355529333889597054130902670606275624153908463793812148383905015363894237781521586479715067726660397795455379383548723041384056190969603808341252179833182949408191550636130589481331333044932993644954638321198701089487849322571386350669871754963404351238931695929831211792087995168860485674581178623442339116792327058476311779155784631912356661345321508867841122409067782870383203224974842542650365245012949334916166955734958462877542908344466484620143493087757992490254884489250046990082183442784712511137583559499587944299797803025211498767004893856183608774679921787537267566144936122459430109997700612308293568667633724121071887661855241525432977430004724756761866565527971688879386605822052014324814949104752755569860864050469489931485606667637839210256457606920862250934345675923371178836529690911353298713741803879270809221056418330248052449785012456361629915291688629279825757402281503967189994651406842273073833802357610310788422566360472757598649703540556127009121531542905348829882468656755303036846928073051283325730947937792212764819121002690448439338095811131772294124959717251304184835232531267834717827015670687129828559619102214313605960731356132911743734357288392415969697467497472163801277365465518001817181956544676011041980582376774444862798509447890932567311263346373104090594249207578618870027198078418239249152833403829163277692254654511153103658045021310283452262585442773710385953732101136028108701364905268423585677130109728049319920631156055024157723929503890016995843199270856849270549132171284014666761579261973605421399739680191242414510459938135349436669049587149242600976250558873289201788445353356563399266531215449376620002240626374959462365707277332161514334676729950148268159531647422639276910793408487750877502900166215580708868798010333505824738094164658770266540298791066853363884668060248723493092114958769387912210466544017193940916653966255785742930722236989741935280262698250423383374204850385580450550835915622618010115116231257952273347648110774294894955142674828681382158667867370013680813760761029361976824061196938231501982538101787836510081441292618341927433327150857721895646432666015892520355546458075562291038220873328870360462921322372453231230489517180070628548541281223745807877126907440010121838158174833077727364524554268653656840260549540954402437775396310089946299468938523144477259746230466389609596671981076183773464087740062202952929168216027464999579581670995957071879864898562981605574376081458544201607977050415817670896524391521037588453694741403929760395095072617246008804883528370386223951148039091626270200697382082346712869236138165787564118429754009553213855214937952203389017658763482032690350582892891721318353841675409716917119973410926296080564296498066881193169257834507635617897262019096508191959528476263216787131576367411493514806914223642894075898142605453149577749280277383127305386149019610697593246661328477367214884070759901171364415844211457707780311087102475330485855099729104628582416125651930834587074938935681031515038990731909717648787093429750543413446726758163196581445952792440439839477621829566987739047228121822190421461479986691908990509504177933563865840607234538838999695639964598825981496190938496835063079635244374402011006052739531792738553175382796169134820207987639683952962814215764701580589858322512475664503204752750204736834272662518304878564944538356439563539451863180029681185112696210619779546808915072185258702850780954284844536390720009118122179860947263444960774924259944034695839786431957822602030131644558826286379252917389414622970527780115248155056320895722166766805477024831401261522924238358347707243121998143844592471148766245649748580155462298829840772238754516862295260214604667382858521126866857406890028693981851987533127491013493672445340938047741723156804848732701882119939285451219160555304452202816016405084163140329521767412880812807212393634993796238144883745147858590079310845537782406586973039991381946595855957273953409402160123156498395169456110305455603827612901818283903748745909745204445906811992668121103816450856090254890825482975652130944420759446934514592877158898418651179883732708065253232450267602761447957009679433391732510357004852868351342432549788684514855728474304427795418191132664284680600039013785163346260450527810748481206035089483645498201187517571903924072749556082662977937185292495068645710824328108914961928288614860559473464657745142567477881082483291045313041337732128724338266237255074633134365809739966595435492346753339925602042268515953965509383211531106419455231650257739420605960758317628448750566606503416630872915524109235988610966979955824865100240598760973563102577240019033600272509039411228174031531031109324812638950185683898832225308385118771640216074902872702479888036345770754352996375805378972491339065466772672365422868528958424569851143146732203413556579960740982298581122363643792059721695975027607782150290446777706127075844482582278554100086216053349914564329097390341420191320491384499190073349294863768362737483064830691697904073272059494741894181033415243142798063599585720501224653086617704935102859960026240204639715927490055148758508217645572455660960770093017031694771191135494611155442017611224789714635226623730196363633018977503709419725361217762658261982588045729945527766741148843731800288762912057179623127129372565974705200052544978605253596382886028285766859559560077815193376239080835232934696861401693206671028046601178100480063245066856732927603651807705394291961818050199171737954701108006310963107825556600940874267835517546445592952083584485580647350674062819063540167312406992148326703719555803006686314612963167002550082503201255257809536797012148030104492118044499433957892959695566940326269803802225379445296722011767474545358685869149241313617192763682848021789797682406906380085889080946822635871044454397451822502314188535927650819068880670663479115799436612647103738845510099396071799221035640213317011383812630513935622042320627058712067069774918340771478833157159171972653557790133357445435649157794200998250550708061502992041359513442565436529466035359882192922735158957795893761137600785289288480696310568823395142458397694212196925975896960687980951832054602879702836541811350222296389657834019615894317783184580605422994379407448740280179967446639325627536349913615072632678260196685043458981982554372945970636441184790735559084206116884961101152517766831666638702121520333312408967251672195664861761801808547964517970151246712759472319207622530862441166874654838131174422624989524813106867120164466988910157186728409867433754431668964575483557588962169600855817236707292858458416605676990958329773679767857855824713981171135011028128830470682039923671644507110485480110736905767803217728461018606974286559102747487719891076000437780329751383993784193396731126230733355267806983559905942769828673498517739903758544858072594642680923717799405045813067375441074347695132681325532153330133403216802324848020344950504490084554070334559059320189338794135332206525331838684364027310390506091876963916758647817485174287623851504027401142901709503927329757575723063325491499937115242194665247739994782030302092150380197907987517162734827900329449523428832438061298635919236126770684165010797656157350604582211773383356417541204147845909380444880858464495547924355444728384710612057939543416561548855049587589386211646708965710153319689921254127455493438217848830342758473108535068884384887148151925218069073226547514731003792628717417170677464042524741097250343270468865315646382896161795388871712319050240732048519160173283234022768268961529027205276681941161794175545779032294181267862005686936862705213649121238720847418074209092583566848120504413750588608112139038887498067236426650422745621904251361096254904136848563368300705304845598797873433727609850502969607937291434573806185358254633434101552328205171514341115759869849714032835228531914253677340410596199425974386501982596349536084064906862558890767011091834671007012737827048862931614642945707011478822905629095846170853834581094288671942859010828358804936116514030666667600235519138383219835307728420889803208997934543471709173794364460810278179726028112066734787203254922961750354584983552087360771646027370813444421745332169402923273619866234991326434980503384931981205832895966143491170337587853205087340156598417202014573308026433264715094681625657854327815236729221431244687491182579330665933552257606831362681010168561344621400435784066220854012897217460721157980719057936390561740008543621696737021119964407587936379831540028463515901545172998982181832991416758191420881600283211957434979086216414665361023535978618610354527802151766648830783523572256826070960599403500525776397927895354864189092634503014979634217095044835769668763832906806092720425969974218218830041256079115063194754407455454106218431008679912593752277770071614615264907715520611087859476368144523965466541085064471076369577885747669269879776857863578204474887159608067641232768191869699948928138854950525122781505343731371188902051591711419863072264714328117486312127680790321039109690061522719484018711409504482397871574664810241285931841037933376519209691071871906705217856808850538491055226843007818197212884710127631237145590946415420460784470709453820410464957969590157679709247399817005196611532328674155215160098489713501768306573943080113340580523277544644668670106994028401425185462801090860361944392826425971133175114821307515135157428054974402386201348976024448992824352269204201773023880675439407512824446897640420867097901209204936438601008389193066645773565299617221111671648617117972234462583782049429991416519842256840934056158268288300107070840328825976774245027189678793680260894250753074936242375957460330473962664157472459834363236456036771982048386437570252392404342882644718894569710247027983020148822053639810708524666153221114266983195873166353530664251195551186046322634865922870399157634826044073433119281537194686238258257500741274084100347778560895499314476550451579820026812848002733700068619568629514988136083035214172949867330365500812099840488930623064036141531573776745922423932379195451260087086285488957981728557433616490852556296954837730554211154302838023526751012411389839874936430724442171835411414941269796479406002913603251119429783195539506064694159675871361712512446806420506560622923315374532230834514054829753899790584934848761082650815113826553043909766419789186835010624349457778242310240587806123119693182923608019335983686763914851652216936372039890654021631266880676593108966647655706621992816078223368945755520134190416872202287277446116569016781692280703466619481151316917563861190765645020945449864764604390723744123987619191988464790843511508903393685745152355065904132675962085604647897429469806793103789699581594855727282314215135326265782907920933051517474525619945540783566655196213945096146355426939619459192491237224986584645737911229250507562345097705028138020464178566464528237214382921721981147221766753544490632121075459032843250510009432226597454932607410604472329420042778965406609444664857327637117952204823499683204770275028253753581034551655894000979928311863774928933531619333410998461792019027302658613557799692692366776829771821414644986164290717516704073933258057611225985051794546367971563477585647907335185048691645228778468292548242687577451969588349045515144932176995327877738968700842268598145471702369874875658805731972722900783836663856356063360878274300160359111522323266468396130514481169570556267090852608348232594047676796716538821120833919149306674211916177155741472368600472797830577072930960198239659157171783786501939070644225319473443021765689555874394590890214230505934448923241114900947919577446809223453329780704657946360539871725928974707845639300409129817734941308824988432577952895323977733589908183177674952441499434477994388700003263318454394717065244479299886010504120899588995902045114283433506374972523134978192559521180849287684116372747795285562015642085959273909818281957438416374726891808377595622754740392788165484019772160939441058852497522104454394090025951210520499295562219257619574689656013493004950038818716265982057866628365037376809148164136719506271844591349580178393694656352981487633846021939686530551728574382544159201881227671350732092287367394064591470809914589700194070958411093219110610551952224547445240126680336117639749924038479616968055073636755332597138562234207374106202314078668969115412929924230719918519298948772638666802501291038766303241598320584727396670083522682243940862873450091543322340323039140496408594780695589500320917397822328607822280074610842833414511695206831999965623544764677990588807113912885478513533017965107315654193306624096842854015972697622947237585485497630896345669107030521952367896053613617224183259961077452768087998090912667128712816190640920615856947691907287527888312183248845153680986594071158731384653824158442311572832522926362499845324270031522658852140311254782786394750876935019783661742317523329551705060981136459462971225587326619689665714905931219925939955759025279538402112392265671212880689580826072471186094563316160037322761487229739703032344693651151015936855393393041280373929148147732010766415416327309833068021035718460206936859929158448815482108165771603982108782876570003066200282849562071411022482060939483805358211677847479899680101700153036685035121278438313849869785600403259092167187814820250553386641651054036740527571362944402545704718756652258374937241250236766380620887905749048002382423017978873371307692732406073329648163370338934719606688184626758410514009993025645723694969597805982633750280207309987072917337843801623414308668624031239795058225168133285207683059204947826737340383046252086570312196074929096566241717103201700256589297271182896989842086437280901456649895024761088852849625638131870239234555099531066014915796943438383204787933739823857491628580785907342513518709568742376333654332613498937459054580575267254649636736997271273939601908573718262767026693078024189217383801060780463127038083136921631879517074735731575398540667283472335944404623423653079479406728764605267992456159094308999608017134143565701699552875590815668729471720277711835716620655081332515980276619419979751329747071248998097772532938876099484590318305429059256480531947769487167251268269646434432156610280069795317106525423077541653783797333489890387518580771240043845554077407711016941534720688873429286158416605020372366911930030181088309024178088964856987969513403523294429633123036840332283233511405997349123162349445744653511269016111995333385483568678999866980478413699195727914333725247431457997936936481340596687813079390702526489365015089756856588010296272211780862071651659099327162214073099365706632994456029733583293230465157376715627276645825546710827988909816250357977329219577849718170260012063894064280988435406084756029476623814699077370876137633159721820486463383735077453803480490641046825672063436748246297388990441417728480403943347384232060319934114846692764581654657484657508658058884605603836413922075231125587367426524965384715933151324040865635800034362934821049156609167761038618543475836135685479191737500974720904299503541449748189204416652022139023431823836709079245075312886834429804763514812931477842152379919521105178300099306841042978003582808920831548494823395157101652312094179402121756301650585658285016409575540278239615363281249258746035264744993553115577898424635770751355173651508249417659916839515376770499451888381183949478021382244270891203482716584658079704345696299289468118250024139464193821329345275774465677969927681459127413200143815174624337986774360651047017092505359401287806066761440218869202774403926729058627496765156211492183974208639526584569389514504867999377481947024504537597742771850421668430528657718545484419938039308282560862120387010449858970885258376950292004770716877838730804209963441346513054743269058093254119113865268999477757285172472292517236675068423983186106099893408551690744161655873541602094741367489977143748407922491296044995357339173106072726003518245110119410647664719188676483966090153614491534370976993822845570862939019348925700655551496812643392254613214659702446854965065712114251660424777673429265732762930004298826385320374324963332652901170180661915295273540235405276582572411403540524555818377596380115355511891741923221080839845841106569327130011011333532310342078899445224227511597464346729002882924224676260061035071314841346733234868496690896390457016939678513092038212015794514988798033008221311437023182811918080622501372032126057649925429017265803783720959579412593024152692261693477857940542391702268315818192130844389609378003464309472381291881943791711470917249062871092797774674960961617672183969555351166332795344469471815471295589003890735770144655329404401209311296092412574754884542312348415186418135570464228404662802789533601525326385358919764085213582935191356293524289448081561187548977857720425922659138025823504551905284572220446844634315852598066759651025842135974899740548255634016445566008354400529066847023289065530070995978496209039650542549652318195618212908938553650283398376692243212242119430551511272066213396578428199544233069553753861589013295219209975962707410658527657385612835016307464505432908166827804478014179998772423564612815363834933349062662615099619329394340186040332117411344495162618099455307998779344032082746465478962834103742515058186403268324337404456135604483126373645965478543193686647023977326829826901248956375735090189092159123085218366945810978278461878333283960574212296565141240386317222944727674336459671703415512234240989778069987559574735141538743448990577044016124891376792611300993749568050511429152775664981854782371532593785752530168746079028008428105092857089355898772787359019126412417007243919322360859915873590868668881001770696250465672571421018381231375945126489409870100153698569992892017662072169970938994146925642218694573815659828458971474336441011497677657728004056409007506332729348999907242213460187577862950497128803173233825614275569468349116229306942448793701729103655501916072509611717011752163122110917124011976607500437666878700987997360150316922752970230624028427625558225699884721458199167459143526695353051143059608620212834744521814891139931565270129612879881240608256774258079405150773951554225854010649583348708247949861001928312903990526069683360942816872402104899950452440543010788136682931547195731890135367539487074891688759561993587029096920903715535326328112595504990825037444820655181331974124369522567566573794374812750654227216519194464284963542288391132770455342174967501445262875376372377471034108910546907779878264090004094288126209016045397579687890179893968178359996291630754382489602419734169690072833032522205031876823287897330404881205761792864214498122724846440870846855186691688361459117447377140830404587501468769080438643470096069688059067446704367222454372487507711068061887752249397306773395989950001247463974202317801165531317865338376095468139994500891656287234191420208082983423351159271166057507052213072259089070460016555406534275361777566113577413635286754045212262569675107143083791455087674169336165443976040384216896813277336180477849238798621869992123762557928303434501715193338059059404422018916273681725793288245150699729452313778778742461442093324599291738977165787311216799153102461332503288743757150840954613058150358163193217085935904419310525883962607184537430284046023766147510630889731545234485677959853178996043343136554291778192386513226937791468217362738414821543458411886224402923519107272949365577367923293151580120835964335758919333378007328840216793830895211937376901887522507122260657698202532270467309482153300990300445499465646557434438890254021458675556141492008300263819119289202872459097552491659357835230832186658612231953034006248296058029221952788322203007934780580569916827589381952202268423647253173573733866735154476038286356685146331250466276963009216919227238259456526971967773265062173534089520780325084485169206154142611873012311149908538118511778981987711384827216707067815027182522330665082225996356911008588703271154522548959737857147607378649645211949850094766973499325673337000314090604575599852207616052494506786564692516523216316174032582537212371358085653834273163623250631470841227801091551083027061624212847411887019621306471884217457520019332979388792109156423997677241730136683549638973589993375847421185522333203889583491432350059328871891284085049407303074890373330959906455906457907635523359040509682958347778109488317696289472652022681735829677554243391146481220133035605518252565424312842839423656398698861347010212197794680716637349711071391473968874253558208820581940406986002773790277313870794519883348278366583129093850948355497422628441427705936863823055653536588950306832593644928810018672224022268078895187112965166203578882518771054641208734263128355844850758360586767849934029343353382847036055098179400030236854914733235859281971747625699473465259158068316620840203977770938458447436383187640071442636028251288206998092875058063598538679543532512643582656767496609048984851161455016814805731561210003717197528246978971410460285316696405080885317548776965282138777183809538498297633374506689494881765854299651282102340188322106112171155779370932638014339737595789435174284921778373629559002526086263165244359812580423319843453469126919351751613953434580514909107446733006350423428554781075170427124190100956575198911853358010209112074559517380711012763283722806890164564345673395019354442328571018442357922766835688065131171497428929500061935240759827182993930429007099820179056007662835194738462675216515717620896806430738974987279047199011952414453828505341043374940370279464633697993563336250164689244674076437832692963245311296692056424055177328017151619483103655278230533622284096124750785163863546010115719677705991252450596400507735804368685969446113913113182382157332802318059770133822491817069975853275354630363918020570090537370253763326757524925039278946324104395260807629656067373155797876309464434470486267058022970412555942882047947102645485317987277759894772883510733078770011355243441902782151837184877628592512884882922976127924443536434227197783359577421704230813346234931662668439854921172667322505985138420013031236370092779368807497431018426624590318834988537165828168475147764998641345451903643598652754362862152055250947649544434088353211568609372161290152046384990540708795274153097655059089621978366647456235686895631215158150809888250839039980918271334831428594598182432137389980700161711414642559798333276742224516022491920347652058910881892861754754279406354089140047343595862496149002981125921755916303901571787399266423824469999228966717513654473600318076838239929112818759120098366843094539406767541957252654289243108649638615851728264146446547462867673255058822828655048853916582680423283594465748313246658663020861969709555283490302747188664407752086923547280972321092106269878332965504745803015531999707800129980136710940170573034236182551129263016086562409912542116362043668761332677039048758669805498510699906584954445039769651809639957119952344646053688140268064125025973469747092413070095176413180671744705460439105449910791780442365478894314158634473821014885204894931542678828376167304318127819905954973911085265812744049974557903387860341598700406454551090112789926050897530408854598891516826322365261548540121512283084385946511987674495048585053213765803464143064226971709911481086057865939102509243117193311800718270807950682687584953011569595948313631024498353264818940715624944419231919215820759101310672680558072647343625285030586984152946743641892872105362232576433397642596730572034464390047713677785859644838706622736587306125897124436510769100101670705930780391277944722960833346642498823107760208808489243676929186295448607859197489880247720036577528181440337395600892943582582807023027954603100186141761702056531447704127750552185386472307588238277832646152625368925758613734706047731406169136291691291716271648022959045701227128716487873575101586055997827298683012977271659355880939902955578094062111000633747280546735873357642752745388162010175563254839269558952423474367803444570358937076986683871744072641748648316643276901417402697530132947930030620046286172032300708269676855651234238739761937921460759831064913612439663711278115479048041990689456262625462153335383191026220556957878614593977485570196304322088615390342301701484427309925711379701204352110900956583345041367155479778545696591257841402170959337931289182343763843811744498783971405095507056409854885915806855757807052974396557842436612530180914344158934746013673403882266127115254408957002724647962177516546311609457023594711525356637815185512258209142468920340934237174392223156578785378928495207442128176497409938450806050563987136973427408911031880564084579898589923245097662845544776880319771273845365125339974799727401767986710649107977767807746911016656747331772651797464009544289365376419663518086088337454059180660285080203495697114037537550283275500855613137981399139251015664296783507114512122804118741857019733819594465024854537461953145944520160827512587390154855235946659235550591640190032101947880227602531021918875917533474352569163515379691355405248703448387627190181654871191135541672506256499966321999103040727614056535767633580544851934247911916241199072219477930615031532657832838069976923580980231951928142233321574625897688845308818690852279694554639816585525288971792490497806262618697791978789942583169335366051961291580620831484382792681268334434249257487578461940225930344504530406895844674177284811850687637115403801623850762027310025068699322739604502345198452925520393594378163626414603478358849371622009254391693002232659578928487181280953648480742238902661148170271194258552727683053816473343951629400283981682167942819411807210352676611187525100892112714456211851028239584068752040650813188799817332947070572136359313349384318064313480635993943069956071527847716693862001728619716644850051899762044480213212973899133078696674550786394578733911170142255485326830152019121805807138125703938731972367391147197219757889016345073636952627823515374219741542176965742686444994122355616592606251960989524408249346284687612865097257465116286204871871319909087368615086618430547776133086433227646051793315755257501986089956103115265171625059312102887492362246906008950785913365419126508223582746658759773862993845992708326692852844756450908732926921257123325565175637130802645335906896761948718028598967041400997790084494298701395391879010256776009709540291869324519403311744203256269297721965814344096930136917646377369658373223110097307695693999308591590667770850241144658468520824208340182655132402090519537621338150933442511283775586471920313991452302817325546236430626429237187001218310995407965160401041643738684743228208907843759524323264418339717532585403074970245319863530195613376728070977909104336684605936913316089437474070549165546924694156388220959680735962617881156629075672517416379169207930350679909217149090514907237791073874830101014552694883323332750914079041122757722976554522907286165824334158769998283198444271467962751434212290723109924416469450817087474307186879910611832233488462544204469483936233868835596347555907164075175627127485708130759142037240023745053356301718556561525799142514960627224695131971167595955489505195093526644381585916694049254258335477518540786641987767538309451330070632263965769630906375550870990039878495980393492333593525767560465818345245353431265070820260525737341789012988496316192434635309264417612506489974893341664073923715891980841592389755469747933718329938622353112601851352731676529502291421870849963905912772963038268063693628646922636644305116035971750346534183290181635986982388883518263173684184669446090368775058137873401680273564550592397165910371616732132775159377729915273734165283437527981019344315632151618697628741256485626354099680630907870437268784768621086713970673444772816020182994039109138140844077122052499741263703870560567279082169609682374627144591199635529938904921604402353888693947512669104269591929778712901536783116996118731733494162812157982550714645764918565581934769107102767272113068364699991523480092630355279346054813702154048115133620196033951743927951942858981043169517110346488736861409089355400603574804126472593283732992935885363407274698680414858067889076311455767574865213396163013472953901632230250459217866373341883404164862444756632066823816892697223453231826650744630462320149450206373537384137423425887893851414367235134656306909982557734393681762778249325100088996211797268569050820680719392795708083493157469937603397978703578829778672743307612319505142174158632883826524213366788644243318912829115336271432366106140238053153482532512859425644884859843539929182142341132513056572775108325528408820730468223380219666415827065961010446558430101605955579452845799875814243967421542945986189664968963084911412805363795187371020518489414422448933795893683758371384859588355966538743551053390396990810108192715420445370616531309681095625755340258455744636356970353700928905581798643392134879391572625893608721994204126797800773409885625256124691743814041566195173086715177564125953111820591186127711177459530749023676190625214999655065281781375983438109823631365551707815773909625741128148406907988382615037432793734807449091711843240765798691196276047767665205933262602357607848286045019792329889085860044848323260268685099726107517019484924874870999184711775980104048247485380633611687382361640593842278633817439514687083329540685043907374016665879960798048876819283748227440028061985472015415046027941142306134221718092219438898782258651655164312982051674097495486845305008066192857936344312865887974749110937804291407878326437658834943634374919052101198187275720308255605334802283972488733528555680767038507783061998641467144561869682778224428010430693251192601383808023739155157938908464175901550960587184787156693150334721036372633701114049677049711903749211014862247702538752784285133178970774432259358523893926608712104750453714338814121559822101522844571927468553107816522009392101545128079137076884803694180428597532417811112076808385105106089136663022126339199330143005144512292330020392670172446798292979738463790089830467336007671469245255792019257122402593403351697006031482006948568917047107205064497566800129526472637494981814137366442955628263933926554795321033752418258633530328396561046049794850708457852418746395924796809849883594247416152969969263313441570735629861599246015024239133100887934651458847876259383242033521981448403697250587611585601920956597179844407629264139825083150911670309205676945097619363542866807278418241310034567935912623942784903022125280880709548923881071277581874146288000447084290102864329045207193622580881962530405540718571852608066080104814698888258075777496615168962642656918648941840186803884287459705029857011797487189767618695931240806640944558573800402374404269678190096316407279432398287982713454084560143601475056415973829356729260362111243325555901836850590903755892452875304513777634451989380936019199501632170832053966591529510040307656131628745011495638860165169507034285058249714235978616580899024644011780608737204872673297617150518791371347145126125746341194733853616165800970500236627587751845818226252048425623192507400654323559389010438653600619921752953226998913281453361146231643021314655415667146652692925909245135670083904780547305537516433077490598893343719541824946911732606305712951534789351189830442053684094070122579630452145323892923583462041464185876426488162996895482261617642465343960936325723932299055106085219790046853290806542773945509177526779056367900202789385614957348884847738538538810401794555897966605025478044426054174655766015956593169248581282367679059840278564017540815187859768888739163998029766167092912397599132288651575165425696764176769227144879559848017064560618551458089881606568605611844367690309446587873533462879394618402152499179817111840104623555655633180124757836732545432442008397047439528214808264835853888077827248610552208066750702130949169287995585936758613474988188206363837822299112879492482422617473307642950825431491178097951389629590650777713479129752319536445522469446722095355628272281317586596311149941949958936362597774107424005911504753138915955474615166919993980066464829247164717592148497166882378815499657615491871540552030953837795143113348032606560951928869440905855909875184960053038107712944535656336207243827943415704578147129236711292833232191564077112507314570158297129353697940280038304100925791223919631912443828399414753880346186210073255920035765428548303082036223658238651968911056128293626500931864997023844020159731443112966570583533158455200008908972012265700714654733821656317607992275706790143893811744670790470706050343897096322415532268080446419002148491632969334502228582035839468250879459123067555776842648650782165576172025101045001801480187222118447757442141456810834627825070329002644165585892178606445576403682129584589946088136175913022455732022106768750048519479611669056444863051123999091387835327480030049704169524719239564061689914687837954115487550144934966054186148434992236119898363502040131932611864165629182127328059159606490979017546665442566527198455245897957204223850605852706732961776320274884910496477930522177752932074259610869893498521682704456885748607954265386555297351933551794372630036766724295291442331893760959466127286416236301983246769679855844548939811288615162773590263707922364634825935936600258901497790420465240882295775801455347044334064400662031662284365087049711913247376653810190955573229287691604195804152033092749480772695642752754665973565738727322306424248495152688583747851658795087221013563619726910068536092746904788773037901414087386990781410970443290863934112768889637863589292175352755681820363313916783499211482641958985990573907710801787687701407921212688677661680544268453989187969313369053072511393932245914603641652988101252893945632502998569991715373658429484718035516217883024581958503626725569777237933055909999730843895992536901725471454800426974848861283701893990712492462642133761134128554761609975083292220991128181648244647514190034669419190557986206024858148171574539566375073257695840098918041389713782659496667322935666344324157687155819280252464976223410727387682862457742976802151996337082698502640702177811843215022619645788045255759710206449518673554466639910454356258664388930694943984749574232829330545800675223328106631692222326188899043245168116057892300486447939674231873061483231292558245237142526461388699837096514199782662673962137181731453776704154495586626205301749732974118060042664440131229172377437830117204787839382606942577687936834273705582835031609159267881645045429737418985909941256883976990202821076328073053803762600775920780346618656953574764688546091453599361363660343227384610285662866864744487449305615335425980130904127077657694814617140820942792723374028727200747976682030561782417111972665699056451164312249516096756382416563002301359038198649833789812247060991533335211954392843927577589928003513882658303871551888114401221113151356627043736942642709555252796109226917413162393971304421888177026208964770413792785426373504596242568611630962012857317578860261204830782952928904375060124876706490320175204699361682102504573653360152943638265576312504905003723366209304652018530953551200530762921856967287807780773147141310146399387806601384981094973984354370382091713033973091546095716254784881013591004302451245097674544552663754871076747365157092538966866746253417343749298397845799735821509743310710123710047384249416418707787461688490624911240145360139065434030911233115163904434176020173105943964258068671711754793381516001030157465602488384988644456334453915135557577151302466714026100991479918761979620852525647068452081635582227690977451660826355212879621537114611526651195004017569039706350501921785919037896841716689399183712632294082952201541222179953117524556058838553907422371885443768785429342141693125526409387609304277292592588359267849155831398225812732643859731981326605386662182626960415021381358041933450330820595735467799805628369884796528593922678683849190475000273273637636498444084216917084146799528014534869648563294104154926904612499899305075475587460261935814134627512379238812773302272507620366670527970286870220881919801937292410386876179373135327174377173716075945090041616637559935853381074473685899010354746844057786691490458804167274040369630702739635529976602177301903064910683052059459495088485338831281551669141100814335263114790723443254300325728198490979723150697454936192541550518961899239303701679116340574828935014613514839256807692517396144504388171858466550402212290512271840593998694036380303937965337726410034118370812653422420431830698223344732579350155414603853292231207342394169159183837393230542726489125121057253903890392085574234480655976139496366540464155089679546926868889396431203434732386045758275582405423752260005986710056955073337091638036593465950192390618925857836576009884938059106595478267195462848179239744456880014821973826187449309250151251644058073258477737894727317000331598004701148409702881152495974713473725614866803822011420971917979906145962833860807059842624407518474288436726777196606270139433552187772817281233882212307413944509717822041392735073418265496078588375010837183236878571794965266150247940951344431252977705295068048651594990439266669329298512613481222115052037405107471811074154557432454987294731733986778369919309506479154497741946535977869809753431078885033793597451420833540171562659425202823023560090294697741525420358081682598362166625044734370526260952572805979742131214006031464294536889067971164717145433261736376737028172365176769539228773507896791369826533510311961614732633288984197083041880759098320841533808644571488826097584721625198096162973925589884787741015759171567411828331894451988600127992219591415060088309593603990475640881397894692808613910197987420016464944097300037389548776337344556670786435586568058645299427410556525768943204705543223732907142137941605171850036749041170217386699578127231956337085831647172241266124333925846794762140533343270977044940822036556393230892764617409098223978972513353479861745042142855845375045954592307569095878186707123960972382693298196210801830299372391203697703265187282192523435560681228812749498172939194500957208196321949420488629033945104678850277014703213967801299785926138621838386422575593156829556246059587847962807111063531840784407095596353402904805313726592068598680041871042651883614765174659991915730715418380150249060133243520530175525161029332890845601022024422572362770896918180575776133532683619620578146696613403901232801339019800843529031141340370336702648808086022786040507593531557634567822789476871174733984794479356451125216402662555983878046191872590890983615082649622129016585372258093341377593807335280635711371985432468024961046035006569506896055032824831709498284594181325145991737548133509478596576306670646889483138186132590198797412309215749438744118896880660262765367664254816817660517529023974669000008891312544254589618550575431682296103727993632673549075071547323787664093467534085658209015918129673768573870193563888512079960441546276599881055239656620175529951905037731434315623207212502250964040111230939693632835224309583789218857456451536880316088348564656086984046057481124639685483538201821976123820399769762357193516528928992431134156116911813301288760379836824785314341641023591282359010277435824694733361046501921416339407247521065502558018838489109476220105816632060312012490274343554128301337539417996568177580520296896616407090465217824243205084558670717505160209254356920454630760848790650189026322409661451435721353418210915954486659552585571383768247131098812385359528008092971817809629422923952057944821948280147520099471873782744614080177182565042224917403701561735192430548236592230535934805561092197322785691541801133802260432597235990783187429401289740260297320588949991614316612011692900420054791761092916991785068975031468517404818940876993143436902191579885281739157076000683127226651260238602365116379331995526840215456505880579750858113370926933201003369092056980081317249518354848932550216544256289423132555526591755476182921600158399863961415795485221188726489571031623876139601552337305903971710205246002875432881795904385438594681465444142537871142667538819458612695392302620207941861450093662207651078656193684225732545204848428866227731921784449330016706135836047742122240539935373072264372347122800114496666310488867307779694502457958403169940974870253938769959017511676947027285652362143198179408433385799366089327447566083955100568102302829870294784181902759394281312998573333071416251079053948416763602444746740406598092468018129251836401667204227072239837558775030345457766978719095281388107645881896046437400079968160958309579697775573819104981478797188392826195182022252247880288277868063639671318893794889128057164751411237479946186107253566891280704490820303109259379761385723480258315733939360202280857341854929578295742755363605452973592815160715219874711027971694231269097891135926525829914668556624734847623838207598406290082652337418942874607458308608299103594485730071369554075692542569188548734668428101916211743618633578405190894347972764426772818172195396278556859853219813543302986771971944035357269365010429952941607519092624194134009487671178034117702057461325498553040327242300373187386044242884471090925251606875047333231021781391706249478871910808435490753934945957309251061819515080395469384902231616288155785907680349481781550525207769750496426172786547553963886079726030699773293810589783168668599133977284908858030079452435050019060025265467654981514743163533202476596048032411485050337573026479379645351878347782431618176691819899541365237214396750810281294720544015509739609813277333397864878341399926301430671738526820961857039099195366913508442307334771093883384667712405285181345679771304645244287691184614011037155081362917537498361627330470816422603950820126152844228900271648239798513458422879177648265401756112663244945152093323371959313304311637522671774071033436362788459162421554266460613364168841888882378634906850008256418699302077032872663786620504911081644242963848445673485094669053943135605177078324838665633658299773135985042777768365983613156799402619092873268725318729625131456361542288708039629395673413549773569711979520189204085656313511971709076384883099843574558504138085590969049802877760415372306584068307981064529545243251980833791108043029735026477669878625509458349191800792210282436031660472420928307221400504497092138931558363267537389412530343169246301787342791854926913722029840054675892914451738601819693502129791325061450778971393491303638008920312426507257256485265160502781119651822981379820691035645554316568796121464965800426173922818983989262395010855731222663418867537950390862763492914163363984480419889717646725061346696036339161270716585458797251095952745312318203657175098542980437326838116269215815050559358388651891434282834672528955734777596631581978711641139262568875502825587393700084889117368488074970719504456380786265512402710995257010424753194929324743770099870017169523148058183148843321223940255412588584209828787966007630672949189942913506631594923039060907140370672914387814811003367193009515513846538291895041107130848624745366498598492241533759942359537116539516444482092630088886436848300130176286848146815216266943133650774590348364419320116949994197026440522923511701129441057617434140599553739894324262135441342511690539422947972272112894722363889975996608323881601776935158217846422955907190969152548140603014437486021336841491098647088315038832188603080059821626225696157937940285443252671829058577933522760805280652978366670614100041111643903902610768029119286635094761209035642874031184398517693128582080751436811217437179977399252018864525614521929289214372964525477984826736896529625865733244216869846054939153796695241322455421095609808895724902667414018212305012477917266078404689069813530439301990390588564031162866378311985638799943108350677904290078368273337265472514501261859672480696144166183380766104908613618083525406111018235169019902251387310494669087384306562712984702929608341078871757070848447904806437930661207834801685851590135778520538188985155457608510267182338918472266619044647743814152445076377461002862272044911307731276969339891212611631950682874626662209076917720876359616001604875082038887687791716781712995349796287914124884473166630092941939788009359327727751495290689492109363608197885060021084394084871611707804236016177774396984863519412516710064836740188122110801995769854660573014889070617513976145071767769363777552831771766189712279216943073028016108501472298695028604356369509405549257945999086245003060154395806271975106909394405190264745940474506968947244918392163943515568800025627431911091694615502323639172844386522071090424926645254900406288053278252263557135030781148947462838367442637215191431033987748272234879099451994364254186450021676753604708886619151045555509315884519108863642489164074584466898094095634018779301818323058070580414481604989698935753491583720513841136710802578173595290898753403307684328588311205587539282432765884764719750672373129210241600280926644242596022800246427257815688033080810169956702327048996881484962788039939108835923696771475415553955113110118092162521224544212489710011074905234570662732734682491774633571455420449429689966885578845617463257400710130281237988835245831742560676063142619402436978183243249818906777590737326111138879592883423012335841992882000547356306608553611553912665079151462344906389276651895827134250924122939671344330241908897327593590960832257187215914705829679853774143095769263321123991522458453699428091206577755941321208271959881428439525547058858329555786608000825119310211954022231948693681034488370323369403192686728799666033309530218713257789030700060200287327953812099289948519398899419970148048515907144800197696262011033672314767025596022640827312620725212256353970119027831075743498992468509209743057073119658066219500261314049168649103457994628181132551519539972733920521986367785520742518338633636878486792231808981357297185377197226834832752152441925995282170055277975071969624707560027881312095761073081121557206560384404153251072819988370399041474131959553645838913509378979042033348260576290147392022776913404799281905043444056809355434804253760852179367474475463662801378806947766827493139592794145205962061825338933928374935073052650062899521205675277752684428483433283672479404532588948196047413516889818689032820627103550957576340695267124878889530074981447357812098074245657532711554073034495280007161133823294364513142677241653056974396061683904550211131798962697158574126687411294865953733975872666995525857826812028614755840541548976563655862876693675459895873408508406624299630917574851291085700366080577554281630383269705984028889029125329548637747974614546501143026887259064358207566734035493802689064863381196043445098247359373076634114016754799371441632516170148952262782612371338497387453880100983734109591219721611949985748353308332668775522838939615284977742488394805976445075116021616407866030847906459170497330081199612756807401978435123950511043155343995834395557704887514358067463078234324987507196532289372056366339814010610040654078341428503314228567145201268048835844914573965397949065752613607559442293249505049982127003321011185328563700726313765958669708337549634576832600173947288612326972303236177177487154389216404023601813963382894698533803403021529058467644855905485665701550036217531953254601900304375434926432595773871450629958282885838632871484649183355692866258674782152468845984521119410817245242610437203815064124319520038199127120547784722959044057934919643909068613971348532248116070530794670166728906038444869772402361800989773667636064132217672813622204028352760378078200090863052196881088341114334163310390751417789332008432557483125313959707397649441931931989450964463223658944422294556231559794968152832869834491255446188677845472688978159263582037612863627643730100267603918453673438924899464627626393937137898377401425136956889881349086833424172696998827601970810430129732689167911618980086337984445393858830440590932850168187318483770902533874853959905748841219249603734872305276389905292809721763122588049068001155675639649561146043729138205967969892654496873606954512062010788682010266350046727849511361191330291182160415541870433462154691313609277522519118450094601658128517916008517592972706981439897717966753962714208533646016036571870883760001025214632035079689829575380870134854827806146708441543780677738543839536663982688961935283427600379982186472843753663107416238413372732768944600065751616449168381461341298559936241515763622489531836468460274362705391240245460302592958495015025203917517559526173938768523096875060843040257377715667279827532459740063365312016369127374266226920440007088235775347138527541866908659934405230298892941157887244351998210602635832479153204793896062982407976690866350215926816555483954438516904618751553595056166970137227799370828531271197189220714187094798970773257448015328298010231813219609045826915434064122563665395055128905145074675251576194265802325779796335566030085621401410769977702981797782092935923967426083008178235562213729805871034260020336260080239791898517209884660363787327638422213887885297238323889927654402866570500397621485721034987121780567285518656187438652526252389485616506283100004913464430927516840823861314868919585664095630160723956777698537721223278581271986505620582182159823845130121945936566257284069909759720520274851359956498532981828179415594412325052949180714633130957918743674970795997591356949643495334501838440972715409060038397608716867900298656542379544748268828793107162874490153248581669505597361298298160500207346959234523288039473795389383509652400009608114366759375332158256395446524531714775512587935790053246495478836020192967775347108936247147085994452960768815459875904114184993221737624146241744441616240535699124463109019916984142107460365994934324920352317634386546927384960395624551105602020661241409824306435169855250547864828489591974376676944580366730660923334205735552778399006668881939850953691978150671694179506496363605570676139895108557673031952601758092589682217124962057349164460322603360220102741616462113795396776032427198720735810553895165916857303974955219156378014047923924140971268667653644827255078498413151829832025654441142659100818304792244921388078566544288931338467867670825963866025567817974766691997910039274946576120292688380071999985248851578976527564945133540814925208822401506937580946211996915665242512691838247388971834836449761694516940109311695139959942254454998753243940070292561828050762938414641586255123055866528005966366801963057813949593385667996576141123172825959234280020213449967835541015721038483467709129262120491260605611114032332449815777685047303189975430550290385873133715803192405180729747376448639394300318607829829160264239563075328164574662584629317680095981077999727290884981313705621185622132158280777642030129803097659150623002135793324662856880741393992728280163617186246565305047996765606610438188003574823309150689175113298545208297933670294357359076959049435344062135036923795847327566718614005779829350073517899305173165300116164749550422267206095871811011252988919760336941923561251549087840217002864006314745310236735879664441932437003417029309260257209911873261367411022031201752960165993899320535998843846740459265544563115109444577329393044468898132903080605478778899497069093585098493426418788756141927767352896862472462000644744314040279617225138200204923837696075389789460722413643307482426641338250904896640411753507045415036004760914166168739301038111140295727332125369408874292260750177450464119145362728395073288176641923818958366923764718379013601787452220171551326680953467694745312333538279773081470377465192826460401016615693715351436112698256440208169798788003349744754407444588668924954721494362240060401847992664859022767140937706034720371087453584712194134079224547391392667234059316904338315368673168610140228245728775124744299706115158096486771180416351143864947974977391580752249168214746315262748441754000652057395984987378553698051550224560498767570026412405430428197603138805898576642174757724990181113373933697999372516592410621725172734105284593613255499544343276222411846147442132595032287769574630742426966586476228956740360159427886091796255222231281842112029038879870512971391992295037210456675402455603583755558997858242667205246788331162212513330254379949790103349797604820364137067756290223851390502582998541083833739083982659623058946343363189486820643910147899706479541793054297135944360819808809458522270849728970209062852512486474296518667744303577344650631759039251015384928622935596995901584021108981868576236174162294282764550040968698627836523183443601105811837308857671040709848433365136055127636941401654842694005401555031632899141314775605373607001871597827955008128458432644639140824780717642633787257066964784769321009048776181062728494587750059507410294256671460225564461031256818197170154156173562129996214864053833472740509134118808917406646186570399897843898885656553474211382721481556122469696864006995795526120291747923512729131546308022299397578176130915648466231306257107060800361529124192024671949221633560352679461735774247755314846791542843210916445190340625135077969683777055339430530918413550093136079595465578648819662496090012278324903376591121980445593937361264579475313756947062474741283985935087088894672882075745683815802934805339552320317514092338724919542279649624723868054144417181312770466460505054365590462084103810530165351269217654934537381460765033730105977304052236649899808198737592556718822517487516477482559887248743395755058087907365426431071290755643727938801576264966516285493482606244062027951222920587038966186774662497496876433820739771502164635926596238508242423292123884025050534462340790443672029741976541343225023759118946445826649690423784293015498024698861392470048943853388296777082362460531653734283674067860367291002811774334368684662092905740893285927053964951956617254614064579452224351521362271799116474894440286730508992954070186976829564358644731749997203342790452060126344938181462075095495729961717135290815224674174881318752284888902691760416675433894486523109804714282470987117280271073739025706584778051556803342196137812258445087722110470409437630967931727304062567114711413009727648416979371891230024819375743097219978669069969529614002849803614872818358687709319652866701033012156645023538819641480136124072676087011573221507491365911502639279325326286534964501573917946219113594700163113075655707223976383784275189219626537948964268938911712917419651966104486601495578344274634508194630520366567143018541877796732665768179575181052819858968458957312016280604023607982593324032271472318798666336118905799303109091900094547790306286597496932056284251414306965626420322874241012127595693589584627763438126156597830327082967588449181591966765776221799450898848516701755740765015805485151792519022455302410147532894235916245616991832029304951267176294012194785952922856513922954009091263877982882252938741026648630830286073447795003789083594514879812698733693444104931239071154722115994277094297762694841688705408442232628663153467824091670755201963549562910954028203455015639775282429844306472222278610967154792097041465855186777004610243150696207697881552013208271114674718879430408119668345008565070353051893991303772168249440036081457950150467220996817500340362794560829850276390965710352975565384913096752237960012919234272470586900712575343328372482179715267058468717352057819939937705985448923861887917082219954989995398062465216556541159722996847428237532083266309381033219439388496249607748224901656060843670655082741922413091816321880824943471873866326074938040348914045310314074867764823342686817618275927926487467970965652945917263791200733059277039606914245378977469430823355989933289289211943725908952288801061084248200629745837438889047263555230837372156183056428512297972390908271068088611525511508656296200128942936779879182741963204881290248200401478463210658389310197496934692197208938155938290347204595635922621602225821749102555805414195830227480180544300176446361604557555014678990823608520482371338904422242805028773815246514443745626102163833973681425755189032734886588558314110610888349871597654727523314888721036737004856444947508031834719618033635889806336614213604440729569215777096035724428699634098236025605598528177215497488112755647093327370626420252973610862308046313212518915607278241835932633981195870827783972008108248125992256464475758242753292941307961328770044688548147416434522763638131545873962045493920078614294081054592200419309359012362789847100859469076454904151754184437491994547020481543823135972941330509249387862188626030947736069140607223208319411157289012866527799909281991341827249511168655606627635743514288545625710261719892745197386139980744204779926337887079572037229201864264353623665071131670951492615838065658422716354490749709784862412283665996799151463966683105550264632885646386430803649745492454334110734191870668177717977307113492035997166103879448943063593032312347016427685502403330107398641440646632227730214289986290278687882121659145090874123164457275012980363814081808035316842955320637831206540485250210596139579162465016385398508777198854942540477227278386574509954289288542525581437789791752866689858222214069511280547502064627080553849171915137875030859599180526217069189559781339858020686909888252179548138333080611553988475479419715821004967367547745709583241272078443835326751148984609204812612814093103305467907050465310574332144908290754308439176023095573666259122778094528060998433715824655694055097269041845842573277691784865898533841042337632397389886225573422485191918013623202329177053616545948848125310262132093817354829116896642488425862688803853178436212345569600095702684457152933742244127613510954430324103933976541986622838991548973638482703039537884166490808639190650625986239175410843982812170099678067696949531896877751191742957972851834340078077906830999608964766229407577079569483277342757332348642542778613697618577509283438629342801695145223289140863989017588925756717062598795175393994725365392009522425978766690455460077805013452734562284334292405040517058377541533893667349437153015862165203629904459331962411646588988294386050626306939344620875705485518345706136982045057938461807253428253667718049853822355249762571051764404795285995282460896619853537960199685112935656589440173131308764929018114218341779905239221845649797453005130978888041380642077070146644676265730660572037558269591310093305759346642052776068560110432962926874905748914194406811093941694004682409844386712680710859681428731496914254877042166011055055119481507796369651995648815949967490362336891453793264208698113895214040754837065288586540734509240264960612151413171402427250786093477184177191137347558644160594946502223054489466518496424675620455965307604632628771371548301905658819941987873124045522265903928492725239668404473556205180678637205852029468920692968708345587555183401361789570159945426204035795854892100562700751627840494826991535010646326217328531665748007505315943617162525505277868773516708406816773451206276319449156208209652857141759271817005676762232338211422483284044381660422721783634959740863910583344347703482350356036543250129467848947243437030701464726078207877911985837588950263010944650800819949960122172208880065467110387107156031970384446770815460156115350178139211441820025679504732144391922854449894565486874912223793298085059890279537978171462331425942166751892128429139206893921178069336100507296114144873470805514082010649119046639897780001201643420511521242284206462762289250276737622148095670683530284691336894082308402353912782697348625492977387213384742928939620863909198585498544106553825647316933599451081402447110478616060695520346706791621293753444293485632425652886501050886494856433995412397923059314032427817985611592945762917297683387664207455576805897449965045237871212030819335129883224474278587365262566379022850459223863630298278232266620136406563126130269264283877819447732797102355863432322176340172293886001948607000027644373590449885250277253605442690261286913310468747672517216248353109712520787853114954398635475441126725992206526659717145077484148604301420408001713408938846862463895843566453775120176232065551972146184571151908571386787680250412490440007202194628641373872186149543707102646152896842478555697832469499700736654659699355856849765341544609184252755548244368780878447899238843357225773297561802200124416252666007156260948568095008058224098078299925395294212458554622681679092601880377943856237461837128425408799532412223614096839117458133542992514542776897604504507248463794047786300870270962853713419163964614099249089053073493266985155442712170422982984985281900554769279684448693703193421347937176451577553295211727097819132873825465640003504598366633266813050178495633004969164000029415711534573460251814298233067455945313250058218959308237357391827705779449117874243686928758637209291919565435205210065135991657843698814356144930241351790323536336138169261834853873914441618538807562016815593285539926405837741341924140845369821502727688705574096841232707251672825709003298419155324008805033993471941465775924945420954013825525648580608232151610865078485476576915100728588416678413524977997580585103480385170112989154766916147184740245567203652006987469451483739750922723166503245875234818560626078272463077724340853701488678132418090548412864015306066658147687088626288919414148139061770788471453902340687453297053593349030297794812079163760232851622896897689761009250875964685346633685489514266842808188707773507813507059483344866443144236841254047963695625099146619583451764615899676852556186241074586551115073741800603575048474987212619032848872893413397540366977234713260903643340041123877336729228352683169246474075893755042719889443061838749161857268923706694439026615455468559186551543369807659230197064897068409717115359565172739984614506128915225847419537059101117032859721235740904160929487516801251846237918957494591454902072267837370688649437483290938499868930262265824798741169330715169521246401268610691154521700234369211019522035658016667127892594239270130558843974997246787296166062367584299173691017525244146889732265090545661485162850452421000169093768270163303780520930798745743929545567588672518244820743687510810831288507363941493337316521292543436950293880197149954331785515827542799331930399602539071713860444790112716627015296443526309304870085224429581828835131805333713711033443823404955363639818527564433320965771046779205841761778830306031666024811998077024006197089540422692056901014327881327034564375873428034107004928518002616925048922338662978800731943125419268509063051461244843845610673728538531690555295214398924637676359489291239794391488252871485022840688546996966915439997241293804229877805312540279123093407263995369131757755181338679004520522152046367664223888163910789952767626062113469327979554670443543384946401938413143229171965128583527503628308331716216257897911038924694490650307061664841430753672101429284006814536152728938988701115522324427002895339031249767366472505733046148155998996707995432969520344946577204656957149463987934695886426556096902609632516806451933366242848072269228005006685864338428790256180972841381523250114610831276524126810291234012821525295666394309443069721678777728716711074883250735766136910948005357132019674428930713934587595152008985395849584555476845642718723158329827914927682264259703711843947423769677436301112588491134647812857782335683620205007963170892217452294576457099654632728852387480910937043653439777656260941933962944419647246959117139572459772032442086182720886881280051705994530697804028546635169314184062354788530770703312960043752346155629262154610825067500963936510028072147513567019116676151045508923876888758899847350735919723305577655833808123159458559315420194942628100544522092727882446456605956635438110131412814473400082862052498822605160606662108396830318517298158148738318519341283601147369666311838670693564391737256144496441770400243084939917977875367320620393622890772414899809977111651870972975517660640885531418659622015433964292520670035557123402054347352657231283527221325433714618783970739436021162168899116389875419042866951389935323908113757705356688128223267390765825895017204359578202273465982198447875723507236490387590971534827293783785707927685629770985832083337640959723359325338836364583860592780149576355368771523108246761752611511832731114236076509936789327016277352035377110648939611052538540313383984739567500446183927784271856558287758838155619525068269035530553585352762978443474948293234449072787326618646157930975287970637877936056566092996680586268311739105486709978622728658607077169815569882463991097724124605032007561230318639505198696175934565226896131075353238656555848168386833515181360237970390721771735484621546575715713537705434089441122819536500328377078853595934766293313010626963936431592872768008179063486719794419034043783555154622394010051469214517369803736025710846866856047527674157002047514395146573813175896254192924451144508239237900281221125444348596765152912625782555778641889229766582042795225865056416790390248523893923832591339270179166003976856533672333167327413811356571045221171033226850419664631761514948978661341268580901772861988740644620638903252599923512761512695352877854195105977290271040733219396561439073944002451754286469223227948651190490178919466186504005723545309125121496893761734920150247242866858124350509123082555133175503514222389454877772101256659396723599365814099382526440960352362521796065704929112668317948325269141127094915262076953392329212039676078107701686820921392060674544990485087344164277278142675484953516513622245621980632702317634538510201403108791278766652983604154744401637728026536447989351617801832909971626300032019676280825290214929752384445135358077468960793222002440759286194963481500870305037075957311446331694656605376885502285661124167776679774940241273129509183482637603710027351570720916538603660392810452721974665909550928920619456937928227299882162348907734406146889083961964747648147150391373286407057854814470351604466844885168857128287330292212816948595618317091294463747874012839466884898155510233334985797429360629832782482371034981001260761973290928100528819862823139039376567315964588175232586526202831230691104062092389000900561177482645895987151032822358033723332725108883405401602027506656691182645279534461887039013155394136439507327646785425089506392485835405894665299637405397799547136166144943837199948287226809391476796282452426641708084276093996204458445587396490440690200326480468296022769572633355509925123414364569691277789922024569911150942651302358721395939018482619068132112041120485058392173337681893719681142210686395952947007619570020022758066938703958563676377042827617860718280427794477136756562025490741345209333961808294231375653830016959234256753804235010413553533743347291278033273063605178699668228485927563745916796431897474072417183675296979556535475823852188198168237061129780411954123489573431001147754666120697054243121240531990722453010545633405720191203890811153769227446576223952419122400225117825009492551268608437825199812588661092245112752433055422799307015384176129125103883625639966578733050246237968490701054953333701211225525112637607130648647181286199176102804080258882684286949402783776696194853097058286428659906745152070904138246317158106149988390411323575418934597471563512472367463759540167082388090953078610215922982591248257818024015832970956317716146403320504267476916110794391974412306045236120792564345639326664473144420765923232316016987352266898272302554054545215216754188058814468964241774553252448722526175441827227467374205211210099945531084430387527597934808709841764398674539979641628298586215007538327773633723527289670417932354009770676420872644509955419265120854210893948134344224757450239170833667276626528544060240223778731530969391349571416557810169780126075741083087311612395845646959609323647067346271875178177793147239174831964964589605907526493763417899664750196285429010064878483684143075586256807472042085934381500047791169866065294290197603664282707304065173460359772592491906407079746324451296277808586904915582445746863826807697669638151855791191553695381549790719585245931440448251988474133944532809133097120443105787382740663019015161975480934408892617154540658410200044008694074955669966196275850513022839001634351514691065188465862313167393239307752380525465706924870639917128384850235038223240337159252027591888157687288349964363008148850909783987355582712614215368832721124651985531936907752325998686064862451442426377116975547060289844697658024225165530768871749689991705383667162642337067722925287644356239896921298336073846788647517029659432021265550262234321317741803381846319894852766313768575451805022040076192982507641277277637139389609647711468186229506326781229353791996062008201361396855596036219197722974434579924665696045769265218348210910736548174347324801250450747005298181797621890246436991321641307255584848056556293100797036706518544360442071369230035521912800746823678329751629336500300083901082084373652857359638739769792025287092503333875620776882469399939240452133386016827770194369705082138780632140703040827083304306783231342428741970828690693841015510325529005355358584823076858708023543194553637398234681951053826138006698544002786660658406460354158039591918471775012660485892575251296158502731097976670602430719128701766122115133993581555559125554130578754672125171115321498789400285785098025563336352495241377962268821702352109878586435131529669912702875900735204910795084385627105470178619217517329712436312176190959668537526400916778681904336777581456583117458313277209137775883827961917419994923125020989178900611856782763005528867694911709376371300975845521769998471917820813492076847715603468220368788980145834172798019543240735503215174798280128169764829192545989327822932962799422646043643422950923565591180890919793118143774777296442712250916165196783039861470186492369665902251735018881443118647773512652383275717642114971673072898324492879319764846792219290802138254871658617530596468638259297836898911475332091031489142692309130159254549222501468706050638613606942939880882961032196299377843722457818848082537638286538616911774454612984663897289430426311492654181743823628828646922379986967181562214659044490460882934533749598786057506193693007874631677589456116442630538627407241395414723832115550080340750385333925094474686882827517604018361522162984703868160217513247015227929354066532646109344491269448543526334823279380968054776247404805803119093789878383918081259203708387097154239788653357979102798121846933521232024189239787046137175889957897963175936144094808697657863067883429856407905781534355657066650866547088157563474081608212791115498256978615005227346797319328308993301192674965246779217175251903000779992772579067592034240353193787643666330498246530788090506647509000303034071050593460078465315242088826476671441350103353337553794613462659121118921579746099417023053268774704392151316502494179311673112480611589946909663340340389179186978172700407024462781057253071920140836818361677110652251257409924885662005229834239384498542644079875499222946040604497021602029514635328981255133938644257905246796725643622059865126091307905591145278489513418209228482575831769935238071886405784120767236812203452860154028752961722428386656737244518411111574456275416650982231976834425964374076773547286722362776586337687492279976080397493339693963719564448140000341517267581242314937725588634651358892302362294854241733406012718994830720403155265825915523247754306754894110181802817981029386064200736759681118094611437276579036412917666327733939727380289845404813783654229827330703425582940664043764407021619335421092898204380998277875932355011958598974575743796902007288719265435317258435140920240599542098439508532049047463232442313869215321825511074841187043259556866552456067308150198249447573052896509355132740804215519044249518376321538436845996836498721347310804638778788563824777433566041576918820236574277176263608787532437930186522538020979908477213972943199086987790970852201644424853876968334575602050713968070468318574693664316354763389153001749294847733543120476205574173922495272737570163407527991075386049502917119399353330643642999441001770059264663774210935753614390674150237978791109634424210203214774263111622188672936427460272586768870232221622280460721803587608799443751858685036246941130764164468112222043554441165666960733925342842298083902405520842409075849199499406753063865466215209365941847351819533079233278711731179821610194755329183249815788661561465400147897038824860738171255408297704403533017234932084208701196008330839180546034284864254099322156444805996761859865076400396508518944361878252476951935151483098708598504912547904398481988173953322749761412051731186331543237939451071379868022801650846676724815586687934832434332845431030065896096143394172957385899330061739840082732864119520562299941662744922077947057337124052409666028167140554255688083731643821872904200534821106360468281521577598799304290973038722585698990612851029306102056516572144885157862952445287136130516228972090605800984905311104743233475420838029988141373235474863476746547622219932199937557660971256253873512769110096272482238034109933587265089271476481656361222520236034616371406026946972086772876909270858938298367452986803089832877841492534083876897760582315463759616141879597345605357516422259463287070927524032510328950972037376727744318994203404444480528150411586693180106342845916035624995848906653898393685365598238424448072096304891247552351123618356778136546661985413234334405922456504423826884118436203545750941260892946127155237581780403183041856373566170308167259512162695543993956538502815248397825466411360553369853901870828093250841997293218226960901590233668950832160265704911103285309574660029948598177142400167840927449777434678332317974912272241326531914091053935246224146632613871386833476481978455341076708751121850871293894260607495395811685037371880919945952240805811666185208619758542799941337704801638087161745215256482893906305297795749443592167462571099990928956834612982545685167074805038251608136243158810911983811598845654900589341127100403051835782522928770703199091821258345590856534553882417670063975480659290441755776000950380592630161401436401035021244390327840910631096624133087652512104269908773179511056366659915673971649312504189497844812835949804106726748061141245589897768595511547490274104789358003133995687004326422794137795795149185813542559855037054905482548184521412547241726489353937721152528002380660660128298940984986714034878923208146433025982153022890185292767991414777866490936257365594911244643588176925337842519143400148458814533402202545412822071124425534038043193932816095329938754652855223286582701622242905065913286613066938338772701583001032086549113403798918684397390334165724359996682713016047097642407568980217230024611867548434944073739008720087121291836231836088759695649706454656808315254163825380767672909188200307166709064774818883548799465045492649444447833058226236867885515356090585067446521293268731100105842803362239126687222264922773814750575770008116660056054842365050194630816821255907889612840886968464187613492230911643897276959276742939335702839093019103644687630788612617854485541160924139693688450270131621611905405756739699025191037177602049703446764969679664098070508197529677388670561789998279681078251263989177015048463025702740106184187176832139845764694937581792430215097659454717429082978326292084001283051695679450432378965893029475882793092919722253736329591676202006262458918969028731487371860466641272327514480245748073702963683014660169465834926285262468658242529673498583821564229501530119194074976409184270262268053016416276483490725058722604776158315281277740793371995627883160061232535627897996266089785316212384624106847867724631373146274686803688809839968483969695409794540781368115395479224868797057648606661118834049421099275354001699473782566468240220724381108238339430290312577151807646789438066554383142781169818124486827665020859785885054585278004872531331422518843848236707807367012603455233852858377659645401134431840601902983729716495441441028299942774131780497365335787611809536086847550841518775918085894855553662103285623226560975428770386242598175195112166994636407290814089503730044114141330995979473647928679210450545681633989046534775815810424742749275753584203751669169452415360024821492717834439795426861922228700608813683420606982489438208417626848636759595827667570453366317423530138343782818696778756582639088918049445857020992331273786936149369098653263155010621643139832639515339598264676093775997382138836800815147585016010294176765890980021235805679214713083686045902335271539292783326232537786682112189151041351660846577429641254885630109284635860335073443703489757238470876108538587215335019956958676242949865815261935833081525356017846541977827956829425242791562366017244356939450669166822457662560140895281566692247541631264336810505871506346068946923807595577233856032633301867303766304413413154176861915817011585745916548776921941054970259487361750201732811127600202094238440949394439489171625341530259744587128701412604289272418361943564296340278279701479583077042242374898387554873812244876718246014399821051849397037587048550139918851733686161265368276975186188444606495262881250625690897133124030262980535306636932427273757750285379692266052139421376967723813857465080201093064392281273480053430771664265068530613301743757557166761685841900058723505074091721237640204995198004465591369711314034460190620587302397170947921309611501271672999369724749380016455306144091523477265344450058118439176516375158024308308658620776137994946832994957943815414999524046827087748617634845232818230091411318244591147380338990762747006968672840038753483754412100420977198946734196435986787212638574411314314154947652550041804034884003938860534544064945109876851077308138427331193288680135992624363374931749896649043857210176301059137426754375462596587252627985688886943559987050066549210441708912620261380036433542468045903912644541957612069880960204653006060628508627082200710407675949837629190335705831645462551222973250285259929819584183230644766691224488535410211931018048034812448557153461908766908357732822479812789747608248608079012587480309866038194183173432531501842659384744432186407443380366449796460468309561215888464706662031944825417819331881009288958430799105251601132259365028190184678764306517686548865658355437680439616902169915622968213220883302736231275915185220998975433706319232122309558717856724560571960745492954602876567497711249546388685141231429757186967752001650151202517169256311095568607576997337163191127490561283259933540836749889457312299937572262078279215854261878541735260520228347337472200965569795411548192192070764639694743613660940656938128194588648077748189516108495414915064391508728223746980387418444283282246671153554841152700766403587970000144760551410080657661659253727224402191631629925058816651830385381044281330349515183590619174040863341123649132246452533864596437470894215764390092884174325918403403375060320196641921047876238804153569188657673894380917658293468598638754509180272596330916549931314960262284199123151404142175619385066203507431648632321400708017522703128123334960740939075470328500132695514252669541879361209682887783585527844122067556287239090386143828845292999920166249399381751062860828114273000195704680740007036254803300807807476368194102032114338447089651955779692068280051105478683838333100524425420471405261549780551439209633319556229565298367268017749027947713331357716972560791381691498319204064011167180192459659918978958192211694725852250922884643558856159949974552054137669049888228756544355971242354243204898622731950028707009078922943469782210643747207504743691726190546763447286679488165071437594781057461121681946496255821097547271792489434519826639558161854802724783849469381249045063182265844914496176020309088444470024110431630482949998290406705488080976932785023465642970935881097696385502837830368083841954152347912876655282981133969945966112511587373965531872825501706229494486108594356192976570834414465528349771518492105971292418372652596303243777511684890630245338630418182982108753421303394513691801323953830294718882749193504668963089528074997720438594626073241936165307933676134018640712553637786333973208154417530962816066465914989341509886991753668665042566688851990938934877342907746175019301368741710245149677156412408065229501364715237760085944956208903125533520953539426673031329803899127438959745510003773213547137277702933744327817495706495984120267624608690618655478963744782014632808435576249674095527098621692760454494064705005277377681338557937531004617598083104346772180464785563468367573255020804619900956648925945775319367202293291106421867369263443961560596967259037955154759568864031547664068677281580990843345737594887099842689381235591517927327693722999820381345974581627371884234223220585371730996237015443093690627714847131354921159103496572665541521651112651600228614124340207609489159158951187387500417472106604820386917788354676880791716666683452958182777101914396446634075740695641661564941411651261322685843755483644789143997581962848030213035646410290355303323988770096316002649736578725276806365318548161204966893235709074244392052556096148388483102627676175942945816543193004661971907554972140584804426965164144159185201777092544046847349402992412901572882452635443690499984980223512915555904012953097403350273207216425528102530118967936747315608688417069218861121161097691677166506087011910753470741989346264266389871227163691727226899457413057129181746402485234837721118055704101945711360045586928787423581596481040340331977471212919189210434956897378205828527991596641560822163566986025508423525099417346089957779119418784608872251174774262025379117517982669164467233234239897763757890086696135911172229885165229477932788162189774564732499422786842794585094076361511811618302813444022345028061578951014363716440729740059716087675972164754306646105473751438684023384943676676482807523792153006826369750500795786030095098809396391920000427247694694289452694623066686880892076736012636700526836081959009734673078942727467339102980866534574187034183181766757234586562273387727645146513385912195737412200111209921789078787240899801656276369721684598323656993811388940516432929182911348878068073125323288141119893042664451242026830302015650981418351617267902214215614110931437265194828909931629443475867316763710556131689304036489351395244986945659980618700073469184820691616573703587813053182399644506139653314261506147950751851906567993272489197768888647243044271633021418312049012224057981361511417681504225825784620917685501424133863342918598782831104418591345826743859306616857068176476117798278764326249096495335343724037758902144385069362612572643893184391783374499101211512379529467223057990568879187995755607081190841363346454241079650400793452768262001627001254116982252744886349364503747650113058920222079460890685722197795126559343149758425775236267295448981106002767144821760027295847589688922821982622140740085169811790318081128021189787534940738949051492964221825936643840214540364278023780145162894810580088943517776854225643436274617408380602456454231362951427075168423914949166418483196892788997504960430773142620257283393620455360900221077794129837251227731764509790895195121355255183464105472039972529503459702609850313732292848522130528493636242923481572143697250702974128471117584719863457039727435807298968172605104240262753338163908385257386442149806470232500187902525217764185277838612909472694605950992578943425237843759660476128645785964309191424311555823475544683567921141771125186155668685329439297113590920288015499141094565724431719469734015116225074763642251794077620289716832436017176774573041695691552979858260992402827447678481996817725638245601637877271544345092090351345186025645061000284973926814201473936260223029575005308417746264262588934597677323756123304506300071222826815661221065893247389717622966536419980139409804749296849920672057036565935470033489504799805620519359259461056332767660905853055986416530913807618904031493173383104007877182683376749730203772074370383766540382937190653710756472814365869901795901490738657790002244548541021767212825476280837604892843098221206761392217951698053677144898340710293149677698569536961043658090198491426845217809995976984591955771839524060251872644356714875635982812326245522807339866003951157096094301761148738591185999143151511735167004044380018726750480684312418932117425904544734427939196319445099860597167683038822091356560891191068990277689560799573164682330006361560920500616869400221645006955979086772719666516629139574416567750617062894102703306011228000411932236606573672629078618725529332867679215560576838805799723008572607231694794483050785861865398689315717408077945351218098200973468193311343718401717459588713627803828399067971848325761015016253165271529776138592951734738814381585046297118777891560805772946073071211861945929548448183861398233101509523330873905260157751214460438087362692233642092849706855233801660869763460548037434963954155364161451196509603383887633611095504831109903984856668819333649601744747857104119243398416046642691016868247708173191002887516277016027193979764069910224157470900507069246856160000079823539579138089227134998260157692565665340237495958225096654925827808296175554028973163379275504557503259019628356200495270112762168898753148112606303199011733834668697227789030483488186270168547933609696841711276306090448017231214370798887740556396146842735381826282179694520410431734049251102606497886831000668700864963321307709913602841558682501483670989524513377687021622903254106374943009272163728401145763851448424087397261342165671347510180892954097329707757484323308213524343418814850042729449405590685719509278444238177676852680077045759771199255059249500135860491329553930682252323940276619784593895855829806008368832199633259918492680680098103210676204367821524775246206086774697923727426073170571974144543772340343253685301588137789083858025660006756780079979445522075755588350886430077999003951237840939422585278775993046156864178423973416644744518213100331628562688588398411457632745329191386805234666910789027958323938054521942330707671035146236285334590161088051993644473391068814929146996557424338872924951795923136683735688139938977059563499124757601725549703562045305639158450803170666048859102746999858913989513667469906356640947457693570355482548149800523722698587820955253465702693314100867413141987957253314285823714073695697403861477141964711335472194353507861576663638580084537186484339976733512562094130031218989821233375824509077784214254557769227801871897552687873359090369308708090354837972385627313323809029729764747208564614991118006927091858504999396920501314766502897668433002529512543952336208527669178059894475454618753329542495472394356551333787314165584810693874585897964566940944235118755692282543312270002107595187277730082199822975136347603051260465531830432332867724145719650230981551505789904323729329173991420936523674479569280396965611106578676131465185869066489970465609565633320087129922367797136031614498450984351731870861613634166717612094762169357375341285699744712372490812302946012673286376106016700803534344397734189330507689841410311019988253245023237659209715363088048118141724626694623168264747145249542829494064084305571310872857454191768732160767487019826621010900208435760672457892902725034709704711107453455310766681287653391092023795077802771768217741358500575362223036575590686218909708781280042361081962972737873653342639274642893363953863391176272075525315548473393972947027507988412892409702870720298593940090159581565397057670499205308851151563004117943557950979399779618335299942993759422477110985933998363131334307824165260852870682877929750921321505199450205985444266504441855175270249226808670664634403372424159645201800243642146769292954814566206649329630117525956476399501099425154239789859072421304683170988950687540351719394303507091052927524598238844113043955168205167637894913880780555444338555935803721313321908936923534887971745184503435088533202875671977326094853569232986851726548122759346943813167020134234314848583101249744691099236008783090059340635966414285832472684881468627697354316291139149566155741120620205924376862353096728991395749745512944414709871819075710061503377210572743532066994477670379490422665802786594070506061753157289623660051321159722633706411772087826374510342826568315430315970104316998695386162790863840719047093752394851838037747144190966419133729420211637196924169307666459937495943859877168020626430933802571585230023135504169457644170247826100618632763539397257905670413238995390080584341136024285423579808996740144588419191144657648965820948134905905407868353704347735701282184618997511964203529469405106646033744822552858230196438515802575740927312347702717913395803659671970409043890613432548702975610601692838634017813320173682487578618512209598291892658660800411158011188906685736349221046005528214496570951684032391897676116168291749242408987799385315500741246062106120974034534956944574900118244903910526962881982012873164336350052461037861989076900516327104937709838033037617917404272858928124869229005530167605138522459104251455914312959087961428893604936829946410776360744448937527425858429501755600750133057134180652397154153258321032327865023399366363600076306813896657004153653012537289537362680494513002229698061556444049398685001288562898240473185650007830534517076716755138248958723664151233119344687693463216091340988154289178724731351801890048917205932088061104647839881215063684887634328911187649163564876152654948221387381482017474343726242441120114052574313343111874885500336148844596314092607601668956300905491595911755257958867256203052086110602981593852847597210067271275150800736576426435017569282782499935275765722866422255381573079607168913537665622915796565988136437931600834941188624299980647557913875973496809547888101896345459560439271167421048419562320547450759558430174419566900686573310277249702091779170628905939600809575304740883570544791445104987961001146584526222068771073285570096982258203707681769676279907685052284841793159005390999380832204132556536227181040657943226386976373899315153010293521642910948342200046242008221582903203924796006820928382292990569700365045421777819647471443974056972536686837498858849261663023200036961870036954905329967694259123246211789076499897406206005790619766945762072692951997837631815937502712370403733350662319214067782406527203070681396568720716817747136072548676389837467733722232707755900726681504234569691769807919447368038393622498672244740598845955906233790260104068002310843065147310851501686336620145710081965811858333141661575110449632678373022608614116882248807331551824379681653675117410436202934101231886780558256378709374820376222302101072389308979298529057660086981517669896388719727056006702432078551374329143590293819638265752447754232713922898535664473160258424501125129535304820643007993249317706475734589545034063884051434236754568811790150476156636403028310383942924186135208365996828113240329756838236513937286331764133962647905191754617114388492490412135990426309912621642480776360891805370653601589718712015287321119875424259967440767612181518919399297821178655160369430013923817294791010336740232401993701552967541796143417859654080999232928497677009952848172973801166162682975339895619330483853754204283874644232336717114107400940472070972915693306829922607343036863941780649667452760929327948678579776179463065220031469218712106957766911912766446278564449638895512245344030000188983017692414735497998812175216705869799676861374457440956990168220044882411361323963137370739509158413545255257862204025805589371342805019699187636340380978767324191447417678945942598251822695704293984791045796615571683248140617876518564753197408684443280820311335873044108224699584597170634122912161294772882235351631736392929183103664097445112399066102217110112080615347138742796486933774144741810983543236380669010275941305073953739687040035813916493785970776602363367516592360976679933203547927455298734807799238281061399297469410194313605222175293866131347786392239851518471983205639209735290621179971792946113209076656346985562677722913691800871832023514262741636235658002147873453711260283133779532893624010698149525664396862393162461239222279341594192453910425564914710505841590224707259049301113615753830593573624196111801330322956169092096292408196146090642420901227235190562959547291741169117698476949708646281944490308235704059541095049489248674795842403799059259480181192842401074771138759694726659203490584740762121461413125686114725954289262267285619091772642972949863850809592215332702620845182614665096425194409097721643620557986470568114445840751922651864272636449278345707911713382385954232878202185504949570917965766865266866304720396442077875734218972597954699528301841028786350548524179988825568699257493389515916949018082374069281697665142881595554049945406090700886081259961333683824727196711429777267026271521450540872189373710834820905097168673825359136671496563892647252809636144385073909499245521140377305629031749256839430478796037224957338256900813803704369968683346757034161705443955715136417546843734418852454750732513005814137983720118405157300124526527242714425321232760433972217463334201142796178428414169754020156216679322310319269282589614031886614797856591326307236391907085383440754634350176834367652933604543912745288307106078472192230310056927006583074360564808061870772733242504992039751013183129515933761051152969735409069387210617292045200994738331870358574082796838393973703947083841338072157873117680442801465523102280251135285578853892337836747551278806774364260792942189674317093346700846550465117838612101323654084733357377295073874569899004239346960794523593548401140993957842614465679371745863078804517260332648849069187602709804058988995055010520612087480234517012598687178117904213183298903255665825221837886706664541427810261235050111489979332517677463116257033182313559779514668732828339386492848174202070293358679023772193356107119896357086390076853361139496499740301236029810294150077677056904079709012778027682541474666534394913514480294936990984810013667832600177724861240517746058836652782766151678277393281615643855271824921127070842020869147339143863291251879934119513738950261436835563245734676663620495142699073642332351809779929141263613087518224332738690641499050269045777943624344085126262215629591330513169748808728658835195810107073628459703349787454653674412103280856375899997313045220310571368763906635216855072594115124241784579025503759338966390016920012422899550571030688576548377453829504756846662055265780139867765755018722276317788863188205470070163550352278310710060623624331982148217490829677720599668003795159706522858830786598636523180071978269742600515888014247598317942123421129779015810619166833959912608975547175561750922194484172546884403238812681211207330214652436728519855667263731792164266106064991582174564329365152011919630012903412776667314534330880528585760167434788461544997020116819535588759357857597564755519319237985455233048590888437060512315776081295273424343935658349549164528734920779195651725158772897955385258594832592061878022116077512539254306038214174924685654754242616240839980079124977579900269854345554626071897866782556658369879073042646879001313421484810355981693410977687539208938080427616748459476297165632348473688032158130033605835410518474215501070944209770972873909945862861120845765610005227879097812277841622386508154990152196289262915075322289769806232144469310075440291844795418401485987504754573534159836445906826238771640700884872803081026790147904215061828028776233260730032340905086129793822556500309173332675484741463240728229908028395049360920399610871244668636323468906702030857135332396039694399216456191091654726775228103194242225023798076677323456605716016469159857446877466516388089658046568903188162822733078597248130111844108169463830270202526001889246019130671263389844364438439729530555956918484814168422466059724160962428519929955745913139897064920683764300520371651177357733066958073028865388872827058824968305199097714499722309597989382214360140010380530874661604976156803426858004635267886707513810921632798614661649160493132262242415109661672952160349342696682577273246212178312814844212294605654106675043618979376069575489243712831892472332201261169602284055094141008356379502967990489641532113291508646772082141209837972140428784153356290874132479407875106141889977540170241299960134828650445193591530362418177233731673823472029518720270554516075901793154171869367230023276922115629938904665748672452821390193707278963762950176114510828781608157224416256418066070129668243180964953323170812681097974808925723859474236891042282031335415910523472991068216627400242302838861305344485774223911109298526988636232142773646985196675157668092657343448088408307390002296379366272743517034161589839385597571601463965846813518083117171998516322305593989570647846738689138970357633764846726750957810953488464612808540296075613230377759071198655472995044511308688801449309940817657136022267325852611607446873898531842202103255945236169422972131266388972773039736579097304572555503688925732034710758193292829732367835469814202001063332111594890541266755718117588729764828064299398990097070360789103814719822700030464509498288131295814108114876563460424539082059472294591013676388378481895411658463588940996889844349311080780115937950492166662590526680077346656945176267722398956844299671622582714386133998720880645974359698041122025652878376697977461409402394082735310094819153999508282075926168013305480684051847482671149551652680359332797343682872108926098796820393600209079403946925725617995370616556548405803949525534885669997556100391149735600312015828187464627104939159504096243551989430173710387037729143475572507350769440647074739565561235459491473524503788708214844280505972762423146888863295524305308176553401599839900185285363980600471429077550160959196067721341434362705757846323629325648282886409536391662828506032601478372618311199367084142766399423762794202755356040549400266774181591690207651679797686749674209480919190077802325095737685065084737248290006504852057650597292658791744548074372436506699311010655545584865036497501851490499906610623377137300284671157113795544216814921438350358050410707002695472312758293002631991180736711831426334070143328630733902396944857196322995926190703147970270128642828726431138776295993783102252064688827580840387120538179202266200163115040251206170119200378504435412229875069552069104226800394866124516139428068940154957591701759397860966294213282392842376900204523437740568527025472470856923041649892992362004510365924207157317606167450954578424833666565195760080311384126192586807934420990846405885427140710210259624545569104011582246281763102931995974061629129342274140765410737051941780477036444379536749823894465721921807274641225469508232746314422046083188553345244067233860757564973148005100131992135663015367558741557991487534960206858629444028327482064612732072576855581090625603639331336747137982422235114988182727961599368979953661384129971653664452023078871345578376230051961551101629008846861959798485808881217121833896482990567057001918164999915895338127236097515788705094764494576285017031793030289312181649494791765454565622416147399574126670117566661559881161834620871011280625739271934779521877618436109478550125813068795683254359673136478779345996446628984311916850128785609665255521646876537142862065355791953914145151088297964403826977740479803709639942272162176203022901567779180617265447458425492494606853995875136266314307323504325892913984973637860512717134425334258865439759160154495918531352989991178628182569643017212380957479072818046084685462503570665182914979882852326813644081264336368836543525408929170439086247057837810516654119333803108189916799302235080901901802986330491023241687304372870303870290574671500793832407776355303863917671984533513979048921647822618627858869232721912593197699917941802769177839997835335840448492505113917992225332860673273481603992328668237709780801317154179186482144435115608970593799607096840254145331205073650693636831949253238028335041419461835221275771457554830602281042193982920966117020790111957668463289419700391061995400675824828726735814138549149277300074472191766315078941850019482959103129930028738860999113168811354221619013668395249420813326257596454492403175884563118622804055615719191099869871960455759558327473796590114998594390275025906600454059359688689073331356908875634749231844786088350650972289890731395958379345376610190642022544274191506347830514013337427410868521112815245122126976627631414451797590914931304587438537725183877007670731397771120626485287371339471690228163258620963104555554603296187382509244378568611978593085355089287442129839295154669555528296952438533166111605087589112785239083869198269111606614210109475506016013782609359242479877622207174195413894182136466901506464790431234579411122937522843471581793936311780037704398509337418818314455354816607954478473944618629449901953981322988133080127559577738329465679793722624473018305154740145738903944135177452764337902804659431441734536944872272644201631409275025828744120296827296296322910003340884031307312659544672595591748278156256580775038570602867890355633179362090616483194937361990010287387890496474224697961635918563867941520379713244849782360476380024466695442417628529188117938582342011485464243629827519002859050407922303923008452766855613547425403438548163831307955450386725459455833218985680864812654910533655172677695697207493998169879618778101444191694261550242812769629400670434871561330821017957545885015017722124618534077084009152866111331677973989605614357923353886417251630685860273085707231114800083597959376271364520971585606628904773412816035902032896309862765855963576200734600933451845540575048652680065144610551608746879003016743088335885840290666159281340376783752589488575041063996845997927525398121816693875118584698675505458013763306856817875845154017576199012241756483134046350506166547782164020431412744692699914829777923008366001726385831900209682887051315585051259833527806539319065564257147934472243041350002152327909197722401385117675856970048614602765527918302149125277105456695837323760570578498607696716270567201162532635617864685859093935713132867474277782718687842369525490646864117187936923682877971641328208332284417477448955516406085535351357507904650374345829766520312196952464526724502851570295479634550481401923479922005542576201477180123268368601925509757439574123668330447653270206279459601783264807420623825344366058894789241287263612278033384367109447977103939544670250603714239920474522320105320865553495282159319699132290023863822248870559128091715809976174151037804705627843102416802199201728665602121916190027985352196958014245403508058054999492045726927063973820588226565870868768466515661344254147266033934572112580573176849505284822205708014892305702725038412332681669736336351786472117748235686551636869193063141654339540870140529817131077593626341427923810948003578356326069984706766614727930343316099044403993962997194519367758296629159923015571386818371332155195950812666650633487121203637713668957800593865266651441751909441459976497288048929331399941005128305050574558408501650474083889944668981601706587944271277346671559528176859203068464078112354861292720581120407781749531783459877729930511974120535407213065661662848522443536737726169388667981987925129338138623682250034940247524898829435666934189120049294768116173371969822462051576628666243162227599912387489333502197097612239053191082615099402072398953747389716354038187407678935041259477914942063413886708194663019244957680448435404317523555733403194860680919929192614969490621991158469631804604043212035238496385970493294094512081236162659525305317549605052080320036704586965828293440801237972729889034885371367524951828180629860741584446064753543496887346916183899985507731088213265081340372811809936539491230073817107511213809974336021087673065004855292144197894035791640620160169150820287513661304418091320411272307029537213869867042863701247006390102345382144305149096415985289864065215458821227603111670751438979190553089848096350646638938885242028946709955890604987858973628303403456325028257833621030899675427747599965867578607125874203875561143314823072523461785549372886096374357093118560010510106623908055017551249211212116692483476754573575418488300318379758449529346869574081351631628228267954763912183275709324378227302518905335494581906835679646417219025987622825679983016887169903081171101534164141479461154683924972731463628237530367833517999113512575754715817732766969775203408078194306033879880323058582832732911731921578889915251124376431169178166498829568016743119393777821022263046543839106008434618262977798885520437834130406773347901364243666496663757793136888700157282910089994982307359215219339729985473094416942760527480148431068124046603008973171615026496113202245830104560021887717155806444347449558025597537976249644941736260388465030053629073541310921101347338850511391150735217712568010082040772038699292704558421493833962694543549262395469586430190341299952368517083516423989883038376795246756439077884055307691564944273128383563826144246111745582378922511642845948541152476681145879451704890858914475629368762380565062707567178303152640861775393657329372035334052072783642581934752473116038465466672793227209994975238109239466081329973442234913360263267361663184601234350022180429376878704021200895931741220382623033383350861295429962922232240403215041878084136733335387548773045251545505908710427259226478563958803424842965755748558422582409194814271636783626259350921903197723293690998760933963514572443047970826286634108184345437118414222491621196516899749240443005451307610854109223094653477196540986165796607159738827093673665712738570832193612242459560135902122372818026887471482727155509846422836533700176783058453527640284578040844972773313769057745893174914351962015165201288962149491230011748368220577803221996689999141335704722923159234652551922430104039043171883927514257214804445657965860651814803695879576921812210192495992418104628039745170330434317261407991642585656206192200423477195863744125047626142571052187476290668385304798308169200923590519184947481504220578504129693936864745251474488537863464656048456463965447271668059870593570058732785148968352939392459441459384957284736260473479961842494842026418236269720947303183333627362490466525872043156985650648453616500518076206757036683897157475782066831981996669569098899172482764558798929102893438721898846224589873122715037200379567891721750032568603485951618659184903937178611100871909615717931837065248546090203128489292247038454575080808097989615713455457361390750049814144662499256384226982439525026809579922939584491870751911444791110810034271987065051494221746644227502106922679403801709773116058590343203597266836305410645172291761381799025199965195652051229038439158690934981577158368644556670748568713874103170733152002726669601861688723418329948500453990703020237795995096061241177311569825011086888308735032255952615647311403615091673400331143746853318849921829820780767988428979574778348012156611066359764627224371808083668282422418160960640618078830214492346711887979646038063172298949071985775359136334308202781396521816830375723149321935755847733049779846744405215203188507650016486933410074694670230172476620366525553546268873923150376814782334204467385209332329706815166142213426112112885434739799992445847174415665207865622691225443540833480852531219814234362696330774708971261764862801330089747763616246538734389834405404170970910929180507891450788472222655354860970747187173251466347790636542762182169889297071185596842235910621130871436023906733811704403143179436786358291650278144295857270937505162172905097131130084339618407720284602170069028382566275658089277501541077671846291051821869275224289973979375073331090745572067499193626482866765430974275094686570122507283221698584976057865911944738459896588044830962444086441885316965700324051826722120358458177999213588276053055470167573270808615113639932078731517451318584867972882255731551425521051626555056711361396914103582602658415222528839948658661694186152512498852529921002604041398599582725923137541402663352289765949276251617782998008935935371243667508121165338692262443274803496226929226625152410682665123902093150443168892486751005574602924630212706136340423176553655665772866814744158330872026459853281146032885749176564554122736789711274559235003752826208012624226574381669792439678961900630190291338671514006541683581050259701112835392380737132041391085081000240355823475317183933874521915154625853383180229858203419642175689327761012939819507382706336497974935579613727961065922923731811265365742414382947431680545340584114612945401802865031384560969723218133115564823962316037306548123191801799564562713708895687397724031807841626271809348018149113835272680174548372950901121743218521926319194838465013150787532655586422368394468596359509333912404745201591122269604037274474373472789902233576141472251003802920091268450801731543689342831912537906363264083523700140365563961226235870037315686699116672516859410427602907818959427044138690608909275936487933970174518779227948643100423128327271817175432202203255898105484551236904524889509872703188896915378218341270469118901143873139351310621447204821802266426658423857567475932555141123675810386266464585641517939606584573335446836524127652605464884000669699473538001851657202443721144465612154057367882301131045438110051206761604696038902039915618983026077512864148107448156892690059131251136669861986749400344863803687096626443969221275562189276541046790259580221521358856428257960259097669285283294324072832095723412935890285109989238121976634252172356741719073946109950363362536016749236590534008873194023727739044480131026443451481280584931658758831798775609073969471043174316213920557099662432742052947764363812027031549976096077132955822866967981852517145889613294202254390364628425549084137435129818334548047061966142590823707674265511138375089849166539424134737207581100136452298077492275070342486419148400016367742097881169925030788348310424062384526705048198961195106957087310484370790434124657809060994746179798886114740071368398690446653045340255666487014548632714841349815895145056764281026751730313736056447336100275327551426891203691906796924131367739238521134954575563309103600815518363942283493373766902473507939128868220525795700949277305366502201849920125247286172007180022293151470485609963906365102956702198220822476282452771461365283404130051111675964213519246861350747931752260587695699564195308434235570903638737762728499558421543501650034916593433211893308504200364198717493409045527814977657425384813270298691474343155996553656379522144571212030382005916344083958215462794014618627436003875117202857155503812911020464166528116592399652146109193494413785651250519190156183944602638724298862474143469427835165552388823376416499550375079028105134837065200197999400975386255242779561262789666266961839165705193544275075269174097622741349531950452858844407599179006281752709460328599660735238546058299596067429727269412563157966984953766793638431149213373902806965758872338529417278570642926327995487489799832917209970096990191756614388283534889383782230257291970856611760691232785714854316747636907603281473771035558416308616337080583850255431957959575301432594391251181986562351538432478044156990206985845799057840000793079708296895354329983587944859402612699382765796865968943709815360350387762290746677280402609539575408212950986322959184780050194144412601895117243606049785359097737135523828004870573114809301092132552562522826599286587944794157579858534283334440470145197374856102287628789241824376482553661939094670894427322529669396300368359909152652146420507703697550500613874554162782117927792298511099931513734398050281234686585035446243913832087751500841159343090198436423259733078154161032323192426797888020315364332059240877805709139057892709378263582502391551972519280943706540671826381292091942421444964671290717612713753044325379621913160926481700409954022518920110737853001518217387638965002002429204015587232696500928460814579047297481587838177573645186110733632347453259319158780251777000124108945058127122782456621690545704909458766263675909286925002836277070859100782389844587145466626833080000706199578800121929971767649738905355634888864139763958353488767657904266053663060024053261314430014070395135807876326802765314795269451935081806728979490166285975183676131756271851809285822634252014800176638385062422011127667129612298907543400522553749711927361468883425316393834999664076388137051837288100825603466797162601547356982851592194053731613922409119796149971899593828251440335013992612497774805600026804065726993784988702268598578829451295834854768458565097794079812180263704435955659113372664004482889873773183723938977199688239539193792139186745227674702800705409942247362018119354159579861137240285556117017358029522691146795832553765177605770282999013982374816956035076779669737965104499415117219109781615068156177923973578324504281662438776313108610122293966653995708977847076811168265740450225897938421677030294079714823283709847656039157139206429170312791423410294030796196913212283532249132408980591232746760145545936336242972262554718932999196172785817934967351462992970460269232084376191838486235503449404590512634532666809842831095477894984941645982971048698751384022347844451258946011791383399755057259783073569342195963549898253370736914751973640368231350853899567506747564793875182334477083631729235554762763758110179674541589192519099925207799345950423107335836947236726564475971827811906597971345489726824324790210087846086562388785868237137358008660612448081027734261481998914420554808117419847849875864215140355400638994372400763054635489663409346795829047463831731274006986868749747647334526341188250392331451486358345981127039139577274693164853238978677431863878760179830032089167517191325445867832683369356348617003699389471562695229828840679893867785785775053828892049181984940815818407686143996177659668475226683649949346676921633850546137812830337008143808202706991570193938624047134644185289397290442216151343119489844200596177351166742883331130856769328833845156003539297822207839325002107568772589307677399967681570395142095397379071272120446302578798513009919917497857550118436502830880902453822963272083550511487881823380053836379131327465696324600970520565888805449382851753492929983524431431040604496615087338943148521098670202312970429145016571515620385010895822969376142936589371867040915507694822114677247820653971734803695381731757076965003226791399614549109043822075653446232900941678463815200613946125594904109983747607496163875430950824578437484814169611346167475052099866447716491961180330504064494153174239032393146007590832219673012571325953704200976431980875390638485744631547144189503853677066852551290797670983043099487704158142473425280491296629127554473712375556022417465537734212473106466661378584174966421140816826865769069007122504965987766132068248531612400482809199334617513547837284212759131604754507992824966671878676217063315258831273951724285861675271300482692576166806362505851887941131583102083588513234126633039665675209206910447454363680424697807015162758881424925903529450113571776932850387169403031010773885945956829434766534771862282965292897278415837244252136179247617144618926132199982255294434641801502760815756450160945234857273091325720215969327924237154895845337228507265881453774623239628774733681086178931974911440771658771926150508345625663254594553823936705723958060498923427240065389837437635736381096555231259073410983168189231526630504221683172371208383443585787770518861906016695556099541146972742310183606156582983483861222390960440933759661406072016535485531867521126088723280422319890644584249910168939167932674220702272830876592676159587836979820200799826639407327495222270252092248245687499391791473333758188583582857851361387027205193501221186217623776061703054119324586248216376777018287918924033415575182649306982657701195497949727900785497127429577978951365182873140065065602676172024768640473825395680126633343459294253728926555951767420244989546709173457318241682359501397289598022479664134400045345331705246275421189060266699890174421026563531820176441439570305164919171880476702657050024649937670815456259259006867254849371866830157171247214124243766822178778695131865292616934453242268024202715057404160319958268746609696633552446479400406334905865904423102316320945019953807045332215482112988153174534730693322284968716340835347682197661429599309450882940550342715382219238415181938299920565207903177818864789366901460487561142865828615217653038348130879805672995704201387273965734522071559668756960900739277885183829999954112697295222290139957212011721488227434478526479534691678584394220486702666260983460826279085004635933133913396244640945181515788759777294959402081127965087448075052969281427890032387642131275382720055589636243099401325924247814227018427381382858105175828457101866238014861278671241429204083772003215097938162228532368603355320736419116006982349282189075831106301542259758511841268451861277877219827154339086443673853013713830172001703292839464455102831348268431229757102427713268230169187304060958006704918326295616616962362162307577328087394207213512807094782718160560340754813298718634902651561763839387172862100750370716159294558028430614352022147814858442184391732411560793230158680277608775242834058814162769968667176318410827992191929261180647915845547174557767349547229333415986753207991215820027588895725655327064257361428851203507102909460012405463139402279937669074648970558060064956792191587859204565925855199510440890041923214520505836831632682805106721645169693507705017110386880287298172178456308700119574045481500593862508803418195857785250815909849347250473620112626329914170060226210058434829645255441234909959601428194292646015470155306355761624640069298101357715127951844646217841417122411972285367384819562397605146694342821982454321221644792479191321845768822142480496810971073423974841556782129304975860098178090529039289115045012138195251359738741747742168219808227966795748640504438736737996260366402185923611959203787060383587362603644937821024389196838218680319878688240918525671044889241889812122515085155300203993099512728883181643206823753837572999557676889376581976396287997427824661983007086183854921737288306274667323148767007979557205134384415542188612105532255891455942270053767632461083911333710179682071201939324384696835657128229682887761012681951971029305110318476160844540349242833756590325981113781707149724005427075857038195715132634228376579816059028884326229780548927238109099285861776664641833610632436686705244289223585058156682669598154015340838081802995014552877487435441964904329012675455446525518576421213735553628999619298527873403858024176680118769061282610482590032914839298279442814966984259474308894204654283419853072179756337891376085046928937407023505807823408659880683018853652451162725609454752607264529311440890949473480273146783128862119196172554837740317085247844648789723813634488603325727252366737749923972983387958673021909550530216109103649054314110748619500118688212517910920041534949135063907436439852436740092278313442604558604054608071794540659253393861762558445400364788279753233334260319238794453543217189328184929264829170321397084732642613101524182955430690829617634320702955868100019607395408724849218053080984179139290319851629105504241042559218463047310946874697878287494426566809591065496431794463816550717464074807499666706773256991734613531677093637357305942500330738960306383248633629457265376895894326693376315772591435768611936652891582643597197584843390242548131993758174785229691099821952248152527229907779869732976794787858100908905184148647514324138990936486761465176904086846973342571973462642068448640664927611136661145271645607618853161268330386807901929893575530740576875960116943901526080558319680369722193533540698412111358631273009481129125930087088945111414757204023712757951235322826823967158233991467644994488858140857852430706771809240677218698115658927319971379552028062495740572979684879867831578726190608963012415743272526313069770991991026868543401632179922292999382767012231608461228222211742223884944270274039768600182434673013490897640122463073773969642705581098513163776546436271920870876378821727431376706846447858226474011283917558888363988897590580197181158973325920355819499348266634045403401345940788630092995685024128455392757197333319840799652744490202079497642614770259135851114701745191898976644955724193498418537462802867300724394342354123030044453373901235000389689412259238035509836627396575180893221049049155279188480399453268735094573414906418224723893845206917669977327345815512589023010962980044011401338125016170901714588991446498029367952606011756393900159743021885081469196423806752580678527587837869605250567517563049693436924228432834511924342834894140542460789852001270978017415849652077941986699867713592853635816178682384394958767372454812988181117083858727108164772657348018937460097918931323406600478512240104838560235307511960206649981709988898773786813208261389812466241993878566735510481005667531253292292764248976068783778527072822459645885007742432036086510351463178804192967088367979882696124410764359643085274468842686676832833878503757744697092244110495634990943862820376742957278906463969492702229799742181020452007312684218880623688809742952873516597867962202864229529432084813792613077707994370610548857712756652170112383329313913302161706773641327630230959297944050910422754719380877379003249083162608517742750014095173186395583846362616959726154296261434838711950283403790444506598322113124084798968962217755179383815435244799494735591578711965156297795555094310504819356265405893571678083859431250756756291799934489132212584550108264136171715869290691023922118197513181100521081880736969849523426613628509083687836723611814687870117300707772671288927643116348764843775792004950496431139574090397783714878095979614442091649351007149712081840622316197517719134310758708035269369722863885956316906473741632262743484333154523218608434684514028400263097367418167288113366026076353843898723044415329790596610026008879253045207709088303253771031328210083537708504467456646076658754313768660591776105418744027673455760553055288440499588240717477657747232680165906321382817304598438139746009118773930889331581049959224741501601426132984645431274322204390205810695539300876984746423783506434603602223702986206002095992910801097746527391145975935705649065921161278911933343026523237675785757120735392177144121703821637511267175963055151018198832351937891322083990697322238040227812699883219483781752678738024393021720773836173941487384814345860762497800632028897693352371361166826648878032359482191214123473404313535454058153191046601219515802733720238651210374908382076022266069038109817490071273651779408704991592085305415483033433337016498480238334256998958999812566035586706649477262662276161442134614174637190035807297796261708548762915371353037938163740537237059547781597252866060324076723030569423168295099614411067333987632640894535156137868402542623128474549970466838231352037105713540327645402186072947389170767801243148155348223295002792735864412683074376643904481870890262384684389222210898798940588245464749771485547690359743400298757462427722063254513050782195763381260304534590127054781275600974139375454377470163787782292818716936358852144030409319550376783491599505148272450441798546016164920682963161225609594744524030145345420857932974617574494924888989333753719710578184605391613315251599137505503305822772209753357676892562800367710004669614128082156100356202514820183730802721049730767522091789061011811533344621881710440816275157645638758697653778950099211418691333551854679096187049463380278098132331866930172668625285457191927498634188663027860641096026666825054080694684614507951373665899294796185729322739176640034517101202650785592432209669838244322262819326000013957360123488129078873509106539909850460522495604337591954948011571872350975327575949561218079377434979672722812513816990149679352327964794520983644920516369556121851356640445165367094357377763471722453437459443628772881718354414996536993807468109519815739434416776136782742018520419046674729135555736395712845727303058587355510019494344061879805838158534276788289882500513534542368409986491028415655933276651354537691323125481700494810369515297176344269565871712268663680679000719493912602275133616000132390793793812761955147332987028844541351534017367879636357424933087510764753829689691872439872433658124385042838164574798716967941104577222558151491749828680497652625796475493803784833020135593116770927011900215354687270308453258776398392590537982358104691155879156712399114726328487801503506693162949392949848374169413387231035203149500059424712042702746455248852903221757422586940210776695794363336655946095544902609326560150740876601481139490826708743578333496104666379351452715095617094437968477817619747777127892188417262948211992579035607050993974927781296507869418895599716118122521355951160373019909902410014301657982443916402128602885593670639125396097955208051892123139291990183049282768483680232716008401135242365225212967219475128677399190156062122239118414155168557305482738569543951407735166442419864476389525844051917730882586146808944100458085620126672671927067341822741214153950337545074372420473078130073919725786264898429965167140009171433531982818360479144720378812370623502991930106817990771891698476818525386449380747863966225170175343289392114289837722636133308467833143294984941626802225643313122756256433723262952965141465162859223590107740339288207383016529764303973617489069219807844970762486447891379516136917950893156317960000708719046061193105247060405121661461210093583502527795765689812491438830462839233906107073528779108333376818502079695142872366440602714298698930151365011236184176466196684507936380156089965620882494559491797189547455447197143090019451562473058690814982361841858773829316960379096417845248118828465441054435904907163406352952390708988092473655488784490700780242962810787739245405212838511191278343597459625392229211402202127262635786439863724426242217639184289285572510084867382894549811662778847358671751913373781718667837822015556090963505776124772054265664917486008237322467250417620387768770193169205453177790268153806833480240224588916349544104357730101357060194086649019672845559631145868347715674011508953633527316229505458079130257366002481258046528184127321256313805289067466696183270847000214135438776097803351686214259468945739759193271464378275461790849761226750475216533324396020785513741051157017133023362202738880711949950346774958621182870860163322282405864700888843838181262036608770931436760917829948577790990972865260566843784122249415574257272785080818082303813351841098836949715200764463459104526723909102218407064625568684597341382930958454768864088474225319450470918498212381035523921966649245047914033266757384974219134141931308596812184314930190951562612501963977819963513960084319474842737972650957194688243539088922945333236266113706611874090926266807025385102135500073261863819773861024613248366750307370015943784095295334564848421430231911694594068711646390235518901784831765507300767379966775455494197609810289687876936243526909031675505700980403969297685180398605485689720325708637303982296875214557275033237137851634393079844771032629203903058462998576320368800834097648935335978445329946548654417641885819413187546421557375899541123867405788684607899912313496205703643326590056856610195374709927845836028135415264733289281087880930045107642173076972434901180130649189337493870867397487449135525818362558310211218828369140308717171317370892164813742884968148517407129324883928388932281163126131307905203793576498958583623891775224204632915264059225654007693772143713800299295596505312016030965918097482947435076025733449111824101885217237268453327233872627446785133011625089470519923843951505103185211444860265650168365810124095546959782505660408066417409304066788060010673992668151709561145166903960110422492647038030233288023662611077195448725042241028105885745510556440096623971399757061958020077863931631917074149912237966088048802084108964656888338516840092819829393894189190065387787132579647449124716162765035586932534502631225398173205284837805424729480245675314405404824766764085869502441522816979903584564600690546315372560561222838468478071637357963764565100752814427064940776503630526541726600327638836695874823783192133208112101990557952981583664647139643922966299802177824633824765650582210937830643959969134908138715415738566729016443602889156922740386201636086924252376869099721020718793428439698664699727070849539534602336699592473804566048842746047291915097887523057586850052758449328136562402495323577193983979967919415034311909805607869899097793242614039931546173088145029118393141101230401281410688282063808593133015094815148568497191912614412023141043701549041335958683642772289452252583181729093456397185138797942054040044176861651682949887953742979615403844794501796899056073296578888304250239524132215467314472815407106548513135479019708577642166296183551407779186754436667155389174056585558675302462662834456546395026386281247605657399327083304371443307882051099432250404877168621868788907105373114043536660032062302325092361334133363255825844527845396213422842916649110841427160438123956490238392271113513412101443851110785227249974285194528255935869892437722909902619768670944286309887147433616803126477305373297921869648242993710042594212740148561551932624751589524665962310458407383700077991396662666279005529365704540313092173470888407424798477224014237047787922601674989852326963534534214272367557484308062257245715823988286597394990934428583314787076982938807889163982860006578142887961373508308607265173504246528567744689191950034723625127106653259508160193120035698273882815281312449643572803347289811748986511744568682984435663285134265165731979213153787224585559487137813655498693693887963061356599256552912127773849410935906752820817053572144986982156351671784904853169886511169658068279011836637726957324613134870251073949965871386142134016550071503527704227261943287363001371034550627115980339272280820269797956114350643856914907441289583510331683363653792178954624354604148773070199880059730488099764266244785835477647889534136863586870579465542135644261754553585226435863924928402291474619233244978567217903281463837223589475969619994538635338168699448133535961267473971818063226190975468029655441047381861060057227087440711327700671207534442908497623820666876281316008840878562399707563257869224289865922450748258564369328815948588644106198043112726352218552291720598626956960347266047241254413596766006707054141281493725108234142711650435202086891719236778150893282610793189219989616413490430535252109492903537539896275310537326755397043713850407511878658697627146615418403491841733505795670154954322850760702797610682880558912585967689958311603655658108794629357983346445264358080168709854891875110903993961744356533978828108102043244180786347343754493982859857672647902754297653325672896118766543670549622715423783036819609130974454016974420420762434310084809252156429619915854350995320409636946306726942267995145019600205961604971264994309105943086915356226360823564512233264858570984157142210818191219737236934898039590294470141008202854586288819496315474772513647845310143105438660645431295928496020580914997639906239530334094261895313747056498372353786563876676055013972256743731110161913872713726147172704298406863274656953172191818228679418776443228219439437862662807612089247738773989098727980026546987288269449325756882432971875243990388555997034606465831210204603834564636672086107469402480474080080939766176980505020474389496484737142660171673969060349851605071134637144115752338261360474786081386162884682559724915546925081499084071441979923869297081038972537111820718036824461564912730198582933787787500254158596891639256372886926823680494274147733931313062399441167771120415535968648464680260144846420526739993226750502872223676279132827517644614229379802126304794120579515465089754089318369674358926291527200450817787774652195896938803680575044933144182483214646435870711220995680209413144491076355157177779575717516273350135881540111421957429823265477359327003765956025832884796752511351642789292261382287945758458474135742996547140601339966599269799540908883032680259421917604283427948194426070978067681334547121638587523518006617309961443255621018474058640549894371097912036468625606522719973497349469526196952195777186953772884780476245954709942320581874861921880539659155515424210343456853308910345538622546072132135997454183992612463792002157204995525554155312363566192462657275501076746009290569951271741427941735496698940395405305540935377822165255567906171382871580836337422040846269740007338023560534722067002317944901106856886758988511054317095945155926494068361148423152406146568278715423846073242121858489188945390952401574945650398058321127878585770235489746003519396890892919361803855866353115158258550963313183262932031227000786932373575312176641913222269786749740188616531684739286858480638106012719016989420570328217201092792894281356509264260980461716590628073544895044788117223762186518669424577914136675235403242921174641977200240372735267715610833711664288779660512761725552192745583944119682774906660740845084407660415272469736387772175867212595153690983977448298333862416765088061882525271785121886655084878536818165176928972684422682155953534656968108436881320916213291940126622993171825281692126785297218725867614652302259666576118445981902467506935148234454891266366942731816610300891113072264536102701065841324343149887749335257062720093615924616029779818518262676846043879001538767446958837332626132073591594858308118952786914972612041300543275807356849251372346064016194666993830213243306154188148860442764270011551890261839465732887374803172292556430487794339908268266370544315584636155180215567891108555273397725606181001423065799722417126017278310518085718834973134291924085731180061950296699750768526026387141022401278123005646380403328028839118035258979138305796065136282652812698908048744206526135907831911930399622733537138562524901156462865950264281372303410541492056229847265541175987220524127776996152406118568388517522099452297150087180666274488222422185428482184694920918559639393474345717025842726470329187888959910447650806555716275130945582751946915801673531591646546422474601310116520408220883563296789779556000371664129858252195632224947214355144965416236029336566350336613986652889622825132945298145378435619523591737855797223260917080565797121545276570346542250317061599428513884797489730598938054254160308430231459860975528910540528094674667319247043818338924419870166815285467059349434021707364129889184937084980738635120785756277535086101241576424257730197891008020380838676158743863181496090382315132372206697007808286170833191766666455296606757961746189265999649171852240148344856472055160187861402062682470253374501577653213947371731682825932267253226314490739043958391078624832039020934951152875707965031676014929498298531772685517254343027531198961435982821227699094941807189195324316839088373594581865860641638906775034460638014147348167883134602629472400840705926602796963048911877741086458992741964533764523535733107442540023016882608825785695067081880176670616958430784366624522452300710820399132256742783961180758004809661457788703803313373413652219513391403985919532750856242243159201571118344975749187415313878348525653219940356106222876575257363611522251936684000123519027186837790005274740237730460038790102463222474587962523680295835406564290298980816410715656741885849481758356325177704037189430899339490367396470766083156527036196347709744752579055179741623570700917224089618296927374156617346014963536921957112594347897282338498408658187836264855921797841712359109456182751479544178374329864282035990298452088538117207259765583222423145177034180064309987755012534657535463129957313194535207484418789381006578134247330641698069361887026471298861593665772306828760772437429586587965863695297550427282128835085810361561695659988534581076110429605944999615450562868257799212605716957341442757416115200940887732371284626124084787411027863190122379166045034428980152189226861994138300652120159869275213091764918041411370282482179667493266857287464476440587795476848119992326447811180420913481477146452725034033689586971581030529222770428316932058826028880177388953523124308712443757254253620830788253808374244055248025310201669224596810082470360374332099416090904121288361149381788507946107869246724289067335855687850749161429660996791205328926375629862102819252621795290892078616221162071106286950224316321067496229454615531002240722188095066416550549099611431504813878674739557370244006722897476358732922482275629594506520873092091513495396550146626841185992598865108837758556692999147713024070747421310447039727344362043139499625303756578587444484370431039541403847271992474825581169194984668432888348046689326348733054155280442544011062617306389742042966563394150817566172989701585226825702178708239695825442568400954897085115583481359932808567015548965038424525631985260246481217644691739240429041991700365181467631612230330946597661575402033962465640679178803627292768092103610842050038255534698291790914790052631503769695182488656595792865474184404629926492001815162816977110836469933608287309419617338010934652013229746562836753256064511369035676261673426428114043182606379742880442257684177195010395326785861131282483974027606122460271855505804928032332476860480765794210139252659962062838702904371449357833873812439625472339934728452890978890448992706632820822898795629190542964900186535108393257062570280068942430184250203534806707552219916005750408007846524879652115461034831396698049119925475512116216662928916540128364266524315220465906810391854092237041766631682016770450747817494173158122069675284030287901452563731488651534333757946392911919208566143164468761475934634349118942486402586970881458085488925541086206958809750042347723803136593514053028636403805684154474628598296239355427566267563861087480944257267238461691597900709565146741069305925905594615933265582468411000260259072849962613694536861644243153717150884747242731628892259714393223108944590115954636745020172029054677036128927874452591942000621677277794935774592915224550669338291308766061849255956082451285542623321360400353927507787808918718221557764923626109551259630303233574327078382879591903536160520356058275106142293262102217399505230305250228033760456238218301721237975012444170058300270528304228259937443549901870046712674518617464883812408767146932666035111865062449774878622148427139170209273727935470090552300387171788435756475982325804016404972156760921706599778813987190126746727902240813536694898499493776019996332717381404923431498745854384214063100665455239955558582278315512829732832557506939349670949272066418512882013330769338807843207484083176695471400997842734443793143705707141543795864579884111798824344286486505010149068868296507304962549979743427512821297257194837682625131826984658964490298993429878209219425397537191496757460282451758429381167168124433461708394295946041402685420156894011160542457176317153859063266686791391534612365920691334625099175872483583719325302422919858688339476040354820646768778465170728397579654407514804590197562235473672487827191569999728775473802328237126467431825648429078417590485955543896979139227537480732970850656101762132949448948628447075205257996681804654736966998856511676943826619512186754856787872371699694200527837681661992022759107862706244098457883955529437601923159657979797131677915437958781375180316155991105485894195996641746579388855227841054452954572532723997740723388727398947300790427332572586172116040819029395132419399541052783575114421729965551776820718926602984516426328398838700073953446739157823129576095187675130820578893910996589466182937095242194708480258611853287368135857371339130942939146271420782368728976074243136378322486271552727544849481829631820639887321028118084657721442643281130368423985499795612992256149054742623014463143673607421577350293639531035815405242436109276818407195973578776006772031484462382866691459673247715023744732300155687890614520456487413524542630361696714602542766830973572797634363933853027241350328294578042205705843902488034504932281326186907973340880384083972789094918122917439684651718518326999957669039689255796528504580850438465196687748703415388209465648717521827819435688897059985081111836973654640177140255781346977926097666355467769149071019174080053822389054567578990304863991032957094797625622889263527680174113183889035847581328532681425271170014437864608132468676804813514080388877450183158507383227848458649607342284779562914260775139761145185946497758033820691517480615199749569136639009019115226620521457144837737139985076399040732038836217252760080142259140604996091882091815559706671458183713453121679337917751520768858516394806235486128312224059787104743302259614695377370770179636752844834107306298743018430328426038424808890119656729933177645457699366565692819005608780513027563260433182452092252052482944671896772232256449124065176341892957164450641824828113356918092096944023639215793594318814985334195343274460344339744429525731299890967085053429849987946944882606239623222581749731070367757735302515171615487411794632529455401834449261416770720560244605448438167204934403779209510951009847638417045881696659265515385627347532957418913011289367362586097923417068421249117859756339677622905317240712109703594334462754776854720145555559464176999496273170882300677108909928717054338738546037555325448676961203090480295573876739257407548784825747513949600551926894247455846055012341610344374517781388495901542836412376572586709152338275597987267243605268009718673701722146001201413853538869003737532786732439844996692527894243450868657818770673522840869732941341408456730711891743866607989247830920256355569588930878435661290456595906520503074404010445765576438781666691862367141548111196264608225164523296536087364157793408042081521646679528051424375076359817792997335790303158960826743272184524547322142321441123375671979903413087450968326890816175406711415251226505127460284967575450926618048187281566923670707596743287261285094736985979453839840075692674123060973755131974851776444982782601454240127095085310348311803741007105078457657466795497057225363545811210751186767882923250212241419521545000037239158842525547503805123780584584672946348693817774117115291419470790562763064699305175389177954109354578599685413080558494387078640110078318471482017329383632323316774825835204693724288413067932322390110755841105074296444893196908821277127884940376996718367382503335138936292058956101477916257599253471843883814721023874754372170424633622098922117596217206825026444607007499070626973112658669441938558896884937687862994906393717779076302279407336463851085763684799514945070914207502493881479932916313840088534399968701168414254240667396414187064223962805116423374159756743750186538010387953839143324176005202137540719979154768514482922170482887537244407982323519469101393302918221571921294841285525621278242808374098212465421400459845952012622263258188759158606099761491651630749132528857418417527246838286573870664583413250816626282404549241117145635052908087580345817564395036259424287398128381119900670030140931005437681199434620072673871169688188258484062957708935670083905917065900246022532922268793446626901180378647160437540825943779018737014403479930026792515000784880839704850560981165014158425758732844968815381320600408940370474900375558528326459439810828975132768134108967557250008903073073162474474036788689359611844726843664097905659243525621163372670906724003988067517451783928786861037639284337015113969649247612924973774517317847470412774563462410100721153941334778496737706451087536245041232333340183925185788983369119072669717356167895865922529014708325547106549088363130233154369899771179124435839685168704212706771603581385560864447130858486587383813423673131185330811642014443813051416747618033750145113953484074799940564149645818062444675670975189687101763301511596733187821974327281761677044167016834642923166621571082018059938752620736635960364868318675949640323530423312153237319495267512638132376291781355175076098235338555364354833828616219905071411494231241472964380196550763437289674546306493203445167851585694982756211114228018509667594618854216937874665718767663934842425628285719513372948092026637491839472735494513510839925425747432887342262655395147973359881609304801038030883379528674132817554452380757869139769545271206619454564747341087198728202766062692341490691936631254358863356496819396976184241535879734909527235547520846535777811730833899503718156687577204328662813963496762381048638916192131925534538112970676685557485167918916438683806422430638308543999675585778810766271857750644894453365452282697383507477899694528391180601218692941006234912688499493265585003772314778964931431891139036760053416118611233465105221972137341408330699181805235437252884314296815103011602777610453102723198995360327901846247048517278082893533908761287792415923926165784553617840562263996452528583300294956315749399659343730072623224177212383263953027909852177867694023767481831960978293512385089180992353052953440889153692447708050396843962830857297404728721954528003731619902974139233200505686772161969857542494532270598421551218409757525164379334635840536122152424508669191625934323688896425177492498556056675619897427944905645732910137333566164301783094187723648560559026808023472632169402913341640997975191828355777257128531977765704857172671687758435207481643648813882869499578866965905754653978574390437092722221473863039815081073724635077077851409245484562418545331229421754445183449726556290495773323198020890928381707648840561083390484129558235350240088251184675245262414388275324555505984714137561048093896715596074036609226832256972629871518384666931785621523331711438324118908668553802393129672037772258460513623908900525166218901975023007878167449189933883373626806092870271571257881896958347180342844772963688056762722183240363848836365110596031101315806201744601792938121849319791188308643856587779329225210506079846771453184093388523292812005289160074426197880693913113182287183029518281747651812365136553029704286193361685818519935668382273043031362756082427022856339685693653853418162195915161351167366838517316546844669808890018404534258103186294896062793091936186579448628427936423569090378193406968347161204332091715424246277661084436464870054386301492621194148699507871082000849812469931289965180449399580418687993232372900927608655755299415668898565122593898723161641836375993374294394653462652528054934671460849030585077592732282740418367278342363949829955877565756832216917619806847350918413986419835214973591617022412760933859481774204810777535702016523501083458143386504198040808878362410382267356208298866828414221947431140743537354299154810640752802185173273272812194368618810691007036495403960397259244128334117085112726588608794291504711941980925414281222694967976295283518933369516902910515766034002965062211366080976886256406848993660013932604130029503798574221345237091258381336153733643976386223060146214153981479097600869637516148444771609863170241310989266122313992192471592556475134825730583529406664089066861933698338516627337127615470509967453401155906830548809732346557345269764596199026572018849814432750318931224745863519663924052895935769921473266049993459692473557977812335721381395527075277875651841301411926451771533345526814408315430647094744924135144466584925285292843403302830611014732497124740470636938818323256902652146316525791904420926088505890559052564253714336625136210699644573168606126947254961863112557228923857669717467488140755323353673307067451400910537466722869625163270021939144739576122056586595836362873983477101121303395149917872984653715051144719249905797302235074020985661419974163899172201174556502662887511234488788823120436367340671150035077534692231510700358756803687656262770462834536331459742103779379715995116063454726259066133681620377503976214259522116524732800677090301112347235200351461753600917072162943683528420323946603597041494701392392285476045167584695644879981068358985343807418478722259390512834731656793629138757844625650745087746192174826032391097462229369116485139937337621888135518014801012216740869584415018010853935928726066623246508205120447405283289281662969414270407832018958783543189741385840459997431874201800748616312289129773972968469579672292582508920950380791576749443232797462179068681685026733693857133224937007582734220022650760722739869522013487034483802082436858865495883998617126047724056061269514185118545711632528571771803464246063991505162283773952182940448284947709763972609614733392365701261817075787584213732674730291413724307476960906643774591635507273252396298238065852036131228067198572665127942876388605290438959226033093420437217496541913820429362748777585924982557176469512728309582760039050265813376287174575965381260964746976128791771671939975639940494202280377786499373570863223157476472984661901776383364366697115461397384118126436898896624763768866280008073194660945919845864662061341521776506874822155276914047712414331083396724558278459223412996642005168150140948926372941144141258363890387993114868556116077691682797970268341227856998735749707428412307597440260890240056669836918862817087078136175384186867384600026265195708861658645955848045318898344733297468105569174134894529107512538985710350718735583605572539566083999240190886615992989925343570037504137519699437137420696548450400906142114666915711328357803083314433774029301894925957866229880330893773462525913899834034968483276896083439340889724968810012645623083811384067245701919488255384849327279114802535080420012223638596007653951031812746000928105240209465187884694700606743625697780219675700955394483263170221528408348118187774695283328776386330268957030478781907430927351565044428467292321971085457238083125437216990898831685739928977036848189265081327118157399582799641570655710868235317608230591019622777038032544801350785489922951487938320032969297175188422597368937491669749069693359149266984280081899955853399164942990695982400205132813880100962812468689582534695898181412517042106525188474928033043221608669672279702654402717755206259161466767678686326551129748837526155194721179158094585486343965123650787586758065580744332765696769185264429453279486968293554461952412300768247513921872370470574909033145539360701246416462656464335393649095042188476855517619736702199851905625997527199189876014930530531208435727459131693634499222928329184524178522047547302577732870036725714357611280685097411133232927474082270174239531132063829365089147207254395202610917139971585805705357976199711722333154599889423996447955003783199399027603806568486919476058511424582611879394945326284752964005045514852119953995321827788882739147535549668812033368249391769218086150850150605854649649128739137545243912338463726685350095630001857971408229465894611763361606799479666495344023352181895076739542301481841816931915931845845901192072873336298515938432116783820521840107457261537299611658607156642740274511664164292296127899996011554694588202355491836528604914196231406550771252352350141697091269692311308011073158716188191519508653896335946824579035613358174339592063892612628134046394930175682772630149686930026025697243938244678218267385601630301232697913401068218291639698998502035419263894312418325532891605802706653677006086510589768256711285390518240689277061669817443938774639073242323260420540027955328992150993169365087110978435485718055428136015556678434182466354315796300024542574227382641365797499212939880544055141006878102915535317523852589136137217880297931212098897273510991240312641302161472133184334717682923899491018199331879476579948144769207002797702028464913142132045018568522972457902134340108347914866011574862140384456225561811702512201143964826086293054988480881203453362625314276024705375965375322894069786709064183775348983255904686168866807113394781694620339249589141630333993854805298135846677390936368635859658733581242136969659747505390819855626098466168331358737406373659190011886030193659954504410788170312865280176496229490542572792339852745578567903685824649057696505486179408765706973484094638684652673982060225449807920078205810570566446080732453897320236112586045585225721549043583528498839859118685881923420098267294441385223733712811777700797006483324313321527689886116176219448124690861990295128786678834328367086960629876789394937088603909753353412898296993154023528747008462957104392371712122218183777190421705977533408856585952332708180655112469397969141958854054413264319782591554483777882430987899476593901086892611383088186348529145846880142990528755757401241707260743556277947244042769182933918475225406115699060712728341109059778264070117600850709673960661535380864353311315748266247519812164711221552417072422504350767966360795863429139081222716632232073697822604468143796141000018300680809631036290346736413618564203347522567878217277766796152467056376442748793517970271473516136811377540398030994556283375472153449219091067185910593385147158952357340433665119531904031818319975753515709145196576269986909153564885338646991671820427575674531467058453548525604628280553421418984273776891726368106408697109824996394348851540870086104600509209113270849672719652142303194557232679841786497662519295417767608442290563438879951367654752376401556874497425955731812043657207701403440819974190964212279028272446709090991019560382154671646503220148857836274361516306735635483634441340318485052106891241798245220393328815586667618864412853310805048696326774507231078704492545941106041655079673336476725055561815760233435082675238709820164438310890154898422916158315450759455726412426159242738028497196496882711702752489867332152228075296510003005039444910853883968880032228391122004854965563471746664686317848801366904209506765653345894569114417038524043033529836454598100889091973196927165159756068476697787545243658361443855707977484653373115142104848218432737401699249182825016653125512728707321407087895697755989856641925004671688993385870207634938828369928452150100828003138386926117294251716501572147765683066906207687246881645609119799432398928570722793443961446419728560211904063816714823209211115235351878796868111749327795881714024803897378635396031751831908600947190160059115439137705852840716376992216927032738221506300533425226558011338765325499617219295195983744231582804610186969794780800561857322758234469346928146299121560292854141061810215243158548503196973811028099034521964209958358689472516522966488072765855872490266863307691886309559353920654865785970501770295388249245391164071183732057767767616517281641654294303072948448777964957846041171493597242457309851060945437273818479957876274521288602607783346918088534647212908104503625147756698578039525756079587216574213123636439392000554044713130826737968764241459130573508390340174764754638860006120231623744743237773959111667129101024346049677314392664210453092378853610255047505027330966426225795667710519054720768137939332710131745404675936949652824925589760679687217264679442162816628363713605956871828597629403607473099817974244876981790540251035101177045324841238485647056405670372989983408027685027274256381207681751116660006509928061334591803785264610459141565724760748516046325248327009080066615227842225999849797034450014023277554968976988972687580428100275644839912826468203375851486443754510081541529266851226782818498823167957176960548132103704485426678964011738297445518026438220262493479328725974518680331962522045577957292779882223435727653959020116077892624724532759462389826223272305885692889076936450578164153976802213674673874130111860221458726367733154954169313054640098729569155342176648374103819509234437602963462479215260068750243268198769892187145841015814190802513256900139379429696714468680785939390421009769018853670284055411395511659609655436717575020695646365891717291811969809915592063582030112956793248017074562707571762475632635051034529847778221624375410743390666152061124580739110351624934436464257176530369765181329979610855148291655916745309135115908171222580273612430229781860867770248347283727187974116904171218804544096629374921332035642789335127190364042195453054917245356239716102087420951412793584972861435605064744993834728814113230189619265697710371301321288730847189863052328201916245087660969994402147170659367165827303708351609559547010636047153802057189217753424964430284725140028813497834460464633303259607819497986427243043503211848169401246756127690810287372351054377086778638753183157233603169994537692613895856059190400989899718191989830559419747502043600224117473610710246862607387165863203943464689152194293148506554500162404750199195815265516247178438286090533917673215163269810202808949688702985286801693251728412746113852865651873792508570096872906916686401225976220120418508288389341692165941472213824616095798726613444502370406500125827983360484596655338757646588074705795532189781104438202489719723591325252760014910256255010247195599968120429061346518304446092989246531862639310422222346653208058415887655806234386420855132759443008109249781368214473170829455894829354254230334068221056865505798607723679076571812208763753460325956771150558377169200317323639729488114521416485016282308507076270358871245846454817298811167122090778027424373310050764324586048766668891029835404966291232364867909683584274354270418054821080172861985322524438236284100432810866075906999096812228652199287899356052083298156000422302981786112905741542954805977844119668003621944968684272676933985335789447182639811732632789039224433939497866945466022811479150505043139716117365272742692710079111998171586534215871849673472591658993627249205294047597026372656387148866295106385252570545884205851865468201455971595936453173425687903201159763662419220831676400469585673305219578815418199424343114765525567391456965779867990131187137425032011220375748915987896003864384703710327224733781983621230996840235799901102042760959209349626154962591537950720123396412799736604886170053809014615658513129397389044818206843266210920593826271246210781048048422892810393019353318101913600238359414998165790886814075456378575515528828287833605083579953111722097851988502217093805719860082562539966437589204230861762805139176147985131735999254766936293296193248974565565157605309623139596868990162623010523655252165961975905090317951160259702382754496935491214444833848500139857713370532607381294188163727821175185881053213664619165343170381490521520182303879576622362087288724174101784700658648051316764856425906279171798911366642922743782534879438239031353189599220114889195193089712524481296911819152661106097352877272343118475705732225654114165373517090124144596226747805050339313919580339313118330395425172145369170203633311707687914085549174331811793643696961713562920989151461308133249871906298725250530862659964780663837515398018283609691048950452280323505950196707823189904219085482504417013877242489410694690891573158867731791907215154564783065593260444674313217237118112201787122333902607810781307836297012811874237282254195544968494957327512135807542317958367087309084741517069657313196172018735185514456724224118947867234740065694622057686976930237136756049494315033986768944326607736176540891895271667366397908435698385592705289797826067687693020726292218186302454563488500097230671526973553791121633419075483770348634421062757525256523309747113647757066895988755207467750697934168291155059442046917338026047563192418020792840039645318430469698347325616427004657070010039052231011826917967468743152961173188931203315169539788243859065030443644797899643502103620292709365616371256497256248876613050146623563868515073444506675863517074910875766759251584940196867420521646872141522973874777780499782227879832001216328497175445436867962981447575835475487492706069805527016572264937949544502835031587485151203205170496203040500521718034554425657342531625168568558321211325636187933163481337769988311600390229647944362229945110114390998372519805791508752058640361051872089249457620991364830734771352904791509797180595426231632047619595984177925233042692679804822131876937273314098407774980433418000055978756468312470064731741443086006020675742776884570181428032537251188646128351002524514992299379297433458756852512637164107550807204402803026180813276002281104168601356457541587988352956886666898983001390385279126033309336234727772075330212189438945642621009846729289372116660311079685404465962979219161492482389547426845834381058828522576928890621988368657979978977602236447620921085833394233399459328857782981681311881941994966245285416537894393296655610145640408101876829278896452201835110351983679936029271371664550452573536114419884957791545546557958086919048121399684676088840449684710139723476288001646675298351198012425221694048562927717054327904505549116204618403414651159631973933194671840902537171885049364154347218438290185849796265310142843407943241336021256490831320648086953675390705139398510636980559910740014334529279060648421836414448203095299402620438900595717826481661889662303421969598724096705469203891014779741061049452288710721855293018509473711111827922922525635790660385458239967152882948662463964391860616526230847975749224315812286403300838214993515804262777702950157860773930268891210049669468609163098458688259091422806532808626178022967580664270252329658389113103900560859643921210912256906915025523236589648532237335505986275281276130032242667322894271644333269647231566531610802888988199482217807537483574559603024137299984632006218977935042357727808467474829978160382207745177676103517565810201678677294691010500698552085338938613680872715495689193520103260080363331533344391774110009841032546794416190712343174681376712349091673260782095225280243958697467757944058203234536063693391325039776190127925160205232047931716301454692648125535112591242204302591103975692250220406756072945792258074767736977581338091004439618577685947570277521084389717224634953505308226031900148436757104682629361059049829370197563588065229480394425588117380998911853574927923147922033533597241040506629118147217363714920953976463467240772409982638514755881888240954013309173893530091282062220248596829668821697527792128155397591422920034699993673524510094376106660276018417795396719607900210410619501939818353196076050963641956798464601593610012377510375870760571142721188632595467037393795330622560811719711846201326927615938988707716309209231640343705746166137042164117954555180417614650723914748464573136676000237958080930816848701817065910185679863868914266592797140143924854993302248083152277036681699030827945906919820145689763475389041786754776582213835409272114646210517117968873327573643544433261682164387759798676678682813095429082315644942385325947696821773376737073920577790643783691920947982318868035245575078921638415790002066576237323018896656758757057619538886230796506719579393815241386693141905027264019624889959536137810745482543531991150249653865083909091694432057936800558936518082600141494138170600455637891102967717107531335943827906010680015467135517205484834475378850806798110864515657928646758211418056018072425967293454363691637142336154510204591775706146890615755701608205539406166868086161452621696076648548344084661917295848671395539833877439976299045874102349249943592157389800827609545035506097155675843402221168636718255220663307415792579273923611049375613736970260833889517337105583500321202538559227009438281247792411451821462761433136564005508771141701460142261098024616621316577183005388765703913944446331749473682209349829461872083281912084285716784666044446454688518570002470377246246531051660517628347350364287165722011556722727373044190850428528489959700001468324930799324172238945815913726327066985958828631501217506121519871847778054061507668462530114666703612052514577323448850270483245178481570381921348984216089980884042328220096705047937886578063163955627786604503326183411298904066901533038773919783142919760819887317516932249445208885082710777540416020541737528560712093747810675197534507552142718701323450149292634868366930218703670557537375520245452328433619655737032914545878832999290334157370930729056269000312651040689156703534559548821952256523165041652323297950412340274982956491088070639575738381710768139500818243646475004687704183509702701585977468146760936877673427586247560185341185233947611323654682533761389103681599617028827049956631795249880292772569561521830742512591806447848611315204668683844977181934032333567724683804939916674929775277240176605368734728329478340293479953305513925100517301109482474489900568650575328709819355318678586947304975788455394648347244281535073015444729479897163424768643113977737321976997131482859339666735688069617437451002258895379404912149036350031247950642160369729910205644095789107421885581119197528167708583967935794500811197555555868424836134782377637485923310267303538741845030179620686136275521200426475777007748764185321703005671527544152394867049826305867925936356280189995476588158230873496868053829819569329989225481551826461359384674927489731295071473902133290534394058078132853512884664756401228926570943316287418926563207628250085499769358321001772075113281061128032131942906673337075777704480654793722042996511042627163929022263684059895001463416680746401611663389687677852702148562446405607813648142632286473827566585088305234674140306984594454282569029861654970294463556128537001398007429435114810979584188795612138663615939495759507428693453724208326336606432961927028408342190064153114567192048752095510372380428700750790570560274968413710475218199348151131475160916518188754356100380030281172626136058480909979357264375874095853472324661730558220129037574691596907110613035000652722494866910110357173893223103242133080677363670371620762308037540126097300677752082516674189472999601394693676542970209628968318931367465991793926501563665427465644916124562015466618711257101155053671186513001545038439799699369086178624293559295483153214146508564809234000876210124504556069392353309527126698255245957588177270427664986284458900732842982700216069992130474685892509104497139217139440383139556927347549806471417559002416423485273894217445577829332524144396412284732965124657311957372413876890260872956251335153528768510163286395788300435003183414737997992717187943875263597450839337075549841506358498400477971694641676183522125430983891969285067913803683360238875201635909395149293334059700918768290404678866273423187352244456672360908995949067954231409188235370225488377523357795527010197035037339961845175973050389879613173852910462374975444221880096957578396485046692149463099090309465086505164332269200577388535639964763653020887016323537613047205953457355112325994600689553511681890969106510724758771933406483421532501384431282688175937600472949842596026578486221747901809343678186749998102909665141955802054203984766649405730928101431286297060639304470644778463785844391496617156844523192593081673863435903970978505489838964655299328863505738206612445762590458233777195300181535229056129806016409217257587035487305223548205792968673036000421661830412761691012955199651550500858346328580403157706816579424983053213333761693162606798025747416227894217028921386589469294050619581106918621324117655472922495126161835476013554593950740522691108858731616836309323093902637144314731648422529124658683178483536297920036824367164106396234257718103957149354571379244465464030337379772247929393249475371922318624288627206433034579617004687990527161622777256294431576625885991786897348902108666090057996190538699606057665674500427262591418792104846509834924682654148672870881270886785705180951056038124201608949077977120865358669804126280085518311922404652876633348221012664911056729289082038888037350840320950618459314368383706262458519811787579890853903826441451258108141112502642084839663968650031252318652381859088415548894845365980253894184954702991762371592778648507124533104426331312314214929429097155116077071616439631186698037834432647141664452020777410565661713387296678172758811946273795523361332335762242046844564024911598544967275159658648011512979280651258281240864273410528403844589830466190642055520195312398112254031518051284184743212071261051447945270884346677119197816266475616076559827302823521020503402878247060310897602064274909648569207499719239796589307932480470657882796662002858255772180492594575686888989528332898129661822795166575227847402301448513497980735575535839753100822669079810877391080362725675671561051932521411233258068126330640329302556318500273871331664121534728292463169217139703241862140806844846426892767360232524894546116912720530181721541190240435810795060699747590685655815954498329553198757672857850186045761221414373463373900859515969986187828683086743856977920267319121596940817061122541754303525006780159157188771117695716043873360119576622075540545172140788835093606401231141975294362789187921181256144488457106803346907780373951335990598573439955843267755466719932550268354079192355665330254659063926161650759373663717846223275214779730622821913563269219370294003979862480754674233638382023304136452165972432868770614154458869081849312760691089082590092528731003090439404175575718522570240401482439771689232500254105261614256867333982746864011700595789327531980287856228856886365647778801294739304190908876579794729495221224091555631027149098964832899975615149763344329173982737918688718410602775068670584338803077065120178807938644667655005993545503623403735637410898289686480356352731381940438037836972662784706804550588408949922509487271172647185400631479668207744330194487924200101113684539203518139278691844546295609541928041348824010998311351959030286431169912317478098044365052374675381376017939816767742875039802384257823365566847618550450221051772757619407719360394908955499383917905908193654060734627393783054648863308964132994891063603944907456845133336739059838597305367121985452279479829153061557648750514965846187928611271351852072297843571524623389509037456557285120248413878844806755902129536298288775148871911853344534386652380897456466863646033484343652271746162354162198031675120815624817851513712263562279907708570742181748851187875048601694880536793124942197993103844215059460064816186160826820351742151234224608032963662356154606739825952591042519749566297843135075782906583871068912328648443431451517455527768665395774666965739155262075467117983201458146394624611257019200188445968064508626954706842644075258358966556987594198430849377138392380487247690528899716157950817489617743460540738508989961570901870661820974190164821713858266153495825582083858709997872296613138104323441967062493773499565471608152659104159627147703478687833246680772318491925162391464842901998128278490981920339960406498422512054167836039568735579557231753226395112889673882357632843927386142703894983847482737721656783607705493719304038673914818864065650850178406014187045496623363088427710238863970619811909209733701377061632724916923213110589032789008745068467374576361017467815902922341425956500244568586331300272009130101190524702748738391861982120706789849334986470337146852126305579149788087712916207498601807596830823032223827536183216621795940458346080491958327109852110825195635380313468976261506786039558366234006836372474974213474280807409250746982675710928525189606083508729162507952635380169899752606013329786474656200045006298732396906946512301371197191155369143751644634544626780433150284294468421911042061384404881098666500604701209928255898084505060999407047112907168706261870945485499159781124174111311315342060498644398587616004712528922073154064250620603954467563024229242477054696004778826511241117200488048292138182526173610827105538864369400883272497926882172577563889208469601412382307714039448521002865164270359406775502234526518229619368382557264714437150375423433378433947563791265229619445205217346513054772606578052049343294468965904615150663195832645804225096284904637825702486710124400996848987179762039753503285604068606940296076631911121394180618298949306557982697310829488762296931708003078956856571238080219565994768710353393899879606885482225000085727725352501115734136678126268965100712335431611713133505286518158613301779512476293501602103022226162124121322664477507846890239312578598064930674520828889337763742137424161660118660131333356463675339439408426892577125522740346621892753501234928365643437112709216571145842341639138762556629943206226449970001031451304159737455143860585632176025683835760197488883052163066597985176462578262023069783783420796228772262599972806614914403972019942270156963923836413266030882938028478721360353705441599577527437639915067981806535049924650121149958731559250672656473087289180855129114894139636146382730331126017739699434002237616355619636577531500538706173436894177629261677015583141635319806050878731603367736470241922413611153978809948507421348967610892171907818763750356668966231593213385921326125940771034658968374792982366700432360429339404911068271949232010101029490179062423461227485452690797099048871461707811480836227722414812426454336800179193159649972626477153221144233154368510392881738798685059052241186991582826119125215568656699754042328973801553441949368316766344964394183933748654810051272609018863990087568200005745606958709525041719133267108969572682818297022840661860095506470121159809877677733482778952076031676437191033183928624229826576023727009635162909481251620860299540864770790870664940708405027673558556937454953593185370885767510060240110957630411198034300806967824693839263700384340084802110371677675614612240554932881679323551255700337661509553494227172895097816469539410885034348572922430740442221703903336726810301967130786658822923809080331653621024988037388835322340808774377881630596220286975309390373502612457317031563607143457529968697993558216234902383087721034171243982832970181003360577346350298975070421201478247622595162316010220385391247919805618939397553627674145125265115155177813829456289382710764781423888551073529655496247506458888000596784070521872448229182994431918002072616510955081869471605443820293107304575913617966997954079020632927224679929702346865127260345044928452033310144059276404829412555653901575161148622304238466437159675030737599262828488615159200027239668710754891888159370196491117290944073714180192679824458328393078804480148292405394309278427705277660470986085291199018670142860588514823092740078317175597488467203294843693014163358399519226650507720489006608082058248241893994188467940178231315022077551617931655905886862878170278540869043990426163233978881930027696443679101050424686649346026945331321072805498968979223988425023772002917869129494815261852466305518928097621520231278104160869756887225977683704732869696820651083832710161900925192302092300392280881303199368915597243619040961121387769494392512294795155616744763457779834899810278783182968817479006967568757962445472609008291607408174710904209864032693957367334801872293606914588342146440149014336680893048172041104744568881724891646340539899963389613292427691981712536532210724778605021447202307779958445390697681106266143627897932256483344604394428078111986198478899814926303446010579702524810853022547366197423047875493072158210532173273982384338460788989339078088363193479466104327419283721877142605065577667999879254115813068903981508133333320894483279567292273757897886668724005532067303249388268242259112361470914161345871366670691969160201803986068454924957971956346516800789490555215988722259379164630694686868727650488239223247487668792392266419962947042941641228184235838360146240232108517335945149677990760550828717497051728834988595784793475579981814907338454752628356806405651114900467146562638550910711160082677728283332358370650053615257760353146591871641941940556848858303440025833954287733288853244540510127411134036586910998635734010988419385891700970431126375363754393118536090192148934806803178249395201705752542944796176786007670365060190344869936021341361030693827343864324456641677603905080901475603157686344563457779131219117950872491707604458261905325730935536580633263135677716561479897567125992049046567433980903979779596274399269928965513216010544650651294559216856513144456441137912739481186506898459839967507424812331017437438091860052490709985971861497866050257612914074415640225717362944200588020768251586141104813834512670562961619720617985737254811242479094663169751252724723295307268385036007326908397698343957065088221969685106562856776023742289107880732803095219249871695909667067113784328207573549492050887149335261343296498084753757353156238097805553051148138338559169759654553049192917360111407016278828443067366615016594468254179897776028595173672936279317782865141912044962616909847526922818784148020855119107835998901745706320257226484125472899821254295414221948363813889981631244885635745665892187405836063099457325576977289628727991121475892973079393696804861920385637330747919708759346719396711288076629124950299510224169626998493754842672903306753975758600364945852589736065600329986506796681132094859568025111674813938984949505592516517370190481922256365993337705384237194356441413226674684735173555824444194893977722568706341833688081867400459973084415631321857789906370262721001420013520525242806045147864919455472080606884520948459807477578956064669145000031355503256134249367422970050269496460399664823190270183699436644803055716918842212617215516234746122940801252232501440450868347844307087219751253380932258700811057009339048001007302218306587891139689724155978978213487726457303713748599644991812607566819286397880209945576222369667494113180538506765959338324364965443241747212132874081079392184566422723141950049800502903710394080484370280790959599898659598874132381409569447671213898494972801640622900149129688020637094999157500013970709188579002360845353607831023079565067803794358766818998921398128373967398259372818446246969321588431140875424034426785101404242406650216361586743251310117299983811056762304370919414042296910948224497831955506215071925114589607489569354075133095324124030067775942508944641484162386681259491864013526509817013746991918728422290647827755020731150618189523689370892173583370146682630393534453815991237866410983610380580821562160295275122516675988324700912048270225137768497806040474095454396906822343169260416180155932305404093003909283514587654889257603646131456381858698901902831004100360374230576576093832569874771942645829084009387512507066984503091472987347774407423172375440740019556026047234459735149352557714312076168242290476881154887187598418213774989713259333573612417325207471528109106880911490664016500928788304839414707119942457156900159717094699467030296680450936872599905319201381938073205991962943828081039690546528371731972613282640940133154169443331752872904030269425779093245653436785410693984508981557188192409537439132093122820880233104129104771261645091108088306024019310889816418466535937478431779327923525283497504065395849328326609196354017675412430530627442433621119603463765701698949488784074906213598379905017342122719823338786324345976653226673239536943298514074378344533375459994116107449005201066507526023149500621725495223660839958818802794282737360854589645085914192633265033080716066550621623448818826885608484872478487235601177557019872298966359791287339360207065127552978509527018831490247567139777746708049913660500726575876649146679103829644150968790772131532679585619385005144242145022305805902186103357706135196497259872859895017266436006082997250407704601389832394685124538616870554276836866577135257932919788834808155095648103544096112125879654779122305333433497271053734658277486970174269849516220211234204115291981208556989858654687556517195541521738274810500791541602947107824850260893009050663738614782480697175557933272676755346009510872693157584758290497447217388301254084684217825833743248649002264216672213044574983692017418073983450554330050476253705014881121030648674099449017493608095926311059514738113898578230288159038993712768764401736848781157106345714257603458579138015485076389515128492664018478768242078945093882168439352278267681921451649348512929872677972195385720268104217598599099123630774712807365445727328969690748552816372968515968277074835145481608912799891914792858593058818276974890984562756693051165126605485282337686470690913673888318570874478572622006251586541593924902843749034765464109991414413855009085256343052574928659707538664251284714361887996015163248498404421446088941354631447107564643501298017735810643236616666800674384030887401550923048812397249283102507850130049653861612850910740690557469493143351816497882350551388308016986538906660466910018263476390635186867207933406215641692309905913072130366176273646791372298514573264304950057058534666267602728306458489609150100871356337275880122727867312138140559522221298385321440062468280542202091479143832401412778924174764160150571826040303789300002669517475366366110312870108430021234293619829862322661277647579530248837144087088625832450071795076253998746759671866957395234460053482765174093815302380088315502111659255980472737605205621901102213054104558915999710132435625012259465015156496996858516453582334960285021693261620337735775410047119671822400953046757488401630782903771076299928851354217230285003018962098482469692237323907133903307272577969358665905256924054397229929884361083576171777224166050078834410717812015712236112610653618157513790897130835940508325690073801972993468340605282237009246236132066321712480147568695726595538558407062330096196399582705330858592318446074883816095824582097153882906343092708526062009427144556413287471198961410768742864741367627776291070192312676780902160051099257115646597411374079982230732070265110481953897847900668803290537816752043822311437233308809653532211467144278521893285287699478197685611556434208357103538256372908021592814327165808842920551908997830041242129254901452229752603553901803908106265986991428280043145850285723401414718239775655940233030746049592312259304322751547200546526082619509529227693329424906369813016053973707107732921750945064311644748348674378773328076419084988599797905500324985884407021736989617427488356380779089948936834716186447153497261051584632478326327375683447484459328790776637663626936235858323807837408181849950256398905057386431561777774688624722781303080810728843744645863926661495556137545834468889084314983853144030973922858383615271471637521639415345596549519431533087359607929093859851769211596816622489849669312367405230111442214183543533121272523628741759847871618592591982056430646348941466762536969214241044436918031473401536136029150927717229899401276374949792679682936489131642120431208529555117604006651713537831354424954093282475179816044578076482407063612491712647364400642688025735460350928825215902857312684215738348087744765628324050739991527511484334710402111413776716624475273701056685628567474406003904661220088684258196981664064989496500657296011183021807693135506297791241897462463852170108817731508150197581221316451805861330982503313827427783109491485689251718920878925131479198995322119532750019389506194274178879124380185699188589580998333734387083071068453724405150366347844132286355106202596085015387682781347645112995670479514132935653504897022093581877153101764240638805469508333858959768728098379589552662321067826183393954653036165964148654797312780428713957737250517552616131164746884915189541844731735695403666982039246029900329796343470866983254655797813289454783279098163095544202059789570768586781684085351923048143477423743851373365800684577699056060917867499662677081637368223589805726707799068651363405511099700656013548545192862515964809319435282972231247319874544671682552893620973006025354656498885686274486926223505480661159878667786341444802636042674447801288976594531337263373827524528879807417471252094510699594936761754182430189001108773243971477021800662463655666387159705895952348676586076791474775665614182465435570463913817230302944220760147986956470773849062881972738924332739768299825120487395700280587108893330628115511385859863749139841499627707308441631130368186407871845368071403433542344019906717513569133634808709925735653830171038916674657509114839214834834371822994947422134308327676228756659339417198461787303018360527051459698044271017141677109197521976554900757687949623045396764381805396418577745441372797991081435740497017299302048587599264436959203259760654209252413155877556514958779138480077300143493265759764957862069065472589336263718081391123318988637767208538992283553686564498825886824471102897662815972707554969796583865096141793255789009487454440017267573602197352517919487582761173721708894301431736458197135701642641324107470659283912966980603684802716754504119551948829468553046114248133948294583923295545418546140490074359952142336005906081258244611853560820220756715844649525657290522058506383233954722510031316091666820135934079372700951832449634806495017605690639069241963781182708663191103769256153504794444602469712075148606858396294175046572601209514246428504879662452372312364024732001332596552754583209674047327685138776429697858383577791821416953192053407723394711230033263563767332372498831160064452781880458658566454037508287416687610735444356186363075453874831629347555647691505951639946799384382809452148152488942471512054558371288417346318915191659980526993801485155344841761469710466864634784607485271862499355856341462917797163897325660853972692044783600989671705184477299466836762179986438875823352344292678204477605151996104177298780917580091660510432291225663643723129341595930022541134602875935279449195555987878460675670187330589121976021384190837159658698613551002373429859653826752960132559962574633228414503700712378039064374452233964346814916809652806220566486847484008518750419975781024399499696363114893649805289882443868617921244254333036989909070821837118284154628317940549174602979753800200264582852919939152689669820575218063493729086236364421928417981587021220714581979986942934616390975585779278712377681115295874178344912054657200118788954896540410971622384547784665450687687059515134337816827929138881873241711296308058135991024350507057265337367693558701063847076109852661197369270012839544971044084177270288671623368507656917960865781910821914593847092054065389596016434946656187620759779309807122012576110775372531330204646759000322762038221469498237817135487484943146581826265943823067350956003508368726620845985765526491195128396607873723960336629222744113047432173652351978228126362655065509178608015521516936652275303977544066650988699666354629511088996881117999531350294762510274105145194983048951003238811202965523949493839823949057325909676465466858858678668890844925397719517054688657626060046916069118766250277111763230941846883569168554680293594959664720120794845279293977241622553338599730241981537562487490438503287065152157453444294674017051956834035815744370399686448788017943311947836699917065131890344307221938389673661044561254380737199045644340404643006746972511198334159541000560524533805016525991196424819600379147754954633563860338828990003712613618695359218059872817251209395170757024288738257376948453817210067666252419489518627062262235802728725923942133084730096276768407038860625548043026026023786357743393015031897628189378841081647455451114982427980252707576462425313275805786033224734712860547029378954378656218128027136153271626182619734265460856754846395511614456323943695805606401816640960450936672053840662378549316563335693123412372079455176567480329054680823576858530731903055672537841081808188942872387761882303677102039392857593906048305508498526231293737807551612223200175216476262146952841630293771753831631685429344895406518778261147953532524470367186052177737177839159008811622665411556699012908383964406013768825777886038966256606968451844788524120660284274995474232614651483105018096559300416455362068197798668703519719029135477290690950694006110972547441726961964304840366667780213481869146418893637456013578236678119445863307957178083184516155754170174669580119846645778341043582051041377105699961691028136444022648551749100607036865543414441979963612383809201143127687922575920268764298556669307022249561585894745042659771132502649768976751837828407481690835491797665900280237387234455352072817464465874832697974580556908895727906529346427755848179631713437930190031949010217062428079247023317790982336483368048828030758679000448567878619563292386532210745397788966768865996458941811757599175969984356460055536661990159034090037955609992566589293822696301930199961977851825099286210593054936868510320413435920978291273153829512850441627765840076466245012144350932849712684838394587870482857802996291071919765931187221900604285487650375225687869253416675580688588746940256450207020601308828838089177147694236065030371903022619283522738737808306119725746033958342275951879625705169545805826098665349887334554671620100935286831912691544564584233081928034826171413171255161843484364549241478217582252052594368540544840252463952753923986805874988993657842755687931430353183918287485682723701557054692352022486741465105751294234596000561037790003183967905759967685558951881258936070158732051883212064905471223379321348939168592404282289651565811209381764056348152907902871396220243114312542415704203174916259391232281698177947097911110614406053588262522968312980803046916988659914004822238413705962177515995116120204589457494992801076625673715166396064485042256573575283451447744362548399612567839081745770749740131543891099341935612598264723223492017522307487783906427794029552892586163663968442935747707211352139440408993765999482882494073308031369532076846835369608413048623175191388998468702215043396054557897495292075879123676662028632204626118806158651493690411209880688530669146853943310799669644231737639180220167430086345489318042422950094240847706866519149934197661379815097490597011741431976305695122935611482039593620076699669053629496257310211625845100508214613021531265892713036812924368930431037416666301959510447334399296692527117172842628002327203386873250506058187708148067602352140302870372604106128246583770575410838256817873334623802515381213207889775995932783981675520934990993826611355110095619005118730062112192932828138588943269874303367233534514100936959682212360508803160573602721800883244705033340256228099675795889884335090792625442490878673318979495124253645905168905121677327005078877528639195153520932081095721084678205172011116732720758665083607369113803209719802625032698841524987816511987373488781411782994319616655312319603983685555898406075521351531858857743246105063183122505005893405505025125243728408424790723676033057032208748992917600079463735673711193806063838378323366416611101540895446215921709253860062873582054270358138593121803718806135530277118845202737238688588607408317358571587508005183667718327594707714744635358918952827214524712610883396857487681768080937949423219164021398683911207231428401944017709601688429322335386357617871569714764137020181456711127720153209477459057967995236629606791714160281704889291573265548194409235372697406157295020708263080659385348120436842213259006735639277042954188417208499342348849293839267047143813301880914023720983553557905785231577042407225517625720604434787217437727965796324335541940845381284988860758805417871149427615874214537553304961472140239610635817009692961847142971770754989190256496170827985854354843809308874078601802123503498375337845521250605268253979189632353602027844925781900051298966501483921792287060949065780681062492225516373605290684841688210753713224247538299848444820746075894946648694563334027030757079842023605958203741670133662071334749344990171723841180519573715974716001131551030484375866254393336632075770528125230740627510840841124150564392139482562541451308701481539973622701546559738512222880099216149117270244619703008341348719922591615326978706447402029269142745976157784905828276018640128421876843746698398370308390289495251317187289591070943632441110745344165651517530192135532279491483240841061428250393216168332316052103962231443707223289875807571132982456529295961689066781614470709081810339325625323623453798086141088558120906366670589850011941613817511168295632097535430260265098073680225221319422035154519357831141193902870739593177110035276381574575886329768448332337642430602014277313457741975237739808780291329965518144893261313770345111744893108774524950699591288372572559123482592354446377155828020463676439932969942318372481436217135659120495163421836083963833413568384352853768539618764603392376641986722793573683856528915702316845614005609046585763371866371037934289212219977942401931550733662446893804880579248345590834369977936435590388914924509106542072927237221529218263376381452319120491569570675470585840295446032164162559868526357402265472390657412976019242029346598364367086799754098407653527004824465394721801532686027618842824203037336414514505763931093969057538439808016067198419120055102093843075962254996641660461587851766787370155432979793725828603076912742009623535439061649842622039067982570445205261584196226567961216619165903804906840645083777958982506274938185841557282756097049969080483262109852503311293003705813948660559647408175035081972926594098129193188993621624130980075207903865383988608248209174410549658893713882718076012145443396083906447839544054048775745007738423172476720557065516930800339616192846106451875892503308083056269168300327642176830438000129129383905267030922788937669082531380065515151019405375936686513102774607067920038537510165958304384433894955734157996573778184952651349115246462899027525241877705437030186178321113826716133874988406949919236244882255433534381827483553050546453460733606194680067700356045714142073696173135750692757409870512941656252136142424113556490102820462465219940862185340457558521611099080652423404573818045700681411499083519098291329327894691923272461392609752622200241501460370210184964981394991854547693617811729738180539172388346300174785058647193140917034736104545841075002139437465448320920776916093078212279396408677158865298726448751117592266514875222164190023758713821711769894089404139227468937639566773279260621548104095234455243737957193594311820432730134549946671755364260474807527102006643934532317889416875536493815936712507528387178646352015622212645318517702322963561708514527990050234141865516592049646474293428356396194778455365773142279860057302012800596194727731834096778024802220144956721810403189033997628604870645922900541559674539475475832194428080774548404648902181066220627459138197408780526078799259991064770106089870879425199130211895284726637247721294618968716957002407830719775628635592830900770433803500212268002179434007393007003401472452983858081328953700649278815553154933696422223698454062488810345797410102226632603105052741447968082187605975726935504962945603832782937429584946670614585401852049081877776426297034267393127644870998859264367428460126281014703515584129968699839832748250742914107563828062925414574484191097272834231128781700607963973304563471932534431775828412191657828998614957052630791013393401486228825181722284403085771646485413422277030583343768717761120707489304079028828886529857069130500565376217740762213831257683413008555008021507364101582282822556148377895069304366969727738207454605216074228172730174407396599616916828102749940794813434081734461452164023141181621132432734591384492975132967017598885332735758652937096406737924030714205309165734283683121998230195796140328510499157494636682428225151000920009529315500231029867940869028065536708169448181153336794589013687632509728844466747577789436800024975821832267797486657719857968993771472488798333024436486489988923694471358617861033636833707124668340449409237804412947495222558248657428048999343226993092929279737813090007607002943766348454105391124578656819358200399204246889925661957215428264446706612245149563153981285846535081725445160278176883166252718622872073682003332965873992139562518039161173187539283221681848934996212751417104499861870033841299243219768070970737541026773235025333199420929585331018495687841600325349890500637921384296145013220698423088870968825561046414368729869423451022011660292089061039462418224759115404981389682089324279273121915879197550745251547283428029352916606897004563849715828777964549067109698363129247320355008138035415191312010534103744432882286832916429872411729393739902052303449523805394540070133122863787634129039075805997171836816367292162226161442647800622192740483270937422948142356206236039737950829181499376771433223397260153477170256688297877467216020768927480846100343152242641790665715191559086685980290311853764902946449118726947701246063813734360663767862802910443782851832893828746161150369632940744536274394878940415573434684666107801332743370145391203808732649103794769072950654565564358590826003949611904384515858473110498541509254767216855046373349602311902981837622214839701927006118403307640838268423067124408175906800636849466703243705681430591718164268934501594020553197983073017052306233014885264270522368234071502221226361608835722476128946392258319911543603429420486058324073014184751621854595442205462795232815537649418752257714775326966417560156740668433285552053748547770463606972938834801240735116057956585527452342384181293484280085393908456656142003698132069403578859150759147936505868068005402918086172696799910083712052034239662293415360418906385171899481718007422007012218441762705193399281656309885816058903051231775019199095768541560787861921847755324454165874796857942353108291954150188645629150291088310829288734764969060368157255169071400228617446712585427445638984124888012737266151520532283626746691046382278589506803694902554920795231693340983943717898503373166878121694233901260712439361230833246534782987098581988589371001639409852799040236035756959570056572141730603546980706658099725255813115988004162686099952721681953512740851450633887021220727304305533000983432989349456973048711973359204533407538571247738024161722470147711036585396734577024916317942191502246148916972825493990247613207515597881352436112624891177005327960300958524379332436373973523493489543897526824420755873361568208695446384922333749886338396159621437299395275625098479898929223968865131740828822810343481390661303288395465789628264690835159334787891446415447173385414187463829596274023218897656240742008563953412624482678958084491937497124299168761187816927786603122830385438677393245424933359899193665415533919407070306128762166482238985748193679491846769787872310952338376305973781737413934182135541541158234896015814397700996240039628710423321331618155864311712946965290332214826886439281382833189437948579018572495278334865190396295504139607260903413607628942052268507401118447590033602074132934540200928830258385270034100265723161034310777742234645471080870314492851073747099172550277693014992526581037714474020568881730280016141125363984723520956234801272365410430431616405294723695237425812201369982488751256930116767917054434309635940724489925981619816006383853733562549218892021469075708780589039572362326328835301031010841026307431302503460805273172503156898364028687524217373365201820570620297649961769961068923744656685210933412211070740103642555878480038059268650281040640700857644840951560154915348641574897123732611329554331101816823589831439412924094157817827673108681514031032417349102452336319175910758231984057024844065522897896451353136691545774422696049211577519138650962213312405860578832109538362849028375958941120305735650023215923366970113364443784566924969688401309409025706441776684341539746245054812980804790465710949552434207819208116967084762425973860845005615169467825982362145649844238363115789596457865021713805685445187560266388702365510484662031838326146790910839666459164728147146720960276462153322374642171205129690182542086049202784190267953618549334249117925967419987864399612786597879270508318820295645945176822549398519885330156339796229645187515766825608401941478335190152307137853693433813779146812841177819716356842376833298558000849763621197546018007169687768835795706704236987187787790917341632718856141676603453119563358414200567892988094878633926149013832952950778419496661502436545708683033747282027934198028964885392644414632908710237423474205685286644699350821583448140010622994169968419522964364252922251238699816162064611260834129871301189069730451534882672420125323777660790962163900031365357645191583864885798521471747250489172365244781840825999003185879986114303724509030977600914063373373317405627909407494090095385776606979097318676206902798012339843984149337541947726599237521685166763252634156451022348157173775221438851840047987869992639462063561676783126869421017163415912863335089502431643950632401865122874740822370722956137205824807479565422117949388359397248765437415439475847152940442873301551537769777675652584219202423018921797367556125512513394951160413328733424453500695238219481508213103629799179527886666033134734122056946949231762868207141556225628716866234289935741283796101520266733711660193019515927097046277384813704157723049000523516094950689556435077486109979912256208526856371643558556339038366880271004268575506403346919577354508711094666373929191596574075770315558284272833147451633507402560150810944566874578263473097959342700748036492311941753541931601534751042339014708834162843689837811213718824167663675023317299687201377844309281900859976797378441503271761010894623970268537694487557566560017039784586464669020026633899708715305586876337346566391190137860093125995136359243259255242591743082665844351894378357954284001420892701198254862451236005043355773925541545840526895102201463497111942567404547967140637003294279366906372986309028017992092200456847013953086312765375028435680311106652353784368712471691612529110384440667778554851827668015059069118703902399516582791666988000066557204585933079625796268935665527464614254134119373636456166778447007952008160347135351766450683096482331339418757608977276152686633396008750567507529115713404331917799375355562620295759183754549376112684395338333077943736052308688491415804699967564089749805068907109751939400723927232963195050500257263309627079152173669202136572585351841010588689036792710517532080406114634755702605341330589148036562527737058656021110184777139918664125416281239100179535836500579473041286823059676671637844682739488338350199889346522592174627809694729288063438627870589918793710768951071181477412591268291757811165122149031410398026836647047772441632658793296621762786066650443507817550497099535773174298429666925033019597844925531150452596666266659494560665286222713976838132283489660214618534852472591691428280520526000851700362805512476765706924008208775798836207776592164140851692249858416663917549249793517338086562178546755607484585186601836324831365204196589579579541433717888914745936780090312276904033152884485261498697424741820756040550544710970249435625119675553335162690132853221120500704276480212844420565962866824385327535226024479195737287449309424708398799189365797347080201196262357135090359732382429947667461207334614346679883703162764517647798713355575344112441429345589211843404927244181802152784739888845172566307282574692723158482368024132327716621867687625738686776096915243269580666098278818215814871702371043181280042645090376452531161385171523939568251131436820791926310193566425835747643708928447639688734860243894508307093257351726187618272587573616442357761545638531622488689148925853071572154217937334315098873770110204748818791233392662926548848795283299538154261044498309480316881017211917882979798973921126925453024944391827043685867617146951579317777313053816635468915844987081932762703442568903941853936640456786195970889418770228825948077011899444644061183570629571349294427695898633979978737279063550027740984512188156740457324210020551989092624931111242374437717185686510460978258751271977134953005789823362801441966594019116542163296083871315381582213774698045379661152081106228533176547179087944637626347151734870560309985931064656412872999078545826079286621298107271275966930099954620636698109148074380020655694527396964329611571890183452703773568026590522331285750819690307018759860759197046213386934067366149555755381197094814692809211507897334197382488792578888543719251314081428825967529496079785544395407604977399245869357493954290564776777385341560069339742997994948967467662827148911887362867805819552084764835685914848907880952251111713735792562899663036870962912946054080806288658934377808104750126871742254896103555952650458118945064755583192650516018547558399396866152320199012704730429608826971731546738296900186177243982480081141550854754301778999189934144513125387817291988523822765478623447020643471047104840634014780059013404453503641504129188817466752849720481297709597302751370388757756895020551474555960277665850493884048969794088190302460777916285175148119009637177800684665736551227999934805821313449331021503511149191209290740897408864283525874875845423337879414958002475944958286873396111875409946769816859433932854910263584532153635091776578792819689491659652476282416176240399700082112825358066880171272067531598473841946361671830801974746708982624191663228225514198296835355752514970699414758398254360684668386136205092229724380068149434733732651486478527021002718921922609584008998418482750971549909959349391740540304785505628026689867457255227543393282833120239968945092923831176014581033499636722642520793223273725041653255390607322538787190942216658101460964916999454947498903956870450208019900002243689269612042687548155358299754213429543997998641689463599666109028310191301731547584199721702817724984208415151565571015149462810164792314185522458489894642681625312461787712137748704047728415214140892532913431167247551541420295283823443923393944686146366264620322579511220332014781794496792630095208969239034641676758029279835325961301065780244440870340826647742315901318655550508159300220536400405900095774054847165101708766503931118513309862025595381427061495789506447967886771733247869970591184459884362420617594200420705477567402018398343852962103041672606617547978783444433781951520807410030280685694255941440425527204147621976425300144781390340134200766900999521866022611582925766638607361248058728789508589984774895566210831321566999656697328088956909983866766229853793766453727529140096300954785428224406847044976887984047519727709040801812146564200859462174963692974259579648420953147303532616097881835496066219008279098865184203904772396489148686166931502093067372991545120533607991756657330058505379498752745341448772454041973427872325083326267537065787131317713647290105165412559154301163081776969246912994385448169618502635087537149597952255535094136738807656408873529720380180627940873120902739931703599382418747997532291011948261078796810555742828361088214714811285994388141266079294106214530722950082708732002914987975275172741044040273102657133483190285336785273858525107804937822100479107124412659371718904004187314840477951688632528038144286806956563131361823206066459090231952725724707576691593457707679839490087811587224487358450687054574301691455031078519685583360217383154136197716382561694772418783381200405754946694654322386197829579709995600655257583894359608931193161740999557170168982635999302885674418956329260372935046683148395397874096758589421695651303684033433508476434596266113926925085070237170562670849810396040710027709354772841684948931546767644421948324408249423866325617214413467259190951931885563745734051047457551898667360197014252260907545254632519634979755620191177395471352280795269654049852678140051095002401130353478766503647045809600147168168711860582970641255928381831429182690371565770617738969650941868653452373018456007761479294423603113388951845315216671114039718974639731036692536969979294323702148711361550383957353033712582331339182889246601563002046068715987015211654797837230729330931884866908568492690837380256632167952579943815358244784447142323590881302939202054263970911805635935028850885546519335019159859806599968311892618053635003697048998077785340265469982119432593209852421063381304129462124717697346914812304513395892271949063691299223665984856037612007193545287051364351673731761633157016725445094922694721893726828826991739786108636011575081293201262621993642341535409704639062049263899381445314568313362907847718020277270171098482894539524318804288683252954630742989092667025247569979648175091093081515258778901089093884271151962570204877939986803931526304255446335074665726548309563183371053243454762837079030585649394880669762622069401606805414564160364000409999462581603038194963666346968586447117427102370710539491733640169156352093080598373556515324362288458104076918414446706481994397267739232580758149321866919097953783769817625856733453087587183689118126353799374449586933738131578640379404567329883388526366248015183307707614982218034792560435545749719454414900925858733953854393120612815667341065358898904183496162215598669849613208552689016472536944603540884436322680965202358356839687234593785398765463744908998369729618106037778970615172282063954137912162533116943467846814268999418078081529999508021871811949013142791168151197257797180670563914656028600165937022774426375575599660487258305716949235959184120905079953920137068439005170084360175884792937713920626582747271196204096409547059118549033988072464284309848312072096790743877468941985263314607955920428256054353343243362329170310588998972955959173802051848248133112589977853810402495193671500197457431416061791308033672455364340748874533589396503650879483160672548128786801622438184074625942248414100298198479123231143805477628230942261723442295095067480011184474391411570732420707164014939319076891552052924277544947028321320974296867572459561835426209402068994366870761735176210792205616238287848710216081716670441561118371384824596955594375359063604853807901962650785036927670260616060375170913900984159146499783586239908986766023112893361835343211670220438729280623795900213167385574480607430628244334439199169925432760602043044035801390038501138563409762455659280641349502108781764542873257390684659172219920266231281799203921624858847635054781700028358119876440310996683421551513233652784405438751322544667459925187735647069017094931911107143317900575497559128324557413360593188619358281614700915302979825001775774649475988032912684845737359369420392677501192563861049387058374376970193841451938664542583943053311450462040806282986021133344031197335272215312078432246868132517993720985268545556903988375086640456506745918967214586447449997597135340419344533252615475733578845355562316513448260672946702971670666365270630899391665276825506064290770435524759599390064507606527238058870303128046223030309912288024553595070260692607761714391074019456937716898781370730150764489796402258681696789850735912339897554678339781491613362207511735982204315639695807707037254803575923806838136730949061440372001126499392599426772665534034381808929669165051637577929136226000777723287690470445360042463812700035384298993390285159902181299892930682678022043422951677779713594764150524454894347024206969429666722552885607072836890673010490010938151171991512050743973395357825617564727585459641565367299584116972908398941096550701144293600831376646564863596469865761495708197438036761332742784766561074583757568575766840394864342173814415835219812924673122058891503263567488814755026429246264223781200120401979198010639034156916646423239887780334177341935153157842636531795598401705911411036844375348051760493235418177361359357687576681780766916656738422309694605463110634701603242614622921367609824672314318382419091537447679235762006688495529700863050850769655299444385167405364059309658239036718960379522918993960987050178016762733753827967140105400012567858477220182641843457773656157076374784450545151731253924987120360531086773518490553188400206778519077734639608458146272951627771863757315701662946526138047505126493041331345425337804889096698071813561035144559084093233339470570064728126852030459089871370919107973406893236167909563760508586147102604392961445684145018495501252286137814630294165365478586731017757821861589769713385823658644962935239123073446590007875695029760608368428404257119061909166824007275339408871944791705051254248793622370241779540827755317993498954958476259346207831833696852165740591523249112620355722998152555202198270109857155645897077043748991934248222052480581121282958334295509402511367301376733091601924790899172354484948866629026507795670991332381386428488388158484694697354651553450890227021412599984947952493121783878955909587380876757938466831106396055111174516418516026129686014790839672049620605608992755763527441654642520694360742897872508538682424137383618900324078384941514283249665910671320683496894680174986430326225741160759620311179671909384363444162207954719515422380390840805540185720084412984884956094420791195034174788222180698226624444668523536631632046798431593106500429956543322838210022016290929342436356587366835259554745494091650816085620738194595575024758056901005351774236445912020639800696651136411246100443574652038973342668405821734756119663528805449214462745787894954790271313898834007752576305499771480580440353777729172490193771294612907832067704625983199122025698150059762448765827628721741501396114255402059230168196354740357307624309636826190422126406107416675398559289407241605072530495974353317707893324775384946300474820832433439855919895653269198587126327935940741267630956133672166198471552658518602289467288885921910416072895680687130028947890010170345241178994686578397829199922175471723105065076309982611747549628372031502212591685106609537886631534441379445807849913013450623546224682383571605680264795194698419858370911393136866540925002059375977353980337313319098928470098901599568566301605567649672046923435071720766954049577854214771570317746036327868500513852280621024762037033311369853199353050276466287251180795883893533531444971372861475527184787118838500804542748355337588469022237589405392871416858829374640753188149351657789641304594950431427009510113700639185003047416609398619803560640065998787843024349645400289043152484058905844723828307457866197122154192215527143617525174276842873221545910746304754970097819268013939624030654349142910600472123295970661457356129896979314790702074347580924669817351573383728572002647662459546931650287087602885197852271376887865017596087690670108162366148245179077502413626199385585214068937240078012177625986696138748500020872778948129731420338138884116894613187675901433813160209949213304843117884706338434825589643474411894490126781257814105545732766424061808362422648360205421381798473165908335753499604178216348378176959774585735645650844799371554418321418819234266077654673968078192727939374593887393807703925257130269363113216295956392343020363024376880289850627280609794610681181788131738601533233131531393425946695507018670709157144407556277161355523074861086869097696083010604114187072060554680123404046398827962593986017457691299013219613580376039969249884448606331067288470920681808337682590472493479529933782073919769634197394725992389818292545281677329657458395803411897399308967588800506932751618552911435699467278501115212207714752505906585337575568322727296933195391298550243136483823638910358577107531133013380568004859191542900291136654043848457168215381912253471801543558132973276483408501196347492969213190495661094604703789555363799949612659074929175836783999203109182803103681570492755832315257519603588999968298510514819709873902225367283114912928892441188657938058912251384552251368771844086133264067212117254405586339935013585306591683199352909926830533344057893646605767552653580134497641702199497507823328804963373799592920835547483515376685175002674383869674650606264370396514849042990877567747259516778868425811626013257975159058467694668789622397042954642196183856643502053263533146053230967368772781990395225900499694182045993220913081425575823648832000148907547410704310671241843691833813552022370901135744359494310327871005565446783320986536112796807014243998252378747920160565530708378434438601625835198336455424304744788534654730775014762491525290141237554581307554013030709125897617841266146126318942499273350224282398666391042317734500632298617251444711302117189983087379512454021594280787860924851025370450618023073455714649390986637602307925693949361971969545663546527881450503397785478155521807568824396933167446815152009862274449617341257500124485369543883118587570749585349625532733990442202796861504277789112424878704831671099730295395091673666284698242713439940478721062601498303373566101173381585799633814340531997406996366919754709961615080520380003514588895169132907906605866508410291189326921655880319120580411547720156593745022273378325244634432032942252588652422252078555025828095283225147300711311044400579335549168813988153408493338738838196147512951672272429154819174508039083131348495334055631939852017027934803067318034236068798693782829095786964324509263382547376996081585344411426924770847243892966363358202284691715325831265784114711677743583009810872356004114876489118919063290343689723068367961608438315598741993799935853697849712109173117933987917669464254830348427772739150343508517284373655910488511894322400354478685984546420552232714328001478185259707533566554306134673648896973655102907182099860589421614892342610376092435624495404778294840136807531517710970117459569004744956661838945769291478548789508910299567189021978479559305431177169494527752741140474898109457299035715252534940526095979466767459572360873354770689275366279349504562478190042701543892595632410819271136099948545715236877496668849323816144389246791739099284515592037289465334066160552044284123153484641499855259171098256306422827143811883731041835680667727570011140515316582154137722313293715699889895939446974484125179554162615224505991607047332411624708567130777035086938985352757822489457184165351156475350527296714700065896037786522172103817919384443042460359146263150832664100994393267342493815506133478039157863755493673323678670300696102888330712720869567508814494758231668728747564668645782126044152818251060074980053452847030364661641608020282550963849124002114904337329905766204320751830082259939155095198728497738908986301050018298042276964485606600977188535781051528362679253809484651361646171820338574377982314800820079283645087270212119811726338036749201261262435185752784097508728088741369127317796240300442019610321040394521381321274749868643903663467750625269509175870008316279802514432462268134129728118475540865374306833838241659778479125599055936295735974721798509234023320665222783717276337852917465498179904256139029002949953852733193445486502983513476989099045038486359002562438825448846317013853303691818521391355284472280322189209720000378546849682077560285254344269268894482381502789082241225757841076020835599840390644074791787402118885279589730900786534709421570856038677190768852226038044965778905500859016416476879619413729685050198975568552765779458242981809912624864174724115021379633620120251363435555334428058086180832315094912321955894542566684621288636091520200464667793722588340267691665704357753359615237591595963499692999109837814143718539133404087567325209424902078910184396387759803134493935211195634336897562658327716224810455817195554626077941614347863766578447851047131359062502881581811203966103903070001342091958177936525261422565997488533465770330155801941319227447346858296044208338897847056858433005042772249407279261394086319960544635721607976025406676314305307059916598035922573440210921211744566968167499809827543661302231318141253607873322271431424985968509503847698778136307726099613237828962598287704938821644091667281522410247632316234819321474767894166588722190530211807137954396477317857172799020153848368067867260739069453351775393104538396997407208845314570250388052821821005352126609030441567914965975975449701620319052324105076487242684785401194995143833351216267308519468363972192637037732568480835872118405904071472517114370167650611148160592333568007170696358158277852841963347794314488876636430185920857954143715977670167993046306203111069012657850363946329441764530545812690711764546196315707948524381713953025778683770743042956243115859871596275606245716534685187510659246379434982126635157439164199897551581196648829580617755107153944039910166813819238795691767449433755236192752739633738300962194509986233047575468475908779007019603741027473576688168612658429536809334655197328085316012356548814459639962610437877119068544086321285501219763933155746914358507621183945229449512754394967032518424212385297076526963959687528834924456762123591223915685277657817142580089388786986764829284040046612184360670729645292166204898043115951061634319006891257503405115465814184923468266093137904281023919159996563715299395560477820878370666960178984768071247499773524228196792205430976214213299242043850676182431104794316473387366810692529015310642582997466662535409077849995489103612481323252160671236972006161494638735291257343340429986939327892115589629672609886867106225899241286978660616865086975448362153460308095562064130320954121152605834969100158270459949533448788518821843118997396440267296374709558338462788151231803569113907364617809080152159995254503964536465888611197477467116497519621655762057997514649709737684272285708695077958023352232302089340794574484376407053757129129584259321380377228359044940407485610467571475648501972522619596170270158725895236227495452486601517041263204553463574691683877355403353873007400128367837851225930097984513267475099355087357265935155157782190599693453810589520541666607783851206886248833485908690774759731926780136815586668530064153444648091492978252615196747633391172228058742738258901724944070830356473776650529703906083941203778992793802293601572712891297332536461858303429290545490925216585798789844396364238125328443837311600052505023630758316115287820527433346613621798020988958588698575790682744756478812885859895614481833013912386182628440237616272294262500352771243057504578659511737883430299527730909383180846811808202913830959801579968429043377102585562127092221580341209308675917163528280844933791104020743810419591551181680454162846363331000495953659697117725345527031036822999218657569186163736701733402387302016836776009278228326438048093355005073998705779541376267896131499043189629058420682948165866750868672517753063324444862350703381587612229730451072337140592116133983605961186189414194679602767239890510123884026724855648239336185493286134421577426705917875744256605152346295826496225984001161521164505995349122411281208800246871932836534934984347585811523480346175060861551724995858018943175672575043531920936468427094759050532238575120171854706901863419289860905694303998415080630413830540948632786246446572037071479321072526968805516023190444908129810360678869339291721007649385839829941427845316270703610793763598277786975803440092959586473679956069888547356478739939981944349670327380641889892510975752754549794619776367481702278948324657090018051716809930564573508044495289375402720308800314603962555896690690844590614597144391116305068638262666899153767188814603062276380055451082271194803975218781133043439116614768571894981916293285951020611332873580518165581711038800372856958295032439866914708072588253784189678096815455375849310405010140404226945931973858080341569043219941829042862253892691077700619661773840378830452105061406788800395798285585794057397685261885522645347732400968892801187740919020150442155562564940039842848498613338636135533168483220243678103974423667269332213438446435683014448598699216757029536784004219792435097811825671711748955390516427075284420371507996935416564624793990241580050927086104344457257968881376316463638291856670235625898545676013029325877526858204673157399328877533360714702531707581886975940344443030219124436478244243932022188060531732682949215919350806805919351247616318071362417621359514668336707149564723514890220220272868415371748536678749244609634292882772956057909224516542987980472249924880821069084237206235557590261931235005165482234269099140803867557113274330011859482773787578809350889653750726190547565450250654462542147241953792451560064660822936536839641219544550304457914743849485326249744496420253247541177681184477041321769672609173178399662729849253644868515075470189958366811760860623143354743634101607865236480300691517058888116690764233664342766217485796071512008793612935744213797417439166541073452406868148044587761426590204663857042732142618153089394742304739650679058875345745138378813728085219743116315341179760596605569708825710555810553983515280378640204993533346224965252836903353202461285458271800476538034741633078087133558151268302089836947233138578471834081557216063057033429963141317734192138359230106200563706704495982327962159654079043977562382828051487283386346354517769652871823043244467945440125985649838658456743146763288845724280772138167816641706551801935812481627229092147970761772789950079312582510682229108261644340882065418094453292458098716876137936006058506382028836816424953845912926123684869297524939303285876172088516744506058019282825431511845607308434197077041357988568682938617837448216900433909360543407738193325946946099089114846023800829951442949842890511737000977556406977274390654245436170421129267943962805567957015433116612481040241316374178461963252671543941692586294049334252275724078453550522457861036366647222325145618707616489469815510980904639677466498043376716251022051065135929495874864846713377716955565673396182145902686605474081515737929234599002461147113900511770814336498173106236443302600826653095168573441464496446068916945826436342401991684139864304487070031306614703307473958809441952691933659521705072269039151845065476255058669957226922507135007453682328590463334396759726239863180525360257876785975538771844531839590229872599072229775162674962552804438088195107207114655031418684945204512541400830526933420637449521128309814172946119955628209804945416623154288172949197750302678832973002837659319403513703594847717836608955040373972295872669315987601603254781924371853090099692559231313828031362412150726148974433631776832990004130516602329757483231316236638002724083134979670101773900561575856714200915407485967729654034840772022605895372184462494141243121048082048378034095198345878058777391932819629889201702173699158994435713645975356920165471693296899975875877462002471322014711482357339809178898014704922290993608847563845404612927076760763102014555446548780420280273872816038041914468706473614757683097825859536355759944627406304259752621446572997963925762668812306558902215471845089032706101891455463879935427605744803931581296757993280391343586687783512838116879417867404065195491084469755376522910877672711359673252411558176356463904612183185227408267762039447625958388434614935744070252733251146613753476617871722383828091601316178619052802221937862485225273752623762306077811025686362296059750152856515651055890875930696707275760697827240850464249467626367189429359950820437998338327334034747956695009519398564075625807349583456364906155257314266921538309798838915962698610385661549024704290986286092554493536505571792083608577071170565360444707616549667155026739921470903939761941595924378789004460036261505524184117302507410224583823222154942846901756272405073763986518928728695731858780481884362950008112229617235896769942432411813182146165420052545101471247388609655144703706206299337567642935224991773196233752567664643316962902646926636334555740982594130904478901065929785233753111359887195759291640454016847575315531436016280789307029891949446630578848364455423558588012443432613472035559730575774107988967012674445978563888158993930712536784349011906652426455303666518588182222595232086772640353962730902576846235982153621877925331825712174078962493395397283068341796656031398317261740426251199414683070990494274066314640133325427004218272140742745007712737317103976978530671114274087061187205993755984940110518094585143768220557182582487794570395708604057586787705056406940585563303620697167428068742591249031021904053035336757960337260675213828719615614271343641307698625533598579949204432131448314855303166409509121951483707138768103802238506054753255190613298635674794001633345662607012022858940020646780976255852177959822207325340206871348547063490041099135018677013116581002930459593693002521734115252978030624909313714844448645027687741598412497090806689542957930697151240109742500536600951017503234365256694845913537870852285747276345179783522577030720035567771202783186267118041218383759555221889206939548445697153807145296178275129564993289507202006639330613389290771651434680368925607313245856235829856818082331634340945404157068763947601675065165964384597914161932370088682575360177017231923674709505926835665583564569664874905428710198707982877317299338646983329777878842438303995617754060182672696702530324879648405697859643861602110478344712749548857593155553225606474646797947107432231839096946345632332523677058173441034622234216098872388636440959859132263391957243237812644403803273042512502688544905331778644566554237897210403990054007769563677878907389728282102518379076477133543718629537931495436533930194713607398443942186542275673588856623435970429783968833399961178516074994968259132432335449705235458650785248457632676064985306570729156255844461919594170864101510473703391548597732186292207895983520327424192869901287138999544183699685708515559946655257242171489548877865165442707687646174458075192544724422394006531019677310123657411446541313897020168704561087568516289156294750031794999956913881927525745898334795689490774097077736941843396585135909426650701512041844833793926003390209748509763386926965808902941157751998729345814617183469558977344453582672333362237622791303265669928228516696845642198748794763945358892515217944865280294048511480948240321564611650197436598519351581673303772215086515136547820428787931110751899498445542539622347320143100842376431672550285138710079059827798958075505811635002351791123688758750679579526449299338441497243078074625647084456498336295546163038645704750006522521966077940745770742318431732063134596218471453334878072328863650655393390621271429123890466551821317060907146459757543143694660542113556225165663060415895479957397715766757936704450395350149009482995643345601651674425991110602954199848422781641218399031156823138332426980698964975158678940506461134722772873998468337703028938757338163274060109404490606798795691785691024685238496917026172877717199068178490922603666758840134527751852346244311884666928436557149827001711735859107974556762850118116626292874578984106261073807850422061702081962870255436104175441675402043565530195184942827691475097694704676099210366840380330747917252084587005973850693130968163874616801282836198518733423095406566691672578855297162969153668511925247734914931440698372034910959769044059757166590435747856400336517329920451243213533030436143858637622756585838868356345113704522924743627008932436358240526127225271046372674810050595263426514670157002401934516476528783556030823978035428765256516822070082848776314139161207187578954368473435710158071022784022981383584905932044963097534410286819221144546648398881423397677926582202079088798773337037118542099974807846873651223449596826836172824607048579441213464694158681343644753040880268905201263458456389325930582045475865151114598528469072102804301756186323396897026692819439115972421777888834381805059366432371743205094777784251647059823166390118553321042990756496441387762120512585716895027452597033908586110207295690923672269387003382886175569440138180791463763595410973824419073994081741013723583089532816653757547965781677656869999706183080630674599727243613997070364688225838365553866019046109567423326990076766187279728242697474362644284341184771492756008138726559848621932638125166794894034580915956521972536520396047557050823292494244695917092180163482126825703858415574754100503301883637346194305873947326749198920017712056331774753288241454938165669031385168986018233545246150305821611088523991932297407481809304751205822127386129298842954461364829246335387658292940930213648701934445640228407205225856152792076563252732438851119181512703693187121752931576953429584680862123222045744855866908133179499241264227115969618968503793517840258310147814395764718353375437201372138094311014012506206608262464155699119436186776930823678095695577383375526129034312084207391986123009911493072931416778929061431945825907456721635369649777124775595616480888166053035444214287138463423358459988825251060538822129859138464777580496422009665685616464457305953900516780729022805985403352540567863647911489189812207845106805542402225300402131190797771896101989634858716382680706237424803582323974093679518347922406631353055974098612552621955525370809790971265381040382612942872328933677339191197778237663925763798030668075490189559759452132034355427865689374362451075295354037911873869809657303805184667711387106177530787802518782326934615916788813990165056693278456597638109564315351532120803737163783330549219500015946515349829663425782368261369403970199136689550488669568693312323610893753082560460355120141511762734755014900253198958724797285081033663121705427655247246901729726899539510457561031720634913027576711666479334295485128864922415496888648342091680229636398801949406790172522220479594999455875565418715236259763181142234526934269381919515331087689962667789292329279707536479068385293810200044720934622435790394221515001517368083214512396873470220008365014498736118172763874117035802011399520698708638610873048172724396688265942716651654444423906831593378454695913266618614732859122521212541423866137648510163675796952667824784168995445635790523273403787837781420973775865170791843564358717245368989533809802847598030232084109423408573553699842625119211574303912072218281095913812033306765595036941098392369623309839773715739755638120110598519144094596655929061886035011492313689952813650563262101967084954238929920718009231167084969585081185774921171237656146600155999936325937355989309261707049249637546892607207446021297759274479328130557015175143996975409239719477498461197520610504381431363771959862919769948881966145601747339741004364700086409628900777068207278441986756608201136407711429574899994156786378699393310786409938004276192593354792328808302923701897010473908322151192338005227083855366773994439281690257923455904185372554424092929513857308918895608124593969583011586585834043312272177721804561376770892358274812066697053453553501258703500783701922763941879352980456914254309347682269846922195305874519166795735117806607706605506716212516196950089947791660585307060446586199615962686193703981559992120173822361309963352392828780271572234435479755226421940445351369528048605672481554903367739360502346966041750892660436448049492591029648299754126429160686608606832583083328019113275222484460169406131399921485340330338580662250964507222278853857269272492431044967951651239194161625179034346864474147888354564429843070982437442793156669711402505188491842821375861577552593103397077906133216524375524576000071971281269187793121735054297700042163726244741540489862255680766947938632461929444582547009859101143206673594897950012216175591780370817207774174119399253959755183924585373217474147993634152546263801598466952772183279719031674953754310553136098999888114387327858989194202805893509500649193641524560142226058616968423183576707625877368539396465002498212096229009884316043283465454300409048875260676444672626741542858608770482256467606250908723544874430537325853229569036588977772061208418100790385720992950292704047393116028925129860627139658232671196718247649488335486106576619055459240823905089383651980326065770153363932565620057993169136981991122132491519446757531278990345747284883102462034202356889481570666681701987378806266009062437048937811331171830315565138072393847723314836007864110353567970445906421282434587343180002696537168994940041856956262791590341228290280251175803644817981360949693383528089172779322159359680018835703700029760269790320817897964878887858673412052973732708617758143550616263045120940096864528927969307797532032051994322520492152893878914560018202557530363027185937063804297208214991253817342282445032959687845352958235317750721099738779034298012424850691230346401182859481631745199526137644940759811234962505849201864020092371226373386477768217225652114230110089919866148542904365305676632716998487423429399180426699917698779969346247074942210038609665919933060296900332725420593855400779479070254129972210179655032843978867771743416902179708245723583927076432367257997067683478873712161944229155423367039787677967902875487495369633421012515474026854404632068324421523356148596978961132823075821876558399460396342842271900398453980361123925333029059867109447014113293710457625908073131131185514993427854150333341765321284973309939187259110590233053192768855692535909537406687749721611293032101128922528565469090822433385164914243786035241222283140428168271414492260191990493653251964765949606032457773888447097643441818400412862219432683123765931524677979997168939073161127369990539316037928034231718889336500194428418411335680753962666810297293747562945502728566258351543629528162691975636425524367573302522604558340228946128102858993318866065932519016333487276935056126528205156859987870971228409562334896409689438610607215206727454121132725329501003325187538991554306258840909085215226347158235974029252679693029926587721672750040559313768870542629268328472584598410822637617939463404731520084244474010453857028671677344234968875909524408870459738284584442832129196170707293939042773161689809690954462315776007562391219288236138538931828699199996669155438183862320780001461739063537555841851203541027373510150362026064048312403496772280231594141660600692321772326810763970253110223864059593052277631010226549072494646854237256443307046651944850164755569259794693834180639172560174507612006380871494677919399878881789076472827535352080501244237817096003668014002098976477453678948090049129239040959715027087597979179610021236447034574800777270278877948066405510328433099769901332198677277327316661696362657894430073614407931075251862914753652113132931262149534675402148225509329887630485808857256422996723243000538476441354618558292280373213118306301730627639170112752556134982448068841441669447101684552484163098981678556121396326862102942267469364075340532470019824583428702112152725822117535032769617097653629366799915922556885186822730849606923203847333912191223995076403528449461061012345317997710119072097489572070355146605837423716053896913996968558337558793274921578394475297816911568295782010021638426592427133895207965445864689200312568001544904322452645641036462235962002848674392147381534467251374161713519945595108059178834661243078987392298905974885409973843922481295653312557914872991224160754583705094587819046612821665301695512136801445040985628975425778523182459815694482447675293574688063775839469872870705769315319316868736666662381221225695708330389859987202594324228169486468068913009038265559235457297679038448683938497383834239895389560369687126459665793773886913240036916741294966826996866897064022685531887838536664822858619226775319730271535317319402620948241002566007332975348152810978473651127323638579534787228294844230213915304424440702941704890831066844402003832428363268126341987211383765737095452108991514118237948335204833664085205249958353589473871256857730116536664172118055661217689697727367133409933777103054671549410754651643376480245771247583468695847320129123850516220705846947270974860192127415465876342161828542724235515239718753855802913860834799600676245277424808648162453179006774480953579006794991031470417689602911479426145960512473658738454166308074967691399254682092996769383840007543234225136838169127788277286704524110028089328848054009378023203336168795102030955913067878610824511384965171146697309380416483832755852650412884121951797406833236896552167844865491155672932257647631955975918935255039710581289675273368700904403897144159641014072593255764942800193893337361996470644479397364095977353963454894007431119177348780756484209259121075521175011499226190864824247106831715544505029438082299553230313568982664531638122883311739678318170905346305588214830410553374860338555156937173294505312311335271056399855952895722925716739575148672108167122966497294129096192247442016036487603834317127603409896266888497486617890910723518803376845771243874802566733113714450646612158573068093516423858643820415363711967450375621143159857864910425988408165167611014484735096824210385045160971567301549740971127618886602457308264960824934951770081669459545922982608308147934436550003995657724599528051314322259647528309073483230251407616145274574979207499272412337920210716573894353698637952288323870209643795161965757682537633244571128986016778224450826126805992430561067915684416835913714453656717452988186084280289519827371477207937638955111307841288542977892420703215157098529607401035826045558543976724161728984938560854235184853954448145183613612559404770281781968670572514983854442444489398116873083118499349194358896370136855156079016513845993152508612020270874280948569350824220710790248979838589587024003426586966684884419132718518386713932979431040729699720357294086649458849613790429275488588196261891311015300200275210078106146416373613689885574646970276615545543715838947660007852029090950531454328602947338287103105759786946703846400424207263293916397440658793295187122659112584625733134981374373063490675829786358162463506288530596653227629514124708409200061491566656911150444936577297254440672050937213321260047543304894540879958024544184786367843605565995029272847721574197314510177459351603440231129920725715788163191909788869469685798858795328661579140952124452779683722450033728390365637035936148065623278543638881467112192202116473397705845925449514512671249808684215291674391011350615386151916915590758101590569793583616870955360674823066298327475283545733408537598920568494723545354748814610443562735644554257916860309406457376087953225884586478377912310022583185489645623627073029606550482324622377465468903007103976643890998061870041651605816882372118534000705516791878805440288948611243862063952836736574807937322438855040663636760181360774989670548594469899707006029250646332113064853381818738426348981145876354218585100960068965515895964653711929848260420848737337296374820056015510326802796694651370417817349328678839555655088156860693929871777545286565917921572078387958948810041543002361354264457359632364148092060273030353989736553362173662298633971101343534107757667419556434370444618143409667868061004974548169564244366390002993958948989795304763086675169213260685582961335655744586976697746611699627570291442928418197942650437373391868085770051145558171743223080077250117609127848087377874941902416227700668585173063034140237443243143466338999057657698598804596812510434872048422951113246526536296831780705644010202215216879701973836417275919523221677793529389427641054940126290773936906549087627948745909727156664791053767021631701422921470218212596001980719813184024320043714397070406687025124380375583214791024627866140917561144409621845619077585018651241281019886408335749838091720101059068676822881771420709157891479377373350254811730840882446019721381090205054302511459322588587860010895808125227138279177990545654645015277037386921210920217625644766888044960006683257891571580987141901855007027149660441569124993688770661407462797729005540144168481118552984331744489278523238082253325250830214120186458758832558534052099188836305480046271856694376857900050002180769140846715076971896083376824287957592994601871457895328403386081814888789886121640489167644957908061782768981661821829577339217282244249281657365399160933422190801160493150729290811762134919006653943829176734099416039792972201569220955443152353979987603349341239895314445418046587506894223291052584356208669554406623748797699602924959446987407123504143659851501735739593654805432372024289793271572526742780823785435346976901556911905328622264370991809422156581565196325629450523844859386824695375185972461321678153289813316056070707975449990389458707638210067813586504462634217118996249433838319867008511736871200619844360933150519155723725128415998251540671511875817695393722726845521754518135873713726324631017483926765098968788152476363958719316057532316556346125391576483447969672139722689757616110757715278914947728492671049458084444457218051054544126731386726008213544745736413719723180746326333209282740852498974058012801928554230129093816578727170526140000677308109290934002540729901027236872135635474994122470934070874597045206330553574897407715537372114993858236146971645424625272376337865014466354292657377084453449997425273877652566092085631207648616799492676451254540508026524404762054632310999439340792074803367545615666690825221516040713497635569598799492928026017574514738582622568990768755135567468050123908446859621194005925469170306686547200277783163603203657566510493202555948764583861819523287420757984363780244668265883651837720000018286881479226346875639365215158712542197730082940731606389269669352388910022007456003585084844211516847897734653820123554679776107771064830197153097943918010038261174989062216440127955899632386682897444811278110958225146951027622237796183807899832729542176144594027808866149344318543310829993384884271590883716978827700754195870085203646198250303616513242376378305987176823397945841372892841305700294404477499124446615898082484990832916698361587512971099418514690629033476639523088353846372063514192406431963248174944338220747408468285936354058059684736589548832344441459375545850084800954176929645019895126210274126801596030564513975256366442644198979905421977388935378701346003025023504607170608614437911514526441710491851932691037018849920773264433332876086703019813017146766043437929376289343390945723706729825437255717787844325229012861933037169786502205354982412010290341457444808198282923478565159392452257335718240468506087224273699795552474520620593690028311483138681955935879924377106338632043953040510882696908935457828632033758917540560033251832612032126897962314147720602530735458096291790986092667197864833063881744902476989874144518614689542569998348711210706898404894433082415680776247580682534074976040956520454406887474642534606671194139880206194500791382540921117227034615921173047547043584852659052657574029632882922379726052006003115958380564069664239396426232021051768773440687839189752499286584776444691883473944179389714672938402917571492477116126677109102066836297411898835466074277700616028493817698001319391937174499890112052739447448885272991311988283380056994229217893708879217188359188522221906716535463522943551648846635825453689713345964388639308121829969289685963166296037869128003481169366908215121533215973123287409384070520012733688940194931751394733716662592214309423663328353481125482687440182680208371734936465329783251309909810666838691448091676928859530676766680814596229700569528129603859471325490861783660437093783721565971980318937883749058435328639676416441949013877421902841994563637152396986251487533605137912139952352329904137850463819939212092507993871100798362257289993653669563326056927019146881943702447876156875462607720586896468272684757520972676064137023006512294424581677092809204223964700151432143867310734367603149643205944087878275976695061084464709343539413598551542422916438062269568776044291165063759272394375517036009820602189691015121771521251379848667585228606558882506374744569365824787910592125777142297098113193645344413712661107339908477437983551237839223010120049756823225439698582487130856745037682643436608582498747206081840056323051764805830323227652766843944292657483013688781482442378935034409013327191982546436705080586852906313322339623000289833022321885133664597634913001492777133734308935737588196017065783792778377916702635046632622386182745757208403043130021263899206654938119640903305137614608223523792984538364432193817595839780553987379309830160501177021232424663083492070523368341017244081569163600104291780592512557246839438894561941396935924943320416755315426010199241122932568707841474228287810782678535041918801403106378774697958206937059873632611726100203937602006489543612970934177926246887566061720976656007859798004417038997850486112765765942150495753564575727566540723959593617393776338917668073259377009642001055650254553481353752241772741043975982719216018703460125735644983116341600992017468564140212115562190474961981307368511001905690334567996719428122605531509582249425989366619212166664068658667236788810078207920699754522579651085340997355451473499652864829524611473899031755098466180329001908531465418862776066533907369752525783184786173723892356818136749491575374366234772742960823440190880413791178507589407318517319631829298935325984477830116368970050848448765504188281750584292607319417757030175682504796272991942098046033077097640222976518312374920816998359062694947920023382419281884350876591553162641147247238239439029661386391831852368960787614659827351346214340650722408467681557092417276308943940891098929321153798721232835650403703092595806997724991831517285713429595128090714334000435230193328822103710311132556387441489477817765044419985918642012505893395395219299141860158721995838858672993182558884059214845738604845061384730965668160223559886669685998471018619907545024936942684909025806377268034673155345974411238428087895332209890445327783647702732973336446376915218167068174039601274226004940432419931746128355191877086611406350009049245613626907107994375961045518253853114706543971059299167768049391806125229774386748032023340121997541666767268915742431972770923596655496017779848717028541549885640122307701409728552355901157306392460363971123595332871676785726869806608244524359692963367317134732281717689014740596619974016752741895868266316846871908639589649564985038668870577004649037935089327035591996902230704936864006785571847943247804822459266871156210894675496678248906865820400541647338512239183405930203072618193472955550307495885468462640742407586824540217372645724087349356500663295926064036181358342850067922070876894839991998287695614660879036602723013074476073933678870460145020199760241135169256650421685077872434388897037126760181505367891727434728364234564186016167627699552615225933491819400977852232723274356626673223122811011584878902566508768614764155503399943276734679203012501140157824911876452648117752242211119280998278452994139155203266111325004757431370304939042165859562058675319602469610529882899472471437792120623977669178153227164736282092837551196671413534054098460590698209243424946752695947830586366828965417145990484976167839536111716787735733110819848920941524073024940440130013512181716677546100843354129495511667774250652725283390069351557385255629339792601186010892433004791108848723925116102861353528540763538807544324868953955831194218943422265404424474841390568618694414808675377111764262647042552893459772522373314349046060279058191834061448972920186425435253955299163383931304542816710339801313839304961027747191778968364748776918778614016407008546250514818731902379242639458720279563925205547199880782394660010101766585903223880054931512572350470306627370018573655123070140340569235745379836110362134509022411798775074943431015991208358804452372823356286207826837057937624986634781626203973547098771146974105963038249755166513634878434451785234400833603571164873651922581873614155856807717323453755977960912487153799970263277179445222478449514133574772203387307637437228960745278707234863836501419352776588990885556546953324231015153641843276519014535699839922393603612892203609283855456175446398090140516778304504173358196875630396024627130330297877761492620953962197869927815185941887567825963484692724278303926204372684620945300765327945526457603376969216082732976728439751562512007332271074553147115947694070402145221807426421995817851412127353746321159505152613489703128406568530157500208815294546176960779596983158992555938573568717230387666820772927151023194861759820537702963410165128161381239262340024313432260413252427482511440862533085284475497744431109076019621785682324779204467823085707785131403302696534222337229335659663702664513037332852967898986875395848165233603618499138226279454263998343737235232937970177319341300450941944448861922555414608747040853826446627556655700103630540054992145904526638226662517151861679634479994689940236986460174267482600507665678590982639998405837129345938951193913742803698781546331124612695252681160415173580859640276757612718966598436434155382914536108384768711554109831302955038499325536301646842505254986006644349740711154237540420527010544870204879125560134098945363979203367380629269167630448304456966981704567317950375346197331145549560346363006839340721526189635486348220077168416991690386068284182830170739253479800226119408303350457054722926452938264925626963492163534309066166049449424456449083657765810138402799183896615682853902129203858051336837582685781390019903238306940168250021236414775485323497216953049512136863070296289327526506968202246998667316658468363115830557501905314233674444053401082056757512990087570645663866191592945668832464669707593311088633197469443985115594787028608791112643574509330784772059810744282870491357174550501058223971199959417491210891883377216163412038426765720623841264915295782253301330840795798668862894845566526876020070791688220814442217270959560870982338025988438570147744390018543965928333769552381838352742866680621933137872449716593016230182190242023628264025046714859239819568341405279471150447585919931250257000413572568768041772705450794347185969200146962427822018062789900743041877186793852004609559394476080153870005845782588289409953882281425466863202809529638580731512503469950758607396546005243438110226641138164135327185341947221979908043226810679991915890551897521246878885096164052531560349474471708734310442809527667571193389126200198133261360079476466283419757954353665745283343592214887704962065730442248513226401202381785987788575880898346016538574290557382324350811928501680050962343005271360610193936688694163283103825564260984768931373625571880426453968379865150549395203274047499042911352028607196706915431451265433937688087685858183300410227469901071442601426873853938672813160852908620155624201097549756475596104818205970800978253406338860887337236046196897859091599415989046637934860688250144594762931792027666540231125926462580494214843208896220301633831775390589362942380696189061812956142980099669366723196325474852898220262470159348703619920895436483200734134994025886652494718946358720953344865490460604386204272410654302966491602711637919127267834231451457843254073011801340660808911733949706398780386739863926078562618243878427957616741628749285771305551185025311030499119575607666235558590446860276018692972425673382501288688886634499842146620966239056347753444608951820338230085162088132363579765087419458193802648132533401371285400807376642189962704568723943168237390564330447968453809708714972495375842347200185459744478215038179183944662835471372578702797159024371689690696723496191635561089965332567215653210741778947392186892811374972700791743672353525570380854138456129595790593605854061091943237329574574075988889695914608921091135957936555416746450492637180177404878436941742647026725743202896394275829476620148379500597691011355048560423164246097005188513819069502167414422487073953994456562440404613399218343832486494974829314432951468872115025844310863224508033438582559212206826757237177778300665573333486145220483021031366100360790123225458100640544635193531929425736663394264383934410625906975921903288091857471449847191648485157234458441334333105553777167269186447935268585624705026196488124077684154034185681330862765116006301548937242422495938526861971017522161821717375333414340027369397790009721774527734699959372399266039661420400730665914744473617864255156514037093605423058889407859729262942814053980281240252540540641042966734806443745866874406864050346302148024517201835417917759826191337881141513283494260646685620153939062490452200836536476688861188175541788872175825117858544095347065961547784261249117681490547141819960436767210253907379108197710136085815125160371730691498176777604004674577583485270386717935809089252084108645840345468619009551494743125061750550482087406659296083976496928941011742214047865341559287248773723344732945687161885403987027270722892646282510780599399391522318643990825034475692542239353957244781881006258472733604821885070076393250935559270587867463780713605494158409119504890997101954595782699097185226374366563560064565643985444399558450259269973755231199783875549616697370949948711164307526189323619015408869649696860374276055657032453965279712076628448266812305911004930824022667592915932340323880202661654043557744213798290411362324130452973797890010274199621198970274203571413730238114701852557792218767089286495401395941982320645831603329160158360033283174053970334018861246697927704999298986254702646232007410601287741192756173391102539685842653447655195492648229538949247653456750829854552987702624026014057107471144424103135223449534210719352604315235680512595866464595337947674090727217010902141313525159455955089790904913513693055143356113592925527857970513083709584609176422806624458029481223560437150517938113393421477363388628699395064308159429720062827663343682776504858093423979318524515606062143538125452370354417038810951505812176882794326423398130840086573259666700591897248518454944818591600646046744828695331756946419412005692488589108995640512330531705275352978550510953574382039948710162604379293467169005778665407015969342480993429078447915847691609950240779304059396726021371695614406701088871643253777710907724455020713227983789869792129375439024703642112092972540088207065841032771953548292553819332115235507045264103082585685105977392648342305345595148717461688661534914453084309124458474586134398307472263334819700306174618676951352921026761812338128876907319688932901082803130279830657008248123085800482388021772977226677128165863255041775588772888334419429429866242883830538079311710824829062740425293179085698248346378226342053828062282250691046544953263103482547763893084028553033078767488352407110342451247404548782569336691761924359532884405573730701136528169664201756234207733740823859134019336663418177776032562441859683988810340331892375265768477617316975835470120534025588351124871344003745633965696097075481703608636665836769409608159833971241335422352484639210746196213274072676767110155526059770465600480251023391786553415149976522887130231767755516483848382464574427445289227616790845250036056633212706786859489150015521702931770993371483239340895006120098683212844108344511951548554090911688223721807072260727065430024140081840502865956083662665429714760325814779678231416707536715592788019022858490205674616676649877368056863734780741968125530953915771476226976150716616041392130996681211393208322201165673276461010831937473050412217426637310140497475381806726181240648031881087558847301898825715407016830739208985096089537443374570073299895855971029291810698630622803458805705261043438499438475397320711628680333209403890602141277860212125657606191971786919431515477546129450271241191034528068427040652775611843682144954301458671171803061422753485469833932610625518878174232176035801808750656802337340600688421254235522153846833210755416603048127141070386132627603374184315606961598042486762395163923981668013884545714230005397521022633230411655456622457514620331866083035661808597130790252950588354462442568289036876180770910251629179209859771801287822183000802064920757719069824940789724576728214912672996470708407418513282370159119302363722750231087560257794414953665374089393240232073033879096955762645433839738923285921818402609262545243996847431327008961511495627769396598192757087488594779141614131291126870772707136507704476767854393306485444157788553754249905919529114892143482776794712372207238102559320591575915348510852313578385883441594500006418692385139908806858479213872718067086198582326387003035237956315230373658351891755287722041687089726447342611513734493312883991821801877767373063243110990180323685466621242038493284638675329769074975442351988770658166798244934276900731247952047044529220713165076764322490422487841578274451163320290980232464297571689405008315343872701814797838324966214626178822242017463500680453948927081294307615954169365988909574771440463989426342275498783851738137391670352027851618537787877881558012408991111849991726687935265528864654355615051848373046596990738973086125135382897924706899644006400728413307100455999214799940627931862829000359855342046464137117148317530147448718625163781267613190741157407338616071863035647215796251193004265365703882158270469533278713567782674773477345891997817688950826509927876132572749448336564279470115041584737871559185793270402060821695947588434280584039300328418782623633633025129381533578942702446592273277532663856191488649269915871148914311292927855461259804843494177863253314096982823004837840775158463446441335431263618313215557849593110402041715058438204292431170487950538572703632439893746230904904920421050524724090302597782202267180745030662965310805623843979931815428157526675889499883639889228213722838564807975261137178719192398432148716869748511937419915991186814221471652474958891713772745014950522800071015829931940161136211123292118711570610615685735186240152986250161533984536869437422259748276522104091962192222285744097212601806125495343166168432937421992715588399677201023284890074118979964797308979046636189494334731862283850330867159053973995037025141803987663327428475300532207884835067559799522413028090245490549022239304734611014743268842169840262452683977604839595259899364383686510060757729939484977800307648148491742740613861508593055587330814257988285172358738476610464721739484295198444752212739892746563000630694124278253706452408401984913231203115088967663271933518393838105529215200414198412910487348181871112245834355467088661165347360176031351368346279758536261554467595941146934662690075322654406587967531554454969763325868795013593308179152183508941736307648144205160487962294586825129884894622708299934682212371239041416916082511610405550866083704107553929282926593844579418111284871021435509620453010384168128962352628447782825738754923157357824007856520318282983339694714317502397380867372011284796830438712597862606705449248256727674018788439795168833232689092163058328900703324964106831175664900856452135806742272222053654918645580821157135665905915873748324525446488436219623966393251059991687615458296371497992150568662865664094287029858615945441339706141374839545770890449164664281260026921317804905453389319670967203213554550278565123231733762342652972742911429978439665126484877149063970739401808483158304772272999331370307621810956626064226751007325711347845264259682083410935349120664369933508786197983207789179419498174179443649670910234653410134283474621900615425161596785630768541428267081842478254260280136159481568686430627700864525677840927424806184985347710342038169137826461074503596642728463535586331929692443893422425887865941586809885652887495885374403304892185379688231468348704032181873749858453963915844489982203406432904636368638085520261653264485304504542696785082152014918987197187324161360256782707504045877943512651596684405271248699910973160974591922324272336783807857880119312628077497250856150531191880692127197070885918628593819006544110705257915468392648244256921662700326422003034130626163392902369076766932632118149682534636765140830336899690126982584249486905136133576857209256323917796061482641938748527642671260580388043225080567288250037632532149355129846146785546951398009326674115998238620587007451121249657295797597278637242192759925395704412360517125004007046505300530333058136048097947576154303716966704627816947641866212214948149570379528487940427955003890941540677107746397271294380022002049010735869687838342580477370066781496334794776080499470759358535646278752193726590892631637141791632146457813615767450887368652583091307566144513540154628144636494619992920744781850765585686344745756174073643252517529327942345539392958083353039076501750279187808638650923023409790835156316032803882939317341776809630055361698761097358779059275579123018787252311759595273883469081694998525670327288864082898134030757764077069557787733236389135816980643354155269718770931947608108281964200456109779175493220400837686463229827574409736694985606903986425942163820233069529787268022426111636278704870731550392619426858712036535647381672364654825820661148234753249727104042972119648659402236353792284951536278931085501162447166247486878946040436642219143400448719540101700530700239021856053573932530583814053780548255363720798651383924614892262128800400641745737157343947192371757173628053672616939263720997205944832732929120710472345214182088447382039552761898455610856738090900400062535796564646038328298269952813251242560048366663903486424822545683071438106938603428216513922056380891448554949205294292985213347767491771056013705045875869721976504320406033062266586841899450376090210123859182148037192387276722331092118034745010671801854431009128005928181180269989085498753833451491749495286793539534465894165939986542178639760287536220507505497768582403315393764507797480639293178910008420598094000233195059660613185300549785168661100852533517184510317099427792353439923629489179421578209364190905665245830245928276431002589156580187097783442359421092684844782215098859093768006651548897186427493662572426235886597451024846058059978354432769004126580548696393695998919277268873302105460061503947080161588735220984404245999703119232414032115863032631324924402675111092153315414736059010977385638327372604173331501599629129000001409045387465896327384731037009062897338431645605376603072730483592469162834206244805430261902659185223268780966515053457625295026516241838758719126887885577245391172668304616803406771734855877833889321177797944830188310582301733939825396341661226341976678204838348228735886367058929540613196599260450066160829113052617215091058483251660700048297813601664567312769215438193268055027110753204651215839362059714784730527534981327116775980796628273914728475190569523484427700553403944934959228066458588684628637496700569753999982141004007458651590851541221815440986079765455456183619619083620720172827154056823679767091223536756772779320493180889411700412041467974217949717284904519922015865469121650666687937206889494174734386184265381484107924727167696517983794506908780996470630469236437613963571940129683812691546958828404492742826365992539794267654426661612469268864169198576379844148625915455412071613582219098367997330298531385408620198504398091661835966566574456439005322694987781394105226801931131688316581089188431889438663560037569743870978561000875830724485061043501015528504797507485882871560230291326361526051680544214407840508329815694966361436442084744529083062157669864897542490386983945009614141785362235171082415389029674808448721960799960191738607719720117117850875930351809327922406495288180608391755211157231219679258758095904861670712312338920540443673510376547151519019101004153045220883806240206977794399845922570045824566487992023068159036050810214951334853779864630427783771547659272137051151370183678792532351032046532108909395258609424126494427348351851515890515365360057638197438850410426511887805841037906018616072839691577255191713488498493449551830452917035459169419698639123427605263511183210997828297195068836504142581902809244853240441110717948033488142303209869926503356867528662701008516833975526361723496210852193687053286276394682469660786961913706645449189181766297030394474694314028819487006599965415465875774663189322045565662996745765996851879420962491370820192367837263362754167270200980945463680875375898573483670503019487189608392053245967156606088718042213062807465870311588078803087687844858936515194121820560431706946191701835403982442644436736293044632934432389112652158649685464117191500842793771665931859625764369608475757157492878054220469074694033802957097528438601840672247886943116217309947942760219337058200378259096802181147148562231506937820564791778234269541545299448986181164240036754664096935979330234677491656612465407065917178867864116932500598193760018819851464306023661871454939400779367327318665434746137382162240381466506240018909063853660405419307530517356696625818301612035006691087158430518139636092149822975952979797721471534106847572676889916633015894408921928944733784061763274185426668784571562454992102344445037475559789976477890936908294142938066555648812689519157675823160839432345183669792574294372504207439935189610984369321036439590766316663029145655559763514945706275155247823959936785853493715433382738524952955248353699982942330977112550642454569560816975764425914974429642171228335854031352701613817614105995432585379816483328064125025111553791781551981723855857762596479651781095459573561408036532439694317354951846295107058396735670731565243194377691490177477131087860468556674491031856399901063633135786284004439080814587656057804248846288236501428854567588754956822593001432434619460590469908599747006758063276639850238688677352438317979893642160657192740655079353673270662922187811652869011331861460105702690731885613097504434398381262660741988044301272333270430655798712707345593322417620613676231291703777892464010388850637587262140038535948048146803142162287079115527065368371376421628100661843571464885239951891341966176843173824297093042215020921563234693996867283528719645996812973143863122968677418552518915119798837039153598666356003014026474863437947827563810483046854360428983909032523899228124914455440907731504618792076960631726276007479317836163597845187209606672393328477410885827632748712026613609085103251949719693069185791799543787322320385373624742360862665784780342361870867020192405698622856295621172265474930601727886602012222319928903713911283590657084112818334646281973046270910968297067565202588419734280471558197433613011995266804716935172535853387344029900673903452210230059243795055233155277420103305596839297326043516182211646888688865387884313611054867786781055365281525243388030285448635488921815593346635957543279182160762122139931418838285027374968635802962641794338012930409640975866278568668999028603187431478935718452206551643564683452855057429256921784960941506032568850324228658573189104996012426342040054619780847117360866531150913183251283121342590698460918602722013237476801069361728582469205421382785795065645440345260733214942745657085621763154915157912734285756836684763771495088982918373002707368961107100876833934422996052949779767619006010317164082103250660417712121824571909228032894055040247318265872723565994652149941680493434680468222675975665306913556524654688847951409484370233911486401373282538246658702816651767471598315455060898339167455539077103268721756186608985060442753691894503404567794796479675713814632501475821406485578618487752952178715144142902018431984358757628837767883876381302466322661413324870934435347187418416791272893690425790289333365167142015161840050028516184318407176407009468634961637999213194074590028934295225879786035746601034121490601007171205937649798410882068238215117515086570990919541803815471694445678412626022199911863904602510005644498569133959365128113663380679397020855904595490432610396243022472653612776926672487946829543374430676414831420362958802664790793953522819992865620884168942010317849464899755788023907452828747134282045955785771058386702567332972795950199650356972936705934869151382729961748218881736137850040509641805473971717462099009714478531531201207991485629382234928118459180856748834602276248891789951358722383848030032014032427844376927462905258681866707784485035548557067181970353475596085141573788772906804773737309162312343537274479257853069314330362103909161233699499469697692489997266529998541858587723756138942019248908816178511254617984386423572729978896347517907499182704485769888700320769318447429056231555072847893832623115268367646734118170744727364522860883061799077267704659951786717296405568933618322197658330296534471761182385010573894700803654051646544296935645839124836710621078040370134427345039600463839378183060487901465336878602084550251341072944776256022247455777727092463101369736258283506122505782789061094339584623331057287894750964003564905209221203312739095098791106844299960448086951589660147766269860612697213166516684205629164389235006773695920202004953911637648478055529084365649331096687568071918166118194053358328250472817729796654084291262373073645520220368129221209252248824295078240748145546501041251698387959503381988780779733848826678528760581945450276341598671097456413973920220116271334068574381965036375575513164028671818425837400642077007295567284703026377438306814313004336191067727835937778951212801990594856559641661594272256913242848042097763632949641872779587351760585811375317370837012278251844838324837017776627158706695501826787932771062879031799624749205536371553045226418712944175829383808644720071878302178576885162165151673018495253318310322324596976901200170822624913713376408614831153227565706048256137380384998749362000438304452803714477227021420445418183326433643153847929941994154097286260169275832160513014845011729856905221984811993135094470719606657737910517020467371359269648027987274498708466615300532416775930788474270527188311917424872056543348840539506782306639055423266866167792448555495754848302788896735482908693138956665243622738108478710176170757819000543534274706629487702487256418272739582330699448612741743844293386659526783920850878002062771557172040554154115193993779654177509240356008316585396296535830201019085956570019246923069334934830791336923849108684566397601357458833825928258101063077349526822288877339173422018168899240130005492217143545864813610660450306094488102386480167120803191165140159532008841868617278441208261402023638867097209855581507950761470416699479969806890752835107912077333264662316857260200494010113263009675450538001772027347277706668717266691497931249195052354374044364476317469121362963797203329085076509392910143917993519348562700790657448367911737020243765172497450638110106670695194176372213116672979190761391869782485548261807612895001948885535388036516151903254144958502076069748516252354866495467275882630563033311488524117453269341140390752318073073359184241179617947097569337700640909637013510344699251042205224891034380150539247509466938305162798703145655681406864990700635471613898606424490560340405260494158535403957565846506944100243989327320480237065213025329747341858888819834597926194789264721436504116789638314777725476083954279992821603126990945082526264470372443236294828287284634938469096319971329541136248804245976070505176127693084011741928125474570804456704246010326321037027506430580670082155756857685568371191178804643124795046120493900980408841107128519483818881982855399615976224722588005652321210884107617112576725706035614121291183362659924233314787510606558841756282885644908154853971682111918396109252842348374415900903260115088385356556977758547739276265143489425806926603203053385957794850218780369184252154772660944448453388608325813359081277305834497483253038951289081676299996877006905421252010891009198069592326129688073143930361109469866382556375738767749684765034520355485016836309157473428336659847720768155396464392216017545282292841503226911021744804496076936157164344829453410071986107713904495677223042377560778250683248243458525948165221510965868749700416682162843572056252934001096955551564305970218578783034368858740054358782066998151632706701423746190248954522984838082869368436648879315114614199560447151013204093255193718930269994180924312681173998287153835520155619042029273022978863828246145835373247635616495550785924838133598394708906373759251409962785345585147286671553091904141311423622674744069247814581636513137921596756147083142023875750999700623890739077212137949813473141085871094818442841333617205858011622219888923425754212246036948191991571115943257806134781572651046226613495813669992427459332237144699507002122559793938409486950287604292683786288459431968294418849166514417839477150938721069827323084769716479509965584788313580112101223165105698757131772436758981239726261323575278429632317213451002914399142113182759817580906310208811162012395412522613302158729194379919971165301179085442200799053966738384131924340821735127495635140122955995566124925760152588093776395274919927240468551801237368625275052512043876262444760580807577246303387831705504673588943278841162996911350411813430156205098645315713151299135308601199615603598276760701623515883762337673672725568069031458169956491144494412601889256660457369780591787202209760802399891764777821184666017813165322115829096476016029643404363440225657475184567907514507121472496874229173201831636104710093364491196884061787062848034796190433627966524051093521365168146810635145159381728840475248735266698087896428070466501402287064171704910323268000120925282591991409397368556222701958586750432381570694521425131514487023725018965158518712709937304175347025840651232837081368674779602927595684735079923497142016353446408094989529501248051937593603468212375596277506241055113189089459206951861849475087694948553201162681826475997458808600092157045553042106596960279650071513703665595465281717329716593647675937817265851753992785816617956392937425092244482270418772031701243708348222568999929808048285618875058774984428132223746490160143563392722317162673426516726178965984372488427903460212929055054942745959485657305832318114488994191579072233636530152925167699205984444951064848442692508235183628449386915642139232531167848375205010078871066635935479920667817914697593431213046870747063236398260797853754156784312505497990315220529286720962905744403890176732918002788616376643351465336093584275027102302047146126162641071371192751771467833162616773414102126119147153238319850832369576461692669826444803253962362249538163304238009666902102707844943827226597354939996891641844638736722477115096597530921768756168016079528336055333749297431083680348202106573730270123002289961252361194230614114886566167099247484445158236815072103561765347913214155546292605862517210539784627174578244749131787875310678522746150167447509447991821994086662309478268062289533210979050737469437073559478895709341939114414177104959645148638993270056201670765678555347224513395358765735492792567351420509645440699252954892843304155653776780177045409357242123848808096039180869948957685047209806232476886057416360740985161341749930441951125003425785043285295978336755700402541727427029591267678551470782101434612400609980078967201440912082553115807869907998184265870018300104188809287601761133929154806499320365382126586681455288521893946387332660721161107132494460749340067128419597009782502390145927984795886833327379353497976453059983470573291835685172998982912012897782605108740828361900451986459576294050920475396335482135166464668440791492561103451750883166631448176730245228026376689413301661859837957170163583659335501808833834982912798446616186137337561193289751628487740838581099035859649842983102757198703912635295472707750981306022789028161662089895632777707707603607547958252360417953800097974466232100451176081339477160805028686403933551295219199277664402049401464055433553468583665251617420369096676139030751758006332878906213720975273731321302950410254087984993340084568836572489043787835056631261575783607097749789117262589507317664044269319000133625764268673750014023460332101985906311120342265225560491741509234623667309908371452476315477089452803777231984558418212553274742000260590483981100974328412293340855930873579844424939305729311722992499269243610283878191090368955873308023946214494788912855542215929949237369478448793702511290412878726189077134998413849569876861833236014394984874657407071841254813357165034021784877377564103504535275594543045220814053194105858288125997424916108155848207878713776070953032259983302513751118530976201199856161623607787305207583501510549575409994360531460622917175433226774215684314926877879948680953474793398433815363625276522261910420722244421354079214787171685127156302135691621304004119817080989789160171630803134382505824510593371239356443094995388441720683617756961766602790706021680364530005649995239287777310228233364750503359320740295840314979985288292175931546521079244559231532857693339074959457377386311281296696327095300670244808718375265727407052094893121493387403153435634098599249495607115199755649548002474486151267979481882312424870659462421446518347424830794075100161192499301646022182215189763707425197873666989267485414153686616659565421392856562169472315388496259314111063367853487436369752492635453744651570133092403932855885584650909379914902291099887336480528071737947484450183873743416820107094100158925233798567525485960197221496401660246752313747026511311012953607031177563053205486908348113969615506619098049100123333879543992517941247694847239629892184305233655043274169833797305042207460509799571275266024699477056169113753885773565230001166565741638435273009368978676700475439063574945196564180300285973612980327663989592118316449746879466625926650690377888474813673816610678996291496561982249429846121668373497501080640200245340344895414239076692338985175817179218904160115350826945585625611614432581103524682962331101215878264327063411571519351295408243065789799265798788653467625740849287965679135566882771808296052690445621882222834235376465240979341838671217186372086679895089396568904678752854687493108253266598429776401023009978205405927313873791328354272460714774035128842597616625916855122872499535666121608224125423558503845231097879176033544782650075256374751293965837387274520297080215229370733666379473954249858281851109893361251800176454943313546346526953571629254262504724972726788701149986403371336653490004234646669016564054435129358896228726789555801999215619350895691813368778020043283947648484159165822786983691659949652437391236670098318858037760446695279726263817027710018405755949723823777451617498036758197268308043221521995289549430814167057074579034182279570464828740775024719711895506565862209957451573731258396885964009719716570397605226525040517145143054840865281116201352194485940534365911169653652364370997051006765025220084021267423275343586179181123072894262189406994943200238181014221151350602936567557374296881599103441538979000122247598385125576027266970171435454180814334907422027719890489163262980941247258826917709088956480496668923355456596834054408788940473490664602201710353608781242257454950994750407208844654683557533765181730574770187220614749586128888861220344601675993457042080772546715798872195910340100303527082425898634612070569343772356035171421751785222543893647693456981586063909157247004323455200433187987779182931999227392917869111710755920658283428736698184878709453383900239894318782878417450029486994670776974992044724715990829626002737397948404683792080873339245814232841882649711294992306779103196818626174854643299180028978634069776016385347069352339684348868611997070064560566110741784744271392732976711880551057386878491539302570800952796923993231786971694045713374198647914259920740708349025405431438589519304750953535040413259071131388421454223789413158401779956059454320242656016042379229526018067513618401304818316263188286356075563057741891896516180963788734022073320955021623982303386360901479984352343186888019368228547511179787366288396662933336690530685238033431476581619419095483581327576353798069554207004980627963983226391644013596361210745340728452601085396621975962106253461118344575933025699265708993398170035880654906872269078671738389522241270311520544219668318110926448054393812169168033278730149887868168081314848956188928235857254441152552325937335424376390960372979457842510258728024396239054486581144916393539166027910389945846085146295585313213923549897277686617456727308408312112049812006209294441232740340971510144651882899641797415891756131751763689942922655262270476887066137332600852065621062132854100081012908967748808629872903275568628923167535269805604904029081942493995896176409583484132843441475684815132526916118973985987793237202770624793307594138448569274771505566029760933817177905594891181383932356524017797197491370981146111684806511638720956962118693306653290194001030210083711370492306284897172913187530599577867680073846665339232645984592756586286665958972635722051350965653228233267284981832672897144303925545132604540445367523113950361200339455667663621085605746325356431955221715815393221711724477586037659888916818087245501433081249078983276031710490780785700955394018524422657653816979304886671167778173557055671416086062554288435755479150496697403676316202395999410119503537465094580740447481779523251463313589593484411413758912133698163568396027527791157589111203707390950549502009741573278059865330789765914033984107929334073903948404498485564054205124051789040668709639342034469863691177521728267199397536601703703801054601497685498527796496858781978787359382151688118419634115220165640497462658367410268577981869615688190402984522756001193004902398872735027987957307490510133171020690005251015386747141678411070963597653748562087114272530018454936894042722945732345040758833796797758269402576582652631507144885395585728840624978513636681352255507963509775239682570695674261918158445675446232028294359466648002284506130984149474072102435012557880420027951041091628777319864643619799867475309761613738316749966990838420493311823720760546120823890373187631779890071418431727685438875053923968699400468922276930587802040956110795100082092033692945489632141022146039569835168256001900978542294020751670727170609139326096401307671888738693493963900217446566674249912809867358924739207204469412850155346582939993182395845805325835038702805019079833501213015238781415903187321580553959839341392703356178514164382852222631934962094314778694971997738524840472441069801990823791894612433152269437429661539629811609634159100474268691180833564920302344994058320297308790171764061382106659396219319723349732543558709568510273144987028600899153095975035651841378890610860757503835529758490054188145010336373815241746033726749080546213202753867672712327145315025873123297611697871646447244226763428435879379409300189057368713631489530237891496101424192500639196759105865856967463426678843587186852927296138036778284446735803964259200097342769853413369535239434820021427222786112957005845068627237940110128521928940445061104201633012744493399195880625848531505113143733484296270331907179984621501959118415285546264804814462339881255009930074035413831398985481150582913979072886954375686220191443106725187702622716118708186176594617861066158675364441859591713948172377636002356932466755221092338294008812190730015769013302851422502026073207912238821038828487286804361238842975011766169499994609481708959427037370065741395401192674659404283811545097097518082446535322667803031029113627047399206659362867417734871311733994918284049578598297150389607576205241161868548074572998632589971135234492481247438559011648358203533130122562222070005019289367259682411330971464151091668135402615919389605376581378249277851090002204794800784830878163745769993568451121094024340358220180485752732430381990546259309393412091331833339954401170746046780348209563855665333928404525419202615791311408076983920149631447953448226374183490947557307600376822773884863423805510325173091260359057489881585324235488989686431150693335050920792265999960393303165841856178892237104840609165153694280236284894110218662288645738585499523263379303189029831853497288957039946118117151863034740085069080523129872713101769932275136869200801344358029404391972614482770401420950803156864316854249600529612444477218505236839184967358075902173824241369624558997356826177779105618891526451992170398788786925014766106100278636507902832364479403205853098152783886643376093759047372484680326073862518409251349210973928263977070317883869061952191391377215604103780098474304988205102248277901012788347051258912305037342075565604990718848888758308342449939804168788102612684526519156308845895666664859783628114338450555143453253716832320534414372144945414695641106476680891401810755648112743517840620722011900298974293891756136366120127946780001820171644182084611931710238011522568795131081215978537779743498585308716239790708591038223916626226751518640218613231082555864088839455355415316628540577805833760202175382361956938923477636118798761627801859320905337912807878440519779309002176101053148580863245795305710814152779882864727568181767035047033731176464404216879809409250926634921234066266678891528632707107148060411426911268407585671373524114560211177386145669460251619077644461201794170928563446554122063837905638726324951284693068326079490381277519220797346323034175676260194938830760029496312966052711675506789330557338809942310460641047663155713071335429261815767551142866743727629518124728418094039512083711900780382671204370126840868846381034451955692362402187607234435753220328301000112344512344193981768922045868205412195686136957844596113367640900132900371922332230176394084572317867370225383595449861156362296207291452704273376435700699753383045782381616189103937288071987110942077829239749926780694517202340316551912419520685320892207715112502235294516668634969593135046125000726565318135591726870813954045953569428355596459792563701598521283927410690681303735063912193262985481192789319785025243029580403606600323643267763994939193318942747663507700968096898711878283914422366414955811348896534213455417123894795139212577148168404893335445149305300313141525447213369084207327426362206704570021016441808817879198326836382519959976269197792452488517834819890632099040726289917262735602399307638340376710525571872051605303726453535280496634854842806450083846312142746437304583018451665923276956566613191931448345980728527220604291868620125686439064895974404735373130927535201121595358546619088518200694929719556263448786234854298043505288201420497601346203102974352735039240191169965501367884170975359441106099376120598813714874184443624932262398388087878244544900532880925409079749321037646271567831459741959711662575894027766558834621669748788606085886798444927291099438271668519548635962592655411388215932985829880047756416617207477783864428323967061185963138329280303211280216274125982723276714341642610715678808493205521504547241647807053084245120701461897722225376890869403768295081623197054086891082744160043942183276001844022647483273379889329051206643676553831210586454308691057208199133862135245333613241251868098854139322768164260225347675845920264209165321301057433584038413046173965879362521339556659233246516133133650694624135892117098642486507758641649517800150706402560030864505463833730597267884518814103511656816805819484460325303536390624415212021660725064083963541872871423829031817430005470640255215288351697973021552788952916765241883690796970118693392710046618769265084393040056537557304086527676719072255370702164411434086290275239308924897583760694446552464079923366141817274384960632108627802175993042780749074001158306426407794047560729174385071220637673706140831214242794884650960631992342217330064061128891481977366199216759891595583837382646107096389516708815980603451366323811911348090446282000713179485037350927939324310815259336490776008789634358323623292830741803589802486281415947215228788084487867767124379143231259044958442194759817062767931615049160811460710350155327061758099976138033993350489301423960711223503609498979825602950123532031684626479679230021225340338214878832143938081113328638781601259180692974762146415641004167925136774724264067172647225235031558712299433250819631881115704623446493977207866027425892118784203651271801856288581576146960018443350969320675177180117043154025819543301474175195254697797785078121288181956336979471980465527481136506962551163272226979337376316218912165273709788705396162414040090332732147553292490655397817663860418346102545058818905280066516547473070452660025080203606794945173887892027213856568636939848108273773428514420429166697911639641637287222770297188136917181534331330487679938833720693299478377410620774851824518296621038465937734497468296046290642370094133749261716442933531557978738057699736614329797798031630239932500351306834328912936563706037520349502710871603048728061858143058890772501204859781930847626880256545533966646149470129641512140626733140615293895868692367766031472501478389689473199084360053072038364110615168845985430479635472276991158283209087504947599368999252351818774432409021845884105634545957384605765257574690961849869322200948980916455559024864814956664902506649676243965023291824591922966910110275115567187359569441234532326478969808881126735261826972732534781977549730238735110471776748738353115112064371854940727710662036942256462519695770566182319379504631375880480056797093016303273045182522275691259960313188158691126829874873904345486792347673167572721679401607795242161308313966747595122282630412171676100060051239016238979178374026505908556592046381411631344154207987960240913652512362755725797763482773715759340394563836365841208463841507487620754761336683351208549054512389993547025527793384144037737396499893653555274866578959903577245666652332758833697632710354514081258292773118475101975751056875862978614393615309322820336699273771859214294460749001671513844214487896730772141673039971604830406402867271253929830345359296646537745970338654362174982599098720843776019610730517302940713792012329758320695385967731436207289664162614319269841628662870529523966252046382251457825726239813649737774537638152032862324544318722914448627807184206995951730806024734982605863595204735474664380200237670185410759256129890769154897048399464379508342745832531467630776398695328171478425533070839480149116880857055442783270895846405027351912639996969149959812770785749826208869678414641177061900017672570961316608026012124632892244837426835112571004653040545259939592920964677941123040117065290310752585209109391741362648464502742522431069136944071216570507800262269554931113548480281262122145762310897313052895151413321859084593041584079389076736398061352886873595556449523543171765228369571243931192648558105712351973497141631068415871169417201483510248762101588754215164596978959043670379376504290962735219896186901695061893013082264211077514159815362184303344899982849174242968986060632413209077146351444072532735831453384767222592580221953502518439524931390623471164823786619051752161060312843406280454106729393763948159952995951147437379489974656800521628367203271963104883717184665540830185809632365384652845481918700083460816775992915356069193443935391231918970274698225917804138726015342346553188907804906566994245771571963004533467557588420404433659352152402184536965068249054265046485436606203707004448783700359643170209062254462251745930927679128294099659757230071549386922729485959588672457180418478214854154297641769184532240690450685959804854435765642618538835344226313999238075222173680172043092832811047315556177721992946487747327632477869462536807980414280754491019088374200200505541285606606070090354837444496010368641909816380811041929257657656656665593208018807717087366944296834474962747288740947501960457972586685961020377646602368210459247411408733049959806676974078522780922792557456398487163536467253491228391703329792064924596452395298200953796956768109055144380702583925843891696786927221110806586659417685950688823035754365981548476722625174162190839341186814569518293803609125287706410204199125698611053531965723777386498247593801106400343849402199979759136650816272166066798992560264871301407485062189071842450562463552320186930779591404396824522304479841600149175384229740021816136135414823099923013699201835128996902989102508194043467505760593693703683281114006891975183368215277482857981009074381944996922653430498833929963544435737111703939672354619131550925424736707792425029999547868422046897378067585234641651058474238723678993512394803988080054416376905402914301974401678742821494796887306673978765197019545098130430069980986950736704073797098620895509770879367075754299188103543390961000225091524035931537054203948123138186865359436905048716703041621304790138974842546447015179066329429331203094878017519561886596913984739773700866959557296454613539155628618608911768276955962568304891536724364636922974057134795307228778804138408911333178058562013761926229104172359876657594807095307561760813487503075441482034934707710458216784284372653172944219085444822680281804956761937420169541527757607400769552371081851429108444948212731261454140487197034189593127949767626732440048296575364648502303439642314065822634673063075678018730025607951002712997886460463160816173228112578145562998552275473431456552460934464882961796575766779272203764504764152912762021783733342681429521051006487461905146529102174630059306513109489235488080953151800110355441654380852629357666783255177992683988206454809124410795415908847272622524430863796214151775653168095992838558694809306545172948436146231453217629382256410787201459546129899747937031307958473491894403676951481006511906170327418933302326000058326258445621451114837135155233573950568103467730827629021360363643610410615189205802223294398426839613196489109665512588139093879674415174459161297735584592672845015460467730538127335449800973236825330855169582282493168395663119462837031186950556740866117909560598755508621080808773440857463370315404062619678213269086074424676179228932715030984631868859181905064446898611159677948562013169275808782284209987398961073885094353275273670375670630298110383120189585674518464659489818834613261099509170964029960062451782336893453225605649486092253409422110749154451190227873518933551246582979535107202494216140177103800034609690050568938838882432504055965261947235782212476496767862730571456244325277400643008531460282060252231093589526186262914810081026087294123075067473235176706317381941065905747921867907089568357687069845644732861654082428218158216173091000270886463939102665967632110336606616917385948310054372401098041094027875480297152709580042347894300407148308438528667100095318373024434586838451122887771944975597981074512023147333582472774493361009363632903300068403324728119128661473054277497507525243143009364738662755114239563037148434580678464538027350730629164289108303494388428368557954166278593343541931468349921589530323121664968117460567015219869456477336942522341406101641240281973344319701524023027994992508155076516387336857890996167749285890819779759020914372573891199267794099645843090369938772438586524894356907117667894051018251878277106810075673909632319193958742090259540101091601769706273232369683402091171925356982763648250935901254763446338433944121052277201036931108402040776325564668483024898770506892478990724267113812346468365838064472690349989147805757351951170432992395606829032867611819200835765800202701587436296951375956509186350598675671933042735353893889833778014156113395268739993673987424701991158120354646220785217558895573809358863145606451249714380543671334849749718624129829437854517165150187619941577743457426704751631382886823935340089138031524227606270435785528076266409386676918069420017522122071965894392432845538895280520684559576809813199279714802361639983865876733304971277506982297500783118308595093812438656093157504556466166027334345368551979905797183174098501911036930988712140496958986956058237238888533215663638028182137928860698373918965191135598526640119293087237003532346415420766828092967347137865846230833766533384892631664817560103367685080816768899532896351887593930797683943266117763238596569533704322380047885050381045244830977783364512245653049937249380630757793077577228380446945945837641832474422793115342263363700423453737022428233176318551846921654476509867720578822284663775503696205176203864794862481500198135580011444609318658776492618848636145754497967689599145854760074715329396331767896569617129838439140827815389558015296860540968098228405932448829872975921618837832357870406837134026248200531904589332989606936723304286913546852260648628044610927788000895557794853219258100516914128686552028427424007817402187928206088582775595597877283982102792435692751780399233800519920074374551347267248771190417329861660351924352207051361533547484666273882052056000572224038870395763077303955864704981833727301911521862524890599460084951965323553491529640920633405617240659936252775155775749102351892280906021921860082203110970846290711611322398042888465993273955786287842340226296654421789096797649756458136082153619085441561486601614202536267527502167226391935137511615248682950569338311016229915453409583531812654203661253365961765936313707112132570438057310878835498624378177579769379350801208421740653029414670491179884738808930815325831692618557863072537998328262794488978529275612576250333337531978461783246900042022740653617201943445348534274160002825354132136057095527729749985419080320426202525175250312458680413202877675014831864129447705984973215634252119676271871582923495725971065005900960021569810694855128979215119912426438513391598294784787789870326081915259121920454993704206442138066582063869678969792685924895908330243051753918193209042714745939109268705090263845465962916813034743757113486894660316200548311617314613543397804051822484377865548203696232202532970213565763103391731805894983534184865873926008683919648026882844872078329602817344383858352206040250234053514943421402963037229149659186173111615267615171556707332920924923740583465818626732814459618652651104660013025927784321595366063563377895342358235023291725172101934146851469936251953190614656325459610799917550785622367524046013536934024794164344992012310695322660794428492437751751716714683839829847816630809820320398461225718389758463308454267538727764628899657872739077537778843383479094394121948134397049752666808134026469001037167654579050066892107418315122707071706264212410563821986538354769519210801957201288986646881196434105831755549149410870538385483723299178992362242300863339077004252020676964807368459771394794719017640640450572662165416081607693158421805424645354528031414676942454058303958464988634005785724264580891731633727913080063890227826101063082425717116097490867187719096124218021735796744427410992608767348267877059241703549205153230815013241562412481931701694288185624763548173149954513150430584291272140900229087892583459301813484981998183395143674641773128978611705430550962297665959373857596097796796541895921416292678999169098144946371638099113188782905677450162505333842122174081613058135381045584521181232513359572133063024347589911874357006188451625361334549888503166281611198119085595296787807684582100721984404933442477334989955948036140114295018013595131731445952260285195266032879269716541334481219436520725189082408173205382818569918024247119371544165664002478020277409819919606367386743147722735004887023166530672526563144828420183506038446648278437667847046296926404339179250647438327049846316857442387617239686800188207628328455040923147526468194765444191563781697540227264814620517613830622307004796948466025639035229846492332091514722667141890448022792076669422592778160351182809213181027193317050117388747981274435375441785321342025105077645014840409538697217569368731176762844802667615761415391499094033404747346763662647795122020566256916696870897851214912258083997102268707766635825901359586168103046132259393799672154344849996049003367487542868568921737709536252557743260338516825009075134369610539312761461726630814268715832948830795923573190487188360559545151959856756032684533391271659579157909674636134724027128429138925590748160816897146822402141164814803451702717980466282165920123744853544293573814647525065051181361619779043350607410885036722806907333356295332930467974525236262126954429635594041500965841627706978320630114941639285456417757625385293198417765271093460036979347006963869176962308642972936083339412874940218442158368409502098874270508133588982602994430914550113726695091562513354355313304182869011011201680691204655295366095553869379213137619059184653657234026585191954082338690692932602025686141761265710405327137736026022548059222222720680729511255689698877264241382131332056341500591907371734895253365387178991864665649163416141611542790741730828758479521736144204271542450866579266304868320982937728497133559324159209174820736973709069905574278227797648027754925547524232985710974793705333515761119212732700878247844390314517233608190187926381966349351356500985330739679615731193151634953867163974358373451961896248625312360958474942348191633905616361436230543316598893430810193693108817577075861605185806887844037335681675748430579908459450418214977372405254987723571856704292583041970609100194853276120343987081685829619746377049868125282262673551108201896304558161561333446822077265359173788085988905788158939368315283614946599883960868694324509515100240364810240553872437793473800162740259864828587474087972411077118868489959780421064359680356301973118303720904854771934308416772403812458232747017162957102527060483810217917764316638474461370046522949885543529506849954569299744941212683273903333788534150312003049194989575748871391195363717470825476031291149725492622338813521946235889839919619511040474854729265215128894448465699289675640295071039698320081933982650445563993042003138525646344632664894791474376861884882230533589078951899881058396569448186141796060372855604907778794290384771912408256220640134016169968313185329103033462385356833104539260174137040883979539317932903847222237836843731364628796662656038599613298972713866835717268434344105954781604162413212051154336227968220512975417512715691080170038331615638152650214626165370474968825094624354000269674153143180328382436022214797440959664474504300140071501714409654280997444756219045968072145827185762527539470197435329732335569675656610703585952722288377910259089163255888644457065793303457384147592655258163928642664220915303101390859140042487371434945374395397566952335001161065056583910436718365410230284248838779236295301394046568913769497014295461497533756356818744487966446102306905402036890673690419825713806364231923121066830933421753779244622673625438067256717027098864398905353395937427128218361152313374018673137892934549565794165314712693931807683905231071603285917276253252815890937916424805007213591909292570323571290268900442222276454043304815084078256760836391186867984601055046730844686376170786618848707937540491065840584413615335005138132924362227186788237934289350233303568796288319005499406781920074427986788042055103735182093670640206484408058616683859995302210602812960658382329099637285774659080620727293624050539548828817808288944865631550930481972900078874199004831922608745414558151246099703578900354493395594674209850977042963460466480187157018179594958505213162911101515895324434814468327128398148197393239323237229586416118088490870420325947621716132639880955361926515578872281278479496073349769343090192135798430658712439034863137868498759131103023009214347854300714047801533433965902100868185157692505220229662370641023492988836819817564196085925592888802883644264653642947463515934412950808027186095446408325090651983782749337950393459443395075214796649452216159988382475393001016505359162228405473587515394599497013957458752742392669997856230561168945700601727704143984221052371976122227842966406316888781982666345812256079270652218979723482204414653028351635456213218802697219558152387160471168086386513689130260463435905129810542334180050564961862749367352098642587602567895411701656597366053972753853589496096106491053091778606915647243315415258994240997962411039792039102300563189658758666481831672740072938077074990309360898509828970550367633504971809789919792467741792177828078667640896995083585577939098660517136454673655119238456465379681055748254651801258301098412430386400986365803351081641729855457086954805972181802505781141607561437437641451371681308686086988056343186134324135066699508224352343635528059919727347957526613993343745941446295442652744190051795564938929020772652849560373123178367118246251478226684838037222820306267745990490555256477828262785117202388646538293370851053912763797844577856777268380067235682668697613937100397438869103858828832018788743705040230721914809041647747040246053164765679351787099688927713706780968854368395887474841810817931106218389406297032195671753118053794044880371129081095655601706869406980777501666560200694646742079005811814577157225921730405448078828279284154487052644099174493828365216461101865028081437114872727646292805679611944899880059385430594516157548390469276121886304601931760167024223643719516687465540478641820145098904912368533011916380235067481256393679934804244728410183622334467699074911990815614761590456369166916673981976037137196221989482476969919192198325209095792645286568462007593810422741753192144151238630392671528506238996780909119236134693446167114000005209435438697295668294534745934836737963592595297471115494104207001471193824503338802054428285170872779180065155716989801485773731805475014602649507893779853315572751955043667686776251117860059719224532102114053505977902300063372918818673300010617591247092003834072404517296537627614097641780419637799019035787259178516236462362313124645884399205763516727988644477538636235505908808837958424964282423155511147412049733526889953614447580971451493931248687475285855812511042160574055419313215844475166269740395132084591847209246273379315395524399390087772336675064683807766322179136234051192282865958977458747437215144558323725882419829850627268185765169122257420321525100162621791544071049607244668445242296168548840928490850292139438824309165608320871229843532511820147687494723292939985908377379214302908708921466738885489060970290554543868187509287056887229324260724866726931057755869701795133578180350878028489214928390878765790236919443307820757350414342867417565822883446539434660412241058566946458708184559086587147625049607979114737610611029118928306032150095959275876258209638295466089087743050955677308078835036498975343156585133689832579962736725440933341769413606784357727950769120247663058181215919185295554013643479981036952158410583465051989008966054602205875059451250656059697228242579789067764418938232055915501270317455555117412856598412441374467334310714447550929331420123860070479594844192343659393169352163597599367517270188238960354209136750347327405837201888368132464497226342864373671418915173112242992734836724825753245060618827561096772822382185148770326543349288465117588355967063494076515586668592869580159407617355488117211665185717910590090895178586438885989658921071042996352362234242736121606113265626439667925648175738569974896391968979547034826348406202647646898867471950174584286856344091044453056634843458962509588201885484163903274560687721038364141112147266934343383982278588771092850682026685899639642796009059716358729800085862660654837709306989261516666003833359676982046923169143562637676788882206306229552229793059485492693745607541864237514417988545686270561747474631670315417514515427234321708825294873877767502759347377078665815288952927486194407934336631845949314376057504212582071903116692071670656411887752954967142955216548643352606139602929358649601739770705579609732507629510939510532838643734486692056759354442635282498522956253827809220521793975234973284599290060919216154928653261882912995629614670133418073700672742774606717864080943775143569118079553016968589534164615085323793473458312549380886904730669535222475828136375653142940528764078968492761458361872409576881450398488836254810119809686091071506345102363696562738182697649705414102577702433105854814569299323582132280014332912453002880452152927745167557321529472615455399223466916662499490991499793374044564677560151004857403529621225295764864128347242479932792512339158314431107248929841598677386842832656805589579385497063231202923960558816144274335058607035076378528797278521790028622897213069921694936739821092825605311977266822388381555189223674775694489075535899859377631271549523403744503356753628111516317460044892221530058055875218602821930657450650245958739563887380195046908766998508218140774306862928164697787184795201482487449401753280583855671958970838693763583274913224965857942578671105500115669045044906599991532463006263053044179246563191128939464872710440920741915785362437473573592341281412639398301419168445566149991550585684973756468357747488771963569144835248804904379360109549858391802384463241150166157606581654827868888983154608707751221607788765546464707200691519929696006040055092323408983171938127135697439880757533553258852586863874381136843146228472598927861495601133811030131041178346766817336371000411776965219623953914510119726958976459013945687045288514679083838076310622454720816201242910678028791078751892954742525745357025819782238698179532374421616583491503283751964459656460868740088917695467068653458780598517698030431578835220752809154838163822731350176426537542182337776770241319781646660727943423116155553516442163961166914063984740070104412682251551098707013164179145020787075468384874843403731765339223473460578427103507164807653428105847133853470385104454621526716156875454458107539953338626994527102613883864653776578724446441746066233424683749163364068824656952712162141878203823888917969131429120664819948002189603639216531417885591389386509122874078392723212778174916474156854543590305644530081554093826337773960615297635688538741198321092576614752765659824931449700529774753260838938431017204763887589991995188782373518454937111495800320507088008305292588502080593057641026818071065555818386390963236833051802932664839963630523513239283162403009634406882247371289047328286043313811386996954263905014137850138588482959468012463641809538659882096998461036325408719744943099821533456864693544886266142595127856558036062926505263975237260350372802784022655297520383465658608451525040353332230616914194028423576116343920925097819643953806029580365494343299353573236951808115605753425998260817286892039379064707316631553970467267234925107332367650028906218478319713797071104913142716010257724091087738573623213034991448893130879747598866887274777778956871798783402558886291148455297254332624936723619930428972929590590571149998384678575488976088972646298699982415412825545422061579508635610073309295543087513964637326489573902516865717061255296081893249709617901096616903963232754301287104077283659111275684577108903355972034662398260764718485902780792194797519888253185971919829869337044153905433715939498845430320932278611192495251248554927465470053027376686794072280374355646544547751836011126318262486068771619628574550533556458620525755812348146284979949818625659297221539125840738412355876628095145333419817925905952419735323807582266855984745388154236507284526251870124592968485916357424578479262217938307829597165338001858381868135440262859864340978619990240160118862199834030003419725939818187460271506824805452314909642226187842928160805215804056764647701117725309085903298338815402536332153744362103611326981954364667529796032931583789257896507584372501379943419055850474911211709011282115336404537311632344982310665467594814936299416258322090045858773172014486642191624148004007624545769820592920768254312274815615198218360354275635054217643535679782888233131777020380506710363884453136502811067489887211349792606105756350737779966830734747875050527481061426026071551218724282986718174097599753119601675436778145709607003610850754607090298322892739279951034134583934862366002445584504708933110574937495862789218865752322911473492656582551564493191214889450884827660126834774030629731081015197590124589864285964093823420388356379251806115463997948825094640348669694334056701701603667723821655458560490151931395838962130918468945772470716654266666875718343147702887203222626538042526107656866350405078543849043198399625715721774294128874548932972364275886382253044865904218810863551294824948044250375398860423607502188823194242506098194526579791547049992287320971702521080150680266080464617147323239076171215534966135774519812844548570770558224778500197496376745853147142486847822369348478223345704813298621696516098764817015748368679177233033213368054823775135782439774129836347972606803248782103424667852165397461624302593477064648317569806146642870831390113776120349201251421643339514632991112124539296125736681591987063245483470391110299281060303207065089942762589177436372308558586940560030267690541485206193444965486717364605218251463904951580673075584932083951379765199470188758344270136543305945545896130643480302036378593320504733693751739408385209129339987120889238709732217896450306935131336251717291207348086224824900317597954739517367358374214311003069707376125991410573028738156940204060030933672631490667926800803292332242106594147673817723911024919746421081903180495093124494386583822973137498478381018309211449227395641527871927347563709909207894298553314684594242269968229567155870595457142213022259497865128822589286592595009038283892053176816252710216204768308953167810211856359940612835226759428431556439683783221097954981630810618306100949132686990730911248084644276719368443772880597120878687792309103091112830527421845059836606637617839647593010748701590256250486158896513574352126621591805837320357598708857867278904009406360771740466788943243670618805462308409658371664935282793301051980857526146247421875967491619613133131158314775339105164495152405394299991382303515082766552902194148304299785607053733830239864630092109714633410308479383276822753294382227962611444467043298227779157091290199560984648759035182958681745208237620449554222474902323663250500439701306525308340545985989428390067607694752540979019460976724461888602046385632317880200372709966911747840125327352170174743295268829839276868667153614365132316461268456591811852649941341761595980316802229939243980477367350629756806133636350378630640521982055487450837506815967528285524109643765726195886205721841677291360831751829364388425399932884049686653040282013203605007669828686134403913819898138012476914159749500932694095135195924079517048135978385971682602677316368264041190045626404362087844376982940664191330026199241804029598099290579188029124513517990959450798634730609022236279048061849508411413811264441291954444789195317819590353567319155340196257003918411475086185091497533210332435941359293596346757202172934689270982270689392652248059337040036635755930491646250751500261457356731933058665829280187383009667212997085126843097694251307844707073760659899385400921156856746746369758314894656161330979971837541782866036542605713931766356288559246757870747567231856854959757010997317875281346491471527179287503310879962359109283657052130048007544751727260165582780725892008878067008349962008680477294313879145026934589562340871094765845727387391887999478761336805335966519776076558524641346763212840482428944990911638791544200611376353661269616215722514860524010343482312795950676283403567473334676366272237567053703465160589355918363199271501861670727289607303124472759575450562449316192620712821762969145994334460121276122609099214410470084451087551593305272921251751333160234692986440529393800675461366613791574916462360639452129109953798748352381964797413222746147620003702070649823403421271274318320402612916478484804468287375284578709972857458032861362358056384111686425546640242459296362308925266305387334892654217754732897094144883952841651052246005218936255179657048021533149128534548570236094953948812758134248870885182291977609015600803494180647630391204505115758920115861222544142936923763053260197536957272854710850218722205456438679398328406314242613377545575796045725236982395874278081184749171078691419763693975837992332592207223336776094281050900554083765387315520041436515406307203492836411319232329248702138218613140441312353851227216411329320084617190641363368731661984805614310877092539204376186244546382863034304103247040111337877106157739733390259147006283565603116592439486506958871063417939519193451349863799642085908713517438073438634152972626707407891082889060692709525784903915708478506482209410062548722669578882786638944784523840483682883977422908242181478757758660387999274879331367414093533188584847485739348797811903028153476038848354638757497382580637447877522800136442261681714152634768280698731682409059353682890016551631748918035660268635239279286396041816492902499468942144934769724461875536029918311948534174068741340499351730319645302087450972392183845184825322568389627114605423733589658708802903149794542830973736458035060496116136212919055294951054369799931347526878912243900647715566918017198575366007898450290748349469707694664690719737309830328512551771359840165179038661107793467573239957090750067539591696788605829862442910312895518690347066425049791847700483494785582699121383723807397687020813003865199006758918241841801554741336206097194467329480178404925258321227790752813542602875115108100808030057970776040486652616324730563004405338077449658926599951372447138572510853739184679136119757096075276123446739087198020619458970208567042323622185908770334364176896831827335713764417209610582567786826700451123475600206290891080448581997860293525509631326867693271994649027955656959386445550320193689505591594517816077612347119844291285343606603497498854337721657803607494353319712813252115662624321595858840220155087164520065544961497410194626090268303364771238206811908909568661063142785571980070128686587271136712065980600194857506255516800082049825385992919620064984900339049528376357188295913081624514742338831832613807917270878618467953127445220251668106174765410852118829982554882927016073378332135892734282833475945035462398159088873089959740585678133025082529691642263288386284764490401895055253571187416399064443897945241472871518505092749132226179008340215229297203937343017320573675294861096608044250580557235571784370000120584946002851114129129391575187989111678543192292139463773732330592419647751503922430350850260925196114977029506883472962652218189614198310836677831467932943095273383790267931278306209241751281422620250136588726545208223192863284968726853449426656997026661318670966215014149157354719420750376661687497461112450819956932499034953894497379219833740747390060207595934334824739505015359951214433917658187803158750632862051923025339847624408201556285654717327191976612497319412147546180600622762748242665796696309564011143958051060349865979728299882642661088608259953160722441540418794432406868273173300101904031984107426594306441497673458710297362564183683213065018124791519684356072565262476174586437766179446491328801646006208614600910079805661077965962590088583292896126864557392966055664223328673858552092744452893440119621154054696919100819443340800335733092055815991629218155690830063949633064776188971060785282750071286830245806462951897283547351495160636340117023339601740623377518295193194182514713333408102786500348867671806391989671982982365559547603283297800591128551161643041832507975812108417526885654349988806235015736021360030600772347491029100575231210684560549975475662561261027729891325436608981765728873216638243877116843789475292289833842626225847555150613526920737905805886623724614322085143723913316697733892666858764582560340765802945874028407537288132264070834432482479554110655015472328220331991147749991218849597476948216936806001530003412910933271026557642275107416130443073830755904320743675928098889073551268097430832349405132099792715699162335810125330477986690009906403244750662586446034287772974643527619514127567904804512149865401472417632070998290972265620224215575864878486239307881145959609827025466186029889047125230924493496808317000757376236699222245849020189310699650562534002718580537205068214865452917193059144853696179011078668905284312979591515751175752115028026939083886933228491647468853930020940885950527535850793587736644733996221315864923430167823824444524452233629735745294431045263416185860013118449242840983379736052705170799068408683783469201852156578448196593600795339268907421079925427301975597261115543322397399525602925897699927115746597057436758223092214673372180880092808579300214564641080916732904975817353829198505833215996301508933766549652852284396740398029441128340117175293183928630970882700105824510806727815813940087127776763955507728755132320310454110645496269217779638983355320710223143270180670854036571650950795967677021934460582080228913753224606067989083331153923635814544358553136872950103181491694216614892581915447211403339419621167072400252896669601297716448439983238089405065652232220073142984371688148347516785134702142632755144593539331014788701881596324199482129600844060743324380589699179333872753960959615026517667317426768312411519243788945150728339961061438883280282500973854574415921800830640652911612840647655847933798201263978106370292239452503396326177304346493945931807399415633108530122489581896082274798560785976089577128368176908266965560154649591941291812401972319007262897054446236979025861451443933115097503441678902219763343044682179453161314234528744596010994726294561044570114622309086765612100565972974142630772876451856145420187069062884033813757297542238495627075521313907851959925157556018419019349814965097369277421870915270709638366932104547004604247837227568959105397951412351350905428766327660986659926935135605409647255848586986704273196135252267233842057265044827158953139081052935051512268730173443233728840592773931171137088034034722743173517207171470296191354667168593096381121884586213118100478825827624861133387916761055088415529393634255625082780441628159645083682004272766196345284861411135060375476010667662226006364541359992130244600930746579523547658494539113282376400128139536333898933927719272290678919019684509875803868024257847369335844472850624904749427030078346931260748595551528795953194857276978568077370264904772453137755009784764465754397812000194717393601122348257332679221759232671470370726114624978848667863394415521121398728387807093330568450428352151260836251849971853272609816428670146006341675192283302758613968620776103879114036256494389721338497633575793229844333205772035897216074206109792916442379818643166060485830002879091436822832318800361464019341967610476824411175980914293716226630665119913424708375122042052312406897161226807776945786012631031829390348848055191483960886729716769324042054687458970037083772650272861540279600885234717441023299648720682162027467534970923854752329058349918583072257534984289624917833920109307940624988800611764796043596673841421574134972379484363271792298688085728304163161038476502194008158453030667307008176370612831402661177361023382932497128007084852219299663949845675555313769065839083774644577400690495539853808236206602872386575311528198627195100453810492781155678738178178716624251584974531890162693085405103062867658340995319395178162572602243598367070855963025390370702857786961192071003781358907934390140775595292156930179909160703736056281274117962412721678938761101851393554227787103578289206538038534373427009910652600188488684487799458652569589373080347759683286103037032478500463093033543764136343263917472615195065326924296354053738648460379551394851865115737981702456147805012887970156077676407094604733247492965400782404021838476040397045308764202920404824773065610858327456145700759658186708662011724872862214950846618841364176109744839531125001679152223883001223269858418598577489359631377545744144354487112005323419856474102302546644451084337318520075474845232837035401627079468338750013803034118498277068362887355944675630327780745756732123619499079315610757673385034058925281469427038373445331570955204722106149834398056310523922205432392752920713655321999521386572770877668537358649613508361804419132015337682618582804275797708279803012142390106845543246188643970740039678846824878077431762237272821147380602273032277482964421203551616259942040885794844635506559537328398313701522973190258511008326295493391433917990301359634310929401948578584638275945547450224522164707731553451659815366863746791643380899644419959311584329484876071474063626529577090664433826244086725552447108671451375303757087826028167707830451862124066210646415419455236850204464578222666785710839629463851370063528977046056554391293809591166595708937560138307527242239406756192006606451355907663760294041965137395738205591251361108158731249508544325502902802437300370939794256718361802059496203082831756277024349254360836364553351765673221009953959315708973422581337491201433590091179361214978885132313960712816781483438129111620165571586391486924431190146471639801364902217204018155817692230483857898972842280341773760567374421400217406480217753971666264111644368709141206295617208056233393569974416108138848693812835372068734293176081630677488527789478076447518481265250947719543753497240239879993082210937023251483247683302271009520128839811870624368220360504823605270660798554012311357054940219609672367392176443299812344705411513421537940476611195656751533231964225724886653159897854629677315363640912492929811604350854103184682505472688581324051173519211921334444366281181935528763691571840621120557714915835750630269774825996228498016107905650257836806790601272402297854751786612444685848385919957984276419884567204081120918276252638236160773512774752928190603426441959398346942766933809207590280745674265779467238003557513495205248336823703987185232034486648953461085896780443466013834615768090895279383753319057732306046820544941273023345788510924294295345143612277484208734773287375966564933127596841235045631130450503380960193705297351790606328942521743325039708350576043373770583439864866014222936245764925983951411004412937036105364723158967302103089693087888962530871125923084985360835385331315854172501908457372759895537853107479456206976696402517502800363168677578153706644808107560483037245951739882230549479297677429722886705895880143462715410980802528310683360340765912247263343325591845017334183252330234401666474376746177917549293102596753110225118398393407369248576152775159217192082746742172280172793594561571575361545130817168078105733248922933578338289918823472327776990503715910940566493268612737526386649925776674397347430539192019190219900223189056028252906184745344567038691346156502635671369630541150014534828648612368503249087691209786032923357990322330776200290995761294040525393652317838569283833227421301389934795728913632192950110120884509596277258545180599540859555951789620579172575698199192292427258241549020468318804278138983515235129859322976609117032007964047342146496792762433379914211994151262718532341138949685733033595600186270486671175369615524216980900666257761236295670595993064961294814967326335919545793643977517177297282675864012858389935523987426532531440028240907333853447347607523736500839890551473829418236206525875441071273868066484444452472370288386750259138885624019163467154098330470843614322659486551763941418893519067619301582088481746938366465177791958430596186903818563414730717112867165866249291595646557553962335930518274221013703654677515919472327508706297588458712702742942404325731603687526962629045912596761799070790302104506105426450754254084697720058808995987243033123371910972740564697536344221423574338134577282764868699973182101569117849348419806337497806232663665650320573157601841865327588136285107400762388941472062895332132313167254790752235983638814200858628504084977474983433104127010440903852247447150161979595890714452549010075673522454559219410906450015231996276051163604813016378505684784622942951767969639521034151878878602854865817037238675362728806449570043512575306994667730448677398628050811618091551440426018399068106515856430210315219673269126621348155963509330330495009678962616081228050491899708558280266167950388050929672000585003641565924055513705762555708557888183731350531779677473557945558951594998784841686755562948647139114928338853757585153233065467227111628335307292703249483713471324346109939758851488332866051280668716127678973307027433211900715536398749125637655362614188123627090595957526440646792015064604620679122513631143570322045465714394018785645924731366268426215570401613773385921291192208159928707646373034260025877151542022215199640695396051346799761502073382069413100259126402493415863680183519434346797302949500027050516818774639197028293304104224323289769628701031231877099328514698388205783088472338384353539009493585769159289514159269484897105255833753191073666011585667365962501792238581491918938140629381163692433478482631202610969614281133289359056602357552648069646182525565056084068255727847846378894235803271489231244708709975397362996236820932184653839220183648869429137931028522165910867719578166817267619787439365388723272201160617062048252956709001642140616326270133241025625497940403442794175233254237865198946615788506926698607386353929896202368737447605250032821989680201818564890015387443378570169088020830429242402183488099717197684241146514400999804822954250497102484533193837485335590205209494689813957589450170943107892057803732359561181949715712223467105310365462137065587554488696424097280183420586877196243400781705423462578394315506291193214165690274508481969436924273271054246166132820458802483179656792469546748348990719302704995703369341338697496802523077515967068229342959186456239490821610825748999104632661581660610483365122610884150977925240188308464668293236984552539130028844738339073892505600899929260694157355801202283622226931432868179332029486961823334470431788615598655107577223545768850510017773345720519218310091814987096900917321274768259588908110200174180137039806434573306375303437799868661482522160189759052533038863300417344944664027755754163232680753916425727950192237772607918969259165711894631118952990808351121383638916012880303664200774081534551613555551901850701437024820037352761746020236881537869221057912029475352346362330630923112201457853536194784332430544726779430138590207775558760865372097913680860497737055917285575447838916414445772727873644349865758967036096832341152730351666516902612519401464973480798978415818572023366164824906992056151753470723403431769356309015553556449958919257277454122069201207615882258980257451048705026104741058961672598274244754590645256157090064077887549712706522313450112859651755673136551752862047962998019944034133933472434735742094099326253871830332432188104509031744835746461110950828427132874907795534728836596898515929872773648016488119722230744610751039221792768236676033939995881097854718331479016129081232022782867573161188348132727942454225109493626860272532835828461111209708892112004862808953138837620991741950952769212325476741616615767350973642216862170524333128082054720026324779222966657486800933997771466358775478051136556696866116782296565331242776683336818916111839285222397696795237738418258338498322081972169692351534819228638109195587196711423835791753368273787148492074972736354546570127326410599293362349848019058121672102065231823994955806812414575471151853905851198138116884246612438750825293782634495541126177845544075602656608731633243911682671381485785728198479953557181430238449649151379991952054011771742441355057915085266351127251970019908336472493688826262569554904543969776601423332790161670474633879955821186328069005681865655339505014812199918242138012594363461139979378689432647361466712023040212771176107813674259685994896953589255549428686008386855656731923419120493060067505462307492509975175244136365337896824116701968962939481489574476729826561798708856154092413022904252303030188699935996457358469331295718107304353938853006627125606359238564296250635295559486034668540229662138274778294837337825785300164648371702068976004829704077156372520354567824210840903076993853013569461572015393626787287180044360817500875058983867248371106264587240921709558765344239941958611492613395976571181384615796926746265488315107704292247560204156925350992933906545219051026054195462283892744470769942167904765321262366218728373907337771470551016050053274615787971144711287572796156067874893820108457680709214902610777168557520755335053058119774639405641359556997040484535546115395425336856906223410539075433260580879978740202987952880583989438725920868079984405160256432204953044401271164958878562484147892391041744619435617701535424579142791059162780236495329480484895810471298709473218259431764320493519196386027192793415149601342476201523007390628110398014714502339120556221363267457798932690512892267405601590483148786909253572168727788189436944839706193840388052448896037238662510998312704205402894136298651904585166645249398956502564863614285920261318732895649155299120557375615881070072854557050939695581911759750950650091053424642880507509176993981221890946998678469844123814156633947527581859483661095768527682620054830783449060005903140796493964680612032081909779473678706282107609331208183027755739024796714635559535600084933175627376736677421898443073683032118916362908204425435553604828540423357493870237579838490113258730136876048672177331088076418977947661020645402975489304974253181299082880024686281992469897255993977716374283709915513483116166544046528926785074546259701053921175820025232312112635715446021552631638796039831351373206626732323467872517519897775344987388372135245698613679458712532449991334275237728915055021761956429593947096315998978176939402588738706068086701391208576795235794486208062327165573833030103310411861604529320825453860320174745436401930266869600044098730481850504536568237490886589513733429748449494029116068457948984496818419041967807163270503019542984103911380432952262820149064320648749978668945290000982853139979739772572001401665313683141273863918679559889200175711894953357589545530699336000616371293209432924996953955874580351445079679598680285011781771750760271026543640384197840699950320257048600770787298090870206057286858480061200195169335759303609143029448705749295162690625750609905886757387799545214027474197103150382434072619285127857860131276698429231754189739368709131110898751874989702892043953352526773342962531277573669766444380730828460732502097403317949318719368235587776744899475737632709675989058388911305200757286868678618098540652041223070168063283665675030019015396570210207451604663468958507708991290390679890985890455885711055802093037606043846169102729554162308774091543098221732075119926867731337321012503066514975149326185280649063932707816483222882391909328814627333031707060430137236626531860949391497805838674843113319383916839145812454501385620375447275670520631110543668042645869385986776087316711173802502298494159901028090815915892288935710392161687314964626973140761041043762758651526251575805765487016352549516421091197418932440502263222172957296930708285238048463211235466075971184936164120457777493337339762433804182808225924634328319517089984157206936380748409814544301663666862028165526198010910905370631148791946425726339347006634965014008884929862079980727516093163304977029137233121687076639172553145744739245165350477881008336345512704133523606334192267233000460882731437142959971384724792607756155514841969510834079816346410428308931673598028013668053919321053188551119731499656346698048271102384012703875504403903226017751699421905410594475041459157802466395688932750642505329265933783598256385634283402405348959515059736345432587053045015382901706466179004713105202754523188875179858745875588473531218122543014676585481935831861908687307344209973187521383958927941639852907719991250422127452731215300490213266591644337621763572915340138723698404238779128892770156710806667044703695111658524413207845026113494930268122939722582400063871873148193821430419627509194232259110153587419246630051380751090505477974899788812764560546631522658598920818488109666830905670992011687104547272336915172925464869434891021786230827676702127629294554728545367860108860965146446355540085451479838975573695055083255878505584522880032663509261799688794249034175571205884313354034235047655191468483588444754802795825886691206469478778371795709427220630796367003102766682826512248299690468121568964641341699469611411873453450161865591900806669749276952549245232149828398629534296316173230319910760472593820321955301727918386922491745637963925480390443567526400095195864963824344157002406680619029015411439628045366679500498031455178900221866781343762570536566186657417069211535641552887192073261536018769007153707237623013750579622781926199988901936081842824404264578912867142295265033249081950767855910774805172993212145669719317140401949236165298464099446613955269805607004008380963492869044393626405867828907200871382376415305590873229973938566383250647621848174364768162399298415303375377053304596496515624376234418232426423318805886901914580331303539558397571279352492048325230101071359288526458560922781268886505569434117010545251687218172814642941264314543812964969799376484712227395232840632341499956831277563372230695544544390845220444341701468387424119427173879297313971497008247578968787845232813240774982325659641478276470520967003127824289753451405215714792282685879211865026234552033115315387272528976205030100475245468571600881716366717829082220955216674566353794054886476544688782492765050133212628782715903812372974847182284601264973650865055202921505118766378879929701955688886343186791169080065827670575502723914592435705614643092124480535101371504676976400191123080207977044709628326714290379760558923042326021893253094944892127129271530433032364627652089467806207363165272157324777614552249145465791405695851814782141664200489656771049806462873626151626797736309036082922044924011213056707725499534405773220705013665499094044896914942245426922610774083408906780799849062955483887609856902048153532813656222462138555655837390377809916448356305210660644578624875188902273392623389523838485357937649486422480680437229324537457838527944821434889736490150115747230429811943109240544805120799973236642435426394946415780612782734207265848436115623228733087628647731483411724168693854836818853665275648168406976511012972461308262234690358856761718281666083734143776938784468896297062495416519208439003208859427995912030446816227238498573359100922960891125613741423867511464685071424798973876164369072768384007820728033641475316207150495100065648277417055107855600137852996459570031542842332126951761115921333963131931465471323959231639106213966387333118569931941723119034657791142289638420970518651892391626155152297472996784359634257109964144901105094677598519399971663706355619515668276178725362335548494142296446866765410287789913844557082104098350987760402286783524509963108119897061475826915640160280321041691452909650348903941961972713033708307016958194900927724474617076630969620239135773880915409334663578124204152300912319848086970684437219487074618220672338509974741652638077495308980024972112876312633455780196405683929012625571699314669096041211979186551385847593129244576029868266349084389840301362559163905890172231326390726731536697312703210883126922632659014068481323451452982044451542199153634422755806662044051483791431556857613727502900052387977047869994323592782511082183246942426478177061339786008555794025345142581482162554438114070429439434784167077951536606827156748180633039901830212191568763434446031548330168683082618780991881419793886091841680205738255967837635879320028719285842681075876208866914953918483215730427312651738631163873949936962107068165302817344329005617747587902060617542696252468390510398290041208125352645562987756475004572574908591911320779211095995276689252889404986156610461029374009102181104840793512845287145447346102728924773654294411580847292535815934530196563223420160234621125853775419961290473439286113976265532121200046235723078773137484237431057755810568197470761118570036022779346533376632269928068676843949852257081247020759111643261772733643672034459397567244724298688494281897982044074212170579261532958154560705457092091962768714464314121052073859055749100502776625290570957311065841365004421201768255329412050332051082941835250830577135923277289007307393336047976619848382058484232280472403470060253111869824036518970382207905547797645463593365240433340889950989971282902802593058320133463612856684370173783959122982694873325746727660474156551007099463508524308739444889714537282364819194265990939621411628105931394048414838073110216922829280606632154918448037800895657531246571674550154578050271568197974851390009995308156561931681638766734299966580638832622678403330475783113278678691914175436823734988280117368317962139598294241379271477353430887688569132739038703437834201959310688587635058436446444108205133811738992608321142373968489596420955275687938616359387624886773403778313901108633179145377154444268132105022702385987179854770669131308060449564067296040745540973980941053768430298511755585246590990448615575438286608582272393272641894943488746184383300521349123571728488295008857762281148144389251177721688206762592598299724543826200084821057493837540052512565990681776862453507264908705412774663030024203444973444920777559525527480356799860944675128698221997455274009759435676312331072064173902802326447793684798650911636094154486569030265290714612881361892562822535179387586317634444734703716044092132970628273875629902977807744384678795470121386605246939070738464789844717015866145429192634372317348289444430873510405133330105884098458727730623774624673821863970865910529446928699776608347153829451317804803331362526856215628794441709342608413869679076063985003138892894950338294881219317444064044080124035170021022388201850091106080203192526965736269550022436750821866174075672661052739721078960463404418086368398283769278166182366469216348245141265227555120097225580142202594325841782181386800530365222910211871540235595576156764179773606894019440641165690995730261012100860866426045874600340847740953195716908957663921740479654758850304374080780396916187927001326278173725653507840022018252653373964916503525122370206963528166705071067413599899547716350699697983602968590669471121048472941681516713584688469155463475280527027048015299717076409345974028402473983702645566454889623385680930656569220358699935068374363929462809402886591334960130437011179846893526885692437797288036558506506550468164372174892224976190429979512216159588932791480493101126735279676603140801614539043982365899538019482034455434449291626303165494769746852207400257175468983077928313187129920210846863814162621061542952623192150811272528159888465280251479995873119339687165489726962155988374670414627486894568992610359776669122920602164302985511061569124704060090726925345597033902710152729628742921371889186161018066980311098948576640580991128899602655390774100604657244469404448449072761077022192191421774138071583277933360936165117799294276851245722312511415388175907122091875267531387871287937740873239628537372763087665709960051411638139900914047727165542961062828960842270855568962435058799408209570494409145995489761583676504673644441103406313591402282389272805217192500035477861229986732147894352926500583817245407544303828884538523725254459149133313757119545736068030112552422648408796704878668297772508878613451230496692766501059250772657658086252295330104581650322866090636815368591349847196777613395848576510519306921446005617227567928784272708877630377380697148133506174068173320475981721781843955263022703692345750444582773012300986803124152986644245621411787593240612100378257259909189003226918583815006481119249929144999452015952757461595115721321157845374375208530581226939830220086487260728911125133984809509796940137876039668507629373014103894638511547725556080224487219364819673775505828589443592517137380465302853130689877262746031665090758876255684622160256277372994229196170802724329037734539921255631431474471962661176526651898472761294552994512683639569690551218298650307978504212369003790476954162673713179786793526299759416136074016506430033979400192167379791176100501634474661670966728185712471085372687987935908208030927614858644679764131992760053191063909411553948092676486052903141277004660267675879119665302354520507129625492202368229774964278170297913097242206695325515777215271419380626231237536669712553475945928711801324825736203153882276447050307339142463725904408066952497018749725636697824350906382969446544400035121915489931251768789242310421486970800995485702604324456906099047163476503252119406188849208024569105677453796548733332112594932088751305819954311347161645004978512199792403540001989962871783480952024700174950798037726006834224772059817583994983608281148845597021767764352570519184691652088546647816278739313258920925114428228206714145084924890913968508616591793155990241801609356442097247976604602228914926449191185862159673764153811906060702690713777729456849766393438695294142753218860982789837615818105968009783243741334616818874235015502920269677809398351742812882770529489952549789248800845469538576037438833930874492957822590047628272712181319031601698000067422778596253551545252762916869406560524260762853383318286433739787991606830133829444127783534247599159820577844072374308601393028047681180447238726126375100181820683376707442635334866625965212574942281560167184127249778041051744052164614287364830251233636845440104003720808469144217344444510205473381354414650102516465250631426709334164237512860919742018535664899251872740160488242403454084401776635096525148096391125105448684460778545322194706537674566241929094898355440324717938417963361876494598669438997523567504543584432506199483287830076786570778241670354906404778743567675151147084018304685630249352592618664160418567149824583249985157920726111574620716897525741415612914767771497970169116197631162573253797284585246966922372518653742532211462875322246146136795318503628585501037785640296044449704352743887750124601454578953534821057346449816159365041612905962972823495633938432477994545135356172254880412921706108984828375869971180222879704212807147628445265923934224959926142557969402759760629547803921221027634519983856679954227370989188227354035060135210174330312083131442225975875910369488037207092706023570353355761274298090660745809585616605631701325504488741248617435835371829615424980453867826081049571945879233975657455162689389502452366671717697990587371089269511299963050937811426774308874712964279733641648080154425480586072626384186210833953591476765998220953630846584806318373157771372158667386754983210681416656449464064563870227655436975214690954758534301890996794400349634914511217424356200870745103537290961269856034679617971355992652666716284879824779327801570909561325638377158786135076746494514910155030368452380118817564778729504312415776884844213208602988016450614834147318336815560487603440276874783212349325978260658789354307054316324011909721006558739650457428949783514605479466398741471495649875062255870450292103712191592802314959229090176745428334718240637484460277380988457942816332330991760819824696117777858514378821398720361050134764961435565109330056809313390278526115205245316778889218874266639745290850865521979781156607318854810076233639483646936089549957612651786039454636407857409459585153589608372115727408411602938129377649870680820113463621020089112602457791876332152283247791500647532687762351211809322077654252120099001231339492275326959146577005653302235661212242406701054386709618316160673249320890877465257166043604585885417570682946560317060840544876412745168373689130167924449919982275582761772491349909717742301010023363712905524969882178769304364740617775626139094404291628118152493558181171387629205402403758058848768580448169760808384653418873365806998128387206018377848309339515088207385500454523305466708455289010374923697953391797219155528616323500158915634014029666880245088797942512585967276140038861778335585495754117784359106471126387095052737299424769048673499453806214033494123733454752291244074317497980787035103009457061055412120918027624044177795610700121346113751430565619347699836218857453892457474079684607196680657498626302084176705102027101649611181809294481060901501872211691358757712344408987887515416976220246659241271301605012686133676840259334603690679120202917234937270866190495311777368606143798588694286004038977079217558602343160729997274920107191674559497660288956984199112548544060979766143463648828853405474589999314566680629544929286303478415441946619282919546277946274253986233697954749776504975749171538593496087705327500645398359045647047886472092889437742621680166501900798128653407069249983145770844471173363201803426618681190136776971645483388749473639503444356399654722490082087839689504849933643786849051538113793530065379922442938242991138317747633723106889080134474216061802054405638339234504528058665022707273926770776856874898039439334740154944681695997754188284290315333925494863741494391820494575638283607896618592884130513805229476282096093151216808791667806526823725196372956878978483782832631348195676376987230166592023105373809408768647767035157440206785098475807181884676446438252452675678288585139584239915554409806645971228392331722977860191829691290036987881033368035914609292961995696585237705646197197598932937019895687065096294129840858714923377625341603767955444310053894206481847795795233192219887875513261171063828997953910363183588533214333385055904411718594180005272019446104084113050893814804177887672311337760661193658957740235473107344827441822395886311008613231256355565094046468625622400190590423439279662541936899317122811236741727116730384203625133337257208643542824731542584555784385572777843527172928332366941787281871985148636882984948915355844275797164098717759991248195566496024302445572060564549166794414181352407222066928990740492341600594306121847254160893461263130515816971563231670017587679803668827799397337862712643888554663130767096291808954199148150202774145807091575375397122978453912280485984176166186905212701607166233751276561608135013220418149424215932369421191077100851456063338890122188890936131077472151178353564718479085892148999260000101267039146080581700764934755342097669637727599604142545201791447120682260677611185197842347424170995659397731234245076261888812008693017636308556059985524766250301158920104084309999567089289950163555248516653447368790737988025764102170795296443753115231170173851228103292962027796473041271843404140310127213688605471444025559371900628081131284878568326978260734471524591562794422484102259248681371079606142442331110795484511260894411702934952345049838001715036933978767964145754200476827188968897485911153960950069546612469222699809522343455647058744654630966558832447510297238619794556694736533005312701262057183446878932263844319777245954738300782399464555820427284277158831438976464324074186846642361696497530122772694477339799335092456836059303384914236893695124759791461005210178247503677525095321826247453934436021874527949706668636581157838996632715086729165846657021116096807039661467660067942358604320121062778989883605118059124803242042837389456346471875964084788400466011814423486820357732527690989270522696007144192708630889880022174309412977133839252374995525294070592766121551311561191813222039127308002787664064975673180465502547126022977786354221009920415813756463452462661365739256280596048562901718689495869667219645783116963849225569603483642737207759292030458458712370261174806962100697823388923331322703296826563800752445704153469680819662197810945543739215505911901296961058874712902117715678720693007902771470404362088039584887286877826270286110887670552272580865778803073989346890899557688685373405668059725032238671205126584921698898830685895667894470720811394499211874203147697662847033746732362502467212701559565389002939730116237139104015681841933822876328276932143519336546659465040654512252868385395838925076546111147460997001615098540726587177723372872313804257964084908000952492620900560149996310362308461244939314203335369280231650735487545804789829665190012040583369652439608062999954380672100553472587973561427192269728686172566773805855256457015536705672887192037316405821797540211582476942626403609239869887216977162737386843865149532442747079654376355666104840081701363915340585973532784253870832155062464641266360367439523254010641156372318222235175894728553921705540768630566928863931123421971424453805255331943341018793858049417575579311106530583308480198138052521322736672452757004543873696768593887854214024199453230680474684560860907807570374953940539119133054057427589072845730687153674714262099495525746914173343739817021471553275238607744496006143213745066618198794894670137248110454590609513546437198047908375719258001318410486086963115530533811864113393716258286561253770467764906224231568570538633241564957685390203396226212930460151727260386065628556267853433945536114528796990362784808505116125256376889074506779841758949617745818473569199243225830707804280973806835343992772242653938556418898141020536279207358276465094116276138349780380502704813195200525601595887649714977497492997898707996612540488215331871732899128139201338413583441668030923765076302628798860417308076302845648530888175220372058406062877354369473698793348473878600973665570755939694306393353095006642294701680512443767876462543433700022106577925161787226914541330240230575341157122228222003150483255083590825993913263322386115818740096813050674265236566797237078579781866258049039664437972809323616458647956847369720293804273085246533899798336380901363503682202848393649109237277010550673536920053745622312227338441063365894616010828744792546604061975181380373713108495030930198192298696643219672700168480555414718483300612997756670483021581585501384519577996004131997724433060159947193277730740603934052976610087348535149922859997080948186923417274410120709852882161483864735896942325686358093605665047202646292020233362646779847994376848710243453974616232251932978247133125161906273284713320693090904156428915842768581380612778067120030138805361318428193325185393989894703620960989661264111333709650663771590864689096298846228835105778261369768751488153212219995971372381935683473915629855609803934476037721652359905660076788886015159476710521204466136373764608755725431928624822963117088030518038177206258669953494554734055338329290828648690708278784248715641692855228068391304243832698599441066696630759667413810400756773117324286400780477522616004789461527143313805024180316587763407473921822510755758397773067958682376243723226811288343344488981230638956274163290494989371324122430647639680221322635243480300648499977553681789900164130517072099230558584344968038284496409183525121319670792860223380756208121011791010113776328863049283709865172934768763484920387474305596921514918585029424685641587271121814556503781713159110388382154163303482837385882320933018777881343789478647337284470216607774991943232709101154010365409726948720777896655193573531152354611927927106196272547815025510286994735499207445410377381687336931938704186966593749957152747571595634452036930805170961078175449558810130894553605594429195011223069328152496962598020570489746562303762889666065141615378173467293637931317915649036213423858996617088263654156224872680127358865408787986115768327234677550014875736617186574232825518251493236732824411116809186461028741096835897124492969362483668123912949465553256408690440526093526316409553963720687565358178499536452586682963585377429414398497787498868890208812475549449488468379847196359971413144563527280917839200575752363111882607535902158800727865815161602267039412469662067985674956062051107093190215809115157908309076752104961715841545583427870633482748399497635293287023280257248379592630053799416782312477294504044067744589494733877702968795402434976748596965719604583823610832158405121750186820121728055324655847140556941732091329421935146013636778298533695302352063007878573943342496997360911928556236825131419169160858091355825019015069642708320796053468610951405515806160310247899178009978037957317542464814524613368153882236779560526393160490199183814700763504773335098705648419533920668882664005272280037216230438765436272481255792411424206575501576664800490868288008834424052682172789050952317892507537116497793744842855215166777363035284631203432337363518638473627278032451838177608991938452713166209905272951302861959795151171634132814800955042740664405277158563961492784538819999293435164580179737346036232246068875182893209820651310587521190817898742526270122735157663385704449579595270827896361243924303942604863243898494954942855177182904178513844528641787813860353126941703408325893350013534299031759057801849969134442257776988712929320634619408202097410801190645243508383521305279605266887037406204089828392490102665514523087535683035856578473611218509070868359253262011280433388339103593286176836267548815016748040579267537747873826274335590182602096736899763745726306484610960093208627511668991622020649885383589541325683781720409402980435249994111624498625037052530251633826302530711564703664714901389454504241734380157299215405003633470933518455184227832608966466730858593103613506730221241941707635925637478565245490056231019801603132117268792151676317272890494954012163363001423590144696626693014895639562955611345693533116704693306006545790561445653871534774462586118880914670037632618785257722814151432575121899774219636228572122183817605190625343934370497400631965885471872471831012919524151903755630553515593590511802244305593850822621458192411791783800925799224021518825663902915915207339817998089364264786029956594845940704268457408976293790055015365729574328898097805473877508455883888899041691174075471886427073147668403853544170736436873540041705910029355404843083287372859655636324116623940595065811213304027538983255769855959774222159389466838502898324250958949938735008105448367878879236805906254613043305971113017398549325498257380345665096422454169380393773477956020811488993724555448287717480922758267548329885477709775124506669622381270281360292732764233814729641256463873767995147268928503238402286000203562737971474472021038766371022633658813162606643962559237490809186498493930665568754552793047801637147118466197692870474232134913071114110154298497202592634577129291897609772567221034522061547327043165839327647414623410950193359092512774753296165556213355580808263370045107554543676017113716653325894807767436978462914777944436416948061199728017685306312087427136359347549593590184238856868304384185287208796332000009904648360196814840297123819906143657153768627780982267767710314010381094966769155985925172530225384658637124218092945092187093089769325423770944939406343551794178384285725727523953210000191529128224304894776295219945781016669358501817650107439599476376353708089794490909600675106518813791577971457532541373907643910678128712948118424316147638822299092216331601109728891478906390998963450367460887657149217309701903480352883741416508503810428051639860804304430594672833780973820130572547613268599330881176722128650431549275010585172662098475159730507711837961435203995064019225307023190968004358811913368609908095435444684408771838896108712465917867688227022838377186897938084707623496002754315583557799195230314266311324421979775420257091484950761026481922933416840810393552688108390234982120758755469884995782943937558257993060158762592772603635365643566418324140278478972833007422983553216815306860453685547144678606142857022002867902591067387597225731291886844468450785857333209791884787076684769346346361501880431971227362222631662481364493392741578231936590845055092888358265520472747551211332403537778228085644756788100979849070678879432964856505362285989223777164578136723823513437498515310656084566906188233283920174128007830812911266155771388815421341332452837121430229855557767632295340657011746846552298206679055695898545596851639976586048021332980261476022767039590288871099483591211868977300851882123229839404746697811599373384598458648720830056333211743269431525365468978500190047706064849684685248325817927909376864676835976658113480984903476629097474448200800212029935207116813144328894218396454385146939466755459286299236496209624914273761821767111546427884298536652403838264072744621278317373392827939283843747944247653312334414046548795593014376051760619700639104261510633279112548176320249780975464293381205283692209104780500609116476273797849122501611716718614003762559037565883580062855602126704665355912216105395778132504095513524269530050399884291094812924749595048346510499591667344006681098045023725025159776989442123407581719398710956554409728363035853457788865562815846163757855342292987962947959026531381316971616075555539755652511051515668532684191442423868400983793750106654003401186712747014227834466296307311903104281846938186288576314449207169308702460461260254212738299815434367046618832743215349140367480876605231129518900533328067649925762823017115450062553583435115537680627556019792506002903444010290458443632686605383932442069694983772247032041363192617053846866342134031009480721061973472848325243564560109397428249372694494274280160580544480742114557729275231492034993520361745753402954755771955594037887459969013031820187649559342478668758743972529937425867288506956713831331478719177826613182173872364652532158046486358298370115251868555681264631831832732489180141885726738304273260418755117745302282134706348369654473990806977442792658997141916401456747186518387392900295087811225052184086548453121850108456556793438757858729721329943903576883073637981626877265551636649197990377397152002962595492905638548956975736121049093847564746828258734397161933629349982682705385872118751723902121229213025907442800963011216335743794114854299443854970326178516135842896268015325724035920344616133110371057628168917882237308843785213080121658892984827236577882109314260631712222342222457872200032711823377523115263070153181103263804493575201335418801933775717931853452727267888795716275072251231957254639516298904932252997801542019495017941967734165343467356361202937941540096206176321539741456217931067766540345658580048911179726716508448996238909655994121083000696858483423644081971564938133404791371252415301797890704066400655693791099237138721822641793229281328108188418086292583923972519756608147974549752892461409539293171976705694447679244527452237647478062545791908332957584941656894153858973582109513149135077134165211845472939924094094675193019993676670153098360975794756804807939634007369174188181364037668828100269893001859475370737217524594415004006114009727838578160518018434384564074762507058854726599708831892716862344158309621849879377880218872973264318183947614900202417640609041244678245174222860213369475066325161864287409676963483802283313331849367672330898668662673192539108210461230457717253312315356416034347904632021495019561015368066967086205298347452905013519259205048826539308958396337584474998398702531258715749533429760075479180015066846323286284163003694804514545929927257070663199822692629944799175854292801634465737918174929707571557063695646817142457741746266707284994027410936193955223835707183795786269433526726926384240472980957871720234044173499338108698594362664027576639030889237018105991794766074366455118911981479789040350486501927219545761099334291036195028697268848429328623003546206918148616109786739378899022168512563098728032131931394974554319086637229432194301270941640526022659010302725165251950153808601811933005019315530553526148558398473260138861416633593943281836583385859058238562113552990162673463427556385069728797861799094575694482819192685983701555285482746392107527503074790607727068567551507867819170736525642333031099078527490503585434194989330543268309416622233669195383657453150605329566748684479236551646680791999195161585698433191746763095744525836671736513550442751597418276462311511329792272427020525817477312326629242551757933002838146595868025999620369732518240871738605366017347947815739421592836351615837837872617442753641630010628207340134765448090434806882947876178194731258379538052780265790738532885225203027679029921653821588748381561954352747683320620750587642266200536136673994000315008343233496595139853199921062977152956404890906926521718584393489236124323891735767062040440990674170397429037518724991479788362193152191718890234827887930583646793664650415906836566813377609713979349638273086822607769782598785037091903236247982564947089932111025702343134722303707182301904624136983548934249756597153065639694433647817909737113683686699645604840545602005960837477347849469899986663165006021837244070278959514466855895846675787229044804545303876576961476557039441251001213267357776763738609796168832131445524535360106641228013564931508759423488431724084116555175116136360271424270082538094189678551239179495674036895035765750899080905865493415336921875316800631099493017798293958908948779092429540681997268964541700857558600807769775753864573272656884641669286780996865596770006869475138094151222323225590088549932445496166148221197776818252813434050323114723687947241590673969436719337403551500731157143197928177400587885395921788446633133094659134128446550239541117368641644134549281014717557344598667593347256913272681206882935869261830691337620223753403273387370700639776865850044081221907040726853139195331254863324293686632213844783995121027770542221543140127439767852994951816371492503961899521178450000527292046732022003018732657692226009428530334935798433353388297731946155876959218183089181989276035739305741530513724965448235593169295173725839647702246179018851890614743576637238366433780872748858794227441023259701253072007596652681840399167261560922769417143918231736052742867561477880067328634557751127883575782560344662931073350963540489779314707198853338076538555161064306216631672805093501824009921532793499938213738003326433062780965293450137906915130967283448790346000059075696005929271723819322324832747422718220367865881397597333067266331154282762963639698686012437892727274130657652039829634863051237770572770926039421334470855644850951881084832216309958094689385589095525079743167031684083971798420346346314149197586243078829457582133201700785649037810019291793939241804851387841369317743182485289337242304010023970662490915553501852849205053578943869089038403286091600793832251669932319778045259580570555914849165166368857237351496429339989448220844582481762308472886298856983102958117544136838943996765068483281321806384496101904276670849227242183230274090204315965964853942494392051653729811964549519672147518519520001773190760611329277789532152294224806303562242224156810024136047718282825787467476771152243539641796992287806116985106250717455324671458659613261803673272974423843334619909257722610418652566255697603887921588191680533213980947377095895455124223464503235845921180340433239218967167693369917264896489019423478383536197563788996373802855254395201176591523473209083816861558867606381186758077468702482953343275260966620097281572902356642059163180901073479472912620994493581122280251961708479143910208613115268841853555658140875212065125984559791643705547837479700146572889451628116486899695296063947149736916329437945461960258426256806280095122774195900027166832087090816201871212196353610685520810772897957667316291922196950099311078564084011466998226875957174434060545891550629024354958399977967971147622475879874983409591803603403301306726400594130980028835679451410159490892004835088074259636517527808081512215563714814303853488740917866131213918971398639533052488540068022003193639890238923927983978005268201177001932636732483287613487421213027089660896330721317206937875115201299063375650854285738908092496679192055110476869950246260717857110201105784723272888154251967259390101708199949045546301728988235726274296802188130658686409156661197499520954512662274488239449418421185954460228033797265641509334815528572346717924786688171316183248742913846675391492973328840045108647729409540293784148987031636048891238863898457336949077289428001517626332889449146981304489603948472260509712783922013255215741220938375127771685710790525123979878206482817034694967254961873887242610511488378538136638034609301960673242585832065103468869896892964871252034256417192222867212019471153379494308047285982276417231204758473449348141630019624645856003227901438719264197280733696554330363055154297168440513552382422257979089779796547348509430097173496987098875676165256250214739316184050333021447127185310017272800816132961146191403269084527026892008631823826119515304446814613630191929471026187164209565535778119132527969426395890761410750010872038876396546186869748857080072017518380541030133006038062361842795718292313204061426397935850823338278159517516123391555776187487034688536147820524348365585504371359454535332336632527492794075150171302093619567830031364462679121067880354616361260918470261259061999033485852452877418476378050045094369460246403521287290968354565969973976322126193536141969697376789477976161781422315021286920534706348146256750134929383898220308865070863531866113454014770117681552331501528645611794224411192529025098325209415800731279176498660637476434409622673779663074954300120866149540638701950369646277788230901267915617693953917006604302052151326281521701855581672589084463343863952038671341465679834413922959850088648854401732511922179396598747278931271933538602896159103930738058905714991059177500036621346971872249546822580395305492228688233582482020740888421470471317425494918163894681650890745903186198961885369552301907622381783326636517052713337672230693858420762545785822800052323738840640860983710257780190261826255998211896254677249069144928337468334039937694397594951894526020889679484702208560852790597325653726259673625825406217600079454932988118811478684628496270418522632946146895970003637708189027127396945650895534944724753410445437706016306075005651547884836921002154937635501593206997665726403603916639411897280350504025382620289469030870679957682964755176144913773250784690819785276543757299224738956586488865820399784478540343982122337885132933362154065019363831824448133235532057621312601760177176919315573104706442336249539600519555948565981821737944886073385063538954192899873910231430993947701389610276320021632363723640577512429117270662839443198673910517416371282316642958737365704690132465944606373577757557292538226521965320285863292915153356795738559273792134499138117879230373440603881882767141059989632900264289568999180197538075343238811933950553093977041754981011548141815167215940772423330015407331262826455922467038691787858023790961414956813281339073227355803944106858781724757055906576561318850248424357756868912868347898684692665229223464406762700033496349402124353179772911661151642123710990096248075240986109564356750375537129963164755470870454526614179425771671841874388613323941879106776613046337495464917874967440709366806929841865186118597297123645091789364406643919690109337438001344737019392846161366580726123735551500188601711095270651351338596958308568009163845298793923301544799081699685647040396572818115276678661470739570833769645557348336272675666046086375056111357645629677754428514812753041140127731509840720531270410604130158158668635629215165222089547874064324410051314829422334422865454976988668661579873124020988863262901776928755372081543311847880496397899480259267561836314267063966238113182420862572639825758771269806427890117929492693651769715919232120900143734631490849211953552718613621283251883210698034167607450084705482227237354562302475719107165425398544614517046257515116440431793698427523766141696130993316025328268700076262814535225888107384824606171976287620293849062816922940253287316650556654472609686018205740047261729447741445970424176859393020814055406513763734477908541606607493718355702428951124189509565202087252451324186913194336787998190941445510526964415401564028482827473733909024558531944562227979817653923327087239773422126521625575562789860413122410488797404456437178429969249696834782545530982938433567094262874050957212039219194405529664084822393476294488451564617094172455225661452045823072743412077203877470436407355805475178198338549945758143727349410674319987673763558530914055015046786463003276492113646954777427421604076930712411014745968106475867557592565044554398215055736429493530429368666681327462055517999326127074924336274199701004837087815510515464515432389628141520365633321497913733130359954706676938782658379283606550485731974357047416448774758119377106300645255323055880144171938654000188537979217997124189642464946519447860815136050698146259611913752431741727038747889402732468179553532090903991033007275012703600739247849289567463943793001303955532413765883046469826143652661775984458873476352478760087342179949531986676392697514639037355407623641633633023989336044171462418164739794732940437221521447496721824651009748726838312903553814027647303979364506606224611686194457854476048552613617003775649573770169311182233866616073969921653812340422164963614143163957706317193859573255712073966900975738073011849029532260622730988296376755072072455167475707255627053104733477823939144916738085122498618103004813683319231633622701339089402883752670943722488569586530081986504051119943576928013585584097519339357367678771742205174872674569538064350882790067637098066435859178839460355010687361328796008567437900239623931813945761085948537243856587253485689836994922960841449269841402239524414096747680373216213737492009293564930759222585997662717779538241750697505068893873719937541366173174139454572463637494097153882039479577372356896818243263050061631530255688923406028977783066856652776096225123400431673730704377924845871249565084845531444198777469770564679275900815430070990572890058068838447627751079950647400384356652681993123433683139473227356312517813553947045720244174330933948169847004171326202764678765304786134531625640942414819125895910978381123731940631323477585109002515949201235193448604791037381284872189565038817773491641535425207468015529056654427333355711778083423909597336326472312671656166210179904567199120402528795080602040108162954307734350033026023600555558049269690221834740106579272861437605310930709582514928032479664704002002152423785027434526451601070911876448553994520178673919715479769269870319026018938239736683038248354937137050675005663257723797955598418668077955750326945154360332561842888610837807404203649581751708949820665677656472361151315305687478404055472794394184492009170689963759308068157293906228372122339260042819064706279131995634044824950293747032924979163801946670932954585881518983423302875187177665934730964619330736300475491582926164965489941867131678013458815312246131107132375583469803571657432612267903186679904672635068632148228403539170475420015362107013574972014219541891786421304992798371504255228908392888206417809372149915008601675592881024273729607226628583283337928958518881810693980956190356042534802281160741433965186040708848130346913242251758313331182020605447978274263594606488733766016473867680898188398399236923773683238863444077785401113126515740243600348634321947029364199744157570727386006327146379617131764099690773709106532361801731100055905320551088044042523741563222686521679853856601412588239225151088279944113289680749085100204695657921912527695756207983342658874321521065429782978265124155331616108434816319399366206118873926875776073546685222074173602714859764465480713575587818012764298610633793351618121226161485546740283056558293135128749649481356551479466624417626961223438441933127002844852953164002059692241501388704439099859103825208109573710176033039020054345665680802332530842301058103622733000394659378444890899270713913648943098814046414133369059629295780287499572913018254508631166963176376251575598932211270343638556517436197364793832130687741066549026315539578586739095841774765396964745191872255075830242673034959362514593315034914032062799090134071644016620926281915176754341116827847710500747062105786737622932505556802519352987414264186758385051076376495917885030666080476560363630116978580471289224595373095779794512904725243239518225769248905758123295375306868046294310119564103147943937494441385416102169877913491344456156320059361583768878490308883607799247605452661879232398551395819611932032619192488177150409242477152313908479071268260617595094322212082204272625706727950715691323536255249472574129528178753053169531699561807178684038439341448445010281847795005864682073567803973077392079700159434659623864640112134372215273477566569575727228022225041855895495366120438771446003999699494717699831941343636092757199823216047565331295003077010418320405485361985487806858385700534688935871846068066153275802668541159950323811131902619460617316063657855570398014638226670313448573320312746494461569204630331611818411650967000500912554280919356131796074323177172696995668015608746676731481641191344113392055784169293552912106175682179800473375364394906207329964675013879683314526013175513406266313925512314363044223511438266683119937012678828812583242964545907823744229622354058727759308378579167428005352807160723041346331501644794946042986699131656260631549898569563881915905358876347790967553754276477947234827650041464061292377284233717532494854784510492267063772490173669483396434100762396465538641361898789186585571354758082213190992168140685253102717044726402541330137427257798483708419334018521384011628092756180914303435795122697338217490304154121284008588083127142948053724584934257444683604201533455354593792917903502946298177617008797445715143676522204146410861173208567459362367564395779048647453395852597237496127002670561112428287169799192124707857557770965439624221621583812803355594327975258817995714976920697344981788104137183450416460330457606886859031227661523246535272775662569441719219740162274866661075511424931254469242499869790415706911709601320209202728121356159556638343434335582660418222332786647324054587807200035583386630489505216979154810277863052849164750944432047735098317577734947778790400647300138259339454110455025749610636597175884265933691540621348632136621386456261580653242755729623917052252322891943266364851349661881938351019711687395492029847678444604744093786152814722318649252888634205486896790776850394765673802525606875494693959255189979052410262187944710360476626152993927661461936057121249776999638158679793307646205423741721508910916121675159810955757146287790810341734547467904998744630355805183553137972013090080123434248557098271514931033295960635062042834347626389887730815478672793262306800965025209083863136165324766736819646790455443855630106315940638159579946522180300729517322049023786135568988405456427158129400328978574228599381559054834339035513822907737771849045028242570795045347716091719375783998209783732938273204934619492167559029172869864176935150914585004738995217643965886068811074079003446313831936214952157720330147881044453074902258765896088102099706198995871906293177344933151098844980247472130351140128250602737830560734176883421603395428324592007674187312593836874595235136875199556861087666373016416368954412490179194900792974825934284524640151152185745895413183019281215943885384414961137364952865264574385634706638687044249368020589518625289581399613786346930242972718534199767336362219775079294998031166706276851759552616084582776554127849432478952612591139524573504703214755876962098946260863978934837809043936298551060929977932151370458568243962202906394224141068044542225423834201958999512608025423036675365386576843686408122898208802859667738756868022085507230795508650885709592964237122661169728078146067846564259078183684530155725883513326772546168633193317910424712711909608547140879439733866305685878074673457996448796794166108568968363811092820688683220262174592017168021322842831118656008756648397835131347464267493514359437277373920384950059675375783398052490125403284088132230588639878534461742871677248462993996390434629068937451714851220514741407437272838528389252675578902354672610291357286087950887049080197641328706091596357736259865706244982689998675347325255482290171064776740933894629877032069721655976098134728338489911028568004707744425124691754304097616440022561400315000604377122040681651130320424900552338858403527758787871673610748756821128485769135876697158172754594604268825872711845781303754096107198816861217277218580945908050650717426324206638264836356180690833556369394216392074159945805702333005516030271025427414777502819066446885008111111898634950058144217622380078343921008987652493273491315539045052598159201993963130010164666285701520467596400139579024520439371796274442332322468741372320566773605525216175555233762303211814188525588397196924310943475287771125185208545525239934298333155943505344121851478729429813516653350954777204012272457042296752291945634335137665864486921991213829963712140519790246709060645217853323755921408507589669523077134417784257387501021644178245969096463859098972200302172549712003675308993715657587134260683855768662079891243373179604325081389675154197420044124888827365042062713246767510893461370148107821165714122011455907901902374598722451720998799795090601727532976593577587025253734974127453493438727031461016388217263674430183908053535803715170295133062598588624323598274664570683117993840148903142998671318420431051817084061366990321840578827164331854061403336347031625335521992409778473209981670641233613950199321207337909572389872786628101951566152236334644153996348315375653205067803608962050492544644621148200893897394222984247709223383426912254447664193429919609987665629241147935052151058734782620178030540731527141401492937090056476192946340838159228062304375978407224074395889002193806359850081048166670606033376304769054097188160552352650114383448347518123089427966777857080080710599716284351355540232443122844208866130753516201996339731744381233401752876864395714332983411476568375077905540788312898793750089162155015419691015434126537899092657812737854271850326932447077039204042545546620876270408830997393996656115768455897800889861271308090987099838121847488073943519847732070664587968263620561676352331401558189793186477298521298773977847118412395381073914988970649810130021767497813153143923762434542396801266105645146974259204812558372385060582696936949058932663237449694079261306035108160899096107924241037977003779846519263325466516658013939960365894118729211798742161512765690055513088279169770816890751752426291380968850980783465748479993307864330120576918952480679156124772835679962296822526571104054440770853527538915026226556795418714428767397964143431042156283888933021828303574987462221286242131047715022250666181885725748849376488072526067401275045806467713478901117261507544396608050098643908274011626469270532608466538138449630058070488864772262980998850460391883543476878077287821752986262330421138661432008651752726744301445415487931239485701251440895487868767453290557244580406639922303167192709944660019949521900074017171556527167628268807643422291378599824472067524086240223169056834451771235429453599862781415760647901675550071541351786953290071566810986551308224093742973541259911660246633836377293355621178534637491541809932359697101485684191377015376510299141384061143889911064002652259870263838372154588347377349865169556904497569733377274122351362394260729331766461380007516910246200561141266641502027573488837970834918051189335363253675450556110550510993030165947815092994425139883841065958280900744332276028022144510523032111903521527569967400889892007114323888148107238081924123880145512634304906439152400916909163441320225698671127202834946301502561828172346754848808268822109914210844570938358684512136702986741688992149317312219228468730709356521741923938136957572948731851246008746194169485801167547673320343371923330771645562856967001819384312882170117023594852370190164402784026499712144032290767937468073438653753270470804126632681805143715189020167781004562668826088407093727651460990251196841755550154241468226726364354482263343123080532880905693176817882673954829878368513583636213879856493415970646781116470907613588733773912992868873456593643061851316592332462469164672070633206373693786325422506052758893256526595768624745760359411626634024268575256936405314305849846192779262421033441611872344640686543806750594437979516955162498389013912423481388804807362237927237316460126159927609044985627606529946345800827923387541663472797236865824218330525323112271139572448428636357354774566179351918849673330098460301982649013888112846925376313171635173710530561146245587359594810741736042369595633883328782028484997756306785254863497061133924773260282938066392104069592125586929867291479852878790645779156833835764805718280917305845361173254698505512468283915665738437780900789220482286514412176403469695524940559156633554195962538521168091451542558496229059321919031748222324272706269317212561544298286581528329849885868063951338791510231536483347346683923460408620404657748126489745317250145612169449720831484144928057722251292261685992945708498290014168865369304534006745977358419848872303432956447121853991297329576128088653754611508915477246273945806309116323580853773075897779178621973602396221491786394038298742388093665322065817081879771170714392161461945621680192065618202539315647145915831412914772878764411876306568803255057912395616913517592734900771551299724884341466788976757809738510188762070504597555589301322539156642834251483759609025755036337883053360400779787207715453223659172032001422617157969045808881901504060037538147376845239906286086152906872524857770773213417434190359377378898710032962077017101000888900551842888694295233131225770726830781174087953026255791485187405961463860394411849028065574014879010316967430832115411978817467428226876298194778496792479757019729073092185460245920426711851452246716602722603073335115295271085032293009316851735782920037441706102665895803886484763310618742276950041782620960474966996447402599091842558120986631551409203808610922478343658497350482115831475192505946029747299013498616377858236310472475143705221904384436838761225528252734685840926611111329033564380652056456676639405935967535741435425789578918348278113587406762582169107518868548837738299980997538154252146691421934559385625378623252644234120062709565648726348937476822824620604153231416552621914279705985575245596549704722930335849662346245585595403551250933461540926911145641118331913511295725380481233195118006491851227490675703859111548252662469273531114750875729373127595212022791668584495144241517893583591844163115566989509523397232679916183387401870929762287413334353262089065459226645608924317578333608054473906594724549533955809942035841501776694654629044722277346410002750136311994720694626343349915763697881970369432279978929793311949455523602208104172665144920429995523782286749993785804055659211091699751116274011732551189914837875650878734417523372482933211016152463713000002297573824273057299000272243697351256816133370528966937517437106011286577298306298228955351935083922958998723266073474419609953985678480888900303782244511441457968182983278502998022467027191799247817427967726784800375539085580325654457547743513400901912570746651389209667832701391391608234778973651699438547643445344396977823551918753976060294137745587039669534920190174886376199534382421587644677727737757545083441514532164464840579623850077519244696874875112149415784150838596244588193875582231307365290578231178837978694101952780124811013733094972595955153482903124080071119149526391562030011310987296461409107169802873871452275745388082086882747259041511400949898949152250874463979107415833319177722076943254598961945704429582712293695521785000424921109252709447856508773781120538023076504108941178812935831441377980400175987059363713881803189663319308504065549713722138832377300972099547622286591716342947633875684225298247643728026227349784454310998990934403129862031400422131231763649369736051679782714960983345948710878211011597634589490396170052311446595023609259847362855018071847630094473807930862804605590622605790080696299806730794812214520368917957792584324642376702345045928426090149614349851313891341391074227524295037653320875170336217422981026835276696195773556771324731587858515593784652673005698658548955122404586774236578343686410279141178331326360014210632261753870634221244441210956124073311236126966830453638821779694663674772742678872857551515292420523082960265008364028422912865520846392349079734123394882266705768142162859448684523688504928025969816946767202267787653842756989303325031426154243315189195288985743944349977423884633445732400138012235388425713986593451137450234062182280892427895086126491127259997075817405921513768713213729455134744406580028402975573423212924104541096631632830997474000079970927274030248058399197295536241281754192876156991662830859658667446300466761316258818938692084007179091009442065157881927802593286522835233142599535161096106445395553955945433930932838967605419339669475056655757063437465319180839409401062905742621866557329847544418471832980614100239782162291713919927760913349066844780772928893660701360931523605119163079255016667869288357146251233139621581677538338450594164334534922501344133149417313714138707243127153523895057708424001525592999355558729813487833800808991353315070103217053624359822785911723653647955637672977872090986164159848899367952893004370064026690984737861623843822664383995057434194141305903161567900650524570752605934966364524033544475592087110470686559217729499144980842553323365774246764157351385241024086083846629651045349542772284946430822364154787701430176158276132865590686776975595648425698668084229655616018143249417128094868956342494791626023953371256330248867274263162450407957699608258688850709500436960105522501236821706355346622689863431976868624168355935173572679247616911103965388589587492522594087835038974128266897455959475083881399616015690915457650075956887066319452188315958787355307111952127059835864043707274989653309753036693222715795250753050803898669285236719505063709470975857600731676732715268349527774066404117980735212169581890002461126304787811271642306902946069104217184434874477907337350841279662507394395869441920231158576353229633859240266071148285503412255023948328994927890431672448562491470429906693257631127195728633512712473917607803903636858221352990716865730275437606318266524943632171017296418697168504777836589547239014863041761983527080028044083939488160684645512221700514832653438815139181959494178569129287909806127181504543396217099251887573642577303167564027748352391907846514951141201931335511417033352278818036701618135524872357729050641174335955122078245602676542415301228792065495401926976265877976403182882611694768526190248956739376957539884052013744489305282391909856361419953560382047603349614110323303570947913958834315875129820770398279033277275003809688667184106889726992141722045119263229844363159995685868813712202643383542488278445270464954461056074514458890787644291551867356662960688760932066401997039174740153463490762117966231226892718070877954887249037072623063757726568483013586262215493896578633839371571461111000497758303887605479277672418588686522092965583401944416712346139926673849142467016186941309758656275723352041886052545414421039226324195824575472303288990079693776536560232851292489499009746291136049140591561660619224768963165633967672386106211163408257896001576614678480849185702472979936602566707803568165689141806287670254243860145272115980158678559817437292582906950446646444848337851853523901678593629692333150728640408841469132514024146646862152796305942390660593574759264093834029485318112178062056466730783106768098876367973558877642916640573280258587240307275226072808256407408383963768159634371031969582741774153893946632629016628895466279509960687293364369782383732420218029498516364989751784251451923905207745938584034324337720367142875596156346279042184802324324317535995583013682651584607002300061691211472379303429813481734501834944774271792890908697647811706638585438645287793656529994453374848870908589360191044037406596554740055377728160200453712210051295818117635743380820921813176557366772007929177305979228621663568736981743860776951559814141353995891816030988365946427548251583387025562754821523336250705955924876341385525021171931420987971803451593151089857739765471166742568529186907707571469779429468415506435724913229660319750574536673297947246054330667047680583349872913717360245694620785928625838530112170210668378396651862262971897700940106148302482144506406242542640126022481060274525042329688432074221124319342070656248790582440246422384274844209246803568739571625992598084554654414212076912002091078349450138768729780112998611791536089560186638314542727384542923998679244871412131529797544578947683756318534407333291533046234425920024084520357352461513213757827153851774202726088432186909159738477761286544404595190921967611608116266655273632939569263734176782343514373960296725536035428452532196461959975069406616907304397221669297249647698794040719687527842339054814085529613024116524743341195978920361670136983597970844221379017543890032247083462775998544558308527761504537484053355795111949431168964751924289758786216957669895857788317975764187948804739082352780437750243262677786529734992740964659045888055209527350200958060597415022912467112167176182111645871643434412959505729444317440757258886434389084627537857921973012499189775299777560347633164674311791543713770474841948024448394389100100066209095094636236507492045430466563698200573447206130812060732991651768134846335949434542771554881896803327022016807437865282213513514608341882091501152193119854838048391669132549225127760295479239909334900757059571995801647759408939686796447726831395152691344133547969072733533582044714495941659436658832065273908628635268768845224146244204315365834687415183164059116424365374916535102781467251462424836838008866597168452565227859305540116109690222189360593135882957142899584729951496704935788532185482470767624660360939923343120407318237029472283556027478923836130895451970700629022517640662602127025637772050464378924504643541705302918842024987307582170526453690289476758972275800212899886831352185503423266513677648638347097472646943971054292269833325070834225958790196355172407642299598994330629645014903303301636436066699553347980166199075472282211196967645831403912871828411910798248066586695595504469307698419499019152007887145058824099064298680360575416587274492700838175700379687096411946678442460139889473050999858626561315085705017603583634424616582892339781557871637732907713041073188773874563800591206679052768688999359780906729452136383485538070514703468888351271105272954928147364095764525480591954861370438733823706002904970847170981214851472672511593576196456010826864354224171880002718452724488637935218956679088982375906013599560776076147158913991573928575627524664511115647130145241066452129335064243217744934128434995722093987915683103414581872238155512585887476864903589089642627334684197917678757881567546813563606564105989160522202164040177225551780710912206823135226953087247234483297030776420991203679367815500449357184634960268720142665757789802225247334327975197660283102445584708957683063327511717881925945786149492778137220994466021982799157875831582373198609087041509968290664691907600372121117803537342670586024118341008833042456681164346184961222212376336652025273204019072864358252896801384763294823318752041265752596467514872774075338702724993095620391610592710243267696772152529372401083193335611405974360853766480405356625967714292893824337864354187677975231112344667038069619873336732768880545616801387121137065389617647297066143298412838351089047499496852345424669672618954582146702207704114278915799639938466280338278721090242554708395376229858072950664984475604690396693876965741576139938749899578449326725005660985200792020783529563775181587863417112873036983556084839327076673809229394142293413141726722829341986486082825617733196176456630460572369937846790340911945603667136909396867114101702377890517575263480733851082048158914478143381143933938046471338718080387834402550993663251065922168276309553661891092453695610626050240889621844120137096588740072237920472438830435898615408186978698938260852475828069035685255260626678381566005749316453215357256002365815792712078286020405429004601736665258543308936207948079949149622766347537549618477719552711701095984073330166192584305105162233578077250531524199385848558476151199838878235938916534743128003842069554745786545700495244924204485544715570400693972192444084021098877531373918006636206749690670136058228364688255847340907389629691602955606804560528390196684302500539203525887670690276075387243437412792482820595390913383279122764709013301014640445012387665597400124260499096726382825984089153318645863172948318393014555953379438045368303384804458063486542261272409198003922831050544924042757328131015386948787006482998583809376302047848935004831724570816592869532008329354548703597292627095973671172509472157092142091267818390597107461626187485461155507518103183029740227482742131148641159942388619467921133893807100264682194469328104454151242521677125228971836028031490461046443244500749638008596056182509577360664292838653234913717500421420727984827819223995900429361622519058442475803953409065705629509656802442352233677575923266019914809657722350048802948965089056707535623526875459989821234843351877191796493130854390377489521019215705762633068859561460668548370636193937021366915356111055136521457119813834710955797184917053635910189868708671195639213736961633713868193969153821256530298144284822976400020451364619631840267362707090286049960246338223759082242975420219148456411853461275622445701021682808188752270409699598255950300006229981064972181065545120182033829212752270807390812802355152125138055483831870348746757497035954696394645011048268477919573837289207685775412476362269095060174472178160317367675489583624146870019935488644691052367645495218815705967749590810710459945233773436920794675866257266596061251259168269533050451782354456697345049133259376791619249957084436353490089636577514404900193550053633336061233507705594385463344444451822880721072051463490718962988744374348779764425795450666058261300520409655519436236879063528737646875413829383480021748924601925742218723707894737133668350339422975708148205911876043257040404529120663372423289870713015744818349934562400748927363268906320712805538434468943515910506594311024353033362783139845476028625620899602210870245724055960422278638677576192111535018739953774637712617516815222722262974276880983735589299497448628650204588240952758917589493517744841800130026031026268992446398407054989625775011504503550880259600227037397960570021480934514842055396816198937571142715459444394508300048088980453493869090687302206836926702349807892115365809767228165207019314692274362881770675281438874022015819542243959929541282619156693453761130421022757532714635306983856861605552160064199300428957402831627685001740769078485959993344189833627469807740407769417117523138848842063462352978540051003665498160205269968583393479713887299423056620779598656326735314022805569741124223303782681262571922269352683457429843271101509086934896894591278480512663062058478084053627976125154071699504890331688372435198323298161818897242266625689085432850008418283893955391561437117370825840184798739345537345619753570316600802771824863443765046314196568618183883825428916570890726411428718463009594436671951156188469156631313800163798433365776604062215024730361123440973130966603981208810839833942420448286006697958590472655493677128871436613498511326804321261677904112562262361087186445599431296680264167259352627236734906225374288136944598451334483706867677110641202002609896106736347190933446693521792225908191805845071500499438283231255727591064673926750575976115921135460501004100173807240787141725184499967917253707862550956801075628623994991062134778150463843012315482130699525521771919637402205104894126416470036178784261954654327321552036644816797926803016920760442396831361880808724053592133476958149196810565091402098232773264598150614683606742056148535871500774673313756712063252671045834306092766002280334149007492078564325543304550260646560521069809227129882973951437818466148493578878482734167507053053011968064321961803492345310604490671153196190838489248474247380529976597722693416813498984892512854172704962995606577395710451577014991890593185418859538635389933916486971069199377709253730990679084496363459672631050529854476707164362276578094445015253900517442101706958503963205846793287115805664290958478936850913501993578627958719599736107253711359134305451279064970844467329299272835846740354859468193944392386833455541165796262564740882282676777780492909932686710158816973270038111118323260497269069715392744382145549232019755351263529050593320730099718190154772208398345526253696822297834038504572030913331622053359136187156073342797710875021644018594669748841290753484721973576449409646676120721810530980781712015119124573295954702132483639471967390453201908657104809252904912550929984446641514297844463195156470880234591067273993352869192637829350225301373874786231978981745401014678926002029460882271846869430266719531118695252461085278220675898425317421736240757663233002505120560731458746459909244031566534896582575032473857023653232267065157260108849569998188234801163121709928336455844285396297594445058626965540309527204988633535636341000247270212423995534891739904183607900404990653678188713927521030625262129122419865194356662545935739079567685268816325706192970361107130016970162286666212475476708639133746436967186591122466804029482768402738230985098808650216668255402950079482215280683267668854475591323726345714274071686411224693516299125852666107081189729682827998571013729020635550331842059953777288797396999842174269246828532038869509129708812707653207252004130617347971105505669986720589542643859581527394063369156144631472128696529513116266950100378707325482931184936408169037971536157191965479530371715265591832147323854156726743142238264809041246699949271661119438847693117152655448909330205965978040634806310439712571051044357104475157303861813080073772716210695932636606905200543086990467380994997261587137769790437107686303763033645356535609092240355874254586928003342122807190606680037904704376297775171085141925253006701097986979479857911020629430476211291640445417220595245416079937980432750134555588939428747090273961100130872751180254723783721120420598018229158524411534954442704863717096698553382497575903029491145639536669707524925606514338103282998276845221736927778562784412770460255587903694244238738021140888325704978442765079815185337121094739078276246646718068417011255649825363724521219207199494659243896255328808223276770285472874929476694834485647001218047492801660152179927521924541120951567842658292231483397926131720669808868182696290038923780291379814878948058658737256020589478768789702955357421066266116107608770117548865670308790710573469603350899574022410147429725653501682934857015973885019423603106724216875401531508398559038252331502491986443938792185502493385618625150403981949135775605568616381939934520887813025618239950118603464252722978481172031191894989415763942248870815273603930646768128537783187127018129696726988585200691683187926390662172430716842113894918531352671156643803715760782499294551849405789110116228215542753063054484689061099775245766493446642130130816225941892746829321294547226065977739007405279786984364663999381318134143809152880088949830261709474778249983574251937525301372565405207181359812127149307989952542853350396252068749280398401990750587430643123629631585853838251050419411097291792845131683954828813648691674708912575831771124643736565776627365352359206484236242330581335738613706334691320087510712896818457231918529594966830422369197202365899103153295048787615849688194415769468928014147342855812593275991596722803890814687913692569041799514744239917761940323769294493211899402629545992388006990980074772353777838815821611850560347167844969086411129377991916464916230750343919719737170527042452245080689197113674944137998635151740875207177456812996260676913943413003667145122613403804723064814769817849926670798094786033150142431700952819511838544170439381110678183862775417224859446953078991754586788788023672874560322467093719376994445896492117880281386535801184382850099835246761003417822806344483550897384449371323212330073683540964552993734306028666364199343947967311227640116079967327510595074267758571871991290663416949290783103908784134320094211487742983145765550875355063516714076550140712988056936337126384599455665213472086972199929220874011133029880011579375320301206265134401097162686873565163951443207509494214737262798986027125751016025708277109531917029174030310609118472692884794717320925832423854927624020238707205790579233542142145921616270658004022708550062485848398079963030708773696612586367691342747896996118113286637505503513044964652548750617451992847782236597764304126057086924709911638939468090949586002148608301181663657347307557838276379352250433372409410567815053107602757962340265585534011413528008375286522944841155676673098161746413442444294587937168422561163823192928201245360865896988148144676043881001773043422002911730001017000558926102723163411827008869801685162692807909823408693114698161091662109328004494715545812907222334549962553441783006845250720087791193111990614644009807473411201575928148289868103649299009871839821032868781590897228154048503816883283179197315725144432849770104912518642251667342694208422532501699301731123767553774415463095259091667644438481185783760638396852531598640340531233898710187900495059373357540961406917167482387356992645367510383670725729719190334116093933141073219421425615727688318286724530150868519716817897725506322395907399871627579739209593163230535697078879431010521708853160333656947382543159163416378170860028206995515564225123921176548143456638825401611013645245902137582835326014388765920358317621512558024123140283629724688369549039879334285001541939280445306993356030822771250929464202889968767256270530216516725812824968909400192525659743181548055175549514152779721285564665302058184319160876627065957774631064726671034911632352250965188349398761157672938146788022899902621005950914793947655504684820611293005078256111596661117672549509957185418252001247537112172080460538896757724362431352912899884950634244694077085523308008655466782943520258464009980123420780739716115175760802566058167035062619471549982281891504581078191747940187147207024298868816633823365449738591583562353706173684790101742930109614138868507647880594896019106869853112293858680084620590830462744781835236977692853486472623627864407668159937089132340592823819724757462204787224919328060463801303508704337277041028481110308446512853876392111521281281311746688407028132455646581219285630392619677621017237478029609272573175385921308933197112662822440536270179027782331434368841638257415886316891007557669570149429873486937172122325258842609588098061768842747664007802063212602087151365025592876842636830152279600264463182285714142042252072247717062906849288457508122450136116459206884522084850366800240434111434202197800630239409070487805876289358864287157358081389587771023278553651265222569411438807175596455579854051162429799691658646970141881416143943833267500484236554137127814227483693997466195692983734100502147298807300143555158849958410795093843718272958943381951107240681690460148848489389480791981784387007209223800776549774120268396740935428578133704550185988382968633043770827424727690766658399635352347524954771614512064087006649268052044958659411752497568279638329324345655091647788298853769770890573012399001732835243265375054622988516025034789612629122578292595163497151973291400690538527085658462788965759726621654996971145738400399431350972653832575535964049958968698132290971819982514403480327243342912455720018024011078378136133879587964662495858832716040261931769906043272367166208409165419932053664677778217747101189373574345071118477843275232572875807330230754287022197799676077874206328323113345140713694177474992486877833094640441660611206916145501633996247476283650676582716736464916613387399609943421154506344276969654222674623202503222107664612579996841399919481268777620304363222000859750445846219892459739375600963001234598440165172309345804779854470970428377544037910545469691707620049828925215360104051250048683653059845303704907019641563318295789135351984348354903519908732642564947744318215285705439011631273262753036661720097775694265941476498368604852791079723394364750693915769555196072511472612604943244582320555039896234450691661319215111743932268225823490102552481012235559867807279428368923913245797695819924293152915748628423782550702732434189585637974290479939309127983654969353174809116582350419853047343635317589635092365423986287043199982075855607952462916380850560012091714015116759998913682092406276427196114503027662176446292130450349002190240274160662669530547679885270234265693465857719764618282854151355496891328823710537312320053956352776918717591694318785953238488280834023643791089545482511711552477848072874992421598471338535988630612515043700219531977292943871634523706800897646469447880406171410992958483221504484248002093387873993250382367769679198772280832941382635372932990868709223013563480090093059974974967014673023446862768298271508681393091927778350032213219403836111315079436604300365848849183718403503789832750328585214634854944353613495843907947617799153964423959602893441034171427618682553941821622258844728163649351229432817435646115011541747057446483549426900144491771300925524624314279033800519700839435692533857226155394634007797256969516876243198639170443538513461133641970639554768471092454510929804067539729407161399242413151599300857818591522922408889938466369643697291047278847040056002772126162913427866036647298830454720551920040429088686757407917022155090552817493460576932632029794182874471864139747360551784003677926506787608421575805029964891293968061210103787393220291742774288746449555752655802691383493141351167472738817273688751507044808163147368622882860453022296904901948111834367705817823321605582566143271743346937563626732839885235649833740590463367680151872292840775741054091352588234051873355559013087531312102510243869015089626235524224237511454053061886461759460418400123167560217531803175033221445345736554356868429406701280905863628355388737670664574633580264634601741654165352639088694691707161530696074402912222819549900281713831057689453709560865726164106319959370276414060719649205950848576276374427473973232301505548333100984141268088246271725938448172197682135042724906075564206786214326900241963370169626472234394826763250979740891652879100151572533480643416487695514616403671101510854962867061574068700299807088832767577725555940011585124877711959947115921457991006456689846979093041960649043528138530406620401104581162530754193981680974550811363886115452070030471096144611145817655649050584870509860947188824821528416150715826319736247841023482844035570854119909580651129560195788354472981025379619861132564684663820894229024712622097452544156106030045279722682175565924387193664413445461219902027636980991437820143836522309950822867319872073949533155407663509737579256839647688267625255423926962097884671592389622220988576975564656370914223724172532260005910743031825148619546196122631902047517194475376770070031358177618402202712898986681425934483575414178447158864518844765327562905566821591516805200866513660074191915316550899359143954353212773258730222757553038331966320518581611791327088627014708391680683954866098876348235325233312769543397044606033700398833238780478639527592781760406537885246873033721926746238021291305322385575102162068687442310423678939702524469818937470982963311439925867266447200258525915393636919416699608029600818730514125709457861700033521206561782043848162409654662712500056479865578664206783124016996881797552124240076492693593877151615218518356248260945729951620456369953225090609575349117701982023325076939146834133865407790129727018694244319782041368129193370033113091240190697283092168070626769424910413328868398412552637157799380130554436738732846037072339430960426473805311334933808931175638279109575929022993581071800047727490453579713062559320016361802678581081571526709871268257800917541061694326032995820576018985042716046135613386696786761738566499909556126398869689808774687963359456847812877243910603152037936443497458128118418152251182608433088734793406337518674672425924429083946117087780772350029469171722439190499081980838250914222242112828793971038588394418770877739270787144451993829078501255087676927728577593970058246213993409381073731788458125743396951318248804206420402990197431333346716464944336636000792475821969549892390259975530900995141808580070335361362242142384461769393998231318356929647931836066554699877456966275689880124408309276489801903995799360480766418552654240282232047924430456669406898894384495439609247074191971650050753695675062803739785698344897146286995526929915460718663811005215691260549601645647204392287852254547360482499194128909383071719039241088344985903478594338780507644386557687102572072384497300048843765396091833112162602233343064239201182262156067642450799500890309159514860461378842952512215073144901369511708775045489140246861486269695088019429155412692257995669110155169496720854707347799936050947321235800354348138959319911063869283587614643297621200770572233296715338009844836086582007334683135581357848111517314278377954455109542324771282264248240380890671935688737758325063175372160502761835408366298365422576090573283864838200195228985846514939400912953004073089794959456221193677953996830764754375746668823292562711839833576489592857465329466513698593770596732546555077426715315461204360621710631191993509152144623343019264137082934541259508297884379456207744943008643888257070086809896539538579618421743939709982643271520653143606230097178272844486794589999595110713906671317275570096323387785558965054089638229023323419788738066323356792594494486139835576856942146899511782624250680537123366603980426683203917330166625000201550790340937791478249123853455526288868058841741902900716916230208439113986887620912161657278723723383652892065535863513654122771867820091106626353550294389241644774167678099292353932114358900351814306618765095295099083712024412448266507133780546278033557552832507636523707852533445377929601221378226359509299282114667549455129587397741396465972336832785018685335693348816933014175062457542894999487348363521183892995869262194551174368431329479744884193283522737063156945717259272077608389686725843123584117377830668282404424802254421693857314888662233894466276908766589521452104501974163468542348241370741635062219431705219272683696799927184661373996394432171307509108373495072496061143033710315256135964262557789807610489072387332634988540236573981542923281118525821276342569984303415503897067628607584511847100796231336869250776191150798160196931131955225533401218945756775043175246442449452740556130777940230110430548377164008264798422271529954654053300670355610746092698200292828070856877661188439130763222155143697696354068951444091770128683232828603748487587325026054644836457589745888066829761768804396493165862472191481983216777088242430424871451672927970266631116806007733914143553134623860193138972425525564785661858927011442560652097576046739257324606246520342189397321386464943527571235139819614284741243865887474287680120810581171071959831448295354857053372054616333288337171385022088854032208536390499994444436943320672596751290401461356134426126408929328033362072540558979470233142033286066198055509109488714611327365398123170783560378245828600020530523235852396383390853003015261425805217648568701910751053432435682624534310876873110343024151904953663066742322432333037132536472645199703133014518010214965048656026975511883970086196297068724801604402584561800452337548508390440503802313303098863748975938953063643249559882338160812844925713081797417564716860842914300045274334697364793857505539684270594045649528675825545700631693128468450635325825324626168488589248993636150910651224607275001681815078713313444696458074715843025763980652498370403679324937740527474319582228593502581042704275994960084997667241490527506322967143678704939188101390096418684709812944394794500534542943209275796715933316957958206526282380140422536412872997975355256119121076686515959371976491419359040144369344123257187634578226329036215309064875891258553747492251611661476927303932191262766455751464679881083465707235788638310583917690721841145162106585114595969828934837331029531770797813143523999391848483414338278266074490249288058752968764231167364099938558903214544645923774948314816175831292935823192859786780069259781264020842355749053636243916597378763208126090288869373492173619969665792064953162440162361840441174231890367232342532407863694319085881822255666291891300448345848267829456963638576359592383662768306355728805167939478451417646610435012293722421470135338136134896613106166759915324172651396296292957767011980076674588246917777133952391004887184369547859757838580422622962959468415762143179550134088507467504061155163198540649863299300350483031457282356418395965635811590118579505588147567262661013661084338903465493899916203104448355584458982052975328914665862176215993424028019651231533670315827193073157654312534657507041104400331461031295307447518827857377055973286799603964600530507204039802234718393590701753049868751308701287750403286112666297313806461175807972819087887179922421249903054315885627877707507701906833993958183024194201469413219768145132742205334999365175602447625826832778332346822073400710815237592015416331134247490789871542996344322422641373928298829318978661462291050114943450252749614470705147613689845549904890217636041305907791254349962646044863091825719444525620115110200354025605739287733274617301966965130715759967817287479858569845005326476040033912997623759943376154444703060577029466399518323565225780300511863064423234724484312082514040190130198982331778912274528676356085284480601892217647974869158461015564941766900501615020160889378758045981472306707810903081718648267593470871296487869729041441032133347233345712771343177819820276851744929562318377396847822252190042261459238424906975057270903794363272105836052902353209982334011618946298763715097545779991716734905804241716764897855821455858348463686494256746993832157715957188346986571335973113744495511703004498362742367559057598185102184444610640130281082267530638449336473942254264344184191687432989721600958182707357066078835061153691011702981909276541837733103268322645176133351199906218002271596015137180459437373210131513856912991418568313905163978464045908181300372107874723881262636071754021247118268208330642181284481176254348747750246170020883354911758738508311352633283524129810558592656144390158703794013211949415605708628405201451526974905862643548141624855316609405959832362843882261034635806412457376308011098411800031550029584779819955845041384431285924122017112199542880653685244578507295270674726755000567702913363292923070824010106424362101745570577617988139227178086548462008950488002149991863691670052702352387870452204342753584608873632018132137486788800484666233785482179710165070094345670427722143142765760132228499520618781556907611780160787883377620364913012115740197191013262643099758281362472721281411432449755491604250122400525180600713188023061188436461266066848237263270630967094426401697766780593371188700281741813757719692000869595264847005097841105426828742624006834612683462636551722169250660076682928929576856575353733910660028031896790015300916932548296240411447085677002245656089162789304297503417200662330093320787786389488984996246813116375868643227327687603175816878694412528057157114209271341696931203716687335016641457222280214215021694884425968539946814749606380094780124747046932057977884397589267559509826562045452662498989350448623820622170124274850116406855590441585380004470277251672319379743439239676725815845983098083031610378760349000256412413940721383696820721986543478893614152198697325918028962405165935957147294451471309240477743413612541310650617427390531588381786628186154069308547060670368489821747094156230881252814771240999284458415017189353665562102830849399448874764489933118850008404518036595348544651317195371086963811082607657829252996151565205893190667584560330123909972565674375832277798355486156394811036086206015677803813502632179619337371664773847851421149189812404213575878858606653582417667006868798397759550019657308334196073395918797985041544757297211174814822401231332090674153404807052857424220922553875944466755308365909576173326686684005385862983981072043729635529584081612594219220433430526863866164104200459166574939444589527558899965571813251357238576717177990476610993554695940879526916361592847949101009815402735489027201877519191944702904776898128636521991007247409079307350080841083397706556753010066338768713387048805063408606464549404783920577086995737278357381530230878651814020890051816883082825011984593995363052323083633363908563351239671702404627327654236391147832583622942672714937711951260225793624426744640910027291849310339863259299076205699978249436883164378492360108893704951225021046620611441424999462165314821570142861575732407725953548209102941334491157196446380816067624344144840023206972806986767135842929343636913127297782093847908136203716278004218022484773424519551327999622134199769452126150493694326310034690107659975289261682535265686051446371675423659277095088810930726335662568718206758939038683945796129604959275130111345840310574870901095690317464442276847298349391028947400304155881831597666213038135687485789455452246272105618930502038451815123716377774946777820191162006235732774736914108531899716963573612118801418403132229794836726363067442585801308799193719429378561279105537019974077341720432917410262936309308467604655381148893917014977340409694735447792956699833897096794466373816636123898816395628153715035163417973305341835553028695682758279289481035097451202857891834664964842372943617638556334778432894962213374391022025936696969317488873979863851480967364096461714158405650780991844265446476138084190417148035670148327929201382092190754471377391102136663518184709109023426917758341956821042893782623122809973558820950681773262751802226599023735138325651880025269314729265747860629311893219087010308201846966600402215484823588322578551051647208668561933288719476008211835494185053573425845634363215560941008917911700218511688468242955974749382930356637716892295486492397508829232129756341867582602802410868330655009296784712750601338342964204219907157761608206601595911106569587213580842750644592853335251309493092407377592031995893139960443385418226493438877200246095895838345067787462134099494619935910084983594120783460132720571207345401305795029642723504876984229881054956953496768911733897986012685996535631889937930936939662841634957032030688090514644105267708658793577980494103476538958356175223729060258269497340053115936937952463193614557903097138490299410895525344995255879342313332378454886148262535281222808933764447247462683906503714175835742770532040374860898041204797946916532058004442285229760663125822572213325659108695049069693532980370380984367089752940632659791167608261248255430894249335224624745336785868751308821723328299995232493302207465262552316354043061805422061997596962935423649283859582834293864657875448970268028592460467577170778571677169636179966845043221741605707304184738652242587597827996074226075707450245047809737405657669791489653537436476990645920517352874716022757069525365855544232829221159921842613010142762984462215184177813045406983211552542602214216004160556066256950306934300012714477444474970479593753368885574755982257182552973218066691668263682376617539228044131688246081852423375975377483995789380235297600477059474727392725260628901488046664683014767549846023969569378379077079876877385964301140776344102332333050646950901897208939410986586521877476617141506985070095231141786959155576085621045939324525469816394474835506877741939191605389080634039019222262696382441629698516196655039257848810101482515465747270337710505590564912489379413929954047047631409150600116370247911528471741316208159387950620957157150707020399483076563977397854787249852453409433485498617981555737534740146242564405372530832598177778828134620624842946923104743060545832115082424716496769963933098603976058524220438390073253086210825746115118099468475551076927380544085984201794671786089822461004474954979353049621380323198182494477467795521931690550154842916437090938693977867859401161632860396998854106961073017541665490456654855258267718186686321803061371806708120728359645614557777807391806042124820161872373039000258048601683554210166396314413183917758619643101406216774935940142922335541068842075499429093036061511939756707967952796996163568306825551292080193159369716930919387454335894381279647331735529654506638571449289761078306063030521335264034123885526385621387428565088695060907230652566300926996488742115867838153259402984011771394593181978385201824924568780314838532721826388155190395048084733765613144242572328856794488730126756629730389750472597673041047235642939074316275319118173146795852958800607153689788701041110127534487790755925914860131993702405818444649764512916288815662824216448872916082402746630472744394787546846735162444334407371389869335759417873683340013497613390588550331096628556437425797544475125268637035466026516575314523094112727149689938518164169229496194853384040821031192193903414274422416087730041158588342908181133146210394616464525388943807184430301074849428864649933471475697657189827374597765148281131203040026661369368724141875690537136911115759371248718733573433456237691982609366210940137598074068668349700364447769200122530737296026197624905937816388545281046949233903116865617718514486055111106073841582093464897722152936221275346477521721190939236338895895669637444152757878931643970412068689849589558209590308446680482158432891151156737295821085179038004305387375519292609468015712080097858212003250807128343061945568052005651509097948430199201727074590087061838346925062968134802843700123315643326783410146496652157912857541639504822664104303247116219082536060635015875043212409662768373781351320678874070956308418423471289707538630358267206340005057405883915714101402372308184857544141253334024439302021266841177397143901469076427211694101689749424502582207938854018038816791001953545203827676227165070559113253470393520845175957433246659835304927001224780238400562003075862560673807168928457768558676911189384796026095678930644484385513263163678059651731040985250060180297842581442423617678261912596402635932435091747742223600215209734983389340203350651127822600804089946083362987252176515948719438034645569862904461930027590994105411765687114333044878282479827654730913258864702771209814110487480775620900472102617999306560327737336781961713557332689485947407011753654852062070171591069670641274206462178979816198761239432657389393760713031166610217688765155807524421406052447725106839207780126147823595640688577200006719644036194641144872083034707233668009110011749780957794144004871647345859036876285081301660207671523328107463879425747825473407059739768562246070344271642841095994423287897219023503238744401727218793237185463434882020518681155789463795282078717205499104312526616575403162389099986827993183135598777289774853816814672804280099114378122017170413521982965005412629920201048382663872778345702244247500228444705021847560066758841131339814489213522425200792259028013022606830378264285335917675419186682293804981526371302762501112936251503714207686508770893139392111770286553120033047912076171147945142315312093049151416748936833596130636597255337307803610381362836541758846396521356004643547367567216482595837240326025866074827015179625163684599385973750667676026942635649127653231954278929756775942408627738468439171522821303828117158980472536016823525012882838474956119265976039484275563951967141971023914061706630464240774852857087889334638543487958834701508975734007430656288327225919334759641985481704783825816408202990384153217859442101602154919259439012635729758129101941125062581951385362439715051638999700859531183926681737510405600908142378418448080200655554577488054519876332293003785482050251544297598076939617149947088673290783792375391032832057736787632013491438991337934921237441073795250426834730853264479378529065068732012971603782553740578048870903950099305176557778778677379464640627289013616201577991013168006609467218105396188976548152991849510734406882749199371258871074169018385699273612966291646997730094107773124153740120008179926812757083852848173278603381255611107468606095274222208893606611128076992063976521646927712544524503880462448279679777243925281412206743596739443490355319022999139482369915728237935649413792001998980774392355432932881943464353726827531161987981328696229133784314920295208293701726156903211265054287001020595499601406126705810199692706890327944356817192840366357601414894548000696728103083766517437356712408211136279256280606622083306724086407246196478368066626747352487866316844928441129580215790914095710263507577854042846770823686205322430611080814474894020055769906830946825812250310077066067562719652122200963822252603292637113164343789389968273906663791366874814747987648658760408202964614744323876246660132922581706489127950046695971106227406354008894266934017492584331721398035900587442621306001760624865770401881828799786449277231691837603134372393710950156095720410563334146174400965405001666520094081198087611851165156448179205012029498594884717548210660394734975126737742015270335679770315844899855084229258352813353627876229084794575608629619569245403671325099240382787746290355576460633651246902219508091088394975428498200148275651777216665138373492351817120461002476244009272610152527264512155563898846305610913784644287779747565725039920775515797121704125357750950885586705991993813477470117013744639436560587245122388967090728322809904380491458919703101285612192554913332582249842389696816713906128323061327269867359784698707031308088708332557453501615903150167722699938218248862758919927547341415061695868407039537837794533667161212891093776838459763282654737214440615912046119438110558737062738694376318656838095407709300752658517236743703797405258238132649979747425681605049404635825877213527356431054021190184186253106186178645054591205144891909238638558942542507929438134501918311623902123560196530277586642576727558352211171843994520790460612014533504680551211951546693383882283069001593757476709276303964362082476646457022970731709768238636241588639078353214254493573674956890272189815036057745768257457057007047079761554385315737636869772830421621966459334302759095917063120596466744865384051507665568403213118315422646282774048214789321171134397639238625064586370870897600580514159525646449550018869719678304789961305626137092761938751849275924150162624368546911791189455959727937639395830982692399078764785373080110544713091307009479650617186757420333018180603376355620917762736774889628554402690094408478869482449307890895472146386304664968899217354578284647553714883980661904041714333454088771488051753737275739903686027176377889218232814221389909611281765632591329939779175013977091861393901709155518836724884143271224677448336531188884354379108709388457945293140141491231932980844618129764356607187297602484582068938271834352805685813020658378862684260866801915008764072073819060532251965935125323158447501510842336738084743038618769548958370367368725378805184120318086775766079006695662769321757564595740020795167536471017718625991425297465173451955098635943806331753033769166493952657887652233722859431081497290567899565771868490711329556545322107859667152872569326792673233368832908339378468403035338226146342530552597375574937056815893890876753444855045380912440449672881911952192814480499054933627182451089932709552754523740775170536966513248617689583636863661215202906282654294539759471397509580332584278989222629629141410171604231577511836912748737468888406305439063829959964233332660812170773700171576306376364046083120501836676957248334010549189576595102933810252639316359062179631194482324696615747567473428700688720097241999054925819976844768594557333032932613174416037539838760976842332653483798756509194571691215674610177073631757729288946024284186086068772168427932756956472793621347500083590838722170757532270088373313998404468988289532280748392560875507250597406483867178070548656332390642604720715270200908184807075805861918746031202399419120042599607421764749666981664010636600653778488522318513271988204116631624588959294086159454916447249758236658951710838977764091376023133775502854570671248735461940517273279390031655752431922413871673275669390828328316781302889210813421623937902951817080357298464032658944395507533221186111331615562703411582729099290032431264307508262038667038907334141674985593210578754390401868770329655307366283431175371307542968125235077732451615515104586875551890234220569652442377174190573912651628406985922365263244612748147303583260736474642550618453049115151611953111415563677671145270193024179359396974126041286104167622672179011182859321669986746809086184277127312926289465416699627231261424079237298533147476667007834524159406902369190343034253364642228663887906691439166247443459854548791627789313932161556892887174004688974535968100384140814034745324604202263568800636888396210456797277771467880488594274767334892995735626814516795538506302948252781448513253256163001436638229347138589973817305162394576650171574784231354059742427117201721032326256439908946744617664851447676908548375964017423794650054529212396692547969691692388909289117387928954206993981352312623004992495044027378402157514495266643664219796672592212332984833817642529278014061511319259476286578408233985634631401015593469680273571946212486146696319136081477492469794507227510428553150497688815122963534403714291804092915655704124429913972803322506509463756878609637644517264850245103894991784291448000155485874572345941718155096096907645400163746474475985234991516949737322681792537259865852524376421152745658098493403623706809222043703333623426079152215044241222482261580434365790097570670773075478598787244976075078492949125764075216437805983174762053782369683281385692691692175818765800077359098793239380896068755668466418962151187316945450990903825643707399132451723297948388283894625914741889783198102722433475464637781371454149963606650529270337337954250891290304903537621001941792551607575257624349664249038659649242421813629789319267882918911197871561310698978476931559971084105524376752701626865427485311511393325847313522811345368110548104997603541896954234574489248364815746877360330741271259177504148517624268252072672051987167422388281605011070282518112670021995909251672559650084817786249007170009717454505490511137770444290954279426708152668684505491087758472542598637702368914382623500947143518680116714088170647088216282282977421432608158616861761562997355039236412952317272014611589681927425030061617037015386914419463418131485710271901844075443810798065779317952183325169276765054983277893124469922723278701123628382163871950929544649067170064774994430186924427795922602571600279094480556322612784300288367148514674628118302211571683379766485893231068126539522296273005162993724690225059614718143299830890099031625248055856327561683724093122350531747482213582932314284098638645387758259343146509189855682159414734264806585779837210319559816429417554104863725999491064140979359933552175660793125528782089398484151179051635554955117731286840719912566013929707792394973124984310492756795820184215241180237966667323374339335598179525999374833603173515752481801696535559794593535859587849133177415044505154298408199567094014409286554387741476952266470125011464619042613729701512851761786353389886014581591707921110872960581034385033301113253671699668593122171265188562014906591701054985638072551026742905058962366035987597474590241883758175466986648345703373375137202105526864035228414269230118548803163167392592898082736515146676017034165976463893727044936023063960407084616258134147083093372838904381387070722926461557340821951200652076185323160958274702144101829669420741751300443011914875120906402613346324192864372868129994564421772116462497714384413769644690999421768012427021366783917623425883771442985465438193879410770170859558453865144506034476830806652143522488042398733826311426184347080718631739251280650852443227261347692047466412846281783919902073879845362185310029512927417124092475582664837699313875561069229576448023567406705500479194868134287203359242870766524721401687696551964362677995343905411516735820480478059164037942482993782425633693417656549849337978739206697611067419008496233356545740062354143314286628567382290026870849247279659211245725407724643573125980842655647403569586762577130599971750220571794584982523572084034066215532894119131932284511877987818034692264334018295121700078102651749626117109313609630349513840227207086641621870962100194092274870413749045780959997747694451521784178626543923444281145434214255670500482675403921053685156538713182569473942236046292156935162230622465958884324021613469704712626995763303295598626225895132313497305668696587726557660007530048668416631530098676712207141670664123841621222706274169912377549450439403893094997737678678454941272909513134130092191731351987378162797847951026423574146598971071075429617593751273363257216397026486214898869948141676317572822609377911666789248123793751002743863347507151950785933221063213289040748122619041428981415625113971593960134898137807604850536454532906318183161036714794412595413473243970990946476026353463947354653373018579439134916549258388686010676102167604943881975514968562469362229022302035747131239791747165615213702824883726632445803716277953560661036054997273050624321601898596640100713061963607295567395094898033525895443336578915573951023237060449857884798362563630403534798319616282037584645141636835879942446145379097172496156268660522290876812879016319719839109047567495016238628482825341335963836117927050781817118597945443195432149576399880697745974097980340335985249725417855077938509075827803937663466603538311491300583892877239507537122788946812516450365220233280320706447875922256949858702203982155849102824052760489076324875961460483832401571658731872464127511613679591576169262948360261910127943883628088424455359068329013250277448784476573437837271816146242309976004620973334162923935846947257363678661055637474485455563203982554561998750769126638585168581544918142316642246507860627355488407278796334439850768773835166486384172360110960030949335029280944782517426020783832853959067999010910608361256431845424144642698391336787969329813510942438552842208749895776757604811777608053023874007383854519875235860825014408584820282953057901532503973401674165604801687874352075637177842082233163118870659200310204021421534057332236859531344689308211271661279310662670285850691716768963303563335587294335617504237032089375584155932532586042413688177191271211413429711000203360886611489201883021114217526088490367990118694607422546021914164309726792017456181189888487785287225758974686297586621467731756868225005014347903427363009954230487682132969801795588978718063819541843548861942449759905640277025759606841572309217765703680832268718019562298669691979321670184665109766782240113655209001603281064487641365742509480425757631333579528096231480504100183131899967793141303395371771090184721374577541171692555276003787208220254247259136332792014419772285059206754207535438657392613813381162588264046670615517128209422641807807252283059597559134524837070053749898643472405621432707295580148904973548489359127324865220593505651986985593574313520949809419219046677909830799636849654762644385809156845427047570846658417330652165784602249402114227502262279742947808167054345111438465215904904681994224893032411602864012305470905172815859564919076136499476104260700240422422568331103966211779387639747896713344702286679969890067759665242921896349319244586944918126701107101113664517393135523541404998363153365215396335929189284315016010258268594117819560410483373875772333336909734068086813979130812016442473343497506991500711294950054804788868530520376263048078345030592091382804703612414690392668367739635880857702394000402033042788360768527838110610520086497096706943486163711622566933255962619737490137528335159688745690712914365877396725970231043308499169869707728812233828782375800633547299726144518859704770366638203329902721357562851399353856465659808198520015404840872946312674501898445845765812336049521754805994271073876320915160475025450621134338725915969951237767294710100410321583996659141466603962874854169448606547430658813306301875668834520520364753975571131982847673426858211941452272211247293552469028243766907804526899270250238951601651205958314914854716068467288049155954599644863153985233689911359167328445848562163971807552775472479639214083419001126476826854736916091464727199742359245361199123723216293064424993086944609937488011244933077311865156903898094887875248004571135581343105471194328422226420641294424158588643942570772473589848023442819177063614106744212025504301362000914649782422458145080231016241750332409517539505889408832599589395188014760120059068192168712144997975181378309092704714663860735285318825948942514606895772018711904704896762283564839178263743567064449260330658816796101443811728271320392653993236632579983086751270463658603946502674542293156679231778600606606847076508710728603479903744643185388097761108261534476209175570721667549657250942435582734038162710573266810459776355062275862820601126458280839528041579901082954349600687918981927822431835744165373560592933338466975673115334482507421660559176551167251481201255899895955827641561935253025061578129306198693766815350722368611010315235983536382403153082285628030738781976284992331713261304792323921124406618431610899125765996528948623143968547357032702902940080532331995117631893697878358458568009379245563851557098818605238328217440563633730442366133148946844722632604614878658096492090279888509251167318780566971766631148923051872667686442726933114305778814546987571976490202491530335552634559773326441076878860358646305974965774837299699279281359402283878952114432101389648938801068662202260219329846188775003145289546435417654742283833944806601250170620922002126149025072545107396650163298378069065399971748957104030092949238663022886367055777503048374091101776594336452929850459971859751667874830146231484816626231830834738317855382533892223993159084525872717584960839510942102386101311991645704501307768421074313739982857409092264608900955700119369442258105798439189928289306044387688520597620226595405116708468957873927094289702060926742005508211890206858984510689476907604021006195039926990579174772604556279505751321947299751318252788705896021637374389140099729305927852983524905199491205955123155232253873761012042296384921367122734893809814877785725727797580837020902448406359597762880802773990283241096179481345062832408950587215381441033201273347446370414695657996538450251302384799834076618849653647419921238358738385065607004433419451726348468966316588564928741504203838549399435809422642731090260517736076968069002838138910885622193705510542325870741290301735930937835761814861778013726709584241542323957681094344152640059009201294026569300884026705100576668823156258314396185404428061039706329793773133644344229915299565821498085310983550397798166992675979427301626768664674865121353659543261208424478260700983068648087811430019245798197619101461922967715876163819168124005349153689032021527310657696793593815577821624016813484805038780225777219424904364406886862053609812698820162998020563004895768983056472955310729986878531829263907190644786428592891124394083139823584993604867612371144537577574692582811834018806733422001083983915422677466189405296423304679156932276802217981141393611273516557215781939597218055333101860218619390211223576108824736533516427647203800808281983195916981646153759888986788626698066823219284449364081506697790418493103247223849511196932136017997555625776737452690397685085985805087373491179320929444366166874777209229352772512376280097092764823003799166878393999833942854558731575882684658631943050275249161406597073245927856845046024303801171575964885743385773781685720874948856454439848607993055873433575969734849681585462926602200663286105749381842541994769188732795868486648079473573316610834987306094137243830549760559149688737693517405164851159561565502923783984822978739787339752038294137454940686874107624131129895498781845103743994748020483381079631548961034292595191706969722785717992598494424419149601887927569815197747291159461953015895223106688602266423593858635837050850549584221564797805170354257036081732702214214024355124677348137267151634542707450734828317256053930289167261713776303631446443958348229884752698456459627851593336316592934183081125224328521103623620038939655984740784287906355044729624755704393883055046169774425471862366370979994756629787086138284445498403045749854249239404481541897628697669374560015272702418508724941759361245054912646020081569120391017415311492783886990463147079451454623539924738862120612955433036129048000363772967444038889081720579027198584482352018671678559892467633950281064286791319374804354864686084457633613104622895330688673374620896424762477373739350221763544400715051484784206965074909870792496065837722504714939587111504876788932685946244222140250233492363103382165480841964907476581646722966277237174673269920682600555256864357371811725492331300982443575491058570788880330443915347658973524083027837866817705066020680567832580620643168472460560722129673013871888235363655355741399745526845960903467925987542508349370905106878407712008091659608443136551482745791016734133304171318834767145921886395650386772451264751938053038680701918397420583018425884477449402351469563589103905968264681199117587439376352556122199123406491213439234573052290698824726482032460160495659701078481445593682376331352641649593436632723392868051978627371445742597247548245351606864489469963202970039077308017494114048198232207786834161313707168352892401807370726452361275935358222466358632108593151150453377475002529187972178343501482663529218917307851420476416456639619305324883815826647273803059295123581778968611663956461836650756393810450641563613514017131668751421953283948314312203603476419641534120629161556041872340088972779553216651871238033598009268589379064777354991161191894200396297428986701303140478582830721659720424629947328114231773630615733733487027228948516456847594833531978074252518025055518307854368761555009299423216979141043584523753802593129921405099672979331672634369292969143178194973488538714474505852591785957491767826112580384160811114652954530848654365375793317160008598757171632538363185271557832626536784257924476140756003723251905287114247712407293604325990392686477712989490778268287476151353077335491740950971645823464005670859725329578894338372189558408083922040397372223976743778545923613486046973185203602012419447029762780176152270395847609735483203001160376753204936234436972570470999607490754378464531718994250431913479560218876596023288317889049789484547379511196570831040939634961173905051637940096615745955259044263719888623276760368824862971255177856494158636588677471044199277415509245299922526700895281472460953305858205906406759951157501426826713376610271538330972264486684822631401441560836114654752618057174337807323562598179976425583141342066780716254920687907560111796922447415842390140736444929507320147345136084443663638064463471215115214263143968514755581280612017449129668974661449198668986275119638646248077786862282560949224650718126795900027091248615304036231738317380950011388809209095288764850652309402985594411017955134133899903291546797261814010323431333652690673093223196184692067454168283472301002838372166328927257277003522409370792610857398836622785218953797027433977956389804368442084895110294881459395411098238952354913253364879234737847713960707086890771082276800095446763566590704939699685533500500268880382206252070888333635032877661091244189328588790102044520235819244077358753356192325005024289914153385090575190557836928882342012992367561406649800102190928987347403750145413584046281179062325649458127265452752584467230677206170319444496369201718168101872955781054941475791901550818746764802028916998109409076966389624068626803360232686702464801014577350578691452935562939364917276221350509868545071199231386647632824712090104530787943792915164694737478370109669986989318324438461173725047853136023175131000387154874176843837871030984951814409505822538231735183734545157112134406164825498855409054608381345835931904456088297054820694445826826419083251623798824424379245970687225237811306300436272002832181234961031159729350180489577789646457924905457294867200350989484173609199932636991823290253870993426018640327777286309189736063000734765884947752488682106298405084088940987848608543591431888763370188148527113417065564188791968242421495955416024958536216199802835954309729637342516448613107283016814623732835746452506582678121290368065056681109154534862352783896699922194741628945808545979779679094854944870146155779075850520153218942064487125528384562035668418366467753830093039867017840973425075976998155239290516502974344468205326741586226175110005780060378187270443662533313080976154780829620895711090625323707851741800616162032268035284104751998065243028466426222433584752468310592301024546206977639590290767639428524554692498902107281282619408089270112584824441165702987585301096274678830583833200961675040252219675203080709753718751776340969585805950813055128301991727114440710403974009872380108164420980661745284263453297631287032117067905715659772817670521985189831867421570946192678127108694439204399737043958148586924790968011634029161847493349817672140052698725320273963878248574153310772148140495983861011768239207172143220967781632360911710324150939477629602530375200735802969748685942124254129592320791095779592047197321237284657157263022897238783844859471112701022024819122914166082103366113436109214622476492032039048809995920773645288533691648158832405109072046345529956726910543334869641796749211507159045444103841070180182926865590309636563715121578121673289119273298859170557453782374767191217246986322147359387055215611393388769992203723122775721998569349799185716777740702578539827433262587652773914811840450901075101134055616435151976939918861455851339774133854613644768533373688265033885797373663048624562766116038875506978603679308729997372033810029984323738372194949915483895578089832714265115903558597340786671533589688502099004918316022858264899755756087297709304193835910841360840257274360900309432770929685201142389341211467836408870036737602736724688872203923514539597672652257754852823546150513887785872941283118583566449640048512194587192479600924048219136534435580381760658021735103793531936110213992003728722600470270771752743677696268220337467523539469897770582934050985835568330798694629916790708233853582025833683848140778945210144106143693366233791891854256028258734077690262210832609647813342392049965861077773656230306917822867091568401799137961320715920063960157926414902119044666952190799171789700974361029794343411214608011367690599639937861097432357412255423598560428717961923609987088875076684573285324014009462993601080414841609269457502168819078191362662783251031001972055407557310945060428244030355360198768827613240999695435453144796126522287699639087089707754228682194599423781940419543803139436650859454434822933872765993184742651323571379331627036353136688785624841852627411363217325554862569642100342916729620625410893495533608269444680266334251390744251747122384488098849816640210258395192818570082206934001215038128392009726948366160379746937888125730422667636454713951539189580293087588113517697319247307625667802425254949563757121051401496055286556516342814232048707104027197483723572021427283625112998956267129427871430235651819794827423420937866132505539368525675141755173312668898193431032329686058636379870204200047751349556212772615699477556676568430152968093981987159163478047321273845969798433586458202443991411548926283062449798192972902620444039775312869518193570793223221344586030528788489779821654015022886284797911851526495942409811983817558526924926378764147488038312288482971277937264380073701375340093535120004688754176318552664547112360781436662987055227374327733564099119705338050115800989474683660406710432832343786442880852686745621766117387009769179497272535482658938250617552668146502923963517631906714013775152114542278916624461178784114627532565947845601320042273439144821926620441895885100187427130504532506641628103488526300792890084483569742044313505880182698787715709718219405080013249323904769627065711854772257242005358610246706823193193372790532297668053583449674943342524068282911197659340073124925161154941620534644716005309210194244909446702313897368580383235126616491757372942246588584303346817288336892567802067943883584340031633501240444899755628562262201596150021483536267467586056566706663041302031904966207016457900804667256672986321789145397982852684520868304813503043990489965558564393395506953903400784728971007338285283270690133839242137526245673447987795737426439035266520313066990686363529316133607609503926619122520971880279744447522110447527584669987468709767489890891822494630058336283870712287150330284034193952354214718313397493339810301258828298080369264090931153080940109488174366676395831278467568575693175247625798109030481670946928131255051317045200819487249636990194358161666975699144470244944975850503146529896781910031163244678458936243350667248591492010681580525285794220245297467422757307790995529653256596808131344288492790297113980768713304130982493170315333003991414477325718112276980174270109607769601988885612642275041742708288702790253501190922104965446231465464077005763328329519366525482068216083180496899748966352753730659315935252074166697896428765942777071210616689775873015827124377290868998819828021963204577490358920449923266925557557982835061915037566151533196179290140747176063041962439315097542000655047578667348575557134623163692817096125997010542074228357427761949994418638742827574595738556432571858531684636647797617701625514852591132565724888753508036719924556273805256079459293916218513062493830966399854057150063776947538057369830085155432460564451118209980407842615075179974911457836047055208031493137722969011944712064860657180555531806911246125965011314938514919995487169553387392328939632559265022898292874282245945218902405624539883533351912345371656454474592703841698906201723747250164122596365438210729442724407604288564775327884568962297850451626373003137495036250424545782820123954506048600595709989517400663872919694029493699694346619207602572487573969019006687874687536034214679854520168716498612761491055051319668421286188995583321997876027967803727191253413117957731199473991457505077547713820413711205989836062543650855435419577275707312187609164863202425746243182946939620883485410164699395831121244156068643682446978503116951235091083213764784072023735399836823860650597726446954690636260078099749002109481156929990731208698585680746662693277683959955206129864614541967156800278444589706480031519230502499686808501476453323098127881659974287375396862896171681124362515713058909699968855210811238409676999353956971190133352649083864727686596517047222662501422817850115991658738723973048819229194845807083175821140223641381574748935404048234755752183292204841684617700412648269844800188397907652590232032738410226280567122657227314127853285589018306009490665230597534610448738055037356048671266584412770471022645700905405793497769086009950089046724955701164540601671650628489494787551122793342082784887760569873321152745573810898859162417870666516315004896700911523857237351738469751006142585926031618509066367831872140602433029845841054838009588638025148925907934071240581129447152269339696854600563291475547404191250020657463607061048231113097956882168767101888745112127923726843932989661770338290321849180944134728258602589145938074667672770092940532815955536130303647870918109390098494336862429379150911590622967252378882726506991344912376059015427657287908590467673056944986730442686223226178125617925313945551507052888147520828245779519259137188211427014850570982370315885370257191907111467850083295319498098821105141383398848261798484724462402109383810274738978022783622548790228509026501387863431886736688927672128407747954062510055666812838513570529458276021383862580052765111970615213749457139915822101795953593455552576151903130363232389197136119461080676364548450547286516816406866701303193813480830115208105185679886013608174084879907895973207314093896421558053130351131505289693924303846162036588299402722861463723808585324613707301673162565819732138647817003818029273637832736055913539303695123538422200259131745545247094834524135010774756749721804759490387152139014349351451347443832447298952005577039552345701708454398824541402691580778152229974308288845564921889535584955789133902577370689535698974223707441886991410192405356122920678245227240762694366614924998605425234482217615465890109239340433774954013219352413736768120901398224018696582424241120139231432993394172185754826707468137955126804816604431716530369334260463156177926697095852920233954353968015048701082708987399158003912093256203171706843004370428760603609436255590279448341994413594097266350579754886996904968064541863166869074724112190698142327417893857113987886014327510266410422527004855723797950471451335119194100585425823986319165403212794175791025028771467705929705084569352304033698044103220992873425437613901638459450220463909222427599794373494550663857894099356196899729555468562937953364787161100880989279638520530684512709545434570500803320623502273564810918616149686931638164400905490012719834507092316401621018124129807515913886421575440888040048501953350444576933463401275212829819214757979419986158668021403034553670308965507192818151868575456806705144470819886206464641983537662880304698899804210256655280403457356702601325750504544784444542381363236611923523202116370945466905943343945712399698925044666983835086341696839081135618664365776392900249785858446745295292330756000795431903666442649024815992811199700387095769340362501382239190419456009452052943873022757513396250039502713658780549538896620412618355105609914337015933564211832086486922149271217240459517501297357305024265345931851467883709588084792204769288178262390908928347892691482964841019310760355112406855080468423927085687825159743054398257379304543283160339914889134362039906579293663085141699070739635488003187297158621865671153744497890500505745681661975336599611853398985287855369259596569214796970588173840855248170555841622267927363772143376018132373157043826122295034149756099996326586967137574876364958832830080711819645239309328414709177320134358401221874944204371211366710375478336232352472664634359006212298611272991564376848533070032283979515632828313437767012369278255864155542832339003539859818793533119154869913431341728404874424815409575162515648854261242690669992161336925321714424676050440327691857117107537616558849419479694558238197228251126416493977699887028104907964074144935162429720173475198296235873724264284863343630152297446547046695572132245149322286030629633337744875067511993966514254546547586962722359920952972322911307394996078740962685893235272907842725537415915895070692352495946921737205839770396227881539975110606831307490278651939333957769715559989718013302335483383715077573266188591061663316580086200152541526675370860565985461257587710348556762120753364517420462867686231372366179614107498964618068129419885578086064864806010076578020996863667737031527926027567955228263780823298105931323679296781843626809363955380686110165448256498995906670161387656014253220641129119199347008566489969236772108611307031870224301333608162881460517763936867511439825492530681497674409609969399921854163277286880764524627993607892460525650094482543238094466678576252992463612306365666601911060183559480457767698541836118896699708344119370119627664412882000300207704720400847286437966477400802313829730245239007523276473736587240671537143713887978798859723134706555430997614067160007934765437819603544311676529663665560080384340403444320262799627337493635965510191429372458693189420699232526586053013987365273894980609975692180116024596230625795569356286713109633035921086455278600300126452610377899786823018488516162352421126228029732306404843075476848435159767305775024907249136203993060773333506420093582706822947809620951895604903696898047803181063183965769519598768729449450258124924117028251863392726276461336883037789616374913852860264833162410273998198069518765956714641490829857653089935585360794230850580269838441378268629158808643942265324170256577509634621399121467428405631407278276460220893845574499772648053383276916956840748780035035298162408972339796489822080036543934435091668983462108993665211082340328750968468182165217221266050334384388354423260297976965215521571411234881828341822323862731089316197911488524707065223339956464042096053469948364357076525602282943924363051018642913751868824710854819644477935638505290107536375110743862022801530334156273178472614608647775117119693872220742003028135403021574690198637523714413852387973784256135956842295607228064504281312388315293299158050200895203263554654188474048281182485770092548320135554546513415224791609081995023569807401737854409963541660609371666877944890433292551173080217274205605649349242251932986413484300289600087058140054575867529868051973353656940447769025581651490118928820403281183218956894358586106169558285972926775719493534070507317470098131692978051022392845845170394229432199673894952801181772857427702898206731184468410042084624121669393162011167357974018722306402498172448521122256109031216759389528560392922313214553804509450176416441946884978686940078882656584063183976078084887233912671286074808761258367284790977676375202737310232112243579847683997381057604065953510007898113427789689723508915313131064574034881695063974286214504504331539462137499246328706911756540743377449693080443848885046098149908933665585838526378597858767506813707913646722568361716214075282857821288646462018697489630604930518984450050261569693086552875947005707486632317136577466777500234144780772653472219173781235896781210274710456339563797781819338087846918126196235914745615084881574138451354306030730504060051230047638731802177162156803457666549403879701910398579844074341914997142004998452568459557612630030225952679695917255389560750053904617027122250383262885850425199085229649369211312208120902089655607103398600851086090267270293905077976101512729061239118966207038806532726864802097506110417239933038824100341113094348328447943307652084369800347878402373849262676990033275825906598979882391998563970130785187106809706404992484935221113742894689348709448501770468793876807776335818211408689999937862469504442386183220902831337335307478860258538899025235414884568851701107570002217205242203297406787417458894947280203126781696151212527190130975830530840773993489096947143582139258525470353722355858660792467001503483924993374061518191599646851016316272335210529106923429443430523961518780856709959723086425412577460709003671375849868833200634324626225014172287274056560068382218180982707927286054577751669677813921100027002804884788869031712860269666598480628942726897637944215855901005220470963226673916507345582866404386599238464492016172027857006433403350138661717325109712204609585918945479472106053188596153874605046340533124704779265218028105655744317294511671167089446723601135737944202472363948407324665265317008608934662142777953486211999124752101371535454588749446206942058636651228780450099131080033360346487611426021050671173881147840570296013748744890831607578401037513858908562910727493789800206128454146564669594288443895620364225976151722100352603596811354369674463263396935285484625604176818764261685690401690486298434814971584452520550629260542079868016244572205963994090378756761123599059878911190085197091441525650198904543718525284391596519799916878206725513505611938686392669351408114686306403806419016348666465051331177822848858234487158195642256406769306834322454739593312679568005555913221225203751635095328803182644240769245368999943597741504850431535147915015514962089432848362990145395427596679195988016575548529533476498419317985553112570094791029987543967118257125479807800133120358944136713451406436855725700955861726501615568290028569511269755385211029928652106195323370940636942625009522148748259555026850258498240039025041207023178467208468788649734542367080960975016717488570963087124124974643253883579134011817437561770323057649669028226840556661850943687836091335100384984773580830156971281698594875707592543973214252949133311454010742552135332939027349386500109048235387669351942315365122667578331436623347360913201085466687702151959887726134146947688300594917762161656741389245509961102166632992148165949265878710568497715812554457377425222634316562433086733827694969204056816011734837795494965513961579912343941436764284736350012562810612070961028913661495524998547159854392338888257975732369974373899255772242928601843615937998762445066832730339032701424642925372186522162994400860893841760572794058757146083079011250043604978119426794558503150622549671980564829943909630175388990602575024655021701243377824948338428859250227130389829557330370928158532369883034777467094592284462984738759587771774308564604157628689334390217474776366121606631943459064043011635395842226839092839999215477513675708734135696105617160091476701559990614603065069175101114003585419869358244273635202472243977186726989254199572916905046233359951274197527791388008812164110696342910903457168257710591543177205489373860680666909887090054580242327775670815215963836350593874451914071431418242078542957262541572073384974410742644121218964122575323013848765782443387220306246260916881048940973546841368832008923259762495368306273659538616596114788825668851083318093717434348768474362508989973065832509693286395751373529815473970399175684762374554386067849747680029823626469450847239550193657060950149464223217012647665117491393558737198915375853453681478069931480940927610159568114414314536663397640758148345574869044650586139894289835250307051890942172290358911490763787917245779017027797285719651381703104718694029299335063035766518430907216397646818807708175951618051911169264027737459444130730506111795701534235918634837604627771487203203849106808213550099860882398796527745819127393946014551461785272293254000838900778357730931066858841932155031520529304602715291656578483205742426707111634889211776075135261784205687729282164565004402511457402699614556745121508987800748768204817219798086852465616591318105479251976968180011320165559780043124794314707789099873351573497869727679833273947619495303850800125376783925499372297116370871266729655462411783490883419943300451165976398866976641541881832730453189313604496860967347814992863804507579166726858480614616281993232013125938837487625701222150676456417350633074436857016602961072936040548959830151223051251525062880318495010525654688634165897165350710956510376029021486316716565904817793766011114913025797293415890908761360942483629247402415675017230350297582981288080321952807913229949754885580049996642031154105265101508915411063059438471086152445068494428349725469680569830900767014960658473701563398029031146738613774024341120918089253005247442318985226524152617879816723926089990166961146258011284158292547200372242146049045006546046566696230795322462722595794650720603267110868456718055323673947849468172047942138343272359294753757260532518879673254848153931231458335958199472227144091598108200461505343607225484763722429312780721941971615066971897376153421408806741876149952512536057695895672456733423497057024342212320052225548681152222558359211382206602705242528182684528937951007428093828215586270854043333391009312560539111887369768313013622392887480779290894872718733980602816775349186255841307869067001984456708396920192906221396430140282124310765796846611987128116082102093500104399385113070893577530543918362842411089375847991986201381907791588325725933070405446721228050320467826825697489814485332814865987750674466961975307961001496607641232034754864293807767826556607424045541559119238542705151531406638701898803795219440116677268546353576320306084848818816612124861574158510442207584602337527196637517511611925376987751444113560538469004344597420381870212152421676768791490142089911225012809913403315861234647065560618266509352033768001153741939682810094820018435111992637523916003619428762302617302790775585245607350172840094665617888292993341800053413727928287658869524310211542693704148111514201620077242926620187991818358067653500970287852570783084900769832868027487791946221621711761460199789254461366001169410958487033295916048768743219705109498007721694350961530489809290866871640843986244344352477744328230066060715288837637117509184883060498759852542446611144902181327513210584437369909133769444315708779180921443139590081149723697662089518914384808321039095160409235593916628365229112360022393369881664417806994708757317112171832172645912366766223360578933912966627724104869743410645444835994845361603507199174564323125488933722639928817910046734197883572794272607567851477050486141029377027820484297596316227174718563617200803930894093409191133596302872853901056645718138163137710092711734008648578394567954535149223597843073710611560086798597674455341293219665785175740094849928534198861401143777410692208837923565679762468471352976260016954447543009574520391543702451479527182560024793950827019980744740544461459231094557443918702195316852329174704653958622503107455425616236351266858659570588495204526070087293367843989819488739120382848232790386915744981576918522474964711751197121617366332516635991717390275577523701715919472207305664709680572660683921184746322727666875732059222630395515313844115066842819823097242318673298248533525268992568371067678184584613301582819558580491101340978016967302722036030207391951811873559520497554548419477470228515415703656619505551620120371276062878323918821713507940169293728854437285398743254747674582883400641309737412364205848012512846919475876785094594191989734636586837478364308412119031760550010597127679640645196472152711606992829191183831495728215430059112321804378641828911393898459717690400950957220956795330956016077985852292833007242697470012519815906429971185350155833209401149269264795765399086831676523206914456957228427924219895215953576816986699424884061260500680282397511562064475338500563970583952453912952185755030944038747101749307030880465474429228590022050516871612526305611325873204589206651519908530199233301600056774249677279456466940795950658382632682384165256359063345185472965545469182570776708890781611032596230406052647627564964962138375792347118339456434493632120915079022700979994943163343364475663582787732216594464812185900264866510877770391969154975069125533526044116417946224098987649522784549979009172967004245617823797416028703773975497023712831078759782212970414222034551496172247282966933431842965273910265164328481788182793345528852258663831244160891209581588121754300191240267226680604050534111728323893653138689059808702066135234842791517856544271676911546200200519452908021938769912899923131791885799086563513781422893891164209903049342864890831391163947334010700412205575605649965227954046063675988907465537245518403019838175214896930999171693071253211245036783714050425773442601666732051469295645122313343932561804750262170763316634126595089636232590570242693846051821901701463894302825502265515913958865793805907776333892813377993013553884397773317588917381384035958412434256214009371553396622149520461213167995393857528293566964838286593434917923242206727071038634587727191444867104733754829131520347020035057491345115532500032141909466061253763466470598815975231311839968951676033137278866277205907430836898317614055725038286060298282120930693880144888165944444401191738364704401260523680897427395590567464670313980056138300692135658641827001215201205161971516083814669446474418590287526691313182992941353068718058987703605114948740770552017848129973599125404154078093804115371827616628281674319343127410675345149917273488393213747373798101468510784058620904626780787820858424515721791635813101552816577284744769547983741689669135003980222460728106227323819674153507980126643324358669013225566726763483405356606977559326675992876750984285370364212140875988951192273099279138177835203843274781777284952593611612478356688346138861753910584636076963875836938787007559838575927828031071864293464685325146008516651365306078864601641421147151668892565955893220466092763854924202339904089304801515842694905105804915173133844125510533914890347270115203451105693638568835872827362283532452829015036267784109727879454367876313098041408228583137809244075940165662841788811071001775970850829958001644605540496381490300928854993885643052344593194916787458302591305071018296429259552138387040521676573524476930923074726979003437298748261732065451190890313961453232179290542952232941843826518559422925840419399554319548559519198677633162726357387259692043925754751092715643155021132689623590975560508434053574895878147297814365242434495711197910349697588444663807956405517617992189181957254481754418417543065538008570411579079159002371254657812955550202085193800416358031273820848440341629842175389964685295671448843933933091677761517658027829100738663859316782731723210752125091369415680174235432649986629907556983748027004420452538949266759073429871958345781577763588259966618594227831674925599103743224410653228172017051509967915056023728923694352169032069267218125465650643159153284385391160163482099701743718896979636638413956904441825608570250473657058717274719183535375669980032918365730141898754744998775412246737340448726981965240937002406871011204153257677610156819528648721646887647177887426530947383395918554249932968552582653926294698300617541054103365624520107630464740840899212497574581886383262254515951242492176862819452533171766141929450239896699947513575229088679182980126188220848820750990154124847323143584755921967734182592184187422862838229809280767770972348531196353019822127635563624785442750044289455025487152515231063252538366326651472295891133404739441926246376133898332740759056230126273393241950944117652420446259657014453079127776962310326030595363598262870207759040211665002076234801304367576787860508961027153733951996291828564053273856785210811283597359994730658878252627273875897075338461031329160396330548383426011304045381733444666199061629182649848982590502300114588427175252130563228140395575036157157338008583537897442553367856598777914563494294680087787926521942818724695801678662925074659142929090363011408223232609854019163586687043688202078931765259406704087094090561076261700944161059537281138981751212815159676346962839308021575933595460518255163468139708590133800288781508940959337613933637032049534876040832240191949965000840717630106839079227546068248077571903030201757252703076558570584044092508344839140136112262754831933106593278768950449661907641594103466271385536856237894254747758948787445203328825983445420038420846448276659747582907712307340366593598694839497616186700064677462994352801822199733889778619314532891236274691163318166081250459674352079168080270180279380414017706066198976522364470172699748981722995720916654802858437728542894895687977212499023088163619709842967601550805323110829180062703023022472489434044941475085106671508576655491989332597614565100055042476223281238857550725016685085545804223961654488499853016543806623765984065663650240186075039271341280502208835834476369652609523482949233612326206195358582978319292514787654750346111070588840751699082926639380562462213362580968370657483284201193658369617838925024316158763153079763694117293564546950953651982082276166120230516371712845735874915684042898652789400850249117613507489107384722511398024249394784836234355891545308719329983331337011929205580971266038976854820750513220575755063355666898849626162849682807507960040751112472395278687306133803428795462577960102405516892036365761874120813860291962338265411707624882435062707801574682017334821867895009968873933799838734586034624788609574840560792531474839710370294905770807409764272651780684752758226487591420380808134649388552871819515567385186928432008979565579636837725176474086249543285896464912138351484675510805270515464155418717145537225347277999647020569196323546147900236728868092348353452206703089447765437456084588328225854866105796362454350989375506053027396484556897740752401428577668431288256438041687179953932480142983764912131634670349068359057410103200559013569594975695558492233823026768177831885088117795135741920190222373989117778505956937795904622256027676379239699026687157045806523223919276720171578111191047691996032493651332214950407660812191612993002773811457665930521742585440664082537114808068439767952004430325207356086786806216121795577549680638449423498508504215139106123611923979966132230695471252732922882529581697337974311234050985751902687211909851728351333658583963172240368133995943059656259105454529765728878898027774467979812581304974135243079765573039020047576005826073462071107829265443755485919797558642540497019948422788405457636299286259625406081046641934543649106228559415826967376323557554922870363933956769790361849187645357822759415608095314077133743659498394739879106051481910400191457057415188351463403479404422389828753814713468279864067070932014717799158354868987448173782039924605994478000695056958119001126411120124766177321041565314905792854894036222823121727966124432223890664549239898629518594252806053351670837100777405735727481664080081363794495059080140508789291209173508732671408274413465219289324144546578436732557745893242438325512354977661581414588077546469934364794608147200652227292027594293673978265836827544046169179716691767188335324696792274102748928923308501660953317699615903539904909932006029493867760584315669153715108011331539323453771343989785070471266720970975008927966820881836344247903110083342558081454748826267775526654189371389260223770429402649166070770536756871964676725583853548148487658897045798283486426373301823214073132501981574211699057455288152169537466064016264121335183656505171989473811131827760088037712516285216809640905216948178292258463263066978468675306983683989561445727372065565687763048526455159333662480719386732401969639142150299431046005955138092458591990199024530691076296070143593451758469233282690103856552483412353016916122303880181278811982163711336377363713575477150724465750451643286563933573286034331687591198413133070324298405122991927254815177665338948510822020334635106191614296974949694347671804861397418711248495135498127107369877544561763393507787553856941830579846045704916511136720719958887517041537738263471644718255930986736112608526117544553386860877687886115275623361491456971319667633946546803246020888809683017892261932282339379726995423213054552662102532069482831011490158758472545033473408915332584310191420716617815085867636786063540388593932878093290804683207452381212864667313389971998858869325408424173624626485621625307480961716209648538866028777745741944506451040405833050365228988362009869106167068069005994203431301560291371317960022589998490953676984716206648659581507789630935414839880037007512596685671482392415920409903369218819571742187431927511035047593704000650292132320029594320411538968432568672673982964518600049333205851734368689635716346208247497233254442854383574198333692700046944183015370409708296660698862374007298776846074316832449355585661624078529423765167746197254659436095669777082139291625222164250778693726809279127727949780707482566775478897982133943029773559333478326891315756663514237580617963372555264150864867983065638760048071891653237325474198538545404797228569222639040514838182000999811981561246311551649649895287291665098187014456182825121189241501078679137495705970182015442786904980747175908291111756827536935352963995996570175750693393345985092513416572971349876048229447961318083594488100470273692258493571316854661449712383409093559592183143428974783763008446752364104169952510888986742932924173859267935007242169915150652501249975806343038363123701187234975232231796632382659481343097885812163274286920958413622116703423257952131816148963301926739807869783076529544988597570100051533191571986055930001860468068696506060180723834832987739899034610899470752852939707605748980174937196271500915620366171994923218872977833042143332926321346874936421506504099987499146574755524925985983779092814291538249679727803636002999133688079708577531639535793000392207096122492392976980813084944223311352715812907210759516383232731951965377238391659988452496046000494589020796404046808811525496840704363582655951545589500655936861096270878013692228672046380114664916512543001016984071082973200837725447415830108552945528093553979612819848076663050498494786524056830899593618786035921131653710259842443460381251819306047855398944910416427994323266112513877759424803772927186744243696542477276735022294229759935495278243679023921533493096942011541674577639429526892469104300523594089881543348555988744801199044987662764026065605582180796847504815692839328430112880669028803900409454781717991457618011394380345481659497892174182612967609734571408914485468764582801845330378695302440075166838075890790274873752534875503406781278540976995938851811880699134038297790919121777488902113414001466546396117594758173760650500180625183601327408178284323613458591362184988602660444874518035049462892203795442782829130576168005169659317531873526595423933144036174650964298919436154304082609324808471036043171756105082401863023025209666769620097737189968779630471423037630649267605182727193194838226916885344734170318570862563929280910252049528568431156039286797351268116255143275263063667912130576800248727746204911261150842672730574952715508725675799111772964786976285191592793067110298572950755417220165064541004964817377185945591108926226520282534308037326869817157609028660846874249684304546115651340061662821231110721844087320148284815517464949835967198396568703339083077597487864272390798548927262694436746723955110139750442512866330127558290585846615927103415524720409525866768553246771286195055640718667620148977006667572559935321046090230296836683153963671493275326588188647643386790277749182423115952972000185642298625317601333742289329391495366459284180405998519918462465410236791238550547838143212357156484633132688949044004362348321411040584164866090813507081575022727091217105997445704338310919044611400289263529002941064512272151110250333991573694205485780335886743057073816338913208217400421708628897550871302888876058916160850435466047561452138202518945121681191877160331555009214335900541740782280783819503649475550530566360879247489627770583211448493000142226778081263406765046162826041651079437265662849490355665123132459935578853222446256763318795539391785374844822521057143927661839790150119396089205060175598675600780097739355785791837727292988788058458451088207099253231387927318606541044763491511652655708711798159841908528150568550377792853402314310489701669949603743328784892785757470235611852357662313486309989259906657769932786091407902808334321274360074081091721084388737906173003315495745547642438008899513062643054578468031986476609211106364607442552938035504873374951972046901619636829638308453833604862266609473227524939903152374939575013331045372350934436633172740828040107940461693346859144066676608127986477312079595436996896771255089410586760774139123811684560094852855778581395551805395234888536604109656818064923782019061294401815205230859826877573053119013131677361097590851390685629766511263918688648472347518260352263528994768905150137409151722584652167909159740797595115510118395011280763641873740261865513334548041385805436279882097499793145410436944358197834969777731165046738805070261965865256774031838906255742670444771622578513954387504317525269451978854227346605611040639305619295837556293198895899612576883185948919271438491681967144561524078475596790463228504777384527881532975408184484797652458466235360943125611560612833780773766160666602950899516308544977095701337194187337398191822686211830415014501423648153324840629447660235719772949171963141170209424151886545445315086543037259744831409587167404725819341622270283370282701380587425274534641641077884134712224485790607358859917627398718772077524524353946976138541377769892890623450475445445273282601640703156907395317837224109966280468596613460113661467864700222461737647474440859152595327557847770278153243309827032844094926045864685370131789047580386484185739343982354924386734493489701394104523917241343469875196391265459730137569564783074589821454239926483951863753823942731353760888913033509917551868930486500061766750487991987345058497032637670587033835279617432641173025851536923169952181760393683564395396438613251193347521492495735133673645347924066118321537918882949568582487331186619721967377719953998702008012565458352102950791608373583381700450186973887912935944340449150489958216216228868525348067778007460447792963567634021352201601201037402499473483793237479563089375026801698669945498722812247179235311944829578413101263456987833655718800541596920435360649245669028992770715820204877961421990568758207125389743949385629253117852217757568573565187982498229336580928460078878201105229719481071602080053689180676829342065744696214292067021959621998175588362723835835186365933160015397545492958839101494039590000019828610475229793106345033400976909297507262455771324020675254208266865854629496318442793732853550085061967238635358210081518286179494131937655094164990084567795539054404058727544921978441388612636598103667502113235598508022226251694857571620034341882165808647066210665694226711275643189832099668690981760173036292719213679229607042090973463665884036200207893269584870037544626332103579332496487333929715608638467283663807924609558968841312548752707514902048039870445701841325471004059199348477471739475063041414936596758462991241849953142277110449768267682792990076681108897302109094427541288596175907189651213449885619152890101943207069778104482944408289800746636393092499565023330844506579541660108890291467048175671551331103684211331144715454765721076493550353530856349913076621434285876282549840963323424280411099454029795180233825693139142844112538146521451987357354898893295761388847824433205200708842998608401652030850326805110074277904373141652062144417616700826241491266307669823590021282407669541055799100470844748103154396175338706670740310736605694146205592372822926656422955670977209092066351247207810917960862091752073133365946268083230263618154942383765403250215098611610396889734614529072640532533492893814252853234016050703715097180145595440408420127944423430685646521211880192590859619734686151582086545626629978487925655261083693404452971228698657623245478457567098159497303297416519143798876477793807119123615085022855917642909596646162936094297245165845445250543248532739499983422772572599204303907387798588296382694577604073019194248211079847617260687247080089198581519298849014584305513595223257239685394135691391455385910002020148387656744866856233273943374321872317495078855824418112279594654296565746560965477173081972839733706837574676239311867493116511366440046701340276746055971319733156836772378538943003943000514992355109395835888176352059760004121276953958234665095459059073135703394891826814022811925707112810465999798860958171483842572813218827899911195700961655332458431191434552527855552365811680811372145838448376837449165090760207424986775173109916285129354230379317297176802277115927234203575745097356834854306997547426171291254065204551401325009629624024295875820597689562115355785576081923072569202338525438360001874884035044113996592115391562866195495561690711445729282546955187088436600897625320605707012004375052384008125794540664552934512544521931658251885233940618857826836250669754459850381891580749404550451241028756036609066508641626746083957900751803419794352541756255767740490261369966565287361688532070782358960820099172594045316537826444829169145950093058822200999138733787161705765634947078223935626309261645318319176672241096531477437631415935787249741455679551860453747441304150432179848479929965608947422567252449502951752549683279579758069398042495093768667890832798415860296609400514119897319348643782092021406917605997920521387938576146729895275934910799002234604433711013356785270469401925141763553452944018258491688991893255613989155222206049738228148861564935196520025769633134351417389237522859514968132709390679449918180520281176968213980878094106317849890809072705519652685234495938850918093457539973707446814394003078242852791468831727137606460359244685199979371181595598291065240456541187385326872441274555271853031267741461559080195297348099924023419712798637316130315019316547598859453468887707682431613704041033285906605462093390523109399596477295240812492454013790830434479590187380678071853304837165714926573570826397876065537538147004202407604347876049859366936131671909352897001747526720055814230682147513183261419935040644855195014122309083992731321086838212645999877655553079464310478950305345011739332517479292771920754388923170941885082287477412995759097731682778782889678998519585705266890240138077828663633150203705429086551156878021909033712661468493714877265536274144716199000958573148816803705261482681805925877207611457619230499176345462367690944385254466510121687754842647478869246873785420312888050777975788694514683843933568740597233995141551298642303482363795727903758414823939012835039968634263430728123468560795509199341174189306068843951735241282373021614674622485757685985950312449408240970853713287016642979847781811018819921831764240507633210829147357364952687354781970252866501554641834172092507054690482031152633320976467723918164939353703208436537155427440809821265094026312895326662426223382026458094725387939636229082409831803119641984684300768808089466740989469758091615565056824125188710201969912242638220807436662265510993725332470460115468106508199012897880365889023172492042831922214943388023625849887241129562416344071397493452531338531605510629426609315945140077815687332762590348443812977627278954291751825108193525562034053268394067534072285556978635751603604621440865240169842985331141614162739231419584159720241841970702821897384316523086742685730196842289508674245152000506626729821406262740105952383442891948284148171098443214185240099654074133970098950484262844532484348199482691438585260030852302673126569472440061994837578161651628631372308512851541251827072430628315655369935827024650885338388777793135811475978336447607406882121514124813320681752261238562784465312040387460787210847962442376363127782711939064198132519575327341436002819733781630509945015986348331174106058617793624790310989598232421534026728065319608533180977826048043288552903592456042790433750216466508296342978128678223139278130301268812678426045294408247601331118273009059596981916781045069237066395963891542640275661749841532119737379984602500868005419455547621465504078238078883189002706943658212844420332872536725721648720970631303200670342023282041506825404883819118504577658135214385789139458380847253026283223190916378629489402247851501208880497968076937654790653327294756953159821542220929355168239915165622158104465053611815506005421540250759040376319043214687065116753945169998133138787007074039234379887289670690990125559784130575457508959975856230512870677255357983206561958726234399369688019780240430009953891160701887083025916001879042891930387191225314570995784020912048399946518736071404260638347594854605531909773656815189629468182180268676858694871445702177471626156058969138106649685234535885836932227770302455600962655813722624035659708607641956891722540663527634851284097785032941698945697694740819422740900445618039539796452081650034224642375981281704021909820325970899264304354875842757203608660428398523761049770608710016675602966623873196026197808714880535944815110843479472503706863141028170775551312726115202220528992302866693675577403552808295400926986492191892224042623161651019769393065235672246345321991206394224822184678730872019614919432706186732052007011382080236060031625089990233663352223886963182370721219066863038873779985090253249701232438937772087654655561183117640992461936495858226672630632122419867657616594567919693777904997502626578407521292039555719965776623949042396227648325736457628168796228239208038546455583483334637712400762816676800086723912935202718583651088145114751915767098999115079614951192486262254016240085498933521052974963110128732074612177588502304895481434993869709938454252268236812753125555258384522266372802178678255279765639244014385287276147317202046716142785223034052106121330346970565623009813518300484778088741379385521710215331041073271599518849106386825341953242134324061137600069841057228302794740812997801655941518278914393624365860652615311894430535029502521164662368804747642499718290442666910064112126892421234200650549871300459453614204306534468821416483962457717252543796636234916483333079820096944376243689294406078793347784748080513564912304284024970956645422088896817749368618035942320347764957596529209633033462988954277345110676289418622354779984064904001931225872712918206292467270796235992931995607357531776452370921698714850657893154556138692005848621245719916715540139346052008660378034763143441404189644040457478689889144568962714442055946397806695003930185472820619644602429133033305151461079093484619471728950412206368953701477681361447406212320172876960047969256492846954585760484075974999546980488566153676824765084926322673754794386278139327896494826679951476616794081708263451747292709824295038310142467961925749483036370075229279340168567698563140239337780627572074962644350678847657674941576449925106873590788065692141365230386575140055489657104625296638863485646732293215346081894993743312314166872319735236458679801639798047895681778772165312919845628347044766093339933790562704297483520920838422464774629822603880644884776701423073449118989341761194453374941638612871311032240263936589587684286131413519871422761481867942672004739760904678527123873304938721872176546264357230846502661176289574889905042376359488890842465034514048861017984793572432342134739732638070078131836867960252528622194241118978606726987073359186032093269726522139718142416606002346530147751453627281468971190104648325038406047482243143523207875567959051890936779112721777024740775250556726372483496579424489031958143523612777242256800536430918989913987795791407892496245450004037186960271761204662355392294088705642321986537960280684798562009915546185706067512141665826600086266077316293575225971599832120779512116988254086657006141209483153522700647419513508125372061003553668221062989386301413268300720350363599393782116990957407491734659362755945988631334571830528859870087713712690224015307725122796071080605943265148274380872345080940070604936242156473739765994291059008637402063500292736338132065321680762919425072526643230225269561705507759444645007057373891334353949870916673288335127456135740680480342782493754600162100586911700645815713516762720865052712522427614240618003687951551843699718465671658906742848833402281164473999165624270841764255395155949954364883570193919414722332305711113762011670242592310105387428142097005525908583100956546467582344143940608845435061959957795195595805964949330304934148015078365351986716299142223516092183873697837307466050504168917651979657434886738450854283443125965930096143391824731656082749831414900634067325483017657842266141238056417161245477793562792339503818757867959407061634096771110535438893772621990148842894328488461291427076424683836361428088881132319368071948274139323395628071363270901396977645873361516554664892748749077623768160764086107764971167767925946061902161299152673101889409588651923399751748004457386302234270848141294269142312302882360812804424304762983788844064552654638460283416642631507138871726193075902738183943357806920009251707504927458049005133290329428117807948575695273523561034380301698181062942422625988692684356414421986887936333649105828761115435522412880493756015112357385420016420351802356901183489328625223836785959413958886936974868599699921050286831710249983007621937286677860466767548192210566386995944913357474984364342604889925123770400546520323768179916475181774049144583161048910997818298174960288155404562635625413699029071185340702036631500914566878768053103764169013403697029169814080855629277333375539542561159596027991675209619229113657404097520032065395835026030623140141192079412848275231703802262074319163120413226325530987982085596163262630083530597617739167954972082554948424161440485584010782254496584174661694117945760994581745415330611851340366081279489628133402627778342017728806192756296189176542642561258804907841793299902369543977440429305341819556227251630480610626736605481545136989553433602342634474641059146115222801700116816452095317578714278538775828411707069773339561637483455632085148062401701644538911167512974584932635382036241732347023592257736669927653279678607386240069863994913626881689166225859374221384914009577337038701080166922009699114654221783289992050247844962432982033938517090246255263997288067238843456320635635285048375393703208304832384315744555575366881119560610912244288663669984849275373827800914069650494613378122012828435995432430506958229308493610081684341673267725392769232814646243652346646091686693902061923754766434107658075567362368915572057222446014971817079010992976410122949566633792150452541115284513007739248290747538273355976844351407366027300088514562334240175126024864141483748295309143355698589329182292741871336493364898147133698702385442650989553129590306811236526225785218976845155450033571868510181571397174535793074965937667212341425648838932762879516140490933404618606105820038311178005409474877676185957377177575537399956982792718541185266888643095138856598420490476369975994502333165262130762311190735975412495758299743189249986139572592026159571988100676630819113761845637630852218599230704853170468649835333457450951762696161563343652679608451575520364622667057405562727298150190559598716281923211824914436646104575173153312149839051241133777268690271382785184786636127928829550140890946149962137748761250892795030566632498926965012785393973661887501958538559685373734868422312556066330912608949643675158427303834754206347251896337366604877851383780654811435703942579053890069380040130635027085283104514617942121675960076453168806338202891425368727925507305176882959692442206915718170665491240985123585938287136855137874584818912644591771131772106869756607236291101152972185816390320588769007253881801840752280255638653930009083715203292602368511883049270384816645629199329953095804510023248352225301867945686367762735460891967327872485949051600663011984444124772575525977778158990209440475524538034671509999034723106461348140556227357751973564243893516844625288736873476772997492945637615718055403733399804660867340934046134862636898905446457370660533883643076917346909446748425394074526687816399330367120520269004834610236321893534122972478231899244502029053720246109123961876321343565410527160568501433522323212102882334653405280829253478214872988304097812640140859916907153637542079341978058100759732925909267133823714416283167966103359121780447996084282720323612475445058075186225995332483990248440066452286493014895985926670326232394594583504394886822987794758409373740600456655477900901053338537735878330836345154394858072608546712348048675614555553802327718482194079472976686403664328301547709821417802896870266105370040853305707191775306414915216330446172958380230263112361724033218292159472373203045622399791375592493626855417353678514798944577697032963259906056079202212703288329919118559955748924382295189180838337315493778595490853221275753416422786369071301502147100997768155592995072250207915001529527379662189970530284766400813854963709363916580095465094772962638713124030401764171663944301017077844175022775226377655758070649210596043498281364591178474395492421604542661203934602943806498828441380719373764688221303829946863360077485115908036804019886928736357860534360587243387640005850714830663947984652699250430384317392064980347833597081663004240017838477317198809315271108731240210084690268805844029962508063446928264720208841383354159497970714401828847691377955420773283529009966545896365836022953436858381280364328035381224878000181421363055174823682999721882121967810657740177302469453161871951189919030362443572619663819510837729647098867585329282821406414364042740627727582714741811569951930343411602597925082742945904267210165570177115490831873282514057482935972940548994405076512804282115859798204023966112433541292781532948162314911931600493722687186178785164712896607050318372031042940928821148766504164151375021545436377442004244420220626225054325606240478770526134096937670897748762961856086795757547740195605482009530501490807587953703400308063885974373081168602192046314118504445251227521335560982466563361108888970694034779097752238046120348029834734716794384810191838105373514959628888185044374357942543545926297335991779227200931670707427708362765742197213216784392947847656208031963731315774008802223070814848159175143210403037994757013435097348179156731331990607647086929736737528084671767800761867833492978040978059052116462215023304006204481334724639461795718090715913964264220699854233651159758295103897207352259727912805122577223767415557768769213304282934806731165513355272385300579812339811357168232385567418501687127250104838079024124176016695773964236907806493389280506431490043125766058924596042341583761820071545944169014450388172854609994308895986184320862005840408937728939275007161420785899589019918019598450026254516802908930350303612308734797131012135842134060097614316222542570345127847266377532500124470846814702705354421868464849208308189165273411406955037625264860276154799012098444878505404836346013370362747023319332066599041277054488951325363224307593802869839354567383904709280831646893328643565543014671758136088200483577037817205751317586867382723508045199355448644200427929287977863848158458347710049590811561636035755443910748537068580399158090075936332135958606427444264217928385992826759594229775695586616297516920341580117621236265179109638823625154990171944215366052057873482030121462312951523115275597289122906063321781184041164424182515200527439456034562206724938906934540521375315783793467257029901241300541258189815112420525931801068804175013401347792794482973844219755649156590104236505851005194411556062012871426559505307193475160486736563406448734842070727316708860791324277345438638018492257945837589755747425368203232632648953820948316395554522453350634432818767162673208659800537866064692056323401425686199395416221101540325242494084168262381695972021227275540137498444549626921413779939972405282751498227274901499869886422900938576180114410704701185338500491393211334433652168603406071135222749806645885494648790628588212276976870693221929447885088382126318117406421292778468919735835478424003781747204227451509033172377068268319342961011514009252108594342876697696048703531673826921663865527426395747758380735058074761234542844028707923763919540594667695482699066790533248717406526092359935816235955929054443659362372981675078266998273062694866372062871869395586249736109497969528290814930058490677869502371498284319249969987532481915895263212110946015061054447093470158607139514690854559223423809198130527560869748398606852144165907145566916102644098440527518952935328118967161250285665012535823066056322709271682827772863080162136357074459794852896809449151578161353385995730310868801359748796711990653475917204553285382992104300912265600327476187366962892807649927873407424136864276380898228248696431373853640716561902171324108696697241303149837076616321214629214976824614897966445395112442265877864847423997025898756242830841822839516250482940772269705203369840991648599618708058978140719887842050272549468505165081963490988549625183164340117698803988445843758035538190211474516556528812984080026608159834385801627524368388309036441839596034907451000630028147839944818430562308305325033168936522178944455991637940581139841643707007969069440050437004255157758363910758766553235611981088990212695811134734478422377448737075800222665404804655729536106285417259198686927236383027875231941010930898117221350401050334362184565854790948645974293782798609761178672482876319760625568503249534515121553218641787553158999483121823815937353021102235260951693304384332163536544914210537263674082766410784163095412883101652265064396192470591931182537457000977611057390912645956264063345943309342281501770775088120647206035743808873643948849044441008134721307811286830892081496666140603499298965715331987563154948923121667933943136043101688047262489589559675691368745551254531014974790355644903799223549893959168876633856613448854619977896023515340780917977799284073135130216148793106661660166082551179056531325381349702906746287258933042204486568706436721903740408846809163974202316768903108068977621193526267949190984806839429114826083436583445991059479266270638344799357846458515639222374995309273585848690459871728573894465550713728040133202159895977634507928448706206259054808482678114358163388402282497690693171115668740477340782874802085796151325104470719333773260246165670088252863522461215502506934148867682588016570684764099848622430276228776933279068920069284049620966376011977067701683525603740964522178754341379973462632674763172935778999144689043762911664864580934795926431237049951857158393128893235235186875979434432165814113989862907038260212244073109777219211179195159329816003301800646502509464601712742848257688099851252702384717107122206451012260303402478527963526425805717385881107653707995586330832662457589464295454323980754799623232229973182480603515907089648206159656623285057907649645293355870417784188010680691225760350080432191415310069758202510126065082744023353143263612712182333876963680792165368869121020341015839146072191446331749643299955541502925933072791754931768918033366736942863878115571978089951996865879296167256917859357333371844052494954567142581385771949929153358546222719195080670867331524044838411176554846630183710796619242468538503979165465501804189300094089748590182991121413219817462633741250861723639968396213146633995980540435997099589835694068945409639915717967224681434676806683092993684837087920171243752852648163935805302607888127196907321333501491544462205579432678265953043674985256894444750229632366826214793337128951964457172990495451861633778689153509779236131415506718736990488713450222588044384503691010146905435827657281622628406077124296965590053018765249158599685391984634503457949809664337268691670708863574976257475579997651644371009907488218102951489996749103061626341584584257707210446796525433264687920583288789215279426820258113238542690332076811578773926287179154853665222552712739660539748544963000045320284029044089439245018820977139002278222843939847824228379757853154000981838937359088766583415865882340554672791063210403056465232580880481954471251519725958814951368908575240126014833362365255475957508894415248488682959080276790788245702984815902739727370577115709800504411772561545017807471535045325455309336719694609545446507485111164954246102098595385426580775980483161300644028681803798926436280978192769887796480764488603084721364329659867384993675628945412641899981067288460091380150242462067432463513311793856629377106305232495465768004048812125628824323360776285693372347551589969631860448980296153328214833995091090519362952364107764617337533818624462691512014474955062171212114452140440872361264756249580830350585508121940638162409888226121246193017532687521169342476730789067091178848372060128073980327276454450951588181905556753214862404830412666330194534891787203956324111143131248800664551000432439929621748384920401197708736405582152944520079091469596756381479086469699937467233247009350426227548999542296538125167318806200849672532982894459012791897988561039287272931481650580104725669884249992098052979485876309922745603546086841933628016363748652434755844449139192075873161750007574539648855417823945925608167179643957682231394724741900260389043151878622794496002539773814052264939763806130866107525622966933682893785117474047984734960350425152407170806750595116207111482017161049405072804133501685520680897139387342679627573144193857114045859135434439257099209581822750572598530373352484616003476990014950643575854342329063110675295370949595556300081112549629098925051271275088267126012486077552880838836507349365862521506953675111858215116269693359544075464187134115342340739309808473013845506741381087098311647134178195772275550522666000307122383722369724080105235808758039084743067718786390043805663465184680782776185069202606501717843062390689604027403566174197977828928062808450584040489547135106299541523466673517534659132424261181277815329143088315986209181810907298273841493925731201518257485990982702721793631970750568706757537814879148004726017674378751054269341801969961112849950044662889549222087358786657104893355177938545446388044315512460363398284828494877399149191038166319653955356954021704476675591394892878480299723968129535645498007063129192454701375184991656926895521241835286140965385064487452260235416388457122730367109706231108330594874513188976403376410912560311756480122107732437514195458142522879887640748780452117191773368321916157723865677607432373661799907658216981561810692382623037688778001452980555079008209552592712199787271455308033479664728965998740176355654788704870851902100549462541437369262470434806086907691654334439286270555854869057441171001202534099644887974973537481454401950482013444095222823121188332892928021158531544580028996286330380135521249305172074485328325112165099103532512007180840793031650686192898300436504543793042353287220676478208636705828668958882533603931185744375643466193149785831040399470133247239499209571978791172086038231199320934214942498687873070180372162951832406581736335180183454892921084349771370390470952057218388318587136306460672555037571403684242559358387162854383830193965345864465711988804777942690632279484122938519479444234757576783016017233723066634632975907323621863280434767111217537746668993157505603557594315691985114341832818340194583398063893463612638070973052745260637654718625166831849809136190907368143914825859350242595849379573406360181439320317977452775368144156738238556672314073699743879406755598908519399360014783893253561044367713824593525885402021135241873245784733311451242502884137451145851733723906518576558410590799975766049969587109247340988866222800410932454702204426670903605094402017568116900724549971807579442734111095309272767266680907057741328003449352490212942762707952963482685899128034376286056244397704538179732375098323150955724627996326304578706461957785580372853794048302700468515583040909189042339878970148804102138815846507082612683732063913621609085110045939222231109537875191958064237611551370368330681557615009863024791500529516843282651098438444276557220456682458690234309229705262378318033725533494957278566816122971640410863990028712424256137917853661821592497587667198037982900098581626148219654252655783375247254827805306477310930106631103046315222488560085313924448091060844585704390495814129709327126973515097175306563931937964498153009724876496993547423044425284164787605362730236144952748801658374793019584640360937400937826927282377110826108545368176863796068413959056096014514605027099696595218277874512750709892849227156349857013198070686402807501543427137800057627536378492646654868917138118639551068299152503496985378914735373317355393034929326290506142848380983210309931404003471967371325422067812341230233604327821584049565031281402873648412354594102493482765945314705697235959948799842745767095341568602012016715354565513055106209946422177427265210452257656894089132610652420163174476055668728485362561799404573146410476213274100081189917863452841981727067521067511381243866388981001303878437239050185299659579479403799143173341933076534805559570322465763898286758239266706516906431078367235166051619170802839578447292328885880483177204576604731644680384934893035995801134503217428085007550349109540646854525291064062132014786262747463365705905363640107561820694881409765366565820418895263832055117058989658102679667824492014059119798332010938587907233956749109258441536029237955455811001886608417499341167490856194983719715534702974273310162904575514655589742424437411562468446508934494539708621503191733893385680791780826748759531040406699895023825403429549789521560691728125685756176680124884959046583118743703419697660973911240681080610549253909029746818155431756967393358342249098954653863218832141334001081699275549315969988669999662277904614463808422418593677056082313421873405949641588261976079400471728897395520097042083257708743789116987206251315289792887203197170851051771138162892186426343674652615992077587259393185006700433522003311187802348239997240824593397936651087651427987716968661840698729299218400788460491203965102016566490369197633493837433742216944418439220144647797679640833071533885676211346742238356823479873592828816549970714386936374358900053675839841065495869947247563260996535235336344948675522865276146767981358024593711310360329920537000043354094641663035102774477536353553214999916682063556786429367919274483247864737307345328246886989322623468209251557283273386897649547589683824394511153773341725979745665095997114830710490298968717208595466064564428168108555435404724989373499919162553070608093682581180981797851825088757524786874242179472413578249532420769967510056828012633943840108495862616226810982445565785812562887325118490737776000435934152929359973069793536111285210651360688328119671274791804409790537397026046263535308992968195784211279030389347391484509796799139083817762985177610466602763393992703045679968783876553390907655162800546142838600251852319783290770062489155186605613436107207914830175049922980780752479432216965957554518156701595408561275934714673261333587748202765302125362998588740164436291205775877307037573052974979494011269250529008787879105539368402747258420903226294247121528501046576975015589524345644442867312577512977687480759575944972311463716554294569750271536909992896193206543511962059249147557064035702327656517078183352856915302810374415458219449284731147446987894749216179066268864684974801027265266873385841033062659434256207045972340765986816355781489298106912407305997583121668912357327891004705650990436587666080646740016058822077228737878745877572292108097968850595630400428144530351659709156739683408401243214247517214050943445256991668667587778477596695805342662876341549044471622789619937933603672051829842911693909572359532096951647048737274940247794457410952209433308497464789337338017660938603395948389774059952902690419871186970890710527553718928220746997014045662879424169310007148400847602269206051405351307988745108446549104575813842389458406032378262004882146465528097176693397794377876391383385189501418011499063910635883341499904061058020283365966241580628133616079844220767142129942257247143422385691010567850574449678590715396244686581740228588037828831536190839736274892635640223101639766038862587186730823030874144154447295162925917016426125524577850900953325619610627809415682681314309333630095375520993458132145112302752930262484462851155534833251463743973617683773683644622198102209620266871923322273552033533114106819274701104891130516883438630326207220087576739658528987869563197459271300981166700089273681998117777818101691854993055001110350455869340269308903634360805242771697649753550652377470542473665865760792476834302617940693368862194291159283507753361492799162220447422729692706267654551649873301505045986672165706304171974527331739863787608296908961705473923607437439088152937117272717109609318591024949012741011245450409108842638900568493277421767649584241548767951327686316169897137619563272916700902574421086321891782814733848778547844757561856897028081459026061894403465425026265615461813421168368299450394924383241289046514281285076895111003617149661959199254119752705717512318177396854081767508381516210821805504031606653656367964556913746649279878169113414954567495601330939654778946995955464861122307281717147226752777892991556324235397695387681387789640877245939163853740240401564092117060973629337815410977781575573543852005207961621034040885406416658480714057748794213536914168908056386970831891018470168261424499016399993616813326123731498837389195511561896730374208404953979327933185721658527516409264392902913975840074201971418569959849566282197285795273803891851430762672237463575857790431571818304112983868119337947604405096368542414929905512780776237364299527789920984847475264807503544759624724565150664661824571854811871330026900072250188906308076012842716986449079544706468326260121930752393583335507258412967009509626824329842354635245372079073589068285888669883727089795510394325838493068136800430078233896073654790420520521887087513876433167651681566690058573970733038621666846091202295247227095514314883630894154393629711996937608376435877052246308637917107607651666928570153513032181052841723757096005499827848672810175077491721867049521330543126440201188091814894901295123099349653014842475498345028300274221192473231249011552243522420750068790442218591406949077336762468200127560182748134224905755205903292009502974566053449512663137257026542733745682645961791045553344374045652254276887102289290902485403276380007785696985953406430454534244470047263039137586087052353266800708002835942637204644031587779231614594333793828175480161688298124567171972099023466235834905510288698293330833767254883801783714767464559390115673699712910303319225832902109873819431134891970783699021629159473832409963414217862238212404971078170340547309887141474648375503060217605886118670690886257497095323994072338471875141308661439727137606570980038230905489425137984221909614374818223913286195164779174173335988808741049110018731344296585420429747519544892935613335314053134210654292360726569362824915670134654825157564291711942535215698817686513047257714146023497404353369103492400236601603311221404418781245392534299613870317595502645499847168104321449958407103130938822877830706930132054587280876274668377152438762126065781282702994652163338975317821553760179060452058805166829574061563413830803609407922399604689335000814065713299589957989460032773387670299026174351992961144237413950431089273683191407689789003514998192608176537070942547824564896147103699887629697931369480554266391077568705324581983597127558723293019299083722772088325137805760720305886213618014186560841975510669408160903247019248716198312386303684565840419486446276248355100473009740713720286985669715589302612487768591872021116707922754186214145555247316382468389813539082113869084165976507019831314652083581423620835050350965448581973110494810113674875143514276309105354676768927255970993467409425185110905853454457505067961755406514433490926401280232181049304933266795773503189073358449460859226623130427446743455675936346369402756409477427598362470874833714407689052090197030913599600587243074388386822022380134109403206893997411954611592885868941261252091585072603745956731489893886124688704797464874380756187726576030166005908665919944868400810047832731655353018282098750821902494609341631005536646647529985755441393166219941534948414454353880099946243039870072886548426460728434553923610684564280431503728925828353987848683476193317111831547121672528720902204596916030954640050480091179303918362344989235975801015614000295311879718970856402545948592022047439713191329987119106298578278678601399890624911288598543541471272225827874517379423274072401803913182087014815594627132434805732716157883125501399174605880104443715563648785918637248600098319069084305115083959731109539257322720312739743469416083488556341017359576870910125852106328657996237694352251528248780462858011837457455459405163641632778093905143396004048530075322032479744290969194704679691301314993056080021976928216577605325637955994869274797826386213168613634091554632940195694498038435881086406421763437527171548576780537817791598619417042404046791589807222571778832137150956699614070720230342867132382071999348260511320778237077441823308833722227051451509890685914381036909403323844260334190222400613944022239755701774696200324922687136764224224541087733110646915038226113123645014276802787726867613291493169828460892732971600392487095484993076020444169081195096718751645406996176182441489386490826605388086943745775770955236316008537205665219793156741320748446517460874506214752817995097822658407225788755535722053996754701520013570745624793747762847516799753306851383142046190778277295043867659382765791679118130903817236514593462524712676513496837286329613633074394185907053515306995208079779073602302195581743860128079019675518871603605637438912056295330689439586013601732455854670250613222625693499853199847625776282121954915531738148877669784544513574246209221870887863955241252031941872397179711031421317979535196665977837720564260292204606303008005556164263003582784047832787744169680950274467359295595935679073619036985383353472877152667613865832202801317136401960737054278985684503800562554149937234669375729637908557687633163517499893521611389475781909571865209026591011648668421549478030838834687322945769777861368289940520145963336837613246912214003131299477905793756842718702161726725944094402796174959248127128493443962156542587720881709049308613492256937645709319098161562495051726011436542821713119097162916272287252838226151606993929795205832665469888552991602623650141335887039358750068560424863830961545010681205102683833848130036236213190356553318993271456756925127796506960299981516532457585523514697575274478585664855120452187541028629407644751321266392709535592715962799542574522548986110195476269007420471636414704949908900437835267133142902110924766995021981081723927193256012781915228641843963090931567583081930041634282480404272798691685928348682804735673591974000912465394824284173053893333999991750442751217989603617134894879074039227631127082094719931451227586621437691551109679348644719611799293225586482681726184184437095949419476407533758215218759949427705274475807562361649411283628057986519740292080635870755034557229361953819937443195561005252956971674854035764791465729775924229521308121171000863258436345073204443188371347807012657070522709525817334818502779564790541327979405739295350757715312760138575167898491716647195965337789211321009773570770245968535474472575474664100925460987601137452984871151112448180248608983034732432550387644865124234500486238310376745713841284816707639747385794513342235741494162365520301523905776777436478935905977195905364612054918919405057638402803900342098326981642132084424036168117469881779603309950693889047175181328783381551997998702134545546390270689905825198398930704530968022132120275952793854244645546174894158440703570346068922301707269801976307114427196566859854707118383410915375875228033404232883937744546398484526911592882577009867148995930201138759214675944839119991662365375392748422992674554631742740968432211371542529530117652025389622247712582452533252471467767741475990783066064998959363138280395828940835334866899076066579896953646147686973446570922063941228100720654077623025201182378097517794471948592899227397010237838712597388718064719020542005039314661799735973588732618681009274835011027273142530262092064274248404569100035646717843634365941268211829358271749519107518688709258432506505105734472075561665155968844268260623518811795072674510685833668895715263705265144354353608975737741558312203997028660044478025792653370270268507058235770983153465055456185326163323367704250009948647089052072011652375257647362367772162889708049058185791488794472671795510793259575874416259324361571529368558783346552877247473725960018378542115748215739035496307634193856811487498761095818065668522531574982409657591716454113863180782747474623077736490329376944690606889307323989579493086595884700196278813564525998450545180244461079846171716206137523813363971917561957686053485595514008754175890896036808703646432268707989519521712305646979976799223306505970289234985491104517450395950840281778764007230382360479107239799011535315083589734657898303187608352220618017289309531848007075624466721297672189718536181668439293111781828724939573671865396367672395545705851027006553577826069778242758791805770486040706027774089836446226480638926188612047684719648567391961948946635745290113830877816645420179733619430989208119738222573632257374184025187119967408625485509278911060521873126522798887387611069008534158441245085983267702798569564569995583933450385468717343261869749190679533791875414230401572702713593013537665100625063613048400263992803056837878417967365310483168599709049291272185098298732334305851289638488362766997419876962242411943339433882624038325048887905986168400830803610119655551946823585875357893856434204096748162703107960243871094728749450914870606026477302381099593784004643658761105410249210560647698427264073819310783144024015982590171005277022772883528023001412985809552550112473157688481775089831620058433388561884797156420480096981388220979607005110985404720291332066963308948731088215518289855242281536109639426936573355736915317251397795389185044458246568860486414372678537410477964251155009320719687755230514283090804364390787576559366506017251022255066068690066334336575982572271999127158396560391453774309161115442881711262200285657799080561960160080139220634891213467605025882864048942557768010922637011872154543791962043504295248896970769635455786799517285002774581746165286221904437008782957639561610819322098716942308024199995673931114879954907633453978084659694957950478771952018400806950951091636997075850261503539868429207873121602732838483980306236854029794198060339081269426457617219564401948785969481696233156016023573020028242937239237032118703878850700201529367121233050613141393362114841268938003737940869474599435014742732080353903714822842997602150238808131161358831223292327351670845008382926799334666477724372805619901657627941397117827553481449363501518941026761615708880298660956980650721162433052175340066040266441882258680312766693879405192821953165917202620214936333203917657684285392552802252162041483062699677406007982538317290589647284461858727595449351413997534562600590048672547592974658717864593436633043389382399878056364095480564760419779207788081925028237031724283385688192659668822781915281363489538772489212024642634365641887356567781344033586826337919998266018587186384546610124058267682586808719226150477472718324939058258658298871466551604266440605910588078107974775876788530059105153790726920127418027351986285531094243401251348236192566893326527152109207985606812311813435983527303438389290143999485783662913636498529168387472223545740733581554281062494011102682550968397247448918478702568573504861139759060029214055255309440397224186652838168576740390146135129427237223570952265581395869406444706202909512825666922720659294584590587188464766460773653341789165482339264105852203053137496681118148738140837659775111295641186750035061620842395599310837549207222321054379792045768548806836121416886930939060299692248967336101628927382204448717467919056375451984996423936371435220004392075898331507887938232700381335027952150142483911768884460800981483407721853170641604974402493360965576547554824221945966693351019109781177543902694377734192404473852134987552183252118196649683339966386333538225325654779691530917732724993375856187863897539905719142268011369675824840040099794650016925621977414863653642721211484072154243377342378589558182522502268579435528126101414737960552375425265690280696652060019373946185410436780575495399765954986153098784996931008532584079380572036086198306541177767097291651248929741303135118313624713474191476245761457532864960473768730810275483204510437306578835171782309314157673995388619412274012140801137893954227650449252110643326075526144223270406401962603761043739073811013060747577740442520742858871594086128987156954841804557309152204703976753296994836208157244582338242956882593589227788513100292751945060649875113890778832975029621309239274648970445070336871919329258066003955780918642026474861260732515138385207949212153317836087899261681424585840136859452388980330246427846428984893757395628430199905780350313786928046963468165979700474889569532752401212818686178392292710494766742398948240547865621544243476792863807000474431093827476467901099848430067700619038362206181161692481485392481551830719635174645802856496466291353532967279093320312556646182177292350097008060549934772879268148461569471579389884872154991694183516388857375433973298157106134765413023765345165063138377332145541321758689732803142592756927688635990996448704221364161558707142146412833221235781547222141767347279410376923490719290600449980517495799023641956440131301416066399110576963788819216186200953563957605540602708202919302131431178688190489824480233751011904154312086878535159983583217693625084148616344513701027360912618738999904979048074141276651282372820106100314675804138904846295625743277515290138479265316099139971873285737361005116312916613704337204596082138761953856397090032974336793674988254663169515393941380860269062953075364960875665445170248014904094937874158425442605535659716188841017645576280670344809379260012836437118211815534316238276967883970432511808615703081745402859806986415146848383066967275388441648958091639731468175666532969160236931072868484140053275934751407253942579850132827573677854651106232907890244232943968425131681997684225149924459669656164810255631447097254621528016578568237180624857093208482727002615578693864626330601059275995080642817281605451749415089897636063290372702862023956965377385891270503542888475373491544680730742753477680677834444456161696147676051195549294070267920155963512479903673590437549147387056357711818447324047806399026046142080207317214245865922694368067130676656953797145702397074644872477413010895768390029575751164885794625916859369943589921987370849047960990578947059670875833350347284847342361685561859904866565688805909781726038718498778501627323786721174471345154383964242843767983852051895138437453637041811960375280334802233147011356697171332893234377489552218258183895565272643731955309208306699187157367954398490335450721798849802134225806153864709120940504251796500730046592183404854268484327249592832581845632832760429634200146722051551387893341071221128736157813568954163869077481577597570184573095132562444086508594312140952090388118629138133100686617526459168724336048762916523198558223009922145121237944938595914867816220679479313103923243262913954153067375354697470464231148504206351408224575109941491566815551931947840862894652253745729825562455673397017550451761910625498806670699018011715580895041652144255149168771108096986498078082388432766218548552500550361501132723724435872761688645374410583807864579245353513000798834823046553318306320778634355585198703979772594857701720837692918183235946776782435189598391371951863382347967040328575257835854675976894591799332247979951958566549589050998605139517968883032818710434302880318818003014243416947659544338843003679209641190065654473746028285615710627410575856691673872010359256674619758728618112319235219630530747114584651114426487971791084671182177726939633149423841453765003221193681496771904043957482422944248819271068496441858921343671073182690012418687674809585708815719020010592287890563444791475522175023374965069818946904382842038191992940976173591724296516910686555146978110412009437231308452145848480807068318895782984679771875662223202643894927116739033638708818763964141944832805889396947105556512703970795093309431259432108301535929865163742285926233768260337948373413892170342199047677401191068601074999067744768827156651243382368958557713534793590725100939608227468814948587227931191094433794652270339514895861647217977621646896181813042788871570790191875814652639123718471807077607469563205854012317715121233716953043268306942369010383751902937293235395709805371688592818403020846710980994926391104490746703888644455949263200433901605837975437407117666043801960884266053039103323893840477318318462157085614195848550536484184518274323558084199702488359434462861984616362316023182970570936422851318086606595339421723959507708974529232956998741508662952562236499729055853144398507969338092968902453416536647462797866641163334925999047387724487916379694774493047342400581689451626716839071298849452635483749772049921350720724620917006812244432854255276200424069054270593377351210528940073017019372304588180588940967018754224853484679980120256578214235213502954819526114917321681729158315570046172481100750256647525011464115351191021562148183960949784092016997226715582601788908719559887097642555289291464736275752035320020317432487378917598063214775750553489269744405227624944415250663694444152239273820046720802494757265117790089038851374391583645071970056033806398907437726235119701227981975558731350702293444823289156597856692859191087628158355693347100251308883913631399780031839149842094143315128080022860410077409431017243977328309447309508362731155153694366151125859719900844842832611070707279489043377299312669221824409290646108534831465221344643136847814568616057466917048032574977301543380746765081360122912634030539786685448031940753855445759059125839013739530573833190297380916491205468339044757245730418598520558738972163701894694948218356510580541207160826517853784614906815533033564542717114840864998323897359847082094074477688046146405983195186478732308604948021388360448689647278260848721293170987070497756124673814342232610025157527147379834778178188936473393573070251639118735663448608163141527192577355452505157616020505743684236296083961169310683871308019691002890178080384577290303904996548933918848849699718863161985398141914850132916818447918942299146244465481090268794686155757276751457525822216998494808607333737901789096981159018366041038946678018245167186669136962184123016880823337128380693058908235148079900031857280589611278664795657111295787961529320594262348448967221132740965533087544993420734081083009775016716782371205405570245484693342469116613728788131833375461124393178037311267398644060815626422616492881200597935098054455316534688357016479924850937490399961785785884416265967086891598657331148421864145067722612387077879138490564694516893209697110706171454129754886547775864452239137759877675273918265549803053952703541784149117016284189978786731974315937547759195936553942494746164076278025488955560928280319542142566915072624520833954678343248170949364957175058475702162807761840356828778194646861240951446501117848381959396676118165973358046943000129556175198003138581497730831372046058188214569038078523491211122778073349753142513501908719414657425243055650154654793845428723421556007064110420794340609014788702239920997216206626255706946975186316248950012807020314680550480809186407101559702167838141614953969106869229798006181740679087184600361184304497897559000352545014118681587973381051249522018648099868842520600429502941041530631069698831838746664376886884592002778162743871034447088749984254173783385783701174753373241928906423432427701883030379994694713253522615414381335959154080600006972407885334271004338568516436888822072249372537846584148697582891057761071120010493098829575311885928209375690267161658693441597717820220068755955080514147402625635414332507226478962008247914562124896904686073840457545337886095993006154020980542993605269820496237432163292155951244183872585163750123077526744420804137262590446510064152668689881383238722657390776400775732787507272002947365220029920735155672355604094111153476303944122556674822476251845292618301334074353719992362662480332919274821526195663558179698284047788646304564364590781753215179564747141799625421213910241973133677343717770383691883458477133976332667346352804743380963365972429718635062134385767140538491019990486596655315289162634332483788095746187066589407042834554798393443377991704598602598322227260655447534111427556571297416338667213694413829562380890420112879335744636597278475432343479062943725432143609464776649492887632074777741158449567245611415183488037210865199345998441706115209435818522153686125279289068118748273306568999371660856554003664312572605386626109411576394405372837397214510514048289435549978534295714503259134522680295100595189169007771493751297397975909390604447386627519190789634006853959451219194197974371438148639064428854549054742915877231504869647466511797816690007966826877422623330317028614724204909279402671678969584529159705553810972706120345451262569282861498782245510644481416205675444538825010455073716069431930820812610056378936658759071680971620008465153512843399517007368525158046536522677994070132133158874249620813933799962273941322634024867488786125004017300133923336613025412360858426481801296433719016567024506418465754874060612314443202083018416872092410236803198127417856531781632367808966278027575556455317014234445111500665584127533068825980908759617299403236851330350211281954770776430724029428962339213702400268393773537943013379785718782227383716300736060865326658992395302866473169410017364201004542870530531107456930404396094370610809097470762552089261208144842229733975349970639524486223309183513814560044325987886021152074879439035141983602332654412862654987012602171567215052720761640132810756921802803798023738438082997132930475692235753976142790671700137126196137060901242000313935088952117662710480769113524341584321476153355105287612380873414826541049032025187630168887180630015288309960907030675925147838073802279740848823329478246480858021459011814345374003166974175102205046571048186737837156448902121406535517581767109110024896339280746016641880002137242612362966809037442598231914610358061405803350702050602745633046671263947717391761194563570408694928136429505424073446455735213511850909584648525537898069913598513696653298221114728629284790264002238811631521269639453135622982125296532166238828269909606236486727347075706581917648689295846450257790767741592122478014026840827551534620459545218933180301100444331249771329875648395557944570501758002274023793440101312831206042055634984434267784787869954546147218087731601710397043757457379560375901780584405020168567012078238376391182210670188432524529812155514611831661518395998679014471547933095735894711935311938683571171909814403924402929878978478422071392046790159871854893805337290118871250441553688307181416371548148519675427528965767566893409724412395709805391443149973200513651674267533376281988674462803139645577140724439725343148355941626866276728239062723628033359532180909503069559455899625640861645185485138755646350631477817834083552823242018049243390836408580130088202577702112054509689851305244093148534726681832783702405766449437440464351840686468550576158214795302924122111675015250955055165558301613124467882559863154908082677101659974671072131680571189574759560003418802064672534825292864143215553853073372554440390526579021947237715711189031182205031884440101424347293188260354626930626293206382930041691813953853242472500840518199440335366645468343672149396491583718071741409112234907666087348409389996559608826633293839557826426485457457398777922061869155479635501353892070797154151482565215173949285802874192897021704289386542581677263035074190457504211315491358401458733686927611348851231894600896929128401395413237875776898477977784808149140517830360077967321984631024179140731543862222207762483475854666572928730319988202730331021318241419975345921225901330223409709072598868375907196043368174381743925277676105162618669833522984955721758874584869085212524095676776548920100477388361343528151669638490164126801850374559000637800560526750864205589933537332954649909393419454298251771309191070335639837407304663726681255972243922754071940278501991502551771927935143420305685369487320672862177361725884598519328575917579372930735282572846230634982106722808327668187741299330810790158540539267112049828448794207681143533642906958486263860765255818234868289922781710331880942338050635478631840693264910078884978814857161735831552798226114156672424348612793974167322172339245959926486602273421931321925166537887484051534392596008081433139176563575188110758151824922487437634470283591303227433574025231060512255727746278062583029130945405384459560515051693796319647864686862274371871358417687101780679038409640079814591251152040218101409843743609911103089917314358306172201447599629266968511902282421294478145660420105239986702731771413900740601719645736089044938571694234840849446486363242347677035471004393581958144543602655619876490499699711144488634866362861075879614837690966381157731957134557525646418638797606858238606576579805728845957666851508093771569759779429948874185734398392002512977497360471424511981049579112352924449201320464917219054216075712816509888043382748429522484405676919085412079744349766649648636246276297521356287975347151535293655335559459166129659951888493210538494639609651312608211650733533619035871738717475586788004641103356606827472220806670337677258565240917944700454419828007199636586690355635052105041761373729893853149878030357360559709606698855586411354856708321731196686808113810282792431874333765151280760083060042583193651821563769671167612351999190374818987039107694005146295700935213805068355552334961398760549305682803362543732757613342408092706589872612598284525778370311875867627484121594137966050086959961244238895667276847484110016003812799801480958011524292986665976093570745820688617679127830511163596662103885934988266864640504255978638519145592652576283211867307004417834516951335320339560227462319375369965616193472848841335793331105954847889300992681886189339177186006660743674379239214713444984122332790385441320542403733508380044483784834043375619980611980675644910486607787373957298614431254808429480841277945821317339007582605105907001046431715833881074962338108787941333387244125732448118254531048096060210946148010545147442415924125667655827126592475052144366922764472779221311955805822877445340254240098924907171122544855088652950418612413751552232598185679846097352588415343832731662015251993259235735667259748927674065574972656596870786090972831405702617562916373902624686386748876230138833492894046005581153828370795099862130850621571412959996735183253978215714993458111903807521776494102794193224134389114670149183967641843359724457443147682186595459379917046111508033335031421653076783919890996223840264187109850536000177658046163906130473213103659131579746896368627217487637301258798929446875020619591872885351554591841911299493447877060659953197701927795307661775029501402239357352141763598836697001122919188672937319188004456328566199757418436251719211446230393397468238331943944495364507218511740357548453283859693396637745312676308586824580362231806071128056359065977136070093227033982465716851227246200024597794284892333324559222371577526786789114499575175726931457967762075543623684623501012754167107697039460620703150520668683305467463414284974275483109264249603749511234744272322079966061757999786866853628702864180849304523914704415986663047863838976226127343174445827642730256373023629033850182924054688610968546682838259871123688144249813074644507361999181052392518657935311758176320579483791533011368430912907213663402192911083141075947334263200168620651697016488505251681546090547877249640993746496816707403808230389932191326139233074970681636130563949667509831134097525273516448059688165002304884765115442125277104559292668649377912336624287114122315708008760220440274062141152171310267966471793219129645818338879675960468636951407163375765869984592757063794846679905018261233001637652451604907938828009002465303933863569587199594185457420721046336437225627795485932086784265174650142410625308784863698766118378036852218254504581864171921176224709013317661899868102008477474193900173176336962584247822561341948266642796020986775376493549638154097113415942829599268366549735506158157535108510384711178346954388301550850003133256675610764459573897984233323698629979042909706603484910035185024376619008168670931782877118028974909891513268124443014577174110509631426533651245720774360385285014070504842003438818701310672610176002650320750994876607888796101114507482856441402415869143691514140599971616214515366273792842537589118604327217803918985117529634624942440780463238097983244105255767756562884181988016555288702430069792341495973747830565812507552794144583128041870198597031967748063363135254292526071432518630005903184334564015920494280057295296783336008272370480897770556475916889334568128883812818408929769017935553055128295673843273802188415765535593452897761422511788569402319728292740083219338480545265666681614537229254449890167291726903600891190809477617516476647495354151019924556097939272224904130299365051100879156600864167001336208208560967958276532737230482981944523140887707580014427279418852172866782567759936022592840516626039268513223133167049365924456322330701892866041215705305471517189490770038621576539066373659644370638154127412826649445389892967551233048737250449279308026427978014845108434746337133183267505028862087759055065080936514314050999139699313573525911391245458326966647278919537196006731573552955111357895851761675373587212015853697960824666548453009842190083385681327322667453480464626760435332091958781295675136657633364811595888481555294068238222708660401305406874039275878603758979333364996255291004308793822033913759205180793591884771045491983832089209543418982909008680422498895938466298563366586192930355358651331060419467529857680097606695378535278641407830336358811058570687799531029029688777216825923623865013451116205269617455939353801674103141743986308518534071936395843673691626190633796750294030455180270191869629345100383236300547877396005234489424175231243543686890343050828308031061608829584846833783699195515257088395733640164156219879317107863969045939092152183945663632303023690783933566942471317265080654211037332289710225770374490669749769667752034160385640216644636309641529154089527984096576444854961889659928019992311613707709779357548111377588314328636697408882867857055075849669188580456349212886455945692789698912021157422517788253476821743026654611179340374805726692491940776781250717722168370273208438528875485170864904648934742380089153384066785627355903990407528293931029859836551112264508070611659967195806357629718525253318788440032566516697299370261812291680193409844074652150532602052250153153068445318899008021531224409474468922219842524069551696640421652127179885565521019069601710006264861461781146676205613873072548064251653961341224322515693339424255693304811622556252064889507781072494559214435612558315765231059402965054693391843525512052726169789119896855131673320888768996071638453937780371023215037335336411221441673459895416917134243296914404204787721570114769157025061436161359993533331373279676956412373747672449803048367445333534148010767591504701153251836921279076756467742029631361070957672166088843116466011215329619677243122459145698636736756593040709665096636284199340017546022801793091887076245729923672852483412144905584130538929146165464113492553251073338359962414183118339482042577122715328753218746738104579599360538879489205352982222862220397873893379261612897003884140078594615740430826995781770497753690684392005114614287328647193605450682681014587805193144824812403451588052734068078715997819266890035624024144730788983055481282614313430775651948429116084620780739216574701816304410909831577463372022263640275409006277204114787678901349948393664702504257889605004063701731904130615517161765055398838916700581138046187054515678042276898827216880068146218753966817550081469027340292562134370442127436133317359634803413139068710602477435330618940568720184934582502287806564713443217260990378717653533845923607365907264988791302729692210443755009022433935448829465415031193583255049320835281009952877414743985127300034782319889344184967043830075058028106900395278656274648166266026803899598625482665809496241252320745465707608011025083491453462017509800460401712223122167328364781421965619051145863644665157410817276090114386435633709701024890843277899171370518599065269122328098934130004680354752807242659544335871914302522432569871047371486329814361714919958057509431973365386025524381676442930820850026540991445854705875253137402756497655848261906291629612954770411863765277132753739178955589078588261998046029519164822788210465722873560928723126721916709951617267027412901025736771827395983911249578840629723326669417204048528970810254388372342843312286748292759716044585320730128048971090326190772090754201646613437703154571374609303944909571025824883979372352059221833775681280964543115391787215832243818780090297294473462454850859898219778818597497999338073322056035068623295174500306107003122791966025837290624866814086448501305061176116807116881464449949823387841896324523007217573387647555017303420327282965988667090303606565771208821527589617854454186530615269046557581388846754230742999828506068290216802549058543896277701619597104425283578821078752542299925435691545505166595219408036680938631243194736371400054225106811371183735774261537215433742213213494834387804261967020113428076329694286695486948551335199001317381208676302614562245032653170961056502468565493438049496063938404051631986437133445822453417709143398044794671589079211800305263293738873298119380639260827615538474805808283241887353137301290233661101422979247046327222050366585500176636329395818717957890702077998379070445643661410464397194709089656647174989815326238913880094722270093946245045493850930402409476557949568599044610582178194383915460001548698989251594835309184495839183442992838133713400593437453033587461336104180757471307218341676111743689043913765315027378319979684207034645130318582951273930597697127918010112736716678616243527259352620115062439174349284165731460952634119765844042060509609241041478093644533363712782376450619171960580673450222122703657757724623229345675570407895959048369806005823235117892545445995688934534510163102395510865787527745159487250527472805268734331566771298601778498453241340050709128205203615330508309799309403378413696183954769009942147747344933613167511061695351158081459691552241946542035442922286223062767423253226032605904923600152490092354270264184972880734547481181980076271597998425056003048569144323213994370195867393331735107935572294072665899953477797649480746600528710248389518572354296887917569150505142170603676376982200147721090276230486903548381539023673797657301102945116736641393861483191751533051874586594792979048958946997316776068409492450284593900178695060287274653660649798579072904686503698501554892179038576093683315252917478090027994121912174169411371415280579861562956653262469128726988725201722544423617535316707553466284678231344728181692235646142840471417574169271739222174114273721961664014810882726837821416963959830857635438193755065380627751457673909669163370542149537831966496897998701120772624468753534263305897146147372515180832322607587511584724189047977914776322866661344229993078407618147506947241292117076282332577690235473958710447464181640023942153505192726682608064874245213289104000900462538055793554848511315442596636949869968230683705295241891084141829676135712923840004727961608639224897976196181232274716227323336731722899457599078248080278416850319534598562811425074126236140864660951145642310871539324676555888651325224892106220806778932136208789417271872705914168807225526601241231010544691101345743317829294491957746826114027583221304744720607502218998778195829404230068756599686140567541282251687006977211931154715615040654456743428310644756622711771492483981134597136338759600297464429228471669576580915157950958929838243119719318783638645634230756223985730463711711115534488003284570652055270949029021386970311527779313674421386949937876275625081055920411885908285681070134527495083605979039521815843649957194417416643031944321038348859617533251394694147646980080091759394627955085448666426816778148159292765228336079546022291312376892788502153450932602193608433152764066320073441779226363220451820603506713638372602248541137021224199107250585077261878523972598722305439742517001473079820866968829570125138284081234794814699143099927756370206145349634525492932659711858584663131176337273680624666130559480503824807195586045545287851454682044132484399905692816477624812347566900379739927891678053770120327622886824696799196629823396383038677311866724612668332241413000083826928418052153749298366153986206859101003913630059817959059162365573488371949712081523915949486861850933575562489170801022545419635096063037741255176937760313944791044642250253955490383259654797807284205116232821176816446230038258211579129004107030596017928958768571338169524573279415968799971907935831684252701214179560910864831691766093195434174648084674621176526167977342005431863917364835786455252669147601272211978884767484652853122170653427979174945041062657979886763926322280684171587562353947213559976617028405752333347213187453667362097535416160701511503902416067175132380295169624498264461323264872216670385052739853110225268607174974455161801016538742179969175907151990502241887218089024426175018700453419235500535019726249368055513386303187483131899887130921522273704967504660595916398560060135278186325559892856045584872086585605456138328864564740558111992630653455674927919160578175082116653033838387236043960953013434176495446883522379675499288759795205170464304927743370177707962256225222606262349554307795588140506085724759882734282577875219108359012495162720611141856794774462063768379852163325574536570722548333199109201241237294137445853763919863359756021741060936468619076025080912715094961734464594595265617935531189882720142305174793193669705114245056162039749140505688618035249178757694148771191123825403386603306095954293050870027492125364829622692384981546918739697339569939583511104989953507746671887591165118544997131035307025645236833666459593155227712016881285452140151799082967611517706777528312740232569157708655887153261194499454301800381532956805680852577249992701089791855041826480006447128547568855472527806164364576362072777769303392958798654768055783706291769668766858906143145475864436240632071290388689560895685447609587168745675343842629928124448250059550122565190593010408401122466661943664265888668413466122573643827325805430721638918926817460501431346862732070655591735554079869222527886751814766803745834155654171493147698549000491175899897123141083980341714987881477010535013010298808886664294226857264746742589245253257463538403719828801431352675297825851859732531797346361754809850264350414598448415627311743753799475041255098539681246457987811344077892423711584219958824205084900283087159109105208663256380577647834787978739860133598127964911024084512408109388434121927570220969541342624565992581305463491855360348717376784292308097874107929813518108752468499130475683510090521266185156130978702421264903893304296651546890345151984308065883295764329461269115658917274226391478147494507448674223338102525516121824588020352752942259916750908755248462513051727807040916169514459421565215887270323949276053089990785481327127154125276231551124102971795859799494457606912209160512147209185070679862746417078747096516112054500894250648987276025462755498085363309417651211870022320244926019497574577357057831941986521234276039224397544428666597261193745429621029772012448242854862270166185909693084967455119939130083551969037208880024989253038623491870436288946193388140846135812085532843731178390057644439464717775678190406546802243399963301359692574550498236174463920380711832190502631447397136455014835396036663280030542567864465691152883822963340367829854548229305889431279509591919606424244917891392736557743253475941762340301038790825505088982140935134614360466045484169181396598160220021126821658459439406123622320792710059311615106627501848344817243650862632546391110765183727527458530741707440095942354119829568704359273901968312977231722959387305380041515016130711422726511681988763451338137150583168298705980062654049046575586288432207644708496388513705146903710609279501273199381071276238507450671350024182083590975573121425125741600818663944193716551454547277237058137491186811292971557037203928146112284203056536115992406878534250794921125207406378977735986664906193282754359138855224759246365085870080500613790656770933959599860215399625612539371616366283931794405177863965519979702553322691127368626533766562879568418439742018976084246431975113378802612325817820595034383933854450498215573037413409988632681438322647023546749079061674212167893980218764378369917336066676416239098512346393228293010070292103276935746874842170184715215966918187649370363359945913247019538871913779558487262743392929790557206236971476977237571808249867850482782616136253578334754411596290161678845586741748505966736339997525462175437568453089784000538600901113595262067238680010609498140921721484123765526666402162243317736212689529674837540489466798104817361495935055270989365190225207643420947981582338899144201345705415829947169015715778614557916550047814563419695791177720786730470213434444472019163425408499411055472622495201693166980763548522503237939335874098286483288482800522791197391910224225601353892201227044250048052191895915751663340419714053751926325795457114873310398880005351421801135096356591243198412786588546972709255259799307749881058565608592005988338711243693499435538821414014333263693872830903109122969829412020276273663717480506278475082929449725445276510092766414112210858439258030702625545271896441377022382663089081312010705009775423532324570162529135854183183998831240594667374295115345967813877247928244689973123657751314432449242309862051655308651139320194089746541954864064875904917339003049587429518752492059748323302527629711409192258038057543837657310357183914502090239756195319221883311450417677050067915953528241447438895918239003727198297299195072914059633067681185620691401956866568445645335760884789738818583406559815673330864845634864151996401277572589957199659098427546551524334894642542471445815501912095164890514013938034178902236745450873110385881061573422108956281115789414009457671495732364524678809494674481865871991611621627990400139464492336212405519515939232283180236148536833307346425100698906315081016913839913396997507862541205202684944829413387166030927211139300225813462736438555732317271523519106176878543214956891412722288808299002475433760043801182705876907396607405682776729287844405955584325605064341972910826371979919988302226417811186840212245413708118173473741182671980907424351292534742584787700402288045068014065121312972168488404832642530571593088063930168776199924989738212612610556444356106387598924978462729405045487426001508402207113167731856426906081286219499834336509097678019719457539274538206990021407530280835214603073376279945677558546057462448240224599311408031134863491474632608784925049723027847207180285317464180043906703622583459656486574802413315299464811280211225094682527264999486781954261281837046792688312110840458532454280895031849963160841549354761834080295016156013749751433383254105289147342655122408155696160567886481920048778502573834967726739316136287729503357925018512313290561840908104367766319229055921474578820019593997615186991586041244719391005477224000740722747238501506570324724646693855186294821428917390526599505527404866164214140161702944050334483077253098567352668324806494302281977633166202781778077899628390602063817433337837800653511936421229498940083709586127632157052740438489046816352629841498255001625325883752056292158121487786490849349780562313471194536953967386015570643912556676439357032673375114651411167848709689998948920077589186128253574132505416668118092090239550058877599551069519576450987031845328824035560258161188558117658886046920399382251132912903817501587039312519713798895289096494308560175331055977864925122403106480988748315230886857559851177425866770375379036941333109825704390506329010619645100604994811480360683608512591903126750995242399025118872132759432393351614002579222173473997018885876061878798778923757563224745646513452704213310960496807124884919608767739043294796253373598598401366197602654713675223654712050244779592451712502702484646222428518764823004665693880786817576460906547165784603300506636074484868285693180340259327491226851704106172262310814990316152094885987338514591585357353116093054486340007105485508756696376818142599952577047507195656832759691364314567068036800590802676976677107802030125561684443027092474444954151044036531851392602722836555999104073875638422901516694184897922162323856426913734740272224178473004738491762174213575126130243560412706649056247946213596370574164238595941005091954501612692712549829208293054549803656941973858535663867713569616717038943006125154269848120333642826238714711296852094460233704217930091236382586333290498061531088181265306033377183885676467452561662232840502108819094803952048454171308245468760715556012651368531161570319923581274905501621732693176068591112489640110760772984080746414600468251552428183476515243323045745138334589827643780981440422189211580647070586023576521891887626594767108056695937815311075014897901820277399345714994529481112886683445884612035302498111295146775605764897571354204390621059812345319495641980329298998029147512656233311861568448098754101807933070823913708556215422611545061164178687260273825033860284642617868668281785156540221644620636718500445314791939165101442739968186958609526167541972895872646769610239414903779292800815303190407289175553728536611590890975442311897538976202733419620143583932716415461003167427843959045980511979309532874550854949082318936133041959792567196461854816705924850164876643290501993793001735411559519118728394370690975654717495827879892161004129444867279928566349869192671959745426818646388942755567361822679084902498590978207671270824898774916344799131657261126708547048084282112658672125794927120439718263915208510013080404986250789106363287248737878492927410731023341125887913802612319172453909270026292932364077154982526192220294152995412245677801069667478983792292567747648566976717733498434000227601159476688994991299320408917128858287812328991497790539667655109268980823906146787461375748208321769573315878372714065563406886744735257896110448803077838041987969907641159269280056520097038929100019053206031376047422210008643743256818061460881329377103610416613541355214523858224503162549586806372368063358527952101183588639155814942213678641205565451043869103976840896440277541339557857457643402304868595253273172506952391725107906206026356144236851615662153519260106590962079473742486454556555853845213450091327307231097392218316225688662645183769990674444249961303229963686258668675583452615511942234239757277768992290416561941403608410173214052773513652805327149855540244434896074348040345986807653087560222372404132299864549232459132708902763241716347293662745899497885988688183049336338916482865308587051642092620861924934305056015561602822959617999977771489862334961962317337527215172867779560973622137352348610552353622203180730598479796478886138342700110975600405859425244072058490115027720089291655000136139269852292800889328130678399424918663879517950474193133564161886545695849858419899823011080058270823349049799814092336486108435838886044943624696788401952715745819994644166955570401705371475572792938383805636303963140802100402280098239769541126517526934763531935944802381201279645583200636478486225022811101600298414999088946071788843923756162272662707160265785028140940763433837414634138963212061851162375749360912521616633005965512573613464600530502490859872632562131975741215030875868483501045089039005197780423816597275634376315634963922946003213010868351313655032202217958991691458362305146812463956425595231154853442166444657550206876348162447226737272775430240165615348399640633475007161780728832770273271436860766579141251355654711739100482042613822942746728171049827227374414783508960423575638298046748082746924153329164982050150414009374740003122925165582983478388133074620200299196910872722617684334699810399067126037402266732857993392863921488150995844868899661851511650672412857143926893794058547459947241119350528952924324813715567385465081931241887321800613644627888981234897833582233307560094579445820811777801583478438906131857592917763731552480177795166085038893589285717064666237118614508743199368871742013248956773180609334228851029882772837598001502184730262582690620794319716672959489924871435676489955898765648675584095968229358824605941562089284439850395016969784427132187567850375091091029001684277176090636537061622386362078014857875430797224350515110146544009639983497591001131722122944439426884955604349289482996138512153495457561168386082891745844613355272626711278425604821904241383418844595001487698169999567904332200144454630213766090063305829276587452655103082027501873772106914956164155923392541052971326221325957865854902214630897812061658072300305129849890895115566185801783441404014922637496781243138859867263505641984252545358498307448393980745683127183063162283352214954350507808042559141679878597147138356301523921413790261316081536509711831430229670995605776295601732322194888916293735628873273846525293887122292656983367980624069800372108399133742924010035967448689790638237844628054501309392562071073412568691980152940242645412551536683069203566411419099768546467847215924117463384788501993285200112950742972288726572329377326438851461243764138278810819218379328843499650094892008187684209197361665264259166697816882272825085427298242963530105653147592716803969463669510070949767617658043823097807960970431224096840655865807791067233615435590678051852231320963272686491599062028714282225124152556840883939594203853389640405095222582904213797497884001315430926320407041115040246509945096708009596100874286134170248533348134009983574911601779334438777414908144008735359993576852434406252167883165341438677381154819731699645102391975121173481542890166420000233098203928146367760820722330594339294890819665402772573253473009096755014339430359626511943512499733029098959945576299210629339797802030210300395399105510169030324402755253628824414586654191519078489165390916236105920120403298271405698475923062065375911569450279809304245743548270765881954264490144879154656230392515907530355629194756725062297000529268089843315597274806880345555081456916573193287207220727795578000866181547769711105934507390460977610421914415038427205828999143112573213182168237580737868723749813449153246729884341623640133070565521748596378923669098483023529649366219681134911754463425478793951143571192930758332327469882890936683322318026785826566255140728420520346147473527212617786352053614907276980531199962870032744559809247959545012781059096517969978601665526733324346990649673791836078376102508500867480649003426380383321475144278058156533430754766705983805334588820388249996543799861087678863935069022046823607683641113771894249353097304984401565535105049179333018815376084921971557619907986118150918308968993128694314661247493087128285135589972301166103421577285505739592537695708530794351058967078967732178866099781895843803552545422033844113562531050949303384470393856096950169020743080422796689627632968385533732325142556613375094109567689320982725847681454555224980876616063308819231309552770051999256314478604797596715874346921840527392918620621127249725454579376446557449878435748899376997254155843505496922850252914812135276732961617161343519253887170590008501582912921290445915621361620214008730014711295421985007342463111240442270932469814743452068823117102179699360501562916879329251270612047755380752036423051225218174489988451721152774513663001793251741210392813669137276250042637813195530045865031357949046432352658800808126972416946577139247154119149283252845960499700829874488429482444425655399089962460002505422544958546929161420392279089932260974309086578647377121361200920997660373070981548546543485108098650027065303564355913844121694988445335916076668175212094946661459643118666405487488441242535408787735030516690624323929820739447838046634493874862814036300559798273111954306427960049283491839185842554119342699732576023687943350322875656736043860199565334115221740191093251288853647942653912700424495332699879656393951513759331991892095190632078238150264907178364935725544094101497384820675044519132216447975998026485936746785215299550243272520615333988070102067870218935718216066061059705174557507361859287199740652056382415147022131994712940947734227578936716156345768765174729782542191900980072530835711057369267594387429801300180436845972092329240889308254394141839124490023612074891973259717652770598552484343051466224993047179984039214673995614955844663954976763326028222577693485599684026181277986398825720421234754448818892915774630468844608611613579949652980277473922104924497336696619684872747017562101627651615696387677850203598969774717697916964213455526498213108693807267739056685669568019143175515447148651107784474286135663253559669968141959767583503399558463836144942108914655803836010290925662481960035038868099309362212699474502194880817425309733132775385191675872950148181113528340556362159204042450811020375695008634093011195823343847162715139858782851025580016996748201732837551228777744062183969477028421275416569072826273138125704180106169387778451080167874357430277200315003375313505765711591775786294520908056837794138814481731251881239085299262715349702944548395064915789067642419633747253707445092040042781612341050561155616285912715358983516588385594475279298118745759231172876402081829788939867507519892368761888288613363216645265297122245586000853532653828046931904079621269941383092246499257272736578535564020517713421540561296954153971156961819633988647484568556405210566159929268672593627381695673728247941561037885989055981423664408392204098888593040629127621436376577317684473934370232032303164317681416134165006903421429181362276405834056311028092016976976144560288127817696072059831615296677103816209723250196924116720662486074975004700985607814107264479098398599539713020832555357081749369949195127411241754078048398079586825680579394455795052668206678519149861765614885231595892840023648299967681392516292767293029410337411225201400614920348672621641540616311608529855226163949607959560182667251556335292023043794909954340185488953792058961833193771879150725518153697437752809662205237076785201732967158306329337470541942226314072343106025007233881589881863814862641579321123863530350406596916414558351906967778833906969403491932497141749805744818718848996908815898062601973557569105705104690145799797638366893522693898937306330838581858198236619254821852272432493472709600506289278640495877130959293310424647103577834067260911469519665409044132633433997612495618885984526992013479395810057114158648695759662249358261531142308005944810751841408512804883073823885646047754480770243608842046282555864652450897295295170285128052213521754255045282886750405955687203451031328352382376833771437690031800931351740637698711702733493630464978395495216639547224537347745051529625828523569912290352705154897348904227411151823027486006712443150927811018294387021498165109510995920772433811747131347567668594611858389173030853848040396083408098784365082388119406956867829680498159565533108632539680798428671720030193440863755019565960667793991871741020241277048332717632503377855168328850141070505523387456688520943874414923962460024368356927724867272062903446715095460949692952667885030435295051499525846681524012584845133779635746285529743186428867076818361188317165639651493274695202750327945367885977352370201302088018681019981953075862718572757012804336854338240213836934005246197624349087085955659706028803118389069311439975108694510460907685695367699760784273719426630406795911759900132641929920132540209634363979519579176030658416641345012774307200358443217237021858188195584736337283031597824873974448576691556415891453000120685557015055928850166603952588483377806710994401794176241709193832490414440005695649254022942575655273812175002179474823666779815233315980329807765734175887110434845982220230642599864620044096038822592647452310496431228155592195100158232713917927575429768121362813586422307085512545958379186685586656682889250409921781454405072602231850607014761381581149521199214966676506724817418516194045692379087546377606267726736301803278740094451789102802155675192334043704216189103149828112392327706777828124029765284356706205654791649627528345158079955866237584516396195726157579519134353917158556296748327821094917741924203357170949741317831696727508848806825226777103952971830445162976324176264714242009117952726239436526423728883451041452293371590994999166489319189404713425378631258588073089740504698165394357458359935641169986700208196625663295736537357056186376397160253548280190923932148837180466861863943246721246587679300186915148477133736334189411750973349186960534258057134047924141932125929069574768651548683261956680240359066667548840456580017180327956883993329830738626322752443152589739137461328229199706937912553303691789936354902816544630311539918712275071803991445626546564527880617251773814243102949983363344737152818485940868358204438379749959607316891769760232616046337928808696370721875517864712315223628584299969459742294351392388983328138474421343489281439650355365136445454497514739558796121860133318721766262860957452620981890594110235974440101514201914331688572825995578409597610401814292845771614169150984431765552941719087582347863447880491589015502816891925344532002269989196002553513993068094150529444312750032807488025377684086083534039328127018113163473329553650808172005811017615660859567308463805421757131526500368615363311039748440024714591252400777154930380771458139074480485211990492609189875877384240574204390011448149019068510806019399809925770623658149307270615596600717021938043744024434876638904547583851729961492791689830638512495137619466703403802181881673098769359197643684080126161387343606159543793978557356368591896682708873339451755499417771382120560963462095451088184412085632185915024934191285776539279065337423671508218954364055347919077554845607860417360295418292192644918062467625256151298393954792701469196715151732859221875677045177387037979960038156958263285453445215361558746406508093034477773497409318750466662471209658507904245029808083563149007380950025663277259016308206925348398188019107013023665326881140320144131092055741317165800698587374276178744603278231214802902602682453949897721874009338184636856943607809289286253580640556939515328030548036043854634159207856554435362430590422072085140893145179395047244137445033929200909668034005975199745990998065132550130178501701057414221180266812937725078379193951101777212495071143003257126543171562974360221932344018999206627224700249025093517077796135396013154589205517610050934641782960811944689462424208226389581675444157168013694574213236313679434035543750037052973798144550158800954999459587013173935385285643430674619052631828555460757995360768837364710024210994706763160219816917973796214910825451184246696360070258250868548844336752167040923966255512652972554364297993155207145620410771346978191206687741493196952446635110664422902734869412641562476322458518658153838858886005002412101634710893157594548578390573613731738823105411733662922559055492101128488400596855890237702311942825421773228964190212536177255264024200590329901105922758317234947818406743475838730457147790287521016084949108115445241298068859047484412063663221969679178579625520221212671298237832737724721613752931340902013034702203950096606348223494678712146458208874281198402398350427616458382824991930922217747576314013413004023873089519899981846960976751206820565523047293690170349145453025140160535801558745329811860528644857259709612256030294144654837984092561668341857682017138566136787598663823661239186913022572935442767057064137766504560849245540307688799076922497923929640177042925013817980597546701505138118020330555008220110233145769721498177653456087604860606602657082713019854254805904494935515094929764082012686388670577214349689724119041366559838431716842414778180282001684204017136076532133190321077020663493522850539385902109779826561993801550891426932533714023761889224848479896437639327612405661645151487524333784701935149517468171738628783726901377392520561719539816025416097249418549730477382075791307073015574455056224537107177507867063701623604963276538804122726725161762254252534233887735197725175322598612555906978586713302633706912380047202181471277607770591368410342308397817922803026894158673769690359589792334736396952652903455761297534839296025836354097712280287513156819965693117899941849410191194757433801723845274257348174557888995294806589768567713741825864662638742968480438438349341271695667583880606610182387421027142079839698463897078076936762552440823983424339317103918495233934468068509401808465513191785614561784584698051582273334164330080586283509076323882005425067390242993175317095440115860663670030452219676290878856276324186812310699893489358110901947463476504340885160377487218545203316237347143028627942685671418855168897668516693092681541231252423927015857845155655800525779667948822942319603402695911844790386385469744414468554999820995460201016830424128396780917673385374791200200774258277739342502724766018084605263103946246812919101324287774397226402484282335722290158481715986778266944986733584765802396495531726845663624251944301658431485883455797117863986194517311373496532409177152731598439350647336552165684403730916474518302327431978527319071326112993583550815629837350788721670837861088238361731830199966736179160661844991773607860189968743557823008065078197333208914401857807547845582393528415518778163258466271246513299386347439025521909434537600448498464336099066522601961488907234072737936278674665286066861024581458246371096012976421796325791830970584045498412888416671628525566775913718339356313592013632189361496237709415061261754076939908928098956096035743639454677071911103821124468055819962514045737027508163148071843605019176356606574311175451959048310161914103903474360561377430313771145195469050452626227111376155991243090671353083869866137845250980937941433047422810350149399182020292967702037051833968502364816141505237213493171106653461557981819836276791294726912655445047713884301157527327507440233817025976816513768539624772408812391301689342795378664825907572903057506978329129646205159743316679811945276899635956850281848309918608643183189286901339334850124644547165077986203750796222523523346493834628390431146658526541219408970467469643331048528785496854102740891300574782712644824900581217197144042522764452086998146282441013336214044299460170681472353503504040053218392183274103218450643416245122023174317916740587123268675601049485630367090318716404521796837838576340365653605440688943976087769383218140542760850259838974869172921698436577085914070080058200546720930000523947475376789429951048475215356424630806678299413330323935188447611939958406704657361906179029650994749912203069627239753962627140635080577977928206705490419427886464684025098326823859155694075349807262120772565019889556211228169807232822198659450587142808469907060975279064878895989933644560226692642919253460476754691544113831046050828920612200763245733733452565931326068833160411055690143569060687145699363963038765608733637469377803321499301247291822903827544747491859334219796790166008276180207916605330983062062988541663658730831298938591040719011724743643704630930961919622615334338150189555621482987294549191669275665040555436655253147470442874182736724339469546116721559663971165915899220408954182165392487346215520730208158670290569167698696006347976644535406152547938504849272695344302865464508838923418260168544993671239190799182656316431768732724395545572926629463417805553828777213777262320763758453177057638195380662663188810281320709212971053364686979348680307432930381550671801294653191146681466478124065275549424096556144518492505124137485599937516884855470233131719082736128648458859049573825630325478210914787026954382644444423595318806498859631103535966000817166914145993288749475093501014814108788418341530925168929128604948406126286881626150293223097956606942073996332252385402758645118491928603191138602565363134515394080096979905895488318611312386813544095902760978401727990932368331874669633204167265177393111320589639320064306643305014927178077728862966999383721942437867576607516153698824317524156124509352531958730102173918443933080407962884517547885438229396019908474161106706346684522907590370662645959324353472399842862401256047086989914723083622986892459955852483650811788616646140187472618035317288920733459298983214379303852746164126483745033404151895426914690777261869350145561167820187265122100326062417219663773578982334943413904104849413438533206000916176436667249804704348811904565114601956108570802944945644230282645106748806313970813320494216446850232556561449115289788883899150829011513036501671261688495999669518416920245204858960497062733585783273343933441281704690855991695911407518899538836332211404974558406394918673660389149180465141499604957529844983741577856355195679879412441800779548217135324760272970786089282268649041193787071083048519216738325968520494833819421051115887883352484697921201160573593538982438313444214221357606019981447376359409549762950476406746168109656614875311484648709439428499485995558095197468696792528165896783703856677793812735167809095247231717302809740310548523735441555203430703356391836336869170841870935544306815026691237491116764285639220963880674004221433768390684067139434642722617334896795464951095905483066972491460725284379287451249829548549830752274352451748632586582336882169719388196096059492525302366337960764019666473231296002431722726080574169028047363272812352562638355322161630293953303174872181444108044594918127054413828963140438605319034713960528914312672584063095202907002161621910051515641906837301855868663519898508568699639310038241352883451613960212361091562134198737920893739384655492794335498398024083170917796456610299732463653360413048113557023373056027214288932284430079164859801575453451914539743021044651455499909601242010461308210984021769394500647894649544246762710031706252095725027242531977087942269756312409712494260931765769405784414371511988732377448596541549615847419073581511955162629186130154455937384761536987663512435905081875164512475870989168952500924201156246917732686781745531796958289125276469704187899808577758077189605318636677644229684758384148055481553300318780617612126853548400021988265017438863283786867899198552339252050014968420760947379673677188417481922988298698010348984955082863572896741345322389813680740357134121277139900500098294843235962738025031128943719317751455265064838262931545113083386423934696569669993941444272176992658479438130192548250790395323694890716139589925284378136314232930941995570838085970896951146699264209190281029144005412023970150716665315904288222029433003155087292970721005296184240595692559864727520128922032245850003748510054345269784476137474570087800044585466025569989501839624223114548100811364213030375500110559335703427323308766678727577467066435421737143663658685807126087120882525056762314627961193606337518120193403240897910885687000348616912766285452390738584231920163602907081834344315552125224873687295714496718347060579458357275950566983638844731240098814999728131444621528697963001601404627679886100212912213159685781273698774359719483545947287343259001464874605209199582652087368005665142037312353250341941632777624845704298697693347544792309540230463237901058557680215848144945788851871471423517663379050456263963546568161371753507358265858448624445812642539712428616487633795214857400410652237155835031107008384306406533842585160006930076506011238872171441391782311708861954894859588118572509847152211732806777290399525248468705073125802732949565780462929102284602138366332405650493893617938594614315139128954677780764066591965921998254421072663857751926508725625481511785666763452379241274496496351918972480479095827749193423688242530366120804010586177916596689492553381823349976663830730327603702364252600613245520771378387681172084934981918886836928131520058289824689734605211890957120229381271651883098440279805028632241031977035312796897293836601842546905820858391481629829008525690950713810056149339773253512076059531001722888880328746401242424485267569968514336368785206392587925723710420043234402455521349157199106856565564368818697194834735340277326268479115104048175186918064031445426716772721501429521187576801650347953985462983811085539245775758668392976539001032231652018512023888670214496108003431115944626640925031643130503057877191207533077001244184394713811462430572185634373133671112572532130944648653096065557071456562188378040246795620402725846255159378470996001987784376570376518139433799761384340439195485779534716285689778759522585050409584994055625429314396464124604123221835018230190596749751838925068875710044358754892486798397776956815218636831532764192365105236441380185285512091792830969525667521910945215717856504085138654646732673074308340554025043812884468235285037779333231901538752665407334359055998853084635437031377112013291566157738646807694062741095306823161643994172238584890725250729282607454301106530904541398853459814368658219762758620822809904199473992103009300438695441113770018337264942863292337104710490438120218198884061054870113250973896743801268438360613778168079288548064268598563345786051135171839390589681897534681700091369661755185393580472669426181217019455018354986653052639682033412042212627357281901022515100590885873887644396220917018933977140104334434816788344433139146604255652239988948576332671903688956827779726675062241384693501306725798650200554800511746257400552604099291985695523069397754679210254670632060661321953467975112051264282240675312568566729145067671064157731387453684687044289997161854369214277697005524059539417649639189559455815733613444815920124487170459182334334692840425013816024746445410583629185790280990907930436517265107551821954070530215212678836513132818968674414248097800965378529451557767514536979888960172289308827492137763176064743885754898567685970552132449023861784358753065068397815322302186638609734153443211687227772130038072629425080676635422049320826981038296153023591536524469047415955798915690073780649313022143940331726186980670409940493764868671089463158763516064119857635496467706659897205037067087325658150222453986672658262748003984825327063346564283750428429829918322592690104110131697533461521406519717932797057787536139357052992509188585413267009890142630649496250417994462859465562650230105132284452534043183777509783910200271273256957552451469052318488593187557413724878758303972683212196241871509472144190244475616078838426047763204560378733601405054478914657699545314805989915239414337575862287865688994880954527859441330956263065715589566043270729710549552146890096494888220615247591633382637757227721151674430649714929302315918302619002332706614567160731477573587374367688669231454975975482035685812751787314773482703648624793887060816695815022284635872754488169693587086096295880852385056586753267411679130434045322396651390651564981721701630954381535860019257804548806018476456573383096914673713279271113163681019028720357885203293907307893804151460128022315174464745396740215868282070811939621714900114422904970380971406059541704334048419215507328432850036608354319671525719123484716751551235548898943705655485519488924904041755191797773974055773256151836890524817401189359620850706826260728943643515317371898939778088439633741007796268051881393198131399640473333913126986420101118759240438147134853113525608462974625137704299458918539177968670718856220515087978922155626695738445178312189939000645489530260987405227513620414976729474524590105098364922048520422244137195109478870896022068740984632210319538864253584851163320099796336779668178948190133671387407322535668793534856401009817226081572369259334432831783168360383062515141629282000336505563004578915503379481993299325681828803881487291770032834423617536981143765382674979596930191094743483577444327872792067956792297138394259719670920791195002473521450285887932740843689220821198766203895506388890854184520698179728286520804600487797863397955356070847419985582691989336659738331814441703750689915092763825375174781560759754137658529258164891552866466426778385085762195923340809256261633150092057533877065166288754768237430279112931793936392023482555583777148021078357110506916747993172688590337670354508769268887317540588955424706475322865338948375646807174100253921432236312125069781936524504505364551932776488461001971351845709156710308235750672164052714740274951906345368119557666600882384052047582739719406237136034254716489552111141515585975867315491807042504486373176383050561465438456966332169921706587695678856726649215361065252357316177905025085242825652206700132709077325735916654175214388425268935962295189175636733800627827974153765151159949698029447464019370896524781756052537251216979685392199069518603908331781539942614735011403497575629757821831310676888389096291815775555658347250245413860346766073244240632842963668041752931705411602986708738201628850281651502134258085672061853328244855314986939415321112060399268118503122012757468814213894282490567450317905617746445399557966926553832347176820959842220836358799871522549417395800859728596419176188939875937420628751232572624255352321419516179831171453603287122490921527037975510189665614498179338340767160162628336268572070485468688196299828943697294259487585526023078466559230144801785351127571912641795120142237920261937083245187516702700747719665140544840424642853204737932476777408810223671772273879131270378318440903500018838905566456001073656836352085091627241090260905581887254856128593079076153486399188925220319620994024605070097313878170678617030610543504071349171878926902221874474437880770747433879487250710464188508869158650390333727328537141699494094334459739795775781596367460894192968367275341438727916749885228810986759424320100851950989264446176639043073885607222354793236085985108958028798205424716469171094351223183818132753099298474220468546736663666092122465811289478790210034718396435548537218691039874911960993447275716525281314975373989749608152650811739433957119803236203586903552142731580971712356621934778233524506341697130354764581249801173412434893620251557936786420773846473923925952955519927900508421664658984475114073098549072677564810577279846656287290706472884743354205950803376061362666490614429355234042205771676805445642182157600620692671350525747044493412184440833328076388546712989289943934031057682323212984688932101162671799053702161454067670995640609537544199396668224531739034081787077124929493669299749364107164049068137797170156529705108002725148505333935295688760959306320144246891282351734695039424508699630822163564352535396676767791703804009391283164438617755285113197274794616695082575378112650201065336586867345147841308580995096111251480777170961741915863573620200999954338028197145128937300362454663393489143590739419735754499216656169059462740161787142508453331912967231717410082860212106631585527702250518164597048288036600081428007830768446670026010422913085484470010607890608854311432079217779039397874543979399725161478310610115063554462414973700474846282074290561580220706102257199217498739125198709538396084464880586950443811442489428287679907811222519867741467640856627197602319742742871420426549854279738064585529577138860428143648975228477264237375656154408875068552133756445709532107286072852477902962465105656356809458272530116456244268091768509149622105180259389046666331883842689243939999795506079753410078795309375004846515449217432769917337788905703048343548191442505705079663138938498526945840125517351908107750012061749903640116724977033692561248759613462853650358816226190139987296450359447530936776432902532749026409245902720998404166858882023543459721902142743199482632153566926400808395679115817130476096267091743265590244417563194193244492096859334910760891635773314796449303331127167003289738644690429897055191515504220804584522151558360465832410582382025604812833411104409369440666339264794001973830012122527705801048970847117770043289855834999186691184553637856344602037479646503288937046823195244142546697164315453333853617515538484624645830055190379682913285677114510686523351098500887522873028613273745500439662027505983430981345218620146790635112483628207351798597744629073338290383680099871370849195661133030430120836554818012975612842254706948307235486641276481620995088642258244796609414964874974471820622045588831563969693913327704416016295744430084762104065678427413171765388816134409623649900873701683741408883470353264249665021359639733162652721960255876491934301905545559560468862899193504396579913163555134231040171924622190901713337157694943888712542964619557910914923400594983860981740215032961113885429076130645992772079059054476248358195715994021015577145801814888611671378546033293840049773050182952371630756766275787655829433783012589489714513895704191979758072504110784525761553623488389579171844555584742343210990456319889235999542774802788496138697487325396379992717775520690056431211044765981733851909971176792404235299144735181632408729589135495252308804524984480408950747721203633224931080682348161381200401940235746368477242724825457372158704669763135010185616065729814726433539840475354449338074498767104787907736637553746970734314326712778713273759330355218544416359040702115842175448220162725388949303887882140766789825605655601697914915633035741270586925210615782090123373640867086834871000822667608984344364139808027895539399912013985616712010285139680789007859631318190765931749731438144343229144169445933455694644017447914749731504604261040045065398591707696221397957896886862607083996922813018109740837513409295496576408658257420983874199471316531804639825182143388202764772377272583082766234528404910420475342909633380235673041914512066270256347025483506371708388245152795724874084419720351583856488739215459165466821390750858772118212531455264065511184818010027689635502029436453531374716710121106683915675754358742333506500238045142199265762688215499137471424278349350914902032082990457786379811047402673820952454572816315886268729560113249370747745143485840412834870157952820302388077185081130200089077421322743173200859687879843294617941372984691573628278519540306906973295685224737268195118430384339488022526839522364931198840215316185304756128223598505211529502001464534613094629813840727823141267875512470520034621082222068643536724141433355395996307874128679396686506519049556349987209134204944600357605397405408699513034110694296720216242705347874025296482454192623341645452340902426743439003936765296691311725328300962238342212301220309374320180695048193776872985717253636791223443590758424410198241528717304149991130403640439059566587627602563049288877187463426295445065023436039777734893918921642741612244996664609679871979743896042690378189825970935799289079074255181564815366734803456785703472818939102197356708791269824631793360639984994886281586484435995747055418335039943615539652548032785104743313795178427716405267856485099801406592998421719309059567406192695709184212402731655191807756029180242381114127335087051859522650993100081752339478365856733757927865092671882293297702209333613703739907807594927821187314091129182634223424673941554974254548408480205231953119097075716389973330862110271734583806951109026892183928160773188777654959217570764236893278256814551741920856440199190908502111560292091887232643465010818408999177978797379941149748288195886543169979867835125092506791178660856137980733753200502541141123661640684923924328617539326545646313063150836422278168345257437082675947049206899449668542534432240409854240715290168947019230680538294367816374334734439883261622264922996560736614136904798140847497057835735992139015521257770929585604165232129679427137575314617829546536526936062595212127140473830567099682692283532563105832661097172508494843210252002992556420442556239718884678278420380274349459810889197999542956868902505154465131340923070346627205284642980371298460878701795834853238267385095115763494535838171885414130306439144918752655771612240756728703875882345529549927604271522835162730836397171994545370835030105755392890902307779815681918775256102065059606012324179435179571358287330847124492647263141399895841467654214299862970645187984088704379408774614265936963721908952825919044496474930027515293963449904307291661229082332507295958102799904347045775155988753061929773068482476824120363914965526679483608286882996716180138449119834305355291057813400490260761457529997601322266817444761335477547406777493180869315336176593361125633169245665412656907224639756372001078905633898736296834822886240318262329989569595778507781442251058616875252869156447973408451685930866789274800959553132011262938597957390615061506030864213379237995724512796153807633650014015384777925601678925401571295603456307684529365280831430782371731207231985596243083492983820350825710327222097901947841598564624564160886355933102049280051211548856685873705265265401929481290694222021584178991861924454886687320344705700922712564733497161004769383638867020369610437122135688239798981335809968879666843416287327947072732070472972838281712395541847394573771181809737087378792271702070686969021909927363134200847569679176263560760417392652375497906011166399073656658919135321493138111345852445783177203993458220502166042173272337179649413015476291505036183254116701373089217678097960412743972442733177054512982253540431296980952994743713935130697357133062777096099304914323175896889156681262852574701002943422383515211412390254611766679947246250780266246975615237074471692344310612507669976295473419632928069024465184790668049053841347741521855408724547342021175226035411799778883315564220721986025400803058966303046985011847201813850321576463816239010868078040548961798475572896635163154378976803457210775276356920153554004445265133762075650084323491996131845759569951717032090005295077722857624285094453327400467005013292226243531207281399827335451230697521728127349117541406786993734857728006446278373690565178115377238771597024282637724217610185125284917655826520693457686132523144214754268748489372671696327550697326098092375422355751724526737137114406855728680038278499690880384469787310463551848091095846488016774419312585000415284209495019052576539868839391672310521000087024640953278964551811781320957689926963313764876128821830105613929096884865222690577045170805936140686215198464150095974942053288098688131188255380226876737023758642075437115861472224073452701962272624618765130964992121704300676527580054198655542998450359210347905224745449236897608145387163789677352655653658374871251478454151102404383182910036182363862677344488643390828077727772192583788222813694897350603537719460120001311327030746770357425524673743719730742415933934643045464622804339467584035306419092738129412394871360176331785061766530594359793262586913997056668814523210407769379140465780260025849804216412411401685606914748814934059945130549996207235378497364628223984146667697251226656064899911843224991521493188630303875118366887110824279123077663726672076973040540099284158292383876201378299615220666224806570500419607201207026917787497386659278090643135929051124353295950656960296560116359687224239382516248586782712937856397051998167741174447298961783177507756710518267267507585932996826235117454707168031778941905262391119686261262199278906552836297669978190498582257714704159613609955539886087612985277117320410687924913249799235373096522400590743124525905784733434076645165513353734225696640784059378960689536928631600280684665220216389737116094107309127526936795274676255109754639841213569319975977248274660327342097676280782468652297408686690477847056982341925482833587152059446668504379886175288587390091208960785748018494197999647900546577921267416731227312182438990025434547926827797003695795803973416602337310515993978968738372136878964043074289509999626879539285587775778706386435917475744016765794155629200560803672138810684583885266776774982675908838252170826684291694515099720405335270266637320547224077649418058171521875464718183561171812134470996302972119496116696380452859077606173363123022555397349591667078857799122932247453807847431610113160477737543078980014736560523529647413318055977850119023466457982734952268977794345438570339649241988966413274479911951504230430023399769297542036378410046731708408554391395928539852087598098891791466152101867540636147621764755093944419924655446221965035288447699363663512365463177083065680982715215453788595818465992532467539265524246869749333063927329720391796402110038813023919414068270238989623479289207401748364590778761192055491380022965006649850182990565676602874755225982165153253036568786998381621399206695803408731538813624755437478291908907619785615350748177741151589136496277838435808494036904496906130526193930313890458906127964456014218435772870630678738197480767795837797469649532429540744516704942549655644160698198574669624604869906300339299634459419047660455451401142261614422418627413780801659568744917491663006096954274566616635970412922017724654229933447798484443064593241477242726271825222553335324559678781743830759392459701559739596836341483725029577923805702996845882406642914979811908940137965545823449541717850486969183194169263083162992481509641240842597402669422361679445301945021129307719878385199020977471241140404507147057282791742869119625571241380422429208884622633446027064252487993836510934160524071690921167649988400951030996682885984751182139622894747126613912268538922141393219102334368261253085541416967543342579516141607881112270275776489394913468217255727914201085467672186688835975213593838501367803059602131582840582128899227999831304217862931259686614167435669180300106100593128518639946480179301788379411205801382497678637996280594540984828430473740972721904842716973349154854049434892897122616560740600105307604147665234736795691080939116850612407077880156845332210851101408658964956164183719007300439333513989103427761551692045886256542068607631354476530246407049780150758329039456375772638792604421703857849576852191896426860347513811603738849303803972439735170498494072316934180711100808464788002335689981748517349285817594144028113787642706784313490320803714525836993260554492384940384850986647445903447222443359028483246535234103968545968046892950179362986449895065529165567972882820190106870477823746031993597411799456669618675725912367340177984822615361097331066159714842438302434429023222089486158930549228915805429068948441348725738425020923306983376264950555696070208398016401879678743633592959960097640287207604929069263904104430455590319594372164288232109053003787112938576824753329418476611228080896859415392085723039904764576852326832275529322021098320721685455672149043074691642786800706621169637578980726022863055017581514069259680283412749277699905964651962243447400215538957644531694630717794994772056599553667677237221988550853870685842287271627276759436511623086791440466183841677722558235116971666618998108977210507185962043191461489535453991968950563076583828764347990250424947841464893442448902080640745870020005126369837087513239598478702019885041817808438673132378425003376536383119939026895060931214676446493001234239421245540925762313414839567042667850296557905029603666884511186685112838512565513869283692275227588693636022297938597909584319306737152711970840091927947702733298327418845349703271806058509095992396552019980973917323306910976248078539884598569137359306713529389715528991667822241491582721751055950393984788245291410255079787510962825531838006263625178224568077559158263450266817781467026847085336548400171503356091703335189963649995748498726047783571703444295864857858051431949354642112059162875134907004155297694963040929669600686035879969148848745089161132383136899540546860992945382022042539282309866391816516633984406490522695194964815950340706270556559765132159709156506186547169113424127244108957637230959530423371529160318268478847500889900593016278969505240401837992634428258498769857577692414429088183742627220107681381654310552867315788630572036075997404949330574273806620354190625314480095295615244976688840457873324521330972517670587028819125721554154818673760920333891543455160677671631714044321834779976563301659362363010367048179616043484725478277181201725289626949286375722162337612977582179663291409985633607137312782221139938576038034834556228255701600790965420179283807572207018817874129057198583424563529216131561303052496189310998269382370057410658435434352332646539803900345532879722728230600723284218612551129068513792447665673458833203431064140699517109190117379639114567604628834477659252076840968615292691765117782872389496886936141033944930574495449305083901219633465461482885650062808642018303747015654876045647461132127268918313903943342726294919739970103856131074507144219196360667314662914800217784677660586727704683722695771629006568513252847486395694191682521393154745515949136759264375931661124737202474160358302982390115468385530776403196802383543388053735386847383083802169744731741285997737786900556237308598654512227186634132489930752647364562465469714421038604710511994893696328687409006879806478095308053355298604879202704497606273796121460672607917504532087266146695975495273050988567779986117726505406933061289420496370523210834535173499235826164688939105229837914301357730516882801767974944448774987676646814108451727410267581764296828767353298095883983967753319161516928333721736477190988390217575784602595259397838583540746543369088293103884763659343539915335411632816438436652576464582012293059990306964378238240970098124965033275414838937432316076388642524808135091911898346951835313076443425840135337550220379265385218966705072729498568573944024036384432625200330922243296324468848187263777015978144984275552325413612298862634575359882448516061384649624956919385310340236428220884160932326695712967991006658162923443174309113061529787637446579870642929425019664939007876759191209706034799173500868682537454673324282066649097903693479176175325394274113617113240016243216712587741509536129563889207869021098225950746389063345840645733233124626916516033555795281817332342885618915427346508407939974813040570179631436031458682082535021489128724097373462710257307278411737605299253796626019614704167641296822382110280420627036918452263390039042667265940926395687060548629260943691400911531795108297362706071055776396606824248728586400010854098279245769811246849665626892276723676952445991728850913987970169199310120625524060287443940250503432689683626421793849407267827867779256230968904395776908424907838821668724534897607028913149456343848448259623930513468245111983265326651427966304580114129371814335265845900478948216270192130632490999475097434594820213199720118368996344822226507046782011568862182782441315825187767275849731949570416144677229310558007651368549098225650486219039429563192475862432727580804203254444295738196932526222629635731958527732668183135188724954645061819106363325329036467035259549196098642342873528453422301278718980198885288627849376892027288238046076362905296914153414944230197639217996433848132000571315413678713563627596083606796471321711669781769481240682601796080523189262456382206740055430506954776523206732011795483358647413722950118440061655557466825374482433023430618517032860364819589724687724194529044045806619222416408630268403978071766726662362411245098858220358854412708176737092793587157190793384517382455209561849635574275155708175784580012284161552948610654214015121873341351882885789832641999763179379413369650551275357235729792063963071161401902284602194821354428669599315392252285576917385286825058416841279679697629498747669978482216553964948368036617729634133107073940539282026441153694859660180234592341108197809854783482826779540590383266817241274348643074734555499720250210077111963664266563994400206299666006806999723725969111172449007177380797557282820040273600499698022631588644331017065096110040357606455417027693254359606733793069368801228732855750482053069486705890836923529956910296397465055318046866673656185727093484950836232024517103722636832290636838829549306458118543615818833211045224876092353811730754809438335827396819853167680785466335861835275367517737297129194159351194486886179180410137741497188182867771162855308654896882774395577864015546480910165241206717300009053425553027762654615744389819282055986578415508387771937182612156232344537188070055677536769493683863403607853843693282958903362658983651799835656530791289538065186909791260029507746793583127870620093304607299933420781021882449281848367978668400276497849309224840754529148099401243765030296428374569910157015470501403331510223183889037796763879733256806928974185841049465035769562891716587700384342024436696413014035913828713719604682556999207472359519123500158242034712518268735150967761765972254702790543823087688754553779585357447071152139796703331944369249929970984466740605453084689421148849583001981008641468843830859037155278085970731315079495196620559169987314168615155933791074830328512250393737683267959218738450507909650894004021821261158714022095258088959537206039635445479260146581587316916372797706247778457746183980625155850177219225690590055156957991337317315336005816127283707474748405896833826094048167445398484688157934320312274152069143128698708152285160480933577061327332199231931028498302183829792916781276197061465961964436512986587962940339771777703149437682209726482338016335632868731945864311284385621859321785059161053098126207468614540170773644433132302568621049547378579489321262341657253724781594224257126342776955615265155458961675188847919435983051871682940898020539483393723035212129466209235143339915034582884762129498012659574708032865881328958467580746437130684428991946027194316157557240046524110746705318674327740539640348187650580057555674336097019220754435207930882226161360621572854746134329380073543459600806341496094195610435279674637016254520762364468362011096481839167365469808008383963519906347082435981458015064679874418761397508092883258802100594752235393058206443284223492157131277582658874185636488871100238456318082365295749386826516551200094630093204249081604048961863649652289389709079011294600583838503821202734395069777291162006491359300955537665815043426997746490121216253308914926143067418318627875882140796520545228933500646816661344336342546605618994374611610072052216876369609248554975114600953149012251751329346449423193455456802387961442953477247509819472587802270413819347667951778785588750720123457137949119501463121416520503464715789348680160130807708607022315316309680395451790346894954526863602873031645876457818825346879041046143353431099273179095547333922827486240154578631393253207389345567204185901728955225594792454128022980688589282674471352573413794221246733081559185274242658451081309169087317729879988150333700907606756515484083644697481629892641378767894703829382083505856835360058095546515360592808597730185547470573338897019569536896651831574981043578386501493872937208016306635705749153220657912759448350808215005212832393633512699003648013635338218392874544740891494331026323447425972955108009666881328294749864664851890359924071570887154565378226737344339903283577500187561776124067030945455847012602792495850412991043846682679281217219645143828607672864020813400930256556315983474085206519920945189472135272118717870969776869892275943900939797741308422447863958803582821339400546016700912616162092265380025994748947741809070285752513741009086120403424144345205191537139534693932722529694383592190261411097658191710605439766281120182345967740825942746097204645532789285515872148844422260167440244724524651691384224824763493080096504223020774487065949343443015504598363079229523669488593786937886986578872373983876082076555221786695293410907797088693077109823668864874456647544359886208262928454646125760804183040525235871999431268479401151736402985326142996190628082727422633473055705846249811075567337508588336484251651486070903473761095528953826484082472720259036868525268596479927259338206818887612702658369011914096252260626014504791145376275932793785177337987715363677784802172787003174924016315187188598813222648350771372223802934454225639451023395604540608221002722803141333714142809832542381232053018279172600984999228019198586888936809248541793266922079928517876913715072789629610595845628325143574277501319965527204690420114056206147320407921428086245864792423736022484050507949868637840748929234885697161430787779389678589611535631539675430937576520402280673268133452418351270023551521556575760671431105925241518258585072961602250810415581077336857643537699132087546100576001774411034251804541261000824061540459154182178230452998084651662999028703013063165513445442811841728862229620859985236636215788551843621605488959646697742873154201653576420029111872142305172101790030143334590578247370024627397592775144450780141221026283613790406829619354161101518967577921930590350326686865306690113085992979600975523547103571804736096598607281279420398929863640191725760335010385662899546243725394652694779486749964008635423767528654042611506747434331665964117850653401043378923700241726220412333338940401212068031885965012680643044110186431754498571055739805325168655017054055767399172860505738430907215862839494680697301934626288989091793149818338432541952775653155853282146373052839636774806869430645597202617264567673931446823389879283735008976218211393368874556754438599392111164538161813583469108330878019514708084739786916221424621369494650971099789267301591786609595128809813612027634012779134839843967373309703028951741327939870107277779365013241476149371881637789824161868418922541671563923342951723332312583476832991112681157888989244810689847639292521371526963380102430828052402486957709186386204867614489150559335978037989639114694280645621431950426031976477810852380158993920396333707017760678238521683157333260736248466593384771532114994324459037849498390457891661952569086148235076969561602893590487008871169023227238215809689828796733306495882672534269405028067212320278149250987851180564482563722612513479975954633349880558722147969797792325395348409155628596300597408139416199113936042868580262831751450048315454764075104925355336915726652699516701731068636040153859827350682351082410354178560064277213178713130750357406117180897292037211551159365172295662365015461729411042982391831846464558347218182661553743679032160725568454162579266366180712277173453614850804291684410934507587338240456625520031976399973365458882842030435767733542281646708383367117598770770743995069466353255018218774898827690407169137625619558897384458500525829496004556165993530182317113588864032227712434284942435518727147288318835535356932210153969648570786673147525214315232527646662774733553522496611743555090613764479722580239407501662007227618408604038240312921558725783047509618272141709837114073525697011107985515700921817740383419370546396779660716401178775252894844307304114609888068731014672182113157150158701734811358665851507030260135261952033504275053333793594012605539193960721185767238595005089191633509496196199066796880550248154406078248230761147497123249600884892730574078364332179709461933691531238477962432838424300138103744624583352553946817538313160052141535066083589980491241411530813920819120698058770198400800068976222432480704761228327880659217694552957247580913462232471970490141074923854504372782469998753936454370257833202855588378293383290288547335561206201472843101589880796279132104347329800510053274786087447939374464638422952700959243731117478766924887474104269421215647054667730033635408807439415602348426318810696147544715825988636953969604986607513433722901874165350336923793571299243279094360664929439517822013995181763802082251353142147536981476939373633174993286286997411851499121517761965890824708626006277859045860209298512945930666167504010112715098291388989418769926114310247685227516486825733307051380081398928754736894146115531030026345508929339688386229253182590518422979119228460379918387413674637855566114820478819774610206919119047142820817198757682069726667150866083401996075681053058984793617010012510072496799497242096649775427961087412506853631379549487768860594260423801190403489162679608318081298851590735058313149400303754415323909049391853803776023314532463663906708888793812039600120310822768500105332043545075817468932646412396560775631268490967974787633749815912696857622874620618240608392003970130270354498669777674496496567303875608653794893742502698368474614823620791171889723666118958135287596805870216634667947226045140228780818038588347312357400250101137886698482414264162493944588474950328105921161206403021490886275995708362153294911198119226173739518153453953402459953238382863506361592069001739305517651984843034804717454740809932563612164377274872264655513212071286701989624375554991395453054182072429032005025369799300483591093889199258581105926854514366921810949275254566085369988817213981423138822750939711442778701262003192804148339805113291699061325563555769269090879070302318941042260374046946601575486142069401095914864313464771021592691269024052081834918697270483459211089253469762473557492740257620264045010336244726257727653233462507767458215804923566780946635161237234095820508001569598207947233624530983623696020583959260174704532545477267591950888786639707505860614567520249427263617311532734722654367832312793192939433696999970706261273192553796815477814145889006635887187643863655690984177554204609982371423121822440730192825862022854097993907908551667459907641947282292101321280241185720096445648328136234396169646169251853822116535543399442453930768165162825957861582263513972013825632096338860385934364639447640385169049997036350783080710667676730335203625589002008788123933488061481077772713423972257310699388661752567718479416360786585233102650917718304515329430859004760562638311785082479035005473409915115934915475455976581333568428138785209106566320988309180287498899179772386016676011501002960307016145060066171879272347298807409741800004147632451817247007358977885362805791704751528080545339912086487899788188276653544406818028123668389246824778929903956314620411463064025251829709557193542041045947591364004105402788418685496185553620492377539634164022603049338756751534676454760947943858100599468760035223521980042408191330099924197888513286324601409524291175538831449790198075463274209971561046468715654233318907472427562752155037207057277817549893090433570700618186099900640230429501123818146187091267001870195687759283066867134196510889746955318845757167592829609658391374945766296312723162224078269116864614426575032140555165135431181528997311293276388928389360305597486836681649350294848330969753792065642721742286229152196927285787652748638120432449389120466437553370452992311408571509576812906783445729547768347906231558536577744573796516431368722215831046145987194602582364444142792357034810909365920190895118918993927230345691106114995716375668827431111386218393404920861485081647533309218137307178189861449937133300016822375516042608311143638558580659158201242034922406418339152291288960500845845548868452330596794858028465476226377845381177943534682292484465749896162159582896939238377132627809185159277391389627116826720047881595163891024167862639556136629171290777635228959549378845655036354654046901106225193627627470935321445255240657209040156120567448338234341023562345918889142428075710955117374739838579405340473390079072280736345453848524628031210260542493449769517521926520432123239905087183615385672639679227664830196321922727581020001075459854978236509598523835102947338525844933159228563436895882383129491037157933465227791192599004342218222047232344018941028890243237378621611431657672003198237806773589017863021583502507447420360741986645361958096743851663690233161676701295080791693050206956107304055441781431503443838188263036844843071058537167031376450460009577222045202936934237339071938734844671154877545401411010432653373874124561955713565882247811499987649089715059977820773165923849159076857316808763074553590008258381980337736438100585344320349023798314286405580623598197940514224542752281651141319066300091539774754207803277268650195369225764511818814709842481886860739262665198430489075938381910892419942647759421507776260781727808043875430555273342213955071038734897153323290475643851014605386249669636913690203187056260030928816377307096248285681530210251286397913208925736783566619900525729280432704626234900176969413981312445635128437312375810778976068961688624510157166330790714439953356791016962580540790842504123776170447962240199877037131558223225846115448700829225937537805427973076273736591031484793629561143857259359047328072597235695892355072161753992778794237360072248860688681441031950387322580959177363849033785257620244251990251399734144767022082776935464417037499426495724460827990123008555587067424071893820902986073489146134595668454926226077926204858857613263530551393801743023939102425224998331954291354313155897798301857381744587238817237952188455459933163956432116744324915880636714077543850548877972932943099201410290891685792501855675812548990232392702222732143906927975335534106300444012217714470745007250735470606700580141166464466295206395278640417260106170853070062076255383588777397246057404022991537840300458983610640490454945554830666213339389135496029051873053831954043224082665304426288353885722840477209839192452883576655338704404038173329094815972442362217030207377029969698285943471751584985142566784014495181114847859913303775059868809087997253410812811801752477261872179609602740973108011823866392330778665776656866814879852031684849136984296758112390922021615656569913829055367311912059647960565039889795633926118098968776710833459677833242504701639930531150492630042648032353934478154816416973297419820922399865256451832945644259152516561223239028825134608744243315399920899779620782788174404033308050599319550145420465647434802347890057257643361268503368298976819925000657086475919572098223284446518372172630257462887622391850576829773427153095192617036671378470940890283198879627992887308044764652942517349408398524612826592325495792184748984378390810110924713102584140237601766871799352600817916350743941865506547317031719603720519703695083828976455370615621803474416766336469018556631898864892495696003588724807197675304881405875553719017576193985704916737325567601617955037354203444193690315412676542710684367984545104503247146836654991885891081473555670219831786755150106511928686355492246217749442654599799398779147403142540208431811836697510606418946183046349282458990748095965751175720610777922936104941678869045653545996625562848451572811039804778300862932136838835548848355956595413675668862462301858745536279952412541768713988417291289970703477161084742501641326889431106615027667663675323718069732408054642781904275139351125051130075542064075860579951043112461759909973073827588032621393421314690159169946462348072618216126282567964337503248775504819644279676018480339151435958991623056281833010291087338389924942225802366106716291269542264491989726740623507466369481030258728268228977097899115584567188166901779946414816835092719205864179769055363499601382284439432247218818249072091417591575955887368153760027048840196410431472495809202849032316295897908139398266634393793110590203369668984616088672156763621294017772321856101305365865215653564439014013324312758843803967716059109118672023355346487578634541740870075002692311799858204619629479537521093077440225919371579834395566771745074440455097228162004288160776055452334465482880518770835305558291803508866218540210461713219497854989054847904990360923627959014772483071077614304720005093911872713023652980221345688724018484020586957878403577515296785568704893028815821586038711380947518928554036543688713781759141501044963560120367254865044573310233130763318378354310428500565670377153721601552452887913999261801981825800706218548449029956396435341320178097780494771094779497244180200205030579935290139496938614919371150991635916299182224841597483344395151246198099156128642946699936114339932895656341279734240131140358459130351193621878662640922337006974836966503785391378558537385105846182425906866204423783095232894487746530873539243859929461921324180322864587558678111945384156237747597391117170327507660260162143737719439257489055395174231027976570077116416128883098183636775258432880292066252258564409098951181408824291245146739407018761448804450527825024993062633704235314850017085970659691399681265595838557125528417625390969742134760547070165387796013932482992733158548641769227401964928889487728826600736210371306020975026504808015829956175483387762561408710043423343481032811104325818039728447550273066625235371646685477643506707743883280315180609168143380797337520530688884924751701051420216913829513442173279749240084922954131835970216934237944693626149187291262771984588691643684336111685014901569975129087467308132186185846653328372240305579359258224273439733480524681740929081136134169977845153879466708821690023882456389161004266057483415715604526203552766044015766285504263606824292254974596957100528977724106068699404001109349432630567637786684284033728588772310876995148666199560571350151338262746754194052415463360350096920467145890364461997000343320971195132315840060169846597876231700387177948878564049871348627495280610624138232794996763936729522005169438104594769627796405164487988206130653866754893612232965804465148423002285818281543333566903820060833273862061825076895550910467684893237691269162255298861115808254750903500434654552549068282188101733390853291346292181298250836977892265669125438221294796655764764304902485703396066994318388811593271470837766311129069325593392713713440808573445644585417456747635342819517703478396197061415081319417182049576596657272328917303730158262511881480183877388783302727938358989377779998435765098669718387337647692649512050677647795618924208929703366489552893473227764576898485169858287558655224732303654881876529654375993518721328022250603943558396453549887950755635927601608498807917310943487190475622432486248259678806825458779009454325112003160797914653253711920258618302269987494937717019035107162979097117894613817422912861155938065840690599123287681951482346506729181899392682865399619694953497945282374390697573462864717143203036850421310041301735748017986498735677607054557846941391311748903002467140491485546031609828371089978161218955772371101591214558597453920336320498314703667909734043615883063445826252466719220023357448141935650958210299836572865790092298533697373914318707752143764257560871474707968605521646707516104097496247001050715783700321112592770112967531589772398662203255061998114607543559201996748905279639450175709826884530934855943168098456064735871756082672605177699425808906715852567551102491429646435795129589230329698459544758536137868033325369260014436817517405324061875244652524096054316379112769138366854745424989758487514722847480274509660768940208403348154527252883876784464996737353745365136028815177544725183105404658608822961360665024092426939185967628316348382416511705525908366120137434154107355702167177986596423861737249336850605394174882441254230506070215123164093485855635673600546719591172015345366354155965925430770495793204816687221125904090296950799527457169302408866664766221838492018231909134992905860843951794409531968267702242605231265122857063809440806515858077993762053400401499246336212282601916189063579200913368129010268860798548130147371283392178865108031758710756854887001017211186069362992140275466074065009338699143571778899665611750523302081700142868025706853172941393094048250295920481157379584811656781455841325867453000458534624988789788477670732058782716816874751109942186593927493484711815359349281823257421128398832566831493689050758599069941117823766885694061076562648892107312442647069383944339972609581067533035562440702348171584722487976597940195351681896345527723700795027296886899772044754793008553790889746362817220486852985585585028783776805839142662162054380426842598901474333804111781603915660319824996814557898281100068499775862162052118777962370241567923171945788598830337012418942860787013164379591057659971847136928760977680110049972835482164206243199265832021101634609715095269885453454238682045674774864625465799027615256664042257907060644460051289566043772768162485465940054272326422451878549183157744672141245914286718666313916123836535142257167696508392551728314095970623007104872601808008187203540547665746510233466169826295111370559829869522819115794526518549547759541996163771629911390239953425219849655392505924978264106946848857317650716708546796624348713048093969260209454847699700447092452154709664770995272302813155011688089269595320231229975634685562315590809160999061748325126227286467661558281751984068196182020491375064755557882917495827568915257686157894483806442965539278134747105909942101481666739008423357295732099066963682443211726529996031726078070675958534463196188587955271263734771656574596005210678218507568262643005114980339814404540447473484835278028041602856300805790451239416098914805218275820205642104150715381966579071949008800293467679435465359818298642596429139520820891155567450173244284245555705442708317580477706549025503271856477112287862604438863463906461129262622624289014597969449513703491106844657039941057841073982506414698816057866707099638777717762899141520520674188516728585005404393197351080875182968412829245395414085228844087439161377577774610115996418873817608313084594188335734833531061983399297559693956112963849827402854564885195874756312308150355003120059308426977040316961162797036430761786858753849427537761154303702463177667604645800283908496197372138096882611888710448113642920667455248733118021211858963130597810833877077370357308340028696596092275055045505700539688957497404948065530675134185582876936364959540729167816431479314496213489794375925032589881156116942615036728288260997255300532850515124758912850312096359087672188325192504688023146660940864654881841308281846427218091955024899057012293938150948593579311226139108556455915348923202002572819434504103073950119002916888885361321927747546964000515364317605282365121986067554308018295645667564884895816575108970013822190365093839406510653570262367802210234061652168410501965778254669084414094288987963363816505674585481627875892034260520755023415233046609709108836893382544532645633980421456247465150796276320012798378746323936556860905950847000307964738743414752013771200293227035094085181267415486031086930601412363731020622802440175473635150739149112777292666000931786053783398838530663805450243817484157508811981206864980102735188500136375970993244436939028188071360028103148213891159968923637974074452720983776280352478028923275040399016168817031778431418174382511735977608336355026468564018917599230804870429628154156852428662770394432044336669764991937141614202810526669940957050469236015275919814895683055722544537714425968690473639212985422561721400748251587486067593523721071246086711957452448940472384644482525876147988500398392693390019420306692476106947192609416873381395938234815184752486082440130205825296480400870376464291531006344358101601727888012909197746735763633084354285238762820779308310042033288443637838858981256867948608779802513160301916619234568339276455511337708091514897358737514145572232331270487067152738163279934301984693180013690586160260331279082744420770273442334308385470642182697060992167640590158296631714368062228783862490527943997371944172487642430792191771634513603762043731885248691699889760977346421130952342710421053173748787061880834647384429396379270985069736324721003408123654258941268019129120691541807617600015873450110637107091031865046140057778596413144574472545490206788850925972558565135413889084017480188942151963636453238566383515414658069873402109031160400476368026617022493103692252940924301749946225581764947780356896493133095965952284228052263473325542140195504827348305569521965272471035424726968682197634382498403801193971639857725996808290994070051468848564964809764727254742637357798635132564425579544131436404185904883193080826402232322035637122230763413071368414263102692046998573508476909656325179718304890147386362104502609595504572077336090798585366960827707650336014639618835546737598351241777544741148233768762604211595556072234676639852818097077225809334188101697358184514940427292775951675671754636537677478082199276719887995181947900435997169099818504639918991935816523448779208870791974928607376750152271644610239683316999962664833763375623146798946916997097230859467390647381799405065490604246400893961629850898234185988376135246288850343370764902573729529121293969055745947407180611043491837109281638106201758321034753092455952240473042520674336038478274553300982816152172593436170447105752773284196160995620367639591791735910231468075606148383900274455446111606239056837337824055131562007890481210078731629254674393765506290563989579906196822224248918956911759985184766840349534053156393114753421345615999431213092216650031846119219470356965800581659239720444655300266664477146006755976338882931280284766199688723776502107792433549811150414371576992503061087476765218127709541542483553710584729175968868601523260471374343331198187948790628395736556507531450878698554994449390266744727164235962526897737937674398715672337859160231567671101318497377633432976169587118059074623247726390278726714877878122894157164138470363110151225339041810829362825802230558513657238519946363632962938399442017876586841480569726210237811169356493138811173472537377979432610927632351762497394987210171038687649654802332005174624732340274781820992982091497973180598951946135464111026790372759557453012829644599178022358432420290620177870477818445323687955858502115212514716750707983928464496220193826446946492744822578465498127598157083785475316920153125575650058556051596879364276659135877345206570011029842616026950423344531710899199389093147506556044089345416466469957655999166291897789447546950502248313735378555060883508546372238575797050090193980578203337397764233222205875647863892084351384087973100042586874224064315073995587799763393429939104815731547477747950294787834477549235268615521926392390047614991037159875218811719019748367691781079150097054317400239891044267263769838267380984794453407550784119168747505762259342595561826238210584319939724332200951062062433636959264570552197421271174170150053185508794766356393871434724567568262344589027261547590139024564539786832463762066424943240926099993468858966870866032535792910160142749521997626400128298733640131118190558871984605417527525642108595549618993523308475326172332228006565131344163436076505078560779390839125859251698684551816228205171221830176154977577616727394044029533240346660392984781311316494504949913303567776012082455332674793980022935138627554184654950767289448392529631700590052369413377425359136593272519114137669037562988775242028110985734627116837965438444940891391143801604542138763095152928282751987418277197171371045969470462161834148269615344619715375871494162392480207866628290299304601181417948519380460588436307186494243167906424395117674696916654886498451537705433915554062001545597185458137385614471291243630672663608855477612682938659559469398626715409335548125098558127836046656755628727264875396417665936251464446449430191781427631829483833299021364218286493386248199831521182840719628155519825105521689711991769028945728925835816382112818027150842933327853879107718987574746191688648785058408987968488442305447114778809570249056024287256140647272115779062453194513387636267084144357329072999773152118460545020098376543166025355709198105125703611735096483700201370688328820620902490839584389802115199000835270159487969988376658220041526972379083579740233798638446993667304883043262565275802216522808976537244860779288955591041613722137060988529470963780168135037235090191020441451245490481602437915500739263028611907229007580469769916422094477743945699468759050515407051267262298653140787232579554427467531333971400044782772833253913329794473302608321190218487670135308862480224896670363228484127073232980886436214975750620062873857904822915833858705932567693788086794704944867133051806950951757658023122116855557367231890416468272373241251910823364183845824308224365025255672063970160739545164983337358681225286553834680796027564924411511956931994175029718064233724349915243472589173338743328193156684745706357125180581015276995120611709789615247707771811459386413427066135625175706626081606681683189320063528497058110070045776102824752239936108574471010627288120035102664506293276264266277084357979336335299078528772089452089199309028882221532805826602685870617802329939941853048687796577333261471840692338511056062159657710099840828985642004392037557075626399789075079380315190483973801383892563258340110005143746320614485455355844242645459672973170403037075762225710818663569292373109999083058628892713219546392126714916099955443431609285258221179432310062956715913607663110965698695556758594046956022869800562085008348876759088547781950942616316559808308308035696210645820876034200033138868014199172621947607376320166744558348382891791976192180469233493914889568193145221553775635713911867777929902206069784685803597276308837815957815822510872578279239059586058891523770239619236428163969928278526341945259519043633656278843125581386671226755767893001260496419461274722028681913662308935061141856804276883409863772233838512134614873726074254568601517825635703112179928735634749772645635829535112095857603252564299006622249719168704020619222730269914905095713977737416925904092687827397665944968132031525941282377345563455737222887358845532726665948697131537892233932940564973440805010708536973731073615703446588008478141779520713177315367153845570493358110808513997265377368434604132450612084756388477396258464235106489489643509329351850947532517035180957211338041690736443423386852709119926165810924743916241701873112645247499517815171510694818273650746422189494815741701574912475758684412657410900335545357190178270609822400316827889108738435587544776501632131702267012338652864836350149115984458849679927469460439125614853671591315711490309559229136676510496514731495043757596562191125636879686395684665299131082910235521217123267846680752247552257568811309471971546598826249251845518038595313143105482989691177285150204540463004816452542565076994454934051087174491906651862889419533477791444968734886912025258702707882903528668725660795841824831958702703811917008827795639853890430538506115136084570834424496185167716880309093858264911034950483684343946393498185955467100252241570884573917589523689647482225298845061649271377072184080008401014505617792841148355751489313518485423374173529698188326956693302904726845926730386826028089664918015650232212622474195748806723549873567855061080521247786713372111355885892711115347309028685286232800125594911308608314681576794036861512237337477341338431440772599164892166763278661120169124572075534319647811369693197126047995284506855952572384863962152005780998471745067046130804884703949409578485102978171930996701898778872682565149328221662158051798630040637695983292328672307202342761896815222195159587088317957059604909209032291980687770585516162299174951805284183332350110061705804936468955797555618256412097908694366569210710631374921530866695309267580113923956879755902625321736431642796274022399918771432315925373043664822089209658336128130537798772039991611711316802912379195602071623383981149504295454948203638031449455539350858497414471293871485394111287326072887660702846625313605997107588442490105928643069473407467540337533402227076451670504125594962458767008857439096467828349074364669688668973898766931984094035034129660468890161816125829353241896528321691380007481418752140774169540511492739493036650831354024921746185094115860793512779193611373445767968361432613497475329850442703767224065958178244551303905536580080359280989261796812073907356398137195016014190609573103831515990251609773622623117602536363516330751424544132641453815667310195831551976499253502301296177523060022427368991802763895921771362586371566077034024815556735961714782924182235708905958907091873779780524921652999250239036597431598046711865749321336700742687136946249931126119083481392172941431134872828949910476095738182164219070844875715521084000553190609057710374111808514884021538718439457835828915210076399097501589217360643742853365862153956170821021386790745548131276624497900796791023078639625813080467717475542720641536410312484351851773238288992170671272950774573322852868358239442310631157817369949462662864908779006285802888398247420007047226463279017887091761941915021838979174472820542132202067615801257700588468650091029475920146331897907493094197965163106636168216132548364482531542536680301977073030306646653125509139645451391948784761676795053914835432334801606864402492083666087383329778416977164824034190951841075584703914514107727934333138525015310391481457115705964361844752634121588200599442979480086780922966892446072416365574384905397805500938935011292902980719532268403119679063202629216403720169602964653492947228378444051769473914582866250782894526138817370455264297359552175634700499179029380839416592005366101639103411066891829315377582272482726255421365377583505790591652388806049825030773529525425443052122176329532814416876061255385407962804278673236258547287616401131656379454315303807175391875293388841626844797782569363611785442057864815735306636362168125438921858648317457754571619268550983253923541511281180903086852696136503796800892372890729131594995404439827534518462453856142344309478790602862548436998778848637915303484173133012631136962661548713263912540192087274459356718134125520076228425542918416040416971788278782224166763644157126191293104875704947975676138327851724532796107940977680187539747933704888067259397306692517976177702250400469170151168636774280497015669994940131173100579542500496173472991572399899706923983504405244355540711101680501468823600402781417735208060629714538753200457681726320610094086696094242383999511689104625006251428316931413034993100121096696190269810031415598050935027273112594520343958709094023285290909110463899367902042401711753427633357071931299794005997874147028706562818383919545880450060360667303673286574948414484529177197542491202477142322699257118391330962679930058715748591293917672870146060958013685280827507752445693958065504437202468208283038565862953667938262761680339484788091821259191463114342345713598256694863312300596437521101937469822085300851893641130790357515358839087920473644692771233896297159768322714259355796248502765628866895600270222596182080715683751235152043347864478494683019511315029692008313867801445835853469475495387275641463041083224279450286355514582063140989204843883409660038184592509880212092334890361599703619257120099510730711084974222903560327026554180361269272152997468182135809599414389123988852697789967245370189535414732009426662164598081465839346396468129924232319302160226263083848763232340162746679523516884078071431818696105484120411030720040511353551343630794350794352150648763197622441275604143040904837471365579335751805432956155612916919840889684141900263784000433366312322187608950928549550850614704456432779590547036912753087430117065267601440014022462057731019740643916472683462218245197392805040679918928836573188842242445737916014755787032199396633881836617794129269852530433352696838459253255225127884799324616017367819451090748318139697334293418965098329449810861182851157977264115370988561215256577878398520166118696402962730560183859883405823229781691938149963376598667829062021544061736544300439614266543233569030969898869530513522430927572845283301251707253004139261208759573988996505475333554374754979650597447755880434326177917921888539354129231216671900283078154313149741431958090205190456102598145695978036160652389305785815217410443948124483571267389450057160759435270585459225470721302046814532880790383170712004326022821186321767149432735168854736939350136547647258284667356363932100564655933969079040421678233195210103813606727272234822974555609853679938716783883610687901076440574012165236762686227751315442526678764012200523649276608192945346679592606078416422872642731965926222565800147180790860944726921688853139393618253926360472920640257112106914543661688898926716496742112088413350201325798262725465497088386688232034137784037841301291597587540425658473972404469221848523194236411618995890670532007530065243983149812477149074643864341722327311454606043786071726787063308419886797866768748682906339952325397126592952981262260633324187699323628859836780506777190410731844096042575354606690959345727588980621305559851864599927021144766433570294676156386573671835002702033870212428331327563273537584773486927239110713102208940918274290650733682463580955884218765290189297921926550441778228821993618209778098926245741507254450073273050583273930788021165379253164811755340455662404455371190438431937348988056200551984773057269309860193842927344283522732933107687277590270740291813351709708714727476193191230741442791615216617520968947072865184377452279627489748559668217854324829595216657616786495489754725967068438868585274936857139565361238014805040673635284433299672239726794518032945506876828584046013164554509387520931412448188249550689633243105397002531972090055503690935571781173953144818238538696145327274052197230743939054416769487548517981274879665776420400974938354079684312289438901062645840580964429589321839072939055277158110902016150407829646175268924048744333051264690310570244483659079210597988324333200689141351007234571006426713320909667662638897397408777728647222551568721251468300369971205683334766138153149689856833345552823361028317094169718929071868319715798206008112062453344632497527276116334560983145568941507603780900003660616170735468096972151529543457085274200044550241579279757074568802957481211872795265808604663986413383091345155847836101001112743349220271878370071829195515007754385485433357994104624929786801622595512639577511337165055041156811882724549898457881979781655990266478392221124404720076599877144042858143400242493374289065205200540153448986079003729800184588098685842136164377729948889041332443858276441797384058272549294018263087105791968194880506425759305564752350628867633400827791693121866365043168090723691247466153402893850707061526765495155795506120370235508904710243774215751743441180750739553561524073139896398955453306450439229070415124564876684982289589566777123087569039583454245230313993121356409237173613991769499260324594086087541492344347630421807417788912371513897745851167894899613768084640208077162536871895773614017354611785876593649895804262150422622175403833042598000932576249447753681349612909600211927071355702425213419393873514204433633757599747572012079293928959302136813008482369004180625524535823937744827090325840555132166676772317324525663598044903884601559051154660467362132127743667991774709185134453219306853719647316623439773340054407827098675875900981479972841935732056753351764485980723203807322989474925280754059514333356823842452404665121865405904481191822029687357789751803374197593473553156262631327170032521872103663200368861071394774295502883145548864084415306296327923197271640399792034721700096499074479019263624369078432394363783401127782937954064889680440496584927976353228055246811606921159150067310444349153793463797645196574399204034681939170331970483450020256174402745282696301716162963360913007810648068050728339421921188108768547315131753995551838462943762904327796598616029963299120212492445975054815013346233578548539210112293918911632543332069291082363141335254601511134023645066774889189002676157167765771845565437247428680152802794540655828652515653113085901389600238682091082324360096749897193306466428004852736856856837443669529754262340742096452993090153246977466326164829411450178241193836389203620080746939504786592457738629845728521521123135402102297872422852914763603147431434671198119249902184372726139487289105355760047609048309675362294753230808377355406762671749385855674074781634732974354173004483814986877771097843374234488446606344658761678716537999540769131870926225968477098956417334606027396192523156599164209657098826003048694283053906295622244933678137865732134053868554471902744585775617840745811375473312980399964391058531937165040485604826386348903626231236304435022352126374031502722285289972714656337019897863594814349217874710900673831414560368958449982845768962002357376693861817514332277356096186167520105000980801989035396529894317295608139652044871614171930950669310645589143604085388129555241862926798620073629948765462957712148958551200014371241334029479752685315768464806699066566150785384375007423787348031039374550416523379736060927174609580960939741603411188051141226931929402203680515198506624353213083031516935222507251545908118036857080005811824794616033278551880484992190637669436945484601715301908765216111243841739293518143157496011164321419996738680408131158344771312007528545071984668386391706454866432540663185094509286209530794421148117678627015920373759288946624953418154145662701697891450184035581118696231848009575994240414167979641182688314302840872845363813504623634333280750306945355020540515176028719255431722719277910423789931103560329325404133014264693822041524587247328907616073492073268954858400009890568203439216126146729612519847927304663804792900462186475678936199653598347993699314807485011446092697251693019278467928316674125434333192069558267278263919782007806272671696013738589379370785636914944108734933320134399198345763114880663449702130889273337858956184549104056337414854625511635747078415932581006244258713877882994682525206851693214697768363517313613400150174121181013649455578928958030517283708525891038994640710349438476398166886427757208876024092995233402330834981752998746883856306405845823298220972827552338838496081665541400881555492510472601676438540119867948014514843079729100160543684675387922850118480003422194876784384989545124433608054091853591154380647163623616367842717745161870985267769989171343569274061663358675709612351582056952505195722856591491001698662909912277795975985154364293001317622465798132957084736208849400881304848987784921721393946631403756609045251576287926977516502974704147973310655775267019431807475837931525950509276661815251308125773413792042241979722624428871366620457351338574255782232806212429625340421094226223667239971227107368370373093966759868943507417222172815515238636855176257053232241843574730263253504013871812906506017521755426105105983075526003329128620121506147361790036598633829166179320027842366328501248493585154800733046962822571559947204986116475256989578929727448988385238504257720757109143854533189491132767293418912867077249836442900656332896240742974040251409481394240286421989332865837062785520426755560693643134049877258541620499999514960970338570544028393785395938889888064482204697316603867528132516124849619646372214393535371389053208827786445144617830006233070347866679682000357715718450119434424755002245292523067964901584469830281107129107925692014202019828350895367624198058342774863046252004685880170353434548712235406882484989988133806484696002243199231619713742487688459013398421567424518504927798033962385069128933285694509408225995927825083650792064644896255761820675603571689450920994440689804451790329047781925029534245737975666726839753379337792382749627248134696167508449355864557412633214384972768012630058989820274463284051116615556459832727272946899919206193418491173811452974194798231849325159664333905579856988745968089956505916235463879982565145408458625451945608970900503682423530238679146085079831496761432422919178884406605018744744067934581468130810032858848267715466001912863458377227881518891637633699573244695459732115824671046736276928106302927534652466093299131293416759581181995309661094961342109761552238765876941956349876730558349489791024808807907678070786243436667031687618609853590386570054175491586174763429423745067233257539138211289660749648152883760972359373870222507448473468491903548187199780374748019684409827016933960355962367267567711582957178694966948365505451189331285745122562728095964238632028043697069242117382809811513541955465694803462627957350227005204561581491760954372153609446185748982454666857557690451911323313193202693742173655403353448092807828686178438227221213016274044914274594128406419350252465296076965695497511412850913882195239644388111127021969586745169117888809369306840299701488992425880329491735914629009792405871834440852782212240586881953418601340315871436999927710270807643147069422166556887721476031860697368449795981129028508473039900875144217492022397490571644163569819643891724000804891786317169681037893420587434146969006979196150240814730304674926937291234022142764727937535415253882625581593748044641592593708285300000091158915528231088390042935062905684858566579305004320122351438669293925969764297138239725745262823452678801297854667881629413143250199912077290742630975865211666326597939378435208198885913083338889302387317544311437919279024767272356437987346643237775996201920499289674570486142365952495360872200896705334752428231982436370959608993792763424651796279296410404150237616445726743848022077702287818232337254416772738258533713997324192470581492336967782876455195519507794808880424930953905972108922005434358545601607508187282054137512196122027616210543489963515237073124204434570623411647579575083716230209700286900766424653047711234289551597195612352270428714016160258618759287483273245993575756780734813559209731890267182802340414960215541312671309086833757471175205876301933150590956187840276687134337670526298422668485271489910318150543252835317044275876074432029465223683036071838200617206244774127891110762334975834868981024455225275850956151827416591391894012104907936851197194942470971143131965773742115334004068575293286195624904685725349640143096245208042772100078138548921670627370694623470150483878270506891073639191140880434015380043576464843096113658627535163713845972863653495664082644462313336112142377444598184769483601656988577425402359807945271994371124007619880200409410540906911785412882610778211564619533986356531719014720803427336594424629199215229771199974733691859664493596745951408096432192660557437376357069351462300987567902282311159921273450109237840602270654417712079266625121702949542167487239465571454898074633811907653848323582032145613292101475767795801346347504180057590074162051227320422027831278889288975660572693366095526879881384031255214569827862391363756487378304754098566446947764639667872390432241430351780673110308017179822153732373495354402471742272955026278949104953466825480815593623968888490293112708167246493458382435761911377860787301627713977164286268052247141769513060034825428938836916017031516974730004912530168460390077983597832476111295990092651124809382439532770292492561641505158589746777112462880292120849720775155381393735715803778767806477302144051172828396059488373726229843926402595979866825689453251408829191468734895146909332352065671935584543702751647591132568872042658806939446625919523113260632111492316973634200152030065516729577249885738062706671835125557678283797310425580182976508624064450301630180678071657293809830021537165370058415089880062774710463380781860880572528394930252273045425451345110094814855675741635461297353745491084516566331318788140147942307117626992269763368489445040131661456985928408149133844212518611210198491194557246207386605514865122775927399475311873856015518755827781455464303566048777510913861812123474975728017394868786674631805245575264850346759490673929411085128536073827995565635417831041847127374741013502470008030223397547223521127398937507605312512955254446394781517521634589733483159431144353921637478015057742064251138272299977773698137757813351094022006346276440102130321477130968533053943459625111672896558183446925679600188082706941334923667310025197073500523397580341153698859817943555861022608575678670567166316455570269655568648938987002346195963274412347826852889647080861186707042405852889039214500500730430661245899944531586665570546908525844725582527812482028045700001020184683571593149875840823704584335717688784193297518245462469289758876357869482549763304859591007832873767014524435674116405758695359221154199199480784218007015099783055393805651705654530302266455861471843214821159996850586562713435822049137985224219570851533860487848230612269097584716977695448739495325221165110358456954530763285985832519251098597860900904904149059333357398420941236094149767348814597252344791971967009735361168369466002494068757245949163275317989908990325699515490082223430877282117436526937813373254783774777175293908293365189785448960322950200450294451272138059081730004060709609704446265696467652480351574097779918495660024508686352988768564425673065400123779782216670176455566142844081759474360941017769007280143593914167513410210639043867459072800673980446117969259802798292705776451004145992967467377062366495233255767028117672574707934714649571824152091836122726950546253046507921034769460820073524374881323472279341602938699113402800973354326920167924590390067841889465783658988591420596989820448854693585753576667851508427638619283178451290736571552330649236865163861643198516757117397033246611645381845080028623528061830167828303154036581897848743683311576034087842621092688196421698941093164534127134509114120455781080143183371570369485110554375714448893901167525843058602148692537942440651223722384539398437667492071943199378355282071818787007504492485036863568855036274782278116447877000287838628748195490844543179044120058240951545710461036695996269445831921695083861300389021205228135510808297401321455539425247252766748027050454458145831694474962239566513966577087784347677405380792160822254449911279391093549210596255111971633095831040942841055608401564369333586937379972348917625223319434571397298508697341650414125508610103309218618618746577343867018422906897540728361403810688193218588971822819906200620758623524799717975702373786758504291306484949073803094531739862747727372962368842284667030814088339179876383858975444310544179770710410943473843658294618850781925084520574960986548681823547002555040348641192752467742126013416705965598790061689572859265924154582574097902047053021076928660323102771448262894315386101874667611039528353923435343460463027043581000329145086626292094447119308595441006296883013912890688322653542610723137136635485281111047041818217946232150762891524091368575973758692199331946451286119620057780836951283816736137810602114753702474509605297683494466001453462743542775339465327133272889457319968408355045152319490463162081810685492629824496284053004179973264150421350237410606715645952590413044998645746999929918432695874152032463766974439146577472271373614555567118170286361645256004508806334269067386407697276043895933736339767977126884259814731005686200853159924261324258768481977422444178352793523644171563716483416139225826062922681567740800356433437329535908166244833674787322730322046539587385483334323834502738271730203148024570218213538919651682642521830739803399824501296237114186935762934298292669990993690887103688652413056582502464229327260843882811631653698716395890969483962917574627748891771695575820942421363455759689427741777231043143057105585293902972180790500332571362642734634377258448717350836525918573210684867940325923296991342882681332927273066969125349295020617414178302598589821571662803652337938468668218365061226416462705100307075572137801531923999198096378638110301384262260561877321546182105935457800201212648708397307549751696526150787697162372976482155654048170268208978962687472943502051170157477902067635631391372246767946884372538755993107874218981255409879054684211763342797134828506891964298490333309650700105239971308438864980432722599968584669067590697351866700430880554688276182456539876303449291676690629353518750014352819823235218071433241890127494169238527294649774496842271512103934809586158665026436413017870979908345725256915630466654258220059603844475575571942596688841423400616043687917684189980158511141901575106707856137354559889354562871179166494474636032485469766202442341102146559300178010634090722883253024277686350489482566485049215887589534464582209956244700122332688544049322203531952398328373018722980500974079791683020129449822654932311468273255499775397423251561983446754088692197978968887406097437117264437820880547578093952276894381987854252066402076199189088100358398334537214015908494540335390247278439103152217542963665838786422791674928883919989341686265941071827474387864979823075132496135880384295472669442713295684705320210741040623127575403712737596449855021340993004083495769602749978628189538372403074283150704903360792715525150839306249086116134932782080280649775635655902237030847482275205990627429167535374600139633651286078006865316479819156032592806984135174891141599070121297618037154387160155475569162742802302513051517270673668187109568661475745202056344426423291565254059928170836209566148184562966616212081707545209047352409577421893549971508642974761707564465004795293788518009365418045717353968203577602206365173117765476453441166550093243745422737598436061562169993660923651312266220575931942952569606972135885897780822962804760524973242020834296853098477577741830669837038498520184280538654217741044840398280319452040743516303626823188603440994332000120058202029619943742003270750415837369544294022225763495828625185397972245514706226732463415704171998495561763767592936987831216529525600996650223648644783694574851743283189842956358083683073363857224990983385275908183453973576083011511087216501713279781516279326017501870021610400855249969558379567162569343394546056600241247556134101043602879148781923065575310272265501432162613151431046260994632919302180466240645126016389463528042894696427672151575083191691747731598749325489088277031887699935025381460907217143831877868021073802504415481260649896265946313003403107094519194060995647807549033865382606907502801202852832295754201038033264825297328703994440909067108187067465174521219195327800740646706894799493044248944594759664709181568447457581964248073997160052876345311129988158049620439331143382183456336397426120092748160273044522291079043166934099889948898629675320865654260541371063065270055351914032310541695375884615490777501086756967200837548380708371669268310703139187618978901928114621353005472095591778760024977958604919980386143650235673337438863094508476522414406933214442076566115821644278076094009234287822114152280154486766611420569272037717214037711170597564038771369363911943776485713718677911873409159125797397773592885812982637775480476505015283643400205471700894188185472990258499465425959997930444365208981387722643415191436017723588838640528072515236497284533163350174030969379927582129486100105992021815225754754340814754566609763464428277547182499135437964055614402599754897942233276477308179852677124086120751885132790994807865633947465249184114613168667003887974316550069283263271621720240343382804738212073419031941069625269962418869827279065879905390508582680334195022658966788177965612145750987982386750152988791006823800750817636466188042863463264365481660637994989100241745375634066413168998013470916608667036874610560746244504552122150254346550006861129759402478446719277533194517440950469521245837610582627970694205670886463554103139629634776046674686709385763582822771467314764070615476775732154261582932638820061738191058579044369398413393332977456757982591649154929703419054138488295088391599105233111943642556792925801851413957757759555835275773747941225355460099935171918878923258231255171022917394519912755450866610087986182382670085589335081895197663548295350134177322191486264444542187078539589431699272318442387676330043612338821217970918912241301166249297320306988093152165374553441893266852405573733548640202695368978456509519588106912251730765280477086516498895097550446890172139063013586932286046398499097144340005379359368135306898843470581745870155450711709896054275615178249029416656737735043443562239379021244571208651675199939727184896730874950842129604441330466667056927307601160392341556444031305329279643923943993905724570307486291557008162539379854952285116794956882987219592905186490874682331544078661569355026298122958021140487606794180215510792684794517802501016750416141913073953890668408248524970514909978034754244524066224215491364411497972588278479071840543007252281813535591839795478081018938473736147882235827947122496202806086723333486838947558461338492462818690548665488008339034029232972175454856826019561950390496236832553437945003119875642218654611412019356224045092316934425435146121398873203681055147936560626362173397297026567391118925032422582687584440893275170705644206767678080039657212613393251924434430248176214356980929870345775104040134782307627551234366859584750426883174362702759530367725065169931875646268817877372686846360761488979990542638916303147696269253235688474356553497539097157896224313415039948440494158598689351754676573363104989807213141960050973047397898501043981249538328111258503685505162268360452821008130014448913205569364102115215953377092624791116229010078943338655193597361585843640532437029431428345075052146382990082142813476496447359198821975294531576495117103942006901340277549225578484834895242057474561567431976357245546067156319450223973560069450176170637250504068310367258902376458149217646427786456542692388276163537288842351928077885106130924190284814883071286790571810176459397961034935172483171727945082033775055386443953987366101436184519097928172123793011467720140691671304022410219627217212392841097726978090318023884615493463868257858966090254818161681645940543869668654424794144219505057024449862210926846185646108304170826037878324070219608991294021825045319953446600442930090342994253571624113943110734935404532759179441759404177806739270870604010473644175923558612882092918675871329313740820070690150903182570526499462010399788879199321434320113406687407970952874146656948094632784429777759294474496535870830576229176425266121729260240907131147561233687106289607967316118987258689135399370377615695840327707849181944898324284276606768417274162714667433297604484886115229118490762544987433194513820407403989712510409598009760007618620379082154635373218049904195421472144254534475251182720140840404849625716250144751832003590857753671218784134479552005110049875616696062772778034365045561912726632162510596814738686103754228716052739154754198645438272764098763706937165520724837612380367055028019310709749881217883458511233536626452977581603061835911046657115100922450440090703797115966423361970827237186961539264429737069816727013610932880538752626182334357550531954901526540775692289149733154011585503298015332542186866898721022220759293255668898233996039188768643684568201286104053131108848940085745413751764835702412672706440253637757346882300141518646637398644626985942602738337602549813895320870313367444936541974825741934144686231299231944457298238331565048598220798424410092574472303383073182618037003500254904095193798123435853782006942085083354862148990281069833474042833769368348959460068825060284590366277915910145918765355286474415635397883526625905142892620437678751513609440897615100816258096789973248846629719490130452285419686134908530101379819046903480133880619917562022739271562303061729324716608009514897219027752860288390103523496461685538735133861034693625332639612737025508383580942368804279352035283025939085415897916016179444005820469104589102717629684594891807031823432077112083408466117368279357891458034968026915620714631647781249709381624900033240144805708216118713203246464335916816272230733312890840633763974036946458546926364572195925681216442771515993245267757982213750593678260815858995479164216133820187051809320408414274478153436534154043880913514235981632745818534442482141438449273451607109701417579771609066617871716386049456684531206530842276523438900225473418782677334569753797989559081711601991295957162314227172261144560458451993241869440481774679121673575951906790165331024846571792100989458239983701705764224720815688902574083403386243336976873551750702980864476309656417476474672674674611396474042082665824379488946618865336989022784628641756559500808641479989566557072470965353623553104395402585687717460673897746259397177972845144791032784979168199329590722445702128682793649624164892030858227024491593731354617937660043447663419553260232013999693525746600316810589506790715308128274863966993047399021929830194169675900171583265985510971380616954394596652126348757692402657292419538963639773822087161719003337114606448769090342503937471598382994227310555225812559789463109840617682542546094554303516103428082703600989811050924770485370534726730945607437842200523351344939226245413918529567536267390578999609099500976809396464735761804378078360587504775789994275296663089466609954860776954112961853984753109637060217663105760677956914582500661937183243828911570542527451525389142107817929249385550253585001539231264190981197810500255168383252401888884650200998920064390382969773403215389040520818765032928941770384435727664665666438880676239926227686477831829242618912696383522754412345369666182844984445753566275837547951542463182903490501868977177247292293178830932764970738159649063782491836062994110351797730809256434441081751418633571426775335209281642915874420265987837911152762738155312735568954318893895032655254287713224365815862377080765192960445362395115238445079108428477205133041759753171187723039953988038837985616989983417447334706295881957035949409521780443057328773327312523301024242373399785325969855802577119418022835088544499051163083328180441917145015636230698174489727495236728832450746464768151820130109132512366598114447265422185518041591837294344933797888681967740932553286519448388460633492052026547102002464837398423386534989543062337135013262388457147968115715656179494612517585370493861859088720784046694294768147836008156507247562695547949621950675057723167677522828911467484627054837509438706701390794331208589670297124700291533810160945983563289324133801228982428726041719360823942017433801901670083198990556820207647963044055684042727007996334357186173558693585452014568904775602440352618208793000759022260637339543778982632260355640382044912669880851587382514619887092984808500878177163443375697107315111611653947774846647666254351158991112541207420220705638101484201501187864406758539158094516754343696143590217403276901930307935963157988522792912362701242445897184423599108275083832840017284255205085445081295569161994596210202106395501756236310858346026346421361905471327739040863228244357391730261077470454535502686672460172302532637933688297977561425398780755374988389660403024498328567060121413294807803537282809189805630262891472739625151477676558895794399591481273236045884067904250397158103858378677273060549767145101451842385681522136003896266069766224176167962281206862526031669933872157726397606155012998645570106914012092329149506129623422126622221590560195755274567555102234337605752617795344762960916493085690305194706667664110629014993610009578429081547715301205571512178924619017427552344031604908850222174971019921162636359994042244522115492119126929774385473792803631571169928931590351933666265662588696102870207966950406377213444385816670831689653593883121512762834862543821384317324148964677282940124098158819164226841672047753525193437385481881413636412928359200661745456942846358502862998305787192666142873648009661894847172098430275287326962146153795445017253473996083643281020315073689640216626666529705746131202769700664404615235150336934737000327758448434534610246395034288765324223162642518956910331007977879981758533502348816223173669381897537109788523452476582148358544106852011103101117193227384618223918226571542773323390308972946094218586045048255185016638701326761271131780979723813388159781623068165379996041895165993593014598887290380343504330941226873933949683966635632665614251817262537584330015158427290385448374418989791494659831257796563905560007770961203783254462721363114831269378086011743449412688980458245305857243084831253094533930525730520947522107489558364878946883466586273563107274078256819000097222320275415948178986927874135228296908684787959087301725572529520637920156080569577283436940866466581354097362245670009753281938556020237336530378361870134981217598737135593834311187977330969053324018388590975129453151192034710808656461283914144245664827340181682902680193215233231967634505889825999835897813055928289263561416254406924181712799416819388496306812763920122990824535159967008076083333174922965742460412796877735421157725692043380956386218214532552171504471821079473762785515679963562816149550636536846512662754564003517077527494688820547048588088336179540365125575806984762802423585393588534033342501117513686734743829401073620818983727036993197128704475435104934002526297806946068279744691452700340003676197696022739951425182835677520642581043821377202298877909165637406075133020737715030187762751889534735596564338489763277601330976647634616972649570543663901881523975995414257090169549400710258263882116324307471847862660586945600868444339808290783492818216350005059765181115762748737896792079329163289993828180055257354784440699546268917523265745120542008604431696665328013523556334617425969456313013342491388958238962636346167885205531136117918280863198292073877750844784300793273038491485936516381085991037264178660818732806009033461712381416448356472103246457787739226448980176277023736902549526558251227709065081688754792639918524769159072891760918535817211649075619242352325751699015460756797875314803069540687932228460778289481562025574315799965740664017712508172744559483154222209280082934265749227348898137786071763723076381646535976842307896755632660730876256529794498923553364350811834765924732768758200271616784833430132871999225035905682039748290269915929351740935520756209180946062077072080666731175800830638225101397061469540720956216809087163804070214842120386555373802505849082930539195178149598883881290449029471851069735354189480680116272065925338535748245498607150175547932606494565839220707548098442746754991657570667742274619523611646856293913386084540436347056842282778350969704905957534233855689670685263780836144502281785679285086186486427163709321562569029741071263369075857456751963918095990123818107796222739999340266491582657969887507261472488956589240580835542539588783422597352767430543985972761557857803031342330249722748779218578714712081092612842868984350967371115798451335686136961249869694627354191298808110448682809060616357838838454028345576009750025822741785133648762620757597765052816315339234294627525469275832944818733394116235998974853736548619461838046134738331071430335055168831289187269630018466249617676024800764778044710136231134678776523259215167218246791789805726979050816567713924822765515008108465571430957512489794709686200895177562161468779761049061642223692241490793543734189583932012949036026189874642008759866357651727203600151152061434767801413045873334474034843457175440699355012594319564442463542280316347251721532083480267955960757803487310474808754476121373130950368580803678101644740209708151815048729046880564272526264948545984615165587801418205811765596352329965402361483219754937632455740176121506425981806680974859020921090012562175048747149405504806131840816636568484037020677523115501100596637347837064746801349467835814350201086424345370114019971045141293503080014189019767125309436654035934342345555083793705314127192854832090656937032934139849381803876207090652459656231912759238920456739837350912600266567906161372046070334644882727158143356183274450234352289778243144865760205075942355951638343349221042440724324162195819262614912325376112459731839615068922434232495779402178711671116158590352987434884222608956341203633549305859985641800557948987428774772403086072639747331199702707197452159767604207113522758036251357066693526476515845646266091077075793853756257164964051405844814732697608039447778109613470935510648356732339077591149304811482236761202722374320414623623687320010378594318876865923859413683525853784160356776749073795329178935758517152840635549269509018404506085501802688681461498311612638104323236564690411450293970201880626436400324010386910325606889320109968879245359483010488984334578522389346101896045926961539657313342132974289203117041800094792805112281198824330257978597139325859251242221756926203484051594441140130217477110248940570046765223202703090016540862927272660689488494785734293628655726722158176059702476092350867777976554303906135659374149052428961855145179104131787289338325815745072103188844131386650437767441085508881987690413170842616999494103399361113509688994981619687539395159776506918108888390125830361030579010891999606432159127705156423224908609411185591699841525798482861075923298506021106632499256585783956393848638631772421990647936280574532948406683834914835218186154753758240379667778830667495938538219239538515172048564654802180502471239052965632216180252172528048269341645727449868882605906812823778168850189474608153793729639617739467338863471634347235433245161637492451278473021445178125878902990675369372920561184701170631693336848357512802143024197087642028031607129098065490071850829413737588210901163879010905688580421766074814949745334223543051107849011266553556511370859430314746845446737519310038411417531393368119350528511361253085768066044890441107797552273230422164622349778094434446893546347915267435055968871388424727126780280672514417821829283658548377067156159927969644037035249023195935082564528586860209974921005525823569663045458416595023058366749703432209241280899415442633387272629616557352012211679836370600576988382466549017601800674979191172273619195103098323267051995332288940701915374119480985549247649559186458044240480871450334871133517154918552383663991945739132496890047964896211450289030440979642435017428178417579198576288875491888432272644797388280895961170276551303707174464792730397139256380760894891526649611381253767252094615200134451120925955226110326578283391080092881868449220030941340008358924025429034050738019660258594973595862448851818189092516711575806628381891025664199487962495071795910768790337828879611745785829095841032506615943523589423945982717739898623328920218508425137004470064830127723965774260890422737801469210194863924677687200581514022711784516657582093241620770317423118286592711540267271585831880496552621322674139053742907882945303944655851377979949338505147123380534281300400670507184839738471962872277394552820382073510878069821961478454467145623998552778191254462409920835552856166218137720055364836696362915121745673366575983233739695343436081462791462556666205976727887912227008054844828427560360955274467592140592333351872956424137114163147943139858044404178018814726742795996184225437453692532560903193755215286628853708839947205121699141391713846284418587033855706211312018093253010745929583087113894853713426691067315408448201215489958413574196046098942368296129224326863109441500829613297887797329621317237087367073353628226820242061816824935121278356043357727210004920292579975093142527482296178048387885380229494908462750977549106984914549086250088462753161721400935389006065618565597459799302988563078202280716580112124307974360225976321359787098751726966685302298357916978807068872775688820813835033343503340500909026070488830713840261719795415612741744945660184284743441140160981576463022564300006445276224940523542100205599168086104563944538776351573899535063637703298260540112645431137115739022534753190449791649141921634327524484493594360087700109623835734290566167317942661361869069201992199067849797817553664466352667194345984526607407804142871849209112243513165793165135575217378648299934782808691635405954912904717125118383844978051219200063713490147682963078094334661879912396134509748679232073002156225407870916498190143402228325717341087055193235591927477183967380471644718784808749637975957395225677422781569872783747418709752275661787088863689365886467158630533981071084355564678951791341174129976615108141684287988646877834139577345080165349441514201620541105380910879783097077358174624830631654359716738665934108926847218720184440228220210195324747563075383185943417423467735582362426726488790631071063437712960684690075913898131012118236381888081520952773798487351967469201380415857399238592966254213829739132400878859229285215103292009841608881364295342499771407143821215333152590085019548752316389359989946047506866667405213857570907213452992062759612366366096693143691220248586660754128896489377049994061110994251068041421033576361783626541301891703177721922620545868828671538551828274229282824655318699301587222034964514384602527337812919384155672709311896111246365783754247060525799063405565912466296900251041162267287790120953678908167036013956802992124848829573763991247496919971696928382670270472141174723390864058337752600818921199208596007738130635469781665423057013195685501786564925400630277158735322176563967524583669852695512886113304304177317587351229476307255931050695340404567814495403093052039494584281817511846238350236650930051898813229588416042529222934079793888450591331711635661136643988490109116549066466479856711152297517052563605845167662557526515781897625640753737346169706175840871992124951221072443659932718290351127675642472867298306536325609952865644278135995008540835431453060883865430431557867171256876069878701448121124598226734803031871595622815249333964811170986351930934513657748555459385948749770636251970565663875094555109480942446246087829810121289417676641344122852548326101167181301927654376119799063395490170973600929087210840512405567495690837421122249690345138317328747702976681720477516431902974437302163864462484597609582002535725635606720529236219185797243216262051400325247625383901913415568437415191081826704546837299682702546185791027597779198182721637245647674368305327890279937817079618571763516089016963976098139380860380890548799328613849906546230073158829094176108944675400606621869712003174269240127345686203441421015309076157465552764786365878822488292713243942708366682790903136201428102236666233468504729443827888560887588122719017289994288496828569161153704814743932559121978192638192342663956439426711279316601208580728181902824741618084326234861442649048728943865962721083904194460549876186407795145632291515461271360913134739427627192186532893002359295119479163628162581103426965954897127771697106113254103702715022429669546535592072884641939404493571527536879466914557883479863313022829550832915780546429632210330472782750228074790494988890157287371566740483021964269072559285192306881780505314910753568368381280445716537005259602317499784042459419572305678780073283703976560080767079409391140806888905475687740702726142346968159476675526679143937129162487825186575421677322882737093476439306509970154511395371129636370547676601260912349562660488823106850378090777699761376310905728119765841784644891789410625390209992535174194865030544757092959573602821128792092210758406320659629726574045146183296759963749886568239990003601873374020932952769435947114359090603050781861774260675010332940088635412400669554615746194469233213575063561733231259046429361105500008022829093665251872519022842634360632949232803936244617679562374599107671732725668343715889653302152169758974660946564727844802723144308457454184901511148338513847748325571986774385361402272797041299625887461225872636016384722138216968738848874825163528710520703948044690947235910331124230484392486605206222921383852789564219604902362451402757140840825500857644925112034297499682742348242100274680995691137950174844188420748379181038282951507260249432530063273978213568677521911343166191393984045594607666857135780047865287171340071527481192526881310084201629919044542115760063770159439172048997641052081276026643332676229671225345829848709697679428543952615531316208605118997989790124474574156613643297987442782466177839149663554766832919852982506694645791397971123308491561076278248567807630109991975910839740819557595281872381665760794751000725816719881327094781244895828701499399563451010700109375716485187120183177298905828507318090751658389474646883804074180022061840698868837780228409172447963648072411961836111147566956103109959947925591673246551983757606918389201589313481692340790578590973289323039907596755884579692013124282430339604515046607143441101058731615710563925530375373425422832448084350760865960832485377659687319723567293552376240462088670442586385885019906240123441105193504954014512295271247053548236881441791170482937465000770465641573452054955766850973803970047914481723275326791987629269750647183751931384419269963398442116008812851154887231264423529314619402364178712483763796683139935958626953060928558787508594929858717259998291939817029612625436768780629363385994741895184480618653703392561835684018984020957355188752156708769983882503202695396129641064218681315323348891196727512428624826083543340671544861173496355297549612663995856845726972516443174873257661020127248440203827366527217224738472875357132038236024322339121251400233709967753467617519507511496847975610183338874179696383779071579861825810216986567604971180596069854973405713718533926877553064583278847814240538451331503824816759736458378482942390012109951473775827815963850460145930459091171518193423115495313459376682253606177906746086523574754759603030674109255166525882867630163828167414534358818333151603983069120990804044887809488329331303483225107446296819180369303976160787282859820003125336445225354855703003909902818117867683915088781958425998269436332317828164189724280597210300363247665842467918989484209591005842409744095157961238006649169396299764214367824351733325810097764864105233744047915793479520741197648344779530724398980615057969056853051166033544909777947646615714177759255597139957828672555426762498500154608022431194681375708618334879767890818849950506790736319261307343818123432612247825578526854226071118518010129189719929921005366378046078781869182208127132470020989174749709326591256925271611612781072587839552929855143735437150768557084648625533395193064445065408460674439024899780116926574639697300711932350060885542223682504895408595383910538456647402651457973470740172169630910273025914537904585901844484677454868317522315445063891526529496859890427413401674216261223255421405002818838218429662134868364198500339101285308762245530173055177792029944265845357710621274437000231116110410901411772051827431991827177040685853394952762512963912072196180023403948957241821364501662149694344322473383991171325554209932540078536568686904198834025600259406721574837944488212231847583683789396457817942281682876938192821545827281209931559216384185833706292200909867273980167114838747199615113460580636354549106243401238507877194582642115602820594598594863288348743830708625370069962011931138093027000977133655942190413308367233848158822062223389751745047775331331460244685289407566992722934287940778069031130643702637114416303567521207999587306137843853436853445575964594892855950392323825048110289721534102160884966035196954574759415954252839019576953681647195536285557785943504176105413773791586818123243412925769696786103022947561548486453412827644974837514231808722220051376093330876536813324670210059098384687529874899156045612516138480078709245827967901474624644574723357146853094850570325090751179598783691901249389419779188165601284129110456456278127155636706431546595201477587811454581629606552781330557275484337526533516599698330712538559598885315883921873967106899352316227059494903098911011696581264414362380108495033389532039247841842314240175660004667561521884129054133270340718918223365196681751933428393144459756455878821628640194273732406098950217840666627550583206752899769496278102119550643554235400060792120608591127910453178040820659795234406750885077083229362030360054817317712897661128183257566808259965109152074604660884378645856919493911783165879752733185586938217932444618169945849253684447189280919347536717183618535732147947954279526203460730108070489246936500202076236065159634625235712416065811331160672928027876345870223380957664460264960627140444803387664334821731429577610327703788370058783609945157151379463459267042119337866053862928459281943820130801215078711543049837131613209906238130782927210345892138830556351266516253354465137090790588098948126043482127625351021010462467823950411405925752218179324655140691947251266475806254943766589153600159414832530150163669110633997868154828843057856184499198538062962672048922400702380270397090914058343055233423085885202787458456581414891873353047608844336908363061155349176340144779143660097345272481914048125459837822890336624998572227500554722358363113733202061117107858052478100747688708030243478845800436685026099802464827200979425348521421015382553009705156919097658866563497070383412520433510131920321577727839696345981401686283340031708379960429560335031139866983013897433101837026117446651547533799784922207095166151955331369751345056116708037994251344181262997181394715968470538656008907370626901642093360385524523850007673998124660136903514565839384138867183270986963432735961159073233776910206485152750017977535215595546762540627259755990498592487005147329488418781405004504094471940032995998917384479648436190063533836957847593887856077803787370991365352445753999389705849921502441571554068904788854352639058089781560770882505914281270088063328510922793589032078594579809975297221009757942310457897085320980447021916804389885075025180533552973094834637664591025496647214666703305039204402809347206734936922131223040349291234794599060055370500564317379887892647333440128842120904275385015027208840962435897269803854987301595251726103509725028169786320831879072369223664066080614151415606686896625998886314434334975289023822976810222519049494464404661494455809228165213853126758981817173632530590146355594533802828429313460369509257538067692763309905018035899446565828884922422997217086412860299221882945716843027104667791670785217415742699550777839747194298747774228696295605582273433848229969460145347331505745760850095535837242780007119645424341957090812886640285618914339479836305327301892732637314090879104516670345649746144689287774414354089119861242553572549244415796810832624073614001984180013280946888244721122774163199721126397280699208979871045695117765070294037783466077259399703489790879274882515803781924065645010566252158835421844497057521966643941889090549313542842335303581628598471351907862025766045486753226612713310504865491444141153310959971247273092635584083266214400731286759638722257605718520778189673692716781131242707442987600299570164802316371483908673314270250756872741554451250548010886102413804346419672984938088965460142212762187291455381487088108180601701010462726288828012688312518372590872075805052041711467402962265569897097887457423852260199434696992139469981144132343616155328190180780750221354969357947241892124473088183914561290719438643064571555442504005776550756059232133622237008986268037898280000548812505490139300301370578636668819601420476495041728313224773383971709178032850340656299147897098594750577435158779492251427873973476779969253840614393391527057363088482223564537313370124603544712369765973972630800693569855585318914295507810549842053127529351905020939600712144383708147537262220531316699585666300574800590106433679959740400605664235718661063585530770858488896194746556745388131105874085623818643718241761433861156457112146649669825688163906376096669789739851601451525894768090334890556532012429505015376583179074618249059023621288992609666344280617336978006470641900093685035694976537409334266275908803014335648492424818725219716386564592009436363678395597528751988936923060003618843256070463868556477207757748012189023129593099330570308973308023675678329918605967458608266431158887397971946369523210358791470305454876486298884366069717913803055837506759185513857485115088150218984171348914366070099611548846424036960903857563414038934989596282455771256232610845073779584147336103161501109123562201045971104257699903440828077793333271931141601801694364404713294889636590527962232281358613069978310608661862515853469338032302848435604427655581954766526035684261351773622637667628668237556823503942755215193542716982840713969164196368045453852348281692953610794611810803639651084983411458060541422469920376619665821349076792080402675843378119478530014986092330311637449293511572801478502117898958577034445343199768057637427126120452965857441616326167193080977544800619832366843816363672221854118345378760428919716694808014821085912893409073235501198187284859491457932915059844144198000679655331171376101983163335601894274198585842074495217745609668709947853707234397307460526139611664239553470242008373584282216233651128578075147984053763191203360137603207594051297698172713974337614748529994349912873191549447054903535494045681143593786437137601611109124276908346604910118803281988702386523815923799786952467246191842864805320030911046939187241089802417577377164685179293333829457342160987462834850479111790154788330158995028880346127713756278253670604605952792817897503687409927997453447715002096442382882029863234467697853711315757519836920467385389702417344692704875027585585639089475324135179203293929982962906319053821938750746041817056701302412105966331579002161223658193091672849666161983000486173380443852114186998343820969126676723359477511431096790887008790668177607086603375715068811272654296637508092947435533779517688109640387401809122323617843289889887708489398036420274492972649921410562773606841348771437124136347876376872000331738514145218132105695446749242589839220068883183272062518278524502170841722874928275581148624878556571501383454945107627394142422618365475308658240233764541512466914413540056441379451292275157831180248662847484157148834243378178506934928865995065716039242261309608590435330100049202053765255781996595263090148092006849566198529215149793670889485162425871818793379527502874610647533197899834636804441800669168097715062878241689230134925818943991786992234830283922394317117867556246846249186923329544924186953198983518872917584749593854837636609929085974789985693218141752406222937356405754172298511959274401259185160930260130527507243560418767732516328242896432940904815427693192899514926474439306162996701134932787378022654373628098689017997482653562917620111774457648714466932649952007103166626944015423544685336862200888434001406202141380629632121986305297615246070065028366434878063676952263756770317316578234187811165127485458192530794934966371112952808682541710288364362348714030526982792120919047214832424341035188390669875533300303449326635923740129542575200107676518778384177452821750061970705450723336082546675213572728356971612608659472236070661632377584648928276255336289092788970927566161419818287780419921089436973382341732273054377016817000332058848945685018629797757394140443481572755546705694488616753920113891180615967388610584996037996509223270461150925215362740239959814520126930508389701368520949599254552683381215616670269256925399159731747746603293211143979330765409362833941712098012148040076902428687223519193202408087715095864867784893944704610729521335915088572999141873241947989276785046240106903736115250750268709749845106190512509474247527155710322212062017177533077024000337002250608537388310354139484918871856618922621420606062297639294302370731776129195368162494958800146913991302188597958038217930747012979646410826405488534578223989034468350053396357461201635959465507868322390178858628498486863659474301326580262620180794166992301798022244601830861149882408373025996589951965190393397286459229301718563642420316659531546929206516492072855112821175847779749249377456227038317786043801094105728889599904472602302657273437580318147939332595897504002683776794982201995553054312786173037798013115710781418382427377498533926375177113336602735727881455290173011310238462869982106562142531868257311283869505570730648923548798372771111016869101192500343856546287595336375344538241771948967207771353609473133335798429599347927435993508761604542340338028017136925737022502139646426573419337549356114066126000806461058612392942277602375105702003820432598108563590306409062707352217929449649254390491689596656061380899962574628217749501073497966897873129896131319725149810711720085497923754687287897524565997575885310163384490871045312294976135009099369638067370680438936217102413359420395001425931040901180884663325988852266030059756221750854502071003199148817962262236957369443131218387474214986426818544163847324642894900414303129089336469165674122220424877919568935771626579908554688791496406703743417287003936193701868454991558550417962424387630430545433079129072223555305766652979566625356910372365553566395259952289835005264997989670632887250280081063788242204795720327847366445575860185841167958945591752046028831086553566858887532726175223025664811796412882338381040221024981719181386930165476741034365535880593076337947347932129537284167736489748701399735553651035276533717049860983670100900480419279334670573360654823056705980651897478270354791524907840986281647617975483119156657699058138807972043879914924345130132629264344992755734590723532789913883264161234775847828439286488231608786962376326311900574727322209277691001613691332413901658016489438136865983197243421791256768379344412633740450500042581353237807798875117955901636023076490327691372294077471403259417358488571006886984059630770575233391316738866318041611375240327880134206114648931344507035541172452144745695001862404525920608176579257082233134703351658946369716905961313922498941164073689398215053604141977084170855516854292797241917800807600363790034694611948497330605674552773099106125219525270372245701945560327189743745563816110054565177813504491597681293563139313967076477502438099961486875692180715823275595927606090330049485579396091625530399273416254225612050182595627056638472733643946745758723598828973267594119000111213108112994437445742638661862543702742946659841660713988981252838007646216944442477840293412996036400745924754429433331707729745298548216983089751649089295503742778476821036531223774059157349339319218586242445230428159568132662724832618137114752017368380100540398703220207069905491416266928618397731355373897233511653089828764526848944687526123183941960462739889570424704149511112474956420610280367714369769966000172480435316861412265856967859323423044780942686802481610915585240558095060936939838105776091932832920512309014066488604469213354531876205547572834797744566888549704797726440590780889158539699137281730845801688504303836042331416331611468058714791968331197272158644097971108830450246820027196567373216717781439596750005640194464508614900408777799035548974179806853766560453428230689751543357013094047524765711719658991897712819076267716279814810989778608245402618545668774848677450239593633193699110347375603199951516326618494752254029667036658142695228650884864782152173222479138867707696208392325419885743344980788764281457586583436731633502405061840892906951601980025303566770315919878145301725829416643668331131575172722347884277710949393785827355392215928817476628181751391247038203848600279286669279567545011395148238439933929454342071391333236766938280497516403333578480303625316652764726286575671453515605936671346316137364927033965214512029841192007270663096559795275610879395054947664091938515146153546139884558570471559560261822112268490624513756671952895745470444890788657065262420072437599186457262129103160357042850175342729547296227913722437135985680831348111593926114511637932217829154106531190170223395467611417568100258076677009156870243922724827873825148352754564100149160609988753385499782079485097513292452159874017621078095755411346488614424300978600024757945332123885601982115370965370649747923016875081311974304186032435633005979102035650796540063997035400767240230243917765790780724912787383214064081337074587991281495356595213981816171462553071935904606191736658462175533898616271399443155060903274532348308450118949109341479984759016855122377242278053189787366948361831365414675155421738144967558168480949754170156227616832399511912322408877167030466329789056740652989509606971733400679558399595379361486864310310394705029892017604017777587096245199749855413225151631507251175702070630177043563864697244353392285079842591380409984533262941771107663187248344863350212555928276013300673830438647780837804489556368844664944536217156636557149148020356543016354088277970678779873931867706774484962131622279568300905120604522703979162368226360022908963916414838574071276727662796752795046726805403709682343856630569318086321094884145821254663648623368957887881791603235682788355518697603204195254178100618363119626308588784823164198318968119236067949621450431352745092589727394659016392678438550052443442510460833148910723631815300724808466103254182017545258702163484719917082073541657826232525435163335959688815460982716734022280632784417953254504511303518517380891439338984186935463625652899173592230182965396034084559623157936982682556335699788022284774458150533805983074816802992133049228828093316071244284835864581413707251464538069775705842542815447646004590582088123248346964671010787897504329914513334972022782187355762454927887561724107198100493099733754023001847673518533166866735123996874526067362255710582759487850484158649201371086178491389841604679799624543378462125424530497272415163102004592720599252836793514902689191663831250428866300542779500658083366808221130674374845002895724801698775816183909163575553875283279988641327106658891782516075510689244331423646395759765060563024932667220891830194623439896220210503963759154739452597016820143102212586035636489588786315725819309915156097836046215554868361459303247502720037257739891824508772638245690790078553750147245988752814261751688619645720379875512716774131216047887723172096704797038642624847039329617196047375691161703795765527139233143593383894697005056548140951745048984085939427185703538865748976292626961839239857150441055145958651234632620947946025293792560698302069933167799060505331593135658743117238979909436922297210432639968759836303050600380505342635927610627168319830644503997391146149785918881264985776892096806687060476139351119757680459209469290064113647695733782674272835119834014105699841013182432529348938230671704607793133973575518436721238740301924820821270650415495156871983079814303716965166893896329941229314527643214949512731408986253473374814053681445519511238060564478388833026471504196730961601706788070918185275397626100432401068164455886568316026923307210252313592862490060841263306960518296032404756227217324383730993348769567380576482048150058318625920052308402361208570004104274392303263315397336362854887279770136052638398026267411121541860609723939180630621146366477361259521835478256139177483763364033549155427366658185606971454741232576061669580765117510039553861594623937754575580652941021633968371403151297124813431755665973157553879351681436429609802266439292431636326364803770420170870451585846365273656990649258286337446412079519308373561782493753555977295862532329991899305328452469659487038550732975036166509835240183096988869529061374783245902427984243078947512095614944846691384060584628955026387751771199803870628882092272846427509667756137649298409143018435290958731460964084795790221316958350187693464529540593364391959064785832105223383750804131916251855261438646470722188086330604902053003418687934421633811472847037340280227216774022892969484449463423533251739149181559302185992077847106380916024343493291751244682202261297992282804965229499436317702291802825443326128372792189379495732291791962502770597503736316222403366568190551990530114700511321212345917369155894415044052219125861393657817557288111267919739728909563210212818478760745632056301643476288593325567168527596135196113199926512087508274070648931440335713132147626101880436230296539232114536698819698300461464492274751286250149862494774772413167237578321311126381997001761479125069862221989322707297613270835428898132851441127551308577639519032303343538862651544289448117728899244486013807179991716366262446257540108738226810515703094027137031413324072208956670345576755884428227413492234396852262284448623024823341009115245124850404417514121405855592186044417110293938478165575645830114693824176843226482530585814372735937638798512638042999246032607049369290379235293866024365957548725682271019680152421530514173189741247305891919385619052655364052954008583086996001284772881158915936518345110651742365221062527540613476810404520350731901557740478282473490941072626562781173989307020911892916819763762632046533415668586694643541396402923399291239575799487178510558691520707901111023595842369939938041935471987629682470328360313325801661744013941515958283380026169833123235784218262514215660349727163576162226429892622476869466034980819868302342599003812395123797046633997119910169921167886999079951761270590736157752897674436593971720279271633747061427961194797121032141512368626799796276333447874804573312182600226315237212686803474254411627999141350160595167375099451292899037819514246891879481290457905624798441018231839524622495306846224430299817201645860251900726278670801251948001449861105956614286130520556870740788607154461882290502611808826596795898625594398787050147196355092883701500571519340595235769574403194367118656215884644938888548162716974843667425886077558187676731907749654360963390935825698400801084184415197847819417691422326512315136231868038323105592963523539494807432100513752209802477913036983020758439102003629703481470188429154833967774223919744840294515357159730700554281344343885084513495234383346356170165119640343242692516155417878510618351880600950033724794534012447491272397812759077784933825392245710180025132721026406483450582000344682650653262287115217966111373644092545111783847753503770915887750782556300392423736157635496411295036416973267276953759788867281789467429224796236816183034932376174069865625291379281013943930394099980757885544182748026005216593537416867395063574780099082993305239554028039468325586317160721340006997604290176144464286739957190167762757771757102318812359116722801367700716275897816373832274504435958315772506923621998216190078741771895301208853141523998659137610207162777656907605583521973348613152903685345603344296308809056498738583100748763448581386104111963594696278649822255000597171531644132396014158654091925835937570577813546614109189992110796559208781434791439395254195383226736975070744900096629509138053098471768802630853432269202845069987167641446229265705966561647214839131734848675865344150154719841110689736317207479249733497152799227550530285123699439962439574526322429664252665148306050881545743477340054683117798705431397020669663925991018782671230893794353350447188312231129727399637888319398982056591060294781029068880396464751848935839656367107190030422597561658780846286884103461097901219094442177182196507104331151675691941403059435294451736302837704200273275106606112332670339489618481339773398113798462171807805582270238958747045892444398212091833265698197516455782107447459983180211858390262023144517407111006145813139729095249690485713767714514091129889912107311204317268959672518909149303523788447856853031988646853918324561077912091808489082147615907776445661270380383188872963769416410830680252731398372715573434301082113799350299474110454698152325726686154972945247958280010069680846839245302814115864900191607327235373407583510481342104898633987534695895214373717417577441963961045072011896210622812917972458652873886161113070489276810298363659985463720808093443209740519849616890066137438398031976095920743662275446179651010902866984319343183343253598106292359206147906287958241761586020769833872383680406033083284442599998753924634730509877048477008730013893427146071509372127148326008805302701663625742703630970542565154745887097850248504125463528420270896741702550202608621884875517999334125814118908780249018145596022940542936719845208965096276873606876690387528869573150044267289707769007998794993752250520272697347672316690614850298700607768273512268977628280458226939693846397204407506285257247968221439704230626868706832934717590042509128919168607271538314680069603606312979709679166484199758485252794144562046363862409238929432271937077670661356323896111936868810612244021488858016385963305094535477878712213592775563731671601173477506802351028591676643457604300720668336134001370245467496898032960987395120676963053822417163070976949579477561318520922390719114791616416801400403088351508169805495237759513752395328517352004393077347931689621686305335838681273032303436232351927757090454162894316103993952885801470292872624993186478828721577099254669478422497172916353397565447634283549083739492035669093363969868100513293297621752909717526945932591604406695862563524468937842275636581388837650687846540408296063308795222997979822887017291151844497645130424959245985564030461231463189092145190900384423345321727795976001306523166888049864113044077206455080497426701239709527307968451476868269190922780579890249846481872649876293037369364364050503386360127400446576692517335600327135164508822668440409658834554543688833880383018233829752076781915740232867728331442329391228045472824351802278480389930099376703292012594543626462242162466398349082383983232465835914229495638128662994814377100612385444347845044718924642062121832435197389188038345316596281760123664733222832221519163777779376953093488304053978316740745997343589483812998444264282294841166980865309459655754227896759437928739350595437135444135924179053291325368998254691342877967587276289090167547874088870640185914901371235946362642191013967880978881567148971805986173969597207182294407411989794093586315388402583775157750322416120147092403762243636955784837748931727235137609084192667899468599241153617316966780571538265537489825059238823048604563055801586370330950479247778817048482323640719246097370525529437762227805151738686990481695087363007380583830718746204388709575190761543283153714790392712591701326342432799855401401811773361170770605570559497894602393569386854230636814962464439325445864979729688987861341280736055508429021381891709643689126942213155930773433510141051530040185254890619182303973311542309554997437556666374823370158297391902919440503265203935432187326396800089770255348077554560040835065819376484064165733387209609172189728486016942425541682718839819344394215498483654362649499009570768849319775669056632860524999289705605883682597759466216053676974991958403207104284217041499108349380562085599264570737257613076190476871035959433631990284079690599478974905128772383818149362716583964978210849487521674190528659661296972582845114033510839368949915721401233347679112826024456674620181767307218079938507300917415016326030272330576903371626046892341877715627215593230727645935031294968539686128973364105045579896068469268360562618276060324905803797602736764381666855303361536297109217406286229332352547686400672677065373761648947406896343173649376212860835933680678337521570934010833806730663813530827384448636675354384917464227128045630379633346730329713181874499486727628771487569460910567410254352462506484355761843515393913775684385050080530384392945257419068439431811778472054961547528131098450510698137096411183871318769292752530933907497845477236253039628484853728346158736419839885441926853836215124274312559937377906834953438252028061323525906952350321467694893807246980026745822417953082028297903150009948502222524321426745433775080946147663104172842547077371107340192600067572466551575099084922203023932179222846228454690856139899560567729963580187116407553214873040552403538520071640206563574549881291822889248473265907626202661499898389892807783509943978005188626187842674635364322748169603479117253707126857138793354271485870515884124826351582961083334052201356102620069488081343050630518315406050482477093465084079085812586942994983197155093851143149413107815708829635341558470280036836288827662724932196948273148527945956818998316781755046568527954363829079895473878315122645372723284971319692087116333590984400004449933106351189148842279911701565185990325306294283717169596861128817933193958296521823805518723988674052801412197233092624207415727410988167076649490757444228531940272371314412935628793851534024416196890810327553192108401526373408603176885611788307309216812745016936251921104802211640914066903433159825299409619240584638888422711769746978606072786671915723887914895341874644117933875489878268972429616664625204081231258188198080621014855226686945482148253209223817448616158409515897639595661580309100031638207724216824473410257426391339596576968988113771494106293181501378685909124852727825324388548315741625415656924827995122172452038086469345859579458619509781311059880689465415892859473509827442143148418046146590037412556283866279403590597531954269854096428817355827925809789411967437642502341899443865145264071129346871593375150310025615866712606879164330734370241081774463633167921995201537556439872568522905220404131939876325007364839531860870434340631407051725671897609173269888940651682445479785102469113761946967116197670072129809519585922509371672575104765141979080445567715587202210643991996391012997782941524934499701150459996542858891174375408676787439011672933714584936610942904196540894456927180495770831331155351739421060010976824387482342817042272544185588206722427846535575344938434986578267349135885844254092073427086532688426776780518447312720053622847025753978679815663427818213077922411519444455768854849775125132970837304124534352570093759195076393671153725681819985094395638594168958194108970849592633782876393215127941449200804063764828558106786725806596304153847750418615573741060041240623147130922989555512912948902743216299384741225859722836767497405555020918403006710116182568354563923226649443455332304965738278542771248813888098097627639680784308785625816570894591215610928586558157828017815320172197585721415415760005331582958337625226686997462094965586872872582156434826444264592861880187553397497155624215834805772741951366412051648685415252201132081873894663179186149456126819143575661349471723792479306836790350063450492981613760920573830216372691325622656449170897812977182996898773255371558406507785746940070242861821095520815176505952445263168196630877354109908439329687066661143821300788681081505489889719832190155734792342375059325312555646259827306733104159534010537918303327042448415244235958083883568320414960334382255276961656066919534271433496942641659471538878232639979286530994295941327510091848258911547030324415101428805821026862154022900585729451649336544858749209949915253481769587952518165686585346541192230976368527246471860406998691878699099258425143314112536515275458916982300059078650615864246186435456257400142708140569544071300943983755426697848519368038809874825329795911107289717940850083020456370903824640514852226175127352227356048105606558490680862134714604855671763461952351904197000044433719358591122684131800795517322358157982809809912870480342984738689742416556366918801803174759637256162359671042011449329864103834783219877190251568271247575843902447015948105444405089617333600257342663779925780430263669411578455417424898651853262928014336844459712622708451951509867604214205355001126554798650747948306881741938983163694053032158254390321165620651284974153597780780389879048002096188264460407824524068274777873150686864371145870464016154632397454815753407380587402943857456389834100472937052781378160792554778130419471342888935986247367730618221675228099104061503932616494136156797209071170788218149641869336124887431483735620743006968927144690962305223225891239924059894214526767071544238560851636384078677086077661880784579421013474312011239653982012011864164323278059090787442539783229509848276011891656186256683432230348779253811339736170585579025939302011193586746541438359528480275770355873632426162732057953890056438613978436536402409456446041578335588344288274090838854294839304522335734899604367195225690842526212135658500478547609577503812316920571777063080990012524835566923271550173615627945853967380192062871073264497971052654656582591760969147919781745665629234710085761005194211730707604670948067634223177522737416751054640494823740453652368075650147077196873835031269488430581814963820241710540387616901863452250644419735193621189078578817414969803730885858279746152422247126034924088299765716404718345629971398473331667513740394500122130221920971013318935939910108220885098546602054912560585650776179455033557827337513595459225017613177084702726877731366840835064110675805007984367836986576841368585160167965061509243509765026415637559072659761927467777092800256105648354401977125482675573425715240496879567319530617568856410362028593467701058814645689934183029773752105348583934287374078617999754991258200457872978836247239691963605466049603223982141856116392573779928794160460322798338060925779736135984312162662377212568471480716123828226064887972533221057181645023158989226292512980710827756258763841782485186677957953216193211330294755587873446543074287533214128317391029528602315862633717122380729277635886094856065316576568271643915328822074714120494129275754369952758195135223065419669668636513056659510831046606283438120445932107141532890285589736091195846736560820184145722225973837905207770743543294423573838767019264804613155532477624412809706470363338273892585187434300193876364576145000636151724396960994954945420435975219615075770325087381444090162243676357295775396913942459535941441661091867238707073113155871120726174422122294727138162063958352944755120019598839565916329188905625800145693918743154934911150287238837203787517286210848829516719072497014646356017012202482263977811078675267611432228691590138179605341535155760481240783314137723200914414846631618415874534439457761593757580567016865664275028925255579261323596992074847765888742176336004266819868997200792312822455466822308330338478339036587430027253098454033758260097437546563523564597766777166776543544372728612728831683839906619997471720166353732066284739502543621253689130333308592049379987531219400798834611389792665802578873329574795542448478174591273512475479477117883169557883354302567842516364130136846155522362751131159825903252210198847808538851912716561394166891162752362306750804986231077635046048962850898097522651615186499017757219968070427087541936005439074444153333211177931601293478414687314717032707215820220977938251780922087819224563238514388618992772174867028363575174482157846024838066778834705775504080200462122875244169148500138010023922266332871394854333506658235703577138861480437954168849109524247750901304788586210549652949261602248607077401909404980751937367942210900879762667178851389539116939533212341627337857867001000763039308510305948282333722196630495811011454968007423132521337425705651187728396152518367825486193453018171293920951528460145379988202353873923594438818689630756299483276652545190972726655537033968643754623815071914063138818647695911388795419155150503401374786046458237361886582466732032129045234658236408620212909728767499702694753949318444825193546207586161709048266100948061082863353969950577965349365642414866681891410834263726904798113803707180573885392150885376391201528386278215184056302392021669362630324421138865466215622297218907829701327195812194212303064815198347337884343188020464178376373639500722221148598434820785882120569468588909091245356481556428277971561095575919520911388566142898222336867552887040835336563717964411702126286579153118474518552580144689628056282917743602898416348260949424959914853462366321813265652070662384932598262792544009171050366117928252103159430144746110770300578099582591741015982779855752302391149061065531630968037900784007286926207040683149302617819207843046493443590228792670385512134357622326463497802722634373118791021753719566324856734298801146085747803252252281415782546327584320773216987165163723379419391016052432796306251264560684096294102179354905837038031938298050997287434567317203292115951418541422235218878984484678704225891797698659094881305769806123343370400890205589744959634718844540756418958927138630370769889147569513735260235027884455645956568105893462196941058612850667805325513701568187812660764552633101377304901113477065636095562075837937961017332096135873837734068112845943504338930427903946540093306895684821658001382987346317710567949230765570276017325168484066290137703397639946690126551495165353355075277242899301917053698517579645516142310868089947509887344477139768405762050834266290122078160905317294840143266187049412423204894520602417624618837998132297809142903798129653063577021800466282338200528649139495261472589534273453878192310807670841922504438776514258883567386771796257658177965279871802672473369913284404869517121785396100245754785957785936120602626813944250067329526670401451967444378436729065994879174222885724345529705996825471925411740804344362951963488641266812144835714425445558074400469629348995580798540699404978464192541913354822237867643913893164657196426128383625228638312207591869413810209297849240244280389550353041251278694306444569624209566755184964871328215617381857289022982235967682550788744443376028103685437154802256843681664313465862114906159160645883290710005956068704289958688334011868748911739111105786642871291761855216334569801015833280618239064084625549470946902239854944254412227416091218934822529332096521718216120521464963029063181324238582153614208528937441283233934202817847695959834211250891091460985282520801571738510604418046758543701081266160183910129805890183592861209963203216351300426941689720672953937567812284533913146313543006058584978039166199675992305021552759917194098029619378596423524817287097064086198912253057017821457173502990025880244056770623013905223165437716925816614241001671863145263783285329106779383851794265853278246637576629951392203140082097378760346240306319705041407645865187190192177117982164611556071486657440412340369877671713959341136382010497764442732078607184645904377728279109249450177775994862947760266218669170516935437928774329472498003695576306001720972221678983362588324499008293471721918148133009387727230886851909705057627418704855411394655304821752662268278684851935151066334429977063863392250188814591806460624837137400524867478394569881963213685800429590204166623298654556353643281677643150447724073591085995832708421715467853964856074169111627710570409420812890236519080248921394314292312869773415889934211713985069390880744111086748588708989708847029788834128982297542435875793930164202476288427964909250081564135664677799438314036225132479712682925659153401409365932510580303161582336635921065669935136572053019966378253725665668557587890146498072965891261014062962907545120931204700726182395349399067831577576812753900893379741955020698805108557978103624911932182416412072840805709476669485744187210595207590321390395884650776250885768839071718533593219580591075720130296651159269933011298531291452764126942209697341787207562631969055622979453749091968763093833939876135374176448710263651030849448259392791478156623241168942508512200337181308490084465702294371303290595461411823911432777735296637149678781007073521068226642068527527300343540935682401393222243562598354377699234252209852496786206706418103759274672716664540826963111144406275372784567436435168313642086156573868984369185151302130562183635792203935386616513384682779087629648860756550975762886763982022594347905307201274589981305812508931201745557025328725716545383331441418411410112787379870593548286407253156804779290257937674974658084335314286018078520110866543020506143288871867525552570065081315386043453341894661021638900619575689435838298618947406396531942426761699608168288927762080377923222463038682830837539249365163438695939881791868577181730527380699991583775933252121142872110526639189710393681568295497963519674006969034218178679566157855806757512752831292177785939610731105975218509819693516136254504943144011885520204115543610792611018585733851526836834998518265019933253990395617813646926687009600344150693332441977486283908218865617237063823250981829672631624879833768270324544590720784760579987611783254131190306086760318462927630865090181588931905798421200407826881381888211623923309833956332111882132388098955791801346714605085654670400878418195396133362056860940871586509626868264453483166278321309235901546610455793217806851524071345832170085861558305860675568927770160352097443045702828465904197675745157378887823686559022190459189644768779932198828221629140025482804371102463578544363803090988312541692589039320099677571510177029219340062865037897995445927037047682009747046668001370919944991094857351677584310733463058063384414834072399963760519967167106589276303628398243914608809003726214492638310295042642492467183579899169678913346182209560331773190605441175376003552680670700660420616399544402038453761145550194167809908021018576301139203651739814769572692200964223522859440940570315419672218976558887373553144308435344365521234159971759239381912160807793908664992883581302534870832854192180356370094806465762471826820547746424923086206524198957560744025123860102075148852766260104472918976870742879916506876622917870053459581377942834143623947455616478485105777637393928610742489490140891671784581101363625366677793430943414725655958061147475352341936034860104376216732261660504020240588047809292881728496702966728486091665450408341273880284943616200732376512203529639273225980774799356822396639086899563087296780099094798424846429236942301766582413799025723600146232339148706436294809447444500650831981233661324385872584809782831344456783886389873090903365894229731761627179760835055302975893305097845535667000043552587447899687082654203465515483149986965620690865567668579836513435649099054119086088794293654426659904876137747457683775048305518531179122977499895243653791151255113864860747602321044170194000217674369574276935267291206024919177088745428534230148868264682590541963731256951311853219627506654882277421259082973157686599493800842124700383142817073691963525521847955699863793692021869285870810791007638419491611222144757699770407712746730101039916593408396084073354348480666577467425876476482168742770955275077607338615497009667774846188982702357715438419935244433717526795841191488764083116284326683639514602160765576661450064002180035338193254771116523088315674860879659358228482884835777666458522287084745270280931214650759170382926158735811330192414630231543343686046524888789312185053158138405569553852685793650112685870872624538301501242444067051816587443817231444639183472074080199677539712957040460042603077869569845115688471163113471247137863161652505092018784980079690071270708952060094250256960821756804099228681341692323432653526207210567950060884607625163356514324143127523641308921644635195117400133326451298219072894409651933063395416283573316704082152252699182894845764255282739531951863209053796519669484396905133049119293586343242149166378535817299828607908530727335986530332047104709253196014826606952395351883011310587207317280548059877007030609160056504038875567691954821916093368042589371178336509570156515972041062462279388185887840961185729812737404957928446520860348704177933409061757254112499401450975937540207931016954478505956356473722918068182509655471863826284397319839002282495206908257406710256582234447734146947364043793076316425391564176527275375407892796627743698796925795726344098241891382397453947470961448597371021245633855933901405845695162046729803564101167524016205154851606374330422452493036557192821264487554568616563421463631377425742602278996781467713758785991837871809097063708937231785281508467631787943355918439254074515050178368916639721775341777202242254185827741084828829235648557672093094100801594799891493787806121252462501786292302516471144704216109534923592872289666833475227033661220774605038780887414835737126367659292413806563505042608927293965444509423395326433954551705254071485444075510910983789176083106037257032950423333363244309867444184432658297024123436510698318594208746047415378816110445821013925199873218400511195185452400397319056694205458814388476822491812925434480147538335737387738418819504413811720274970281567895767713388484525780278028151889632998623039109655944092440128879979458763203886639127401712298419270188971997409344512215417737734331141316517383019011553025020091354811801558248188699174608488769463019914532483027490069291598569349292279251288689064196746469531323130876761697853227808648035331012075775735419915913184922865280853229305135294713260537774516173865226431989941576134504653476856715139437076275075579009172392153927985858373659453667242109657303352041882805683765651306884462180455923019092160639396172563788643802020241452181954652561616172192181403876563309003655002705484921147355926859973522569057045202480901771001951443838702293399946501708018397156298639410873533121476417152670570415981511213990943461049079190959935307298426342994757855216513119330425246251474960209475380746365207808424978544067584459523030484754831306442202752623823305240416835858840458765558306234773452134677716618279625170123591564000119511512167485007744182963965614876495784822656744718200271061823702965972669220149768143390359480495971213719165411669259006313662986204252140419881133805156684996240230766500876175993681654074298418576713494310696580041333180654973927422433919195182837210700520652057631353662479113006625835973866522290115010638831454519928868231777278895454846135025902145986510130557047605911123625405286022371121561325608683655536650438225352234504872024108064857106979970194155053029159551750036767963422678132649959089976258549078968363285963797753072171688547438814234257238029437433289061716822387632865484805742644126486792757487912565919338356859123346784594817938810039963212539208818738757185322472242881622616314673065965660804303256635007340381388159858120151701068165449588001604318109499906025388698381918586199063713786516137820975057727290568905113291106335828953732934450957607059532088053400844031338307444450955581786932685061153130904137844405461597685091104647982241256851302906387868316130658293921971891736295655846220119278971141084458695073873497421583408194503962963839249546210743868973747976921196749685972636236517664553945164588277718127838160603026258942510092158973088069156856111696381173190943139536049983445314001565421470123809428236484484822608253987514087723191614243616366658913168718289371992293452134086124979718025631918923904837419515136849313389237488278805271797692986296033901185677141069750107686804954798099433960312826413614136123722686103521521313023709115982334737508347886947380901997005909778337139131866470147581926085772981243647196216973165139175606115424285673695325722856754466632309984282178488181341492342208716460890910058583881238482504535871144364262404990862395350379669728766441796961345522358764683159409287788819752856034470720946490156762134951960740216464447974326227715412251155026730940191979838826671219859170146609005073933296287106498546215248652588728643593325693595045744693723291529506530793460294048122586809253893134087232232763439576913870182815014083101366928284210713396258250448632208446655520820837666074024148919194647622398775381150661254645556497797728176602214865477631756626740298714327018966707177833200407944107502784859407635325703577714236352582290345571912673908310103394655721010358342623115257701072925105342913721996410709777090485188958091487639789725611512120443908032438960076395769710090908306906690652332523448024191412442812309177289803655264943001839482138901259571194306979818242111819799351766074888823671848418218420260849074541220508078120278852475525546326354709673960770462370176186391482893313611341525802203353283783005127477564871368085022905850352268951496560706228225489532401785542388914823456398251233150210926405166570685374014868092767317438590285341299388303754033456050405922162154196685908470336654148162270025030108563094914111385262628025869980606705267047265115149523073176411945382698008288529502785248741071351568069643107826164285767616644187319597467351112252468336851127368612330976336628705353919260214734090989107324494548126469493883855282411144348909693749067428160075719379254694912502579952205423301640231609425440860075564970381478383861153369547231619866216538429633151704493515907768726567876247894384406278668424013163744600691500395160490680348857699272319381040820601368451833630912110750038576845153997189882983396764875470728390540197421178105556770975853774305726601484033292351036295410573164332764745766623283238100431541539351581041011287289821636823878719614859636051487869811622628058564698472101487828258279599801620774760845018000899034692563870445779540499096907719067907527250219943081885462106139388982003574710470551512762235383467065511246962174238693660244468709475093323037554189838675805653016967305024094861297424604447582840191398534966321663898154540376055998570743538602029976699788456568674710327775617406971691970860088935149999283993821193479089344597976600977051814107288008992491617699242977649975679567689443242533710937747425752735081411611051226006150762246771559604245260551941668243289964720914547347367294412647643115372373018917352746620156133946754680691528818195182963472015852236072715607643651998406834829737132006607847849864271526938097879255167982824107099590148976344183021131797589842028761630860350591485077947431250138019552570630375525499500112652602545402265485825740579005939076567624354867821541270866428478512579694142319182685632834226515623876088846417324787504372451688409639091655165617741693621792604278964998189069498164348688319953745134723868922885705012430411552832745763763493412411082891650543616231958865413316881864476627322265662233716852754242974338280537296214148755971010194914430823809971360693276990008850684019694022752571737157005072690336040901293809347744455387666217359781730576084739719468400549722706763212556951072010942613281221646772513000495072581748134748307439884185538818867567207259542226952967679469857514997297092453423751247756111438991013612359615865742113968327501479885467995765778414783008764272124670683341937343434060337202486493339963009843870656024314887995998711342452687510374429925797185266757157228508656680492777972268887116978578064860513238496126972972934403809771715233683471677944306607261142771235643620728078729045209603927706689416053491188659417353038997915190719320905494523576956456617110314821882777013434609852540722423344845539143456591789002843258384622070660358178762606784336845279326146537081582721901018328185714900624774679095265018207864293347200012114395118965736248568798041489193000604880858906531248802766082285677792159592437671006424638738887397600493656753054734555641098585581101300341141685335588506690834965297781588232519984074478056350215870019810702749426139888538164805203087970448105569245791279727708158399134232267363821421435484120209346904221028106917315845090642833095576518399031658840269624234286392618421155047943585633464969146711133023421949618626830414982112665047164899760533950651967910413202002169355931771416274526985219994305880543573947369954563257727150869067576506856637278264899262970236516879329540250044935042188673423954251051502511204513328002541341917028598101438780832163183850999246360363798312679782646097950228297039405361156550342744308141252650979781558082486185951550655569333092909241928564412185734485771183129637513867419057729236598855685104543681084879100716986189771949588400563952299506893929990901128973023284267926284709031470627328710139397697785752781781468626726865171347840593118704882649582437402155106886757357960328157299063977295638783030720789962424754143289712102738761605639343520912127573086662577238711615326097410091692103450160701210798409444549176595538082510893951977978570985989453612514118902459947481295138126257039069130405233037216222122265571322071424611620525025769359661705943794751476898577327419181044161783877818341204271574601858435822036751578417182858242624320470026359665874830913216244569875866867277089316078394428766203642428619934109673642818768167930954913209198922029757685427915290195574972501397363599868809601430746188319426075121230642849844787939598936133761582840569903114065917095550140199863279434851859532903922246657924916684522027476834907122859728810765603064943916989232308228429786883236686390951265408875645690975431722466816218897917888521678362201953042314669049012565236134163062585501114751029251421530329290973715913747246269693193727690086732252511933099943314938006371592607622122663419498903130793248817591445852110136402432453653154606772601012885650351698022397342410581156642380318609326305088816426963175389423230399453127609530737547466943680993540382724372526058632792983733638774258586559314544104714002418894435848081937376806478081036179409999167858010279446277106991816304887256267028413213818055124427856546844354018289483218571467940353054629348613103618059128347623036633857399038133507056949150553375228653141066875762135037099505416156465611721751114632308652544827458778691984772291763734439554068886278069741647974964980245240710397244525110600087999073679024722650727256840563615599049790832474010800929111461227195388053665304075388187674851636364634481515212299341251835483190550719297665602073114410447181938052064030671796667823247705294525864586680638948288253624693764958975722263994035280543702304774111949128360861585577657550061472879164284577048255686632672192178683682733787690593659926497902836144356437735785975359264530847583751301974251790518110409730866219944801070523954134388771195794898493340894841636888760352626968610352770466028970861574520149205962970911243055517767988229936199217369243793891553113088887076410911602967044172407132542140512758361087302171073802245034655600514374433324803882550830413870090447484654666461585581480616367188692177478698418830596289617694969121740724486614832976627762270253757926556745446353994393748872265946091520807325482615975136606204103477755291234900434418183131102545735366815914911218188403926055911181539658020668881918479808683932578919836266793392792085316305435326301941522987303263270290811866092793911537799929175515314697638257308209930518570304581461718715411736503683553269934570931135825233030079241946531443327799838844062445642208955997779955716790734602577074036156576940908803754146360609072668618539334998507943846918722769022059191090519554917991133643633439307752317942410409526839029928657368231319823089630692777412600792237014852958477870848832280879765768553295825275389565481013838813225915261560428758635391066265904654257687618872578676284384572020292323471124493828163179410791630115779966342078721226256933396594582683618656285671179740425412245131149929618894917856640329064817688743211155535056834365836582773704767886622687933230156497805569314016123465293040218818394078729385411998321055568935903495801580305557724798447028328614918317905607957517675102615302084327962692882561015696335265565886835874136533499805511027471649732600776389738906621785008144029933578952139727265823399449230350879257513360332332836796325153784473719549614885224217771620421369237296173852654946033923280713723376165786162252671889720428089645545753289674558046483122308990538440531239922436194490146095425195541394296665713543619526922356204446959443810784218850478934407133768636710831907275830484473788562823744713158597961498840405227105846336182421501752760348535222306189078181258361846312319974107938639550454082713124974443316731418602547126218890312790164804706115312755626932913008718201785897796612633617442777210479588679942733952161899640101580331428032820323922643955393821833309547744703837002856172040018444728667848744748788034749853595373203850277905394879726221622184906562466894948714032143296588698818525770346952813869814404819608345289941910525084159897685824278792386468593695478686898433198889015077910012910392212027227156865055532108321614572089009796115411936024269629530792066043205566543243164478775068388331227314860232632923497150985865150182281877657366782757460275339184695322670294940876869493580659421619075884229819722834696267789074074647065399734360250095862247493808547385485481139149979975113107557515397607282664416495295486472929218620871117276529561816717460923486283680527790230746238620666298093857191427306644523158236222270782117222934282609234530792895233910936163856964029171113821366252117897416862230481351524247372554532924101169002610395471053536641880194759739628993166104447663502910270066563048548690488975139281252162244493796241711372304642805150811941012090808302064602895529084787508261775674265560314013512050752081461562547179013481138548434887366025554307296503116024470396937072618206686785040249710433554797650521194272032996769540760360958451948125758590847968274684649658860000692836480468916637476608603690904485422105964525766711179470134913407232139429385206833510461438151640839904652683905069174990036629694561823029859029267199749178993141090454996399748441409044014456461725602602724750654197452495138684685303128500383420758819755508790204494667156192490613709829222420872399323406016125662639716660780081498147418487263849913098760456929466449013829138683302261325471003210317599943867931370784799199318610916289874618499095918807279757412851951957187495046606736367295307032447972718562267874984914742923849748982754842972642711083821102277643861330923112436792309368343033911729045519551118854595917950809960657270698968583300058708855136571494857419145386187212897175362277104134439632377731695992427229615044888719076816454898747816044230784271277530367265781968864961484720480468465901982638821942721165839030446901925559218095960223298086259154434157033853901522299317148299307190002755042195039071256673236874111985869887441583650491178762502878330611011868112589609316772947043879735508321555187135964938722426410313287643745744364502106921008005990655445135391756368136485394814964621598388105363472286107232972411398057191795256772031616868281138467197723129128684975151056654884976934678826134128969674388544588849187165831125598180447967409689674373666165382957794773612272905815615207404678591138415418105612924358640018678777948463654919628137223576486907339885612810401602619557172568694903233781805867536205629503386699830162291634920798457353780945585802662142191019426569156022082875924490866034928468619859269934063310402352993749572715358315235532212729717369842982452485385986409872482105443064502265918153184689273759483639342923035807051298683580758452623621943429112495929818258204590189650287466871260701178531891260843358527406913196733402395278479897864875752672115942580624227062286346300355977761359053777101450889087308624299623685460679947219056807722324366624922707457866022392137212207452067273047955701009125871197089609746424360307096618266467420831096133443314679159553266726632512959536795896519851269032648928064739002889640641329608580645466798653280166934962499876662818142103621376529340351525873273114112101222350198777989497766420400545231790313262818110874286277979660888005875775547317149959772876187375587307797720602627131388648142028610846499348531786947930604569711188096360343023462549216440714952256178313132873299435458359309179519654349746973849070497935050940622951171855168650022424976263859627280884182625502682641194709787089158127552086032559534235175358647438081761467015936592252527996109030043624947277062233731500800466116241675469268981125894851583643387105319558936211480841252359653380455268092583310863442588986690409675919042353007934961885214366538988943651526145731123913592736992212181153438605280253707512514483862100791602975810234557575375718396239774053496235322050954766132317710353730068587003009153335805801860867018722427189425084252472226201927138052154522627231506585623332791041204898096045376425443206974419419596313171784431511800259727665580639477261823597479526289781576419466969814950222625973888155771760785340589595076309078886428684530122036034237277189989918539851428584712077671099191448861886387568457731114830516819496389544172385580608183752659734868377990437213951041044814713976010779876517652488183240464425759299782813645511519681007733821813693406590544399388091934002424215504648678789498397061449310134363269058890482236305031604093006241713704114337679385106313599043330375437346200604776376245172665028885443467723983038574186583381985863463607085591792403492858221477507868499026285716112283996756172147472410254957143710261761412338038656608916364605929554974545147794968636304468704234098504263434216100876566446913677374326846230060201434900605717238924973613792109567032602459039498884648222643194644852435860936248498336464961621698929649974689891618098556854011788024455235140772604592742340703741708957246004061230731059836630484014188462768097300511151767421542338600395704437798631476799419491595799441425765148538140481160766682416250378995451421912108906114623971503351684197636523421835794647068018383789133249873897907937710446879234004304047718954945747639873504605575008049334382947667180161407328189546906452602089861179919476821093271393596471103051509070642603029483307788467628008489655599123051284120322116184010914681615100278635788745187197924035751093284601638898090980440883314378825693438201331698215294828007726985547659294091804402093105459874605323030195862612939837034122401218650538642602283899970889113477614658186284787066054696891247933693869574816741929332150373617151167853250753793034760426797873225660527624243767478641084842681333783864671372442486139784782204822319298033917333942392487735010299303608825476823268154007763437489988147351987974817135791364168886600005525095863643708571418129042946579709728638205962306580398846029006455483946243648619392640022154832017395757984091046676122518296327496282215546339599940937025129401391986064977507515879103755653934226478591242850781979121203059467020817449984461907827880589859267273881597029767754527369137977428504385264641045303587222465888088924454849917197742538091135291804008109341493475924002355711815914705976037220766356105633034790716565730257579127577349392698140076593954192545147938061105414857769659952041774424792707695841482771397033228216921166505006418956881030031444299901936424729764403170721313712377910713581119370164190435256200289508008911415546703056997750451223111540656807272174260068197797143521320864683554578086065558251871816201424167480458538118095947247701265920658897761010149317674313155332617819738814414790394553722932060039279498231631408459277831047870491643794792121360543404382161957442014766131919239086901588217540999757641033084738496302446516173134401271203152006714620243430117136759552564979067374481260354094004882235870017621955466966315118027902941394897870358039295684829630862465931272127070217119006802811173822466666870684163405510359555912069824806173544862112847144876935829113550605153083469815659348640578558575333237185136529934338254934053811161426056256543861335654335961887412674514159969519505760509183144904298076292353152090174529942553822601682174487459672505939462301204836321858422538546067307539828087140798572939366634823712034893900612698576236390397697001132563199950208656625771118954961728078749541299301397946210628220465359769271086883558215905557177035860375551158874115557431219807912831092460065944696181991106005570864179819162447405014334856352771219388680830109802087535339164477163857226039730352866105544354411817818421208405405034200737424493018277272293925246118954406948051620617746757334864200141561152527551810115721658642782238879721962680779865505211305924984374336707609699199090011590792147880272160900919028038003044976966369411984382134298285725436218142928418307029882166093434632366950745424768630395647741618375472998624956347033786288922754562477392904012504348160737166428945435819426682076428502057215128601045845809873034635106394060576496366734059858093927329905878946545917074403805015525147400340282325559402338962152856797233181433949624938813174127116107343891957097968831998427932114566010105879295319538726651596384882630245344832608947342591837696743776527785784492921195507103184297689038478701531194528004795190207762772921876573359409623406279376595463234679108872598249165894679257514359550630886681030741599449038537136901719382205981172709726066900909957368446462327515236220040072054977971626282756504978049871155270590186620801749448286286067093160534753873635191424020607045911982706804349572938248968897451325029711047295730301051530892886860620543021645545924929266863685606040729270787727977550612937891392507132251801062601747568468943350459963993897746652691634654222413480811903894592503661271935500012311903702447048424605291616781446204780160067862371503269987235380787541097069905830132659802951032924310856469084502424420869294639714615569841406260598196206600707514519296042565923024566813592531478398147363729822558534762922019585364806571480769573031479327441881548009436929073009824958195657715457507279819070133792060467579450765439644083528215479620216984006396007898911832518138105047504045977829272907292030962334382475028709857693362495204410413451087681340000539010724796771443284658142706746353951395092021754867198673142971663319839734186636954014021964180815385085701584692283038832734355185062367403475711126382421752868168728416563981426686277657239869019405363271783484589557005710321389568115423884472427126685832238600692629785093107480224301779810022683921737272344793477475264494038204756163868175227247672100329634895858071988491173218918818044873128522578911538156981833111519999734315888793383882305989436413263735152350249562907345760716193814973035743324155932858339560432918249509217890758052152862212272335325951403908938865556977050260426657873820901314619802059523560121385204120685735831216798957379883430550581136405953479943592718886122863720182996732380253699594569044156543502499020218694358360323138859276147474866518214573159606502016244275602015407367884766044995614605601847962003167677202454014307154255570155059389998948887788542222204014653872691532026168407223544547208813762658755429843553233074264587527281414437170629635807122920129927821159039319176199875482153652658215668864616289932060160584091837953624410259148440171332245962468394441953805805604372535299971932465971076906238110903751907002478259899863503509223595551754692977711929184436764558551469074554768557451822486163999803349198870356490667195835330234405614559278792639856974327087963709901916461263055507496341319124353612684615368415122267714740176070929877863875368648137983730207055095844159313537178645391505219585595376013843379333705864375454837721108163934572241187920609756284381271483927421978073778765544671081163306775314932067729229191617577611284384271062924018874324306442269917336319349365320646996220450212982828152217376674119274408464850425982208571557835829164129027507734472019630929379750686414773308964575918304318798353620527274698139236251260120674388468664938015599560210363260742859310832739478926873685245376560130108741142349441384957414635671808790866928222557109399914874704091626575705084982262700771518362703289771339651203542182303109018989135302899841240514586581016449441443258155120472179234106783876392603078219718349493706369640465645206296959835382315303270986462575345602547316717317641941624790344444839199844706965648107268134800981486140909807824180623219195469176845778298971624086070907510607389749129536527357422880985813419609784995515334601222112516113968278449538814693055083241475699147493000458772374668796614567584040493634016331327068272582988083895220979004955376524626863586491453131558738520504307683062205314939145653781829903173262279072428227698016069277223803993186735814502360535476792646859761258166243023541863540346531891276401898572256099889530271425246217363701176584441421405213351742150172406214167263750763745462980120762974198524350630889516203149815274418723107489151381468103788090605587157058486619050998713640793270873788089659591511552433028725435412564540711690340666897631773351157483115309259822726652970530187406635207901176936516541767125425334606853312976658312265036495796178998979324040688109937183456150749284325702437553682491581031632182520254697043679401780485054409919824120795117108627196933726157383549370332752293331360231573301090974288945790230086172961737172543548420912552173226595544023022774757514563300067308867912208549666786669125201897461497297757877338607373201745578842246771485637438854918741516785508653095622018421181646668175737316706982793720089490897108928924221297652800868129673271786108437913649488342603048689897454634222265957441816494381889992427604664194434107884156367318336650920306940699410493791678978517714461074797552362259500526332941738809748552311819373931006972640688952865881832280311720441097122807563892011417306054309759882037308709815759812551466483491779333707284366213507097289273277523243509590621569533740877886079210768294227044135193410871948205858985251818583190831182552090669216691157670978803292500767249256036873797488574314880933334156318423134766931238910861164122547300956947505738094131393329231786544488848596548402110863661074241816732824704921980333495068337202985101880156046554586491332984764374473637829679422510584451858435130852546522398667478384906446338575181962273350935866506579635539133265671601983899454452820547666803430720654703968252627168031289610989977312118171692119731200018592809182509634469559454262853584004052469313493612078285454835766211610752119250357846414036195960089074763184622093490333749245097463094348801590945815594408938645180907876679092210780555479219937151799523192579466532168480655168733822962658277363978518041556243184561090615126222955622543467136124531520131713241635827981940894642015043952076524888427068248094508903623318634366843352943543119782441438717017166190466249750081081647139524905061111428875638864066049294853488176401109282884950611419662325502447007671414489054799650971130375617523888187358911269284176001365717098765360063722791171079141684012089339504832437662903228421457270606060118816883500188037646745523923400021093373991870991997772203214780324374138578400651976740929512518899517736779183312912340915914530672919469621131728799704605172739986782617086091508435205896812908224854161907411640169551860252577064472857213633336983992045724346208861110130930604916840786162265146103776011834879547212029764865280414625904945723739119172098344869805083518585289851541898734737213441165531133378541535092991073081749511387824948906574447854222168913004515545156397661270647382660096038250791711437522716598527455110883474767505405124502223634752357244481410646910398686960172274836907780271564863680260687663281414459914594477725941692226268011062016774780066360620704533609085214267749051169454887868294495360181603138948312342226599521634816615296381986343200827148362556434760515351843976156223489492342622217510713685772980480124187330246841620122556005325306574024651645152668779549824538228574442146801865989767857498547666938514925864336822341183162329707331544870607153646563635639112540560322741852670735678693690718952705878102596515874319776632775016780549207446500297293723145107526938427707537884981261364195236141636884128012517619678739165925109337256641190859048027508391718532010629967041758775492941040059253416432962328994463282198393014274200142416962947465518545683238165448752762149291832341428961748429447764042833622845028033454717098545653126005964104650943671780947136874692520481844941922683640259855131371924782895580007150138230766130111477551990654841128759752004632006193919659316370765944061954266007544076139969473361170549785695934457592774405718557377895242756716152031308938130888657778202698922883415994140219649204739085186155398633214949518659651755994100548977017843170255091093645739857367973795477615210689257459304608164506254486861718835230746467789049805807864938739389374715851877069678172446568951689316586761116518089178215228877500253441525421399254531254511867139777562936936906313872041913752702384890013583541085403990631064055867588558499457660703052561042694559632298658174581922401586037734877897348805591154156108577368440590084312381886560388685346968423301126541748166402736110477133082807292146468866103463436979420326036606007778489028418129947356631623741890008377856375898932341164787455592984588716010370436994930600544390739405423424671030979913223170169641614796187070571951531085317859317407297268655703485678445382091009271906595622641316047765974957380936226240419038759800119940639296833327322262204491464534616830813179773227473730220932992179363834873731342984934688161634431584041032293848034622971869769666859885328622970163617250718639742069130032156452723654294972658053980532628069224045573542700776787197827536712366137451808462990402944633825934939946452227390875519853323355202848446397940094112841409883238346687586092344276460573377546946210273827428655608816380128283559446308562181328172659140829824879162648013083561666752263652453458080554264260579398936089845590829709645699050061507890036186928438193105991163412733472342405770382341012925718404394895554020226665989768015196355353826345358433103817737745388964023731937943087634309932329807053904728370322087707073445054690050678404871396580891187129189682232609395065452438561088915848204635939370342898569735649984971206711742788673468127254987648844004648248325314539115566408571979727377489854570800947253362358649330095156651967793472555915060615049588063787536298073777458927293665905692657657598577107986431988133940731771914089887489887962871053545403175411523163316016837678903466901102317854425904504415996259913330960783918224468461669329984446570260085704860182369240902739270882864866497411511617406617647870734012756312639434185653113789816502740328405316853971997913380331232106511081525046048470841219593357832697951845843769718407718174454613705051627693406631744001440989019737862236300956388757147087685972339398356312330676177751800308547920479713142558077773556920640654712209572733862369862034043644530102871878749569375306315366230132762066021714283219631162619846435318672252623024050506510571968196259371647846129582650737426838737927875683669302911199727014518767803080170912549800250125354519884929082890695575813382238060489094290805435952304944364758683191920461685313531836983031857560777490639718584244707598006773396558779993984559122290813329363551853915805050111974613564270845492475986005749942594790757005517626423204036418968899969424331263852549227443768159102127809175813510675771956074616967860900021372544527752709560989900939702453645356519913236350192191926200628984965556165748161121159972507039257670622888333322497198953945308340883383686805058226773924928483150853557133890433483886527007463463921241846462248054018190127720419027453683208677705841740128501353641786031066090329385594265239626445328863415321795760812241528251932797725846295240983615548178944930382673097496751412462144334578948824046998531620352657335099146446637757769832352263606179124059121049211369061162834993229363091738339140747731811873156275124415966224094260843167304928763852579928278140574641722026653353051556553380769730188856161789473899068745438821596750693209555754897765726669888892351151441125584208235880522361642762771064513778242113123424271452462251470034400750514236571361509887871630765933301205827634264935612685634723205700279129571413777372218865911742193277039789746277361901346707572101230734380075827351340067267512110200431058808112828935346044030827646719208274354045367190261379264169874185800993526817809943378596134965326907898656787822681676682630762356094852223688497106206783841825116157600743055949514497699708093804206467352190865334638757169009978064817405205817085276337448932739603984522348442998457544541412306072080940699843758756656721346194387564183788168748487108555888463778447213540334213208192408796337052241733374465886467158893106305793442539531396149636059486629769746304653748512528388035880241500525912101993114375384165591008327518591109454281068826338340927514224559049251699489301880530520083743894701406360444391795207348715799627674362168503686696830702249050224963701264665102264307441012792339709349482349141094703589568596995381512390628287283483395010524435143870701184947628151461520815795076400804824151442107187549023086012224081813736768180278276692550526235601623271968239612720480297856064043830476059984365160147801535761276980239143833330051214825340650523225264910256955171939845768752716559557931072650210178691057760432988391125464251795081560987596004441536737532600341072258141085693399757425869803437281586777374865954603577857105507188887791684964372209737969253510461055099295708405443478485457885527787507410811439873701610906204814908587975194738962372290262645921363644936848181193823040227103490424987667752454496677862720823477197477423480642096206867193444342648760835899282994842471278009992799211984296382943645486087485950539616993764212036300679489109091854939518803280930602824526419512347350527027164270274506954848296310944146252608309017955516180397728846294031401784254034093561298963570597627203335540708035108826858284545428142449114531679117889902381440165580351843202145261436253675728753105033366794102656837629924520452236865303458798666995496094144591150098968551910495899177925424221918018651720041986783853033036323677056567560812210861433525591091028248192339344610787835040394201952273231382692750491325750206930521891390719317051543690796361656846767686621882655736398656068088165062630895515215063719124080776643856858652026441246902916115821123921084007505085282587168526679680601377883486772872833919683588905449315578703285261164832226070633262771630425706782842276653178030058526640424102513855658369730703085406341483838330586172201440545096002423589011811922066599260859950305982960421948509983544066838796772643774694077284634538783438198918053918228062344380847906252995212405831514804091589246730313224500319485375784845603131065117328173052299095145849769276944074612907576798645994835160834225931353967476032624728298176903633348920763968490631203033760690751961389361683663964211507925076098818510372224665316983090253314032553764361466422256383362565615949304034260375722957521755112957277096481914423830379658095615094340269193673770972988147854717796070611904389314313323267559899368673176247730562302484865420433708599309826444649195741787201952124391976011375647696046060756654474239158977866750666912446811905146130986206500036260290492191879557404397701589827283892284048959931145532678509980289202592191671443743476685911831230200675007585582806710068337951435014474985199029620766755714131578370258808100807057630547948071709487496107538673539958836775958818870769528503560990371286007239485117708873081538247465118559957063175590959057325854606556593918406189003381306933277853851429727906794749391529709074478917110190496302603300946689796721626769853635950062548961018398654982661361642873901911202291039301936579160541422756895328495371749520266017799532413925653384820144846881524380869560998593590521766769283852452437836512342214624161460241698752453221523742566150880965886378534421942522779076764221047321698995089233552240356269790309656226566364025048063187209870752061962262065926375633123577420341529544555549189899691171918158457549622791617315308331176490981281937543465274301994703182465503539136174774303501265107161789509136944574175203704343487819400448311445432268092631025980834364064492953170260700872924549029272931679853400092775178676654112805699623576824900967896008016681383326338468161286934115911143976383382563431067914595439264776266453961954940675578013997333019598381046697023202450472702941352503579801520639460226402684948495962476440156870425483463879396213268439767003780654285921991216384387296441323660438971346541472236203590071375870644219012640736425946760842400055422284500183163348820068472212338635099495757605346244748663338807548963789453875191036075842688939420917138285631542413451499385450462158535175406987634353023291261970127234183477411333275212401888639746291101124885194571933444912967674561914299745678768538386307687011557186727647130670492406868993615328968581250907160892782168629505547505430643587402624905057153690830469533325013008474492953149930127749530760494564175786200832372878401010568297242019950527505347249150395329264021196699875520779094993352961967813848082830511947119788623309675722826267811134746214480789577303195503337598343071513315546933276673754310501389806529673323192092977781531590289666515036306559148261537210741685761615419039171059762599569591301253373316585292588524578789316171875700908975648977499549044113117467141357074693771620534088602333777154997494586114890048085453280371026558852149181408118958859311021669849451752078274028890337805401362608641381227874488194263935576128374457813907039183027739143983657719856048003683523785552977157431019196063178158363331715205014731166741795297752673183551261370064661546653109701528094899749758943822056336094715133861057466455545074082034107162899100983342205030055257724041147453446516364091445311554113342506974970040741148893678073664753805616192526541830627701476280404556851104894497573104659746369991403575540285650218562586382663529877063982687094511492675737724166355327764330448661630180725483128325261466260535689921231633135237257883422023161222503641808563627008912948525441105869814796950144795803054433169024364253548398089656488839837025814098725863020263551672194140023304736178033064776703875552322701447177672985811795553393289223791318817543931566085055082899508018743741330009566703152676967562205265247273690879556142354392015926398018215828867501909915924373818697329162753488443529267714635285564484658082981877730761322491364600607605120383692259556401603490456472064008918250551504815327576280477539584750272086650548907800289200018588992724706277175548034881708514747475147874491534435008535242765850335328604038593539956530276570495863637126779250863156011938003499874197588140605491273056376725751881454749014328886965153853362663740686251058629364940800008222180253112686924744132825063615214735400638324695848519630571712428584700482655316031100162975637686120081755973490808138055716512022348610159345972299212823834903702786453600975840008520827383570787573651979506270701733646230495716132623018577754714008347508489234264337382356822597355736812947119656776965526651949734509466278765924144786376221964253766766636165411988935251250216766457643621108674945880234215053001541335422696709542724586580483834218960035059980891797945175825423508366496466899488819335342506711687084483865546788697180900386657147924093990264532766022006641420855657496408886406506176966009966783779267235496263177654068010344967430295271175697322012456729261500032104070954877516542440647957249062838704081702664795028315438793510020935149845890451146998517849857059064191276376033269357701277494935655994342617789224931685279867589556432643124750560021238230104875442728518467252846179576178638394615891388925255168731668287582542145357844778504615340123693590401611781037228161067953470370463786722222345145831049568641547121631021018017952368642275911007077597429794575074529687156540832538676493012242730415378127920352845496070964417826367443497916671204074253844026378133443755762656177280873291990198677244546324367791392922366202124439493562089511786845043889297076981257543650460091114488754235304772103335613972411021410871885572200018682785035340400342870759579370410514043736674854528276114193480955583395748421818476122277399164996102885778021500622349169973503367056441918375039523818686045728243899136707047027642557580112946786598865641691494517412999927672748659891095517497629995522398505077457094364196523464082936033290409348386897662728254909862307451918953624918255295461925856587474889609271047872446420860538696446963449290349053045847643517402035409722868834765125462481366196095827733402816764135943314601297326975215792271690848467193897503604866594506555918986220215711263353088657984455909957630336660392986095982557339810798443436269648172632015351260001849161740253429509233303937695325002813161280215695711384679485857152125006403574500443163911791017043122691015411792426108979885500091489708592664511728042218443663768787498714416685733003979369651206056992000480334530520990972352860323054781906354737697686767238658189764765130722074906643237241999731482895541135284730256584997580075334646211444566109912276625052087313977683293978687718897326992508014835094891157656621446990332634597748837665963607573641787987992701710326260290542717799109828873452742900654550522771497362243498478512965931892669370879537026501002594258254882443948415690203893596228423207531157017792563719382332337692970109066907714584346880128653767876667895228656405951202958744573347167868230809660043663373024664885584643852652373770838337679538622572271606070348864352406384584866834371864377285557483259361234585477475997981434039472446864545216418750403656879871998543309313889626721463784301073897321884170501408420187561198031492890412187019992228036659578488105608233719007569544272060584512929638634033759292420147894471218068525849260109314845986634326243905456779529410234604146727706911921182753393935542055537901115411682880236103347464097716336996746521662973400142109848752062983810848112320018070954158464691129860991732764290689087248299990819300167216350775485349161279315300943702284378973445315423041370471861463564164685652863901319793528635093674514140444373571703336401755047511558401189136973772946263229936391480538635696819307796058555938161510530887385755597441315939527252016013825730091900192719067267761046961786086403361385702636795824696118944452526094477503682384656951641051847001451175008927945175683003348161674781850363429115684205688713295729169419857878609106408539738162449091242322992111727694438885816644293041728616877450480656789989550814086432926654415686117046747197010035894790516484970738554417169313942470892260068692604788455260402123819550818802592323640587169390619559983471294727817194728438937876554015757032374279249733182535696971338043806982694756552647610876256660530973408701766524410618626344372401336160384865983157970429484250390013674661791604733241162054153215110977139980776921595734462214666630433578346301544068864611479500031445041145231086797676738045535532448889245482087691234747531049236946351420331766207861236310020997512463393993028711680892771843028729995558697963249069088814605371265969849282552047621089421678809865741540390999651173929450854021972073700940497088413220858311260561253496180934836006553800770558980190604198351361369866365324381336376548872795280904762299148334187007678996484724089851324161078990208236987074333995993593844321896069559138685362420897161268746494419113090129685040302767660185776587075725774256250585372916672385468614524060179681111396927406517477505676448360732844884937549287047051023698612818259686505097269211283793341839610168816836598758150068916370649748697287587950560305006966304280279280549814585714520492037288078518559684992027605723222383901310079346331604305984416280572507793024985537034128633403346088720358455928908815686910791718863741013200631767699718815934804319823939905782047750281577344123703718974033761677703054351644825060564394937713512796535356427000601642673892437929080735102901872408380514806029853894138668014690598007235585059819840671909870140931803519191889101565489798966774935817461831362948427601582072784829560729422622386581398374467968649287663083325540248409054952159826530260999860570099521203069800205076321880202692978053975034740381618128392343095127920093946078240566508364536783391646940699445795911251847913390569409482223156433364523910815967669609994033282507050031029698847544843875354453417915570587997912597329396391489496099590170821965330015881375712420368380921778149135882085047617962838667857668563983250431548474857242285577283001024798414364311837525462682123881747116480353260370112021137714377743046505528192993730301508094400837130944789444735149890070723402707604447490992519579063708211906229312995492422195547815110221584800284444004812730402314927083484161473736361230725697587032013206600883114556104054679374940101934648467691629070731402578266824469845647115885718935181780838056748964809672553754662169411903025613097572635031205248639117506384586525445810600400381855309953359223356331897554330723215435258153164961876291773792326979064649097332153293894304762015795105232859324149672189176464310033424847431656429214146344189244951400003788093946516623290224114469382079012662225304111743527738284664547477674236349078528330602913463676778119768318986587483241507565942091927128198169373213873861491104461478830503817990423633853973681945494746174553673285712216209604876478351643332363341049640655134295889754230099388374302332554942135281984944546132704720435659477808481573497393678942065891843020658514008148608924704990152638130528220221151136010231551234388813773112385696360677822510757896128883944170986464123216827422458261831926675366990677458488154397888641478879851348628214379730708871161402102260008934750367146799134643280236416639317326660759648425988508773935357694793567758110777316032486602549478702289060561586578490357829195314994160434235701014987649672733070561090181261058903153164833483681693890522345266528940996570147822829674365202405447082354686731395114567706124614047231615540539596277284402331953734989343124832184378428319084223484642355160205622615288724857510582015796860230931630947951561807464429297391142558434487713655220417922248249450154527469496844615622768479572010078222734002742990948563777819927104409514764909933358467128785696340759299222950671514043229279057839048152939993751141305708494584978463464991051259228733026947687439342956716877300415747804279218841217745365493316051167606338017638293607961410182857100149301347342586146560233165531073091405946500732268691802742018610388425215283055689911024280397529942187809705017565200750519426389649279655050031778352833070302056960106485413592333639957414119252256080700450098716236950552351621480434733968845997525115528297285984501659912782989871274406746372434582069408984656066157791095339547489792378457038793560252734288075661149933566448096005484810858193159163708872546054278364356636337474982920622787683818446170466912076296245099396705123511801802298223929503451128366762411153186998975645933875052010140677155260684244184762091049898394282587594422707937018952088981055394346876031069975217316181479755328701854190371708433227534456329933101746122169643503061082028281037988753270398582108306857948492902566773496850837533861954966173333693146054523232011645281041656863665068175893525977904751261979293049483889127512982651563620714136979300484813654575452776428240591847555124971820650445656313807195492592239070368827261642548119819642055640870048957762165092731079470092413059403088805379833890629920178852256934669816513829712995900070298452458793375459789612305272392643609647123435494008914124331076059138909604327599493014447701588071517273446204215557212879755508951827810773000876934616268407720085806898632069602484488426633377204163561529954018750922136712983598558089640041207825180988631075671350883243848820434902339980033996620796232597903867907514294152881888933925329507436344086136975580381093275692220792968775256191236765587409658145602155702990368418653336476342444461571681433340616735373658399746873179369710389800963785201608077338580270764771362556432467139975480792835733321253802200477116447891881835694010584006199587573868141606111180982930624159442727851459313782956377706118399090309055153161050729571332489381537709377467685572014547366822630370999114573438982036763703888287089437232359248898002325748429273977760930621619372236461389900764063644921644024284586330221088847754507322471777655373908414326953862961924321619486945261548795756599774779164454518321085683614134757819117801390255147645946239140763505853029896386654192328557594280259681763959643389622993832852794075922368602245624391534975003623066099848749140381643256283837692517621359273434097705182343515187870262688920278799159586569137737084214221032567872673517823593836194761835953058992346637588331354762786423648813010066011236587047237598182662822773557986056609799666491343736855793162248930901092028279717398921259350303738365965166124017836487131264924377425148125736058996829053922036931611611345765016121413331588720940168240806571365112606234082267551579994312751863771701214310412450976646255231617418891573459074542821132186804030386949595810514758641022252529648172799357925784760303988208518245524140995850997585674715688260492331511740558408444374801818601767301766093920470905820983042209902495951885085646467369570820963600896959007130374471757545941557975321574250517335102959005596948798916807982419302826639205133566475640378787959785854464065537399264936003184499567335954647896814873256759399871939858490826245425736765319847802588296236309882524005835942657744810300183645994047640784576721925994964218419924802818641654098113741742762221721623202784333637638308304374641986345771447756694271422764050187881026318637183404773134949961450957672173039661462509509669508256315386247920244839397134644361710030019820205124954559956657194752246224620022581744132527153537135568610198044921618989656227956941564045219321185350314198106528441460285750151816856862418379120948941281353794514944497620790026356524193621713335910498199775082606531096730131836567113305806465517931330534372243333790571318864883815148709650959422502760457544261386164911814184839504937870765582244609356448189057316989941187524649283228280172304782396151225753143704805406132104175933961078198644743793543221935932484285734223583062441916113041313910401241373158835692729176307941116092630169857053081723823574102425687479280631400482087646127927051117307795114231977236155086886431146225311216423858827387799387707254291060297208885037899389429416726430597653249439879067044464265655797281454157229519019963185391064396895319904460833764438412752427432159525592416929090173853833936744348233535275466157679128018100677103316397569485295614590592379768436260522143504644302807481119105249080922694690293460488886304033776837420687683835156393452267123285854855358543692795739352313761842237206355372784870378373044690922731826133255181305801998123838660997962680226406411393580671187367488186331658025732842828201174736124690656973315902906376280227908907094159762425498154965824773384610504551998474350284136084188234039249110431349656127476607393307492394713589284713881755223285699871299531781236364134347572038253620889672933752246820679344677624265238343435517936334983023954859467036340869179288823946563817192991810838071358293754114470941969149078857589763619841567773021084123730184536775776889680441040651893661872571407444242066525994769812526231052067979288301255741681591547035577482147591292138475222879047098532781689997630593925269635393371409260464933856739329247043552564780072176043052610352761170751414453952205671045155889658729082788587558888732091168662453677922959619082871829172421596774941555634349919043899478276783711008174018848776790162010463392716638003661785261370552716058818493058976393893387204971635894246359258867731820316004438186235660812966206572303398916017560620094148618573168096757102377579707191373634932936697141035156688593283001138648030436260118127012439970656029709440676169403658451901578969933593171915226623014156129754455599155922338194298745506335696727607376223245010558408172362533275793005465420382173803604586990942292653667932676541322134723766193028454385121935997160857922716142840300053825595234328300406233569033784807782699550261695585198529122216161623450321104184493128884094068139422264143725275055025364297769483118611016579149268806152718310210140265558379387154457378789747639402008644394689335612636576621802832196968516280286759917379614374828692399928234584773588578116882441219407705012983408269354800942131765796123199070448296156738142291397801119079515765100420813326114370585285183519206764384115148620168799333743206933915298612163029613241210563088814757234944471809445525831926381539150303679842843684338413279487000149538383233193034978773554194319096625270599091409660275419913307694134924314158040545746347494850077047949461229243577951765999769582497047340096821049068799389474356973949360164200401510223519772403295554950472504193744713772720987513189249243254993015247944666913273300001503894300245106099757070313904954806224642937826220884622874792880520662914862036857425942324965845847499967681427058698169262828120353571155138463637238955805850625619108006706144694803992421497942895247397329541746648536471789113014640572951565583207897902195723541908060837077044757318302028350697784297692655474085542007306314121757900069087471399792495655353874959471676899820637637986469200926229983443004740461684344695770935244651228845878153007275242964442086675136844488833545897376658053116690253666273533064842666907841920359583181751105323637013868205193948594802745375632609786605646190759480227954473556105648093842194059743150681351349436773813566437604841742440561062931634841233593117577570564477009840597414641864999561377405582099159453072281712531282469405700197753788379365238387779012129425172168486584416697070432099095468679155974339992297100651692066727406988648214779314855934483730537515012257615566341343129752231107810457127489512632941118657095093839508955429129482640077437879368920254201716924583174244140957366056944233234986550119779942079504414050710942348707685814399778657186160203182257265725496447382234350980331016412581779712446231752609795768646267183566516032178811771129263850879779201413450048977202855220762217927022681425235314169979922346662722093760035246009550046120243961548069823206411164372436277260028355969390477846040692838190877943809160387194095053978111457653105243280615963957150195954542954704773648874067753046285122250496389667004954836388513734441973110589292217537413863710740981639924780959899973355052132677297685769928928061541247553101949017007679707314919153080270837559282732516833991442800820906481568219416126691597056359981991658068130921072519047244357196375108994080852001936334481098011623328626167239827426680430155001500251044675416563384814964793767245930066301849057826780714143252347714091507240534042101400865699099317120197888912771590972692036291011298092813437561320738706756388027685460095807647621863416435232354467635080006923863411791075161752780480827424679237751208170151225266894999825014672414079089078713102523515548595793602878054997822578822294200354703037316573139335410189532355105605547832088546228102623475162948183814451256027541790423266080927881214401620866508154370737975435886940654420782973025715387942229925983949081814260944175964534159080038391124910866074884396617905765755051447701113686381822472235630790656550113804759640530163825067437136765418893103060540194931334555410043247604458801649251939631490526501333776897051135851631144526026558375644665234955384227079480475638796253985311000730627887997652016028043130260371381807859391753010582696490426674408693927138163936953029520413894589637054515106616564311655031525812817409068285924845049087848815329751527003499722090935440767884927469570092231599133510708630312475369453598199984354341126499003514972674241423817266599784009344786289243277651476789438841343342232782654293832223878256847696158530032328627169850982589143233324263881017806388715608136082053396742820783746776188004135662045264714731153233168569562560110193870298428126769170537066659900419723894280720125182090245074890391260972152470812782988053423420207173495723146051225028946954076110094718434215061693514344742347262848286627013953796085184023930857372897216806449083505379238995647876551074758904005138848517828248429429793818975739160830766765002607747384874586319360484431361253844917354360578637778083203845530402429951015558718684462542342156225046485324468906335335978711820592132296307357444974493603651408729290739810176076840923997452822136619792601527296696256839926212669900601933021377630296911037766578913201978633106032717769929763391827441812407512916538743588010873762162793021494657927185741726584966236570906924320008851318894398576768935080622243534905927580082335847536696630708614996893730732535139461139836032548722243819211111339677606341549745139659007274654798609129859171316023576338959076954295264043406037183946869554401844145113314025841876900318687994920736860253110399118558243274648722248442950084773597202587870583017259264257404492411269846943809821130647104682240548476148214049457546164938909056380169433511217787942143541425888822010928415828622223353104836554705617539377799842619287331663283865718466305776902972918640615627371221343599184565923415472190629841580231656478730943816361408163187244553308305784161120698183735641522910442027553674545724929931555678509166870144519852072582696651544029509488874338071530691847000748841078041978408034904800095342715603879982945433470470935785463078606255663136715492896037135724332360651653826436917008200981378372500493054246739110210144133800964866535582499314680511859540533355554905517802045164741489731461853200168467955633244525695324024778760269452049133040874510199415546972711957389758477865885830492708702258216318021088916543730318063074473772885880442614967317897531458494006006594129981257388914132622984670990810679942521411719251949720964468660258219160968471704531468845251842216780915236931849135428425058959691958313242591654631703926835627336776491519215848690243747848212206104485004794236561558880742234497116550241543134270213560122423958114187502039699943630113572618045684828578186699254844852033662231610373335444038397163691492067330476257593458235698960870848377531836203432038057260042373555115594506618803025016704588251078094938959456709885931838248058010390506582815723514249084745930040676850043079854271510541335383008536976484377020980560198311409995828697806370492282014728606211114298817813787438519323260931953041038998368533686559054289484411984867089865804124367940791797110163420196459059360790506295051005592713195745062893377932323071828165914908665499202430122242782457110857772849386476786420567985854111306753602107672400362965516698498878076077252233073886198715216208871901257830012589587032735605777383179427483446142484282916846076377961547062389745637311642879725289012168375779656670072556102569310315159198757628095145754890977807650857843097573379493773882048514384652698243708998541505547765894636137790090233257219093584480312991048154222917471986241528306274446717860328257166620640217977701269799354423444722108902984105131062875722580639110782958923481518053095192530619955140024289330790927887755839241622732797941614668377562469195076707120132705663895782210282946485343488424083019834714679229308881408185604616471622889632305512447992443584802580112171832441373375610411841843693001019303685980927457673656065335677237723510950839708680684313490480418080611467976072942015436205928863303006240376154238176927868906687234664898011412583528469426021443204098044387970889627727528028221880113581953294171634130253340084200169304808426701939398606267577532664242392930087822528160622795288746134564681338064712342205958620808464299600733702711080163550770367852384351649441839070393669763310107458416695097913402296401040215476540976109189659510385696300752973369810602133247272447622257567060188286169887287983325374724101676196449870298738333102171818810419305455179064216354024853874748671773268687269413149319522234444377787201560055049165474558090724545616829700689181830131403001676673788380370003180551995245767918115654787753163232996205894095201514892033334976830042626725483307160431434815139852705925231407373337986246681237245740231038139805262653889968175468037731330782081826158493974927617984405168084381858042268453139952445769678399276348046017364367311427846772919099195980498649809491079314327198719467040351145819101321159964453985411125426086011756538368634749939886676726261646716473959864313113555947540332783208307652237165240135894560255333769635512151062249089491425264435202977404048292728775639782388006005244336502513440779456158104515452984604370410994852117287353309986939680919107565494110113994376090847541334781552472691787614567729278080508066748907117285957235895040704686782796386485459212642316615169976493025869240848811838997143998358693119399139534736370943677807269851339795959246178575437442338160018186324843514496885181028426399208388363706933434035438153035761675284401107953501872596066127354438337065188590020087642678009501591495553199670520517227511374601026634975266178001678368537761462019808045742294239830000309520553021755223510893371898785301126071664935902651198516541737081009785535289949242128038146418392448166424227730433355825063336746472743781850678367940192597805348373516802709628939569302439185509110043649244847358157601179538479615457912146303079461698082700827080417059509795296951959591913159125888991060826693244024893681669596147364148041309141479263758438759330992478686268028362401717887060027119026228377480449734852675874053948071070790471794718384842362213136129826362736546248157592589641758740266338965423619265759834234453979816453623271356798299421991663722012968753954913779831944541476257543746414818290018997639057804162938877732902287263609126210633129078070569804997501732178458895462682297952701005905914582660240439148868374900987434079492967054875362776434702353876510924749704249808334152952938747504639788652933956617598421775243133365506911977354875250613426950797501995522327203582566142322543952217647631610036422614425192073780198432197745277041603288120968908405612742948682174176450146636055203889813390199232116603588349497956486862332372263612858253283085954369780299800121633619651195877007901315091467001274573667773714001280447894399789788581888413496863381732081876335154464443884316083908745409795861644006964758559535502631303206259170844929988289035559939504414933972680530328673735527429882789310988089597460753454195486940327643039351302498551221333014318277433405974916335218975333208153983325755384828542055786369315755438835104889649393244933678170747031093660353852917701386601807679434825570598423610052690433552434965124052442399274521214813176493525419257992416901913456813448963220957713493050936174295054599107527273261836083098184377126066949825313506667344317323553287931629282058119038145758101206101285984638916802009657773128210082993161350414095279497252737533804325460514830019730387373173229900387020132957706084626545222001044859361364688045802179911894284960675129659892380218296352800409209081474635768662634488388674116997551069799567021636003037952623318848056988788186656779761772408410922989059715834231866810011567436613554029701794284185206624513082598887981674058421357040953209799848464151418519012558758362410069432124890659349025808949211838999778452042611245433398891984758570438250683469610078666580827766237873314315500067407670645486425419323661562807943093682962364205071194407093287721549184002133535972049690247545849770701790492845046488009444557932910549685314976265189230852028734212812162562662665941705741628698368081283634068066582292287069968372727714737236022294482487328614597138720629182645187327087082821128424051777831487038771860060645237592354024104299915848046610422792683340114029972090318285455248786734378417604546576324428308530605631316896487534769520170184049626590856592860313680844146424551266287242206039740540791180736693675987059838919579345992509608855250796873161785070843781999872350556021163262040647860421834747104707205038624926076311204506809377781213134214712155399554847508670478694650632006790668306458326187276462538485206848753922207452918386182220321222860138568560966769184915811119078863459643574409636083956452012072780037004640444388500040118714276410354133976597561919797535915979565005768488779761177480262545647108585112441507205887420111607851658217984068558313041935777661201260036999978823844400191710102578454864375930318198173021801838142984092989676627535512813256043117402624948303278330679353279019153320637132010778374438376483456191860076184051128475457976802379369044769053437713457220801119294358858049811379195082712122560815812612547786148660908268680526071080987324171406611444676765133993876659951877896317606722800810589525239087187394855371791619414430771586382918448238791957148112505344676550562087406290836503724400092256540270970076768471436281444966069984375782876357959726431340452147653065203563184182157612434746533132773234841411520407320302642673620010114575658792193623516906427479302868468571280352010266369368977264223854030399469158817477220933555031223259547265333329511351278209717127967479987904886302857137813422081039289665410752425473933363389297745028444953741422843368128949472496463482904328398698819511045208510361373202848199867612977160569938649509474268280154926479839910673291844373269006370542698013130342416067793530509654137940120988656140688924983682347102981778801842658570984819668838076865072955990497912716329480607818897024923624985070065770973779724960899870612450179139149736111686473198522887076347464101465240673480086310466221220213446596191044441991863762015070110173989036537039970492004469792393639848955487724490845829879014030420333274287406777895800256160429084415948315017361936948557971540521286537872480064106749249974488920706686361687560308089595445592242828631137997891455403983311775377689426464115747894674519246322575208864486781860168683791189320070797324748445709821357183385704316790408699396092415933148379591746042924776437221804747655663510858164169308265796252560302120721141233494904146762661426232443454473613910473632781269686772765714327039708073762793540452788358100074598245394894473298204111088122687866006076324053243291462340137874370904609466858426357081682647080443573050654570509501837400263980303010029341129946206348550800358053107117759137544022817148440592996965863080551403274583114066021517010659974344582450763767343849590778915913433944218835641001235973146148216348777616914204936712135914263404968701428966697709010252146366853803344657328165627533349712412283650044120472837717493516611221932880058384362196908565267427589934803329061363694614451592439523310742484370759400840366872419531178447085778933218872321812345408712290640137966333084385321173974361815069138835645013885864364904000431810389921837105737417902619551383027969637107298840344893861484711866907217338682386009849489139188963062628122708787140852870679129546667370363176984318000104903274322157387617448137955000470272831467102860937755868069413248804913866658373130282005542047382078446534646338301568534558415166319449559200726667279103155426764422130491590299297777159369929892906030703796176592320256797825540541700409219976623158545659507227629520553049823030616218848906430218532032643968177633337977352105080646082104395910043536749440202941655161544127412680075673265828534022860500393081346875338014918342634402883664396478677061141738425463070467971448646995952642197996092313164977253667216395334209144400765634176412019739072898103588390978112935687924948322246253200087646020117377299711971115581941590287805240564065001757934777345070427867862965172786415951031092057403968630639018616999920082836435107988564044227679857967389448656370050682492583111932098706369602717111870269281953221116541365187275415976520869700273986640086186374751603153919753117872385532264915005547495607639633992894330559545159586281536386302341785857318181970453576528150999575016974221920487340853360859016310623021057407434795063481737184800857204550575978614385985928894130662845010796103875833902930175816636660426981618761473522546941995948167230443810173585415524523528996599610927466986290859382896923951324272684239486701047973008860794518199129280567120069103857876881470801041051316548306988737943905089171490041305110197293098963230675999880090315531438064524136696440036481450099090549379704400749768025056199460352619713525431978928183436424933503247283588595454175542706798146642923780785143745603842078845098004056613049861032035056165025542237777848327042584350027197902628827261072893639843993356286362994556636634710521429015997991729292398732935766597137104732310068114811265277614438661797045163631625279308016485972459999023236569910026262274455807887619497412091872078935776930122296181843281960303990013543724737534177417064163168459566875371527409715683646035097732800013129767411191184033118284999764168805076004114998974678947506662334670694882180685086689766849937998410715940532134148980245565684029081544837956035047246713659607225302297800090684771460666356852986768292837203413804796888135130600647979924257805500819165959920953987356250922809870490486795984270967604172855336057941610403749229511000433574595502353869116150964462946235961035661346443185596272084842215738684367876441793010270673973544348901650244962673657580483153740466447189157631737863676871841553657050692721584713417545418954382568852131944532923914207120485949876147604844829590265852742640935823247017914993033076415853128777445424677170891977108074426816798282854040731589106634944028004244107723405453032001514943816329802791759970537621337823032336738790991878041940625676909313227312547571750677563497871383392474306443918654341595296286093315424089080986197403099525819346683363646530870517806492247166362618306868081024143835924479951985169376110375760322150639097016460778977215431117158846842229852528640163752093077139646204159330881831980144447039580291194812852558763022989385259012922742142055352999938037021001704093587901177177189568465423035578341013397319879265296045451705465534241520003319210540595451723455884967964905880101012134120069052537554135092876076626291089604622551867430386792571652991765934801461172977226633526546437340359610270675753519279882370609270456692836028892582663756751514455269138837523064927255286353042371059009602827864601809103434800189185289934400139052097901241168762701429155856582864724757291001030171032667333820757496898652710078290410126792537961303913866898238362708245075662712470332778093758400690393154701867079683140623886166800196460541939705174401358370583502887146613672845282703206549795830960903896159679411658755836324681770165433894783568726870675505610117746727864408632469182247873587803783748002322280908934338274119371039311773863819080091839827084774577133212853205071151679674559788824243332129089165951252319849668303122154931838745452309154874876207566101816577767437507220010894922432383668981122694175076770967001796893279785617575576614125662382938872471752641904077741493743857923317602329648093994821493434577729363779077080647740408920357341437446066691390623652480276185027508398668825337889483002738856157828718682558914642918497984039292872532759115289655846685618345772200448110716128874393602100425816370051467305444589887159405317059120465968697139720817402802216204299301428018390535511892745168423518599804078787853327835166895413721825261555582211715700440077564038282340749367690687146737974605803152128761125828583343567070946967475162197800987314284876785237174213390711870780038491103811726821240801096024378142374167832488973977739577381911742294396816709839473648485905811257993037643710406102493239785699227397468590458739189816340613273045466748630835004107093733911961942245584186978924638902123408622234145559397541651594079934538771413875036417457848187660646990551722469857744268603962210197212303346696009588480551801286982210640784341652007182235922532121294495110223466220513972453312619996879377717506163471733502143488021092184578769746794689342524097127548711654960063219998308055198840356932595979063944841756477940773565970217693109305310255601695229351058680956581882094548407741161613495050972216491606237768678857268482972906779561936477429685520460089743759915577871495516157830985757183191512469397822402288761504365978220705815626590627455106175954506148705322274921739313073124151586963306117623412203035158002786125580495781820831166730027005150051759765205411699862780049977125929398671271238730998324680573308170112323429754805214633036140614617719662100536678027824218615513056602118394965388620034232270281015600982123167403886960716087956514164847871061148174182896317371931627458340539576527223137312951780637622866379858823212440598344790423384743576898681802348773490170808328365801645027852010237164077580915088774736455139991525752298490850864618510673141834402442468710680483195522915418636731070342910448247362555879867365243602930048034162000095585734541115316247008136762249950709165804040712235891555236314184999180502212683603681744645999534343671950077684981208254890957834195709256518416997387691877220867883326253170307295933396853625688950561340651386481997104698400387061545697672767539121303969187757038184477671844912796309154768944845322507079419331341623849683969040686322571817195951778766267405503562681458817431228999776933668154908510176414416775516935700426739913022678620054791249090015300083947717925477402504698734382726520069664013022307221363935575331361390272137178474841640573570142033166685936611789864038316130312436334465199833927691069942374688630374016227430367475463496447511781853833898536182740019082101754756200962571499477064317230814590342066860926926975521489718948951173665571443563591171922023334054205275624160849522446747125753163178227759153967702299594519953754265348556329072312358479001728528938960609542973397121750585208434137469049427497504853759063246905776510876687908849527428287100839538652795119581765442846981017522167047015614693044775100201521811586674775957283210767650399259471782854391440218496989573477909631576870439992767000524174602803201985903461018392968653698096768899970964701095346597379402268235087761216159905432544371878108767678736203091644634859276594857820853348748293047897192200800038907921242472821744662688676347464418515481824280943924222629883080612121619742036080977494286199188013114864155325520506836373257271296795599921798370881849248150491009704582095270866181266246688355364317212966566188752332931360429748087299294617189901100677216253548830657473681075084816150218374811828883572113634600397046688524674060021460784956368557918044835735398561221360606402987631077969485693717321404556669758491105090613305883388065578670660591585364082699478300293229622961179686743620299298426824142936905234649619791894256177414325941693320739559998999048772524807925574954647135805756455470549650357238581877137912364404741193132845400508300167388018470210799984174202677521202078261141457427327857404324953094403362993360273241018968346394091603750401872699833934414549695544264190198208244122776729861985375163269167831622355543211196626848739514720407022686348499206682846860618429588963047421889665533667175084151326618491837551209586079968653813568513117542469762062200628798761004320259990368775898610202015838433688984413259887043868111971461850741492325795882233904817270115475338185437085326819227492451753845272059877989614805173944948345751734058779153518539786712664452773721358581169375325653130742550459936932079408165951589955203150466986900057208323909263543708116834587703374846516452052522191250493010869319010974427563549267901326181295058031356397169885391432274900471784901393903535000698203407144890653106086385012537839895055331225407792410132220535394870962269084153284634602197979207046166575847822420542450843971952355494537283019398798256349609746356030067315530763731804519032980901551013512140624240747821261576595414175231957590052711565824408638237118308376833965915860421275788834101570418638383777066399997981419465169912178329103220612067177425593948908996990776796827301109489669157326854914159138145733458659302469320835045052540373701464956202484757362119001361171615266879053701558024712164098650402733964514625866218140610097579953389396242736172269655116824813046033401188794791824821630953967144955394408708113643532056148896274847610531267387088153649975458980786008698458991331818317705366640464368611588137416012236372998625954099771566740918133165130532893355908679895280388661504945937003158026162529631088850487847440684886665251486646877546192148579797541993960553292418961624586436554609929546796114769826906518823059537029388268789543479347692805618268183177795106392473746729525012328489340889194374933862623066186263608195686767604352172782701871271562889610797537023722589127947989244588184048129932545272906465719404956921443059770485809158263061731387635217260231350692852259353533876547795401188105138906534964158973081156493456990657456748122080817614245153800863669433675313571531833830953152573106593048499880475739551753956438970568060525233127350889804395065974741878050422719947144135790324699038042709465434317815597782529926500508692524661040016226612609467061675288353062679447823397952734503836750595062772138811003842350103405548148998400209861013481692690910627090425875989391321713007856634578398815278271369279459053617744183957066136618689097754536028276182485327672374962939482446719198288344831596071180847873953651662998631577416593684402194021616645066454160815605002775745098563205271679526131818785178866842228733767463098159122070311840617961462345370469074071222368475736926548519293961854895843187478168612669308289232725303990251632184527490617933175627724260011169912794177723984604820272719535644744452391919840741309369567528259724567730670101159783281552683783760445726335401690354885517188596033834837675218306535227410735256440283875554891894725741985150244421424891833011856883118001038479666350253069051089258436029304762866635455051597472721822034557088027942543060497829307290225458409127587927413831398686001319806185896975291728440631101375263365205984600474488512119164286761472074701508687010030655848491306841553528683370370763137275445454511163670726391222659193266687031336849071824684522042982189174053392009038215536349170386527040102836165036900589357234983730320054503842530429004532371196269565087102692944715080328084712381338039737802905359029727863063826496447319068584897309868066259155862894141351410039846649722658360466492054724433341506041580063054402279516285955849966069562438910829861774271935322985675215577607807195790795709067329011398713261164161402364666046645356571606873947775739927275967271644426588357456428964649557488719660419189137742707011382802628238962604157442915728122869290206071738511593531491383401543659693819864026201367849817609129792833776900132742139871025333115244475043136287890896219259319444780121275339825599820116183564267664511944014773117100475618799641604675405292053399026733391362649803717387626742782890170660224250828611654240399741452435943116739180756866372840484368923298797261465803817690071195846557461858172616565120463303321220237198054736665536224938638643654093798506543484080117395292893092758901253190224044342176127601893804046672207075103318202379202669054467283741048620431789614215861677737187963171093672304813474015536793461884520337201342719699991567005790024480149688362047429023146229053726364160283914284693153635109838430829345687732251611098415466616503876005957039694711817054638705202458367844800518449353716988301898201111725146224256126712343844096523122153348255927657057618005533192987975211270863584210583174697044902532334246803204204984847191476130838404518638683787227525019719211125976602036906784815213741240106912368093926464138020157968509813440548041421492713572930116016003586217173175025608069669284932420081332135151656548088090206542600979068974988466710619208024013346040194256857634206232125493863696416715034646740110739682041608517715151077033336483847478152206020092205536906142439175112610266125818474749433183757758060826782220129165908381316624584576912229778784498318885038664895637378586776491592186389382435122240698557021886437077165026692214458948147049524478940395643432854052593435656414272301203926751863073660805368024926123063981978912350707457016235877909351135922836866443012672598839708972846392448495529623113785586329581484030988965710349961686115723113897091567550573403863787719995533050699789356932629170417554055486324642739020901109306298605673234836512406413076364298466642215183520611452759604724715155881022951236089181826699302994133023681922912216947931090344167982552451748135479766474667557981890760427904578593060004647702762881719172698630604767263059294115846248462022620444712368089235508534477753389001169400446130556453671311351964850320411768139066964477657456114346979143713082119259881700449097578015041479654054950766829173261338757532839296248517249748390577387245551626612153565050364273550422971562561553688569183764584762206279156910209186840747957771893336125671737012159384729469963939872517700479859468428646058425956456116446434247213250349691328899169981260109349842484257522623136695011510082563714317910971211053832442537190892390614400436186575564179578368926837707244845898763864163722144399357738812080209027043599967742227294489615590770205068304018935066884949550210536641182469892513261916405214510416931582606772445580088163916218287435124193649528106828492714434772396202437327467425620385874775047461549682946233885088130657913491327581371690104265336788013482693768909826965042332544421360262920601996504215582813938787342063481509856976714134557870606004122326518375090002924688145896994600147004771095574077660058922857849234221659480811181870513237509835847110707660655053943198103509350044215008368384997216319223005813662157556406990117765957586131617929015410174498613087870149654269734203525311478154441142144069527115029784372676283866752843122904595471024347823183793841839825038133037266137235011945224137934557091733292250908188796471897276790779664349373971709826845690894916456391883877731440992364570944738257619143948451187299673631585880192927391057614337909664489077156459477911646012250955657293489435865027490946735990271690694509223709520987355667762049383409265617133168630262239603315402142263358701536737205389586436418776789679606144296195416335625310750090665871697235747152144996882793563179974557382296120848813956937849943103362935425759189778659355486895709139276968688661492375766008318037310320970649172171450725023299087233630760149550944408471419783361392113916244772112950166495937608680211316455126556527264600296358474861898673577401157221198750116047286975414227554200121415930971793724195152312968310275037569410000907203681979576428205127489997661678832288275589344630510928050026524700226189919645096506811294455771121516453400366809526199181072551988713927278202539041895631826964230102387177540567989048184841549723764401653665948037030417085023209432918433013292217614718519061093663674368698370058325501792450856857597259546394306173527952721267971850486144256027218618380404379325873860657365829550068882003855331880308328703987664515765606023819126291017215173287530098276774281728928097371161595605439335049244455391816621381486051716067040802434534129358171112420591073749240430859874107271650235431574451112720130321428418549053674673225032187603645748378253735739450695947181528761352776273227580994969248458270938525252461609065672063834649385320327739539481142168385412723891335062260732402851577029910580375853164426929944383070555292383292112522715799216393468406013311305636466197125424059177409650122800582717026745940073423286646534209703313980779615139583038069140256731574734126472474673959089006665849104227185464776018483123886419874146194582433742667768956762219743980575566540725263357913820589861194025971347568543846919771669984499048645679899794128726975324268066822264780640696888753034362318051408445682145020350106497030959256471383652806533044881366884570936207643547552700497958463983498019652115694299413504109204983405751084061477235964407406823620358313506604120684554943457072908380862643632607890819568527763442898484264059924217162799465072210150996790269856941970249967063236880513326761474104826967688905608204417735642270216757774232518596788590983198911807024345059024193222253811813493312218066139055183696560274192356928194139774676853800725460466084078286703481895063059857866645567840373015347408986240407110191492892864786011486048712231050835436912261765283124913508116833226284352582156014726651011293801043717819598118014995183921040581488772305752273961927658847685149425222805325973325982503227345669557920960815087487941866088848940111838618726459257837540821012724433820122984983154504440685098255066245694283869405979154376921576802805431304422915776264388588121951653948624156711970651094539526718182890172266075701991954529654746000815456521140798020565152127641964913523579113854583851533998874530968808233197819879175476026329986983795463853970041319790475958010954958294934266331054144467198832384580705503708098832622802585166351961856025859868768987658171036725027405049622674996833028259855514209636202738388354202159907282197648931614276703004863737120541378025752648486453299064177023568285485560461673260873807262994813579806169213253798347881265976742320711954225788316122808821704063840852857359901356819349074714181518738771474922127765206782323606882111440512480891542887748369818155731405626706695891388869901200019007052386929336491730349138377321321450575368758571980013760037904777296085922192838029818783356701498652642605322895535688313991135457556082525556565679912633189210388432510007956436457214137249849376490687076743018286728220414715782660464553220307285025273281261547586750839936646713286998928983464652344822880367477754236648411622204073735664061344815759448894118076698763938864621468693246495522506944412161252898449823275374271144951376642184370744498512004320168970363651649454787032198075549076772561003344830309757679335379092065177278052236147899750803806324191983742979998845052144485821557310689647397627230137229136343418825457694522746802884233251971492226839264481547906951465604012342976468482193373120740538945525524664403970633276404968615905154311245783760882867031137346552828189619416306799570111835953011452701044072433938049042370978246498816331377864698166468524105775251076401146786008197779542258158836524782754922616004818328141134974988138278855589818819565762275873850609315360499685055975386748079866709526374165012556883250706302004476866682874051512409423518796546600080410100095760373939712816795162994053473902351592071166262141579060738167045060384951405525268896738816692435069404800667047469978285702589369099301020524502559603470077855885908321173538839942945152633333960927973608923085593284897861185393596600797883523604569416871048063818884326755158937182854902538339574875457511544416791128317326896575568633564091602126259763651035493824341525585537908859553237250764848813472841163876662458952371081811701825875406013208625663700293200902334774121027742216509200502931027548128784108378784572109822329864798936502349431787786976738816318460618938736835532523467605646281411788491669014752959138621082408336548440038920132230810400466291349861659428669470277831001970210943570613863910201248834617651872256264799220972121920934478910188907228562186931662998430376240914692486444898837270107774984593126572996413544110344259025129218143172950234035222046121922488902112017465557146942839105331153906279441650879423907298826125241453659326758938668961177183463907401884063161943551292060662641866789721598574254825339978153424302677190521759505889631829417664326590006584473848870369744912291804445491364403761267940001520898958100831303824465000876877386321160430172689414624550497111604031337169228376263229401935764643118774202505609023222385783464920499787983762053785122687984125406980272454883072541922825976305186483913139768411031082533871458920313217095180141974393654715322407802383041068588911376907630928138337781453567159462472706588935751225644296831361520845231816581392056597589248677605447011883636281325191785731691829067435452126584111770783731207083187315569654965119668978463903322994017281556084226785252621190647080348892145770777873300005925928688383739927831728105823729766099594969026890742476338901715082057416215383589615475974816328078262339270543706486018548375149577849118112512305102140448499670222033804467088111718873072537505393060609059185753097250987906746837385746591373313690544589123637199864935243518482259360955957043989247232132062390385466302492380590693834772921644614676134230712179933616329231480794174600523625635178974158909345006506656272576090546126908711686955210000028968261713667895206896078839253052636631454386225662478714323921290914807125793125098116585934589801417505136926592889682967066822162755383655084889716140470428235188604955270562448035559342418957553933908390054719651891599670210930133960902235000427176966513384665955735437420268516215145156244232989908438598952458230073167608834650102383227054426836297785461373263629001331361561757530446620070955880778188048291934513629466155512462777755011213109911732163537114100901279344989400483750867969716065480616854313469613357455063736515082197548610523247139410748287755680078826284060031470380528329855921350755879449966909546517867839417249715846581929591531707577604643310986495900063801637693779727726064843740146567355856807843912679091412653316351276941982737632363315150618790100035524582125301505106952428308121301431674115262780502185181255556038980504916973545193131962378695746324308111322206150228339269488291598997427990544299940545260586138020449995845797817469713571060215172810699667851992836578571150517208758752752262200371056029494901218575279529931239975322752429725155522948897418670778707319784227343536439872378253044436108459266274185059571754983053462251890625486931445149101997450894839891610993799562801540185569322154192215855790065788528905903837776003670527286163039478972471879836081309888613653193431053572727608181648616118941022353643002127223235414824704029431818005985895574794726147713850237246529183806706627088564088550400940535507175826693754157470801357011379778956426980641350186983685259864489606395368629684120645997546267321362688234847666730826885194902386023942739818869059261022266197032306204493766406273436839881788415287830657764357743117961109296829797104446500348962034744910232161671879178556954880827744007692287121390964022477100773707184011070378487758553741273331034455594528199236906764263023849007987078042272126535724368330656182251577033404718581936059328008204467016209884234429978848324991785375050243012775811671250071427600767234069947768258449233987734802600476227108853924714701994753587377431776825524670472039124532274223289036653923978862616514938703579465752081738423722127848689380053794102677401381057575922734184003253502483085663608966045527663960932175003929862492948615955580073521792558702350968569433894472246156994220544044506670072316927780838510342808891307010476135906126057132117318472017693596161058125762888885238856940172540059693897796248377778107594268317285157362598376551870506114784934349795657302137993250612921805496739289121188565845806100263163740010571744571532525639830379313757172864986116504319813702589274909016736268309162701413228596362424441885614637790005949832763446048061546646947040921615761709063039846882945784291848838871284558980770031116483437938517641455038265787686326124738987831959462068669076793155552938246822694540462224859009138873671179691799405449016167500638451739206522153465306604178494219215118138849627093149143941962412286374919703037674003143374853490695549480714737746332408934379191086801213589068644452498401170153105174633295722065906491090732117172554814597380160700083941256370677156685049945341160478607606349918913181607231991386933907733616075503778740011887597425288809064295429462953280282814497754452505819046207642391215013954059411527220741971299923347533757796491881474976414927434036239671620240098175001251301390416769585423375986128340872138415968617319211045171337821286170093290124472644647340558223949795804838352919396511912710951039360620387988955309404153043135532732001636947642386705343643036189822526984066986374491695176529671699072011597020176006607096705302753114396189828998008320924152191639867701460291399714766624357329029509211278650591697939997294453674431355353665526552201947541341822575133754374595826334162968015543223871452057124317205270327496222585991167753289707235158651956244850349888899135990478760259367877965057746740946608394906370533587767379512406496116750607052037233407681543644431890475966622150548739953925732231304106802102556879545051295107480369628039897772472058323739608418922262755976031974030409197343167513684376229189868741827109290532528294015547972380043195955940917777819290978177194747624403021897598307611573207222426509459336403447034261303639042207440055135768038420634932531797889499837846824671094307067514808094443361184747032795628391946401180433639700785989930224954343573325708612636581259738387797161682011760811983962134383946459515916603605446474055403970359205129650772996431302954299714518592906115318547187077295086893704172468245368504039578995878669911635748147910480442768679760399958147502919427091018734573164981015217139137663829467325429554708952866275010294162389351625389237978221001774462126843510147816733723603047461238953131905112038378941877963541611294446367349149037341813693793612839721698830085055977869403144541088197635224119547871652813682171291355705498058772032477431229718557246132757740082115982427253794432191468019148224332434463031943588348213617957418077020347147426249434846794420846885045851855969654392245933982332145320788850682906582108886476641589899987753076015678500727713411599150882109370775655808278406312602854947430190369221333928499764277284025938783772608497558489296969800083930167902975975901149589803374569319569465052717004703529221273783592560344419438045300970267105162425098017923684498502583498085591569193883876941850076843443872399467180742498332235944370276142775422489561541653415658423881598083021004154800882322482661647388524171001096836097660958797611082756420192487622492669362776835046856953537465818211527066744669902626659330640975052027426493684414889467236122396244207042749739763463502835431859114123012633507743937012357859461397810970222743641763378400577141737204399664429277902958797310222957737830862296356085070397239746915763034494538669386151450000890808915924495431102126102186949068640985150228331605133293338108047096018800102478648952867089653778570485632582066852619078513919842812438066870377311624093709705524280388270062456696093923273100393401668006014786447497628622592996696274367529066558871353011799995375140875698996108757711405800083611981667256383131546302070811030344441046513750386285213072996469155088064927014946843515455439843391803176236922255648811912959609276157112010769600131142426381155930804971172851336022307217141894891634444232304098638395545823397873303775465722549431272279875234917502603754307756026911902668262821150408713301121193114757039245661958929500069453096784884961430695613190236650943249377192126543717257912730544882120656739706475734111789391318138990606524894176077510648096905821162386465465516390390096222861345293302972771613641126293654592878039622376072134932305380646407927554894653055712078851689752274027566772656028301979964761976441997996498357760900066561166233616893952399469080651564276464318911815137139015424334601910277668602799965521722889118477522512303137024171064271522633051140353900726717055998533525108908609648425031180182655599200343584749485221797655705851375962697994882965764246437290931984763860509528242231831563011546553649155214454295399718293121651738436172241397946509936732170641363251207447974236930436360600802709693450619316474263203655339381836277033703806288689654497887264158764885669623712923438586692772857225859460696756818872652486670348876526344907768015587159444677567368108363477451213087384812436095375728411567772252951551145862121621573119794883548315314520156240779758943810534151540267543435012141369602673307063643533614794865368513213910946961219943442045942962272540116799463600983166885616278170313926154437952165463795501468052627229960880037180452967393454611327749261848918669165213997757635428022769258495906313623630818694743476537674560470233832897447708320258796127795074295557592467064213891812137887546751122953912752495570409167255787571435608529138261759572113725391776115893814075404266012330703105919398241240996547936751744724363308257574076758897718795227041900991683540228689544119281422592819865740196488986819231467461830421516297817331806621062886719679785918473885838638761523105161810931714479664755356685644779898995756398819117311059445252437523075238611996460402271336847913871737223009128292023906646191070712441490787506836951059205819280016944253980771555422549622731321118957083884695972162518269744321551132690712340161442326183558724926679297881593028246616836152378160238866167843877228387403876891993779853374321262360971172143037192566715702072674058287366048629139846062318698006799697889237585157837898573670777585929372671088851768161173841633245157576596209102834093499026383527522097272336463736325687880297224651004720878222716545367050103200346143757677550540453803144874475685394174684438006888689256979346428859662197173299030352118809063420021876341767695946425006706277138787749852506446843652758075127357050412465027171135683257950323410455736465297326330879002936206274613880583531986286167222731695082345394614257377980153098232055600893637562837019826046713261516902762472925230357984701241046826609956011671583981895999291267385056755995285492878748966528447620166941090499819050485819631643474758094319757495875245200879674097865941009508671963763362624756032453017330949092792094641257778253470588645421919401963328041632374549861090313253245557923372954727891961106989828227989640047380326764911027921949913532312191075363359924238839836759663097251672117437008061323935337090210662024027340236654291142456507497278310708275090227688044282358431157138014509540103252967548627449245730768512804522276938322860207163230667926550206034915335448204752711983019300966037014247743878739597091975057498844494710584953496239350795936348241615384365580248965677411049693371903090690251460939459328263111334382686139442038873707066259008522339373713856009162193984483527714269173603469519906716029346790004861552380615143235939943414830695637783094073403469047732740363075586928374922051990203737853613558454445171782577899123344567899273367632044188824490034859378634612088205601440097275886560099819455522292921506016688152899478763291655517635854769321920672500991468199237097386001018595924945782957955104501704683960240775355387347023252853315487693857330540654312536679130377321580123000907817322049988566096108115367398037445021305251686259784977016670868812193333292446805695395240947513308184395138629229268079060373300310902241592327141900131361304581070015946179875809464689441519673289828090138867215467519936825191647219434596497947015179220792811678595481420521531061514169341607088723022641869149127036306348037747930845782831392171790071518318453857606039226512903448737163047385116324093302053393451908810264198306547165284246229965122508899939272975902066498299566085132976345355286389624487896064154837598487036038946331121927622294157997503398082590655908410321724493070999384577879830341731376957029362673012594366178625917974545997713017988913808882081581506968967130952473107753478013582920809794296609532360051689644703616100724578920194984917930842124670219786599959171860681345675962620062778048434023635092917283225000118053032715317022594083057699528315681817045550149230466086551959502467078020581328842965887710665406223784175938155774059455767810901670389801247383498283085900205957600858245885046327755987282368983376657731602741646347978565134266867708128173608329749325343011523195454280551165442103066773844642233249996957228566135687089494184067820865341652474089925692680136488416384820984626511862357056606378933907219663333925844102550050359243795365191978916539000928114238071068351860247772455981124008718229843729149514232359793116473006440785573651369164744105167618951078684851736146484555035559514785462728392259565334713039345824936527022034623326362401913459221322693972025212223856545697193179180560085898117833620242841775258134943929801378459825329013105422622110768095094898060764209742250454296998453037222713135962895326770800379812517689680669246303715212480347097905430410156858543526285552087393523924677650288164728786470121617543505190068924497157447447827814938406681422651517024847954652428154357479283471723742031042028639890744007891111068336031967300630120427869987103005925131896664881903755949006459637861622985660510868138307794025866322197188746900751842360498013334521868567439049526468586335011928085744685824032846612285078685411536656195924609617558881343224597564678748072510101036138480416343489849510624764707069974883221703088710607671299380858847560888771822308909083569561466815182217296612169798436411258704515752300914330338583563118313437733630903902075795442767860092261570056390045863122267343774528394494328057746242910297265858346018219035611527948024820569231974654773866742299439006723270043316932931773655943004652434818874637207519216372245745282988714501926386515904771913510474459091123169614268187997548706020167931639739727696367960217086677347692045231225889961488396763068683895982204107548860740734385892033621517485377896838781908498831217348524895062427803209804945141540641916944376299181450908801438840764409885462771284221479329029934803583558161169563945580905635450009371244634102945325410779655112900806970922342317919075502886911603580966089721416105168468207916325576743227408781403520720089004067810950819715854565032655557961148321473591383187217665118350788235885463791977043873020637382743909521480171981297068163114527581081363471618285718507858202182975725973388040473270244061868976534991418542519051270227896136080447599734998545963546545595112753710547354796139026653683636679033314622925327176839381221669167954545617766783168110135390464080883712699430562263022361003826580982142238695739465905761079784484180209368316459920976423014678576273328955049877380426142668882583845899565021530029189951890494874118085425853057867937913170277256230206135227120926529071961040175370215852285383430968016844774457004177154160357703700185686675562395520818265887681086949059241606060148114205170200026570505391290965149001670394217149132828563255762221365104149447204470385490975935101748066293299843722093429776985512690500061665942102813837151817550701297205446324175683331216421247372867087496040648021672664568482873475635771457089215858138941452901612210119643956624499700528065110215534104896832126012887437696003726433286336670107552024953064293248037920272259166454380422431685022080108432232239997892096670214775936109241517536967327244071542585372884257301679292730656591511517214512819878179838973460077727814028174543546638495412118024477851940348301398934556025565957030929510224728156845292198905915852014286884079124597248937470997715517652061606368893345805741340363183096439948926120265727082542122075305865120775019110162310966147247201177458926323714348268802337687159431306061139513273635398072729952399266638939578365815778386838174561184179444508375127150470702915992900675662525957133185687656112437562018031891183221532960041653658375585052775949028553538093682954352756411462729800957033980221824093270335076739566136150985464252998008467746835645579033846582988716316159615325460618651568471070923869752785436755522720705526060834652775259095744100901255164242801648829526988999104110813095653257536965192394103777347874574229442016442395756023792062271718766356047964797374377244448862825062003248393030591465265691066869733543010000397379572504502681766285116136408047208940880792673881899193618796157697416152151375492433668354929690378303942856262637083655561283822560979772586121286295743285353277939595606573465014046531622991685988405623013474369863111786812209246153962213428415598930843897176418371874908051966182904576498956985579904448558265664250603556684300316197746223449152657309244529882085881280598644470193563919234722234460545513163004632329138153925385954087640591730963002608069636859442944490784334414139943223945617753730347016690015478459964237318867411600642359363225749655593295312734572262853402420298352812877952232224205450274458788144843549323677533545168900788930027183249011167457007230178310509642226892121171085089837831518981543770834221854673793378454292312896291544303844026923999033434328139069602967778644472616991404858344174797739979433227503098961782607745045117058550518630519829587922961820919744988258995411239492437790285048061011998639171044690422179958008058529019846413070895633784327770020926125373402022571882129791060891068275247745364957998449611941550743226042485037147599611817242335198848044656703641601745149840946675003736832046444107288601735805502434825340348805286646941545166047446140784160652736215330873791074491421253067179208382429895908039252744423660585946559049018448682253336048089834822724400412400619618777016463654403216374771446790732019800647825020993485079304597908885289390175985229112129004419824029645962784360461590903652394165152232517101663553748000195028954508974668435484561010327368495198711331905579395164762472945160571738410556178064696267059587621862039590231561361322538568772891156923087495508247648468096026981684575069570845161993208254844973973771084415601442075492590954932057011083862694441029142973044554476735394192992757947508259504616981294283168532210036504647482543813553489216225997304713471945611308728324522700389892682399138187399915957371510806165153112541078795597031871022914817473465373707649254086789427155225340632990206645588521912456421243279312917984963365632169825646140800611426797649980530595520487530700640573153735393644924967980442928082445873668077578331755088880485497054545749913713297626483657041429837704915030254678539721897028594472809416471476980824760662958862442270447498095420317416206627017384324560666360681348000721011714569488304186863670469448714549836522653850967703765315195973130199394413674801540941855174248402411510346863184777667833532744367505545341953579377121798530790875885617292853358249339670867474841643778821146034551029303364575428765567778803004498987410535264658413863420393250521834574971523835134757868401327445468104506410805039354616267399357476169476911298841952205946727771472934609189170457563148889345268349801673804618779108940302554798998329154993461657467246934285451969458442017269312810932130868328847947873362447407262179586549902058490403213069303695842084049082778441948650372302564071298018141772057686554522227259541746385582707169688567609228510703373646024839275073967837306448925035634947342533939723538262721629582203137397806681501864253203826917758102006589279994095221777244729224817566116772105064486574299988731228088291749933428276823414268871460257204846366260715536163893835796374828574517171708376285609574721106554088582409421039579276493842558258189422146019724205984390296016783134303519636701373626512656956296706128089543765372568155684609376213228163798732165793257869681014345099665957514647716619101725792204181108470974597512532294452198926423410304710192335750404829159190492972341609895670673961967177149925753469486089800131621401272123307997369534991488862345744665560706210552118680967646691822740900688827771481972374511534000970698238887530603921549302500833849259562346217160287684062724093820213861246060018301815986022150420435931676756616181463570200677112672032224873921552024629528206565895198387029289781446050710487873882624198771508354059415616634091264484708851795953756510965028637183787822142124134183599092859295373686821520303867716548010098655595911700423444676021066191507106747855278568750292874161749653901425534342299381934251155578706263434817067586110414137388304831985450605204048544206018538438800710282311845411875644735901327240823207698717137872773587896419609159916930452025644600007659272539481821274007008755458563721903937783185254221653077806617520841219244124539342533307924215886504986426276073505693049995853468266155110905745553609501799928030114992788018503734949616877139370218451445266498425700115211037853796003931867060916024471998645647470373993182495836661541272691169227676601603229009104752545994962777811421312933664221647572903378573372834905868863996542174277594842165904564357533152236097778009710273385692809801256300493771668092666323637155155159849503169317910810023605948763573435318799023800092353767031144405382916009744499960193704227091816334561731319384930002549818844686869439536896075650121754542543395830904465688252664927038970868441129283913446386465454574744991395709805385980313987551434555716169583039708489912306906718184358406770961100371610357051401075128785431611415947245438572957221439641385611056028613135446463347655837659268923816897922420594220018396907872458629272178636406450159820658781148548760181321685645347683402469796781158543318003896350135227911125512290178355050262689473909593010375025117024066380552474442567040912642883655486218687370669537512751428242587602693576636914506816795356078266514527997078743476890798537730727422819230849555624429387145482746021413949218156635313398883455652968320910692942456093048636326317950755553329006237675204084884801397920931340610740693481033368360458517393238729038560612666428648489747907584508841216258539291131858453565258196030994283499561412266826231311031459542638745006184068800350688007332289347154255932739474946496170754263426585081700598326072753766934771335922193208664084669488636049768452046331797508679337219373039600156592184465994729546971002216144152418455082741732524914979244387152173018688643862510753800303214412258586604547327246182383318530543865850338709423506075386869423563542233339107756792204615604485500443351586361248742126407342622077267641980737476389169154302507031092232627564421324717787505301001953209370286343693229923180145783107492290772936362095745006713020014755121703317191673571758693263140462149054571400207410185988833837172502900961038042068289970685435875795370599383909948107092517314744968600369314066571709551578765542098143528095152580581227176207148808024102426734138471998259005307202755617265278904438442525058051938897131434063056271504973138850664231698545763986231039731091966561821228416867036384694504844387741844887848744734450512341730475869098412121964294186020629978834317224487648966153351947864180980661439452409492696388248528128363140315186210707167789081059819853175121248388951702234231334991656127735993500050060441222714835950863579162206888600524541134742102113037869849928383528151804462233865551740766644019241566084778748609502483655008130822020025641198390064383476820070139333925626621181770631433803631671422251228071835527925874936323536958256335899185200721521126802538723930218197849719975537022125871943246495347303567063418699957991307477179562392396367681582809919525282356272165551948448761153505793809254348772154306773876117859776873270027531171754163599660780277812524343496055033148394523103769221944076506403317501133338852649058035397381500306472619803297495604095162708648544655612776520129840239599206524628443260162674945588023858174557074382231378165472560672958976391643728569132436056152884790597259714900545432214513201731905943318293871118236027910244238117706155179804211992269221517863208150818225560972753639439313027718493466703016133881427261608033836019821585927301170613883120083416089904499326312748142900339443287983462649255660473352930269988133307959218081195638802985426809778158827765441513616286142944615158629064867789878835063660576714439117344506482150864645197333517867580580581433856094254659819012893858381296996448459730180871053511749045352912436957181494110018493454152970397013096775012593189851284529668441713240784432282384599124266583280119353029198984035729916593403424270603528104096440266852214346631095054758959406187047627881564516738888937425587216046826864462589976997613521178173998356770376056443912057865370400182694916111191650238247269408676195890489710658420747049392364365448748779342949531479395106309248499851534998605725928947929710017778873835983321805429795359233125968997780171372274639282260954620011275791359039938985942099992814282908334120790843682167303352690555988875225169158432961241931005165749559327831956331980866139179161307342281639103356578315851929703707276164546848723092372490400664068998315989995274158920593878891127085720772171992208409994670129487979080444379509747068057610868134447611469495452209510124340269391484050532053388997411995036687267673104145473408145654152069811276622906953005161244042940903298164967476380884378179751657467801829632093787763418635622773135815347167671407879037345677298946548789677579379372571376641842538726143004882843425559198018026448141593956891103033004860797245981512775964038416562484239783476461253149750245643651031233439112403455002525093472306280989801016633144798042749521760005148031357574263765771443515521872639870509638422642603557177774891303028183109639053008607395088804952353015021256507856738380549423505666581844587605713863094665540253868694969748234031541700189121710554289471248692114356659639884198186830822903893150958517161920480907368370256727097146071636936063125638869990496547312204756480858245261092827838074933235081796688785119790660108449969717318052887591948648241373508580448799765144200383239329197098087560145554932932946195350278797778267409112194593957620397181003104863482537961842120231629331896191229640076526934602976582445364635855486809723069907185401002685938789620899562703136293956892967751533582466308557072817314642318941030877075292466204476158719598352282450810218394813132941380071693738832834098395147853332376458925643533490495919981830232467000003209636919961340894119782298105849378371065752333996762494576234455406203891269386312871458087862735388034071550894820041561132642149858980399130569915310599840502657282837047430601761608568526033827058875440391657394012982173478905150867796346804560333378068790993179805422749534740944503758024079056854455010862455757994611321379992455581933744926999575772320431929955206299631619608373744989898309419370909431164741756909035346799789440310443599673329350822068157551809731526679751654217905963863762465267978305054619492481522318023601036409907810666347312754275361359091927608341698939907923605860090612070640402982558489528309512706261850925408367107363359573347549037723197992096361736335588498377229361900475270164030167646844314537547723949350938498515211780653787107804742638877023778895045466483677344030785919915460698476530678392163821442938628533530045996166502105710304666301763530077436948165746136999283482082188812344866000777923576636072071563525273270896429330889787098567802685477634781103066101788847790998859968380370222974733999225363520197485281825670400805291104586115535496859580330372118683823618207908064303673446622402484717521625287388297811035140393512581740476911437276461362334457133533152818399232809489574519761007181764019526213822330436291752464717671934299038594789029239067819591025422457611548132602242070454549432303737814112800300814125331954817284825578798618720077797860459733074964504895188816784937315642135071644070568041824815199043538995487801359093734211810345376541678097776165444486055069222420558382098125807867559207070321572849236780831733166880981057421539247132561666743992449131399034198533512126820993967733272879922580451843131173447842715938604311267308400154043329986949437025312598552429500555000981050301526164654793890945671165060967881775276691286697981338146263708154114748619993519655509691469973458009736863878912300236525271418408184816566829628100954805188970883133471658413454514063978600737847387237507903962159002224696223405176770223338583701910078679095792404498468122050345135053266713361521671577035776486518190874822481117509973050496573564296298909541995589659366620142085704349534543909898763405869835823334614857661568019367817859470338068762473613268623745438555635561820490344889861413298227273796221375800678451252641914373035836436726629354488139359636070485350290644266052523538636958010256225674015761407833356387010721750268347840093707282061789189074347923106458965541045365014576839497778614064615507299188352815070580140643584767607281399230374517588766831520684573874567054940368110128922851293191843162181950804513707461320810506563660438926279177675664787662032436863271975861114027415724264469489979306750233248388760504492739117111978011961015676381188116974979476513385305365287919217613961297887966951598244373263283868101775423731944101963961638604709880396090177632552662555395217203862081250399821213851963576867905623218499571231796335255561937353475697199634222214072924073886876458701404944291292753537732153211289623046858597721360886759376081918404280687968470830041008675828619411247980164328297283356181622977039761861576684018324794825864159559904029915068226534569861539729449770733002477928746389865523155884727503465007931207938678809410630995374204176096707224328870150206105824409378498862032328135450442929942936800260631795291073672052346382677886776767515930060733584784426497670700986194148103082299494521161587564284739956733539222032528629619684404852106303677052664587309681698974454112608249846959645115924946199916814174473259968570834733792090319430584664608483420643777620823854521189778729153035401188592508641737199986581902646611495339075909469263797267888962213034744444191230743037048206519314752474387136382737636286653552075691404170023502427925944521055082469049872787370154423519432049777350229658664999233005698677020695001382167498610528452723585301577703846874371740135481829034616907623591247352151049823245557068968331357236956259787209425900826466952309739603128185257298743796454264525119389154405263282092640943043527869705613889614406486386622923770379519145209713980575668407512076275296039222178009040073637670435021232431910990473032476924047850284614233919429194583538501728710774143264863246153813228039778970131491094626196355602434977277254028695327331875773268542170793436558039158993834403805595772541999254599020210788037593852537610247127311565246070347201689762078914781910512756609598746321098584635278333815589352220553318176914995687514811985830582826975010917575366954831239364755750173322088719043513474692267922023064407579971970737176398619459992667607845731890897989783115810796575043900642195118467982451247637107911104849313060832371588747519472390258118284295484602054828978118966939000229782258093817702107861277904531414843417170481214165177494570531859435209514310150224062476794344011571311030563661739178941577046313082739983347182817905817355767386373682276086663302395685488839143007122054369004060259930901729132291540919611752390387125143651858878715380033229451203475259666072425761055135445424326237611838946712032744157963206474339547293747144109367039042737257855974917822079990589623486155903870796377850267829882295933154475875427965174859529918977196781713127256696030634612823627108560077066380372648987187947576625158920419525456718012399743158041308807668677970929502212618679197666229619630871168249928903480930343886012303462555731486701979839619390640489913602705352788645084464416656205440943037437019419263833874290229793554438485077955744486206327081243559585485041859940918498390235641649654120498156931450203610232533915370959578566291758932663924711168134028595388704643859509374499601134455472063853502907483803778693909153179955512907844088485942872539035961717390627554702257680262832654653090863874801873662002113438723783510490453226459073371005135259257252402659099175530835195960856133082650655431292141551210519687889255141324094376669148058979985640081717872676648067025250942644287725963189063259247577900560953088890353883692457510693451219697038528098913469390597912800221920848850397801372268840036124850579792403794679752159724471386301088756272587221327761823745430306164027533895167547367832463737652528229647769248589981700845369221489134403393704998532798900220212707532215698934179861818255019611821020837464134198329436766564679523087818984730896614234886466125231895345066359708992972353578179834454179964612232234296611294157611643543179724888291960302909185588296414817418794015074002819944333417056648378414468379039030411570262098477941439905302979585457890522630583844514760658062279182118698734162801776924494665740973538134343751501403681887249145587878937231043954976417774194523703322785509049152358180750303767361318966424731431329771336181397237654361940273530441202325613629466413318916322931460442706746982281673558113820445957234046111149916020345073012125140625750323948204984631803308164017466667948358990237382411431673521472260234285866712035959056984179289132805169510343660365016481638902033378349419619737007389990660296106011324100092875584797711674141191008435982424027675823953889201512446303316739283775887632106299052390660630829479148390438247523874622016374250794356879120755480729361017563809553902159410066831213374529050833695438680967838779873237647108382076314020505193022639586914354389366361950994445845839159239426256973102582124111412867231050436533556202679004025015218446070264296336608485738608759370196599256768448184497380597889663243201067620239190875572443133415151570428265673010221173409746556699888430567499256997947855278695782653224153415407213967452714209347190750902475403155927993017454313928034789591539575888014087860899900236657543533442227491241903152930408053996279083310654433834456637514389826707580087732479542229439232870619333603467476830553967207823671970149542121114364018548228463289489732599243776883473336296322333397112246177318742701715180640436275155744259409154191870486953533540897152355008878980734262373564033401402137541332192147076129740198518802703367968969791705393486148568178353091941977160397896507433509686403535277884737517070785873552604917153359617040330057745643182974305011741592656818306407943393285679060308640486795998813580051412187597375189751617382510543719538564185131258195244294894322974797842226522946941641767654704751509474320470370470402830765269600467237852434843463833054846916337948712367917240937396310246035962121338754867235887386486411127994274789086783119080176167653358815101373025918514839367240190768072320381893218224769077399013265553480889515026111342473264249881395753425513212890644224556487267319387440985405979129413677511884719183147258735332855187644943597568601985312807963414513434961514390024770524199679136898965738490312507373329591788289680882333146978130713869805459530828700586808424440743967165137771531472821343296761322841377394181955573973454126578858116247031995582610889163592215555375259478531937737238405731401105955118613601649452012325078938062866608846526527206608300634246580297257669986736775425743171542974465085704693039400430182625380678392389921359565325219429434984628660020344050409255836705023065640629035911809740928872546553901331082510136941343945226698177671972884906844989487261433852994039421203760913338716685183373263587444472993703792113803765307923986859693134698852902057651429343494956350647084621508818744374745915802321398818961596068990509312164627711517685203854599973540695522554237185938991393570488178573591386940911876846987380334033986894247462820481439012499289744487775958106839123345693787888634831086526729625267653920225488094525615551387011616095961946312261400047231749204842284690323145967181830005313353678152958352943552647591848718899345757286014891013055374381731598977113819947564709167349447617499747450766930519171342280380039616325976167722254713584716064955390755710097671644476026150913233456821645306217274604344212648570841614663926872506975052356541967427189169708515600818794962011247266718939511869783791455734071141092338012327337081948960176588663677143480788063982301273233367862076453646698591465845348603562876165561113544338480373924682880373158836558865524217134211466966570286193340320145557604133628004171214255905337531205900617467461294225006137565077555606701876996221303396760792135857067550313488219966931325949957171619219978927984997062657997861497919921256971856678855197543031551635235496334767485495675319088901761007462866462514382951244323145383074254040922672790497747048801118500974387277701401045824030788778891863668603046936345213854875648729628162248905549765890616876117696544820723576669968084758889587570027357867077905003540509642758976558352191928872641032939145740580407405272907699901093652040801355965318984644870855776714410275947121985685288014486724146268485520158612543888457830310483030645468365985481930389069310749534711159641087995900233472335332609600879632339851496947469852338121152156253272191759832424864193319572974848359451576866593387339448702174757913862647004923680535422231245266375747272410630213549556235666009266709542140009998305315483413108445460033326326106780361119309175249979679813924364058119019016886438091916253555513002636219923580696744511317502436922139073761031105667824086464868068541479318289629928213842958583507369195312742239215161948087654262038633463083855339673388986957367652859521726443125857678189716298572630949711944180079604237828809362128753246330726499962090764108937627312451742556683219569024910762109947559484866496943010537515323445646048481780170188007574206936959205674404810929721873735407083226292459083982106436024306837562092890492567189166179332027043592155140055141151820438000407160933803218879565366349077248690821139320489041004319006763965863426689995793246747384344358003351438352165448398015461322033603468865843578060181874461874605512855589855168947436114243750841983939028929885611817631388069292690793297611803172661316213096024859429164156495721380186054064943512486202518801693421299127759894073159418405866632117317061399934667145697045812150790903565107634814851208580559747657693450395872060875673025212201562823071627794463982062641411901011333487574507576965469627247082570571946631616397822290544770501310158029604344081479227450800284113848593350296132022168091975180162810989665207030752410343812524976076308549806007012051987179929987016389351951724627192366339448750398107249655647262854511218209376924274812185226659495383792490631830571055016323889521881177603492281705511434414351572877723909155816022462692046150471211640986711130726213310464098235125799253395499925051820855239142563941743826294184472262653292132292525110300956622784498936332239899222995881852073715224735618213149945256604468820583746901725008849149068975541349709050071567454161630945862461974630690965126849415066056257817301582465343027840743291177583542659100529678573903480227081279557113830693056456398935346659821790687040160216471834899241401085063527513373382635221058829604588515294902109574169026476612434806108046306583029744145137339962916703181800227539237827654582712684495894726659141069075054171351898651962030793240238262413969777014685943753178117500526865452372367537732521085989504359772602770325578421836003187446519461704392195899667560146918854761833050397169262965348179086668006931257199532441182229524410074735908431242624414807008713292781396803820318216712208146403841967783861273828278908160626745422840968173036744201095142351675578227390875041397962703971868047903215679244077324600730910926269932522336672822213950172381276473573028120438155762354907583829373773463379766249603218624354096304402578671130965185461465465241270289202655159388258196489779583825100837893532378701022433981306549916045870718931002469792552849887965014041867077079727302266708050056159322899519604216427759153945460487969677502509097383963820257472827938368797865780264681853793884020830518787883103835397982491989306854520320829237280708492868491555844393750944281040477123350155336351646724690511891391386770409584024050479734462468751310924709096306559848535451727628301730143882304354498327341244741191847196407626238810438419078193430196233821412898655066330200108008152393386796207112540612028918856226400689711940613427658266791004965191703227882821713862483283422340227456311495225357921610253640738713733217101127383300056826454082782731341616174136231676268321952164832922871067738215998208898814491015424467646605239251520547674659677124823477822942871657788458281944308586415042860334035796407903947325478623972739278984107039404693914903308318708413505701876083497017670244228411975877035423053261093224107414832385820972557500832653131538006644943070646320058374835804983701437290953363356984798983739173600884133254394275543078621613915877028310895343228362251582924528802680473484097071098143746887022695591459040500310900968523199596697819934060254488171798562933489247152223471685567918222217318033529799610595325179269759467269064141150109049910772801135701041863392313533582164805530794331660729244513908721329439395593958914942269825718356026381047770489958126069003767269635961712065319000073644712506917584266121713038537411336107834277617773635939497596431945994134814357698681810617964752602995486224269589499177259899155369231547732827825966375257043027599034296006472708880794799037968029245170728110115690827078829240864891538250360881788929339153209174407752155807316448486175019750040585932792334285577442638968221930177722471851749006442939280734757153908846282567779982823661399942428446802372015982949979810148005277797416971502012906014359649628977858528353644681718766013073930790913272743263753391135616978631006284404824434753051948927434276972392212363059490974712472573245206404975084926978631963607737559986863562793232442104059394492076980696046287926310614017716244369761036175685968203056505487789782686164782539259204757503914924785527998865856412184928650918845506577802063788912633666999089434883269228991036034784482414705543618419855825754265051720791934719040431087023259128369923677295317148568419316308671720689945708542222518135474095193028048620899721810067410419000742895405449713279343615838631870984860087207304676901729760049317785733448860507788849083286843418664540673718574310357948549116232823189434211877042111949227248087160856603151443557837655191390461749064324524991751683301057835265010672642762524679960221916724852457891705325441741256386332656304132030702290254161990515980601348712162849218526823671352647318963327836080661537429939090241348049081213634052865671442268918385641527316668534077078946171460318130981654654430208428358324200035027276615543021217290809971154027648527631009032434923831379388035996006832267027674504941249148982360898617144552253134283167738780092223641975039265237280358552512713002298975659481764480993370869309738761069264483118704282188919534561444644687422531649947923960399346199944866117676661398162045898816192269768369256662300253463185126844198099449071838075163237544709832396417808807598954977511992872523758659522715009640014975544553773837800806183242170738375335672632353011665908641397203457001302703923282861602204246660565273541860493699952078627119824782260073734985183437585389199679612855540611262509724772645677860445241430935056411775961177504687832456198559557403990165102934668130478660081735605508932191563899673605493282804196510265710774801454187709076376841578818211282644820225901006958443109390992305462326541678373182343073265467280997497013846564329420701693974113606292001664547716527737216909864035540512683183830970865559280529216378255870435686702992243991046322263524981207452037543680123932945783557120331474171160480357354213243877905016403170468177994694284111553184154548288761602077919556525098643252124246643034197553916515565558512359836037744590535320171827439414226411037827434108972848864712148984036502639913547256383841987027149414704347730674860875479493729211660974093618792302500882582986110414282186056386887254943123780009492914034864603010281047250676591165185773682572176689861569122197380899585200276893416837119041895245802093895130906743567080996448756267130745876124360113450859993133423215052206223932810381735417424092207607164761258049746069727924433375837538671861022778016599747787709059262230027627433628667740443941242209648890499809791391816392648091840272208746341826731239801090942551897736181571284534131567823593874688618768832357219016692310360381949433604619326398413239431010929621991051561071854821401466959207542568629392698015203588871585259694752218322975811117209251214299628570460709663945406907752560857355167375475675220158047503762998587038619650890292202864513923047508852711122140021053495356228275802294338011450122277802787752873835265369284689104026043814157823880172684570505014915571478690246465777771405266554660344100016807362905993573805210989456285219324980100656536638717982296182628508973901872913491758435065276257415629984835988724720809972542353707209360391334977052709866395464092110782847049638298164435386620930991264736911220945333234379136814153977754044104307598343929689512102197866297046744841838167834658700585483482209087602963639221399675997383355822936686293953494065549459774410621498896990755065797969331849068935625287636280315163751711460960934638434411409282662290331870089857963484353453579859110312438300600430154570501668302878911474763683558883961796356366411111909975244451397619159972929051750887185286653788847331271814617544288673327235041253213157082042508435463713865832762588257108047599268781668615800761162708421068289744438962566373609299315355675909952020174176070980664750460949256358136091168258233135662878905267311200671174122484981850582532928476130985530950145527307220168222332312288512036278450099896892103891429508705732050941882080483698127710235403122909444736851275331619026884939369191453645434110197263628590957067580293255820876611612073767010966360206110527498617094628792331665524915832748753292789454746619483476731067242696916247908555293509450108711509541062248603277656742193373712707485732109760497541946324073602356463536062926670309386301185541758415904425239247640016355844319958992242703038919280369792480672813335177619499395519319093103218846089727618984861543168820369402880785324406675418524624382810062429513726184126233206584263142760576858917774793030849196672495437233406142543077139827977276863125149805961607098114569695763031666797150708351871208264260438963709433617588865023636335767378765612483010815918431113809036013685308822020330720098511274033582581630841031129658960953571695593733838234729306790952405182731954404302139289755576883562897491352688452321509496035761403862909231553367411286199569353725065657750664210671090605263365251319956279949587953557811386253512184549208859947339974547969473752784468284731427276392532123820875320870856344424211683468288697258996762889893804671094805049422399077457029404436628400478014011916580730869538546823586770904535755431321617188866150646429854429244556791950033952476952010615304206314425607237080302728220274424987890419706054628627287899769104359528557298675397859909005050337723390125746654103609533064407502093788745486237079771754210020200935762682329027821590635066839148763834004148697257398348356190767644081728344674337736709613687615669281637214743179152439332690474612841250652205801101669802436732604639901122812495441320877485397328080163382542175581884634269080586866388222626512595671294371490641613476103515608217817419335591910374393845905465918259903121367642468136378669665182773886895224034805742598968500128624134419274556526580796007460426860721111694578543371857472972213436973156479286993069627421261268550518934922083756131217911134438066291450472449253655346599537055572816133388961775749009799596262867769883195552566555642174788525644685048290453296897420982971563388045940072056246104372432587491997601472971944145573326821656793715626499352650550213006984489540428051906347941818444193777260940643480890184205143789831227099918596177569775550542447826960028951632431500834978238293220121804413813044324655888340018931425554854807605052589854753856809273980437434766610676005114940259288726021250315059703144759214598126877891101061805002512722842849214653637900497434938701349880105427557911730438075452806599683516690117205868441161360801144022823950068255840505108936123667353098273997395306825817519483972838676647031025353319914588304747386866599922960925440127445206704838132606135677175871114153851219917327597710965447307133857718497181779105038848573780824864098941874935963750272205315952491851401187421598598045207840334625164342749265171856457461605382197767364355741312593019456233485701238274024760947884108000348788571396257390375957673771539341062419394068971821232637199522401933073048343555615641315171669728330730535422473962716828279433024268034198075501598584701187203017972530411265135294987937773888280338938578439711928779712905874581281689007061510976261592128371961047855361578348696906234132129565351074971649328230135359297624802084632113126290168645277344186164814377900393951293776957316601134347458384685445930083729704232337980246740421841527837680845940728857335668039693121467332802198443970542864748876259107809980231149466137459396662759781953159863314051997915158245244648122655695097924218693291676513159787180311805742545467723499895875402893477839009804820156277331882542753187259300550288124942416300055328920669081634822171909931558440696563108982845083537343920009566145207832474991470947579138690366691698992893704846256423123440376143781711373025836782337203084649954951854195951237453950763301962093077886449114251158728827680870195294252170866510191033142552086840725164236479607282262468285271071126864271802595261378736076610771906139038836626046045244909452186089260997352720536657507939040388356031309893440531015729151296853846867746481853287667664200192904696522480182330311337704435641083041412686007268022301077313919336532301137285249344975775939089591138909937410375443820810157497217052951002725150187239347323888679108783950043783394640691883844175596985952021143421208293092190666604463422534960468188328621216904039401851882890077299620785016247216236362008330454909614872470988962562622974728090319737827537714655361951115701403985030327899922146899000654077187190616621280577253290054001084581659496187044959554885517620060245853282811571698569529172890930252980575645922336290515852997084467879995407940905410878929093046360879672622835101401334709660726590617609660426887423803825514177696852438283268903760631301929177977435148498997576343059754904429109127533786533771979785525497206023893634831036018036189383079246525971520973135735990645826181489483996942706577788124137844501853066839983825839250847894812364199987269432742087405322542247658487941446533833455571531790684520349038234309096570802392002504475314309641491305206912745985174940770225940725075538108064377430511283164279125883038732292624789610831132883460304137138487377918022125303096330890154683914453115680624347858015708828534288781546722740237554153602701780771978508813315447755119220702962290111388883190525785301160276327811408912295504134451939174577451799642550233697587402717756988930174902084556579095438867515989811779254127407799014318460390599014810134665129612615388542844070449247152894262078818474864604753401327465965799519954906989319046263923812759502501673210475867724058024159651046143124341346856256155733657637548134431251238107145941645426556286057478068272396834007166592004508174503676371680476477432178451675066651988657082595200206017173756801514751813504600398663661634962780006275229865858055690388204266187320398504897496802412752308134148634634531715518813257331307119588201803202215261917369452349129353501769359536087611913930994492488167500182580099929608250732494937935112225307703843699635362030281195455084704210735639104041594122550301691561140104535267409096160156654776132457317952015313748590388903519328016744922812742855485292011597381100939585079354129344172305730419551495518470058544416725625879074037233243015093465575435066023464671126882831259631545828702050599490676475697131359881952602393662131102426907154767178484796815146092015205860110170832914310417153759829954958290865282714780507074157774806818747355667493280584553814008418022822018933407919307393168618988484958785872099410610852549933455646592411391933919920010911389217141390493972753457020749213909403229652214593340418182988399517320612794285274333435419554502804586850559348504098294126350048832325871598670939909741529367468387937562754762635956961359866518763456053794128033167526888273845458033739284093878046409921763357029239199386567076862835975896582715219875280649817267728954686724008705311181920107012517560667057745259808207207415518910644223299044108254078245747631211807430663049153839194964654100057945411133059724298819171083522885227567697402988270676164245823447403468970858151368507784419848091317514361853223735589472301413311419755734755560578722377272671290538388464579399904367193725591911613278712813609339040962070553917509291302558600105405408946159315828130745830557672168625081313927972275799227008261020644710907039872231746101178064479313128401293683851025654048336606849960745266131604309396402296612202138115048117716520692298028130782377932943853085604320068542169832630706080347136652765936656442198879630933280027733752043093904487262162531635046271463220544796663737167307441754027152098905793292576151008256523650634978480740371580367634772429382394514688726096398255101098213928463110642717755246171565443325444079021184424761813908557021410912512112490365850644292467136205283280210069248717810832591537172617500536771931522312073116748290713444309795475757979144961366009245517814524545592791910604847317964823896972251350966839290465878137494939689804911927659910842286833993804996550052974373855038849586115704211630396924245560629728164302539545791605349957224343370845598162608827482072974001297935587714305995397524686235187643790076847968244708443137487136145380883333175185307042766727798684565765897682500636558431510087709208032062504716996346728252794578486317120690256418793668801027219952468940256529284339589921589768766948144057552592255350571362201919028777773119189746418892922095442663135328066619658328333317171171275240270077496107838181439467087192996224548443188748909732393265838950366570134417524106683160799581043113835341179228265478482442066134598133397321078206990149541748984594970812545769328572639806158410414651631492930704225149787432957340564233436842634130879318442378510908798476798501893983768074772463215543139645241646509949180591683271428484127008775500327631718561760454786700692733486111864183279593641091335502989750452019870981739603100058210679738148817451550768710127205634728320628987155258030298300633142942890520199046489041090010611249750628040753807415277227375520913944238598873739568756198446665731724014333138749463531942168224488677736318751675557049242313959386250036521846843134765412540688578211657111388927479594007708278612999017015657681832965986833697334540494950441941299861974730408315015315736401448474471034878329473399038623386005888819150890582752186884471649493466671113183144285156525817576580885705393504583646889348044420989297234891872190778543739742966743093095461723015471264832308500570012310658275686318428012486413370234435327982075224236009411738245682151831198020185914783396923793875429383872352367689454947919707947452741393103839861021077110681974343200167903798609042384599762627105469245243322136927700201348418532831847349113675606777896076375397999649970997645224605121983033737835808136235414561925230382160437223153929046249582361188821442696215147481874771762434917059832583702719342172247058493695212221245415705591337681921969304064922752951330347032166733426506494133573724728851907862113674443098749397030943227886343487199344977992477751697509498387504243973195876699560702014182927673681118553013772949832585467657568245648336002292848060387772333236177075673196625824006596354554082243978374389001723739716496558339604356332052963522147795245179345901983829230327159957605541078322024396166234771300311210647143865800747959822782546649460939818722232663942234614062950893255977213479611954741007629784166325141742862083953674190171427919920810868872646196443474295314358607291190636167661685556463574172975510610343316482156832225506431348447247820840476901378151124043535563579702622476652171202477981607672917276656533411472860814839188537865995697685949447791408187871664963425300289599844828130260079830741147837204756243290129951098766703860330811662243624845947918984981749653982075645450266890774553287606270759048024868589273514694512354187276824961087273773577954668688928766124049837308836929154817603759561611025950936075495666854877824650813882987451477408929874399457805208828320775085088321516339252278698821668903053319122301327400964988642053578910446178169480183071142257153268273091221777595567879722687439826767975451115717214389178627363056700674740541755828874198766669638048977677102893803325164662027459402775844618774836798301534999536621072137104289469145812553643316645829167341442552511091601769138896709580886478896841370337784059600323289097400319792388918504731928244960162664698599028693047178855191270876096543808130314957293956522105224841550764429664709608598522096074615169699497045953677364567564097177303135863294842215674709052872427479991552394405620958387446501637434530325197410720768632906536571388814244898525768138617218665522694328455341097877246758911081568863825080539046513637055199268779589017456698208193742481135067549012023370117896032377289057974417906407374772075693118231413405875332500961700500077993528229572195962237677095627433973891403845841714295560062615419116686135058013830637646104959576254111312033841127573421015465049911902504311458770107912516882647797094604558795884595647209597068621914243145136813369235785002811228007073341443378783420101060535264007222182931257780188754389086696760881375104605004594331568013505887245578209177272641768746844596765791828725444469192456868308478733342506594505154031546685516998509173355826277524940775563208710702826147524044245759227102507749785216368255714191755333092787125701589112204058752964869819214944970073560363637415690171981801186007239542104582281387268534330843107300458399501121086187076059437145508161315997857530783410765886680012215677032509570464691809148744505433877451278293625076313983626580772956804559069574048368670756386007197836493658423014200899255249069278057250168579515918202807504728484476307677780279897521515608410361335694630667487009058613140047937662926670777863743513351422571067756920144595871713580894440687640561339605177069753598753763858373657824134182943778785842020241002883468640653006157089924302867041164673284640458687041607211503389817542435388646955555358989396935911896457142189042492386394898677083245240805687884373818140354212310471482924005052159490534280305133159281761988850333877845883484336622038416857173089845248951922675110404958133920750918082520641787282200053623766595221191106055967081501968271517309923504066609057455452617333654537611624511967845953730979371068789992934452288248976527427666024570894634047033857215978321726720709405033645051107666230820334286562544803736041289970153175677350531986663459070264918767475604244242864267877761886463887090731011291927984784313807285512625877364775336067388875123879138054336484922757008380981735593269549631115281894015927245404361195475920841670136741192734672103497399840354946938042023049013233864984426964942637015495275648521573319115017082265258765704224707488576734999240256193599555760201416617929767858796689873290918218399057269259744733023227578489871311444943804684441557453974946253531110485496618034350309492637556591381933320088012808992323138320074441605876886916799521960702346990293836979819238467987771242770730846121460737520344503555578849531327337301011660365901609706373381049002706193906457904250500083162537834968337412647009983051946273045252017362054741377437070189658353471322740033722427407630961365403496582477997613575780557527662761506186864177361332836350243058413471154919667754438509587254247262303695195724729104110423244306025894311391465292153151319650304819429583614500281161199511179337358165840152703750378303440008370424180061918454053367134481619557458593120989617264994780536375280068979901354560309104086708954151708484779014429692604267211171001084995310076324209674178191682389291166830224485005996870385956533158909068335994108063298378804464552375703624773787472426788555762864951512894932829590840098464759857510855993344239986285310827240213858153503279056238002634634434088349320555308727678979513953486718710465051275190999668012244587888755230906204890007528731165552762426795948823622071290585352533642406565486898801491806217064178189127588447906297356126400131744167667138441534584062352960661251054523804971448305569757216885120212734648940810078940728400964635917559289957659274217199180685689559384038308657920148489702699890756898346730480240490696006074058372065023471228275491802428905793448556577701721075129947457083075843859216983379070504150187039913282319683034485034497195768506015677611362449924348014585866784009918306289477613997838386987692230465968593560583045342607447857641810302470304419638094557268025702385701710166966313903137681166508378466699454182279850838382527444404999539747469787040261195831705286593237796921107498074991281896720407336946567866170808512126729976616822687857745058029059016087648563586372293081614705209660835714884467051626727614077005825720969602576675472503074380303768569148442998169856326872925536771234612598413244790430162631488375767499193055888241070678033283944381881563252939264103469582887732749710220932919312910462435218956153994718319820525540696802558871994613127489706592343029077342007383744431767330185892151994884803244193922390729166782623822012663422773673961516612679025201251603845670097122241968681784242806266922198077089458329493456866389460029099129071112258116121085673626729616297539481554043386225039089890737004777336289009192432262390575172987977848394403666884347770904704150230537723733352811114135670167319012987566742495603902759612359205927307572487307035004813320292931869150492915440388175978577238971286022387586121402168765295060006142103747770159155203769458467657868860608392928253729702888136858151587785744198711739722999867690254209630132731623618833837252245742436665683251353242951485187048489076634663944116275477149861506972239441303757801188186351237187794234012074242191821982397251399050723335965689648424490884294164478121179336204353360930480702630503369936601013931814721538922077394092572008264834049089914598698909597736374358248465749498918202103059826587299124420954269236613916371996652525725734069628225469880433185239104253737608850566328236725747788941503673144956765065699274253326582825159471338326873482330893952433157017930687416281083978291640572048621423591826864655019283420325153740665739142882670743841766800676296989365309947289047537466377291185569409227907104275572439115605976395115657394362685881128402911804257004842000038096664107080803273917549628201614320166750231389639369206595855538000158064316232172366631527056030503336502229028196929228330256240476764733581256127139168869513205473523950244295853590466541378375809887923349400930055156503790957532234100108789510826520199220139820239661363009108727361880315355157034618199627291382648842909406390165712687328766414917582469549662096649685973298694044712371770333104960692471385776712096592260391061152959399748690489600333529665617236296963594755239933901921757246580050268732189033966623792376550037686488722426586866932917890291423361181030872935261311168774727514707154216161265976900933471030243639001519036080639964717781530277470840064475882761118451142546629652198900617790472150568421414229441826002696569465651332283398354285853006756187244539280658152942934715220547591186756530872974875893539990696367456426658991000645779444246527602789858385419108356984750305323181777242021945599766057733893840506920371534395160966170130427776205930816075213843124649111165502481340327262824236780495892595797215116475478748875564100551103457857428330749577014782820130351148386437247410262746960321404330676066791633280139789757839961209402018553691966779577843380372988285241523281979289782826563892395358214458370249175703882230366981920521159443810508617973832439077297169159640795216576345538400934570285769749556214617012919273948069135498170357893193938774652989261037690421964246932429198391969950444639763614200020719464025654379590464998771526399994819165080669524919914259888887702908879685168387266696868447725706120044637988762166309505309249813399268459852374225074720414796105411093842558885091007733994584360411127423397255563087029017322601268390791330897216106730041193951422977928975989912381312052636212019806871885506344174796732475612046311558311138468754837003895816514732287153084507848411274031915319983413071364956241466965459457258255555011713241632199509180676183706946559569864121934654944525700956500093067571747234107682410635385239822136297906516801100359826342692217227799817340924936822361515259366052947329217660720641609685280205596222246648662054086039113494880790252082859932298106815205612480925113743332882341076886232438630627954489384630625971163459217192486349567242758548659888732865428541745492236519458861669083084022231145170615921084718340534169478893317563669610284397529557333217773767689585515926080461918734889488169884699647424720521453472123373913889078538668040857485434853987908026853579641558375704194997393235427605178400775868489859588599768912344177096204271322001417177992804703733930092571585728558460014897252754349741649837530317219408922075670001917810598093044690028925736674258700852246988007024613444784733112989750379814715103817955784596932739922581341649338299174234258376510297488313812873954941963281982811529138627490197971346905129588399057428096356953742144033225542916189382911460983781542665159060366518276362876198778502759033473247611803358811150994431387226412845461759938902713711805843912760869319298625195979797727662088312756557475660158352544853028103122577136389102861325227831464461707929566447902435382948195509664005677350415883464448550870957826730746235094116917098939949478791655348350975160864402258032116083422824257155935483651658814317779100716481220818834025514847923356168399326265730590040414353554494059697860681478068366632175517312001828590168819934876390562485914475949788187454691860906649195494343730114305847492509625375371748081378103709563266701816051194719950192323028967971669066795064423527196958147330013896610294145136032993479773760093174867313797133052738038311338741039766118601498915657763491008182551033283816003692599986328279519330391621669574360468333013752684566187374278145138252131732260125674751601653522346118050007067198072752473992422855350723431240530000524088393972487365892004403191980840518373949705391720926508067537877214793556204986808808113943440949227619925246174215083700863638690077301308166512525254299344317377155918788574602422286474745789116827955569964368589369351861775137306457350991188075762202029706100591104379073340782226934634537836823236734082364234621741121626398566647716176887562636878341756894176804348708843134236564017516192534625574307680281023818957322081642333052537225659570532110595577138455110511743713540128024000304713516586125365116096776972329029810004015008130265976708869755637027694346449380361731551858785658766710733577307103829764300486315088999005232306613759842353945778776965368121174454833335016426473233700553579229565019069885544005824009562448673690091626656312631197275051497176396990599924775562345659366022552997238281272244162378122616459872668386290753624626240889216747748521392557288095629710576250950933544162043891493313353132141838610820755799848817284640032314069081627822615589902172743549716501485373609761518882237001678522222128460546180221619655827611075281495403532116544869318692986211807998525205224563783471048033994383230191998534655868893188634855248400674629351541139258255330302667547020366679541362484529340584573961724083480200144726120585574178009875497069689281389966479150251382795458502201815843869666085019368328598422290699160966680826835387635781479652046813369911931935575495684006456010127329280930505227553753704803116028876256168176966773003807123506686254723931608590443581336829756337874848526439365665464908671669680981832065739099173102580071035033389205602787780635914785134263970914316343169205167403294830728818549971777209507662554268412370818085102350188107187342510896461226559823024007076404248035053932869741122208789145452659512074953217824868450414327143254921149246416265033681458742922561082507609514309954343263123942338187968304652418551912087267740589524325404524381319940169666533833148963130182469926115037526809205414806210147280780678880822792426713644355626880361654991894553892552740943231210381164720677319189317569371768864193816639458343297641353139591076366274507688291470503087629612152345385105888132149293254338739927551174595872940827001986380607382023926147408816783750279844343039497714200683688576520783946295945202832083430615718067027676440959321913425745944323034584054167282620156729706562655397189457816883670304054738730919854088901653818353673013602709411829818200983095741146122915946221462811652747513076729629081741356843252829258461291194753897599874044655899166338382272248315652998019221178978003444438862155301621878170017833906466951918876152863047139283214636364607867242554328105192849123159297404208794770683977891451203090979621917527089707825406067700450753555982011296914797318953794178158495956751211404077921084423821628679363085577443740435827030273765531968254944874047493660252660256054704333337015373033562509761077424404877761339888119604944050605082578893007512039844621667687222292549251196250308241145817329449594585892428628478658655030085489735199384843822438891603566898691064968777856007779778257527878785785258316418672882725684176305487990269624394086311292403840976848694766688549729923929527719469588925197100680017381184265990787694573520614091365291632507619058289236897792793905297031821739587438083219986689764116826108182265143431380216607453090528450323328791823902831413009524162394793186763607011783880280190696995873159664350911711409525797489479462845869816401002723301962484588671436617800034076134022851836951570246268434905802672864440447256022875466666352042251053843508528664824762387907161113205449576533883308857379268430973625746418897673907476860189534072020783516221122727754195663071776858696368069595671551435391576319630285694165225516972241444682394782060528814976166716402075215285392046844660854456129631852488257608127466507073172970734237577894699438641826569324265458411779884504499420071327946031872205641298867414585261136813853494647142610681351282872444126175754188757140764944654214397102654260881069076796621692197720065168350124055532617794177065505311183236475208405973289900501838297054397020448939899587998100124788998496770224946494648911283772829833998470665551704689094176525842323371188479973370370200131090317372736695282910114842460682522456353202259525709336192143014019664853807722532673799064428835400844979382296880408930936057673928505449760506714711170158686251790902469851229784429475574280253386156815022300416304589513479113493343663270934427199199360810954766094232363252740906749530388248510293361150092652702465445957636845058211387707294425995620080885762457015421932026806974310717498499452749009819851952217994139215590759686448082036655494146459599240080910750739944916967565820140012046471351304521756867897832587000344552511393635199185662274661390176329327856791640475194417003772647616528438060762070666877814447363472904624119301738365570614441879346494166243468935813928150932596859795544935565333671935888475071142033812022540063910757716984043438018790980021738951698080754806929648442425688469970917769938389623521853718999408664876595760474876539682490034128409480823222660434301216482315431940140130596421065266708304675164178617387215528391868306805463714511606307257832208483525072843143723140985130417258009437259024770514535969547392468369886389003342151478391548662638101775301920535726087517756068398659023609725813020338240458368273612296791752720814796014258129418378825687146997246691708389682239821775496863989803268650689781641098417237215385497929855943975970668731644258035315740896213837645409968942423524178000829443906971794048385690872099437553763941216225044207096329586052408454380765200681395029189583258127009485588479322043832412181489280641851367478262213010991267946040529218764878964609711151690475168081079568261699535262149790821762818439882794993563938353291682589544039632863969049617979133817859448977438140144246427996651073333423252570434565004577395488024313776456936341171563206117797479254795546657368056951164626077007426793973539815315827483997768425532463091927205592937353203516965810600964027539214699751929492645011579029821139480517337169859276024478886860229364523882644702063612271319106505530297859297000152369938088793525356733457918482673175496699789459670187601765629708980610601561425371746081621171969752253623092688132929045411939185571812935032115491173043888817162126421823879215686074066863964171707108116022041232477605095262568238684121802641995333100787365066102985175394380729015107978601224880488170187042066034721956612243889561153474581350796978370551217446294399646960118934788804574562611269205159218108754984404807357435289189512213703958515299656440471897720801560569330593712036629050781821947035720086822185010044574659187911019506299735375346570101267166561473837893664249093047058228844483873879278538525664666532133844794665894217143147478924102000403067612584497517471914371617552166976016623885752528298984190555463402269837220340824768709628558365029209616529219745163098149167692340543709431952745616115012047631526747371686598774330049128438396867000396350276472261824871100602639688291179373895951118160858471675341607398742874504090870682348108082071050048526829502718098396363994983649250268669069040927046229057362170346775882472061399675995852663214665439537673479900114561546590126573039145300159151762620521350267813106200417967391638344858234260139443814011158853938176337018022740255134937326459172593446369710105957795766451621976693985261189945508516889638958639792755080589871982954734226322943849586062013819963095398087986497236352432597263947160198954653880634496051302949331822709162219078697752488412856151106812016376687706852108411847902009031944975692804321689207822468700459303090243975704702174886121831930389579754573314293724601563594311744155378594569668563537639478492228274224037588990274241653974569216797968720181541952252374824215398683164836446161741547315633103759830379413789695681743851355095179524833073890784039324367876578213317894155291651896050890938881507277200033055059207639769622571087412350743480123117128309278892095866187624906546868703096276514879410703954424112130046988327123612857454824877513972683414067430212954844953300440446874866081106601124789199166242646280929835596547756866785789844426610096448040021080020916835629420283153338835092443728659361301754915852185159129257102167070413445173058005721609775643577760693739735558845230612385566023712457957062795280884791049165918396441679682560635410608419191281189270202491799384308740514102125523544305681107891104548973670699462577630220220421977841174928387253400871561139742584463162742112976967372279540017842505980609727415466650742684922312307494902236816852469505630541443523812754890745546760456613750616110493700768163099350704903833179864727913924076471865685879050919201994695276870368290976357060439316588199712208807024384584111344879382253626599015149580721450636482486057729685019151819018992936304449781763112137133976354697447186795100594070857201142803574462796977719277931193389391592136738475897361930617063516424755989482894020293507867824281106740491530398010534315248523529268276952854797588439657268913217134587758985171670661141933479783219834009321813345058977681744319615383431447947546529070285067486961724885264507384682543362174140977139258433148889429581815030256310599104235248942045395747717963289683625430243405578643321992724708694947154126752630924328155152728510456004286484825188119932171754821491594915763359564412673045666392912371031858386014259781435306959761088339273753562445055219127750167368562393143957255916281511797543793560032796409675492163501770875595800182713626215805354151227425170706410630221736857277000538386766697849317566239086591891441451868005672464565797634966101743965917655571136409905789927522233961054243190001813143791889749009890706162736915379284297789683760255314823721329110546652596508426377983641821599638476468441484036125627452278482223578278906045208770994443937041858514799743771362657881695526398016769541154806224261585455562044540241298918266919651787703639155825441755203533502511316359424477285079724241280845363189072622226115376172312894911410054088450738557015241191261797437486696562304296186178449927335584647649833664334937736451130041097549632515479243880923586419379486348345091136209472500352473438208020276410602497605737867901525290469428247489741826217261386559157374554875129392923285662548636336915285464375138670577973530711128637487413536153334553442578727093464053506940567610653087426261411299162710996930896047840161085863605645304916734817245543896069548003648617440019464142412117262423709288525205187623796973982878009164031790746982881244340454274002592930662571882668232941246026231447649664372713047677664970579964711563152518118334686145238563494305032294946453631621067982184261958437465878451875480434444822682419083586430356304093225155016888713031875385176086319053079471108522980895100875887473147466345597659661894911778888396845370594992766952856795197748782050360862025138405712662547513145389962118347092365898728258531342926559912579664165099936507575076516414713505447578633929070376495722363247509777792701151834966096951264402975132031378736967439317929746783433688097437174401549108338032857027781865886775388002058633821959769651730995357924612464372003080073941410260213893925980118739686286907424420113366296842643368765679366743134842526191661292964542786327839468227978142065275009337874573848266920313201621615789290161022977598041280425196073211305777489322915151840401357785823540498790963788104429044392350848333115636964893711510688281690701153703164923217376616391269295190253249369911729129459439476485883538914044288419049009783864599161134049665775490257873051963951662858327001130944125532467410657635826987902515483342065315755561363316897295427131575595119128785995077189623180440805149059646566011732414526640776977834386284682713317007676744960413731251454827320762299375601243317230684103257023194153856494179864641728127682331383975547418381694056406541852387706639180792177581536104615201976297110639194221907846631156061947308733517422526324589967901752495884152419136767481522613106607917680532786521167055413951626387900842983033897331942100843556843987033300792766480933095170385938996588194744516058700665942899205780416994781132493292512274641488984216437613393682661744278541404001743998204503824896470740061492778425184638844444545958551598343564810816076914502047418681242556836577122008772649174798946181269398689426383657882296031893840274896618693114854568932219941729225796156977398529327916194545480151584917109811143474666085615125585764726978848125955737622538487339621530487693629647659299732499329680363318131160354383223875789556049375964816823954659892815326274978646730694161629093159881334214830949479427260050011783367067956047562555936521500226953489027557675373553173970257726216720888939339670809191482631508251807443587978357402016752125972634203831471733387147150324223280467186794903955863025349334590656649295012315447631893400708013251242321187406777228559052066924035328624543794142895809266711522236889270155421796633307974471595866966568119543665278869513642940983174266789976159679658228070714025031201574935346774752040946521552975629439513562038640633010557219041628741500215722637476858040925080223144404037731791454644386926523359528271289281083997613976684801328205598858303263669989599089571933845004380123481657355566896038573991197921409666087819201780511665631040353336726180538389944812111354508287591962621902975185241666262729100785027106211529209164146448872850400845101243516335783568701087756279404858142067309645747435299174675628059048342242794246096760671884936050437229174239127347476899286827010925883627541180436544335906024022380379135753590364314072980861737814675959695111783954648166670407433947530726245928904031604411372158732112667341246321985006742659795758405448243759604115783209691943900611255108099373102420330945078362299240286332038012875141363912160806974052329086756319270585030514526829307675206488152311796829124027113532477057437440683215851468117992398267715075293452212862673249835261058534466788645143740128387502967413792167420101038427230412405580098432260323526279415511617368202083896097556447606417100419260326760279216387222566396793792119932673861306984608462384021673921892848769016751523883245538097082565296408987512395477356275626425289511312659740938679930206891242230959910614656942414408529630961276542637433200738350387948924223804312713292115442287722432907390291868926884521593238938269367722523019188278650991229185284991610372323454233083073643065098273902735460782000039086656549522778050645472265871489245016828803050952837481580415110590984528009436066787312801466335697553967159843039021025768704497361813747004066658104737938562100307231381917893902516462338725525407424354852568326788010994836740937910318501581911915468953120673003531871359884233508371026100729067833467250941424274795642594556115360027045157777026844051818299853145184989709517051843067117733765953383209378151216576766361706850801588627166871399478494492755560571890010548158249357470485552418466215289080967007184117937152684138825464588677924736965766785595057788386733516344567463284906494338404562844979249355576599220676285072874156860353093112719838894164418746118969948238011967160542751635651224160237603214053277327719301234517071261826502532646506385490144652891285119466314492200804573113442384223177692083937132224672222565676196442206292447269292001687207941124635892992896296680701847907910534540508092952512692938552954409278791741830425642561855432872321770422850082911386784151498315892326615989514669334928905869186532196820747460492581891496800529886028728459919745377545223594702820111439068425218434306224413449018618831826635516637182100297166817201883445837894213731810885522010143069091704124354600943737807930558388804864528614270572016346661854386706282967326465152496445389993747597157150937545109751249774519662469275133965933918023856173687879449804972093300461558063869630144552939866391051678040357275970054968043843317880823064471380176505675165120937693203948936488552541079541587540048191517224433711362411571083586869001779885496548718197540877587589998374145358205495058280604895907486948824405021653279951052049552303148635904534468823509813653558950080134222399583234170251875401082100097509936066441594105885175809133906245192429045029906897282760974678709640836759256877278858943921247286769412018098655271693858865166139015971748785008888203824242389491585852453514613727443144098010616955096283346054234529280928729521986150356948867464302170598374573565496522960374195074348915233263160022879861558541510648707291460625500956486529648686159891057690883687871799486492844560632255392951720320620655565180914653370742269481258085877569157538803189282759462076801099122507113470483442782453622675750959812646673269025320282588007074371551631295581305687757586934793817102803981562519616162272770532014200351784127465358462937222595620022573618127941370272879305635763770894548644852040280496918719247717476769332934711972935495665656006422392616724119375353181466194330505361525589118616423451062256171938176676384879752639938094367789703934708174624688726514520864404645408226019316904695573525778815392717497743524562859023256629284103502981101768974157984095494782147122913016996152072213954738346094650280017495271741948884447300666269001644071224673154345452941554786751481381523340369445238400125476365212744469980309596307847035910687032575897173528247217266944725388011421632581823917573365466182871994418432714745191414218081105081628641754347091667324462720870111279669772948066093102958604680257152236513799559380886916765701980385344071761449718406316620584704855348971360103149058247483882710657327935575111639828709860341347913842833571774806326564509240282232635615199339570740718250782451074531282246335754589373733093243954787999699718676217647318150635451221807698263094770082779242764446673467014825948150452066245101580653807095593157757537405696919797415231248514730839006405593561259740606535599102638989204924878759208711849990425854747909946909497066501452642706631499111969264417253783883781699506437885205451781331635108088479892606552679779807599167651619014203416930961078196234381530335908465042154836441533198217628623292578481566611930035460997985027973379587633486902590049564621520087285110170800181400374392895607667002014147806476078542356993259198457257441600101027109487885272866094870063131893379919143081864252415200776507439202790517228266521188294565567567773128447555005119469582242034459336825188062357334424273263358717412556805085854119329601987776758317813306243060792390648205740709830063662760495944468667456299393542859967392516196647660708228690185310849220509044976847645578613758643212823199818532395206948775024806642657133552637748920980535049663117083980224726433246926625833145239017714306187285941945471784113497977171301100162307094249912742609856976300602928068140534872002816012034708842599501389762329106422348115681873957045029014268312090853987506748654716690645169525682818221751906351130521222909764984786043120058470038858648049113539491217114462734028661894664950741684161648056233792292763797892209491826449444552493530231437538699937677032958262626518024383282641913931029316408649041561556992241994909561538817776851999486845113698481281205531815471718502266338248079021837121198963940835239356253899188374203422152951603731592802718358978502143298149854587612911079774711718297259117523316533056051229895225722551534356798249882886850874051021051999792044142671725630957935409504246516643560708256602512060645615077509555074884842827795755257331163712800909044729192403804966511097949109020367824593136393808196325990338946708151007213979553404502509669176544502629273213985957050747221501612957818354492487647070743889868084281901477977729365168968984930771677797124161550407273682125035675066601003368497125198343450891693303833136557131979570388965132078560366081484378908497487157889387631843131054083014592135245864095080381781350629838895648947786889354016319351048540463166650548522137326462888311013337261062336807510565562394861067621096153656403983034454738414714636141887676473025935643934136692191363921714742455953742381616572796188820496930975133152225772367089523005526362983046237425367653751666041922035109855628864187864648779998562652472631290504898923005988575420699309141834884222313547975820786579495386787015801651723074268836100404094558372887177465294503587231264449983743877042923513950704278964687450614354468936074999248567748861947715202125001368911492530829204353050244910453210641674691611820900820457787546505560646201104518528512616779949372925084418486651590995171023563485922755254036281483205518556518128695215235761442968257955806752700113226198095879852166521165291375188054597106215015654331945817655819260804653393920545026171873473927181637537351267537312293870148814948790759555690794584996351801501446527238018243513951902436019859860980512021628065487194894166588410472070165315294547954556016895520266546759909908931886758086034068117424265545228995540059955629105430110590582398575556751208543693522169518569769500844223581700956848886684573957184081865548994083424169369943843981992413906104390886836636172815045337170801269033530423071533919201250254325984670978770183017214606307150973933322691932976949704816022016990225527552787356401038678282964571296064866504409557509611532964503007180438217340746010095397035471324150026594462828225458855627531736778113939292457963000537620507218374295160278169580956835315121210976203091385289052001706088412105260980336465297162592882811986817233289666487978203592444471736528785368561732750170110866631508059334499637071618835266602864047635593098772052886804098095972598828469467772071170636179808973576935103445743778937199759813563326257968904454507659571686624731482298224481678211948690487569126717130118898002373074715450427235379030118029238063203997117166509127790627198418964951078964809640335078450064688938063247985092123534949068478862436832381158839317470597963793886854724200827524182552876321975217536463196836400399724645948499772974744639410477856119418306009756133687360794223189947829391017533842951956753265360413973435542723513556943331321798948497497303325827647813332471798525969830860291702283419916395312597859058207075796376034538222495248940067853838864875859714250334346398897950372644042609589679363089920283913068129580448626774943479871046810812855495661251231216308751414590524293988506245441116299173318516548238763304160759742277393378512918481726215144692829523497608408887026521915380279789553187416874077491107773916505929152170816319659828507336624507864483962464951950716306333311163223928423148966763199062945252870483414605936178069455680012239807937210960129131486520135667378333440574950443599382612433954574166055003456426334563859484206578309345599446175342619927158077111150772372681999573825885361811621916690126354513585946987574403162192771897769014034170577300684762025160313230692789447758942029418838537478251743930548788615862500089772928213762207958157756227777872950211049450317745318822658546364166507128795912964598054289007724943638509493996297859843811994146226620453951960776822956078259850114064844191825503825938982673791187221686125327921492070527521005276141676754108905622126014982615245730466427525033311122360463804058155882530917382016224912299421940699461291275884645659269530966476651742290852540313041659108187791215448807326997565733914781571511679200502775741532071191947061017971508577187887769817347547407192044455626459632014936805654366419918219558761224003246340402400847656838934631575024027186729603057342639083522165284984364399686492203761048756841199177543127152270030245212451567828177494090225064515512757020924596897527188750413707568870280639061369901924409200163401846946880752240461665704844437229261009581073519844611183242905122225738544209869898870943057424026382475558616393875334203915021334369332725294466987322905725070077729649798760616458496540277555396216519805362506044960362837965708234203634144866071806272715770491608018336238270988126155730105558732241070354879000313958730179166685058730638041089558474120415014970164920654384111193207580237156153503383289205257594684207344823013823471760810769180052190422870115968957615782756907889054486737243685702141056758452863343016380891863083791067614273122771645472490261790370650750226216633354960482398050655753218527255041519148029853537493031148169721503508472951513967056490378917682243038066333671953942040403290304150739324246711367928609654635162085816205242154685036430176058332389516617478994653520022989912035562791471632737914872900535673480002603365409398897972358317587675696273104617914419824184447736169780524577365230750292624870457070766812903244488277976807315809635023177261096161861160999258654251118877814063195095024149248542827835386644183939403597442235368011136504188538572680510624405220698281107833617524722655413937597106806529083853027397995414855425254130558907143185624097451033760380756248950832759398595357023617696894855512642700086739870177100926347412831343410763882679878446616797098810385782504697201714662656736325176435208652745633991498724205172196475168938839560966491883731565472417923503791255909674880864135623279489751847938569696641249174633162133629692807995286327280253351752859863815069674529009039925960119370123705440147186712313741475789718952400761713314070356468465685876410062819837454961821825768295056151693633270493405013157806429947274032270632474159776984253256322835041900372999868086743283044031670896513874412031308686865281350077298036454786045353702148804269027179560895361779951450810418461499919300484120128373928532315990026262184405522755951652580820473322967513234794081177815557799801209766085566128717644181387423536121864914426633385346420840131903966907186443496360832514639742793611648151082211707949748201533946773990763774354107116038803247356057196667658527217576336296632710792728697014332649419944149168749103150138127976722948692247957523886023613210997561550664625048156978242858773828900964894491015985027678007198541234121216228280366363242946859732366257325195875673181655860716258174274566436471020451108260221098605609442962761880505350754017658634820586027077847373539745395219511441714149454414847232092957367251035255565550253638095447654879626655218917913944816277728201888107436131920772320107615059023646356596210361290811621633846128960956880204025553392612792480322284743219264048211000674260882537206056707724447284358410673766085524887580053160257393209939729888185982177397709047630635646362055502222876345174584233984588412011225844479325271567559925623232077207475836304092565499772244815951317854667386719752019479583402901322797501832217216305038403063455416894026999024802757685051132244723855811888789524191948677012823488903342661653819120308391826538374354295153505965036341587661327655170053591237785031289915431589592087777183973132811921089926533821695524342596406531496160133240282312011091147283907431889826306901325605502984360909758989653014927501835000185545757059841415676213236201872697650086699265121866000083715285614187972356644472632360758795510465298851761275475621673952034467304293687528955924906340251567152780950988582747052400921474812676781462945855685169139848487456435486661646488654421058817879492990272495552658392219654212438675303600938213004417573764088409292779190452775384956091712802146691910365384206249528178676444846634051433265439703953877599737306145497676477117681986102897754640669838603069261444823561673153647693539027009966944542930810520778863043768041984730672730622068951839647627399778835082519552870281080096818962850970283189335616962933838661505155244365317366614834566027012274253430379752637354046875722728238960811003863655578452411222670735748727944067270556218220540381246927670285170850455808490856234365436674430190156149419917088573263507707463525379147481024917670457241650163609894548067728907916378819452460672874552395132727149997393649854725384177598348919057986666039714446451325938204627495261624903609058171924823228373986152486957074223638094965624407853779029388499337557320176920381580571207581757989901077235092070402552057559982292349006441939644037705581315754619170437280258131460659698853087308084901093381962824437175140271636646690073575003895327928981893264344012388688717528998066927776680535170198860785462034802946013910359674062032045823347573260360858642019063466715611063115179359005037102397195400062139613768187688384591520420308574779696534920719876311830456856596988948524041585922215558742724554093832423739332793444559775874380267698806043614608197896978409700818331371140862426269495568705284095707664769818956394946746164157041004976262920353020365035304176697133166680228068316452191813840948156502343238570322709213487572980374831743051767900579571186944621891922824721467258685771534371659139496837919508025732733726142605350214665302211643152183320752991342387185084252253127523666267308590234207085441855149730211997966832746065349871862194163647918503750035153176981156021749265664782534738173577052104788840666236357888190032724919523173710830360440977052079335665654437991011055479454341535474188141564015269095958657942561717548382026916811662348056301528428605732288897941072945017420672687047841331627276533004844383972312562023867743105256220490236359324893458372015282108136376224590122166830961611010417612483945454235568499720428640345415758647073743960764276047034847984332057128912744678309663931696637494355020208140462470867598545652091133350571868417700372883794621318292246781070450179733362056946675082035727292251062503487530736745932843808337064045655438971423289794678188984598418536948927490504255602780368537739089694645176528362810032037700952026411388634192917787758513281374164710618345522129757956673541584823941921959753000383281098403380505229758028698052334030147089104935192599297369462945654670677974537026010956026811599664085446243361157769800734786335984710694670756127384740599996989890756736780923647928805933982368481859883141176674253887841773949650752234515377736992761600706359796164625559766315080732732638696746839252054922769057157398365988429911515790791028179649176094061106944078370942056990854040547582939220598018065485335419653294346744484220864453249918931340238743160644803891354039261007450977881217813267320903637487506758301949397161551845654327422079239440395146221289184956391142433650923797860026332839998339855262401325242080907646505038172865690239037462310158871109406792781775887815623812983941193140041911056508748259354958027010937563520863068595866968409313402987420376838602778482330221888800399874505502780103119299600378358440902471195553134434415524596483922313856669138516767717206035202299615212436358833945160208229068687888826320761914077816511003580247876479834322910187855200696790060940629875839544732207439933921321035725710921464678122004518148206264797700476960489019927539215549367082604033774217965690136263453973640970205223941756362811163756276147260504586794593650552878725528298372894131312314470247367669947773881489280111494495760060206967856094822792984087608780997666737899856197139319608579582093293965174796026190378263762176366107581993782615352818519183359797176406966282997745139414074110851965092525650601398667290002097961952104982455964282309864290954791726635760450243308390190233369802656589193286022457715493673246911656299132410292095691364037479405339226022233383887526610294349069248139560688627188467725717433085307005222408876256528753198433619291120906065281305459948955288713272370747175132394313547700802267527774939542437066261988939926500190427078752745325481193850648831755850556892783923419378122613598800918793393086576135130121420536094934463614808872352491207781251768010908332606135372255839899865578072816159003063845026657208345569039793431658155764060836421664587842430014583510362779279848597671626425408748355777767467813278543849034486448775169168142023721131652638841051600968171225563892087254936836663439746412238349058192655079430206093268654079953486236324007454791998898725159828416594942616025343620100712192668032939830098259079802159470098441430769865695112619467657997152142060862834678529245628512191865969073317666559616226078844977913131218321951648236957282793105386532708994032305727837845903566843033747159461093040522478935644290756497930892421666241783622442762587064393450475155680119632039015088506950371532884805172814299344039707518223398251266522376809707836653175047017788134570887539360072963273903720590699187236651393028334323131226144386274458119038707881917345719330956448788332673899146842115584431717404081754815230200899995845853323234627443228407092628598696129717190237415242172885274681695489715331049021578570433991332348810745713504476297135048422489616779464263202917615125679158608646007228550942183408320458268094094196712450151788984702329895834248171249472893376336174047325031121130894557053260828230382628506221921902845431368937192658228586440031818113934711751519843428030842722339249672720506400162541757720092877999105727751611791505740162710250016225332228443655854053925076783048623202613155092501826136563929186293316366806668171493511129367243624892387395292804069613035536544257877216598122756606485212415301869151856475551750720442422810360117600411649704749479125410271119345509603096233039468467386287522076305871169551690704349848224264364152019017270787632040572342348269247374133085932056619449315305524470614542979168752876360569531659907038096839927692834881410959652316175482339007371338093148076329597254795162034829514102298728105377145485437262083390249513413322800115764785019325123540085408034902790172962578406059213659983425691175153177508393266508347472724507646293331192722069669153605728591925712113960682231697473032466661060027726358394972513172732405677087244127343739950260251024915544001809226801631272641099952130577017796204907188544509000082396172748577338103919718935813876869569971313309970325153337900348118578280384066505711419940274501776623588483007109975684427155320669793798921094435158102968434816201990826302049272257253277284833081321343681942416119908297794721443116593513306016808689978843817571388890267812455759309314882176277698381669622298938090540900379260417438731170211940758199777769875609975377750061121093423269447413987117089199138119611748715224659832706547715628868146951918336452911049217120678487821834718761704339826019570795469408878661353763222601167501078267937046158934241871034324134373204017145623997417370385640713812883038290351021314249869195744763034594078756689544431457145030085734350516017293583235124067953722448878974155974796379946001944822736561889356886674926927383263589287171915915060406491370236423981275541979809258686687458272974929103050900082822222064642948244788139130334840611737042929356180236161663342042639044131902969817208616482013589875594135773003784131118942384236382339297879511828941503881074699364820910910940776020453439738953715753461409942921542694990100894996221882582294162400015730822613097562482528531788935885669855832820011207635506805807911853063781725353497539488648040912549530124280823060797905633051869200301377512134979564907605986713103793691493937258860765989722321520950047090020483825542346400148566451294242260418392031826698134621785175767723747261803680574875201088574956186178322276268529032272528654963495200101664000095427164643183833072941911887459561152304100701411117799058284884983636697250078925702727388367697669403132540959314017292626494292239224596916348624219586417056608179988036342343484822353604949330950344365770471305952634119803507587668389645907656137511251895615581789218739100316393718166722109743587012674114501569057163625890644886395772351859111125659615863748699482956631125534831513920270449280904215502473222549900388909397333264328313795983493791813059151012892656457329224696547946827675737838045142171803459065381277025506967079163600617763104478098680403411211788046776172045364893413011823710545974657473161379988120116255998851812104040758929472840877903097332712826738507974617603612656211292674406671423308820811104312513223305774455049432646587396596479865504625442531104975467237554353504548162294262872087140926651540220325692922564970670116822866389964917268441916754595057432758034019209903138389084280931331300191753771929229598363138827920248137313094274623430839567403940531627800020903395069098878789138270803756714723781061303308793996433973439013432286088857721674178889099644229520048857290911760006532891534512882142413115138797148802454932495532940487260946440625473503187219241075325485757884367254845270158710161054001636854658378696638205437637325385586941982674332262701244506174731070921612276329214795630278016668386808357761473336699436803558498117947501357616528222990971916331330152455720664043357279789666066580587195243840545078743291917654239579306035249843887028343925056354609315334402177524163206882041105825607546090385110702703258586472311253772524329590572687235854330430164128675365884012138638294154930201699149133470710847718474587849685593383791578574991792342925164603968807195455872437243336685994549032978651693980162767131440904866152722166335148381394736563550294940073451116562723880363058864030765308289352442986984523959620816894742556153658700607010979232458803678534027294257746043451064209047799206624384500931951121531968754734420529881488760482360329494865624085910614081721570512316983902278133734055450212405295652023223234060898479732554709689873052142400747784213623922316703719081397678447032777686279416098551225343549433629563967374425665074496338188506845929623792061295883021300993018885823318753719076371181580564971661442016161860617288365277626829170423859421756558974634107205314043494780544088126515943990084766014862599748130991924948599039772695923579241897094748946036266131589292079358717640973133963851648751767788613861365696669504543856662379549408491433635659942807764685471497232928159535199574772985858689425873283592521746174250146476731657936093609051084903370748869881668941057048397751365589738154749063791784809494263185560195355430193671091711802053644536071710090529718677107160014802262292152305743545893579587122661797314553097039570534438643244812368710914732529376513427147313450916898244486715947707585346888297485872599695341132686487168273806789309674847212705033763121197936840845158119083443268753973889558346412642201412745037847473339983337998147547246279801526341323857455653584023689957232164991239851515570726753207841604295478735947153160104809416821502665319426062269387263449966936109478558766473746794110013796391462838991262201610767279714802186686909197153210621492578423888561208831057129561956752911169332680409334027493560757648766504951512850689729908830479560090838733621724235793746617431207141491502165135443734212073391815483711198792981487840173339974041098419862734068653368821666720502406693768053874543960573597575268875483207385475284020006282362466868870322678721781383379643106187455348025980432843336354660695495996202003259495861695592946407100908850658240183032145136347418562048452026921407835536961866494584830017512837110586386140163944560435180058015087405819871690242668392019878307357738430222954269118258682175729668831912508468182849572296770558316168366750271591604803269350983577856017634003037234837020144023971222100147730953919298070178789419045013234419449117558097302607374371350077255629428863039272282461337948328274696011545081745692624070723565111471855222366406968223323896417633284011992014105345023263998287939505929834968885128156922484003627107281540486637453474821681819223924452257273990344975536772998768237589125692122405718338055197577246574220229645111500978679321887015471431986281545995440658736577295814125014153089666477559332264619867650320303382986913364326522829115257704299198785758281874431911583445778318054795179436890162701192241272850416074059476671547189988186183724972648879056193049202248465522180911135941136167690149407648369254829964697974600870511321237678542252992721945319623639205414348147898813738998361437326683923407679849534851892178293046687900106669556895778607244630472339779965393614522119875409268218233764379981951464384466015717414839065313024597581688392544361634015793929451409762304334114910998489836623656562166586865602089986906544569281395804135543169402365777264344990357656354681471438991200132589029810794134960978718308683765620534620941748560697797662392479506467030927106421718454299590883342158292893951743502662462644333185129101536135949871450380875972849501174337266755655472149573740506337211871820315772319396852008774276287666587246664761560280835969990538127428500825467570349160608440452379220100926962245059947513858740435842879075823598873945652519763830090078400396666909467513865729152778829922145543082738890364944563364532267717941787776302239847920419027627981643916400606572884543659038220860263103126181555237334930269584165324126438582312905437330933017557808579642302479426274061194520047506550617360792925803426586208568770297525713287020230462225944163316427046323442027174508316166088467416586687813019215833412126257363951583688511408279431122613324644810010654377879216498926975106353845871107253208590744413851236826491072156699282795720917119249965636548878602561113496265825591520553903136874910224185735551549102882286752659794052255848038322821763343265246175566561990249762777212618331632589147368737679074210889020776514836998595242563697451716295914064230705918361926264795083224592327405029916168765533229363784538675773740449292613015011927148014129670126992243584927243252317973977295707680283004660284467537924988830886447688084641459835397920036037506149342343949690817563568434339345603596653746678886484795715496432896441022482048193935336044261976978376863644862873434710944269145179362900056259361556514428260189755929192543476515227361320268742504771790849927707920964295516896917222608368993151558759154495116402969212516682707291352989015350643024262220862199331643716919739767029040296398230435571067996455226316654908854777831847886592852702081801139780383179748241647983321499402555166684140714634153517060772779664533740204318517069264703461902313187451077282702373964494482816813308313238387318621708220424316180203813278259410641638999281714717960003240170773751490356978597478698977653512661697465069611967201099621371124459283479506923073337684248337727490648775336137825052806934826561080206067991692101652420267334426625909349489588419656523609720990593889142871725925451055399872937198332655847590384322253071917404791384121985890102488900061363044272350654139038823433360174883541074389465743958010112215114023053241492062312375542211341442754512230297149104447656177588114879580345236335852164206869391920590749372840009481505022337161678998886055560245301143416948698538950075081281773903555416245379560985748338323108021727368792440448634357742876971480180946419600402923539514363270884879115823177703199630331605834438778803343678983519127940283769946800596453698781166387435721121869563830871151032767571901522571637457446838912919085464570881117263611769802579442898220073116828215249394572833174500002197288007229019214714989039493777822736299868507558517915731709362251137216194970204079088447003671094500691984072636401968972115527590460645387583493805183128728093738589002432475407834797524832575562589864710443240866429305769236426605207690509695223458969528409120443202580920821079564334689387946489105270707334402610167311904901335556589040045797186988420996204009382437830889013166901253102096205198905292637029982091373979691819420259064056002113394630011444154834474124845984951082018549468345122877054110791188480663166951704815503415046660910815802684696089646093807307845362834326285939253615204205614798682899834121188742085181406212285734887098604959530066516467199634096821389212470920876138717035466497327349730509065492094103485910193545735193602958682292305808655590193557325565600497837692872756083137073876553194737643177973544543879873609218725699117400211681571648975722828451825518540456579057466593687484615167814315016499285525012615465332836368950658533780534877010680544569764949662187825825267449022361795634115917890415457725430484693192804996550876950279674826353775804820781911890997435894032400715110943960848610739264681309816506956489327508330429794373564464459009948233220703828431401893933166150739549806915043290005201540580766617755715779655255474741763923441960391705566271474540685791348847608993059151442693550227956679062092496666614968771438226914605539830341113234594938423387968435924143415190523393446999723818250599210824061355034450505813712508887337105655491669100489330217686656426953270664375361906192672484197793441341796309137664708796096984955978852208744936135164781958670849745983914014283027847941169523336956149421917510536481212362839733305681357895096548630821408439173224364698426462360353908123381331280258541592548043911210747240986923190729932749685286747192997047103543507831127130123176076826729916130939785088664452831248202305389165319305859687372073120295567430864908267100474918239037645836576609594389932768064296953353033020818024648370183423921019947110524431137559107790273213493615452188870079258619396457087135697885389643704874350017087153643690932960496653278726586812773664216103824081174300790315302392716329407854672723781009123521064087412622032891037033013247053711426914076884035820899915060903346500189340213909111843111294121097001310646812751638628148348318743415231299855746103804205891245092115390467604285924843485004703224560561777702410307056864544021082132348354401807557533971666357147276314690199929888414914474598709463838593688695800683665749148191268424012693884317665222124362602600370052640947961837237216422918534872964652068171565580994786408550994694493481255620214095593933187205147465531770590874871613565611722506269931686084167955494199851995901215282969111940148659611548122228218170967820188354511627978103979938691271587647506518513004836598884593167248827787547678701845329119418224191186259976454731727299116345773372999723991190805088725114397243174123722651527028152691675799660669697356205594886526251911767470360297465539671120955555292491150434235764702487390707661829433366978983208396392331985230611072863875899874147059964124635444225044293382939062004469783843583865366747805018521535736549706433988571829667801916099787792615930992113911032669841328576296759928906329071971056589280855469264282875719482775199278415114424219494450802156465129835645296095443687390891314327528653957950991997205647996922976115314149032935254589757996789221582008980088970727006464182941667505310334348083211753759896361803856944365863156007284121038570444625463061406582428070723925527158728328255275520375909783645123584295043630005237850411983809437392487269535697942522906158411422486739172966607223321388019485266751039312722629879224920579934209724641982302182369759843619672739532080337427452909289105108511541421916687215785084459178258028506727114953657650265549609433390780786476062930350389627074911161564221135929893764820833996622519992908132653116877831215187944806729096936020052517605488979264897825008090033813091032449468943587423968917112780438836269635188529287774376631694436066645962114635529567028584710540286026182135575672658706865508245240554119201897208928570296671129935262544379420825605538752633387484590452816547858763689446196595250145433039100833915243234986649834341783478531759389460716843382018429911858012762560138739425835452247043731664105550197267944908274094775961856375606679837648255236808849816966404863841956915057545268505014789632373742058512928155414491396107937096130506191065331661160582530822980946164779477871646092387618379290619131338653918779933372256869726316112929496569479612604872383300946971535688436843634508627326834763794994575496126346654365146017614573166603838526872883834557043707858385391105014930470455903101017308051529816477418796973091500825384084447201282942621468722239305670877902980566243898725018330904567097988703714718816007884486391358476628802644912337335272423097078162218133580922421621589470501437741122238099059816144029740800597079240402791779767761267047945996821184438548226104691709749062697107341456687580523173717959032300893870593954372243771400068983421447779317739705844743149778558072247278446822554717523662943274783327524440513502478365420736989451648948774353626974084524171273237716307770645407902219669247248398499599213080137636688596367850792171899083728372662215108729775945727279857935817951190939566387135390112563863800695574484904337525699772206107091264652200501959818907303814400374844491339355011391698059587007061234505936760125437264446841529689185441268281267842178611165521774908070110727598917052342980162080680997917522816227362193831108824580897677929161602241665097569691949677034116979488074210107491836027815758632269091019235593471530059062092774891855693109025985740295888252340231321017020220682011874144273695511908375746566759499545451228512332992924962398239849554630686725686434008084112478168370060642522062862917003897434443735854436855258336644249140619577618989535612140985082922746434729007674480014403426916846170676085932003381540514270608792658283797423186308481335294243789006122657592571471123780707743031461625042986304829567908356388069919360102119261481478295497284841328756626154061943011155365820203551860803371900611005799772744532633443678552419719865155106900371628709768204592807608777313484515366710735177225824740566008457125689407355612691124052655094004507506606498482119507224066645086693461181217681871245727480072807091091006779943264065828738151562403634317925485536431849105268615075525832238481301370994143834781219297051654189836723046493948267112082966277696579452441650740091594153884597089955091017869183742306159855610528140200283323518582057027921849815898270576620969500393615890979851124134901155592223183402046918162908181162036544589385417602779493196636304609520150628015112420082287334041161654319378892232734698561917370072803260569444859139898207825049794961856971970252635965847488542832692202986774702631634639162476309285963756541125966049077273016061467832587961651917852391112351496273683826493701972728843630715666795538354390382799287232405656160521973112979822217138009137848855744738516192772677277809984578064131982976023935606436799540200542423151008763315854305358086101640239494731662336249896956602141847367318007791075494517676783152508945402447596818991838498446413590623791892225146785241644599099723869573578415501731514884556183057682342667179098089626613903392168353620877437569147773664780978801907606505809718755140216426064830945791704048606285180703091983489346501136678497536348113234432106939145379711233792115215226963103286702967515547009434663916707055009581636311817302494045992333757485295160423968476343731835003894506940965519506860589614826144273479079257156372428424840809560916098479011561255303870182020640594756920839758919270413165299115973206669427028731090385048423686098820811037482386859693129006184577386646751828480327242657029035738402614550721937932288679108057830870710258203564346300673391215022878031336714518161405884041863146603404027465898238549981632168251570140596554598668801369056559043980492142302373577863707182881126401728391735412204677061793352018166919599419488109735609312087997398183972869845604142466070799021534246871643591983207420176495945227605378192734526365493414658902417270593196659319922557482913064248544057317616380576616524409172074907907043092250362290209625045179210196764032214727931750194666420011465797487227148255848921048083984761228103806300412978388350471187905817628498716002888591014735076973656617343888813243474230650170522214285767473836417804897673760718947684320171208754912094985937007555295521505237208279980202546294447760411849239754991339228573041117037414448176544151718486169706012612175821913080102000196445595994147602585868091691602929040809475771460657442077740545834014636381872162992863557042430356499689195195076851899143918432089755548583862061535339607979789430874511834495929852755971747309622527789984230111011088567644975459767037403556713192547808834180973420128911009427764341458672580677876695879022914541240605835630310257449542802076534546884005432695710885077820229443228765565838353354428856241669969492854077181329515734747608413994481239571503137897965429097884048618343804389424593839980272857100380045443899807145856735222233001885595024412599625132975744793157677585438873861777075166689088877740210682595719295223360629107794151878380357676982625543827304750194258936960137971382861520689662816343069179902355686852597422782591278418796113341835612070295596698937766244103841468038490846847282403273586343670111506523887613162310507411635512234459530209755927610289216642092120651142981703881635069692112800367309296446407950786843066384620811149186494629127852615143896879290030632143908826640179308603195739822762069906115622364436830497740043739297250378187334044899437588653856392384067428677968275993992956597570431037014799203580931184804062290720158166252497094502274223134152200697872722778090668361847631637612940679472689592443359037579510845385904834095684734061650242743295376188496335215025262092192033596955463550308755778504757525821252352977633821768098558689455729767783596581642763689642083829437939766196772246159082031799062512846466377758047096953416327380415954900736896040331956969164666900990116766860530476319552111486005467321337267805352218585156384979133521473371968831036401937050958180383433169297094927396773737358909009765970214403009929292630485467209784931344322877832841668737896191402114963460790743744506683802615156567239821400412245330589919494067186474084804359238900464864962692073668053012027120907219634369773805558027664293502751733298747113091591419064788691180745426380514529800947364822505553960456623364794421711562330942558031952021603351920300113518118947458934362730946597684559202746415543028474711502958158151253021561787460744540523548922002792464427611496005545347383132591967354950063067415022892954670700343122086259470028705144743924636381094612805859484858838987744784405059829828064336621267183958249808191821008882818837867662473323265080004808047525332382759629867408188972885966096419658034350183936213019692016951244167598125568324701402994748133419935184330817732322271372495487491973644565966375548337008351405140696674436321197707869676949861166425779997398776114632440972544729031872175559162994431895145567273184643879031582801162516373588914602030600464276687795046472534151451719459722482279443823141516732005840241667419229004835606390727148914934715944411159676460411898245885282330543005654539100153528675329646261294980746956800402163917369552803668771934542381755624440531574304913914324982545912785567508197354650097734350439948152901226466366144737993785389034019885573358938204160855548000864512917591110158098261318733823979109637664593358842402822904305044384009932903101750779901465350173479749303759472363535646194280993535424643004069012239767078156331185323369581709900704942484749112978951085652824842818528246780183304674473597743387431921027407036751346672288726884859848575168090090040953768087053071217081145311971905295572796724986480627112073281424075496150508035690231603470188872610926040662685828246160227586696939191529539532350447924853809450911029326252535517862938281660124910707692058433727177076058755735395490169236774536060674286442398026775529411003715325465978999446371883604685404057841213785309978025844875951517136079442044087557236687601022910319830603484003337230018786586882654145929502334039578652139413580378462615437306303523972968002212260928863108782258783908061758889148111701850814483708330174213802581508862904870638473947677256728536546118256462861387385761469345137227248520284322766430126862801814982187743258077290993495910254862382664587319029234080174496558779055697717520064348965162314708222601945453205634855290217631949706393409504623147437072567984084042581504424986282223382561227840229596943296995805291994747798291887235767975757499945628790494643022847748281951824550229633647373885530670481631328412011820340431246877056224756167619388535573889576841584540865862618644357919238327108907000622054943200466438176498299131586807806415680386112431215214662713554344456112933297452696628009503110759247591019446076804488026234339578653762219660526969513240049888001210641127103299704121924478089637741739077424457363240364535173296922646353647817282801624992611716169424158735820573446700938037919739940307522856051683626015863313013420494717297859097308837071422264862782194533518766538317778321416373761511256524494137703036779744956999795623910321302982537028668049310511967709181973785856413246006167144227526123831901108712642846797148624980020379247589264508317341898472735395371250723703424422708985957454181830179058391982458862161033742122659010325955811729335206075976942459695179750052546314230874575879309428737217620665990175915923658380296754299510391431942397630439348050477830727071661344385354161060197769278102744287213330942653633758482678734095485325105057791503530749803453861028994433868818681171178140627008761899485797882794107300071612349957502011986423080595746664601959064834295949785692146066501543409154468904566629075216020673293361576928143610501236487800104420793834224683199224989791122540871942282267956962782645468579956666587078797281292684246946981424121867980418314956299261271277907329060871972514461913514876873596997077201988750762068953182836354826594755414101970960814222366693676765815746799926347017353342935785603679505840619026659661371311797938802320783210836711736154677978844244698232227135349501515629417537005065319576201174190532407269532578622479260274257306051590563852737359450774617809162963592535370470240094253572883765181633802921736405228396815644598916519149277166985678025526391574022216668141889475292479876707052342672683696016110282454732339176975973539865556733666549439946707965296485889516204179333807061345547278237402465262885267707773596802784107014802670894308968577757375747510357233868578101910051711441946172617218569112672058242854716504508033931289395911298847902163863020376422380881950172361979276441121978047267351530384818339060215867881067162675516666682050700130284229300246306636502857657819881514499905891207249540276300277989806354581058250670249547139057716535195086995771175822184417696636669223299104292494556349541097991866915170272015432118219569947160855460187908513200824442013809187849810998386386191549384824717767992409251024631068384897433836235168454763994955002412495381724930640864065077214976390845178841549839068550450161461764371699545985171458693958712867800940001646013685332866720558164890038464906448148814598129891607761306353190134667903134443323611707619817793385290925805655881483310979551041965829236214649061116955765114330281232339932983080712211292985087002098129132019310741629047458302304544446169034723014269236059532126588253787946808031897461352272693324159663423368688708458509550724719835884170123769357169133004903116207815988826257854362829654324230771129673393271579760109505528645392208382181618964085466434399422493951887535502455310055802375957462671035441741084147267885640685240191691575413115265712123237648801140573434197976862249805361720959419107440150886649802228579133941533826084301179846420452269913888557672671181873519394904424292218566023062361322066562224639834075183304639137971043300237796389654844465337426659232545042687904002982099811076600160640796535405409706503815444803834282985978540913850450689717139521812771738238408393269962950280358538364311237277897453226444122606441459319231763833327651280239931641281408992554991686460834851321669300007676699068263655811841438496959198238007666041257640231333522860471783973602793663634718021426845098408395004066001249438091678480229092527787748031230568368803675508486841444845684557566645768273627019201791876267891243286637158121548372512014419738079005159063101442656583359121824018272200267858799095477749211070836292497625414388434336904565916184049168817546189870009631887880433013530933443482970504203907839343853548212577260860150812356752462675128148628903277956436821734124763018630329450719058284692268693255451258953637701048548902891255705703360043702908780011627483243055620896880059681154527605344917900572545402956579152912102616840289491944898947636690823724511968746225511046436983045965849316232624681306865509931301544474030000705058695070344402601139049343928624123415015651092297076767148877750692512964319830106291820920985089866007612144307805401074523820046493679249332064448037275661523132502395588213385985179479923061045592666434353575523354236978146332087922869650469234336145991003855449024491804447326077085075337802300747993932217626855078875990747006772617502114785736425549020215759909359590960871361787424635936639844434991602862147970219883771075203505240952409350185259283177404373284130165452030570333937722634285220411898953051259017392193299389147061157739338225306722216845784916509837151051330729716866482060330455115612027579865014809296980119410629952561270341403217246282577528129057569123073633636368479482720814396726692397427142323573843421127065240550135501670028050731189914706560972341784377652496893963438730538132003506309639792125472936523287313909137204917412274080182495046074191137663665116318552747055551413074402865420225283265560257109502272357538758061176504631525301070023650846936812656539988603629052215189445019727256419293388620785660070396995658138299750379206310314250416360751601087128870507926512619164272694393469715787402713366026901148480149088303262992433112001881253925119705299932717185537189789376995194925074650323828552722503310164499856449496273460335304022396974990758306100468395426783109970289804002757289161264349426607212081395539408248736910502843384069130030830716054984756033173629493892106145500969609830546338605307254158181192472352240882073250700237649295634367261425686023536224777226827797986077437313950603862557755914098061733968484516948778696405861873681881914305894309756559319768837838844912905228257641017635923621352984414656182217981658411667831311144772052108402357537271565862772342999754314024212209051835474819136804975168696022224142420940641233141506916716149814595928589462660469620670725429655689715381856266049432081827917693850331624071978225011976390720386356637977585908762193787696837498308868517957191120442904876544199800292945102320518892026197368664602746589720965882485580942583028686591438801255249019234883851278606771537395006286022326785515859999542085049471153387435603429299924348295698785787911944625335185441745659503972607441675888216320126670989191798322200854706299968545820043490262382735983708788447630107417581545647789210634188127572254510882836266347671196203663412793496535372486253907913852946857054509047647101542945318025168439502281093336661567529118359799249282766815841815078606811821773975415795223112649652663331046535548271840239723373988479571193133832567006250687932928420760906341907203801443334045052458741378412437576663080744810118881602285036428637350706433887213046478083794801761347797558902503380406560480941746924909360938425335983849674504545714244006894385086945856288725443777131411973816408751737622567646112331266964538803484985020782611127404003935682863219896251474436555386391102756093864191021304548359402108796830755301013838378326035759395269392214664014439047153781802228924826910954895107271862643223839529469027160893707588018535988103750574490953334475566548458245190531946652515939893237723903243265964549809047335155092448708183721167292939751523478990937839574272433404434567365746540461524304697977245080161039937287293906424264420641222157675014083664219852828238212073021945978043087512598434925216361019890212475547275776498205520832690657421032426149747078425384723068314552009928689032695357659634619223545588860891044187923925597528682026214944154676942533313279581899229416014982149285674521674813507475883820410306291980061715677420277925507150749127700620188356419717955952426811315290034334140741524624028842325687057143965634777676917801249117833325555227233388890493897859416270071258399112652543343528664329053323940657361797341901603774094356865559036544436652875721842758403064139736545759457658117041289746435573206642232284183488110199706279744449892288252047829947246814365821220780268700188410080514909747616600670944845067794911927850726236025845398864329873700827361597886235795393531917724556034819358931662669849192006022183986085290466222452350611100308687353455477573401023564329234760186095038480411579172337238216957822880243823864059317120608538330138589924242416345214370167845917130189753331224378604744555205034755325427104221466913450509931592393023197815148561969126195774029952015508388584675191543914731311341428597150137448124662185242413136839247137137066431304509107190443747558126539871861921558258809232484780701513451612832099069883009820365872121062063215986829934956892198871629427314187542741869168973184740027371001104569830894241718032550917734534501973670047467950804293498125170511360163449106588010601659689943187899203955816236370461615199662692186316068800602427120940896294203934931984243403205413837888525738101344858593279916188094800692770168769878318580938090322894247745840556122929927775252745736347708566954547583444874660876573342107856294348810481318261256819134617467638363519737412396787534054527120990044894384324474239137912911086644401830411741428394128810370436410193764418897301365249906565507547503152357788989669879361272298920557072653838125498100957006845802456039833148110379120839691223018133199346278873979619900218772050114606076051898973755624962134076415016505976649444028096959696657745622637183471245005608284472778355356484321007494954215066212849899649385446510032377775191954394789167123993679093950496295576075707546446079110397107885300646484915045482751200618082906812609465671514468887544220976570035682959675320456187181813139250167553113064164589167971281340693773853837694886836004923150686921784906556568360138247649728047539224158726644411522299350171952540169163260971699793190942259593935740022957505466231775265491092120327189402813100064772730977471690220058136368713630130096605180864368380857711993396365550717351590686486865747989134932245924556222166794898641874652025612923664246256287146628775832611549104660038977112067726647234379132470549150030016113242990347568355884477850623729623439028468358481277474912683792049741891840181507067411387398743868195404850252424603119986869358673096276406367834586644454413520152698525551961498838734694638829670862755926312153564258770913396595108410123004027624750090230514779408657626277758284406103797512301838637140401712834886874109544577302119656560610858014693883879278559351426413563585759957597812746199162401180187028973633971090601231949977009546379239838426738752303601741058252993873941114059284578984808972029468646686354849698161968360133782011249144392657863529405370429690150305582159242351804173915281267022653575643577141175991302636522660782248205367721020153413743671513633697072522988807235515785261592372518134045246321648776364589727835598511206245045631461832351984536633197605357180680211943355984891808172162122969429842831753861795580256378205342025587825421196065846377581234167766366902481915477676596513115833968321734922138002304826088240081012022965586849572773462763296001417307605759187632355511867768518236389381551179781395054389670573221946361635415745655169706303695401437053912506588899351683209082816893053393403918458596348314698780717769699327036524460591625240118221478357655699818910239887150661975335242351078161781319316712371718886760996320880662553531214536991531955922617034874986004383697529054148603915075659086076046676619328150147999478308889488896211193647819551128338083074956123212709579429823377706211203344273725085872931244298455495863612555794918288290000434099090049912181716966989106220445587465180505413456164894203112139025111364065909748036373918206523597829194720478323463422998260928508033953419504455495773042223789773729648600852753707492430105437730985350838862828364806908046545132101456339901073279752536669927808821132738899710363518927948803472943524434548141662186655259200448203018616520424124515241555105648356939627309824678734258126585206115601230756482617724702095642547955455275853727908195854259452599380414662596993510901985479674516503214001985762348927181044210827653821123054508059122195815548244905647202771618277249428190181030022830398256715613547055825360716744361307863768570586984365282825490366704278241832580681880862594426980940328021203059986738297387575414872103684453682966537588810149279198027559628516730145663423063921439472454907505579463632763687711309957321418422383365120189350552266478226653506477817202696272654764334829629031455668293304532882239314606743897563049553340427052410346250867014157948974322165986733050740503511281704967107059885016900193354154084963813098657134998566205155624103895302480467411877396858414832550285199714622874786142668193833273793974181384435128577277148518006000727054831681169221062169587394689835896905570833627968805407483464671623653884073517770942533712764947327414024548359756829009132137629770879124747673330635656630554376907197965776221361756913378624038007160517479067798784891664026739864371685390482738611339801714504091761527635525638150361507561268746308323445226072064502519232718572717578380609438842626293902560319372627821610451717481471685045405838451506482981914540611503570748760933477844244795178638719728584196037556856249153500288203091413529746403147203651295483231549875554498196877116501458055197208880563597971409486853531922552409335270932813090212678994388701243380628295897216023799696530947667875087300268612150059998377617960778029374370623102896919767009281501355341316828145788444206360344996774023587806983082383365591382292033312133923952246276786823166856602466532362270837574498236025101059857248296053974360083475456923922620108288636131125321285212178685749722401005388431743212716966248617328314868768683383849278151853006581624656500621682654443084255113722744618701974691518417320433160200579817679896350931958097921233204708823496966434362146113757334882678382178977439969293437814194126281148838382020596882117506500888533943680374785688910305060433237550821835792505414761408162044492290861614697702545003103502578160042292308177742498457944779692947669908134245001779605697067729329675500159897678607717774383636767093789899846071876677835959537292699107138579431657308761003550751342085358091634452594636875605642660872779956689254354342750539853205237406787678822666779027661245970596592270518545037275902255773147222710425216186281044345374202675069849857885164757644558284009360455799117596335897966802195921536476733652692482904838113751602354555221082038868572678325031931065993537721520865203744506080089550817983719017553679179391174855598092711923112565489624438789599172571080709976063766382322459523912397317625546387668475278242485917129978817277505323770299402819477361304692491199407021747855371042687778259835841964792553684425733148470136921325373584576154864961659459323283344252246318977348426280477079630114093682940862627626438459116446344184617855818382444005272751900889464095244744794550145103515409262717007623841675262444955557458692486551434939833269588570102071610928977006012989145900662893412633385990318111579186437561257448961925206906142422096041039053998035516458447978088933371497959485402777996954731812500535566896808256025756823729550236113382626557711792504428870613140378537119001829622921800595246051383994857431924826007505608193320935714360131037384197470498800467792086500568087702304984955623360825199939470631189739371181989363313629290536869747409997577885210306903196816811926403646383548470697761625646511830727168439157093030851335529655286377318625100594289012878044353138867823554130195749783239914586596804102343274866309468452912885016626934900556670338177723881222697262083211403440044187561505107848823549760309171634621433126192337970496663481412734947651116265536732623600699488371022019072383387545793535040739172090844188494916571436378934057394849466537393874907431847022300452714127633394330977075692854497772461862374025266591233105161799326396977193975680014289260796052844904166381390988925858203772480289415441727117894450099316290019108067280033337501421111398677000176572898840555443075298979268577631325848583078878190268281798426247219478904779669595361962556301108916976016257683891874228966047703155096715475419458060296115981681552936120215101044492330250675484863974103510777235092559451355999742853645673932082121261770769573811621361166554155179908429803619237939067443842645544948721382150360088281865297256248310195500827940359765055026961345974492116985464383672335113329484851935277413123904873549640072036323678832996314121197731710675597874492607959317505910815826569213132930678382744868857113955304264227390577308645623052078229123078712982775482122325091699589370364905957447769079341941382693478264024827143259068335187390716430106813970470872066045269663632923970293017924939806806885850634234842407662085148756053807519877883518379447890533869661362736165597515610110004664593551947894181393463081475902636949899976782619752530405652358594839138368162857139960238098320296544718372537891852911855187905170220084942193880375883663345281226092753988783294342203931403818535782999317148593148970535773298638921052569920514022597210742888470894055749135284959542786555928622668800787402696235102312770038105618084687094199149195237990826658967440266509851245578309888568019538479349558945862000307835073319053115549473799568862439461471958139771617756565553018135736148875160615244322341937363977715980839579102857592260263555143537739301898526285382143420681224218649241621736944648549350494331601280443462154315555658503798154122679731799846140219078492182235088686505640777153079080541341392853151254061342049232280631149259229764516362376312240928820205048603419684550876332245627180889644987325265369979052937461358456643352295639462665923163960611048346125223399612627401576079025435894305421906862761398547671292189714270492429057249707858112723266234288445707201903292100478281429135881662187749387989300301178214615103071308958788390717501206987054841512326560398100010359493976062700192150205389876466012090663051694362269586873069574717221255028013045505061078932163159841582346662157591759910265026488559505343459300861149377862741414637372533077404842806134224532471357410067073218366231881695586189553359627609814594452865273257995824628645081058665437317946617038603550588528051058364904378814514546785418460973873762967630882071707648232346793602776545154616486102147704095458030892241962648004134176515988548592932737912948030995530273270248258795875207534240891874095881272473504232505970180658272230037536281976053222831144797411738977840900126400359498953363011839231961608846452328427705175048333822273393382631740917167571158875262748542258383857840090983377682188892301051584617107904170256719711904673583248519923082397135907534257344481291019300654185353386802213804620765831009441845241864258047725910430559281200210330089275425943021380182717494354248158573686890013703789288386049537230724455594385263905373948304899734495943966783020155400501236429893564615560046864934418189394656729256641321139477364844079256758917328793237839459875940547177221679564381847732304878222703456004842990668055381167976845482662666442871566248877718010002986863816857294117430762711815039373437167658350008482832168543860142333080544487229049508187886198441460661562701623554766231297266779360119938867153208973296974148216830411296337907322213889282443020466578568244464738740360312633144478430362581761937983297611710105768255539085417037161666476061149020359951412572143274634520066946109150925292763058354273187099409427345515298741503055542512080798438715196027351615445842097551453462696781848385350710240814653232709776588495181187186728545355936037014860075597360968188260851127359204877503407913519503392075476476257614720084004826235857254861265279748176629347170143288031338976941625668500122682195601525363544408600785792160551453331248277948019879007752128723624562700511807121480375002928947088335899451733931497428356181706602792713341643400291754322487280359830944788526337474484220303502790558944478253448714866144014737042573776817516314373038788428487046819666485709391868438329213021913016790337494270600126367514772678266997102238286336581517545330532359953701154354854074790807153552628061007672571380247705223713661768456340099862247412606566246266067767990424252488909467079290177619984736232443678951551109405889660129391782423842023960113806181794802044736663636057108823077452247623298050855516424552873720204584007679808013167455770433415477374430727650718536327005845175662673120037569621397229818211003686740948183799216292691758321695095769103458932431185997077497093865481757092296405786523172411786093400408232470752122540386064340344584526811935954901508141394872932538459437665551205386347764804355112751355128481810411819462225569773969250683759168613199587360201850346594014698712759936845001570802822177139839144117803373767985362734510105248723125858808808948003772013367553390973059867690058250049358027498079326348566534606669019846453993885071428495123990611454737835080139735059731563456664275878079931062975922909397904714183692692503700334119356541717870019832760114663823668448478329914592958037875144198726639128076669108258831055671610945203281742888138052614759122762095587897514802395575354098549587796939496474548389209700684721724910572620161628997178808762358508045552691663434763577370382945002152862102754647825860057984317688200344189913711522260575738957080294724446171529168716598545153013100756209422264047813862749991620967083806825856962018654245990015743719880594857159187786434882518482906021628139406594440605995610928545675690995158641614624059714179634120048780276608580418625353783062655454567551474597014003341947054750078261175817662991131245628301687089042924870263348142876542333202078969255547522316554411762621850863575361460951924394406977736613808202188202451377468455389827106762602330993595886008444667986235820271237763185235357115671846286596871760283808944381107755487237130765128124189365188665987144820779881698997231699131675155283324414662468917088025931352557362574786709737217566614556663002999375814341353809143343506388798574951509617295371840767766032459234148924053922932581467824195523218677491388684354410916137126375239388633427076384484308670626487484708500350635903734096675598544656752013545834897698713009330021233307788863584925978518288974758946096886240949356631644560336581843901783165310828490022402721008422996498761524081627238132324955817653427744505828354840226666454589618446645570553407385785871510653812276441887218984057998797168216915892371310643402586372201021922985475525538845116398697790443211163719842079862046863088464199942793866257563985088062529523258913554216751911717811953926415502039143464138758242421627318862118784732853358920551023625967486776749256205073239010814297313371098997965074985577214902277662261688547502280543964295357560707466661221406582182347184090892067596625581315128258180254721943718811078612816832389249473557373149852560061484514236822930973550727639558922109324756742862081105120334329770217824698362277996616477118475351544602147136859574450741935389539524253511373800097936911468917338101027824366199155649839414601583710826804767341044578441255443813833172197800357654064031201476747557780562048309093961648946674338373932538534416102927460899958870746375083590796692942849601355470197113399041660810235626754035583789220768709559193252164106549767938360328050820324161343204976633163732647879411834401995704840788775071270523327352879925001712136098634871554576905991519973421384514628219080673074320997255272099365187320651759749556030529338493821511281823110423623306118439975962110463316736646376127057866627150798518100829210376330639583468413646048970495663044260595627953148917162259378824427984369654442536974667812412475697049175928943785777586156009551696420003057760961843269347850826899007428949128441601999900856540462082783119803081617372836116560752005222408406355649565423414969477872312547455253564560326173230630789442776577228203886832154470095169339235952579233921698444031239778558501633974869003274422058774167482556182507131003769922225320233427342536404029428691241139085189063346974900630776234191309032521122352580921860952480624870198915177293458152873174039682222453800399472536743476039649869039605076281971413095775144139790565394658564068886129860116250050171764606599952003752515224242894065549510089763779596235716383812831939296951935564600568973346042636632449955502530012648617321312836240438095365407577002521838160402883749962604310533347671752347553531427635037688335190765458125219402902873860762504199900406076613846897141608622333981279448975748182350669966138772724648585544347803909164183736268922906166730074177734276547111601977876107567180448389933557062545698777361533296019448507562485291614981973807374831023965737297420090993837657299286793018474871724042656690781379270061248733217321246368997396433767426106106392918040588904438356601272064008957582420356982981364700359891319148283553884018027404503027441711485355549963497925958351339322693207091458159117324785346717948198762750862156973742969494767773519329999284094422746606943387129458898300039980332730322531971871720216448413683467478243186316083925776473208152081034069063668401761828287490916214238722185956904424095756159142921647086732246256860418274138722169270720617206311538452195365332373969993985735011770978061802104390012461265611350894976260367431371737864724473424660719478426425665398009900079794063698395774667563621554964389978163152288795591975253886625658469504822000412049199533266815538387801961561861570650902822466026837575415653711730871582168813326931570081880788720026118214360656465861589669870788655851623284358268505152408362847005438679017031931958787687896462866676706743795841973950105371761751104766885972319955721545291857359612388903157646671475653734704651103550882150360055370595696984505553339995666850394578406662542158262234552100775350431425421574839241052722330623415624591929880556575683797058983358036718900872087150202495305156788003290064016386608106899298977601134912026660772597715682648237954614193463274497928202564954591764866007578460868282830861299692236296461258070171373545940587881744224505483210978367401562647596261618872502451549769821191590895978149828189707052011899193875825113647996022149771146221691475425309940497043554547263937102437213907853203604163891719535501938047487292648487948139449899542659329067015045105455112372662513942356717866227823945044972119908061149186011594761560243236517356607347978070529315764590168783310830903113127998220218463428501580932144950524208533844395267324779268969824480595089939913901713773382682351347152574713944810649133785616864908745356774599683954293983339883412176307023103057633478095998740598005769605245825539955989272062280060875829405147698270967729167086754318913248595194844150522452659365294372427091546010866223736818482553306257393778442904691586547637189422449011330893039024675656068053392891375234856767505599657144285765565382417786535970911848213386191399087179650366495198304149942096685085322233973885208969015608566491479945670382312376266814524885721366995449940965502026870390088255164542835124533765351674063287361276190534362137379649344654909800135001803760878297850686246245750121862372466209537994428301948364148106463405722847869027173135605448763463880436696487918550287204526204677273275363835250579857863150816601454252187007506695652341390018495024440843599185772434775541543373021794784589346631086894990337934171338528328928543277962243954817592886878964873975692307128737387803597975590449315230791158728183643123150119226717601866736957794098119037947105795042454334982105562033572584510751715985211519797156809981847849444064612770963499164974744252880289133433318243950570653939018440383455552117195144523103529692199977068360002233856410038583714611108680042570338754757258446189710435907433927096578553125070803006458090592630224809919373953986911951577242127731301020048884807823587657074418013380441366813424670242414310259839078519396569849023948141172852183342011455040385835703323268618418893294141664525335765945325538706481567335794557396489203580069704239874983376565883234750890648844958398930600078107475692718189583819756989741666733555538940002397112833789792289197911052389375287262953787824023655954289717813673947160765556596086729660857720220913973109706059655502842276507640749698296003449559991619289620719548879596808249794377473831874685681135422607354944488543271340411461730455032391348898928796104057069659067770715343129932621774818851090333708462846644769795516655453207119628199503226412253027869751124455643173477398234103142641071118043070606045587679347282416972560422060845372421439237295230271824083392057988880272113502670212685106519252845072048898068762245906576639247108369667634270028172941290274682771373809351495391948755827942226231883969044209605255268367234042295914243129340084315497207517183013624077300635714521576008818241771143705348616091513865707813003719437912815303971367236761386813626929608334350417249315091873163612389653009761390958835570795676542964243750792381657090766146992531443815263018712215914505327310809840599541102397496208032337397239802540852302933275917990990139606270789828413077993358533826946214914250148714773870613480702841640602789995247901734602754532822662944618984005935871028120615347998103085653771838719153328451013018535801101111803080684753594340397718193510395898766242604182055002047052644468227326675607417724602508164614820111684188463321688712486551435749238779671273538077625051374727405350192376801764447057088026202619766615449579296689882132246704408686473476633417254041750072370253278163943407479752578018984787661500410167321978802079668325666984355491766419833286170638180839811211197841823513315560723138752652634098078299547782823106309910970929129796725642906293576675819129218741641858666351965067673756461923242180669454548580681594367152128053550329804554873267758113427728453498137727717477942496952630553380212292740865477225656353319863410486142973513020037912129225366089381667609519550983722946233484286430437140598459725216728249201007572264510737254776715792589030339624987768507146483461517904117975476132355680309307822762362968307216706748345233482289538343773131902579598235164553000756108215468974633075219451253079175459401527651731934499158497978032033574100290354146103933190665019344687258131433894757566954814017786536649554546504935430177632015890843412463324510670294582326111621749500940359966861613450625070021882188200081663587785885415273001424343946723008388532514900753303433502975111815044693748562702826360495789366888397082829109965087613741683706421656328536027236581381464361996558828058131552542326241799350605765324236014837010029369606582368517691598216826534101064549883490866263141379893066878688045310623852917254585887650969337865855551119877972048065043594395384796361670453815239013257942304463624044741724475070767866518729242395845988188447973579268829532009525568532028517102194485521779266313171157503810922796544219292992243895670608776359469452568014699993806053313660669086902470243169446182322298724708164270612266608418185110284728071433476648935827510443776435139188346653101565960973808782875632436961216933259101238839417803865053512631832852629916625032767301547910147166621943723474733164632500219362646043209107425539870818092743421575000718870901678191126816562105246683772813693347422660874521304031210707025480400500568582476667609033528675169871938871802130456340647273407001558973502124160866854497186536058312094635664333125085568310861595883050633386666962941322151411103986668423215285157553019362981192153429296824907583423486033297958474861913357840249548563590613484469761918124801438863850145176932697204471976083283899133584152205131817585862999859080533038024841175817201363737464121678044065725621724495313977645937364228104188260096468801386287256784340403611541807182495199752565824952045358454564445128393981953066350389417368457597231278005642390309909556326580412584397812651089356101841372221432248117747468255764026268212772118824877847824361779620114089395120829663265999354990204659703243172098412194066265022689833453850252160631462710583246034788981043474052160527535102829821964567464061254289352759860158549444370539432903458277558644879296704678640492080658846083934359241168536978060940378227226920920338107593455874623411349121038860057254781571535755080897677879325920663077718399276642393110415555033869450845682886173791508412246450214467697658468957951276154642591209480854078498694053272064998414730890574760812019774237827007150265571661075043725499925569684877883827280596071372266226023621081399409877678705619843303640132883846728906836582339074326643152631946689149081777954699821403609342651508219423649796898794049748257330831705366070743333906466922758225209815820828464745061515285635768480425939897534977838646513178710099406587541974012028903089579964574952215525329528424389332068334668776206676753466429583445922077569156497886801663717593445237851137678809719228698360881735454669848330012769680610189567017461303205310748718362627517608733226331252461048375903829124629305499111898146222936328637825004190764881864744856601032894922991160937925281936286631449941081156237338700277917059685737017977118880066998322305438920034342366837045782897221306621322438127485315140819613879774102715945826292262163582297868980119771492708703883013066035807408033558665616778065696200346520658569504534054561438755912069296056919127090435263905598106527119915014263877062516709183710519128883723361437003710413474860840985773721817313102504516746243008666504122449118633412722913882668302088327541941578636382468788717732719969146357129168338523490196395844506978677339003657836532468511653594156606339981476121054326860523349573691415948989410363874056687097755915296234462856367042704893513302137015177737575456835386236590794128595486613305979752734980421584454416993168189958471176716806381384770435419080504856845376051872143568929479758565091614473824741864981208786224640496680848103723278494936370365311412813054250532038511125084954018970474909666392688544746006876431197412798751304376280360380708465336985561090631146413469460889082558628020034348632016924172629450460440069678277965565686464474295085664638669318713727309529890486208094645771808368339387619365008523430608743387680982107684660183775939287646416923803791723916464325205680078109983434165739458751925045817018615849078690760473432171230367911011607437554586883186329269242278173172351223025447389205127604572446081940565725274574073013887569683421846456847557796986136454114661484798583274662849165676836727492984495902598682545658499463860492232532319690141218963958964051416842679589439928382868709013458818213275564095032693389477880244785350390954195659676541436644265194652062555309587921301362036087129588917196935364300450458764439335003257311336599995046388914424806103818317175053566538191752183842702332488401590394597648725635287186899579872883635738661499390862730815253575082840164224024533906548219532010394937413373965269923044187736102388650996737106145875872852901372470187773534907191848607991423550548964049652729279807541927535770684391902748379595037205962625139795082467629187952052403044395950075283516853452290516900154483068673138879152246712802781366581116346506244216846977975973660337085031299927882997871687130717534022709151980548945017432770770333367522616348897097717392390323578186004768666136785727208069865835847169158233175023880407151657629668556915462537311880436971179664623522095917246406777340140420591037360241393803825213887186490358082288321324051946668626088874780590929620000077712691519640010969644266668580078431535756135036659700613234712087531660768169028975159849209914155519940360709391730982166181662393081839776890800426938603915421943980401184323997167422867831731640617683716690603037320196764126300358915514198523474985247545831183412863311383820216574459665906643458733440092802274814603167459050413372050953418633440419525530023311581320937015673471796190134613081965354700596168975803441230605746708995729176200955830448771176390854269485870073024664960195932481381935605384874410782385941371369631338421634549340489020688383890844419183622420064661744934347119486187137302064565603281295687014414886531680480304036445364952145653967860115913426790255855452752881388131440259738751404463504604440570681795558126489566579749209295508127142848733699242499396820257575904457366937955941759558315041585510459274098763598913713875053340951472924945003603049659030774370869748025678453924502583975292664279073141359423455349461662067895223694595750947878579668639679669384347592019838180580840765351844249699408117340535635497341894633903425116168426275590675506451440315496568398757250716536077328514202875420808888460070610146724863657632365605849818023285919062108097613336115051679347312518813062959983191396508815806883031978072459070470833278521148474341738739476485204072853189484122229551537858390362092829904965662422861179666346005446479046428172209957772340895763813996174880188382252324042766718906942262290634659461896894610869833275644503129415533747073121720041199231047121087055960312915383074361569635257256581145944857475583158587253536815145772410007491768695041098717691355990295537792671096825467340406638996447713331344320016292966481496957190120007338891730284421477367721162495763924004410720538249095905308523537857909254616689657461644555060225185880804580356534018204521695334477450332265727978294939737840717795210407365328633868917221774202599929188477333810323656597988491204357569484715242843821852176701043724666724405558520497308621727810613610740158282409900442883407054770193834272539131581082011592259478787136855568949315722157192517146595986247912421755104241071354922201016072739866702809755643174054317782785151748707967608798239335755601241998132904582665037389256661641498434160902267662899058301336887458765188534802019987332152399641158153928130697567924205094316401591971434033731612009763717049213882296780251401613744366498232764130451249639117988757871621794616409180351077894409402202570703679876996882443621531059053998174135812869716284206526825830320097771878989485973772725000118331752365295944990610281421003858132033678310823274002339758059301536925816640600532282578890761009617537070354206428866516160006618441711724820722820254395142647087066712796494238141084603807417455726832946659170015864375326164233068733512723119365899303507836075040502702555961425712859823230892127832786808289036240472101216530655085277607116106038702972901969831515427305918825071074747694098313510927694203738288097062535953542367855482619923590989006612010543054762138735124419735219563608471105171541794158354242171876045796164391863715230447602892625408615473750923003393871129094562259168298237620175175959857071980265599032963228456940686076378687595948627474126163447025872195763972084217128267431529889904558838897031614286847907938222071402491825665202749294097888873144984602266908633778393287647205583575694726894435839586683370619901569577217609849379129116500374823026501013439228339790727709282483600129800588843879885920212276298377776252692863087814653105776681356510933621954929140642030206437162361235496979294936542015722551949803547006754292379552871131625629551624696911394205226732680275380119249969577916967232721328010130920382612607532314544576979936712368818980819649271580446406816713303147402734417483797424288422135562400172111358738568351722061502576750691099785256478024866164876251326555187968999092815080512406808140678281376985430269010680754263794975434573397146502516710162700074633678323799102933864829774658513943738522906088960710709554511447064107518661027651019151426073678088223947247399546693007183687475207966540323621359042322176489020829611701014257488306630537228846504628962367968258399286536053005386398361863694700440384325966187869714180975199075000746503023281950813302883604636445216846721187572176373396579247113534712653087062479736626450184018563427584754339266085860902620451245342993935504199148820458951850553165849794114636980588332125213929270953293450277333803581913990995604654475033915268779736876602319759185961415270160807644618874102420789905891972768122805195495004742580699885531160830691798241280070635903764361175194760645238257583898670329480450180731347003285122063536967547817399682349682487106636727495354504969133798448225086066835864464764335316395055505673971223407869670950106397471896997639335643158549068507500554851627688516701045539760424784501419161858492098196553290030942512678211760725041288425750316051990571078046488224968949568441646960984267354103770283959474195687635783706650291765592986692116866979768402718119430503650641204240322966721896327890924907229500963300372256377848859183627277482526137624913653223262160792988362602896983089748179209118004372491934397182201916542641908872790800906034654104654813788659599458273998760051804478414725166857614872419849714596214429008985785671118998255777901276503662181747221413277494848391795591355978307042079121508102468113331794371841303033492345859142055174737085532981028243830051154301177533909726038509916043544310546794770008568592652160297442417627671957231860469398238094355902342945510004016983516738998218605658185097201584806764221823708282392782597395215504877267748599253948876373076980718748650403553211882983829279398345502759503870711239367363760699410859167972497131960288140420776125273326062161145202547921615284188099027338017643748068903811482719463557599183800439580513157543370831459748293437798316360147659032110964629377322456384755635502107640627054262282952226925224246232280447915963414153708833600789580461746123742247986181141018899255814755956342893917646298317492873561819331068657173368507249198741405605771594186126717904046131113804485544309301817690602092347514569850676461212343561011261218392325939909010134969763658116750981337204713557919150365773562139867963785034925132009473794742822393951172848865934656943947538783859940397195172140004043144224845458640108798495991485829884710412314361718927513274002678983034564115330437179941572272684902809826464497006188437315768693315580287634111385416921598866088982737634138329961751177877670845851337874038261358449257396151470547345402717989467165870862529622527420730767966089607884568535658747202364703057103386935886495003219612402083573787949979730186319161690996162851893943860698077272847524172807856934932446421502115463422149583732792695781912268482117901100934157731052972186861314415487679753358131918266875341055792153033724302733682929478581732185527529998423150908163025814670007923212027777892788180602340803315789135532574135403719178319018778404185082148594076210369938315965228034573388636101688406215600255808556985535385065460532636126888959405269410480647745411056336741675342873003820844009480540793953391101500414979652377721039214866454184698420465021481055008455219867893877022647087861649878282057650345383722475941002639813849932291271829108942276227568850108699744769036087289722525744215077917776231915714005758846110653825134977380810295014138189733991897439436181936156355963873432399640687069081671335172157376091014111398644789697046806299379711615427219401684816926129895266169487751158232763719792424709367152030664546092854331944348251287351194897239091207647270545885079181143086691385247648690528843139980246653022757721403212862010679571420040506389148707832334492626497775157703534485419609380427608457467734297899929268716847931891342278075075488013874601377748627753596397380736152202088396870574918039061635333215400656065757316245875447596384922163689289189723716657792489340511773512565204699985318394423978246033583608224016028324099419190676104710400737217524507706507138499769033551386542159654615952295931010793195241846436906128808166045557532038459153708694811434709078297048560549257448725653742643105238694992731785185839410919848538875127014485362541172059388979919257713914688276647857029065271137654009626359676941289951483055795913500997057115681333828269792200019489877958877358735957891179099002100143045420255332125301499118193809355935626389099772057903557507218452012371920968746580732969616754016609901612108801284032677400801893506401753208799997312957793061566649251424690975425642197752198894300235366215793250726984604186947491977289233994160735621896753678872130400544640279107236257352049843740939079357554770414501203340151097425526945592418963756699898281611978986197484187071493028471841237062411884073144820110557716917056073741312473530964367253640202952993407647321276281243636146851591533414065281797423979806259145100717011265415727331042354465609395812425809410936643067295835673759818278603371013277002899207204330234000720495452405120481102903747598192099287906524385297529714780784581434430173993845795312205455182824939276328345850237320655767788831500330197384860907270450895442041373871455362740305014102903499042107010826959992868228905487426856522205914403048959875549120886987947905913130734842366499355339253411690653039332562257568735068330189015364844020004876588510777678648222958821409740002449989269630942945173646518620119924798779652123215152390643094886376417860109909074256441728084982687349396776447676320434041258893554265368737382743048436777888362967005248603076897802008946915649710299684523413787848536877720718436171248290333066142937958778370125251330408444213265003169319630213456258646132491646222759688113413176536402756414242308414049544415627619374678096239285660850497674835924124328754374793085887161700303503130670611817993569529379032167448164783639964832425063219911195748895909044389016959758578859840727974086740431643470286676982038047915825530454351962096046225433202875057545212975953987199815846116150177342907210809060669038637806127250384576856694502904145074664720840799402645456525104710040911824308529748787420895088543098934910228325535464967223045234292568547738120293028331297104252097125194209597270285815840640755186593656577977733499619640116516233714724639851474943938741952816827343821586106765266497180984170281782071283609995825814984404821572159042526626695019848301761363079343230772916615118580624703969757604031687810852310882946249307495127605404111474816337586449709602677094176917538142193189907283558830381486804729853185245402988123170242817588749347602334214164845436851338992269121500877687858915160246813919015971417277264371619347356981533592110941077707995510360327235824018729795230917609605195556032308684794223342126591478428097016356458982036720052870682744488909903541158452179177669506200442727726731936966414542796116945762590230645863706185320649560093207989343164689299482238761568148603062609646202035656082137166223075817553531050714688728686757520977290848333735133968925484273843341026718597576898084899121264528543586966599921604272950422498027903813586852675344445905857824470425866506364105798956987994780017347081652785433061226642912474847814930746285306061377580387690131185530253889220814097904713326804854008456228278452438267356124112438798128114696476876298783599789830450642918389321141893469642091376689479814365123026757087939558253648136779435517721453848741268760620369507664632477486773223664540107407146215003871577686231639404508980139896658025666729241376359603782297549030964715751562706997542669517183278827553339598596095090917077694220652360537583651204590572799509339427769893829287093221738246184244885882343001506796351812429892720548420983345469084341038345237688098421293191731696789721265374869132043198075942070610952334749760997527560846145637425454947986170026392093164454026405684656653484401056833028017975639697605055087601223224874523827703691729315277730022744545903711302119310724729554192092297395711755136974220572178590640503620986526069596469601773293199320532617782827017735523880707783416917285512325501485448317221775278946507664721805448271866427025943713334846804696227354174512623504847761740730934678687461296316434640360198695514184511117807769193927716597120051639909158745426951514645192750722106698300639023297222403573874686450440198191329802538140500514214000297197804309689994670246488091651497681290953699718208204280672657706247362905262194278674719883256014397427783521551498301731213389641507186834012473121011175216737934879263159558264484548613114466867857369797437515718067231470871119469577787236539921846425155060905314110686902073434028042747309981469396993571040751244470321885784738715845964281344343593648307402142046319949251369879203227321419943057023682300285376161091643941409378105979338029932038290765688012600940524297566044926696704294396475255286193522047618098480547180743977478523857350884168468184423441887185432962404809374039674114584522729769488840753473609623103004923801714070304861759325082012506979909591176157684622334333623411881516086291866828619518280543483882300389044618779784845849824436880466551585863668083985729825134423360762945607776937612179808199380057963089076697408064542996240587387173734466800988431227101887616924079332045409489638638836268415901625090756141584324128996003784849955099409140522866471806569901893082040724608229746873455090611660465021980842454711512319151448607329137262428997263853675899639957603986018423211027345746803978074061191040175018293405132722889054298187975287791863235536619006160668462302903616572085802930816386739254108653966871423958438583778139892943922092477500377870254466723900772011059854226620635213525693410192539692176441970935556677692311193679813153369568606264528256302896937342204859504131291853439709208478648545300909715075337852924642432887332216373485745981557053563811640246818334546044026153918679721945371866158134721388367329997106841940784337766791568200776954026390051122430173385594380515317363256060552511292648463647113981837416936477576129006904245436900460942860949055736750173871337487437932042565289788148172876588558201451873947582236986589924896824971095771951312897749719448971304026987996557526328458015735295589670194042610666824219514368081611421772026766333443778463903859014250071981485795097961909977017925763940061187678311794296740131401122418943283051779873663829445696129882181258832243665520976609393862404294530847924439365484618978586895526562062327493526980725321088973849928338317878858767686124026828392856394459036953883353991814472053671695487954222344790978376241011846373747686050312552274541004861424348858474764994858813221237558995214043006802112644260509733358557061005271719245713367740033218281560981763784408905833374737322608972171242934136796773519711507234904753919654489329817954728383195111042638810788066061436640622359145987825818169076803121115742500748222618998358140901195939892288387684323239551134229100314845798026631253451843458377667120666046149955483404023936059797843205283682879613765412119888746859413289935869326008498210138957829169073546374585180761739641532654311102709729891382939592347948009709209601584771437753443540065517371702135169776233694789865167699246845439149979969025056295912334295718187727127855572728306409827509482572759124983350464627591518700764167615617467867655425883933818315685704983289902024341136747191968499786480876685245899699635637961856702694755962104952611908761293586969565973525903612411093780106113369214619449891894621027167936204406802228380729240488115491603256454560534190808472016334363049702121430589210199086323553840486373318318683575459116659485015655724978490312690776159393770829016200666034089496525462137754607908342367071441034950183068755556735213824778845848295642563982519624831354369327282219593999525278478429813084435959341745528355910111491046625549429264007074362352145062443514734496549911054416181436692108823200498734625033675863412610440745549740326530089286376405944158004967173627104234861450611323282810130470895712846594320591229159971323170978706423685853524292553205709253335586128617537972788690200495086700315219584971068316025265876037416649833930737870940182635510750077205772668249237326444317484045379700048112463303489113805021898761493085418691440735755716110764858807498704103533356348028301073581669532428862319441197255821869957949933280666833442879023671948801852097017577980970490899747691243907609649376124719998225204655120938690466334737748246818214419359301886719672490087430890893990312088890059488862107114127454699299621155264620245414954764818700615733581580367728252846549356389778271791515505932664738966219450975061136565821305312058457735952755864709561368060873354201235483007639816418339823091905180035651704455602224629098808782044466776539225382048257539288939742665602942135013371448633227487747225205546942015739540076523397801272036470307913685019055402722354964668074184933165366001763372108649031022605046978329001188280157514100836176123353099861896235894645530104859095259822683351315753579733665173802732709588605283987772077142898065753609734869415903799447414322894702479896700222394575812513638949508125476851628297972381198316639713446101210309385416150490412144075844889016574555288005839567495950701599802339711463667996695429333144739586197542779552169885575126183264703020757204228792350066996809744018536867195077099185750500784295550675867469223669169638745641250549908734020258331417289092990308019517363937511489481124555684769794050045752760562378320577996258806394329228627396783917106550502480733174579049364648844995153318621228096661673812733931945430305755608929989026363765496347178645758718898328907267135423829367086223809603809742899492866832752876563917950277229842680058343553159651817306684325875464061859833494741597506076579265223877706147949802609951482710003098398147799102018455234695284125593518176598412567661786756146163719650035676556339344743328512378388743704663306344929948154623618758887347053729115586538598007250815129537443209622453821715096914542814077737428170706201481093461516216878223762488438233627792659745146494804462959869496367694107595891758024306754820947822817352920823180155040107452752449168418092188737984972136931068869882419038179128985702329677659643626159543227432072980732288516691979476741719916726169537265734113103457685730067964712579353394005979784304199939028340328562254191669149318616341474025919114492462844813945037957053941077549438358376251313598858811720610142076731999569812914062203977929603101180628839945074702434116348600530022179954486732057467753635686126433583677748654084108109360418948623584160559503811399582716185219655581938737104331761284935292489992524087998166608604899381578729147386526185317428947146608183826818381972136300713217844565083438024040549840587924265200155049290113674682107730630920547401918596791182276362142913969668982177789945568659259834297141886091346090488664616876235565952049437185435473532130101925224458351019476684777663863763423591985969294824871613121730322940694883185400577489574731008473375929165681456111555508732029542600443116837319716944902273009721120543227780129049402248131333449864514568026790361753104649503107631609626954477284190298725671002401022211474749215579658466018463484389231959318852003239187911572848775577228173988675470078337897440904150981184155069437920110385984712195387722906856252034024773865500266239417633029873277877002988351340830288508333324743956823942505570308619967854670024129787325446997947451876425873779196410238627302558513342646727515038966134901823620769972034336468549300260386446936628260001931787987840408657300961640481099310518923759499485727168588813334447687443545418951175852744084854889158581937174707610655425492848109544386421516131470595075504544704842166278019303432940683052646725835826736014773553303194702899663988628153753514823572886840656379882194300445821382171373688578244250921007247352686648233069582545345819581251702933995102316273462066278689390744607280441755797888462054147204551179695365254114133297576619006470254667548177173976063916175970822588794412935806083887085628939061156022105876281253533591446152892522625166947128852760299550904746198668604979766608832362687193092906176386898209243870582897661788820196191653237911825072692285094550845230641295681692999969149160476856436520036073432380442943496978547571282935688081532410459117321323537304514010815646272513439737396477883312065279032215792827760536017830426610210603372753214899526813454660488982896728619807993162942508193774869464764920829614876806384049829429539942777797882217429545993203190437523283062601956350694986665453227988370535859414377761358703444220836379134753419709206429156896479226313634373458186649230884905561469940011801900556596990278360122861923852882132397189298255426236905977101774985370686344994494200952679491031733491060100484279045167853895607383416458674281829742624554850382914373935054587878295705501040514405939457634695180553116784124814031024940191893316781150504894761186786870002530515781634387506594483105570053846147784094647907950077146335939092792635353895651976148348708774449415033845369956234320088774596462004383368998987312456050101875297722581473652132872233256578995814850824610548410674733078852322964729544421341921490376555029393559371762966674525707368716342204816179500420307019981801191647299231731433150810705332279426390962127554326741331360998127292581272906188366511865668890384451933946122769930000204438820971885026260641431783022762239788657947120566852235646857506511870690472396955971986326710519357469567150549598849417764764231084153179923207702677580708054397258924858906427002998106409494104186655474463416242384974069720519518105393821365528174678849589402104240291875030302328165697690861850970728996814008460422005747878755659865369991505112566075618074087254244623335763509984412142120169888643768182946707930534807245901892841088832061066746991223125597861851298757902192823492159020835717391205517096733501027397406876623297391518026764165877614766460533731978789313308462665613570527838478998738820524304712763336053341549617768487861194440141644336264679499506977895181227564236427923802114787846850486521011893560063821976978911877627032576741356370865131761473344998492376598618127152909652212787958611196328709069290071266335605509191703082357198003232154491618666788673657919018983262314298479314158853701206162176407428843705588800375524839541702996974897077118848404068778027208593955346585595816563611950705511985816288688877459285817556534271673732945580913714564156649455819833836584556758794917678098222115179648603406676621154652753229698738319646959234012754367585630415276076394491804313167428536137419305245945796208879962819422520640638236653052475011372880389065779207695809864763702244635435656187473148596463404487168501773462596445942611922061856729691775989545354087936007461860880626426241878876747811090646564279232928085032730361736686318768564089277889174984491437987412122049140031193287183412208416080990023706506059949289297447133151661481951801911634141225279532676308109162468907411668041722553947335728927570283552468367053551570907808742851697935021192961490157936505995737710765440744269483399219181208869201305249723845609886472721244896308886976537304690000964917490442441673553131738623842568361099241386714259451249705521909252463448842599616554421661827344458126150346052863011229731297010641907184815166001577521332623286167792601846569459370627763262967577363660068845162099982166696150872410919992579313949125766797168759448037162020336512177643140835606705015242051065384178557855956576114331460030644587075646775913447709375773644741939828428287509284799243562436297303381540192706629395362389472612864153601418242270188217552787579887882926861780686942550365852910053018658757258976312689390934271111579242232818294574480970471653881693985480891931668934111589350397386154533703655581323941828008715032936095443098562297835291842780175885025209629318875446613682735860714976862158756308741171124193760201450215793273191151054253746890804337987228363891073569304936987032460011171160094213204871798868230251405225005449779540226639488567954828712417341139881204561052603977181830987170434107145874954364008180357707445860002286218046833199674605495966981863463976607598934443527517130621791537334470573422092701716732219440249785049165724250716760596725689807405163026976650130088138163887184986966878262494500497061806626887592163193139783072256048184410805738504904660471659899726862674586851885741496420752155865403323202488692956892145949014545557056591305620851226865643357867488196104866596189251646280337489133581148593761033763026308202038036419760903820639142920540925940422224794616896705389847782869459123548418162284007733170660766177345509500531318303978121339842318708182320314682659139165396937816350095302243525379466397020232585991490609866843262836099226774381756011999335037955761455880054555682984462662366224178442500845580790044947938141385281528723025935407438285194388542056559450994261384136047964841576159056707914540502936795002214822813079928168547805449173684542042980548031449002352929835783869960811067545110053158386220967520906176720445883918888064992319877893662945618331779147820500313133519720339546956589206989965867314832465773674002092070174295557118563642839382015675475914672321712231574087487564544622778239730673495202481027668887068672591833376131571915591047880186061248437025567724078788209303479925940114395937554242205689559759342372177319551101105118492577292928249291908339946090674631863051349786152419836661066267629937125962999460633490015143938826622555646071313958397342505454542079121333997913706998219350931146315122797211615852324616906371168463021543849772320007284347414538538679037140769688296804126368369581001855812411313498104568966852801101596701206219204307072667822577353831780039488836102611230738728583575832273641065562759027596496766216033494225920808403930919661246958557585522031453015579144046755532260988167089991009349738253328903629446428324211783345228571766775847231127428433223815275741550396023462519877457582018728398709720203250773714436641604662504737161115771531961647663227723740965844161289617015889677091605760513721000830311523811615185228651838449029971392616562152004301745821746306761543252993400849189468990496044075310283825333466035843012556308410711976331593792737278466469075485153300729176072440671395337815856063944972229088071007754521032595471802246460280276768374864023342752926933904090124311606661307773504210716448742745238738170989460526319195135362498194169529301561562697927206855856343558014976349197451348098102321021465253192767075019182441582810960439379610223726456312884036056626167042793024506820172185373473101944358751616420401218501780882295590401834860648353797420430928179541373831631602223651766575187902261112197937552461555556526888684385746032894892052178300814436762670234114675412902687459289736772167165099096766340861489266410088617026148356023878298957190776028670509886928378616188576993531158736304703251983893368497047914468803976673550367677516048212392021606648765396788289841207507775820976078322982684394168635544289588912821741956201379180907968709950821015252471868715790177653698021503889118510320853111066902401819285985727171369788000190982103118642927190003808725871139641668183087005242650764570386948033565022823580319577855244983044862347649927357867742655578316522135570499001000817553318806036359818907634380980309625853837745335620959142063598637002865709532796337842787385154590734434682189077348842132465532353895992852377205459204249344591011452687939730748018505732315142790637157626271923392824543684295370375256406562126752843157366634298856486744474927778845154859101485308302489784622280941699488218129407267539794866668486198482934001802286371314548498205364831013748666711520403260848073945253257613086734560258775838796318833726455723323552593956425219325670172781481605509419487146079099008167851299411948252202352127083566470982866532674753881049898258149567145615329821173947377761439913888950848812111841581330733777704708644239762789173313974843755535933319137127223253174889296420177950847977358808647583907354130199574135687689679917472257948285941842406983986948900801858134223284603465063624589723030529262160991143432529031276299792070452687640361011568740632435363847627171201450469613439288886920714850565770535875034413095574105584634311700085954172419674586969148637228215243466535057708176541833876603976522214530045507959036136547413691285869363638750210053046446650129451739902792407537224717079624369202923351733761567560009546929379447275234351357077936098382012971204656378153851727965398717780050970938429884725260114146793238083758207114462760699921142436994305265388421039413090047995306327655763796697866238484645304443102227861882270521303942692529772883069645891337010334906532563945657435059731353185130903875378266699095357950104149077072214002927242786331897258633819856196257117559667344807562909306876694068920678496391152075938157328193645154958081135216450952522916842210045897663108707852413644110227901182430775683903032759430819624307374993123452281207554361377529599294954076193540116960654560757942533389998199738524488175086309888607739024278371108545094518900492732807237479410867082570022858849170373862480381880636175593210005070555119696162844344380828247123213509588289239461049676579666327265320312667316217894712267627385210318526442172397272272645388396312918587366694093470560034358321501444045695067522742952521219398393952606154668938880594280011914563705688325760416915515477145894379680426978149700022736792971026078089094388994707430755392169195277823045597361075114414284246656729940001753084972992387559637220580883262614229145663007954304241660433237464428985101176677372663979057326618136430880671781344509593574578279508087194731783173440479504031339430169499615728131254179320495697718572028791962858213545788486706265372733120982091813072389675020964579136397620566227492173236793509882697271424438060794463969375446776650886140060097566616726849737330308401702277434483712443566034765380173137613026045391663465308093428252101934831675228557861686780328609369160482875166241156215161597212846645453981529911606228736542457695792965535348068842143353939600126580150031853486013155668203552020840483837648360764060280912728047510997152961917475511760052961302709208587953454441169762480782501272027921253604152920585201310414948677723305909578818771684549467675390289021532837894082483516833816544172405943995747792951360736447845809539547664999499561674219499852940754386739585124825189839610239743253507982006754338562954951159838061299144432115511738153342733541816159638128304458889551833742858361540587607946285626450680484783326797277917131701148537088951329631360999655873192252320371135227609425438272998953049183220425301514312204351968994127767330994261570984182370883470998626274195176057017523206582629417163592581696441214438031148385636941609483207641546186563479783463858694804322317483792203290985580773262399717575447315218752367878789782895900258795275341227920712491105314047749958709666143619835538694683635224002523266144866168505933996555359337974027189246253160737412755063565165766181674807958793252134880647748593196253431396515737052257804055366092571672344232871584268842354697557264939026356661581590405020097168024760722208587989854087063097625770021149574150158172031779636765940532799735824247645626936148509068070796100681010817187167364124786694771778532643026201297589397710333775050146679242748472351015708461289406513915889434911514222842894815649318003093443929400723300861747324329405240525605810421691948027837323069904763746097777375052288402550672268342331485468715336328121575401383679075858143058278097381657604999309270542562362152225494795080219837726980554002944678042715694994978502024471239051247349878839403252104531904825719539091879355657248093262500940307078715110496207865509897979744467716376854983976012111525319452735121463452308519437863833894321394506576279828793317413845680195661237363884374891972152993601535101522460699204572201357020398102210626607432192605143349970453441162331450012460907218491454239126773052487415354020059370017304532540675165208017670204003588423458663784386167824117094752896664855271136295756430279844143542091207570024612536183985353950338310030350602018705062580406496030005703841843283028985565472303843835187843895939341855551565663780025541612297337779080066841785045028663009146327062384396175245111037902228963620970426061625180278352887149864684427250585232387544623735739625390013089392750835452666242586261221398999485624637683983704056079681066579103109172307707171651473317394724961595992316050530706972164456157376807398550190153805225859431786140941984133357359587020741942446235259109353412245757705776200994195388680116599943070309614196198178070650766013287173101926911806972063616391888558806525621508683239874776663966881580165145864671115628118231447407102686879439833564427824747486431238486973495098309107476422890297541237939056152991196239192775791825733050351010004666286827647507566459346142834679725548466161583278052569954643149077874846726654818212573632783119392428095071105970981636423134482484511263437871767188394712990251200593746579537108067979120984135195919702158033122067114206301058374081602721897214828628822234373388152788992840195692632769904230843528161099317815850214401964350212232709786327526440426376658115738257807001079018348655856070581461506366839585462548108584859583360664141564520929419618618941906550243757679777537239582193389266645530664947266854906291196936000632638356701235713467971355964566474133689827836996648902528302426246634820846818952825079106486331377545594682305777521073175427587154367204087974759334549361269816096969459501559478303024952096580776011986521593341440556491898115703657507535296092568344742115621228364177055273871268934302191079964599690430826123358802552779332736495045033606832480146202392532802439935829976380275816904491205989181036606878593009739928154535385579312783983128988157404341477059696073428504536599741938829293778925727071125362916253363145334608204660636660531918439304506232267827948258930155190335413058995394996460017389039535066335775017693557325870481962744353314618951704769634498613956011007336203445228650052825617468753548382450620801651499933270118934032962834272368151772906811590554559518653222848053205179149393502671780392100948124335666880002974848167022703076136158939617816384169759220769642398227003845080960833696552557537834464744512655487404344273511112427943920841910660968615389945595688224380364193491446358355866221076683381223648387201261308246199570923969934983051290448177671644592427957596390205609494685292110421891605644239299235356583689701439072833998920548366950247380063295484956025510588699884460955864151737400409695519853250086415928212111298632089310093863995600740241581456868200018939016894974784202084132684186966833385975535981808315853603640497719460825990823363603771923646922731453062448304984943406435079470048320011342140379502748320491774459121783471532854045753388880413202170981322627946550996403913581224554455847965640674182852148667676853672001044136369862712313094142461253227251491711399699835371407099535647252472445954545812397967899712062058451707159261766491524098344224679675533110481008488539783705382154298374311659766952131473423212765893174596894099494776138496094887628399142641675018068118426256449185293351331671863075154165204631634924314183369212188297176494233595903278978128180366418439102954315334713157046885595731078738186805840086783767489645006265399737061751012364818841630578128177027166012806370574276136526491163839787346492517492949475517739773285735127815404919282235441913850277280879614380664290693290950834320513397343996218188724750764322317452351984586928954209145774905399048645231756632889347806964144585536951084914836009104534015018466730428956726163763677659745495260800417675816019221041166795630005035797281296763981669793844879485611153434130641659728892516201357212258020624525651176753731791034206456155004678367951156963832519302229239464102387658136083960520597911142588823668596442833618993556005191053784742899232151901362031097308084645143600544246055593691826327893991946579661828286478458311386365929483792271805170305889645529100341632960747491876909409549590212782218316928085241953574418784431563984879310254446869779929635557235466193400716959483137607381093756678433191608073012334457818043332659666419373734930425848403500359806303419367292185151830940861870949063651562935007606116708429960312302388705386946976361584207573093020655112602475859216677294284912936353103283036982079759290570681034105696723695195527548762357618218657922249596860329211239753889146153324412750102045690856541584919232291142632901977812017570723035393599667523423305685069763050893462886622786142208970547683717188979969059132106125662828298451579036438447292019973371864969545496166700322700884009064913407873429927550250640029465139170692986671736939603598180783290808918967515079213727557387704453321151495773469118017635118715727465544497977612675365801086215881414308275707631154450514522330470948143343758099219336678952678353926713990343169953000464013669791962087735620738416733268872695824606761525469309214522629037092900487725165669061711549210984334325666746125198732759263052003412572281023448413790616413470819801027055206170249185567891447843544007911339489451014273522232940226570105812222149929165932969778512781420065938813686532416460767271677891324810458040210517415776909603304553123391758588772520983135599597506644238557247560890294527832480187087597166568760468962472959113882689250269069008291416863660653081691339697222106523838044971569308560827691833200635097362730357872537165617804643068966599815811078027025169065492511123720564905683736720668774114236844919910031190848868892604520444198615603201194914210713811872347970748929598092458010889737227061360986341063049461763185573036110489853308240955315640710986348939338360397258782658272196935838792155248021568529185744484526743324848826646386284159583480134751768957940369580507257901533342821322056039872317072142785673239485153662480367992495576193836118493784495388956353525907331777676515601396499389249777301211511064493847225902145668269644466676459733592538638904197080910436418171284385762577447542261258306462482218717361729568380900254356009011782716171255612504388834662420375838677501551093627590414178781444180071648900489445216651824763090184240111034127110639666804353977674784018800160423848100171537482247914506402972270648103216816789835292397820822703955348573475257926663244548186130154111895474372032976939172594206348641712408204098493657603393147178444714811859655679091548110490741665762030408335851329910743236465194949818350211804675608617275023661075416557214697710635512172823498095896021915019957824610680106931154826696704147285778707578735577959499559934645999729287117576333952798296597618361005086250082727533384770711643003860040175222875331940677550480239480549321884971601333027720101929464861371882204672177158564250242801261294059430400555362706256316798261347420593087725357769197471009570030544917632558266344904960617807391853133857145700900884345104061743382901136458065642805386571620434599626921493739073540988980527181083338656376121470878989485799388663321877718805765367669401936402330104380624305546766844761811847249769868666617013977239211747368240190811646621083140316584630062693957193470225571495083311990205164604438500737598597673691502751660790575212405793915676665120510527109345846558096553866307670451917973296474208436303220081940146077715687059424718601658657127814104162278074897158408376016744680256152273624702237103556085065352529481837452585538057679452722796148803230552036319274898689469774935309597571349591372914311912391555408073022999729407528428620507178743052263582796034974597006136645668835246094797371123586427763776910971903193103644524895662067216367046077303078901113629294271350931622637266405801231151611800177502628108508318076747089352728808730766675478328758161080421666049734478098522139797623917170152418623520481045293632554426116648232755535832554298436473781665500109855902798124654175791091031206122078020215833946118387952069925304619937399845829854482617479251306384185597131832840865046323159327241197792657849998513808827907325192400504522290763796243913263226296220185147361258683488696880668474630330673499153976819752055535472338992481331068283737815174074736918725187709600503723956775449681101569017137066013869551131295177790131162689733308750393024519802655725613359111589808713395646827656985579523228601230454703903198117153484420436093022376876444285068056576912568929826560328734800086416392434717773717076904413940563352238443817098543580957361280742437029523737186291860002959735681409458649682132479155029520926447688387363231283571742393981682738501452471041738863599918329935703038202849019207127592420989767394905512869530388866478773743655133693077942112426314184514112754006799257301581578466202495251904620353325704607171809757174791575147777855511930219740936742901659547780414588719346681247821443548391608583544737235190081919763457115833071204187913658745214789011166850307113970444001844751793228044465593311105063224187115011992734754898133760071172603861005141133556640686959970579036731457715378119714100728416858840427435873562341052249182081038661897831104836831188960669112813265867461862031068146788461160550044625231856962679118248113482742078972615349936280261609857232367050083279366856162718746985865139138001110422583567396272662990898421428948717970608838492092307259476286495915467524194425688590117864790521401919638660198265470622284457763009774886061099440389231742726640557822840014265470065109269770523062990616390895544173519389677199370258447305720823257191204921441600760628676734056018423245542089303654547200315533959978038624439214303663740636964591811580392921526582639552951624288829741239676458880797110732698865618304173448146083546228075868631891662614377235936966724616708951606568216017393964486521204208380857112737530835134630769294300179983809807812611779467945057443259213435869170180184464263487098383268610625860798007724619119029050334442138582238234754407808855123505168265134861883051607110664652706479586892794073535487471397604918820116783098057426766156858282892278282622116273646263569472964500993026728776463653744164964973328686110109959091386003559078960459133450893821211166562531460618604141711906799316128319299538485284496975600553948169087869766722848262998061313818402618471140858945941397205218760026371668649768234527184293228620019572608024531959803976224424207135030035637911765920673112113008941482506481409547480564564949072369153947299590153489574935575602514952097198197921737767348453180714449531509204595735551252294839675798071105046301719079550301986797445411136421681820273448713127738262350939128270086083183379235616703505631723098245984606160222729722503536204479096158020064634617265290459816720886296778699739741338807473298035557652957912464410428187796732068116035636482414296570701061449810436977082583200244470987508413105432579454512820259802927079690461482896594667622048033046302757343844953426632022445320740854878640616759581466519706031817457165307077585532668552626608375789815563855901564464436611156377293360942408445696339022034028674750340718769000955654531233123293120076727466106919644400576512956634511163733779681441611217235162596205708765783302080585709310182826715048841412980371329443376978422970913830709679508366453821421477490803885800808552659150402689868219758480393405327095352468903090881603250145350855380729895168149500163206074778237761298363137023529982574975980079399378323550278063852830630504529001347683157252560052810783295905255559066490801671021565335556040372637739068452751829640258829716368449035516868422916545068193362903299071224781156004367301824446958539894248429666379560932240351929121538569711384202224665220827778355684190628823595528715289511961062141919334760038735189132909282373801644217881152978080319314702118153276709913006782240516937463076478218334010328240554727245535134781153921986751350026396405039103451372284986058616731389114463122922354253476569997908042574596331921316724111998158641429054702221522005620415730337335529616657640198094504689749339182700681266202063062745529549862320485912992856268504488261624959812266538568533946348525860057054738254091612341688589892449918999348266365914535500400060934482528312673256451768232121308458215157932336502756015852895996913878833207946312136293307048175847662836068612891204638292967350897047228121969291886487695103264934144823100770700854697106443091188033923123247493582002206773413324549603243218895622017696452728370419506877631503921252581570570349551684629864147582411619403544391008086182835662265795796630164038046987454835688570647849006278665915880460828325579549111033217461954230322052394612703046832176312699988293961146115869895926286683842935805580650089708753372478547353054583557844062092224203199673202221445602344752033021999110115453208677657723413876021963995104434971247527980215327087341350729403431367200427410635814087961366455847229667591276617882011177792739593280945202256445937401710298481063117508697865317589261783716755642457407500313491196436604389822294544621300642439356622745047904713256768863541282392400625711025836482648192712839083339350672735768770709471022291182328529384189503708598279614668295039588842285139018276402168669566251275532989469269536643285683075175667999498023175131864035039788760810856925530651831560537720818647812497914023595168661243681950086489388845587099590556262665490761339164401802524256835041407789906849705725896531614004808121763104314344697844318247363730952318436261986540926092812688600001158741950764077382940581696328446770572311912548118879102252395102090625927099395796610543120629274746497110338969253326925667208725312416267509585424571094919722113922629682237220205267698793724826068786617929181454123230745108651043494794544548405771351101423730005361464202038957946151640451905270187295751993407189642578127340794263700023542740023823157257686365824335742344240542264943880273136661091530748966841960644696624080367770704550545977953836596860623734600317594796570443858092948835446582437077376404462600948058762319268631014867384883258327253831630821346613567213134972997102028495583986676555498738455023442639762630050284723031798850136475352052844037601002744521978619365492491925865861610355483848492250978218242289400911333609877220406764605898064936756858343356131808244191407153148179568827010792715978308722437302066074681016786136402386924531299311974631544247568216546952316640563485613881604750122493077543632261970114548157524477698321937358441010441057173265220696356255581223102053915052420585117878830254775170139807908941098538356691150820811742434397602509831348809319066234679825909211351200974414833238116725020812043364255908878881998559381436854825063203878243931756073894851746324049671843277388941256953482592798074226317740511989752523578613142665082114394232572716730308084754202733088490091951996313731222709257974450375900434749321001796040582585329859011329175609676590663225521022719484739577746509677353730076755860081863307508226470909354155435650333518020778408247078258148058911558558640189342834365835868318898322684427446795847474865818354420901176321355478611445337085580654701999960289940911090185132021863141119424110120821691896606938052190959272426761806836932794095707979808101873558334781083822348619039492986554708975952548945591032208407655239703859611634631671297204761785825799097270974096031559143926219206518499077374242590138114175599705258859941755572700121977045756619804289676416289698967341096529855923249775639145482559772891014473218400047376275075448224021195232884430688623632645052504593423627460228643185356736030963931735070696492485881358444847161561968390390943814000467588521192397839146308796793574903154272915354251167048212983235686263238192165511007340136713825499316782888741551216645806615294033007162860253131413377133874643227094668729383618688251219474850669446410112225926101461469454608335648748827205828088185228410751402713048317683838667507394001458924470112545741205779398719837695830869351619380480646547068919367553043934653813793581154240612853181883922590677047266834427944733517458494523139260098907893529079060327080062853973035677399095622271159585994970387171171478073422655163460685724748624172504322088483188495678148966702194070843545418805755998678886758602534957395495815852018730897130545069016798221768390563211841137308304738744313658708562299425653342092082950346413013129730054935335897936597088617398970834694353214657509761249558631367266644007249135801661783493377570694640860837641015381765545111473268010237090565298082187847392600128580592861118930522079290271305858097927638338291937837853717942330716404738411253694687374294662057664631987169679719638412647968308135628507468507068799747597438217145698932476604124632209955508654756096471879727260083465278519876051260243050888395411293978606426561388102396021359506688910752542502586335957992989061584976066211411737498541815465077980055517485764736754002527238159078217294576769425092789576673559977913489597849475843357194416148733434772315754187714259341544907719122261174805237154726159491533249352335539246290545844262794433116200832437711473006381930854949156225512769130809712119106122164961192073026953422615833557426189687168687474076756615792793398828273795245596992284588758170013056583537247354424687766657713651955858901678676903636603392399034802644644186107676727562361978288324768859090896153174020418548438101341630701736889688060282396639021952940676517674662652028645895799083133101006880658608744222402312063192727459343019451388224037862288802259041154371163088370495521578958617007552120953545302233227788146776526173510330890443256593977968996595859022530395458187573532747727956010852809643465312452706795710607828938965004747612192234375186718131800192568489873945481950054280840725574483057431928743809300265656620868368961992804533800264519985522372932878379497202357975782443215904436236123685307934052767907879488319654251507071730799379597279053271774268334374624236606260413786902222565745257485848395469727087252580177929178698805540708417992228874789256654278124009863858687784590556784631212752623222808032735521981304895218017728282984828509196167029699931528233685032561907111197901175562782365195473870238762189564220051254334014148777754744953509966357863536753125581855028872740189871627649567576853192181788205192129750488334702587562191777217124503739014859614595031190337184311327415255494663555528437119360543514267122212921649560879040977292319097256804589613727824676562950392172380350050743849683067147765589692335107372169735067038857730543179766046967204495778159556485219836158870601609167524472706667382626086969529822808132675840237645789089064698582109146386380026312140872502799491171474337308219176826934832653657447026294009540246266157644288128109649429172528765181879780903167788730262947348242847212788724989629648412513228376856294384410744942866493129334261669160726175021710261715727572426161835872084087550549591307220939620894448855976906704903966446311958723597976812618639111966496123047881817149166895138230299366520243006402797737943117136923837748498452398406725768377266278855311648689584496555596067141150690360134526847171635516303371188687532035777345745400247561476932695319039941270858427312096543232708451255195315188853734787672034454866614915440384298793406774713297310694909694674129345192165836266760051542427301703890009470706803015378997253662442707939668626578626562414412873473102296850144666430689666720950078058590491632101212569873298404765840400941374359140613164618670987281852774095464469042656606701946089726411878863037842164198903037841730214599521419438389867530341520929615375016482691050945199210295168936903568878891529758112637650817469804410045154359473438206980503378591390740878237288213964240774826732890990467441244614550833956592680766099580004949525563551397385642609028556131358841337953310827306280548077938815318196217389959231383416652340493705991724386621410708567364020244707154081419963103023721093680876294162602544582699024079732043129362742598648023681043194627566077833378174680090861010293815771030403359476832530278525342840628089354693557514552886021039385549318333221027809952512711784722456237827555744773671407192763147749499464389879809191466072938731099381357416626129342938245611348476866783466754122022653731029067821624209805452125744456823055984433626797728068807952693272038839880594890574279409680589441671216427312524147698560314623661501714315387544376785368424397703388531375520139087364284351172203450577224242407307006088108506035362202305012282662412161872156574252151051066846346893550822716885938442690819577373004943709879961328745671419030828075374834597044984221433833196362393939763572650165332004123060681469722993020037831407763366771003779133612916925516432867195602067315539706530853903314553573155559279454641353893033515650391816953263115867862417509410288716654840383119139200528149484420630986161684697491221341160024815068692019933381726725399757138944523268628890277286452365027545973544216198296002601636368031092326008912042069512434093105984544454201152878068186113912266620373278866442888921869379300612583829784237942331892507817925054934777122047098964659956160829091032167065029750875294717417647963468601249192191814025479261047721534647522615991390225781431360061721759659400593756232671655346281330827413814144340488121398735077298833459723582304631771413609335147813449976746011994176889987765965853156561499586913619558723578007275331141495574288162804768701424139357964602682948973572158498597015965661907197447307038668771689950388907437102277022076752057364599951772704747733627544596779993738621040361246431340174324879316410443754312838865353536338378162364997621422585589670292739644069993614167859639163724215950594861143667454432210858771172116531309394090736975759382411011606484476377828088391511890977313494779333153999889423660779648030590338314346369230969472276903400542573733201986939251652741492351793485349358668620877696890457928813395218941902475309036875686432670057214356358397175176819017033000983066504225604740153231409870181317048967460918810421297433820642661009979984756087605303157285888377448303794630709060887436370611852970239195831903241410537753670822377497194802714720859710539533446517739204097500768656096562691654685243604686690620781443343830843450631277341022883501720165001332120218440329121637988971528336949366757871021362174478944594510696753631330367962319291205127489611575289850421433342238573535352741624680966940837381209178903415923952585969105569012943863622977940041526637029514445301932019145136964024432267505567560887392010140273833676443526232279615385641284772849502030057887097780656295286217593430630167561899083175063772416466303255660409239478296976536745712370333802461243516342782601538873377478471830744209930462747359112868267022998932870691359392762917438025358223957187877694955678372465869173572233681542390152700463962165415748815182126855933303490459241725880468271314805713595697303246776529801230793584023767310438666573978867739041157120055642511519694494221769893006310068366912198001325018569977920615406759101378779241832342208652561291203156011734786074203044936976571836556836786802612356317604812719552354845105733037586026161427312400854511678470997946150283392722362432150765395911172033379020495755862116690328077381471337795322831174057640932072047055741195453527590320842391572444273224960165259570538491017363994583087258982772949914023914233325129449728129326711233733240132937309501368123601366919486862345998675400429917034342933205563642996836054361439770119462638252586771249545010614220105737460178351522670036055105145082301841520913821404433120394161123576112625614557207776962893070427862683027985292079170200042985176302270789054236853289586644278618488811737921639706288001682880981440930697300806457374607015881513441160401991556194380140856492664429899607993051471004418665797214756693488938219952122504706433879238838037064102025753817462969729188979886924097690559266562971325250442311518614199382874784459631291298774996752284108563936248281591135422002297888719541914032386392321127986875744022083183612511447827167732884713229205343488358959305723817013968023420567584345063252878547630886997488626940460077815591477154572479609782941965543572779404782772933667989321136732674219329956270896077355937858321089993912842897019974456853056161453916912902708166166406163406139012120087150576656228889199249039353486871532977879026093065488421633222228018961133859972079333370937076425472266599270491387109548240214711317407056139035600585795188049720937939687774636608542699842939007238228840667462044566953864806262697219065176179134977301863739570834472987119301111486645412804418971215837196598231664636179860057658531021951187912540469441659468715889084152580811678380065306827280950174169095275188407195254843216261417526088155573659298641160752691224962437609901767953092007092667140077473891356654762673887100095145574433451664297665781808885625177867845569239604779312978494445946762104435991796804981509088073388895848799987483666378913386427741344055706067684409983183917164431578885266792742796575063167373220919104408006420726435322060319999071933573130637923346921378785993968293697854964187092889007685319948409543601309152230905121087054119856951430980992174887794167269083422050396669607509262051271302348193606282952316881107561263137356619937380194592210269070572770112208375326835032673531223778714788297963080357806633223397395003007981917299306268790489380983600053927431779154415214566994784105391407215272568849940711805932355572727585774775100413488995200983606465196016625805064842888230646156771444442663115120599176317582979643478623417739910655707025782814200815973766126153378776405343177517992183138005084274747915510124059400264503995809579537906835936044606457725623206453616971545424155765487441005752839359863925778006018381591002602030689626868103680562287333160485170360666649301486849910367383293457035095953310904154533124781710054204086593273742317631247933589006788406504356514569230352902138583168837132000675239513858224115228287360885647445128345029275051442222261583866909353460062710173136480717967326818989310978435551695859865469476710747764841192354138902117465421217849265320128528148462995510317067054274079077615105483685452614340276343811557216082845266745845819008466106720484682075419622825388850570499253888589801920318337860321763645436819779454570638740445142569334279262741642507092275091767736314962793458376738363517378525350644520315821825680445909835348910520100831093074195287135427573238540902631707172357216918567986467938141114714932053428566102087522049106413123767315640212609588033327943436417300340087012623481437817323651191900103795085994983291445209711807635710086475817206210354421597653510961123184277447720143743984416222588843486799253354610291048782164168681008763350016362943041848043500805047219307224817560998667237831726001441527449385414519526515196258169278508685293584426308368500022917764915790686375050769570888956022473983539896916674002523243132614554955197216042567026421816486897968667837834589014282253026527560066894952317757064082166540042417139009406935802153991027814099323887916311427657905049082766403480385191816906623845547716192252542667527853905463556381575891460093157939946131320640340383736553129803088645289361285330877888743445360063522923658370103566311449044757819786356983420036073465331207296107555987452929076130159708374465482233226337104935108446667050499640297029208919163400686260747767948448557298313461864951760596063550500847432163622443177221670347727122614342130358054791351503046864227114833148608342020209306154907954244917942167534705285899535579852632528858531755175734881277358811147922600658427658934337163819407755435635235078790836281135734575686243183194185830984527159130572102431086643099725794796803876211892327771883178134147720153299408362176131464890771065085730350403670120341609795943785399744337997978688430951229672103262609195589550679559141823416507547733844183596470428762283034888910284121431627654670921469080135275850601073165958386872019928099139370361415364429846773124752051781509737430074893850300759319051135795792515387921322120454773022611774680344124282709038959786693138854624283694197198637559595115721047017576953744027373567234740443836293160342603443747404315703815214619895338209768958448263410774975369912299387976950855147011264088769206400186854356229306176848674281231343972197560184570526171246804750561986708267495967778908055147824803805618568286760829591185587240798321250751496314421938992317936863745005940515563304606534926628745650040955307929094569546626874130275238824524198209131395550574590536219004435327969424404336803146095946147988850959912550120511049784469626185612725464183040391655808388433225911083749813995958717351524212378904001281068702184095912715995308941685766043172209314626917749857129263417253358032080126845697768244373348143206999493293106817810658504217585682778304744800737617432892373367694702624167056056337425416460410084096067425007787526855892833144252541470620175121089188050834342013828150918009380192606986745405208014876224103986195530579045280263790130165942005560934597354354291085644009419812875253127564408182727982905602968507895917239426772013998491159157583063140639964713022090546056151384550129025497872357550859589018049073837032179799526449309053594525829503350194948436339054771581010757259090667625842973288099923222944901437386760246519152134582702912688714594666320172491475638797126240817599422151996854925288339146663500142425174140073648253577793572126337546906967682041044857365075273951024550196742231570991032245906409678905908485936982755469110794472132812379913082789940587304915172153946273410832201064182325932597313894646327384116645331844811582230808273969526509777261693409439989920693266030997948202694871851120901666481642991057022039250923881503567018815099112062566905599316025435664709926497695049488300512970443978085191456941671789526152262459562316290732320047642823262636889870257481641452700213330715461622309924479258942185044927923451932867756853260464946249082346389495051183044243482144547558303303453125258137482591777733993028026280331509101662973865589552362114524411496089774818372147470278569269410513210070869680043738985408969993786784988056712370031155505034929124291342790831778007030105564928387241911650721120462591691686606714593659465013216663411196996946601484684040049526281741465314109093339771791939257303209149165421895343987089398421277310077445959796698126902892289956585003263912048660089825380051990322269326581830953682596492802680388419838205548231425004455400346636793311322861894252925747651945126558532519610749552419982302179643910150325029171193635782145914768854479753807362768515863573344483432084088765137114258920922023623114764815385621340722668382991499844330684143929059019011395446876313848634128962250062035663171181478065246667443811662688306545573202251035591441795124493725149659754199543526512406114830544111876124965490992176618626976287512850181555878245278144490964974269496642575218319932147826094698031707482838497539197021076663833003926072167018275478589657525763348813410166249096082539868247049431712703780307289868295514088921394168523028223286674364713186250515574719732791002324824883183800501598566346004166361803613623770172016610693316500879307698982826434212863219719131244983363114090303640814401637707913475618356132791931904741983672243449660688859401273093540763443564498174125705687019495016740783063216636364019904658430398919110610335833988511714481595194444618820024438853999989114514126137652430566201722237823774675788504790271271867693540865710085902907384390481743382609864774606576443882397273757581183361291430270828937934145877056027820548230015456908721392403564538346495671435358204464548616022994907719454469269958740595328280523829624081283291906183422774115083567449504633828421217787415502133305024830059619587665430820074654781740387552448275168367248648388832562852997157642461746464416183443557107175085101948904543540724583354649666340152517394198438635705278712029080575145644896771033411410911469821643882350164110459510773084345085448296459721271792852026105441795221175801173612618211668334003195184590097424921336917441991376672258122725038679059253014804049565630654581455956766751427803520235034617103136843215614530409601904300001118807066307470814610421876419843116200358157081822776343163342621737855752595029400863436169623710417159997075785871777653875390360577636390220571276291890805945335795502322767355874229777472671684405566459266997807118178764454038075241237389212007332279451356867133058310337035041138419049445979576562792635661676952403237676937963357482463042109066440157872482777432860559339320316500813936799392703669594550556705805175579198109802236249739327309312510213211604359634394961708846829037594234732764963494829525849905157517292145819876276402263327613074601868394541233017893945052236464051603987883969593922669697407255950798581749982350875032769328115381517223010799915752956806342898422313376645440201387675279457056429752098269920228711434096518791681782015727720720516701779211422749932803115133262708576114518194079007088292390467700940819540888972745961017392642396367066910178613712873745913696020496767858349412522377566583565035702601070209424235178101894478489876024518269055930695284796726966604902797111436075179028130331974043314025330680335006252159930224424389437241982599610073420882094923631530265729870301276668477023110074302259287769048630241460379921695965247125831202505984567064029953253045237827490774831306467734088850825723007927358984828324263836844543382051079703663187111654544997036516056577362598813669543994770508180060606902222298489512524375119324811282495677699843732518716254290894192613632655730368164715629252096798581453436805260647993437887842596220672680998143772866996096389336581098294845033442146198253628108246639293148410429128457282862189147169409958251808462192382728676047125288161408513473510061425654901618046801910956885550443282882899129381512826770388131371134384142031874049303279692128278208002214032959993750617440589956392184987685081417020335446725684655581619030760003414226361548931435163470058041877434495508619414774344893589836946702497489202560388146407421693892433829566038756963998086307405796528857660881742925681926720025013053536172417205323435296445841785765078780180773964774154862322344804553115796258192773699431149748414839558664288782717142635457181337683623806039623662103964232203282029841460668145444676521751271731115242984245266977241321197006581180484772491145007416333327249265039337535586561277043970186887100665480872704915111162660285774049461089093139132433584795821636936460247162020213025911351028542289813107409722915344493867940301321078362856490397572247472350563411974113121687294149005642975527215593750338401876695985252402653835108330397314332836762905764042227525535964816863113417279089864181752886123688205015292686535625878045712950078566301148048925989262918396976644955413848080744463381405237293549704532488867286438526434118771198456107956074342799025600036229496237759880671771231566096999915534387306345055281229447104562943157049132551430571335914150355493210728156450877520148396390656705752795066938072434407374874950632729182573377198463625257316426401175256838951891111784533686724721234393091785024538877274838801902404679582767166594452688197481149856343298558170975327242876528068565361519920486032237304282409126557631029551219767725145774283928973372629313916324595402757606192515785115179304149651798665674417043816529868808762548490187619069824221400179718934055952813369426697300524175449397872961415231849908298865912334094119785351839430377558155855971981395756132717748274945905316747572284486360869287270704695357674425028477967096169254077679343012808065094273367197206539133007434423949533489652365849588347727433494550738283231296655224376497585713305126699962947987576235674309099284419293426404067841020311262458225320191629750395528724189218013731969459250658893363488319913019291664793774590075139292408168522523327740810229168603197244811334070139428811867897042044019895336726680893832992742562271255101398213968448969593941107513944225496238803948675288561187238555658389747886469523630273335499601358616397538119528810273857031610037642012222167793395324670147147476487785950014260707616187328777113915165580093464684086397790220442231608934504515803218645012623573962917083580694215820981669254998581949409152458902675280882644911512946384785690242187193571650764993246363784947327875885862922942538625300859127017600603630024162212829738395345770038847168641270671860890618982303800223644986399754182493970859990636039583083554508757451632311077433024632583235980620863795326981922393681388341322759919562068848297773647551615275235082916265243272232980299697625133003510704060563345619197388961187778250860812661018896243102036176049664026766050164052198488548701884707083484459294658118334294179378565513775727144570924178483536835639521270473628775192559077138903298765912483326005588945657003211314198010920078425424411927242171385414975365565107115069158816773562583100910943714743166834262683552228425055588157219503717879194875178492073935907430022567539548680081779049969097371895700836753648838361774015143615012995512778108683623125330716187383729423427330426140424712212196382132529334293964091515057347226421067339252614626008122763494072355120291541087978906898696272611383647598042243710036095542138988269007219413434318129810911683016156263770649825296148380412178996350880137195343482394816931823088641056157520657905703795392255877962531512397825922379834474991039101394278299788604362287597507741182593650339885550717354339027639576308742058946770220153188867154349380214698762274127003830427824956565403682250706841658631055843629615446024824988264377211358705108847079942743848087445167865403011271740665117708907170515745131287977179445078568274461041989761603431862675894523253114810490167349554835369280658328778334855813096702343902433993700406126789939090722589267118515617531671039801240767434188142055564266124116359421756763642334890070471652985516273320550538954290156323643014488372879412990199336311265678020110475853223903177259951834699166889518605458338539364267184522440336246728901553064831980325866547447102075426816661551172555729165911702699418624529637602421927482115606088180575043411908605267109407610212185744514365489938426420913998565511286565452436609951047461469263651962690907129827412062831534004673352022178769652744839757149727495422840286545937264995112317443518373569155958663763531678518253216216337332302292593917320600200614102009328471781995466784719421798666751577765511051074265747004550839732662346774434736576402391939462326855478012882963881049993455825793123463317856668861474116366893895987764627922269180390001232724887263452831511758168300119493043193647237650943000254181828782408653739794909018972879890601442048819540913697827532334637987230309479038673878621854053371040693153700079402748962084744762957413031081322294046984208461982116836388160802297133160353074209606451169871794060038784157545986390707151771764586661649184941906303394214997765213392152354018989029111494978371194593823592796239937690233442015359991156465103748288176118455932195417353951193877882030834263578414911786208832271787055270368060362255183295123351220157498422359406123434781108352477066686299426869553751391754622390872959762579947492306343467264057116014819251001359619384437128765856274916491571496265746370846562638791755172654077148022542460158071039926251877233639344461103575254422030399675424769898908146160734848307473294852331927661563969415872595424499630551139794673076219789760722425063758467806611970894399787644136376239474847143026029083053186656188982366388263916358866624701752815343410302728624511468835054047236653249756619945996430749833823160803193169176856780650210260436711930248026773062732167422282928124394975094045161135556553059665388469634737292560275183849320377795279652212669895386866211969239185337103364253196839271384961343248216335890732311346892541926716607385504425642346060213386202751206914214739383093672166125251435533307382125686012502587143971192653199607163638588858454934095637531938754190791824524196424672636863292694952418048260900219151960182685901446210392107852754471633819645336848157531983283324201584531859511818592940247812462222334819237038847884886659998113528755192930983025149528595968660625342146612494358313737862989657287706708753208353492417000128444360240162452170148227852829506252476577103361815510872890317446996120419501219214130280041981872239459416819020349658797580291136289254020821732143318867190402709034783494704112014067703868926131949380594288588058830901212224865456446636428975595374179872771118346789349056317614760056393910176790732473813180106781371596918154754135667501676841488414826219578947285532692401870705411274279249514277351007698960637094760400343545453885706545392357317271905509256824852075866790363644382547511289701433745926910708390493431996020190804219243061398253529387203846074055119647593636857110084450639064613002430434425444169691402574706180145211006400615790180415246018729384182715801934301979869879496789616237675863212243990700935061483072848962990095236687319900644029702799952909970315575224013507585883845523081118304325529740732713147212684472539495546020206122621412561913218748443425747777809801079270929824543919575575612977050720919928139173020711029180528202991158588278303464993541494364796788705797616019017959072192378672641488000627680270852588859132716707046360971464432692136203953835040297468232196394926283247110938072790860428705407454660990272911248672672401595421378015671723207723938744403638150257594285461229268288644747124647474727244146396384859024825690362570666449318974703458522709667366461972487347090520327634034250710770974727608389001470179280231510614358491823293942680564599615833215078570772753700907200428279452468831535877192604557565927616254362272119910692582547489411249671723145122949962609371552691330677714361534295734898271769457874956010575898156349124141598188094527807237239295753982090785269685164426057547207754939616686077746400615440866867405437377216096508123725509346898160316103968898345294065553693912132400587680988696853877993150356327992208220891429438531383007956827574784122876138459340606044470066687636529755229559028756739891875566435706443494908964370614073068220461785651614810990846831806089874896453738638165119895674551662848855962603612305428559200535446222503861499448966993938015337407475858323184508343334172419737448297764604523423787329989882131455204444703813163334250775418255341985119832534037336582015979063496737755825206272983587196797105954245824008914985015080031081058981728055853988606895536171314564205668368755760993214135962763410079003436738275208069673557120986758175207737334028919094782316882576744088712083695763763641799262731367719726556002933698027010243229537083614557330899346329541371827759512190397821410842496196061162580177961839410216312638645534752321051801549886300964111873093733456222132705066739352794154866790252715313905151721456939001038587092378584362058599929728387190570631109582830674476663660958877419638338413984326335395778403982675487510093588697992722814184905989665664377927071613425586838900866575544176009486746278929653565127940556203833388674084862332454247390521726434471714229498800872397966931250009501815934715292616745077422031419592080917546405675193656325050147911660428047847749976090629424603195517178784711549355576418262756437503350227049507738206617103171284074676337127415137861881549547640188027881025621120903014426438872304650933005422384812214011958095752054397989941159844496490861598490742659930286475609139396682331005474874100769521495596708959866410066737597317549424260560898592130289261274843211077230302479477411455635518383507248531544880008908162237690239531186080972441873115531410227152493950180727956241069885709896639906114815797193801155514870845147855381341597700546430224954618687609319388926872661773262897244196058584636384486901893443551636636157172184880789212466735606014909612573776579241051672100196041788448376386605339486713197808440102263683790145036456944039164408681489413231014803003958318779422833318795296768348814150989188511758981661391669832274241715411401300612461479440657047829130811012541930663883535750530462863119438178357286347199678263397319817858551323364530519434707121154002021637567453365365384659842620962237955604780758689524164356440904852929919198933473553563954240428281763197787648140706074594314273129356312737430205821992711830845858017069556932826441746778247632384695429698696378281596783039615090974938691444863923744780441173471287298159714286690355843671491652021104528512260537674273333067504244231362070676888681586019704740550374822169093249875026119267574305306714954157470219790159571163297449084041627244286711695529897861022462882498231938524471878675962570007070666856336763042131660792476071690193831907388324860197231569933116949332509339797213344427926048164234203421561934509743772675061678056112106059763145628564601956202297633664192758026783737664169731131141438519077529673887399146730931872430609034814880644900461400663387821505299736317762184049679240591402398950236128549655333054407112313314929137741507569131487303984202496192864088102202742276848395927185735445858461693971020994084733499160373412255924893929831080331716660195783638070494679717840706267372423150290748094322934643505368031703394076262475716292498033788634028204955786424433027068901343604242979519612332827008883446630084322681297044351023553117178960201132055092619973839619670621677018382758158245340546703436792637298887685170505198345859676564003992449299636324638854060382671656711944389217020115334766938887432240166884683101976647604571811655815296933896037921715891251325456781682873984988337770359262662252244443301648382229931765329087698804254376333161475049043109648537469921716917078519962377800438157251419872060483966308181544648474041541113561295226231635015593230858512456855783144449597829723430802082874318003393377024315320775016613761298874994700960336465150094574590070190777399354630697370397533916264913566169722497827509391567913688937656659009078809037751997613292914977000731131292150582154845130121029644511328164353743378741343142891363162370482487856089548296050530070725327951380495575197410858120281788296902573572274188204334314767065171165786624133533914461799316450701599829416454571950184087964290421304286160273659835627985050872401263586251834473996648263748693371187808048644173561581383868368890904189551346018029867724584722873586385918230701483940352931271301580747993167598353361613812961497620564173888804236199668515844746790759696932166275258484302319131180631880831087519916068499724310331386487293406338065018677770676989819252966160293117072865076762677094468312159015507246805716134957866182921044193931017767180076686517443457775828748783065902610173760566826230810522835781573811240328646682217962326139035941113247417475653262369526864752772855498155015808741165462440805948542876451613703026451707115389756742004911142576289440877788829546324060728430270969843052963527908045567563829462371443971146309727613844515030546749529565643112303757430244576152797792931582188801793493028450990082545118706619417303214388500073270537894826706272933606211041633015104272570337366367648654679413648682989209088105024020041233772356562523037667593303654327407153625412784029338603116796847780646216254743336186644533178597615844017137238619608947130175041587031900688841069884221015962337548796385389251171862820530006133017544401572259755990903073136214524137365537475110068762692697664413740503100472009554178351595911311893512672925263833654847549713579558872195808233184681092652570426999353072349307400715279736485102029072965751441885906414194643805740724767634851170857472685829584211688629471401104317362117028049322744207691278431331591958892103906417450406288930929553648895240662517704582235586820316482850209858423953709808263958910130329971410297782415806697348936794592319234308063445664984589235387094028443812679009065055096229142743001976986192668309336654598604036994701891188643375597374470686986965786840265660684552904607582266960101825409982138252598870292230075305357966006910823584317589175181186175151717533441936287083603039700621051414073703456494911670647834681052450720587618509572054675424811285115850091058775003788594333267692764088522587989603101147106069940140960509001463180229591812086173301305789482968461668750780265840282141460802136527381712786701532652473451196076934782057425187792967830937471420623948725193140599125697162605755147301067664133886140557381486408964447938290875823403245566420099851735453637390208846528419607743853414550536930844946950314436378043764906327668962573944500167258958795351407883488072564862823816386935217274405022572498754554529437483581076735355676226201549988641680274526747134884227189152676206996805574711208932240253006507050633729808762367379673931858099685608907888891303726043817144733696346711359075742708353934729304378719918229246073280176862036621019290399913987473472805866648286171783661638145417673332612731358798151485678097954966519848496634657447800913708909707288418256876175959394380165178285995281671382396628451939307121214165972771919287395056645507118674187047537420267157650133146448517382975258040563943214621440781856191458866620020488451726130368985761494179528113460176309588371671292643545358806124658286412067005985161980942847755739217719473762633071710073847207087562237711423532261893297222137926998419325399584108791459380025086497924758324650349429502616309369837689273047808156157463541221856550747546204192179400541387377195048536685348060415621716196169222787560678907766397413990386343665276128108500597781454645621261501686753997625295595402651975039530884818567710212968753882856966151565913139653584798027896911934015085285690593630155693167432752855314391246696194174053486966361492924632629887912712234482765314097508693539637820863267955788263682280300288867693543528751194592265454677740085177055951346355718247786390388435646781916494841360067610824865833822095370937618351786250181972349278459098886695212980848772280775132170539417824146472968123354004468613007120451162690292235572089923864589662453275541960094742256336087456415020519853595307098700576308051976281776642519221601495391104468968773438186914398963738324261543926058137082782981268680436288421114083655337400631677895494332834493146984060862309567139262680259970310750801509935442777542438645219422200328792976691398576281047692147332304188705955338481130035617341884409065951401709360431608745141917685796639849678501503370674333165779025598123502221572993626011981581013081903612201141035266600001230659429954691134924350081204333734701069635262341181454779968593193310857552932805629666137061913174890585322463264295140710144194907484335372098488660113597439312255275138598559690508217046553195605325160375733275426006795618890483598062218159738616494442677632779180122090709785384729727884764800947701138525567434130049943516026673021779486146112567550289974588985006035495869866700850020250889585915205306817871516105641482811910113675034174429744620126284409810808157926550270710606683226573509982069112387508889094779350801426117198753677169871343597313203872736088162189338898629439103302788484765073385992238912508487141796878328681064710289489437973746675374816416060280163914776266201848775946438334706571005731621403246240999368278148920339060990286737647242044409348018477063808607642320653698172591556423153760423230502723109223999548995233171531800321396761379191431932143225463150070624518090897661268935025308591340250709113597990624205291485161391352119916576566413228833345527121117651656508008728323795254512098641923712875247889079400338707726433009039385522609421134466562526450032443323893843451031318810360646161813096526715629130665171046689460858674274105327364000537993587020789132370467674375499654158761028873082373358248093196515942036254868658515333109521596946789209610935084187718152495366116532263490005725816602244815764839843308807648847636605157044102518134034912969181878531853415222066291616298504938762399592346407882789740371040277830147543009668597570772639025584151513541317351919493557290484876641492573929282668177675559076321412745496995447047622613956546409208065819804569835869419277128140621260647162087219070923246875532984302199476279268315737474910009349772269641874679257194587648227766685379512516711361252624789880526032168741176214266633208793200109691100031585600425573283478194525183112192748961991578186924796569296821424636110002762338134397100133947918986953740734589172228480416000229748341910141203156165113650517404240957492876405154739454031225957565252877245760126450577245727359245721613194369544798194316677318093275774419478041993046269012902786626452726328832659233377400859736711282147999446833051845374694143488689576432108133583621957847076670290307780084568275958145931724460970875624925912022471261609369562309807717133440073464308716126140725133475875206531908743477864134669879830411418147494325304722733574677254857854033783912277132416027953360634600237455173352709600849823650184779644966022043106076068617655276719858181930900520353919000997186199873582948398988138060222846474234023750934695522046708699860263465548677528041595736215718129169930447913315869259599106019655450848611002344340549842029708880947590207481370386576733089065886246593638111151636941417836134471161801726824469959687662058887677397244014098535208079353552849103997188224110635878117453810968210385687394523366805039861326473958226960306525843459110552484756341099594236320817532274414349184241190240432212748380343775734199223952469190980563427230666920860933019889869304531124814413143904444237067084793696771931721735743378846310783368364261252545993713276271665825824911943950775905769902054810732129290721992494469878216009007656719421968580717824643123780830520406567634307384137024349711422504009504487103468167987587700863047810050706614047768601537220525340111470935695952356381307762587214805434417339265805591747543543010037330992129611789514411981906051458857535000674811761926362569190712032567007516185724330789799331235530545951361881465732565341002887228715276163376827468108532035784349500410719194741786613594921378017717546829192650534556459886216049291088869936960086485491601995588594960117047200184266205636807132586175430588961444225667594778740237211591716521509152640767737704160996028772951345399375024707929177484722172731889968493822271288320530539737219028073001813724515975457757272989806326392679301793512394504993001693919591559067278558132900358341159195547943615086044750619893977182278210030250549953148861418900241239614138849211617895133734183350722394379311345479548518327083899112118111233980166405384619944553439761229351312423562400143720668515414263060854373714947506883411051098348567715879983208317096484288732514640001308809408194253714756926025569176114344887678942419917495310345596010488612213604297507912190074772868750335574606058263613947072980549961101644079975546619145995420416908007308374994908710691576997254506447688024320702215435353974503873738810588515928640675877609892173858556827557143916843805185263808450162013964162477938298637826439930238925012046113189337348258563652419476344854211830897581498170286593816787764459301296742027212323164119200430419941043141092647124800446330431056434978654081798909870689559899701529842944104301422417091616808743123126181557459605716587735878323268373473804395565372335772543746590864400324185135707276465356217376737825054995725025670152674562483951817754029623735709461684633567239401133930185386789499123842014714793092229660890711018410014125264458645544956387209500512549496924220701365224008005095055761824519104916990979085223835751838741182430060058715064497889389854765551441593849020084972187930492537736322279210744553710621034412952963389319071026401730221497624232336354128793952118779511857546657244061317858189440183543001666104131819288351930598359260379481317607485701253071256801277441114195232390092390474351241091085479815780480221844715913474592327859029350533740098127824506305039859913465744826590470228177759181906317509412229742465671848990337787151232452808977410229601308142953516615964852931295087879743608484454485342966904947457794575529569712853125109907839832899428910723887006622033163947016890414095206894593336216886920408508958332472153509441062385046424058803315131907782856670244213913298885287749109487173648574456005056086489863118214958996899962655302460817348660569209383254363357497356788234222412885687887605328261950356162624066703692641371556340877242664936203133131735012863517643725940314248488417939012186156536168322587903901776766077393393932291667388412205382183815136288136740104236526852452714119968609031800567395261619828683243149986357078666101951082971228221605939002896111282883020697870750343117463012462910828395882555308430615346903533755670447940010395024820241926370818084954209643082863779567116071848469042225644324744541674863285091171428521401741228710270923755644601448435328609572449293368931618928255088439448973325311691353838305068519481811904379820408095658623706870994338763963432529828106925032119206465871579594063040456270845352045754207664291867734284742944112659894450001988609412317465878334664325247685863787708555836499093022396000156403942050218400360466490302405890148947166339904922364299710602661886445542925770643838450989136438297764006085213196424387869454246492333489671106432053295573039889279176131015964091086552443282085267924006082638271392683555634564345024181782679804462930330446926739332530503220239336690521688307367132542145154787509537686636470627617775626352449822378417607910410179954356081978983141217106661658117378566898810319888764495256734727674758375119536660204110395945939220984373466656385080056382190424545936960625707803677386954815540555735040097331806885463654892041402849197146497135906432280980721266102753994491573810976636397705252986117652473645917682599814770411397107472027574195121724280280594658421455971697959136634182723991477062282734692437329017354565622383335299488786565911832832264890434785754049053736185133159171465099403402001888171375750972973698677433258475260614724095146345334103065870586356869389518882752506192099965832236406712680755941577508074190460774951438701746675348842175806028935381898416173500849582095798315327290622765650648382933919702744250794478783379313958545732107795470613503765695661962046131948342959533428976297168794313915124020480723770163613081803982725278910798189669887972788913476610706192063817694814751493010658202137431046706242552438959113110893168418030833328162759324711132004872890895831160465775858141179042791673046705506487329342401292627574334639183959606177771316927098847680571695673530500984562954273426028348122629391778647819147425012877227963056873571309537987965189233924655758594164212193893153459742755999913442218970847245286676725781251054041489739352369609080041494631165491946960346113562854464449828001501171575702643322515791756612304906150079427914901601348783800075950701239050326622458193382733733568566787060290060261488731373112853532903589400098143401992449838326135296554781687589886928641441318259458210250967155245797325297242417786899726210375699138064465057573102518924957531109544873566669183627406456162629790210882669281357855824114025770843609551394013572022983918767677683053903940856497094343010305114187185198523316932173116712050558671942528168377285904015275220939993086308113250921142568273191090413290197777107995979958453061888640933510633914634880972457636398404741813784893252163345028384232095626979046554279577201753873955056569668314186214083900972625888636578257869009219659739275411713132800101336711277354048053745324069999568738420103175181723242000935468898283561169624618198711554086840860474701666105054314603974020457848461147694300599870802362232926245186151732250950984510496105251965683883009730054048407239930129080242918570244997715344073166901208001703581786022680384230686859061243109493095551119760230024293921106662606126216703850386481177975100513766518642327767650822024850477229602787571725276513342197595764046869736377946704256081567361591328004335823413044665360401689747243366248246682430968254396350428435083341963553271006631645735316424576373041096150156266990235638618101619294528492462124238103999659900539666973710537085244191034882613815637120982584010686800826195324851211762450212144362228039762916279708412672411329542750677349295746785438306681691255180331567757197724269515249610628464128332155161099506168085286947608035646038389470665995587932295719750202679107481213259476154959475167345649511386578530222651239470727758945645403527257633743325510428598928318154742234452056021337397864208948920987562657996848938666468226313171029778794598771219847244397588849321295587137850866274866000360995333461734344593063382172331612081038029501015569257342914010298447068820717809144037025743051528000299973576695208701214385640466209461483603182678130495271457548541550635571787763339402169608424423453007875960494635657005447567605189493747283025855055443542876068112594948031315452946714838902605225018498395432572053307524039995713525400158318413896431933624874491748617884302436877926863991301149289790542095720483398343079386282576996396960632582887448003268154697412802687253988388675723446944879118424202759084033126186108950165228389573550862872609028388412369208365866439663803861880626314617513661185494024775822991656875762266595467039146912859730699907224228148683192674158418007230561586386371150696380413403532940623217703475237637538556535708788084354590926218475914795789201453506252796424365280297069607219477994387068236968078853214154092669365440772301407147932800080376426431622534992238299742110990134105406950457151894271317397381152833476689724189182456567738758941533592841003653541815925942106911412396920185702853111301143913014024308936005424257826442070005638031172934113818684605783503837180119415961915650413119165636066031813089777158273121242943329238159897894760885785177764279680930593160322436399912414589020574576880424015252379366336793816276790030340199410383870342724626986319867575542103430530376777283422412001234867446265638431061536958246519745618942417039427346818561303384397077553979526151532991943736893685772735577231790979673808887649507284109548983770536012221962078809509498767119732674191162796342867523652035449773164367164312889406321831513853221906646512389178273783837329138745485753787688683230471282024931444819051801249836178957412054359563258183999945011052495199421603340666976356394786452352419349616805078795044695638312163702943117932777211315297799909815086500552489277586028859073579435260318932865736026714540852816358153487101626050441112648978430785275553971897707481269362026570335177518443452110823126685159503370203796147142449507510279530734745356687103538314809907509547558925604884565549222059071189769161272097610618902200246199712277959197688007556653618373788041966603605988263676323331292276404896361467119568827250585308474975176118397734616363790780565224447442137960150538604919787466749716614097419031181798291558792906737882106281542908378477034925635076706710758096367448579244679447257373664643857082474307715900479668780409738084111691953416720561609304301121317135334199640817068915457500362403437516628428673512491454376189470395670283532070380031925678974312535214209308540881275697807129577296276991114700443247468185495434170043471719057229956678243107576507368749556624434132933313051364043561568042995434957907399351948841259300884199597053404483791010953225483651058599793174556795438115648955403387602066020276421100661246919460948137278447959034254455782486047922365665026673945176105019677215254845924065762139757335100188686227495997218506599053012331228573756042390922166366009762972533847222539865113170493319381265594801733500259399212007838480391247668315709007626894505712518138333271643521034410300929139083274862539207078274334077789490860517909105425806853951856943517604047826249439057662244635431368937481282415516558571844882260547711551660450547611767978012322206352225100782566886012078289526392393245126003175150831584692200207562370655061395707535538709629624207789044801315071484727711017722162960995879802422417845044207994480318495509434337587185123298408468891589679478976862794933697178557583147806239233530893470132273004799572120575258325963470723359136570469720041350323987869887517357574496324394997362746516560306291510536074138369124024733803150685748503927343012426147381330342703212248958504548144076868412905926141318633529950806346063779226690486347684261356742076881736377457244909413580718162312584015604477483164129398255213530787825612993424148797758123275566917889050994869035689801773941566377738614952349111757066469861116292679894370584748999679825923332096873453118116316327112487560288747836866137345360169508180140973316615260455277340020643065857157373155493219059432863412619099967581025947105431938075229320524144555727693573006047088134737196675752078516284374181895988315543408601422661230244764980257385335500380052953167388264883051289687155249748918105291211711405837880657776169909241746875280892390299798508887435202642264538799879493995593566135124520014674724578912621469039061163237343173765993425078443801050916531316347525908711424530955314467708525873435810962400597899769429900548234770843700408242344563075510821765074505374387135921919761096602947148790895831408585759622330971398896303536187527699926070685607475930561506452792896616958177066816193129821093375947510359245425442032544871238603684263462279369784176250806539765624129326213144708162497053551727517984457353188540471090369117974298301509560347440141175170114922120055908348189590393732606430505149743291866124468441962606275917025487209574173407939428785116868619689625522492236093231756866843458246274770124724246501559469996015818417528415386661153861247896923019489077909232913791094944929951407059098349291847469324937268570485038753181093480454305413133321734086010162274741831897721016454407280204100641740250297320596347135085309051214471617498243174846921560414849193095532950534386557805698876728211148761542602397326278294670906368628086084776963685355580634752147971199347558756542759455785358938405602142973267686757523562404647865106290743706522573790828929625799793350509764620873130565866922617649587070505332007230427882540264792516028923142959861101143964541347978657771171004174236338057561733532020483101402884821461984791780915544577888631558108533898779265095807480765878890962785946450769615906278758444204910897200097156593752072046004546008611049274431069853341809464847439442751248472807452803534370651763801266935594828466919017429621081100458108428449141311698937650065670717403000335711357184198341954352524852029618469671586452247590712614680111914384244011893486908459276002979899507245977610480464756209097719693297864111336455476419595888499598250286585602715082546271303267298777319139051138802543293719558340959011622417256621155145355271350121762306362245871199453074437642448852459856722835475519486928381324616627240755084896459689621393879902887719418523273213647788811077284743276502655825524875512643955947596577947929763416085330936106913574448893593886317002459604975006707282907636043447734529302518852041446741803603605505433025669798019559306790146246525497236405592922888278922293042112624532778253679511338639224809547899947816873759129323614606887134305162262006100142116916700610889257580559100237891272612877804284164921886669603029027362882710149955998209642388881314772478914027163895156226415583705441223044271650974191958283088683235749671277749745134018965410319228746881708405464272372200358382279925871609796319334437253027475864121888461704964436288638955943325273715681014108797865329387248544331233409574382625453654390468779065071363248114509050445389288489370299505713066938055840209169900162166271881858145808750973393112102030007176528344937723279004368286293011998477699761704945280150441048011084118443605089692035541102110852967671590585826867156412176429008998364095400905078869748087891463846732667779490908815642676804406748739838730524052305390253633321440684451480432411433236718736966291783421008602302516108564291956509709714559676586062509986153497124574130287400000006111668186625197095411828417047057943921427994080733943643028333065985335033839973282015566833523308267065030982489695817847484570959964477411454543215971026572772402162304517051108798516718701940879144956629580639020880597319762519612713260665657734921255472491095355714592857545713104863900880801293406875173162948635629513549647135709913507414092340624783647649818286018331722681952933437042808305764764557536210119112423192347986801760188592627975119717676776628716722109298514161673119334018935920580278184129939288028893944376438462346645291356267466594477008831131516934385480294272865301565501579798900082194397764945817196160489822875680057705586187549974872075008231699658804960825763294096163399226029004556621581813201181613243076282748487066071643604710253080034942420626367557378816593068702059637310966005824113414718925384142257920277984971830525937827404234894784468315826525362144668289240516898068360785445639679035542604181093742712528720334637448069008836267547399396320669415829356714594712834197084992873242763667209085367489965596792127555467564641445313925768979885186512456916435560373684503884836355351831937789737557663325679580701949918934316221374223947406205442319991964014300315492363050933220040064119314384419230880854612233250791827513397354880991786680284257541829647104413250844224128450253870220067311651357640727101360829477940061001364214323093082737861782636394620322068681109997021831552941990384554977537350506801526785534265484666966395258072649707130871909085335157780447496268710843864301881347047138452188107563861504702738771563465142407295960273316504785440189526729154007454035450689418458893461314280195670797629475353961359395794313264896946193877332376187534200446557946172593956893354026584838188776136935263600382480434405210990363686347176801578389682858970993942281495866387306214604265211135489513421390392542379630252816059633893825453490491702369960186472249809603660887053225026793709063879730446207072537629743822007845658946362295852948260041820852886694347134899305673960092735158323648234894913111716641426767233638841804992117788708669563398528546313233932311813267490580292446684778387397997730432078923150808892004678056189401563497070806100400360625297173234044699546344297262811600148209570289515275839174580982491925291459169488309068964193841446018931116585490093977606061124905845311834247733120349774502204010205230562196992523358065317143468330044029150147178969085191527515427004658582399107876547170901644097445353210775389741070424966722118625227212111211455605285714056880809193963739004160039578084697251982932750465627847665262948523947270887344007089978177789269270963253246700361624654531839742802133756053936074256221859179657408268224135209819674610484687127159929935720957837377269006102675577074125426378099772880985388355145165149130075159368432873228827949922916178046963769777037400469118707830230867083457183049635966096011126507500310686382433015844281629905311345510689719011228742849094174478718068283654795547502146323421695103028715798480936414863582355923030341217361444939835155424246603805259984663558352028694455760044026526589235588497892665362313518873257856228833933143761392710006967553070364796069033651548888960790446763238596716169427794030905277867034967267253265415159975648159603456320595404292813145460141467150310855587342606942811723953157675284244449517556838688144878214659961400401434850649783342328634031029703428577527476394096598904372675340253714555774271542866665318206123480103215799717375966353825524856305456266046739312748858318913148908499840551438616654408243756305800981116518163275907999839283057522809259589776508564762200283597884074545989845228277770071673171036847994278597749026609475127863457440495317662170404260747177927990967935480839941180188977144599393657323423561862969494175296474679882801743156621494692586428921347301727819345167349908143250058624607601277791291206666551581179443897819737400113034418219179999503799994813239133284738518320316070743347293289399446110043309303325130686598628609738472406637983094444320882398556142532540536470927146715787209912962192487538616239017959398850975682888830915278178009639393384007629097690784227578116532890872962187786656388366819836179213970422267985213598623009281095598447889446030719867885149885964017548695616501412764744599842406924082704764401832362177118184315079842187938752768247061973227962478843663029016017407517439579256625801783292449292931880033246383402160131888433668633572379112914666255154996004302621772921545699456210814697377063745744895464371274057831887204197540803452176385265971121552080099139190621610393589759938078107843380343699526421868353409302146489930752516782037399323095940237830468144218999189807382421418353773146627766885832590284651008752773966754696649404243427762160777307547164660707737735962383214676339166575691806816659781969012294220857146182882985944089407604939500728275360581213495589356574949177613858618202527298165066996476779030975471700117419568694826587738134071317786115547857887793637064245498393615883001457739768707924736696550480097446730735403863652205820686742566168775316467613469943055802496505122103621240856328606028680580728514415669349274201360708956784175519235546912847154654479111412198170844088303705774615735547333045209182054390157393018606127589611415391453139089619656459994784207921883252807122647416230775336422974996259421146245855051860544115780942514098493179523066085650775272257526764271407519732717477493268526016642401332611713639240043635860591656614590912017893033944985655084023498980783175519217247586747512810422615984249668371177656042856277194569398324359648837054028176675227282370247265528802484786291265511866840276149666959935965277562381430309510678587464050009175650653841274580712849296710390800145801388416909472291101416903287507734229794368442318526667986480036700863878282760943775949936300770009129723167570583448403068278524455683636670586610261709876910282227254863295362535506406591161935003287412567210786389225022909321873378558419868018087568652335876832808756174514671141046424452407900383018867617614850271048832022780156009778360244443017215812118109720013203120972182312451719607229547722298071836605188755820996284997984048465490992138335265854335491392958329384718678135066936336614070183808604837670413258391834475161416806421630056815555608516673251833869845430682705355319011315197980486629572994509814593276454058181079516997490469050875191469847482093401341603825906364721072103985779085893039989554168609262767404160205082713712776411677400140001665853682062712183566413017673859065756277582575004463458454248072027092012629193975538466226945462320613612893015563994875662763529391366888012941954866351893062756229497954996691797671901911112439622059776595378037280444964123861518736827488005705742154388864615478305535047359560967164890884101256329033906158511800409972999930392927102575599037123501289809644791116823211425625272899518293691455067624918861141513302574681782683396727778865344097104848584183887977151228399738035357443927865828163221624410937838508539361123778304120790533567871421076691759069765881868443980765111416260984229777029035313492582798780541756028647570361421674097423017895639105492864728818274089574634825800765294029208254654684388567560407213854955847640154443980880076870027087596168584004022044883336014801608285936734592101227736728046430605120940880212458526864650407842251760871172880490786598961730308735913718501949522669069439350311226903346779488309776155790366159850504342241162574694465074886966558949463801616181938249241233412516125157564229881333367882271161630809162851031242264017762591462421376453034413158725362356707650837528865164320247866949749266973659514872668381595538727546448462292264174121868961048373091091782540291929585331356053779348249049786191467626860705786169838753362410796949002444582790070798375046354023898509444929072604514003607433544742894805445581606758812222844387313997480885348836953370906689274623564117166331153660535513987220353305946720283808254185869712855009028018411904426275570944238346938535881316480782946287214020418044130634657463402967267622189277038558607769465235250806764255659181852132284856666012021795562955546176014920057722324427293509621767694011693104922136717808204605199111894018427554529096797418146137011508102014522935533288983783045464014692422204746958968332332592088389948347512672609622392347225183998507382993271289593364113904750147782498458278916296997049064490665168796443524571324164399065183331805725735656842743251717013146324692559932117953573976989608722339313986379741104527230272172085817827282787603752890228120341388581368069180014985149064155732305612942983344184057274978700144819824746444669858625667772879950610786351175935332282152948258100297789366875253893520885301974523806761365494966363486782646155046395493748757172280003022254005658877398514845870897443176064842673380484786260062747978720481769495937403788235164476190497108713647778323055074096735099569479759883457076514662538592521381948887336911304239990807694565464695388720871612798208094545570048744609277759069196674130058304047521028484238935149526898982526799414911535169426434716016345024311564138163797573468073837223432221613550771810835812861829368322094941158778531945948333630400422222275934354241414035747320748689379031443305676436192033755379768874589931316963477775334309788272221656214997739342375144338493279445606912367131256140537647278155843371347239084047260681361610547739341387518717042242315245838036952709260309805318762557511374526448830901152173933345026590200591689289774586020710162921614990398937858527498486138651222033506075504475910736785344855286114447294163959437186437735329227030851239880686655176205378372385187899081473345424875086353693151164201968086625005525176124131641372486681070042658463570003989101080833141224619784543531055047540842743671139704636846794488219204555008269124461235942583011360801683241453334508365764531645244119296086063360552226130041753431716983323258654149367418386464808205637155968673136015134011560502415090625698505816388731193400861541551050644548332554706263730315713290358958584907339101878972274918371142645232662754823686367071644355459264136559517095842821199367729577787850798022284626317146754631920322625460001690443377696023337762833594395372099330833164662314813103433204995267294047862717838122630925988517541738436125060815964867132869315643935637315315579521191136356872075557909993333801872724991480343269616137564322863945526254568805074705019667594994806791990131493521006540436725897578906776503587944643109818611432504453224990215248333148642288872517075403072419862075837970342383007863403233522931125249862263721500235554945759544734247366805575447511459607029946752288670101649978625566802112933679624320593304156933905291170461632560429092883000551775705632302134910823080035334074270374347505671661242695791287919306520305679174473114763349997782866195975036781301529016750127337333803824743382485239517110480873643514201522002729928402424166672336039323425512487285400991548600151841307452942988797957278000222728975786415655527834781197731215629792965692079143043903839812865276357432198879761698900813932307409372907391131235042986301109835703417805916807139938709573420546614438588661064527139382653884144058391683300067128558558686741261896620338147390673502639844523915084142719219553727637872909993466684000602147480989142424078015619285863829328248945999772933633349670565279321663128449061413215061448820203458655409237953540046249917190855963364628113898446496795409286086295608683452210729068678464764340256522250632461340348305619840627331754093070221866585971538236396487361565740121167362462335763878823246806589640542688640355836708667518986458900975094243014971037330453046194191121881961087367933414957166295156556743379642283371062795083772558592149656528458312120455212241592355297510235356323778165432329557736975711931172100620462235700814645753620886048500473337258675005583757096138309587037453391913859467009210618904787557684445649752268221247453000332704167350586201703729091046286503672554434118032653869268916272764855489451247138920918552849706339509149589177305567214370583252403172042164849206131530983321009615771275108985256146710285573819358830875287352373879046901772115777017969857141264065076803754494440997343849842771650917283983294204093553554022654638004312987614785350916947314744644297674585832582962930450686196230670626031973816619555953874882609408490349786094048273690416061940959543329742389105276295529661859612002680518524838029446084063930637787728738063133427147002246190035598606035597702949031611561657680434084888523062323275357952088186777196891030062031062266024270445643504590914390537202240494681264060279147813097449454221019052849255611623995247805289908108983226111956393198673350988357699623308282959334205788750913924400487491734072956918198849179632332231378067750319115020476370709990527923741044649356728867810182326489832985401987932221341864456996208125924446382062978676894203854903645689094434553323148516087777833274842866047771872708017745041009259545601091276160390835528300784492278434025376159446300858247636371391623288935668187339912619125095153453263538176983192196303234350854427114753730450494430153250202048233015298724320701133779821246890078870547751568053896191295471105524901095235838818772395312790628175858835607019827673286187227819091113969552659758296610547252305128272048700930284552101984244524578219649620069201436358404936174836320009820297621346482558637959055240502793158419870335146420607831271557597804350636137045795222786049402137904159494839833750702886938851313741331756379779040537436342329103778051884093323783382312826717914143506040234377544859197203240801909232472495896094123215494707435794392198347277481393435014013922339426942535173052412517416362272473459734542885136212059626163598740495996060305788216730723595678865409555046653685541785820284525364996695648665206152487640282584252851398716407512106893531507900451489405365691715276869310214501363179299162636608765408860705202879390806265147950627609192138708228472591745008746789932457024169810397663277631290620646959004782929006923967649733414041607471543666849657636641262569171468036381487721528019263210196090252832880030637228153382265947003812887884508724853166785618579254029456963773414961614622013937188537277010950930168467463596721207596194065848695327490608695389783800965530744123655220803121492876443579354728472893287267653462345682052185708781549471685552246623191889885544093434703629564584105574972219024510867901004955222978638787135370961393477027087575371899053577424146148766360114856750799433708784544627540252346031088770654298889808262369528968889240988348143558823032649595787496834169931571999583939082777977717906985653599145787111228625049602169996389550404551583295325350844689009395129592199003379078214787088733449927690334853785563776464173306310026166602042021941164270551416654763533096465029455603667933424966703695724458343949117411782050778234317994701218081800060173488337444206340362047976287595486597470549476122733079848897761801922553212502677930389096412775197760353781181819452573924937856953128452770864863063935094459792603243065995182165519783350253913855407227515184428726025626494103977790144737714483100521815595149032090060908921611173853184170252285028882557396571148564382709227374109609994167798835102693584256902822651644856666180207743616702294459648918466146013192979448213546291233568339950882297021683392855597257744606775117526451730907405760723228942066352067556664304407773424025980047874868136643420095440265154798022588014980698353226330419358168234069706152586224231371587300540634063463623501711977792607569024981728530434614707013549099335925361395697263980648281250434264569922631541155906436682043224333303999981819913767608376202682304865577584571081032268458994609604073274623072798017942435922468446825912095616549406302739546248115242354103024799915976475307200459117256819821107448634189006796947654918636343329509334466696112843014891391528117075817234403734914388896188337382027624592189327908503730546223480935999362795103347431029492207027664805380211976845133237247500335720109235420426510155896747362365822142780801132655246734473986639853216366350032253032989970311505853521928968433183681084606566228238215581896260842788545914259541219438371949127491201946214916232314851433005099501351872634235257505974997642075749961959559064334244989076859041277471910818689351330509919870310333136150749661915220593876438847715018868773132226123646203995395788253439008575204996993459804505585269052483011283634622369487629923678353288100178604850972522151149750363924139504153662537927520556511338395410714317808656490423812117310228392697506084965263268685990879659185069423587226923452149936946979988382870957527066158318803246271394227177424081388462234098231878978525691185510641545156067999830973602885335636028644200758647576259105202655234557928520707351192144761426176676041859236330007284458921096005739371033813805924394449259946304132917194019272691030883949156461172872166610897282628574322577543509577333395534959172286868815771489742307782541436873898640165697523934664238404729707685915929626989470390924164998175930657360472382292739207922490514228031489277623131350320823617702443090113722407759295496876277600944198085237440970874666444194207124981306575913543931488904185345246359706989814411884859228823729047520001264600166614044254429005781810996093028499731583744467137393035048907717372624389543123046760094388966328214993467810749798338969979293815451785172947630900182172931252244690130461039366502880510843147041929081849186365907954827556791548535695353105206295560725287040553655479825003030870352829266167371620123139114873438536118334555793775323723907027722815944128734692138528722519017348214777878931050509893065901553451117518336131161498352456753202064430986879076508449569830902075417381946268741971212663842162264857301020740047964474758328814664800396461013976042753181798921258832823501585905348423407460005005017304676089765318506772306251217214323483071714166026381173869177682368082992915981652994489584868139034695899283363958645813365239651968809449224192993204683786475349893458017965735633266627889685509573365811975676329070687211138453073682844756584680853412828362536058202882500314342930555811429239271040135259034370396434549525521965291256385478510590672023239617137094186381034638382831367383394972514881025918213748590780601862840828748571488284364764924032776206422578797516797255918808618708242643438606656508088098688677724656225964592589756024003197976122799645540760198836058413601713459325040514159189975341902585877616244535977993806518123655196077459732690470130803161180658008328170497884359012625808888520799758215899048757862890868373608874816483562876240354280701322004037677218031433286306829770170986475399457364330873252341462605697829130282010725228414166775883031596513885689367239983485462473491939990759622828265676486834525578976712934199046831438570874741310038509880261190498566887520870747003260706097773619157927655318775554845522918261879914864366943463604911955716333109174161462666592296961360091659416841684624839098288720739857570151190583673282163374675497564170764537974509876666863676057810496393986035191134780218261040914430461920780808868982614371377159023528072921680620859398856791550203415832207621020683067883578209893734623430140111017059330030137508166815852959812802387129090630645841832528676994565437977911777389767807461136830570178213477115559749194389427375149277995565465217784575901558932061090772832811866416545278402812164867650482692676560952677614039643556128759963818322260596102971060709106578310267169108256629554524017465952039600376093338378199209520104761996580938727850404288105380205307589295422875307140591430013513848797723867450700540222191446120419863053231458865347142087480152348857910571874783390523836669894289457343337550879061977465200743987600175203670442895621000382284573223369855588791613643835537445105118015078110777120437996818684176665486705151185804565329862378899449770930994574857941497442006839356724991933033040306311381946374336462545886739165144003264414950093401971987150325484104323914173444975612263742002672618105553344921408233888142301327260518140402467900357087227502340324866436478067931835547836683412350541359980013139919755385746671985704660830623904715900176037650445303818492701814757114057168461660686556894312491280270046267355689619810137751753180958519111231194953072149135581588187006946784650568435165645908546246141540837595710950384761736555165155051003808932491294597152601635122940728036352175270057689128411906121881863796904217685139521225971932011409580865564505601634650385813487742899226615377452007910488991856862786931140637542310291300820894828434752633860729148171142220574652952276772146346567968648164265370129029245289047943215048180248166201225403011124606429104831252925638827123751515856678046245199579979702908738565341649518751445236864099809557725301719003108637928418964463061194735527001551254823696864306783173771251762415536837375544772826562518983190707512993793137732448618925732750591703469839006845700612842200094617470223746918085853778503565215111508582928821787115360360389307804727333744929090109019651439965191967305077494339245015731628252872833065128811138171846050030839064083364827840627573069990009322716705067181236294919097358083618856765845390676683512178734762587105436016726682604040555607654946380563415711373930144742729984329856887475465352882454893510742095133143718231066157139109343007396714636675446613585883490548139191587757653029344011716791888325397289006671029908686310876833033395555091008085922372873660495962262990527247172492315958559295586602716184431899780942107466366690755031500659096761498380974832416907599850598696584464586778472943106801437155146736628238802223010037010824051227624417572028233129925409807103961370787968101094104597263208766569267196713620692009157809143949456151998630745678478333736596059171402178330048288363267480375058054622562755370543603050129394579869730544065738398043709354459407665306987033609020668677985442973272730553284306188377761521559733246418194079133102538574542799548584889254839304238785185396081778100235423900214069764595072749225236380715674075698592762762070738609712918920276061309937087545433984769996368321708438645414504303219644961576221354404869209255871054164167726058724169067907045690106414105518603169387544059091383674924706319733072166426206243368402503220411500013412848010549804997734588569196618043273410091466444086376557284752371731636162930655020960607419584525038801091317107772605619568342098392524742637465401194991148489531905564748996490193042209644111436339525679143686719618388912765304561039565597380328981666773949821104707783377013944583893903263930775220997615317064572160468842992004870357418186063201310531001671176214887043973952938577720155108631104971100062468951387665956883022006247370898928445513211432681469709534750689573806364326042955368198586470795788635148270812082129727937003487331756744412995510874063507326925894352688970736423991366459485993407190746663771097897338860482921828064803861792949353522543385280135363046498199882749140932325540479284015900595627178223584960594903716668357622647005704205926846500336598381767149645749739986714749599950920918683169150572956618725500258877017817784370370988774054916686734664374546701940878885988894588749542835888595772221743153306774783212532844100746919027714416146947295102935439870438674550476827657826351068005601604551750338658520751030572462902322919367909699867303356695573460922433937864235851952725785682173485917603091962131481754164333033892469361096891974883100726935958810760763640607939782164549620446558628283345047755439409144075285700261120613693271818658084494950253865983267418012892350778852080715164635451597156770854108358499316166923573053945004137152806802392942464681997334062026215894899335065900104946128866270152689542267192814783997391232154152149257673825440718929088056088271043704625289834328403538399472983193355445338217535488430593148675770139057670435338584476324073856656295071080941569742925949651910844464300735910499440619372889151979115674320553733911961654466791774747144421949291275620315528529069453118984290651447584188991042531978084254929662622677076922716213110961816588234357535282847995307188406080057441337596731332267660422180491015343174575910155964137063242867395386909588534575715919047272862482577022920320242489632884549319794757837179945177134997883980207397712025396775181361882583452779134312076757304747033524099017758413329627886824416335772628795324059851386663476578016361907275025572828251114483108815961718261098012646124025313909063566388105994183803125577083320888654030257598955872686795783330281331599663259545646732397854350959168599756786842307821032448183206434893767287410349303069632402037727139087001537123988913681311155519278105864242940395116431878352470988850227629720721863558475927824335822822385842196453511288818973112868878900880689034216590709396638829987758310616394491853127761481165955138801485388268826088211125906150910575059845105384555837029600557855897034003363364597604460789471997731298261881917003085149370046288521682511872712623070610301129517599075749124203167627513576887323194786223806621252379974635483547012714996020901178792797867086744637463164783037483602776363637615993922037551680604435964999127439337460884558728399840946450741426031249039563141441786417019395702303039906745687090244818036596829993007558128383348124387411636169392730905734626711260715713587199851609188093286933649533295242314130024779431789101660636952415608561371014374868035494362034759292008788049892846797885972971119057338713372273478471777508178877665166058019951499907815838996319169273806058266232027493682785297648105354886185614140455094437091014940738130778502991617992579933728956678645899070972628107151015511235148080406384213521644915172308912972303498566225568849248645099331338577405676803955055755358928449114112214408228658751708897558441824994678891617762176956262620764539899593391646830226279904811011669388876720447672895621670513129665638075411019424802256331372405649834664051908121580633287436840511404680279098354419159067606140388499851654947711855182995583305722199171676731749572917715873080651100211740691478636454948223111502005760491834350192625546626235033304453531950744802658083919842728201626506063021411897195598588762967633625217786999438193778042819526184307174323792760870185895882660273631113366372643302989358648057728564690095066234397987148575506142586998495193210447970430978929976056620114595434355238017580858313164737766236165209009548530197076503987166475645767623490620358997673913189807566397861096530442402608736017027551205687640615505955267265187485297259300043490426962288405137302920813745747785109272526119850615544786140050161604826401632427294779457667285683857657489834016943818653284657977369107007810021345347074689122072002801110931735364375017844726851886619655821940032407728949957917579604860428648746005915893538973731296690766324861967354986004905759623580691163918824428437560238965228489932630066073625412860281024285453858878351153139927725792087091765776000248928639356984769957767204921342434568214163495357653197350514821418198287577520670253788973935579455186015049808383972415219991516868047478898885300560358937135984503964419686620549442170260951230706551698337295391576603783552657534336109625866893631641539453117607547879600761013268023035639371462880599044709108104604310287298488179944853033684149197491240424687177357687543384521402205632018926242843729698469085569400639139673804524923135803891190439281732872804929838863901763477841298992818046192223067532960065473140680759942866262568841445653958209682387246372263822783617667253854671664821219935998481721077295861499481556404755530194800647250917355708372207346633321514992854597663615191953286705017761296595443214293201456790574092787657893447999034654575362606877449654080793988288518066211809705437173003872702821061595278650731299388334416088012757521504225987567261048379315862986960105471647378659432994416741204865738242816803961516934261722826775280568049451423151298982764811798812506901591688972698336996975939934524881030605175421763284450220718828122798313675588955037876190365767631677923803614461806516600071268391358101001640718399373857265468945040010150807810856398463992729390503554956941689337078611522997327793887642592919850924632937000423281445271115981756176648638294924838959054910755432686427329252980039064527409571896325944979748915403176870447476360150581483559853298256273076802867329026285818897267102453491555991392063038498278267854303434198249788549836085466836928275751601709339186121057281837811456480768236110567848145366510596978987875273597441022930283061849014072225310138280247612069527064612954159240871299468093908596844868994396897526220043996679687948088688472252633265190251556484124497581222156541608642046533103754802829563513165854698525676968284689896587503041022122043190018553304862638989745667302398113156086643555686173899626224563252812209697060183483734897685137859536183640770191930283800375780599791880131266659108345393987894395235086498020649564011578031637145837091848604121934322883323521031838654428928803691214382699865417121136662317861161909549550633309675588012932969637812772586248280029301763397264306491703990913099173161020091727252588935570377621419681288625309632020624373855352892966642520205693400918683030042303873160410415144612098436690088891867810714199074577283094284856835644264482264581839530546616291016135553071398567669330495696928295856304375981569022256762151960450869976137136378460823646525903907283442915048931954758149493708785526676763067725312152465028488718133534597943546005029394798141825411319117049400799038179002201121886243216472359260648051778920219724897367529360326658172373079696779669505001548655511148056454227825440962244183664935679627060148253807210801279439466806662678134547589888457678809981965887101189779765688396924916283664284868386933776527807015484446272783033477515793628983367956306450038846701814281676256220794927192564140630633820804535339012872892556983357550860643486883147779052605038251618495564550505177057117392265950245924991448308556160583976566817421865109697400620566297118916687318996531634303979689923905615060956318501882146769615866141428908421787493874578548801345280652399475063384936692775263165729306325641950782242627150724489325665395037856144527921561271617811667718114890591553051823781628719284100441473216370156339367318414904282709584012527071266046684712220160123830641510246774491522863645142722471121995258039595785678563621581630569516549573153031368289865580151867513076116462656527605260557158687548380910647937014334550381444611795495864709162918965231881618203186515740715511071428084238064638966620875525405358141998894272534617978783765455202724568216856248958288289039003747175969494593279364304158585482672314701147851662810079319247893009668098930074292046507671893366903300146153224091343492751230373882859348387434859163113527032099718583185758967603954327887352305937729425116712793772403708836345833865398156688504311733607709455649750349542094435048962099405799146251282832114031730558992638716705051723950351314477231018556462053699429248449288272025350160778021186165453099795463782187449886847192444773011543780950619774530527915812421684081274928480788449354066009967448956914947786811023675367616301224712562853793242329944425213741637907772553693643768987782369693071248444072011460844961580135544036984778297495690855967602160464091154612668253246124482751971395850444583291657029811646663339903019709319515853532694458528334795035270059891367707134526339285472934672166954891997864187051500544629578343681729531270304171951850982303745770826702463714589123001532500773453696466298413664622745830623535563923740030223700764602097507689968985267084538229615980338889441749704265914330177400798584001707101552981912020029767214131854807709260619415861370832632165657604499749111204300754956893397916294585480227401321641518631673505962874587299124923945399284674757108230436257096165927238968580133703003360065338373087535429917990089719146803930848213211229631955349713035606368800451651775253724451418922477564235854824168812955469356081135257397427439464755153251055951605448683724558179108649749965672464352055336683214407854632607196226029296254519629108748805952446638260737620425480029299635700063056193511500734555233192686813339657415012259732877892882868922699180902761075454624219491945420230153455259527347783309437828981630818663659158986333800103584798175932763135127738009714077022082048069819040362958560824298299893030985519918402423128884083189701862997719811817017503194931893782545772081088655239285384083582001562606565255097118099678447063275920595162959008724244008562967287142547524673802569764959617284463868861406437809570537803259096574257630595948016314912865824710711255327653754459310504241298215767181043061010724998328066808620203596317378882605245015398001804325565135406484062697395667648161604451772615126608683588645434817788044693946637066097129955495842685095804305406592884082087667219451130953168715937894081191808271836519583090476351869437872247724491035079191591740274283045285873126357027012356712307259196544819452517341051916031586907164266062072608057973679919699604657955444148529433534329297667476561985339355558118978273723597034467046092249877030067587858015681810284101355096084204025531725512252498713396389672097332322302452819578454897498505119933078063740908078926759063708203961057122804264866486164828614354797039769142985205977488909617497380673943529029731449850385105513172219548774566884530712265551080166483178029142748247419211147222237665974838510816204080929797173983509155618724860413706202607868897433678922294876381905760948398145497657779475307334031479953431000151667750826309640791764090669358732396708592909318409973207200247536280642839714260086586724285271063939332146286366131709283905099364994617108435629573406918119200313051701269723600084249671979175963304652705050469832295337847323143876687805865733309052790878152714556655299806124226793015274326484399625589396838746356560437464766631670192178872514401555565950180695636934411777911185095260683783538715159550597718716673489155584176005326607281899224250497084293787272791397908359751049229790769091424297759383511464503135248455203158400749472834990706978667958131331296310990622870410024395963980361260392729476818035929555095160339033075911510640138158523028795053521562619713144052174177257663231243146472083531194528669793196765503148146586350585742050427331326911634386682449716640183213558323621554331087792691976303505615722123521889029458310772399436419379989433423632144694060576915892547253931846822838873851261926174450291434112568205193882573385108018620228403334409717458742453167003187549591994864539376634838347951587455673908251266656470524765145387599970018215195996542872455540007640888361997132588969978138651583230486144390077698943041926309045086861927937567008760832328622914660059118819036819884932379547550370272265835897261115327824468062953247101887661785026003455335673116774461065427786520350493569028792252776792985445691088400537040149295854474386192863770902005787640982787523454949983502983801824945296016976434191000250719581170095058422620656751619647619705081161742204828451742228631574885907143220014058813409809191925880158402465606838777936020646443672823298018508087710330338846225339540964958189681473707027321106065831236823080781507721371132911988697507767898603790741088327905972774175285184613114094075779186342516842440089905787422289778807430364202179594657577578394023491301853715920721592557645885738605596942069281816286662602230011349101904673355611374396655747267406742516199269273967978939426554525411561141309732932036305265550119527217236569021884070001066672649741450500957041243542197286494278823837507565393469921443314306243557503139187965914738391623685116433457203899484070732972802998134581743196977185510254558537975072438024605818061279966943238218828956961935678842095798687986265708234508510938807274329833176451793374476465377295429149233196739367355226632657305899892161051755184495396192305123985828841962435571946084032799907234079711596160642442069705211476610293522974893898340699429236780946841237247658086301422378922170771830905562694233591767158607293160429445835723408167908830197138990417530699708750243060659088859260901694818000423718617895012902573265782896466056221795262315416164908497196243932948194182237843425415939447211095897155195208194634240597375653967932183686066083155769492245008620331456663391958657544003507658749951292710307525797861396559864063988895017119891557315407699073147055037557211121023201477732246476877955881579076506151525932363979490982786163950053681356032072350757295650477636156418640361678363590378284310469445555604275894767234418858692372914006548742509820393199871282071388024423595023000460877314605170288406505749957948737267457908739159647506039492651134865318013726604807192486218612514652218255169044878615275908539894731620446526496741057605153058820174485911869037157616823451539327396468235074954143622495022199954521142429227878911871896686191958253669157629988880423996539796912535444463270461375857785731472284659020571922116319637651389314157738805460848018620916405295173014247712993751842716752521313674999492428413180944896665402527120719194007180076312380060772815949405110086178029674159678060706478846909555325595229653120306136108494853596994928914234879374043341948091715448189227140283690241976106583119118175615104531251417891071842577521234264469390764397860420245728937815098713375985429071390452543092442605427216581435132570278091325657190071143775544048865184904751767590693729640784994006544794364343339729884212449343534754134620223320255475821117804915555310412040681791688198320568660536921977901228489627102535112926882789027602814074551429941894384187572367075436676278140361480112129478715235883072032028099278153863857775342862647573920457222815930614208064989475454310879938446216898400835016401939843320377089122888861069657669670176214471642496266281355949725863778312256110186293454056706384408950476033974649040220826329822000335100480203233308598554035744132276584652490334676089281319757503333277167951638534673188591926323803923811595589108963744108410036961685657920527600132215480376737564896744768825043382226276886547679380398544188182812290422035973320177414473082365640418765728733687242570046774922287182632123679751584076305532342536354026123033739141170354019280128655507284827133509198825264511598561446110633600277497867153936978171127134409277726763836440149358413342630355134456775129018934057105761792608453870921870722221923397613119441596661952967164084418109457411475586926281158542846905264982087068202753327656331997110965951677287076664239769316010925959017033302739077062748030853932079434012023120524132680574305654736600954221892950900757582564597570242899717675853898668134047851069819375762277519381572492815961731275311970241988651651993769825821167381381306927417202373496109201023503446643372027275075559759688422547175442333440363565949600840077377266110479313925128651274831182516363354870713433900159053466544866209212227353445314717598315409902963521422931839022736244048308968503536856264324335733097896661078034452567014710763050930916338299383922935773887889222747835615602497971860808429966973717810055934678375346527757354791909152376237968528768259474296327180943474244019720025569904858607639193777367444982241896869867870812012063901441618021242518362200898175744899613038740852535534583659093852583538772541326367223618375049808986119640584249795889483608449428233585285727059695860077988379955171196473304657932034842262538457876060902711274142546298423086593910922377196138509288284095844241346006889067180694412452793229065908404250440696837601568161658455995182591210338145343785953940426002236254710285700376862068740866655863715697828071961142357260230149043818225819370713375112095247367901131336633856197441459923895844820000177955462949155398284151988204222280357167033901089752497821220401207299394409728925285131302846834794512663443666840410107193130914931218654183012711928824761253854656124664825040985902386118567293270839935524851529623118241635621921100706018109950167338416905515202011275250247822898762199176651197417557104212648321259480093445488844842792314642032628906219992632530059071437286633817581510945374089341373313546444703001195332103888961138964806665737795441330255793956692276856993025494890308137432737473711269379384862959508035673671438669819381286637113902826181945646563798659468375814660061297497836456187643367935220438915953261475998100651468987761054050464451414614146068714260398844010957431734218309211969191089052841795372378179707283491244493600106932957505210567494940460279271470044172913827641091083714211351977767567184544285613909703840161230086731536369926469203479960124429681734383297349235485824669329756363650729889594616766155732237500853929233195286645477265206972799960872593363141551090538485461797838647018817467532687683395956508335200367152340123509506707323939984455042416166330132044028249126505289307077842164950228840843144789732039874586403314578067014932848262192341442647429947429752308250727505244284828789095172689739759095997412376573754639761492012624445033882183893535306457967246603769427304022374889024830106103567617752882989571086738389200533848257489241095037604910375357618471072477637013455569759125312534219632821250485386884275354661724567663952077866442404973533382634095699021132978973056693707937672192923795883001732200024896976063158827555084553412805803396702487925396054588643301838528821696453632327635881554836518625812666239290974728546417887050955028344320282231746369073689818233926566889418322203728156813090169392580945486551541129499429414383006122459424192101831884434721972972188713072424119781138362723378597963094059606008178251118647458639164194358669918264084121577999992014633845477719025420643812841694288032107469918493903027204725641331783628547872708066162508063129057851843994295888023448331040083174829687537777559086106746622673063876297977079700536910725625027462174691610342748356753145052824763370793979939819532556799100416138216693534030567028575142846856884643483209994373880472982567359884538706595149416602609550460377867172886777273907491441285376889575021000614627031793411098432970870215660840031302994832333755012725588543697076642595732877591644182472796993591332878068809063345313004372290061561020484498103176915209113830595134763849724807541153647527040998169716397805310097344265306608582541539975171229283451250709199361118196559988715146250395210671910751198795287494201120746160048579847052006617637689838567509729210946757369577350579730958311082823534855995753484234904213123160591641480784508286832090438534147560551296133943794175681041929610663656194988043359629816435637625396960212001842512811198739347893315551440142446992004819258063134660963238699460359227096872881139894328923834611483463757767526445701673131346350477193970294308642545807865484164444427869167717468436424305925568189157504339677826294001914025659190559542473252322747504922934066365657295404334747354388623177732812696214790388267308913833687658558313251160565708631081440104770858606518862663914629388103827989954518615525046234673471986389335471894333627967863018552759422376940442414958244144832013904550522237457715378726833914910698905250433022836834274486673434357141970536180918102946828572838200051048432912577382798573309829989802260250290874400019636671723164734237187332134789830143042415240842419735673902801196275392307930452599021358911019487360321169309028253311386376400504032588369603771464665404160732595836274159146099296173304340043540665329926390779498092179796838680689915377422284724680621905609597692907812344214185886955300566048426470782394993239457233609314440420258843802336576613566364504848721858240227846827934024742925385156453365639738715765844180247617193452113876288061915744203367671383296540283578652188716539453086652214096373611319878263902084508587428201433526182384985648139361456984052524421570314572488438527574756261559411352087857681229389735135219248547602531660321618199465618102652839650088786984306529074757342111325579997677302335538750104371596753502826826656960242869979065290163412949415915078162238582716603075388828482051629482162243081152473207235816022845461030498570117035982989061909995279873084862764520403826266754628451324755267190777110823689385470187825279932795480806593049012555282167461812149649702540503908199972799501272334619841380741866997059951799834230106604897980740084734855933756386367961613968334664039695274350272716103684795599271389023187314050323775674075451874131231142496254446022042633335826884353286254362882477966042655383375132374675643675679859577814833049179566949154172149680272821863992435086937330053444003799336934711515833169628088072992808214506274967019319655885789366631052180335532129955505466631567145675406422248073960148595460201142008701547294266981584958780353443445029240454253766026092144225842292518293385032922727849969782031219155043097102059980381490629735567154951916012452232741303388272849007564118545598790211268034220978669842225935650494992312568431293195764304338387211172110101430565054162840888313236990001306522821433432900826401426174990937355596620158982709834852228106626306723488730671128760582531681793450694279474213733932802493436254444715402283463677439456212531793059647349702121765335572416416651448719693375777122356095939846900358750313710076271765115838706991622892075287254899923575917895962524821792955144350164199532752355473207183480848187437891356360468066164919953076657392974754780874812962210166075019951892032485547455257811974532290980841235139025749872081489448114928572000142225261404505447398041715120323669615087538238225517602944337364448564517864045879906652284197451667672675576109917838943232034873532473996472947435976542347065234307215070969768701788548119210439970892003583026931256392914849153006776762704247054233460855931086512775772665746307284679620933422642749334014692612576781565850557016722279945366994249282498475054962133191175061563618823072431178633039724596234669516148650246951607277250046165903138719449989743706081356428468164731865651423601173387746812550349536601828187565006979687708019640512952476803643588525923310987151957947434588087583577158073633832589485228616365767772973504510764762400304459780787454337940097968682450882127020149639635264802313873343584651027071283086408412923182221243442526760098866219940479929181142152857082757665559335295529126874365011876673286974928962690201821199286611029034915816931065962599857727357210834163283166237239982051094155433569368822340456951778805508448448431000216533353430793854437771596914997581687496844864088983514677865691440432907420195218108979463807858585483279953898903589805800983842292697681187383400101413396035107051484125252287777975423600560704936178859039919590236059581546091307135240367782878799188895311575636300244244843920199105525327045809089493165681312644428170547393143314137501505434908074003949294526194952840339314241341618788233273816949215728529887285856300221966702216742398387522178242357190232644020169200726882622712944231510744242773264779062403612699226422922884446595351172571130494584157948992688122056081870541247858474001582395858144702099551974676115853054591109900681059293579501259347576559127525041876837016903708276166539312269254852476146028104526690968338197742177421550939964990389635393088031798014417156913443701577281276966231755970701732593964709618273383547029636604432543124554383796762545908966320929757021725484599780989536315541988344979111971620413493665857140217592250275873186307373835613878028247992500371932681261548665042980269688534400017164022566608001762126255653445333014726605104527074168213771110654399195854931768420342227808445886262529026559806432557204456143626975479616610010642848508813515562721282020157855409935645513607842312127810888102861219823856703778557299905803769318642562970483204808974115565070675808837073292174855209834854682547305671581952579808824621787782450907945061941446691106272456141900784937645185194971736462937608244699981105608508086901730790670773116356878907515121657672967070526111436366364487156703654940467923296771887785317660147072332089945893705918118822086326225798592236644398452401986296584003921851897963207896462488117270560421258721905425815475814842130677240608510784923754329869658015545279854858290164884112774430519488251921366035128976237598580040850570878623412997901939596543029469187992153964234791048024462275315295753912103375928145283594016517910408617921854720652091238814243438739308476427571884627828616071447578524842478976269126606013800206803716411204951500396350035988242485042787330931461187691457814488922221476486318479658475542028675694237679361405167642080599876192001181240454315205408555779095849197153053197850810132114518807528959208629261647530790215380038210713458634636401041214359030606419226727134562231948433664938329919749317423991205449497301070616639574421603707010987257863954641487010997115092301758696099991686795122860677619681988442208707129375151784423358235308443292479621456881292703825356782751267796973142414553689384672706646027392638866545729815675093581325397895378058881451136384878069602694495794233097552844818534258009739596682096068813119942817930590049865128650261237506534183328559883262022568089428414872768946822717030780984729156119247928059520433692577438447362650808230649910218523357980108425527935179146758335586410143334140727020847065625596068636469819941841068282596039435937540533437697488099898679765128430576272217804737539327097627968369091571677914895693934853654961557855873734717481148436428917324639368810325356502000312780581511520990439979505257791781333422120546832891479149416363183681304506475307991872278737537492534123394419574353773523902646448165624340092369622674025714097458845107612101618073873330086241352947186931092784068521041576463222898480290143591313227628790807728350057968440362674553552270876839873230001665399637796238777563683212912006709662372203964922237753042801046580459268271607503939900012415623562369593686866946518552063661865632859592994946144993626626844153576241739885705778695339147162660109450873344105465313002556449750282723227060207887707672547243710285051835936537342551807868961209489862298640746736257748939564053087562563008461471381456068992331885409423559534922819063533338377088645306082932972894267978970220719575710485237660054656642081658582244904352731310443969087737863317917454127993789424329174327230934804125314737835386706496600389405642118335068009454844403512517673075871048478265794753290918664589686528322773527311722860100079967964960441192560905069519036600276309751996676938540875709637105161277204940560059123082855175632063647928421925406967424966903812631856053176882683371712121022840254412921794203120895276111802943869286309816849081054924794475241446813066173939982185313005619352656815837804271158268791858206105714501521156071061086482908797767427714245104833688513813624151012906439102062349113032209933649131937436324510744022019545734163038223952148326654431145992830585761441290565448087539797756839342564525582322618441807909409224696205476113594273449890440064619969868640599494847052404760777387131693575908614435313601261087407441762385253279584202347216715390481526051612684057463566587477856567950744947995421555691826558275493661355117490471891161832520912541746366156203939865556122407373076196460184140245544057268497149717165677891791270232250349576240000689274981025896079936510241332555933227195300631790899247454218666762062886599589674234263258790411896199011492500691214821384303740227766473799093811902028694558773462923774053380477461839686988604643870733544510120512057994904973473237980213824903063027607396224278044823824896272457622094529347682929626507416822067136100820297981190993309642406152943867895456295699439181690907382821996171133198692762157388911419978017703780069210815476333793346681320850750615389733636858938555456856633117706103123590153006866723968471347290070251166962218710631373262970601211404532568082807988479929780755841101534972080140587365671971438554053166454931547844030431760199909722886740967102453517788869838932209766789943007062016410401219032845983350618156534566345350374794590574355686152631189929187808011299795545515243260096610760423734205778918917426240252102130451093235581459955944855463756666527282630941458969356231975607083781425064563159311246781009827246067706198967186722416145374272812564749284031532466991702680429814709964566380588328129295084019940075095615211065634046650282731601166549128913136955762422582311819202542735890923098897142598253883251064448622711347711845619175887875006274391258130524070631363515382457038028169729344130217864414908929434944447080690625832430632972442149167696109717407197057520381577877884470615805681774474686786428967354794477098839122736728279265778940944338880460805333524711904628320092351018600179826584978859580016684253945394331855482394308827417256780625479397220126459087839707798133988419465642588742081042659062344683580626822916036410248731784472200266296542248623357574772491497687564863192006221889622316799937151530613885058335143204819778267913585732718725122722457153039151514087153172856981847318854042208882154074898879878023987437270459470325405246976948030147233753096045463630890477954614701003054539322439567211976086766101374032309487279135557308061760333712890264662650126786628701240633315746699728416126976238108766083180594748997323391841150266210396627644600467756479877586048175053551973798475648817570023969592718682343229545795889214124179085325667766541227391149958381247104527961906391634399865033348805974047102810601362205384047115872597829021655652584162831112600280629754294287090051454697715207828317346842256358393876590571853471525928306072230307683616357785256960126744149589420445123807840562372992900357872266098674148250288947524714462681903906467475256513982496588575305376765970426096314052776706002868157831152933268555666776743270315992840574063607758973571742545972806490146633861269980325512445700505622913595039339234053219580138369478578046314785950785874344679894298744814136251836017052610962584674635269216572306221544506754885744354502482576266768397021564452655880982528745979296925319712317475423519509566645256190119348249094237826317257195756798406367885377543877783815313834796458807830860913195481803567863720906800156491531084039122634817535064720259258122016899975717482354076726321715939808808288415685386468841701051896740638902664458437979641087104746632415270289206098480624098804708644952404520658128642838255513349813960271498827981300375843619887617320731643659167076246876143793283513957464312024434208084813922718617243078526359182290428595143599919107202574394771106376212139954733273396020581693281281587360545634770920702582622002430479698518553258819688643339630258069377655599871390548237645274618389028172813044031488368285644712782703118968840689550030871703608040437121074106570262119071677817691880867359048846881423079995664696107505349839638679693148956707377466481629324065549152718185385712176382563439801447030489565850493449049075459620519302906180222342314983453043582556496635524268139627825202474489753999570297070426239653571353628737898322301663518917831619923435811813775045741567326286173524785503669901215047020764808938024419056247781598591550926787874832172207640017017158800444898374090886290783233600953942414251171621620822328721762278520283152262674866750640166385568681515650384097898834849480878745531806429595350130125307681347569276831645124082149457476618874260321415735451485879379322467750080693941809831353095375622910879144591113935130118078087643838893139122529952615443248159082908491925431948722529822606114645115183925679680531596417165491905634233980831094163632871263719587479078345638787348621491135822393998055354655232963149486497364183664232193451866544139075046824128801151082277315790836533185035324080238275668061632247763914897318337273884367735010037628098568140933581943784799488585111202363610010054701379326149532242336123353889733963048628145622689924250465338168476089017517364063091630113199605901289269098388309447149627092259700158867690117863866523460427031593584987438296087283365311569300237654750956774102150319256105983215030203029752567016614716282088232479541078418831272179150890094121744217269502112664028886846478320511865315058831507694410401774707913740651965746931947422101400247785856868742896510240305117038443929428461443064646098659064007408629403852767635883140094864257594352682968961403611195642931033437060175794465622875773606995078195170499565346558431992230509302223249196935288043905835121791094970096219094696686021404491493774795935058135103454740535244799347237038144018538636376748077143061168435854016942099932834479708554036891943986635454958090809665836500088100941129940548428554072241905884749375049842320134793176547403799520956578506826238235868685887339419884044908519118127037789429539240725338547462963716014315783405665233898085152335420103724109809379124816385663847062485121697749458856446961823719190856062275726401845588905933650759926548574961430332040135750902219728421350949998654772608220308261715896122094754233691427039169331067042399901436102946859103982139587565184121049055542548807119181162786222724422884507540215684837770180757325961761638500495048994425702038094525939283536915540500143119398809348149350739083134636821083546378730855863916356244481616991105532338508703897475108014011312287697859917865018250760830391326523410670386323605315543291639090230530141837265243944237211340852779193232464369533538661326858006292127486249840476911804153769442850536957878592488621584962196089603443090461950152802831827579790514551849160812815145614461143650699194933548673207764817550950613542036453692746431368325247445229093914549913882542571705027525195866729993733520870943347641054377204993842718538403273044137559971026442897912877363198867026662378232077471981985476213091394794949463900834447494696610321044996284791844412550227389561782778913163677271588347816993977257853989655838761829262577305246777172531728278028374124451469449717035478712606185432289389261776764485023153688137728952210305223502723831623757091441086116565257815006334979001370380607013033492121828885069798125555039916116184706226800156727471116202866503904911503809738975927056232998517212425787864111960931437767975290833734687345164831627779552617601445358102486713237572963847904040843363481328437686141837948162103800364794857016314473312037887429160549907532246967053592996193556243930367275143109395643047452383376646355819184931888222723474439236268371681467495755286692264655754630643584814964535235871779164670253058219857382727271151456531658946314263144040057674759301909058526760901323444813318731391048822263143889491401264247741934149279300557398289307728118447297327847735055129557652717688729074532905940995078289984707506854404658580748501335317989183064068693297898341547485947489132678409138184838259204506995015777322105497327597890028410061254246698707255377488849040465967453632446472064797862565094574738461758786167354256688032455095265610182293356250680251849128531999695322205427016000844651701637415869986196821036021917155049236793110130176820516898625832360418414419651956455783093006001635495685460638539493901296321190651453308945655774277325895411156953671359632683879458962495789184288260300305908714877639012864570946497701006544214903400666503520465505694258924758712005498133059389289155995975577799700162781402576181629739080455866756645442577380009034358832203586401254671464269705127906763418258110530333740873799551325480431106564984028809195414615381919964731581681375402374575184526253477446916353461570235913982377611366698323917229453540713265334015887771633172397090692350155217196607863665275056005341583924786725135092744976373248854267209529397345157732215284632477674911605215606620465585450705665651973595896090618763910177388336480511023989368690973669109395826617493491947978468648611987472604220161976728668883548812534259948526191639042904952563571719993137981425675249551572205199788059102173899103556727480139024662464087466496918879986294697864090957688047581285470185682173488054011770807276831085192289768685313923003083428755162755846688473958008068831872171815189234787139402884246623795584254302653870055918183740581005219429522160720864133178678751166556641722912510095346878233825322007039920797854728316366361775861506808140103630221373661322042321015691450014844934825296818680226341405449398109539123908492683313544463862215871668530525927955638122295890645408375449760313500791470012480077228966065775653668618133056464599657192991808825380707082290298376846494256147325687887142007942910720254980002852032148403075143134448988203171919739211232046031695024379599176000942501646621110968367542599468612615250738990148940850199145328244896740886984018430175176631945846979468599189750975852584676012947028790520209513880080358336717271627010586523529893225546868453984402631464562359649007580847277925985138223140347871006844067638816705764395447127471527375573517820319147010554034867094029414382516449464334085030927918841000574258446185477652095113172615806184028722113963629635555479840193767512036296410152600290232621156295959306424931726381006347860377808708641714558181800792511562291742217842755062562220828975489222076451341030212301441080727087474741350818954180807178186410427683273454686860449652250564267440657433958390521067533593329354832452329607033191147614324696660602101939834060661739103786533423287516181255877775000861867019805158854360764862281049738777693641099874944444818307789801804524904987454091766429029661446673181468244783942164081999102026252275012405473454140297381390398301975604488652265978952324516918605725796362324958404736513863145270197102235205444460153942555591723814544415089620185175274949581169957132153633608242527714594862054503550171723605617912457138110317228746149875250145042859473665055940155077626280834400520536456664767557122088647493691864365620687155855863543545795190066990536057301492469025013356757039334956334703854621769970877009553115408763847972944011238386481885487581170253300379039209273476483137257744378819286223186809572967437053267110057232965673115291632793315533878246142063064041346208348025680749473009137848347671246275846583376949176405189921088554153645175856686190057535843097400581932888413789910556298102931209149910986492810618539496360280608087045757829248210386698627479727675244484341654633655381677507184784476120509747842942611117534104390797006749548257916884834593228685948119333335125907800300238483138636519446591191605311838988666549934748154916871219273121881651440950413817140578552083269044359260051875653056969802928965508632367423757719241244137445674555421378922557924346182762874315693552485856658723151577536966234844111533891585981686364338547079095308707228408192404564203230096047989837724792109074768507204601454576521736558060448377604903771474407562948412575774189324854335566139615049047037919859529617909433712415435284051176398277308854102649094358042648403335546101897144654004599573218135681406777227691318436852056015517727377354450645409534883140404208916597822071008222722230133959166126961467158005740478746140723798187113157401290844329776288826727599952806247921901022192693790406150991902674038110439856094471025207908714698029472115566489602772820738296950770666848090515379277889588667997008518963998918579553983527873001914638661684153759988170129167122247024484598888125816791551942330392284478210422833977774746714946840995080662494677983400705620174468015624874774482649262456803168389912444913951495178937468357463627363228470748053587753216183136390346930432301400201983286748903456396312279734451144109699679420588081975671107343556065747087072792713823225573027586638605396780114246288055516112417682900813230020341196081900494008867884870623685501752694266805846931450811150092480006225604023418027619932001185705946944264178398846932233293527183822760624779307187688799188950181849818514358926285385757332609317004783425502914566807214957182597574902386567579369818258774637192465823066725797803445980826071994633629646588276327765372124080110445653222595596366524942315055066566995375664642066197198561865561683848790398475614287324744418334932894100748252839374459887859818747920719325046623771630628948268852925043445203975496832992857333348640662139568383862800237073831342809916886253481202754379845675190478270358990054676089866232332756459356545954052190389148508001252424676362551278402448602664463248036551028462324755133156509138936100756371343584227869947427604009204569261948709564371180855842655850755796301004902264879410136559227872669120593730113883731586497698914300099246178305064948297836347430743951684834271984813979868632060850263778898874076117350229238243303589074972839580442271878641813165317747286024492158632739409082264516647789975110919368989867426411612556016108286973934463868110319172194044349088388440621685957431255031352881602987960891233040407804914178786850871245780915980671738416003492080857197029809456585909742851909857274770411128700704036219524990882380504579120431436994332836519814168373939336631094093288708853099424390987636628578389196235924664228961409327435922242498737396669235661530747157723608132772722350449622316429130650971340140929627887176573389036277778003827223852774658130231554676551022287366975047284703537952719478290970388031336858500741773923147605664463994985948993632269464663698677025399922293905706288937399976828551960465162034398428965102830235740726832295938619954063158546200457699368409297376362147468345712588599415626741376175108980296603293156418042024952853229265500434555834977660518417874452810682472382620057437134078194276501792315315484675435466365050818423907222296597825988233982495007544808679651362547463202817679778232866035366142036223270671753878661172258322359803327635177153093671564397586771862863830308167662033518409839919035504138617607071766884022243991157454057661367570983550248693922590131852285017939574320247201044251232990274701020292230724865883787772451221302518176261464780286026058472628259874439451083730985358131570952521664856250080376852380702747189098990014429984959246783587100265485110051985918313265505134165003925989106466711856956524626996678774744457653098961927546184306460765764138241374716906972205622625589659037526079049859353649460713949017842323516245517176391562646089471577399960641671272373155180276214763276665114567892343351028028284593301178075386873315669205928744311181639636043600878497050606482610236369716546399068664772052011953390545599266007792127143048776471370762279868635855923395222818401402729314992986357975366437475532778667632118380346324847599284595810686255154377369509882974890712551771855199926443377060165983479292938526598714313212692206819824072542033390970104891614683171119324319801400767615729746317379196210106902317299451644884039174677131194930577596284302026436709556205835566623400286268485313380762781257402182256720935565918296241923399765521635232942092131962315316526841074383506499514146401528734595960788164164622821898702671181225244315434579532806479867480944004961608032544889502722294406498253472917693807212421923659220410740120494822935956477136200706453881013103550460042336629425949744082959824818415213077925352661198074750227004769049444905333925540166462784240804747963713260045712108495824440349755878480846842940628609540807790355473877293142198564396544697790009915396769676837769149979143996822995141375849933230801049294808248998949330672724973446718635470477142409173804163629210147737735888444174611135762654086333636540738076455075938553405115443813555955907703602149521208284246316579740807348278064121936694901882379323512617445088539715391276369043122293438415696003843743705257386510298327949242006188985353995396927450631625830055410393746050013933939694537278460727840775720716891128373908715689755522344889722087203333909481796075637002975726747210831365206096385108344002791992979995809809534700775719848771777846626711619624188778295955455404196468092134051312622206442738958835236365892281729335487299168673331405477641079349898998222431524351598390054889873507296199771731004452542362699342551805465668311982725239138579441915091725602036826348331923022602466377373335583967245013004609734153256156320533351796724790697827941015032824876811523988055699792551771318559403839845612569698242173354365877918885033150196444717417476063351597446138127517896940037354111405912652143610022190414439020263504663793047634470319220362332521021573561248240229789686245837840191774850159856272604802076290083323875202149286826224685255184547939977113275049511174393377514466731184018920459724330355344735367420214099937402955766414664383376826415218311777692299036043359393424529904885379062364816969606742436890265511619288298532713470293081137637160007282271651472489221745651278855155634994908220594975870324615670736935893304681802336511675915712197533975765581699254410595109000000401355233570215388743463954960334544381825024264813051434883161971512709695090109508152013974994628190773160510701393139569771400412964596012058042843652997632320066368876394905293579505853743287683135537678501214099153479350817826303635295402474380215654203771355117551887709994357352813885081098826526398979603327610388632485828219329998527296455138148815247510863709925699506601961710975214493874504550521087776642906058058554298695399935758036410293720611302413298966736626656536932999815277396598785668401866658292788302342190093359571849117674661936847012106342174374157008683977066553510939390120051190107987626836039331539942780786285752721446829443393169165234753840317460554055733442099493893261069858370628396330749605099837007112845983108899925451438535336589375743410621256281006581299098576453308294329935388470884538333106800341758801335296256757906620362264126377220561512336393461549525642623509815797344252372353168169738826667707977395392794128373002468424561223504635603361249012172770770885264763959301018450343776501700961878317430076812178475128551962241040318517838553465199668862321078217216448178329356351497222806632435950694471211314862463446721741521800109700525985493372708265190971383948516013041873737918600437297934879867374018971937135906795671907697767790422995222218812619229471498599461141697294586643024602390370776844678622922201439528032520080013676402503527436581730965591414791438986879757501084603384408118325940460623043403583165748208205502271901130971296320525340025058325138810687458530520325060175417611762974107759272392392830531578327867233227722009234907128059982191147892213303460287741384747722732093647356264144756927739738413792400668970998297627922088426594314458896295541436563178380115516151434381095753616290415895431009077091839175900256835936737795187735672104995819891628600729377867451281128889021290184950541350670318919772759656045698614645576671714639128213697232871370227159772753328793487526762955672908740383085126721055105498186994333122009829941805994650913889753626878265386441434807852789370972905527550397563401797345801801809260564882999946277150272242698622880290295663699834119361394958151866927365201325553931957067015263967645439868889561703836110153254631588390699135124049279105781277545694138139610343001677582091731465822326860637317258295363904535517859452660065068029651836308386691902773180349540325292076177795053112907287309453863925971778258371751751764979417697566165859782263109135361041860649962338008183422904142748901755432446713805334221033945290168095063553409630731934004119813448750208952052830176605200073895088325506579451147276357625915273361898936428322637123665124765207630202213981374675853213236000715181196084986569032768302025606993863864267767347295603142237175960684592949533214426962699983217352291059359965484320127077001096561323323832988005631816097297368760005387865975601627241407935496318080945549546404290462518577920232444059765496655347522624538959402321349270875523463159862047950918496150877638269527121825313239513669767356826777060530381472312010392095271284731168832638654568725542292032846515986702223518315230910325283239964479861592913482544087848243292361217707494557331394645499251670511373677568582549053182176017597141875344548880673163390407480636829670864665596446330269046372983356906294706704551729741402709142409504453706774534300687328452892831204728685151789671604057386524158048819003147594912914147641174851991716269590155042707200361109032268938226779739458719730087622130822533021730674856419408690960578186360332834718760020286069432581549494994558841739623323032297863672890697234554731854109553207201959164176069264467639218595425360246095254798816456617365172912223144084005987247055483635094173860124045306897829508121715609040993863208949814102097829488730864002702771046465622645806767232347763257397484276865518706840188787274175375076958472102547932745816452940864515879946605319856708529747765553071563467391974223562695614753327355486387154192345425222726975353056939223275648133448507830978332011902867249945702665091717328321579105727008746658175271116721329660243838744816604147889147688910351208458358240568613932827606272709228781181690028836537445283538790716465904830331597484319193074883258751671371528745078541929113552252388558538512667559374664931614902827214820511039906631244517621025682160230820427702441843569504478484720136572674236073184891071937223487429846913500566317211304792164409942790598322024095682213580933024553110076648520164892751556503505303926884486033495938343031616006775902651379016827348149401191004092389292910088045276951932521216414421688378862631982241647226061192615753168245047456861027571138103711364272910576843410990046581870115732794113980228880435086037829405627000436997362591185002073564431210531888048396657816183691308801373159308596494897119077299235524869366132058211540645881902510535219638890486817219468730220905789096510846756460810750183659712067111455948567533678905016946533201832414733823955089419667112840669562520840811987797934670369725906068637614339270292663237199998127474506232270061256044389779974660839585874355659958180527667954289108591294061927259717514501067432154886308256869180008870871469582492042175984255656783579051887020958992256489986517644426588248360466088592775582524907006132715077754900477670850371127944023540407072848407736954520595164504868372590052598891711307227646073140656411058064787743467382743479307147573394186164746495217183715084791888705322024397572946936328843558256998533536298428144964156312549594934496898997564986966858505378003550938484260331899039648189192726803839882030212216482212080680488048127308022196646728329740616669946849331882430898558716637838543513674299694536912965288977224320774835376402752892123900626622708486441764933369093357082616694823608172567248703405948514996254644623607011686843640459718879312990927279679503748254345956702997755348036419151094220778733794498286461874635431223632803641423645217909238182987715685434408988637500458080730766392365394204587874434308487981196763573611080243836166886281333035902555538323091118128782553429808537029666122465568981010287341684993202020355054614160763202498491027273713632251857259540989701356538825540312838133695333998832264347519321492563986886372522545884231541164573212859638949730804267201967224389996445370377082560379052252504763820081006718234441903020171715240907551072888353725230757525288277971295267803084507254883673023890558035514686552136455273520948977227905558070856622122295890803021181799253028799467742562563000452090336324488516457066698746131067423531447693570367118557657835496309126332483889371761739209312993049038440255383097597554612039627258120063476216449180068564189055222120019339782229571799679409299796627906520490905489094930694515602340896346384909867141554262203181537791660320848685477997425527953328362157580241744341335530919463827618937179503888512537198064505804476507159731719697572471028994313676231249625476386640529990528120851816769725784131334726520561150235665605484040411662611317981517091144112610316314630449190673632450097860439317214132314646590456239003143953686191198501016314119257914984339274730332266738301014874064389584852424436947014886914631885974852839488828075993478469008273707330716595964598896781824786426278195072154904410098396581284932356465041693864438433835205098329195941634027057571009520811646383551737602565425548635273970121260953262097446468025663721380378425869740340704093177455590569554735077038595367559119849605154762356618875477990753467520955486770697422097336129982207722516497024254043560602514441539795189410581643180401295794204302098336901307267424747843227046635407415888589917157743446039154680814001722528037206339287524191931735418621318801769286299115506972377452935919875072996092463958209089225880157910185565409058128461291670252014997614956658176159354902193949887147195032734792375780883199676677725852155605055680046417220509344242924560014784812575257776160000622000643992267589220268967224858838708128346396113793245741375047046775732107519080199670992427476201641935462428636433599490487742402384134727780997456687507641213468833969837134329315808019611794303501485927733954451702353278840049518251121110876225924393328094605430518506667133898660842817374016067393358302845335250444827777787528832129407250857978468248867665795204327213469043405028123405739540059126087811439118639709581163940605993445826857044583120238691761902217495903137457374094886755797242524575750466564578297170414205692263157604902660291889998783308544572122086086205590234113141098306756685840166779193327662277099436207461493789489819402204954659808375109394571359091670650846091729525265287950866635653599007149065353435883556111625280649000465947443217658195496033388926756388971545302125296198041049886103992295426002236401563588065747397340396816458610941697530501132953984858414275557194900164891687581298994941355315400845092939787750955178064474251973014433963285117306221758130885877960505261006538143595062107920949637433467263471820265929722848464720181826142318418924502736953350155930371835093214399194122120834117894559508604629513132182398362103689917357068449219536920222531021399676584065070998685794168835224088107700354861984411267255575323662778625858058369204279932137808317565919713644359557652242261790453028547239456857511264418677450962114318377990307708966685443213612382579544607921532577737650517191537701808590746422168566952871123906901505307157864447311422849695168002239376901316786952382033382389379197481004562356646271937158616267756668411900122361862744233277442753437541555978590626657069465948998336705764477824041167157913332166497653828769494563428216748565787028170680632952044656943711072998535858366677668210165434106655961467116292562814714761933227424477951548436404716057681985616562489236661293817129754845983186509191960834206050102109251777707587578449817327328396772575573802889583074576189880549534288288297027277087946331284849445930304444902490266063543595743779992904884403329601935446481755989677172205411976695499643792053131502195806331014748987195140659032786840889753733692278046253357542232990348461718158476199865668023812799317325301224225711020884327585174695242371308564012852284679548426886528983132709836804910071386192617521197704500507466445376425722409171994240544917706377932657085686972465095941574496511682931251226928715252948006225205570682197595253839017170474985952974249423410967243953211515562536480745648808565591402354389859968135052201360208170297000644571961136997854224623371660669139554126521745967633301014321368608822496888331769081647040903944773452724082407599314046857505060772245445985927156780872349620957215011807323876774957760948246283745180107341959206445020560562418952492290188033848468318200489956695538480575531851368137472212411267379397176655138677105805346028566209492500665935226449139896997556445653067965966166744360892205994590287365753350977900361131950819402781737952738682830185798502891328279023239245617824834924547636518374483569858758444444487755090582644333752043116758598823591584314247436668917781613475751486507094614289137462086710384923464937918036338540936241004604684285389783867747539248939506582094722771660256670516559970523399350333729037402954993294179893786775500890159648708954560528284167081238440382444264789280401005009212312852669360083394833646369471312082691071959182651051812025316029479330934693322746752372840127873991421454329887863910419323295881215681259996246673423177045905569662578802668484834687453049664723087910152553566908893020953656527053042213158303312168132777820522333461408537411815414643338816217948100889864824720881540119033703153300555923961567216976642621487818117111591611236221994233968863959909469047335723339188705976614783398526067752247515048891384264531312051217309010586417665344283720160814910177824498653562296082080337923466879963651515301618712326045468408478839970108916764335860275043694668064065508486303600888761300486899534634178319225242006409269312598417852806841904026132498272000029452815734919667463720151169201580669915623372864518233984917127370696072765972015644049309907681948235905012553829371350839576235748614884409393673084292387076809583654685047382143355051133666115404098522013737555836920146822133700290454582124291075725641506151389720137393826103356362800764583245420652764456214009414261818109225489230271026888691244659861880797675829700320659774626610910592051190814672870118692702310530548168902440676147522440149395711182556567293180252934035544485583802229282702164692012721380892843153995227403035504233355962570791536125035772591037899351776522912017771757068354026641416520397016639134006878064593322749341690519963914603341061900396672490407404760006327881316278399406366313647369951255290985061310016294952905829373941453070675191631404431566477947352192992991468886382442503060138022667363994062425700517516059517503741986714054510087733915432310367799687866214296723364876310444486185714442550474151979627937380924598575771328427438168463218565807196881057334715352424739245190272714212278911290603641410013147151562035020132781052745755936133872200996471283318566925814872580196566124290521854375088782039162310254474127532424474505604958708110096595148061363543394679197375623237226133202127789307891990674636156582557530907992348651785905434700277840345813306789127179233868269672823048592511039056875792433375805627888434279877223116537456769904820388778353255865607727948289295896616086493475001597703777161604124984688702032266396977767267680497513620200351517594823562423891266896788464482931049377517796507039698780485065620602735359445105060207442232859865486882360648592095628279741738120711059073040780540033941040974813847326270845861489592610905740797351803702569117546743466757254989967077233928646079092778256027714674155443482814292223695806914265870625444378120748329224743396786448202032817593547211221981447243641437298353833149663477176765426148708051980529285757851887595797905101430079290774171823522843725646176778663157924086329060351775221900549610366753576087756387829864293791364922566888379747733132697899542701531157608151552332703708076111944488878732891191108813264160544995082286432497752866781812995817333934715949055882584211873452846853202718802096806596017112070736894976631112583016437983958069880191960720657764768458799944202599535965351087786050680549118467974433133975827445503074143300678632191560374523601844881270806477319604040975437148435905731271887949737932112564283562628068589469787220437798780279878822812979553671175114397071847764525304529335774240866378618560361527897677043536337603672890733849201322565709885133045104277873641681393819199765491142328387576536191861215133623570278091175279018479804468569727701579430063745150863022835220677594757716112929617073142751432878101322349166679125787539230922519360557821905925768908898158069749903804438659605279559439725140758269193614424023830702821362289684203508544609573111936099495554598370093344754139807412880033730745698079813122190762728260953934300065900145513577084108030597909580139192793016905599371504031040058113990404591181340487373484147643118871859647592749946907809516491005421056303954881304793635158021780297818954632115845955016518305198069711898387996740182197623259890971177789540035236940169736243793201808092367266434644735395979524531810399622223108947899228495970336178423136286915730987055474487900257564181019394210851363243297999223691010308795559691383376242837961211153271798104343014572302057665545347715634965458437337334583251286317598279993790380060067790534795823489993507459208714212034081657687852531338330621363391653499301218531180233771526345454156183882288210042266825579089060971382165560738165379496775690959014715331100087325033033631418804663924601500302166083728678439775108602576280696388683953817639095999329223453490431496492323630852820509983326537121203243445816049957279951021445203394534072923919264781763416199907314695828248861771803255081673105995689492996913964010934097463456067554343441638862964166394500911107006066566459774592036095471668494346031085407481954785058816767535106675382397055231379212054526826297916262390714343335338969082573057061920068202039862165448838621533421256834034111660678343963971584306196434626584324822038227429377061422761444111487426939482280079810042266427050709043395215222172594419253884915180695394066926364349207332691619734915581843587394695138587867906698362014194881484610383055886146513906524462492977082884340559665923078000696796331053971569537377516554988535385081490418817671204183527349836883394345218491559572364602851887902544529169608599366701478246830570713769066777592790934755772786523768076911165822643502610034002517319094295019319813424933469865449649405489830869216301045203871623294254553816728593124037359105031802718056839806399644312372438168464423132938132291727448171488077413657327746746049025907281802866938158399487033803704857950621459911357402650557720781147809250354043950943291448270381266566655035836443553017884341984400893650681845844995768288567518507055366405072841915038710685650627548217849300500881237393845251653722990056458752312825365611517873623454065791517704326673982228718127716991039636838897047358056286992364733267180510505298866073773016417975159086762341373759427724540546955012509514670623604379686178101920091094505316503758806164197523889610033963462208773947075196274852762991263968600728825285318313566812353572261905909112349589221428349260326511883120592233736645819081465262268034218000530360263439367530111567739540130199358181030013377682953125810303261324530135953071385207903982539166544247940152390815232366083084252659151462036214544520607441632942615038195723959299921861594202480268221310456697745643411552349118362884175897561708465257498046843511527921272731423387748124768010364923049383319066995115184576674722703892794777807267564512981871414709052062123020565681295436906863705297102452117190823826193821748895422394525556851895122416201141029281064902615167979296755722273960482823285255417452022581339722938029392631437132200675408752751545299221686680060836912177880014607112329163645267933260572723197370854984985931689875007038158417498472850372778982161822594786955228399161700224801784592028942007952159082134986887969573002858337632348826747583354863396901153148165995414817894501082634862463355187822124505701293675194063389716538832045995562004364445524260373281892951520999491723539077547235171097771330435738800156443998827000934324436617989576356688252451220414135534398279631911843373145742396654595549493292444815065524939126295657983375091599099288518857089456571700733524892049503216227733300970403658663043150107378926186519325964762496323379968193502083807036465312486993575834199305495496250005853606384966061894499149248445840906817356190264420371389660919143198265395428171227791905985576488227520778119293713464781708559022220071400418310694031533812780005518996806509996347376612761974712162082186309099316564513712293065443685250473103218276539094796018801464646486650034588023257454574033985240037453418912236554269247305910032893549659300622359281046943899890918960937928167890889076796863906349012794377866220471609057019882946502296969005128485308387685527349957251231324912995906828104474097262710692998466003526134450110631116505243961943273876060000027081943851148257550602982731404436753489666422375867560726678163473250287796371415895563286237749222781515285875624403444490499163895769645615922023415505321732395247539505225177727865089797363952717588079107714023166086654402922531416514373962099213043058657617611629643197154931909403448099315492996873172745490862343475294842792672801695607154801434477664275211220896235706150721027678051837501973203565956477439615331709022860446619044602650807703361263874911783993525131721355585582962656892996973745463866474513264026441235521023362498150897580997270904946972402762571784840461005085707684111467426261524226402353560357222700886091513782360570625177276472620381151200686372729239816825751227449119677965401574596744667008466739882625267750789178931833940176525988022008085971551139567542099147497312955567189811547797984361262975924820218872468418410721610135707273028773158479537226356676429774008250386499174722358948799830336857913463063045455250685874238135968953101604317948452994479106719554379692140287700188947596934906003456219716940562165481818865450078613285989357038231395365966537728590615820389853621942393385469281118225112628912612090357840452453172861773946139886971493115797578695415391950391746898299194232712274150876552644515779106445360103590778785023352690993486023512192575024699547743319554741170673433018159560404892217245967894182977535953063756598980660390091023931660194723027804842151734351350209192106224464488673684670278564038565381024043858353431675095500578932559225919856442719101009974623324218339622060452481655571876046731938900734082582951795867645020360469349554533764567803507009204136535262863846222492804063639675215604902948056327483767037108539783073667892604265952761621608009668143754825357219424323589315276580652560688792748420017190855994918937376070316652696187841658449640847063042128658196077493792446965002237003585028239587295809789257936429119230514784268527291669436181358687318475836366301712653254550805059458653899681622470964509675235938847959288084966535423205974480443938812503492593326240089609836041069279583207644343149864572061753489337738397100771500288971737061771180855922377600978292487918345642914299323396928313245062861569864327925430268703304062218171633970474340521906680361911209755743651419764665789405682651618413201603688584814693048975001879121436767457239736009421536365877673776908195494197480863223410959030773098114547473725577535402396046961907821102162670464341276726274419115547233385678805187084811310148651666016168952355881078261205791518294956834798648025119900705422343709976241264696225272485180802124220801653481547012071158080488681133175106457202905973337426210150861737119060903164114013789432519692108152460392462468957305635358234705747831760092619528989579725878798846690911568471154016585500562825294662114200871796598161695261005889089912280496354622278989169392923458792170248038635958818347162785448701727678124045826984391904477660573307609457135736307767279579559155155277431908031753532196609085490103260100638738296592065291598510345948374178954363492020883931540305510995971305862364851248972841927701812528726409027682747956098025324067039772498043564790277608733855295192643764416338843428126313583888456156413912512389268050672592074922469235371390392409098135507091798814444224513398733880510417307682653216093324051272342214559763823509287159325659334987358124293500990879441766429054310560964303200386189344709701738462795941276111249640590487004046378052395588092479516425162690688547563752277105431448524997463306845105430267975452520346044378896876082754548435029818678934688378705266080470301932227667413549547984818789735833430001579409530741651905085642475575164229971700583000165937266527583214412012259896031902363640291722421336317195736926343314848718687759594894418080264688872486571242916269996622649162621572390145915374833302107535988517975307700077416775758676046768767204069282548978650069943177227655674621730555769198247552678394985578392191998259197672183060560055638902133241603663556112415088261076647614837257753939696418129025312884225598053528216464598017948221247100524509623910045885021300530373847581520067234850542090612505945891336494889297567404947011203732278771237740998613227742484850755581072869047418806087885743740034726277480862164259440056707952140980708920000243565462427253836332748840756388688010882196512435901447130282853734359113392565835262173801843056287050727106758312867508103701202994186384780160302628047611529568897656159653865734907300572555543859547675145229647753680589082689570180470714296250773906525911825740961308743182441570243964716237368962734621205876346357938901067087972385119068400745025896839256585680220049071336374967545413904893693069235495131863757201762575674918345110608662203503416594150982445989118657922285918378410845263743940401346515999203984691340827668228233177525614982498740018960729527792697539566422061232954235606667000834504224801567236054244334145654337138968875587180297809872588065259274495141615178142437802093011530142222119105098863299054923147349220465890819340793943592421888729412057918034124483151340740491195207546263612211681862252478345369470128031126351321728804925724327226808568246284190611166418120983145521565129363849182889008844453454115900140908002014657783312877288657842678698671862648840482427343655084180518577032971532127191283758711824520271020885653992140016710718692507302776303103585309660078744036273647266178775051623088472402490708400372301314901930096720023483569845893544950241079417809758843237691306264145747813259647809095491056452308195626695090788245911081087893875623043174660855245066155579689425324169449829432859756596483090858645636478481114680722223820975415837136253682075358274669378118541575494053319905497702388587346772991090881750610305263982758963592809355026420745671192204726468700559045011032145722429843931365995249304014606431495495021127965113632385659141293060738636348835030623155577170601973404176237463479462878778889171373938214579237478919095428660317410845346875793395527836681531108215021719139910933424373487715428970322310509501033419094594811617247981168048487016285108065199779798505244296043220732797034086976387722270442974984540093678768728712822627573893701059346443467591611174457755425756663534850703135950888667741536609948190558817688822776171439261182869865832929685393890529880235070625370364329448663706202340411773750970748239953600230186425428648323695696099633227081735505995406700711129161241617781989290700270646299496431965169127093405932016906396581536475985117897370866840898490534061239713031159995994040331471857408146889927038923962514428674823290546939911549221800288805259079016238443012994598967086066804354003189455594757690145105101967710699816997532067393005710397706578783397802925718304515678742596289238186022325740470303946300318319283986086915704700020722667660342504889231516259179301632400608850389556173739415042547554043634451979145318607954017549922034712862076201459655700156565671029976716420576965732341436268668337786899856175407664421440198489017862899206939454249023487544422064576778418751318382293318511055464607386209180776620933705139404687099970110280154920457924871233228841951435812770849818210450715951907848590607932775352799727782520431626869202014753756577684884546819515719860339349412109915788626762668347528089284701509734524551794772416515750715288866121120684552667194510141694048960883895537326812204507020853790521058893470810494274424747860471967624865038643394318730993744314693972724987520590887923105071728700516086752089810312801397122073141177516420651082357966433943392239206155637117322840954600423399398880098076299425037623302286965388574490272638560669706996893430697970051623621549425483517716332626360030979431387003441927839559692788272392169180610229935893201588203688427442056506438660590831304339640792829869249838407832313844580910996367613565622172725751002157915508934215856922207628479358666232565336176287678592643507197113747531984119346202375072946812440012310156572275399780169467721767837912293813959995905142424542399702992473062543997340661101156130840271115737056197060311458594808296278933422566957965069028384681531386281861831608194785017667177870645280605966984947101367711626654432437112716429383853484244761990610273596813100969995732145259879841538181797542855067791722320311251133281911299233844241166264089942237972933550622641076899950434632301182273148181405690288191943282991228654610902486247081606039316302759755697068117190734808713074043422462905909053983062258718058386259743708671988740713791204022075750292280863343869557118682837246177036347407655774434416002126276301526439718732957536597778802209128384591998892507446491216673909225473993429317651430275513925279154719183286101125639717884794587221537108250454203323122821483541758031454334798412940489554485920077790860208286132829149861982793615465223184200228636202369645349438457544042955401937454804515243380537387764740433628380433884135597965829353068132728534353053326932009686671813262482212163685461004425344724742863093062872817348557661525899379629049455908787218222778827106746140022406344673762861039066249612331317551502070892527442537323978366119530203874587102113167100951751618072841417331487297346087314395873704674751232119886258795032261760194031405054308440250698838103097393823844271193043396322474213857535306537756083872165631276221286033439788701411549353977340501473195831570410033912494476764043281656888551878513485048507287683338352037277282892290658305084148149959045185245490080475369306458393032914836482018743604518258678226088932276132844580848155967649351992750237212299004113217224991164492610127297474337268789475757126523308036271718819717908354869575471625617186553592176897977038252048791005692081227565757228485002250036722659694293981486987643144496762957201956514208261708730491811802812382990287869162280947595773021118528401689636675585024363055860594386087352689738978147013415807250475704409857952656651895843595826725541679135131990520901485073629542339017679323464875998330622683394928144272217845699939193738096153899986649338516890041195387742454819048989677992032753956016904646169279062132021164973778848673054791513935984074705814527798279754985176649149606415153461504744745769003065530511143532756327885153387919470630409239938434560723142755430419614297235321857086762398978897365065602795096905141211947668271322290766067683472366332679722512047565124063452233064595319507647634903805361980698111788778124847210248091820541362097755495807631015670687918780905508843509553455858257644733052664457982456279142360532850257063813247668922103848760165433131490743914236890701258656197221773159329971097480406145423626172376854332572581290381632971272933716123204954887678277716875353200086254797930886460327023751746165554068931123119228080456957988957536419863224560711986529139684801002125938736902238682673186134797048768524141543530391265236026633340742201241675076190570604198395625741784222708621279801836019856321087045547203749068404518340824309654947585092168595384180624207221043537961888623305228291424949688512522991786522336116073391471173747243028329433147930487994973429214759481818148776137007319741534119350179624124858395591213095586491275419610623397729630613753823341894060270119102581090535046333554783064623314899029897887393936929061874126874760537263702122231176693420384736529731651181678232021391178061297799632116978755334730200208525742686396340320762412073527044559759570109438072711845935576786924317560858153198899162308674540707397242549014027800903510924318081869478910500925088127062653862598987008249129055796862747420450346068994087355561795535176228036991682276707212868152654281653655669139320503484630771940264891896617987391209920051959740480318943464599778425910140205509411150403610023705392025682793149898277433317333447869355822102847324876156688902790983596894639727338996439640582958198302567075862871531077615196715724373864479438440494997789655614053386973716729347293239507342134120225287735431985299771763875593640132492260264834300248940648256534749220915052241092673696875010019585124203474469991014589997599361309199518060120045721061577914592905170971723145581604413261672271257333990724868410505267810785743098920197697737949795522772425825305691161194652919399590482901596502299674696342177115138584305026118828019837627318990769974211521695599203116697934007214426491792295320870772554607751272561358646478189386777042365914346791647493800028560225802181728800649832339545357314258367760551905753998409268196243884745824177399657634677057581510109116379192133295282793912857651288446333180459268827393418279711809804014915205607321984986952580981633528542739953491123567553241182326612004878973229965487116912416459333252449067522863052808350351769946585009719238579811633441330748737586012355539794262356118629811882297027789939744751401162947843319869328975789802859839488583112791848616223730679240351398742799409284547345994240610540829207655366780574761655033302349380402949341867593658256809419575619753477370652913952502816374608562505971114166724510291628980665439803935737440424423696483036781401647353747895676766682930817830014238136807454948077259087508538905855131548867328406317224178895501702432660004070782306961542083331821173311176478007378678315187371620087237558431172429211570282814925529499011728417624896580317950964246977174874627606082900916682798955630669862201234416614375702981428669342649267214131416996896934802093402854946675021752949077291319386333258107243850154424352162419705646109295295317415936546039269316870284110367458981825864939810411137652720400596110302092726323469743498472351285577775668538372305119173306193773744334673972099885223048157572729566273792585799053406330799083164472103090368601883070619514172956929248834430763445096177184483704836064244029308201084508902817957514355479270573394349471832733277518821620510059318371142108357250734526204977666404929299235336404943534868569634467703724966903037985197119095918413627657759105665459818716149936446144944009717587999511464157093645491072300739402824308409217117542082220094861525193141291785682145762034558023908892842579378075489611752079955977011438315820205033539603742090698499291806356197001310230788617843480852797190996557084586317389206611146057574767428055815169951403368636149680167022350857688491008851469942987610978576805310002737882588468969746104840759196117849463803068128540812912500846846907261286253658821150567348598018914683719811635360720896887519158015144320519357779564625903616921940862106368197564394091263277347208894293507433214755651610691934705727975537598652132085536410560431739721583201836628002072345565526572194633517424005371516366651641555520242403288493198131871964802202125079042884547234132324120215583278626347366427385097500977615787085915631257645821366405827119971138657676277438044481038455706358297683307105304580631425218960412195085197650978262631509965315508325146529318753281903964065723151381281241657409411659845318770036119732805066658115380260354174123900598397740172385910311975714245601786332165848607010470863408928587491640297330242087496918205027670973293266335701385966234000864169946995365639319232830202768356153648093441194378559438663934820071436051005250819238661512465876260969969786973614283239008049077126896183855092550936741297888918966582566409900100316773854497675657172975415563631456842058514097488781135994934554131307340820408810826492017668291605166008855318257701801911872379377432195197252741994579755542093182893664414717799893078490228091958076392481875262310351282043749733428171209824028952170407409407593770780702137280473716577126072160601837474774112405998738606717360309477472474016705570205975509575652197827487047840784851145765490152227070838589042065158323430582136875673326889437761677174536613580784973775928811905898821035949386394580651950934663744535801006383736484645327272268616718536755927402954727340184770204994316968797639211515876706879187686811944812819232982407759492632386479019685053360153089801360702657051013525530891635555014558863646984498975727420199696517313621144113662642340541955577346378675734262823386096816863333983755354316806404188708229416645919223264695947821425106437971811170219161403661349311468771501330242860632707053204425997748866965862234004867355044660803149276580930956445787908062902058430429140267485910496702332769343019254745966207632106228397219491527434943852151145606064717352491367138329374587805918285040921309445870076425984287807053110078520401945518201268126135790494118040993168130028993573790593619520045915934621036021576816650564033701472545140612866690056673443820479157200809875638366801677710971136498058051345256114756740394080860732288785793798071335721320056885592821315184332446153458219648012208531937004524988539497077795216347670209712995121109822092795590163881525363439677250595237032156983215300650567192804662752170251369288454413705497738532241148912820817232473890885970712391039257704459182009244484328795401702650696391905990920799399059600805799455768183205792208005429423747416598170464738785127829375046249361295936144593850869392868042550833047963560573427972309930620754675808286374610878390713365089814618503354694525399204058643477896851650655478301222857275523476862783318917915022333144624539088418916242134892567392545524048290168656882442441579608438026080513965871569540376188859214988245354433064061244689389915736299493133929449909621253292915050021496218033640430588823608661768636688006388047059141304392684879999761882764834474215210273312682936906219554775531697118616911356639083871729769022798458265522110478989262839244168113158234521545456171756044794462459762174996131979783146868647320570174160926694044671356208372460192472569384328454051813868519976864909749420566967205530574141344272642364178197172716390338391255587597666654413356664654473619643959108605520201032833421954776715931158544419358570844918833331314423891539070710048139714712901227045091630998139696047562027595009608249216352356450079654910359552103141928748214188402473379939844278483616381362998232246384548977080254278515975772802873615729789517047974455845916009356969367803527347278510248884313675307441045944761852264941642991592118776096086772918779883163916026419067779390748354444100334867255216496435723958428958401309036956769885130978758928547235794608557106398719139551600758962731156207567327847329111270913694025633440559658379078996502578719654304560631449839837869378431658230493703220951006854047211748672815820537092765166190424178446092644159481156067809658524537022497264730929113451971053079757819762888059733199318032728246066198423098841714707838560117873087761326193248624009417040430486805758870604679870395435068900726188417505971336846078949750845825995665692320595627634799531727627012883828675693589032976699437959730768864299239645806985337729225933349454681017651829193949388954956625747944948561897479268676473982855653435433711846818356031592639808773127430774464083684384141129691375442738065540976683962059974419166986396553799097272386225214728307397036041581429509522446823776012911186266600484620672704509881869807565986776490788614740694598734336954278362603800590207827500435262668171216653622963691910117782267862245716495485156002956812675048428941930463558240405269160410693058677374989861367425723046708147328911931438324512212875157514795891591178345420473228908706083811762472116502137899479588802234786800990250168935110632313222113631825275026114037183134202282286181919923678115466242010734074303185536879746826256080441049431610860678938195860149696422849131799881241379343524623002864827620249930702207279185447885030240047409598259228461497154103156968793193705453850039002248072285285350956062015678799209782484626985947848072852373229076481229163598614597674083090539498565741144450886991077008983773081940631517765564785579473235224257639480585842744797215758726131955476440224892478779021623793002517553951584182144620453982778194451814240677752302322071567024561418623999417412172824888276366897416395994586179589297241862198151790862193373134778338202459386102011386415229435652653534270797700851191604857959466355345821059858554923559456672598925741547493466213953964428859296096700294299768909012136240532222865381789252216236400306658078820904010208232035377956729568362302420064898045399285556851062491446914213763202468547755534529714817596537570264896708479024378738257697924500905731312575901260799067017893804494704599393426304865991960804475305504688208033102924303012830611999216134672553360080109365806796063044318721785197702484537133571416078574087049550090015351042014105839133190917974312372890628075610272160491372191615350120257053965866878961402104129765773902970084915114517058906868437922229574939902547940512207068307008999436677955083840424423692301369164978786834658299286838251656391330279545642349378455117177139483118165770236285208428568660369369275039504800993953109160961146850110652078534138310930853105399940665655795671549221344124121309304970706060599748684976477895418607387580076632957898344837673771350416910407553277384314944080622716649667788568782178203107486802443822499215540698593254055764731387845887475911834548888499444978013971528768252288882793340286059970576398754111414687273175169200084690438176249409844225905804137477396562006472686429916830434442197586433582738926223430615286125591673263284760108394679843765280463402040071873472103381982041282364099601985860138096273211582768472493123751676680477421186533725413510830766641928632709284896446624236084239579279331266300294651335279918251567144497456942478788176883759547387888963178116274294199347033730420988547851255921739071455894131632168390124627133687395164916050931655331101290406497956050547158598706433753119233733432906727966364469517978938618164341509038570304324146343805460471439433014359661233583590674702571572073440732555320191043482710833585028480178319838207729800785897621848929052389477502271958754505323982726879381343608896827174307493862910213518722255708545732654262730312452920089296779342098690576411717923437889756014593270861454880302805664960864688027704368518737348046171691816303494029941232899500053443931865080475656369587583971635028044195661551095672548650653848389770149294755606732788679764050896604497564327251896656554325944951219074862551083667252494185303376820860175172472101433703958711466535553293140498735469913437844213215320376834772714119189628305979268353475574181968246689224979435445558164826495267037021521919784770611710246952677880373778847004684291006428630758654676803151026261360135204343990093279548650029000668051852002242127649911591119557829046003479289035754686244867113871158479454811501941586633650355632402256778257368600223703544833241943523169359949629659393216747965985426479268518247906527882615368351044651183211947611450288170923873385922919902727715281145190533439902243581236462677141449785185324973227596898977623403766386281634056005395358470507797627183144568429628929377561640345112456893295781594225220807061106725418684094845365840769234214456060758746709249758192798269370432309445599972836009969868485176327039905284582172499662820548913008110521974486143023421188675917082785373210440820046211295489791659800359304667215416644394897101161732832413166161923646229303013769721290902461484556337325827469264959130576662786369894121817350882151496396367709399521790362306902802055379249876552710821913865091461685730584657467074359513468077773414866849586639408649886141557468046165926440471494684177553319262642510926091692478545460750402180051675608995862344851445392735687888369195203602449263320047736617185603920086804349039701350876658507341611635564094570461207022986030911039117921381200970141802271839664245163668545225067207403562737409606118635942567855053155835860669852054613326793217117128222360058981777421858772566041383181635496336722586379125985413648648438776115607884150117007424472642262118041529840670376001570228309797321162576956989874448796325492173059344964520178915320296609199702042115458981474473130784568030930096987509543308270651481334635431839014073785465066667269827531489490607001919748364355379055003421178567545089278772969335245140444068567173858540105388524683641246248073961981558609014888663718391221779552243168976344034419886649801467865528638555954060463858629279566164681581452721689939081428264364128928069070002872165336568960330983996190692620776338067877573131611920540868173922595058760147018538286757581560822794836170227097182077846556068349276480330451213114265416588117940182207071594142052332178768906041473942004133730494198743567310223776898115418736142114240397756484145960842101463225597381194696450146482302257843140488621436740826198661648146532025947796404065386241424510746888640558765910344351310715570468786101943928795044397415207864316710283611813288692244548043958982495203306216079695146599207513656035343748791375146006354095353660157736349851381592728014990586027415351487174069956611554278321178010083131919095159071328541484959020967955899264832905161045652334167512114953771977092374589485909569319530884421780898368510181012684362437253255688406874634872752385688981881013819728203791687807828713214453667506771104682594041304879537744467045869716139065207224609958229731990593753072823432995336621543594821658188841110895678684887997704308431897374793396093837958118684673718814572248495941666335928659388359289884624805992136842438137376240792024561259772987859246144800044490286043413048480473135063148797117873306633289932413916910453508258764128600389250120039876975198765583202940840438388135034167062657312652653074551184272322380968324859675771250930082160336433425783552754583224512664272298306341920090203069761707287034990958464125346176098379836167263369655732121538952772114670253472876081433936327538171089323566736962896342929348281422692052967505245732399580541486632065178531557001572499515330719334573279283992061354649816434467676400967630319272194034655437804624689125489473915429272191234319856546712653495963081518962281616377475729495366719962951798263998088966805899520927209142858820829740040078283599130719687787044471659186267984064877983595329327503520905900311414245711043354698110431584191668007589432323870272472902360891308170710876249386548618049323964094345882269480994033046209864844985477421248570766933074118134438468525250280075650727226523355493545546975510292397125314311364377449230485895432118175114922742173828921364611968342794314370349051519219955833635992402578458471810786383270626641805269328573947516852662162837981308449656527916655229630355300667269067211174932814340769704034471960585748611977483121266944244339120037598758941577044525710549753684687362972343365676491402742193025170782474591586802058929405513267311096004301622192159891869512637336757056278325728982216926436858206017724179202341806404321119369731073629405863632127553120593171819148113410963991734672382383720730948511192906120143137575902087908328930253714196141952596493200006896576196529663268128104091968496591443812451853011559873985032672906639527210217614259376852812974158981254545706729354919430364439624990810210756168559521007401977870070427003702777333882013667531588273914849839935338935326423794059459403815261649415335361532157010727759425491206337948232228444114424411928492326083184230914763595866688064164584467070678896654461589576181110068361109819463633265756966297067321889254859644057433292733156073665421098980842560691358145304401682697007905993427934717202047452427834226462325545325612313996754316364292248171088680259271564659928131146136356708075423128796920957283629659813609867947577747612115526218904106322548367382691991236646910308463133522669670443941069479426396518865967869560358865545670606578486976473579693014933563471578319934338097155657550647162736701715580382341825494400557998752780120408973922967960725082608336850605342781607120839769253438968489350461338744556006330510459151632326653438196998062930228636102000130664543027482930146301118896864904198846303753426830465143686084379874922782884038723510457253485991725128550876966683873394195794350902313805549771346654418365137588091016494106984915328414367295621278679105222850066090487158010825052807842785142102461491715800702554922286996457189966225348779922961118939660267763959958879600413650105766721709290134339348063976560058800702813261320245164416991082674572316849926211382715706420395985760758091559257988938287840810606854913203516729794135358925519569164338032371415845781694615198080213281063258511850276125865108765140395282683341862777865965366508933711188493807442733330714423527852330443057719827651103187627979756666561771482761594199359999688704273453509729193335306033964831191560068755459578263368116751833228053025807482346805494374023887681791715677996346995394575056712824912969746164137198745183835378399523582216565349594013825724508745084771872153268545779280757279894462781822262152374938638579891133714771375959261236385160343890005684097141963160322858354950578486859892216570090498880508660659453515931069323335829853144178650714829785918386579987602581855751079757781578345901832341548280772146228986863647732763259041833484236641751208046586563848779504568441567536934718503887503156872322472148640509798983962727109031912803064980863570919227359168502530472919131091921158935463731938705833511868153557435498540234517421804512577907074756208666170186986034197233659115433698092347426416670436356947446405528067499251971154915011850040198625621958353217817935894951220859865571675902107144557361893851945290165499383763791208253234521749864428647606000835787741314741876023099021937632340963850412153448178891868158303230354175363169297154746445162388745732452934868746101598114327743476304998608954146319915132877010248676921652965969217839134297516292867552781523083088205574733105254218223146737019949933374242194411290873199375675529545273609681827861413977465585580238490935614890210954651467109788979027167938738536855226562996605937320863469997821115267606369358136598857974618519509415398647782081802032984289778596124109128254490489083554693939127672274092045508933782905018521539716516923859488431729841565141035281852369456943174712162184573612508985489645989652616323721521652662096080409737436060587005893761911442441128398739299567208136437159570796474495564015353747415270854589992955595347745260716901397981480927401505954774323898750277646605187601663898688732660633500151425175105243368697251949538125293730441820984573628030792612263292827287344388498017923807067096304695659117783475241247292671292625805122752792434457378298631411880468429421496016471153158205423077399960571536978281278472530951962418191953673374539569056496836163393445949321975099523796217599093240385115746708246988836716247181059137983275309471687413799321284474131197865192274913352953445226225409541124843288168814692212430343360937168795634904874568604986057899102332595206676888921024723906967171678233491165373511608489040359329254895071274714694834849479500823190308281177541309160817946738148632460723975283616321315133828919939156040716179229423811261507316516806749801047075104970032638717252055444749943097519701747201581766346980398962985427363902982453471766643849739175376152083472561052838259677397710017764264442380276296170053634632219786290680586178426183068816781492511395776882939806991150194940851244524364760115189848347381403431908478969044705811009194121439721359348860816846730111425393057650782996513959486810621619593183168402654352293102139757264189806066226996306197209813785798186102661310293494282780441198363320100710205174391237034631180492712954966021552885733707185837329520739900467513276796143632207474843493900192449967236737382175955626953169751829330241694321843325093724685951772596279654935051736862638612634917028454384052381102050473397064983356995680066774280597010765718335561059060203169886326404222154296726980145046541092118659345056714426327764647094417585563105670598950069003649167475854958210628213011268016592035181415920268154462099826519462980958220263165848114570583254025470663302990422971836068858691488540318449438280712853261341832667112999916862346325011011815248906394965920148117417218537240751236160334973362168838009094792667061261547968952252888749330986111480207009189783635950185201485190434319607208887144253952161379464815431430746871105229371839397993046588530693440906041953609909328511171584868790336626110054127712138131211476067225048733688985907634833965002256719334489365159442078025963977135721363743586261231073315737471399194509056334685284172863110235656309726614861206463411803323533106632850768318013340623700529017860417566687472118695378311518576941283265276284255826053697032853205231054433989263842760043484345255543564135022174647330595274783947704733795587268055719659666188892920661234135665967877040525585832555998108603476033062829117335851583338802070255664511598738246000007164733193528449772173929510889612002283276805198257337016865784492764692899227616769915687220564322958437399585245096747555864745072949726238669600059660947921808628807433839763916255615389378886319394722695034122225053994448757104100911253004508656121208833947912929293349635674198848037039046349631530344128636113562303464797291343805714559110391256565736387968892193940189071714276381666258567891517800579554099392871939648590941312974215391348184511161677845441637774910299383195364329375796506760100020893636728575934906539204980648636829303188949384670566342210579443788781514066039687239938930022155259121289611075371844425044761415873534447962101987299554969899574154699833818483719937644987673472505764957835409398443946909462157989510375329640864707653561359318643991154122551111957360235244370176413794708240471008965371884057021428880551791752800964100027393983168867650596033191578504477233042253876930847974657488647527461691919856508027113102345303484022940708173880880965730468400620673917445586766798415364736159297114939286415171900835621210088966306047666820719400110357915683561405868683835508256797669250722361832552856843265571010397964684247597059840301616636481480652711325872244500514237749953584089870248387615584083139630666863470640963587648708248156607911720427081713335205119847779276147763679003474170253127441280115353972526174222504470856414521659165255856397199137748630707867973437083091939861198813464682707672245965343228681472994579107851345549637169781921355303705560359101294875058050550776203910906807910145354631203923566945579065367781420247702343701420351675632444998227233231689305360573382620459589634300963133085845159422088781206000262812488705592039061086337438373548876579659569428725981662164191203837706837926652000031110707082447266050693950784844860299619414473099039427221892873223031774393618182769919701166627216943973106522560999782537922521857019268726844861506520248384491613221282204728879578389047617476960850883051203833826112663300640950115589282256573385312496333154657350203152031081826645274508591585281438345920315063556029684006871981714546704138568284127285804838826553519166442407941964114611712160305988332458424861000145777600627010078367213000811594371810062291351763790854445107850390358898398738862930182917862031383846040268541585139944552766093814543909605200947488188850339232622009430678573743767975945905845991458898270356930652931447208091017097949666872967607283695080555476724157933827912557934244143381708446168064921465037164301423671321550003719542294620539333134003427302331016547781831199896540253154578746967557207500676018441955821543228349276307429135053673382305591025167315692965486890661017791811067293172550048763016087681838299939230665150927630165965773338283267028678568644725141493617561698578838762594001129961530774834103228831233880122044682552042081558013684698722009626808916985310292004474911734952569320514407234078236220715991968006689190746372922806619290171751556150281563890934643430626268700842879763877694107321093699395982161949926687686177199651765854251746241422439771187291743904175015409632980783484084481993613809817576434658205460504260979276054123533619152293318593455068175198949049166237583912312717464394382848156843089175061339863298212003026819289008293121680058979323837076662183733213609839036290659424848753314675988245183778940044974387691605703655877739938198580303995463251482025282666921112258056932396516573026274715023829912499919078055182421809574041135525364528015684710510654161054926402666450254626712469726867152190408406074028283216682712855467908049508451814001801454825097219913236938753735223328022872501273827602437716345178294736902821894022834361750672749004543376061798129570593385868690325417260280510285536067229918385190602583195072179809928957240430698332947144546855699341506553314693309573404270548040150888345020525387555172822173355528431469242115544475192152593520915182972033363623899759560513491354487969402799547046104296572940389338526061166536077298982145867923529650933174275026087804579758113753931479211776826420538609207431315705115151010696036978382439694982759679367004881193933529830427794946548087171955179450448610707532627849286080544921012580155133381455588366784428562653803758014659805539925244322000574453902805360410926357953258119883593572824074208753623483095530939576751844252568474006328273670528702202377867142192564766468820486760320936290124127903834081681914383580227752250517059153612711687734885272116757676446876327527052057582256368784326828891867460183538499896474459769529607776063552368738687785336742063994862320341315911450844547669946485205288822311184086587809870327767124878331678409672146152378301037369573332971226061413354684072871252129421749446938841205750162005780019774054748172744906621329901403545159032971646650719609469857072320730537683542921875207712793649889767591267013502977265254326314975096646732230658146479193369729822774833295615482461466268384262176324561013496808461528487372140912840415106628214501976659394365921193231856665126401643035051272943220881054348586509896251437219146645008363432494015949469337641874016171786781535655283217351475263426248092809808731650365287986254910898923205616180737146580541462781520874768291857767307093813828878722784165426315622298614181176915543701949167994785692002492948724394717061611683442748604648694834509185601179421441458636844824494071163455568871417345659738868328312117689732914857937658812216080250377779022551578538573598002951262822546097807835725282258113492702718953796963901415887897369857251478360555756058973193827628566815829620011464030832136768040722204859056568909758223761801811131833252445454410218698793481878257401439305411993165053739729991004846908949148364864555985119991812532471300921980664228357381288321170967930733773765758203596511812864265086860762259557634721876353619399447395318903637300322699113739310213829634614106748921610216101842657192723125853125474470356250171342560321913812145241703321220016281929353357179268849742550253873886919990059889683064149048592070581200773815431461447906332466278524627691472783303714555125096231264893171098066409539350480984237587963648532062275869498840416561225026841567122682011019853670236288882883791885712044787499639104357127844664474114245934079651492533474571020339564367649111964844617136214284698409872079274645731442778308280657593496031790862010803656646857060460239210760588702029945289655106110107379933365755223328981910921173726569470148028795982416940179160150138056807977347616234020811211219982114523929489377152533845614507406531590109834464805723141791851830894555699067751297354629785043136073153494119078834780489171662494336089643330899024404342590421630235179512459222829335893268901404227387863564137568735904661585440881170111891253063095356194444394182328442397341515165627038289624463123119281431350467537002808151242769705445012652011469259750567657150447783464462898925939432744060255978798857063269101100139861743763843185684606550609913024882512399608495997333610912958937431228934734862184426067286665707105045960610802383180787380665326645476602354731478427546895973340947000958455873860337142097190503568187881176051170182229041030565392726686213741230743025514442466131162832282813580469390982393158790783318112569761221873251277502873878385883149814954780635468141452826784317927537374938774728954639262291609766895465618782383953498211049787480733479090397972195606314827019141566757564164151878185481902365823726257790570885859029904478580749393605755603217667493358065940009088171479917534858190661567126901182719118224715365612596350136920225291922868784740824700309562368580406409254249258791531745815490481714106039407360465686385129483726290278545924675647892046550069928572914681018877031340337301745464696679954331811642319704673620074240843159907867843452116166506651353330148461815268538447902834003221641281790521463499969059803754318181918779404615597289637254693774028447941049511499187583113919317310933143888964119090766260204237030169494214462303783189908186796688180645343858065858213834730461137864269409791498245322194271952156783162155129479222773591723330953567937224962418867734714632258511839272550149089689093223477145441940150611766176615858887327245471322619007431151409808508501958957689552500570929580893718277730875782097450719971592902277350489831908485892058417405666264722541151640124611612351357987386004091142667753554320312136473501385182811577239191744454006486652083765026069608374334147359153463547580165447401059333658022925071881288413460010958005631476274010597240985706550021212603728699568329650706890218352467932307972986682658478035521690083639026872695060291343586415217819177187283119810876492404898721685740800110446084338708326247040485628679130898786091705805582068307816303157403957594527864419453353703819906079828919587994778531147190280883691356786553900855715755040675430296405205667272994979260378372132344486228291980273542361146734929672646673491956314937620941433037991932926230841100348960621500379863713038219463325190969043425126172200927759185417689705672166703832357643592896341388520177634111193255979212426803550714839429530956703270207213742641634854597749139585275276948906198975294448993131378173410278548355852593042688481311947996989769487393423980233727099514946885408152344656112000667692542246491025272620998185090312742002305147017596535354592279645895361311191471069329853842565749922630451867170050957695615951271299824603262513868176392525870687365919046035828074006057731141838990080987307214859036076290446423195257700352567356412147072551105275680894559057978175307169159538848358115317414986342176474983999586321479711779269913037801974049776218957673651821643575459383034117121414629108765727180242542455464952469701056192433898201214526991605868396726116610527284851579238432976691176103634888469650869471865220388996658667180899990396891709137497278918878763826492000218544103108481635386353445361330451277721616364574401541267423000151425517168696052563254808659202125052408941419787971843428660577719435143582559680960125578547849608031118265375932502783552218544874840422270953943071540727791826254498108756203917598085787014118041040237905197509609885816008341250070872481134104715847658469793816825197331384582681522201392887491390592041185055042382030051141976338997941664940295324719812782421485944212104496705664472646122590674285177785867536326291092405772807093201836879575399750565970683357659759199408550240734880428830436753104686785395630566170681957832289768354838655346656890431036529573279816245527686676553992076444376873413560393676972467423807297688479755492551974011602964230042006871025631453569148137597570324196882719529151728187939920097708327473142335269739356978178888712951851068868244961617128318675676408360235848737361099613588120178590446731313654564330812274511024780051545661236475647850608310470247324422785091390938489302555432488735832077133715073842443637842364880385648230361656328283769256499762110086718722979459408532281754762267335794691811756583343829126278455537514419047602762808024846496960052126402017823122414103435798179748447838523953267034229336625505088404750169989245580906107947176946484171688598327542143665920364841834540171175627311125069672171872318802968229363799974664369247035404873747675418247178136054975049625973735399438324001962332145793395227171498435804710943830207477257747386694486560548664979314216253661953967098124244690621156319297468885170320361187807922959136935363243918017268351363521906700675249526321503725244947033474849351732498743610927626800743304123257637770030592297357205453912904381641411069018563253207769381024349031086249219045708342915958805838031212733844365172617790848060901220004119394497548466138255202637997881729914859062946690272905499370533616430851233564221204283260764058106407959242284085630046747523918338815847840149606370586350326140537707394428430887477199148324413979763964608847525575801537124119414489670831345767915219168876629817584618252376749317087576788500996897834439421897013490515796321254017536783865722222617704563551946208028309033115989044423257608513050721336218826658928028248841628452061989549946340329611688576397380659803641929962381778263906927713500539234427881926497620575619275454459666809587421678284854056484501910877343337358559507149157312334229640502852699223193413586411860682719606561473050009959036274550459918100432703098746101318941559797690429009078223933522680828276580348751479086757729439313264050195277246601247771839778196637139601287640126004104836858959604019938199717711820664172276744282730208718456972195012121972488407255545428614543892527549817135366721169291818722214382026920313594677196408065581714203981267819451317786268403711960927220567373783168030562691203022380801959414843802248249057208701527127345187118465123040468949073786371871963088043721371656080009752052335485407065900726550246689886551610798533889358921575756514382560634849765893279135324807306498904756934691548645376319132526820618293384986155959280821447133048257888596808907754691204865311440825441807070007352147949199266401579114157441766895043567182737415548539267061755135994295692232676658621083487787311066276873612294165177575456480976657513460075794238550740874782801727146755499496338238886247601646738675306916976790714350928517166532434681212627446125132200416610612634225263018753784650630192491365731257351941559864468121545733597113682225099786330648202364530478410462849196475720813060122660425967917837155930126920771239553106793878418195161899350702718370781570279369724709591725214270661381167786609390352622840629441399658204996283109829951857608807432271074917870271305851036857744275342929094208878157005579928499709106893699253402375488164751928457573752672714487876441126126800564445431509029659493485629055419780251023822967329332325156669699940088588067201974791708689401115007361153131978098144635322167605672955621690383098648476956314282915387126786714573999029256610039110477494884581206925127573799940733320647088062799812730295595471493048638714418112231708497011938509215107970739303906616705500690609991440268684711242916693810423245336933089874914054521789506507511622206957184174255905295857458619919409048838894451226839033802735881553430390782954788465114668349576012820239348981480984143272030151261947214817480903941210817019587720083432763513153526098693300631173086388604256217157581873070030146368511187922530090619688995890830425139557264514122373881983228509194397731103828062651324783001340415308406183981511514454865941819384287383953515911713892593843894876515830984986717472603533192581173414075475710716503419620077005180112734287194222682493156560261281846738260366381677734578885693594866310975325703923608352177798578178271351599349144012624834517189684807494997755316915435890169572965541722604010122135000871729400423822070804926427916030643452714731618634481122377339695568430964046791034625198881044068025830231730775281694296354363981029079710081489068029392766001914206961617276699522806213045749476899157737635578027549497561918391984120668146588957912802077516558386302769183687715927283057625771473664273508508395020956163565979176799770138551106124408771293440258284598847384137435070711266060943808514671438508568459143681378891161809866895633940180013528413842931691026296818344569646688932821336881779700985792209863600997502996582327750936114734264441078833282416872862314419788050915491108628232617552995392708177055584035810517055588832787128311212231972320610280051995382726370954854808406736034764843368846463088991813394017450706668561907760710050986145068542091317338493007952883809041185782539680676567988901847894792480881418407566817388342274967207796154553206781396276161816953361420651595186212122516099976675094723338825945438776162554355378079641033494453564285654804339416746662830650199569968774702085446265120683383147321562465757341470359112986324165822014482669427433563144132581712685077444715696836983646585455193015936220692888869058877481603273038945425964649388519035485027992438092902556668684132947184942816461725411058118363055147460418459778600733470264631803991745229698654031511953353397999801748159521751574784118729223537027459722678279864454917800606971467952801023755704417782758163913888155876551271232898373107944251919915944987013049590111765731927580428708968537366961583445565364299258394710234403375159013206902815621721027928923119073549434506915473702645139823011914468830316248000031071708056756247141570628175606160720231638967754575352222230797252356664319941588745044866525291913124738700405289131704710768154085427817440452164180056797686936568927547633319014111072236917583443815941284454434303233852791522203126300334375168254325816899587736477036803046160279243380429067062753197649116078718477499860903881758823934383802577893100518586872658104403028043984299578664917519918672508517926651455076982505355982954803370814933944511465586279951586540307049573490476500769425273381135709751469726973226747750995333433609402050621365476061094244925518897122262249024700616992305309827896320965310957709995358595660561424631722912985445270655541673256051946251436764242834961376336546385614081459062541037622909056660153124979935953563591507765954725268536238132265232472206863975904944643318120120140205531362245480547990255986839210160425544141689299442775990855321655558604221912121787459902790454484629777651761338619523398961777182601399585803533073736405217948271582019523544583467454539724799755798401662806179172477762516661256470238073576704140203823349878876612407332262786769236180507222927448758788232632784079059447955703391687904030473622486786552821194995814018464846225948787031909717864348477599217467216988754559379600694790593673118199629100327698604165868878035582407491995673131455513487444928113311460716950878852097664153945938981068786206703068979772173938753335232091282844233310302139460290250030958289966408834869569776467891248414673250771306889223864495785737045192999299862176353722856864294569089550352062198067571522175736546195216851717551697450961462646141441746703851390164788182589025912687676841372938450338363505937622775355755047821270748738034267498627331536776796253592582368381700529233707243190120700502315483182366354003872461508616998859275476650222393294264844546545739885730005852088485236206979253996458426514240237613401336872331397223551174605346531529853085118759321242993728914420856226230242829058221986002723729962895930671532499196556757627016463497173012708161872976389323343131144795185008239645797528650509503646404986881995613562379743000231020406568686864689116848204965338704538501524465442319214921881156133503899221226300922477415106469291642279893934776698178369336900467673359508974602197532695293838767747278486827022924725082879037914440967513454595994378319311266866109042144073398693987539648905799554085544472387498115442959402683407915436643329286522799360654785454949548504121916621695926303182584931671752206517196932500399739196037452991029985816883136368791942419592004657973883086289340270309352680703909486122577064492932527464266691147344178279255297654804303161990151157512083709061671408442693787015185809200334485790044963319408436847268041769296828518833677809353150377236731846509007310548910025114729910552577116595907633458098240599012331860762633716840147287922688616428557973057912996879590077641395780811071484203436123483493371473776397734226566779841327173559743351182992788213976090613189982189588418100976364035051993449902068287290965899105274178827684134280470706702523539496626914521017191879520178049453650852142389570280093765330043058383070128503967274630521496624208302134451247770124505134554351786116509085636038576798643618744291134313199524969953240279066352610041231300184874637509888199708385472923581446875114903879430417790957178642668779383020360432270063422618890029430036658427346053758417317555858039867164140356420917143491111887270774445659849871168739650712741061258157170555778510856660687240142184484778724861708979372017455803790737207669677245984206958221040536011554572503836852263702565658636224831327174321330750608581156710538317736883710905070357458720591352124338108780544852940056718349840456620127940259590276777623695089594937792707991126601657427094230782931733703084796166193417434012335906343519402343630195363066662148293112542034167288336521748497262118175834038339102398504014511405486214755714321396177856049994243762327940904063592195580302748652592807206013600063214195247664785909505159879887929665507600572322929879052919772691880033683083175156501983827151870888639915646171160368496018450698686920947101550256818727470219282403189768313400944644427856616575078408782109404049577706832835093164025086914129672543270475165132310773203950508785884606865852754156745899556506915953624129848664516708049715889780342063078213308515164059562051544448133279832342318072968292081844572680137428440873011113773123272976125390060062423542928132086298851479813690330969832219666006604845427781652195674349779824826135292887628327061625824321091090728505540590548735674087894815278249480969725005863507695624051994565258450748531704801298381272699185974806815739589123181896915378155352903401333927687415034624769172145900103905405480607438885851693132637623913417059647462144523649751502994411012894176414336609428289641865599630494555753100174900971187251468217697290237190786043853871771331657439242760945988142664547169850442245501833075981704322096552660091998739779107069748462869715454235632013489594446320306952092898975434520851953618626112327542737047496031633146644967435376589039592272986073583837882959955969925316257110281950999590963694397309728702671406682033123957137495979975695053830504531691199605076533350575052533231224600186535840701157218212518887245139360589386954682581333792064356280036240111498062323678503568921579118471497387451360771719298693525234938931930078615657850960404552848719501861104481647915009634800787450838301749891277711559785176208475319142303785756069193884158609702403073163631779832406814563614799195214803777475585650114861320971658816477371968186270433387435764247144138481199899721722267783583299593299689232463437665046642305833753553501778329146960664634907421644423412529982507064788070556083786150549130131809543216426467369853736855787686287799605214544622474460864412969822417618110125054941203747743027293314094081238033572362912952678966771253514376855574278158825710494674464978862732502776066861189118138340325411869567813264766951224703000022312196841307827589366617395921506441512536663093867545121017194387319184968287548340046692396325088950127059346257962929945807352493872244341622227273104281453655119465082404873653746794093805625065080461591592460080515029229836220669746827506359095989056962611461721877843728071938662871152414882150429506218333865498669492901470506491695588417610671393748839065750485139559782573419257216182511968087738648369396516032584183366853680534878893203812879712290833424367368984930652160184534597638002859354195275717406118094109817021749450373407535598193160081571785335606173493543680188630165045342108444347155953327842938552768983115593026944732435839736168928697316765503928856164947280988482413721784456584177410719387750305269933272266519421651751734444233634620967295315964890653941403912731811732375002063381657476382913226252280186094444746289013294271937971514691099254432649038177072209384626165539760024988334109817146144525854016841828081372144368374578956572173031519208652407140686602856685956983825997318713938221413178412335405101923401526945852986306857572850399641565553678543866016131747784954004613635100526987537868942313459120054085983456650297623686057262601205329944328355310973005430110352058748829049398589229284136353480435789237824095017407681060239579713099410187043810433331722867770394716304854201247742029702224660147202154174284480286241811551438120665432770378502885753959942594588522079423617406907541776383061024066572377272386078895763547740438578143621242409971854382316970532626635276050792739886659904417570051764176553644109864983287795311974272662375063283262213324774205206162549847865203256250584521622428435011538332333784930420714369513616419532737992907276290775781736664358999639971060851561885463526280984606385674313391051441222751227240251638848740513119289314389436739596650015629837691528418464052473315225206722717360568914779153401830368447560280517314692199448706551268188058645720673798830079974396535515360595650142516096353732984109698113069788643597373810960602054297865413676575073801039571266645090591841588314438662916375382328221818938021080509758345411642126948961223764431203112255185243441410427231555754367550204015368034923055855540740945928994521142293922595083057906807326864204874102630830565735643785537061873937955388790516135675151673973774526488060642025823850726067525890725577838430516851464241731150962668000230596384719794900690369102177505201850190835513385204019310375410294930652290654055001520614627685726076049870756477140834095247697379972673773826123012756122473219365722812814880854880556964817797884120690086245402079452647582699482931293254738069365383318860345029001172177327663875662820379145081523481271752652373964707581105918820216806778721339442707473023181144422288124192965836888041453778294661068884571404606617889773381168668681857534971249634804591900365739274969210881940158940402004305790026348877475288972757594010042583236112691276633217326082937884030940345934586257399624663459372733059147796551605015743310932513892543741043359641292927988852128685386392729960873400603948471155662342224046423930119428376084345553148663265417855815266843445853385703749554583659798136861308899840491885564179270357777386257984079094429159501578147603709374140120005901339571702826398035656268838195863355569320939389057950121344113425481116753774711333415765732316733201137528396979582727147507585404421568969681780294136672406596005771634653291686278855569604126365870530912916314529065224796563642579225447460851648788152571689520313372126780215853599986612813774412973810555123024406004653774829255752903942219029621120668355358817752630181884918143710943194003350638639615538914733787693412228072232295102997681828571042898794449276189920050571005633768568552013727507648100263704287993682247387599783930019732309891346198068203410103998482343238256190952240912781322359255198095173020993077251924281191929403367376066214761170337917918322660127493993889636203022451991827817946632764476663236514678006786033714204176263404556694561678275655895896718115548118390211207464617865865655332567904666381701300530065413657053155861391372122537193455398484731880277252417992224126601571802731153132543536627834937422855139135758485261748197093286321289684459999435672744713727090321595629248811685188709347280696786932312599196076212693065733594881719613462788098647618603614879558664411982097171351343770606189492615416689512081047672824874350819237055749431241462223760592973108323692390586662342087309006347087240505046063805809508379434211759725306689901643650538434968416227359408766355078754843957772620691428493332803660180124262279410932290065596578961172379437558319360287179218687507394479207651993072682813401980173730659806586477214730677096158944830400553835369082818861603866515384650801826171606891937688141968676995147457646990476064760343430248226301534096726404439950536724569368073440559821164601609843487517778440256966171214942793170980621805312028106258758075692876020301896100303809832999628337479858915249920086786707397759905083590829927475905230457776199047031455029076165376277658964018935578719902378336973258889209371745582241116113545735174279329942978558457130006522597859102729684040814235131628817239645007878889145197088333812945990391588454620505749653748795598001726119318003948730442958631608130153026000697925286209593069987269316366109425654596176106514923727869674032615720747328635356980208602574551358964540653670272248758239083363993498271852822232962004886530866634827452874884927915058921512383962022244188056401827140556482980900547021517611648740058570145048743922134622591786460859977341732449418979858491944375137523336430101586316061157089702882409457450093128100981719075787790016841454620608789733679727066535808857311188297778677253104974156584948092032965586375964071655238507122354237263346663386138976951505627718149286420953417758032603299495827359660359827062109074528261312599620575533847208448258473857613520546903826026518535671942362830966649675123335214780532268112258061078020703433397243750666459421180551336654487512265751021204269737154271439733961790137846397188030308960849969483841732784315119903471515611966337863302035906832900436821030350419804022640746340984373690365070610648685082949784273265726217081535929823206662091505860984150031103118185709400010804554494197490698204429371290950997265677331005131622368995199476638600054241303290911100216337942107108816549947017789031671993431411650053709804696536401092278609912839519504366135433858664645905651226899619906445418389168987338387909036489223153674566028742415355406785190335549026910091912462217509189332211751315798007720857394078244424496499763432070633817114008582769822945141659316473309936535726742053250287383182362010378746348869101702488662265480428674713947160419765372640460929821812058939709671029941346315915131634691438083122862177421133099796055203686406830087211634529858202481593581323114997520094387839022365337511663364899173784216908234374458727564421544625276147183925651711489798451984365490410831885012124563757716611675545032165438438061393886660175714814943154539767355372947922792642301741351105606426455464251201916338718688650952687084569006442987488016507352319799974921793457210136167306074802487386731548026027740560266905710210600453537604469475981293590705125892674803717999353589194816926541718577386700506579387565068183667995049956407895376695272440929150610337078150918140459060578350118592851220147647865845821114813045701532453720547749508172685503651169193704780554451069160022919737980494044029530738689984615996150058092964351616466679946780750862752266307611437338254522217034899692622278003173309765423213036936256348385002372201123509426294606315383827095405730208447128598820690700189370423744223388656963460605174089226821904271727966932171678657761844719195317033432643727352790416613202887590471263058507429159317241394997241992079233993058414109714469180235325496468144871959682936940801056609140475214309342381487047309018884053291763810992747928521198621103988357373458563349270483603517278059233701024682586066099407556290857895524545833650685189390422265306784263447835739901135625447092425130321825800558299058606297647964672850901074871687760590471969908554727028441134863092609411832627107899613700496413051547647096426660915458942784668779425568594621070414320691353153917090526661009384317721211467224398932225311871490304036767513442871506697531831780302372030768577009815727546381347471591489961884062257749457895979352348607746622110406626277445310822724516448561062529506005857653287563079515021217926613779369697676677159295883730154210346164690700963501538847420843456613455549562690038828058413727831211007443004809644875154194869907558348750013011193016266941353683341432262358205163390840999395759236205427913000971451270025678032516998907239158210915831867809999834885194559465300690425189284249768738143876088404730799717525531522341007489555726242887384180760658158330806323340469252968398051513123338741699331951207599720859596885873439548920155117880991500722144351545209845630902212589156351771810703100007850548533201644368028617053403312091357327984431405419766961411051345121625710798110769827501694988475428709471932557214899423816935586570160092172170388595509254769654991711999630709558930800248110812311407745088161445633170814929141290346123693689106055745450119190985057194681243530689211427383591973377871664395444953973849409735960883818820197901821551822221890228381974048591620512105167158300362979233260975117421324528491184071836740728523579535909671246221043217279672924041403086131033667844521313468473446638523749340716982494494561140306024732522562794881547160650779187288132966499568992780543871028012936528005245832351661828126290097267489903579039068724932451009363361590529223179283556367705385474175251696342547577604392019070210912865382091044247537091152837915255512670048694028237552087069208157272369718783717977692076786412018181634699292866878804290456326169484494256776009720201861939826084452976709995602387521081062046839712044301656868695468567482686646009041135514867608977159241785571476071468691477395393344759219501197532264261969505132960600576244264924896541185562633184883115856318573113324533926775539961656495986473840375424012985195574365075580903319117812441602568177235072468961252562374417434353128133150608619985124861489638221269681997967629744778078945669401401863467390639710775709063430488250780850475525757230123918011493698058958276557047515885263124489190120171375513833064562222528202736170522219659715947121083785407709339795745099163696140385210920112106619248964588848780635817087847146563130028629194482126607874361825886525072618079377439282778121097721636373334832193377970197076770655832514531761887825596797430424312689335016156137612792747529590154978105808351277112530101881843031809861793005618001117430222485886138972148823596686681964242497180980323143911786150394067092186054467066451923192375786765007433065072287690907559137583196306916877178964973168826179315530893591436719699343553020402763557526817648469299132787355913838819004195663495891476523846709649318115718863024652661003884741185556354447725664460629569017538643903752886241499389379615605835204528375577019509937049944841450318425952383736585214942101389229318498949286879495755099798113289535953292172552042270075808880477060272099268256752529689710712990126010419718348991834388449659339458632565709027699861900707812951887677185406381216293120892745407808965592521261140371490776204744369436856847204938498475802557251887106017773061132913071816830600316387783093208677398997712024831865719451895363668041822207322801577556409891036275652784206599489227979020616834011239314772767564677382075952652669622416840388759245926879532495884640807941953006487841068862547899256558699518146247495747001395943934649790561748945200487958183661395462961830006949793984317203322346502121962182780337007164279503411965726222612963320755975743360982313906785961053775322516765939069462613526804807722861933526608240932529073266248734195571699106158280089405338524359551475607970939491925292139608634225414413227049932945335322352518712422097817799893909336380447889549187311267395439443949803091920679239279829592266224935280203478651337816249610433491816821171034813937646112413143055724183392615756536133708550183723278769875723079384505282553699919448457813953481014350833759416410667081829101898534192702986668394029189764212821970553486704241307115067645987652528938922181147159129960059733029051354690034819961805643085962685969004868713367012949049201499609785551557923140296855404931281201647390699145641480075126067086856896337100447398653483664739078150178147189750078568230038360907715900565738430809768852812795793077575458227804878363095863501947856215918106549532100865510092197963147600617473039689663622382488932176813557821993488379733311752911335201284834831320783929795667521506545780823253616990736433863471911072384086738276215248830122929725640100738510498048048693907709875456907332309750491420945086762183477135170516899672563769950227736209207645320528005518426795082749773110981233598531815775990542783535480045571873466033236223560511716429303721498212631937317204586308573168975564247793665258766485350639065911877817821894438455814971421806361884510485882119902523550305960884579201490100737950486043912248848255289188181380631394225637195357713537394615430532849516517461241630741940226663539694615884002643914116730519100005433216530274544462292015030390028390404705905170836776497206898350261742950928571507581839382430924774394649286031601356492357106324283452159842739450983689838568070853896343038603672250349489834124738863862026051146160682852695363824371244753828621989771467627020793400752912476538596496255928625686893280994874494815396627341480832779118161859922100818742902657953390823825989090267687791786935113641235830898335430185098640602047777969315409356550681047824987523201362197021953910304117032730643378478992557662315227883623011846022613889064632682628709666271945436126971742309764416888380313600832926078891435360494775190547352502443642307171456925735433182456782966946974677109707437707165175593786658620367605775743137216434480069038050335215357461867157393980405369674372394587940139568507353556959863002480048787076627730705981279766638056800201949450911167520520003298024715053679567692300587575507026055842537103432193570447421273716870611431525910482042892046916005086640232820840528758820885672492256979552619557847770448718617965826532084091961034877816958768382889766388683873499372742152178462000040948460319818602945039972556490601456314926035740985880829434480749441698224641500949674702934320636584243306185912875884745081942816519919722503431161479490729548756531096496619806346400100147907173456725163714225276968859038311606905223673037911939783121602760955405550753646457256773966246811956019829767044486535030311700643982587911065838801559298016090077824629284635193379661112658181081409997681466040208094850686621106176112158681536604461262823593896945680393742943640400451993956998422640829726918059319316221296067345217537314513882332702269719066727345822151069436956232106757901583504322415347503695023529269408523528607051795150495982419107197963685874353151470116458781579981403579148790257961839459951291794072289581646510493993619151536718354365450429875393392710738756746625110447367460583558039712529005732559231851940977348579165672057363337321972710360907582510881584376985978559613398766653545697266006130139271522179056100091446663812673002551610348598207079747793692133092137493992266101676648625784135404020377609892505835418915929076378747165548659919902236517610542508220594360941429806588704151949694696033783687158319248840190414028274344329924683584281191865085498702930819539715800909815994193587294989017533424187241602595314944726004248897856066548840863748998928178138092348284067496386832069494858518558640144273148805412948384766191164621489769229547256503744766559630994592251322272938915882605571038037971116176965912537982975707062210039107798578133846631639829462353465112963144314398687927896608520171837558834036899851648209571464332637631761445268619126252794072017725703052120768214011187162575441643535882811805789651298488243865923630113202479263568794271280811826094282090410238366222848591894108122377804380485477774627240627385668216261736497730688133527275450101007054431283953425806682420365350130059389728735674150895412781575731277185125200777161627308693691515098508075245403950579808847449791411990616681252137520877999436751549916586545151132349577664219199691723566942758001948983540265881054926519350844795312996629594472555744201798188978837014343918891430168561258060450438030473862511109698054019516157767579192840343794723933869868293994925527051384291435039121721357972739192202991514099258488563682381219809766503114707351638720769041759025934812206064490046973881075186095587233984576584628569698832247441657719175283059675674479723904157933472493328838524090312283940126441130179008117664209272529799558109224968494203607261781772508752383973115581386006656008003679040918931474139965211409034820639808704988683221213023625009307669008724046618956827031789787176443775667791199258701640545128741375706367901733911096176231286737157314973956355359198431948790056770790009343751031543830948292774878291784978268326063164545962682426410182356619517661876698166853806857337352122358834580503365438563503386515660291292111169616342552995731342959454149146034415702114607684954563225899766291448591355595314470930365562172384738475729031814219640612710107016137778941380266819812011177108788621054469122267115527610570252954429848692184227970536554765679746375169049410476430087947439265690486349260380680070298915505275840527939289828614024205451229434352892276695241794867760254682238308228801988358566147638317666239041325039319048022119191693798375895809470698977714697869823248078392930832749005776769241838087221300876628597788368542606148031848843421529356244408843855512291910233010106598704124011921328570921748555453527518362866200283712058741413336724795919865062179914436413788162731382681105757388281030417673860403757045600267028066030655312532426764231098898244009726929645234035067291917553048493038140755757024892763058145224766941925273318995491275236922309877180095496442757186104697310718425894568721112834618252519843441025999720214482453552996310317209020120066313663391974398470285137770666946470561433862789868227643256464449222144963595879534771606999621810545737514223963699360925104380133820168741336556739761296928253558548697893922175945594100956367354524404427692798383968290620130873036060013817548211417695038299034811701746360644176585484859543786892199609121633346011047137768400816772017950092312220945895023204783341948617530413720078798659668258894977324402711423273064747283245226007575548193111111424231847218145380522127430391591668573862498189658793035812566262251318341244147221648921896931519468861182847028473691854705891246771986173049774609634358084617831578985902335551258290388539101353025961994680731683086282918625604093416857396115862983492127527906805443713978729324408128559264941275024877428998875087142086107301802186305735303054794599997111576883096033332301843443756844467229678650558033176427055596274041017664846763693619722170417251587057141444271292988410927444739594776150128898526738591822995965108544102130556076813108830767294375216540020892221033268872976064490695290371079675186073857578148976799211862276785573719916960703824195009640381433788793059460782352451111724844874927161705730893810020525655076452818872798669191727821415515101984859144206915063537916037308506722680253100375905363648865636539204911476679823016294408510906253594083357560494031866419693937613395529086126490019477268718392744399037743188154838676267303239104805691833105353078114057544808636192602854601171389096068574266916226492327192551946868417640751450676344867010370876861664934656734476848212404039214999814536422752776203588275603489975257496234980714043957559114258066540712505639040378550552408258108811609130846433388634177071386486885637602855941411334345084882673843024071061095242951843134881090610634147015335327796118753181948340978323507125318737899925230446436840479384211029292981102791029022914240843537101037411011230416567171676671447670923529283686552086176962457313875235915763242308363949476752841469869176005888988829969060679935696987061540963332495325244138151977262040550432272747670941030158776197819820517345865261178972883396590876439275175680140940238219515861335313981834320094963930390530984967594711784407404976263684384593611638652592851286693729619629532558853715080496317533153293104521591860531323090138389502943724792895363714004718877785548603653745326260454275949288254097338987660900925980264364963311564765355342129786694317897133239501330963053128134227328657192270166181429387893707206058537118502472553523357858492335957749248596252261168050962054232883958695704897258165116526255957693347514287408525966984863140471730207520838446316791250993889338770970905569794882473978126964885988485173567294123584684389938202149999670635515489156710301509737585697567105178289636129016306356254096492235171824214187261381591782968808672393514940271733739984763248808205842984361312497388414813024958983387490024098785114269293310950774779501663952881363513424671327596043072705801694446707476431538393333924523418021205037156412737949466590405977433091987253343706236698004366069359989433068807106303402881814057478659990466844950893726080216917560173559819936068404550587592202302021433630012398944472490112753754386474737554872193231919874782937989505944104109231330216782147153819151941850354948935171557945482854219054820427788636699719741594049108268307326172226823240932593911362146104700865872236847812285190142628644145385823192387571052862483142939494044464330205120836509285066610602931904838864217882301753067585321549384950111607323758708575841340647077299365431473569138771568610929244633902443092646046126652593626501688945477405226969812295659194093788657387005345204361936650192802941177858264549157553268585478699720421466357158176644100213268340720799806202125439282574511276973366788623385251213738417447361247770995780051430800656392147202265869166722783650802285904236363614559083264545056016165343106009719911007979313256237553455105846076166600486676550620382304180150682556165263855414539903625692977897949187088262201671179434598013181928627273812479858071406990601460171542252148652199649282370213998431816979510121530835310510853077542967065426835530536487086810436269297190941006483762782609884700225868474766872555936797947219418407075075713547161108981662296511176782927451647427196684017760719771286806421156858461796010606407444072524184055219314728308887416405833227221527749224299638281940798121794303981302189356201487773750502632173114469172744416331942466582142948458043958064207823057295397550194754318962323559515883058283862487234946158583470579573867563087682947127179356263478315455386266290812537750266895161567791263536698641190012419543480501977755088309557982612072828411684854218014818979305024393566178634343804288568251246697694562829907835033062285995870828509302506240242578924601524173084930146010487168125288448349612776627015180494023307664810180455316370823942091249301394006672310525718219757251178360022648304230103726767262381044157468535247844394055955851124605172909356959856561953672571648625610488203968342682473885418126893977221564103093800507014036603043214061207589819256437796992029857413704684708594477316971229209262711562364271081457285371205542104178296709932047529164634179584103920768862877376081091368446762549193660015754539239272899049825821323727280776812080428879447407326989828654232806983892766674360541660618126286939775737735506263715649896733055943862180614299857847730205154706840155736249629354233438719075072955350589421940408807626313021596404305640326172747909955159596316447634253916408873789909801754942097562911963145393615619228891376858283693469820556262461419531148967862758716362238525852390968162321742133674980853106281221299085993565660120187121691709024262102546679775611838335943552727079024712804041134079279875004565301746264629423193713972845451081428765086823671830695071007183531204772573746563941359721882906545004212952603338610951309546362256701965818108349094174287199298073578065737998548160034770891041733361228471211586143291899076953943267309406450314899650962038629208499129217472472121268941276347381488171728254489366203284823231764639984163500808796062973509958554265002064060570168315692842094564095002789028640929238638470291515275714938620592279051966279164412148769302058757422335386423805985018141080806704784944215696292461425626408903599037555925304866312543501708329441484577764101794519913649769953715618336607682349238178198980012680430009913524464828882544287347535643304869945177382289974903550501160635387126463893562436465268144797363964108108517456307353079046860066106219520394205115644827523427718597082214688632014185323782372193418915728248471370596493667109030268689085490423349505261093533045673304482758003658250259542545257607731309463017506562904406923394322475469481869529504984847115862144127243069613816488088441779395037051346966820587295895515895177929998121220820802747638555365383101782239741520263422641574619490330247838799616544829089890378228218574277210899655310058403037650354269522105463075279098532251147925926005493507848280364355071120394119370748609013411536209012283008344095460229521399417779963930698878260820450609191372368714402594378269198141793183109031034079337792666281239201035045847122841433041309106100319088070614627859460497973185875007165264098874309087645295599449061391678138973843470069328726574702972780697461713927960414992789441107248417279014727726092615863007013102395470254832408958644457286037118472542266479662982219628761320202880588186834766355110242636074125753264156557612214104245992262426714498749713035130359623733421844750661679688642148314136010335881502957128234285720415104418637544353036178389804200613228420847710313001427536233997327365550854993193027671927260354940011603065434022479915449888956370827904939460864102511055725921883592349259689326323961643524611459045623056900055999382936854596700661329233536631563296223186381174361694965379963031850450213600431432328015833178084839492650651682594051905490948338276926841777760247190230762334800184997773900913145844157543430844082312295657759140802607899227682698535771298518044491738928236367449549317751202813093410015916505497873368356002353493830666055850927827831614577937447144043867335951586236023535247820503176306508346790513025304294201012675935997113421843001832216785775423604675677131059542272471942225528166259723482173092715668946409620458375416300628944181569295228536284207553862061308255047783408292623350932023507082175488237104637795689927633738920810325095401080298898001254737254770082804504722436916882425013577840056432765187294902998166514394835275289725851731217031207762288827236064813386268669448390757624595021973647541585014986371312047868694890459738948654500621440280246368610067550710858674487003372031359206815537997390842324824226792220019265106043498759122436218594941323540139978660223661705456373891243055357204172659882201115906886908218678757311826220497372249049027683659103341588184702886347760322269967405534090429626029435249250641258897598098791458418820382361575021760557842052541121436274174846393950653067611929554432910739245276853480562831247693345691543505018481671144877913880311385854315612875625952741516237374019566578968722271995118613217949285954559070963125198812180358121263515119871440516943044499487540960123149932777391402038919572122006054380322566322276821881989296912114993701055604840714799495410645739426151810871012012241156844206538721695405797255703660540162182763688652693409332316600548230692144513169396668525421076853844014580016284026049078242418265506714832613118746386629824011962099527858307116569668970606154191704581899187930179701183966294156748265613558959751769991229672302511988992201818614747268536153018341492744906092850751618059924207402255078213132186011483277873190629674156784150852010344996397849241114456602418915585774784871155089801220162072978379505222280618084656687754054774052279424390913323317716911194685843786534072777941250062951388858728242302237680790337951334319382191285887035277254802230669273621097787341042105922023028527787912765290815832298538222660178445912344022236838643076787893345458316284019110607385234374052838225778669092554079510448132653367552823644123232951691090866450377806810041402636121733857521110249135192730855841799016588175528852115951872544560095163670837857485197901151542757549296428985745850862089908253543795611945408169462223718018224341954082963508798045472220014645940063739336201710704579731536330129469461709254562161903171347443380933299419720181660199846017908140326724978129234912688221605605241252791948710447506108109620675600296854985257552359834351619721643978979295762457075195310538332043844156669888712636257700244357829638056076375727470683160015610911181077030639605254348881885501053512680018353184871333843181808566097747183947441585622421971646894943560027661056262236488040477762548490277982470135048812164424537263984761066037522953339647337593111860510883085059873210371652670232084437117244484068804094997491768248202397413997854730686988788127570488168292671330079179177939017866282577456526532913728318931390418324306988696386096670610412217853426043912342760130191540207336989332701072252070099696650043449353113773194931928059791478354877807034882515584249546836159529863992011402712296497651158950702404866847854526495048020102810352784565843129611190910478430010591422834555030737022660285557281560554813165967161493702024575455807555921827367370097149339990366223790575430279795113750182884393004790811487534549326662025143562850173156618961492587167732090144597224292512428584450325522273498069409899038808428694513385449739859945277128454796027872843872295912127450528178154520820183680103445225965494764454996732800299309520595215792751352540426283021098140452184267894323514012753350174494837646978787447555989509310088908748320847611627919519389101409291174864318752831273254259645528737924702428465747010181243489906911484028557488064686617056421810467919846292461859264181045727440391710267232969290707918168159721769351279636503312132128248438451495110937648219058212073311175876181816164087429836569619096824198095956451052058322334109549693081761334577644276687272760039514724109209810205118603618712639245554254091813651920704348169843196117365943169562005795911978373260585455714793252370369350971054267894100760272545232170057056995869872882158117878410179837339089537687647954555763943556256415800019938834301415077186440632818191851676186220235420644091835777443407822955061458708222003460358768011474802639580214911206618458399415239510046827316977984770374547637152682762921346333140064954733048252377976575161374818980352454439536067914446721469216828793031156724675017171849466269339944135715807000467865525181935418343412884543252011106379111403430263779793001707758008708160417009163727872091780068228045109915821448846482662427795389594245786642922788140013514076880284635032087514433477857602557395578662961848097003978631246630518760691710861642430319937252946533705941294581522886862745883155167941164122337211278309380210246323770339957275817275874532822892252286603376835331240324372653135184725126284855609646301739435982290340107992985505101854381476477688353443975241845493123917373007171082895256219423581095064327831720203192272551252900783464474678596235863556971245498940866265678285439912675184145149430074272752161212805908617596200363451567680658176555543597279160441012719705523661196449893094210241470465629904153325312793773507917568035115504029100198740340204322265253746347631953701478527940832853935473267020924719054455107103727821704662203970214378565268622852930020449445268496332556729760645880244446132084352744679359543798181434880138654707827879244642162157623827898314332197361859406077426445372686065614080958212405042586818744172720755593312220810003746940725987860724755891176861626495633990558427113694799198921870061653924315934579632887597646886292204298878216094493699016373239115520857972622161827405920645871691082355128545593375890509312438504313288407063727858612790759870710367748545906325127227073725191672015349302810318155977479982969834187983403751996218103229974090707606643715244527907788559742961153969600857949239539568101530101463831296764446869913908422215741309178596492012550733506443952850732564376463287902069133279947916269448675644647414157459992031482689602500266599770976482488674576833594430330024525247635822391356432517704996293624568796815162348877996480544594674848118060728812290792068925593355896694158672899162340446683967977805515960696362533556214548097044253164692362489401865606527448167683435347498427468695965133737085520828980293320597518529120718262073015305157403640199259210099551422319792525928747588107496787136427967803566267018696029293021214743246230672240460213146788890345076565443107177682685845841704632540109956800295145176414462319773832042612801086419047475660565198814417219656860022736924387417160253315576353177653132337127796830100835736354591717513835351008297993095934174011241510960420846218113572951785375698581916077963041575610422377363090376535257740709601587145590360449084255547441293490718509319097894691048869610935791336169753440937299207121565630056966534565082944444492218828491932355026097616285697310476227982384490862315052768579971024262027478215568051386962343973308415252705805711869605701409388443432566649525490984512222736215959411478791534375155138596918044226463707331456889624577552768904545373281886696276894928655956980183594085295681668325570236812429790450234035386689051406722872407721720618004977128863518449571366133068461574289385051057984709680290626140195845381149350357863997780163970641845132329429463037229559849463586282756118735475237217030539838165534116294084166963470938746632977029521932129949380984139061411639959360448649625025050248372021001961063970790015080093257203232287885554989758454811065700205290090643929611351245382397126243918680557288279398432728212456560118031196884931238403720829215634207262866831778371318887699905840781009426693727245535108962305657630783532822447161541520589742215612281943361439222431877141724731555366569246592812225156461467030362675411944072488830287908973760978614786107418243968488298821958583111313784403593495671570381622856822208057345572376022929497951961937910967674352100693336914885132401448092976642731292245111350607495240092106346933687803256285429742852800618150201596810994721798311252158060530673265659282371638536121601478580323080428074721336989245304177923775774657486443190016655573758146529058326235730989622362174679388990626549450662539335287726812305404065592183131788896837709190618776865772725472620266597029683054338207338240506283978792338975260661516433091464914781320762889276008948150427740622042093264100796638953988058690367202973084656582225451529037631238739994693779176667565020143229768481481665115900351128132973285819844861593974243923328129540563474444742499179748120289640535996381237047004747578381034771464653380144176966701443782196057322528874999690336547935296279251134361322082954584598072541823112299308519703985172606806432537381987747882743058604372531744237082867897024784814071904546772194555128015296525565534343774061576082258530049416352872146506338126989571815938898693902405317641669600569146284598926737293130522220977830486350718031261358946495448437812293032103325788986201500813602581110835535466292366983004409071832842932007458471932506486261346648140760120611176884141988053897908940197210923441586474674068179514236858169581795822900318275134831053097932478094827392083312767670888616000464554878189372775279898172562944774681403763057994123256301331720109490117248535239731573979814724423498738798599470561495829293411473197919081029537475572787134088548603122373358027402650509027176701890052228254441400478972726307226499861023576567944500441679061620290317042229337728645663547753453963238783643663841612402219645963820154631055180439049841859118567660874790444743180859782896626550671328814638128926835594930636742105675074582959848045712001680890184877484552259125061049039340443529979758961545969251782760452312225916733246773017469992240684172894084232497621149064700887110785510022201021973166269944966621846035602359527240798243592459759190575314439765629400067050846143948264930040432652997732998823599758184523851228626689878940335978170610886327457873519565647719711164907801489087793510248046356685583179552300339758674228111417095647293201821451078127186525859496471453810330500358018758538851960662926386448950192112961027820990129947171342838650994677826557787557706520400034254228175323793892101730454335566421238493398813813677486141704766194188064276734800924127994116337058139171307005184549063194978546577103436844417957849649587273689381110632991704001062890028151658310782056945609130492561818551780511773120400439030046756835235886021445746221078246910836495688237934291021155609349559228581563154776512244404630810857657549204192950442948012661689802415573495743386792511464360957532930467815621882087263097613976315621745483289253630385863652230254131508685540534343500553648162900986288513505080568772726683506135284676891554353410968491167962011532315921268048489741541621844320293923761519330967175730700685065985437381718584684729748655439121104627790208264754283706860476631786162427264236561159197397502680995068174348658405459508349957878495619138893459856099199345403797250035255065811470587361891454363792907560001529280634297817425272408528988271126413627628367095779711856941141001423679045851249355252147952072178785370233714874393441506590175360262805005138629205073096843015488631644178669834176146991259353609518436421776800035066589391720420185507839794170027366947288444899163451968836197579004061808592224981641951339340481206383167110193387910731047749784475543959494349836438196747497599891168759429425571332861697309852692020210855270569928464368113787916150975220824188149520088111923712204918283071910121362246579666653857242398167779868338950021071041527075720052713756970298633112568126218047807110492801198969752151939708199675407013805004973429617948575572555458088168405962178656903707240837303848647419421675734962110826050867092630118974067330319461200571741915803149775294047623667040318869368433312458398480211788281423739528514314275295651776679047349235223568045031790934665543013829285603706386046978775499505652466010472848597544807408322729306308050681003755810401711171291579104864274406006943835673239041824958259531448454687134164334401964265422208849239428035444107992507827783520349153588062417952029912111918061768690319823039283725214919907783885029393059600380940154794357059863149512477518763886166975850816879019627641454467857396765017363581844592798446629720689757554951028883549027235806078073524562802598466141345131015224757252682519364534421443225527019116439488384701260724030643369825612759508830656882577883792942244903356603205090323791671582034832006699130792330012092550795198033241625249670730318420058374629347100113165236851914302985445480243905805878967536803676642935328697409365803778469414164662980660583147072741738642769667983215543905656864977660152463442976938729625249875720049111800851239888561839801869922742050348382318001160130340693772031165543026549627442153241371605520632390760273288610552246178038118508706673695338000907992213830382178160162596106673578969100792972749961246190874623498435481995945246092945330529988078067097047014714349550047097822333140656115749591527043178970037931731520308757235968763554102514878243697482795303253295039971625947331984428639788994468310387872362902739887892073887478135871559601539968050056211922565839617630525856200687393441976750742853013176084372471479900455992504437896850886743302048426647067928424133035787571845402856852902819682921158710653266094507105128286107424515042808987589915819205703231940900783000655108016121407709415385790154508574864199928551265387603870588602785587048932728265178552831064487340680135220600188694144471982960694303902690193579695379928165054373605825611734295040452034446573787054685432911357256435597551770252480830210784312813954869382248577511069326927641639269013198012012772214515204705014796129932037215374128047916270189607850950020203653554645323096788055824660143590182911641007492607022787627977570682854611482183806432376350427421512306484597034303120104625513030532068109238859716370931792549514944397395333774842385575946241796426831715533007096393623296704817901659116622276763263476069522604356068557472130562889724868131724802227368871262959618125165947903474974567039425633220037203200015819750320737946828952674691682040622376365616454873302817092823799732891247497215919516344747269289594282688497475827039909193082614829779113654447723206654608709519777444481571635485849402885522149017964308320551123955574112957007865004773870935815699334720349209923313583729876421472371879748601417878187039039745205302213802573093578694600386676766526897955703645794744322224769260145214653933530011374343638487277046734188458483131796370222287346407890064241021473157132554409602242046351659696151431069381983810334500497341507683345595191626694222208867611574171122972824441715615138769246255700243129727922633792201885183944012372790057333255541995637595978313818234405831640601636830164890165787293184844749832553989724105197743618428517611174810637329055313504739440513215350330832558686089628061280848280018626051242787742202337101746268352127902053215417741337507779716424705498392589204353983789033180525882429307539903806877373447058995135721647803823652708295923224378433782998230797918722504505583968993587256728980949881578902677973023959613443450536483392199479732801073326506730380242997516574726091584959020945784115015010978484912824882279937151004838903456025163172709796281177737093843151660863518198612210842425077881413768540845692414453991429415720062805259184478034170906192414348740941660293930508601254544555735862509495511724722102518970180664437412342179956366387945008955613713263736194073030670198578773716010580047924171834020993517587933072199443904601410700716438164662852431325139641461548544010977024463551383917244923851882330080723212957537599063562775837450987465652115778541290622225277053921075820175269763295929206726661100974046318126798683306872622129895839757370951386904993282455934787188719551137383781519948619271097434628414361059098421824721561351937639438322315711396652293659257150445572590297406682335744414316514833816441456297503003695299829709508348455295221544109780400405545942494526869686411575281236980731290742796924856846999432348339967066711015342210234325035857254141986806126604247381446842214262445200423280683127360440239950290852961432733401586431266315303748662657621374974489154610598782112732381356007229650641479654108241313777011595867728068630724558043430082284265270867139253091339355747815268361897912526006793112654423796133246197703339698886209904624064172978429858083012806289247766697100965202753038987112104155332757012872251440589405437142480162145577496848486445137554715579179983269950688122826564308337356457904716214108515214468817342060530184758658970005122880027570517684202799844878950979250510159364844211016015590582715122297141799459937197726741063671676431962229981197495295549035894674569031753898320206457220037915418956234389569993892602927508324164740585193558589202581280609083891482627674956269058424248032729808719102224799602458724377234467014703657459716793141354943501245973850741190376891496099171604851984433340055555468853926887828476742144498705385180821211906869165825730243238634493900392139912667078422954478192452297647544050102252145980123530489799077203557243801206574316423762880692669712486768046598940400922098640837837157145212662022968968973232069764923892992645132205655526135154815962527739556875875578762943554822209446420680017644040767375318618994062993153852676648654724416855155086484111133499679514688102472417910294304360383196127398185321901258126478015618654787457995496194141305445003693819802644003192758765953855700024298021672416908764765171703816617085970370176550394656646264355456326266282721377714581475797131753109978063555567459799384056568153026442121709890094912969082709887213311000092911109125562269174913552243465721088072788136691217364409306604977522390079280462302844441340937200580487179781521837599536349996311078969523519749680440676573272852559575660424253024345268516893271732999816459677740705836867304019376858730427355995634193995470325886368188244384260271690170736261188061505088054945748456047859645081284934881921941831526221036993233962170962260245188262297743008942606772299339480620169781450574372526264022293460383999659799955450724975822461873507840184137056125336415007814595815789815084377524214622694297814156025382514735510887999785814558614274609708616685182002392629738324385337324243166698327588573674579957068271270210463312889111830119193840349023847596857632641290452626097818942301373056979540691025271371290414802129166126337911309557964764989957439931384281377960550783912250092570358192942180684131978832986083429523387669545308332270639634243341974067151738377932458391957521416960391109973578047650289747746956612955011641230374209748921846972453436479213395097606789020431569119398179964661919063078428535093355505179301209805305166620784846769270827612033090659237234901454743243981392284509645945659703941022040969291190750849278333340877410551759123260800752600434340586444831536566603589159246801683789105178391022847389604137630663412989417982080121343742339595206429054242662577962690766071438024567853859804094628400694504246426346059299511650857334511411844738332066576402481625289115068556401106819910801802248321939149419948001398720822992148350340680788172642118250319192350722661234009767340200588931342355464867197844496961648345989596735757035434830908168843030460867277411228172492243843162481871597807122272516210398672949737577827185365731392948362256058856606973329178926737330566490300701857342936807784522508147930290199224596374775084375701862943916717094612007456512102688037445093548597951397322657682279596627161012954697301017031966130349643188972944693101994921138964508696844860398546036576570986282210337316757098539425668422676184002551843135527339389750629039541121267462653720702446745026019733269972279957165286369921626698804010494981414673750837149426376207488463053453856060778195942700484255495649327446563988885981627465064006869590574232906283560571210081894638612050483112944813722589993457952088339402635890925935313858915107172010831121323001193977704026744894017804701446285633309407464348584518155088249574657728214154151900059613159976987120876375146523285476445248948603447136319172773025580162890356909267263186330004365997719916909129697194403911486055852414981510634410287367242104171478023753543488740942732526921363025814195393568096191736494030158657288849764424488260121457767382921754530827268371671245061883116233780592530579784829558421380832524231282441098037393934847263458889019638109658420202872272245256365237321609846961568617174727998047545150685587193043895590700495645602293565254948107922083495160266776737228829021598618612838676000288477116023798913177507382337149692485781645613182747009933467148848695419877891839016277646686434588537899524370989511730718988400893117985942037748462189928818326295532530879155024751042470279656027532337385549396572396759421896754140688190207583340834475038687977854810820642460122656532626172650295563893676750239580349015113464442469096018908402031845565460813512530349664687965216606412038991382174740640410670851428413130981947839349149573102486060537758126255497073675249606737874562449731304409582705882058145544539395474078939987489434219528619074586800295831073472862562770708395816211852688734389968109152983754688649012779127557942100506493961328320769975084393751485912959841877886446719415053920656719786417654433937432262692382109889907538890084009371363401461979057357339644736762547674684819218743309064992358264494772348620175109684181591415602278811589966110837731097451247924136450100878210894803933622647301334971487093818960805575184327629903705389791230367472660677924176925481875744432720446565208075418541568692318017099174116165476962396038882135670407984920087430947166341954277120572426819887663565294255067680884681847804222177204900238751959327574893607122460471058906099037850358740847164845642975438863256165018040826577210147493302708887262025985582159750919153527127590323735504545759856821579632165473821845104115872625571038033476564812679603142442560796667955380926912454496110520491909406264157026909059145476037598292695917796943498333353641107062699415088917226802800670269564142899058100146080949439192030105738949123337337879011473024244211432145661979287630720709425049170866975937282163439647855129244449313153183606595460902298633493824023869393292879605420976194948500889697622644854949945149416976711195879001327523358042042567043923872176218079597608532921817807580577579574379961581656662045938999812565997912881500144334192163213022879567616161802678144295821940848489683445836016820590779490703381403944486023634317343161616184815261232264959786098102771370934999798892755451580372175101466714232011566644094953854201587309647922873779741222336649305780453834813353049555730923224458234457200531825527948487259629055253550462227795534702150990938275372621942220293649909357078971189962261981122526359828881460138526341903274950228497936231743415272441514462864537566732852100188472144652198612778143948854112111257249165929145195489712036024830928734199235830406708686077517901955072805032191436621950068730899204183876633744190834017866619651545097316748664309631406562238022743015374288233193700792763467549903960948025976522441568756090281835012066159948093787788916919353392356070948581515142781256850068670358189494335330571225024314954251034629282802583679612732265645808536700124583185961414969012027412034563658816748050033251995530425620777342178579702646435412899270378964450460015842547747117324466498545348213837399862564178574696603824069362481227245434188943536558773838898688896187981639618248337815590161586649383915913442760658275220595303264416073858337098759449280563078664762682534799911703408651740774151099046080970623656080772957931071486699687218531904785708963151197941726510984183670641195215647924523849970297605551493298911744130937930974248087769958648554385399417307428868258127700330685262214726640173401690243368929962274723860921517105063604204491940559013202336178828778596222070434103941718215010321259420832517836006251426627382489009558110773063556533586295842264043659025184779678562503565434202688688471585947788508241683896542329939460601618118940558217872785210821899467458170667554407434112811016985457076005643168708686664691877202102803190081009599354829454512218218626630431002020656126764586647230606928533346313043446895850292332359884990287949168292511959088550635829724325848815466543245620151356221163603379885272766883092912251715799445659599657509711618953380834989015564182881441104812760013488214267280217160925799852829961837474219600248162914927653317464995759937528562223688544791969878200034385887395376498831067697363362336671471234214933481698765109578167737779514320684230696378851043469655721789665303133940463524963303741500591443831634363302894050324652819103218643343748057332289922781235851668317721276135478369786012359270896633814126229871681391812692452105153563876572597170497864121191990679367157462909684753996565535342729215532064549530842741195292532641108895117851498688396933789745621451808895337594112194705940255635594028330867415050064334634867818533412331409510592117144001329545894038122697495214940139395236102941129685001491803571693056134945621381659271973566397874761177767982449903617445931304529758028192899030129455453305600148452181904588222204053650912039946787223650281746997204615218404683103325369006014319711427828455022280408725509391347403245632818427969548265225685654832987371120497830859890787380699733701035941143909037571968365353474743346529556552836615503343475657746561894441868621525009912068818072815274110489717918177008500535083779348999464350308353883807217988892884460663021731430421786161917609023436181195820100790148793455229863740157635493068846816772810215604027319137807752229548324028427315078376029983657151972726636379528397120687830344647041252397092961413852783026732551458059514180840514302395803792176475309999996106012201398761503388936745250566327026596479839717306684093639104501997184786481531052078159136914502924343922302594261498636850926520594634629596930024152451115522110155878718782942122192755252480817317937155380776999853029045420998396331904194864818481116392648940618771779701069210319423267959109629351448127570373339067475964411235749782264130385954856966758706189510086453612973088747250414798864394872397392332556547564420210529488178534573991667334829783255604495988326757947245718340642517581428284847479110870513417292565752031258875202134809224716835186290696924266221289535294025163921874723280019585116814126137148161756241529303847986644400498639162409763500146748735161442595354009952890044056507818991689191937033151317377272141058122223477477746135395878733043386973332435591528105694856109046979571191176121093392457093688688965410904519863243093545251025378202561200507940735571512079820879611207029269246419312418737502912702299702444351530439697302917636470000183513829367452052193996507423995851447360636713267388843996700491762996729394136328227019565530480163238525932545509548485153665198831092621255566549383593603907591655089439909590244353981292796309875078343658048838343524694871762592706181691214953110294152870179283943823416764781413260063311764005361312538904264604307673691053290567385581697384841607324062674645301394242961961646481491194951203660608363625948217937660489366868788898891906386969176521194153343089540712859960589965835148088750840693692249004752893496283057609611343657167561383359837092407766586833939641942908468280489551747589265769162496058705181908694107752597902384233901512865231821334578835007972939975591782581292462175749497686638585544060000309016695020459923466615317469320684496219192097504560535778327034203807862048363672715361046269754067650234846923403889608422655774414799587984193211568203226587890381468833051529661356204116385539766982086169372563769399468355800245040445835697655267626118253184507972156278151471224350400836994692465092683047707679457268054185749759434527744548076786711354883083638191897015759933997330624228433853865994239924134786791566275860636636790101715543255548008341360582786001667353948192771727788895509456280827231063899616296310289174084971498553719563240893268065273757026005693791218935011210862453827214916932335922046971796649619939837773138278545343828477012938062866832414914870342323403471278079077696690512982415986092669406789504787453876875957336654797719543645148407648746258002459767511301002392207841775193632578606851549761801468013376555189300650174443769914745374060148275494086070946664786690972064763048649645261331296109881797457106727449605987118693523354358347781925346152119454709727763630370224187165030405639240603978157371376895562994744779444378286442071655960410729799867854303456734007612042182690202922713649321013101671071303181924481552474092086916446401736912373541539665504066915394597148714475172768804572878278734549823633233838703500446011560222964262465279100849312005731993313767592126144660545456902966504357008213207598330267281383997325958887671729466322014058845324980589885944938973349715048483904978784954029976726555333332540042486701227951674918636553793100250583849477603081834054844581646878509291185269274254930328121627729199528294639487905226807595486862679583586296887544450122862877101415122636452060390824767419870648576298324564295363640106092027260064411954430167346166092185298536482077500200101394146850777812866129315124889738709002484835851830605140456084381453693676130880755463880436469641254964411577371532329169478900564235526197699752488670623154612199738122905481858628676764761831729410959625561062667831126522546629474079918462085023587223073136964245251116850476283955919014770632344088691584530891222178653269104532656263135501172445371348383447522365833682322459977340121288159281689109206609782098326097653230470951107573027066310157789513958696523326282345301484049501405334907256873091258153309044819301136560279354435948272686615765744318568129432365670998458431282588275794571071088176859442531620666762929705145263076350427913725788330959760251539591723450462066293070837450477139319826498689698628517503063261840672003083167983659913917119230288076045476937930704587418677836344758035434657012161268079110397798111854918126095207354564812152343423170045373980037271598190336346471031336558371588191197561471514424543152005529297091398601094333657585371032615808484793955132613158863795882399738008401926627933888798939980344844030223838799726187406331862707273139599516511533741132866224371841465690945585039144409290385053224524702753337060078016529829401577760831436811765317923139244979732567971950420931646421172346232048334560854317000540405286417975743055474516403371402698448584364726031856213377096335915634846950390419876002970636542839158798871625838395226148349489772821234816469754010490524388005576743962625734870908563472904768208193046806018275469764917828016815951974739653744968543607447513338841866883321627020215457311889078495800465041448413845131011771929927290412089556108042502094235816140011751911327358035804768755444733129686757139760737287811707045676004701808230739130943853874056307515545440412125290482028944278346527631919383557831721910164654145644025648954153258379133083202193473198423164909090962548561560752357184073710932098688144393216763045010674967545233005594033177718795508257374604460238358787762067997170156846793798908041690999235126214780870339042808368743018131819306464090926853982747945956503890712050241057920052853343692488361093805806905098950840201646677498543005899629953519358937905329222040246207413814438008283127404954913684277994363686527412754508300399975255642017914577938974680845319796821538759906124061266181047895440683570358911325535516753213913066864038860232156010980618608564878031967754495668892502985925697421441308815737421753726552349181395038017555703087093945596906966960503693096107117448104790757831732955759153493984365057305706691899393862815613800016797822786599406806831370192827830641613286944451898901845013943001133582123918927750935332349226515580592029469950714466013539785923383003087515721552042822644905619886103197150027220498835187291354401659856497592884804370850128430464188181578530685881710516090152921782852036923054642861943165832816223087507417223585589977847266992954098977617297441267372635171231796436855977594936258422587135748612467820003546681510109800904121806372644870181922872289021694191101470332282184192669001909688168951486552857735221964011671981936498764244576001063921568225130603833524057806423561330111602828170724640771651387404907549761871892297238192062164896409702973443973249251919148922017539491685940567583650841632962666958644809533363849788339036865214314012087019759697087468037118675313343708123881787109608068130189666471783223211972713009908599032246987918967466237793426154895997965355316751689693292464067830044257089060626145834104923605406062016750527661219518825012324105769763123273718990365434187976694918139056715491594701256911441059129705890833132553217272396928689361688077734680622462773251634073086172997437680823513351242496282864881008933927295555637688459777503514538865737227025495773084263373028554743776203754582923143279802105159859629340619023319880219491719331758012824539584325655888500367313412111206231654936257591537284283484024808021868440745302809629701413388932205806665288997416995959981634636653705303861825402215375830926011149545273753186431478668304271544051252279530420012727822715378680188861490348381956403780129002853564919205165098254421203563524745235993971025979356085255647594917533315039641961219047105728728958297154539311246165270196826725993235253592134130763942430061633894372186913973643924836217711750497138198086942940297464210307117910738365439040694899408396510433981540033767334146749021976762984862498553378735672112394154418345657063950736330422059834297767349183010087176171996112068217293537111961506450133197931501468729060761853475491274972483987004971400724825669855347347099339963142492861232462245035926568131376850339353537863585016537030589999057499486263708585287739237421995285546823753572073572355382269320694085737447874950767625510370390999437314734729500961383948520814241741654531186286531498725930337140964375453745470690583907071452907181370172467711995170253259393794756522409041208726024543720376920960595842481332829998080387815177566432983479712415957002858330580287452938431389356977354011834350415166638183845605385721642336030594148896478940209915575959334321193470130413757931915076090550945841667630715736392821985910456726679137156746929061633095596498004419527623890167478123995939070867661804185796464536092808297500687348788316094199040999013506192616184575782577965731161758868204616015348221552219406093710921921974843602397579833885614741206444042453803922526323324167134369354629619156628959280079164879459136221016969111614319759034991846757869130178126408270571680810977613177289599250859050765092860384237083314440165265057181297558117304744779357208980040769957059520416323855813358874691561712412401544971253269009025142473166607944798353441481869511630473397456145583848479406183367183405068379563266218155580004158949072994883451128738066435862745855736608963909811409077934224418894198994934697734818902022123633958456611957662114080947748042206563930894993809599749894289885099451567854668653029006063245471928532246428855898433191228612140214942212008460285631586329582411369181815631680258577344536766143407605016019023541315099536736772592100180458161991841310726692172890738139798164301119577978852714792882029388516881993120908378323469514881168812624934834907615355956775951851609823179623231676052698493428803972572695532224614990983790158912670684395437492564322364355592786821387943634535048295377055534939459581407215114831880147438086078934981772338516775234157023220490150524252218617279577608915343966941101436049622257927850907849690375438630050335374080080819405484584522733817484414671952286954472388200694836638907489804227011705897133355766741500456834807109043665517035327877824359843283957133098128171793925884264933522013175579296900636768600468519399254687155342139078796974072894053144834531821828976060300982163334146444628470479626957206525828044409933978382063160632584916935073838892349225990309036443644138025202804459690233146277322721238280228082400339504560870386266472390488768402896352313509929295597326140367841582282597059309072317085864020012489327197990959750023955371492527063339475740079143698710548272410150608175577334990572371623151312112298360670826364197345537587974699406958129181224096662835395005230053781762813853467835214873257038983874378801706051201685441470041381065834299100383143336628763359617259278218539911401212054955981202324650631269482832457450760246910724493466068512119892912404261490602755904250520307215101922002521037872117869471717422138863632784566780960074998998602423905553272710769005473493870976050932366223440239741695001932089411222484134483970156650202818014297978639718533222461661922460862878584024420085697502462357367504831314769233986979832441258772007677654114191744442958405174358646591025282306911188895395243934824975163764288410975398131643223492126046680563282821499029942887335497866282711205229888129510400518379467016669902473784029248386444870089565480407535265536487490277722360093505427898937593642200106892220894091282686522698683725325350895232542917370628548131264718567998182322912114923154815319626666533117177464024461145269722008182478971564477691589443378334105783370352874235163177872317648661039699164681666536984358839301335365688280439347269233674993278442997693392166786664339707979004876334397032556564352676978709982654323031446053826202044536966094770815899882057683702298199303480017562252073761444862997562196933879591590539572820198106576297100326306460973886857831562432424623420142792837305577114942557290629369540035216760392962494742734377710798762499125154384861390736960959732884063814828644325207043909413688522246556266191787105568872196012543552244932408568033413480064961348708967886388422298938433928351016876050113180361469506483145718783943057942960304188635380042185105245706782299348629227639729988796585204998988293384298580882534293059869641574788494008208390494377558410176958401834852752372694367600605282925975297481419421080842644124626060590853608012403571431670491002902534817480030317269850620614588784726958768151793778133541660508602515005502373335577671288738811252701434447433744999878735756520231229120445962942106430699795226937718364806892651662130769489209494563155472150165252683829366172387236606061173706933125096384538938123614780864804865277685233587833143099059363404261387343286242892860774062647832780134198516290254475466116301714993066275630753453790163378908749824059604337352157768188551654244694742489189949292385259417768871001624712325162278223481965691284322104406653500626764923170165330327651571651613279867488380563424526970491399428489925391840612495453910834300920006045022449124394190719160012247544316311622376065804038433175444117218138869085984985162707680879067187595516574344875810876812609563139100388138492737296237073198516332502942160872768338405493688550391810608421284195561416400904091799961431342399847992792439320825973105890144078369441752653372573965605939711545432020005786444612631574528911167312465972439247352431191370156759018567476214394044684860766332928228040163395258120843437155048938152883913832013453221735212713799706929956882414010467641595549180023195582223258051734623336263681430640703701141042341649905112830921770952172497650580588928412435615770746014905048148115997297848866538508334994556058367970785439225281529841056448279879152209640103458382607902154834104069585814503672838494579905823744201419095766053373715985117578603767161189766326721268956088680825496917481029191406868054068648135598804888888603825895715221273771424464598579135183601656881993475190067909638753389883673240336155647580982060645613062850565325077383019349047909235082155876521533106370605455946711558086149627287042726956577625807678609802615581230851730092959973564983812403990322082948635185301199535595537234839509078269080411932243603080487841983253997089234366308846899448011335060719142301644377147582937959871737031384238783910387059834847751021588182498133284630782935733846404998174474704020310171516066809744506539106614635804062792276005453644357678020444034963918558978656850722141789604767791118643280873069241365677603790842018043360053404541945747706715864286609921364982586450118118952791650652984229639417049140303810603031501198889963459259937721495429660887444615977467369119508560784119023325804075413961527756121947701909257300597872790544793804720218504080803809519767638925524214467334519136196334391739483928720121076561437145828930636533836009255590838057339518424512504442213645226468630163741396705204581573508157780991322079752752524854540327029563971327455079434652665738280697043769071210899517974361494875516555779677006384703868334504317929091572008640769021717542632622181366976488614749279294845751469354593864442973029593211046173648248001393330997627311299616058536203195491108192974690383357849616019265685992070540549335018423838369986586395961847741814341887032398631981607511057506404712827543332740067103678306033807918800930691974281345573140782765097655811445534326941663666272445820219470664944526924337656242789821552034397035924219485985267459856126470536215128625696833976165662185553841761515394510624693055521601046324518603814972474883961237625912831906854238852131080079826725183283142350629759764889313734424540696740889220381283022012686131008013783258997929404884504945806348694741928258443517133485734382700812950740969218785803521067446836583554192602775307780354517876035002834852255972104549080503071526590558756719432714021195315871160524496580974057775476121997499690857730587639352765995078275922110570473309765237347717357368426795177409171373329324204130248682279689757613287940158751388418181089026531399847026069403941563411452970827934681910832773187211130560355308364487414856548542169414308328689680727951321293296038308375040264665451966043593657800539929169833860545752435376555086181386480858448973941258043593457072217469549202907855522357048704915893306315793626552095445645966994239478135683881930505405672858960789969915549580455988319148327556092680827086192187886572398724127751843265950172560106368762738590884161010211452895609017116518344075351234741134080006126220992600775942619802160773499840126661076118211093735700368771051985385065351352132282191421097393159700141518522979561116265541050690127127977933869097483013229890967523458296283662457260720513516420916887635380795819498386726157544463586185111081268464834478995872399343520176359237852918260093606063269473378333029407422922111213355989215759485908157815799307244284328389936139500688158507283809445838380953225170675668476314103108035871334016247241497576671384703541130953961328397215661384590043223232661291111992919853134870240049079705554005381918228056511572930522191901034485042499153999668007075976075386190313477637800835732656118729807171683172273543607595729501083208615776562724537257431714861878693890744322641496875916396169900137411951724085018037025377471617468129272008905854423965178131912485597361522800561021851215786415052958006882095815676518156947329984527325925368708047259317765030190534164852009577225251076514307298008962653563808124687793790851903161962364337041769807041768221136060584460499895802567480743790321513899669071203751088002913119816519232673219700969660505236542063451647009857323441214947171282196121320950925696898962881719792696263373295207529924761893691932023309295475017992173495020369301840908553507790998467339238568724455269934818290944290328591381168722217584793219196699459067690401984624154503347656577458836174605188693244357875928347725408529632454997800717534565269407406648190131567999022512253522319673438888469425293794991970587585923626936437737968758387884386379322431389096583981912084120499979417167110481361973984892676080695516834652498185014228993992138310344265475757095044058786174127458401296983917046286982390932670473181474532129231222964220765992756659670756159031812164164247353658372720444983252847923310713220261742883960991995229940538071287806254842298655259073105955771758728165193717653446242501386868986475288612009134784256804687296838361252306944902831696445028415740346708819106267419206742395489851609090330229825134186788387869823388303469241401115132427165736376207141470704930271846256830975206133445838766260968981820970747843137626727918360460702525351930593094368727812284580473213859073199802430832281245319347570241936547378273750266269464315604345188154066139175237116472175309623078868697420452036524550696611586927570764854864082381381703413534240933657465269612889394543028534320131740805582425244164712799778874215768899741913646888155452149098771577727514491096389864489786962640231490585478044024979165671087976265025073047631331324438885388125490067204425800001978496915140779348335349741823700946698463205850998243339016391060021160661281211589406896959207245025950433299935945638207099803857860350103066415422911278611271027228470324918587418796119170502476646329354506884854985366852513507337726604214532563795137886267410333783597594645759161479559259452297425508653440368355098653670438483081316752308031370725429706073340415372496223088588660618715889924153095011814581688929785132936248996853607229970814319920870831660389174214776639031628465232550081460454545281430584434493193592855249801687379081338497089745222061736131345007436257443649710316257122593403807692166886871847293586428904354083781063590876425067787033886007455619232845772210626058399516739335678971110440032444741373745147660500412563607775001323316120418568196616650591514033674240518109308380684217966332103799372305547162882186263586722920914190104806637359353578339213866449919730870697182329859864622930675884943707627995915177782568066826760143956107111627459268063423004986991904548133232406801717729132302948328172687810808329961090774434935177613667256638770387295623124606752992646028334770185526400154334414674007767238890149710576959766310188540824853013402039370148954411865762063928854295938247806535942825152149621329500160030771432810015837668447044538249657971202841813418879535743956728881510964199842574899686231576926977303507667905915854854283479604684293609829014458310301720651888697161533586934750969987985627652967927376979189427462047720911218494485292441801964803003889394197736736086251339796082781847773303495023168935199422435319224850980781777483104838645820033638844608752869276403963545079794651724077756177840917880160729161915895037079884279159234689174275377415203395059149216269472635759081785514612155807220469943100912676235799368619251394485385273393258578398677923338414212880753344617124753531448209330806540271036471950423812600034489852892180181931061811363440313908648371002679713394383542298666328664552357812994589814426001894669201971201923099848573046376494867537253039063773356003240135890587901148635141992383238559990142490816331932028005650215135067114199869751981321383056290948273022899351039206007595241732385783867690870989349218118351104995573111060613656925551936403509586038273646412437079325456633002308774677105624792317704714788628362790296086940028726927776902122356432538261737493353505885754033768819066233365193956327428980831556204737314109167288854584930535613043146757383075904651579513101373233295471921807993422008287430691220251679945355610924608856382638252238900666426495481767444847929038604128882236473970584916117777984414866841931508812959883435206285943719205986563200535569800621938256846287432997570830069875047389395577245833393158548406803267617124038442638819960609403154422513393537586664143117987501569393266626644074255564526612832893394999717097990429335318430250011197186991548793736981444017992958554778564319127669890575141005767037184526342425301863975135877706377878275247221272454785444206392104222049683886535676598023102310003670263700851140173285021640428590033204047008228502149549506222545857392836462262352588524718661241457932412552068018165755947758094946897622966583849994798163253927398724609165579537807858265181510881864119574240117700286052312060037196756389684397535482034420752767432835299622835603070523839965203429706988133638273701568885939190823546754320649549511792646722568767401551027171350057703589048381031521018418240696212320212643176535693368150326554742855668731774758095946389515395281301617288347517961851878400706025279373643396551879831094426444157199545750372491494870310038575785568181573424884961010499373526292749158310934249594121395468385941924992936025440213616944229311385448869624003350952782399956463819239086209070010315998516875288360410569304985645404477837924240496901031228224561310729276654192828751175007868010900331674109578078582001329806303213501371439088498612304248821624947357904579434692380386471757727903152471844251115237636751320011932318364424257277979096992706172624161471313027823250803446822168464978354296193697824868850571068454293212595530313261110693854140719222464755797916642110061702665699137065775200374017299266209578497566976864132026097519988083910257255465094436917306164536853718559255305733383383447808417962793320629348125724381255038286510203380164743777350168479363018023146741636956282101539361591884478982103807051548767284715022653433281000641614482643339103767076740476964314187228835542916016847217784860538452764292749524138221473938537129690970862905940990898027492549258165360775464434062266281891748214982841536511957692521329246600639259162739804036928505394687871112995361766998726369397398589204741609970366192235752116278015091594581533397887290085541494083971405795184150880786985206878335452568325373158659581822135139702294351622854221619227219343417608423675464834173460687040239271447387278538573882185102843428970730723792264478535291605455731190489988288587705510926083095390960648632067942034004044887576876934009157819531152444009472845355293777651981474171225086903535583079789768312822450039878085889905827545288313592138423587459685705087648137097874826493083250685732819475568590284449112011677311598641249179082171441875805226996982139130723359996262015367923297893808035294154598015702708293420698518101310937157280107204094485015101501202417728894501843744789455088223971880616670044497293568220824321540491487396950609596355752477111407600528386916961544188598637343778362581505695387247203491675998036448841317737984331293659835160342638046913709357423059325817808777452784946363282286175526720135655093546226264298616416458561110979247700567595702241344233915723641596300649715381757451854103967531896949764535303215037145612993333348147791682500109708954080534007392364163176670810470552661008280322760441052868777836946032153144826230354235145475280792965461921245234370115337343162130071582259274292282854675214249920317480178059015879856371654307859892754286875141609033725234511199318188528813447829418712653420936582824891281633872657833398868543352887169666764822673746329035245866916112677102869345701469143227887290086235838961989008132494391982492349325905159735561232393528142588838172190136280407471568081880140361268864513935270083756022423446527891621274463321570886812693049224542226567921379152414302001979867363726899952701949282779220364653474800438243392610322131606932572347274659787217291236556486934664557056668488394590375590410777074805470027900428710720169824315292510288514746564470134865506829470303620460061553410710084053285403959375963577953826249141773467492891242722565305289968485952763686478284786571832584544456838860262114746745135432960478933470605229146708779680217377443676131377297814526575084280614819599848022239550336838482686114782214852389925695963809287013129459933673842790163582562899076620456803580919691863240478853263658998598615747236915458127394553464706051661082729547697262168173838365723336443324568546108410950888085696127412869145035800200156876459953168273649934393630489601876344271963635414861895713933188463971159143580950232399434669087158924387806164961036541300319526300064616973150609381797040570555070121186992791643132014945814124211936434219875852109968136894438889308043642162497246337023298206853412749882053809500534582888188531479082706691881939647206108714996176294269795568473888929255282218444911309076481086418680367906831592613476153532777556509735296194160148992116176815512778640599003191887529156717318185390079003546134687176501855977905305381852104784036005192039493271169233583590863137901621561180343533537628995603702917210243842782567083693544756448503424530717739154672261381263711293339444835251431917906171921271688922007884616399218425018050350574683753213320557934870745586800336749697644539088016890287939197129252443280980881337121250282933956849767867014087415999204780739006838168063536492082082092778175798379711646202132067983447003701588854743864900470070731180020976822485805893492034119233904494383366458556583039680027808659204569593820644899349419511377967805771248196008782766559383372024206438019692873495006604957706785331544703979142228409579169157784127926730394770629859837719507988166842672332883013267509859990881105563312509929164445704118000448872688166907795856514758431459342159104924650130174653780064014791817079888744601467485065812173350413236672084952858122556233584446608371455296872622004637905969990254718126717301100344691185609252794416666623889578289391634316406788837902558817950520845863274359271129925341628112154021748634523963832830200470328592278199427090340691657142873630644973033390504634209528919727741146929805815917130388336748562645448208134460628893982497437844514021936754634267060404443736339616071239341888411953577609531050003417638821041548783859192999954407716290897845445797473617515073577597292985471986362876912632241382278805469056659989273997010924887402060554683018340468945503983581579363399473659686693638766683242941826679444431738841581064687133283228699902572041428324271437688160951370838564394458884692147784147371155501993478026239565098681163279748908075290739981591853735987782145424055346346488476100465205530030793488872672476685564691609650403953921325719845932951393649993447679611590231905843881487158988810133199174372230734756622072654660864529087212077556716498814536688082156456797456160026087493666348293655258891492704568179896249357241582381730752015588097980053272451643298669891411570854246330101429603993118569576166043495726087876042997577393456074158701212575080625519863868127961179660268495980958247260335775914974830827332948239574511693538100369325070269930678381776297664146139470917461560522786308049711627334991412616863752736434356799307910064717033186106485945450238621937281236236537863200593648064259598389803076894020152358829862763352365405604296306824805460843734926494201427556087654659642393462806766362507125635819945199056728050422729661560616591639373583686427589013573668541059573119718874715673562570490510561740188640179496032958843541966439493663137919382360077225053869376827828402132907511348484554359517307437741075354834797754478475075081034550334777252852313284304716905580162736354605559553096779679874771495117718257948629258155552766802652780590920978322514281970968304239549644047982185068344901509991420975469506004903398698484397496012330370329849396238262446785072176330198604101565189857846670599484964401613560613686924105181416116009700503200031350426390515352795484305627168896754946982779826059612038634539013186904555511763038903743234625717374038612244881810116583584256483591238859196777717511447696918403192975390469855399497458025019456875005473529919378489589582002461791304209033138987535771190172163494300245784384052646087311104586453590908567081475497562925155756106444518462352990026813828752791187508934604149377797974804230099980035602858792419402684844569601782790494628397048372628651479065021452013138752442183031359990073534900059407536865557209826920980372431577145279200604754434522056549468194400905494107819146724880465186001358876445927145429081801914923618441651161089080661382169078702237267899577249463914924558259381672957059486522363560723692514661032040065073758542780869364242391256481981779303808957450251679827180355266202866442552415982269985618959455490502471666426675014439625234391305552249156796759140049513105586209694009939773146557355605059588922686060416293097706157188440985322885202885850494964468476141004036935249880039173390137766467272880571108908815835233777909349048155093565074919264075461341435564005746394045691898268935889808085609719977203563511453511844503337094750892590894223749276338639016347930930005164084279974012621684071543045277994377234285927353568033459092521737979761230407304913772015819108809397136315469601917046680611374229205971364894902708605830645927772661105054255291020096974925650849899903847676325853405320461296057981301097775087870222373898202965387147906713095414043649963822960941797624876230658480695508864695134852861927874463636127990345746688394346597516786891016515463298767255842385088426758468277077815012157860997202514548482920911325720551950804035072619363359025600482546565289045589706464715598774485313310985619507211364173338148467671948330548182522037230394694237601423453734447936997414862865114171727449708849722047994739391423482649044980251298296206823964600689991535997145437787357928352290644066200708933159937329587130463471090759554249718337852276596878035477137661136014108162623225376576875100000818434497501852192035889096649332610224377852116199536502477060270222712275179641550030666420955408441095277973248224241425537173692981020447274033152536760061174629366079044976333307734411320523484078669978462995151900327303837008196457501145605970515033266470001315028357755589399684342660309748850546113624780417114503125961172366475196423310377550607117402985320934854087986346783012820306283473137399402465582078429518754836120690153655543775820334368925626786824195213210587205826976592721820175408100556874071598898115585221256265244021492303258891244004772467581944767559690704677822031131095982890899956216818378920529972401763430823934611370540559248461178147376797907981656258907059787786598559197522340883608739010789906999173957618311793896529709716089618869817177884973417789798332702594470625216164047297370284766524568678153133619163967933235331108755983888227348391025890183962816349845008812320448992039775002648832611482572393271387760998188853247668782183573259200430420202253184417284033833905446277610335321357136953782096802521941595249641167606060555335590685384553848402829861758861722921683597853747075998252745938499409392106634471736417394376781624599362703806461266896286327668503654059330745443038756087652508314719430200738050303892647011309571780327002512096983409002756251726102428756348526813472998810748338627585763578298496506861324611166125689052505590489720112363625066137065432650600367107707396349381180071905352775877869161524338409533633316827638222981625955469222029820366439300413122588732316994758508265362758075536463372416759272557130418480456282072046336984078356149225362812596940937656390022216464816093010363937115689027901306749611921386375145941536717394429947738214379016955460907305599955439351754833155029743158164570361937725614801796105970484651215337370584832465533012531970615338678240604378650896599773094678232268267063982424047406994227525982855592088718709143583491398254393310481161377149453990530280545573555254256981851373067054545778655665336618515206582150912932101364612558382141780552436882539014258919811494272127695224469219203998081183712160385758746052014711313340157952033523630429445163434871261159805178794453755548088718696196537154367611465427019517703561728972318913484721817132727292910957143937190910845862867816139371001581413167284203812854208786780512428643675120877713229839550473967992635293876468410554870037557625479983937253190856613860127422767117613551951918989105212229051592878369526645614725733823668370554989981684112589980545457206940024555103884642841017307806265021167876294578457309304492540224533333801808512103719683554392549291168641593049836563861044220589474413833759247988697324674862546547261541169285423704004883771337587560890558598229704896704609139900958170640744075703301736523800669071514716329338220491344532683805402112975369657613358922034013056686548707249467689944914207843378485417125166643862969119641180586518352357005609657648954334494344203427752293742677423325540173823182050805682686416398492527487920943822400520125695837293416880280280047085888113416515854418914330761413945767960669286443787600217904592238109673421682761717610631597710886112389985347236880385029394554461213269630631755522882434895039454067618364092823935320066907646305229160710803673162624779719982425777625874685117614407223496355990576012492119761529247736645719319404947853129397302835072332529843798370812969884859668572346361738457577438316700887310643881086581061739920709727419734739877244675845676927809821979506578392770272691697536621470260099004703790458698991267970002854498869745498684589886131528752780010177048229708629238693127804203059089245723241050800671561321854767977180290358718232792849309389461033219328294238507655725431235887593604753275464081285401706593963603387387615782047361863116749234734476429282598043614349788875892942383504696219313792265921534978018754763236698781265790373818483626031981243933578109352961924208208057382032563932136844086666763714783993362971331706445098914757898262961354189115689016889010858921816212167193545831324960264547403318750105578065034204358826983954525807850303830744179323141543596690774841806986767430316685541649918297623384063053598380218870819664185306062109393172944836845507360717022320319680562498029318615383487878256096604654820171042636949113478395864527345895998986623719395063666872984062146424299311287922941102182014795485058723026923298203623202555307282806371788859689366989927260449299881177783501673603841259123647852621789194602297568698270522343616836668744743861763254679470784475519902155619852286589895931348409915488891410711278169448967698252158301760525302873287709175793195507791480338224561621648292285659647150892076678644810591266034512880035741969167253247754341544386267609531298257648581773566023969051174721819425936096124794120681965827937847854917013254723780031259017040069147649651075632320003463985287076475947015751448848872498530066945083803775856572395971701022387566228323403428373232467873037923983395779793170732320459742507979415203376592254115953741921659394667183601909332956873771881996849097067044093197885121752927518967796562224762837187208299499788476709149968928760518636038256588636806504937811564842321928512052804660100743955308425352832101347113748605803292870273534758714202845809897939508547660766101077861001776554133183552939310620596551304312499245517703970893768272189628266600334389398779094154292452596898154466444084241730693115609208048261004093381168140483451119518699562632511310779962385382927561907159038483276590726625740001270119379579284932966091508203029619761633972117174370341622551388437946675768609181734169898036525876962904337083511284131670424140453555993902268981774946204402432697783704412972245816142948475284549382229557230599468404004486455414442058495288881336433176563456788749288775426565982365795933037264632909926483773556835424650723120704625883737682391996065817352241458520296197362163057468948017513994400648902283330358250875642946213289524977822118046684533772672397494186349635027988814861426895605856848795006771865647295089470139672725358813415121732449227333463111464244462514757841944416902970419710675873042090826043414120204152755677938510903402666314521547239986541667651946788413757544778973184910006469939199624245416113684617317576602650838167321034899817176778916015685928749556120710183822684007195493309465959761925976300878951661384686945016969041217756648291117133402812039839105282093273309675695148992250900927492899239796807943175769843229819717175709192965979234035434815921712958842189349215358663451268330315492336983320031236677676082946924816779517455248296748842087188804532461623186715494203069104005995346187014354176395294402670037257394479716589387062095300561134634724673266589120350695626973202133377066793750508397129647121920816770404530105834620994781236910727158171078019976350241295773996672771369806208452983435706289732020929266870064764458922491347613951715181715446279850104948008612566413572738205247979887821986146883331035573977238958900697536540847046226500557162239149203162465577170918303517555383850386038849962156777841450656484397325569100747155268789945616065178358182670933968836749095611462121060437693521173289883988200377623740719215157928526567998056854345554226611170499152921872655414399373377265941391519970743211996139982273352608055813645447145473035067543027354004705401308863625065182036967713349353897397828885886494504375043126332612467933589597600129482234840674107296163649248740442467127714347162290062438624064578658873845054680714402892080281670226396941220797140335225285316909947674605955975210021976311926989084923059585232216635474926432351873940212221202723881287564159387924929451653039135948570981701520745740153529790602942962469964746611492890679455496374947196933056208295678433434613511374878549320329451208392219473207981677522728702662202846936026951221446953711319028365998025961923017922148991671927525615422086656401363830650314221746728866871988239809634772842386802549414751826776735942665369195962086231634014604722013377802210908241980044173250046243261097699888960335998082348502924172586770216215368263745709370740806690487469015248356086630761758297192364509547949260706100459612732779754083001923863931962770187188050618608707981344553755736108421614680616902068788406741823707587860662148464218186857184938292945530382608618514746724702787619082372713434651697362692998839685462666163363020676697482724135864138392387357985947703147256635951998747880609184737186585017557498974918109396723691137058771046997741975707630695208066719824173596574428231185937002349620084800100776664087832931707425896601016092354034607560360390414518124392590890922534105107570688807469685850779010341853726669659410332763811000500625106027875910871278403709679063033082545401682303618345862950284244835759611344016664662836543899166532839523500903622030650130561593993963186332983678306196031191343377559507008520479135236880567288130957635142880538513804084316959721102148303968358001150428058050545871607538268794703269863283832167288815794286414143884699653799630379497169690911918616124446802619842324192761209167782757765176139833695519817619925679523332896933275805338719371181233084758719177913168118718664984382649094837733817389733382698038297394576942066067688836177631454272132521557103083714981796561725183539602573376626810814134828759773628554442497915558490331242322479316998529110772656216109877710574124237727169425227169287435105714973723508112893945174046958989357521908539880855421553981015655163657071057589348805306499505091731685712743508517427476674988095692849752124561865710797679949893394339109118098624429837055861957205197030491281619960502053994278172484826472243994742603488685879130887514146677499747755692470157556170817513941422416433608721087701915487796307899113251758746958535421026333149622964665624167590034919105583490520016498454890162863972591561923039811496129039085190020001221148753986489368061443478576966304733969990778948429116591870075935637074592138283677425787770302981739439426651511027262301213981990870967769842471411492588334597640256573784193277516418360936199748435460347463967681280306428296096843457617487410721832430583167457898624836570734055174578402775109054648041502192743400669513817459981914956774151733083741357714001507544744547701534232940042518297730168704719613592136074198108277963285323842118450534679546488993297328929155419884647482650699881703735657567483054517303798024258589995166468713398549003723315726091277700479334250891389370684709670669838865300894677226581676439092902239857904948670451977204013043749674570744154359099102546928367096655801625413787170067945726100088183283307252406372737214203244844463287356771581821396142883221953849875266969098089912633692751422485937778538219641452865542906516749989234857767306708630136746368835384539117152110453024807841249366411825800635878152108780575732758800283584858076058170994546941843387395147666709430386291645192317900951078002870605824741008843897323197956116722787246979994035149133747269478433642083955560236306310463306832254937949170869373192703938730875026353242485574557851156089000683375733037621457593829264322299069261940486991665647540533112504029159102280022237192147739087201230135717066733472810470865730135968898709848738291992062855685280099415890816706158066511791338511206459253715942577373119551388930619839264310259524301366353792201104290967026945149991782884966080239524472096008199690299156849153532016001706496696673764006473209888507753664546589629843875273984803978376895564824094280372392320438147580127142192885006327780901078832677301557484613848045940486224394936527678043536349733975525268711525483836030182419355949077351017433836243390372516680862721851175057696493096710544539501980329939155166621011936743821316025342088157062091108927355484003814902428333607455929993205543979044429974144724864276487259314227458841530280224279392278315255685292408646093062618689924108413453299123414611184480148003616768227679367705808586197012909505636979051035312779776615385216323720454978796418212649427965329453292199304349960907615727264737818712996507719577347275592407972677882662669463205927064370837753798867024661427949681864181751929628175532615943257786125831390010036332161868822087102504140741741502719633322909515882626207160533092270642143953522826430421018730812441594933262084056221407216028988512250758309970630050311827024740924524318298721259315720674466553444788789778425359934925972727662235691963673257546736119734143206825060993309590263717115222072144323247625019402817280993455226394710575823427394758349874733148217361468977962768671026033150987344042603522066015958173557849205961203685325581170205546345242359005982851963367517740140400765245536606441539262036578709817256135180289980365954539476023024745465655748381369616212614567021919766875809280496244632436105415341350638787598638526808458617245134390107759400508177238867322340225530713219264270741587410381807871577657251319557786031640929907868089443993018706753646724231245242222632756390722755150572533173786106840660124905005099749681550906859217942365698665396310230330097297954729119875531717761848628156913095437266654054408038967749705061426946752626762567868447308210260195474707665753252987904977935104112030190005568092460604595822632726283511589165798112071189545867437728597191868582655853115884371815044138585074736141749390489678831415492183825616655467818137736131075550240123086094726799646646364841104915910490711888626432405927035154290437559025836820194009502035970689464784030528870923522691924287973239273772445387816124283656011287051558376907870590605578448790290720442315945256309314868360948120963617384157426418217085322225616703519766965917985336331352124101398024764643597950229273552252554018910538533286254195761199212791957242692208681874660354907070053160875455779101487183852847034586286010434460488353486339828428694731845039832969631199310060233843413532426610869947406295098302775196185039708640882906318032217331434479520993412032987995736016148657307695362435237293337019427497599659851742463035186095183619404780332487346109052065133368235757598307822632840312845061012364837389973046277284182322277207659639147266382554290199634267804634335470831949010599083217097749389537352535157469858322917070023253260165310983289280196264212337160337784834574985424301631172143419894188377979489598053874039985034206323092803842642651821568617999313805104515183088306298610401120182341940856223283903288244919762443059235389677649299337311148442917399643782965395627873986366652117472340025113808573484173374008169770811515030796608362612004476063856092455686467831697634808308468058430882536953499138695402958481315327313584629488790706606551561598961739634739213616004050243143327721274535892980004923106671095174226160253622250865007894608309685252576094300566118911078187965608021939452707243609079804408826977415509660577913581825500485485859247161893618855010962782386649402132968320899044186540054902968613384781695430021871744433997400706778359755270619552750784783614451221601733123250105007017132981790922475052976445998535440167835179248625085757922269479138467640041372345957884238088402480238721120836418655723300325484831391273099714111599122916030364886753474052799823236585077153708371835525626813658570548825926005713535766082274090099303855498221074709398688732513929462293043675868641546770901183146044216546170354509921997120788979212633960897076805348480447344121003096298559539293117385415997458407711381301551743448890695502031664754347511950116250219999423048732684623670191578500368018306037110531190660786950309862105329834498728193659119592438903396441941593309280950020251872464729179364116972555572000880925437342213419948104117669120838491282955163624218627377188772711273825105822590657729065632706514236399611682704445185157769795838680828623179001657350373165883720942589272439016123553101049649181182209986785308964674776831210127811462084912490199854022996133587329408137696914484950552012672696218691275544433634194210550635554862965749430613526513628546018656556301957649739688456443041466746833596492834474425641513655873293032130076498321705973491484966465148590948045302309543500249681458654714757178378965909780446443981636999197471053568208267566128957398501857229851867712501660760084847674599653743786426216293231181626403578080135341227885204984492597341130189520457181463550022021647377345286336248139519709958747980675749838162453774012743063633068739111089604496684832854917651022026426214865119818468921803925546680637458407129881453673906751943034499279721934998270990791908626278505618348910690797176448470637714398876280621755762103350726653868714824231191550198264277484045480888447160293315431734256987013745786600629507045438862126273453262553162786409497291285987155889342724953955785472736650700021906726985013380922104833322739741326569311037076932735720152682872220455328938699997432314224741558974938418110002888855889709662570501876091301249098613582258228956723126431013759570229605273195434499003706243684048595466964638122967613391541671147039614271621129198510541913690321343096497803138434246008794002947813738770737791743527810853150002742170951843105250123492400781963533516872946281717471655141836443735760424033393957794458582028867412323482487889279693512338877688379045282257450966027926392848279797061321781605773035464360666672238201018834891828762640374609247838644930518573497275840986340382854669857126133119989065488827632270624992978018259913289335670988540578286535608589285815852519211577541098453475931024551381637778337341682734125001337106927609363260014726774266484519318963464779824464082789740721175296995141894886740936649652220206277378787457425591962780384074427924678603417973390957439401223480238810689324702950175646918517753840923621010336525474288668932021627103710633157457454572596609111647387930839898531581491245778051496326379438805705464878904877233765828020429093747046014087572976426687178666753442065946253977302672639107077963846856595768778367761140850657498032755228495508658338621950938487348731345486997729779746281490709101205017667402840561251205676172985548752691098425752918047336357627740176315024074077760751886643954454731367977733194862855448490154998487278443100822644873841258963758682267496933529430809415264784455360046798046485485667831821538155933772788841843479208172965056427946721513106053217714583831725795435999393033375104046354795326019060793857333680185247000034446633078529897239030274070616440918981705123184706415640306762809475419411721318731956718247356142581215831312699680158361238269128506586770553040538521278198030887345449411578612993155104569753598169119371666728763239066969783473605324543892667680339399464554127026606789267792604616497581032215186366846388940087228555276551974805148178848178428807225609697908699815090430697239695282298631583854565022856255025776595908890141974245784652019754633177871942979811725269862778184455026567255365960072812576924778903688093671811828322954972119557164401378514118582225969358822878748717745194981126195949178608510561263392101179223733979943314952735374125781616100154134689287018785159854528003075198829893407851867175466269817469470956046737309167908234044054871348500034439311060160975733328764228017268902464417775513807703541949476750614949078734704659263740956200557784985976447367824196558225655793478680748001803774289589404404774597678459747874631911755516022663768600915757008368448225422168308293277954310525783375123095788482888870652068195557858908193736194760192962177737477179885823722142993660315595797640216334057631790229182406046675147210327676506677982692047146572667487018640228194037486866377354127179564966295240817656005897572691762479972767928634426348064779180011852253677336520069344823749258568880862005294315062574289378064705140272895983666347399771488784173788367544802624758108034920698766357472074396096161590387750682779638328104734146522266071000659392959661550981129314443955429881483142740745084330817741682342908056776405681234686534816783396025224721978981222802795996812179625970159542368905019038442452199199989012190818900419177724588571430593914940815057511853506013129228106641062549110676538257555617351858072627731033442049760165703524232202583076462268638495712593596229079414563841311382031606868601700017869389842049155901089128776622711330976541488015584449092263200107217957756927417246786356987349278434809384791647469218359253210246354465261709629457487871124624551165731980548692487259428701230406015261300457821539277965880129540734129489752818119627689654086357912868324937500229916680662208903383890410606818220034052675628641653601858722292298363756648155163239864831387001151881378656388066736836230070350010438770333754389075361374371789884117082497654927763259942561341548143253830475605219080428505153113921520413964705842748498807711538093822212103967108743558992633375052726281902145332182605509988647767356764624751125214165991101777360160558312186315846139101482816243385432821204644188548385615725327642394498473047775015798555062589603872816971949600805082746293743338645961778353690207076421493347809063343338807687797898085883025106990299806551299588030898099113879713880984079977635146192746033058597622670502627168180113480581801019033182818876743036348140830080081902322699610200557645621157128052939816902728987048060040213173196895187522375931127240697228294651719054187650671220280261913813913888908978883323418305895820547223664549455020980118030049777378762667521645013647938592514877378094654326186024345032885749109186062927459628493673353229426722878637079168148863700625958897048937730922398632592860452102523811707798886674046185468410555249944632652190679525258201282930784834420378376441697880395166617827964498402353664896864032118423592445345931813538539356442229644439895246142931231913666437025995978591697861071533592467464168978807778355731223718318478383753408284955775707113831663603776189243523463453513460525455963299223204899588288026898129103985746473286820201649770353083746113073092136985696926574476006811382993252927114761322143416068105664144212059390952302739661416665149385145260575683749695635390322926912805923293122459213658783108539587942985503339105766074075149655091275967362975584147727293493152351549387589460692465232932707407972480143537499880004473226320574568789423377615506226379647750280817151153222421614267875331648985745591335878117265276127911009683604881252582417316929063708372402334532851170383126952516340287412945385483962658701158697577175687314146672191625863819748478006245980985255965573849752331658686779553274328853954443728015110243264225649100373421797554620196699840017291219587014873854456872107437007263210557227380496005485154755262203742902332349125286723742790656139296767737233448857003701193510220236096002855303585558820105199260338172252495853077114609572620630554115206154102782673651951909195443989366681073687612324151211906027971862521276526292452347234931138688300322313089479126836242311243882166448018055118629382066926833095492646252350913180607880413887091979848796643320200933826459664424103779101342984415161505034400672617551110728868900656299820972807296060466657956739707266064117843879165325879139410834559376369633862140875414660809320506715924579123687762180517411159933330466282705309317009091410128093824993154433603317408118588426657368529873181346000038253276388348832492857941190632935353160397941635172592807638277576462520309935765030110453912566556335197084644752714816667991439561322642240829161555108486238619330973741345902322851338868265711121890980847327879336941248451695261387499954111998051908408127419287850111022174642586798792348906841159000691536171250778460159544051557384653258611395015788979666589755984866339154838389101955050039265930290885223736257037878350166367179675101334665901925635304091309540729942954236070325917454277680603243089563657421711385792329608206744042879877392574593540594298552318660596901843196500514140916417994843763443364031215938677575970009181297418357790624901962020632690992351005990504271756523681336971915836490512290580270773548851810329398130515127207664317759766965112136408775431997925231330236408412045691271647986451169680942179277700525421154163787216734696385576859788236854101495054578411960425592858172228077504681330452762439954344792028554224109630696957770644229223448981792236468847346267569224152081877425621371242478788717783969722552088816511643212169550324893595657949087352198436007679683193714269503774768989657762782790940999375863819755903957470101447117740825449187340029985449912956360802160658069624273574012035373451741497708142995641031210114802646261604048868290810425241396442137046621828962912306518924021061001627120196903354506062538602411328080001990921658649751262207411941335203298384698580456912894652874023270972017617739976824422374544486879902248874305975025651831236465161279314604058749371927162899733940605494405265895333590549946033686162263514172413328150894659641535363115357851131375780155590795085715712240362902004354420392151378255525312403650415102938876455515417765410704099984006792474562974185120181521878349297800696068167038646512167259259619898894074116160584517516297642128677095859006653061702003805631244016150444064215745358275569511963471878944621591354585633628938623988181292549872615484822517974590116661901323431915345352705287318893039466790068130174692063217424784165533557059280569831575772237900440836040332450802838253723942407641939765129012680323953500798532355414984284670140709169475665902742360183281352123723949667444662916090181633681286343768385146678110844942275519171000388925511661138175227498493851357676925213230181740546108517527444537489281341622975490688978577245325476811397509832909976425274934271855325667567259576933782384428709076074915308119105128781865867714441035698024950574093336859910078369545616538929252735955499369979339115066452066586394935211268454066373571346518287227700597842768484568030410778466474078157147393925582046423424963146481790603948645955438277599224835390874440739014627696115963532094645415717533974083804138162108609774325943451321352385922130702683668020781861046780419539444180396556404322910773933637478638405558453147117615900233624680375287623276029601396645339263482179661308966961200130210029754616785731991151120291862972010413419106189728402583061078810966171550474271259122599981554566347977585636925657653231408338926403831208867541775242003349813613290191141838654285655075986695254517165113867378813876506669664280234297568323580515426039917002904659523213679583422447421589980787286208164796718114155870016795124095140864664542641834408709421292819671381367967134344052690471399707959186791945982428078192752772697215655192246809375787257056693626964607183342486835593843430879495872239015354658193140840788163725437413645420115805408511543420448686672464997950305142657944340930143859035811430416112380622350190479438590803797946027050417372695069920345697394240956122531966665679656616658537453398262878250377988689847377009054059912552588090718515997506696971694983864523857636782991602012517874039804466249380680915457658105324331875940268419934400749181883325471541711004076072633273358196551322190358746655223496503276924022069703141625070427937501914870384861067576101656398744446412712888954546104586608495942656990520555852000478387963279975084311177201919775959696660209923238119466924342924286684941866490567245767319670139377708365346418335583339124640408460376834937644075447327456366448517109978096017139521049911067683132856060104454620194559111088236995018397681265433861342447256284509712969458702692202164347285863872485814882814943807004895797453629192422535659435022157666367375988139910163450185792171476274951088323583060395002809967500582798514231232678157934143032522501166427107943346502970842207011578771548921042820064180213837903962690482075479368180445232752081265501464601469603471511392768163075611150180851377925655689794967989817071214505856404884590238178035890074458752483543392272721193962964796040109450049063300902890926602640775065758914334632346511930143723504244814665232163388606050866488416498297940311157828703746066148681116193305562577981845015590417544966012160890376463104420413230161914347307225175683236695101046476342092651813302375828543761230991115373123927492707340740971003389633176244971901027407075362335791266989533985937500323213141604748392667811579514560742868087138038119350653347510733824042538388404210227200070458622177123433363244368962416590559294253151577696710001387302354085296590948465458620806452728776644985487431955055185627940185829917374514517041870776645131211920547178924857217063490500299835561533923681455287883039658046547002763962934575432123593458030591725692564323262428605858513847127090341104826205644884539993227854003644646895866505547456396376331499821494226583452451704128022871136373530202687984392817781551273444870750285682508281382023938484678133266546124928025069537587877401403202302045680245439206395802814154241671983697141161146208816480406371993008762748762755307512318694841417730372347637976672340172051219992699745775871266644159767941308420430600665825979307049307253950366210681419369146772410098471397876328532094194972437090638523411593630445182523788188224649359091837935562058858939936219869061745016613918678021529002643848633621708399132553496741726727467862116420747026309519878660712143703137797083361244730860863465453605747558492700901379834998328185115310725975851730186863091337242078454916352274866220380590481679673276608977803732082699173853976129697756236123739894205683315739814670810389577517635198422812742000200816552238475582468438465450131060340305685317176651325150881156024024438389831314434398736803612653865733574613386654631344756742725569978452458971693625639360113691517421116673716251270241697555200887732184653340193744398599423738300254190021455170685057499712844149212755657364584734821721190733160145521114422648838402254341315879123656468955730606551515644236416142314574483517606420495459315611251489842368516237389569682492036303375382985701632004965804816355791297354937159061383042372047502475652275977496647330184055548486844481015577030003871264883227374464419066306870213743501985689492121167633793079981261964222288925842567043465766225879843405647362697996434300236271212155097007708064404930361661380845649423438866916814404594935789592250870136841233539499755363433091281681955827903609187694931188731942325398736814669015654081218464090498750411472959395556176895605266847275228476116184888100872913222470435259449137786301678425393357725138771423244434409475121912371226154371169973909421665971459142473262620510377527424833223820101249199944636247440660269547708673971525739850602088331639513260159664291825631170601446221880222683155167796166646157263546371496951322527212194194832628645686655989188595974568004259442910188532471663752630384338993597384299310450634757139441543262799224623231427279879050152982719741538985763036449028910453105342028437442609545383625474991943060534470970482673636085756826637304440016777846821484842047077723824939157833475371633432126449368074620599692899779799578700710148667416996894877115752555409650152060379876944738877373433195736073334690285782600053356347618746268682236662476026485623792965187110499600746013377520763257278935060757311514977152215258059181233384736817967623757643796314574873566414734056953803977323347312066663749624267106214137870858461945596691657223146139202194817846586500271571290580943251777616010077870792362805545886888805863234125855078208444345549913686588656628935311581960013097004552048530945805078069309021152899514919093504595656610544719165469628854599935548661653080700685504446544532950084874768691028636491195465551804734829874545499252622012081170200354318877772543623853088437236767865444824147727871677265329048482350367430729254666996066060120799506695150296296326621563150633687245863540969999828118191334572097074231260167841185404985981407008250356622334890007817543403397391739135399418319220055762383885384568422281211721373860038443345599359709591053178301790672852458770062762043036791941224702370839853601326616832278032350261904793063081687870708059902222829393613293620604879513638750344573035339771717658805227750098416540619094364087229900396679817292806657341477668541472558497467254798562421522478199067013219630523388738914772369604020281213252300987267444951034030552577422685664058975984032557363274242938270536403088201307791426303825355723845246694999720942583681553049488090525204552985379106549350558274387868507102856114223794655525188456165858657340641356370071583684896870567426105728015813701573070659820476576197501669270979421323117448890625989060068105633074503754319018719257363420031187223015942116455615451769339136241677859218158109775869559980846924561062842310918531804649148936538334947579835973921577229325134836668791992018978989709843536895036780347008098413282163904529530090344175900805204682672113799731380394612468893791141398728518825274959169271623548561234349686876780901378625617835753568460434408961483136009707393743513284899426567204314857525514543470099297674835522243342120559094076357866831741792850409504274356753064155282943674176305774546495374172188810501186330408330741823112083477391567949598069300107647782361180772487535729933947030138931952036600255932297006891234604635850295364785178084972859998877416953782698025711284679973712709712107388993256238024345517442834207809629968596996237866478549740935671370408277839694118819209571162114696917026443333570209121046646513563632576018679130277398849231195299307420738828434549393708144757119629597584767547281257927240199114262864944174869750272166621188094693319379921072702375993776549951570091660416756711542155992232044472862560170944430858963557703974569882267135091039869631222207073520523146020938879960171404541026250355424948688018124874515288838895341363956429492786526036313705546874524369060043829818166315611700502874249445730596590681221919827862631573179028895714771250412990745951729095122832526370720550156708594437473449636667074072503638149650774954893108753366898532090904757867143714456236756632080015803424910622407871276102832505019177683440863094809175622017211262825127966935681956251502035366813886256464932135163272859990193936608198748357837350903308378205949197197822756192962277351723634136265593316209360458426246295806229035070918650984263076082518797344175110539385469784225340761041866754948171392205039242899966059581390974473790413895234308305849799111121018489783430466297927653022887974575927372310705798367534297415191161390571785357940981010326326097359051543354716463197957092878049236898966570694698408949458191347707752652902747933296400364908479239780068409023045585572167496130721991473451259184120887620890058454097902080548423916321527285337296755746197033667070419937288117945320705549926651897821959741817219304936351329080258504976904671799548862430857566467935873273344496523355341182783029651115877415666471529005519310932220788713442555385558280948267612915087068278300853580110725684233069231680839543099345508954486501705162043202887166288056765191808036096067913221982005952586546176679799987416568634783700668011867897649938722166152732886886907046191801843422063432232823803816832764081386321215009717370682912425615922584147545559471998623130986831192421465800793649668430548894734305929551946885821529219974387427225046840021155466402883063192197192324709721407877465735789990175934885249020636958925158925931758398779418281595341270470967588197135882121817618375764838975678491295312229018098591756795470481617180532959927052746927843152378866354884497338642786196162646314218809741976884982767211222284195522433816153963072703029443910061112602260589011219875137971561919558030565730777313437022645726001009047126953574795182838294648655738867652962787397862670791023184626930586518675788253404402727763191984845761820682127343625286373221561240155597774436681149807925017801965364458670651609268678393964050922656264693807190061490973524766440558675593480225408119040144797153191689309518283072579145884418698897481794353338672380397172733252854003136217039214781004489975392705867083387692224450086815990747322257392726963736965125292213033957511237996543038067882400927202813477076892134289581672127683167584497557287474423133970455581237673789575864986463029593526468912305797964648157346767090485502181869664577255710608457615398039538579019691243264660537079200684558346068987641538268963657472126232419211220577664352032638698477941346983499644574136701955448464923002297945414368695697837969685786549511082845948707785963009832700614841080260651414986705746125371788504047058070112597330283663534629755239541904082857711415091091273089113302104885923610524880454329281493615990144548205836393611134878976013381656104089003268736435193087806000135409535218322045716432983826965035080685716946657510941916884613217344099173237048746979504544563562491414311953532646120780600043219217102472878836174044178487525045004261164430423370922253446311167376796377689591464761781248027152491494008428844909330813599290239457276837990968587899625305791417720192577793379258116728465845999998336407094459623101292779468589165162810171286049169422174186178394603886682731437785665771637086518297846247180311600507453817790682819258975387393607441938073949330969656916074016688860422646072757182214344565280727088238507949618053300164692768484188284477281364256877109110012862948269842927762494304248302814313595885194733269170271339922203149495777191902876547845490062968530095940213330292738437438221872444114127616941400269883118341520521277681709815734901916082509752011470632301693467490212277351460824481835823432077049112431435361161971809682639379758933879157787922456411415493693013150251177495415148357975751743896761379432609298712940385185513714322963135946270209591630365864404400590675276948157092112394104290068345712270701096347789990963729559805906876518128295201779044312361015858805981172514611824298705354137835968025745686044800470543678052830384820873994924748166787312852058532761013581504124046649418771583766205644258392526353110033766567162898957957431548434777403459685126547754639413747826397918335143334622925022118615953430686018482038614354380358358162734400094751504559694281268397552535916281398879400862727072826823273221587088941742317035890549296857682868345268160922962493319159133690554639196087688005945666249477181531408608022595671345722232566802385203431372960209425554495757773289239843426211168468823596058844698506153958168121914180034274603547704196192214086127092203160306337036166199515481280007761261283056056881441570417701803155914564226569233106932007265895579351445412447275147135699236419495716240659710509190300325947505339887444255211756586274000964309949220730061223874209472243043515399213435588121482976028043699094853857912216643023836148068632021318460509157765673107689425237796722713358872052890472386425049166227782792509330004908008139790575764702795783592533360563279469512832434128738166934366821700034396160055649430061582311009322153052949468976930469955007975625587106095372621679710530709614568119948489065568101068112779092288515099906417713749386227061799570809631974673410643962381772531100422918428673014480865406390898404447441075661373069408952431142713058857562703051366859361148096695507772609405853372151180595570040593676428178952938978868168197904064039372475426824153539032076118037275399733088510940743656497198531654699677260771228941418285300776529680545023613610304349498607638937498672354590014748664898292637922014096538004374005527765941868237049445150617793114734176792116520251906343709643435259001795044191357659806967052211622449476527144906097854731991329930533664086568592125114500023776209800701202868240421247834977970690757318841454071275188074049501382771570890210554415411875773987048978877533239861550763375596671802532690213285580426524046365148547605163474116748011125643781916080552060497532310668419734667146192810376956747626790158550164413593986953598436927767904079406624198648617790337464243030832997001793842290347391095608533560679552885963118700968613863849492836760931814578608149040676588859157499612763660440043225749013176514578955867031315810800269964237865774908018101885215250707592199746021281085512711998374548932206617803661620654200914258882181741189617357996259824125359925744351786776037406673258435417226051351067714664527777877128972197272592324736817743096689798027944028422725284697546548902051084677411402162212977935140247951308879444038119044578959330417152359444142551346914905734546151627944449910734319502345155638652945087657254397104632799475409702414983739984293316666070423733165544114253112171968974363792269178983585341049002105433419528536935832872042068815635042669087083860364795284641094624376345202950294437895816988981383489367934794524296641826375292909054234031735013260885822548186107269448964263527385130420867325637573529031077294558770018485095372383002664968507944496372185684623063243185513365676791669104807769534377564045526425170579917602352026013782951805567738010066365845013578113810842685561839556089182914963439726804014555098169583672005967977374998336861100390511109549653553225747634647992997145170608039750016904723728119842466017657363442254758922847170401400105692450532140822440547485591994392389284685200911956024615754836469414592629880687639316812891873075880420911908620290558511187412106153612648257986026719677541169761383797845553998146071135107774300508710615832926396737750888162053529174652830559726320347495463818850658080008282296218700264432764449739605020495351615504172330000155174813728028744557076571091822880028736096521648368925464471255416334651930187619478463364854204476357814625759362141908880716143909376255767945277234409733793274673780334634792786457472921101648637697975854833804495628601386732500488208911557234101063585931712590634290611661260483118670456136885295460002010644426990684258380230493380952491936604899931187845026835747168549885904160793832258528840681919356392656630245700847007127576255842329070630740559280222369602318319650228119159708321707694492950803878215612272029107352397372618368652405257063621005502475930383167267332398459790846009347352956474197316940964568201935792944821485769867931712021663498541754647469173705551407087656787606183356330247625365423513733679135780309687946670312306896050303086449717885314636846749651061371056390342629540696664197418467031252946722644979852098658558732350614228304601344018931991134865075960640411986515421929080894212951518892696728800489400448157896173514893311821046031284384681668979166576751083361956886285183776709232420216193366680890137754501482744000191604165501287583036786461676223177932322786338868389181763895191221593275096161295746205890949340424095583035187926730023088693297836620802370412999772784298337886521110420053442532384765534611637379722002015047369376491624497501643209145443832692680768189310342039471287459499493519768342417129904402612928923858062618308867815581300492432724390760977079195935627004249293754620234220221071442185613206861307576112155390210877151452667251466420139944372747226846315295255469908118877603542035714175396306703729587484746839886636370150840368787568459129819018789871243627819591647569746235328335285166942014153738637294976741372068307106479389846742052693497654482183207024595240657039614490356160626825702449659023612337328021184380627327380273199302639200591009311572460493187020466168480546302003075967141038424688884882614359278130588119958818306981893064565474865732587588992535022551637198296647282426278589501366822568289555045557496561102527959798778507385680865819431414601394999760330768840921677798538994237275032883191248950203124135119727119290468439065484606287127718476022935396213186944895498822310020430202189643866321386912781503317317849614618078283654524964356980069815122619104278276136642257108509900862863416176462662369068133004205275409330859397546501439298410004040369627661477842337909208785292016189095953605327722843587454971451281076654391613590182504467825075804398587781685363797968213948272030875500047869557910020561580426791649469760665888376221689880021765260696952781919212257076201396574477816148420046781067415374277315721768269434576204416215561374585543578113705415839256152799233181573524216627444937478337322452413250183371666505152446938045087226782289630438115988040105464862613923051147243453736302373028532928742076198241497481447851630703476080821183627019684162990934735070428259479515654964038250683429830517549060243306610867394589812725094204699450018255553187755399599567136410419874011766329121782575312138140989240824127853287197878888802011927705536529580299448271835387668429749319212492576371354516221529842485038043300322731568438698338805115556214933076454994419764000358584958948987935455967165516989456999698582248418935752549464828091865835752883038426214344332691359867982718813257889449582564129300896712996371496500257377096005101391624595987482360019951624697510840578254528165933154043403771985467066286919850118206099213512642615684291247934774570167778608136112340732100185625394326199492916806650176392630659958118820213319800608107232903050485342317593590702958334061172448596434621731405504272995862136983759128446388936850910933279550041145175151167189247002884538973459517945774173032484371756488255723022275541368726378789465201054492489106039371238430803695859804168406518405037688238327246845666397838536070595869505555695064742512289893544896415941372583705276107345208854033936466148402140375750166915262475106744638148820219945676725472874961627620583380613810532687333762427171313233725591321610765781728969519679808026411122837372686077605930672182871125898666501991116012433860353622861571039674011033691530414310109558260699802471595651137900905230575224003495858826795541960354480858132991166419807766128447673567855013519222821523492787439468842100368908681320928485025495690172024251049284673162118962237469070651322858239866247813794891035319696825423032043149355604623648013789228420446033342682786603695197241314496206368708702263337469657995359059284506908850819891415908839658391831204438001230349249319679448525069131194921017467445513878667904214917569852918198457512323406122720394370640575096578516270801771035346009881726461979242846799192123122992195334037162379458938231430411414465471931383810973683631713824486977061524341610353612942839854923467749990760970357179511116978258818217503091294186379671664979405778934797733066030148327874304758850372239599856614175767838935851232111303378348809491201790201604229550093043609768652335037429459605389293892723127129629849718039496650556037077036134272135354961960618821335830878579041477917621047688085292370479155875504620133151920882858594680251921915261027235887917184426973895763056420600137964630685504200171795204459070278459314245295218455387988785634961005357095328604150320337823010172345048423816104920994448030096890223598054866768495771284407858032232634282416891819629761361914634417862762884270697711584823003533316720695281244581270933020064733348539579563372058525694062832617606260073819429885480101553289763601714578807653928418614974408125400118671978439615242779623998612195165412491701173429718941307208940831112905051912131683804088732631471288102178590434673085350352342301118239384881963229183437336097422281852345998599846190850602217274138498252531629718382519369804823039586000540329753248850495125081044300124127863590604289144349816796691686603577714177675655600180187147531092087684520722497421120144007053178552012795388892451747112180132525607081165614307429649224127130623277163453428364967762510754368436820741237147047414573466297147899860557757847332132991590837449548663868301936137288002883996891179321120396490191348265779407505682987639172973581176499608189194988265718895520328083858837730067904373221472254524657906348522432137307812236972936469924819082663173724118994628428589271923823313983722845358519680380670294569213131695265555799047575591782819823519521850007273968820576651213333899906779464746935988334904235654956450850661513955729213790504257215195108509023974265953454433863405887214264152666432939355103557113098875382480518287588146083294682052734215069091962789602934225797932695349555155120462470206899175094897330103797371917874240807972662748533313167723967249659685122036128131544980269921004671736002392138600852129463021453320203435820170394776783026319824551791586625248913044770227359916633218549967479646384290853298675161513025019856118182579739826092305826001178887370952934140203079126266172717448788178166889799685193791889858763510422625612952438367732827948661432324347435010180195681075190816963676746322264494897966377858558578782412776991456717541010220269356908205638751011408917404489354111315639808454986445853150465833545070824229000918794917523835700031442381929752775150606818837623760622083081761051137459355746042624371222129909607018454861087032223232734026129993209383735791374098428291680406468176819307263275644842444585178777474102791918053813894020262358070872293875133432239185559849005822822501662737318764786953890816923340246762327248439482084281121833491143836137880946610445159367445438784592854988101041251703797605893589485558825759704522674328812574512489615095417828319573734871608228888626533358625910227130099636750096801991267748724398009906402972960740065050425225774996376277864057248557862612329654142503310036251705941998056170922667449021603066584084341414449088935103760968480184550480115018822017061280270380570092779935002931026217104094531828624168575107120738246212960943664449607262666480683733616429113246486189981291386561231005966425564722120802196573989090467655569115945848120082086298393436819039042329373357683573135118814927052701052911101770179871779731470604152242531641597732619937733452105859261847276090355704880022182627233682278987825312437550261659800084170827211591000415573093865985479096809299598636598486317345895764293686630033860742087152101617363296184377709188735511286236438351005857780845333451057241025521062048660568791628032599209151904197131350957164009481044686358669450217836149931858822707281109843745105498860245066320349117396636903714626566825061835337185044977778531537795192624257782636031795848478001925172606171666815132117540589104686710699106424169819682227435936905436936910609020238130425505583436326757451856237675941757379966489879154161645306859207966502699674491950029764847488496290563246750889562209658288746719434959051506312593207401832998414878296179579174938969839350063896909256203920063595538600573671571301299532654081374866372574039864159277442959534569107733288360331162988756415022198411176111928900020130020435575270327263872566187825830599650989095665159930829563433488258893733867734991736549228152362859685578877569525689122995374956420337225309480820120323350043344071832076173615285202499488448391291020813783456869639719871739827126159735330613261896790466226424673249664883734469388664319267795545443485513090541513965934913138464502824255526222559939979195439538619292301504335993570727604633347478024801938203751720884108539617706108692710937250343035885331925923038547753468400784317005054294865410093833485191792043256602609438349787734175862804917319505398916474137438034034306884819378089743289260388003263941214903730931659991342826900484999513038886793664849822548756536220802496232148522736331680181749229050260105934301943438284767341595221616623136560483691009567001206569893172841104719800135550252597639797839415230972854883734946802215180077779166697263142984059178401810909210202992667583247652539440901309177211705749423375044200416135548202752492142691723266072553874238202147974422016048356083469646623801461622002095047192119515230664639427439214020327645656645822975909301778830650583935942491424994564097402776490926422825693910026272595567718989660772813386138407293496626436941281231196435203922076604013940906957187060420223593716367426245033200756994542193431610177993198213774115278245769217864999491990047911103577476639136198409017026675564666086333919348628863025851683878737195427917664858204608013288284154784528314490115967690919287149573478639188466563418360334492274288029487101520531226802268996361537939064974713987111759046299192620247341925449178356480061672132022631432811372112578800192003915758235509605139571879278484159897079613988627175273471092638055051080749649177666351683674144226596589927119992609405805423164674234289060138369647119666828069398256674077615094355564586210682753617516152176685767231161254843726011161234671566901188200066252853209664436855342608033591818871720095074563250716227958544461275072118629225997985450739528136305873560503383891049807026557835381843101988073933512874542993112156432616681654415292482460646181056335610767779226945646142724510718598552019784814088092241822455149930098117201384830609567841246174483170549720576573477507957888880018632400795972687957887073687366110006595711024234154790731625533499519072660622787906604218575474017045150402953049151536957833081691070731145608791125017883928860576342496271513848075162195470153528170448162742857025536099358415434877919234028328406153990158707147784383122468376009436279049778639570463427700492253548616236971502868183828745340474372814031889018170357789303475492803642643864118447393106944960504814872924357991717296063268172794657888194779117688799473462496260536532619911877334102102656747479328208641948807649351326586600013605742066951709485221783183333647311090411940028558180615792853302882292164198806368769447238724979920729848291343236006089736172412278968406349872093164187292225381926183319419415100314324912178259518536264798201562170574652531478149784140425867153646823371886639375666287182475572405363908773347455828703630090058083092634384352189723155154669874223684153193386994499100511005498417403806000321250915863861656877126281772249527477167916467398513091882834119073218862583335772202647961712539187501231900325037039169169903784322812633377379096344673909969305813319477920416341525167458948027929768906058254468368687171679086484734643028271600828596111025389133878641559340434329872470567669802811288563256217400562614792473445765478545069018142714586127221518751650381160731595114323504407522821189493860514481553770636207326923769919619236374156240065626667842057424644856570160794464624783444297792376219241031573377874232516766511783747842466742839040105173866240760088699810889947572037464130982160783394048973966240729653800076445702953383669999079073588118309193031147263638512594368163210146958863658546493042822230143089976986247838774675429476400883322655175553343811857088773602025186961835778941103295707560418323748568409185986554058871967793160351150580981771527920157987290356587549269747785646811147505802292962124736724380574245871000342666677749380081965830724439098690664500208658542962674956770916321629385887916449876691743475035898801568729281393893931361092087598454550142139078365309232304338294837171322339483776457021973936265610459297303037105055384696551033577205058893126331972493221276990262470043582982185023552361615971710369779368814840189038962082967945445297573357392610325774795614351174424372391620892976152109822645538250888066300858756333387390154320386576050163178021792004408801559420713115993990285723369276506014035142580158421259168624427402391804549431545274703665736899220196392722376569368836966719709450810462839741967450396256480150856263448734020870545572982534425492367159269813402986125337206787444462598865836948981159529770508051315647496598801368728937844906574471167469719447597227208318193725336874870962526842043854659080315281594665137959594148323375236731382108513342803564280718679691211166456427576649732509511876020175640360939649918417317032967660117713138651034791235589063772952630284513928976154833464085718053497538865559012520498416768981939161942749131071542325393811792146857951381647736513340302091836915814703807645390950255360198409023752457509087555435070747707319422531222193261799175584230281076460775529962857441156189560324896565151211135433634792086501988084286720969734585268799760381681830019348440055559971765264828362815547845919512554327962156656606770978872519442194451437775154061272421089371636580590593752113594476945749826127738071487987514595334959401662851185323604227165959774385989843634544278970942052785463301026546373805152858451675338284360233917284235970938740591969976589820794253895860697309089933904391907614975410586595600770674518367598499060459489870906265015765966253677414449989015612589952089053091025543905155314750646019507054482995176868724372201652965140767088266396169114801175442352974541067710151524757196644199584575778526780496466215496391874339902206065747691695021999309770612354535928613030706697238363092324433235523737538316365267235882641844794508272288193871340923613077946949369152697154256532343536770067843629590407325307188400447787536537585176092858522406229559170385057898484145156743827977398016916483366687305118533643114757786965649830185185148857768833714637868351596736358921271972060726108102329162990888389245664860553615923955947879036026780891144031642717150642800186116311711984713364786873777924073617833772812209095392627153752267711155260811905934441042323123965887726661038450613977501663889534436608791120708183275740715893090017037250755539811050813580921428936825909827202944396453221692933844384736912319442088344748528802097452800384069606709258473153115341387838706451108021079268452687799336264362776834456773354668185979920104862531370797548033616249841299442396557294628023780037712112069108602849713618622928874627313286093958505374190356410762301741925427080657219330972917327611974077783338722457342862216590229116908333722065213270301850542569546185586707750539533479039456214799655633676938447771567541055465064145515869482258937283228996482475578889824984712746666364127630934867302576439238239939156685828843964630476650820701051153003489048955851263140031561166928870413867190001593708508610591152758783298007199419001689973575084783183371025416872633654777911082977039881613221001851218329723196965008941195598255835394598968943728490134516733846067885167609578185594208055449576578918889847562266577090803025905460981848182545787191923730535609283300505543254670843186436126292910430123161709856728625951165689325244801839792753740449979894130206006972870761746874863460273921965686199370744072428055691397687254154526552395281203906205654754128301148797574529075384492125945513492832019361387710118320726734309868662078268328026614134472207870731870404514635807888729172174262858935733746955350193173026000199796657977434849888485713050801738108490764629560356044897514107545310551428069605071647372459608066059826378772269154750709593002944774354931188767263941589269304542981247067315687406282629946441578442584452835091952180543069346072483404233191936618702238445351693765615291337020018611209458030242453239925845577577533623779711560311973876946600329851966793380694585436090111248494274369190198140395204945874049699098268845044795532856463364526736730014865345167113208224646384467120477491592363231751199639936286381518964616817493650767488076558308054584529567151313058130162786750402769770906662055804837756325282508464444596164961804956352931533173706161348403894039449832984338014262834815109940042770859462685158571883681582619637231333113367680695308961859999865201578342426563622436551287618132081119668463764876124598036377001691569453535549921515297160623768795607447166110312609968702435794216758931352057800837808572385590352670295729622665195539388362930082852666742885995710595010949399210892483007633318163426761654995803875674972105106900311446716650677476443984852142594187684603743587930347934790500085082367839296815688169371754726135902762218656100413041444134158966495747730978586504447063471645326854301115393942122449105516094961429243183511746275528878658066935265919668344070358513859591355036834177920875542419468812899361268262750986028055023193072974303895080298394243908468175351381832494292276124095676171580957871913632943926913833797559143544162089946091907148132871153169978077742783302949552604767736514032879596181355234283357591593812941981426498672750349680786129336537478982869261326212988510570742636342258060725460182810850504457427951022820704468972278426152673752801882026988878005482059378027452844520163753279326569199820870699043755175747140942086392622852434741537823094285138115241555362576118438872399632979664055149824814617740158917331334326767835469611077415674399327336810168156913014212533770760071451963151749664598908202645905422993256463869501289568592539250733534083781747911341353258111099908087977503363619037682706348612505260500838490793499910921806839948384400690009928260655978356269931616217464302636011812656085934278181356808332331612974618358589806633207066746803017367331300233543744668933915703372438503365617829547843817888301695569483549868457152963486930806156978542083695934595051825176746146775823550340210974312023215945115540067226045140667492631308914712556773778290702832251201107996130345195520124180088768540699563416799225657165776324294854735253132579928422973084645464234853991336199474514765478150084696967332350599648305252009467881007198140024528833301586583907337330792443037197979409816824100916895340521988347940855290706637239060629333814913375479932077574580694779359046565688185496299214493570545333352321147707067293237639971827832441943110149372858244251031706941019492848329957493415040438272461593767741813194891673623824236955777635044528301091146166989545453588024199351208399734339937347143089073886209941903297750483772698424449141133771244567947684545322560339154507497895775184876743127952211480727860106884749406298992056644499681839169823219151547304822098152727682003875797366785639497194520978141073551549888301083700885762253254352978068312330067940350754559562493015665032561849611243290934060814882392579739913409055461963187263500758769634810478949774965724927021463640781149375298642508039776198410767977687462963071967257851208031314949976943972881621488195104979641162019674698860305758909273745871972402470532317134156140412458246901858486497158794895638786830022952503290327242171928015050806469009441838248664291666319961400600882313422779950976943954916673229124818129834234827572634359571227064423132963351971979553835420467689206558723250710385542349500947813077195578155519925000414360285288072440115006940872506910423102638965797861886376363202742940160903363579606905279890470347671669313814156429140429568221456827357550548579896253443252154601531639351020049360554850003540511644441920690713338088886467285153448467722195011274247421447450600195248443731778034974023619612266334755991056641852471506068250491661913456701758770787010258938625687023417871543034819207757954442766818262609287279377044725132921013609130680837153164940191787685486725542551917482236253374028809606470211402241406203032956841699218651340723766326376082831111662454072302104075916669655181825266176496517453942471721891517330508107733496030476426086836318241494637940911964098259988187165013340427831829156919014966598883073304874502824829064987569680274495039436369503282760375353910331127169625589603054887428196380872079215564967325805896808720422597869804361451136566997184815676547747992115324681885714937722288649339409374876822180398943014072754417163660758835554323821198920624172905362546816785362546376991872601571632276438715959887854317980944321146418402488297403631003011839801199495440581451290348453152488705222394856518329347207081579914373512799083506684584273801494412942475806602637033923799652590137548985815901429170664580287363964996360816434116352174575274682882414688030508288650256884197675332784011680095964019348960010279402788374393258844183477139705680057936523229931237815645720505356449898669150073350283745669403013923313113907912661854027524824698905998499660082296981072753429748878746894679381188975527473743860640743414462662387405754976789471831531646811337680422032514098742046309171531417951957301007790805710647677864367443040248795805312181442411860897069287908451483858154061047097764191035999165743655891811701193855590607367954363719707697697134298406092304564376890843419507767169363698862238628707437248465374523132658548159082384259479081118765566928662878118071075120644693209623572413268050038124881927813604270572524120061889666403138307949506827730442799706176632871449455512432193367866020511195762031685610981565030611561461573867311994630403385072732662292994183018045391030821198065069348920073673266706117677323135876722390063779304960647275348034788036388825201111013501354545334841741233722536910870208976893978955549609064240710937568186203163093837338536420711154680583563896972347235857104086197615619582193752752934867107306081246588715075591828292691926574138247240154326502460474836864748369071862351117384151247395097588836315133941131415792721551780802514280018777356939702163237657003233361951974689918671354327179104648288095119040692800633365811801901389750406817138379112800946567560219356349921323556666960042210980738113956725759451663635013833664171966595048357598838540718939901755822914247652942930802789001689532493471260191820112807561700499799562005944910419712813736497755808138903396773922160548791916317725784495950988412394476689467397514119853360599967237240068537939772000610376249361175926280985021866092717252636071255448975503626101445613404445604962585789469896947599712652771106579101168782801963480164081669365796522061946624742132228191838676724040677901954964951664438447431596589945223552365420489689121889149240474490601184820255349995679257322610242162480825684823238010814177156859012979344592717918577778801319867872900233748552301371150847611921703394132376370345489523426674218732489640250948608917832152229895531755600653106260508737122853223721571911709648819412938576120956596520707714185846275692770326247058015581555363702479968485811097121248409921296398749964099421796359623467846802554690165730947669751954619295684397914775298712704305424279191950390019628232203755708681797197931136696602293165492310935417814823121257519949132094615594716199625481888672174557880951781123922810317651866457319316257060635139303173299452845971153224588444481282698599998618126083875639553139855316698422065677306039272955085567562895262949910942476733755009212809595575486955857049079094075691331081723232608853987733807822411934425654963834470703319260231039461839352904400729940148391240971423696157853075720732173839369322639008771652303956404114784010513354230516898405287360828793470068304262940023859859111816244247048938459477803852185541610072660737748193100112383207040365431642321904010903779665754716361313014676382028364321288836216422978633321381336705926102278739535249068392818445412774922661249136139309064318449238882185939378285986751690590349015924986306221796236169071833604556847316811670291562397613185987635264110638817652689399583695533004199823419385594280602043290644733640656247869656867156915862836072009431849270199082954046291357634855523299253821667255039465010768793411247423419085979152267903451212792795495713170057632450901289945730576947815675769827358837496748716787678790952951662986132563777094474718275661741645433088521554201549000900304468211729661403630608752869108822625351831772878707961276393317814237847013712305527464117662835482272913937447098601896558954330888293498774753253976937807899989994634868484506067632385491513481107485240116032206571027089694780862432081173832261632228598292633414701722689537437210473562908968060827138668569752845392539713186931250514583141636361486350142549344502450174418514550152964964207960074497003502212652448815388165230903061743798173976287927799355947040778585304565072993567810332644271638381939635112352979890454161404391618124444896084963877872462427506248068790191881721886103848575557782916538541541018338599033628437861662759736600872243739409707950743222761851459082618243749537004091650124316532573146110030114339830288598159639463859347257185284105235921212907477731518926850283666650480225386498262359761625934734204732527418213162299125215559355525636054463867155118073467973849009917127635440062009143520669266949086251306083217632956600423291804457699084083734002204153629691574654455481318553042020139378928368850331757531495622535020535770525842430402323850086625989433171395996483739410296094315184042242655173612450423141193500125158046033118406911127885903700712980698700834386169513286264142279454014713526438808028440039011692858707739205987087736794493495767037991279332452344927710534321035191298216990819273534315757633397779489702187410539546432175580759549358692536077674223435496869436944602819025285780666769116204887875744358266635288576567700564541067235418839518226616167020434552634267732139030418539775983278853724562906561459745740217773045439709160215507890566725248167382611235100100089450855570028789801762823798069580856620231838070321966473572353787735368391487737285915993897503245641753200802072487531908489118776264751650068425560445170021378972594311743590524820014331556540699024443289819230407461710061762284131398901855374920269603820492618395778654753951714540097996956503610070169007719837145125747707296782959933842205930404032658294576058590479455730839187671690648466231364058473307907604717169254647421354221455377917312588969431800254447853256301888935619788290410538760577797856388745894631495482948115835272407491320376598572844774301385262195440765607849396671848714338708043286908606180188313325319403097722278999597430352541367448355827518669590073412845486248240781388041939834290553818304508048779709874379544112496915310041033895496394818211335386632630047341017953427108969192438470326824182364832518803066241903294287749508977837421676412041150174100905183692626672320211278454985389710894827701193905330508296399605067750917686696323344999981136634052059413840485518637989430149299164527593738259245792913720663919309903925946655527250326629136997038653383455994894159895570264925719250127272550054965857663990558893949635437322682868885008234972024713616975201445546158928527953639030689368188260793274709436481455229539617170007227685859386509587734404034357727287778382653196831341874748271002432029462488461411768332428550491979827222659885068455128277635973382003366044517560916108938077622079735036214776916878003252068697880075670732655582588581336865345650168840428401356919370569890138712224516069444393822901346239814077869477658357258635458458700117369088666221342573013513848064372578772770049547529133646103470887662637395259635207985431912515595049137770961337303356555103608799115206514857742390590141623300791235463787810890783506938034852823883143084864442959080771669461052391722874427488481757254211551236652212015912040434409057177149215381831637035697652535194614152943567909061128247688651122341701114593933217426188228838171272371207656895066565257908295931681814606657046221262123049739715966692249575910375288735309825379232101093757759824959312448482726102270847004621753850659694442568862727114633880450644629382307833719096983000254663402116169763740961590161709146614970563708364942869145476042580675346962180790419593570010875288402170324508624740543800660840693619024849594376792766665575587379237069359609663133980461089762467503807376612795743223565440238597988726005517432136540308835780703368047644656331746267939981952847921383666669196060921136737760413697273814955274025528602192546826080263469351393916739049247826220523450685697654560181053967914571357918062657716463614490020585145957017568767037330841629609720551035554563396066843134294916768423890128017579661418139404674065555834326689931292915511617937998134227173321761491042829871370040903816511435282783124394273653236777456417218120144483991823614685306481268598025982707005240693446592055201329058013645735279532803974381753688806506435117724292816579352415641679397547776584542246013319525708171614663815762114947860826634115873973064771243637621014903878073289520159883860124400988750618528965609075389648697208334879362950487773250212247323659349713421084563783941114913148843416478476783328363194059923808762795696672278101218507797081081035448815322528708111948850175943903771052227888104198646508156712635412917706672287952589831163407282205543078607370041014163246904499886388816284537215586129099107548951117633354915998446890143703296712864588183919723345151798744748948458997262720178174238441286401815270930504240025436383072628191743167363191896757938697603466708427416749468984786035948219737888124113591507124033721692152927781425819372137176318667482589417531841691015128083184338035042871495267999775839020758832859684438758861262229403400334208968479714001527158493542874682299015114095459128868735993054262602435782988855100621615900372185508110812891374026016154414600215541984530724741985836748526267356205667570891231007947588995644903558604483447423791401471176998318838563371796795867228302659564007272109201047819083169984970324506316881072793769970978734890063202152499116901452102333606925229201712404876648515465072334735891320172115065033622839592486425820059139654154636151205615383344335760753695872375954393630200029534291966353330939689783135710591503039867723169866736190128718960728011212863002997112910450422288931299715923002111672695211135114518636287526433176737751013547958940170727462990712188525231374331299217350785040052470299004951293563856621678888974071469022765713061486633065146671444372429940817019770994471446683876061508097394368859418770818171481556440378529617422603728585672065658439448736726877486981138968133890154346590343554337838840224538932682903872136391256998447309656548575127886111183095363520855297953113147265601895966601145222627408061724218863697184342308588811875821360111654037216778232438175530875663539217272117655397223048619546685337871349062008129878094413560320626664422052114724221878438773623182912092309333944034754513085569144039578853104579735576880076012768590849553067503254293507467148322542285251191685821733790297676885474110309448971229921129060445352447667757408934258372766183959064376687441440457390992362260672481443764313803187210025679515065274103197631142247015657619919776839370575917886718967920506525469181276680709425516629554216417625168616262762499300735838722527211529718155609493824253253653992930893723323230064528196734723189863088117993477905416838874032021483982505622235504374597220357691536218525759877132961718027809186061470051316489592546559373062491965290356625172106765094411120442756553194485328975890022879517642353104975816457159280590182001659376589754624350373340570949143770211841708997501403405622481829914856876048714622394134704399143963907158166478962672085543559217255108157179906198440821050374717900442681874552348257381478755390886838904150152396751821458034223836418200373225131732540912475269347253205895514990133665148369198388044069080056825487005448994681707561630686142171832721080863559833525103786384845110307923805730759121000463343231121736902230260658167593442637957892812657535918666236423892680799759466660528613399374383333906183640927301766287823299772013294517628078919105104431362981112445969504730482139152919890089494439750820359810510310928861957562627076826680525873841749527330947010678688854344530382285689065561296123031044662413007485328321574298784139904068586699225163926442818581387975601554474563241173536146848014274574666090710020031964930435128466177863997827344013579826847309882041766574476956668195789616104968638919203985556733888227384328287432933781683548333463282328046124168507904419988581218686127558521331706226163171436365109229043026308816066852118245602727368466474294722582807298201817289877050434855842212564928595895372697650051723180457241973250241358022224109374787055899618958979236656364677141594340043091375401732229297140810307256680833884767411318464638977622068057800339985405290843987136180400595155378434422171081912583149689413564092540420342309495411032763255818559267690042394011726697303505153230219216822010553760507189078125512568693263783097315087043949751344508277566182602318665804665797085907996686517435119119988300785302133813470288524039979881849011179281707191170587766332719039756893569814707226455275645898712281864954623090858658962410441885153915659473682890663380181119471442030006727913115201890061100237805314077625215360260863107294459730417274162933115340219483486170377272761772822496719579877470853385555055829378759799486110239760869871497579835832599325809532034913861438379945388649056478578756033538148841783899771230287372680017476098569405195346620658001278109405720973768681718232336852633732816855412258162398429968789228888378383390360043816246206066220595956925155812606914184739966823841397646934565755790446411167496612132592211723429038090506845720569095490744244251137448996605092061449116279756551647024976739999678479674796719588389624988349622386108587884654504534799464484538000752647152142550977625616220273234015150351101988178563954924680098584627968074543621871096993294554741605857054086895864814123938868501506530690043663151352163308599558245098004287263676016613517279616845399668658443574611319780231767169852781463389523710241142789546430144041059823926391120596275385351420592826640423586832979402916938383695411586292895765583177605934366612716031150121981230645601330928375450328289325015769741553421834624588562888217335695636409514436345148211415907869178563427167243114686849201025245458627626976007970632909778207128495537038619484132084407247158695215566823572155197990686513145453759041732218955862633009369051974744949542801883051844935395833482887120117316096954973686591909551573671515855576339247175057806675828877270008863507927368140423944458295703304802377461278089031756796876785898800987698481826966412583431943525670405907817057515715279196529707042019411106092262970426775798633035221096115376199838668482462618891718749537193972671809350364965287722287701976221217699526402506867864445875538922632136305785314170549508010688170740218144915139813493778943850363221372130266166789597850146966121792852704214900539676860284806562141859159459065705351439196534638989386372589888276996017162711017486926373963618674305187532138125355230226057842247036519476008086257833313310679789412627315490448449287846126905383344300834933030553652094601119791104563494729728300843254280843787304420831483662203211432693432427345582180888226223135433366617279684772465531373242840200104706950675147654510237637268761789628027135729768693789220629336824770464919546941421447389623677992122159462475210463366001565301224094062620858604290614142716908874375034727482031416323707782143828126627039194780650241515971393713121673837683232473585835961332528568721398467303046488834624181668200313944373908679341379243205622125103140852317343198511451660747537288354724161347300440502025154039212689952642424012745739937889893605130043401444474861970506875149298991095209248060012671551258441581755377562219559839899150762399631839388652445231261057889575420810557595101528136231938860296425809499661061661625512989674383280007928603302246729430077944552925122208172759888357631596779042298403488195720294434643130082253288271812285306024789632989528096461931044557504245501420450175919457771719733898945853454946865569506735838242564156281709883817364251942047399569107682906752061184503001251660497335773404348429736233286272614466336423623118989740666440603230303444449254266768648968309031163784924552378494638724035699631924546698994247925074653607114406137850054323318026223426178984101121545723934446297946678274153092073725732349786673067945201939926905726328510281192376086651762372655091213909838693011348239822453321590873089977507319264626551855499508451279567293528338094022182822328925281984874563759772301010514322566944622584125270032773776930418311322824545685668997620265520845412501593094762075529501764892208242918931527294002549157953195869070599271512553880461774194993092594429956304906073551394850820915132507365029689609925390897475171782937086546054333756331530389490982997704285659356355628976289605053504355350928881400874757697429529575080234946190218208800074804729573246555457699815397271297681968098794313915823030109367708616661415290667259342302250642699066586187861195397806852080686095782528348561663762823231021788207472676463371157296420391740068810407380301640793372672482027354776411202799736672693897167892745717476153357296347531429266008492090817139781275345390822096169382107446667439768561042596907422892360944630869597044477516027267762499558037154282177057288882442207918342357759826837790025724881518365231536960580955654898946387105121440866789629745377462129212623645525889281085290632353859141437187603670751748518692796033313930393366011516934092362900498224819649200190954583233819351607788426073302752808516983158288751605815570832911668483305683573051762671493397276347625660199425479280196241283513390511501109410942173896259618559006975135379139530486164208422050983118536083054877024092303827748340329668282006030942465270793916797583063921854004262494597756228069320539005084167913602875548472274025130203883318476381353521114724326615442615354699083076432786976693200948389841888992345365771344027409139432804711428097506018913370161118399739713133924445745568851919267015909693881467458096594237502940596746734251411875790238134529328537096034082436740601137715164918977677235566216235870442777614234168265223283618898264560956320239933485125887112326627462332589071027582775259598176930454604973001780946407473060486470468630765892998267211815078381280235800936921063613808361883757140951241969666066519441080462763699642447214610747911924791187640314714552045656022070264954008879884540868528762520624321305376348554382879825392793565511442870077127312614056826553929748602381221585933558807207214016886369948804574347450627601817549168413113525185083312766616932205215428894227341376608785529673344422458232152947825785623785044756832638438130089272834276825154589985373796008760381483128457000641671187066482350230643825876427352622444702171046680454067052552592171978883750627715450503853676197917968429499266953490306743201403907414330081766605791271318837496875169707766740705463649462264759949714633561361893127585757973449449858354931202334373602910799868661928091061415857235695053604578398121084818177763949531643398952164459388257762196334884524940875944812000549443963936240852549386656361652878592351659818411224152456287132319200232938084719739445306303764410837963848429031739452309177957850390686640708434121021752799628095017570547819975527553815769337841998248104546732496019137922413583591259384547998276765692901381696389429678408534220987502944707802659049488766701916828851444610792229629462213520822631761822553940311263268606555358242596124298224640291389966557005003568746956840542042768997588842112375140856642037207735149853657665637902473198930097887457694220703539153187592411233505064278068061885227615973479687838945918032218785258675309067303260626956923522619377364768636362733831109596468206467427675120795388993025653309049822827243128160193646523751831206053360560782423312154298924664457664825171054522558257419498208280429396283618747309919465009814166906732775681210466586838408794783451971273350359832963355859496534785020832406648180831937434279974905787519411336646227323005204188110425930341968200056181244838687287708794460797642023144938861139589330598493339160257841360952084863571560491883935193017869392466655935200583834825825673509446891704597764001672904176107522823129342950247531549930053536649888145274368274797046449435107173678945947274632284687327204311493954095210204320543954439802017785226742122537869911161369425258700595551269563002730139006465160365573911268827351827110809211224460316966126684629357950080721621272376795948903233613321113449158776809625572985857928827628212726946632160856047698336334607611716072923365353971512982924342631687369411258022059111241415230026651789680222211548035589887332541979132993002291272847850049770618913615066628003320974927002192047570870948056338502472901003266831612257092232879206689840947642418112052680338340398317942206617379677547858250479686990556820957613647194489669055035421378000235864613842636492924544216448705840555894698095059667496701215086070869307377637129697510383606056233536782619195327759348585707386759900818115184053808842308268108487200855506010553617896673770625149469784119927128023859692601801517971592714834568751304995140578928779174988634110453329786646274560278978018420463213055962318030699952258326269429841165191090797140352760526416692205169334427331752795896710086244922577782774263964002688343920769716087924169513512480057065057609748820323048238348449102864048735412798878304296101672135128969885816742836366832325303353362746659229789307115847070630245061838743608419342010014728537810914249849534293425927052578789530707129342307046013333344281296249854563402360532352012643210496658259381652040741010874005955564828466620129370275657281840215402790057657922376352907327400316528136397603476507305748517353193196777691425453621828706963327062430099144038101512746840988365140990800139543106534973984920321039140107768324599499653219363410745972023415830162823409998713127968441314203093459080851969109329564957504251755832205969749998302373199000601523563724051788422459754592329924287363981505438973467977709357689429653540552089191776478607420360388081336356186248388779040549898861019338912406065461284074532458767699931739493283395993056989354408111636816682673559600143935417475767480801327822112140310144601403393819019993471894016787538433248384822141319028900943845577091799356092328219980949930753929386141566742780174407608873570157356192410348518698123303010719057263936359349635321531181789613181857506713689902169862022567093653130751540307294687099237783602826249824628111934868756487175178337536066648139012546923367748218358222015199000761813920185383736411041150228634644668741920823637413498624762608013628942459381050178802250062159442450933730323049909291711830748370242549500414932075010742720769324235065756939827189640007549907143191526001077098176790829934537117527550861837825443392973163313823780998710196335653420405607414161713391409019340854120303908416896664304369853725940835360948478525715710357499430144606777618369477617811148291427874624396360653975761810631105105700304628419027540121207412985132366081236213730737069824294827172489260964296709951779599502645527011635449286412256293285365375899072285477829224251048259821409624612848471369278739157864387674398174399578899365098002666642526359583157683062056826247398582561672704043650670636334664007852415563629175619023904647178647842179679154325646453541533520695433626307522036301137321258207873175063970733418244612407117434109183838646858011296777534493172182901890563392123148103004139013906133550897450355935192119369882025587935717796943193491670223885415206673680334022985469455244284779389639825767830514736395389270717708416595153836243517146395408996575931291343524414339432034450622000777675040940698782031128899128974309662581313484089323373706214219707027726271345639949149718621221810173911663566082678216357722141165079399113524303029391161101205130796471871643919787176847244226875423920883442412981682167128062949575089054643900182963870239841283312122596577502146310653190300646292886963686539829042512681898096891917282089071748678242696445614752201553577247265919650814446011178312918378026395346283157819119842831793710070972283973455713328940318646430795998654945163521232560700928620916347206739206128134339016069126932087979026552143992829360073107653538611903455760820415804556426431039202086885321643453170522666008903189027095513060354339675460327501871679343494684648326065458987504630481590019270019111021704731700697385897625562135775391206747030523247020068821114432392800991104274570427079539455815118517463609680885887352460494706186369625394527772112270814380176025466402021265397643587233427454720009608306133031102007406033208245811681170046984184968725480862226286088302399234619065283429727670136771862820208913283716458078686110834551128410517225225575543818508445218063875879130711428334649190774381641162359946463330876620625472697437868182747444551528790023387509412391641180024485316187132426225374843559230761426431540088710303538714457712783454769069484604599780095500932176945450675207893762754995605082839058142163005471484895930614184241576858951634032621682945090412584072272871961024746648205943697166044998792679054287036180523998535642574204342083317398314580352565499258210117601952110549905533601586334367490629485765190581840335943029826425157572518388479145283281458110460908249975268854074987263206031948844449249377990532538227740876706489596189667286592381624216347796816320175144600072574089265708851917715917546449756204316718591834382948679120383251360411848893068472952858637607599205392987932363586861818749762769936210370021469759068805882021807944309608482398853449695093068013619624496762407774642739169522851309983170396608707459490163675648129917270800517521790354764542553739860835267274409606545434981606850212657843266399936837853556752418881541950695429500121260673579837972491275129107880262559973813992252750714566141730735898123432183265562581324202189533651240318057258250865360922184772489948640967011244732559009411698977126275263324764220647472050356733461891421708149209728458856827981787897140423461731243082845568141993211177941387201827894822320719349285707633058017174142389093987992250222030066348377749177354696678677776253859825531998120098675763636882748688767559220135860163704568665214104422623582312942980633010445362165553517829583633628906930567370473490502722142858468887548477262034395006261429348807623329253812562560223055726792572154117759568626065190633915869589211666700896380986514546060800956389594614015531967644658451789833313761035047179099054677046971114946614246521938950566992420491662355813761232670710979329965318248307986813374325930350686550957834575939466070294752295272482314705801929061732408304947631838968584055897073624123778142779155961194449370032244602409170598037211031933443120373513222142059598571909666687080449190750200614758794069682303813984807836940090302886869328796448854208998636651049027918632377838477461386214191829091519391845770693475530625889668934797613177369388871455279552221263174356519551007220073230468068330414601078511111222979827092931318557729279795536213763674934546044460915869962666175561240117705270334163866818584016135994922820642649896091173464937212483635775609591608097329397028418729268768389029317033490697210460331261150643517682546189076196640182941325058309161874215727772851695062755877288858761223768349006738061849631672105892792051379214393870276284421348415357402272602949918425570242798895895086893012011494753044180891607046140079485733139340637630905818529313343372632048873257426323325156002917536593416425276878918472303924015290106985870068925457068382035620590464123972316961149340992065876023882052764188515303984034550135924237510702372030712920950909434942468536043096759640585263285982979196190580111008578399758251868422796013096539883119013044477325602020450898411799784899787082466574321965055416847406122744250728008070653287792086362327724971779775031372615649655274801957360163967622202876520064733466855415185739298814951804699256630397702642759813404152508163179782717084718613883081547157682871084231057164687795427282245401774043889205183261164065043432961038316083709628821970363171743642082689374180264547101309837032604960430973539515600986925934079217270370517543608252171587149157864460173078240041969518224544444184886340504664019044375217167632630457395777699243017236864804431238458552609896667204525622685215345229101586251393548904749078653475493784205920269350030021477120492099715262238276012873205476621346283827227848530334259598784508121445305894790814419564425214500386115659132286470440285409903953564196344121633875647670649924704968455227896921991584464922923579210637018653595243940358589286278376207092737079507638613854204667691691790705396708040719475597333162203057989650166852562551170768645625747365306659483341100659503394543734613299687762906499960256702732952705034758995869972021052646866828328119322358157116776441255486588903960408584288373601091448383261712344460724885195281421361385818492677468701371827225324424797668890060042921861722334358485565423608169260465288089692380152847357029083333302322664014339029096243293830077743724753430214776938414245579207372770418568009239718167992358819412971120245884403037322961385024407177732156725688340050675128261420386131565843876455966887569071561718639884254618180219412582268750086302163628470725792876546081798349402298565100679965806245101544342555670982953388791008639864262742640882497107080740373513244249042010551093093010293428075245372406095481036380027815863245813863439958463386740699209095350834145672548106200508165429328259405635134703421486746885766943678989666955952479185832660691683648123463770066495358965295196692817645886819578806999257010549701753909014346044719149775340771198268589280635760047367596967665287597550369005501781845250896511729604138376416852847643154871518872860020924143051933203874708079614491423328666865826174808664262196145147984847054116005326328393321864636897369957658818414524987049690326345632896483505324005033231097888283193591391050093746658796662839680484415772587602263778439831075940915845966281221227519473008274225020080405682868315203289519512356237068172526245928482957495882381400343391197845763154041808405421264296207188011210138245007298627249888889948248214022539825019377361337352569114892849773553784962201256683460604148962915088575624349860539476080043731332226230193952481331688264376945615672924801664626282495056003050588674871327308332314427995938861720004726469789460633476572174008753896108146673469845656024769744891138870227241575483745569949361183563701478803988718486585490837613455231672239185771011620646702058700827312327007097393317253002422180724943935606764946652883245481675278705870995658935939926508397366854456322981167056648798603906127790147110651168026328690113386764018507385973956743178959690338905540127025844426088075996469630542582515269015596673067521651981085210827497084116473678201277038889147315921561959739311612624267636361128347384661129654711329265442460590920345697768236197709649940204943169470231963236480003189731406809536254553423678071721310331340587745146015989710866773046395682464178419840083035025627100962070481981162826625980150002250691014496763618533459975555099742406528258828409441228446154163936404844730201967852502049584533753528497102254173534016540588507971990489106297095070153165571435808759244738125862041167794406323617331765735459612885148482279413986263129576770302223333859469644984729135134936935413369069440604579265526624763367325399129057664402273716286904823529561912085677162839074330824775856734315455961872411794281724245675221621139419617231928302918555687437745149301174074661686589695206766397632710042474128592894993891200325570242952012412931799447359037648167796300838838161670054275371078412292910972387000502722020416567950375310135169105412124760773942769860694571512604867451857180464822208063647524142078289867976185207442280252680104312376813129591286394802631875814827500231400796164077873330366620706220766697641712381761656905032136945904761881336474404688319598154194041821773216228843762404817295190452734957830043090557091421656069743164867927199210328211445722431900976727080286707236852676680341941513532578059149331628650612155528695138501103172559698929357570894171595248211149358962326987377416982565300131620618754108610241784378033588979345156063075459791472515986967812503953227107316431690441137662431302582956754756800946782330312052558929197724599758659716178897586262667181599782597583061602302724025808906080007326696441108146127459867381056393978395839857873415852119168685983241621252923948284987392299409632215248484276033666549650010498256027777669957870859381047807935296073800266521446749498998541310694545847945843529701234466008396444920533431238586090996241276372697973648010135874745322884514133982757470252087955346172801996378641958188281180776762377630902187430057525827719441848559738085673286933649353575541789122263851314190708498204602407564959844778124015516893411644656298904809719590432892389941872035561824782564676177838706754817260981691183850807099050522463845546031681158371103248451417939063132746076742840416515868332642375962320548225796306710353748527964178908511422017176254398557064133979945552502361541621900121037228479865083272389550372371395648725651336064488594217946240559638733598566931228071311080545070465581886553981289605394960917380322579429046306819565957611784031711940444980056098297679474199204887932914919002026014271294432316573743462759902168264913933853036292478619879450580425724159942812970975138378333559889584871397998738380346669155397161201132947367771929705954164605606926622661499972049991595197073080823662411062625009521143639275357445546613172988062508150777459948255543128806869809530726197750122062982757841600352778464196642603062660739827078456581260659889656123945490969083330766940106595770529273669218586856300495835416321496514885573362522215363697556399829214842202243666187465457953147509504758939477290289649650456799944965260288226226436335866465822022145200003021015090364102330346554182321122009152242859612843799646133795282534009197561837610450643650846999098693288558353267964648865058687412349220267965176920676182692069833676040567838993706093672654046040866617033094787353141699247849730991345143379816316195217604087234259986707552475355239023912962465976568434182335838235159339102957583886366184928198267903634949456754962761970576150266568990858966895645516178429236800943340249635269878446591915739890809446670461185409230793662686909118051459587031822644071293767951480402861514271040458911464333501231106082029752448574069201232879589173050812734792114790015705728978953446456385713075450995963103011273396431020931081171406815225084282973318759595772383789905201249822924965287729174964211768264650023387384441616410418341379385030720911410929558364619693942390076452880391847343030976452832368088888396346616771081300618233000729961258587588673883119605868677061398880638165979750372155825017516263925169530810052811916341044759001092198868296675500621134443071527139095727136378503738473327956812920499480711666715127680094848022082535469995398635841489517642736730036046195091266305760107458382628554820072657490684634284082660006722929545398171501332108648993103801207304509136390558202227380486064984561671370184983918775265267450223208301103613008549293287753971076508912219102204634037766182316800313535060177865110518513117567298311887596715235521061038823771472820890624308439743885981113507086458677814706144500127460458427489487079957887789078434145300185137230282386825655888250452988518312674239080500726449079686600179908609951483381684174343735175097999564576440630151094594070516482353573690085198452328940620779964511971389547488750841455575344536581182479057302888605131772776638343109028612448508696529666330875548437219603280963077251157941873685196747559236135024796247493553397664994048524920734605865868660989223235352187276652207825824630366193725885224211687595947236979183058209994334607765015281909433522649683079960712197699669023960246590438110735285337868643882324570278402933269393808382995563767664773370457473272937398575926855229356427063140315462114753070672588302559331195238867562370602471125050204826901203592529218217684348173739040047002073444336239936623955019802664120042600672576671586205899861809655847887438274303846447333261023620670109406754843441514048734250693193850951053246535092044721402466649546521132225376804336489532452504285331229336079761511367621083824393674450594290518631710730941968028328482749961565164874941591523187273708501976954870387427309004301715640507954215615381753394711286569803395584262714257563668822433183175670206865631062619611876756266790508034418020212819005122746021936804685926626749667910795947902525647419313299324393369083279432338763468065742031280782500020937783912305033135269332280208698802259381654646480187938387998694166637699470220099072484029528806709081430961262968989557668332524493851656780163253580587564668924886849206870520458557284600559426697748549005340134878167694135808311801238877786570835648899310585315364039096776466675624428186322195652898265858075970043960160568747008791653490858866808549872393932042310484121481274871521006690513801432544769737101414284603905519286558358999186294874364574372138415392955688061462115327054036319688821490759292521485391257629720548843491582569493845421067825794821593603461008175786009636533205302197776169608734092087039534555097842170672094612846876025654182690673147204548173407420338682509395359744298404595906413771131900566923591981989721357916001260868196006402860445747320737506747561225859976259754398018634609023098723172477297931062443053277006787433613831023886252835025484479476804473737307286104148619519605265306846152402116300250096530124547597543370266977582781501940444442742348092689462755602852958836879804459381591960364385178505368320628823512084487790015743512435878659074848935544218237295399438044428649288869388511387385319367529403254059173884362133357221509501177280789946871442316698578587456522638731414482778701988290868397152231756464636190315348034882354563241851174892770577233196919253473556124716983282138394300104576337487117992107209004724238550537824177936413618996830644318140503742307271793752278925288252192786050679845819417661889876188026609609885134989994980465890134583223542260046560284984068756394027388298469551082866145126999430423572488409680327779812212691879195072580897667673869253697042842528533724492337314307876184829817729757022327437687211460486777586877621795581852268273035942637197120002555286770548236274689657102060870946448196938216604795332649463616467788768668645693908328437489022656771595241287915778283210691839136950417736352932938112037067235511689919247436629556474252221844258022306454390740033063626587817705504558245201212709989129945384970385440627209762458840459410679627006315079831216439129315660482196785854277633689660549012579717972428577695929365743984397919826834554268857875515336491609548441142102103384836511031106513613088937328059482911896333443431731060722938186920169041917004972457288659215264887562765908671550800623171898228574170964971207915379034391791615696734324544709597624819307491872401719201362089617967338889143893310168318997935388997030524728846282587369578017384503205041677891192427059278884212817752490887383454245164801902634912018369279290485370922385339927405510518556149041259483255974333168127979248079224818902895833639481514488679774025496160916415942682488190094009858926752986691968694070048464087305215206089678545065975641782496001468667646773804493194486579541926951833655529348456997208907230895191058009853385833321382682379408001565701308496246731080575443773670406434630488693563270438797953195945877005905241395505460509524574250797836944351365261916514357432413691954707816890796938211044111613493519776930491618005693973016592313024312480874052137872622597079862412379234010674618224093510716263615715909867771732898288222762291351884305146473909649102419793798560483826376120437602870259120777984758513276548505840578867521891495006047888185548246180721740416376035980586489535420213333264685023141694866124220028643812069559022836141523863543440967580931210912979615006579227998922626636261002772635169015467185862453821906790492577244481773768968405590687431987437600122504737659563200010698230062159856687431192776518871916797123183620891949212749547717689845619866527343045565942030401954391410529957589177968661338357850547778793461554416534195080772471062320207376719057065139965847652324550830828351690429317470134646501523084823589072728319502220202141335528751224878054410320637409127446538295028552498847397199071817394572748555912464249494232554832139317399374913477989687806091513550531706376318191168800306466714939876956680754437994352875436276925034440318756421799459738045214013610444326350046753590939256024854808446564954133950254768280596785690477527420385575384164523878476776089488860940837229167786345953377191327553070603720103113503870349599676849617893481221935677804148578619679685404124307412142647865824711147072423215602847181317325269319490673065766258647234041938303357523931394912175032714173595566935771770838736484834179013787907542986953884283431378555710846936190081088709995244368758980492540028111527513013144463932195489926861909844533771971914840646052867099532144218751619269361805753027224989231766870886389547707678606773982436530644118572048162479128077655710773769343394941933373113920535200198323386425471195768591731018427550569392589264017762756997824339826663975638185938363186438320699855888473409936456874128375492102494563611671746210573364593545699548609684217610560173311619599707354140108557666827371169766052022049274732782128616982851148139175437703157700163259438025135937972174826283878691886531301818318619932156866223434564308064229903101794156398301843920788111061859996788561158010195339268609115430360932218249714814243984421230316327785055714960442065229639678197484172595012342594138451535744714662306794680948707512006805060704208328969183464339817272521984508744080521070824697611984061406523817728053113885860996359160503756779318195848610662592389215796839716638236029743708039601366361665893262734396706230580275473186854586955837873936599997829543085634127996856484026430329944890562616531587798888708855811159408223037792597178953847816937684169328037779929146428351660916147237605166347765903351331482799307260644989087152441478115057446721434955567265888212033988518231046384704294971160020252975651171669435540548909402913605446435371161385367685163800671415058510657554396295508894959923428833453104322690302846780881909307304105182883873564685752249829571886219460551345587564297792227470877485237528600943108115554918357556685526436768010668006281129604980545268457796730228005499610138279900073819712677047325223288245812951019205656611159572823615721869012827945440363835740720348428960971782507085871406815437266714064478124940082750827508601585629125521558012479227064075609928410324679138356805011266777291256340284954360369288213962472948886830607191199688441556945444423663074299615191327851033460709316675323388812854800973097368164533117675462455108548700911967696602938844472928890053227455233406456517888911044484701330868789220566162312347888098750724306234381519993422135022653595502961084585919647806657244976357141841953186867927296545068835386017504934386763384638082710044069730039531037362036492784837482370805790778041874091541943697395014711672256924574041485987219942121345851831145878919952660023988597384962998589652179410199734830487640420393457379928132825262138196384605989155591138491435058261962388672115179239949748688977513178557834555089073011493088431617788526340321036371321158896168241522654225018684834044311189377373431704353109198189724109656004759846491582899523694502012959646235277734139939318454959943548938941775810618200024589402941370107346931148311502761708959538726992934283001203543777331106517109212750850622282509586046726633074937276947053645140236101517883210208402840361812037862826380335645854972410976059362626443424850398906356656725989046682539650597796725397001679881494516152204831272055067673098440934424190396699052928834028193821951706469476092924837052134144505475810898611109818123038805082492540038115450098813343568195134468770475681134247035428287957488027321607260807189884674676790587499595818333648628941099175885522823666950867159301124707112573784182085142904850160855044178785465771760373901479394884651463413482020857939402380774248688811912919023052312299753084600747310344289189016296065551726773071199403943973241149103241143867668005451878279066935392975761979237784433580361770376457658424461518937022112304554234641556463720819064402308052859936477550936420607790203968497902389458759534542177420286963929751252642594986231646253289302193567779727969634767714144440759645987257741582569665165478281955331094867870901594823310641295019481835264743538494194585563266086361779010975641720077132220664922878668844611266167341167638348782699737305834021168114078258747604807998594568285622955058053996878761226699639615789421013750688162855809233102477147486249067323016386484485973619896135724704596129878266605658960154854881267657866082072584869862050181186660559007748051407422578320607483508819026230422715813297649055477840793667896039538341972836697998957370290511999900126567130077602781148033758638578862070571728165374518610074892691989984253300752112620130695416253060339692825637209783908682255077274939112683730027495723214085937311713763251755330561352522380838418765346601068252503255717212534249974300677199287490702973164143119025707366467437022121504857656414072558052237579886200099093042374262003864434753990652276827298371197792360314722987627882157377973322610796637483365359779312418209621414444934123906239922552428822988459811060637381256391044452843066254983457153671283371313941614992190998475278920487340114548336953079628352204721787124063941455460106877251952715109396694526806276762312490337098651611403824924175133517931844928516212641704211858092893341940823423394312211228490024689149545802652945020389017514095215634578944193082360094105657679866010750170748937529760701847208603273317287404468478613933729407452289421407381127146927931406019419470551580021227328525510491724227187216902373376438015127135180171057374607031690699472552538568634627688981286803413834552731275259777043994411020533434457851790232797089327211266925395408747290197917345574588484512534751135504618544794590179298570631362750113910250474729604699461756409904895756193350348107404788178095193950073480696049070495575582760235069417000762519920737011092312233598496713363578569584512473783315315090706331878106211871994077459698451156118547627653569317092374023750568909439946157639180659351766705281431983523040858725338552826583616607654195629240309196983774551815218832384084262094788359255344747549281926539281915283057802504439586589312629786083149466170615336631500642335258554340824867720075038443983238801723028426155726409750468668774376885377868618876471688711818693463873737247372706155100536095228355001491325064689286874129910986504079152463448476083931814904235778060255788734928330542347406631281301424117795999587565551177772242045437394682392410994886253699547101028221286015591280388224994113769726039719479035086702571869563947670507582518741640015463865422054946350444157609942475674555773503035086645579048210388853895183456442508224699752304939085583251828628231828827534623325065264820954920354793487214749462667882465221566743333231289318896250282820914457322976250188346163854961421667987459830685164125802386250510655635635510342457844840100105605108914223035156448473262773457237506427284768990400858419309158982955337707284670722174566529855503995951820703567862597909458835080956375035565581289877340931427243766253796741517776786454822188354694354845100525492311761102038295090947421559128477452336817477603430462608940521524057247869493068758093610039797978531588685702102577899863388500804108761954394458985483176292888924476560917735041808525959189673745140288842980665064458531051016703394948932589051051466107092752208515370151518612311069424790426168896590525533930479991632194015367831363418149023896028784709248824025063634660697943220573033227049717293406356967580642703038286803265757981217053257736021200295594581226676705415787748800137980548766994239153360499651189055711610324939354580252017708376986481778806812232399660093286858723914046022662979273274596115819799843239389279104588911472643668076608144965736192458239565468714974701950806556714589513614003257096837108056305231246973658224710721047191039054297989983218979384884002745697757716634481422690899414838055553669648342913755162415577249618870325054684383200844882457151210718621911456574997948312249845387388115365683616900287000662195178261417584549663494760618741439829820367612095301125777968155565162382143031642555192046295982025449018195324722581085441962826064793143413243947619283934750172423241847857732689639883902433442283530135233407426815303050755612740702593597035035864330186764895173155082805540080662767713907354464212262468904591252906247180719217575213354660710130400274514465626788311409614346437375578635593651182144266644183773718984004266597711194466348582854862527081489093519179359318490681701004271203981726574698783038605832503232078447806781878981625083115591617436703684563192949128189808685909809173768557612011039998614807336188051936774430079034757385848032109467072307949722464672993044362516173427198169238590836507841982023696586821386504871245457306822166961976635217837818465210102913536434169609543139832605188813212839713731833403405593771669701980311118066689619367024123913459316217698548196565726195278063398064020325049291570262898421544906049559852952695134082768293915719052099203405632984757015330138039573695672344950587670940157829631895669287301316420982307813587400998691626835097626525318317049641690667706660009999600544033534635229499836412681687605726177617220271988832890553160760596458095137310892826334150974400584345447834237848775490660601133688006665925887742847005757631092010647319655534869049277571401991290579651712671529900368432213640821224476063804190173189693586966102268275524680391201964172390689757380045792012071550073282100055237479580850356464265368074107861111369563471740082497347928655655680851543090442293605787318500564788245256182090070149337544215019649211037431804098205323984061048020415880544325050758846976417491630367321247172299932122098242543033138481930091344427003280148959268102513388574272838758092057756054936546509124120823230882541301699538943067131492259133768244255380888272072780352385631062195165180044888684339911611103299565023658374560790112594205100104944628338495509244650531721571349381828689943834841473790349925551338269773634713724527777391417281006003126732091861167462052999605630727108971473430169325839644626553209965637685160539112709440474360650556077406086811847319239952574871217372238347708388472690854761759315705035083797484392368584769286190229595612470925021125655313602471161399795357468443053481117698892070244559497052108242298960454354408929820081674296751843754081694726554435520353660800408916351915969760042718346586232652184195894728148072802429633014810582409145770195658883477018227520535790420212031699854707311043787713905077032607532897019422472013389653723651329251206736190261839663253261832986162295650673687553191007779524956135721008314281979025286975301770794812611737215312114644786199177651996725154505221392721762297349927131647180994432992707261464331495808365693131870171100735534539036725872551649118239745043652488616245065527159218462129024275403980074047807085624167080800724050722017396236785969956534485924916033480267753349862234920868087394383784313638069570823079382343926012744521990573501690830112348154626489141065652951173957347248816457680628941082125453963447493281828733502702051315207474505775633752696257522139684122937183831739098881939515682629510367708958005491570666047156998002377086359506757732281225243377834821088103637909808494999737096562742817165280026471397004176172862776996946549298585033249272167775907522951722830081760548959009254208629067646695666538869311705453579817537870609066684323444342360945552040931108736020112793161311383660706806490902285189560297179401004767483694542114921215422012855276371192410579434004357112383179977908080943694876208528773451927503155405770764386275525937778502155717312104032583338379822646276053486727580786698209547928921836469049234539886977568097311395130153179558196052855645937628766707678772579266366224581179263970477597422724401131821422988266530382421093005730737292655919859432033326111832882633224459492776654398472093135731275970070551262375877431029291379663539321807739491358311634272831364762375850361541879809844291491138290139675396437061087561144216210412638558165887646719917440572120198374037446617846000777005542216789502216734167744448415337808160334410743438404651906047641979155575705748350282582654318800419636583372051844058916324276652467868196010754981079827676144001828988444992749771118914311296951316435011161194386770726320147550953829409662008764337473905036697548603621750070911574599971282182422739212969333154763720310737267411117657369407089511167953057792505427727504758000908809366266120749110509703837428527446126113937641617637642237219993575346066116381022041692394169754429471262292714453245592325568733546673714739753599397047069074115947616158525658518790760814001646720815030436479188602585788775853133132518037954229470080197968789461441571882464281535154774699357329909407429539494314792471832522791512896344708229064535688181726494203443999666921268060796547625021601467769343156948052083368663208344612866823694811936362288660263628323833098752843960474836793818984998592620239826768275516078359829257364030270965661918152016139477174170768512534438454531575522102727211698453013056926607143880313148882448575780526524632473427229737801882568255791150128286340826956004194004577630248724505419495073484616884670829823438591114237651920785707978194524014297153573159684994508679129318065534543629386358950746080739271751933339491728472239931106772386378938574543016722441086324200247092578654417581475096088183819544641245844443687053273230800289446218255937903480997016506314356237391970347891220466179966835965588746183605139856798135098009415816791716812183025588945839471899748234392773988173420081165744136150089503072842375453187012708656580041280585239762349837636001176279186704544957802290187232329023220687204215027150731877183799860785806662181963302579907732857220241626324811931512763310255197077426013772065083653189064522755025532736773524103995823359131416038660497879270178550510123838309920299213887213771020189711704056612634775347642304783085054404307852459264821025191619138849968499229769758212772440237087556697836115873639350804137824129179505021046767107944357618523064863820570737858697356685677498936247479180333375151868844225691177308239667129695038091937828415346000984807442960115261227754685592640256455422186405412971426803525832393740747029209262345814547024688735966813486654548959507706290210387998535082598456380005397336119607774385678025679136564195259213391797740476341746595876317189966585198923077464951194085959805313762200517803260445910594407016307471673809737803715484097506757265282397807239790381845859617426719038345784866500754347387976356353768484268446103847574185925728614796217464014833829882651912149956957518756668260339974814449634343764580528203809472017416156371022915900655434727107684963388329453477259191882450657630091354259963543557901105516002131133620886479399658270564019448110403363212947685115750522168945368370312897286811975365635513180763287396176018647732775244677329675429846708340993129106145017274345584639738811494686684686811211598355573169119865462930131242526565025237253215952918187982035528612435396466581729378733260239879259936853645335066015748942939985402837125269227157794505530340420651630287710228486737793739773875385768985014719952781783198978858357940954578486390415769182146079065423322539505203881340653130382945680584195654080884577356521878278670156812744904129758605361614067662472297607564115924140343311623478533496309910023751782820681921328950210423219383460084815592408662353271190938013630741597252831576772326234871607586920145576231661342062192268985074616114905492301710150919366335135688312398644402197545693528063963074165872037869241324248839615388225541115855604222899406183102157793545052754017749501973056088204198409122066066716435321369428627985612645073318917154164498763294106403841933871134447145728336778231958157191977384821143040671391505112781660222063421608401956414742163088638263555216102499472733241821899177602839022689825792838433798567283640058013759168834131470064883119870549291085348047416353307972090403321588395035138325123937225256384560150825429716311688097865912208986372399266535085157030131393640219906194408619252905264308643997818172656265706857105336144495931699498807238724558637284460166948910101280315927810369307099823941621003870660723483800288861325042877923724049295117351810474743669204071938382662537905346765472030290124729019281382148641904974263029493610797887677820723313190105549315449407294125020915935012423025140692715376420417128314557177182636433792042568686174536148258111245222797262728461281927504301134777863015824397989111918875746625833923212409697240750579192558390236493751742462044312993820292937476979551174487716063687601645102348758197594006397305007213299500510720141977503020646749575564275242393430947718215380314165244987979251678577427710288118422409760683425897769980879386781224647494520254899892162537570216870992983241043657937559251515429288070178494310720081015532188760079117463187202568877422105823046851301651324362275396352141307795611165634563679912010401651626812231393928901193805788205293291641134190975514624014234810995365028000350554534695022287751506404598583684516416974851385361397887025183183016686243806109433095137146630057940443782396808161401754695966726801706836350821328218755334569181315946360348963423239629486506162983279007485932295739671587396865488957532254983171490446510071236815524078457561850110496103873604378325151106595127810035464521981027639669796572106929558831185380616084781481404639015792036851518522643604324811923646545059363070523750822689643736972917456608249144358663553320851487346243761734378508532962172136585726591952768649393205898123014606005946526592611103101747368310619975307317138262202095452802343953534208471379863718784995770848185848217741043918646196475089401011220808520330866610698059611675763536359264186285142909229600850897912688672904853221962017202826099714806319336721656485777880479109582103492191336093026275436960042702903816679413731662192532707411980705345672413896022291174738232597123428486060345637126940280264832450665524585248574124753548391134936155879719648049515140352438927352654949942680934345884678081602876715275141633074493765177173471825876755601802175397187480705570068094012228965630286118081677485165338422809500420005996150889552870287633255593611968842095347934675058025735581165647200384104580010084522011403382253133326467294406907963719523320613063485706633413640046788863721558909977469264124011804422259853565411224750712000162092782565909957835430986760089670969202768507019914661192643442576762488697288382503065317158727869661094230215756812764140992603253535168923137410761036187458478193556340148825312837504860076843537840470469603138882127692138953905493941355078865939240426646087056537820272392379035893147318650271294713938636445345658980118550990017683918022233883227161745801451257772755986687127765088760289919395890722455814111546679075857964925344416268022377798648705618878812081758395654529730539047233883093783609862308717990132095649440243948437070448659797554055389758375085851456262552826515016319157000945524830050196610722057084329928607948487820134886126295151602820791443407890848835277659285704112287146145537080721530533790900383406692847367076051839657064747380223912168539978106132280423428974962484746928777126533335747459972498048728801579458510396044116239316707430114216723365513637081823283552133239471613806647793353800448405666600082690092153398401607106572556509205312291720996979828430438484226662141769925171262091016980348965809976490949002997849303218976423773734182493554942684675327246140271295783992906552139341839006275219799987003830822437237963739216835105674301905837426443777238769537661309530825082371361773856293049914601991159263119755523535157592428109196330101666504147274816562378912772711329710519734600013785788506679227025872912026792166880545282918146030372054276170851210396367263713107986201651569279682359339963529829187352470397201675498937248672324555667139686611031673444601858062826518058535662124907572359494270812895199092643357612346102447267909306400610801480591001207178489130079046053965291373512507646851454969023937722519933261096187874554223247490563045264695264139586279603664629226487385344510482389690354518675264693896441192514598497857821145520186706940166109477532895485735396125524026027577698619312494707948457899952950463736845892400255387397010998542895407317507514710870804820348997036248563716342167251844597837817990216590765327679777312222276430218438414704951393296851465649938445404828056857778636802009238983470263709389263322223059690972605966079001946250350568636425926267711123341630701754036115251715988995882298259261323526164974155938329791119668728583414168034519703014501041163131804498104179227154665752136491975418815956965865033046029463688658229612873824004213843048500462988491180044155902822975657480773267852686935531103220094915247745925964544387111361501016980693531248399691839225626553208005638044109641358283045230275530406732312001760662077852627455054526449567211587545961287140244213248891187790686288184775505953152838174712258079716938160880347386679080614636662211269913618445869841286001349109258872598138348926603989252099675787648838788247662844576474534315636675910837865786538298479725187931588162657376257858451473612047463753574218049924815386491825575343482412266888873914950500429300579556993549695150579117633235662128604369935773497624059773435028157253859625612697858838126776996653933725823628778859019129382989365005801484482147377908214807684153624899355570702318527400589726083377687390873492140834212798046350124262407595713539517613536210365131934030368903149549240632911086215518337845914469275655813151864196053676210004917277535836875561294292122225524541375984281473120538779286158522025626000076952233695980319898522788430417444437970894691093259798216258772332741279347628612750910148433701711286950742775876274024565948901841408965992621536044283959102006764859621988395790156509724368145159678108578749322750410051373702444223659604120900957876427178650367545894034128686328769566730364421989776481449989865015912325199319608169970316441187500181592741955313953496397617294496181071558884497233419856895476424451190111879540296340203373476505951927309518303184460787972577020761001553944533639168431557590704901117525183352121808190936710310683695683673322908125632132518878983704057997401881057435532006212107295021531137418752166684361429742992799874065587400208519727232181633753199131217280998169334006426206779464593742511991678656901790061216024944841425660753006381705426890438429625692156022592774162491681531505346320511048658548524989217638561781811787796962732629288894457868193781639225042884032188422962745152550670469196668770137083668930727137988531120182585978469117730750651021171813470228838632828335016000148089603360556440547442374484886358814318649707432081834897621699546110016608893870591650080623582402683349162015690459551058392700458678656176201395348814007074411141169125855557446429166326334546834859123763957103762650944216755977017640486957068752927575250016921973272260750912447978473339738742881642289716500807753026185476412639767711363836904196199059077904599967554825695960670485044982850739461473479697761556403608670665124724385429536554187341764948141536835735968217803644813469116642311928762599690170762522309904500547575442841039398654378007282578809345356701524227163535160626518760144264686216393324734507678492125785406342429370640380409924163749779871129865184930553220191438052541005570359865631576555311831984891514519921485417600849727258374006676365673752263487927742462350568617599811365006434610794807330695339164095157723524410348665950562096646321514345404692225232584526287042322322167695271564267043102863926313313049943520649817059132034888275103548602823613366173065613615310930597226387664254917588599214658206448030877895653435380471550033315737341279053209940597755451291106538819441857731823582397076326216321101365907414980697171653415642840970431779102971301960951364033344242366484811287884154312975017719949741078206132298789098086833362622555631742206752635143224334690000450676866929856362191315096939661620897973272448654149846935704901196345573339407121141551460750838936350318145458114179252171147539351890458522076508832036368584622904012047097678854500541609017827188385724712568892156586877407669300636613070574436593913726370600183384652864274286336957178771171852586083909302369882319796188697846153678945424634670865561172889998384888497248150934702542211664846636345374233225323614230082847313034206698831708401514796111257971803659082329758681181361255390072732843644218583142845357210541877484799259847545281803105562319967046763369017785025506976209588264929533159922228024290818866173043460143571447502236695438189117930278958089586358636434033083373904636263492832545194225109553898781100790235402072704327537629512753807522857637184189467677146432438764644250339906458405234814212970798914190763151283689313540186982695129903365418492046101537989159483951976352861581988957167797504431555813461611168914302012376830223303508342272648301191302045607855226310860167098424142227523167510180338053145221238929037729600312941189181565909644598857038660341379183950185616487347138056379360038582416609588011492100910274700628177359744853100106980569583767391151404246113638227736173423162358216779992531659471032562523466134554443088789445250188822148209516681522813786818833387337665239747615658552307897909060110177851509080457519986445708152320221898668290496361405312649865415377581865014644078718454216903895810432759021816933007394269053151490795560837798073745436138018533383985807184206197732379127864251422727361595593059210374470956717547223826960464612467902181309158218367630215214648604163359763658252842185678017618288537999608254431931565882487191356082033558098827257935029316056049812260706279628646631902228913910056824678180921719489176647550862425390064438837343451276572743086745009680189995246327441777169556911197640555685986796377953516981635687921979569052281283641436218252446736275406235890575837820456001661352546379352873043930784206114736636496093089469930008810682997614011365729246008932122141410038220419722305565168751841621721659021674499642476963819666236045921901961184754700511474649508854802690829977931340812162012249095715590809109060265805705993538353894427152158265429694030690982962178939127471937008909525885097230407167145270576543932164593092185225210903829542501620845204565673958602123222082711479793017592048530388644520104210923519292258286182062050087127304549092845331008990900422027126808262895535777182137281377036153876675181256339612453473375296219161821193608714604091871188177461724923568532602713629754462081474448224967152862834624590721760123317802746964546660274549529786879818696083269153718558999225076089286218026328310002266198620275831020999154612782501369732598007361069740237932656268835476451690993522144865301183379472675939423207398456843682112549761724075053901221208126914164864821143140298869190824430493617051679665683584319842379887928367507560531214528575160422021514982876764526816750885421230149298027687066608543109127687835861669195588700004040190526459054291002963358836897727974927446637745736056547421254135116628813966020547548904257684522003653296685689917110514956599500878876055476064600581048112007163611868731950201966147298988568639924442810647176521500024012168722775470321173740215545006089669779361122525554141575470008355463242670476424690836960322989705282606671096496259772756856608314263322911785116565192157474467865437236405218093878949916259403249743147109418412287886484462277295967053648849244204478406730729726266250808111427290918894441193893458001596294665627708856537762692677942276425220971565725127262702709602010815386577909255012083369090418058784350874852758009115974146753295975412668506116929597164979813786059492745705845925343700411366921418313804996778641584057475445023244838242862417211096906010318001522869894886766444583059730080888935428293081068676641086469929925340424559967608647690023966423339538062001856594288927230622330371402806198896609313581581892726614059799503047949734909944976370554008946090186499524941765528434736195166209474201296212662511853223630059330561369936077616435588044288101387883094794217806853625391865975240883985302296962080212066664218180684947496754063122752627612618337622169972742548720202017857620335049575551402671585088581988911255847047206363388725436173670398006112989861325508311801395564400926386527274880429293156196643263494864232724299224022684234600893057058827578217255841363256324004938185824578555263246750351733144956957659149666909304694378076560733111284261090512875042280997736389089045244227108177738178329007783801912868065517040808525122530450290759777545862619001885398473272220738306937303920483214651240767448439741120977825447335493713525248276727023084505133504455343431484541402148272220694041563109995573471590243283374170253703240241922582831711039939867882980175184680051205228175797169444972558838645804596767945980644239559817409104040121949110265138867760222472495463429266412856793443089987868267620045440511104363723260961107638338019157348737206006738163295356702621536467208825000160486518085556362461327108029781441239236715495303065454602436965086737716935468137865722416668099669634305308409988783185091073698147930688181837294097798314279436568461339867806703221947203569726640604044961839105790297863417257617455291725081980399970998610597752733900469912304817026719857237379376972240283899710829040429819365689824972228606482799867622829854048960422246941909250376910419116196178245417491042492272905241042054846119241523005606518804736346802378385162446464356797802991299353239464144816605742063874478333916108921700013544674172395479377160188894153085525013155987827813504494330754922936080810302619854855510402410002433609690897592078025275810333682030799879553837608887473401942329675970395758927917661497524278090020177727125752009086939069017764816125280127778536124153859816168670849300766996490985081932489033310517882009256848071608034515847722680435346978195144517545742588044572127038595884631242588800266608415137436775840186087173853077115985052908343850950344679276382173040761896157722759392631501845921619541786930795171756183651566021139936708680439360859226516673279630131595988153752253232289316877188869279478539846101762770426970216001047321207035118316890771470193257112030269746329482295207494113881632519458747394251886086859536064194190539056775793775047921211706974896314341149405534033045765214748559867246711984695161334122211641248922078337938173674832561753038323011529662389015070090618797082386145405087172822571510738795571309617743052803745568295424908146742737734919413562843698922310180567322127267489521890082162364038043046082227105314221595382838758852311180755778900479787030542491054855258470084858274349951707280201018483111620197610225574751430054196995923350736888613701157642203436381539646467849280306074833687432212475710318803858817480951745876673467011601153506341630721496940102659770399797296576899063291085373699570215949916122665279262640704424137291279618659380145347698023422584492841494270515280991568107325158031200091903718208097275491340102571799730451822763740065883852093296941494364536382606978231057092044449634320712009896948583026040944171400719276399447418719893108404453522936628425833164132724656581851468202141858112183500360957252745293884966485840323955175143821634903700787836080395681290567171734826717573923700717284881714618446390264239300910399600295994608955319363331839415968730270774351792333435912807141723583044589849829459258158496410786192297695344826008075114690702116419217188604139620170811760540629433148819826779860118426459695374940776369151524925670507536783469683630927039453175987981143422696582335856627741177442847220590645967071063626284408526071083963740420703722779983447403313083288495882020344446122128144568486929699099578199115415764154591705632590644827608883252363788118913975461751178227991906737160090751128999958285831999720504844664796539951666527504262708463485212738922505947673008684649102960592547356860620009601896468493765166256230009351663229362459402321472079650700782791668292169503812770876257784405309241019999601150967975895541192967519033480828906938786919155121493655205648791101638516528111463926004915927618601741528949131231573078461095931693172481305826554136244133329089119255895095131858647615345536139236562217174473992430931013884143820189414147723244015513288222961932837459087964816074918016058965185275437320884645293324666976065600914885305350008413630417155760567993146970203472731518913843958957376572675615523334473208542563188140704379141654531960949083912261283494959095289688989803037758466004451565408971865659735794426628706492337474256441908456849550514684061040735099040873263149463142719060329801703920039468962390892195380414923308648396934961100470033984461042225756307486753012086589220868717293639933298234963001373467866475916395085567367436695332678495391545806753682803210644403485730239849719177919299908605021505514954512166280810392833337660739914627577987319821775662293196047549864582761829450192958984239659219766058332896277984417883452221217666717483841761994262846224884100027368642094985507535370688260102863678165741280107715923401995478905956385042559862641397150516163141175455615140277450033865093314817825243252268389993578051953797132780690788692855319702260688058385167347994315382396456511608964404145017583948072812578530254460011043632481517448232444813979314504690026381219997783973173993455667699318735927065679101305984809960823974176324851838322365872372377608429497685999095728395435926930920236045541227844868989658852149992168608341488473108808730050440597379936808930619171914108622191532259941698400033221169092903517237029090402093241513457560753211347391109565271501992295493472934575020979709693735847363215554885640406589490869683926413873049946976123243626153295623880934696599713352108727684719398492523852712895201601908054766090661929090059034200813748394636029519070513581813215544008592000796007801979579847858825781459178375658683925918336368976871119900978913542872012133908481916852264296910686293177325960014772529861764616887164403704007504713987454869627420384784462836185171171405439744124236763939477574095491660013030310340940049116808616842729769634958461384991478107847119639085648988136899333037173341895686932971595016234392790820710607526940971360479015115101917980237481977041025389835282595879223958056998795058641316810322888888930446915100219259918986730756025272652947744483816237558324677787562155320908445472185579413842561423212611431428569528035135256323994748470567026603242248637632507032046309163815234746717643602537748415851494805912856040760104228927955739704135713036038781853929911456635581409568276280763064732189704085027183983173474597142669542865939931236301320685813421782954085915507250171680758922535376880310388778573169076278273293908516117445744419945354375001686628500849330531111008364110471145323474938027456872507551419198704707978721179316213628799807335525926131748242879638893357707062896458280471842481546773572597766757924249192157614734263609315290939539782503564571903250837328335979708532195783373626270613084993850631863484440360493419013550609087602620282963413668841411500198486020182785855658920923267453571722841096675964409022417345777667872418121092800758359159920092612942063455352877014301673447943086465505856394653339784627396676601261846266699560278839736669967270678428150556734110907285666825452154609238439659158030313939362275251106679864022371503394375019363661605402191755438682036987161232053139906234060778531153226048475764511622725757079905766121001419130686760517948290991180402011447193041039811619425033939047852808757728181318648545116299726407359567291588027448057190679999454100575599706946272351103372333923536078554324251911724702927953648847471666549134556497769554914683274026028986536413723607721181888820995064909406548281411915249753204493271832827527379408915809951005611087316821331448287471397510992560098325022900450185759899324815927122778910486035464552518464225359816117784730372833064132110882818893466082987093109174053063723521870545388870362070833769506924988185977989976343482625600758238201147248304905484625188637065391143799188927285543604213054910544362357153037047450198541490261842091381619063337034632385803611609195705709029880994888187341043411743447438366060605138347932129884699246121214927993260982891294394261577874007734585202215230720993048124170564178506457392060928499464918956905811804835115745034473581298175536761831904996649135986257163047659840823264250599266233269558433564063005926189982437232328583375657199485170389605384159889559562809168515590889433224347639083816193303432668879907887733794909605199554906376017661584103556843941003826420352536566996968810464962197012404288845019677762963320699766987828883724640263785489290666897097208442427302108451014791747196322031814918756860408175738267308478775108872505278272007956849104152154645857841032053015261283155956063574351169157613096365383618848409294830423444240990809176330070157694022430371527058272539951028959946018855043409000873353163427328578796220659695263718881327067582144085131061227834286451627503310492998695912568163087787344032453600394578116507858623552594984140518825919653807008967461750553778427662933986334330028440792718385106218345689028290338149315248023160515015632783914893638573283692505887059856694211243939421180950332775510354424250555069889766682419504871333210876402836677173619878953162137182329052960593999742744864996897020465334244091595617877872006601433691578324520736689460947466269105375033225136628752460449807909301074231608954588147618099283226529835918910153589133285670922682416464247068643372988588978234661057489939280347520866458154325607650126183148806059557533480082062488873613559184526908825351138541633520871029938678027786518584932795330172145741443507516913256679640547505825819850494171623668831846168363114212311789903066139241684999615665132266407685753724718087927741248750043372152984341629075294902281279279658902699302999541023051225401809408659450704771002474426827297969001168351127973976692776131804854333198398466032822847959853045038932757071500851376125366511325596784396423807655473430781380452821583258190321790463943852955708326922799678032857413561202272465521235240337214185278958027645437621868866581250420814571098697140725868680434970101983238979280909896005638532844049231750783334068401883112149818635870884387676418191287058751821583052923457419490129616849067563609492869837160877903582581052746274249739135966198448722868732502730181855704834695801333268688063659270130421197594136383308807384779623737699311407222028976571278700250045881156996198987901821231224433305608927122151455947200119797879096781604182845886619015167300119580693487235980218945395069031165690623253743098197709373840799625994853072047108405294993062436875465966974087150401982146410630278480063977248936060313992945844677844575615680763144191692982329869101150997772625989807443686817974128221046909134318202630177233629296817960013587464571662737197268794292120671642360661332217644958748787177945236135191418439841356917472268419427153517659893711473245691386733609804559177188709039018229867272639001579095028736967867056766608563610565043223550544317787827733093279233713225326012752654637705899379044052173166578400456506350491279272626098165096711820824847951446251021211359905461950898139380721060197427683274312711935414142380764355457203533434055891977235493334161856303935128264669521186029317696560112199028633817095962164389893918432953639205233283986079263139251927446415067976829046217101270612895003253383635326483873376230726533216193826212715725906231276575516386944887684297792189042924926656550397546502001916626069276550747305847003843752854669468400952488318538206659119133876268883043715088592455867301682809150962650010413749903584736825526149427746493488348170140463042547682641656723124067330503522352590501886952337208261304378985887409281918364769598919787043123044789854417262862091478591361415635456624850236957777895324454312952909575684004943675698511160545136536838116507155777052555187966199704494775236375611223767009944000795852573445266410315948354222149011724449267399021562007179020194588991901472847013157166363079166227376812560236691589491237433708949737535893532323697766512438376636276364242102353541616030154862707459034664167124027960101989924851209627293382944341262271559055504160364047310928596892363177385297028999453150516846631809061643818174341905886852588901340278415760658572649839844323606537951529014182358762242378679947883427533131905205931743598847003584983613351319837245569786086995883814267072068922229671159913420300334933829981876021542244148961167297619369684343201998832184350537248299736725029502346862330682816355113138943815183250104033647480229258146803365261954284908534873216542645472839464892372050810556477871364834508957310551997460433285316963648943862168895749370128869353932709426937687976526609782377360465064475482088334123382800090348588535141288517405981282979026083871710634564575643574491221240814577351502907252399124505636686274403158940468416407144888076741103839380666423676435444870622530366684624254218499913889166176415931084389917659779490185878840918937754562907129810911965924842245261376165122178996171557170121233082204882231917985434084608708344115216118548833141479754121072732627140144706123413898601777275715852080005422610141275746009159499592189360461123534865647370126412724684454038270958796651772545351751557951712550711880970749557109950707072889265808851060167620571684013158058658809836704193811745969441110839457272949611751047902548280561342835053263294685323761180115227312417461334677965827896795417204867464478858020584474125999042779029288653090910307981980141179496950720128062875982167162672202461822061850611807520027326092146620418629262340338124334609756281991059906787691816688241245896986961596343043923442038160124360884442542072707567969396081039794029375986461779668898915384687852480720726245981722803773356908209648807123036027994189829723686282486722032701729767971080123788146559418005409141442734021740699160647557821772092488483665925270737918654961016704023288662908762071938053734013206869821003713923263955835590782245326073723037784434386934234837706369513648747185390476772605715967429839301645019722690223627804842674613816161469973857679791910426643431813536173259012512323855856140347753823011780352663719226230235810507454660002941273097235397097721787374625861514765108602039623070016857326211963746375601746911956477982628175804420190516835735531428968947769339804502738076784265517158888232417610507840451456986705381037782658017262793150632654276642113755776594286204376584527068904461020624341928267665648789902609242699250349790408713805049970184553822118739111426753120850682455629001804511567398607857993275180967561717984991512900472413380370970150909058860587659250933184736443462933210715818972846452289775747007217469448559220484109493535177075323667668128843139108466483807493186208552366699717462218672763979595229939072877702445849644377123519100284742421283644646754488910253963366092666532604045889677960339160259128959992976096857189867424782160706216630273428688146929132349526591681548989221756128375563033554295254671894222958571115873613126023352333870536868156203052199747366394615489503348972561267186193491389324266075660868415714476129299078345197866682036610404337333350871398793303038972766333139406052709041608592633698779458340816907671529961591612323287663472698315658596007359767681394219897705201175189399597026925549624170689340687061587905153504044081800764537964928258308534853662007594988863241700963342491344684279864961049136526173720213463378139874163489431584095470161642982119556313642302503115625797084389410445440868349215395146236291016266561648201871669380051833939636555329310067843770322213061741190466513475659701103103821933277827857104527426143615724857720062535024545185110182586192580471881426671249361709801689758892614705646226640508294348117040196045876877869131533037091155070850005456625688897225056280075736612076437071672753879771905424817039779018576424786689256321650186518831273715390452365544585973694995684861144666096400309352405516070850376537434499943108481597384210005037507944934100161755986724314797722192141387901579950378729603851001510437773318261298309094152381214513582751275876404270836939941233974416559912760386009651947198805981082861058661939186670200099301562019838922235923447290198972659661068210056328852711030941888088839981784195562427467149546250155770443472083518449855495876632641347735119851820503972974969125615904931688864928597199690915147227606959230163686046100676711315365345136154054588729951977241267353056863868567586439270219729121570125893928454408368728029417080665127026484613186352854023957930669220832921083621343693723000427762055967652801647421904691586978885402272919352448108319210076608653845897630797073387186195790416599577116873141559750479065330821954284545943100034454760695680132445174795938219324804592263527946361525811172432766513345034315115170272452984858567412759555741838506084695483394504680760722482643603210016993618050573006567173555855641899223933683422287588208293612828790126996679775744112211790974960781215354719775002304603375969082067215165918133526856836392939987297560069339640375500038949837125721701210095902225268665425298807421069448249667291047888255587371135090861655941489890373677043555690821475664803747073947914091432874834439452822564324822848642080787758669743711763995055667078715190718654306685606779214315123671764927653204399685523424364061920399021853945475327408130255150999765461054302878665475882052691292767241310846238869710669785728081684565791084220853717029854894927635087179599699358308163190427774249583428723189477526036541104929242670822938535901739012304441686608364004507161973055876520373191224324154255384697014240884868836245771958545186640397898780741707568015643913627639479064753086560112179742536183728576302226347406117729173886984895356842846268585445236782423616855179434800727533996261810252755410573244116507119613612406135109353285139653593112193419886313106672308054478001337142770134052472159153697310265766126914328692125333823173235330987391473992561074542120460686060886706897036435157195118253606035522493571578525473546833767934072542789047547352557728458104757692588476109859399246072147300550986220443477181195454960262186653617202790462621692370285052843956437811479234661967857514252615686556973114631667936426310695747265520645355746645207794984487958362910644076104150989286792309838418981485913689650830120256061757045528950773087327438063556865210813434952979511007397276771274308553034280608392862572328188696388794451625041834209546721976768458653204972633076147983367534175296714162850376247426633401998345419315066710418385992792555743168804816973962746606492998982976805149221045806757096630307141878212842841652209805094637620734460500751644179708079083212317869950959619875232129661039362039432553318560325526455765518183140269503950380368804842516766669153157499594545203344346714579748920647286389723078585406995639011197718156860916417346513988731899669657918244240508578704861034615835023733365159273587157510383890037203088982289267760788064885202447924416055406487077924574434706886806294070407012762027950819157922932745482744790977273081828199383281134158147701349374632685461406804445407830054464348404188351259655885263524905477276477116970511642108047385029913416726640308084247697260324063165055876272632313885927255014471822992031518012916030859093276606837713420440857418295136424830139388304012868895326303841226541382031319534403400935907432659904289045342346226701550552719618085455221429329376496458740793660047050185418619421767695769556836112933604824521813336624591140852959615842187416633571460960937595516625114141868918311007706052854948642937946399359656651141857057201776768465349340722057353258882865403912482602708894816824917741745385172718146417532749886991382627311669887473154290464146068883486076122821056864768016143128226817147110359108851207284462052065654675395888295573058221193354967168976265275794795878067805506751573484606154354747797921284198343803446851153414727336497008838296796796097788831001187647918292177213946615719455290660206024515624057493606284240400325822371657464549141854317165113755047858782314096790852136674618884052399645242965473255673925475381128987196939211558088694698210921519450799874901935153948406032077109997109401634968540645974848208988488658258614133695589327647389248559267848282764099504373215664136485974800888576215783968969895320635526046429819818924043368730230805120266886702022905378671305892915157371343530538454928423232865754929371584954253309697534512908932827107094502031713822658280334027984693551546228949342806781656824645081292011803399963578335696907435812570251456416146966900632231233502974088385368676092425787476279839974371220360754154111670632475101659770119586814485621939889491365450708673195399426560661109142706639670266383329163261980069553042442506098678965760790209815845893433553846917337838820875538073148932057760252431290348848100335078663890483078773521508176918122557155704365867733351795932574561839515547196982121236443179880696056101740062130558335968479554270314788108875452492560090255652211581694655257009642582399666005962317087618340258152594526179527566578568235192498858009866969118479328271273238876909243985321078961239151965249594155694961137334520529484778150448263907319543846054415336899618666257946582087539467605875715865117511861089179076720118365259155448124971713615656371430816733909781550772909378766215886777931292600990990568142907073657177073088693352446986874567095110613636195082307629244224370622585359559488539048008056609445662731321900295567532383554333248218757710007441418137830393471524254082375194884805077866231869408115077350927826912550820479019180192440365077108515727009580143874239381802109194326171762175847019002231592037283366459564372012569715225589902140561116961312798082493813012439405309294879814960827291414859660495259024485317182803969249961593413156081302100687637990911731850306426802543942603811331978919144361510365954083491612542746652752172880700889152210399128659503643493862754631230084663035808961020305079799797291113514925892687599860828741048516452304184340993677707799136344400956690888311326190308140182768680573410756507515052993893719269590511600383517002949885061220701296782354056690799775390985624419586675319205207451439279908639155941196502347881970724341377542759836769929693584465809756298698707717944949271949633631142891078504422529252021783356759948815336378796756074550495991014380606219584490100257451270401252070269363912328453252785785843682678760636870831417054216371902767665933360408655218189158232740201708722542769039987099280763975058140616847282513769548485738071363129590267191028198550859369071303321276831794854085385058888698366571578946727828410954423809256372136491058456505568189913025525249530006059380688552615042775611906233153071484001059245503150071481480053457941052754478551117303989993240165960359951671552601103396150996355898143275931210630603446880293120599091510598987779102496798587956941192387165577015185112040592161519754353104772870979136611254668262684420442464501860051646517709252592166495694631961692513038137795522452341043738581220754537795700096484563115081325694298627814446277537352552250471778551350853973173995756186350579061048115732538213916232372003513898660853029412208821794845108464133547274181192792495014483837934075775627568903037892471383082476737466352988680606349252139838621267351948874036337784398748372324299072172343926680406332286186648930224568056149798804780446458346728502987150615029824295085570234314262463734106263173240365836309111296433714396360561205999317289349577658225452714390546816196509901982681640140678501534420887988156429731083412049547600976537110407682919639089217938854959372463762808141401077996516358854933724866385558665920864956481836579298152552805334881219566293657953012476383538165911126204147911847909793752883278597352113878432541566624917493927328920847486209058285450802926211401963585830021119451928741852674095896328686194700326781782741520777638929875755234600532809568147752118039914546193638963462585969455137874643568294577792040316458626267110313766603816864719414401068914717811603305896569904578389234928159000143400298522062731070637487769019189366786719359184092628613381139650545002683701131804607720114353243524611387533548025774736280728142749051415816272433185871081963343943163701259252012081859142057727937102473802890435506163449341948562738656700104761865425822983931249208639168932736636319192554468579801353344625175689077225390062663127593909681393306892936807303212981926927838159153228808038843425919886495053774359855960372087537034577546827636170986031247762296522967070983069745577070749977903984194101251847831837538461350623591157388184077600064519806701457322747913691250789606068848558205559171515020359802318006605783649566595152055853602636616233340754076219023494668183637617335575398951343389557545568703714562868801619859048903207229193741841365537079617040847000482533963670622285826195360155757304285343095169234988153221037576155649346294166020723992760192676623885127183111462860909346519478598551230526615087924537463969463959760709530412648870629406691704051409563547023645949049993437251835535489310118960224217516859876401616820107450738857913218821648100520085665952256873207546176986976416786498261883833405275774808836842996704246509661101570458250265488582848820032110407414855248254584621351792315342043299418713945302173013686592831208036743592007240776309623211416850473931042748548780897781139516064090048654004475793110947920514401519295564797303373755706024826464514142293478085072737430454620322750516058684132428574047930808437580854717917235447208890467085851033240509187442764852633610583305342925529177386921397839348224137489470995938670712061600005175597092509550685129120431241655908859702393001589358464321163657809390000570331852315660938726162810097024173124953531405663885353948995489278655977165502446505357538681779208137670316707437552786494888938756271802071707404350318874079384679112234885708693248817190239661433644211774531950493450508879487126823184137218685608477513685256310332090266951978960171446824631808208498428027865212163190561826692366887123409497061565777680475551890856402082162738681570562116948228410682506706394232264886561898374923959624249290448863031041409595141877506653721382110325686080789782945203377542833075541579903051669470387820151019563090713252155847771922561286883371386674993040837715429794527207672829384755899306911979633599144922058150200730878755977987997111536114071545747161574662220352645324144732690017324409270707574774581443937555379136275112782095310881227220549463241397378405495219688786260994073557005989453238268422162837730553556928473985075053215575209229201307791222730391019690443961350910030813412454493545084073024411203854456265926958923996816476861469342781294290629145108091654564482365287357808379872685664763775317639442579330124343596417377124267759919144323693962657026593246993522944274896015430255714493014441443734878111527155792976862271507500761719132926059758334211265587614700289430932023060187073176844673846611514850118775422849484147558292832348449153700380727576789260983086045453386950779716145895608414730621588685938258065283953781518173183761715375497535032151130752329950936400842855649189715482812779175843247465554865770944439348242294192230760321415575790026295503568482044566059913223201800433752944979112686151060038196443279762977928989759411545501904534541385873458914500241365109187803729828850519318655327818173324578922885205192633294170705632460658553587341567332811455096133276766979738091293919293848302547090110372090760347153112021809296053815360147134220265708666495366557924879426289739409259940994486279215057664932272798974848101180560125896818134894744419602359488501531832156622662740966392559130040945437288136384294309880563572337824409431065380049115320264952242375555410010235788042627242037777085907436861981459896257288049822527720839486104423077958296036236400911839438715133619641019542884100640044659277059975884189580988652584989866573448008145070203622207057570339401311462659281906208174326738610258300923903637977043819628846046709387928940445636988447667188985062804529279067303648043326621881730275714032567906567561526945798567590155298876270756126799611145623353746506717940004867469033709164284919900878712175649450236016445045748046714307729847751100765112278219301435550673432447484239786933764274735131254145933477560792679723501891893729834801860080453114590507218030178099818780915942389191064497554423050382729475917951107137815994324120798369331533573435816438112240521917638431388856089215260377146233085242154008203440326263406629572517106495398616841626037953180191546953599851291463005020368566317006499551022551716099457703168147240779475309099539973745977457652685419911818808208264763341256184202476123872685430209057261294521968832491784943820298709402978031883134176550282168935487662286497864988329359529144143515541487602292190581743678201880513379553614426726797179487944601025646279460921318092469832007024110661450506009291356502791396069344462291829409511428330966076137083706459014790594844285986435661753082039612145741040089429943304750558824236110943281599110538888792074415080684120400165996894310349035038908845092057535501601263652035150216210349375945327024430409523124556861337855682534289127025181999150115933220252743716585478170491796805965663343520875901221600270214563423892457108558015026176940705853293028369129759207300365179632623452148967141571361535836457120567528499054587562089018992255871977743872966416252628948565751210109614402002439139264937326221064071658182903787219624205789468088734932008359691445137280927059952129986381926449005433953324537113120681651226462223875825421449100528788989246350813962665767955213101710279278958726782730698937821061869929094188034742669807724660868785638735557326326652518037584396196388147217038866193568026256683252434392799047169084490525700758157946798954731405435264250600770017383862293566683970792278125940457676193865240030311924691590962678799088586678602701143608332764768245178184699005006686726867126841241149060407790753300410405414977852815729278134169082034535285809474660859649913381884381098754744645400812722266739141234425716992789903837258734761694580835412971703263747969835507666306490710384300334148880721518170558164201451630627479548771216535370216202588839012127555935541585292837221512585614520204431177752522922890572753393581080406369339213375989360002376795052801782569402240810731131507251474801994980279989460640621938587643308011412490735647304741702113188385133694692951656068116948321752388217957236684898928311301486184107039584920369099993967826736612257070253030219707587004014492392326233305461709207972755401963565155143024441087121085523258424702536162493278832493104626665669483684765996112875359315833855623680198862018681550343462589772502055106780679879670171642309814560042831561197724663763303726151911576801075559285186080493740713690958631212366195851976776970080892604822783005371652578656321990790249010040268868246548892554376624781444844863752732810498985310562126450568829125799867214267455920227576295347546363674435433290808443874451541570739365567616424877081577166862572683200866071965440430825033863698036614035202232564500935129016842595045364236789887924517052606193230910465300046376596275916416573767092987822210095521358930621461986846551843610947225732126989538898415064996401868816535197483082603572683693382072548111741258543053770439888789633409681687758082941701881219999825445441299303060812051895728512930800275389699122958325390189635013889136842079386487913156015424812068141450226574054987443255062073424770593484445226012831294953374538445101633572131505554696638654187751087829359448666622626774979411787073988438347764525952024522577544245076101341459314601101987868247283023940268406735403149686551194246296761736790633211017003362961570551734474515277633500815107472472153165723472228992651555923501324839531389115801095949357466902025145318071364217299063129438029574144473511662710228089248207349558197643424095914773132199211372456880213523064107630400182597750207243551683978145377324922765390720844321416812854934017165593905166966105972097738767556134969178646539869417726937593669076690795453009285127426189648713453647137278234074016084295379246435636234616760931768869973442347999055236177007966155967094469230411639263501055677068265248073804816311838443669832574081434162272909803923365216553688933653856232242851118049358520229341734806093745191937469128406326288366569076955741308116612116597854371349510404270894888704676450452083977191377289426804850722197582408194525173138575416375812849151024899005143627377999665906242264907313960989671513792821664281776556765467344996776611819016392097371261708231001938789816171142520307838116056483720792536989007487081653701272753686120633582717382237880144040279321180739212205790311718016059348595861846604446069410224680811177214899282745527855750452600410006973059455332707187687480620628509731665925640274778953629213534350083742572764631410691754076886429366796356502687821785113256389847976419087637699454786171485727957225270959689349348539210057715253901866749062938749188572610740822086836051177464230028574917711392672020928282786686303753452341387532816407655913606803971421509337714509811545848377321291110763934294787023411725121450583873793135075119211269906038743462315772656241484777950384466571551368407372125892476286875967987070720162193529342906770365343595874678156919664708087568199816747757499022425725082421770941582195072667418683914079780658870577082756975000317345960458620698866599040341518371380452132751441227264464304280698360936926063785499006046688992259617211675926108421197964826867083174107970176038973904781729583610392429043848282408293312936558757477342012884402273182612448254583931532758122845674725281805078282713855405749886168900025366791117102079656677417732031529468689678164507954355721201719047556203184441674771297031436852834309424264587017446896561281770810927832923854745124618749055308085749641420467157813266829440861276382714516406980841260258259164856969810140632953998294518691442755168818536908008468719024448407956487564249626941828275308452677950199538919992722870300553312782875318418859026707639609110862751211244856737761190857862658930251208825878050207311039184819068095081678762131227385765880192388306470904151732137686751489757537613463649616562222928294343737158188304463941067116794434313773148238186210458408915457065146153105891779378758793976421450868925727922106969033344415829166492119557077182788037138463860890542976717790476428069431258083005457542290797107192598860640520140893256591175247018175265256259399152517294226650134587987267720554192673413802804656194682989970791095409541930082668363043404759200514385079032337180654042113471521281348747643669709580970677807732495063762007206769483314771124642326805713589838186304402573583707039707589109040311026217165839973277413924551121493870190167959322492993730384730675608913856370319450531439575637080492910774608230207924896970628542682792591610340399192393930121447651331323409187028477300895113902280447801981601399522450450055709065758892704995904639125015650167303752622336069330631800660705762209834908157957917763064707073455705628069591816492198328438137451057558109319053782918514198895655658061998552722558106763989238766500220765055395525824250638631214426438637064965558580269379095767728669837752521012582765245838010958660713793878884068786122154555305962893031382522439271035091814086834183253489924389064831434958722058860498436505688906216497914032610830818063390571018841891610081033887480401159495251775183185629762742018867222408392847445048139550206149938501835970352663174407620946708027641801581813961726599831171991709306358729159551650200315988911738163891278785646383619481226980007609182509820238097049607977022083348656348535666100170850534901008486437373930275436228583914339704414145344522730666085650170569033567962876066940763563534148642306198557169558075691553977620324061872618923752452004508416639761322884724627708338808782131627236728051014751570288677479821368896065147570702055384969159326681465434394357702181744851311954033007395491590095975956264156066413710743728535313759092793067148542550751674356261146502964160563154590421245500733911431999875597911259373795376514531191901727195665600750861650437469088711559747226769451789154116544766932745052410162119521380335230924467904948055404806529184319528244676107217192644066308480671764984485694480389950953344152535609708311768381519785320742900601210678707892057852666616295579652681944856080389918496225953192799535796287088824617131256267040733557303175347775983892327275029619708767673407539119013352395388787689543347693246273598933798982047400602650388434799310752307482493954260062656818510794760056495128183456583127591709396084850559784402589422867635390769776538126811912971158426159020875490038894796583751802318322884911635539724296616191897481501153007043080591687231977301856425097989031575553992744968711221307692813662358272586250974458505340548659609124822437463931989813747219744814773152244426651317474655251699070761079086042284788868335513778927995458323571257671945326386936940181449772834066955774070310968127346913087721338906441733683504693988498680142098996961878050109389599835021132297504904343532355570516753878295388522028149835138637842383763393701388885788728583359528255881401372916591226349926932478743671636217924297153582225898427064528831267185431978203060648065990321304909501274250812363260162176770446369315754104861297065756771853614209416457207751163594133545635863329334719540232065665493273990822037562244867417685487757014958317192622575842828787463359152150225094316939732206091191797478509773070506407503994014393456331834821185454131077825877284511946246657633058618808515062806128646192768355150401606087238023017982022411518776731372393147386644424229693602139173792932519720572458753904161727307477488583819278013892697544904908214549722935078561982402374581621607132200807284283378329531582907575418804925273145338927151916650561880206917914507768234062369259873920869685068596717939044439295123171123373479845054145944046295522657331992765712836425314146276344305776306875526834122942101315375480683435710635221763725109258934442853044650843776226662998598523363192958370213566893027576765623413578618350546760365678163227039310644982023578579804499924318007596678247591938591048032832786114270970932257446653782326881873321429618614110414631348249809447532963651701441157617523983352472513831409571543761553591575053512509657404336051899561229017473465192663109122137748598243768558437202776868189733657692184072796448055457049341878925766736501719484680874084276499156477713413766216454301100107023452313302309097636494438111058081508774440561442042575002162231290438304431969194006975143047396974291480139473545489213722072045600040007573860747006051870215885914636322327610461729109065604746996470874675818093456320739075290868683818566650088902297816164316108921866751645940399168762569020028837737182834398591365395325117910037340592868943528010856242972522736078851516522712277511836545270509867132679904892235895781386302893349618936957600090222966961170781504195077346002210654801970808127371292814193673834354254355833184323978147352180183348534042673555629480193978772438412939139911515291626337701677399935826531930925713695818045897228993688694655167075047856928730338343549471390930995523658182055264824880990858963773336564855241930982910355566227586955779795831646105640497152832964377062014608058473607359943601274684878140906767048860109245040877137953037827002526107258532412357266937118892734141797177597904832478550872557313789203177508917230496869376540925985617586989238974911304238586187409772615976663112400154558363422665987716734315444981481556126570053311260055233344982975377411974324577240648340816763522867973919648858493798298559307041634889273658407259063404082354629275744825889624492055368605600042324629656333319634655427509824762630479703557816705987316726331891325626280448107976812059928608325372235721984855589913087844797977886382309658311195371613610654484898129117892272201234362451245041740496042119447753329153989440545774716330762943677714194844670875743030968167366306189010980308923703129134153999401993365633002537075104371689346127254868190151321245514853275734094810270248641898954224674449933847918339591274088984917154256777704640014098304544988657060318734307880851238727135807646758867440580433440356577925172858439735161840171765035581459883609659108750080793494370710281771801123128931218307263227974685005883992824540133283629750780168948456996502631126538002432596497239335856017526828831043292911088773819372753832820680055139519419939122930111931609031871803731595434193237648832810042930389666847536764226119672382524193319475934385448544216057502198023969518904677582260339616467295751284584329978281931820604600314551798700340133496569846827989587633249864281614689984546026948402802508599115403314081001910390743830078745594479135579220206449995197319622491709596386597590839686263673411037655197617072206140503580011572089729083513147167560790688423510338442203094204917001457418672819973021705038632597762178299845587962080393546909306496151405014986129160777376671839065133291405988216820928660476634559323669040516394958732083448205780251136980937060129064214768535161022940295743481719165943085411369777582397948656420560189747369739543192346372152555611390703689614458668568254513929359752660177733421876880676946141088309424615269566754991223734345972716226279722522542272771285054057064087008710428147698148341226236724318113840768046421664496312140399132418791828144398928360496630947362393335533685423420827633907838333407345931399417906445392347323681071148897843515151655112541356587801978968057548640460951760243205435106242844817032165012331587227797220028744392979365182915674688592663618547144050785183302832335217270053929946252807382286088285956084485252227032715391634137118417633486138868555329905164800634614570757307034354026779727818421245203618258228641691026270263685640469470048597537888357706049291605999615277036966332764723851756387595128856569671960330690147636124898532863176148106814215506228665885976295322137587594481416309955526919640198159177085468688299057846432116368694308277710436607596570240998360647785947289631480234938774598588626378182170234717868808374247512911048748394695012801589066370122141512377851060163497565182445558697924072810143066407657006633805439422634606276550762059414554603159057580231757888437175283367786715838696898889161019704065325646063913267120711251179946674382101266307519817112125646153761646253048896807860561352909756631478897974630362522700663924066261246357838160875386649825357870608169925265174129442667385518068969389701565172958655045918193213747486519462573510774000327864045016831390724537052736406004044445733103844352011649810478320161581104056304066780054842083138394141774574748962153354689432079044593993126850390168282459630363349852208280093148579677900771982863012522355908587245361536114530613673182036645641152443615935108189593320196783102056340705275081815654386598991122126311735778875877005421292479169528097221692002785330907332914285356132078315415869452204023463601384204393381398020103018840354644070811577550352943483585646709239626792005520822833039106377351365650547667075200335586254209669261102621561032597415528795681720244982629870783700054988858810897673864814762453303589831335775939663818322132815034674928343157640459135505524145634156970352123549714008628617899624441243590436989835405670696848039905060922057653504498810534788662614791653974102976869608526176472289009904806908258233846725806916993700701818499801658535268486918306140011033706811051220701118104693960385021040404650530430274171661648493013958110598335585752914240297488731891964836609657764797964115637094832904729819777204536084049661178656776561638872713185270835509137420080999513742267685855956837307416990751821164811465297056315636227889125604939288114575357013375096881332845369906656294926856583792704884616912829322090104291887447003607269759415895426193236963537263166194793283156550785288473494527901237472101285656967022621745073188421417695910863441339509214433698692894693340987410149164434059782970224713351519544331923577701144763320870153736712635338684208743633310603445614069013297719947291667379803070463789502573638219246099355371800532938017146814631465404192774332136297648679992068132157666815455294301018046424110449709704989726529784830533675797939124725263887905848197117482024366085973140193394149093944460671789064335274687517521408399517883509617430550216365602760662953970417050522217659872713648330278489670919010455784761264143461226393244261157904903436873473720106189779841860038793608593866723826301694396701244734215493115324296371892105956879156503567515041119503721488539315359155653691198308856344343718556105667070235898135466605464440630454139441011258504242655387123410006287506458206056505040929498537216232336671379032928322676132578594581779802473585397242032988960240627288543896709554898333150120868732023349963527917484918951281103070311776488131840831792370281590924579487062898892097651792688540884689698645730455523034744169458758834248876582919497171225279930267612629945440666428336718263594184140041772296693715401885338704334685633518209798598697051569404599860633064287832511630088802675263845501337323569634353934120012527172173884853757461897546705888520281882569583457412521347934708645473028033878810546277596362275398677412928860140604019080691935459919089969053149044410303247540184285593398508037772947484710255301341526864299291600635187792720445002600365292265208119157894536075737719731516827615165767829671531450283727221676325902682831031266986606867261488064036224587108513273313005353455553065332269005187808513215609483354780886723060825363439113251883387756735563014623634481669358278977640653259349446401527167379184670460731344764428350465545290742645660751742168530048653090357748574963363555722928555522681683417974967861604998129802630502050090059018486593501212678154499927852627463670942137680498303159796401221172029518962568402496656030502555788377112196865005363664820752247240446547707807609644655135630907209578633141332651235207024778945075536001608426500986725945352964935114669846824119371072809247780552834759047693769137639754938175470099063406550834927982331889037034817225667408604051778087410943600699116004717982139875087140050650778269085319460834857554400836379602690990699467706960464205105827961076679803570853754049587979834592605014781652272976618247462661352190896877626536096251996404056114944746881345451387814167625907961026900433715619859431192960399079943321950085456562345657314906095400290482155628988068084711748620638419451207023904115710258615978044114035871731592543376559212783308198017070356150978495678291216534843835992230875140494812383591850831940185279870162993557083225923182001307033974673841795267684987479299956317666752083622947915227783115884928791546208389436998847169027834038255242214872189080072884544081315867365514889978454547573661733988124566999772296688943010190360137538535252253277586373059846926177058411291155651686969376023699514613341545436652703535298339745316514077608001282467783646784319604783457063342533703109776128309633600143321734134025142111250010552668969635749368719785965191049856113249194109080166950056323298313489666653442334802685407912866979678989371524800152847188615772489278933141104321708858548873749321129488571923504468407811587179864733335355811435052916791459816693315220959522390411965095959164501571824848886091335310012433301432580390987899785744843915962671229144639169666106325782586058723708558405074367333854204551303989951448902749354661461542028401553657503055621435794705593958261152415362017873272569565988116699666444198821259987705295612840444161418857303888847359329632490738812641309167544782366226623488681069040970884565232054799219420674474903243403385975172752400483125992694563332246745918471477399186968102643011489887113986282582391226077870683257941115568304785588004940241527024703066974574138339609935267248264420540061762922445851016624476891510745898159137661564278838293795743740559805174051479772731069091385123037954044596776316549060295224286075750442814176183456035117754268720702142275065124817019571699105744579018346878715107229802204489259460969853300691587794677683957333722032166749045410207992610947090031047963112416126854257443142139683747659888315983388401959064457743063306442859184163660644915037709660795560529190323652009957413844698612350074641887154585269290795786482976527894840699414372677436348745342283029750467618024085217995186704001689166553038079329834255758147007084430487015966585914755384088611017054279002298757560693460262364048328112191675946902360106245976831872550137304156779544833199001631437576272265120664285166953908567542048350201158842424864141942782063436969555915885559936330200657649886572699044181061586851283838380808887316018983714973551355250315211419043848821544960784252038467035041011659011796349999935711335696632727063583615638190294567041636358603530682791922456988973662255112727947786797110119209365429914523289640389546712049698354991450782545158857738179633718955824742747771474532005195710100453764134707313529404584439796885857071453254048662871507217138113174340836601872117229596200753891409349136811050109180637569636504211835960048454911259243511091331325338332676141677221838736221831468357652913856029522625096372145164979484841099304434121204477780146632070103243889972361499258135759557861080832760758222300533746354241610640706000453417336384362552551342223284639433246292913300547120195991235061239957380802998426631272808993073865723780692521871198061390529679469679416533330872782137238552189147828903560873214234116757998540776192400525738522382074600722607478458458859700833595328042311050549898583934423768947104436563103422450823342994972554697618499717207128096368739017454965297759691696883122646622105535533656768245560955115452602560258664560898090006336030518645102191571900377406889828144851771870890551028677079519554458159023495728164029314823969912404947629086351132970032220200612664433486866381888245338018356234349793724733957853931290155901431539975649703237704057523296787536388974941136482067239361383724133785696027271846518871378954984950313841696405438206971060099468232271884802559322148043889815878788062873422806057927917493747034275955901291698221346145409684903870950254267949568083747827634184595615758422975088921538076870892137863189590929710339129292343462898268902404145861623484289693225293103813120564700542556857016666129715199542317329025405399874209112629209485551550041440125075366911329055818950114564955662483620298432366895084963741372997209085827717389909098474545387425156125003852574111159380147406783066549589272979832129473353124405008528802759160082340195877992668423131531040011153220888764407132086627267416680963149304596300859634720082619246422914057032479868747803884800722122974245879542307940556167481575569838435638486098201004649875908016906991635242256665236215263498017665754926494036360229032327238518944742499686181343054631610478348543096109235385134662434395882632532273592933283464573497677215675393972269202273299036485900428934851134302861942096077957350294090139634704311289306450036338712562027560964339452259715012533777316667571971437957417440597267967128358649287552172903357575891453239224488549283094018311467125391002414669857612497946691755739199773417356783077202916190851394394686545956984863469592626297669937296570799870758170790805603203346744857500203931527019767596238449212339763738445729424913771047845243293958296610448843973041567862382436682699345744597401528516204641810170999813018152023949837488823950421805254129085007104998162798176106637519313978672662256597959690460766421239797444166926159581814393856349723836425064689629755767883716797743287394119210748068833397304270951294294274357964708778941709944360102248520058310502449711168944555754393098717817106584059054443471916697528859968887700809037294595728338995848253924083179201064230611494828772769720307925814027346166968209121413871995580288533689301637863937469698146623998411041044039001307488049923619684778989500280681641212140833307844262886522638056149365764403126008726529803090094723149093097073139649527875243572991169759119496424121503580537151001027171038557309421719662768425716367885381414523364368965425230252711153599596174859408903025422375850703723658936857425611423509915737493247593188681919524632044168855577717888432703029367090169707621582558893017295166478987357641533492996978608469105407901133025994182144866352469156131193909633784542517073827829260314923301450968528808097639945909032704958637953823671394899466593551742575898135330701709999316730303393401812586002208773409569599723611830728639843987168766614422326462799933447840023219049766736422810877729741861984695180744883894832668846829983661233636181714637000596642093262848211039791743882208494709985338553058296267323020660648133529298590454223761670461471408196633355450387038287654437385090577424406082609617379962538273808175366374212866187025134742022322229521097959600699223480656634041027435635904799144320839417913503423321793433300398983571580746121648722026458570400335202222539535465103993502212744827812173249858219680033071421083720101117142157020021307237668063130278620075474779012958729377405962671089609049448853918700267632009832203654779488939382076044728785956266741997099625836113005834286747415817734950957702734282201086165464685472742022342394084788939361050376362998320464387212219407852491006165801269320125949951772193596680625035065785005540058906772218219560798613242905514688600599470751314108765969595675578546391442740591317755811982715593297109637089438856294894944428007379103866760209850064269519483920235692904946249001855932442116564779509052513632090940309223623308176875912936941172792279392384334747813934379247279408097558568339363610796040631466073721819633040085596318872437978066827101016933835356757394279983805922421352711069483312980014506210483911378528887203227232764336251592927113890712466020971557592826425291760895369748962963133503983719476769367971556334935788850695216324685089580702376824994056419372733784752293076176220329860143709979873006252101285133358028973409380948206813734176633095233704518622828114278394627385297762952392187924963773303074796798989184317255439885595013453643845083818614782947876473589415095802697182879355023253549820384832050073517206169749060611267998763649664632686133572046244097196682719028986190908538422586367472883391481358714000056149202344001375024635662149024280432844305581917178981151199218709887585066716369849096734772801379621096672475786796939937706146168792147451788576193831705780274566082497986744295150004515902280663698848078722991985630482547436061532240191448018049997010175457656618103283489347703723235511212155320667427114921212046406156662166177535262464642502751076639686512824911016518149745917131247407412708866158011950497619888083446398037069140159645359639766873196817032452372052036724363605539848253864782063227436022848052455605421700173251314611173514950198556895953664543223674555714824469560393892350916336568142959854384561100832068428742085062290667465942837735603756376421636317192615508962580636275547794655605227118299773088423832039316272288749456047637030366184253345610861424641766131069435887400793753289461541221774687650245510769619221790972033279664032212405857309872548160009372078483758075964364703443119926522308776579653623400665167147946457262517157113274163602279785555548070006424109574611931236995547845073228203337922482163445918650655094437238665885169639729934838167332115269583514197477835162733096824060284372532268402532645090043772732979373380017846498452818192408370725546899299408741833620405886098276874610957129430623354790622777458498022690201167162181394511383416607627993218175512269300821169859278228188182248052155252254178749096671048265850063533950272153215460950865372760051872100448179891972025227287995265215127258579953993780563014055416337890259258461697270539594769534317510858630687542571323269362022475424650177326002991329619592847282525342955530166450927639551977281924380397638241083438764093631628393375752129381237016099356058305686329204071774312770322812034200062922885086557340098629615875871647250766407244988972220192138715729316955390521030430722724636839791693443765777944872797040118459474572447456710284022576078003491112876104491000144262972515296568967769085348787673661601511518333279652587126898870050714404362776605627622541191108470733569100107204356510345809307375157136468608162179007208316724901615472710746366288125275185876890981723159302550456838797027239216586303289847301303170284285169866811007345924982264015686381328948508858482385526353432759501695653538022320087148103795971790086545178585527957224119796777807911176702103358894138880955576138928544592500988648716654417761246248679953252308808876713386707934996888617196541085795969333174546262897558331590817500525860131371933794091449092718370636413607864503169534222077433947575311852478914531643840834403017238557190310421385657233496322125765929869882407890223993578887913622978359547255342702090627024378147056320983539684790650180867429453051535995500652584369775574357691884181755957487168044619961726724987504543473540922471330021045948583986820054178429077645297182930576835339610612673651852328724013572957755896566708022671126910413623967483897170503310371261215467592317167204232469462000942178973211983811092354665612965515410810452613410773940891365454223292772457768491189790338255859766256889512909353044256653244169250450098490152570440844917465483928270940737945407914971266603177560312380489554761174433994444950812133458216731778947107235743613774818916882128446899232994560818256871113077399670960815358547869106847050753549894235400171459944302609664455313925779058302133881371042068526369375486560543312999808143123047899073661941714232815240005854552342687471909597683158863734721728768447810517974578395035930722789452227697795112938991755145097650210958287532483115026284625785186700072574336992935186959259578338301648206725387876887146036848608410137786440356966794139378794885249665653196939492548803810411918073253006002166814145607082529813188914693863026431278012559599363178784180034040492177783356168768360121660918203611458956370875716724189524472828775576443718424838903564897046081999852246705065931059040756061032660031296004862933598998797988894766181326107760055356041734544365121112074988695103084593066026849434081037541060390365603988499200406021318636700468273504785944340177426401666984089430728366045009163932186115489569286705755323103038866406225546898127695351055881000109161568079821172767747820049107504868320152988729143827598860943118214898398303052335697322722583088890370428519376262606456176008692285714830553215554509717158779973898001622162779043393361146750419348906720865185557409109137663299617460639268475634145534208589032545674758759586056174845787384776148316657217713326125883089121795046159175349855984929395397859144079209232048135872949139772836311700819777001832340138938340990548660211057415236430047414770462490368182193390880625540706558608335254760083814063746686771876396078959575182019401001717265563153337667176740942352453603446265865305245636455193064472642785077216129398445203977017700234747541450087116289230126463638099086349517130902234409732892142956324522224138859248403292528732242365834276708810490500604683862603969656149733240253297311295467381582070353141380045310334167883201928418189165243126774105124686008998179793918509001543289581125740654953965036716914406913569477410448700304941913063327496561211135874519239130984941437334141676708988796161985507090346349896424573504157958178238023335947112778564247812268367650500545351182701093997796851776707818467443439890674315861866640631115646390815235888954802323088038123865319647989055061951699497374776124329965117832129938541052999501092231184859582430965346984028473930385661545913673628202795344406095433178724644301565792999770337174692246914051674521821210204523176640760612205899481799550697506657476943040002435634407338510634738825621644331988783237087931065435327732606820897987883351231493628999808085028308259553166561507048976863062319099610964696623137509797604374959106266045450066906064548274386399792315193962727505925599786412893856607473133414498387102780426110531702127640747541153413116869709630596568260980583224080086037538049609159785402956903193511897161698460199605731283374506395315108417054340585305825019574428602967584555967081325381565875330204288872370412125177023769770338555923649761739563856307372407612860290830581579470503249206253063597043869637223375858646964983476346285016661173970475299629529231776296354418199759945813329650526106165901148133149613156023345251824340428161258745425903561566844068785284353346616097303496601076630635609524368441741467255219726379559730421853010568364019140208960083288581256627528465339507805666027472202886612512109528106399516993311211232443850430851978783124659496229103759848214136559524795119152855279698243898050783328604622232949583525842182865611928694133566191035034619736346429863745176744377196329043815183445064064021633715893289673125802402787607363442181435533617460477096140760420963480774134041126019739968200384816435623177856025480121391933475049346798286920151092217626583568353359803414243197663880633684507016077409252031202170507003006227723526606107995869815297898877138059302396837587259719423810285475899596815921175925458538744171409921853192485036545752244056645331225998786657150962314943673418757710699680476376991005050831817388813331384771841463205596644333406893280951179010735414171730132727495509800036735970428515030952039191694700835198516714400490526432279834347596168440129041957358931321323420615379964584345044936960956337691146649545376350788749800499632784956263727282067003032219906322770802689929388766471087983982918383931798162697367555594090098809233040504950153179755429791549272831416323832409385109760049697766864385804596369543596453571376602511613763185587856453314870946720653700545631839289434996808902961710214040048224436563961845412211598894433847517519191611345840826030102543841357497626578863542396160376603172241858710897062828210208870180968768409855595375672495943556290373986277579931871765108129277136282245773004741773892508589592436061796889204350851256142861462261877034133109859955086790800338874461768796751366118604147366169895680631624432060583335274646382622273698376563292039101054192887465517074691790931057261286020107232529230550949192971106891988580147518051608952024063102302430650831991699274062345446440656404641448814194008291349991589990627608596721764898510040313451723714115861716482361718794810076131255703465282852582386559815467397359999301871661221444438509353571921641505156742994080068637776279060230273796197112116463707248866934489769896182649177676033461627522749224163822502147159731278424123177335154391962027677537624858536589536424241550680469743133973172350852046630689914682405035071353414568251818843822242044634262318157149182004658279455793299276631438456189243141612009589662717583188780874259545440229825752609547364748419004932008962045813255953699755137780100696227477354586581158332837687382467560485111496492242827996062918156229774840944192072699706724638267259287767519272871771196333812221763414732696504783195706022155617389685869880486961664910259631700302622104877015185336710131752167598242889336642818751592142368375376806199661847085301316774190417601982054401583772698726910320530594885813932349935306299397912945310667647959362240262748339523860733067677159843666248043256871022316838080734285719463992642064215535064665740596073225099902384422660399151772272673544653995543376439098968395559579276653993837453451408029766440953586402618529578457261967889274930181107644733527422098220778863608918010677285837737956315805434547570342772800866989778947196881096062327071469192177980274798788596311485467072004600967427435547012170403341981241802413119223502178882320504460036424320097820613914273292557003715805837193341320124771886245986153718925326283298162367046915030075711840834258780675261267971089689154977949619532147931534965251271451566982970935910268730704188327893689146604043723625655442643784945874858223492073112873605711853059582302877890474782704076018146126413800076859215313786571330478787177959016126444975786320293986974975245724117213467638742752893362422555482691717729788134460309733994667392631371855710974137318369307126042361574900202062686633939809570590013896904491394699892299355962528729534044767828411894952804486057631829872361885076561205661563308210443177843755973734486412739373754415610721159605060362083226994639237772635170905567660416974162036120867529151056081805534558308632720985274678110199497107516221846330456011419548377140510436151567810502544052246047507151083287779925376261960685139343315775513531629540275458628217108734731004588339893033812970463726429875383406623674659095874453404244213334728801830305752078544909696403372301037777363742341430239128442145834632039993466578687051928733937506475653424227737894032524759054175369443783265715692647567940260952110866053825944732190233834862171077440550175680157319314181450001641454545691026432784641754959984567853971244335334825745079754365214062553039449512941433632076040528158688345305405527621584982966359482580879688016579687609175557859581164697931143212261867403492380603084890789928083817199127823640358734688587339686838755136497778571674842388528458927216185261072224218226607542647791168607819310453527445610614414266820148491755022826147988868943682228589697778212291664039644361522400125526215873074943522742339205432236633130573582238649668146590974582675719901201648754160267747772633673565429867020099607970314077728424242534043271524310770865186700847562619780568454400584641603791620193669682244668693482991320630581580425545017778070823368201423926696378536840117108008335119586357786811029510178494095264702135210431242685392345275926019728800741936867378402817949800955918165739311197913565861203395544595249020870474458816561807840874831502087142771782585071150400421263501185092478913512244624276967194747123433455152149373335185506183634360685931129316324443459191387199396230497312172457395023129940703511902933751925288349821986418867156663264951424614565251843751538749779066304107144898418120057268303808620456458108597619233006811768294860572720696719466121898959611491696183801631614983064681965819704699265675798702336706938477883564313814890677767960517443443668302691946998992242368136696583512703592258795553408763359228156538059457110076704915114496941746779528797208843014587336879839528853186072800997050567197834758089282384594977584683139175987917265317527517324370100682041694574702041905092048064764270178909204102909850403057379029581785840909613766561843438298261947148232618660606824371919414222708505609827114048211292636672492284941146478018427779955163685241252105143268878265119923946907902799942376478216920642528449284252496058715779575318239256687382175749526784702619524880682577588408253864884967417313681453909392977287831229128557206429326656994435353106156952855806262354424147104808032739034620998064293108141189368861869944371996278109824815522492874549413937866332445499570281140621291851176093691744311658695589072497462448052145134896324263000452409923997181101419671883933911326640378467931578829166777097030763272061936847795189703307753299254027605891637580301810282937086808189694810992253440530525517898249853512526750111185486850509475477299484358645259840224211880760759214000263082274440781836262096462373198007939835637743597461288549859138781125940755369924980481404735215822845473444411890064418802420385204496093900246143698914724981084635505491703508320352472666315344886442729570837518024976651940198044474329311315837806384144052364849496656315588336498817613681033563569567901777027304033050592916701843064081055197723378789133696366624834304370835781400968004787915339673227864887000613423424065033184832660641858414441017186268707380961671875813111207715597654980648697843746017994598258588312268478771018329936136337843207852098633093289840572743326183364093345963769139205869051853836296030856356330860767540940760088678856231381343146708929100114301543103560117835699239151002817514169687752770204532239129675434967345013562126602674924250971852329427344774331752827169333903042473517822455737051617232896507923837770142191965716011364699630645501646066835123885246782377414977230695642426184359097971558636972843718197427204559664333858886923577608939818863780428141179130636331393700338863585906391729226864456202575724566082494997068218924628214692915663232842960404142135389245251180603100991397784426550981647805285938821910481527890667020391933824652919270305367079447280824569509198704272105389913246026048784178091853016704387516758926749537591266580075095816304303648604768151580382023380553929179905405481784814904960254950051311513630510352476113630329121003069252975841626985835624783419674876699736973873193897760040804750553017744135936780484348076233518368627460500874268222315552545598291318472331652353975345364796207975485970167986085679826862755855407590712634112583929955996997175114747916297259537730479930389712981542276607841416333583177860906580002703232310538142637567863526895937354318265835478842824183113645642166159166494469784573641490132186728649589876275026302654730800909580920159304317761952591987154178324417357538541356717302141461942234829179898660567634621992942450052319494236806027562099993258286797949421304021716552994927818281313570261308269512845538810115607675066341351764059577474404460586587949104420441323022872418306700639828793579992508699991306665953081025150179846892176180783997643068360558638712045464955661005130584217890209250874552972184517174695184715772930134658461142049080418229751479603025555501234364031613162972841091775744062042701067398447066862756708684525021719607604289395572786645615030643339558425674359518685224422471982874826390903256102368736045707265626298591161150623883813137744627992767423273923349635858807767433734451736787288893405725358891115291184249334605110659629110791634109209051268598525775381807012952836562744349200198141862105049454285137248906331199861672431304750446610910416886023893793539992600011081283490606659150589078581412644061201516776606835806500977353841390042482128655387736021852376926878987687847670668563078663861348820279194557300233391628477948590073706236076579655083189808081982504035927427327168875296931641106201716119461627375620384318470091335718304169871320523148774551147358409188060043685376221025396688271742227721812106977255612218754231133854719067792629329181623851479175438064875094408228184506945101984844261997376902311076534836261886080030641704007464991761856526447191722531391175112368983699541996676685681003662755189447818438793839538970230867782268568750670976104911703905001137611988066069353911889735019880421642808348448136134525551197072210590240342508985211836010953774023764741109599533006305400365612425844676780413003581046028803362458658549593735292917468342120017916293510505716154503723114739152529525705079895735809047076873705536255682658977893848745684337151322349986270954435112085348090221645049337879107369168621702074150491797726506902510543658048793046492232652784542525558016504051656838479157351636201074545993094456858274615354829085800833986228730767270951831538424865709172305870273241681233909954606559490792506371753441092309259691783406138680963276529028502019584403737395202293148509109475259982376992591501412193504225885267134770261626693777363851754216399344277624195658087818458935472246302960225828274802146934636966941838909723123749636329183311723381002486428579430313961462712281321347657997926957368790089206221004531558741764230863528803327120775534392823154984594745858376545849199907765358444924940942700428461447289180892976864615330613548832958077780386859888217421558215915028877975666793781588930609515489260448345323205271453977011924994424365197264066730235423837743222970343957638279185581787127897753545926200033494627533688535159697427981145132476252070364899839359233966137793286724886686733034235218062987739845756257281805771345126786197998670852949175551695728298951199399926221809561899380273933112922024353343513598108256532496875142215664332477057729421090562824548440836708077212475479294510746758520355518183335835732609233049427515157234371808203479074538098509304170064726247848789459363684271822190553217610855908636886438396815870311784376897937625214722708749353835022660080700731352467884709466575306250804895189958010021981817384224607135820460599606034801438510158300087910423213385120468554940442489267891595448303056769795899502488639444948168428775878754699480556452589538019069733231184742697558359840456980665708770322321672556454869927645635939377039178188021194331195360064132084038108675751104527945269327974111772266460646455005327183711342163149333188642230229222670191424703866492038777794540980664623416712945369080238208787788134473062364592214068218498983144261606768236838508127968243464037275867694750442593580635359885326989091035595464148803468889818320417141924927348406056083922635336187908273795833672506102472999080838003593450718647294916980193598181558293382253763505210962425615822964659380198964793445285778286272101207586617065125875354989861822895127210620580488715826791324279229041727086100040956631927247300184776329375392149924027086305844582581839111736337001848696185402590701330544999465311020568841413647037134711358036089258272903749424901898086731362991382536162211515609643295351815077461751554827622787226195876883490175255920916753343978289969526782674778531460052198385302689232627941056564151959117097946693358287299521443169932071768667088389828621555859651746361556218482982477133171707221980204369290661190645307604371047770773902639247134649865993999070632703452583598044938172745961932159996732246739423310834841417489945706325487175933519310904582493983950488228980674598988058118134954194247354345371980198011042397861725344792031011045671977355072134155016759322455759457002357661632463497043993131243368158426317936582629601690157507534316634309417515218042894851637625603351679071031834330306362877188421328930695141884193475327773111056285037254721256431307825672951668097924753021137730603498390685500276328844021573504238146732465379553495245140000003461014134683272906263995555749892772173927293919210248878086748867214139630672820084181953542724042507967215359581562860376759718883421603912273999140188380989252718736400250260061829496529312585139382306259850718726737144397400822042127521965022330690220592236401796326318038560552626664004195834440797360745060410257836391717630875210820446668121355971948822407689783800725731397517578703135982416734967720432099263621361455270662701958707968857506212793514920175040386773147582635066682442417169065069978316247345183040934869284130285896339105318921972971884032313648591260263374731835603451549915021230027947577235394225359035013347124590966418582748354951623675346119041892705642540746433561643126348827309933796555142106360085525584560833778200861478016134714837054127242445998304064248369520549452306638062316762657300725793235296708976341110360643808873398119631447898856945279775075745642173285913415259421885847685357440721842429427600127014872083075100351970343199776641651762032258201995963625247471350124464934547057047772148082487173747170545167853803254736289673220840573298220830341452439730267597763563196551707766467966073748465043749172040957322103949274961736085782059441942922347149307393923616569793878664043877622245116019083880999152121877065736632372235899033864202698835886646564308322998783894811618513960844526023402366717477486192850892870621248766927750092280209983949127222276425437867111935653519845466759210909403838818283141002868463933068952627565627115929410955510792167285361616789498560171301607828761267533243345444983370226131921445456857094835031283005464502425265903029852150461100233774035038679843876578792691137143799268738698431605254465858047136276933400268352611349122180957266025632691716547014310609409464057686865567653323954102399205551987430703158386439539551163717018477247836383337041477181360892589759416034809288214096654277344376332068697686788871217270133751015153973904357147781661842657963534646971703443893165159365109898445043592893722199580030028356177155794597952890401760983009146790927085284352399387566176996034315408244553062509070025377261231720852049026462927218633331721354138973303951548764437939074720131110487616427571008756341613674393000690992645065032310354444527338475825330131089198458543688289260778798662824673754211655767949956529526386104178792429097951828711594271409439016810595841207695786570018441453753055391953397573936747325437897762462949604421879530081133882237480615697669126497159444666916475963490193418234448242565530157561710633950706793639480348520074994314211878159768368089709805495057015353137048969403135698849268792740082723915170831726188375276210229040899110703759193681758081489907183933820876693242379794843032402219639488589885975424197379017510698812297175623535072840729731871892160858266075175087859315371299482462183885547928761456566719750611070137695384505088331742113848153064970304482418262964858314643363419458235103860154009065705156710428824041432753355747473261886165161160460989021555580478774680043895565708449667396752326350009102793259735754521443160148934102325052234720512728963810167741860093989837640796789456146715530960698372131306884143231415345582240039447609247823021313571610794143307808169428957356092044019960262873694882440740822605079148341604708637628625417397719818467487589615120449276090640232089654820804083612998432117209210570918324581634172454583103899423516823186011235979932102564549849056222564784850925434158398698424884509465898762099022667528263035597022434333639789074953736724704206589773778659796533724597135868779096434912497317082423540922074605165784919880556588946231441172989268818532587581143645358392308231039570560550906314894627218717550385658081265127998640707076021439718730137710962111192096753435049938552265463201080655829984475364407717575965417521389605099124835301907888669194051788746975326890682891567736814272000104081025089300985625469961069162199774454904843523002492578433836820067640135782734466790963434309743954718821692543850477024564017788082407117697681769237265308050458673218921170420807387060044142695864757363689393986029013244756670845375418712805678255225769016703892172220130150536775705754949226606239784048304388363657141323509720828193642231718085628557662083858969056097433142599530193233368164380811780269521503248170975490135209516607791833050782202266408974059351950176445297409611434715176785636363197935681458231964359861174344250520397767154417959688354491989212649737122051825394773394246606252403886762280860253610258235579060296525534540723570107205575882751211793279951841623015803564579612296548259321329925719245281045018950610589619445346873609201840517531130680025193216442069866241452711921116321136580854507810009981620614511011443148585447725661151693918034028688387553009182800256930910279325245189714512098332981410911223098822807837135903667579079732080759016719726896028975131903160990407962871817180307972463977851409177645070087088986440805596668761181475845851097175241334732793215189859320871544903370365351619478893582796689504601483206139371402171706322099710687046615107277695855354381534778513042905032194081594135011000055819085483139882709426722189868932096339939367110061406789095913850948374614417027787234232196308436715363021398284909637079248820029500077430377738484639972625642654094859111886808218605094654831203411134921200167836792723735706936806539714089424975247509907842351352205851420468099124936433757725899246344003063752205885703650481472282809423734910423680118669554041147918795653594590510651528299857867054451869817706119641611306590527960452756720857134876654098217995563554700600297748708321032185102590055641552410601842320260607098328723056594103476241079020677601124306029488276453710113563658549795838376772592027441868525191729430704079552811965078984726367380287077674058282224736455838445598055941859040178479750056529281797267833777676811066411005971231140208022524407479688553002750409190695960996954574090098056925858979738494266139155189885749547256002566132459152884479669543725698512138634395632747970483308020880311197026896462268475270509783368871500587643644859315939364101202975109740424322597038654137957257994402602118566878973337893054213690377314141342335084256378056488767422437033884231671172900632429751115807232064754115938553641725848517421215816247918644300631339292753541142303277529982997472842005926516644353627777018966552624467855450573521736381882148472408021321402662403294219170316573303091014784001585939598492812853802081357547855164422647531275985668335440423271101181688208579915624634872446901477446371946860644799323389868944712605793237846751342029581397661084011863797194069882732476544521524522000057743250837063843564957093131413800280026838468237483605981663236300587454489354803855042208435140094981348058365888324211611585965449525802776813529357224531927668787167671581671767056509849113632818447256361938319401319828623531518273364210600928643397810020354096929810246156738918269460835949933114400842755239216140471168252568554557059354181049978175049533772341680622066794759504793068772678300881803555408340034918092294754703634260406108014598371795805322729954514471394976138828110895151647314184296934337868730071299702864992314917352917169882284676541978490096771408416285475233438192754253837664787811089122496161036385836279254657790240477145748956291668902777012445202863581616217319458817806457540064382821884801265607059811639842643818130952127259984957703069887770551310611953105331166379818528616200944084966342715038912605522954720313152240088301184198959853311820372937099044261679000124248176680590375486377573623767640800737161770957867906387853348639555680893862652327252016274530516218483118898111550222870617520972461980517936854129977130456880393188552637864902255397240850331621072768600241101805206340261803925639978357888630095369991309092939090459703191403914458820059480150598377450233841892488806042296791719446397278170793514456857875701527571818023545048746336100353416564593616226977406913279143083956315450785463142711665717563220596285202878843494051477291918007565480815776953456644787985121207654406458160582202226871102394786893467729639747442817054504084973582254801210383770291714838574410848506763494880916718799723622140215702315766255349188191122025890878919991664864318918889419496390764080077116183219009316762061575536051018364343931624259265652746131734837477633506020352178847793433506536213413241411956491180774206866609867196374898213257825011027659343835171624521365781616620578762486780442915741039500540139857387101400771754794800760973784952455989497427997225922267253699292458207685701290786372631408353610676196917937576461478078028879700570173049891197287155600680911227702606378408468463518123311071065520159552077405294721156602187862075156620649651699205372870517601362031404299438623724218215035454062601403688764475332003134859744699779868506198245471069909672569121565845924697364291905951932469047042782889659739340878857680611839445101630280427224873106951722356763777402454784543965262748511687598111708567996992723398821038204546630856903402586515703487434003560692862771058408666585033607425009677009874686062273175807178273137304970209788524166415630149475568511111135934025229843713663971377548648306751804932001048203243358179607453755041243994904264278509185157821356221228989089150623809549196145603750468485792885099683481596443034674495544009197464569779187085431373319086941282047004966985251645916862999838023718744420762946557997926868849619229396419520662046543071644912566063564765322748871777709978398858178479186216366254453678856767554368675167100290707679345675270703938465008472172627069357292211553203213251264927242621346604510363646940799991392069213601330601956652969917533938041579548043550940769529124678161318448052293106692530543691772877190668652853677339484279080559771839254899661686810477068485770138369046439176504137377032304931767894578165131985408829431768297754155130973376787681848820274421174898430334593180114832341628341968304451051963230294521125827131209784370554041739324697036777406184600801869288111301948198175977244910700001288597760226723106880450613278880462009126151188751731235531948568110521091516923697823182097389985945445355404856183197617486602665763118056293416816061499831171574095999550366866133149427382912241750561117066347685855891297455052182035197772164740079425545803465397140587014151470669181382372000038601792736604210862068583584662717977178652991394876071942305820251699774233174336351479544724977672306244467081073862385391778569564024449536721247899831832563404780487652486717184732476462436362459176446026624240470690909451961787327363148353123464273878449685098770191210477951224536458808453190901599468924427458824801361138399924042080901547496531625662959162962119985808057962132176761126273432695367499674115537785961939537838312006683489956332573198928287754608429476792507653392437365696880327544864373293541176735240489263899480193243884568083354250928794162573664651974357724159594306217420614093228416078960732365163862672600214770454751373473163636204853325139901905120157031086297453055481814139254171015716228822956281319093893695157273807776118430487428629733581033318027478113598408903430411219305084936807841796259549070455050073149107114514776743779929385583349819339277322386816650032379259526138110457580285599934401249878757694419240655033717230690160956591415978668893778320992501495105108751912633194208745595354220235062094025870798776187834010094633341645856425267245115166390284368682100786821975747841221321751076977149827147553317407636523518685700076108736166143499689172694099898765357285227992733771653616498250205047683398250622075234092559621065645368229724964045204935607424111747380294147507695133924479508589919721856143425975392686794642426582132472628293319851783882900169663762816077578910501069382772220221962181044816024166727872101791414411225114620808338494474981107029561527106816390215624015986205774060478418323343500282048377025197333304447952012476636521697320644966855843727280637503679572102396859960436558855801141655855172211850950778884298770879075990485137182257007309421435040738690562806892712599678985360079622958140793519061357619281567366041784971239488959273969292699597146564639771667784656640411408781860489938542054692932892804272984475232721996966078452231277748919780216688510642890702520200570689283254140911774396644287765250131532857922519530478460161004564060577255580255537030446313346597009498264362871263434885810368050264747305988427067045386604025258590322015196498802281031906399150818586782288343297257416639776882567643720280777467409136767657209229987741171751840624421784254833852656490515170021318847465527172675069855431931711287430403776291212992223887288802733714570871514873826315162381960559899582503031413240287010713465295398102115778485907760393031061543535398919735723341712756123463490192751277266168878898055039171551333191184195546327439472098444093518973992991644342149580216758823294422089514311765529159699779336727832006740046685147942750955535794570226478520173429665377118728038697015964318056525928875966763683533488850421635861776752201763735055805600925107796353397314505132212380515560398271628632274514058082835784317871270023637168068633776360248569722374453624066139279029529316640502894517274911263991244213716354570331820983273133498324607501770629272018308607925867586227089249527876821999146846287375810233753177510154308513799432723725740192543080967930638014560678087781355552481159760652554945419416477990053908650762776699926641042286140721277829908020182661267427025430798874324987063983600985426808528155777867294810195361391665696082245824071712246347204624879123383837975968991790584362669565587656994752271073652243923984402665816828554730650182537330656152309664914689894550833835231314890874873985053729536794013245056359657499636496334255985854677793451147644737202335379550384231803171758762468074340007845229103455698356795465044189072355136684312029049121326310634689689760859536295693733371944953034288523033304379074994548128904693207215190917581888644883657216093332522002319304832525568077165950173969394627993645986128465301385317487192160683211477916647828640499827575666534949637347959588707533052009554041776257622824233745238519715167926849440682904697299603567172809355453949044191391171383979888840443304211045358351057651077044995005629043553390753753434800380941376947292251089923792303627415494309446267991200988982708391067397889882794213802406993062027816817248088623375551639856345215981074959682081700036317810039310819993516428176985260071799013349049710000511974687562171037067988843812837712310804378340265722511789099599500674275411539879518764913396509845277279751500956502684044445066748701099361402770284513243095698330697506100547497172542725240525087764465751310802031322292105160826214969395137976882770510548056639088686286548379430819427834473869144372841402312845144644226119005102156970785784248763882235261862057584123214853985562898609811071055926690594777453845206655180091221665593140527952135846543074231847426627348759292283869481355120027516735961632584889888049260434058625269787785352733281892436499466974527893461480275861660107098651720532639136067610192329466912023500218301878415149895945877793350083340602923795173628207016586961882903980162534991229772089824365985830672610974995867338118430974585452113886309200830991178222349574283811395581726772126193917912397028314875746498075222419311461593263172002056695762717572118039153841269892564485448468183264117622643343528540573408478985592935317090359659406948432274624808785570046187837094014465124911299360131423223178457563945087907766522918276775392130003570505778818119161753354905441935553896562217890149823546357311529529516634668125475274739818526879048128196283023883762847447199159024700129390646946704735206616145712065427827485710413684383412050862570286766617282033450376177747098355348391766758194154349300523605671992773617575192437297514507842573463067285053574867109019590968695070042556115260120624425973106455242748265188652778665943501452680561371669071161676005481644691707810654542320522593690906001570188199769213344971847378547035465492541935996497807846165549461517566745680568294640964452162166204863968309235879908178719687293525607949537358815773229243038609237138800622855855674302742687546955505469202031108479565913801446273299131961222893623267152241481075276732414345325915975641970796828562330932064697856314309766497024913500791674324073120968548372069328397556198846695286806088589919144563689443374987622464805114026144770745503089176971069068416936168142779312691938891767961800344020533712737625946820342599425564672804088094846623180245816723987844106816776672287136493140201575102623173085775178808836338864731519300686676320186249598978304024773942052237758306547439777017908127949734489572129722309591270854124264658614953619903786189709117824098907002894523780850298887101738852640873893669881039156412434809750683143157028711091485711101833248317568164660330377965171153581893171346372424442551271915579996870994801256604022605715592599369315386711547175967785206163491758392495344103063498778146079734947931850537443827158206219300922096434588596229994537298175851340876404409046888868644363052252528479670748203346452642653871269732298460680320561408649435270368339095688401396648533359394839887440530826627910210540185875129919954244071492381959930335500891369106806413255825750595857673787674169505628424773112983048730033146359706758718260802118149032684368330360552187574767242264164429276395108407142323391848462315159012773607398486642568556608737050332576706863973597644057466396185446935050039963731783449552221806843632373531748617663950388522994651081345348581390318257567884924561535162204753516270243967778314641317845165500475180906432433162646089271997525936390142228329755706407745945227829869632231783452647942127885802305226214117767904457152697584624891480067834970596830483676368264351622144761661433723841591944945094406542238547269802787379504990490190774950244597181724176526610867204277135202885003646733756512322419854187070471908717588684187793118588318642184152166849627467146979837848007982118657834970810030673955254028212844769464037909167947712340032954788155183154074088688441337958885488094161864831059449276307447357860013217147363045021031225671058231010262737400362265063626064064086839629760660446276301592447775782140400092950310655348137896820116575222952902073914750915957872326826642727251004118984097297184968362491296631160588227328917054183924740511055492175135151627661741133310329394317081804301787520338865042261419809934145695645020379129230671790550943820721726421017853219822477437157056192311901068525266686959292542526940339889186924769086365880318087111490184286924919057203209516486658502119928892473981127010026505375805062229719717010048499096613194332710801619300693124161843752890261507609631584161245689481941401937208277181870104081849918585021633064769460050932390143031759651966037716312744166011005084921076710893649201184703939336863813430334734586713350858224657535864620324517355307859753016154061167129881544601005200855709097909234103744898665117599367320837807346280240530991718704129355261268519513601356142833270016719829069275385708606233828245464442070763481929286814527757075583528112136491687211410128029125894589407456813051589980044027182727066801473387421103233470282737378071526774231335854584447122777272158894004913207480054128972505550189959703060266298897793640498277809025741132950645694580616748462734312250609272265755488912463625067288443744341950967593144575676830927739210357738048289357245711157778430916592317716297636669232087945256137791094434620811367842362762779811286363252427247701924199904144701040219081917056395160116554043956771233380343620356871785963891761428202042024924697208751391500929348789856378278452165898998181222230258607038597650701294070593482558461927752664267941433139887915850453414599508080331587145771876574194705278160132322283910153922742284369695549122268558078844907470280351612657932060924951147425293915451915097445110868846261703674286887434926833192441020509640777779636538424013329145333431620562098923897774539768132459789439788974947126779882599724426479049844193580148479953228671119617311247201269892074463411368551887345099661081972322807107440761019342400094078780466857867691890630673431532453260453190601309369566146552795347023312574806524278928417538116824434836456609646658010311081206882668493109688803528724533807271679932042216219839289199494634509218304547307943537639560859502698393337578617084121193319199185645391745530435004860426869575591614190183191409520860470102530936820493302465005803567088395050655426896246048823559231089935935104317017008460666623391501146818240419107587880824257331969791705527216578751083654528662966370583370511692622982734044772732427051444332116381311644711705869091807527550953073805050923018752691597067748948164879841834971037790740357319230145187519947338890971498330535497554779536410014543288864027799828295105414205351810263399597222937532999430744896678334794995325714245078030429771852331165251117225754041425694251096506830497874377547333317855799148915641127172467604029934395425811582443705069438374604097883441296449267963171662193648738687733646977058914297391382942331804953947989226054874019742266790202473983475642102232780712461802702269522185311262198690564935093517652259329931748119400510256044112579540399441525296592404706181567928171940092942206201975821833622831523703318022307371611086291699321863948256907811047674088274075651116511669717302908585329335495680826669490920657871830762652717516312887364462289745592937352694891880387185029850535663025752250407970812331024925700292515848975559310499664202492503881445204285501263622572072099852004072026960109880430844049498141248909765685713633990033748559576638391628548476911319935350503440552795417482702840994445740008062634191452798310379108211982583139159128079237138756083086785520958802229776997912207919197677288500154407536187585556703758470888845698058865616187856750279346663009481670113629226728663452741080343995815505237544180929837153873558904749037660581477959787984452515525936462781648545394940105930248759398416844960656345393933391864573824718923888705603978986565388135854816464987594304182941114467560615548450083601182108594096335988596078049108249027070458450429757597781197901900464219539339096576323452637407445171919907852699946615829429465024319124606779934048663018336355883774753623692400329675107718036057305389220868494646122435694293112561103673751409589256720012382974892945631146846569626441928862763531899859157082031690564509613392863576471616554677303615598600186276684805297399652135949861344156909558310945146005252499936366005232022658741286743219056988115497165047738833518512050308607933448818538441684208745847981858961153718187071025668541988698155220749630330108989879358264314296505270222279856539652554151027135363769847416735363393179307124271961398785328680201027399914304114656843364412953460712977302259601823579820557349737316451847458023325160074018683162419639274115616279398377258986113035070655257682395913836066101887896854044765271508760481350784745344939636099822979261140547150516302145640874940412207678583043807937273739090596729279219170055965245163082029152517919213349211837531094351742074213749105075215028160759030604698888094792108557706866487625556581248366119144836168434309210626058641648677633064952303915592001876062942398646752920882589734561855012944388901128300189398232800675716040275490838300825567893447609483955384041475402499557622020285732316523715450026343204076449234436193075277131599261195764412407989040694677051243671446359977224738079482612831535836545919128557929885407443234403517796925744261817557122862211316100715255957884004296264590567162047668511086137020620740809618397193093289717904891070417679310590501826192122300116283989620414611895576143193823235678335841040366199713606454670836414540831404962261604695583263524518439990014638037814913151122996376081182140774009352106411050335110328231878450783953460690335625392042675826765539452372085410312442267468499983211981934509448525821210325868633992505613669237295482182284629967953743176115555036809433839685380379126380502771870380068037259949210505958346783926613481668084998489610383982320357045469361548107526280822549355774469372032221422605762497234873625706890143709335733758234578109163081622827384799037617821275563498246850988014884594944616487926369426683273107295419644785368405179030575700308329851016044003573461760484983438390271890231453927863067087359411155998316921918349728517259123946528375991016978434868901945181478321174111800052527567349618873195427936993032121868356217974942212341039824424283103504763469824623136151471395921872002132898278673334211481761576202158444255085883230567863162599869738617938089405342475707676995520545876258173593969082087641995543208977660073333642742538695585760867334589030806332288729092984254434804587616444130617517436860478674899239252898254017234636121000269795105691802926398451334549051977497609805831126044255225219243320875682422979418398119761736684283440593246659364389367245903158902218224376976276521437519165443276901194788641152632263096115963216344558018168244472556685737119903609560997865189246667145749599567914700912544712286730998889587673118040150596089909623045579638112059961057205407301722479121288809166784190409502919822859287505219954207102641455585031005399160450991566781942877948155515229668875485933437441663897866528905311253535655721741415553328413035514792935244536820848065115205991906965685323500653789687165097853012573433282411233871521425262940265332294522272897915644087988632538974360271864372502869099359744048654837449281126729876801493075864656365926599538653753529801607774785384199988963069961624827463091117991078354468432922495736707675548025688919031807801505850213610569575296641296431905732417157446609997912131002091589290498576556385894513328505659653488849478311028090313633326886592584375907624825171532694917116323154936625984109978451743368428767890815070321773013446095889975057227295970371984402871389026182297169315346118417696687873962328031818777162102164848203887880979220296870558879081933536929482044488941188026796135447270598338907951266573241622504546532479606662800270272026882036725934608461982506135615874812456501383643408357279952632179696709160706593422951010587113360141133502250050498351506771124202795494777118403559703325377057541209595352943339414416407466628598784039839363857942893783191280535284497271590054294259199062766428839932669321469945135667085022404728559180857121661416929600762738262102296838289430717674296515386749469536945707141757162205958141944932052015846476228378482904146282411720621207092711106883060844970553854584182281977925473269650650415249039166750884402672601178785253205458922060911079510203907499893062397863212655947393651201522753896861667945340216805221509800494257148257383256052421973152660841126749713388504685662536184505888050214989444771435780919870963292966967401446487799689510178695696392504918617967258340155159765043641485779948614768108754828665782758362124313157303359106284071150433619020192414055184293674180787198954217447950007361081889623088293661710700741211521328123475840530705913154866023817913663306662641535892245095803261285219998892249735780932311273587752288641621396442585892005289346446908551391298911122961983374195860393699269513222664215740376514606985275127151471651739983356095413576256425350222312225433856977458985771004685821344614460787435161976431492182918420064545058060284814089713543023350482133563117912728593401364164990604427630759332720795609916995741104978765999520146794541635873966822421312115288899449453203242226531900292705746041832494223899946863192308244442593130932212600740206379066347331917098745666432410650503038531097458647337316430809158804377365542141541051042975812250216195941595282143679784408333129099457914259652068909460830839966278562593437499758895832419083202124104483933215077558758047474814475136381894426654326061202544245158559658595977265555661109858597787163857849243515277800215841811163340756872514975729638486579518559578047645100476969683402871027606888344533282213818942006794670174786255040961065323450651959468665162119127614926496102764471603560940512516578958655262209635023404413193359929055601954206426198325892181510662940369986198223510191555950899660190294356102958858696969749279165434275295514596209304978470791399164949337446826285969349033087480348182249303785315567306340001701925668066882673721130863761543215949820253925476431728697430330067730143701931661806350243493363910833596738056545806285651490227728056599655728605651645751162196257335107863216441147635452144648597255243656797074393094358260441018176674481976826368679308919449960225668035072418702929717321143692144177437507612520201588286638743351106126508076108171515462211132306503156521732324673057916728669921554910511859930176757559637523375367392846666862973352560542184744749784518555406224107839506113262401241551968419253196855930963122142021799973972922623216848768166465675967444865677085574814147765675103153175999697356808033808860394284240675125599484343061556177937277894171015893107438813610917049637419635421400843391193578201486567761705499693854153148311160996631181280059330090190528157928839332548097031552101772238758558875266098287528309312692997056838987573136995709883621927604305732557553322365650452569408430269275919908175766392977845878462479936738717303066360970187926719741797623446044424559959338146958766120630124708866698554788818222968198240348796143197798675765783185659092567295150279190355497249533153392980645915185041338219751304260504617731336607001736593043685606521918811668448581801019893242512208226234239124032970840263090049479702468739909968819967298230928577940270407664770998723322254440495931610724026468150946608891165294849409262767579432002119999083172266984998740607072742547542129591164242893001057751043497001863410150835691236563874676535782755390223768578103727804393205850852848780235552854724266606265959515872153338223181336941141150314018469742966867361589813976413061886817782673285005379271339076914238677587969193386899650509483740588446662062492133146255514649729833871437004225565634741095024743352066771216961572923784428486858702430023267022968118206902124818382193810792610722473123180241671886913822779467039061577835792711364584811807635888008364112005348269421077949398913334491923543683696854880934645006148247012266362068027177763667392970934708656689556199049165631833781404553570093151830173994622439409913020004715974733189403541664437745852787649016163058373804470768705293603339423882370488173072895723483693967586553310780457312762680679407063025045431542159560253189734172574070881375327161593301226991670106795082819473391908357940348831322920852120508490571407913389677603642775220277592602106764475642438860851040773200169428734074256350534933906202675128696242394328693714198682533723636331457239526257354195076935753716130055884045370826860161415391129778640300908162857369548492620712839973029145847804014869647936296437488746638032353222188194609325865335478968734343713499651406361358225458012869284040638515348496841015900783914842167182638017158250623519043320430421375164954017118796763188262893780830882365802374555015898924827251041194139241064942128349479537721282455706323631567982846773359610171986165464816338195043674815731492586378091724449955636168047206509598526108184213316285355280107207786397413830577202884300320011854257612560670618779615869889075540154599344879555990910611484603278351413140586597919959537616306065755174364725089056333580906568340615272627300698168546317655254811137285256143684558873667482543434414130779817535295923261827549984315052263857139627325743091208720090156501730236621741068272579477283987830765000980301284812175162308989028488532700002532088448152539181676076581258649610725786909366407160584243433862684906172836868248290990630520018131006411295867255305023749117490669091890874420615622847081774501173161476123804263114563369826034315514047295456594533411521233564699978550630077000574627821713893648338595554449411407128492098398617327307972150459578472581365781911220828900169826446991341180476063914625347508194641646449790833927401647973050525378377604421883086560993190686747574585433330390789486234984452029888661305313531612754140357162441667916045923146281181672369378347615461627679620451962984422054124360920235636199705975388229188173306128189351072110975125852373933914326637123158791491594278828580952775108168187494407091865980327413344827152534833844617670624958998545196171513764854849087844615487950236675771460155866317999189961209294113798929949013865129361547321286389142721242755358564558020757814180193532661198514043041959635481552255395942457018657395736582852831434146659803007305984071544146432854107941653426437224784315433929697018950708001498197372744798525413140380179950293495759664095030030226207453882018251649981114734694072943317698647507666074060562955726516513437411557408831082423910474222365112575077423745654138804957726523905545945562714986898099690132592936158647647957965690155654089283998567500906003744987160657257242150864864535451671709541596864451200702031092804747168524496521327813547182692409796954406580948075821283318593370025398865765299777670448156247794712720204048468785043091878208108579824463781030819345050989862994069053453909323970512488656935209694824746552523970906120649108433030705900338073640314296683953840598802581463018749993792634932792960144554285694146269389532928995958309975418962879497204651366846390641283413932555373196877677138449706006956023155621426448395585044688050877973539130359983772804295202657362590581224212045732904658723800962128221209739244368255594902841555256443401972723051340107591658183414526698901282937992174987644542579310836211394036389794475653848941295264386304629149041617077536655806074391995464520494586145255318859644855572808971871346612130236354187198634860269402420130561596640206102853501242501018943077356501525214083103703469742335790106577725312338673427336727969289817596159932330519662872345737596837860166789362242990238834757508280710431670954755864639176955642654273766904056767582019900389105725218226832347491814401473113096968332013256697190690031245820995565259658921731532999024644678575081740572857023193073641160217946372944363546212200427323704035557986541697822833922204027024168524170751101971038607600335192223315115479543674690273943743728902237430076322754849330773215444750831755629704676054405093892993441788946673675403663971419340914366664113711043558613297752828996496553960490218374999210491345224661285843526667361146445015529071799983824131952289392234938904011739366981218426517772630958691432488762351977809337403455382418695497443093012042948535104870898295967042448028444611471678760672984459325106369244675821057358776692696909333610677882278198340312464349194720095553365421446876139264852275524557232244836701072267530985197556171432010009320488175819318251391444896884096491833063610981607808415723764470258337624945003150824738678556978563495387287977535942780352616777892408823423578923828240609321137524508480818233707086612344291266661927078036589128527064626604506376556570810182670397074373263950083642452874896081041662820054950146730794112189020028629888202387239096020556334393095106845726417236442937532877790653376405508982069991715922590624931839243847704158355903813412606946737021428952050461233671527637422287773498903738123595059818484920332707058473219138896349022044565616390777447534544217312740703132151123281390659753688149387291996621111688483168433521632954011892536862753772127173687031526856876827438171096663530487496501975449372807231296044038435902243223507318127989565079662917146291230057145583070658676512618475759924442002202138296849786398522629545146669044834536038139701434025384122308306141613608113144191395289628718002454627892952355491150710825424234728090769804544670190971839488211950389520488435242024036075797035452794253929194898477962597246881843970799410505132855493187601130659339641573356047228051576443128070481694928478634650168179483499871305775914191306232072320288848027949526603043166743013621354014825617672954360404755097543540983777806123796035536173833252509379288688353632948360883667785841846322127392240667120986825383642283773666004078820817509507952719357651578410272598679954308158490919111646601082078772443880945401254509644524241125032783536371906575759220740560323413403247782468527816603032837607164036260404545064515406689613147120581000819768584901189841476320278321597320295163822474394993486386969803623906190528824533892326033845737942431049279733267067056367277425772276745031626432462706528616885059786114942319553669128155800793718492679469532815317690984867500435474495232854807805227728777196427686587656856070961895545797282151454499193101489922437577209626884288499848516317896684569139301403624930195886796724806509064041013798688410427988149356322083041796939466326750983938119660794925809574390691172531035406217725483715209309062394812423455658623916000890811331643001755116898017941565611353612270185142204013678403060630098922009486574023903407526724557927419583451863129466598943561401352099265765421827991803430140011353804096025374040823716407900375721128158098881736833914393817035096995678590089387277097493071630849302682626785348119805339965575351193340549181989437254075910257808892828799846858918618933596502680172615990131012413405029726070770280310419523723366573565917561290855685182617588086105296595369092063665168953008821005109938567346355023031608825703114347010761333206269128283618713960736375185152831398373651061973838535632483512257430303169774524824532969412053048898332265109923626518406192835764362595627687107949043504329274709023756990696772251077875438244777423938172736348869286573075787707422952244935344748645025941109378927412900487047237217738753115155301003617353494937672356063951045117113510945243611962958407591453053564610306482409054876930063114684966129364217542295487600989484239239034709625307879498448199339039015361564986761078722498764878232127108323997244550500654059899874540182012973520627393683556700498804415833900828714047166579263270235172112597254957475483224400650628679359988144416200453777411823292556722598500507428355281255168386968577307681039596188282388396641244108758766722558602037648874086920923540888063623173616117091803182643581703235652001666739045376640967092353176747157162947078701675853899895940335174813281906236066968526472408023850599537151762129148586561244431483003157305305553298690198885034224917282830061626051300176631776598175987595209073717611895135468541184162321778627007620720625907105023363708029453970736392740226396339516520002785781490500341925664405750379765623237149289434967567887028466661211273627366738040878331195559714456453306909520470332103333313484129931817318644426317766156671372864658650584239433355721560158907481719008743445820807460372880280303543161125520406727794298353997969257442511370484482723105023080612285394192586186604168582824707857733653794641535356141768049001151394991835562531706177340155833783162875665749954787120147537826898532356473233145029428819137230192195769266735019641074906991678714995203302810165370936770800563110768500466560230768561441579447222399918760052044132491732547695008307982968537362935992182773520158683418164182920900840267579336493346977321016395444673599215288814094010142165466661916183105399731339316349525722885826745042222779553699981537991057698311557432960782864547957235015579146526827051059321533552761437408368701839663606831372031440574148457501858453447136212952877853213304073587439718370302039079953018292706819290514043391279837811634863978975409398798254307015118419065765044825601037593336379775349364085671563407958576974431572063267440404751136954342294065420572937018233631921025110624005238048702401051486189013277453602330808675542571374833221120296127005081130802730956039462094802585627609976383165859346945986500158900701658560577557349002516032143652144516858862181438105162275851704603642709397377712965884451619587959256051855889534898206656620715835975529999663474253739731688310836329519545077826240052873475345720660876264798883243641616015745376385093505803881531406524235418614118093188889835003060242553443857377796613852971579384458009501036137804088591727943287096840344816042565991638974838872918142869904888661192783783531275661759016585716652983224594282643726369073694099652303996573406049383518432826021448700310656681181711708985008164270413482561615593342824021809796685750494933116073191578002594855851757392175407596888430681689236483837959359330139967497996973627973974429415099918116173570297031484559374077912312194147303614201312265277060588991731985151594660554044148143941174569033991204894567649241945484381266391588762683781919426803426870593404550979392526731589845545880774767840144719006319259900127521165443875308196065757794191089607480065964890394209632961783476580411136885053281388013540495448873799512705459695370586606276512929771552473551016725573583782037487432953805659624986317986554584857324723816372564514703292358378666333893204162568385421663987964280775091374707366791906607662428694653597880167784856966951030260315081841787050190376599125450058682200794504639141138823278491393599142488028465847633601223627839172667173809174682562751707656045948352168772365864504213018305096349130513896050838088913408163129942366642323243175337458756878629849238791033463142052057385805189417652785621753302159856409586906645035395501015181446758551425213554068727712923315981480661743333455886558017978075572401029551053858287351843722351352163992659328272992929141003732928629271580571758794229899338344959133339296514032880599066580776869494221362437387699341899672667687623039902698166432548515023904006693396917134573429531246363926534491776559352048196344424285120500459441348146744687048074678720972263907360617672023202078490981592477387563397917924814186250391091889496671291651169542190214459991022051911226814066662713065982992761366376766072669129382710263335760589317918457665314828173081301185401774627178432403095703125444885002051662097811557422461321138966780720856714390830410803232520299880909579095752804881211981947324896246328143013810782318136515599482837507870455225727999482483352554954524431031543846808012351734463511830477682499424849518669127562867273479101547153922377947485896989011465149249642659847629663264474461798235990986442777532739531392903384802481125093543914443762282870917747821390294856216475246854500888122274605642826083187730459109170848767590338902481491744448715071134172847596134623861082161409401421239003032024109962931182459606490367596453347511404443456876530643907104041522899177229624485208641075451821164336542461749178261515811096721812505015036588304971890108454343930203143226345369728756115955515569976540235028945288291397348786499978535750739922228905835106479493936378108510888039596953612558916009658943438095914450604430942571846140780063871738037896726135041441106139615465465959502032146494647877237575650701228752401920573071069219615831131606284450623282476740128838635227863678451791875449504151609598190860377737070790543394296742016779413240120763206745660262924554592509956657863948702056735943747636717298394171211306188337452119362483586890142968779998077175542555440909467713640554136832498512937224597149232551891477173889337451830130302720014783660644612870491182411211874074771063370017797799637655466660047725122007953836570034072012482810255435496316677782986536434151754499393149957149358490535519478404213155319015042419717536845838386612599890749390258848989171138863959633097204496546083840289571051498739300697521729075199564479984429455585065299181118089051392613735570285549305839688421105477249475925724751345860782756549773183804290157008403933874074457549568837710830136851321092593916036550043298857457152216611473825587558745043650214876435792927532952073012278536383196382607595374732121168559253772120697666242309270300897482360908482979618033188556267833176882869448700383058355234907259355165029335027336738580889700276580217775692186214291497775622849075225791051543400918897484677710750417525287898410730325204344638759024075823045535440286942304482821704100714793047222412808241082337509387291460785453134864455527623592679874129046682523743342429091969033828122783006765708516356405840712837755740095133045745215863576706439269724996569705133278056933702579472827267560631430427014423442546569524714319491918449968228877870919146275010938808783407650614850907895305609915009318551797869309294365108793862121276363509038095568363687588882242926140355416606464872351835318096725269806302886840283815294979663024190807002282994429664061974418858800062692578263103290532526565617563966881554511422995746319347056882629245338842408870288347401418019742652848164173502641037545898268863513830211670536953588618871191528509990997809353971294407180173665911159954503039189174266129743868802054288676931038629621734513960248872501570773902348455690722600053059409669509168925499211304798787910355352979377055136458506407589951000104746304651661884677653178873694927010100877996413982347741105897841461169688900382920234594007138367198998366284970835083196616499312100140003564535075279192507453090162308893042458524227755036050724417189569626924987803973904517927190368453641336647258611576135438069559670768408203700949242683316805812119043603722176801427275543145485622893678687436398006586172233040267465393689998387050586239416753763996460251555506883965407862332358690903675047381167405912504679426999609496894712551291357349962957574670848984843435832291688620996074256720530525933719641808386031961965204599679527359375758605293685824058205701205511523110190162052975557036766712783380771044348160469508327895037607923781308459251197681410684662542687252525833005949230576241506321314633749278430647840573756846197319520118882373065453647661530220737684853676815184337313240835061449804356549070518250241274485750301226504699658822915310521202676560406756193372589401491548697684955772248535070027972939096518199185653103905251617726837648178268695684137408877172991457554920851585194375137708358761781486188527771086549831221500368646573832073145231266486867922314279812843027290361849135328179896424035993986046886614826936732629498504589954821176251339794161774351417866956937560341248830679648717357678410480936559099123367585998603032276525984744168984660048287270941212497470132164861177013031663921950928018062933122549829672126088003760617849114474777316406653112852058502552562040460174878046279319826271314775827330917167303560587134186101351674283450854114666139811351813695631150551952448046376496542315548683631045572308227747038078833652833363706078947962395052458124329730498842858786885912823277160375678476027398162983752615169654108298605478268966758599059242461429619073111965610455143143708544423502803546141755976749838074866803260296877177190754139343409822973535154008860329191527111796587416831114615088930217902422994371032579856374238635935969360833029504598441852097354118909956553572154134838655755383141680251736301202887481211705556347455492921916214731336149661313158650378832954076637425087923901942034301536119703716397320811806851993269157960195001481268498279875490757268768198124674313443306203935153666778186662824459375442088447538268805174508928691340315342358348288093044627035199311451028782135742667713796416659083809034293273205549116115954995880795609935882780742496012481861848649424500123660737209688280188498519166776908629957434969799991220459392361567145937682696560002426326222137391805227306247336488289971021764411289921767086134338710019480703775880831337361228335609069839852955863625517053459270523800439706347664534119766711263643196281035333953262417452356913001845412561114809128359760193760369564205048614769474932204793015390312443591676834442517804522049145764034046220590561379293917451581864215288530572249541960013715389347115958206238140119453989169889493229418490234933001194136188587848504084616473931498630204318639476534175992764532255046078870122916767653407491135546790214931050806490471125928674670573861743329674962800538832336410415039950779233862429549010645323439423979947011660005221839813459668877526201000838187281459163347262043036914426571318389509004316287729145804193682756977041302543878010857636789703827944528403987948684473739049110489765152826876566132182789889250665088550787126552886505231814135711869402576977520860611354323404833849681355851658964757192640182017985684063197705681989540913523148507321162550922004030203065489272832757769182377387032862335802825944676702268379196510370183283920636678741899506904475828184429839339001703197613365237688146433624632718482419263854710979519736913371820654862527345273927504200798528835432757961754672126263800602789003173688467617791131661089549535480670917075947629234589137901905147656195910590258677638988435200178169211456916869925189176842550386403539934687968413075418345297579236216322873703863353955666001053383702777767879263933150656462118190794968710945438344846018144663448247520355407323923272277954054848271162968858693982236887815838702688715208144925032451495641758185279511331310919855229286131840855262135776224632576089764478808459343327415767423947130415171270673564963820666725928154312991079721244142227417759966424615363891082588816205069905640988844397710277855144085089938759391163413684937036463306782259449284235766429378634466227979030202960289804850562668178294758592351347996824534692771818451676030460892310903525327577652978356253214854544883395890772487089560013133868716126707470988071040080325301551308047010256170045883734548592155468432516573508402089234381963655688799102613444483380033704902160801027082301408028862881783021342973532906085093256380256964129213705252123848568047155745679783310480452589958789482294785756116275709830056537420404717055513675322558303279152364293096204285977092343083244872988201242254140719360411596528140971343888927529273597274587833114998260466212419544277434946590305086206500313136883071287747466689177964105247503312577412772097915198299940465391696431279897696273774478985777562901765234158406708645283573865305458504685460855668401594486922817893911223053472185602410776788071462041774647010159726235091977350360156490752186748206299567320954558550830697423643586277061581250772564921766168919293704681640743633143562749556821954750614712144034437429501713760775776103703134033018217071272455473551383889473468884081270590714409563302576119729741703279585152585340420094604531728328233136091050873755535552930788689117277216287651464763100882382352086600705173868906085070811782409016649510115451013440541878149426576762274361270828310713233009275430776604389966076578690829645924243429738711521067404066600937501031717401898791553783281537573036710176789759676769536095314047621308579858591844872356544785042183186377303599656207444663655114109692959832163242342666425965434391941427914506855208449476726250251752668903524239375815058638156446163675295332149733307884196726951122778409975338787151521193397072541260468105265620798927731189329631605167980188862979697137962337376485237945677867409104617016433872677612924000689861766916476951834916146360982842382794466167865133430852125656729578764643052355207665430599142933122090595523330344291797700064775060033108317706029386215408297540449021749819877315673503845408358608125990597164469178463749949523019210726825502154338706104182963058336985923887457302993350242293715434671266208403108150575021280563484229818448675697096700198488332019891066988160103102782227570126371952248142498803287257533904082957620787432345699949404589283866703553642621797399889923446360134902700650932589576721694006964443476690094814122753969585537694636992580342777879410067877871887370861326921507914194496381653179410896631347191728280791649026740199715206625911389239555523742403510594833607066834215848184357344598997364375446488985681859281058564185115532788690333539191724446479802600756217373390401794157381422358099427109754358037813978621527276764769423941043101792545255969419084638482928407275199625681532340967473204968246626077391569796705467202676865958808614394301021092333535658929674019717512583315835750323261906632956907218284765168203767858536720272047688572152186550482260919179110455731609565217030144962939448816900173694209789814631804024828266181197448845853455042035684366692826520503189882774193142989238337152056654449019021173559640443304074231389870085561568780721136587390478223449487012921384872728922581155942356225534434913328851649510041729295901991132195163803353670369491585817002418673965499273687175446871744074339354128235355946975382731530623295705556664315922508044659309480561651230713040934656260288119296566117447912495274792938858883171613588028752602702046101867884599673853150249472446463581609855047203232696207955077962989970108599137152387283454588598706396960877090720930148809242067211614065481939576477307480373730019580215207337712755546950356889742497581359773997676679990372163977933880623370670287395486135108340240200998394253016308523684193806189616935825755053375369264768656260844720690979085521384670245580632086026193394611348576491163083469169671097813604714316789516108822736517440228554558025304916108133637804976204183888510459242779800341204582367404485181751920356604435703103445593677534589421772370670057923840860404511570945276618326794338883299370145778776102352304340332411771255158126484846404745582621205982951901498298030102734736145463136748583904746623099349444864451512082387783462928975942296807926054894403313506304166440498087822382710051409338603661516680351501486384279349015276751083545453295849740652629702982960893395177234209073909406296136349747207633840476200103386574544815320431594806364583018227758986744565355807688066532470544126585436185821629431526244670360195220763915834458424518857481151416918731453959874149901248415155099169681077150052033782862326764673869952541366594338370499431939827631049915974338522316962183757469025182649296915649974790134616711693612787004616583395478293649890731163623322063142031391115239297685974802523835935955236706738625001826730657341681632836484364147600800594358285737017154864873616306915547805570977370852052174349499765021718908842908879244190345670716939262935119512158343091783877130138502784370550508600263044511182377687681252531648868276906061114887466153586111627394072741574840587891306598307891292298609545420508909889791282535031911295339731509167835446289677872758204798762661807562195547233517428720330081531637100158065353437731852893323602831690364622803962725998496811995323434271168214725350049117668137478548742546638678708446178430813351800560467800886892178571902982050347892625190474472584583772410819834088981286740075240247228692955005813885123790634518904879669654567285370899222305390357993812794122331600815029347964520927750498262518484688624824186094942116016649287608433374616852421819569146136819094330420788484548386660713240277960554717042685170073003764221438549773883152252739716042569950432574087777156136222461248324147838515861010998278886878298535203467575021687327542441692929896928140904145575060925243614039773994250764290147172118666794928708850928187029309183530766763775610930153157647138996007597369374098185554720060076238148845643414854163629971101385677214424482631102556104589048567832772523829342875219109790743708902473220682567142675022061253174638285731263211363492987785590383750072077108634596556970456825818471426617706379695854004241507010888630137104757821089504464830455705281289375380824833131685958864865577847413247987890349777187125735403675458665219337770188790718055944070092372033187406592145943415349325732303180801977695370652693335169360970500366451255816247738994199100079709552041934563838174223223384740762589126178495048756560782512156694758946897741367779824145347819312120433205375229807665600702455733050326467128229168291003382589994296345766069094426446821047380138537910674736918717018081243306959163609658830124324141369509518473183031323605777102031907885361866857363922051265864070493456571052605463871680216906783627647588283855395683165788469651235654863075158678852944531758981644783225407001209594549768128993601504795839360063708927697983962795541190923488309751002839991718897372370889173272692388460612970289366082286934247715489954596235681907751769947219738490523044253656203348931874908667692694615013838322173578970309931591155026778600317264133873205378446020965417117965271416841094585858879998222139111489490170997559975977347558744818986274144537137344705144367236465141658602417642272875645810495011257757630020271223642781320977690426602396546688526321345289622702722423177467118042520931692718727374082962802898165641978591905019099442658344681862065842850412595784222292438702100355167522187546694611241262104935542469327832773239962353014148714423792405564992360585245480358443902165401894379746345947430790279761434660042723823191542213440694231337485005780964532327453586994255115668667875646703575152133735073823008828338452100628824679639191426371590707256054890227270896728548594030139232339272834432816151164107954312806834457504105810105890537749442180335028111350658446350685545241661722620281924593682765188935104159555551162497499283029590937032981947356685591696879524666879926222505217666471606874581458589431110786503401109653874386217082034581277820784167896272444170554952054028010115556603671722462923387224261569861586457676980141993976109572809930855380419949734200111521274044834060330276481769818923781522692143582088427297658076554986982511017018268634998111907657567342883624477098037381085845279377450120526242826124029017469789716876225026238107229648475489026844825266191983044648200918256466190467169303614085045175107944951246772194758388924011687763186923946411885117719963009454052136233738712094576718894814032833328819697018487004564814504288857984126176213034666964467328620717519329590680125539187206571879957769082954110629242896239394981117546746100322769576240272085540369212247919877259342491357889748190397560754651988035438614073258811312834670582823440474557229764859216712273308760798364306549106020309279106617833066471433853555588612290715501521817302145500460272586425359849979207776779498218524170571226702075251145925993159731341270180467875302019165585526619921616439698613380330884775372333041910535090013250274458902776135853358716063065663019613110961882739862702169087618240552912381483972293344935814287941565640589356865522009363835467489031494204163747608321550877778107131362539762275366927235589779868646627289490591582949164325258356572423188179664563525139048900077600105529304620786142859523941551905728775661218427746317911909086190279358947255897172612393520124644937176853614986301433757840490637372181810849121621990066114577994360402335746589967779298260351564038196857894113482265001769461669860312398397066945633327664724431138413787286430783984987115749444683186645516021758658807594615411561697101542316356525405185416576033781563234317527006658672120157178833938626584142904582781919012844180840952584609969415076057774784492828097771402155380256114212678065812349127776164954931924568047985095507104634243719932999838339251299815782239138427984823917312723067676115873282473079355130544800366874647799763409141533597225174271092296876062375878030968549615657853894977497523307627927493064979960406853847751588978381375885684743631720481899100616280067672330739656781420902452738130837993778323784976519545786537118460537523052420496101718160809936065927017835245331246084908640738619393116803604551944853252040740998522618799474406673487559111144617452208972872337906567965105531038056213634330755935541248856770846832603865317888333876009450139963966271426411143639176969402939034146944828334222709288340577448395631034641859792443312229038460767867533738516820746119983928810688348631959767545118696658197269621786227196524009314558133688948541165572599831755935370208382461677932001332441893679984484176281541052794135783564407824033201097480093425487812093217382986896587720345413658567855433566264965349978410998178738264534875448624366467812416523069109153443979262101877777609605989526340831959336044535097134791239516588703057576309513048297864676568322837758942455182827251992893185164040046899232385960092080925625472670819231534587221099428085537763303788387845801895904603909735495531817000997162739753753633992893898022111015462333121666680875143189372440570915989739221579977876538051449824567859557790517442766374660446561743449665877983432176006010614104215772946200290099288382773857466053460445618978144585421792830434468576345200637045945895518214963327819957129805701995760698013744797883849029967171428004208050495783391501004851360696678107902415805511522689649607779662461787787187538104881348338248973949018266197372308059677273636915495502208092118544528478115630205293907839369583962733030079868247950277360408943691313656515320468429840420547145821100351619501761623184655207401520024902254060374462151025352207143884699823608005774315785826982093751661069823582506324945255900085403940691170757577551937948270876035446671639700240324859836547357515925964285425772047542021448548080526520986406279256114063930503157929673527854030842727788290687921947918684799072689332163914810391712830946028848390848312176695371558147820513201101030208912852202058154578475943505984208172623905049104857401853419403339683132936465979752925534041464518740513917097750374935082486904404686025955401950239964190830260489013533134385758485281080507971285307500488799912407907989795651093779252663623780466002435215112931833376975121855611412916872355190408417724446522932869981700954348218441766814498188798661812146488011129148305120694070595510688319005896716102216084774237272681127210323899523702846000033795410293483596616210448703051489512873957980169136249174735893308809361774620926994764001038690641195035493969435707409069103694741249613584947331275767512171707372458286459920206090644867363553000777478091287486113035065969817119058870370780998677668111455506746729753202255225561124614197568758719279501834192346155067059285376930509365158278895493495951094300392502410097185714043239110471024545586792792781735250034294603341616850461124293392401982513574538302243246875281610630567104408053903970274303872674065615002363076571643321784285292012235848140810216446644484723769614119932783800589660941912260502892147448949705810668890830855890644855101654998970009339308007748051212325690260473071076600698589373185163210763838479463279100078645045549738677500447414590606263975597436937508348552563991511330806081018182843931958941124624171733494087672894240447184803517101169983884902967084613528669595044349407121293420602042625536320804932822360672791770473953133439874780993106001713337921093558178274755364732263098282200733196284364784917954017483546933877825840750787639173368636932927191367816717252887842645502497017868827570525418251549541391473711386360501923546647174383236136202162799005204998367579219724757122621963952285476423221342588966306454236172531811923229433267213022023122247393251897375906478424573347683024118543135766967180004368349123877172377826354111852660287032376295728562043284536167031530315105424661841345245976412904073314579285110205006102985719182366486146143146591156609553086589257707085631584467026378146810694405195553143919728184714214800288534292208006006990607158940464989593911839087200017898046238346983702083953681434618026645406520228802748859796718125333623442604915283331098386289047735893068220813005151039198940401610660405356107449142072800067470416212429772497220669135481998262068954554036312316837429987687648248308696896957866477077318812287483058413484289781911373439397345645691102554995971959343687413519807633560272762336161484541553684637957657866992393830395019470565755410284173909106360155335662486775646428379180882339762348570273861733751279525806533147941726263885145567864015700924297628094821198759878393829016378726410577826839348051804021126523986315277801037326311094062624373444243696536956195727879371296573099538892528650532529158738162031904986379596402939581250496807401370494059021399343970624001174507047552186021358994975308662096883207090942052071752736691771124053599858474712836156980350452757357791690024352781805062636837252857247323745496966213940995353981493522619236656234348484825314826379428974843353509528754307198130279797125570154640832956885246376439078101216588248630995321746342672820389948386799646320453679278291524159574894471580190946197943791777309601710696894975301509598835877468152615137208992715215902033825270160317862500491382980365054744949959501661380097968835425372193761050147410072513226012100720924722343392910855972742488914470246762403387067471597920018907262156877820836840718454642432216110775320793793310604101826348904073147444680834516157934321124612189523254748320446585692450466313627191938795124654380280096178847987000434147421199401650151176175620080666771906217536471480780955954281394844572542495106802280392109817386308672122073917937966333857799243660298203802912103795994835477239278187019264887604829054966919832325153918285018917693916926830801205175795966959668582806760939370606811557751153815458310208423561051076052195411341886335324282433671944221096242301099814357850432174508182447884678031587137123375450748194527497265650791453558795748006955713427705797523411891072379371193743158201061149949911876376152205241700799213305312229348890924553628943838258138718851477898990919983204257681601419638715541318876749578012443703217815161514521995411389089914078976624239409161767151684913738224267341488372638925261888233033142392513962777451682794264671416845488873399405693139910128182981726111390728724351713915651063832666803785494864114656376605251841596583579177919286976442685673854368213733815625764467357171414076077447407296085846565964752352384277383574690584211711645795443820282922437604638190610143847848216945424742539550507466003789495124111779780132727101457441068433697487234778507781651254075569404592190770406264243375040131577271930035581223861321333181020154175678573039755344260080044886837043858609085772903479112243956751154999760367488207971118933619006373570714464336501503645182364175700632502004117802310759957867699307707809522853606114393561036402714219166861497511185857881365097646099110732770742393028029642865618488674978304165339101630808015776801635317030311271059533253530120523640226728282123535056317155817723338079716882354080208189039152231130082838260166557283155803682073250553815040215211731996329341756859204940303334722360315746872376405499057035361992629638228154834903041142817403606004240471704883880802311726236655417396768161043570786853848388283892348653062697067714579370630149400035958850186621931379851048076834474148981887267740595600552181934828692398856295432870518326824683812897861215760583456582445988220286616159423049214617413212336697479261723986820177889060251661924189691819982641492304663955615348117017204960004019297095232760350341982140764322975229613810169054394185714369170818414173045565829746614522914377102998942181106496863753417913746138869384605950526711413972235692624731993683629254870055623932891331394030178057730786220266925758558647880470487629669695000110430129008945175848298031743384013543317850627511378091947100351149323595304592973345846828461611484416546593863767328107790114878437810674021924933711346207010278880916887605775577300219625417460474495126821537136627511840542516314636875174792337091329261101013038696295833183053642118651440227212464755366686506837104907514482767600044022767531878841771792547380180568657447381842320505557855338534643985169629992170731219336616083146429547558811587764523106628351122760756349613575437238178731105274469760896497962967015687271257382740750596245749361018412409825606978503903611848798025568115227939791616592122009017030597739455614774526777174048290839439477265142545415309231455932249511323783157422052981952542147631055427310658364498661083923866318079563738499916415579917469449947660441451933239902380633685060300194072850918278964195751687202502505687078834469239506299173840350669147150562524346458434233054135016080855516825203942010165760156464851517770793546180547281161302789712792295980422287889739472155605908952269030983414489327447372547025846975545676506857720665651020952981960786535839171039299796947459670987045374086214926500813653991169760708454055390376971258280302682708147452730443322871845674913309654355125706492571289776376792358268865089265007856817806123911617637091550416134338501345500917711904061661983712616599440455873001070482104298437186858168188690381409109650048103807468189001499133125934537360071503903184342917150163887586629295718607349412003781018918985940118218668824003113938664410449707340898820264884619855466871314931201743195419542405248780625076454657263892261735488502151004089398222472602017834735289329111334100411892548773320965653956763089843754666402169441895889898122304993207688946036780280685392572007792244812508352310780428295909937547788741949393051585186160386348132794415999395153484171924596535456442932465326433233644877572591997578703634928236861627196098471610677399571862163105515909680760752972093780145855852709164260998937679727941077706389062198878983715246610477296785046491996150599071539843883980006780992474482490483537361539771736746719681085026344520704025090704137793683684907991235503716766021377955893318684850886105239020041357121348745757642982902664779796011556090000412416639870239257708720071510691504373178192859301236019481073717564292156610646235205804518712898453513786359171936010337282305629515749339225299419907251647809557378840477462224575405196127201918657196523431401984446291861618820254342333118705245571091185039745571812465275388402824587036731814891399579040178286843284500668432792028129821559257278041447557770029365829185747605834645673984150541330202641006939903420748047163178877867713767404699874342798890420598076576745412513073368903685437947547771138302386187244942826383591474742776259481276032105995743086355565782706373274773315659055939265396243964906384397184928464115780714829493714102491204638969265691104860432910334267540728560553792782944961520891303678256555936737322772585440168325240506430192154642571842282360631471934781250676988764166590135662427170760897991563710724666281155166059939935848341078612744094617704193932061879340858796097304244682072803681065350593650924771098738468710362182270943308032657169326972767816103385683109322269990723241389401291929047913999384963506071539678360954200716722034860945799258429287972891561926722004242506516246853167089659841681105708850030936133417110570088678267955806086220318464424154849120605521954550837508587559408908890701097547479331774386994253850918071531087530488056039455166918612787607623841677508160768451818702190550852752559875973134216348808750798167174970205345600323198499103277525728087812295519328756343999658434534390127780873894249625712689394586355341342390971344760809653230921430590360729789196718447828079780754419729026838419920674576196968625265640420289030866331562979976859195850555454894174160942565724385275255325524194572018295158980118663710022842970503939412932442115358181458023781998884692678257357746012144760177190824627391674721366170964893937884172041830922767366521328836645421281628998880168465039267390499534224023660617180909017411974426487865517454417032140016866919647411733838332180817262775896404181850355578437304478823430921894633422302899842415956083184790010959507739279985092965014963948250182701016577966019655131726531234173753173521633288830790432794164540290872650131931245190060725627904780534115275577602990896493412122446827952686923098485413973699124087552253506558348029995027315945381967664490788398379243723170530371127723791004299523594663814617897050668594403289807054255190261848054600139681663877324506770524937326918264828196864013974086637750168618336269484436172855322908831589361944020684391293438051206279744433577989117350126655200722036379824006374485287665333696951865544405283314364628655278074956722385345840309187769318645198736665309385960323255324877983730954279193143106218875741736648488601815901482798578769068217213980339943415652678964849982426749382696985533540878139362884689015617565374135553301206332673430009213792337587014005189352755589995237751153369911688494567556636792763901615171185740806968933126051054522492557290482569194722653629442791106158866284901018038963772399694434341507922915945399888163931837175430794708153475159599816256474552368766900039786781106020765847401833019672465719700260881511285914241399802881194692335466355871778646920163554797830105034248000464304768273103446104820110820389011104188613125616192622440960711098817633231023960181420295676687665262396767395650033907411510931867455897363325963558175022516966407612570786207400147382769950631040356420052606611913897535827156691672981014759028458084075313228377151996067666994581442791727572417685556761859236752943198359893304037384776834468344409473525662684365174043456570031449604115178406911739132344043305139296730019489455342745640126175253765856831915337176860921626071226319013384713292448172820325997240325617644008149714784488128303614870483356420357849515882016816603953087219078017958788700106569611647909982466065330792554649789565173221095532648652684407939485271826790930205852337695620429917751483196978905090338964389184662464368144873330992254091318700868526529167315150391454610424712731895174628562311873662569299394348480096409190184493570140170161411283677409718292406484744282269355773856313297415362016080461250219231971904725168637886965372801092945030675049940974857202954799667827468542588095028253324034839367612773686447147501982780801571751652220723762456421087399291921056518432009627708697526732243589611292752108861428466345255079484911175415744720567463665519166470071275717403032570540291633141229873175653813301768932055411042086844805666686774766029061972077209186457311911883364358300133684170464283079657752304188431652845409349191559643604798836252764554036372487227819066331453655737421042975821059029708109296845062984817712237962427460642668532051078694009381824449100031011102158359154101202808598188607234598853820708434386082159554215470392185381653532158995831460630972360958296965138204821742569274653571776312561145861370298642906456260687682117365346449539294188004921185474767103544527261141869943714042128765424002525555721456321991595780357375459597377818803392057826516321400507824172099043904166421058256933688560235001569324875833993601624987777337055211007613245311692974905444898677399967202975826673631989442976135973756842661671971810517574988980389584919861536055810917291315835641232715773038924850675323046255840847346330024243890797358127816557579253929119333597424944804001208052638521209038987768761338720860523355262908853455883025538182965368852866854166296866598784710923848994490439654155293786569778360202664399360406310373647708455680294692336931227200573335748522199531628537520542986558206712924063918300830267706251807733498786112934937287719403706078112252813158983908076138671077707797556158325910756469384054521862253390036582419392692604728825276231335339661854704683715434216193621198756519299233423201024324533829512804834022871752529673606858842756633736216757604356950447029308632111016740306098459692071248180395473930895000759717467724468326785547857542606013158066200072713229489035542512228225839648116847070527198931736239003756856304161929686392150584865360603922098309414786711433459634744427183607649959203999291545734671203541505042537869155766086663475250772730316738828251083128964915209724741718975672741151521070547250663770100015793351282597403489502010629004486052945559385073544228966828435543798055964039188080688572485539662856887803762904983484729469551138440764989012896638555166578505094821834912820346465072920983061041013937381441806851588519848321829595074790018417795358623670649672729994246503712211018291795182086570084363326913655989728244903200827902037045808280453476296722858069402700326047959259696038133167136641857431540779818360836567048222672774725480613985453194184117364859970566733195708332612922563329078944165165022796194886294862368733794730590780602263751763577295986633019800402748084787546942715190035357862540573956533391548097058506949753903862710678674878936686192178928859840937608757949747980742154831075307591647382747678262119449139299387109629685628043002351624364783463459478773907074052644173969623772265808443599030744890509722650117135626293688792449499761840487020803059448141261651803220681084902322460256934077054692160312989646825388030462754147139529267498536850873976513918241278520639509938589922102911501918572327211875508888676041533319318966691534172821294843490605499357123687375698808118214551337013787713992731036313992115924377768559527966149526605013519148985905193706354361588944891244997556266895807523532520026503857991479285148596142886098112537529611189708914437772332787662572308570773692977377626636352292460951868921300644195120032816818597912203773254871040166251530617057735386056071474377508943357442988146648205952179374042449406780709147061142801191766256860186664468585768525271297921810174214696193053540720890737987429957429027274366968703716064653630932594993490881818740287497753191023634074920206617808830666537388356219093535417814271019814734744199512533440161126418835457736283024015616894429022912555191714052987038834404403193893263882334496688703516342765890497369265751851295818615044310282586362832286485514288547592433607361870172016123003889763716885747685757500014645801704173244756143721300492740022485512488771577235894742957960868927337636503910674795192466341798583929123040721016315175006781061755964218503859808686708275982807422145803041384928729267719161983785200888059935124324167541943977358020208203360384021665925993584462183291623404389728877306682577014669234022109712776640803494787175239199332735505088319445195370209164506711362768223717393934824909103391096920192686771240695399539362887476341406582972164618663389132195938546647779910986941077474845387914523664010585704570599484741361230884960948664901317639186918074042007303213940734955397322158665999422368099193331100775876346490759243720486926666693078760384714563378743485717040896480456498263013837269263288015630881080815026851928371335266881720846395287135490164528333696934958778108965128048424425258146172847053664975305396493644677142030134925901800835141910633374372660316214692140856919681901856250187756405861543166218785507297215165998055107003868926785683235488861785435455433579412903146001334565204569402653567071895126094354475220142491647772680712279745446304315766539260462292997827284451622088571559917763839954563499680808234656485663860195171675824463975467223071042102000519602998800875776079336531483039047060340433395313155403291820657041726756658563277600513893316591273382871181927839669416719077710901233468085645524453279966136455111448215210417250277229580037634875824317838708693006869992595456021130410769594895546619913700349164171376466412078028164729288857629455581247761758989282511321789458832077207697295269675959958446860274658454474814798866677636885236023953934243891061567138677190139329344168373840851726627129161847826260438796834966842100360691231637156709442340876438295256960768503719078114371203536949812787269600860879058672617472807512006402563380849593435070054751356245278164901812225200237402612237110558238485705604954028923861546611627942982072831662470759169002814953459204273851961879365424189866121871988648692692329552090710479968546721627117761345626996032245530674027112719547300515418236376970999162870416590008412466156557057183850566224714184146815171571163040866100810819212563617751394905922900686526963484518150594692919504162558832978339322560977068904239155446972966408777506158264668761444974218596102421598975046874895716347870224833809730748783632425826352482833319015579383053055205048406620149683255286974091459683135356383368123624356616460751318895706287948224515630720799965696132390893192915927568362451205774299394487994104369936921873308029435692032383125531703162389340089089369515324364909596281357713020134565930465902289270495291063874166776341069959034806700958504807866919197113619806275587569886871598589060092345249109469045692470828120938563518779923256015621118503330310852776726956301042959165635013838607111212526274236315230927674642522290259948028583166757438923554925492103992269568571928381051765438848589214669912557528608839361924415335914607459448117688318693604096634891218822894396849973143131139765738205229648115772751168519869059874337357904402449565883780251033145393447864458926602297330789650761415132802890245824770603381743161676948878606962069089182436245796405659826325212129699386370441533108900471727312267458268759733293257334073808728660588817943819358908108817040523307984213868994474583378383607358877651333052943958373111353236222778441565080411297145021829207551225894400538779749374448760835146946433811231915393070338455607446474028445879773873290344400358469754549433377183159137498798288511967741471222090338633302403664184784750878310752607529579805359674825382001374516442666551236246065147676129765413118288504315719370628609261139861643831651630156316904447296806707580341411799568254719957414091587680291830325148274699866243505282052173005492895066757216051733363240828380346484866920769034801377097396386445117384915410503445129065610114013929643592405442703094368471456743338303659542762665929939070679642151907007002180819683581737290438482177756423233868673086941580299272531562701425959326471864056659748880526824515503593278541495999231130513279140270085924277643498066392786397528978601832463759190138008050100307739207512229874066237660019786591800247193431516501987203535921740882929553554201993049320069829831766892994642289308865077451557778701640618067266123269558211906079060551362650570428311863208567438255895197161355561463001236319795821595312238942594141726204514440295851123807807078767590844758348485108407623346789778837870525453847142522661944462544546229348089918637572364892923045950109774414623747951620847151574939614902950459087363947335253747776007882963966991418782542399664268368372300265464236188568863582721876933897045557179859751458426570190184354823547467975721715080590012608277687147970245568399308900553285845102248229666634477244491344778593546871405621979718473143365861922541324738185678301896505803763334169425051056905403521801252027916111975002567124525452212989785251015550964745844643304632109770697367118932927398357235997192106245243483272619448210619201120537778640886746825824724543301286369474639242329248386832910591352464341206013398599610584780887474206511514305172995538849176881026092282299308209334443336756624827326598600535806321329749336857067548584917194101540333443870396181532862623899103561400837117593361446936526867117960349241848321763143068524467817300674347649267217063660422243844204441809566223326758499235867373984065924905014597353903864415937807587560426483546724696123116193738673982089517911288379316714516518479387915861647862291653379796737849814325033123472965869352368739700071160499255726885646630248599529041478915503586216295860224556105376434833590026231341201641291538689009101835701038086642590556251173534353797601817819653169216996575226352427667863989951282649260466176241313179131357017942554525957832245182765934652697881169130248651839574626987328781756564688406584496285939937836770811441034637054919190387086605236135681853047943779083381806825249023509177667573795701260866889374379447175194501772756507406831586160434135894880617494082184667197289749230274379018943338198600636720352078669529400478941949991179468278084140756372100555373581387402830755311614143322588960848881542973017550450163582601269652938528928458375691695453209226744532552330118857396817899143893956165024215917960508124377685768393280887304811015098738650697531263238324279103097690372417454799535038016377903876138858045843033845877531688965634710788639966988868886092767784219054453931141992394945152720777066070054256329544759048289175307678982024692797951382702688120482539177547832665567585618135995709767651478994537404843929839978107001051104907836456152960625713684372399347043023239755294845345498792130366507024350046349549150865815244804706441272942155041425273289342632608834607207882392926772780474871223475163128625143638952396652446698730453444295241756480425028049406617635748911502906559976386595653269654145395079219356922403661550517375069244444899652810909953917257730009541524597014431068820717005929862512246546429106374220745773236562367954018905961869547124859617191788925425432352193292763348599650145324407596732738908275608903028828089841725055868867217060950880123511015032863474059401888153923318612637762021402119125484722019871037088558837067841903164258111173675525528747100714030380492149016595720605137648680638085160357145737743517116866431455432016820093629267815762867320449140110478817118233681274989042436949776128227129472521056968040219401874102721610398020844794479313473212020771365100002133982741419407595378229337677224215081141016049840454503045903895878483359693047999591841081771721233585433693336346021518475576827236919907211085331805322355138796743926367671063289063264887327494622376983411613195824435737836046136155808030109939079060473206879828829202769393471651550145722201277606278862542033777100265209076819811174647865507500010980050856210249602488650636775866040794963537853291367260848985717783995591236914897618942374258135544959780194835866903122837671813895303222503603273077851851659323667912368280769176666635145543869568807879491897266125775508590329702856556128759860567962190498964207255762426689065856492543082960767674749133152814042643416042392894872365952963342693359662375284180135497444195644086784883686417770904371435315696915396131151121684951182930893134305203758098274149108181841611482845854781206927796613561602272262694313532871087823471572625666258593523638835019409828678336205699194953750768269911336287791717788222352344418685820620675072047827143380627388746458063741347108545672137243850194668820099262127241481723779445637903619703907755840627457268306405788477169836310555764126877480015824956877691989584499530921148056573131232069173768000896754175486974715934105983422806953414820531142250383777814300050306417278825009836115517213364370237889742580154082405707690198971847131844084651462838165072329815517675592973085286933991775469219907027506806552048072442524736497989358796529174534860194119372169653274429447699618727294877926974605966999888331588941826680700331320337042850023097151236297070829961863569640482564351447727686812583688485982168193179628730681972655998680597494852557572111185378984476678586673168164481159244210843586183573305372122164872330632838642941770795744952073526111525241943018829745740623337686955125304015498471239247681084529360762114290987143787842138295973766284231346923041209872531441581851028768665010744148715280887758592333014472926891393287035306725507896835803554582584225916180245123097495214947782326554638089316935270189145029580685429260222626183159934358668598390785111066956705509191648746837661781326480044111971546090078817578784404991965821402089974042031023288896019827428343608761500658094389005763604689549691960877438972146224383973941269859572402021445446110981527662313618022587911577264474801618671398699760838678410479706090406976326001181035442632386704562471737720032404001629930298746690135521592408782425248561418275438502044042204276603789134120184819923194333075244082785562741303198285418202006364254278900607661357073551224464847108059902326332055663466829455003171989652436719769788682034932001769514693324258684079474938324434547965345555169426129234839072688424122069077425128345649300302816874363507387949209135177143019205822315605567261681283517643201716536983965394758224005521164106947363615689847862776209877710222622654575507098138894908074572702969083952394860451828822892845637089658779767942070078641904719320822868571449916269829800106466213832455042382265029046793385264859237071613354274270424369667193502419707885627339497400285282864089568280729436812516739017803096071431958260910417591082502651560062769868492470631641521771774162427309731079030905953221913504994908984700863879875974257163082447018398403703584463937851046293192476618197542029983121433658391301848480449207809021966691214798998433702323755633278460974062967807215432908729284910837418510514564830052087416012263910483155445959598425618439622636026951612030500149542929022779698289163693467368068989806669054990309163026285955868328066812711665966443968942917901674940275552958676038769185847920586158848253967029125625819899824649780096559547982056550356285944375160304194359854060111957545437720362196259090308776550861629720218494462663531696530444166587615426888076041991627885658146362486218097092869419958132272335832994839178241742533422154950889536640027639714786889923815138850064595333288447485470616828077313970801536711000703349080897012452383757058155684581357147609721329136856880647388281244854992269009911462178459252945430592415622299552855367952788221396707041974007821110822514445781625114470712621682495559758761956840687875807324452666296134358177728505526452439722320203552549475342619957903855264705491116104903468065984918752238030471603892669730870033698740640069049031068658411842174363051659063339447456924096016861356784163782439395415838129900890921042003056340588126754749220317553194696594348587603653810332543046204506629769963916006959293092888469893992870776587065379863209001330289987620327101702407556119187249781882481906543779675360416387576065731706147277710509268617603688293825747446632496894898401623672403066528202379729286152728849713330508632483798759739369006504847756254223411299703965188999240987948513918681132947296718120722640010258968062435588837798065119382595973839739226925672699261100091093436631901023576972387570922860897283704256944745121368961133683721304244329132810985411886640491098113331120981728074535081267722395697113352882462384936362744845709847589351042218147913687562620095848491119751622828684019273274959873048930657354163117046962462139487417854394392347010518065532956797104640028892821659201721769059999366290404261187536975715478886144770475195414820186892329830026225620121310317787442183130761048310962824368870399093426191820729786690871402235125313749466565530044360588431995223743547499383123898694499260334475691205500109926968337885045611755594628321221370514360425397388676481800563236486567779202288717422362929437090399890909559300739855523723654479437331961097779522974066964383282147300740027231951904428879751452753792427153196995504968980826845682979634355871340514945526291476764516969629058870552054994290628002521827846385156538944847389224784817271204648336383401172072812815741289289182238857582730122869106282032769286176097797854607223186844879864255230502381591976093880052094372151553295806299442454096271588018114573547924191892901086690009765817866052565255211071395638111063588659424508674543687803610489996856818165670420383988593603499765655545109543863046237636501023971338245949903774184826057273750239589709849311681547129000416503409813657233164218904080859218310645275157500797465524448595980117263937012862262896380997452303981254521781305397967427968627029937945283946907955652012906454724131112539125918015815100318251275478292049542822066989117918194615174119217899164458068624479025930932947461121458182168848915615381924098935597704194749566852121116597270711114655668087405761390705724033536058883354802096381184547752431696508067473377844746602068006454620792328449430773269431871302051590932907596159290669265789796871279253775172510748056117344452941074183474687086503950672216564953193226041118908136793566037331049855425625020433510150767100948373886303299376550953352935319298992982057684845807521483434475897386297171004726303581997347738126026524808336400739020722913115684085192197022199581301098518594877618951055274152492458491300031931731039899668863895455816762023880130961253268665723721789718831728087455864868185891231284154050974518478090733782562317999024341485112987604586780730288516018997675433539784449415763227087240740713562373360954519900241172941502443065182222914896418119379678196809097231148356827353020259835635655775505917604423610635862959441726080124220296774434722112207745673074352025385503840552383512660875460609368982981555881901044406681629922162183845503623937423205294465557070397076521108964122338151459880288401781339920714589747980767270192959726843068576073055567664844259015096596322116076539978578536018601399866932246477434200297825167306676731662451382029363344161848919076882171857466732654902789944921896539045291958396680315033899042439245161230332302842295717685032124376709494189451060483481898282746275355609861390163407033634136538510574602169904076544103458167329625378804712038351551327483787193306215742273236884608939406604089052619788002663476367220258938709358653922608790174676279044097678682985318289953235474887037863322878790066300319876378954033659727591901419081281866286678836362451877234841896322151025607802189540205066476386396183675780100427920574400199568760341885755710533380876409128531360089544365193114360129454511119999760109137180410124848781916535861957788447581094577235527462837157381433859163666448557253792164760963034285912726582256766592989051934129268762517680215314234979403791476942285502118556692543411740019473324879842086635581773026209052931880228655117775138556455017044866088571649728304323711719639991459325234700681465536195963342113690146794257068541183419414727570801069866110912745428553657878122599491510711275436344862138077263834417473255478044018074315592419187926387875108732089099326552342808655991983527667826189470525531064624071568483171582034242597139706789435131374784174839343312181279378769061182408291078907263740664701680132321477627353773427447532524464518630001231871209533690757504265589830687335673465690997778514197492847471663426161141483823176663446575626589857528489161483183347240999664959142153335894353339068537569877545474805814192519243366734311821862127528316305926937182257191098102058270403371713623840138438709336440183451097227029408037837677827022902322815285737242206551002665931050634614063011752351080793023650322836705162440406458372933016380587035524643906906259691806175932011495352155214019553544828426670790963269982262293123425291275990065843548807181043412279536721606884415661839043181224588126772572405659685618355703956576594461346586772810933727612161773562546302262261360757732046636481114056712017024798281555158616742490779832048857635532420597263709759407747789214547458520034324097734651234485785658805775506934122470744759983084093381609653250398888263363069570189310874666052593424829337025947163013002368584341005680345296617465457427726518196324443864689943003480879598338437727249319854869521085745420233423516695801268236546055852802067727466514741128766454570475237141040847679639636193214389536016836382579775394392164246893152722406068483659556242681814609122965538524616916161006277528801724519560521078899706118405309052581334720665204860613985998340685450641375875705732618215371712407135444103739400324584833381037262886434152497566184972247321340285749166850218049803491408413319127567724726281380840057916464516157826404490946703309212433824179756731520761747933612882287742538464007326831114066299638828144514958831033828023717205205357076445954926646322233853184890882357455486409299572671539542492451897262958891548610135788031667433865789836524633897479882022273887359872101274349410873868249304564856003967986557974307793589510369930400961912934635053337195819225575699222483158301807252976081972626958694974578021304790875371078586209471752232673328335303891157567201059450133781444365717070859213260208662442293219034020931752285002088578814361525768518752931084400564604555245911367772248667558426670499187643775959173789979022443426753757574402033006547166778598809578965879040948883811813139475418873765324183405767652759470306673599750594250480514513313314583434297447563614329396598751072307643965880926146159411732244697518394926082740663128786388574724682355361555580288873280713331713341258304811670875885004861382542482301911468270234930128558786187969320203065675716713827374017130067379962550186023581308565920834527919716129464964558221389697534445069905152121290402623885545788150217443362648202434024379182164344163245674718048463163207470456135352941407770708972749061403438438013247828913542687911823344916194957513366267074708932037142265124825960207982668098106513579412448336135739573260810181335680939021127953838144459944353893764782448019332558983076125164595829276550634516321805888711861501851372065953577009189349686706722713624961174016665838229267518494613128048167280420840421372099678153253483058250612461621929936971271579484688654469369256973592364635274591476752151801762578942200765086372901633259044081130533053984470010684160745466441483835298276264916024612483187427209762351199704649635011251206328847252335054256230373837112971411029215950407115326514162867352446839330881567375039017355739340560286509059702555776705448179822921998495640625478157912806520799898033906033586237009724650814860264377434716383416437684393484340526468497273556266408928710506927201645645351634433414352623051886749811767975065275643202547996753368879833692302114634656216452913155474665659330304724878678485050961294631324342026109571046723820883349449340459087777630721755940452135115442271708371008448141853902937161751562652367996421065278726575080293277978217403702337695196934656113936549059721193780476419212298922471513105442958146048488223981173253869623845305101162234559951617443680607537732944917408232372526747002271364645046318647873800167865473575471381479112888743968344213353338390929508860801849510582870141731218857895338938831226097478882510367694446360405253841830754059525375694381918882257365682086402176919544328782379478546926226698289817979079642654134556996891042735045400654747402337386227123893513227441668325069094908555810325841953263985373378344001044075689041166133707488315880728550288022139656566661843558318004604145481434995614363462205595931314688054859780077672896334813999340602595246165838361490720119559145775770875789956305014890169586208670450592382970592382491718285739081512472758214940353400658128115436685787883497755761089239069178868076692605606519249742246616918748550573105955105181120110278917106584837843925409092122368830143904434414436498241247355211265941811973495922830284201618557667114932169060884249585826977685641194717853711014279177437165376020449269053979418542762616244195664757978684338530394719919487198712637729609342687641712005026801012822447194616701670191068455998051529895194720435335111895132922562835844940359902128360641512661583815041440741564229963060227510237374560706644864766458535472027506541987154548192281120475290068773286539837548425449344055126983672881206190338653548543597397827091923321427941568401592861654392885034580642718769936233519916662270223792415616474427014718135894141423872744130821372732424539157582227930162486778407974474586101591887681645471854025530562648974133138251785968234838327103178700681206157840178492495532867551354036167445717131992045660809402235450376834517840181101636235992375782185682675064520274967666565771901958193146387576071961563967237829304883811538585549561771771289945863198257129942640312260318339913789055056293791259206957911608436542621609065111112660366632188463863346826265605539392998569700174958293356786240705283559278471572649516904176163704508303315056954798666241838117713652289724999260180339690011857467895100771320878097276866390556295711842347067233957712199977790591694368719665061407285763896730071826685013970099389077092642569787822472606501389622286440944516497887211240852385391588394323732146500168147544245161157300877291565424356521659366162132413683290953944804809192809286851447291374802890857159604065276264338671358659603998359826427694313468175357208071180946399026445135902546724670346767426218427934059165595422322877453165108038625003848368208170121931581402744487734055616168108012867670458682886376976084958719659402987297996898536387292808745690570755918452951931477856449967532513079491539217065333443624865245686597485294509195041591433000794109822106398987916573896360416432105679505407112810224430620013131461310887342911935839648409091973281880322412094679669465323243596462255797027400770082308428894190491769749376824740283634562168240230222229229065835549395848990598727303632757274784561518027318355628449157820121670000184775514912534754141434158321115833219051756803165829638702118947644674297014329615728283265676892957633641814171736356996599457947912637762363389850481169824092447871889264286096772437050127100096745961813690646954618734586215880060966039908638723157911166227336510654959215512433465799092515532154914065706484686022737543830203867956319549831673845299696797602667523357276803709041063382939448317729073925397907768642924321622260092113025906325316590047964490245368879402200701408346083780987332675563022125320403967866500336858229719329483985542185514680055035425637195169958212034039357946657966221411608918680840008010865764517189380551979437156866018210712893215593004480965239277306816216500374459715241901504744668285673528955343176660333124410794135444032695483699652021039665329739449817733009864487236843064891866614572395038046690027384415605217157598555295264475333509001122601378809388477839657875154133325852258512976265615432702556174680726907361837003944522023434303493484648062486723326466602153835476697316142394534091109037928981183787483405087414694338683442081419598390055336806242819369747656317983099748784624913729826887445171553327994473159912126586073020087856925065558206175962485399301201446896902516560824040552427423547120023366988628330742234244545274716703515739271763917781176669335755373770257373246460421142805579326125060605581068010403589805511081716892791777715197580574800390984359520616923415639281614650323534394654795942401659901834346748555451596940781157866491412896559874961957074308192852068059216514893753160576487964964700544933969421343107238911145108157732947405972421391055853190096366206349881159950086702261651025612289447575530082677132681834000155979794080524557438430209948340750933011170399758597346441756611731552306388518271702168261367556502631923696680485770153481201466247992817847807771304521527338081320710135115321602438596983230617126741930930734812713237994664834021264137038211731961052982354922908025795096885316566171565607090008075054483020101850178930180847437161117332680506653278988899037819143158992105852842023482748868790539774316785109851406663288681964562046780643480405732120359190093537014072289545246783784441981722258127391711510836168980894612596480288176101343509821337097141562471282957882482341067225768954460938849070023530917882872552920103242554167113017390578930735819946424077165250724517084121236093137840454158886026262220915955537144338216204464071036286093776035604427161772736175981732278276452982754882513676170503223171405401737574140241698057746095717771132949863497375232812840309029401902406529053117365860828134008853851160250884628839560287662642438143194779408783439152806746526246471109497808268009266862239571512558788239168468183406507154713171417249652553149323371715759573648182169116030677949080075835226843399802482225421133351721197672923511451427277093798657196833398532164711537814696340324175151724848887079569568821387299968582089747114340579771891101919061505832649974452222824214136260786375654087358151464115619009734606292629882678674600313854947873693328102520543669308605711927590306076860243463044507328940283519423941894784349874759152742531393741894398620337339132271940881851382799534083515311136132726011052298851229895060237276475317498404678618015261235188571453189181933353643140600674573444688031124135494893441740838864280206890286780238350926594162909235355664277311024079053719243781455640993690224234174490754246556067400960278695013516090667621338186112296720895070150415057595552690032044356309707457757687223429288317814991908240993981311546821089554571723917316445146825410671105663326891085443932205918326787069742176571809370095478069587858235096447114165777662827653313579303121584175392005153735218317874632635716762170939332885073003496758779359122138568409335551607751602939190966046277245008722002607472954565068209199761698599754029708156471525468760817419427602669470676881912876250301923645887858177475304102986084916196115727499376516249894740395185632683348423319134149054078016631874095527133586605110079510123388952377588687189868204191954237348479965306160017121060789130718654339332042116949348524821828428720399627605168073912469252272356371683690299878897601877314030150514914976899369770903144083670714777246354995932005756107585548048414006294606598316946959513270398191332820006165220104277635157268118204436261027134388143127186162012386361617890047791807001028012131737369266261863983307909034539214783701375465314126695353919652032927715265111446146548228267302616646850876349351837708522702676009997475541702095049142626850240491652413042218964028447909304722907911461196157935981840864355927564193195870418104390836366479719738343221000567002534704669355577791394435805375002511724852188512516895688689604707816391942242320385587091553326240811316551606117011449791127834846988358411856485249714978569569202821620301027190263296921111876925415094935604994019040580911946635712272120779924586672070675990908590681238575952944442801875016294207948008699729207755691283675947571919485135677586881536475021204454531916002048017329405235734452174796405996624266685256753607012114389149254549388740262553160792105497015052973105569521260193529124162559555262473435572567886765361654527299114594643058307725130247585558644539896438933012447524484460781792436866350071622282823053356647630792157812684300304954467947158369288369998446942790517450337029044935267220850394781840437598716147256537285163610630454566873878225261547267766356982904614683583206282592417503699398315125189848534514026110200179078752587520143580672783383859282169411715914610706796455771101340594988877860228695478657588586438962003439423791795533712756076873618505830035716801072493345575736387575395051412951626215237091911913659870971776524190299513302530639132412796339675828742724452806719182835264696210141565559119293685431433772620587270300673758712516499069406777116014543672742264363111235889335380301998924516408137743162645548088067740058249015055978191897207474549595007309351341062915281542142929144806602651917639761396573847399942093380104324976247166631621987450551171597229458348088779357619788252959261050647453088144219126010491768104194464715363821640193471816506422969476325371340722415801485735770899036047796694083816376328157781692775325674384015959856380604352147941352130799695673241809211674588755261590783104554217694518473551552198071404956557662691216382333450911178165754762390028597225146492291609124051702767750503492168470992456819498877780621569545462461437786357884041519826562014289803723092997807138565570362754477968379078462194358320997412982638773680175527292302825406897416179080267627429304153513556331806366940974938811493346250369299588736727843177966399300962375606066531160232802379774647799223512278827152557350802059186929892586789300873180703039603164562151949330263161007573622732675632218795237994457241810361911758594496986292974662976019774383868787394353583288104146324571869699788125289498878076330606067866947475638648110942741413466332392347195957240963218370583141884063218268188783193386835265410228633017441590517724200147357939383650727571103175094883215079235692775214416390562709141732783304008539309603318313354227059564817015818482300034316704084978133557127513912143408973890769316079833322520878453256009703491561808658020092891517918830745541277599548612155287878167607071480818271066018567001493826041839383098567037827802330406697526550550819169534130184539534784619464138849135767341086969188545873760182133374759193682752787677989980812050631906684341332191877883093441777611106673860041429358674484846978986738820252688372373713333331915630460472403759739166752887338204746534390084758859352172071281335012054971569260570100439749592006685103282076509120022206817767630737609545219766692263350798872984015417050795976627223765863251818683968448434470404049702896227114549327196203923776000995048772977752376414351954535041379881661411452833559874008686962956261902484249076588697361570096991201392795993770038069015938190044093405210479467575400325421656233179060820711692394172283000510296287752041360088251719731992261004187074683423626477326544181764855671787416453524266931340894782880731675250537247565185553937966188201059812195058183361027584771567181321234874218001514782843354925826018426029228140749814570891570774103387111436307311353218778984753396423546386507880119285566243131309639698634085601039229025056290350495456480686914152449480868448063382494995420517966535415619784235047136892135856142220682058705001074898172868906761029562794456309673490231270576105052255030531836466066612446879679549802579931887077717621489912604436644015448359290760508133969705624437417504335587465674908861607650304467538381338209149657120808561863253893631656220457653161401776559675608990710695216407077598229048399578718851963183465970216458673163443863312398730568417325147697830467124626254745736395796434732811077496793288473611273804555610721972928958572099535380886243427128378013531420475593428147280473082073776177988770851940641084339561583132162126890320162161956878187874113294317687405378589032875500731348354620672424586580120205945057105596771407579166977910516805097836528981131602764052781531431915835818128094843542558296041550260009668930405687927329307629983686206227287562781463230888902000151809472115735619564625087622562928624970310931374071035062785093153103481475178335269510082864263022490875020540572559585175820138369187944112687167066163065966072385933490007708638353666559544295569250932089763149268922308277132043000529917551536105347574459570309956120417491079063663324601459417331588079029212746769602207679512105409658198198960626424709935984737335417774583314681809862606533563449642185195576181349843520597052635075635325606759512093107452908774941221593921868763880071881825067336942028933053560364345849594915073023408237667360226654100724221544183163560129350663138650710019527561574971057880944260456371204122859438269554133321511343398181714843417205071624975987851815849959920326378025198706806260522935081500220085536775433205225272812368811932311305866970023826061332026138734131498248791220197054204040708766953323200052830476180083876649477475272973558699289575892643633135914715404433974044810071218318683894659548409237916296131053567399394476939460344809344599883212425266493309308950735147949810745369739643924938128103029288654586201525775671677668888169059490354156601229244693876214587433154149297976778549608162540472832484577887920471819346949230319213868755573567006048331168681617643646766339576778405960388696187705010655960990189563437023439094274609423579368111579502183127423269626083096744461629230200391004401286767748599193075456732492639857424416962676533804521792797083723612609558492343766737578977639110021110256645968083947337875979063423666152280052810761518068016506408972868376958046898335236666858599161507507424791318293779921011691954520130348915169235199208597307409365573250480497534855363278085103742423677253627201056782744592745064414988743802437569553192630104959383842729380706580459862868075079092046201908482262687341839875321322499147735573919716411340157015997033744254033462167393774149346606556528747622732375452828653398972024523124061025627132722868556375443510988267888379689323482319090880169789485669411095497516736935978735582215598887677141510445584945848125596962613819843872453248687133965686396667320663666735777933206617217148046854843961432940631884717278380500506173710370675835010150109172977071243625159513664707588692582352032912878890775927247340715086337162894371042023467625323860233388167476884956297459970967692794085195700406412571296312693444467161948077493454016911068816642544158381804028040640308520754831953982466470898883221758193408415405216129511862447894198875865587362187451043120495538798110741098291994271002122981395154521563953263405096179237712648834669473126808446839748146510800122231543758899882468418162945693811721969992940452957635332052900648344671825355974627166978642550245352962517722354531388001080789107952983203749398404368155504814987938354845075914983814698001278418019560580551992743014262782329222369035465551831415608766332910286262972480705597614415912013697413782042539849176457632920730648088936007184717770467537314328054822565095835582624342956276520422015570283711508051789998137491018222277772403543510323025649816169131223167184649971393057996514244457255681560508358717322301424614274098624120303309870517880010730155057916118011410992236807082524130817869127813849767350697447922272870947533979242162478872585327985715643111384321011901397925432501320678471031522594078445181928830801745763971742151430676394327443420700797920208424904558222799255293381204018041734971997150713079341437813546886737690807552384690360910269155892971301955704870397525658574856510570573968351492162557050479264301831083884322479444709324957178189172383887929747913839920656514425491905327790942267959497445761573616007763699671386472337461699319944670328852452098124595890304023010923156486941005636391665056830497137601070581155020857922290938352048478470322344164116014832143759935467843798415963490876543163836578435002138520884771005786627405956111825915869227368518932981825058354943734216137824907637355951535145676002268800089590061041405436288586827377788569261162147558920600226241470183433175649045090419347226252436125277190814735681708129513048283873202018337410989748812827253405863570917064887860767910201607009415345200077244952811185933198055687082928836792964832440519894761726699684829131078101499791569993016234439376781252858213782456059595696737406257281302335919490825063740199130991567804775254960376703564453742515649548071434117905160344636959000949874934969437754692732724333913489945395919784409871760014104466825741247709901848294649059813288166131108909553343837732457902635237748090711195004077929055705648163172393090463347053017882217348329265416435487563388190963673809204637421938809222847947708939032063940788042219789891622998736106957709119604823485672355663137989177724981876258410966097936896075837041604155212925636438973395488183727083476928451583902585670221825725564822041247029433811422781944154934199270720629375421423983467368726723805956648767993364979873067551803581979362230921689321252425693861583061423282899983558371768153857397581309454662509816953703093466764199118615314866670451689860827476871028471746450044788460548636592927657108698994936262891411496512161265303302168181124874296950342343625755283448209789723265583866357013759301585666350017030041803929951098151654472884650276521494176020537536716477337548794418137171822557964163477272061007865974666735601921062899080062358117170824047266319150141322617577873477108482464729769447940155051991734964752215803991233992940772098653713103657299260605526504316848217820847139275858775638440538206323991609066963926750530559140920277435979468696846958187328070417461688891398873527854721551620840562185624425572223860366881128533174859582046253402295955226634416805133683842999369745000545588129324752176132892459989154348230102203852159652352761657123684117024285551844610444339482664139107386392347987590872287939473850877924483126317260047290481650195659219432802911189137915024315272601874056175014070214510468022240129606847753398325571327842357587185502643581966973602155581572519868449873621166547178969570116042085348167636804345245042689507745711856558243693759053321709662153877855560361978983985465548674282567978260142724235783517754610126357110920155104624263162865330410966863021627986154860758244702584427796507336384044963740254398373397124509625608498125610807604288281571802682463899464243542732947282270142521295315272873231457211955848671498198974423188635460323871621434544365376687112300562531950832468794743374065570786666407489802691254498623188400608672029008525631439808762960294842630740669838753760345374369997026355501625596745740073216349498722654740658932737054378345675336097864170305725347242479823889466755825671604617090248161695098713886612144184012771974886564114384590317448587709189821694643161876872282706534802269151983836433291869323208106496912979924035322756901003308003642300673565949093447208256721689748646530598251014796839579547122052239150845472310301395485209787929931467567429438368332892750754996840642520095813241929138115312788693908932626230639808019358215148728013277179402402276805455876134271099321151288791302495874678562391740806181646382666079294727747231632050961975196860916673449981288508109910217455472353783216135188683943225803601040662185017905412384284651273095557182684762297985768883509232459223591497493183115623867272540259289002063345521319212074269215624249766053974144801858959432092152053464327561045497104792598285463315793014680393461573071616263225977327124890663276879410186571133044721739632900981370288254656155349936512870035888409863455855528494936702229481695358818707319408997553514553616798949744175917230129064233454112549871650173248315175320915922298053519427738799733153263609060524980933895296877377538474152722434861092216429827996828255129757200236865541531020605724838884270945108594768217306549639088684486384964856837981368954177981192655296112450184326911161872631898901446401050513795002244103048895997626119724521014459530865180724389194378679334779918987755221993167621583442563295572514432148518304534282508575925002495088067614418466164116255390826998705419090525962974101977936620735650782442183631738224899041501208023491823317832922286993329049260927171657272854222647162860164973195811358475587520659066475291607487678302636201159379106026640117113453802434287044152233502728085045965509008378606751073601608139732077977225712932763150062244092022954815146060764736424461714104444456487495247920894131087568949348138524198602969019044751236137310726204743311735854202544445641079664860717790803681428017696362070717557973558396115829862643118787781875767390631322231637779179084246273941710046491855857061252959995694385590249605407067297102875274457055077202642123606026757367100437913855601545903163554995160841456623002645222127693542593157985659772737019767737572028730378744419962383267606473009913262675691667896525362044367258003559712803462446256439588501191956530642036316954626360410633412441785468912070686005375406298486865974912485232143270722190518777971195397342183646457509026463499263513523508113122959640680948340047238385061748078809085512394940303757484298628369938819276752432758028608574036896646153372641175856813122525478438096201227686737990313541203789473057482473526494951192929859218939212474973735984657616902241306499558753137215866444754092511002879192140554842727873642587589958082845294177300004772430572213426791762128912350015007020615408431034720505627238701949524981822766832217393095967276152786193652174948427497387008353482319961918151191873433742851072843613515254977231421789408171005800229635628431193989694743221884529509952982462365927969459052375245716100903345554739951371797678908917766333844938263277356174430860480097454040251831247382424681347068714331683748791729269197612652941532786471677315602350598451327357133954791281163318593391665550162039001809060870912096874264512978690464281446210327975171854895746552640931640741743682516539847578168370667647493604096203632872607775401077111737810752412479767028816345098949581740364049569366165314022936514639537820858555346087817693966197701360012025912352798073187635456445575347125729783215267128699432279997429995568490543059888772717220756789576364485242341266058881512428500915155622829675511618558578310284796126885743158560142102223796837884610670932759165250301866740046167574831865367576427779150394278115220084178598293354020765860250200316774129254518704968250312978368956196934971394926944527358778912618075413446521622687701326053879009207066809801987389920923315218549106895000326360548773475716051690262805017969741967978215236942021565599166792187501428497362964765275618927882594388956557363751286931080587339212245668174862464401610429485169612798734100120853863621288101552479700064007877589887278019143953862062317149865138554035923431762047675473842066734325999229026341682015931597157617379604948997662667458124182245499644558486482046115999409107603109471958874192287569690588487133614401223892764858273983030734823193057252050980758737183696813901780107940600804212690115119988484160022680085805571135265567546363622969542232147722614035207838437103330351617644351995943647348734557946807127502692022628658657011390330652384499907542051576074144648999469833172814022158177623073706720494492978499135626479307174138538859333286276150053443746497006795962933933181490844443494504073815596882842155032825616480307526998101017444839459082702700080203461206657476118245499333766165624167860164238532128057515717940714198190458329340363493173601391205713805742144829022219927689176564167246362193467157706772266766580049802673213432987819217884964522132426097705481117097144776022832587204214140198250271564128969873498302584675269962223055869440120614776281280813092317053661032915107237251028324469923076518460653169528687208872617101205906764715217097052654209838732032020411869565030651974005233733534788339590733140682787942502499085747955142987781369100467032418945377998962722214787218470102234295664531834121610362649287498649354863150902013945596547253462752981222846528953381080371033657775583459610519930647504389216874418718592095839190184044926730227802552533394965667308621051061271011885650056446214412898244097031890733048263519188810357313782052245169594902067993877201134344334403533198792830708532179167824468960459402128369224936908253469070619996268836988225249512921180350422773572867271626340617732233448662888073542071280795869170642805977422327769795851038523466205281957420239167027144177262524511723589918669829471442575462260956744607954661617047727225301723818869060893889643654049887028317178879676459237566898894740791902323948944530996085424214311605375442304568488482992742206255720099956604190165161082013746196428002199151357432591842974182536062473032820325419857025745617114824023550110136132649365649491356071983018066152651438497713260152958011845211584916049725849363769587860806796362549080048689423287952577678350320787455291413780123055392559220315298784483792607937310414743734804359367809054981633293409436728119344906357634143678293405430344263317033623263506950919657826531152899703935572963840854997570330391228224757671136699212896874718218089107820692715131547843866933708138329468063227869709976841972805523415356469713724897059286901423263183063048044462074921555898833269755627732432046204818168445239459687212008203910992205887843508296342322874690596026867263840571415509626449242527848997475404952665190310977864009178164456696599579670625831103663408167899825422837248318351904863884818601428026740025348856939565467658121470251049153938350584159122764639965785113068604268518968896120912331757156894255283450906188673817096754569007259077996081429083886812714874066459995588107009460857602964429621076390738124706193051361259982165463942059026081666374051906519587270458643938034882067725997298501476838430477576638990935123391578578491889961705839147164915414290504522386339375786987864133524576925346330045698744733953812207179012252435572927628667626797081591279648418756080129566550972102479644420997036383674480155039663958441909745714596797751912802760556497541324406145837529378633728658744760177205985086725846451574955279295871299086670290862881992349930660354593365535747663420746137126560221087651076560211719361640262473245583155650409395824600304314734825562442681639313498059640640042896554955018148525325956053216843692671883336636335660663195238153223528096440397821514450405834710117511461187296748097382161004497110707240878361123019227591092841044216211797195915388621937212456970809420708602989246520961427384306007954177857687751866990470079714982262323726879282384020348411118126591777803954702080643267917351121459835504252501128822883187101200616477772183779870560841569496435418342828999280017863060985503899144123984957303512966517675159270503961177860440592683972506466985392080742288775404790084862653786961172255072022216192665876883794836180213067632316969139789192119058664587054330222479016262459609083123796183385841468216497966433233124105389106341195540703754735830991207322206234742184286211743439246044063370897781855018112128595913973573544558878676635835593481826643925597849492703713735233662894906905175476133091104917815430252307989789776583704435149164915703987119271606527498064088744670603986111307749448190043252321556681659775900891239619214868986896792242199093793160967578344408869017114437530268289777760808626057369619149926488247376570564144752094436033604502528321906940062161547228584760444205323195491163002338469773193210205405498912009712179918381868300269352045688541335169672235612619525068237211783057986740108451389431610634109152298513845552565476818043135252994695427026691335617999898084841680820578207289512222347870374790606221166100911814959463380469370543897098493667692235823726983863321096110774512727931306010623282235804451205909081933796659746502704558708667633093168305127916505328691302164683176907510076022146759341944006368292928582045944640747607133916403380702641528321441358848802487566552225821824316506066097179781641497480259280156823290182143911006396083016468095459359117484782978306198979765132211947539284231368243761975358728305800564309499120867951816509868408415989288496512650310297150879986529794497096770063142876642983300750992474982184234039867630722339173099560194391607114877720184932892331528749279653466737645732537687974233453820663888045044475232063759091013997722029816986550061501299253195066944868459805605261691745133446114279629492745111405771983085841526848967251287181840192636334734806546088990497786801564776135210703509647893679111309780442219220576284461758595699134360574647275783471311509104021943842137924093871870476294980060688260893391283302732558344695147460621283046794383920034041533617866750301413667835799153330631875873437062912402509511919250871288371827184277216206312786070716064727732381701185515273118888266153125969106712242895734129807497729871008862734792623157315190691270169406093000753855092081028605497119260503940446977870043295911083809282060865989474969628982185120123271175630316974141885933383902683095350665476045238721310424119529100608818771527729520819070706349543967203284405320200792151060860463822057859123849052731538116937527993562390208621879378091006123579727306197145836557753028519659171626167115827119371373840921926752586637237514117644125409766201248028535889216594610496027823186805726097080995896608669791101156193828097896404587678163608079511241152707722736477915892201096118012419824008506652188839408865102814749096917380400714026959803775999635341084316708990953081892989463014560395005028882241824150177398938703030878136235638314904000625165106267884487752618825701296487431535022028606747983085609244873596899923763838012752117135196795497878665093134859962672549879203943481562595265424588163439108550386263825456728950644805289658063787431693956313919212931048163928337971165316080141558111990562422075158046858214226997700502653727379994918945610076128693265835725313153143509133260576776575365221931968918432127677952331479311671414066589600712450217896636268582085189313579937424554858197687057468157039699431661713963437939359146625321333197118825084429247754737606446234320582130598653313562943359117838276925807024701563655928181414626742013459593469157559853248743070355933878473905689057293724909369128022260060479672361879084069558851115569631175478380853145369165035275823702294503032750811101541644030544523746858929669972628318099356237056003451670685184127240580282485591298385665741507597054186992232358073938730601622933778863061748790112572672117666154445753645856802202397726441741919255692201297739822740364018140195842810209198077250207580663179900763707223450706463692159882079072047645607773310128463506156042693306203888405712390845631381563142071144501602330591582274389998975221062026324301308806947327378766178318770546187568667682314257539266236628969760060403598736268092924778704476671637102271088937976778024249080348718355562825193206770684345085517558272422701827717825189090207588834986135667697651156271813440076729350912525734056538024238247616926666262724095085538019794944712875118738546036503273186710477993401293343720368322499977222300977753317354127550610551327198983230817038604860005604403028012515306309133852927557358700798340751925591280385076849712321966277018790787203058844401271484944504976688765428526184568850566823902171885818714581751843544819525513770360361202893377171730447235366376653216124624064977693466392365450340215703914545535109542443639295763856441408721996887172355169943630058433639315649882354281975507872935257703707998985569197862064941223314373129036085831952865476031593551208534102145349570313843364148174198196744264429619017062920579882855674475021896489080116349745963437423638298774267794744533369063724619026942715064410572078862046499295982852748474270913266388017301580723270818484273061446324902327357210323935661924262278665136655553017038262121006663404222148985952883282716881553474296410127189532131601002171988270308076369714368381161844066292087933241914369458780524162505348914173975116549004216472050040100569453459699091059394014237465645750633285548901920267859920887853329615986259089744664684282679209714699592943264130216655135229754505173395879035946772200578709640027925116284489808260842812122618744977593914058442265933399577888994534959093139696866331449858910816846840929889975675616150847730780494470662210721653282480919668402584463633240577926975758834144533245401809009709612434733396611728875914440470199925929042613923958440425349403097305663212273015118865783157271476225917003182429692515677345777748321692686735861225686754896090956867634936067256643741300343028065633579393578245438203709227118312288087832682117776945715694333741931267380994591844624479612339602694964195499050558381570854897409370002591300969375359226333321797979105569151654933454107570795000609804122714757295602765412547031515082252691800428845694915061368892016237064410494166098762408264001586910646553556575101564833860633437189528667251390039887869468817913785607954632337973924422139117244999386730202128375479819320259294565388326423856915326639909424637146720684187743629267932325073253400791193960582844450093697688025679602330364098571119081040975679090959385434911017767169651887957954582621995622080471619910701817154338676510134794936284182911725792101836605723293549606007892006958591622383330060150914171380887662948587625197271246471282510184050887848810065343959222402298067849536491958275685708561241947309327581117135058117270380331407273844656914877182623858273760975127526011481903276646577581453284629772619236140232003808044283287182142280225929891283094288949347179326511370017379860612858989888672899343817439893260941585366275922083554822870262866101689912697289891568863043207954548352593183886954860456617177877519955180160017622627080352468272685606387361131254574169846715188730217734706114224088310089375766628858858429203144745084449149083815658444898101152568265073295244754906212694232487555264946937476151136936407888875495595251359269570949837322003777272850255866446996437370436795329297759012813264226370347765371059714718874998518708924755587505182014158346312537084637624920181158466906953881073434312224731709621798659768116472492866188895512863480896437693156752354467949525398956786199832429092183258969421902862606925812935038746253043726926431105624924319376732824214460377484507030966163378608080676961037712203674729937859471971475213739189547870528565727917642374066310770857046063519014005472890495830592750969591016131379623328409036458138751720977772720589660594975982327385183234842206296355571478432380460787601940114916129308451241517269150350397713137634139294262323406894155037239587414817510115854196954908678113606366826006828285716583244190421539950480341793948747934871890918297544132948924372831627732032869758234357641935068915175720032818910883882352261857202732478795542931543007905410018778909962519100888970819151243616263967268128289699673822013463298704783131028316954380117453657266522750309123092507957809647631757799007228977866963819378570639463169900790627711742933962729492262534851799755929496104878192674967729651092188275662043750317231130732320550734137987320086523956618479460773169627185994881685488551894262244532984821947664531976284801582484054017272215630442699641305134117223732823426936056345956508208486603227489960713649067828206550355743543824538774258729681561947150246480337006886436473739288915746411308422583327308617906604467702987294662245896611592562218998154004850073360889960225168843324889537001985368910258881339308528319408321262994415291979399227770403230049054691868761479651189524776307862187887969849590931586360723748626883762675900644167998640646266152885787070333082990454594120705987052582890478506418000926881681354413759125780015941910991878574862874937365324157446858697356472309587077073158938159433577475363335844782937720082785895958277710873964174117146089826021635904809898095217637836613390057236825347003547920508323216002417280772978555367466006354997630761148575210737408351012885722495886499759509844227770093705466316378831692293294365782943581762694418393401460655487896022835422841985211252361076635930086944808503386886993284154072053581456575853186587090327877422344239643695924279841420819709382428592155792137123657042578444171919241484545658451817886430980192984709645071387609942524216171748761778549812537490706758238183827083720350600586795083241072263016176149373219247121582890094424133428645271224720375697231782884905473220451128491416314787813969097160484836888529847435833723478710057729789568070357384739191690542260740617144097041056385586030086317472184800997670761809020963483616703907104689398314664074213630949216442611167961005944384635060463478653684701188301556680894441589007851881112839064434925022077408042160942777258257280662547785045277215869497447706326460227520861558089502546934329480328688928057781893960630860372925988315267262862740514167353043886353575617818952565895938342679032161576624625490418647924650097775311657863869880085280660970677704476217653182521939126854239465903021765838082705785384571957813349756182655633215931977817720192595584211546084550245287853619847807726957444874918555412924876478667106374823749244371072674993528464928881854453714882962576241487853651759072909417835946155024340902973833198396999486273446261544798574260675811920966603350042911427358015782966671596946245494459055499034575132268509445773589726601878183249717203953404263044105125345248940715764314079105045134490361488943726671531333133284681025464420777275503248778586339830077748373431533708351334968356285228870238530392507060412079525552906996527304109457973227092669209755406011028626619457998694742686808441053607161929060572040970503289236756695754421739100891796581578417817388049492975372762220569307606373515180730465646036231391111157912648326443673753489675441954312108469711198340654566477871318776817894342473146411299695101815701196765538676719960032527567066432237376834109208002242938008281082062501052035997777165814590680518214292686374178036711532705543222942857331808457011419909929099167815641658024897283847781989952317357521029305073102049559883394909571788989750946571051969660782415124877180001111338865845176796142367291667038410106703709068375963722601960551802111509737969181851665445646361560867364217581234931322152135023712788919252191387476672401172476444521377857002339554974660276756724692351057524837206282048870522915949054694616489557809749929352889295391762033277732773987454540289234848106698968709009272347969522180314190712694061756503798275691887118966856687499508633916962496233983525709003361660086602381249499502225767847255328295811481070855627635149165823434339683038266936401072808358123139542397854204393362098207709741020651576307167113501103049801225061475734454811532467114803673878814742173387746434833432855111427699052676838012381330632782520644317585608864004278933924327153616282046941948595308607792583352963816296911750299541203420301011029226320119317242126582888899964629157563734610701312934103562140816558963452249162329587734878037947693460685960587937026804562849812143526754857546524706770028482542594341608193392944620025951185858623338349650508756529163311238684088102957922613853277648837523574867360737111747275196895651520841202060678806860516844586772469439091811784646720002591166414070214532594397355465812804471257636233995564292124612274203389728892938211907720138064409819815629053523205302002146367350975719051791095108617672870024223046648520787484816126301810054394775322010439639681291825117678319777406271884884252951721100301641374851703503176011340189362352098221686033120803569579110801892454027855049564957731146794348965530192594342589429906530065336521091566599709897021172804419976962624940749209182371357741184339738490998672464084772141496251793604009150730143498779802628484889231737081685961458475926074224101376103148352526657328502818426816324640387069751645297754432285146051124524433156235297216328068354278290535962677522484176404797530403380562381322397640246035547188865655089482131721699679426221754577792497998867265931819619485425115964650502774999417793284000336980647165702311525901237182182670569951321190607938073999245024428760811418754882061429434993561308753899534286702855843058783020887781350393621816242578523779874720406141076668136237770087536152063454738762263299621235891634074388649429644122825012097713735605383358309660115587020767082032903801965695207516750990436438623724465542111064557966942818629761832796959475877145202826570228515981105439737496893682234382149297007047601525878452798728072265625812238295688614071271272788958857994722313988712180253597900168925310177787229306414863422726047300767744054022662030677413523767795932666982359540260632666409714512371524648700023700298359952529801483286727928547475692530969705527841601457039913468928259721863151873091984239974634116674167569982323204651000550863961941826435941797620804692582613638358693178004667867498691667978976958736522684304576091382767627390963301375015502318765850299512174639463612523587094554688078751228117045604398425069783417739939619087248135173990098313144642948035880405017895822124773562727787842356137172996155988978883944313214141043233689935478470970718885241047081234985807162899164807267295107749112147602469238674158075832528887431158493543017895917126269140376146522074097448625691030131817572404976901975214798317004522528241019398004130308192028979134978728921469441982896042226293153737477721555853005823491058069725502772869827355694857742651686360727865211545767005116560354200491363814651572133131610977261261580961374466367390071277854503800126746191382873662060927727746500127364447906003512053973753222360167366043278262841905957373546736957003356718568463930588338397385924330911626276287252618910323837525235341142456313152962730941972399469911504473824559904193626653071659090334998170871901403913716079048919287423368704856290500500392373734218137606868302851092704322357448957702807057444709333378102889714351517127549394570388250366100033671388292204780419084275913234065837892279696711282901488753351340363838805175977583228232102909234586831456333987261110847592465667108950461651304131605834331061692438295459641011106693165373336236899374556992076213067966219328839456785692466894475582872714943201231413276392081541733650876874579884502327521383406901215163050404249593446651614460667317863788402686633964853422348121045596566663512047642834083673580303466739618894697291017959921412261536051282974362874359963560695771608057221288801090328737217333687422470303973358384715659553041357477923063104070165433633030700233127746479440412286351793358413357875944415182824080190488979704708088861068168357970381844422119867425997096709067540586585259627746012535244254529771557619112880049578544391841637580478036335353430625890362506622533985287704963744426671743910350749394429462857450565437287676456294780482416152400377130837531174285215411265506558074804698857575978394680377902322160530360596298196213909406735448960157449796923326266364708021049965014008626245908440553728092636675649214953426014800428846644030037164564260953560415429451772214673310134259277234868584390617158061211647390684977296815219631817213566972053727533439888210999610871236967833010483345286965353469036395688758171267058403069195017212041004595356371226021617171390327393287553360392044524949722632915381530593668132617787514936266176090835023486391575376584227644677607360619339932851890058312727201222018949871438483079906416786625076986497920323546870631055885671918831109836741369085399862497503474338729131611022165556432226740467785427232179799323463452107472768720795215129810665478376345658007121551606126053163190725275572632155049168560140440975037256852965894738936135337636429560583024883731007375587306333029903157488722175122537786429041206359862786054774031657044919017791160665759394779484456716033059400104900573138209423509881053955955200090700809606301337751558101364145066952937380950388675369158985113348705757559358454510539543509781099031788400510151850464151851396839729042205419234897111675992572747522117759034556637539280007675502118647191300134474864629291049000981980468894283173953884926283266652939824240880357591426296407590232125127647219365672445188037547543543043265707198614421559338705497111485677280162521716993880353559976489867613292406679573042374484327651478773870265571349221436063623829706653851751355421453247114098696835181507213255073262730872409990269060453248707032033683264770326552104738138769340143908158770932404563060866346534119320136989181563234887908879800141302125981502431179180527214606510823241583445916355908588682036799465489517500058351134813275715802491729071137298482098320420340759393717592780161704246360424908279887236188839915340598688888903697152029966360474745864034201507300843540448195730485570044595231772922896116197088469891161441327160320019569875633809396614052487570215115649610634545824908546145269609948276459588382147635543717298762747150379236179665234846187076904161630692246849239092024167641408221339939198741426409461612698754489985605553984452093840396544497551490926260517728460829701926700653836252925048950295680393047111639782375600972007859920139984954050166201017351600017418664405356294418103851222478906076326593743127093657269188528033323224175199262905145794594129023446802062346950635513361014298205067781440772291823846067541640891283372953812049525085068735637815864082527556292571491644191459742180605389981759491781649341014942874981862608531325864847769363123276069559008397853541617473549319359896705083288425894063224035906602495711249634153534974221848446234109164658718915874706986991743407581911633899207682282630724901733157759400428201643151091932430953770000310409158905669470280037398819877128849960846770750396045736702089229846811794167059717030776019733144436208073759011210368083939690964293264293364667522991552480251179336362017808796667639636515803994877118657861563175278206802636148258269746814167804157195531983419225551278486705436700149886906881748428516414054613443543796434803588286738915647074197346337572170859806906481241830840732227853634746991968885517438937349354340798310711140406750077863238968417487107807492183114911566609691984658187329428430218389683245886330348226673827509772793003006089490836582198041013482222189969636966104427933243173658294603658386451842612272560804585706576289977818276176252191836904214832136150933912211865859178179962529626747287582295417942160009980329956876516061084820904528586956046292319105027533367675197034819366410588041192068625398925978047065080055096850608763476458615940709243632325776281424335708030478265554168758890412880832313754922867338607848571312283834972329501788635499337113248143315237244285630467922699010936407878928795690842531078700153318867675259025061435810756515493129993247749443338503092330225213333669786011433791857783504919610772854211507697913823928363262342848180912895306211229341017585045801854473953879645644865258025703126842379957461935255949756811492910968499426057144808534212164948773082693133153652803502920569171059747796265068137501112620121108311546019102365874087039169850559372563003919217411955514914454687971863316952920886121554727621918219046813375106287659515515062002438582290637112982420817326626314445269062021745515621848219926858124439101422908304691464493064450141942956044066081997918490664222722939190394094323180128255067043508346590455121336047249684619139424504357174472472674771873269716609788393180302008838390839494959336931222020441820680374812991068678659269068447927815833114024408509620860612539174511742701823928666195854564515245052052020493620623870632894410326077589675994407536733280170646336227207383293729584719229754522981696038018828640075784123529664487725906656800981679154843771565828973188488561335293304579826035914208718654132504508440805869804256733795517951297666308867061196848524184071297633092391051847908556138387148424660759952547980322376863185497038308567884289961185757091119114256137214577562594567365854670623947758780420489439795516250331071570445324285893380863521782629248030091332696471940247084418915658686798732496414287360707556406345738904611489200326654464505716533542972443559370582072675876656257042509799198549198448043242041216518551813677368585557288257454366605171173469716539118824456866879198310282428994016745293234386573136941253805202814210044011196160471720787474139927175860228758664337028421860878895491138684081646993663250796568764808500708540689106965693776987670083406261203727593417648353013503063030710597192678052878246970429006545481625652664876870302537371190640350246349575577674478585600976231859918989365473448467298516279280424489758499401741080882645817130878260187460445356958656569903321779473623005606162759277484963164589578241821090039595225700190262789048527263815023849136132395439774957738556637324346630665430197931419399298124377897146224809439125116369319254152420734671379589436285514200364616693685809298521168456236265875571714901030221773718193592568054410451265284211458273344264133278661310995173830801515877442334695704611834423275825654606253819776175484508800331746052832150606624686575975332532914301779965969860838872414045268336346583627516623048384678067157591341989743694269701007748716063445619505640002861212180448439919643710435130295000051596404863763874360622539052269347737435561358666781121944588351405979869427211201716224805323701444502579332507209220683156337104717800564234264975376502536824039944343511821901855001660755101266613793589824037008381097920335489872799344089098651708331148740964397908553942212542252343285226734316581947727905547356745731157922727848191357371849955326601190437307402846907728452669557387684372820222026142352676608238185199109254937425306902098189871043206825238139439015485536739813984924611755343333128138111602483644160273845473033945982001916751350910225970956454648636388661781310397580576071447233198525118779745550293696494086647956310800078338193753789099997261734521692670600037041472063455693424170515724675801501253680917513160922131078617897733709686632638608539806663331888810105729082049334011770960724092834389874236904974980153187694018016162961151618935843458402907838683020853725205015709177476132306245663208291032160317942674362619746529052772235696540920881424662928896711826917515915027138306382972328445428458353761773850967525028698983985838859584592211053801414669281073657824307573612364313604289997906914124191154612456031198886806789355436375231845112325214868144857550396181534593678584219861429967935350331170549598156689302751170029448734935931088730584260090301208859138576909433093866461702627929215690695325255127705708317269369961244210270010626747919797022325100906195159551035971303838806024142274545743670223834571699424504956839206723040493543955910815747518292636993020645702990312190453617685511478139421129335642695478212809277764984629222476781701750295784021903462073036806822046007526782516108102900053824705921179737749243888306730752569480022787578670063102470930604502466685228040565424200935842922959920743039536392330135797751044678906078473299875270394477639436730994881823208177039256468610936048002890569156908447113786891500027976178547186374872114705550629480106429501046268653440177747834190788700492182119403966905357494744401235429520247638661606392009051503958733968953861107317107092181096188239282824505719363406077992669013383609632542246544750619195115407976787259689600440457356030266201325658258377414380187802616988028552641536112470667830165612343191441007660182667482159771549868890862570327628337688218687253949219248174449482787282560251025305401958806068631212745416827979937876767403370047806544779817504677933999331320637866564602923976888938249458764830623211657070743625813374644739632934416063560055400680866508340673249172199551313322284856083895899791504703729992160523450828311961039284975517440389136908259317353678785140526259361855428901434912046797722421074392682643759859086427944271705335975848184779004557145448607420096906158467418282709625957323609840801793349923206965627428683656843086938563397460219780388006502147017218438523163391775111736354187084146786039845151792310434531940883633800401684483261339593123708335303565346674769768451932128485031350756226142454500241385795480926302262500409935833653414348590159787760505440439067285803134129198564660092808671016382221955355332822300818459443627802732353599971814524122847437774960213928020457702865569484377742902803519350701089294606847097790175686424500456786580885616056882291091046184489036285876641813205577870831665536347229830063034048789728138777223922912383129612936635038579882375588625963034838650666442684626479041580852785270658398783517202546255151421626048780039186040734682708583309816698056396470563155194795437434910552282051659374622506730004190714344880897177571063552144532352654618208293388869663018143471614847308552818385794889139575463283571852607282534535133665680523577661836159011676961428191702987480181286223813732438054334063333847173135395352131976471261111948884789190867976642652137479353885413922136243218517054798867456170543706265876714254875077376603888989316965310945887354504412502338926364665561217271849514396107963138475774590605794297556998072473909943036570338001471724473851996445152053792783362106650436294970031801987642175172139708180706807122286279516075004126084148411090186036942026782297705740790527969465581965609702363361914518197062908441861563840797193920673102502186083249968343450091894091513356919113339550220514445098509297853569112376395485019734985415503335670525630428295126967152635879926980630757195196503397538790942177701413045454297894085336157081158324157211835457284332724769711442953834346279548916104838718827069315923874369542923283681579595925271690981853560342860596066073549856476044461279375030944605464188892940574916235775545384108859245683561042108994159739210613160120802299102047945264184279745224208563760594152040977233189568569206962611267587069306899172438178273418237172868461422111256033880756528478923242681561970753611121702132531862452855385059051722064220544733309824009354839693544404043504763458976793791414626384094107210687101236031839653680635076132393460500592200037016068261041889727020359056667041618638456474135700670988980305163208850920669084067444988422871557793425419135661978364298360883405864421982342401206512774379692588858729200219218921006076580347032457092331508386325698606706809769016705439128530276558817038450463854513317407960088438495816672906904354552137022089124929241860112908675002983289266856249194352004749196140982964815396976831341761497555633578942882224044563440323631168653972898330263549818242776616897724546207870533794181648277597885324270937532481196426340384284129099510253568033185901548532554860278304855010586903829270633277097338095793694175377512470553938478494110636333806209252430876029169266454677027218297096075262383439839001481584759810563457368639834976045792720949449356356271219920179041630173199987074877495173366760227188260378277546579313658249801548477694677388785535763197083669451492321290053573153439753179056831299226351005277380594216374328783587420608646686660456405974989747711728265554270354843828036864038176517742935519852373242621232101847136474635996366397311807837008024465974929336704591130266876181892715075970949994514384858974354292356173358748649792194877603674172130074611523566352931478807381771501357077685440571384644287696905664036706177502127508454542718456323242174554823803362511066118416792254886328947198463820616434745009372315748462811103677575886213688414758045352858184692645359714616056102200300306090065247271599529229863288958458197971462245544450864289338744733282375758830020670783011200424104582485948414753671694369072149533911133830746760939666811830474996551652546856274043945667171117522266143459579957576642322396608959446497935646946331244807041992221679051551447570551275320707859468551922436302003331198128133372245038058962720032806690602047360359505181916667882557783857411455178799672794396950977566407492011061357990531268396035802289660696827604426112330154277051917147476381832703013079584576725824443231524158396259220589798438827602908829261327484634677002786556265025727639643733478804928515196008866597350679744843954238803373267847322423162794711932187805356067384135737511885247465566423695881057651095370549245208338895398752734630492115434751474525301856371249987492555711113429177589633430504726125595598141683383988492400042042366073058974360555791647827948598748496021297280248282093645982829514009575893229307877535050539138188149917931356558626656919591203640148690578708348506356358310903516986651267914098041356177042631132743385058175075649054466611117041102706727240713310134814638589851937103552763861450491276010479423054264034867802936514520939289677907824985538877418348648504711203527122701094541255225226201832349858204232469364339679378910786856495459306920836800090764666487401184956519072225782273725912004635342077967343776131099462798804612351544033580093523444228485697471921099947225442732176039758730303519640841949774969033379890985412624753589955936059970901784630250808085376573219516378980927906199740917471729478890258453178817023134954745448572179891838561348383356026801207354398554441294454776994811417028587427435966207274719964926004440608490270545270529779745993353626614331546061486736392567325017125664612797791560763106821277001448761677735975899944836323873224157804537232033824054302532064955229005236602272965996411266504483034289630542626355027165672818138315793857198715414093971152492403337430466593831592173728794048390133712957242126089248273531231856688173915589458009139602631062126838193134275687578336450933866913511180894416626301628759725937382873741096068375453916031796141594435572034875825815803115453344405994273924052018112570713877905670024299601578332897381947398799489163920466427258686428435074809285992922834876795836834451767858414022415189253742212124282679737284935695964904253554639220102326697727218006279981157767798649788370894156093732857624633304765711811461980495373404437509225869572512233547708604771070272830896590331629694417944399730616142165116930616517876664474049274320528322889808546890183059621195757072822868532754662002630396456784371505825024990058068014826104424797655137085525149052277429235869746174195825552327905800007631044808728234158876228195109316090704045061283672557303607488446402254393430421478342649803186496034813950239955398228762408317069018706752924732153386066536804193526236005962608347498113118383870650505137403126236473916331648122675447183981717782763263292018662847440075695837741487345934067009997471818537460900911237807848898708977778362399438670368052295088280453422062316771931883003612011240677355427167033930993217830234153295003058897898921743227879929126795006967705398757716627084278344725910360950233105237539572043395656591529836795903613295243723085983673658428878990891237276020372235444832531520825317580705565212949864108450992942024300841092960080337401892855105000346312854693345989511803238232730634728925128264427795377288078963588092503467240940024613409381090944103001790013377002583162523181254610016331145250451373317048460179263392559576968264658934270314941379758041322534343521545685730873129958383691825270960590946257075591979030352616662162251689178462451903219885626052534701656952125642960697384607875252136874858915266058700204545301127433974794711367685008455260544859150808983294764821469453373690587363603446987601664937576616053250272417154145432956630278084147335880725110548869504138607132431613227641460070758017335782751853688912337307803470909631577092109579623348237416901917631250889076099166219928753069797348552378066093664994038703432224596557886306469485977607357971432860100847988117338290233113157372491549949044194684874702044520140247515259830831162484436500221172246398199581116629906385150749359689882163058221720278571536272812448412932141894375994500879345189817603823401669267992465214530751362677574117943064960013704449729248301398611307215704556300787121917005213356656187953730243568700826726606077881556017693478347549903461698017677049610178760712737845064470448199133499739522907764601265675788035795114658145832208274332405676986333261537373891971168910207413770525996185302849917941136088575957963203466851645323452973008548986421091291692554209753463790551547103775194409932178972538363080859857434153786945988783365816728900451610322392604803064088414174979671407595207791049747821862055284026427875178834784092199004119769878916623619435800863703996026621661795937427403484219877979949285588100373039306089423583877757908991360977804202807104033998683047780596752740054857715209534718491163087974355857071920088637052096367889327161428954481281352962002102293049387966966457870913256193825111792796702581831034112183585569721175103857454766514487266392925627224648406660199291310323970304704950833847772832275336971627703304033606091226050039619649444772145575405870738024445791541946281384627206667637584934352876120340230721589054771360777536573192731286770864644476033708275846885160854547803081585116381100287084997340598461701079317553942892766628359313799430057601831692011414654490732674521262193434028416907789512404041797589965022506977992005786116755398160036640045089643263701035894294986994863540927147993618689517554497688685971949281456526583289616164724804101180801720641478030354790076367959677907296872126199270790108097031351828327043409130249830415095273452996848960054268663816654641778946569044219457225803145671886754695795840146216420120344263000610000894119437905027081554530494444737313616009030766600798320425507025510608602838017563790337734446781263428724943130015052991451542696973443664132604432727650814398111087081683688756348773597555471191430812659850053069238069245589920990179366719055143862134281972515639955636582688744970158060470739484349961299847406163861340370415402669999519849719489884902159123692201683280867381903839286121582125966591529852587672619164302006622846731906113898859825970145383971969234894020379401776677114397207619247293532337079119021177085825951153540716357901588242693632751261670824450689449243865089004185036928611237359846540588561002120605014457701792906958921498987693663890861639520972473120040520566048916094319960303725450709019473991181267322630265212578740859792822951377629439042001838569495272360963812523605128209454195604596655772052998690419507103883991724164341042298824069603301074499340531719382546871028890242043668271629805745014917429937567439439416794476574669910274144819497429533248394184808169443556501344820288121928799986030156468624636433710397474443335102088014457463781869834562026129724673046804533045754749462607451253783877832593206252668663844689796312854519776873112100636437634704128998895358733608773534127068251839339363261000776823962294532738844619800928433331335145788618550571998459843221038869813839942861645948874755122008130944906205033071600036525464719280718317366710358441268945473024228885398676847933477510224781012162952669925694476531962322425294163206025497892840937067737380033854021964511980247980383782152465443938404244971618135671921202468365891069245724790562642468382211737715842171919342209508299626963253630774459340464243798784776699191948330914247228917122201078214090587356893334375700651238788100603811913833627535497871382598275281456079236724755886582450223294373336156015878579894321540062168254676047349784002000460543149869768672781627330194709305565449243455969587984045387941051844466476810349264641519962955198208990007683160055053398452027387011131298043714620092985162413103913818429691726945631026299808760922742955574878266874640210014972204605779373471416994985362554252269518277878646515193566894698236233929380452895530787643205949832673949162504411371693041751255575022558717843688857689982893345090968230896397662273862203049867245966681786753386132285595870077373918594046952959048866692782323745973484742935415582099418003487535174631320421030580510011366963727014162256785656390469644202703575027486128552815303917967434359964266736402392673795732841006414843200358538448667159941984801448090810749994044532548269401613336917334827865388174214054129124185888486800066826290017512613261795693112678899989522733752085545684418581912616719215356065523288866768775563606489288233050032609140620228556180515444008000357469502105739483019986863387034669161899504511502830890663821017554486629354956663859973538954847188637785364208732652842392949605076983334417800175942252280403844181360014659532856512775541957088065131508756294226851693845409509152761439697332402502456542512386060987851752863802211305873589486039985381804931869366623312036793606850418890173892758854104282277818476021340088193891367673251534238682894301510164444291212371701345665451138412663938650823241752538076640532794933276909557326145446267610945245439739296590907992690838187094269376408940363471801251889488353439521126485672842758429287699667467161471514652698518197347771187784361466485643544946888461350163229681342293171269486537671725731201947509748072856404468075590697144200318321033749797406797997733765440598188489182437682241737724787900864541900782529435185381957687571424236309226376133630793258349008510279585683787377264175694492777849316203048868049942907905809909749246128492293292476536631263304734382924752511695397987069988456532295629215892552310915229630843609564458469065326376719864688553124559855084979891902832045444909699488579704635703046121238306504710865470064030476017009308009231450706979483049504619098045277557987684829473381406072532791856960629633859500569790500760938828733817739963029753708288750755223379902685463222900595555318288288438434932554227284835657087707855777428389487166418344017057154954281195414597517786010695901864025640023111145674617670123912768394232442848117904546113957899369132890119580803703531022894818054910401179111949721891480336067775532928477228233779209633265355880606290722233477058301247299984109476760875130421147394254300885491864054294815535594962037329610272822854379917072271958511388110500506732329798110113488012835236855237811017314322492807505043400902507833402045941177527290060715561946530925238226362971562448544997821601696226221092704600820179608052745329695218505249952750130776037602051846319320192709169087187071264386617453252097702017227462673525236939872935800508953039979793182763107219669480574266182319261371173605900072137023221914786169023707694981400652906490619829720221059120086695841155753896392814588238724460831635330696911588813519771577194064963618658219656834271707558633851468649254638689455849231357948174337027250650302423228154009553786402958607772879302574034505610474983841104566535536210745466322306488649697632194976296609808149770770893790403467297040994920078807546976223513213512887628935778185242432373535733541232536882327924386429274745634171742151830022617974647911799019177321063601546371954395648898375691274225288126355052545328433368140493196672305765414208627226060376495140065203039406222043831556814413797298223763775294688144932362691676055186107553268453855689023544747633673901328865543833535974429916685886127690435516672784343625977113679453964131192084976703943323846656655897887001098335584554060485164421767411195157273864962916299558115938512158620218550355283681012871807268664644163774045655180005495367938143859416495027473592962442131572615535334225004558490316484507407726588539855100975243172037403139885762449286781691134951526537806501631968499516989413257618440891763280437949914118209546870266994599785460005042949092465846205608664425841985568087210304969554060332238123237511300228725606488090283472099108036858071317679409033872768376656957053756392428316077422142862544023176898030340107898815083428741112480681482936615760625876168726868454452287577407886379964457466698147244143724837938154444259766747450572547734857103423638090718208762104079480634006583117328376606748398987935338575471245764782217818260967017187384936277245350272439413946253167780416888724486301223341743766553480756549232343008184613361934713094550129865070664127129091215587974217592184879648447206122599125601641199726717595650259712247687537079670307986219396381894936556575412725082337353818024663788334432092277089949389776464985162835732331976280698124770083371211067816780702610268305753747739474967706095595508514341366957026238489371031583269376850215790194086410760696872801975144057456867475430197508823855015297317082788443536294864792000014646617592942203500372677645909622857221234144818335870817534376307917003580927283363080900467977630436232661271107993354887656041026643801866768053704341282955111142047147038319081175433541832074766416338086362773289395810017960480541117143956005007034087924959509845618029051514422292597214860254555328319073128093266639964637964386861806422024641626743028582771726264021489402154756335651563112377965514853683940991817802173913404074389080736130681182085316970974943137516651890876389369129480290279137200108688085981934876485815675097385424278644303474731595817540382745924672050240862063577502228650875366162146265192335030398056520333874678380667186460303135168475024696593913322129736111830957032880069594364156154478451100644523507404974359848333329775299360636931846720387773762814546099672566915138596364880618284120070020074646318163488669076917270562819612185562735929918072863133352088761141393452637930054866767059280928208661464974247644464087635200428777549789981939432894518292876228136206322362808037684196560149684828697798286569649939749160094652795264518047071763896743274517673129893491517341088517430562238226387123219454109074544360378740037439419785200959394642877723370394295895024024254539563535064240096874529882692823337196369003576058685130130576512553726338499252049343970236993242539034218990541784354992671074417517173337174011010644784669903140242344976105119479444152623070809855588405822387850307966981397414306531823110845329846663077267195596483121023364024136248339296357338198473970078537619788050333066200616519532583385783051803156683068080520455410750743065433094351313909010968398805999899635405580213007412055915338994940844192948342060441285959547244055437431548577758451247870828364064740263726488643782388812402952125005351173486262591253222481658848901809543743362108307407755174695304284347379854428318660880145596074767153866652106994298567442192270020383116230886371127672645096357636676069865584144005410815217284357472952887862857799949388385264568304484176754611425839459015116443670839943841314009339379062093700031190330290055706805537201325123783154059950725702041773749453274376038305068251831940156085561307386917977007982907594981086328234217247139190922803187596599630652530368776137915523402318929430025987095947141228457864766362301269499089054148538581290332132910744020067962821937774347166976907572515530383341408119215727250080293781673618673614036889531267310237603745064495971194225214214991636994182349885788633409390306081105647268459203441278513901432015961961244643812884474227988809454341431782977078320379662821861967987916024249896109874428383124211140153478383371247237353429924476843928873768209407193856562368456226127703624851608726877640867625420414050285340370723304623212362084733212404773296507895055161290410745587145214479963451822373436772781418024997895017651108528144282097339100972959334233480270469456933701120177950543022930079744469000373875472557465898364465598387764380505727115641515760844886110303822608558905579928116115361937449528686280411164819809039999051238756938531947683340019156009656011612200057997589806938691507957955910041477754035648976653427647754148359687177991395964687458579239105479994060738164272443306562377805392249007321978090180083260465765246665569387769244127088627934909335767494990135675301747917356466912156451264641582161793769436519743985261549209784708110291734647912189781347517399750568523418433235847652350007140312605584758016950104866651487942209302316750271103691723769451580840984253775828149146826140489238461632653890121479158697945792367172754219922049932738441150110628840740236763186808754190689675106645510013370036768674158746936718140225984142437922308278650051955341877912932191909832081460900991293551258506660327433860908591265291742024392040552776001432975222832588880083371218066041817982182630426094720557817615297940972717240781857753197095736364390396444174235052326290749343709667179936522380589641909096076431252719633633435594938114937702353438554814078295041490177389402720653813749552729489348975766711082020564750228633301640501523812227584853651368315073562075441045509141799083745134863291797725753033117355384838302829234443640316753619458437571929982132178510110090720278886321219207693343530460829041933870737859589351619546825146073888929088674114866830472602698677354449252615797826487103833828911580406862044115051621445026475163449544967358854714996966863907030301462994280222355527754047623702581096216112133740822733067954329809983177317614473666581990691620544597632270322142112861174483375064597181876485350093721994005798415599174249622964705796182544595319981440908829465575110179991617398726366476359817026602225700080095464077085041474819307517095076761302997925242639468004836391238774421210442927377843035140311509482873305489679618537341554315199490603445806571971171884870586054169931793345487494068704116228079830954149830966660012198605127143145399856912847743014616181507576946946162583553472131675574516452372280842634224892446604490566274884896873365262085782341759576540653218164542749861242340538086375580212179797509028435921601349989143035514438001743144899174801084412296208164063887272159415235165845621771968182309249221658566488687665500166726869041047979094313750560871070948384843629710333257457888833774595485256820481068036597821714831059136253003519806331713626771347426798673369195728810005730587515391097088495695541233863470072870317486321946669204852598753064153155487187639124737075564502282572814554053980256137206609680528490195939461146907451247484027434253832494119942384893757776566741183639949898382792298613449703844736088665213893831713541627425961038968072797049055007031669444866821200069172739761154922900332530358163135214159475256877081945670515340448069102561784830682342567459987554168619718971694783476578916304270258918532269007342142219261822522194054446911692482065774028634670430237568285888358285888409189741757192653936903344268386970927290470411571368580523473162382675549046494597821296078344375776311921993836588000168881085981103973819182761133359922682604596357121115988302068931768322836170644269866512118356115266249157055908241211260867196468941216414778309307456617534738993926863924738041819400134201619713235309394820013413270459453074830841781950444828724235427852112701733691449409212997396850032399311367558825462716715930810809008304327079712024352061134574867427588642364503382427237261091082265416830533130961899405061958429861656573041637668807039525762272475143689075298619290285865585605308328888391892037033138863350810148457746012982201276495361860543894856204063191916179049955032376095096881093072111497506804789174601117594670751278080836150138437321361872589977470677870783349182859953255744257033017658100612372622809969423427811471423421805549160611104181323636069631600565432990558587087946754819035476965438427711726053665174241979421756319997846234225065812539601772455993951648503184402686381762392647962926026606672079460539971159818980037162474849660687789767800621167508523268956900039437450986100270640825084011324454562290790645347004586099245252634282713920090805126887804353508303367744073357072637062780151607570142043324913937792087640401776609632374230560958910561391936468331832370662225723806067105860483584742325043858232293712458187806539728737597973256643263106298345050830366581306658634248230942004165301181396208122178842236326629029935334229361721743360524063138190085038615555144339054131196435573266091758020954876011523742059963770400427846075792379560085308097799955916266208160697085262645985578637411162527208366074074707265899403610427449451545342936739314789739285100001317465087840078757717574419049595925223620814911693599927508201070874962032566647661273764848449919791127128587753327422318478485451170389656478599584845764536464383632104841128880020032387395215453128585182157836284022895511707979787739635867473746740661724741717212423374500446796853239834086122761366413618184286491841323804795652624732856755348825724460971788251810275297086254425860971971025345438186875834959868550241823292646902124706643946054786585566855500004153322932492466626214922215938925047420637665486319340937290363599017230270566461261965429499095557426196588895386370129667293030296333696075835111482690432576446691789516602908472295795781288124781051510219821371796730353605792331356723718345034439562262698794851021571021890289915957271951847969202821029318282218536896426400621560630729754648174244004974035899909532756488567309368384837836647335762675962841239330972530001596196851860035844192385286690383200286356670796837593840215230923711692765343070354683318317125377407958399316254705171814213878044506163978391186309800605874889083075631436419010638280697800149689235972651759387801286075946742211670741026451247999927289452192835729276978296004775246356503264471631461355063394149834519538834185514515139970823882601281187863123533899140925616147980280711827576437921433862353760680244353622633991790934847607761774390073426571707997281209017647528693650478328925197030905338299067681737478095642828615401585305138381180763851931411235346591042151253714373960830396202928715945882427112434204926335117960315139493919794874725868429490270758268541720003363621099067396339215051119588219669368179299293136022932625559500983113839863785518738451869532085982886886012347785191604273753453200411177530672595927447311595234759509824401961110840813097261895594295703674611556052751663284040515143114354132973966326391911733441746772497012191069749351778080362359509459500029445459582050987096346644887093410358527141903493523694467228988045064403557961187099845049893902887838125759091163233058249035744942230419686149136894092179469446568855264356716972227715210955051008420454735319543001340636856227547616014483076338174469056567010971528394226485822983487111826364582651089660350971672493608906164866756741084434935034523002550845266736759049812849235963580033352201556779950214735918743403374912544378623378462478634127325490836952650055883979297029455885846852546141992252418015371420266172127620892090423179350357913165400985015272458356150569701521647552740500084359287400009302289383816067655312103295748893283675966825471100813495174018192354960798399686596512632701143144904116620827051856324382708813493825396940289476788918569803221328031565733097187710188306456985132847934728813713267957496776492348043280850957652002561524760045985644383506964813093146138925753999445406478588229584993100576307984242277156911680486347111559842581870726926675554349930253175463219229661090892413711235982261496664260848651294903986698062670443916773064845038064001479597497379771153511494470254263704084405869159640453297930427923243541017485731108791448825473432835941747871505887832374731362743658826166533808687341871332474484971049950185410466951514582220989157360334107380681320333548306918406764178616075851434135799311948058788465824337245092703159902397657482863117134667684744250989851136170921802174397009853910652961898029034088930023810046189542541003471145216177512812451440798580805070663757723110344739807384070827554599846531553973417864273035114627441461231449777282179628817020658681838118645813067028190599710056799735726212232009646152061609080154645616252689255104160865485331020914440845311323121925078820326673994725879921120469037893335200864123936953469291459300341494534543399515835530758360910964911098010773556762027468897552780404466648340832263182895263321073716629710817161901756798202062528046506116649994727609933571202393944776252402035332076912736289475290475429383303751698487356345216962765612629578843476015966436468274904031281683195970127398774945601914298225656205464007297619068433151359665857032294570830427936353047830361275103325260905519761745383442928206193538962431940524111187321882775990299426737218870091408662752787545017776559155391997027463714497031637594192696707020643141311086898201436369090809585703222820577639648258463490795068167983406172478006050847432879556960492341231784352829702913787319753934597405484219171912156745790382546667507944967325165042032318191400196149692335849725118859438161482742533782588313559837151250828731498291379784549626604294840032827401025274300395325621304699088769557383242678935080359677303926560199139857108298097256024956993223957232952941816092721114708233508828631430526556584635613886567258760385936540883165608879622263419212264797027694656145949025440323323665085360306781213118062405012846787231075435724659682518233988928068977926909921490565619552252037849379299156904490054569216358465622388813345852260184096258931023197430157260143791651508681125486632315203084750680120324601326188486080901330694110671396726270066326842875731982311874729959393206078359505769804180219504737612215008492652697681814665409210032483839881394263813356158996371694377348003688737804190632073751915753670699825174803568123515645086587724944933009571957146754842910631736160958699690041492303943422069629054097680805455670222205870559487874729264183501306157442996254141910898203823181818544751510665033977531123845082926572017569781156022058290318926432889840877052328594559910288874264198601798387844912095267486278902035979907493291165754476571498144654542993851635651894211243601142986030153893758586535890126166727428338276178066979853031017555313122334271436680954293266737774198409860104098407752300540627721822507316361494202345399530898860788017427422234608653049918103952771049578522939262459426445471252473853316449017800332549548137723248780096770865666026571119854992323389945472619921586434982536833448600244235849583815453039625941178632550391106630808134015887378900861098692008052977765798824217184227779160164196562975307725845667449190531393973898779060982903195877758676206036754291970626657226841489352597259071340380236838686003158393152173011266683740489366932099213919372584842101529746752509281837353982995360110992380388103927512970497108417079946181394899430373189752742589629107063716871869814749060419880998072881760607512587502040351380263962930422116948854480344634390980107159587803791850264781307227552670682280575093418771596135407945437671452868142768378593804501195116974044093537598193167528601886177820897209205864587120216409161490037080981274287766550236059280425764568056013705687679424087607882544248592829723827739394938797294961738297262865073829357020670272091289856999433410413066777335734681375532634240348282772991601245465092938725862483443066322886890531331661593063801231745779123045843032568842464263931934578022724923577695038331208041827066282543649529472349727873051367589881133046743151487448225804313211627821018424038194421607438980648540678452910307952411759577891381787960209504606174994041848233935745387016945112172704055623355537948003166882158513413132981561115752562962793197491145349666687227798685083135846599564006512075971602199693836663081031282980546696377429764747920931776258973485954510573409612321873731045703135454455428095166276056789526320771489217827168472736435455968297013590930422231729472158260351288620776065488479637885482149360517226850752461924320540616297630076500801200777213892245511603510696775303593553369403780962420218024981220358514050467252158158632154168491508797951900928952876181699429402954116393078684813822945645009175379453113429935149588281998129373161652266300300735192925448188379715771967379789343554868756265360634148793433512733220362421379281867120139113074771147113123184391634720685413642762612156538335901688068959438443521887917320760112865920917071080139108723234738404032963052325106926848227465219745682153636924703564023576086459707299249542870980444058716308834471086293298383787575302341251525645137622409101078674571596526523571370320192871340255030016837269888795945218567724938052575503778533693821158994964722881270472331284241322192294730324789343167971881945002070911580490835923779630609615856308315514767969659895499081796581581953272866950936047389830115152932226873562888454318600566820221373330917460625362434721573099316942264077071088255333227579991230042245989934491223267500562384134603918669661586755044543093104200013405176213718669241604498308594708190970412374566784878399974702301924981169703007275606617128510328548882389523550457893162641384401785626726449206603702841692741341892443163848664011203490435520433467758383251886615738568835898088515092536188655864217350200729539781140320439489262546171285672149885347974122568403771229275813019911044003337050731796389185104132447517376389708293301483085134400525393082756258917812187027172601265752325018034613990441537873694425783352984953153947208443627568247672608346829534745228401278724862082450359555099668949187494547304726869500483049501273910050365155607941165144533729796903622327031590837052079547918101560652549247626971306929511444834374873805911758940656131388700936812689445888213720312892549198073594843812142139713985199488537455013703465934673433376804378480915340538790396847777435774519941370972065859433202364512939937639255616319520455921669099322599285943889104847649926804984855013760651689878315942145922537430921635838376925899745335916243906900110495118221065679351411301758495169126846089986196529702008659827707983493180632679589958244053495496235455623184249266395894674121922588193461578446282499223210850253035722204310187450369368759034441504535747536582666460584449056715544476104604912027514387650347860348868293708224064721812534004145685410228726563131276505013199913637255668375809246640632642928720651860745001005359311758360271284301108023908520981607650111357877597679278937423717708928201746967464978594508526476647944442304119489469810123739309227100780025449035462523500526554720927195002352796464410044074607025583341177771944743998961784229367646159589065902263306587515413659373586961629384451353443256182011363914805367046432774518623295553882554251361547044377112591612003589477972103028574148762297516896393615608481853504843292448616935385069974444881093088885542812027068435605056351396558294280189601058728508569012465921102651650112175671969940841885535735375099305698655505444981158180449933587347417730895552022303641700026439257075664467950652632752429442013284072763302917889469119761118959259269034779004214422782254485831623936256753969998990208099920441231345424563575549807252351147461149817454734057710334027582542385562320523916648088797526257117774762590899404045785348512501354615555782185697358894904104028588202609529345556221047723941510593799046932027343151971464505480748439814977461205917579786522031739839087552648419440998883231418263471412400143830801786057708308740602799199383126094033318350415851580386640982899725297707155535135262566842727956779125639670004476755474067939616496581548299232324210902904492938743536454889416670613290935987389168735779857714815578303263218928383960847639253565495525721777691910303967822627824680001262939707239311963606821755345608906463040120859746500662457687667465840549101182063674190458082887726509577343171608525463418601142578733620549637142067529770240804769886843260458850492492254876213036427922552079650206896201283208722332779011680223100603770156973860135364526616327489382334419385324311141575983155389992485996407331283294808626367949221570373689511912303196611636315817112000605309049028526370328456521207097398085211858504086883455019183326708942690212864285768927497805138255498281775240866957551097698202370420676869563285282714241461322889815777924282748316255577378405936215476327908186211597097696168537426338327585042825743278242861661865776707388700208827924484071167251127182435292270456174861483019904831590781017930911483178913268224970145925463617631227023511958940994066195223793385276455765128865371069180622449140760315435090251830469132139577886206855190441943705045357598623622568376519588608514130298151687037323022946212355539470802492721886527622671343791252819866636227497394049469781173394068327433477268770905146640555116560663950152932334730484581797174979756053103225386226911956837620582305993503619641621023785410279121483464599767899331167525528489120613811160077720970281266378261909070283303123730650660314317209010827179083606576528354771123272255721824917549584181629559820256994887313347891167608201591484934099128965782385533912946670838799219471227480215100321929037648945904776349423517492547791115121658081042125795155802243688458096855387528486918829519554570758686518649940812144043197904450576316744378253021450816101072621270841745674985897076619437879553309731429045446809607320774792159259245819068219841098979468488983094148745864956840246714102175485178871983967168260727253012969344269173717884612788481173208817544109183573604115583689484439393582298400429447441596208433094951060265779871695285579104468685268547574435714599961834996916021772898614405252815185195279900609385633415082956607885505665536767106438293937391520750941438339472244167738113100263056163378377918464448821455636648094142933835234987208394873546328788582745245314752179589657132628656249970978532077573085165586001163231960622168637024915175402069607616011537022529774089187345829091952272401442083685137779979706215288345638130083164372679057227168692807701731391541524952809033504541061410456130221290548002126984459179404864382684604593719469310425329718638067925766612507217544558209806180159758455613768532613113904105908253137643677704268517967501863708244967579467925835660322853116922844501324435915022602030955576514204118286558549521341716525555655391577466379475639206227768921175904094922859369629111156704257564447622939551588552131699020993913527753221105925917856160822070405892269503728524642990804473084197351666736784981872464774473108402965417302733683283878972355760212130704530589764051873654273036175695056919656738575572940937659471498820296782015046265662602024834521305071573969705806566194243570721320985984657158338653305725468137256141187070662989382705161567781504905039282477458962056854156160245642165465768328460588476836908482514239742519165851552794526509646641631619478860087576369975215550671563211986137273731703323939777371064240098046288847189259343585385021252380935366277499728023924242069068566905676126381952137374080180720099548778719586925175798820131636208675114259086491777517332876291911710309296342090381297253843843104233768176361973563693772606878800743331468946579369658222412464657315026143716610097689071038775407988113258681656873506692845826500342324687430744017978943828179151612487254033522442703757862485230598575057201679799396538887786486369066465753793452662463103790294119762599056831710910831500744201179695749084690158805878117168146256111435732255080535068019097864915038764788330540721697945089234075888808872473772334136800109492012943201739638660330737240107864510948327739646952665107708673545619137560160041681040939355516019521252406884832790846879685328820496305000412458980254297410504480925996931678017699311267919782826775874326819651745724126002168984914586962047713525188340870433798506342100962125368172760703002338191687643881716596168019424772981295869136232988978710958471283266444635670061633120430369138471173239890228377053462744253987131403550424538503538159481705148989362208718450345801624738497504176505324228416539223170844146662375135451417083471293294539009513893838820158926887006208991756629810750743996428343405666436301234075617040475836653665030011563468257174021807360432654171598108755435052616358168409726854456630735007887557744590331478545661925457781249947510809001796141577703003574967634039675120883777122644085613488817384092964150136332898910329268620291865766141473307442560219761904434098394842867756795822784038014101254398313810367680900264735183780599827187002664887363566401124707394572881064346412068794473205865419114419284651020902239223248471650117333670168705034453276786709579605285211442055751369101096271454640417281323629747891852091148347785838244512580207150780211661234180032695004722420360828038714875126732617758558494760956297718641535916650840265388116817636560752560778280185570602443158092987035612411324351348485734609279476042749263297314203425311957824607508049227686334554978026415665062608347577967208779666964701124469136997410106548529132733394807750492195413700475400587490299477319296718202092214506314045704303165580287647465813445647229072934128400282929595187683783060870403080261331975542834754386612206520367218113546390544015393345110315129564976965609278011871368074257315035889860553617293241712089197430186917713026014159573036029782340813487410916443076417284961561948778404182201304372438470416972753448965402921773640079388628290504575960916716095444434190486715551512800497169262870282373127726642108879064436203196335208603611490525388324074205759641985509974561366206454542423959029474582930853353709708182794471438313381663372314315799173556360885251994182380570541419794482057430016266690933087127238272119955692562740585461648513116888372255011711274371759852120013944454428583898411390122903615481108858455317599557013198946189654755866099219984733082974792739574372959860158827467384244299733791208532402130645577237176723513651177682298962497578576837671361543705727783645348680786639579823798143275334587111914519007525115229063453219458664147115698865630652906576944163022198910781386199024941831550598531849494606825159088549495046942844772080004125387928756454351229028728731242286736252985980893679449342219120589545359568574193810125970534141174068904892613983088940519194333096142176443862574698125618143258827428781863609285633321591815407805470584175986635443790587929819822400629934263386072315182633637376991129375485347653561125528663577910379715948969768056396602867593881003601546532347308867404643279271951859708771512857299889848793866596129033553836848978435416425298685277245200328915660592036523895387876191318631771136103666153021432119350913968202652572629453026807508041714651278031510714012988433510087232767363590270701439432285938243392369704582314318664934786394924379314315280610295622691481817498271630551248426379319109268807160732274824835757979188234720207771644529497175441402090007462251080952259577886971836426926383528116420878858444612934731304803823862963970523899999844364812501080753811365871738034998088481741936219673642873447848864459819206220564598431889652936878880061619390990881316059687461282627735908293012831798992200639341252916799489480920111462305655071298282796639348454511934505544151634864304772247790203184627594956879771080787788245482725967768218236064256098839104810646601968511053024681400316725871311713354520619388575338867384307325076891063786364772636880066518229397053017399451138916807335398267046182293584345456204137026517799782859797164217282315047475090076649663247127855792835080331097684165382914679779222130513453203532740932020194280959983957176502339359249257075301565468183410564378037493250994889264771529414376879207043009290147071076818227764025880972175369289007456236028225415223430725809059180819273781541123356977029734296600551592110118172165344811114147059121477892599642037451140698698096550996283963922159941512538635989523474107934813081010912800563204079076297505765485210834027792573927496073125812642442314730723661810005148267694646792251030048243632138005619884921989907494104778900163541633039853579500586174769851022189167602005476478698301985833610641429911887585855030157513700977853543723639209493015797137828404144999198568426866476317702901736575634400242913966560186899521621820516122735925567801997223550300174637223542643458145212731993615406257075989920234573292243898280504341159224451988548664640844142225317833423228214147526336114047471910279892902086510312728410026846170387036862680412511715655399426540342883284540131158463524666449010696946638429275197055569376374862976277729402544498262603086837783431699787672450789299972170923450913924293811480713487889575817753748142539589701821351951874455047800020996476703956993683976221282768625826828410923892418118854209771858796606414003049869960840019135638716275501159759467957613916441094549769683804614789832146996433121720307216035677412126967022572013447863596711879315050588530817585850557148172369510195614976020895809184917688804392375217794804564579822645183903277451113532091269763954895617930647546679730615314853262302375464854995297098856955201677692643608267609382079146265135217208411407715954880622042867369279578645940631968166341657800929196706751812729638072267841182305370226586542561802975150741777921553338334044160954790440504163207806993008313062492333589979023346379997576083797322955190785587424167312316668750767119431403602238690656223997204517023811614473250799687274230764486431318902199828528607458383390477244721266846916906469946465808844335194768659908579804299890789096420165294555493408378442952002314418564389976194790100229087895094478548527775993184778640614146906065259336149173897052777850033401599503547017679419876602178326258808887142851388600257614355516978844637503533569169594465625488437763187161069993243675545762496863079735668642098824077921602834697056170109233619579470759223165456135338042352566831375324275056442830712810979853619419963848427794449038446437371590893038076620101488099271380007205071451444700536633598020455149279251463644008671171478471227491805149975869122844557027811600668850686677910661500873774604787521211303318635878349262403651299774549279263182486753536622806674413562159523820472267693942603434784426926881993594199895984096330645305065033252663160434038253688897160316329480019168549261954569128186632846913770403738673561887208084755826578456870795948768542478818757434080583910579513266561925395518888724216193368285968549853577973514728972355338725581917666240312982304261854719029746634027564831996603288243024612158806258670903394890398184973419897537374491410140334309254246355319114857196982878459167745024100505973071701302914295300933414351401408393803671553723665941128457386506646562406764385724123260821467148276564221224156793731192573004384846299056509672543859956381541067039317632712188120419679916788153452764379581976095208586052668879363786303434664474763158920506040613725187210852253904070188082005543124709505288865908430670365811395899877173220320973813921107356200016780036369555597882752541874095312272701916129569450453620448024439501282535155905644137119473826470534196123581500372617077837968446379640966640283143101493283179360605001542775160878979185872475019506847274264404437717125242066430051301238598842959830938988019189920660462674059472621864450239414909125640109960247610262039753847429177569169576056992726584353953086475639200964102636996652031668391455384778806668768850951566355378961068592755904003196711149459698934362049225689868262861965431784182788299016857313138178052130894485710067739464313261905009288321989725230487230207611557455669941176763431175074102311704385634488347808135183556681325664207499087174525209357707917107107683631738908924133672020992685273733055314814985243163951764942471317028302225830617085208404382056711958607613674779242987125928752363679541261294654474051046102052517697299573147975539149076754944962672052727796784729230607095736708707107397920804734425578281867712111597464973349201458881573816982289923988540189377305455141704018223676789532024722447042941350185234010557582796232470409322069927589774063662497418036553509287491425314697336899193283434166672964611392355637291061432559994792587126716485706614135640676042241149942229992856825539145428179953898423250667429096708636203126110248552202194379711522944334990866299927877603665967328940633386671536864005762955803691042184921221291895462461437195903651861242549105827900899589443266449044252210199566897726695754013073744166366897748095784128592680570244867258499166367185178073363492180187696779445414637760100277329492701642652252387765848041164429901689807273705795524557745933795952513766614419636897930210549232530748917692650645088292295504224237344933595371742720667078539289363198691228216261364355831463860544405014888983759616772336414121612185509229026719987668496274390773951191198586037857414811711097052169178765780283292980535315973685605031298356167206650542234981334581043907877863808708117903832529604091929368053518291812402305084167850988136562216107263287870246653820745547355643500822696978000674596567905900506538240151510199859903985296709244265230023614823304459678361620604474420467263200303625353998274538339846884612671362893846456735747950821952870580447787937903020963856346047980857623863429738031357924384934085043845448723281777798344774705252814394128370626590290075283300310965601352977436268987734191436660066871801761165210454598748366679993925785623118975243525155687958868319520735748117730481514807919465090353017635701915033775031760646043592572462364191765132424232143429467827957082013300399823906169417348068457080602233619713906231870928422791754285111749849912769706864012592648281613664522760400383181648990642091276824019204610785524425014556539414130109544164042179335834086828174375009319315215357637445140391216765714034386928651355614351075165887600942965583829843145696609762510351699039012355894444004950163443362509778502588804829540517529198731975310604545258445093094298421182422005958709418481630011098726570719882561964708181608904696887952732506688686986980682498360516642509766809954776222868161864679650896404585064406598730688030013203233408371199279498696001887268919596570758462786675907301520847343883563407998570553205706792578571418465258367510387856465143636643803788236331514641861613791881932305701620915288469874431364851965213548663275768066700093196924739004492792920721182498386757220895025229061018927669832422192122286432994795207401884777482299472615895672834143771715011657083564706873495009043851883499347583554770623200996047967513690475024950925701113229173130639623064555696214423486413369095585666815471469710855311064697583669480309044426915300654226296497718255352415404455512572911761633581460239678264837617831164308464815996783923980848654289606558681930595527880011191901314359919713465578043576120099420774494575052929656078910823740023781394486498668228691198815254322073134146239851806220814104005291887958660488718701295846738906751985236621274292082081429109578238079745470567473013623233502758829943989297071531644052328854677847468204729500319517733089646049448924800267845315794519117261361809747440282786454523174256094562990025809156620943692866739794983193104094028951564940845331601921428470360933094361325457687880016073273005391579212203099183949035671894636457948402505153270534605294136036108230107113319693763536465165552509458231637402367746886837529816432769350823103828939376958781310048840400827717501837440465811694505520307230469144712982918145019731014136535998585656532783052592321010907590292614185377968693409729431020845442171683522232441146129708912637707901855980345252763839394697954601231825483703074748979431211720002398635072870375069589394079367413327505665105021628893973472683004495149911039398413132268426421025429039012826770919588398538709562301738817984269276923431470136511645241112457402366928790052674175499142777423581008626438723308504299104870050179322930899014399090993725032615457820041307684151164877940091645607812469317993053774902878361957389768019022893605880602174956049303148673877562889045862398667219185875218493374304879312944854974083750545269345164337726870201209115777637096146246222857442974325398917617974150216174946928476609612778754437643349286634626934493255251895653461311017248219027249407393150641199093170023354310179032198816285257559762595859430758235003431395176768739027933338367138188608428157057891127605096973684600052582018417375658071856144809817425672415415538508074750639622230771155647135226918691232825329864909746343381492151248842605089265394408734663897056750707091705558867368425370160654798406547222078589711268107522447111255448261033814623976889314208655822968712443449618438677643259420958078951404731957681543318172696878300931754690327047146743360861927145219874963310880409611466306337369373762391248107090474664959051890204454533214536423893765256002317393688255565684215813785105339574625157935050825532208214386649443882088141689651345522374304458965750762709777196692317408540299194800852469033955022840992639123698841725059317724036248083073391578238941784313355727536784054854475358346155652519880378646554598547655369553293759039431590616287729244872028265444160994909064410050520676859516235066161195583515041928240068010673871619924529309933597181287242456806754266012050785866890010209289865307937554950443893843807577647471863720979453421036796572590377637969219232551759177747161629958499792714890364569080885803597530465956985204323753378965471741601539252338634490476139973025582664890334193861898629604274819880178304352071679072545519224443038705281168945506644127522275474318022698275852393029622807233825101612784174929882399529411210621690712785091691193126324252210163493936919104686507072693820787278791150337161433690199071051600830640388666375528359139142055116480040842411245070817997349206596162464447017883816088174912165288146735421871967647573408383457834337041824142906845384236495810921927250519426236757866056719107881641156122144391470824871737165369687002468801626045190589867270818192356941139749285585191052815358988211354261324900200149392475625799309431546380559918119836177690671152903797760457005972662820607233500068706024678921151410732308953698616855610001681470984666150218177191893962670395463609017887054374603181104565384506510322559879199976094514719223884229530045331315915494955602392004707539762194624910012513660594780433160354120386667799490284121150901401673378582457093663976092039091845637045743473499836456660022152013228093351579568416809502153913594047094120320988062964856567178833400415770587031777543473880249427148766120510562670532286417122058956678768228350448294209726703198479707968062837900086924258971953729019276017288658860130721335672385049170378678187944418270885776040558252545784870166872579634274403751205489105350202063376770271631338811019557764495461682295578123481610411162642261222071149340767775348066617859350396659483916799519021270129610913632753952996786997158417870251666466099296428759022255786016116515020769970908960128277846714563078462016095908423327280182457238538611035658542757265898450047899883591054320509387887612172622418428237031846313797761800580715474850229106021096831086320281353059799795130868415374193993000783651940460995232556325671029554957964736925437948507883564258467753626967193432030892324041410389301688500482240313550639587631817159063911993229820741057395893376110853406636053080397615916647295440938595995089099691026820280108767655193103729728640342351449688112869490313797883089045561233287024471985469564147480836683042827131833159054850566028391555114921774860515449885374110497526462920003777099861364224502028088450811785724453449101877726794109216840983862332675853087946288957765142206833877303648600635941339856044842021811512924157653434645713383022293476796852099534891122642175677579489791110581552547375373515315716007391167000337707582941558271105374246874177150475363720341298251435158352907930910776370263389227008555838681506225995401193619574018828586097337136682743365728711166709379233191831172519696873893133714394461034901771946901428209529448723566678264503699090806880994538535336328904353222496940212180097041043101146726785117115639201330822018075518584459673760335429783877576522724778992397923940865544855173945148031002667277860705377400183584423515386119398453306478251003321191948642282621566639692523442583088708096362088440190600765927399837106075953898994697399846690989403163243802443738366442699108890272413520417739050779156116669204606613315946753304560492686415161304776983646781896344087346457651401519833257448401873722254605270289051070786167470232890546825913443406299282614433300576044141971356115775048232576542078982588929471763006567891921880696193596182978188229714376330599674555779544221420057243018606519214075132056672901292349351927882758521255885615076614082738509827621364417316687735529623938620833688819053519942269658645271183501043951859748343158471288693678759729512266122719186977841962496475651553727441542477702958745500672719292045496948239205044891021849249087404181081418372009442813847284996836504374439124620533519910867692741761604467069159562452772892885436864638714258426437339760995042428740215890130133549648028940038522062911188527934459017224763701332427664842431594383246165056350143892147925694540486717219267430142927958267469136374820410606364505855230469147081034890046715568909878755343024975464588534484959944317188883178345316683681887146695994877843940103977914982994007186752792596716284253134540659383966125317460664026898304184642153157749416080477277681393560820385935583395988689583611014995369975256379781404257004928488882162924698857780651028021000788081060365119263742783212553345888891491461329622723428831371626324604732843961923043952592649590882349926370470509846299518546183572484545364724328569802689279232091656513212815385847929330319151590456835916494839426004625793009633516032290135073553373990914167685916247963985045954911363384541433676254611068254935077818817532116326616903596890786427316016982526244672347775271630949298495689511910489601869735306631054084589320207149693274260418138124061322965949909645628050538012875157258077316522928836524562578651825494317149876994533298949810429731980625676890154363724233199746847333406954151702226676990678936940489144803879577603986894704139162979980887756572351813060867260541163500277868654204100085621951627492411637396858753724320857191721413069165715034605258435011584211414754043693109763093396026722545628989695480173722772808348402390601080620946735929290924408677117976433496900825585956239838659713479399310756854220558434099846803659748167719243350395241772280363077744364353134336639044516782808246965659259398312477194677598439629813337736348045135635845721552358195280716219866049942566113665230098519076553480305502949094175922986299364411075620321063486965762310034758727964405598460159909981764632353222065697199757753958333416764772218249994813030181931888993798184239992951936578976191171540948170096149656944825609644516356509537512380509600272322039497717388859638921160996590142946336998857321160539841649143588534695532785081761179622204278864334246682135881845212083303364088893769455120636678187051843976617729456786823225107261765800260925769108584548114916802234874632287295139973189777580837551949503869662125558179942555948555607623292990124928977715500653662270665065062599013727858425519913475245579178428220080671878016440764153302846669295103416306198459999249806523307942967436698336629790483917167766183759144972106097355294880078034491586877681922494633075797418735080715641529821550232027022940120944434648507889946708585809672602799340267753458170279954477710853243528392546904487516372642456569233776702519985671545215357056268446103237344026855157443136312422216644204247901723773723709588024128034236181273487616112272719910584875205727773823306657624509672420000981502663221829698998615562780845892329082016740078382531970991073037266561725703105757208509439221609454484846305787184376846336253703126625241498733996185637589029432162423025206097091402640458684596932750246848391155001582767216867923383160929919854687569395441817672810966277453288055439163662789026266899725768898071131001932576675301821495173599294430921700884822483440299642569085851953492469453405471174044497488977319849120306708085458865361784703672855117197069078722031146604553727796985801798695071923060488895654510170696298298386162424202193371231978402623197717376021575807229094826581013939340109394113821164359650398027732040983482401553175622515431134116097758513715293956993138442606522321835595630757293695263273271861590161123304454348007213138126938934232018134094415050210189802970454088699493659671100819701577862943932280948929945258107892136884433536652856952571384665703651901828268244468588995114484201297075335317387381432431788476466227063214200322632331009019549553969142944838890827698621048397567235582225096761769554808454359377871399395855775830344404431680456810363575535046628403598084249140286188292997131547559957356122483923028249788204965675461902504415228254182561942486835955263086492041927238157246555076784123306168499113388792220929875806847646963977569805696319985163312164695132480504784088421967830938707269589423547658577406213197661160528736227572927960678467863518082165979405547909057376657614161082779797270178586620579401698637512262687042975387188548962408999424782618049673183595148750709959399305113524025320762828776854301374560220342195699374335500233969196879952746532986056895264607778887426819200881057595200480354205116934853080784710547957816426987653749432211320657544237034877370721014413808119588527067739402797623647251485969541442146057325773838863054675470211520242999071245297645668547941778264891017706510910964808416658532192462827255821655852142829085114559932863636423591878253846991474363038637252124010810238666776699783156501366293975072913647149602757324745631787753802516927683090032309852980501811043835381877521900548806797665810517715741215639170446230916118556406788957019870458812415065500885533483771692354409907972076000968466273767828134736028390919487327302024085728256082081609100269009253641830640260378243174686546082469630151491487167826304069011927854844648407221131364480533863609977729731148024953709898385466863932251544570938378016489090920616044667838238226836125276582973300889992346287150407749593539373667340620984126759112976811450228600921069734822025282724921307692646674499835213650860823244442981773316728878404784824924038169347884246828796508291677654958630342551283597294881613103926102980170586546113885412146014211538031119715899743659832662649426703268660725899719682685923644126207295124685602318658545266458468450762768163507477628089313883434578799901199602000161617275044597996416394189532075339822326542860691719789585222275708858814967348649575670827785802845995753447813843731915322672698920887447024182575408230226972610529611518100262519636740899736250201129184783030447252107888574844867632496929757865451288023183151373154354304449803845690855095450333566796634902961696525985675720689431192570403576644221728863941536558430001116238392113728972789242579257994129009725656816806891459732554379646452959455486894248179043312549588178256976457199343701362530876236158464871560741776617665183664365410729115975708999592095854432922852359360134014579192521490044344322836145183625053548906847502313500314855094849551746438152916878536431762360377872527701817898892363043271829431201753217184115020413028330455374791611595298070490222200635049381002764733756684133259983521926706715328828311905311108355909005709161487791641144656667229175583486614429132155412757753621568535594518956364047910982063061312085061374661048081868802675269865249826885575288940067280266417588566791138724858239513843913262451706022549083455482360223301291882069840730304206126542327440327759341597133858321193782108826817080839596980273031886296263063709755765330947825075282974357809376776745255107823049667362359064791768055056412654223916235380574509637718537507373783676596427189226545932479289725540651879580644039456291815334137022446642582878603335095717796121696404831899007004139063846174371729110959847028057707852135859817839393025850892436909063964050111935902157434844225938235016266610160462304063597832066837832276263047604502390170929190749797658965332464319394077545081592605568322158441326459554812426381036571591718795746157602459998696767919571834204671990417099597901719362775719043778843309287468741003707367422433083869303361215827060120554219952823980678465071977869941448240765945446310824918083208007519721160887892357545487317293356701556950393247391129215580190082948920594711759729765308371434351607749889806293966275424484142901981189647164800248993179249039688883653843511997480528823226678903465876916806073939440363984055524801569159004437556473447235228566864846818235716635752227876224190771565631124453021693402651076053049723617473332152498680805007923656691767525536695513705105590582616038553876473031546824996232652505987787331729565005646777990849361798641734868908643172744079354220273719145915773949783318647763191611028807572132614196391452237285057151795187414108578274496454716653511159652892578684319737439488726683395950868473927257274060886328622555932110195816612590809454506938052087323882199480601146351418553716591978913794340056291151541270176214706572991562538700802384888233171103413391338618085681692132719196021931463236142311481081463873296898899107263494406775951129858133099754296920716849825146492168759951222078755284614997045831551802629204829984002774043686643512221432007188207232111552915795713634737155910051624172188734402016210151956551939730600368666763685805242601873795747827238773557743008289921726018269188514229700151441141898789099095076240459969809551129655663110272547835363074910094644995059861897269398764177318029609184546927149792066050989088921403485172173212468929051215073077166340315393690800160649810671817276353643055199866130289345192035978973161680780272352129452398704807401664619905718514969990944416657569667256924290157437331023815759773645155408701117021001898764330275110346250283866322231653391873624338292247688787669536842293783799114861693381180671050270345184457904460694835415017238302530485986486999284327287325398233578507523006619905981044631909871410183859682131206860588045543301496205195331285516172764322875952936109297766561823938607030842637516359937185894025245405162327660249355849473417321853414799393557344320938219414343253189518414735149827673893140771775401945292996045820405180937835997641163779676986510672775096864771989797111326284735722060784577260850215672811560081174988208811247878039549363088069663010852677505701615455835321398295353753949501037500213980411147312901510037379130587423266968716044984832522921005498325877083456558682041978770263949818274500555253334647414473005878869358819979861707374014113927331618659748448257703893874593618738555961773579254088348196826215129554017553935799825042380224715100997594819749202416355549797919201337964866091579151824106769611538690836154919956131924764636299759939453434481089370654563698395990442750001547183260320481854855535242691061693003957024086701245338941095487017213337144359526514173955535618290662259595762851650666973670187087595230661465765983141787416912338800228073292864445719088123715378163715852261567699543252123220591821163694115164627977613423653268096455316842694141130698770730157153081190877937054362029625782381778224931991130440527057592196451284594584841250342176376681061265296024433720987487499907383242054515398690738305838669646233089978283622570829236844635743601061966751116143102465076668841157715124236714013444153761018494742451056652788101748537327404460096608222410297264089852099918062684513068996183187040298345807277953866608596716643468181760071643997216815207751827484902952924449506406832084335948318467798456461515965616029446743373252805881605309089924371985866735310789570619878051743451902275739651401293911113399003488219985359206178332268544854190133169829466375480576153301488888325489167807727163395073721508605515486382760863388398929252606361592630459726909236889043778935553079807020980932896555651010036269735000859803694404545816530922079729789421897754454296393014626647650818265743117825813805914892602585282712253379172355468796263491318365927527380245954750778274610072737297718361999992579727860574816249155712114131903890994169858151598623944609817497139844688451922377522515198968515300460528614565511283219440639398495236158318188984645974197115023280623037920698588008612538684280300881682487743011008904380985300259642399142209323865490878390482760787426218387508645126381413212459250773118234282571501554449551720998206908024214384781016941802240637212316287349720213532107873713060578527493972261207125552800012795235824336377701302254480229123730361766405926014545639151897150613975087360944371241000233410544112951277311387647824228288368558843364626164515297573818444286343339965327182608196960381761913176523002845887926933353665438290872209355164615259221881982764385382387753796967689157137176086803740619163047133836101217989161717974724584665576922739323604084888906460834343121061767848875538400124714451564368818825842567857675324662814471244752781494366260157806520756599566748373314020600432154400236254968850851955581494462415335617555350239581393019402903249265535890586948334269257405074673559925931418079144359027113922439247526857421259309312989658379679163304921586319367038736043323262309102897286497094892771860292954595771125542104756213090371386153092003619534313542353406265328805688171387804980079033638848437935274017100722866191071401834344252278105221419421982492921307572647537771822560719230113519856374854203142690383363646729741517457070497702793854647466795867809159035110284745073550408170377922914048235465168025704547342532257957969719646431285825160818743119031206569607587284804122014833720224678850407422813211481767416545346624202229651533283344857618551083618390545195424224694214002380025801137555221040458022171822451411613337913374626244685643474845035595046171998059656096402727022576616014283397011922201192930882214342927098035153463783801638479649418360130692396658236056921261641928798794826885670275642800943782699267076953284831557768798382847068048581998348510848566254551751073168824777474144289056217791675759746258426478085657640202451046487541330346186615100818922778034798467938727487148713774709794142180270912808562885259819115149428050623038734908933860141527557013912459854722140174892638077862326115908508235124590140751313882744623810457354745046246361401162531378389978481271088159652951660258425501385810240462345451034697808030603350026602353850395112824654859100278152446917610951242955988821772362666221907103246769449725320912279121896501769754683960669817053486187262375695549183993553272089096990025028504125108499164896097599102819930495598234299179201696080458317794320870326310886826612149134996430271650110822773482030438831028913944545682486063439378246222098953826437983672734818254441244223774237983421816402245692419023307284281481559393621674991336982664541091002002093847868690155623514537369191777495343868403932314120830228155352516128795002332287331632497116651393933808072467391242238469759552014351250108451764944770825153224368480726829977709595129536353335832746141515945389999165459234575952434968316164104991127268297578213492150667029175135061428338291012445106156114757346802648469428388974452655300412655263134324182198982485819762912116808965100268934861880845924504368797373780065478494168818350153851008394095933452853623655090628682823595848212830457620477949589420636590840944364202650763495174715132668108685640048372326322504050487191663468697247837363351335473923335527807984920742316283962073898360471212346410537304156492305954073365716864145180871815756035774647768083303534422430011241272114301254325242463868573247197942797676715651685525289932378206990608675652316328644479087970884208060669825063337052210723338303372835670233159425621810031826671708678889880874079200508790124889640319120332393878421988411691135309070680645268402730335926408584491957883767376992998457635066824556073511528313614492176579495207675647364009875969952344829877681766533328443153208579132812897993540377066582896710231967471380388158756930024176846564756829041583524623363499922659153263273204076213880383405457653340299427165352403604584707976776245872163318059163372136423726991546210364197331203712069184270766193301308450879559419147250862605312194102415830675116291769976444728805801037222144831676608275825087946914255596849266690746919999103324166311511939828081865723525851893993931040040056320513456805394035429141044496104192013990824463266931844080381878897442132324405335571740975966537079089211536372528769516593568483593087524639517863940037717288009446052238966283318323510681233120998922252888520325896587556175881292150957753505240719522816536701408156047898552792374644552713768010754604389796688508073608080125947105412497281034889813690743326667557439801228272402592034389420896572572859109842173729839902526160780560678547057983181006513877254228928005766465650726311872110693439939491384777351835487510238453264350602239846467728833410809316640098185613244059155166821413952873081325396504450501955861415571111826679068923137289643628004972655031312510504430876339743615567460831114500532242801273494975824018758442353516387962008500974047773840000258480242030678674331740945907829570346249166411810298260368716698447313021878289631593405741096715693049912393816450071922433595190492182485341074688691704503526047028793015981917201809058820971868378412886954384362297503340249312291098718654316928565507617902968547871253985007344057216438224558782367234257414573725209800142241426299107846518515641372962165666139831008393047048881698214596525287936698675214023815537184706727734237881084225937048745165634236862290645268763119125033547262158880905174847096990659706060803079998873793715269567595135205106612196642107622448031375788935513248786655078453449842260385151508062106083554367460714837103152277954839019858660752392821506923516557473416409719122830633900132239823037265786901992440608686459217236969590213989139362524576451804600109419651632133852970631430161330379351097895969893138509592363603531651041963788555474777633487350538823141162724299007226557492183311474391520261348628736697514102354093032332170028001134761879753506028520142155322761677919207379115422750058451343124182899505971514178514659278763720743693130890598221776159923695577424388502447545906142161234534022327696336876469815403893550171885840798002712436016699963176222850704049953602288090093927261007009498887045713149343368018709289046712190218651814318187625733289602855251427791678484271301692832111201756043349854193590569930781540715755864091465917511968921192333430126761244679479887837456044863847281779921910066297644212785813692223742536909918163116955155689850111863701207870445798100637592635648800498982304884133826504164326145989309081111400170164883874521688818696008445789529716213589914707065282761417805518201736677061743760657822864635227596505063443966652106858387698328447784444837319553887071592636749529807361758819032413738464434810162161874879739824006264234785353949158837112868903684454979466684634368399329142623280466298788839868070730175988789293771620469973618506896967407870388358627744348705916967911265642557530829440837790628688511876938882062991651507021554235200059651169161571061695284660533955842422813674365960272855712420812901135674186035203772802306381731828726913671394365726172092849542905053955302754010784516989604791753043493879930753197826892147713361026097762065350544843886878261302976286674843334249430336782493420364757823694364872113557459321132037901029677169494423960817075584673846250741770702581032004629285951873050008728422891004550447244556468268128090857940438470988381500649892170884359136625415221958149208311442109062701681854566741324481469977934467448748516425843206381769489421218917167335134344640478721490552604193761953903096405108971606807159330562102522066718317957621742056644633120694698435280316734523460299015900523734742123385512152083025609858549552228002421492602419797703073760107848788602483137068901360407519171179605606934913247048110637049151427545970406171884026913743928902773918912319552029392922116220060549483819876425149750448984620970572410209681837164984048141014142464533131376471863913592623692983527864510088876476179407161861907150138248804433508635315333946449813126119935446428205441380282613364311983820648176029297491974447916394784249710848605462813906945525579297994742734441870404376513930260445509651805810496096511672714946972367047321783522282973157048676914989714210477983157875446875383130314572348415314846715924241226650579296619408295076244788196172769702987057093315591287045293160277083896762065526995450233261641402040264103541678181992329006363110235058951724653885875762400824899746902266948271758142678976932130690011887656612378146221079149894713465430389647376876452193684708649373968125554407917223221094738480871744122627229659701452129979677825734478277757310278245248559160995632215293671316500309084973601842223981850184761411668502014517606950940539536853120280794850454404933307582822518988731134813832232057461413229490847961072044772470002382820727959867960120295568972356666258354476941232454858662728548147008189979537958592204190183007456110498930180325458724392959772975038308790104516833244560404891671511942761366453829319582496641723179762429689170851035549862497550228837726748711860958982216707620771789884355913484792647983976006692821036495988608310127442371071680380684268453061416706269626837185430675551380372326663538129003990336129852517817965643993162108737998909516635318371793603011300518058790313511607972379158647017131810900598064242751635455864967860982976807253985200738865954596509881648531483702645485220855866815400655970777289993844144280559344390242733725651853278670416904782272744518086304979588335338585693261565182093187716884106984387575560942612424719260355951880553240666046510679808785664767712857085264037905912054546327369771313585209817929470656170678062966898304245545524258363910240503022340052374060857687336762089133155779052825624678144450760738101064185128903066247958316739327082866352431733691946779403628959281311922887701645130750454700137922795554492381605564919875353145911208437238135597835865950765331474459231601383525370735414025759320939859308526725210399558837153288401877718480063357738751309479153487200289408765631495190288142005837060840473348177599589329855585171470312785550174915046332951735819152232851763924179777374228607548455981811086220571619538505907570352161409458317593939316770187721578525711944830515717600367994734953912062245310067648557180071975684849081193478573865537971484316453296155773273096787396893500454502628369409553623239452580111256690084594353981528066459110227820739719267264756343975818920802486054526045588939389952444734842161210608312561232550659792107906577768150876986580220396619137118985722886387659811597363183258483524228480880062419954935914379116694965883558087179142884918396054570967909879792656086623394853685973048012227853249284585485487774625527235391389327982835708919675356194269149294834010933567065743297439671791782419646111040082103963900446306001648256872972215719497116679104933042304900549608700632168465738884846266864656231863977796447905990363878486089858270878764346702937059686998548910090602117215438820922948584062967625599045306431371359023841311165689112527040170303593436501337103738955134808434238353523906803365607971121083463201973122142352916920613686262203178723607583533220002379346775771208289057968575471472962993984908341695859969472870729640029024954567434356413299978518854433681970992588954915507873730674897663464651215613600643727830477763552494123742831800925683566592435222660208009111153179629043535366205727497203569105083165884843226362503786544186386689701492453731232993091844620437293012030863489497550504936876551815465838190817183375521360215207645769369592637545888766238722786780728931042720211889543655549039474589233458569813559939659967516666367014419307183671486491742747960340197369258424965665629193899148061050826633361209950926360989573921721668236212888671587820698474308660186929503290653899366432191852161176123042796502141802909416088900435607416378562496962449134642598676112150973174104885443644761878437993692377928049416176887340946369654849446410508672772202768653615440696633485335065661002745879028940379861405607848627229950129779584998466575278613629880919860130375342845881360834840316577592810931246021552914982154740758762180854101375675152977943808360128910369208287172288682584428622128111982210532563926067077963744878723351893652799101993192350817803121143536092085778658546253649358182116916871540910594985676344589227218075192066234796237519019970672133757861651292319121334184230616253402528184656022449495101821399812470780370128452100048498226946106325325729693070582581782924437307295957542319764400522734991895576499516707693877374580953794157874710972317530593869655008456541120933522684930162943509042708798118303689386463057075781605969085660020288807998096198799329651256237696691914259111555429509980018786374799596485297092245506767212371245227972356353718761613174870626718377276601343332479039356525477041599304784096954601118460380030284737051363493623948185775561029907838428855201586734670878442780777361632284947495571663852397290253492598067922715833080159077271554799620351159978320984763880207221308910156857030084279901706132306203566308855824623789955132109473369525256925463896265478536106354548024553706049510079212359138306002690118565045074132881734414316192206699361431395199124904740477134801901714814908463249434875617209864815731636189236575073722170891063689622923638426268154139198168081967602025670464866827029986078736374898196249530024285887787092770876209817109908374583752451496096757316607638729232306999484580670945558734833413915605365362783625970955811255358758038696113517824543352613416343737884176472764875011141002421944063125897035088171150400381823055696196226551727589617245047867321142034829841829257312061461034280140395530866570651881457648691220159034225178304786192853128115167446710342997631817412373694905962432745125435966487546171583045154429514136249826131892068071787613625174544739578771132509508788081767303112976470668214112763958178730238285111342726058185290049651687268369945644714984623138902779720165005012520913889328379541438487804930378217735200199924597446928632916717490595795127884114294615290794469313311282100854986635162035323551827630400875412019514291080141925316102950896889527033256491729765337471793939908603698820364304347913729389430342777119733349668783060283420411272900051540768135937879503947325390364441741570930260591354108434850349026603844527775474168820970361335428995508291948056903365166052784906079517341819081495223529767536708244712008586562685154833360237064138403973144665403853690950038030112981033083723298966023039904381891682447107704735799606978688868493543457065185628334245952589121001368051920579736204885831189943156155361443111043147807118023854084325138187546196120308505423832392536696110563490591076429634707346584041427842038284316487106860911282681362138137163705007515560012336198055555325918353917408688123871494561332573198951080619243631522502610228235458691857382204114115643369831966489827984782789008537226397465367340218529911236698791504060183691256105654569506236775214516405653653731834572535219480773092908543501173086643488389529132699267113601721745510780249227487519096429260267346608758385462339529303400049009536782785977883114591414143852759518386418846021420102440860533681588471447332721591301751446516083150834070103758847111363100125608226273145607201008931552281437123681940285147331574976657823129603344788080056097521851870501585784020647194734827160087842158152227652506559222760126377839326202428514233597704007010079749043779221373307652405441119890436388890303262970577115459603166122590893549082065978200716005582074596436802959617996196442076987577213388410002177834098636063697676362096871912218816187170720265920461901458635266292605580842825832950505027041109773037938604247929781211183325959470781098836074133735820330597961571533893300037304519459191467254720533231542527817361995913086169157289865504026661102408410713223797461323591955725509339729799535117526398322777069751372196796880867558544507380741290041496678425360078810202891030506792990471301170743388852481760275977525406593608967882243568337787103335230624564334664149369033125095513666112289467532559677514130085259179945072298222730511087211686431840857147701726049064945568377524120548900728438729145959852190507658356879053973254413943898470080098582397690773923819442549614121932764832115810068401089070301131938242963416136969494639910390213290439933738680193117958971104333958501483321988746258409954622732940282696835732033480638868809056525189458629363571009560307518325903254218323511927011778277747564731464456116517763505781788495452060925859650396920425110698343134782999058281442196187356584154280722744726369934601545108643250883443306840200688682978315286068876931829930843249953859007444353349185776400687179171154502693335581105099789461961272549252541312663551086053353118430530634359508977072768464408705232194060001164642835726622611751318591645462233643380069555820953743575566766406331064679511667642788146056730538770248960780215790565973479828958334205368677011093194371807446022932279183738683371369665605584239134253892660801405621995714593521303259326088020914314947671123000624748906269896966949614752722531649238107545709281801620233583289972301995346021420021698723931529450056223107008027105457269382020660109228918438179115307115650421606499309683743155341034072725874926043680164763788536081502810272504474806931360930587893274916439297343216303290547596874012523414399752572411091962868464021047839819678758816786718537939908374769579033799872604322992301184535131285055151724895248206822837367111243534391831444745497090058454207422830739153561471406310620839255563843420340904639561742939625558880680542592055118417597926437794709116492882111579678070203259802331529451358985883817882703981435251952224378363469625750955228700945929069863211487989749797647524403709177835179370943312630524528364900982881074856709419622316688599395668661454215503529016590287138307222745946006310745779826203574683527832572405643416501483591292467586781198601341541977885176843338454508160371178459605296003079695170987837150408684467248500604533576879076758536360638721657940281169497222738053074197024085039751075625612270060003201940001854629285796824582288646327882081110962616100350128941241717437163798796110570851758014603739285193980684947075870207912768609088906001843699671688521068151070830024275043052525943489092079577237317270787754549692952130623832400646463268918965134199463351839395754351990927542428722773003046571691507322028953032227722297223441980449219607285977510699582947641656879559589135200677841282898858790551125722190075891501718407954278284575310840315764404507318823377878174577378429846670389012326454453366886326891318163847310057963678279699629401252447921691746142439689680309560046508357824238052544211830583206561702652933664115404620569625584062305498718469745269670009982744460283652239471818582275999572720219209202058278087388868401358454787771770568959578574159066371064695988382555312524218891425014421232547312765461516272070693869576481413566702046827420996327437090577819755574511573121351273163537718930699231930665032246376019975083621737882292426692943486271077622462845067690620038247660465544012952144448448259393541456290589350357038001616915832458444911957442856868048370832474756720425609967266253328110923403188681013132358092284514490566373595222304623618202073062194755810911219151832497765051852260365208546499791953837607189224402223133963446105674336284514735136849956015095876186809520130645773408969799708168572506746701747344109057911507980809154177467012400926133657503974945151050139048754344019667718143538200213569650422119043230934543527571662274961542854138803538424407008284186457469997316923146772302079662959799504601507956781588370313201351596183108411711225067008930115339719407538417187694806095418200499657139502050212503664214051837477316802680841672110262051316553158538571329561350120053424335696459810813351768295264124290203996726394372932633795825539914511418743170473778890876078985748310304945962167891338925131009789402446671702212186119372720640821150047071351635242425324465005334535255765376775627260132747286581256122524830568198751759484304310464115939191644896744244460109625310014577636544844058434899370818596822170290592221721400157743446969399014574062401797116265203088515105255991088085025522194359265514092632130959334270523408739849327787074854517320538360234276841511105996893757720748677990594374676655771379113259742746783993084558326272984045025808778158369411286477593033124197439444944911866228110098937265853243688067091601942114946351505404677283408792467853460798666105071425409808419366236055014184398699585408405279555270253122469186687470505371771845172306444272339170003245118672845773344600299374061862467383774828885853595573289377426734286085058756727727422432080860781022770315189750342817697279581658319433432843783790546286767475958069231191849776415422263966821115062812602698856466740208298294891444863806168055689383745167583415975474649741353512564957172700680852805874070839355179961796501934821601561437952283822841282379864951029178497171102265380061273418025709710233110429502353514242929776252772250501107180720774267937243800405516470678373798768959535068522756980866006693840539097165571532026982538984339737790944670703929025468785700354189276625954087990254136063570766377790608301810271625170286298618074487167673722021618149367189545819321540583541739524396321697789789311132928635992749845359248844266247539849174153754543175003404150335819727563015731677188399719130360724588227003171984518350224709959496492692522406348496141992798601016376829227911547214921684439150104475286175374107797087707227007009787125836447759113870803008866627615909514836784798571392324576207163337555790049165455004909543624960789845839790061609837225841273017209487676870539511236702203450164543984892499029180055053703343460297012123189697094850876791397117483212271048583292957760307382027605845884274399475691495254772073946755447415006641567050646503928271812197768663779689396937065621607503479592589533137349616515681930913464317340993869744179755466309740509817140626981453600521348066967052033866730571022458287585795213984851271699628151537705897938008746621500439053021065762099535348259458489868602156340627377160154554240776315134023258716690340033344307522586655731716627761109033858114359766270748020168853698233086761457425253759841179112292454655623550044738928110624293834448813481905175679357438204857410068853211766580498340602102573865031144596813286080059799324081004510033171543064875955066460640962857207450440958841491208732732476442467498183192168246000010830253476401478191673467873166159079085608612248717508983418635479411121340603604038850654536095573410614368901652919762314260278160671919612706981172452105815804944028909156547650473855039526491972981159378432283229184331484105154645119208043276660224377946347051317063294521076861536714769691430265247645012626687786425475292036138683268408887495047004203426567323091288017105681496953470832732184695019484129124095295787071132036626339945415473308979017481592460904451958279583776769366669302263211842011802668584653613840065437378253569890612048910837506431928136259068948245104817739130607085052560745030525121923458572396357680521855855454919546798099179691549362322944804884055342280831348704587509241368401443654010499173264145899607237337013216429904668142746551477257515191716859207861679645252004900253489452125828329152128418201852763955704200937927664265339464036911654305629935136743282080901566073299828290178453160858652412251718524605152457989408258089945406257676327643499509260214739164082236891854044575897044995366382334164359737389411340449470490672262784883227853964572809135945199247419061005697001032612637601331979565074725730362718645259430820746552420768293177827258811681913885953656942690624242160871845027983252509550649898112223848010653901296556732442624951057426403210355988714147617417537114058356195811962226901048583340930488205018348739841132183292867212869478738576631787796674237733084861403716777721513791312521030715809844251735657885350217766913102307839836818261523579893207298033604090033702463110046190023838317845769022871581526644682302579411340411815263375391825121531253110492727369565215068447290324356976167733568849685348300032340384446171753123193645926830866310595227950751848941612475442338079280718468771321273573375260100228831631033777678509179297464920906740514285805137813814417771553707406976868731058250386817565575188142591483907558876283711052593487010783372442210936638940114069618163427445769261364205512938801329612335205690502322115416891321921978201371465195018522843089882774250915864269984576309309102729839034271900606810788012064119994691412613773217431323775177336653344321757393403129214058628682747057594606680418661350649193261536858444267312838378480812598140417750433418357780435574923336122679519827994700191102232158084782829728398638598788832138217676595240953385797488039645960946900725932907194807611501562140726983146344758136387620786158029129146775631195551687920964184712190818974994764331143270279661578186654703341778328832172421112188681359550922289843811329645497425323359480020586924738176165866671960200464311274367159843153998122870781282233698866865103969804170790803906500255627847909615189965153897978477402998421969961609939129475660702470033686966937940972439543150722721114372652693295344244155594258655724956386250563707406687117931497818964176265895121636681788908026152986301445111887422761332888066812891160368876287534932554477440925663805937739632890349378715646612573091526466277504984183498297316539787767852793364487862816799064721816481465973766845220939525327021946762053415779969663306958197615746599994634696611383059279065392254059173474924927659263548017722552997937722684417394907997755823300940098224958490100658899816101399636291474231444004234723496626958517313615817294002208752158938880710281402338521554179563294541147561715239861082131734231850401811297941267682121842060574991658707811620868543464599218806261180307151284525951945370544556332497962947959120083169342862206502310461218668349292053519503547244451730942887442798799396318432022028798810009466346575023987209972884092001676781482305673891863132546513343247192831167026375337109858462389664460214637657405947227527500403602508606066498330506173595013577223430685060879123736573037186880446676977449136493621063070930848976582043087816243054681699335105644110491551903628044603411115349501801825110855840911941006274889549738180170471224522257710109915340097134492337047823305004460565095406191088066989315384040977063839038290870815812728461747386496929714180522355309952743434053826491327263020060995585119162012775956681446307965092641377439598118178000259295514731759992210851017332547689978169870683217449974064781758132245103595838623486159592271534836014539440787874641661527771710588450210452413295049157154420914899930664105240877092404528742242070357193148963684535663059092181349607712467005742266695196009823696704149517893812831165107739099568355024767393491323832175655728564294934032609139950444665861837714618372647462129349278996562307506873125839135271877208552567467238270508199696792366377097949310722006193272618471838004074447436148552282918836789585769795602418103536547556314782699943498410918677361684068700771034948056377294712138284611194142055415366787277342703196964180412789600412676796650899327048743308930209197623686481582317216380317423655087394458783999744510091006753010726765847292050580706439070907924876806544164483814748861584646026443139733518068504086099299358972878429993174431965427323922554019980643824710160495302862653427904051910752410881296085558872528021523370572479083432711721559403629881346277995468603707922156217482678605759150366929773858541873891838378078283857760548741326787246106817844312924265226693465231995733758701570188452593842258613476109643898091253945434849622218117749797512021827648375509815826323852778927948817082135376457252566522104905304833231246292898359874960938798690249062030549956469006435955781175316548341613511745135671561941704589507412528682211067805079777242595768114694559308785245147273677091610072414703023849731024821422303418695719693528667103713069458349314850125938779694003456592015753561643477149902721555758448518903383156943430675201268777033007771131248729374671844873996859986427820717180067661894767756435610151834273554079717140869565710954116754503865607889755071762113660332992474146954957750459890761394801189048754810628796083825058618498576770539660280234191993807133940802311445836186989351310007463955171533030344837194670437373265802233103079940436936606431505914060200655223759714134901000105067579238820227563688238949062110769097683503878335962727178104872722644969458248676609228192912420521774140450606071462400117154276454340591065632667817803316238569606708789809845373004625698484244385668387754294861062846289885372910946299847394995871305752526915835517620307156846514866549603624927269434113405388109443560527134740900422111862016022713063877090420322399431684632935131877172216120120407376269407424074082929308673164561707420786993324436411265432022400002125150705955999321326117454409393426921636409592786279267732695346915236288027371191558262676790431580421314968807191434576968313149153438393263737127843239154343887207883756896750443631026795827916261534633837029926561565691924885123716091695936467113373498859185958052507913324576909537490127505544454537663777328220253776767037922958006282759690461268027241770848266425274040030310865416240154676625271035857093159366099816870866128955549039227052858943655320619477913486907069110750653692259502088688588236951469103712409079068570979928923086533777974381043851619315061814003274923235748158131208809685971901116430631937400761925490467663779879908424023637099565055136770691574438607063852250644695337087355609417417517075868327571299891312090117904099214934782165703447354960529234026323967755828428081019994088410820509005296906443322690029432963561714208839826772445024431147417747057365379017399662870598187375511282023566520766191469124078317745813241224780087666707823364622582005426666454646369403584896689317133049217572008928681374242363181214491686486289888456326597171550180172927224454243502193620854251600670719533420349340891279351110704134110073975208789697608241587037773871685179999421195425575655937452306411115150982210068004656452421526695927933227936746205922342434099026454178173783541118778098728493820101015799864255633139382205172393622713797685524725079179238175604847710878008610528549412847339826413014247154308596086523690433653080582945102782694931429493625403983729867697417604576273203076679298257583048409981374528143052864948291028538465509011649525418302192923019354513165135233583272280207305303040950346206455385466213280341170827257097053031572304757943947909625296224397137915623644175118710274999467336416054999341212736461582286847489421379909234210177998955721426331897555148682628952067968376372231966882428970742244623401190890646534518952375106149810145001495384936144998323563655904580786158908219363795792847618508981639669080497964669520980985288711891090954638851604639966103213444726969633037093072023541490089961167294897141842519393494729237676749586911787304786119676668364033317180281518649984846068253069803739249127340597122495698743533153202442402875149185578178659264296599310155190457878855679820114641925862425450061806841464174962472760144015779455359152039736613480217258031968981744838255166458781951362740110962049709907630676379256439228756221685219237628389083884239129777771637409756780310680308736033416392766786528893835193597746511800788353279838042448239233337883204898787089124285816380779387838691649613272130178164894323035120603105934371910873897647411193276794952201978219910396027831201728410153727309559699677112612425707762883782585128074828764492863495805493474825694060844479351354314470505269859613541676087591009563721038176240188551651772528067298015538245484769131034606676692342114301131455213784301849761507319164528291079980902584124940769845560698119677441473969718933105354623176848746926648149697324381312946701908538817072903074227638821979480605304674455486495557459785516039410687125450127362506114383473240772050848583004536742609943679010270044424091016799411823510456451621851462107080082852631344593454181414919946826930304281686444246457177596222535179882374476769332527797840997951176722733476432325132752185389459894236883436935500992207202947739244759672264915287619439937868764305355602798753199017885093573538925913689729756160363752963890783702828603921226520129121412061845298231484700623319939166051615931891036173180728065111557760128418262574131699949948492944207006854831987039110875911712659080520140942653669687307540400642275231314726345107537498797201188451553251317284523645125256073036969554585531302096640377637775344134048703202791414480667975466306320217172345442214615182659022252853629104614549863810157983282628131277942280611293110074311881943196960648818578266684711443444424997866590397088177358170483121186371748335361800725836997269115342457237355061703216416553888198246405962790148888036810195008513436640767225317432140107735622999209528352203040152199128882951504979126885883029247135672584299064833852456844340500577623010376145169521144361838830412293499383842560855502757007514418165670568924704312995786423775835808674401556029459356799800733227017237189724043353708584714400676293085038550074405415355743733854433425763641682171254545732272282177142308285968549907661734544237928244368534401735339283098923977608952951975889723811866885294103743768650389785579108815225600350827648748247904580846423669706382259513841823844169864248718127176184790251499131450242301902300017794512824909760912169355416155851102943545084860727769184314093032428768304606613951851933940903156673063902812209173248694181235538042000251415601702743902934288866021210847804126630738940901538044436441725376404956563896722243828913047833990174893675404663245795895163722006885570219951467772024140425234447320052403256591791959858973290237827141521009392984682451467197244774218893939950452043366192994756688864470433767059082466204963276032115540855835892019665567731345095951087767852607929601752379674526727711701382415664691594912676978457479874348333459508501953465012796076834751402741016850736376643982776662239352498409028506946179245621041871984763252472704164506446079248322117791467624108110487689422771465286852377047384062579791390617193483573182792260454769119707270403793529096761090832525189641142752035545739570597129033410582090327434243158280029420768886156705943270809594905971088893572752812966715856637594254765304486212805314505111492246664264017317988752310140562791487691395981628708058393899233317806423910003095448843613650010656208291292485537716205692013943984830640380361818645148756255294671985438881139085055301254641838319731760869624205215694459364449940232933742046624149588665589049071407159786097638411932966109141252522511471847664390233555801263856572672181806778522843037847507501465886224544484821798710615832454604655593777066335469915755596319494755712053838271141371686863319085217444551391752333089368314672310076403991286477563786838578853566222304797784157212072356023944871307204838722442028207580179348388367228345218050498677404166158809792125948702047365206107397730977999429117259828052248844596988005212904758422978085497298113059492695649712857579266309536172630708606910307112328155649712621889920828063014335696362764849879923769086835199366232948201416084714599897284293070767230033432280147821211770703512851826560055647899561686218498733776170770776681567567889965488309416198790134994341836731526191610309383774846968959965826979563819904149864800451956453585781497546171444314632789148986243937024051051651645969556396159178802005105068371385667485092395174191555954873204359039883783940856878819423523924913276263062092098559538758463738164969569032887234612288735710224690492436888388317815839510504799906964952450944573495598881917883712808239931293724611089473334359500628499668197193339934613801233944592966085730832668908139292628696795526147968062107687266414470398858081187599212880652873993453379123671183296641035179231063424218606927183662022832432402987317595097031008967009018830934374482928664997472054773284690077508034268498143103818902710476585071349052682637231821808192033969709085329993740648219199877839395322200951339179660345223385723396550716524236561071468388637571207229884814613878353473808540665092753172235275382436875723132482741650729156964850465984904455401129197233778326108347661119629558076392814829969271611506277339489097066399898296170774058029139542514808209756782178582475725871735626242173155118188519317198903962293872582643210607524298529888386749654601833774527554955236255727433258071648124371102704444482134453765010303535603012529495210266659649315698634287510784043675328130685307088748149774633208757107160904412801958927504279790666701264892267937739524594195224106368317243885144517980353735625328583410919139027427672684576097644835088410989756402289718866334801588060805918078277083342221030781899555175952887484758160251161814648503534239631372442753387132811197688735276664723372280538230816253578779875349170564648522680661705115891103605740448082541562021159622128756362273434109129426619112611975405335060292776594486287117700574404955594450667654314143480483947307822741526053316325789639682875357843370170280354209942571190549864863401546498356252921138347035893733765193133400769050594008945100729442438074616041971577439603286945462331067777661543298728759615256558013403783670320923459727104873102273708405530150691467279361402311227726794257968233350548199410729076751094827566225990436544593217674550823014402661280707866898685909809600503439506521205041400563016180678482204649559159324068436511542853465275942983652447732218781548693170778832896409350184009655629887082128629394184496090640744035177659736325871537400217075916656990207772214613476345246897574178391378940858111692459588423031292885224292715733240865935777980066025697237902582935137341861080565115482611061789445567483743207072702725923429724619273599299361871968491805830118970382255647500020960803748770814166796352719354673335069552998796671456734192752083702101217686606793336328821016924086278550256230838465950941526948402232378768698608737898466523384522868438497928604805874478788810374340907418463814840974493414194168770079666511259127795489416813292805320863182914242746560777634445275894990512222074006328528866742814494416395703352768875700745910288912530151143902509736509016793450713261458737585512828239319646354819323481891087018401597578006408832151905352421421732731470083894609335678151023931192005489015989643564969664170519567347073139024045803487955281389453720460674764436904346564628909217477281351491735601532015620856718011902459530453110969784524046327717315743860254370014129722493541978827199077834161134453230419975229252281941022601612829167399618853614586569471253084242653086520514829871814402441623687992924983168220558555805211201944375432924721822526064841309293706306776594664350785721977250776394098566480230833447339153058735952394975401916443638369173606872268233478687637214009314775425937249406146314092315933052277224961221755823343476782276043063645948587539758559291131116151285757337727841470556077955044787134822596919987654157231331249807308044882404720149828349464723461248756757882192029568224435893704093307341091314323422340326701965759711581398041924703639835679346249597102042676801139581250341597087767040068629130248295452492113493585109163567728013498523839001750781940998318698615442999168862932695930856959122485273861441438155726287984478537555183814812870303279704405235363659982233078171141379223378928053629010134124514495805493657205158485370585013905857205903620767974681024456584180639550332463173407250277966848152418290185371279470146818544935027010605155696645798216027548652787831787299510834046324394924074221569401076626915255572867269919061285074135426744399456052173410251624902833038026537448172554004006858750860702305628974705753744705014729806072193857099881537840279103245451229707201710489815907612697291000003485493377191634606582039292840781042664292481301890526707256917538398898380920702362518489263702773766027867399940666556291222415643695014419776460495398367688072123209582148083008038142755469875058941574111516146859956147886985570112287127646894615808468051876751746850461243996427946157832119129219686822666831929107797406711344485321107157498054112385576479038859889515066964413910114548818067662152855129152537386512794400859941927685046133792832894776011217701356344642647286972244016546953852942823375719910549369346780797612508952101067979356407437970627857251239244914721558970871247475629007401503003294421820532697129366239997613489512009122879303733690694359321812868611280305768248210195527226392685380260379812721324902097545115267673247099614743872306902530676880092550498722890037820119705187441810964765914975111446982791745740940993368674607649753029872729686899301605535192585498434946526750835398119666923884699737228021318904936191719112770420407973971124112050132419992078186144964243956503310227763283591445328585520241607494763096838190362124506403607299607949956044126994373235656160527177976743623783103717902042942739473900403473619154536670213035507376249181794315576695011501087475537606849959491346874021453611183294963913347771456694979912147016029154485399951638118881933216543843683544838975769315182663334807242671855155886863642985940520635514391015025591408979836605134926193872904429044825376078852047473010493258692771328928022541779816718260205368092029796324851840781727236905983777650455380618000389746199337961342914156532035998847121562694700727320023122696196434830050017969304344027922852903212972871136529228536838278483935772475479015392730576219253329945023305585860001012870218529309679097710625987490273691430858560080267417856219096651474265608347615442267765074325081442904736548821227947804495850890173906104815655638469497957139716305856698020548018555650945701143171341296963026512853930544152134496353555173802039450526405892669309807895378333806955666119136129035633117877701523999381450430468118295713546752075603795041003210017521867795544833439249532078050291167547041884624624741514441951057049356264029474155269240098201611694792592653115701200339427365527975910757949770093097592916676666105709199942221312730624546711401952050982581076428333317654217902087436313013509015300619396171072508535929182709630626165378522985351088778921012999271566343889759966591687231238953912472759266741878571632258183738960457244009712022663014443954517482545304127499153186909050529257796748572189295964046501304512137640615764093655469626697458399001203516795398698633918679623973000575520184879770703056770805580278302298708789521460484099553025073850667340167603157795781359143358853920731292327077810359452877050814497469542038175561886970614517068148104163063263902874933320790389643562105325271024240102523853634392050730586894053686262389238053904838053019434054862747503397187043842018891067533756213108772533083976158262634558800913434504986441455422808982015278767098470878552465542958066168313809862567800639253260845547393813506198615093818143714025346167630016850053329221060206222039736978829769698149977585589060550225784023070647672521369445144523189695445365322475040218749186351009546243477978575044604108209245152311011249382774311804107501197691081753186238904499287270484890003102994028439743606334383022110736275779389381554878303525799891594767606022748970645609805257311708741008397905756687667962089574692061856921661726050526057748445557876926633711777983717415801468582596966936008678948410646605376774557837846929025617503671594298810408561349663704707378727793265966396239950731354432256345949612219340351908221067845190838162182633302832603611266420952367834919662778529446774506185960136146555756011204866855887784993619415509854059604270003851715169555505828952256545898729405830781248983849034399350256631198071504292358068558822667913704030698164145210451401341326093630159085941634760256251744163053239636901765403744568429360303887441856085355936308677537215081983869246196887570424458001748446836615651837080159537748237270893388204056237817921455071294104270905043173535632982592957070252745381733423180013004878832307445161966041315159478041501553446563664549908124276185784741549876498583847164742696521825076744932771453621779897658672234159386697367381760867490734649623423725009634030858406115754246252402681692826543099400063545743750345000903116288507405797650302432795367857485565712626747202547426614413089872764487290804875243744443083881670076873844705343203623245211234948675950546672086771311175949210998190296442671875098746233459557846974512690429889319887400407058518395260820776916977718328346110994590151031011858256977592739253728005924376169455112594206624337790593386614825133930767835073991897730988582090059086124884675177239139434335493079681947132623591845655556658751957868501607515703740173577978811663878970683623633368261196305669453752825052683341407424042778791033770215674004192601281116969370128770149775244178732023167507547766974917649278821943249596966474246365124115662249221269837473461955147277632404396920646018192929073301214934877651666630848334380211600809786543608337929827877287895086519399254876152773413107868442074033796490512549648634259198051009503043387092985923060407078796848061992821715153689945856742053598378974833807825284107962862162097163060397307839901139004196990223713892864258043727662774112897903443628899113494882615812395867655261644323978619289665930790407195668167859090433946344411198817334644938335820168082158033241987823989190215719719732962600329159154351159832252521761287655305561180447112750546177549302889315155150528943216796942060792601419365130622654012998803532117731905122617510800401612097534267047289141111769482325299246845515120671689386835635152369426518373259476193876100379569541434924827771217398492083703527892853676959616779280895706388600817980804724609329021898835707826006892280878362727721014391198540022431917283557950227808469516492086174584708269371404572109950864590744279927037177026953265946305268075937358354809649505293199217473001423177906916325758183944550028098935389976661804259415457427516230424647986149684019123926049545471567748660881160208929140338382995588066205177210079962685414699004269000268407321388204176200544351469521269658638585813596571709260980946360704886645555544174366254293381375039266259824801949386939633873986918555157033966157025146559915049432584284603932615013927540140124227082582397858817860011614056803514443477237848944925548739470555175888789605201321068719362355714063593727966414602947392837172354675170041863963795523175616302829295071613867285542100413121109442917500524168148634435104345322559959912517218988361020838991671468874330472784313735362132244687032180807869639719621121391132494861243376996455015294926577812153372293463397788916131515357013080346594991524972519308989383215827633098121960661568769306996796892116947399441525803227336368415703208495198598002802673959926840394059086333504939374015509886805616539174236092481850134420841027952137136629430158129728741426465752784292354237590421070817027664039604387682638080412276422178312780647614633384383384061945313988752610470854229097997988532324412036487519217848393515450486958519236299664869723834651404658197299886553324282483527409158686976085353230556091202550429963241860679376034369908416824517125010649733473741196747959274011826786954840201037908768594818652086963700208784244372015567105085776117463575251967061920459734240126112813804135005239513878904684167772090180337760171922357686533697572932772063691691669249322728355301919531755349783502533537635556661345411817586394147052980040322278143110222280186483193191788957405095322986564872070290671107827517979427898725509004750999959514812853379945076316937761109871553599872983193665218929637769261850348087662447411370284599325126497454677240668090560603617443660204636087913806569407545683749058925789546754708841260322953747138482472541768362604365941227886454602192687447673228858968254331313475133811575065250494789444686623038448355229583751819189841992820810472751912856881947855330651047760356430835603527810280207916127666693760277224023348699561463096488966193018509146195593657795539709509150579763221610531226556586575874093784603194272801883760337970766790142005742339312933548419100217405042540109119375107579240667480311907936735468808207892695179550932146683416629924735544769975932298389819567955941118827701142600600042604762406899857362313250928250816275768612062515195771853983575998604009477348288571255198439860301363812477586319114691441157225688467026222202992221166200664788574191764969552493132481647018415672563327954032211804512784639987472470566327522075475639472089993366164084710271942234191208049623077374205649025772641057268310947373568698000086982763610303151293987489103130198447298979773294658334876416742316363837500085615846913362043433211599859590876819096181497149774842027518631696240581611397179051697995098535684381460149606858057006474262862686696036135991129110444773457587548498412143190683335646361284590640418445106101140328550052690565346208342870450462686005748355106066353221371247379059613983737093603904797706133639204988390757848154846221622263402288856493014457212911351562762168787993038444502428209537788145886542414568555305788714229899200667243995274269603659555460255930882415053694517817881368311402826704058054475938099919960811857226761414392420083631858505719171231415008524563086101332293014098013276407850375623847516720126993968907380735581603780896209422338038384800076438381127413151837887238020139627762431979849065706483223820213244054000257452114290329826837395529072316745881640207074673259726561525018945894440172258767789268228501812869755032097685116648687374926425680734751146692609443169540529983291441160288406941870096947037362416725710335935330167364735413446131011422234802721256966374277229398958058132563520253090312457936709956296833478040505529588374912662943109926557002060999570996831449044514819229178442966865425373076605208675535488071946323227746070571042863306107333068576447465678700888291635591250807942721557378171920138095106447173102482439994348468596311850095191767454555357691126015651657902622574162624195477914287779054653658050533102707670968857869582954192186416473949696551908921125408484874777680004043775642026564275071285623724448249912163242665869157457888129808963779585402909245390730988791177524566744322667425924091265730063832222197112018311582931870450305353166658118295345025075557504018710988762272003035468839543510944664571872491250765528572690870489454466621471286465508333398864020357198833812663518895121047256728194711585383693998505279178405096499168604421587529313957684459975544534429430883330401996494243478092588741400575011645645837998796920698515874325405062477882662159532497698981799645539440027718403310087858882091537370517436721848226282339977253428676206080092206819044673974971233336407034340940066402618363506488446037177907447132620544096449335118366016587564785945951563781330213780057240755606824054102892797317871178219415542808773909263007534964936826589842178388116315875959178517624375802344813969500008241856485096006535977153276681294643620486416784476711606620485456958588972306493476026529240674913905281165529261359403320723702140857152290692272108020051846756108768739650899307668816561967384451759515490238695950677177311594213740357574079935299179052943177704495433125865814387677889938986673036844799355788174552765704990967260071283296011415795141786783650355117840181228620141288158630602209174603523041926387703930620722647746187269636101442182903134315352838213056984126717781701356869974478719914147725379956324115136898413169124657147164656688636630447032209780801737816423754042952514350365323804839993220577243755953327407302511828619070099335435064880987319778090364193078620427578436182076877496256416846733175558419524032793032332319546148085592415523702061264888722883247528271486584073288913988359021269211508544611982002193176471792826342115177912285150720980179044024086495513203155985148716351891393294882589412298799104303369740260199127006748558037788746139635730371325632497049236169186986451347813930163350747757641634034687534802524518779164778177240952196366846182325124485051504837558833925647849196839349777743442047616426287497666935084786290810529275947404375248730860236985000207381837822795493061827482306738729601529449189659715720543173095646103274057835502820226979991916018563060301668252109526125730108328021539918270538634124139444950223561600759545232444635056913099873151143324435215111491532987285333933894895614536619196764176766005760637227393530420723627429739531302644831575822001357434416040831410470827806162878345409053079594772499336471479547689008618630459000900735823833042051381008701041264805919882225153701395396022723785426608574122388632674664966786866511184781259189484005197144192922863424947535804798531994107612867961219831588379141154526788892585584682588940002785014157190526268325410787064135128618583132361505962683225181370263581534430993869350182170907157637702533926585012809522080403719574166940133331122677743541859554770278768086957617536036441485527803512922482343185050465755785092005107415292606986426224123280700325621300695747928746982420513285769689566107956809730249074720908572503470632030818837992390247556927080274422355176742059690022723404018127321805993216624982322472429982524661921306180349158952152417224310606401088774494282927354193841540167003234706359226981833132314038459146264846291635297140912024611372302734248030409362955581174309082294254194445555510100506026514379299744827712736259528073305163142528080699371228166231528801653185313913205194433200936589516187487618204237482405228886687939352659123299725674752062054254000470718734136309985346656696339381526938987402351244578749379664716512927169738610882899529950029754451535353061586611184537096849502739937371109268785035256600718729126430976331808008366567191455493811059867184906954749482709848564622642819339396220725639493846695324826883942312091278199081606253201722057700202785617194729173512213622157205564287240898304839078317954780285768916919765886792574942339855792134324753812167620855887520948797004960965093469507260590635905551460819550094120877307625042276153069496406120566897151910994084569052699978712962040452377576801070413040412718939172302381910727571842312969704569128776972460707786183991789273656679631433822068970082415789972580727342910603183880075123370597378651943926510415966198489529449065726480586861850432882780624890697667479505313528414756156862787194362243561231989604753871927049045307717386768299242136128642471832848410565553719591063248464523927958913471907749546815435032364453819422238886456309615514316706454077012136809103978643463755230833923075904682402133610948603355137590981323190635951458432468672325771559579858471442990835043595782975463992403575857296938809307715636787237422224312793778237881662281233500192882553740670002864673837645199113293886948047774417174154990266323844022248150736031142619724471016133121773154178849320932841939041692870696440775328222363976818875864553411475803169601806050060562528549383391087339571697015952332410934053346716861196032704156775961789856674741068696270105818638765585645868934961483783966238409243385651986004195833416023102964880186540507126481557952231344935331138475842909908221045642354906726232669970223233305306012592484664116587235729883176792525638425774778785815942703447740187679969869033289854810860728067237427180203489318392135714539570867798837090096151280542081711766254914219303780045279260390655975481342787847178909756374563684282643536982203483568495191963088372783342407275092715524121848149652086376321357845098193700340408988402642638124650508857870696196110168398075934211069094566136518011848215688177675009284309749916631873069337195391412975415274501058829657051232978982286132099914735695708802985064919931960259847660244520897733657678742373896340006193298180284117410311132118987368390660412772860056615514175530317717474291926746149740486668946840798681692301999474627163125524958146230771897730128551938597887786010394471665901644924998832510140182570174465587111506327413746253181008182878107735091351873093872292943661971944128690549999977665901456494097039925577830031263610015662754709451879497364073000869222067999757007882368129672035084204325103456234079959621977528454729625874306083576510726567782571039574286163135031792323876350308348575026735992477518959082963622376754432968077179571252809262847188445864787440700932048291025949127236842838301400982080425128737056522143732968761364928024611737624361475511039805693128373169498907656290171526001618136602587109067414956549976564104748803159244490481358059848685094292173060002592516710273512852065241428657703287022816200090272414456704171004392396950709224300078148115173116918046055042941047246395637206112141526295721381224306798100615671949350738708589734326899577500898747977813385487739475951254256377594937035256511767029342628082699688194220624602191292838319028125698711042977938082595924460256108597308187782689859332788273619799607678862263521536684074377711658907853241889616181799080373605565404495169959209967976980519534632987199237847983369192850824979210797551977421899743372657920981001183894709982457388698236337781248063048943871552656473941067120084738949405931616272325192801384320596077765922085994933279235422151192903350232508443295669231429220479415520794339611782966612925029666436943736917753127108302837232309588985256448707966044740229400041825275923944795429620864854868527584783528658644597970876513430605789315404136057039037514459766861385285460198112121552797890216611393721037894342973819584150506111807118904388557333994211731378085763000172647346392738151251198492678535062900837212252361091600618399109180177154664716998963216005722193865063917453243569921202543198364107815617835326434750365314966679292982080748160584643282697314187067178551838041465506761543607432817383389311126532564343026697767636078970526709039575330317932285671472730205773073746140709574457626792156055417635888573236013602764668061005415509509441980076642162368494515217000908744709405038658295440566157464484777362187042351327195815060535869824924154908853094232975030581211948286308864174152677330749669775161109455437999538179529178714179558392726021419093996213046239667095421484672237379265516148576918609737488208207305264705090752316346314630163469289485903456555615995628368023999141230877471789117130194212758186249771285060690918621620903094679751834817410559309604022300552379356617849739403011279743560514095080380056322532678538727629068471148319411324869445261781286643590061504804992127069647749255199132551247912821473542821465280823294826194491274436963025486378557750243071705476252793008865982813038459071138387558386804591467242579762877260183758152654057745712432210873105756702318370690515820527180986669079351834810919436274429465901218349674648998824323493248495050812618358892463835282109134363190145083170607909437646935905374752663570902854450725328132183405896566556814242273517528044459446371529932070407381908379433060167166881773141621734133876193544272671322363763969488571885936426067301878873693346964768214349600130145283579128743668629551492989414795812878362400494831959727135683423123633932455367815056119857104759345816299470945267737043238671897710437704734660197356942999995456554421754376757665336316076568118034136819520487885442315191277666119658032169202464253131888576580635366387592383776980724355763253234441924226908188692967494733997783684260712906421820238110029991491683119388687841013647883681944226005462138976243891620885697202283688594876500759590920426797009066791713141800800059764329088280027115172014006123692723069642744477556943961738346630017143746456555213036186862233465717272869341088531273365274295890380916262357887165068388571842432794436483896902307101262615836375757185642822901756020242348547410894995196898151219675213631827500082564723688719376076746509477652110258782725476365504173531269280444725529021697638225276104052276728932758625178349457498300609895806474281448396601453064327887157673992576801424448502970504831275910761941050802632787878043167977979419880969570344455649735703615993526307433387131635046001735427258021226454640584808107795914900809550444633053797791705158465334005568416009441426227523301928464070886947436127126655765663527024974117789525374039835019540589172141461583466629718938166230773929819800102217327439219616617218849185866715011901979961034146319304366017162284004973846590883342996927530513139137203389811948310855489137552070886502250344053403885525592431502739118777785695916905592328249758380308212139414686705054146622094405128278185159664258185825380380669657197476572328353469892284812716194122864942872037777873293720847449061595863421135937848582969751873419948123609071555473963883553697563805590295059920279585835674656124593378150049334946368960928527460014506788919567823532847943005405609464083220947044872131465780022091844653489965329103044999199768353472569781907827164353460714236865668091844278955366431923916984349299507435322308402678815427794627669753418886734615261245132503110118679349296252174855056327312171630002258967352352191481514694119644240808859269610537280880651925350537091798038090931686648501471231643891331903868056930601721657673112136483094085042019508142372018259425956066521100229525901843707869439243281084140384074038799798214818782318489838358497475471372066909804182179047728807388557960938068083639644514592737399875432104389294365075331405254778933253217780446893935049588163892649358836512379250045411918127943233588359440755377421749602521161107664129559014990670709596949309969162533859878950797127473034680170588919356428919947548419623989331273835464122820651216903752141072901911984736133525733816914840189419442156183635239768503328578894516369794750559154853141014406393107652283958061780709762322733738704781715465960300062198571059470695354922848432660519753226240290690894725619568707405295201457982393339746725760812811306833947798794933913271940173448119556681654373575798613130502835648196316868195347832206015429860878973733193980320150132693901512220044374769700877865028107645418092107710347638558228705833998489783053761500571598176243067966398267292950080041398304424157049936829937597679313173215029307572819214920464000960127124395927864609941714496618239007042724958363934624504896169547283928194236193990391603098297699845976995749370939321693180497187917627179220909364885080198207982144819967292605602175687849392150777433657887500615846770244249093450311278793521416301453612798916256269057077552762891584210431904203125821316102545348678923505061480111919961113634115599081841008216600435258682957011789248754681999202203530881217848935539502630685230453388912620372059500628746316869052285795171247244317719466805254031661838860729981119463922460150355212881097051138556376721578623904902696450659257106412755946724047070617125229729777633463242406021955445858321945397565620407092045290481638444738083269695932081689341698512730346203479145705217964107162702126942826612344628972102766202107729298393931035286584359670826959061968931814699754199858615752400339863515855017634851346054874654657163362124145560595001532639735263958080089140796774192658379755915848434059686425024389382057196286571230252334140890729476473105449058068085791839304567122045435294163655121430688361113551102581159198289338158134545857140349657145665242719586890613894598546129332566000078683188105849249406624611805072319218560272401023923364086671283934532068998347692624695573833891424305862375012654155739580333569487630914636347337405686776998154781786138292301300594091130233607985502895452112369853394771569442801966987015936966360597973514245958942586377253280587563920657245446758436675636159130979543378635990269928969548253046385438685747538184780119302513608176626127064768977603724812724974202212340413616355447677580963729652341922399527290838078309060373115303602399051521579277832576386578640635893667251103336528692790490325878163360973450906142111499842482717579319255393737495158272503587024694959077465117863654154529668447681563007806499573275629177343882393321975386590352351434034893101276009428428062238951726544817201643513744074423033515368485251846417738289574355975564638156179904024741474788079442855105449656100307602860912983937840422738821789938920565654579313289199250092725107333339510424570103402420152810273353756337113610132021473250741765408215785102147154418133102251150050805115237625784026966389698225590474219083862063420532311629345199126608408270908051876075740936220070690086728801743520302852882764317443826951546143895256741356074147998044842217209432099973495349352723565428494371326215616107394588741634846096151367803166177767602579077081243759741206028994906423555813822266693919743049683481539263148802670649951681270318541301317536256453954334629484591727446294539046471086035172150687249395442171857148735277665616146860961593182912134172559308987209825510716167069751410654784346370365999643455944195397008075113670857996216352478835491056965002147111903775785913547315250338437373761319716329480678807769027723375605855536904741185908188288100487080477351902694270498856089800815154990916947038918722218285546548656469224722116676260399719015489349731916003839290228245773546733257640867257706999682455435057457787595115459060741281390824712104607935279427895846855383395926392352747698882069419070252179289381012966906667809465586561279837091189505380916936542664813514807220338376937312880977934075280708416279000263531727557638029977725330459700179223454460366165059678910032971580431038712781313856726497587171912794370264055594641446248436036311175661163816213211316990845904691265728865780662417584014505542688459010267632697688948148051524503177235244945987368866495702612939646272769234875688514811417621144154430478717427453461314184036115962423300344714915096283043393047640144836998296047814531196584303624861657844308423010918029779188363749511316467076757379147645368907367955931520215663241139006482048395427761673084447854691432204643023786597409389675848140983663509394666235444183248386844196891302219378677004887521697448095151151574373931878835533726929671444211714707274271194681826793474321233148863740273786708079191643247425416627735261801150506621279169356391946623081005337085646572958217881367057270838018107769256739237483737296117906684625386034102766612000130138547564335669432936504086604985463883945267711966403479467364725076524994402450930615336749498131949386117546486037181906283559257367799467578555353481455336605375423745596599821561534112905844953481792490535284469551663757517867396610779210037115575540555681540059835004282553628876728955806355842953800382580062385718268315652501883501964291712700938875421318546057114834853579287267153147416659024900534636127046256214721386129366072007784926695622573794656683471071227449224432334162197776412506808915505131255771809752393850698085256222664846023689326070466427191792223245329703283039029223555443726905889191042719459808622204695344604908574071706724442298532273447767399722455888162645607675056913945702983475946282738859645260957586397833156917644619666739644429947221363024896890749081193925211692725930764526637586223121833393156941993336615824173732282007760652237773390970111094841186029574221773019549012103708971458173827025534262364655280268502148086875097558177860826311166566214293334961072433914495470369109115359248819756356962302239284794532123912314984897750823695989283167574859978109423677914183062730626055769589227012264345917688115964084098229737370723031819103073551317543058428228660076555191269791284748365415469595566337955751096572744764635843537733905942449077757366348323042823165052271163513662536767540936673505940520306953334174954962489412314540082748504917577556616887982736971137198093639018596963747366822090707609906901756741248465152925184476508550356451342316837710705598534435911868664135554060134225770402227485687065974350519371133188116702441380472272090280644782965214425198348121319377611560196768200435355590212669740173173826040674438582437385464410875998435851017114112979025862145648332628882388793148081519228752200022228445405213022947578663121625738393839172641751336131330275534266631439455239498362982661194017325436266964232748134434391303664107193180317148759997037164771698948179912646420733716800297441296356599418855119278427890493962038589923544871323687152094121931215573898385938694809948212294009198380099976308789771464367753256603362504377606073779912140119008933602163695382529769269533475601229773799485450703164118100677747450994046532056592700540193830141978486141575959516533531629386692055409918659022420518055904073848386917881720296788939575056116855789328255892652269832218983571105267642138369545499345224185743908174080558468895481718877487789913571421192845442505512278358951299776453988438819119100213374542075276579087653157403635297257310437491779056132861174067085676189641595020825889149929997975376244811338221111050791392445860852688443563765435720203362238429182451745153202199625508634519736069888658423263003066908248988210345119963844038061055558152960570483564133225842943132998676435446178344648402705097838649180780966606401603932167506667474962053597772135544840881781865173865338411555614069541013726499899994778146554295229575759518403326753125193628877020471837256337734627452253927814961977117275811890178217028144242515804862102446336625682277009229344298762386837658396724573552340400135301084294216231166250604623049629236363877508978881353422896352402647889475553877022011311085938131601414918661332920482644524303079389503309200823124528244382266026241476550450511118579760573016388228760875487739855135779427849293644753036990358781632097229262802974793504734628703251494219991466240087621846746056973253572574243223094552306484834026415317853808278668085319023449345102374356157028970453219598935748892743874702039825565654612574095180125663085384824821666934644988855142650879967015640786857316914162466005615838086767972086446431262332803951714817239347488892330239411900265425819906765725575294977658981656473046831097100230793096693475432755918904151771349081352007639995033713503647120914759891817414462447486848430925538431821855015615107515043016069175520795791275055655811490669672611060731003151484315909073811932627685600304350310378437281278733901595244812539683606648794549364342632870625187395241753624566109485160575091422817120700414581190708710805483638875419622688451780378019984466359142081098624762660685994247636147572753327748094822112005894776512257837016248252635936424972684874083755628926893038440565092912754907634040168173032498986344144370807449694183207685285490450883560463226767354026436460685945844864523754026602997475256895401324672213920559896680853040631496023979625054025904511614386808998079258125782196116300979941361400645122357717905735090401035280823177718574840671943592364679226725809177120745549783745794333315865725780912054314699704474321774259770380325539245623248327320876185772821183249420338802817482928216145921494428908533972304652186520897234628413735404348995963042821924850524977534242112097937613840643987085677396034460936534155995719489884330388287907517207050390453858929412701204635759657644863855217746854369855883992098727418103209020946511492858484024781393037763885253155231476724230727402677959908019121081790261493475790683255550494252864012887715019652590579585407618974189270695309811870200084655946958755545116382555518810269388279344984556051068017378557901076816316414726087408242667436887717738807401813175314813395924461757252187880588792855842380784998766687101985562231285215226025471863853136775649681552123120764434440251555330641600974191092741315973963000231225133165150929187931535140526532763626990722470365930995380952707601353437589475268566373016745255051262008634966721321838687694534891920820378350237578958543895572764277251582359142344032733898847729717392308244228644293471780536215093159960434827648270265547756934928710856101379282429779890700059996859914409171634056113768018908457555193278041982537459613572185373390336173381101298854996530251298561201080328386468826683788702919551578583434899282983257673503516985029979356648149826847922398969908367552811202130143209037514664153021872195567827702910066527000586303303905688578169255999375830345909956118865816156289572113924300197622947185618779026853467551928840428756966497629613128011771892820214259207851061528636997915880734631058931208999836075135110666182885373342316135635872391283379342578764519367995991031410896612412240140535785343593585288616918906816391902290163101609018536248179606408259905908195674069638843387249957130635680322975009150328215545947534341699082674853314183236477330732365331365663254051880308516323381115452212809413938023299776857663012239957088793876270993195752414640555692932076844265265136580702749191098024967056514474666987255090713609495312660769191726371677422651405110765159628811521128611776638164698769306227037356630622792144426443179022903767663659143661531818555690204900003020325697099298736281067915643558867670883407523239693144130319638969242478642946211452865379997869828971370952112141375978144173711548955305718475118329557880484618680816849444449211793594828601440341277797429266210993321037423252724604153566688864493992830323954941684392973575347916317991003196689062465760525699194506639968621633042009480974368061194969626390816126720487377705705430368912200655261507680349437127086538675121252417917949967073494107519185164278249951505831360411359855629870468387549638344136243059955896148149261610041184056241832748420028319821250893657505815049074616209549174541653969289749349168196330919484296478377507318678081698237088045029878950359317920283506227537607789122883661162744227379722636702264920274997270306794010166413229687583218780184087115620036010454807807219126978092643909278190485983710098538046080388418048924031835377632831882429231625127190580983802218176694871430827304731049737329345485602789268436165973303570872165486632385654798081920370924874353104880800276897137711232273792650680512027523877367606802147479926927065165087165859373818457131883956330737368278842654802357898746026021587646389158530732541570368527292225049674496807030814771878864748217443071322845482851050008063087571063460959887802879073090164323391805213151325134458981848681926347118311621376836870628736175033894634203640335688489767296937292318598573245329292255975403850552897585994592041680633436107584321607440569246334699827356949223032614160747250378977562022958207188707017099330232219755821336916552422513445990656486183796672503955713889371531794812731077962015360252662710526833178796484737501483040617109774805116212631143294249826722046160955360770665066615276223330787583072948035176034087370222997186458566932483131631707917922246490104766294268591498560039501088031515428076496035202580341232637263904784447657968179703945864495518703323054053249134245439300366732669761630700925502359537716788471300814501112589484669847720676928040164572623218189522489276278315474410439853253841136621610223635254111805294979439411157083287561543969313647369127322305564541573370060725057940012556959370238274702221425437727606840868409895153598158074511595001514612980468479821115600343543806763137472824987607498379042054732268032232199287088683631500340002606929434381460510855821093712555782350410706093262096053083842312262954116100816501039633190401698658218493847401964289957906277981220203204211560519179125782951817375537067595390463913554037258749516272026310426537962044408468979622699217468389774155181388695598345405907808601903295386085766267079817543208082184234375747926744903526892820915022037228259761395063848341753802625665545625971646332601173961327068271425609849665032310560848354439378950932782080084397589409471355709958647111827408631908355996349173458926273949471900266025183126790714445496060058887032532140105606547263668295421758791509782258470288120578965448867481649178483837341567905996582869424387117188597491820350498598336014059154377881760614665375942470204421851888313558050765200597233966096736152558885890607259359288052254507268820150288478170072023552431916216134614498535052239557170537135763511785697141881911063622433785760355449236604153821052122535476771042042887341204255412415678698102084941521133882001843060231876579759265224957605466035031493877676656457447069927373178987078645077437485895039735671551663603318944296347001220801594529525494141309330177584156716727810427256532511221442935400458221226482448915150208864558977920319860425815201694458651111502133516675219397903161214378268275446154914826428310672649834927772698146443359679485723485838253121746459031076253151765235833826693331083051046843983231318762065565989407894648487432844099514501629205521377863512916872545264045848804587433181479962323951804108955435207695282882191969376929403958132881382383170396734669705405368198108209300688805883247296255847319550078237629769976091255553569339212223303936292440576394216405687979652488969213217296553324262746082755173677581038991834482870818305464049684108669425993523605071106163044262923236949306321464904110005296563089557294406519017743719740910490850348292579980191453219214157504765218011729619659333488843710807856008088489638635169244144213720137819416657360743255885776999896857385854258812039484311539867441013968895556305692415698384973482576608051189653381749306050020079677461112143051703710130075525780643298524518048492096455198046556853343323716914691470399294972765708130137876656531444554390285774100871897732437094050879373069152273263741200092060120249338990433813524404204563368143534498798277970740976088391680580283442181371343449703869831115242852048226026293550117164799095677854959052038872315494236416570442316371652232605157017082269143753710095727151262280307539057208987637782173363806144499539370882926747048488493569204326809165778624573630755460304564592597626391971644065388394561674487412230804779952166717418682220760636136123577122900642290894294839939482388246295708191906145465326706483111380818517439173049115238520726343570721370560121274194040056563364137710396496783954775767190748328393894003572681641514378658596867089942350574825407389978205682564586547207896671471500797733677997688262366296085117594062098168342764173618579978001508516474616136061522154433749534758966179738939195411447091886731328145322461292083646967451448983759251700712584413322836700069403657516580834015566874525545431385766193692209811298760528295611579899208947097087340815866469160201832156561521466013152490340622047232119892160993396703165909181232738820013211570117087659760926690973401842496248854114431665099830281748106377871939816630937726634089836052640464786079881994762505027952980583987165836522053186491800705103644239624864497997716704866462574590323440141842226193432240930759017916698217397032104254621652994752233036914111681337839901402591262391196190979409095092715830122504236393847407706359004696428216885351082585675342457240231030022925881847463970435081102582716735084273930800513319199730114101338110545704431181243174225139299792982829766366787511346508007922191148503846848972352146227011073415780270736757106348476648608833077534501793102246413234316662299218479423095799730628336881286850914151026148980819242880032501150263607575284941543462817005677524384284016928320651223359483327480107748635483414599752991418354689069206768038624592992489478884291511656175768001321695557338038116710233405296269601062568819452900289400204697440622704841275907071580448234523957453574081840757768777582211773910472650105305052531836010244359020025453421224562108935142440118338638047533929825154467944938140659824909819872441848947775328224609083377569622558640141368825081866952941401672019942265874407664075397827283858344801348187032611175463941646675341182484449465705328063527305966097667123291364428532950684393925820252801108338497461621567075733775545953391987224300192398467642031748289612842129035670850340385806051279288516077810313122270938342041068404049246321481488979072668221282583753414486305657116579852939215266304322405799313420184659824175960314951771281879329410991774172092404132492805854537599117239585211370172206194139640143238638669327604088944016231280423984129482905618392017631923212961687663290291291778145859905966664313894496996002527101309653651015662642288981070442058350116370204473451185062355531732011487571447297921999973686985889493092275609057364993398786712577439966757862118808491043636312726060075224486026064300625247401886756790712159847525512362873648074174601053335691863706446404507936406617373180157652035606935284601829505007370119263976246474471695814981767771727249286736756205826203652567514158429726099891701529823155450838944192015219528816911157115085297329162103211448748763933794051507766534504462919752650405251347062836936191613246935148534192931748687216608384186212483020368167770990111448263764345292381803574646714185631986437627489998862607203234859915196250856931619836635407483992343945425291733141313428952806508601681099934090658658202537710243987012413473990199632583808040101437130400376284276243048466139376027879198318846391737002138647566716481008970141392145730805060241605452698380127421476359334210276721288349456276261944701098054855016422897718612808874909910733491991702819644182788963886935584254618067385779266043732835166531104998882068114565765507460574677683574944766305687766168711081051903332684488091430651292078448603738782654393428488195522632749588691948626722403121680973530730491823372304955751244242736775818583723492331681945737530631908073844464376699908245669340220891252355144273682954749599276093666349404279151324089510959211222751353820860171929675541947693079868419748288289260556025405087529778273445549105115976656629976025120762018511196557176321550839271386359668581563456561619959421969589924410421996944798772164709625280178533398466507537506930452017246592776838054186900320308113467881318811048440242176484911364961013249322723941330791622915884283169362208790646394898829677156922372812332642317797581073085474835517570747416071821602644444940322697552097867126541435542722645570223654015822483251225480710483240337830769501961945213800366298882643875943863437752125164387826190003572263401208043677768183513175025324063861146572004118870937811525167023473024160782128368021002662186301815655465661202127622776939154077143060694792896136195428531413520211393943791610719569023239511667067966447556695060684871017532398787176216681830710941211796139710935320841285046001722861044283342555925413058444722767156509915759766117647111365237202188165818084806005787930584304459727662835931779850883506426635486627586173034866662334399066261698149667972242057965088570978434286488116576735742880324033226913473032090626763786682835788978124740114723027819319532898336490584686681034583001717440313670099997283879247180980010418575771390165742397631466668513637803775095897818694518697134281210331392546500590262114684983448308102764480241600708630174154570589062118743574078515175275757329428983854365822386630181623545885919012213421019127232895627749595864911451275180391957543718683345937582118764181877952914490858423766338679259641520479725626653174502060835126201510068721448011029359914262927444716757317233313923809595231501558073457589713098572565779041140855072502977408110682925170354065101330508155624215224236982128371372387939265092741022618086766281160894510861098930988129837325884771152801894851725966361887021745586279747265276130860133469408041679658186158184873793537601686123922059740115191121534557339824967156820230491353319392015646554230804261239000492241303226242781612343776699158133081420216995400949588646182705123755965385377801126728721799120701713569867917894790419954876821976561382185094805334838581475911314226105955344459366259799744546986023247423007359748059747355418606028354959541948473287765425133006338936155031946233790233737523121543737876544218123490968095433555923226127719634525139904477897100325248501007779471633586747016888461888850637095039491399156911304798392567330820760736983770285283206790694143510672921894112142209037070186549696974139256482893896802345645843826751623533379535699267122549394644962980901749174335870268991480698210737325761648160492626608178364804972854084942736095098439137745018377634365456382885936882623709645323162522035589186424334885800054486916552764102616531165969703424843356047198633825389188256378353113381720172504880435341172918750089277205280579050629697494589759042874552692041475189020636533789079984048529498034067986087879070202822048066747015679291847829672281742172298226646198616214073459593789525660450319346538619205888241659629224615845818041810476969286310463697515965699467980691483789308898262135281598467220836533573078329098382865224706282436305837261054634709243747551844660891409194629938795406269679370516919589570429080143725790981903792002097709738530454278409932960048369621070842390870643110407628738210063924749319025835583322274036271417552997065957923990488427283851299558217386394278779126171118122266042323913046120298272544206707332614595203316564445273370268492330633239987934183876329896655209536518961041241626179535769971145856507674312390947753643684990406945426651758148373809394456227232078401634808410627054686239298099035655299351426730969896755418116406422326401402561948186807394334585471233731150996989875849448752483253394157969905739644495510798006279923560004258700851928930973689868033610725881936597206598001323352220104712175714650359163807155469535772703060312428839057440060074092020702325998798251912190668869572529156523301052724143451810532718008419601316259216184644482382549401650477577974227937369488277620422426817093607702005088111556766744655813948715756743046192686136041983616761669698589312834239232690641771518689750584246214734963129725879245181806931458843314390536299519727866743010204126537015487038427544957107637217650036488647243374042998909354625037733856075257578763305831873059869459425619798021801545302770612947144466337247873515552125958643863500295631805719148991345984355773206512375729809105864059897217024723664408701675125197773770506332251641525075265669583025480475604435308596099957326267626495046269189290562750338770519742198349200326300864852656871964228185418483194212948783823791185285766062336852334277150552311886019086782446947735731548322557779433213691511304112665311695716322101092932799568545189049934425261613231129222219462233935892203687998623448284429547296215130566009591483944253147898551612191154985432919048038764581770034082861033803132580978379316673835759269462925049088379891771533392502893868127282380711307655607938733289979641901219070375456867943987520945954686992370972529958037150503820370220059462474500850794781967679282570876216682135899248058100715710912148818288516593999800396420493550394813726448755236279277696691268453295996406803214722272710986466990691957569682595119719762477596511747890050696582031424702656065320263626891043174894736440125822030678420281991132648517190918525488323174834553720079470345342889791461479594125585634069856368108625354171661561507263609540147095471089547578115823253894266975187272104618222095357598654421298333317520608692703480927735582778910178935028226522727844443182137433603042679162236849070657399761606593870213026285234812402193576580482421180720812512132226504476240758683557673452227335116853618776771214464086316908215824226459673445902709264262548245778372502958152728168229568210150151749972014316035148005498148169995463139782029539168701876172056674209956228541579858057937595327442487313408911239937458726132507442823492144294508215008223366401336785584955088327073973233626322196606622221984877551141884525151809083670028796141139027270981783605891038287720790021964566873089155529986169577492914210985482251530970322512020268251318274266533610713478041015567169458347165964795834049160813690202102648540035148467357649688004347603218908760711007284659051901609623334381748511189197344125827505236084566011806403536688868269254143286171103741834531429992350693030976575789870579178894692667474160643559006260004735585877483027229221443187223370482883927877636223371768960908135175617466786851682469359488304308630691702222237029050235687858915425271283551249369317611364422707620446443367765009105566122006752427142767351410280059197658593533634868919316680181777813442348975004978584098689878357541248143094255491090371980903810488404241092041819945266838786586183113946197519448807367048420712655322381254260796826867173003638915267265286904729861508866965809694407548221997895358091064886824498392619191298956952067704359291664037085813752150729552619447535872273321719958641182323317343936177299207566253844722536351517251410293787551916128333376226038002681636864938419335605987083133931276922582357027036519758942432918641731759893538670651750911694010962703886563261009152221167892975995942384802046718854681638412694715426533674807442943944437373308505516657502746034803196694306882135190192093987848526316783231799886293779022604460335098683503855353473594956678269157611128819016760757616213044482148314036713448104683863736515641712246100612499349256683997473048736128883255440798422000532264437142122023374222521770729412997209893225964938490068435909276664869457038472564922839195086956351668639333770811979527608460072734553279001824901033601353779597393768480366026128980043130847184937561628622700810149725025313917850265056097379767495347468509445987138372685591637204067524412415951704732265645313506204287421977720316553182966067282651052179220411500200428127127329387421132521702128482717902414415834559703347962502789151504440960445878899275365414879819857308283401363107718543295754174754909748402049820006645006922502562452942069828629066891572165695958674029770824216514881787790389077864751927333655582500929898015691040741581888311213479995298946201470261123560545903961177330070421779874947955155752065391199936106053225356542152610576384756017423695445185682384518251386076379587722611681471477829503274950678903242269531178730746573118514384837735106175201209468975011187138877042004888036722295018664758373473286232523159440271763213395174290738431689220563575611380571726070306026635861488792921488361017258172397684920653016684436866543992340005017370271545472116660796453553175661652363188976202051508228131957449847544461026936239047779131281266562801719354204689292110255692635462278059093244403627599883150277004657926428974719298799876194610761016408225726260609975820469687197391640188963707800419540014011245211263741305290654929598829231372367737695263908810028426860390009619200593960644520223706469062056640666710756399281302619896842069336087329695161622854848990377343751415863715545146284636116683469966157832590051601520039346687256802294689669951287311517228625606527336499286865200003357983416174933289967453296874191358134793449408685118431353653149392712323438811292726230863548515045453716608594712427005621465890570467586717259661931556894463140810807313479571182060041630451727139550525741283377847799491532686084419798014628399183329377537194432512842079348686921298287154091433836351654086481603936753148028929551554979526280463089183624880767907874213612698591147313329604770005961797063804356103220322957748804889885579215442454650449837774550833557310979499373134395671414223193592098858733797430074054157093500159001539406157283169710374078719577690480930144463660148169750697338701963315241783653700648149260823198865976889455128847331281876597817206373149268663981710100065521380206552681120000533275566732760100818610920935635960724357713636520951422673881738809599993961945663277980426983231135700711503718889772922590035071452409536285114062461236372000424441600108776009530602630335375119022051155866970876595492731370460528356275979905084381730648612133195987541012104258096954122975774597670498637671979801649464690529263624894658762933309145037060803208324071136439013307998343686410825450128073855364957798920084216513389298906035884241847088016419387433346736196723022115512441082878718602976070966356370830734577654960546112575814711904289410394065776512263524350856424097217478689392907339846901505171491121282320184798284177765315936420263955971088952572670786999711904611217062524748124253007048167383558509940539195141021568978262630753044791878813288252565355315177779001306211350600187598750475827571722556928898844257223496014637321438113720979502784027405667377923973545337646381749249812602885171289972459662229063877756561273404979891911644748440467088590664510754294540490721654648429080398782921170553593251297699218640646448577607434000917321129146468950714028149752658966891148925353733770168455486733442721764533792830796798660294568312950970269946988780749864460358936714032673986583482083047486391919050625825774594187426290103809814056685492649409470320048988846567528450980362858940978162151154882673405654037807774235568531100928587373646587978459299130400344705798720578261028629821263898455017541352207139078832074223991679258661963586439290732089784968716594757388674607324118930600728445865757734156374513353016158673152563315861499698222829893084933564042438346107371147327946680942340721943283778727731567589807012870355649635677872200689789744915946275417158483052953696970189169155373245130254523401140740876677875785241823494314709877599611348660254011472814461269093483099008845817148559242872045812620482352596447528756068918556984051909061939402734498864136927971915596902841123844600648114429486318598916258517918601674727266854843794513046404064569951268898596178511640563762579724179755700378488634301480385343880308247107939593290118448246791444038248180582820556974294076156695234043032623317528844557688264279123415165786202540516452204437638948875558715446096442106567317174135567843559487388857437676187779466121351895935936273643484753908407363478581693562957152353958744960527878361445313106574458907379912319645605650265967881021708024615145945015538457121075498306356623802731943394637465398394900883144587950792171937463658740799918775978659637338672209426497085740037578082883379638056514849407945631556187499798222139595426344859335312300137396801533424292711863871856846089761542358241368894841104546942849945303888343133807873017225755819507260604055576157640282916357497354457893560364483768185777460439687800652864526499536844644434522817112653865735405763481121464503731093185651861535320299507846303625328553159143364706609632931319218779128004990574999999845026510728245106846468214437333243112316626187133818953837067373759488938828445015557406194481758403116340184531158933171579029183131488322254338465800007508854896333354398066074232429288572835690419062886432837306317836298448630549651655595715924743506519319236656943956825628815123093923521226875709545532189726728818044320533151579206832056688077117029209068605043629911848241220980849863371107239161271342544666030279303959602029823183699367908165799043020706839442238182895197190134770260909583643285233995167044378222924438919956747313387361921701823079378998719233431297826818846281359934377429880428600507611507602194263259964934557689147708062326210210103696861064080604150127190346424872813273773730131864718484810251704918597526335228751120814693202872793419144199243335678260164204807874619714235518702185573222707976600084623692606783624024809147549975532844852140241306725839710068159705125364066017202852397570942734804818543555914208768732333313884895947935473553836221813420827062805391767853133300552230681534486175585762419491203593774118102195346017416171455244304425545935655087953134634045886694834809785107195627128737058917445238409728913336009870858740967938856984685105110135034191589472478666201793315149978869778064859797826244628955725471928995322549386733614591335605045248429466986752354703674973637958770735120887875943542305560502322354631405442955253899408690133313475976962771362345614780376349517662900067095631102540115539262866836578840907306414395252924720031789673363821735742906787775403349043370470332791987927771095881130052061384681523179252612780750880297549033305610000572153623203964119186953666406405773318323541504297566276193567960130442674089494758628809394427189849395628235291808214092251156942400681839695432156581714731762341009052197513455035162001816112951936307418401414503013082820128627669024571268825213546855184269270913146623082051484294729540843464544434457806028796280669252611066385458042184172861940640056070891178581127344316052944206875412483221127727058196977125746328348836955241058779014282641202702840601324517027767177548810145168910262348583474741980493145138828749274738531196856121444742996740773299407917453803834025644489263515813805072247819525458569401085622435655103256531606058003800015629403543132066791369228493233456534594991130881915783347755308478773402138359763696404643810041764710675416127162463545408949256669810669549635228110226349552219753116101322150899048395434864526218516574152888557343752391066492354126747597850981489442421806607377032224534194512604989950350991414144781973334031374078885957385700866752499187684977898518193326069965667966338573049400675820612784424631201234007999651493819923842696206537135666470781793691150674462079151383998040161161658732748638612061772151573896770478390622305501652086330098501814926380005093612669237801880446524598413224098732460472725176180977598378164657076803552202510613147698680264816513953033608539224542241443954536867252104050851873331392170979428934777337228440174448365350194748697684197245246358197086975037251796056636802810162114185488718395068603461377851249277679418145595702844629144864212551125426322937853597726847949382029782750767301570151739369448591673782942640622492161308367857180518846554872063201611574672472932574841451918462065852614921171105215432748628510278102084651297078242058358294421248552218527638790316864056518715221907595272262607232921473573288422227151569006079219968607822615884524124116913001732506166201261283842328730272438789936021582857561399574960854980461940566745031860738844038619498138121459201405248277913458504044190748926110128648265743220072256901715427784792211488144274316025254240604723047707238405606762204433187339975114038070148566131328223145390704292604024505071871727800644865296480107237797907585000230579432162152567548891861414372767221208907743587594842041528450460225543468578909368783213294258818078371409769285492555115162648773674936811068840090628287866494112207572473634566369485328639837804088589157120457523035746438051105323354626954028634260469823078598793518388901194172690842586150257369639855189229809793326315247205594885850613520039763635203877502247286282054814034764382067274588210738997329970147812421137284771326490264062555409125137188351739286536555932362660769618181334187014768193015525162091845830459115902059858908161035045959359776370188219934973349609212082551628035016681884796767319311351439264029533021958322104987549436281633917491685852598226854619868738760968747511117104773771726445915150926322904770889688506496902793036244051163333787278362254260048612652164916486627736253495111204081986953042998275847619669392089412713297696609026363143180984709197565204658733486523853650650927594268586951874812194598967146127416091618463978869120638320186929568335934153270918879565490502727098626047838856068100684731901289197706553514702551459204172740784467715488706397789427701215289675778523206700233429263283059408879607820218519057724425301930361707858124326031574105050937363533459759334139788430359800136072491994946729789642393342896670008964832611810061049510334587563720142636567693791565165769124220382106597544194188126801371480784868503877383863983510590736649125812128894669605957194487751531129475995231889392004560383838768002768225790445582889464806284189356405442310161133775360266960049871134312574599225597108792161330843196201864174005046302460620750799821998695268652935180552616910884242238023605623575444605476511662073278349523313864068280139910283537928617062873212619154017747842819686786647645559779268052586116501516666382946346901155964282828295687812984593717496687391610016586137883529428610114190135965964830759785431772286274457323157238352435787029429736951435510946751811546262816941095930432288468714582257472652400419036887706021914641530849408996996109160992260006100233945847202487036257347431313351427811511810959248716542932558000683267723826188302682338520180082002966397461036226841436524103994509414749939131709134020229403809293814330842372024668893070759995539715905066377263295689938245498239647556902440695868471712295159508070970867680182235244308840194276289121568063080377917403300744479531693064202295883441606811550623810493766300039205286765916486216665517510321046110236852673840862884331254562945021655350943029556447911496757336679226665187056314606367088350748695906272072591339943931335303759233665643144041228412329950504211562630346818715832818145099544474394500445671113328160637218945023950473763684809853783584826053219989127304452973717874198559247127786154272218634692586901166595211904804487809947963850942693451364054311145557827532804054946940126129491844989700538028568598726267816541146052454725202511809301095883113293369378821680888084395024294866389661632994584234973321984471982607576848755487438989687012199418371186488135952594581363304284664611982176886250415638830111419737575391993195990894698517030835718174636305408753720673933498297992496111420548816117557274657812426905094119904847432608097399490713088031500439774132937520857746402183600930176344174388706790905175933118236987851873946954095261709338090715004836804640837797997202890634074014153617346718205416565964869227568278513036842781384416421897474709388421004487560367228861411132224198050650739201267059127534471993969752621468291179466343544874932505799133721849904705557802291447658572895549794778367429245261614958951974985365577140317379475302149013402395675400943763702020511579631484604140648015906121857723969191353056058009116668959404299804736112765324686660445128295181788909079239815194727642620877109716665627657866695071512691966075874486944255261847540224858549669040017674903903670886947750169286340290966609261908675787910573230234062627216945920911091136503843074952287409477606858311849418215766089180581878321307621413188449779797170286614004128224023382953196666770380407823274569431868077224049866927565988016480144922355229549421056508498060169769157648432588385352406566895943090337119327054206514653842592492120171182523822103672456505988260334118042571693467850895166843171381430774187235301377461268870808392110256361930460168263808566474659312595666895365269791037261188429714918558279600100191438484346625580144676594923475121658372101740098128592393570890163502087853034846836410513565446401942771323431112692039743350910208330812999127262554858040696953792643990248447259377204884908200897501433076561297843024662631886607651338201215248032638105529108090684211707787650575474146928770664998489433634099315127992763848283300453977214979624892105097844665381513218540981714334753853677639296198236334711066613100903709966160493276378471393436371551566441576204906402860314762084856846792459641890498098286632688023185116979801891112501398836087853622627148806806601351867262828112368276684517192874718728959136887891633411014432521822518474545599784019431530115750568097993716611087379788150477924529501149514516188329876581378445710335578184030978358274813001163629906932694033501162440933649679255808160770542079047407174476048782670717234900206205996006798258454341096452561714033211293313640915589748228626207168315083897112800060842411961732918757283142802552209420078743866886999100251899845517960733022802671516711072764543051757347054181964853766438929997283167740585492744438906105391769091945131518474689654665063317844915159557324010709810116888978156715427388607019799086194998035586843885182460467964369417954397806661998554333191924815352398910578348393524001492864789810332491852551575045450348328534174008758842910167382107970652993344336564243013004603723206926136837058643144146546096215206947094254078494023575815143613995550773621527601790442014943175128041797802216279252971137575234106550351744202508638738946406734982881779787955107549729792815316860646230337178859182071032144184197096348305970305755427686513815813477196723946126135374214962291158892501967858484060958489539856738903629075110315885251208603398214733451819589400870010865382780751056149428423160503793454098576607100273544365181690203771198606334288221903853874203292451263799857783101899403600186716558105098043838895690482415020830371157923835837563789371851117523009399188245579543120288295314946500735577978848771798382882850217040662270888659676541928692013021541894243233797624179486791233553644083105961709506676034184611755310313952626644272731488715431556311361641207671515541612925372889862875838274113803663460045943064028955048169235124469466793594826373033882891654372893853029518769104996333139076082942980398066834769396548512255831903417742136948729555206285130691810370693674005446856180313871447458659738493797843904345561814716985503809455806567962899943068909157379206114136130572423137461482495304803325333450241823762090091773687668991938301800111993422967256134996211105538575803249918148651942549712485167486308971304812466746190474717596495523192839446822722682025112198437132486951296748792295836040368574191179711084361774743173656239999371416536912346784296991634150310375190968538532901419313453925303439239795312123930774225648121107371990961354358441341073998428534023964490012979586071365409915216230857735277349874186739766887733250489795035285511217722723123495900479996805894061850185430376491882754494649878480199575290234940291753143419619633311402143135571239736952084284614182477035164431854829804442855632068121100295800705291377776412062956788552998619973860530531479928712829259511034800099401496455804836936376036620498342830557962243880322640748897088665064494521880385398240164730886993410596343946945846368687254029826609722413958179165183336964286558399922124553853292804805632622180361957404323323026160701072700715032220264266981152325368162958225069673978914305887128731800830962728925625730921397609242953802484409785673089799223870211617253921296201330385755689405538658547202214932261396536288122815973850811706704064682316084701769229911928803318214315350149401249178958935910203975670813479027876616261742665095804568935854294772466391936966014124070374164464967534322896970216262697126318838542610263498503637943245528365903416683985065815287890988610766473709521447572875594405147010628232432995674957894546808989668061307890412368544147061008967897206553730982819551755976775270165479375362570051085774315599899923422661989905231487458331134972770382611105942722446135496310579189732926733442900481860334499588146054663767666439888104151100056138265313099736561126233340829068347695640036087592651175024632854017766038469806940333681855327954506215312802069925952322409377742016251401132084483346295566404677166861888288093260230138713316470146439523734255982910736271100270475726545804602961402089213403714977059266929390232762931148203075866030954617953196618196132604545001273291054507153211311953943881252040998851212756107924463885735659393404190944895892201046374904032400733784606175203790893557072314662842529036333287616542851115985870595398423242973020048642489976275384276429780310058470469638487859483959590608447665632561258375839223702819007131527388734962165148966242157489798618722125541351653448236425974497019755556807795359368599003144640773885749502130919387892035576254914032911045081362709681707147029045900375135415466053269693700961343827874240551832486035375969646777654289908748098840607546312179194577477126546002061567565018420327845908831035577730983303870167535721735173790715431332925919940118163311951257785720610013676096569110756612165908796142610036551708555152065169631480858595100661229783183665807983447563496205075744228891291258710201574559189798793830276269642133525358322078540368360019577146861639480876938397637471390095335325934861345285624485553485177799700993058501194007571482993100761238049337130827266205697858115290311075368155253863384155979529821226530120897154202692031643416449007697237179549984581316127834903985531216435347307473247252317119432059627379325771708398892760016426583820076915398536314933604328768702745835577295247096498606590086073799944219298592405908960022235691214911455901737697896671984746644359679167883714137304743883144166007321082508067224585744418770428569557314335047192975578610815266944317556352069899894597943746389344938340970596279152936581974629644812487564415800433573232531321761655900296960541188526194441180726736319178679385632595922205504645317659737243199647864825464628858645786590150192017299538411119746376782284011124850124052371089328604835382057929739224269346304814518288018469700911574821477012516326865332990696148723201469671118602872911561776912343195083866471219658673538904458431355234890567084532191063928633368523637890198232714314905176080167064370229046206575614368417609427232491378545562806570124092451352563129638266744453647584366329372032309066126070590680554169922855803792325566011779156761013324707535273945285494597921090716812793908330684650764844110339737819262621069706401574341377426580960990191825378190773970165522039486451388818750073402515410430921648793352209541589827747392195477308294847795788532845958435142914038024020901665939238804706279615257852921846715358774003742007004645753289053448327378579699886595576355147747581481281888874981423870083593451975902262038734731930621713412621249308946182740261036085520679786605598760121415506306243479317153497759780798166783805736591679542058430002728900615622108007720907047280825290745623667594768636819935157914536760584825448375385505631910466366543477506000061911307239385589727104433909909962752678562580383028333719167194213276133540777963450801901376759403139346154367321544597992305036175308017869267511605524434395411394326006765858150830285978583290612526222313040069800638549571429968732757116779167041595734387579290954262744034191338939286456357959265743321003854532159460165288806449298599554299233872456565367334817087167494278473572175549399475601189340378153731742051415096343239246479631229193985951066651267190514464397046353486598995890350999834002797134013804826083104122197763087185052415150521439901290956763091401026650774171103979097797322929695039269011515106065625346925419725189649610590617495001332472936427360854049320036736033347147944200408987837938614038372682442550008089693848040885016987801740281878450231110585228307756984522556372793519435601795411143768515383686512684214740267943087614028452906523937928620322350683526254462378542078813924423380800338543007831274784997392927973826188872663765178368582660443237219179649728010286442225442326735327266525663105347757259260567316328949293496619244719923566901226992921261234347706926705632599087614587739612878572835169210717424075724358836688799827632929315000557352505919942332170519306841227178641971399031458034699612355028221073542197607482141008502432295381687338733742438513037000912698976335441436702598393836628482631141704059638121494773766930425009556974223350125557064258525885531082413831781513440982363513118915524506134359923173062440304930972002288437707933839401043076837701963082507853512578290782342114049409454987471709894623863040373510828990081608641948245137177431818230837122238712676670442874639996764597473615849584838422577082491540295250240688124646383779774916373322115229936073783887337923539287075037306334673964712422289901986514434818815737003179898701370051851597834331355295942588102794589141186655707624093633443403649101637003845200138992085288512650147014212002998306257964735302574185382958034022196923443643904151443484487781748800196247866666331560504767560411172295474983032726181460433138305750275529576516702585113271352694447674287006746161732086358532596676341205638063919614389275362485523753457477377191328567661597716854903184142635582817644364598172427711192351782826964940320404339892725962332390450783359434308228728578037445019463850395038626804268388963263501455952667732814537261796111349034377457086002825601718509048103277972338299298107342519350156071240918161842044976041083697780427137790829074529475210746499842997753705792162915589376543622479285403765168225851200829375170676859982553854984174713612722301103016577519171962159656490168044441999549869904955703760505231513953263688351943073454226922002880628702426567175653053827519815937443994762414219556625579006384077946977632858640895651300318296744415158412636775513864603792128710787137531833190899486735923822664279241846299060437214678435638903723390965580156878082950014586744865931468411934825947497409440658512882497702787038194875705132053767178443877211717584721499096248400566673866297751975564922386546228892549777482138652017103909943367165125593639613337091020798935267601911082177818926876020701672009982120233006833479936081938517397035172802635368481476953143996749493381462031277286729065723336686782767593830377338034720912987728547281329534601536474246511253617684000193113281557031568577001833712134124310878769305755443477689416071751562508216363676160370405045066266553238093313478536076733779858734671547924472423923063683525801245856732946421020771115195138388044141958698283904561226053093551479432500902302176181254539660422206466079292022163390470404598767173616495147500875639469601656568341708550870634739079520730737625165087397388409530126888110760003633328091147277354884494859862996378484449506693220432876555112215062189435341811222115650026263677406748752100281538959287425934042253493940863227741808103675189723404421838319454977501461138295546686968593410994500384557736321437811545916867230066385227801187902884596170787741187012062005692873335112481184606219453921456652192211452078314125171288274614279259216696399393891663814522890516053688443427232050406231069641809777047430754884926766435644900490662068359579956354712343324493520769696505605431619156501875201787743307058897125270884560272369611717857790903799139255221321784979577686612888874538858496557969826568850366476182154608452401396513598897536081137768457789339501920920195418176274448752809363982774947604491449806945429328801913192205851482482016031652289373421375713544059928713871186377758320501005182998797993668186490784072602581569852246739856963230047650530145184186486634776874404015159912289352989337896131056770638177972040351605303832422561923396466947614208188868937161753335830133775675648660133632974030703319302094484684246641671656086649322095398043233470416220859198430155747559492442062075483461624353554159138365286337532952209548100234373515570678066431032692659249793383535799057705715254317660736708251777774161677432602703002102300691542004378665450098574386467598111930634100920845190628559026908645835720692025219274074307146166717513568117847937333751166798049354346213928656378043955343836147716942225828736335949770689575490173486997435160858059411168550591617270173947038708818324868094736952112149720113668592899325641904789009310324404476776581033332864879619119655519680192240999344445334818917799835087586802609687880860122210488581176344473830708744700813983934545275455812519871404963331872095836517254489625022044407079456333504026731136839323713284809477726621927564756340859905693392049903823695753906266677456767045326094942613061153717563577662142146550076367429139955411602640733871040276171895629982200967083439750319374682186495045854996014376532903570795720795822966227894581502160532411323304820421606112754572195716031353854468805578946897502147664675166529593277315193828408003107852975069407141733309550413166993553645580774603517651041802822719132616697621065961219013376674567903386300743439551099201477397176337463201866823803386164429732578661312624038685751172868205959562523247397194512900522477550439813640679525759207420852777543428738012591756760385352965948919167810833932759254381291296557975460667943901984015856678113996159677247850559716647063925000530710120606194048253434137225861094310581888567491828824273646916924501161707141024871825154821403563403181134369668664045952003943724233883124029029834239492414133008410471549411120856628605944826425339062549789673573521228459799138952706774384692144322554159439828737900413763821412026797882398611176635187229030916501693620821259533886277834878751875156041336671364563325504893296363256243802676909759843723748888658755394900098458792416763989992516136053403780833700871499859459524332474660258091064866872585321824160518754974379880750506774340839003808713128099062751167547361989813963127607486462133381432127840369718101986251228814412636027673479754079572017520828657663979124589346322373369075190327462639690406292330531582539892023735273547034292711309494562721387063593693907286027249391173896542924004820014649340880726861342347061429007685240758350988586466147339667129709792674995472788600633407202533565870194417622478790545479202909211287489001496617644136567955108585673491016580988863146534491897947694463463259445683293008569937909822538669114512360016501747590691234199924807727649250719664281154368574004149573251756453672923076534365393628478392575143287471242270164407416858001226385149847577072291441790392047983761479576818070118102410645724909658323698927182592466852986726446634572851234611217901935374334971449581775185808286595448475976896264045977416416082019684231052503965777257304740843916419869850590373801955938458867406643189519828977333132274640456014962175065117229290775945560594280746820566139732275314692792260515192754087271451523536428024076281782701625043753819460772742478723783690242541887827174674371652283842458137739545465851441303532202485024211735121627598936981262856944387207383147763314734559955845099871385169601001645289558691704130274191412904757380877581858450910224622400984059789564676956981113620934957348801790242641516312674957430126287779372903164364328553575725343298665026851942714215697762644584639795964550110031383750155771229026587757980855960948592216794054373372930357999776133035016881434893912317052840300990651679009319378085121716408366372721831027013278672205835060806251243595608722666723902838077246596405324315594254176055731264799664200999925170611448617802202460339604219126026302841656651309844140884534291072345967847380162106603338473690532854557129370688676380456467537743790347090803176596095385616650899942982411427857934383250376079867821272201862803655622252942086710301458239388676919109513014811580139870815278884089601653191018614079590413622962276510573794466763842320892722696851260173928072251905478470254462700408911919149328948931393963317969902662378137178211247214510476390144540811869537324469662803768244448731767243908222336333154298469434600531347761182856645392930511172791381287071816976104415024268226652993397547197815446684413585141216477332189113878099570609451597453304112720265832753729413443123526465944437996443171457011799704889635862320711639211542737997200904156525315830298704895575102319551941442100899472516108175666334361055882238483872703677849503072781649591910509126184442271285063148161405306783160091903590732257795554188579170343305192336423474203908755284286531758616491024430982260348745230258147464488315337944339072548532802818175034987866890846163641654288879862080516191485843981704631188890506421170030969225346279097226213759289289964531666253386138531060060540159857563351371898252200239223667455477327521806959488494658523080289907394059715734496904562478239149159578549739858503244227398217622024528441056957802283052801708322196424417363166173448373492992174742463874813962057705052853034928718606732782324970904508311039042227496941126079467754738747052472262605663215091592541490652186119639645335241215377512292970566831513304497214619315211312933458358606013270575145489737827117197567403413337783704582345455273365879561573204514759612151003066924515882760616499913628187864547183906519701599175273460525042336451595075833707673072919181261341658198205603739079678642884189591497274771854703192113221871633212480409440012413994682567607610958758593205319509219556956131735988328282134475044815016591765718541501000018616154010677316204519594426451357234851763827500003953145009592383772112686949515943056078533567363633038970312756952809696895614454824150925834469174069426675989621809796420253918763403874295790520297352039157420510473188805686060652601444348720735530218544997823725318304993426046357362490672341256167690070712604815658265677539161874405324428892635527786465750177640925140786909166629694612383884527403038011033984804548172231841733249888891641568317867450449113638735836374083494182016072567227597739367078817260694431173417423274296857910423788233888922641145063799308458265770419977900347189733684935469589949382488972287514153589806825787788930542717912017841622622700658832967427118640832768856576990934903578429851966296213818777103853831482447908356116497760604922052302991546760774084543278675313456025241892649615052670385563714338281440998584654896535741746013751633883251701766229100727571156525456560126613821638419533695490415909420143291948123718046701023927668466840182386778696819120006534457187540388793352603071175194244987269548224864986003668614095611854942788457714982112086605979352632463881005830142104178874668066273752372534027445365117689416481217454526604399990894867547084142230291520985135628917555537930672219210631903487923075485572395042390592390783235120703057956442183413896999572356425109765939699606016261573975223239007289093997570999481481416824571076184212108815543944571019756230491383231498058199626330595134623811958423303688073112014499925864275381158853046577308150427356168520701034181980791765975720018910532110037383936692139020646268867355282887015260648007206594699002334729055364686054142298461545351511640184143275143243888600388811781155860476830721970200226820415961860290398717162552481253245914119947886796304461925842927423188495599883562677939540901675086058818568148868940747873172533807504708136753075294729044432204081720905741912515787868408963760422705346071153643196730198186988798471239469877796297665443242338506102529904644094459177853735186190450653834771657892941111385504739183928986446903251259661968663214555715123542571448183234741660488629645411987309321763081366379062001934975216265945264633648637665218943352140337022952414263051789747997899929642435533994317905332353326251527153709428277678344593921940615877501630653148739630890420886830876502411535465818436553250913541777209768963390130896746968047530495901933680792589959149457960852591121984873674104924179254186447192199701632679371095787947470622550423855546768785624264807292751426227044995650490204338017565754639140928611287314870237475022740893384444734903171412555431394270939438888710049924754536265534171820739069935049834596685860203670533555864829515423195220710653019016644807164420461155311984882368089291076448958218770485684292584775282256813861157368576116602487658392619083890618553652990991089664033487667905001569183046166267091063436181140900334856645380416512496654327698028314783060649283841532173466373505695920484127566321296736687491280220415732237152677725201030265323935001923105981543664218527989489980297770519917110410940202162704454329692734522371607691209938153118590337855316247769178587421215033401473941547464533106603892746987099407427881893004238474877340670550972048380060870253955077120842965078282493689663125055121091156519997808441551731351336121575418422131241611816091611055952477670490074068802651438835070820633214437082513130959073654725994617443102779728007127439477284677311972574971325194830913793223890904300713054568537988581495645094387997680899976465057363112574236562023389833786440487821595451928633257556440450607612832107760892121502387020626151717416690690519003525650452845813541794129389757158097983712921572484213295018671050484058607305598179908114957407655892368215466505361719387549245560658604069795736509008785349766160383055044288104679281228333587695729415754776284073624522198802539778777128111141162266059541674571558386077856148434086589671204555687538388361070546223555375073602516254809430449090969640175887416547983245993447801494439862367909156435954829897755526433444278881021632497529950545489443319022139703071799143667910091051270095210840494732373198684440263096353960700632572885206517282177727437688546510058202614572721728756130563405880432389470428425816098971402795338576075140990602339826296852582056124311513178554230986583587060217514972735422356205899169860673176830934068278160066216310909163598685373003128634140092623700960089747209665085293215827024834349017802450373050804779999106316118625927188054890098051716572360385138789981399798380624853038697288528447465028099861857581014123784304199518363342439163596632494539096968285741493848764137634579394748222816937860883801076064156350239220944945718621435260471154158807732752144198644888117115998044418356881749731002860258639649190689321264587351783277958974559034654298668168136724301817440778731584496140212059521472173956705619731934582536150273047944282999623864246151350372287507925231588870065147354256738729006924888144826613435658216820231842376942590369123312022061966658312075855326915555985066961726958159470715470518450115638524190654913796725339381078580011709799484009103890069816431889751894749487932543025773625938425873277772616720673602026861277015727535689118926337555488461505901952514927276981814781179298735852887299048381489846095448761984584392639158394105315547074543678476342526242819450705615499556398710982365980501316179118873025746218881442695030016095041415102265075611036870969103274719073448470665987656182714487867775197650099241167137936964415593094160600073417931606784248556864810371422988851746660180665451735619325376714534144150118553062485779079615447906038383185516282795932104446153350631928748876044277051640843574492328597642664834114545423429545772845477192023181535282229885867192188000619679804324595917076034023418296818247008838078065160614776126353299852424657543407016503840814429090517930387784790373056472540957898898949594617909015485810602006156334501149244803500816682703980106807912503275323192582961794268851627237988010882862610599218186295130205113414779509236451806968647858869640072406542492208072822143642605387618804902675997840645767790961778070628489676203805715894956093270239429690135439854165884007349124645362240690795359404008246202307184020863612927063859548690168054917880422742314071898117318762861895454774227934682075837832677393551436233223446086715995098715334454732620721645507487283851225329392983555889790272263593110549058604007839896358889764354423966369604307181666698080976551855140520463292282946409533294183604127950439025586527099933450679756211651896396129195997825737527254272045697394959766090686590262653012740276244992289714123628417142576367167579918372328892613126638086030103535077870080704978827344288233888145486695460712644075556678061378195950469990588388469866919288196025852725068067561385698672522398556878309293608632332693147293373916011242172228843567497623663875603836193791922990057045653845226107495108010139121704190617647197258849430181606035979475785074274160648767406051672029112814201611429321035253824597561350018750101078762047381001222431067120752303662132260188039421453692878712308025972867069703037190261739064391079104181468661659766182191874589138748537728335137001335851438037941083302749073025587911389676541784015766665622256259016107269634516865502791893826782894641635331064324255034066016124251897430430493921875816082092612771939132647916875641931775586383583179301103549879457527018733418998963824941954504787426413554906954716086047027895627826056040900792796985409455408364792527260509954259085201587530594268539772442532884518582049880054874086508652276300347374561265833597098690067293133296272841046076993459971024321135553649573165946148054726406633943380008764480533087942276277909178154587123725601858282501947337742576105855025570039773682281006102403341337732879305857662524143705033863457527349105053954920964510098715118877619760940842673434427545278170674274837902190301734577220081446167958077413887412721181832196535874594326167779406721424683253936572681139573468006565853654577457688647545288427713061151257915508010522039939932063815290106807918875144076409657222977929009369764848473499099211254922243076119416038275541447352206746556650954361037122930978678470516070592488817842986926857077748627781860074595317491995133628279264267417791053316997564461654798200820640798568891822314188851610640721760905940440854406018150404953444104438874684374069534774693994960434004733511250224441170663787306958429373425271855357964008721399661554863339634808474493080899819158612876738769851871713615193771989816716453734966757977620183502098492849868339072600760446608664096309728276938260804022021362384202051030668435116154462612259743005111089257691202353342070854541184184851767393560969905625673055184647571621919381515011391911072967014913457240008207113958374925432388456309529499228720124429161751526288625981334068942023079449751928696873433207224562100756513075214474255373098013210939016362333644500189979064746980961685439794790468772867543505043253809048068761621975079247130895640852442188102256071605791985068093537594020478339527249412744300162427025660778789079263338434512600244630388388277833961264426342304594802909519756352788932953371609130144155572112521848668617325784886371785560587658708478353369566461987535221484180852764041495782740482224145144249853839311178198852971959727360199557675581711309783897285949397549257528002919891674798226821302404993020501875001968139125775064454044509303338567449303365251384228527155242748214745202278948249616898907190608993101385887247916969547659213284928557598579902595986342684794102520933275032541375770978225381754535027089456995371160506120790588421102204406075174570940292633465015000039402982271167052357818905461068477346071590849397325829112738877714310318509159174968411696111039725168944262161288022424177201965158665949036967888824980796032380280253281028217594772966865925852905111891804089907812841703210401599275396749309493130340242607042503136217563667719508329893518092539499421861660279716036585475638633227297563484205572046070177917059809773169223676787734405184882770792063522087320398981365329312520183857191618943054745188751504651993305424479568582576267699080960031108366225783414317457190115568935716371214217528912779112201922629081344271011728337462198959288008693710830701763255092893044098703227610887126480220434744930059064832229931696007840924073975202586532746190298111014155373253970256865509740915442943578700484524465533076765971730964812382459049511442856836413761910924845869226335613466651341025651738289802309414149041600656484264578699445822873767104919836956738453442180637992029422126491920208861745455417516841226113245903958238765593464063798792290844506302206403837189231867771950235944747119979956378647970584701486338907568757103111091321821033182155721472080856203242432571772372893106009281404385996730950498707294830984472242277707673368498688945711121012869356151578752418504802872858899018948122858790061410754435485307988434158737956616525319804028155743457384583798340497790711827744124296893616532473309973024397394553668202784835735093603169711427966658902748454080211951222964972059844917895377311002694463251341628890480708778730303892533335888115332913566235009393309369305588114368636158672378325302974418086852426772613696379444951027643265345030260939819429509594202217481680815974151227857893791026620538015625990126712475473618686338120063429834287133165889226488156564022024400723345479830745687574562934517473817964398029004156250709196049719081233019627575858686406329995197429996304226779065409210999787390283176379514113134810073426991768907982531325973649429452897385280286778061054945438154792003347959175559476933848222093658785006937132285602163433508777769101882677606983379814986130186026584828940442109155854919001254363608494202244636500564834751769631803867406251623503715038440849488295125495996214472793443886288887884005640296978667336515763397660317116376607669824965626720888488694225850207957520209593988127835987303493050046203131299502013973359623762697530370066114645406233353482377430911603061109307222311224375640838760415534212422861097543105991090584563362888002831795384980884195253280514012072732993632148157323356312879897290320606841675096214314346286935692125521537517398471383349974133200714302139806619536641446880441399425731436793115897273145686312994632276981343193051381423479396776852090958119910210699651549814641778748076307137714878335454954075980361655329139183987116224709189458128007458060889543872356255063341760635740518359075268610369928537696575181684418229456634871823891767690045270463523814624454419830534520233004774644502486325857207662244142199498251259851324269710764485067701379323621361751963496364138977669643945259871425111249189986484361281246144308704484037621675693566750660101380465712686062111591146954992875402614045176038207392928566884041933423042151827289301138347826259280198988579653076784679557444815556235064599987294630314474664923808395141338600872249290509445089797543461774424509531934692708019284108892718370932981323562440592728036544550891317731973367267127848960090980702767189419648155940197525774580209017763762055661221020792897302797008926006905385605612690218055232531884151468269834972146983624188996022716104576499777930736417722059557266719247193185784494260512890510240629609572386830781419364836462735272498451091275059953420187906145216660847210951019834053167499470861449582655352533342796325325487365031236834386373943034816524990102263272538342220589952765471931353519666757755000308360393859045157550536140642477225823834331390993714270673519354466369714638798242669474004333958006402095893579613503067428689903260319218037058500284617457388207197395648460543628488026437961720106226257779955121789544210652439637475389821250849028923462625421722774530491190501426066738660087322629555227161963754752922581314066143945005506153592883087395291370937415619315897221515123468083085238503420495294594361557079019350015016920475070509316877036378882928693049967006690888930067179540855283376749785815387580576520910425851832256354595843123291210794267262204798530732579139060536888849730664898160350753708853090771174048939647960893338815770733012126160603983154068718695032602419864700626358256220199753794895752513383427089840719658929978012642677236857433366179497990335460596428069457909106303546259043556522691772436484051346093945756526143183303808933200781654245982477487992803684466168461139558964528058994187198936610233033570294839729633786505428664941581335424013228707868547480542108865732155821998391916877394630805615572424071679704238780433046281381312014951319260692290090494432283792283629348397136077515155422614123138195789025633193586200363418699401975333332344511202921966199916118913208090653513103156167373792571103381193928637474936374184592231547963186656081652898724870399387115604165124844301759177928019831633715254968602731590783126426882051027391007608774476810915188463765312249486703669061649514944146973450575202972037522517728980463697778789283273055082039913019981477589673385244096229246903102769930791204693103208003325951581111139297886540992477490175525721416828151613160573581458852273906543958042554949571294738089107171925778290179341658859515740020950343412586636751192236459042403142550710969606032639058880593728283932691147592078306816323491206740475939315151588846387394676391463662520286178785261403900634194882296798121523143009805473349827371649888020134236697538431991840853149723962130498579289351629124152918668149592346659811406674601359941737146786029097501768276714958905221263052674080176762105538640027079594065928063303689020776418373433279529608963315193618347204155810057166281617202277098412843618991766303876090380448544970396777727812287391550015557344940060917402417218843016251305944924657161745791725005044598170426268161863065992874084257925891829841465349768327726523598210168848020393183940412963085284596331421637940109327787313775440869005298162482076828045678850174124841471909267771367060871869882255966627431790987519343336786548293104789263001426061208377881767623916433414018007156250131562780545036553699388137719264013124556298072708702358274285407178858086231423465625588728981910553165039682835273358044083132831468246119863263009922583233734442337917574392873816985629123679786714498040737627940051078824516772108230211232571893930041082916108312161881842270736050565222767611211225574130541149307924333961264771484640939132828891550284295604754269769268799851095393213843841525315477103098583802490123313771307113369717171121980717578279683035392004463566519008000760266764496720346317685337116216235510220809624757581004127984044711614552519514460486769612341398441625190151649453389504434035879727728846225977250653614597095670568642127058701428621418199781029382988378601030713146916108120519702539700123814399383074374231531145856423987239971239802599803819804327552713567659050312643059833570679799024565188990472821898656634678578417384033405178484542607754485016446300875689455928590043261145138116795275021979090133597655632022524046027749124307832651598874791390896263210344142282730105321016759572160384833719866438457047133032976525052289434937847316186627009204003816375763911300753496589730397331913590440198585855185515335506842821967848761384785058685636696308325891214320108987844917112336304718047203408287379436942406667028891549468947464609836542098649786912250778213735732528621203469174011600222129167482709175619318746456369321497831305621461117245050259442483181671918616330953671069949088853928001748460764602803767821595064913049735620718203164497152912503523995637330391824362300574899372060708150424795639732534322839662731140882263191324218026072575102127649763208069010323405303839870890824188668722076062080867333719286066635248002717519915665147274736978663501873361322426923222020571263152402066641820349984062505545739838668515002843586034168732137685487648435237993162408142211721721119219634374587608134700636991315894125986260894643101457232474873060644340953669670073611486516563850624897987941869753362242948513288170850255026211969274053854363418385269789494954825388659235770455206808162090126270595656804409386818162578921959461220430958084512371717184899937942549094149633492093856077411338391317434308708615915266924953440320173108148436293213144128828662318446597336400380524128703002315221347683443001938669812245740402547480153954829320953422604298918762075883812541144713581587382090005819170586177863849626673257917933608371544364552476628004656152237540385491209342175798667146795211783176709690152287754302893613934166329698684269891971724347476476389042182712271391219114062716837294155823826723910928796365557272328542440822967043564438071417723310167916268217477493993757031168041013930650055180383311586998040781065745634743614113062344431698192185226469404121729829652916002631870071670274155113931227975680712007900925593543837373066000972183824631326537853672218723250700399770074507125392397788957997055332373764959296706062313948467201127013347956525509366266418747626125856538936099412160136315956909223177461812330103548391089641407033745939389785024510816951716086139174196405082695576994325736080554835520978644269321922285128503067381732879169756500503285090676401393022322378502524801789048107734479591790934513695460991718213175878924516728157220086810874649441580352233744128544790791860266068407286965913987497285055763286446195024440630307654654185116177068786338563346871485977390498830438686168673651386682068007016605678087837171308755150009341506148595293359227409807617226160183532195897585862434080462334008235376786021541323774311525020003274130034403057955097350624494497275027526214697810822300490276119935082769849661852727278223453002222147625448385390041035566191428933582315096827019072382626620671262537630099215599907329144376419449927540676094649745657195036487704963713440862726939507600556322692920188257937724305936626334344162328272738303345851830716890625070924100625440685941940495323255485286172666751384079626724977403590086656841793365673324890067454470889399262063890306803679064369709714501163118750806687207152900968771747490170214986163189226857244560744312329033092135057172559135107513253951781018034961559107796858849201567807748321458914967432014311697878887738098990245293508208077736366372586754113268806673006985785948622076011426028995702966932952205531668727612858991600577477408583111189843939820592324835118000532185748603404286480031984850402751593076239109730008963391879317998638386374493268762959826522553256595881868265088725893330538430226823064585507860877936267204505036726118807535805575011251703196142893857275705464560680417684819743457961791743614004399957952852204876023010766332220615431483992614840530704407010589273495314582214384785644872065342201504068934035547983046975177059482755454375007616421789111963585473534908180519638875639383663658283616970160405925073360423381527997231316760613438853778776227752984717158849901511085459972850963416757580383586378313594774825450289635450842170107862210710522580671118377202058651380276400025979142403299892804302196716639075298667516272984177492281392760579895689252804019495203445263754440485769295817401005351220039055805894425656556384999448324194230118617858756887780178463271945344840063484625317635805929966027208754155768613416977014930840887539321081321910257100110478203416335884832429156109131113325275330120704697011210556738157245821273866415563376942939284499818358179963303280810896706432112676440231688983579932993715556887269335492192087541571652187826246392408588467445360436445557878579680083847234679505059290745372274393971018218890172538707752907011212028031067602246210659929020333570256156050143674728595389946827907856768900046204401677512143124635881262585264805854920147803420342960884272717886537593033160467084415751063931367103353526761761140349134963377210346955342807993374309429378900050398836812381148301318195979256219451186108248032484466483402851355114957402087698349184776084662952232358587946490049562850330379259958375344934854571840295892806480049794730161843697001114304281528370440602899059723902708597019570031039864344965270301261720931969406395064108527516494518610327590284654676299965986849449401629356415845731866387075548322196990804806519384697490239859131452615500080278898056037131566300848372714478428754009552903076619398209538120994219464761446952639990458455059495671868955431000476838198919429957785776450486870088248663837458187180241923709108802571906261332590653598625982970102444995858848959534850463251948225421081178680036732689749129627807600535064603378414767759683312741879990724192421150423871352317005575951352403821647737667682327471074349177354150811535939010138695513233082078520776831627308129626970370558426437237270838393508785647960024177223196803247788769147825981376656128688089396173956384974701488095332370103034808646594301560328423799147947166334886801358900219951797124955523482570572315083119710175504905305300304088220005647773307068709160700197865023431960660792148373649962111666322552087963701635302657613341383484260285383357240897597039878051716711305255531877620466489655296193936372633185621875358006920216455774402657682285518121156496942740530903067193934974523283751295888023167962965774714754124387998644388504182689108393257592806932797580874459579082755416775130598337449211539966708699557350809082616740089714034238139720349558647399525017145775814152944254824789104589129883533785531812422445143460943319414056472893082636570632942993550237359013773797515417876179621076913225748516828483287888849284864725951911183907021273988184028020076125145183502580138766756503079856950211101941986965733280628431187527372730246298931782192865157471764831615317711504866256777205415528541197459715438354712262193979689149952709130057031294806162380310906526036060855201895879267227110705494638540898057754438047321193559081794895738266220497614318897636062120092731872358034465257716130930025393411240557264794283642432992949566342235723236783272923018313656789835110372254313262309415892003966371177330345867394132931943199861056468371768388109250311312585085381933959532462806679956092749045236449899170913642692977512722927394497218896327406206200534369188871258195680365989802832518793109171087395691995674035143343209192991631507223444478285522443952873973643060055768081203849791011291547433320630055619001805761819717908370345802921757656312199761846505582127239615957433697576206885323100126166435508157495961863263753404824543866170511782858086185530844708382577041376686798274344629689255254490893695479827057620499758516415360738823280060361030697622708636215260842707344831276821901983077304179038075655142278481438899900349027559873959311509946422267743259871876664377492779176360843854173233737558962113049161548590180932981241221558461598037816919794987548289445650268643139456225827954376260067788624867384505714167254943554791709718275216703066811492148293211629611122290282853349606545641597818766914248314089909738455021011864469094806767760767550077978365215755807812011732638111964220358909533831738437924376562021558791025054297668756005602922817313423968805478328204564941647755977192852131024369588418320468219434920024148842991651176495563600760966581392288575102664872760528323450537263826195447821904944432227651704086031618654647828461015818654107152560152398389015496824397582190328515439492365246555072537134188299542934350803844227175088515619834524022418619029250343116265161293398345680844382312925004039249610301572403944671079388865381498391004694544701163456623940373515853288190596135239147677104842963652694433382327594983386543103153982364303580854748738026582879468594308688001191852905479091780420578585052752218921427064023436406672023295701087170514678276307992197202753620950623971739943602841063183794307115697013343387959225838584748848554431805891293533266956108701007079305103971120820499170034683310319522936107276379100034241140194109202523989324863466904032812398802617864391834017159047687932418794833582081996284162869587207679043777730161558197115289002815427564948569805189674221016349908340502502941914970931377154239028987025906210538888753624081730241285154994196638701034295852218468634897761879956236313459551966261032898616558215275711118001744756395946227527900286130596793520614389833802863380175168934914127207755176341754821801944484399421011921288751881257361637509216707141965383557831565179754332812268241146636640561336062775951071510647283196650206467395766873693422044164664997180913342862190086853065318916137457712340805109907906722941985566497704554201213506789325644240033513459231021708713209841871819157178278034693527714196612796850820358776562691838555229200035668560478727867204631735697697232132710777716137779774708627074794204002038974781558603428954413419147740326073614634187686058156190400461372874260128942095015150335127909639588656999887968137269839848455804922408964018732526811963371247347945933651856576496549689497736784597960286037692252481342457250660308724539980412483605790212411515797560490302352437792868248034688824654385779831781722104653234640138201937297904281275698737934861757037784565798273118711155144354785164785430680907027318430398332387081051122059852934080983904508783096358032174754091519035812367451603522919236340440543734741042911001774963315600003280520725257026910195513949587211813272566735356527042916952623787837380589947299849816914190448268446152629182158158112460385294652328944750199066770629214106621694843599186091926164619863735627046760904884047947909209378170833400886895594418983012798788186373748361834458284122056888853331450724910970338515030912533368238016909470439313393989967240968523432052517374615566636527174225319460024786057447195448342748677967322871134965474672359571825624707361695187198579197944803388180678199314829830204180891549890606240013964045435355268170685405702534774840630829633457145790208740240129954916109378867564805887674487162356992560544030686120020821220232578937325806176483842940559766366261548494600950767124583570654288912545137013776873887853331647251233970150580733379525633706136395880759632168349583965887613041220288976106561914182954684168365590688006824780018230337074655424887743975979858172898518835543542597508269554577405104559364728470170599908634654994930730681599477623294256291816067161689025432197319751698979523866182557724733509565859325562080044334829983176998072040830574060980798111856025899637709547824050214650423960575686986364936840456096671258008295812585713307304099502442942043852062618895984992243771724799433206643455173996730665797735604657059356534526212163124857171481234210600723365746973327955065118451656766054415080189098127524645086280953500552258388785282074763689587587837050756390935250289274568475252413726902066371069555199627174809878696402771679524659698822157689629130732028586956441677362760735835149042292208855735758625347244918030467914504990759228900749121215506970217662180345673594386753561390601272907578564435969209215136867206709897823507763570986194921696409309608021780973546351971268868561659927193962051263388467165179810711345927617020409217791568364270381601339527192300674057998619035594430987474427470900481049812071438826184941493205907724567575941601779078842877893838379921001045931018427759021705458012423607242032464145573084534932849850296058060299756492468566040833315088168627384297774273650943194602511235235421903829248839884462988787885092861990019175315857754298921815891820656649675610422766909403577474565266302307270322477790517601568105214068922579993519685704985523987802274784340287783509910891360627938180634965184957865556406587476142348167488016882706959008957228094878266694945756573089533905729649637594230460602463535177751251447866334371221062191960176164889191694818110413677882583528516869638276996284708630920880934342646015019462561255297919107733244652763127923234776389642875199111917643548930618352799309301228324834930873112316081262343450383978241469576986465928289282440835716426751052940375089794667666037276872159826097269610722113887242173569276894831611401527517679280864979689356680459002860935417532041169651271800831956963898452011210547139780080482738881338533041204912000580894551560680215272108298967650666847566156893405657548215605629509238730726666899195071111497668026273330104318781506202450622546041363550219725891091539562030599561600048520204312706208918695798456779209933069780819242798222620906759308809236937267492373640312852622602172134043690681840360603353665664024941701546825610308254371546800654441295535187977998641079594004113285339911421019558015318911542898333046968631378108394797029065926284318506841416323680182157331580953882389066642013604717172206900837808129070808162643754299836479535207738067308115168504734493718659949044258782317231713891011639924917273140739342635970279275196433032215887443360271701387896272897322919249639364251385302398183678574806195543314906743654858181027827956552193613880127591172462950810331386408456135873819499842700957236073801019705478806007337555136570722644563909841466042590939609936910910012093172917929974721739385275733152812429029759957761702102214854451389604512989410012851165044235651242205969880908887896977551342200799669541165214412114388318306236869415470217175818288553978314179028402171584930457262093057280508876150054964298648852576643121788386522825211743602032619996674112954227912314489374981872206170208559564212711059594230615015585752671885688734590992769720594770778818358086608792048121191293679283647023237047449308311053190675786257268746129061802799483445876422636758776636275925465994451641032322812498607775272137477410784938757958005398999549503492814363342373352953720961606261586461044102254155891059846423553714838937912490886052275798851575908198729623868168080704677661555346016778593684859339650230922470590646559576113584759335909760460762891954131983345003257747602900366025369963746693336456410683179110890078251578012464621317096887820721841698794404882214918204274999940308681677892046977781841807048601373031849118924272847019567742500988340229700140166064919064170177603501477134427204011381149154110428879026446507670533755959009722699430503404823559499775148129541477457198945266810121098876762796691613468395469586012616690215593817164537827139163984033081087305815288539423849865703821150732462629199890038551192300332093966734947385885889796498730095199174352609083190791025949643318932858153468577182773761179619179650824241855411085652622986577680051994530084684261529443331790775966175781380350618554203521266366564318184795727924800554766495061372155951915789936665224810706115617593764875854894791975603228580309419810281754000709057621258849517778261602179343058700864325845759763937396269402336234664278560218807735098970259268675664826673639923820907148532831595662651433865115436876456876778228820116879855183395427522612680650355840913537952635783671751651558733998211312916687915128893592143194250209093463254945625052525412558871428735701831218562394502233846630603663560694396952136942679339877649840506233060273481499744924425667368191649420249972271841089178175787153168985524409226610754838777858216589772340685137307757560792908132087483947996230700453946807512090134019589211176128086402492740594381877895141704633619697799317670862031783719182564957278994722831581386258001516102115232146276120730853421754513235209585883229522887204194468430061064623935249450029244490861154901464285333607343872582122300303679240018081653511954130266889818969363905285913550912965147621099736712543139110034849655408334013096783173676482545346079070446592632581810566956831250854246405722556319626538594862367247203522140348516924298161264594593996740286258738668189999014035664806430435661636425030158775922715132469963496059823482905269582616574929907017488138049240552949701063200470442524153191209062538069871909981231823123580170030188583438509135585925130051850252868571820702173398443704757892730330320027843162303890974787609275239524204890517831493970843554398130157922563542511429151030883128181429322597710358266521590103735435041408392832597521372570410043383656462853383523927534187174163917437362269474792652781457838440602614247406830431932253730329540549721304007026266831139765277216215923451355895219039230427311569696042020292863800516866162926740303453283403448447946808785222783647438130421147590049859554732502231421576554961109193206863790014168536298326305426362040255867632070058586044286954658507962726396169473687568465520882123948155606768293226443489906317748263202874109626459375120478039255227657518560271803027915156923318006960550978126604172292255184154810601678794728533501445247855374887602411293093507786223318222599419058186404081733427562967420978056337243817438005513616652926401331500933092159362854614906039390596318293347956739301343996159202661391068821380403744399705353830177486322004825832783913397170333296740431651919916293979143859089062162022557064974511784629103332825595118228881648380309707642712112000377379055408140085601123329422003558792199535377007788100362440880292263081643929138451789479109750895523368108879018850730642688338416773749661123621169468139141427591428540316066205343034063050725977748867917940715654001728372617577180542857825479612330442472259280691250015428120597542934151889550743524479146016918636964350735378589524973183735301120970168219991186930560695800009778516819466364007331664976231278822704349630233914042489777092288716932776454506955760861144875118371624819277503713269424770151371787056410018439765198939367817014746773024754696226457941718711144122013270669729708839863559648920138278011450695815347056099040158675043420382280204842162145539318860846440140686040265491718054609413852225231820731969735733832194564013993284248352730610292404724569077662911728172726536012194498982879844770904352351706694593615785058282115513397734574811160749166024319093398866367359299232158584359776002823195061655247952155585036844776077450114649442830293384172923286322908707859936102928490379497319399488140549550050483749380798411490518043165908957563360632038704428599893137433477477301733296435361067698809049882270380763446728570457370316763177799783692039857226107657190471964338987983286295246596273802236944701684618012097167089087382056627236598010740000519027180978118349534844662672293477765496577645953830440824249508074001905919525548591322144161419979886589485393696155528478014445831018254402485168909518343480753805065458457189716645969302817461746716286873045785609173181824349614827814965639128731716890456598850842761526713039365341201158160662442414284779515284239322708617811971679617241871120060463594125350636162935207689993039331425283932574603685457734757019161138066001697563712626063471599551462186464487851676019075557430976494132280817359038433660862426168264695148387853839189836792397966988949289298114085980801007226153473323187161644657874050990618637629812150080714597705080472180399178853463767064573630351103499500660121700041984940449323041710742825089382464867384911195261054333604488927793512219337983102905188082821197118754958973376227549074376732821754923090835975310546932932075047550399327851238306051248725226743887690769648081276083420654029551239749929955218814559852700132915362886477415922592792221931772933084272412029995903911289330941425067400346938307546680240167971101383104583918722112937112086702220212167826728755846341654621843956165946436316545548545476737314121103538640738384852610386182201174562284674793390775315127435606421471859019586571834540964925036540019120743806005976310249392033887900950513310726760629900774140588383404857270038701520694018167829203948061492626982772791217585070767714204931748332431337615136536376587856048408730601846555686232010653997731648914635249201828743160990944422575035417721286221142776698494842703736557316351282215756252468628182139688390507621497227774744653776043146098216562941049036467915655906249264759980406029006702824943773984385955203163940801464354328496799450389641378376496539827973136255747575180702033820199579451255196588334395396684605013020839213447636167937184631378465447715075736491608045914329291794458807128796070785467916266742101634042026263631625190338733112066606393309217960536277578789452954705596775973553817714387922545824820871990006489471009711782642066960264408913822357101607890645739372795706995140112345501299966074344970099834239702843925282166221116023586149038694230065867497057435218008728165258104570514383460781183163571429158915496196316995841682582843142491631855750587113377854467823502818355880891141485927073690635412730608321829415410000324912559482354184333781975392897566301074167775551238306740501581939593196247229952885840861834101055595175530410311172219710355052257531896846794608122569540623454381946932885935616866658406590500973682074641695495782195950887003469932988660889705287004361792132189587684665079714543721085607866695633267840926073759306278373039647921140831816426015906480129146018878117949664306613331950275557152321989057287436936587637668113297848804021248370808585092519974250914929763736620352811493333900195782749891412852440935938422493347200676119863656902274951792727548741320318586485786391329450157792362816351228913318020369750329426005339074368024844554180123448732331264577376761996553932074104038302547854514591610617648111258755144852099972189291194434788118158483523704450612397846615784365418860286058557636247029425495237770001898220312013198914891817442182844303469629783506424407713189690096706661969304824372637972042196251705439694081601223058974552281054437542666956993921325899771453965339581497622881174124744544455203616768503966865644942225887793513122918672016258068519155874214828009378492922096939461349690829276735971014445296275202475233880834555937243880347202426157145103916971188564218596423227015214764832357374405031155901620384517145013773968423521799338939893800724430534734957940649887564269661974036232525671346942544337611562427233801827812122992375230936575025591287167722578985181371089337237476598751673094805328911928088868875371899440227189752624967833326761784704426240814732143005754887778211503459061437282649534185044364377358629468769240856648560890169590168277361089624607680403872399863770531557870130812428152596950867137519222399372069706417148701809330557259750997404380313223049829979792913040781027702241995333559003173764844442819392241897961671077436508800703008802325884500727967094130090554552652103880777184389023554947774436707249599439375924926313074417637117370816164556568078047420569381757639129734065114855382835700973829165709127502199079910937662352180157583448388588974524140552115136367233155055638301321906515162584374862049602571650534858459686692955127179955148055104740147907677386791931064340390850729303535569902200355254467146001022687075588011369541240066498695461822601927390863436528603354914748532767890759090407731659462750020991397719915507045018523942399750151602431959302287272083611259716558360815048901046245014204371453920679649486535012231200347259154254679921868163718330868918556927899531881045401243426808061950077132526391540697111897888966156115994242870191276099002127270574564889982666415053889867666686219045987127080396644880843788563986168253943135225306894404501682200008919755781909646600884495045558225895566292603586273028921041571829384897593300058216229287790838048239898970957839871246784200998931465351105797599741887054464163476823166679876129828387201086248599476373251290017119415527453145805223316470712728835065386663986235055191338972998615761472536955559626213625516627699264909026428071104231349373984528869433172481401313706555299686479225177034025653985460059482527964732037214477358729748076299308984377146638162337355955364037324055607655701605238174216449885514199091952130405119306747785507322410410554003987896309421579552929908762329706730615603437169355420360494963503471621430642906662279904494862215565366870923368607431913392067846866012547406843509309184309443592773388242141190466638459358929968603464026472737305255721986045152490045493397532580502089192744816638597411076129198943881926292208111543492009313674743476944184569946826220115175886378708492528720988965869558143859777759387036772890678770721717145183778288783093700817111471479206045876552123924122366632168057156995779823673542791149187158911318555910517495756147596131997087519517713709555541281759287474592271606408314086064111754493042011912553544493994417313833110047371184379221494791328662221898662020614094224608610597996494766575182532537734802921809054330611555490952045714818125267648877450844572972269642936757166401676103111382243158867209290782843310986699669227904700496130843948843600247513890058937286606768936589777857649957275934128973587035468124137088337255358506301857555074123045140252511017902440358280200193956726270741743022072916412273503213979625750358386986011420812064070650880175546928517841782408639704510171696545365742968142655625190709926721172183004393223227795839552519661837572010169504371817984874110153869051473005952251069582013072030863482725354720193924958301025116602768930924615660702386077343003403351049932588139632151559470454299758814845079471447762675629133855673473036211829344299113566809283396384580265781947648982313388433709743194607787128534937366138623837469779666849795083657652232050266275013033925962132332609692713388255055035583009249629814251509296560821071468367052604919060090145212993579940810781501551097093414084868216290748652014872861170979129259790654840652723765734333131239198002995498799294659372480801435978544384944647960149099369521665177022603432658286810055048649646992340718591383233333045842720420871869367864182809200019406120640477472535661352063667537272933386575755170232386425482065446776855618110596942746050801109987808512411624143261828083779951226498153844311936309628363746068106057952012730063538239747405454652627771184432654589240116045763013359656303718704198474236044795846756361807489904336589636694378052509560031532971827692502742535246460069177812559950568033504842521826369793579154481264030196960860133260023574318666853416641890794934983595880891361441593610057659953873511157563798388840963325956727535072819087922107879581919169455834346422768494482901540021802531176042846788193501603314896984220685658196968139730119581308579659635302498417440917743179197433979865245215734288821570814749658665638930214525588884788893065437132961188405278459211735405504955703857076253479726469895601737486537278304150799545650811863593604013876930633830162796596856613999447562574996829673417508454663797354741232252227763782123551958136824929116650325626540232851448965937692380118503867745874181101733790971531720490655611587722222722060752348427066269903279366003917268603345145190466887730487078974220413866022079439377555351672028629553250843093635874826786105099688413828221434192317882727734478643027478504418447391734186374993951778791437592046442604376287397061921626862745863308392532967356041686374475978197568034123052632705182964207894039092934347927499048572669951766287223571630697564149474450658353295610196965492338434930062807961723700537011318583876051287745962693880071753761141510460411737514036212492370686004091206302885244003748761379419057439642891400589501699797482406022779459243997276676425865473584087715044867002454263286458084312233184458162933076879041381767323688666648205646858634348105388393886883089199466900452505775888939713911336963449535817439069469119729290171133182319471265850533005614547996246792397027684454278986151630715521460246284640742561476094544067733917851148522596087159506235312140171661585028813808618693349858779650346943916565019875190125890693332095796137099993229823127034938161018943689689234046544688386493608528672338799160518639454177357946524405644032827472813067654888630974171347978848134243278163236454248260813385325098374145056958177522330746709006474164654124336965951822280921345164409968318616877589222898683962624541527608323843514037023603919893844327110130080996988355202111823224630037430727440999706962374959126200983964779728985796048002960352194881594717538629727199744709191759366161696904343764187005308345144192949665462158323603927830617128055251500790929498872742255505780900041062091352061328264601583279101320901912408956213503072055158249708393259193792492963144125279539187701465569581321466839662296977221337866226838440448578162952508437486123692696880255560905888013778460252898178274757373945201252941530324990355703935379425058467743667661315947203004263480488774573298752359611539769926142530235369295328274131622003179563622595241167148554635437507552271501515119780928017142887667460379929897216040096397257746992248107670782178155351005067747281445799355181771883571047253962474210891183852569136374741338138020800223264416910148269705412836974410530118131173826774454863411229913320099574335927828115245070015136085398862270578007737934157404125858754835615114176029581987861848414907911549271268564476255356908871548435812174476508713423433946620669677850336950850215931515096163857579092203197013882783305326217749727884794957763563328549299507813112001765759528732412652328862876930625394232117283782240485739834260418181234064129836639616052850558679819993112459384544221654003252418837729718306207690679579900005762179040807036179655653945240559740308149710637022106283897846619856880789657592306857423939671643163334985655893305243402477660870087566751650054091388744387941643165281773851912128519607852974709723531702805554411138188311921192929145242263956946214250007683944827084380592136584677942254940440751700027873605668750264790544371793496127266723526133780063604661672038324878301151457591646961083832420690353968105864780297361125971650785889253470468819193497401587007392004965525441450946607298394907876021508140819028314877207624148354468501403779117576530313008863381560541152760232812911637160302799004504795800539865654860689284384945344856509287952479826120032058182315017918804582732544603657311902208597817947425693249591786706943892587790058129874419766402907546564251419513526056572517481081905637592897232503246964296769943813429610228430284388638725368417106165153951192658586549996014823894444423176409201691608943371834887261820993015491306471048131440837332937739458530618881805996535294690790197706800839513029956112406703986263525004144235105484092232314274685257662128271952170080843361286557258286402449800352640759840092858956226500249757770944890419507587321643886757725739274403208567709307774394055983258344920998902171305688474595402330291349517048764005709873795546220699640246541428272295213891764346714022915890467742102699680331436860710830058870521186742431446370092672162561688364847172341178181910499480455837988447633664634431973264830595925080593655947945759645459419218715109266232769649883214582911644973001149117875351012684186220643957634226205469993405314168332897302584610900494629658958424585140835407935694136093962489556928809071632242579024129215970767824940467351269155005479221549832328293964308285539196393316470691816595943245687962783231728535513537295993651571028775535597260938987210082225124728990567574392075096815993191059870697570173916205327280677132626227505813142383393662022846531650847078838796984157132580278573526907278793493294049212337462491618305010033073693213240625911700807822865733287085259089110223499144608027824329845052832439444364384754818375449878256973052124698740107991552286122764765098273235770693089307305973638340470001073373151922663055840984096340803949262723894701831106890968333754811386207616652671001573362010774245486467911672905256553430622604856865708637253314424376575454836343732627883541889298667028005800215420597613243424295114325294887029882166156344644103086249910665338916798055472485758606758548915909934797841469796146687536959734451221318770801856375499824602511963458791795267462538871360036726374193859057037531040132515859386097769171423291981578411403232694921684893870771681030163278681504350714670496433203680983563190413457705127420238144106203225063105619681430481957635000856408455901883997159078137780158923184211723266222509253981666421675995788485878710827994081285158760649859396251982198993767044176023151072513137074153089372627373361723499511334854257077760907651915467885866492715600723766786187518897908739281083473710181650246771351168613883142000069514224089695292746773864645476623870567509713284226315703965068398230624461639990048292578289349005087440285907078881932135945691478899489451424347220866394378771078097864339041720484051823551571128159433278757472576341164081616123914020344589173152425473799224426298864490597395737444373428605139346803554334857120125115356737694154469667796588512803397651093917125814641800957096122399859127812807771231143873498046717784972859005978259416001932205258980512551195175908148496082657780196444498853328457772274122610372502368773727150294091387407957173272306425584028429013748175867423187020052898512428058276952572154339006072640628999024678540641843910077522673572350270519508961630317269915964130234091990487303383702498484744141052122158547649334932956518799764302030973804344324371876391534614487504146489595792308745660318900170256763529714109837467371493242107668585397965923471253572344349368132369917844673091231824575421210171103649452829621122044070257741879253723365430225438843238073856791589597379657243940218459240703591571344614817227948853247771362943899444497708763135803557267291809936164142048960910606330613198351409375288315559442154886151885575467153453257472660050771962650279024818618167435827708164895043098652200243976007312344632315704218845767433045454844759570652904497695687351581328281550686044821912254153300072352564789016969196400914717999426870118662304363754679511885332182835240262396712944421002424023458840091615085133349203774071537191718998053344097243697609914890876759785145930098211878578842102767525807857394665990030597202623410966021406582831283442061899418530362863676012045396339780228278809865320205436877377228319830190601545328091649326592393028315208068250043026014433419861380106045367472608296544528540591817765132764502576058468167785903365700936280738922034785507473983308931031414741750024840550764100080112638504381122271632144750072773509108465257266236647576512516438797213179781166439517460891644716279052889563583421652498081572440321056719812758651779500538777167962631403531658299746218683122498246085856175489241439085468686098409763106613528432314345113698474329547590024350658622003548314008092491968876544210939377524013612743895866454407719793570415271833905464298259507102451210302149534865793208294460523127551181956853361038779111084788070413947811920153539382059747226472072376445830819874792858767890159542174119855053990832459211852101842246555139393972409501357797982954718545749275799183136249823295302618604784337121638434492157525644515677362905432387548888904908278721631304399545015961469317919591827388027843952427238099792264548912313492790393860511370880495862946757783540803519069517346603314022908075545500848310009667804084481108181414819445157374083871031708569491502464575022624036563324276223240847434544946478110080373851375181664679698376095554104535310270255940935527392459102348142206706484440697553680947369814562107507131022252631036382099127638108670100595759572766158080013869523085313055627324510755172043312172890942753062694444146843750423558697644373584559472859912754899355374320355540197279382354375021113436965018747402877533398150357622971194301643208338836173775425802303809283986728755638143011507246651826164760482321234317164139806663498959266458570529745169417233544999333929925797693019443240175249145922473412388578399877236626648406032594322925487139942023583085618335709535813023922370771694234988065652246165142128609184975802453312849063537733152592407383965457372257982069300567667036849816593806332224444741740025671852912321192749320864514792119472050201235624443574476721269499580879923800231859164732036929320756286164937463990940387457030797011059440715592200774159811729939410155288909522422742330268427946970244069613723711049316258664763705434533044545485758759691077287970047751571054303928092230787971829656062974584087156420720920447171355810913690999136761563462732485033142086383731285033079895458851764447003296003697628067754360376955641183830438904101210332324592276527571963995514007272940121085017614437742904884350182658594863331664910674667076083698400770836445637503521201965963193940795354208887981394742717528356799104440430711576575196027809874714461580775600180775756689523501684306828078976346071263283436217048115770992165229046369809422839248085477011019939687912442867611277304804748025124231066586925320510076804348475205218548405597011066735813895799443973676158689018842657859708809245560146603874983420320837483729495951432340472372397506706514323010018365160210591806044421784812723503283780230770617474630182192050096560562301547511017592286637669222842557217834140559362634905482105582897668464216910143836009973881678848018286888073696231689680318545180683411769870092731174862874621748887829549987796091774147914695969650349892380913926936108879145824520165797164167151954272331823225474512483396108719908121087891984529896070746301419666407037136952628507274033832776061841216654182815248982308371187978698683315717133634566059833861020458172497315884625163962634811630452876206082063820623735210708272114869691489879912989627288891995672699767290107941074800942311213186796644499525897658383745184410340391467328752370717812186469611330567359621290492406881373217840769120876483040143469450263976241797817804002516960894007617801990849759348176151791315723084137846329563147196527691847136314015657347190209094937584048240666807605303423566894691882675865517645274660400462974415696897240579109969000571351024068562054371690588146020470861166570052807562206023211393234514398905346770987148818876984747187783853334199721989637154155473577818665975976698519678159548735249906765183839298580005528775805305716404426010508697572570619471708629774829336848776163741768952320799314100412064457567238177064387636241535798683606784874467453966507873235967129685297668271019029715471532965422329561199071594462974517318673651274116683333787955762552408206533786975560329552244367942959754249942777124545318492246827499500757951779717898978414061303101478062282097153204508637967506558384026846063180971891151336279499300824585009373602944838517723891397649673550646914236875212540713910248899865756926342327889461386518825828999583610208010945136085010523649935452764795590490404874509532484559829386751768710969496650089083887008029842935795664902152262061505750811619063743779825378485856032906156355127817313210906062974009634979958914511802599874903764646704325945542621221025210913265873388701531945280892631703744523007577668071942759392459559762371913001358342010703828769535687912398395149406561449075580776428597164149895025111083228551706929760046701366632370301692725672449659116676534498892154119195867307402371076973508565428755933624386161430411726506432816660428066473767873128279574500243553472564501863456043639170830828148876461768596581590918986415451006932062893136801710923914725170309916988766057148507115871986867841323471575902945400563718390789799574321844328639828354557457788839240309121025438029931409374109733045954362481898445269164488230238390035838542551173362535627330671803166210975215955754667045833031848868347596850710637074254091811667403060884150088566043116596349949628904587138411395946250898205426298299679052105193000242961373271265821564365447220785861122913094442564336819727341513600966662912779943898816975031299526686503384188347959451821214281509615682769976631197096166129799399255175210457880052309053216730248542888265792040036992078726169338592725623804259990119331583195989634193687990532395407969920226879389475553564103510416516309050569318514355170044158228667949241468822348491433867353078556263430617797591702713856381230962577374239603961378484223980357311363251693805999032371955765288354043408064226072069748642866176163984564896787713422228379723904191992173272268216162170826099375046394889693772308441474808069641149615656951552350347513749038526591311569074745261612098323590678585326837092086553326149470506935010112573496039392076686995713555167290522594323685320629844969588690016638719115547868300144790820541871575738731515541188765475419035270215666280253027097751076269928753111917203628274050068404165440026141487510291669079286541251240412951344419906123623097225049963018229589043783697768258117937225850893043734115479987572490367000308287584716228682921695821742504200812352635446220282389657374656315742175534260328199887693203568705417010520712947178103016706755086666750087595503042326185141098468807939077186827583348983982389666432604071153103449367281616505273469132605531569105236255481003451553234922638801235493627154289192307937473147930121204303860501855903976158878297951572597105206877217032264016836187327214665998151718770710894896446432450481646355899119536167826794050549834149155060649616652811934767606885615274033500592609289420768171115258248194612102688716097986084106233202687838311606484687692799673538584930842718778498863036630551590900972308056902901505264469823951272395477905375263240564999407738778223355099577385733669817614775629545807421645013122052155751391726675996977146677995095237742289474101714138889078727901554710437198960927282488853040826287260739618797107796904614831591659792808693585715173011977565122869188854323601333807215787661591352188811159949927139808941416916539622427422816576844160679117988124257847885733087047565430918168780581190674969370619385780511508663791379829839594937443013992838230271410588454449664419099397979580070890893001264019821137962812232056746558184702359207780010971253267383053191275454459845882208744904139006248192790903968333311374806917838356003320375740921996436898469191542919224181782463599640244384149987467019346579136708186195642979302988104874575440061703590872902519122549127480872000137129419304812576302126814562926926761909535043233239618259278153904359987759144149243195394792633390247557674909938322300091158828195171557423351103732751148621006059513822776760042322907314743055784235759027588983954071174157259579835526467588661824218895580316038639420074329804736460844534259912561671167338328436639661542008425693623603292042709408195914806385568248718133533590562242063897252531859177100265964989234697101096608724819910182072880087434430211586157633360179751101974815336274780655934834645394679023953131501227733118825929230242262827078807277287483217935774125292491924749661304886372952254810721569687304394720704679251343682090173463240305151132532476172430114338561452355047980300429003392289654832704090279265973581697263526409894311658637693275927156170906418477673753660077759131655764359491508407651381350470344380616969175550752075206104909806654677296150978868266414067570916592090512331498777033773593226830373403962831169586619759664136720932539469363251380196383048471559886194781960084598634032274645363315452050704138998666113675592684876717209217369383676929610037679862305032548879778300486338139812145124051039430389816082585204859420754555310930678233233386505791819811934226990902484914773597785350090826330001608751011219872969822699454078357729065724543549953746408749992480510957482247449709411148871755300676573422991387132114160389632405291063005358205974237456849885897753015166696520964406661606993301492133042152914445080451149923590250436600092128314097479711959304781012902463296036709903929646604290148126770845627953216401530913927608744304797441209141290647493992072529262225544586756598687894302845727982488187958715937640794529696358795390423711359464884742330051691045262906639707847762775354318735739063603593064277341711764256261106449807510582747127510503528411527068154472857587203043111692376357104483177733380605271152618866903718302399688039253342561351859994058977522057319634499562185134091637681704279907942462477338920467200042055668756579788035511926795974465499045714632786818347616281529172437025987565811054603976952907406704028763398374204600849230421996339252010517625539431482979260204801998026267556197550838037950754927222153725046922580694998889956189095237108362436505388508441486736335885933345950719132680024924032253642932799647256509854110070672049240055068948702538256449963620717940417664727414252793996904000313955436296387230398288021121903111093763222244603182362073079567161282553593031702186100432171844359935309006409817731416542610008677978759565937169869737849267631852497502408229234459948867099951230257625802160994990464749696117809486040836760658875043505450512859166564552698329244466919023059525375569433376226483330002399935418612901301179085199192068482079360041007445949927999692806504480070967829171557468749534124590965944085077083297552227473499754875692683042737730116809884445663538494411588498089037824078428140214752481223312091659437173238143688841113558095698593274389195391206008057563907756044993046737254767975211299370267607826973313178182822754707054910441075375101178598978622038331258638385108299363983621288485577883775138958840121761177976794161145697491196719211035808962443169080533114878479135329069728922115336549386553608901992666114176532016870206370797098651685211864053237095199937110297644084652534087377218914896716682499661529480415216957239945147401439469793517131125393297830636038264178651192777239774285292951344446622493952442310089124365469079103229983501350625562941082440479628554934655859560645576831110498034538974681469959342997455344931640160880810030092833365147293035106542070093473335083437410102337112184804223982926196715026962050059270734364738588403033891376961239707970605837396133590747605563843227528500441595932901179806281637181013791588280876098519830753679495625637127779863194158309780746387814420334122466651279655727817845916961212841041411614750587421885922611990945632191403452165154828650656736297139690785014902197649559498437962260730707512264614087860193709509053934116409869010265011123104409005726046348651775780414151451184695097246723888847469667712285360412984066049836314134160344615095295703024773389006865428118208511542028163747021387229401074110989118767070864160538650429329246968886057191567974483434447757961543861221990643459883504991142506099884796347679830679246294083408018758563572683400666053595596871368679776114658183937824835526253367672630783365607625193407842002184569923067323959308092001362670295304797908907773889082864687409293538696125431699072232428253346357924670811921623125536070737955584540829267844689742146123883941196301375718598912442192810185436897424784874708459876938165602864555140386208559931453411511196024825778431846407482234871752278894504085966766186558613988104797616262307895909438803240642368871144693147297157608068497134269537333629875679925877414197296291929890628520858149720181038815675291057560564050632164939097125553153526331429573219450285196574496647945648483579819285007614182807694884687374486496360073581536785229928041978074832319854740554189488491666070354961986892848559467073533933151354327442650751424065844371701679235694431511306101980542523125444214380607121987152451290749132590901995828186093501196779465298396541425199644565490071606646770571038249128237517490715884467905824206759808199673143208553481059905585888406618533573463659389033968697855011310268646441540114487999668800622230795543045075577689582987179636332899485858702846317605436904108279429558826631777801444672355763447981014035734462736552133162591390925732049679439001829324696123085308734428979719068348385678860411494305519389083031156130717197330545929007000424880587041537384922376416106085324919460159730700222265552102642639976541320406534953933266858953217170155051139257158085025938234864816334167887245262885439182736597934344921915921295873763758929231497609249901549301232655263130029744755415151527873091216668640429168374154921137402720477711308596667305425568778596773438243709892119392600905786969764240775190820102535482428676419865572051507550644813054702251697861483221193950181612871258073856168393956815759845033218797037673808928774575862971841412701945847189384447420991254060662739505846307158359860458953444262345702583542567627768001444022912373633795042353305595383083370373660301964063830023225862398638509430155244930780544493762810398421205101329417094481185439632057002164247782667766408236972535031781198836801448799510968625936426092886539602078991170419101565046987936126722022922890790866579444788482967402429248120475713803804105985309151146118633192912635881546530418755215913791344544220758612757852102058052269863448924937184370970933024251762267142191065083656074398239512353473259259445091808663009687508044111153190722400898913344524388605975719218845015233408579922723534865475170180581460594355009561706827305464743052227099174238502741294160639876871247613282480581792347030645006499510850628251872505153952139182783588416586530434377607664663225518136951107665631786750834284018124383553917273998349925130011206001065306902572330440837842053679399639670340978491175810671243285791434972645926066618433473177070685211518661238511924752392866529306915121247678361323329620056763128936459668210388062950908940653847307834411455497370119631018641068271365283245645116789907133334124407138411803537597559852918494791428275442583700199392594117454833612258770390609639420126547337336348442898133603943201563770810176525279744693146145204006675748431299229639128519851168511063956526342573733100290937115277220111045827766599643277973355932365715175664226109709532091767393062540073457158062401841452680984418839172818035383461651669352608045576942601172663454896518043057363333611866135269242413900750866338737165914282472330404585077232349328515795677595169265141600072535936021060995338087131454721132256101333618240595446473400562133668272805488410519797101009912138430253965911281613097324289254890760217364476404320240946664095068959705253806459131682076438912159675519986256711810743842480263181482490870912842863588251104161849169902125356304600122175869598096845176514125589427490394216571924437364338003071421241618392834661038143176948013159439192509008928782910110710081433030807055456082525236461218532113852626805267941912796369522183831264378310310299275453162151492508835406957724149858112186685450170999968541710950300802910532987318457077933343490309080086312014769854223217214803370534627628212020985454713971647310460047449083326883431094368896106293475112806366463466414608692556448430048388874815356324878788685441523581446946116704405428070406732439352881067519678119758617764258524811636098181239805500880037961585250122928862548262812730896343912673792011867965307918007109415083822793937287181009675480174604649273586354371022039171090653691541875812662902986720652344851714669050293080968236299846194971850989110734137414771178720283956852638840692673871714690108360198354621221031630914968974124544611284484004902727767579158466782384712947107308132970459264634484631950886037487079628398987008777902769406718397612809652726630467888848162988587940997837572035753092429252189778687344769047528327318061518058502455069307310508454371426695695930535149092206639038260662827782204427467550222861558460405010246677033003781148266921549990548098729553718756720291945235321379951626716039454209457243332751671471366132978803813760408695520965635985789002563959120032472805254471243412800853279162774377168001829025321267992525155497866700601260965452932586336366075413292943497243774862453135083944434101931030655581071708205884174740674498487927526835909091379841603524731611075897533906173175528955439873718957711833770840305917772526131408435449987529198214250278772640903430046932782049256504378617752514204234940577252470431085730419540398828901979742340584295083561129773735223083115217272828040051842565543178832187814861276982596464382430508026345557969681087357931652259526009828550897799966790492399166070066623160404659148311330588075529796946599592929089685766814152734177943150722664982864918214519989530366886746906980465067290805153075448402015468995051920477922665729199251410778778702598243643446066796556709104249625224172444263312786458079377375612544135653894489258980837096917047314610230017506111420382620803120095941769755161656091059082313921658954031794587991173494105415538026430076573434249485448819522946152353278301374272056489902057877189819082435353505962154573352026729077383815219732223277352215565446308766068746102946866390347960947765954754485996389072085004614132054274237769672262660633707543902672243058957436327050653769475728158260917957827212135197917624772934023503797704666397751016676828959397422010379927003064055524205944278635941455376342523361830253811130085467600620253302716707531264372177668408466815184591229108293838243834268312320921407717955555334267343610162301187665136751334725896925839622974716200025505771102388736818668606609512997169607491070455678103756669861584399331055164684333319189298651392220050089879125372887816183560848650259955753113458867349149142512903558790635036843674276545775047449402662209982718217779894407499228924260260030389109159067072414200013174234232262113745250302773579066084970284015470400832468720095468028778529836896519042419276500446734666498418981564452949256988031303388631662829864854484327997929402241432868328786731864283349427656345703318407143210048656319319590903050970510174254979981257303468743663023246529113522184453223212431112298472877866658611500946692826011615771877517557167451399584412479563132566560110089778968538418267538679536964181912154798188767901080767704499149014490090768509284432164902080569508355357698587310712534673890182065772350707530179408040688990802047250799893784669075280275380425699037958043504849728611283913375119541974699704172050677545885761470992686892582877165221647778446032074321475013924795992055742664918449587479485679144510721191327636242331415625518702652572296782636463318150805556969104859619924182784992364610503980474623151690532391469615648073088064614521731291694258790730486645900430183481601586101005495377677764961568501624372359957677862826142959580772443228914125266416222957470636893457927874125308107718442802961889420222531559161861160080687496845173586509505632735739097645406187303677265889521011176479416930367365866459067393133912671019264966048042622305743974091515442838320909454087732589117350050268526534178672554527389967614430152928371220211591165091149736823624011922730587580933429252087636488737955366277338119176153116786685907043627050795560362334145030540295227947656755471536684307423659055207394245764021766534173372808879502632017067719112376181718765432254375604896798645223194674737564452365783096123218443250537432303985728826644396689524122018465404148894182631225479507081102512453254203763565224831850921987594036115938328095961106745567045607496561221271948985158475169736451396803335471100899682250929639612721035267784517995683854353514505602312692604326592584058240696168320471192006755034334763046118345376247487608247052125649776705791626552211941015818665950404971902299824545859234316822668993809837080764790083543880783992031407428436965074135253783332172454994541727616989947636529094775800450657280431246811229043729379346157452904649754881939919089147666248337642307041610502472442665895342034755847391334548564748791368469213848222848884006047157154765122038496913430940931733239355746819436260701136609558440900481562550252063294592485688811558225075045500828353833622319613105031593690476873184318412933125162500777262043419387734885381784909964527028402640542390234942766583193577145660830250034080285362806379470357011563003207727455442729429191803977060811023864914431472934420275536628319832312266787323892458326788915574997593033243477291523893806485338762607810628695888929565734168396965921286086722666838640219635736864420528769489366292261902536787500338954513304821561387062419569818744938042079872056058315527258518985091049165186911533537179215024868490452738063977247939824591642814402371183725324953249697884547838912312500845331742175812992463222791796901311580245294636712293209325779494434185569784492256764898748365933490013286446161573440109535708853533592882493118771074019375159587169509086941044727109245609996456134904268196254243333055426751587772924456596950073622382470980198449087218949779340946985227127764859263937307254495152595484307189937150917298452052804758875471273429599175395726937332916670779342747755128448129120396947973983994491293888300591157172976793578406155588894673342446227408011995192337351233145888590491673424265363995473817308177721277212782211272682753637199535686913396469375067849851596849615291892404201556528719665316026077943550635996409558156051017834061918032248928193317987197500280327634079821749498479820913795165644403979875866612515746441415019258120183174416648246573474897656580940489017142689267029530462493621029036301083814356389852775414503120398602076063989841607468969440205649263848741778290846681859458477513669758661367246500488343862500237197673090084704123039011590948996261133222786017916613919273314529006411501264946140590705377164287015209820760969860789615147527178949980084985362037298114076028068275942765877709245940584808260515702473651915408280243584372531579171089830782095560580060629560609484812723948814478251890838587891157028605942390433633308709170330941959595656617667299115460517509815183023485793284849374230570305916178054315191948490930872211789091274311342657221903559358703560377743697294619805940741832545041692286112273111332309883559827204722674476931555783342521889256411087873407956137415150996352118559414397623674600012990474776396995900948326708281825314156610721019304719860899077835543287497467677447787535346124355416484929280031226269160999335176088931962544991746012205240534055915425938588923148902649623088163322441091427538561211493456358470663667052421076988583396827059797745102266557159007557551888262534331506858190263509265388345803699850218100868648900938739257283669433229689058305954445322015199903519279332430289840585217972704499288018062838217088842012226161856916486895263743435649079985903738065474617805228202600282519345916369698878369507392260147206734849369320215347716468046382232209321694692054374697057054830534961538230395211900561533619369452086353469943195606078663394358513417530549182319587030807751879257241847749961137204189244764019008881281237839852102461198976540124985190522327376582052966060003381748685934292814448557599861289003515320899501774887930832572580960547889526839999344070122915768524774304177469296355069073882831565676110806955254636803471451092991700223641420580164873370073283285226452277605684407023182646050647902705104374068116310954280020256911965525518105390855563634328491280942143677724547360787826086560385977219592171962273913242190936201246443100789855679544508923145170218656790140550054868067468416737954847882427826297319315148735963766257046945820230875804428482091727086146897873614364046062603285299143080934142501288865663300764895225888569710916995722974674194321657342592928532340869897875852387061824810086606006435885450703998441463117471816630179318294417408817873738912440789587763905802256142953787995410878341800729067608271000895918599322667690099515634174967676280666028658235769377049715665120192698876471238753316312499566742452444443040319489245991693182280307237056350912357332868220201592230977179118851505716962377731315252621859710119808230892597637941701314476124873551881501299356566732034440708746456527537114765767927365916254136822105294357513391224380408032779882133080107622553632021932154064040188621705166678661142333690423730637671222124377292094113229868548004934596664232479386663379740487372481293189608641298091530099605862438036082774199001341338348224836871395091965947042766804253427585604247751618761671292149123791201116243167372406872108153815689003970828631563202908327639606724782442127532323561648675856680067909198420846586003729006387875756451099876101782025940655996884132529080606296115645924053367196424905600740211937059893145929922491276784079775397597036154765500836834520885629015381331054512153503067891818862203941402831630534067611899566838383106639423887789080819225195839667569060770248446566354898549501614547424141062463416545373637348880263546107728258390126029670496285217245144017637550719008092278971581917033831904992519976932419622943919146664552829753507761499973720887847264168232761885140294241163503696133652741240927507932545873209831178651586044081022899371023740773666035520618009394730340204166438313116074776129423335162755967979963005260374728040750133923051845106892271499152384257748228941846458881140205564780649226397673492728035147235426327352654730084746625138474624779834677837499974402951500437468458963285226974361767632753343526535276228071274315341532326559626417428936476205845849213311939362246909278692318538222592644202907543527485509767815385009480093728582741953450251906247412287579795436748125677162946223527314246898132121469836947577182341847041197544039983012665625081969712962493204269456528391615068303231937174454140572559614489683752804841455213775796554030749340419186744352181992583973901426195720625796079930690713154222982823861638237360170294154917967238869367918770903166194325925077423613319409475767770343546993022084481010998483161950081670274955929868555024387023411785927843990201924814888999145561646473702942747102691788028401625248539035033900714310733527670741850116231948503436556974818184526342779782646611382011178378943787842369805955637466076065043387976993167972400299216028783376940934544841966101166009859190829887425247923011874367988572436141465150411536120886319354208924471672406216632573915165777443822326735060753317032489083196588587879581326412913293800270808791071562592980133012377535763800015060361020496162472949610193460112131020772652383150799435597723162623005140741699350391375925557323410633244367731199721696375208917854388591962182902133892419093642201691841944658241575686144329151089439944475220495411583153873716613240947739718464905611714592783319013187578172705366250912858307005461601941797973928916880759459527406929670791576672589745103886307682017996304439266981634686387319045929542027207833000018989627271929411189529924002942209274368811877969938562237075372596940048314899774483015608960908776974462542272129899536106146542885197434374272628987074047287248924939354232140438542256334843147090318631210590442358099672743374803094524962219385731789946542127360151574807646649310062531551758309762690083765956609669144069821413950853192872267930390507345567600681997385071129802548281262582072051397770301554408156726400364115613794885338365632129143415951142567701055592524098138713369902585115554345917939163928283604096526034896985222492298918405120612388822374974533605279418707216299979616675234882203771417513602666814894521648740621351261914471608500070324067055187480347975319319652648199389810710863218808266943943222715656326412550572756271113009034076378171058363196752484884177066561956214305197490792604524772208945713155762956044588158903428406179211114644969619918605132118985490171320493694940559293732073127862640564880074790144628684058730461446177335636350551490044642858577498069502300429317390069344617774583323739143158177136185060786081987777746768307874834254705939634870626198564402800421296153987525714931988239843671786547113699675194763203191131813547653176026015677894192688471694091600711643706454972917351480102219863021230717880528109825280866561098257096075465275761643013530162631136346102737659357952928838490960442598206173582524344176929056781690598610037528523934650292714916046270546593709807193310050302941642887106254075864762402398940649780133057484174931031949746785023686232214907331359341068131012405019565623213211581330535308188035742093520648857382122498953314308855931414898713699098611716125694215375851610748348169680800321028853777781869869371751125817856242466670188410312192491965363996714446216782621096368464396183461464904492167869323005679816093182799070785198138217925397582872567840423382839351846075127570124817915995680072886517272093744560487438960893190642852028244554971907023394529236819235415881611421062710496198302212549697877007952684167156723289934684385200560108073838720607014969394463938695852951569700362458779593712302974803568500250867021651335904430639933841142280769793589663785646864051485292960372181751213274493320692886719287927275878531556918181192440601190443094146475242596562685958220397423554632064935861457878623276711222024467672561350302752887724135227146478211724039280904195062949829859623527934715611606629933321950611623380336551552790007876330396826662040175233942091164056462762696248228272584357050415430269034854850387590415235526124018077050321430904901784712343721277693122002615186268631536115602430387437127344215316219928139981999389017937969605108687041105272971334282293269916617800369960012100276558457562290383606230354862908698362205129991140446064873208777620792209825265225177191707475117809489595559665453539162434523719077387696625042752481474320435332928688449030176831332661445133990525310304342057876223540236685243149176420724782261814310088697079452106894361073514343727640077141139552697383787001582462839810466961435061058867922358237318989460921580937490555549950798265654856230155612611821000733657760707454764584079934289559184718708215949171881817073601176737154870233807729434399128538190591039155724560674361625763185589554685203643741635363099747713768020704058694064911730664277889480636127484885897029951464820533234462419087604441156264437742844908058607628452103324020417824230030403318595421797382439065321566403325864672882319928072173950720362777523977632860024731678475017836398137549219263787800218247844068089917232211839323878120295156819808068458393363910911868974966793261082395030764068128834958862609167949988210409737794518160679346715178070719849376513364481485342763628837144814742151017476955109974607120352409540173415989091898910795006168772593982237596494589403234435529181384911819253481186882815606898561132969422830850694265451712397745897632894472677350455176095643688785438386773401595207005491945395454606196868770938635148406816826007483829981252343610281630520943100698892512073877712043175778022894363354619920499871858653626107235900277321976728777114657596781845266760711593553619206531303485888002739618058525702947147493394049378615805964482016745245620869374433633190851244199018067073230445427908118809968944920145569787737642974686148092514413739505781803999322278507692585599357479497895292429650608603385460154696503285894931220355605652243893072893011367428915877721268423300004770311842040930043473003071675746552095647212956838200910691855673808198409131137107950100004866508404760133943922302011676641244200648938175941521785270328061543900093862812616896688651169605025477129502696086833027376491172871894192509666076858434951958637632073019223204644718907278659474561933153049717321851885752768815370966706156546762044302117593945037562607572548906768285119164026963664144528817251625672214478840062815181594775841953826704670434880912461806247635973821115230921775915689541250513967790552430529678121834908487273317761697391777596350165379264656002003717830414544834822132786632675759343015926933069192804516082458710461244350274783199312871623149457381330150261735548780660624014194429206389642862095898625482367148157712910199858360563893913249428869570284080600747145455848410825918885664038901508055366450188176445545304521335687241610132603796705489148204592348481780434015039191496368395541987321019583024766517856012529137946086230836983910951368600109135499352688065773952786582643211360022611503147033270611853401460157215954156511795688106047367362676200622201831326828153488090857144095415811825186635482895185458234823609871538567806672669655486212749467464352151881181109262654159567220653685069725979061416607404707107445899728207190738463811300710553003468843852679968151575128403890240684816946499379510144103167025818333502149451706889142210950075016922166798155309259686324267948479501616938037526930630867260630379332435153457465459736473078280383633409981469518805641657178669646801778343907729053429856014565791257693008780323488523043200567594651595357105331133659621138478985701798313157015792585670282550648661292728222900504707685728915403076143525489132835147700914800075498467747155919185776592018616107203691556937300451639007663654526572797849153759828217221859107567138624556742992941130882238843644034079475740342594736876234896687447471628008945319546169752248182086910712350610351090616912173385343842249676445650989146144077766405263316623628520326722761054830866095098572149031452178018208384598253711615210857812376456165299233201324441642667802021185179710206628028221633256604205459947237805048642783129748955127436484115776696262131868387491738250702027528325545650686847418958217634248173403129145727393797693508485782329342256475712134514230309890342250587212866047019802434583651992896017236594521189633456691747221146283922822890949425216898000188592091657096024442320748324894308315991027185288811770960754769945297275782788491596353328198995605830929228316766753365242122302114877994391685606045567121079357530238864514653113903298631757242223783825000235771226535823371376535820657435482750467026552439452055068259453639857081317313283935021477012074558513988637568554088468893334083520706585907411834950523885834782009147767001713163345300217562182938825236440437285006118150476419322746133260489767384562829988306050180560749531043419442924456299403558233353523280713918493429468976233334509092560035278633838880532333083382234434644866817447011655916837480492048422477102253579772381647232290880663605391259565938107990243612135657481301841526417585789399652041921390059582908140320288998115011918257514585077902504839172043153260047086545898624032316108267922247929685539781755869977540574175477102598846615581541932823942175832157331026440493876263997705747877034624404891879436075446609144411718436108723964131947610374845929125980013161360149840235268885518773155762704509749188177176560287436621929302043402795147116131888656840181105540899720175160292156743703619504803147476952600778619949222229166441231248422596837590759939806193725308268827398257600687547174139221144630769013472519369187858173187251120412496210208234220130321662991973513653577083715275156676712149959564095562634338545900171406633497415585934519218967486600450724600991889276347143141577112379012259013421548155810893058239732442185466240035048887486455713505653513770063970985169499496734734414351941897543564931446010915825913160670244503629477883104787307656761696336037436650126429946424469686500497372417644954255783999613562587431497554314015811216535016697367590287386591663276877970220941298244477985408965933632690446576461099010566956052829832493288240397072699624503835199380450975730954787803620041151540743924169655933859859685318353411675904370715606420406826660595005137399388075120318103330719936969154054572270588967260254753889861257824926593173307427770633209547793806107030755866683311413359875133931533152260915597997788444522023323597124462701216123137642110208865213654412318675056233140358597909725769541083931618676166796629382497902129811403655090210714774421023590520786054025502653781365034940358243351476360027548852801364950390389332398735877767626969703319226473853494589967943206165923252860778452240459649012796314227779224083212567404613646678241831222231146937557113917116005310310911506348173811573694663480103840151648202763208467716393312337871425729386422406960128660296744251642900615827064089658408203303729637178994684989318287155059777366695127733882448096028372456003872203220312421096165441006922492500678840485671636974935106787500935404356677562031946541373214002639166332331921562905636427401526768398789406609684607648301398728445914336921656551614100888162373600573048623517044330223328186525408827860090968468612349309227402482557144998925083854577822545313404510079102198038972930584029149402226991006375303098124541244190714147120826822281408081412666387361105568671242965168684135979588860275243068853079642611704121614661418651296144616670029375903455660174963510461087531831127685026358264344810295952117155289843952859789681555554881175461459702785124515647336639060813272101888768329653094215785827603956244865937586136114419774182811671209199892248754094638413102822742630263018368530009719358571121125922041199788180636898328156973688096805991527286078875659732961236126916495262953404556900137228503896820251337612296485922954072111898842695508658043235277214845519854024172213950386244328959788000002109895775667536545552851343342114853791677092358375672147166947190766775717994479327187080038535381410585843885551634401234185178132359165067585014093077284290415102516169870047534451155183711008017196723247805775769994447943679900589357184928756165054768736170217431496372122070558233658641652007502822941202481522640418645618375691478099805823109227673688847369839623774826451245549752669461234890676449919364130194735557532537748746487412260302788282044826113556441308318113943939651153499931364010956236322296622750674510857348891150229232506628530839140485821193945742191410899967349593935120507364528454346545275013663112496137456809225832428782041097177071302271948293060530251280440416944931202140114455947418124874511418750255846078433027727899257315417881081739834536355495829405346904617349343502765502857534717519472155287013882697670575004362524335776770641133149350846024892213717796517966747402497013351137030464648965622325584393032923247529976472153553952094085055920429429698842188499210989278544882781694354282307348775852253583690980188102926226084070290703033923230188632858060704563842101710137541303665503048189435913652229050932478941107640377123885803743238976947426043660191902024136970007727112982647669348529608820094124912049062702276259374263124648826592956588240539591846240274019083126009025340464654995939867351637187704934742524719053414562542899146335326815411546308311723545027790143585928403051913456270428911313112384514071399069744977352446100741243974971325710049929675397061000913939065057844368052047948657481658328744577611338330030154110332077140957633855419969229856343123431121169006822489696960233883258783358569890116587454055483468205821703552577719770257973723436324023186033143289387056954481820070926782085437005608464947926002822463315037957900016377078135911849037410765486082688633942288244070279979018686513755285899230794119462837686978142053124235097860502917783256664760131590298540574038939326937109821846529219882926380488135753275633298510084681279549516369252211574868986330605364333331561568717182099030461860908424641939523365532638637538766024006101331273936434036696905159211531381771692889090641994199840969073224285690727319769348267861859405672567166057131761638951319475070181443476147971934794821796215363704873412781419759754187409626516449157261519713050829417857405852927262461486798975319039055592609797748158715770396935114902241066051739347904772140206032291727039080832348124254569517619396211058480612201947933609335323353470508138313531197960722661135497271121981119361264671540475356700702977185837661456830664292032825377427472283997761943076959956638455767222931678093792721449889750204346983338326721680483511652608963275245404105892899396150196677686983517374948537019207385518712867156266808304306536463938374507977068842998722013048530792430005342976813103566474401049974329811713766089681774280874732510108722504504881707710678464304605807909388579519431472796131553864872909322917330921987255969673290943450136411243953878220255817452485210161001967073693590246523064422762950705052188782066715229633311857878176549631846702657308305013763930187034325519731059856047641211689939619046254975915634220624701008467155866293551548277607105853118790327559852247497977364811554255001596444314860796140460688288431650342717161471283362258963480604530542650581330780623789143678531906494598625648308686431685828653816043292460684404329709082478468142693409377126419949932578304920291189589152679513846008059810115167057107384424821042702988687000906319311343583930638381280926697494785319787491939265732872719590168364448269306561218874472273374553890890599259231888152936203822048368190491009616528307533243761520436722800141652951388628938156032920721655678855553304726325049682709903360303971292144952453352505965194784455301772368447788789592599461750933010780996407709104116595299689968144374191518472710900908298957887378039552082812877129637500740897368040410411110474516908983090423499837026553171855551896683881156432494037359600377282948768141291596352616151347325184724008754781057514876969993903527173862581016785382811798810235782977715595170214383939091375565524860025463799080334854586037075125296205946638654679920561162185544993222915111267953715172594167148685534004722187691737096552279856411878951752643884053538123596585990937953034484308050625157637320628409452479700862286818311383315172900524611007976706107717515578472138869137833594653332029961570967673396633136940630347388135891857843664922410210833280116691777912955609746847525671197113983830385595767115472420382062598098086433283319888450097284122895476609478460063530453751649525616386442315496100508858973906295425533941941389668350278651389986721835809024697722559109917447151529549135001150811720675123364908873467075719926520550263273411306202074679105472990733210422700950896244728486591797832723691108578438922438958456258468513103165643292821650683758543026430322475241373633677042970330534924073858831218771403592959593212803990548452040557909202767342790079781413154840723258858736037508728130825579150431094105045582426590811082373956851615437429103685735613065787239946838418687600695335033135409990464051085731231153310933045789672875370738086564646261796349242365264480436846289883232105215396590866154775175279186775925478119256271997107245055780217529752405684562540565108198849922269578957197402214110680272179997994816856941142282349282490876624509810243142153367575105000671309660609670968734066693798917871817950701418439113861086545349825618907646959001878015667126496807701492295800304969509324095526675001832119889367938141787022892740052235079829637711683876014258419998684252713741912199160641125226838089204576877107888381459594137323380730689991038486296321907603308592700040105505813824893613513600021608194403149270346025594011624137036515142289756164778303464014260074558707128708940200810068215009512687205510025865836497531536175683106572028378506334612250158814787784590059999855686476448258497327255714215759397615686029742701937790308749604769009057027662602739851726483410649204772041724098904101109562483830815995358478882873735855737333536457701652365219606782405051572240565255185485876131811880854093112686967694945932612322750628464919577523852638420847122485753879041769857233950043408571441773631275765966857108377178221120612288816791241189739099915939085684064690821675632726482662230040252734801908893591832194235414923276749081521166170478719425629970057731012157688682078274340348525299996905105758256527439747204361350648830468662208434768776429962108636194553884112851206591217504826183028029345902526325538687651931830238603218338340451751675573844993866947282345527877677201237426902352900925157519393113901952068963238837237647936105814514698362795495504886180747472262738641226433723352689611044397994399682099518280636377435476462595732851906217200930868165592074501229263184927327748278244394146757273836505060051761976010703238405082583067677730952395612302108463800133837106385299998528387047623107475411646591233081215750013137199818003405449580793774216600882544215944006630240024042909717611917341869504714156589688977296166438632221594428076208115686348593367045875388521501753747096407756959269432379033965324275378828730941087954970122994770036647475285037937981499733384629440983991772195882898178507419760023851101179251835805046784785366635694821224657682861582819891171859966038042258895137551791949802244189248888150821965872797833040627908571913508605268971486117786642935548084619444352158580643427507460478713036415448254339053673109877400807848615814466174154247027649541007503851505955783252989679277269664996499506573951663820372053722085306312846059154694182141740757460467403813427183635655273553190236623641215322300659913508425615938064008126455571329587260196359638662422373346586346449229018242266359221331884567309071438909661103508227038337751667167636656871377042103194298493669200801660880299107578118953894040829766342111921232762848387831169126668694146786919727683596777843853184524998084799212113332707210427102905905629037872742894119433890345825074262188528231992433343258337819258067364205812342466132420222401016737184941624571113847833258097431883320206905891181222552793866335156072760246303932739545499931529439195150560718752636164440963029828571088721358482139583055524284659179019423051732196770820314496709664140061632699797860931647131348544474885557172455877477622095643544625073399418732740057961774510353664585934668648760509880548772958621858819037867772535929696374892832794489972873880741746748023365733696979373200371554275063372883025341026375453756783575723696441125659239922216548149309236289179193529605009750581948600106372552506818786480610985864888610436755923806285957488105163803558789720375009807493657045095353604890815964016870823868528546693579836887508859171274691072682287300770486291349615478793374040171958894723386827370332595874356386853361405054165562844535641883555195967019779058029589859940015355915928181670277483323855452546715032857701787922664575423633370307606858947061314803942655071499073906231575893922628335506954326536288224367821730113326216807003233080921967087708048955511566872958974530766195152718907424794194968862547909203175943921960564323164952167156373822617157132896364521757431976480173862571653824192856565339286502955804350564655351167615093670747031096458303426348592814030042122905789157293196012064828619113500925201625557970463703732830873299921282795885875825613017920451163250876002836101306518744371978261637686855628218307816648499847833249777998130926882470087183025644605124856210272786043956796489513727334950050036899985013925917743244587845508621621092520057836000807752905012053696373097236309777039943336749129356231518393609060047301118943687403880293810319674835694340129523615630845774567859169842091745453990433272183187278796310559383977608471899944606768686052272729710797582661679959926578632009892632869818575013973642098846922170714069936248093294924052040389089421422503079950320813656239669813747500104437608019023809462952431550543433177503737597834333736434192017700215722585633264471271948625749033320274100583058205631924556432935346121938953540276541258469211056327313417464212898096589053123847529405504321217959211440568911216820308420980910078777505540046141087864990883926970999022816325337791522715050262947697726771906749144692853955862573401644297569532752750268269704430927715559695986312194990506568710426381337999483310795425617739651092572941687300850345951124111594949972900667059110618782398955211142861938190644581400888941541570073398711846892138966382887854750092001999512138327084115839239903559962826231264353433548119698613680777398549982217854068973371720770534338869977759730394666630306781943652987386759799882035859834759167459986372892890138061807866365289642667576362276895684870112907942351789751422569350119125233770881287398339588824590642495483134945838999943963172641167862902523569454559738120963190187807292582236264182576432607825874308310123303355573493415051981822275066236022383687143578026376047476256161318295532527121872020339609466008327150184056224828945201965439610719633654615572912254110174032041842962397778786020692603526939687207778165838382129727086446795358860645199219691519803621873146385118419159136884374477062807673101457495777920277524917603842037015596919671045638316350124795162254421592002166693948450840102342576374284941342855914934868332185959488496525312956760574074902954388713332691650705211465158781219520503575486598628520566775650690146827237814202644256644972691921733114099602530742855524813475781253994416328511673058663066394942425859806865255155686516696685251056719610543818869006553991609334338843971996180384109097997423008251532585684874467724681854380331348169901385157353454043158017060287457157719865532430884171114418383087907303588306968482417642498888583895077756474491111396473517298097636953540175529548123320502606312174043205956899978564002253186633908564014281178029682985007997918560391758261850316035439231905920783853187673213989835921472698626550940873179173775948432923406908363185230519324028667178595621944976715352986627975114893925845803039165783263080318407055873631976535427007198536055145392175144696322233142011698743967827451275515677799727568176759949585876285495360150695903144412899464198859489156085827390882552387771030270141805950404236403590271010408888476460975535576601909663554361088742721189948005147615707421513666486206246523735694098897245957554091815403254987010252726847422622903636223310971889640468447535815591849283474299591321973725442420638170483575202477472279648617189293681482545608360862892487239825770385217251450769100481018834367581202130289632809618274593482931394763135580773240395184442532925535856175701848018046800841126468476645970589975948885997034256764463829536203915828650964318304425017052180675492477538211104643241160004623529497605054963448821978031953714211527456985313922918413167074087842785410421663726454642406546831963583800230259433476994061735899064687321561720766406944373643982386143147945501151059903699416363608237958582583389347250832788994401663202020838249892785017903558852090819866083225182058807893311090208616017349492212390662595934443951651981258772943278427009223057617863539220064123627067047721709700545152497777521486497211880749925596072993078137981959787604513859664010333888731916075103014411531568188642232524517269636364975640307427698954109876326755157901807988664638046113988116240352610945223124944142216796136009526412973972637506229138821901009001317413172947152280577263238671116812825454621296792812586505663862046522032994004963109406701661262801676919844408110157017618367001687757268032875886034996482185550808193004788782279310929814734034491412653408163990557177049837685204577498848345402318606825688810526172188908799268472985825214053227309595924996525310068858494740432204939762036283809985305400562669394310736857836732910403976073080413339467726805959365173387231994069091054087346972241208264892261158529635227662939066146093795016979936283999862016623535375616794690842167036069010301458342094709452839375862722593544549332319974591699149937755482907117950139561169511150837148586599910205720434129799133671287950779459570742284443545846547404118297872509679144306636015885767521132697302270550741075496049005027166402616858216136930471624880677639465434267542738838788779950056798035984827495065956342133909377429699776089936211215973939293945126804736853288825728755712837901891191345790245084916735872486166410460284919034060745674768194437022504657888178003894911629281529932860171279374764468345604942991904860610154321964534928783839781600743820616903243475305112584003446358670818478108050335307263401119633511289966008773483033516233456483589481182199724050554303205123011129531138009686161653499767904405789084162433420997033018124995065702867481137014486662563485672057370831063530470864762410838683544241778853640865263838190933593415660427407677356950766229651541806895444078698907743823424204088788513800288293509773357278670483582968368013049093878228548637513100737803136766190971070914066742399470927494775449385105611997652398685993189974456689715824498486114370540027624733160562501440322066016361452880082576817067829129063614293550918597026274853022588620880786811974370563142410652910725180713728421433036958291081015544673757145553636211374552561503973409654784053364492857369137318104600089600537371155625537452029185003626438277106040334867570986429686058641867364577516762186576886582918135962785432019136175433424341233468331834584929979306071296130884485887828954482124426670590002550374299009868219646293133367890087841285232601179460300761096881856825275410884515797396817438677296062965202228182876445574766339109746030461000389540055460607280750051848170303787488042351862335231853959330976887655653807747107780100747125515832679955723777268098187313411022802970948930583306625587048941952726090288839043156020423115891298476360200785029723313436483043102552911642186371399786375743472863628423200064380484504352438352865455380741198226769016370427126553067755399343804995987499457794135946903347821877734546506010027715129880946258095148733055952443974897380494147289523612291052396491603372588966916760521861924044190313954376535528514138621691417390429462367078848247461652401330033464028031611708506580471469476179476752594106161906589889374174690359451756651460056887251491946102342030966054237553321465481114081270776409821936597364799271454628319118605758599750846215524606784229232518668021700668011422018271973482266107227113513810441239935018097871516634379268266737517489883054742040172560390332250215985173228238064397708219342653967994702768694238474450237786253981148046926114169997815995671767508611884070354210098555142223479649240382076544040209958387172115460157388594162053448520236375821220106968790995087656606970651848325526252309354223145900796232198043121319725973764747445668898231641218582320658552782151944498467328896344159405896129446308593279660423626375412488959221931119300496162303112085879483541835334434591676026650052874419115275077889672547619497907019868740963441128066930700862964772926202475457889889855983841376711297621625176828735418126045886033436522571365363546579433950127990190287439789756734555391437586145535930337006401599889900740841974770460524016338195043542620638014684855148344396266142879583560182130561890388292833830737635798035175908070532824319405707818338419339009592270703869042030597998068886721351972075391449342534337464401593056991675233057467828166452212292973005200139733617987219242268401025046022880980139667146714959140108983574425924087467607941578774434644237809774328021171078544176999517960549177836746942957851399970546357063915993925630687192489040899858934747820485038091641221358404764927004331301218174813741841003499312208895958890086586644995081745190665276845467278051103160402732771598993875620474094353339865208410415586119652963308366825003269404676689326277326481412910251666972001507213296612379329499016065238755127525669239753564764856252357309345145128922797660313990914531024050568676117414762523793341680758517383486008211383892453738517423338013169184668550165578864030360646544354938332709875698978751490944503936860320844008907252174553482471371413800607311729560599362732211291551112382018691231758160738950531888422358668968985787498400569187672004173023170152324708871907931767975107780801246342459356131667720292448305607540921795963914198861936464081777111564974990108344573721599619251587971932880797610039698798960848550390204038742827943218964088171317633248286746710636821147342139430613987445362644175849172951068391537348772617136987486685246700808430849839144184003102727457152946702534468173167290808918403420348894191457987723377427304449496906274479362301951364216666251118336018163466746873900270717602629729725652573240951781098745790598536811860226454280248859968498793265309787007832663423684007974329301457760473900235101892895369492909751906546949344582014826780891333224693130570717363567545253953676056492098383595533602599414089710915026518769789691373848335252272345661703793017832279385926211619817835694885266312476948947546470182116706253908231128838594584863274870804562202272350339728950606365667901204590731994295024789428432983363128795349886233110604480622266388414726522287524849742309566489500704323001368324586816172752363297918602349056517404422484444569055657180225012482750312450022813682213772184029051343647285333476217326899593749015066372886233189534897365281280716614133883942039209357306596252780611701213135627277378381782149749779803814051764868776000936012115514104988927854722036356154668091475272099622196047364285092683164084896738173932245963135119041159819583193778347132168455904315637936096128692815534887375046262103819436652962244317744266488694404933369801481329730532149108192132441334204102465579754187318740935566584609713049251083891448073872120520036957740674581404831145171546997764996222080299749035724917740399782849413721465540523324917697448400140609790559904632983131727444842758519114419560950104223362393827438969005964671710125598694607088381685404433053080616769589675416877896297285902066945484613154108642280897209551142796793492554471873314550034974371957469608659422129310902847283300248508721937562936763643963026367890791946919594956204162901266880975404041080608099176703697979922709173371823681670226905730501796224187639937347245960041871028243702259865063116920961003847555660898848844549923320162695140172635502807964898962036381792048219292305098294111260970811508188092847357007674068952331424794862675858128763233554238760407002603596500522424098951211593452140796967445751512114221114018334486732489356356103093168747800343883200894927434749674766374847946458438039225586235655867896934506610909435674956777442781579716324639352225498785152434191790580669563623908842110592774224753862785369345404831427213871396136592012088469140735363947280206928571406932837550418407582367754044144441267273116808550347512439625227587496142297358248044845867464681528028211926573700439295606753456094941056555513676637270072505876465449177355539688073208437576505093041158707583742074994995479120958090051140880954188158259510766662611745309267589359253440562568584082772458054944762119473781368726665509847894217857599720568113462986941980458973124420432985921396107584405020382428970310997403858838149172071161727566570289210518312820724902433516111239793910888921168909563990481043758601550247769740045423750581241628566735620686565558588158980176073383779081968410488938501186654858583602036135527899256490446269357834284420529220192178472013532433426119705094225227334886579981062059258397592131263565346222777224578533990772560819520225594771348631079250777037457160367266071555746054386505915029125078458709308616659328032532261562466369017416109698607144237830050209252335708344788105022469903593004504878466851322869784305005393552219573160994857130499338665342820416813663203799246673152805692790620392029062881962441414746440469223551218256156193862287609225486583375762163071262220842225694870962863327514130725140823785175620611405812872660173507331795416608711606929883512448744941843098443612981307750271326975786493273266106081361358206925847998721388986313822271790389372889146467368243517474015002022474512551639071764305966810593921792457420455413309338175801142350551619640692651815342569057055832806517900969756182718185530003206619888094743269639626866817300502841372195031623618927028367581011814330755251905968524145128932285431913137094333556870270110363882612791985642958742979149645301631409422691618664914473878133583786576017914197485425190264541473358019927181350699593997331639380395734756463042634370657225789027570928793255617588296448633991542871806891320300070773873806705365216877871264960839010657696518917738501832630695513630492340405986798827791854528346251894971670410508979282018485346337117601466541893511069832478581829784635034480961917216008215987157993954502152823607425014797491928490488387002661824524975944958345565396889770270192867072582684907420257911703785964861585467969733169116342868422660608889188011365212618113563974748183858092224334772939930829166964744974672483276725097780258428959556634583010894565386439343592280497829974295273322647883978647428682446901833385749443309206548121155858875793799675037645920738448171612582324253696441140025094171311058396667202063143681196971468583620011031884607972776737484141338484956829990617429670887925452658259999820206844176472468864836305127748612468092523517685957483753174279253467162571567085839575294572116944495130268614235966050385721534505094427626219926689727557118202727414409699433358720748157112759191965561492182288529177649891901015864510476431201904178602477762290096785302676739172875335049507655304052766361363806540428619893306694643250634311542990489018483095366158541104031306442155885701816802035844566195613716798775323425663592387153088561294280453045080117151662440248460902868084584016625160142664609481302548511926925158630433295754304893458311245668425106735901590882703426215225988416317361886572539403961037699181349943587997428707236204486928561280730055013598990837660916223671552685786322905433785769290715164535322756503838885734490410519173318376353515842534175275585812743635903006153816977666838179986545495008034621576374715632156090948247345663605140670708154698753242330583010049535012853678321916540773249836447861694270311391073725415310595531941306028245241658485687143704779897466230259934684015990346351961415087740520421716514543034730249740973626976152748495183036918844187822854793108755744590787749898867372161191975038685962735036977863156947699416927976605381913766230658781979162018311104710566073259772709686902365609192624805937368056237020914150575261201051313718062130178816807047629781986494442025129525444560590119071266651931310474650878445767649405459194788073669991560821110289359962441676931899679268188823435946395275946822943101288335827545314040479109432127614780631622189729736265931729610945614535400818296507104603054874923189624948672636279127968241972028803363384528439116693381283789740044853467684860606569059305145712208447685517567997162735109402806380090121822584722056523846441339335447990332413638181169676058426320878291419955202826056652015035025311687067562754411561942448126382151929938758481953071452760770804553677926283963613338121852861871838822552969574477807953906798801370585514112608983497625423662629061399294949906796697695993841807675202094244991658846508585138922268505994969372015320151750870858055351227920553731093500680860565985271031069198851195395914163019134785409765632829642219624131736901837386840555210847602835644750987986400629633018674733710659269752649450041915008613083571330528207550991577149603471466780463661837488659001996553280602323394165323295421922086165931073815931399665909739804644579982628189115882059710636307096266180470362840393462117769230655363492189970107683191827365424357084150376250850335262963832793195808142330016871997091029502416484416353776328266087119660313426334101958231553594577394219518557558176887229921928317610801488581407953916247724965430635848093370027898347496661502282531810106811407981212038982757473785970976927112763891834909307330174105188907259101290783458919320792096206829547779456718450823878395506356248494917164055363202244204922617114576136379122858886287124963252817492159980524216694074369833359075307468283642239937799815778143280184545085914438382440582332258041471920401228028896983074493449054906267671969472049559987763268478181266131111420710298959396089443332390877883222012249641832471581888825529296464191667238017344854504710542334836269764594450005193186352855444796596473333442769365233731511028224284043340374355854299344851306152855144820169256374511192107019510915973151959594177665198800588988886866069407167230694491212710715052130293251050693564442874775415500168182814843036172792003696254239059548819088416686942074812260944021197075502846127338117647459418674246009547538491359491514735927819816012975296802946019152947089487033949091742551557118170706693030588364269626062950026247218257179531989852603541361661546501899138225685081778419416262511628173389256377528900936446264753531226749577951035310639109799009742495207428331179757771783281973146396033054757699830667936014948685830918516152674585197237016636599430406950914646221411519957156363054947629192618913827835132936860752758372047847003218261124478343588584434839230611292056148133962172080753595566003018954065671860484812489479054223712913087686721090467195649740866542014408506762537834316072647266315870766832446659981909128797218989653715498733803556841897209256052970481730263216427688332290675820672427887769844991676805176677061872018121022499836080913203974976728054794545500918880379827517261471490871977713827171656707332285549748738286837728208360039652019764521821246367104659573240344441828194065484515480707519757145452217092926848307028486759843356696070721522889062789114383280141509721077316455775990055172842041190192746000095385596693004563984924780201160742931032566893283699112484950756094519842531649282960122720451224140553645922296964830576247116120219335864643185405716893352528549737709477266760866065532922756438906277848102467240639627524639888746299080544814803360576181238919989271708401927114192689160458130830378486905610894256884512933721534387314607603757819703692284029960529647429338940598248806922273510323312550473920551913505674011224264934070306261565084345372383420297088448654357587692975768335006481918276604790592270045193091700637469320152212080086285423899330092459466575858926749133764275290689570226774605575479483075858268809888381720109478220739301042140118819776424411233365932376208779611317389654527792294609570833544745123980655177283272881119748231655880346602533144427316745937691258433356214514486630689706636231376146385897721520317693319075824286350147351868935843099726745862449601948946337362258260531132024008701275824482661372216508451243526787513723107166799451714501745823458152600240718299878548849013025732394716250600523054506222625180596594941669504485185680063314601283659624424566494063917873216107804481422622196459427592624775845074935840871088842081496489847905070681649991863670465993213341882719794259395637824550540817233135637669373187097439018832911109929349961246653253558980374147009738272866609904613098521322440954023092287469886046993678351750690160722999701346733168547718413326347756561884315572371307127021528698951072358373277526655268088976295948394363939037098055887986488815501217680949943168222988750852443410441061336442399127004301489845381957221804875878676483101231289370560006717572145752530788158011626917234480407437115722300704452149753139819437916524669417336841087373048635198801040814000495314238871265820808541955885211468941432330179128530806350209940077727866078185273115678439061270539041548230416670796374588939088973860616883978659096351700245765619719517338074566145673045850016838544744007082467205717408223314190158315724138452534448932212133620833475052982271583297521213247162574125552222673278944154794368286043901510911501273913010323593478359444968904147736288534195586355086637882340799576033206163112840950910853197495822744765941246527090117680083841271537959634302666709568490844821754303767215324451784411675849615409591107307002182518115746532974767717949228127891771658476900319334378917314696584143846305112574727254160599404888284054585724033262052648836104254019062192083978924639419167276508988051683251998589831145792009719742694001080163942451388300040799025144752290523407789647293953631195195104201144475827454506067024580459669651134969705531535781119373507158477612323856966416374226605534955704449059230702549657432465679808424493588382287208356288114234116285891248629549022932025978230942099275263802665115763044199969436287590638338150923655044616833373128383767986373887913679054896844763117147951077330046155004654170948608142118024843669807047416706860608053011039560528118447622332359625016326507385735303982011491221675575004563148981000304829889037373703195506685287087260050619984478682026667145877846762862422969220969615100429528260618946132126051840809740367600386930190766070391708435764202405607960565648731588379878663731292649579616404667726779472097512762268584820180444004862359570018812110872958275138090974036346274845430760299835860201229749737846599258782119642558785202837673780633928578884493454557546332457422309020517010235201498143883977282473951619850463972810857817634806910308075852335516966309727353045319319976208076080510090077912605758784118226388936811300543852871346034091260942234082239279294777351549570570999018618606806491390658543078765547340750734890536969923699220452081235980030045103144435325997008938067513356300614685583439031774543893072013780411818092169698119817251295365656631898552421773372624734337333770944381425652198835082803419172487826370306942481657626642352452086849757476290301564353555259516222001663446141789577969206253742413836907318017907526321055263410965800407604595769703105366683465814382526143630238425499875645764303340163249406430417995185136583772423758106010562042365467075403826950960698612603740897886602691006520408311730177824714781730009558823213569163994972033272282535780870854874954852939551784660315771557802342089045746683656818292511102976569182500627941097265547099717736285604938028819192612244434188918870080095845885913298532617872354557983398618913035294477739443732674332881639191604489105603861165515016873291191556737387670921800245688425852463545107557536719519946190755507496145548006385850002054113284378009906121611624470734654487523158739438710653690235002331871022236084973839393819234511590373550991300117824129666703743846430757082719688378826270783561287200182006561306021775717032859966542305757076198947466349887060338044764931427020744325368027042997386256822306866141483958835926774325643576663949014999591806383815391242202095492451088186485168462691219582416477753203922453231799015946212466591837772363925237936389140280069489848747182944195864139279337247228205598469280223068737091246974534792285507984426885316340963199898867132615926534476984186647497286059388763660680912136429995824109318124233956230182594940399296205749641465312253222963977798975223022597910793308799836517322530596606576653876753651797989800150586569206917927821185994722230843231569132833270206779413514926226776760504179048566450572757858167260151221962622971842068963500776815763342067476844603530119738704099253557744878049767627733567841129520870892244561397745592460445430426236708641490927615819379131362437698166460570064496905390701723438877177908824912510205568443398829377012406922461296845640712444517262598557859846533316760692486103021934972464830118232358572390104716576375945239918103828163927999123603605352138388606695322075170071277683453869199536500301735134661108777684483074485887793383302541021146043216853149552408349157072627519464239379193548328041747847351236770942994108568442199544844682630216488378826408488859071746442345961035144144788282793915185736746654366991946469094369632904504016205551082554393874963692378073389855782137111776652319600696029512003555621103097422866779693561757507013082403169621192241412534195419662377642999045784387860051673913775797220944352395533766178745677991703005739164403575047035837227468621279829689858141405979289814691980061345061855607032463530912140756482466589904463365784026633737967348419006336250711398098037027098070226317211505803567582580418413270826633875891921599355528607353065922740869465549326900921092436005707210895387491677251545894150641643803247653423727016339289821899770469589870878047487328334323107195840835958608407660486861366728740446606550567406017291546619283257878481409487852233853797195882852095356999826516537335163268576947058935188410787200482988276745570057881056800963746858677402774915776407255660774394038951720179831332825812066170192295709190923675963758087153007891550537828360150712021624168994400830754458087123737673478249473941806459524767874300059300635188162140931083616962547369969399963391833220608613059632963658562772875026861796817893624238786092165665305623692680694422637894123209824811413962186446195828431929220719929914587509638014774741658815657479601841897332518867267794564088153773153225419482833159991939446016499248213209809728055470473647225705988388108565900335210161513950319617841906081967640573486912425425722979994698032650908439686223763132875853941140968768026075792210796893093893588589217574143675635934965843921680976460430369154990659043325462934837889523008293421242715715761724758097953497986711305677312584101935660827827105033824211521958916989939926152339522763576389808506720905500289105551576510384666430023344861078698187471962734126916787384051332725525758011097605863406322256863733064417364316948381499220784597519863901717839893857759417692922077523454666404640146582418897256484895155479946304393284235581197473626219529603321783380252800875315903685518768098456999780282850327963751859926834541634149047017829626215508760917643810880602117134266876304173854030101524448794028960107218625232702346054441891425060452954532445663807204484232607856750045776343129126449642461730366477120861958604966066761358101365560625161051015625492080476090320040714358766332376305029599853762826357021659034066920277823221583350078809672102471752968024728486897351968123692968591234831705903737754337387061180266586910481117141597215136257186709766266046395300925450129330911882925029166412103111220718976808957865216677299094622615710767598972292420215035896905682300944518197382396072177675494171653432279133178893439447945429063940534776102764175562597557620296525472509717868949545513435900932972630217302479548767956398318144616730312767228393678163693078606342280967898004471311857009230677201614181921225191649142900877498421679424298399251552679392090176563780283606138000795373324693548827407969333464510491359211709210430949162801359706098075248514808879453752659057412425560877130899582777896516481345992166222207291659501625267685406664078057653933309752715780829801199773578698159389200255427094471374405592491268241924344396134591967419015264718618910210777047242316732114657102262960236933035309022174756706251466013440975375172405932985920318622264023311008408356797465615818737619842753558453701768000337087830362995739316741099146748762372101277578130501277685568980855361662465372163013892369089678130503369582906047475927103555388133584433986022804713067189214784870707090377354893929582914742007776752344462755384717208793901190819402910063368855873635339861658402060369443996384121908044269660812587307581128838891278607735870758785955339113054137922278731230102669407980040852240218754881909250298029172752812932173406427539989234862721639918605833133320054358675289032557345520030204651632053180615642204796230906511382626753514595359056029379161377335534113093780744745802389910833790768484316286019381628907798234178929578611119525875198886717563084777528191557163056942809466644499614698608433613817944402674760794361426937630531294549352005852136852386134357758832094440386924052956175254648670808966336236600513948644244084759061237248593187353232984645178516720582285029581854167251755491186900335918636538355277435325027197362928368492704955669095301509864092874771411343032597251641856819442201276169444983981946002303492689418806666926018202669857995267855104789267410046520060839775489375625775538505483362214334164636370666736083109635623959940339428794636210264152760667364171112165643416249120640099272914406881157530287523390720283612285464058577989760801569921256015895253924711619976707702953942621150303427403576262818472486496726125716435728875653279335036957174913702256824648629292535387893088966161076655236055493036741344945769678032725885790131483251613209216743591853309287620772751082639433799053009711227529256230720672944290764406262738277080965306987505642405884390112136690933950192494111036108926318596025612812066450818002391758144000609155776857571934530252512994730558160966444002271523648683890127161947812615534877853659116979532320416901135281352495038098850628829384876227390676623867604153433286013226686810838434344956026458896339368081444176656101636690361984624536695369631525488503370909226778596963178653041747370938558469561862949201852727639458884034455144325552183422329698791690333023933231116373814611309259472031810738431690216675923776502791586815312083146593811995190381357019377665509089049098256399956774099935986048732417263275956943848573268052495526964090965088812861461099027080686770277911641191006313831324078032790144791110205107033211587817992701852914484254863129351584715232732606020095404444833235226304584250134171979889698325738754465668147222721875560274497033045993278591377146043920000637391218833276137044708040338863698617941415056260020678482479304537691657230611894357491778358465105150180412088082400633746561191621661671148418383655350560651541505281301232466923347106417170685338353900288838342231685254456851235946011404171912558503908851997265409473713529789438863467342378983309108870303491845799454478633765220772128623531395414905111139154976737483965803731569662109086918177793510628134285867368219143522392435508841493091668861814571383070606943737619374119654120167413587674994586319246341838568457013448040587126799067735744570976862274664469936755160975460482682179203490624765558262662253492737258000055791147211483086244646179398632058492151985969033087195881954730155792925036349794818730723307710657049925170727987387577826045015672712880175596883509200622552150714766237865129488783588308130749207013638604875191460957079713085935207267262049637858323143422733756323130609723363418987510414050906038779888383583444272495349427180899833307250530901956116264828043764019538772523505687756288998053730942440176503464402388469599239539456532327337378117237555537791957803441010060837666200107210301837379890093067868288011310157936847627951542452986605809163887269289670337738287809036093361920746559288230344538191489136553046252227570974882798928915799039601173430057642885439522592557056427521502387088150348467432448394768381596929132300578998038198250446943242142402399821989121336892908865520564487053503655106859206873560906571310887031841535349842771036289678771921025636036343145829577184055911372239416362826988273419363110667335622396876691073967617466834661731130616879415795115868404921727593810092214299682093681712557647206113925716924947212621095766635318099271078938946005062618224741283094836364144774484581858182866598906198537088934634045749419879339429165904717541282503159011409963267562796058392736425124120648688654257821979763212170352826456648482621975887393927807317101918060816152867483787857976299286931231924898642142972238012614483963990498572317549818504240530850700887767883659427650541919661480590910439788939996763733591875652827752073179173167487595685941582330146016158193494604434483907404356862894205918536447367199492218517307824447185728246929615218712517356758792856389577568984582381458896492198598904859498306779678363240869218801782883792607080384768597567094612593637709699951568947037871523684875218184055103540443407216030937674353704690595032200030513555132704653308334450250410301703425624595925462334067510144972691816789742420993369029192829865492510350208872473202004358227897745959562998308399557760283440812288266903200013539426335957381183457076779919955945734333450499134217671934120147216148120166227006029044774707890211419724214389799637137112287373753806200684054656601169550740032972461138089818356332740646125128229121812617363985629060420500284977306099031127928592602783141353364203588887986364404063062360473097103711071479957690544857342680638289946405948360899321739582051379078557686347279232901765715359574050736723046852013431101351482477827729146782364492630227306850617262132195234883672050335148841414040748520727494517676200602298721146889276951508703509015529486853173278793498237648550302920576815409444396238581511393079513898250005691125509559448645489868808943865658158291950363483468869471759002596113605106198128193084026878708758371822175374792886406662081196643924648014663731886627496418857982562355094877720821885963771284838527510871548593143984962968036431694223221638607777143486945084873746744511036004079632916620316795754521748652087244645125014474142084945127975161645224000175934562400131841339465299686631112575806688978325580922726052635394401267003635551713474474503525811134629747696595235546877603075372618134208147055269827878444893798384327453588951777234410808618188705288342070357512234018397802678397538960909913678516827144312766374142667505388130980146654120841874326716854083894689736897854832555037118545698266611009927778119229350306773764190057756492009926208848134186945247189189420583429761304078844744245547984050384298041676420299558320525263918200621977841791391967188000707863458171396483687376843684069374379093931957515923719509614782382389137361714609174314915982410736707338955721206482525295052065954539632620357548761727882993359394116114697050237479037534706287200412490027032238848163462556365852802186060180636997811614311405403523418979573414124765941642517715112988032826425866849783790518037913051598346263900059676573343326936769729517997802971266605179198858449280770798749395602341263226598572795482095602705472218942928246185882382864234499813724972146694657840869704396142996708401114017512856404290330663890388917982825810387335836333010976546206929560198561330658655167029958067681495961975226880832777771814270202533381766170478186595638019373752127547468310509579634555830399874927863135466643138145532759523243933591051420443810250159888542700597036180079141749972776793195224251296347583699885737835114482550167910039308557525966728098892657473519785896921450514424545611752346106759961648221564804010139104859422935399400139570999080512327751228859086864474211773165829059646485299456772288677809056447713351001023316562167717326299930215445068434134049733277335607483583342697901914993302122331332341456754757477316888316395326787089609758105085267485814171029745781291240421729795563108684640801633457243293461377570816735638050087392561376351073005446781174290089830865932191662409804408491003524604321065107711193040678411473533156490295486270881745560604412462289231818681110595119713066887755540470544916625633751879098413838678965257119149142960246954950003998864007466114226908254476767749776674117419623646314750167731949948803729582427205551650617923475496024368088356367494674284198664240072284948688201413170698147761974760844451532376468302438128592286065021114166096449528683487423226210313911800700386398303140737933636510418783680728123960922914843043708480571178409165566363627820949376504714881287540423789923066585113016794534867797022187550797305047383776502163203490696720429225829411214600439389378761976738449950819902855893328630468612417040666439939078449329690265916005666013071914890641646305664309341711503126484167613674463474853854537076045953790975060351548307769389282432733573431835434850529716866305885583555050467602028150753123910327172262417752528256243905231520868137774647423739449668066575238836345658468741996335924149459935288816461348335896278061688128972944811773009810537175816892613153024689975861671839303631000354849542170652071674809578975370822810061709152171141439160278256702183640543098661719581212306433294371080119023527021003907875189954205675165707310402768926762895391354178681663918819740963714225700254325358303152408191552388250531581316199747233221136729907074345212472807780978086600538363833662511958613388972157174986643384132186878930441152121617002410542422432083037656062697082660883482130350771353344177712923679396830728689831957310186209596063441143729730819073995974252601088638452844983156669916266536443572625276516042794586840929681010021242896256908116477890493167713105102967932112367588249908860986037218689507797076216460331629242668120187279274599804995026788154088376283692631406986312364918018370922137113420058279817389391070520787906384392289192536822825408054359266928135073879527102620296526386129377624289407041238561397545286791666031552166532070265906861353356256610559844210474896032018200839949645715726957263315609853834650511128795970278614727166818096092221312422892879110049159452172808458931118276699583020486156817520434394650294333453919830023080559851426785841585452508526312847360017625913920428405119880793387172358600860438631654948248699956452468916294296203649164918899182953487055670168507758905593380969549151275766467996243146128236929335214769739473355614896757334008815138136864715465861247821451102888834173850773671645442053168499465616465725496461416302987271502886878705793428297819805916427631188183033992955075741801303036605938735733541988729504390569594045367175743602875754400371056966693505735376462739154550848022025377881417280526708649251948530933695172252061699537657293113590472789292110006601509017561608058719369718846001600570882958076171098834553225575647476067295076973250580942966405427870638271273697239820336733596231420315227908102019272845982437542046873946319742958976569538807490398598895189749370520775024543284885159939961211175647933571924460710651636624995501553837833415722028798076771922175332486829390490606421220271234246526713941807077392762609318841123885388702742239628155734895662257603287672994141387078540125786132203918883769598473874468562500561030498477946537544821023532395444303196108316959819155906751669305663950665138958903339179449700204848608745150943909711798309725300492214277669109488461113663047294031041370991039980749716085981598809502148007228105509340777333476127071220040605689181103427634661757644576688131039056118917919480682431350353195851555781056534224799058281693188766408739756725904547242057598295338711823964996127009579696749811213721211577207738706247493614655555865845403712913805194567075146909696020408001981528328502138555530362008933449837232704602857163609187708289964557071287951437775000366793334524387889150939350022978924142093854267606018778137188045255484430384746932379531780860210746078130187525272919608922157293693504546513311920012882001371148656738744444074161658162539090127580156447105409050807119490171710547187409516136223447823707930230209564732305080833604026537805856339379146678099864304791082501294703477895342139488105066843152083841626450424135589647650344638630175757304602066956240493921867744560762890907792377515299525842145058698417914793871378287014518366910008776747080948865270191599724005084892750697817751753211518194760149017543143154349417959303845056222301066765363154090762115024961372734138417692426767425560256388816045673929689072199389663258967808592296717089729910949637091229888440916118518618308080441215622819612204929022610407478257749542907211407851866738452926861409453537624482539655856493630606831162667418154293359761710511253439862399487311542176815879736667829945999316077324066131029297765093402800499756752901440010446592283638989760405345651925395147837109877727606680209041399095712538851390528153861000753667862150489809629610632497724671635639557897314742313570776748097982019608396277324768150558096465156045154608074221350486999614551736649573948939912191065562082648989672040376875603550178768306290996025400651199648954920864574309871252919326274117500799142506787073256999216140349482759634708986524754304020598574622862079638867755191171623741660090506705717401707292693380657541385706805552564042761880375511718540396290564146970431395156807696625068819929533885888041998450184885229917180129284661682243244479658930749258680490115496811342091124015565455546060616542552816791276400565620779325206915101876423983753270743070433425406450515846186592690665915171383279309214814014577318720256020111220066809586239390334942695081557992533362132279692931548944230242385994980091567417044520486157617323000993630633211741009318091939623996010266503659185681732556751911034488715036827121635678393017889773995237627976172116717596190482453964323994222669071665657405950030846918847829926290724357621570817100584375107097287605180579786988092236996759805377981539085851749153733397542526737697830526506112382923347279864938418584526099007789762365702737166780979716955285804118983620072515903212643858139916360942756028346994368670949283568201884353721484654938704735895772678901288744016234154570073923512821914618720524262344704400395559423432034784077819554009833821900859823626107228721864511870947621414689665648803323157530761352998091563262433631056944411052054336880411151263014001658669193504046735537232849763123882827958026295777383737443560731625443038753908581700150633836191237406516945356208748586407817043662400659255255153351080480275304068922088753705385502326715048807280742148342628099727274491130100940667386332646559241535866052057788672235124029034774552766723862055750313737109061271911579168181826763904357639116076828115858017074551039354293535154281920648593256480838157135265109919745915426345733194024230387882429346236487619913306980112596150068001984703237176120341108422132827316715763954058929064124440743465860432817894426559031157773280982142509073784503789702323201454590950779669483599304002711918309050337334919407846107542913143561660976367744262701913664027062534301929017167145448656149135505607345104088642594045594257046469379697128664308319788122197018274415568226055838727630547886494429779745543725441546302892977803074962248630399996554004343208056792679781465074008392202661085476040674197110309944491086943596775817201105581361216424379046364846952797143238737402368731851781137479761471980705941097529609475945783971746489276682961054025799097684179840262732830326139336390940265880592084072028136480218121190026129751044058845703301563511899399479304317205801593817869865685448008591660908400233827294523343467482828587592483638797779283636376686164836323858017853720877965692940732116530145998403471679945592838861895563703163949014996012200856493916549253256643882084263431782580160788350697402061564027474887593137159706228530597409019299622425228913512544313944550975638737331178711559636702576139867120860005169665404702243969402976208762898717212545221661202340300334554205113812729084011366144589674869599658267080088550096212496345044688275194974574765150796866950738241147480115264427881099857650400724146472055231265908614677927176460013193430887306502713011276204651383530556125462558301327750035636527798201781310777345166364401205572319009661655342757894842978153644148685819804932376532563865169214521687594968373196226707479687088483450387336289923214497503780134430806872949028791335270055059821312822142946553702426615841255420385105397722002988869552617824378287389311590265673715627375020999605037162714549553454695009211234559156726339944977820519882732021797075214673270279176529132523971779065129779505715109255817101341870945710492986196271319775448212750917826777796765716877574422076025156858530886988908108674695805611003167971325662845467015906313832742445830702559974893092600884628937051166676789847652291231951667491711058172690290873046513494928682595855271649809140554118990182598261203190053335451262398966132829241472029384242372039990441858318554330549964803668801424555545637222987436240444036322949991904597462974007343268889044459779829689609485333489858629856015607873315858725282351791550218686383754867743223190127314179255316909743522743017875478547447900947341625669927437099842961586054843220733084556242458703821797825545663394941671231779055761812845508316177798004057061180051029520463850114908579119167352796502087162259687960020357529345642378441286103348660383826923225747906242372113910782380637794103824972700638643101888022602105740531209703688919962805099667635208860091225254075866176606921040006859729086438265291386196955820486331252407015713893232826575637877962363487685917274675417819798877118707080586360370685517129334131386972475040887166905062072347742279343146893706771792688328141795509386892984265179279714259290646681236033059230112623936905893431774746681275656581813132176854714480310658623720196964356624043166250763917458456829389386495414867727906159754950694935874270206585217647625280065588922396660372792477661005925386069535359822251694824837791149026801889352614078338864485515411255422196929839234326523749318587031934855245969492112003505065941933895630399494511822188609514308768555158477088119760110201811359215571185415603237589624650679284706798157255837856613819663377676965991772891924558508908736238868866766908530734669520333238551281424317910973993586231025437020869964805547019438075952988434291603375104552150629911261280481197447115376391891481704366631580537990097881210447437890487564128067396643077507756638393243137248239219617525966345004490637496533748368009522785979216922460929704460612583250907720248374909824866011239705065558155558546135870303542670568950374509940352141787417802574765024126435229546440818791845581505009211977736093386944892905881322599785028311331956630419265747970109775724793078784257733487468001612977099788720776541212135650880711056117991590963529711222300233133307070230215063790385145621046752954294912695562751866754139670926094629686192004573857333997700764639439776063248132183246587496777127157991498961233083736539223383355384154111551387049968187393305136822357985730306254183751735668637168187231533297844924934410336641466706856607410068573618794284223234589222085328185504434756064750658240078288458986242211088081545221904403275109036196293459096216476770181767643562625276985569730398090926502690413840497502296338529150910254228828812942858312262398375069171426919359385829273079386808496929460897544584824640200917057027679150991454576059364935032009918102846220814979204534828576306907746082871789166000118609695485282549539145571740561936367293788477012282115084791966574014654555413823016834499829412819807628120889302043571893751639021861595515633260070649464422498013178907398432842431073076598064084749986216993281267502193392466870917173304640631696709076105049321988562495394239307284012840496394842815266500959573470405725595631747299962836813540146843897201782962186047216717848487570815652045329053604551122702674220647233063429154590078602441624925794232980766132516284410971445096832405853591710098245174526412154956756631077411328914378328639076997246606802350865749877578977635314348228972359221761982159269296158068296610704015039248419738459196378507402664582445852749104563728789766812382968898949735641709020507996055128881501889484005511573505468109161181222980437489037794157144407915892379985680756632530778849175457858300992906138578004444998640046652900528594867104102197887683092906495179751617157204334817416118214176155906117815239301314410413551587857015767978837352689044297455043718362741550154452854069749035694137827791653000486629713812185853210365631563895157822640783707414786423205613272644305762072640896546138814227359985897979914077244608353211237869350824860495343746658795871118172637238107677731109477373005646678762698949295025466513470079534131392030579837688473953463774057016219537666944866498190727546349859918815618175110414117336720037980638428214535982540049429972998100324839629827842938720156659188952882087775922545751724197561832057421093412730227515440966825981764010402712070203488857494954837611979106835217865909706852141016756385711827426250766022380625456767739506534244432082622559263871183952023964831054443185991864048943241121955285357091460768691041098774292029473729145826761839520526094688220142954861787633102385708643237110001231803320585143172535663595492530711340460299244376649053384472408556006166253726191823841878745932288662100961460492476203550412040557941370213356056883812008750225044314974827520877291060007599359599410397274557047423828944243869461350529295094664138235141881866084814541993150277092762571987232147163587280450973796830260214230312906176398318308473689097316486427819095927264095653493715190648346713988292469600619814911273592473703174330422550660880371860530522343949526228273245691276762529284245033539309310106985021306773742619883039311420091542617913544382405404303594675088188446022570860891230119130838145433471321744935933299146633673808135433539934317978937218931140982936785646709953918871306942566560807630199162200571555491163103303281743824350489317890056285144029081277616620154850390413891690315443729257563795307475907450855531093844015193778752552861177594650597088875587760753576696583508547524416306618045411980901547427018242681845557512432183337833646409257856052010813912757618328070565589124045576369660141422166104930966934447783818518750652217129405298651763873707819120311563189781296145286664772784793881843453266915846181615926472178634708644295516450783270593591060619287608935894323957038763474673045193438890430471384104711156102414509993068960968703392080473447001141010422688093847108716573886609782541163677809706782451123619261425399217845427206301438421421145801188539324794617366476461173705658497404851722554631064700207207245659015154053119865557494394430276585775857818785572695078130356046850890566672635222534677711793017947265842680972588602399892288420082569709431811227980132054283362461068229454903787649187000162027973886202008190608605889324754400559883426580379440047946909167507678512589569640628351889412866879258695395647585170132790280888694669312604625220364474607756746788983814816152694359537530311821549353712880871605747965470203991504804398613513268729849726544442641791545793582602882297104345227369522338805034146208290328306237795495573131593409036765387823497475430051474185851808389908018478236968494586937648866809200507500972381337773935011855875528912221343962120963086209980520729468728045190913566082602626859369501347547906063496633837415613105284309296025196775002705640047422644714308687135176738061849874990213397075771181159272800418968404376810636720592460863660268731565095180462500918627090775212971787972193725748740400751659055475848698920188707737025626930679575350423653116300459569554834174619557485655016409861262864739842105083337696499019981672102100912224079025237281654940667329247510913527688701045738610737633448628324097298632300450309688504094783703038092110869082599923412982251363861088590124687090959140145147894750144484842057334132836963533669415739836353736089227970600468397501267693525250495443462411418874548271393041646230122947750157349221113511756003490389316709735575990976289608773887497478424682962424561314900911139470066143130656271234273362196399928615409514053154096849135558558286425512976316972105101604609145661370189977155313971674528085192768604987084725199475101209033638651875618988633791628688663613306922894927043416481212034409211197237782375034379197885024668269885071855882415885981012032881273040948259548634631457996166828534270500083334939944459027168601800956017835011082231162016897932083140543547951190320614408248908793488401106732724693026043048796281098516930860700728029639656256984158337669054711873099046821774509885499877521010801955105291715237453406053855844618189176858631539348737092947632964408604154788223185201021421596397072009479657462361662044573490913530570983371879851518559324176022660307441358367252179254478534502998357578630026750861140342536330009043381284583773546501527597903802934864761884143457448091959365074320032270982602930780643211698283897224923526640803566830096606895437329756096052584956444230430639626476353510643474015194531218293700446002311777169735324310010638490069655571505201907811903924705786478355425905054003157932595093656127850692627506204576743862162249281562486952109031081962384816214765441613583254768749861869873710932459348912439347445864266460808833725769896153912307518443565867188912735055027957318911416885913465972730716509506336782823361082025895808609617792177688103443491927017793418432168990600836728168580343152860652881863962480690123372361168605895800154886314511306527062518791694998078228332198432119121267355498698165591549514876324457594426705539194779308318779372331245716521884295701657275913957429321719110178281971498181277424908378720261715260275850558234352642830822681657908381149913053501503959682195681242927304354855922613403614576266694670441848417779486600428635489472426700770345402292574563340094959940627089616739959127593033478459568320086814418144868074301029013314714670129770089007362759560879783832833459428155798859401151615388615424410356067646287240455029055321931049395492839577754054284637373734788000066706302627405986252882261283886646865208160272003683157396570422624398954070256040871735637629692628975162527781610842181548430584221456865073743944515670531100014076671375909439801990978685457990313448848433071274207309359699190022713907640346920656228564210679268395521603544207770282004897457025692852727632135233938675514820780453135218897304360683301824696102667774996402703049476439753921870848981867149850136770111982453464347745313429783652302569671994190233894471725760887517006881900719354881975411682631630614897308967061611345319190675803406927082730957848858418228137643707558167208252519683613897584567604006346839434855609935059769295218228604488797989768751537058257277210212467094184868796770436432481834122480083414848754166447470194794291454890428057098060290273738161232903730178190151673455750957585423528396524666797299004581259387608340862607672959679170297589509719403856818106198236528118449615177271105959989596309718448264060229004968841412861196124958387805145047218960768227177526733005736034916289647128459012819380239901665925527531897915003035928856185721733246230422556919498693608091468142144784926517228998846801184944297091703068971536736992708867005277095378366064387413803493771896509457663335686172146812829892819656552260262953561228182644722853893636406329617219433460413569055444615894740156318473316887549890404197068768914853942856165824488886712332144042116927321091157101448342912086958640603287694787814586530360634311848916094878485464537358967492354442070133553961840906612604686381206302715158345782378943570752373669607273046294269154974615860254787737308753554311661157953716956071048851953162128250189898386671803889539813358791182823565087775567148885743672929895848427381074662945003053554016301485713086275492950825006621547754098532794627121190064827633807875729334987888525690010589088749084044476419438211336385799050535086214396921142987909931023675220108674221546050684272605388216433947549440580478150116358965958851195389325348652104155989659928951597565098177168655494011788956061322303916596451926234191255090138186610044730213376628194807026082795342476668424710406107971251063609156813132212058155585813654750869663439763542593569180354115018967634905586112904753688789907127413226132511782230204838049369852230082342877781139392490131679869932886071955448289842026596809232355304113543882399744264819787230587942685428793017722167478164495292019348736953357904506429773971823057680113259847020940288390063507012263148729559022300702100550069109105464076021369417146802408040540020247390556296124087272532693976219511194645672887159303840831182908549706499550640526314000989561408985286108059573403879080172351674996729995584873368280072182268219150517398071132670368964931477897563238791255544582188138619295723310929245574566018549735339058179980524380877103862502132700006679238184235730059778441959854579500618565456477089482837910878171869708373210881127990474486925630650391608355370839764536904639661904997147776507230327110291324863991666646468164771301971496662285575507949088200828441944152463659558403974971243799417628842129304268632978286855106970946554988689364680446863995796959697917403271292729711154444978348199857312053538245186572166443522189973516010183885135510034846284588527857306279626557016113636340008578710606981694585715369632200552139042276662873896995848747094822443197206037238106566484704153820891213718439641024737233087065061018339343103726043946482172876080685455512400640565490780081956882087900369169307120284845979363783362156934736005431608007415038657279822761719839857622861919509950238518841912168398608333997537427645431240765949899455246286232311322477045491337265369639954317816660020558786198036085293320504249171586199453777880237328545980836503894157827842280022521820619854818874336636935017651038828990754779216739230229474735308888966732647360088545092806970371959848039968135577334867075012269077760092429828223306120119347907625918529097368852597151063946278063976299273136335337857442231281673665373875253929154599222833329630457578427498303250007728799331927644836417836990646423344444849638178323416190941719272205727910490581116322100088317945750429082699272975358863272837107120485909578083141576364413851009749800260430353364881533869834363000057224818778605634530123138175204781451004811988754414614413949332711128307142581867042741101780503600062800297781312228969545738769402341765291212839739502808680572452781384311136608282044103773963583366332463769140455896763716670039806135086105576776484755798196945677177997221135570167010168925118951753255648732043084325256311589447285226536229140864096060455414434095299749875380112285488339699699862503713903905180401820371399648660260752109403226674401366578003008640573732528508129088474109801557609822250617246174617284490230196345549232576768123684684415860723140577955956584849094846857503317952254120758213148172404579013426300231135822955883949381005296752390298923165437385771407540933831996013188010447849440010612151793375488775786720239098453160574593542230522000538744067489292879219887802853631982408543880991119700416258984059032254681533741968583284880306756975089285504128867249459795560719576636568612530255261201865204039033604819861721941741830352217927231892712945377136733441920214655016221119335999257333416321126981915087936488918016143346793802802085225265400302873853499818489886435750700246109982059612483703837272488145039267275127711559987144109294986946579330437841181756088905333918247158422262054105885949353373604968652611008323236146672649820956490229637435288921112102924771977889966078736279741574846335508296530633206441387013172481143830522735631414993949342245308337597870320953802524602875131874790938378797883561666644917541702485956361513625599113816713087349150449634825128712849854009486568163672204874704168139485982488834648112889907216312285191240562646813572578921554009283481316211824818826135914147414315502840599045809411470588716541171369508749657451162840604699539181655684820369032322652287753099106065203520903548742627200846679558172182480243315086930683974157248059166255340500734712315258190121041610683506089003276986747652210596900547051940904395479295241609350355123627293361314873348822611069865941275748368446654200083567509137733116456151211736181555599723832398751179625211814320615076212446650319141961627129515732772573999574358007715681903207617307249941028939302507362444650435032406962638289572469698505936546781439418883147650200106186677857366014799942212374449573389685660194088947360170589074188769249179637364834906592897796070460618192825753183275325561434010795393805550957162868019225686612605393670320058226484579182026898516471878126627251427703263475650220491555340606594336260633333151472376158549527402977859546050727358229098395064758477182593915117889578167887941944826478796119540479795080525423228980073212269359131567425394139195940696766541037110636357987781024246609152979600810551503288366483726081211878982895983365556726281241058315499839352945648493259499951692661876618815343874431617697227017091673656586447490055721161100746666387304658417760645392039429281202670030064240917031561158887773172458710150084226236479294821760152468755534387934708434138905267593391320146755543074350840254412305646253790391139002874882123610351671606070698007847057938914912731600557337187760143819287072635613527663755493957464831873505668641244446429802583653521944539542510018655673229039415076784456371662392533073528407306659650122776672757470190076499920754180749336969066917493555165957081891295561009969769135497428918152122588331687067941763946226237911779071217650935611789148022636455397071572091722118501870313057164198528801774411166815751260812219754420230072981427588686925467796854969331378879736866415734154140121366139944227669436028526477325097763650546933745863445696021672147179351989626650019077301873973773185387088409438537800105705936930842837128932014968738279584755051734321106532232656395732881217248550110853102135446088521510368396375809635400805908040724041723235505140452014285747268991879562929269814820862724894214875313435176532998400330345501682535398703469991721535347920037418240110985991569271409064614735207653584524978276323002936408514982809889932700709235754481415914702021544426591359152905107198548629039754121629171427518544534881720524797289543354612126378527150990393521511271772900987770237679962050712660342813910067330890145746455079680802834855708369732270841433990591193044992358932122544567156804933646967191754007314915453760149370313331642246031988121438280969835141923648961986710841604852007553279874342936594122112441228841099609936165746978582464287812124574960299937083390557751689664624337596041647294606567027851016293509890847596966758990674443545301063014400409641958725606800702406408963343180725222677076758244544108432421902861587463194707209384738146278769198895825071275661406997376461835599203186251826814787250235981030876558593826050548713652389260379325383566265683965449264444078870737786965406359562435127331752720260009439575589898532884252562933959860868177120810232356415246031748599697781849277061920100350010375481867137935958054403225664065494466425040376904153649711202816904470979385034518649051259583745675304216848775015720933362703425576100578424296783932837293922251793664367511884070617172237375213794367223552016382768350205782890697869159544744446994692946155550511724448879643220497196998443976138828494997715648383585301606754202641998792101898622224280325372525955866015150709886002824914060590690751598722632203686202925186319721098421299550896113069139432155396423290332299371138437521177273841374014232908452238361759748589778856804541409447360708207710488642410260933378376467419364283585735744527970301243073430466462070223398709348881820492811548468656341685632348054616209393183040766073377791435031205506370225849934063216289430456493364664361274943606736127463541745857899707026578733628210676680486942463846470221846663475681562067161373186128440804236597332095516407125024968434211099833602398224963688841295777120669561622356402594417448540503212000317779584175322809138701168127752387015685870046745691136542703456941255843953860198912803496589769986446606842098820201521016465454966741388509520575060073742595973527571874937774236357519938067699704829255453247760336609755932239124564513229708300132391130894639114114653611783232296816254285245647314772116973760929595373676674048754444463935010501058025577540227970707720524689181983843054768081016433240312741053594504323142155198237163826196958125764741758987428418691924168659348828883014508507016152019165318606515095268239761858994247336942473979581887888917869140664314982116225945188639496647112604279051973283108238574178789718912897539693047724682944180526648812963551208984669327482072009239023010268898380043016222445472215179421707435301883855950949917031349246824521603543933088071655838219078419294604346279375094462592425812487580573506145903292968146290090445362058432125228316687961204429505011817225983827434110831868704680802869857240610043388317155312913868645747173539040300538124382175030689083107557067739093695009899268967059145977631195534038252430375254245338617757612114539984356601023498034776194961840973948652633561896877258443882737061221614715301405714616159762557206296654578182750394827045528352978016716753261815925565064112353576642335407036215151994369058836512589824235446221112889151030987501561918708570341206212030370781739339447119855049582155287903242421367979207049235783000457823634322366823951221116437744406731202085562793043351644061658747282269021080601182777388195073904634242611674141348060699267349305925127737299654655036104482318020276510834676793992001361092180721419485404172594247237240663213817016995551914312047290661319014084269046404589860613290327717911859202538418271680129518439813740265966675100230375775629091886814041942639305665854489605797773379918112003072782407196351398881697915726591504766297618387072531934997624208041323285610092350785505735953282025448337032196411199149106056726103293028966498760566349737816922251890669595271106999819134849371879825247167435265728045889900184862197555624963544989356702820278731079453061279565411687315941917288747813577830155887992766682547323391907302847033104657126325725974789872179021152704404409901956456303780688825640053042992466305963585267917897395487753789374336678296172611039201706665560591561943579284109441405922070182352201659500148809256451076322269023416736130110642273371724401278568065156673292453656745577665831814967624981987992021722239749103075714081186011161757499933168508483828804047373861558490782218295901387533990175188469607012595640045439181260575993244014645526008819659270830563109949716084918109838385470454048411624825282836908131768790086329027804894627712396666346478209429123639136568070975965977266086532503330681202677198253078844599767542298683521319232663504199087112217378152065708596300068025523631215607349879482462408795570164795789921165377768940625840055032926832907249286316837511571905524210700333663819532714575288618772607380239709926904250631125192699472228926743081344591201745834728966623704233037028404923612044466628526909944320933191198028757851805134877054637902304642103484950368270072022081988650561127319308475193839296626322089058015988644973127566235579372216311773625883474572756266035690013616375925848787818887846152365043903120529590681767278680938902570031989153264969715737199846463535365850689340947625219981652486225459268657045389963648709170831031411810536532819636801884562516311673225090174852270597703056049499382196071212137429001666253749924375625141093850682893205478013803605421123941310444126084411515059492246165552133691912591527139308224532314251350351613319925213221826049883437443441172383834595892480377145076806539726680913147691820477684320877625777051509674025539321241682348180820250868325746596702232426446018610914587529255383537185434206764302168016623212622219609656368972148639372276210108870622578870712579028197392825922850826700830260468072537289370926443888191930875121559304063632628290431861486589034123553490064742254003600899072527297748981563935484025283633812909411352662573847718951746304818323331827057857920905531724638668651135501301802208794170544192846565807653594464595525688108576157135098252919939744135651689186186442547848325035513984840633442046530409169398272663702469226183815193120017834517097015801950247937428901186393715071781631277380068614812126324553969462893306954233567071580130978152387328931844379376319164847527322527946099093414158116143698714514565004940944115995743128103996357499495930061543109902571441934535368837014151013064271808041483161938556364630890124324681440463064469158074017479552991602604726505349580182720481596058911272346846151424823500519463407563005859142441186926936577857235600091296816615838646150392888732368135881437860885121372751183465713320332692450769670414506360597045500372284195193291962486468069528084988107557852187327985409044009139863917172928861615841909790147191561311162727861402638896416305815922819565833499805586689320875041782736324557373540213510978503980373052833877539089853694461585024764181973524182319739422583226786193916306199547561213744408422695697136540889271173537715791168046000825397270318024342378734349461998245943801250478421976192692906500698011818699103926715710235986092068261846270404913890817059869680492963251254136133017046308417788454361185767103581709027108487140649543101303264519782876286301835161189832289534378136187024223024675684357108870565334393133994946962513810900888324567829071994868905226090591314559743861345335808509914648166471177704465352650099915151357896410369482705408050070680849907168513596774564901867030126000215391159302397486659723804165886281497437347510838359956463324660643813090939941392003665338670225292490245118175132442933851813898514670940265160467800539489688403668581897085777621352231856855319784428628768726113063093361568193842407867900884444635996447733930291416232919619733280704576525604534517819121878906832236472401740942423579074666956522499647879576776199138973918818131397030950934281497443668267971669701925594439395837359951657591911127231123065484000831480023056311282945000994596543606976227493530900327062235823061741479353648557253675498974906384494355861619376614090915333258825195730899283068796577200238673081804421665964358370627965679763867721769670740082036546182815216707433504713520656376520965154127450725446652510831323027746256106087865264914853686685081750015016529134884607637715606373941134876257064929627733715816855739793767708926542957376643529183144938092039445518534581007697272840791883656960864907498675862982753853773283074365391077347906599246066966411212190470900865585953950404865978020177327946658384672372512340833791034228650262346608696479719788684524386493790876632886089758183545787485939998091145817545373958479235285617258924648869584360419026866961048871315435236241653903307090569811894822879076774923899485269479655059171823787818675797289951778380251401138842058147538570498501202039619540445589427039404192995268960026402724607654135314846038132489970518354912381114199587733703889722184651877489028787165195872025422666113582682461097017579822343866877929748696508364737063160941378272057205729379853339089197553899392429949557173186174325352955611374799666108615307746861179979536870762429556816839499102013526594317193449180016866014143999630307921005813270411413296843682729670588280871520319102556677759857077427094972149323553761295321069435900576051049765173325709621999202066205078459355612664818701699525413164468440809914445760359534336894179694763478912415960040407536967507586845965269967974274499664237456341714938233802250292068359012942671016823109579973120719575527908479973821330205280522294646750495534308593427185371086244884821048033781291637639403991940391189274036977170976261818818676809680588724585063250830311748432750852961669544024008604811111391186260437701923111213713868334020605401573663132263569766730987822616037710826329597745469864259499412395585358154385463778746120797200477372867367430818980849000805428828164456247848878130981130626614465347500452034191705578659563767042882387279829096237448320858254715228792704718653240453815639376586803106338154036479775716684535421698589867593312535620740394225727457633336576125679278155987547945216196560703811150847531100258663412020494105804237412253014866342459254605694613996290390319265273070261287084491408468465575875828457702527716184245938412806704780449779327403685711396278736785422585416219342089778960779910685969167200108916008019308758068015105997340972874907729719417068612498982266725136545105375882365127169496715059543098991801684120578634428753502802868608873276662867117528218077787547504874447072237251170618990971701562111043393387428090878015275994170724482009496962688867717247087245862031638182998931368990772557298467481474696736200013979951453822709246332371862009291748750775292002119213061174371837268355819108416041121210547424413243951641034113476477611043771222624674300511344942586179070576245289101277421485837269270675649211481406521867697276064597986401625549150214824076155456514311611396438502942572335815929348945107309072026023741574767591356630828772176774972503648096729023004009036506406067697417056239052321186966350491758957719702013979502218283551718917770335500306791990740574885103469647760899585788053240369929156915267924758999072935008686229596258043487149057446814401566188274512714366767540960845727601549632922283627732685553536047656282687826964318263724967959627191141320269175614961567564457380500231211490518454941169483907504514349822890571522316264429469436372834890273426328473110835216762447305008338440541978989819210910594812839862022525338317800829632108697719506651908219950893383464563620934867872589384848076662439962559134740690509781096094492170523493231530141536790985455955256026744415656801392693549263218308687678164839462767729547884801548913693021517732109703385918568914351343617767719193671858791282082987318363780539480565942187603032601470572749547050585841187809333610363743467026485597510482181920120394791532409612556769221414035336035577355504594478341484541888827246169950573966609484146692857951014171540773088941755340221035594237327573221997827072423381893758693031369718698688888478649513246684864350121630683898830851637103891560375941653156252906040293478179008382535859825019188835174159846185579192205442183638984548335054969067282752288114476191485150681227417923450883905261224588411013111263190964820078112779167157831461842030726085773961626952579905272968825933681977743669670901411816384309223690753415073870519675431458593165777810175795814613932990779603143233746598312914206940304456295240472260570582310662347204963642595667192017560332104721282211741766845420268791900014550292136539491460913311347505214956076493401963237600791079873924594589923600608042641875722941970997961891245930941394564877911628028198101000518854913032947375605571290805868852133358539230963457503478126575264857031581780515784539112229535204893089803489136953110736192148524239549998450592951267053347789384276074167563088740225896774567869311366943820812528438589394609251662867982161860017116961204890861649857754264560870549767396590242277393813600054004252542637439686099713642975865348265749696512261096403103331307110481891680388403277916134862204383186082061384420645213171762368482382261872116565963468406400792317094354362591773746103058504737721327778675005514470730321348226611201955236664307764322861792018849988431520756670271243973855854000414978323050233583659001584698410997077914401367655093969700176124819647516477280200708916994750567033216730444818446554981862909753964958262851656644353929896516589225412400333870036147213254684707420331342304761853504612873042216351110466508795610532815507569270333288503525843713432718230840196770637079338761596120707902017600750042932394213926505433012076863190505821340935356329104494895664249539907874461340481625698324735421656653357551959744422471655629429174233725152880480425166813345910837974896750963361377882622061812982776453391190679111149451922607584574693038786111528570358030911762736727817317955694993281287468090117310694499568983163850876093334071819303226029225234363859656873965716204786017110942096178997856432187287562860226678940294612900550798750248379394875758791927520593357049831918783674705219136367307246214537196526022673223409020612675447333858687004840017873234271385812730157278065425563555378052521059012033733310607319974603839947256973845953777962085716954020490285229336533294581282581536899052552814127285299019751128499023744885676923798791003143516914860301940809480518416381497213665141623025274778680857342925022492394825033460122825263640139348969066807699236186761025652712637451559535331092166736430827421798861971421601403164499627939236968437291779988448724975669607920864670356116925655171195294466735342954667062250909829480352622977025337992543024742672017361167268686758515456631404383574057199485895913165791883973506032629405370018466496558945232484686261447150374756307356760601665174448070824864813732113273160083214044277518198703246457177489773014367784384344444362748360223069161580802460861519967296992682705648010284555143096674428934003160976840677204547619676728054047278437434652669340403481720279848895988136551804448768532932423091539792956263140779638033951739134939035139994589085165814897349030104407431155134889269613208021229838314944368691380470295733924782661478355567503107100209405321607865489537380969493509965150550414993473401205579469326431613973857088763200102624244081960018426768264468781645408579983038291565975390527689431564647807239570220572481423631546024061287265332621693739110648801928505977150527554234555971747352469759952378074344085407123571694060759772353918515532400702415310875019719544705150771412795413442401497333638591249463468705970738457139476292648447031336999356822429659918174108202434540775044935170050534063268238005331489369402666962863588965789352276204839885942317183623251995104047097029449318795899401153959487214879319620670961126171531574726757898538003061743762793835463068663956268500957038264763057855229913045047219477319943859807993391861845616902428711655880961752072348312447868173126436220814620428719934853477198709127986322765271422946918526264470887242721053722401672409120124266114029473219251585225889866521709572659339227062484550018318420532107857928755170515980542080968767388595646781990899862391072470667470299675909519656922856840924004898862134780302056981752385828578852028561637480601469563761411335315643941425351885140572201546032396569928790743787976423365994778923647726105391003733171749684505625270866924052126026668405739669893485117703571769430301544702684953566438174505838207138703920619120954534615424792221187555493569307757282895845454735756811607167015077416088818335654547610513699310281791362616423987294331873337477657553683661628543066862767097190889130924955414814894306251352862279506447333327703175043703947025320361066979470240387290457991730014150532003897301851307382428976721144159193864778722393538700595589881857049255488051429729412802596049538567822192650017498350750141799975650015195171473261048309338149978881603630929038675433545613402277595373254891464494003077005795622657311137959398779281764041449250918180135041859059117110655434135350637982543890316162534941129270951970812654821936280717611588077570238897442204428741228350341372149925262275130155122937347059923734987855185175970835241327954260467749829585307232415537275726859981908208461662734984990283622256259942312956446202996685972214536667780209430476591592613994598351150260294431088569427500696284269142703901714171803413359445571900038575637274465216997204400807650337778650113920682289286322332071271431567210718588712008075337617070167645460327478315736238684423554469838855299095596182240546670073782751321831487001964254279962054605082292604879094071437011972842955343148224831335475715611823785920008196030162423962015565832106183113023985466244928903631674554382323142367476452286869965408059675973166629875622860950414983340300447379244016144507017196067571439267390092803300642979240289318473639457572272137998223635072905856125217614787748489191167401715392903528496643617956692163545700724055269058433548994748317600540256536752987329772806004658891954470948532271856151631984906057283585874802478097877595968352994751145189803431276432344807736986788663807861536792658555122336670631552543464767227039242658652348905507208476753126693580244201008087029737482209764526733736089945153372979971910732948583793851199673863065031512380093248587382780696047077202343880003346787198037536097284945875591562918905642626080491171716028512063218727109203234362322850210332220609678931593119801740310350440562562776896123157391629649873079750207682687517719987991804928914641700044741788468399508065511187111676336999182339908124429671435145236153244266065762806335920519167890244374426094306905709534114716612226849169904449591940371415496247010369073095151422444532743939437902701639593777792770725499239062112716741440844562418688648281287097691140523778060250287675937520148154877105202589179611689958027243656459279482705475618354709830994724014018170714455045225873071823261558931063168263816604047274160508871544494835025654781027619526457985414275769823479392199056715800774897697310161113934452961431495807880941744166649274071094211496580656771996055333238517396921163370520685715668434738501772703718531214587621833373390521484464890741988185228003252745165569775210857114356420697704872418218434484081981764635300904093485369785158664112290768919313939329696132956570199916999825920761438761791373570086330416344041634634522300087897306130598484528764007954711686533073494934364099243568648779106537231247212699842912872967627569919715273838536217387836426968277544755009835044161870818618379834055881662718252049363558183327903958250007393370125393584589895469694033057679217695310371046124593255721659169320530063900203159946115091223626697865893150418621543350508897914977151002863868575924305348451503058042469481450282647967450840069412893319648902782512193124481722672812095048700506252856982798204758961892671560918142237369091176847480749079216224931311074558496383105244571681889066734382313434378595641885043267715156718449306863338766505799624845482977000992244535064505704394585637587337875739590782332336645700827152901521623000313293170309998455217201142023747055362226301465956388761160571247978992473150106198293887893123157700890106353400390293810620451076323173061029046178000986318521764221684874391010890603634959861563425897553313793491186946297341421663800984138735391799262137223823243940182262950317357056388893801654697998120111348331382661775708805811340452589788855994716694028294501615735045983265812771900931650462425652541796931689043720784594456977072514896895388071278280825174217032872565700119899796192137248575450352394530809901887729340261989581073237559742813913613523332776478999178786216233974572270249229565353635230664695699182691290218595448015170819475468410777259872990246226264978387640209700206646563131620856712824108701927070302349447969730979621156763348596262024710062975744533922325031979975844873060891943085904965104162819753095575159711489755963114910168740297516712418555041397390408154883937435445027903696299412294319099475574009974762001656087202289457906251749505640232493807721718909592452050062651709425037347607196391245980809680794813076548963408991602038988493037790443176127479365258685133988513112606570499258433625005639462208304947449768864698530795929026474735717304539090685496824947476265904540119922628913230167295261665935028563563049112059793012847469709927557303708950526242182881417770463783006804254092274029818599494343811361165510638682830322255825770213511921811390489185653505872859583142494440143103345375979865141535042978013985277191972714012749013655616071550866313435964152171747254405939245759938008520153541529537314385316723364209644896482699291241912866664696503441537269464575230239811649558880183821896793312786127159733387450403751032772677111965072647419225274542830011968778659488454612661515622731731927538851353204765833593972343025298662083403267679804454809238030711428013197470011911136855381275843494813588951870631785642904508827564928460063136297746762276647534553387225726396596078058718547007817104165726329327847827037060616815398015029889149673293062498290849163843130077122574148829386672533365454446315129501479055772388949169593775760591744652682423208507074608402505642602380438597572449791430587425073157905936655936252589571193795819482117267494140836810329239457383398877203153702288885162761672221648776650255201195842279034389052523918641778691879160781684005207579841319012544164458788885452585832464244401372333367172082075364841102623812881832274478808690163854558152800254258911158213530290297258287264296521922076378461676639150645463811453677244832287057017648301084335741443181255272531918029486413735728564046014514014112576064385073411592932105310536633556665889289045526179220218908256047892628362047677612938309528854585875301831509917911026733566980248104171589895809482094207503348943130209084377915463147783265920112374811055573955470454479265845544375701125902792055990543216448000900269766415121666210195214230952559802883416167808973116473668818911391232364883445289592588694506178121998267249418978929733861833901653916096691483438030552922977775476118130784194766513201710356794536135934491852330071413481297466461185064009271322589208583332772093084289127104695477507905980614884365182513813698787918284548200819871872866341647079955387324465125344130058717110167152036079909953100335374351566765594447317486179146374958042359089439946154817838861336159418022734295324856608739105716640518731751893903970244364190260517896962160367750845465239869427046375330579964721359631839139264720215439772695986740586065127423669119868775992877359103051770176635330563875220469442124398063326839959521333382145497046084337136538230392488394505793791100930772636890176343484800655380591168517209287805450421302368207500144326376033289801437239805600334600091665301183121607243530407694863635908679754106124864143359330168461709735739423277922974986001176525681886092707067482004495340930741168034932430979245155931061437326021288252260171249204010518482014059655666537456617761110855649207459522725462160949309150857410425334875887060955036272724480910431625931742064605580456475683689528594269417766165215679520393226768595754362277254393217849627581251790863920594802043583942866317683122474372230902906732808956543527903433731900398015210449928541529216184337624211588615373791867075473540924125612261136830203052569713542637077920462456024496758080029102868961148601376090004386449904056810860865912700311905937167890711373300200129993139189628878670554508590686671812279238196779519428843866078833182080733496169741611290572938239987307252467923301197091731850703748816164133661742286470292557467486496183516383621729866677877584530227649645175770579058500816299877907035570206616132245637091640956489354842893024835767654520446902491645221967876264711575761720384567493568459506948576028461806881674923030776496058493144311997067682194449471535375658775978405231653719907082651839798820005109904379171327834101598482360078472879629527767778333995806750369367260252899170266736479320955631795760864127252710835196597199998914283165593248668553563742743206419248740751181116643059413739183759736120622683663666928251748582355026646159921311583632803063835448186123604173377886710728664213757151862414112428705354550480268046999798305671153312643368217489524794268627511084614871257400217214555486807263833095186684840391183913587761516254463136150665327533664594308694255680612145949476905210262842845906890866730475597085091418433648315587305929138296805187309650820341163582646670554638539631187701469727551716750124162631035500743058451957554926780142882062544654296628934756291582102773078931119802909420845393535649718311719966935411716358797393950924186205418786781192863873148199919861150352098669105911154604560409945436671551610726162396898952082696075614122867897209986571884575180274162426159987067940471914674707455762433982067865647390059419921347596082474916574933201697784806878661679958669502866361632885787810018731860441517772068735270100113725810745055653679993851052205835903417806977620795487050957618920612447005286960179855447198862207411730384096677935695399196490940000430155415259823524446597846192538316081327311480123977901473893296007421346794401698977801212034096972827329572667937907043277869372503741569715776360526278337055034139576118816958212419423127352670271992889217614349386899276373862963102351808717862033346728105501339234088230777050989382831980239000224841701471554686018284616938052727831794666608115994393324471870440254202751365449017019346515351842038505203280625498927939236897336716040590277755668777094669793084134817259914522897634355608923619572213069326328079782698742238824412798185205624081752629608727239465357524885621310628726954574511869816973428857807038795669711759280370429192950038193973715528538430452331878316071655518597790001161297250110079324822127143827508536169119838599866904882180584527284312075397334111445257358144610971589158474650723962693116657708179509070929761750743563712345944681869525182179968859544195899237755555968573507023084694503434617563159680719588529681537806696042498654693611097340690909219961663692437573050836931881269887825294134739453712755194297351820473214160527571449232507657148098038858172564679273306370821425321686347404613569562900838397185796606360508860135283840111618925064511677846589269634060184260537287190337781652081145972198652668361715783180943652323353340937240089731763282344445897000601299224629089133339183529754204600192997160904487030571922485886507760403051307386588949160559407159006532104567150773313596003352784649745437840218826314236593201828033520312981656997051040997384955685242054639605386555594089541111298767237381918098949173098704654178470224215443411184620787821557282604062256750059330859755852377494127226032071579589285462389553905705369071861905524794674082806100690853437023268666451515774337862583823616461037576797895968412751102352673291175746213427702784036716372484747678697919163874148041005869694246334388082815106013187064977696103544412184871308463138527416840128286743310662983141803590410738837510488353229739971742906765783732794212858814996762212437609197252046731713329617071681927253243919985871413507587345802509971068474142533574287513630817040336102415023210495019523351867309210418223111328931210721026021251472933804205300152301330770401178360919581997845364694136274104134759541317851986390264267029785347435177261681031932002964526751238980815245518581868893107245458355408706266166013534736546917552405495977967090417008855770115019424561930659779659669548567904755209888848932452848687888662209752817861713439656658693112689958475619367179827813040726415951008353631008154823137970149517611301064145286435815150779212550749312813855444042385410372129696185431770771184178292405324273265554808452822139803441716217749016765206158792298994912837939307102584118636583650942324461746105736519581056104135654295701574553556913919864929787700218274226349330196286117610931430394806891329199180260795317447558710709735390417263449104004923285412337632973315509285807434175749625826618706144519271061219399422256369185104160800429536141594034893791207911892956902708700652501675989298511304130039589316230663995595313534525937566942710394601765047502486482246571690826585554466260740096813378464477624306277327758665011850813146378123723066268107771036951855552283011402603730479567397012342867944041341575523097339590557831834082848731599195779125427741853606423070558052433464371886791829143730336499145572422378275353723573002410049518185745365129472791093851832600784887774139115399449243684785251260861543142324314197920094851579359839686681543458456811278949085536338661457173568056364118209224090156802163100057897253244818638577083327707425975893157980057959355891787303033480555632614409764207122895890205582527758293748283689467348679051091580659516061935410244089289500791369535616683456925413294273636595483877890796536272064930780813630773572640325558777886635564254337252736180116034042589014619378438075606915026100313225313775242511130386593034353892876487244462780696351850360695033272575413586574633635481175667166598254459157901234437983600779483932333152193861202524177304799892909721588779907691050374323640705593863676026114127949891184795304412958628140262059632210043195144635402990682373996748495867772176926062808056053801940902417104093368725003910657355847203136787738098694805439996281272703896111788059564289646737842742256992398827241362554809125735944740743484519605240735956055977989172200192693198065046846752896641244619444120032493399092629016183206473210735396701175668171329476418620375490179355535540956153470627556726700561440800689727159728591905766320825493421292339415225889185695631661445709209706610855978446226802402242257661856917373355489284933830216076578990410413380104149394993731738802088682407386235354126017158387007151334341620118355116099030624241311605229527347039902815487203389639074463268266509675447339938062163074800549707948500932311571396072929552320370378229131538403967436834007247609842085904081889451004868297491211403895532187028031079775540270944711689897293487389226289378853870872087447329914756139563454291376125699297319883784984181024959255699538661550026288033047982346450955364278632398839748686295621898394360335076282641245521614106989053338803486031894735383051042228408942410147418896678236840995779842414609537492888954044484476407932734349870486688251200533726010718262390407065287635449218249735357101950130298632616262024814722862595890434045779337915099908236094304731821002221667607363551190121273694813032185182536327360040370048556860305820417016619591317736745515913381924326388042057690055310904522908305091331980513263359352642912367301481393419357939726344590151832384174010957864477695026987040852972073426842981778500537360832239519392048351348719164529718272522959599886025651313387429791647147898557303101414923461767549714532098694381301905932861055764181711314569057990781225970853890623729762689511690514923649420368182642058286461818550065058940800080872487954980413973331896089264999051264343842066076000864840597085594832550094056282856406374991311806462963474300839591753800140581689628871423250086787250671537910657328362462080959860462460193717806085633160940299724749398009762950342601771261131770592076298652665933711376582970685142981329109651292944886204804145685680276032966237945825367387449255068966309568571270373437654449625558500393440747270984778749978077030133751088695765498831551631655603295446474959866456723887838215944512338147696968597946747050835238119869989732474992878885252293740602831030136453097452808332772049663442527378451520525959660222751172061086679062955025046807900818870942741102217550888034865670222950789606869809795515761418376811492311365822495558357031810308176910653485813461879258361657361166193168527879165675226283310503150168675278973046028701521619959935164073899132347793794663920107598931215277245662584015271335949339910637460808578422476970189180762081030941129776957532963050575525707262382648559311932098016528967246823763099511582727144318644814963327212128615546945724844200125014731564825633902101420652579166437725380989596340061186273503670310467534532418944562422740682421577495127975142637797645969840928936319950520687992260649271967187386595950589924050856701267842002257632234443791444049291174937143361631122543351955436764821484456768467087386965106530231068166654567965466202355977015312963406078171605320533390445703368205853038924930653211658933204684116755452457815676965001616398884116442856033523156728818971289544436465071791402885269918503472249176990553176915512305744390749183404729373811903226403050935451893677172393661300988752468882769288683991370499793060971692347647317995627733404599514517860091166286361338963986805099006062409515263216034696390432327701165887178490942934736924828773422917855766942855464708018912490767319633118172336015054073300721609539702931595389097465415961745684562926554452697330053109895256717923179895416562303252869468638457501360670207050763163193196720367969990300980664808016554143953782862960157657394934583651771011967623706349123736231033858210545926485325505639953522605967441863044439308507266070284629358126174930604018640783431424483483534121187698417181201892382385652177776007322724603117532341939603813628849796127810923904817858299438297886203777294885518624470453629411884485596998220737217695470531579613106758249081603579807362885866924927991509098681301630779590105887385425698716775971831389514709230849384217149381006977302251873484315015848288760091440499338163607660289971712188489062996971233414527950651956026812361693249620359178034604987655822282679942339892411120537483169008935089868645989618911566044225702863815715165388459427937318963032316985555497082786580236125424459341815322341659969826628447516016620421316366127441028516107627462777028444609816761745993519120192240141375476727336159764349084263570385430826091227331527785870334536285271969379458552543657702626858504726920449293150881020970805805935605309213652511400277742421872256388067265991229229171945358897015328676557510610415604905073022028953538548451858231326031112417409801484984582495314071604501121790224593537462264288934625878366577297999782410877153261508516634441133485407209111255413763772873519880610811675904081950675268761794385684321395671033920101909175346800632731730949740970034073399991261692674740016925674629850131556177432456632388228876183645374381865567751582038000701845751192640066760176097986523534262875112893145512870929331510414830348683227615164708790053690210499127664377690506720435159511236625256488585952811013415800038947236098560128890453630042541722542610783609668035546726134049668894289157083271087114929076075006126520714398305767039573246355949294484992474557528983517731142566601174130955719115448838972681460585661552576673320292828000598968306259146190564332880607481694038091191943861691279936308101450849969960246850355926221433874925667762308450857293438453137806819366359315866302908265833844213775457837456879303650451718632433150101005103408752931553742268294609681802793932123261536502728462585341152825650598139966587248691085523090262966225573891364655964773019609279010193659694400195496301838678130724960177654987592713883096216962876813615402480774898927044996759962648636831825995174508344475384404377357891904798074116920239182928030074605952380910091010483089478679916887506329575120024286569898024145398988356638615012406310452173758596307045851724281385142831737512540692022907743330413642893657950916138473991494099791342333536468363617527002605840846217921941627833206883912907467284672075096336561912330038537651601414338324339458524706775160041175001193738237708458869325134892753231966505087178254948083140402669725192805222079885715744644408729251868643115583081749575742567515297886484774006637590524385707310704159414541162315360788971530037803898005781765679736193090893873413866900685026344617955656950344181566873668939052216440850404724796359806376333717494627735831779077786918805367356534260084350754554292587109735716082529398897561512972425230118931601014623211587021415186623503848060419420354450733233800091089665679845989724758254644694185940115575525966756175897510718805745985584163417133743743473900019239472037315665014554963330447687345614690768153208027500887285139607514486082800279088451535077420797306549819887387753590757196255875875668682788869861387157722823461272863720798249309115751617514084601130038103282827634306851686298001711995303357894560036581453618169797188746236282715723490434765216396616816316873234479714840700639995570624314178939848115229212787781500268056236641199731002262120648491187055890278407050309160729373483579304673049130376165344022329771473063236134027804686371811202878353670163263120579783312401343117218303836472909378466785015694048348005335866460770504621080620297593254004616036157856634511484873120688184661282208985409720044139967127276460295887471733297831494555782191583594771820034520043075273142240008309732281856272902753421382306758715861473513288290516819352318453990847476588539921415371136033222630132458711102659205312464659873104385755901488968675048755879651382026865349206560038561784764984713647020516221715985961936433888685099741187642314666007753887179220375395922338948875631582744608640342417682136858945868985333173053114767051543882915422408158611653235481569651867654800424087589172993552179217473801745871223916541655269857845954599882895511144394520718559893022180955283821632855204940786398412340527802555490608744816444441134821538429166762348937374738148195939377326012262830852381367903070784284371298067306492561622800748257348345363119539762333658490281711760879066492240109039198156980719895850731229763068937315630857379761825766483236908112019543529185139865241520130678394521628339034182224110585994161926605321404486155286476773356820305162806207700536715159657502888493624658333837152774301452492975384320671375354150273952884073071484407090539857295277934478680085093641330486578077826466477422294134372514345920170215570209765995129479667129028298308069881912796855088864405228751369727077495796572251902059034671064419982643678466441255732599648150625240152750133103761387377043291153602120962562987143076671667500161009924684702962984973423493512606971376686384749666273066044160400497910940814197333858052863567061316397291329696160197292401385630137503770519081944579537579663347224779619149750173021659769799858157907678319748108749428375239247871792118141941457654119134114534062770387888874236895786884135154571845626467053581632403319055610896916397842151510528190876986434602341275360336018063176261186097381447924744064479205987325329815157960385718735575343096426226316559198174428034639907618019960368830146327878684209130579625852506320551695019862467189283613724058038445055941195691743239615709501316014060086047894429976925693296029671541406592628155735698411728885949111316334876416655234827873764719067078462306727538922210153126118906221799989052797694102283163606774031082332245105622686353676935751030977587961246583490821035764680104523077323427939116110546622786414865771808704688510893680595388551056402752729723950932929418078751200939779938940894281710109877983567162828052746747257711506877245621926795589962705825474151901110440033019158767089786537906425654062946176295862306971212956567605270690888979220497977324614753214185843764127111052703533893467636333571659106673376507026914339267418800735688177952837310344116733750501658822351463281585063883644781562925258380302527949679768573344121614160875358985696169699778573869267314497844877605910644475020938231035384819727839347613676630234536965783791414507629321739103460583018898954154712896641847051879572988124812439504963189778992431995169221704980969244586881711072832518223408868588347467303886645516573179268045571523545285492436825251329486546377399799317380335247615242694601560114617464347379873201218964136223057231918096838402981139234629628352678842360634468095781644468488848051676367471738776509807591170619636730711837718739711898892003211645163318653767280713066201165545389540634324685267010816040995204551916320091445250373796464533662056446354190772015354572954823174952139165910241405033858932242480378203548588691775126184100670761676445829150709713210869916475589517610118822004827247031871042654352082000910043121288462797232405044697043225494797928182713363928436383592294250219102768956787328037137892270615754236945090880859737174670416314675718516404940878327244181885088947254042061205339181213369232129913931221048260996481645490165468404287233051716022172326490817414794707661412839741224977821484070440190405343414533274563642594127245777951507425144866489083879282466308111483360795241753587594180011169137311558063910598302343800519918987699640955751229486911285504122633813012040209262054162074559968584746715294696012821485209071290165972361936971090242397322399294907419303836783605279404305294518636648319146673832147787246542703729854750431870711880592792755235391035575661591181585882433061026055366668327175399727915696726127977854707937542393461605490731437393384851230319663928191485018216504431519663199448836889499952358032983364294696800211897742907663545613928696403240101126216724542606630223669147201311801475521981552565318381303604470537081568524625833751215440820133565398103377277631036987302639762636008920090017490238662984790125675440786515214439072898169578443335504657669252640376077074909542500990761620653354595917054757392305414427989730093516380064208513641175515218127105417121681156199917365722113157054861199773476116522286853750818762993692590113798645931198570415585119750830503407530357247501847440329440174109064973650199731990045615136000444739687028769276685535452052295034280407197131897236783898677996029226711038980226542348380966441562358807402242523527253571959198816338218291724684234678200074222406817773795611669030649686166336162567288722795590925345555102680058967341504499382746232319406202527613856029603628273800446465691914180078620727488527996656497588347823795554608970680647836161324554126306831928002063383051073110072194283358671096078314690955159158105841103124289710704447469213271378978213041634314017380223100352906768289933540281004526445647959508936384641953280293741791511333183339915367550577252514053244537754383563730528221082388191167967431946231540669060660344447246160820341118861034895327410004701352421531618834545170828233158343745678192140782032974698059650408320248266732547166617891982598524954839034269581633083477874766153395681696338719862542739076372965435816691632700031459072286248045668266708121327905352863182025689070992965340039452776435006578250396462323189479788339737592634143914256531546363576301505301875235920230202382493856143819605654639423815792052330793143584806694569219038467272557479626867449921564731451048481405703984878217628908008591341353241743992667131675751141878371476596168829601108578771913172968898424990577872181479408570116711729916856170636148034796895728604594964217961076786687125529300058328329193914684802057341416539704605626417857813536871347711422768526755167187402191114737415596588517884942956763150188328326348958989940283080728584148142323238215257538232646082108368666942435959951038097700377478007286362054142091196758091487204436468209964752419512930479546350130049449012612240958089051387066805909437477860080959478266738769657131540736988076342415326353494335072437385603506632512143363337075809623200373195164784855804244954282004571618571364909263423428503414803718342614305888059807076981959351818565490893720593344056833449309395736832794131152320232226545192714795276290921218424557066033576984740080067106125823705984964956378535233444695093364934099532128190077763577416349499036654681378651570499468688871462307492470547537180378543854001923655290545547579550438637782903168674063645081629155547665819247326232619817010413095616613621425207635036344456962126252339546613745211071798970015679365346314655965909736449731253412167538418497287779499775324607494837652935010411444678267532221640278492358751016618104745688892999237022026472285731626115448324137907384953336331609641636704235669195246345603306226455144278003062607720953757057312795347122207352990724249578854097252007125017115055895617077964416849680350455400022178916782442962367649856261207099168329159236843657781265593477465134615754388605259871638597600495376526610017867146780694051861320040924810293323936668910769921825930179424924030466390931120132259896804997037662794923110448118714376675702298339708412763531752574760900706189174573410654346442319911461561737703214532450594096385290931332725425135152174655557148371893461716030131673164148751697304670747877011063665669549624420589101447248943708360359395628180472280057559272398927558961344833468200818099150597248741447509970738063258905561458355967030954577274325400460602933930233081366400261639192620466761688199488891322839628235265703109922485064487609667915830746039577463115812574861454868266505818864599893395013603938529931435532948277058100925043192498953032908887496988908335882104209172202893072162912938451693185237621747502839297239818134669425364879176577273457910496895124065896964420352908391190327171061215282392990415392624061940092040142536912337512348381364438784455399052827167041563640145184342647101878388459219947269645906680932397291604290778670091880704137811121553672358305882967386624655648396259608824808038205743761275416716245861548345333363290264494388704528925667722421875945314278307091600649788506486157880628032164788063290231423271655983177863345583801364844715103765244045486292357326521890596859975917023536166244306285918866706661700004856147574117961351903619942757396168417838558712566896642732279974669980227802412044544192856210509623473491063779943437399263143028573138416724574942922983802444394194563772673772938997047384545571154745684679693199206071471349028484303663467100038340297954086649897265095845980807698895541827946039467685919466603192207940020785273177475730703439714492002304931422323126289462579773959602810899559369455056463569844126453506885933632883276034825542072719957747996556970037555400891744268258271096219665579767135515904992445156672026133609762251352107052034755083373920707223089214537506466767535241630840749727276835979310018817779394433224482192381946247597951516443729099582972761821949081268935786756779021603400800034511407164134979388588478585313790659745526128337435948459181473432002227980791056360058333828437067633501837414192242326892448427935188522011005615338925650091664764258444893578942876225283194901611574694260358361881748798099229198604920616006802412697727592791958267487040143326987780600794087961506348208346338711469869886826054386968848343477393526350063549706310497791486987187889218213323739321022884520940861904250734278988256939893896415111087308274219044839427101805605245292346201929677324436873505796482797165365873643161288085869471005545401952590941480150991441363633225870021651578264012095521231050184180873090883252676646662446489084782459776862698776270640539932172236299688145055354822259709597288161436086114405321800177788163736690451166773224718907481074799615597288561016585749089213712814673518001345856156774836594653299462064060637005693185231542302729181170150442924899936781034689940569871825116149614917390665188746289511773026911865804231148872912578630472899389270970527197935297681472353292766496164986347706630777244164070682679158523721031104130213766001171634835309914425211903072598590754533905592195786064037974049061989401244851987244594551337203651219295980936171538620237807425104050730336916731140219058868147382190481644377125054767088730911702158160393440209789013269827981226533417489868200832576630208151834742788687465878340118020172162566166691076609242419816848368566508704290312085825145751205399235706671221351419085251518144978433898816018899056652177046516757040572928017605556142160682766329805137965193591629433619927342521256138813075034759072169281929882315546775697279015617264528042762272719287111488086792314388735072803342012871578286091391799400392532285409273676742955072936588425289152745371494521354641864206875766882747616580139801992047247628434116010310045030492398023310690388070367955647387309960068143409496812589206619589452494380238012155827836880418105862251163311464463913179945432894530648669301453286287051433886022233756871520730345103141706307393770945066232892905952823085406046556669884057688327007978647737106160259137998613497457885612598302366578145137015740847711096316647224499443131942354349174128621356366423338556945184611096712250900712235525089650030928358685505261863647086696197421019096873174149016002487115825071148209744040361745985536146082685773929867750132666903608664935896352334590242812590243978316883435498061051197520148965001590187965490677794279877070911287272602110828171598343670447824678216598755161646972185210142897491117489916246565445451628794494226591524611015699131798558358220494994933551168649202975248043217638702423293483688016114192924149314909302302895440402883708564096161526091004155380538717277148557494832489741795643684383415027915221590004765722863826006446243573300471416137233403858960599510366909278004218074201643279837025892736739237127027583839618493931327556311009312143750223033774716412199526190255103683638237164935066226954452376558823761734318184800653649086525803935313678560380827495611549138834276190606301638894144129331544690944187443869661121986892449977950664135343705788152643731426699242951850920104663632170625794509182306651873492990327252778104174259987190116275692218904195445195653244768519308314320040729079980541560672826984153148685848251135075345288305879827130827140304595267350573127604205451901688759662727637805632343816854232482111134658796275411571069277817326441104553983836890938670986989041651720022217663311598190719427964077330670513390205862617222363627614070059214314292862454654798152741111305354051589564151651720796914185373783269684836617006032429685700409819590072506089275871630553197438521842834141262713985256799029508694218421161281936978725427087938322230341282935946294610717590921128149064167389240102796803081951609696721089815191601766789403750871288769445688782881381189943690157889902765226606564808400363569223804458361999170729409279404248386020402397617439648165898582594476080386406516568161181462985681094958984339194690526384158389569748088810630418976784038378348442755636450069340502934622062173741356277289200867651256214929191242686109392537373745236099408621088854117273512822265274818511876210676061067345468163647501705358793041894603829108822548332385640983141983093847377401676888639698055422226115801383758915636622132902791780893182472900533594111550249153492651491653309052834012267354507539273073688436342940595109204230404558588872030340713233176777921206741781782532407435737732117410709251729673319365043411493588601366469989326222707089796268087115328142183824284036807533827843852401775122727468694527279402099174857953856198488800418825029685041251111284784490425134044086551503128376815286073451687300819158572345140159542222827769233962085541353050091064393817478650872263763143798978725189722935686744348237732483914492981827114657277171195132631460627548133425146746426086779919899593048863740842395036207910105341296861862649118417447490872995255783172349348418749947947231742999839959333789643069407040114293882092208086653420233073886603421043702977931047914154468183195040041923062757337902509410503729995687881448082013704055216112134598206463868001894242926479339559049123553904712758873890582106010162467724836206812659540192509001830328435561002367872274152646180878381411762260886907279123012290757212410506618590270207020917909061388649137393493844507588306684611135156594787846051143205100263707939692730626985559640618236596781140757305154448463083665294383338358209800629447230497345345554789991454162983608895574604906487355182820341978849096281717586685299063627931013445082190930124693888878251631976143750622019250086753392115183005772701642478043115697827764669304334929674808023281824420379551264663321729027542927712041603160304668797234059103273226020256358743191346615003951934860083962747562447152826679909222240788123012363708183938571254376588062973533022827859694902246542792438055357585353552199114648620766330994391465914507306760091196237032029662625954272315719656689769491501100569903496432397549692566633659722132938899614493660778851163746914859967600733249003003194979768105384210194890323057426339765901777526695690469422550051934073435283847699506932506976407166696688356275573108103314079668151380663055647571395816047416366364428646288783894643913686694471947924213011922354247152150636814490145742044893478418006036492367376862678738274612488959939884027597375579281195745364179987212500446684965435693999708640564573328945609463518997011686394925862380521716399331947477975406955854611681683441685654512208025235407462241987402254449734959055311906710427969504304655044473535873380685789984757827255820928371122800291427646490114622365001789912049297166014833996511468296725582362887545224126447013203307317069949519167493143454949136592980022963189684204320094179770439351590848418161242760665939211554632710383838295259104927559696806034901631809590906838758614122079084817388464033831294645607347021282945544777104932274237085832295262388081532000451044837404824942846076368346490211029243421207218545324072132328395729086834566626591108263662944226172800648102234434500222729379614321831743471879058269902779721123457574694533269204617049561346419539731176701859849206254392024517356064528191241694080806598584825922240983169177558153708124601423023689950022409901180234427507376200213633617244723474944450608933369884047105306512662575515759213060530010922190777475157942841786362053370378423603771441524609385409472784445715005593908808651312325100163913507089461666165448441758897138877065214538123820317590465880323323524774472886887869998677720524881498203765682622428033703186493834035155231120625742934005459865371426256422868670398988874401769029134493884695313450686182128947771272938024655578519636876787723370546303318811385134140619305210305583882195929844865188566192942820888292178707157947189765376018334313153155386427977248709836804292716538634909278673433260751731110224939872299111876814238116028709989875512391589329616368846480139679425430161071484431256012471634229321820139824424760633322073140371096679467163718250036193821680898505885849851775065984168489291334501692963506537036767413091394040991845279588116969937704358212314090715573275642593675918670423075817764945802832438013029780028564113241957874440999474779772842821627006536112116110445624653393551885633789755159542791773389411419075024879364652797689862422040536128430343074173024373991263613363220808951306961247169754573513395771014585961887870863353538778055380211839421748218957873852057769271115812079517438744368409857721589666835210497743770088766606299728527686750725005679013202842153990624796508366987202747418519242955377107934601059793163682336207584542310374079019596197742565179465927600613508470802248042964955221417506184105101274125471925961986837107117613199790657796457755841243627744627296407033472875678649194697754730220417800557688531673920545418985054659519411502983659718885147169856421644308670510859227620251778941875409116494328502498086336162336298977612116610057497918419352669703609515599555155459875152404575410674735072057900706153334459338802105011482983993130106586065779375766359212531727301711175399885562508415945172879335728706116273593425932121059096988802261904554318025565754283057143605540298466924909540957494810218040861903347856077705536005831438700177003951808703996360216714804057514233126652580470747740504107693571010610137080886507491303386487941720016594543608915424278647563860682141307013454110675556679750153624208023268115341105623578860603793056634119956173380585972425892883599690114690538899672275609313402430042481482372420493169127740306413122425900778367939936893524257767742906645719538126159005117109470478363680049168710789938012342002653925597044398570720716681164114074412354017410071880622622266407657434328116462857949254844207519503934295447084711283563290730397844537529471816750910387171782839733466804237664391905694689443894995370046928588305573512417995237156387680324361435849682269786074210116826084999826979338761280441620203607909227315537949297268839821132112859236083094673678026342356352865119295239354552440528765275850272701757180072075241428035770770591297257742775517412744764209060503300864053761106632328942835817032185248615354035263243831069732812063653226052929066503846219582541004941656448011426235715547000273317541809930586954476240142186337037540339670057030407791604457137635942211848160673737380728417140103193659886178222283170035461230737836427606813751718886651687526097978423767822134960008654046461871230785148595347451162722107019569169843445256809805890890208932586888800985933214211802907884912326179728219480587579613862427501805675327136914082949318236562334456936227469335735694840206001406181387395652177463195684551253138056461269997758716230771962159218354761310052911440879710415845851896659427154774988808768583541870743760997955410455944962417767352479683547476435355238550467173816699183480582797801287706340492030324913364150865477534877267435052711772602912553922518504322564052828900150656574679743992845572632081673439405527999128978446744139273988989781206632017661109320269926154852188434641412998278879249912634193325791404125787552493418856983998250511238051788179319888689869526148819798664945446962862198366341074856705058654017214291984745455409607131669885672756944676854235525107881688209164154733466187919876945376810783035689884468477560289639522617763152313406805950002708624809186136545789780136219128036401113504964856437004653322916195293237915372854627393578780055508424993923460543408096768505197756118402287386862488885488178753181226988761090927997744736514555693529458419286454803214879329544828531878916832544600309018474076312849184539030087748115835854798738385615284158648142589938087722780194712270292799449601357443808419754399618137540073543181830329716688660362307951038929109974766922547879471417898880836424524197400172265728673710332180565430611110195026518423150994683269477693922765022783726062312205206276659340575466741925655915815720613023829240457879131121910373452288995919937724221701037347083595474470280629565558978770358636313943938046365882817926251158773013465713781432312858162115257263439367445797887244665643100902297462439672988351513600136864793227076100301407110622781263076209824475806489194380523135809417999644119927846398085295019800402704813786743783931743647403513656030094752558442390176823214323691804802399001912202889029443304823805372858700974821969581070972719563531459034683001947428435127776693996015019280048976917935032100596640000191608145027462908445117905000259677973314972858855451014046779902465009076959064773444629121512755045107091513926799000234941127605166104468709698984891243100371316047094284932267810988904275832714852348112768144111709240823996290009004041464034054887007582299007945773658647291294812315573802224197504169479638176462966253817857162909104166091018381231253767181890158677584194288014827856984332452008993313186834197122915636209531196503037752228184082960451659384985072049670083962109637326199386691559954111827664002558161942359759105379235289194006908815691990058442194020707808991128287308685713017962937655427489834756091791038174976433765577422761965940519292439787188570634340408913182958035872681051862726912128174047185162422450857970604162256995962189067086943371322275826965518384879821110211767303891699258728022403580902956955674511568736415445778280381647821261295113287438618065726475376467007459457877914518371343431078645064603919470813391240628275445456767745071582347462592744460479009775682225755254655915744576267006532613548771627925363543722652749144392688925239999498163841351550479150835990510784027057191820265255437558657393076637737467472046734457423949560123751748337901283037523720193931860272396728723039464420591180857907883184462751830734527836443968963665002675511642936940712044658321157960153057045748182770282818755965120802415117679927198778144508899855789454391954111245612897380396317305075488178354293466020173911660905167877269517483937442946478399324132539130633950444834392518022059764239987741930473752458278810568030411974255520536137158785631524551936124503890803159905583097610636497803838248035529658173694890356690323986574539174150953289425888872877088416608116895034529009535473595018541011397433429406963071138670593798058485062421562679955494678785582541150028070183084016804891747573010504716983959329287648553656155961383313939398126912502016957152105250135124476691347075866434171674378935825824151990724992770993201591041758014800727434575747030826469355602954163772150560669703916808767165011047137874161931903724534020863768922399332793395487975028387333196623320300242621897672463649006943414675241116534453159803105678821763031147115054376033466174835575004796023741738350866054221068809108993630956221772062356334689281894541713608870347740365890445157121965073729327141244411568709223735245373274555551042509771326710039601335160454314901360691415989069179300303548558641548173851473517608696982871346829229438253896341769800542216653809806206809597551243939489552197585672450732260536030372248064800318463576800151160490439045469156258749059936792628671742777464711357363874575219533061091651750639620736939890631685381432093154748617194888333790972470997814406171489494248529114769960819963973185386087271533567757499845717161017930193523816397259238072907893554010096248475337633304677746483378138793857780119890813600124172620334245388426881915230808782794509960096517096428101603586360590125441675824822296822302634068774025719107292435765210038730141160861441774939065241554688720713602832060905558609537580181274953514643741880483006464012520462502891613764701071542118287297143533229272169241638559982478667152058378479939225932677253633449238028326969173115691775838648119220481101256499598181188078779236993438663665146791660094640175071750170074883116225144343245406038952220566829464318700424780626073412905881903490280277679055913237656636942642368056098582753471484529655180214440234973628860129900221199373665859163282268583220197858396935022952431748982890620598031480208345243830960036024509659719077628906584656446310452946576214018909615192548893630560447909177130670176426355142156121323094502545824687627704327382668962570591857648175172624726026199400823859587587028112376950097053424667853692667622168620725923429213252058930868477375540537192362153357649333755458645233849900396636999375014416500682340758340074332784735177534285095653641547574513417527013557365534234988425411528434785098026693001199304665400615232454983960731320251334909762412898302449575771170628080980016168925906439786696235297715816856439269320628315694767928608214800611214736440369945070143833669084660082361664370443957423292426228014070014425454383779740998342988921089214267651324484627954068968747039199826263174557829383906603122749728245352656260846345399018608353504465138171901356055691028370251284816657254072433881007804599171026799633618519297361833139874597814006730742285686830074945707692634284707048636432069161490262888611926186735861571989407549242389571148382022560517377118896850347467152210221177395607318800837539795776104576919917603099234688593325391826565977441814535266407042171078720328434152821499189760780023062167291449780722957887396129674086185203859823603916318847130833561564742514325458364078677090779274819140042696888651968115188830436566678178861180913385141456075979516839161586283484116240974562550346098966214049469367980519598633519009815466231240843712109210199898082329482836605119119193373765395997948110222113306444061027224861340089121476348756642570262766489112005132577436684243936283097034024284200964513395536144222350481644896654996307154757623276278814353264784530920332793773087731424690789306283674778953030175179490834579136870448119626720822093050220392507606083667147806613402463838989645882447434724287987595525579455062654022018461711867577472769473373704850152192166687849784804160913535560850732140417489853354322946020763497941543414543884453087443781558596465161929136366775548637406290129894274251963941153254341993141800667614726322793687957372242543482903076155670757893566330708727037505431365849712579026856384746468294320654831565983189575301665096493138834027799423116064259811490974516090432633482255875948346768086546572201602096064504549681611264095098923176648332699404450289227078430651561780270134878780428520899607267818073234539881797637390171619395487930931298875486975466904803236587672641307874760163721949316166851668064855068811529712493614016401444413896660852893563648363714179583941464845744774725091437301313797766057217813188958327196354063982096775267412729140748109332550968177922015756875108291454994885005269468239895814681433364709580399387789658289769968075046788015062261361793214191805123474382208686100048308408513495093942239889950383935998128017690614370130818019373370610129135261135763557797354402446279929216293815696452944768575587666488879861535949850442217555535127529812830441564804611405783981816784876124185100179455361005674683648022499264703790799803540056598438246541788572160034453612582814953555559898173153094245001449304429717451286525157832339857721591339258279185945027130586487533383443089995048181343645353273347484181199443247566864558205226849284278083719328092506219336696869970382568944092422226742836548217910541083107143154487906204499209472306447798174138940254475241260050636839488166044489241845594604119055104745232552523651917853597577722132387270127885883935804945596015724858754741187846100246576652370067126626940656101947209412567145783173905881980938507854470374315311913472687962675818539726456651785236097468822690853563838961936922513547447166042641203590885209702651741656583266097891333693616178812856212577339111140747210055504443420152304965566665338329337465863448609221480748631433933701651408027472253459304155405915808631037745446279199263191482266776352882351650900441884188604916927406120892399696604854741709873270879648370450735379136138052468434282965529206546842397260879830111767638333831509918515843922346961337304946643489627959857821115276587853359360325912487715546392101395744798347607192931727670936020266673249646071058760814138446149542674980190779084021164500827192795977306524173480656859073671465882789647352574554239699481387560349031349812104401492315836286954820999707223664777641743339124802105028482874385776076598732767702615201037330677835668344324002819782531336076421704784634489997073000846189701188739127931482436668359879056993032483177275261770865067379704210275818118846184160308131430925862176553213317038339639085218734374715237351663458238786966990232641214570408584137757150689829532047390300804174570422418893433277791121159441982719861769344671046801917548690999020561720996028190842591482768239166400547212941482410284390442777829588860999673828459265888925901125880236252325881596885506465628301979182084447591757578369992732358137338212091068079992784699129901126180041289335312131734302407838857794441904660750578209895928046983332190552440444388871602691044815472070877402816461498646947358018831848454418832541503505708097110465804950424143226964161198709124793381119270450532138527966015380297994045470648037226510974630139239126487783478647524694893198198094601872353833526470616296442416878501124505283885503719357577788589935853460276853895423994072347747503728659671611573164814153845024098282716851616427054801421553673107759387409789899441156811126919375475355880440772739318058354205901819256413647838384225750583315540141920337700415440323964728020352286806993418043600367382101450454168609960678387015239609570448939308233816697517695563059648737402434837279526992830223392413225144210231392610327339465578030081327645405290211254571285311485418138890699343709893923060649543710054105294305529516785258008150145403708541244545386298925579348730812799155832950067298628666744890585461374216013599746561358917132555450225340880297026782820320109471610756763601859301974871629833702534571189342412467565513435565604333456202811901891332695254436158039513639316466679941682551683396672718811985125771066340867855112519061503480253461469560664401219254397373794051526927208876424770218637709833835066643001746589528776206389468650281505402012851959604758707878908756820223751474370628465285621608461396999771931935616519574855044712761487498033261203528264030988549530308087192053230469815332493435596380773496176677269492711731100979179343347060003927524247680106040599087119832398611568824405310205604225756456351143188084237292634253869775426737216695777616445864114780633480263020512798490801379251388841999539728449565646104490496505320635415358415890926381080975379006187685873882076669189495247035232305725392904060688736651159065573610683962533257069270344770819519215011506973157051181186566839832593553572185781658643340273263538036232320002140152314964816144374536148469035377243338142785029876916404324956934183558030746927474177599287377230487990605104445751175738851479195508165990897024612452192427550814986537002712674438939881749532880320772282955701470741602328567298173510268934714909135391870832431447213593639802602993801741952866400069161618772771772831762048533556665659172508624521578706704648309858553952018624180360592083143229146151585465170750101247655223717464904695651052025239578673380345128320327225292811915430358464910935209044635383139719009166430603707629862701939202216618931497751228571349637284447875736598926078085931964485151450010680750836546410209272505170571748678542226213670094226621313310766422477152397858696945289969520207426983547042380219685016484258490759778416177822851362774238107466403097489635755843217538696632169515678524313826961919604636702671409607412492522209264962804540000168677419615176937762092822564782969553193116709405542988538877522744859438140585574622705485414881998778687079430622533351824512723760073181715700885093793311639759298965453372538299094234667819865305997381376857871556886873255174827960324265806444997646499120101733864388780952064736629245540876541320126796550755404833668683796400956629577711456655931626389107946308672900369747260562279276514368207862881098513079401856371217634307196098937845870639071188068124054361401057118642496749162608802186173374981033746921007994771832877720430286166641117003437054451645424416345052350109727247380700581328202264484320758075003005463437989979581174246720774225339042871799901120763126280684592917712245902726771601336228475793299934764347515108089011396476919383629771001237457104308426490634754264513227007096887622058792111341387597027858426067955869499856637125642204270555232272605532544763345155998680895741862524525788920919912987698452490018605883133608301932811499932329112183704523205976173749571866422283309299624036455775477872676369490404886249093435765792848933840510524012233776074724814069178465034812646306722821319160157775052453010974942310555531991868394727191281916340369465202962044390165907081949463734071376578455522584528507460488666028938811003455187664334878373992255621779237801098973255035474595213669239710366545071818785917345954289305537370124609844579683231595219722877242933994392804620843691709925230768577820894623569300765217247763436453461165100542045484339972743563477322434703621223011651704154075932592426395082795609114629591834189110971344793383818326857788066677677663668090533663509127672279134956340226312320594057667443294569581358123299962563325860435795085522710537652010767450752111550729611364126222475315046629423417126562740592443764664954637253766030838746828975017304629029151100890998487440344322252173698851506635942332116822501461440368162405038380927269433296703708145517472336229179184830394099816409050967095623831431630550704502095919034472923961164382341543424351194484598380174174900927155944933309186937117810029725457499582104030426832809874340620100025189309260877526987875745649996524033856186431994287227325898419337976680431439809207456605947122299055157328143209718854565808431037497271122649843403105550472453148098668647000106718055101863085892897044158355323170140038003743214927529414537766354468153888344416948711941146378828310598335402881303309471206986256965524539317429278686280094913880445990781368353557666640081195985450760887868104103995806783827996561151103182621478113487531907933305093212308921744609800130178675953623406422938888444099451438003096677723909152721397767724467519212085853944377088326716390638144839911847990462218667681171886215536642285308309084493068612908159483804097066712967404731044976544579714413252217238946211203354750267600161019111649586341658956568573324733152280497738800529531579478364407329141833126700464288412659206711680397311148166427921063868637429237102856820312436445258882491915023172505742245529227320949226664514770211157759309081707611092217356928920193729724530414015018710382814235312324455565444654990938766112150774513903278203555210225090725285622941413827101703647319381604662757053689159107373468188282979029329618777372409347645707334105195081780151516118834157209153574930726466018089731512379392952075480121561474185048502205653258783015768983996289758964802374926886317707441125375714824002203412936270082711228972921265601585268693215577152795615103555449812987725354911728982259081326051542339233955531152456655562150739682644531449786405054914244438960189850453598858695941545196126450546165677212726480870471049118653327091154324609850616154000571228589216942670257903643990145669094305450815460149647365871968210289803824415441404990345125477435350477521249243244604546016314913931600067333271648261176397679175212279164549708871715756605003816005501721849821772097611529035964561592859505783796572148591084369228192940733025080798769089419278503775064551380811186000266101982393882830342074006418435837113017874758113675842495080417947972471916559629061373417532502259541234559767136364911495106534951874671615143845916210453693853888033577980796875856460509135936640209953158809516326194258625475038209098261784662961543463404665079579080600515889211241183337456621475694476477621427504538899488241735363162870997143392781437981965923992083256973556977459557366753975593574345138839343464314229876489935622151709564590920579178422197686346685976013745804919425438679079748317200511724303752004963240378990308910948001346821974265431302840455905149041846815812019525009533628444013122475380064373434506885899250466402575341324103510057370369598802848922766879458920424517757794274890674106704577692967869952747142769244953122610718101699504194849112250018564238612908730430287730443174062181664715183248096527770987641785072137193622010745265075732065981423771875040688331548827926568850227226693711537716014956131312016313100288392459877928889858222261927297539295842681163009747565954092346884001687218801861828733109435312661100741657010067312492383150151635092674740387623494250308088304006610671999224835204018428894478726038801791341784933993393664458871311292711052481778927401308083750673570729222510822304285272023796356318553538763283068847329208775092118682232224293381262270817254581937670153879672793555845836461893358097742787734154075835585663139922136147734570171512447113117407012290099228365959863880811034938470547250587142671984600853968034484290760907152241383942320711128116619483724315165926942736747547677608731946036107719998766663470855171928142650111346582462299053528601355626144608942620497586075212580403859302410615221912206696867623141674068521460544196655757711763556560458056193683687547272840510634112885393443806670113367401685519238707665604640126084735925755677360345632125959243530256316320673926992850646310733806885174914510929099262561261441886770138324076384460917180318048851809117489361804099615180328214034091151530115949743094357736114446455126220813142485822327172833152015733245312355870558580506934261898685973316775877566369794539358955617643092233972671386400436780855289197113552247928635121321409826377753037460496795769384999600226153336456832278899344548147864603786388475598431331839259978789622110728104064213002663999464370999170825722476317324725020113754735459458078577728564112111955747875831850864044739067820019514325168713058406582604956119476800938575846617994163711627667055472790471811896567877436102321295002402183687030990768323721761626459327507872417463330955137726453989375772919575156396520550842419983041874069839863630006289867356358829936853145885819547761011741611464466208703978711624144089870370751925029629429057754273751515494671373356938096107858344944248853455934599117845479873716732757540924577085663351327060227840125284959125766893061956176270915699994418806752529049109142664727063118324072139647244307795141468519849633716526292741745764717285243344183235007179920216578940511979207274135468876718632558963133405780612046467504674595746079057288916805719580625611383183908090596942652862150143359673831949916277793597316753145779719381337158992449044006287057421331727284601311903339796359468559878269844806005552828310574589160970264502393780503134938276928394345207562817381774673644482598283535005520667492033775295644270366340582304410221040535098588852944026121789659138718271111969226675370364016288735502351321048515960216474370844114282358766556060760174074439978263358804519824219934635464224882336637858157629885526075135008543907495938922992034160492764836261905710597560468102466980835814940522916110942408431692167215253493764141553425586680339103028316744933516494343156480262671927915921736288263676531618676992877462852286640118947972969383666334551773413596903243717705765049106818038378030265665654914659254625300767422066228677664188781105601071489005908098973812294338608986959618156546576215653971739081497494569878856813512583435488419890044470707467234358964794044474677530150206339186825727790417040503693866754438810100999578959960645911040999624582508343825202425773268851061352049042713296239937399496599419334712705551522402344876512345767838674800990981741921998199308780955164905521013093844027056551317874548338201092701179298298736129915962060311110079004076253196589872854288679819351804654688778626792218038315795189752871552057714985386742876014847959421948351558660319127992570322628898246475772941777150410488350904635307646620224391324492779291863788491435495335217373514522149521326596343910745710400888755224896190853189128479400519743510135104111484655146162881241246485079001498827461843947630156728978636275259116888373168114558313867536122631951473910548844634412654538680099822887454322340597659049231266516096884119186299976630901019412444070028237069656967511217352950145513258443065747705007503907168841637891948482621997272127473938394407930630287825422517268118177926890095448949104975080918136942090678416005146787389072451745121338627352624779426973615285168176734828283246356662487214449976434970837467019554320957728878904662153222551844187933703856369588327038497127111628187314471980210441057893751512137914697286725223594526058368558853613522603977243936307509416043669411641569008875462950761752509659685937777239505983198803856203387988451616028239354863851297690217563275124555055362233716525634584166716276256057275711804493205060841020148755638573867578473640031427200922288262811396678898228754350027824387358176865944538273095825960661467681907761034222252592924770609452750144782908735083045533438740794979016357361781471240935766299356724046780108501312648104239631376652125878080282692702057817220664288080859573884132733357245185415529682591139847452687521262105940594579130953503438878252578701977087519821338379973622862961535599599278111444484112746120902751025957339833105096669072744516497486077494605737888690881375154426357042821733187945442459540975227839834914666818841992167384930602705373004738980530909780158632479187487902425798639730888240109979964229283284649455021300151338720018267744201390995529529555235965261640121524462093361416744497348899975060692851949844685642570515769440999204272183092232304751250100255594018538211692728227268547929491631566124630689216268985738802195926415408604829051236251676832840195520286955316932987358053119075394202309100233031850077826269242928245855345410070418206077999657372628640315303134991268430900390616783993630364847763026074543239703957590059430914881200251231728344006245437706489825986693827074510801663676448036107413840179984870576114484895296197754836236326878229654309131419212150305919320385612788157613022041783450149567142667100033163518194196454380058125463836131459673384072352145953355406642836636349915093770046963255786534270839282351874322548460528777762582795060278223641493160802119958704629583936930316023585107991337256972163623530155644434398830785305147286561737486767662305709306673622532803942257236401099467195393324993033375910557368586281982989582664341623601302711504097105731303856374425343287795722773137923213054187269464021777526790918594653003649088204451570812705408691368232927191478458487366663839446903861574388236176518641922066521970699783088770291163612148864817761920997207885249320207066972514795241308111977675871239407739956198221355767560571296405807269793661058148274026680759934122784370476497489349538160841987190186219238095836489105445891928142504881680345128574873607876077764329188341459567329204017203862585079728296261190094849539205852769228374890183406551601142006749759417881391798368897598256761064615207432035641238464251605510127224083874830081710360133573714486509151877058639253217451684748404556930409434880085661782306581389102437647158385470663244789703711911016905553189959407921434842274903759816538811891655832699086987633699735199071892516794302888318394941728400414681100970124624899311670581612480396823390715065903256544441298999959244735017999748521751407755961400192479613772854356388863255409528544471011450345740462878152936401354100194135714628914147099482498077825141817264172833813552330015750031870912640299736698879540989518707356226279475459527716630492930137073835732527515873034507413189085609710985180381875865284705321714407896258569552090062419008915935271815812899283224151178741192424228665878724638189173163787270517207633093975393583569217227192371989379982942116000542176671426925674191189539675968311559299053849672095267427514073628209265826053430950139999965500284750990952666998643656508211307891627172805672179653423470547585912400756689609005892518336033576467338236567673569440653642388031952819245116099915809375105076353181132734872655883694162289285710640882849102723346632271572255541287462036141407293598958136387225403525578220685533693522505831696068598398899471082504608904142718406712501842956330493963546681181871732830781353602154318318691778290928892532482693220890721768008405162346350448694206058025008647889688832126689879693112198766243733906687428559423372827957480341030350339270903492586847534599363844787159842688085464625168874945637357810632006898036947759313128359983380044049280619905691236601071964982624884980315209668348085826503493930903478964528786667121611422850346424678814407882786612542796447454022568369258954624831791174093725145805723195287730217280750155700231971353855359736931841411831351088943515505869995081553825535279955000721025595266270347876911170004048519007697457549360963387027580195988983960102251638064694682785996161373493257094538858710861761770441992076191213386135332901728483735629950192919610858236057217625658014643321399377760822844231816927865037621572862362143814123707813637594426366443516858154591033555146267508010921249858159748841446225423290029731846467474152989439092194346837602796585190914188002859207130658863393027851109144517961727199488422629699523704319704915827189959934200421498698281962038415890093511094210398786476710285944611739443104022903114407564826078094134505453797842652146545521502645414887643691324479312716026252313134862163542077118614155079118548637828346763291260888255109409080022321571219081132174832143796649568271600370412438965093017489689674316601597438402842584428143536603017729683709634168362247178648969668052094294993941590798263112016653957538475629929723213652639357663466725961752164148654994935974202026252243043959571736086974869279423702917219843489363677263660147861185972643833177422883784377105850053858929357512734521865824300298657038388819890021508029886219139005894639105759779100260251071281691441277984856461214831599283354108485080724800730766518755933010123096056155726777455458202222281389070303784880619933244528098565596110853213999065004930684198701906433722566668846308711985568687879848759949219749960111898061510395661715904419592452791771085711855090064234950398559471489406469392199694193212001708671458431809462426079570918093662414508320218145838413422398602693745593130327035606183573952535389400319716571428821154436379076330687158657910349980256334983588615530734528564454020727308301029333372994268710600808127102095836752888838711101447411397218128494652228119116463721196015782970872939045713784987534804552575815450316286421427356481725170942610482856567254859214813791286026856747797159841224998083839813385065476849358712733718243067029352150242237818980269076343085516155672480354013474184615316845334770396497240107088598080808057901967895698145037530033214143762714957855634672555172559930391866063393608633906071124959934176637442536643617859984952783956660958261759272956850063089156037297629880980127140683216985232194971077487578695926183600597595134797916472318480062859232105722439332769217901953435158996236843799766153176961879034392808012674241631264187610470882881070421517260456170157221386499434196014925987335003621357072258109217564064735465257593199166708734171212567775573983172585917684709125135140808980872914295495655119030691708257824231127990971200718788753725533470344095284211644059527841433174600585350108853290936971540297899124067418849166563317405727131219699049421628261929616088697247169162636813981039713041920744642018064355113675210342448704594958060767549499228583188769013541850849470824068193435124037992451676531499916047173358396407832221972496541367945017323460513858998973507271917182633935765960941692172341907597980411868464348847967668411180299791540041195540595299475205210977152680221061814743473244241733654411801691388692526381825321366154094749249302669168943053397664885030270186957318124811019555025495465127837958631150381583387344874018238021226880036325248333009315291133564525395524146422096696518057594480825030184202216954788162218559384936186947819250938516167007757348735558164847012273981582504489622630108052652166672678273447545088250827044366961238286524843563216282112397708996989447198471859749903747578750453949868213368708187090273384200755068303715667154729744229843578185935666281983913906387592325451990198927734711547602133716061898607378937730220687830382586068342735421909757609354162237812721130968128208826873769721169136689951477708367731917859947987466131442674457150843237039847478543970934831546571874676553609567589672057770255344648906798794170495981693541337757083907337755825370502085223462923546862233856814520301905904298807351970855173402454065233393979376207231002048973777806955824078924695564363477548341045634870814064253324410222740409537682361890547004817077218283538027777338543599625018767207097611807933854807695568609291412795221890894275976063986193107175417222154083933660654657988656903956550838925179914738292804809524425783483795761654826464449297889010498895080176613693419322740863652955439765270940004773378570523305238522709187563627801126802034176217358919583441662267697540972262990320070121984329364474523049956801626377649247941942042306494683662761572023301371238176872517419113452955684612099446340334277824105196849991498122885257205030529024749764641833391076124419739488516377615037335340603032182573184300969121244629090460721816688080610605364077802320270444029127337378257910103895574491710677640624642450453103021812771311575952465294063907923839629496646594508546461299358723398954562208413897078590782058092430629035440487952028522534263775781787160211335338827152241344950541420874190636142413650427547755596916270971993897281563207952892990828420531207900802574723417067257452742113336310767768864552966832616871416770848787732407574276060267162645632707125190676273890190621596873594373724662512388677377776768897011784501018425268241657511789413750667291487037817573791899469196333103979648998047733949081603277286255900221862070413179249642753400161207185731931416703114806810359991848863336318718565897024121834275251655594101088017096145008396258082239854571046650520111358194450206495675619957133019364751305782511158937854292492062339952052575617083143219995700628720596281780835532038650436121119753561477581920357600770299866944631087385316535529433048162334407259548027142549592791564253191472411261183568151393710896365728775148608369495301609026764611904163164128545625562306961789879029529184286410675966217972983522329723393345034443180211310891734195742807659080904407673438488824523981220223092248033082793930450441581427892493678164404267083890205228994797287770362233558340531628937812396924448286334436700539096679107436342412372976300479062685451237377617370362213333029992545943201768884965378068826180157159468508952814884691984295962713360249053797746864185022533286465279468524288977967414204401154914098823750404279120542038115419970391135867625393841088869149899479545911546894158835835295256602029873804802962035555647105856940387489031909583261182472012137802954028036790262582269484971590470000335015676728415460393711188079142976325777307691672816213465167008581101645230906129550608007938202783854962146108359573426761248355214478154769685029440134570764284654736446020084415009163129958806315006711929452679906194549419679996092367326297647887592804392076826865430258307680034508462953872453468071495756508839655909616185965489422292727971797443312779584279689902478080627058987586526444035166627425409284074391290540553858328131237357134858313749955374424331601699790517125011242358981241702045238217114583473370172481726183718129499415633531901898188540567284222633681548688078784580898192531301263792532233038575676414665706909676232821587646985704149237237522356583599378648108818085113850988609809624698830427782562874980738199522048443641515820299395115933269481682691824499644808464853580052276151998471453344000804342023729359485293798275917700512592387889131143703935961457826542659835955593955460210078634041292655036433652739328553998295689137478266851436042564563842532063005252024040162629971079977057929941550470188781596544357566454178235398611638138330999540930554055422510666977829501600373620654511833324126678972402858743807288885128435559740237495568532503293833983942528509926728495587608704272537058307008130180906993154293264438103142831749907004836522593024263491226979053267578198708929400791722011886718939866662471546334839072742224147142627727759404510834587244033451868202309358368493402106885950373280897677735076800729070251617432048167986705186304344791631103300872542538444812408532108686603730113702068553796474372057326313196718332214713169449585202195531667317070221250973856572637108446010349474748683702178507747220799208965691799810028335018759651992430582373545820985371004337001045714573815405751183822334643142642978164504358683282426079546806905111333822051677104701793074348963178955683471551838876490068383918138323392662692016173308127953113925279522249829542791719721191955218115305885673089352636960020228298331478449651153088202928708136880484509593308029441609996990458608216906839928436910349042000255600174683746255187595151583612723934421298902571707145502688988102029357208287738803652648318153514254802662676052617359972827764941169354425482973859647492435333437260954080920033098157288782997206171416250991988550532672076843593241748348938145142280701222886996118362634988871913037444291157971290381845267006401460974965065490710172166374132894803413292848583308222594337886490987892881232429523199764520859419992483059260501392835742544793469604273629261957699039091947449809741471198366546572931147466035269602045825240134318783690641997622647531954292466430840465987391580923756994385567486585350372893151588315404910096649240692762923773687048949156994242507519838524426634187310564066266287982654236295637124894092645169396896014879815987342567893491763200479533954674561744501386406654577733864861495342803726652158572529804322614744688486235984286308182524840940580525283368882955954908543312250789927342754925600957848251364912625152777567478530194473153001279170541488671764717733171909148356531553951080712284632489097478279649381034069039501666359021153067842389034897422050685082516639092225044118490955793075778838871365427470904363161333796632677992249009378183800308268079707980472201817002002069720843182498503947495338406656806940945903251416207223249550751696667917316043726316209951962205598716360826562990926284777525037152320973820853710648228692540706763183954033522382741370316051136706184635776170727986112848973800929442967641001794061125339202529786168451945232212710179485640118185809992192179678419734832915434337086347372723327650522698962869509384146080017537236040553763254797145871967191250995579126564363523486687035976066940620189680267863227417108041796913521872485573399969579198288641926859582797395951382945408157876670460573534691560001693268297340696516324078753801080740286528904193308036948942083582570975813524603843554887312173152876567671802794120226144475481383563212464342952954047700709091692698316703362934401659363720689322363203918534610346323816492761793754804495044020612572600972191936011325670407044699115431499819244979154009110157034932310522530558451131649589005220582692760747691623810296267867269516152437496871478388284972875699463194200032049745646727887139617944187092257657860057628432391144201205951275284489822965618597555760623836431020186520430111952189096830647393572484804816611353851522467520659389356445649705467856147991406398608774781564274633472616058333740212413633357428793547072941708522192649968015199196181409654563487610117301590692194507205279494544972768979149162575624230004209323292989566414386633202971755558221162840070145427649402493157061669202185489839595618814329829782415935831135221275268497747656201120967460874810513118938806224748714437858579429057525870861891448697449380759158870042747373006436764836438664643326187742331741476131771704179003374079494875187299797820337892313208140030169509868265084333805188859222806769200603124365576083734601573399876585383783643525497923076643161911134934135031176699140766501727713363858120704696206732711777974778939537796079373060311631894537723513446558576975009102172319970361161481554183575219940633401368383932807832756009259826745773793075773975822922033470589653454828886358659160321974597509807897922559096757633154543706498388600392632584148949468956398974059094433493366907115242582334926450629151965412916725032643773364797590489273054723928449323870901463592808630230763556161898151956657139600821117198828602076312194949672635304339539055472136382102174051884290156850325326908154472998035838481699909949848871752003232599151777519521741199177469744598710036487413865649744478672338178409991936291888987759492595254772041783927039883631273230241372652183490249511008673979380524834322206944014035458097095469172792981318879532821603580302542339760738829248221622052801528049285836487508172437436804244331677516408011291016892112919429439415556127787999751025529908435064730242709089413685458715628453081434111784931118441557111364096340467337412285572175699655816495881238598967261493392578174436242496909943729070288910190173493811684182791534227121915841300439053925006478998120092805627429986066997207753133701020384626471109191259498388660546389894587554822807551155026648455158405402083701284249931080612872403073162809969825300374686101403246547214176564159011874736299278906862990424181671130542521018832512351688370366369819709644441282764966803442729827762766474235645290263559483725147075753859738268136061500946347723370512073749237136108381161349880604868047487324409366733788576660357600695231623046917966255552187194348759610785646422639655559071565923962100978830618501041096555505726342800720561975269087741894431458146658630995297056001281632815294080168459229659100784550984947651687449886674480763447650732316610361335894641561313859277067620801072051163723077682967634885685630025055647890789664644011710975244545138783846644330296208319081619206653447717512829861833331718195865337260458813280966062325432223349265762262247300978467262270289982666354535823674870603133938465661438299876693669771122351106667045373978093681743597211960345531968846941260018777636842599455199089077954060765099013380242366413845944863853164448031488089046353246884708034738498521775360511538268926357501284606178307086494834364749334922511868959605067548643124072939385796529189103406504277081931519647546407941112742807410667549748698584682333098885496783365683459791174970750392350296443049269230276406715214210419284979481693236440767737154200467200598951057715993625904029404565532557398284186159580162274112958496226545422996901486170873266891172987441825369681559177223691228710206685238247147763893366186604817132289926715239372468496139334540908776322737358953006271550534869120552353066955302364451699428314133987414535086161480194884873031464191132620812923604989100955075361055812259898341541553874925116566507741487409752917773006075904845788857016105948789508078918529406547433049563354383912259589406516761120923343162840468106101897616491063891963471874697346073260126933537729033016786627985215424797731295571255305199298325190418821968069562934613561262198278621795199455726663794273720677451875973256415074818224651524261976988732286941919084240025750434959425758278396375192761153457775314357796622942059212596769919549943799676841981211756842880777788958659262184073068676431741491476590915576179893172202565274024080654478887401759400600624772473144121122282167095380086069388070458039170171180295864664887574971223944082316136941992264937860153225803539738492623795261031186059286021401017458765923706142407831651254605107226142132997982714602302247202924243052456090903050184430390152979945283735695898177406048842611305131661729358389318354172201982636890124157477764958688051152666702363147266506681037104256834468171738719614397193022222475927867760479478830606129202339848877442373954038793295017718062551782191139919662296137255448521833300283977666897619795567232328346330741606044552444140213395578345785543505851139303959482544141571043838557931935463875789727676091265047057824928205924244979582027736131767423123022734686577398205708355858955671076182792352928389772044480429464688752851365563715617295608253864312001369629537917531587898522742949136569677871168672005261439108697052658072250837849179357476815596644167647476541396489965077808475939814751215613497195232759185893549630852618465711835387393542657486425322635273540334162915418854975352115200603685148139346377468081568309455273392088565471876520271073383997685490113275097453313108893926418277689358026875524096073856862654875813026746373339260307168149277661780548044568064832492160799425765203347322763281631102919058695853236144471662865832578967917635065154959649738636480748519642198820203004670612374207023565889262280127905368296701148284664159895717628224638110272727200756304222104203563927155771184381844140915009946815897752907988742085206098468605794271124660616599178165661108407848097184383415460720907634481002756782422102652087183865628709616078236023069348875583759279694719409199689656758244198073282742825900071486977724050392835420548886430408766219458543973860018513763441367993986737676625040541547176628419991780198436715296279666074914776501428189664302546903718688255215524546464550207645115044613109316915906705342838473736758301870535060152713596472562236115830685180153376806087033477829912421035650058489141561495662129900642945584504765452696379299383855700882090929089245125883018596986518634983901423713827595723917495938640232225876802702480463015386634432123202381717542117880877271631749430336871778782940450509347655634863824780260208650950587191028952598231534185363632770488160222617369992523132697463853632847295520100774084202296141438503355658657789060954164309507033506104535791044238396760563886185150503688113475960721027131228885550576310975327133483456338403275222378935555732965864409313784856984437095881897253115814694356622748734673687033972439979181632105430837326207579605904908692665093764300454592559290522961397409872438152112528849087312730208150386220698543573579346555474421156768902488555994282578236325075753968063033785525447305020533269870621705078828999165914448889469546399899188633038290110695447670594003803444089508456467650575115306030628788810450245603407265314427116609138794152849467849182590837437894166724251577040949516335510010693666663306756526550402760250270642677281431616959453971841595496522852221051285161499534342158981988639740579831914240732469113908531969373360906392578164350977695104362174213388991830201429181659990876907971246893283291054197560244559727076539450834016545237867717841024669952235850265299005967405087100414432404976309847982596595951142623999721622665755367221233462809178813690577984684283290505690233002083290058659114736407767141507061968932208797840041455190043373545891976160544578533440024268584090131568006185660946110396590009430557903284546888943252030618166718746907656837190904047405348050918728131270934967426399206515560490461391430624614834205346553943503690271175143421916537335457082955658026224137711219147806255606346691281267418564707475166133946757849945478335301762780053271197199782863583961644126858087627749290824637640396135424810428124981266403112193200506488182585987156048090487935049261335933356367718142366803519455089623776612735363168437630243111827694438138963746803080262324660009353720040087069725622156060749023358713760718120207982339267573354495662654382325379194857614218453168510343819068212203574807321081067183564640476208451710702908615024990377320352462344048525502777520240898816416282774493569427770391597104659692190411403539701702804550617515290952997834471089102574943641872203983373187975158714051141786102392417688975955435032462287026875969532106021050656907329533867795373223388048380357708440584498604099572806560013326841780752566847626011162511620833023831134724656804020340512985984166251713399619351974944149995083974423211038602682629643239576304849372892503574313628449803025771086283646153731391875489179018563679967070829355656860106858008960022173857840528760265295158753324004032970619810324399836799055836308267811922351070792117493083486252063215691998726724914279070678295491664540104648947996120757049286749703132250875015719682539668733279191674767992415230289949628583447883618101441668604151181573205362064886850399883885760433984784057865858892408804393759455455264967314937003076008272733901220486964505856076582205687165844742067949484866845724623012502607512434300245606462704894072602957659490684067789962325941031786719776171000077612054549617379906554469206003951058139454254164527829135107927014866801502082140790039786890200251153327535362308760104377080557963046608900540277391075841874521611096256938702050539828941432673294192356942433569174351015400218414806877777859160207987267070475855819471764715900745159154266292131125755322489618201777083180562385453954952860537956309859742043489716649786628002504189902394883546699117854827925138421795697530733280244834705168157195842729241932686623005476985242276329430792224191333964096388120954485902217690217634694433631911024328387177763582913980290505080535120695960718867981608944600714554755867450172958772264549417786811488388922791885564908362574557308435667724567879161519118824274373749839755577101949810230926070781688888203970521502752628615134187423560192591898474368471036148965347506246959121446342947465275561015575706743268957677875599137066108800110620300111420402251822772840678682961899651884696366325139120250317873788927279490962177881895589485585977572979181664311474356902746051326918894113385183912516769713386536789635704982275210696183973953781573062334377958995799832016197052797048891774909617931865165156327324183131299777478025479220940603585725453400753564501812508772936442314866862071693793148096365146139915034039868420232833463378235168563686227443838657922327647013762492530464227894225774124160073669367536576125654630388654285791208491267464525827634154395430859854083931891004978450647036162206429806410790254777554402010282918694847012567567761476926737813201997930176106710043092631405518976650135766915866158632480526231776062492976884758902765717471508834316393865784377365628720946711352048258513717402985076986065125592741930748703327128954500497491226692109285720210324081175783928274197901241643683533308148626666078355630294747670141741209611540930253224691472782012271623476397545067329664874590969268185695559843632508216204456294918701239683580220342103944055636912349773674854603356081327327621544088105472965848419608476856925210035139400590016706270835958863668317194326774862375830287920309446880086509296189195339563311885662123513763145264291713057268140329405895232844774131071244478595270668168271162071445674028120543969560764262095793462338127423099060461790122493162320254818342224975524341752644769914139238517433076341953568978456345990967257614543910868671732800692653164045470792944952634929637105991321342876886449121442309667280894306150806536769243541235170113579844282300957366636433174508872506606202428727089470773379735098834518684028881015262563074615883093502671204596344921365050707755580126531786314108222778414083634154220503473724907535258050450858496045772910983289043446503699934272184831970894427456058282843141701418321660925122246705964665794672105273967364569885750941640279590447851036846366667305941891503785115053687374813805852853554285219681906672313445416229363919811746614905601053240487596446517863843406868422810637317860609296723616484513832984267574920043016814347290921157029017425535642107790615062884543980009739049218310757998706429006328225796659334763563455453776336661885380812546747232857265761710624560067517514462852470720733564145984879969196030655631457515992325091996161679268856817514647014610792641265651609456347004345330670329395736173162399124182366443785882592733251770602204942846348521333477090504577541629906774046798659104386797369704971576422646045590439735249703098918322010819414474569831944747224881497547741780532868670098674312203853981186666243136531090995254106371536078207330006878771730995278785407348649231874230016687357325453374564762413080509905298075572760827681383858686212057314647342069275453351605169980813089285626102592953165050297503287146993831908217054099332808315968603093947312161139666008899262917037435802571300897289094258440655203414658608315216084824080957154873432845278586814876101959534371331366154546151414632236072928584027541894108579224689461782826568775438867006907909218949586029869744766019339498611284779909928827243277700507826333612266803774243213485689540135680526578312244888139327404747374960189442927113403761246980467632311150438858017506777393243615260494980437117574431357574496383050789046997580940191738725558906355429355025565110416301170911279661570200944849735470802651994356008876035470072294773548219285540034066532073406494315633256172758598627027348529837654772215049203733969944571798774963519209297806474196245344011626272599516167534700547232031048977376004644460968754829442491745038433968608876934146992977015738215845549318158641923814247692102696383896462207282375690123073727993171874507871455949264228526034430624562021158353963378994769702116722440506915368524557470796917634407123671832529027215337072862981692492369853985593603562573153913012493223923994717330061783776600306013938158992684785895577570840042914564405922975185698892338803024964649188515762516621039368039188002594491590770463776186038786579100558222134716107532034897742563929155341811541058615170636474102957211364711483522737409172647840498242165547343713126437232418115878708027323463764550061768059725095393692244516616133733548912444348557606013671506274848609076459954043049700603537917368468737757346660811896220609189189464610948109736024699728883800170387054052646273740639153651591427729782049989152317228050861283554623359018681835002468826202024092806432950339464465276676610454817340073604176261603660792562169184743668434387558817442811568552850670822625658292565107763844457307211235295883289761413674061583017567383538846788463240731358748547263919467617545450762618043641502820492873331969236471100836884746325536282877609819054901549223313618976211669857028823338121571923045168765429441939830434658469541648529906471114041651400557505428589183410337625191139282960032906733216396757365312020951380585470239667463296905121864900902987469114301174124741635270610101712401812475634077408682886026702128835596261119326464266017855471528130676175021295794895429554280175596522637186157935902188680860778879181377583140897202648348049536755039671931600568236056061175695181026263956821530277173697617662115861422208281900070988860773533109027852695662976178102043279063052084363195155913355402313014030018564714332038548269062703981451319724580331501102440670567837265166824545386633588803727325151574338294880746012213069839920535267137473150486693228461289392821313916620792568481318486199295005857621813978442174773651728423238558678601857701177548960849317248796844088423624741742523884746342500908746490799106091493076068969235149849865346766829961191924273385582657507672762767902634053015048976119697984470642620525351643251528602853367231310464195846694965128328581821720441484209370016531044202900049407292049321775032194267912050527592049926520421591545828641912185099029753232355885495566581912441370518563916580106223931391401532636412286998116853468855367735008757529927727650737585604231451315952759544578359535453903998252007736114575175890177458169280983911976948610419538078188207663210739533182439490055106812153022585854546064138064380816740128353017753657363175300248909360293554712924111962384029467835081440034340214281878916889742622835560085228563505071904964417165475730304738810860428502119369934502302349478394668029709310657105571361547998419066908165415387024814463334272889318610190313482253719854888476410530358326772419114010400369183063008539495467439471337714974493674476492970199099878911459471229810231648473178800406946911175705379301411100655726328708447449517895822317150273769412925716992789789787488820382559517468497783630922867950806697034137290680740074042574124645431961975075263017277912779434575222645051585271102027796919380428474604079699366337057813891439399499793513012284198231895264285411363622687533065006350261050693109263254190691909204771545103072977848200203248854434213111485369407125634170862714958231470969629875702236355983396604997513313492416395227275936287419297052603606693878477417831877972720241677549398032789099321250003804831431724799391848971325505222971547384246936369147962092595821476792499811199349110025022005943613137026757902752964888056199518884063452550697983933498499828476734032761571397039335091584236636335723066464195202884734962773351362816989470128149117427042583709814952531253600609466022167929540119734967239725542510291298474479410526658588190815064190607104749001483223593626479745412725085717307410957893718851819637701323329230462648435590640889606204281580146287972367109006602971843220936773319567066298826834881491590671601696805965554053725505049044573271005546394654712124527548612704378554257171267695272027242964739473200799386311906789395938081582352004779767233897971403643731931445161047013388182576233388513374376172462536138260753279696486560684912812753607121082887080997183624803249452543438446078003894226657761032314816828044896045559244412786078535600955680937623018624185058361045912068649686126084724731218941902903187191083905224887703498658532010691726564045669926582244540753161144832950814746009472855086462826331672221900360279666254446440225104354049637206712713732459607724905443576596438465091958973236216006216654829049099590035059463377968994370739771542074262282627679950102856755671566564908427299595740853165626930444402969688997427412686308252913790935966442234729423552545603315385132469449465483663510986967377814765157677181925624005911289223481909031885053880947056273588050632333209467362237488353003663126159541556441440696381652719460553716031583672188078586370627248160444251111659528091067794943777372598975354450684806395173850976902092018024364362040685269005936438508820830097777444921814298609518838587241172095355117942526959126005196427691316242458891204699693571982604982256174494867679235071151380104237755806615988957728517348748875108833614563992643829250365132688195098491639959463222333967299273696578319394628718239002236579303300139658582407859207918429934067077907708832705913996876245704361513194511550916163535648064335649444154116409649732381955593639460150929011615625046479225173725343408040174656768949446532864442249883563312434170686693257573136672629788835486687367411162783351908549070594694237337976202568634404395591342316323443711543842561571497187935284758627148513990975524540673073614704685057072703019172208411676807910502105327313611697379982212499122720278637696607032235720111939369120300216533915807492075720223703419849840256693343702000859117568552700821952634756060513630192371834889314936942189752548451517044447325631878080388318254053261567195394515481882180880223624141686809658503548245377334840675530217467585001314774401909170017195922416698774402826753428433541698250668109164923434741958526586465022196986073423412733182554672393186573549234313301220115382637827116667157096238575478533594559256196462798481060950694697331986940845796061063720745318820513027458355018481171109734070754165221381813314478608980262110845889960605660615046655786843134830747185433787763069556284966627674174553999139871787086648041543232995980469091366130276018060903400898052424742940425789689674936435840703737225841157479170444279736813784785725946575682823273601435178565061924520577760473713256344290895662847093716278480430712433343657489517078089173125250631663734148204072189168935837829083429728520525248147742112658441363906508452929762875684900741778269176082945997517977179760826740548254037687005895174560270819250825088651751655542341230232009016255139051711411395773620197474079036780511370141342214445405388489708785004407388310521702083096797974683442661624082261924917345236135010739072302912167754343046651275347408324414631917724079071963872870161969877806528856917620214662548633772255341856304003886287098637212962600788528881473091184675687638644384782029610728111825342829191408612873303831855350166352571890289657953492571929626657977138453326956677473015150429560371408424956320989680778900836334663058865943344540080074004409211208493955314825229249212223693259387205696213309555831387158518984417700167923883284450559781636290083751688063243849953768704108648932066031018427863052684021642377627044073526485307253440925586038327689602245846145533582815549380060028050533087526449098403039849435956343086035282307820560300507502222515586584801412958995679171063198695869146284652227804284749675787165466873122070837483968732198469257817912933224165283793621794954309769378608611317335260775223727334244784377633046368599309789306484430167243438029868806055216512106169449658517862269299841975255828269181731576677135962404188991306742244744754615261606606683090903061802121616842060144349378847638277593998109985002189244171409632137107645550909843139442451517769940998580915108634502085901474139415880936383962968865731594670438817393564352747365459169722205879415076758650447208175857026328263603768084600663161107110932017921101867581404530858004560735997074399149901648260616532658175473273791473519025110685527250457514844328562229060413275892861808476147362046606602374579932021894039908311651365464899406728193171210853689099349831441424727468195647540370361729335177875055473097727332766436922904945983014106542357714243250849278332366872597076772696163222722998765221336269502847654354741052716144835141294450384443552383662967957679216113464834196111312136703605571348125239851452039215615010652493604906000173296255482496330582879627587714414426246360392247778268764213365363068744167718860548466038965179136331730673247031194520900363220429911186271099629029007010782069229568431697347963222484870400409399137136095174411995924642178885828837602403737116546051251627784952005473059972165491985873536005978301086545854766068110115060133981341038274959498390796693330423096633599108119121819166858503880038718653566722766096436435983165834935626879334902063140849268594145182428029809120855965191363353434310390695784899421380966079446658166767221457082271296480051922311579522371288172258996847146032691696757270179027396100149910371652971909630879278373444810341937501620998160604723089563205151093547826000382400147987217207824417976516463949522514726588035198965759111592874120393625506264256742595744150622055777201054214878104209392154245314535595765976927639183514696549759021477910411828120464921023043715134261374507713090955835646559433361853730567458973260388132833962799802409239583679738998296713948263010209933641615974832832909215792739308970558249948666797721395150199444508984242246309005310750663934189770197557883235817358641785420423916864402526980902644000519840237981243506565019178291423778607722977457901651366671431184908238462193552678912903073436568095454220339130656748252303597128334221104428190560030218593092827894607496201225034952475511856614944695312790509942258365428739250328952842355622841198093992086251279780815923010285513697519028196353627076560407879353241387751413314549879159167660054438317032275146399476913161200846256954496714844972175460194716722217957973625750247040272089374987263900177795025983710758754154679850854039727402134014028263189089380311231108580295049007498913235152087531556429063613328027299734586275621789864475953357296188959710065130297933879859985218272604800501645155760199545528021673700104542761447872837395464709457996940763676538724121834817384096404713388232307576757876406282854697584061992246276331314029252284685845167297367169941439516670085960023854244268960411231411157134859945077840799294389634858707057430454902749043214485135356484677520928446159636434577451269995556808595602721299605212625046058631117584562401875971604193528087913929002131966318844195960152262810415614836946707618757097693479264896161389551425750712811789758483477263366095454413699351391700413936545152779356930396923391073886487882612108258901263270603953013059493930001961885855971574321903667475072925922320960686081176546108071844760643442914614904103448460436054815963983587588154741269772111309330833568690648676530608709445812922095214136105767625662690795409917262011602953264922893364174628955393132558359031271173153593020173551488357634393052608841094372196053660632814774825739761540029923219232482403227656053686486398743004162222729798632663635938479071917111251625240092537918143169599264192562972453657637661639010826976052274748023508511263898972659547724896310799066001634003779798934884182399460725204884561400198424694887780947804456898812320533704735466409681521646214649114459691457140768305114179073850541482188155047093637903974370462449814464436042003793839464616294094594338263968759543811192149471237413634087084814642841050799619410457752236935258716954171241118831192100647661558044135827878083928112817229844838408756785838058710385486073573223687112848808841662256040340157245406047565287323042087564015323094064667314744697134882792790674958684549550341478846999278513370147133398499512892895709979488030220953286863519387800402280143066422770989310123597443484085624032256422840833238193109307655219161893045069844974863923536029352161624632081598047998135016964351552186125343290944651151120428900245748253632601333782445124911690441841872814822974501308336204073636617618999092669557066865039420646729560176748223152428712700380674421298520350810628537506920324749380116658666109775894094194545250790128320616574524663518950463578921378218565413370712838731014641226625686405776314373983550741880239911923485687983532169060469752241739571626666982989739592474053745682716048069164905172535077330498690321061262011425696870735342449958625846355329154373122610788285907543235029796259506319278369060707371592971441029242031737270124941595906696174628537158700315413168782543281727461197070368088384913664132012100285007899484595541588067489170954163618328178060152352377309083814050062865057484443828005894209075601079681340176280308483982676963929797621608645390197800897139815464498423312287630403391741790271007020068566296395038324572901711163295502988636987964674229089895681805409906638361863122040167063336012086974796807778852838921803481028792396762237924878058207811268849524328590531905113555566444284951210069838238995686159879305991456825774481332736882029080540173099387601400594151872775603185577471980295629509608059335625426322436051015312365748189494974533389169857504855912113600649556911070107264442494439659662123892922803626407786052802160568624201728419350444078532957927784601164435316443582669037140698579112521193083607494840447858148855840906289649328312333258668735012657324635211317686377214346199616695738432047252333781195954146527135726866829810227873659642397436873004016334030845633576619747121794200862939145643211645544646106323751416743475203672108947800574996186367159741058852973511732024891381542136383708711343043395473270320867283150079810442826524111673272618462375507007108354052208545667736877116224394251080219762218754353425831859831331085153515884543417663168419296068207611615805981769712709082022434897386026347459775922762334309340068976969743498136818231730132017090511853301236509074851832695852088256896748571213157749133873813758582141023943801880537384104877690153181079783044999958633655918929138427734055554283935945142732228775347335889031129345865489274720556198902430261985298721359233755732329832689055838324053373609161752057901089833352721351890802552701284550896581733095309031226939220819692700658695996570010501374737818145650356815825469298647904688276655126871084071870978641693537927657098289534632844752162724341381378651654863095969975321004358002464272366064717365217701552250410019229206776479065822779400114027131925282466270611415328979084472034815333348149422716686833162438790040030278635346040000279894166665697309506805928280307746356580475100022859585732612204516113956959301415632803887805109811792402693553008183588694950007673941266529227137226669141578499568719417179720202888183370884754387080633655782191319933605176919507331924809354418074852839097535402759906177983550106415619701332719052431407907777047754240191973290858140522561791691973323039625308182290575369470842492585614640868910013386114618037491380115931281748021740192959203300588107035766171769556811749578144942983871312687284022686052800118859620731586731497398192749809285407093145728891378350859050337259521676298367501357630811802558082080638463787954119181930768501137300105647526685757273887384584995453213143031297410408774671039717507278819462375424181265226614653911867476065047095785728064140412507647801506183541746467472246466769363127663133580599693652947024948881059976196033366883158937349487674817534368514658600444289176723615573417884242576170162093236187889079938550007438209758554382293487139763104996157875753436497141135900582230172417889085239567173987428959922412692712567813447533741606013264173227575088542956762956327369316038303464264781966335945851970441394967120992242079749109261052240117868290466234473980718244704832051311850246568246978711554485778256200868489602018168211543809219656565111591554165747269436648060149950373020602934063955208401038849573037617244951402320846746952796533192094983523199874809967269499485000033198461922505836657002198229024829898117153676899084103845918886988661572580588772898886699964976276587943236600786871627306818187173765485181167340205246347786195411331774627176561416133300076741378450358790197358320678612852926740595814305211312183073752098585871916509246752606202287874916396818144730707006810184835564867116108009306769455114717348877388292362616562979643011752471592027801930469085388705051405956378436587283860657012194142581261885617904495942894927399457223608754263848706797762711992854188688074070046906072836339920548111120436110314608789601423507306544713932944844862613726726824217364262657833380471272588842786004878353651241983237421934901464751588969703539032952354923464015465358966202196886854181298452232981569527929507879491244054332875364844767610097414028974846422333533554530206912869342204764220665044371359467395076296360319134156816986761774969641403788358421385846320336568269996883187322513378725799216395659690471758911311564691158637493862267249047808851773532623870155268514473907943460099240600646420540302175962281544519849228459081111092101623083611076545051211885619377394548944999204118403917773545902659328222012155368365602958201502846395939952896846017093752040700468394024814627593827776726902385417895431329115795159249895968783313305214443056622806937731690635815900229209354008665718656821823760111913604971079841340250840261526126192011733667073120320930507156466457543006477094120091559617090851227103376289210258733093019212001261177207243556428812308023050724390860299729931722566547618848627017920155027715196143246061851380040337300879383038997681338830749383595640461991274459237125938913355981973548359551826045701380595339766578104162868922872516705326932749480139315413285981065334048806043039043971190084149198537980993219038645945467363316456155925314377546005245041004452870224343473302888859322598943719442805033651575255022671132816173761949859220431873506816827721586369908520057990046997956135506803533467193600795720351491809091195740590700038193278951200766679494441583724834567387138033831229702906191292955061355729969866108188450834526672347478019125260917907847597094094938527184009241267839654284950934932268099526230341108018701461987848370541473419375069649686066729562680108871825163663638719862590231500816567549357907400171656738986938214036841275289183237625662212389663152773854923727191203362589691331677788596239394863450684650314321561902098814608640931518902054707285865061696527120717010459103278662175053121515423903139858633356478746732794623429307907215885395155644826414506869988942730587803149840176338024844242990867381577182803672949314408252788952222042203420473815920337679078288403660127844210390246959792268957372165127026365301604010312554646319739300165220878958977901195657593631831762398490621255808582639304225459821428668469047578910135150043164187569815586773011988983558470917505826559469199489388030752307394095571028831420776329203395488216597851637927058402340001620213443990045708044503436640807537120651793768440740665793056662555750460054723151854415291969828490661137565481271114796387322901190647271364643238996396916324593387657261177412047431850982059940537168915417699859036095949517277618318782229194192712219265185899213503467707497890024606109710752651380616078092807480886898542179393291333215684647003737609011367804845747500595242001446562120348778044005835319540760394453487519675649252784408384425002053371492937908184813709400386169379576568606862067409166841849895615098813138926475499592184232020304252337292612868942671975395624779128757591162399109972520872879621394193324346080864696642170536623999598097862348097603382036947482817188749087064893731425284953153376645691733723647227018835337194544908688327070001894345684635207811908049071777075778994147176754516468025984973022508753908738845815399133166440634237959831401544515873993818331596515180486515971277756428312870031729560979687376895422003989208878178106683087279604745605888025902768274865074156682756340281244336930940436526887997563358352558895478942715723026242222380045091745295782538430953187587040522076600754155475558505965724740010960729408952006157546048500032533990862049903655502123400035420992754325245279239770914594738321068355225301203123079612204425591720661525611417985629409364341007252999329433788986746216754613288960291848017640211051862100271357245550110500845872055105128359264270249999306624679092731696039542961820436970232531865587521733372106370454720672759495325845684883677643226871289261104760975394714957935531412716279853293278749254717548175138928553532389376193374108419795831481248679561715484044638927094252593267905905746366005774597847653347670480126188656877630622750635203388429590301593381280118298042999211378595465997876150085767907147749085748982985184072895405731622250432928170627478557210295400766564431872796142600717627021507747794643712504761403719669871651956136039421505835038394115712180066916722448675292673842973012404304759078728056689581666117725728016383255688563445085478401711111599041914353873374501118426349069582571896424984932280574875713200606177444853429235168677595889866032587656002856482727816077493324849107387776851947632662601291396016022043083289949629142079942729395480165051818220740549609887907903050736512894933082307078344711212469933541938281899376387309334911078196593453272847771422281392890948046618287714522555068580293863424009092387998675394999215109554214549768213835670768753263223011177725270773950686397304194794949908034103112455708043640966921623462007158913644879505652522030588274485794940938543943655531398002667370852860727089669316173198806345822118194493547708222941583992753421045118436073160683785910775303475019944655750601983785919214501680717227115750769222761566460265427520357467535142989643155907533496614522984738901530388594789758728278311871397674090719088106765296663241295632112727172667053367837991337470461414611179273030455479988599205615220036157835271997732901891537413614084874200442492697720866795779901177633067918926441642355037235802433404902275193878609489791754015325337548604334464952623471582206830827435290511550928343594048692153814913036559118240140915752863774052693753042134195237599704721931362011227804683375499542467843038917580098127381832821829084808947376581396680849408864902304620311602010578351911382164870739327449208729096755060495298871476261975267165843064035672574171537577377244654394849488374285395414122372551177269772255561412992001699149048540161465852999256236923912946072730406952881805013701378945319992993856887577271380877251081072571815627601670955014017269085004172542665537962066810786507350831793599286636188203051515022553250200654574491986197759629455393215950220378326349042875229107443323548292239656598767332897895332170810393023448780063915250955591621280887030661719141265532209900004163421539407245964625025156169382487491903817911490131064911882447009133486817094389253108409510399642980655064145384414943626493488394158685429110119785121465903305100018677271216510091366389721617933296109677590999772870617561266045254801016740789984065411854265600119463004387787666784207223521628126020597287938060434226538092784159366231465598210921556649120676118753440877147067696451696237305217929084718264461844456477335521541298482040748491650902651552940976482691382103616130421453343357936874379371365787839782100590125130970169461027393425162554852498599643572391333099686177652171129513560421837596471459066270265376998354552215131917116362353838310000543103211067652798253966252918588929103052277734040137988431917016636705494249693287163102903772227414144391339121704985484066727165645299453482922447263122645553251410077430687367409702942723034567304806669397521481309194329371265525884161350448123262473412256547136489590762711201145209935840402805135828955852224951140306710383242014496634639861935057780849571978649816139605400225995472370359009049151309443368824051431891291740169587039422026026904213626414848220808397699588918645019300674794302630500709816988760730167960790564124122254360404641212689517297655178915579714922372884264443283525626107680682023267018667840017550726222012728349835438981878478069242968372061300797447884145990220367052865433201077260522357258614269853273747591051865737760896961021784006607610350383735039424029658711387923207895105395063946005707392477735653443013600192846564918119687596678892089404471589980997545366239639546172806152222566788585144782130017957213809303262558245915150358923533020177442691315850732068241412940984178167828291993005336863737289256356867544297061725472324999408326081898625844861648644112456845211598127326085286308420619646803765386985508820225665141606195334788930678552207007700528619286992691582214710111337961998361728912863503525193481341661327567289539939455424290997702810895855715147299244618201028696129559774080708472676867881121342894871591014540811883620907316457258263685715263462110978875490174914067155042566462890396245692959686774216524370139364635026884657445726594080440211561770037542578775817183693216552013621557977216656750097478336963971200620838039328718815297138922757790729983486072231977585437986707669069231275102139784697788452168771078137826138463808526656132003835339888416439288536522169302775900651948786477995481798311886383284119986852117086971222973753874098289663207095469053575060916287304529209182082039034256137677828346270560687497770421556606007118331317887298044459530459215991137906822203406244153931275663969957045927573429540372665959720134977863229530000094361568968246211715877176345108280745114186421053108956216709068773857715157914415570046902477633239818096567744945626039507311198472998517011683018944428045770152933842823696947321329861778753675081554473411380158837446709380107616756887347806928991340699831225644282952999269648398037203120381755260910714488796544347365134456372399420134198394606471228480021485921529752560694893680828795217154189811561052113880827467512574898355516389675426611441569513966184563326092888543052155875584994556481102152182764701884452484341174848179621652015072989203268200298045719102032914302134494242585777492013010209811701726746031530385872299491983904521667271444539164760876668425145031415214617740628391601099376954672254607129394894377284033095276394049517558992243450083679994663333176207231045127646541725962028725624510710660701882471167501135520676794786011304343748426078006776503550435584297931480759565674820077349897174907691721666426632081053026990181924057691753529684195625086584533907166963764687862386436545636250229315728276169655418716607933947068676922837507629124617318162688810294799299670770891570585904469935970108486364597895667878228076763064862314838432360345929848868032792744758406417081950765819073509278137604587256888628956694991066121955658829832416910288440739509856535614282989322610080281266184769518419517249372265379694322793808599601198889513166277007642486405303152717161651136043321013594962085301328485311060379999616366958374557936358079024583278462836304356972569604452223623536162879853381652565062315038496915448221748339107502423493008263766827487730038496049085362181258233224507506237040164994214669250963740554640871157068830547493721562142420824741047927159543231657660770533206181933718302196936279505847663115815852841545061053417746088519074437357744050127222742609168192163706347339338072750921641620018636445200787913717031147576166651709071399489175032535796140726630580795153721078669826813364247675572061620419596411853615674102150825362979067092319395749332761674440904402522534049641713081260622885265124345863390722562280638425597331192553955356957454077899849491872315705182322474037068874307750710498484017553123430640333124859567426130808749912060897731119018714294174930763888109263861718921108809741318041107893772837483037947997539741718855227022770215590929437837582494480563382481803090068375535523737788529152205905718224485644982652688728529185890526959100049825983491336721111384488231569840866686524740157639560487114344973755665482832928940971497704177138666570185864531626454696011010635817960665775914866528447203820568919668167396850716223286459866436169756738322818546288579322829992696088313715994897034372527021381560067149888845266140353448199257062466159111673943268958719739573132116524479647623321244753778009396031794021677601012106544909026871328621035363939229934279188925115778342131132087665177172726823508965820971197035783560825486891164576248022930415767496282044119433019168458973086487891774063799387719926388899511088606716523307028339365410897401847417730524178657765832443559041601496677945296411929085501070504345089771538610764277302558033801848324202954569317075557637642663499318431671289823758277494883801186102958945714452537975117806144698798237942660201610696133264753278050166182470326276437048426378799337900701806127669443362254515673286165106626437232188618290170002132999453942767233984212027434037902124107986050056867366868019508836899602763418874802338847142179153570077485854297937038795103525997068220004725330302732655182327151144058499321020098720448365089502924861976277063158740645404936825159915978049384166628204777237716315131150943517426228167976269542813770773487357618262195453600389128682213473826970550331579657630884614512525891855626989279344056155733707466546778396513291401394264548507828043600347737426144605829477048003937863137021495803769420523306694256460608071054833268018798945278490244729176027499059002185038584260049419455841138439912539821542748220723462199399139757380068492821984782980821045526476449263951449008704411734537266585280248453936865266627403839037873438166583272715266807322502832413964715531576076238481247455406027368233583562377875206302690731713261039017214677973010355462876504520100261179611286598254033967545818043047984432313434035330724208295230019659974559315102790989387888283129263122777455359160016663382774720222922131000070632185688456753731562331124500050807325514974452267819656146741243449612381337718734598883748297769715441430755421911502861290572277069311366126133581419025159359793256579112870678806249392454454907604809363312919564264407473774500255733163961887117681478794306920278749949054073772797974026888183617687667726976794589515073066929491372064276676551094128759126859836867685734605198339257217176579712511333714368980976719922209698893459696529161932810747964267292804918711979914074256235447801617881453604656029524310776079767514578106253311174959392430114281799982619276397168530757527237911792556045367002043071833710624550169237718644217733797456454270126012123349862131754416336274688624452383812359856218164530520144260333553284450016836006896827368464249349876486457752973415326119443410745489213091891897767366441666169095830040524427578723352633347108737775456797670101881222193641713345386194659889526291589409329431747837678051263391694507480519985720337065671165074849251395520781713743900603834437799982230987450208083603415337210453672334092237433231279923578844182308823895056550223306239842132946052892104798657774401516767599504212747243816974631666376928592675744949119316341034963055118970489823285069489822299715288616626052258363473531116484310431639683747384388420707113695229897904833539924274698827543269190926437984930811173988581194395735521574864828742032705859368774532843906107213254808821533895603543373008689579578239740177500503791273354130058194773947075687495867107388336384370193821668992628794226419537856769657262894220947057696975747248169453975230594583982592999486552074791336362043412266654721790474557447191357402584588695054794636078694458073626023530218617978271848162351213806192043171578878884284806881137626330914685531690901978518450526034410036851420002149266086643041641420551329307784249232457579515029939909409496220211135986451580631864367741811745667815585063757119548020290354629371386001963101339964588442820399923922096837264489572973103256442008110077339524107309085200589956132849467687352929317670424886017033437347387743212035954337992742071984134825092615399038216608895540037111857212061757787986910808183654771339281060409026191032136598814123779571269017752013189980045940112855220965170308152858104607276527390861630535987876616058371931413617505870716301984528707610562893851334246101059415357509044773372373486914082057918291114349306351829827634748437539255480217772449361790427337026127183500018725491284366309087665754615773175340046751961741827692341835341696015055232257110952632113027431833952462044899683949995550386328621197903596912293333385621287416050765990904082497306364281874780725522963193788824868710752928741595907160609832859255739890846356667225262310046132294501075364564102620777201107111993510097995585888587304143390231570272076112594900524822494478627211557810568323248701826221490455702936971561564804571780767091725459259327517911642783305814089458194660508534257827328991451004103434773641159953192192160278512810617198971577525609818858377956212302594474727032252314308763145318362940342001082267550664706327921457987396194924271837498408064472353158988617575674335099730542011619032309661366753023415967207676849751276997992051577820671961755670913675748291753917515861224416620916899600436676822973240323141201517640564180044853525966892835439649354676266430954005250591716800601090463961012270348349502118343679605844048541528303727372854741545137965412616167629160202046379036656828802240957752488821244517286613610084786095466387881093641073457898823421730950626948470857022755715663647653927768516366952917113915103035193791687655573118098885101582198864627160469106862373321201564562626303821826569975404586749213826432533131859006307134774203261975007769934730814303254423604140934423105554696392008905139700189181366303057973782233052154480943425042131949311035930392455639659767706811165462970888326477880549800551798353806417155961734069990216300837148728210197580053961315519720571460835614006207203493326024788145607278350730921370711297914163611138019794125460451546546113418580674919987404748034290278387181500058139463266713246780915941139973744473603869607632043235582836488198911218410307932014235544868626564028358442131924329779534809551191163420829078294610359441836361407317367026934381252505419672432845409181561838698575716080365585993114555003624189446862583282992179408115436987995894846543395935596438353535183324318461662838469196513299600680504798514384532133984597118256649759000257662209285968482101616187700489114523449039143580824363894513378471413389937889859245911898231155531077355086417459886524347185980302794737320206163050005295401704502543102731741123241127728145762156933356405210679143816319489209804467195557722536339578543556913292905354309447487201382928397004913217158875453075494686525788533056730997999779613582900215825149509950698574134633619043204602297023631416699185131001449527508473549689479207698203535592430129706156940412911351529302354396714899748272079181072855713903489293904350815619231269378339364251931793272152190007050362939118100004760920615782073529704124211474687432121453231881384570674098140141872509256762392402036683005309990633528662802531498837663996520709583609849982016771588619583548821968949509073730762112559147729222107282995693414764074311776046359214530188354356819377931916121059163960535633990156848744277614818134115189320985206769443966205551082789144362410331742897908643393366605868365408022240990587623880485778207760006259470364886058806617328165218102510076039097433494652151091649751198674945093816691629778240248980751245990909507193548826726232845702124995000570291072965768379719973789399578606394501057384181581534652959372171434552215110661897348521130558201193082447741411336845994394277276332896390015816274889083035971313504527104229863255847268580271974642468435188664120055512113199166954959162797391328833600379437243803328579064519679998977589849210045899256162160246183759165766716107597020405348219018540971236444878035109002777756027710200872097503675425401284360496064633662210173644840698356382841143301994527244722663842253474265200787263791366115411533454854608000788354606549953149977768511176204648355349698185512889773606758750486919705938929354693873352477512042651472488930682469240965811624380067033720560510001328356295841301042886099470298569232523957510678426577658853965723928364266773469398365388256705104908690989058071701386423636371152426424604229448750762142344795937040434905026758732740827622009204678041992651070153366360049136331897708563374407241460535601563106324997266748446296450511198029300521576223656189223107998836093007171610590163011140601554241184061518344771138655059829349432984427080810921877142386513696613912967096643932266325949324143035847536127500005009854877013616502511032445739265441186581712338986280868118287277410296270411607040939763525464212240400495021113035497946515158121185138970936924156150599680805462575577576462185774113472780048859427767750111010599100322130491286033317920978161618779860177992077156529361074518326800137652691097731110969060466438892596245993878233076316377704520824246752713744759065871130813883656288351885282229028669158876853099720747861974745598151064064750903534224120379456846805439458610937652349136307088893754522914024838803655251290797748208619761815468167064104625253847863556780327321816311753388190379675349600647303032590804533028754944077096974423147238796800066262970535808360656193555500758844664227871353970880388720513496140265918632808063459661672890487179763242940643142359801687516479659979382313990965452851529599816736447709406684591565765086139087708338521521351563841570782895943489653099200134394833278847038890293624141913416416037581388676316085734945221130102991163686746807313875302119158661582090872401525437764067053597594331287145326531672123600769565488360358771562401798795289339630721454789926992657278672101956859669265996373344195132241343817713752794837344893335299448791872907639157676679638664749335741471594123303667094683396660157924520466522079134088196121278052704604969569154942085567060695377286510974966705927111769849990970864975011441530330174502238600362495419832985647492675456603512270882294007853185669513662314608768793245432693671898053072885285305484196297165847511266535535221796197003253745710075941788354001457126955695711246821783074680984710296987743835387079994151673079352539950415512126774019270981903282492228935885243971356631586899331550456827409977762601401910771353692465751408964923562487238652986847392283791717070687478168121381562557957869162176341269453777078353218861143156674067104127470752637210681462105030011867211960393528062778151149771317412817405062581209463815642518705422872962027297415370828424474369597564157175962810715418827875543990905800653507991645993627509575619661379495774179671096686679355041372122797436521638911781459169456959136756755915143063000099453342477000247293843566489059974138151951097935914527700607777295480220809814582078482698890378479363400693872550777721079903302259649537621350217379121800858057606786588606036586857486953864254230282633923933585335714486399462350996414222919322284865544696762014216870453202969182500538889915326487692779402259078778542025621125031298742869987239075382348729698721148898505523182017853942162123163266665843333591694548257213497423721273583800098981036164719217300018255892817723551235833434500739671392305299417431038436275841308645791550272891881068936942635071432733690904522245037073940895311031365884049147112892942645583018070578679015139526065694140939078556203998097849441497215990944218783048867030734620562985739099071560017302530420921239731958705381792759444752103405335822588240616488898710248777844525173001683135867531966994889193171906284135029271396370361056935082805488207666981605177947024425492567587564393993678589231596221286014557637420772334860301225765560842740853264919242160508965186516585113985691791278954225249474365703572372878575785308310885942514027852276883721276139960726789197345214561978097551481491543789355735561970331634767957707547981639599840065876118351295994221012173345929144092976039253320203341265613179429331786819098749854128232474057363568747025850670631571477920793966189883309583894268527813639802537186077262764627596069186289434090522315377270084264882384587462758454667648409422335585247835478646593986177829786936108430689615855435865992741909361072258003175997089477476716633190719714549293778773622860207094302158127974755970768613283762059868197645508146467505984513020194942435587478476801638273652910736116268797181018327684929903233866421059097823151159531463653103709231400878531942072914766463570149155541936882738754263268902826251719802221585986164622456150067880984170717987842802987289762461962583237025715822987528952115137162217997181320616539923060519678020245980319861362346020151884331797748030477339362711207215315466133001429324191080402526799884738823866834100392441646645052145492458704035326847314244482113617386900740656719618600183093506456222641735938740970608025564866991003589133776345296025213425596838600585251433175621332338389920462992651213564696353922239316957955837670913455651337882317393595444888592022087018392317603228276976139464004106890420401202366251672835240990577183644847591679558622054125404775062374123486892503726392349133167773739830688891855583793622806406864519479546907950073894155028020383335628450176948084543847070609583220212274869387184384886662412239039572506538061904468496973362982551410156585303846854093236934100495128908903902592956042263132721198404920511329472654632944630353084596366178742946908221490976138214832677448391663391272026240238269594714505864453001420985071595252663056373053651725884364263518243072280825760086373737725224273889619998968010633880551398900540857703156973322913306857459931375135159742411012495308598195805366142886007546551694743533490128140261257622449764036575875160807710770901557057774729992022124809075951291943225719539948614721972448075513659125934724184416533622125689647442233594965357645380755963753704959627930500976377189549009655725250929022551136263281038883094794095507550388904930649317260517742525008803951723376452627913314135530485136118322303126213504610607509899879165800139454095812254644245912518352859638639013767137069130749977231054112908792100894698018491494543347600506727577028481106868105636494010835177540511311221858836774546389911150003751403460616754057259898111128346376619653034071459037441644686652449850058801719698238964350005029346911621646681529688349486437395280301329905028036687109065882992531309375627184227998493677677192473804191214948153951824326517615344914713282783092369951079496667137009434139972197201115126036747096424330738278944397986595428355707560096340416347944384612169508390656680067488584029883621518416578453617737486514589833808391452544821687102085534459389863107216739714274302661736910936571139041140154958406602560908796260012664211349647810874575352712816118810700155288874563135218568376046344444337146109202021971778031827971829396953034407068410578309137518629932102515899040151084054863921751495794251968781615438638564080209351995777056117804294147583802162423534777316426177201155200494425625800923928873235460337929149968817533284732725494299480854784118445452933819617185940398792439709050865739876899929612143682520837975258946246903114861754636942477548145898456428205435602313278979483548349105651232618809029233630963043977009602233573052641365915280742390732297740556566057088585707836198111168169367404220908169354275833361163853141690857498622286318399957647235552318622947589299261215896923513947537469869244756445033448648719706065294250775441785595652546972971595844499552799257931445354942093732188166926082470956208023083688566639026313323284546375928034804055159010570203944869175333673541489564096702293447584952759715040299513996485338021390680469132499464844058232387292200287635516541069609693888360271312426127794590915322504703962898501688943766537866687401138487616701078083094359143011387789314128243650512831535681442751172489207117519115353073157614070778502737727565396737211037437693988281221895772791739646327410890927465875258787106275085195574758193844938431496283221993725409220377620580492196364326289561087683971645751615282393962243200025124503936045901621154641768936051456437703788680830414807988672810711082603545979787476673220207656050339205655499920924201582724629935632010321835386025004103605927300625765859453487431263432244671624630238437413565394146955184262900020210567148117114152836237791373437994191700501854930432516017292971632992127134499074853260784086875937181949714910788158701804236123005159864525720990966230507591114200811231087484488964667182621925832245280707298612035205937203492273643063837447092986313044500133251615447079109124125937275294510900254754727410559883573321400545165208796411689686628642509833614335365181453335752977861014028713187901454793876675535670184255347046681237235986920098834213319982182056381603496844466555590871213712192919025075908615044952641220950588040735566776750090974438411673303761744047602866774149612744539101365867860629962346342307892426421760695680982546256640856495329078530095001531017809894425225584856194210546347689555447778189640856645893259658685369406340571380508648934641653654944502019049351471000846359988163528914906760681328773299892070038086806277424282317474848159508622447622480618459464415878191798956469559512405406205236729205417672245643213727210674334769654988862700977200951612403256864695452793748588650828273972519013067938482049651274785310759286896013558867351550879714623423930059475771356524137168830831322797167791842910633177742137185927145880893308539357176355842294014985712261676902818735555485377580806354596128052314790335551286200852649077432719858310659328306382523202790682071488654962543382189968329337692717242371384244832688543271283417956650878952548570578967058914396798703976234277810776873321204484201594573227723190444541767597251956086153610359030801847619631061998988393350920689043688351671558838699227401116708004389618877867013324104358267590915018037579418953940919232070615714059853788419966273490311437339483766664779867916712936671483078464877384411813119904086297661812493461874266152720404188855242125482882315994486322363534339794620481445253845055541605473478107570695823761942632541477601640472906256085029648811059539383500308193280350097059983512270162575346278911999211764002966489904043087830647377967121629764148837801676622202867863898777903734429068995063252831989948187085031881253418199626750465688270718945517064931295966862814960248449369164327822279647692056329345815654453350900584638208001278727279590027900593796277938334585237696891627521757469197327782173406529274108885348966839281236529215322915116892336316797280506973953444823057941608238642516259404850941854049982320268273818331046260538730263145040071063850456021961463160132821945315519136651798641881758430494685589364818418496770724907454662633303138332858086712052540680230355728128752673332565713272915955410298366821893415538518072941837639876396685625872919809939981557106297135929504269071894602839490688418857083162998987636703601511279636677176530786001456737695477814425186883484090746294257030005089466292631580882634812160733792778820178423359240907002789490173754136116679657382739535310551916295886059194509540859182481721076256032381599888135185037781700523491981017511364117877373639377525859922492960913646721888918448036150546794737074552056742932349399437879353307510244452700518780574085164729924305322291220758359826229076394430519924311031171128935359612477216261518637961926133994208388808851206435931761992012678720915333261864963260208541460538834425694645797205707843020242306561647494827884487095053784221296621667684275358318845871968689473945402726908520171075556537716825756118569993615241909287013282154648335301895612030584248897438230478295863522747261167666295019111359532844505209757896872993529507279175265683149364505050432078316125176671797029315430236098197904645335946824565492324884240756439001770604267532724579924137296510045504829514335450587036339007584752709637665988860068868023369350548222045729332718846753280463338416286793411235235594726652439709967317001786219060278654902100414073995368079188612553671377740150541782216999954391749299978380223231865035031683361295185560133535933117275616483847578776732996371684475973853426844191106346630689604143999852424166842357698828854509011772182444444151862801930161135962565271690619929396815326142827652484939842571291716889034382147415152387708095117576424388741593362617771689336927025643832081873022883669883037924823204453397443788883974327236537251615671408378339787123618039028361605481119461508326163871750683262095556059084767333699289902853979835347959953022779672595154941982354415917179101485305060274521582803940456042839052684061098707423569596768680165157702755317858793882599880454624256938321102322556726630362897623276334402936610833098798855115751525850733152048023607073943817859218367211630316150249664426317788945751986807746864872504190181950399174152194107621169748147893402300657042231125282738371398891685946405155139849445812747923870777625853886855138378782381346984921701407757519283073200529797286380047350306710142206829970994106318245936827572250678574421738872779144388047292684043853909833910229175560642162151950089940441924892779673129785491532029276979542109902994998907574850438331765656075015254361297335887155496122967498008026329331594962001749088606854943499953751941408378573847352602149684733160497448616718614983284871257970454610623953780459151690312147344621262217551398187998836485707704106183139414766792939877340038495932620019936679213389869552307510720853328930775861945414456212179498793653466170874618278435269141419378302604015022310097474507646068592180017436388407515943821916183327037180400188227691751726362095391247280532734272661175066620872943026654606746237389158667062807086311222936280000670208347666795929413112370195280869833398856219435962584522175184433951297314360812728974713501819218590143830087124549061367821513802113238959191233780682673370349161262892811685508356445060023970009829787438767823666900957498654578081051490141059225821890412826382546668194523495558531077408088831320887621345959379708773970281373902373157693413001167054973521180616333614431972454832696509065525073049740801564342223310060567903660342108571998670491538121646798129417367449801224828522885738860049652413806072374851270587825628954491888844037411635123400919945615750143680027970109077262110192295354681478819542933461171355920394468741607558758386410484293574771471455242316224091161215038702747061327761422358147829023684933981042330966828172823489419312066905178262385546343011257418682321950125275616027391504488873682338216802342201358484351752179999652626897098454716397278671714928621114084625755469568637915643541785619706569488484834974336954825630791250864013103673059353487332008228459978023920423405693394764125961171813632599431930890446100148606588267343931410014573867968674341035676023758792855873517165824752682150427664752386825910519013376252769253851611767320734471332061231996756476091648633505223499604492400250372397793822945239844029184716696886627226785952774779316904995033199733893630099711232269885475768418102292004170488960903509028267838142221125726103460630687783215174001200678720465527592995494307764162614016453296983855538404057126504145714254975604059386545657048118515608731358921061309223400146057265135619305615733715650494562335369562115253282805054070875322848810738497844757393735759741883404022709424044683089480252613431968070602014557137070387821268554918114194499519785489504129195214786622232276626185887556173503266692488230952432768643288526107325100689430085022611689063334229397726724638773306356344870322195876630289901763991428806572779641487603091330026365174869426791020460104937430354766905855566681672100819027950132739001566898710733998245944522340097930060473464511668792525816785129140889156968755276233278304881119875741648184263866868208740991786253454071859777330312586066195516840715524190047415555558839196787230976855263854076136372572558525178882685628807662404429651300633794519046502161847661811876411307605438934286502810427783668078223758666359840928174641684805138894170793748584974383892848920733061775642831225312753487128900839212009494775847010874569239511989675198829992011980500075782692130758245525504502283953081725823343846389636636542075797458080176722525034505967556967217321390062596431014087071196904590582948483511233408491698077267073981118198903785508511191227856171006555174501354458539736986810333829009337205487747005763783948683981621990747577604124093502436694928140042478413176275564544158539555821384504061184972784827505289950783675645277022805601128829017399513263196106471054455192606834991733604990928514589481588662698392593195981139598262622221711235941264937918197145248492788214283612393494679982225276745656272348515680626565161589202083800497056279998353070985532018330042929063331708079510732666579866957472870120605168074645476198413832968433593100205280083890131761741269033739024256929165745813331316893352275992428738665499215078120656834414034482898047437171282249367905231433043552454644285465553440157874913557215017288698082785740886813720318686542843182550412417325799148076918868771713951870647400246543846055110174905487722820251950516785160353986482077011474094925736486421870943971968823754245168607991613062156608019676279640864094893093777101656226325615908193483015857679220217211288617781652631233470939464983438908477339172775475433616521592272419436616776538489487114475098106485894302306156256713941151041273580824765198515726209977329498757784183076284821379121730885729931651342224800729674445309934033709808465995536730996243076135529945870098434048067236870999535750665316403035543638595753350073507448122158634929089004051249983185655778453646099185018823868194652411441015283049103245275255682847034088579266668622677500805823468877159614760502132386337003073581885691790838784933184526014517385680486247002123677821978514294480423461446733253964139993954637180294430626321050138692760085696020907535530689858777577106703431584796694362541784569755054183501575205345556665713722424794941600923547969697730829157585893581265832055687634313054657869508706681191022862106955866190672734174505595975842727364118830561915679846873894550961158323778430996739035039547370986761448837225933791121778442767512774139338796969697266654662497819162898971786908572983268625365851221369875627983631748771523103119731952956709994216529051289811678008478097229785079008168153428831418969880840773709278424331174023006499633944275897735054564643215445881433512504449244910047339124368247638926123413062351376722267700572408070448893180163181313556390790287338742453420914988606259409630561801095265500933899139089787625766506422806623814181365946020529436285538493838844614366005406610771869985990751850679762581871511283704223189177848286629428150903954623348857419948828480077902267108902403184815018134161315273961406454318908304800763942709952975074118518483867653268369024557771392785063535500876587067525027809531183063890205638572207791506365434169614147340198771341104705522535611359332905772857412685007167006887877148921122204734640675422562138983733285350478718439315763503356761894493111707980735127547978202221805553370088508058784443569257879906340576819828382669315654112840451371766472577293466241641200058411551679000097877502807130988552029305038002653327026199249744489453946159184768819000096659029002367220367711008959491905950102134967581938492025419046499395241905980127562168764610244139966203188112208850280791115646695575366227043822252128282325882477508239419134942952635717294653154550773094627676079338786772470720343478690301880879101797719418996256859228342989941034271929137604287077506851901843910355195212968575774109973214491900107511635427256965433248410356673140503514044482901722115845367629546748319461167228554936333905024404147466666110017000273092751100094712517856223792217109145064688291399475279347299202543031390784470419742592381895244699348535379808088117677835935185687694290210251015152052418775507530714570735772399183756149362258209137382349730464135469736157811715358600577802222593379475852418554012045139836940416244518303273525644079465685736624020566260856600836872889177294421618409177874919887200681446563579022550811023961071991388213589736555605307884377703411996145450828074612246338126496744106204277083333103158266521672481961504384402021268009956919691415558191680163145938251876280082263212471029975754670083661705277566753495638551211395132805976848528406479417035815265529385705162148335704342612328371252547920625089621180830711551888302733425618969471863784964472823925427406933219040832938922844414695383523592163914036370065763059516223033999842634045248709366332607168837507255650251595804342467957098836739596051843287004349259214170447324060918925434817043819020332093490509659444505845418147603748624084708865302250455563350585724961767058664823309776491254321057345267830045906429246973449337200299354703735861186619873627138696524280312618770572926741301033700195368611502535602640352773888202724476122903427608556750549812953385905574811279265381981069072447653682324778600093448207787062984999300689280681835375676674419951672664824460552961796904855819321037192169657454931388804357250709928824975056796159887285137540539000389605086468095594903330708079954454172779160865059936021372476456742916013396700106468735296286996000564999150853505703674290142161292601092042831444345805600277678371321877954297864788336593547014044040523816219139759119662230635993578418241011009004250243205993386500057231361068468916516224844782022279268723920848194687457612139263332682364126146937423015113291419088622904151775121231438341063827204713859648253331454938312397466588187424971519414618563993565158295802310459455932957934695444490862538444745126888546421706505674892067000496413393370881852832486229452645262431001394392798693065028009679503539883355459598733897838165313264273558849257334399885134251304496351184992303472942740350948727224456564443839058710217259563865115976914229904309152016567259871212222445636913882792067127056703007830506522767845843197522149241850293522635925270990276930404771629057481888784876061904799822187848625393396596815102011745580355834510328038999389232977389216768994979322586488721859782908122640319027438092127404269827402641638993012825933299015291521576342516401458391435855499346314887439342066006356996589880020269422910375265203391951462167184932205736057774383038741298083042356036982003362682922218786858495736007320028800449695347757090254534347929866918601559795741647503507157065949862047438754847857514004027162670670994977382050276644412741144604980691745246322316465299967092684913963550427987583882311277886513601194945660457196964553087730593696096136472618756809086501409498680230169354733932822043787557056259779948096387669327421874061845519180054520350564155588667912307024131052952639883243896938419142112939471011567087068200938841580667768243892403432969288517379419533972286928350298072120390126861444519240925747858306496776672615844668427060367940702702455477856151917622255344107804812522617533260243941733476049250093909368034537747317317206359370311101335753451899244048147846512531582224052752257540148693420159702361091968041204227236192743784861021288027941496613711317386979382771033214364411593049988533678642457538986822835401735485007539319296291987723768241363371184649025699123083304818299477732954451280285724052532850483591761522220893131121870335109186423651142837092731838716079061514915754383723168022658982000860661415000259158888991509483507314196359147112695156550206537670677846337323267183499711594007544637026142196003182805168719646721396134533995825862869040197372135670192786848427327665601022880941184748174471169386313176359575217039869302403504698769616437483337098867748632868910774486868252064049483869238012898802515277641007555728460659418707951396502935913752080224894896154037533905354871983466558463384305118856141806241765261109205351437028294480787163071941363325898891254560419089132789520396600697742458319943652934029600365847984730040258467024605175381387371282635355025883402049285634056735575261980431704007557750864743326644363884953266133561586812396842671873635141574406935161937549275630337811759289584886759462557980603450470309078161147510296704585416544217579389829270634713948615217085371489408933129816597958668749783060764617859944272828428310688764814217236290192362445280126398375987421935684618384670591336547347735737018983241743750627366607989560470389214818915557159142165723748838051685021049907743962307063911242537395542680540999905971182525282478337023777028987851147711119174884185089047696688940660164952639523236671039827758909382691634468686406605998743459960897281116494147345190216680244334308217947774915936814828878471685821130922726150773031200531903469367168873299970987045009709917373017174694607112001029570657631573549510698392150342919076523094992303226650808554242034323229750754035106527819733941052903693967157970236780250632807800365904544189519787357708396686536495911384479189937738973775815529177966180197724019833197098122385454686915218078178929193268917726491309155986189005028255804571162531357214807015562449940345675688768035695588960223675686941876951457539704729355610956482129973351322670922698703758808909493624006468647254378908259362596298531155403743644367366389099182123957056438888635433951725093370163678725326797561533014635692240962528574995708672158233876342929392605637524088072419424974565018492045987574310864287346571715351616059550665400763843846718523141955747559933461617372568386427930772997870072097927541936559822135965210469056554332603773328988664532738883258250465545394195541812127813743586355710774457404107952708462939078306325194379878313479274062089147710681228500224070176770589383045905767651202384972478241121369899067953596748114650028076540493849382173759399174959306424484552486255120907102620935895501191050111833672919374784021101179644073773910856009315409199732319411169208459510993217581519457320891000716155863171210402505255795795809823866103162038496443981125840174225558358011894485136553613284106662283916390375413848023938939387576029873450727553295643782190453648618916590865321312530841927329022956958845534738119330364771749957878116015994921242769541123253079998326962216788501266807834638957056023533304776985554645709854408514593652621588772270274419850496647177784961531724536970368370718107133097263938276543259516166376338052449016666261934191780736210234035091556843880582836993309573182804159755587449138455707197305680678969710814197052971720349364641109777687678965733560507053665898592209999241171296080128750012954026422779003645979431307856018289511548571547246190561443109001745538697020305329383682982703772813793330007134175571232999107088217367678970238806192043727842970142834995227184122143307746467258088552508178084493350727890238871121203911936469408604781187295115771474247095285269397462372106879760556788425759296887116300467125232709588567387112702584327164639086805588705016511751057207086161361655451369450976276592570017576609166538753489740187593338023229966326044822542930839344406346299343079436456424538167489278459588338057958062661153750464668065333660980530262888169079456144352412167720592801309528109009404838241174124094978303231182030647979240888801222628391116907505684275976631777454791754793496283858888077402855461843865471409276255134732890227907427442212295791529981860334301834172142338580779788960502788329083425993365758929507570956268190193666290531608282287113879654041372139318298603050155340807965523166759529375635411652904400697641945251513046979618272108023635064794926854966292684005492582202122115630940292644177315450469940282326262134486711256897734219908403458278576036268591152922852793472329622954314402223504175044925585625274190148434838457789331946017426088002529353193073299424190413982284544206097772321430526173499096267432134174845966583629533638828994989723686900995653981896309932490908294319056556793856822814037793222719051164434920288770339235045216251402097360440552522362007523559196178414553460943607018501116855405493654521591904998386722275380186269490617574183257187790328899798949368816484836043642632413423612030990243094920162751680760563972922777349891020642947182855104269121971037794392331906040330105006703395474740195870769591740562637971791136853024552586878549524835488592064152443612241318954887925444657446618707248162954002030042044685942244320950687529318984933567755268556664019225608271781396360403592411973843130836282862832043099798106270620670590746636372051208106855003016568045120449865883066694076685130213337562104202646663752490825473338431660750393059883480636478723243929115324912420926300698691205540934385008600134759282851811721054079336714258523711061654096656165752510105182579015100760401502694537121720162522236295412838193713018897277295997687092798278863974712617947105048542379833189399693295312891854023941012408646102170112114063335657455227803063628397391795817508022430667374698360051492397812487820930614229994252203260664108446928625606700630664961826933132556945034677956245275782700014933694637112420311444133584189977145903225397207126357678225713134429719781557290754608372302418047122353108715257031548091960829526519159615962893074565802940283095241163584566074316685939432201490259918888342674693221378270746802640752343008461249526436219770228040709389961399298305224919216620968600087641915352640312261283777859546893705202744351127530207456939255157494739463727329419557959346553212258111787737064582666455543074954824809391686177006411172770093260674870583664646372961088827406802286451415228970183155952574691258762114241279365293794739298228520112724670986125995604020014454887807839189857532416032066034725622983892583044130279497739132055899655803056561911344125977337701915699082466554955245298930044487088047440892033364698464684870634565841907835830086753029510839855738464322294044513960719166659519646179682019978469005505203748961288778679292713449475439500782762323469350633758980717720136408217434344939427176854884050985520229643381529903984405473939911293786097513247979978227277783222356641982813597475212541812525659534738598747297174595263979457537048338439251991118480461571136611702822533104816823210634810709683456814763125408112267333923230634053043136996644806623159936165622779973649509728258823615883032847050688550788696635425421868366288241650749077955286340930887911509474621841101282173286064276589790301066658275921117386053199950637400645684239419805780537745545919660858138586557252856132301143311018300169044136169249078802552587105384120535616017723407117845380129983849213988773269075106817093298619618785057595316751068754476638203404649180110082561624914013489558775391810177913375094522370594775608437049733525018245897467342298544064693161516994639221759268631340756550001045626610576899519540175878135905018262042465647615256389735650212540209313862216789601228509302237538123209067494702695771473483999930192464645219787218447760490428170464022436674565835739743978768565954675227360589686617262580950025766588759986938467493990469629715054489739747415345739936842307275542092977008319066208836193798932832221582304397208621367225123374402513460559188836320613313295923675606963688374936280023823056902351930636485092285120977969640912335512063271690471213469567876224161918835964210420040953376366903035607623690681242207076208634561295698958169221548678257223818458323493413793697636581631734267458308854543965533573550838233942713682361746341481822939701884661615836488740966984510529878965072789780746940793951650556523769233917571108294466876995241774463866157567270816397722106946459503925119326788226818040218039050646178124155141138646684009268286931528895884392889302918523017676269288396830658357721195183603561332424433600421784353523489486782736606363999916092524443884600706432478453972602199854400592669025765286227603007724750456825017127914955345112524247985375851581785029874160256113880828689960420184557156522459221245779844924852806583616822069807998539474424156041380531456234780314335608855376916266472632471685908363116536689430614963160607132206475171404494117235601436977972300842032043362706093549610555199453579167784520853144768051221601043471101131154732307230279568895817005889821923195429292677351268697359159007765053422453240301644289027204415251031289779898211919282663140756459490065895749430101595012988111221837918157787244971919719275768109685203332231997524801598907771572802900929645507059540596600921101033065153160736143770376864800350230600496478867811426336832462850752116878624125415581131830961950291582223689020296776324167242246276364466648109098034266355295856057457133051850439852648697355234811260883056110435870033384445301601309754168554719090836645831966633057539828993640635050601833823367249001008311755061196873590958474202562356236463714469889674668978612445592537352670740036440536936143275749368180160958082900501468973316622581552992222438395285480841477625392527817726678039350539137664119801972325794290072684727633741388935297018449769204228728343045960618946307586755806103709333835021118062792325532705330892362283152133711344139606648765704244665861625106078237383532080584609551942659568123180031442748363254291847440837231194857674140188003019027073947108543326337964743072458857204123291410532041028431571128213073047561975269994855790482326998219535005051441398608666013595056650323291671024592323419452569642498673894305451689655027165985137321552783949930518027847506349683986354242383361487390105622854769740224244892017003541486649797551599742261426834176237913830763388630330587680593365266262671762338324144352575202565924219354270589994689298037711000818706027471563258233697200050391635153904355698212312180977481561371051915880952180634718458672108306370225121620410289415271186676448374659349466552424337390190020289132930854747990337608568879643361533924495592059463208626104857800862923658672140330775421011241872452082600028490794602067542944839712561260462716484698797575401956582081859487973104952303510604242770502450508231840709581624838016685977566402591714419170226291651715244912735525023994868224719084311834926358283921727047376022156602694993626536608932070140243448895124316516136400189903996910914782311798265638899862185753337173278018787911309760317126786091988973137244581700793648391779519091999023094158983128389179964603171833175002235331599187830405267368479521777567466170531524885226833111687086265869805098226669194806203246292150452740292790366172584991452688565852525246899742485127191244990226726253202509724879512000395686819822849142572714879090615137887479251325335315945003711726024667254299349341281981326659661261535291779955220557373215952232657832016767092748809179837045055179025128427922287300241632375464004690762680520154228096863543324776007839725749963696332831651531927907534558728516107439258395377827686769258927861570598208729119029955552085811419932713168138124501981160228017991790614468854383834016273372277784730067763832403980813391747377322723483412481061892421002650712359818997439120221975675773430566690292339648375371644677541337060781935980081014424603196528323385277925348629085697050264124403151153873544064381459571577875374192573752342796697008999346136816933069117737082988497744852326934748812755466379760455808270842252786731680037202672941821957577262808353164408272304595395646846221447980119611927514699663070444437790423255199601572092835449254173060283834536639595849314097962083611188087068436876179745020385597614801809403574700545692913506476984129820374936101203722104835102840604424328754399761926141112858922050713092722963557154016076284153041627944473802929542977679200453030444045824717790720025822479745955459404907475712265474512319456258075037469821483751300920055729752023244843028783122602038964542251382800862367646444266222938177110292797776299600997826867802419650229842109011632421728358984623206727684793058984680449737254354307381018934364780681527079878072618883448081973628850307977845601721887588571773892392716264010729541225686693594923609181010459675881981497294291211656957087249937680787142229185434713202419172974309656000161060554801388052118828531446721791662299462939850362000593465675693414772605184030805072696203255066013507438047041504627408566481100848661146347398897443070773839818536763057300825895536336748752612832429195348210793609832096562890195247649708382100828353514935625775384029118988279548981698511320903415870226031782425997793192711150512971613695870521979405861652786428980170000897593967036297473064928919475376519637750755879159255452605182782067733541065873714658950862180210384627365394920473553497306538793440905824013099193886389755961031840935920491080894211313358916952932739610261106351658504524705716754403746878216068934665335581624786276098796241911485575468496645195858488386974095162612771770731609193057622335197539581076766867474366547934466883912576134317033547797996991211976884413457885065093751087947987939579200113617987037667944361603133676360934354863143125206398497738437758953618069166018051259637866664720880798043948153717881269427900562468080026164393106859220733297592812466832287019412841397122075647457944289633004309450604800046732309794191926610206559219374682917682848126111734222210353486895736723278808386590870549583825349408489776097559570480195929449098273048203049093446149149217292791942088233069129179237303737925003110326490473432695357017156400473967134379394682978096864235006876632015870790398484811691434358961930567549984445848478955490543524900347703671177474938913156582657458300013532750684717492295524947189967753670877541953537898122558645998236413245840423517620054373188003263593199254418720075590587135881233884484350998008932377235032986891508623397148610815102318705957718651968962363856792234512326121277976354676906611879446417221994265236688591459653827253217461503779045061915599957133054176008178392282849495969948300199287626837953405354091740643975041373454279943572808442790283016106020545769117906182564506666443829186714341447236225051269042777115339305469180817266869522166555953586763467835632936779262349391223135831577851466387865234649346216376289910671117231218076220168042331388540576670908738433490635122296943585006792702351512848102119616419136128426122492866128247663428088122547961225714578897147799187553719591564533165097923838236252827187406450027190698138500413988567029636650243066809128130047580492682777453598138153999187486338010535195996734500732612820336400376729414493653068871935242219221388201536204528142228932365457901875971493924172065505903935681328093550132334789107983569392171814889106283802944093520050655615418282844397430310254911219968538717000818661282301099866971975003275438549626841970680188902673293470908601328801663186604432997334324105478009550060101171352060843983942996963207035319367619688713037266833050660975039384749258200996691298872010710590867012231851892622000969050228275484426299615455123356941727748153942652095610792659828553873446289796499871872332816525274563358814014919451410258949927167876039099221089675670297596539374230004119454828717079389966250364388750550326150143719649649589703841082795182494447303828436368355562992615022550244416307792640042388389753454586347507797756293885330948959949942871469233769157139695415162725050494368747343957603415693713543943360621930212866113745090062114726833836750451423688175564090700720570403677830315487888445270449667626614601968981430803354097934183380832563358318317584058570464663391869909797921845682289810922961661176382137538958777911900542681961134475807830735933392286153163887222622255479109168866634930451723306566018457047275783955886313997457309738556974538500114817144583860294374871656159135460915274117291992914031229755577682269474770042502747448737033815130426472416886812048371259177592849911892041436213862274574570140626229588341074517473568540131403021013138909394181481161339286082935314834151565688992434784440524593924925703878958259468437765343375060441447547355416452043853167632865287957218738683546579006206351823021201165389629215979456964099556872028726596110169949238060958639238752049234064787796787922162518737887520626876435958240610801270286567979739713009746513484672264534899155051451446969094517568267429886706232452822983117859400359877045574839600376545365686924063221368006580651902160612397459525502597461464630847307151347743245352656487364314375021620557429617751569816344316285614224073227550419656632428337101234852327203001608716968326664561369546136245175581815991566265949881479390886076998474906973236559225964098631542411449987030542614983929438325086955123830610894941915599151974829108074238208166593509199485397570792598108661033475944566312643209151712150939869639140122196608023621093646001642555019015761150845158443752841944022531350321424398017360454111824626421390139398186891881150858433815145840114305749288034639840334425824505623269268037106550226472638410570063681231304512932169584449973273242411547918071150811274764996863735725329516072231791354378498661897278924297438665565859956167729963246468868007160523703642213016764950694095496825683485149995875413750935568753316231707149230242227334533391047472330292477644876518183849453069866766932180593494193328266933321681635768510243439853490495449566879990090367407438482962545907189769338843887141432425932752487777146541508899508210111367164596120136169775048953631552187699152887697799709459858087602546849162319685361743345558128027033849370395113529311300048392992761458908900427664951436896612657510620367346786005636913529975827967465693625130599843477840314619167892921299251334806469353606223896865318211415279719046128206571709802427986775021609693674381838717262198519881802880689195541846509458001474204943221550880211733669036085387193003671777173730603483851316595176479206119400756604375766457619875132156471370898953234721588363824962555291119159410239752819244914837486687603587548568474295467060461869706250949364679049433402831196999034993368151015172752933544738527552166537359959431003651501201994838594713559535294431550961611732704099981571818600267880514136778066350380239515929796396635649424539030193385000374517996849848962454825219215795441115353502424062685673819247768438850042020419561528102118838221162567668597677056630976030529271102922032430060779280362278044714366921569195400464313294374780524580093756673166131568456213489693219937644339345934859797830458932832611723996946277021164370317874193714341343954887070288944560767566279495121516224719582164093494625024027044697844339302621026617707026841526877999711119236093313405882851215663783643044927043078195335140025412789028871135376206362426562760519336869058714910884197971782273991501722125575173127580791397603539177430839283051719110069665798072052614451329356406732365049113393706730415168405706739824307951876945687456479087330816946578715433461229499138601326174271046531906876201038180808285121683496754570011040759130210546701628955896155294604303862828974737624894429245125740773375512956989983744021815956896483088311374679306322471703801195396380694053967837184268420686177321268210233949570366455931983441916672172402599000366138608109558735465898029996521573849370190274734747339211986683131193201710009047496974598797312910693054341664511242821997605365237436155085515743642961691102143186568403557580172386879366080578877082217594146569403207132004694014377598312356894798085346530178957110309872637761092336565382874878039178009201338362823305776235351864119692482000176675534233648572813986450719723743260782025348923978471116492023170000043082748935526715848095387493845837581587090739222058557382051286015063051690332958738230409844859633428063149126450274845113316587371945699866969165389681026373971436561741229966184511342069018409621213310839650408004014802192153059723947897816520709845073427922104591612059186029297229722492968955014937157470173470231738898464089552895859889187350663731903834251020674496804973485671140169082114675228783470274275515389863804820915353228526359500190135009312856609914201664437736815012673344076438447835611498332783981293575396474751784250922756142800219991285363908094521870385778200147111633001214359571129506946292654602073340588210346493608221544494244655711026964231978275335042378121881354930266803301780550840056685525216409211159237897002014764903248052975473565468651153499303164659998576502746453185299997057196095378142420551076451205984865505195785786080869293183942105341039083585647040379097414686126834179134577014780284959081596331295189968031707034239260831552653106461260644168846095548156464991597894700493025272398162487618949813288380538097484437657577054896903640393157962687516744444578086387100017726271064250112380990893376782291730494675589929852753710315200891792057458536197529357435135019676536570342437145941667129327108692168179312958274546140599981669136680222832171658960155484519733547640601736816460230111323645298334509395134572445621890746630153757495836968368200148946887638387988371296143241187664515892487614164683421214690887217025075113733558027485017698836452138266358262462706427816269565099216590316107622458190615133934743863243012065623746215888633851786783708157383469561783860409291955436759030460032509575254144782915495005477960874317585047788432477598325325098101761771960265746492789935340778947278483825833887526590376285547971577209453263556138098879747790176632361339663220747384617879178790236411069963011998981480933193617226070875623085939333118838199642604595990653963065938760680072004577704946744635217929439222889122092057936183371021537087647206870048501587533534947495274518589887508241695372562380838818881646410910973410957075767184113561198685512651631349620502567118237065869183749054717656183344423561919578665728744732097319269951476653646748016011935527013101216244041464000561307176119799803160066911502689233962432105577420717570213180314815387800883204774364096082388648089915286613488816489950708916454324129253591916204336556329926592438223941895090023184003081640205695908864301073817112472530953134067029493631728316116959093848281197377106442570982664546070801592639499075183684590029491777852979071457169442297692815352299396347620936495045372475395984760773258952923930116209594685816187599084820846226696820652208297329137132667573768169716755851523651796907443313407880542177168918824039757346012294485639264988874454689655866507528519741111333799835064476176207162711206105619476654151701317822285706243309961013948106477720235466571355480307057057952615366765940104801042840297107397453312874013899780871706413776922237172375983515247008817163187593876066270147578119976376006440122567853754779396434040299220429816426163783545062253073465263150886168423450584370184493354991521708306563313105365708893100110332402409542802031466852636165894157250957657555714291241540957815780140629164827654399349237461859050400654520905872399587466040445593072543500409722227607167750155183434477229079310210370318331416668458867178422038340045799720488351588663592979528151194618033209106898253801646349384956387581269536354019130132992053154510406196447166410475888794857661969441115713815919009210610596801781894297285081816689838939313869248441685425217537559489198760876860823968919372843452050627241701574559973691333391556370373417155266034706500404922830293575521709082938648981586178343855241757717036719565750738106208506835667473000908571452792213524851608391062345321226525224139280167399567354521107342558082267314272354604399774203404746945931961317441593786046117035352442272942152341487084013082434667079818415614951495418999998793727172816424986232918643954687352559230842683484001328549620923524328408033925037877116603671720814180662379260851690288303674361708098728905831281586676814384067253837943305241212506516024876749702227549750282528715037679444783816190575993812962387463055185132668975787768783813659953410804145347040391217759292419884357744489355204493280221506456829743610157946882278460180440597454833064836884677657319835824422241857752655705484942746238665536024380954503517667999500890250457105744870578317899589250820105722525334796270190720521469122798078263921165039946549391068654964965703349458428522371685216006585010934127799293915931331716664320476145220804671537243749045079122910318849862210389294335266884014370884598593575378521562963989125621558549192818999903944956530339666714061978853777142596036466305365661510535013183155316410190239559581521197142379321918162980418838676448037665875634798390477250218168283206007904037204334628553233022939399542190159353665910092829057555691035464237747735423159540139339570120187723080195497400159424669934104221158822210364330633312238198810609260343990130056010607785942492704687563892340960521307666108976767225402157976209173293582291309953081764593724207497286784721223937455231651063006327155808669369144738244142328573551514880948986080389503839886115812102364543393798422927075888536405537368829386145727110485473105413584115165341120712863117903617042154404945958799180119050043637886243315583487786156866004035598316440514411224129246553130651935640541141930994414726071919312317484890439917863287742940564869410966517714676857067101702202802660960208551354660134795459508534004042874209001320884343722289528608831465241044457323006350169758957761952202720306937987770286434738326804118870312021734566426556724417096416717716822120156048674149354920794679381903818606283279634035785534361709629106019069357872918135776922652935873706341912299733174069691241357523510726051782458038770158903378338251911255790793350642198330188442201988371370774603427795357881959099015235336023968753022510239296463967619098281692824169026442886302613543874745200276732135868953550175780498006962569315807867023026514842262433464874343414233908598191341650457937119193472780993389991883021054408860037581522302862045840472720895025159761149895868853800114787477540524484559612991869835323888478202411993430763882266222836134832838756182259622133231365558705157506195134445620944750138781574326959805552471365003639911196928046822156841210798631470669936550026039393993410357524741518573057892441725669869803242464403093958319613332512218751844130700437934533277418295685548316975691506710599444519076974044366972857385021682652201178341226535443474756328710814930784509711349505790701065993616831851178264651997505588502148117513451490624957597681387089603167016733630411347402599402844144928577337971813308967859585284031013758171005759846098041733611042370095261942029577749111750110309830575032664402070670760726765842410523231291294034903148489743416648040633418050077168875614382775648320098585732058864347681074879060970275106592176302150730490059884773065596504705286173479652585991025562228374283804200630006506190043954320230058767312434044698188076002642811195700651183378647200270919387077509001956539593876236867097192858881221371605638618390943684464105943475876781394796383057509831014299435261997265003243986320807991375153270386944954358730071006502646111423258686162921825497285064416565003042649818667646736588819362550884182212896520349257215594475895627354787303811753783216205278843957773186034354851994825028357129499169171852631788444050881762138317772721184101194246821560710510457619799670660539682685299348150040334714420470878528144309464443726798938507022470909554650985459911256791402890621744295104260877556414321293245724373172323433853842578398793823870897990213900305233456265071917550385395882787916464711113271346269638300629545398984229270951431099157931905480383717489311198841829422549085642800545004715648473909168814516898368663822022978435498215219635505201429847406838798599771110836557276697258383258222516299718704871336744418529414628752849113821667603665251526245737765512821567742319341012781026110125884010009269944343760245515163992679445967203814824361387010007059384655265451158305063288094332327123976669031936489131246615759303910608066946755210817948956742652031133630799214468549365139764924013274832296359611791223263697820747936059816027621883144199090695943922856712519660356306369064358111975045916813136603339600091574604213578853106630662911813682541163685419709145595132526166035164695959316595949246556718568829338656166012821061369390938153163816084422989950679031199810606445763860698844172010020796768488753346857523514347246240382206425565860415267704716571370851514051162022684200350502246326851286214972781193242105717785657444637170106994555045220377465247194292543055205619821706277002757039053499445942254939649920416850916686998762051550603934204286907621999314999639283168869585368308653705206873038101503905217565009862635200680000779497561853035420756893744379702621078810700593990182798076891102577817642925552246528181854727299747890164614624479196333029472689576799110497318446198562611758865266465702325472215104106045289098706951260303648728790506813928141425084612968450272096418850129243080739054492828013102818909037591160606201825722981787000857685265376121551614119339301187564741934591420798273549322760849174213492335913912941527641244008262256976463485143870383838635684405418332642002821951907046287895222463681008534618766030433891770335494864891484157347016809148730169694751767604999119948760092468841302695137624017308150394930172136024772047446585932965621953305381831812771475873832800215020086693463846612732532259788473144773638344424507027863490641966092481056148906065520733629726842445006389503347173924117640595481246808459394648937649459835596178138181910742100619632676306607947604448739801515005488358299465688759627754923907220840689846795828719010536570499759227513787047363510808319216930118316133369006116512737745575768283616369588196625643949511890785241966499855528635147232158395485833612346287554116444279109126770508976035335713510537713308465329525430581245906054104902559534346948313623419649269018248807041276432445296110457599223006940767574820362635378191808911605362122576323885637865861184450868188745890075835034564910218192325604082858481670799745277493484911979308602421939643517707702897494236781598968349067390686559170631251097355550306626330499593517099014785063394659647648701801147267433097475276169123015771668213354762508452741670536659420066587390850653466284567862939738391075162935117734298282705068437258523085243281252494455357832437404199515778864549897590011630477263971087176054462126287121254682880093593238988667606104479202806763519656008513087272413595579574302326180665585736440048239676392550585682737173584368989539491581463142022034308669924553222830537663809950915076767723812272175462635275802742990843748078961288616805419221291413133122551036453037465062418800962897357266657765417160092172447027219386580667089935210031501587101556628282417030797245827660794842946105138119059975837283395764388938631585944078143043223882500336041283277035780099208550689258001304837201184500162360856945085076011810309362461295199590692439775675996564083711517069398005004995218909218020283026051327811450322068106096446003508014784202754254519500400062019496797058005652663132669718239451268595704424862528899970630811106143066747117724582260288605100453571869826305750053808993180020070327927308720166596619600597783531689909782263117832582425973734628165317021965093348178813283585423310293543689260638274430229077801171917417352255250825303316401227836106461687151494187197304867974926859308013632396387680397412549227307017921866029536750608480545581693720949343115040090732111498628404197664871291232940423219068340434242427922230281891201190488356808455969041228999703650235154705955936786995787929053650542640042485201034455409652434800311767160993064663970292176186112344720837166698801704232670693095654467354759396449785350429079427303489014116308995577437861884330572815125568399836353855884826236287334242450421365489687817707795795096703334160507946206637722833746473889528356633966198792787550593478953705302056985289102579867924334226937462274790202452194544225581445441486145351583997517715133614898778463435312816206891728528223453864751376355698181182291009587665997756631284968414442161712065969806303304901323015531459630091883016041569685756869222610532715393934375218258034159315853280271230079267477308950681005385839588436403909591392067060605433858928443290958458981100205909273254336988842801017560207572567940438324934768673464496214134593464723840271344496589491188415974974701302414264248782063737684671760944655609965391119580761095118171485676276385453528221111252623350870931041068714789500682880746924292716865713158999086356545098438476255068852468185543630816935531672652852587193514320598072048942735126285882205472419627063920522635229164951085673734799832718411033667058772315441176943643620309517372995190744321618833085893804812612173540823549261393082847694115475221813269961289304002751962457571201679140761924923032049318251375102539803777810295763153739985447709552508723293115109011680195484765633043520008140641999512989267214073667155552792819502593173148377404826489738764086390482464613824334544760530896571846975336982634485931916740887670224786465346502644633290128290084396380578691446641455609786591833470760308090137909462614611728670860468765253327575624811625795800223952550102776510024450970125457699247684797001705437802321971500812971172892563985993832364137373586286503227555304791940169173306992178859670435525240696040809193910342893576253481991939629308106542259471941932247385678205756640638355492419187682875365421541578404210695617953551813425029401594233621939192959784094730216130680080106261015907826080112771309812495013594037190539255825832261966925763175949263292587778204879042070758751972831499516308435413033674670189260674334115435376366739877293906897552339388641064012682484231934354296282535599491906859521675165052700538552316948334343167936690918488159570147669311980637219787431452831708517204938071072063408890509053021379559372222042736646847195888818107807497575528884201730175268433653694679362054247528466875538546742221887783298427950428513291424408885603149542841743796329684604030083120445745568913897951081890333657045579953562569458015504130291189223307353225581805206168617954739887536183622404167347112108059339445799517798665640138305893338009082558939655401296499731706088102498463370903800786708537806508748108317355358723288292860836207110486317705756686599200032868302956601983949440072804741954462573189779063091948676269196205001016938989103594599771281725716438725327791717378534481625782808811468130965599369097737179611987071505243591156091516813901991760524951105155821517157766453616603568050478866605244814318764223589427561740669280381566819188664540286622374325789776493439735785726281380386643998011134558644237524051170618702437461054243863770262502115053454414667449246905828696812790368578372159465018615906366159682630088604427374591426668961933167416235449660565506120889828031249695952360819199865526089634196487814976971893669391362257786632132143813187035608983557693287558515961111935499117971132145397172867052664140026358474331466031564827486486956100930914659265011512813013706253725020628511135220331705803096910748397844888599376502094269714876019850294503364227503945556919000823181272312178243752512872050531804706485117238838788455831684715078499617872530410411192898494452435873774650118097626137904229093131246082512011841896884502258546539165672840330029010800690564172026323952846173625005070125678986267612936506558161870706151354861623377563978036700738335819735932977378113826741524523061628162065217794133549511400896137388522709599350681582643565287543167298270776995694497305425670943999183314767575420388396587153764181888328904606564506597321058718374243517025954713612476085763162891480457726280440760989743103444956059042025057856352081583145840699132057819868220816697307522352576079546500719117765146493461248725805295427580676022497842326428132466555956363577980564485074117047858627214451370814475729559988048833876636528708946655855893437574367213302550234841112125477176538174842356162548520544016007721172562227367520666226637677215439132474046607195521362971044090020482863070740485193149824290057186846498337902623393971014128560845843825993667540329934503269114783351190105695656417433494259121171643260821277619245762973804547159914984098057559904875149935587902310509292365881245007806037382891120220098252488487865288462703744942541085499785444082334789497851889004760527137780249551227825920348994853839274244748732570727602630822642774758484079744658705945841197436429827567654243095018317036197559307731018466905056380881789860532860619472764580099567169612009407712752568071019168384473829843513025906827586932343370269271138479323927794792059399084913813470158975658412762731525420360607731861474787472365286456700337110248129160774075082139269858059346390831940683934252804459854296538298780591757605007001394852112690916876460731860533291712570636395345134410432006385076285443080292264345531367323310749356987183843165258328288419303263703500701311052843382171056079813742518333231741187737141548698570156578998785547338972291042485794961460587991854496629564975529612690558721397261265775858631433750468167773040091531345655183521885478426662480462544151545254457523217640924421531455392813161022365674371404005477855716594568026061521288048402981031922567094347029607687769703070973012002209445736337543240917860093835649391887923672052409788647047597083925683564409412028159654195549724450004574271934001223234626752322644776310615336316662212385519443870352790621864953628847100072514262598071093677151275435083595360305755210410236936322242434192912024500235887505859584112557788758541033470032345947621704487283250459117884676000243667708966570854578150626228442056472941789447104699601046762128891205586115564814760674348225393214172045065039898981455733883986647074861700851075384696584432545420194237889972652840769915294414319218853186997811658761686729053942606197680276557438206797063976063715762661979784145142705782402197825819525855772097733113608439615117398745254505551550991449399857110291140755419180979453209993237723891774757644326367452630576850500305918810952280633229501784984352522059850267784847195337804758833340133770348030822513110268520705483035834130271167643690307231449498818736660472773693486020546219985673155423896735989055935164555304179456973941087975055292152855433554301974688815971750633152177741642830808767001128106583360038429656937828025028697900991044892828437483391084796083690801740988020828384711862168795489355321378314363046689115294816186851317677204654684511762107610222215530583061346498210004088606812547225373030208450298796389159929529201103324010080240928687595414586350872331800252260697353212438766416933797850443078835750859912459011919523568063644326343799393654174289453781821044365261981538134706465170983456901069111229911851130791082938486914579288950697512911870839738113294858622186753457536668782852306477780750274103195255894438552494657549979909792166966370770777514468671477520590942437152612167509031444162594229843796465456621363860638690925410508947982665350300770735688303990902614652788914398519248340005948820274482515773335584792025650155343618655401421902868269568163576328243740367591073857786913975691284503505004279939380244157505937304551747029294357044580414926666940617449166096624603677184257126590250986605150790634679079889120806502468027909863923569583180304364514527340022830281163027825462773695657595829753136369477500333819203920272719533042766272305032999592395940071701377902284502334253482917699037083087305487990189341427580440320894350234710891551032354127183375688381419150566071378871790894112776325737456401538994501099688873010658529496144255592241215599808988857802892838245742065386088082943225706372052181676319540894228993452201041622842368433128644837654452118717103482107706304212839221826010706737581985932755364649442326088676746404717657184654663159341234235847160500650410463590193413245482375189767104361108514121617639736288697105989432788374610384434458084877404074905005597342912334586185008436083149475973095367322859944092542706904600189985779089052469320755276768541827336394846294263467026975614123543163964212405066908418998310510607332221260355928246439609120830710899519298121979939346709537375787198012174204793949758897175302622909169676376023370468013471174402713486600006453053720147003840521693831108722559274312359447312806553691003649876521332276540777912949074499979695705996302870892551627726808563662676410865877613649110079256607061542147617238663947739593735987626788367586245825571839430588208911406211960277265063773522089633917782878848166433538155676358338769013627661530884701858951769571454352657099520731360659210812313213646145199386681456665844445964662330634106599132135845840328323871390389355942365864161422218596287318593853972367177058631151296815169467209420330428264869921332794581167193378884585765022949652159695030352831097455051600689511296283165451280228640646340300031092030201931440108364829747485720621549543248018125541781899970130171868141074007204940328698919977625427031035827580669963146299357580055444610614864005448400423919390652434057842693178674168326573315241904570413187879488414104869725445356331369815953738039511433247647814037735822548326189824910673384690362066767228669252137956759519588051088484701849137418445508020608933794773205170843859279020500091880464725774278533044533935565839501877893790096754120157304803956610767236916649368495738242750855543124767902859474672136205295463791892559645901162248458985190995316666162885323916512332120203363763197979207176121385634998065458520595951782577552312186679728177731334738638204292100335109243026557579335295566134479880528629360204465194809431825795267220637843599623609262006366145065139611429830029189953400547106391336075400335598541223563651007530061311213969646689538195864149386104108314301066589995016885708297130467900844544338177086652734441932492316774371964750314399778682025053121984812208905809897092010400193284341566154564929358478056137374449125815155143774256212951899626950200591896838972523905128599462558829521218623524954703920301926801186679877559762256643277032163983249845791356970334727933325829224999347099205091680641372692703759904134726507131965025842049864937161669463373398416950199061441314699548258451317462032502927687074855125638179834609467823977056892037858568838716626466036662943986533401611333916131206424735721773148387450551399393535903975139914785444358686883921330835302039566078850218706938580252726194439620839853199842893685439316174102311682398447443794894874628935639320915158782806741890324311184293513799553943112619602517031534372436554629103100305805392111062466142898416394185893308425552465762805640733260606781112978086096236133763169028310506535288005341537822832725613379763320695906912454106402827688504472997561476302057906939962891534961583149058310578993354960883399938386590239347780185759667804812396302563210092389090354126588342401658826639296046945015944408538804653007268545471239368553622410621505244951927820619330605336657997646322625271468667626442168787543855957449388841540390114556055445078469648371632185363375971872419562525485051283123118305700134613081253732282265321003256934996701071817258726802796706069841624673184522430998872167149889333992606473037780332153924999950227579606359057566148627838819812479672812859708816125610070766788053202987265990780164447256094131108703448300585856044246207720977818318630327511759103009528014450190646823563642690563703001358796435805813640775479539169497118367344171749391524261501796536536849698378713442967715012604805161793583697469364078275750622081014644853088152791117936781682125172999036258821780783043740023294886922677622528045894970208437847565875524116379977126423501163116844259979195499573501547806007110917729473895104765904410088261013354975047022738639510315313286150415464199958446664463751524958536963410074492143316508640473373176631122407914442520811819885956335665988333119047980347784370241020568815097819029054003062855045372877863377291390738829799368032234058302721571687400440911470947839070603039174508029918698150714892525758293241710502567431608278643894608234633488547483539231911429261165521356168411717566860422660758773956759534550061120194448712708523158281444513341994134130480631041909359744335482088499355865002474211086001098840053264446646757877690147905268633520826126570133083930799691845730828569583089509995190776206075386524332570618739113699531752312083726153993705324952590013073207493872459279699386636262183732236460609337327833902957966462942489644649508394773282415471244719660474356838755967081768468981527019045238672923774316195025666654540765993906131186753267859639127395025502599184124382038977861401537680189043925460745815606887065997875528510394663384163248297553957476772620075675663360715431324094760969766916103701178395773090678039139975525836207913852865859090234822846282426798372962385387171522794154559936846840366864068022861538288935605566991033586491659024792836082531336188585558248429424508095321349744210647719692204071067077017522573148980996789784974060183792904861332601002039198487526051393996709015390944636319260350866400334128486649507337110425732998583021992495023813794682935633778608438451791662822419547813796816421425635572444313026473925083420183210491659494994965838186358472445136060524753395016519840204465922595634522407749080278160814063649520647659463265224267107894446298880460282562091462547583485176571121842298147569319082794894842326271233811364203187534320907479461673829591189812631034790975984946496891773556995836139087461030753247081250545313215108573556007493587772009014945758458982860811792313830588476680778902403702041342586444670764934377892015293999814979627901775717952253417427543908859881125241370241150180127008406174280824046832696672081976356187382219565916033398156943297571423575216352278352462743524366937538388350564998801670837121525702508148760814241832850370768204567081710944252899434781762120243127463481173789585703756614802552693411317567310251069713639325724161103346628011242412260258789154998984713434313221219825060041489333422826506590620882238230639338293426869590240529537929594410884525866155264520404296341104659290975423538710500924415054103383504023149482300062850216308043279409465791249021811467483447412241633679841277085895133908909796959312622992582787955487781837341119730517151830371155903958258305497536666355208363019393753567612096890533715415597880979023228428225447474633388579222255865482446910069376732256828311482183094804424789063390688982262121671346589143085393666511673424664502102604096245400309074653783982898385700497298471622107718316426544560525191488391528294170748127133226750099063840560845061278243281152564179169374589564499070063551214115816841686923618850637217301226255438113613122329813501734696910930845118785937073095156346592710029286250589709418745415627375396370700324738592335094311664096604041413337671573113178225580120649720858255019749566809209228307709489207168869426463847129792466141043073979931644623281172198354924267548343559507613659497549586751335394613320098046331898071337940904403940008125580758797874324759898326095539143442533267594848761718025199993645015434338571168386590756209967307070349370845309085802008813661139689188768490663057911719092573970113563693501577535467812213030601702418216818019770065512804273479245494067201899246978544279515221657410964706296708654395274977717659948005523201952665537273032032141627073702034854774012035208808954775818019085149368765268041835284427128652694136769630230588600259950147276229887818271202396086690064734841601414426447447916420672477191279478995815659571013689706057601442816079750676107407012261301323923922928983530726127081635635188533799572960895146992541721598262219161916749103018500159475404764010344025475564138658094740698733719743367781950346312718824644079002904418841922489796625119270449346396022951924910691340254892089813355465167399257106083946321235646339269254072112540235112168335512928281238598702016130580269393183327211684851220367215710724153619930084171569910391481624948860348805912761188115786532967626757803469908893807921704169229783344798400759525811244322957341671931421818544966543367155649115023755559660756906937064841734006557667123393769271146413113522849370665457607619974690992617982934665023405086993973200622172036793421382090957671722300703863211348730934268959286723372814961562146569559906794955691539500785084733060697765678588757696276242859476225682738368194776308156332611911447762911574391587049588258502015558258960663030180446255414623517297324474626983796026287805917834754501818165318366322742710045665397429145537809982484395469705705962383778823495965266541345105121986171213119094928928163633073406008930959236231650592865707951648229754616604892319787856095183462015300215259200405853130598386842270823402014444147347639614689194869617889986893737944173420781576081238985703007605514168127899409205299244366885530000735800450254285647306242853687161643675231621855607509354171147729551071701663563533803186456311945637958450293479782810089398290272016099177709788846227773430453113068770544889666573276903579519599824212350133113413821858568360559091439486165031337630797308843565164914196776166519410876366285215459395111205171338935294806666272751835773761380927341032441745054633366350945258825408811393792041000567962146032081858165545725454808201450922188471096043340614901806035436980210277649440993008362808213567599823504126876003008937415800977190694389195950523788981019273581397409613007274557291739586210682183224377066485909868504528896577428800737194298430321749966221615851476269019841980899872761129722618558741615585339922036438333323804185544684529821534543775569416507063102634120822978448755529598621994874665745933735973069837382023842859798085657996006755607859967428367175581767674292903503232300283325722817088927604329249204118935525214117239291308209507841500438151877156863398458061844295245318749411135257140037153028183200913185882903105701125811748430056307348287505247653884399414168488589943819065369672255947744723833767937345468244716046294057743951781952637976626755173249767024226379590597924483145844909507839417547694087125431241086502532275870656939397429418615697134038817231774982831252883820278552217912446829808498844081869453605336441508092988776806217432046642661474989768844050921402713695557786541587376792816406950129113868260724363676397172443314626806273758286498098791668740701123091667947902657967695918887753718670481374500893082290026567031265875022291119621336032777228303472067732009756543137500325815257204452671106280994833267185038196019015773034147066558503795673392032460753492848598634187173330769010923486702633442790735998581370318853405773625288139095741041865835831959302194486274366786773154138527480236277660349889740537177869233617621344222829946396551770828864219155771371451597008097088112076413879361464169041710567184440381117172949033737654177470086422784859540120197863624460035620679412783868798401824186118963255207245355907368646324346677269254752771943029803365680295308436518484095506817080053622555017220438952637163753057086046367828627793702064182699242170047434470960658884371367210305727728434514835533354026396529609310124565421450108293179732948366185188393060965719635026306926435138190652539545820664822934989955285869481438504585756750926114054491040577212259900819970529325282442940250456378299551677268803585917077299086812991908739335505594923362083118836519384609593059020206598459024916709497231039419883145644031446766457935549532640316279056407292333459988150506598691791775061123821771159480414085625008783789778581978222445757182382042061573731135795050105585685574323244903392351542292524200603581082488329249019229092096357385526504118588805986293541744421597572805782425619968828973232866989150709063364350950308698698605318166124174090452864022064790563672254930066606943651388186564619028464294317363650558671920175179929640055310309272918702368894594860994759067820198516163474388088575435218833724490273808005414162404891975731661548303836358656476939248764276941946265744459467687941537697449095674767482808988313355828509749800308475183713223897554094289684866524209521232800473099132994363703397533937316108786901265163382795870172043342408591368845120138524044028968523871348842097968695100018543603853311423712879608249198121972083493171001265919932239068534979939147409958371883607298137304513536135808356446222082466794001393877166779441586714171759629761400176403020549723897980876874104777642669836080782053947203119982399069590243239102553609101656642265640087057776532755354438011240648729273936485686937772497008434225734984366162902889454934740007504932073509654124381047715754972096846294128203151246664893256012001285534043346013871173229289231693466600819458957213620104105277472228550102542708853492760554370115192147187032963141079486392914940544717250549394101878737882873601779396585061785459469324151718891326940928699189838617454700952056434799505447943316610973677986613957886121450057204893673119786880397669287834040698290468295878230874985750257668908645850128698634834275930487989551631095952342892764848561291769889294554818283188309887621372627375265624982059510404230986994857445848623493681079483539027699361631206268677601083438598869338239499471193212221139002516929025626333487628238846232742618575366707663860152215729789848253587728799797573201120223803473251790817239216318565247881245673841961155728937857927748110814964433747918832672103232509871934263436449138200681501017429193404579463987486358727835374287442503395988189767577380976451748308753881142519796679155141147656714233834272807629224853423669709770410849858740652203240329165807810212114413630516852878634986999791461812979799367597613105203264367118512938611283725948772636621856903886021578489626655219575412763081334518936073754491038825001326642483189321540813721335565966502097851339106751941212212179277393755599720761370176651923057950538698891103686170529688770064089243336515371500125775782426559030011204181544048760978418901760190984417243016661411207265981117766883368169120736000375258897523310153231921100733061707347219384636062016804488673314900140453651035396151275099881910149126671852572159384059743820391568218506806630476840561102810074691389390007074287279218577751258464301410436990870167638328451912378013693468379061010550703187504600054152472139403875767979999611212363677663326264236254291490761504313350880422692345844949426191880609976880306674458790256145371831799113392649424442125002143894214030681769245256053780389130064660481506445209484603884905237432614769037230928321417442466374097659403843512572020881837446317262451031378167763777017216214653634252447668607877292194344980495413690511726076047834733867806351305264948754175573920603404157677104846494817583814018634397558534603487254541921994001475960896232537534333113882805287739501378178184573939698437846658768152223269896997819101620239776097041382398114276187313406269821161052316043605288775377427623308081054359612881403983727873855399620949717471225076054944184502769714581451542948710030146926667865673290423099638862255686876760444917903887863417405115737861074014836636739278650979062166154474085725668067527839016229217176686718898205306438040771831294619288901759993688457585498918855277131009932620826380978482743141757311711012197795764748047310692332442235196306311050974912741910502504545744536867567868831888848601897353719493444684976510150154389782738556630473544362618311622070175612879756259218071861374800547887389960782751189213430943272718169702627968696159430538777048416341000736415649495774570871891411124247626325247437302750894232121061697591335936191716298214681926417473324288481192285473942537631333332491561351538503424062864865388627532561571781588909740594351693972504810677087259444200099170033037339926860435242644241248394719520598356440950482043832968732105216107061071363472304656616999114867663675393732756186002252305689928587277761873482468424761621890864593469872092412655985017310199559612261490070141438375536861092086208050864969781603797517803720733576240437090454086190808984651397761085116213647749237805048639187416593366480131580130756421661629575743869529688083786068350918172387197120210652904489604684523128391493596283315350499529750211388607575046620344303745244655450842428369977589073268285848187537207425053633821854721332519704265076922364226388225645381695100140542299599865518337900622976829662545544616737333175597611981256864040640918876809452022534929947150724176755276354033631950107867176465123051072261730223384747690257031086403348761347324687185497582452441473818863705234660348783833200832295828236637205354912227997098883528371393545587833996162544347873880971260642166920615233545757664569034775050158958690441261111063896350420914682168291589528575532713915519592660218472409942060947112397838716813389875262704574749975742752216772088913354411196079171068423483754177253561195564457945310304454134054255485679987795163058422157890392753969186403593921223942252593095939763156248740996506149670125843125573784538163500700378882331263667070533716506466544138840720718994514916189556245377502154916813731141888747449241615423969249456454574565035777892912688908226071968671969047092752881400772171986224254497189436446900240557492973046366532684752560105156744018333209863113299491108953011430133784062409805678735056706233149964680445003239347123908353892377072497034460962748565383142047101361916589495620546188249895439485312526056878597201380677689256131966200621831360170706154947052238078660164978025866054060612042298039838120601257053900641683701197709748966953329154591094890564694011713296370223048739367596781870424589920429363288478285854617276777309024752180057397191175315517311466328184699977751198772624365952333553276520375441635382596883114211922655815572887564139460124790033025565643182137162988592570395661107589679014403244249405292685870407972751424905315852483098394457787809179321699622415274724996040559346760521743514172904930839849532308419309644890820522948816465645383897145319949768466915137071202342222591346968860149607459781157150600711369469378346541548256013411323257789187933411172212135968316245858518625959397681766463518062720603282129923753708795866063915609293437871258127006270375337522203765851907142881534955055672854224378332318311433909833054910298371063621454624494226416661332711400933813234508372628573337360419098570094116202732487569197624843766229543750781318459720266796603423137369750636770508591183658041204831065970098859064132625938466703016355531008095464717817779861637241358257999937449377478608649285694429768483750606866282246129693677515915232906878811968192310745598532023349897556392131791457880666820771084994681320370657030505373835042399651129768655529838679830789901505259831982781740016546664835100091130590616943335667074871829553063019988800082849427373747216951204089093870638088305855856900867528452755018320117615540506901337530996643191983017939419993911702914132726155331911648161126506404142607018950806140334651581840351225728633630292873668866717125742604387353002917912843647160164220340861381359256602319520218957701612125497707282332763088492541295277957509195612665961709212500913310845438525614146635869001550930809310132721497437026952993274619553274263939431575059906579029653366508622026603097155521040431446064742506007218189931869162981205030007002807830571980291005798683037681334031604544760416554693981280610829429836687936443893365071610128193915505237022530178483587248624133333797643188268474692583046583113059711547530623075410880940185745697289932175372676231919507655515999085668005158575295319613659917285634456146269584354544175854239607645821759614044077613286966003359770044346874947729743373190905023259423015349140732617368709815718646446867294005054731890022165874694227609013580383276017929249880202394823975428724850007512245587460043972182353595820751140894596648834163231698777064068790574970285778079644762136157595483609693315262938851131158141486305952670564127164760544519462634709882104198240315234349404041252550528217001804955406797801878134695737510436256195426834876041924809014316278024110812940964586778090607224918954419883874968725365643406446595325027597806628321306673222550775994613080774195380227870111710739389844056388381967436527506880425888120209826660553839052119575177495855357641455830497811156865900655887569499073230624108326088053428803831241365257021931853807537887185043775806827786464170246274784783590326356561488085461624518236855285147063516326055292520416061133782085130266653471430313242898064122437644571911727765960623283948084862374074207777421379941062001223010041176935756579753237969323849175930437897543822309013044976347311170954643900879609348394431218613611164071627906393377309616098972069069510483490677442560761261719896187774180140474063139769883765193516228904698456205817964033711721762049883294036521878999059949582871488147177734462169680559897476239928944903921975550277702181977343295024425758017054321233911905012243501898607693264077049683369523567530389134816222395367509003721196644765104869619285496497727899826141211882332735639927061000408426061142058768573789430644859592371528510263323438663111903125854502346813176032274663244923345897746294189178331998102880734133801113874775022318336626782587521406534452913931722574010084880031148820382533070082315404134474598512417352795260273329623970000684093587813821396273982198579853056797297962661426770153697666392144378591453603612535859878542516957293020619619370794665570438902235991797354571400906072277403688177684803632723478829944766217894549923868688847160661384732134080143221511427490224720290523627829319010191261100663674670584104062851678194543300819401665211846957932966653299350796078290814004180734632215167724737065630219661042026302319266710133710434805782097821511248799609403127239650531777096507668236838989124649193532799191897900052687297056758102152315911958589612534745464274038396103056922080623608003677565866624012447762949796618939119097471787412773872342256009248160644339496800463428324042614236600462555659909009811725056574464578622451424318098020771380935305655926316317603082645797240717900468787997251584821430520408822097377758721740840850559045253212681027060890052512267314322463013034870375797427572670185723005692036676831082576697637098912441534553008500194456047605951344893607387368603758639404296241535135243251577524400427371867837112828872093519098471435207883150313483518646826629926436969638025401109384217020514339224695045581963130472320100299345796616451291883893204868234110004577908052220486843311755083088454432315124791908099096468252237205255294083031466941336647872242845233941732242909123840643481775385749821809071952563165807156529155685742786069537035214141623423913631203066270816653559325135967503883596737312775986267545115737107660240511993647891384143593091535903672023743731217153544710783003465604013405376741099949454463004420256610143107124997832067332274994766429218760223331464495529427350611484168938121810709343327020686114390043971413854416197574842113857792336649168451725401963844279284980609960131274119998940208461367999683564194096619063753587678328963009272079825037838973713901835650089651453097743997133955380751843622383774154058197550781260902460785946910998788594911700446399518267813585861860100831261809842218486495888491545815802141834220392486271682593703181235874840046832559355265055277397976201768124520852430887954293148264776727025877467346965131153435049283606396353653724888197574476962909972372197577213661187522537242001392914261441130407381689881505099729816852096741097950694418446846170300535891704727892355924718696214976542375043929609464747683698542509476033340302201077569085241705442680321253138374558452394188267456529920551034792256627216771866738115488194614684684467267417520622926975825581814665150154865868803610873651476010378954250840960677800378249132678341002649133642064081937509260565414305496000696426631940706803461842747854459932909142521841329830430276365592111750081783333824400407032941718819441463029497945118019430971723163722969175340614283593746177807530284691887782764662769265764590149612975332137073053930536283128369608314725650496965235009054141771437700584256226198695563811687838205601829490700750731670088793888620188623041497668719278648734005459984240782395801553211659370551407992535348074004798428923694446851994732452122744705535543244815251878499985540869315909988880921871383681692609637938622885166642077451577348386573950016562180025621978088536988434057125040308809456448214371811646869786798141426097099550620132253125783570366592236629096021251868180723134564103554718243385063485293193787125815837921581140145467213037954624809135185637252917963493322758920075043736319949182829120975170354193593801455957369965714984482545863034586909529772190595009953049054932808367393228588352125880186670363040025664904686420710058046995522155389707512557056678359368818111740911275770697707804914452356938856127249946417064099385973099777545183429549653760531863357490340147984707882187100363650358455428294068890599585529608163370604005772780954998309101656942645604352368459300955190247606688760977052031961315264883624617343404250363470112233648434335380384499193829179061968694394683220747386192504397553500500571044224038538210398036220534569225308557011741620052871604544599281467189063544891258120530097815403388501897317680396949401723720920828147671028839944460028046204553868684517112976202792244851849225200001690521855008453654931730063462008213814769514455890101951715288242421612770874046313441803255805237109521523832226835840794279014302701206460714153880264460429878766484031977696834601757371699533124484223418099008727231071520076232574978725939400523151828949007618818210926032701494956795638000306153348814331565086839973097382950074635626857303337245328381561740819367143362822582648583356471949505072073915016272198473544768352187525592311390030768284539312763910588897718674281476568107655225549057090231349864801258472596196552470929486840578461460502201135551050384214778727886912774278806869929934749129909213309881975900738668298503338322446962941532925345598757370880761105174283362895162693293291985212002002778122016490602010301824495098781777111948519630650931844846848732657455788744888162826497822264301174324824105192165018871737414124351097060276404895729746107792077358553346514320984229506169928314334755776879364020842595151568392254011580012421919560692079150266391160045876500761095506807597059707376863803393075483057040712032923377913581434445304678910391925031299719018156960879004946296269623422639593100880417466511353731718340354244369405848771580147601540004400171377558662472757934197663512230786078853347069391540440116083885280259639254371476738063986215825150924869504128801513471719323272601431670055753903828812558889902175935406884592090771047130001249499637384377103610685801102761077922824066605559335423996231256668607489593297120268261278986078294928191065581426680880305298452812267675880777149470594282130515971580344720944265069006358690062746628761622352964628192035848726730672358145966419238582560549126004064196997771689914790047850899013233744589028222405553766375602021259072555823950621996295670024843954750291413000604189253255272290039684835504868797885936531143604592944201664339835486063616230861794590226338108424096134196315142622864069911858689825572700221508832146581077732610122465384358655349899143274509668738377506850361783039774516173238723524403048066844658342503198208301050728485032157118847601742622021911955051079098735829802745302214590141709236929042281999102738315873125178996537172904027910713998610281566420916345679309296097364926802569133453003750417782747813870428491764010125465758956848213662665000286734253376753342342306547123486569001271854362466745745218052920678133125129138788030063889043489173810235772183626810399868995164242815865252650124497820800775258079888871983355545651916422942633280620458352707129920982526353450510250146584240394557700026973042453584461903580617085920808859094547365192519291726054700258522064904258076458043055337642918852511861880813883727982327822987646867000912778464646380696880287058876886704123420573144274784244287745548960429849589155794772836284506363270235054675447983808172417712608352252196760771387491748388029344123347802920431576513219043760456047563696430709118060694807076824738414472705724250429331288476316961028247819568605442595634313204004677981170794879986470154356074533561874426980546071065988106010130061518242767763009049657715006989208893601811322255637745230274440397140878735133899667282035483495246605262902406718125269991829550256159661595413567761853903610639397124550661267025739874072234524337797075624702253871063437111355672657228357625457818186629871538596533779336524474004536562521644577628281664419654072916145822789481217103425009027928096580068665631014048904323840366854587749677294182982246443505647465241287913116431272600676788142208279043015750751450742213660732684983585050002845815810272725372152521768600310845507208044925331794398552726499011194098593821247609889529870586835360401856260175148593978883004036259087424593170047933784212682921687410709518613246762696697089747498980647985405399015585013376695672567708395745542192756625437090336331393779690355296760639417098113089563169031202834421276384610689364575192553576864631829376442628077245520360404889311467889090353666512617534595825114854854159694671775384392131529191370542823555633988002099874151458301083602385713019649055462262630077399664647215077131506268397459344066989777478034462442414517990302258235714866547327864813750176515959059272936725124259554058906015758572818779074476768237084937858586759088072309261500467525103795415524672788033756726493852946000579056493862685778720720685483948058070661530633379657254742119203987132871062695202110965362535025181395991724862156323475197167853364175947903687951309214001174614459973629511064829379224052962408097759223443754423627399899167241398990809668687244795188852648139995572336361574096633215562983676963579969605763930396052085565910949819237099636461058348732852541725553942392010342413618481050881672502679010069283393151658341483526936857244041785286236980794696278639044539540703417214154414219367980209571541072195014610710433116763675123313627562498703314361250616486617882418897641321946846154687735321906082831764699699547582779491973043862634907472816599021457556832992626243482207974529979867770267156760526092578546129003011646226851683975992315569796740698424740633361930199195110113061678506786988030728164060736809104427731847484301197038270692336629275929446220776878297265924888422495458485573524186691618992381718800514690199804600408881335522577100649435841153393742525738938478656939717875437539940767942649304611422367473851568733699055787434587879738871448902643175044297076337758626344810657779645137433728222385536599914830587852965698771632685930681107211074622697920467408655402302801047120216683239183536397419431167989284887319869863872352201405565597119255086317114535630688129050627889846662883635114673640465283470712933925756886494879505480359029207677487254647303525511651546209307481518824624474672806117938791629670159431898190000974133474054606983657777699081237747700053955713987182978240861726245376456118227677003498101974657600691200462846724073132199884262405644575272947011638558781573572244759740264933278006902681892115848915157853190525665135651296800031409102569828346051277972056968052969328067697386149929645868965862110638486329875359248742972395576377951906509792588533326597983417309244491350772183299362963403158638768760019364879013068470468482359584233301407966102446572165458484444486879120133191362059835798115389346256313135906392988417172980838509091122186671582805811135286664707424951036515203978321099589756591256764633641108936960474338063979810537548028531275113804562674528154817325574457460205339866947637092005596639938834616531287351829006866820981144919657152238456360014967361151988707466403790643999002629747276935280543061718291654701433211570563256853063853931071286091193814818554549924798948185266060879948265657329685443241154914587833111338857268785298490542527754912493365278969280834330420101353759389979311879903131525604929773478878278120621799632550856696112456062321750285033604219881689830661439272798641709169025471061987657014345167324985070747093241229112924406672216581870271279946921144519999748626519987315985696215369879706664625916143572270323425849378977158211759815365240952166146201799700609025865506042540620460643778344324442354536077617614998394208828690959546483396234956774647798322657095802825196635082091790311902514974961292089315538339641218821600304610764345592460512919919744155903345648362434675978348349227087089389794262615364687943346813452757140972179699924293083107621432061515193257477640656372631354676321681621150599230578245036881226361982320431639609160945331257194068028092365356491053210899789752874986886306188992638097836285747633173645447203552714906234864326986521474390458302697643694407244473576601748185497741270183025235264673798030603940555526783266949468996007652611189777706432386090058294088536373845624489335084229850523109047273207904784260400678378132458054226002818441644015068480536932628986602256814990609252023639242502845624900265930320079912420834908974195290588474740044690026166770734928081142714968333091559422731474715147682269530759220702780603410859848540861405533378582400619949643249303517895533318018285444428465526164064497559239116260559063281713201533884188753255059770458908604062029703021831787587130577400441637661224355011284193803789586269432387353420101849642185784300394291699826740289949540333298695017696230227119104894342494884113043936326645535201355641884854203196773742211344550193544105222515265147708997084490166095986994019702263944088200356673422332618916525375269357577615112437636408260637055245254865277018453993709188436678537825077155835620942149736046044596960113298192500100538112126254246289473317712909193791051976261607391634657241379557701566964102766118504138193534686646087415259055461363013225536001877421783359628577790162632853030335575447951441345829075514887215710644425533449673645725756735926894681811017027063575844225945073946807532951129845949345308356374143359499438105501429694517533781744166911065872691434779148252173570383342517123331877356247788412878026812204298487306711979506943630000538056152109756344808509703554890794017569307358779221776431875393456617055067447287980397413257875733310334581587099073073527557950602597292564359604741788145835669405216561160838684366696678589104906389005012048580894562335093149773972800298748428399872706894183966153096232608932482243682314751252950643892401907348613961734609730988404650852316040132248191159444748789111570280345282484770067466699522917111041332091071491748104874910881870005142253384488033460067235957314539307860964991908597424115959547351398406453604736698246379951488162301181599365230322507510568320571065957940331186049094624519139733453039761693669219815207699056104622777601917905604568329625245498618159482129427027755839923750127365433362918106504002001370347639991031674506441411360155134893484060492678849283940458561269057205318822922068635241473597176560771228158301323899688382525475558147886318934475740120522596591389909975027013528840579913408556157982908380692752602209210455134724580505708414087534722936961126898134407970193489812911077797969209615622608560039392545689527717683595410734431978447447536161239687412310525083908391045363235146984364499071012996930468725514019275193960527567477283486436671023286671526950806026110101399070039295623324088343165947435076546181711755840503928551053354889995273631357510547685993688069473456489917073584304242111659586936293493370517114588065369561755869549767278057007706282935462605693771967318070694079097688982479530828013175800149699861103770905909056064692010267373406878319515936749234568234225388316929166168135800494299399316398494439349915243164493409564934075319787592011353192676087009160123566427056120201228733433364613803376605803856359046802915351650182723106353161649748705352983611268245006078892768430827463448135060538788532916970444067721929090483871410160211826117110276279029483411192215580351842066555797952319732461215599702550630061549400740169343167547997176381939267437920536427382794969847282847696905540201222482059250256281518875350365341203764958843300787539529960964466534957410265632676997412741129566524475976733476388116523304925051807653737368223168632249262968890332601368271921983541888574228821276869494275745618269413433477821232356190522333131908794480550197785794218480767458906655336483171901843146769659080591816714413506924397159290517026391084951976356549184470744291437293462785732528286687951915728822586938738252564410959721305477053344014154852450655643998680240361525373867856643016652126823685045488448382141974069731922093147128536636575938288689338489490436386383302422747075366020179789114313903963178123214553205083135221208614711696193898629640326215281654514518958905668259752388442548700377127390539308970979922516329264351328664250897268942066290815445532105846441732706161437798825871115523174350821702145083301013549750522168616135365952651264165409656483623099010174936714704964936279051429797087942746695126778068825135500478409284122488083828587745684018656475074061143246297941583193173495674221732888352535879193960531340334347223702780651353607112840309510242954419173760472167983751483869528630456683464922029792659218215439563127314991379847750150385235665166276721743749355495678666094935474680767768191610554451157008294618315302954060225758616855297817294602643826943857776177808466323949400529574098985984664241997357751493658156000625679020099041628504456749809967790987620289329908370642142352271267011620214773314839442627512881880777539268896679689237873321555136825601614034000314792268635222620648666269361359866065621553302195636589967784153038471887239841469230547018743639311104198449258309646623317564528663011614242044422952765097270113452445129290316063932978533171153628087803580662466328026210919264945135701314795932656445022944294162704466257363220414709593548192059079642931224705115264422587431831235894021500468974582043687553831298694504511809712218185022066019743544094752255357157762152718848344428762246771166730501841092247777757841897610051552790852241324332739317704613959736430638378386459222120138296329178699291969922815761856073949707476520905275139018346039456217538844007629310828816619570306642286868322263921391914366459600894761649068740224447470991045276506908310358342542134203120203566887045812120823315577240420641876903026047860940021203987958870172149997328776042949695063375561894454462684081476777406000126127862174541374242033994279358813430614842113619755831535965297446861109193009839463044579119989759923043596235686879383813195248365813274514581856907580706928742292950387364499425360530049709110714721150008987725815027679773891312106319415464988784897002306701184677850166523375424240956100948668165657453386040536541249812847267049324397059395137332938678755258066165274024685215866184829889106342602152169107827520199905555597279210587744715078456079314135141158369764636283444320754734527183212755653542462679732825402960625186957162701686274867994897821449593749398495308733697626640650866369664201848912799400313421172903622843824038030615700806259225581492206345234435216416812560428121328980053929209630318647124318588229709455123382547470048699840828548608222219544777582392664848392090208481693543891638557392634303799849681800195624636111437163927548898783947509001300647012341455110686855698207799760849417977371691068539197477080591342332823053193449214861148327302862168915696425999586158422506554485592880934640129272414782622018287465387681585170054699438649131241934237983635426372572806929901267590232388170767921392686356016274497406974032651492811726568876055054859969598761041952831011630730525939108414855334698752858441101043553616593183971012631921685904711177975115536837695727469127496154251040636900799373836491060235789400355078623963557290587931408904271734573640526384906218236835622886006746371209187879047394775206697093413772703471270366354865546832924009663210285014245422225413349091261656996612654091787388843269815602663165379735174185974206987008153616694151695576081804770530440442997143848773143575414842654546057110696586280263600503793395488033340736157417557707860639518643827853727860505704572736504098376058898123460694732581651178316306308072629715036910178771675046572499907386709182167238171851134016234938503123107759189700301703848510855860137015523583248143488276942622498889001396901065524472495779514216207106090666955697847667205077776608040942055421236467950010944836292165228069699643544992700437837699431543251436223639621083517795971318993855501997539030797424874528970761370015264213538167683222614794723847933049336471441565632477557882817211386286046672235142017854969623484419156297181283289633286226987552153894588646651942060750125012859329083889475290346273065173445896282933827699374054515981501131740716328379670326496180460100368327748481999906983238959517655878612574557355545604478523730415948895683414927266405191514827437075868905110990483041871923337703291183584707926655523063554887152408134079834231646352734036044231462815347332598677164688467947340867236414654197789964865682660555608491291525519471912052521024373360695412955686582110966725572130226595068242387046387346887361598279009512580193024641401403782677413320745624118471200339518506639642905630987356149338760192028093268898338759023671251313316731222976844507247505444254330280939036811813811512625799148393254557769865594197838638164451833220086360826435571847739145343848416321297607330634248557198083855535951516636720489540263316375358037318843609262316070551400038131755283732719028894089571230957901533183336576467689608584719996475318295219404835189591319851077607702130314880040036793689967747383249623603609943929576269606430376504741514612195264114106943493167156306226173744262283740661005199460189455741442668581140373878399818992300462318449414719152209149625038027027055491632083872611131408109502911789458458744262458492339649273377659383444734047522770205320254853940098633289138947098082327352730440317304026577211138737854274194828209762126387598971870671760942213132836940679400105183417836980132154111658399027640486476581957794331882891308229516042534918903193977431023589013735486047038369537160643190778030759920838545435516845363722979595960266622494204606499666144432359503997169383609362771582352156431709232323136438927801710204962115595739389256144758567272504229751457836187709913816020534884586213053568862025206306629320166709144782186895052366594952252316247219768381368529117031853126364002713793498627404490050968699261920584639319564553534621116949127167633816274396253180340506425058859324976137756639642190610546187180918563852778692505835318195094591932163836912253748093630812393778378537766477204630093795853204787623998338446567214522178426805636279533288681763152302336099605070969258983738040613030847695614034471481737163999032617261074840700099023572187953366830503438637271249055222493937684194201448503560307229578282086263771646443852388314018556270712298526485579035163934748206288100182774976291224942611982939765260653759036182974465445150976226262469165959894531767829876651219255145398336583097692349187452079985955722345158763453019560182773327500109202827909706737024753738837134345026236831346564656106010262143501549471663410121977007536492204794008462389661570340472051853164510229445551840410729663128179141380333104498125326690625587364276806700771990121773106803590037746872082618384550720805253197431922409977196676273627671176840703202650479569120791667000035210738955481687880440088789341705481057725289498142130659459403022155583691352338838411353219352498438698397752147600867607807130627997105923884483129158678233688499222581139714415289164313770305310941175094347620859677447877619979281193680323217642169033400501012018694320620819726268673071987123925649771930513717293420167341115386812854574608437473185350180913315706994786896367099687171707254121165281670562994456232187940138025914935063078733695524692161770027565505152940972764319075618547818669183329818435529191719157162046455084995220507609092992181011015089601592997832022635577364989819310320976303140438794408244501819055607648306481633558631123611462359480882535529262864682684459652261184458436480958290389648897575662636958359054666732646813182915668946240921889372307700839778983863832960158383368356698029415715983444470601159285400743564720572720974555774594249041122913121746409173420694817528819160172923201003944750250791363604970634638515596198702839408335571881977434788399599890106577710607880608469782720088203576232564104869721747549711939339043820723895202606004321966137635470821276878099222541132670059936602065695873800474913276239324704840743979589874300481323375081268554104724925440736829433619493049114710861864071490617002887888029060274656658794772251748045497856502916579044593927422147608466362600202857366780429512594810853065402703757713946549117111815034587137650953588079186076717242361787774041753089924844253222029403789464928541928124274089699718319265017641838852210061956442004910275733232435003886577846672008781780760099489330935195646633776687050559002330493838437663121161253313229792280246541465713451837753767483850208747022216200574485796045854581801160064255201447251612795074615486177400800295728667400312611726624532430081697725599148937038009731265869955919165682021618795780621323071969856230600549921321155066543764160695544526635468748006777510919885391869350210942503981696623629597208127112471697186485241178198304913955616849774617389974785000060786571449423693200723900276473704575199565650907882336668471777774635712346052392669718957081315290722374463730636177064934700778038473975136328969023016430658310161085667431249390581684821217850544963892895006689274734727950052733446747587982474491177538043658972528311117530906778116960958689892503427223100831662111725656099936034596346464985947367877269689462040991212630615100073594352651616164658051567342229149620734587712704840065849198749430553600092215765698679648127963423722974578198701900808740818798546941503878795292358537686370464060595382586413273298465795048399257661685534985065893682943826618207717612009919840418830460855299865169704049595082073196961687291043108003025871334074094296048516799632747244229367620827527998873550233747807541810717430734284947931355264749201463575639068937792689227057053830757726875328809716220666973230252370245704292613980991841212702740056419277390665464339446836514385789339739530301722518425686104073031092089405761375232080791850433871327114752286841795050563133216068578045118700064300454049127336028037914134873076862633832762146414407331054531089692329722404183586841132282860182695331395863554980593399944905885878377591184872734155339318871900250856469471795552646115283042878476063735604153729376287716971688700231115661961835062257681027489464395095025940285736298746766560270903069114424753875915135195752286647347385434219008868302158328379131806609357779746581678060543659272107956635913410715032824522808368915604625323997795543971900406486874195805063655715461114479253213516419646121951976460672865342206920978956287394107872161740127520354754477932099432728550156456086206649250396854779515357371759650383762790960723705166912817645641512453452096676132162717353252653173875300612755001617717473645684000193596175443241777564335340191588786427187165518591937181062487430998318310128539065822011641561613959089182890013368236147526075337222538813664502286890226178397923641577709286825251746464308442714698764460683899957727350090474214878104710695286149153504063692130517906668804058440635542589018524940571855767348013341766665159823039932477607539724755696480711511178697651687558938703224404124937693549762196063710045271615354875591005695353792779687086346892707680246089188571120978568797830460670499776254688831687178201074687818989573843817194036498860351219523837877843753405198392526289116674598946544144625569162382319580433109422632584946254370795832895649909804819128640470157478250677020856431181969294681251309089405898657230370096224152695014735173505599532331540039458655315706819899986353705841408952833030210413775982710171898323090902069184966231401060751616496912224047718455486230079045995157676078486325660323401046151320984196061010065799153455118225552543984191874467394180519003321188708263464614121811579492580327787133608675690848541552470400276783202463949310960510496824999528768590585543961844802588828074798596781534511589206875258275553497163191231188509083455923049628249543355294671118294532906986815962612027357776004323312043924991515172557839485707708834067904498474607248931499129815253372912300677902828354287141360897985432511563961247832008341022085012617228962991525615477504705056600382608122315579988626080237688391197834785689060784958009168664924425446030050983560603734959422033112658012295806845043761427812085830013938462797992594985633503697726142625687570232342348868532121275420959197156646250661998384644139688722235315968628951301379344628898826277371027176352480874376394836599215894170351056095327660214495466005174006103318667283634489831825740785053932500711701937304408782662447347548477400211690291253021376059062874925551321607674832925606087826607460294372849151979086563102353854435129865981999034889332993683513343336566287309093339346422953883155824702805074523320277280821093613345744821617405567393418569384643653406785971930155781694922717108467342275534764727726513364018470053773004801085983575520193199023799389671916119494468084745836728242597459375683812644539216520770087858932095188298066098477682065252938275001330522006204639648094794150645127283916059295494010776122541714293518468002123449423352482570129512688131667961150149659347451746121874383853595344590196997080493433872173277853982133923127489433575746251984653526091594883492168648803923441536769033346004373306041737653576685928345198036089052603646382347483461411972530194396389218881747543291241472395048003153689371031485858168326231333087361959053899651183320262130153021303282929082859524559157066166666694654519487753628376460658957357002675565108213215436098055912886972293887774805550161852808651702233432484928861473207765000988073504461973846995214168194681176099391963531446649833022968512771830762609724259928196056289689954695478043326513529047411672396703298006225310981288621317518961553487476105505690861399298001603996515950882232982501643119655356890881363044846077886509550796265555972831847281924611568888435672716698033462597683364977681119230230564403800888309140882812013598480362133985092046393940418761391278751637617881728119936809762688395498582507141325554448326734209513896167580319747213408435559977496611773996924756854016090990933123541540268296106597413305022834479618820764350447295843431052860353101383723931467766162813917716148452114907592192798173671719935773137122002384488247006120564132690663173206462951755254604945404870110361809056914759619768151505149122082439987730150856881401863613119957621336382406926808992628408483185967159342434597524739934689044200599819064892637153494582793268981024874517744437672548205640808472483531960113988208494128061488980146416955653366015014642142293193682547005142869331902476740442593132148952758718211767553929152176877284919138356163770738322937242737388972701512762681567607325113911153953291185004582911158566924506721402569804244504664971277676976300465873542604990757325543542211274858881145347355118982508589989694504983871779627705183749467444048206668048119167894854359175764599556833626120664582327823272949322297955327959667695290209424006266490308811665487274461976261287499888575112343544359430822724112692701691634280156333912671842999672153643046973095548314416444935032732883932835082351819033938545924330383338642414761513418174543764833118257568562580498824349736801907234469794280623182072647866171478745999048399458696363039054858617643042768231323589138150778858330140870030270866795634149180323689451260774019741698425225828725618225646781440570804223797584152680971653867776493340438036580347837607313257353971079827508952486435331567405012649069116614675870937599673043224359754536777545171943017345567367200777483172303614871986156187082925334532075357220147598364402673526600090207669337480326164325518373724919551974857048432720320671011447994358770812551990557414582630391850067328517665148522197956930796347909921794422300079074800148447286931899485894283425957422568028449264705975765420342181932873401204691379841089214270192982960717566289951540726106605866921148217294917530627578307921763710977663684141461133911231201533403746257304641650246434538279160022292146058546202170843208642888270822091606926955292658105782893950795950676029815000453155147838653770413794712789553630163697548951532506984734759975131362213172018917107637489669561367678758576346329478789071242245160795882687345722548490571779871629187581341135912430935247541917231313649299641911635185494862604913006572545062751619804804822649150999844829700708467397651044801805792872953218919049920938488153373601508482329694132364458332884425063995276986904945013130394838205386081361816431902047427010991624664698384380023621751276091757558699862733248592373743884810591316044169313262484736236767523151110759835014151724183124954359986726185447997229398840253711356713731184859199739824097777178745585536545250995995388394526100419463350175517237139397524873975081399961039528621460675191259220097047190486662626966546610624042918194586089122284283251342073412290977705669837444424211923694754980521535074426880469987718840092328497090514075062414625013428492851351821717637798942329825667269289990875976279652332974678490752248514335659337159003256594595422211155907305405516768480451725959012755372535574288812854300771713171027536004294439260833423499099148529067809994092998592221872545057204068473239191230327877960990355317054666755860506218335385559265623226106227959942658290615672118291644239948903586788354280916403023257171109184362747560828614284145965108288343703308340462327232750531638539760770860125695087170483183162929716827727230901705234057160728145085564378047070047177768708752001478012042334086460907964608839411731250994899003513783330820963764105323728272908141713425113394834493279166700378523879879325192294214615086597949175631639479948082056202374191022894479850778778154532212998122929822946068798659868418921816211988102001320933314536613186714621514405189689414514389674789794543394180574651463057693110562058963118685518910598028096965952869404805674764248000617885127772697011259956333479837093773189370478023863047371946923431772675899389159312061543491329357108073518215534963668094592516558168272650660914453302682211065782564473934411059334935107431455539682849552437837738684729870852753953207476647345433183270641331590415388521392494278539509297273483332893603002949794269657311401572413179369313644407759722240879027938166111241983480562418674444776367930004790459230642816010899427148861096084952412073695514691567109479345223422395214631319082502662070560637805191155584038677645893966035059545467641883952697505712794412424915713579799259798068450677795053903493567462333213593497195520926367451859247861904770125239000470708502888156421041947564688287572243132225550291876261528571805838384704177136887824988197861113678773532076196778726224158977837014020839068388657905092229070028373911022628169676873657434435610606789639335765596814036411843574664820234216627946374668112272766326613365764086777134206297350290949153131150092431912976980366799112165954378194625772449297535633055438954842909907502835023797040943901977892899617055943247487341325003316981447917258313187488607545134442984721193881484482647831583135182292062497830125740989341337142418713444900926899869907664189228141040153344450249617175856603172221887182951243569335927853035166666923376249269327305009275641034619012484019312681474020141275675925037637991906208323763150440575201799853191876071604044973395136085204861673838614292955299264858586639675339761491498483974211274496989820500625394296598323962203811202340501722033555275764303467259420044230278079530195810120916851757257970375834009641429419183263407656772585099993301291667023886136264344608066260097751973869974099347097748941459560629091042819846143959604360805042053135868954482083859803715997946721763451379333905448131724294741275532456697297842630893928634322659467472519209927930203507706355409854942524315236752872931321040832371675378245550767029054198864457642313386019510100521801487344064622786970085640137330280064031613268458947285826184540805627714753308695152353344252389473078332596007437679869968186528663840236561989599164054514300587517520275215781581526297620967472586316536138226109045073351025190993776733750550077620928131411455488602535291160967015787096059662791191396533814559821800805121774019502995740603677873233677606781137213333023740594322406321720995741245140687085836117419374700656747937648667744660613457770872045199801367940236328786327294816964275933703640240494189223595161312596746984599222548645192979724439930843559756642943168786478150412362742572478071644468774249330566712306518066961897212186928974935140965563141889195460764206004943910962525362548720407271772917790040960137145073453647833836694649734245809034936446509928292883851092653451421673911452418847937888859873345849533784294266112694031686588557798759171726601319715011389754056025174291393869863295470659891575671194179156472817424323411664938379016887441926850707156129138255253657416008680227445852912274437641328987217349072642494326705160306353481965183565087681314937752374686739562626896664601986490300828670720130463492420943808238812430620436565758847749876093986749784083198387149580946449519621523004374079832565684450091421890755400901482003820013053756634729185682165969873603743794175946004684889724403286556861890118118190458495779505597770218516993155787589554445668522972055740031930930860185450643658758843517420865154404156823506317910376713061662017239449291755463051533087412383998981786844638965851324688030182179896429770379220416082814733374506963263245324110693843175589366090341104678205877785887519936509007229243576918495975235595275037441512621327758396930549714453915466742635595186658500750647675984591838350545362707365248412648345301897019674596288989225528047609467697586317610102998643473744053288699201085260870470171720269654001780462735053773492538697243972860264206201146240203097795219837287841216035298527234335139225874310350226027158803539852837856896827162427483475080345020482606835639576143596522895238868332524515352105670387815459781065668521365423812761650046801218052521911402732053239363854574347442675102096025494513903477134822771111003251012008908076625465657621679122679964369174824462620538147476720548901373756561131181501714265250462797434253115912365551109225683402289332095106867674134728356860599173179314486076072731062885520762056183399666397507332431145611701366019575952808391140462825318824456181984271824793162307000606843768586082212062744223268642291433177681235889128789083180508308273495718673871106991993491481129095630995370322452116752484196530854108915845368603108298057713101512807910127243204006067996772003665796237977226327523469995073860729096601151767606426086041065299685019739437951393050967527227740915563964552704058187021438457084147312682799083659662888689359844245958505513175679007736488205062045866154609122559108990555020077899136107132281835787795925313986682935413856865791452575301807559625130871340446247672278083486877087683457000914635920641994716488104249285573260273181986992296253644819694955286613775316121940723268281781203147905194815992148819775636152387685834607788343604973156874206326368821346485635649560104862215712851364105304260813732986773019353950449651507446038817046959109646664397404571855991364535480023974236322977299581039124518705039022093480713348878865216119370249232299486744620043222287337099090400912396042615808609382506449478207821508668284306730191191449990219688832797448321279335914570830624510744527430969955985624879826914202104001145823075884207768546445400937666500823768093948020362041486735010107916715640209302809502715659065181222757422778905918244400256368385007037202317749298738211697503460508948237692130429074755181121644848666619470552031816638675584800479922832309579980959233904124269672355129596624565451731238148504060878568225295748020200635223862501245725798092438417518677486702922051692285807988349455796135129177258528227562131334873787265963080508320626494318518033016158173381642488728130528732852680362329745502599974630837865973761837916273766997966314054118782491608655277920909210197675909179252875279584536901104608205623117437207831944548406726402845182939761391933215885039095068809901066235216556830666671126433724519890276107435715540058195905159594913400609698795885301718802672194533757924222480288451529287872166612230783927430205475042581005435330538942838890509102311050786950783800183617773912227893899300324922048885053467243703416279383929940299827717364229195654514021710478031310814474902389704043112018276707804691355607297404891282293928351375886975362168063022596524204367403798332140447679027314927809639595371748918773180418653614082073634032498232534710580949444688205522498697958743774799922136449208023863725036876069790590423495636021958385389986851721223593156239767719193275481250586756062580043647387513906225735227112942345272859895733815981019282770492774798789089520465009864885376187862167142721126501942014821804274507272969848795050046894514844922229540089348790233793125178268532688879757612192395025358070130040782248414767173061557283317893650182035844327654012377175753018536652339179536109605790074182668576546540658990708774132822110295654954823187079286908374786820918241003084355599398520812087115037357175137037901823126390132540019673991682605464584576365006626411347583622688498601918516114282168870179008604350142118302277910805312322401029082928629222476430949466687226266166161530331260608138586541469292910615018929507814876425854035570423752707297782773929854381367464133134454273288725401530227226137206599950675704121684795062256862256970770442444147408908999824748848385776243645477076100120058315199356008649321635234514791308587784873257666129177436204271512177757625647574736804382146137248502321808636869320870045911037888371251637367261163088958690186874194561811655885572915365036335610203509334850699092638993493875200741328069251865291631663031172015130700947697826151134812812161553334611951180884714700407965019203911474977707988658959727100662348204981507576706314525917039423178288523540394371148720888673228244167761723399382690962411391260337348076823790007901098047367324557952097581544730778690961768822524090315262122602058297298065004463279377215024318011753028522336400244244517085807251233159225119732233217153982749954166343456885064826490688952377915191260688480398135688717621388023173819565615130054774901078293210007928760526218844124144818766346915459015972158586534816165390842248061076076247203841193111131847966065034567867834094582080703419662120081890113478866164466649963744699486363816335185352027401593045452885004722950431847377230254235843412147081946296861061490409931840875303512947193800303015585471766714495144883295372552067516951478063080599586420010965344400496270929764524629755881446422999131055352455898500895445296312640034961759316711893618224155895345958212365652493201266351088341695927762708074367611179146816788537676702695293450612701650016664323840842925662634755278543236073112408619525322049086843164282478834374650421001643006010053036426138986602646677749790454721545218126755977754382090795206366056531668667070266693081987476647145054501972871927284434311463033153544118091371980209059111368341290658476326067572003402322087564792610035077861537738972710721166308258774316616163460886109230566312211288736540902857061451070228497460416084043520656062661557648553905925198508371627118001495007409753558957489286707160276737369854575374664019301570135580103141501865561502695494775786968142585204910722181954322999358128537566814901400166534855121588881993062571182844416626681921062849200883552052154852534432423579148080128726399472248642644037757308134914404986872246790499265605983153670606095027315230524034867062248262690163499538570973371296691844570722310679690813778747295226284110821343267720182331061531195076834769576098794491993702797693270299599297955759351609535631737659217354385409963422225447417873470651520661971981913873978920520294335980815561976476772283913205298510985366405247173341597999310979244932578397288411742397043445052803147003248156429373375870207879151604384626864059124596510430171745992476886659065006669463770349819441211990216180046523064179856589812306916028350915193681204316969897593880518719283174162183864542296786254145683739439710804650993591368879742051361796268821719544388289679209292045654096566347686219260482283915749201897573899824988538833615844688743932867188736491635547450408695637035327744203450878208710815510356524843548367812321389741547994905499554063365925546390487528309285564732714886259330271838334733196006852959536404638870915424567918087682850145885545756131177123294831886475787241647483710568026348164476233773147192904124248142925978032482580980535000208205511680662231627775905030137303632900368417290111205788182967884552463337846093988760431152620714747734314994677156670332633904497152284472586941323563689117569970407440374493176787846023849038615525812846409818426822501340591666174794599502589871956763618223964021157525430346396942908359661221795116085623729365434595416759402397633982146019975304332479724907232631688002160027595806475914196767807885201833310217502496855761581436642521673816513400007805779077456896646222474924260270167918396286199439613855726186192237710812662151556289493075318588864880075715182790187671643194342895509168879758448216560009363972671540020865123871067841589769685622123172010190499296117568668947420900773829481904724969440774823461517638514707395113990462020592601920578792191772639624417757996705924334202416663188373489087710400375110036229021967611063132266520010416285521906931994134331897437729423425971178048089554418175407167654584812890298689260147248391023930573609959637972952725293406210468555665285466946158095709174078905412500603846187489219146471512645456453071607285557259285818587755276249998382924308817059842569997195238396958760966927651637906490887858124078099617208632762393392735601918841574249380826588763934548620677890930136073472551362441009351279347256067717671961094128136168125410601766039600263964691047023617195009781918312010447088633483227871909003222215161970545622943051033313711823294666338344245435448135627328399681465128735318078385382608512694978903229424249412880222963574701373308274953906978934323570074127084632181159009677655331019189929032598344084450321501574284814172418243263062303023900985568784440402579293863235738707253668432073818963036820359863828368813397162989829211216325280262435011027106033923441493621803069544320412352819933229464803400940564749004384570157224543281730205274197428092730754607078827739546466329140141692223822166848028850463998390695256877645444180852106315668426494697344991217024518507613976868318383529085417435141651221923835261913515066633654244333338144482294273083662803703508291094094253075510438750593790886013686226402087707323874718545111023255854767326834554708477494205359844980907607348944940299231679173686575133835546979382143389406666171866637951788704663057217552952912179804943575237859770268584323532183019703945101550103416765743739926898018604068853911614460509016016447717897397859192815324096623061858170172887841889638250913126874913242764064845622839069661038974452382441982100434744768047895366666815303073592798324170335720367961425762911752659673455567012779969753126489189890297766839877664305045893071587543023358914822319976761904643001810114560795078704184415543392913698979014015616546209191513386604620832827231452424298134679335474265903777771759237402966334393555430468494440901423274767249873438850465664184124225305633696224083873853956591226577701553451254353859474905175808222070467123956888837211051670709822400242661974395702052480469491372989451103225523812065863007905770015615081052369125126457069115833049334435308344122000039152847598975874668243689178532994453491952454771379457403762625947276872306762958645045157814034428814187985613228728370916601458553389232268214479434006454171735050054548242160594717727570220668590019564156418396615384109318975458312452344700666226288682461856486035834724387294069934244829273115435268151525426114541633937465962094704743886918981066075438968673686355282411825276612175826528000918263678407246085962218634178669974055282558517238684692607471135987142151362244370845457144072921618570718908600729795124775395396150418496188861686947039389222928654889486270330346578097083540752557193789677295395589613489927327476271740592035094895995592319737243967520389911915158837279804572373940399486875279265497659974138371839646260422365120428233313413891396830932755558144630005773540693387254036037738894148976250437476860447486271838644762188062015339810456332817716624069219771134873086178938087512495028742689107610756708605868394990588835467796133183456736293667876861262438754122403134273509213543806017091955035671380782430863513000254383361931483843255397880230263576749330417951417536524867711445271400257036275840361759269198103140663783048693163939078377009963941926761178501584706726961905247581486002442572003460624141870368367704155023259539942889327995996788987840457481744889981177866700750493185943312436024858021949869542655112434752479758177149281046055251052582189259625626971779319496351604261480611794541910308791047466009865807197263139999421429650912946192170752936209809311557445865513789087653296796130863064958858836980775487213107390437836760368561000716353370164703032545303531458305622229915231126527101465741677274812596030009734397763557357061706799052141914938430633240325586536282061378559853875462054644976110553654944912187927411763412997826322909857941432240029992078858236610620257646493127728034156471865815628333579290507654626934190916352802991311475898370227531863927384845434790526661398342385445700517734459799778088025253320720271471609091802440915937905311559433416226470299993565194019479548886730428965836503483603196108540122852287878284005988821137658622195538318254258579646062252966723850414073954334726758345915008115966931295657264746835722685877760558736232209895899411313336186707603182700139527368616868525299447168324717338347670904604833479543991647167653570379846758123023067373921467605631416715574519692443835844893041462005873203556468860790984999396691496150683723538059210777874165424723953517649560357105507433925760560942982519868878100329724619176456191566192550742180349882886938539173243708375081001516225401131128945634790115890983112256931640365204613665325044604234510636901542829927726307738642018281945655933236747233672714138228813043904198151515577714144393813544004302430975096913241474313091051764393907848513859181073556761091630033908196878335149078087689430834502303742738365528246052868025943624538516823317957807639131596103116538604663316532591401243860055189313459898470638105825436431009727295171894456923794651505080224247415589364199579534742275273710796410931046693219680153299332612677128405966376819604391759559988705392595164253342351112439325885787514100944816878291569367508388555634679397084985091622254457908614405338713485176875462602736603953399458012317841181957466370837181025601699046554669752577338864340677975561070299165883642772665245064023534010025803530029857696506267654628353304909429723956807977794549114316159436585610355467467756449680206754620404063704312040413364540316478001788018679387938380794174642026190267419931763039986088163059967703499500187867587676247802504313494912360532611637260970471314620410653209264117572485465327753342714598927117473540231354411851557125016015952804457493847161341143230521521784446902340156425179902870355198267695432758794842840984792185624017497143361793612981502871455273102576086344693666737393719420515081896225330563332331714702839111709430544739047843386696332658847186488368812247539995553658157041665380715054459477420652489773880348738694045418109555087365504573434094841302598220186718840245900300433846489065915299512764534744313013166057896263359724872351628443308970720439703747217172337106520717855319022685335683695579924643661769769602728045432742873158820968011913291677658858737324464927095563332860738740605985088427639587356917564247754088042446912532729439394253108067797407150445022590182888579080691783066795549482674143026912328726975101119163522805818966422091757469227024151463490615882891753448058830611485576072274088375306849584300114593757104281670903996494843601804944816434734805867733966962799926128279227597644157029267440544683937142029501573050130718028841867916479713916550479310543703032789199056320660494201391381981647733699090352447259915088128310046288922400708643159043639220512568964589134516535725466074866326004527750521800414302494401636416658800897900159712125041074533358527879147326314550943631150026978251660289974567097250448733171111127521852239323401604393496737651752737474715092521175908952637410813498158783597978930005102889849076459839029160846004275453299947153659829570007750353467949449586282099432559469980214942070578342311611288430625259769857540551344440047394184611662495184775076630426917899315581227888623124187023973031114419155020129858745626420000306345610100785785720898683366324997483656276456629515667612468302048154015066480333201154648952045358990117427395552191400930875614610036781794515493195628186121710972118123290362245474157337571601899259954355303741633421113916489371137224012600682058870595923076221801488843323401787800340429230734644897876777208531121283839764051121360039037864147337135624352334851423448219693719231473022566269431527984507345316321125532420141063834750030797311680098735914179926281710134560228766233008182723668030729175279313868592549875894864182900110043093784287913748356028889764604577602311175595315351770468115292234086049418658036620487634768941740723942629817001797877751167727585629312527052968062085272619608203953330801547637552784408842709519144472017989274322890422767072355556539755258929452427819637847169860785122554315103147785951670015846897975244959970785141500755525410576491372871103378873050564380889575833270696453026856282696964450762533169863203269813500628692989629627786063227467470602278790824824414101723955368683465500921048087867113455281539130492161637441545673441287392575636660674579392182817132036418771717748540947305956311601596972419520133456408394080676555780822136916818388884823864758471046875413406568913384046624484809152906031469737375178632851991811131396710223500159790616021571732775355934916706838563260034062442323883884594052630401464573239011770529816640549812656055266610601421884574038775632798793603972576110390999871906337197434850769028243395870357805196412437704415588734857061061735683613067495426794880409850451331353364418943293724981748812986043488159492284954884514357035936638594266663079848703777501925551200572105579737818618312492360389521476336420500441604334203717714718698399803817318299978425644141786430644553922485692342838823019246782787904903641124625087421812191259745110170463121277689861250559873126352494633177690084100119873199428726502973569493059271383277682559282089339510856796344770735595531906589293156228703366888621679822267557261088973210773722501590011617999313944953037225103029472487717127328937212880572829424670707291072968044159412881486681715485734876636542124716114131055592071961315914257495615073685347091932376621667438636149420899438342953302428216418824931865953761292044814082222294203328577248689528060455476876326342718218374400552810227992180376972621785158701656499524404809718411563957450911678537849226319203352815129061089574769073713112927507990403178260330488231069451506608067916051569692363439192156426245391201155616823157267672710524268998641830553868872699458031872523716543428431307345650594030660342020059991927778719693214860138022511775809139446888793842716706068119933682338851745066885987910809517408513568157938798720144537353429156871391825966970480921372032134693544915202267596285618157716416443023507192937945022600118998820016282987804497665466529749717890942990507565657557539380540466316985311290093636377254075665626935753576071311744606169644984748518988460799605591292996369568350262638114151103174826126430503541937971023886705100861436895654206329802412573157513597677292349982595198920394451637808099906316216066476774256267145811529370434754640016509833375677123964440669602156625572475351118091670475333701226116335016230494946700434017920956787141100742075387116715346815507394267242708653260452410822198284274666021441892936006390089625256483659227655925010521666495431715304048296398599150744983554135866392428346216304458991129285547811165342180751659020719961638164897389730566596763498929095592344515434786947655781359911542659855703017839015113160770719958263780251227445306356619889778262348530593619333351601400904947996158628730904554263221370295059825858035081262591971825075629793226486813801395503255810034592366354418745027379386121321847432426655584479032131305869657246208603606745974361459000504396458596899980398875448557608356946060439247698221172021570088222270377388237891662233010962115238938471053586059309860676981466175120863854762525192987076185248365834587224524146756639158721809382600389670574767611906958670492018325090804748226842634453152930833783712298163586302359434379887960371207641610341001012844128934431855262962524822263115405734400516933874075052307736316029792564421047179876780858130507852631446911325520554091966218733141620277776463703449312001036957581241349890427292222009251802365170017596251803536045945342816668685230012928362533365059594017190093445350204951127099925022235045156098401656949271446560961064966965279088000652571557439853398420659859561193649724195404905554499754176948691920362170127990873432898375753834136292717071950950485758231293684034572199832081872602001949823164792577497062431165778489491017423367398831748270762414414736876949611952441102052726519035137620631654009172937097714460343110299015229730185936128545141423937200833412282916355227002416063413575170821690910662753600764371612877712452962534121007307377979153998516572973261185109768152032109353826822537572647776826681999594653588312217086303028471381176626261190484407795137680169084584291408532339181966256583426339413359785122340460395735942064790783790719113676866444220658784911720950349893512773254028129538254262915749598777913261373818419985478471622482686170195553372951872335873739087049065182451760527325706116084667809186964125506773594920225568253104957990804201505400446383020305664059478637369107013654075510815407887274819862793032050086128983728652070093145073809262204550156215905172863685542733133808547309063830531671658359880352105212449427981063191093374521637354180739706511093450365654882297831682795912570955051598018969917606683182504611999716084111520126762518786509391161281909068783721651854501572917635292148966741719836400706892447305319541810971230766816937387302269026852877693929207507096053642865164570172944708643530544228782544703805323826227873811575453003397621293254590782532258698760424104752231723406837289837559869131292657394671247143680794469928141868903768731313727299794041769712249329989881615077212831212967081201155440144038595635782791688117139649729569818380393399475879363093915788624344597367216012441538958426791863535111719534975174055752023712069841750775468846248269687358512710197749224580610602598960418981089817161830133482049316591293684424849575363598288373288193865836284563019694102371823741308731777590529481846429664482157663433271095405324092841912832592790759124274990115211904528334396111703040689762190446616010090500456315940424508517946372179379781620323091740795062305713673708107059599770553691442856113489935196954805137619508466560402481113806521280670339457411029256627555098135015547396133112701381652411486238227107051255703623414498377818117193610412238544859281463452697631270372419161744437896496250134843067226532056387840968810564615672430322657283121465933646333160840675819036446750104725910644785005988143310696740431903090460697138143450507421233056187759707494510684248714674439765315149343855883336084790615569432138390166580214691555467654405735149717115167947083928775958528017741902960095054307273909348849784465653297721123418576631021434870881214391522631327905024699715823394222043676104842764589019026554600953641550394363295632968724461317695993873811802478293430911191258703479432721961040445022420858951884223823977584214256336175185923850808755943856685513116963648741197703297548651487358411297111540506309660615830564517058554795239115577936814105183579749043332046931461918818964710707025707495029387951442925905246409024011434956874332965801204171375235334044234118214123041426813944583093954099945415025059594255170553199720358062752989443541632918048011770010732196653382739836505100528628638468103095039509703085154376635356805114733838689028301984272089109295669017854076465844648484814180116228749059254256389023021036579582907467043970511182839088238473535196221514355037971205125813138213693658020840966142435573817865954377512618890697678752131785111957322135716694911908775157612879551277407816139907464413371318340485134449288443259774494235238024687155451894887037562287676152606678822247623971701307423483228825346559847856357793279621962370367988768733225757730694832391391956331259318063851556252362757573325033683198992138743124922625245956968227397985699256488521970340715347789324555408315393253698100498036363191892885036527495220196639935364424883706362832896267594489254916043506168812685458024643724143924401995575625966864020456205132786202912270907673458448004250234836431934689237896201892677105853702241291899894308667382740278079916883208212630788096953404943967233622477284441583238147030191842739904825104901283609584664949546873059724764326757748366787464430657122083358342820814460257485503406361467727142102472229155720714700400306919709738952870054735467266439676456558481865079690590183986755108936090962482674288546093437482228669188481684320532103853358442905050164070573012961119046576421415839038757913456966571875440289337360872453941247396875802413381404353265867574130642325074818810410669048650172576417128025133253596733552874909742406285450685458611897061830194129901679529158734416405582370090782207439029636542228261596842940127051866384561191012985580284667659022110150976131965337588029043389191761875095700879316508323263895152846782074262261295474191927508761182534428076915334369390926351106010316654798461767574646180942223392345033150087736831145040846741082891335544932470076437648842005251652311258782323099863222768342060863790523723341813417070261939296363366968253380529791690873038473590222314490155901893293564857112938824573577827421889989308312640831122858447426515910637052674992619392370204832871009979234581893602610390126397649586888524733182594225827550953362657016923794215051648580665628276090662173200443104854621954115990428656095102881728492808929804761995782334042285885572760463299865644678650531390185179401964659538716723115645503067070460331729842201518473563783173933336079193374734167665543982280700828774967847428422129711120231452120697750241715168902233410109106972649152085374961725530009635228204812833281612051293252231338303183834691020622491349452292259256008641909765848313697590169478819615328774721457478561016723895450594667216668421508555665356306522249572794412051109256040400908378738354249342096217407219851382977762654153782050444388258734972452647406525075858795782691794950252306047997309898330801568502726938419401704075072841220352051549455460639451277885458302914260252381527784449625099767678568696627342262928715957433852837127829403228830979930900043670312687411506458032088268303781372014310249705375678555563990032756062798535382333998165415843475274631540336865728777343271548509481350451041441715874398589915960050584100089096875289769850712727487490638360448120798349227225391621390896343941288061929821400988372700312426534847382135089650859698121079657552381284875646015959255599883162229209909192752289604158267262244099827697389253985627131355318271765454851690079135071450094867155985852343867407518174943375628340016534709615308859577351820331830519192823072301527584490788467364575786350524497283542502672254750954281676424984020574403830870896663611961892695086383750744589204601177707388253550236328167981504252398908662935144848241787226339963787232466525910094083108177623737922675720859313977509661117137220540414757348583449861699876297662830687894679679390996118167364255600435338142031194005451139373422042295977611441149120967414835487689520970465287790327835580342029910917992372476773490490951740541286801717875312345279470972060466754189213214917471283710866889235469786515422520880127450749419804381136364219783338570248141058626165829900979612322225401990937188632045116428597234140917088746531919843650548071564729999216707721647164934908654784765000922575869106470069238953984322613659944067228227957291256856938019646132616582028321463555322107106370401075344556636161412229072956248950000351403696539080395420395446592164606243790579708375816375454035114191719959640860565771756838435385478297426025009810365480122590092608488686510084708396801450057646511090688685190541794939270245272343029603222149134650022435261035447823294404877256419174176646227094501395289185743071800043184316014910829915427122942627551334278616105395986078100274863474000913591706739592969429174397126360922570118707060503583159418591620939613089009775246639669941598037581186626873214776136808856361684861663079215959978321786796353640777689848091169548913378802196152577724872927308986778291922537636966703093180511802830784785817353570469192558878859989704013907218920943381097699469989700176797120429158079887103070656048440557972883202022782696955679647036903753519242843440754120193965613351173983441871834415975238835204276761389663578262078644188658360846154580547048845768314814491021231060467309755488040036638591860850867965121819453404266200747497277983119047068779784323521040333802037784016999161624232783640536467777360023690971057717645750393772828476530898874401981166573208533776896138762804639165536381235338693795328974737395617730580426797347176475270137481810016040852781461018830906088016101815523944475710899273885134967208043245011736732395300534355794745543712027732917111104725696999988611332621336286757137429843192606229375122848978496750308085478452028328420192756246284936564565959635009323503490674825694772249111286593833632095367376388475738071754342590752406864735635508766003428219148094459986051044842660089139288188848316309018686001190693910468116711328782430506850874349738581996035582094309878973397102625463516107567963380488226198437381826231416339467449375850333937487555902380984748935074672634687519876183510251480339232151050760140201151201748245606746259548429097518389895826365913781053790993540116490957682425869801984401330587098711419270346091671331216131141378023651027194047742026155847087815137589500389250144563852248911714561310691827075403745938406104906231707892174240238330433314481885560580600095607306914980326158376580065182671454228488211168468245114599553652271414665667427354307866671487483294257361019388088601304534955222569409038125098368291230231597802956903044796401993389070651312574868085085628527005996008784367421724231031255824211087766926286957604642556515682350744251139451424098892042562786504928547147859243897290891013570686642292409308448091808646918409690420662593983684256745314988248497033022469107556634995522684957538192054790302547544836578030292992812425080141298715095834849503332724625678698049838375932015175990556930894090713930714696807260429419092544055746193493457491991892464446790243906993520441302658775200817956670791103721403786114632904229401978122589294375268869350218318084838095897968408569064228366609756945419618310104069088266981501805147373997238807966553477741242495507522978464374872734899527221654271042675640111547334043247124847215582384150983433884011341483501987505224842479364842001883802292458592272582739655088098618550634608301847477614669661642599795462484596434051826764448150964308391679435907253470748074096298952516640969378017578199234299725464244893532314861487663420649600534569872300867069279717065188222324857681256349179072808072858255771833379052478419153535364345779096464048709479118655957477483380660221689942710443268520609906652122417013911704189335780779026948137010993745650226375909055047810764899001687437326376418746503400374525037088456904031081869474293122644987225231155752531309155002252323095445694980367556245148442723522551777386082652319825423760329067032317198055087528567803444874004887253334602194422166018323903726767310521864213515079225536891316365440621381770965480033946072232319428816993603469974458410243671666785554734946495586395503418645032371915451148721120778112777792605299250210469912187930440567553711260003999071655743130823092771405096279977995978045031799501163768166273024561886922965184698742096251605019391797106819712967096725573635575845484091203000331986638505811173776327965799498261940447770694673937285787502944102459022325578626574051737051311101341209555595153277004882523288298615894453125963273685096120189147326073996871067029125794684533281280649799074370797307766205292365880774555701205930174035360811919873437567903657368472178749976972197543778663058879334176443033336936757163377728718703183627421628861459621825488372545478666836556683811271821704014804813157668023428876179718224162975786900997650983113184708467837943638377281455278187920356024458349082862804371123916050743911984149597144624169870718407535981447403863892666378881741843483844603783194441260572497123531382375254952475222381458507127537931412401554793127463356521543160470965483195055225499894544426430363284038049039962454277045055489902554150750971782233264731293318631870635834323342892560022095730728602473601965006023695618282004818281817986960888151475652552907303788145337126732806975039612835600032310078487959242473404672572354083918347242506567997875091985469758958842434060479510726638783523318283391892397398540839544689447069863247489516628230704417263569505632474295486060521090928291363146101804110654960003147649990056004863081909397370572197445656561806300358266265351299080935225468664167029431043009111174069970928495194092174788339195598773300850791864640244113197451229759101406522388237168960983302330044675221979144044012350673495908048718614580402932038404558131769238891470319855794292218538771752932839584462843812784548950392329098595923503862234900228938263231547449147431888215734030075140291392401396401388887193542528126237948510020176896686086754543867365149609303676376094919996871072674858322721232205549415737450067014096068505224058887954583286072553589291568294900057788040667633510697016773684619493459411392949891912653965644871545339008841862224769790736172407016023071788641927492957595993191804586413955670696649601494369298039265678589041227232549836398838358741284268260158584083323105213736809147049845477291072061577985713974254932909489075272840563658999354724181397473095182193485048589726909708612299365048163221106481743863373920859007034755985982988396229735518013358439131046233450832467396291052388436708690308222984063524213277136277577691121536877973035145468608746542193803221443746661216446004077585841722265731517135545539199027986003358219862118385062268632629517867493523703279720531418031853140342940370977411258489395753965204575184006160497219240285083580239193404016459331872355001354533375004459586187553330831435648811702032564795582054508075301629802932063328936949718428316162377182663115018332181770632703679073230311489127232741624299470755760553771198035586366893599688516664973618140675004333491348235188304304945344947872910755472124658709626108887087626998578370019483290488438865381898442385121282921290294668333675240958606358715167759332734232577793101102959286374666048220250992700264260528951859264314805888128739319517542558732163191962160214201799985803823233826057688596387237203661346700494186771273583681331792293754830136092186800843204001771553973676694115838379141060542430703986922999060992461544490742052669127777026967749894908550156585463869608992551446733654483876503209216663417588872356500136629228744003891183986689924085567775117883161620744786500503398939881201631352659419157715934065266072048053558924538225299986900017613144328481159318487083020528124630029269605378787290782904362659903079020932910377889121883085658914516665214539579694518955911340027092560982545384854197637823704595219190835310230589356397485797639426438721171853033515810032548742616884884606557913652466770152589348731405808703186467371822216416110508281867308002060259372975886257797249699489399455306202140688028272768672827943821434478193179844010703242439611580139683572036382984380955181448353488036763088197374158297998165162620141349563068405062751624916633478956113097502357810446118501384440242885195535485815895166669497188436305286311700936404175681754704123652141611028215667693874142169002339909454239780414466869046600787235417181663007941172407674821527317216037858592220893270088193825171804087495422200032416932211825532912193382345672188987598868077599819144294604139265124022449903569885707018597556640094340005667998703333994808485991678331109257790780074034978338484427251561768644760207492754436157655951196434313454106397610753318668251582763922133283971595512913859436789542401555471570720225583453698426833912720068331941114910114785679996059384549666365909643264924007506844228442907539425155638422300773167432211178388970676052926888897755217183796690418583263217030605953173670768620826746328456640531342585563332350010043778032406884565845714661389886425696139568228469138602813432331211060658783048811682487614583877832046819378824351667056993545332513151672287601288639794556534670194157057788140622509685846862885614562935086413290386980706429444060700443042264067533822667613569055441160285734945094852681368073330400614904946898823354700479432527327417048574603312490833234057381086505482710845281120316747198991643302226817506379607220956621577145509949962298701289504651302606009217389549279880802225539699601547791104561640744339180950998773565669699572663277680291618058792792064348495001444139272442788431555501091039333240245913478142196971352209888720218821579521890580784054203872404357749754606801160561033203998766682010893282500901885377742334190925936761019203886624843713427319086032640147168203198013146233549514044649319386367003041068875314795146191169102723758304714768754254785211149807837650530400009144406578583377427105206060424573979590156734992844148462698171418669394851672112691779387917013417561154553869355929284257540216394646157854912843833241876701438287257299022359880449223370242966747595354559059361042714787242698141538185545781695444938049727151701827083550665859897253296435746511778020097112716950515237183085485236372538647197743561874691060591869628547631828317606591173187806216713702927310980305463538704816905757887469110115836186485691427004462344409478714572332988766991541796582261477317932921171301650649533679954378002799184392357834276564778647019549349461364955065538960642155594229278622994095973244615525128656024131950551640941752438997895462670636524398245261922063171864906671867415814245206518841057703405557942248861483398564069223483156329874452298227686857703282600165365588069931647568251652414143234619809346927417948174962265579686266321067714524046414892285807762765071738525155823570458696144284383677318598371864832603264802939223842588005900338470300764398184219252438129467468446940360826262881970265851065224759121086019826577570240945807301743405268161167620585419450940513779246528594970199010527949564329850020451990299395705452940622017215892479114848260626475592345261586444854878076192453505890694868398760225810650119505053994865250190396654230862803519575288519897101144322347757499215518756815346073984410294931044490634970340071971699076990903747622733226289105355637789979595634931253375029494931771137349598760033222721909654163037564677747809311351507261915423708990190186547312493554333460321379278937884878269914694375445076846553273993666243477306765899774721497659591422568457849429319581357004962514365869864556353973065081331941328735934649220657776374735362212462614965462295875049996592440453642517174649177415692485415649605801999428199821032832758939691268350399013918102276168120997835345487478049253772635002274870408403908059108649328403978378351340277910494593705828432131984817770830457276515304590977656372045846160861395633477724487318638224973257139070177009906103313574307183316104151702749898086916718270512740405183887066287200966974830040278804576635869007023937701206976041079934835907773083489077445242983469995958482334511619122986220964999853682480480199692548981420586069319885037873637706658410316737735663473559392790283319546012414757526550962142411398113766831075007476871131512026996330095598916285134059804018590296468969422415633564110121818573487869703369734988224135166122595633349572044096918599782438683105479602422860934888017517659379306041125541221602943253752033195633166255757545954847673949691536310989899537298324313516497333762865764852300764878598244124953155729191933484292919655049645198165534335388383552313005112215886800145720029097923741976230678126509320367263400100651953597057494570761830999291437912331324657555165930649881203198270215850556090454145160983652435173690402860137288399643840565398721178106207491910320201291189705432596273445755015246875586916797479256890243884314429409674577090898841203631926950014029808029788857531808045635689941018929908920079711352252967076051985211162280426588904503137111757794146666384277564318015944923888001684622903241063027337765801448249651241977355981524874428939103007637751876579082165057049147243551046947184066797717024099639902197454678951433880857564806365100588682388735701146527573483510453695694458203614378183498778571828027765394913103370915312849653926695544759115431303215453849621203618855608106085576979318638509527044695696748063926838238251187315686762218313353261004371210077091926257339502730806835402171998625031129522622562696540026991351247707069800371894886878520647430038889335338229398956666136891230874274265796642027308537628396334577129275934831376670534880111811473576630873378627890665997730661326521225542791178862878680478824751882365100875067643712005760052616141176126835527931125911005158869301362514368490706970580686157738400982316235829760898838556622708330009197463540103366495756584396655340515183969314190044086947731131230888581249097260513605615661126366015089810753067449309022001866342586893385785346162416566187171763423717077500346600073176301479989788843599532590938999032573185424279661654582660175054014329059814903774267878314140272678770922698848716484063589511341274334580031285067326056983805459295497079967383925979995929534008288302035148643070152551484586253930807105036877293530231058484839494327262225777133779816313889972967761936060853714936775874687302794121844432014879627034138997170903056480209305681229729244801948388127836110887898560483705870457462365876841136493038145340507625514385071964783849588579911423009767983082852553501937331972424663414889076570593097153844027242526738066715014019154730168458451965021424319757023039028586870410564450274546115831133659647965279703068063841720633533853466389218721151086391445227367641670692246605921325521842173313641644337913280593147940069946317423181674767970518855323411628234020814521130101839314290318079761460333109726410950040974849056694303190648732657018698883120445494174299115133820721702291400616367592930167275222793155278054880558610948939017933644703614886521421162476039302476127923139349637057886041655215559823193057138403911177864081567463851384819013525919249061893086978298407636217873892750374228801069589409278982512953032733557455671046364678096640068547040658022842593769061026740401006365578273955865203224232044277404326684452140556084833087884415705734139648485035813588022286068125246063907007574714231469111830814927174751500442749739854192480036231424841356915369333247771743131926980110235803154545839677127554760105308256824589112060784769079773511457009818237650556656639098250933406241679027140039699102155480808170124522517118533199520571850230720234244557063988124948034960786083497457337349940502330456653281901357514679939481459409773936485918955096498193625392943664361075368374032523962401885410998046088580693286077477976910053680888304637214195390819209192458218426674130508258459177798417913738265025669493183454211621072625495437221742284397839150639987564434882315859631237854414789096164979563427092885150624681866270178701907641588728919817021705455864983800403681907764855292039661496993972730387045534055325273772856241569839062541893721618936362588674297114271485754014663700196521976139965365742192104856476233833085218176730823252574467882191359937650242572496549914332480161979625832027310568514135407214882142134549331876977166138942211563928677666837750381674761047858443708345228897926351010971461573866968785100303051999563489044536342842833592205631625066846676313037863919748058907127070369930462452928905311641428764139693576233473360484409251871391225807145188988068476696992309423829005802414668807269303924378331782837935448440808415363673306911642285181230723892956999886240824785938987909943149819672552588817600112539225727201313982889762237785239155774031410069417421971645484096448110406482760342672354606897544381751672148589273396795464840170197635120714055141670331042251508151933239565117236851037600873026298464984700716773438507686824016755556482458685417223852185445806300257192219995236461943734648297476328769701152653384408274962622436628321799454347191220155854461863471390473695638516942037936945352942131746620235635130369865822494986038509193849629615001724443813951423767631482386031942132260414319946893833300985289350348259777022007502037541233895835255583585847989257579420410225760657796625414392777962913464901658653028165372118923215098578039785842364092934957372700001198306276313853366930775952848171452089922612620012726708817452203501348432623435586851562746698333243626824416876663347763801652885901606366466103195057799666513943211770255617056811829128259588844924658916103873258958537705186725228178893884911003123229962526168605107931826865668391215001056436725194415421355364646770382679747854375116014808972079693934010287600471894952675156769127776326782199560604014290634673378415561046077867205590996467414692810649039346756745932336509850054748744439151916144064986739144809431933196254436108436073816114142082087374582712826806465913409471820041007042603111816562239241734387228367560734266743355605625172800284618868801898579574295865724308836717206208270127617830098348563216811422885909425093302371597760016605154637749861622533047006512377622183174776997265935018909515015289067062741330456744284265892970103813950488976034697625546563496707458769429182526618478603881341939632735564112514267418754901943657095387166523866918683339581337620828055738634559757479317599279355960267633904414927789765859461545371021269535965920037658475832811326818507492480779433436099564544479427702433773612055743530792705883057321349655573632523528935950101644526605546327114002070126676490158813635395088872518152027104783192775069048391484065477861763247361440265678185459502759007212745737494900436418750251932582339147995685600673094963766996102606662815037219646946005454097524626893328613318735859542821661659419918540669211539648152367217534712919217772844563391235922262183658217813287604697123248300313675146238375600102120504613279996087892278919631057957590154053664180429712293372466174483254628724911413619035871684295668772736388369540702784308527744165069209427126588023609061542196848077537510456642627967428926363920326909702195957072018237607064407100972643158475018801992963411163869271444257623391318989187392282465024503251055999285777927831551124736427992669479182893848977791644409012299150137727529690135172285467822397975833591085058473156805966307415249591817910181009083176362178701054619250842902892596310326855336590060028714127622770161825540311069075047479236826051038675398066919982374381692243780551092442368385014873503416833319325624404174357435216380998360505619076291723469362730133279197454194229460993016047803100728578460000657050670570340950096006139444992827698808817826296238617544156456654460951824856440255586597318992194756710947712705326927192897564515168313483932640126877280698856235398402225069711180726304424533712349872186093345850996199300874982853208982317099997814141310508429523792555953027387035256961734071406183334882591669515591854807827768432625980580397757304889652609597362547496156081808942020391724327847124105024391570768082568586341071316427911037410775393727507371961239410528299874406383928095237713366014539736814307133327076798016507160237741556398797974481842862248443615916537472304170289496703135575517196330463242063739006664738301023310736209028872852146528745393948954203764260678285110261090342995767409706781146953421051615862144384745222424159322975661620620205935404603489651783755379034277484706947731597440017168514749976930763154227644457251364454835727350389174170540741633897382996195653702470774698224314259312523471525723946601439910776357954712349450244194458917049271902717747331436910618002452980283868940471182742919933959862661318621824693500978034165594281641634135100230504797995921599052249511902925908495331106078352401178755769505466009174390524062169350471314497504106180629465227226718374554997533217542321855081421858624448290942211752855566361852700615279645574645513161426503558658358102149980587569516643598700116772954316767562685075590432968870683417363846057826833778632093901677575394609788428190750816433476395253352201772476056120233820908733106665347510332752126171343269997781459857793748204170741620798335449074940460565480065676551697438865725955713617092045126695029677999222003414130872042197988570163190339163882432871547453537586182738447853398671441262835930654346889016441675750626447208200031624663135368266023188067221341898278997747721958395078448819533633488739887190303013422754762231819254792705149546689948365794747248131463492153720553539131270062795462478480743407788362664130462585201160152639702835138521172160235320873638864804181463019570929730471933888092559941404604668165957621839672612240993563063979997143562077040824204196758777460901368959415063581416227724580436577792061664707942119571279304567750379231582197730709065404099873641682413949083365233896475843438098021325185004651729465208232017472931430510029482605825164459856224421567882650127045046114611909712542668309377500849683678098031062340050784769720599756689713240036509755328706201873955982155495747877708056034128431725396169826775346413630816829696756825415607646007845626988230532805896677783154490146036503939228312481978282006136719548337965007735404772645930462813664019643369011594194937171269731931491128572646355975039088700486228973153240369849086165211047112509525541029848045898581043035082681980946759527153394682750188350319957008422153092566253970992060880682027843486507571181551909686035310356650659345056055797201475290150135155768854781719942272804347819821819020108087122326673180999548319985856933646427700311876391936986757485473509888616535625033762933081665114398530840263828362137137502945552629066472476439006260513701986965720060494028961876646134830740805224505333339734080123125357414334409620969079809133383121306450703947217661375676164353610296373171234339572822125038997561754855445739837178116054431565615739043450498536783490217947502329591091674162121243588466464092576203218600018186438609382421965263870632171354142203132498319445200880123088369539548779021785393015296747410892574722882120335619597775736943568509284880702830755484972150742965239702863644379532378550160746242929998855145923141947592464415790874114019364767526850839069949441755566596984487612691209169523063076830486811757342631255505441463425195109718617208649952225548617000204022423346231595175743176589461094430360435019466179387277873218543460282239930481177137140700983905757901194169531839179689481332482267682316172382202408762479807137805401498017955129954884511877097504223820073431839621549893468995741458338992988994644008127081461109103063723025302278660063375565139800179866937549595189482420640385349009280627344403339462401267567674035285734540462154463391105644258541623062566777527229925704442796675409956134707017601363273862451964492893695818800856999362569922336304476628897921311314750955867653047464606317571920842126339912466739371722367099906945400430110573391407665496034666485579756969406145168288806432924708475265419347620094804548291445126541575575255774723983688010406149139707313734407625094288643454151800957714589847734884199606733345957466051915985181317703223986384502793970344879541818081855703568787221212244704547118048477602045229380118753826482540776495354166716357262463428285633305926500866602455235648656272772119437685326607847077543117378435871041680244932091789788775394107129919674972048114116985716263927241348382244941114126303109474280369159321349898744326512552680160027703395645937788758902094576593953557614417263226464933433304007446526225388857891109958360423990922030463181595609730514826871924234876892705307345653650757945287110370768316315311728543608875880881700689502643240247009452663358995258800642578163501644695219785839300572066034623652159317288480386055068584606564228521683277038983688823876791218710430587670158922179338994650675313531212218355813363616497073685788550259342726910415242485935191820684416935896276422796484546800685669893189806012284185868840937772134231032951770354333464726245949965320242796378894400689418399369355422892505343407797094979375196891192026936462190145321157336886204648385100000592217429705737310999031314812737443051379475685535081066901192785640350116939534503117160297335583343281716249646633928495081266816916038001336045153809676635369648832022090798795288637407551337397141491996969922219201803522430772312050518690359599895114829275670387074589542808881605366676342839535615857011385061165713278827588211189657648762573317723210965016588334893965623763335132201091614930053394126217296579548603851912647664145850107910968518149239512465307192375240482452512431430514405121310217035854189993398565265170023581703534970999825807969847858461553596491185670327889539698452261800851373501309583690043577393548528491196627614438305425820653365971985701516294370733759565030881862279582510123758148941139819514161801641198709589993414642213326334097628891307045075518606502138923535652722132849437889436869484832374933670019286214342835441121712895841408687216349765023290583510212852353464047452261474566510238033701588272317116504937515173966874364281897450107361292408375884419741523234107670358155477455638916358254818995770540046519775434623911631045688091661984315937041742566516582058022219718326709330828117458292231428332232824975258393124022931734598254787661057245128932556627940729061950778907365678705915342794994961085776788572515529744677388101057197803096231504971787142518881558312770674502488514215781702249233814672721382457262825414192983278870989323927418840785476899737468672111127870633016633557369799469447203287590277835503398353525424351497404952741452666577972758339696416364704461800861971585806913696549571983691361282585248641253111715218945217439383388073561487878901512941951014419431994941373275346027015289692135182971235663402431782901676430947915821573919364212833682073440268195186474557986708004140715415415283611108051505483790190271213560428111009830927590993434301754378563093659696377302342160896221360571420847439676579387107923108320849418936133659994280686960569332857543487972174553276613441703187493767259073820640528459608538006413196806553578512410119653593108454390870151943631825022300107620961703895193502941783522919603411125753590746054762289358187664381822152053872933317783402102831523794007293844232092913709890202113657556483761822353619839469219841326640427260622819176485416618469071973984670840989819969097360267829658261052924051828171832381395513938085181628568856056330814305208160138806771646147703116218472541673298132546159360936287571684566565726412612925563950595715465396247948247600658939517652033957196935240344337142558941414122886764563204095853750513564141675438566667690909497519998625989836365632958784625330191183894220808367152552716373554757360053710869712878606045386099359878473280615599995411964383601865292625223235025883336318253208402372890798654713404350090796407374269809952952361295864672003885277350020191047135045002618087339340786577694259913727379659211513702130329636604326602711324059055155177223385385011389385051159150577675883074478863824565837215323689143895366071192367703609479159794280185624083857765443355616371902543271081070485124203314718368285027956934280763252675878855752675640903324449710937504484226960939155427599598679427446165381952108644395953597769927736194420636204797885458979127596384964446226431526377277463413045368854149856842263553266750001377504319633370474169233612587774719724185168653637957731368789430822832185307598861074927630856863184008785677733417076112040531937753828597783771899312414140021420947500906671967343762603331160614349285923665007118346229818345876875647237385530382868704975950371194665615514669778471005254562647949672807214638693705879688792405055285523925407576236563658193024926413226383093395978161039199368890951574476240878424059795596961659815823597767617485285515774248691901445305935441600593514755465745158174802177117978873793316480434630380801760711290318117425716744664738462297008183172477529937330279517207541227983129034817240023698583019591805222442963870009037771658721661302164824525319915577776171235462239912395256530224899095002919447496972148048856170055439792374902140014537561451924861442749305496170612859607297180179867304036461669172787220904887857413230292509585664632437270649837777231310901754488726503472291604828394858194301743144178045991096307196085449970348454511136986132704105356753860173551440267113362552053547368940400182722620569091511170655859293897095831480282536038769180316487415505373532601197867541132352008213101201743761163470451081837996207316558322758900264225346459328766834340722635409791526144852474481682435780778926157795093807161544943991372456191798843413308747621197249604924579844958414497576411068658229506846979892988064593510936346058925841097641829297272207979004553923067648748368918650570830593860262660834902007444124423219526668593643585034850634381550154247562234584465135247810753208962433981675872722201481480053679438005933615124913731627474759734903907055150036047101210368450111791946224270868807197865200488189413069304369919144429074510803606746877199137338506532700053436432330478533132573312076515408137853961572194390446866830140136602588493368674648923089158313700849524042316568809808208478954778490247665049400418651902456461782133478816410524576201827274152072144483748222737042337681202573363822622498489183663393538618109211389206571636704491768278371352689494057523378560454401715160407734903250448619134910261127940677205079298259127907948229812243315646877874863269817968971088691598151180719798791654258998154243073874312424221170133284474065056370140404416402907932522946933128427584716470384672995022901678285498896573870258648808205688075111023399276928598642179311202099988892745994381634950150605514402616159604490466206308710256668104540514942750557650125004021337528451190718821484963068610084976085325368144881851049840465248082050074815964593325749624345871765148353154747979905422601454409696348030590540136967825789327667801516565704834817598112974507957329503531850470601093215570093460848819910065195675841351077632589596357188181230196324709148440242202651343507470570150548981215384178667519686690843655248401734666876689313148865781537568705784140511502835793292383824949278064214358843829977496675081068649353782370251023319623632071309896549878340102669913198775130926679071813734149786381728203122467853480186673754482912489815419777575826298252262624851452488608647669701063696578251714743763087055599110497478300943580262369620510295820013368038425319475371594054019255649928214943902653733026550661034503666099185161247806993520023848529050316549747073925336692318629439721620084657616976966463458208700518354209898090691387493412071085228902484846587032765720396859995660048502450192754894761218492762941485095652625025444551781110819896382413535134083067379972836235237513077875646141673068353417865676343224673749127817906757031344350391915936048556765659869771898524806566661028704451416108448612105754041608682785105873822694189435101153024384742530389070905014447945230090204277467426594171319351148644902321176733835154844192985582031963502965541331862741176387105639799788473799838154309730649090479334410037932347200976054694728629344712711019504700667637818828726619548509444458138898158636572586527166195910715598687306333873475299539990493215453256695117655253530005831903025972272092080110201105755645913652538243864665849182335185598020798027173695949248164462584487528438543533874635842189035416855566129819889616129427921515855637264756516376926451428413382599743743332104238873676713128080475102202470204928051243415129359563822161811727455059790600302809672594483069432829255899514386814457845116863888117398742709083087747885421975308278081656024357187627082086248643498681889667486270066297687746808442681756308371608989926348238754053085355910708031960557425662997026910199221463443224698078290222161818033021272637627103799472349789148032755135553267409465069481075230372741580689997413859587188198343249480422543306347588995571126746564835520927384313593807626927653887145110296090448053037098487022835079051387120190461890215482082726783372762442772185466849426112363134363264910230939664879944823179169656934281372333820727452196527325443812641422296129444020648626687657121058493899801714267280554171021283750221644877176940286361119875461619303658545876385027044006560009697716470556212849508252506516590624362137790040330642625985616099912732260978483819039729301577269125986341886694135967735072577287778616179724994898442736137428261353765094870160731994559666022225821094995761096878498606590043110770629141103414468147302391860484177611861221250168696435968894803433346734712942707497764311036881534184973961688814092403081314969603954976549638958041621898098406677838865412569569027685454339082970342765735269111665117807163034337636642607820334566599531534848393387336755513646838391934553243138258635229372756887060103426892422768790252429429283997812030870418601853473377968394683645190258600550798313550988274645792593800026879306301828505158157381508175435342622150281730190062755806486658971561690834166814528874177110300522208303895585349704056882204418640205497502543566979718122812329565303506491612216196558323303073757391193243725508224217033386769843682837869832311584427429755051426706498333796997526303925348980697962758005371419607991589712458647733908860690813449244111981859624552374849300858220836275296180138875807488028278484082502830987019966889708586633101880598418089399486615062964670048960674819458699577545731329092615575881184785624485425909328823854704346934915107924811879637488254371426196183523891041539537558444562341698099635433983714702053082655312439068580313185370611626293903861373678674868888490230584569790583809397353995690541403901411548563254186101559402219165036873855965620638131027575356282669288803027534402011804435409093319254404635422906251050885348146039535051215862587460530911076431020650044013564130817543908386805295320236318824144669554933789722710642896234133141481106832093792968552104344804079476978205061222416767061082736820068709724381372293159225318612627384200555336527310961752870511472871350118624203003286013411872107800130509876882885316638347534922084099565906162594720432637793185011069645722035839763248815037959301020828902080618193427472411523615444250697138007417389057984763510403083222085991169104622881903855253369040851568421704462971205350607597254025392363484360703467652055253049005087545091434018140498551927423329465336307052438469834723882700951950930140411748873125811453025862899046765225475859832116154305185561556818009636966336102431611312350212203520186854174598310101920686636220059799162169181114169671353197255485834140179322096549271565329532635237342278453784572892458985755264514020197339738073277750468874408008293567643261858195210788832672147110856352013185978620063339520654155253087540361531346944990175964161177732223741735239039199055745172350379758175358377859041759709634446977345956467262732758480125249030328785049038375090486043162380452955508422736361919204390379621362365436231176332388012741118014418472872438823317039894759507541996292982524508710089502789233485330609252652034056972450501540568585646811689290684825087797928652180433260914880313218399271358222036548918221966019296915109758670440687542866506524133629040917358637396080802459254792240126483804766892416815500066927911009568336400405745983892225062206306875448117902932093729176424823500723652284353354310380481561625972258225124619155349103239535317152141666406301168052352577393650686064544589145974201307403346515836234412508634952123603736577905894878635524244127117386716459871573402195877780591832757482734925682856089931955890732510954553048035669185261201969974504342515024377314321573467946123681250142094398512749865706345768273969281588094167431735726198143196912505400680312466666898530925507734347570032462657028571582181152414606712868459306534917044079147338751001724505316927639592227829114248932515913564420160865604148999208707302591689458557118640633669061245521808642952004916745576024480179569003440973614119887248245245383989916581957846213137279782465797059960704861214207766161209637630332324888953234253813438945163941921369267552443024329921869340871496084407774026135117281308360508139498351196804673802427623122322215163309367247467764313429369271416395548277042381860284959916882989550909732239499389593103106937432028693200720614368658613011230316416279229073962209991979123086017523674051617390670811742000733598826403027528122059747162625004248097739010284692953825019510609119909778789760169215052169624487926321023071619694969009840485496311921299136710283460156511028396215310270818383770253151347651743844832490160831120495331263828650026199028641375698293442985939225878659144487270560069327054340156444990745723863166492111178124372139807039146479904882118269022968680035765517267554969868767133690895432068085403126359358072948360047373590437677431268320766122789129547654854698803925886229372554070115178378045550035857994069668610411882825372166716185890561366135696058286382215965481612046136556234243630843603453986927323235914923727288445134910712198069368652437867350259448892273757934431323185584490702077197853590284710554732502299112418383828012964322802402475995970861112264249828879900878644992483513407447364365474560060980166415605309202040624297228670017168862154695851163483343847239286174470146150214735338614426329910279406882468304921580313574159784619516801347883068576579752726156339426054737995278300863735425132269085382733182742520413326685615332652983308208113202813765460422161964995334809338457256645069763479737877213050694286391843514780662788918125653675809478720798015732822547934958307582935838256131704007783672817380491844132697740799584433206282388288486619674515363694748152491304186614274530151926564249639862969501929413715226095483280391928926011665991127097793967541123152293267575139572998511222215193973826334224083077369273223044602782183910785752580086192763577757634797728745925381103938414623089018544867630314521319591365489732353036726342700893852908797443500619397980059645662976213855343405687400007780571755079429330438781550504390452414373137909957560941819237737433780020074580556258291656435050659159441095002498081743668431108327841083060068779637126686019107701441384489247268630340149607009274091707835271486566590847165685183825377377879528663358289562293299475453244959880461825368963973687650002464933266207485871413826823745224714225254775727180241300358563311869434459962510900724385363684964197434876250295508018518099201815904597385372838243067828442746237730538585945186323493103681797084116456179199909574860450822855404230029759044984300895060866777112814586905406638707614161768635087164141480249063453094976634463002923804810194707444756026709154077043172349129807724809742889566390287189659479356781333685111477784559308178976623045607060922928985789390977166553269689499830152942958987754484278434525653510674557008380350585202121325844367808085760163425914596953301884917846527169939795810069756342995661478034547817556124366711544724369694272887768932201563948947273560369562457239868719177423508937369713629284100398155843681247250136902581478201014194723152910491402328255609580693926583689432509614700502027536861924959066621719576558169750984712156095266024187958579380961812195170984824035581941831340754684295067969751134017597536178065261673238959868935878306308475210601154913515695724323758547665734256778588052805450869283829322857859625727610043237554152793275763905297572610586507822367492869709803845432613629452763893749363257695047524234299818952875480748344045272224390250011493751085015117946183671929716395380754189417984822360051614317647613403314037651339666214417831608599576586644418689021619378477170679587748011400488553216698546410208978970718188983115147031727402617937276106070859010105307341715149659743061604853832571193683023094998937411236537853162910003501588608026796165097606204903930270513613947435900085786629077203635239356177827341492904698091442142580192815806542777115644383744526525190399218409792754697393663481516332749718579803249661729891178892931062812328824055094258867130786572843770976118605981478822318525916517101280536849625502835313852832851645890925650550182549486614547894659360085449369433581199895107243806858871014765989276150453315285819539001019826705452503145016594177231167817125590911150510231289533077845364877749099512071729074980325754495038634082994030639399385995739363699617654477139984649850669834110982063906359969632622962272533744049571145248810329857261919586478673379932052834231328412105166274460478010800565998719816667520395877718501949587940644807712987166661293784109968550395468908790589665056741530279862379431894743593174660017432142372040564560010396436191556553005818353255960127320552345988726295523835059711958227344901594772061549248068051868591577492239299140195373163026538909014646999273172611916465209262206882324226262387395162895746635885976850847477738591448775127175234245562254024595155363765553377789480624578299060619801329796766401830301625809934835912639608748273123313189277461705085444733408993563213261754861183226404659659731647483879517156862381235628152133076555680003674317002526604008944805102594055367763715998377277007166791993994727607746477039050507919150932315075706258801775532782553595824271711220649562101981068894905738931020377372793085997351101695210053541805305941191827615940863940125477617692166325875010629905548419543871647381912495223248901027887360222358603884241990729944593937663262865224385083664761513048205491692612845994726541211577157688823042544231295311836107208153109888026357734931749455650489965008569561259537360050088936231893155205414892065098975804079453744281160550897641258546332739727823451285954983448762869107921705219105911583469277220723405929475840784119077058068170769985522888542573451922914700688852000225804567849386639235385044020221969238791308611214715768182540089430555223313015972985438001276423466942801609299614855415834628536682431593601051828824956589321148907923125689343539066901672452244760040489452795113112999593834926562959648760309985018385452741158496742989813163633402526422902946298344876033290537173973033969601884312157899191787664224236173833971538546177050824663445606295038133547372259746444059814389641775222289483594044464470715561226479836680796322861263779565627219928745203857059026827572802377375132642898257346735206823304690836317454775977404226133948997517738814764902281186018901567827205840424895427522936165193634783623740485683749589663596392957509781746328321473815020756773029487651387912668305865438853040803181569866042052860166543019917993890381509357475767838957020281792809005220449236136656458622710538464715377796214924945212099883984246284511173573366974897597894393083160921552007250952554419668212530015387108806238195888201832410954476996434856391009009551573403279750088571210917659078050261678467963617306510855244059789073788787039803934947024257834726611793396630021437951035317311811444167600938538826631506788158899717364147497892956433271484959952964605607704146344884504373962594278870854077889731742199173280017271813499530562528681350454619264903015549835899953962143342460528583396609807623223676273855873772144863938617593786142401472800655129530963437498676132713866652647780961165362514017838989606027735196107264433904915557166168542621870569212679576063348352282749229236017408402570819493808472160796525069725431700303272724184348543583003888349343127313032032537716755853539673970264377710030067765059854465794699861633165606650696644620221676338156799759350163758512868091394183749243873557460604477278391629075369706873419168888914526103418269851485475606533433201361605635896281471760473215978495889828449918154929646719371991921545669611807258431109526132248836530086409599806239311116454584000863007211302149889556680837071297158179335819201093841804492699383746304781673878411204241578829063031300844141714626972287473991970396636874666986324977548313943351309777791457723366992556717184771404307036804615164973524981967994752371173000683802988438812693928474827511878704725382830052027545465240613273976549749297240608213487000997386574155018602252940878374695140164758427409418679785172522164447170925641820524522201287508961634101022906652374242161740172438848401341494471920096946202239094731280308046927311535743970127618651052867839385369139079754664090540718834134378253724070303892960708529546947742745860516495052840603190889956961100939872352485325826345989492754170059035103053392514243003445371417377550088115775626728770408446365159163598321896878983466985277901545666796571969031282784898648614879769466128062953125559050156944618794161172756477768916725800027761245856223824790666388093961684699655125396198870912215117580609323714972119896121741752869654746666749836693740220641300720106259958246944191224442237507029425746377701752529230968924317221083715335263044779074150966365268631575998575719633683202330169620068585124824348286498117216069955776386265736855674641045971689214323725068865153788074423034755206441401896723461894788224335155059643346912514473532653515678087131121648858824948083119567007539414217778430928942199014113011656700023251655298017041819555803620953669615355291837892578625143886194688403295166772377017609715696422156011261059549194002404195321354958338812003820224071563316606261708736928617185090507117138541614221973950593893954143063315830816784140907932379498687342255872169233792242696385591740779187777596907944661629513441269870559850360076799027362579124765492806650627510508920788062277920666756523642412387832849835111910857317245032644539965455733674053433142756996879293886925200119730854914405261846568226219612567891200806392967032343851218912791237924385460791074511255701095079569073949765646130955872279108893210774089643218351772305250467469945706312719893797184319729687798995086064036633680330713157080187830182701353301601953210035303327169778213299142640661563998679402268082202984686578936687279716277336875394470956257019950901583274943944540514954333015412803851946899457135053293421646143604303453606342088966529788050753361988389692197160220566235428324047137838107224633915093040372872923123537075340181262444980833960025132901400522644611121317051234266569502965251327217877181583258707232385261359863959657911536639601460454252564876583955636719537017300250793280117927957837725293681247848842894113295725750321450114828334522711569042680858805102885281528700198346423117727662987103086739155788957564677384780000492224669780666135237061374577100622867118441136803862477751307161056983694980191631483061190623904889171907789161905173096482363320094391643969914131610391448332151467588939436639212435614515175395249571453229353214609316335311058577661405451084450183631266744676094867717437344655435769849416835363562700792699015362269247103249916641943772550809943589673316270862347031752304188874213990768554154905440462673699748643748076147192082530714117244775828061634625932169921256171410033736223394483928079385019432458731835142398156305056048487124306092918723405749070854440835784449655952051131221956533608683575328860293986843029052591130254276975370019187756795639087442727860333397363873614286818772280070454557813406925080426988337410024914747771412080838604548083747919036415297213965062687542160262809517278521054259000099305000801325942041415642694391514425501185950106105595302782388142300144292735807876982188334471542948035293011412010899078549351970787959007550203108152003365760959065384740779699974720038068381750722639562426965192901336660653617165787237992746217782343855423822935222913912170920498086752533528748505384807173418160355748736763531052862452086539600211307500437723679410986127651046749264705144600737118137265436502807549837038056144255217539471607182138684993853296384162353057247760243406481464031367180145911447240106930176205566371800403118521962909186230160860318928732301297833016601554809025869187248345398902941696541140235956607999080223726515529787478495414228172769885211565129950023054422467344145727606233318638184289097572048364211057956971733965061137270062027101734615865815960559713291475515814150895498953297901318414539634960465871905228802174022882713847433505102234070727259230576568016535151613251910782729721875836629959542803750225405776491608442926263090154108101167644690303918029535350753213096162243904548689420743890068449705986295208753712878802427325547969753037688573075197980912272818356291178588849398699425302363948419617470461028710292663572538729789373132372396161455492450339007437774100832201986949052479772671425001790957887659623231041732509269954171294878585254272290943706156809038223376862225787266974168860204077581799477429270499982879927668699765613000085233042732159495650478381337316443138644075968834022642189595019270703974289190924692129321823823180064818768310048816314050743238021923979819439265980556066818306886623956707499720071715421471529723723525521502126008032544475021034516420637296526368218344568458209377450148465725517182446568037090359173579306044520855317119366552567447192439292845454729246673126222098263601385283455414007787888227440044557817967925810573191024982863630401964082563239249426997870020103886586342345028683036995323499795811788530925297098564555636979621899442710465759145032475880994000385795901817607720761113505687447958087263035145571566535498467301392455670922443831084255734105568363211350602236862067070784387931266227970636822320339611739540015856032128343518765584378044692531123817154449242906357454011488384976223730287435437922357319865161500752575618926919095940736191122435991738083986210447696147991469663782210095067095145371680212907296998650783215350802696734363941049601301139465764442371332432028133937110684342858375120734352146405157955792878401324182804172240789853877568033461373919239868003915137315614819844018037947993375786199397736769331296008617511035583343727077267607262318867835720914628296667128404215254813103843757580287148121242319496779563331782933709846891882510181725022343323910345696626886801773026908338373800697966805284809115164556894421621426040721808574881559127607007075936975340845090262444606612203015142344039735365402125829093551457218780886895451866775485970044860718052841160974742677467582417978175772134925652084787851526941980406070312482588643802137494732473497338572436082163217298916436495301250577362349423771320722008458580580116396364657666065245247250707661536293971658107211186504961269544779480942954685442771362283492510446396066121691140804092012826022429422422255765816288559235358462621373726866452162207850230527842960688048260178564151960977918091799181986921752931322837522702128381903899617805163190776370046212511488453079058930163665357690586531330233286246381160100128285077753756245836300314055685918203058420246694209746964641783605174819126322577281814892390995236911747349814146161153897901059072706499480523062391610959347076398515210618864532161685778258492485729466355699867194891600986767526305741109760479714130855065575295599488017620862759897587945166788702901743695681394002322602747572157211024810568535351649182369021621612826700568515909433312638638462360930181904823949397916368738254762061083566575347043107397866733131987180636540250728954635193217423971602446312606082202612654883571305216800915920736051050235177945447070361161089810913013785191841480222768030442699413618469231230653182925127526980531008147048267379964981670903717696575317670014934416905068393050109334567864457484959447558236272265946378601232146999000660154040259030211876413661178181246236467171960270953153124136990298827815509697320146291934469700628451230560649889318837921332848539447032426908764675591419432439842127201537759981822862250667826234449537359457702181453563792964585386379842204042300869885630974191896469762197703497804877403813927462119254405226843350436108166242093427912964789738859263000304145195096100721772783418553864100876769939396918354312686215472922630981354772323921505375275674368229737638623859228557657287018046864882606440223512889209653946747595783151472620965645297521265769750525914795359514047486754037125779248892698972693562927636994002279086452735164029403666629093302487794825157482013652170355686458229532490533340423425874097477557161910050719361267654669998762568279106122790614782603778353136292344638887519841371936034083038649293327114867380643596341265902773576078049971930656180453812265047767365006454661730703275022473519389414552040263296044893854867691119794063065024586352063172968603961109924024118952047908576488022489185418403051769149141987472584240653526245017112994942549096712403823312467841462709999464149554243509443075877146059716719821530468643566679910306247367728308407265050011630640317211318482508698954302647495480764574311218997504897912894243386021155852069893998485011318267711700258597258425257899848502846988025773767174533622606865120755658540047373493312435499228839279314926269335614255282707539173395440168177844003003580012859613234766192023413708897718290648716558988876509629320918137100350607003436878706270585353361447118145578034631796899558167304384942028891761885815681394782824318912129071189164179980603991914638959485975460896735106030983471461883210525039485586993736901226096896063339898955809099499545564160490847891437368890395135127863838388239321975550922728482133550281640148870417646870046162331487867563200393587230440129470982301145630685098579613171035177392427763215265105143594959285649217995911254203477199297305695111968479281143576324954573957895780699269670764336311572292613138569924735024358184018460508899945501786707364030775805529856507903797504794998627650535101668667144832007620010608112792599815086515242895701729300238272908699144835606989810070711231988572372118364317026197417846721125609064461939080332944903433222577355704810542376073330834366895680933302391949010868463210165862049759709860111336971548108099728061252479740646042686937241026038890844232446080511583570804537651065094732862915130717042020275437829497665797814841128450457825195435185015006978936099406959978763114887948181743422532216365653341005111521235040763907454717003426162126905058045987305496751423476417591110210659876422367560003514837434821967578319574342739269015696572160145155039782407004258852390769928667333120634627633413208991783558707086278567210764542823335045638083324931141263425957355599261472754622298428315399164206765293877083130759881855801349612794958814277740599212921830946700640702462182755339966967041119006268191991321504165618790627653294914727056716339024950648926136962081176335792650939300834362783254828994586292305836908150375719238888973673824196989782834128337394735218286085943892991727902493616228920829068036319874073900176020818219920111904026369425888876014725254062298363929686441565593084658505519805648283820708555957928594673635542173826005979512714985766258838873574954633853950075457347783093829033909223024564093192595837111674725456631012841423566124541783586943696954144677203904961228394346378212913537427201105621290949774700035078335587492444676728473402720065989036439261397471926058649413119017264235114984143218247969309279387687355388291844243479731685671807802278607077377981890354130779202109647336682695755513686466133902607868878390152113350454968499279093316432487651564543110785598010627013898926354302480480188767557781701789794758484435892573560628572137102591294922689893126472947217366122578168936518402016771296596260254269178036006762211729104817152920669741525985406611127175307193035827497042275177636231377394403740209507473396993058085267888326794641320661781553216576773933455697053499464687990223115273150571164954192045776923706471544947000290152446338275491951468965602012039791137762653244948936935195018080032545028304033817070705440077903659182331107126472223471057524784798095366896212319229937772315060703556108341709597797285959491713125398463303625130261367851466353885929751777672254408039308592135676758603458771729521665508782433353589244183364545888785654041335172933130234523099781450758209338474524895819270181831567585982803072192455059701901475534006205112399920900032461091967232837894381302857436959175689309514436548454512208788197485397773075902013180316207634107392211769698517888774223061274762563423122449611928039979620612589257628244560446257709465109450986807184487089451966072137273737259575519930325644344200353956901390411320742003447260222863389368725578261958781531619963129438285289258743125525872821537157007155950750531926524888847828992066978804826992799102460360409238924606699560570715305986774939693134961705996019181414812331502503593580049954660293996229954546124347232982327453277313603032731564732546455316526341469872058295435791303756806186374635584749161202392357247152064047793532296846525284823385288359466259725037035343292841100972278334186084269073706684265967232828495191297146079630743959769315692852682398482086743317163575720802475956556092017535809578939093560446403903819761861602998428161367375155104259447162049878082218014865563740684167635729014223011467330087974354088439612225621126340827540885462347017499189726801994029210762809056917032179841305358315863454253002631065620186188545053078621502829803738687211625199930306434641629826791775396095249998784647544779242657978586110709995401681712569063566841892807621810861208790359856985265081909513416155762592300594001628857761567466133224017268098203235753673542480855247725503048673213764994154249448388676843387983403076750371188052304617564984292040686621278723508632292056533496984298294417715664465581374944989822662753333300068863690696617467091003397189941484727011345434444706300266863747389237761701601643967421790615121178611868886700133170912000701678542183030984801528050069707715626299364719990155143458475155498407386509840019325964651163524492346241066676008193710138639225390809404851433211803611043474223423169735221041490989983543612595049354988878558085621148341295371432578509163930204925688679537809306992609039930355834181701669210646667965279129784965584424035129149779750441150654738211327984071892210263450133103178642130218582971799913189484332476271920217750556673186439798193319052137505181360674445222541596332177985972227660572003218986031060916469980288619222800276689362842855613484130712292839590858184393705980766835790233652614403101079637495265796069305536985899148182463723874058248235197700404276367483472953904946123006686520435030456946273692810051673303949625644406413232581262383233908068909844887132807281502820849732206732771641682353353486125305540985137279050278913766775761707040213228283964278450256328562894848748623699957562650214539193374803629781655308419341846277842763740751116040090098472162829895530521640484046427458991706861542608942053827665252483034225941844571337316906019587298833712948055875461670142052825499875860131115945526948182924823712230419232269671016934820103528854875320858023663034173252530860567995477272671082394239776051832814944777880156001691499905372179974385290510133281985894002085743482307827869302423244870657232320302080064320969675112263707475650389390132551711175691196222143777023657870945279179011413643435569030718564714947840765416785716388887870146856389225774918533988643502679618088153006857166093685509869292926184486162722127802865771065550443433909828173114962467999051517539243394148114441666068106067357399208844318438164575008987289660176586512422977717433407030294954704775682716643895720076463179771655929574282144257107241882282714245333718662999960118187099949935147529899872525565410612170671038211812529224233620429957285667387077794632017548885193105072914813106468546896673901954590202986218649346599633313939451661988728457987728096970981205744204358649245645022195929538928651479838247431428452284750182818410205549937808578123256149411274000762082142667457565113926344505323137741183301290225996041376547506074578060146468732089247527260988048025225840245254494720399087212358310524800590309083943291706518606497303200481421505658479607524589364381470003719376387454271345954373335070167870144018193750074458444325190791072375536516288063234421848150284002019633226194705810231293386952961109878198005728881477156954588630867454355214809329697319732927671857546277083442413716399187540080385424066771064158022918447726705499292897317411509526032040291697814229845212454821975666561649195629005135032468171932295384116682903344865830295983440764757455281468906524942106094492084712907537668362803062049139956476966256141860109657758800060466912758111461641518750015791321142088870178448879413976922269193151946886984116171257935514788507772673043920465129241100167497342479252240281470307213959257653059597659895162069579111547922433867043676787497884951372622443069467569793847326612027342020098741190647506443633770239497959008121201874837652280695706617216492199662008650636219748523364376464598357350856048370868712648133300481989107697418959244539595454006869255148866686107665134167531714624353963616774641248099490187538265857503658481649987926174178796531904385844811938410244942280225440345316477862642348750050802141821053539613719710012330906425918704707017063649131625601028779792396440273577334543850736142405053120175801507628358741527622256371273595731392597149845702109178749105131705469224519891190253388946861002312529366976564344043493215930855557274093311426525900588814095609917885861021781224473903467651955454183317743325426570222565977925433753665237211439574944451346005558275361717517361394675826030739392528263806562963842202592566829753914503783990210317680838240089376260974274579904304033343167152877636758299011754552237797325840555822103209778763856282421118214647725395599802809977152768782498746277273157910156675709828937842145751976020611253796747600113890861949003528677150528650924831976483523650483654513250251183733107274296674629050653499422108883782888806429335631848475172819059634007159099276199687262059830432589670182525312708602951153849413163483558351397898222093163726107021372972171519727775594252905187670407740890311329488966018178831528870225309010509662984982173359340434714474501561715183732857743534974965819391093089891136477267616623966633426638288467835938185758095912427194205619450781688310503947590905729883213644771218119103553329062418774214125029511309748607530755448626393897458217561435278138676021934746257938587146555501416611156406110769877835835882194023367791950837807677298516345112282710140756294415346981314850769659788584017037393829170002227351937414838358397009385224362256360867113388007126661101415473618176889424489205262509412931467109933918848307400330191501510833104749900977631928556130875535059822078636484161351372225232203040589597196230567989447143516050396370156567518597312021876923997789284235301777252866909513467817581712822441634437903421534613280818327111868340780427651549096179973235150398469204285342150925910191815434566863633475301577508106874412438421969905839030862330957523691940041416197424228092862643737743353421886196589701479034923638925185211624858749458177837374919434529337080979519133524074710046850096171405473019826411257676475387098361012957929312430953622871908558227906463661784091208854933335690015601335108565164643119469333648507700752320890299345675685716784433432715128701073144834560891681583594041184468086529463228555556010632123347360109144029962024569077514044560690425572978023144953545788628957374344281617637311068706870694729860743729518473153990577018936397154010493905455312909606885553590021369947887923042631177042852607113503643772468217567582778416497955605970524642976187757958148169608031117271824657056623849020265488521326199099244310059031556835708410144774599481711070891407052811403379518208502982648041415412994189091549027050112931329036818257674863047737996097400341546982803245773205146580938632925535361910787497509463799399342450201316457357747305171936432188975675576772631052620746519749699864193676103844700092998024429598808926507973986703055693879903436431513351038376064139771307382168857086437114651262723849105721432650988299174006445371424768028394600135827962222103662897051989741551828974553512538408650717587812124989677599232599331925855459657036670176282308269108419362989376112999031399765373910120793624884212087389282371943233637029889616837479578872050316731379766477794472275936277511335010202437610311663711632190080477756182160534620748620943198944459192487869780631294461921035827428074579465618573714199178272782797576449193970805416502965673148768003490953612775088499546353938939129922112286845751691387419480719627361090224356850239596766139244332430579556533720329472602895794300595605292392499921236856534228666665615272542255979068142042419473569556414557506401380417669256257941599369051211165044466510209170419270867044787884680148726338737926423447240115999971315725485288003157030045613633892789353943780624516265997667581492285344317683265758662770387248460526872708522671436336658981458565481884374498612237532895509321290681870961789244230360894056826755056558173849856240495384672711305837050757027532834788876025573316274322815564116174775131218397912220354863293052277412018882319574128538810957075912710296621301912556788672669461055237064915570615822426318085009250632283880851992988543553486361605303748459029867413330692344693323143783836699435763337512685993224786377108981206175601335367242166368038516664922721573181484445734112847522088263730492377363535662120182329886676697359356487846045482759860386394208150207149598760293334992413888665049011830726236387134100820874025011295383890834957954072047579177644615973064394623736628568516263725908499603452734484870823093183433644006864401410788323544768074008311362247123812897724047529204083907271077584195071095344981055933212149321839675211080751597936368320801574066930449581453075958695574954746679074170285272066033941837974425075383121956687868617271180850504977753051136663061196313261360337845199095335400971315637756332236000504659355583262619979832591162744992786427369690349560018531417188884675876330810105222525927009523844233158580327116610278854613518733849749767231402700594225879015809897299905337795307767547895429630005004101255495002952109913690012681263633225021452290507862136676386524544932417709255827388867515373671025693385954858195587217362966413875113405692705748259067812289135709888621536838892310097026905138520824992022813262638199231403366533450995722156087770525184649121803057383111856589794661486896437244360073551787364713667815060856222613529269367521622667834970929074083000991806661014589700089084104168071195582480918454810592508536999925497843484169099441925502147018477614780728793387919925694280335294687856695121390056158110640857978303035674119271046134498948064866196286186767538605085977230244061802668330819841199728129080029821135559310596994493235103855726607560155821945378828076336198366836083037965693566847864664075321484616660478075963796706182100815283935960405236220576967620668962062622238433464076696695161362493805977850072625876663196191008147247588307993482893509026901350933559536758336745176018544785573970090076938243795777592967309033410215142261687369760339113917580312147055322523407961077794378740770132915396743598376497933758402810789381536692525132204981403897598900525367724736446081345690003812035557380362430872136900157515411970833615042250142326825363361192329365527524630680743735945029944327191294598177775449240926837998702607813904757693976709290152550388651102189403066399537221834719466089753091088249584246667498671632154548837956882977600584413909241694832744247620350430256142559045373359673524975983520933843884258058177529892322093622063815425287911637780574714150794117798565785749405512091628310849497915437840031817835502170009260901802085179012583334140135356241194724450309424802315823679140565538813183221469325688695047814884235011227144942692204116141785534156776854830499549445665343523306258578821959997879295196112180164527056913001776174267421803235954293169610945532699985763049694688821602231636530231898130101901170596291069902633573451704547175249159800591968569057351359676215478337509897318035529189772654312626856800743860171017172016496796756646400483813737812320189780490194326681359185669484858062012224026811782060385533283118732754469061692614240465786490241950786685169221911920112605922071478870321231799932337392920636341044550328826477859493834647612292815000919879294832088268412699054743287959054666212882924492505051356262086033926798942107723427176583293082682173412666230437670580821994997540216071666439805774145293059265336484727192918794480359401358215386163157475426184380057861985646692718537919331260921790911716701251814983838749476526087456782925389416612322071313725276744206657059714184851698261115933381141684500886612969952887739014068187193427645607463836138852077386932348520095818348168275573571868532864619569561053098946311677261199379830388858377822033325954501219174152615713701176375963611732100264801222147891736369845899114198902847393836801779795424233697675020899574212036886209677019561802599063739760387492296073011178487191541892059034385694011158227821450035110160187289808054966374233142083725864578940618794087463815071604963848411402436142008461397489097128472515755931624676851266596503578155458528978511499036300905900221293343024078526852589933623425409601616073482768198165329289804066630068275104968678759162695271677599807824275142335002840460585868110209347369952007348518659157143720958407457304594188158937771449807608139201491965899322841128280679174713910495521888932858289590792183418606788183617847805193092150458940807992050190736131959043285594159708994044860939033427481634425506007604603089538995445492605586922478263777542655539496917858226279301512133897133235516730977378876441958745071270943989587444801071897371126657974079264507014505100025669654747940596106291838469912006234246167569954966719229961653287318641483558516836912050524196966700222036518240584721147806311817065913423102567067024388100756635231436881744504959604367810838032416110185564485717617048626591361355569892454742456078835591179313756676029655111060404660275307760849466060394166662003358128994922359767437886319324904732877428919114862209263038793802932011612674013682307453783497292948352895100569520573135283225610649962426339944594751516244923798876877963490275170903846003632846792098113641845999224577126960214929392636307733725229529945320370240482621963306057684826781707262134263077932513222489199010308031648636705169647090508421149784080376199372611949917306852074893147011714210604302035138976804143134252939707009269454241207212608661543484023536116778816416076911577268566125615670433663369359784959019417844192556566699530467270592383890813856412775382506869532365749304843502431460782596410359647180937220815067251742946417460192529877393604781158773804262374920195243207123814132691887846600955108482855045357501710118289616581790404880711255924140117506733623336144555026413836172485567654451714944846759662622607325541519916893676507911203525630056579189719279382131437027395093939372545063345430614515427959952710412195832803921512034289324336191210398855466336695640222410078346469376841467305498839114361105280053010719711254088154769035494702373198138381664019525244921153279735870032392403210450213710495798574774601863254615696788562378760559490410469036653310483512158286020850778907366659088428634317128986579581812072701397231628614403836108422066218038464898520832531100029389877147720130961493986267304613937371785004704639308752343276220758813722913078847826670151597935264101090273995834894415528405946343418737928229802721510035463490939079560551611575564388790654830448969624037285736467884059994857762594573124620659548842721881919788964410348940259750127807713308044492371546841996595979146710140161967271910837693987564174021727092641371475161886873232853400138835851380162981859926638317014384005044943057937742800485375828485262142938653934869857060908597466749708347062460314694797766412147735951792289987845537834568898097273552176629151729990210083494040769739200616147628501544778128048749518836531016943862770036705054480775991988023581003616214605565457144819413037869438676723656584886883771095422536174504946929297446505121632207900106234651291963838760268211141257167218362269416321107607130302684513935520379002379605096930724791144091365786511271510539325602243804447412043095855002042149998689537563944913912073631855569187416545807082335679552792880776409363212799922861470809725811494595409166544022291758142673886869224327762405314675026766929421791602500671126624561246459515804177710714214877914671552850520738375554931195281092489310230973882151337849741282304159765994810444883527541996205411291055370287869934233995598460798947170887270823150856756404159768784654511318589379282675709078759288531590224773435232651330350840578625998821267832557095426569952709422400644527206932160199847740225225855695563981946464987253818409310217966816656740773324883735891736292909703684586381641592492186058139553170576630211154487303545752393211319583124740631507377232628438693730085032212649825134490366580085830602815532696524706298377953563147501297216762588299631200954586991119640731306580312733309559268001339225292163565129356866067116335850979281764905362187969350009257715369423726406102351075531016311489337586148177289832302401641012600518627637485017204997464143102013853264859761270593070891270242389632230858069554540846357378674909089716927996219342250847018244965784699834848701917427260065118114922250997959396890870407638617346276361750368303828689187842160650859087067780582417369076187723451185274198454718058592420099277228930683548972490986964272470020885993610193085553627925229618492867550747576700885603357630616963428487629482261576073330936865922213322752625404461602550233137137385846925590089592862553636945723977213982241976868152166195431022224708003536497478991528586827884127012147512225247906093362115410102388695320979107096548288179898741382996970571722546941655160578164357617010249479577043610993789060362721820148465955716977931341542211059647408950748249612855662414737080188296548820894512791603434100884546030250001076121821184914289183752494385103804606495095047103010940091266169605031947303844671120877818087092723189514590432856260400915276693733888671071381772090956759263505393173602832133419096759106380242603523034212599861226142073795523587748207521208525555580836968786963097904460270795062598728333827075898051765876487708802088406612801079639815599319763661143742804278658596057351999851139219853598293658927580279666113232039149122700925884422200482601666104781655282908978456288714967526493949374212245502174168893216292163514020904849660235606467177681275861858183367949512699663451073391949643379901488224685282163203314043744792863506513584596657942705894220871497063431485839166469051956481513624555347716629892756047266314675429281396354293791915311819885281170860036918495080156125656932792476164221252907087950270375508574195747505648989583388359506904464203015857846693629228855005960112125554752059243139089694533359265981485191865482131825340009154857062578627860100446560296226658775973120386171714409761804109260751942044070136671211055873432338896897138303205804037423982148496690804569474568070347767871462832474436211057932699560557915936282070543922817045382030955751446828517976608767497751502723877437403486665293978800532605545620848015472612215088412173239714039843544366647191301758026552542147042552165633908190013705377887277249147547466475970834413880658152896217321688871162777241478474033073141807291664309181609717733803669474635754440145858685053505133633988548776703418228495998165166654432424852837875634386070833368051715226264346134081694837556485258251236394768504888654798678819975825645145042011737312204074777985110867955613715067052126866860927989628233464927528500037830236525215065922958515219026203941531780638385853263726309070386011168615263131671684901480980159787263657704001917729456528697032146539864039144011390191679221468483977870545368624194504670993660453645734607336268991300295210831028369454090912165587916568660146660909502197441442176651307411801382413193076948000315403704940020582910867066764845801018880074495492409225939236880499056812377548903416005023896616751428935213680494562518741081884273629800210275471003243545698104116529131672353420372812778982158915951816638472914557007968711786927217951109514542497255622511876951358833199129988954689112475836146147236394790470138282803336928070009312426153692866771338691387245559642605372175634782983689049160204364976874308416595128677180072320400648281852336562845148659701016696785942225496897602789343637260280885940391056230908192349518891624370231127535469477495458351397938686394988209590604861872292015992899759983025399053605442653206229711957151228912308545189391957925169692290715475542677544292323777742625381091885596376657207656739169155877108225899682582336235471440389062364355497770770664587293026940518206870093043422302489134474539485468761868264019832259269367438086053227982237533709649636916590114829832587522090500965660583155376097263471157205319152625430671161878675307833148079415534684203617771598648575826475155049082726106773488309461117192269547538107718119636993653984475905419425743242358380438610343273651482164964865722743876322816771487298443359148761315463244430959823690795644284350906545904633690058812493022317310509276835556750714756309037816037083951006363697589842300960629328065685690316632036260708977697965541677596681612895952898271567250326376260575720864196183332539962542835432207481570856926613537294220478147155663201419960529562128091719216605702505646757303611316810374118404472707103741603372365211320343256292237692338241034782170243681765637085031778744998328632719894898497855337989506877300797606887122485232757363266064058765460993355151592379471555772479389638352987052381608596246528564392800921017764466383105790286261733677858807654535955152295104307760206780182055043191051328330719290383183853510886685277712107857394207063348955228970430849794603070155499890593934290743952397822963539962276758556134088429468750669609554593692449168262538450234988065887417840637525177371835236563281055408497517765638259476405505528681951102565599519668376006099260851573260465197273372789802371472401990136067845457595856641952732190302168188140551372727416052349409190784663881746495701359385689905448684283108597612233858072645224172529767313531389423425015256242771299535259395902584553030450443220930507424426711111192874782497906411121826285467538048888956346816579829960625382815472984259982589626241549114549214309884935366347581442763149576307723810656138382659621376759792680240176503778939321373947876983205527982547240533018559305904061246775804519090809982091362766360410753809010034572642413823124919244765580829989143769381915013482013317837029678404485100339465922400908937143177314804184053185795058201270138357395115010201219809322808761980500315209712794452710774806496064580949734553305405793792363537339164818329728804127996009467460131206606867064954071260375059917069969297590818793893230914561473609672990388673829521122131333138943872651992590874605858080945696334741091576021801361311347977540270542250378741605504833262738248587452656909934244312915435559116548247767702563882360646285137791308568987336258137770815923066646426493718961003455219889876173660978139757394820795429987606331602058639362662950369172137765202109696097168041702516456516583143908494192684006883036999288117210314446982893200928732791818748987449589780969750559686448147765003900720277532272296924909370009659381064085726544523692444976489827213164730727700077345916158561655700656909445296981601089358019241874381941259124073763518119909384699493775419405283583123527607178833363104747135534691885291109457405767467627594104483451160312162298752405926912793303388499732315578949512474747787982319761117978223848172956346807645049249493641236215246935700231622298901158288582283024099992167325205141818200992170480499093828248596565749585733321260561394400757954876889030934782016805061977381396395090576502215809046907239039018451754453773230118384367797372247106162505345447650322093971818619226633253771988331639918538413468367746926352351791899281389919364067378176371137226184032082078759009415140988801818482277723992631010942316185939036962198377062455338320666357549851447037586947400292828346236680430890545816291922489346560976812499736641463103111840223005247166743396740331029857761434481422515228275285752359189016767979053732552922166477636284818704467152203635727786604684378321856978460020855139369284148524843290564931780559168871005610544989533766401101181712127656872133043344350092213021018902416553384731568045230937021139130342857176847128888096482439933444874910978106098344014631414955085568034195791090774097153999046226792240176324837775204389098364813057347453005856256513265643379462983931279600555421138047964746623846038158758751410657780936717367209564454894942229380545509394355962310444204242899404609998357230620325175623426016628787933942449842971115118637957665000336144472027885983328772965278380481156424465089273604555562956135778540238421255713740718597570094083954964061846456029648691287374037844473907013363780215868587515960341278849452260878872530019547343937772409997744572821282497952100978546945975048520080986208710687324645223277897415215057280440201244085673787779178687571415892182127742392176912760519148960597088118540531325143890938916058110575832276403570315305063967926949936309352244608072340514739376561272938811446065362466152411336055739148494298833448686258112253020708229975024205319760824401364755824603580306611519429029911288651021575309901105396992712123733590800177941210776688477006622873069069527530706680971550913645100176247120276024360863123425034343827780900095834929468802640942353311532473063731477031787490930732391678240302743846971660699136982419723344887558870765842770311945007167697771343358897545193358433797480133036743359369315327840711975044139367212665435961177894150229596393102897607996954225178403313238963499841581581994241832217093115074159547574382408798647237377213204050219198926749760454256482809741173535314535697886942493959463157960990078738639363846571058589006259022831566209883994889034280073692949110095713855507645800705883991352209464412930740189415467710421892644228300958478194939567028305629856623805443366854709138728627285887501904465165611064054079667710753323934843185821240933615053352666787522271966204258523944974154990021667196386597936927480889589925528224115758363945812251400459009722154801538374799047517107201023112145848479283753881814894430258047300031389239315451841847858083007801356009558095642859094654213110909807366667373430810379287998911175623396817344754806419400527631699896973014829094093518761950619419145674663370311213441418450040176470973460050823612180877227218527839658313840925442005064820145973819745242306615381941574971745610450384841550160813599012943356334091378505355300406535945502357023963030166358724150688234541101627867080372121777175976544870574943788493988677538104722960651663207312212699250022145266342792049150245476074734916760602857068291164289313596460821039471931270693605329391711013642511657300822288746798540257564311932739122271441278944609154378140273273917817653365186062772898458637362961389026586393138899955702592361870883508687681722405795234370633592301560364331821791299899348548789989735626977502965084502122089803742596687105824331656001623011090033372128447300029178952762065016069607235161348339855419631642582975629962787885002079768542716101634131312897601167584198095758635989012942863337275417195644728947634081441233838989291360293049132398136311084804237610011702883980658702375255329378356846241189524798296354818252927621885681541780944051865266352630279515424816806910659239606109854123367252086603610352060493960610472239336755158442108211294473101764542106963279480583782002892899879999589619207157229764309802568240298124063041747636469962133109843730833902509670518291586920068237033655701908664613662883674908832003655661930264687614200247273932207517898236580659114283900464204792512439011412795976094025847500956936640146613741393877678546718055791754809965481112943128745086484745507446638204422310234470924627411187841581889778176041645751656473363336052180587240814647176574448089454884138551113221293978457349216092056404146740997756044005816749612902767667451887131119374881773157891723862684054613785165381894620098571374890675142217390786304249160726486727835221739333967050712994312862730922486617654857381238952713564045156494141147528917339568427676080334606816374999137098697700476297510629610071232936143392683397394271431538342006139299441769925712576147394801873992097261268914287286297431959922853404258488256971232852026090873336986834448162217857150048299698347274144032932898527914990755176982163665120411800036784932893815896224627715249656057297661050961207342667827506211579116187932770643738538265411544498861618604510791254826722033813481190481956545091958343674435829625893123732983945144913739267767644733098916535842126693494614214020680318372996283857332489806088174099659426380035637060577648684829091865311487175193854166254939268217402128427589587823712840859329519388590585087582431021685754802703343822912413538773919092880215087738241246812490275697951731659870839850031579236896051236690996555560117569591797911211649275871420853692346522799385322956487476546301071789284766227187491121329825812104052165093619570963630648831763806410859183120362014247505606410781098120879826481579000443280982719230325712152642773242674535323350838915054511635283268531689608397404472759706309578369845511361697125784964693766056738433406023354577280273587053959619791577733734452964287071671019301369054106418561076857223742570983132556648381831100046660077142089273108960603987263231305211762171025000150168189433763165120114202035465746883845433392952999544845529816717831045066373128182181586859070776886449288466993479844266866378694195414991915302781886485161113070457241702362596816610243950871417429656525045651896915061649140542678378939699314782840991606682543344365323690425145131666941205349218813109874926486057715567683122393089614561132581743179450435672660882540930535001096233792279475252879725290105601618325514048028931234553899310678818183814764092887032108118674483163032912082340754379919817051947672282412980355357720733812079000613824323043995611702027915664755214683996410953368389541339239621340406562086015748376108156813442678393115361372330756052061382644488332488689886675048727615413161567984616413227867856391636348101572217221833106163460127390677140020868774233425747314227672916231934065894677290458096547580505869379012874239827179730398789837447830661228460293501400993728364941907632484850174421732518945233072801922784514081787085791613093881684695095762263453844353877053756732928776995426198192258760182704870752872562792742464850749843997601556373254967978465417295238103268700280638099985078961426499079161963151189912990021640705822218876729714982950632333935702085325402014425036546186956345161009375116374740563550016983959575690278677082863350661060536553427095649653417023544966345732137709558915528289149858060881308090203890536110886837001555349237350435945263652856106387567642402072848071295987676149360617426840082100263892379461360354572427807064754283404831912473593683091945319223611391637107822841083431199606541200628082911321191644902894295866642767193834562642027102194865219926771607547908247591508474076162151709234259575855158896773361048029882507456540029441446230484848160834338491854999084088889632234101228213008164201249999836100326962694842385090035530040659376772274103545579582887783140802276993448904544652835812162377558983191238008278935413739549885806248743143092389600805952642465442144813492483171942832355510157625965486644829152730387220543204667940720845521515049452481180351991556908930613629247772201241811427535414139681809810700382583351667951046240345409795421677302893293697556470991020517508887947275259676446097172191364676952417744286523464157226945234167477524476044926971861439919390614914120004855689788739694175937752584169707021407705014711071226297136068565123183114298485332993931186613489183459318795154835735881547696110013808958740218063229837329887896487676453691285462461809023766694272328419314213550379148249093025668759191556791819175083499419010679739362464628640997859341416406696394423551205349364661882979218258202750168143929953936584771921090681191791099412842448938615353943979276070986239714374678622725178791063034148664702396878335367863631452876662812908098932597471879103273014432396538188751188866658606330967644232224339895247005061444205733951712736626807967373815033222586768126274021303521816688886590096951813865751918541535094341281922045680068121539964306571545296758427014129787801820838889261024754991535309157468239138436615470767687980028325409554179214635714921011374889354508270799888640299137668737245555434601524860609022602144056108636827346445605365224245940129936697096256889731129775337056406168290922832907814145150904435143805995422951471826365420737013125885662687877693743246664115484866437783275315986381812117730673217596230645177351612773776331997872046597942967718062156879411662133415220892044217552657246511517040285823376325572255237112345572223783894542794431628090401405709816982623283128926280473963772987645735745532730337699884812478444094165113349230905038146824793822763407051946772759566231653646566122771181498988671899806374230378689259568453553220547433102366335125129413871234663890245929629953173365786714955294794403423240558337956107243383102825086434248006090086067896415100268425888834559127174846604023223434584132018675289925121454298335038483566100472294927129083146611799664558190227064751393858651019893873132245422363359491089519048288471239123515350621650244056323790811612463087605604750947410165968431346881695148149353962596885737688651671912749676471190861969064656911600341314686717858115929276275820132741049927641980420271245515587576619485612456143880711881758834308080038266169448045076675421667765476641836883292495036190646398186120784945478665980258613757452761284240215436912330691953610742935984565377619892709184689745583555825376134413038410095807509467029612448135186955336609724495163633012143968280029705282087861855451226200695414944929662523708360867870285140495492384847953534538402066896081690595324235384517739586913779246943350142628906447116276417813433678268496914515379579565665105401214973567988752545991027990706597765316890930999993858923448793550022615666273206130530111633352097750001481353893435693922864446589316270082987959554729759703541536460495067737365949546253313756344199241703281801988068348077433029617713187976216973902872102782028728428252662339876337730874118450408972393415289965629286594839064732809264042075914594490557937755198373549159221627953102558248789146927502175489002359736652716681461737138064646012381882463565507019915318242943541443334044362199836837325706731282332587333044687050135614920589560757155282713484986100280108576537415898435963110516857739089999914364513881455344717788318156129006682227562507527206435421369463306429193071088091629311334456731749067102649220123363089591296001214313146173270017445740336347185816965515725458178148701319350163648924151690697888356073337498719239380091956691497200747963807675427122465460570074354181517776809324904328914325557884015968552685938884711432787091276369397695759567418128160422864468490188402362480682985116407466871459065090888749138720981336163685545417883993852648858827721623050491268220389051607235730237769651700793327121241734728327789255915595094988855344278882770739488354550661583842667482278923479793135585144774164483201707985407057704877911099031449738833584389734021937921584964622051962951082171177020583171493458378559140787165866791968565838631056868091484022542153121821747216669779852514704590993357587555260742699873054895986415264985580734177425088967595646776155906325585655106002554235858168029656969385200765615553812232226146910656418523604196876602993877825192247187643647707241098243749257192135061198286109008367015134115337263082658646046916225285303396213507459997948662397372250858544628330997027404066063576806199365701907668042209227931511965144295274515636657907182955097522954807415481420074923656863526272416241210192020373588224297796784705699098929368369422256881422007044949919558428971172126643148075466207315791477834390694851137529518180513977627134833828058068459300410936112031077799928089347952346113350157035526658788485478242793087895183424187840185342140897483951004905151173554693949383915177612621150812513321490004815045315758716104741250812509038259396887929424964605325734299215593179535311195430772460851110196444294803417337264507400418554676669457935735947586794403297595560566061172489647572978491658613213122029746281262433712194476780623378634699175153345064796718248343934704113147436690808195010905983806849030721565145978056893544231630401367014634357189643146888686613903852114782879426726693291960276241950445823954445023806887773231341742745254609999243047688083189052144728812846051952119422727807140441060941049565355239604371428780910289617058333213963869260060065750839925317567046770110618882972947184533337812290750568543070457024584064603846482978344401306486026703198324462789120904752425439266096062728555156909868576863668229947835133754346210592143960076259277639950096157174818050846232785363048492747875805112357823606974391876105598429724476919144919250057199162173009488380205937859815339920718352663981492863229896170615116943012385935142705709573468884151915473590724829230324073520955612818088491368557908475699178969908840560601486189595213403355068151096652645790984859747160895499966163217762646354699562404861831301805577634799937152854268993875758673400881190201071145799145875541073745345005276968311795271972649237341267752245795716151034705442865047522829300005414798637293225167573294531296866049013386556491244167024856140265761698278503840285540592625042833082148599271200518465341613573518170140918632045301399211235660608376244133302033686639936577825330589594153190172033075063938586075614603802684728717321319867543230242560445952877856958165454474694261313871802764352654442852003023517304995823239396234265980098592471208509023156069358195300816975422413385394162782164099755999296727177256169585357469672207250819323415667865021855422617357805165394915348091746031733500361179928201336703919700762421544244855597129349426580073915536833980596284559997318099020272691634713849006384354274893133390225342788015618956038013310561825050664310521563155522365836973101876134870855891878271785989446183138824039036427895352843675477109246019115696341767295438422551589783850017182606236410311782488912701232241826340389102364679153796485322513424951708203562958218968722716233494437347703550083716539870590074337961877599129651276822840448825216042780199223646582559099880054676067403283046825586540104461516250705289567799514819301479372454770111319304797544785061683164482779498866675492941104429647334937422343780077352435185804119119007538038157179690702134588680859024478728888021102882349069669220733956583928240194233148111285649873639543613106508223687660590905674978029393459701060280776459390413926544599141343326901793195597357472540157784852934994354172387369269347914312180944642233007734267047050928154548738638185677560784522595612337095033130309776541477965161817217764407102755612599245766010645051333786415658890680071822058840490970387454990651193051019159196324092816113043636191210275899236484779992339063606674494533449159072451897165090262774642743754098268530345380741657713009149899972703460646485373541661219404817621737854288221548062997645707371807871072095997342325784686294788477871392984724170851080553192111786302040939318862670862815715371746142148931223598387286794988819682053900109684201619953027580377386858103505040689734968948727110565761770306395847004017231310936873823707167059579977202063448146932889497715518247825684946781380985432825532057650186889776449143290154089968674791508475455003476651013986818572875717233140494602537345630753673617727695650529231897535218274015289614684193255518014594142587665185175089445911180720791943725297200703726203321907506192386731830546141483082378987686219165073999123812708143019641687551965439639568300262960640060567353446223574868104232284006791680083125682376656467946317602423752584237131113371927856372224168047790337109981389147200365019163850150728036369834043187136550032518786785891326808173776259553993475350041996286832421572106980443448914061880000836345428610995617279041768754572417801968322862069002342537573096552270466595548629569135282595173757582526843556431033290143935402531613727669153893605667951121645555856471732865422986181415476773195256698207228562217531795571811022713487375697857753478237194711217371683017943433680714348741493291024568843260677441250053042736230918947686476428618771858787523163950583390292857293366009119280852220234688582019630779395294752068313839317396833134423373614249215915919596081996783850234605001440502952306762282631506660953405721524101369539569633992784695339632069937771824519306700196633968892061260606213091269541280937000082108052777652032698211802504243817116956920494759217243916599461993431260040891987607595386374748897978911639633501053040969193554757844692110022051147891027986863166956099447491592818630930846544343387695109610148796422823300888130640803672759081691443188313071003902457920657506603694797364836634133555935671511964817935097698678062985008106144695468993198771502534169553423710029253656324767830439141182462150155732702145331336268269149517610714799120333149043300104314759568934550430922539949128273686795562772585780140083949277135730479569364625054259563897207682562966852770289802269349305246764668618083451325955481152001512991432279905858005187902487824516511291755475061702238444317149358913098260156511336832881911459960481667881833493160886474083324018586915721337726628153408182039754018821743253565362317475961300872084107334782272167585971533271481638914871198510708986732903558645181984278590953032526304819734914322631913541021577360942282835882442945671386278353244104029604552448769531047062472005582461528302492275209077854286661463033960563354857553212581332251823846277548939015817284989191657650132638864234636033937021865366791949860888831159882119795383321906258334311016237713319777408668831323119782764314247454142722160745785743547273458044462439271828419480369892467485517483101314806168743423914928203333746026552494341412670427607694034580624940787444303842801514567961393496052344319696810912806649592198924574248398158425959155688855889087677983818809509242833668415562086498235999471345009209703875145670970278161326244457864860048809224559389465781526108967399977747286830622185323663181439484893669096919619575541861593968286106501875682425287103039645482034930601786467256331918960976814300213712631702854696278323369598735191396440094036294956772353280879645516308132498851451167885431001884704909369378432586572164689901409848500532071817578693372311800056527184076862821809132750314078972504873049597140843395551972312343989998394694993981648879125056098738685438242417988171750589993380886148412593565252084223242374516538913143995662405035697976892115310621195532241815200452106914250930617603847479287760783097423284187926646235088709718848567805541625052155532618536166592854044582214805212640789359849493568380676198907522945211518768089455418371828498835878310331038250872925101395117666549010087314096650581780453735612711032155955032721550517930960581350487161461494160306714090849926217297246103256717954339045409912562638010178848474661252155854470694941837173768923209722864740806947285275106927151095410588959236650232122242401111660081347095587613924055426180488142432921235885976974959683189609694886154887385810274253104322283769247230536921824260088153928801524921219555396098893197656218846337545201732742772267298903324858533694424877547876200042386404603673657969345198465129612715401051124452468651308415991750696083872208668071762099522380960547001488994228613662303742435415315461799203694065283511461827268939021412927794379450576606401345265814727054705629035533637613997126489757186725453902016583296859891445238038801681510350121005862311132573706517201132562300591786521310532127927610947556522528607835363361385033691857877172619118494361835821628016010587439631677420149555002701907704160208309177393358640951337823123840742275945412037409870740294012146952795415345768735635594277140404433524736526357008092798707854376050743011940364418468480054818393927382047719623659989476810877507199151555739814048944877794384180781354163379583658017417021696911282280330823877386861127774797319356225199541918038986224159275700282468100582809814441088974768083186297674622047505181167808458822675448352698636494562724693378976615731589355947518857762669864275127872458598255588156521497492930035378433345097324081849824746372155816565744797400927989713699738094898153378108517946570280019187575012983408629798457195849118923912666913637605190977599690948513688859499589051156768082802354347232291268255496523198646795646436065127648002705540010497473215457874281886259946813842089517424737842935950684508218807059660149721529674582759930733217514172599202132722717108234862155699373168980047922108972014333648632474828934914633184618324861792203724725039747893329603192439248892713715795620021882233273633958762668364827057186405854482878201192961647364383994251953475974276772556843708958898719359717711225172281927090767713450116502952306942315158441322740441125473123244715465545851778656010164015060992938955748971696819534008208321745776653277411769119265820982489725916871896062385824297657305124467653237079330588963853055738420674803009193058601340924436489138030246171273599360055378169583229110353273729822253780717976191823466039406302172052118464022239611613374582324786078931054261205297362277480309131872959239933040659220312416509425894386570661650296862392156870250401286881896316127785109571323916327451737486817702714132206665812623038481916362925733585877959143433850467594370336456086892369398595985473030843445397901769869135956539618847727007165432809612743080817194366563506790827619324358980723750333521035911586243312585792437431130310800910747111698173116970076750362117022259271863085026469691313443914911061412914168588595854560686654320900521627576605414918499718760145535974568855246545329070049926096553287593333023856832638299041086637893678464819788220904060529391071899217038209899135816398580776234341963015381790919365046534857928437900899167373400594812246139810709824299873282756961370604978966431573431598801170168534359310330798205257727575732406196907694324661216865014353512206731633935562124584297932873444328449766215476177371518393719416840782120989369028344324935312132595173584747702566988467064244385347475924455091989638013805929650426971527558895247529525157112302394512547037845809334301309051215898910514361037514507945844786879466088251819608760795588087734760050315800046186937761707084880616654437083431124626825222250895104883720078993530285120055774715262651713664037683133002761188953447392947322166115730205867991426624155648646993735871839745587554133641391798062795459983555202404522382571886831288910143713034438584456254891744577356300998739889318099301976868693358261096669412053333729601314496587806293836093494507688338416128460956072977305358780095312042011847194716067703360772386977111279466046205640280767521771574679269870392391189867846085260892803352496513762917730078915858825958465384161520943107802402444810021144344102567792587041140527636550644460558311407885901097486900295747299977567589944487075577982625837845059120576764510293622037657561435124792655248577719809749654026281493910455910068242344330447107765373615845435991401417079255446788306980980339061182060732265790755133949736050861058114422093664959024745170942405298749123667902660656110233664351450773702912746438815148840704350204123298791295456939265253218030934644911078037480387364859293032080330336946583154735019662003390618268518729447578253741853844490917965864443839531387815498577277062202036234017041493243003630183696593173523563080795998179995479316733650477401891498039477509438659871443210656569518368246444365229698850772801952967428919604033496705868849345152465585314292193252299834728002970210229306209986557327000238756202017420333160978768485799327857711794643184499003376780148133740292029884346825889127764239515761554851994047851737634409952765469477829562030958823104787917756657871979963584080663061414085662201727475432118440360483494577378675964318763771980605952694955113250603077339701677882914871526841702827615816444572545833815484892500221259319521597679793180434903731339454432720573831049587972618773732769505343669232920096352408015052111215412257237885183101558502727687025623476420577376306928714527199452678315192001495919646008848929491200459671150901921093378000547870356607814327214710401463355255734794910339888027373492251660878881653358556886758443989767253527878751651550209499248525678245369435078861888737502318907483302380216254776123096351979241317725997527921966574246489583623747868168021219273619461006289763937131616100419516019402861007270394833388193365199910978033669879650795974493258027141460276200174932388394964353720340438122616100467184567643309757922664825555733481327217680252804277648457620503647759082052779813790719291986283122918983071326981553655018448096901727999424496366866114353159927544855221224620577775494011293182882956653800225624673200185129103978819412890460359289150926796858705477696424294378223553992834231986866466486205537902999908068579778747356921067187125170416480803479164487670202828675321779366402350587199998481570355320563527531671953794102317315195534749520825837062357637767102912655782459132369933700331088716386396224697595154500141534860268060895101636183130267863043858862531219686061993590049315114708101999829098968905289986258960461423421232043226075755996236028016905401624052041407845002983396298955218718600375660589506620294646452761910853706978279272494431447637585240065043085615291923021975799451122648863519568741179842777748357826086876219103410415889123055357003419752475720660214929713110067193514306284501855413689275047839077822386289011807366599335798640868536538081979874982367409927561934522123418111693898070840476372118870775691410835300090862526045776887387901792280045430205840768618364164343663815423765038151741897419145245818705173089012073216536023832766838760819669875442009232805220369120063138163217341552581390210503155613962511425877838861731951619016620514479399088808485403338506550247296164189627240974097250921341927067628498890398074279407859337500800252305105129904835529906811832673299063843606890834900864891249253584087570521909149377457517337145792734247820338523835587980965493500169478568658289381736862604628275573494337867437096539252051494770336691110639216836086413407925957158426560990478739125188895877263304290317840246550412800737026218553267654673297760120087389322797150790152071557033554594472408997437590926273385627004484140964543500928432164539127527761578136476829368660845756922140724011791907881490692297486109500514325376568067972935172155013111056805211275230902698221028559127095049639392309319162971620755290116428319190116850545147498446908510088441196572006499494541811719713829383026955575259446030549819232140760324633503253838332917809342285671459121547613468610058037441240953537205959211041871792625341363192166428500495202971296328755415455356762188374211179209649758618045523284623141899780619528804524886338349644803730600542746026555191473061020101734036104998715506078228419832990710831951249009719216113458440931676787543376114019386939581688096375663885094118940811902809100162683500989886829692982289995009169391033323401011943240577357744147498285659111012606221672381072331212520585401530691320118342424554237206421074230201555928266053927854660928195653963615606007609625048838543851507605532211561191941124464243495772045016289161630477404702327543605686992380136065726683294270827654075154362016983406811569264072225098305004114510081739316690448519785383012922211806440414106353048146268072377947470905629775503384563616276197866707703382713918050761692300872013179591778311538943422619518239643225946920680605201805338176246984683158826077302133629025799861385802596909895624642406104680516255543974845398488755485278314025689840114864055932862152815594983104014381871022351227304732899722029669597052109592115751314747907573334398747332095337747111512945169913002145495194028132726540966661634471753373246861259302960020623125382367835880066938471961913862699954073424302122455680041955419939406324569695015336480749726962281948993021146519611140935503317349175851295722623393366436730749719243018607372370016924382452057710941104157350948648394406620912684571909777760308940146945853071025018730310163926590298645456694430973378258373999742700493915815934115157209293243931375837858268709141772598726944371730947208079720388978734532688938519110705344744093670250260264597499936193866268443996131952055455197598596434596298039175109474088878010274901620567611500152197990145316996617586890193570860113232350407814506237211908467953471754050537408585680564715299903950217957331065347822860999053843685009749640111714920037901811182234746608646454846607948038094482674135164184399710966234813972665049292729514122244412657979058739213888909415592460204309518725961144612300826463303553790489349221944430962285700907923852158541130300043562496503419776145733806585626830492215585331722989504622545319887421603256584925852559399746035271072629654733107944872879194967666258828552444161887304787601116370098420352388828171119163448547878208741827611064740691666862038986088946022913523497551538765846203613433627006202289220798022713046639626237580789102718997083108126776948677300846977933846643183721349305046688258835085831621445301872866508341413317972810038240600098344128616214229561367795193785457407675999383573399704536230781736613097704445849144749622127671002849774186996909543325546140473394206394458344802392081763977587872551539691502178663878076072745801702358462253808935425483603244536253832793336624595630882429486276713404374761206523505807657876858165110621676967285155042338862639800495268404321355852329945685837972549503896989621952128229039120637696621078844829044090639370595853199919295128751515879756395463421724383078487429673513850041572163930163006573160031665548227396259580745048909209969431411371528590188611694120998702337670449392337093783361124185533263454408272279706373479618108162355020129511304897777856407240373073060563894825509213633012452433728206117815714369867869106160756424296209426083954212306618060480012109629752836383308388774947245100152182483253076266566858472279222626059355245223234125311127439296508399269430261602944579493798278477134290435039785204752422761245963935570557766444631151395512069147272647240409423701054053908222036334977192594808158126471474138426243001502999650635327419359529720323343253996087286112758943989028448483228576538560778590651305506099929917445008973817478202409261319589318000249391774690863558546300036857219840482766841495068253103726055826891655972556322945217789988624234873749699488617151636390430338428956093823799169066701903026158566887710882270665941412917767178981061703438691157718598574115981813327176538277635887025776525451345598568999185078512609939638354946424016293509779899620278392682139958100979826032174233747054996376533250895607207785799785571948103896085806487606167757720817711543443335264824082156829527700947411095720322719488327770694182816231439132359979920446307818495696494027979351574716261594728761121826005946091305297551855085441464932795295763909571549854566298636242645813017346137354180579138270005595392444573698117191446732170461723760083801371266261543992917127265328624766512190998639205618859324243799563426478894042487625805388945263334899143174943824519127137049318750933179168750265840825342982290223044854052727795538642481466120697883456585067766934857515936972271499172998334510764099414997975639524798955174277187090587640291499509349726221418300951689184218941628866509471289204706712009114979381512542717346418426842293971476908528799852894659824664710281801273377959467942856629771347640446264815355817769670551238205983854590024088070729212810423446070360811074340765330742708923345614441767343189623979719240424491274904612362201838634791605967893448472135161743322569584947351173458877288548406953606544153991468221248553839928966787990339675477702188233987223520509006279270165670200134668019144323278920321709248819724066361086714255125970135383928242855145614674835603538507621073967221815304620718908368147976530191915426223320623617999803150218103167834510091382262835765978247772502254582779138283716433175614813451249217501430935554988326976007251270151319653953745010673538784275230846628306432370025045436580916536700776711048522501947969969034075934284610933029550748474782589913677664247854605058688822299920460271813881209325595181799324478107184727101485701001690346578873826172503576399684795097153166477692710640605676058869734603016361969512192212420979305326102942243489451999105829726435981756680183568341202962765086326017667247900390389307615027563820340714671294704174603973465616635751342267098078086184459150786452658989823424022582597731678232925024350094877454866874398537652146923635668150757846731769728962075141338983657439518067061162630877552786164994479573285911710828198761590215521980261549028764682254301176804116483579236923355183136338042032869907484776797442178224879962054842412935763968690700526816500481890356957099616348893099839829336926184328044829432992522771533074417079703761734021541362693897632845843528913926868998785921856591303391687881567920040738014632559764998042925549427335159322236067264911021758451847697105417362390241429131780288084465840225968892106197129439813276629907612469449971683949756294474769519592692446885325882641021546785285930827862404637142718703663965195014551600767457944627427124141593037766944722247731007870086772235086900935109945015872417225232750505753420829670663629879158522257938392070296986138052429389901472235049509758078819067546147637989280962068766710294912923140651531718950009206346688264535620990896248495040430413362613751496211448860005609530286798720387370713674342602082987401302666570831364500119464207707544245081245392179282565822408427868187068060935674242772919908511921358888304039796519095034746120454879493075309656380583409968566341370308291280314762708806688010965740210424740645776207983571078411250259958852457890954438328877132402983764971347079675569960684522334047899500488184846131784021524487179459916353862949502864580665348341639015332632444120890674703727825031811427230352225438658266934756777069295468087316808417218650291498729337629563123146932832257407401490775652333897713347974287517500177301534985155256722188517228740502951116219572862522619239655970829855156636082637864606862548322645203612125984064175634370778327171580204543104730397045800809576996932322601849359924712052915298326326496310570967084542413224605881273907640446517614037760928115926530437150765409983842996677673660511627733935120153506279591855788245720969188715022571499794730354650232021457127145219730698823480045306351837631461358228662683726947173907461230917348841993059106953529798446300331362157074135629940270609781532563805564644900656947875145711921316670946215738925782046611719323467800591018695270600441307545989125560535843634748147636314107322022756795209849783494736245579293570545066357730299359293530196578586995112570670198943914786507517181299133167623866088073593918587136856517722797708162089980467336409442671084897372440294887830211839961694510043103409891663265164829964499914466901739702935303011836896652825446597504739411585987480006469696943028091944582691684356981644926765317728624669924623771487921369301298923559448762915892596905222329690293795933465718731418547781852227349814047840892073512541944458075286716790376298745823742679208269541487521877306160124956786079614923513535218184521121702526593996617553562339674233320562921087328600611809248946065509665286066823268807504334433900565715499524130840679165362325666458319389815026925811088449025926447096123565385853524712958795773865461212134331608197530099773714381329889239799367579068204175200332090263031436816892520390199167533941399068594754747968662132566843165094050443915456181158642645432373507736736770403390466433510345843845944715128561181861416672193104181726553535729445074040240012083351329191588364810744351920901345776786182335788425922965642814660762924918452946046413431758296051856628901721977996615960369272055773624319906815339377109678256162941799754903647916984177392438644286699716728969069463530186245274597886669625373112414190176795177785550406604675870066208834036964548763328881862650359379315490611408151824641136111431185449466287463524523074368236510654158640588024724485928878547071198988872311976928418699214786317399378787147500008323825405984587046051387328262299084396479971170473409528835065346201650926250916880157494552211871449846922355424174614969508122601330688879722241810229057713676198898637767625947324628360043913812567618773497017812163239388149227161022955109291488363202179827252830644109850336176629248615543444163737483787842339926858458197939785252473603161134683678448169400603838601749881705631147830187698483701417335532176065503640154360635973790827808019125865042067112060869528929051140664653862690147064445506490967642008282446552409759927959008732401938368186041694303656926986828601591350214006301062926521270810543586624015269352835337892724737618991724797125425775200594213355907667884293565573346043062967113172333345720698846411065077664398888578847454462903901588773756066705464615667404809533039166900267952928148306391411952328235255029029141993926103966020270297204558810443645487279229940427539756967138714565967450556635532065822829295158663992723468715595229769958292071818698737693526596414749031039169780852608725142250081470253745895356820248278475043765085392891066901004774830098251768244631128313801850336700444438219167942715408267126199595081029267218480264911982425424945543984757471780255997076586129724770475878743649443010925420501540506367737807833106314782327267955072189160121874606978344480988049839982551011341328715061738583696521384216225445056075271531650336917938081778039350533140511971178658791112916251303342226181852082691182808701758886918134430660018088847428527978719891697565011609651608629515647361066025786331486921861595487580761351595467624674342972373249890325797460457564396788430047269981000923482236799542770925447951510331180091429894894566839918809016001171436416994212342014886412131411915266190080003450741809233950351127146372463428642197684151852918171427852390772925408886545823519635692276010990097407884708825298638357637927624253374876719889474388411295189850762939156687582077608590357341462666678526584584923638746317138206874599908153264563378832379418536257414141869048125592663877422414948748264530359650892818767712824446941458908733234528598228486399649271585876937425132118390312596793274193603428593703921183816806967995440100030998447660461126654629097614217104137374901316589651931903744174660542262648469357601357392865648788521493533796211286235647517050488411415263395843851497252250804590218793660423688626292211227160102368113360753722325587245220007981734227070208090117944497723944297867883281988017488437727031130881028577832511803924842011410136887190206994042230153032983560139074670503522220690863313954310487265622909461428129521446801640257604485770816110384349245924083203685879386187584139465628926851384269695789406034063838535997801293842006412593826387857590399865824306118202007645895919531364314810263253331573668637203640650381385563970264056386158926066129186676576812324585017232223360402065748447361883852627537965733578875565715994766472201033350454640431743070249699873605518410589178954923918394001577677136739295858916683852838672201797245259082572535624386872857409716716417601236621398944289693943133682168801610940648203993712114790207661319907541099577012296780946002642390313573290908078191502399228441092466548718945641360734983264883354299801038756327049310977988950471652727543473292190121276817889776954941941396391123370038450224124674531923398727941133733445959468703508900598872616993070442745173245775321637040498216723479982434114010332844388565559395580152729020340617415153093812902251853433670903016996568956490148104044567926692258231506014964615560526648988816833382609358230618878610743098850632602838861125131289632751014517470071890815559455654832575225394756096626959075618904794246879351226725336890526366929160055670010554084160542593602679889775581126555306159700069844566943742637542004927193002977909078443178690484773217438073846064412015034726439802516212220144453059306846375912362153020513563770246613732760453434054028946385210199816987845046114093056495704256903380822466448943483765422108434762451089267637004618618500264506816647803692578309127986257167806745474763800680675972963704283820293886833560460951019698640588057262726221847394772793923109486047434605749015091367676893942404815718871291377963070978991488933525624429074465519162673730288943932713463817168616085326771277314796451757095784653066733448247435420525232434164165662142409117942608982285854239986620431669265448869194361254361401102769274599980956181504711200916139715656944208778241884359506390641494273235578692512562621241454338456128644018218235921380917067141073088753531246801920322600404941001480013074955936129981241750924617687589613098406428137183466740151783024932945868205429421528753866977128336533356426851037071767863807189002376418900505630668362838367996955679807089572706338839962872335467311715803392607078720583009346707031698000100880673851040807250025908866592577719626192216780351011289087443059698366693419916954619789604778212516055919795127490269658300662380308651178876991105113998801317189033718819579657324683315495741145889890497468510781305209361251077029380980304000123229242750268339617175234030067010904977270497389513132547119729330039455379784717339454801500682597650272322884262515604104664009636099997137219623986280176483904616915944542774248836119538406023433950211249218351400978728711639926766058788461891678362208680999734743394632633180102977032662655011757817895180087426796745233745270087764305039561283100199507762165407048270632553237475134305302311483658679506136510898725613076629222587786026616818155376183266085977659057787724877554314469160993556147504102887665340115208728735017701505933639138534142540517124456766346001162441953493319465948585533752405751292967406655532880030674877295116164268670040349557568094870192169697462188789090172558057123345009655239484157163813584938639384901267292422341623648327125186297389322653678949200942821714144524750128496607935913716190703265902477098845850743506808202750547778567773621017538496894909597935125289235741775895966041324486923753315219816163404531911609735593823187976522959045612220435721105330033222410990253103905766457312706979481374036509391130345593761750083227063817488065742157981972889863267756716211367261791003892658793089363244865411470857584785332109975896057976043821434177410335931438206605396393693083740236110732814751195861599225299651269372077479532400831331865915815839173221971820636414836883062842266732398499243630554387206934499999037823024877666264756786731837309171278169429047005431073597976519810710145219916090446863384097266906939879287552777359447742782790281304226728994383514987459735951196130392017251003510218557998828696457718031674118038444918272664242523061810226729555235682313912185360201416122259659444326662542259412018079271627990715732572985214263342926381156004924692712975572633001634391673167583647380630158824262633987883749518041948099349639851395965328491800453010507603985036020931831846893560519058354364572614364032354812266688721009797837135836632393427092839018755801159980294187482239020246353317414725156747892733828213592708060587380240535060153061045609966989085563364429334681616240676956085534542991199136488967169819414700082466493982210250803401137499077309436307355377226003691274352787430885855179746470100988626953427038732379431057309185202922711351865941100138118428429681172373873857783472188833435635283612638578958352740787016495750245694001885248506774737972698209818522842686646109030294295459340927880083289897657468281681210066266727206641722757703770144740239188953452575623992102868523768980960518272983669982049386059933779115622973104601332635766004794005226458428269064030588640182730252122387536141735513956029534335541449221000424070665778226223131909116945031846980066262047895893008985164292691715568019917314873541424491668717013051814506717091511658676513523785541241313634997723701002493351440330039101549644267139133142685167736311146019112192127901128208288703750856292558179099959355081855593778969651712497397391465564914505469675890155930589252445441433589600996859242416982028318320909319757015298005457438406670138017986166748585592023043041689652734332855049420555842313183795827722938626974961391378119456989811844497780442651753619291425013489234291764808300085673722154849028474534732047380567581573125383640892759968497728383230604032467206648677564290052283622804880258016515540894076053308679648317948981867153972542339585189162704830014695822173241376988536439581591354600749787308601438837877304135175636959183627842877573298625498241913126762799680304992322772392948619106249173013397083905001465155646166395718417787061806716544599311603972153891727088976359830934250862768382790309025431215955649348165639932680575413401476272601197905037121866083118659328107388845879584227363221167716309925788396372368754212907507023380642576629343276978674866594609731789438031262301374496400592066130464304888054889552926000343901930856111708898647165799960165600716924862549255387441436588121688063830083932526475159392781067917281307085112892004526989069953956466991426948127429300341870814938212965380247541628100012337733188793239066985935695247481901787145105292794262995899112928608683915343544768551316480098513367154021318542383357320388571094218982729934525500184534409566047073500202571973454431735225852147333661226992033775088485930669084571501484984379174221333124043101270232276787063168557768431608501830929604214751609264571339280364568091690223435617361675684038576824625844988766598836106160441241259792073447206446429062391977512181666241085249800365099353316441562501373202083508348697963373708843612911085614463046543732412873344064858043227394539951083277933595612104958435651381866327969952280609416090654848349256667768423111523549146343734968365850846101278822328755735487135510815164779570207613107082647094909459918829568061352211096512877554982142159802738764332164397946201433204128643878990957359269649433794337201109531148770169243135604426630153569676438426995305467118519431442024136585703003968825712278069468011433801629243586399072250086123717467190528543336491895990087177672651428711031550848338616559900312065342623929239721083834600352596535836502846372657352133233395051575997795988424102903793897429729944466171349636258873229992540974449281415517950449463744563020188707468598052570429568425731967249543036353465818904000871854231374031873836459767821076317511827057825711640648511071732822673102102299068454125302909024578459805989254785661259174008608818688703198444306687079108897287631813549122100889326331932268308678195030782867108802218305726116714301664006149061012030815024709037302654038291796992631081828460320409388373311990930334839914556103100932060332969834023032941654061837372278962838273798998572874386254768726926370084164231891977039206258493044480830952765011912854249444694059537203375170865426463221615446160757126518698300955437562276571760768819441933464740416946630124245410466189399228327791158377403406593168913879826086142220949346710649596497575550728063424212004196791267917645424043903727371732119022060591808366163335853356759967033395667630755977284445275542661063420141420813296824219427149999012812758232659186243209318572701388788904315799475152054505631268619014700745684123874288586995552878147420189195031832796278370324226169694123703217578263176946139110528260883813129476034615560205012781794800618597117615331653766896975846108063201445770185692035489115703463373685381857561817887502980578662680865988779764821371242431564325070395350930800629539532114924109343367731083114800962438542818788187881852841925472361026720120499776666687791272840764850942452820742311414640419984407880663505618800050170922693319570012673725168221498196743587059877937190431373397563698887217394292709296835796620758983830964825580253591577061093108554776789559344155992655556559398035414934692009578794912540362082831225353197109251539736339408078685017140932916119303321944388201973987808975873564941460340698987104832764193987066831542558708283294211156353766851788334677740483847974293625020113918006730575566418402980156484248791119993462550172902564488457047154606878988349091359500772298262557907662984452384532543470015907978104701807844313619942817365392726735696967671772130116332467517815677065034380239067823845652906083053867949321328144842342800257386208498246929391867855813669999080189418177675608163802680342268369746921989754980081969256684010668868541216369351693425982346337267654722934056032040345397229140669632311181943693661220149705949408736024327002229755760302230628770468774010577228908321984170345700107299518318224368910034233856524988439160171084294738545218259404473671152954470936703932290488820504711460207960289645723025685895511437143170769003125299323679049632838742591061940915064791835009963418691468015682048918604774007962884038230689963710000722537164881834609731346930009093616837974232045505486568988311747168445752261107963901401732406713081949006039985523828025255441712429777900263855682615034884836104633936810784150100446119608616466084328937923059167558896256398776656991429137277451377884282811122445205207506495521892858764201092188561528136763630442595461544430592990954695950839286317203682285073579713716664645352616375484660728023927730137302088086035534105134082115640608496438371354307406913098124854116932292544951892096527503688666281977791428734609881684926525950898124832606809092699932313846860150669038012480190369390840677553519699159108019882579849605230684825322292871821496580632691746573054832916874618777967730737397682114418568076810908255942023327811105143947307803527138029271205560639294990145366323570151456408091610552728226061271611089456995529657157504332762839420756842341635194426277210335483469394881791679296113419155846408889652779142273085091432692228799502970565623533493078043862311241870460551018790296594907254171836396623289251672955395086627424634649937742840422848802092014751692317446536119297280582349454707539096442834028877702746965050160912793974370309331333964168324232275111153922134682318767908967197352466792415309821873744384378059409469405069296524774663151969020671183698585345503055033541408334043415729142600912642206726057805745399222017431283599156469675667616869541189916947774232400410138492510259736941865721310524236944465453425313680975800233762198054222374144052329543673556744164581568518496602632993637772066753727169306858175079903002124235107483597765746404718261707439760478913438694037158188277388955772211806918944353553598400679550704255724682437303483158506632335738041738366798462158127906134724889036245415076588305435109209341095325253597973609222330351566539836687507455316336450944292538446343457320999004159562460840949244247733328374602488300855213082240785678738229099080112946344568097070359881008256115694668978789000606048659835988520622048355045100114106437486276965390118957544964336717304336934176094780935860318243079699883032551270045761792540656838950757872796805848307964381357788748933337871727971732328720149960930319078569891997934861649023425984794142694015974209072122003541710650238025344889042565592160248791944146700518707250190773349001192078162192536448751200487071324728596263792422068883076665310827282851361140289349888772218983549065179915747224111445450983158136577975325890194883074033308755391848677101768531811946891456895930875992975366421776901422308659863262498016761724059608028665152248109599558117964427158731628539429989216614409391282155991142209638057563820755112444537936769856923845041137552711598293748159409200983399548104299031813445211125404750859738111341202691964471799396854487188116404750756661529705674162699972218726246968008586979248493365923420492198992956110160721828726222068090963254926908780346972376594829815671110017198990381987948422423310893573258554195458552268127403275054588009591257680346767495947652321042411871295193381050982438357142992635292676495753140376335296420976823971304301729569998495687811489609822289831918024129642798358614630155822909359060482761275871076648292377171777844715231701436228347720211934427973868906062001383962388809426355561253811417512677614571054879749273666372298431361388796119994411530648096884482546153591274095787744765879503800540415373985513310616387118833253609079348345832335277085476850947383204288440461824917707625849634636800829387713090471815090635265754945784988112672935024856223011749378569936542772391309735122788947048987514839557386258512871249402642139582726977619680165423456717770180617057965889969889656083026432919001927975097390401620930717313064423931981802763872212487714728551987956427178810605469343349446412226801386213983602407481015242985291446058101224734569772739555184463417270709003519606211811701570110049350687894664496573544948852891548277621222963862789372284078362137783770229706310153064315118462670874168172888651530867840603515439344033557068458863118903112190336893256903758931369392028078496109853549791471124582525962505036776501684051761118204000579003686169771635195719026183718085834333298005759213504713451465259947840177461450690755578640958653048726282243075103494336605158349243373917742378830990944946776454961296497752822901347667196711444391648373934595665387395286865035204772892832156470149172145494571990247021532481748064568602475905170218714267190428500370236280553482099993959145537632485893497308175416959716986649528885480689380827945524378716102186146680313598235561288533221810625125893523074396419850934784466848340138619541548084127951415046164054717382675523049846594181092750787317170284962157610860778286686864179002584445227858569879788323005233090809482028690347430382411785299716690063212086668567689317194849742349388914495231953052112536366038793276069553064598467852755749273257713071271153076792555898267285872146206747853468200151768618571686149614698523665364764530731614286961800083944141183087478440486546343896260185256071753984397715806997008311497441968987059947035084659955947681162487448925465927218024536772718897662711178940653842933901392212628226224836760514669391004311271576490088006115331031164209156526451201538912277357442477086540910962269593363974378174935603369565608834874845783814463141047076748122223723555122175485870406596204775765302146515053414771793414465288349645720400289094501036870422935511814081912472000240058968684054619696989726260612715745925195959278294817570798567178496699045931283114959086515851588969403185046594144433465703828365681687791824661121049135680192460028528378655797139698211049011173162902237136127211892320669322062704049151058329712517952017110210359016705623223728936760210295919561395476980396599435943312666713126804245625957665140279456591587304240261362594150586657704358936438871846833813593079690360570524045507236966358321503387954740031512737066502708937672957572530993749449907119679746055508845641002974666442311407983604298343224072350708991398164954510500498555019823229783402433151352009584064994667195784473842990037999184938184475188694384475105739138865295749360740648536082911657867610020034264553116549269296519630576737610918198419420135766118830745043611606522267671672074585914763565759864880826224703255446557067424719182238250556236726457272601028748739786732501133511442991303154681327897995355539206584121275556235794536560868899422515126744146991728590571882191750911803122077006970053564744770522083007258004333557715559338893544070252932429705677367157340351754176308066422290650083709114695763967412373547741407897281713553467973450065327654783833227877289881873695521239149361681619435204917469610921459693609960405413426954439277076721347842046208082710393673335269448320641259190602761253756117107290509357928633890233435222422132425125615349999181375425137628538189807966966104652087805749694581753731411430845442828910896624276419220354007745283337277044071844069301415213314153303088003134106993965663492303787803480067694098202730217779709554318328009439477149242483600590460145626129204093784472345364676366258914732908417814879063661862412169570525518351304505574374945323253403307781380659214649011904835528434647663118247348899590396614447298439328177159776178336000268190300634402130283231458931026773192067851028748432679919028050907289900413694676228773994307617256472394602297541079051386874667824295873230066933055951487349512398372164921312204799343399094072487971934275517254156511045132357952487495480520545393976534951520570849380533968465269499466532904550118047024694987719186491474021731517944926429480494810664483188536099258501503126033439079376171735206007632760845624103330502118448498291724253953913510439400304646098186499451752583433077186229409566300343162684785463103450430385620126835382009229774847145687781877877808159191200453171245614256597609456607323787266027823425443517279329914566416737132482964458553392805166704276361496357774139044246415064239507464597381010228241860315343478014057641080056788129148015402015843044996245796601870469884525968984019360987387490864195278472761416582404894433390722425256127030798664474000844144929006680055839864570338939592065620091205005635637849495281844824914493409617789994570891499501639473002378204782093321348276770479460150786476255147286925767327212839169713724127982420683858067691118120402192297292538117692469192087052739050235906475680170236225230466449252004031178622586006182282120340734233956107458314757149370950138484548606814238126340703728037455955511881354045527452696625486587234087278650626743454904354492238205954474750493529794124732934742431722544392301092974755543571547057130692554601840237736944222978704444266258752041860055471124744782554647824475304678296419842721780147119135458130006542257844798680463163769931693380381469411610803232252850321295054535722982599850399656104685801199042705175509354885307998508748521653712725372661261770624686102832427363255164103415028885212923750374982337026763502921011231843223789405165923942352806566111181912428739696885204180261658827329636984402355727126809769000979675139675453051360322738892473721574994324306978247162736125385055773669325058245577456389130520851230102124088299896755218849246330672042983491753255081272461454261366282881627363678891745767885991196424624479420734191652753966714775215438040573621896478881421010698403899869061996007582172339326673619460934168641804224304540970934591778549164113020580922387674417251526309630143596823964638963256143862815502984059642359350996028759678150857060131449509278870713570484892254828885737191668637993930817077105446605680514748213290077662678420189925875741278727745149181594420122379198019105152067972465629106721137632453941226309788466497854858902031214423685458174675133095506636162469638965154539219559544696100892508307229739838743850306129485355140714448639668087017121547143218411133748642825666114789416250744158393685809914075052647969925151488232317976833257001639042689770419825412481236266719066646372578833651194581115071298888427235256023749389480339908728539082996602835902536244377908263629850269000943652454129398300627493381250225321387493343388976430213061828650737486489135870504215740035051179802296864468710159600681299755609203339628850553910338961954727357020150767792345149433580048608783334107188405118593023618756558431545932021473561022063771070109632678753952384119159698197577627836445113955942214581118788456484635372908175482198826909548361175331067268820435754068760176880077539938905861378880323126180318898724752440869411736409753991641554439076970448443589237916905887658539960362123246694091848270502596382580823053081224779626737574790045284441311885500734329033051235696739486655344145602719993972316819498476319824394809996238935282293786106639040064956634623637149290359350806525341954130215566753742877923276571176646850635803303073503301163822081515989107639533642990692554693448339666977552775169329501655412083259112702886989473945909883566650607905335377403846544423680307537221123614853488658159876385874427288535623052024618336653781328743837810111675493738176976279748371951775363752733278008449274902119464413963457802164966636367004923074005469991387570033519717215890145273436878305649786963749944528911553614400889417762931981519255357225945370958837788723107806017470589588453405607276057737575549369924637304449030744728131434683478242651486295787045110453159666761060577782510843658926978493713966852745075512361260134427824051120224938166074649349332211762487816681545071644056811565814648102470199115462651850810841309581000883672119836335849445886970205282688430354711322217479152208423420672605704405263249639570142280795191920230537740655342457537603094205275446850457988274061353481591839983121095540917893322281445502451686214556570935024380229727061381615207568938680496396010387929469087331071237386320573946878776834149835359441447255035781681481352452801628223160475746645991003168384940567945708288738481320697418598295439842042212624873139415407510838290259355606255814128161743633988663919028234518056664265699392963919665140771080122173912987872662388321601173510212388673760776083512030350160158067266405894866092592240678129696989394423098322289598098198560792489393967661467536634048043558149150713330500701414060087975318056558475246595064553600467872586100775117727161806921152503803007082286969945174066264545873045876851995263488563840672395980720921877892495071579622889108840628563782766270769116505811624793338602242791561627613960965643081524179302344629316162761296548906674541434613037886645393063104159021663578555155131739657565879833490585602136007079482299430873629858183971819131626696342818363354146920992003599369230248355678522115852299110106259760020660147032662142193078746405378234398338854928091911591706345131895183731227950479293820047026547968004692669874155247747900546094196795482620414341500918898842119138927729012484213991859051499832485188882655605628452641584959620210241458316586282405355240508325593834701477056306758953444696555832075103851033730739406229586061333765134158416470727602478118002595193718446940698440311093997840938478041358545008541245658705280746878311273936897025086851195455409367225111209303582742619701457907374632267018957914700722011164947410191452821992438930754305420384552090597199604381738948537027119178646969570369469503389543598350575399673740021374174470967735518604843059861476094672657241743182893200312617914165169088996485911633679336721345426448566234034961669150542894159814379331720201903779873574916844937454196977073758286021322083645281896503164895216058031650895239601896731749534988689884445807489851015493039327219203150052342029562489346035067122200522634727230579894825064045398773889353760742103032646389336244762649748799421882018510747967431217353068953027108568084103245046541209190472334211400464991506726265762230501017029487737745743923425383464716275615222595004691442052727256820485351977635090224790518871884188953290436854645315183545301160841088306009905222836051450778176007221421367326913052509024053841865570896316104692844853545846251061721148453086378210386566310200863791361816229418918789151683505899200254724668895199170703785619666843123115206134701588702195436049519903658688743248567111387707039994922228286553871693092556134398077873023153915650500512833102191556328432326075009166690166860197468322899933241260744873607913063089377585000212727543253489396864277308789007276144962227590906968557401576206774189963934955137409888963538350451780191385345108659729077836196275430969214048619129441476253889637405575112564690923580114230943990006400835048566606517583932290144346499851747943907689889559358224633060502253920705025207753738669526585317927204314078805179426885324185333154088929207162256213895989789238734221934723498647673562436006899374833431841961424769697712995138977637772334169861983059442402882255615823478910716197335919103951175890186528699295525024743161550811472077038597580167457670006842355409881754363272942524799400324899651194451378336930321106393338453197722241794492661906970447971287405613361593247040732779455526602191055531488299615742690722730326781693258382137248929480636166488070267505508013148003237235555307870829487157744052962439439141594665538871324086461297276024048381433809375455059253946988190516504692899050606829927982138715142094241431132128081865624032460373188875956256234348287839539742958812468210200299365138318550852569960128472323326238562010801958286035366533271599232397962075462347461665081240536380093699895459459896394568817206767701658859378233127596320198078192087310930924074538949089452357098970310760959537854003618937274200067504464766250476798071625687093550811731074754161815249140175032340100864737350417733416993522237826156800547182253029389055753816462141338255039380243874942826423717132615697632331704922412469902635358981846506433714813494258708664925052574278702571521564470629840033871759158743975693172565638740680184518121156392385157748348530250834565685515065043146108151190026025542113799978030666123874816769556125302584113695291575970732754912614235274643612132514328414458856683971929205923062777353362319553328947618148783523216623408022836754823675038564923606522880513530770604093206490245422486056706023536436694139523954574221414578036780786108285094350037950780923024715835144963529237722143991051759040625854060624825512615497899408058118353531951418415208491726118361568585663445125189342838464352333474445922489664283018265689713585778356311812484669276553416794508136518371171629222028422840367836216856721670782256481243897670954075617756286961795253148663105776136533936849504231440490373979780168150483989248262682240452418412809984683322035722758774197729418820135189448900046711253974356361499847419334914019603387823644302203669624285437500651080065658580783116776702811314844080530580702378459160507852471575249866295997868925847208293301404812185840629488784966092108270979927028049042014908825044254069802515301349878679128592681282052710973411671419847485381526046477636466991216309249310666274403285847102911157656967825815740129781321418953919295764772925912870505316997067250989603150963177103163409202441913306472503668647532392482015712544135502114570214190378835249594235464801232355786858689519968611761926130914244213222394622386107946991007820759711166935740929280802281321079403822836560175760315128055564911339712221305179965859841170898260339619079394067983168989355133537067037546748191634431863118537173119521187319957100694334336369801616064135190822677933765334789950125659517490917505974210659982858886742708768882324140025529591675349167353953563738062028679522553785383607936372345923671863427589002582432330188151847014822564450925962325841746800786556134068597943695562287245394705890670528333078025095969946243522401352719320430285911930153919006604947657644649870675658246582348465283707587651850691708542715613692715100879635171456882564566987015923290860084794251253115431434225418385941171510641093512498157629952464230104731796317525073183263523930413649838362183230520493285018717193293533441848067588423794442685510811255985113991998412884551060759833186224810840425527865598758383725542239691881108530515915847997701939705157032260387014073765423337616102531832363567892793922717110972838562582720969058968768904478246882350922156600530809924268515357551183324821536275058832035503987966821685207097151538159258838493150024120215721711394453218173470824915512643263617499678749917567164484311796893231727473813163832374561530827114648598581224403018262882110662162383012226089355069335237274063085798122784039846432172113105537714890161805784763474339238511168913159654235252051720090130369104826816488585173079086572033031832851250497427959166608587925171119706208692664215132429782701958436288535152085950699550523692403082568562896392581044614948269045654506927757786364428709062532812365420547344618286117630312973262083134104232065901577317822829001582586229780186213436685751079187656770753733883622791768287357210412398126746400097565067094732144899808852237864252970169026013608309554533330145790842431530975614128424988742536127205360447648765829570772774948547803844072057149697938657411137137004130071222691131588253188377625809657628580903408446995761465359526689642748281081123660280576001529508856675142539578395621369044289659379481068693946843756704990805043198863843914016247202439847736865230899502287035574347395537734525689284400688113072701925180071227247315397103156236714099253150028153608355499973916957176420466681149957593281018857715961701546142693769018073671962234331804430417306313566359809812815350396948875063967975042400759577191315332785975719558735016540327646490628638649759845949918481041472198214224304706158749490126751470067154307992949582195308200663048286893131281925124166211777043947887704742401171289363255829628650208302065980094404217876354004744162835145616723802452653457917509126808358217481148653501688868319668128128711715083072375225428984352981227216309420573459905326475055571260523477835767516713497192444582995952640648874143484191108075329398945291376958955105966256659010556664843987040707634718417919072236639751335959662424933020736365486253322795717453342023504065519231682668679740693482174108595367355113575356482302285843458556017788523953828319910791721090416035787198384286372033404629010475833412447079822725246783134398502152187297322467564322397152776229834458934065673817036153716533480339104459956299959462723217096884296832979021138454678747647370438340384983512728642277665221538841993824866051942622614668436814516330537434670260616825222868669555487433456390718788496086633422962978372123423218943904089738224719296538849099574215302455723049309839431504757460164771927890550139394083642153173405225345672252473958870758514578615570806124767273093152868041602804626656946820563993048642743976826979243410512984508185310439765806079449557194816547559163949365794773196857922999920561715245651924870185811474581674008174539922871582449954012153619775005199799579638523895153462519439464275842799137406673046005573218281447899423650562359438685307565950163485255089661209105927135944377676592089187309647962356070672709304584373633714321306031762474221501164118043566701505795360118356228082777876383483600277261225110048932016526683073719281545262425246178295180447613846637438933466138955534499237135542117116040285786584405001841964685755959307619621459472826078430613551069304498393599911574782346935689460269890824459602999779079697571443105383675834901433579212135370112114328412635611526992070941023007131344610624556518755942605376290283313695707162431811512164455201172212890672153647865692247140806884409187219906435607544725605330460911813348213093813245178478695743205228547255888485410027947338848109857124539990636609144427297334732108638341556874046285816732339477776581648074978746290565467003891396189582044151296612551436251212822735369874579756985989814439267035482232353964486942605070192583036507443589562050339706023927048462118823039789670244165109282610630849350446451782196308081944042905677676582164031126445791704120891394290648377115173357775526046741100035982905377497755359200716628165942164976998385497051628727881066466592803539854032546322033112931484793006641068962298615800567191668303486371087511541555582617764453015429840545283724762590876740391293080630090171797453152913272314020731386018398581058605761729054416052335601405366552481306505798017041612494524484653454139985589707992942796210825097505279445000822263974196752640609153648250486306781688747523924123096763470556341741601686407982597932378903874735801280843943795404739223365202993437138723290629255806369785521292209668643576281145807008927615468093457610008737425164916070145748052542315338390997845002303893518618944499682553461201771767861012594729282609188588339537092782008989631632961607513414720578553566351937431441256883445672803346033328501608682998640669661942071026652800154404162509280799651204650583006667418606490298824539712192101549349258179843993171290446821108154428797688015387337769326186529805449103079106151029029646599566375749046683736243968642134572830256572346048326561759254338592181652675250359014249400296847518763389598488846105282469356384011294717200400972077541087056208401017218244174336278103849707681843354016944742724871205515354484045537723941345411815757541333346581886196380948295551554420221401739717117935006400592061101137000584832147515088567491889880970073329479993814480952597632188661058057139083127252987946148552675336374824566357535310453150224945332106196018935430158147046483266831316019654384743548924285820494477065871955901869014714439993012270466195179717748085480978736066686460132438423412638845967731633086513816755195119704508557124941783241340345568764573937842447377933657933172768970271145306012968138634328200427888958810201745351476357269907611800502595645751402814025301499667440456330825807054941412066918059942472589194800621169169347461468605639628833078317161842041952628357727088558151205435160413992767513485817512692440376034030549261841320578455546049979459580740244831125362541117673082808828112875663162304961793860055735683355544611099869653509996173496874497620982108751667874152710362540503033450483778581089731989398915851028722197640008254125126313313013327893872548115865278636227121860118329702734553402989772528630514734904508647778263579674543451514929043372767792212792610304890966701885038438177759313287986988964529979477838423353821812502917855992945786922377190551248409609506472015234301283705288128029684326805519930929909496561444278749955609062258937600135618458385531169181014817726656319423791647898239256671209822505290692281632449751175039482452851160856809299601342551199263474817497435328692729687358697583253318612632613312658462231637487811825350060216358764883589096886632369430568355327050942231731967863355615677400339122180376996081886690648844299038394718017476636271036816771881269262996327521102073114775602733510505556305502068855541300055202888632998257212471586224363992189182079536115697880092810848123705698104031716217321711624038596060791281849514225324581571904827800684594141533237979955800633559518095955632743003742421057557281197149646354987556701788440835550512345470097452315493253964232939342297580480825724260155698604742039891636263603392396763451495361492710785836529766791843211133218121009027895046495431213121827368897069250805673690898766769067934712038821480089470009384320402650483964222672318604912187831793444754220435525136675570359207897424294369511501990853115267803795084397654170538474361173469997070630517161599565724016471161504408843960612216714358533000735803160108228571235625763702339588886205176778039330500854598752724474316528413751620113368491091993626570616185732857832773026142551690466452400500544880993068965356597180553300877102632873625303010987628108763942381567811104703895499252846894917592594557062588638262102728329376151135658687401765173598814943537812930090132049887243963077775415844548665686231887291426519209642192740538624452042662482886639474614020044503943429335866440655756247219653644489698879205200528879360204513353235705987073099760788855753766341105856052449408808543221288616991500895963073096914398654192953742730534416490994689895095985550851670407969407962481478925835310633710582052371384042512339428220272839509677409768649647725625668419416220364738595996977596074124281277459258485306613777870185023457065081092538217385790165415007660371900262447187439987823169254946660889491052345366712066501796870769379997329042202707163709275971516946425735669263389891262698209255660990417794245946456225331700083485154476187555818395372026778731917528423311845949537164256103078523537221186138373153018649404774856787712460837696003850961098744611165615632390997566950598085074607438970881562607174265893788187478069069003865716450899754149696537571194460121026827564713634446824095182354215840969421859615236440617793005942949141192125069826445973270281327945695513646196085124455875504418352330329653075865542609601606465256173873646733621531406886987046776231797552081577240268776251363525084152898456553821722225247921022557098970552614371153219776163904528408764561175951022711195761649856906534614457185575971183727395439346740330859347708115726007639570812942670399940555952438278230910022161702764158152387178812337302855148972833218576763852901805128821841170054202794921664089584750091584287492505412736055448886984206798933023151110110992974280363939653453590507618800721648312058123302799806038601031003798821184657833695787797136439839004213377998016055722954985231907212235851776106277869000870570389717816865362780093524197957116948366924756994241336640758663315202764536024017629229466254290640943295781760857390471352538741245010686563647114297120018262690692658218601718796197862421564843731512969079776417825678763402652975569747450482204087845179896481782288091940401773206177692979499569655363132378153734032931860888951023824447201818988616412323093679951659625978787510025463016256639404340845187199723287005825644894229686293392013314754807444031576970218103395970575318144316813586066612599985184302940507785146751553562975937147332232060154845711731204637486955280013986711974573532829623703681768971640461695565833642651413301545759619539515679253990680469754657394008487197437842509724830980230421642246449814256672910433465427620933081522964362898188105216542225558626900890938277661586792864437356524836621682652607773629287021531491948703582185234349982729297917481188009261918029331201272646158807377364496615214222638377204872632373124244009035123788881114156597446967524205837465268923607330238389892027088251035791996884518207956549420777041136075738928648026437156355630354079818066834162841254769965560108810391293261591544029936795014044382756220886080852148057245110359919377134603263833760072428302662871268347774766583815515028003279169122152449195465586713041089721083889425382842593886879513051185992765176401382881376363689632300698912256264508184893686872850057521981571728952833788877052527658492174104010269466551188929644946053930575731448008364203157527085783235280520783822804144836292381433857662792174847776398886994938986295817275552216189788251507585626193424375188906123977347839377136867654987887798107971563237603032106657619636241969112453976957833563143644454712060065899245368452637779942046975480870539042935982292396372373365843481907137413539049501441637186521182384272824972945420165093668784435321924462016619740494852151087511233950873998551447397161762286855058292424412941958378477871453609147897107139234741974200178144091275710718534235618033225413376115727892663089859429232879204032982669447628349324023127309462678668017589994584295135334692267778010250536820293115940722960534974484891380084995260145737541310172239076267816003456274528024143975087301958744561967292188854858597965782747527810907411771768322359091349065618303236093035955939385716728498200446752537720918661767662347766187303210115521482145794080635026040528377533835003677709206727474948254338851004991160483666856108440337471884538613503079855266669486815840891662559183370734817275018962695375792039956896903680758672594505677206356261849559212507401394973382050143841305117901578175554998136556097520139947011010823129473098229150828948148505293498134472644006252240790484482834642439631618944502900121069269338191664726024458927949927678343248023123197294105200549996588404967765870253734997680908909671838351789015404540027557854458552499328859341786894811626012677025189638914881075648182716816952410685868052146693870682291031196205325144016314001909255555305126745901677963641928215588107148714601433235760550755221342922702526410086441345289434529341832147842006391390755963225002388062182361997167615790984238109990975511755724448508772335920326010599095895328604037029822983259537657221669498550463680147690696446659826834132531914481371188373320539270752256271610846794825798095981843346966076297470696477148961645413035783738535119454102743534585177147171823653129797795027955102572331586415448515961658173192299667905297561150121509823223918991045824338102892292127679208498602996253677502709155286828676010511232330163039519811970319646644333500702888339272347051005111165304891320676735702310199680177982562990036599987948374509720344238310115353186159391237892814717679374107676335647811955276735680249417579127335806236017414966390750046134205418590591998058386406121455841968807538093057837374277595016324161946145636607393370350571840239994888854112687698498828707879974794887825705667650419506587659245760199580991346891731146700733370605580776493077550412518623253492558646227246358269769400359893548478955957625123315795578791672503117486687807913471895843550236426067870482378391274395793468642714770815919620111844669493989859676147569446865024948355855841840379814139826980266587867593293446742715545280725735557935162724730871193070238273750243454674092620284872524125288456323975887663318542938287071888844701279746685640471708926830986211481905012686731151306868087505348439787255863785733595889560698352941848216600439212252406019815510382214593336471113161111432381826462521490321772987692570160132480045859284122774100044764374532898146259491901594603100925659588134080148752220904566072531493886265469148525478052967077136044847390323383764021447735409715548868436559470296367033543745297193130360614608415085804299659406400632696836733946131398956642314083680013508422966727997083507348393736376305645432878664534128145150880488285722103115077737551907366570359281853003673850620966061926598914673487271341728710431099794361170752800737990243966428093582198489950514052607511453018117215619227831462134609161162730024620414141835624395300715426721569324510235462739474878029070968206186360801085415158291962405929707691011801525451889050539811322787488715029852004670131575371848658105309231228591889086655830457421124808978978203450120323156018909406581821214929283235695579534216630046592958517759299998894698170205883523149559746454384482833834707529750940464827842251016854804879378923372180596065488048496438389663003526499098886101600297790092808073351640350246902612794096376083980891772376980124636292628579580928849845329255154123727461923434796003226994603103085131487082223533956127934802445580496435233192545204150472997653999896319408422075059468610604849004185304085851993812653676995547967342311174509125330700344352374890806702461726077379993701010326607610396361021049145877713554342923163109934384099805854548781912379715023802989153526599974311760334414344578340075100127598312879084639364681974763230193791172018423486406398686704260018319848375698502012960351993789698320720184667938621062117111378763344704502433652394128179787052232429151896437883545801205491016225806312054936769138837440268577205806595066035984036113536429872634940120621631086290624446208290447956391206522750927546220459282230761549020593629893187238923148927480899219173014693343859674061857310699776854540864745988752519625201663649707035897264958527656253827074684683188947002510327426197195240728860573928457456988350784996546207428689971513094277234928470203683311789306745098378479591351394544609962962510255321751565174393519138384882631659535304051150393730027041400292098168696333183925502895815296463079882124080751709494946510495016210175906070933128402928443795094936383611925580142373647553777477286200097500644784160217911649529499645167663409079558613921033002211313043941762695090051123155912992836655056855563906109563166860628653217555785523898889589735102299790999061747312352123145362042647492128640782789357971076485066575865550670970623516027861792008644957374610710221762641450077985519129228444953058598530830453902568922732205242933022664638564235728181992469660622326911588751823649606943617670354809044772991098672423117848683279354367531385746961107506584561595936744604813408552527640127199596733471786201801062400588273727958901667788036685203237329694151396886522347354517084506750957795037300000492510711399896084497153656742972661885446450293136994545736654517119814835550833442872781859058153349000119309838331048312745902041335225594311517819886372349838704685299727303238949845426554071182695239164216118840024521225828916262607991601300527979736768012410638389686943460817546575259613261466952016297624548504671355940000859781290912487286965153331035067668852714176095518153886607920488602876626946752755274192571893260743302238814543188833351000496200851795435233954269296922191583140403738434993907404013459476662228219568970854782299673596666443087216243633761114177247749963265859690402085126490537619758653995813471920474979610793028128076506431019103189336292158124188647508350526277765445809204438824068518373591053847651571826055983547507347540823263372994670868019317518901196922550558511910528007368634317968581282940753261576108475765834899595638321163658154726070387548418252698445035291973961980388091393547396157300489402431089155208517957340157913526040715233997510548500479920260986437685746364314453066221642941416482672579512849121352905158107137644500923650333621541673438276414301618462460397488475624220239264383267482114600605850870795034547878224091078716338653640208399605119807059133424932786763530575816030377159057698042655858498621728767565475692604827596660651777608547836864039644812639569218315981723351371118808808217817473376206951089427856132719956368283030151332777015495286586219963659647534358308815670263416052363975466657984535669421660823605895776820125193653258836913185290716487991904550256147547441226013869997778794013501743411748285225854031236397190221042396690127474553233720176731636934105303972266112340401274915173320077364344045274879846398161864535489693807719142585575844779757110192602061831007748467890517508170932113042151223727411446284188917853621532976914143349936057336270439071858965709580977721641250570657009323653118872114020351823239207879614835117181517245226799963516694792060162768373474030115296214031546204747542556361765860356898303698062308419676701336542295967535307595874508623561855504408045954620669920222874680376312190770717455187242614196978127484885066184762224119840501955746283707027825641818273401428118390626457176407410836789112804994615837369628689311984181153738669767288802990207021696148270694013985089636167230636332757745240296761837443417198594189351951031031787502908073510882477295733227694029742986956847704218601239630018639002704335312594367373540962598566926184486392282605306780468099547692684961536575475321625009532734173101505949660358372979073713870755173606220085164744491178467526105708560501852912571268344409852578232051806959330240300350326023780645552064337955985146309121070194565117842863070249370935275939191499441544437232890692685982951690541171278701721343047500898727397288988196929458034290165251721095061488735951332404562414016972486689338235960184001411130876325466865320166350286859541165542419163425915938094063964768948301721872348742735123229743339540713646003312096087250589102549036856695223522260019320908105545237788636160754462464449071099440230929544384259236691808613777438521484556072094477862678165314893829728785704875115676695402760162525005655259916729608343067290979306394562394072478095352978882059854469107810697938887481322700745327205771119748401520153227722863718508052626003245886284939838192622667649231747187762798279473139849833987924621918580654815576188932042289416011045998227564338821839385368411268331632931045754417622913896974648659250164316589304260955332367909158908040423571023418083693427125411174069595508790531466351012914232365696949281460662155538203619542597058754042438759800152334510473011929796360950095158105545475281054222192348998906997156897110220269528965697352553485577380420807662319611318911203315700465887868322249847813218421891653448367991232609671005175642550934297037115558930478131853423053040611433706300710978683297622239227238798084568739773224387111848937432959475382470503332170019070336650021546411361555691454772777825771939640848306926155476455750425761668518772300774892110535085170987831378414537326715090508369600376944617827849682259748004342954923603894098395147662190298403398618928725955759939187779222032029715116310543695459696047889029059463615290818504736671183968486404473814727689252994310331805568130915733989462890169202374801471982439168312808071113844835234143727440236716691835687255851057817804987273677962830861678030231658677106294919424599228878704098667155105530310685146161795065141910720782564065862115013940350012394516465578429969836813519904358442865964749803387082636285563035434219633628104490542411769938348695757786211861336051310029207826559338568249968444570301254737769998847765527471390700768430712283876844736052855223752189128525715410305923818059642261509404084953122159401578028226201965632229784152207318043115978848901772484377447694469630874074840366494252336495889407121621348196772591589183279605577883799895750843197255531336348770628797709649600472950982388375219336034025796240513080179253547169727579766145864210623878988917430423318612915345320473314755943339553006136554452299872057823525963992273014856563915276828782130471141317322800332465373138137012328437350067761128938675824559472492061293848682359142893608705136541511200405924912882732707998174071085648316239260552057559764230143581159426220259953356811582485950085739840127353974018258880727734034581473457069945875761058503293166568956141579586931687617741036336215388019130310326848578126747014429572699602743049824161714211350668134167087213146830380051260456725952205090479267316266549704063665893627813923331587563624118905796727934543626223378598849615245920599010396018837481714941513074793298963108098920104921275592826536144253398563151580109493887159741775807786742102490017105867357848190384729813016508752038278440812455629505940720816402725068566489975110242047360882047066471298232827788328084528687610251297516508073542365200187895725885201140936290494733774589453656843287133326500238234608134002007099392012695800823888410000199804166271453992113176600286745588401774497247072049745632712829997778434377762978204681568647793015078539365630771532676127287996929309071357238692710394186885632757215644443181792787363579317264809340008890588330693807987755600782734983159899285872848392433447405980260292424627697966262079425321030182397704773609557395450724500769282671768404887001039535572513445770530583226066061446446845826732794549442221605542497048396478304550848475720245873721654939227849868545511450958739851949773185616163227009241458928205499598494512924917483007507800794130340731116139593394084297546136427345470582809006451467659685838362209306774819935331155142394748383102495109091312769666768787082823925391624390271848772357220583184545717514246594579953277581163847758948329371816884322460539158315500598887040560065116359756805135214935609167532971563351869057465084695664681344902187607391354577217789932291096138707964746699757878037045086466585178419322681506624665122339673532838426459025169737523770766233124621670437033462278593720218698608870446395349937499386207927190879339840223352305602298969440034842677959853570101924013110648530027679452164068216189419283470934929159040795160054915527560411220684007086379400126845408451471082793667648085511511820727863130137707605132587876839840444720124808069264507932281383281433693174447491873383878665304605262389672097066766278254048663931902107573134497978639132742275299032702011055499621407766596117333609824609652501080370562480446779890055081348322524254105689378867066119795467270181117025841153624003258777449852836738727699829150984753591880904501172414545566883979278165622477650569109016625250326400328866732721736531696760895842347779403718001906793773692897068081884298825587090616427439801866181714934261668615722355240729286401971702124713000490790824706633808127158563505624983018095850401989730965281548836524608736661957441440987365815625129315774738873834689476547677159483170299870118996208292158753731461458731669603659758189159475309021782140478606898438813312283576729942601426223678182286430138423052052672294648891034410921666573501608114017703051397264180492660850039323030016407674270744014829680905147904645662562031171592956584337363729484580481601734099485766622070449429141561305844598416635516321765609777282242945907226071082818940469270701716835333768445275074769247568870197728068387314168800528920310268698809421467052221094989758813897377298031048251658810043342722121580652998034511964198561950145925335976497221646720672472504060161909476825148441480539305923355626550299400642010780460894322553331545881057887181940458955395811197878636691562963496993513506808283091107931796872497719400636889313440875210725837855192963965365616331150078207522341083665688379934978120497867417816430578091750363962278635512538174534061791305708125745804399413620536749393206005911213865195933128766887091444787611657186473816229548576381442835120608964512384613999989763740977470555611445680911350304401614693334952041404346131041838706728663608297411130105823026769316756786642468817877132107978321910575476191470177741179905957037271576011221645723752633710229177327185176766628393702824014375346901026380410299887440510824198528641036756051610771126382601120018262737736180998244390852301228276645286467791617837731392254807279490426017976007885617798657550771228964251331276001071510251240918963934109226874722521989950528051350279361307109386070082958190414598340758533518324468103063696491023130848398474284222000165261332821961860561003119899156099356274795078137286028565410262190498018668123938961938241623656389073796921380014779917485212664500410914638707465770298376550729689827079425040474203232260634254345200449425116006689947130179340397994480043653692104741118071601401189289401651376570513690935555873880647234933628704058208914216239345037308036311335733010685551125569672592827488086500509069695429556589839402136477357927170461282124838167372931366481300120784672924723987696580027414137152412454588974721589424750788900934662503535378042752040485386290258046121993366142626978857442533315455312734986371501369442923117486618123880351099063829331520232770054196678307078384851907347869121836029734866467672047270293446542351790133743708641426498095692093574985981866544455916060184403499485273558337638250666577674533979574870801400304540060211389959983594602258830710364385367029645773712898683310133134256923338442817926730833081945728038419045328486449267544245943928268519796017662015651544257765902931289158950636942303758026761518379240154063463039279792465615055084258019618642634292130690298251271027289180642674475371025748080458470425461871168385418100435131365875461489157703919341169072852622057469612608152803292809572835552339476552429092659975366347371161067875204833032948133260633810758429025101310189611883891861812426801745587864134309063327196665410281722822828578301447681011695477070013312282972959809398356101245086430344634998237790196663475577520780428470176558323328015854107923359725708204141036204444041588780589552906592593056859871083877482249690616686712260768489355337413658691738289123942187712040770533097861120892326326587042782954773173620188201035702379535496239387291431272300017720164726554084583228034291707839702805815550817436197404502955726127469013455472955320174238533811560335678955007224570846455989905654461524074958804220263221125551562292621766448836779497061957107134448228082701023409583717274871848717006108024482948612274693160239479374857114758196091550337528089163302418090721352693427297523632299873214906007813821389198819224659892227866631352868445581737877655116925081223372826728678283506647471794646007621412999712917039875720463430803777034433576319578777787480807803073300387143817227658089726867019153830776014854429190154163999949270914117946475189530826795471678963425867516527787655976029674372652351692139585037644545189054934550227575950472760781447886171111242394895954229083211198098145850927749024125950412423297105947640718443976105170901649356667938702168564734927139911084236886609307317055143146739937017686989511959402744406463900207756664047237048942987526903546920048401413377941530734825173748935746176910238269950248308125941409735736487240365455365234846684257622555257004425382498124913404047401523023958266322835545478978176704307036107951258302406740282470860811547220707130431997092642798356899159747166855389307728976375103227404533871147181074685405864043109728090909186622287643216834264650742078762659716735165401653390070601199571447942349745056090579950048575942207873514690307062401106282020755672576811836164740215487533779440592201449331515973407874446206940797158461523903097705470854002317167293243354648385214991794627379592026004186692075367271875835321256722766148026832302979843532568019196869523985730623839756846571065717633910805367614714678070922256691155600518137698937917109504216408925594030084571210131531964607775664551490414360666089815709325456902386044705229814844920230385363428666664628139242437639779873209576615566643780269310208648358796067757367839001004629610787105096749307882085969716105268850362377126027883262794319603833293604467126714269949317123345638738709477455575670022442003994794380878931179171872151763338622004607032110124348839886553464710479924035344567038735158240677592051156248903469371722929553621269797660922413626611726617835003218315014587402585378599193707869115986590638001569809474738169747622887645503927970160490541829624669029685578026366370820862506283175471261274428900714991736392492806196431145594981411124353760894848352043317964971316717187426415219592575913348612601166260981125791990517801747106257024748234526275508787326133995527372494391082184462891854945914977602876565667341048796872328170260000121582391608226947713118909319404127496979660813834350845084321686842546100576094704209421766094169257232604993999934354183873714786070592673518460161919588990187154307591362236478827851188997329567392104648396684557099993526007870291040098453624677108544699124349455530591260558608008580923229287551831826756750255742219502180473539622172055320418347014395897116437703556876637583708676821931337364105738074287238543058084645300844604065872640069919749989318808349496978283873048044670550387552700407464359218135215810652553253361516400433906309214978179610066680845528045363074390859617547065174866879791034339904525278289995733381754553996787834823573306875407839184521175029645887743652156628673562065391019025413205686391871361571663180050254431078657302411160567221419369080793788818507048042159539795854396386762856603939669870465646691914406289837886565949288576766407799027229238096457445969412809865853131704939813628910991502674548079832010676187391892784432357241716529238584939466974359960911852245496110141657497306604258503067365574017824456373100206696233912416052841665066926564331852772682759808745677605710311619452223919655461805437907808778848286654441963828655288448456138660613554836348579789152453173504442894370507401983659014964297932168595424463009256746166799278014010308138991393061095381687749593100963003729032329492070410192336962181505602362786632191828966966471278554653472254427810420899160808676743162553848749306217261018065055696076181812746833424305983793063626929151125427715747777968686425076922025621194438752758273242189698267620595685694262437909667675623194739531016122200964085337542728154602028618761678753155504588119374216430215746642340764637202725445024962120880848339295913462554679423119067391659436615140103523380548766606949741185589064477090246592420713610364195972744344099442162125524702583172704023606949689234977705355191969806460496401543148229141259573163502728103709051706489615823150850416746594705061464665683151914149619280771318477263642102466101140033836562953286946362034408471797130977469955095013270705254388121808214261135421592590980353985144840930408459312336958222393132766719971720126873279621289142495716753802202203598465952699352490862942399119307373480729284743366799179081376140590640888729416081898164608785050382357861009933142792523725761356611745933472921007864208806974978466263200464725204061114098978170557195013211342123835501398990541887760955157340714677625417851005325016528689891460547342229587417822518159204342861851670866200009037811199237081232655557471035989360075219449885534377567034904389427535550742205153237709763154821738382312873441093773989989394043449243094847540563892786081937519633828953681758082769682581139072592393646898328813688372310895194290218820835899208786468135000772806251670508166967732664548693170113098916942441392450105880119365447699346778122849886292524755096077154634381577216682245674576456775613845809572565325146423621865533762567364798937251217554606222981446980771534741845958324431267973006923793201417843823533077944214315725094635803844533175501442292465598171666268176864442156357738848950903725591057202406502074673493603999360396148731886985810847462053330060550021663722266378875778077479002307272742126830774791778468084986697849630564175802143957410104624432681834873460039381119119962268778859780042813912501778508563675908897112265806074000683744131559132840184727478130921646783693845935727211695755708638789156015983314016945348958943171513311211891806208718945956086088020066265488139104908877063384901882405082558334917533925026021012531143839826734872048834181603737612021488344250581979510820251315801639505044477397033658199816467711575170612977967182066482604772332139217023083810639747500612895424747709193567794200988344334885438111192488708426159612337165670662179040730123922009761036998920555486714461712104191372494178991437713420185444881237833957440686260164477978195686787613769456901965682141659292179828063578185186169917366852233012130254852036810449484898822509917108681222700614044354610406626016886420062054068180697634011737941027011541610065010800590437272136471874368922449657117567756439896110529435649688766030748006441396795667378351553208425653558374031159868232052670976723618011997614287466901222617685502046461771064411976805998165585144486486503703561975323829798961222124419403191078451257029004400779478923528012203147900608557097934313882205519630639974808959004066760551610723594072751764973015524412696159752417205764787951735172597941382404280725562426679645753002308997989102869103112837549886017004779848976451069970726684974296761898763241554579486846649790223037566998926739766922671074410990769755377698587709848276550777081497504908949137267712303485575377567454701131800266338924194828120033470574454885489498254425418125260814483131077750274773757960831640743953029995043528720123949811241373620408365872678282197858837513049548401007941762684688876696440767969995548357111660142786113089225371042707363516414578076072931106183946147715201585681243543365822644374983208925268302553299364414187196685422513515982768444035724591139796177600962005847203472751929171047043885096665344452856799109576674379498550549256814986258477674140764060155306020535985130701335556305888463291557587804641840571339047896010682986227494374229042282523867449973974865914975688915586665682932795906450659064031688260306401933431372219770016259035733128535186940963005532622694318678463951213928632233132009874642331993152957807063278187844484669246771276962363652413124013195198792494292394409038128091656479279530876131810796929756493806140732225358654935411618325355527491804719901360101425325016439393766462614449207042074262846257829219715884257933709083385175088217845041471087595587056531828789821159474181271148034287508367264999421393289904496753788550359421612642248098063303970153964275741087487568120670717342817353154809776628474065696134335014102311522618907643463051888514676783540174813804364842454988292860523956331321562458292175532976092527590338445593602994248111525548224603777411155048746343558713262626045006368277356538920756629123557781739248775834135032470553898821003497538955345890387464233814235276565198900071070094561985896582944897293915025438586320744292562800649679164375076480663372378592878699057690162324780889985659165888420780411908772545952458061142434110118169892703195890310846232596673774683435831112687186386436176361827611018654112955125969284679458890879899130331102442470687572507182464509402394981382039143237174976827855987960592973400401286426197408335484914148971801225965691002647075124886236474011215892874590266414553988306555467957817787745087467698694949358954449518019078984267195950201053613236820203624524950893834392902788431181307565836658614196317617345394518055357766313760927730314524490940705277572483345415426596586708211577287266259709120309854491523099229151355890494728936712801215363295852038664319258836958064435100289556620014583076286458676559927029362546049231149483925050702305137210008105415727360547171828414409501380925170118785171649121165093764928809953905067935436056658395608633408373375516029704182251573387884026624099394218823566539000766362011459963080348332009485419791615001600932616868568828670320526965333930671201898530011528403796952010892603351395483733523437567805362674109324276587555408753713918036427295002389982127535226639301270302527939975293899300082655527628166397727763143923988976604738365247765299362277535566024332855655972761314659548423453798707839182779710002475498367879460616133460510817326079444402768759763085141987957059062397436108220627734169941746539758844884723198553417428522157968315127621717304994989792445613397325574929564332497006270550292616512442635941268444250192888493697117823191641282544811559841530373861179225570231067304612238962824666893492199318019209700228547631078746029600784925981842210820682660977862871428305984366142673916358460556009999293926214642153559506190597459235307954786773709529195115625939761402054552311080302628609908225420770011867117124858552500316370270350824230809386296250082579417264101884078918745721217370924072888263929824598314566090007015166469801510832422607991102187497558943078847063419634453975691735210453633698648170130830476733596290554828375043909270247384861023609995911173733401351932434303408533669724056532869056107109243084600820549235322780601968933077342373848291186052716845044030643391674587396953144138495833846326150446781769426568273744816002837034211827708441094325892390903858030545534069413602153284066606159024853070107036193182357980148382066428834929202673931129672036080062735380479951022795659233856066639389773429143328031849860989288797796569918719056718898200020343501500528533905720769413650947191430390679535122282181340079481564041940752627558113217916518153835353548162350075051187232163883663825792063894730346385797756218288291484776910999382343122671038173056757023808097287460865639805882930341614193656976465332347841983842572384374474101245599811457117299277294468872026775625366000263960799431315119793965546658716211278385873278792243531711797484014659592654068929828839098305206953635688081364791035312683450537245372437038960807528745858016381607463749214321041535142647976689314713645046705033832212195726427431826853566216435345537439983322484025879931176575897218672125931386357967692165465588370651709072262075912734680234158250698866212257928261379355310695631958515089775363417038319269555585538981737511681534782759675742824636776555139932530454489107993332784410026867864468804662257299167470811020897496168498815117912525940160764392404779185932741977561836847175123384733639356131280164809338477039674175298340212200764699036750373833783895807441335702777861403630838507208855907656949840988265432922593111576832029721192613870788396172420054704212597234559147174644976533433153617755311909038521272404486427533764497894286009040658809548878021249023757509670642228684021216295495141445308497145135010516739206724183773080214214504317559390770917965799537118687131942315963102249827155360697685935308388939826552880041527674119933607412474176767818329099583952093621599449692076866312216954269363293635797156477946528135577026155459611800790064726605548976301164052107129930029637279788892764622100147317903945207065723184402786340681828942331629100159401290184385291222905682517695104076832412703769755406506587771934103024572709037099848321442728137055950773156706211712178036510202613380180494472194577088873578841377921337881473510559222171418493848220938896133009377816308754466545191036798005142768687221500238135998157227006724435150405564813975711493578627345256931228932241834752909668925063299093039891912495804266822055310522340149309878200066427217909709705397562424431393597478173592920031404196164836969610968470064289710242316380099676825506157078258110004859438640469890363121973755155066837484527555060487203741359312262382093750053571532323872617509915212054902507828922333924795992819846465866505242427532883033546422827631752410432626034078798691450894471024535274210669390214513154165256504528478755734534671525059257843706909333454081817620274700158686826368014004353766441166254737500770622226846881947994536963190208214026260729790912524858953528374737566310570800705470980474734021457204446667239425914881387822867856401814889324830233464498976454495955299891005848146117608845670192678304241916522356767639890587971134919407495921583934862136690489746321174028823758339465610036557535510244832015533546742480012692452423513036121263985272341119866197743540224953862839460881856119046211034905184785924712317309395737113755166483215636272255910250777861647671273368700076369503799398407710355717304246891679931767969013879836999573270067934345780747997047104268989644815256557337005422218499685236035768935125203838495448830986122696233342599246527957727179981595900374353200263927406412134031524243678855088191162294927714069752316529854556764849737121078624488516645258095548932306142040275407700045820435000475108762376655555109245088400043272499532447879947888091145509635273046877554885607898804599596571423587570936718798018509448316571356786848905332182232152062801699231821491590346403536338025758559033828662611939012152637408342948848755151278366460640962299925310354237066633335705031157034268957610614280101907639842559992403323678108041525792632677058028632419675011996269752813582363097345038902211548581256343209241964940377415101557819532260454683283648655057034137695443449357639282254012275738086421844873000628828051585988054330335834943275399435429275131166713304952186886574936290487154263236794738660247044379252338774089556098169254314932490175430597932303919323445683858112912395049999418679279702817164293022371950775969413850699448345317821955287595378392007464881293698303019725512945312683316809859977241208154360930733505782496218850035607407659223891203058976178510717132800940190452424916437433318879627417173106011496806055133047870239158565802390135000495054774943469741090228335450733955059902829295549820362911998444204467177426738874115080814033592042091600228485255308369255166300819802365632734141623264231818325395963048533231943025102530870132951003693270274749563578403360140766744499285819440902309068579499660546674716391239494674502504640204214672300848972213493652378077187653060413303227541443750253562050139321805493947718756763941728603462242445276642361922273761711569289526486478231562558077463450445041923990864140203538806509972608141939087407948053199109397238294523186524009240626899267506323095461500761488341787489862985193713200076643741653478166958093660753614383635936049764678797343173408103065935577362544867528593276244498977700420663943879187685948981000316581654475325425347507086605191677033490378789691603196050502460626324014237671879563685792583179368020175274043844341339392378008110685860238374375421771658430449553137258813014324334363496539152288205484569394688903435546986220818228043879826894318654623020615807090822261854360495416858036815411629761989350262342803380078711519443053165486971648086335401719789378132892495744738819339751770220107342267935280928828677322586027394165210202991007713231607003083007529998390717375776750484120101622412045257376349196982036792150199649881774175733661250313012043530134210667568441635447124027799582399187319181087814814948016829953070042816285880367567055599426621203523970116804139386394201630734540169260407886414176209049900146003450700438842217539647787638980477828949944964009373856997254250544006751654314308570093526907936973980826831506856264009030661635372072898831459837515993846497862851447392660693300632004865310684067021888266953515754264967232940726568815686025586981208222250313539391956751021654311698135180786805636472671195766201039658005082741965619834399324621264735094858493544711442515298323409629276805149440399870269208428304570746471679548977839265757085809223116666621801275620618624563809597797623239370172154575650422966449211935232960224376839908287901221203474341061419048296702215308365345958512739076722070934447648139371548713628789770170656219872697355402824672754625861032799209281375115011061296789155255919958022203082550946001288376566999194204694524184294876185672729400454540662222809361652608133750927416754367853438290861357213997360358244971855021121697306753505490249794186458812190347773052762415957313041024396683035550764206450219378856097003042602807568799410522309188767149844855513864148666547665911720191901029879579796327186380067716946856279524229628766429043617425379348023826949476477212712272115081134839961400306310922486626153272323430244676686334947122708567048648465602416039284113077737099839079850576397824498407073740270267198231170292908826094473584626746690296908321328734837974511927591917640157811981180210103097368562577187569807763439528347658304463195976641799617601808562920208136544523705830203597563044200207961406314726828351370829916113217374439038001127788855189611304343598859683068314685688328531703890055748531857744930722602738669468811899268638686633887584720904858041056292763228514910413055054413632795948382488861079397788569809173135847237984391431246752202084534233914648556039146389113283589928229768076580598948016266879657261483913935333918751010651665254182184773779306088765270564469246676905943289747797483582290440868443030064325257497158734575697868831316916895573746306264053805369318169786032633990891803347949248593830819471673736008247830148555585398968347963338752142931667364430292283939904190674014703315353214667647002748235195271798168008068656591959511340769681664555414995662750385031941475126922368362694167638963689804695495906110999276896056954760951017991959006620929469554328229312044413523360344359755869884168548860198252434890821589478875058470412396292752314855997020920637882985397272477140442979864588487400550097961465621375189941925045032518385118889020992414433435371798441658589937698315644377811297307444189860431856905270392472472301392112341788795889662854549947552036751682395500916526127006405998178042459342783639135634319662014035762867090144112416408696229352747088321153231216297327453258555027089358617052435506567519965529514809469039986569394733523110753601326427863062079258023503059253558912185408842875151228578507122478683621163594189140320312418935441748172249131695364736957376177277901081691764388677533228809083700986719013311691771133506803587368333481513537841989094776072592756819824528948836973057738037083006305774115638534189970003209661439492235929916215453493763063503621955868323379544169471274686642084587549513772703720054770869412820221043898494005942739283978980088247921450819012367242766708178386722174035177589079030073317485738449617325642798528845561305834726322001426289953597600877790702053515216462088394996131564429396013036638976288940946180925418490430753285077935147453818803803015409915128151317854472479358127464849301097315573036400379856895135588465951375434466047100612703340425392495687776504839182061767561720123670982514631385974000605418127499936081787211862060445364268113568696152900314694974192947493379413197550388851840638181459591200312535173622354782275508968208023631376161475657575188750712498421576342795207784908909125321146344579079001501517491288100860720167146326173980764389448986788789763664705837510851098799264124091525963806255175613043659020537624043023261688709513119305324536696740799963255402634732183254426876829918136148417939657409196984148152349230360120620783620547910821364661973602367662618801663683571407965682354942954885878156380824224349077943937114599576599029075162063941497875083332026794783588274807547308506281461947259987560561441522378598614429133618274486696866705818866175651694625723393605722789526317497585450929950639572598336769119262378310113777328509602267170216360043226221895938359812819102520760481021683326966022495683799685642146498861124569344265430681114542958544720747674501454627668404511030342678826223377402556250409257452421132955607138917647026664076384508564964038064875783889824900581429807446451479989438760228283606611916841542859098373057361736799985774305657928541304435663010277135807872796943548439055605293005205182548369983762385841437133632791852019903649114987080465220615551390743893088026936281759700147305024386466769371794917352748327453106706447182482593799368201751284789933666048139567154421388117246519508953802766440807149051450019341447626253255017371822000876791350570588293622162728591576428724678473099316713211060419317768013366112870550105397009639637119603833559633721443622079314009768575504803246928008712560064898942722277216135784538936113490773448798529967036984651675549684508866310334882106654246296531219019219876810646761435228646719519546815023777522385549044196592103140823168135655261856073960709192117107609716741984263848049568121626312721438802810426756383764916763249117412810530332095895565320274155394401785370789847732278448392041473621055621605530967271952681163449130907953438856487406876173416577802065295507450269686520356527195988293051204252263618910962380300753845481422826730331230898552807287953241002923058175989766750218815560433083159623005262913763550295503442492368551306614866105122757357398166526254560895053278073604881854742967876811397553065500046013941757491270720854980802107486740315147000878157158652980447388271621341806544979313658964925001335613817359994687777289174562770164609032574392599733428273198250662595060618517085300793688426005630076341519947741559786284890102117561794533978619712195778569123977218077498673149649751695226781114513218537286218644713290109830917050598183745079201229479489754224908459349469920063885620372331558739874438273501708626082499387420060881713835092179427076870300110907250264975079667791875158584227972417199434880624155547664031667375258457451319135294066313483251971871697778129498394550998591831617660282949802630083843005241457858763015532067287204294294614055784337281338347095981721048586470717726378075831092026796439417567323120835999747076418161365477273980184222634617023073859167348558672394457847141728452946660026887551022985235812668947257267402122605948290051616561303080026370356338697622755423950763834367103617778804752061612988482363528870834142493658588055650284219751808871135999454367114458520262389909887187752401744130145694787726677498593420274864621299443377076163728855441343257456176756178458577818127374920862389680930363536309307685407480551101332714129676041752666786006275306410387378308022363937524971143472275139751195333060233455783248063811413330018411614881594492116987106904803328014440378965538699671346413386596613600624236481077662674547051208326522328785520552471468141429601598942987610572362541534475676857837029909793581286190828663874538607624900485820534850417166940326138130858504713487353424812658836414322624761201076796277721493042111310486766052476942328384954520021211021719406744219352370290510875677792447611169768589024496252359729604967322389523058552385387975214908224772613579088340702097279104458958159449582346879988784823848245959817549497187796626301021581342679196167828581407570843885586922779028548962199802410080714962827528285360367979790787815238744906185227848204552441636455875434987490920708751734931613849697554591182505745296042331038567863963223292717002896454438329880098494838702459529660151384775276856754744139807398998048503693302012161734936959873425767535988952929559893092850667677660172129957722032954391505969532801123646222759213185482401231364921663193962927019559080767568683013335864166659668758731611995515445110868773658004233773365777476165466142736822198414772431372118168991310322282636904337939430146421138104548874182469032271154393326236704351455599347791662902054672785266191309431944916004818041943184745968502998639558474667943758168054928580542147997482029665778183305488335147155549224221728792692419826436725251676930447735434857669696406570452581721179182951121594259547849249950969601987581289257412178089583761262894052380789717973166470559934933665547813916575159041258264921658054755685448754700314581574669026674513830612437708672315224524863155597685935515743230364142513070619901268880546365474660495521738811322387025972285596280880172275582815482940802477623481608294047361516513045369983727632513681360537035310871715798467373420301082504222357156643585703364220992367790879216172243077756380529867034953031433195185332311131324253513695175312921818504401886458189837372311165107765220846983492778424181744671658663899812725110964394188548859901730973682676425911926262944917789958377719113177951060070488225909152745763584706090064565894546648007537924361799929536219821102959527024278854102256399505082407804551761829303017228291948262430722558685524073408062683948860765940848655344969557260249882082061677887060387180473349640868207255039032284178932739352195306306661549574339545400295682270981197389099599766477213727869420274093291842082905156971383610458810933878387816043885460622165223789133014541574309375329538531233860149001946583958924490720888587557257926557829492611698032719695398985659351513708415811717520194918151991491201226056906565441940704097100834135454277397394963524041739480747719589456222826861380939958310787194745665816366473267195028024667175237060547890658704286124136297087971804416051147779649516671224611227965555504554940779102860336329568401182875326005382362424081461809594687362449848516246108540194866859515967687229508616746423601875222614857374127924348757864734337847948720937221992374931430527049355631202517061600086093064724545959296979344976528887200785919721017604905173398793479454641616352054759913044136651505396170318496719208643866020180385874614194863003108814779745696724751208347281183741878710350818231227225882835577722944747338731152334380232455155227404666654704429353084198949907356387781789828957725509489597564965018779390132302469472546913881265193203726737605267383436668926981013138353343767786688680696833288429542011887406923256493214133381108028526648712344714333720982005849289828119237576041587300195142733806249050057867068094888603511129753161316337601706281176763268888334584881656854079127076105774106087506176627709442862414266863707678524528335883367641543444813613343674246781165089042222442175387035953537546895217440925969676504285541694845497987374602301653407489375568769608061052142885286360581411518245179936560583131393905664018226803043704399064338711096613095024388809202042666744675290221957795709221733219961194896898832806117528401410777679927621449827306626558882459321744475447863570804236304647195101647234465358822479131232919713891758946544183698953832004772753531695829563975853870736170047303270176874966135497935244885259163904704155972099852881323844702168488383955237181427370324593247168602365001201378785667465232467941686515528345877379954125146596276918952139997862497671131749890264279950149362390044362833298321672831412807778876676575261492138035765385011484422392081708734536975584466575222715022443087116650614450648991102253473461707487608305590227904072613808888697257394290250014556971971761236520668380835864049867169606088608692664633291103229759662565697136268942792781004545412227073820717335735011592943394428998690770815310417497898527979355594042887125037782862694603575032637131794908615468517245548681433085864774246279842570566371419765970266475570311695499169166790912308420931102836202827486359968145227280461052707780244283039827650573588441824331879089886114276445613408816492739222158108114766739967822625972351412315785700860722237454105611857923545014200963070443994966010591114346395400755037275135446604641803820362304989025512967526498437916958522548412357333078975404375468063848416379614986101986272712971271911448945530916792189290999881416534009077609000668839392252695901350934796073901243769818679534392669227101261584018286866973268029849742196874819422430033522201954492532246518555910855767545645721167090127803849885611316219545843878775053275797458271374301871050125229481148187674688231711604030648998632803937370891171683346817759121631894712702199609941916270280604207829156215963455652085023826905697343941199320785163339893061965584828377714614421509644472516424628115983722200784697833544170313995497361377576028589840934332376142214211251549772457534611038987485659350710416641448206003627714173586515265382735003941553443386158628604254613777338739837566248181864242595355130149090253376207730079808734432778973593913652894460128308786710670214026103938458202351510529432035853526028024872502913551109265985149108949743565160281490309605913503699847353096117445278914005676268831464868318438867228195489288132442344279020561710626019692098473917680701534335449523249434096672684462811832151426755663121176850998808717739103235820128133100951770132106234660564153780170980743495958676484710362834795385917806927974381779097841688458882354739869627197889565121607584789828663515027893350993391682305706732557291860361523491439389257525198808245922041620738367926828236994659256391403976465617330787477436916597614837668259548213578341247066547777550704807227096640694284815985772328760760615645906455317353668701581214810350830603749615612611035420484238111154029262062144832045892976560286477717165504241603973665581433684750629972150264765131972615033186739575089830984305741635024119802725129463899005373119252825002610152782207857927124926850654686776068355407424056767409274001385504854933870580180158584897334693136489187277557983574463421917086768534575926109056353425718986861378210251500550482070895507271793277360787152383235451427854302877582981860143399087636167092585027588875387982827532545762481437880674780475431983082001794298371901269504594973486919179793772991176774201793929543625232504878156046491536796339587590487424008442418515541300712861946622999808515887103612617860892180607543776750212967076071081095630459975322645316727627860029570050991355275232453797988863902381660846642365236930396010174490195331299058728496966671908524832429172864865847957664923068229264334775333362859546500778617852000484474920384095914359642503333484527337039057002603520991100990894434127591919267958455669490228590526497715236329204793812862798381953214513912957059121507063158907444568081368511630868111344080022897072887104344673158026922833339988621888280063294419396467943111411090125809963561802890570358832651587542867327367729012457557729187033993840816696694308056453515083912812577954380781917423394241716457235975214607815781988806501631033612015738802636063645438611207557564916275423492831304627223318128743210345286833597570766696738355406659097699134779873161702906916102414390054362137619488197832860507247326895097544672939707682714928691422694647673159152079411284890623377329502701287216377716598262901665893481496656649606230086220216655571792096585211117959770932826967763581309289142322808159299299015826563492208895310190789149436757229524614975652023789357491930862554232807268763729750250517906380502824569856670955204034796496368717025283255588984116396814656701665672158775245495641926417690256296708392987382147242261448045893083504563210002577400031946842133295636683126418199520885649736286927825924176801221581894470453820207193162463842756779366822960179915717056631799148919220246730565343397706485017927489163378697665556233445723383432780580868599763546416603863471959663553942446327602018117052246815830540630676306582132951395143257573538184486205468033381960389093138387576491809639778612512753814810932589016527110041595261353261351949888400288488495479031189851098723345209763655469882035138796577343946290811681128350978178506647402801244358003108636991909871808464958181958102341824611452148436612160219764746760591693031730459044642824129667506652533437768763163349231207671602287544387092068813925341944165087245516355069160203482883956681430868675053747188536001287465887514872487755017087694198657152782899651068189062199360156039916679024870526683223260152064246705459974634533322958530841538318504471124280992458431704172423518724200442749943919736859181563370267861786423139917642127168044788040315419394567598752697379447609762351665139282705283881273544043583044828606507992994154547731277587967691728091873760814510502229445821829295452601374816935416739384673547307821553092593797639055996159320321761873509597738824216677527750607886791009162340977308422850684393718892875381348653789015814768137607912025728476921238247825504298108007396217012126013108385872220462852891944138882672470934817772255357114142601255546754079013698610993260409225084671913674620815926501047806002673875576955239877399070864337001958332383829115322777513549925265422893079064961530357241593225696163127644487376112205350300905765151643472792880372455737524903013231088486331100693569170106786217551630358418253334257929618707730114398512763932785285560516322544277966394098399426528670223193505642822950147048524634877497329330901117470772499252188952821542193049982467703551765779067690910812992837081489118704958657448551503346137824003852887779242592258221141403789526963139176396985993874510135382072759666508697518072442959762045280842348948725549528585879268441505311951035152371721778299020505823824840636153677559211917648171617664061710278375064705399974063166097672062318315378902289926903466294877759384315492720990374168082063616217614960276589470462202899632852985670227327156687726751111200022814280261705730699546184642213933578051705795769370196831244967126006735866934012658039265983066671191847921186807731964147786952567880531914675859755677675059039832045123361122897598813681482620237298460729397649818856846835442509719891534515753680467072560461651600883385313704556333409937587778416041400349226266147238763130616774301374622471124268652328207340812315525061474069228310737876584388575331225666567661966611683419321113114309280789890646576279975592849855716693828988809061256468490585422218725499880036895750607266415958623653992241727377646665774774622743217593639887991755126899361485489867050462253806485479531430277091953301087280632080433382437458397014198087977252528866644295462619565161140793619226011975936138121926363652874073321039610844139292593919069232684874182202963052279191562034515181945209373032681802193240384565150599732686183181336255881648240515821672837912785586999236036836113048463671064569656766356736628009642325743306879086810109987099973077714476140372363177790966047211452356519727637155585671174973257467196539826231179568376409893930190884844601261295864007650750908392815253284378577022666985845947798966093814368743268603149922567473619853419308859434819202527755697167855260452430925660089479945459889014303027816852788804560238246610620848653459511501331285899128591888425894239085326083255755639517624656489148812438378734510071931816469700817070969608752274762174320650655456678029494344590110054792362188324381235892009246774484414252783447510232149875510272148088919503352464678368682080949139245346995547907224576025100923048766250441982966658190020494952858032252447350220830674752262890791963351861214488291163120189585633806577166624072526780959291309864130816249220672551249561533504496472029014000490971991374386558876776462865472805633958512272198542728435557749856156160224080027547695735038721969068727306392169361278222960335425957334178918135326785474876565845954099787993719520465931174386785188057297336100890186259130513049939508787899516835701813635291303113940834939778158454430334187574586327695691069621277708299526577490306794507944367799438713695400917442049264355122075324055348121251267681967753128420737679390343829515341645890801422636716011152342214319664186468663043363663901724695769534092756153423109342205519673348027115673604385188684743686409095994830578466044802399310962554260569423265640465916378114988370244000288644878267176484797351025415290245791843350552616305187074907990799646178863420042407259716992741193862861923340239731303351183499815633171969725035896287135289355894877465280162548624953610633127064943554646776756570851808263311425750459150145279302580869484131375005040681429566987685533275009257287235800823453933730588619987425762328230539695351112477670400934416701257781358736435782098769222045798453345744519664990669125137994059403046686859081964526555949482920581910595444815978097488365223259126317765588340896273278954794916083582714171479045307338132837186284695566698516751791531651422235840112603728824750927360786741532270031926511797577698961988519625581757767784164453906338465364269050353143208699828908824158429904157365465913513657793333419991063051669377028074203058939614254499755868611692640955472567026438877206037009643218601474519727795884665671236522142367497376437359362790770835297719753816913003818925439247751961998922070047625733506349367801797442994872940896703824353665385845114629061564264050818537598966631909884963325667806831349610472405291341069362008316969349954739129824083450538322978758073814267463661969321534729911238899274411964127979815070306137412614333679455422343676728552678770560296038250441854421719019743594849811024263707692109600445101294202732378846100153005385985864611403066656300165812145195398319714604922515696605358051702779115363343780638476018743869378511098835107207579487211594714476854262314408517665053293267743771781264877669584645573316583385841479456627099259127301037596632632036524951878010070534615750284686025488008633011208905793623673276136467495462397708402325935418590725268561438149669089728000029819259560807241312716934697941469364852442044137169447658656092776034088533865283802729487148378298580746370440279269345906996978564441142787827933991746693744959303476690421376343989751709942062336551311475616562182545741058522366883302147908521823579730117289598231936172934077619550805391799431612544221537418063618549077351884832767588255828849027555404691132456061134716763423309345448330412972505266049365264863364560167857562114457237860009108319976047321769713978627977545971419860510861368558341093739956031825204849575325551925722120431678311328669152388373716724897651172618884106221413246805316350595983895950434517383892469064328683095260571146098828151339753735704948270625698542199740776712804313684453657263152021608207493487577810112078161670373304437456224989204573828064828318046451485246623413451763971119888618103927022800977251618630012488353269535388632541340463276489218907260011211374568945107539935659927681818538647502750407165587489053649607758083196263713000747439136765157202964118557283857230831428201599299022772224686638165701331459067699956118999600345461692557787374665220034402198063324279433682019698314112353669978571326955871095607549102942833236941909327517347899682240240003478708033983188133750890669001771187626240757415528436726573925790241393351590775178056665062879302779945856642005957977654870384913967708534849481728984912546882714361657790304362450904227417820827685763086647593624542446704553073830204757223840111526092041654048030298338856405571838492192990353540092003724158813712079750284014430836580360605170585927746273626595797487621282491688019207226769751173533461361714495791420631153702583975072094394729802028167917137400012348628579351927718570409701826948035922194023819228551130327258725929223197792576831202027976535432862459498954367694467999620910194030936541923716624639016814815951021473349240820650336436627152944210324823686028312736726525030095788286096401093421282346844204724150892035760852628444252007449969144414672330595433090249292756047421178685767600917860559397262120026563120377691579873794880020824602549276742345287134781811549141808302076817429473443139110416209110394436168622210494432102671038179869698533274435804420852662521116894286711803122256117166294122467711056480187457431989573683494276998848135140032698397516264957746028518519167404951246325226337024268228895756699758386655287992854511410671129665890934278300964410601980694784607376128039957215040786830464876525846819333919579736939718660697389423608410175371683433775343940930152302257317856093754101847922919987336732319389372364442145290947173655385359782239327625374414844698556674631181367746553920772948817901454659316480537934466258391184271398568000070247849453813514932435970906487689539879271854350023870655343746159350006093062306688267350230938104754021579709762339702398302224285466877268669052845568967672774852441817418096385688662095006780009174326831861457988889243093462466949333094758588971779412101686767674544335465431838407108313727884010062779128511515631467504615539087602669535735675240937806925533001913234127827411053907455384617929895780917443376473977059227899861440705105357346011565110400429033803416639397742415796314321572364616487339309597478484307346465582713367716690240136060635288963025754245870479979478686719855381617382391478575072433586578194710753637876642630878961466889693978062288595615424980170264961719429037979036962483250552618729407896361382678675183565232182261784625807639780281236249793348022095088358226850752073219051686084184490056351976585172688920142009921162537405799577405416109516700353519793106284153685546199982949477615810504443640005734978281304984034590261562873022230808658437796097562308824828590785459451965534171828892610074431051737096910430290196368513261429746186453899101364650118713161478171082658736222854308872262481022844005090283098165553659490134916757660993946909485551618821556679424928359784084749471220124192722397218071623115380998405796635061318098814543539445942527109094367260948166080214309703854814593407681338430679499721126828438026690725748413123432996286373620463846094221995318359927340218041700362928552446284292731242714017568758154230351340050199432581984751770099622296410432234504914396038415307174280795122040125809063081050869075403780448093090206732170749996276079814390402267566629199614846138242670741320164514745539890879819899829578602854361496107214041969567041370845349183412483571498947040832774608135043443809211741940965826324777673992473466665459038986166319264755363708871791589660190706877425081543251313130801713530799651632220745257879864688138765503478160658846610128225351625345266519757776650530855871986944150233661258517096247049489359620279468275834113656150316138202686842391838850658508605294306204102640140217415254842162950670899422527453667974705689241914070324684124336876516979846364647841500535447045312510717694451441617159890737174717872455690042529141237355040230097949104249606326973588564505221139441939331887784032851266945933636955582358894616727159961871193069334195005124222805609091401335046163378778850452327063870378859616656175057039267256209793064183047663203459682581163387833975135640237423258335250483048635533066285034053421829392041305894648042224633606249454398191032608255686220802344000759729497851028391875038806651119075703378698443940210964242550129871785975868553210630312228212288236836976619659906697549217931701443664976611462807514188629127788105206383630076569909965722188049682746059854173743086109126509096185237356606709856975685604074224296045457983800848112719944552910188311394555732653832860220513165648152737713217583007940747003864681191631544766359221712930314401246682439750230020821065643426243925823469248049864330974583429131030558299771038796041512533437732028698515441890702753277699656263925619493525621291384878577370733438226840022792025438142887013234577024278134402938030056311384543534014095179157714898600665572164634879084495810772031432997191324106749729276942931693921822267492305267758735096183878460326579629693261551979286578771694858667644790532847557321578363408694967734694136803422783081734594424129262602426089684849307754450169223041633861106682453967649944933847750871486807461987402811280890751009571503218610065469057467423958056252120028076380324324583834951525135980708548639823207418489854132870113253057796362863087246653881159749914940645076836157960275178650044990030417790604833387970435677077198909139329123918055426839583662762190126899096231399066200857758100702687836733512858065470592957752044977363174467036389495247065746539894848917542122280177616301792128936252196858946055556457650025839886272594089518048257301221308228698864249750166899878602893009993952397607557514616805070486238786577873429036073594298921663526056906510830410494769974933063189203225569204494228055156863808049915605899817598378371094445320855230051693860550747289898110294460002948728429849685355519861636366763063618584228204269987670341406083807406138475025840666983719863682618224136871953536219386304439343613411116668775002365587611983967620706591015406122930541698100327796807319862919789651649324647135414503267093865072114923388756736932044248547824503259240779721176289051935396694171807729056852901611923958127659808241554533719584833863852097499098636126269253582299168266416943142162621482068829180292382701807573130200450568563138954614244933255367705054330734192023636959725577571121020800684879695753021435529071981210687933259647674229371011079100066345449884074971582078098097845286727723496083327804459771758783218622882307430683071359720973168903991624489536553331400625181575842654537593007355327070006999774316727865433987915570999280531016711169703467417551365408226306348402609400805454272760718100532855531864992549369250662317538642698890330489073942737935723938749821317453627018038642882566355755066768318299427904059777330859911306536404787468458940381004315903052826645671826369679333740744675850782361113925891799858686204774739314649471159293015477257884211941540113366817139748406620477363548633711006654629353409233452572081374283793396073739515957333063234743023888418799746258519160642534711296237103026148268629980286710259523954542984821681838708085671305768740860292604564199387321528320359290110285317665993019496649027938097104263897393078572064024255003789478114261260880128692838255002924392347799996838718573773875243946307476802335671079254496724338434615695262069940674839134504989298730804326885231216240795022457087763651749662557249965391110622231734190907974809217600277614229349243253799911410703457887396903056635102075758462197820552536283590469264750572540761272502783614167727444864643912611705748164806892441783518660873793680279758548310094950338378764023168241298314168384774902474017792055304052493828593622286255233678994775855032230480309956570553791559020758612795297142718482993604477628725982505834749272911275550473672368080508590251704455958154059170206569338591047325619887647400136845955842242675550067724230840346933971816025904243783859107336234195739299602000819303872824363280628711865056836638335744039568990415606880833819554032587376373503474737869761112103960166787528884427367605848217443730399387387728382212252184069563014077710117797947257632340098606336880387927218044732032352240266963871295869476712159251769330742734389518740256634568079450140313015111579362163031833118879316583812317147453727760728050266015604257699217693361039528674014934788507851555538869497208237177370342243180981077489985112970407404872778630817949595141339865025597733845777880741010053354409745160380184457443285707602727800503816774130433336581429216296353645991722295072962652267741434658468422738463331095566846966662938158730930164417578535609580366504735967718129149291686182487952736485800622540213966643527239399113096945258475340722743528262776605393769693737670043331274361335528833766191984643899765588610212181554720429786457126718365411737650709804856566946206911302991723781377515582377788486138257220044906432370520226070842050806164823620060475391539779022819154896152204184579427320076100599017701044120936975561923701678325831546152645526598757822472405717517524081600365556718441059216108289267181653496641823389994546946213315841131673334082441700128217896133321580542913045160345237357565367097059996557199875312041445213877238451244785237262768798991634705087612820155533986477527409597285500492637129874093609150167445772050130602792555142033069317874461251733626031690024791096031492120627337107116933129778373725149063034458562113909829542113241926882726402169869537802057419456143443460571923819387764011624159452731382096564168716505951609626402433313061457772826460281069998625250548525822490828171796024442168073379492719958816892636348259987608184159491110476144919353518291909694462869999134708731123957772406861692088126637913101974113702648796485896783107759436444583720526179164902951682595719046901227436353049847079831735592323930682332917537239848349746433653786009049295505428714542121624369571185426087646230124497878175323721268717760763120744681700329252394408662906458338452114775579489571416668472789909636301366831839629363893188137795578153220417592360553147852679349996628083036087920106642492106684188182548813374431113954772557193851461836853425900413399355039056744115027867534162243100165628576263528863886619574137966056081618944675280599526313508384518723466291189377161813445254932182825045675721986382979178836198056317346922824777411451386477676747844942977862579155118368928021040890510730310395181111545970711849113122421539822144048993206092243078877966881186819449104926000159065850715391918487100746256012305817477588463521520800596045147082396702491599236307142582962735820417156208594308867709037641873225766377067799342420582244487468508369994212974804197462314813883885555929202137089339408202102672706883462122487141903898574258445877323675715464994407777525360946008292241563405030518299136167706653808752626474512114070386380913612941496163853248197136930213802243573230333418872428820642405412751844645973059951017810354661925747042663760764122453263066680659192987832124109989992363094044402897804708290916217842932682711272791611669334042734450394725419683890611002624921852198091698015326813284032716863506046772250924959929724871414566131710192117600466702813171938498617879722294090216116841852003837252252274047379097453489045850851384806206685464893695555340779173217929513990085818632052203684017249142740606719678585959854751144715400849229478560826619775765182456714204275040920684119016733106460806894454338943657025546893699502342454940524340516566250115668818852286137248794715942935991277452834902738814509659174820370283951171068968314398457150862495771707784997872344753704299801844821499294009132506145277089303566103424987891193752561654466082253820573865388030680713904869278138854658318341540512620897680831611948056553994375677941198941215225386077591607353231025813226116554122586025225373314967821792524527733879233077000121496128797205491696660798253546411059142882265633327549781655830032975917469766689853537463438442054263822333531325709919149941420440480836477966593514985267277132964653463699378656821839504806286794253328138095402917036169929685193363970031103435309991168069759403019890515595804736002037242106981422783858007845431547509718644499359770938344033370035886339467301036879668563826980175755067992078590566598506396539440068341493836017573047690416603536235845188360852779493064880292959061093234817860266622416936518337646289219102459555709247020468329003726790020210882470848548934126965689156989765853216869610976699708384709268586705429742296631326116111103900226984865686232054795513164531500502636022260893437480667652854018181882748887151598071804588139762331700317998597580989313174350040393789327087124704284615452560755086117388504451615775159769049797970343935880312920029382810932448102271752884451669141712420505835104102409358332182647122809651814364762039045841087579309249452817536006783089895136065004621527688302166100060710927980540624130721681934185282044806713566594435724181576253179637886665224672616659976749646094368851673061668009767568068017062182091575680759548093908985057333203831511229038050192631601324040846170647468073288812039479958919000609239854101219112203259719647023477976400710116886247909324502437739736302748021049265933258507035690614832594205027311936554556646661499593358437966418833389681139344077478692061125368930074282594741902781654985296168410772218826118932649298165516403402911380303225472754772743919171677908588243236256147966267901905525243291406752996613909535399925714495096934911221828092885634607218347403940872356787651009736212423026433043609639717425339377608218003315695184795330066269557423118252987684248894221830412310196365950961737530547976116604767623770215785996501021151944622762891795453221813627492116417062528917101172824957383275190883054692307705563548097158694132849458410847092118675601905275080832676287486279278821316720219362566445011543309147568726845826496438729239613446319294835485799018785018087999977332309183651548755254813460406277873408571037200768034668078177959682346291626178999207077637511605371823758326975390852633689167886768451004163837548264454043592806150353497071598612445281180603306041399000822731251550999988857182695760881010316221246167958836377148000842137724616076444866614340425943325055791039153552663603946542502437597415660409211051303889182881497188976873448587503938754171341013263077296305926610716286240077592059751176664864575724377056804718604605138564341489875285404176103843219959144578492451042750461729906201744290536684646490935525205892403421242281566050639610599351812332308108565699115765998717132214191357109348845213053448879718614886469617668885461082536235868849186187248364561099467718078742031152057709944082654882170475350066003524981938251586368108399265167081959034958805763056187346388599212921450129136919403614152302969019467520536745356397844424464549811647833075153935752584597670181736947019824639527879545340917290024752704119130647416109350269898177885465270189256130431811822162362457045345951856821459964541122499191439032519806638923944049786277222829908201895558023015874494627329988787340633880854941785272761030909269169751404005827130259171586155909574355785205289333725485004552282797144526549896929990019892532619016376217901201067213666775002306083669638817729662881378095336203207424287566278807222811516085164722807911192582849255263962647274699843947841892995557351418063880793260719778952535194116100370139128816466585222728971180921053611338094193831082524458647130547564280553485188667370265104317786295944391356700429313099425062465219894677751961437236151437192094947016344498137297409930313280987864820386873640766895918384586169446475669451204092597867420791309523965747766269673210900021515289771342157945539863788039183879596927338156204310492491756701762566163694933139976487749611660515113507640887177325157716805361329955644008506743909114016115513560654709449827788383304352527515128600632119681538130267735091311523925272020252953004862429317715645936837929983573976648610549715650778664503944048253686477280455859221082065981298546876454030126157557094019611042505731657798836380305663735339676310344804716714846060159575937641407241878867055924013148949116950338634669676560079565193445495661685565465573021453361247965071426362188438585138841502405603241778307003942427330701584132603268665693867887779851330528144863433353797203826916222275493753233737373405280231609616886571227830109073224359201688859601790659544669905366439513551591599980851235800085483418407025380134554315051401260664888916933229233831639966598237922621351629882287419452811134156748950037268811907632804581561722426757293660905237232043849915950177065650273758443161194169498325808113252657353210547602071937794047549000478579197073935593043215208561168607187347001021088104665513142684405389812471829805368054480871251125576082878188416547300336993694000677846205491778395175612059701442534808445729434138564731621538324058846307775350897777499104524949419509544684640462401302564164790875974196699155540167169172658089431719820002691974917846212580601908229619476047417610107146612220175190401223695752425073191307975065696645289950565845423937019976197403786825730864156278044030471484565247029767191086994459563556882440014897925654699867704426407708614955945659588043236889949026803251207631583118390418633717137523806816440224719480786045261643884200190325422624735900584717678076130797973659957258139305527109740533975444278994718832386724272540887953619639625697282794531868339045074473255879783141075727950126788707024061647836798188496395063614269927595429988236246239297986871832406037918466509885740445578190324538214867064244496051027767993404835032060790753092484846038140129117191673817385427990245510220311505286614989722053828284675123474415312767290712259519099178821672852482144343160065546973973409493547160764581609679634712549466947465988603560687026284245200106687834578098693595185363611860595960499952720458649177351161574518327950891785247855750131090029513983339190942685948735791901319552155420759938034636893397876269796813312709243325701540124801941743604374388941697850574014748761671620825136706283743883421852336877416150744177299938221229899162437244590294572918574301762486278946362762228284013270677305504186504750339237244576868294546867638009060216264272954310774737366125064284947854704932294030915218383920371765322520511324792177899968724392988311908617791207905090636365874921786570283524578659493581287365188895344252251161428678994372265176624035991022639262277920874449687726126550818236029276690866672335825597208736408169816046922338803999599996555811607774393518278202197579127963545776152007480188853259379671261647171593958205366081538305123082823823661908727408836046659174572654252516345447064386964876609841451640263248176860964781328007171767393468157615586679141880302937689574117601828082847938059918291231686429424038396206303803663762499641147151015018305384096433532371313663345366462986595151457035158193563387969378933413623998291363265516434483705148278057234302329233021456670019573322868075752056314306083236487535226869730542984199778995997021823810923075428054350902707700096720063760717187651435845021050962689549451612559459678144976443493189252756651681855975612892253708143805951686261202072197688259318620192691362256205942913001092107481996706537035748871463115042794474532156170831198023457170619455639597968839342535190449982252096276549119550696852318794406055267219125809737743382319028820019265286107958017233628251368890642684006466512605983472886040670802955753384409487871223856955126655637418583967636089596249885917471976765365566946549576938666941999927945209955241273262772340862724328498040551589737291215469261187084256979193251380009450862149707986597836738336718065237351934445404448365461970558148805050967467508991453005821849543786156354747048975416452166271916670331186656789040206048755496193294881366906962251883872298083784708548018777649133060674582183047746456402433300665425282195135471761440841403405986027778035804875930483761383431411582985332231250099239869918148425759615499781767007463614438323029314109063786221465274916314040064323721780534294604449201493599902989929626199911894078843701646566870285658641480446977311260866378766041341240684977010177384908115347647635111990495512162757967073156281903274543590356082134190090907860651347240103286511619339783386054748266216328687599309686920779231738675115068884083889679012857004450784402135547456687312810589147324003928990097459315823604298717989629691332254656908179828283225470044668980702165641582064405027004264521684482776852616363468319413977718724197000164443934524388881135685172490836759163440072206977578268784727451708181324937738546173449544848151636761817724133955253406525961577355958408486619412347139354128441903728942742150344493866664794077534103528321654536929623757264409040864991122671973797369050666955929486989314051435518472362746894910005269974896241176933443121286426630357135815071612806142815932013662852684833700058855997010274581415423456546414987424281157938854390704205403956919697725686332780640715983827853084862734001074390036759800141379121842249295029909759266325981476755993129914731546686503413483337413812466904060503149223597340226083691032190596713136200901793149829646548130243745366899350888706818399832888372740687401185675225022996773965583380478140888385892037459924777518083630340240067004074987656205351978106455604616476162842005507594097675897431075746448342450043731171948613665811806325680999517520600192272743854495857878102636852093144187970674203670420396748895751397574451694943076138977657666730012690499040404629411030745225161068858970432387516769811790473470561458903977754970186882150559808777192280470879837488972060677080767378509111445153335012333892535557430924499013619830638356102933713240909513337943893815271373713600087999807936422284206038500787037999325724287447803605087157278003137506411570197381021574051295476745439125017243780815880190232716323309613743246942607579642302488590671622052879827340593307385497974558864633786154752319480285121599009178069471109403465184869862154030873530478890279392184114772687858613739490811229244639954948147234861606841180633934468611769326327953495391658114654614999471158146111054863289654866920810716435399750389769415834185245887731401252857346279031484283074026467037892257984450881548878521689214204519150736912062369139587806210049926484519452013584859581897412875456060248724475878607843950288362171313877167584122182621456810401522081847634263684847908009644794571167769182693457578411874487908830916843820844659465472449738569732435613607641425597583644088699282401516367612942755439212260713045452604494195391356483533514650129935235524236926412310423222020498112321399358050161389522763724748567323379823095958075100461670812904846413434950552454827015994696468662874691463968742151502686076913882828729544869749468151670590769580982017947031334928206245999015526448243214541976047104158576026452671889795810492004210244457157966239248158938707319299559923335240375593921709825825401886435241931109280091326730034912830348786537569637889430844770791253273680695365219041664176803692091327052941777595733613166631748918354334559098698645545386873708690498027884586704774043325753165634758142387681645074440214711613398677036843887910806745304233285393072175066362413136338143212141334656328228865269427663167256606103153676495522737197349751467135344466861432643595105234995366552062448061769938450147348628891423003073365883606809900034931082949521172504643152227531911701343545024759572696240015578591184716777853991380254214488461606323579048871930832253016974262501202920061479357436914785814712234540889428900389140551797945668344674882891349584214905084755486758510910988204618652098985339290981423741778764391653671026076621571477929704762083047249092467826223082305486941609464001022772400826528484946148817115296730172927163817978636788831157138530199843123473810226752675515775875579796148308543428194323167030226912277198046652225146385588461701832164420996152608349842115235139898857359637436782787766559654512606282996258015674394573517553350414553078938441964618288051067517842580129717059129072152185682165192757845406400845911193642910176030622648460308502670867790019552787444674427609141296568768576839172369681540295828376765084379042177308160562459468566047376237516532849365580137267617455426731376119780353430640752222220469198144094983298063061665024943175509683304691215817839425441293336791890210582088235784077564734196752922828235998646876372044694937982237622117214563764957153766450949284784395320034803585943818473120317410321213989571057146337457466416769651849566133345955032855754305536661364480139480391690947553495713167233266743811552515761979189302790809433158707169583456052018060062926714111849637220487949465375294482024277370939175545945407777997770337227275250773231079722951472470386498192364276675470240035916139940932811925198829814980861479432506098395731953425033619141932675077554271087916617529158135125798344669221961770624568325125978558177349394056429826619600990655249807728211688411844694223341692614529707762445242996731850409628882699208033453171947580374031129675053296255518594396991115084436199185662310014024115522851084512335470200358733053679916334671508233268083758532523089027795758783172783042524657553598042733883957278059937292158330999935921692271554474962001448567053855406502461139998469068057937748014991193515708606319218085954601851685115238793073792154826751318358389925300317594945687744056468085475821998136672273277732715855368911387921351383889320241412619647262835379130258248085498106717192838057907619128490449103343557382535369721555613195058591288200279157671384981137129285982521688373559852659945305543110700529382438153627583925779728187121349241345333822849868942093224767704255668793285981577700520440721582705826981917924979898414104448180557737878114647429987015664669807553452653698679252690623462604233998282822568111758204805541902149419056685718904532766613192556829615634109314893607441197179806146540358122891156701267539109832309963707146551983847361745221783951228973475310960678259438592034574180874663726728962957190896811303742930258561584666817606814335628494457933553731804250133338585397851836208813691742815887398465869919916709662203851026650528256866526781828044120267380615563151112135414709261135062145883017071214756732914421359011822345008048951787161996587392620330900550919030099484992203543315910376378854352972389791678110225317782299786874690194697784019920170113317829288139179762055601756700129741482894067235978922045261914192014198519935266275336579697236815520109970103742149207128201533899783944449173913742745392213662194753190665053954058712521363224995479475402134699488277724327675841132411648208464770519739569452130459240151952764795240733969265287873543729040443606325232027130306742236655793173910658703347600729801023092691765867216950114810927844457098265986985459696567571631225593612383129125372845609963663179844277973685597712569789329783826788936949297150738783293394209013075346107420612937031799506053887331978388757276778598193667467622337214540894872994433050223779530367004313378063852669632394960469506559615130939234872524073074669918150265539840023477317840396587339622486121975797039014107843125137498416710785336008957765980649894141737816386635330634921101455515042651969983322627975582163583602941346204876715079810409029634276372069501859141710105008735375951569732787946140834560799109388478752106645622232284351950413450048876350117726445064019655974204858557577029901484694019632383824733585184496493005228552493520123029655211882838406513270566117247366022307565133891339836790585066751765637822566238889338077247467720164872283122637283929856634796450501713103786660338491501783406455218829554562859367803113530451197701601364125020197024416850591744524011288176170916300763770093544398303334721436988076968104014816184423081698838766528044352389746373644806750590041699480498870719472335660989223276585708688672704907462490866683803941063360067753072695701818544719142219293018664598183232821226076491948881455298863370224334922102158313397826880433348050241776728326504482361720529275890356541319958053799455846063265998580887321022405886541702151973484544231556602010904411615879055643277522609779139865511327998795306928443095891419992437287669501235077545005162110351705978566727037844175603801289564702094917763354547257672324317190208708628101265743710318619886641894286130003982262341409628943555745003152887535728445949699877332317684860696217893485975379600926985371934606773340806442076700686947769647335712112687196240306255544942356295017778744432714474490571937001246288633731005431230238943404875842102034787244190680606193286619532078616506038949341236953112467097843023838805774898101305159251873609267716162693314955574103236153636439837329473857453853148920136946369024533630683785828982107962713741942700553057773042586113205139912881975348502147065239887239854609346362426065375062378056577787609101688294899448274350690342390626953601025853420166940194706431269228421091024233125945512228146883723715284948257303649531194290734896122079210040617781857692349034698582266661461704782812054964114201551234263637751679449206322668426978594538827514118477134678136065108059867118265371764511801595444003785292876377491375493678765952270942984626241997351327701949876460880012027450711219394721463247924605877327862634747579370288660115881482656516686751126019164628284240889436681743278067293419171136390835047751237321628568718355692834834677664674194698416102753847995533942076688992626059004246663363743247302860234463295342229340680717738620406685535983366791246242660902890102069287771920780593010084980875882403737695968938271212437378300349756316155997208506802770006343328550737098566741410501009722976879572995818551050494592126367264974867932538190287680551716890827020020494463594834572376049274387879614932863701819209732924094464470814348145652110638627851942671026542937388752952510743165772213251088215086585920344631262167229564808864832120250630791666387963775921479602597679741908239452028933612078696081478482304922588875530473506400600300687101001487135989450872408785027566606658639264673952106331751331153189703373516242755412673020595471188294783445091185546851854743059850918353159495182568110757983965330858606052033544859397779827874329696788403523627640651714468386405511796222048083777443965335060996406177804497429102954869577071957119636168576446699974093232354922482641220053752432012151904448524353484729323004800460975705932405103107880956746983241802925510732673324896403446255676489091394722754530605880514063078792167943522825934893525719197303830599890304268168915343977724717471689097222969920195229501198533108561954767726691465488945719636847760067856988426553768495502723026986229412249465101260245304006152698439682804225237577092722394813977434427251002213249017049270372039772265241002557787290958225489973585608694680197815268564035850298505221183271133130620499417280352300393019847087350090589561530620526404935837136504679270001269762915306546167767801655686902467937578875704487067273843440211766694545208524445693927140446925608294531035137380910545015217709324121592856890205219496300319679283764471886509400409412933746704241482339648593640981149752398722279418044200307186416943975082473721101225574332701378523018645712527260025913600330543434445303516552789090211323052801507636082624545242500963763062345528510655817782136683043832895639091132631033803710623260618937564990876676283133997630119155665433821776760248493368750857317545122435325953957653415782082742533299788938581003662433037383644393625147545606126190053010283746059200766373998325966124290098088124655114696467810128335800725895598837452784777429711216318031999654212147474451045712924625674265355544993061920607692997184228589402906958973666309253277660821715998152621431150885167305953191158719226321302955739295386499947839857716475844132367354025370599535842416277657756372984215929843197479191364938934966936964724812128041058569939665598831007552750116206437789278739462894126646068973230096903742920597587353701571638990970214117497438746841912584455972591826306024345059278832539021901901152319250306741668783543395212108456903959032563531595387783968442369238614395039350355138869355448162406082410710048613511871132561451385665886126056731661070419535851971710050895538676850636154669935700170629769896954308744918217941640538224267910376476824240668008600406592778032806243724074790815954069940876464081737158956615195093228493608501680530480797556453213673224486686347815091733626084747067314487500682852768480198818167914052383628001112659932390794759195235720892661378192213284215129223482954322300094027036418884789227762393147146836058001068731106809147806650330143216338946849237569394550494979442806143645930673456848086040252703593087630438051613497836483095632605157025284338577965521028715509106384116206699423254501988633734663897737411027097511140078154786570892349991106019307422509368226190959792174677589932270340139494664014438711026392397038876708812061766030713848043451129470257117769814590333000702032851715676667421983867658335700631295999269421329841597295201936897688131866744153681286113460468508462122753236852757052463664054939696125243653601164696355050530395666577986814577991894003533229538022117383668749317221882590773459345927017939176205559828533066933309057293379760217228382657848690883136938628680874506006704279934302518683370473361111933136918569110862141300011932566092880487762348592634036476259778573350249848470043722840253844645520691727506382535475185966724886988995604173379653324842284846175276910348037438404917203853169225739077525240039635844125253599384586745904349622165861904584633799342092817796545413169068016771539426137099406328708984651300289980824880092191607382561648959219437721456823388079199396691213095032206766252471060808469009509603585659568156762100187577196702274136988081382052412114613329412229359043125112980483520173319543241724658608264875586738745619366543630554215587937609521861646138089174205940974625481202946312344742297097415467748460511173219479567755733669218243575039524911977933848835603837172689334356136592906683907749677079295951770543350446629452432319179896206601054606360842333590880456237069547797435319088081474163408926257265239675717150786032102368826364080294209123154138072575487030447357505661742664809472726207829811155562346999546408491954096552043318328138354992132495945553175396461183222973518527751069568983818934656739956259155441668117618112900451924640500435520123727692325925516091708608259158574822128871939459980605603376319749676096003579171591807506115966319952145951569786011633717500712650726522520816639414663427916387408390309874064191419469739280124444688929663214686732049919886272817303671106730339147419160920160724688779035397091283229834630280154997931850918006627894083767320540866557362445793758463165464660640217966577861335666105937346835347173801025237539933163851056342085386502723691543176756074901473724568712022790328609417204715036710293854252473792086734022488223981199460065596164876676539504729035975643750958315604715923697346680599207773907724481205499119290381545365988398294441025887578372598486431567950838151621288495446609036262053991771434710628343867934098038150412716705073313070488255382633034558277857071556283478127847178173183204324747189411219040717966653071647087970279018171222895317067067817888284540208779675083958574057596009699530596310024410024360141900472965212390408202027480158811675309149215629388099583667359522526566216462387393038177531470706916715811096134064001716947992030715016989229000041859877507055911425355652861131205456965142690952384881165584563102821902534243161495705731710806975635381721914555104147561635381523281983271059790610693612719218198155326452405578134553919411881455450544710215860725641502725327222021922363503744404263963622648018557933717759399106007661077310425240112184770084711507706553317562942992140482185833801595548398015608299820102732329060697542479056798305990141711197480496038865636178021153543921919393366321072346581355929395575638050621515594459180402608256473821750095010325213960570037296357019083179517873060729574790037867945621722468004678223344970253506520511261635767587864521385633361940567786131656454534372316887285976337359603946877907207077107511272224635414358752161970829216767860030831864367681931581842165549096607369294016974510348936661161664929941725753225433539599807256928795023142686683542484641925453025175137683252528494869435595267564878417081455238850919293994604472502662411196353607033406422119388264802117955541764227288877419084759364311175798829873172913001549503665565121375422434258322044286060137986965411255047363996718924984636673972515423979388281707853931966488873385067506006888847361230742173033099538183639473708986241350055701699519416253452815647919184592497686504873483378587480320927694855300972256569774252630897151955639975547694855134137282501631178434674670180611318981689852972992251817563924772401081526934528751077162907336948430420407255144838042229158827282172927516566920545340624257514985097920688378635836922200966635350905892496390703182703147911778459322921157792332847432730017272592144946911810859820000517435073449785095096687252433477025791799412450587085756332539676788836628431047720951064238869401540367918715971146818302335185400227636490720148034464693940396299231387764314404565616017249369742943827625441607206498078270317001873249589156042026360792353617046090241377512546480245370603425197451976727480215967154847594600224994827258642165070772170571403404209690192130416026474244710073650382108008884090796656664123375408745213329425838794772859686561890178004038660144458570630647007613911009053960102428112347012744424604207932449415916987236693524531881219985363916943303166822064370885218292685987798828845830490704364773328518052601653740793806133477227115750066775512875703045420106629726528900791247454193510036179794547231153240745651538310888865153169698525117156421087796797061752199525239211278635135988971711552711280281411449802644407776126706346411563797544367770788253422928864553645377874709536288921573399415308434973467840858627255996308060911914188995657670208939613844404414587568446520091110485766822437148191376169098823946754314857709863419336920775151251937731654271891998134521398470237091901990961204026779496737363942026452359540806681509666249264953720249911993504180695427085376171055667059936464881572487481083859495637483800496432294723325979670318825913669665665795709819064178926726006567027711562199804017726226599295565057677888104848064599955282188122981551674153726767791521174180010645403144146056633980415480631873319612481126680853487132533221656533549957041182100495368222227510111474006937062398882895291766872208217994429690616906047278298635085462870819593457080682464493374482781568711968534643751628327541249693557554859878023138987364651924555869343435523566787332899275005530563962206925407502687405915460178595534892700756441541503469390275254873377172666319334857470974498176225950644922501474790618483881556159489191934462203403270280214850013100273441280272286687872577714950728305342656199533203377256954502084767512268505460590304805780501458017644065911939508077335801406186854474362473846380688668109191959705242672974882005875307236778229143283163670521202042487887896391553574136350586851139970903837471171676793049433009110929436117485181324922029240558367484087027519713535705571035617947127780882818079493482913093915126507394747038545043019953932857072166007092536811310149827945290919027578992918303696507869766951490792547581967487831002693097195273892868323106241282642102849924820367716194523113524958787852041189110226854549711885734775774788695452167248100447542982507239783487751772453590078066841323244260458832706831502654060238099308211485416488556879340989993450831196284175752378296080807448394340285273036878058813834118646317415923398170807184007475451524292140717989966829125103931849948191544339124097613623274230311090319148221358394212974327893420241896697353994593528218595912822645799489719420507150878571530736107096855331139034660611963344808489755768981402591075457302798306131882975575425840327547322823798250346652791207501870135832287566529638347502143611298590462315538153864604092857704694970000366597824343641005340701852464783509942202586668526905418479635522716909920192997187441154292620244490640703977649504433955928755129112247891387291720472164393145979393035890996008243386695322959263331298785908305162128721551644853746776845242712465550616857140542894197028515575045078773049124860973066618063921490359288133871528260651999114151004645579746524237274647973348332292685885303610517180137082655780594571205913939963630810673938812112692712974585721689759086976192914768743159636857415633541907602145638717848789080084987281972539501840223935452798952920783291812468861186941105133192467025669855588924948595657907311452314414127547362384585231932313575937015354629314257393041468170191402900287679104081459807365746547120404013195095856223347852951474808290751956807450767633621820808803902670266624022479425694299173296577204060196353846546579728705269396827256121760063959234218212833343774341641771144583701900362746698507281312149569884460692729391540008302547890458292948197473382094797685292835547086065599842356868374292403490059834935306172855763479732047774675452366895148073370321326191923550989567327869522143095407658247667587053874078350113312524687239957848028162979840915746435450016378567381301448473185161482039160699083498838927681506724055325173121623612648985523956812379531241734716428414577705062073519756578928877591124258507202239675034131759658323367752610141830974556783268937731140826673263924608347129919186311013562584316233370214473290773706874168240191291312820479726145498303972908755658273133508202914940634689136489181546382089454685394384801619995094260870971755914381936043990553968128651921010372779753658303507051584972606143301184736248706842570278562113338114403042535486590544412098732168801686800633522785384858028112866749331487088154279891244989813605519888760449538669431015830219476474991069821391915024664613623020620449055473300135936681891476370486943774722842482468787947741958065261123899469661498135541332107534636592616373897424939346321630709844321833958356041212939091227781226602025351162130972280505948530611696056768197967863404362774051058948111185930673211340331392212762910030077933377329212397502804449606337879237771845761268449100179634995819019877713835562627017803327821841949400065045123681744899049759667796610521634158245615042787027208408506842558031695481961222897908733356041946346806240215437068249434872678283554781520223918064886772159485712151914370633292872467630546578566590091151870808052869444554050203853583029125490527508561784022208508637476714221989235343661437614910873675273320349452772547095108672616579137293740715500739279894333669389851506110639187129639612264007919533765148390879245045995383001020005831759828911145606932441238369996168230792772720613064962021600610489668658052043643495316083301767482055569811126638041539370889455002555801407357721174306536156478935675973196883939814153591656811223526288471145602236182399848387531392810834691574282343260975332660259991056815914302610139541725684594867677675926822710505586863415197254717833934786859883028460276501516984416990615827061572197679922483855788599569442420217170658350381091070165324846431621229513624676485333588861230363128474361314946705711710703413388079791949933539461248676806990273889542773628006488276301389982216076598255736032110120202059747680343889260978134790881073267830784057943345437761414860097070827914968233298307785168162444930796121482271782086558131600448078226281273808089842053635563319860062795855413640739941046716979967536895798752780761343280957859722370496914102523139111612058106871816668325951505352306387637880838112040718684345089705554250196525893848297621646223209817045512116162450521337905510040788287988928846290445562783391662300282918010468674158941645324196133499216801205911374703049411124772366878144124037027658262691801181415840874884199207639998712118571634231821411545655406399193516944483617590755869545846600749606794195534855789899264720977928105626825411914628580047523721755033619094375187018380530479323411203127430487312920233188926851745534207799057956399138330666321036031576938886520542269392531987093025346618556126541898101943090415887053308635298074399767809404665358491212616886162483396097541091126503794572968605234519579361562883213422521123918834302450916781333615868408009381891210272484151898616082786446650775309464425602070979467262229762656227121383160085195829152999743698432672796578220723372600527643645464542656017322329781539411975666571663041856800828232747964989211068199240540631126192374554611829042537756218624157048838850716559294055453703991679847900377960264286665892553821556793599054952965261315079926937579079317173790778558908543119983440654898130305636488772932329124694570877053638591534459213671279488069313828144568194923440167407939425885194568199256444082945802232346940564005019725055569449988129647805158500135925619787506383018817358339323644457466042599409126310231835079187207473763882961730566343121079042375136761680130816558737613825890261218767389662738951249887260310235434803014089431962306783207899398664646671884983650266819438869683941009845887789739377904354996030119569658443430873373188434001737984274610252585564410424363558068115040036925043715751413344357184125816134743755473889956183286932295286439443502040160091977389668656189076781204826803931493775928730562785300416372526981193968959620421505046008234535494654919641460215098290651070386713265996165548025730603984157355787711148559403087739274196875334829773994912065731178380270070958560225763435868138450486517023037008929753651961084599375443145823693218377423989726953061613174526437983543865499093314455485387734856105071074451768260554949946030422884696316433084188328017768880422480959354095863808444566773317914648790773033430524233814234455107388929339014647742687229650525722830967867713633400968076831842002510462324548194768629504045306930758654232355826290229367784848777777901732916257400754171362765771812614627445913235859260152918129561056581312553881340390664597006856854830372464656662346716469962457863414031424199542974181520570126594737578555672774029131172508928169178145356942285349173235944986516913157049459388748764750855125387618553713380861440360694369280912938257823384585939355046881272234576428872492564709069620464281382094177358001505647464049633159057376292242776206944149343001261557420708907468983438923800946931991162634065490694029844293922936360736118693315034282210202580767657969530273197542026802095059243321993111371132545587116354772773083775768278219471275163115839285715005406920666869751282088282105201675893628303557154315378262184848013334857467747437245035621236392626154757095762423728867600572232968956063272081734439159717987399217058607730096558420793153630498805577019223538371463868528711446552874093598299365788566438560714618774715979611543773302412341005866378966999213873279775230474197537066792624715407583177327736222202327778714898615781944794923269176426282912438509197161315701444429602177648674253173834487373473926306346131949461255826917423381388629324280746693179458129612255874998416842158021796018694425166223906657873826455905552113451208634879373911113925922723847359878818597026059684948598648472338505924974719430035665472399895958296727983954263355687692996898201857986106740087451311353281870698472945871847829609728529026854543316757657494141277814830961248901108065369777178122372026503361920816238061239250022378613854381228828810473655769697293279419097713488543767975959105233231333508834893918192454304670358439143867867714268802901473920258659742455659150396241957479581327996116073910072095646824982934688359775074784827953511338210013900102608964684028895052506400153373599755246846502838430098741356585274382572325746370393060206937481001832133083458885535612383013110127363808051416234413838212376696508701106542138137293208497966266557265846913076012863090851169529682797422340582072960522141931916663881162016601326323057621726912065007784203413810078739077382382737697296522549388137452997721153054083060515888383888206453788324312162511308699691919706819955224203834753330843048945264356443922158957311025650622792255671930956955984255307100404377471555116973888726101015372200789906707378998227715033024498776239892855107012012459438585740022602404676791764183493688919625218935132917318023816722069378066181611448688241690582622356053087089611975343499047956958389886432088248219354523661566755608059885049518991878156465204922466479381878620788747191965907100593649581683404941773473278766286962365525838037362688474510892328002826511514430427506930435371220206055450010535940969893047629204083806905961302380403789870422016504054998916791626350022387873326792086188484639458820731331558200638334238269931795250865226168517645562511416729136891807836282284830716355430836321407098742573646625033783999285712935528397779421933442455588468385411934879288810358771491811434673953055860644589820983105226487105362182403597783102261271006924267864764372177091746773907486818018018504359285315546559402824309257372238316445713731547463251716599237155118074059248475457866701013287657438425937960140786997340028185326972056780148850862113641065277752113756203144070616391225975482054468132880466684421776470534399352721275550882289056046813557195566956723761874193336833444401779465397534944284078326773565036935492437066945701047827639360984489524702281136993418435208888353538933917821192843904322090937134719774283243776026979740058472760674342794119646527491879994277560384360630754749353490647082724991770112052029703326162714106606526294759230379984099362478239223773290237868342442861684310717079563584433400437259496689496378825575198479798667570189981187070470874023785727653450875960156675578121356629697540099351321012420922552025702046905582475878288288963984966228497309071241219301693032194152064348646026053900542372497354642854491888056047461109194119681461040497411283629435536099117953296545340445856846002704190174214968946280232915643228275753994073185899531460845391089632056393016949540739879498186667126833628343342263921189835799632129123719944016745252341951075537420286607259909768861792368897041816487323992127909088516613425439109952967786759138453446160375491606813566798544545938190771808437784947303386532605015960961292906467505332330510375059336245360104115247181891789130600941111970879550531716493856531766130890440732763864692601327195134673111765905513147248396070580101138967813526818559917646533455139455623487897314511659343025290947991692522710415149073013690148474296208937469805097083762904563215878784232067157214800422743068009179624880432544856533818715490501569888105945899282920046891632604448466474082259464380454776689560242771152854018664403313143385651667185625171838081777241071099610403718076982518774671615864440468217940742027307089313667648265392582034575578453220812553689236485757074602618796811632938001956026832361707378209461536436346845447927184713184431545106412125613439085489015284430586663345221989105969929070596736660773329832461702964369921528839002672008674720598351892349400007147853066846438870259484520364970173685632826827775536988285951790508523277971112144609448876884722269906404369352282705185002703316523305234590497122170955963997653985359693952515025731921363735370278254275461313451122987214042426053197093563170954005177444509177980683257819820509666868735897675688075083582547381238418556782585602344977809879044898855612313550408362271124949131028797505478167304563029884537583672178787313826155904484672736844467142155811316107636713475273555753453803323032743488592128527650638670848467915922157805111008016091174707257293381441601041182438228287348307220586989828945995445106219073391389823342341429973274852655479457946717619184794161420533781335035824680190085142530466552577505593336919906953431005537934666975247130776150996744030356609429404003785141732211702013202648506089660420565769903643096544469618603984803370672588942339990620823465156601828548289657080009882731063829066569226868172422254488021087985996159064999187903575633784747366643163827918933517761806154827489818129872354254212015972987080247304778455357036605965347740815380752410310001691308714597821038441697180800177049374024084484612536791918292624220936251420945316272140611637235957091912781559514362816566851233350505181330057978628814604095945305223202052165260337808776223167379808142248113596579618556816591854272570432607231148207077453995971396871298631984106239228677883963748964757385227093277098225243366847887020496512666961938345912375859230333060718990102098908883372691416815155271163590358752855385037514594774857459388304396945575236453430750115207974030550250102112162536480373512659189664025404084465844216221525769294592978340584140858769122762799482406693160810187246988233193790664944684662483372375485292186980588888273376558269258363148784751040588269274460544240374693085011378722132268566255192961251865468050557368495811677893807657181017577926982121074141557188312322322592008906654242974291889507948721599577140583112057478696496053064770176547761858216537629889981484922832027122864655978373573530685038678214444405218512348784693097965586479527611659662637330081795872976342255851696655884374136944069781366607955358715944837086169168004003114402673099352329181862054097998882001273955141839533963544239652122079949528707806723328313231145745397225958873873038621148340484108132580149396110444234349159734975813849610985737044155191211480303627729250615508721924144755147935675130171880673828852755914585821212012538172598685024186481093954908653476812607750867840523065971039692912024816433471348068743764869454233444960413618356605036487874354810139538777168405256388268691316756728317327788087193860413387388594034218470015057622343824353627033578638172734596845297268051515197023085995298996683434023732760322173933804460176182388972906953388118047009028790023843081564025449271085053180676206912426723291725650117496864615557232280624731513561856643040778256333588979872797599381755697229029698115762659446067876680021574464963848163494952482672390235886285677048364031968735188786820028104275639231376669543075753475232067985565724669614467732471530104652253848179783776884992766630297467192659322838136878647361599952999280391349470580181296939464104523748618739340780701957563090716062448938189491595693766622072597740588503448021649791710615651173952889860802827357448769960459145019107908575161731372829955287735989716427968676305895543308792929478770511523591034562589291860878620446534970680494756685858048317601753817404657417698912822668134185138423892538559245259210484987326262812965323765313563059213265113297351304378259538032923643216894285442344455591670621796013640005847951201451878068383009009047848115636322920731750881141976444373873460015189083003594230709832473312728732517562125424558464891239313885319397758400995188467196024543535588002239687948124615328071436203853287490521567651155044328536841874999268595602161677205715136452831758424222589334516977546533099315374975240184508192966858134912679582431756621347196194368009233020456089174082950424686140663276948599260194084122840928927831350528429425584818989896209575418697945681725133034870012190989490993558722470064121714083737154933915434221338383093780934460809707829287167215334695998563815679693486529012221068111984851081047213423546625815054732501799793314154470043679938330851848424807116519825524828933311906971972620062809509472678121814813735540084139467199257594167308018005007923217741772163658772463228587493335307640656530898835066312656377106776381482740187830571193832337619024671539986006602611955618452875876584816231355242547422538750425752319890107427827617429796111442454476661162205365817311813688027135162540331735337834111707893966990529686269862276163160957032186771834196878155415666761571226666743601028642568890646496149646652098243053849875420698144753983028862459089047161043568888115893633259219257601241651391461929819251531316052638857622529413953728369937321516769410844223220397580115762599520302026796274395542365865485908000155690950061256597094504099959905364362833995744787157995903991670989255839718654867562896670075111443813206544131426294690960381204281319461636785010968489302230099397811444524730419017776811339737372581115356141454865304606205798684229891395923994406383565905297517880612126654030206025353738910175014101798361346544416401066530844714090035738219140595158062239055998481647859868883649720991950616298834527516501884852042669439121591359420974412810842616487896696003430043573275104216400665377984709888289404971419686671008044082184542778713702012252704843088221399328270844762655623733104279093672915838641551726521083239797066081595853488770713514132866649018704788806469037306948735974859710111993918339044293903224892585900128062634829016397716042628018001400685396462458075638343709771043210012916431244639785546543677846319106642547359179798691328785372847619398068432046598488389889258587357358431080536122417015705529252751155011459308866427515755167835104237642826665423514341430629815373455237197506878708406976351598788570679363902342089102214374281135326508578174723440733020834320909600245474188435045394779495615278658878602559531837857778544922047126536143300376541155376869695089480161278538544164793723394176690625015924977962947031441222237737646571850369509683252416696597203639858631313751847246371859313979375389575262274046807184570852230560075836320128879693216891249638146565601984030203379849014824267418918450684059704132906791102504340178892683710075378592372505032936386538107422520765680580492154126482881013734065796993258361283723070133194240007100647464514573331462047700958801719141635289393229622794842940681826689245103675508711892649655265686598007046582597213652653406748594988415976913124774564641420117631704080301537665245064914517916417867997379746359439428407140927864307437846742269850195307191351857645399358170184464403308697131073392459446789608634964133921956411822985940074021140164730867601089575154902870604821269447297887731890099531591362541296068137512370485765250066291549173586110318581148166475225266654492598105314038050053232521845577993584587619546239534265157442475888552702495528665222908806436150336343693069212364461187524486008359111329968382448586467717941356823662857013460813750518890420760595416744412825464804555558306749938944306061426295783850122015368776156674511476881067240980634153410680543455945279212582325525155416751475748273816901219841711255681619224006411869766207010362305936990155757048878659213878788953134963039245869266053189908671494468845746203154749208512181731299867199187054751705653085581612272787101874599819620507587847224145964974852040954431367617897530278527923932009187027356069263367246708414056393135787752164570062619209765614113006052830791845918581360157273224667083509401658782929913318852525621890128774546106012500073487293399489261235243685023438045537714135408011286656231572977975946666722924665463271309330883546930921323947577411432429342971197379586877137765851429963775093937727695247710064133254366088110173235235238503069116229038489732851838499510855742524998063013194525738643602912794911936534229615576019502195314689479681912242591558427576368106877906418451088440074858530910991043739079154395272828050726660923238142001695978739241563270861545069355034436682714074283309592561364791824859905598492807502971611981348552959873525230591811973561039408554853757740490459259136128970296388068086420276706666235655184899549910263437604214060826372718199655030488687913778144595119477897314001646568281343665798962745900876950953922268605283681922284059211623899697943082172668068388919171123192678235830830162979402584102655908009836373933852135175935598308558699321541627356664323116160259230277896922462216797787364490711982556502497956916765206760514878477722527144252751359218894196924783916680364073011098485730622680896225982626747581143083501409149617205816994487924157654052810382402558232009709393418797878843730109942865632531851043051770304595857045716602704189590518086688545522223820479268847735098376012980257619630942314216675514216133803812724903645068631766549348321382085759755454091149546706573757439057048842954878795338869166139022063298456931434498033729122989421063893070333850527510076381320039775625538459074254506025206394626643694952750185540361812809477104906833311850238920627803229712413455764626257046609244290028616635347350957025314809092221566695576742321401043831305639244832110553432401945549636894184414714183320808447020521770744487674965237171533851757077950779748503293760302992802874242735812515230172261937576130305457160770942501211257319011275859733729043927059461334899234877298511160159366513055297026955976925535055859126357047787800176759090138248378321994117861452286998340700931813499473306795074576827904563524837941268283003649368440049048575416330453257572012515703573832424950904783778863919907625553852294166981944904630741182312063316518162888215405466743270497900765780955104847667565927453293834639641473807747152440084640713917139903927710563873610560637729374511137889905011084710568076637181260596915332446385352833633312570007739204348291125427026878702587811319148905106610805324726160099205898380387936026479512325538924556375033975352376324682727685767894649724062011126842587489651568786200313535153828340186689838330388930530714761308655126718618679415374979261691435869786322193101146594040425418593793454560264872535689199209279715221154788066264002020743539269758101938646874923961914025242133451159163117101793724689683242747104785991601064047167243920286759684108731130387749878580504952773737046333662857268450798584842467473722112028159482265308519177926983479995487723763257303432804471962446716224920291192836588479513172549646015582515879170584534849016852203242736093078212012026914627478124862037785052198805720683164814643343480140905891636700293862991836605734574293234500961800766208633535679469276972225442129209450124630461578494803833253437590958136366105725068846230452927385084499429604910149190673694695620926749909980097568717778131838894537297481719603779703222694427734888753367821790215071409892304502506011270592466636015790027729482557474350287592893365885350926877715327597114506457016196098696588745011973315725333669796316625931645298299805432747921011225319361443899462480090370438191091945268161510815228626298268457874644763041841200007406981795663802067555964909247352766569089344330466159958864000706145100906065875146552129088353048720124354452736269848462151331227154277259400310263949220871796546117178496262582518459069270957521523882165591904109727980649336138724666100532880461371055555367012176674322014203974951101045577249265415284677875602491352820888272138655195770183732937176322204304576282381274704901149309149397654367138115525602395761852111152988120853815509332820510527166835285012507324028479303615022952056365149267520507067887031610389764920946499128912735409407656652251315014739819847571859039485563806233973566509161836966956796672646984258435654837782961185505710510391519965895165215748970647302120436127823573897766990031026625325768427985643408899222414555732680575126852796273156113954938820205956679862097111259016645890053463653225917524838854433128740533776002165683759320441947592705946856200258043612888434262557361301841483314839205493151185114123894760625941110359031030201987774281788216851501012864166528530203116511186008283848501457309048388783584392581831948127848932145418257278607946106175402467169382136378183440081672392363886478733144924654571200598857028626401017037861166927263354608407786022450602800814820666872859106096588668795616858228410646544928252286617260449552981639002344506598876993109108494016019881201776106530336599089103727664475664641903620845642338455334186597313859077484675063895309225057387912922739165686447214108776935053753930291960859346935288054855840565187191704883783651885079284125242056315902353820185041436150623234886254818387558674204830099497770667320974534278528923455900230184271575724034836756639280742905120446917113353480241075252919452503550370639828794418261954320729651529779343773338991059920700763956665489028900586466702428379097712412186520441575739748255169471703591372071521739367118506333970047278723002937111203693147001460676174777680417269314998222990550551442150409789298848076726135020141300906684681428155636989048456962387501128133735046235460288659938043522517531622863132264005820044937329744581760418311779751361339735103730177440715935488779049487345539290913382869262045739833580184303022605591495723851109471463253079547453309759831719713243471777588455979504228827162144183789845717930701146108981524708790030110505011561805808280771382389072462537533902560973168192009154032867108842998326601292216993576236920862860828379599205320509049854821656641041123721735759608761071449662103944518355430414603853445742622545688513603230052733988272746205073733721575654033507297622274834990424456993107127225065012256467477235771959248792314709783349139214017179314016841322845111621347388118519944326554587746995096322556459974391856786817628798576113218904020967576682556787945495615945163996899460014018822247380144890961223884169682054268136379471962791358483587032944038837068307764683287211877642376479409952481731096185554117164385465848119514447611437499306636331862746084794106297335505093983943029053875004657010693571426517851211255391911919641983738676832748681166167793947121467401921313108212658352760790967093526820326545455291465743901051382499573631854066697238885545111398407332207804711546568866022353023701543419120469798347765259973570166030178707350173288914519929801902488941240428215750523664477660788447779840228397898452863709525640644474214022333340284101382827249654407283124331520441177212471673081063109429746779721818222218567248649215271080948537526142523777573734698791153379941490184116027300501313360626897239689264347576006996876916751058696357638700282687637321403995135987528950647667320014023548327664167647054565263198500762278929723436627594536124331290185147492469461721139715247789994581468395489305772328639720728029489555897539562158922016518120962987396552740817644443096458481119919742072674674547958062391494912851409553256582229300422939718682362960611408288360079801099208364470168098680123441564809004575461813388737041911772138237990809766750711180134364809278510984930177025539362447941104948186355641604489441184493824145436843442993807520439058172890147122967996615222314301894602191538104441119093282501584724495256996519384058095675380803328072220989943217565346273053380205088623318768774890020472347363081756356124025413327298361133635934769326477292654129577872310996596781634368507790333327904627158732603844368699908267689428310398816226772919246535451164366994676400095680311693113315357067505918962644246666338716150992914829338967276127194199234607572851518595271588933755548924345995781056580573689695852994068866878500817837246734776189181464082025324882697465825570659689486177013923690429937458499782646634876158110125287068080376280668731628518218251393402345275420804277374674784372284008587226865132055317767208684860302578674679474685144218296287952400778781443587703530149291129591070062979877014426807271591624437785611883288937240158123989434996906154723948636795791367289553318093653839402503329311415759115628015142609939985482486791057394087485982952230614522170195686888035893605074180777325788049927118499185810483837805240702324577646167793974657505185140306111965443317330741851556905318078191678747557463417152691743986616575422800703124801307358670113025906779287332137650977439707321570931452082197094517151341411163094945692194296214917491830912530883216566562743076602092118600442895484621526625333437711934100425867555144955096330551324509597242355461467645861075288450695614257267323082520610397201324431831595924983996027320817487696694859093197123087682734651096398714774012808423008210149480400363778322235767226263262474643086847279165095461904436307497863730052861565507570763256301207246025240098864454578838470584471117191451638016965381730634032276312484601764873779626203611202737646314369260394788279818541592928513817962120601391890012471445520171306152579938749838375418063198829631001627073601360567118579204217120655034101214730974516601711277733883770000032943359462144026445579751034021224300161712758680810512440961181842644106429003362915409427768774264070660965238216633811776654404877217213220559268211257495250567464560072495228178063100367096309715072185311920738774250597562002526234645436433488210344548983933614836378887605026248444673704065459129755100056472571839138332621690233164501416729276411458723106986326133246388557475496550133073760805998190304594632599512075347807479736853388227346676080384408502665420511201738422247352565487136970884615447398095322154854537086327118640268655470498378582356699665181725788926180984691492070907311877359051136908128483067736159247533230498990190676733257477440496333936956542979900222755817464051741745670499423619502777388618699964998568745220948534017941141709248423057544743799516953802441895458154560726720044044995338936230886514561938131750048600402577351038026968507684699001760872571885137171481232455574771872769378387806120359889327119737438144615308975035989738671375253169214172112656314550258861455607922248314192394509000847589213363166642532927423817087527381096748507914689700840094264840751135007928149241391089111605478029768068319179997051642376063919370289224239068632180780173337471622603780371193618271929457845017171869033575166513365689586931282943238554413698928577641510090714707638788610389537903982048597604136625214158715509221112094136170543709160907658282072952614257788517775169036599790024215309907719536519777479971236343243497900087472241226546659900844514121046005463799233575555414306472743176778990035978869946895288633388007549967066974866396521552639132560588600332076480472334355878336965108320509989143350164208420284016092890379209751417595849093281062975737938312066564341354385568074613609959728650592227377598446523081514297016861446927910469127563504999234965905391610783532398198660366020583465183426837638709545078200044216423939109298456054571013747056842301282357456485321968647486584694501885073487373950337481713694956098095867315166096507291306880990388956139584423111903935348036274458001659596718055624662038340901801124962348465926308931918258031775743679849388139912148281113239771132984341247239987812704656564423264862113729957696805493651017573689003839111588597603396425569358071348854020804261334945264602351432440870107581672719205620147289576855614948684551957269524721354411635570555340487575213998576320037971564710100122378983749982406154398841836732483559897779708650584149440691814987107394404277233888998428019401755668774947743247355193786832533762015481623339856351289244964348340784566325339522440058187320061893490158863721919471347500685570276160986567122789265409749637090131677774976328293856326330308446366702151154410955806357431598974437782045952979071244120553318407152081032718021530457338046039472945075462479784413687662821145566808365803669671292108232298440467058488680573541374974287035338037486711458827243655070205615305613630510854559015686871922167383440820404088198436230392163609053172516954950219207676468576192798594383220889846488898664224091186106446359230889238321947902925585248243517350118415417373183438012234848669444309404506195292713952606785006553474678070927657358117987592776228801131114467868099968329988717636200225838896532187232842131001771560787561767949504526064032333646760370452432720918112791379136264979792634340921119374881162808533591497697054598736690314947532246012515271199684916836711045174742818151660373260982710515094419810205615889474595859662768226350932664292480967430714088321331494860445323182966205100525551739377682359862927199238007176156174482082853282480079057145200337477869496746081106424499269053651115208416361072543145234626581034955599086239086842703392553581036337399073687436372621761985510510822781686485715701714605940217317825124219475378007057827418072541722747070800401605916782940410329101319653396785314798948093000958629389431192093296027003355619222918700131091825545157791162915148331023623823574743060516141402850846077216091496312299881841940330704871427118574447180581472915602145554775570990881085032742150972659327085852836529477923264269826687431939878708205010059500865454077042015579720578269103446141412576479877810937290192532502366476870701117439621210154619945104028273643392502826199628976221123000229533064507808680271621843847485621336501855123021465348826005266220760926665478951138001535951704748044521595995890961040865009581268545783958605621452169254670355453374358684196489158436647178895461005622403486215420273525604607204381136721284964152565493630789311795223223018662555383421721274324204265400365964261135291511899225138718534282349414539280744490649753014682389205324181993635367892567692643164794255968977166482824758695378455524498802525620241987553407257992745457591793638094579487400625677409277960305807453914959946182880892101347402411686621433788689331027107156166315651911435168158406901063114868824097194886142048568774269083863643998935104377315794993706016076496150272906203744823426676685097607513269526265938280865152888888023209183583864529616848559127892642263844621126833964237679173551576468503272262972409784884603086461342954093862627622134959864238419183985849953746919430086544637421725392137029972628794900179484608785264906721763886991395236063182142697394142948528083815942719995665141874756612768584028879301750526677922130772263065670372355194499929838119262007031819174389624032073546824948914525493842602331787560216189177245526023318833092694760387367799964471807151460885489784710692888610981959249878469134643984257539912894553438209401426810122957445585666321223978484673600670578140351950048823565529103005357213469811195433971054652626483900823607559482484751457651611133471459650712095920618214833528626640127755715146869329807975303447610623695648623495429988273966230509549401319127934998274790791149063633284820719151842888200818078496595938790585134788934826604032279171969352664139679476735503498997053103444056781353787485552808765199180233030949228039685909995154045551580205148561534211948481795865431164911624457157672659148004344611228971561490719127600313278585910287554324474569038873102529658299706599066162585422342597914329663475950795118611715805638934004993701674209035673827123972920937271631758872046817586441457129523919258658791577614430427609053790850614413202118079532047299527489259942923822205559750491572639884536238070208200796961420846659257937951383258600963684093363792521055403297684254027787245930942118337546268205517380687186626029391765621042653048056974675771893300564541703649756990410311361954948378937456688141880086742273618514663250167876943615470083978923640292500980142412638565477989445327298038294041794944786204717855008649338334807382704638334364715450402054176713318326628868309440725062991363665634738040875513082501796595203472578061026177031924186281341917603337177619378672612932282951495860840245749182606147374698027916127496286134401139486641587089233447484891515827101445934496939118066055650407623682800164650027633655759053279224839777994293945491439183972978204853712205534020400127581232666494259955940920190336909288809983141571822379293401630586477617062016988717783816853026283176888712905702086926496393010892990822589773581900413217310670511650229255004548121370458960388022387886424729605001480978492354154998325810040361662767623212215054362514352791733252782938763552121127578528150947257212559446490379839117945045575860868606172197155132388586424140166685538907596094587248011780521383589179301498280969515270711569699171927674490075060130282381809087412768055886323355942163393142674301007850289651998619218631295167928854393362330550597644066166722825482643339403332768148934668658419869533454542098131007124119171146593920201881948867498176791113115309385689440543431786128854926310504600162007839620339415586651553081938230349380469649571366096202489543196857687188275172714080345040385487956161272020388784409541662563702003211219850946454389349945108308187279577893608557341978814626283569557150610737202810351605841390428998708209914174053654523088261671057706406371659947844412383682168239540218562540738734953377860838136762513792440108006160761072725522230564834827246359857040329322682059569039835963128287921981943947582373791790790279991420740563353180229952658209475835056235397514953564976003700967398147774163248978070311516803908744384288024622918226904305523372441801030259885512464920749642062435724911657287289690340016220768446553062738444105141037346285304433283407566846042278824295819695605748331094882372713003650188380864917429560067278082784592960685244626152375791348148965478580958039633172835184135471206323134831973991949406830302116781054022907092845944268405791294488971598700854733486839073213880323273319129128156711485481276449882315199236227137638900169340851415863167729368419877921166595112595821780831103339914510053743401024038149797171791237300992525131477677994244663399149298474391666891050373685463831147589476017579219963739710282459865073587840470425681145233426853897464760371563549259259845506272563589557708999123992951575787971288433817687423454616799320670796753618347898965485472548119116555427350668319192591085241548398147730084373877054012492039193042193358366463712411467703849418361974075252463185890036028245258233735191250580902700597055616265621866198452138126265718309544508800167975318850548888209527153118170879258000899705574187139177090413360724815547223861981767217494429028399932254779046955035985083595773314233516192910806882004043314908643889458291266941591396254991772552437590217370510615819448624192486993867059367722557313409658399323699847646086145999304492777446549212667663983099210983767800326464671639319371911167335864437736344996637878867458653909040453942751716712396118127319536585452099362733724075675302755015080459950467833346050430061270657507990600426322921777921793888728467587781888824376066621068746622179828810268920397753057028310840200704318076490513332992788337676295763987364432929002035288872727323141977465073159267090247556088003852217016490472904775728074477412994830248551583543048641502418632217869502001810777506670093525826386193579428704357166988052734568052013294317210939503048116299556717201396345337339332570536372182875008596403538833367620542575561883099931308383010933747372186045796678326280084393582144327212106895365083588235579311497015451894337813621186422673016061577531511608033675249510630573945882932639594985911149274843112035816262284075353702057107919655384167155456809415942217992741767385787346775892782578442701362840602908951697496712133023616689235353977900985320614167703083161391075280887316429415146372435860499539923355760697925190659723539640838237697264041981507156702125352121710645407646578807873657000402694146597688790798907020714914431193191290951340610405220203382518502660311888900974149029518175468406451022786195997981279163530073631680697988715613020038444087543518075217928398153771132316105117187270905784207459315598743130237175811969837463382353148811191991504310563667311529932082012993070992964368507113238162233633887670832493204846982622492449679198716138525888855037257681230490040646293147648946007268312922429308017312953572465953424623559170622105073190235395723170700869345927230266062620951754814500370034804365949781105900380003159314549433722338844306652921697432097496504432144462503048118867893239089557000322657725854966204470953870185754529693822862463127908896908243330278269816373621490878773586727380051894315396385202281305421948013398671621936689168996161008439457360151728963825181224358165212752509526536687459294385693758440960587449444089901895073156517420732805628449129841863897483584848730935546284803446021259228801063997046821043085506868954521219287225619844296881551076354217491624493842542026182776449625877000637477388849251837259310042612013310334418051201638391371320641588595497775133864569932740829256172956457620074244759227083379403060771448875020438632535734662786036931690520481379096096427424771133427428875262021239270601279502462216539111269610111243348539438054203811794286588740381454439650166328241300078607422297716942946074200416509027052345152292748603775221455321671121103741465690455105564784280271387774090936430254950669053793405054080218774037257382940279479029718540599088298822325108558995550149796785200914372973799417053729390898248773590522416550392857683679357991379364172379207813905783841139329055807809830150662519778658706894931931788930559086825657191769379405332930951011007326529220602204109099915007538922938721094983922716534090100111058262529469169254400288589325312210569272183862929121527131095156362455526496722693641119485533916210467364100947589047803088948514247159438565323524735584193466266414390461970493246981045522966488335200057927267835251373197378104157452073753141251311630848032115706383275115852907194536759364679334797388393919929983449728990159492479155906697207222785260858406247278675476606533291198099563336881548230784973811261006564962108046548387828182205477091032698033675430324075792819702999591154129224759393568013399116361637453662166096249744682205868956243454352929627835125934189894166633373285194157560073086021529076460648493629469132668317656980897689526941037923580123154208383730443394664265716230275989259833673770010012135201623055892960992653285918732729835518006326794944685658131499128092322772672906082993432815396848364844903847902501345827384392382551170034022080798524211005852482894741091367415402090545340702408113729991912708373628607861523596695630590994406989363534684616046389131490508034754350024013533912726718219442889961843137381977857915413422744915434283834196243978816476703969665444942023358117309386968687848497971620280371581382834247027760394841161434019523318262225725153618277827487751617724446944437354613543532962038508123599416162840288729081155071209783218958927714780035278998807974947546120689832255945270837679936325667434238302660954335164989894576730295661969571159893184779097537371400949448610497090811114692040111242846838309633249762138671859904079883732968812741378829936285147927363776412522416178557629929753016518268088253554005804095610650737769945185202098684403401490951181627847647795135043499337154888643755552242541731561313894176447011339723188243845402480368039200512450732824687399892114121129910284023180304194495401288954042548927668259049330578928406717621295469392277387539933995317065537927227393815052635380343859534799241849024238259875210786484272218640057446822824022236706034622724299581004652825968520745772420495779327370775990627258980326411347637412932109434283120828990666835007169041829675770506247807035789054760737870305216388540943892032940937250569447582243379885305486207947674040703779741590086438777706808001777342236922841982190908094099954316068920768995261242671942727922110222179004974701799685351889296135849037097844461983194317395848920105644628126721358398990250771891506585653130455320297757351203758351644997345059069820692526818634632407340936884702081712978320541643684613411992778394171483439918072652404450671066338417840511541904215148811596742450805403943062049346090955776689420613736254175009347686141723345592031218790214763900590377779970844041632677916071448052254286219700012428947665595195844598499594149670245049988915256823794301966039413205510278958415700412851902732005593677000740715839989194071880315120473450211395070328410285182962244685094260652562378712693905878725565590039780106323882925652335253127169774688453577436551605626530554686614573131626913318138374727766595487034953410633538714152499172080389152069832035277720380807876204406023592890693183669868501334610718235488027923828550035927697883451268221672884598497342604848354610251780725533215043984987169771618864974590809657296119781834036089492595013905151127260335958670318591138298351561042690492647037687792461135125206517874791523885670366303805515724866399740379442372663881067796257904939338467023270197158014607801412713588022197768227750043531538766692901509712503870646013214048122805549628840171015325234464892035221513302537440509404354364464957461915414418755907853950865111382095687462651748603835473039518975099015073636603041074950840187381559696767359402145929923931873745274629966539250554047484223656486286372134882436820042756082054909399796270065475422131520566162727540915385691924155816232436951107933096441380255642825103974020788644669096608734607032093533479240410628860495932651931523377723973248425080950828431528300171835027197795981603007492663663475337784958760656670030362555133980736551485255744695041784780454524220055826071497378065466064670511233952999135556057882128789451915564217255370681604444287899766239482891755014213506589542397240004043649139640368038708357433040427727671199598156084470516628379273299435566035460943369845263410599858684581207883362089738067190637752713092629709398476988274349446005686965069608801852663436378355477650183084870863439728504945706177887804559869979600050743847784596290920078276792707409608702632450583057291591722379725632228115763770973398533349692238976781015204804225809177043919786037938024018085771363832996657823619052312786837004780288801072718920180318557223272141583326602237334024362934066876359116442875962287101626300215336720504316276447355797721963672186770998322193624781121365400543235263449177020512851635344656340312818959450860523840972987500942792396269989509307674591088877758809190841839847709747341270317080798283610403125817632732483205175787781454179533654837722584013792935357126869795362333059256427723342635778502251291122981095466660608767988949541718075564703443791852415675197168089843795361772083559264718540230791263609129496403147529147946765890304240193136808335677865389340704933071737378504137094553477764951719410097686184016301440917579028119169062329106358677263307251861764421275753677857794274489156348257567225626304170733547168334491790474845962677140685617288868564669986038785682859164962695127447787585498062504852334370014961436024062553345166179940462893205376454526027175692467558839571659026296364857615424983839648344621006277671879273395507469005311336727219463856730368163805587990263037461302444002560700595125692747751277956851702146269721753499864987159493938670210880644341034268364897963417201985678109401119014676891562045606964053387869958683927322941537062657343261402552463789710860222379556393900057862158230901372371214780386909037163777623658714670059344849232337277376006657000258783041109606231183962475383897115200244437478160283146414717880684488416814923481764807334804491998800779099880878629588470809385614797392415578424012292896423223240126885654679419444289967970019556030808956652082144431952757014299854647424389582100153274507882347354879849112319842178909840785476774390563334344543450891238912826451886025203855393209733643851534065031837006197306625750239799045020195444095940078637516904375197598118045140809478166492515602078523705507132335675804751545929273762594284982552231706446119186271707253165108055848715274303790895244510488921786394812687287078821635215319491963013952304318011646633304973230638644374630498692208343789743072617531429352944756187464308769634583783700299811382250987771332922211322084075766391488363645979461622365709163479017625021151881015229035640525034303898047299618286666472995623220210056325020064654106470973930264896474370356432780376466744014319884051272432124956721721059150076928714953389701491845543251784781330451164134987898105373189872372652206171956420765339660786035324032618431896059586104640739341384281461977090632689644026967306809245482922930062183149730789664657642477822501290198986756687290184564007559669276020438274229512152949696898632948093566660740170093462164471649428116033089603551394178413125720866741767294387148816053591968382131413993606948486209008969140695368108453797004124315956582975865007462017234700284590439194828956349121409530871867564110836176455152063812441113846398843705532320220369380827259864397375559520747848122105374399488598501684250722836046793576237393697752755465063989651027545366227351400992663283947256941297721369720995255705129067083500228954579488100030349550994251436004001830545291459144677099650845528483611834807131872990631154783384583870133923660328579599445077805247374014869828642249402653146818929593732259760221074560972160454709490464236090713398471772140783625929542188098731347905828966877610633273254981622048333986662560542981394392000687482245647064099310643749189847616729902284826870463935597233542235114092868620094999166849580289992397767785008704645687277322619520324813589199615523844900332171888871916238801314722158185557303531869832704699376706228624535099894324803662548269498643844568335697310936973965280427938434793315003398491180490337995950012248235929280648476170244056322406134094621915417463813348700311071645190782135590097982590149070604580222929008952112450963828803337530542959672347374503038705645300398707120821395509474511413774221019288123276861784447300717039358020431039751615082371654613682087639030729947178960022775752323619524456493261758461364429748829767243883135927184348375394985880080587556382229557120135913458824408570105357706581201073502903603420585337252653220586197215184340951928369198210903324170729708271953442795670438838788502087722630389399156647246627889990753540047358011870399137037904386306973916542208935477396755267780468676718839464189334381129258621404823110901960846795302173460407899256288317747629356658542473858842036500917703805513218434541157799917970495683145039748756082103927960745544390811997723198697112858896936077565149559751511325292874787762411850834139165706385324376353449454474509301005233679551714355826658931295655765099561169412267911241870632168420157498114809571139763483612030685249307939265348659289378109097980081558528143479065249079680222554693882110605910338527225120837372514740404636227119530585954847594697670754201338039875842354459491562049071500540226634619645459409418551597607348082040256503700857001474651079537708213111833081109078175548382230524461225484958988504280172374689141350479363304062406652155300273260898430887705488007671227035059106995461007852077320565611662890840685778940172718497710768040965353573487407585664578786692857423876143244281099911412759751566655410935582895745770725385093404428399627185666576995944069144432492344059709476541932254465462748226960350274929048527701846808697205899124368509245629383752297351984803352684071475351734293039308414195748393956490179836249732692950204698665742222364131576367196269293932665784390882309100269967589929715023987688396275526072359539370692059487300983754981397827205794639477597191258612479060464521686130296656151493258511499751837269813005079625353650481632699595016947296998626576923726975557240462992826785255798916740818627051078708831784729239723140365476466953182465962598547706448618060698505190778639784690050093198268564800777365022885111311444593769595817794430502002990133465306043248011359356741368049118436169273200236276976441824649349487916383118653076512115809398080053996924086283192997465850726564241576464660705883614273400696594886293291827887824093120286162524227504209157327701204975942494306387413447439012143824558915350827687729068951171754883287668222492442642258872475196935522468739659659341194779814551167228868555048171745510857177191329764615739054649894769106470115325837214919461991462299326016740197380158008979361436230519546386421710315505593065008140378137562516857208973137852258690461763610201417025446685286207079909675548279755911098644115045888903930261197105671316720201996018309195860663431357131948733073876347270218218925814422293374829552386511681255550542444486882776850350132547147489370281310278678022190876831344868758246852390847283692666553797147171415402861001430113057865797295655874071695600482543244636544045035317136724471101597597529831610773329843432049814692796999378389499536261100124684801236077107179409604160316568077139709498227611951534791710925233413773089685615699601513474029582118279447863748202907367147645736507570448139912185788173783708816848113377681847240633114376514046584428008045158089850036812525313225479214752005711429808425647216448123807906450976837720491648180910157428913829806502752506661084222721586831513663324681787731103526101327783037301550277490221250055086933093901858037769985813714750635440783835565135875631859400198365231770729913477177336976056340400087690184212425181164374813925703032862233200439644344939886911944724150515282012482633194399902369636824182261602595614895241162049012794507189313153787968054628155793770188988995004503994378344355083885471673438092336027719259964312346115824497249575478222003228633199140447656122241064872183465457872652931901914935555813204478408881449761422110274723815619423108105058792430289594899904797198878625907420728741046048941580120006926192509887954972599792344784243902414158274393009983061322829420176440369992763057568992650404133043049867407365810202692902554008389791037951901517778241519157619428895974392513280439066841622048973950135957412737066178325424168607774807459593368761769601061419879483216101124609323810454438900051367928416402024852221670416233053551019515549409334646779185915275097615232207640171025916273017233395220043541667418160603716223644607739362979978784619502119236132860606886612134277790042014771844659629752300109225925337671323625908302558348143942440004507705168747764848718877313588052758764975724716805893703502623367100450169835832721500274394455016305636976200475455514188224794164765731867512328814718782619544687219436205894645179546212043761407732969656501159829230608190418868817226885382730887466882955684911242966891096495529916127833070014248620554693040992584740341823794061194540077624005132102937201110152915967413679502506053742009752076080517669925878012868634796410920585054345022665890499669462690077547269596173220755835868704864859269874971546315343600522599838277127439872996986784139221836847180113046344487016865772375477672024441703259061110628278731869988511317419206963346425213225368052406584121997304096798485482556774302028361750048623502197526539760093437527077709740143315720035558010742172618991649822830013275477551340192613495871502203332903766156414849013958099283751980782880272145820948189900549820932867757658941759894545955427822862506624541574818533817287602688089071623414904880063544519118463955668029351127872786134979794467805778420396356135968507199438682833818001695323945998090938145971135922136740775852552758779692526094456103384940255783545518866465061297756206854616716104641393146168253417940477812710842746107039217221871153934108855560266964487624511748786463990438155945531591298370005165957833763364826526160410606227226693109211716499421886680326518678696119141621475937995523589431986000092316507025821632758313665242245383047726346630887002508638904510414137239367888687997750231285340496304706213539554627122043980831158185255521435330396594445232915791780408287569269703884169894278184983873179812066702641018233896886363027609501177419907192470408390807966180021155121526953017155819458575056384406532164249250771320804656224585572349246514038019279405319651428155416255240389723076712265201538818746321785968485404088181657439088339659307500493261550372438778655123902485828374656452248021684288873584623672050881400175503224507584430157590484434834977538498706034835890517011447969840658212672216334423692846593377708569124620160205843159538093617563505269629888584982291038174988154870640064276143083598693787716792379387331902920100334275636876854212273300687839709698515535372039739338010261964320289078705652350595437919620126916163787960335271347112065214406794287792475849163217244322314875034619403961988770791452942527595686834402827436321798950730272981522077581524121437756117638718063642002584685268154158220677907180833737391842582607848820824400817180020743701174390886045405337841111910211495278928429475042010030320419186237196321159991358853932301316181748249788688976219547883774419349768959944769624537600631079457293551341072510854715541428836113781981116893289526451445572838890661231957063437331008207162893118065910913735735676710099174605847755748661597558581340919567703106446495140911461743512529701731597148433366605610883039578949909984163738928215654236517670651291755649576565104645981864380353351879612698148123538131342399906380160770975243193823282247205241868233876029846997121625654895004094181851477160763943553150220893123133043942436400027147611399077217826863865032979056121155024428650718964622845282583055428259904281533262610271339958560660023560720573589503602262647131832100074875188516352784702083130431438600268185941935687762405634252949122235076586715835811991104830835746602605700199881259271141255211711122360151391701555967320336530921529584198719410777758094932775792355526134897751216436152796011593491853428377130088227906430032629057014010971698929230820803890661660047122866805913848578522246552538323670447645213116444453762050152053231758749926219192208334786866253793044080077647234815609568994692614636119645557566858728182236819037973253133669826109790271197216249828500515165680679411420853172156416333788310697512196685888681025748119455829704415384596881800988761579366585334053016826225688592776420400857391052760269623317208660331556976256361424767650166543766149295286005947409644817400669066691674695785319599240506669439637594076424056898285219444601919927346094012974135712539859227044458569475928925068783237858141610203980432121767537561938382182790622728647354230445262245926133822562351565606068684805789137650430102269754871877024963718523777937204823176093246199460981198709294611092072115286732195049385664918883394791476437491586897090838357851492292487856302513395302107323496461743723008293568620259003456546054867431344206155282975167409353643887457298114479968120789028318661065266580003378070183244322453292682498632974271567807091319413050708716307860607804216198668431895098480904264110405728947584641384400627353821376002998416632898497932979272779546329467371395160351303152949384943161754022383553885308155918642549734400980522687472071568415346216359365341161718506743986529083615708709738305429665985217689907717885024096984718503000869200862544718852024217348266532866001313838052666174351524292501301960875060317988451612958967796798287586899165725709177167094685808904994831197097824416699516906594781581078933255793715076666043964484284003006754166759921780651905316718793866230599299094294235088050348019116775874590241490454410573746933462495270129052327727954972740480789760880564512274306040551277156924590706312402950037021271178428120184019329800621118557322200225279784020829739271660232347080853223283822323300216832892957691401280941319125168095868176114719349859695741468854563874602848931381232575028115995323345043897307860695295237735040812043418110499272234843877997753106149117501417039736546358382639379304378995336379134245143246402541205143003594685300330375702018285179146214914304551896433200966535090032353576008453232857683513873853573470905740965524024784923593267514678940248604599793247772989383297317599577613317976729417651081169177191471982195843762460537780038989672357699266902718161616671496826044423937315581073562362424865502338420328192091206066448609247031790886468098561362616752472653358837178512816752498430518453160849307768693046981804792496754333498783544665456369782268680915376365501115917247876289040416918499442916456505894009092585032204193616088664656904350589112061850850749268619261161774086171510796599574234674369200978313234157957909357122867626084844844241488317904703159097496033060171159569819385478411117501213153017245592381948011637628417078569806640320783734117548979339677824518199870246960371961154375062338186198681854436879739440499602660617104086902194279229577126060067042513158526591101692821819624581409151774451132335888563364229084108262863323907966835127052981779566955320444880012781202924719805036824577113462615679629137770344440590836230957025004625247624572279789895851487764230852184534252387207934707874255688793125685509189039001893731933250990519915806948362483886326099979045521960073984867984112232554771903164208519559694013044040421788955084081403786778790726622365718932994084096806131942378438328581418174244551345567787349174585541014146173197394564811557547394236664224115577149538396820662244659886227464635529973664067686064637577978462902798483095081467500424256834512490637206171903984425354711906265856924896939878877923333428501320535479786736942384400549602720814775744401095751139405127684007108560772823120800559730900276808439234056809103339419199709147954287342641591540084851528223629000316579185607495943644626569746598288042546248147521278751341308180607412285293410125801385385244461807136098109486366297355819663090469788279955861306170003494062512274455176273284803671565268465148828736451389210487687988154289993797353337580591896474634955875911429421294039817291272537533748087692187169417253357586800193907145990345270041464918917256020677173352275784490337945075707612241982448424238852216506128640619816534278223774177213677927383054542458620606714680500152925546656994540419845949592960498227838799838712043645537672615097359377608799705793996956731260505254470266877261863059662326691317073371844856710358252282552896888462035700571946818202148278285577356362919886600720244731353502552857439453811674879105911769003914384536008314407591786541826721444962783799796191726648535212910661141344655510327317561973749392106885812735359491087430932942417362535435166659587801300554903532662997069141178887134491713642434513703908613743016444818780173385281970144181362521364306061862988057436800734055545192932035363913107927000053078509375566442069670513679168501910872185517071491296166728051125894411874303948852849990482261200111373797055481026971518599734656390027077586705798795088257769599628917269323888368651416305606801113054184701791842898369774698298121516934778856399064060775555900723323586579931031286357090023034657126525039592003935812013660212630479309084103909318119722306372163523960578846472316632483380510110268188342906214631430016148610832460115842182554313656864864698183205179335080921294370989917959519192891827557771506397064286547527703072142940893341129988971201870502443623909580848612149337110641699022698531404969816401398481581685037017182091688040070433025409785883156445720391258820660946763422312276709079939290299297217115183026122833198880830918098392837835499493160202023461475317324393552249734966420312388247812001344210359455790930844284861472284775612188602908120119283715025274066879935640426857613731673413010125975703226235580895513419324995791364454163694535939444407002237835886161428265588519276131463615357748013642459075989118281305597559581293408556446878401202856413736203337212578111127040329763147781032306779117353307454575860090141992707413510228126234611486319154109369941428098438758981418094444384696454450245461447217820665423879301297939952137731904981603852939794585868776029797548833591073123129955733512440695609124873584602538090544457809204968378420351606365444766858148885214143501027323756332707498691545976914643719016301514458471113370535686566142110212358243695838958780507421048914703016509174656042218061763410464639485259595468011531646939770879782951937987132774370586182198871769236437123598911243305426811403857271781178033229819392596350064139238222622723594668492764261889010845051220238181842945907095607687768285824581835234804683229691833478987757471126423849346710330240828662808743114076239592453286103799901286406522289003986354001770799789802302841205127894655411768088102460844083263153809187799492485542664028578397207181155919760753511390719600450370697114207966294325896103529479617269762542438032889717652168443049519843282833755508741711670537639323123391884205312223178054015684847764522969676777404423323476881582003182423593228130486920655789293463525608899579756263181593387917712391101096427223955362449749197062222763683523302954532825286684948389988526807019202313594133210720190981408693524885882683296885888884230779383724226317821610671983845591801163293098573341978004905108056428144930428805050932875198766566420354279063818211515781077168168555765142077269152577634435912005534195856866909255979912838347166469422944567081573512517512128811285321148424380780055894767053224114522591077472055455188216428846340128781202285039077907656247495334523723306042585692703940970982607830444828095202868642952742113464265583503298194331005559498967743114435255394364690720115046452520444983488525086625806229822980081466135310495032958387708412598299544249013588281499100151163265428783090677549493665252620473151808212537973393349061027514806918885686509501235240059312981516073646914591091162588811881786377663729512328051288886478229682525415199490733862077930368909203082851985803528820567835781486297608595254903286684563687721586957104625497120672335639778403971332648214956820085385748834009529923287052218856595594313327710993890898386128484120649108362446219701724756277444794072097103314850331180818953015356308528509315515884288292173324015481005586774298712303855193263993038068358824491413564360279433279674552460531561628056271407134727276460183785171420019313941262888319000589063413586086472590214066904481343618450439101236336014734473046526145391349774274978713681654457921577724803383618749602473228322435601252300550751321442420133745979733936196412029697438507203124775006194247851169364081850935979585284135263023033329320378076112866331411901900276968634402589654393320165812105377605094029167468311657225752507049515548570536583074345652222270272336255534361495231424233928480431975631429768197151774744429388042344933725780660556215381901674481085600184495312026530151685632165580629715838062606931853700883421705689972002944546668090089825272961170238428081751441754096952208333338545226582490044888070318361701330441884384176624794438749336896303317639639529566783891232991773952480245748203835585133160781220422011216765732007547629135125908780892224350218414011995145741396289664523197094244672860477305458176601814613995320844515199154900049131445376669955062046895360322639617581020933085439234981693730520621092255179583232251876470722991267306043136693288360187499509747573279793544380599474615974286329590099427838517524485436670585834751248656695082415027213920275106078847204361370825703323822627397291870246474265973667445053907950850860770298710168154604807523978666670546249454841282464726097855643417086495651315099480028418131839621765668465740665893525830938753546543654816628861720401514722829510128005598959127252373020917422202608423083774265022330304013470839837364516126415934224062934912635520195818663298895893642816438675988353147113106505078331977149730135307729748486819560059894204464520047437231996455465408791749086407664060110728953098335506226217344034555132329641447887673733357115624474156430511206626143405586365411113847515810368802583334473942758236421950072908948066961957370514139364861524600505421173143036369387104103555542992868874255026566081898537611782374890794982301403898924258894168900810942091884654706630303988660589207812523017427142259551806530362327882663034183797392999388510719368304104979883782850641704345570365375499232027724235757052123170231241325651591666706120105476874687070357823563335017299015849601211260974548529411618924894788448898702867953889506079791653421765545598979604284673748673779731617401352406081688459071397061420835305514279116631538287684508037007138641057755496047153621125095366465939561903718179078398062118861928829750264640152172571610545779598097565637314167864016746858107842247921822925640941058670980417112852969276225374603922584255506332248183029836773789448450658352097291489840343068906470928501614101070324640103174437985261267661100603569990835239361374345032063720411450672545590618430295976816972611568936177671619404756130262815664486088206035705568447974181767215565828271578321953750661008155077656080662573680578712822487719444637723693452308520895899396275585936479104983897856671301099220290201447439184628268955555341982038837396526131638103471112206962623326962578052243792049903797795984237090537766787272132318614563031477083468435816580866650533647892849235641266948292695938300533568778486010929208006769378879803302231241748822287032938521841659456228555875796090989469268901682570704154434728248788362139704992763135592494602602861910230018547044737060180601939766838351783411166708471910963773203911711457481706593190786400587658183110368462827055716399456146926821758495919234963325597310357547737301690613851069115606537853756369808165685816057833928598051639611573838780560622593390508057425392686556011032500388944429067722741906289940875310468710645908713365427717146051264301207234822210541102736641629189101279043272865236750744681968945409202746639732275434857684033486789060375680564739398004907618736074920204270500804627942025585815705119502239670269892387522834479601910155244896029170703853945758046878488743571677681670767061590352946525257560648244179477423201453605010379124723885400722668098948991042994816761903773975268619736025675038401599755157348194256101949698041795842529724971882941627231688818201076546474436051604208149038724165091040769569599209368232656102977468623188801717895183732413033037975614056318110683922523519745649869854046909376302201885558539931754263139122548152497752064827996244548382405530581195991296627756641173650705551431575839874544929351514708885794188922340902002254615525392398866464121330399768424070956249329450802245633600939356454454412054044937940405587911252673301329737915770817955526015563370393096055598948031863143824911699678200124552026487134063862678096661238045161162474135121518573463011151298149770782358160772722677253534748851473578131602871631466453963856941455738345572701906194431913206950194284451484489021549932245462719693948587284444208405475432803143801578299473330018018381042428886366756494092336610826034102880677713307634517624622347888165924828846169170642244370426409098644732756770903638652126603783320448244746007796847696681998744680935994272869009616641676298345580679358957822560023965120416837260803497576958590867332326516288514943059441297181129522874094441993708476113960912629038018692795804800153948843998003874244444500844336350758234404418123875253048289494067819040720267194650389264872079456862143350761525365975423105553620841300212081265542762921903443810788201306132926948680052353762117433284491586988329133525886163970644370090037643910520020482645330902863517674011132098790566420838544110650844422238209367111247562745925214202851555220151075914384068736236871875651305335044170529444165059347367799431851191091598681200450507411895628691692592264994180217878310841196309830483322614828819759696353072705108880289289705352073089925989527166652462130993619482035636379010052320774468615225443892193502070971821671574590406132902911552862068987547263366685995196595696865050313493062576280731131222448570707122516269242630250861576685228836197915810794038236936595653831208064540917251018222203190481054271413722873899689655860147374302617772053244304643302476249310929243555319612420253140257134530344663067210784706371126595251058269278786023557244781494472299615195715867457519348544625901511709348005789027376509247266711791634675501508863132029951265653918406230754819532358779492306406855825838277522347505742410949657273193653528498971418607311368646922301933974515909584301659712301107990362755037166188188185234064469879430315740024733637456805609808961018105155467897257984287938548305878522867874064609147514067705396324610461754716824203241375031503282575127956182415105158221553341040275115891753816144185293952563137677665933518952854629796630483782017923486678165914279821880557860428847750782443886527368079403109076130764630607254833764884625937735651483441714120329664001750722930634425766619136191894440910234374006036392393131888662630322893193607101298098804323822960289796147874895286649665722119956933407918371340834835172730804646417206945047727388870587313629617484598513043426952558482487550094429359027576759533119604235086120680590473926733604777885187138646665104831743602571947375984933728425390985363029999623637166272005429960127495736343113869408842641037634153384066896506040618947716384058051265727177155511224625702395099639398553680541431707038649674795047326828736267377154608923752972077955533877008482873069689216309622333052995807269093739262660869963723484639726807833203991093891637253094492480906145206333785828867280487415015544667156027188927576793663943698601896447931307933694097908179577951192275810153517756979567234870470571645747051398872425365903006479008697267068586727948843203208390268257676982162814156522533685515149451182019655607957378874272569374738423696193190236191015188741925185675606555273768857474953598861000321979501513879024983987667187890265516454637288098242745057690228490675842562428326906760919201525090032889102850704209030887634515388229655880624671424432509572247090931217079798661496482538006142612505439860454057943090610141387188889739175460888661670192775362473020827608448603120754430673765748240156599797490435008541909574000024643096358810253297237585200044733974157508518327069113275108450337469052152107883026654061721964958243894803680617826319283924658614175849122147433795773946256304640209444921244715029654205259021468954517383429744197839724746890650398039892397696269750671634132626551029675734758972811805338033116291784710254919449317327001743373596696871801154440521299650864915340078293632348474142031859728035300367675872199003859029837396854752980141913612211281836973910070120784359852596906118935160452088601131272449022240752825314900398850020683817881236136311288465024141429781780149441364746377647828479881321091391086168351044371485300359473733882556049728375646629662147435534752588169211921754438800895551477093434573276326646392526091301329245331196434840055192979428793963003526778955873880457916856919562070193326026388535322692662658649754017343493629873407931810977613609387816705961861386292560344521364335245381517734282344703360652833234591231133498717599818385521214197949225659373889902478349150417907398978469586964653898691200650309946032497889171379260541958581388628447514243788966146272799518766882847851473362850656983493951794223473045988942929662531919892076455543690671797448924080565599779752783950985314069210441088665473283435300446409739138671468948333626018358470913942005632859565879152010586478084967726952758069463347142627318930073359590273292867459578976168697670826781468204589449714961171589149653006282149884143990446311815665500517429946720153072903084166425909870337821981563957405667534885394116294758737862057066650419128672590749869343695976964883043095373494100216380212761534516746400519205454235648815437154889660541499241735297877770446159468696314998014541827289813209434774252384326730887290637745850344891187195632188166904530240733801015617830029295307621411663596519100685845770292999268311450314730121458367757569635029559375700383708981968457381078940494743361906322149711140566823632229566219157847015338694339930305793929117819168700731686213749643796533877724144057662904611043525730461382391278263896595324814825062598865322148231019040224120914764698027273651193044882996629684170018412578005831070191306445932525569506773548744843900544030437453326811999248609541580267566561644355516498794852744859391866496333453316893142961156716321986652717496410168388296994535114176949299298378248731727238634023469938600097846513702899994855677142260582260173209852622367631703032496474893061044052134568768733989953572126455083283236212660827972602579285410629028068863509553961717163480990956905890211418712464736525713700858687527311977411027995909776965111457686707943295250305328741197947040724800869513378356494832318688244680543353005284667263658944968450495398431509276819909254817518391788776605127863805591157658276657817283970361708978104078564818502390114165265933310252462636025385268789731208935361395423890121567259592909990728028043461691539279213357790191161316136277270361422166119763868183194666015772237958074918438843169728324923038072849017991450217196036705017789007612362248592625875042588667532806285942062206439864505014380078984980293540299370288086737544997170065753563742508052596430909929716694375007978000186182274568960059202135069246782082583891682647988425492804225720584212453975717848159330976677577829081637247848484851551493243675487480696416216028911701767403724623692702525429867356819376148287286366420284247585766019428911137741979564300712963630803951923770380757977960872121149925949935059855211318787366038178099568076833433478198337917422263298117775347944966905594715270061362541009955722316065042863862033290888816193322307123737994029808245415299012360193738792586913754608717084020345139553477865399275276865458562626034072521287443331292583950468978135562452365962605606897124044220602712817630587050517116179963840784240465784611735281861730436329888292362215468327909285290337930707182026983950634253097605652818267126754644763446755419007549123697359063151635973353593141989970759762467849291730213368649793206202429671884779908677807386904038616735864239465627158643726956815428469729637534162621420514881703174609978743112235121485704522736933327735472951616540569935278861631881628057889997699812072848385929633678411138388796859331254503779785144029564609076532461243331724174004625680884753961886575643048377422543631457626619337766118391427271587983485077106541239528753269518539904865573685827077342866579421919379952890925845642903264197625574241081729247848852716819269435297720500595674234719127258111237055644340036564513598288068743095755551146095075894162293519700456426299749549307218395083875041674633479236757352207070440690089399443452506001096566954974076291982405161210555863153686760945030813245276496530033619859898307594540106755227891161073613920904987034850977264748275846633238181459105698252146928943945352452552746110485894988821851382651094196016217729929985643208033557378760234517519796493778948619303136203138169106654688358794963008042343629024849486617317610916242130555935322006617473748814111641060910594365870454899551966337115684217191847127643614558244698397405470066667099844884606165107399915025173818769524251646199616856496226228871002678432912230299359878651838000409273531908597651595683313210523184802658228838943018572008890163088180135444390362454027375239153817257870999587049563394794497783515288220288690752271789751083693841296506890639264735419641448958542570660030246703315748522367096445098135116079968749889562470290771411556842073630139180135392660644704536404111327954049099686641552921182884179047293317733507050533766315604605816600672767456369651411733809631624603500947498663941489452459658529088217824399538899804141635391277015475518308129597452518398892330528757382943266072588865524690419793857011755850761237050541230726238648287944339765030230426503702959960770916805078503665268114619430981110446016778452151484490922153093485827864584897086917473458251454065067844680849881123899503360948890496505637646077933209654292273272072021815037828920624976513999779640530338740465639409883539600461567805509709949474548585198113291600301098320458404514922720458750254893509261506255647016839210930689430006800062302778810767782042359377716016408998640225428250727561655546033827754249056141229291540647822712402305297040723946398469965280008925980681281154765419399950248713272756426456305146450444814694975918269388457114253035300727819289866835459935797839648609554134096518658578257770516173288852368855552740692511064604006181230351049867203152851081001758337132656266663895936455430575842520171426344158967640632663612205078406810420004145770839854630792514811400287407926459993397502929726236076890709141931975980312540095979002069508524866720147720798945301603636806579978924470495262955637957205496464913493716229629538685085107262949444470035929380989398640892007906456118733049813413820908551433257328365107494374024674897525200753368054095856992884061418912711641610629689596135053079977365060309961983502227219997762255426234412415781194602937662882338108339891991970480331073905192444814339944528232961713741365008433226784008473101001939169041024261502325190189857194027830293606638885296172651026222395093575706641700653850558490306934504962616401688610130847929371945751201659432236580572174015013733931164620245223686816623048857693266703322754487734969375276020487113592930266988617118875996732253310577716428600858463309845004261562021088383156786942563467848438099186625801080385731193665726007203520831812349687744767922556358815789632354543208432075840608782526914864122962911612350364172566799905999834037699201974517656465279708512289615420061297188982863850282688542067058191193266659848788850261369315694445188598305206939180080720153244866058880615932747788491699851076979119681298468271045452737825476549973510590806991011432925870279578462890503093613059876509148499008363973044028498066610825018513664970364660106327895808822935605783438141221939528891110648733658540559611582081373298095175352447385548463697317900496811856483197019000875624519334764359409259981875822000055657694746773938309159069454567026632140625439784213389579167901842843693210462352027062808625154755790119123161949021243859655763308040071785117443579803229837381223620718090802425539893493156247990132233424491835366008131131610281599917333619478360887929815111086331350943623571309925764211224942059858130987929120448771596709012532467907599635761431454994883018104503799074358189670693249625140741929110532605096169728687461390331059571525159836450358871734814852997209688000852323880854693619432404415475164637380270065058606619872915403408002793275004065400169174561451697136639309973572213139577008512102034017607655488934201533945081950343087321999419138310133163363817803209619958694358242253581925998338711547996033087184069644541644925836879318741665341540486720127168069186917578175495623768937141093332385412486722476067642449519398947109521930249181019735418781728774937300644645173668302286341069486059822399707506938653280906298163853571504981310927512319608337991049106774188143780983994454307038314696469844618934498086682288654049457195437043280381541344899123639316236473426985289600238675041480155190262775756915515620061338737697284007856944875665127324587620964688410499677278047897229403457140421958985673471176931330026810411061328211831750693450569439777869465239682424905977412693190105557721134199351913842450972219137594515174422864360528122417529624612817044153091089519140470175099353309794745254720281403721773978555901123006608824828944018528385210608076093624410627574503928824141777634701276749623640246832652057370153696301055481040720050911166697534949467705760511423006203096845939789128431823001721926726246717953096733567436559345311088525893617441843386841578235074328758685385306292261084507782925413606759055586486200651605816945007163500444888875255424350054041531794212263078202268576483571353805851339365837022505299582931428746059856129524729565228667361600124679865319660184284521357413472892129568969674203968321749464685578902205138126437159400180203929892487799591153115695392577064849793523679313827321130291306257273783515080215027543537741815388033734753253621478407436318649039002644680279996515698237665324888593511327775074096624081427340265007969839796122309129140975284314265343206334800134998053838121804720261604117355380933163226245572974635587488335839075190094313969779031614980350099805404794431431596536321309210397994747275458721492657895815080042154978914340167232874858735057353978698359922605594323298248594703804213578990563433931265124137212396003650838368933893335806857329766053783400280470143905710972997896708196236682244928971970762363626276970154655007873796310659246331170459521773504748409439383005151486940486187255614368966443025338409456520347801279479266996518302256455836724933728542970783853247707624402725300045899479519300034559103706517525465747583731065420218182538791559420312863066976077452509828240503134179361994192122197959617299097419581695895621516181181962173098013573049170075611016771840856898332550475250573797445859013911139276885528002261027690097506497786250555683156477002138895169269527938394364552259566147731952487857915357552879757749331507608251121841618908392063846037152000602923753560360579803447650148049174034659446166572960196052860066273644463704035213052975531195862240996168751611248983774639784698813700722608655543655575256124208220245396415570851173042291146438803274997942541701161411604535736452148514218015666825192587529027754460599998824872938871777201554108207613712679001105028891749946277798047235980375270694065368977037055030240308083112892267832253244961895347830504092445244277936355223789034009812323827872258747663653389021348203301023171410918683249093549853882200273431467308725198899496346649206227532053609829923570194416620985691631542326620826870021320920444697496256506736460394609294048589442053403387425285353735209615446433066991207835683388792124699975815976984217016836193616582920561119605182338632514852332886320441765264739396079957997926021143364264425876495752490339099450353528063572162696448253461290416527088633004384910777102538100593683242072738754893418721316329367380872369264071203701283945537004821669754372057405933461161271540326527595573449282465358983598248332912725323914698786226638399128964305202160793961370122158060521609707616233162816506393394620854538945772766706025752701314203205961548702621424856712495922851531624257347121320477711459745435893437516582986535257344852300100051245750380695608176061772786997040976746684134231840933802524825436636575221447862865414157013512554942558817344725669304323997556175283470468582167024085548449083036470773174504995948730282655451727696929709564922623664679945328298915967093845013584186155401242987499027154762669954796662382119017115621794224089088138816218745599834034041665928242096524183626339209499831743353337391063929437425906373658859195025768430082214691068134613456206035156805075734960992718303619811967745665959179621406850582944723501916993381663087682160434072111151003151734087730989174779262359446975985022516212254771272862024364956419104301482587337035259392819023369589946272939457989142716936580512102020008679681800133713660398739657802910589496953181296822804988496168115704587539051828842679300249537055744536986664333298186786689727400129028386122507744504197082419764715982169037378632037916536964032775397873592164318290180025956441626603056718624340972405052293636513888015067896247543946151259198459714435632228093775996950699644554632212502308701862592440513015445676805225582452576962470172983375601559357341356373112240973370561490407819634697808263526717966498079575024272749133507673637697893695154993190118133769891434729199847424631398330115223033317845690976683969648450413273727518151398592374725743501685200281970842711574100235753788874154720903837583385233072606465123781971989238655803517202173700069019183291426045356150958157860392766957111905103175336027704508315381989579725018148068724731968068949999912618562364229028226108985062330755679304276841947007387294082693763588993294046138930962539202624979359415229110655386616172510439328393027111462437537326932012146641099265198454254634043923891266377832799878027208846567932168081534081343488368212614284941571309409618783018715619443818600845749207371751283728907360412316573321355820560858316400634132919467039366686852615355372983917791916555711019528947135475104736975333494583021359935471887076165926353236031968025455797740003018038448498743545816983569107652281920899333697227176746746921754473810633124480010405244131068203684629545498818576493127331757424230264021738919155676011413805630751218601954707108916102818431592662153460133093873455744992462445319918154751089076508546624626270582604605412263707679363666743016202940400639292053485590313479441186325013470014761729316168778547373618040294814037712403611121993234785069559851305044417717848860950650787818104214583874455291269406350717694003777690515035151311455624943301497755408523348655732119801841831539129959756989780239498460316406547481601224539547011722708669564280879634411269289043611371582309602587357992891295305968164821232864499811109960407498990256622029224570537444642521214399662216043578142044070387791168618597467024163959973370440214831215011749828875919300396348836225378964484315074334045435881296960709329154260626091698262716983693368530537599111873026801557771713427614092533244420383702141237823513724937478654616969460272131541038756529296734940458507055526244091421059167472954124392607715017405277251251628064893685701287050561731793956765234973542473077916959904405956278011837686301201504545285480019996501043145614710616203553627795553035474485746588479252424006688459698960612938653728235778294451990872597618066412327485213062243624991640964056943220231437994913999428288366724024980586354890855723018334207745154139459329764526500429548345603659934886248485890295975713922958057242114825487685766087038005857985361678495670683911912867951455124996601348798748448586904845353606625491367916144564184055430373263446477513003501609457595460570413070920618807635327604994153195641111063477307552125234056170950856073985463462678888570386564920183600700659110445873329055979274088485495503513954265907719418693305281493329312691333077446588618041544036406017126606519872397448819741069616388126729454420448767186681451653625939129265251026528863194693468027931973066348180488466378060486403534911384770693802849150122120925480933066547948512845007196186254615531647708684725421076627355791112796278545650372319066852681288984522341855549476681853622475328556514793662860736679605868412713873186559330418556423150551578862190928114672972367356194151406447531404700546884006916850345706650146529212220457664901206671842201717995038432270970562866942688654685200720254365848400720126596707881814326343686709086735408082696270559593065361726231874865923672225008187784983113658665950411940604781042986784399244654066651112422055895159252407467712737879433120093364949631975905422424007752142764654073285522563564644128445706925140087822540085963661276888439666703437594692480361845899453101744961511157412859555641380605642559795881644596166791675393236301686767646830351766925566399403438965447470496086250483614743415794454010822966630217810304162859762778816855141497707792980807635358814434898931445323949891157725222348610911500924652182556552998917965159424763025525564425678838425808445170544863892705908905549549741875225200925088977974163699291709426056021842516132494570185131565912870202092629847236773213943247615660914190016004533089501941184121253684359301677887684192338244097259812079346594666154405058196587445078689151889793341320984967039809798352959198973384059318772079975264426989288026598386921461541123738704026163157948503176595550774931616777590586426665988097284709623869989868649409960955827158281094464742183450056422109652388362682180244715526200803096376141759726679852152271011429345333083248627948917633455115086213307623368080042285273935075224119859943286575000812035227464533508469709713212836508300679936109380216984352204339929387550979846603742078054950510199152685098490547856652778076446838633050099776099418592941161433253547660703428325822408160885491549744647932398342666873239050774974365685047259540699525002248613678315778302527974236904971492040952339632387190313416626274491845616894964582597031509670336154730981247687881414674672094184019824252478393821743030524990808380938120178826012208412799045804897627276683064371772462667958770180330914539148918308493340157585751176910172961769794902326285496473239287154296760197576602700608613221126922920331190382519825798955886138672786531775740560887937490015535909601272278689654470110072682279152065601307391706062036867015712542928995300782908110502242516043371048229158450471517033047937810469885918230112164801128955081462594540702707330692461894835283231105279259370775958954467696476077325501596125360169520126135814022668165010876544357278839495351187299294941359675382838270524153880670498103286014336931010780985307221240370461226939608974056920102645974340951885029889713356692441758412609754282146882502116009555881399825129673242458794381115654357848639985415389858132669314527081788079332221443844798230367528233662973914388694185772294188525103357886752272102089745096164402030831166033423111588072434422537881741090322209048535234295131250992778636102588759335057763822278357880143468263189929020978482891190496353026758479755275705798796517860027683295586971831013832371469428450638961454941337975424983944379373018412509242915159580250597503400110549426574059537668856573653512287285695075555418151877696094007286393709758195700934618599964589581700501970958610784416442992658039701275068228087443303291918855458039166531497812662153397497039832170720246570309400006254515220997624857491684347291783850726116041370891850455114343267912110416498900328461690492344729790949964621823839137657418120311879179681444152752777437791912604656206313239447723042457595509249947784582292975799256271986363764458314753948022015580562651802566236788608125123912520578546684654632332350391157730628407379020842936868342574399238938176949123757011855500862217521257872530609748475711422448891146733170697607991199541423559311804821949629567097795885620944037679331511149331707015329328103106139491017777943327509777326116603118271348330075534216091045477684841798304528964246373213579412068021328259666184006339143209519185819619845959745210777269618254299436265575027610836784721484160797492159216527352258318740176526971194706051394328358964918634900333645289521683299861833052396789230356847572341236344917706574006738732262609477973174493287794246048874526563420847229410433232921046114199543343485669728737563002013708927763234627079278466240991415128697636791613767335884122082780761220894488788227856778598733879757620212767772265842458726136871588556111235134350775334019933566991194253941977470643752766499235049301355218571303125156235047092746542364728294944116580371462816008343588558397730999734893847562801453291247135623821859213511391036966957179387212921542545917548206042706638079665992126757859913464320074848204867966606468413415857356479685764726151605098606835825180765336513737567553068585781878226572544721523762660084263578020969238635431203240397086324788385143555079737261265277552894026640079504186018634569286145638129758949926290941070066608806938109696359843712250955071352688025652464081574010071140770256043482291275626397995849705016408297386635259190577934846744102976233834836373521923322856437193411527728781600679786384994324045999507864703346668264360354684861830573035097139170738636527139411486912703080908399449720498418834484409424864779087208612281339175520942511434975470354019413313524838494543356742107770355083045526730816206133101780729169576843370558510659921872431344438411743172702671240586371657861744667611075098432899510891936290145846653279313166445152920804925475760137439302205137024477935677705127903262136193851014336479099688189219585276175410818962731078064061853734902561932499252286502428274396397826083498167277683361037675398160562731106017835609691706354266118716641531115347819145115614048592081395381827294962471236365015669951262558467845658050192468566500555862360818826112655850064305137441486197342899334939432525954120081230669115644344683527980725895643814879276462249050617846267281654216485922699604021905930637427026784458254573421564557181344483405119358672063119688143467532128302114955789051612960936843070651826184290279381000809401012412197717083450243729211383163508988360572000042833229092321295051840514448485162596129635958357642318023231170623148397544753680745571201156904057923700998704224594876541678695324868992044215018532780932916681274267509999190604460989948573954477358947011060027729060460832821937751602600884311283853289324025457297554991233043334130920151284890830652823150182191608105472625336144124088028976361418179106997609174956759118223577452613694684525043991424489980935725276619905340916320117211415501612346771550783971472480410660244518685004282176990630759448146132704876098065144525341607031157978352298060359734967470946890607768714650215029201328446193666035711719030562787866244812705162238507999782300888503586625917304948837024214354627257742890178635364256390672707108483611948421206105127484091200458427943189937887040900987434074495796467324863629415044557300640188721340673208711282867192564929216323843268166647820532081262713619205326581286658441966190568434902160087521524951914523232998861888375632548990171780233586890788966229566137133936022872554274451640637478782539514626689031223102375849837061850549703114599541617995680436157168742112274942964649413988942128686161063484612731930862576118630062286847397596722868239708799297182015471589176781724987840463667826549173838608243806166346994041210167848930277813957141666765727703560277214431566232497247533201140031612714104434480023423986949409523436326189963909146292146673227788685346404725397712175016279905072535563803688384803936606150088799340031584598060373792465101507176326041735910428392422554527318438525327273798445079225712011715194191874010252905017568165881550028474496442565881787383983841394809925172617957437395455535189229593397778336656212249385944444869309146957095663506763378944108416751118964607547037313673224239933417938449451510309519858738387387430042059400890904974499606738337999845271077597245848424955779210960222405715690460935564904820602073705330220804230313244439023481617775320760024833200142939857341546888278995125241603985295141037912193498743980678312490057635059160185787024407571722167808869755574881133589328591421258500021269712796039238696937691500642044852273816818448454549120315690350767505176026314831840556787742347132632638433810633016553459322928656729443266801635155993404145943512323698025455031912659189058530420888681458323555383811890431498946734247673962438271480359118422105681377886873700558367768608574086582429595288257299933609910583852472508734266595863460555903107496112648234647936080972288823050678419976557218190065605078035347638084174236701160384062389510919984671103502318602123930959754089752740435335722393128088994520795343000450468183589377043892704363072222852229136620141109972984139082531663972231116124315050610307792773683126832156984030048604436075021704210940100768933021215874492230286529060418710428326865076314566028291988692918987439184631377797460989721656559752411794223904091381615665623148902825008190169262856171116492402394464324976526709942556087022854856556213904216368405278890677591415985803737566745513937361618039400493351150315847013192116677978295894694014086735553453857340127640522253279074455755500187418013852108248612781849329841320558398110067195749905706111919567373915239546771067837412190082956526627918174076512018436408854396505328163507094262197061437323831135746757774864122592169911169501821593399816397187259837993464242669853918615038977622113791869168959607062618485531651219656943483435165277654820636863902339619039470905311175506695449489992306500334563455382353433357541294288253272097154946549525750146577904001325688387385592833241281242224823757463063484883548065995402954116725418368771001481864047063194522444415818520894287623552614262555504254039554186196344403978469141049865859548225184960212977230573450524654756548393707789003879607663416563290136644459130641881778730354353779535118875384277332372317735648254732998203431628377247024061390072116389157484705777361796191960351119036688769363147732337161932216126490052942831696799816735687680578729235862497284649063527708457186379816815934929766469875360400456219669282172822011099453780275789168458025352713617649158579739075319514509145867544558289958874195038274732188573992925837820250107649086630794578051665210584816896515942559181713098638734370468804367128296401840887218170404715225197992267872141714647171490096776527650372291390943487611494131587513461649918927341588863247258223849220701604827203375414743133538548089676534396477250315643315871557777877730689303341991572457205871711560129514442305912361484186364177965591201289040059015372300965115184379331561209859111373500610230235093948631901303955374833473615229232409028594050755763345271432458298260380883240988542721001617403110372511789737782263541596129252764847454155849398914176083374905790993384839668567634087886778061124301628969008087196132989087797933445814874121091934260015924575229909230645781037906539874830080882922597542860060695549076090371658555653156867199278940758116679425042009785568034417704497376369119792629283075146113947462359335583929507194398654791156790499484803177613357799186779627471226223079853316641522406985602626601170249887485407271239760637390743892892082352037881418253378259671249429306252117729478360734257454923440917901428096546523794157761107789062587530205162213687561917959752311734306761721052492879927700001719824985457606351074477768382505805926503635742217505571453389354541085309723936961395494333017130330071341907923044581359411994795343133553211056242344097713232170020097478291809769450664184940073435809096643823492820148470584339736168472035442561169186596749950218059709209338262457025900274621150768983785230460883748057261559543945919012613409676689861615563275719682410323047646210394232683670290666136396480016358788696901441600897385572956267017086524870051928110889489701120563885963898080707638982295095902669707447874564693765254495451891483185829127720615519509497117683982298231002117030861559035005718298648947426755427989090484826790108917571583589899074829458456131087934418520128681027676660554288514432555825892392095700602101463593837419169725686981339308564294809320257048492836534800655898427156285589150250807281501592553914499803084776083350755373726220939031801014947147919484265984201418131375636185080044472708937915668130814050041096609855479519382563748684774288091417567386408908308006317074632954941605016966307458666931570259890378792828544239245851220462749140207687780084883580727034855810648000132305755043809766731448436757385403866168024563033817975520735931169370049107347759847234189233143832348579340132998728228795827734704856921308045552526961614549479678071311419760549576859475978233186411065539374860570946476007626935010806310051706382485738462360372556175571947137222795886976259488480768900284346010038731486983611336168443199504360970761173609724140121441301925516720323812870536222250725002384662708652915693537024651340794166716532724825320645121859415698259066129085809831266485116452275093581489133037935017892730255926943495441627460219973316520480237932687448901391274038002542936227106608276356820207316676010247478437111641307098292230632349081998141871688015267916510159831859165948066954644409709987007099635837539520888248798389202712896569360859152404275970268416613516643433857700014623451310092454639332429830850406756681557376343604974381032485933379654462368973055582285346686362074542300557427357494516413192386546268977285063886749276301396964276128073414716621368188893288826346527262857271400749119463095280417179299338359971656348780434978637837529452250242168549649926276426315629861213894735868468928714090265835791373609602831055520032803360942662612685013718874723968922635362679044807396964160401696799681997741660982481001894393938392973396635258819168617590829414213135166247063279754740888301687124025811195498726834364654047263765290478237891381281806312553124755113652437169751454759839126176095856998275163686138377823604436390718311523590966075642206259354064007102145287198211537637489252594965302134004180724122745023387626870062741008847557632426787780279025340020100153214067841139547155363162177911502253116470517665555635057949268475729569827435926484539753658108485210855257455669376786638097937875420129228355730922435313765414765052111730551488719918335459881977262801807875690819905056545646370357412912845105797105046219719307327751868743757889787023261617303389623353691579467490842324603457431978015900989262382115683607481151634842566843199144663348034729030899434903264687763176881613236777409737150986216026406663804770069840731313059258998421650483233076353240770837675026652279172160441483101406990799082800996870280570597624321750597431478266893818920332395119172217010846239914606504642179616300559290745989389542463023013724490570194440526599991659689131652531830988085019610070394594689332443940807673752054822424243133877266774413078763725151288089042168740476151372056861215545261375319450710295675678890295915417618183406505010949425521944869552822453358699492273542849296713550848829502244443192669946703254536079532866232068858120419141509383322223743467944348485011382942576872867979708515004929721472728335949993331507851254562923057383784222167141652417271105204107758750101461808446460240167286413343198098849031420315848725194174726582398862292978528175926694602088811088242449424527441628895037177961563605117638344262585792052564721051421167624717688533557025247394511310844450327136346945868023069702880153786659520165656708137534012000355004825062322723559864393748115908926167611905143707788861371031426989494565479082483012218426421550607231136632165714696666028164395882555365722281070311066173074027746552518827834431602073675556582342367849614223239864362769283131487742122465796056663541488091983896933096598767327010618268000038136951374287243996835673598902525525258963450886274858236898108976901728283556397219141441923605388454890314599590551120047390518031782681217075259162342767249173005613807357126349056119227976129610678127501443282615077188716579831250453321432197256129400302617667210679243332189670448439947755116652268939243823337788761497617970012647094446665366860300967072419128581278692224074176622703070309483190540246353164448057961000880167673357832459019674648157317334594440373583725465276951567818946745019147205023278793975085373717929711038098954476153209518611164593529518090851944621167032588992954216008799870785385762019900174780030242202323010311113129994977833643515186729979939053860398640156242126923111937613314072211811169586212171826895436096616956434860438926717303584700644917680842021317408943772189420377864962873237761106397413651829733285928465134956118534572708486018478415173498481556871334421254541783019188274014197291873753787630401916091273607495828243867111576460084549918430270923875598791883909653139839516664709919293416629417489802125040972826121010649166907469049855617602229216168774609837983558289770745962774063071589359373323261113978168971342039784149079736855533910750755391841710203686748260606019560148222712963747931161668955394934721002162140085343965076121165895435138124654903933148926808235503435529629221584668347291009715205488672489869767228772822214870190097222156422074117401210452419402875451887042596022735686007302248331008865173014970092982124678336568922474820629915807534307738586136241627481005344799484392590177160128870348417173132493989087759845787628284884806986009679508528147840082727226036609414333326236842202297588035268071294962208053802729449774040540293243514723455791386916130990190330804760393535207384838529047984113864874925152405741732000073678528670684592255280063218350320836991118449294666834941877030755440411220602560441350075944852963173580155831183004222805764280978321742539999663521892533092203682459710786970410923496835945347454257102010136825488879053471892270495772374742358059729333889341723296505981413855238555868198468184843922400540959861919181618343715840076935384315993606740761527841242302898278747745659482114855231983104531731947340785914580796541415902018587615813894987700509329154983891333572470630841446558235737183696620339397791004372862473834355213080182622679619723431426708872556319145632646910267113639380179324865553645087595066899268189721337544805430391440558429719400186741052727586025744698724743866241694857051743239016453957439469913575563457581900294791058346068126570448227895645999321368477557494874738747359384161043521249925269988572528048689488240192831272585684834216199583691054686885097543137622253658633457725120413184327665430558628229763365298231089241787136468595007004544547294305825204388166064220043350723241582663962722231123218926885665454696169743073779287222275338684837419503274311339885251076645769402673985435764373124046874936398157158985909661099572963758125770907089771166395422315547274345865249300911316682139672697204988482303109165900186403811305492152838768604013633904092928347537754315363646437940628668277363775279347583764830768953137151013948441501972746653597656610169155760134580339743123778163434275377552447220300257324558323063957481339289528932182702174843500923712808488181660771958526212688998469869112053511095552970333125219010705370553661893976854194598125413996963856439960950668485218326773322385872307989804974763380749789504308510272804051577752553304068710591045803549709172045437580681940597627826027303241721875597664359915821399102727121696753794387158706142027583075909694847165592836830735700790776324906716985176978563482963347547762447323378000271355799071233255568264557668438394595014407266430911308580463416949126016338165292500776239152094229797951762044745428626286986209721191470061337189108446732025640595793986082691998588451960758039613895038632199476646686588492457136060011184096104133628510232128100166289518954769268971011287663336164523892416193642384053002482970801700674904755404513396611367657074842000083677526202376541997770609260416641016002058493581928277898855563300944882366258630124206103443125653436833903291991623381735684646336612288861433193755318774714845254046300517515622986524849887092982091491529725569570294748913477744796553599323832146063060280673040723126464949891677621326621620221387007331021689689467805586133053115114025865208368179976815715094292568041996466797045969915348924530557417681497417222033126253494797489960902770880023555522417978284490307274037879547867414702217459039767706676917100499760108379813731607329491797970580391256957461159123803180718199664039437024262872410701731015023583510688329331843476606184796331809147424782968337273400445545910671237391649801705217056672605194150851937953612919068670312811241362821498751282349939722213880970745929218200737744866540013531261814763740587146245222710914075939175041433832716451526416547458366677161166582793801972249704254679278619101225503526707577434708171959944707820339420326698314582146341066386449418261229708813244017096284901857270978279521284818854424145723142855022653244766513038037735208860578098087646822699711184617039414819495819497602493598818039665107839398351058777076944278178209933406082077390137226306879954652432657171043863336653552359446084862684467997473956656946458889945999896347145398093930814375446241653907953939982420070984492991881014413730271688605432567256974128369315734745062948437776451909306969699860657151501627357018641669038325771177194003097290331203316118923906158484095845027853465730219401869487321572111314761867600375408765103462465339059966724604322145886067877634359377709038592442353472658509956946458890062896386666261492131088054943765847337072708679607773049460811921411636223027371929949354741023787735301399926273605287265812478707327765405596613949202898635028360021821453952362915460457069776202813776300336039815926275830299205923651677539605134715755298355859258529483588343757728464754498802559233121759099865616148044264714106818181803932728670018914888329908197472485282528501663242005564332261746490508710602682024063769645290504509662521892141284075854427065484619009573191338692247671365737462065620163936727454637578948795675514371463660198811659742182526136260002607344254499075333828647977177865742471871145015040283743890037807358165189436789237942498802655173308155178003292713882338929013743245607565033617700881657285782205699354430200039235224315473894390920219541656701833445905403684321767779202859312925204790239568229258663142648094550490056869689230788456992067808490447385396184426924733303524034150252852392056947914590896651891915342981447652082185196148453879789235965315821192577395171137640056273707676569836284094629697934533260634916898184118897820056517369641220520681472975381884827486421065997028189222585035400932424774873836865153609452432472681272976606338979824634244394075233674011151913123711648338091581198858628491122759488019982594536010634178457807137916334941579860083869504082716199294408651107334700761890997277589669845458483361662021229637660758215222598891756576767220527145316784037186780714111916235666552322364566846419166807390716013550322778599548594996568365721255427870970479433952203389276395059209678189802323267804995362208999803421425306957232667012508315981076675069604570388294251974346373204656622857267631438882327266194228438006695614528200756969125515482216127092010941603041074300894293310828998628431287931553584782913456425751393880318084819365417402743299270295596064264650802330656609170802165537012127661722882557108903636936220887905923338186828357791172843560627080990000218674070729928971168423920924562476910698808357553850098030391768649336527127802710719199259408993101930110599567136971966481348348137180240911938061813296515968313632436165760643729886863225805888091132549101991380360815137003572025897643491777708692244311105724850101500901966506594565428081245193768107436564849563008620533630317205816452162530739123730223408886514829958856628425292096471335842276453068409937359834121989525479926880624239316698648591058217040128920960660118445202915425364781594672802524725514029786441059897380431271040534005148778761594593149036017987584287470043354664558731460784517899880812975637753429115717836085016122533262133620635296591673692552006941329851525188268082505033010628203987005919810214698769919166305297461626842038962521794564842292851747842748829221356653064060099050634297551668501132151290080042195503059449078228889469681897289888969108951481869022366261738289132807412385743572321397670491335781533838253793663153363828214732652627869830352707675534821539109973489152734958559886401445641413329407288608011127374375470057300603208830603385346280984672098443314171495683940525555216271804647540237050660825970780013990211702010275371341504361751287724506859439282367693218800003289354373399445720511725022597002047075997661966076892153326664298551626745630403242264255086011697703930133719920956694546881618889421057895121243068832014978943936389035575165782748340526891107536668371066496704391159375047852687580209343748438428485379044505342775185511810513114464382634082257649976407322318983530768007512010933745351676425119889662660707632960963039269945186012316901704651771713778617946833232896642189166342595095012822495653271647805629841286347831816579204976009587324450085510943722481334235832779857832237951343819871062139299711540952328587205614336594860808858796295886870019360028223977490815030764850514751967533744626599863883176664786048324006685754156005936431163304033329935400981679827952929141069311413381521635005380434877769774580615578445004870697889739466675264367164071963092217785693093924784338715354069455478104739356339316592948527266315692317015221879766466101360094836792877264190359168493485965631768598518270951884801472372878396141575145611832012854964175798595564865429159320397193101660629341476516551214933861779184751171282153249850917677897293063300971508191432982331834192708452741228218070281679741332871653311385563759184594005332585910160816329054554606077996111702352009487445480982739870666584649615819298266075497102529914876346979021214579909933250595406766779103412335947382208333071019617514853067050188583382678590713986444472773463266055636836560975063396510646746602637912427691191734693584731646165190085786503554541763626668832081631044710845612130455359416034241805846458977550222088439769303010467123789454646038582806339403835657636230102270160614605237746319294119750795948825657944903961781714022834194677724307133511662062666775252036426203617018638112768701011362673120290846722994015521224092095805218099644470762898349975431926670097659039551324996024435854925419806672211560584447236244780858505360006637804431002142906097325112241530924163543207357692726213091215688076392045430576170004602387457604567089224118051094677557148667397438122073568848280951405739823163227011139672536558535488764478084742128502619955174200458968140849727148390484854452949453831282844577899184841975723603259375726812327667802302945866347992656179037216294812195760138833393149426692881112525103344963501743298617288646773956145391038300269312154509686463042826461647434014902914981442546322974566777410564599521004717813189068492834028779127259877229383907339073964030450686865023235707674812630601901010547214989150283959119337959568201618480534115794460122813039032402555781486237835542132283835272301871184563385951911922411108143316987105514524850317139313600543106926247313164085569571050320286947498493766044996057633417617427179969134894298074101517611676316431978918580963219500003835563456009581709767181924590958877044981336553531598636662827316585205059827119868419637589753558654234569353922995550755232996449828385317266713256666374666370926886184780733168662349079168071563605274480962109325038286682292281935692879096422706070561379186060544227381605493087645923333338260806471932377803678978978846915260642055411747476995794324587079132428137684796547700945307449171552419024636591497727525349377313150699403483451230674693731471975129698112421830517566476991891288040058528762491337432539843732096097822092146167737349783088965807131972879520380097718632447599500784150201989068631408229154946446693373813698531278061600911327810640635651960031513848921747200536633893652752189614645732016251625714852616806216393527261075695371939526550050274097893928485177058457254228205497609862252897406813749099862454880491647858822319112337732151432940707359251742289472428663412193634516189659334682103777869125505821413617150182206006856913670629661012103933713615717221235375800354199312226918936495722180590460378900112712978148304162079696770766035006944077183559511570062407612032644109598515518780464098737283994901885051342419639183107657447130621222909516396323606460895922770305525486275838916145369266907834562925194215976560714279445065736782405955279251629519684434838398066075498845657676001867925478101115378356383335685483688631127846701929296161125232445613802705532480988094778496514356236220295695021836465806501809535768361608596192912645023847136241996406861840316321443965931188258809176295608553644323785379136138746417332065638660867721036673820741456457742250435411925982641655439747029612710836250860431229712710597262552778961859514592657704707319487868059951393034149373570830181447662943929066610030184387099996446207148774905522109177781063089971985924619058028892125171191440877286485844758583327983688942858180850214618083062957880129866628709073155518134845975557835082496756095742465777263406308234095360697543689170009090332060201743560242846514110885242796688928304559485408831444703531501589216763399025578121665050900880893099470397133275353345176717542691594236593762312097676726510158442775008889730069309441786116488671191804427898273628346039531108327387994121220199891652161412601518726344103156421391028439356106249810384834248417564505587944763004297940050127595270012154693217228977963651507031663461616616538590954483248697268924311755932171876473826972427915324762872538888251212861526572302517670233459973895594101562052739866067208672416223591026259020903078762941280277780837383229077483034743954616402082114666468348197726970469010064356451476332302248250106706830450070350790187210024566231131289246413242638446834509816550612701568381065202173614666108996874256715917830909014045526805307235633750633928254583948983663186747266346624122384255399502786222092789947686137464344387094142538262232309395166797039178815448325048529751047750475331289323121574729779532721881093143796571154862422316364163361305751006970554176038675817106633659984808964404866239721597244439939170523375759999994994555265964049135578492174170258192459974651019923007973912642450975637955677190790719019898873836751421128600323579268210427086494523689787587393173233426323454737917410602763927231288656838180147485176429395254865606739406387289858358136498696621481677140025752331153235334765376210481354039924439859068345837208674301766851615254687280279657006569822238456402203143660663747352341466878742330415449463701750715616439068869391939284427311426715933302144412936294816287866491